On Fri, Feb 11, 2022 at 10:39 AM Marc Zyngier <maz@xxxxxxxxxx> wrote: > The tegra186 GPIO driver makes the assumption that the pointer > returned by irq_data_get_irq_chip_data() is a pointer to a > tegra_gpio structure. Unfortunately, it is actually a pointer > to the inner gpio_chip structure, as mandated by the gpiolib > infrastructure. Nice try. > > The saving grace is that the gpio_chip is the first member of > tegra_gpio, so the bug has gone undetected since... forever. > > Fix it by performing a container_of() on the pointer. This results > in no additional code, and makes it possible to understand how > the whole thing works. > > Fixes: 5b2b135a87fc ("gpio: Add Tegra186 support") > Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx> > Cc: Thierry Reding <treding@xxxxxxxxxx> > Cc: Linus Walleij <linus.walleij@xxxxxxxxxx> > Cc: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> Patch applied for fixes. Yours, Linus Walleij