[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>
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 36b04d4..dd3d323 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -2834,6 +2834,13 @@
 		if (skb->data_len && (hdr_len == (skb->len - skb->data_len)) &&
 			(adapter->hw.mac_type == e1000_82571 ||
 			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;
 		}
 	}
@@ -2873,14 +2880,6 @@
 	if(adapter->pcix_82544)
 		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) )
 		e1000_transfer_dhcp_info(adapter, skb);