summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorArjan van de Ven <arjan@infradead.org>2008-11-19 15:36:19 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2008-12-05 10:55:11 -0800
commit3cd2da9078ffbb87afc4d5a15fa1cbb0891a724d (patch)
tree4059b26b0acbe1eb7c461e07dbeb52b360506787 /lib
parent0efdd6fd2451074d61deb9133f1ab06e10434510 (diff)
downloadlwn-3cd2da9078ffbb87afc4d5a15fa1cbb0891a724d.tar.gz
lwn-3cd2da9078ffbb87afc4d5a15fa1cbb0891a724d.zip
lib/scatterlist.c: fix kunmap() argument in sg_miter_stop()
commit f652c521e0bec2e70cf123f47e80117a7e6ed139 upstream. kunmap() takes as argument the struct page that orginally got kmap()'d, however the sg_miter_stop() function passed it the kernel virtual address instead, resulting in weird stuff. Somehow I ended up fixing this bug by accident while looking for a bug in the same area. Reported-by: kerneloops.org Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Cc: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'lib')
-rw-r--r--lib/scatterlist.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/scatterlist.c b/lib/scatterlist.c
index 8d2688ff1352..b7b449dafbe5 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -395,7 +395,7 @@ void sg_miter_stop(struct sg_mapping_iter *miter)
WARN_ON(!irqs_disabled());
kunmap_atomic(miter->addr, KM_BIO_SRC_IRQ);
} else
- kunmap(miter->addr);
+ kunmap(miter->page);
miter->page = NULL;
miter->addr = NULL;