mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
[PATCH] iounmap debugging
We get sporadic reports of `__iounmap: bad address' coming out. Add a dump_stack() to find the culprit. Try to identify which subsystem is having iounmap() problems. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
eda8022886
commit
c23a4e9649
@ -228,7 +228,8 @@ EXPORT_SYMBOL(ioremap_nocache);
|
|||||||
void iounmap(volatile void __iomem *addr)
|
void iounmap(volatile void __iomem *addr)
|
||||||
{
|
{
|
||||||
struct vm_struct *p;
|
struct vm_struct *p;
|
||||||
if ((void __force *) addr <= high_memory)
|
|
||||||
|
if ((void __force *)addr <= high_memory)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -241,9 +242,10 @@ void iounmap(volatile void __iomem *addr)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
write_lock(&vmlist_lock);
|
write_lock(&vmlist_lock);
|
||||||
p = __remove_vm_area((void *) (PAGE_MASK & (unsigned long __force) addr));
|
p = __remove_vm_area((void *)(PAGE_MASK & (unsigned long __force)addr));
|
||||||
if (!p) {
|
if (!p) {
|
||||||
printk(KERN_WARNING "iounmap: bad address %p\n", addr);
|
printk(KERN_WARNING "iounmap: bad address %p\n", addr);
|
||||||
|
dump_stack();
|
||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user