re: memremap: change devm_memremap_pages interface to use struct dev_pagemap

From: Colin Ian King
Date: Sat Jun 30 2018 - 17:12:01 EST


Hi,

static analysis with CoverityScan detected an issue with the following
commit:

commit e8d5134833006a46fcbefc5f4a84d0b62bd520e7
Author: Christoph Hellwig <hch@xxxxxx>
Date: Fri Dec 29 08:54:05 2017 +0100

memremap: change devm_memremap_pages interface to use struct dev_pagemap


247 }
248
CID 1464431 (#1 of 1): Unchecked return value (CHECKED_RETURN)
check_return: Calling devm_add_action without checking return value (as
is done elsewhere 33 out of 35 times).

249 devm_add_action(dev, devm_memremap_pages_release, pgmap);
250
251 return __va(res->start);

devm_add_action can fail and return -ENOMEM because it calls
devres_alloc which can fail in an out of memory situation. So I believe
it may be pertinent to add a -ENOMEM check and clean up appropriately.
I'm not sure of the correct way to perform the error clean up, so I'm
sending this report instead of a fix.

Colin