Messages in this thread | | | Date | Thu, 5 Jul 2012 18:25:29 +0800 | From | Zhao Chenhui <> | Subject | Re: [PATCH v7 1/5] powerpc/85xx: implement hardware timebase sync |
| |
On Wed, Jul 04, 2012 at 10:19:54AM -0500, Tabi Timur-B04825 wrote: > Zhao Chenhui wrote: > > On Tue, Jul 03, 2012 at 10:17:12PM -0500, Tabi Timur-B04825 wrote: > >> Zhao Chenhui wrote: > >>> If the guts variable is NULL, it indicates there is error in dts or kernel. > >>> We should fix the error, rather than ignore it. > >> > >> And that's why there's a warning message. Crashing the kernel is not > >> going to fix anything. > >> > > > > This error likely crashes the kenel somewhere. > > Can you test this, please? > > The point I'm trying to make is that it's wrong to intentionally halt the > kernel unless you're sure that it's the best option. A missing device > tree node is supposed to only disable a given feature, not break everything. >
I think there is some misunderstanding here.
np = of_find_matching_node(NULL, mpc85xx_smp_guts_ids); if (np) { guts = of_iomap(np, 0); of_node_put(np); if (!guts) { pr_err("%s: Could not map guts node address\n", __func__); return; } smp_85xx_ops.give_timebase = mpc85xx_give_timebase; smp_85xx_ops.take_timebase = mpc85xx_take_timebase; }
If the guts node is missing, this code snippet will be skipped. If the guts node is existed, the return value of of_iomap(), namely guts, will be tested. If it is NULL, it shows that there is error in dts, or the ioremap() in of_iomap() failed. I think these errors are fatal errors, so I print an error info and return.
-Chenhui
| |