浏览代码

serial: 8250_lpss: avoid potential kernel crash when remove

This is a follow up to the commit a9b01b5823f7 ("serial: 8250_mid fix calltrace
when hotplug 8250 serial controller") in which the kernel crash was described
for another 8250 based driver. It appears that we have the very same issue in
8250_lpss. Fix it by unregistering serial driver first.

Cc: Liwei Song <liwei.song@windriver.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Andy Shevchenko 8 年之前
父节点
当前提交
3f08087826
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/tty/serial/8250/8250_lpss.c

+ 2 - 2
drivers/tty/serial/8250/8250_lpss.c

@@ -332,10 +332,10 @@ static void lpss8250_remove(struct pci_dev *pdev)
 {
 {
 	struct lpss8250 *lpss = pci_get_drvdata(pdev);
 	struct lpss8250 *lpss = pci_get_drvdata(pdev);
 
 
+	serial8250_unregister_port(lpss->line);
+
 	if (lpss->board->exit)
 	if (lpss->board->exit)
 		lpss->board->exit(lpss);
 		lpss->board->exit(lpss);
-
-	serial8250_unregister_port(lpss->line);
 }
 }
 
 
 static const struct lpss8250_board byt_board = {
 static const struct lpss8250_board byt_board = {