Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1462888 > unrolled thread

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

Started bykbuild test robot <fengguang.wu@intel.com>
First post2016-08-15 17:20 +0200
Last post2016-08-24 14:00 +0200
Articles 4 — 3 participants

Back to article view | Back to linux.kernel


Contents

  include/linux/io-mapping.h:130:39: error: implicit declaration of  function 'ioremap_wc' kbuild test robot <fengguang.wu@intel.com> - 2016-08-15 17:20 +0200
    Re: include/linux/io-mapping.h:130:39: error: implicit declaration of  function 'ioremap_wc' Linus Walleij <linus.walleij@linaro.org> - 2016-08-16 10:20 +0200
      Re: include/linux/io-mapping.h:130:39: error: implicit declaration  of function 'ioremap_wc' Chris Wilson <chris@chris-wilson.co.uk> - 2016-08-23 22:10 +0200
        Re: include/linux/io-mapping.h:130:39: error: implicit declaration of  function 'ioremap_wc' Linus Walleij <linus.walleij@linaro.org> - 2016-08-24 14:00 +0200

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

Fromkbuild test robot <fengguang.wu@intel.com>
Date2016-08-15 17:20 +0200
Subjectinclude/linux/io-mapping.h:130:39: error: implicit declaration of function 'ioremap_wc'
Message-ID<s6rQe-7ef-19@gated-at.bofh.it>

[Multipart message — attachments visible in raw view] — view raw

Hi Linus,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   694d0d0bb2030d2e36df73e2d23d5770511dbc8d
commit: 7d4defe21c682c934a19fce1ba8b54b7bde61b08 gpio: include <linux/io-mapping.h> in gpiolib-of
date:   10 weeks ago
config: um-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        git checkout 7d4defe21c682c934a19fce1ba8b54b7bde61b08
        # save the attached .config to linux build tree
        make ARCH=um 

All errors (new ones prefixed by >>):

   In file included from drivers/gpio/gpiolib-of.c:19:0:
   include/linux/io-mapping.h: In function 'io_mapping_create_wc':
>> include/linux/io-mapping.h:130:39: error: implicit declaration of function 'ioremap_wc' [-Werror=implicit-function-declaration]
     return (struct io_mapping __force *) ioremap_wc(base, size);
                                          ^~~~~~~~~~
   include/linux/io-mapping.h:130:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
     return (struct io_mapping __force *) ioremap_wc(base, size);
            ^
   include/linux/io-mapping.h: In function 'io_mapping_free':
>> include/linux/io-mapping.h:136:2: error: implicit declaration of function 'iounmap' [-Werror=implicit-function-declaration]
     iounmap((void __force __iomem *) mapping);
     ^~~~~~~
   cc1: some warnings being treated as errors

vim +/ioremap_wc +130 include/linux/io-mapping.h

4ab0d47d Venkatesh Pallipadi 2009-02-24  124  struct io_mapping;
4ab0d47d Venkatesh Pallipadi 2009-02-24  125  
e5beae16 Keith Packard       2008-11-03  126  /* Create the io_mapping object*/
9663f2e6 Keith Packard       2008-10-30  127  static inline struct io_mapping *
4ab0d47d Venkatesh Pallipadi 2009-02-24  128  io_mapping_create_wc(resource_size_t base, unsigned long size)
9663f2e6 Keith Packard       2008-10-30  129  {
29bc17ec Francisco Jerez     2010-09-04 @130  	return (struct io_mapping __force *) ioremap_wc(base, size);
9663f2e6 Keith Packard       2008-10-30  131  }
9663f2e6 Keith Packard       2008-10-30  132  
9663f2e6 Keith Packard       2008-10-30  133  static inline void
9663f2e6 Keith Packard       2008-10-30  134  io_mapping_free(struct io_mapping *mapping)
9663f2e6 Keith Packard       2008-10-30  135  {
29bc17ec Francisco Jerez     2010-09-04 @136  	iounmap((void __force __iomem *) mapping);
9663f2e6 Keith Packard       2008-10-30  137  }
9663f2e6 Keith Packard       2008-10-30  138  
9663f2e6 Keith Packard       2008-10-30  139  /* Atomic map/unmap */

:::::: The code at line 130 was first introduced by commit
:::::: 29bc17ecb856ffb2b47c7009a71971c6f9334205 io-mapping: Fix the address space annotations

:::::: TO: Francisco Jerez <currojerez@riseup.net>
:::::: CC: Ingo Molnar <mingo@elte.hu>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[toc] | [next] | [standalone]


#1463528

FromLinus Walleij <linus.walleij@linaro.org>
Date2016-08-16 10:20 +0200
Message-ID<s6HLk-BJ-21@gated-at.bofh.it>
In reply to#1462888
On Mon, Aug 15, 2016 at 5:08 PM, kbuild test robot
<fengguang.wu@intel.com> 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.

Yours,
Linus Walleij

[toc] | [prev] | [next] | [standalone]


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

FromChris Wilson <chris@chris-wilson.co.uk>
Date2016-08-23 22:10 +0200
SubjectRe: include/linux/io-mapping.h:130:39: error: implicit declaration of function 'ioremap_wc'
Message-ID<s9qbg-ls-27@gated-at.bofh.it>
In reply to#1463528
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@intel.com> 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@linaro.org>
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

[toc] | [prev] | [next] | [standalone]


#1469368

FromLinus Walleij <linus.walleij@linaro.org>
Date2016-08-24 14:00 +0200
Message-ID<s9F0B-1JN-33@gated-at.bofh.it>
In reply to#1468813
On Tue, Aug 23, 2016 at 10:03 PM, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> 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

>> I think I've finally fixed this now by making OF_GPIO depend on !NO_IOMEM.
>
> I've stumbled over this patch

(...)
>     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.

You're right, I'll revert this patch.

> So the root cause here is arch/um not supplying enough stubs?

arch/um is explicitly not supporting IOMEM so anyone code
using iomap()/iounmap() have to make sure they do not get
compiled on UM.

> But in the
> meantime, do you mind removing the incorrect include now that you have a
> w/a to keep 0day quiet? :)

OK

Yours,
Linus Walleij

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web