OpenCloudOS-Kernel/drivers/net/can/spi
Frieder Schrempf 03c427147b can: mcp251x: fix resume from sleep before interface was brought up
Since 8ce8c0abcb the driver queues work via priv->restart_work when
resuming after suspend, even when the interface was not previously
enabled. This causes a null dereference error as the workqueue is only
allocated and initialized in mcp251x_open().

To fix this we move the workqueue init to mcp251x_can_probe() as there
is no reason to do it later and repeat it whenever mcp251x_open() is
called.

Fixes: 8ce8c0abcb ("can: mcp251x: only reset hardware as required")
Link: https://lore.kernel.org/r/17d5d714-b468-482f-f37a-482e3d6df84e@kontron.de
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
[mkl: fix error handling in mcp251x_stop()]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2021-05-06 09:24:07 +02:00
..
mcp251xfd can: mcp251xfd: mcp251xfd_probe(): add missing can_rx_offload_del() in error path 2021-05-06 09:24:06 +02:00
Kconfig can: mcp251xfd: rename driver files and subdir to mcp251xfd 2020-09-30 21:54:30 +02:00
Makefile can: mcp251xfd: rename driver files and subdir to mcp251xfd 2020-09-30 21:54:30 +02:00
hi311x.c can: dev: can_free_echo_skb(): extend to return can frame length 2021-03-30 11:14:28 +02:00
mcp251x.c can: mcp251x: fix resume from sleep before interface was brought up 2021-05-06 09:24:07 +02:00