summaryrefslogtreecommitdiff
path: root/drivers/block/rsxx/dev.c
diff options
context:
space:
mode:
authorPhilip J Kelleher <pjk1939@linux.vnet.ibm.com>2013-06-18 23:48:38 +0400
committerJens Axboe <axboe@kernel.dk>2013-06-19 15:52:10 +0400
commit3eb8dcafb5a73041e2f3b4a39c057a58e4354d83 (patch)
tree754d303661b0de51c248a57bea2991d9c4a55018 /drivers/block/rsxx/dev.c
parent66bc600363acd0acae84e878e5a06e7b7a38c014 (diff)
downloadlinux-3eb8dcafb5a73041e2f3b4a39c057a58e4354d83.tar.xz
rsxx: Adapter address space sanity check.
Adding a sanity check to guarentee that DMAs outside of the device's address space will be errored out right away. Signed-off-by: Philip J Kelleher <pjk1939@linux.vnet.ibm.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/block/rsxx/dev.c')
-rw-r--r--drivers/block/rsxx/dev.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/block/rsxx/dev.c b/drivers/block/rsxx/dev.c
index a092f58db212..d7af441880be 100644
--- a/drivers/block/rsxx/dev.c
+++ b/drivers/block/rsxx/dev.c
@@ -174,6 +174,9 @@ static void rsxx_make_request(struct request_queue *q, struct bio *bio)
if (!card)
goto req_err;
+ if (bio->bi_sector + (bio->bi_size >> 9) > get_capacity(card->gendisk))
+ goto req_err;
+
if (unlikely(card->halt)) {
st = -EFAULT;
goto req_err;