[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>
This commit is contained in:
Родитель
d223a60106
Коммит
489b10c1f6
|
@ -1907,7 +1907,7 @@ static struct sk_buff *receive_copy(struct sky2_port *sky2,
|
|||
pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr,
|
||||
length, PCI_DMA_FROMDEVICE);
|
||||
re->skb->ip_summed = CHECKSUM_NONE;
|
||||
__skb_put(skb, length);
|
||||
skb_put(skb, length);
|
||||
}
|
||||
return skb;
|
||||
}
|
||||
|
@ -1970,7 +1970,7 @@ static struct sk_buff *receive_new(struct sky2_port *sky2,
|
|||
if (skb_shinfo(skb)->nr_frags)
|
||||
skb_put_frags(skb, hdr_space, length);
|
||||
else
|
||||
skb_put(skb, hdr_space);
|
||||
skb_put(skb, length);
|
||||
return skb;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче