slcan: ldisc generated skbs are received in softirq context

As this discussion pointed out

http://marc.info/?l=linux-netdev&m=131257225602375

netdevices that are based on serial line disciplines should use netif_rx_ni()
when pushing received socketbuffers into the netdev rx queue.

Following commit 614851601c ("slip: fix NOHZ
local_softirq_pending 08 warning") this patch updates the slcan driver
accordingly.

Signed-off-by: Oliver Hartkopp <[email protected]>
CC: Matvejchikov Ilya <[email protected]>
CC: Alan Cox <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
Oliver Hartkopp 2011-08-10 05:18:59 +00:00 • committed by David S. Miller
commit 174c95d252

View file

@ -197,7 +197,7 @@ static void slc_bump(struct slcan *sl)
skb->ip_summed = CHECKSUM_UNNECESSARY;
memcpy(skb_put(skb, sizeof(struct can_frame)),
&cf, sizeof(struct can_frame));
netif_rx(skb);
netif_rx_ni(skb);
sl->dev->stats.rx_packets++;
sl->dev->stats.rx_bytes += cf.can_dlc;