]> git.ipfire.org Git - people/arne_f/kernel.git/blobdiff - drivers/usb/serial/usb-serial.c
Merge tag 'v3.14.78' into linux-3.14.x-rpi
[people/arne_f/kernel.git] / drivers / usb / serial / usb-serial.c
index 3d66e9c5a95d6342f61074fd3182de9cd43147c2..a5308a97f65e06484fa2c03f769265be8c16ab0e 100644 (file)
@@ -1426,7 +1426,7 @@ int usb_serial_register_drivers(struct usb_serial_driver *const serial_drivers[]
 
        rc = usb_register(udriver);
        if (rc)
-               return rc;
+               goto failed_usb_register;
 
        for (sd = serial_drivers; *sd; ++sd) {
                (*sd)->usb_driver = udriver;
@@ -1444,6 +1444,8 @@ int usb_serial_register_drivers(struct usb_serial_driver *const serial_drivers[]
        while (sd-- > serial_drivers)
                usb_serial_deregister(*sd);
        usb_deregister(udriver);
+failed_usb_register:
+       kfree(udriver);
        return rc;
 }
 EXPORT_SYMBOL_GPL(usb_serial_register_drivers);