diff --git a/[refs] b/[refs] index 82dc4ac393dd..9265cc2dc45c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4761c06cb39011c9cc3fef9e6bbfb4c50ceb307d +refs/heads/master: b5625481832ef1ab1a8e31fac0b1d14acdbbc148 diff --git a/trunk/include/asm-avr32/bug.h b/trunk/include/asm-avr32/bug.h index afdcd79a2966..331d45bab18f 100644 --- a/trunk/include/asm-avr32/bug.h +++ b/trunk/include/asm-avr32/bug.h @@ -57,7 +57,7 @@ #define WARN_ON(condition) \ ({ \ - typeof(condition) __ret_warn_on = (condition); \ + int __ret_warn_on = !!(condition); \ if (unlikely(__ret_warn_on)) \ _BUG_OR_WARN(BUGFLAG_WARNING); \ unlikely(__ret_warn_on); \ diff --git a/trunk/include/asm-parisc/bug.h b/trunk/include/asm-parisc/bug.h index 83ba510ed5d8..8cfc553fc837 100644 --- a/trunk/include/asm-parisc/bug.h +++ b/trunk/include/asm-parisc/bug.h @@ -74,7 +74,7 @@ #define WARN_ON(x) ({ \ - typeof(x) __ret_warn_on = (x); \ + int __ret_warn_on = !!(x); \ if (__builtin_constant_p(__ret_warn_on)) { \ if (__ret_warn_on) \ __WARN(); \ diff --git a/trunk/include/asm-s390/bug.h b/trunk/include/asm-s390/bug.h index 838684dc6d35..384e3621e341 100644 --- a/trunk/include/asm-s390/bug.h +++ b/trunk/include/asm-s390/bug.h @@ -50,7 +50,7 @@ #define BUG() __EMIT_BUG(0) #define WARN_ON(x) ({ \ - typeof(x) __ret_warn_on = (x); \ + int __ret_warn_on = !!(x); \ if (__builtin_constant_p(__ret_warn_on)) { \ if (__ret_warn_on) \ __EMIT_BUG(BUGFLAG_WARNING); \ diff --git a/trunk/include/asm-sh/bug.h b/trunk/include/asm-sh/bug.h index 46f925c815ac..a78d482e8b2f 100644 --- a/trunk/include/asm-sh/bug.h +++ b/trunk/include/asm-sh/bug.h @@ -61,7 +61,7 @@ do { \ } while (0) #define WARN_ON(x) ({ \ - typeof(x) __ret_warn_on = (x); \ + int __ret_warn_on = !!(x); \ if (__builtin_constant_p(__ret_warn_on)) { \ if (__ret_warn_on) \ __WARN(); \ diff --git a/trunk/kernel/irq/resend.c b/trunk/kernel/irq/resend.c index 5bfeaed7e487..c38272746887 100644 --- a/trunk/kernel/irq/resend.c +++ b/trunk/kernel/irq/resend.c @@ -62,6 +62,15 @@ void check_irq_resend(struct irq_desc *desc, unsigned int irq) */ desc->chip->enable(irq); + /* + * Temporary hack to figure out more about the problem, which + * is causing the ancient network cards to die. + */ + if (desc->handle_irq != handle_edge_irq) { + WARN_ON_ONCE(1); + return; + } + if ((status & (IRQ_PENDING | IRQ_REPLAY)) == IRQ_PENDING) { desc->status = (status & ~IRQ_PENDING) | IRQ_REPLAY;