Tree/Branch: next-20160705 Git describe: next-20160705 Commit: 5786869c1b Add linux-next specific files for 20160705
Build Time: 75 min 0 sec
Passed: 7 / 9 ( 77.78 %) Failed: 2 / 9 ( 22.22 %)
Errors: 0 Warnings: 6 Section Mismatches: 12
Failed defconfigs: arm64-allmodconfig arm-allmodconfig
Errors:
------------------------------------------------------------------------------- defconfigs with issues (other than build errors): 0 warnings 8 mismatches : arm64-allmodconfig 6 warnings 4 mismatches : arm-allmodconfig
-------------------------------------------------------------------------------
Warnings Summary: 6 1 ../drivers/tty/serial/8250/8250_fintek.c:34:0: warning: "IRQ_MODE" redefined 1 ../drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/polaris10_hwmgr.c:1824:4: warning: this decimal constant is unsigned only in ISO C90 1 ../drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/polaris10_hwmgr.c:1822:4: warning: this decimal constant is unsigned only in ISO C90 1 ../drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/polaris10_hwmgr.c:1817:4: warning: this decimal constant is unsigned only in ISO C90 1 ../arch/arm/mach-s3c64xx/common.h:28:2: warning: its scope is only this definition or declaration, which is probably not what you want 1 ../arch/arm/mach-s3c64xx/common.h:28:2: warning: 'struct device_node' declared inside parameter list
Section Mismatch Summary: 12 1 WARNING: vmlinux.o(.text+0x1ddacc): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) 1 WARNING: vmlinux.o(.text+0x1ddac4): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) 1 WARNING: vmlinux.o(.text+0x18486c): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) 1 WARNING: kernel/trace/libftrace.o(.text+0x8eec): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) 1 WARNING: kernel/trace/libftrace.o(.text+0x8ee4): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) 1 WARNING: kernel/trace/libftrace.o(.text+0x6784): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) 1 WARNING: kernel/trace/built-in.o(.text+0x90ec): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) 1 WARNING: kernel/trace/built-in.o(.text+0x90e4): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) 1 WARNING: kernel/trace/built-in.o(.text+0x6974): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) 1 WARNING: kernel/built-in.o(.text+0x17fccc): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) 1 WARNING: kernel/built-in.o(.text+0x17fcc4): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) 1 WARNING: kernel/built-in.o(.text+0x118074): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown)
=============================================================================== Detailed per-defconfig build reports below:
------------------------------------------------------------------------------- arm64-allmodconfig : FAIL, 0 errors, 0 warnings, 8 section mismatches
Section Mismatches: WARNING: kernel/trace/libftrace.o(.text+0x8ee4): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) WARNING: kernel/trace/libftrace.o(.text+0x8eec): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) WARNING: kernel/trace/built-in.o(.text+0x90e4): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) WARNING: kernel/trace/built-in.o(.text+0x90ec): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) WARNING: kernel/built-in.o(.text+0x17fcc4): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) WARNING: kernel/built-in.o(.text+0x17fccc): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) WARNING: vmlinux.o(.text+0x1ddac4): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) WARNING: vmlinux.o(.text+0x1ddacc): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown)
------------------------------------------------------------------------------- arm-allmodconfig : FAIL, 0 errors, 6 warnings, 4 section mismatches
Warnings: ../arch/arm/mach-s3c64xx/common.h:28:2: warning: 'struct device_node' declared inside parameter list ../arch/arm/mach-s3c64xx/common.h:28:2: warning: its scope is only this definition or declaration, which is probably not what you want ../drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/polaris10_hwmgr.c:1817:4: warning: this decimal constant is unsigned only in ISO C90 ../drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/polaris10_hwmgr.c:1822:4: warning: this decimal constant is unsigned only in ISO C90 ../drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/polaris10_hwmgr.c:1824:4: warning: this decimal constant is unsigned only in ISO C90 ../drivers/tty/serial/8250/8250_fintek.c:34:0: warning: "IRQ_MODE" redefined
Section Mismatches: WARNING: kernel/trace/libftrace.o(.text+0x6784): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) WARNING: kernel/trace/built-in.o(.text+0x6974): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) WARNING: kernel/built-in.o(.text+0x118074): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) WARNING: vmlinux.o(.text+0x18486c): Section mismatch in reference from the function ftrace_init_tracefs() to the (unknown reference) .init.data:(unknown) -------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
arm64-allnoconfig arm-multi_v5_defconfig arm-multi_v7_defconfig x86_64-defconfig arm-allnoconfig x86_64-allnoconfig arm64-defconfig
On Tue, Jul 05, 2016 at 10:15:03AM +0100, Build bot for Mark Brown wrote:
For the past little while both arm and arm64 allmodconfig builds have been failing with:
drivers/built-in.o: In function `nbu2ss_drv_probe': binder.c:(.text+0x29438c): undefined reference to `usb_ep_set_maxpacket_limit' binder.c:(.text+0x294468): undefined reference to `usb_ep_set_maxpacket_limit'
That function is a static inline in linux/usb/gadget.h which does seem to be included (the driver builds fine) so I'm not entirely sure why this is failing - I've not had time to investigate properly, I don't know if the compiler is misfiring here.
A change to the usb gadget core allowed certain API functions to be part of a loadable module, which breaks having emxx_udc built-in:
drivers/staging/built-in.o: In function `nbu2ss_drv_probe': (.text+0x2428): undefined reference to `usb_ep_set_maxpacket_limit'
The original patch already fixed tons of other cases that have the added dependency but apparently missed this one that now appears in an ARM allmodconfig build.
This patch makes the symbol "tristate", which lets the Kconfig dependency tracking handle it correctly. To make the module actually usable, I also revert 0af61e66ee16 ("drivers/staging: make emxx_udc.c explicitly non-modular"), which Paul Gortmaker added after noticing that the Kconfig symbol was 'bool'. Compared to the original version however, I leave out the '__exit' annotation on the remove callback, as Paul pointed out that this was incorrect.
Signed-off-by: Arnd Bergmann arnd@arndb.de Fixes: 5a8d651a2bde ("usb: gadget: move gadget API functions to udc-core") --- On Tuesday, July 5, 2016 11:52:42 AM CEST Mark Brown wrote:
On Tue, Jul 05, 2016 at 10:15:03AM +0100, Build bot for Mark Brown wrote:
For the past little while both arm and arm64 allmodconfig builds have been failing with:
drivers/built-in.o: In function `nbu2ss_drv_probe': binder.c:(.text+0x29438c): undefined reference to `usb_ep_set_maxpacket_limit' binder.c:(.text+0x294468): undefined reference to `usb_ep_set_maxpacket_limit'
That function is a static inline in linux/usb/gadget.h which does seem to be included (the driver builds fine) so I'm not entirely sure why this is failing - I've not had time to investigate properly, I don't know if the compiler is misfiring here.
This is the patch I sent for it when it first appeared:
https://lkml.org/lkml/2016/6/23/528
diff --git a/drivers/staging/emxx_udc/Kconfig b/drivers/staging/emxx_udc/Kconfig index cc3402020487..d7577096fb25 100644 --- a/drivers/staging/emxx_udc/Kconfig +++ b/drivers/staging/emxx_udc/Kconfig @@ -1,5 +1,5 @@ config USB_EMXX - bool "EMXX USB Function Device Controller" + tristate "EMXX USB Function Device Controller" depends on USB_GADGET && (ARCH_SHMOBILE || (ARM && COMPILE_TEST)) help The Emma Mobile series of SoCs from Renesas Electronics and diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index 3bd91758b2da..3b56b2826263 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -15,7 +15,7 @@ */
#include <linux/kernel.h> -#include <linux/init.h> +#include <linux/module.h> #include <linux/platform_device.h> #include <linux/delay.h> #include <linux/ioport.h> @@ -39,9 +39,11 @@
#include "emxx_udc.h"
+#define DRIVER_DESC "EMXX UDC driver" #define DMA_ADDR_INVALID (~(dma_addr_t)0)
static const char driver_name[] = "emxx_udc"; +static const char driver_desc[] = DRIVER_DESC;
/*===========================================================================*/ /* Prototype */ @@ -3296,6 +3298,28 @@ static void nbu2ss_drv_shutdown(struct platform_device *pdev) }
/*-------------------------------------------------------------------------*/ +static int nbu2ss_drv_remove(struct platform_device *pdev) +{ + struct nbu2ss_udc *udc; + struct nbu2ss_ep *ep; + int i; + + udc = &udc_controller; + + for (i = 0; i < NUM_ENDPOINTS; i++) { + ep = &udc->ep[i]; + if (ep->virt_buf) + dma_free_coherent(NULL, PAGE_SIZE, + (void *)ep->virt_buf, ep->phys_buf); + } + + /* Interrupt Handler - Release */ + free_irq(INT_VBUS, udc); + + return 0; +} + +/*-------------------------------------------------------------------------*/ static int nbu2ss_drv_suspend(struct platform_device *pdev, pm_message_t state) { struct nbu2ss_udc *udc; @@ -3347,12 +3371,16 @@ static int nbu2ss_drv_resume(struct platform_device *pdev) static struct platform_driver udc_driver = { .probe = nbu2ss_drv_probe, .shutdown = nbu2ss_drv_shutdown, + .remove = nbu2ss_drv_remove, .suspend = nbu2ss_drv_suspend, .resume = nbu2ss_drv_resume, .driver = { - .name = driver_name, - .suppress_bind_attrs = true, + .name = driver_name, }, };
-builtin_platform_driver(udc_driver); +module_platform_driver(udc_driver); + +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_AUTHOR("Renesas Electronics Corporation"); +MODULE_LICENSE("GPL");
Hi,
Arnd Bergmann arnd@arndb.de writes:
A change to the usb gadget core allowed certain API functions to be part of a loadable module, which breaks having emxx_udc built-in:
drivers/staging/built-in.o: In function `nbu2ss_drv_probe': (.text+0x2428): undefined reference to `usb_ep_set_maxpacket_limit'
The original patch already fixed tons of other cases that have the added dependency but apparently missed this one that now appears in an ARM allmodconfig build.
This patch makes the symbol "tristate", which lets the Kconfig dependency tracking handle it correctly. To make the module actually usable, I also revert 0af61e66ee16 ("drivers/staging: make emxx_udc.c explicitly non-modular"), which Paul Gortmaker added after noticing that the Kconfig symbol was 'bool'. Compared to the original version however, I leave out the '__exit' annotation on the remove callback, as Paul pointed out that this was incorrect.
Signed-off-by: Arnd Bergmann arnd@arndb.de Fixes: 5a8d651a2bde ("usb: gadget: move gadget API functions to udc-core")
Sorry guys, I didn't know we had UDC drivers sitting in staging.
Acked-by: Felipe Balbi felipe.balbi@linux.intel.com
On Tue, Jul 05, 2016 at 11:52:42AM +0200, Mark Brown wrote:
On Tue, Jul 05, 2016 at 10:15:03AM +0100, Build bot for Mark Brown wrote:
For the past little while both arm and arm64 allmodconfig builds have been failing with:
drivers/built-in.o: In function `nbu2ss_drv_probe': binder.c:(.text+0x29438c): undefined reference to `usb_ep_set_maxpacket_limit' binder.c:(.text+0x294468): undefined reference to `usb_ep_set_maxpacket_limit'
That function is a static inline in linux/usb/gadget.h which does seem to be included (the driver builds fine) so I'm not entirely sure why this is failing - I've not had time to investigate properly, I don't know if the compiler is misfiring here.
The reason for that is: USB_GADGET is m, but USB_EMXX can be 'y' due to it is boolean although it depends on USB_GADGET. Commit 5a8d651a2 "usb: gadget: move gadget API functions to udc-core" moves gadget APIs definitions from .h to .c causes this build error, but this change is worthwhile. The udc driver (emxx) should can be built as module too. Below patch should fix it:
From 414926524cb1096d2f937f4006baa5574b01e87c Mon Sep 17 00:00:00 2001
From: Peter Chen peter.chen@nxp.com Date: Wed, 6 Jul 2016 10:09:50 +0800 Subject: [PATCH 1/1] staging: emxx_udc: let the driver can be built as module
emxx_ucd depends on USB_GADGET, but USB_GADGET can be built as module, it should can be built as module too.
It fixes below build error:
drivers/built-in.o: In function `nbu2ss_drv_probe': binder.c:(.text+0x29438c): undefined reference to `usb_ep_set_maxpacket_limit' binder.c:(.text+0x294468): undefined reference to `usb_ep_set_maxpacket_limit'
Cc: Felipe Balbi felipe.balbi@linux.intel.com Reported-by: Mark Brown broonie@kernel.org Signed-off-by: Peter Chen peter.chen@nxp.com --- drivers/staging/emxx_udc/Kconfig | 2 +- drivers/staging/emxx_udc/emxx_udc.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/emxx_udc/Kconfig b/drivers/staging/emxx_udc/Kconfig index cc34020..d757709 100644 --- a/drivers/staging/emxx_udc/Kconfig +++ b/drivers/staging/emxx_udc/Kconfig @@ -1,5 +1,5 @@ config USB_EMXX - bool "EMXX USB Function Device Controller" + tristate "EMXX USB Function Device Controller" depends on USB_GADGET && (ARCH_SHMOBILE || (ARM && COMPILE_TEST)) help The Emma Mobile series of SoCs from Renesas Electronics and diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index 3bd9175..ac13e43 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -14,6 +14,7 @@ * GNU General Public License for more details. */
+#include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/platform_device.h> @@ -3355,4 +3356,5 @@ static struct platform_driver udc_driver = { }, };
-builtin_platform_driver(udc_driver); +module_platform_driver(udc_driver); +MODULE_LICENSE("GPL");
On Wed, Jul 06, 2016 at 10:31:56AM +0800, Peter Chen wrote:
On Tue, Jul 05, 2016 at 11:52:42AM +0200, Mark Brown wrote:
On Tue, Jul 05, 2016 at 10:15:03AM +0100, Build bot for Mark Brown wrote:
For the past little while both arm and arm64 allmodconfig builds have been failing with:
drivers/built-in.o: In function `nbu2ss_drv_probe': binder.c:(.text+0x29438c): undefined reference to `usb_ep_set_maxpacket_limit' binder.c:(.text+0x294468): undefined reference to `usb_ep_set_maxpacket_limit'
That function is a static inline in linux/usb/gadget.h which does seem to be included (the driver builds fine) so I'm not entirely sure why this is failing - I've not had time to investigate properly, I don't know if the compiler is misfiring here.
The reason for that is: USB_GADGET is m, but USB_EMXX can be 'y' due to it is boolean although it depends on USB_GADGET. Commit 5a8d651a2 "usb: gadget: move gadget API functions to udc-core" moves gadget APIs definitions from .h to .c causes this build error, but this change is worthwhile. The udc driver (emxx) should can be built as module too. Below patch should fix it:
Oh, I see Arnd has already fixed it, so omit this patch please.
linaro-kernel@lists.linaro.org