diff mbox

ARM: Make pgtbl macro more robust

Message ID 1389015593-31716-1-git-send-email-cov@codeaurora.org (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Christopher Covington Jan. 6, 2014, 1:39 p.m. UTC
The pgtbl macro couldn't handle the specific
(TEXT_OFFSET - PG_DIR_SIZE) value that the combination of
MSM platforms and LPAE created:

head.S:163: Error: invalid constant (203000) after fixup

Regardless of whether this combination of configuration options
will work on currently support platforms at run time, make it
at least assemble properly.

Signed-off-by: Christopher Covington <cov@codeaurora.org>
---
 arch/arm/kernel/head.S | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Stephen Boyd Jan. 17, 2014, 6:50 p.m. UTC | #1
On 01/06, Christopher Covington wrote:
> The pgtbl macro couldn't handle the specific
> (TEXT_OFFSET - PG_DIR_SIZE) value that the combination of
> MSM platforms and LPAE created:
> 
> head.S:163: Error: invalid constant (203000) after fixup
> 
> Regardless of whether this combination of configuration options
> will work on currently support platforms at run time, make it
> at least assemble properly.
> 
> Signed-off-by: Christopher Covington <cov@codeaurora.org>

Looks good to me.

Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>

I think you can put it in the patch tracker. Russell?

> ---
>  arch/arm/kernel/head.S | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
> index 9cf6063..af30cac 100644
> --- a/arch/arm/kernel/head.S
> +++ b/arch/arm/kernel/head.S
> @@ -52,7 +52,8 @@
>  	.equ	swapper_pg_dir, KERNEL_RAM_VADDR - PG_DIR_SIZE
>  
>  	.macro	pgtbl, rd, phys
> -	add	\rd, \phys, #TEXT_OFFSET - PG_DIR_SIZE
> +	add	\rd, \phys, #TEXT_OFFSET
> +	sub	\rd, \rd, #PG_DIR_SIZE
>  	.endm
>  
>  /*
Christopher Covington Jan. 21, 2014, 3:28 p.m. UTC | #2
On 01/17/2014 01:50 PM, Stephen Boyd wrote:
> On 01/06, Christopher Covington wrote:
>> The pgtbl macro couldn't handle the specific
>> (TEXT_OFFSET - PG_DIR_SIZE) value that the combination of
>> MSM platforms and LPAE created:
>>
>> head.S:163: Error: invalid constant (203000) after fixup
>>
>> Regardless of whether this combination of configuration options
>> will work on currently support platforms at run time, make it
>> at least assemble properly.
>>
>> Signed-off-by: Christopher Covington <cov@codeaurora.org>
> 
> Looks good to me.
> 
> Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
> 
> I think you can put it in the patch tracker. Russell?

Added as

http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7947/1

Regards,
Christopher
diff mbox

Patch

diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index 9cf6063..af30cac 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -52,7 +52,8 @@ 
 	.equ	swapper_pg_dir, KERNEL_RAM_VADDR - PG_DIR_SIZE
 
 	.macro	pgtbl, rd, phys
-	add	\rd, \phys, #TEXT_OFFSET - PG_DIR_SIZE
+	add	\rd, \phys, #TEXT_OFFSET
+	sub	\rd, \rd, #PG_DIR_SIZE
 	.endm
 
 /*