Le 12/09/2016 à 19:40, Helmut Buchsbaum a écrit : > On 09/10/2016 01:17 PM, Wei Yongjun wrote: >> From: Wei Yongjun <[email protected]> >> >> 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 <[email protected]> >> --- >> 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
