[PATCH] scsi: clear UAC before sending SG_IO

From: Randall Huang
Date: Thu Sep 10 2020 - 06:15:45 EST


Make sure UAC is clear before sending SG_IO.

Signed-off-by: Randall Huang <huangrandall@xxxxxxxxxx>
---
drivers/scsi/sg.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 20472aaaf630..ad11bca47ae8 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -922,6 +922,7 @@ sg_ioctl_common(struct file *filp, Sg_device *sdp, Sg_fd *sfp,
int result, val, read_only;
Sg_request *srp;
unsigned long iflags;
+ int _cmd;

SCSI_LOG_TIMEOUT(3, sg_printk(KERN_INFO, sdp,
"sg_ioctl: cmd=0x%x\n", (int) cmd_in));
@@ -933,6 +934,13 @@ sg_ioctl_common(struct file *filp, Sg_device *sdp, Sg_fd *sfp,
return -ENODEV;
if (!scsi_block_when_processing_errors(sdp->device))
return -ENXIO;
+
+ _cmd = SCSI_UFS_REQUEST_SENSE;
+ if (sdp->device->host->wlun_clr_uac) {
+ sdp->device->host->hostt->ioctl(sdp->device, _cmd, NULL);
+ sdp->device->host->wlun_clr_uac = false;
+ }
+
result = sg_new_write(sfp, filp, p, SZ_SG_IO_HDR,
1, read_only, 1, &srp);
if (result < 0)