On 2017/12/23 13:32, Xishi Qiu wrote: > On 2017/12/21 16:55, Xishi Qiu wrote: > >> 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 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>