1
0
Fork 0
alistair23-linux/drivers/net/ethernet/renesas
Andrew Gabbasov 7740774940 ravb: Fix bit fields checking in ravb_hwtstamp_get()
[ Upstream commit 68b9f0865b ]

In the function ravb_hwtstamp_get() in ravb_main.c with the existing
values for RAVB_RXTSTAMP_TYPE_V2_L2_EVENT (0x2) and RAVB_RXTSTAMP_TYPE_ALL
(0x6)

if (priv->tstamp_rx_ctrl & RAVB_RXTSTAMP_TYPE_V2_L2_EVENT)
	config.rx_filter = HWTSTAMP_FILTER_PTP_V2_L2_EVENT;
else if (priv->tstamp_rx_ctrl & RAVB_RXTSTAMP_TYPE_ALL)
	config.rx_filter = HWTSTAMP_FILTER_ALL;

if the test on RAVB_RXTSTAMP_TYPE_ALL should be true,
it will never be reached.

This issue can be verified with 'hwtstamp_config' testing program
(tools/testing/selftests/net/hwtstamp_config.c). Setting filter type
to ALL and subsequent retrieving it gives incorrect value:

$ hwtstamp_config eth0 OFF ALL
flags = 0
tx_type = OFF
rx_filter = ALL
$ hwtstamp_config eth0
flags = 0
tx_type = OFF
rx_filter = PTP_V2_L2_EVENT

Correct this by converting if-else's to switch.

Fixes: c156633f13 ("Renesas Ethernet AVB driver proper")
Reported-by: Julia Lawall <julia.lawall@inria.fr>
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Reviewed-by: Sergei Shtylyov <sergei.shtylyov@gmail.com>
Link: https://lore.kernel.org/r/20201026102130.29368-1-andrew_gabbasov@mentor.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-11-01 12:01:04 +01:00
..
Kconfig ethernet: renesas: convert to SPDX identifiers 2018-09-10 10:11:53 -07:00
Makefile ethernet: renesas: convert to SPDX identifiers 2018-09-10 10:11:53 -07:00
ravb.h ravb: implement MTU change while device is up 2019-11-14 18:05:25 -08:00
ravb_main.c ravb: Fix bit fields checking in ravb_hwtstamp_get() 2020-11-01 12:01:04 +01:00
ravb_ptp.c ptp: Introduce strict checking of external time stamp options. 2019-11-15 12:48:32 -08:00
sh_eth.c sh_eth: check sh_eth_cpu_data::dual_port when dumping registers 2020-01-23 08:22:53 +01:00
sh_eth.h sh_eth: RX checksum offload support 2019-02-04 13:31:00 -08:00