2020-07-18 05:19:53

by Navid Emamdoost

[permalink] [raw]
Subject: [PATCH] cxgb4: add missing release on skb in uld_send()

In the implementation of uld_send(), the skb is consumed on all
execution paths except one. Release skb when returning NET_XMIT_DROP.

Signed-off-by: Navid Emamdoost <[email protected]>
---
drivers/net/ethernet/chelsio/cxgb4/sge.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/chelsio/cxgb4/sge.c b/drivers/net/ethernet/chelsio/cxgb4/sge.c
index 32a45dc51ed7..d8c37fd4b808 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/sge.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/sge.c
@@ -2938,6 +2938,7 @@ static inline int uld_send(struct adapter *adap, struct sk_buff *skb,
txq_info = adap->sge.uld_txq_info[tx_uld_type];
if (unlikely(!txq_info)) {
WARN_ON(true);
+ consume_skb(skb);
return NET_XMIT_DROP;
}

--
2.17.1


2020-07-21 01:32:10

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] cxgb4: add missing release on skb in uld_send()

From: Navid Emamdoost <[email protected]>
Date: Sat, 18 Jul 2020 00:18:43 -0500

> diff --git a/drivers/net/ethernet/chelsio/cxgb4/sge.c b/drivers/net/ethernet/chelsio/cxgb4/sge.c
> index 32a45dc51ed7..d8c37fd4b808 100644
> --- a/drivers/net/ethernet/chelsio/cxgb4/sge.c
> +++ b/drivers/net/ethernet/chelsio/cxgb4/sge.c
> @@ -2938,6 +2938,7 @@ static inline int uld_send(struct adapter *adap, struct sk_buff *skb,
> txq_info = adap->sge.uld_txq_info[tx_uld_type];
> if (unlikely(!txq_info)) {
> WARN_ON(true);
> + consume_skb(skb);
> return NET_XMIT_DROP;
> }
>

This is a packet drop so kfree_skb() is more appropriate here.

2020-07-22 18:58:05

by Navid Emamdoost

[permalink] [raw]
Subject: [PATCH v2] cxgb4: add missing release on skb in uld_send()

In the implementation of uld_send(), the skb is consumed on all
execution paths except one. Release skb when returning NET_XMIT_DROP.

Signed-off-by: Navid Emamdoost <[email protected]>
---
changes in v2:
- using kfree_skb() based on David Miller suggestion.
---
drivers/net/ethernet/chelsio/cxgb4/sge.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/chelsio/cxgb4/sge.c b/drivers/net/ethernet/chelsio/cxgb4/sge.c
index d8c37fd4b808..92eee66cbc84 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/sge.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/sge.c
@@ -2938,7 +2938,7 @@ static inline int uld_send(struct adapter *adap, struct sk_buff *skb,
txq_info = adap->sge.uld_txq_info[tx_uld_type];
if (unlikely(!txq_info)) {
WARN_ON(true);
- consume_skb(skb);
+ kfree_skb(skb);
return NET_XMIT_DROP;
}

--
2.17.1

2020-07-23 01:15:11

by David Miller

[permalink] [raw]
Subject: Re: [PATCH v2] cxgb4: add missing release on skb in uld_send()

From: Navid Emamdoost <[email protected]>
Date: Wed, 22 Jul 2020 13:57:21 -0500

> In the implementation of uld_send(), the skb is consumed on all
> execution paths except one. Release skb when returning NET_XMIT_DROP.
>
> Signed-off-by: Navid Emamdoost <[email protected]>
> ---
> changes in v2:
> - using kfree_skb() based on David Miller suggestion.

This doesn't apply to any of my networking GIT trees.

Please base this on either 'net' or 'net-next' as appropriate,
and indicate this in your Subject line f.e. "[PATCH net v2] ..."

Thank you.

2020-07-23 03:00:12

by Navid Emamdoost

[permalink] [raw]
Subject: [PATCH v3] cxgb4: add missing release on skb in uld_send()

In the implementation of uld_send(), the skb is consumed on all
execution paths except one. Release skb when returning NET_XMIT_DROP.

Signed-off-by: Navid Emamdoost <[email protected]>
---
v3:
- fixed the base problem, and used kfree_skb
---
drivers/net/ethernet/chelsio/cxgb4/sge.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/chelsio/cxgb4/sge.c b/drivers/net/ethernet/chelsio/cxgb4/sge.c
index 32a45dc51ed7..92eee66cbc84 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/sge.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/sge.c
@@ -2938,6 +2938,7 @@ static inline int uld_send(struct adapter *adap, struct sk_buff *skb,
txq_info = adap->sge.uld_txq_info[tx_uld_type];
if (unlikely(!txq_info)) {
WARN_ON(true);
+ kfree_skb(skb);
return NET_XMIT_DROP;
}

--
2.17.1

2020-07-23 03:09:55

by David Miller

[permalink] [raw]
Subject: Re: [PATCH v3] cxgb4: add missing release on skb in uld_send()

From: Navid Emamdoost <[email protected]>
Date: Wed, 22 Jul 2020 21:58:39 -0500

> In the implementation of uld_send(), the skb is consumed on all
> execution paths except one. Release skb when returning NET_XMIT_DROP.
>
> Signed-off-by: Navid Emamdoost <[email protected]>

Applied, thank you.