From patchwork Wed May 10 07:52:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna Kurapati X-Patchwork-Id: 91941 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp3448510vqo; Wed, 10 May 2023 01:13:34 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5rnHQdDz+HvkjR1yTTdItkFNVn1wCvkUDeIi0DMQEPI0neLCkk8ENTSqM6xpFnRfLZjF+F X-Received: by 2002:a17:903:185:b0:1a1:e237:5f0 with SMTP id z5-20020a170903018500b001a1e23705f0mr22073032plg.58.1683706414330; Wed, 10 May 2023 01:13:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683706414; cv=none; d=google.com; s=arc-20160816; b=MTC/MVENZUvNroj2giVEEQdwOVIdJc4W8QWUsofAu+B9NdhOwtMtvzhrB9xQuYiOTx TZQqyoyBBZPamszwo0bLNt6e7TvkuYqnTzbGqTapiIKv8gOCbWxIbhlPXC9hWrZNyQWV KWdj5GxlM62haPciYvPuAZQdF3CXyXY7GqHFu0/lHkpNdVOiPIwNBMpuko0+KDJXfw+I TxF7PXCA53HeDs2RXuTE8gcCDI7HgYnxF0XAwJ/0h5rFGriVzfl2Glp6VvAsOk4iQEZ6 /vJPH3otfwd+AiEVa1UAPVFgAhapQnw3WodX9bRE3EghuHYHYOrWCXQhnC5Fo3dapliG ygAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=JNSiRPQRfxVwIyMLEWxPKZ1ja5t0tK62g2sAq6cgBYY=; b=pqWAIYzcd2ZMvdwtSFmD9ofuie1yYWVfZctHQ/11Y7XYmdJSdp73c8xMWvMRCR58w9 oTKrs7yZBGuvBkYMH5rrB9mLomMajiO/KrxfLWG+mn0Z+cZHjVxe0AtgitIPbi/3d2h7 b3YWOyw0QhjbeyFvvb0vcWabMYuroWwfELrCVk2XgG5YMRrroyiZnZ3P9mLVeib1KjqC v8qWkwBgrnu8hSicAu63QoVcPG4UdDSNR/FTtNBO0gS7RJ5nAGnFYwuJMGSTc/vnAAxh jIRmrwZ7lYD6Fbu4DdzMJYGiVawKbEDCjbdyTMCZhN5oW+CEyaQV3tQEHdEN8EaCR6Go N+gw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=hdL8I5FM; 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 l16-20020a170902f69000b001ab18d794a5si3849161plg.297.2023.05.10.01.13.21; Wed, 10 May 2023 01:13:34 -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=hdL8I5FM; 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 S236422AbjEJHx1 (ORCPT + 99 others); Wed, 10 May 2023 03:53:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45024 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235912AbjEJHxY (ORCPT ); Wed, 10 May 2023 03:53:24 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 894EACD; Wed, 10 May 2023 00:53:23 -0700 (PDT) Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34A7ZmVI008368; Wed, 10 May 2023 07:53:14 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-transfer-encoding : content-type; s=qcppdkim1; bh=JNSiRPQRfxVwIyMLEWxPKZ1ja5t0tK62g2sAq6cgBYY=; b=hdL8I5FMp22+QzuZpThVbOhM+fXlEgqjzY9b4k3swldwV/I/cnmyBeBXPuggD39jbuU2 XgP6RZqfJDxOaJL3+uDprcfX0/MJLV2JR1CL5z4UtzPNplTN54NTzffXnZpnF1oqDB5A mEJvqOplQsLWGep+JgT7U2lfRboW8vLK/F7+jm9WIJcAepOGBmMQP9ddsvjKXzYtlxQV zlelfOgF6uiiO9fT4iYgjm8l+aAmoImOxoUdtZFh3bDZWP4vcV6jinbIKoEUNd5bJx6E FkqLN6ykTW8Tyhk8Ai4V9bxMR6AA3JvEkUyHec9Y3up0nDdJwQjvCt0tdgmX5rThdrgu 6A== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3qg5mpr67c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 10 May 2023 07:53:14 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 34A7rDHb031859 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 10 May 2023 07:53:13 GMT Received: from hu-kriskura-hyd.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Wed, 10 May 2023 00:53:10 -0700 From: Krishna Kurapati To: Thinh Nguyen , Greg Kroah-Hartman , Alan Stern , "Jiantao Zhang" , Badhri Jagan Sridharan CC: , , , , , Krishna Kurapati Subject: [PATCH v3 1/2] usb: dwc3: gadget: Bail out in pullup if soft reset timeout happens Date: Wed, 10 May 2023 13:22:51 +0530 Message-ID: <20230510075252.31023-2-quic_kriskura@quicinc.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230510075252.31023-1-quic_kriskura@quicinc.com> References: <20230510075252.31023-1-quic_kriskura@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: Z7tJNKZattktY4HXrHgLFgf8QtxmQEIP X-Proofpoint-GUID: Z7tJNKZattktY4HXrHgLFgf8QtxmQEIP 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-05-10_04,2023-05-05_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 phishscore=0 mlxlogscore=999 clxscore=1015 suspectscore=0 malwarescore=0 mlxscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305100061 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,T_SCC_BODY_TEXT_LINE,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?1765494136893674154?= X-GMAIL-MSGID: =?utf-8?q?1765494136893674154?= If the core soft reset timeout happens, avoid setting up event buffers and starting gadget as the writes to these registers may not reflect when in reset and setting the run stop bit can lead the controller to access wrong event buffer address resulting in a crash. Signed-off-by: Krishna Kurapati Acked-by: Thinh Nguyen --- changes in v3: Rebase on top of usb-next drivers/usb/dwc3/gadget.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index c0ca4d12f95d..9ab5161881bd 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -2746,13 +2746,16 @@ static int dwc3_gadget_pullup(struct usb_gadget *g, int is_on) * device-initiated disconnect requires a core soft reset * (DCTL.CSftRst) before enabling the run/stop bit. */ - dwc3_core_soft_reset(dwc); + ret = dwc3_core_soft_reset(dwc); + if (ret) + goto done; dwc3_event_buffers_setup(dwc); __dwc3_gadget_start(dwc); ret = dwc3_gadget_run_stop(dwc, true); } +done: pm_runtime_put(dwc->dev); return ret; From patchwork Wed May 10 07:52:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna Kurapati X-Patchwork-Id: 91940 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp3446114vqo; Wed, 10 May 2023 01:08:27 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5bzbzTQxqzqRFhFGs/rR3P3dCCgzO3BS8KUMqT4ODmPlfJmcc/2BltA8+Tkb5ZzstgqyJE X-Received: by 2002:a17:903:41ca:b0:1ac:3fe0:d6ad with SMTP id u10-20020a17090341ca00b001ac3fe0d6admr19228310ple.65.1683706107295; Wed, 10 May 2023 01:08:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683706107; cv=none; d=google.com; s=arc-20160816; b=NKifRZniPyy1yMXCD5yat4WP2kfzY8ZE6zlRFQik6r/5QgEGnXnm+UEewnYbVDqT3W Tv2wHG7TzLEjf1z8pHdsDOJBt7wyjAymlAgGQ62EZ/tYOH94aWCLT1c5t6k4xb2QP9fM YT3CoDUq30kakJBd+L3tfsTTNoDi92ijk1/bCBfv78zVnrmEBZ0qA6vMI1IERMIzscOG xO0WN2UkOHZ4M2Dl9RRuDTmgSXQGaZBHNhZDq89R5h51cygtuy35CaYw0oMLjh+BqXYc VK8Zmrcwc/D3frsbfPi7hRcwsIReFKQftRFiYMygrpHmYBPuFCMmk3rYb99IrMGPoOFd 2keQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=TWfriI1GPViFPiF9QfSprwUBp0trQtulsgwwLsgPKAY=; b=fV4Ia4iUYDo46stRm4uDsZ+IylJIPe29idHDT17ERyMSjltn5a3xpA48LjBIlU3mMS qqdP8qMtCnznjPVYhudRzk5lK52gIuQtdeeQxoU76Knk/l3uCB13ZDcxcvaRUsbysJxv RlEqlLqdTVFZctzp9F5KBJz+5GOI/hAEh/xdvS5IK1fHB2JrYdMUVBW/4djP5tMGzO31 bMyAfHAuW7HDHCRgjzkPUxK016zjvOlF+h3qZ/dz4nMQOXr+45FpxFKnzTqh/urLk8rH q72ootaqBmtIPQbZ5Ft146tPFLc+fg8McVSKMpGhPzzYIEhV58jaATAeGy2BmT76APeA PpgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=n7hg07RM; 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 h6-20020a170902eec600b001aaccc51d45si3335950plb.398.2023.05.10.01.08.10; Wed, 10 May 2023 01:08:27 -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=n7hg07RM; 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 S236019AbjEJHyA (ORCPT + 99 others); Wed, 10 May 2023 03:54:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45560 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236436AbjEJHxx (ORCPT ); Wed, 10 May 2023 03:53:53 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 273CE44AB; Wed, 10 May 2023 00:53:42 -0700 (PDT) Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34A7RIAU017497; Wed, 10 May 2023 07:53:19 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-transfer-encoding : content-type; s=qcppdkim1; bh=TWfriI1GPViFPiF9QfSprwUBp0trQtulsgwwLsgPKAY=; b=n7hg07RMT84PZJYqqr75XTzL6R+Z6hBLafurv+LOMfZEEgf6aqEVSNbbVWhAQRdA3z2z HeY9Cg6NEYQIXR8zU0o9ht/rK5Pr3p2ijTSiishDkyvJToeA7FrWNhUQsysuN/6Vk/3i ejjBMZVX2yyy8l8iHNOEdHuxgSVnDxWi7OXooDiFkkWmTLWk2irBakhTSKfD2IWOjCww r053Alomxh8cpW+HRASXWLHXQQJ3OxrGMJMlIM7uwhPoFckwfH6FY/gEk8GU+ixT3eT3 uLWlm+hOccRJE7swJ8SUC67hs9kLWwiRwjMjWI91+kksq7Gd3M7MJ2hs6ubpqj2GPbbz 7g== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3qfrut9mwc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 10 May 2023 07:53:19 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 34A7rHQd015468 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 10 May 2023 07:53:17 GMT Received: from hu-kriskura-hyd.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Wed, 10 May 2023 00:53:14 -0700 From: Krishna Kurapati To: Thinh Nguyen , Greg Kroah-Hartman , Alan Stern , "Jiantao Zhang" , Badhri Jagan Sridharan CC: , , , , , Krishna Kurapati Subject: [PATCH v3 2/2] usb: gadget: udc: Handle gadget_connect failure during bind operation Date: Wed, 10 May 2023 13:22:52 +0530 Message-ID: <20230510075252.31023-3-quic_kriskura@quicinc.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230510075252.31023-1-quic_kriskura@quicinc.com> References: <20230510075252.31023-1-quic_kriskura@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: pwcW3T6yZNhZ2L6Peo3B0s5wVvZ-m0Em X-Proofpoint-ORIG-GUID: pwcW3T6yZNhZ2L6Peo3B0s5wVvZ-m0Em 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-05-10_04,2023-05-05_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 suspectscore=0 phishscore=0 bulkscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305100061 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,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?1765493814787619264?= X-GMAIL-MSGID: =?utf-8?q?1765493814787619264?= In the event, gadget_connect call (which invokes pullup) fails, propagate the error to udc bind operation which inturn sends the error to configfs. The userspace can then retry enumeartion if it chooses to. Signed-off-by: Krishna Kurapati Acked-by: Alan Stern --- changes in v3: Rebase on top of usb-next drivers/usb/gadget/udc/core.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c index 4641153e9706..69041cca5d24 100644 --- a/drivers/usb/gadget/udc/core.c +++ b/drivers/usb/gadget/udc/core.c @@ -1122,12 +1122,16 @@ EXPORT_SYMBOL_GPL(usb_gadget_set_state); /* ------------------------------------------------------------------------- */ /* Acquire connect_lock before calling this function. */ -static void usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock) +static int usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock) { + int ret; + if (udc->vbus && udc->started) - usb_gadget_connect_locked(udc->gadget); + ret = usb_gadget_connect_locked(udc->gadget); else - usb_gadget_disconnect_locked(udc->gadget); + ret = usb_gadget_disconnect_locked(udc->gadget); + + return ret; } /** @@ -1583,12 +1587,21 @@ static int gadget_bind_driver(struct device *dev) goto err_start; } usb_gadget_enable_async_callbacks(udc); - usb_udc_connect_control_locked(udc); + ret = usb_udc_connect_control_locked(udc); + if (ret) + goto err_connect_control; + mutex_unlock(&udc->connect_lock); kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); return 0; + err_connect_control: + usb_gadget_disable_async_callbacks(udc); + if (gadget->irq) + synchronize_irq(gadget->irq); + usb_gadget_udc_stop_locked(udc); + err_start: driver->unbind(udc->gadget);