linux/drivers/net/can
Marc Kleine-Budde cad4bab399 can: pcan_usb: don't provide CAN FD bittimings by non-FD adapters
commit 06b23f7fbb upstream.

The CAN FD data bittiming constants are provided via netlink only when there
are valid CAN FD constants available in priv->data_bittiming_const.

Due to the indirection of pointer assignments in the peak_usb driver the
priv->data_bittiming_const never becomes NULL - not even for non-FD adapters.

The data_bittiming_const points to zero'ed data which leads to this result
when running 'ip -details link show can0':

35: can0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN mode DEFAULT group default qlen 10
    link/can  promiscuity 0
    can state STOPPED restart-ms 0
	  pcan_usb: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..64 brp-inc 1
	  : dtseg1 0..0 dtseg2 0..0 dsjw 1..0 dbrp 0..0 dbrp-inc 0  <== BROKEN!
	  clock 8000000

This patch changes the struct peak_usb_adapter::bittiming_const and struct
peak_usb_adapter::data_bittiming_const to pointers to fix the assignemnt
problems.

Reported-by: Oliver Hartkopp <socketcan@hartkopp.net>
Tested-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2015-09-13 09:07:51 -07:00
..
c_can can: c_can: Fix default pinmux glitch at init 2015-08-10 12:21:51 -07: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: fix resume when device is down 2015-08-10 12:21:51 -07:00
usb can: pcan_usb: don't provide CAN FD bittimings by non-FD adapters 2015-09-13 09:07:51 -07: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-08-10 12:21:51 -07:00
flexcan.c can: flexcan: Deferred on Regulator return EPROBE_DEFER 2015-03-22 19:20:10 +01:00
grcan.c can: constify of_device_id array 2015-03-17 15:00:23 -04:00
janz-ican3.c can: janz-ican3: fix type mismatch in assignment 2015-02-04 14:06:43 +01:00
Kconfig can: CAN_GRCAN should depend on HAS_DMA 2015-04-23 14:09:58 -04:00
led.c can: add combined rx/tx LED trigger support 2015-03-22 23:50:11 +01:00
Makefile can: Enable -D__CHECK_ENDIAN__ for sparse by default 2014-12-07 21:22:06 +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: print signed IRQ # 2015-08-10 12:21:51 -07:00
slcan.c can: replace timestamp as unique skb attribute 2015-08-10 12:21:51 -07: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-08-10 12:21:51 -07:00
xilinx_can.c net: can: xilinx_can: fix extended frame handling 2015-05-01 10:11:46 +02:00