Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tty/serial: digicolor: Fix digicolor-usart already registered warning

When modprobe/rmmod/modprobe module, if platform_driver_register() fails,
the kernel complained,

proc_dir_entry 'driver/digicolor-usart' already registered
WARNING: CPU: 1 PID: 5636 at fs/proc/generic.c:360 proc_register+0x19d/0x270

Fix this by adding uart_unregister_driver() when platform_driver_register() fails.

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Acked-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Kefeng Wang and committed by
Greg Kroah-Hartman
c7ad9ba0 929ffa4a

+5 -1
+5 -1
drivers/tty/serial/digicolor-usart.c
··· 541 541 if (ret) 542 542 return ret; 543 543 544 - return platform_driver_register(&digicolor_uart_platform); 544 + ret = platform_driver_register(&digicolor_uart_platform); 545 + if (ret) 546 + uart_unregister_driver(&digicolor_uart); 547 + 548 + return ret; 545 549 } 546 550 module_init(digicolor_uart_init); 547 551