From patchwork Wed Sep 13 08:47:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qiang Yu X-Patchwork-Id: 138770 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9ecd:0:b0:3f2:4152:657d with SMTP id t13csp1038094vqx; Wed, 13 Sep 2023 05:11:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHWBIgQx3+jicW8234X8T8YoKIW98TREv4zHU+JblNpRRBg1a8q+1K6WbBkDEHfeSTIRfrM X-Received: by 2002:a17:90b:192:b0:26d:d7f:6779 with SMTP id t18-20020a17090b019200b0026d0d7f6779mr1839540pjs.27.1694607076587; Wed, 13 Sep 2023 05:11:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694607076; cv=none; d=google.com; s=arc-20160816; b=LMn1OnxIss/6l5TK8BaPXPPUxzz0HMcQ1zfTEj/ymTOEv/+QOosvw40a7sSHyTQCko lKFt93UsrPFKlcnvhMwP9WWg9gxYqXn4lfzju/4RLpMKRUvPL12mxg0aI9vSP/L9e14D NMX0gRmP0uM8eVhUp8/XEqS+z9BE2bNliOyDAzc7HUlcZgEQTdwlMcMSIIvlgmEfjmw4 jvcp48UCDSmu6PI4NC91ohY2fwFpq3qvswomOCw4X4bSQDMOYeIfpK5IcytNs6V2wM7a a7wkzvM/PR/ShCM17MMo/BjM/oqDmHPrnxcVgwa3YiVzSILRgdhMf+jOflkgussFJLHf bV4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=mO3rBAaVXtSNSRsg3Ptl9WyhXkiJ3zI3uSXq8/3XVB8=; fh=4oDiqjZ+kO0YjW1XhTF3VNsdYS1A8OqsmCCpSjWZ0rE=; b=Poz+WDxoqcIkFulSBIIQTwvWa9wMZitEBKQQFNpQHqzDQjdyRexqqQjhFSNh5xF/cT 9m1P6SaqXPBrfwWOOMDQLvIOoXmwTtJ+NI4lGIxMmk4RE9lJsckZjtha6FMMDY5PE+fG IQHTdn4Fw4iT+PSizIbuZ584HTNuwYvIFSZLWUNDeccwKaeKs0RWoaTtCcYYlN3LbVCl ca+9/hCGf4n/9x+/aqHfXDgGBUkBEv06tCPgHtEHA5c/2m14v5qK9AVO1U9JZQEJ4Lxx bwHc9Sv1jDbL1IfvCKXuGcMuyJrORCIfLGR77VBY5r1QF5cSRg/fk/1OmhGRviet8qU2 3cxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=P9eBfJem; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 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 lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id ie1-20020a17090b400100b0026b42961a4asi1429767pjb.38.2023.09.13.05.11.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Sep 2023 05:11:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=P9eBfJem; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 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 (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 8BD9981E0FE6; Wed, 13 Sep 2023 01:48:46 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237278AbjIMIs3 (ORCPT + 36 others); Wed, 13 Sep 2023 04:48:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45244 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239103AbjIMIsY (ORCPT ); Wed, 13 Sep 2023 04:48:24 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A86D11998; Wed, 13 Sep 2023 01:48:20 -0700 (PDT) Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38D8ZAJU025716; Wed, 13 Sep 2023 08:47:48 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; s=qcppdkim1; bh=mO3rBAaVXtSNSRsg3Ptl9WyhXkiJ3zI3uSXq8/3XVB8=; b=P9eBfJemNULX+EeqDiKz/wS9mP5Rya5aQGgdJV6648qNnpnSpqv/2Enr1vywLvLhDXtn AAOQC3nHkxgvRzMU9GwiwWXiVfQaPJc/XiBp42W/Xd2GKNgD20BQtY9Q2c/wuLS9FqKK jHd3oF3Fkdn2YikgKTa16QdMyc4P2yZWWw647oV2qjfaZiTOoNHbHX4nkHo565e0SBL2 U4hDcWo6HW3U+jQ2V42mnNuE6H7i+udi8SNC1owJscAL/Z6DaSbrbqjhVV39IafANFDs T5/dyszW8LSMIZr2BwBos17vU3A4L9fdHHhcLG6UUtu7lcWTKs49gkQkEtMVwKLbNYmn Hw== Received: from aptaippmta02.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com [103.229.16.4]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3t2y8js3xt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Sep 2023 08:47:48 +0000 Received: from pps.filterd (APTAIPPMTA02.qualcomm.com [127.0.0.1]) by APTAIPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 38D8ljQA017785; Wed, 13 Sep 2023 08:47:45 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APTAIPPMTA02.qualcomm.com (PPS) with ESMTP id 3t0hskhgys-1; Wed, 13 Sep 2023 08:47:45 +0000 Received: from APTAIPPMTA02.qualcomm.com (APTAIPPMTA02.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 38D8ljif017780; Wed, 13 Sep 2023 08:47:45 GMT Received: from cbsp-sh-gv.qualcomm.com (CBSP-SH-gv.ap.qualcomm.com [10.231.249.68]) by APTAIPPMTA02.qualcomm.com (PPS) with ESMTP id 38D8liom017779; Wed, 13 Sep 2023 08:47:45 +0000 Received: by cbsp-sh-gv.qualcomm.com (Postfix, from userid 4098150) id 1927A4DDF; Wed, 13 Sep 2023 16:47:44 +0800 (CST) From: Qiang Yu To: mani@kernel.org, quic_jhugo@quicinc.com Cc: mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, quic_cang@quicinc.com, quic_mrana@quicinc.com, Bhaumik Bhatt , Qiang Yu Subject: [PATCH v2 1/2] bus: mhi: host: Add spinlock to protect WP access when queueing TREs Date: Wed, 13 Sep 2023 16:47:40 +0800 Message-Id: <1694594861-12691-2-git-send-email-quic_qianyu@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1694594861-12691-1-git-send-email-quic_qianyu@quicinc.com> References: <1694594861-12691-1-git-send-email-quic_qianyu@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: Evqdl4VAY2GIVNWfcL5N-uHIGw0U_0Nz X-Proofpoint-GUID: Evqdl4VAY2GIVNWfcL5N-uHIGw0U_0Nz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-09-13_02,2023-09-05_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 impostorscore=0 spamscore=0 mlxlogscore=596 malwarescore=0 priorityscore=1501 clxscore=1015 mlxscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2309130070 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Wed, 13 Sep 2023 01:48:46 -0700 (PDT) X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776924309851730784 X-GMAIL-MSGID: 1776924309851730784 From: Bhaumik Bhatt Protect WP accesses such that multiple threads queueing buffers for incoming data do not race and access the same WP twice. Ensure read and write locks for the channel are not taken in succession by dropping the read lock from parse_xfer_event() such that a callback given to client can potentially queue buffers and acquire the write lock in that process. Any queueing of buffers should be done without channel read lock acquired as it can result in multiple locks and a soft lockup. Signed-off-by: Bhaumik Bhatt Signed-off-by: Qiang Yu --- drivers/bus/mhi/host/main.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/bus/mhi/host/main.c b/drivers/bus/mhi/host/main.c index dcf627b..13c4b89 100644 --- a/drivers/bus/mhi/host/main.c +++ b/drivers/bus/mhi/host/main.c @@ -642,6 +642,7 @@ static int parse_xfer_event(struct mhi_controller *mhi_cntrl, mhi_del_ring_element(mhi_cntrl, tre_ring); local_rp = tre_ring->rp; + read_unlock_bh(&mhi_chan->lock); /* notify client */ mhi_chan->xfer_cb(mhi_chan->mhi_dev, &result); @@ -667,6 +668,7 @@ static int parse_xfer_event(struct mhi_controller *mhi_cntrl, kfree(buf_info->cb_buf); } } + read_lock_bh(&mhi_chan->lock); } break; } /* CC_EOT */ @@ -1204,6 +1206,9 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan, int eot, eob, chain, bei; int ret; + /* Protect accesses for reading and incrementing WP */ + write_lock_bh(&mhi_chan->lock); + buf_ring = &mhi_chan->buf_ring; tre_ring = &mhi_chan->tre_ring; @@ -1221,8 +1226,10 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan, if (!info->pre_mapped) { ret = mhi_cntrl->map_single(mhi_cntrl, buf_info); - if (ret) + if (ret) { + write_unlock_bh(&mhi_chan->lock); return ret; + } } eob = !!(flags & MHI_EOB); @@ -1239,6 +1246,8 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan, mhi_add_ring_element(mhi_cntrl, tre_ring); mhi_add_ring_element(mhi_cntrl, buf_ring); + write_unlock_bh(&mhi_chan->lock); + return 0; } From patchwork Wed Sep 13 08:47:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qiang Yu X-Patchwork-Id: 138701 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9ecd:0:b0:3f2:4152:657d with SMTP id t13csp941290vqx; Wed, 13 Sep 2023 01:48:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEF3hhI35yyZ+j48QkWcdY4+xW7uLKI1zi/L9FQwM+OwcjPOINcbbHAI/yyAUH6Ozpcx234 X-Received: by 2002:a17:90b:3e8c:b0:273:f10c:b6d2 with SMTP id rj12-20020a17090b3e8c00b00273f10cb6d2mr2957927pjb.18.1694594902160; Wed, 13 Sep 2023 01:48:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694594902; cv=none; d=google.com; s=arc-20160816; b=oN5fqqYw8h+rw+d4AiB+6TCBDtM8R9DEs3VlcOU3SOFzEPeoQVF+UmyyGIRUlDWdNQ 7ymO2XQV6h+WCjW6N82gqvNDMjsFeoGLYanZ1L35dLyjNqSsOpHYs6c3L0mvYWimeye7 6gCnDqfDxQ7knrfqf9boLxtb1BZj0L5vKzOvqCy26xKYyF3HOh+vNjlUXSLMb16jbfcI oQlZgSdVAHA9eWh32Mwthp/3oT7OcHqbznEbXA6AJiirEijZmRVnSCqnvPOPCHQk80Fi 6LeO+uIMLjCsDWD+Dy4kH3B+f8b/d4I8ATMkfOj/lx2sfcRWro1xp5WEcrMUUQP8dZBy nOBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=xusWZUomRiXPwqA1MTyigAKtR02LdB8vIjAksisn+So=; fh=bKmA2tW4XJgfdE5WSHQKuyGLkQmORF+gsrf1gZ0+NT4=; b=cghZVKsn+HJaEjtVeSndSoxBMNYPQeCaL3N5xChlUraNYds8+63+IBa6pb82pIWULW h2k04BlmZRjuSrurnBlolzfSNINvBULysdwcu70caPW0IM35y85XX0ZHuW1LFuhWcWRB aqQraGFMnPP83+cAxXVJRPtGLKih/biG88waVzSAH93vb2GZl/5wSGzKv0fSJ0a63N5h +csVVX0mLKDbAObtfGC21UKwqkbs9aguy+4+xyW61hhkhgLizWr3/ykyzstEeP/OdPes FOZthppviYJbs+P418ktz9yYE0EiI8a8v1hOGululfCRc8j/z7hUWK2cHm6e0YjaKkDk P0OQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=VbXvxtY3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 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 morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id q97-20020a17090a17ea00b0026801e7a613si1114727pja.146.2023.09.13.01.48.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Sep 2023 01:48:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=VbXvxtY3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 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 (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 8D223801BF51; Wed, 13 Sep 2023 01:48:15 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239123AbjIMIsJ (ORCPT + 36 others); Wed, 13 Sep 2023 04:48:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56202 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239096AbjIMIsH (ORCPT ); Wed, 13 Sep 2023 04:48:07 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 67950199E; Wed, 13 Sep 2023 01:48:00 -0700 (PDT) Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38D8amli025056; Wed, 13 Sep 2023 08:47:48 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; s=qcppdkim1; bh=xusWZUomRiXPwqA1MTyigAKtR02LdB8vIjAksisn+So=; b=VbXvxtY3+HuJ3X4WWFFqsbNMyF1NeIrdoKN/Z+uJW4mUq8lG5/eq2Ddd7ZwwtVvnT14i EnTZKteI4izgvjyQaeoqupOFbmbUNqIRfF95K5cQBaLQLcOYM75lxw9ByUYN6ZwIKsHH dtAaKd2elk+XNiXQ9vxYaoadgn5R9fUz4686yVxluNRYQkjdS6ApfcoEUjT6djyXS1tr R16v/WhlUdEPLCqZ9qf3HmcreiVzE/tGVcYjpgbSwXNdqGgjOuMDdIVp+JrAwN5Cks+0 EBAugOAH61EVImeOWqZhhQcX/EJ55kaSoIFusVDPGR8vFJtJi+qjuRvsatPCP4PdRRF8 pA== Received: from aptaippmta02.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com [103.229.16.4]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3t2yp3h2c1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Sep 2023 08:47:48 +0000 Received: from pps.filterd (APTAIPPMTA02.qualcomm.com [127.0.0.1]) by APTAIPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 38D8lj2t017801; Wed, 13 Sep 2023 08:47:45 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APTAIPPMTA02.qualcomm.com (PPS) with ESMTP id 3t0hskhgyy-1; Wed, 13 Sep 2023 08:47:45 +0000 Received: from APTAIPPMTA02.qualcomm.com (APTAIPPMTA02.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 38D8ljXY017793; Wed, 13 Sep 2023 08:47:45 GMT Received: from cbsp-sh-gv.qualcomm.com (CBSP-SH-gv.ap.qualcomm.com [10.231.249.68]) by APTAIPPMTA02.qualcomm.com (PPS) with ESMTP id 38D8ljLY017790; Wed, 13 Sep 2023 08:47:45 +0000 Received: by cbsp-sh-gv.qualcomm.com (Postfix, from userid 4098150) id 9B5684E07; Wed, 13 Sep 2023 16:47:44 +0800 (CST) From: Qiang Yu To: mani@kernel.org, quic_jhugo@quicinc.com Cc: mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, quic_cang@quicinc.com, quic_mrana@quicinc.com, Hemant Kumar , Lazarus Motha , Qiang Yu Subject: [PATCH v2 2/2] bus: mhi: host: Take irqsave lock after TRE is generated Date: Wed, 13 Sep 2023 16:47:41 +0800 Message-Id: <1694594861-12691-3-git-send-email-quic_qianyu@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1694594861-12691-1-git-send-email-quic_qianyu@quicinc.com> References: <1694594861-12691-1-git-send-email-quic_qianyu@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: foD5ypGQJQOX_2_oxBjt4bU3xFXsoARr X-Proofpoint-ORIG-GUID: foD5ypGQJQOX_2_oxBjt4bU3xFXsoARr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-09-13_02,2023-09-05_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 phishscore=0 mlxlogscore=689 spamscore=0 impostorscore=0 mlxscore=0 bulkscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2309130070 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Wed, 13 Sep 2023 01:48:15 -0700 (PDT) X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776911544262188089 X-GMAIL-MSGID: 1776911544262188089 From: Hemant Kumar Take irqsave lock after TRE is generated to avoid deadlock due to core getting interrupts enabled as local_bh_enable must not be called with irqs disabled based on upstream patch. Signed-off-by: Hemant Kumar Signed-off-by: Lazarus Motha Signed-off-by: Qiang Yu --- drivers/bus/mhi/host/main.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/bus/mhi/host/main.c b/drivers/bus/mhi/host/main.c index 13c4b89..8accdfd 100644 --- a/drivers/bus/mhi/host/main.c +++ b/drivers/bus/mhi/host/main.c @@ -1124,17 +1124,15 @@ static int mhi_queue(struct mhi_device *mhi_dev, struct mhi_buf_info *buf_info, if (unlikely(MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state))) return -EIO; - read_lock_irqsave(&mhi_cntrl->pm_lock, flags); - ret = mhi_is_ring_full(mhi_cntrl, tre_ring); - if (unlikely(ret)) { - ret = -EAGAIN; - goto exit_unlock; - } + if (unlikely(ret)) + return -EAGAIN; ret = mhi_gen_tre(mhi_cntrl, mhi_chan, buf_info, mflags); if (unlikely(ret)) - goto exit_unlock; + return ret; + + read_lock_irqsave(&mhi_cntrl->pm_lock, flags); /* Packet is queued, take a usage ref to exit M3 if necessary * for host->device buffer, balanced put is done on buffer completion @@ -1154,7 +1152,6 @@ static int mhi_queue(struct mhi_device *mhi_dev, struct mhi_buf_info *buf_info, if (dir == DMA_FROM_DEVICE) mhi_cntrl->runtime_put(mhi_cntrl); -exit_unlock: read_unlock_irqrestore(&mhi_cntrl->pm_lock, flags); return ret;