Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp692754pxb; Wed, 27 Jan 2021 19:30:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJzCePZDj1kPlcInkJ9ygOPjwegb8DNTyS4QECYxxhe386g6l+mQTXPniWIIex8Pyt++hokA X-Received: by 2002:a05:6402:94f:: with SMTP id h15mr11727880edz.106.1611804637139; Wed, 27 Jan 2021 19:30:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611804637; cv=none; d=google.com; s=arc-20160816; b=VJ3rjo2XUKVRQH0rW0ieZaDA6UiA8IXGp/bZ5RfCb8Br6+V8Z+ViQftKX30ib3BHMk 7xcjfqoIUaDlVyT0bvazfAv9jkXrf4XAnwVy9CVxaUTVfzeUyvbmFXHvCGBu+ysIj6a8 SQd8fPsX7otfwOBuqilm2BEP59KogVlbaHqFFdTyuGGSLsLiSASgdPMKRs0UpAdQO22a 7bPPzOrY8VDoY1b0zn0fWhFAe0p4YYVB+CsyUD4AFVzunBjj80Qdy9HUO78dTS9IODO4 TuFKeTlZadAYRbpOIV7EgJ0NbYmm2tuwXERFMjJmaiOjUr+EcxJH6pzQr4ySBdU9OvK5 /viQ== 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:ironport-sdr; bh=I+1Y9EW5Bprm8/WXdjAed1FW8FeatLOcngjuypU1WRM=; b=G0UbXM5roiOLPwsLwO97udgAHWpS7XtZvY2SBKC80eykJgLkkGoh9KwdLEf76dkPsL OoKlSGq6uzxhXCdX98w/CcsUceun+CseUysXqw2LEpWheavqOSS9fda2KjtCcSbeJObZ TgC+5o8KhIICmgoc0ym4adF0WbUZ60ndkv7f3CWLyNgEyVX2pShrTNefy0ZTRCee+W60 j3KKxn05pUTFxNSq9PRYWW5i1eqHKkxElEk7k7puJg+M9SEhf03CgJlkaSyOEUOelKQb 1zpDe0reA2pFx8hloGpCYibg4O0qGdu1XjScvw9LPXeg2i1p2JkH+glRUSKs2rZ0FUtk xECQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t11si1722370ejx.110.2021.01.27.19.30.11; Wed, 27 Jan 2021 19:30:37 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231179AbhA1D1a (ORCPT + 99 others); Wed, 27 Jan 2021 22:27:30 -0500 Received: from labrats.qualcomm.com ([199.106.110.90]:10613 "EHLO labrats.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229831AbhA1D13 (ORCPT ); Wed, 27 Jan 2021 22:27:29 -0500 IronPort-SDR: m5c5356bsjqz7qwNEQmVHgwIAo/5ayBk9kDgf2NHe8IJOgDCykV0jSPelwqwfDGBcKwiw54dfy smyf+oFKgOk8lC3gz2D//5AvVtNeuTxSbA3Yx0X2CtVYTVR3HanreNFfzBEIDmp+NdWP2oQ50j kiTWanCPMLkESwVCeROow4jEz+qStXBon6PUi5wmOkEB41qRDKokQvpK8gYU4LaREON7g7LJ9k l/SO1AezUiDQMgImqSoM9ARnesJZdERYpnIKJsk3MUHOBvL+VRHVj+TFLgXmAn9h8MuRl6EkKA f24= X-IronPort-AV: E=Sophos;i="5.79,381,1602572400"; d="scan'208";a="47715510" Received: from unknown (HELO ironmsg05-sd.qualcomm.com) ([10.53.140.145]) by labrats.qualcomm.com with ESMTP; 27 Jan 2021 19:26:48 -0800 X-QCInternal: smtphost Received: from stor-presley.qualcomm.com ([192.168.140.85]) by ironmsg05-sd.qualcomm.com with ESMTP; 27 Jan 2021 19:26:42 -0800 Received: by stor-presley.qualcomm.com (Postfix, from userid 92687) id A0597219A2; Wed, 27 Jan 2021 19:26:42 -0800 (PST) From: Asutosh Das To: cang@codeaurora.org, martin.petersen@oracle.com, linux-scsi@vger.kernel.org Cc: Asutosh Das , linux-arm-msm@vger.kernel.org, stern@rowland.harvard.edu, "Bao D . Nguyen" , FUJITA Tomonori , Jens Axboe , linux-block@vger.kernel.org (open list:BLOCK LAYER), linux-kernel@vger.kernel.org (open list) Subject: [RFC PATCH v2 1/2] block: bsg: resume platform device before accessing Date: Wed, 27 Jan 2021 19:26:37 -0800 Message-Id: X-Mailer: git-send-email 2.7.4 In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It may happen that the underlying device's runtime-pm is not controlled by block-pm. So it's possible that when commands are sent to the device, it's suspended and may not be resumed by blk-pm. Hence explicitly resume the parent which is the platform device. Signed-off-by: Asutosh Das Signed-off-by: Can Guo Signed-off-by: Bao D. Nguyen --- block/bsg.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/block/bsg.c b/block/bsg.c index d7bae94..e9fc896 100644 --- a/block/bsg.c +++ b/block/bsg.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -306,12 +307,15 @@ static struct bsg_device *bsg_get_device(struct inode *inode, struct file *file) static int bsg_open(struct inode *inode, struct file *file) { struct bsg_device *bd; + struct bsg_class_device *bcd; bd = bsg_get_device(inode, file); if (IS_ERR(bd)) return PTR_ERR(bd); + bcd = &bd->queue->bsg_dev; + pm_runtime_get_sync(bcd->class_dev->parent); file->private_data = bd; return 0; } @@ -319,8 +323,12 @@ static int bsg_open(struct inode *inode, struct file *file) static int bsg_release(struct inode *inode, struct file *file) { struct bsg_device *bd = file->private_data; + struct bsg_class_device *bcd; file->private_data = NULL; + + bcd = &bd->queue->bsg_dev; + pm_runtime_put_sync(bcd->class_dev->parent); return bsg_put_device(bd); } -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.