rtl8xxxu: Unregister from mac80211 before shutting down the device

This fixes a long standing bug where mac80211 would send disconnect
packets to the device, after we had shut down the device.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
Jes Sorensen
2016-04-14 16:37:13 -04:00
committed by Kalle Valo
parent 8e25496090
commit 8cae2f1da8

View File

@@ -8003,13 +8003,6 @@ exit:
return ret; return ret;
} }
static void rtl8xxxu_disable_device(struct ieee80211_hw *hw)
{
struct rtl8xxxu_priv *priv = hw->priv;
priv->fops->power_off(priv);
}
static void rtl8xxxu_cam_write(struct rtl8xxxu_priv *priv, static void rtl8xxxu_cam_write(struct rtl8xxxu_priv *priv,
struct ieee80211_key_conf *key, const u8 *mac) struct ieee80211_key_conf *key, const u8 *mac)
{ {
@@ -9726,13 +9719,14 @@ static void rtl8xxxu_disconnect(struct usb_interface *interface)
hw = usb_get_intfdata(interface); hw = usb_get_intfdata(interface);
priv = hw->priv; priv = hw->priv;
rtl8xxxu_disable_device(hw); ieee80211_unregister_hw(hw);
priv->fops->power_off(priv);
usb_set_intfdata(interface, NULL); usb_set_intfdata(interface, NULL);
dev_info(&priv->udev->dev, "disconnecting\n"); dev_info(&priv->udev->dev, "disconnecting\n");
ieee80211_unregister_hw(hw);
kfree(priv->fw_data); kfree(priv->fw_data);
mutex_destroy(&priv->usb_buf_mutex); mutex_destroy(&priv->usb_buf_mutex);
mutex_destroy(&priv->h2c_mutex); mutex_destroy(&priv->h2c_mutex);