Browse Source

b43: Suspend MAC while killing the radio

We should suspend the MAC, before we kill the radio. This gives
the MAC a chance to leave any TX/RX state and it avoids races on
the PHY/RADIO registers.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Michael Buesch 16 years ago
parent
commit
b929ecf796
1 changed files with 2 additions and 0 deletions
  1. 2 0
      drivers/net/wireless/b43/phy_common.c

+ 2 - 0
drivers/net/wireless/b43/phy_common.c

@@ -296,8 +296,10 @@ void b43_software_rfkill(struct b43_wldev *dev, enum rfkill_state state)
 		state = RFKILL_STATE_SOFT_BLOCKED;
 		state = RFKILL_STATE_SOFT_BLOCKED;
 	}
 	}
 
 
+	b43_mac_suspend(dev);
 	phy->ops->software_rfkill(dev, state);
 	phy->ops->software_rfkill(dev, state);
 	phy->radio_on = (state == RFKILL_STATE_UNBLOCKED);
 	phy->radio_on = (state == RFKILL_STATE_UNBLOCKED);
+	b43_mac_enable(dev);
 }
 }
 
 
 /**
 /**