[PATCH 2/2] powerpc/powernv/opal-dump : Use IRQ_HANDLED instead of numbers in interrupt handler
Jeremy Kerr
jk at ozlabs.org
Mon Feb 27 11:16:28 AEDT 2017
Hi Mukesh,
>> Unless I'm mistaken, there are two things I can see happening with the
>> old code: if we hit the IRQ_NONE path enough, we'll report a "nobody
>> cared" error (see __report_bad_irq) and disable the interrupt, or for
>> the -1 case, we'll immediately log a "bogus return value" error (and, it
>> looks like a "no thread function available" error too, from
>> warn_no_thread).
>
> bogus return value" error will not come as
>
> action_ret <= (IRQ_HANDLED | IRQ_WAKE_THREAD)
> i.e
> 0/-1 <= 3 (true)
Well, no. irqreturn_t is an enum, and is being treated as an unsigned
value (the signed/unsigned behaviour of an enum is
implementation-defined), and:
0xffffffff > 3
so we will *probably* see the bogus return value warning here (based on
some brief experimentation with gcc), but that does depend on the
compiler.
I've submitted a patch to make that comparison more obvious and
explicit:
https://marc.info/?l=linux-kernel&m=148721917302673
Cheers,
Jeremy
More information about the Linuxppc-dev
mailing list