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

Reply via email to