Re: linux-next: Tree for Sep 6 (*msi.c but ! PCI_MSI)
From: Bjorn Helgaas
Date: Wed Sep 06 2017 - 17:37:54 EST
On Wed, Sep 06, 2017 at 11:14:04AM -0700, Randy Dunlap wrote:
> On 09/06/17 11:03, Bjorn Helgaas wrote:
> > [+cc Marc, Thomas]
> >
> > On Wed, Sep 06, 2017 at 08:53:04AM -0700, Randy Dunlap wrote:
> >> On 09/05/17 22:57, Stephen Rothwell wrote:
> >>> Hi all,
> >>>
> >>> Please do not add any v4.15 related material to your linux-next
> >>> included branches until after v4.14-rc1 has been released.
> >>>
> >>> Changes since 20170905:
> >>>
> >>
> >> on i386:
> >>
> >> CONFIG_PCI is not enabled, so CONFIG_PCI_MSI is not enabled.
> >>
> >>
> >> ../kernel/irq/msi.c: In function 'msi_domain_alloc_irqs':
> >> ../kernel/irq/msi.c:352:19: error: storage size of 'arg' isn't known
> >> msi_alloc_info_t arg;
> >> ^
> >>
> >> ../drivers/base/platform-msi.c:37:19: error: field 'arg' has incomplete type
> >> msi_alloc_info_t arg;
> >> ^
> >
> > Thanks. I assume this is a new regression in next-20170906, since
> > you're responding to its announcement?
>
> Yes, AFAIK. First time that I have seen it.
>
> > I don't quite see where the problem is yet (looking at next-20170906).
> > kernel/irq/msi.c includes linux/msi.h, which includes
> > arch/x86/include/asm/msi.h, which includes
> > arch/x86/include/asm/hw_irq.h and has a typedef for msi_alloc_info_t,
> > but I don't see any CONFIG_PCI guards there that would be relevant.
>
> CONFIG_GENERIC_MSI_IRQ=y
> CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
>
> Full randconfig file is attached.
Thanks, I reproduced the problem. That randconfig doesn't build in
v4.12 or v4.13 either (though with slightly different errors).
I think the next-20170906 problem is that msi_alloc_info_t is
typedef'd to struct irq_alloc_info, which is defined only under
#ifdef CONFIG_X86_LOCAL_APIC, which isn't set in this config.
This is outside my scope of knowledge, so I'm hoping the problem is
obvious to Thomas or Marc.
Bjorn