Commit 2d9772ef authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Add NULL check to all PM ops in hda_intel.c

Since devptr can be NULL due to asynchronous probe, all PM ops should
have NULL checks at the beginning.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 6217e5ed
...@@ -772,10 +772,15 @@ static int azx_suspend(struct device *dev) ...@@ -772,10 +772,15 @@ static int azx_suspend(struct device *dev)
{ {
struct pci_dev *pci = to_pci_dev(dev); struct pci_dev *pci = to_pci_dev(dev);
struct snd_card *card = dev_get_drvdata(dev); struct snd_card *card = dev_get_drvdata(dev);
struct azx *chip = card->private_data; struct azx *chip;
struct hda_intel *hda = container_of(chip, struct hda_intel, chip); struct hda_intel *hda;
struct azx_pcm *p; struct azx_pcm *p;
if (!card)
return 0;
chip = card->private_data;
hda = container_of(chip, struct hda_intel, chip);
if (chip->disabled || hda->init_failed) if (chip->disabled || hda->init_failed)
return 0; return 0;
...@@ -806,9 +811,14 @@ static int azx_resume(struct device *dev) ...@@ -806,9 +811,14 @@ static int azx_resume(struct device *dev)
{ {
struct pci_dev *pci = to_pci_dev(dev); struct pci_dev *pci = to_pci_dev(dev);
struct snd_card *card = dev_get_drvdata(dev); struct snd_card *card = dev_get_drvdata(dev);
struct azx *chip = card->private_data; struct azx *chip;
struct hda_intel *hda = container_of(chip, struct hda_intel, chip); struct hda_intel *hda;
if (!card)
return 0;
chip = card->private_data;
hda = container_of(chip, struct hda_intel, chip);
if (chip->disabled || hda->init_failed) if (chip->disabled || hda->init_failed)
return 0; return 0;
...@@ -844,9 +854,14 @@ static int azx_resume(struct device *dev) ...@@ -844,9 +854,14 @@ static int azx_resume(struct device *dev)
static int azx_runtime_suspend(struct device *dev) static int azx_runtime_suspend(struct device *dev)
{ {
struct snd_card *card = dev_get_drvdata(dev); struct snd_card *card = dev_get_drvdata(dev);
struct azx *chip = card->private_data; struct azx *chip;
struct hda_intel *hda = container_of(chip, struct hda_intel, chip); struct hda_intel *hda;
if (!card)
return 0;
chip = card->private_data;
hda = container_of(chip, struct hda_intel, chip);
if (chip->disabled || hda->init_failed) if (chip->disabled || hda->init_failed)
return 0; return 0;
...@@ -869,12 +884,17 @@ static int azx_runtime_suspend(struct device *dev) ...@@ -869,12 +884,17 @@ static int azx_runtime_suspend(struct device *dev)
static int azx_runtime_resume(struct device *dev) static int azx_runtime_resume(struct device *dev)
{ {
struct snd_card *card = dev_get_drvdata(dev); struct snd_card *card = dev_get_drvdata(dev);
struct azx *chip = card->private_data; struct azx *chip;
struct hda_intel *hda = container_of(chip, struct hda_intel, chip); struct hda_intel *hda;
struct hda_bus *bus; struct hda_bus *bus;
struct hda_codec *codec; struct hda_codec *codec;
int status; int status;
if (!card)
return 0;
chip = card->private_data;
hda = container_of(chip, struct hda_intel, chip);
if (chip->disabled || hda->init_failed) if (chip->disabled || hda->init_failed)
return 0; return 0;
...@@ -910,9 +930,14 @@ static int azx_runtime_resume(struct device *dev) ...@@ -910,9 +930,14 @@ static int azx_runtime_resume(struct device *dev)
static int azx_runtime_idle(struct device *dev) static int azx_runtime_idle(struct device *dev)
{ {
struct snd_card *card = dev_get_drvdata(dev); struct snd_card *card = dev_get_drvdata(dev);
struct azx *chip = card->private_data; struct azx *chip;
struct hda_intel *hda = container_of(chip, struct hda_intel, chip); struct hda_intel *hda;
if (!card)
return 0;
chip = card->private_data;
hda = container_of(chip, struct hda_intel, chip);
if (chip->disabled || hda->init_failed) if (chip->disabled || hda->init_failed)
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