Re: [PATCH v2 2/2] memblock: exclude MEMBLOCK_NOMAP regions from kmemleak

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mike,

On 10/21/21 10:09 AM, Mike Rapoport wrote:
From: Mike Rapoport <rppt@xxxxxxxxxxxxx>

Vladimir Zapolskiy reports:

commit a7259df76702 ("memblock: make memblock_find_in_range method private")
invokes a kernel panic while running kmemleak on OF platforms with nomaped
regions:

   Unable to handle kernel paging request at virtual address fff000021e00000
   [...]
     scan_block+0x64/0x170
     scan_gray_list+0xe8/0x17c
     kmemleak_scan+0x270/0x514
     kmemleak_write+0x34c/0x4ac

The memory allocated from memblock is registered with kmemleak, but if it
is marked MEMBLOCK_NOMAP it won't have linear map entries so an attempt to
scan such areas will fault.

Ideally, memblock_mark_nomap() would inform kmemleak to ignore
MEMBLOCK_NOMAP memory, but it can be called before kmemleak interfaces
operating on physical addresses can use __va() conversion.

Make sure that functions that mark allocated memory as MEMBLOCK_NOMAP take
care of informing kmemleak to ignore such memory.

Link: https://lore.kernel.org/all/8ade5174-b143-d621-8c8e-dc6a1898c6fb@xxxxxxxxxx
Link: https://lore.kernel.org/all/c30ff0a2-d196-c50d-22f0-bd50696b1205@xxxxxxxxxxx
Fixes: a7259df76702 ("memblock: make memblock_find_in_range method private")
Reported-by: Vladimir Zapolskiy <vladimir.zapolskiy@xxxxxxxxxx>
Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxx>

this change variant also solves the reported problem, thank you.

Tested-by: Vladimir Zapolskiy <vladimir.zapolskiy@xxxxxxxxxx>

--
Best wishes,
Vladimir




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux