linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] hinic: fix potential resource leak
@ 2020-09-17  3:03 Wei Li
  2020-09-17  3:44 ` luobin (L)
  0 siblings, 1 reply; 3+ messages in thread
From: Wei Li @ 2020-09-17  3:03 UTC (permalink / raw)
  To: Bin Luo, David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, huawei.libin, guohanjun

In rx_request_irq(), it will just return what irq_set_affinity_hint()
returns. If it is failed, the napi added is not deleted properly.
Add a common exit for failures to do this.

Signed-off-by: Wei Li <liwei391@huawei.com>
---
 drivers/net/ethernet/huawei/hinic/hinic_rx.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/huawei/hinic/hinic_rx.c b/drivers/net/ethernet/huawei/hinic/hinic_rx.c
index 5bee951fe9d4..63da9cc8ca51 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_rx.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_rx.c
@@ -543,18 +543,23 @@ static int rx_request_irq(struct hinic_rxq *rxq)
 	if (err) {
 		netif_err(nic_dev, drv, rxq->netdev,
 			  "Failed to set RX interrupt coalescing attribute\n");
-		rx_del_napi(rxq);
-		return err;
+		goto err_irq;
 	}
 
 	err = request_irq(rq->irq, rx_irq, 0, rxq->irq_name, rxq);
-	if (err) {
-		rx_del_napi(rxq);
-		return err;
-	}
+	if (err)
+		goto err_irq;
 
 	cpumask_set_cpu(qp->q_id % num_online_cpus(), &rq->affinity_mask);
-	return irq_set_affinity_hint(rq->irq, &rq->affinity_mask);
+	err = irq_set_affinity_hint(rq->irq, &rq->affinity_mask);
+	if (err)
+		goto err_irq;
+
+	return 0;
+
+err_irq:
+	rx_del_napi(rxq);
+	return err;
 }
 
 static void rx_free_irq(struct hinic_rxq *rxq)
-- 
2.17.1


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

* Re: [PATCH] hinic: fix potential resource leak
  2020-09-17  3:03 [PATCH] hinic: fix potential resource leak Wei Li
@ 2020-09-17  3:44 ` luobin (L)
  2020-09-17  3:55   ` liwei (GF)
  0 siblings, 1 reply; 3+ messages in thread
From: luobin (L) @ 2020-09-17  3:44 UTC (permalink / raw)
  To: Wei Li, David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, huawei.libin, guohanjun

On 2020/9/17 11:03, Wei Li wrote:
> +	err = irq_set_affinity_hint(rq->irq, &rq->affinity_mask);
> +	if (err)
> +		goto err_irq;
> +
> +	return 0;
> +
> +err_irq:
> +	rx_del_napi(rxq);
> +	return err;
If irq_set_affinity_hint fails, irq should be freed as well.

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

* Re: [PATCH] hinic: fix potential resource leak
  2020-09-17  3:44 ` luobin (L)
@ 2020-09-17  3:55   ` liwei (GF)
  0 siblings, 0 replies; 3+ messages in thread
From: liwei (GF) @ 2020-09-17  3:55 UTC (permalink / raw)
  To: luobin (L), David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, huawei.libin, guohanjun

Hi luobin,

On 2020/9/17 11:44, luobin (L) wrote:
> On 2020/9/17 11:03, Wei Li wrote:
>> +	err = irq_set_affinity_hint(rq->irq, &rq->affinity_mask);
>> +	if (err)
>> +		goto err_irq;
>> +
>> +	return 0;
>> +
>> +err_irq:
>> +	rx_del_napi(rxq);
>> +	return err;
> If irq_set_affinity_hint fails, irq should be freed as well.
> 
Yes, indeed.
I will fix that in the next spin.

Thanks,
Wei

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

end of thread, other threads:[~2020-09-17  3:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-17  3:03 [PATCH] hinic: fix potential resource leak Wei Li
2020-09-17  3:44 ` luobin (L)
2020-09-17  3:55   ` liwei (GF)

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).