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 <log...@deltatee.com> Cc: Christoph Hellwig <h...@lst.de> Cc: Dan Williams <dan.j.willi...@intel.com> Signed-off-by: Oliver O'Halloran <ooh...@gmail.com>
Reviewed-by: Logan Gunthorpe <log...@deltatee.com>
--- 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