Commit f20ae507 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: nm256: Don't call card private_free at probe error path

The card destructor of nm256 driver does merely stopping the running
streams, and it's superfluous for the probe error handling.  Moreover,
calling this via the previous devres change would lead to another
problem due to the reverse call order.

This patch moves the setup of the private_free callback after the card
registration, so that it can be used only after fully set up.

Fixes: c19935f0 ("ALSA: nm256: Allocate resources with device-managed APIs")
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220412102636.16000-40-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 4fb27190
...@@ -1573,7 +1573,6 @@ snd_nm256_create(struct snd_card *card, struct pci_dev *pci) ...@@ -1573,7 +1573,6 @@ snd_nm256_create(struct snd_card *card, struct pci_dev *pci)
chip->coeffs_current = 0; chip->coeffs_current = 0;
snd_nm256_init_chip(chip); snd_nm256_init_chip(chip);
card->private_free = snd_nm256_free;
// pci_set_master(pci); /* needed? */ // pci_set_master(pci); /* needed? */
return 0; return 0;
...@@ -1680,6 +1679,7 @@ static int snd_nm256_probe(struct pci_dev *pci, ...@@ -1680,6 +1679,7 @@ static int snd_nm256_probe(struct pci_dev *pci,
err = snd_card_register(card); err = snd_card_register(card);
if (err < 0) if (err < 0)
return err; return err;
card->private_free = snd_nm256_free;
pci_set_drvdata(pci, card); pci_set_drvdata(pci, card);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment