mirror of
https://github.com/torvalds/linux.git
synced 2024-12-31 23:31:29 +00:00
[PATCH] skge: handle VLAN checksum correctly on yukon rev 0
If using UDP over VLAN, with the skge driver there is a possibility of generating an incorrect checksum. This is a unlikely occurrence because it is only an issue on Yukon revision 0, and that revision doesn't seem to exist on any current hardware (probably early prototype). Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
This commit is contained in:
parent
c08ad1e304
commit
1096e87174
@ -2300,14 +2300,12 @@ static int skge_xmit_frame(struct sk_buff *skb, struct net_device *dev)
|
||||
td->dma_hi = map >> 32;
|
||||
|
||||
if (skb->ip_summed == CHECKSUM_HW) {
|
||||
const struct iphdr *ip
|
||||
= (const struct iphdr *) (skb->data + ETH_HLEN);
|
||||
int offset = skb->h.raw - skb->data;
|
||||
|
||||
/* This seems backwards, but it is what the sk98lin
|
||||
* does. Looks like hardware is wrong?
|
||||
*/
|
||||
if (ip->protocol == IPPROTO_UDP
|
||||
if (skb->h.ipih->protocol == IPPROTO_UDP
|
||||
&& hw->chip_rev == 0 && hw->chip_id == CHIP_ID_YUKON)
|
||||
control = BMU_TCP_CHECK;
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user