summaryrefslogtreecommitdiffstats
path: root/drivers/block/aoe/aoecmd.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2018-05-09 15:59:46 +0200
committerJens Axboe <axboe@kernel.dk>2018-05-11 15:08:00 -0600
commitad180f6f718527ab0d6d82b905486b219cdd2263 (patch)
tree74e8a2387559d3deb8e0706110db629de925fb1f /drivers/block/aoe/aoecmd.c
parent34ab96e6c5c0eeba11816f8887716da0b5a9a7db (diff)
downloadlinux-ad180f6f718527ab0d6d82b905486b219cdd2263.tar.bz2
aoe: handle highmem pages
Use kmap_atomic when copying out of a bio_vec. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/block/aoe/aoecmd.c')
-rw-r--r--drivers/block/aoe/aoecmd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c
index 540bb60cd071..096882e54095 100644
--- a/drivers/block/aoe/aoecmd.c
+++ b/drivers/block/aoe/aoecmd.c
@@ -1032,8 +1032,9 @@ bvcpy(struct sk_buff *skb, struct bio *bio, struct bvec_iter iter, long cnt)
iter.bi_size = cnt;
__bio_for_each_segment(bv, bio, iter, iter) {
- char *p = page_address(bv.bv_page) + bv.bv_offset;
+ char *p = kmap_atomic(bv.bv_page) + bv.bv_offset;
skb_copy_bits(skb, soff, p, bv.bv_len);
+ kunmap_atomic(p);
soff += bv.bv_len;
}
}