Skip to content

Commit

Permalink
[PATCH] sky2: remove cloned/pskb_expand_head check
Browse files Browse the repository at this point in the history
The code to handle cloned skb overwriting is unnecessary in the
sky2 driver and is buggy. The bug is that pskb_expand_head can change the
skb but the driver has already mapped in the header.

Since the sky2 hardware doesn't need to overwrite memory, the buggy
code can just be removed; it was mistakenly copied from the tg3
driver.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
  • Loading branch information
shemminger@osdl.org authored and Jeff Garzik committed Aug 29, 2006
1 parent 699a712 commit fba5008
Showing 1 changed file with 0 additions and 8 deletions.
8 changes: 0 additions & 8 deletions drivers/net/sky2.c
Original file line number Diff line number Diff line change
Expand Up @@ -1239,13 +1239,6 @@ static int sky2_xmit_frame(struct sk_buff *skb, struct net_device *dev)
/* Check for TCP Segmentation Offload */
mss = skb_shinfo(skb)->gso_size;
if (mss != 0) {
/* just drop the packet if non-linear expansion fails */
if (skb_header_cloned(skb) &&
pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) {
dev_kfree_skb(skb);
goto out_unlock;
}

mss += ((skb->h.th->doff - 5) * 4); /* TCP options */
mss += (skb->nh.iph->ihl * 4) + sizeof(struct tcphdr);
mss += ETH_HLEN;
Expand Down Expand Up @@ -1341,7 +1334,6 @@ static int sky2_xmit_frame(struct sk_buff *skb, struct net_device *dev)

sky2_put_idx(hw, txqaddr[sky2->port], sky2->tx_prod);

out_unlock:
spin_unlock(&sky2->tx_lock);

dev->trans_start = jiffies;
Expand Down

0 comments on commit fba5008

Please sign in to comment.