aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel/traps.c
Commit message (Collapse)AuthorAgeFilesLines
* Blackfin arch: Add optional verbose debugRobin Getz2008-10-101-100/+130
| | | | | | | | | Add optional verbose debug - which when turned off, quiets down userspace errors. Saves ~8k of code/data for production systems Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Fix bug - HW Errors never recover on BF548Robin Getz2008-10-091-2/+13
| | | | | | | | | | | The kernel does not properly clear the EBIU Error Master (EBIU_ERRMST) Register on BF548, which causes the kernel to panic. We need to make sure that we clear the EBIU_ERRMST (necessary on BF54x) Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Fix bug - kernel build with config kernel debugging with ↵Sonic Zhang2008-10-091-12/+9
| | | | | | | | | | remote gdb fails Add some comment and fix duplicated VEC_EXCPT02 Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Use DTEST rather than DMA to poke at L1 SRAM during exception ↵Robin Getz2008-10-081-2/+1
| | | | | | | | context Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Make sure we protect except 2 properly, and print out memory ↵Robin Getz2008-10-081-1/+2
| | | | | | | | properly Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Better error handling of unknown exceptionsRobin Getz2008-10-081-14/+29
| | | | | | | | | | Better error handling of unknown exceptions, allows userspace to do a EXCPT n instruction for a not installed exception handler, and the kernel doesn't crash (like it use to before this). Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: add supporting for kgdbSonic Zhang2008-10-131-19/+16
| | | | | | Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: add supporting for double fault debug handlingRobin Getz2008-10-081-4/+30
| | | | | | | Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: only include asm/cplb.h when it is truly usedMike Frysinger2008-10-131-0/+1
| | | | | | Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Fix bug - when expanding the trace buffer, it does not print ↵Robin Getz2008-08-061-35/+53
| | | | | | | | | | | out the decoded instruction. as pointed out by Michael McTernan in the forums, when expanding the trace buffer, it does not print out the decoded instruction. Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: convert L2 defines to be the same as the L1 definesMike Frysinger2008-08-131-1/+1
| | | | | | Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Add unwinding for stack info, and a little more detail on ↵Robin Getz2008-07-261-55/+241
| | | | | | | | trace buffer Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: fixup warnings with the new cplb saved valuesMike Frysinger2008-06-031-5/+3
| | | | | | Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: cleanup the icplb/dcplb multiple hit checksMike Frysinger2008-05-171-10/+10
| | | | | | | | so that we always send the same signal and we handle the NULL ptr condition properly Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* [Blackfin] arch: Remove the circular buffering mechanism for exceptionsBernd Schmidt2008-04-251-8/+7
| | | | | | | | | | | | | | | | Remove the circular buffering mechanism for exceptions. Instead, point RETX at a safe location from which to fetch three NOPs. This safe location is now in the fixed code area, and also used for certain anomaly workarounds, to ensure that user space can find a valid ICPLB when things are built with CONFIG_MPU. Also, save I/DCPLB_FAULT_ADDRESS when lowering to level 5, since the hardware reg is valid only at exception level. Signed-off-by: Bernd Schmidt <bernds_cb1@t-online.de> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* [Blackfin] arch: try to remove condition that causes double fault, by ↵Robin Getz2008-04-251-10/+24
| | | | | | | | checking current before it gets dereferenced Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* [Blackfin] arch: fix bug - grab locks when not atomicRobin Getz2008-03-261-4/+4
| | | | | | | | | grab locks when not atomic - this fixes the issues sometimes seen when using magic sysrq. Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* [Blackfin] arch: fix bug - when we crash, current is not validRobin Getz2008-03-261-14/+23
| | | | | | | | | | Sometimes when we crash, current is not valid, (has been written over), so the existing code causes a invalid read during exception context - which is a unrecoverable double fault. This fixes this. Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* [Blackfin] arch: add missing __user marking to ss_sp member of signalstack ↵Mike Frysinger2008-03-071-1/+1
| | | | | | | | and a few userspace system functions Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* d_path: Make d_path() use a struct pathJan Blunck2008-02-141-7/+5
| | | | | | | | | | | | | | | | d_path() is used on a <dentry,vfsmount> pair. Lets use a struct path to reflect this. [akpm@linux-foundation.org: fix build in mm/memory.c] Signed-off-by: Jan Blunck <jblunck@suse.de> Acked-by: Bryan Wu <bryan.wu@analog.com> Acked-by: Christoph Hellwig <hch@infradead.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: "J. Bruce Fields" <bfields@fieldses.org> Cc: Neil Brown <neilb@suse.de> Cc: Michael Halcrow <mhalcrow@us.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [Blackfin] arch: fix typo in printk messageMike Frysinger2008-02-021-1/+1
| | | | | | Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* [Blackfin] arch: print out list of modules if kernel is crashing and tell ↵Robin Getz2008-01-111-1/+2
| | | | | | | | people if the kernel is tainted Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* [Blackfin] arch: Don't oops_in_progress if single step is comming from the ↵Robin Getz2008-01-101-2/+2
| | | | | | | | | | | | kernel Don't oops_in_progress if single step is comming from the kernel, which happens if a single step occurs after a exception cause. This fixes up the remaining issues in the toolchain bug. Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* [Blackfin] arch: Clean up dump_bfin_memRobin Getz2007-12-231-48/+84
| | | | | | | | | | Clean up dump_bfin_mem so that it will display content from the kernel, as well as l1 instruction, when deferred HW errors happen, print out the last frame info if it makes sense. Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* [Blackfin] arch: fix bug gdb testing on hardware has regressionRobin Getz2007-12-241-7/+30
| | | | | | | | | | | | http://blackfin.uclinux.org/gf/project/toolchain/tracker/?action=TrackerItemEdit&tracker_item_id=3651 As Bernd predicted, this was only necessary because of other problems in the kenel - fixing those, and this is not necessary, so remove it. Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* [Blackfin] arch: fix bug - trap_tests fails to recover on some tests.Robin Getz2008-01-271-8/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=3719 When the CPLBs get a miss, we do: - find a victim in the HW table - remove the victim - find the replacement in the software table - put it into the HW table. If we can't find a replacement in the software table, we accidently leave a duplicate in the HW table. This patch ensures that duplicate is marked as not valid. What we should do is find the replacement in the software table, before we find a victim in the HW table - but its too late in the release cycle to do that much restructuring of this code. Rather that duplicate code, connect Hardware Errors (irq5) into trap_c, so user space processes get killed properly. The rest of irq_panic() can be moved into traps.c (later) There is still a small corner case that causes problems when a pheriperal interrupt goes off a single cycle before a user space hardware error. This causes a kernel panic, rather than the user space process being killed. But, this checkin makes things work in 99.9% of the cases, and is a vast improvement from what is there today (which fails 100% of the time). Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: split apart dump_bfin_regs and merge/remove show_regs from ↵Mike Frysinger2007-11-211-31/+54
| | | | | | | | process.c, which was largely duplicated Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: fix bug when sending signals with the wrong PC, cause gdb get ↵Robin Getz2007-11-211-6/+8
| | | | | | | | | | | confused We need to send signals with the proper PC, or gdb gets confused, and lots of tests fail. This should fix that. Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: Ensure we printk out strings with the proper loglevelRobin Getz2007-11-211-15/+15
| | | | | | Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: cleanup kernel exception message, don't insult the customer.Robin Getz2007-11-181-2/+2
| | | | | | Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: print out modules that are loaded if we get a kernel oopsRobin Getz2007-11-181-0/+1
| | | | | | Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: fix bug cplbmgr.S does not exit properly on error conditionRobin Getz2007-11-151-2/+2
| | | | | | | | | | | | https://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=1685 Ensure that cache/protection is turned back on when we get a fault, and ensure that the initial population of the CPLB tables are correct - that kernel is locked in CPLB tables Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: fix bux - only reset the PC when necessary, otherwise gdb ↵Robin Getz2007-11-121-2/+3
| | | | | | | | gets confused Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: ensure we work around ANOMALY_05000261 for null pointersRobin Getz2007-11-121-6/+4
| | | | | | | | We currently do not. Also make it easier to handle cplb violations - in traps.c Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: cleanup arch/blackfin/kernel/traps.c handling code.Robin Getz2007-10-291-139/+179
| | | | | | | | | | | | | | | - move the CONFIG_KGDB into one block, for easier reading - remove printk from printk_address, and pass around buffers. Also print out the labels when decoding CPLB errors, so you know exactly where the error was. - Do not use fixed addresses, becuase people do not know where they come from. - Turn the printing level down on the dump, so if you don't want, only the signal prints out - just like on other archs. If a kernel/interrupt crashes, it should dump everything all the time Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: fix bug: kernel prints out error message twiceRobin Getz2007-10-291-12/+18
| | | | | | | | | | | | | This fixes two things: - stop calling write_lock_irq/write_unlock_irq which can turn modify irq levels - don't calling mmput when handing exceptions - since this might_sleep, which does a rti, and leaves us in kernel space (irq15, rather than irq5). Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: Fixing Bug: balance calls to get_task_mm with corresponding ↵Bernd Schmidt2007-10-211-0/+2
| | | | | | | | | | mmput calls We must balance calls to get_task_mm with corresponding mmput calls, otherwise refcounting is screwed up and mms don't get freed when their task exits. Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: Enable earlyprintk earlier - so any error after our interrupt ↵Robin Getz2007-10-091-4/+4
| | | | | | | | | | | | | tables are set up will print out Also ensure that the traps_c code doesn't cause a double fault, by sending a signal to a faulting kernel before the memory subsystem is fully initialized, by printing out the error message before sending the signal. Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: fix endless loop bug when a double fault happensRobin Getz2007-10-091-0/+8
| | | | | | | | | | | Today when a double fault happens (exception during an exception handling event), we go into an endless loop, with nothing comming out the UART. With this patch, we actually see that we have commited a double fault event Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: add an exception request/free apiMike Frysinger2007-08-051-2/+36
| | | | | | | | | | add an exception request/free api similar to the interrupt request/fre api so people can utilize the free software based exceptions for their own purposes Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: remove spurious KERN_EMERG log level in outputMike Frysinger2007-08-051-2/+1
| | | | | | Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: Add ability to expend the hardware trace bufferRobin Getz2007-07-251-7/+46
| | | | | | | | | | | | Add ability to expend the hardware trace buffer via a configurable software buffer - so you can have lots of history when a crash occurs. The interesting way we do printk in the traps.c confusese the checking script Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: after removing fs.h from mm.h, fix the broken on Blackfin archBryan Wu2007-08-111-0/+1
| | | | | | | Cc: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Blackfin arch: fix KGDB bug, dont forget last parameter.Sonic Zhang2007-07-251-1/+1
| | | | | | Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: scrub dead codeMike Frysinger2007-07-121-3/+2
| | | | | | | | | we converted to using a system call for userspace spinlocks rather than a dedicated exception long ago Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: cleanup warnings from checkpatch -- no functional changesMike Frysinger2007-07-121-24/+22
| | | | | | Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: Clean up trace buffer handling, No major functional changes.Robin Getz2007-06-211-10/+1
| | | | | | | | | | Turns on trace earlier, so crashes at kernel start should print out a trace, making things easier to debug. Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: Fix up remaining printks with proper log levelsRobin Getz2007-06-251-1/+2
| | | | | | Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: update printk to use KERN_EMERG and reformat crash outputRobin Getz2007-06-211-55/+86
| | | | | | | | | | | | | | | | to look like: return address: [0x0357fcc4]; contents of: 0x0357fca0: fcbc 0357 fe20 0357 0009 0000 6a8c 0345 0x0357fcb0: 000e 0000 fcc4 0357 fd44 0357 e128 00ad 0x0357fcc0: 00a0 0000 [000e] 0000 0000 0000 0080 0000 0x0357fcd0: 0000 0000 0000 0000 00a0 0000 000e 0000 instruction in [] is the offending instruction Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: spelling fixesSimon Arlott2007-06-111-1/+1
| | | | | | Signed-off-by: Simon Arlott <simon@fire.lp0.eu> Signed-off-by: Bryan Wu <bryan.wu@analog.com>