Browse Source

[PATCH] bcm43xx: move initialized = 1 to the end of init_board.

Note that the periodic work has to be started with initialized==1

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Michael Buesch 19 years ago
parent
commit
cad2b31a76
1 changed files with 6 additions and 4 deletions
  1. 6 4
      drivers/net/wireless/bcm43xx/bcm43xx_main.c

+ 6 - 4
drivers/net/wireless/bcm43xx/bcm43xx_main.c

@@ -3484,15 +3484,17 @@ static int bcm43xx_init_board(struct bcm43xx_private *bcm)
 
 	bcm43xx_pctl_set_clock(bcm, BCM43xx_PCTL_CLK_DYNAMIC);
 
-	spin_lock_irqsave(&bcm->lock, flags);
-	bcm->initialized = 1;
-	spin_unlock_irqrestore(&bcm->lock, flags);
-
 	if (bcm->current_core->radio->initial_channel != 0xFF) {
 		bcm43xx_mac_suspend(bcm);
 		bcm43xx_radio_selectchannel(bcm, bcm->current_core->radio->initial_channel, 0);
 		bcm43xx_mac_enable(bcm);
 	}
+
+	/* Initialization of the board is done. Flag it as such. */
+	spin_lock_irqsave(&bcm->lock, flags);
+	bcm->initialized = 1;
+	spin_unlock_irqrestore(&bcm->lock, flags);
+
 	bcm43xx_periodic_tasks_setup(bcm);
 
 	assert(err == 0);