diff --git a/devices/generic.c b/devices/generic.c index 84653bef..9f95d56a 100644 --- a/devices/generic.c +++ b/devices/generic.c @@ -114,11 +114,13 @@ void ec_gen_poll(struct net_device *dev) /*****************************************************************************/ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) static const struct net_device_ops ec_gen_netdev_ops = { - .ndo_open = ec_gen_netdev_open, - .ndo_stop = ec_gen_netdev_stop, - .ndo_start_xmit = ec_gen_netdev_start_xmit, + .ndo_open = ec_gen_netdev_open, + .ndo_stop = ec_gen_netdev_stop, + .ndo_start_xmit = ec_gen_netdev_start_xmit, }; +#endif /*****************************************************************************/ @@ -135,12 +137,20 @@ int ec_gen_device_init( dev->ecdev = NULL; dev->socket = NULL; - dev->netdev = alloc_netdev(sizeof(ec_gen_device_t *), &null, ether_setup); - if (!dev->netdev) { - return -ENOMEM; - } + dev->netdev = alloc_netdev(sizeof(ec_gen_device_t *), &null, ether_setup); + if (!dev->netdev) { + return -ENOMEM; + } memcpy(dev->netdev->dev_addr, real_netdev->dev_addr, ETH_ALEN); + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) dev->netdev->netdev_ops = &ec_gen_netdev_ops; +#else + dev->netdev->open = ec_gen_netdev_open; + dev->netdev->stop = ec_gen_netdev_stop; + dev->netdev->hard_start_xmit = ec_gen_netdev_start_xmit; +#endif + priv = netdev_priv(dev->netdev); *priv = dev; @@ -212,7 +222,7 @@ int ec_gen_device_offer( { int ret = 0; - dev->ecdev = ecdev_offer(dev->netdev, ec_gen_poll, THIS_MODULE); + dev->ecdev = ecdev_offer(dev->netdev, ec_gen_poll, THIS_MODULE); if (dev->ecdev) { if (ec_gen_device_create_socket(dev, real_netdev)) { ecdev_withdraw(dev->ecdev);