Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: venus: hfi_cmds: Fix packet size calculation

Now that a one-element array was replaced with a flexible-array member
in struct hfi_sys_set_property_pkt, use the struct_size() helper to
correctly calculate the packet size.

Fixes: 701e10b3fd9f ("media: venus: hfi_cmds.h: Replace one-element array with flexible-array member")
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

authored by

Gustavo A. R. Silva and committed by
Mauro Carvalho Chehab
c73c23f3 12891698

+5 -4
+5 -4
drivers/media/platform/qcom/venus/hfi_cmds.c
··· 3 3 * Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. 4 4 * Copyright (C) 2017 Linaro Ltd. 5 5 */ 6 + #include <linux/overflow.h> 6 7 #include <linux/errno.h> 7 8 #include <linux/hash.h> 8 9 ··· 28 27 { 29 28 struct hfi_enable *hfi = (struct hfi_enable *)&pkt->data[1]; 30 29 31 - pkt->hdr.size = sizeof(*pkt) + sizeof(*hfi) + sizeof(u32); 30 + pkt->hdr.size = struct_size(pkt, data, 1) + sizeof(*hfi); 32 31 pkt->hdr.pkt_type = HFI_CMD_SYS_SET_PROPERTY; 33 32 pkt->num_properties = 1; 34 33 pkt->data[0] = HFI_PROPERTY_SYS_IDLE_INDICATOR; ··· 40 39 { 41 40 struct hfi_debug_config *hfi; 42 41 43 - pkt->hdr.size = sizeof(*pkt) + sizeof(*hfi) + sizeof(u32); 42 + pkt->hdr.size = struct_size(pkt, data, 1) + sizeof(*hfi); 44 43 pkt->hdr.pkt_type = HFI_CMD_SYS_SET_PROPERTY; 45 44 pkt->num_properties = 1; 46 45 pkt->data[0] = HFI_PROPERTY_SYS_DEBUG_CONFIG; ··· 51 50 52 51 void pkt_sys_coverage_config(struct hfi_sys_set_property_pkt *pkt, u32 mode) 53 52 { 54 - pkt->hdr.size = sizeof(*pkt) + sizeof(u32); 53 + pkt->hdr.size = struct_size(pkt, data, 2); 55 54 pkt->hdr.pkt_type = HFI_CMD_SYS_SET_PROPERTY; 56 55 pkt->num_properties = 1; 57 56 pkt->data[0] = HFI_PROPERTY_SYS_CONFIG_COVERAGE; ··· 117 116 { 118 117 struct hfi_enable *hfi = (struct hfi_enable *)&pkt->data[1]; 119 118 120 - pkt->hdr.size = sizeof(*pkt) + sizeof(*hfi) + sizeof(u32); 119 + pkt->hdr.size = struct_size(pkt, data, 1) + sizeof(*hfi); 121 120 pkt->hdr.pkt_type = HFI_CMD_SYS_SET_PROPERTY; 122 121 pkt->num_properties = 1; 123 122 pkt->data[0] = HFI_PROPERTY_SYS_CODEC_POWER_PLANE_CTRL;