summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorZijun Hu <quic_zijuhu@quicinc.com>2024-09-18 16:48:13 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-10-14 08:21:09 +0200
commit0ee4dcafda9576910559f0471a3d6891daf9ab92 (patch)
tree819b49052fa03964ee82978d2164954516cbb281 /lib
parentdevres: Fix page faults when tracing devres from unloaded modules (diff)
downloadlinux-0ee4dcafda9576910559f0471a3d6891daf9ab92.tar.xz
linux-0ee4dcafda9576910559f0471a3d6891daf9ab92.zip
lib: devres: Simplify API devm_iounmap() implementation
Simplify devm_iounmap() implementation by dedicated API devres_release() compared with current solution, namely, devres_destroy() + iounmap() devres_release() has the following advantages: - it is simpler if devm_iounmap()'s parameter @addr is valid, namely @addr was ever returned by one of devm_ioremap() variants. - it can avoid unnecessary iounmap(@addr) if @addr is not valid. Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com> Link: https://lore.kernel.org/r/20240918-fix_lib_devres-v1-1-e696ab5486e6@quicinc.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/devres.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/devres.c b/lib/devres.c
index 4fc152de6d8b..68ffcd5d9358 100644
--- a/lib/devres.c
+++ b/lib/devres.c
@@ -115,9 +115,8 @@ EXPORT_SYMBOL(devm_ioremap_wc);
*/
void devm_iounmap(struct device *dev, void __iomem *addr)
{
- WARN_ON(devres_destroy(dev, devm_ioremap_release, devm_ioremap_match,
+ WARN_ON(devres_release(dev, devm_ioremap_release, devm_ioremap_match,
(__force void *)addr));
- iounmap(addr);
}
EXPORT_SYMBOL(devm_iounmap);