From patchwork Thu Apr 13 19:53:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 83084 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp1298062vqo; Thu, 13 Apr 2023 13:19:38 -0700 (PDT) X-Google-Smtp-Source: AKy350bUS2JlWNrfm38FVi7jqO4KgzrepP58utWe2fiXlvnH1HFtxoWKjPEwxBm6x0HekwpzK9WK X-Received: by 2002:a05:6a00:2190:b0:63b:5f0f:94f1 with SMTP id h16-20020a056a00219000b0063b5f0f94f1mr1269469pfi.4.1681417178304; Thu, 13 Apr 2023 13:19:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681417178; cv=none; d=google.com; s=arc-20160816; b=rUmHvORdJn8c7oV5tBoswHD3+jZ4fAG28wAPaoNUM08FQaEjvgVWZEqQxAbR/4K9uh jrvNjDS1p9TOzHe384FxDG+bOJDFqFJa1mcy3RhdK3Oq72cUePdoVYYbbOgXY+P5r/EM 4YyzZIEdHRGvZNN4hGW0iuw5arKAfaeVcT3Rk1RVG3HYpF5znNgkRg6TQqOldIE/I7Fe J19FBH3eR4xBH5W8TjBFCb0JfrcnfB5BRN8gsdTzi8iN/Dz7a6U0Uuvv+kqAJ65M+i5b x4cBWYjSoHOYaqoeFmflqpo09i0lJxtrDj/JZF664lYRSiC27zacJ+s+CwVP+ctMgCRc Nd4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=6kXjPv3JSqmlJQBfZMf+Jgzn2FTqzODxouHwtO4Ijek=; b=SA0Ja3ox4fg3T5i9ad6zeSRGzG31Yt+aX6jhSojdrk3ar+mxV6zqUWdOtZ99V2byIa DMLEvm+2BKItAYf/P1dx0VEEbLYG8HW/mdhhartQh3abAz6RHrPm6vaOBuHzpSAyNWAF n3/v3oIFWMYoP+i076Ggy+CcgPaGjT/ouOMy3+vwsNL5Kg0qwyamAltNpgD2oJEVxgGQ HEVtzEAlwhhvt9a7KzOKQG13tlrsyyo1W94icPiL8ZPqGljfiVgrLMvbBuK4FoOVt+w5 adW6JreskIo0n23WsJ1JRkgExl7LXZr4I4esrd9bqZ6nUqlhXmuBVOPHlCUk3Fc492tQ /wjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=ZfkHRVS1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r133-20020a632b8b000000b005090553fae2si2678240pgr.814.2023.04.13.13.19.21; Thu, 13 Apr 2023 13:19:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=ZfkHRVS1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230073AbjDMTxw (ORCPT + 99 others); Thu, 13 Apr 2023 15:53:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46320 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230003AbjDMTxq (ORCPT ); Thu, 13 Apr 2023 15:53:46 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9803F6182; Thu, 13 Apr 2023 12:53:45 -0700 (PDT) Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33DJpDm3003282; Thu, 13 Apr 2023 19:53:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=6kXjPv3JSqmlJQBfZMf+Jgzn2FTqzODxouHwtO4Ijek=; b=ZfkHRVS1wEeX8cCY2Di8oPhlUYO4j/GmWwWdFUmRgM/BDXj7gMAqzTXQIcRG606oKSf7 vug5+A7Uh5SKfECEz/HhVXa5GuMrmCgIB9gx82dqDpqwm3OcfEUSRRGhDt4Gd/u4oeOH AhIgn0SR9tOToeGJ0jGhznf7qvnb6OKIuWaDL/o+C7g0xwPHjsiK5sN/ZRL7Hi+/ljz3 z3iOmoiwYAweTxwrWW/ErZ/07XOiXYH/hyW3/AVK/pp8MeP2uOcZr/2fUASLxhzYgLSd xFXKBfhNP6aUGLdzExD1hueMxQZln2RfFFtrgPiyD6uEgtUX9dzAAJVKMbvOtIaSeGCD CA== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3pxdrk9g3f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Apr 2023 19:53:41 +0000 Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 33DJreQd008813 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Apr 2023 19:53:40 GMT Received: from hu-wcheng-lv.qualcomm.com (10.49.16.6) by nalasex01b.na.qualcomm.com (10.47.209.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Thu, 13 Apr 2023 12:53:40 -0700 From: Wesley Cheng To: , CC: , , Wesley Cheng , stable Subject: [PATCH v4 2/3] usb: dwc3: gadget: Execute gadget stop after halting the controller Date: Thu, 13 Apr 2023 12:53:16 -0700 Message-ID: <20230413195317.7468-3-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230413195317.7468-1-quic_wcheng@quicinc.com> References: <20230413195317.7468-1-quic_wcheng@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01a.na.qualcomm.com (10.47.209.196) To nalasex01b.na.qualcomm.com (10.47.209.197) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: fSik2OxNBC7VIQ9t2qduW9sPuNhBc0r6 X-Proofpoint-GUID: fSik2OxNBC7VIQ9t2qduW9sPuNhBc0r6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-13_14,2023-04-13_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 adultscore=0 suspectscore=0 spamscore=0 mlxscore=0 malwarescore=0 impostorscore=0 phishscore=0 mlxlogscore=672 clxscore=1011 bulkscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304130176 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763093699315095949?= X-GMAIL-MSGID: =?utf-8?q?1763093699315095949?= Do not call gadget stop until the poll for controller halt is completed. DEVTEN is cleared as part of gadget stop, so the intention to allow ep0 events to continue while waiting for controller halt is not happening. Fixes: c96683798e27 ("usb: dwc3: ep0: Don't prepare beyond Setup stage") Cc: stable Acked-by: Thinh Nguyen Signed-off-by: Wesley Cheng --- drivers/usb/dwc3/gadget.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index be84c133f0d7..0bb4926933b6 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -2548,7 +2548,6 @@ static int dwc3_gadget_soft_disconnect(struct dwc3 *dwc) * bit. */ dwc3_stop_active_transfers(dwc); - __dwc3_gadget_stop(dwc); spin_unlock_irqrestore(&dwc->lock, flags); /* @@ -2585,7 +2584,19 @@ static int dwc3_gadget_soft_disconnect(struct dwc3 *dwc) * remaining event generated by the controller while polling for * DSTS.DEVCTLHLT. */ - return dwc3_gadget_run_stop(dwc, false, false); + ret = dwc3_gadget_run_stop(dwc, false, false); + + /* + * Stop the gadget after controller is halted, so that if needed, the + * events to update EP0 state can still occur while the run/stop + * routine polls for the halted state. DEVTEN is cleared as part of + * gadget stop. + */ + spin_lock_irqsave(&dwc->lock, flags); + __dwc3_gadget_stop(dwc); + spin_unlock_irqrestore(&dwc->lock, flags); + + return ret; } static int dwc3_gadget_pullup(struct usb_gadget *g, int is_on)