On Mon, Sep 13, 2010 at 4:02 AM, Sachin Sant <sachinp@xxxxxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html