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:07 UTC|newest]
Thread overview: 22+ 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-12 20:52 ` kernel test robot
2026-03-13 0:23 ` kernel test robot
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.