DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] net/octeontx: fix memory leak of MAC address table
@ 2020-01-29  9:17 Sunil Kumar Kori
  2020-01-29 12:28 ` Harman Kalra
  0 siblings, 1 reply; 3+ messages in thread
From: Sunil Kumar Kori @ 2020-01-29  9:17 UTC (permalink / raw)
  To: Harman Kalra; +Cc: dev, stable, Sunil Kumar Kori

MAC address table is allocated during octeontx device create and
same is used to maintain list of MAC address associated to port.
This table is not getting freed niether in case of error nor during
graceful shutdown of port.

Patch fixes memory required memory for both the cases as mentioned.

Fixes: f18b146c498d ("net/octeontx: create ethdev ports")

Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
---
 drivers/net/octeontx/octeontx_ethdev.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c
index e23162d8a..40d9d67da 100644
--- a/drivers/net/octeontx/octeontx_ethdev.c
+++ b/drivers/net/octeontx/octeontx_ethdev.c
@@ -351,6 +351,10 @@ octeontx_dev_close(struct rte_eth_dev *dev)
 		rte_free(txq);
 	}
 
+	/* Free MAC address table */
+	rte_free(dev->data->mac_addrs);
+	dev->data->mac_addrs = NULL;
+
 	dev->tx_pkt_burst = NULL;
 	dev->rx_pkt_burst = NULL;
 }
@@ -1143,7 +1147,7 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev,
 		octeontx_log_err("eth_dev->port_id (%d) is diff to orig (%d)",
 				data->port_id, nic->port_id);
 		res = -EINVAL;
-		goto err;
+		goto free_mac_addrs;
 	}
 
 	/* Update port_id mac to eth_dev */
@@ -1162,6 +1166,8 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev,
 	rte_eth_dev_probing_finish(eth_dev);
 	return data->port_id;
 
+free_mac_addrs:
+	rte_free(data->mac_addrs);
 err:
 	if (nic)
 		octeontx_port_close(nic);
-- 
2.17.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] [PATCH] net/octeontx: fix memory leak of MAC address table
  2020-01-29  9:17 [dpdk-dev] [PATCH] net/octeontx: fix memory leak of MAC address table Sunil Kumar Kori
@ 2020-01-29 12:28 ` Harman Kalra
  2020-02-03  9:54   ` Jerin Jacob
  0 siblings, 1 reply; 3+ messages in thread
From: Harman Kalra @ 2020-01-29 12:28 UTC (permalink / raw)
  To: Sunil Kumar Kori; +Cc: dev, stable

On Wed, Jan 29, 2020 at 02:47:04PM +0530, Sunil Kumar Kori wrote:
> MAC address table is allocated during octeontx device create and
> same is used to maintain list of MAC address associated to port.
> This table is not getting freed niether in case of error nor during
> graceful shutdown of port.
> 
> Patch fixes memory required memory for both the cases as mentioned.
> 
> Fixes: f18b146c498d ("net/octeontx: create ethdev ports")
> 
> Signed-off-by: Sunil Kumar Kori <skori@marvell.com>

Acked-by: Harman Kalra <hkalra@marvell.com>

> ---
>  drivers/net/octeontx/octeontx_ethdev.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c
> index e23162d8a..40d9d67da 100644
> --- a/drivers/net/octeontx/octeontx_ethdev.c
> +++ b/drivers/net/octeontx/octeontx_ethdev.c
> @@ -351,6 +351,10 @@ octeontx_dev_close(struct rte_eth_dev *dev)
>  		rte_free(txq);
>  	}
>  
> +	/* Free MAC address table */
> +	rte_free(dev->data->mac_addrs);
> +	dev->data->mac_addrs = NULL;
> +
>  	dev->tx_pkt_burst = NULL;
>  	dev->rx_pkt_burst = NULL;
>  }
> @@ -1143,7 +1147,7 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev,
>  		octeontx_log_err("eth_dev->port_id (%d) is diff to orig (%d)",
>  				data->port_id, nic->port_id);
>  		res = -EINVAL;
> -		goto err;
> +		goto free_mac_addrs;
>  	}
>  
>  	/* Update port_id mac to eth_dev */
> @@ -1162,6 +1166,8 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev,
>  	rte_eth_dev_probing_finish(eth_dev);
>  	return data->port_id;
>  
> +free_mac_addrs:
> +	rte_free(data->mac_addrs);
>  err:
>  	if (nic)
>  		octeontx_port_close(nic);
> -- 
> 2.17.1
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] [PATCH] net/octeontx: fix memory leak of MAC address table
  2020-01-29 12:28 ` Harman Kalra
@ 2020-02-03  9:54   ` Jerin Jacob
  0 siblings, 0 replies; 3+ messages in thread
From: Jerin Jacob @ 2020-02-03  9:54 UTC (permalink / raw)
  To: Harman Kalra; +Cc: Sunil Kumar Kori, dev, stable

On Wed, Jan 29, 2020 at 5:58 PM Harman Kalra <hkalra@marvell.com> wrote:
>
> On Wed, Jan 29, 2020 at 02:47:04PM +0530, Sunil Kumar Kori wrote:
> > MAC address table is allocated during octeontx device create and
> > same is used to maintain list of MAC address associated to port.
> > This table is not getting freed niether in case of error nor during
> > graceful shutdown of port.
> >
> > Patch fixes memory required memory for both the cases as mentioned.
> >
> > Fixes: f18b146c498d ("net/octeontx: create ethdev ports")

Cc: stable@dpdk.org

> >
> > Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
>
> Acked-by: Harman Kalra <hkalra@marvell.com>

Applied to dpdk-next-net-mrvl/master. Thanks


>
> > ---
> >  drivers/net/octeontx/octeontx_ethdev.c | 8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c
> > index e23162d8a..40d9d67da 100644
> > --- a/drivers/net/octeontx/octeontx_ethdev.c
> > +++ b/drivers/net/octeontx/octeontx_ethdev.c
> > @@ -351,6 +351,10 @@ octeontx_dev_close(struct rte_eth_dev *dev)
> >               rte_free(txq);
> >       }
> >
> > +     /* Free MAC address table */
> > +     rte_free(dev->data->mac_addrs);
> > +     dev->data->mac_addrs = NULL;
> > +
> >       dev->tx_pkt_burst = NULL;
> >       dev->rx_pkt_burst = NULL;
> >  }
> > @@ -1143,7 +1147,7 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev,
> >               octeontx_log_err("eth_dev->port_id (%d) is diff to orig (%d)",
> >                               data->port_id, nic->port_id);
> >               res = -EINVAL;
> > -             goto err;
> > +             goto free_mac_addrs;
> >       }
> >
> >       /* Update port_id mac to eth_dev */
> > @@ -1162,6 +1166,8 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev,
> >       rte_eth_dev_probing_finish(eth_dev);
> >       return data->port_id;
> >
> > +free_mac_addrs:
> > +     rte_free(data->mac_addrs);
> >  err:
> >       if (nic)
> >               octeontx_port_close(nic);
> > --
> > 2.17.1
> >

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-02-03  9:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-29  9:17 [dpdk-dev] [PATCH] net/octeontx: fix memory leak of MAC address table Sunil Kumar Kori
2020-01-29 12:28 ` Harman Kalra
2020-02-03  9:54   ` Jerin Jacob

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).