can: mcp251x: fix NOHZ local_softirq_pending 08 warning
This patch replaces netif_rx() with netif_rx_ni() which has to be used
from the threaded interrupt i.e. process context context.
Thanks to Christian Pellegrin for pointing at the right fix:
481a819914
by Oliver Hartkopp.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Acked-by: Wolfgang Grandegger <wg@grandegger.com>
This commit is contained in:
Родитель
724829b3ad
Коммит
57d3c7b09b
|
@ -451,7 +451,7 @@ static void mcp251x_hw_rx(struct spi_device *spi, int buf_idx)
|
||||||
|
|
||||||
priv->net->stats.rx_packets++;
|
priv->net->stats.rx_packets++;
|
||||||
priv->net->stats.rx_bytes += frame->can_dlc;
|
priv->net->stats.rx_bytes += frame->can_dlc;
|
||||||
netif_rx(skb);
|
netif_rx_ni(skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mcp251x_hw_sleep(struct spi_device *spi)
|
static void mcp251x_hw_sleep(struct spi_device *spi)
|
||||||
|
@ -676,7 +676,7 @@ static void mcp251x_error_skb(struct net_device *net, int can_id, int data1)
|
||||||
if (skb) {
|
if (skb) {
|
||||||
frame->can_id = can_id;
|
frame->can_id = can_id;
|
||||||
frame->data[1] = data1;
|
frame->data[1] = data1;
|
||||||
netif_rx(skb);
|
netif_rx_ni(skb);
|
||||||
} else {
|
} else {
|
||||||
dev_err(&net->dev,
|
dev_err(&net->dev,
|
||||||
"cannot allocate error skb\n");
|
"cannot allocate error skb\n");
|
||||||
|
|
Загрузка…
Ссылка в новой задаче