Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Zijun Hu and committed by
Greg Kroah-Hartman
0ee4dcaf 76539955

+1 -2
+1 -2
lib/devres.c
··· 115 115 */ 116 116 void devm_iounmap(struct device *dev, void __iomem *addr) 117 117 { 118 - WARN_ON(devres_destroy(dev, devm_ioremap_release, devm_ioremap_match, 118 + WARN_ON(devres_release(dev, devm_ioremap_release, devm_ioremap_match, 119 119 (__force void *)addr)); 120 - iounmap(addr); 121 120 } 122 121 EXPORT_SYMBOL(devm_iounmap); 123 122