Re: include/linux/io-mapping.h:130:39: error: implicit declaration of function 'ioremap_wc'

From: Chris Wilson
Date: Tue Aug 23 2016 - 16:03:35 EST


On Tue, Aug 16, 2016 at 10:14:57AM +0200, Linus Walleij wrote:
> On Mon, Aug 15, 2016 at 5:08 PM, kbuild test robot
> <fengguang.wu@xxxxxxxxx> wrote:
>
> > FYI, the error/warning still remains.
>
> > commit: 7d4defe21c682c934a19fce1ba8b54b7bde61b08 gpio: include <linux/io-mapping.h> in gpiolib-of
> > config: um-allmodconfig (attached as .config)
>
> I think I've finally fixed this now by making OF_GPIO depend on !NO_IOMEM.

I've stumbled over this patch

commit 7d4defe21c682c934a19fce1ba8b54b7bde61b08
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Wed Jun 8 10:58:20 2016 +0200

gpio: include <linux/io-mapping.h> in gpiolib-of

When enabling the gpiolib for all archs a build robot came
up with this:

All errors (new ones prefixed by >>):

drivers/gpio/gpiolib-of.c: In function 'of_mm_gpiochip_add_data':
>> drivers/gpio/gpiolib-of.c:317:2: error: implicit declaration of
function 'iounmap' [-Werror=implicit-function-declaration]
iounmap(mm_gc->regs);
^~~~~~~
cc1: some warnings being treated as errors

Fix this by including <linux/io-mapping.h> explicitly.

having touched io-mapping.h

The original patch is incorrect as io-mapping.h is not the right header
for iounmap() - that is #include <linux/io.h> (pulling in <asm/io.h>)
which is (and was) already present.

So the root cause here is arch/um not supplying enough stubs? But in the
meantime, do you mind removing the incorrect include now that you have a
w/a to keep 0day quiet? :)
-Chris

--
Chris Wilson, Intel Open Source Technology Centre