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)