From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sudeep.Holla@arm.com (Sudeep Holla) Date: Tue, 18 Feb 2014 16:59:23 +0000 Subject: BUG: Null pointer dereference on booting TC2 with vexpress_defconfig In-Reply-To: References: <20140217223907.GH21070@cbox> <53033E37.6000402@arm.com> Message-ID: <5303916B.5060303@arm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 18/02/14 16:33, Christoffer Dall wrote: > On 18 February 2014 03:04, Sudeep Holla 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/