ALSA: bebob: use managed-resource to maintain data specific to M-Audio FW-1814/Projec...
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 2 Oct 2018 23:21:51 +0000 (08:21 +0900)
committerTakashi Iwai <tiwai@suse.de>
Thu, 4 Oct 2018 05:54:05 +0000 (07:54 +0200)
ALSA bebob driver allocates memory object for data specific to M-Audio
FW-1884/ProjectMix I/O. The object is to maintain format of isochronous
packet payload for packet streaming by components for ALSA rawMIDI/PCM
interfaces. The object can be released as managed-resource of
'struct snd_card.card_dev'.

This commit uses managed-resource of the sound card device for this
purpose.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/bebob/bebob.c
sound/firewire/bebob/bebob_maudio.c

index fb05f2c..72b0421 100644 (file)
@@ -130,8 +130,6 @@ static void bebob_free(struct snd_bebob *bebob)
 {
        snd_bebob_stream_destroy_duplex(bebob);
 
-       kfree(bebob->maudio_special_quirk);
-
        mutex_destroy(&bebob->mutex);
        fw_unit_put(bebob->unit);
 }
@@ -262,8 +260,6 @@ do_registration(struct work_struct *work)
 error:
        mutex_unlock(&devices_mutex);
        snd_bebob_stream_destroy_duplex(bebob);
-       kfree(bebob->maudio_special_quirk);
-       bebob->maudio_special_quirk = NULL;
        snd_card_free(bebob->card);
        dev_info(&bebob->unit->device,
                 "Sound card registration failed: %d\n", err);
index c266997..51152ca 100644 (file)
@@ -261,8 +261,9 @@ snd_bebob_maudio_special_discover(struct snd_bebob *bebob, bool is1814)
        struct special_params *params;
        int err;
 
-       params = kzalloc(sizeof(struct special_params), GFP_KERNEL);
-       if (params == NULL)
+       params = devm_kzalloc(&bebob->card->card_dev,
+                             sizeof(struct special_params), GFP_KERNEL);
+       if (!params)
                return -ENOMEM;
 
        mutex_lock(&bebob->mutex);