On Tue, 18 Jul 2017 11:29:31 +0200, Sebastian Reichel wrote:
Hi,
On Mon, Jul 17, 2017 at 10:48:33PM -0700, Tony Lindgren wrote:
- Sebastian Reichel sebastian.reichel@collabora.co.uk [170717 07:14]:
Hi,
On Mon, Jul 17, 2017 at 03:17:10AM -0700, Tony Lindgren wrote:
- Sebastian Reichel sebastian.reichel@collabora.co.uk [170717 03:13]:
On Mon, Jul 17, 2017 at 02:29:04AM -0700, Tony Lindgren wrote:
- Sebastian Reichel sebastian.reichel@collabora.co.uk [170712 08:19]:
> * Switch from simple-audio-card to audio-graph-card
Gave this a quick try against v4.13-rc1 with SND_AUDIO_GRAPH_CARD enabled as a loadable module. However loading it oopses for me, see below. Maybe some dependencies are missing?
It works for me on top of v4.13-rc1 (my kernel is monolithic). Looking at the stacktrace it seems to be a bug in audio graph card and not in the codec driver.
OK I do also have:
CONFIG_DEBUG_LOCKDEP=y CONFIG_DEBUG_ATOMIC_SLEEP=y
I added those and I do not get a stacktrace for anything sound related and audio works. I noticed one issue in dapm routing, that I accidently added. That will be fixed in PATCHv3, but its in untestable path anyways (EXT capture, probably FM radio is connected to EXT).
Hmm maybe that was not with DEBUG_ATOMIC_SLEEP then?
$ grep DEBUG_ATOMIC_SLEEP .config CONFIG_DEBUG_ATOMIC_SLEEP=y
I also verified it does not happen unless your dts patch "ARM: dts: omap4-droid4: add soundcard" is applied.
That's what I expected, since the stacktrace started in the soundcard driver.
I doubt that having it as loadable module makes any difference here as it's the might_sleep() in __mutex_lock_common() producing the BUG.
It might make a difference, since it changes the probe order. The mutex may not even be called on my system.
The problem manifests itself as an unblanaced of node reference. The node is released mistakenly at of_node_put() and this is caught as sleep-in-atomic, fortunately.
So likely either something forgot to take the node ref or it hits the unreference due to the missing object by the implicit probe disorder, etc, I suppose.
Takashi