Re: [PATCH v6 04/10] genirq: Introduce common irq_force_complete_move() implementation
From: Frank Scheiner
Date: Thu Apr 03 2025 - 13:49:57 EST
On 03.04.25 17:03, Thomas Gleixner wrote:
> On Thu, Apr 03 2025 at 15:13, Frank Scheiner wrote:
>> this change, specfically the introduction of irq_force_complete_move()
>> to `kernel/irq/migration.c`, strangely breaks our builds for the hp-sim
>> platform (i.e. Linux/ia64 for Ski):
>
> arch/itanic has hit the iceberg and sank with the release of v6.7...
Ha, ha, not in our waters. :-) Still I'm glad I could help finding
errors in Linux by building for ia64.
>> So I guess, either the requirement in `linux/include/linux/irq.h` needs
>> to go, or the use of "d->parent_data" or the whole of
>> irq_force_complete_move() and its use needs to be guarded as well.
>
> Guessing is not a really good approach to solve a technical problem :)
Thanks for the advice, though guessing was not involved here. It's just
a way to say that I'm not sure what the right solution might be in this
case. And then I'd rather leave such fixes to the experts in the
specific field.
> ---
> --- a/kernel/irq/migration.c
> +++ b/kernel/irq/migration.c
> @@ -37,7 +37,7 @@ bool irq_fixup_move_pending(struct irq_d
>
> void irq_force_complete_move(struct irq_desc *desc)
> {
> - for (struct irq_data *d = irq_desc_get_irq_data(desc); d; d = d->parent_data) {
> + for (struct irq_data *d = irq_desc_get_irq_data(desc); d; d = irqd_get_parent_data(d)) {
> if (d->chip && d->chip->irq_force_complete_move) {
> d->chip->irq_force_complete_move(d);
> return;
>
This fxes the build for me for that file. Much obliged.
```
CC kernel/irq/migration.o
```
Cheers,
Frank