From 711783720e9f231cda62ef1f988f4cf1f8adabdb Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Wed, 1 Aug 2007 20:47:00 -0700 Subject: [PATCH] --- yaml --- r: 63539 b: refs/heads/master c: b5625481832ef1ab1a8e31fac0b1d14acdbbc148 h: refs/heads/master i: 63537: 8c6ce9a3389b931f19a10ab4b895ebb4cdededeb 63535: e9dbcdf25d236f735b950797cf75c2f95d0787bc v: v3 --- [refs] | 2 +- trunk/include/asm-avr32/bug.h | 2 +- trunk/include/asm-parisc/bug.h | 2 +- trunk/include/asm-s390/bug.h | 2 +- trunk/include/asm-sh/bug.h | 2 +- trunk/kernel/irq/resend.c | 9 +++++++++ 6 files changed, 14 insertions(+), 5 deletions(-) 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;