Re: [PATCH] virtio: console: fix error handling in init() function
From: Amit Shah <hidden>
Date: 2012-09-09 20:20:06
Hi Alexey, On (Sat) 01 Sep 2012 [23:49:37], Alexey Khoroshilov wrote:
quoted hunk
If register_virtio_driver() fails, virtio-ports class is not destroyed. The patch adds error handling of register_virtio_driver(). Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <redacted> --- drivers/char/virtio_console.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c index cdf2f54..060a672 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c@@ -1941,7 +1941,17 @@ static int __init init(void) INIT_LIST_HEAD(&pdrvdata.consoles); INIT_LIST_HEAD(&pdrvdata.portdevs); - return register_virtio_driver(&virtio_console); + err = register_virtio_driver(&virtio_console); + if (err < 0) { + pr_err("Error %d registering virtio driver\n", err); + goto free; + } + return 0; +free: + if (pdrvdata.debugfs_dir) + debugfs_remove_recursive(pdrvdata.debugfs_dir); + class_destroy(pdrvdata.class); + return err; } static void __exit fini(void)
Patch looks good. Acked-by: Amit Shah <redacted> Rusty, please pick this up. Thanks, Amit