Re: [-next Sept 13] s390 build break [nclude/linux/interrupt.h:local_softirq_pending()]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux