Commit c5978378 authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Jakub Kicinski
Browse files

net: airoha: Fix an error handling path in airoha_alloc_gdm_port()



If register_netdev() fails, the error handling path of the probe will not
free the memory allocated by the previous airoha_metadata_dst_alloc() call
because port->dev->reg_state will not be NETREG_REGISTERED.

So, an explicit airoha_metadata_dst_free() call is needed in this case to
avoid a memory leak.

Fixes: af3cf757 ("net: airoha: Move DSA tag in DMA descriptor")
Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Link: https://patch.msgid.link/1b94b91345017429ed653e2f05d25620dc2823f9.1746715755.git.christophe.jaillet@wanadoo.fr


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 0795b05a
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -2541,7 +2541,15 @@ static int airoha_alloc_gdm_port(struct airoha_eth *eth,
	if (err)
		return err;

	return register_netdev(dev);
	err = register_netdev(dev);
	if (err)
		goto free_metadata_dst;

	return 0;

free_metadata_dst:
	airoha_metadata_dst_free(port);
	return err;
}

static int airoha_probe(struct platform_device *pdev)