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 | ||
