android_kernel_samsung_a7y1.../drivers/scsi
Martin K. Petersen a43e3f8e44 scsi: sd: Fix optimal I/O size for devices that change reported values
commit ea697a8bf5a4161e59806fab14f6e4a46dc7dcb0 upstream.

Some USB bridge devices will return a default set of characteristics during
initialization. And then, once an attached drive has spun up, substitute
the actual parameters reported by the drive. According to the SCSI spec,
the device should return a UNIT ATTENTION in case any reported parameters
change. But in this case the change is made silently after a small window
where default values are reported.

Commit a83da8a4509d ("scsi: sd: Optimal I/O size should be a multiple of
physical block size") validated the reported optimal I/O size against the
physical block size to overcome problems with devices reporting nonsensical
transfer sizes. However, this validation did not account for the fact that
aforementioned devices will return default values during a brief window
during spin-up. The subsequent change in reported characteristics would
invalidate the checking that had previously been performed.

Unset a previously configured optimal I/O size should the sanity checking
fail on subsequent revalidate attempts.

Link: https://lore.kernel.org/r/33fb522e-4f61-1b76-914f-c9e6a3553c9b@gmail.com
Cc: Bryan Gurney <bgurney@redhat.com>
Cc: <stable@vger.kernel.org>
Reported-by: Bernhard Sulzer <micraft.b@gmail.com>
Tested-by: Bernhard Sulzer <micraft.b@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-04-07 14:24:15 +02:00
..
aacraid
aic7xxx scsi: aic7xxx: Adjust indentation in ahc_find_syncrate 2020-04-07 13:56:24 +02:00
aic94xx
arcmsr
arm
be2iscsi
bfa scsi: bfa: release allocated memory in case of error 2020-04-07 13:33:00 +02:00
bnx2fc
bnx2i scsi: bnx2i: fix potential use after free 2020-04-07 13:38:54 +02:00
csiostor scsi: csiostor: Adjust indentation in csio_device_reset 2020-04-07 13:50:43 +02:00
cxgbi
cxlflash
device_handler
dpt
esas2r scsi: esas2r: unlock on error in esas2r_nvram_read_direct() 2020-04-07 13:38:50 +02:00
fcoe
fnic scsi: fnic: do not queue commands during fwreset 2020-04-07 13:48:42 +02:00
ibmvscsi
isci
libfc scsi: libfc: fix null pointer dereference on a null lport 2020-04-07 13:42:31 +02:00
libsas scsi: libsas: stop discovering if oob mode is disconnected 2020-04-07 13:24:18 +02:00
lpfc scsi: lpfc: Fix memory leak on lpfc_bsg_write_ebuf_set func 2020-04-07 13:24:13 +02:00
megaraid scsi: megaraid_sas: reduce module load time 2020-04-07 13:40:52 +02:00
mpt3sas scsi: mpt3sas: Fix clear pending bit in ioctl status 2020-04-07 13:22:39 +02:00
mvsas
osd
pcmcia
pm8001 scsi: pm80xx: Fix for SATA device discovery 2020-04-07 13:23:28 +02:00
qla2xxx scsi: qla2xxx: fix a potential NULL pointer dereference 2020-04-07 13:55:29 +02:00
qla4xxx scsi: qla4xxx: Adjust indentation in qla4xxx_mem_free 2020-04-07 13:50:45 +02:00
snic
sym53c8xx_2
ufs scsi: ufs: Fix ufshcd_probe_hba() reture value in case ufshcd_scsi_add_wlus() fails 2020-04-07 13:54:27 +02:00
3w-9xxx.c
3w-9xxx.h
3w-sas.c
3w-sas.h
3w-xxxx.c
3w-xxxx.h
53c700_d.h_shipped
53c700.c
53c700.h
53c700.scr
a100u2w.c
a100u2w.h
a2091.c
a2091.h
a3000.c
a3000.h
a4000t.c
advansys.c
aha152x.c
aha152x.h
aha1542.c
aha1542.h
aha1740.c
aha1740.h
am53c974.c
atari_NCR5380.c
atari_scsi.c
atp870u.c
atp870u.h
BusLogic.c
BusLogic.h
bvme6000_scsi.c
ch.c
constants.c
dc395x.c
dc395x.h
dmx3191d.c
dpt_i2o.c
dpti.h
dtc.c
dtc.h
eata_generic.h
eata_pio.c
eata_pio.h
eata.c
esp_scsi.c
esp_scsi.h
fdomain.c
fdomain.h
FlashPoint.c
g_NCR5380_mmio.c
g_NCR5380.c
g_NCR5380.h
gdth_ioctl.h
gdth_proc.c
gdth_proc.h
gdth.c
gdth.h
gvp11.c
gvp11.h
hosts.c
hpsa_cmd.h
hpsa.c
hpsa.h
hptiop.c
hptiop.h
imm.c
imm.h
in2000.c
in2000.h
initio.c
initio.h
ipr.c scsi: ipr: Fix softlockup when rescanning devices in petitboot 2020-04-07 14:24:01 +02:00
ipr.h scsi: ipr: Fix softlockup when rescanning devices in petitboot 2020-04-07 14:24:01 +02:00
ips.c
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c scsi: iscsi: Don't destroy session if there are outstanding connections 2020-04-07 13:56:55 +02:00
iscsi_tcp.h
jazz_esp.c
Kconfig
lasi700.c
libiscsi_tcp.c
libiscsi.c
mac_esp.c
mac_scsi.c
mac53c94.c
mac53c94.h
Makefile
megaraid.c
megaraid.h
mesh.c
mesh.h
mvme16x_scsi.c
mvme147.c
mvme147.h
mvumi.c
mvumi.h
NCR_D700.c
NCR_D700.h
NCR_Q720.c
NCR_Q720.h
ncr53c8xx.c
ncr53c8xx.h
NCR53c406a.c
NCR5380.c
NCR5380.h
nsp32_debug.c
nsp32_io.h
nsp32.c
nsp32.h
osst_detect.h
osst_options.h
osst.c
osst.h
pas16.c
pas16.h
pmcraid.c
pmcraid.h
ppa.c
ppa.h
ps3rom.c
qla1280.c
qla1280.h
qlogicfas.c
qlogicfas408.c
qlogicfas408.h
qlogicpti.c
qlogicpti.h
raid_class.c
script_asm.pl
scsi_common.c
scsi_debug.c
scsi_devinfo.c
scsi_dh.c
scsi_error.c
scsi_ioctl.c
scsi_lib_dma.c
scsi_lib.c
scsi_logging.c
scsi_logging.h
scsi_module.c
scsi_netlink.c
scsi_pm.c
scsi_priv.h
scsi_proc.c
scsi_sas_internal.h
scsi_scan.c
scsi_srpmb-teegris.c
scsi_srpmb.c
scsi_srpmb.h
scsi_sysctl.c
scsi_sysfs.c
scsi_trace.c scsi: core: scsi_trace: Use get_unaligned_be*() 2020-04-07 13:38:58 +02:00
scsi_transport_api.h
scsi_transport_fc.c
scsi_transport_iscsi.c scsi: iscsi: Don't destroy session if there are outstanding connections 2020-04-07 13:56:55 +02:00
scsi_transport_sas.c
scsi_transport_spi.c
scsi_transport_srp.c
scsi_typedefs.h
scsi.c
scsi.h
scsicam.c
sd_dif.c
sd.c scsi: sd: Fix optimal I/O size for devices that change reported values 2020-04-07 14:24:15 +02:00
sd.h
ses.c
sg.c
sgiwd93.c
sim710.c
sni_53c710.c
sr_ioctl.c
sr_vendor.c
sr.c
sr.h
st_options.h
st.c
st.h
stex.c
storvsc_drv.c
sun_esp.c
sun3_scsi_vme.c
sun3_scsi.c
sun3_scsi.h
sun3x_esp.c
sym53c416.c
sym53c416.h
t128.c
t128.h
u14-34f.c
ultrastor.c
ultrastor.h
virtio_scsi.c
vmw_pvscsi.c
vmw_pvscsi.h
wd33c93.c
wd33c93.h
wd719x.c
wd719x.h
wd7000.c
xen-scsifront.c
zalon.c
zorro7xx.c