Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1604153 > unrolled thread
| Started by | Stephen Rothwell <sfr@canb.auug.org.au> |
|---|---|
| First post | 2017-03-20 03:50 +0100 |
| Last post | 2017-03-21 04:10 +0100 |
| Articles | 5 — 5 participants |
Back to article view | Back to linux.kernel
linux-next: build failure after merge of the char-misc tree Stephen Rothwell <sfr@canb.auug.org.au> - 2017-03-20 03:50 +0100
Re: linux-next: build failure after merge of the char-misc tree Arnd Bergmann <arnd@arndb.de> - 2017-03-20 13:30 +0100
Re: linux-next: build failure after merge of the char-misc tree Benjamin Herrenschmidt <benh@kernel.crashing.org> - 2017-03-21 01:20 +0100
Re: linux-next: build failure after merge of the char-misc tree Cyril Bur <cyrilbur@gmail.com> - 2017-03-21 01:40 +0100
Re: linux-next: build failure after merge of the char-misc tree Joel Stanley <joel@jms.id.au> - 2017-03-21 04:10 +0100
| From | Stephen Rothwell <sfr@canb.auug.org.au> |
|---|---|
| Date | 2017-03-20 03:50 +0100 |
| Subject | linux-next: build failure after merge of the char-misc tree |
| Message-ID | <tmVyp-6wV-1@gated-at.bofh.it> |
Hi all,
After merging the char-misc tree, today's linux-next build (x86_64
allmodconfig) failed like this:
drivers/misc/aspeed-lpc-ctrl.c: In function 'aspeed_lpc_ctrl_mmap':
drivers/misc/aspeed-lpc-ctrl.c:51:9: error: implicit declaration of function 'pgprot_dmacoherent' [-Werror=implicit-function-declaration]
prot = pgprot_dmacoherent(prot);
^
drivers/misc/aspeed-lpc-ctrl.c:51:7: error: incompatible types when assigning to type 'pgprot_t {aka struct pgprot}' from type 'int'
prot = pgprot_dmacoherent(prot);
^
In file included from include/linux/miscdevice.h:6:0,
from drivers/misc/aspeed-lpc-ctrl.c:11:
drivers/misc/aspeed-lpc-ctrl.c: In function 'aspeed_lpc_ctrl_probe':
drivers/misc/aspeed-lpc-ctrl.c:232:17: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'phys_addr_t {aka long long unsigned int}' [-Wformat=]
dev_info(dev, "Loaded at 0x%08x (0x%08x)\n",
^
include/linux/device.h:1317:51: note: in definition of macro 'dev_info'
#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
^
drivers/misc/aspeed-lpc-ctrl.c:232:17: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'resource_size_t {aka long long unsigned int}' [-Wformat=]
dev_info(dev, "Loaded at 0x%08x (0x%08x)\n",
^
include/linux/device.h:1317:51: note: in definition of macro 'dev_info'
#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
^
Caused by commit
6c4e97678501 ("drivers/misc: Add Aspeed LPC control driver")
Clearly this will only build on arm :-( You can only use COMPILE_TEST
if you can reasonably expect the build to work on all architectures
and platforms.
I have added the following patch for today (the warnings should be fixed as well):
From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Mon, 20 Mar 2017 13:38:10 +1100
Subject: [PATCH] drivers/misc: Aspeed LPC control driver will only build on arm
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
drivers/misc/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index fb933b0b9297..52a46b129214 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -773,7 +773,7 @@ config PANEL_BOOT_MESSAGE
endif # PANEL
config ASPEED_LPC_CTRL
- depends on (ARCH_ASPEED || COMPILE_TEST) && REGMAP && MFD_SYSCON
+ depends on ARCH_ASPEED && REGMAP && MFD_SYSCON
tristate "Aspeed ast2400/2500 HOST LPC to BMC bridge control"
---help---
Control Aspeed ast2400/2500 HOST LPC to BMC mappings through
--
2.11.0
--
Cheers,
Stephen Rothwell
[toc] | [next] | [standalone]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2017-03-20 13:30 +0100 |
| Message-ID | <tn4BI-4CH-15@gated-at.bofh.it> |
| In reply to | #1604153 |
On Mon, Mar 20, 2017 at 3:44 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> Hi all,
>
> After merging the char-misc tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
>
> drivers/misc/aspeed-lpc-ctrl.c: In function 'aspeed_lpc_ctrl_mmap':
> drivers/misc/aspeed-lpc-ctrl.c:51:9: error: implicit declaration of function 'pgprot_dmacoherent' [-Werror=implicit-function-declaration]
> prot = pgprot_dmacoherent(prot);
A lot of other drivers (including /dev/mem) just use pgprot_noncached() or
pgprot_writecombine(), which would make the code portable and might be
what you want here as well.
pgprot_dmacoherent() is meant specifically for mapping RAM that is used
for DMA buffers that come from dma_alloc_coherent(), which doesn't seem
to be the case here.
What kind of address range is this really?
> drivers/misc/aspeed-lpc-ctrl.c:51:7: error: incompatible types when assigning to type 'pgprot_t {aka struct pgprot}' from type 'int'
> prot = pgprot_dmacoherent(prot);
> ^
> In file included from include/linux/miscdevice.h:6:0,
> from drivers/misc/aspeed-lpc-ctrl.c:11:
> drivers/misc/aspeed-lpc-ctrl.c: In function 'aspeed_lpc_ctrl_probe':
> drivers/misc/aspeed-lpc-ctrl.c:232:17: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'phys_addr_t {aka long long unsigned int}' [-Wformat=]
> dev_info(dev, "Loaded at 0x%08x (0x%08x)\n",
This should just use the "%pap" for printing a phys_addr_t, otherwise we
get the same warning on ARM in some configurations.
Arnd
[toc] | [prev] | [next] | [standalone]
| From | Benjamin Herrenschmidt <benh@kernel.crashing.org> |
|---|---|
| Date | 2017-03-21 01:20 +0100 |
| Message-ID | <tnfGN-3WZ-3@gated-at.bofh.it> |
| In reply to | #1604464 |
On Mon, 2017-03-20 at 13:23 +0100, Arnd Bergmann wrote:
> On Mon, Mar 20, 2017 at 3:44 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> > Hi all,
> >
> > After merging the char-misc tree, today's linux-next build (x86_64
> > allmodconfig) failed like this:
> >
> > drivers/misc/aspeed-lpc-ctrl.c: In function 'aspeed_lpc_ctrl_mmap':
> > drivers/misc/aspeed-lpc-ctrl.c:51:9: error: implicit declaration of function 'pgprot_dmacoherent' [-Werror=implicit-function-declaration]
> > prot = pgprot_dmacoherent(prot);
>
> A lot of other drivers (including /dev/mem) just use pgprot_noncached() or
> pgprot_writecombine(), which would make the code portable and might be
> what you want here as well.
>
> pgprot_dmacoherent() is meant specifically for mapping RAM that is used
> for DMA buffers that come from dma_alloc_coherent(), which doesn't seem
> to be the case here.
>
> What kind of address range is this really?
It's a piece of RAM that we reserve via a reserved region, which will
be accessed by HW (sort-of-DMA, ie, the "host" system will access that
using FW cycles on the LPC bus which we map to that reserved region of
memory).
Joel, Cyril, can you send a 1-liner patch to change that to
pgprot_noncached() ?
Cheers,
Ben.
> > drivers/misc/aspeed-lpc-ctrl.c:51:7: error: incompatible types when assigning to type 'pgprot_t {aka struct pgprot}' from type 'int'
> > prot = pgprot_dmacoherent(prot);
> > ^
> > In file included from include/linux/miscdevice.h:6:0,
> > from drivers/misc/aspeed-lpc-ctrl.c:11:
> > drivers/misc/aspeed-lpc-ctrl.c: In function 'aspeed_lpc_ctrl_probe':
> > drivers/misc/aspeed-lpc-ctrl.c:232:17: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'phys_addr_t {aka long long unsigned int}' [-Wformat=]
> > dev_info(dev, "Loaded at 0x%08x (0x%08x)\n",
>
> This should just use the "%pap" for printing a phys_addr_t, otherwise we
> get the same warning on ARM in some configurations.
>
> Arnd
[toc] | [prev] | [next] | [standalone]
| From | Cyril Bur <cyrilbur@gmail.com> |
|---|---|
| Date | 2017-03-21 01:40 +0100 |
| Message-ID | <tng09-45Z-1@gated-at.bofh.it> |
| In reply to | #1605215 |
On Tue, 2017-03-21 at 11:18 +1100, Benjamin Herrenschmidt wrote:
> On Mon, 2017-03-20 at 13:23 +0100, Arnd Bergmann wrote:
> > On Mon, Mar 20, 2017 at 3:44 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> > > Hi all,
> > >
> > > After merging the char-misc tree, today's linux-next build (x86_64
> > > allmodconfig) failed like this:
> > >
> > > drivers/misc/aspeed-lpc-ctrl.c: In function 'aspeed_lpc_ctrl_mmap':
> > > drivers/misc/aspeed-lpc-ctrl.c:51:9: error: implicit declaration of function 'pgprot_dmacoherent' [-Werror=implicit-function-declaration]
> > > prot = pgprot_dmacoherent(prot);
> >
> > A lot of other drivers (including /dev/mem) just use pgprot_noncached() or
> > pgprot_writecombine(), which would make the code portable and might be
> > what you want here as well.
> >
> > pgprot_dmacoherent() is meant specifically for mapping RAM that is used
> > for DMA buffers that come from dma_alloc_coherent(), which doesn't seem
> > to be the case here.
> >
> > What kind of address range is this really?
>
> It's a piece of RAM that we reserve via a reserved region, which will
> be accessed by HW (sort-of-DMA, ie, the "host" system will access that
> using FW cycles on the LPC bus which we map to that reserved region of
> memory).
>
> Joel, Cyril, can you send a 1-liner patch to change that to
> pgprot_noncached() ?
>
Sure. Just to be clear - we want to keep COMPILE_TEST in kconfig?
Also I can't help but notice this:
https://lists.ozlabs.org/pipermail/openbmc/2017-January/006219.html
[v3 of the series]
vs
https://lists.ozlabs.org/pipermail/openbmc/2017-February/006462.html
[v4 of the series]
> Cheers,
> Ben.
>
> > > drivers/misc/aspeed-lpc-ctrl.c:51:7: error: incompatible types when assigning to type 'pgprot_t {aka struct pgprot}' from type 'int'
> > > prot = pgprot_dmacoherent(prot);
> > > ^
> > > In file included from include/linux/miscdevice.h:6:0,
> > > from drivers/misc/aspeed-lpc-ctrl.c:11:
> > > drivers/misc/aspeed-lpc-ctrl.c: In function 'aspeed_lpc_ctrl_probe':
> > > drivers/misc/aspeed-lpc-ctrl.c:232:17: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'phys_addr_t {aka long long unsigned int}' [-Wformat=]
> > > dev_info(dev, "Loaded at 0x%08x (0x%08x)\n",
> >
> > This should just use the "%pap" for printing a phys_addr_t, otherwise we
> > get the same warning on ARM in some configurations.
Thanks Arnd, I'll address that too.
> >
> > Arnd
[toc] | [prev] | [next] | [standalone]
| From | Joel Stanley <joel@jms.id.au> |
|---|---|
| Date | 2017-03-21 04:10 +0100 |
| Message-ID | <tnilk-5Lg-5@gated-at.bofh.it> |
| In reply to | #1605221 |
On Tue, Mar 21, 2017 at 11:06 AM, Cyril Bur <cyrilbur@gmail.com> wrote: > On Tue, 2017-03-21 at 11:18 +1100, Benjamin Herrenschmidt wrote: >> On Mon, 2017-03-20 at 13:23 +0100, Arnd Bergmann wrote: >> > On Mon, Mar 20, 2017 at 3:44 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote: >> > > Hi all, >> > > >> > > After merging the char-misc tree, today's linux-next build (x86_64 >> > > allmodconfig) failed like this: >> > > >> > > drivers/misc/aspeed-lpc-ctrl.c: In function 'aspeed_lpc_ctrl_mmap': >> > > drivers/misc/aspeed-lpc-ctrl.c:51:9: error: implicit declaration of function 'pgprot_dmacoherent' [-Werror=implicit-function-declaration] >> > > prot = pgprot_dmacoherent(prot); >> > >> > A lot of other drivers (including /dev/mem) just use pgprot_noncached() or >> > pgprot_writecombine(), which would make the code portable and might be >> > what you want here as well. >> > >> > pgprot_dmacoherent() is meant specifically for mapping RAM that is used >> > for DMA buffers that come from dma_alloc_coherent(), which doesn't seem >> > to be the case here. >> > >> > What kind of address range is this really? >> >> It's a piece of RAM that we reserve via a reserved region, which will >> be accessed by HW (sort-of-DMA, ie, the "host" system will access that >> using FW cycles on the LPC bus which we map to that reserved region of >> memory). >> >> Joel, Cyril, can you send a 1-liner patch to change that to >> pgprot_noncached() ? >> > > Sure. Just to be clear - we want to keep COMPILE_TEST in kconfig? Yep. With the change that Ben suggested we should be ok. pgprot_noncached has a fall back definition in include/asm-generic/pgtable.h, so all platforms will compile. Cheers, Joel
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web