Thread (68 messages) 68 messages, 9 authors, 2014-06-20

Re: [RFC v3 1/9] arm: fiq: arbitrary mappings from IRQ to FIQ virqs

From: Daniel Thompson <hidden>
Date: 2014-06-05 13:08:30
Also in: linux-arm-kernel, linux-devicetree

On 05/06/14 12:51, Russell King - ARM Linux wrote:
On Thu, Jun 05, 2014 at 10:53:06AM +0100, Daniel Thompson wrote:
quoted
 static int fiq_def_op(void *ref, int relinquish)
 {
-	if (!relinquish)
+	if (!relinquish) {
+		unsigned offset = FIQ_OFFSET;
+		no_fiq_insn = *(unsigned long *)(0xffff0000 + offset);
 		set_fiq_handler(&no_fiq_insn, sizeof(no_fiq_insn));
+	}
...
quoted
 void __init init_FIQ(int start)
 {
-	unsigned offset = FIQ_OFFSET;
-	no_fiq_insn = *(unsigned long *)(0xffff0000 + offset);
 	fiq_start = start;
 }
This is wrong - when the default handler is "reinstalled", this change has
the effect that we read the first instruction of the existing handler, and
then write that same instruction back, rather than replacing the first
instruction with the value that was there at boot.
Thanks. I'll fix this.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help