lkml.org 
[lkml]   [2019]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.3 053/197] r8152: Set macpassthru in reset_resume callback
    Date
    From: Kai-Heng Feng <kai.heng.feng@canonical.com>

    [ Upstream commit a54cdeeb04fc719e4c7f19d6e28dba7ea86cee5b ]

    r8152 may fail to establish network connection after resume from system
    suspend.

    If the USB port connects to r8152 lost its power during system suspend,
    the MAC address was written before is lost. The reason is that The MAC
    address doesn't get written again in its reset_resume callback.

    So let's set MAC address again in reset_resume callback. Also remove
    unnecessary lock as no other locking attempt will happen during
    reset_resume.

    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/usb/r8152.c | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
    index 04137ac373b07..9eedc0714422c 100644
    --- a/drivers/net/usb/r8152.c
    +++ b/drivers/net/usb/r8152.c
    @@ -4533,10 +4533,9 @@ static int rtl8152_reset_resume(struct usb_interface *intf)
    struct r8152 *tp = usb_get_intfdata(intf);

    clear_bit(SELECTIVE_SUSPEND, &tp->flags);
    - mutex_lock(&tp->control);
    tp->rtl_ops.init(tp);
    queue_delayed_work(system_long_wq, &tp->hw_phy_work, 0);
    - mutex_unlock(&tp->control);
    + set_ethernet_addr(tp);
    return rtl8152_resume(intf);
    }

    --
    2.20.1


    \
     
     \ /
      Last update: 2019-10-27 22:30    [W:4.037 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site