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