From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 13111C3A5A0 for ; Mon, 20 Apr 2020 20:26:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E3FCC20782 for ; Mon, 20 Apr 2020 20:26:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728253AbgDTU0t (ORCPT ); Mon, 20 Apr 2020 16:26:49 -0400 Received: from netrider.rowland.org ([192.131.102.5]:44977 "HELO netrider.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1728224AbgDTU0r (ORCPT ); Mon, 20 Apr 2020 16:26:47 -0400 Received: (qmail 23111 invoked by uid 500); 20 Apr 2020 16:26:45 -0400 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 20 Apr 2020 16:26:45 -0400 Date: Mon, 20 Apr 2020 16:26:45 -0400 (EDT) From: Alan Stern X-X-Sender: stern@netrider.rowland.org To: Qais Yousef , "Rafael J. Wysocki" cc: Oliver Neukum , Greg Kroah-Hartman , USB list , Linux-pm mailing list , Kernel development list Subject: Re: lockdep warning in urb.c:363 usb_submit_urb In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 25 Mar 2020, Alan Stern wrote: > On Wed, 25 Mar 2020, Qais Yousef wrote: > > > Thanks for all the hints Alan. > > > > I think I figured it out, the below patch seems to fix it for me. Looking > > at other drivers resume functions it seems we're missing the > > pm_runtime_disable()->set_active()->enable() dance. Doing that fixes the > > warning and the dev_err() in driver/base/power. > > Ah, yes. This should have been added years ago; guess I forgot. :-( > > > I don't see xhci-plat.c doing that, I wonder if it needs it too. > > > > I'm not well versed about the details and the rules here. So my fix could be > > a hack, though it does seem the right thing to do. > > > > I wonder why the power core doesn't handle this transparently.. > > Initially, we didn't want the PM core to do this automatically because > we thought some devices might want to remain runtime-suspended > following a system resume, and only the device driver would know what > to do. Qais: So it looks like the discussion with Rafael will lead to changes in the PM core, but they won't go into the -stable kernels, and they won't directly fix the problem here. In the meantime, why don't you write up your patch below and submit it properly? Even better, create similar patches for ehci-platform.c and xhci-plat.c and submit them too. Alan Stern > > diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c > > index 7addfc2cbadc..eb92c8092fae 100644 > > --- a/drivers/usb/host/ohci-platform.c > > +++ b/drivers/usb/host/ohci-platform.c > > @@ -299,6 +299,10 @@ static int ohci_platform_resume(struct device *dev) > > } > > > > ohci_resume(hcd, false); > > + > > + pm_runtime_disable(dev); > > + pm_runtime_set_active(dev); > > + pm_runtime_enable(dev); > > return 0; > > } > > #endif /* CONFIG_PM_SLEEP */ > > > > > > Thanks > > > > -- > > Qais Yousef > > >