diff -u e1000e-0.5.18.3/src/kcompat.h drivers/net/e1000e/kcompat.h
--- e1000e-0.5.18.3/src/kcompat.h	2009-03-05 18:43:14.000000000 +0000
+++ drivers/net/e1000e/kcompat.h	2009-05-21 23:46:04.000000000 +0100
@@ -141,12 +141,6 @@
 #endif
 #endif
 
-#ifndef IRQ_HANDLED
-#define irqreturn_t void
-#define IRQ_HANDLED
-#define IRQ_NONE
-#endif
-
 #ifndef SET_NETDEV_DEV
 #define SET_NETDEV_DEV(net, pdev)
 #endif
@@ -1650,4 +1644,12 @@
 #define pci_request_selected_regions_exclusive(pdev, bars, name) \
 		pci_request_selected_regions(pdev, bars, name)
 #endif /* < 2.6.29 */
+/*****************************************************************************/
+#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) )
+#ifndef IRQ_HANDLED
+#define irqreturn_t void
+#define IRQ_HANDLED
+#define IRQ_NONE
+#endif
+#endif /* < 2.6.30 */
 #endif /* _KCOMPAT_H_ */
diff -u e1000e-0.5.18.3/src/kcompat_ethtool.c drivers/net/e1000e/kcompat_ethtool.c
--- e1000e-0.5.18.3/src/kcompat_ethtool.c	2009-03-05 18:43:14.000000000 +0000
+++ drivers/net/e1000e/kcompat_ethtool.c	2009-05-20 21:28:02.000000000 +0100
@@ -54,6 +54,7 @@
 #include <linux/ethtool.h>
 #include <linux/netdevice.h>
 #include <asm/uaccess.h>
+#include <net/net_namespace.h>
 
 #include "kcompat.h"
 
@@ -782,7 +783,7 @@
 #define ETHTOOL_OPS_COMPAT
 int ethtool_ioctl(struct ifreq *ifr)
 {
-	struct net_device *dev = __dev_get_by_name(ifr->ifr_name);
+	struct net_device *dev = __dev_get_by_name(&init_net, ifr->ifr_name);
 	void *useraddr = (void *) ifr->ifr_data;
 	u32 ethcmd;
 
