Is iounmap(NULL) safe or not?

From: Alexey Khoroshilov
Date: Fri May 05 2017 - 18:50:56 EST


Hello,

It seems thare are many places where code assumes iounmap(NULL) is safe.
Also there are several patches that state it explicitly:
ff6defa6a8fa ("ALSA: Deletion of checks before the function call "iounmap")
e24bb0ed8179 ("staging: dgnc: remove NULL test")

At the same time it seems PPC implementation generates a warning in this case:
3bfafd6b136b ("netxen: avoid invalid iounmap")

arch/powerpc/mm/pgtable_64.c:
if ((unsigned long)addr < ioremap_bot) {
printk(KERN_WARNING "Attempt to iounmap early bolted mapping"
" at 0x%p\n", addr);
return;
}

Could you please clarify if iounmap(NULL) safe or not.
I guess it would be less errorprone if the answer is architecture independent.

--
Thank you,
Alexey Khoroshilov
Linux Verification Center, ISPRAS
web: http://linuxtesting.org