[802.11] Set channels early on to avoid tuning to an undefined channel

Some cards (such as ath5k) always need to tune to a particular channel
when they are reset; the reset may happen upon open(), which is before
the channels array would be set up (in prepare_probe()). Avoid tuning
the card to an inconsistent state by copying the hardware
supported-channels array to the 802.11 device's allowable-channels
array even before channels are "properly" set up.

Signed-off-by: Michael Brown <mcb30@etherboot.org>
pull/1/head
Joshua Oreman 2009-08-01 09:52:59 -07:00 committed by Michael Brown
parent f128a6db21
commit 1e810bebe9
1 changed files with 5 additions and 0 deletions

View File

@ -794,6 +794,11 @@ int net80211_register ( struct net80211_device *dev,
memcpy ( dev->hw, hw, sizeof ( *hw ) );
memcpy ( dev->netdev->ll_addr, hw->hwaddr, ETH_ALEN );
/* Set some sensible channel defaults for driver's open() function */
memcpy ( dev->channels, dev->hw->channels,
NET80211_MAX_CHANNELS * sizeof ( dev->channels[0] ) );
dev->channel = 0;
list_add_tail ( &dev->list, &net80211_devices );
return register_netdev ( dev->netdev );
}