RE: [EXTERNAL] Re: [net-next PATCH 2/4] octeontx2-pf: Add new APIs for queue memory alloc/free.

From: Geethasowjanya Akula
Date: Wed Sep 04 2024 - 01:36:10 EST




>-----Original Message-----
>From: Pavan Chebbi <pavan.chebbi@xxxxxxxxxxxx>
>Sent: Tuesday, September 3, 2024 8:42 PM
>To: Geethasowjanya Akula <gakula@xxxxxxxxxxx>
>Cc: netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; kuba@xxxxxxxxxx;
>davem@xxxxxxxxxxxxx; pabeni@xxxxxxxxxx; jiri@xxxxxxxxxxx;
>edumazet@xxxxxxxxxx; Sunil Kovvuri Goutham <sgoutham@xxxxxxxxxxx>;
>Subbaraya Sundeep Bhatta <sbhatta@xxxxxxxxxxx>; Hariprasad Kelam
><hkelam@xxxxxxxxxxx>
>Subject: [EXTERNAL] Re: [net-next PATCH 2/4] octeontx2-pf: Add new APIs for
>queue memory alloc/free.
>
>On Tue, Sep 3, 2024 at 6:12 PM Geetha sowjanya <gakula@xxxxxxxxxxx>
>wrote:
>>
>> Group the queue(RX/TX/CQ) memory allocation and free code to single APIs.
>>
>> Signed-off-by: Geetha sowjanya <gakula@xxxxxxxxxxx>
>> ---
>> .../marvell/octeontx2/nic/otx2_common.h | 2 +
>> .../ethernet/marvell/octeontx2/nic/otx2_pf.c | 56 +++++++++++++------
>> 2 files changed, 41 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
>b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
>> index a47001a2b93f..df548aeffecf 100644
>> --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
>> +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
>> @@ -997,6 +997,8 @@ int otx2_pool_init(struct otx2_nic *pfvf, u16 pool_id,
>> int otx2_aura_init(struct otx2_nic *pfvf, int aura_id,
>> int pool_id, int numptrs);
>> int otx2_init_rsrc(struct pci_dev *pdev, struct otx2_nic *pf);
>> +void otx2_free_queue_mem(struct otx2_qset *qset);
>> +int otx2_alloc_queue_mem(struct otx2_nic *pf);
>>
>> /* RSS configuration APIs*/
>> int otx2_rss_init(struct otx2_nic *pfvf);
>> diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
>b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
>> index 4cfeca5ca626..68addc975113 100644
>> --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
>> +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
>> @@ -1770,15 +1770,23 @@ static void otx2_dim_work(struct work_struct
>*w)
>> dim->state = DIM_START_MEASURE;
>> }
>>
>> -int otx2_open(struct net_device *netdev)
>> +void otx2_free_queue_mem(struct otx2_qset *qset)
>> +{
>> + kfree(qset->sq);
>> + qset->sq = NULL;
>> + kfree(qset->cq);
>> + qset->cq = NULL;
>> + kfree(qset->rq);
>> + qset->rq = NULL;
>> + kfree(qset->napi);
>> +}
>> +EXPORT_SYMBOL(otx2_free_queue_mem);
>> +int otx2_alloc_queue_mem(struct otx2_nic *pf)
>> {
>> - struct otx2_nic *pf = netdev_priv(netdev);
>> - struct otx2_cq_poll *cq_poll = NULL;
>> struct otx2_qset *qset = &pf->qset;
>> - int err = 0, qidx, vec;
>> - char *irq_name;
>> + struct otx2_cq_poll *cq_poll;
>> + int err = -ENOMEM;
>I don't see 'err' getting set to anything else. Can avoid the variable
>and directly return -ENOMEM everywhere?
Will fix it in next version.