linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next] sfc: siena: eliminate xdp_rxq_info_valid using XDP base API
@ 2025-06-26 15:59 Fushuai Wang
  2025-06-27 15:34 ` Edward Cree
  0 siblings, 1 reply; 3+ messages in thread
From: Fushuai Wang @ 2025-06-26 15:59 UTC (permalink / raw)
  To: ecree.xilinx, andrew+netdev, davem, edumazet, kuba, pabeni
  Cc: netdev, linux-net-drivers, linux-kernel, Fushuai Wang

Commit eb9a36be7f3e ("sfc: perform XDP processing on received packets")
and commit d48523cb88e0 ("sfc: Copy shared files needed for Siena
(part 2)") use xdp_rxq_info_valid to track failures of xdp_rxq_info_reg().
However, this driver-maintained state becomes redundant since the XDP
framework already provides xdp_rxq_info_is_reg() for checking registration
status.

Signed-off-by: Fushuai Wang <wangfushuai@baidu.com>
---
 drivers/net/ethernet/sfc/net_driver.h       | 2 --
 drivers/net/ethernet/sfc/rx_common.c        | 6 +-----
 drivers/net/ethernet/sfc/siena/net_driver.h | 2 --
 drivers/net/ethernet/sfc/siena/rx_common.c  | 6 +-----
 4 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/net/ethernet/sfc/net_driver.h b/drivers/net/ethernet/sfc/net_driver.h
index 5c0f306fb019..b98c259f672d 100644
--- a/drivers/net/ethernet/sfc/net_driver.h
+++ b/drivers/net/ethernet/sfc/net_driver.h
@@ -404,7 +404,6 @@ struct efx_rx_page_state {
  * @old_rx_packets: Value of @rx_packets as of last efx_init_rx_queue()
  * @old_rx_bytes: Value of @rx_bytes as of last efx_init_rx_queue()
  * @xdp_rxq_info: XDP specific RX queue information.
- * @xdp_rxq_info_valid: Is xdp_rxq_info valid data?.
  */
 struct efx_rx_queue {
 	struct efx_nic *efx;
@@ -443,7 +442,6 @@ struct efx_rx_queue {
 	unsigned long old_rx_packets;
 	unsigned long old_rx_bytes;
 	struct xdp_rxq_info xdp_rxq_info;
-	bool xdp_rxq_info_valid;
 };
 
 enum efx_sync_events_state {
diff --git a/drivers/net/ethernet/sfc/rx_common.c b/drivers/net/ethernet/sfc/rx_common.c
index f4f75299dfa9..5306f4c44be4 100644
--- a/drivers/net/ethernet/sfc/rx_common.c
+++ b/drivers/net/ethernet/sfc/rx_common.c
@@ -269,8 +269,6 @@ void efx_init_rx_queue(struct efx_rx_queue *rx_queue)
 			  "Failure to initialise XDP queue information rc=%d\n",
 			  rc);
 		efx->xdp_rxq_info_failed = true;
-	} else {
-		rx_queue->xdp_rxq_info_valid = true;
 	}
 
 	/* Set up RX descriptor ring */
@@ -302,10 +300,8 @@ void efx_fini_rx_queue(struct efx_rx_queue *rx_queue)
 
 	efx_fini_rx_recycle_ring(rx_queue);
 
-	if (rx_queue->xdp_rxq_info_valid)
+	if (xdp_rxq_info_is_reg(&rx_queue->xdp_rxq_info))
 		xdp_rxq_info_unreg(&rx_queue->xdp_rxq_info);
-
-	rx_queue->xdp_rxq_info_valid = false;
 }
 
 void efx_remove_rx_queue(struct efx_rx_queue *rx_queue)
diff --git a/drivers/net/ethernet/sfc/siena/net_driver.h b/drivers/net/ethernet/sfc/siena/net_driver.h
index 2be3bad3c993..4cf556782133 100644
--- a/drivers/net/ethernet/sfc/siena/net_driver.h
+++ b/drivers/net/ethernet/sfc/siena/net_driver.h
@@ -384,7 +384,6 @@ struct efx_rx_page_state {
  * @recycle_count: RX buffer recycle counter.
  * @slow_fill: Timer used to defer efx_nic_generate_fill_event().
  * @xdp_rxq_info: XDP specific RX queue information.
- * @xdp_rxq_info_valid: Is xdp_rxq_info valid data?.
  */
 struct efx_rx_queue {
 	struct efx_nic *efx;
@@ -417,7 +416,6 @@ struct efx_rx_queue {
 	/* Statistics to supplement MAC stats */
 	unsigned long rx_packets;
 	struct xdp_rxq_info xdp_rxq_info;
-	bool xdp_rxq_info_valid;
 };
 
 enum efx_sync_events_state {
diff --git a/drivers/net/ethernet/sfc/siena/rx_common.c b/drivers/net/ethernet/sfc/siena/rx_common.c
index 98d27174015d..4ae09505e417 100644
--- a/drivers/net/ethernet/sfc/siena/rx_common.c
+++ b/drivers/net/ethernet/sfc/siena/rx_common.c
@@ -268,8 +268,6 @@ void efx_siena_init_rx_queue(struct efx_rx_queue *rx_queue)
 			  "Failure to initialise XDP queue information rc=%d\n",
 			  rc);
 		efx->xdp_rxq_info_failed = true;
-	} else {
-		rx_queue->xdp_rxq_info_valid = true;
 	}
 
 	/* Set up RX descriptor ring */
@@ -299,10 +297,8 @@ void efx_siena_fini_rx_queue(struct efx_rx_queue *rx_queue)
 
 	efx_fini_rx_recycle_ring(rx_queue);
 
-	if (rx_queue->xdp_rxq_info_valid)
+	if (xdp_rxq_info_is_reg(&rx_queue->xdp_rxq_info))
 		xdp_rxq_info_unreg(&rx_queue->xdp_rxq_info);
-
-	rx_queue->xdp_rxq_info_valid = false;
 }
 
 void efx_siena_remove_rx_queue(struct efx_rx_queue *rx_queue)
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH net-next] sfc: siena: eliminate xdp_rxq_info_valid using XDP base API
  2025-06-26 15:59 [PATCH net-next] sfc: siena: eliminate xdp_rxq_info_valid using XDP base API Fushuai Wang
@ 2025-06-27 15:34 ` Edward Cree
  2025-06-28  4:19   ` Fushuai Wang
  0 siblings, 1 reply; 3+ messages in thread
From: Edward Cree @ 2025-06-27 15:34 UTC (permalink / raw)
  To: Fushuai Wang, andrew+netdev, davem, edumazet, kuba, pabeni
  Cc: netdev, linux-net-drivers, linux-kernel

On 26/06/2025 16:59, Fushuai Wang wrote:
> Commit eb9a36be7f3e ("sfc: perform XDP processing on received packets")
> and commit d48523cb88e0 ("sfc: Copy shared files needed for Siena
> (part 2)") use xdp_rxq_info_valid to track failures of xdp_rxq_info_reg().
> However, this driver-maintained state becomes redundant since the XDP
> framework already provides xdp_rxq_info_is_reg() for checking registration
> status.
> 
> Signed-off-by: Fushuai Wang <wangfushuai@baidu.com>

Looks alright except that subject prefix is misleading as it sounds like
 it's just patching siena rather than both siena and ef10.
I'd suggest splitting this into two patches, one just touching the siena
 version with this title, the other with subject prefix just "sfc: ".

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net-next] sfc: siena: eliminate xdp_rxq_info_valid using XDP base API
  2025-06-27 15:34 ` Edward Cree
@ 2025-06-28  4:19   ` Fushuai Wang
  0 siblings, 0 replies; 3+ messages in thread
From: Fushuai Wang @ 2025-06-28  4:19 UTC (permalink / raw)
  To: ecree.xilinx
  Cc: andrew+netdev, davem, edumazet, kuba, linux-kernel,
	linux-net-drivers, netdev, pabeni, wangfushuai

>> Commit eb9a36be7f3e ("sfc: perform XDP processing on received packets")
>> and commit d48523cb88e0 ("sfc: Copy shared files needed for Siena
>> (part 2)") use xdp_rxq_info_valid to track failures of xdp_rxq_info_reg().
>> However, this driver-maintained state becomes redundant since the XDP
>> framework already provides xdp_rxq_info_is_reg() for checking registration
>> status.
>> 
>> Signed-off-by: Fushuai Wang <wangfushuai@baidu.com>
> 
> Looks alright except that subject prefix is misleading as it sounds like
>  it's just patching siena rather than both siena and ef10.
> I'd suggest splitting this into two patches, one just touching the siena
>  version with this title, the other with subject prefix just "sfc: ".

Hi, Edward

I'll split this into two separate patches and send the update
patches shortly.

--
Regards,
Wang

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-06-28  4:22 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-26 15:59 [PATCH net-next] sfc: siena: eliminate xdp_rxq_info_valid using XDP base API Fushuai Wang
2025-06-27 15:34 ` Edward Cree
2025-06-28  4:19   ` Fushuai Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).