From patchwork Sat Oct 24 00:58:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Collingbourne X-Patchwork-Id: 11854671 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=-12.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,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 89710C4363A for ; Sat, 24 Oct 2020 01:00:31 +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 088AB22274 for ; Sat, 24 Oct 2020 01:00:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="kAkHdIaw"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=google.com header.i=@google.com header.b="cKyt5IJW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 088AB22274 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.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:To:From:Subject:Mime-Version:Message-Id:Date: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=KsdXqhX+/TIf3r/lisAxloN38ksUmqKvGkU/Ul+WIe8=; b=kAkHdIawdVXO8DNS0QNfK/tVJy 4GvaUYaGq4+nIhZixOg6iKL79Rs4NoKqaNoMjjXwuFsVu1jF+DfpiM9nQHCY8ZbuWr9/qTT1XNalQ G4OaY8V12QAUPNERlKEr+4v+rszI5dKPgi1mmIE56jKmIcdWnd8d9I+qwSryeoJJOn8H2TtyGrJkj 9Q8YsNWYYBC9iT6kW7/KXFuH6CCiPPJw2Wz0LpptvBKR9MK2VpzRwJJ3IguUGVJBCc32Ak8xk/+XZ JXUzP3swLfTmMFqPjPb0NgtzVCEtKGfsUhTkctahTf62hMhfKaIF9rWvajQxq7A1TH0UF7bE493vh kZmFoTNA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kW7tU-0008Bc-28; Sat, 24 Oct 2020 00:58:52 +0000 Received: from mail-qv1-xf4a.google.com ([2607:f8b0:4864:20::f4a]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kW7tQ-0008B4-SL for linux-arm-kernel@lists.infradead.org; Sat, 24 Oct 2020 00:58:49 +0000 Received: by mail-qv1-xf4a.google.com with SMTP id c6so2211680qvo.8 for ; Fri, 23 Oct 2020 17:58:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:date:message-id:mime-version:subject:from:to:cc; bh=vU7o5+FuFG4bzp37/xDhZ4NI3NCSUDYDAfRpGzJKJtc=; b=cKyt5IJWgBfAu+7x1PYyWeai7YpDQrpHUn2A8YqpxViWgLV1LXPhal8cLwSAZ1jYUS tYRQhVF9esT3GpPU888HQ+y6MM74BlTH5sxYTqvaWL7vWvPsT+c5STEd8HAwOISj2pCw TS7pdZSxlCqDEuxzVvqOOTxacOCb0cMRlUA5WSHdhJNPdTuibhI+tJgX31NJ4WhayRxg FxismcGeM6f20sDiUBivVGoPn7mlp6WPJssWnHmO/+/9cRLsWnHivM0Ab1l04uMgcmR5 UurCOB2Q++l0GZVH4AgwbducJNkgm08h0fDuF0kHSKB8bUXFGIYHaIC9jCPIHlS7MCwZ 9V3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:message-id:mime-version:subject:from :to:cc; bh=vU7o5+FuFG4bzp37/xDhZ4NI3NCSUDYDAfRpGzJKJtc=; b=Y86UStbZr9qXU4vfWxwB65BJ/pdGKLRM4auIagZUyPW4xawhleIBk1IqczAQxnBS+2 /wuPmGu5hyrdkLnFl6YczYfJU0Oy7tMO9yDLEWqcIKqHMVFqBk4InFJmG1CD7xUrQDNC B54q/ZmZ772TY2pquErTf27tSVtyEU5u/soqi95nac9wdb0wAoLo7/guaTOJ3Pa9oel1 G6o+PeFRIB1tHqdZgsvZAQ02NJdOr39cp83LUm+ECrSGeQb8mYuU5qp/L6mFjIF5HvpO srK9Z6cJNI+GuebtAF2M05Ac4EKndClpCqQsP5mipPbwBiRHTqxc2kj4Zi9pKo/LiyFm GHTQ== X-Gm-Message-State: AOAM530SCUoKZYmvj/CsIh67E/VjcVNG14hDQgX00vHAsiyDVID0ri20 xp3l8FLs1l6IM7fncd4mFcQPmcQ= X-Google-Smtp-Source: ABdhPJxC0Y0Y4cAP9GRvwhUNQrlcDpxTs2BbpeF1XATEu/fghaukwCDtiWSlr8vIdBqoFcOZ6y99v2s= X-Received: from pcc-desktop.svl.corp.google.com ([2620:15c:2ce:0:7220:84ff:fe09:385a]) (user=pcc job=sendgmr) by 2002:ad4:55ad:: with SMTP id f13mr5251836qvx.21.1603501124776; Fri, 23 Oct 2020 17:58:44 -0700 (PDT) Date: Fri, 23 Oct 2020 17:58:35 -0700 Message-Id: <20201024005835.53123-1-pcc@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.29.0.rc2.309.g374f81d7ae-goog Subject: [PATCH] arm64: stacktrace: Relax frame record alignment requirement to 8 bytes From: Peter Collingbourne To: Mark Brown , Will Deacon , Catalin Marinas X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201023_205848_962292_F9574A57 X-CRM114-Status: GOOD ( 13.91 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrey Konovalov , Peter Collingbourne , Linux ARM Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The AAPCS places no requirements on the alignment of the frame record. In theory it could be placed anywhere, although it seems sensible to require it to be aligned to 8 bytes. With an upcoming enhancement to tag-based KASAN Clang will begin creating frame records located at an address that is only aligned to 8 bytes. Accommodate such frame records in the stack unwinding code. Signed-off-by: Peter Collingbourne Link: https://linux-review.googlesource.com/id/Ia22c375230e67ca055e9e4bb639383567f7ad268 --- arch/arm64/kernel/stacktrace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/kernel/stacktrace.c b/arch/arm64/kernel/stacktrace.c index fa56af1a59c3..5dfc05068328 100644 --- a/arch/arm64/kernel/stacktrace.c +++ b/arch/arm64/kernel/stacktrace.c @@ -44,7 +44,7 @@ int notrace unwind_frame(struct task_struct *tsk, struct stackframe *frame) unsigned long fp = frame->fp; struct stack_info info; - if (fp & 0xf) + if (fp & 0x7) return -EINVAL; if (!tsk)