On 09/10/2016 01:17 PM, Wei Yongjun wrote:
From: Wei Yongjun <weiyongj...@huawei.com>

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 <weiyongj...@huawei.com>
---
 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

Reply via email to