ASoc: qcom: q6afe: Use automatic cleanup of kfree()

Its common pattern in q6dsp code to allocate temporary buffer
to send gpr/apr packets and free at the function exit.
Now this can be simplified via __free(kfree) mechanism.

No functional changes.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Link: https://patch.msgid.link/20251023102444.88158-14-srinivas.kandagatla@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Srinivas Kandagatla 2025-10-23 11:24:37 +01:00 committed by Mark Brown
parent 896f1e4e10
commit 55094e55ae
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -1077,11 +1077,9 @@ static int q6afe_set_param(struct q6afe *afe, struct q6afe_port *port,
struct afe_svc_cmd_set_param *param; struct afe_svc_cmd_set_param *param;
struct afe_port_param_data_v2 *pdata; struct afe_port_param_data_v2 *pdata;
struct apr_pkt *pkt; struct apr_pkt *pkt;
int ret, pkt_size; int ret, pkt_size = APR_HDR_SIZE + sizeof(*param) + sizeof(*pdata) + psize;
void *p, *pl; void *pl;
void *p __free(kfree) = kzalloc(pkt_size, GFP_KERNEL);
pkt_size = APR_HDR_SIZE + sizeof(*param) + sizeof(*pdata) + psize;
p = kzalloc(pkt_size, GFP_KERNEL);
if (!p) if (!p)
return -ENOMEM; return -ENOMEM;
@ -1112,7 +1110,6 @@ static int q6afe_set_param(struct q6afe *afe, struct q6afe_port *port,
if (ret) if (ret)
dev_err(afe->dev, "AFE set params failed %d\n", ret); dev_err(afe->dev, "AFE set params failed %d\n", ret);
kfree(pkt);
return ret; return ret;
} }
@ -1131,11 +1128,9 @@ static int q6afe_port_set_param_v2(struct q6afe_port *port, void *data,
struct q6afe *afe = port->afe; struct q6afe *afe = port->afe;
struct apr_pkt *pkt; struct apr_pkt *pkt;
u16 port_id = port->id; u16 port_id = port->id;
int ret, pkt_size; int ret, pkt_size = APR_HDR_SIZE + sizeof(*param) + sizeof(*pdata) + psize;
void *p, *pl; void *pl;
void *p __free(kfree) = kzalloc(pkt_size, GFP_KERNEL);
pkt_size = APR_HDR_SIZE + sizeof(*param) + sizeof(*pdata) + psize;
p = kzalloc(pkt_size, GFP_KERNEL);
if (!p) if (!p)
return -ENOMEM; return -ENOMEM;
@ -1168,7 +1163,6 @@ static int q6afe_port_set_param_v2(struct q6afe_port *port, void *data,
dev_err(afe->dev, "AFE enable for port 0x%x failed %d\n", dev_err(afe->dev, "AFE enable for port 0x%x failed %d\n",
port_id, ret); port_id, ret);
kfree(pkt);
return ret; return ret;
} }
@ -1285,7 +1279,7 @@ int q6afe_port_stop(struct q6afe_port *port)
int port_id = port->id; int port_id = port->id;
int ret = 0; int ret = 0;
int index, pkt_size; int index, pkt_size;
void *p; void *p __free(kfree) = NULL;
index = port->token; index = port->token;
if (index < 0 || index >= AFE_PORT_MAX) { if (index < 0 || index >= AFE_PORT_MAX) {
@ -1316,7 +1310,6 @@ int q6afe_port_stop(struct q6afe_port *port)
if (ret) if (ret)
dev_err(afe->dev, "AFE close failed %d\n", ret); dev_err(afe->dev, "AFE close failed %d\n", ret);
kfree(pkt);
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(q6afe_port_stop); EXPORT_SYMBOL_GPL(q6afe_port_stop);
@ -1676,7 +1669,7 @@ int q6afe_port_start(struct q6afe_port *port)
int ret, param_id = port->cfg_type; int ret, param_id = port->cfg_type;
struct apr_pkt *pkt; struct apr_pkt *pkt;
int pkt_size; int pkt_size;
void *p; void *p __free(kfree) = NULL;
ret = q6afe_port_set_param_v2(port, &port->port_cfg, param_id, ret = q6afe_port_set_param_v2(port, &port->port_cfg, param_id,
AFE_MODULE_AUDIO_DEV_INTERFACE, AFE_MODULE_AUDIO_DEV_INTERFACE,
@ -1722,7 +1715,6 @@ int q6afe_port_start(struct q6afe_port *port)
dev_err(afe->dev, "AFE enable for port 0x%x failed %d\n", dev_err(afe->dev, "AFE enable for port 0x%x failed %d\n",
port_id, ret); port_id, ret);
kfree(pkt);
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(q6afe_port_start); EXPORT_SYMBOL_GPL(q6afe_port_start);
@ -1845,11 +1837,8 @@ int q6afe_unvote_lpass_core_hw(struct device *dev, uint32_t hw_block_id,
struct afe_cmd_remote_lpass_core_hw_devote_request *vote_cfg; struct afe_cmd_remote_lpass_core_hw_devote_request *vote_cfg;
struct apr_pkt *pkt; struct apr_pkt *pkt;
int ret = 0; int ret = 0;
int pkt_size; int pkt_size = APR_HDR_SIZE + sizeof(*vote_cfg);
void *p; void *p __free(kfree) = kzalloc(pkt_size, GFP_KERNEL);
pkt_size = APR_HDR_SIZE + sizeof(*vote_cfg);
p = kzalloc(pkt_size, GFP_KERNEL);
if (!p) if (!p)
return -ENOMEM; return -ENOMEM;
@ -1871,7 +1860,6 @@ int q6afe_unvote_lpass_core_hw(struct device *dev, uint32_t hw_block_id,
if (ret < 0) if (ret < 0)
dev_err(afe->dev, "AFE failed to unvote (%d)\n", hw_block_id); dev_err(afe->dev, "AFE failed to unvote (%d)\n", hw_block_id);
kfree(pkt);
return ret; return ret;
} }
EXPORT_SYMBOL(q6afe_unvote_lpass_core_hw); EXPORT_SYMBOL(q6afe_unvote_lpass_core_hw);
@ -1883,11 +1871,8 @@ int q6afe_vote_lpass_core_hw(struct device *dev, uint32_t hw_block_id,
struct afe_cmd_remote_lpass_core_hw_vote_request *vote_cfg; struct afe_cmd_remote_lpass_core_hw_vote_request *vote_cfg;
struct apr_pkt *pkt; struct apr_pkt *pkt;
int ret = 0; int ret = 0;
int pkt_size; int pkt_size = APR_HDR_SIZE + sizeof(*vote_cfg);
void *p; void *p __free(kfree) = kzalloc(pkt_size, GFP_KERNEL);
pkt_size = APR_HDR_SIZE + sizeof(*vote_cfg);
p = kzalloc(pkt_size, GFP_KERNEL);
if (!p) if (!p)
return -ENOMEM; return -ENOMEM;
@ -1911,8 +1896,6 @@ int q6afe_vote_lpass_core_hw(struct device *dev, uint32_t hw_block_id,
if (ret) if (ret)
dev_err(afe->dev, "AFE failed to vote (%d)\n", hw_block_id); dev_err(afe->dev, "AFE failed to vote (%d)\n", hw_block_id);
kfree(pkt);
return ret; return ret;
} }
EXPORT_SYMBOL(q6afe_vote_lpass_core_hw); EXPORT_SYMBOL(q6afe_vote_lpass_core_hw);