diff options
-rw-r--r-- | drivers/net/e1000/e1000_main.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 36b04d42252f..dd3d3232c94e 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
@@ -2834,6 +2834,13 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev) | |||
2834 | if (skb->data_len && (hdr_len == (skb->len - skb->data_len)) && | 2834 | if (skb->data_len && (hdr_len == (skb->len - skb->data_len)) && |
2835 | (adapter->hw.mac_type == e1000_82571 || | 2835 | (adapter->hw.mac_type == e1000_82571 || |
2836 | adapter->hw.mac_type == e1000_82572)) { | 2836 | adapter->hw.mac_type == e1000_82572)) { |
2837 | unsigned int pull_size; | ||
2838 | pull_size = min((unsigned int)4, skb->data_len); | ||
2839 | if (!__pskb_pull_tail(skb, pull_size)) { | ||
2840 | printk(KERN_ERR "__pskb_pull_tail failed.\n"); | ||
2841 | dev_kfree_skb_any(skb); | ||
2842 | return -EFAULT; | ||
2843 | } | ||
2837 | len = skb->len - skb->data_len; | 2844 | len = skb->len - skb->data_len; |
2838 | } | 2845 | } |
2839 | } | 2846 | } |
@@ -2873,14 +2880,6 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev) | |||
2873 | if(adapter->pcix_82544) | 2880 | if(adapter->pcix_82544) |
2874 | count += nr_frags; | 2881 | count += nr_frags; |
2875 | 2882 | ||
2876 | unsigned int pull_size; | ||
2877 | pull_size = min((unsigned int)4, skb->data_len); | ||
2878 | if (!__pskb_pull_tail(skb, pull_size)) { | ||
2879 | printk(KERN_ERR "__pskb_pull_tail failed.\n"); | ||
2880 | dev_kfree_skb_any(skb); | ||
2881 | return -EFAULT; | ||
2882 | } | ||
2883 | |||
2884 | if(adapter->hw.tx_pkt_filtering && (adapter->hw.mac_type == e1000_82573) ) | 2883 | if(adapter->hw.tx_pkt_filtering && (adapter->hw.mac_type == e1000_82573) ) |
2885 | e1000_transfer_dhcp_info(adapter, skb); | 2884 | e1000_transfer_dhcp_info(adapter, skb); |
2886 | 2885 | ||