Re: [PATCH net-next 3/3] r8169: release firmware on application failure
From: Andrew Lunn
Date: Wed Sep 16 2026 - 15:43:03 EST
On Wed, Sep 16, 2026 at 12:24:44PM -0300, Matheus Alves de Almeida wrote:
> 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,
If the firmware cannot be written, is the device dead? Should this
return an error, so the caller can abort the probe?
Andrew