diff options
author | hayeswang <hayeswang@realtek.com> | 2014-09-30 04:48:01 -0400 |
---|---|---|
committer | Vladislav Zhurba <vzhurba@nvidia.com> | 2018-02-01 16:58:01 -0500 |
commit | f2f8e8656c90d7f43e5ce540ed70c0db05f46666 (patch) | |
tree | 79233604e7a6b2db0927cddad301f6d2c954a034 /drivers/net/usb/r8152_shield.c | |
parent | 8c28a723551869ae40d25be8e000d10c606a1e10 (diff) |
r8152: fix setting RTL8152_UNPLUG
The flag of RTL8152_UNPLUG should only be set when the device is
unplugged, not each time the rtl8152_disconnect() is called.
Otherwise, the device wouldn't be stopped normally.
From http://git.kernel.org/cgit/linux/kernel/git/davem/net.git/commit/?id=f561de33d63aefb97fb0c3653a36fb32d4e8c74a
Change-Id: I7dbc931baa65efa46d572ebd7b93209e6fe01751
Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from upstream commit f561de33d63aefb97fb0c3653a36fb32d4e8c74a)
Signed-off-by: Aly Hirani <ahirani@nvidia.com>
Reviewed-on: http://git-master/r/553398
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/net/usb/r8152_shield.c')
-rw-r--r-- | drivers/net/usb/r8152_shield.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/usb/r8152_shield.c b/drivers/net/usb/r8152_shield.c index 8f122d4b0..6a0aad588 100644 --- a/drivers/net/usb/r8152_shield.c +++ b/drivers/net/usb/r8152_shield.c | |||
@@ -3757,7 +3757,11 @@ static void rtl8152_disconnect(struct usb_interface *intf) | |||
3757 | 3757 | ||
3758 | usb_set_intfdata(intf, NULL); | 3758 | usb_set_intfdata(intf, NULL); |
3759 | if (tp) { | 3759 | if (tp) { |
3760 | set_bit(RTL8152_UNPLUG, &tp->flags); | 3760 | struct usb_device *udev = tp->udev; |
3761 | |||
3762 | if (udev->state == USB_STATE_NOTATTACHED) | ||
3763 | set_bit(RTL8152_UNPLUG, &tp->flags); | ||
3764 | |||
3761 | tasklet_kill(&tp->tl); | 3765 | tasklet_kill(&tp->tl); |
3762 | unregister_netdev(tp->netdev); | 3766 | unregister_netdev(tp->netdev); |
3763 | tp->rtl_ops.unload(tp); | 3767 | tp->rtl_ops.unload(tp); |