Re: [PATCH] m68k/q40: Revert "m68k/q40: Fix q40_irq_startup() to return -ENXIO on failures"

Sasha Levin
2014-07-26T15:34:36Z

On 07/26/2014 11:21 AM, Geert Uytterhoeven wrote:
> I applied Nick's cleanup (which is not yet in mainline, just in the m68k repo)
> because I thought Nick was right (in this particular case ;-), cfr. my
> reasoning in www.spinics.net/lists/kernel/msg1774736.html
>
> W.r.t. the signess, I didn't see the compiler warning, as the version of gcc
> I'm using didn't print that warning. However, irq_startup() converts the
> value returned by .irq_startup() from unsigned to signed.
> I assume this is just a missing conversion when the genirq framework
> itself was introduced (m68k was converted quite late)?
>
> W.r.t. the actual value, any non-zero value is treated the same.
> I can change it to 1, if that makes you feel better. If returning a non-zero
> value here is wrong, presumable the code has been wrong since it
> incarnation.
>
> As we're close to the opening of the merge window, it would be nice
> if we could conclude on this ;-)

>From my standpoint there are two issues here:

1. The whole signed/unsigned mishmash here. Pretty much any solution
besides implicitly converting a signed value into an unsigned one
which then gets treated as something else entirely should be acceptable
here.

2. Beyond semantics, the original patch also changed the behaviour of
the code. What previously was a soft printk() is now a hard error.
Does it break any systems? Cornercases? I dunno, but I can assure you
that this wasn't tested at all.

To sum it up, a solution would be welcome. The patch you currently have
in the m68k repo isn't a solution.

Thanks,
Sasha