[PATCH] USB: quirks: simplify quirk handling.

From: Pavel Machek
Date: Mon Sep 21 2020 - 07:30:42 EST


Simplify quirk handling.

Signed-off-by: Pavel Machek (CIP) <pavel@xxxxxxx>

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index f232914de5fd..167b6ac428a3 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -56,18 +56,13 @@ static int quirks_param_set(const char *value, const struct kernel_param *kp)
if (val[i] == ',')
quirk_count++;

- if (quirk_list) {
- kfree(quirk_list);
- quirk_list = NULL;
- }
-
+ kfree(quirk_list);
quirk_list = kcalloc(quirk_count, sizeof(struct quirk_entry),
GFP_KERNEL);
if (!quirk_list) {
quirk_count = 0;
- mutex_unlock(&quirk_mutex);
- kfree(val);
- return -ENOMEM;
+ err = -ENOMEM;
+ goto unlock;
}

for (i = 0, p = val; p && *p;) {
@@ -153,7 +148,7 @@ static int quirks_param_set(const char *value, const struct kernel_param *kp)
mutex_unlock(&quirk_mutex);
kfree(val);

- return 0;
+ return err;
}

static const struct kernel_param_ops quirks_param_ops = {

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: PGP signature