android_kernel_xiaomi_sm8350/drivers
Boaz Harrosh 6f9a35e2da [SCSI] bidirectional command support
At the block level bidi request uses req->next_rq pointer for a second
bidi_read request.
At Scsi-midlayer a second scsi_data_buffer structure is used for the
bidi_read part. This bidi scsi_data_buffer is put on
request->next_rq->special. Struct scsi_cmnd is not changed.

- Define scsi_bidi_cmnd() to return true if it is a bidi request and a
  second sgtable was allocated.

- Define scsi_in()/scsi_out() to return the in or out scsi_data_buffer
  from this command This API is to isolate users from the mechanics of
  bidi.

- Define scsi_end_bidi_request() to do what scsi_end_request() does but
  for a bidi request. This is necessary because bidi commands are a bit
  tricky here. (See comments in body)

- scsi_release_buffers() will also release the bidi_read scsi_data_buffer

- scsi_io_completion() on bidi commands will now call
  scsi_end_bidi_request() and return.

- The previous work done in scsi_init_io() is now done in a new
  scsi_init_sgtable() (which is 99% identical to old scsi_init_io())
  The new scsi_init_io() will call the above twice if needed also for
  the bidi_read command. Only at this point is a command bidi.

- In scsi_error.c at scsi_eh_prep/restore_cmnd() make sure bidi-lld is not
  confused by a get-sense command that looks like bidi. This is done
  by puting NULL at request->next_rq, and restoring.

[jejb: update to sg_table and resolve conflicts
also update to blk-end-request and resolve conflicts]

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2008-01-30 13:03:41 -06:00
..
acorn/char
acpi x86: don't disable TSC in any C states on AMD Fam10h 2008-01-30 13:32:41 +01:00
amba
ata
atm
auxdisplay
base
block cciss: fix bug in overriding ->data_len before completion 2008-01-29 21:55:18 +01:00
bluetooth
cdrom
char x86: remove flush_agp_mappings() 2008-01-30 13:34:07 +01:00
clocksource
connector [NETNS]: Consolidate kernel netlink socket destruction. 2008-01-28 15:08:07 -08:00
cpufreq cpufreq: fix obvious condition statement error 2008-01-30 13:33:34 +01:00
cpuidle
crypto
dca
dio
dma
edac
eisa
firewire
firmware x86: left over fix for leak of early_ioremp in dmi_scan 2008-01-30 13:33:32 +01:00
hid
hwmon
i2c
ide
ieee1394 x86: early boot debugging via FireWire (ohci1394_dma=early) 2008-01-30 13:34:11 +01:00
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.25 2008-01-29 22:54:01 +11:00
input x86: replace outb_p() with udelay(2) in drivers/input/mouse/pc110pad.c 2008-01-30 13:31:24 +01:00
isdn
kvm x86: get rid of _MASK flags 2008-01-30 13:31:27 +01:00
leds
lguest x86: use generic register name in the thread and tss structures 2008-01-30 13:31:02 +01:00
macintosh
mca
md
media
message
mfd
misc
mmc
mtd
net [net] Gracefully handle shared e1000/1000e driver PCI ID's 2008-01-31 00:30:15 +11:00
nubus
of
oprofile
parisc
parport
pci
pcmcia
pnp git-x86: drivers/pnp/pnpbios/bioscalls.c build fix 2008-01-30 13:32:31 +01:00
power
ps3
rapidio
rtc
s390 [SCSI] zfcp: fix sense_buffer access bug 2008-01-30 13:03:39 -06:00
sbus
scsi [SCSI] bidirectional command support 2008-01-30 13:03:41 -06:00
serial
sh
sn
spi
ssb ssb: Add boardflags_hi field to the sprom data structure 2008-01-28 15:09:52 -08:00
tc
telephony
uio
usb [SCSI] implement scsi_data_buffer 2008-01-30 13:03:40 -06:00
video x86: cpa: move flush to cpa 2008-01-30 13:34:07 +01:00
virtio
w1
watchdog
xen
zorro
Kconfig
Makefile x86: early boot debugging via FireWire (ohci1394_dma=early) 2008-01-30 13:34:11 +01:00