[PATCH 08/13][Hirsute/linux-azure] net: mana: Fix a memory leak in an error handling path in 'mana_create_txq()'

Tim Gardner tim.gardner at canonical.com
Thu Oct 21 12:23:49 UTC 2021

From: Christophe JAILLET <christophe.jaillet at wanadoo.fr>

BugLink: https://bugs.launchpad.net/bugs/1947859

If this test fails we must free some resources as in all the other error
handling paths of this function.

Fixes: ca9c54d2d6a5 ("net: mana: Add a driver for Microsoft Azure Network Adapter (MANA)")
Signed-off-by: Christophe JAILLET <christophe.jaillet at wanadoo.fr>
Reviewed-by: Dexuan Cui <decui at microsoft.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
(cherry picked from commit b90788459cd6d140171b046f0b37fad341ade0a3)
Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
 drivers/net/ethernet/microsoft/mana/mana_en.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
index 46aee2c49f1b..fff78900fc8a 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@ -1230,8 +1230,10 @@ static int mana_create_txq(struct mana_port_context *apc,
 		cq->gdma_id = cq->gdma_cq->id;
-		if (WARN_ON(cq->gdma_id >= gc->max_num_cqs))
-			return -EINVAL;
+		if (WARN_ON(cq->gdma_id >= gc->max_num_cqs)) {
+			err = -EINVAL;
+			goto out;
+		}
 		gc->cq_table[cq->gdma_id] = cq->gdma_cq;

More information about the kernel-team mailing list