summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorOliver Hartkopp <socketcan@hartkopp.net>2015-04-01 08:50:28 +0300
committerMarc Kleine-Budde <mkl@pengutronix.de>2015-04-01 12:27:41 +0300
commit514ac99c64b22d83b52dfee3b8becaa69a92bc4a (patch)
treedc44e61b13c9c7279ad7b5be1195f5cebeb422c2 /Documentation
parenta0bc163a7cf2ceb413a76cfd7149c6591db829ea (diff)
downloadlinux-514ac99c64b22d83b52dfee3b8becaa69a92bc4a.tar.xz
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>
Diffstat (limited to 'Documentation')
0 files changed, 0 insertions, 0 deletions