Subject: Re: linux-next: Tree for Aug 12 (include/linux/pci.h)

From: Stephen Rothwell <[email-masked]>
Date: Thu, 20 Aug 2015 16:18:49 +1000

Hi Bjorn,

On Wed, 19 Aug 2015 23:16:06 -0700 Bjorn Helgaas <[email-masked]> wrote:
>
> [+cc Yann, linux-kbuild]
> 
> On Wed, Aug 12, 2015 at 3:58 PM, Tadeusz Struk <[email-masked]> wrote:
> > On 08/12/2015 02:53 PM, Stephen Rothwell wrote:
> >> On Wed, 12 Aug 2015 11:05:36 -0700 Randy Dunlap <[email-masked]> wrote:
> >>> >
> >>> > on i386 or x86_64:
> >>> >
> >>> > Many (repeated) errors like this one:
> >>> >
> >>> > ../include/linux/pci.h:390:12: error: â€˜struct pci_devâ€™ has no member named â€˜physfnâ€™
> >>> >
> >>> > when CONFIG_PCI_ATS is not enabled.
> >> Maybe caused by commit
> >>
> >>   dd0f368398ea ("crypto: qat - Add qat dh895xcc VF driver")
> >>
> >> from the crypto tree Which adds a
> >>
> >>   select PCI_IOV
> >>
> >> to drivers/crypto/qat/Kconfig without the necessary
> >>
> >>   select PCI
> >>
> >> but PCI_IOV selects PCI_ATS, so I am not sure what happened here.  I am
> >> assuming that your config has PCI_IOV enabled?  What about PCI?
> >
> > There is a patch submitted, but not yet applied
> > https://patchwork.kernel.org/patch/6994171/
> > maybe it will help?
> 
> I don't understand this.  In drivers/pci/Kconfig, we have:
> 
>   config PCI_IOV
>     depends on PCI
> 
> and in drivers/crypto/qat/Kconfig, dd0f368398ea adds:
> 
>   config CRYPTO_DEV_QAT_DH895xCCVF
>     select PCI_IOV
> 
> And apparently it's possible to end up with a .config with
> CONFIG_PCI_IOV=y but CONFIG_PCI is not set?  That seems wrong, since
> we declared that PCI_IOV depends on PCI.  Does select ignore that
> dependency somehow?

Yeah, unfortunately that is how select works.  If a symbol you select
depends on anything, then you need to also select all the dependencies.

-- 
Cheers,
Stephen Rothwell                    [email-masked]