linux/net/can
Oliver Hartkopp 514ac99c64 can: fix multiple delivery of a single CAN frame for overlapping CAN filters
The CAN_RAW socket can set multiple CAN identifier specific filters that lead
to multiple filters in the af_can.c filter processing. These filters are
indenpendent from each other which leads to logical OR'ed filters when applied.

This patch makes sure that every CAN frame which is filtered for a specific
socket is only delivered once to the user space. This is independent from the
number of matching CAN filters of this socket.

As the raw_rcv() function is executed from NET_RX softirq the introduced
variables are implemented as per-CPU variables to avoid extensive locking at
CAN frame reception time.

Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2015-04-01 11:27:41 +02:00
..
af_can.c can: add missing initialisations in CAN related skbuffs 2015-03-09 10:22:24 +01:00
af_can.h
bcm.c
gw.c
Kconfig
Makefile
proc.c
raw.c can: fix multiple delivery of a single CAN frame for overlapping CAN filters 2015-04-01 11:27:41 +02:00