[vbox-dev] Source change for kernels after 2.6.30
Larry Finger
Larry.Finger at lwfinger.net
Sat Jun 20 15:08:21 PDT 2009
The 2.6.30 kernel prints the warning
vboxnet0 (): not using net_device_ops yet
This warning has not been fixed, which results in a compilation error
for 2.6.31 kernels. The fix is as follows:
Index: src/vboxnetflt/linux/VBoxNetFlt-linux.c
===================================================================
--- src.orig/vboxnetflt/linux/VBoxNetFlt-linux.c
+++ src/vboxnetflt/linux/VBoxNetFlt-linux.c
@@ -214,6 +214,15 @@ static int vboxNetAdpValidateAddr(struct
return -EADDRNOTAVAIL;
} */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 30)
+static const struct net_device_ops vbox_netdev_ops = {
+ .ndo_open = vboxNetAdpOpen,
+ .ndo_stop = vboxNetAdpStop,
+ .ndo_start_xmit = vboxNetAdpXmit,
+ .ndo_get_stats = vboxNetAdpGetStats,
+};
+#endif
+
static void vboxNetAdpNetDevInit(struct net_device *pNetDev)
{
PVBOXNETADPPRIV pPriv;
@@ -222,10 +231,14 @@ static void vboxNetAdpNetDevInit(struct
/// @todo Use Sun vendor id
memcpy(pNetDev->dev_addr, "\0vbnet", ETH_ALEN);
Log(("vboxNetAdpNetDevInit: pNetDev->dev_addr = %.6Rhxd\n",
pNetDev->dev_addr));
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 30)
+ pNetDev->netdev_ops = &vbox_netdev_ops;
+#else
pNetDev->open = vboxNetAdpOpen;
pNetDev->stop = vboxNetAdpStop;
pNetDev->hard_start_xmit = vboxNetAdpXmit;
pNetDev->get_stats = vboxNetAdpGetStats;
+#endif
//pNetDev->validate_addr = vboxNetAdpValidateAddr;
/* pNetDev-> = vboxNetAdp;
pNetDev-> = vboxNetAdp;
---
Larry
More information about the vbox-dev
mailing list