Message ID | YwjgDm/SVd5c1tQU@kili (mailing list archive) |
---|---|
State | Accepted |
Commit | 13a9d08c296228d18289de60b83792c586e1d073 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: lan966x: improve error handle in lan966x_fdma_rx_get_frame() | expand |
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@microchip.com> > > Fixes: c8349639324a ("net: lan966x: Add FDMA functionality") > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > --- > 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 >
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Fri, 26 Aug 2022 18:00:30 +0300 you wrote: > Don't just print a warning. Clean up and return an error as well. > > Fixes: c8349639324a ("net: lan966x: Add FDMA functionality") > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > --- > drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) Here is the summary with links: - [net] net: lan966x: improve error handle in lan966x_fdma_rx_get_frame() https://git.kernel.org/netdev/net/c/13a9d08c2962 You are awesome, thank you!
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),
Don't just print a warning. Clean up and return an error as well. Fixes: c8349639324a ("net: lan966x: Add FDMA functionality") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> --- drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)