Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f2764f61 authored by Souptick Joarder's avatar Souptick Joarder Committed by Kalle Valo
Browse files

rtlwifi: Fix memory leak when firmware request fails



This patch will fix memory leak when firmware request fails

Signed-off-by: default avatarSouptick Joarder <jrdr.linux@gmail.com>
Acked-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 4de95fc5
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -175,6 +175,8 @@ int rtl88e_init_sw_vars(struct ieee80211_hw *hw)
				      rtl_fw_cb);
				      rtl_fw_cb);
	if (err) {
	if (err) {
		pr_info("Failed to request firmware!\n");
		pr_info("Failed to request firmware!\n");
		vfree(rtlpriv->rtlhal.pfirmware);
		rtlpriv->rtlhal.pfirmware = NULL;
		return 1;
		return 1;
	}
	}


+2 −0
Original line number Original line Diff line number Diff line
@@ -176,6 +176,8 @@ int rtl92c_init_sw_vars(struct ieee80211_hw *hw)
				      rtl_fw_cb);
				      rtl_fw_cb);
	if (err) {
	if (err) {
		pr_err("Failed to request firmware!\n");
		pr_err("Failed to request firmware!\n");
		vfree(rtlpriv->rtlhal.pfirmware);
		rtlpriv->rtlhal.pfirmware = NULL;
		return 1;
		return 1;
	}
	}


+4 −0
Original line number Original line Diff line number Diff line
@@ -85,6 +85,10 @@ static int rtl92cu_init_sw_vars(struct ieee80211_hw *hw)
	err = request_firmware_nowait(THIS_MODULE, 1,
	err = request_firmware_nowait(THIS_MODULE, 1,
				      fw_name, rtlpriv->io.dev,
				      fw_name, rtlpriv->io.dev,
				      GFP_KERNEL, hw, rtl_fw_cb);
				      GFP_KERNEL, hw, rtl_fw_cb);
	if (err) {
		vfree(rtlpriv->rtlhal.pfirmware);
		rtlpriv->rtlhal.pfirmware = NULL;
	}
	return err;
	return err;
}
}


+2 −0
Original line number Original line Diff line number Diff line
@@ -183,6 +183,8 @@ static int rtl92d_init_sw_vars(struct ieee80211_hw *hw)
				      rtl_fw_cb);
				      rtl_fw_cb);
	if (err) {
	if (err) {
		pr_err("Failed to request firmware!\n");
		pr_err("Failed to request firmware!\n");
		vfree(rtlpriv->rtlhal.pfirmware);
		rtlpriv->rtlhal.pfirmware = NULL;
		return 1;
		return 1;
	}
	}


+2 −0
Original line number Original line Diff line number Diff line
@@ -177,6 +177,8 @@ int rtl92ee_init_sw_vars(struct ieee80211_hw *hw)
				      rtl_fw_cb);
				      rtl_fw_cb);
	if (err) {
	if (err) {
		pr_err("Failed to request firmware!\n");
		pr_err("Failed to request firmware!\n");
		vfree(rtlpriv->rtlhal.pfirmware);
		rtlpriv->rtlhal.pfirmware = NULL;
		return 1;
		return 1;
	}
	}


Loading