Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp1756001pxb; Thu, 16 Sep 2021 15:00:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxMru9NTGXdRtLM4au0vc0iLoszUtUNeTnfSzYl/iltkV2dgXqAOuPdV+drI4PJ0Mru5iJJ X-Received: by 2002:a6b:7212:: with SMTP id n18mr5840573ioc.175.1631829644635; Thu, 16 Sep 2021 15:00:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631829644; cv=none; d=google.com; s=arc-20160816; b=D75EE4LpNhfB+vsvQjlbW+qqGTIOxBiXmUEyhwma7A2ZP8lRVPPkMOJeX7Pm+TH22q Zj03X9tFQ9vCbVLcxl2eFFsniRr7UqX0MRwGHI8lq85pmONJ4sokkcgJG0UvOQe83z6/ 5lJO4bviYc1Dqc7lKvV4I/gCNMAcwFLcJsjCWJ3xSKsvtA5U7URq+iXaZsxr3dSK2e6C yozRb5kDCdtbVMnyFaC8QiIlfdFDGAuXpesl8/WUyUFGSSvLUhbzuq39x0TvpqO5XJi2 aRbXBl1shUTin6khWj/uS9nKrRGN8zA1oN6aJm2RE0RruEzU9emNj0aJAeNMLDvY4tvq vWPw== 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=q2jy5fNaDNmySumFDifR8BWIVPumHWj8RglWSF2DjUI=; b=v8DS3CTwzLy2b9GUsrzuYj2Af0+4z/UKb+NY/aRGbJUd1qjLj11SZcpUENFMh7HvpQ XzAw6BZCpT6acAVpOIEzbT76CDKTRH6jMshnfkO0UMDxaaOlNah0srXYbqjg0S+bueRq KZ3h/yc/hGexE1/BQJim1dCL3BFJfbmzGjga2S1aFjDUYwFro6ov9GP5Ml8/TOinxj1Q PEoj0mT3Vd7sPNEvWBObSezAGoplgAxU+LyhxsqaSx8rMMy6Z2ZFdW268IH9P/rQBDUg YxHWFYz+ltTSSuhMHXzdLjLXu6hMu/ziz0yTOpXZBTNAVDq5rUEEY75VzynK2X/jziCn yTQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=MA+1YSPn; 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 y11si3807242ilh.174.2021.09.16.15.00.33; Thu, 16 Sep 2021 15:00: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=MA+1YSPn; 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 S240950AbhIPQnM (ORCPT + 99 others); Thu, 16 Sep 2021 12:43:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:52008 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243332AbhIPQht (ORCPT ); Thu, 16 Sep 2021 12:37:49 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 8E1046142A; Thu, 16 Sep 2021 16:22:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1631809350; bh=z1DqO8IRBjaZIL8F3r1F3PtmWISEyGlTglJpiRdy8Qc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MA+1YSPntlp+B9MduzkKH6YQHsxdLbUTLRqlja+Jf/RKPeL42KeoMYGjjR10CqHOT C+ZvxkGPV08Mka67tKJCiBe4spdYMOancjow9fDVdyngXQLzz9nVwceXxhIBWgM8bB wA9DPD7wfB+JfnARgfjk0oP8qF4m8RzboeWVQSWg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, "Aneesh Kumar K.V" , Srikar Dronamraju , Michael Ellerman , Sasha Levin Subject: [PATCH 5.13 123/380] powerpc/smp: Fix a crash while booting kvm guest with nr_cpus=2 Date: Thu, 16 Sep 2021 17:58:00 +0200 Message-Id: <20210916155808.229133033@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210916155803.966362085@linuxfoundation.org> References: <20210916155803.966362085@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: Srikar Dronamraju [ Upstream commit 8efd249babea2fec268cff90b9f5ca723dbb7499 ] Aneesh reported a crash with a fairly recent upstream kernel when booting kernel whose commandline was appended with nr_cpus=2 1:mon> e cpu 0x1: Vector: 300 (Data Access) at [c000000008a67bd0] pc: c00000000002557c: cpu_to_chip_id+0x3c/0x100 lr: c000000000058380: start_secondary+0x460/0xb00 sp: c000000008a67e70 msr: 8000000000001033 dar: 10 dsisr: 80000 current = 0xc00000000891bb00 paca = 0xc0000018ff981f80 irqmask: 0x03 irq_happened: 0x01 pid = 0, comm = swapper/1 Linux version 5.13.0-rc3-15704-ga050a6d2b7e8 (kvaneesh@ltc-boston8) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #433 SMP Tue May 25 02:38:49 CDT 2021 1:mon> t [link register ] c000000000058380 start_secondary+0x460/0xb00 [c000000008a67e70] c000000008a67eb0 (unreliable) [c000000008a67eb0] c0000000000589d4 start_secondary+0xab4/0xb00 [c000000008a67f90] c00000000000c654 start_secondary_prolog+0x10/0x14 Current code assumes that num_possible_cpus() is always greater than threads_per_core. However this may not be true when using nr_cpus=2 or similar options. Handle the case where num_possible_cpus() is not an exact multiple of threads_per_core. Fixes: c1e53367dab1 ("powerpc/smp: Cache CPU to chip lookup") Reported-by: Aneesh Kumar K.V Signed-off-by: Srikar Dronamraju Debugged-by: Michael Ellerman Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/20210826100401.412519-2-srikar@linux.vnet.ibm.com Signed-off-by: Sasha Levin --- arch/powerpc/kernel/smp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index df6b468976d5..7da1e01e2c7f 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c @@ -1085,7 +1085,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) } if (cpu_to_chip_id(boot_cpuid) != -1) { - int idx = num_possible_cpus() / threads_per_core; + int idx = DIV_ROUND_UP(num_possible_cpus(), threads_per_core); /* * All threads of a core will all belong to the same core, -- 2.30.2