2022-04-13 02:32:50

by kernel test robot

[permalink] [raw]
Subject: [linux-stable-rc:queue/5.4 7091/9999] drivers/staging/comedi/drivers/comedi_isadma.c:25:17: error: implicit declaration of function 'claim_dma_lock'

Hi Arnd,

FYI, the error/warning still remains.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git queue/5.4
head: 9185989d84b918f49f720061cedc29c8ed039797
commit: 53a72858bcae7eaa7df8d167dbf60682d70f82a6 [7091/9999] m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch
config: m68k-randconfig-r011-20220412 (https://download.01.org/0day-ci/archive/20220413/[email protected]/config)
compiler: m68k-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit/?id=53a72858bcae7eaa7df8d167dbf60682d70f82a6
git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git fetch --no-tags linux-stable-rc queue/5.4
git checkout 53a72858bcae7eaa7df8d167dbf60682d70f82a6
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=m68k SHELL=/bin/bash drivers/staging/comedi/drivers/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

In file included from arch/m68k/include/asm/bug.h:32,
from include/linux/bug.h:5,
from include/linux/thread_info.h:12,
from include/asm-generic/preempt.h:5,
from ./arch/m68k/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/seqlock.h:36,
from include/linux/time.h:6,
from include/linux/stat.h:19,
from include/linux/module.h:10,
from drivers/staging/comedi/drivers/comedi_isadma.c:7:
include/linux/dma-mapping.h: In function 'dma_map_resource':
arch/m68k/include/asm/page_mm.h:169:50: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/asm-generic/bug.h:182:32: note: in definition of macro 'WARN_ON'
182 | int __ret_warn_on = !!(condition); \
| ^~~~~~~~~
include/linux/dma-mapping.h:355:13: note: in expansion of macro 'WARN_ON_ONCE'
355 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~~~~~~~~~~~
arch/m68k/include/asm/page_mm.h:170:33: note: in expansion of macro 'virt_addr_valid'
170 | #define pfn_valid(pfn) virt_addr_valid(pfn_to_virt(pfn))
| ^~~~~~~~~~~~~~~
include/linux/dma-mapping.h:355:26: note: in expansion of macro 'pfn_valid'
355 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~~~~~~~~
drivers/staging/comedi/drivers/comedi_isadma.c: In function 'comedi_isadma_program':
>> drivers/staging/comedi/drivers/comedi_isadma.c:25:17: error: implicit declaration of function 'claim_dma_lock' [-Werror=implicit-function-declaration]
25 | flags = claim_dma_lock();
| ^~~~~~~~~~~~~~
>> drivers/staging/comedi/drivers/comedi_isadma.c:31:9: error: implicit declaration of function 'release_dma_lock' [-Werror=implicit-function-declaration]
31 | release_dma_lock(flags);
| ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors


vim +/claim_dma_lock +25 drivers/staging/comedi/drivers/comedi_isadma.c

20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 16
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 17 /**
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 18 * comedi_isadma_program - program and enable an ISA DMA transfer
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 19 * @desc: the ISA DMA cookie to program and enable
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 20 */
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 21 void comedi_isadma_program(struct comedi_isadma_desc *desc)
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 22 {
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 23 unsigned long flags;
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 24
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 @25 flags = claim_dma_lock();
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 26 clear_dma_ff(desc->chan);
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 27 set_dma_mode(desc->chan, desc->mode);
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 28 set_dma_addr(desc->chan, desc->hw_addr);
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 29 set_dma_count(desc->chan, desc->size);
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 30 enable_dma(desc->chan);
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 @31 release_dma_lock(flags);
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 32 }
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 33 EXPORT_SYMBOL_GPL(comedi_isadma_program);
20a1ea7d6ba184a H Hartley Sweeten 2015-01-14 34

:::::: The code at line 25 was first introduced by commit
:::::: 20a1ea7d6ba184a1f6e25e85786738003387cada staging: comedi: comedi_isadma: introduce helper module for ISA DMA

:::::: TO: H Hartley Sweeten <[email protected]>
:::::: CC: Greg Kroah-Hartman <[email protected]>

--
0-DAY CI Kernel Test Service
https://01.org/lkp


2022-04-13 14:42:27

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [linux-stable-rc:queue/5.4 7091/9999] drivers/staging/comedi/drivers/comedi_isadma.c:25:17: error: implicit declaration of function 'claim_dma_lock'

On Wed, Apr 13, 2022 at 1:07 AM kernel test robot <[email protected]> wrote:
>
> Hi Arnd,
>
> FYI, the error/warning still remains.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git queue/5.4
> head: 9185989d84b918f49f720061cedc29c8ed039797
> commit: 53a72858bcae7eaa7df8d167dbf60682d70f82a6 [7091/9999] m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch
> config: m68k-randconfig-r011-20220412 (https://download.01.org/0day-ci/archive/20220413/[email protected]/config)
>

I've seen a couple of reports for this now, in a few other drivers.
The intention of
my old patch was to limit the use of the set_dma_addr() etc interface
for coldfire,
because they are not implemented on the other MMU-less m68k platform
(dragonball), which caused build failures there.

However, changing the dependency to COLDFIRE means that we now build
the drivers that need this on /other/ machines that don't have the complete
API. In particular, coldfire-v4 with MMU is now able to select the COMEDI
ISA drivers that fail to build because a different part of the API
(claim_dma_lock())
is defined in asm/floppy.h on m68k instead of asm/dma.h as it is on the
other architectures.

I don't actually see any driver on coldfire using the ISA DMA API any more at
all, so I wonder if we should just drop the symbol entirely, and perhaps remove
the definitions for coldfire as well. These are the drivers I found
using the DMA
API:

$ git grep -wl set_dma_mode\\\|request_dma drivers/ sound/
drivers/ata/pata_icside.c
drivers/comedi/drivers/comedi_isadma.c
drivers/mmc/host/wbsd.c
drivers/net/appletalk/ltpc.c
drivers/net/ethernet/3com/3c515.c
drivers/net/ethernet/amd/lance.c
drivers/net/ethernet/amd/ni65.c
drivers/net/ethernet/cirrus/cs89x0.c
drivers/net/hamradio/dmascc.c
drivers/net/wan/cosa.c
drivers/net/wan/hostess_sv11.c
drivers/net/wan/sealevel.c
drivers/net/wan/z85230.c
drivers/parport/parport_pc.c
drivers/pnp/resource.c
drivers/scsi/aha1542.c
drivers/scsi/arm/cumana_2.c
drivers/scsi/arm/eesox.c
drivers/scsi/arm/powertec.c
drivers/scsi/mpt3sas/mpt3sas_base.c
drivers/scsi/mpt3sas/mpt3sas_base.h
drivers/scsi/qla1280.c
drivers/scsi/qla1280.h
drivers/scsi/qla4xxx/ql4_def.h
drivers/scsi/qla4xxx/ql4_mbx.c
drivers/scsi/qla4xxx/ql4_os.c
drivers/usb/gadget/udc/net2272.c
drivers/usb/musb/musb_cppi41.c
drivers/video/fbdev/pvr2fb.c
sound/core/isadma.c
sound/isa/es1688/es1688_lib.c
sound/isa/gus/gus_main.c
sound/soc/au1x/dma.c

Greg (Ungerer), do you see any of these that are used on Coldfire?
I can rule out most of them, but there are a few that are unclear to me.

Arnd

2022-04-15 11:58:10

by Greg Ungerer

[permalink] [raw]
Subject: Re: [linux-stable-rc:queue/5.4 7091/9999] drivers/staging/comedi/drivers/comedi_isadma.c:25:17: error: implicit declaration of function 'claim_dma_lock'



On 15/4/22 01:59, Arnd Bergmann wrote:
> On Thu, Apr 14, 2022 at 4:16 PM Greg Ungerer <[email protected]> wrote:
>> On 13/4/22 18:54, Arnd Bergmann wrote:
>>> On Wed, Apr 13, 2022 at 1:07 AM kernel test robot <[email protected]> wrote:
> >
>>> Greg (Ungerer), do you see any of these that are used on Coldfire?
>>> I can rule out most of them, but there are a few that are unclear to me.
>>
>> I think the cs89x0 driver may have been used on at least one platform
>> in the past. But nothing that is currently supported in mainline code.
>> So we can safely assume none of these are required for ColdFire platforms.
>
> Ok, so even if this driver is used on coldfire, it only uses the ISA DMA
> code path for actual ISA devices, not for the platform device code on
> non-PC systems.
>
> I think we can just remove arch/m68k/coldfire/dma.c and most of
> arch/m68k/include/asm/dma.h then after dropping CONFIG_ISA_DMA_API,
> leaving only the bits needed for CONFIG_GENERIC_ISA_DMA on Q40
> and AMIGA.

Yep, I think that is a good plan.

Regards
Greg


2022-04-15 14:12:49

by Greg Ungerer

[permalink] [raw]
Subject: Re: [linux-stable-rc:queue/5.4 7091/9999] drivers/staging/comedi/drivers/comedi_isadma.c:25:17: error: implicit declaration of function 'claim_dma_lock'


On 13/4/22 18:54, Arnd Bergmann wrote:
> On Wed, Apr 13, 2022 at 1:07 AM kernel test robot <[email protected]> wrote:
>>
>> Hi Arnd,
>>
>> FYI, the error/warning still remains.
>>
>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git queue/5.4
>> head: 9185989d84b918f49f720061cedc29c8ed039797
>> commit: 53a72858bcae7eaa7df8d167dbf60682d70f82a6 [7091/9999] m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch
>> config: m68k-randconfig-r011-20220412 (https://download.01.org/0day-ci/archive/20220413/[email protected]/config)
>>
>
> I've seen a couple of reports for this now, in a few other drivers.
> The intention of
> my old patch was to limit the use of the set_dma_addr() etc interface
> for coldfire,
> because they are not implemented on the other MMU-less m68k platform
> (dragonball), which caused build failures there.
>
> However, changing the dependency to COLDFIRE means that we now build
> the drivers that need this on /other/ machines that don't have the complete
> API. In particular, coldfire-v4 with MMU is now able to select the COMEDI
> ISA drivers that fail to build because a different part of the API
> (claim_dma_lock())
> is defined in asm/floppy.h on m68k instead of asm/dma.h as it is on the
> other architectures.
>
> I don't actually see any driver on coldfire using the ISA DMA API any more at
> all, so I wonder if we should just drop the symbol entirely, and perhaps remove
> the definitions for coldfire as well. These are the drivers I found
> using the DMA
> API:
>
> $ git grep -wl set_dma_mode\\\|request_dma drivers/ sound/
> drivers/ata/pata_icside.c
> drivers/comedi/drivers/comedi_isadma.c
> drivers/mmc/host/wbsd.c
> drivers/net/appletalk/ltpc.c
> drivers/net/ethernet/3com/3c515.c
> drivers/net/ethernet/amd/lance.c
> drivers/net/ethernet/amd/ni65.c
> drivers/net/ethernet/cirrus/cs89x0.c
> drivers/net/hamradio/dmascc.c
> drivers/net/wan/cosa.c
> drivers/net/wan/hostess_sv11.c
> drivers/net/wan/sealevel.c
> drivers/net/wan/z85230.c
> drivers/parport/parport_pc.c
> drivers/pnp/resource.c
> drivers/scsi/aha1542.c
> drivers/scsi/arm/cumana_2.c
> drivers/scsi/arm/eesox.c
> drivers/scsi/arm/powertec.c
> drivers/scsi/mpt3sas/mpt3sas_base.c
> drivers/scsi/mpt3sas/mpt3sas_base.h
> drivers/scsi/qla1280.c
> drivers/scsi/qla1280.h
> drivers/scsi/qla4xxx/ql4_def.h
> drivers/scsi/qla4xxx/ql4_mbx.c
> drivers/scsi/qla4xxx/ql4_os.c
> drivers/usb/gadget/udc/net2272.c
> drivers/usb/musb/musb_cppi41.c
> drivers/video/fbdev/pvr2fb.c
> sound/core/isadma.c
> sound/isa/es1688/es1688_lib.c
> sound/isa/gus/gus_main.c
> sound/soc/au1x/dma.c
>
> Greg (Ungerer), do you see any of these that are used on Coldfire?
> I can rule out most of them, but there are a few that are unclear to me.

I think the cs89x0 driver may have been used on at least one platform
in the past. But nothing that is currently supported in mainline code.
So we can safely assume none of these are required for ColdFire platforms.

Regards
Greg


2022-04-16 02:40:51

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [linux-stable-rc:queue/5.4 7091/9999] drivers/staging/comedi/drivers/comedi_isadma.c:25:17: error: implicit declaration of function 'claim_dma_lock'

On Thu, Apr 14, 2022 at 4:16 PM Greg Ungerer <[email protected]> wrote:
> On 13/4/22 18:54, Arnd Bergmann wrote:
> > On Wed, Apr 13, 2022 at 1:07 AM kernel test robot <[email protected]> wrote:
>
> > Greg (Ungerer), do you see any of these that are used on Coldfire?
> > I can rule out most of them, but there are a few that are unclear to me.
>
> I think the cs89x0 driver may have been used on at least one platform
> in the past. But nothing that is currently supported in mainline code.
> So we can safely assume none of these are required for ColdFire platforms.

Ok, so even if this driver is used on coldfire, it only uses the ISA DMA
code path for actual ISA devices, not for the platform device code on
non-PC systems.

I think we can just remove arch/m68k/coldfire/dma.c and most of
arch/m68k/include/asm/dma.h then after dropping CONFIG_ISA_DMA_API,
leaving only the bits needed for CONFIG_GENERIC_ISA_DMA on Q40
and AMIGA.

Arnd