Commit 1ac1b4b7 authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Takashi Iwai
Browse files

ALSA: synth: Save a few bytes of memory when registering a 'snd_emux'



snd_emux_register() calls pass a string literal as the 'name' parameter.

So kstrdup_const() can be used instead of kfree() to avoid a memory
allocation in such cases.

Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/9e7b94c852a25ed4be5382e5e48a7dd77e8d4d1a.1705743706.git.christophe.jaillet@wanadoo.fr


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 1513664f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ struct snd_emux {
	int ports[SNDRV_EMUX_MAX_PORTS];	/* The ports for this device */
	struct snd_emux_port *portptrs[SNDRV_EMUX_MAX_PORTS];
	int used;	/* use counter */
	char *name;	/* name of the device (internal) */
	const char *name;	/* name of the device (internal) */
	struct snd_rawmidi **vmidi;
	struct timer_list tlist;	/* for pending note-offs */
	int timer_active;
+2 −2
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@ int snd_emux_register(struct snd_emux *emu, struct snd_card *card, int index, ch
		return -EINVAL;

	emu->card = card;
	emu->name = kstrdup(name, GFP_KERNEL);
	emu->name = kstrdup_const(name, GFP_KERNEL);
	emu->voices = kcalloc(emu->max_voices, sizeof(struct snd_emux_voice),
			      GFP_KERNEL);
	if (emu->name == NULL || emu->voices == NULL)
@@ -140,7 +140,7 @@ int snd_emux_free(struct snd_emux *emu)
	snd_emux_delete_hwdep(emu);
	snd_sf_free(emu->sflist);
	kfree(emu->voices);
	kfree(emu->name);
	kfree_const(emu->name);
	kfree(emu);
	return 0;
}