Tree/Branch: next-20160210 Git describe: next-20160210 Commit: b613c2bfa3 Add linux-next specific files for 20160210
Build Time: 73 min 31 sec
Passed: 7 / 9 ( 77.78 %) Failed: 2 / 9 ( 22.22 %)
Errors: 2 Warnings: 4 Section Mismatches: 1
Failed defconfigs: arm64-allmodconfig arm-multi_v5_defconfig
Errors:
arm64-allmodconfig ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN' ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN' ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN' ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN' ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN'
arm-multi_v5_defconfig ../drivers/cpufreq/cpufreq_governor.c:251:3: error: implicit declaration of function 'irq_work_queue_on' [-Werror=implicit-function-declaration]
------------------------------------------------------------------------------- defconfigs with issues (other than build errors): 0 warnings 1 mismatches : arm64-allmodconfig 4 warnings 0 mismatches : arm-allmodconfig
-------------------------------------------------------------------------------
Errors summary: 2 5 ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN' 1 ../drivers/cpufreq/cpufreq_governor.c:251:3: error: implicit declaration of function 'irq_work_queue_on' [-Werror=implicit-function-declaration]
Warnings Summary: 4 1 ../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1472 bytes is larger than 1024 bytes [-Wframe-larger-than=] 1 ../drivers/ntb/test/ntb_perf.c:214:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1 ../drivers/ntb/test/ntb_perf.c:213:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1 ../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=]
Section Mismatch Summary: 1 1 WARNING: drivers/staging/fsl-mc/bus/mc-bus-driver.o(.init.text+0x198): Section mismatch in reference from the function init_module() to the function .exit.text:fsl_mc_allocator_driver_exit()
=============================================================================== Detailed per-defconfig build reports below:
------------------------------------------------------------------------------- arm64-allmodconfig : FAIL, 5 errors, 0 warnings, 1 section mismatches
Errors: ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN' ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN' ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN' ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN' ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN'
Section Mismatches: WARNING: drivers/staging/fsl-mc/bus/mc-bus-driver.o(.init.text+0x198): Section mismatch in reference from the function init_module() to the function .exit.text:fsl_mc_allocator_driver_exit()
------------------------------------------------------------------------------- arm-allmodconfig : PASS, 0 errors, 4 warnings, 0 section mismatches
Warnings: ../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1472 bytes is larger than 1024 bytes [-Wframe-larger-than=] ../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=] ../drivers/ntb/test/ntb_perf.c:213:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] ../drivers/ntb/test/ntb_perf.c:214:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
------------------------------------------------------------------------------- arm-multi_v5_defconfig : FAIL, 1 errors, 0 warnings, 0 section mismatches
Errors: ../drivers/cpufreq/cpufreq_governor.c:251:3: error: implicit declaration of function 'irq_work_queue_on' [-Werror=implicit-function-declaration] -------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
arm64-allnoconfig arm-multi_v7_defconfig x86_64-defconfig arm-allnoconfig x86_64-allnoconfig arm64-defconfig
On Wed, Feb 10, 2016 at 09:12:25AM +0000, Build bot for Mark Brown wrote:
Today's -next fails to build on non-SMP configurations due to:
arm-multi_v5_defconfig ../drivers/cpufreq/cpufreq_governor.c:251:3: error: implicit declaration of function 'irq_work_queue_on' [-Werror=implicit-function-declaration]
caused by 0144fa03ef4606ae (cpufreq: governor: Replace timers with utilization update callbacks). IS_ENABLED() in an if statement doesn't do a good job of making things conditional here since the code still has to compile cleanly in both cases and there is no definition at all of irq_work_queue_on() for !SMP.
On Wed, Feb 10, 2016 at 10:52 AM, Mark Brown broonie@kernel.org wrote:
On Wed, Feb 10, 2016 at 09:12:25AM +0000, Build bot for Mark Brown wrote:
Today's -next fails to build on non-SMP configurations due to:
arm-multi_v5_defconfig
../drivers/cpufreq/cpufreq_governor.c:251:3: error: implicit declaration of function 'irq_work_queue_on' [-Werror=implicit-function-declaration]
caused by 0144fa03ef4606ae (cpufreq: governor: Replace timers with utilization update callbacks). IS_ENABLED() in an if statement doesn't do a good job of making things conditional here since the code still has to compile cleanly in both cases and there is no definition at all of irq_work_queue_on() for !SMP.
Thanks for the report!
OK, I'll change it to #ifdef/#else then.
Thanks, Rafael
On Wednesday 10 February 2016 15:27:48 Rafael J. Wysocki wrote:
On Wed, Feb 10, 2016 at 10:52 AM, Mark Brown broonie@kernel.org wrote:
On Wed, Feb 10, 2016 at 09:12:25AM +0000, Build bot for Mark Brown wrote:
Today's -next fails to build on non-SMP configurations due to:
arm-multi_v5_defconfig
../drivers/cpufreq/cpufreq_governor.c:251:3: error: implicit declaration of function 'irq_work_queue_on' [-Werror=implicit-function-declaration]
caused by 0144fa03ef4606ae (cpufreq: governor: Replace timers with utilization update callbacks). IS_ENABLED() in an if statement doesn't do a good job of making things conditional here since the code still has to compile cleanly in both cases and there is no definition at all of irq_work_queue_on() for !SMP.
Thanks for the report!
OK, I'll change it to #ifdef/#else then.
I have a better idea, patch follows.
Arnd
The cpufreq code uses 'if (IS_ENABLED(CONFIG_SMP))' to check whether it should queue a task on the local CPU or a remote one, however the irq_work_queue_on() function is not declared when CONFIG_SMP is not set:
drivers/cpufreq/cpufreq_governor.c: In function 'gov_queue_irq_work': drivers/cpufreq/cpufreq_governor.c:251:3: error: implicit declaration of function 'irq_work_queue_on' [-Werror=implicit-function-declaration] irq_work_queue_on(&policy_dbs->irq_work, smp_processor_id());
This changes the conditional declaration so that irq_work_queue_on just queues the irq work on the only available CPU when CONFIG_SMP is not set, which is presumably what most people need anyway.
Signed-off-by: Arnd Bergmann arnd@arndb.de Fixes: 0144fa03ef46 ("cpufreq: governor: Replace timers with utilization update callbacks")
diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h index 47b9ebd4a74f..c9bde50ef317 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h @@ -33,9 +33,13 @@ void init_irq_work(struct irq_work *work, void (*func)(struct irq_work *)) #define DEFINE_IRQ_WORK(name, _f) struct irq_work name = { .func = (_f), }
bool irq_work_queue(struct irq_work *work); - #ifdef CONFIG_SMP bool irq_work_queue_on(struct irq_work *work, int cpu); +#else +static inline bool irq_work_queue_on(struct irq_work *work, int cpu) +{ + return irq_work_queue(work); +} #endif
void irq_work_tick(void);
On Wed, Feb 10, 2016 at 4:07 PM, Arnd Bergmann arnd@arndb.de wrote:
The cpufreq code uses 'if (IS_ENABLED(CONFIG_SMP))' to check whether it should queue a task on the local CPU or a remote one, however the irq_work_queue_on() function is not declared when CONFIG_SMP is not set:
drivers/cpufreq/cpufreq_governor.c: In function 'gov_queue_irq_work': drivers/cpufreq/cpufreq_governor.c:251:3: error: implicit declaration of function 'irq_work_queue_on' [-Werror=implicit-function-declaration] irq_work_queue_on(&policy_dbs->irq_work, smp_processor_id());
This changes the conditional declaration so that irq_work_queue_on just queues the irq work on the only available CPU when CONFIG_SMP is not set, which is presumably what most people need anyway.
Signed-off-by: Arnd Bergmann arnd@arndb.de Fixes: 0144fa03ef46 ("cpufreq: governor: Replace timers with utilization update callbacks")
diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h index 47b9ebd4a74f..c9bde50ef317 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h @@ -33,9 +33,13 @@ void init_irq_work(struct irq_work *work, void (*func)(struct irq_work *)) #define DEFINE_IRQ_WORK(name, _f) struct irq_work name = { .func = (_f), }
bool irq_work_queue(struct irq_work *work);
#ifdef CONFIG_SMP bool irq_work_queue_on(struct irq_work *work, int cpu); +#else +static inline bool irq_work_queue_on(struct irq_work *work, int cpu) +{
return irq_work_queue(work);
+} #endif
void irq_work_tick(void);
I was thinking about this too, but then cpufreq will be the only user of it.
In any case can do it at any time later. :-)
Thanks, Rafael
On Wed, Feb 10, 2016 at 04:27:42PM +0100, Rafael J. Wysocki wrote:
+#else +static inline bool irq_work_queue_on(struct irq_work *work, int cpu) +{
return irq_work_queue(work);
+} #endif
I was thinking about this too, but then cpufreq will be the only user of it.
In any case can do it at any time later. :-)
Well, there's currently only two other users of irq_work_queue_on() anyway so that's a third of the userbase and it does seem the obvious way to support any other future users that want to scale down to !SMP cases painlessly.
Reviwed-by: Mark Brown broonie@kernel.org
FWIW.
On Wed, Feb 10, 2016 at 09:12:25AM +0000, Build bot for Mark Brown wrote:
Today's -next fails to build an arm64 allmodconfig due to:
arm64-allmodconfig ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN'
due to 52e662326e1e915 (arm64: prefetch: don't provide spin_lock_prefetch with LSE) which adds use of ARM64_LSE_ATOMIC_INSN but does not add an inclusion of asm/lse.h which defines it. Most files have an implicit include so build fine but a few don't which causes the failure. It does add an inclusion of asm/alternative.h which may be the best place to add the inclusion.
On Wed, Feb 10, 2016 at 10:08:37AM +0000, Mark Brown wrote:
On Wed, Feb 10, 2016 at 09:12:25AM +0000, Build bot for Mark Brown wrote:
Today's -next fails to build an arm64 allmodconfig due to:
arm64-allmodconfig ../arch/arm64/include/asm/processor.h:183:15: error: expected string literal before 'ARM64_LSE_ATOMIC_INSN'
due to 52e662326e1e915 (arm64: prefetch: don't provide spin_lock_prefetch with LSE) which adds use of ARM64_LSE_ATOMIC_INSN but does not add an inclusion of asm/lse.h which defines it. Most files have an implicit include so build fine but a few don't which causes the failure. It does add an inclusion of asm/alternative.h which may be the best place to add the inclusion.
I just sent a fix to the list.
Will
kernel-build-reports@lists.linaro.org