Re: [PATCH] kernel/memremap: Remove stale devres_free() call

From: Logan Gunthorpe
Date: Tue Mar 06 2018 - 11:55:29 EST




On 05/03/18 09:56 PM, Oliver O'Halloran wrote:
devm_memremap_pages() was re-worked in e8d513483300 to take a caller
allocated struct dev_pagemap as a function parameter. A call to
devres_free() was left in the error cleanup path which results in
a kernel panic if the remap fails for some reason. Remove it
to fix the panic and let devm_memremap_pages() fail gracefully.

Fixes: e8d513483300 ("memremap: change devm_memremap_pages interface to use struct dev_pagemap")
Cc: Logan Gunthorpe <logang@xxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Oliver O'Halloran <oohall@xxxxxxxxx>

Reviewed-by: Logan Gunthorpe <logang@xxxxxxxxxxxx>

---
Both in-tree users of devm_memremap_pages() embed dev_pagemap into other
structures so this shouldn't cause any leaks. Logan's p2p series does
add one usage that assumes pgmap will be freed on error so that'll
need fixing.

Yup, nice catch! I'll fix that for the next series.

Thanks,

Logan