Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

irqchip/irq-mvebu-icu: Fix works by chance pointer assignment

Assigning a void pointer which points to a struct to two different data
types only works by chance if the second type is the first member of the
struct.

Replace this works by chance code by using the primary struct pointer.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221121140048.344525618@linutronix.de

+2 -2
+2 -2
drivers/irqchip/irq-mvebu-icu.c
··· 151 151 mvebu_icu_irq_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, 152 152 unsigned long *hwirq, unsigned int *type) 153 153 { 154 - struct mvebu_icu_msi_data *msi_data = platform_msi_get_host_data(d); 155 - struct mvebu_icu *icu = platform_msi_get_host_data(d); 156 154 unsigned int param_count = static_branch_unlikely(&legacy_bindings) ? 3 : 2; 155 + struct mvebu_icu_msi_data *msi_data = platform_msi_get_host_data(d); 156 + struct mvebu_icu *icu = msi_data->icu; 157 157 158 158 /* Check the count of the parameters in dt */ 159 159 if (WARN_ON(fwspec->param_count != param_count)) {