lkml.org 
[lkml]   [2021]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[RFC PATCH v1 1/2] block: bsg: resume scsi device before accessing
Date
Resumes the scsi device before accessing it.

Change-Id: I2929af60f2a92c89704a582fcdb285d35b429fde
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Can Guo <cang@codeaurora.org>
Signed-off-by: Bao D. Nguyen <nguyenb@codeaurora.org>
---
block/bsg.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/block/bsg.c b/block/bsg.c
index d7bae94..f4c197f 100644
--- a/block/bsg.c
+++ b/block/bsg.c
@@ -306,12 +306,16 @@ 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 scsi_device *sd;

bd = bsg_get_device(inode, file);

if (IS_ERR(bd))
return PTR_ERR(bd);

+ sd = (struct scsi_device *) bd->queue->queuedata;
+ if (scsi_autopm_get_device(sd))
+ return -EIO;
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 scsi_device *sd;

file->private_data = NULL;
+ sd = (struct scsi_device *) bd->queue->queuedata;
+ scsi_autopm_put_device(sd);
+
return bsg_put_device(bd);
}

--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.
\
 
 \ /
  Last update: 2021-01-27 05:16    [W:0.272 / U:0.052 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site