[PATCH 2/2] lib: devres: Simplify API devm_ioport_unmap() implementation

From: Zijun Hu
Date: Wed Sep 18 2024 - 10:49:04 EST


From: Zijun Hu <quic_zijuhu@xxxxxxxxxxx>

Simplify devm_ioport_unmap() implementation by dedicated API
devres_release(), compared with current solution, namely
ioport_unmap() + devres_destroy(), devres_release() has below advantages:

- it is simpler if devm_ioport_unmap()'s parameter @addr was ever
returned by devm_ioport_map().

- it can avoid unnecessary ioport_unmap(@addr) if @addr was not
ever returned by devm_ioport_map().

Signed-off-by: Zijun Hu <quic_zijuhu@xxxxxxxxxxx>
---
lib/devres.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/devres.c b/lib/devres.c
index 68ffcd5d9358..73901160197e 100644
--- a/lib/devres.c
+++ b/lib/devres.c
@@ -307,8 +307,7 @@ EXPORT_SYMBOL(devm_ioport_map);
*/
void devm_ioport_unmap(struct device *dev, void __iomem *addr)
{
- ioport_unmap(addr);
- WARN_ON(devres_destroy(dev, devm_ioport_map_release,
+ WARN_ON(devres_release(dev, devm_ioport_map_release,
devm_ioport_map_match, (__force void *)addr));
}
EXPORT_SYMBOL(devm_ioport_unmap);

--
2.34.1