Received: by 2002:ac0:da4c:0:0:0:0:0 with SMTP id a12csp931601imi; Thu, 21 Jul 2022 13:51:29 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sHcUlLAfzoDGPagiW0kMjyVTb94iSX9A08W1epnqw5cMfQ54POpLyaWt66Bd3qEh8v42ok X-Received: by 2002:a63:460f:0:b0:412:7a8b:128c with SMTP id t15-20020a63460f000000b004127a8b128cmr214298pga.270.1658436688929; Thu, 21 Jul 2022 13:51:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658436688; cv=none; d=google.com; s=arc-20160816; b=wU3xz1A3rvuDERXQfih0/gUy+uhqBdNIj4Dh4Odd+7VDTX4m4LGHsUjQKBtSNHTDYj OCScNeNkZaxB2y8TmEFSnqU160Y1DC6eyNSW9A4q/ytYqZ0IgWoRVkkeC9AT3N4lftGV 4+cQQDts+Xa7lqSxsdc4UUZEHWknNfCp6Qh9w8ktPvzfM4Cgjf1Nt5vsvqjQV1tJJE6F FlAhx6Ys46rnfpsfsyS48oNlq7HVocT6TZAmtWeATsS636QAlbGhS9S8yDUqmhGRfagh r8221dWf5T4D5Xfy1eY7ynhxL1WpeBrFOkTV8r0Pa9VZmd+9NlbsYOItSpbAFxZQMWXm MUVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=MUKBnZasFAKqf4mDH1Grm3PJXJ0laukNsCA1nuPaK+0=; b=Zf3yl6LhUdH7+XG+ctk4181skJNh3SMcaiwLqsGEysSJxqNYGkhjRGjE83zy7BAR/0 0fHIwqVp3eE9A8sA6uCElwbrrNCuCUCkSyyLq5wcbDsmnPX3tTuz3ZN8/z91Xa2/UGni jzkxBJQVTjbHaSfVaOsvhWYfrcd8jkmPJR7SY95tVY5ae5bPQV7TceBQYosnYaHrRnOX 9AqcKg268jaBh5fk8b+VIpmNpQPhD938z+F27jqF1DtVatmJy5ZWqfDLrubG745ME8gA uZG+WX80RlEBQ92xhstmYn7590ctGEenv4Z8eqBUN+6nXzi3GDSpHcPtom2c19gPAs67 9gUQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j10-20020a65430a000000b0041a23dd4f58si3318094pgq.513.2022.07.21.13.51.14; Thu, 21 Jul 2022 13:51:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233435AbiGUUrQ (ORCPT + 99 others); Thu, 21 Jul 2022 16:47:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40302 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229498AbiGUUrP (ORCPT ); Thu, 21 Jul 2022 16:47:15 -0400 Received: from luna (cpc152649-stkp13-2-0-cust121.10-2.cable.virginm.net [86.15.83.122]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B12198F510 for ; Thu, 21 Jul 2022 13:47:13 -0700 (PDT) Received: from ben by luna with local (Exim 4.96) (envelope-from ) id 1oEd4h-001rp7-00; Thu, 21 Jul 2022 21:47:11 +0100 From: Ben Dooks To: linux-kernel@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, linux-crypto@vger.kernel.org, Ben Dooks Subject: [PATCH] crypto: fix warnings from missing .note.GNU-stack Date: Thu, 21 Jul 2022 21:47:09 +0100 Message-Id: <20220721204709.445216-1-ben-linux@fluff.org> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_00,FSL_HELO_NON_FQDN_1, HELO_NO_DOMAIN,KHOP_HELO_FCRDNS,RCVD_IN_SORBS_DUL,RDNS_DYNAMIC, SPF_NONE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A lot of the assembly code in arch/arm/crypto is missing a .note.GNU-stack section which is making a numbe of warnings about implicit executable stack. This code does not look like it does not need an executable stack, so silence the warnings by adding a .section .note.GNU-stack to all these. Since this is an empty section, it should be backwards compatible with older linkers. Fixes the following warnings: arm-linux-gnueabihf-ld: warning: arch/arm/crypto/aes-cipher-core.o: missing .note.GNU-stack section implies executable stack arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker arm-linux-gnueabihf-ld: warning: arch/arm/crypto/aes-neonbs-core.o: missing .note.GNU-stack section implies executable stack arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker arm-linux-gnueabihf-ld: warning: arch/arm/crypto/sha1-armv4-large.o: missing .note.GNU-stack section implies executable stack arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker arm-linux-gnueabihf-ld: warning: arch/arm/crypto/sha1-armv7-neon.o: missing .note.GNU-stack section implies executable stack arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker arm-linux-gnueabihf-ld: warning: arch/arm/crypto/sha256-core.o: missing .note.GNU-stack section implies executable stack arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker arm-linux-gnueabihf-ld: warning: arch/arm/crypto/sha512-core.o: missing .note.GNU-stack section implies executable stack arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker arm-linux-gnueabihf-ld: warning: arch/arm/crypto/chacha-neon-core.o: missing .note.GNU-stack section implies executable stack arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker arm-linux-gnueabihf-ld: warning: arch/arm/crypto/aes-ce-core.o: missing .note.GNU-stack section implies executable stack arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker arm-linux-gnueabihf-ld: warning: arch/arm/crypto/sha1-ce-core.o: missing .note.GNU-stack section implies executable stack arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker arm-linux-gnueabihf-ld: warning: arch/arm/crypto/sha2-ce-core.o: missing .note.GNU-stack section implies executable stack arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker arm-linux-gnueabihf-ld: warning: arch/arm/crypto/ghash-ce-core.o: missing .note.GNU-stack section implies executable stack arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker arm-linux-gnueabihf-ld: warning: arch/arm/crypto/crc32-ce-core.o: missing .note.GNU-stack section implies executable stack arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker Signed-off-by: Ben Dooks --- arch/arm/crypto/aes-ce-core.S | 2 ++ arch/arm/crypto/aes-cipher-core.S | 2 ++ arch/arm/crypto/aes-neonbs-core.S | 3 +++ arch/arm/crypto/chacha-neon-core.S | 2 ++ arch/arm/crypto/chacha-scalar-core.S | 2 ++ arch/arm/crypto/crc32-ce-core.S | 2 ++ arch/arm/crypto/ghash-ce-core.S | 2 ++ arch/arm/crypto/sha1-armv4-large.S | 1 + arch/arm/crypto/sha1-armv7-neon.S | 2 ++ arch/arm/crypto/sha1-ce-core.S | 2 ++ arch/arm/crypto/sha2-ce-core.S | 2 ++ arch/arm/crypto/sha256-armv4.pl | 1 + arch/arm/crypto/sha512-armv4.pl | 1 + 13 files changed, 24 insertions(+) diff --git a/arch/arm/crypto/aes-ce-core.S b/arch/arm/crypto/aes-ce-core.S index 312428d83eed..4e570c6df9bb 100644 --- a/arch/arm/crypto/aes-ce-core.S +++ b/arch/arm/crypto/aes-ce-core.S @@ -711,3 +711,5 @@ ENDPROC(ce_aes_invert) .byte 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + +.section .note.GNU-stack,"",%progbits diff --git a/arch/arm/crypto/aes-cipher-core.S b/arch/arm/crypto/aes-cipher-core.S index 1da3f41359aa..11f10ee35487 100644 --- a/arch/arm/crypto/aes-cipher-core.S +++ b/arch/arm/crypto/aes-cipher-core.S @@ -199,3 +199,5 @@ ENDPROC(__aes_arm_encrypt) ENTRY(__aes_arm_decrypt) do_crypt iround, crypto_it_tab, crypto_aes_inv_sbox, 0 ENDPROC(__aes_arm_decrypt) + +.section .note.GNU-stack,"",%progbits diff --git a/arch/arm/crypto/aes-neonbs-core.S b/arch/arm/crypto/aes-neonbs-core.S index 7b61032f29fa..19197c0d635c 100644 --- a/arch/arm/crypto/aes-neonbs-core.S +++ b/arch/arm/crypto/aes-neonbs-core.S @@ -1041,3 +1041,6 @@ ENTRY(aesbs_xts_decrypt) ldr ip, [sp, #8] // reorder final tweak? __xts_crypt aesbs_decrypt8, q0, q1, q6, q4, q2, q7, q3, q5 ENDPROC(aesbs_xts_decrypt) + +.section .note.GNU-stack,"",%progbits + diff --git a/arch/arm/crypto/chacha-neon-core.S b/arch/arm/crypto/chacha-neon-core.S index 13d12f672656..a90690d32ad8 100644 --- a/arch/arm/crypto/chacha-neon-core.S +++ b/arch/arm/crypto/chacha-neon-core.S @@ -641,3 +641,5 @@ ENDPROC(chacha_4block_xor_neon) .byte 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 .byte 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f + +.section .note.GNU-stack,"",%progbits diff --git a/arch/arm/crypto/chacha-scalar-core.S b/arch/arm/crypto/chacha-scalar-core.S index 083fe1ab96d0..81f94876f418 100644 --- a/arch/arm/crypto/chacha-scalar-core.S +++ b/arch/arm/crypto/chacha-scalar-core.S @@ -441,3 +441,5 @@ ENTRY(hchacha_block_arm) 1: _chacha_permute 12 b 0b ENDPROC(hchacha_block_arm) + +.section .note.GNU-stack,"",%progbits diff --git a/arch/arm/crypto/crc32-ce-core.S b/arch/arm/crypto/crc32-ce-core.S index 3f13a76b9066..990c756c7487 100644 --- a/arch/arm/crypto/crc32-ce-core.S +++ b/arch/arm/crypto/crc32-ce-core.S @@ -304,3 +304,5 @@ ENDPROC(crc32_armv8_le) ENTRY(crc32c_armv8_le) __crc32 c ENDPROC(crc32c_armv8_le) + +.section .note.GNU-stack,"",%progbits diff --git a/arch/arm/crypto/ghash-ce-core.S b/arch/arm/crypto/ghash-ce-core.S index 9f51e3fa4526..2f712b9d8b2b 100644 --- a/arch/arm/crypto/ghash-ce-core.S +++ b/arch/arm/crypto/ghash-ce-core.S @@ -337,3 +337,5 @@ ENTRY(pmull_ghash_update_p8) ghash_update p8 ENDPROC(pmull_ghash_update_p8) + +.section .note.GNU-stack,"",%progbits diff --git a/arch/arm/crypto/sha1-armv4-large.S b/arch/arm/crypto/sha1-armv4-large.S index 1c8b685149f2..4e40132382b5 100644 --- a/arch/arm/crypto/sha1-armv4-large.S +++ b/arch/arm/crypto/sha1-armv4-large.S @@ -505,3 +505,4 @@ ENTRY(sha1_block_data_order) ENDPROC(sha1_block_data_order) .asciz "SHA1 block transform for ARMv4, CRYPTOGAMS by " .align 2 +.section .note.GNU-stack,"",%progbits diff --git a/arch/arm/crypto/sha1-armv7-neon.S b/arch/arm/crypto/sha1-armv7-neon.S index 28d816a6a530..a554b1bb4ceb 100644 --- a/arch/arm/crypto/sha1-armv7-neon.S +++ b/arch/arm/crypto/sha1-armv7-neon.S @@ -632,3 +632,5 @@ ENTRY(sha1_transform_neon) .Ldo_nothing: bx lr ENDPROC(sha1_transform_neon) + +.section .note.GNU-stack,"",%progbits diff --git a/arch/arm/crypto/sha1-ce-core.S b/arch/arm/crypto/sha1-ce-core.S index 8a702e051738..73353804c33f 100644 --- a/arch/arm/crypto/sha1-ce-core.S +++ b/arch/arm/crypto/sha1-ce-core.S @@ -121,3 +121,5 @@ ENTRY(sha1_ce_transform) vstr dgbs, [r0, #16] bx lr ENDPROC(sha1_ce_transform) + +.section .note.GNU-stack,"",%progbits diff --git a/arch/arm/crypto/sha2-ce-core.S b/arch/arm/crypto/sha2-ce-core.S index b6369d2440a1..b5f20ab96690 100644 --- a/arch/arm/crypto/sha2-ce-core.S +++ b/arch/arm/crypto/sha2-ce-core.S @@ -121,3 +121,5 @@ ENTRY(sha2_ce_transform) vst1.32 {dga-dgb}, [r0] bx lr ENDPROC(sha2_ce_transform) + +.section .note.GNU-stack,"",%progbits diff --git a/arch/arm/crypto/sha256-armv4.pl b/arch/arm/crypto/sha256-armv4.pl index f3a2b54efd4e..c12edbd99531 100644 --- a/arch/arm/crypto/sha256-armv4.pl +++ b/arch/arm/crypto/sha256-armv4.pl @@ -677,6 +677,7 @@ $code.=<<___; #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) .comm OPENSSL_armcap_P,4,4 #endif +.section .note.GNU-stack,"",%progbits ___ open SELF,$0; diff --git a/arch/arm/crypto/sha512-armv4.pl b/arch/arm/crypto/sha512-armv4.pl index 2fc3516912fa..6411799b4d1d 100644 --- a/arch/arm/crypto/sha512-armv4.pl +++ b/arch/arm/crypto/sha512-armv4.pl @@ -639,6 +639,7 @@ $code.=<<___; #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) .comm OPENSSL_armcap_P,4,4 #endif +.section .note.GNU-stack,"",%progbits ___ $code =~ s/\`([^\`]*)\`/eval $1/gem; -- 2.35.1