Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp784789rwd; Thu, 18 May 2023 04:03:38 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4rs6B7VpHnzQBijEmtU3PDQAPo79yUssiQkai/XetvPGAczXL0dS3v7kHv+Qfa8sHK/dQd X-Received: by 2002:a05:6a00:1696:b0:647:7ee8:6248 with SMTP id k22-20020a056a00169600b006477ee86248mr3886364pfc.14.1684407818003; Thu, 18 May 2023 04:03:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684407817; cv=none; d=google.com; s=arc-20160816; b=V+qcypsq0bxq5SkLcCGpIV7LB9ntIQVW1AnWe5tRd/4WsOlwRvyLujRD3VKG0cJ2Y0 uKDFnhNVJbMXJodtRbzIXNIxsRnUqghlyX3M3WQUaxyGsQOU6JSzyEWMZ/0daFA9bVFD UfOndqTridoKxC2ovlU1U6S0waTMjMs87MUk3DKJ8BK5edQ07JroOQ2PiBYTjiSfvnvN a2NOj7FtsvewnAHbhDK735xL5DnKNvcLU7Qf1w4fzt9q+fIEfDa0su8uONd4RV6DtynL eV11XvFKlrymlursLVRB8DEpy6vyto4GlcLeeCCVXh95DZsZ6zNFPLmbRD40cns+mUKU pZWg== 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.b=WbNaLUOC; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c77-20020a624e50000000b00643b0e26777si1399219pfb.8.2023.05.18.04.03.22; Thu, 18 May 2023 04:03:37 -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.b=WbNaLUOC; 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 S230215AbjERLAR (ORCPT + 99 others); Thu, 18 May 2023 07:00:17 -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 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit 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 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