From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Takashi Iwai <tiwai@suse.de>, Sasha Levin <sashal@kernel.org>,
alsa-devel@alsa-project.org
Subject: [PATCH AUTOSEL 4.14 03/21] ALSA: hda: Don't release card at firmware loading error
Date: Fri, 24 Apr 2020 08:24:01 -0400 [thread overview]
Message-ID: <20200424122419.10648-3-sashal@kernel.org> (raw)
In-Reply-To: <20200424122419.10648-1-sashal@kernel.org>
From: Takashi Iwai <tiwai@suse.de>
[ Upstream commit 25faa4bd37c10f19e4b848b9032a17a3d44c6f09 ]
At the error path of the firmware loading error, the driver tries to
release the card object and set NULL to drvdata. This may be referred
badly at the possible PM action, as the driver itself is still bound
and the PM callbacks read the card object.
Instead, we continue the probing as if it were no option set. This is
often a better choice than the forced abort, too.
Fixes: 5cb543dba986 ("ALSA: hda - Deferred probing with request_firmware_nowait()")
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=207043
Link: https://lore.kernel.org/r/20200413082034.25166-2-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/pci/hda/hda_intel.c | 19 +++++--------------
1 file changed, 5 insertions(+), 14 deletions(-)
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 890793ad85ca1..a868a88bc2897 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2034,24 +2034,15 @@ static void azx_firmware_cb(const struct firmware *fw, void *context)
{
struct snd_card *card = context;
struct azx *chip = card->private_data;
- struct pci_dev *pci = chip->pci;
-
- if (!fw) {
- dev_err(card->dev, "Cannot load firmware, aborting\n");
- goto error;
- }
- chip->fw = fw;
+ if (fw)
+ chip->fw = fw;
+ else
+ dev_err(card->dev, "Cannot load firmware, continue without patching\n");
if (!chip->disabled) {
/* continue probing */
- if (azx_probe_continue(chip))
- goto error;
+ azx_probe_continue(chip);
}
- return; /* OK */
-
- error:
- snd_card_free(card);
- pci_set_drvdata(pci, NULL);
}
#endif
--
2.20.1
next prev parent reply other threads:[~2020-04-24 12:24 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-24 12:23 [PATCH AUTOSEL 4.14 01/21] x86: hyperv: report value of misc_features Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 02/21] xfs: fix partially uninitialized structure in xfs_reflink_remap_extent Sasha Levin
2020-04-24 12:24 ` Sasha Levin [this message]
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 04/21] ALSA: hda: Keep the controller initialization even if no codecs found Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 05/21] scsi: target: fix PR IN / READ FULL STATUS for FC Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 06/21] scsi: sg: add sg_remove_request in sg_common_write Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 07/21] objtool: Fix CONFIG_UBSAN_TRAP unreachable warnings Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 08/21] objtool: Support Clang non-section symbols in ORC dump Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 09/21] objtool: Fix switch table detection in .text.unlikely Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 10/21] xen/xenbus: ensure xenbus_map_ring_valloc() returns proper grant status Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 11/21] net/cxgb4: Check the return from t4_query_params properly Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 12/21] arm64: Delete the space separator in __emit_inst Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 13/21] ext4: use matching invalidatepage in ext4_writepage Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 14/21] ext4: use non-movable memory for superblock readahead Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 15/21] ext4: increase wait time needed before reuse of deleted inode numbers Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 16/21] ext4: convert BUG_ON's to WARN_ON's in mballoc.c Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 17/21] net: stmmac: dwmac-sunxi: Provide TX and RX fifo sizes Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 18/21] amd-xgbe: Use __napi_schedule() in BH context Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 19/21] irqchip/mbigen: Free msi_desc on device teardown Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 20/21] of: unittest: kmemleak on changeset destroy Sasha Levin
2020-04-24 12:24 ` [PATCH AUTOSEL 4.14 21/21] hwmon: (jc42) Fix name to have no illegal characters Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200424122419.10648-3-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=alsa-devel@alsa-project.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).