<!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>