In rtl8153_runtime_enable(), the runtime enable/disable logic for RTL8153 devices was incomplete, missing r8153_queue_wake() to enable or disable the automatic wake-up function. A proper implementation can be found in rtl8156_runtime_enable().
Add r8153_queue_wake(tp, true) if enable flag is set true, and add r8153_queue_wake(tp, false) otherwise.
Fixes: 02552754a7ac ("r8152: adjust rtl8153_runtime_enable function") Cc: stable@vger.kernel.org # v4.13 Signed-off-by: Wentao Liang vulab@iscas.ac.cn --- drivers/net/usb/r8152.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 468c73974046..cb708b79a7af 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -4004,10 +4004,12 @@ static void rtl_runtime_suspend_enable(struct r8152 *tp, bool enable) static void rtl8153_runtime_enable(struct r8152 *tp, bool enable) { if (enable) { + r8153_queue_wake(tp, true); r8153_u1u2en(tp, false); r8153_u2p3en(tp, false); rtl_runtime_suspend_enable(tp, true); } else { + r8153_queue_wake(tp, false); rtl_runtime_suspend_enable(tp, false);
switch (tp->version) {