On Thu, 29 Mar 2007 22:20:52 -0400, Kumba <kumba@xxxxxxxxxx> wrote: > > Just an optimization. For CKSEG0 symbol, a LUI instruction can fill > > high 32-bit by sign-extention. Either code should work for CKSEG0 > > kernel. > > Well, thinking about it some more, can this stackframe change be segmented out > of Frank's main patches, so we can get them into git, and spend time in > 2.6.21/2.6.22/2.6.23 chasing down what exactly is up with this specific asm > sequence? This is not Franck's fault. His patchset does not change behavior if kernel load address was CKSEG0 and CONFIG_BUILD_ELF64 was not set (unless you are using gcc 3.x). Let's clarify things a bit: The Franck's patchset is _not_ fix. It just tried to avoid undesirable configuration (CKSEG0 kernel with BUILD_ELF64=y), and clarify some namings. So I should ask you again, does current git (or 2.6.20-stable) kernel compiled by binutils-2.17/gcc-4.[12] work for IP32 if you disabled CONFIG_BUILD_ELF64? On Sun, 18 Feb 2007 15:00:48 -0500, Kumba <kumba@xxxxxxxxxx> wrote: > The [short-term] fix highlighted by Ilya is to make __pa() unconditionally be > defined to "((unsigned long)(x) < CKSEG0 ? PAGE_OFFSET : CKSEG0)"; Discovered by > building IP32 with CONFIG_BUILD_ELF64=n. So I had thought CONFIG_BUILD_ELF64=n worked for IP32... --- Atsushi Nemoto