• Marek Szyprowski's avatar
    hwmon: (ina2xx) Fix access to uninitialized mutex · f1165f18
    Marek Szyprowski authored
    BugLink: http://bugs.launchpad.net/bugs/1768429
    
    commit 0c4c5860 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: 5d389b12 ("hwmon: (ina2xx) Make calibration register value fixed")
    Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
    [backport to v4.4.y/v4.9.y: context changes]
    Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: default avatarJuerg Haefliger <juergh@canonical.com>
    Signed-off-by: default avatarKleber Sacilotto de Souza <kleber.souza@canonical.com>
    f1165f18
ina2xx.c 12.8 KB