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 scsi: fcoe: Embed fc_rport_priv in fcoe_rport structure 2020-04-06 20:50:12 +02:00
fnic scsi: fnic: do not queue commands during fwreset 2020-04-07 13:48:42 +02:00
ibmvscsi
isci scsi: isci: Change sci_controller_start_task's return type to sci_status 2020-04-07 12:34:46 +02:00
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 scsi: sym53c8xx: fix NULL pointer dereference panic in sym_int_sir() 2020-04-07 12:27:26 +02:00
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 scsi: dc395x: fix DMA API usage in sg_update_list 2020-04-07 12:34:54 +02:00
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 scsi: hpsa: correct scsi command status issue after reset 2020-04-06 20:49:04 +02:00
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 scsi: ips: fix missing break in switch 2020-04-07 12:34:40 +02:00
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 scsi: fix kconfig dependency warning related to 53C700_LE_ON_BE 2020-04-07 09:29:03 +02:00
lasi700.c
libiscsi_tcp.c
libiscsi.c
mac_esp.c
mac_scsi.c
mac53c94.c
mac53c94.h
Makefile
megaraid.c scsi: megaraid: disable device when probe failed after enabled device 2020-04-07 09:24:00 +02:00
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: core: Reduce memory required for SCSI logging 2020-04-07 07:43:20 +02:00
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: core: try to get module before removing device 2020-04-07 09:26:40 +02:00
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 scsi: sni_53c710: fix compilation error 2020-04-07 09:29:01 +02:00
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