From patchwork Thu Feb 18 17:05:07 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 102738 Delivered-To: patch@linaro.org Received: by 10.112.43.199 with SMTP id y7csp701393lbl; Thu, 18 Feb 2016 09:06:10 -0800 (PST) X-Received: by 10.66.159.136 with SMTP id xc8mr11652248pab.71.1455815170136; Thu, 18 Feb 2016 09:06:10 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a5si10421770pat.19.2016.02.18.09.06.09; Thu, 18 Feb 2016 09:06:10 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1946723AbcBRRGH (ORCPT + 30 others); Thu, 18 Feb 2016 12:06:07 -0500 Received: from mout.kundenserver.de ([217.72.192.75]:64333 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1946164AbcBRRGE (ORCPT ); Thu, 18 Feb 2016 12:06:04 -0500 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue104) with ESMTPA (Nemesis) id 0MIw6j-1aYMlD3WVV-002VGw; Thu, 18 Feb 2016 18:05:34 +0100 From: Arnd Bergmann To: Russell King Cc: linux-arm-kernel@lists.infradead.org, Arnd Bergmann , Ard Biesheuvel , Nicolas Pitre , Jon Medhurst , Marc Zyngier , linux-kernel@vger.kernel.org Subject: [PATCH 1/3] [RESEND] ARM: pass -march=armv7-a when building NEON files with clang Date: Thu, 18 Feb 2016 18:05:07 +0100 Message-Id: <1455815113-2562966-2-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1455815113-2562966-1-git-send-email-arnd@arndb.de> References: <1455815113-2562966-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:dAbiknHTN1q1H8z++IIjIaNMcN0r/4mhRVirvRh6QCkSXpZ3aQx e6kTV1teN7SghCbaXg8kNGsa6EN6UwWoV9Ni6C5BbsX4n2n4sszKDudPdGZCpEKHBJp5mCk 7zF7TRAU+U28O//YFhRpzkxBsvMk5e1Y4eadq9dGYhmHpPgY5WsVZS1PzJnxmbmdh+dJ2BH 73aKxLJk5M8pkzFrJC9Cg== X-UI-Out-Filterresults: notjunk:1; V01:K0:HOZ3EsnAvMU=:bArIJgbj36JixQYCmw3EAz vsqM6R2Uwk/cqFTGm7O182KHZEueaTKLjrRXd5H6dwioMUe6uU47tPrT/xH8GTVzIAJ9KiOn0 mSJbT5reDMKYm9rsCdbBE/c84qlNTmlOktqs9OKY6bKxoCbXgOqMlwSgdVfY5yHg6RPNEGQqg sM9gk+8TvBbmqvPFJWcv52iWto0fglQZ80cON6CPAdbV4VPOxO2jdXAYCE2x+9tuZ77oOIJGD Zw/txk27Q6DE3W37GrlbZQKWjfXOxH/XqoFC6Qg23ezdOTdF58pvOA5xSW/UP/dszec+yXUhq wT6+D9OZcZyT1wKVRbNVbYI77VLOmlbN4aJSBPHgiHjBlxODeaWIjV8rqyzTGNXLWA6/qDYoS U/yAVYftLfVzmtB/obb9DWkOdpNPi3tJUloNDe2XNS95wHUqc2f3mc2/O29tiA8STJqsh/0s2 9y8N4BSJAXdPhLK+ZR6hcr2cFa1yxSrKynymuLnm+tL8uRYei4X85I73RWdnSUV5Yzbb6i4U1 aocOOuzR6EAYPPOoa3QjQ/axxz5i2CINrpx+3pqdJj3kzTJdjPZEfikf+485c+47Q5Cvmkg7A A6lI1j5aWYhCVkFs8kZP7r4cNG7vVWUtmu3ZURUUEO0tyJKnblKiyMDuW0CjYel8U1uxhC9Gg dkrftl5uthhiQbhIbte/P88amLBuDnVtjiXMcTN6R0cw+5t0USQd7VR2cLcg+j2o9UIE= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org clang ignores the -mfpu=neon flag when building with -march=armv6: In file included from lib/raid6/neon1.c:27: clang/3.8.0/include/arm_neon.h:28:2: error: "NEON support not enabled" There is no real need to build the file with -march=armv6 in a multi-CPU enabled kernel, as nothing in here will ever get called on an ARMv6 CPU. Adding -march=armv7 doesn't hurt and can only improve the code quality. Signed-off-by: Arnd Bergmann --- arch/arm/lib/Makefile | 2 +- lib/raid6/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) -- 2.7.0 diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile index d8a780799506..a86c6c8e0648 100644 --- a/arch/arm/lib/Makefile +++ b/arch/arm/lib/Makefile @@ -35,7 +35,7 @@ $(obj)/csumpartialcopy.o: $(obj)/csumpartialcopygeneric.S $(obj)/csumpartialcopyuser.o: $(obj)/csumpartialcopygeneric.S ifeq ($(CONFIG_KERNEL_MODE_NEON),y) - NEON_FLAGS := -mfloat-abi=softfp -mfpu=neon + NEON_FLAGS := -mfloat-abi=softfp -mfpu=neon -march=armv7-a CFLAGS_xor-neon.o += $(NEON_FLAGS) obj-$(CONFIG_XOR_BLOCKS) += xor-neon.o endif diff --git a/lib/raid6/Makefile b/lib/raid6/Makefile index 3b10a48fa040..4ef3e800fb39 100644 --- a/lib/raid6/Makefile +++ b/lib/raid6/Makefile @@ -23,7 +23,7 @@ endif ifeq ($(CONFIG_KERNEL_MODE_NEON),y) NEON_FLAGS := -ffreestanding ifeq ($(ARCH),arm) -NEON_FLAGS += -mfloat-abi=softfp -mfpu=neon +NEON_FLAGS += -mfloat-abi=softfp -mfpu=neon -march=armv7-a endif ifeq ($(ARCH),arm64) CFLAGS_REMOVE_neon1.o += -mgeneral-regs-only From patchwork Thu Feb 18 17:05:08 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 102737 Delivered-To: patch@linaro.org Received: by 10.112.43.199 with SMTP id y7csp701548lbl; Thu, 18 Feb 2016 09:06:26 -0800 (PST) X-Received: by 10.66.139.137 with SMTP id qy9mr11611970pab.57.1455815186457; Thu, 18 Feb 2016 09:06:26 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 90si10397359pfp.195.2016.02.18.09.06.26; Thu, 18 Feb 2016 09:06:26 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1946953AbcBRRGY (ORCPT + 30 others); Thu, 18 Feb 2016 12:06:24 -0500 Received: from mout.kundenserver.de ([212.227.17.10]:54401 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1946428AbcBRRGW (ORCPT ); Thu, 18 Feb 2016 12:06:22 -0500 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue104) with ESMTPA (Nemesis) id 0Lw1TZ-1ZtPki1sg1-017pJq; Thu, 18 Feb 2016 18:05:53 +0100 From: Arnd Bergmann To: Russell King Cc: linux-arm-kernel@lists.infradead.org, Arnd Bergmann , Ard Biesheuvel , Nicolas Pitre , Jon Medhurst , Marc Zyngier , linux-kernel@vger.kernel.org Subject: [PATCH 2/3] [RESEND] ARM: fix copypage-*.c building with clang Date: Thu, 18 Feb 2016 18:05:08 +0100 Message-Id: <1455815113-2562966-3-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1455815113-2562966-1-git-send-email-arnd@arndb.de> References: <1455815113-2562966-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:t6RlpdPx5EkjKcyLGHIH4r1EPKLw0BjGO9b+7J1NliSEDdt1LHc j18eLFsQgIv8be3zZWVOJZV2cdq48l5CE9Kp4jQeSY7bch3ZqEm7vAzm3CKbxky2ZaUXPOX HT+TAnW7DyDM+tGQroKCYaugBeO12VjYAOi24WOtCY67CblaAGSutrUHMOkejC8D/daQJq/ mooShygr46Tc4mvrbBx9Q== X-UI-Out-Filterresults: notjunk:1; V01:K0:SkGyA2xQgic=:mZ1Rgju+tjGFzunSL4uch3 5g6okddsyf11bMnuIx/XmLPaiQSccopLe/vvK4k1U1XyyCGB0Dg83Gtay9uK76k4MoY62L0kt 9ty5GmLDcpmKPo+qrfBVKukpKabMyttV+UC7wP/8j7XtQdMV+if1wnl1NCz9+h/sJLlOMqqni Eq0DLXcEgBZsXKE+LMvyylB8ZmvXB17d1UjePfRDkMwd9ioJZmuAlZoom29InySTfaBwdlHgD pPX8ntyzFqfcRQGlZqWu7AloOxN2zjzQyrEItcru/4DgYivafM635KTNnVvAS9oYa02olatCa HGQiWAOj5SBmr9nWeimsvhwqVVkIzPKexzD45wzVghGkyapyDaXCAXmnsBC0K9LvW/wWFf6IA g76BxVZszuz1F//gVON99whYeISA4WGLOxC4tC0bYyZ1QIq4hraZKTC4YizFHFjYUx2LenqPw 7EzMgbcc0WxdN59hQwoQXpWrnYAj5vJ2aKutxDqohniFp4TGvJOkH/FGguI4g6NfhRwRgRZQm yESzCUucvjB1px7T/sm2XZuLYJfkCOtlePkt1OY9XOiJUNJQGdjas3R58JTtxFpAyFc70EvED p4oewsyYSB3lI9OlsjglkqnxdViczrITSFa2pdpcijXbjmShe7j4Piu8bSlBI81r98OG9iigE 7dBXuJpXCGrNIMb8Z7g1d7dmEVBUSCddgu55ze3tjByQnWSK/2VaRg312hsZSvSMAu+s= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org clang does not allow inline assembly in __naked functions to have any register parameters and throws an error: arch/arm/mm/copypage-v4wb.c:47:9: error: parameter references not allowed in naked functions : "r" (kto), "r" (kfrom), "I" (PAGE_SIZE / 64)); Fortunately, all of these functions are trivial to convert to using the registers directly. Signed-off-by: Arnd Bergmann --- arch/arm/mm/copypage-feroceon.c | 4 ++-- arch/arm/mm/copypage-v4mc.c | 26 +++++++++++++------------- arch/arm/mm/copypage-v4wb.c | 4 ++-- arch/arm/mm/copypage-v4wt.c | 4 ++-- arch/arm/mm/copypage-xsc3.c | 4 ++-- arch/arm/mm/copypage-xscale.c | 4 ++-- 6 files changed, 23 insertions(+), 23 deletions(-) -- 2.7.0 diff --git a/arch/arm/mm/copypage-feroceon.c b/arch/arm/mm/copypage-feroceon.c index 49ee0c1a7209..e69bf2f15f32 100644 --- a/arch/arm/mm/copypage-feroceon.c +++ b/arch/arm/mm/copypage-feroceon.c @@ -18,7 +18,7 @@ feroceon_copy_user_page(void *kto, const void *kfrom) { asm("\ stmfd sp!, {r4-r9, lr} \n\ - mov ip, %2 \n\ + mov ip, %0 \n\ 1: mov lr, r1 \n\ ldmia r1!, {r2 - r9} \n\ pld [lr, #32] \n\ @@ -64,7 +64,7 @@ feroceon_copy_user_page(void *kto, const void *kfrom) mcr p15, 0, ip, c7, c10, 4 @ drain WB\n\ ldmfd sp!, {r4-r9, pc}" : - : "r" (kto), "r" (kfrom), "I" (PAGE_SIZE)); + : "I" (PAGE_SIZE)); } void feroceon_copy_user_highpage(struct page *to, struct page *from, diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c index 1267e64133b9..ea89722c00db 100644 --- a/arch/arm/mm/copypage-v4mc.c +++ b/arch/arm/mm/copypage-v4mc.c @@ -45,23 +45,23 @@ mc_copy_user_page(void *from, void *to) { asm volatile( "stmfd sp!, {r4, lr} @ 2\n\ - mov r4, %2 @ 1\n\ - ldmia %0!, {r2, r3, ip, lr} @ 4\n\ -1: mcr p15, 0, %1, c7, c6, 1 @ 1 invalidate D line\n\ - stmia %1!, {r2, r3, ip, lr} @ 4\n\ - ldmia %0!, {r2, r3, ip, lr} @ 4+1\n\ - stmia %1!, {r2, r3, ip, lr} @ 4\n\ - ldmia %0!, {r2, r3, ip, lr} @ 4\n\ - mcr p15, 0, %1, c7, c6, 1 @ 1 invalidate D line\n\ - stmia %1!, {r2, r3, ip, lr} @ 4\n\ - ldmia %0!, {r2, r3, ip, lr} @ 4\n\ + mov r4, %0 @ 1\n\ + ldmia r0!, {r2, r3, ip, lr} @ 4\n\ +1: mcr p15, 0, r1, c7, c6, 1 @ 1 invalidate D line\n\ + stmia r1!, {r2, r3, ip, lr} @ 4\n\ + ldmia r0!, {r2, r3, ip, lr} @ 4+1\n\ + stmia r1!, {r2, r3, ip, lr} @ 4\n\ + ldmia r0!, {r2, r3, ip, lr} @ 4\n\ + mcr p15, 0, r1, c7, c6, 1 @ 1 invalidate D line\n\ + stmia r1!, {r2, r3, ip, lr} @ 4\n\ + ldmia r0!, {r2, r3, ip, lr} @ 4\n\ subs r4, r4, #1 @ 1\n\ - stmia %1!, {r2, r3, ip, lr} @ 4\n\ - ldmneia %0!, {r2, r3, ip, lr} @ 4\n\ + stmia r1!, {r2, r3, ip, lr} @ 4\n\ + ldmneia r0!, {r2, r3, ip, lr} @ 4\n\ bne 1b @ 1\n\ ldmfd sp!, {r4, pc} @ 3" : - : "r" (from), "r" (to), "I" (PAGE_SIZE / 64)); + : "I" (PAGE_SIZE / 64)); } void v4_mc_copy_user_highpage(struct page *to, struct page *from, diff --git a/arch/arm/mm/copypage-v4wb.c b/arch/arm/mm/copypage-v4wb.c index 067d0fdd630c..7ea9cf07bd5c 100644 --- a/arch/arm/mm/copypage-v4wb.c +++ b/arch/arm/mm/copypage-v4wb.c @@ -27,7 +27,7 @@ v4wb_copy_user_page(void *kto, const void *kfrom) { asm("\ stmfd sp!, {r4, lr} @ 2\n\ - mov r2, %2 @ 1\n\ + mov r2, %0 @ 1\n\ ldmia r1!, {r3, r4, ip, lr} @ 4\n\ 1: mcr p15, 0, r0, c7, c6, 1 @ 1 invalidate D line\n\ stmia r0!, {r3, r4, ip, lr} @ 4\n\ @@ -44,7 +44,7 @@ v4wb_copy_user_page(void *kto, const void *kfrom) mcr p15, 0, r1, c7, c10, 4 @ 1 drain WB\n\ ldmfd sp!, {r4, pc} @ 3" : - : "r" (kto), "r" (kfrom), "I" (PAGE_SIZE / 64)); + : "I" (PAGE_SIZE / 64)); } void v4wb_copy_user_highpage(struct page *to, struct page *from, diff --git a/arch/arm/mm/copypage-v4wt.c b/arch/arm/mm/copypage-v4wt.c index b85c5da2e510..c742ab24efd6 100644 --- a/arch/arm/mm/copypage-v4wt.c +++ b/arch/arm/mm/copypage-v4wt.c @@ -25,7 +25,7 @@ v4wt_copy_user_page(void *kto, const void *kfrom) { asm("\ stmfd sp!, {r4, lr} @ 2\n\ - mov r2, %2 @ 1\n\ + mov r2, %0 @ 1\n\ ldmia r1!, {r3, r4, ip, lr} @ 4\n\ 1: stmia r0!, {r3, r4, ip, lr} @ 4\n\ ldmia r1!, {r3, r4, ip, lr} @ 4+1\n\ @@ -40,7 +40,7 @@ v4wt_copy_user_page(void *kto, const void *kfrom) mcr p15, 0, r2, c7, c7, 0 @ flush ID cache\n\ ldmfd sp!, {r4, pc} @ 3" : - : "r" (kto), "r" (kfrom), "I" (PAGE_SIZE / 64)); + : "I" (PAGE_SIZE / 64)); } void v4wt_copy_user_highpage(struct page *to, struct page *from, diff --git a/arch/arm/mm/copypage-xsc3.c b/arch/arm/mm/copypage-xsc3.c index 03a2042aced5..17e4e11c4612 100644 --- a/arch/arm/mm/copypage-xsc3.c +++ b/arch/arm/mm/copypage-xsc3.c @@ -34,7 +34,7 @@ xsc3_mc_copy_user_page(void *kto, const void *kfrom) { asm("\ stmfd sp!, {r4, r5, lr} \n\ - mov lr, %2 \n\ + mov lr, %0 \n\ \n\ pld [r1, #0] \n\ pld [r1, #32] \n\ @@ -67,7 +67,7 @@ xsc3_mc_copy_user_page(void *kto, const void *kfrom) \n\ ldmfd sp!, {r4, r5, pc}" : - : "r" (kto), "r" (kfrom), "I" (PAGE_SIZE / 64 - 1)); + : "I" (PAGE_SIZE / 64 - 1)); } void xsc3_mc_copy_user_highpage(struct page *to, struct page *from, diff --git a/arch/arm/mm/copypage-xscale.c b/arch/arm/mm/copypage-xscale.c index 0fb85025344d..1034b4ce80cc 100644 --- a/arch/arm/mm/copypage-xscale.c +++ b/arch/arm/mm/copypage-xscale.c @@ -45,7 +45,7 @@ mc_copy_user_page(void *from, void *to) */ asm volatile( "stmfd sp!, {r4, r5, lr} \n\ - mov lr, %2 \n\ + mov lr, %0 \n\ pld [r0, #0] \n\ pld [r0, #32] \n\ pld [r1, #0] \n\ @@ -81,7 +81,7 @@ mc_copy_user_page(void *from, void *to) beq 2b \n\ ldmfd sp!, {r4, r5, pc} " : - : "r" (from), "r" (to), "I" (PAGE_SIZE / 64 - 1)); + : "I" (PAGE_SIZE / 64 - 1)); } void xscale_mc_copy_user_highpage(struct page *to, struct page *from, From patchwork Thu Feb 18 17:05:09 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 102736 Delivered-To: patch@linaro.org Received: by 10.112.43.199 with SMTP id y7csp701650lbl; Thu, 18 Feb 2016 09:06:37 -0800 (PST) X-Received: by 10.67.1.209 with SMTP id bi17mr11693685pad.150.1455815197346; Thu, 18 Feb 2016 09:06:37 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p14si10376534pfi.230.2016.02.18.09.06.37; Thu, 18 Feb 2016 09:06:37 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1946985AbcBRRG1 (ORCPT + 30 others); Thu, 18 Feb 2016 12:06:27 -0500 Received: from mout.kundenserver.de ([212.227.17.24]:59465 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1946428AbcBRRGZ (ORCPT ); Thu, 18 Feb 2016 12:06:25 -0500 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue104) with ESMTPA (Nemesis) id 0MTgXI-1aNY2g1ICu-00QWLf; Thu, 18 Feb 2016 18:05:58 +0100 From: Arnd Bergmann To: Russell King Cc: linux-arm-kernel@lists.infradead.org, Arnd Bergmann , Ard Biesheuvel , Nicolas Pitre , Jon Medhurst , Marc Zyngier , linux-kernel@vger.kernel.org Subject: [PATCH 3/3] [RESEND] ARM: kprobes: use "I" constraint for inline assembly offsets Date: Thu, 18 Feb 2016 18:05:09 +0100 Message-Id: <1455815113-2562966-4-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1455815113-2562966-1-git-send-email-arnd@arndb.de> References: <1455815113-2562966-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:vaob21BB2lSCMXyIsD4AwzJOs1MFgL68TT3uMvUl7xlcLVuExRt Vhl200+fcUNI47dV/fofFgd6hw/P50TRYtmjSJicZpla2lJiq0sGqwUpz30C97VioprTqK+ VlwOQtNVaEoKu2D5B9N0d7SusqjTAkWkB8VQAlWV+QI8b32cDJ0y2HfIix4Tpsg7qcRSsJc sZ9/IVER9o9RQvZUPS2Ig== X-UI-Out-Filterresults: notjunk:1; V01:K0:7eBOH525Ks0=:hzpAWuRE0kvtnOvnzEM/wM Xj4qXLHkowRMK8JR7dQrtn8tTAHceMm7qDAYtv2N4/itExXKinFR+2dQfBOMTpIbzlN2NtpYj lIEntEIWVftN/a5jJ6Cu9YJi5/xr//B+xY4n3Z/4ZcpQs8yt7gjDHS6M3z0h0EzsAJwGX9krR N7RWw9dGceaf+nBtnrpeRiol1drFXvHJTrzWvS0gN17oHAk5Ivhq374emTbsrWT8Fiv2ihi/Y 3KfAsNSIybt5yK3k2or4yCAS+sHI4AYnC4ctznij7JAMLPOFEm5KPsX+lfqEhgCl4Biyrq16I APLUuk8I4HGkicZtNNNGiPgLC/9PuELEqeOLwqDSW2sz4iY18SXCDteNVlrYoH8xHJqzrjYYr YxaQzhlH8LNSPXDgM4PmlytqaFWCUy0/QbLkNuzK+GzPQNouHG8N77gaHbsDwRpLWgK6IMx42 b1ty48ihkxl+MiGjXEUyQXlSftNxizDgW3BYW8K32PoUHdziJiBrmxO5nF4AOsVSrKntN3x2e Nej38qh/WnppBmtPRrkCDaeidQMa3syqXWu1l9hVU8fkom2ZBBExmeA8w/fPUj9LbLROeRrLE FciMLarp1R9sMlxIyo5bIiVykGUBURbO3kyfJ50AwT34exRgxS06x6NBWkJgWwJ8dzS9OCo5f 3929VRTrycODTEbs1DGJ7hwdonKovW4XfyQaIk0oHFOua5um/lF/2r0g7ekrwxMs9wgY= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org build-testing with clang showed that the "J" constraint does not take positive arguments on clang when building in for Thumb-2: core.c:540:3: error: invalid operand for inline asm constraint 'J' This has been reported as llvm bug https://llvm.org/bugs/show_bug.cgi?id=26061 However, looking at the source code in depth, I found that the kernel is also wrong, and it should not use "J" at all, but should use "I" to pass an immediate argument to the inline assembly when that is used as an offset to an 'ldr' instruction rather than the 'sub' argument. Signed-off-by: Arnd Bergmann --- arch/arm/probes/kprobes/core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) -- 2.7.0 diff --git a/arch/arm/probes/kprobes/core.c b/arch/arm/probes/kprobes/core.c index a4ec240ee7ba..4b34b40ca917 100644 --- a/arch/arm/probes/kprobes/core.c +++ b/arch/arm/probes/kprobes/core.c @@ -570,10 +570,10 @@ void __kprobes jprobe_return(void) : : "r" (kcb->jprobe_saved_regs.ARM_sp), "I" (sizeof(struct pt_regs) * 2), - "J" (offsetof(struct pt_regs, ARM_sp)), - "J" (offsetof(struct pt_regs, ARM_pc)), - "J" (offsetof(struct pt_regs, ARM_cpsr)), - "J" (offsetof(struct pt_regs, ARM_lr)) + "I" (offsetof(struct pt_regs, ARM_sp)), + "I" (offsetof(struct pt_regs, ARM_pc)), + "I" (offsetof(struct pt_regs, ARM_cpsr)), + "I" (offsetof(struct pt_regs, ARM_lr)) : "memory", "cc"); }