HSI: hsi: Fix error path cleanup on client registration
authorCarlos Chinea <carlos.chinea@nokia.com>
Wed, 11 Apr 2012 08:01:11 +0000 (11:01 +0300)
committerCarlos Chinea <carlos.chinea@nokia.com>
Mon, 23 Apr 2012 11:23:31 +0000 (14:23 +0300)
HSI client structure should be freed on error path after
calling device_registration by dropping a reference to it.

Signed-off-by: Carlos Chinea <carlos.chinea@nokia.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
drivers/hsi/hsi.c

index c17d12ca8e7f585390ab5fafc2790c340a424687..5c76a36419d405b21384343d7106955a6c1f4323 100644 (file)
@@ -100,7 +100,7 @@ static void hsi_new_client(struct hsi_port *port, struct hsi_board_info *info)
                cl->device.archdata = *info->archdata;
        if (device_register(&cl->device) < 0) {
                pr_err("hsi: failed to register client: %s\n", info->name);
-               kfree(cl);
+               put_device(&cl->device);
        }
 }