From: Stephen Rothwell Date: Thu, 2 Sep 2021 02:50:11 +0000 (+1000) Subject: Merge remote-tracking branch 'scsi/for-next' X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=5fa148f4e0b7fa60fc89d743e6a96ccf570fb4b4;p=users%2Fjedix%2Flinux-maple.git Merge remote-tracking branch 'scsi/for-next' # Conflicts: # drivers/scsi/st.c --- 5fa148f4e0b7fa60fc89d743e6a96ccf570fb4b4 diff --cc drivers/scsi/st.c index d1abc020f3c0,2d1b0594af69..9d04929f03a1 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c @@@ -3815,35 -3821,24 +3816,24 @@@ static long st_ioctl(struct file *file goto out; } mutex_unlock(&STp->lock); - switch (cmd_in) { - case SCSI_IOCTL_STOP_UNIT: - /* unload */ - retval = scsi_ioctl(STp->device, cmd_in, p); - if (!retval) { - STp->rew_at_close = 0; - STp->ready = ST_NO_TAPE; - } - return retval; - case SCSI_IOCTL_GET_IDLUN: - case SCSI_IOCTL_GET_BUS_NUMBER: - break; + switch (cmd_in) { + case SG_IO: + case SCSI_IOCTL_SEND_COMMAND: + case CDROM_SEND_PACKET: + if (!capable(CAP_SYS_RAWIO)) + return -EPERM; + default: + break; + } - default: - if ((cmd_in == SG_IO || - cmd_in == SCSI_IOCTL_SEND_COMMAND || - cmd_in == CDROM_SEND_PACKET) && - !capable(CAP_SYS_RAWIO)) - i = -EPERM; - else - i = scsi_cmd_ioctl(STp->device->request_queue, - NULL, file->f_mode, cmd_in, - p); - if (i != -ENOTTY) - return i; - break; - retval = scsi_ioctl(STp->device, STp->disk, file->f_mode, cmd_in, p); ++ retval = scsi_ioctl(STp->device, NULL, file->f_mode, cmd_in, p); + if (!retval && cmd_in == SCSI_IOCTL_STOP_UNIT) { + /* unload */ + STp->rew_at_close = 0; + STp->ready = ST_NO_TAPE; } - return -ENOTTY; + return retval; out: mutex_unlock(&STp->lock);