* [-next Sept 13] s390 build break [nclude/linux/interrupt.h:local_softirq_pending()]
@ 2010-09-13 11:02 Sachin Sant
2010-09-13 15:42 ` Heiko Carstens
2010-09-13 22:05 ` Tony Luck
0 siblings, 2 replies; 3+ messages in thread
From: Sachin Sant @ 2010-09-13 11:02 UTC (permalink / raw)
To: linux-s390, linux-next; +Cc: Heiko Carstens, laijs, linux-kernel
Today's next build failed on a s390 box with following
In file included from /tmp/build/linux/arch/s390/include/asm/hardirq.h:18,
from include/linux/hardirq.h:10,
from include/linux/pagemap.h:15,
from include/linux/blkdev.h:12,
from init/do_mounts.h:2,
from init/do_mounts_initrd.c:11:
include/linux/interrupt.h: In function '__raise_softirq_irqoff':
include/linux/interrupt.h:429: error: implicit declaration of function 'local_softirq_pending'
include/linux/interrupt.h:429: error: lvalue required as left operand of assignment
In file included from /tmp/build/linux/arch/s390/include/asm/hardirq.h:18,
from include/linux/hardirq.h:10,
from include/linux/ftrace_event.h:7,
from include/trace/syscall.h:6,
from include/linux/syscalls.h:76,
from init/initramfs.c:9:
include/linux/interrupt.h: In function '__raise_softirq_irqoff':
include/linux/interrupt.h:429: error: implicit declaration of function 'local_softirq_pending'
include/linux/interrupt.h:429: error: lvalue required as left operand of assignment
make[1]: *** [init/do_mounts_initrd.o] Error 1
and many more similar errors ..
The following commit added the code in question.
commit 2bf2160d8805de64308e2e7c3cd97813cb58ed2f
irq: Add tracepoint to softirq_raise
Thanks
-Sachin
--
---------------------------------
Sachin Sant
IBM Linux Technology Center
India Systems and Technology Labs
Bangalore, India
---------------------------------
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [-next Sept 13] s390 build break [nclude/linux/interrupt.h:local_softirq_pending()]
2010-09-13 11:02 [-next Sept 13] s390 build break [nclude/linux/interrupt.h:local_softirq_pending()] Sachin Sant
@ 2010-09-13 15:42 ` Heiko Carstens
2010-09-13 22:05 ` Tony Luck
1 sibling, 0 replies; 3+ messages in thread
From: Heiko Carstens @ 2010-09-13 15:42 UTC (permalink / raw)
To: Sachin Sant; +Cc: linux-s390, linux-next, laijs, linux-kernel
On Mon, Sep 13, 2010 at 04:32:28PM +0530, Sachin Sant wrote:
> Today's next build failed on a s390 box with following
>
> In file included from /tmp/build/linux/arch/s390/include/asm/hardirq.h:18,
> from include/linux/hardirq.h:10,
> from include/linux/pagemap.h:15,
> from include/linux/blkdev.h:12,
> from init/do_mounts.h:2,
> from init/do_mounts_initrd.c:11:
> include/linux/interrupt.h: In function '__raise_softirq_irqoff':
> include/linux/interrupt.h:429: error: implicit declaration of function 'local_softirq_pending'
> include/linux/interrupt.h:429: error: lvalue required as left operand of assignment
> In file included from /tmp/build/linux/arch/s390/include/asm/hardirq.h:18,
> from include/linux/hardirq.h:10,
> from include/linux/ftrace_event.h:7,
> from include/trace/syscall.h:6,
> from include/linux/syscalls.h:76,
> from init/initramfs.c:9:
> include/linux/interrupt.h: In function '__raise_softirq_irqoff':
> include/linux/interrupt.h:429: error: implicit declaration of function 'local_softirq_pending'
> include/linux/interrupt.h:429: error: lvalue required as left operand of assignment
> make[1]: *** [init/do_mounts_initrd.o] Error 1
>
> and many more similar errors ..
>
> The following commit added the code in question.
>
> commit 2bf2160d8805de64308e2e7c3cd97813cb58ed2f
> irq: Add tracepoint to softirq_raise
Yes, header include dependencies suck here. But it's easy to fix since most
of the includes in s390's hardirq.h aren't necessary:
diff --git a/arch/s390/include/asm/hardirq.h b/arch/s390/include/asm/hardirq.h
index 498bc38..881d945 100644
--- a/arch/s390/include/asm/hardirq.h
+++ b/arch/s390/include/asm/hardirq.h
@@ -12,10 +12,6 @@
#ifndef __ASM_HARDIRQ_H
#define __ASM_HARDIRQ_H
-#include <linux/threads.h>
-#include <linux/sched.h>
-#include <linux/cache.h>
-#include <linux/interrupt.h>
#include <asm/lowcore.h>
#define local_softirq_pending() (S390_lowcore.softirq_pending)
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [-next Sept 13] s390 build break [nclude/linux/interrupt.h:local_softirq_pending()]
2010-09-13 11:02 [-next Sept 13] s390 build break [nclude/linux/interrupt.h:local_softirq_pending()] Sachin Sant
2010-09-13 15:42 ` Heiko Carstens
@ 2010-09-13 22:05 ` Tony Luck
1 sibling, 0 replies; 3+ messages in thread
From: Tony Luck @ 2010-09-13 22:05 UTC (permalink / raw)
To: Sachin Sant; +Cc: linux-s390, linux-next, Heiko Carstens, laijs, linux-kernel
On Mon, Sep 13, 2010 at 4:02 AM, Sachin Sant <sachinp@in.ibm.com> wrote:
> Today's next build failed on a s390 box with following
> include/linux/interrupt.h: In function '__raise_softirq_irqoff':
> include/linux/interrupt.h:429: error: implicit declaration of function
> 'local_softirq_pending'
> include/linux/interrupt.h:429: error: lvalue required as left operand of
> assignment
> In file included from /tmp/build/linux/arch/s390/include/asm/hardirq.h:18,
Same problem on ia64. The problem seem to be the conversion of
__raise_softirq_irqoff() from #define macro to static function. This means
the compiler looks more closely at the:
or_softirq_pending(1UL << nr);
line ... which expands to
(local_softirq_pending() |= (1UL << nr);
on every architecture where __ARCH_SET_SOFTIRQ_PENDING is not
set (everything except x86). It seems that s390 and ia64 don't have an
in scope #define for local_softirq_pending() at this point, hence the "lvalue
required" error message.
I think we need <asm/hardirq.h> to provide this ... but the dependencies here
are a bit messy.
-Tony
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-09-13 22:05 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-13 11:02 [-next Sept 13] s390 build break [nclude/linux/interrupt.h:local_softirq_pending()] Sachin Sant
2010-09-13 15:42 ` Heiko Carstens
2010-09-13 22:05 ` Tony Luck
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.