Changeset a7a1063 in mainline for arch/ia32/src/smp/mps.c


Ignore:
Timestamp:
2005-06-07T00:41:39Z (20 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d896525
Parents:
b0bf501
Message:

SMP recovery patch #2 (SMP is no longer broken !!!).
Fix missing KA2PA() operation in ap.S which was causing page faults during AP early initialization.
Fix bug in map_page_to_frame(): 'root' was interpretted as kernel address while read_dba() returns physical address.
Make references to page directory and page tables use kernel addresses instead of physical addresses.

Massive frame allocation code cleanup.
Basically revert to what we had had before implementation of userspace.

Usual cosmetics.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/ia32/src/smp/mps.c

    rb0bf501 ra7a1063  
    393393}
    394394
     395
    395396/*
    396397 * Kernel thread for bringing up application processors. It becomes clear
     
    415416
    416417        /*
    417          * Grab a frame and map its address to page 0. This is a hack which
    418          * accesses data in frame 0. Note that page 0 is not present because
    419          * of nil reference bug catching.
    420          */
    421         frame = frame_alloc(FRAME_KA);
     418         * We need to access data in frame 0.
     419         */
     420        frame = frame_alloc(0);
    422421        map_page_to_frame(frame,0,PAGE_CACHEABLE,0);
    423422
     
    474473                memcopy(gdt, gdt_new, GDT_ITEMS*sizeof(struct descriptor));
    475474                gdtr.base = KA2PA((__address) gdt_new);
    476                
     475
    477476                if (l_apic_send_init_ipi(pr[i].l_apic_id)) {
    478477                        /*
Note: See TracChangeset for help on using the changeset viewer.