On Mon, 7 Feb 2005, David S. Miller wrote:
Yep, and notice that the "extra bit" is (1 << 32), or the first bit in the upper 32-bits of the 64-bit kernel pointer. In short, we get garbage from the upper 32-bits of the stack pointer, and need to mask it out for 32-bit tasks. The fix is obvious, try this:
===== include/asm-sparc64/compat.h 1.17 vs edited ===== --- 1.17/include/asm-sparc64/compat.h 2005-02-02 04:05:45 -08:00 +++ edited/include/asm-sparc64/compat.h 2005-02-07 19:51:15 -08:00 @@ -133,6 +133,8 @@
if (!(test_thread_flag(TIF_32BIT))) usp += STACK_BIAS; + else + usp &= 0xffffffffUL;
return (void __user *) (usp - len); }
Hi Dave,
This patch takes care of the problem nicely (ypbind/ypwhich no longer hangs and ifconfig works fine). Thanks a lot for quick fixes.
Best regards
Jurij Smakov [EMAIL PROTECTED] Key: http://www.wooyd.org/pgpkey/ KeyID: C99E03CC - To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html