summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2007-10-23 20:35:58 +0200
committerJens Axboe <jens.axboe@oracle.com>2007-10-23 20:35:58 +0200
commitde26103de56a0c482ad21296eae9b06deefc8e62 (patch)
tree23f7fe54bc9997c4735dba830dab0c7c6d463826
parent0b776eb5426752d4e53354ac89e3710d857e09a7 (diff)
downloadlinux-de26103de56a0c482ad21296eae9b06deefc8e62.tar.bz2
[SG] Add debug check for page alignment
Suggested by Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
-rw-r--r--include/linux/scatterlist.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
index 42daf5e15265..df7ddcee7c4b 100644
--- a/include/linux/scatterlist.h
+++ b/include/linux/scatterlist.h
@@ -41,6 +41,11 @@ static inline void sg_set_page(struct scatterlist *sg, struct page *page)
{
unsigned long page_link = sg->page_link & 0x3;
+ /*
+ * In order for the low bit stealing approach to work, pages
+ * must be aligned at a 32-bit boundary as a minimum.
+ */
+ BUG_ON((unsigned long) page & 0x03);
#ifdef CONFIG_DEBUG_SG
BUG_ON(sg->sg_magic != SG_MAGIC);
#endif