main.c (a543c5989d7711d984608f4e12a73218642ca865) | main.c (5d65cae4bf6ffe29bba90f621e947922c5fb80db) |
---|---|
1/* 2 * Copyright (C) 2007-2012 Siemens AG 3 * 4 * Written by: 5 * Alexander Smirnov <alex.bluesman.smirnov@gmail.com> 6 * 7 * Based on the code from 'linux-zigbee.sourceforge.net' project. 8 * --- 33 unchanged lines hidden (view full) --- 42 sdata->dev = dev; 43 sdata->local = local; 44 45 dev->needed_headroom = local->hw.extra_tx_headroom; 46 47 SET_NETDEV_DEV(dev, &local->phy->dev); 48 49 mutex_lock(&local->iflist_mtx); | 1/* 2 * Copyright (C) 2007-2012 Siemens AG 3 * 4 * Written by: 5 * Alexander Smirnov <alex.bluesman.smirnov@gmail.com> 6 * 7 * Based on the code from 'linux-zigbee.sourceforge.net' project. 8 * --- 33 unchanged lines hidden (view full) --- 42 sdata->dev = dev; 43 sdata->local = local; 44 45 dev->needed_headroom = local->hw.extra_tx_headroom; 46 47 SET_NETDEV_DEV(dev, &local->phy->dev); 48 49 mutex_lock(&local->iflist_mtx); |
50 if (!local->running) { | 50 if (!local->started) { |
51 mutex_unlock(&local->iflist_mtx); 52 return -ENODEV; 53 } 54 mutex_unlock(&local->iflist_mtx); 55 56 err = register_netdev(dev); 57 if (err < 0) 58 return err; --- 174 unchanged lines hidden (view full) --- 233 234 rc = wpan_phy_register(local->phy); 235 if (rc < 0) 236 goto out_wq; 237 238 rtnl_lock(); 239 240 mutex_lock(&local->iflist_mtx); | 51 mutex_unlock(&local->iflist_mtx); 52 return -ENODEV; 53 } 54 mutex_unlock(&local->iflist_mtx); 55 56 err = register_netdev(dev); 57 if (err < 0) 58 return err; --- 174 unchanged lines hidden (view full) --- 233 234 rc = wpan_phy_register(local->phy); 235 if (rc < 0) 236 goto out_wq; 237 238 rtnl_lock(); 239 240 mutex_lock(&local->iflist_mtx); |
241 local->running = MAC802154_DEVICE_RUN; | 241 local->started = MAC802154_DEVICE_RUN; |
242 mutex_unlock(&local->iflist_mtx); 243 244 rtnl_unlock(); 245 246 return 0; 247 248out_wq: 249 destroy_workqueue(local->workqueue); --- 9 unchanged lines hidden (view full) --- 259 260 tasklet_kill(&local->tasklet); 261 flush_workqueue(local->workqueue); 262 destroy_workqueue(local->workqueue); 263 264 rtnl_lock(); 265 266 mutex_lock(&local->iflist_mtx); | 242 mutex_unlock(&local->iflist_mtx); 243 244 rtnl_unlock(); 245 246 return 0; 247 248out_wq: 249 destroy_workqueue(local->workqueue); --- 9 unchanged lines hidden (view full) --- 259 260 tasklet_kill(&local->tasklet); 261 flush_workqueue(local->workqueue); 262 destroy_workqueue(local->workqueue); 263 264 rtnl_lock(); 265 266 mutex_lock(&local->iflist_mtx); |
267 local->running = MAC802154_DEVICE_STOPPED; | 267 local->started = MAC802154_DEVICE_STOPPED; |
268 mutex_unlock(&local->iflist_mtx); 269 270 list_for_each_entry_safe(sdata, next, &local->interfaces, list) { 271 mutex_lock(&sdata->local->iflist_mtx); 272 list_del(&sdata->list); 273 mutex_unlock(&sdata->local->iflist_mtx); 274 275 unregister_netdevice(sdata->dev); 276 } 277 278 rtnl_unlock(); 279 280 wpan_phy_unregister(local->phy); 281} 282EXPORT_SYMBOL(ieee802154_unregister_hw); 283 284MODULE_DESCRIPTION("IEEE 802.15.4 implementation"); 285MODULE_LICENSE("GPL v2"); | 268 mutex_unlock(&local->iflist_mtx); 269 270 list_for_each_entry_safe(sdata, next, &local->interfaces, list) { 271 mutex_lock(&sdata->local->iflist_mtx); 272 list_del(&sdata->list); 273 mutex_unlock(&sdata->local->iflist_mtx); 274 275 unregister_netdevice(sdata->dev); 276 } 277 278 rtnl_unlock(); 279 280 wpan_phy_unregister(local->phy); 281} 282EXPORT_SYMBOL(ieee802154_unregister_hw); 283 284MODULE_DESCRIPTION("IEEE 802.15.4 implementation"); 285MODULE_LICENSE("GPL v2"); |