diff options
author | Philip J Kelleher | 2013-10-19 00:11:46 +0200 |
---|---|---|
committer | Jens Axboe | 2013-11-08 17:10:29 +0100 |
commit | e35f38bf73b6c9ec9521d9deb94198a419692db5 (patch) | |
tree | 4ecd863d83eeb7e9752312f8757f5c6e03f4ea06 /security/integrity | |
parent | drbd: avoid to shrink max_bio_size due to peer re-configuration (diff) | |
download | kernel-qcow2-linux-e35f38bf73b6c9ec9521d9deb94198a419692db5.tar.gz kernel-qcow2-linux-e35f38bf73b6c9ec9521d9deb94198a419692db5.tar.xz kernel-qcow2-linux-e35f38bf73b6c9ec9521d9deb94198a419692db5.zip |
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>
Diffstat (limited to 'security/integrity')
0 files changed, 0 insertions, 0 deletions