Re: 64bit kernel not booting with CONFIG_PRINTK_TIME=y

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 17, 2008 at 07:05:02PM +0200, Guy Martin wrote:
> 
> Recompiling with CONFIG_PRINTK_TIME=n makes it works straight away.
>

The problem is kernel/printk.c around line 731.

t = jiffies * (NSEC_PER_SEC / HZ);
do_div(t, 10000000000); is doing some badness (which is hard as hell to
debug since printk isn't working.)

It's doing some sort of bollocks when jiffies is between 9 and 10...

do_div being:

# define do_div(n,base) ({                                      \
        uint32_t __base = (base);                               \
        uint32_t __rem;                                         \
        __rem = ((uint64_t)(n)) % __base;                       \
        (n) = ((uint64_t)(n)) / __base;                         \
        __rem;                                                  \
 })

I'm *guessing* that umoddi3 or udivdi3 is doing an xmpyu or something,
which since this is probably before fpu init, is trapping, which is
trying to printk, which is recursively exploding.

regards, Kyle
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux