diff options
author | Stephen Hemminger <shemminger@osdl.org> | 2006-10-03 19:39:12 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-10-05 06:43:23 -0400 |
commit | 489b10c1f63fafcb89c330a0603694652068132a (patch) | |
tree | d63a874a197e67c64c96137efd2cd55d1947eaa9 /drivers/net/sky2.c | |
parent | d223a60106891bfe46febfacf46b20cd8509aaad (diff) |
[PATCH] sky2: incorrect length on receive packets
The previous change to do fragmented receive (post 2.6.18) introduced a bug
where packets are passed up with size set to the size of the receive buffer
not the actual received data. IP silently trims this so it didn't show up
right away.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/sky2.c')
-rw-r--r-- | drivers/net/sky2.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 396e7df3c61..68515150ff3 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
@@ -1907,7 +1907,7 @@ static struct sk_buff *receive_copy(struct sky2_port *sky2, | |||
1907 | pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr, | 1907 | pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr, |
1908 | length, PCI_DMA_FROMDEVICE); | 1908 | length, PCI_DMA_FROMDEVICE); |
1909 | re->skb->ip_summed = CHECKSUM_NONE; | 1909 | re->skb->ip_summed = CHECKSUM_NONE; |
1910 | __skb_put(skb, length); | 1910 | skb_put(skb, length); |
1911 | } | 1911 | } |
1912 | return skb; | 1912 | return skb; |
1913 | } | 1913 | } |
@@ -1970,7 +1970,7 @@ static struct sk_buff *receive_new(struct sky2_port *sky2, | |||
1970 | if (skb_shinfo(skb)->nr_frags) | 1970 | if (skb_shinfo(skb)->nr_frags) |
1971 | skb_put_frags(skb, hdr_space, length); | 1971 | skb_put_frags(skb, hdr_space, length); |
1972 | else | 1972 | else |
1973 | skb_put(skb, hdr_space); | 1973 | skb_put(skb, length); |
1974 | return skb; | 1974 | return skb; |
1975 | } | 1975 | } |
1976 | 1976 | ||