+++ /dev/null
-From 3ce29c17dc847bf4245e16aad78a7617afa96297 Mon Sep 17 00:00:00 2001
-From: Song Yoong Siang <yoong.siang.song@intel.com>
-Date: Tue, 2 May 2023 08:48:06 -0700
-Subject: igc: read before write to SRRCTL register
-
-From: Song Yoong Siang <yoong.siang.song@intel.com>
-
-commit 3ce29c17dc847bf4245e16aad78a7617afa96297 upstream.
-
-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@vger.kernel.org> # 5.14+
-Signed-off-by: Song Yoong Siang <yoong.siang.song@intel.com>
-Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
-Reviewed-by: Jesper Dangaard Brouer <brouer@redhat.com>
-Tested-by: Jesper Dangaard Brouer <brouer@redhat.com>
-Tested-by: Naama Meir <naamax.meir@linux.intel.com>
-Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- 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(-)
-
---- a/drivers/net/ethernet/intel/igc/igc_base.h
-+++ b/drivers/net/ethernet/intel/igc/igc_base.h
-@@ -85,8 +85,13 @@ union igc_adv_rx_desc {
- #define IGC_RXDCTL_SWFLUSH 0x04000000 /* Receive Software Flush */
-
- /* SRRCTL bit definitions */
--#define IGC_SRRCTL_BSIZEPKT_SHIFT 10 /* Shift _right_ */
--#define IGC_SRRCTL_BSIZEHDRSIZE_SHIFT 2 /* Shift _left_ */
--#define IGC_SRRCTL_DESCTYPE_ADV_ONEBUF 0x02000000
-+#define IGC_SRRCTL_BSIZEPKT_MASK GENMASK(6, 0)
-+#define IGC_SRRCTL_BSIZEPKT(x) FIELD_PREP(IGC_SRRCTL_BSIZEPKT_MASK, \
-+ (x) / 1024) /* in 1 KB resolution */
-+#define IGC_SRRCTL_BSIZEHDR_MASK GENMASK(13, 8)
-+#define IGC_SRRCTL_BSIZEHDR(x) FIELD_PREP(IGC_SRRCTL_BSIZEHDR_MASK, \
-+ (x) / 64) /* in 64 bytes resolution */
-+#define IGC_SRRCTL_DESCTYPE_MASK GENMASK(27, 25)
-+#define IGC_SRRCTL_DESCTYPE_ADV_ONEBUF FIELD_PREP(IGC_SRRCTL_DESCTYPE_MASK, 1)
-
- #endif /* _IGC_BASE_H */
---- a/drivers/net/ethernet/intel/igc/igc_main.c
-+++ b/drivers/net/ethernet/intel/igc/igc_main.c
-@@ -640,8 +640,11 @@ static void igc_configure_rx_ring(struct
- else
- buf_size = IGC_RXBUFFER_2048;
-
-- srrctl = IGC_RX_HDR_LEN << IGC_SRRCTL_BSIZEHDRSIZE_SHIFT;
-- srrctl |= buf_size >> IGC_SRRCTL_BSIZEPKT_SHIFT;
-+ srrctl = rd32(IGC_SRRCTL(reg_idx));
-+ srrctl &= ~(IGC_SRRCTL_BSIZEPKT_MASK | IGC_SRRCTL_BSIZEHDR_MASK |
-+ IGC_SRRCTL_DESCTYPE_MASK);
-+ srrctl |= IGC_SRRCTL_BSIZEHDR(IGC_RX_HDR_LEN);
-+ srrctl |= IGC_SRRCTL_BSIZEPKT(buf_size);
- srrctl |= IGC_SRRCTL_DESCTYPE_ADV_ONEBUF;
-
- wr32(IGC_SRRCTL(reg_idx), srrctl);
ksmbd-call-rcu_barrier-in-ksmbd_server_exit.patch
ksmbd-fix-null-pointer-dereference-in-smb2_get_info_filesystem.patch
ksmbd-fix-memleak-in-session-setup.patch
-igc-read-before-write-to-srrctl-register.patch
i2c-omap-fix-standard-mode-false-ack-readings.patch
riscv-mm-remove-redundant-parameter-of-create_fdt_early_page_table.patch
tracing-fix-permissions-for-the-buffer_percent-file.patch
+++ /dev/null
-From 3ce29c17dc847bf4245e16aad78a7617afa96297 Mon Sep 17 00:00:00 2001
-From: Song Yoong Siang <yoong.siang.song@intel.com>
-Date: Tue, 2 May 2023 08:48:06 -0700
-Subject: igc: read before write to SRRCTL register
-
-From: Song Yoong Siang <yoong.siang.song@intel.com>
-
-commit 3ce29c17dc847bf4245e16aad78a7617afa96297 upstream.
-
-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@vger.kernel.org> # 5.14+
-Signed-off-by: Song Yoong Siang <yoong.siang.song@intel.com>
-Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
-Reviewed-by: Jesper Dangaard Brouer <brouer@redhat.com>
-Tested-by: Jesper Dangaard Brouer <brouer@redhat.com>
-Tested-by: Naama Meir <naamax.meir@linux.intel.com>
-Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- 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(-)
-
---- a/drivers/net/ethernet/intel/igc/igc_base.h
-+++ b/drivers/net/ethernet/intel/igc/igc_base.h
-@@ -85,8 +85,13 @@ union igc_adv_rx_desc {
- #define IGC_RXDCTL_SWFLUSH 0x04000000 /* Receive Software Flush */
-
- /* SRRCTL bit definitions */
--#define IGC_SRRCTL_BSIZEPKT_SHIFT 10 /* Shift _right_ */
--#define IGC_SRRCTL_BSIZEHDRSIZE_SHIFT 2 /* Shift _left_ */
--#define IGC_SRRCTL_DESCTYPE_ADV_ONEBUF 0x02000000
-+#define IGC_SRRCTL_BSIZEPKT_MASK GENMASK(6, 0)
-+#define IGC_SRRCTL_BSIZEPKT(x) FIELD_PREP(IGC_SRRCTL_BSIZEPKT_MASK, \
-+ (x) / 1024) /* in 1 KB resolution */
-+#define IGC_SRRCTL_BSIZEHDR_MASK GENMASK(13, 8)
-+#define IGC_SRRCTL_BSIZEHDR(x) FIELD_PREP(IGC_SRRCTL_BSIZEHDR_MASK, \
-+ (x) / 64) /* in 64 bytes resolution */
-+#define IGC_SRRCTL_DESCTYPE_MASK GENMASK(27, 25)
-+#define IGC_SRRCTL_DESCTYPE_ADV_ONEBUF FIELD_PREP(IGC_SRRCTL_DESCTYPE_MASK, 1)
-
- #endif /* _IGC_BASE_H */
---- a/drivers/net/ethernet/intel/igc/igc_main.c
-+++ b/drivers/net/ethernet/intel/igc/igc_main.c
-@@ -641,8 +641,11 @@ static void igc_configure_rx_ring(struct
- else
- buf_size = IGC_RXBUFFER_2048;
-
-- srrctl = IGC_RX_HDR_LEN << IGC_SRRCTL_BSIZEHDRSIZE_SHIFT;
-- srrctl |= buf_size >> IGC_SRRCTL_BSIZEPKT_SHIFT;
-+ srrctl = rd32(IGC_SRRCTL(reg_idx));
-+ srrctl &= ~(IGC_SRRCTL_BSIZEPKT_MASK | IGC_SRRCTL_BSIZEHDR_MASK |
-+ IGC_SRRCTL_DESCTYPE_MASK);
-+ srrctl |= IGC_SRRCTL_BSIZEHDR(IGC_RX_HDR_LEN);
-+ srrctl |= IGC_SRRCTL_BSIZEPKT(buf_size);
- srrctl |= IGC_SRRCTL_DESCTYPE_ADV_ONEBUF;
-
- wr32(IGC_SRRCTL(reg_idx), srrctl);
ksmbd-not-allow-guest-user-on-multichannel.patch
ksmbd-fix-deadlock-in-ksmbd_find_crypto_ctx.patch
acpi-video-remove-acpi_backlight-video-quirk-for-lenovo-thinkpad-w530.patch
-igc-read-before-write-to-srrctl-register.patch
i2c-omap-fix-standard-mode-false-ack-readings.patch
riscv-mm-remove-redundant-parameter-of-create_fdt_early_page_table.patch
tracing-fix-permissions-for-the-buffer_percent-file.patch
+++ /dev/null
-From 3ce29c17dc847bf4245e16aad78a7617afa96297 Mon Sep 17 00:00:00 2001
-From: Song Yoong Siang <yoong.siang.song@intel.com>
-Date: Tue, 2 May 2023 08:48:06 -0700
-Subject: igc: read before write to SRRCTL register
-
-From: Song Yoong Siang <yoong.siang.song@intel.com>
-
-commit 3ce29c17dc847bf4245e16aad78a7617afa96297 upstream.
-
-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@vger.kernel.org> # 5.14+
-Signed-off-by: Song Yoong Siang <yoong.siang.song@intel.com>
-Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
-Reviewed-by: Jesper Dangaard Brouer <brouer@redhat.com>
-Tested-by: Jesper Dangaard Brouer <brouer@redhat.com>
-Tested-by: Naama Meir <naamax.meir@linux.intel.com>
-Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- 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(-)
-
---- a/drivers/net/ethernet/intel/igc/igc_base.h
-+++ b/drivers/net/ethernet/intel/igc/igc_base.h
-@@ -85,8 +85,13 @@ union igc_adv_rx_desc {
- #define IGC_RXDCTL_SWFLUSH 0x04000000 /* Receive Software Flush */
-
- /* SRRCTL bit definitions */
--#define IGC_SRRCTL_BSIZEPKT_SHIFT 10 /* Shift _right_ */
--#define IGC_SRRCTL_BSIZEHDRSIZE_SHIFT 2 /* Shift _left_ */
--#define IGC_SRRCTL_DESCTYPE_ADV_ONEBUF 0x02000000
-+#define IGC_SRRCTL_BSIZEPKT_MASK GENMASK(6, 0)
-+#define IGC_SRRCTL_BSIZEPKT(x) FIELD_PREP(IGC_SRRCTL_BSIZEPKT_MASK, \
-+ (x) / 1024) /* in 1 KB resolution */
-+#define IGC_SRRCTL_BSIZEHDR_MASK GENMASK(13, 8)
-+#define IGC_SRRCTL_BSIZEHDR(x) FIELD_PREP(IGC_SRRCTL_BSIZEHDR_MASK, \
-+ (x) / 64) /* in 64 bytes resolution */
-+#define IGC_SRRCTL_DESCTYPE_MASK GENMASK(27, 25)
-+#define IGC_SRRCTL_DESCTYPE_ADV_ONEBUF FIELD_PREP(IGC_SRRCTL_DESCTYPE_MASK, 1)
-
- #endif /* _IGC_BASE_H */
---- a/drivers/net/ethernet/intel/igc/igc_main.c
-+++ b/drivers/net/ethernet/intel/igc/igc_main.c
-@@ -641,8 +641,11 @@ static void igc_configure_rx_ring(struct
- else
- buf_size = IGC_RXBUFFER_2048;
-
-- srrctl = IGC_RX_HDR_LEN << IGC_SRRCTL_BSIZEHDRSIZE_SHIFT;
-- srrctl |= buf_size >> IGC_SRRCTL_BSIZEPKT_SHIFT;
-+ srrctl = rd32(IGC_SRRCTL(reg_idx));
-+ srrctl &= ~(IGC_SRRCTL_BSIZEPKT_MASK | IGC_SRRCTL_BSIZEHDR_MASK |
-+ IGC_SRRCTL_DESCTYPE_MASK);
-+ srrctl |= IGC_SRRCTL_BSIZEHDR(IGC_RX_HDR_LEN);
-+ srrctl |= IGC_SRRCTL_BSIZEPKT(buf_size);
- srrctl |= IGC_SRRCTL_DESCTYPE_ADV_ONEBUF;
-
- wr32(IGC_SRRCTL(reg_idx), srrctl);
ksmbd-not-allow-guest-user-on-multichannel.patch
ksmbd-fix-deadlock-in-ksmbd_find_crypto_ctx.patch
acpi-video-remove-acpi_backlight-video-quirk-for-lenovo-thinkpad-w530.patch
-igc-read-before-write-to-srrctl-register.patch
i2c-omap-fix-standard-mode-false-ack-readings.patch
riscv-mm-remove-redundant-parameter-of-create_fdt_early_page_table.patch
tracing-fix-permissions-for-the-buffer_percent-file.patch