Re: Build errors in v3.18-stable-queue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]