diff mbox series

arm64/efi: Make strrchr() available to the EFI namespace

Message ID 20180301162803.5490-1-robh@kernel.org
State Accepted
Commit fdfb69a72522e97f9105a6d39a5be0a465951ed8
Headers show
Series arm64/efi: Make strrchr() available to the EFI namespace | expand

Commit Message

Rob Herring March 1, 2018, 4:28 p.m. UTC
libfdt gained a new dependency on strrchr, so make it available to the
EFI namespace before we update libfdt.

Thanks to Ard for providing this fix.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

Signed-off-by: Rob Herring <robh@kernel.org>

---
Please ack. This is a dependency on a dtc upstream sync.

 arch/arm64/kernel/image.h | 1 +
 arch/arm64/lib/strrchr.S  | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

-- 
2.14.1

Comments

Will Deacon March 1, 2018, 5:08 p.m. UTC | #1
On Thu, Mar 01, 2018 at 10:28:03AM -0600, Rob Herring wrote:
> libfdt gained a new dependency on strrchr, so make it available to the

> EFI namespace before we update libfdt.

> 

> Thanks to Ard for providing this fix.

> 

> Cc: Catalin Marinas <catalin.marinas@arm.com>

> Cc: Will Deacon <will.deacon@arm.com>

> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> Signed-off-by: Rob Herring <robh@kernel.org>

> ---

> Please ack. This is a dependency on a dtc upstream sync.


Acked-by: Will Deacon <will.deacon@arm.com>


As an aside, I noticed that this __efistub prefixing is also being
applied to mapping symbols, so we get crazy stuff like __efistub_$x. I
didn't get round to working out whether that's going to be problematic,
but maybe it's all fine...

Will

> 

>  arch/arm64/kernel/image.h | 1 +

>  arch/arm64/lib/strrchr.S  | 2 +-

>  2 files changed, 2 insertions(+), 1 deletion(-)

> 

> diff --git a/arch/arm64/kernel/image.h b/arch/arm64/kernel/image.h

> index c7fcb232fe47..a820ed07fb80 100644

> --- a/arch/arm64/kernel/image.h

> +++ b/arch/arm64/kernel/image.h

> @@ -103,6 +103,7 @@ __efistub_strlen		= KALLSYMS_HIDE(__pi_strlen);

>  __efistub_strnlen		= KALLSYMS_HIDE(__pi_strnlen);

>  __efistub_strcmp		= KALLSYMS_HIDE(__pi_strcmp);

>  __efistub_strncmp		= KALLSYMS_HIDE(__pi_strncmp);

> +__efistub_strrchr		= KALLSYMS_HIDE(__pi_strrchr);

>  __efistub___flush_dcache_area	= KALLSYMS_HIDE(__pi___flush_dcache_area);

>  

>  #ifdef CONFIG_KASAN

> diff --git a/arch/arm64/lib/strrchr.S b/arch/arm64/lib/strrchr.S

> index 61eabd9a289a..f8e2784d5752 100644

> --- a/arch/arm64/lib/strrchr.S

> +++ b/arch/arm64/lib/strrchr.S

> @@ -40,4 +40,4 @@ ENTRY(strrchr)

>  	b	1b

>  2:	mov	x0, x3

>  	ret

> -ENDPROC(strrchr)

> +ENDPIPROC(strrchr)

> -- 

> 2.14.1

>
Ard Biesheuvel March 1, 2018, 5:10 p.m. UTC | #2
On 1 March 2018 at 17:08, Will Deacon <will.deacon@arm.com> wrote:
> On Thu, Mar 01, 2018 at 10:28:03AM -0600, Rob Herring wrote:

>> libfdt gained a new dependency on strrchr, so make it available to the

>> EFI namespace before we update libfdt.

>>

>> Thanks to Ard for providing this fix.

>>

>> Cc: Catalin Marinas <catalin.marinas@arm.com>

>> Cc: Will Deacon <will.deacon@arm.com>

>> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>> Signed-off-by: Rob Herring <robh@kernel.org>

>> ---

>> Please ack. This is a dependency on a dtc upstream sync.

>

> Acked-by: Will Deacon <will.deacon@arm.com>

>

> As an aside, I noticed that this __efistub prefixing is also being

> applied to mapping symbols, so we get crazy stuff like __efistub_$x. I

> didn't get round to working out whether that's going to be problematic,

> but maybe it's all fine...

>


Ugh. Those mapping symbols.

We can filter them explicitly in scripts/kallsyms, I guess, or even
better, get rid of all __efistub_ symbols entirely (since they are
either aliases or part of __init code)


>>

>>  arch/arm64/kernel/image.h | 1 +

>>  arch/arm64/lib/strrchr.S  | 2 +-

>>  2 files changed, 2 insertions(+), 1 deletion(-)

>>

>> diff --git a/arch/arm64/kernel/image.h b/arch/arm64/kernel/image.h

>> index c7fcb232fe47..a820ed07fb80 100644

>> --- a/arch/arm64/kernel/image.h

>> +++ b/arch/arm64/kernel/image.h

>> @@ -103,6 +103,7 @@ __efistub_strlen          = KALLSYMS_HIDE(__pi_strlen);

>>  __efistub_strnlen            = KALLSYMS_HIDE(__pi_strnlen);

>>  __efistub_strcmp             = KALLSYMS_HIDE(__pi_strcmp);

>>  __efistub_strncmp            = KALLSYMS_HIDE(__pi_strncmp);

>> +__efistub_strrchr            = KALLSYMS_HIDE(__pi_strrchr);

>>  __efistub___flush_dcache_area        = KALLSYMS_HIDE(__pi___flush_dcache_area);

>>

>>  #ifdef CONFIG_KASAN

>> diff --git a/arch/arm64/lib/strrchr.S b/arch/arm64/lib/strrchr.S

>> index 61eabd9a289a..f8e2784d5752 100644

>> --- a/arch/arm64/lib/strrchr.S

>> +++ b/arch/arm64/lib/strrchr.S

>> @@ -40,4 +40,4 @@ ENTRY(strrchr)

>>       b       1b

>>  2:   mov     x0, x3

>>       ret

>> -ENDPROC(strrchr)

>> +ENDPIPROC(strrchr)

>> --

>> 2.14.1

>>
Will Deacon March 1, 2018, 5:13 p.m. UTC | #3
On Thu, Mar 01, 2018 at 05:10:38PM +0000, Ard Biesheuvel wrote:
> On 1 March 2018 at 17:08, Will Deacon <will.deacon@arm.com> wrote:

> > On Thu, Mar 01, 2018 at 10:28:03AM -0600, Rob Herring wrote:

> >> libfdt gained a new dependency on strrchr, so make it available to the

> >> EFI namespace before we update libfdt.

> >>

> >> Thanks to Ard for providing this fix.

> >>

> >> Cc: Catalin Marinas <catalin.marinas@arm.com>

> >> Cc: Will Deacon <will.deacon@arm.com>

> >> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> >> Signed-off-by: Rob Herring <robh@kernel.org>

> >> ---

> >> Please ack. This is a dependency on a dtc upstream sync.

> >

> > Acked-by: Will Deacon <will.deacon@arm.com>

> >

> > As an aside, I noticed that this __efistub prefixing is also being

> > applied to mapping symbols, so we get crazy stuff like __efistub_$x. I

> > didn't get round to working out whether that's going to be problematic,

> > but maybe it's all fine...

> >

> 

> Ugh. Those mapping symbols.

> 

> We can filter them explicitly in scripts/kallsyms, I guess, or even

> better, get rid of all __efistub_ symbols entirely (since they are

> either aliases or part of __init code)


Yeah, I started hooking into frob_arch_sections, but I didn't have my ELF
hat on so I set it aside for the time being. There were some other weird
symbols that ended up in modules, some of them with unprintable characters
due to gas generating weird local labels too (I think in BUG()).

Will
Catalin Marinas March 1, 2018, 6:37 p.m. UTC | #4
On Thu, Mar 01, 2018 at 10:28:03AM -0600, Rob Herring wrote:
> libfdt gained a new dependency on strrchr, so make it available to the

> EFI namespace before we update libfdt.

> 

> Thanks to Ard for providing this fix.

> 

> Cc: Catalin Marinas <catalin.marinas@arm.com>

> Cc: Will Deacon <will.deacon@arm.com>

> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> Signed-off-by: Rob Herring <robh@kernel.org>

> ---

> Please ack. This is a dependency on a dtc upstream sync.


So I assume you'll merge this patch via the DT tree and we don't need to
pick it up through the arm64 tree.

-- 
Catalin
diff mbox series

Patch

diff --git a/arch/arm64/kernel/image.h b/arch/arm64/kernel/image.h
index c7fcb232fe47..a820ed07fb80 100644
--- a/arch/arm64/kernel/image.h
+++ b/arch/arm64/kernel/image.h
@@ -103,6 +103,7 @@  __efistub_strlen		= KALLSYMS_HIDE(__pi_strlen);
 __efistub_strnlen		= KALLSYMS_HIDE(__pi_strnlen);
 __efistub_strcmp		= KALLSYMS_HIDE(__pi_strcmp);
 __efistub_strncmp		= KALLSYMS_HIDE(__pi_strncmp);
+__efistub_strrchr		= KALLSYMS_HIDE(__pi_strrchr);
 __efistub___flush_dcache_area	= KALLSYMS_HIDE(__pi___flush_dcache_area);
 
 #ifdef CONFIG_KASAN
diff --git a/arch/arm64/lib/strrchr.S b/arch/arm64/lib/strrchr.S
index 61eabd9a289a..f8e2784d5752 100644
--- a/arch/arm64/lib/strrchr.S
+++ b/arch/arm64/lib/strrchr.S
@@ -40,4 +40,4 @@  ENTRY(strrchr)
 	b	1b
 2:	mov	x0, x3
 	ret
-ENDPROC(strrchr)
+ENDPIPROC(strrchr)