Subject: "Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM: save and reset the address limit when entering an exception")

From: [email-masked] (Guenter Roeck)
Date: Wed, 3 Aug 2016 08:07:02 -0700

On 08/03/2016 01:38 AM, Russell King - ARM Linux wrote:
> On Tue, Aug 02, 2016 at 07:51:45PM -0700, Guenter Roeck wrote:
>> Hi,
>>
>> I see the following crash when running a qemu arm 'kzm' runtime test with
>> the current mainline.
>> ...
>> Failed to create /dev/root: -14
>>
>> [ followed by panic ]
>>
>> A complete log file is at [1].
>
> I think it's because of those undefined instructions you're hitting
> with the hw-breakpoint code... can you try the patch below please?
>
>   arch/arm/kernel/entry-armv.S | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
> index bc5f50799d75..9f157e7c51e7 100644
> --- a/arch/arm/kernel/entry-armv.S
> +++ b/arch/arm/kernel/entry-armv.S
> @@ -295,6 +295,7 @@ __und_svc_fault:
>   	bl	__und_fault
>
>   __und_svc_finish:
> +	get_thread_info tsk
>   	ldr	r5, [sp, #S_PSR]		@ Get SVC cpsr
>   	svc_exit r5				@ return from exception
>    UNWIND(.fnend		)
>

Yes, that fixes the problem.

Assuming you'll create a patch:

Tested-by: Guenter Roeck <[email-masked]>

Does that need to be addressed in qemu, or is it a Linux bug ?

Thanks,
Guenter