summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2013-05-30 09:19:35 +0200
committerJens Axboe <axboe@kernel.dk>2013-05-30 09:20:20 +0200
commitac4e97abce9b80c020e7113325f49e58b7b15e3f (patch)
tree6b1395a60b4e28a34f4e3693fbfb3df98008a20b
parent4997b72ee62930cb841d185398ea547d979789f4 (diff)
scatterlist: sg_set_buf() argument must be in linear mapping
Add a check behind CONFIG_DEBUG_SG to verify this. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--include/linux/scatterlist.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
index 5951e3f38878..26806775b11b 100644
--- a/include/linux/scatterlist.h
+++ b/include/linux/scatterlist.h
@@ -111,6 +111,9 @@ static inline struct page *sg_page(struct scatterlist *sg)
static inline void sg_set_buf(struct scatterlist *sg, const void *buf,
unsigned int buflen)
{
+#ifdef CONFIG_DEBUG_SG
+ BUG_ON(!virt_addr_valid(buf));
+#endif
sg_set_page(sg, virt_to_page(buf), buflen, offset_in_page(buf));
}