[coreboot] Patch set updated for coreboot: 3842e4f armv7: don't hang on divide by zero

Ronald G. Minnich (rminnich@gmail.com) gerrit at coreboot.org
Wed Jan 30 22:25:17 CET 2013


Ronald G. Minnich (rminnich at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2233

-gerrit

commit 3842e4f8ba0f11dcaff1ebd180a296f876bdda44
Author: Ronald G. Minnich <rminnich at gmail.com>
Date:   Wed Jan 30 15:05:19 2013 -0600

    armv7: don't hang on divide by zero
    
    People make mistakes. Hanging the box is not a good reason to kill the firmware,
    esp. since this is probably happening in a printk.
    
    The only issue with the recursive call to printk is that we may
    deadlock if we have locked something. But we can at least try.
    Hanging is certainly not what we want ...
    
    Change-Id: Ib3bc87bc395ae89e115cf6d042f4167856422ca1
    Signed-off-by: Ronald G. Minnich <rminnich at gmail.com>
---
 src/arch/armv7/lib/div0.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/arch/armv7/lib/div0.c b/src/arch/armv7/lib/div0.c
index 632c247..ab06ad3 100644
--- a/src/arch/armv7/lib/div0.c
+++ b/src/arch/armv7/lib/div0.c
@@ -21,12 +21,13 @@
  * MA 02111-1307 USA
  */
 
+#include <console/console.h>
+
 void __div0(void); // called from asm so no need for a prototype in a header
 
 /* Replacement (=dummy) for GNU/Linux division-by zero handler */
+/* recursion is ok here because we have no formats ... */
 void __div0 (void)
 {
-	extern void hang (void);
-
-	hang();
+	printk(BIOS_EMERG, "DIVIDE BY ZERO! continuing ... \n");
 }



More information about the coreboot mailing list