traps.c (b9f12a5d97f652c77ef6803dccd0d40d1290f5be) traps.c (0869b6fd209bda402576a9a559120ddd4f61198e)
1/*
2 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
3 * Copyright 2007-2010 Freescale Semiconductor, Inc.
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version
8 * 2 of the License, or (at your option) any later version.

--- 288 unchanged lines hidden (view full) ---

297
298 __get_cpu_var(irq_stat).mce_exceptions++;
299
300 if (cur_cpu_spec && cur_cpu_spec->machine_check_early)
301 handled = cur_cpu_spec->machine_check_early(regs);
302 return handled;
303}
304
1/*
2 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
3 * Copyright 2007-2010 Freescale Semiconductor, Inc.
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version
8 * 2 of the License, or (at your option) any later version.

--- 288 unchanged lines hidden (view full) ---

297
298 __get_cpu_var(irq_stat).mce_exceptions++;
299
300 if (cur_cpu_spec && cur_cpu_spec->machine_check_early)
301 handled = cur_cpu_spec->machine_check_early(regs);
302 return handled;
303}
304
305long hmi_exception_realmode(struct pt_regs *regs)
306{
307 __get_cpu_var(irq_stat).hmi_exceptions++;
308
309 if (ppc_md.hmi_exception_early)
310 ppc_md.hmi_exception_early(regs);
311
312 return 0;
313}
314
305#endif
306
307/*
308 * I/O accesses can cause machine checks on powermacs.
309 * Check if the NIP corresponds to the address of a sync
310 * instruction for which there is an entry in the exception
311 * table.
312 * Note that the 601 only takes a machine check on TEA

--- 291 unchanged lines hidden (view full) ---

604 printk("Bus - Read Address Error\n");
605 if (reason & MCSR_BUS_WAERR)
606 printk("Bus - Write Address Error\n");
607 if (reason & MCSR_BUS_IBERR)
608 printk("Bus - Instruction Data Error\n");
609 if (reason & MCSR_BUS_RBERR)
610 printk("Bus - Read Data Bus Error\n");
611 if (reason & MCSR_BUS_WBERR)
315#endif
316
317/*
318 * I/O accesses can cause machine checks on powermacs.
319 * Check if the NIP corresponds to the address of a sync
320 * instruction for which there is an entry in the exception
321 * table.
322 * Note that the 601 only takes a machine check on TEA

--- 291 unchanged lines hidden (view full) ---

614 printk("Bus - Read Address Error\n");
615 if (reason & MCSR_BUS_WAERR)
616 printk("Bus - Write Address Error\n");
617 if (reason & MCSR_BUS_IBERR)
618 printk("Bus - Instruction Data Error\n");
619 if (reason & MCSR_BUS_RBERR)
620 printk("Bus - Read Data Bus Error\n");
621 if (reason & MCSR_BUS_WBERR)
612 printk("Bus - Read Data Bus Error\n");
622 printk("Bus - Write Data Bus Error\n");
613 if (reason & MCSR_BUS_IPERR)
614 printk("Bus - Instruction Parity Error\n");
615 if (reason & MCSR_BUS_RPERR)
616 printk("Bus - Read Parity Error\n");
617
618 return 0;
619}
620

--- 112 unchanged lines hidden (view full) ---

733 exception_exit(prev_state);
734}
735
736void SMIException(struct pt_regs *regs)
737{
738 die("System Management Interrupt", regs, SIGABRT);
739}
740
623 if (reason & MCSR_BUS_IPERR)
624 printk("Bus - Instruction Parity Error\n");
625 if (reason & MCSR_BUS_RPERR)
626 printk("Bus - Read Parity Error\n");
627
628 return 0;
629}
630

--- 112 unchanged lines hidden (view full) ---

743 exception_exit(prev_state);
744}
745
746void SMIException(struct pt_regs *regs)
747{
748 die("System Management Interrupt", regs, SIGABRT);
749}
750
751void handle_hmi_exception(struct pt_regs *regs)
752{
753 struct pt_regs *old_regs;
754
755 old_regs = set_irq_regs(regs);
756 irq_enter();
757
758 if (ppc_md.handle_hmi_exception)
759 ppc_md.handle_hmi_exception(regs);
760
761 irq_exit();
762 set_irq_regs(old_regs);
763}
764
741void unknown_exception(struct pt_regs *regs)
742{
743 enum ctx_state prev_state = exception_enter();
744
745 printk("Bad trap at PC: %lx, SR: %lx, vector=%lx\n",
746 regs->nip, regs->msr, regs->trap);
747
748 _exception(SIGTRAP, regs, 0, 0);

--- 1172 unchanged lines hidden ---
765void unknown_exception(struct pt_regs *regs)
766{
767 enum ctx_state prev_state = exception_enter();
768
769 printk("Bad trap at PC: %lx, SR: %lx, vector=%lx\n",
770 regs->nip, regs->msr, regs->trap);
771
772 _exception(SIGTRAP, regs, 0, 0);

--- 1172 unchanged lines hidden ---