On Tue, 2009-03-17 at 19:26 -0700, john stultz wrote: > So two issues that I've found so far: > 1) do_div() isn't dividing correctly in this case. Not sure why. Patch to prove this is part of the issue below. Disables the s390 specific __div64_32() implementation and uses the generic code. Frans: Mind giving this a try to verify the issue goes away with this? Martin: I'm not sure if the problem here is the __div64_32 implementation or if the emulator is doing something wrong here. Might need some help from you in sorting this out. > 2) We *really* shouldn't be using oneshot mode while the jiffies > clocksource is in use. I believe x86 avoids this specifically, so I'm > not sure why s390 isn't doing the same. Still have to investigate. Still working this. thanks -john diff --git a/arch/s390/lib/div64.c b/arch/s390/lib/div64.c index a5f8300..6c249fa 100644 --- a/arch/s390/lib/div64.c +++ b/arch/s390/lib/div64.c @@ -68,7 +68,7 @@ static uint32_t __div64_31(uint64_t *n, uint32_t base) words[1] = reg3; return reg2; } - +#if 0 /* * Function to divide an unsigned 64 bit integer by an unsigned * 32 bit integer using the unsigned 64/31 bit division. @@ -123,9 +123,9 @@ uint32_t __div64_32(uint64_t *n, uint32_t base) } return r; } - +#endif #else /* MARCH_G5 */ - +#if 0 uint32_t __div64_32(uint64_t *n, uint32_t base) { register uint32_t reg2 asm("2"); @@ -145,5 +145,5 @@ uint32_t __div64_32(uint64_t *n, uint32_t base) words[1] = reg3; return reg2; } - +#endif #endif /* MARCH_G5 */ -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html