Skip to content

Commit

Permalink
mac80211: Fix initial hardware configuration
Browse files Browse the repository at this point in the history
On the initial device-open we need to defer the hardware reconfiguration
after we incremented the open_count, because the hw_config checks this flag
and won't call the lowlevel driver in case it is zero.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Michael Buesch authored and John W. Linville committed Feb 15, 2008
1 parent db433fe commit ceffefd
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion net/mac80211/ieee80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ static int ieee80211_open(struct net_device *dev)
struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
struct ieee80211_if_init_conf conf;
int res;
bool need_hw_reconfig = 0;

sdata = IEEE80211_DEV_TO_SUB_IF(dev);

Expand Down Expand Up @@ -218,7 +219,7 @@ static int ieee80211_open(struct net_device *dev)
res = local->ops->start(local_to_hw(local));
if (res)
return res;
ieee80211_hw_config(local);
need_hw_reconfig = 1;
ieee80211_led_radio(local, local->hw.conf.radio_enabled);
}

Expand Down Expand Up @@ -282,6 +283,8 @@ static int ieee80211_open(struct net_device *dev)
atomic_inc(&local->iff_promiscs);

local->open_count++;
if (need_hw_reconfig)
ieee80211_hw_config(local);

netif_start_queue(dev);

Expand Down

0 comments on commit ceffefd

Please sign in to comment.