Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2861519pxv; Mon, 12 Jul 2021 03:50:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyB7Z5GyREuhh45M2VhaTxtS1J+7IpdV06T+XbIq8at1zcORo2ckO+eliF92SkTGc5LKmSZ X-Received: by 2002:a92:c7a6:: with SMTP id f6mr22395113ilk.20.1626087033693; Mon, 12 Jul 2021 03:50:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626087033; cv=none; d=google.com; s=arc-20160816; b=Km6fHDq+hnWTRw9EKinIUYq2h/O/MApUUjVdyCRqRoQkcMqcmMY+a42rpbi8zDWoWo 9JLRSOm876fU7hwSMxm1l4+98WGhmzaSddapkaz7W7puafLHZJv+31CrBXCKJOxe4Uzq 0J8xQNyHYlo/OSub5QQSovHaSLZE94ScoegRDffRmKZ2+Imfb1swRk0imNjiguMHqXVy sO/19Zq8qi2Cjp3V44aYywsudEYaemLiNxoHiyiefVU38IUcXLLKdQ3yQBnflsDpoWW+ OzARa8vw5pKNgLw4mRtGI9Isx2EqQ3OaRQuiqSDv+bFzZHfSHsQpQJNqKnJNlaMMXi5H pTpA== 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=29S+C5sChnmC1i9/vWq0htrUdMiPt3UYiCAfU/f2YIo=; b=Q5cFrnC5c0kzwyBRpDP+H19J0tmGmmODT+4rZM1CCCslgokw9DJhPsKSEOK6lF7veI KuIhJV7RRwryyK2vtfrU5WHjojw+BBNn0d/JhLqL+yrZT/B8A7xadN8VAMW9O55m5/Iy bTBqfWaFRsusPMnK9TABhVMp1Z7SVch1YeEKiObmXnZDiaDkGrYvpXPP4gOiU6rkWEN2 lparhHvwCrYlkvEGUw1kLnVaoBKFXTVpPCjc1o69HmRQey5tvkPMxdiyC+DJlNmMHWxu HwwKxITHGPB8gjYdpq031Ewx3dUr82Dc5WoAzlAa5XcCSfmy9y63QAFCbrt8JFFA9Qz7 9uig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=mH7i9rGA; 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 q5si17962540ilg.4.2021.07.12.03.50.20; Mon, 12 Jul 2021 03:50:33 -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=mH7i9rGA; 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 S1353314AbhGLIOw (ORCPT + 99 others); Mon, 12 Jul 2021 04:14:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:43856 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343683AbhGLH2q (ORCPT ); Mon, 12 Jul 2021 03:28:46 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id CB99161370; Mon, 12 Jul 2021 07:24:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626074663; bh=gmheCfvythPcp/bQS7LLZEaWytqmQPx21ikpAMv9Qrs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mH7i9rGAKC72IW23oQLpPg6OiFjf5ruqLteBF7fzc+0aFScfrERToLyCKH1MBaJR8 rPRmsYEGl5+hUgenFQOfmOGVxzbCgYStZWeF+a5Z6kgeGKsH6zJbTPnaYCRqiweQcv lRMGaT4luLI72RRXOxKeUiBEhlrlH4l4anSGl4gM= 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.12 654/700] powerpc: Offline CPU in stop_this_cpu() Date: Mon, 12 Jul 2021 08:12:17 +0200 Message-Id: <20210712061045.434849846@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060924.797321836@linuxfoundation.org> References: <20210712060924.797321836@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 1d7daef1c3b6..216919de87d7 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c @@ -619,6 +619,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(); @@ -634,6 +636,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