BUG: Null pointer dereference on booting TC2 with vexpress_defconfig
Sudeep Holla
Sudeep.Holla at arm.com
Tue Feb 18 11:59:23 EST 2014
On 18/02/14 16:33, Christoffer Dall wrote:
> On 18 February 2014 03:04, Sudeep Holla <Sudeep.Holla at arm.com> wrote:
>> On 17/02/14 22:39, Christoffer Dall wrote:
>>> Booting my TC2 using 3.14-rc3 and vexpress_defconfig causes a NULL
>>> pointer dereference in schedule_work_on.
>>>
>>> A quick look at the trace indicates that schedule_work() is called
>>> before system_wq is initialized.
>>>
>>> Further, a bisect seems to indicate that this call path is triggered by
>>> the changes in this merge commit of Theodore T'so's random_for_linus
>>> tag:
>>> 0891ad829d2a0501053703df66029e843e3b8365
>>>
>>> (However, my bisect may not be 100% correct, as some of the commits
>>> between 3.13 and 3.12 don't boot the TC2 with vexpress_defconfig,
>>> specifically the ones after f9300eaaac1ca300083ad41937923a90cc3a2394,
>>> which causes boot to halt after "ARM CCI driver probed").
>>>
>> Yes that requires some changes in defconfig to continue to work across
>> these changes(mainly have all these new configs disabled)
>>
>
> So vexpress_defconfig is known to not work on TC2?
>
I would say yes before v3.13 for TC2 at-least. Pawel's commit: 81d6e719d1f8(
ARM: vexpress: Enable platform-specific options in defconfig) enabled several VE
specific features.
>>> Disabling CONFIG_ARCH_VEXPRESS_TC2_PM avoids the issue.
>>>
>> Are you just disabling this or even CONFIG_MCPM ? Are the secondaries cpus
>> coming up ?
>>
>
> Disabling CONFIG_ARCH_VEXPRESS_TC2_PM allows the system to boot, but
> only with one CPU.
>
> Disabling CONFIG_MCPM allows SMP boot as well.
>
Yes that's what I suspected.
>>> I'm not familiar enough with any of these code paths to quicly identify
>>> what the issue could be. Apologies if I missed a previous post about
>>> this issue (I couldn't find anything but would be surprised if I'm the
>>> only one doing vexpress_defconfig on a TC2).
>>>
>> I just tried and it works fine. If CONFIG_MCPM and CONFIG_ARCH_VEXPRESS_TC2_PM,
>> it requires some changes in board configurations(for bootmon), I assume you have
>> done those changes.
>>
>
> What works fine? With both configs enabled?
>
Yes with the default vexpress_defconfig as is in the mainline.
> I didn't change anything on the boot monitor side. Can you give me a
> pointer to the specifics? Was there an announcement about this
> somewhere that I failed to locate?
>
You might be having very old firmware that doesn't support percpu mailbox and
hence can't enable CONFIG_MCPM. You can refer CFGREG48 in Section 3.3.2 of [1]
for details. You can grab the latest firmware in single step from [2] under
Firmware tab.
Regards,
Sudeep
[1] http://infocenter.arm.com/help/topic/com.arm.doc.ddi0503g/CHDCADED.html
[2] http://releases.linaro.org/14.01/openembedded/vexpress-lsk/
More information about the linux-arm-kernel
mailing list