<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2011-08-04)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>strauman</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-08-04 Till Straumann <strauman@slac.stanford.edu>

        * 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!
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/i386/ChangeLog.diff?r1=text&tr1=1.85&r2=text&tr2=1.86&diff_format=h">M</a></td><td width='1%'>1.86</td><td width='100%'>c/src/lib/libbsp/i386/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S.diff?r1=text&tr1=1.26&r2=text&tr2=1.27&diff_format=h">M</a></td><td width='1%'>1.27</td><td width='100%'>c/src/lib/libbsp/i386/shared/irq/irq_asm.S</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/i386/ChangeLog:1.85 rtems/c/src/lib/libbsp/i386/ChangeLog:1.86
--- rtems/c/src/lib/libbsp/i386/ChangeLog:1.85  Mon Aug  1 08:41:50 2011
+++ rtems/c/src/lib/libbsp/i386/ChangeLog       Thu Aug  4 19:15:50 2011
</font><font color='#997700'>@@ -1,3 +1,12 @@
</font><font color='#000088'>+2011-08-04    Till Straumann <strauman@slac.stanford.edu>
+
+       * 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!
+
</font> 2011-08-01        Jennifer Averett <Jennifer.Averett@OARcorp.com>
 
        PR 1802

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S:1.26 rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S:1.27
--- rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S:1.26       Mon Aug  1 08:41:50 2011
+++ rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S    Thu Aug  4 19:15:50 2011
</font><font color='#997700'>@@ -76,6 +76,8 @@
</font>   movl      ebx, EBX_OFF(esp)
        movl      eax, ESP_OFF(esp)
        movl      ebp, EBP_OFF(esp)
<font color='#000088'>+   movw      SYM (i8259s_cache), ax /* save current i8259 interrupt mask */
+       movl      eax, MSK_OFF(esp)      /* save in stack frame */
</font> 
 #ifdef __SSE__
        /* NOTE: SSE only is supported if the BSP enables fxsave/fxrstor
<font color='#997700'>@@ -142,8 +144,7 @@
</font>   /*
         * acknowledge the interrupt
         */
<font color='#880000'>-   movw      SYM (i8259s_cache), ax /* save current i8259 interrupt mask */
-       movl      eax, MSK_OFF(esp)      /* save in stack frame */
</font><font color='#000088'>+      movw      SYM (i8259s_cache), ax /* fetch current i8259 interrupt mask */
</font> 
        /*
         * compute the new PIC mask:
</pre>
<p> </p>

<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>