[alsa-devel] [PATCH] ALSA: line6: constify snd_kcontrol_new structures
Takashi Sakamoto
o-takashi at sakamocchi.jp
Wed Apr 12 15:45:42 CEST 2017
Hi,
On Apr 12 2017 22:10, Bhumika Goyal wrote:
> Declare snd_kcontrol_new strcutures as const as they are only passed as
> an argument to the function snd_ctl_new1. This argument is of type const,
> so snd_kcontrol_new structures having this property can be made const too.
> Done using Coccinelle:
>
> @r disable optional_qualifier@
> identifier x;
> position p;
> @@
> static struct snd_kcontrol_new x at p={...};
>
> @ok@
> identifier r.x;
> position p;
> @@
> snd_ctl_new1(&x at p,...)
>
> @bad@
> position p != {r.p,ok.p};
> identifier r.x;
> @@
> x at p
>
> @depends on !bad disable optional_qualifier@
> identifier r.x;
> @@
> +const
> struct snd_kcontrol_new x;
>
> Signed-off-by: Bhumika Goyal <bhumirks at gmail.com>
> ---
> sound/usb/line6/pod.c | 2 +-
> sound/usb/line6/toneport.c | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
I have interests in your way to detect this kind of issue, because below
'struct snd_kcontrol_new' array seems not to be detected. I think
there's a space to improve it.
https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/tree/sound/usb/line6/pcm.c#n432
432 /* control definition */
433 static struct snd_kcontrol_new line6_controls[] = {
434 {
435 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
Later, I'll post for the above line.
> diff --git a/sound/usb/line6/pod.c b/sound/usb/line6/pod.c
> index 17aa616..358224c 100644
> --- a/sound/usb/line6/pod.c
> +++ b/sound/usb/line6/pod.c
> @@ -380,7 +380,7 @@ static int snd_pod_control_monitor_put(struct snd_kcontrol *kcontrol,
> }
>
> /* control definition */
> -static struct snd_kcontrol_new pod_control_monitor = {
> +static const struct snd_kcontrol_new pod_control_monitor = {
> .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
> .name = "Monitor Playback Volume",
> .index = 0,
> diff --git a/sound/usb/line6/toneport.c b/sound/usb/line6/toneport.c
> index 8e22f43..ba7975c 100644
> --- a/sound/usb/line6/toneport.c
> +++ b/sound/usb/line6/toneport.c
> @@ -250,7 +250,7 @@ static void toneport_start_pcm(unsigned long arg)
> }
>
> /* control definition */
> -static struct snd_kcontrol_new toneport_control_monitor = {
> +static const struct snd_kcontrol_new toneport_control_monitor = {
> .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
> .name = "Monitor Playback Volume",
> .index = 0,
> @@ -261,7 +261,7 @@ static struct snd_kcontrol_new toneport_control_monitor = {
> };
>
> /* source selector definition */
> -static struct snd_kcontrol_new toneport_control_source = {
> +static const struct snd_kcontrol_new toneport_control_source = {
> .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
> .name = "PCM Capture Source",
> .index = 0,
Regards
Takashi Sakamoto
More information about the Alsa-devel
mailing list