aboutsummaryrefslogtreecommitdiffstats
path: root/block/blk-map.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-12-20 09:19:46 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2010-12-20 09:19:46 -0800
commit7f8635cc9e66a26d7280ba680b044fa2f65104af (patch)
tree0d8506e86d07e15c473aca1a09af7ad6ff7d8b49 /block/blk-map.c
parent3cb50ddf97a0a1ca4c68bc12fa1e727a6b45fbf2 (diff)
parent0fc13c8995cd96f4123de400c71c223d80400ed9 (diff)
downloadkernel_samsung_smdk4412-7f8635cc9e66a26d7280ba680b044fa2f65104af.zip
kernel_samsung_smdk4412-7f8635cc9e66a26d7280ba680b044fa2f65104af.tar.gz
kernel_samsung_smdk4412-7f8635cc9e66a26d7280ba680b044fa2f65104af.tar.bz2
Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
* 'for-linus' of git://git.kernel.dk/linux-2.6-block: cciss: fix cciss_revalidate panic block: max hardware sectors limit wrapper block: Deprecate QUEUE_FLAG_CLUSTER and use queue_limits instead blk-throttle: Correct the placement of smp_rmb() blk-throttle: Trim/adjust slice_end once a bio has been dispatched block: check for proper length of iov entries earlier in blk_rq_map_user_iov() drbd: fix for spin_lock_irqsave in endio callback drbd: don't recvmsg with zero length
Diffstat (limited to 'block/blk-map.c')
-rw-r--r--block/blk-map.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/block/blk-map.c b/block/blk-map.c
index 5d5dbe4..e663ac2 100644
--- a/block/blk-map.c
+++ b/block/blk-map.c
@@ -201,12 +201,13 @@ int blk_rq_map_user_iov(struct request_queue *q, struct request *rq,
for (i = 0; i < iov_count; i++) {
unsigned long uaddr = (unsigned long)iov[i].iov_base;
+ if (!iov[i].iov_len)
+ return -EINVAL;
+
if (uaddr & queue_dma_alignment(q)) {
unaligned = 1;
break;
}
- if (!iov[i].iov_len)
- return -EINVAL;
}
if (unaligned || (q->dma_pad_mask & len) || map_data)