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