From patchwork Thu May 18 11:00:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: tip-bot2 for Thomas Gleixner X-Patchwork-Id: 95797 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp416195vqo; Thu, 18 May 2023 04:28:03 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4A8mNuOW24WT4Gd23iEoBXlDtROHgrAaPTt4DP/nfRPQRelqAq28pdCRZUVDlL8huBT38d X-Received: by 2002:a05:6a00:9a9:b0:63e:6b8a:7975 with SMTP id u41-20020a056a0009a900b0063e6b8a7975mr4272751pfg.9.1684409283342; Thu, 18 May 2023 04:28:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684409283; cv=none; d=google.com; s=arc-20160816; b=RFnT8TcXfcNuwGxHe5GMlOzCh7z+RdoHsXYm8TnMWihOb3PNJIPeoynVLxflaszwQT ZrgHOX9G8EHm6QcXnzIPXNWWxUuNk0JyKBEGgXnVCmgvkdtgiOqntHJbVCd+NRpxsVV2 S2uX5PS/Y7WfN/w2tWt0y3KHf9UxrxlSofplewrFSf0T+HKrlunZv1BDYXOW/0b+CDqb KG5krJlZfCKosrvgrF8fEhWlLmNvbFcTsiMEcMHinOQcfbV93YvXCgavgpm/O/uMeU70 QBXUZLg5041CWpl/QAlm34U14AApygeGgJQ9ahYrcCNzfQw8wNlgT7tVnzkxp43Ha71+ vtwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:robot-unsubscribe :robot-id:message-id:mime-version:references:in-reply-to:cc:subject :to:reply-to:sender:from:dkim-signature:dkim-signature:date; bh=lf71vhO9lf29YzQJAZ4ACIGDyA0p6fAMMkxfCnAYrcE=; b=j3IxAXAkYDm8Obi3TaSmbj39iTbZ0ZEx/EoJ+Nv01eUf7DhgCy3S8X7OsPR9CgUDfz YixBI0SrxXbFy+Bp4rN4Oyk6e/hUGP8b6OOUSu72hw/pTW+4BcC+hW33hT+MxsGPCHOy kWiSkl8L1hZXpvw6loRNUnpsnuV8V1C7GOVuMIMufDAYQB/AJJ+xV9rkF+zHjnFFY4BH CJGHdg8x0u64qrS8RGn+M0evziW2AT8Ulu15gmtzfYuY4T9fjFDGkeKZXYM7m3Xjyq3p qaE0emNdmav5YgNmdOPUAeD0ggE4ywqJoi4Ai7y8JDQUluxYEKVdZtexWSeZEadu3gn9 ruTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=dAtyqeTO; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q25-20020aa79839000000b00640f7f287dcsi1422362pfl.174.2023.05.18.04.27.50; Thu, 18 May 2023 04:28:03 -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; dkim=pass header.i=@linutronix.de header.s=2020 header.b=dAtyqeTO; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230242AbjERLAS (ORCPT + 99 others); Thu, 18 May 2023 07:00:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39112 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230035AbjERLAP (ORCPT ); Thu, 18 May 2023 07:00:15 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 417EFE8; Thu, 18 May 2023 04:00:14 -0700 (PDT) Date: Thu, 18 May 2023 11:00:11 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1684407612; h=from:from:sender:sender:reply-to: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=lf71vhO9lf29YzQJAZ4ACIGDyA0p6fAMMkxfCnAYrcE=; b=dAtyqeTOHCLCWEz8OUgpnrAeWAiV3Dr4EEp2foF8lBUfJA85jU7Frisc6dorpzeJDdiroZ JauTgflRI+rH8pz+bOCunIMgo677F5GZ8pyU/eDzuSSV+bhN7Or4gWSCuCG0CKzd0BD0KQ XN+9uLQ6sKNMgq76F1AOG/Q/xp1EavshAQmNKwksWpzvUbKQiM0l8OMGDWiQhuHbrUQDe+ 4p9sPkuVM9kw5xtdBwFjCE4D6RSPKZb2fJpzPuhh6Z3rsjELvoNZQZVWtMZgmOFQMP4yLT HQKR4eio/RRFInULc7mnHD2kp/T/z+KtjL/gzsbE01wU7OjHoDfm+coKN0CLrw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1684407612; h=from:from:sender:sender:reply-to: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=lf71vhO9lf29YzQJAZ4ACIGDyA0p6fAMMkxfCnAYrcE=; b=WbNaLUOCDzNvGm9jwS5P0hRHsIzmPcJPQolqVGaDeNg/uqcov2Ayfn6NyE0YsCElonrTUR JEY7BZrOlZg3e1DQ== From: "tip-bot2 for Vernon Lovejoy" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: objtool/urgent] x86/show_trace_log_lvl: Ensure stack pointer is aligned, again Cc: Vernon Lovejoy , Oleg Nesterov , Josh Poimboeuf , x86@kernel.org, linux-kernel@vger.kernel.org In-Reply-To: <20230512104232.GA10227@redhat.com> References: <20230512104232.GA10227@redhat.com> MIME-Version: 1.0 Message-ID: <168440761130.404.15489106698238873699.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766231148860075585?= X-GMAIL-MSGID: =?utf-8?q?1766231148860075585?= The following commit has been merged into the objtool/urgent branch of tip: Commit-ID: 2e4be0d011f21593c6b316806779ba1eba2cd7e0 Gitweb: https://git.kernel.org/tip/2e4be0d011f21593c6b316806779ba1eba2cd7e0 Author: Vernon Lovejoy AuthorDate: Fri, 12 May 2023 12:42:32 +02:00 Committer: Josh Poimboeuf CommitterDate: Tue, 16 May 2023 06:31:04 -07:00 x86/show_trace_log_lvl: Ensure stack pointer is aligned, again The commit e335bb51cc15 ("x86/unwind: Ensure stack pointer is aligned") tried to align the stack pointer in show_trace_log_lvl(), otherwise the "stack < stack_info.end" check can't guarantee that the last read does not go past the end of the stack. However, we have the same problem with the initial value of the stack pointer, it can also be unaligned. So without this patch this trivial kernel module #include static int init(void) { asm volatile("sub $0x4,%rsp"); dump_stack(); asm volatile("add $0x4,%rsp"); return -EAGAIN; } module_init(init); MODULE_LICENSE("GPL"); crashes the kernel. Fixes: e335bb51cc15 ("x86/unwind: Ensure stack pointer is aligned") Signed-off-by: Vernon Lovejoy Signed-off-by: Oleg Nesterov Link: https://lore.kernel.org/r/20230512104232.GA10227@redhat.com Signed-off-by: Josh Poimboeuf --- arch/x86/kernel/dumpstack.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c index 0bf6779..f18ca44 100644 --- a/arch/x86/kernel/dumpstack.c +++ b/arch/x86/kernel/dumpstack.c @@ -195,7 +195,6 @@ static void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, printk("%sCall Trace:\n", log_lvl); unwind_start(&state, task, regs, stack); - stack = stack ? : get_stack_pointer(task, regs); regs = unwind_get_entry_regs(&state, &partial); /* @@ -214,9 +213,13 @@ static void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, * - hardirq stack * - entry stack */ - for ( ; stack; stack = PTR_ALIGN(stack_info.next_sp, sizeof(long))) { + for (stack = stack ?: get_stack_pointer(task, regs); + stack; + stack = stack_info.next_sp) { const char *stack_name; + stack = PTR_ALIGN(stack, sizeof(long)); + if (get_stack_info(stack, task, &stack_info, &visit_mask)) { /* * We weren't on a valid stack. It's possible that