Generic driver net_device_ops for kernels < 2.6.29.
This commit is contained in:
parent
3a757b8dcc
commit
f3975598ef
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue