Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2218450imm; Mon, 28 May 2018 04:09:56 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoP+I+icWY/Hv8IMy6ar8TwnPRIe2v9wKe8lYLTKb/wYOVh7jvpRGVa5OXaCHYNCnYhkwUp X-Received: by 2002:a63:bd49:: with SMTP id d9-v6mr10430811pgp.14.1527505796861; Mon, 28 May 2018 04:09:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527505796; cv=none; d=google.com; s=arc-20160816; b=aKS3/LyEDMRQG3Qgj5gm1ZC6cqA+HqsMV6UAdD1Fq5z5W+bVlCUsKP10HqvUAI5A0g bbJ2ttLoZhcnCPbw3GSwNv7sKYjmIT9ZLdtPiTTlLy8UP9bUAg0LG3z9DbY3nz1xz7GS vLeHe2R51IEgD7ciBTUuxVu1zJ13h5cvEcDXlGY9wHrt5o6Mf6zchpsuCV3TmTAIshmM nQ7d6RGuSA1C81ap66J0paRSUHn8bWIRh8ecZzxLf1cGQ+iclWahdlH7QLkfHEg81JsS P/O3kBGHwpOJ6iXPZiL/COUon0jCIta/jj6aBjYzqXsDVkAHyEAh9g9Gp3DK1JDiwQU5 A0nQ== 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=XO51nIBwL47ZpxZ+K2F/xzOZ+3xVikbhuorZnQK/ORc=; b=zWJtiHCWw9iszl0vy9bY5Xk/tFPl6vjJHiYTKd1AwGpnuIhtsZ9mmZx6WDtYu0ExUP Zaf2lYH7lOHD+GlTi4VzuVdJwoJaaf/W7dQAbl5PZ5MbvMd/B3GVPafYTDcghVZvtdBY V8klw+maZKmhyyXNijwulA7OEc18Fs+3PMJ+BjmCDKTBiwdwFpqH8zMPmIF4UoIRtcAg HgCrJx1rziIQWzS+yPseNZ0mR6BdNKSLZqJK5cS0iJNKUOXZn78JlJTRnhXiXnRf2W5f WHGApd5DetVj9lS92mU3XCUTiazk/SLC3Fawb9NixHlLb8Lb+PddJbJFE4EaEss4M7t3 +2YA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ngMWcxIT; 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 h8-v6si12051166pll.58.2018.05.28.04.09.41; Mon, 28 May 2018 04:09:56 -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=ngMWcxIT; 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 S1423635AbeE1LIg (ORCPT + 99 others); Mon, 28 May 2018 07:08:36 -0400 Received: from mail.kernel.org ([198.145.29.99]:55956 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1423615AbeE1LIa (ORCPT ); Mon, 28 May 2018 07:08:30 -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 84BE72087E; Mon, 28 May 2018 11:08:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527505710; bh=3X6zptOm9/2FEv9oxwhYef8GsXVoB1BGIA1S1RYDqLg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ngMWcxIT2e3A9prHiP5gNBEx0JxOwf5Cv7HOsuQG3D2Cl67k2fl/mToykVAD8WnL5 5a/GsoCY+3PU3/RZXFiewb/VOmeIeChe0iseJ0x/QDT15ElIbvRj4eObyDV728sRaC SwDXsfK4FtXswx/Jq4F9BSpQFOQhDca1OT9VikRE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Michael Ellerman , Sasha Levin Subject: [PATCH 4.16 100/272] powerpc/mpic: Check if cpu_possible() in mpic_physmask() Date: Mon, 28 May 2018 12:02:13 +0200 Message-Id: <20180528100249.517441233@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100240.256525891@linuxfoundation.org> References: <20180528100240.256525891@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 4.16-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 @@ -626,7 +626,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; }