diff options
author | Peter Korsgaard <peter.korsgaard@barco.com> | 2010-04-26 04:05:06 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-20 16:21:40 -0400 |
commit | da01c7a49bfc94dbfa66af5ca5e1063b10bc6a10 (patch) | |
tree | ec982308ce4b4339392309b901f01627f7f0ad6e | |
parent | fe662b43521a8b8ad2dc79299922d0b0bb3fe728 (diff) |
USB: g_hid: unregister platform driver on probe/usb_composite_register errors
Otherwise reloads will fail.
Signed-off-by: Peter Korsgaard <peter.korsgaard@barco.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/usb/gadget/hid.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/usb/gadget/hid.c b/drivers/usb/gadget/hid.c index b77e97754b4a..775722686ed8 100644 --- a/drivers/usb/gadget/hid.c +++ b/drivers/usb/gadget/hid.c | |||
@@ -275,8 +275,18 @@ MODULE_LICENSE("GPL"); | |||
275 | 275 | ||
276 | static int __init hidg_init(void) | 276 | static int __init hidg_init(void) |
277 | { | 277 | { |
278 | platform_driver_probe(&hidg_plat_driver, hidg_plat_driver_probe); | 278 | int status; |
279 | return usb_composite_register(&hidg_driver); | 279 | |
280 | status = platform_driver_probe(&hidg_plat_driver, | ||
281 | hidg_plat_driver_probe); | ||
282 | if (status < 0) | ||
283 | return status; | ||
284 | |||
285 | status = usb_composite_register(&hidg_driver); | ||
286 | if (status < 0) | ||
287 | platform_driver_unregister(&hidg_plat_driver); | ||
288 | |||
289 | return status; | ||
280 | } | 290 | } |
281 | module_init(hidg_init); | 291 | module_init(hidg_init); |
282 | 292 | ||