On Fri, Feb 18, 2022 at 09:07:12PM -0800, Jakub Kicinski wrote: > On Fri, 18 Feb 2022 18:27:30 +0300 Dan Carpenter wrote: > > This code dereferences "skb" after calling dev_kfree_skb(). > > > > Fixes: 2dc95a4d30ed ("net: Add dm9051 driver") > > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > > Thanks! Although.. > > > diff --git a/drivers/net/ethernet/davicom/dm9051.c b/drivers/net/ethernet/davicom/dm9051.c > > index a63d17e669a0..f6b5d2becf5e 100644 > > --- a/drivers/net/ethernet/davicom/dm9051.c > > +++ b/drivers/net/ethernet/davicom/dm9051.c > > @@ -850,13 +850,13 @@ static int dm9051_loop_tx(struct board_info *db) > > if (skb) { > > ntx++; > > ret = dm9051_single_tx(db, skb->data, skb->len); > > + ndev->stats.tx_bytes += skb->len; > > + ndev->stats.tx_packets++; > > dev_kfree_skb(skb); > > if (ret < 0) { > > db->bc.tx_err_counter++; > > return 0; > > } > > - ndev->stats.tx_bytes += skb->len; > > - ndev->stats.tx_packets++; > > I think the idea was (and it often is with this kind of bugs) > to count only successful transmissions. Could you re-jig it > a little to keep those semantics? Sure. Will resend. regards, dan carpenter