Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes.

This code was detected with the help of Coccinelle and, audited and
fixed manually.

Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
 arch/s390/appldata/appldata_os.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/s390/appldata/appldata_os.c b/arch/s390/appldata/appldata_os.c
index 5503217366ec..a363d30ce739 100644
--- a/arch/s390/appldata/appldata_os.c
+++ b/arch/s390/appldata/appldata_os.c
@@ -129,8 +129,7 @@ static void appldata_get_os_data(void *data)
 
        os_data->nr_cpus = j;
 
-       new_size = sizeof(struct appldata_os_data) +
-                  (os_data->nr_cpus * sizeof(struct appldata_os_per_cpu));
+       new_size = struct_size(os_data, os_cpu, os_data->nr_cpus);
        if (ops.size != new_size) {
                if (ops.active) {
                        rc = appldata_diag(APPLDATA_RECORD_OS_ID,
@@ -165,8 +164,7 @@ static int __init appldata_os_init(void)
 {
        int rc, max_size;
 
-       max_size = sizeof(struct appldata_os_data) +
-                  (num_possible_cpus() * sizeof(struct appldata_os_per_cpu));
+       max_size = struct_size(appldata_os_data, os_cpu, num_possible_cpus());
        if (max_size > APPLDATA_MAX_REC_SIZE) {
                pr_err("Maximum OS record size %i exceeds the maximum "
                       "record size %i\n", max_size, APPLDATA_MAX_REC_SIZE);
-- 
2.27.0

Reply via email to