iwlwifi: create iwl_mac80211 unregister routine

The mac80211 setup_register operations are collected in one routine,
but the cleanup routines are not.  Create a routine for this.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
This commit is contained in:
Don Fry 2011-12-09 10:07:38 -08:00 committed by Wey-Yi Guy
parent 23fd7b029f
commit 09af14030d
3 changed files with 11 additions and 6 deletions

View file

@ -1915,12 +1915,7 @@ void __devexit iwl_remove(struct iwl_priv * priv)
set_bit(STATUS_EXIT_PENDING, &priv->shrd->status);
iwl_testmode_cleanup(priv);
iwl_leds_exit(priv);
if (priv->mac80211_registered) {
ieee80211_unregister_hw(priv->hw);
priv->mac80211_registered = 0;
}
iwlagn_mac_unregister(priv);
iwl_tt_exit(priv);

View file

@ -91,6 +91,7 @@ void iwlagn_prepare_restart(struct iwl_priv *priv);
struct ieee80211_hw *iwl_alloc_all(void);
int iwlagn_mac_setup_register(struct iwl_priv *priv,
struct iwlagn_ucode_capabilities *capa);
void iwlagn_mac_unregister(struct iwl_priv *priv);
/* RXON */
int iwlagn_set_pan_params(struct iwl_priv *priv);

View file

@ -245,6 +245,15 @@ int iwlagn_mac_setup_register(struct iwl_priv *priv,
return 0;
}
void iwlagn_mac_unregister(struct iwl_priv *priv)
{
if (!priv->mac80211_registered)
return;
iwl_leds_exit(priv);
ieee80211_unregister_hw(priv->hw);
priv->mac80211_registered = 0;
}
static int __iwl_up(struct iwl_priv *priv)
{
struct iwl_rxon_context *ctx;