2020-04-03 14:08:23

by Julia Lawall

[permalink] [raw]
Subject: question about drivers/net/ethernet/renesas/ravb_main.c

Hello,

In the function ravb_hwtstamp_get in ravb_main.c, the following code looks
suspicious:

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;
else
config.rx_filter = HWTSTAMP_FILTER_NONE;

According to drivers/net/ethernet/renesas/ravb.h,
RAVB_RXTSTAMP_TYPE_V2_L2_EVENT is 0x00000002 and RAVB_RXTSTAMP_TYPE_ALL is
0x00000006. Therefore, if the test on RAVB_RXTSTAMP_TYPE_ALL should be
true, it will never be reached. How should the code be changed?

thanks,
julia


2020-04-06 21:15:01

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: question about drivers/net/ethernet/renesas/ravb_main.c

Hello!

On 04/03/2020 05:04 PM, Julia Lawall wrote:

> In the function ravb_hwtstamp_get in ravb_main.c, the following code looks
> suspicious:
>
> 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;
> else
> config.rx_filter = HWTSTAMP_FILTER_NONE;
>
> According to drivers/net/ethernet/renesas/ravb.h,
> RAVB_RXTSTAMP_TYPE_V2_L2_EVENT is 0x00000002 and RAVB_RXTSTAMP_TYPE_ALL is
> 0x00000006. Therefore, if the test on RAVB_RXTSTAMP_TYPE_ALL should be
> true, it will never be reached. How should the code be changed?

After looking at the code, I think that setting RAVB_RXTSTAMP_TYPE_ALL to
0x00000004 should be enough. BTW, the RAVB_{R,T}XTSTAMP_VALID don't seem be
used anywhere...

> thanks,
> julia

MBR, Sergei