lib/scatterlist.c: fix kunmap() argument in sg_miter_stop()
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> Cc: <stable@kernel.org> [2.6.27.x] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a495a6d35a
commit
f652c521e0
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue