From: Ratheesh Kannoth <rkannoth@marvell.com>
To: Julien Panis <jpanis@baylibre.com>
Cc: "David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Russell King" <linux@armlinux.org.uk>,
"Alexei Starovoitov" <ast@kernel.org>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"Jesper Dangaard Brouer" <hawk@kernel.org>,
"John Fastabend" <john.fastabend@gmail.com>,
"Sumit Semwal" <sumit.semwal@linaro.org>,
"Christian König" <christian.koenig@amd.com>,
"Simon Horman" <horms@kernel.org>, "Andrew Lunn" <andrew@lunn.ch>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
bpf@vger.kernel.org, linux-media@vger.kernel.org,
dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org
Subject: Re: [PATCH net-next v4 2/3] net: ethernet: ti: Add desc_infos member to struct k3_cppi_desc_pool
Date: Tue, 26 Mar 2024 10:20:04 +0530 [thread overview]
Message-ID: <20240326045004.GA1362097@maili.marvell.com> (raw)
In-Reply-To: <20240223-am65-cpsw-xdp-basic-v4-2-2e45e5dec048@baylibre.com>
On 2024-03-25 at 21:30:36, Julien Panis (jpanis@baylibre.com) wrote:
> This patch introduces a member and the related accessors which can be
> used to store descriptor specific additional information. This member
> can store, for instance, an ID to differentiate a skb TX buffer type
> from a xdpf TX buffer type.
>
> Signed-off-by: Julien Panis <jpanis@baylibre.com>
> ---
> drivers/net/ethernet/ti/k3-cppi-desc-pool.c | 24 ++++++++++++++++++++++++
> drivers/net/ethernet/ti/k3-cppi-desc-pool.h | 2 ++
> 2 files changed, 26 insertions(+)
>
> diff --git a/drivers/net/ethernet/ti/k3-cppi-desc-pool.c b/drivers/net/ethernet/ti/k3-cppi-desc-pool.c
> index fe8203c05731..d0c68d722ef2 100644
> --- a/drivers/net/ethernet/ti/k3-cppi-desc-pool.c
> +++ b/drivers/net/ethernet/ti/k3-cppi-desc-pool.c
> @@ -22,6 +22,7 @@ struct k3_cppi_desc_pool {
> size_t mem_size;
> size_t num_desc;
> struct gen_pool *gen_pool;
> + void **desc_infos;
> };
>
> void k3_cppi_desc_pool_destroy(struct k3_cppi_desc_pool *pool)
> @@ -72,6 +73,15 @@ k3_cppi_desc_pool_create_name(struct device *dev, size_t size,
> goto gen_pool_create_fail;
> }
>
> + pool->desc_infos = devm_kcalloc(dev, pool->num_desc,
> + sizeof(*pool->desc_infos), GFP_KERNEL);
This should be freed as well, right ?
.set_channels() in ethtool ops cleans pools; but not this. This wont
result in memory leak ? s/devm_kcalloc/kcalloc if my comment
is correct.
> + if (!pool->desc_infos) {
> + ret = -ENOMEM;
> + dev_err(pool->dev, "pool descriptor infos alloc failed %d\n", ret);
> + kfree_const(pool_name);
> + goto gen_pool_desc_infos_alloc_fail;
> + }
> +
> pool->gen_pool->name = pool_name;
>
> pool->cpumem = dma_alloc_coherent(pool->dev, pool->mem_size,
> @@ -94,6 +104,8 @@ k3_cppi_desc_pool_create_name(struct device *dev, size_t size,
> dma_free_coherent(pool->dev, pool->mem_size, pool->cpumem,
> pool->dma_addr);
> dma_alloc_fail:
> + devm_kfree(pool->dev, pool->desc_infos);
> +gen_pool_desc_infos_alloc_fail:
> gen_pool_destroy(pool->gen_pool); /* frees pool->name */
> gen_pool_create_fail:
> devm_kfree(pool->dev, pool);
> @@ -144,5 +156,17 @@ void *k3_cppi_desc_pool_cpuaddr(struct k3_cppi_desc_pool *pool)
> }
> EXPORT_SYMBOL_GPL(k3_cppi_desc_pool_cpuaddr);
>
> +void k3_cppi_desc_pool_desc_info_set(struct k3_cppi_desc_pool *pool, int desc_idx, void *info)
> +{
> + pool->desc_infos[desc_idx] = info;
> +}
> +EXPORT_SYMBOL_GPL(k3_cppi_desc_pool_desc_info_set);
> +
> +void *k3_cppi_desc_pool_desc_info(struct k3_cppi_desc_pool *pool, int desc_idx)
> +{
> + return pool->desc_infos[desc_idx];
> +}
> +EXPORT_SYMBOL_GPL(k3_cppi_desc_pool_desc_info);
> +
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("TI K3 CPPI5 descriptors pool API");
> diff --git a/drivers/net/ethernet/ti/k3-cppi-desc-pool.h b/drivers/net/ethernet/ti/k3-cppi-desc-pool.h
> index 149d5579a5e2..0076596307e7 100644
> --- a/drivers/net/ethernet/ti/k3-cppi-desc-pool.h
> +++ b/drivers/net/ethernet/ti/k3-cppi-desc-pool.h
> @@ -28,5 +28,7 @@ void k3_cppi_desc_pool_free(struct k3_cppi_desc_pool *pool, void *addr);
> size_t k3_cppi_desc_pool_avail(struct k3_cppi_desc_pool *pool);
> size_t k3_cppi_desc_pool_desc_size(struct k3_cppi_desc_pool *pool);
> void *k3_cppi_desc_pool_cpuaddr(struct k3_cppi_desc_pool *pool);
> +void k3_cppi_desc_pool_desc_info_set(struct k3_cppi_desc_pool *pool, int desc_idx, void *info);
> +void *k3_cppi_desc_pool_desc_info(struct k3_cppi_desc_pool *pool, int desc_idx);
>
> #endif /* K3_CPPI_DESC_POOL_H_ */
>
> --
> 2.37.3
>
next prev parent reply other threads:[~2024-03-26 4:50 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-25 16:00 [PATCH net-next v4 0/3] Add minimal XDP support to TI AM65 CPSW Ethernet driver Julien Panis
2024-03-25 16:00 ` [PATCH net-next v4 1/3] net: ethernet: ti: Add accessors for struct k3_cppi_desc_pool members Julien Panis
2024-03-25 16:00 ` [PATCH net-next v4 2/3] net: ethernet: ti: Add desc_infos member to struct k3_cppi_desc_pool Julien Panis
2024-03-26 4:50 ` Ratheesh Kannoth [this message]
2024-03-25 16:00 ` [PATCH net-next v4 3/3] net: ethernet: ti: am65-cpsw: Add minimal XDP support Julien Panis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240326045004.GA1362097@maili.marvell.com \
--to=rkannoth@marvell.com \
--cc=andrew@lunn.ch \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=christian.koenig@amd.com \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=dri-devel@lists.freedesktop.org \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=horms@kernel.org \
--cc=john.fastabend@gmail.com \
--cc=jpanis@baylibre.com \
--cc=kuba@kernel.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sumit.semwal@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.