All of lore.kernel.org
 help / color / mirror / Atom feed
* [-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.