diff -uNr dahdi-linux-2.2.0.2.ORIg/drivers/dahdi/xpp/xbus-sysfs.c dahdi-linux-2.2.0.2/drivers/dahdi/xpp/xbus-sysfs.c --- dahdi-linux-2.2.0.2.ORIg/drivers/dahdi/xpp/xbus-sysfs.c 2009-10-22 18:04:47.000000000 +0100 +++ dahdi-linux-2.2.0.2/drivers/dahdi/xpp/xbus-sysfs.c 2009-10-22 18:05:54.000000000 +0100 @@ -707,7 +707,11 @@ dev->parent = &xbus->astribank; dev_set_name(dev, "%02d:%1x:%1x", xbus->num, xpd->addr.unit, xpd->addr.subunit); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) + dev_set_drvdata(dev, xpd); +#else dev->driver_data = xpd; +#endif dev->release = xpd_release; ret = device_register(dev); if(ret) { @@ -728,11 +732,21 @@ BUG_ON(!xbus); XPD_DBG(DEVICES, xpd, "SYSFS\n"); dev = &xpd->xpd_dev; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) + if(!dev_get_drvdata(dev)) + return; + BUG_ON(dev_get_drvdata(dev) != xpd); +#else if(!dev->driver_data) return; BUG_ON(dev->driver_data != xpd); +#endif device_unregister(dev); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) + dev_set_drvdata(dev, NULL); +#else dev->driver_data = NULL; +#endif } /*--------- Sysfs Device handling ----*/ @@ -746,9 +760,15 @@ astribank = &xbus->astribank; BUG_ON(!astribank); sysfs_remove_link(&astribank->kobj, "transport"); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) + if(!dev_get_drvdata(astribank)) + return; + BUG_ON(dev_get_drvdata(astribank) != xbus); +#else if(!astribank->driver_data) return; BUG_ON(astribank->driver_data != xbus); +#endif device_unregister(&xbus->astribank); } @@ -764,18 +784,30 @@ astribank->bus = &toplevel_bus_type; astribank->parent = xbus->transport.transport_device; dev_set_name(astribank, "xbus-%02d", xbus->num); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) + dev_set_drvdata(astribank, xbus); +#else astribank->driver_data = xbus; +#endif astribank->release = astribank_release; ret = device_register(astribank); if(ret) { XBUS_ERR(xbus, "%s: device_register failed: %d\n", __FUNCTION__, ret); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) + dev_set_drvdata(astribank, NULL); +#else astribank->driver_data = NULL; +#endif goto out; } ret = sysfs_create_link(&astribank->kobj, &astribank->parent->kobj, "transport"); if(ret < 0) { XBUS_ERR(xbus, "%s: sysfs_create_link failed: %d\n", __FUNCTION__, ret); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) + dev_set_drvdata(astribank, NULL); +#else astribank->driver_data = NULL; +#endif goto out; } out: diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/xpp/xpp_dahdi.c dahdi-linux-2.2.0.2/drivers/dahdi/xpp/xpp_dahdi.c --- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/xpp/xpp_dahdi.c 2009-10-22 18:52:23.000000000 +0100 +++ dahdi-linux-2.2.0.2/drivers/dahdi/xpp/xpp_dahdi.c 2009-10-22 18:52:55.000000000 +0100 @@ -865,9 +865,11 @@ #endif spin_lock_irqsave(&xbus->lock, flags); atomic_inc(&xpd->open_counter); +/* LINE_DBG(DEVICES, xpd, pos, "%s[%d]: open_counter=%d\n", current->comm, current->pid, atomic_read(&xpd->open_counter)); +*/ spin_unlock_irqrestore(&xbus->lock, flags); if(xpd->xops->card_open) xpd->xops->card_open(xpd, pos); @@ -885,9 +887,11 @@ spin_unlock_irqrestore(&xbus->lock, flags); if(xpd->xops->card_close) xpd->xops->card_close(xpd, pos); +/* LINE_DBG(DEVICES, xpd, pos, "%s[%d]: open_counter=%d\n", current->comm, current->pid, atomic_read(&xpd->open_counter)); +*/ atomic_dec(&xpd->open_counter); /* from xpp_open() */ put_xpd(__FUNCTION__, xpd); /* from xpp_open() */ return 0; diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/dahdi-base.c dahdi-linux-2.2.0.2/drivers/dahdi/dahdi-base.c --- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/dahdi-base.c 2009-10-22 17:14:40.000000000 +0100 +++ dahdi-linux-2.2.0.2/drivers/dahdi/dahdi-base.c 2009-10-22 17:14:49.000000000 +0100 @@ -46,6 +46,7 @@ #include #include #include +#include #include diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/pciradio.c dahdi-linux-2.2.0.2/drivers/dahdi/pciradio.c --- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/pciradio.c 2009-10-22 17:14:40.000000000 +0100 +++ dahdi-linux-2.2.0.2/drivers/dahdi/pciradio.c 2009-10-22 17:14:49.000000000 +0100 @@ -51,6 +51,7 @@ #include #include #include +#include #include #include diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/voicebus/voicebus.c dahdi-linux-2.2.0.2/drivers/dahdi/voicebus/voicebus.c --- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/voicebus/voicebus.c 2009-10-22 17:14:40.000000000 +0100 +++ dahdi-linux-2.2.0.2/drivers/dahdi/voicebus/voicebus.c 2009-10-22 17:16:44.000000000 +0100 @@ -35,6 +35,7 @@ #include #include #include +#include #include #include "voicebus.h" diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wcfxo.c dahdi-linux-2.2.0.2/drivers/dahdi/wcfxo.c --- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wcfxo.c 2009-10-22 17:14:40.000000000 +0100 +++ dahdi-linux-2.2.0.2/drivers/dahdi/wcfxo.c 2009-10-22 17:14:49.000000000 +0100 @@ -30,6 +30,7 @@ #include #include #include +#include #include #include diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wct1xxp.c dahdi-linux-2.2.0.2/drivers/dahdi/wct1xxp.c --- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wct1xxp.c 2009-10-22 17:14:40.000000000 +0100 +++ dahdi-linux-2.2.0.2/drivers/dahdi/wct1xxp.c 2009-10-22 17:14:49.000000000 +0100 @@ -33,6 +33,7 @@ #include #include #include +#include #include diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wctdm24xxp/base.c dahdi-linux-2.2.0.2/drivers/dahdi/wctdm24xxp/base.c --- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wctdm24xxp/base.c 2009-10-22 17:14:40.000000000 +0100 +++ dahdi-linux-2.2.0.2/drivers/dahdi/wctdm24xxp/base.c 2009-10-22 17:14:49.000000000 +0100 @@ -45,6 +45,7 @@ #include #include #include +#include #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) #include #else diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wctdm.c dahdi-linux-2.2.0.2/drivers/dahdi/wctdm.c --- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wctdm.c 2009-10-22 17:14:40.000000000 +0100 +++ dahdi-linux-2.2.0.2/drivers/dahdi/wctdm.c 2009-10-22 17:14:49.000000000 +0100 @@ -31,6 +31,8 @@ #include #include #include +#include + #include #include "proslic.h" diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wcte11xp.c dahdi-linux-2.2.0.2/drivers/dahdi/wcte11xp.c --- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/wcte11xp.c 2009-10-22 17:14:40.000000000 +0100 +++ dahdi-linux-2.2.0.2/drivers/dahdi/wcte11xp.c 2009-10-22 17:14:49.000000000 +0100 @@ -32,6 +32,7 @@ #include #include #include +#include #include diff -uNr dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/xpp/xbus-core.c dahdi-linux-2.2.0.2/drivers/dahdi/xpp/xbus-core.c --- dahdi-linux-2.2.0.2.ORIG/drivers/dahdi/xpp/xbus-core.c 2009-10-22 17:14:40.000000000 +0100 +++ dahdi-linux-2.2.0.2/drivers/dahdi/xpp/xbus-core.c 2009-10-22 17:16:10.000000000 +0100 @@ -35,6 +35,7 @@ #include #include #include /* for msleep() to debug */ +#include #include "xpd.h" #include "xpp_dahdi.h" #include "xbus-core.h" --- dahdi-linux-2.2.0.2/drivers/dahdi/wctc4xxp/base.c 2009/08/04 16:30:11 6936 +++ dahdi-linux-2.2.0.2/drivers/dahdi/wctc4xxp/base.c 2009/08/04 16:38:56 6937 @@ -742,6 +742,17 @@ return 0; } +#ifdef HAVE_NET_DEVICE_OPS +static const struct net_device_ops wctc4xxp_netdev_ops = { + .ndo_set_multicast_list = &wctc4xxp_net_set_multi, + .ndo_open = &wctc4xxp_net_up, + .ndo_stop = &wctc4xxp_net_down, + .ndo_start_xmit = &wctc4xxp_net_hard_start_xmit, + .ndo_get_stats = &wctc4xxp_net_get_stats, + .ndo_do_ioctl = &wctc4xxp_net_ioctl, +}; +#endif + /** * wctc4xxp_net_register - Register a new network interface. * @wc: transcoder card to register the interface for. @@ -773,14 +784,21 @@ netdev->priv = wc; # endif memcpy(netdev->dev_addr, our_mac, sizeof(our_mac)); + +# ifdef HAVE_NET_DEVICE_OPS + netdev->netdev_ops = &wctc4xxp_netdev_ops; +# else netdev->set_multicast_list = &wctc4xxp_net_set_multi; netdev->open = &wctc4xxp_net_up; netdev->stop = &wctc4xxp_net_down; netdev->hard_start_xmit = &wctc4xxp_net_hard_start_xmit; netdev->get_stats = &wctc4xxp_net_get_stats; netdev->do_ioctl = &wctc4xxp_net_ioctl; +# endif + netdev->promiscuity = 0; netdev->flags |= IFF_NOARP; + # if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24) netdev->poll = &wctc4xxp_poll; netdev->weight = 64; diff -uNr dahdi-linux-2.2.0.2.ORIG/Makefile dahdi-linux-2.2.0.2/Makefile --- dahdi-linux-2.2.0.2.ORIG/Makefile 2009-10-22 16:46:00.000000000 +0100 +++ dahdi-linux-2.2.0.2/Makefile 2009-10-22 16:46:27.000000000 +0100 @@ -184,7 +184,7 @@ build_tools/uninstall-modules dahdi $(KVERS) endif $(KMAKE) INSTALL_MOD_PATH=$(DESTDIR) INSTALL_MOD_DIR=dahdi modules_install - [ `id -u` = 0 ] && /sbin/depmod -a $(KVERS) || : +# [ `id -u` = 0 ] && /sbin/depmod -a $(KVERS) || : uninstall-modules: ifdef DESTDIR