Re: [PATCH next] vt: fix a warning when kmalloc alloc large memory

From: Nicolas Pitre
Date: Fri Mar 27 2020 - 22:55:28 EST


On Sat, 28 Mar 2020, Chen Wandun wrote:

> If the memory size that use kmalloc() to allocate exceed MAX_ORDER pages,
> it will hit the WARN_ON_ONCE(!(gfp_mask & __GFP_NOWARN)), so add memory
> allocation flag __GFP_NOWARN to silence a warning, othervise, it will
> cause panic if panic_on_warn is enable.

Wow! How do you manage that? You need something like a 1024x1024 text
screen to get such a big memory allocation.

Still, GFP_NOWARN is not a proper fix. This kmalloc() should rather be
replaced by vmalloc(), and corresponding kfree() should then be vfree().
There is no need for this allocation to be physically contiguous.


Nicolas