change log for rtems (2011-08-04)

rtems-vc at rtems.org rtems-vc at rtems.org
Fri Aug 5 01:10:26 UTC 2011


 *strauman*:
2011-08-04	Till Straumann <strauman at 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!

M   1.86  c/src/lib/libbsp/i386/ChangeLog
M   1.27  c/src/lib/libbsp/i386/shared/irq/irq_asm.S

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
@@ -1,3 +1,12 @@
+2011-08-04	Till Straumann <strauman at 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!
+
 2011-08-01	Jennifer Averett <Jennifer.Averett at OARcorp.com>
 
 	PR 1802

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
@@ -76,6 +76,8 @@
 	movl      ebx, EBX_OFF(esp)
 	movl      eax, ESP_OFF(esp)
 	movl      ebp, EBP_OFF(esp)
+	movw      SYM (i8259s_cache), ax /* save current i8259 interrupt mask */
+	movl      eax, MSK_OFF(esp)      /* save in stack frame */
 
 #ifdef __SSE__
 	/* NOTE: SSE only is supported if the BSP enables fxsave/fxrstor
@@ -142,8 +144,7 @@
 	/*
 	 * acknowledge the interrupt
 	 */
-	movw      SYM (i8259s_cache), ax /* save current i8259 interrupt mask */
-	movl      eax, MSK_OFF(esp)      /* save in stack frame */
+	movw      SYM (i8259s_cache), ax /* fetch current i8259 interrupt mask */
 
 	/*
 	 * compute the new PIC mask:



--

Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20110804/4a5fbb5b/attachment-0001.html>


More information about the vc mailing list