diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index d8c65ecef9d9c78c318bb2dfda4241f565a74574..470af8c1a4a01a680198b53a2fe3da15d3f2c2c0 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -401,7 +401,7 @@ struct net_device
 	} reg_state;
 
 	/* Net device features */
-	int			features;
+	unsigned long		features;
 #define NETIF_F_SG		1	/* Scatter/gather IO. */
 #define NETIF_F_IP_CSUM		2	/* Can checksum only TCP/UDP over IPv4. */
 #define NETIF_F_NO_CSUM		4	/* Does not require checksum. F.e. loopack. */
diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index 252bfc6f03f4ad9ed6050c848e99b8758d3f7986..2a56a52183632873ec538c5d3d06cda875649345 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -682,7 +682,7 @@ int dev_ethtool(struct ifreq *ifr)
 	void __user *useraddr = ifr->ifr_data;
 	u32 ethcmd;
 	int rc;
-	int old_features;
+	unsigned long old_features;
 
 	/*
 	 * XXX: This can be pushed down into the ethtool_* handlers that