android_kernel_xiaomi_sm8350/drivers/scsi
David S. Miller 8cc574a3c5 [SCSI]: Fix scsi_send_eh_cmnd scatterlist handling
This fixes a regression caused by commit:

2dc611de5a

The sense buffer code in scsi_send_eh_cmnd was changed to use
alloc_page() and a scatter list, but the sense data copy was not
updated to match so what we actually get in the sense buffer is total
grabage starting with the kernel address of the struct page we got.
Basically the stack frame of scsi_send_eh_cmd() is what ends up
in the sense buffer.

Depending upon how pointers look on a given platform, you can
end up getting sr_ioctl.c errors when you mount a cdrom.  If
the CDROM gives a check condition for GPCMD_GET_CONFIGURATION issued
by drivers/cdrom/cdrom.c:cdrom_mmc_profile(), sr_ioctl will
spit out this error message in sr_do_ioctl() with the way pointers
are on sparc64:

		default:
			printk(KERN_ERR "%s: CDROM (ioctl) error, command: ", cd->cdi.name);
			__scsi_print_command(cgc->cmd);
			scsi_print_sense_hdr("sr", &sshdr);
			err = -EIO;

This is the error Tom Callaway reported in:

http://marc.info/?l=linux-sparc&m=117407453208101&w=2

Anyways, fix this by using page_address(sgl.page) which is OK
because we know this is low-mem due to GFP_ATOMIC.

Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Christoph Hellwig <hch@lst.de>
2007-04-02 14:26:22 -07:00
..
aacraid [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
aic7xxx [SCSI] aic79xx: remove extra newline from info message 2007-02-16 10:13:53 -06:00
aic7xxx_old
aic94xx [SCSI] aic94xx: tie driver to the major number of the sequencer firmware 2007-02-16 09:43:31 -06:00
arcmsr [PATCH] Scheduled removal of SA_xxx interrupt flags fixups 2007-02-14 08:09:54 -08:00
arm [ARM] ARM SCSI: Don't try to dma_map_sg too many scatterlist entries 2007-03-04 20:33:31 +00:00
dpt
ibmvscsi [PATCH] Scheduled removal of SA_xxx interrupt flags fixups 2007-02-14 08:09:54 -08:00
libsas [SCSI] libsas: Add an LU reset mechanism to the error handler 2007-02-03 08:15:55 -06:00
lpfc [SCSI] lpfc: avoid double-free during PCI error failure 2007-03-11 10:42:17 -05:00
megaraid [SCSI] megaraid_sas: update version and author info 2007-02-16 10:44:12 -06:00
pcmcia [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
qla2xxx [SCSI] qla2xxx: Update version number to 8.01.07-k5. 2007-01-31 11:26:43 -06:00
qla4xxx [PATCH] Scheduled removal of SA_xxx interrupt flags fixups 2007-02-14 08:09:54 -08:00
sym53c8xx_2 Fix misspellings of "agressive". 2007-02-17 19:20:16 +01:00
.gitignore
3w-9xxx.c [PATCH] mark struct file_operations const 6 2007-02-12 09:48:45 -08:00
3w-9xxx.h
3w-xxxx.c [PATCH] mark struct file_operations const 6 2007-02-12 09:48:45 -08:00
3w-xxxx.h [SCSI] 3ware 8000 serialize reset code 2007-01-06 09:18:00 -06:00
53c7xx_d.h_shipped
53c7xx_u.h_shipped
53c7xx.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-02-11 11:44:25 -08:00
53c7xx.h
53c7xx.scr
53c700_d.h_shipped
53c700.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
53c700.h [SCSI] 53c700: Allow setting burst length 2007-01-13 13:44:30 -06:00
53c700.scr
a100u2w.c drivers/scsi/a100u2w.c: trivial typo patch 2007-02-17 19:18:52 +01:00
a100u2w.h
a2091.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
a2091.h
a3000.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
a3000.h
advansys.c [SCSI] advansys: clean up warnings 2007-02-07 18:32:18 -05:00
advansys.h
aha152x.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
aha152x.h
aha1542.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
aha1542.h
aha1740.c
aha1740.h
aic7xxx_old.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
amiga7xx.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
amiga7xx.h
atari_dma_emul.c
atari_NCR5380.c
atari_scsi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
atari_scsi.h
atp870u.c
atp870u.h
blz1230.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
blz2060.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
BusLogic.c [SCSI] BusLogic: Replace 'boolean' by 'bool' 2007-02-07 18:32:29 -05:00
BusLogic.h [SCSI] BusLogic: Replace 'boolean' by 'bool' 2007-02-07 18:32:29 -05:00
bvme6000.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
bvme6000.h
ch.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
constants.c
cyberstorm.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
cyberstormII.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
dc395x.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
dc395x.h
dec_esp.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
dmx3191d.c
dpt_i2o.c [PATCH] mark struct file_operations const 6 2007-02-12 09:48:45 -08:00
dpti.h
dtc.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
dtc.h
eata_generic.h
eata_pio.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
eata_pio.h
eata.c
esp.c
esp.h
fastlane.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
fcal.c
fcal.h
fd_mcs.c
fdomain.c
fdomain.h
FlashPoint.c [SCSI] BusLogic: Replace 'boolean' by 'bool' 2007-02-07 18:32:29 -05:00
g_NCR5380_mmio.c
g_NCR5380.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
g_NCR5380.h
gdth_ioctl.h
gdth_kcompat.h
gdth_proc.c
gdth_proc.h
gdth.c [SCSI] gdth: fix oops in gdth_copy_cmd() 2007-03-11 10:58:49 -05:00
gdth.h
gvp11.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
gvp11.h
hosts.c
hptiop.c
hptiop.h
ibmmca.c
ibmmca.h
ide-scsi.c ide: remove ide_drive_t.usage 2007-02-17 02:40:24 +01:00
imm.c
imm.h
in2000.c
in2000.h
initio.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
initio.h
ipr.c PCI: remove duplicate device id from ipr 2007-02-07 15:50:06 -08:00
ipr.h [SCSI] ipr: Driver version 2.3.1 2007-01-27 09:26:36 -06:00
ips.c
ips.h
iscsi_tcp.c [PATCH] iscsi endianness annotations 2007-02-09 09:14:07 -08:00
iscsi_tcp.h
jazz_esp.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
Kconfig fix SCSI_SCAN_ASYNC help text 2007-02-17 19:36:33 +01:00
lasi700.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
libiscsi.c [PATCH] iscsi endianness annotations 2007-02-09 09:14:07 -08:00
libsrp.c
mac53c94.c
mac53c94.h
mac_esp.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
mac_scsi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
mac_scsi.h
Makefile [SCSI] SNI RM 53c710 driver 2007-01-13 13:49:58 -06:00
mca_53c9x.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
megaraid.c [SCSI] megaraid: pci_module_init to pci_register_driver 2007-02-16 09:41:45 -06:00
megaraid.h
mesh.c
mesh.h
mvme16x.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
mvme16x.h
mvme147.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
mvme147.h
ncr53c8xx.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2006-12-05 16:09:46 -08:00
ncr53c8xx.h
NCR53c406a.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
NCR53C9x.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
NCR53C9x.h [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
NCR5380.c
NCR5380.h
NCR_D700.c [SCSI] NCR_D700: fix compile error 2007-01-27 09:28:58 -06:00
NCR_D700.h
NCR_Q720.c
NCR_Q720.h
nsp32_debug.c
nsp32_io.h
nsp32.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
nsp32.h
oktagon_esp.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
oktagon_io.S
osst_detect.h
osst_options.h
osst.c Replace remaining references to "driverfs" with "sysfs". 2007-02-17 19:13:42 +01:00
osst.h [PATCH] osst endianness annotations 2007-02-09 09:14:07 -08:00
pas16.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
pas16.h
pci2000.h
pluto.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
pluto.h
ppa.c
ppa.h
psi240i.c
psi240i.h
psi_chip.h
ql1040_fw.h
ql1280_fw.h
ql12160_fw.h
qla1280.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
qla1280.h
qlogicfas408.c
qlogicfas408.h
qlogicfas.c
qlogicpti_asm.c
qlogicpti.c
qlogicpti.h
raid_class.c
script_asm.pl
scsi_debug.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
scsi_debug.h
scsi_devinfo.c
scsi_error.c [SCSI]: Fix scsi_send_eh_cmnd scatterlist handling 2007-04-02 14:26:22 -07:00
scsi_ioctl.c
scsi_lib.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-02-11 11:44:25 -08:00
scsi_logging.h
scsi_module.c
scsi_netlink.c
scsi_priv.h [SCSI] scsi_error.c: Export some scsi_eh_* functions 2007-01-27 10:06:34 -06:00
scsi_proc.c [SCSI] scsi_proc.c: display sdev->scsi_level correctly 2007-02-16 11:12:07 -06:00
scsi_sas_internal.h
scsi_scan.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-02-19 13:32:28 -08:00
scsi_sysctl.c [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
scsi_sysfs.c [PATCH] sysfs and driver core: add callback helper, used by SCSI and S390 2007-03-15 15:29:26 -07:00
scsi_tgt_if.c [SCSI] tgt: fix the user/kernel ring buffer interface 2007-02-16 09:40:56 -06:00
scsi_tgt_lib.c [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
scsi_tgt_priv.h
scsi_transport_api.h
scsi_transport_fc.c Fix typos concerning hierarchy 2007-02-17 19:23:03 +01:00
scsi_transport_iscsi.c [SCSI] iscsi: newline in printk 2007-01-06 09:00:37 -06:00
scsi_transport_sas.c Fix typos concerning hierarchy 2007-02-17 19:23:03 +01:00
scsi_transport_spi.c [SCSI] spi transport class: export spi_dv_pending 2007-02-02 20:44:25 -06:00
scsi_typedefs.h
scsi_wait_scan.c
scsi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
scsi.h
scsicam.c
sd.c USB Storage: indistinguishable devices with broken and unbroken firmware 2007-02-16 15:32:19 -08:00
seagate.c [SCSI] seagate: remove BROKEN tag 2007-01-03 16:57:38 -06:00
sg.c
sgiwd93.c [SCSI] sgiwd93: interfacing to wd33c93 2007-02-16 09:38:12 -06:00
sim710.c [SCSI] 53c700: Allow setting burst length 2007-01-13 13:44:30 -06:00
sni_53c710.c [SCSI] SNI RM 53c710 driver 2007-01-13 13:49:58 -06:00
sr_ioctl.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sr_vendor.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
sr.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sr.h
st_options.h
st.c Replace remaining references to "driverfs" with "sysfs". 2007-02-17 19:13:42 +01:00
st.h [SCSI] st: fix Tape dies if wrong block size used, bug 7919 2007-02-03 08:05:47 -06:00
stex.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sun3_NCR5380.c [PATCH] m68k trivial build fixes 2006-12-17 10:21:53 -08:00
sun3_scsi_vme.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sun3_scsi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sun3_scsi.h [PATCH] Sun3 SCSI: Make sun3 scsi drivers compile/work again 2006-12-09 09:41:18 -08:00
sun3x_esp.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
sym53c416.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sym53c416.h
t128.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
t128.h
tmscsim.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
tmscsim.h
u14-34f.c
ultrastor.c
ultrastor.h
wd33c93.c [SCSI] wd33c93: Fast SCSI with WD33C93B 2007-02-16 09:22:11 -06:00
wd33c93.h [SCSI] wd33c93: Fast SCSI with WD33C93B 2007-02-16 09:22:11 -06:00
wd7000.c
zalon.c