[PATCH -next] net: macb: fix missing unlock on error in macb_start_xmit()

Subsystems: atmel macb ethernet driver, networking drivers, the rest

STALE3666d

5 messages, 4 authors, 2016-09-29 · open the first message on its own page

[PATCH -next] net: macb: fix missing unlock on error in macb_start_xmit()

From: Wei Yongjun <hidden>
Date: 2016-09-10 11:18:04

From: Wei Yongjun <redacted>

Fix missing unlock before return from function macb_start_xmit()
in the error handling case.

Fixes: 007e4ba3ee13 ("net: macb: initialize checksum when using
checksum offloading")
Signed-off-by: Wei Yongjun <redacted>
---
 drivers/net/ethernet/cadence/macb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
index 0294b6a..63144bb 100644
--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -1398,7 +1398,7 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
 	if (macb_clear_csum(skb)) {
 		dev_kfree_skb_any(skb);
-		return NETDEV_TX_OK;
+		goto unlock;
 	}
 
 	/* Map socket buffer for DMA transfer */

Re: [PATCH -next] net: macb: fix missing unlock on error in macb_start_xmit()

From: Nicolas Ferre <hidden>
Date: 2016-09-12 07:38:08

Le 10/09/2016 à 13:17, Wei Yongjun a écrit :
From: Wei Yongjun <redacted>

Fix missing unlock before return from function macb_start_xmit()
in the error handling case.

Fixes: 007e4ba3ee13 ("net: macb: initialize checksum when using
checksum offloading")
Signed-off-by: Wei Yongjun <redacted>
Yes,
Acked-by: Nicolas Ferre <redacted>

Thanks. Best regards,
quoted hunk
---
 drivers/net/ethernet/cadence/macb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
index 0294b6a..63144bb 100644
--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -1398,7 +1398,7 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
 	if (macb_clear_csum(skb)) {
 		dev_kfree_skb_any(skb);
-		return NETDEV_TX_OK;
+		goto unlock;
 	}
 
 	/* Map socket buffer for DMA transfer */

-- 
Nicolas Ferre

Re: [PATCH -next] net: macb: fix missing unlock on error in macb_start_xmit()

From: Helmut Buchsbaum <hidden>
Date: 2016-09-12 17:40:36

On 09/10/2016 01:17 PM, Wei Yongjun wrote:
quoted hunk
From: Wei Yongjun <redacted>

Fix missing unlock before return from function macb_start_xmit()
in the error handling case.

Fixes: 007e4ba3ee13 ("net: macb: initialize checksum when using
checksum offloading")
Signed-off-by: Wei Yongjun <redacted>
---
 drivers/net/ethernet/cadence/macb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
index 0294b6a..63144bb 100644
--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -1398,7 +1398,7 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev)

 	if (macb_clear_csum(skb)) {
 		dev_kfree_skb_any(skb);
-		return NETDEV_TX_OK;
+		goto unlock;
 	}

 	/* Map socket buffer for DMA transfer */
You are definitely right. Sorry I missed that obvious point and for causing any inconveniences.

BTW, I see there are obviously quite a few users of MACB implementations. I'm just curious if anybody else ever encountered the checksum problem or if this a matter of Zynq implementation only.

Regards,
Helmut

Re: [PATCH -next] net: macb: fix missing unlock on error in macb_start_xmit()

From: David Miller <davem@davemloft.net>
Date: 2016-09-13 15:42:55

From: Wei Yongjun <redacted>
Date: Sat, 10 Sep 2016 11:17:57 +0000
From: Wei Yongjun <redacted>

Fix missing unlock before return from function macb_start_xmit()
in the error handling case.

Fixes: 007e4ba3ee13 ("net: macb: initialize checksum when using
checksum offloading")
Signed-off-by: Wei Yongjun <redacted>
Applied.

Re: [PATCH -next] net: macb: fix missing unlock on error in macb_start_xmit()

From: Nicolas Ferre <hidden>
Date: 2016-09-29 17:21:20

Le 12/09/2016 à 19:40, Helmut Buchsbaum a écrit :
On 09/10/2016 01:17 PM, Wei Yongjun wrote:
quoted
From: Wei Yongjun <redacted>

Fix missing unlock before return from function macb_start_xmit()
in the error handling case.

Fixes: 007e4ba3ee13 ("net: macb: initialize checksum when using
checksum offloading")
Signed-off-by: Wei Yongjun <redacted>
---
 drivers/net/ethernet/cadence/macb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
index 0294b6a..63144bb 100644
--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -1398,7 +1398,7 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev)

 	if (macb_clear_csum(skb)) {
 		dev_kfree_skb_any(skb);
-		return NETDEV_TX_OK;
+		goto unlock;
 	}

 	/* Map socket buffer for DMA transfer */
You are definitely right. Sorry I missed that obvious point and for 
causing any inconveniences.

BTW, I see there are obviously quite a few users of MACB 
implementations. I'm just curious if anybody else ever encountered the 
checksum problem or if this a matter of Zynq implementation only.
I've just verified that we are affected by this issue as well on sama5d2
(Microchip / Atmel cortex-A5 MPUs).

Thanks for the fix,
-- 
Nicolas Ferre
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help