Re: [WARNING: ATTACHMENT UNSCANNED]Re: [linux-next:master 13230/13643] arch/riscv/errata/andes/errata.c:29:23: error: storage size of 'ret' isn't known

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Geert,

On Thu, Aug 31, 2023 at 2:24 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
>
> Hi Prabhakar,
>
> On Thu, Aug 31, 2023 at 3:02 PM Lad, Prabhakar
> <prabhakar.csengg@xxxxxxxxx> wrote:
> > On Thu, Aug 31, 2023 at 1:01 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
> > > On Thu, Aug 31, 2023 at 1:54 PM Lad, Prabhakar
> > > <prabhakar.csengg@xxxxxxxxx> wrote:
> > > > On Thu, Aug 31, 2023 at 12:34 PM Conor Dooley
> > > > <conor.dooley@xxxxxxxxxxxxx> wrote:
> > > > > On Thu, Aug 31, 2023 at 12:22:50PM +0100, Lad, Prabhakar wrote:
> > > > > > On Thu, Aug 31, 2023 at 10:44 AM Conor Dooley
> > > > > > <conor.dooley@xxxxxxxxxxxxx> wrote:
<snip>
> > Currently ARCH_R9A07G043 selects DMA_GLOBAL_POOL and we have
> > RISCV_DMA_NONCOHERENT selecting DMA_DIRECT_REMAP which causes below
> > build issue when MMU is disabled:
> >
> > kernel/dma/pool.c: In function 'atomic_pool_expand':
> > kernel/dma/pool.c:105:44: error: implicit declaration of function
> > 'pgprot_dmacoherent' [-Werror=implicit-function-declaration]
> >   105 |
> > pgprot_dmacoherent(PAGE_KERNEL),
> >       |                                            ^~~~~~~~~~~~~~~~~~
> > kernel/dma/pool.c:105:44: error: incompatible type for argument 3 of
> > 'dma_common_contiguous_remap'
> >   105 |
> > pgprot_dmacoherent(PAGE_KERNEL),
> >       |
> > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >       |                                            |
> >       |                                            int
> > In file included from kernel/dma/pool.c:8:
>
> Hmm, kernel/dma/mapping.c has its use of pgprot_dmacoherent() inside
> an #ifdef CONFIG_MMU block.
> kernel/dma/pool.c has it inside an #ifdef CONFIG_DMA_DIRECT_REMAP block.
>
> I guess that select should get a dependency on MMU:
>
>     config RISCV_DMA_NONCOHERENT
>             select DMA_DIRECT_REMAP if MMU
>
> For comparison, m68k does take that into account:
>
>     select DMA_DIRECT_REMAP if HAS_DMA && MMU && !COLDFIRE
>
Thanks for the pointer. With this changes we dont get an unmet
dependencies warning.

arch/riscv/errata/andes/errata.c: In function 'ax45mp_iocp_sw_workaround':
arch/riscv/errata/andes/errata.c:29:23: error: storage size of 'ret' isn't known
   29 |         struct sbiret ret;
      |                       ^~~
arch/riscv/errata/andes/errata.c:35:15: error: implicit declaration of
function 'sbi_ecall' [-Werror=implicit-function-declaration]
   35 |         ret = sbi_ecall(ANDESTECH_SBI_EXT_ANDES,
ANDES_SBI_EXT_IOCP_SW_WORKAROUND,
      |               ^~~~~~~~~
arch/riscv/errata/andes/errata.c:29:23: warning: unused variable 'ret'
[-Wunused-variable]
   29 |         struct sbiret ret;
      |                       ^~~
arch/riscv/errata/andes/errata.c:39:1: error: control reaches end of
non-void function [-Werror=return-type]
   39 | }
      | ^
cc1: some warnings being treated as errors

To fix the above build issue reported by the bot, adding a dependency
for RISCV_SBI in ERRATA_ANDES won't help as ARCH_R9A07G043 is
explicitly selecting it. To avoid imply should explicitly select based
on dependency something like below?

diff --git a/arch/riscv/Kconfig.errata b/arch/riscv/Kconfig.errata
index 92c779764b27..566bcefeab50 100644
--- a/arch/riscv/Kconfig.errata
+++ b/arch/riscv/Kconfig.errata
@@ -2,7 +2,7 @@ menu "CPU errata selection"

 config ERRATA_ANDES
     bool "Andes AX45MP errata"
-    depends on RISCV_ALTERNATIVE
+    depends on RISCV_ALTERNATIVE && RISCV_SBI
     help
       All Andes errata Kconfig depend on this Kconfig. Disabling
       this Kconfig will disable all Andes errata. Please say "Y"
@@ -12,7 +12,7 @@ config ERRATA_ANDES

 config ERRATA_ANDES_CMO
     bool "Apply Andes cache management errata"
-    depends on ERRATA_ANDES && MMU && ARCH_R9A07G043
+    depends on ERRATA_ANDES && ARCH_R9A07G043
     select RISCV_DMA_NONCOHERENT
     default y
     help
diff --git a/drivers/soc/renesas/Kconfig b/drivers/soc/renesas/Kconfig
index 67604f24973e..543300fe9862 100644
--- a/drivers/soc/renesas/Kconfig
+++ b/drivers/soc/renesas/Kconfig
@@ -334,10 +334,10 @@ if RISCV
 config ARCH_R9A07G043
     bool "RISC-V Platform support for RZ/Five"
     select ARCH_RZG2L
-    select AX45MP_L2_CACHE
+    select AX45MP_L2_CACHE if RISCV_DMA_NONCOHERENT
     select DMA_GLOBAL_POOL
-    select ERRATA_ANDES
-    select ERRATA_ANDES_CMO
+    select ERRATA_ANDES if RISCV_SBI
+    select ERRATA_ANDES_CMO if ERRATA_ANDES
     help
       This enables support for the Renesas RZ/Five SoC.

Or am I missing a simpler way to fix this.

Cheers,
Prabhakar





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux