linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/23] entry assembly cleanups
@ 2011-06-29  9:18 Russell King - ARM Linux
  2011-06-29  9:19 ` [PATCH 01/23] ARM: entry: remove unused irq_prio_table macro Russell King - ARM Linux
                   ` (24 more replies)
  0 siblings, 25 replies; 29+ messages in thread
From: Russell King - ARM Linux @ 2011-06-29  9:18 UTC (permalink / raw)
  To: linux-arm-kernel

This patch series cleans up the entry assembly and CPU abort helpers.
Notable things about this patch series:

1. We now call the data and prefetch abort handlers with interrupts
   disabled.  This makes us more like x86 in this regard, and means
   we can move the PMU abort special case out of the assembly.

   As a result of this, we now always tell the irqs tracing code that
   irqs are turned off whenever we enter an exception handler from SVC
   mode.

2. The CPU abort helpers are no longer functions in their own right -
   they tail-call through to the main C abort handlers now, resulting
   in less entry code.

3. IRQs off tracing is implemented more accurately for user aborts.

4. Avoid reloading PSR into r5 on return in SVC exception handlers as
   we now preserve the value across the code.  There is no reason for
   PSR to be changed while processing an SVC mode interrupt, prefetch
   or data abort.

I did notice this though in abort-lv4t.S:

        tst     r8, #1 << 20                    @ L = 1 -> write?

where the comment is wrong.  L means load.  Set for load, so it's a
read.  The ARM610/ARM710 (proc-arm6_7.S) got this right, so I'm not
sure why abort-lv4t.S (which is basically a copy plus thumb handling)
decided to change this to be incorrect.  I haven't fixed this in this
series.

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2011-06-30 21:51 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-29  9:18 [PATCH 00/23] entry assembly cleanups Russell King - ARM Linux
2011-06-29  9:19 ` [PATCH 01/23] ARM: entry: remove unused irq_prio_table macro Russell King - ARM Linux
2011-06-29  9:19 ` [PATCH 02/23] ARM: entry: shark: don't directly reference registers in macros Russell King - ARM Linux
2011-06-29  9:19 ` [PATCH 03/23] ARM: entry: prefetch/data abort helpers: convert to macros Russell King - ARM Linux
2011-06-29  9:20 ` [PATCH 00/23] entry assembly cleanups Russell King - ARM Linux
2011-06-29  9:20 ` [PATCH 04/23] ARM: entry: prefetch/data abort helpers: avoid corrupting r4 Russell King - ARM Linux
2011-06-29  9:20 ` [PATCH 05/23] ARM: entry: abort-macro: specify registers to be used for macros Russell King - ARM Linux
2011-06-29  9:20 ` [PATCH 06/23] ARM: entry: abort-macro: simplify do_ldrd_abort Russell King - ARM Linux
2011-06-29  9:21 ` [PATCH 07/23] ARM: entry: no need to increase preempt count for IRQ handlers Russell King - ARM Linux
2011-06-29  9:21 ` [PATCH 08/23] ARM: entry: no need to check parent IRQ mask in IRQ handler return Russell King - ARM Linux
2011-06-29  9:21 ` [PATCH 09/23] ARM: entry: rejig register allocation in exception entry handlers Russell King - ARM Linux
2011-06-29  9:22 ` [PATCH 10/23] ARM: entry: prefetch abort helper: pass aborted pc in r4 rather than r0 Russell King - ARM Linux
2011-06-29  9:22 ` [PATCH 11/23] ARM: entry: avoid enabling interrupts in prefetch/data abort handlers Russell King - ARM Linux
2011-06-29 20:05   ` Will Deacon
2011-06-30  9:27     ` Russell King - ARM Linux
2011-06-30 21:51       ` Will Deacon
2011-06-29  9:22 ` [PATCH 12/23] ARM: entry: instrument svc undefined exception handler with irqtrace Russell King - ARM Linux
2011-06-29  9:23 ` [PATCH 13/23] ARM: entry: instrument usr exception handlers with irqsoff tracing Russell King - ARM Linux
2011-06-29  9:23 ` [PATCH 14/23] ARM: entry: consolidate trace_hardirqs_off into (svc|usr)_entry macros Russell King - ARM Linux
2011-06-29  9:23 ` [PATCH 15/23] ARM: entry: re-allocate registers in irq entry assembly macros Russell King - ARM Linux
2011-06-29  9:24 ` [PATCH 16/23] ARM: entry: prefetch abort: tail-call the main prefetch abort handler Russell King - ARM Linux
2011-06-29  9:24 ` [PATCH 17/23] ARM: entry: data abort: arrange for CPU abort helpers to take pc/psr in r4/r5 Russell King - ARM Linux
2011-06-29  9:24 ` [PATCH 18/23] ARM: entry: data abort: avoid using r2 in abort helpers Russell King - ARM Linux
2011-06-29  9:25 ` [PATCH 19/23] ARM: entry: data abort: tail-call the main data abort handler Russell King - ARM Linux
2011-06-29  9:25 ` [PATCH 20/23] ARM: entry: data abort: use r2 as base of pt_regs rather than stack Russell King - ARM Linux
2011-06-29  9:25 ` [PATCH 21/23] ARM: entry: data abort: always use r6 for offset Russell King - ARM Linux
2011-06-29  9:26 ` [PATCH 22/23] ARM: entry: data abort: ensure r5 is preserved by abort functions Russell King - ARM Linux
2011-06-29  9:26 ` [PATCH 23/23] ARM: entry: no need to reload the SPSR value from struct pt_regs Russell King - ARM Linux
2011-06-29 14:53 ` [PATCH 00/23] entry assembly cleanups Jean-Christophe PLAGNIOL-VILLARD

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).