The 08/26/2022 18:00, Dan Carpenter wrote: > > Don't just print a warning. Clean up and return an error as well. Reviewed-by: Horatiu Vultur <horatiu.vultur@xxxxxxxxxxxxx> > > Fixes: c8349639324a ("net: lan966x: Add FDMA functionality") > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > --- > drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c b/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c > index 6dea7f8c1481..51f8a0816377 100644 > --- a/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c > +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c > @@ -425,7 +425,8 @@ static struct sk_buff *lan966x_fdma_rx_get_frame(struct lan966x_rx *rx) > lan966x_ifh_get_src_port(skb->data, &src_port); > lan966x_ifh_get_timestamp(skb->data, ×tamp); > > - WARN_ON(src_port >= lan966x->num_phys_ports); > + if (WARN_ON(src_port >= lan966x->num_phys_ports)) > + goto free_skb; > > skb->dev = lan966x->ports[src_port]->dev; > skb_pull(skb, IFH_LEN * sizeof(u32)); > @@ -449,6 +450,8 @@ static struct sk_buff *lan966x_fdma_rx_get_frame(struct lan966x_rx *rx) > > return skb; > > +free_skb: > + kfree_skb(skb); > unmap_page: > dma_unmap_page(lan966x->dev, (dma_addr_t)db->dataptr, > FDMA_DCB_STATUS_BLOCKL(db->status), > -- > 2.35.1 > -- /Horatiu