mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-27 06:34:11 +08:00
ASoC: qdsp6: q6core: Use struct_size() in kmemdup()
Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes, in particular in the context in which this code is being used. So, replace code of the following form: sizeof(*fwk) + fwk->num_services * sizeof(fwk->svc_api_info[0]); with: struct_size(fwk, svc_api_info, fwk->num_services) and so on... Notice that variables bytes and len are unnecessary, hence they are removed. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
d00cc2f16a
commit
e718a3eb09
@ -98,13 +98,13 @@ static int q6core_callback(struct apr_device *adev, struct apr_resp_pkt *data)
|
||||
}
|
||||
case AVCS_CMDRSP_GET_FWK_VERSION: {
|
||||
struct avcs_cmdrsp_get_fwk_version *fwk;
|
||||
int bytes;
|
||||
|
||||
fwk = data->payload;
|
||||
bytes = sizeof(*fwk) + fwk->num_services *
|
||||
sizeof(fwk->svc_api_info[0]);
|
||||
|
||||
core->fwk_version = kmemdup(data->payload, bytes, GFP_ATOMIC);
|
||||
core->fwk_version = kmemdup(data->payload,
|
||||
struct_size(fwk, svc_api_info,
|
||||
fwk->num_services),
|
||||
GFP_ATOMIC);
|
||||
if (!core->fwk_version)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -115,13 +115,13 @@ static int q6core_callback(struct apr_device *adev, struct apr_resp_pkt *data)
|
||||
}
|
||||
case AVCS_GET_VERSIONS_RSP: {
|
||||
struct avcs_cmdrsp_get_version *v;
|
||||
int len;
|
||||
|
||||
v = data->payload;
|
||||
|
||||
len = sizeof(*v) + v->num_services * sizeof(v->svc_api_info[0]);
|
||||
|
||||
core->svc_version = kmemdup(data->payload, len, GFP_ATOMIC);
|
||||
core->svc_version = kmemdup(data->payload,
|
||||
struct_size(v, svc_api_info,
|
||||
v->num_services),
|
||||
GFP_ATOMIC);
|
||||
if (!core->svc_version)
|
||||
return -ENOMEM;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user