--- /dev/null
+From herbert@gondor.apana.org.au Wed May 23 18:29:38 2007
+Date: Thu, 24 May 2007 11:29:21 +1000
+Message-ID: <20070524012921.GA2943@gondor.apana.org.au>
+From: Herbert Xu <herbert@gondor.apana.org.au>
+To: Chris Wright <chrisw@sous-sol.org>
+Cc: auke-jan.h.kok@intel.com, cebbert@redhat.com, jeff@garzik.org, stable@kernel.org, greg@kroah.com, e1000-devel@lists.sourceforge.net, davej@redhat.com
+Subject: E1000: Fix netif_poll_enable crash in e1000_open
+
+e1000_open calls e1000_up which will always call netif_poll_enable.
+However, it's illegal to call netif_poll_enable without calling
+netif_poll_disable at some prior time. This constraint is violated
+in e1000_open.
+
+This patch fixes it by simply calling netif_poll_disable in e1000_open.
+
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+Acked-by: Auke Kok <auke-jan.h.kok@intel.com>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+
+---
+ drivers/net/e1000/e1000_main.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- linux-2.6.21.2.orig/drivers/net/e1000/e1000_main.c
++++ linux-2.6.21.2/drivers/net/e1000/e1000_main.c
+@@ -1423,6 +1423,7 @@ e1000_open(struct net_device *netdev)
+
+ e1000_power_up_phy(adapter);
+
++ netif_poll_disable(netdev);
+ if ((err = e1000_up(adapter)))
+ goto err_up;
+ adapter->mng_vlan_id = E1000_MNG_VLAN_NONE;