Subject: [RFC v2 PATCH 11/23] ARM: sleep: allow it to be build for R-class

From: [email-masked] (Vladimir Murzin)
Date: Wed, 30 Nov 2016 09:54:21 +0000

On 29/11/16 17:11, Russell King - ARM Linux wrote:
> On Tue, Nov 29, 2016 at 12:39:53PM +0000, Vladimir Murzin wrote:
>> Dependency on MMU is quite strict and prevent R-class from being built -
>> relax this condition and guard against M-class only
> 
> I thought I'd already commented on some of this change, but it seems
> not.
> 
>> diff --git a/arch/arm/kernel/sleep.S b/arch/arm/kernel/sleep.S
>> index 0f6c100..0e7fddf 100644
>> --- a/arch/arm/kernel/sleep.S
>> +++ b/arch/arm/kernel/sleep.S
>> @@ -119,14 +119,12 @@ ENDPROC(cpu_resume_after_mmu)
>>  	.text
>>  	.align
>>  
>> -#ifdef CONFIG_MMU
>>  	.arm
>>  ENTRY(cpu_resume_arm)
>>   THUMB(	badr	r9, 1f		)	@ Kernel is entered in ARM.
>>   THUMB(	bx	r9		)	@ If this is a Thumb-2 kernel,
>>   THUMB(	.thumb			)	@ switch to Thumb now.
>>   THUMB(1:			)
>> -#endif
>>  
>>  ENTRY(cpu_resume)
>>  ARM_BE8(setend be)			@ ensure we are in BE mode
>> @@ -160,9 +158,7 @@ THUMB(	mov	sp, r2			)
>>  THUMB(	bx	r3			)
>>  ENDPROC(cpu_resume)
>>  
>> -#ifdef CONFIG_MMU
>>  ENDPROC(cpu_resume_arm)
>> -#endif
> 
> These ifdefs were introduced to fix EFM32.  The commit description needs
> to state why it's safe to remove them now (presumably because of the
> dependency on !CPU_V7M).  However, it also needs to explain why it's
> not going to cause a regression for EFM32 - EFM32 _was_ capable of
> building this code.
> 

After looking at 2678bb9f ("ARM: fix EFM32 build breakage caused by
cpu_resume_arm") I think the right fix should be based on CONFIG_CPU_THUMBONLY
rather than disallowing this code to be build for CPU_V7M. 

Indeed, I've just tried that it it works fine, so I'll update the patch to
reflect that.

Thanks for your valuable comment!

Cheers
Vladimir