Commit 81cd7e84 authored by Chen Jun's avatar Chen Jun Committed by Dmitry Torokhov

Input: i8042 - fix leaking of platform device on module removal

Avoid resetting the module-wide i8042_platform_device pointer in
i8042_probe() or i8042_remove(), so that the device can be properly
destroyed by i8042_exit() on module unload.

Fixes: 9222ba68 ("Input: i8042 - add deferred probe support")
Signed-off-by: default avatarChen Jun <chenjun102@huawei.com>
Link: https://lore.kernel.org/r/20221109034148.23821-1-chenjun102@huawei.comSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 26c263bf
...@@ -1543,8 +1543,6 @@ static int i8042_probe(struct platform_device *dev) ...@@ -1543,8 +1543,6 @@ static int i8042_probe(struct platform_device *dev)
{ {
int error; int error;
i8042_platform_device = dev;
if (i8042_reset == I8042_RESET_ALWAYS) { if (i8042_reset == I8042_RESET_ALWAYS) {
error = i8042_controller_selftest(); error = i8042_controller_selftest();
if (error) if (error)
...@@ -1582,7 +1580,6 @@ static int i8042_probe(struct platform_device *dev) ...@@ -1582,7 +1580,6 @@ static int i8042_probe(struct platform_device *dev)
i8042_free_aux_ports(); /* in case KBD failed but AUX not */ i8042_free_aux_ports(); /* in case KBD failed but AUX not */
i8042_free_irqs(); i8042_free_irqs();
i8042_controller_reset(false); i8042_controller_reset(false);
i8042_platform_device = NULL;
return error; return error;
} }
...@@ -1592,7 +1589,6 @@ static int i8042_remove(struct platform_device *dev) ...@@ -1592,7 +1589,6 @@ static int i8042_remove(struct platform_device *dev)
i8042_unregister_ports(); i8042_unregister_ports();
i8042_free_irqs(); i8042_free_irqs();
i8042_controller_reset(false); i8042_controller_reset(false);
i8042_platform_device = NULL;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment