fpga: dfl: Use struct_size() in kzalloc()
authorGustavo A. R. Silva <gustavoars@kernel.org>
Wed, 17 Jun 2020 22:10:39 +0000 (17:10 -0500)
committerMoritz Fischer <mdf@kernel.org>
Fri, 19 Jun 2020 01:22:12 +0000 (18:22 -0700)
Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes. Also, remove unnecessary
function dfl_feature_platform_data_size().

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

Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Moritz Fischer <mdf@kernel.org>
drivers/fpga/dfl.c
drivers/fpga/dfl.h

index 9909948..2dd13e0 100644 (file)
@@ -487,8 +487,7 @@ static int build_info_commit_dev(struct build_feature_devs_info *binfo)
         * it will be automatically freed by device's release() callback,
         * platform_device_release().
         */
-       pdata = kzalloc(dfl_feature_platform_data_size(binfo->feature_num),
-                       GFP_KERNEL);
+       pdata = kzalloc(struct_size(pdata, features, binfo->feature_num), GFP_KERNEL);
        if (!pdata)
                return -ENOMEM;
 
index 2f5d305..044b0e8 100644 (file)
@@ -299,12 +299,6 @@ struct dfl_feature_ops {
 #define DFL_FPGA_FEATURE_DEV_FME               "dfl-fme"
 #define DFL_FPGA_FEATURE_DEV_PORT              "dfl-port"
 
-static inline int dfl_feature_platform_data_size(const int num)
-{
-       return sizeof(struct dfl_feature_platform_data) +
-               num * sizeof(struct dfl_feature);
-}
-
 void dfl_fpga_dev_feature_uinit(struct platform_device *pdev);
 int dfl_fpga_dev_feature_init(struct platform_device *pdev,
                              struct dfl_feature_driver *feature_drvs);