Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2832387pxv; Mon, 12 Jul 2021 03:03:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTfKW0Zn2sBpLDP1zHkqz2FKgoTa+st9iONLNcWv9cC5LuRfEZy3V3KCg461hvB8y9oIML X-Received: by 2002:a92:cf4d:: with SMTP id c13mr1826769ilr.240.1626084224471; Mon, 12 Jul 2021 03:03:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626084224; cv=none; d=google.com; s=arc-20160816; b=XX/tfGH/Wp/+DVkdgrKk8XEGFXykazEJu6vK2wJOyfiBMcJLK1QXoC6WuQFwvLKv6g RxH4gzZaJN5/KbDbzrB8staLZkvnHkRKh43GoFEjGUNPI83+YZ2V2g7CHNTuXLTr06Wp RrQd/IeH/eBKVfMFSEndqa3nV7qBxqUU5iqrIdoGNRygXJbakUoqqI+fzPl4QGecJjog USs+GoE0VYm9QKPbbhPfmBNWv0jFsBo3YDDYNqCkzvZqfzDQ03kHbotrree1e2jICefJ ObfjCGhpdYBnKn9uO7nUUCkhYDVk4bnXJ3g5uTanmf2L8S6Xvm/sV9auM9D9mF0E74HC 6G5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=D5G3eFrKXWThT9I6dUs5/gRalaVjL1tE6EYfyMZGV7Y=; b=pzkwNln57mQZ3sqUVT2VRGXG5EgaLuU6UtYDUBj5D9BHlKU/BtLtsm0kALpDu+4uFx TB0gCVi9kxS7h4wo4Tmvjpb3b3lYHvRfCFDWfFb8J4oar5NBMYyaMSMUZ+KlBnO6lIXG SpBsiWby0nkcbdrh9iNhZmw6mqfdhw/Dit6F4WRXnCmoXjoLq11sxzjxlDSaAvfcpU5v cy6Zswd8fCcFxC53RkXpw60mDultpy6lZ+Z3M0l1cT1qthiWhKo/s7autQ1wNXprYjRH 9At41SH9cCtc1TOelMxVbUIwj1fALgSw8gbDyyldHQNhU+SJ1YZi82wRiPQW7k0NEpEU xAuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=H2PvCYC3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y7si16874026jae.125.2021.07.12.03.03.32; Mon, 12 Jul 2021 03:03:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=H2PvCYC3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243857AbhGLHRv (ORCPT + 99 others); Mon, 12 Jul 2021 03:17:51 -0400 Received: from mail.kernel.org ([198.145.29.99]:53038 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239603AbhGLGw4 (ORCPT ); Mon, 12 Jul 2021 02:52:56 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 8EFC3610A6; Mon, 12 Jul 2021 06:50:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626072608; bh=1hBnDIF+sduapjhfuvMGL5/eDR7r5UOLZyaaGtPZrs4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=H2PvCYC3bgX+ZMbC0mDKmYuymKd6RW2BGL+YtKX77E41LQTZ2wy5wyrylYF7p7DiP 60DxQsAYbL3PZ6HVDEhPSzJXK+FR8m4j2A/d3N5StOdqG2zmUMY0NjWgRq7lASYw46 2pNIm4qEza5sOHKr5Mf3xrb4NyiFwys7BLXBpQRA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Nicholas Piggin , Michael Ellerman , Sasha Levin Subject: [PATCH 5.10 553/593] powerpc: Offline CPU in stop_this_cpu() Date: Mon, 12 Jul 2021 08:11:53 +0200 Message-Id: <20210712060955.248665070@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060843.180606720@linuxfoundation.org> References: <20210712060843.180606720@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Nicholas Piggin [ Upstream commit bab26238bbd44d5a4687c0a64fd2c7f2755ea937 ] printk_safe_flush_on_panic() has special lock breaking code for the case where we panic()ed with the console lock held. It relies on panic IPI causing other CPUs to mark themselves offline. Do as most other architectures do. This effectively reverts commit de6e5d38417e ("powerpc: smp_send_stop do not offline stopped CPUs"), unfortunately it may result in some false positive warnings, but the alternative is more situations where we can crash without getting messages out. Fixes: de6e5d38417e ("powerpc: smp_send_stop do not offline stopped CPUs") Signed-off-by: Nicholas Piggin Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/20210623041245.865134-1-npiggin@gmail.com Signed-off-by: Sasha Levin --- arch/powerpc/kernel/smp.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 0760230be56f..26a028a9233a 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c @@ -600,6 +600,8 @@ static void nmi_stop_this_cpu(struct pt_regs *regs) /* * IRQs are already hard disabled by the smp_handle_nmi_ipi. */ + set_cpu_online(smp_processor_id(), false); + spin_begin(); while (1) spin_cpu_relax(); @@ -615,6 +617,15 @@ void smp_send_stop(void) static void stop_this_cpu(void *dummy) { hard_irq_disable(); + + /* + * Offlining CPUs in stop_this_cpu can result in scheduler warnings, + * (see commit de6e5d38417e), but printk_safe_flush_on_panic() wants + * to know other CPUs are offline before it breaks locks to flush + * printk buffers, in case we panic()ed while holding the lock. + */ + set_cpu_online(smp_processor_id(), false); + spin_begin(); while (1) spin_cpu_relax(); -- 2.30.2