summaryrefslogtreecommitdiffstats
path: root/arch/metag/kernel/setup.c
diff options
context:
space:
mode:
authorJames Hogan <james.hogan@imgtec.com>2013-11-05 14:42:03 +0000
committerJames Hogan <james.hogan@imgtec.com>2013-11-06 10:40:02 +0000
commit95281171a713f4d32f1a044b937563ec7776ccfe (patch)
tree3071f6b6caa68a38348b4996dc873f2b0aa3014a /arch/metag/kernel/setup.c
parent5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52 (diff)
downloadop-kernel-dev-95281171a713f4d32f1a044b937563ec7776ccfe.zip
op-kernel-dev-95281171a713f4d32f1a044b937563ec7776ccfe.tar.gz
metag: handle low level kicks directly
Kick interrupts trigger the LWK (low level kick) signal, usually handled by the __TBIDoStdLWK() function which is the only handler inherited from the bootloader. The LWK signal is converted either to a SWK (plain software kick) or a SWS (software kick with an attached message). Linux has kick_handler() to handle SWK and call registered kick handlers (IPIs and inter-thread comms), but SWS is as far as I'm aware unused with Linux. Therefore remove that abstraction and have Linux handle LWK directly. This will reduce kick latency slightly, and reduce our dependence on the bootloader, which makes it easier to directly boot a kernel in QEMU (particularly for SMP). Signed-off-by: James Hogan <james.hogan@imgtec.com>
Diffstat (limited to 'arch/metag/kernel/setup.c')
-rw-r--r--arch/metag/kernel/setup.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/metag/kernel/setup.c b/arch/metag/kernel/setup.c
index c396cd0..e639bae 100644
--- a/arch/metag/kernel/setup.c
+++ b/arch/metag/kernel/setup.c
@@ -302,13 +302,9 @@ void __init setup_arch(char **cmdline_p)
* rather than the version from the bootloader. This makes call
* stacks easier to understand and may allow us to unmap the
* bootloader at some point.
- *
- * We need to keep the LWK handler that TBI installed in order to
- * be able to do inter-thread comms.
*/
for (i = 0; i <= TBID_SIGNUM_MAX; i++)
- if (i != TBID_SIGNUM_LWK)
- _pTBI->fnSigs[i] = __TBIUnExpXXX;
+ _pTBI->fnSigs[i] = __TBIUnExpXXX;
/* A Meta requirement is that the kernel is loaded (virtually)
* at the PAGE_OFFSET.
OpenPOWER on IntegriCloud