Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2206756imm; Mon, 28 May 2018 03:58:08 -0700 (PDT) X-Google-Smtp-Source: AB8JxZo+UEhzxFfoFuRjsTGJlH9Xa7g7WG17nrZ4FD5nmwAEcFbRYEA/eIUzA1gYZk9mg+qV3djz X-Received: by 2002:a17:902:d20c:: with SMTP id t12-v6mr13068769ply.364.1527505088785; Mon, 28 May 2018 03:58:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527505088; cv=none; d=google.com; s=arc-20160816; b=00vC6EwD2WNJYukkq6xMku+rQugdnsZaXVG8yevo4FbOaQWOCpYSNjL4D/Ow/z4oUf V5bz+JUmpZAGAzQhKbQCQnvTRihi/Rz5+8EUSjEaS/BYcRh2wGLblTU942mSSn62ja2H XGCds1hOVvMlLJpcFVvBXMDC30fqNidKm1sNQ/aJg0UK6O7mUeISbFi/Qv45iUK00x9o QmPn5kO1++ZyoAOGdKcPb11DXJtemHSTVHfrIHh5JEDfCZDb/EdT0lCmZAkut90dk/X0 oViOogKTjc2S7E5upVLWr5cvrmhMNHR61fAbhEaUXQZ7GIpjB3LsOdim5GuMXvwvCv5K ZfTw== 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=Ub9YvDUl8saroTccK/vRyp8IXC1wraxewANh0+m7yvU=; b=tG6N+jD6tUqNl9GkHs1Kzlv4OZW1HQ5fhJe+v1ouPrSKCDEuVP1myHfiAgH02JJCr3 09lsG6O68FH+iW08HNVqDyXa9QNhi3mYHpxdVS7VD6z0w2H/6CTG8lUYElXB/hShqS2A hVMskVC4gDMsDUfL04PjBuUlzYJAeVfmDBFUNIlK8AQ7Ath2S4UbaXOTyRVN7/r7S0w0 MXcZNNKhtbAYYtiQLWrTN0Y8PCFE/GwFirEyi0pvkWoNgOaQOHKwANLXj4SNxkA31s0v f824uetJkfRe63UXAvnJzLSeZOy4Pi3aaZ43+JezWQuBf4Xc5gRP/qO0S7TvRa8MIQOv Wl6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=jGE5FN7M; 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 j14-v6si23342809pgc.627.2018.05.28.03.57.53; Mon, 28 May 2018 03:58:08 -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=jGE5FN7M; 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 S937884AbeE1K5p (ORCPT + 99 others); Mon, 28 May 2018 06:57:45 -0400 Received: from mail.kernel.org ([198.145.29.99]:45910 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932527AbeE1K5l (ORCPT ); Mon, 28 May 2018 06:57:41 -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 6F51B208A2; Mon, 28 May 2018 10:57:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527505061; bh=+ewTQr7XUB1lAypEmIKzJ/KGKax4ckOC91muUf8wUnI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jGE5FN7MRTsUZ9XrLp9kaNeCFbkFp9TnyBhcO+PYCXaQm7h+a354W/6JYtzv3P9Jp T0N/iVzVdYWcw78xpApuWbDVBxqo2r2gpRYdfIaC3eCFmcMO5inWKDptjQ+2zrL1TM +cN8ynk4L6SKy6+49/1nvBPef4m1uLeKICoYPqeo= 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.14 362/496] powerpc/mpic: Check if cpu_possible() in mpic_physmask() Date: Mon, 28 May 2018 12:02:27 +0200 Message-Id: <20180528100335.040964846@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100319.498712256@linuxfoundation.org> References: <20180528100319.498712256@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.14-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; }