From: Sanjay Chitroda <sanjayembeddedse@gmail.com>
To: jic23@kernel.org, m.tretter@pengutronix.de, mchehab@kernel.org,
p.zabel@pengutronix.de, tiffany.lin@mediatek.com,
andrew-ct.chen@mediatek.com, yunfei.dong@mediatek.com,
matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com,
johan@kernel.org, elder@kernel.org, gregkh@linuxfoundation.org,
pure.logic@nexus-software.ie
Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org,
kernel@pengutronix.de, kees@kernel.org,
nabijaczleweli@nabijaczleweli.xyz, marcelo.schmitt1@gmail.com,
maudspierings@gocontroll.com, hverkuil+cisco@kernel.org,
ribalda@chromium.org, straube.linux@gmail.com,
dan.carpenter@linaro.org, lukagejak5@gmail.com,
ethantidmore06@gmail.com, samasth.norway.ananda@oracle.com,
karanja99erick@gmail.com, s9430939@naver.com, tglx@kernel.org,
mingo@kernel.org, sun.jian.kdev@gmail.com, weibu@redadmin.org,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-media@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, greybus-dev@lists.linaro.org,
linux-staging@lists.linux.dev, sanjayembeddedse@gmail.com,
skhan@linuxfoundation.org
Subject: [PATCH 7/7] staging: rtl8723bs: simplify cleanup using __free
Date: Wed, 11 Mar 2026 01:35:13 +0530 [thread overview]
Message-ID: <20260310200513.2162018-8-sanjayembedded@gmail.com> (raw)
In-Reply-To: <20260310200513.2162018-1-sanjayembedded@gmail.com>
From: Sanjay Chitroda <sanjayembeddedse@gmail.com>
Replace manual cleanup logic with __free attribute from cleanup.h. This
removes explicit kfree() calls and simplifies the error handling paths.
No functional change intended for kmalloc().
Signed-off-by: Sanjay Chitroda <sanjayembeddedse@gmail.com>
---
.../staging/rtl8723bs/hal/rtl8723b_hal_init.c | 13 ++-----
drivers/staging/rtl8723bs/hal/sdio_ops.c | 37 ++++---------------
2 files changed, 11 insertions(+), 39 deletions(-)
diff --git a/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c b/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c
index 8d259820f103..2badf7d1aec4 100644
--- a/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c
+++ b/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c
@@ -627,7 +627,6 @@ static void hal_ReadEFuse_WiFi(
u8 *pbuf
)
{
- u8 *efuseTbl = NULL;
u16 eFuse_Addr = 0;
u8 offset, wden;
u8 efuseHeader, efuseExtHdr, efuseData;
@@ -640,7 +639,7 @@ static void hal_ReadEFuse_WiFi(
if ((_offset + _size_byte) > EFUSE_MAX_MAP_LEN)
return;
- efuseTbl = kmalloc(EFUSE_MAX_MAP_LEN, GFP_ATOMIC);
+ u8 *efuseTbl __free(kfree) = kmalloc(EFUSE_MAX_MAP_LEN, GFP_ATOMIC);
if (!efuseTbl)
return;
@@ -702,8 +701,6 @@ static void hal_ReadEFuse_WiFi(
rtw_hal_set_hwreg(padapter, HW_VAR_EFUSE_BYTES, (u8 *)&used);
rtw_hal_set_hwreg(padapter, HW_VAR_EFUSE_USAGE, (u8 *)&efuse_usage);
-
- kfree(efuseTbl);
}
static void hal_ReadEFuse_BT(
@@ -713,7 +710,6 @@ static void hal_ReadEFuse_BT(
u8 *pbuf
)
{
- u8 *efuseTbl;
u8 bank;
u16 eFuse_Addr;
u8 efuseHeader, efuseExtHdr, efuseData;
@@ -728,7 +724,7 @@ static void hal_ReadEFuse_BT(
if ((_offset + _size_byte) > EFUSE_BT_MAP_LEN)
return;
- efuseTbl = kmalloc(EFUSE_BT_MAP_LEN, GFP_ATOMIC);
+ u8 *efuseTbl __free(kfree) = kmalloc(EFUSE_BT_MAP_LEN, GFP_ATOMIC);
if (!efuseTbl)
return;
@@ -739,7 +735,7 @@ static void hal_ReadEFuse_BT(
for (bank = 1; bank < 3; bank++) { /* 8723b Max bake 0~2 */
if (hal_EfuseSwitchToBank(padapter, bank) == false)
- goto exit;
+ return;
eFuse_Addr = 0;
@@ -804,9 +800,6 @@ static void hal_ReadEFuse_BT(
rtw_hal_set_hwreg(padapter, HW_VAR_EFUSE_BT_BYTES, (u8 *)&used);
rtw_hal_set_hwreg(padapter, HW_VAR_EFUSE_BT_USAGE, (u8 *)&efuse_usage);
-
-exit:
- kfree(efuseTbl);
}
void Hal_ReadEFuse(
diff --git a/drivers/staging/rtl8723bs/hal/sdio_ops.c b/drivers/staging/rtl8723bs/hal/sdio_ops.c
index c9cb20c61a2b..303139a75551 100644
--- a/drivers/staging/rtl8723bs/hal/sdio_ops.c
+++ b/drivers/staging/rtl8723bs/hal/sdio_ops.c
@@ -179,9 +179,7 @@ static u32 sdio_read32(struct intf_hdl *intfhdl, u32 addr)
if (shift == 0) {
val = sd_read32(intfhdl, ftaddr, NULL);
} else {
- u8 *tmpbuf;
-
- tmpbuf = kmalloc(8, GFP_ATOMIC);
+ u8 *tmpbuf __free(kfree) = kmalloc(8, GFP_ATOMIC);
if (!tmpbuf)
return SDIO_ERR_VAL32;
@@ -189,8 +187,6 @@ static u32 sdio_read32(struct intf_hdl *intfhdl, u32 addr)
sd_read(intfhdl, ftaddr, 8, tmpbuf);
memcpy(&le_tmp, tmpbuf + shift, 4);
val = le32_to_cpu(le_tmp);
-
- kfree(tmpbuf);
}
return val;
}
@@ -223,19 +219,17 @@ static s32 sdio_readN(struct intf_hdl *intfhdl, u32 addr, u32 cnt, u8 *buf)
if (shift == 0) {
err = sd_read(intfhdl, ftaddr, cnt, buf);
} else {
- u8 *tmpbuf;
u32 n;
ftaddr &= ~(u16)0x3;
n = cnt + shift;
- tmpbuf = kmalloc(n, GFP_ATOMIC);
+ u8 *tmpbuf __free(kfree) = kmalloc(n, GFP_ATOMIC);
if (!tmpbuf)
return -ENOMEM;
err = sd_read(intfhdl, ftaddr, n, tmpbuf);
if (!err)
memcpy(buf, tmpbuf + shift, cnt);
- kfree(tmpbuf);
}
return err;
}
@@ -326,22 +320,18 @@ static s32 sdio_writeN(struct intf_hdl *intfhdl, u32 addr, u32 cnt, u8 *buf)
if (shift == 0) {
err = sd_write(intfhdl, ftaddr, cnt, buf);
} else {
- u8 *tmpbuf;
u32 n;
ftaddr &= ~(u16)0x3;
n = cnt + shift;
- tmpbuf = kmalloc(n, GFP_ATOMIC);
+ u8 *tmpbuf __free(kfree) = kmalloc(n, GFP_ATOMIC);
if (!tmpbuf)
return -ENOMEM;
err = sd_read(intfhdl, ftaddr, 4, tmpbuf);
- if (err) {
- kfree(tmpbuf);
+ if (err)
return err;
- }
memcpy(tmpbuf + shift, buf, cnt);
err = sd_write(intfhdl, ftaddr, n, tmpbuf);
- kfree(tmpbuf);
}
return err;
}
@@ -491,7 +481,6 @@ static s32 _sdio_local_read(
struct intf_hdl *intfhdl;
u8 mac_pwr_ctrl_on;
s32 err;
- u8 *tmpbuf;
u32 n;
intfhdl = &adapter->iopriv.intf;
@@ -503,7 +492,7 @@ static s32 _sdio_local_read(
return _sd_cmd52_read(intfhdl, addr, cnt, buf);
n = round_up(cnt, 4);
- tmpbuf = kmalloc(n, GFP_ATOMIC);
+ u8 *tmpbuf __free(kfree) = kmalloc(n, GFP_ATOMIC);
if (!tmpbuf)
return -ENOMEM;
@@ -511,8 +500,6 @@ static s32 _sdio_local_read(
if (!err)
memcpy(buf, tmpbuf, cnt);
- kfree(tmpbuf);
-
return err;
}
@@ -529,7 +516,6 @@ s32 sdio_local_read(
struct intf_hdl *intfhdl;
u8 mac_pwr_ctrl_on;
s32 err;
- u8 *tmpbuf;
u32 n;
intfhdl = &adapter->iopriv.intf;
@@ -544,7 +530,7 @@ s32 sdio_local_read(
return sd_cmd52_read(intfhdl, addr, cnt, buf);
n = round_up(cnt, 4);
- tmpbuf = kmalloc(n, GFP_ATOMIC);
+ u8 *tmpbuf __free(kfree) = kmalloc(n, GFP_ATOMIC);
if (!tmpbuf)
return -ENOMEM;
@@ -552,8 +538,6 @@ s32 sdio_local_read(
if (!err)
memcpy(buf, tmpbuf, cnt);
- kfree(tmpbuf);
-
return err;
}
@@ -570,7 +554,6 @@ s32 sdio_local_write(
struct intf_hdl *intfhdl;
u8 mac_pwr_ctrl_on;
s32 err;
- u8 *tmpbuf;
intfhdl = &adapter->iopriv.intf;
@@ -583,7 +566,7 @@ s32 sdio_local_write(
)
return sd_cmd52_write(intfhdl, addr, cnt, buf);
- tmpbuf = kmalloc(cnt, GFP_ATOMIC);
+ u8 *tmpbuf __free(kfree) = kmalloc(cnt, GFP_ATOMIC);
if (!tmpbuf)
return -ENOMEM;
@@ -591,8 +574,6 @@ s32 sdio_local_write(
err = sd_write(intfhdl, addr, cnt, tmpbuf);
- kfree(tmpbuf);
-
return err;
}
@@ -880,16 +861,14 @@ void sd_int_dpc(struct adapter *adapter)
}
if (hal->sdio_hisr & SDIO_HISR_TXERR) {
- u8 *status;
u32 addr;
- status = kmalloc(4, GFP_ATOMIC);
+ u8 *status __free(kfree) = kmalloc(4, GFP_ATOMIC);
if (status) {
addr = REG_TXDMA_STATUS;
hal_sdio_get_cmd_addr_8723b(adapter, WLAN_IOREG_DEVICE_ID, addr, &addr);
_sd_read(intfhdl, addr, 4, status);
_sd_write(intfhdl, addr, 4, status);
- kfree(status);
}
}
--
2.34.1
next prev parent reply other threads:[~2026-03-10 20:06 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-10 20:05 [PATCH 0/7] drivers: Simplify cleanup paths using __free Sanjay Chitroda
2026-03-10 20:05 ` [PATCH 1/7] staging: greybus: simplify cleanup " Sanjay Chitroda
2026-03-10 21:07 ` Andy Shevchenko
2026-03-11 6:51 ` Dan Carpenter
2026-03-11 7:06 ` Greg KH
2026-03-10 20:05 ` [PATCH 2/7] iio: ssp_sensors: " Sanjay Chitroda
2026-03-10 21:11 ` Andy Shevchenko
2026-03-10 20:05 ` [PATCH 3/7] iio: st_sensors: " Sanjay Chitroda
2026-03-11 0:04 ` David Lechner
2026-03-10 20:05 ` [PATCH 4/7] media: mediatek: vcodec: " Sanjay Chitroda
2026-03-19 21:08 ` Nicolas Dufresne
2026-03-10 20:05 ` [PATCH 5/7] media: chips-media: coda: " Sanjay Chitroda
2026-03-10 20:05 ` [PATCH 6/7] media: allegro: " Sanjay Chitroda
2026-03-10 20:05 ` Sanjay Chitroda [this message]
2026-03-10 21:42 ` [PATCH 7/7] staging: rtl8723bs: " Andrew Lunn
2026-03-11 6:45 ` Greg KH
2026-03-10 21:04 ` [PATCH 0/7] drivers: Simplify cleanup paths " Andy Shevchenko
2026-03-10 21:52 ` David Lechner
2026-03-11 1:57 ` Sanjay Chitroda
2026-03-11 5:42 ` Luka Gejak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260310200513.2162018-8-sanjayembedded@gmail.com \
--to=sanjayembeddedse@gmail.com \
--cc=andrew-ct.chen@mediatek.com \
--cc=andy@kernel.org \
--cc=angelogioacchino.delregno@collabora.com \
--cc=dan.carpenter@linaro.org \
--cc=dlechner@baylibre.com \
--cc=elder@kernel.org \
--cc=ethantidmore06@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=greybus-dev@lists.linaro.org \
--cc=hverkuil+cisco@kernel.org \
--cc=jic23@kernel.org \
--cc=johan@kernel.org \
--cc=karanja99erick@gmail.com \
--cc=kees@kernel.org \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-staging@lists.linux.dev \
--cc=lukagejak5@gmail.com \
--cc=m.tretter@pengutronix.de \
--cc=marcelo.schmitt1@gmail.com \
--cc=matthias.bgg@gmail.com \
--cc=maudspierings@gocontroll.com \
--cc=mchehab@kernel.org \
--cc=mingo@kernel.org \
--cc=nabijaczleweli@nabijaczleweli.xyz \
--cc=nuno.sa@analog.com \
--cc=p.zabel@pengutronix.de \
--cc=pure.logic@nexus-software.ie \
--cc=ribalda@chromium.org \
--cc=s9430939@naver.com \
--cc=samasth.norway.ananda@oracle.com \
--cc=skhan@linuxfoundation.org \
--cc=straube.linux@gmail.com \
--cc=sun.jian.kdev@gmail.com \
--cc=tglx@kernel.org \
--cc=tiffany.lin@mediatek.com \
--cc=weibu@redadmin.org \
--cc=yunfei.dong@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox