android_kernel_motorola_sm6225/drivers/block
Philip J Kelleher e35f38bf73 rsxx: Disallow discards from being unmapped.
This patch fixes a bug in which discards were always
calling pci_unmap_page. Discards should never call the
pci_unmap_page function call because they are never mapped.

This caused a race condition on PowerPC systems when issuing
discards, writes, and reads all at the same time. The
pci_map_page function would eventually map logical address
0 for a read or write. Discards are always assigned a DMA
address of 0 because they are never mapped. So if
pci_map_page mapped address 0 for a DMA and a discard was
"unmapped" then the address would be freed and would cause
an EEH event to occur when Hardware accesses the address.

This was injected/uncovered in commit:
b347f9cf0bc8d42ee95ba1d3837fd93045ab336b

The pci_dma_mapping_error function declares -1 a DMA_ERROR
not 0 like initially thought So before we would never unmap
discards because they were considered NULL.

This patch should fall on top of commit id:
fc1967bb08a6184ed44ef990e1dd4389901b809c

Also, the driver version is being up dated.

Signed-off-by: Philip J Kelleher <pjk1939@linux.vnet.ibm.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2013-11-08 09:10:29 -07:00
..
aoe aoe: do not BUG if memory pressure prevented debugfs file creation 2013-09-11 15:59:28 -07:00
drbd drbd: avoid to shrink max_bio_size due to peer re-configuration 2013-11-08 09:10:29 -07:00
mtip32xx mtip32xx: dynamically allocate buffer in debugfs functions 2013-11-08 09:10:28 -07:00
paride block_device_operations->release() should return void 2013-05-07 02:16:21 -04:00
rsxx rsxx: Disallow discards from being unmapped. 2013-11-08 09:10:29 -07:00
xen-blkback xen/blkback: fix reference counting 2013-11-08 09:10:27 -07:00
amiflop.c block_device_operations->release() should return void 2013-05-07 02:16:21 -04:00
ataflop.c block_device_operations->release() should return void 2013-05-07 02:16:21 -04:00
brd.c block: fix a probe argument to blk_register_region 2013-11-08 08:59:39 -07:00
cciss.c cciss: fix info leak in cciss_ioctl32_passthru() 2013-09-24 17:00:26 -07:00
cciss.h
cciss_cmd.h
cciss_scsi.c cciss: switch to ->show_info() 2013-04-09 14:13:19 -04:00
cciss_scsi.h
cpqarray.c cpqarray: fix info leak in ida_locked_ioctl() 2013-09-24 17:00:26 -07:00
cpqarray.h
cryptoloop.c move linux/loop.h to drivers/block 2013-06-29 12:46:45 +04:00
DAC960.c procfs: new helper - PDE_DATA(inode) 2013-04-09 14:13:32 -04:00
DAC960.h
floppy.c Merge branch 'for-3.10/core' of git://git.kernel.dk/linux-block 2013-05-08 10:13:35 -07:00
hd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ida_cmd.h
ida_ioctl.h
Kconfig block: disable cpqarray in Kconfig 2013-11-08 09:10:28 -07:00
loop.c loop: fix crash when using unassigned loop device 2013-11-08 09:10:28 -07:00
loop.h move linux/loop.h to drivers/block 2013-06-29 12:46:45 +04:00
Makefile Add support for sTec's pci-e flash card Kronos 2013-11-08 09:10:28 -07:00
mg_disk.c mg_disk: remove deprecated IRQF_DISABLED 2013-11-08 09:10:27 -07:00
nbd.c nbd: correct disconnect behavior 2013-07-03 16:08:05 -07:00
nvme-core.c NVMe: Merge issue on character device bring-up 2013-09-06 16:26:58 -04:00
nvme-scsi.c NVMe: Use kzalloc instead of kmalloc+memset 2013-06-19 13:24:27 -04:00
osdblk.c block: replace strict_strtoul() with kstrtoul() 2013-09-11 15:56:56 -07:00
pktcdvd.c pktcdvd: fix defective misuses of pkt_<level> 2013-09-11 15:59:34 -07:00
ps3disk.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
ps3vram.c procfs: new helper - PDE_DATA(inode) 2013-04-09 14:13:32 -04:00
rbd.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2013-09-19 12:50:37 -05:00
rbd_types.h rbd: get rid of RBD_MAX_SEG_NAME_LEN 2012-12-17 08:37:29 -06:00
skd_main.c Add support for sTec's pci-e flash card Kronos 2013-11-08 09:10:28 -07:00
skd_s1120.h Add support for sTec's pci-e flash card Kronos 2013-11-08 09:10:28 -07:00
smart1,2.h
sunvdc.c sunvdc: Fix off-by-one in generic_request(). 2013-02-14 11:49:01 -08:00
swim.c drivers/block/swim.c: remove unnecessary platform_set_drvdata() 2013-09-11 15:56:59 -07:00
swim3.c block_device_operations->release() should return void 2013-05-07 02:16:21 -04:00
swim_asm.S
sx8.c block, sx8: fix pointer math issue getting fw version 2012-03-03 19:44:39 +01:00
umem.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
umem.h
virtio_blk.c virtio_blk: Add missing 'static' qualifiers 2013-05-20 12:09:23 +09:30
xen-blkfront.c xen-blkfront: improve aproximation of required grants per request 2013-11-08 09:10:27 -07:00
xsysace.c xilinx systemace: Fix sparse warnings 2013-07-10 07:47:12 +02:00
z2ram.c block_device_operations->release() should return void 2013-05-07 02:16:21 -04:00