From mboxrd@z Thu Jan 1 00:00:00 1970 From: jamie.iles@oracle.com (Jamie Iles) Date: Thu, 9 Nov 2017 12:14:40 +0000 Subject: [PATCH] arm64/debug: don't duplicate filenames. Message-ID: <20171109121440.6872-1-jamie.iles@oracle.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Rather than explicitly pushing the filename into .rodata.str, use a compiler generated string literal and use the address of that as an input constraint to the inline assembly. This allows the compiler to emit only one version of the string without relying on the linker to deduplicate. Cc: Dave P Martin Cc: Catalin Marinas Cc: Will Deacon Signed-off-by: Jamie Iles --- arch/arm64/include/asm/bug.h | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/arch/arm64/include/asm/bug.h b/arch/arm64/include/asm/bug.h index a02a57186f56..a7b05625ef63 100644 --- a/arch/arm64/include/asm/bug.h +++ b/arch/arm64/include/asm/bug.h @@ -23,12 +23,8 @@ #ifdef CONFIG_DEBUG_BUGVERBOSE #define _BUGVERBOSE_LOCATION(file, line) __BUGVERBOSE_LOCATION(file, line) #define __BUGVERBOSE_LOCATION(file, line) \ - ".pushsection .rodata.str,\"aMS\", at progbits,1\n" \ - "2: .string \"" file "\"\n\t" \ - ".popsection\n\t" \ - \ - ".long 2b - 0b\n\t" \ - ".short " #line "\n\t" + ".long %[file] - 0b\n\t" \ + ".short %[line]\n\t" #else #define _BUGVERBOSE_LOCATION(file, line) #endif @@ -50,7 +46,9 @@ _BUGVERBOSE_LOCATION(__FILE__, __LINE__) \ #define __BUG_FLAGS(flags) \ asm volatile ( \ __BUG_ENTRY(flags) \ - "brk %[imm]" :: [imm] "i" (BUG_BRK_IMM) \ + "brk %[imm]" :: [imm] "i" (BUG_BRK_IMM),\ + [line] "i" (__LINE__), \ + [file] "i" (__FILE__) \ ); -- 2.15.0