Message ID | 20210120173800.1660730-11-jthierry@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show
Return-Path: <SRS0=0ZpT=GX=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org> 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.9 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 E8421C433E0 for <linux-arm-kernel@archiver.kernel.org>; Wed, 20 Jan 2021 17:46:07 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 A5DF62070A for <linux-arm-kernel@archiver.kernel.org>; Wed, 20 Jan 2021 17:46:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A5DF62070A 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=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=oECwl/kJKiWHB+0t9niFci+gzVLAu24Rqd1c+AlacuY=; b=RGszXZ3oXOHHWGHGFASrsB+La aDijU3qaPM5ldlEk80VHfO0Sb8k2SP2VVA66oMjWC031ZSneK3MNovzgBkqxejCxi/NdTWiSaEjC9 MCjPWzRnce2+C7XQ+s2E+oyGwOYKKhuldLFOqG3pQ5c1rGiB2uLEloOVoepCzJvtOX3wXmN/ar8kP uBMIiEOndr8YTjeAPKQCau/EBNeZkH72zBl3Hoy541O2k9DoH6HVezcg9I3T3ZVg9qht4DluswRzt cwLlsQxRcH6psCo08d7rOzTx8Sk0XRBakSOrObVYR9DWAVEJ5FqKe/u2amU3/q/7eSWW+YgDM6NRr DneAPw2GQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2HWk-0005wv-8m; Wed, 20 Jan 2021 17:44:18 +0000 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2HRE-0002vx-Nu for linux-arm-kernel@lists.infradead.org; Wed, 20 Jan 2021 17:38:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1611164312; 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=TunnN2Rmw/3iiIk96y5NqcKwVnXUUTnNVIzyUwYw5qc=; b=T1No+xlQ5KYlXFAMAvd9iPdPpBm975ajHs2HsYdQHh5UHehBlBw4DrC8LY+titxIWH8rWE JjzrCRcLT5U9eXfXsg5DOahihceukWNTDFxDswRZJToPrsmMirJRNVlGAfdyGvOgq8oVzy DdLIfQB4qS5YUYXpNocNgBs8aYtJ1GU= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-341-cwrYnk_EMJOjBHByJ3irAQ-1; Wed, 20 Jan 2021 12:38:30 -0500 X-MC-Unique: cwrYnk_EMJOjBHByJ3irAQ-1 Received: by mail-wm1-f70.google.com with SMTP id k67so1829066wmk.5 for <linux-arm-kernel@lists.infradead.org>; Wed, 20 Jan 2021 09:38:30 -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=TunnN2Rmw/3iiIk96y5NqcKwVnXUUTnNVIzyUwYw5qc=; b=tWdDsjgXfgRmsEzAaxRWjdfduQW6nM5t5ZIiQCVwwS8qPRRNUIdGkUmKCUTver660C UcOXtiW/i+Go9qFJ/Eyg6uIMbBPPFJcFVUXsctTCNQZ+l1GAiz/NXlJvtcAmgLib7BuP eoZDhR6XxSG/54y+z5NNt+CmJQjcW81CF8Jz880t3BFFbC4lMyMETuYaZEq1EkcLSp/p GYR5jMj89lHMTQIYVxn7kNyuxbFUvj9oc5onePNXVBb5nmxynWVGd/Q5wjTiFBigo3c6 um/nV3DN3H44YRvDthkmfmSsqoDLPGL3sdwq3BuD7MYb+GcOLVfYlBBdo729iO6mx47E 33Tg== X-Gm-Message-State: AOAM532uK5idOfLLIPplCMyWkvRSNHyXtWFhEnvN8tE2v/34iQ/05Odt cYjyzXDbpaYg5FYawpa8WTaNoUCnXy2uhBurY2BFepssBvBfo+fiiID97EDx7jxky5S85WU9sVR Jx0EwiBPIdqX+nm6IxdXvAWH8wz8cwEpOFhE= X-Received: by 2002:a1c:a501:: with SMTP id o1mr5442911wme.21.1611164309133; Wed, 20 Jan 2021 09:38:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJzdkiqIhQMa9qAcvB3y1xPRPRu1ifQGBBsVjTbJnRN8ssR5UHer5yLxDQqnoMtLa25rFV9xTQ== X-Received: by 2002:a1c:a501:: with SMTP id o1mr5442896wme.21.1611164308963; Wed, 20 Jan 2021 09:38:28 -0800 (PST) Received: from redfedo.redhat.com ([2a01:cb14:499:3d00:cd47:f651:9d80:157a]) by smtp.gmail.com with ESMTPSA id x11sm4948325wmi.4.2021.01.20.09.38.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Jan 2021 09:38:28 -0800 (PST) From: Julien Thierry <jthierry@redhat.com> To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [RFC PATCH 10/17] objtool: arm64: Accept padding in code sections Date: Wed, 20 Jan 2021 18:37:53 +0100 Message-Id: <20210120173800.1660730-11-jthierry@redhat.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20210120173800.1660730-1-jthierry@redhat.com> References: <20210120173800.1660730-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-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210120_123837_279423_CD35D102 X-CRM114-Status: GOOD ( 15.69 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <linux-arm-kernel.lists.infradead.org> List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-arm-kernel>, <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe> List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/> List-Post: <mailto:linux-arm-kernel@lists.infradead.org> List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help> List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>, <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe> Cc: mark.rutland@arm.com, linux-efi@vger.kernel.org, michal.lkml@markovi.net, keescook@chromium.org, peterz@infradead.org, catalin.marinas@arm.com, masahiroy@kernel.org, broonie@kernel.org, linux-hardening@vger.kernel.org, jpoimboe@redhat.com, will@kernel.org, ardb@kernel.org, Julien Thierry <jthierry@redhat.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org> Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org |
Series |
objtool: add base support for arm64
|
expand
|
diff --git a/tools/objtool/arch/arm64/decode.c b/tools/objtool/arch/arm64/decode.c index b4d4d5b051b0..ed5ef0b52bbe 100644 --- a/tools/objtool/arch/arm64/decode.c +++ b/tools/objtool/arch/arm64/decode.c @@ -362,8 +362,23 @@ int arch_decode_instruction(const struct elf *elf, const struct section *sec, switch (aarch64_get_insn_class(insn)) { case AARCH64_INSN_CLS_UNKNOWN: - WARN("can't decode instruction at %s:0x%lx", sec->name, offset); - return -1; + { + /* + * There are a few reasons we might have non-valid opcodes in + * code sections: + * - For load literal, assembler can generate the data to be + * loaded in the code section + * - Compiler/assembler can generate zeroes to pad function that + * do not end on 8-byte alignment + */ + /* Compiler might put zeroes as padding */ + if (record_invalid_insn(sec, offset, insn == 0x0)) + return -1; + + *type = INSN_OTHER; + + break; + } case AARCH64_INSN_CLS_DP_IMM: /* Mov register to and from SP are aliases of add_imm */ if (aarch64_insn_is_add_imm(insn) ||
The compiler can introduce some '0' words in code sections to pad the end of functions. Similar to load literal functions, record these zero words to remove the "struct instruction" created for them. Signed-off-by: Julien Thierry <jthierry@redhat.com> --- tools/objtool/arch/arm64/decode.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-)