The patch titled USB Elan FTDI: check for driver registration status has been added to the -mm tree. Its filename is usb-elan-ftdi-check-for-driver-registration-status.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: USB Elan FTDI: check for driver registration status From: Cyrill Gorcunov <gorcunov@xxxxxxxxx> Add checking of driver registration status and if it fails release allocated resources. Signed-off-by: Cyrill Gorcunov <gorcunov@xxxxxxxxx> Cc: Pete Zaitcev <zaitcev@xxxxxxxxxx> Cc: Greg KH <greg@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/usb/misc/ftdi-elan.c | 37 ++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff -puN drivers/usb/misc/ftdi-elan.c~usb-elan-ftdi-check-for-driver-registration-status drivers/usb/misc/ftdi-elan.c --- a/drivers/usb/misc/ftdi-elan.c~usb-elan-ftdi-check-for-driver-registration-status +++ a/drivers/usb/misc/ftdi-elan.c @@ -2909,27 +2909,36 @@ static int __init ftdi_elan_init(void) init_MUTEX(&ftdi_module_lock); INIT_LIST_HEAD(&ftdi_static_list); status_queue = create_singlethread_workqueue("ftdi-status-control"); - if (!status_queue) - goto err1; command_queue = create_singlethread_workqueue("ftdi-command-engine"); - if (!command_queue) - goto err2; respond_queue = create_singlethread_workqueue("ftdi-respond-engine"); - if (!respond_queue) - goto err3; + if (!status_queue || !command_queue || !respond_queue) { + printk(KERN_ERR "%s couldn't create workqueue\n", + ftdi_elan_driver.name); + result = -ENOMEM; + goto err; + } result = usb_register(&ftdi_elan_driver); - if (result) + if (result) { printk(KERN_ERR "usb_register failed. Error number %d\n", result); + goto err; + } return result; - err3: - destroy_workqueue(command_queue); - err2: - destroy_workqueue(status_queue); - err1: - printk(KERN_ERR "%s couldn't create workqueue\n", ftdi_elan_driver.name); - return -ENOMEM; + err: + if (status_queue) { + destroy_workqueue(status_queue); + status_queue = NULL; + } + if (command_queue) { + destroy_workqueue(command_queue); + command_queue = NULL; + } + if (respond_queue) { + destroy_workqueue(respond_queue); + respond_queue = NULL; + } + return result; } static void __exit ftdi_elan_exit(void) _ Patches currently in -mm which might be from gorcunov@xxxxxxxxx are origin.patch git-kbuild.patch sun3-3x-lance-trivial-fix-improved.patch usb-elan-ftdi-check-for-driver-registration-status.patch cris-check-for-memory-allocation.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html