Subject: [PATCH v7 7/9] ARM: add vdso user-space code

From: [email-masked] (Nathan Lynch)
Date: Tue, 1 Jul 2014 08:34:11 -0500

On 07/01/2014 04:00 AM, Will Deacon wrote:
> On Mon, Jun 30, 2014 at 10:29:28PM +0100, Andy Lutomirski wrote:
>> On 06/22/2014 08:11 PM, Nathan Lynch wrote:
>>> diff --git a/arch/arm/kernel/vdso/datapage.S b/arch/arm/kernel/vdso/datapage.S
>>> new file mode 100644
>>> index 000000000000..fbf36d75da06
>>> --- /dev/null
>>> +++ b/arch/arm/kernel/vdso/datapage.S
>>> @@ -0,0 +1,15 @@
>>> +#include <linux/linkage.h>
>>> +#include <asm/asm-offsets.h>
>>> +
>>> +	.align 2
>>> +.L_vdso_data_ptr:
>>> +	.long	_start - . - VDSO_DATA_SIZE
>>> +
>>> +ENTRY(__get_datapage)
>>> +	.cfi_startproc
>>> +	adr	r0, .L_vdso_data_ptr
>>> +	ldr	r1, [r0]
>>> +	add	r0, r0, r1
>>> +	bx	lr
>>> +	.cfi_endproc
>>> +ENDPROC(__get_datapage)
>>
>> Can you translate this into English for the non-ARM-speakers here?
> 
> Also, I'm not sure .cfi directives are the right things to use for AArch32.
> ARM has special .fnstart, .fnend, .movsp diretives for its own unwind
> format.
> 
> Maybe GDB works with both -- have you tried unwinding out of this with
> anything?

Not since it stopped crashing, which was months ago :-)

I think it worked with GDB 7.5 at least.

I'll revisit this.