summaryrefslogtreecommitdiffstats
path: root/drivers/platform
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2022-01-08 16:49:47 +0100
committerHans de Goede <hdegoede@redhat.com>2022-01-08 16:56:01 +0100
commit02fb09459435add44bb00191ce9b040c6b4f3aae (patch)
treec64b8d4a94189e356791c5d96d1d094bca2b1bd1 /drivers/platform
parentplatform/x86: int3472: Add board data for Surface Go 3 (diff)
downloadlinux-02fb09459435add44bb00191ce9b040c6b4f3aae.tar.xz
linux-02fb09459435add44bb00191ce9b040c6b4f3aae.zip
platform/x86: x86-android-tablets: Fix GPIO lookup leak on error-exit
Fix leaking the registered gpiod_lookup tables when the kcalloc() for the i2c_clients array fails. Fixes: ef2ac11493e2 ("platform/x86: x86-android-tablets: Add support for registering GPIO lookup tables") Signed-off-by: Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20220108154947.136593-1-hdegoede@redhat.com
Diffstat (limited to 'drivers/platform')
-rw-r--r--drivers/platform/x86/x86-android-tablets.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/platform/x86/x86-android-tablets.c b/drivers/platform/x86/x86-android-tablets.c
index d39da5fca6c5..3ba63ad91b28 100644
--- a/drivers/platform/x86/x86-android-tablets.c
+++ b/drivers/platform/x86/x86-android-tablets.c
@@ -815,8 +815,10 @@ static __init int x86_android_tablet_init(void)
gpiod_add_lookup_table(gpiod_lookup_tables[i]);
i2c_clients = kcalloc(dev_info->i2c_client_count, sizeof(*i2c_clients), GFP_KERNEL);
- if (!i2c_clients)
+ if (!i2c_clients) {
+ x86_android_tablet_cleanup();
return -ENOMEM;
+ }
i2c_client_count = dev_info->i2c_client_count;
for (i = 0; i < i2c_client_count; i++) {