Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp37400pxt; Wed, 4 Aug 2021 05:26:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxmVUKyxBjPihwOZdubv4Irzsz9CnasuYw8jJdonJANyMNwymLCCfdqQf9iQ6mogV3awRO2 X-Received: by 2002:a92:9412:: with SMTP id c18mr323231ili.38.1628080005006; Wed, 04 Aug 2021 05:26:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628080004; cv=none; d=google.com; s=arc-20160816; b=duaPrtbOEbn24uglSXA+gfLt2fea0lOP5qj0c6ccOmNbxWeDtdBuBqKHCUKrGkkbzg Kbl+G9Ufr1rj0t+hAfycJS25fGR2dMLZRAuAcgz99nxkZHk5z9Q7CGPYrEvc7xDXK+Z+ haP9OLWzIy6NW6UNHt6xD/r5zlti3XCPZ/M+mGmzLAoMY9QaEx1biiRRov/E+tDSxnX/ ko/ze5Qb5c1fgHoQmlZuF7jYrgRHzwacuT9pTs0JcMs+WatCrTtl7m5CevoOhIPBUzk4 UaIMDVyZOBziwG0ax41A1v5+uogg1G0TEq55NEWqjXsS4VTCt8n9nDy+02NRXqFS5afF v3SQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:in-reply-to:date:subject :cc:to:from:user-agent:references:dkim-signature; bh=v1dBC2a2DmCKapAT/c4LKY3XPpGYZo7KVEZ0mkAYQDk=; b=enUm3Y1e1AvRq6KIwgWoPnvWgdGCy40hbBj6KpxVVpasuhA3x6a2f1iWGqGX5MqX2l 2HdcddqZmwE/G/8WbfxLj1pSG+4eLdAG6+Rq7t+i8XexY852TNQ3DoaefFA0oKpU8O2p ZYP5YPDuTAaN6xYoRIVP6l2FQ7yxUZ6VidTVLI0DDOckYNzkbUifmQ4pHM8g/nazZFIP uoPD+/rIjp0RzzouFL/IGNfJsvOVJzVUDre36OprrXodDIIVDGJrnV20KHTfNBcHoFB7 wmAmHO3NbURp7d3SV/6s4dVWHE1vCk8zgaj5cp1gZBBwE9QWAH7WSDzqp6rYf4UR3gSs Ukcw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=fn6MBCP2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k5si2146006jaa.25.2021.08.04.05.26.32; Wed, 04 Aug 2021 05:26:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=fn6MBCP2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236758AbhHDKme (ORCPT + 99 others); Wed, 4 Aug 2021 06:42:34 -0400 Received: from mail.kernel.org ([198.145.29.99]:40456 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237494AbhHDKlc (ORCPT ); Wed, 4 Aug 2021 06:41:32 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 2B3B560231; Wed, 4 Aug 2021 10:41:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1628073680; bh=KjB+PEpm30wFGKxTNZ21EeEU6m4LIBijCeE7w6Wsav4=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=fn6MBCP25I/nQaryiuNYIeHuL2jTFc4LxZ9cZ+jAp8s6WTD1tYcNZMuFsG0WGLvZR 7DnbhgiPul+u/zM2BNm7JkJNoE806uHe0RT1GQVikIjuX0BF8vGEvGHK/a4Yngyh5f Y+bKll43GlYzDLlmnJgLdI20I0EzRYyJnX/xCeKs73aeuf9g+nXh/4iyVTUCKE3RRK OyDRor2uKM9/ynrHQBFUPB/ZfNzKjMRHbLLVzJGiC7xca6B/Pk2CTIIqIPvkMBouFU H5aKIjJ6fkYfd5YBKvia6iToNcBGeoVKfP1NJxsaK5LR5/iVQIxgo87x8I/jlSAkoZ vBsCEH4qOwkNQ== References: <1628058245-30692-1-git-send-email-wcheng@codeaurora.org> User-agent: mu4e 1.6.1; emacs 27.2 From: Felipe Balbi To: Wesley Cheng Cc: gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, jackp@codeaurora.org Subject: Re: [PATCH v2] usb: dwc3: gadget: Avoid runtime resume if disabling pullup Date: Wed, 04 Aug 2021 13:41:02 +0300 In-reply-to: <1628058245-30692-1-git-send-email-wcheng@codeaurora.org> Message-ID: <87r1f95w6q.fsf@kernel.org> MIME-Version: 1.0 Content-Type: text/plain Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Wesley Cheng writes: > If the device is already in the runtime suspended state, any call to > the pullup routine will issue a runtime resume on the DWC3 core > device. If the USB gadget is disabling the pullup, then avoid having > to issue a runtime resume, as DWC3 gadget has already been > halted/stopped. > > This fixes an issue where the following condition occurs: > > usb_gadget_remove_driver() > -->usb_gadget_disconnect() > -->dwc3_gadget_pullup(0) > -->pm_runtime_get_sync() -> ret = 0 > -->pm_runtime_put() [async] > -->usb_gadget_udc_stop() > -->dwc3_gadget_stop() > -->dwc->gadget_driver = NULL > ... > > dwc3_suspend_common() > -->dwc3_gadget_suspend() > -->DWC3 halt/stop routine skipped, driver_data == NULL > > This leads to a situation where the DWC3 gadget is not properly > stopped, as the runtime resume would have re-enabled EP0 and event > interrupts, and since we avoided the DWC3 gadget suspend, these > resources were never disabled. > > Fixes: 77adb8bdf422 ("usb: dwc3: gadget: Allow runtime suspend if UDC unbinded") > Signed-off-by: Wesley Cheng Acked-by: Felipe Balbi -- balbi