aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/lib/mpi/mpiutil.c
diff options
context:
space:
mode:
authorMarc Zyngier <maz@kernel.org>2022-02-11 09:39:04 +0000
committerLinus Walleij <linus.walleij@linaro.org>2022-02-19 01:51:24 +0100
commitd1e972ace42390de739cde87d96043dcbe502286 (patch)
tree6bba3806a20795b111bd89ee4481a75301af0ece /lib/mpi/mpiutil.c
parentpinctrl: starfive: Use a static name for the GPIO irq_chip (diff)
downloadwireguard-linux-d1e972ace42390de739cde87d96043dcbe502286.tar.xz
wireguard-linux-d1e972ace42390de739cde87d96043dcbe502286.zip
gpio: tegra186: Fix chip_data type confusion
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@kernel.org> Cc: Thierry Reding <treding@nvidia.com> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com> Link: https://lore.kernel.org/r/20220211093904.1112679-1-maz@kernel.org Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'lib/mpi/mpiutil.c')
0 files changed, 0 insertions, 0 deletions