* [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers
@ 2024-10-26 4:12 Yue Haibing
2024-10-26 4:12 ` [PATCH v4 net-next 1/4] igc: Fix passing 0 to ERR_PTR in igc_xdp_run_prog() Yue Haibing
` (4 more replies)
0 siblings, 5 replies; 15+ messages in thread
From: Yue Haibing @ 2024-10-26 4:12 UTC (permalink / raw)
To: anthony.l.nguyen, przemyslaw.kitszel, davem, edumazet, kuba,
pabeni, ast, daniel, hawk, john.fastabend, maciej.fijalkowski,
vedang.patel, jithu.joseph, andre.guedes, horms, jacob.e.keller,
sven.auhagen, alexander.h.duyck
Cc: intel-wired-lan, netdev, linux-kernel, bpf, yuehaibing
Fixing sparse error in xdp run code by introducing new variable xdp_res
instead of overloading this into the skb pointer as i40e drivers done
in commit 12738ac4754e ("i40e: Fix sparse errors in i40e_txrx.c") and
commit ae4393dfd472 ("i40e: fix broken XDP support").
v4: Target to net-next
v3: https://lore.kernel.org/bpf/20241022065623.1282224-3-yuehaibing@huawei.com/T/
Fix uninitialized 'xdp_res' in patch 3 and 4 which Reported-by
kernel test robot
v2: Fix this as i40e drivers done instead of return NULL in xdp run code
Yue Haibing (4):
igc: Fix passing 0 to ERR_PTR in igc_xdp_run_prog()
igb: Fix passing 0 to ERR_PTR in igb_run_xdp()
ixgbe: Fix passing 0 to ERR_PTR in ixgbe_run_xdp()
ixgbevf: Fix passing 0 to ERR_PTR in ixgbevf_run_xdp()
drivers/net/ethernet/intel/igb/igb_main.c | 22 +++++++-----------
drivers/net/ethernet/intel/igc/igc_main.c | 20 ++++++----------
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 23 ++++++++-----------
.../net/ethernet/intel/ixgbevf/ixgbevf_main.c | 23 ++++++++-----------
4 files changed, 34 insertions(+), 54 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4 net-next 1/4] igc: Fix passing 0 to ERR_PTR in igc_xdp_run_prog()
2024-10-26 4:12 [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers Yue Haibing
@ 2024-10-26 4:12 ` Yue Haibing
2024-10-26 15:37 ` Simon Horman
2024-11-06 13:22 ` [Intel-wired-lan] " Avigail Dahan
2024-10-26 4:12 ` [PATCH v4 net-next 2/4] igb: Fix passing 0 to ERR_PTR in igb_run_xdp() Yue Haibing
` (3 subsequent siblings)
4 siblings, 2 replies; 15+ messages in thread
From: Yue Haibing @ 2024-10-26 4:12 UTC (permalink / raw)
To: anthony.l.nguyen, przemyslaw.kitszel, davem, edumazet, kuba,
pabeni, ast, daniel, hawk, john.fastabend, maciej.fijalkowski,
vedang.patel, jithu.joseph, andre.guedes, horms, jacob.e.keller,
sven.auhagen, alexander.h.duyck
Cc: intel-wired-lan, netdev, linux-kernel, bpf, yuehaibing
igc_xdp_run_prog() converts customed xdp action to a negative error code
with the sk_buff pointer type which be checked with IS_ERR in
igc_clean_rx_irq(). Remove this error pointer handing instead use plain
int return value to fix this smatch warnings:
drivers/net/ethernet/intel/igc/igc_main.c:2533
igc_xdp_run_prog() warn: passing zero to 'ERR_PTR'
Fixes: 26575105d6ed ("igc: Add initial XDP support")
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
---
drivers/net/ethernet/intel/igc/igc_main.c | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 6e70bca15db1..5e44c2546a12 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -2123,10 +2123,6 @@ static bool igc_cleanup_headers(struct igc_ring *rx_ring,
union igc_adv_rx_desc *rx_desc,
struct sk_buff *skb)
{
- /* XDP packets use error pointer so abort at this point */
- if (IS_ERR(skb))
- return true;
-
if (unlikely(igc_test_staterr(rx_desc, IGC_RXDEXT_STATERR_RXE))) {
struct net_device *netdev = rx_ring->netdev;
@@ -2515,8 +2511,7 @@ static int __igc_xdp_run_prog(struct igc_adapter *adapter,
}
}
-static struct sk_buff *igc_xdp_run_prog(struct igc_adapter *adapter,
- struct xdp_buff *xdp)
+static int igc_xdp_run_prog(struct igc_adapter *adapter, struct xdp_buff *xdp)
{
struct bpf_prog *prog;
int res;
@@ -2530,7 +2525,7 @@ static struct sk_buff *igc_xdp_run_prog(struct igc_adapter *adapter,
res = __igc_xdp_run_prog(adapter, prog, xdp);
out:
- return ERR_PTR(-res);
+ return res;
}
/* This function assumes __netif_tx_lock is held by the caller. */
@@ -2585,6 +2580,7 @@ static int igc_clean_rx_irq(struct igc_q_vector *q_vector, const int budget)
struct sk_buff *skb = rx_ring->skb;
u16 cleaned_count = igc_desc_unused(rx_ring);
int xdp_status = 0, rx_buffer_pgcnt;
+ int xdp_res = 0;
while (likely(total_packets < budget)) {
struct igc_xdp_buff ctx = { .rx_ts = NULL };
@@ -2630,12 +2626,10 @@ static int igc_clean_rx_irq(struct igc_q_vector *q_vector, const int budget)
xdp_buff_clear_frags_flag(&ctx.xdp);
ctx.rx_desc = rx_desc;
- skb = igc_xdp_run_prog(adapter, &ctx.xdp);
+ xdp_res = igc_xdp_run_prog(adapter, &ctx.xdp);
}
- if (IS_ERR(skb)) {
- unsigned int xdp_res = -PTR_ERR(skb);
-
+ if (xdp_res) {
switch (xdp_res) {
case IGC_XDP_CONSUMED:
rx_buffer->pagecnt_bias++;
@@ -2657,7 +2651,7 @@ static int igc_clean_rx_irq(struct igc_q_vector *q_vector, const int budget)
skb = igc_construct_skb(rx_ring, rx_buffer, &ctx);
/* exit if we failed to retrieve a buffer */
- if (!skb) {
+ if (!xdp_res && !skb) {
rx_ring->rx_stats.alloc_failed++;
rx_buffer->pagecnt_bias++;
set_bit(IGC_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags);
@@ -2672,7 +2666,7 @@ static int igc_clean_rx_irq(struct igc_q_vector *q_vector, const int budget)
continue;
/* verify the packet layout is correct */
- if (igc_cleanup_headers(rx_ring, rx_desc, skb)) {
+ if (xdp_res || igc_cleanup_headers(rx_ring, rx_desc, skb)) {
skb = NULL;
continue;
}
--
2.34.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4 net-next 2/4] igb: Fix passing 0 to ERR_PTR in igb_run_xdp()
2024-10-26 4:12 [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers Yue Haibing
2024-10-26 4:12 ` [PATCH v4 net-next 1/4] igc: Fix passing 0 to ERR_PTR in igc_xdp_run_prog() Yue Haibing
@ 2024-10-26 4:12 ` Yue Haibing
2024-10-26 15:37 ` Simon Horman
2024-11-12 12:26 ` [Intel-wired-lan] " Rout, ChandanX
2024-10-26 4:12 ` [PATCH v4 net-next 3/4] ixgbe: Fix passing 0 to ERR_PTR in ixgbe_run_xdp() Yue Haibing
` (2 subsequent siblings)
4 siblings, 2 replies; 15+ messages in thread
From: Yue Haibing @ 2024-10-26 4:12 UTC (permalink / raw)
To: anthony.l.nguyen, przemyslaw.kitszel, davem, edumazet, kuba,
pabeni, ast, daniel, hawk, john.fastabend, maciej.fijalkowski,
vedang.patel, jithu.joseph, andre.guedes, horms, jacob.e.keller,
sven.auhagen, alexander.h.duyck
Cc: intel-wired-lan, netdev, linux-kernel, bpf, yuehaibing
igb_run_xdp() converts customed xdp action to a negative error code
with the sk_buff pointer type which be checked with IS_ERR in
igb_clean_rx_irq(). Remove this error pointer handing instead use plain
int return value.
Fixes: 9cbc948b5a20 ("igb: add XDP support")
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
---
drivers/net/ethernet/intel/igb/igb_main.c | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index f1d088168723..50c23dfcf304 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -8584,9 +8584,8 @@ static struct sk_buff *igb_build_skb(struct igb_ring *rx_ring,
return skb;
}
-static struct sk_buff *igb_run_xdp(struct igb_adapter *adapter,
- struct igb_ring *rx_ring,
- struct xdp_buff *xdp)
+static int igb_run_xdp(struct igb_adapter *adapter, struct igb_ring *rx_ring,
+ struct xdp_buff *xdp)
{
int err, result = IGB_XDP_PASS;
struct bpf_prog *xdp_prog;
@@ -8626,7 +8625,7 @@ static struct sk_buff *igb_run_xdp(struct igb_adapter *adapter,
break;
}
xdp_out:
- return ERR_PTR(-result);
+ return result;
}
static unsigned int igb_rx_frame_truesize(struct igb_ring *rx_ring,
@@ -8752,10 +8751,6 @@ static bool igb_cleanup_headers(struct igb_ring *rx_ring,
union e1000_adv_rx_desc *rx_desc,
struct sk_buff *skb)
{
- /* XDP packets use error pointer so abort at this point */
- if (IS_ERR(skb))
- return true;
-
if (unlikely((igb_test_staterr(rx_desc,
E1000_RXDEXT_ERR_FRAME_ERR_MASK)))) {
struct net_device *netdev = rx_ring->netdev;
@@ -8879,6 +8874,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
struct xdp_buff xdp;
u32 frame_sz = 0;
int rx_buf_pgcnt;
+ int xdp_res = 0;
/* Frame size depend on rx_ring setup when PAGE_SIZE=4K */
#if (PAGE_SIZE < 8192)
@@ -8936,12 +8932,10 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
/* At larger PAGE_SIZE, frame_sz depend on len size */
xdp.frame_sz = igb_rx_frame_truesize(rx_ring, size);
#endif
- skb = igb_run_xdp(adapter, rx_ring, &xdp);
+ xdp_res = igb_run_xdp(adapter, rx_ring, &xdp);
}
- if (IS_ERR(skb)) {
- unsigned int xdp_res = -PTR_ERR(skb);
-
+ if (xdp_res) {
if (xdp_res & (IGB_XDP_TX | IGB_XDP_REDIR)) {
xdp_xmit |= xdp_res;
igb_rx_buffer_flip(rx_ring, rx_buffer, size);
@@ -8960,7 +8954,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
&xdp, timestamp);
/* exit if we failed to retrieve a buffer */
- if (!skb) {
+ if (!xdp_res && !skb) {
rx_ring->rx_stats.alloc_failed++;
rx_buffer->pagecnt_bias++;
break;
@@ -8974,7 +8968,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
continue;
/* verify the packet layout is correct */
- if (igb_cleanup_headers(rx_ring, rx_desc, skb)) {
+ if (xdp_res || igb_cleanup_headers(rx_ring, rx_desc, skb)) {
skb = NULL;
continue;
}
--
2.34.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4 net-next 3/4] ixgbe: Fix passing 0 to ERR_PTR in ixgbe_run_xdp()
2024-10-26 4:12 [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers Yue Haibing
2024-10-26 4:12 ` [PATCH v4 net-next 1/4] igc: Fix passing 0 to ERR_PTR in igc_xdp_run_prog() Yue Haibing
2024-10-26 4:12 ` [PATCH v4 net-next 2/4] igb: Fix passing 0 to ERR_PTR in igb_run_xdp() Yue Haibing
@ 2024-10-26 4:12 ` Yue Haibing
2024-10-26 15:37 ` Simon Horman
2024-11-12 12:25 ` [Intel-wired-lan] " Rout, ChandanX
2024-10-26 4:12 ` [PATCH v4 net-next 4/4] ixgbevf: Fix passing 0 to ERR_PTR in ixgbevf_run_xdp() Yue Haibing
2024-10-29 14:44 ` [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers Jakub Kicinski
4 siblings, 2 replies; 15+ messages in thread
From: Yue Haibing @ 2024-10-26 4:12 UTC (permalink / raw)
To: anthony.l.nguyen, przemyslaw.kitszel, davem, edumazet, kuba,
pabeni, ast, daniel, hawk, john.fastabend, maciej.fijalkowski,
vedang.patel, jithu.joseph, andre.guedes, horms, jacob.e.keller,
sven.auhagen, alexander.h.duyck
Cc: intel-wired-lan, netdev, linux-kernel, bpf, yuehaibing
ixgbe_run_xdp() converts customed xdp action to a negative error code
with the sk_buff pointer type which be checked with IS_ERR in
ixgbe_clean_rx_irq(). Remove this error pointer handing instead use
plain int return value.
Fixes: 924708081629 ("ixgbe: add XDP support for pass and drop actions")
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 23 ++++++++-----------
1 file changed, 9 insertions(+), 14 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 8b8404d8c946..78bf97ab0524 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -1908,10 +1908,6 @@ bool ixgbe_cleanup_headers(struct ixgbe_ring *rx_ring,
{
struct net_device *netdev = rx_ring->netdev;
- /* XDP packets use error pointer so abort at this point */
- if (IS_ERR(skb))
- return true;
-
/* Verify netdev is present, and that packet does not have any
* errors that would be unacceptable to the netdev.
*/
@@ -2219,9 +2215,9 @@ static struct sk_buff *ixgbe_build_skb(struct ixgbe_ring *rx_ring,
return skb;
}
-static struct sk_buff *ixgbe_run_xdp(struct ixgbe_adapter *adapter,
- struct ixgbe_ring *rx_ring,
- struct xdp_buff *xdp)
+static int ixgbe_run_xdp(struct ixgbe_adapter *adapter,
+ struct ixgbe_ring *rx_ring,
+ struct xdp_buff *xdp)
{
int err, result = IXGBE_XDP_PASS;
struct bpf_prog *xdp_prog;
@@ -2271,7 +2267,7 @@ static struct sk_buff *ixgbe_run_xdp(struct ixgbe_adapter *adapter,
break;
}
xdp_out:
- return ERR_PTR(-result);
+ return result;
}
static unsigned int ixgbe_rx_frame_truesize(struct ixgbe_ring *rx_ring,
@@ -2329,6 +2325,7 @@ static int ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector,
unsigned int offset = rx_ring->rx_offset;
unsigned int xdp_xmit = 0;
struct xdp_buff xdp;
+ int xdp_res = 0;
/* Frame size depend on rx_ring setup when PAGE_SIZE=4K */
#if (PAGE_SIZE < 8192)
@@ -2374,12 +2371,10 @@ static int ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector,
/* At larger PAGE_SIZE, frame_sz depend on len size */
xdp.frame_sz = ixgbe_rx_frame_truesize(rx_ring, size);
#endif
- skb = ixgbe_run_xdp(adapter, rx_ring, &xdp);
+ xdp_res = ixgbe_run_xdp(adapter, rx_ring, &xdp);
}
- if (IS_ERR(skb)) {
- unsigned int xdp_res = -PTR_ERR(skb);
-
+ if (xdp_res) {
if (xdp_res & (IXGBE_XDP_TX | IXGBE_XDP_REDIR)) {
xdp_xmit |= xdp_res;
ixgbe_rx_buffer_flip(rx_ring, rx_buffer, size);
@@ -2399,7 +2394,7 @@ static int ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector,
}
/* exit if we failed to retrieve a buffer */
- if (!skb) {
+ if (!xdp_res && !skb) {
rx_ring->rx_stats.alloc_rx_buff_failed++;
rx_buffer->pagecnt_bias++;
break;
@@ -2413,7 +2408,7 @@ static int ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector,
continue;
/* verify the packet layout is correct */
- if (ixgbe_cleanup_headers(rx_ring, rx_desc, skb))
+ if (xdp_res || ixgbe_cleanup_headers(rx_ring, rx_desc, skb))
continue;
/* probably a little skewed due to removing CRC */
--
2.34.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4 net-next 4/4] ixgbevf: Fix passing 0 to ERR_PTR in ixgbevf_run_xdp()
2024-10-26 4:12 [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers Yue Haibing
` (2 preceding siblings ...)
2024-10-26 4:12 ` [PATCH v4 net-next 3/4] ixgbe: Fix passing 0 to ERR_PTR in ixgbe_run_xdp() Yue Haibing
@ 2024-10-26 4:12 ` Yue Haibing
2024-10-26 15:38 ` Simon Horman
2024-11-12 12:22 ` [Intel-wired-lan] " Rout, ChandanX
2024-10-29 14:44 ` [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers Jakub Kicinski
4 siblings, 2 replies; 15+ messages in thread
From: Yue Haibing @ 2024-10-26 4:12 UTC (permalink / raw)
To: anthony.l.nguyen, przemyslaw.kitszel, davem, edumazet, kuba,
pabeni, ast, daniel, hawk, john.fastabend, maciej.fijalkowski,
vedang.patel, jithu.joseph, andre.guedes, horms, jacob.e.keller,
sven.auhagen, alexander.h.duyck
Cc: intel-wired-lan, netdev, linux-kernel, bpf, yuehaibing
ixgbevf_run_xdp() converts customed xdp action to a negative error code
with the sk_buff pointer type which be checked with IS_ERR in
ixgbevf_clean_rx_irq(). Remove this error pointer handing instead use
plain int return value.
Fixes: c7aec59657b6 ("ixgbevf: Add XDP support for pass and drop actions")
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
---
.../net/ethernet/intel/ixgbevf/ixgbevf_main.c | 23 ++++++++-----------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index 149911e3002a..183d2305d058 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -732,10 +732,6 @@ static bool ixgbevf_cleanup_headers(struct ixgbevf_ring *rx_ring,
union ixgbe_adv_rx_desc *rx_desc,
struct sk_buff *skb)
{
- /* XDP packets use error pointer so abort at this point */
- if (IS_ERR(skb))
- return true;
-
/* verify that the packet does not have any known errors */
if (unlikely(ixgbevf_test_staterr(rx_desc,
IXGBE_RXDADV_ERR_FRAME_ERR_MASK))) {
@@ -1044,9 +1040,9 @@ static int ixgbevf_xmit_xdp_ring(struct ixgbevf_ring *ring,
return IXGBEVF_XDP_TX;
}
-static struct sk_buff *ixgbevf_run_xdp(struct ixgbevf_adapter *adapter,
- struct ixgbevf_ring *rx_ring,
- struct xdp_buff *xdp)
+static int ixgbevf_run_xdp(struct ixgbevf_adapter *adapter,
+ struct ixgbevf_ring *rx_ring,
+ struct xdp_buff *xdp)
{
int result = IXGBEVF_XDP_PASS;
struct ixgbevf_ring *xdp_ring;
@@ -1080,7 +1076,7 @@ static struct sk_buff *ixgbevf_run_xdp(struct ixgbevf_adapter *adapter,
break;
}
xdp_out:
- return ERR_PTR(-result);
+ return result;
}
static unsigned int ixgbevf_rx_frame_truesize(struct ixgbevf_ring *rx_ring,
@@ -1122,6 +1118,7 @@ static int ixgbevf_clean_rx_irq(struct ixgbevf_q_vector *q_vector,
struct sk_buff *skb = rx_ring->skb;
bool xdp_xmit = false;
struct xdp_buff xdp;
+ int xdp_res = 0;
/* Frame size depend on rx_ring setup when PAGE_SIZE=4K */
#if (PAGE_SIZE < 8192)
@@ -1165,11 +1162,11 @@ static int ixgbevf_clean_rx_irq(struct ixgbevf_q_vector *q_vector,
/* At larger PAGE_SIZE, frame_sz depend on len size */
xdp.frame_sz = ixgbevf_rx_frame_truesize(rx_ring, size);
#endif
- skb = ixgbevf_run_xdp(adapter, rx_ring, &xdp);
+ xdp_res = ixgbevf_run_xdp(adapter, rx_ring, &xdp);
}
- if (IS_ERR(skb)) {
- if (PTR_ERR(skb) == -IXGBEVF_XDP_TX) {
+ if (xdp_res) {
+ if (xdp_res == IXGBEVF_XDP_TX) {
xdp_xmit = true;
ixgbevf_rx_buffer_flip(rx_ring, rx_buffer,
size);
@@ -1189,7 +1186,7 @@ static int ixgbevf_clean_rx_irq(struct ixgbevf_q_vector *q_vector,
}
/* exit if we failed to retrieve a buffer */
- if (!skb) {
+ if (!xdp_res && !skb) {
rx_ring->rx_stats.alloc_rx_buff_failed++;
rx_buffer->pagecnt_bias++;
break;
@@ -1203,7 +1200,7 @@ static int ixgbevf_clean_rx_irq(struct ixgbevf_q_vector *q_vector,
continue;
/* verify the packet layout is correct */
- if (ixgbevf_cleanup_headers(rx_ring, rx_desc, skb)) {
+ if (xdp_res || ixgbevf_cleanup_headers(rx_ring, rx_desc, skb)) {
skb = NULL;
continue;
}
--
2.34.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 net-next 1/4] igc: Fix passing 0 to ERR_PTR in igc_xdp_run_prog()
2024-10-26 4:12 ` [PATCH v4 net-next 1/4] igc: Fix passing 0 to ERR_PTR in igc_xdp_run_prog() Yue Haibing
@ 2024-10-26 15:37 ` Simon Horman
2024-11-06 13:22 ` [Intel-wired-lan] " Avigail Dahan
1 sibling, 0 replies; 15+ messages in thread
From: Simon Horman @ 2024-10-26 15:37 UTC (permalink / raw)
To: Yue Haibing
Cc: anthony.l.nguyen, przemyslaw.kitszel, davem, edumazet, kuba,
pabeni, ast, daniel, hawk, john.fastabend, maciej.fijalkowski,
vedang.patel, jithu.joseph, andre.guedes, jacob.e.keller,
sven.auhagen, alexander.h.duyck, intel-wired-lan, netdev,
linux-kernel, bpf
On Sat, Oct 26, 2024 at 12:12:46PM +0800, Yue Haibing wrote:
> igc_xdp_run_prog() converts customed xdp action to a negative error code
> with the sk_buff pointer type which be checked with IS_ERR in
> igc_clean_rx_irq(). Remove this error pointer handing instead use plain
> int return value to fix this smatch warnings:
>
> drivers/net/ethernet/intel/igc/igc_main.c:2533
> igc_xdp_run_prog() warn: passing zero to 'ERR_PTR'
>
> Fixes: 26575105d6ed ("igc: Add initial XDP support")
> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
> Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 net-next 2/4] igb: Fix passing 0 to ERR_PTR in igb_run_xdp()
2024-10-26 4:12 ` [PATCH v4 net-next 2/4] igb: Fix passing 0 to ERR_PTR in igb_run_xdp() Yue Haibing
@ 2024-10-26 15:37 ` Simon Horman
2024-11-12 12:26 ` [Intel-wired-lan] " Rout, ChandanX
1 sibling, 0 replies; 15+ messages in thread
From: Simon Horman @ 2024-10-26 15:37 UTC (permalink / raw)
To: Yue Haibing
Cc: anthony.l.nguyen, przemyslaw.kitszel, davem, edumazet, kuba,
pabeni, ast, daniel, hawk, john.fastabend, maciej.fijalkowski,
vedang.patel, jithu.joseph, andre.guedes, jacob.e.keller,
sven.auhagen, alexander.h.duyck, intel-wired-lan, netdev,
linux-kernel, bpf
On Sat, Oct 26, 2024 at 12:12:47PM +0800, Yue Haibing wrote:
> igb_run_xdp() converts customed xdp action to a negative error code
> with the sk_buff pointer type which be checked with IS_ERR in
> igb_clean_rx_irq(). Remove this error pointer handing instead use plain
> int return value.
>
> Fixes: 9cbc948b5a20 ("igb: add XDP support")
> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
> Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 net-next 3/4] ixgbe: Fix passing 0 to ERR_PTR in ixgbe_run_xdp()
2024-10-26 4:12 ` [PATCH v4 net-next 3/4] ixgbe: Fix passing 0 to ERR_PTR in ixgbe_run_xdp() Yue Haibing
@ 2024-10-26 15:37 ` Simon Horman
2024-11-12 12:25 ` [Intel-wired-lan] " Rout, ChandanX
1 sibling, 0 replies; 15+ messages in thread
From: Simon Horman @ 2024-10-26 15:37 UTC (permalink / raw)
To: Yue Haibing
Cc: anthony.l.nguyen, przemyslaw.kitszel, davem, edumazet, kuba,
pabeni, ast, daniel, hawk, john.fastabend, maciej.fijalkowski,
vedang.patel, jithu.joseph, andre.guedes, jacob.e.keller,
sven.auhagen, alexander.h.duyck, intel-wired-lan, netdev,
linux-kernel, bpf
On Sat, Oct 26, 2024 at 12:12:48PM +0800, Yue Haibing wrote:
> ixgbe_run_xdp() converts customed xdp action to a negative error code
> with the sk_buff pointer type which be checked with IS_ERR in
> ixgbe_clean_rx_irq(). Remove this error pointer handing instead use
> plain int return value.
>
> Fixes: 924708081629 ("ixgbe: add XDP support for pass and drop actions")
> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 net-next 4/4] ixgbevf: Fix passing 0 to ERR_PTR in ixgbevf_run_xdp()
2024-10-26 4:12 ` [PATCH v4 net-next 4/4] ixgbevf: Fix passing 0 to ERR_PTR in ixgbevf_run_xdp() Yue Haibing
@ 2024-10-26 15:38 ` Simon Horman
2024-11-12 12:22 ` [Intel-wired-lan] " Rout, ChandanX
1 sibling, 0 replies; 15+ messages in thread
From: Simon Horman @ 2024-10-26 15:38 UTC (permalink / raw)
To: Yue Haibing
Cc: anthony.l.nguyen, przemyslaw.kitszel, davem, edumazet, kuba,
pabeni, ast, daniel, hawk, john.fastabend, maciej.fijalkowski,
vedang.patel, jithu.joseph, andre.guedes, jacob.e.keller,
sven.auhagen, alexander.h.duyck, intel-wired-lan, netdev,
linux-kernel, bpf
On Sat, Oct 26, 2024 at 12:12:49PM +0800, Yue Haibing wrote:
> ixgbevf_run_xdp() converts customed xdp action to a negative error code
> with the sk_buff pointer type which be checked with IS_ERR in
> ixgbevf_clean_rx_irq(). Remove this error pointer handing instead use
> plain int return value.
>
> Fixes: c7aec59657b6 ("ixgbevf: Add XDP support for pass and drop actions")
> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers
2024-10-26 4:12 [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers Yue Haibing
` (3 preceding siblings ...)
2024-10-26 4:12 ` [PATCH v4 net-next 4/4] ixgbevf: Fix passing 0 to ERR_PTR in ixgbevf_run_xdp() Yue Haibing
@ 2024-10-29 14:44 ` Jakub Kicinski
2024-10-29 18:37 ` Tony Nguyen
4 siblings, 1 reply; 15+ messages in thread
From: Jakub Kicinski @ 2024-10-29 14:44 UTC (permalink / raw)
To: anthony.l.nguyen
Cc: Yue Haibing, przemyslaw.kitszel, davem, edumazet, pabeni, ast,
daniel, hawk, john.fastabend, maciej.fijalkowski, vedang.patel,
jithu.joseph, andre.guedes, horms, jacob.e.keller, sven.auhagen,
alexander.h.duyck, intel-wired-lan, netdev, linux-kernel, bpf
On Sat, 26 Oct 2024 12:12:45 +0800 Yue Haibing wrote:
> v4: Target to net-next
Nonetheless I'm going to assume Jake / Tony will take these.
LMK if we should apply directly.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers
2024-10-29 14:44 ` [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers Jakub Kicinski
@ 2024-10-29 18:37 ` Tony Nguyen
0 siblings, 0 replies; 15+ messages in thread
From: Tony Nguyen @ 2024-10-29 18:37 UTC (permalink / raw)
To: Jakub Kicinski
Cc: Yue Haibing, przemyslaw.kitszel, davem, edumazet, pabeni, ast,
daniel, hawk, john.fastabend, maciej.fijalkowski, vedang.patel,
jithu.joseph, andre.guedes, horms, jacob.e.keller, sven.auhagen,
alexander.h.duyck, intel-wired-lan, netdev, linux-kernel, bpf
On 10/29/2024 7:44 AM, Jakub Kicinski wrote:
> On Sat, 26 Oct 2024 12:12:45 +0800 Yue Haibing wrote:
>> v4: Target to net-next
>
> Nonetheless I'm going to assume Jake / Tony will take these.
> LMK if we should apply directly.
Yes, I'll take these through IWL.
Thanks,
Tony
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Intel-wired-lan] [PATCH v4 net-next 1/4] igc: Fix passing 0 to ERR_PTR in igc_xdp_run_prog()
2024-10-26 4:12 ` [PATCH v4 net-next 1/4] igc: Fix passing 0 to ERR_PTR in igc_xdp_run_prog() Yue Haibing
2024-10-26 15:37 ` Simon Horman
@ 2024-11-06 13:22 ` Avigail Dahan
1 sibling, 0 replies; 15+ messages in thread
From: Avigail Dahan @ 2024-11-06 13:22 UTC (permalink / raw)
To: Yue Haibing, anthony.l.nguyen, przemyslaw.kitszel, davem,
edumazet, kuba, pabeni, ast, daniel, hawk, john.fastabend,
maciej.fijalkowski, vedang.patel, jithu.joseph, andre.guedes,
horms, jacob.e.keller, sven.auhagen, alexander.h.duyck
Cc: intel-wired-lan, netdev, linux-kernel, bpf
On 26/10/2024 7:12, Yue Haibing wrote:
> igc_xdp_run_prog() converts customed xdp action to a negative error code
> with the sk_buff pointer type which be checked with IS_ERR in
> igc_clean_rx_irq(). Remove this error pointer handing instead use plain
> int return value to fix this smatch warnings:
>
> drivers/net/ethernet/intel/igc/igc_main.c:2533
> igc_xdp_run_prog() warn: passing zero to 'ERR_PTR'
>
> Fixes: 26575105d6ed ("igc: Add initial XDP support")
> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
> Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
> Reviewed-by: Simon Horman <horms@kernel.org>
> ---
> drivers/net/ethernet/intel/igc/igc_main.c | 20 +++++++-------------
> 1 file changed, 7 insertions(+), 13 deletions(-)
>
Tested-by: Avigail Dahan <avigailx.dahan@intel.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: [Intel-wired-lan] [PATCH v4 net-next 4/4] ixgbevf: Fix passing 0 to ERR_PTR in ixgbevf_run_xdp()
2024-10-26 4:12 ` [PATCH v4 net-next 4/4] ixgbevf: Fix passing 0 to ERR_PTR in ixgbevf_run_xdp() Yue Haibing
2024-10-26 15:38 ` Simon Horman
@ 2024-11-12 12:22 ` Rout, ChandanX
1 sibling, 0 replies; 15+ messages in thread
From: Rout, ChandanX @ 2024-11-12 12:22 UTC (permalink / raw)
To: Yue Haibing, Nguyen, Anthony L, Kitszel, Przemyslaw, davem,
edumazet, kuba, pabeni, ast, daniel, hawk, john.fastabend,
Fijalkowski, Maciej, vedang.patel, Joseph, Jithu, andre.guedes,
horms, Keller, Jacob E, sven.auhagen, alexander.h.duyck,
Kuruvinakunnel, George, Pandey, Atul, Nagraj, Shravan,
intel-wired-lan
Cc: intel-wired-lan, netdev, linux-kernel, bpf
>-----Original Message-----
>From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Yue
>Haibing
>Sent: Saturday, October 26, 2024 9:43 AM
>To: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
><przemyslaw.kitszel@intel.com>; davem@davemloft.net;
>edumazet@google.com; kuba@kernel.org; pabeni@redhat.com;
>ast@kernel.org; daniel@iogearbox.net; hawk@kernel.org;
>john.fastabend@gmail.com; Fijalkowski, Maciej
><maciej.fijalkowski@intel.com>; vedang.patel@intel.com; Joseph, Jithu
><jithu.joseph@intel.com>; andre.guedes@intel.com; horms@kernel.org; Keller,
>Jacob E <jacob.e.keller@intel.com>; sven.auhagen@voleatech.de;
>alexander.h.duyck@intel.com
>Cc: intel-wired-lan@lists.osuosl.org; netdev@vger.kernel.org; linux-
>kernel@vger.kernel.org; bpf@vger.kernel.org; yuehaibing@huawei.com
>Subject: [Intel-wired-lan] [PATCH v4 net-next 4/4] ixgbevf: Fix passing 0 to
>ERR_PTR in ixgbevf_run_xdp()
>
>ixgbevf_run_xdp() converts customed xdp action to a negative error code with
>the sk_buff pointer type which be checked with IS_ERR in
>ixgbevf_clean_rx_irq(). Remove this error pointer handing instead use plain int
>return value.
>
>Fixes: c7aec59657b6 ("ixgbevf: Add XDP support for pass and drop actions")
>Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
>Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
>---
> .../net/ethernet/intel/ixgbevf/ixgbevf_main.c | 23 ++++++++-----------
> 1 file changed, 10 insertions(+), 13 deletions(-)
>
Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: [Intel-wired-lan] [PATCH v4 net-next 3/4] ixgbe: Fix passing 0 to ERR_PTR in ixgbe_run_xdp()
2024-10-26 4:12 ` [PATCH v4 net-next 3/4] ixgbe: Fix passing 0 to ERR_PTR in ixgbe_run_xdp() Yue Haibing
2024-10-26 15:37 ` Simon Horman
@ 2024-11-12 12:25 ` Rout, ChandanX
1 sibling, 0 replies; 15+ messages in thread
From: Rout, ChandanX @ 2024-11-12 12:25 UTC (permalink / raw)
To: Yue Haibing, Nguyen, Anthony L, Kitszel, Przemyslaw, davem,
edumazet, kuba, pabeni, ast, daniel, hawk, john.fastabend,
Fijalkowski, Maciej, vedang.patel, Joseph, Jithu, andre.guedes,
horms, Keller, Jacob E, sven.auhagen, alexander.h.duyck,
Kuruvinakunnel, George, Pandey, Atul, Nagraj, Shravan,
intel-wired-lan
Cc: intel-wired-lan, netdev, linux-kernel, bpf
>-----Original Message-----
>From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Yue
>Haibing
>Sent: Saturday, October 26, 2024 9:43 AM
>To: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
><przemyslaw.kitszel@intel.com>; davem@davemloft.net;
>edumazet@google.com; kuba@kernel.org; pabeni@redhat.com;
>ast@kernel.org; daniel@iogearbox.net; hawk@kernel.org;
>john.fastabend@gmail.com; Fijalkowski, Maciej
><maciej.fijalkowski@intel.com>; vedang.patel@intel.com; Joseph, Jithu
><jithu.joseph@intel.com>; andre.guedes@intel.com; horms@kernel.org; Keller,
>Jacob E <jacob.e.keller@intel.com>; sven.auhagen@voleatech.de;
>alexander.h.duyck@intel.com
>Cc: intel-wired-lan@lists.osuosl.org; netdev@vger.kernel.org; linux-
>kernel@vger.kernel.org; bpf@vger.kernel.org; yuehaibing@huawei.com
>Subject: [Intel-wired-lan] [PATCH v4 net-next 3/4] ixgbe: Fix passing 0 to
>ERR_PTR in ixgbe_run_xdp()
>
>ixgbe_run_xdp() converts customed xdp action to a negative error code with
>the sk_buff pointer type which be checked with IS_ERR in ixgbe_clean_rx_irq().
>Remove this error pointer handing instead use plain int return value.
>
>Fixes: 924708081629 ("ixgbe: add XDP support for pass and drop actions")
>Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
>Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
>---
> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 23 ++++++++-----------
> 1 file changed, 9 insertions(+), 14 deletions(-)
>
Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: [Intel-wired-lan] [PATCH v4 net-next 2/4] igb: Fix passing 0 to ERR_PTR in igb_run_xdp()
2024-10-26 4:12 ` [PATCH v4 net-next 2/4] igb: Fix passing 0 to ERR_PTR in igb_run_xdp() Yue Haibing
2024-10-26 15:37 ` Simon Horman
@ 2024-11-12 12:26 ` Rout, ChandanX
1 sibling, 0 replies; 15+ messages in thread
From: Rout, ChandanX @ 2024-11-12 12:26 UTC (permalink / raw)
To: Yue Haibing, Nguyen, Anthony L, Kitszel, Przemyslaw, davem,
edumazet, kuba, pabeni, ast, daniel, hawk, john.fastabend,
Fijalkowski, Maciej, vedang.patel, Joseph, Jithu, andre.guedes,
horms, Keller, Jacob E, sven.auhagen, alexander.h.duyck,
intel-wired-lan, Kuruvinakunnel, George, Pandey, Atul, Nagraj,
Shravan
Cc: intel-wired-lan, netdev, linux-kernel, bpf
>-----Original Message-----
>From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Yue
>Haibing
>Sent: Saturday, October 26, 2024 9:43 AM
>To: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
><przemyslaw.kitszel@intel.com>; davem@davemloft.net;
>edumazet@google.com; kuba@kernel.org; pabeni@redhat.com;
>ast@kernel.org; daniel@iogearbox.net; hawk@kernel.org;
>john.fastabend@gmail.com; Fijalkowski, Maciej
><maciej.fijalkowski@intel.com>; vedang.patel@intel.com; Joseph, Jithu
><jithu.joseph@intel.com>; andre.guedes@intel.com; horms@kernel.org; Keller,
>Jacob E <jacob.e.keller@intel.com>; sven.auhagen@voleatech.de;
>alexander.h.duyck@intel.com
>Cc: intel-wired-lan@lists.osuosl.org; netdev@vger.kernel.org; linux-
>kernel@vger.kernel.org; bpf@vger.kernel.org; yuehaibing@huawei.com
>Subject: [Intel-wired-lan] [PATCH v4 net-next 2/4] igb: Fix passing 0 to ERR_PTR
>in igb_run_xdp()
>
>igb_run_xdp() converts customed xdp action to a negative error code with the
>sk_buff pointer type which be checked with IS_ERR in igb_clean_rx_irq().
>Remove this error pointer handing instead use plain int return value.
>
>Fixes: 9cbc948b5a20 ("igb: add XDP support")
>Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
>Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
>---
> drivers/net/ethernet/intel/igb/igb_main.c | 22 ++++++++--------------
> 1 file changed, 8 insertions(+), 14 deletions(-)
>
Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2024-11-12 12:26 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-26 4:12 [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers Yue Haibing
2024-10-26 4:12 ` [PATCH v4 net-next 1/4] igc: Fix passing 0 to ERR_PTR in igc_xdp_run_prog() Yue Haibing
2024-10-26 15:37 ` Simon Horman
2024-11-06 13:22 ` [Intel-wired-lan] " Avigail Dahan
2024-10-26 4:12 ` [PATCH v4 net-next 2/4] igb: Fix passing 0 to ERR_PTR in igb_run_xdp() Yue Haibing
2024-10-26 15:37 ` Simon Horman
2024-11-12 12:26 ` [Intel-wired-lan] " Rout, ChandanX
2024-10-26 4:12 ` [PATCH v4 net-next 3/4] ixgbe: Fix passing 0 to ERR_PTR in ixgbe_run_xdp() Yue Haibing
2024-10-26 15:37 ` Simon Horman
2024-11-12 12:25 ` [Intel-wired-lan] " Rout, ChandanX
2024-10-26 4:12 ` [PATCH v4 net-next 4/4] ixgbevf: Fix passing 0 to ERR_PTR in ixgbevf_run_xdp() Yue Haibing
2024-10-26 15:38 ` Simon Horman
2024-11-12 12:22 ` [Intel-wired-lan] " Rout, ChandanX
2024-10-29 14:44 ` [PATCH v4 net-next 0/4] Fix passing 0 to ERR_PTR in intel ether drivers Jakub Kicinski
2024-10-29 18:37 ` Tony Nguyen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®