Changeset e94aa61b in rtems


Ignore:
Timestamp:
Aug 5, 2011, 12:15:50 AM (10 years ago)
Author:
Till Straumann <strauman@…>
Branches:
4.11, 5, master
Children:
7bdd5716
Parents:
0f660eb
Message:

2011-08-04 Till Straumann <strauman@…>

  • shared/irq/irq_asm.S: BUGFIX (introduced by SMP changes which moved code around, apparently): *must* store i8259 mask to frame *before* switching to IRQ stack. The code retrieves the mask after switching back to original stack. Also, the IRQ stack has no reserved space for the mask; storing it there could overwrite memory!
Location:
c/src/lib/libbsp/i386
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/i386/ChangeLog

    r0f660eb re94aa61b  
     12011-08-04      Till Straumann <strauman@slac.stanford.edu>
     2
     3        * shared/irq/irq_asm.S: BUGFIX (introduced by SMP changes
     4        which moved code around, apparently): *must* store i8259
     5        mask to frame *before* switching to IRQ stack. The code
     6        retrieves the mask after switching back to original stack.
     7        Also, the IRQ stack has no reserved space for the mask;
     8        storing it there could overwrite memory!
     9
    1102011-08-01      Jennifer Averett <Jennifer.Averett@OARcorp.com>
    211
  • c/src/lib/libbsp/i386/shared/irq/irq_asm.S

    r0f660eb re94aa61b  
    7777        movl      eax, ESP_OFF(esp)
    7878        movl      ebp, EBP_OFF(esp)
     79        movw      SYM (i8259s_cache), ax /* save current i8259 interrupt mask */
     80        movl      eax, MSK_OFF(esp)      /* save in stack frame */
    7981
    8082#ifdef __SSE__
     
    143145         * acknowledge the interrupt
    144146         */
    145         movw      SYM (i8259s_cache), ax /* save current i8259 interrupt mask */
    146         movl      eax, MSK_OFF(esp)      /* save in stack frame */
     147        movw      SYM (i8259s_cache), ax /* fetch current i8259 interrupt mask */
    147148
    148149        /*
Note: See TracChangeset for help on using the changeset viewer.