Re: [PATCH v6 2/2] ARM hibernation / suspend-to-disk

From: Stephen Boyd
Date: Thu Feb 27 2014 - 21:20:00 EST


On 02/27/14 17:47, Russ Dill wrote:
> On 02/27/2014 04:09 PM, Stephen Boyd wrote:
>> On 02/27/14 15:57, Sebastian Capella wrote:
>>> diff --git a/arch/arm/include/asm/memory.h
>>> b/arch/arm/include/asm/memory.h index 8756e4b..1079ea8 100644 ---
>>> a/arch/arm/include/asm/memory.h +++
>>> b/arch/arm/include/asm/memory.h @@ -291,6 +291,7 @@ static inline
>>> void *phys_to_virt(phys_addr_t x) */ #define __pa(x)
>>> __virt_to_phys((unsigned long)(x)) #define __va(x) ((void
>>> *)__phys_to_virt((phys_addr_t)(x))) +#define __pa_symbol(x)
>>> __pa(RELOC_HIDE((unsigned long)(x), 0))
>> Just curious, is there a reason for the RELOC_HIDE() here? Or
>> __pa_symbol() for that matter? It looks like only x86 uses this on
>> the __nosave_{begin,end} symbol. Maybe it's copy-pasta?
> From my understanding this needs to stick around so long as gcc 3.x is
> supported (did it get dropped yet?) on ARM Linux since it doesn't
> support -fno-strict-overflow.

I don't think it's been dropped yet but I wonder if anyone has tried
recent kernels with such a compiler?

Would the usage of &__pv_table_begin in arch/arm/mm/mmu.c also need the
same treatment? Or the tagtable loop in atags_parse.c? Do the other
architectures also need to be fixed? That link Sebastian points to says
that ppc originally needed it but pfn_is_nosave() on ppc doesn't use
RELOC_HIDE anywhere in their __pa() macro from what I can tell.

--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/