Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp338599pxj; Tue, 18 May 2021 04:41:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzOh64Mw+cpzl+hGNcrIDQXFQR6+hepjlXmv31W7l+P+EDcbuYlQ7dUyP6+1GmKbLEITKCz X-Received: by 2002:a6b:dc13:: with SMTP id s19mr704321ioc.14.1621338112063; Tue, 18 May 2021 04:41:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621338112; cv=none; d=google.com; s=arc-20160816; b=wca/qULym8Ln9kfA/tE6L102If/i+qn2me4F264Xd+/kVto/PaYyQwmiOIxR9pelD7 TfC7KzlTe5ngCRnVHiUDqoUFjxFVr96EXkub7+OT2b8n5o06bTNVDdHTpH9tG97vc8lE 99QNwcrfbdP+k2QFPzx4Flbq34Z9uoAASAHhVWvxHJFYV9Sx+Kr7GwyvO4zvjItZElKu BsftxjYLZfga+AB5md3xLWST9Xs0L7RNS3qbinTCB/gQEpN4RalAZQsuLTJ5K1KUpnzA mUQX0QQnV5rhAuyNCKI1ynLLvxEi5kbaB6NEvhXj3dhKOSVLfbvAeUFWnfbnRs4+hoLY JCEQ== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=rRIBDDnu+34sVxV7EW8VxP+WJ5LU+VPJufgY3Cl9WR4=; b=vdq4a8/8lSwWwm4mPOP9TtZm/klHhcrBQKHov5pc7UETDA4iiHZRPIcRPd9PadHz2L /k/COhqnO1LUM3KL0kZgjhQibZYAZXFmRa0Os74t5en0tH6FIoIzZcs7rV1+at4d6Hqf kTB904gy7mnMDbSKYgn66Ble2rA2Vn4xY9JLYJayBkh9+jFQVuOEEy9EWt+oImp2gdjS Xr77gYSjAAOetrGHRQ2s7MkGRpnw0YBDNuqTOlFcyYoZNhx89s6e43c0zg2a9lCl+sxT Du9nWlBXQ4TVbTEOEdNWUiWBk21MiqD331DbFYnMW2MA/jYWbOxh5iL28v0l7f3nAplG t+yg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=kU+wVfDN; 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=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w11si29644585ilu.8.2021.05.18.04.41.38; Tue, 18 May 2021 04:41:52 -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=@linuxfoundation.org header.s=korg header.b=kU+wVfDN; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243375AbhEQPXQ (ORCPT + 99 others); Mon, 17 May 2021 11:23:16 -0400 Received: from mail.kernel.org ([198.145.29.99]:37254 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242976AbhEQPKf (ORCPT ); Mon, 17 May 2021 11:10:35 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id E04A26161E; Mon, 17 May 2021 14:30:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1621261842; bh=LrNG479SmsQRMUuhF8XIsslIbx4AsT9If1H9oW8g+Nk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kU+wVfDNF8gnH24eEVDvQP6NIIWSE4rt38wAnuI3eB7NupL9WbRYccmOknSwuyxb4 qTybB1v3MAi4PPur2ksxyrmwNg/n/PjT521OXpOTUBizkGrJ6gD/DttIr68tLj11Y3 6ptZHUPjAUNOQ4LyHezxCiRc9UpLJkbSKHNeI8H8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Daejun Park , Can Guo , "Martin K. Petersen" , Sasha Levin Subject: [PATCH 5.11 176/329] scsi: ufs: core: Narrow down fast path in system suspend path Date: Mon, 17 May 2021 16:01:27 +0200 Message-Id: <20210517140308.078221133@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210517140302.043055203@linuxfoundation.org> References: <20210517140302.043055203@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Can Guo [ Upstream commit ce4f62f9dd8cf43ac044045ed598a0b80ef33890 ] If spm_lvl is set to 0 or 1, when system suspend kicks start and HBA is runtime active, system suspend may just bail without doing anything (the fast path), leaving other contexts still running, e.g., clock gating and clock scaling. When system resume kicks start, concurrency can happen between ufshcd_resume() and these contexts, leading to various stability issues. Add a check against HBA's runtime state and allowing fast path only if HBA is runtime suspended, otherwise let system suspend go ahead call ufshcd_suspend(). This will guarantee that these contexts are stopped by either runtime suspend or system suspend. Link: https://lore.kernel.org/r/1619408921-30426-4-git-send-email-cang@codeaurora.org Fixes: 0b257734344a ("scsi: ufs: optimize system suspend handling") Reviewed-by: Daejun Park Signed-off-by: Can Guo Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/scsi/ufs/ufshcd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index d7e983e952cb..ab3a5c1b5723 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -8978,6 +8978,7 @@ int ufshcd_system_suspend(struct ufs_hba *hba) hba->curr_dev_pwr_mode) && (ufs_get_pm_lvl_to_link_pwr_state(hba->spm_lvl) == hba->uic_link_state) && + pm_runtime_suspended(hba->dev) && !hba->dev_info.b_rpm_dev_flush_capable) goto out; -- 2.30.2