]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
lib: devres: Simplify API devm_ioport_unmap() implementation
authorZijun Hu <quic_zijuhu@quicinc.com>
Wed, 18 Sep 2024 14:48:14 +0000 (22:48 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Oct 2024 06:21:09 +0000 (08:21 +0200)
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@quicinc.com>
Link: https://lore.kernel.org/r/20240918-fix_lib_devres-v1-2-e696ab5486e6@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
lib/devres.c

index 68ffcd5d9358478a428f246d74aaba3cd6c9cc87..73901160197eb3588b97b80310654f394666b1ac 100644 (file)
@@ -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);