Commit ad180f6f authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

aoe: handle highmem pages



Use kmap_atomic when copying out of a bio_vec.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 34ab96e6
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -388,7 +388,6 @@ aoeblk_gdalloc(void *vp)
			d->aoemajor, d->aoeminor);
			d->aoemajor, d->aoeminor);
		goto err_mempool;
		goto err_mempool;
	}
	}
	blk_queue_bounce_limit(q, BLK_BOUNCE_HIGH);


	spin_lock_irqsave(&d->lock, flags);
	spin_lock_irqsave(&d->lock, flags);
	WARN_ON(!(d->flags & DEVFL_GD_NOW));
	WARN_ON(!(d->flags & DEVFL_GD_NOW));
+2 −1
Original line number Original line Diff line number Diff line
@@ -1032,8 +1032,9 @@ bvcpy(struct sk_buff *skb, struct bio *bio, struct bvec_iter iter, long cnt)
	iter.bi_size = cnt;
	iter.bi_size = cnt;


	__bio_for_each_segment(bv, bio, iter, iter) {
	__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);
		skb_copy_bits(skb, soff, p, bv.bv_len);
		kunmap_atomic(p);
		soff += bv.bv_len;
		soff += bv.bv_len;
	}
	}
}
}