Skip to content

Commit

Permalink
mac802154: move local started handling
Browse files Browse the repository at this point in the history
This patch removes the current handling of started boolean. This is
actually dead code, because mac802154_netdev_register can't never be
called before ieee802154_register_hw. This means that local->started is
always be true when mac802154_netdev_register is called. Instead we
using this now like mac80211 to indicate that an instance of sdata is
running.

Signed-off-by: Alexander Aring <[email protected]>
Signed-off-by: Marcel Holtmann <[email protected]>
  • Loading branch information
alexaring authored and holtmann committed Oct 28, 2014
1 parent 5d65cae commit e363eca
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 26 deletions.
4 changes: 4 additions & 0 deletions net/mac802154/driver-ops.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ static inline int drv_start(struct ieee802154_local *local)
{
might_sleep();

local->started = true;

return local->ops->start(&local->hw);
}

Expand All @@ -37,6 +39,8 @@ static inline void drv_stop(struct ieee802154_local *local)
might_sleep();

local->ops->stop(&local->hw);

local->started = false;
}

static inline int drv_set_channel(struct ieee802154_local *local,
Expand Down
7 changes: 0 additions & 7 deletions net/mac802154/ieee802154_i.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,19 +50,12 @@ struct ieee802154_local {
*/
struct workqueue_struct *workqueue;

/* SoftMAC device is registered and running. One can add subinterfaces.
* This flag should be modified under slaves_mtx and RTNL, so you can
* read them using any of protection methods.
*/
bool started;

struct tasklet_struct tasklet;
struct sk_buff_head skb_queue;
};

#define MAC802154_DEVICE_STOPPED 0x00
#define MAC802154_DEVICE_RUN 0x01

enum {
IEEE802154_RX_MSG = 1,
};
Expand Down
19 changes: 0 additions & 19 deletions net/mac802154/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,6 @@ mac802154_netdev_register(struct wpan_phy *phy, struct net_device *dev)

SET_NETDEV_DEV(dev, &local->phy->dev);

mutex_lock(&local->iflist_mtx);
if (!local->started) {
mutex_unlock(&local->iflist_mtx);
return -ENODEV;
}
mutex_unlock(&local->iflist_mtx);

err = register_netdev(dev);
if (err < 0)
return err;
Expand Down Expand Up @@ -235,14 +228,6 @@ int ieee802154_register_hw(struct ieee802154_hw *hw)
if (rc < 0)
goto out_wq;

rtnl_lock();

mutex_lock(&local->iflist_mtx);
local->started = MAC802154_DEVICE_RUN;
mutex_unlock(&local->iflist_mtx);

rtnl_unlock();

return 0;

out_wq:
Expand All @@ -263,10 +248,6 @@ void ieee802154_unregister_hw(struct ieee802154_hw *hw)

rtnl_lock();

mutex_lock(&local->iflist_mtx);
local->started = MAC802154_DEVICE_STOPPED;
mutex_unlock(&local->iflist_mtx);

list_for_each_entry_safe(sdata, next, &local->interfaces, list) {
mutex_lock(&sdata->local->iflist_mtx);
list_del(&sdata->list);
Expand Down

0 comments on commit e363eca

Please sign in to comment.