]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Apr 2018 14:51:05 +0000 (16:51 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Apr 2018 14:51:05 +0000 (16:51 +0200)
added patches:
hwmon-ina2xx-fix-access-to-uninitialized-mutex.patch

queue-4.9/hwmon-ina2xx-fix-access-to-uninitialized-mutex.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/hwmon-ina2xx-fix-access-to-uninitialized-mutex.patch b/queue-4.9/hwmon-ina2xx-fix-access-to-uninitialized-mutex.patch
new file mode 100644 (file)
index 0000000..c4e2fd3
--- /dev/null
@@ -0,0 +1,69 @@
+From 0c4c5860e9983eb3da7a3d73ca987643c3ed034b Mon Sep 17 00:00:00 2001
+From: Marek Szyprowski <m.szyprowski@samsung.com>
+Date: Mon, 15 Jan 2018 14:58:21 +0100
+Subject: hwmon: (ina2xx) Fix access to uninitialized mutex
+
+From: Marek Szyprowski <m.szyprowski@samsung.com>
+
+commit 0c4c5860e9983eb3da7a3d73ca987643c3ed034b upstream.
+
+Initialize data->config_lock mutex before it is used by the driver code.
+
+This fixes following warning on Odroid XU3 boards:
+
+INFO: trying to register non-static key.
+the code is fine but needs lockdep annotation.
+turning off the locking correctness validator.
+CPU: 5 PID: 1 Comm: swapper/0 Not tainted 4.15.0-rc7-next-20180115-00001-gb75575dee3f2 #107
+Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
+[<c0111504>] (unwind_backtrace) from [<c010dbec>] (show_stack+0x10/0x14)
+[<c010dbec>] (show_stack) from [<c09b3f74>] (dump_stack+0x90/0xc8)
+[<c09b3f74>] (dump_stack) from [<c0179528>] (register_lock_class+0x1c0/0x59c)
+[<c0179528>] (register_lock_class) from [<c017bd1c>] (__lock_acquire+0x78/0x1850)
+[<c017bd1c>] (__lock_acquire) from [<c017de30>] (lock_acquire+0xc8/0x2b8)
+[<c017de30>] (lock_acquire) from [<c09ca59c>] (__mutex_lock+0x60/0xa0c)
+[<c09ca59c>] (__mutex_lock) from [<c09cafd0>] (mutex_lock_nested+0x1c/0x24)
+[<c09cafd0>] (mutex_lock_nested) from [<c068b0d0>] (ina2xx_set_shunt+0x70/0xb0)
+[<c068b0d0>] (ina2xx_set_shunt) from [<c068b218>] (ina2xx_probe+0x88/0x1b0)
+[<c068b218>] (ina2xx_probe) from [<c0673d90>] (i2c_device_probe+0x1e0/0x2d0)
+[<c0673d90>] (i2c_device_probe) from [<c053a268>] (driver_probe_device+0x2b8/0x4a0)
+[<c053a268>] (driver_probe_device) from [<c053a54c>] (__driver_attach+0xfc/0x120)
+[<c053a54c>] (__driver_attach) from [<c05384cc>] (bus_for_each_dev+0x58/0x7c)
+[<c05384cc>] (bus_for_each_dev) from [<c0539590>] (bus_add_driver+0x174/0x250)
+[<c0539590>] (bus_add_driver) from [<c053b5e0>] (driver_register+0x78/0xf4)
+[<c053b5e0>] (driver_register) from [<c0675ef0>] (i2c_register_driver+0x38/0xa8)
+[<c0675ef0>] (i2c_register_driver) from [<c0102b40>] (do_one_initcall+0x48/0x18c)
+[<c0102b40>] (do_one_initcall) from [<c0e00df0>] (kernel_init_freeable+0x110/0x1d4)
+[<c0e00df0>] (kernel_init_freeable) from [<c09c8120>] (kernel_init+0x8/0x114)
+[<c09c8120>] (kernel_init) from [<c01010b4>] (ret_from_fork+0x14/0x20)
+
+Fixes: 5d389b125186 ("hwmon: (ina2xx) Make calibration register value fixed")
+Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+[backport to v4.4.y/v4.9.y: context changes]
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hwmon/ina2xx.c |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/hwmon/ina2xx.c
++++ b/drivers/hwmon/ina2xx.c
+@@ -447,6 +447,7 @@ static int ina2xx_probe(struct i2c_clien
+       /* set the device type */
+       data->config = &ina2xx_config[id->driver_data];
++      mutex_init(&data->config_lock);
+       if (of_property_read_u32(dev->of_node, "shunt-resistor", &val) < 0) {
+               struct ina2xx_platform_data *pdata = dev_get_platdata(dev);
+@@ -473,8 +474,6 @@ static int ina2xx_probe(struct i2c_clien
+               return -ENODEV;
+       }
+-      mutex_init(&data->config_lock);
+-
+       data->groups[group++] = &ina2xx_group;
+       if (id->driver_data == ina226)
+               data->groups[group++] = &ina226_group;
index b8f82a9121a571566806fd14c7fadf5c7c9fefc8..8378b151a3dff65f2b2cd70d8cff00b9a70dc17b 100644 (file)
@@ -58,3 +58,4 @@ s390-ipl-ensure-loadparm-valid-flag-is-set.patch
 getname_kernel-needs-to-make-sure-that-name-iname-in-long-case.patch
 bluetooth-fix-connection-if-directed-advertising-and-privacy-is-used.patch
 rtl8187-fix-null-pointer-dereference-in-priv-conf_mutex.patch
+hwmon-ina2xx-fix-access-to-uninitialized-mutex.patch