linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Daniel Thompson <daniel.thompson@linaro.org>
To: Nicolas Pitre <nicolas.pitre@linaro.org>
Cc: Russell King <linux@arm.linux.org.uk>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, patches@linaro.org,
	linaro-kernel@lists.linaro.org,
	John Stultz <john.stultz@linaro.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Sumit Semwal <sumit.semwal@linaro.org>,
	Catalin Marinas <catalin.marinas@arm.com>
Subject: Re: [PATCH v1 1/6] arm: fiq: Replace default FIQ handler
Date: Fri, 05 Sep 2014 10:03:39 +0100	[thread overview]
Message-ID: <54097C6B.7040805@linaro.org> (raw)
In-Reply-To: <alpine.LFD.2.11.1409041452500.16533@knanqh.ubzr>

On 04/09/14 19:57, Nicolas Pitre wrote:
> On Thu, 4 Sep 2014, Daniel Thompson wrote:
> 
>> This patch introduces a new default FIQ handler that is structured in a
>> similar way to the existing ARM exception handler and result in the FIQ
>> being handled by C code running on the SVC stack (despite this code run
>> in the FIQ handler is subject to severe limitations with respect to
>> locking making normal interaction with the kernel impossible).
>>
>> This default handler allows concepts that on x86 would be handled using
>> NMIs to be realized on ARM.
>>
>> Credit:
>>
>>     This patch is a near complete re-write of a patch originally
>>     provided by Anton Vorontsov. Today only a couple of small fragments
>>     survive, however without Anton's work to build from this patch would
>>     not exist.
>>
>> Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
>> Cc: Russell King <linux@arm.linux.org.uk>
>> Cc: Nicolas Pitre <nico@linaro.org>
>> Cc: Catalin Marinas <catalin.marinas@arm.com>
>> ---
>>  arch/arm/kernel/entry-armv.S | 110 +++++++++++++++++++++++++++++++++++++++----
>>  arch/arm/kernel/setup.c      |   8 +++-
>>  arch/arm/kernel/traps.c      |  26 ++++++++--
>>  3 files changed, 130 insertions(+), 14 deletions(-)
>>
>> diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
>> index 36276cd..03dc0e0 100644
>> --- a/arch/arm/kernel/entry-armv.S
>> +++ b/arch/arm/kernel/entry-armv.S
>> @@ -146,7 +146,7 @@ ENDPROC(__und_invalid)
>>  #define SPFIX(code...)
>>  #endif
>>  
>> -	.macro	svc_entry, stack_hole=0
>> +	.macro	svc_entry, stack_hole=0, call_trace=1
>>   UNWIND(.fnstart		)
>>   UNWIND(.save {r0 - pc}		)
>>  	sub	sp, sp, #(S_FRAME_SIZE + \stack_hole - 4)
>> @@ -183,10 +183,35 @@ ENDPROC(__und_invalid)
>>  	stmia	r7, {r2 - r6}
>>  
>>  #ifdef CONFIG_TRACE_IRQFLAGS
>> +	.if \call_trace
>>  	bl	trace_hardirqs_off
>> +	.endif
>>  #endif
>>  	.endm
>>  
>> +@
>> +@ svc_exit_via_fiq - similar to svc_exit but switches to FIQ mode before exit
>> +@
>> +@ This macro acts in a similar manner to svc_exit but switches to FIQ
>> +@ mode to restore the final part of the register state.
>> +@
>> +@ We cannot use the normal svc_exit procedure because that would
>> +@ clobber spsr_svc (FIQ could be delivered during the first few instructions
>> +@ of vector_swi meaning its contents have not been saved anywhere).
>> +@
> 
> Wouldn't it be better for this macro to live in entry-header.S alongside 
> the others?

I'm not sure either way.

svc_exit_from_fiq isn't needed by entry-common.S and cannot be used by
entry-v7m.S because v7m has no FIQ. For that reason I decided to place
it alongside svc_entry in entry-armv.S rather than alongside svc_exit in
entry-header.S .

I am happy to move it if you have a strong preference here. Please let
me know.


> Also you should probably create a Thumb2 version.

I'll look at this.


Daniel.


>> +	.macro  svc_exit_via_fiq, rpsr
>> +
>> +	mov	r0, sp
>> +	ldmib	r0, {r1 - r14}	@ abort is deadly from here onward (it will
>> +				@ clobber state restored below)
>> +	msr	cpsr_c, #FIQ_MODE | PSR_I_BIT | PSR_F_BIT
>> +	add	r8, r0, #S_PC
>> +	ldr	r9, [r0, #S_PSR]
>> +	msr	spsr_cxsf, r9
>> +	ldr	r0, [r0, #S_R0]
>> +	ldmia	r8, {pc}^
>> +	.endm
>> +
>>  	.align	5
>>  __dabt_svc:
>>  	svc_entry
>> @@ -295,6 +320,15 @@ __pabt_svc:
>>  ENDPROC(__pabt_svc)
>>  
>>  	.align	5
>> +__fiq_svc:
>> +	svc_entry 0, 0
>> +	mov	r0, sp				@ struct pt_regs *regs
>> +	bl	handle_fiq_as_nmi
>> +	svc_exit_via_fiq r5
>> + UNWIND(.fnend		)
>> +ENDPROC(__fiq_svc)
>> +
>> +	.align	5
>>  .LCcralign:
>>  	.word	cr_alignment
>>  #ifdef MULTI_DABORT
>> @@ -305,6 +339,38 @@ ENDPROC(__pabt_svc)
>>  	.word	fp_enter
>>  
>>  /*
>> + * Abort mode handlers
>> + */
>> +
>> +@
>> +@ Taking a FIQ in abort mode is similar to taking a FIQ in SVC mode
>> +@ and reuses the same macros. However in abort mode we must also
>> +@ save/restore lr_abt and spsr_abt to make nested aborts safe.
>> +@
>> +	.align 5
>> +__fiq_abt:
>> +	svc_entry 0, 0
>> +
>> +	msr	cpsr_c, #ABT_MODE | PSR_I_BIT | PSR_F_BIT
>> +	mov	r0, lr		@ Save lr_abt
>> +	mrs	r1, spsr	@ Save spsr_abt, abort is now safe
>> +	msr	cpsr_c, #SVC_MODE | PSR_I_BIT | PSR_F_BIT
>> +	push	{r0 - r1}
>> +
>> +	sub	r0, sp, #8			@ struct pt_regs *regs
>> +	bl	handle_fiq_as_nmi
>> +
>> +	pop	{r0 - r1}
>> +	msr	cpsr_c, #ABT_MODE | PSR_I_BIT | PSR_F_BIT
>> +	mov	lr, r0		@ Restore lr_abt, abort is unsafe
>> +	msr	spsr_cxsf, r1	@ Restore spsr_abt
>> +	msr	cpsr_c, #SVC_MODE | PSR_I_BIT | PSR_F_BIT
>> +
>> +	svc_exit_via_fiq r5
>> + UNWIND(.fnend		)
>> +ENDPROC(__fiq_svc)
>> +
>> +/*
>>   * User mode handlers
>>   *
>>   * EABI note: sp_svc is always 64-bit aligned here, so should S_FRAME_SIZE
>> @@ -683,6 +749,18 @@ ENTRY(ret_from_exception)
>>  ENDPROC(__pabt_usr)
>>  ENDPROC(ret_from_exception)
>>  
>> +	.align	5
>> +__fiq_usr:
>> +	usr_entry
>> +	kuser_cmpxchg_check
>> +	mov	r0, sp				@ struct pt_regs *regs
>> +	bl	handle_fiq_as_nmi
>> +	get_thread_info tsk
>> +	mov	why, #0
>> +	b	ret_to_user_from_irq
>> + UNWIND(.fnend		)
>> +ENDPROC(__fiq_usr)
>> +
>>  /*
>>   * Register switch for ARMv3 and ARMv4 processors
>>   * r0 = previous task_struct, r1 = previous thread_info, r2 = next thread_info
>> @@ -1118,17 +1196,29 @@ vector_addrexcptn:
>>  	b	vector_addrexcptn
>>  
>>  /*=============================================================================
>> - * Undefined FIQs
>> + * FIQ "NMI" handler
>>   *-----------------------------------------------------------------------------
>> - * Enter in FIQ mode, spsr = ANY CPSR, lr = ANY PC
>> - * MUST PRESERVE SVC SPSR, but need to switch to SVC mode to show our msg.
>> - * Basically to switch modes, we *HAVE* to clobber one register...  brain
>> - * damage alert!  I don't think that we can execute any code in here in any
>> - * other mode than FIQ...  Ok you can switch to another mode, but you can't
>> - * get out of that mode without clobbering one register.
>> + * Handle a FIQ using the SVC stack allowing FIQ act like NMI on x86
>> + * systems.
>>   */
>> -vector_fiq:
>> -	subs	pc, lr, #4
>> +	vector_stub	fiq, FIQ_MODE, 4
>> +
>> +	.long	__fiq_usr			@  0  (USR_26 / USR_32)
>> +	.long	__fiq_svc			@  1  (FIQ_26 / FIQ_32)
>> +	.long	__fiq_svc			@  2  (IRQ_26 / IRQ_32)
>> +	.long	__fiq_svc			@  3  (SVC_26 / SVC_32)
>> +	.long	__fiq_svc			@  4
>> +	.long	__fiq_svc			@  5
>> +	.long	__fiq_svc			@  6
>> +	.long	__fiq_abt			@  7
>> +	.long	__fiq_svc			@  8
>> +	.long	__fiq_svc			@  9
>> +	.long	__fiq_svc			@  a
>> +	.long	__fiq_svc			@  b
>> +	.long	__fiq_svc			@  c
>> +	.long	__fiq_svc			@  d
>> +	.long	__fiq_svc			@  e
>> +	.long	__fiq_svc			@  f
>>  
>>  	.globl	vector_fiq_offset
>>  	.equ	vector_fiq_offset, vector_fiq
>> diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
>> index 84db893d..c031063 100644
>> --- a/arch/arm/kernel/setup.c
>> +++ b/arch/arm/kernel/setup.c
>> @@ -133,6 +133,7 @@ struct stack {
>>  	u32 irq[3];
>>  	u32 abt[3];
>>  	u32 und[3];
>> +	u32 fiq[3];
>>  } ____cacheline_aligned;
>>  
>>  #ifndef CONFIG_CPU_V7M
>> @@ -470,7 +471,10 @@ void notrace cpu_init(void)
>>  	"msr	cpsr_c, %5\n\t"
>>  	"add	r14, %0, %6\n\t"
>>  	"mov	sp, r14\n\t"
>> -	"msr	cpsr_c, %7"
>> +	"msr	cpsr_c, %7\n\t"
>> +	"add	r14, %0, %8\n\t"
>> +	"mov	sp, r14\n\t"
>> +	"msr	cpsr_c, %9"
>>  	    :
>>  	    : "r" (stk),
>>  	      PLC (PSR_F_BIT | PSR_I_BIT | IRQ_MODE),
>> @@ -479,6 +483,8 @@ void notrace cpu_init(void)
>>  	      "I" (offsetof(struct stack, abt[0])),
>>  	      PLC (PSR_F_BIT | PSR_I_BIT | UND_MODE),
>>  	      "I" (offsetof(struct stack, und[0])),
>> +	      PLC (PSR_F_BIT | PSR_I_BIT | FIQ_MODE),
>> +	      "I" (offsetof(struct stack, fiq[0])),
>>  	      PLC (PSR_F_BIT | PSR_I_BIT | SVC_MODE)
>>  	    : "r14");
>>  #endif
>> diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
>> index c8e4bb7..7912a9e 100644
>> --- a/arch/arm/kernel/traps.c
>> +++ b/arch/arm/kernel/traps.c
>> @@ -25,6 +25,7 @@
>>  #include <linux/delay.h>
>>  #include <linux/init.h>
>>  #include <linux/sched.h>
>> +#include <linux/irq.h>
>>  
>>  #include <linux/atomic.h>
>>  #include <asm/cacheflush.h>
>> @@ -460,10 +461,29 @@ die_sig:
>>  	arm_notify_die("Oops - undefined instruction", regs, &info, 0, 6);
>>  }
>>  
>> -asmlinkage void do_unexp_fiq (struct pt_regs *regs)
>> +/*
>> + * Handle FIQ similarly to NMI on x86 systems.
>> + *
>> + * The runtime environment for NMIs is extremely restrictive
>> + * (NMIs can pre-empt critical sections meaning almost all locking is
>> + * forbidden) meaning this default FIQ handling must only be used in
>> + * circumstances where non-maskability improves robustness, such as
>> + * watchdog or debug logic.
>> + *
>> + * This handler is not appropriate for general purpose use in drivers
>> + * platform code and can be overrideen using set_fiq_handler.
>> + */
>> +asmlinkage void __exception_irq_entry handle_fiq_as_nmi(struct pt_regs *regs)
>>  {
>> -	printk("Hmm.  Unexpected FIQ received, but trying to continue\n");
>> -	printk("You may have a hardware problem...\n");
>> +#ifdef CONFIG_FIQ
>> +	struct pt_regs *old_regs = set_irq_regs(regs);
>> +
>> +	nmi_enter();
>> +	/* nop for now */
>> +	nmi_exit();
>> +
>> +	set_irq_regs(old_regs);
>> +#endif
>>  }
>>  
>>  /*
>> -- 
>> 1.9.3
>>
>>


  reply	other threads:[~2014-09-05  9:03 UTC|newest]

Thread overview: 194+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1403174303-25456-1-git-send-email-daniel.thompson@linaro.org>
2014-06-24 15:18 ` [PATCH v6 0/4] arm: KGDB NMI/FIQ support Daniel Thompson
2014-06-24 15:18   ` [PATCH v6 1/4] arm: fiq: Add callbacks to manage FIQ routings Daniel Thompson
2014-06-24 15:44     ` Nicolas Pitre
2014-06-24 15:58       ` Daniel Thompson
2014-06-24 15:18   ` [PATCH v6 2/4] arm: fiq: Allow EOI to be communicated to the intc Daniel Thompson
2014-06-24 15:46     ` Nicolas Pitre
2014-06-24 15:18   ` [PATCH v6 3/4] ARM: Move some macros from entry-armv to entry-header Daniel Thompson
2014-06-24 15:53     ` Nicolas Pitre
2014-06-24 15:18   ` [PATCH v6 4/4] ARM: Add KGDB/KDB FIQ debugger generic code Daniel Thompson
2014-06-24 16:08     ` Russell King - ARM Linux
2014-06-26  9:54       ` Daniel Thompson
2014-06-30 13:54         ` Daniel Thompson
2014-06-24 16:22     ` Nicolas Pitre
2014-06-26 12:48       ` Daniel Thompson
2014-06-30  8:53   ` [PATCH v7 0/4] arm: KGDB NMI/FIQ support Daniel Thompson
2014-06-30  8:53     ` [PATCH v7 1/4] arm: fiq: Add callbacks to manage FIQ routings Daniel Thompson
2014-06-30  8:53     ` [PATCH v7 2/4] arm: fiq: Allow EOI to be communicated to the intc Daniel Thompson
2014-06-30  8:53     ` [PATCH v7 3/4] ARM: Move some macros from entry-armv to entry-header Daniel Thompson
2014-06-30  8:53     ` [PATCH v7 4/4] ARM: Add KGDB/KDB FIQ debugger generic code Daniel Thompson
2014-07-10  8:03     ` [PATCH v8 0/4] arm: KGDB NMI/FIQ support Daniel Thompson
2014-07-10  8:03       ` [PATCH v8 1/4] arm: fiq: Add callbacks to manage FIQ routings Daniel Thompson
2014-07-10  8:03       ` [PATCH v8 2/4] arm: fiq: Allow ACK and EOI to be passed to the intc Daniel Thompson
2014-07-10  8:03       ` [PATCH v8 3/4] ARM: Move some macros from entry-armv to entry-header Daniel Thompson
2014-07-10  8:03       ` [PATCH v8 4/4] ARM: Add KGDB/KDB FIQ debugger generic code Daniel Thompson
2014-08-13 21:45         ` Russell King - ARM Linux
2014-08-14 10:48           ` Daniel Thompson
2014-08-14 11:15             ` [RFC PATCH 0/3] arm: FIQ IPI support Daniel Thompson
2014-08-14 11:15               ` [RFC PATCH 1/3] arm: smp: Introduce a special IPI signalled using FIQ Daniel Thompson
2014-08-14 11:15               ` [RFC PATCH 2/3] arm: kgdb: Add support for IPI FIQ roundup Daniel Thompson
2014-08-14 11:15               ` [RFC PATCH 3/3] irqchip: gic: Add support for IPI FIQ Daniel Thompson
2014-08-14 12:36             ` [PATCH v8 4/4] ARM: Add KGDB/KDB FIQ debugger generic code Russell King - ARM Linux
2014-08-14 15:02               ` Daniel Thompson
2014-07-14 13:51       ` [PATCH v8 0/4] arm: KGDB NMI/FIQ support Harro Haan
2014-07-15  9:41         ` Daniel Thompson
2014-07-15 13:04           ` Harro Haan
2014-07-15 14:52             ` Daniel Thompson
2014-07-15 15:59               ` Harro Haan
2014-07-15 17:08                 ` Daniel Thompson
2014-07-16 17:15                   ` Harro Haan
2014-07-17  9:01                     ` Daniel Thompson
2014-07-15 18:45           ` Marek Vasut
2014-07-16 12:54             ` Daniel Thompson
2014-07-16 17:21               ` Harro Haan
2014-07-17  9:20                 ` Daniel Thompson
2014-08-18 13:40       ` [PATCH v9 00/16] " Daniel Thompson
2014-08-18 13:40         ` [PATCH v9 01/16] arm: fiq: Add callbacks to manage FIQ routings Daniel Thompson
2014-08-18 13:40         ` [PATCH v9 02/16] arm: fiq: Allow ACK and EOI to be passed to the intc Daniel Thompson
2014-08-18 13:40         ` [PATCH v9 03/16] arm: fiq: Replace default FIQ handler Daniel Thompson
2014-08-18 13:40         ` [PATCH v9 04/16] arm: smp: Introduce a special IPI signalled using FIQ Daniel Thompson
2014-08-18 13:40         ` [PATCH v9 05/16] arm: KGDB/KDB FIQ support Daniel Thompson
2014-08-19 16:45         ` [PATCH v10 00/19] arm: KGDB NMI/FIQ support Daniel Thompson
2014-08-19 16:45           ` [PATCH v10 01/19] arm: fiq: Add callbacks to manage FIQ routings Daniel Thompson
2014-08-19 16:45           ` [PATCH v10 02/19] arm: fiq: Allow ACK and EOI to be passed to the intc Daniel Thompson
2014-08-19 16:45           ` [PATCH v10 03/19] arm: fiq: Replace default FIQ handler Daniel Thompson
2014-08-19 17:37             ` Russell King - ARM Linux
2014-08-19 18:12               ` Daniel Thompson
2014-08-28 15:01                 ` Russell King - ARM Linux
2014-08-28 15:43                   ` Paul E. McKenney
2014-08-28 15:54                   ` Daniel Thompson
2014-08-28 16:15                     ` Paul E. McKenney
2014-09-02 11:03                       ` Daniel Thompson
2014-09-02 11:36                         ` Russell King - ARM Linux
2014-09-02 11:49                   ` Daniel Thompson
2014-09-02 14:23                     ` Paul E. McKenney
2014-09-02 16:42                     ` Russell King - ARM Linux
2014-09-03 10:21                       ` Daniel Thompson
2014-09-03 19:34                         ` Russell King - ARM Linux
2014-09-04  9:09                           ` Daniel Thompson
2014-09-04  9:45                             ` Russell King - ARM Linux
2014-09-04 10:04                               ` Daniel Thompson
2014-08-19 16:45           ` [PATCH v10 04/19] arm: smp: Introduce a special IPI signalled using FIQ Daniel Thompson
2014-08-19 16:45           ` [PATCH v10 05/19] arm: KGDB/KDB FIQ support Daniel Thompson
2014-08-19 16:45           ` [PATCH v10 06/19] irqchip: gic: Provide support for interrupt grouping Daniel Thompson
2014-08-19 16:45           ` [PATCH v10 07/19] irqchip: gic: Add support for FIQ management Daniel Thompson
2014-08-19 16:45           ` [PATCH v10 08/19] irqchip: gic: Remove spin locks from eoi_irq Daniel Thompson
2014-08-19 16:45           ` [PATCH v10 09/19] irqchip: gic: Add support for IPI FIQ Daniel Thompson
2014-08-19 16:46           ` [PATCH v10 10/19] irqchip: gic: Group 0 workaround Daniel Thompson
2014-08-19 16:46           ` [PATCH v10 11/19] irqchip: vic: Add support for FIQ management Daniel Thompson
2014-08-19 16:46           ` [PATCH v10 12/19] serial: kgdb_nmi: No CON_ENABLED by default Daniel Thompson
2014-08-19 16:46           ` [PATCH v10 13/19] serial: amba-pl011: Use container_of() to get uart_amba_port Daniel Thompson
2014-08-19 16:46           ` [PATCH v10 14/19] serial: amba-pl011: Move pl011_hwinit() Daniel Thompson
2014-08-19 16:46           ` [PATCH v10 15/19] serial: amba-pl011: Pass FIQ information to KGDB Daniel Thompson
2014-08-19 16:46           ` [PATCH v10 16/19] serial: asc: Add support for KGDB's FIQ/NMI mode Daniel Thompson
2014-08-19 16:46           ` [PATCH v10 17/19] serial: asc: Adopt readl_/writel_relaxed() Daniel Thompson
2014-08-19 16:46           ` [PATCH v10 18/19] serial: imx: clean up imx_poll_get_char() Daniel Thompson
2014-08-19 16:46           ` [PATCH v10 19/19] serial: imx: Add support for KGDB's FIQ/NMI mode Daniel Thompson
2014-09-02 13:00           ` [PATCH v11 00/19] arm: KGDB NMI/FIQ support Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 01/19] arm: fiq: Add callbacks to manage FIQ routings Daniel Thompson
2014-09-02 18:51               ` Russell King - ARM Linux
2014-09-03  0:03               ` Thomas Gleixner
2014-09-03  8:27                 ` Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 02/19] arm: fiq: Allow ACK and EOI to be passed to the intc Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 03/19] arm: fiq: Replace default FIQ handler Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 04/19] arm: smp: Introduce a special IPI signalled using FIQ Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 05/19] arm: KGDB/KDB FIQ support Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 06/19] irqchip: gic: Provide support for interrupt grouping Daniel Thompson
2014-09-02 19:33               ` Russell King - ARM Linux
2014-09-02 21:36                 ` Catalin Marinas
2014-09-03  9:44                   ` Daniel Thompson
2014-09-03  9:28                 ` Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 07/19] irqchip: gic: Add support for FIQ management Daniel Thompson
2014-09-02 19:36               ` Russell King - ARM Linux
2014-09-02 13:00             ` [PATCH v11 08/19] irqchip: gic: Remove spin locks from eoi_irq Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 09/19] irqchip: gic: Add support for IPI FIQ Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 10/19] irqchip: gic: Group 0 workaround Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 11/19] irqchip: vic: Add support for FIQ management Daniel Thompson
2014-09-02 19:40               ` Russell King - ARM Linux
2014-09-02 13:00             ` [PATCH v11 12/19] serial: kgdb_nmi: No CON_ENABLED by default Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 13/19] serial: amba-pl011: Use container_of() to get uart_amba_port Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 14/19] serial: amba-pl011: Move pl011_hwinit() Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 15/19] serial: amba-pl011: Pass FIQ information to KGDB Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 16/19] serial: asc: Add support for KGDB's FIQ/NMI mode Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 17/19] serial: asc: Adopt readl_/writel_relaxed() Daniel Thompson
2014-09-02 13:42               ` [STLinux Kernel] " Peter Griffin
2014-09-02 13:55               ` Maxime Coquelin
2014-09-02 13:00             ` [PATCH v11 18/19] serial: imx: clean up imx_poll_get_char() Daniel Thompson
2014-09-02 13:00             ` [PATCH v11 19/19] serial: imx: Add support for KGDB's FIQ/NMI mode Daniel Thompson
2014-09-02 23:02             ` [PATCH v11 00/19] arm: KGDB NMI/FIQ support Thomas Gleixner
2014-09-03  9:02               ` Daniel Thompson
2014-09-03 10:06                 ` Thomas Gleixner
2014-09-03 10:30                   ` Daniel Thompson
2014-09-04 16:03             ` [PATCH v1 0/6] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2014-09-04 16:03               ` [PATCH v1 1/6] arm: fiq: Replace default FIQ handler Daniel Thompson
2014-09-04 18:57                 ` Nicolas Pitre
2014-09-05  9:03                   ` Daniel Thompson [this message]
2014-09-05 18:04                     ` Nicolas Pitre
2014-09-08 13:22                       ` Daniel Thompson
2014-09-04 16:03               ` [PATCH v1 2/6] arm: smp: Introduce a non-maskable IPI Daniel Thompson
2014-09-04 16:03               ` [PATCH v1 3/6] arm64: Introduce dummy version of asm/fiq.h Daniel Thompson
2014-09-04 16:03               ` [PATCH v1 4/6] irqchip: gic: Add support for IPI FIQ Daniel Thompson
2014-09-04 16:03               ` [PATCH v1 5/6] irqchip: gic: Group 0 workaround Daniel Thompson
2014-09-04 16:03               ` [PATCH v1 6/6] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2014-09-05 15:33               ` [PATCH v2 0/5] " Daniel Thompson
2014-09-05 15:33                 ` [PATCH v2 1/5] ARM: remove unused do_unexp_fiq() function Daniel Thompson
2014-09-05 15:33                 ` [PATCH v2 2/5] ARM: add basic support for on-demand backtrace of other CPUs Daniel Thompson
2014-09-05 15:33                 ` [PATCH v2 3/5] arm: fiq: Replace default FIQ handler Daniel Thompson
2014-09-05 15:33                 ` [PATCH v2 4/5] arm64: Introduce dummy version of asm/fiq.h Daniel Thompson
2014-09-05 16:50                   ` Catalin Marinas
2014-09-08 11:03                     ` Daniel Thompson
2014-09-05 15:33                 ` [PATCH v2 5/5] irqchip: gic: Add support for IPI FIQ Daniel Thompson
2014-09-08 15:28                 ` [PATCH v3 0/5] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2014-09-08 15:28                   ` [PATCH v3 1/5] ARM: remove unused do_unexp_fiq() function Daniel Thompson
2014-09-08 15:28                   ` [PATCH v3 2/5] ARM: add basic support for on-demand backtrace of other CPUs Daniel Thompson
2014-09-08 15:28                   ` [PATCH v3 3/5] arm: fiq: Replace default FIQ handler Daniel Thompson
2014-09-08 15:49                     ` Nicolas Pitre
2014-09-08 15:57                       ` Daniel Thompson
2014-09-08 15:28                   ` [PATCH v3 4/5] arm64: Introduce dummy version of asm/fiq.h Daniel Thompson
2014-09-08 15:28                   ` [PATCH v3 5/5] irqchip: gic: Add support for IPI FIQ Daniel Thompson
2014-09-08 16:23                     ` Russell King - ARM Linux
2014-09-09  8:24                       ` Daniel Thompson
2014-09-14 11:53                         ` Daniel Thompson
2014-09-08 16:24                   ` [PATCH v3 0/5] arm: Implement arch_trigger_all_cpu_backtrace Russell King - ARM Linux
2014-09-09  8:26                     ` Daniel Thompson
2014-09-09 14:15                   ` [PATCH v4 0/6] " Daniel Thompson
2014-09-09 14:15                     ` [PATCH v4 1/6] ARM: remove unused do_unexp_fiq() function Daniel Thompson
2014-09-09 14:15                     ` [PATCH v4 2/6] arm: fiq: Replace default FIQ handler Daniel Thompson
2014-09-09 14:15                     ` [PATCH v4 3/6] arm64: Introduce dummy version of asm/fiq.h Daniel Thompson
2014-09-09 14:15                     ` [PATCH v4 4/6] irqchip: gic: Add support for IPI FIQ Daniel Thompson
2014-09-09 14:15                     ` [PATCH v4 5/6] ARM: add basic support for on-demand backtrace of other CPUs Daniel Thompson
2014-09-09 14:15                     ` [PATCH v4 6/6] arm: smp: Handle ipi_cpu_backtrace() using FIQ (if available) Daniel Thompson
2014-09-11 11:31                     ` [PATCH 3.17-rc4 v5 0/6] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2014-09-11 11:31                       ` [PATCH 3.17-rc4 v5 1/6] ARM: remove unused do_unexp_fiq() function Daniel Thompson
2014-09-11 11:31                       ` [PATCH 3.17-rc4 v5 2/6] arm: fiq: Replace default FIQ handler Daniel Thompson
2014-09-12 17:03                         ` Russell King - ARM Linux
2014-09-12 17:07                           ` Russell King - ARM Linux
2014-09-13 12:01                           ` Daniel Thompson
2014-09-12 17:08                         ` Russell King - ARM Linux
2014-09-12 17:14                         ` Russell King - ARM Linux
2014-09-12 17:19                           ` Russell King - ARM Linux
2014-09-12 17:23                             ` Russell King - ARM Linux
2014-09-14  6:36                               ` Daniel Thompson
2014-09-14  8:45                                 ` Russell King - ARM Linux
2014-09-14 11:27                               ` Daniel Thompson
2014-09-13 12:03                           ` Daniel Thompson
2014-09-11 11:31                       ` [PATCH 3.17-rc4 v5 3/6] arm64: Introduce dummy version of asm/fiq.h Daniel Thompson
2014-09-11 11:31                       ` [PATCH 3.17-rc4 v5 4/6] irqchip: gic: Add support for IPI FIQ Daniel Thompson
2014-09-11 11:31                       ` [PATCH 3.17-rc4 v5 5/6] ARM: add basic support for on-demand backtrace of other CPUs Daniel Thompson
2014-09-11 11:31                       ` [PATCH 3.17-rc4 v5 6/6] arm: smp: Handle ipi_cpu_backtrace() using FIQ (if available) Daniel Thompson
2014-08-18 14:12       ` [PATCH v9 06/16] irqchip: gic: Provide support for interrupt grouping Daniel Thompson
2014-08-18 14:12       ` [PATCH v9 07/16] irqchip: gic: Add support for FIQ management Daniel Thompson
2014-08-18 14:12       ` [PATCH v9 08/16] irqchip: gic: Remove spin locks from eoi_irq Daniel Thompson
2014-08-18 14:12       ` [PATCH v9 09/16] irqchip: gic: Add support for IPI FIQ Daniel Thompson
2014-08-18 14:12       ` [PATCH v9 10/16] irqchip: gic: Group 0 workaround Daniel Thompson
2014-08-18 14:12       ` [PATCH v9 11/16] irqchip: vic: Add support for FIQ management Daniel Thompson
2014-08-18 14:28       ` [PATCH v9 12/16] serial: amba-pl011: Pass FIQ information to KGDB Daniel Thompson
2014-08-18 18:30         ` Peter Hurley
2014-08-19  9:08           ` Daniel Thompson
2014-08-19 11:58             ` Peter Hurley
2014-08-19 12:51               ` Daniel Thompson
2014-08-18 14:28       ` [PATCH v9 13/16] serial: asc: Add support for KGDB's FIQ/NMI mode Daniel Thompson
2014-08-18 14:28       ` [PATCH v9 14/16] serial: asc: Adopt readl_/writel_relaxed() Daniel Thompson
2014-08-18 14:28       ` [PATCH v9 15/16] serial: imx: clean up imx_poll_get_char() Daniel Thompson
2014-08-18 14:28       ` [PATCH v9 16/16] serial: imx: Add support for KGDB's FIQ/NMI mode Daniel Thompson
2014-08-18 17:32         ` Dirk Behme

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54097C6B.7040805@linaro.org \
    --to=daniel.thompson@linaro.org \
    --cc=catalin.marinas@arm.com \
    --cc=john.stultz@linaro.org \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=nicolas.pitre@linaro.org \
    --cc=patches@linaro.org \
    --cc=sumit.semwal@linaro.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).