Thread (2 messages) 2 messages, 2 authors, 2018-01-02

[RFC] does ioremap() cause memory leak?

From: guohanjun@huawei.com (Hanjun Guo)
Date: 2018-01-02 01:40:37
Also in: linux-mm, lkml

On 2017/12/23 13:32, Xishi Qiu wrote:
On 2017/12/21 16:55, Xishi Qiu wrote:
quoted
When we use iounmap() to free the mapping, it calls unmap_vmap_area() to clear page table,
but do not free the memory of page table, right?

So when use ioremap() to mapping another area(incluce the area before), it may use
large mapping(e.g. ioremap_pmd_enabled()), so the original page table memory(e.g. pte memory)
will be lost, it cause memory leak, right?
 

So I have two questions for this scene.

1. When the same virtual address allocated from ioremap, first is 4K size, second is 2M size, if Kernel would leak memory.

2. Kernel modifies the old invalid 4K pagetable to 2M, but doesn`t follow the ARM break-before-make flow, CPU maybe get the old invalid 4K pagetable information, then Kernel would panic.
I sent a RFC patch for this one [1].

[1]: https://patchwork.kernel.org/patch/10134581/

Thanks
Hanjun
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help