Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp562749ybh; Wed, 22 Jul 2020 07:38:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxtweaTawIrF1uAcjmWCXabOJblB0xsPCTbTrFwzyaaDm2xPpoQyMTKg8LodmHX/8h6ZH+t X-Received: by 2002:aa7:d4d2:: with SMTP id t18mr30395814edr.166.1595428739398; Wed, 22 Jul 2020 07:38:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595428739; cv=none; d=google.com; s=arc-20160816; b=WUy9on1vAFqhhPBJxKtz0nhm7FUlkTsw6qd2+6LdXuIOxsKBXon9WJyqLclyOESI9S lHvLuawRqIlCmF7Nj/fHBrPWLM2q9NAMP5GCNBR4vDnXi/Hr51sPt6EV5zifdi4DwJsu 99LGovazxcJKlX0x8g+8a3YmYtYVJEkZxSdQGPK+LpUgQuvVQFTE6lhDfCZz3KZfJ2dK UCbE0mO9ovhnfDLpiK0FuNzMsTZWWddTkZSOQFKj9Ub0DYtvCu5wFkdbIiBpUWEaYnUU KhP9GG4vKA4vyXVo8aXWpcFQQyyQPt5Wic0r4BYqpD1YV3/UVgrDtART5L3695fenGeF 4pSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=uum90XmfNycK6jDJoE+OLFnrkzTNxS7+iW+O9eCiWeM=; b=dKPaxroFxOUOcZbZ2ka3X9nwl0IMmLDI9XOiBE1qkyrwpjZsF1jrIQSOFnoly+/XqL aBux0ClsYsWvBaT80tgQz+7dNulIK2ZPaSb2diBBA7vPG5UnyIYEsOP3/+iBS/wTjAcA k3o8WNcm5341SRxKSUFMLJMF0TyKdQUZAVpqKGSSwm9YMIENLMD79xNbEMvm99nPd2jp zcL6Q1N3yNtV1PndYqsgSjm/XaXd8mtkBDJDk3Fy7Fr9Jhxlvq4He4ySXYUpanednCAw M2DURJeOw+xEjEX7B/ivzH/oU7vrnDVDvDlDLSj1QKUUIWdlW9qzxx9/Xt1eq3qO0Oe/ l0sQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=lEdN6208; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d14si107969edp.98.2020.07.22.07.38.36; Wed, 22 Jul 2020 07:38:59 -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=@gmail.com header.s=20161025 header.b=lEdN6208; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732595AbgGVOhc (ORCPT + 99 others); Wed, 22 Jul 2020 10:37:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53090 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728837AbgGVOhb (ORCPT ); Wed, 22 Jul 2020 10:37:31 -0400 Received: from mail-il1-x141.google.com (mail-il1-x141.google.com [IPv6:2607:f8b0:4864:20::141]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 533E3C0619DC; Wed, 22 Jul 2020 07:37:31 -0700 (PDT) Received: by mail-il1-x141.google.com with SMTP id e18so1472600ilr.7; Wed, 22 Jul 2020 07:37:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uum90XmfNycK6jDJoE+OLFnrkzTNxS7+iW+O9eCiWeM=; b=lEdN6208f44Sn6ODIAJK83c4RYAShaqQuCEZ4xGt6JSzk6lgHXBHLoYTeHSHu5T3mu iDE2UKBY6Md1ouGeE6xaBR8N4KmfptqJyLR2vFxJKw50KKKfVaW3hCr88TclQ+u4OnX1 xlndCgxHBrAXcKc562ZmvCtgfx2EPhdcIRtAl6Ktxoc1baOlmVBB+wWPbH8FfO3+UIcQ LQWse1rBe0wLvcn7Ug6YjXGpY7jkMyzccvf4oJc1NdBjKVOQqhVUd4NIqcZJHrHqiN7Z HWg2zYoJIPdx3qP8F2nmWT/0z5Oy/vkcm++uw01yXot3zRdg7tlC3NjiAnvqVS2HoSgj IXLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uum90XmfNycK6jDJoE+OLFnrkzTNxS7+iW+O9eCiWeM=; b=WFvRrhyl3thWBNU5wBnn7I79TdVN4ayRbwx+Pk8dS/DPk3QcfJtGnYdOhnepwjgcIU JEz3Ou3VtojzBrLxLKG2BQM4vD5NW/WB2/j+TnRVlp9BNgfSd+gOmEl7HGyKunc/tWKi AuXhp2jigz0UziFx1eJGHYWDoiDb9DX2y7zzwnAcC7h8kAOZHtIO4GXDw1J9kE9tYOW1 MYzemkeFeKL2o2B/LmfleSHCm54sw686b3hgt83SadSMRX07STRKG+4haKNiKbAelMJ9 3LEI/sNBJNBmPVv1E7vDg9nHhEM2V3qIiOmeZ4GLZSHM1dFYuRym38mOIEHmHl1ZOMRL bRRQ== X-Gm-Message-State: AOAM533xgeyfIu6oaug4vLl/XqpBnF85DEX0Rgi/ED1RhiqoQqrFGyHa AuoRzqDUuKNnlP+PW9jJsaMvAZ63vZTK4p9a62g= X-Received: by 2002:a05:6e02:80b:: with SMTP id u11mr226641ilm.178.1595428650674; Wed, 22 Jul 2020 07:37:30 -0700 (PDT) MIME-Version: 1.0 References: <1595226956-7779-1-git-send-email-cang@codeaurora.org> <1595226956-7779-4-git-send-email-cang@codeaurora.org> In-Reply-To: <1595226956-7779-4-git-send-email-cang@codeaurora.org> From: Jeffrey Hugo Date: Wed, 22 Jul 2020 08:37:19 -0600 Message-ID: Subject: Re: [PATCH v4 3/8] ufs: ufs-qcom: Fix a few BUGs in func ufs_qcom_dump_dbg_regs() To: Can Guo Cc: Asutosh Das , nguyenb@codeaurora.org, hongwus@codeaurora.org, Rajendra Nayak , sh425.lee@samsung.com, linux-scsi@vger.kernel.org, kernel-team@android.com, saravanak@google.com, Mark Salyzyn , Andy Gross , Bjorn Andersson , Alim Akhtar , Avri Altman , "James E.J. Bottomley" , "Martin K. Petersen" , "open list:ARM/QUALCOMM SUPPORT" , open list Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jul 20, 2020 at 12:39 AM Can Guo wrote: > > Dumping testbus registers needs to sleep a bit intermittently as there are > too many of them. Skip them for those contexts where sleep is not allowed. > > Meanwhile, if ufs_qcom_dump_dbg_regs() calls ufs_qcom_testbus_config() from > ufshcd_suspend/resume and/or clk gate/ungate context, pm_runtime_get_sync() > and ufshcd_hold() will cause racing problems. Fix it by removing the > unnecessary calls of pm_runtime_get_sync() and ufshcd_hold(). It sounds like this is two different changes which are clubbed together into the same patch and really should be two different patches. > > Signed-off-by: Can Guo > --- > drivers/scsi/ufs/ufs-qcom.c | 17 +++++++---------- > 1 file changed, 7 insertions(+), 10 deletions(-) > > diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c > index 2e6ddb5..3743c17 100644 > --- a/drivers/scsi/ufs/ufs-qcom.c > +++ b/drivers/scsi/ufs/ufs-qcom.c > @@ -1604,9 +1604,6 @@ int ufs_qcom_testbus_config(struct ufs_qcom_host *host) > */ > } > mask <<= offset; > - > - pm_runtime_get_sync(host->hba->dev); > - ufshcd_hold(host->hba, false); > ufshcd_rmwl(host->hba, TEST_BUS_SEL, > (u32)host->testbus.select_major << 19, > REG_UFS_CFG1); > @@ -1619,8 +1616,6 @@ int ufs_qcom_testbus_config(struct ufs_qcom_host *host) > * committed before returning. > */ > mb(); > - ufshcd_release(host->hba); > - pm_runtime_put_sync(host->hba->dev); > > return 0; > } > @@ -1658,11 +1653,13 @@ static void ufs_qcom_dump_dbg_regs(struct ufs_hba *hba) > > /* sleep a bit intermittently as we are dumping too much data */ > ufs_qcom_print_hw_debug_reg_all(hba, NULL, ufs_qcom_dump_regs_wrapper); > - udelay(1000); > - ufs_qcom_testbus_read(hba); > - udelay(1000); > - ufs_qcom_print_unipro_testbus(hba); > - udelay(1000); > + if (in_task()) { > + udelay(1000); > + ufs_qcom_testbus_read(hba); > + udelay(1000); > + ufs_qcom_print_unipro_testbus(hba); > + udelay(1000); > + } Did you run into a specific issue with this? udelay is not a "sleep" in the sense that it causes scheduling to occur, which is the problem with atomic contexts.