OpenCloudOS-Kernel/drivers/net/can
Oliver Hartkopp d3b58c47d3 can: replace timestamp as unique skb attribute
Commit 514ac99c64 "can: fix multiple delivery of a single CAN frame for
overlapping CAN filters" requires the skb->tstamp to be set to check for
identical CAN skbs.

Without timestamping to be required by user space applications this timestamp
was not generated which lead to commit 36c01245eb "can: fix loss of CAN frames
in raw_rcv" - which forces the timestamp to be set in all CAN related skbuffs
by introducing several __net_timestamp() calls.

This forces e.g. out of tree drivers which are not using alloc_can{,fd}_skb()
to add __net_timestamp() after skbuff creation to prevent the frame loss fixed
in mainline Linux.

This patch removes the timestamp dependency and uses an atomic counter to
create an unique identifier together with the skbuff pointer.

Btw: the new skbcnt element introduced in struct can_skb_priv has to be
initialized with zero in out-of-tree drivers which are not using
alloc_can{,fd}_skb() too.

Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Cc: linux-stable <stable@vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2015-07-12 21:13:22 +02:00
..
c_can can: c_can: Fix default pinmux glitch at init 2015-07-12 20:57:42 +02:00
cc770 can: constify of_device_id array 2015-03-17 15:00:23 -04:00
m_can can: m_cam: m_can_fifo_write(): remove return from void function 2015-03-22 23:50:11 +01:00
mscan can: constify of_device_id array 2015-03-17 15:00:23 -04:00
sja1000 can: constify of_device_id array 2015-03-17 15:00:23 -04:00
softing can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
spi can: mcp251x: use correct register address for acceptance filters 2015-06-09 09:39:17 +02:00
usb net:treewide: Fix typo in drivers/net 2015-04-27 13:40:53 -04:00
Kconfig can: CAN_GRCAN should depend on HAS_DMA 2015-04-23 14:09:58 -04:00
Makefile can: Enable -D__CHECK_ENDIAN__ for sparse by default 2014-12-07 21:22:06 +01:00
at91_can.c can: at91_can: use endian agnostic IO accessors 2015-03-22 23:50:12 +01:00
bfin_can.c bfin_can: Merge header file from arch dependent location 2015-03-04 09:52:49 +01:00
dev.c can: replace timestamp as unique skb attribute 2015-07-12 21:13:22 +02:00
flexcan.c can: flexcan: replace open coded "mailbox code" by proper define 2015-05-06 22:57:27 +02:00
grcan.c can: constify of_device_id array 2015-03-17 15:00:23 -04:00
janz-ican3.c can: janz-ican3: add support for CAL/CANopen firmware 2015-05-06 08:03:20 +02:00
led.c can: add combined rx/tx LED trigger support 2015-03-22 23:50:11 +01:00
pch_can.c can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
rcar_can.c can: rcar_can: unify error messages 2015-07-12 20:57:41 +02:00
slcan.c can: replace timestamp as unique skb attribute 2015-07-12 21:13:22 +02:00
ti_hecc.c can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
vcan.c can: replace timestamp as unique skb attribute 2015-07-12 21:13:22 +02:00
xilinx_can.c net: can: xilinx_can: fix extended frame handling 2015-05-01 10:11:46 +02:00