mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-28 15:20:41 +00:00
[PATCH] e1000: Fix __pskb_pull_tail
Fixed by moving code to correct location (for 82572 and 82571 controllers). Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: John Ronciak <john.ronciak@intel.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
This commit is contained in:
parent
0fadb0597d
commit
d74bbd3bbf
1 changed files with 7 additions and 8 deletions
|
@ -2834,6 +2834,13 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
|
||||||
if (skb->data_len && (hdr_len == (skb->len - skb->data_len)) &&
|
if (skb->data_len && (hdr_len == (skb->len - skb->data_len)) &&
|
||||||
(adapter->hw.mac_type == e1000_82571 ||
|
(adapter->hw.mac_type == e1000_82571 ||
|
||||||
adapter->hw.mac_type == e1000_82572)) {
|
adapter->hw.mac_type == e1000_82572)) {
|
||||||
|
unsigned int pull_size;
|
||||||
|
pull_size = min((unsigned int)4, skb->data_len);
|
||||||
|
if (!__pskb_pull_tail(skb, pull_size)) {
|
||||||
|
printk(KERN_ERR "__pskb_pull_tail failed.\n");
|
||||||
|
dev_kfree_skb_any(skb);
|
||||||
|
return -EFAULT;
|
||||||
|
}
|
||||||
len = skb->len - skb->data_len;
|
len = skb->len - skb->data_len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2873,14 +2880,6 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
|
||||||
if(adapter->pcix_82544)
|
if(adapter->pcix_82544)
|
||||||
count += nr_frags;
|
count += nr_frags;
|
||||||
|
|
||||||
unsigned int pull_size;
|
|
||||||
pull_size = min((unsigned int)4, skb->data_len);
|
|
||||||
if (!__pskb_pull_tail(skb, pull_size)) {
|
|
||||||
printk(KERN_ERR "__pskb_pull_tail failed.\n");
|
|
||||||
dev_kfree_skb_any(skb);
|
|
||||||
return -EFAULT;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(adapter->hw.tx_pkt_filtering && (adapter->hw.mac_type == e1000_82573) )
|
if(adapter->hw.tx_pkt_filtering && (adapter->hw.mac_type == e1000_82573) )
|
||||||
e1000_transfer_dhcp_info(adapter, skb);
|
e1000_transfer_dhcp_info(adapter, skb);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue