diff options
author | Colin Pitrat <colin.pitrat@gmail.com> | 2016-06-18 20:05:04 +0200 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2016-07-04 16:50:40 +0200 |
commit | 87041a58d3b19455d39baed2a5e5bb43b58fb915 (patch) | |
tree | 12fcc0a782e3b9b90621e599937014fc0a5e1ecc /drivers/gpio/gpiolib-legacy.c | |
parent | Linux 4.7-rc6 (diff) | |
download | linux-87041a58d3b19455d39baed2a5e5bb43b58fb915.tar.xz linux-87041a58d3b19455d39baed2a5e5bb43b58fb915.zip |
gpio: sch: Fix Oops on module load on Asus Eee PC 1201
This fixes the issue descirbe in bug 117531
(https://bugzilla.kernel.org/show_bug.cgi?id=117531).
It's a regression introduced in linux 4.5 that causes a Oops at load of
gpio_sch and prevents powering off the computer.
The issue is that sch_gpio_reg_set is called in sch_gpio_probe before
gpio_chip data is initialized with the pointer to the sch_gpio struct. As
sch_gpio_reg_set calls gpiochip_get_data, it returns NULL which causes
the Oops.
The patch follows Mika's advice (https://lkml.org/lkml/2016/5/9/61) and
consists in modifying sch_gpio_reg_get and sch_gpio_reg_set to take a
sch_gpio struct directly instead of a gpio_chip, which avoids the call to
gpiochip_get_data.
Thanks Mika for your patience with me :-)
Cc: stable@vger.kernel.org
Signed-off-by: Colin Pitrat <colin.pitrat@gmail.com>
Acked-by: Alexandre Courbot <acourbot@nvidia.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpiolib-legacy.c')
0 files changed, 0 insertions, 0 deletions