Merge "arm: gicv3: Fix compiler dependent behavior" into integration
This commit is contained in:
commit
4e0d14f218
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2016-2019, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -79,13 +79,11 @@ void zeromem(void *mem, u_register_t length);
|
|||
* which is constant and does not depend on the execute address of the binary.
|
||||
*/
|
||||
#define DEFINE_LOAD_SYM_ADDR(_name) \
|
||||
static inline u_register_t load_addr_## _name(void) \
|
||||
{ \
|
||||
u_register_t v; \
|
||||
/* Create a void reference to silence compiler */ \
|
||||
(void) _name; \
|
||||
__asm__ volatile ("ldr %0, =" #_name : "=r" (v)); \
|
||||
return v; \
|
||||
static inline u_register_t load_addr_## _name(void) \
|
||||
{ \
|
||||
u_register_t v; \
|
||||
__asm__ volatile ("ldr %0, =" #_name : "=r" (v) : "X" (#_name));\
|
||||
return v; \
|
||||
}
|
||||
|
||||
/* Helper to invoke the function defined by DEFINE_LOAD_SYM_ADDR() */
|
||||
|
|
|
@ -44,12 +44,11 @@ static const interrupt_prop_t arm_interrupt_props[] = {
|
|||
|
||||
/*
|
||||
* We save and restore the GICv3 context on system suspend. Allocate the
|
||||
* data in the designated EL3 Secure carve-out memory. The `volatile`
|
||||
* is used to prevent the compiler from removing the gicv3 contexts even
|
||||
* though the DEFINE_LOAD_SYM_ADDR creates a dummy reference to it.
|
||||
* data in the designated EL3 Secure carve-out memory. The `used` attribute
|
||||
* is used to prevent the compiler from removing the gicv3 contexts.
|
||||
*/
|
||||
static volatile gicv3_redist_ctx_t rdist_ctx __section("arm_el3_tzc_dram");
|
||||
static volatile gicv3_dist_ctx_t dist_ctx __section("arm_el3_tzc_dram");
|
||||
static gicv3_redist_ctx_t rdist_ctx __section("arm_el3_tzc_dram") __used;
|
||||
static gicv3_dist_ctx_t dist_ctx __section("arm_el3_tzc_dram") __used;
|
||||
|
||||
/* Define accessor function to get reference to the GICv3 context */
|
||||
DEFINE_LOAD_SYM_ADDR(rdist_ctx)
|
||||
|
|
Loading…
Reference in New Issue