Hello Ian,
Applyed your patches.
Now, I've:
# ping -s86 10.0.0.1
PING 10.0.0.1 (10.0.0.1): 86 data bytes
__netif_receive_skb dropping skb proto 0x20
So problem seems to occur in net/core/dev.c file, according to the patch
bellow
@@ -3125,6 +3127,7 @@ ncls:
if (pt_prev) {
ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
} else {
printk(KERN_CRIT "__netif_receive_skb dropping skb proto
%#x\n", type);
atomic_long_inc(&skb->dev->rx_dropped);
kfree_skb(skb);
/* Jamal, now you will not able to escape explaining
Regards,
JB
Le 04/02/2011 09:54, Jean Baptiste Favre a écrit :
> Hello,
>
> Le 04/02/2011 09:53, Ian Campbell a écrit :
>> On Fri, 2011-02-04 at 08:43 +0000, Jean Baptiste Favre wrote:
>>
>>> >From Konrad:
>>> diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
>>> index 7d85a38..37c0631 100644
>>> --- a/drivers/net/sky2.c
>>> +++ b/drivers/net/sky2.c
>>> @@ -2331,7 +2331,7 @@ static struct sk_buff *receive_copy(struct
>>> sky2_port *sky2,
>>> if (likely(skb)) {
>>> pci_dma_sync_single_for_cpu(sky2->hw->pdev, re->data_addr,
>>> length, PCI_DMA_FROMDEVICE);
>>> - skb_copy_from_linear_data(re->skb, skb->data, length);
>>> + skb_copy_from_linear_data(skb, re->skb->data, length);
>>> skb->ip_summed = re->skb->ip_summed;
>>> skb->csum = re->skb->csum;
>>> pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr,
>>
>> Please don't apply this bit, the argument order to skb_copy.... can be a
>> bit surprising if you assume it it is like memcpy. The original code is
>> correct. This is probably where your L2 issue came from.
>>
>> Please can you try again with the just the WARN patch.
> Sure I can :)
> Did not understood Konrad's patch was incorrect, sorry.
>
> Regards,
> JB
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|