[PATCH 4/6] irqchip/apple-aic: Dynamically compute register offsets
Hector Martin
marcan at marcan.st
Fri Dec 17 21:37:40 PST 2021
On 13/12/2021 03.26, Marc Zyngier wrote:
> On Thu, 09 Dec 2021 04:32:47 +0000,
> Hector Martin <marcan at marcan.st> wrote:
>>
>> This allows us to support AIC variants with different numbers of IRQs
>> based on capability registers.
>>
>> Signed-off-by: Hector Martin <marcan at marcan.st>
>> ---
>> drivers/irqchip/irq-apple-aic.c | 73 +++++++++++++++++++++++++--------
>> 1 file changed, 56 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/irqchip/irq-apple-aic.c b/drivers/irqchip/irq-apple-aic.c
>> index 572d1af175fc..d03caed51d56 100644
>> --- a/drivers/irqchip/irq-apple-aic.c
>> +++ b/drivers/irqchip/irq-apple-aic.c
>> @@ -312,12 +326,15 @@ static int aic_irq_set_affinity(struct irq_data *d,
>> struct aic_irq_chip *ic = irq_data_get_irq_chip_data(d);
>> int cpu;
>>
>> + if (!ic->info.target_cpu)
>> + return -EINVAL;
>
> Can this even happen? And if it did, this should scream loudly,
> shouldn't it?
Yeah, it can't happen, so this really should be a BUG_ON. This is mostly
there in case somehow we end up with confusion between AIC versions and
register offsets later, since AIC2 does not use this field but also
shouldn't be setting up an irqchip that calls this function.
--
Hector Martin (marcan at marcan.st)
Public Key: https://mrcn.st/pub
More information about the linux-arm-kernel
mailing list