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:
@@ -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);
|
||||||
|
Reference in New Issue
Block a user