2.6.7-rc1 nenabootuje

zde spamtrap na bigfoot.com
Úterý Květen 25 14:18:08 CEST 2004


Tak jsem tu bugu nasel a opravil, kam mam poslat patch?
Stejne je to divny, nemohlo to behat na zadne x86 machine
bez cpuidu. Jakto ze si toho nikdo z "hackeru" nevsimnul?

Kdyz nema cpu cpuid instrukci, early_cpu_detect() nenastavi
L1 cache size, kmem_cache_init() tu nulu posle jako align
do cache_estimate(), a protoze ten je napsanej pekne blbe
tak se jim zacykli. :)

Jo, a tusi nekdo proc Linux dela takovy blbosti jako 
detekci procesoru dvakrat? 2.6.6 to delala jen jedou
a poradne. Fuuuuuj!

--- linux-2.6.7-rc1-bk1/arch/i386/kernel/cpu/common.c.orig      2004-05-25 13:51:46.000000000 +0200
+++ linux-2.6.7-rc1-bk1/arch/i386/kernel/cpu/common.c   2004-05-25 13:54:15.000000000 +0200
@@ -198,26 +198,26 @@
    Fields really needed: vendor, cpuid_level, family, model, mask, cache alignment.
    The others are not touched to avoid unwanted side effects. */
 void __init early_cpu_detect(void)
 {
        struct cpuinfo_x86 *c = &boot_cpu_data;
 
+       c->x86 = 4;
+       c->x86_cache_alignment = 32;
+
        if (!have_cpuid_p())
                return;
 
        /* Get vendor name */
        cpuid(0x00000000, &c->cpuid_level,
              (int *)&c->x86_vendor_id[0],
              (int *)&c->x86_vendor_id[8],
              (int *)&c->x86_vendor_id[4]);
 
        get_cpu_vendor(c, 1);
 
-       c->x86 = 4;
-       c->x86_cache_alignment = 32;
-
        if (c->cpuid_level >= 0x00000001) {
                u32 junk, tfms, cap0, misc;
                cpuid(0x00000001, &tfms, &misc, &junk, &cap0);
                c->x86 = (tfms >> 8) & 15;
                c->x86_model = (tfms >> 4) & 15;
                if (c->x86 == 0xf) {


Další informace o konferenci Linux