Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2507881imm; Mon, 28 May 2018 09:23:27 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqv7oKRbQ2Q/GNgfp3eTBJrGlglNBwFp56esb82jI9/GJbC2U+oqSF4Pr0KD1573LkjVqNC X-Received: by 2002:a62:1549:: with SMTP id 70-v6mr14152031pfv.91.1527524607328; Mon, 28 May 2018 09:23:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527524607; cv=none; d=google.com; s=arc-20160816; b=nU98f+u8TC8cMpjqn98OI5C9EY1qo5IgE5MCjjHMBCtBgm+9I5wDabV9XTTw8a6WTm wHbujQktdWHbP/sn53JfQIxJW1dSyE0rPxB6RyzqG5GHqJz6vztd1ogpdb4nwyZMKSuX BapwY/WO/4RwaW84v29bSUuaBJp2uooe2esTNBWh1QB7C3YvmCIC/+tmLT0RtOWUq323 R5010/7xIILug5/CxwLc2Fwsk8FXhkLxI5GHxspr79dilNa8kz8F2hdbK3aB7OrPd+tk 8P+PMqTj/Gtg6m35BhwpEi4FGMYxUlboZ5qK7j6fzP4z5wWnXnh/IVavy64+Z9aLo4D1 0Y+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=+e+C3iIXmOlFbdLkhUlRBk9kg1GCHOiFh/XW3Pu1iUE=; b=sqMEBkCT8ZGGS1kyrQo6zbU6MkBhQov2eZhNR9/W+lmtQYwqwYdr+rVUB24b2HUkts YDmBWLPwGXGQzo2V0Il1LNH0TPQ3irzmx1yc/mBl3XuOAyk3tug+az7u+7vMi/4KDLI3 mEasxtBg/FTq+g+s4WiQ5Ex5+qFluELuhZHd1pl0OyEkC5rcL80IPdKo8LPJ85WUN50k cR5v9Oir4itNgwWMP1pmQtLAhHM+CXu2gX2RtIHk6sDeqIKTwEhTLpfj9tfDAODgBlPb atYbbzijlB47s2xPVm7kpOvlHof9uqFByS8HjHn7kyCdmPmKZbzLbp6TZFZUmNX01Rvl CIaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=qPe5TySa; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b3-v6si30144319plc.14.2018.05.28.09.23.12; Mon, 28 May 2018 09:23:27 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=qPe5TySa; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936740AbeE1QWq (ORCPT + 99 others); Mon, 28 May 2018 12:22:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:59586 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936579AbeE1KLX (ORCPT ); Mon, 28 May 2018 06:11:23 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 92B912086D; Mon, 28 May 2018 10:11:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527502283; bh=9/VEy5e57en9Ejaoo1CfmHKO3nUlnvq/b8nT8MubWrg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qPe5TySaST6VRtUfgIq289NhVm9OVR92zVqqVb4YXvlqVsIXDwt+jNfsIR4b/N+pd OQtr/uvxxk1BeNPNOFfLQ7H7hOFRJuyxdg9SdCnRU1usxrPxe5JK9fZerW+o2HoVEv 83jY7p98j23d6SEsSym4GdeNFoK3ya0NsnBMvOmE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Michael Ellerman , Sasha Levin Subject: [PATCH 3.18 129/185] powerpc/mpic: Check if cpu_possible() in mpic_physmask() Date: Mon, 28 May 2018 12:02:50 +0200 Message-Id: <20180528100104.198883804@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100050.700971285@linuxfoundation.org> References: <20180528100050.700971285@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.18-stable review patch. If anyone has any objections, please let me know. ------------------ From: Michael Ellerman [ Upstream commit 0834d627fbea00c1444075eb3e448e1974da452d ] In mpic_physmask() we loop over all CPUs up to 32, then get the hard SMP processor id of that CPU. Currently that's possibly walking off the end of the paca array, but in a future patch we will change the paca array to be an array of pointers, and in that case we will get a NULL for missing CPUs and oops. eg: Unable to handle kernel paging request for data at address 0x88888888888888b8 Faulting instruction address: 0xc00000000004e380 Oops: Kernel access of bad area, sig: 11 [#1] ... NIP .mpic_set_affinity+0x60/0x1a0 LR .irq_do_set_affinity+0x48/0x100 Fix it by checking the CPU is possible, this also fixes the code if there are gaps in the CPU numbering which probably never happens on mpic systems but who knows. Debugged-by: Nicholas Piggin Signed-off-by: Michael Ellerman Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- arch/powerpc/sysdev/mpic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c @@ -627,7 +627,7 @@ static inline u32 mpic_physmask(u32 cpum int i; u32 mask = 0; - for (i = 0; i < min(32, NR_CPUS); ++i, cpumask >>= 1) + for (i = 0; i < min(32, NR_CPUS) && cpu_possible(i); ++i, cpumask >>= 1) mask |= (cpumask & 1) << get_hard_smp_processor_id(i); return mask; }