memstick: core: fix device_register() error handling
Vasiliy Kulikov [Thu, 13 Jan 2011 01:01:00 +0000 (17:01 -0800)]
If device_register() fails then call put_device().  See comment to
device_register.

Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>
Cc: Maxim Levitsky <maximlevitsky@gmail.com>
Cc: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

drivers/memstick/core/memstick.c

index c00fe82..4303b7e 100644 (file)
@@ -465,6 +465,7 @@ static void memstick_check(struct work_struct *work)
                if (!host->card) {
                        host->card = card;
                        if (device_register(&card->dev)) {
+                               put_device(&card->dev);
                                kfree(host->card);
                                host->card = NULL;
                        }