Re: linux-next: Tree for Mar 12 (pci/controller/mobiveil/)

From: Randy Dunlap
Date: Wed Mar 18 2020 - 11:37:56 EST


On 3/18/20 2:44 AM, Z.q. Hou wrote:
> Hi Randy,
>
>> -----Original Message-----
>> From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>> Sent: 2020å3æ17æ 23:16
>> To: Z.q. Hou <zhiqiang.hou@xxxxxxx>; Bjorn Helgaas <helgaas@xxxxxxxxxx>
>> Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>; Linux Next Mailing List
>> <linux-next@xxxxxxxxxxxxxxx>; Linux Kernel Mailing List
>> <linux-kernel@xxxxxxxxxxxxxxx>; linux-pci <linux-pci@xxxxxxxxxxxxxxx>;
>> Karthikeyan Mitran <m.karthikeyan@xxxxxxxxxxxxxx>
>> Subject: Re: linux-next: Tree for Mar 12 (pci/controller/mobiveil/)
>>
>> On 3/17/20 3:05 AM, Z.q. Hou wrote:
>>> Hi Randy,
>>>
>>>> -----Original Message-----
>>>> From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>>>> Sent: 2020å3æ17æ 12:59
>>>> To: Z.q. Hou <zhiqiang.hou@xxxxxxx>; Bjorn Helgaas
>>>> <helgaas@xxxxxxxxxx>
>>>> Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>; Linux Next Mailing List
>>>> <linux-next@xxxxxxxxxxxxxxx>; Linux Kernel Mailing List
>>>> <linux-kernel@xxxxxxxxxxxxxxx>; linux-pci
>>>> <linux-pci@xxxxxxxxxxxxxxx>; Karthikeyan Mitran
>>>> <m.karthikeyan@xxxxxxxxxxxxxx>
>>>> Subject: Re: linux-next: Tree for Mar 12 (pci/controller/mobiveil/)
>>>>
>>>> On 3/16/20 9:31 PM, Z.q. Hou wrote:
>>>>> Hi Randy and Bjorn,
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Bjorn Helgaas <helgaas@xxxxxxxxxx>
>>>>>> Sent: 2020å3æ13æ 3:39
>>>>>> To: Z.q. Hou <zhiqiang.hou@xxxxxxx>
>>>>>> Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>; Stephen Rothwell
>>>>>> <sfr@xxxxxxxxxxxxxxxx>; Linux Next Mailing List
>>>>>> <linux-next@xxxxxxxxxxxxxxx>; Linux Kernel Mailing List
>>>>>> <linux-kernel@xxxxxxxxxxxxxxx>; linux-pci
>>>>>> <linux-pci@xxxxxxxxxxxxxxx>; Karthikeyan Mitran
>>>>>> <m.karthikeyan@xxxxxxxxxxxxxx>
>>>>>> Subject: Re: linux-next: Tree for Mar 12 (pci/controller/mobiveil/)
>>>>>>
>>>>>> On Thu, Mar 12, 2020 at 08:13:50AM -0700, Randy Dunlap wrote:
>>>>>>> On 3/12/20 3:04 AM, Stephen Rothwell wrote:
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> Changes since 20200311:
>>>>>>>>
>>>>>>>
>>>>>>> on i386:
>>>>>>> # CONFIG_PCI_MSI is not set
>>>>>>>
>>>>>>> WARNING: unmet direct dependencies detected for
>>>> PCIE_MOBIVEIL_HOST
>>>>>>> Depends on [n]: PCI [=y] && PCI_MSI_IRQ_DOMAIN [=n]
>>>>>>> Selected by [y]:
>>>>>>> - PCIE_MOBIVEIL_PLAT [=y] && PCI [=y] && (ARCH_ZYNQMP ||
>>>>>> COMPILE_TEST [=y]) && OF [=y]
>>>>>>
>>>>>> Thanks, Randy.
>>>>>>
>>>>>> I'm not sure if this is a new problem introduced by something in my
>>>>>> "next" branch, or if this is an existing problem we just happened
>>>>>> to hit with randconfig.
>>>>>>
>>>>>> Here are the commits on remotes/lorenzo/pci/mobiveil branch:
>>>>>>
>>>>>> d29ad70a813b ("PCI: mobiveil: Add PCIe Gen4 RC driver for
>>>>>> Layerscape
>>>>>> SoCs")
>>>>>> 3edeb49525bb ("dt-bindings: PCI: Add NXP Layerscape SoCs PCIe
>>>>>> Gen4
>>>>>> controller")
>>>>>> 11d22cc395ca ("PCI: mobiveil: Add Header Type field check")
>>>>>> 029dea3cdc67 ("PCI: mobiveil: Add 8-bit and 16-bit CSR register
>>>>>> accessors")
>>>>>> 52cae4c7082f ("PCI: mobiveil: Allow mobiveil_host_init() to be
>>>>>> used to re-init host")
>>>>>> fc99b3311af7 ("PCI: mobiveil: Add callback function for link up
>> check")
>>>>>> ed620e96541f ("PCI: mobiveil: Add callback function for interrupt
>>>>>> initialization")
>>>>>> 03bdc3884019 ("PCI: mobiveil: Modularize the Mobiveil PCIe Host
>>>>>> Bridge IP
>>>>>> driver")
>>>>>> 39e3a03eea5b ("PCI: mobiveil: Collect the interrupt related
>>>>>> operations into a function")
>>>>>> 2ba24842d6b4 ("PCI: mobiveil: Move the host initialization into a
>>>> function")
>>>>>> 1f442218d657 ("PCI: mobiveil: Introduce a new structure
>>>>>> mobiveil_root_port")
>>>>>>
>>>>>> I dropped that mobiveil branch for now, so Hou, can you please
>>>>>> check this out and resolve it one way or the other?
>>>>>
>>>>> I don't reproduce this issue with i386_defconfig, can you help me to
>>>> reproduce it?
>>>>
>>>> Sure, see below.
>>>>
>>>>
>>>>> Thanks,
>>>>> Zhiqiang
>>>>>
>>>>>>
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:375:15: error:
>>>>>> variable âmobiveil_msi_domain_infoâ has initializer but incomplete
>>>>>> type
>>>>>>> static struct msi_domain_info mobiveil_msi_domain_info = {
>>>>>>> ^~~~~~~~~~~~~~~
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:376:3:
>>>>>>> error: âstruct
>>>>>> msi_domain_infoâ has no member named âflagsâ
>>>>>>> .flags = (MSI_FLAG_USE_DEF_DOM_OPS |
>>>>>> MSI_FLAG_USE_DEF_CHIP_OPS |
>>>>>>> ^~~~~
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:376:12: error:
>>>>>> âMSI_FLAG_USE_DEF_DOM_OPSâ undeclared here (not in a function);
>>>> did
>>>>>> you mean âSIMPLE_DEV_PM_OPSâ?
>>>>>>> .flags = (MSI_FLAG_USE_DEF_DOM_OPS |
>>>>>> MSI_FLAG_USE_DEF_CHIP_OPS |
>>>>>>> ^~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>> SIMPLE_DEV_PM_OPS
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:376:39: error:
>>>>>> âMSI_FLAG_USE_DEF_CHIP_OPSâ undeclared here (not in a function);
>>>>>> did you mean âMSI_FLAG_USE_DEF_DOM_OPSâ?
>>>>>>> .flags = (MSI_FLAG_USE_DEF_DOM_OPS |
>>>>>> MSI_FLAG_USE_DEF_CHIP_OPS |
>>>>>>>
>>>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>>
>>>>>> MSI_FLAG_USE_DEF_DOM_OPS
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:377:6: error:
>>>>>> âMSI_FLAG_PCI_MSIXâ undeclared here (not in a function); did you
>>>>>> mean âSS_FLAG_BITSâ?
>>>>>>> MSI_FLAG_PCI_MSIX),
>>>>>>> ^~~~~~~~~~~~~~~~~
>>>>>>> SS_FLAG_BITS
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:376:11:
>> warning:
>>>>>> excess elements in struct initializer
>>>>>>> .flags = (MSI_FLAG_USE_DEF_DOM_OPS |
>>>>>> MSI_FLAG_USE_DEF_CHIP_OPS |
>>>>>>> ^
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:376:11:
>>>>>>> note: (near
>>>>>> initialization for âmobiveil_msi_domain_infoâ)
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:378:3:
>>>>>>> error: âstruct
>>>>>> msi_domain_infoâ has no member named âchipâ
>>>>>>> .chip = &mobiveil_msi_irq_chip,
>>>>>>> ^~~~
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:378:10:
>> warning:
>>>>>> excess elements in struct initializer
>>>>>>> .chip = &mobiveil_msi_irq_chip,
>>>>>>> ^
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:378:10:
>>>>>>> note: (near
>>>>>> initialization for âmobiveil_msi_domain_infoâ)
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c: In
>>>>>>> function
>>>>>> âmobiveil_allocate_msi_domainsâ:
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:469:20: error:
>>>>>> implicit declaration of function âpci_msi_create_irq_domainâ; did
>>>>>> you mean âpci_msi_get_device_domainâ?
>>>>>> [-Werror=implicit-function-declaration]
>>>>>>> msi->msi_domain = pci_msi_create_irq_domain(fwnode,
>>>>>>> ^~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>> pci_msi_get_device_domain
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:469:18:
>> warning:
>>>>>> assignment makes pointer from integer without a cast
>>>>>> [-Wint-conversion]
>>>>>>> msi->msi_domain = pci_msi_create_irq_domain(fwnode,
>>>>>>> ^
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c: At top level:
>>>>>>> ../drivers/pci/controller/mobiveil/pcie-mobiveil-host.c:375:31: error:
>>>>>> storage size of âmobiveil_msi_domain_infoâ isnât known
>>>>>>> static struct msi_domain_info mobiveil_msi_domain_info = {
>>>>>>> ^~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Full randconfig file is attached.
>>>>
>>>> Use the .config file that was attached in the report.
>>>
>>> One query, which default config you used to generate this .config? I
>>> cannot select the PCIE_MOBIVEIL_PLAT in 'menuconfig' when use the
>> i386_defconfig.
>>
>> Hi,
>>
>> I did not use any defconfig.
>> Just cp that config file into your build directory (as .config)
>>
>> and do something like:
>> $ make ARCH=i386 oldconfig
>
> I sent a patch to fix this issue, but I also want to know why did you enable the
> PCIE_MOBIVEIL_PLAT in the i386 .config? I mean what is this test for.

Hi,
Every day that linux-next is released, I run a bunch of randconfigs:

$ make ARCH=i386 randconfig
$ make ARCH=x86_64 randconfig

That's what caused PCIE_MOBIVEIL_PLAT to be set.

--
~Randy