From patchwork Wed Mar 3 17:09:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Thierry X-Patchwork-Id: 12114615 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D380CC433E0 for ; Thu, 4 Mar 2021 00:03:17 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 74B9664F4B for ; Thu, 4 Mar 2021 00:03:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 74B9664F4B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=CQ76avCRVCKo9JZKMmNL1nDndguwXJvrCo+GdiiMdRQ=; b=Mu1LSo+1Eo542pmDnznB9HA2M P1hBpaq52QXrKIxx/bvzV+H0DlVtiYmgpVFnLRRrA1oNjIWAJylFo/lSVOtn5/GxuffyBtbu7zpKq nb7olFD0h1Hw8O/cu4BYSjp1Zm19PFjlAAIs/LlwMZnaj+jfzfLsxpsWTOHPNE8Yce2C1lUiQARC+ FjAiVy1E8h0SGv11tbOK2V3Bz7R1kgbLPXCvV156JCurp0pGHH2CoeTsg91C907KUM1Gj7EvMQLYy svghNDFf3HEJE2gUnkU037JK+cyR28X+qB6ZcNwLHOZ2rcnWuUU1TYeGYNy8gVpIOEAJkjW3oYSj5 +o3aHrQNA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lHbM7-0072x2-4c; Wed, 03 Mar 2021 23:56:50 +0000 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lHV0c-005juv-4J for linux-arm-kernel@lists.infradead.org; Wed, 03 Mar 2021 17:10:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614791400; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8cECYFHQXW6ZC2a1gqf4nDPpPZL2JkTjaxDe2H/4YEM=; b=Uo/c5Pl91enQ4n5hJeDN3o7PIN7AdP3lHNkovc1rphE+Uz+o7wwX8joeMkotg8wJKzcG9J E9+VL1dRE5RWMWA2cDKNDqOwrrANAwy4O4VGJSpfZuK9z0A1ZzxgxvMNk0T6MGtR+9zkBQ joK7050B/yd3GSjpe/393oM4Guvsmo0= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-293-STQaE2IBMEKcy5JEi8w4iw-1; Wed, 03 Mar 2021 12:09:59 -0500 X-MC-Unique: STQaE2IBMEKcy5JEi8w4iw-1 Received: by mail-wm1-f69.google.com with SMTP id a63so2065607wmd.8 for ; Wed, 03 Mar 2021 09:09:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8cECYFHQXW6ZC2a1gqf4nDPpPZL2JkTjaxDe2H/4YEM=; b=lxiGVE7RRXuCDz9uzUw3EwCPPIsRhxX4gCV+J5Ldl9Nn5qMV4rh/giMGlBOGL3tNh7 LzqTHdCbkc18cUzU7sQ5dkHwsGIYPWw6bW0NFpHT6cxU+dnFTHyrbqS4mb1ZOOJ7l+WV xpg+WtBzbJaTbDe5Wrqj2oAHJbTVWbEq/uDM5ONeFXswAHSFkSFf4DQgAvQmT6PJJ1EG YMGctTZw5tnma7qbAt2pER0NwrSVav5xuVdq9s3zK7ONduTt20fzvmERK362XtivlKrd LO7if8IxkrqyEkd9YIvMTBy+k8FuSg1Z7ocNLUGaIxv45595Z7er6q52uSnpkk+LOdM3 R9/w== X-Gm-Message-State: AOAM533xkAU/XMHclvx46qtcCEC4Y1WCctDkUDXMOwSxDJ4WRrHMxxmv 0+bGx7odVaA6uhspNNVAo4G5AnoL7JJ7CKX8JkcHF0w1ZFOMEWPYFydGgYjztp7bS4j5C+2JjZI UZaZyN87Qe73X/jvdU9GdKyZNpnbaEWK1L1o= X-Received: by 2002:adf:d84d:: with SMTP id k13mr28964831wrl.164.1614791397353; Wed, 03 Mar 2021 09:09:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJyVvvF8AoBPMoaVRWSl4ebWzlC+SRuerfrx4Hs3SxLXgle7eZ1Bx/KLr8ThmWLeoi7Z3fvifw== X-Received: by 2002:adf:d84d:: with SMTP id k13mr28964820wrl.164.1614791397215; Wed, 03 Mar 2021 09:09:57 -0800 (PST) Received: from redfedo.redhat.com ([2a01:cb14:499:3d00:cd47:f651:9d80:157a]) by smtp.gmail.com with ESMTPSA id r7sm33066226wre.25.2021.03.03.09.09.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Mar 2021 09:09:56 -0800 (PST) From: Julien Thierry To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: catalin.marinas@arm.com, will@kernel.org, mark.rutland@arm.com, ardb@kernel.org, masahiroy@kernel.org, jpoimboe@redhat.com, peterz@infradead.org, ycote@redhat.com, Raphael Gault , Julien Thierry Subject: [RFC PATCH v2 13/13] objtool: arm64: Enable stack validation for arm64 Date: Wed, 3 Mar 2021 18:09:32 +0100 Message-Id: <20210303170932.1838634-14-jthierry@redhat.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20210303170932.1838634-1-jthierry@redhat.com> References: <20210303170932.1838634-1-jthierry@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jthierry@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Raphael Gault Add build option to run stack validation at compile time. When requiring stack validation, jump tables are disabled as it simplifies objtool analysis (without having to introduce unreliable artifacs). In local testing, this does not appear to significaly affect final binary size nor system performance. Signed-off-by: Raphael Gault Signed-off-by: Julien Thierry --- arch/arm64/Kconfig | 1 + arch/arm64/Makefile | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 1f212b47a48a..928323c03318 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -187,6 +187,7 @@ config ARM64 select MMU_GATHER_RCU_TABLE_FREE select HAVE_RSEQ select HAVE_STACKPROTECTOR + select HAVE_STACK_VALIDATION select HAVE_SYSCALL_TRACEPOINTS select HAVE_KPROBES select HAVE_KRETPROBES diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 5b84aec31ed3..b819fb2e8eda 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -136,6 +136,10 @@ ifeq ($(CONFIG_DYNAMIC_FTRACE_WITH_REGS),y) CC_FLAGS_FTRACE := -fpatchable-function-entry=2 endif +ifeq ($(CONFIG_STACK_VALIDATION),y) +KBUILD_CFLAGS += -fno-jump-tables +endif + # Default value head-y := arch/arm64/kernel/head.o