lkml.org 
[lkml]   [2020]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 119/123] i2c: acpi: put device when verifying client fails
    Date
    From: Wolfram Sang <wsa+renesas@sang-engineering.com>

    commit 8daee952b4389729358665fb91949460641659d4 upstream.

    i2c_verify_client() can fail, so we need to put the device when that
    happens.

    Fixes: 525e6fabeae2 ("i2c / ACPI: add support for ACPI reconfigure notifications")
    Reported-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/i2c/i2c-core-acpi.c | 10 +++++++++-
    1 file changed, 9 insertions(+), 1 deletion(-)

    --- a/drivers/i2c/i2c-core-acpi.c
    +++ b/drivers/i2c/i2c-core-acpi.c
    @@ -394,9 +394,17 @@ EXPORT_SYMBOL_GPL(i2c_acpi_find_adapter_
    static struct i2c_client *i2c_acpi_find_client_by_adev(struct acpi_device *adev)
    {
    struct device *dev;
    + struct i2c_client *client;

    dev = bus_find_device_by_acpi_dev(&i2c_bus_type, adev);
    - return dev ? i2c_verify_client(dev) : NULL;
    + if (!dev)
    + return NULL;
    +
    + client = i2c_verify_client(dev);
    + if (!client)
    + put_device(dev);
    +
    + return client;
    }

    static int i2c_acpi_notify(struct notifier_block *nb, unsigned long value,

    \
     
     \ /
      Last update: 2020-03-17 12:18    [W:4.098 / U:1.476 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site