On Mon, Feb 29, 2016 at 06:47:40PM -0800, Guenter Roeck wrote: >On 02/29/2016 05:14 PM, Gavin Shan wrote: >>On Mon, Feb 29, 2016 at 07:24:33PM -0500, Sasha Levin wrote: >>>On 02/28/2016 05:45 AM, Guenter Roeck wrote: >>>>Current build results: >>>> total: 137 pass: 121 fail: 16 >>>>Failed builds: >>>> arm:allmodconfig >>>> arm:omap2plus_defconfig >>>> arm:exynos_defconfig >>>> arm:s5pv210_defconfig >>>> powerpc:defconfig >>>> powerpc:allmodconfig >>>> powerpc:allnoconfig >>>> powerpc:ppc64e_defconfig >>>> powerpc:cell_defconfig >>>> powerpc:maple_defconfig >>>> powerpc:ppc6xx_defconfig >>>> powerpc:mpc83xx_defconfig >>>> powerpc:tqm8xx_defconfig >>>> powerpc:85xx/sbc8548_defconfig >>>> powerpc:83xx/mpc834x_mds_defconfig >>>> powerpc:86xx/sbc8641d_defconfig >>>> >>>>Culprits are listed below. Copying the patch authors for advice. >>>> >> >>Thanks for reporting it, Guenter. some questions as below: >> >>- The subject says you were building 3.18 stable kernel, but the PowerPC >> related commit was merged to 4.1 kernel. So I assume you were building >> 4.1 stable kernel instead. > >In this case it was 3.18. There were failures in 4.1 as well, but they are >different. All builds in 3.18 fail, but only two out of 12 builds in 4.1. >For 3.18, this includes both 32 bit and 64 bit builds. > >>- All above PowerPC configuration failed to build? At least, those >> configuration that has (CONFIG_PPC64=y) shouldn't fail because of >> the error you pointed. > >Possibly, but they still fail. Sorry if my report missed the 64 bit error(s). > >>- Those configuration without (CONFIG_PPC64=y) needs below fix. Could you >> please have a try? If it works, I'll post a patch as soon as possible. >> >>diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c >>index b60a67d..25dec0b 100644 >>--- a/arch/powerpc/kernel/of_platform.c >>+++ b/arch/powerpc/kernel/of_platform.c >>@@ -71,8 +71,10 @@ static int of_pci_phb_probe(struct platform_device *dev) >> eeh_dev_phb_init_dynamic(phb); >> >> /* Register devices with EEH */ >>+#ifdef CONFIG_EEH >> if (dev->dev.of_node->child) >> eeh_add_device_tree_early(PCI_DN(dev->dev.of_node)); >>+#endif >> > >Looking into a ppc 64 bit log (from a qemu test attempt), I see > >In file included from arch/powerpc/mm/init_64.c:59:0: >./arch/powerpc/include/asm/eeh.h:344:48: error: 'struct pci_dn' declared inside parameter list [-Werror] > static inline void eeh_add_device_early(struct pci_dn *pdn) { } > >which won't be fixed by the above patch. > >The build logs are public at http://kerneltests.org/builders. >They are typically available for at least 30 days, so feel free >to have a look yourself. > Yeah, there're more info included in above link. The attached patch would fix the build error. Thanks, Gavin >Thanks, >Guenter > >>Thanks, >>Gavin >> >>>>Guenter >>>> >>>>--- >>>>powerpc: >>>> >>>>In file included from arch/powerpc/kernel/of_platform.c:30:0: >>>>./arch/powerpc/include/asm/eeh.h:344:48: error: 'struct pci_dn' declared inside parameter list >>>> >>>>Culprit: "powerpc/eeh: Do probe on pci_dn" >>>> >>>>--- >>>>arm: >>>> >>>>drivers/pinctrl/samsung/pinctrl-samsung.c: In function 'samsung_gpio_set': >>>>drivers/pinctrl/samsung/pinctrl-samsung.c:551:9: error: implicit declaration of function 'gpiochip_get_data' >>>> >>>>Culprit: "pinctrl: samsung: fix SMP race condition" >>>> >>>>drivers/tty/serial/omap-serial.c: In function 'serial_omap_stop_tx': >>>>drivers/tty/serial/omap-serial.c:318:10: error: 'struct uart_port' has no member named 'rs485' >>>> >>>>drivers/tty/serial/omap-serial.c: In function 'serial_omap_probe': >>>>drivers/tty/serial/omap-serial.c:1683:10: error: 'struct uart_port' has no member named 'rs485_config' >>>> >>>>Culprit: "serial/omap: Use the rs485 functions on serial_core" >>> >>> >>>Thanks Guenter. I'll pull both of these out of 3.18 and 4.1 until we can get a proper >>>backport since it doesn't seem trivial. >>> >>> >>>Thanks, >>>Sasha >>> >> >> >
>From 0c43881f78dbdf62ba02364e6306ea271903fc06 Mon Sep 17 00:00:00 2001 From: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx> Date: Tue, 1 Mar 2016 16:02:43 +1100 Subject: [PATCH] powerpc/eeh: Fix build error caused by pci_dn MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit eeh.h could be included when we have following condition. Then we run into build error as below: (CONFIG_PPC64 && !CONFIG_EEH) || (!CONFIG_PPC64 && !CONFIG_EEH) In file included from arch/powerpc/kernel/of_platform.c:30:0: ./arch/powerpc/include/asm/eeh.h:344:48: error: ‘struct pci_dn’ \ declared inside parameter list [-Werror] : In file included from arch/powerpc/mm/hash_utils_64.c:49:0: ./arch/powerpc/include/asm/eeh.h:344:48: error: ‘struct pci_dn’ \ declared inside parameter list [-Werror] This fixes the issue by replacing those empty inline functions with macro so that we don't rely on @pci_dn when CONFIG_EEH is disabled. Cc: stable@xxxxxxxxxxxxxxx # v4.1+ Fixes: ff57b45 ("powerpc/eeh: Do probe on pci_dn") Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx> Signed-off-by: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx> --- arch/powerpc/include/asm/eeh.h | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/arch/powerpc/include/asm/eeh.h b/arch/powerpc/include/asm/eeh.h index c3a2d14..5f7ec12 100644 --- a/arch/powerpc/include/asm/eeh.h +++ b/arch/powerpc/include/asm/eeh.h @@ -339,19 +339,13 @@ static inline int eeh_check_failure(const volatile void __iomem *token) #define eeh_dev_check_failure(x) (0) -static inline void eeh_addr_cache_build(void) { } - -static inline void eeh_add_device_early(struct pci_dn *pdn) { } - -static inline void eeh_add_device_tree_early(struct pci_dn *pdn) { } - -static inline void eeh_add_device_late(struct pci_dev *dev) { } - -static inline void eeh_add_device_tree_late(struct pci_bus *bus) { } - -static inline void eeh_add_sysfs_files(struct pci_bus *bus) { } - -static inline void eeh_remove_device(struct pci_dev *dev) { } +#define eeh_addr_cache_build() +#define eeh_add_device_early(pdn) +#define eeh_add_device_tree_early(pdn) +#define eeh_add_device_late(pdev) +#define eeh_add_device_tree_late(pbus) +#define eeh_add_sysfs_files(pbus) +#define eeh_remove_device(pdev) #define EEH_POSSIBLE_ERROR(val, type) (0) #define EEH_IO_ERROR_VALUE(size) (-1UL) -- 2.1.0