Subject: Re: linux-next: build failure after merge of the net-next tree

From: Arnd Bergmann <[email-masked]>
Date: Mon, 9 Aug 2021 15:21:41 +0200

On Mon, Aug 9, 2021 at 12:20 PM Stephen Rothwell <[email-masked]> wrote:
>
> Hi all,
>
> After merging the net-next tree, today's linux-next build (powerpc
> allyesconfig) failed like this:
>
> drivers/net/ethernet/cirrus/cs89x0.c: In function 'net_open':
> drivers/net/ethernet/cirrus/cs89x0.c:897:20: error: implicit declaration of function 'isa_virt_to_bus' [-Werror=implicit-function-declaration]
>   897 |     (unsigned long)isa_virt_to_bus(lp->dma_buff));
>       |                    ^~~~~~~~~~~~~~~

Thank you for the report! I already sent a patch for m68knommu running into
this issue, but it seems there are other architectures that still have it.

The driver checks CONFIG_ISA_DMA_API at compile time to determine
whether isa_virt_to_bus(), set_dma_mode(), set_dma_addr(), ... are all
defined.

It seems that isa_virt_to_bus() is only implemented on most of the
architectures that set ISA_DMA_API: alpha, arm, mips, parisc and x86,
but not on m68k/coldfire and powerpc.

Before my patch, the platform driver could only be built on ARM,
so maybe we should just go back to that dependency or something
like

         depends on ARM || ((X86 || !ISA_DMA_API) && COMPILE_TEST)

for extra build coverage. Then again, it's hard to find any machine
actually using these: we have a couple of s3c24xx machines that
use the wrong device name, so the device never gets probed, the imx
machines that used to work are gone, and the ep7211-edb7211.dts
is missing a device node for it. Most likely, neither the platform nor
the ISA driver are actually used by anyone.

     Arnd