Message ID | 1473506277-31304-1-git-send-email-weiyj.lk@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Le 10/09/2016 à 13:17, Wei Yongjun a écrit : > From: Wei Yongjun <weiyongjun1@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 <weiyongjun1@huawei.com> Yes, Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Thanks. Best regards, > --- > 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 */ > >
On 09/10/2016 01:17 PM, Wei Yongjun wrote: > From: Wei Yongjun <weiyongjun1@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 <weiyongjun1@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
From: Wei Yongjun <weiyj.lk@gmail.com> Date: Sat, 10 Sep 2016 11:17:57 +0000 > From: Wei Yongjun <weiyongjun1@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 <weiyongjun1@huawei.com> Applied.
Le 12/09/2016 à 19:40, Helmut Buchsbaum a écrit : > On 09/10/2016 01:17 PM, Wei Yongjun wrote: >> From: Wei Yongjun <weiyongjun1@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 <weiyongjun1@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. I've just verified that we are affected by this issue as well on sama5d2 (Microchip / Atmel cortex-A5 MPUs). Thanks for the fix,
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 */