serial: liteuart: fix missing drvdata
Subsystems (2)
PATCH v2 1/1 serial: liteuart: fix missing drvdata
drvdata has to be set in _probe() - otherwise platform_get_drvdata() causes null pointer dereference BUG in _remove()
Fixes 1da81e5562fa ("drivers/tty/serial: add LiteUART driver")
Signed-off-by Ilia Sergachev <[email protected]>
---
v1 -> v2: add Fixes:
drivers/tty/serial/liteuart.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/tty/serial/liteuart.c +2 -0
@@ -285,6 +285,8 @@ static int liteuart_probe(struct platform_device *pdev) port->line = dev_id;spin_lock_init (&port->lock); +platform_set_drvdata (pdev, port); +return uart_add_one_port (&liteuart_driver, &uart->port); }
Signature · 1 line
2.25.1
Quoted 16 lines · Ilia Sergachev
drvdata has to be set in
_probe()- otherwiseplatform_get_drvdata()causes null pointer dereference BUG in_remove()Fixes 1da81e5562fa ("drivers/tty/serial: add LiteUART driver")Signed-off-by Ilia Sergachev <[email protected]>---
v1 -> v2: add Fixes:drivers/tty/serial/liteuart.c | 2 ++ 1 file changed, 2 insertions(+)drivers/tty/serial/liteuart.c +0
-0
drivers/tty/serial/liteuart.c static int liteuart_probe(struct platform_device *pdev) · line 291
Quoted 7 lines
drivers/tty/serial/liteuart.c +2
-0@@ -285,6 +285,8 @@ static int liteuart_probe(struct platform_device *pdev) port->line = dev_id;spin_lock_init (&port->lock); +platform_set_drvdata (pdev, port); +return uart_add_one_port (&liteuart_driver, &uart->port); }
Looks good:
Reviewed-by Johan Hovold <[email protected]>
There are more issues with driver unbind than this though as the port is never deregistered. I've fixed it up on top of this patch:
https://lore.kernel.org/r/[email protected]
Johan