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

From: Stephen Rothwell <[email-masked]>
Date: Tue, 26 Oct 2021 16:07:48 +1100

Hi all,

On Tue, 26 Oct 2021 16:06:57 +1100 Stephen Rothwell <[email-masked]> wrote:
>
> Hi all,
> 
> After merging the dmaengine tree, today's linux-next build (x86_64
> allmodconfig) failed like this:

drivers/message/fusion/mptbase.c: In function 'PrimeIocFifos':
drivers/message/fusion/mptbase.c:4446:35: error: passing argument 1 of 'dma_set_mask_and_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types]
 4446 |    if (!dma_set_mask_and_coherent(&ioc->pcidev, DMA_BIT_MASK(32))) {
      |                                   ^~~~~~~~~~~~
      |                                   |
      |                                   struct pci_dev **
In file included from include/linux/pci-dma-compat.h:8,
                 from include/linux/pci.h:2443,
                 from drivers/message/fusion/mptbase.c:56:
include/linux/dma-mapping.h:442:60: note: expected 'struct device *' but argument is of type 'struct pci_dev **'
  442 | static inline int dma_set_mask_and_coherent(struct device *dev, u64 mask)
      |                                             ~~~~~~~~~~~~~~~^~~
drivers/message/fusion/mptbase.c:4454:31: error: passing argument 1 of 'dma_set_mask_and_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types]
 4454 |     dma_set_mask_and_coherent(&ioc->pcidev, DMA_BIT_MASK(64));
      |                               ^~~~~~~~~~~~
      |                               |
      |                               struct pci_dev **
In file included from include/linux/pci-dma-compat.h:8,
                 from include/linux/pci.h:2443,
                 from drivers/message/fusion/mptbase.c:56:
include/linux/dma-mapping.h:442:60: note: expected 'struct device *' but argument is of type 'struct pci_dev **'
  442 | static inline int dma_set_mask_and_coherent(struct device *dev, u64 mask)
      |                                             ~~~~~~~~~~~~~~~^~~
drivers/message/fusion/mptbase.c:4590:33: error: passing argument 1 of 'dma_set_mask_and_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types]
 4590 |      !dma_set_mask_and_coherent(&ioc->pcidev, ioc->dma_mask))
      |                                 ^~~~~~~~~~~~
      |                                 |
      |                                 struct pci_dev **
In file included from include/linux/pci-dma-compat.h:8,
                 from include/linux/pci.h:2443,
                 from drivers/message/fusion/mptbase.c:56:
include/linux/dma-mapping.h:442:60: note: expected 'struct device *' but argument is of type 'struct pci_dev **'
  442 | static inline int dma_set_mask_and_coherent(struct device *dev, u64 mask)
      |                                             ~~~~~~~~~~~~~~~^~~
drivers/message/fusion/mptbase.c:4614:33: error: passing argument 1 of 'dma_set_mask_and_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types]
 4614 |      !dma_set_mask_and_coherent(&ioc->pcidev, DMA_BIT_MASK(64)))
      |                                 ^~~~~~~~~~~~
      |                                 |
      |                                 struct pci_dev **
In file included from include/linux/pci-dma-compat.h:8,
                 from include/linux/pci.h:2443,
                 from drivers/message/fusion/mptbase.c:56:
include/linux/dma-mapping.h:442:60: note: expected 'struct device *' but argument is of type 'struct pci_dev **'
  442 | static inline int dma_set_mask_and_coherent(struct device *dev, u64 mask)
      |                                             ~~~~~~~~~~~~~~~^~~

> Caused by commit
> 
>   981b43434b28 ("message: fusion: switch from 'pci_' to 'dma_' API")
> 
> I have used the dmaengine tree from next-20211025 for today.

-- 
Cheers,
Stephen Rothwell