On 2019/10/18 17:17, zhengbin wrote:
> v1->v2: modify the comments suggested by Bart
> v2->v3: fix bug in sr_do_ioctl
> v3->v4: let "fix bug in sr_do_ioctl" be a separate patch
> v4->v5: fix uninit-value access bug in callers, not in __scsi_execute
An explanation text of the series would be great...
What about defining a little helper function for checking
driver_byte(err) == DRIVER_SENSE && scsi_sense_valid(&sshdr)
instead of having that hard-coded everywhere ? That would make the code
a lot cleaner and more readable.
Something like:
static inline bool scsi_driver_sense_valid(int result,
struct scsi_sense_hdr *sshdr)
{
return driver_byte(result) == DRIVER_SENSE &&
scsi_sense_valid(sshdr);
}
>
> zhengbin (13):
> scsi: core: need to check the result of scsi_execute in
> scsi_report_opcode
> scsi: core: need to check the result of scsi_execute in
> scsi_test_unit_ready
> scsi: core: need to check the result of scsi_execute in
> scsi_report_lun_scan
> scsi: sr: need to check the result of scsi_execute in sr_get_events
> scsi: sr: need to check the result of scsi_execute in sr_do_ioctl
> scsi: scsi_dh_emc: need to check the result of scsi_execute in
> send_trespass_cmd
> scsi: scsi_dh_rdac: need to check the result of scsi_execute in
> send_mode_select
> scsi: scsi_dh_hp_sw: need to check the result of scsi_execute in
> hp_sw_tur,hp_sw_start_stop
> scsi: scsi_dh_alua: need to check the result of scsi_execute in
> alua_rtpg,alua_stpg
> scsi: scsi_transport_spi: need to check whether sshdr is valid in
> spi_execute
> scsi: cxlflash: need to check whether sshdr is valid in read_cap16
> scsi: ufs: need to check whether sshdr is valid in
> ufshcd_set_dev_pwr_mode
> scsi: ch: need to check whether sshdr is valid in ch_do_scsi
>
> drivers/scsi/ch.c | 6 ++++--
> drivers/scsi/cxlflash/superpipe.c | 2 +-
> drivers/scsi/device_handler/scsi_dh_alua.c | 6 ++++--
> drivers/scsi/device_handler/scsi_dh_emc.c | 3 ++-
> drivers/scsi/device_handler/scsi_dh_hp_sw.c | 6 ++++--
> drivers/scsi/device_handler/scsi_dh_rdac.c | 8 +++++---
> drivers/scsi/scsi.c | 2 +-
> drivers/scsi/scsi_lib.c | 3 +++
> drivers/scsi/scsi_scan.c | 3 ++-
> drivers/scsi/scsi_transport_spi.c | 1 +
> drivers/scsi/sr.c | 3 ++-
> drivers/scsi/sr_ioctl.c | 6 ++++++
> drivers/scsi/ufs/ufshcd.c | 3 ++-
> 13 files changed, 37 insertions(+), 15 deletions(-)
>
> --
> 2.7.4
>
>
--
Damien Le Moal
Western Digital Research