On Wed, Aug 23, 2017 at 11:11 AM, Thierry Reding <thierry.reding@xxxxxxxxx> wrote: > On Wed, Aug 23, 2017 at 10:49:36AM +0200, Arnd Bergmann wrote: >> On Tue, Aug 22, 2017 at 1:19 PM, Thierry Reding >> <thierry.reding@xxxxxxxxx> wrote: >> > On Tue, Aug 22, 2017 at 11:15:21AM +0100, Sudeep Holla wrote: >> >> >> >> >> >> On 17/08/17 15:42, Thierry Reding wrote: >> >> > From: Thierry Reding <treding@xxxxxxxxxx> >> >> > >> >> > Move this code from arch/arm/mach-tegra and make it common among 32-bit >> >> > and 64-bit Tegra SoCs. This is slightly complicated by the fact that on >> >> > 32-bit Tegra, the SoC device is used as the parent for all devices that >> >> > are instantiated from device tree. >> >> > >> >> >> >> This seem to be in linux-next and causing the below splat on my platform >> >> which is not Tegra :) >> >> >> >> WARNING: .... at drivers/soc/tegra/fuse/tegra-apbmisc.c:48 >> >> tegra_get_chip_id+0x30/0x40 >> >> Modules linked in: >> >> CPU: 2 PID: 1 Comm: swapper/0 Not tainted >> >> 4.13.0-rc6-next-20170822-00008-g52a8e57512ae #13 >> >> task: ffff8009768a0000 task.stack: ffff000008038000 >> >> PC is at tegra_get_chip_id+0x30/0x40 >> >> LR is at tegra_get_chip_id+0x30/0x40 >> >> tegra_get_chip_id+0x30/0x40 >> >> tegra_soc_device_register+0x68/0xd0 >> >> tegra_init_soc+0x10/0x44 >> >> do_one_initcall+0x38/0x120 >> >> kernel_init_freeable+0x184/0x224 >> >> kernel_init+0x10/0x100 >> >> ret_from_fork+0x10/0x18 >> > >> > Indeed. Does the below patch fix this? >> > >> > Thierry >> > >> > --- >8 --- >> > From 5706cacc2af5e4ef138d1cd9e1269ca4947a447f Mon Sep 17 00:00:00 2001 >> > From: Thierry Reding <treding@xxxxxxxxxx> >> > Date: Tue, 22 Aug 2017 13:15:18 +0200 >> > Subject: [PATCH] soc/tegra: Restrict SoC device registration to Tegra >> > >> > Commit 8a46828e623c ("soc/tegra: Register SoC device") added an initcall >> > to register the SoC device on Tegra. However, that code is unrestricted >> > and will run on all platforms, causing unwanted warnings. >> > >> > Fix this by first checking that we're running on hardware that supports >> > the fuses block that we use to provide SoC information. >> > >> > Fixes: 8a46828e623c ("soc/tegra: Register SoC device") >> > Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> >> >> I just found the same thing by inspection after running into >> >> drivers/soc/tegra/fuse/fuse-tegra.c:360:0: error: expected ';' at end of input >> >> Please fix that as well. > > Done, though it's strange that I didn't see those errors. Are those > compiler errors or sparse errors? It's from the compiler. I just upgraded to gcc-8, which might explain it, or it could be configuration (module/built-in) dependent. > I'll be sending out both patches right away. Thanks! >> Lastly, I believe that tegra_init_fuse() has the same bug, it just doesn't lead >> to an Oops, just to a harmless warning message, but please add another >> check there, or combine the two checks in some form. > > I don't think that's the case. The of_find_matching_node_and_match() > should catch all non-Tegra cases, and the backward-compatibility > fallback has an extra check on the SoC compatible. See the comment on > lines 295-298. > > That code is fairly old and I haven't seen anybody bring up any errors > on non-Tegra platforms for that particular piece. My mistake, I see how it works now. Thanks for checking. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html