On Wed, Apr 12, 2017 at 7:15 PM, Takashi Sakamoto <o-takashi@xxxxxxxxxxxxx> wrote: > 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@p={...}; >> >> @ok@ >> identifier r.x; >> position p; >> @@ >> snd_ctl_new1(&x@p,...) >> >> @bad@ >> position p != {r.p,ok.p}; >> identifier r.x; >> @@ >> x@p >> >> @depends on !bad disable optional_qualifier@ >> identifier r.x; >> @@ >> +const >> struct snd_kcontrol_new x; >> >> Signed-off-by: Bhumika Goyal <bhumirks@xxxxxxxxx> >> --- >> 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@xxxxxxxxxxxxx> > > 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. > Thanks for pointing it out. The logic that I use currently for my scripts doesn't take into account the arrays. I will extend the script for arrays too. Thanks, Bhumika > 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 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel