From mboxrd@z Thu Jan 1 00:00:00 1970 From: Francois Romieu Subject: Re: [PATCH net-next] r8169: perform reset synchronously in __rtl8169_resume Date: Mon, 21 May 2018 23:24:23 +0200 Message-ID: <20180521212422.GA25067@electric-eye.fr.zoreil.com> References: <040eb6ae-bb21-2d27-14e0-b291cb4cc1c9@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: David Miller , Realtek linux nic maintainers , "netdev@vger.kernel.org" To: Heiner Kallweit Return-path: Received: from violet.fr.zoreil.com ([92.243.8.30]:42065 "EHLO violet.fr.zoreil.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751054AbeEUVdZ (ORCPT ); Mon, 21 May 2018 17:33:25 -0400 Content-Disposition: inline In-Reply-To: <040eb6ae-bb21-2d27-14e0-b291cb4cc1c9@gmail.com> Sender: netdev-owner@vger.kernel.org List-ID: Heiner Kallweit : [...] > diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c > index 75dfac024..1eb4f625a 100644 > --- a/drivers/net/ethernet/realtek/r8169.c > +++ b/drivers/net/ethernet/realtek/r8169.c > @@ -7327,9 +7327,9 @@ static void __rtl8169_resume(struct net_device *dev) > rtl_lock_work(tp); > napi_enable(&tp->napi); > set_bit(RTL_FLAG_TASK_ENABLED, tp->wk.flags); > + if (netif_running(dev)) > + rtl_reset_work(tp); > rtl_unlock_work(tp); > - > - rtl_schedule_task(tp, RTL_FLAG_TASK_RESET_PENDING); > } > > static int rtl8169_resume(struct device *device) netif_running() returns true before rtl_open(): issuing rtl_reset_work() synchronously against uninitialized rings right at the start of rtl_open() won't work as expected. pm_runtime_get_sync() could be issued later in rtl_open() (but I would not mind something different with runtime_{resume/suspend} in open/close). -- Ueimor