octeontx2-pf: Fix a memleak otx2_sq_init
When qmem_alloc and pfvf->hw_ops->sq_aq_init fails, sq->sg should be freed to prevent memleak. Fixes: c9c12d339d93 ("octeontx2-pf: Add support for PTP clock") Signed-off-by: Zhipeng Lu <alexious@zju.edu.cn> Acked-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f3616173bf
commit
b09b58e31b
@ -951,8 +951,11 @@ int otx2_sq_init(struct otx2_nic *pfvf, u16 qidx, u16 sqb_aura)
|
|||||||
if (pfvf->ptp && qidx < pfvf->hw.tx_queues) {
|
if (pfvf->ptp && qidx < pfvf->hw.tx_queues) {
|
||||||
err = qmem_alloc(pfvf->dev, &sq->timestamps, qset->sqe_cnt,
|
err = qmem_alloc(pfvf->dev, &sq->timestamps, qset->sqe_cnt,
|
||||||
sizeof(*sq->timestamps));
|
sizeof(*sq->timestamps));
|
||||||
if (err)
|
if (err) {
|
||||||
|
kfree(sq->sg);
|
||||||
|
sq->sg = NULL;
|
||||||
return err;
|
return err;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sq->head = 0;
|
sq->head = 0;
|
||||||
@ -968,7 +971,14 @@ int otx2_sq_init(struct otx2_nic *pfvf, u16 qidx, u16 sqb_aura)
|
|||||||
sq->stats.bytes = 0;
|
sq->stats.bytes = 0;
|
||||||
sq->stats.pkts = 0;
|
sq->stats.pkts = 0;
|
||||||
|
|
||||||
return pfvf->hw_ops->sq_aq_init(pfvf, qidx, sqb_aura);
|
err = pfvf->hw_ops->sq_aq_init(pfvf, qidx, sqb_aura);
|
||||||
|
if (err) {
|
||||||
|
kfree(sq->sg);
|
||||||
|
sq->sg = NULL;
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user