The patch in Al Viro's:

ecba97d4aacf4e80c56eb73e39af0369cb8539a4

messed up UML (in particular skas0, which doesn't boot any more - or maybe it 
boots one out of 10 times).

Btw: did Al CC you on it, at least?

The reason is that he messed up HOST_FRAME_SIZE on i386 (by using 
DEFINE_LONGS). I.e. HOST_FRAME_SIZE, which was 17, became 17/sizeof(long). 
Uh, nice.

A fix is attached (at least it boots with it), together with a lenghty comment 
about how stability-friendly such a big unreviewable patch can be.

Also, he did the same to arch/um/sys-x86_64/user-offsets.c, but apparently 
this is justified in that case because in the original sources 
(arch/um/kernel/skas/util/mk_ptregs-x86_64.c)

#define SHOW(name) \
       printf("#define %s (%d / sizeof(unsigned long))\n", #name, name)

which is not done on i386.

So, Jeff, as said in the email, since we are in the "stable" phase, I suggest 
dropping for now Al's nice* cleanup and moving it to 2.6.15 cycle (and to the 
current -mm). Actually, the patch size can be reduced effectively;
changes such as:
-       OFFSET(SC_RBX, sigcontext, rbx);
+       OFFSET(HOST_SC_RBX, sigcontext, rbx);
are pointless, given that you can turn put HOST_ in OFFSET(), since it is done 
for every call to OFFSET.

* I'm not joking, I too feel this must be done, but not *now*, quietly, 
without boot testing.

Jeff, also, what about my last five patches, which weren't merged yet? The 
first one conflicts with this Viro's patch, but the rest should really be 
applied (especially to fix SKAS3).
-- 
Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!".
Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894)
http://www.user-mode-linux.org/~blaisorblade
RFC: revert Al Viro's "Uml makefile sanitized"

From: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>

Recent Al Viro's commit ecba97d4aacf4e80c56eb73e39af0369cb8539a4 broke SKAS0
mode, causing random corruptions at startup of the first userspace process.

One bug I found is that HOST_FRAME_SIZE value, which is fixed below to match the
definition before that commit. With this patch, the kernel boots again.

Given the light testing I've done on it, other bugs may slip through; given that
*) we are now in "no-merge" mode (only real bug fixes)
*) this patch was merged without CC'ing any UML public list, nor me, nor (maybe)
   Jeff Dike,
*) the patch is big, typo's here can be catastrophic, and other bugs may sleep
   easily (who will review this line-by-line, especially *now*?)
*) bugs in FP state handling would *never* be caught

and, above all

*) it doesn't fix any bug, it's just a (very nice indeed) cleanup;

I therefore request that Viro's patch to be dropped for now, and moved to the
2.6.15 release cycle, together with this fixup and the others which will be
needed.

Cc: Alexander Viro <[EMAIL PROTECTED]>
Cc: Jeff Dike <[EMAIL PROTECTED]>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>
Index: linux-2.6.git/arch/um/sys-i386/user-offsets.c
===================================================================
--- linux-2.6.git.orig/arch/um/sys-i386/user-offsets.c
+++ linux-2.6.git/arch/um/sys-i386/user-offsets.c
@@ -46,7 +46,7 @@ void foo(void)
 	OFFSET(HOST_SC_FP_ST, _fpstate, _st);
 	OFFSET(HOST_SC_FXSR_ENV, _fpstate, _fxsr_env);
 
-	DEFINE_LONGS(HOST_FRAME_SIZE, FRAME_SIZE);
+	DEFINE(HOST_FRAME_SIZE, FRAME_SIZE);
 	DEFINE_LONGS(HOST_FP_SIZE, sizeof(struct user_i387_struct));
 	DEFINE_LONGS(HOST_XFP_SIZE, sizeof(struct user_fxsr_struct));
 

Reply via email to