diff -urNp e1000e-1.10.6/src/hw.h e1000e-1.10.6-new/src/hw.h
--- e1000e-1.10.6/src/hw.h	2012-03-12 20:51:03.000000000 -0400
+++ e1000e-1.10.6-new/src/hw.h	2012-04-14 19:00:45.000000000 -0400
@@ -509,7 +509,7 @@ struct e1000_mac_operations {
 	 s32(*wait_autoneg) (struct e1000_hw *);
 	 s32(*acquire_swfw_sync) (struct e1000_hw *, u16);
 	void (*release_swfw_sync) (struct e1000_hw *, u16);
-};
+} __no_const;
 
 /*
  * When to use various PHY register access functions:
@@ -550,7 +550,7 @@ struct e1000_phy_operations {
 	 s32(*write_reg_page) (struct e1000_hw *, u32, u16);
 	void (*power_up) (struct e1000_hw *);
 	void (*power_down) (struct e1000_hw *);
-};
+} __no_const;
 
 struct e1000_nvm_operations {
 	s32(*init_params) (struct e1000_hw *);
@@ -562,7 +562,7 @@ struct e1000_nvm_operations {
 	 s32(*valid_led_default) (struct e1000_hw *, u16 *);
 	 s32(*validate) (struct e1000_hw *);
 	 s32(*write) (struct e1000_hw *, u16, u16, u16 *);
-};
+} __no_const;
 
 struct e1000_mac_info {
 	struct e1000_mac_operations ops;
diff -urNp e1000e-1.10.6/src/Makefile e1000e-1.10.6-new/src/Makefile
--- e1000e-1.10.6/src/Makefile	2012-03-12 20:51:03.000000000 -0400
+++ e1000e-1.10.6-new/src/Makefile	2012-04-14 18:57:23.000000000 -0400
@@ -131,7 +131,7 @@ ifeq ($(ARCH),alpha)
   EXTRA_CFLAGS += -ffixed-8 -mno-fp-regs
 endif
 ifeq ($(ARCH),x86_64)
-  EXTRA_CFLAGS += -mcmodel=kernel -mno-red-zone
+  EXTRA_CFLAGS += -m64 -mcmodel=kernel -mno-red-zone
 endif
 ifeq ($(ARCH),ppc)
   EXTRA_CFLAGS += -msoft-float
