On Fri, May 31, 2002 at 01:48:24PM -0400, Mark A. Greer wrote: > Tom Rini wrote: > > > On Fri, May 31, 2002 at 10:20:08AM -0500, Jim Thompson wrote: > > > > > > Tom Rini writes: > > > > On Fri, May 31, 2002 at 10:01:39AM -0500, Jim Thompson wrote: > > > > > > > > > > Tom Rini writes: > > > > > > > > > > > > On Thu, May 30, 2002 at 11:02:44PM -0700, Sergiy Kovtun wrote: > > > > > > > > My question is how have_of got set: > > > > > > > > > > arch/ppc/mm/init.c: > > > > > if (!have_of) > > > > > FREESEC(openfirmware); > > > > > > > > On !CONFIG_ALL_PPC, we have: > > > > #define have_of 0 > > > > In include/asm-ppc/processor.h, or so. And the compiler happily > > > > optimizes things in/out with this. > > > > > > I should have been more explicit. > > > > > > in include/asm-ppc/processor.h, I'd found: > > > > > > #define have_of (_machine == _MACH_chrp || _machine == _MACH_Pmac) > > > > Thanks for the memory jog :) > > > > Up near the top, we have: > > #ifdef CONFIG_ALL_PPC > > ... > > int _machine; > > ... > > #else > > #define _machine 0 > > #endif > > > > So have_of becomes: (0 == 0x4 || 0 == 0x2) > > > > > A sandpoint (esp with Dink) is neither CHRP or PMAC, so the call to > > > FREESEC(openfirmware) shouldn't have occurred. > > > > It's !have_of, so we really did want to free the __openfirmware stuff. > > I dunno guys, I think the compiler usually optimizes that all away and you > should never see "openfirmware". I don't recall ever seeing it print out. I > think something fishy is going on...
Er, first, it becomes: if (1) So we always 'do it'. However, all of the __openfirmware code is now almost never compiled in on !CONFIG_ALL_PPC, so we never see it being free'd. -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
