On Wed, Feb 13, 2019 at 10:27:48AM +0100, Marc Gonzalez wrote:
On 13/02/2019 07:57, Mike Rapoport wrote:
Below is the version vs. current mmotm.
From 9ea6dceb46067d4f1cbbdbec1189c8496aa0a4bc Mon Sep 17 00:00:00 2001 From: Mike Rapoport rppt@linux.ibm.com Date: Mon, 4 Feb 2019 15:37:21 +0100 Subject: [PATCH] of: fix kmemleak crash caused by imbalance in early memory reservation
Out of curiosity, why don't you send as a proper v3?
Was too much in a hurry
Marc Gonzalez reported the following kmemleak crash:
[...]
The crash happens when a no-map area is allocated in early_init_dt_alloc_reserved_memory_arch(). The allocated region is registered with kmemleak, but it is then removed from memblock using memblock_remove() that is not kmemleak-aware.
Replacing __memblock_alloc_base() with memblock_find_in_range()
Nit: in this new version, you're replacing memblock_phys_alloc_range() with memblock_find_in_range() so I don't know if the comment still applies.
and didn't check the outcome of blindly applying the patch :(
I'll send a proper v3 soon. Sorry for the noise.
makes sure that the allocated memory is not added to kmemleak and then memblock_remove()'ing this memory is safe.
As a bonus, since memblock_find_in_range() ensures the allocation in the specified range, the bounds check can be removed.
Cc: stable@vger.kernel.org # 3.15+ Fixes: 3f0c820664483 ("drivers: of: add initialization code for dynamic reserved memory") Acked-by: Marek Szyprowski m.szyprowski@samsung.com Acked-by: Prateek Patel prpatel@nvidia.com Tested-by: Marc Gonzalez marc.w.gonzalez@free.fr Signed-off-by: Mike Rapoport rppt@linux.ibm.com