New dapm panic on beaver with next-20130730
Lars-Peter Clausen
lars at metafoo.de
Wed Jul 31 02:35:49 EDT 2013
On 07/31/2013 08:13 AM, Olof Johansson wrote:
> On Tue, Jul 30, 2013 at 11:05 PM, Lars-Peter Clausen <lars at metafoo.de> wrote:
>> On 07/31/2013 07:36 AM, Olof Johansson wrote:
>>>
>>> Hi Mark, Lars-Peter,
>>>
>>> I noticed the below panic on beaver (Tegra30). Seems like seaboard
>>> (Tegra20) is fine. This is with next-20130730, tegra_defconfig.
>>
>>
>> Hi,
>>
>> So the same machine driver with the same codec works on tegra2, but not on
>> tegra3? The crash doesn't seem to be directly related to the patch, but the
>> patch changed the memory layout. Is it possible that you still have a
>> outdated module that's being loaded on your tegra3 board?
>
> Sorry, I should have been cleared on that. Not at all the same codec,
> seaboard uses wm8903, beaver rt5640.
>
>> Can you add a few debugging printks and run the test again and paste the
>> last few lines before the crash:
>
> [beaver 00:18] [ 4.045897] dapm_generic_check_power: IF2 ADC L
> [beaver 00:18] [ 4.050417] dapm_clear_walk_output 1: ee3a7bc0
> [beaver 00:18] [ 4.054845] dapm_generic_check_power: IF2 DAC
> [beaver 00:18] [ 4.059193] dapm_clear_walk_output 1: ee3a8240
> [beaver 00:18] [ 4.063621] dapm_clear_walk_output 1: ee3a8280
> [beaver 00:18] [ 4.068048] dapm_generic_check_power: IF1 ADC R
> [beaver 00:18] [ 4.072661] dapm_clear_walk_output 1: ee3a7c40
> [beaver 00:18] [ 4.077091] dapm_generic_check_power: IF1 ADC L
> [beaver 00:18] [ 4.081616] dapm_clear_walk_output 1: ee3a7c80
> [beaver 00:18] [ 4.086045] dapm_generic_check_power: IF1 DAC
> [beaver 00:18] [ 4.090394] dapm_clear_walk_output 1: ee3a82c0
> [beaver 00:18] [ 4.094821] dapm_clear_walk_output 1: ee3a8300
> [beaver 00:18] [ 4.099256] dapm_generic_check_power: INR Mux
> [beaver 00:18] [ 4.103599] dapm_clear_walk_output 1: ee3af670
> [beaver 00:18] [ 4.108026] dapm_generic_check_power: INL Mux
> [beaver 00:18] [ 4.112375] dapm_clear_walk_output 1: ee3af5f0
> [beaver 00:18] [ 4.116802] dapm_clear_walk_output 2: 6b6b6b6b
0x6b6b6b6b is poisoned freed memory. According to the source neither the INR
Mux nor the INL Mux widget should have any sinks. Can you add a couple more
printks:
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index b779d36..1a82e75 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -774,8 +774,13 @@
struct snd_soc_dapm_path *p;
list_for_each_entry(p, sink, list_source) {
+ printk("dapm_clear_walk_output 1: %p\n", p);
if (p->walked) {
p->walked = 0;
+ printk("dapm_clear_walk_output 1: %p\n", p->source);
+ printk("dapm_clear_walk_output 2: %p\n", p->sink);
+ printk("dapm_clear_walk_output 3: %s\n",
+ p->sink->name);
dapm_clear_walk_output(dapm, &p->sink->sinks);
}
}
@@ -1189,6 +1194,8 @@
DAPM_UPDATE_STAT(w, power_checks);
+ printk("dapm_generic_check_power: %p %s\n", w, w->name);
+
in = is_connected_input_ep(w, NULL);
dapm_clear_walk_input(w->dapm, &w->sources);
out = is_connected_output_ep(w, NULL);
More information about the linux-arm-kernel
mailing list