Re: [PATCH] genirq: Refactor the irq_chip_xxx_parent()

From: Thomas Gleixner
Date: Tue May 14 2024 - 13:24:07 EST


On Tue, May 14 2024 at 21:19, Jinjie Ruan wrote:
> +static inline void irq_chip_do_common_parent(void (*chip_action)(struct irq_data *),
> + struct irq_data *data)
> +{
> + data = data->parent_data;
> + chip_action(data);
> +}

> void irq_chip_eoi_parent(struct irq_data *data)
> {
> - data = data->parent_data;
> - data->chip->irq_eoi(data);
> + irq_chip_do_common_parent(data->chip->irq_eoi, data);
> }
> EXPORT_SYMBOL_GPL(irq_chip_eoi_parent);

How is this equivalent?

The original code does:

data = data->parent_data;
data->chip->irq_eoi(data);

which is equivalent to:

data->parent_data->chip->irq_eoi(data->parent_data);

while your change resolves to:

data->chip->irq_eoi(data->parent_data);

Seriously?

I'm starting to get tired of your flood of half baken 'cleanup' patches.

Thanks,

tglx