android_kernel_xiaomi_sm8350/block
Boaz Harrosh c1c201200a bsg: Fix sense buffer bug in SG_IO
When submitting requests via SG_IO, which does a sync io, a
bsg_command is not allocated. So an in-Kernel sense_buffer was not
set. However when calling blk_execute_rq() with no sense buffer
one is provided from the stack. Now bsg at blk_complete_sgv4_hdr_rq()
would check if rq->sense_len and a sense was requested by sg_io_v4
the rq->sense was copy_user() back, but by now it is already mangled
stack memory.

I have fixed that by forcing a sense_buffer when calling bsg_map_hdr().
The bsg_command->sense is provided in the write/read path like before,
and on-the-stack buffer is provided when doing SG_IO.

I have also fixed a dprintk message to print rq->errors in hex because
of the scsi bit-field use of this member. For other block devices it
does not matter anyway.

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Acked-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2009-02-18 10:32:00 +01:00
..
as-iosched.c block: get rid of elevator_t typedef 2008-12-29 08:29:50 +01:00
blk-barrier.c block: Fix documentation for blkdev_issue_flush() 2009-01-30 12:34:37 +01:00
blk-core.c block: fix oops in blk_queue_io_stat() 2009-02-02 08:42:32 +01:00
blk-exec.c Add some block/ source files to the kernel-api docbook. Fix kernel-doc notation in them as needed. Fix changed function parameter names. Fix typos/spellos. In comments, change REQ_SPECIAL to REQ_TYPE_SPECIAL and REQ_BLOCK_PC to REQ_TYPE_BLOCK_PC. 2008-10-09 08:56:03 +02:00
blk-integrity.c block: Allow empty integrity profile 2009-01-30 12:34:36 +01:00
blk-ioc.c cfq-iosched: fix RCU race in the cfq io_context destructor handling 2008-05-07 09:28:57 +02:00
blk-map.c [SCSI] block: make blk_rq_map_user take a NULL user-space buffer for WRITE 2009-01-02 11:10:35 -06:00
blk-merge.c block: remove unused ll_new_mergeable() 2008-11-06 08:41:55 +01:00
blk-settings.c block: use min_not_zero in blk_queue_stack_limits 2008-12-29 08:29:51 +01:00
blk-softirq.c block: make blk_softirq_init() static 2008-12-29 08:29:51 +01:00
blk-sysfs.c block: add sysfs file for controlling io stats accounting 2009-01-30 12:34:38 +01:00
blk-tag.c block/blk-tag.c: cleanup kernel-doc 2008-12-29 08:28:43 +01:00
blk-timeout.c block: leave the request timeout timer running even on an empty list 2008-12-29 08:28:42 +01:00
blk.h block: fix oops in blk_queue_io_stat() 2009-02-02 08:42:32 +01:00
blktrace.c block: get rid of the manual directory counting in blktrace 2009-01-30 12:34:36 +01:00
bsg.c bsg: Fix sense buffer bug in SG_IO 2009-02-18 10:32:00 +01:00
cfq-iosched.c cfq-iosched: Allow RT requests to pre-empt ongoing BE timeslice 2009-01-30 12:47:33 +01:00
cmd-filter.c [PATCH] introduce fmode_t, do annotations 2008-10-21 07:47:06 -04:00
compat_ioctl.c block: don't take lock on changing ra_pages 2008-12-29 08:28:43 +01:00
deadline-iosched.c block: get rid of elevator_t typedef 2008-12-29 08:29:50 +01:00
elevator.c block: get rid of elevator_t typedef 2008-12-29 08:29:50 +01:00
genhd.c block: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:43 -08:00
ioctl.c block: don't take lock on changing ra_pages 2008-12-29 08:28:43 +01:00
Kconfig block: Add Kconfig help which notes that ext4 needs CONFIG_LBD 2009-01-06 15:16:33 -05:00
Kconfig.iosched update I/O sched Kconfig help texts - CFQ is now default, not AS. 2007-02-17 20:08:22 +01:00
Makefile block: unify request timeout handling 2008-10-09 08:56:13 +02:00
noop-iosched.c block: get rid of elevator_t typedef 2008-12-29 08:29:50 +01:00
scsi_ioctl.c scsi-ioctl: use clock_t <> jiffies 2008-12-29 08:28:42 +01:00