Message ID | 20200908001324.8215-1-keitasuzuki.park@sslab.ics.keio.ac.jp |
---|---|
State | Superseded |
Headers | show |
Series | brcmsmac: fix memory leak in wlc_phy_attach_lcnphy | expand |
Thank you for your comment. I am relatively new to the Linux kernel community, so I am more than happy to receive comments. Please let me know if I'm violating any other rules. > > Signed-off-by: Keita Suzuki <keitasuzuki.park@sslab.ics.keio.ac.jp> > > --- > ... changelog here describing difference between previous patch and this > version. I will re-send the patch with the change log. Thanks, Keita 2020年9月8日(火) 20:18 Arend Van Spriel <arend.vanspriel@broadcom.com>: > > On 9/8/2020 2:13 AM, Keita Suzuki wrote: > > When wlc_phy_txpwr_srom_read_lcnphy fails in wlc_phy_attach_lcnphy, > > the allocated pi->u.pi_lcnphy is leaked, since struct brcms_phy will be > > freed in the caller function. > > > > Fix this by calling wlc_phy_detach_lcnphy in the error handler of > > wlc_phy_txpwr_srom_read_lcnphy before returning. > > Thanks for resubmitting the patch addressing my comment. For clarity it > is recommended to mark the subject with '[PATCH V2]' and add a ... > > > Signed-off-by: Keita Suzuki <keitasuzuki.park@sslab.ics.keio.ac.jp> > > --- > ... changelog here describing difference between previous patch and this > version. > > Regards, > Arend > --- > > .../net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-)
On 9/8/2020 2:02 PM, Keita Suzuki wrote: > Thank you for your comment. I am relatively new to the Linux > kernel community, so I am more than happy to receive comments. > Please let me know if I'm violating any other rules. Sure ;-) Here a useful link that Kalle (wireless drivers maintainer) is always sharing in his email signature: https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches Regards, Arend
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c index 7ef36234a25d..66797dc5e90d 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c @@ -5065,8 +5065,10 @@ bool wlc_phy_attach_lcnphy(struct brcms_phy *pi) pi->pi_fptr.radioloftget = wlc_lcnphy_get_radio_loft; pi->pi_fptr.detach = wlc_phy_detach_lcnphy; - if (!wlc_phy_txpwr_srom_read_lcnphy(pi)) + if (!wlc_phy_txpwr_srom_read_lcnphy(pi)) { + kfree(pi->u.pi_lcnphy); return false; + } if (LCNREV_IS(pi->pubpi.phy_rev, 1)) { if (pi_lcn->lcnphy_tempsense_option == 3) {
When wlc_phy_txpwr_srom_read_lcnphy fails in wlc_phy_attach_lcnphy, the allocated pi->u.pi_lcnphy is leaked, since struct brcms_phy will be freed in the caller function. Fix this by calling wlc_phy_detach_lcnphy in the error handler of wlc_phy_txpwr_srom_read_lcnphy before returning. Signed-off-by: Keita Suzuki <keitasuzuki.park@sslab.ics.keio.ac.jp> --- .../net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)