ALSA: emux: simplify snd_sf_list.callback handling
authorOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Sat, 6 Apr 2024 06:48:30 +0000 (08:48 +0200)
committerTakashi Iwai <tiwai@suse.de>
Sun, 7 Apr 2024 06:35:53 +0000 (08:35 +0200)
Both drivers provide both sample_new and sample_free, and it makes no
sense to pretend that they could not. In fact, load_data() would already
crash if sample_new was null. So remove the remaining null checks.

Contrary to that, the emu10k1 driver actually has a null sample_reset,
though I'm not convinced that this inconsistency is justified.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Message-ID: <20240406064830.1029573-18-oswald.buddenhagen@gmx.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/synth/emux/emux.c
sound/synth/emux/soundfont.c

index a82af937485263d402add34b268cc02137288215..01444fc960d086f4a4c63cd96873bb8acd91dde3 100644 (file)
@@ -94,10 +94,8 @@ int snd_emux_register(struct snd_emux *emu, struct snd_card *card, int index, ch
        /* create soundfont list */
        memset(&sf_cb, 0, sizeof(sf_cb));
        sf_cb.private_data = emu;
-       if (emu->ops.sample_new)
-               sf_cb.sample_new = sf_sample_new;
-       if (emu->ops.sample_free)
-               sf_cb.sample_free = sf_sample_free;
+       sf_cb.sample_new = sf_sample_new;
+       sf_cb.sample_free = sf_sample_free;
        if (emu->ops.sample_reset)
                sf_cb.sample_reset = sf_sample_reset;
        emu->sflist = snd_sf_new(&sf_cb, emu->memhdr);
index 4edc693da8e74120c00d81e124ca4ec4e623c0b1..2373ed580bf8cea56bdcd4a1ffd1480f5583c1fc 100644 (file)
@@ -1051,7 +1051,7 @@ load_guspatch(struct snd_sf_list *sflist, const char __user *data, long count)
        /*
         * load wave data
         */
-       if (smp->v.size > 0 && sflist->callback.sample_new) {
+       if (smp->v.size > 0) {
                rc = sflist->callback.sample_new
                        (sflist->callback.private_data, smp, sflist->memhdr,
                         data, count);
@@ -1416,9 +1416,8 @@ snd_sf_clear(struct snd_sf_list *sflist)
                }
                for (sp = sf->samples; sp; sp = nextsp) {
                        nextsp = sp->next;
-                       if (sflist->callback.sample_free)
-                               sflist->callback.sample_free(sflist->callback.private_data,
-                                                            sp, sflist->memhdr);
+                       sflist->callback.sample_free(sflist->callback.private_data,
+                                                    sp, sflist->memhdr);
                        kfree(sp);
                }
                kfree(sf);
@@ -1520,9 +1519,8 @@ snd_soundfont_remove_unlocked(struct snd_sf_list *sflist)
                        nextsp = sp->next;
                        sf->samples = nextsp;
                        sflist->mem_used -= sp->v.truesize;
-                       if (sflist->callback.sample_free)
-                               sflist->callback.sample_free(sflist->callback.private_data,
-                                                            sp, sflist->memhdr);
+                       sflist->callback.sample_free(sflist->callback.private_data,
+                                                    sp, sflist->memhdr);
                        kfree(sp);
                }
        }