[PATCH net-next 3/3] r8169: release firmware on application failure

From: Matheus Alves de Almeida

Date: Wed Sep 16 2026 - 11:35:03 EST


After an rtl_fw_write_firmware() failure, r8169_apply_firmware() does
not release the firmware. A TODO notes that it should be released
in this case.

Release the firmware on failure and remove the TODO.

Signed-off-by: Matheus Alves de Almeida <matheus.aalmeida@xxxxxxxxxxxx>
---
drivers/net/ethernet/realtek/r8169_main.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index 3c37c5a6c..c54423cd2 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -2596,12 +2596,14 @@ void r8169_apply_firmware(struct rtl8169_private *tp)
{
int val;

- /* TODO: release firmware if rtl_fw_write_firmware signals failure. */
if (tp->rtl_fw) {
- rtl_fw_write_firmware(tp, tp->rtl_fw);
+ int rc = rtl_fw_write_firmware(tp, tp->rtl_fw);
/* At least one firmware doesn't reset tp->ocp_base. */
tp->ocp_base = OCP_STD_PHY_BASE;

+ if (rc < 0)
+ rtl_release_firmware(tp);
+
/* PHY soft reset may still be in progress */
if (tp->phydev)
phy_read_poll_timeout(tp->phydev, MII_BMCR, val,
--
2.43.0