Changeset f619ec11 in mainline for kernel/arch/ia32xen/src/smp/apic.c


Ignore:
Timestamp:
2007-02-03T21:26:54Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
cf5ddf6
Parents:
80bcaed
Message:

When clock() is called by an external interrupt dispatched by the IRQ dispatcher,
no spinlock can be held or the kernel will not be preemptive. This fixes Ticket #24.

Formating and indentation fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32xen/src/smp/apic.c

    r80bcaed rf619ec11  
    152152         */
    153153        idreg.value = io_apic_read(IOAPICID);
    154         if ((1<<idreg.apic_id) & apic_id_mask) {        /* see if IO APIC ID is used already */
     154        if ((1 << idreg.apic_id) & apic_id_mask) {      /* see if IO APIC ID is used already */
    155155                for (i = 0; i < APIC_ID_COUNT; i++) {
    156156                        if (!((1<<i) & apic_id_mask)) {
     
    303303                 * If this is not 82489DX-based l_apic we must send two STARTUP IPI's.
    304304                 */
    305                 for (i = 0; i<2; i++) {
     305                for (i = 0; i < 2; i++) {
    306306                        icr.lo = l_apic[ICRlo];
    307307                        icr.delmod = DELMOD_STARTUP;
     
    402402        /* Program Logical Destination Register. */
    403403        ldr.value = l_apic[LDR];
    404         if (CPU->id < sizeof(CPU->id)*8)        /* size in bits */
    405                 ldr.id = (1<<CPU->id);
     404        if (CPU->id < sizeof(CPU->id) * 8)      /* size in bits */
     405                ldr.id = (1 << CPU->id);
    406406        l_apic[LDR] = ldr.value;
    407407       
     
    508508                dlvr = DELMOD_LOWPRI;
    509509
    510         reg.lo = io_apic_read(IOREDTBL + pin*2);
    511         reg.hi = io_apic_read(IOREDTBL + pin*2 + 1);
     510        reg.lo = io_apic_read(IOREDTBL + pin * 2);
     511        reg.hi = io_apic_read(IOREDTBL + pin * 2 + 1);
    512512       
    513513        reg.dest = dest;
     
    518518        reg.intvec = v;
    519519
    520         io_apic_write(IOREDTBL + pin*2, reg.lo);
    521         io_apic_write(IOREDTBL + pin*2 + 1, reg.hi);
     520        io_apic_write(IOREDTBL + pin * 2, reg.lo);
     521        io_apic_write(IOREDTBL + pin * 2 + 1, reg.hi);
    522522}
    523523
     
    540540                        pin = smp_irq_to_pin(i);
    541541                        if (pin != -1) {
    542                                 reg.lo = io_apic_read(IOREDTBL + pin*2);
     542                                reg.lo = io_apic_read(IOREDTBL + pin * 2);
    543543                                reg.masked = true;
    544544                                io_apic_write(IOREDTBL + pin*2, reg.lo);
     
    567567                        pin = smp_irq_to_pin(i);
    568568                        if (pin != -1) {
    569                                 reg.lo = io_apic_read(IOREDTBL + pin*2);
     569                                reg.lo = io_apic_read(IOREDTBL + pin * 2);
    570570                                reg.masked = false;
    571571                                io_apic_write(IOREDTBL + pin*2, reg.lo);
Note: See TracChangeset for help on using the changeset viewer.