Ricardo Ribalda Delgado
f4833b8cc7
gpiolib: Fix unaligned used of reference counters
...
gpiolib relies on the reference counters to clean up the gpio_device
structure.
Although the number of get/put is properly aligned on gpiolib.c
itself, it does not take into consideration how the referece counters
are affected by other external functions such as cdev_add and device_add.
Because of this, after the last call to put_device, the reference counter
has a value of +3, therefore never calling gpiodevice_release.
Due to the fact that some of the device has already been cleaned on
gpiochip_remove, the library will end up OOPsing the kernel (e.g. a call
to of_gpiochip_find_and_xlate).
Cc: stable@vger.kernel.org
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2016-06-08 10:40:29 +02:00
..
2016-02-25 10:04:25 +01:00
2016-03-31 10:25:51 +02:00
2016-02-23 20:19:42 +05:30
2016-06-08 10:08:12 +02:00
2016-05-02 09:32:04 -07:00
2016-05-02 09:32:04 -07:00
2016-02-23 20:19:46 +05:30
2016-02-23 20:34:06 +05:30
2016-02-23 20:34:24 +05:30
2016-01-27 10:50:22 +01:00
2016-02-16 00:19:52 +01:00
2016-03-30 10:38:51 +02:00
2016-02-23 20:34:29 +05:30
2016-02-25 15:20:43 +01:00
2016-03-31 12:01:15 +02:00
2016-04-15 10:09:48 +02:00
2016-01-05 11:21:03 +01:00
2016-02-23 20:35:27 +05:30
2016-02-23 20:35:27 +05:30
2016-02-23 20:35:28 +05:30
2016-02-23 20:35:29 +05:30
2016-02-23 20:35:29 +05:30
2016-02-22 13:47:49 +01:00
2016-02-23 20:35:30 +05:30
2016-05-11 11:32:39 +02:00
2016-01-05 11:21:05 +01:00
2016-02-23 20:35:30 +05:30
2016-01-05 11:21:00 +01:00
2016-04-18 13:32:20 +02:00
2016-02-23 20:35:31 +05:30
2016-01-05 11:21:00 +01:00
2016-02-16 00:19:53 +01:00
2016-01-05 11:21:05 +01:00
2016-02-23 20:35:32 +05:30
2016-03-31 11:59:43 +02:00
2016-02-23 20:35:33 +05:30
2016-02-23 20:35:34 +05:30
2016-02-19 00:20:30 +01:00
2016-04-09 20:14:35 +02:00
2016-01-05 11:21:20 +01:00
2016-03-09 22:00:27 +07:00
2016-01-05 11:21:06 +01:00
2016-05-30 09:42:03 +02:00
2016-02-23 20:35:35 +05:30
2016-01-05 11:21:07 +01:00
2016-01-05 11:21:07 +01:00
2015-11-30 09:31:00 +01:00
2015-10-28 10:30:17 +09:00
2016-03-31 15:00:28 +02:00
2016-03-31 15:02:09 +02:00
2016-01-05 11:21:07 +01:00
2016-03-31 10:41:50 +02:00
2016-05-17 17:39:42 -07:00
2016-01-05 11:21:08 +01:00
2016-01-13 10:21:06 +01:00
2016-04-29 16:14:32 +02:00
2016-03-31 15:03:13 +02:00
2016-03-09 10:44:13 +07:00
2016-02-16 00:20:03 +01:00
2016-01-05 11:21:09 +01:00
2016-03-31 15:05:44 +02:00
2016-02-23 20:35:37 +05:30
2016-01-05 11:21:00 +01:00
2016-03-30 10:38:51 +02:00
2016-04-26 15:56:47 +02:00
2016-04-05 17:02:36 +02:00
2016-05-17 17:39:42 -07:00
2016-02-23 20:35:39 +05:30
2016-01-05 15:46:34 +01:00
2016-02-25 15:20:46 +01:00
2016-04-28 14:36:37 +02:00
2016-04-08 10:10:08 +02:00
2016-04-05 17:02:35 +02:00
2016-05-17 17:39:42 -07:00
2016-02-23 20:35:41 +05:30
2016-01-05 11:21:20 +01:00
2016-02-16 00:19:53 +01:00
2016-02-23 20:35:41 +05:30
2016-05-11 13:46:49 +02:00
2016-02-23 20:35:42 +05:30
2016-03-31 15:07:40 +02:00
2016-05-11 13:48:03 +02:00
2016-02-23 20:35:43 +05:30
2016-04-14 14:03:26 +02:00
2016-02-23 20:35:44 +05:30
2016-02-23 20:35:44 +05:30
2016-04-05 17:02:35 +02:00
2016-04-30 13:15:10 +02:00
2016-05-11 13:49:11 +02:00
2016-03-31 15:14:37 +02:00
2016-04-05 17:02:37 +02:00
2016-03-16 08:50:33 +00:00
2016-04-14 14:03:25 +02:00
2016-04-05 17:02:37 +02:00
2016-03-09 22:02:52 +07:00
2016-02-25 15:20:44 +01:00
2016-02-23 20:35:49 +05:30
2016-01-05 11:21:16 +01:00
2016-02-23 20:35:50 +05:30
2016-01-05 11:21:16 +01:00
2016-01-05 11:21:16 +01:00
2016-02-23 20:35:50 +05:30
2016-01-05 11:21:17 +01:00
2016-02-23 20:35:51 +05:30
2016-01-05 11:21:20 +01:00
2016-04-14 14:03:28 +02:00
2016-04-14 14:03:28 +02:00
2016-02-23 20:35:52 +05:30
2016-04-14 14:03:29 +02:00
2016-05-02 09:32:04 -07:00
2016-03-31 10:22:53 +02:00
2016-05-17 17:39:42 -07:00
2016-01-07 10:06:56 +01:00
2016-05-27 15:26:11 -07:00
2016-01-05 11:21:20 +01:00
2016-05-11 13:50:01 +02:00
2016-03-31 15:10:25 +02:00
2016-06-08 10:36:29 +02:00
2016-04-30 13:51:59 +02:00
2015-10-16 22:46:46 +02:00
2016-05-10 13:43:48 +02:00
2016-02-25 16:08:45 +01:00
2016-06-08 10:40:29 +02:00
2016-04-26 10:51:36 +02:00
2016-05-20 21:26:15 -07:00
2016-04-29 16:14:32 +02:00