On Tue, May 02, 2023 at 08:48:06AM -0700, Tony Nguyen wrote: > From: Song Yoong Siang <yoong.siang.song@xxxxxxxxx> > > igc_configure_rx_ring() function will be called as part of XDP program > setup. If Rx hardware timestamp is enabled prio to XDP program setup, > this timestamp enablement will be overwritten when buffer size is > written into SRRCTL register. > > Thus, this commit read the register value before write to SRRCTL > register. This commit is tested by using xdp_hw_metadata bpf selftest > tool. The tool enables Rx hardware timestamp and then attach XDP program > to igc driver. It will display hardware timestamp of UDP packet with > port number 9092. Below are detail of test steps and results. > > Command on DUT: > sudo ./xdp_hw_metadata <interface name> > > Command on Link Partner: > echo -n skb | nc -u -q1 <destination IPv4 addr> 9092 > > Result before this patch: > skb hwtstamp is not found! > > Result after this patch: > found skb hwtstamp = 1677800973.642836757 > > Optionally, read PHC to confirm the values obtained are almost the same: > Command: > sudo ./testptp -d /dev/ptp0 -g > Result: > clock time: 1677800973.913598978 or Fri Mar 3 07:49:33 2023 > > Fixes: fc9df2a0b520 ("igc: Enable RX via AF_XDP zero-copy") > Cc: <stable@xxxxxxxxxxxxxxx> # 5.14+ > Signed-off-by: Song Yoong Siang <yoong.siang.song@xxxxxxxxx> > Reviewed-by: Jacob Keller <jacob.e.keller@xxxxxxxxx> > Reviewed-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx> > Tested-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx> > Tested-by: Naama Meir <naamax.meir@xxxxxxxxxxxxxxx> > Signed-off-by: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx> > --- > drivers/net/ethernet/intel/igc/igc_base.h | 11 ++++++++--- > drivers/net/ethernet/intel/igc/igc_main.c | 7 +++++-- > 2 files changed, 13 insertions(+), 5 deletions(-) > Thanks, Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxx>