diff mbox

[0/2] irqchip/gic*: Complain about the use of IRQ_TYPE_NONE

Message ID 5f274a06-3a9c-7d41-2e4d-9733e4ac6078@arm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Robin Murphy March 16, 2018, 4:19 p.m. UTC
On 16/03/18 14:55, Marc Zyngier wrote:
> Grepping through the dts files, the documentation, and reviewing
> patches, one can only notice the use of IRQ_TYPE_NONE in interrupt
> specifiers. At least for the GIC, this doesn't mean anything. The
> unsuspecting driver will end-up with whatever was there before, and
> there is a 50% probability that it is not what it wants.
> 
> I'd love to fix it myself, but I also have a 50% probability of
> getting it wrong. In order to make the user aware they are walking on
> thin ice, let's add some warnings. Hopefully, they'll be annoying
> enough that people will fix their firmware. Croudsourcing debugging...

I guess there's also the alternative nuclear option of breaking their 
build ;)

Robin.

----->8-----

Comments

Marc Zyngier March 16, 2018, 4:39 p.m. UTC | #1
On 16/03/18 16:19, Robin Murphy wrote:
> On 16/03/18 14:55, Marc Zyngier wrote:
>> Grepping through the dts files, the documentation, and reviewing
>> patches, one can only notice the use of IRQ_TYPE_NONE in interrupt
>> specifiers. At least for the GIC, this doesn't mean anything. The
>> unsuspecting driver will end-up with whatever was there before, and
>> there is a 50% probability that it is not what it wants.
>>
>> I'd love to fix it myself, but I also have a 50% probability of
>> getting it wrong. In order to make the user aware they are walking on
>> thin ice, let's add some warnings. Hopefully, they'll be annoying
>> enough that people will fix their firmware. Croudsourcing debugging...
> 
> I guess there's also the alternative nuclear option of breaking their 
> build ;)
> 
> Robin.
> 
> ----->8-----
> diff --git a/include/dt-bindings/interrupt-controller/irq.h 
> b/include/dt-bindings/interrupt-controller/irq.h
> index a8b310555f14..de79af80d01e 100644
> --- a/include/dt-bindings/interrupt-controller/irq.h
> +++ b/include/dt-bindings/interrupt-controller/irq.h
> @@ -10,7 +10,7 @@
>   #ifndef _DT_BINDINGS_INTERRUPT_CONTROLLER_IRQ_H
>   #define _DT_BINDINGS_INTERRUPT_CONTROLLER_IRQ_H
> 
> -#define IRQ_TYPE_NONE		0
> +#define IRQ_TYPE_NONE		"This is nonsense and needs fixing"
>   #define IRQ_TYPE_EDGE_RISING	1
>   #define IRQ_TYPE_EDGE_FALLING	2
>   #define IRQ_TYPE_EDGE_BOTH	(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)
> 

What really annoys me with this patch is that you haven't put a SoB on it...

	M.
Robin Murphy March 16, 2018, 4:46 p.m. UTC | #2
On 16/03/18 16:39, Marc Zyngier wrote:
> On 16/03/18 16:19, Robin Murphy wrote:
>> On 16/03/18 14:55, Marc Zyngier wrote:
>>> Grepping through the dts files, the documentation, and reviewing
>>> patches, one can only notice the use of IRQ_TYPE_NONE in interrupt
>>> specifiers. At least for the GIC, this doesn't mean anything. The
>>> unsuspecting driver will end-up with whatever was there before, and
>>> there is a 50% probability that it is not what it wants.
>>>
>>> I'd love to fix it myself, but I also have a 50% probability of
>>> getting it wrong. In order to make the user aware they are walking on
>>> thin ice, let's add some warnings. Hopefully, they'll be annoying
>>> enough that people will fix their firmware. Croudsourcing debugging...
>>
>> I guess there's also the alternative nuclear option of breaking their
>> build ;)
>>
>> Robin.
>>
>> ----->8-----
>> diff --git a/include/dt-bindings/interrupt-controller/irq.h
>> b/include/dt-bindings/interrupt-controller/irq.h
>> index a8b310555f14..de79af80d01e 100644
>> --- a/include/dt-bindings/interrupt-controller/irq.h
>> +++ b/include/dt-bindings/interrupt-controller/irq.h
>> @@ -10,7 +10,7 @@
>>    #ifndef _DT_BINDINGS_INTERRUPT_CONTROLLER_IRQ_H
>>    #define _DT_BINDINGS_INTERRUPT_CONTROLLER_IRQ_H
>>
>> -#define IRQ_TYPE_NONE		0
>> +#define IRQ_TYPE_NONE		"This is nonsense and needs fixing"
>>    #define IRQ_TYPE_EDGE_RISING	1
>>    #define IRQ_TYPE_EDGE_FALLING	2
>>    #define IRQ_TYPE_EDGE_BOTH	(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)
>>
> 
> What really annoys me with this patch is that you haven't put a SoB on it...

On a more serious note, though, it dawns on me that this might be 
something DTC could realistically scream about for us, although I guess 
not all irqchip bindings include a type specifier so it would probably 
need to special-case known ones.

Robin.
diff mbox

Patch

diff --git a/include/dt-bindings/interrupt-controller/irq.h 
b/include/dt-bindings/interrupt-controller/irq.h
index a8b310555f14..de79af80d01e 100644
--- a/include/dt-bindings/interrupt-controller/irq.h
+++ b/include/dt-bindings/interrupt-controller/irq.h
@@ -10,7 +10,7 @@ 
  #ifndef _DT_BINDINGS_INTERRUPT_CONTROLLER_IRQ_H
  #define _DT_BINDINGS_INTERRUPT_CONTROLLER_IRQ_H

-#define IRQ_TYPE_NONE		0
+#define IRQ_TYPE_NONE		"This is nonsense and needs fixing"
  #define IRQ_TYPE_EDGE_RISING	1
  #define IRQ_TYPE_EDGE_FALLING	2
  #define IRQ_TYPE_EDGE_BOTH	(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)