Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82fbb01c authored by Pekka Enberg's avatar Pekka Enberg Committed by Greg Kroah-Hartman
Browse files

Staging: w35und: unregister device from the ieee80211 stack upon ->disconnect()



Impact: fix module removal

This patch fixes an oops when the w35und module is removed from the
kernel and added back.

Reported-by: default avatarluoyi <luoyi.ly@gmail.com>
Tested-by: default avatarSandro Bonazzola <sandro.bonazzola@gmail.com>
Cc: Pavel Machek <pavel@ucw.cz>
Signed-off-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 091bf762
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -386,7 +386,7 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id
	if (err)
		goto error_free_hw;

	usb_set_intfdata(intf, priv);
	usb_set_intfdata(intf, dev);

	return 0;

@@ -415,10 +415,15 @@ static void wb35_hw_halt(struct wbsoft_priv *adapter)

static void wb35_disconnect(struct usb_interface *intf)
{
	struct wbsoft_priv *priv = usb_get_intfdata(intf);
	struct ieee80211_hw *hw = usb_get_intfdata(intf);
	struct wbsoft_priv *priv = hw->priv;

	wb35_hw_halt(priv);

	ieee80211_stop_queues(hw);
	ieee80211_unregister_hw(hw);
	ieee80211_free_hw(hw);

	usb_set_intfdata(intf, NULL);
	usb_put_dev(interface_to_usbdev(intf));
}