ASoC: Intel: avs: Silence false-positive memcpy() warnings
authorCezary Rojewski <cezary.rojewski@intel.com>
Fri, 5 Apr 2024 09:09:19 +0000 (11:09 +0200)
committerMark Brown <broonie@kernel.org>
Fri, 5 Apr 2024 12:13:03 +0000 (13:13 +0100)
Commit df8fc4e934c1 ("kbuild: Enable -fstrict-flex-arrays=3") enforced
strict flex array declarations. This generates false-positive in form of:
"memcpy: detected field-spanning write". Avoid it by utilizing the
DECLARE_FLEX_ARRAY() macro.

Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://msgid.link/r/20240405090929.1184068-4-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/avs/messages.h
sound/soc/intel/avs/path.c

index 4e609a08863c8cb9eb14e9a83af555882e82a7be..007bc4fb6d99d5435b6ab6b5648eb55dcb6a3088 100644 (file)
@@ -752,9 +752,9 @@ struct avs_copier_gtw_cfg {
        union avs_connector_node_id node_id;
        u32 dma_buffer_size;
        u32 config_length;
-       struct {
+       union {
                union avs_gtw_attributes attrs;
-               u32 blob[];
+               DECLARE_FLEX_ARRAY(u32, blob);
        } config;
 } __packed;
 
index e785fc2a7008fab675225f361c963f9fa918d293..5944865a1193dba204a1ece7758377bd9a23b60d 100644 (file)
@@ -254,7 +254,7 @@ static int avs_copier_create(struct avs_dev *adev, struct avs_path_module *mod)
        /* config_length in DWORDs */
        cfg->gtw_cfg.config_length = DIV_ROUND_UP(data_size, 4);
        if (data)
-               memcpy(&cfg->gtw_cfg.config, data, data_size);
+               memcpy(&cfg->gtw_cfg.config.blob, data, data_size);
 
        mod->gtw_attrs = cfg->gtw_cfg.config.attrs;