summaryrefslogtreecommitdiffstats
path: root/arch/arc/kernel/arcksyms.c
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2016-08-16 18:27:07 -0700
committerVineet Gupta <vgupta@synopsys.com>2016-08-19 11:04:57 -0700
commit1c3c909303924d30145601f47b6c058fdd2cbc2e (patch)
treea34653d37498a5966e2c0d65b20a0e181a864af5 /arch/arc/kernel/arcksyms.c
parentd77976c414ed7f521b9c79b2a9dde0147a3cf754 (diff)
ARC: mm: fix build breakage with STRICT_MM_TYPECHECKS
| CC mm/memory.o | In file included from ../mm/memory.c:53:0: | ../include/linux/pfn_t.h: In function ‘pfn_t_pte’: | ../include/linux/pfn_t.h:78:2: error: conversion to non-scalar type requested | return pfn_pte(pfn_t_to_pfn(pfn), pgprot); With STRICT_MM_TYPECHECKS pte_t is a struct and the offending code forces a cast which ends up shifting a struct and hence the gcc warning. Note that in recent past some of the arches (aarch64, s390) made STRICT_MM_TYPECHECKS default, but we don't for ARC as this leads to slightly worse generated code, given ARC ABI definition of returning structs (which pte_t would become) Quoting from ARC ABI... "Results of type struct are returned in a caller-supplied temporary variable whose address is passed in r0. For such functions, the arguments are shifted so that they are passed in r1 and up." So - struct to be returned would be allocated on stack requiring extra code at call sites - callee updates stack memory to facilitate the return (vs. simple MOV into return reg r0) Hence STRICT_MM_TYPECHECKS is not enabled by default for ARC Cc: <stable@vger.kernel.org> #4.4+ Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/kernel/arcksyms.c')
0 files changed, 0 insertions, 0 deletions