From 48448e17f8c95084db95a33e38634d6c9dd6afe8 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Tue, 19 Jun 2007 14:37:39 +1000 Subject: [PATCH] --- yaml --- r: 57861 b: refs/heads/master c: 41e904dee22066ae7ac3a7f695b2c8bd43ce4e04 h: refs/heads/master i: 57859: 592104db9917084e4be30c50faf776eaee886dc6 v: v3 --- [refs] | 2 +- trunk/sound/ppc/pmac.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 0a510beb94fa..500bbf3e8929 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fa490cfd15d7ce0900097cc4e60cfd7a76381138 +refs/heads/master: 41e904dee22066ae7ac3a7f695b2c8bd43ce4e04 diff --git a/trunk/sound/ppc/pmac.c b/trunk/sound/ppc/pmac.c index 5a2bef44a2f5..7a22f0f3784a 100644 --- a/trunk/sound/ppc/pmac.c +++ b/trunk/sound/ppc/pmac.c @@ -775,7 +775,8 @@ static int snd_pmac_free(struct snd_pmac *chip) out_le32(&chip->awacs->control, in_le32(&chip->awacs->control) & 0xfff); } - snd_pmac_sound_feature(chip, 0); + if (chip->node) + snd_pmac_sound_feature(chip, 0); /* clean up mixer if any */ if (chip->mixer_free) @@ -925,6 +926,7 @@ static int __init snd_pmac_detect(struct snd_pmac *chip) } if (! sound) { of_node_put(chip->node); + chip->node = NULL; return -ENODEV; } prop = of_get_property(sound, "sub-frame", NULL); @@ -937,7 +939,9 @@ static int __init snd_pmac_detect(struct snd_pmac *chip) printk(KERN_INFO "snd-powermac no longer handles any " "machines with a layout-id property " "in the device-tree, use snd-aoa.\n"); + of_node_put(sound); of_node_put(chip->node); + chip->node = NULL; return -ENODEV; } /* This should be verified on older screamers */ @@ -1297,8 +1301,6 @@ int __init snd_pmac_new(struct snd_card *card, struct snd_pmac **chip_return) return 0; __error: - if (chip->pdev) - pci_dev_put(chip->pdev); snd_pmac_free(chip); return err; }