On Tue, 12 Sep 2023 12:18:04 +0200, Arnd Bergmann wrote: > > On Tue, Sep 12, 2023, at 10:39, Peter Ujfalusi wrote: > > > While the code is correct, we need to silence the compiler somehow. > > It could be done by limiting the range in sprintf like > > sprintf(name, "card%d", idx % SNDRV_CARDS); > > sprintf(name, "card%hhd", idx); > > etc > > > > These are too workaroundish. Increase the name array to 15 instead which > > looks better and only adds 7 bytes on stack. > > It looks like we use the same string for kobject_set_name(), so > maybe this would work as well: > > --- a/sound/core/init.c > +++ b/sound/core/init.c > @@ -278,9 +278,6 @@ static int snd_card_init(struct snd_card *card, struct device *parent, > size_t extra_size) > { > int err; > -#ifdef CONFIG_SND_DEBUG > - char name[8]; > -#endif > > if (extra_size > 0) > card->private_data = (char *)card + sizeof(struct snd_card); > @@ -364,8 +361,8 @@ static int snd_card_init(struct snd_card *card, struct device *parent, > } > > #ifdef CONFIG_SND_DEBUG > - sprintf(name, "card%d", idx); > - card->debugfs_root = debugfs_create_dir(name, sound_debugfs_root); > + card->debugfs_root = debugfs_create_dir(kobject_name(&card->card_dev.kobj), > + sound_debugfs_root); The idea looks neat, but I suppose it's better with dev_name(&card->card_dev) instead? thanks, Takashi