OSDN Git Service

ASoC: topology: Pass correct pointer instead of casting
authorAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Fri, 27 Jan 2023 23:11:07 +0000 (00:11 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 30 Jan 2023 16:56:08 +0000 (16:56 +0000)
Instead of passing address of structure, the containing structure is
cast to target structure. While it works - the expected structure is the
first field of containing one - it is bad practice, fix this by passing
pointer to structure field.

Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Link: https://lore.kernel.org/r/20230127231111.937721-8-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-topology.c

index 766de16..c35c0c5 100644 (file)
@@ -721,7 +721,7 @@ static int soc_tplg_dbytes_create(struct soc_tplg *tplg, size_t size)
        }
 
        /* pass control to driver for optional further init */
-       ret = soc_tplg_control_load(tplg, &kc, (struct snd_soc_tplg_ctl_hdr *)be);
+       ret = soc_tplg_control_load(tplg, &kc, &be->hdr);
        if (ret < 0) {
                dev_err(tplg->dev, "ASoC: failed to init %s\n", be->hdr.name);
                goto err;
@@ -805,7 +805,7 @@ static int soc_tplg_dmixer_create(struct soc_tplg *tplg, size_t size)
        }
 
        /* pass control to driver for optional further init */
-       ret = soc_tplg_control_load(tplg, &kc, (struct snd_soc_tplg_ctl_hdr *)mc);
+       ret = soc_tplg_control_load(tplg, &kc, &mc->hdr);
        if (ret < 0) {
                dev_err(tplg->dev, "ASoC: failed to init %s\n", mc->hdr.name);
                goto err;
@@ -973,7 +973,7 @@ static int soc_tplg_denum_create(struct soc_tplg *tplg, size_t size)
        }
 
        /* pass control to driver for optional further init */
-       ret = soc_tplg_control_load(tplg, &kc, (struct snd_soc_tplg_ctl_hdr *)ec);
+       ret = soc_tplg_control_load(tplg, &kc, &ec->hdr);
        if (ret < 0) {
                dev_err(tplg->dev, "ASoC: failed to init %s\n", ec->hdr.name);
                goto err;
@@ -1189,7 +1189,7 @@ static int soc_tplg_dapm_widget_dmixer_create(struct soc_tplg *tplg, struct snd_
        }
 
        /* pass control to driver for optional further init */
-       err = soc_tplg_control_load(tplg, kc, (struct snd_soc_tplg_ctl_hdr *)mc);
+       err = soc_tplg_control_load(tplg, kc, &mc->hdr);
        if (err < 0) {
                dev_err(tplg->dev, "ASoC: failed to init %s\n",
                        mc->hdr.name);
@@ -1273,7 +1273,7 @@ static int soc_tplg_dapm_widget_denum_create(struct soc_tplg *tplg, struct snd_k
        }
 
        /* pass control to driver for optional further init */
-       err = soc_tplg_control_load(tplg, kc, (struct snd_soc_tplg_ctl_hdr *)ec);
+       err = soc_tplg_control_load(tplg, kc, &ec->hdr);
        if (err < 0) {
                dev_err(tplg->dev, "ASoC: failed to init %s\n",
                        ec->hdr.name);
@@ -1325,7 +1325,7 @@ static int soc_tplg_dapm_widget_dbytes_create(struct soc_tplg *tplg, struct snd_
        }
 
        /* pass control to driver for optional further init */
-       err = soc_tplg_control_load(tplg, kc, (struct snd_soc_tplg_ctl_hdr *)be);
+       err = soc_tplg_control_load(tplg, kc, &be->hdr);
        if (err < 0) {
                dev_err(tplg->dev, "ASoC: failed to init %s\n",
                        be->hdr.name);