Re: [PATCH] ASoC: Only deregister AC97 dev if it's name was not"AC97"

From: Atsushi Nemoto
Date: Mon Mar 16 2009 - 11:00:34 EST


On Mon, 16 Mar 2009 15:32:50 +0100, Takashi Iwai <tiwai@xxxxxxx> wrote:
> > The commit 14fa43f53ff3a9c3d8b9662574b7369812a31a97 ("ASoC: Only
> > register AC97 bus if it's not done already") added a condition for
> > calling of soc_ac97_dev_register() but not added for calling of
> > soc_ac97_dev_unregister(). This patch adds same condition for
> > soc_ac97_dev_unregister(). Without this fix, kernel crashes when
> > unloading an asoc driver.
>
> Hm, codec->ac97->dev.bus should be NULL unless it's registered,
> so calling soc_ac97_dev_unregister() should be harmless...
>
> Maybe I miss something?

Well, ac97_codec.c:snd_ac97_dev_register() was called on loading my
asoc driver. I thought it was called from somewhere during
ac97_soc_probe(), but not sure...

The crash happened in sysfs_remove_group() and
snd_ac97_dev_disconnect() was on callstack.

---
Atsushi Nemoto
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/