From 6806624c650e701b2bdd71b6a1457c66fb0c0329 Mon Sep 17 00:00:00 2001 From: Jiri Slaby Date: Mon, 2 Apr 2012 13:54:04 +0200 Subject: [PATCH] --- yaml --- r: 304136 b: refs/heads/master c: d230788f760043d9c69dbd3928b76f549bff5fb9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/usb/hso.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 59b98ee3697d..efe232aa8e56 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 005ce07f8068f9970f522a1a4ffeb9a9d108479a +refs/heads/master: d230788f760043d9c69dbd3928b76f549bff5fb9 diff --git a/trunk/drivers/net/usb/hso.c b/trunk/drivers/net/usb/hso.c index abe47ad59479..cdc589edeaf6 100644 --- a/trunk/drivers/net/usb/hso.c +++ b/trunk/drivers/net/usb/hso.c @@ -3332,7 +3332,7 @@ static int __init hso_init(void) if (result) { printk(KERN_ERR "%s - tty_register_driver failed(%d)\n", __func__, result); - return result; + goto err_free_tty; } /* register this module as an usb driver */ @@ -3340,13 +3340,16 @@ static int __init hso_init(void) if (result) { printk(KERN_ERR "Could not register hso driver? error: %d\n", result); - /* cleanup serial interface */ - tty_unregister_driver(tty_drv); - return result; + goto err_unreg_tty; } /* done */ return 0; +err_unreg_tty: + tty_unregister_driver(tty_drv); +err_free_tty: + put_tty_driver(tty_drv); + return result; } static void __exit hso_exit(void) @@ -3354,6 +3357,7 @@ static void __exit hso_exit(void) printk(KERN_INFO "hso: unloaded\n"); tty_unregister_driver(tty_drv); + put_tty_driver(tty_drv); /* deregister the usb driver */ usb_deregister(&hso_driver); }