On 11/21/23 8:52 AM, Yoshihiro Shimoda wrote: > This .ndo_start_xmit() function should return netdev_tx_t value, > not -ENOMEM. Also, before returning the function, dev_kfree_skb_any() > should be called. So, fix them. Sounds like 2 separate issues -- each needing a patch of its own... > Fixes: 33f5d733b589 ("net: renesas: rswitch: Improve TX timestamp accuracy") > Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx> > --- > drivers/net/ethernet/renesas/rswitch.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/renesas/rswitch.c b/drivers/net/ethernet/renesas/rswitch.c > index 43a7795d6591..fc9dcf5fa166 100644 > --- a/drivers/net/ethernet/renesas/rswitch.c > +++ b/drivers/net/ethernet/renesas/rswitch.c > @@ -1535,7 +1535,8 @@ static netdev_tx_t rswitch_start_xmit(struct sk_buff *skb, struct net_device *nd > ts_info = kzalloc(sizeof(*ts_info), GFP_ATOMIC); > if (!ts_info) { > dma_unmap_single(ndev->dev.parent, dma_addr, skb->len, DMA_TO_DEVICE); > - return -ENOMEM; > + dev_kfree_skb_any(skb); > + return ret; Looks like we have the same error path as when dma_mapping_error() returns error. Shouldn't we use *goto*? Although probably can be done later, as a cleanup... [...] MBR, Sergey