[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