All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>,
	"Gautham R. Shenoy" <ego@linux.vnet.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Sasha Levin <alexander.levin@verizon.com>
Subject: [PATCH 4.9 068/104] cpuidle: powernv: Pass correct drv->cpumask for registration
Date: Fri, 22 Dec 2017 09:46:34 +0100	[thread overview]
Message-ID: <20171222084614.728109643@linuxfoundation.org> (raw)
In-Reply-To: <20171222084609.262099650@linuxfoundation.org>

4.9-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>


[ Upstream commit 293d264f13cbde328d5477f49e3103edbc1dc191 ]

drv->cpumask defaults to cpu_possible_mask in __cpuidle_driver_init().
On PowerNV platform cpu_present could be less than cpu_possible in cases
where firmware detects the cpu, but it is not available to the OS.  When
CONFIG_HOTPLUG_CPU=n, such cpus are not hotplugable at runtime and hence
we skip creating cpu_device.

This breaks cpuidle on powernv where register_cpu() is not called for
cpus in cpu_possible_mask that cannot be hot-added at runtime.

Trying cpuidle_register_device() on cpu without cpu_device will cause
crash like this:

cpu 0xf: Vector: 380 (Data SLB Access) at [c000000ff1503490]
    pc: c00000000022c8bc: string+0x34/0x60
    lr: c00000000022ed78: vsnprintf+0x284/0x42c
    sp: c000000ff1503710
   msr: 9000000000009033
   dar: 6000000060000000
  current = 0xc000000ff1480000
  paca    = 0xc00000000fe82d00   softe: 0        irq_happened: 0x01
    pid   = 1, comm = swapper/8
Linux version 4.11.0-rc2 (sv@sagarika) (gcc version 4.9.4
(Buildroot 2017.02-00004-gc28573e) ) #15 SMP Fri Mar 17 19:32:02 IST 2017
enter ? for help
[link register   ] c00000000022ed78 vsnprintf+0x284/0x42c
[c000000ff1503710] c00000000022ebb8 vsnprintf+0xc4/0x42c (unreliable)
[c000000ff1503800] c00000000022ef40 vscnprintf+0x20/0x44
[c000000ff1503830] c0000000000ab61c vprintk_emit+0x94/0x2cc
[c000000ff15038a0] c0000000000acc9c vprintk_func+0x60/0x74
[c000000ff15038c0] c000000000619694 printk+0x38/0x4c
[c000000ff15038e0] c000000000224950 kobject_get+0x40/0x60
[c000000ff1503950] c00000000022507c kobject_add_internal+0x60/0x2c4
[c000000ff15039e0] c000000000225350 kobject_init_and_add+0x70/0x78
[c000000ff1503a60] c00000000053c288 cpuidle_add_sysfs+0x9c/0xe0
[c000000ff1503ae0] c00000000053aeac cpuidle_register_device+0xd4/0x12c
[c000000ff1503b30] c00000000053b108 cpuidle_register+0x98/0xcc
[c000000ff1503bc0] c00000000085eaf0 powernv_processor_idle_init+0x140/0x1e0
[c000000ff1503c60] c00000000000cd60 do_one_initcall+0xc0/0x15c
[c000000ff1503d20] c000000000833e84 kernel_init_freeable+0x1a0/0x25c
[c000000ff1503dc0] c00000000000d478 kernel_init+0x24/0x12c
[c000000ff1503e30] c00000000000b564 ret_from_kernel_thread+0x5c/0x78

This patch fixes the bug by passing correct cpumask from
powernv-cpuidle driver.

Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
[ rjw: Comment massage ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/cpuidle/cpuidle-powernv.c |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

--- a/drivers/cpuidle/cpuidle-powernv.c
+++ b/drivers/cpuidle/cpuidle-powernv.c
@@ -164,6 +164,24 @@ static int powernv_cpuidle_driver_init(v
 		drv->state_count += 1;
 	}
 
+	/*
+	 * On the PowerNV platform cpu_present may be less than cpu_possible in
+	 * cases when firmware detects the CPU, but it is not available to the
+	 * OS.  If CONFIG_HOTPLUG_CPU=n, then such CPUs are not hotplugable at
+	 * run time and hence cpu_devices are not created for those CPUs by the
+	 * generic topology_init().
+	 *
+	 * drv->cpumask defaults to cpu_possible_mask in
+	 * __cpuidle_driver_init().  This breaks cpuidle on PowerNV where
+	 * cpu_devices are not created for CPUs in cpu_possible_mask that
+	 * cannot be hot-added later at run time.
+	 *
+	 * Trying cpuidle_register_device() on a CPU without a cpu_device is
+	 * incorrect, so pass a correct CPU mask to the generic cpuidle driver.
+	 */
+
+	drv->cpumask = (struct cpumask *)cpu_present_mask;
+
 	return 0;
 }
 

  parent reply	other threads:[~2017-12-22  8:58 UTC|newest]

Thread overview: 109+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-22  8:45 [PATCH 4.9 000/104] 4.9.72-stable review Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 001/104] cxl: Check if vphb exists before iterating over AFU devices Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 002/104] arm64: Initialise high_memory global variable earlier Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 003/104] ALSA: hda - add support for docking station for HP 820 G2 Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 004/104] ALSA: hda - add support for docking station for HP 840 G3 Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 006/104] HID: corsair: support for K65-K70 Rapidfire and Scimitar Pro RGB Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 007/104] HID: corsair: Add driver Scimitar Pro RGB gaming mouse 1b1c:1b3e support to hid-corsair Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 008/104] arm: kprobes: Fix the return address of multiple kretprobes Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 009/104] arm: kprobes: Align stack to 8-bytes in test code Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 010/104] nvme-loop: handle cpu unplug when re-establishing the controller Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 011/104] cpuidle: Validate cpu_dev in cpuidle_add_sysfs() Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 012/104] r8152: fix the list rx_done may be used without initialization Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 013/104] crypto: deadlock between crypto_alg_sem/rtnl_mutex/genl_mutex Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 014/104] vsock: track pkt owner vsock Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 015/104] vhost-vsock: add pkt cancel capability Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 016/104] vsock: cancel packets when failing to connect Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 017/104] sch_dsmark: fix invalid skb_cow() usage Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 018/104] bna: integer overflow bug in debugfs Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 019/104] sctp: out_qlen should be updated when pruning unsent queue Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 021/104] hwmon: (max31790) Set correct PWM value Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 022/104] usb: gadget: f_uvc: Sanity check wMaxPacketSize for SuperSpeed Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 023/104] usb: gadget: udc: remove pointer dereference after free Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 024/104] netfilter: nfnl_cthelper: fix runtime expectation policy updates Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 025/104] netfilter: nfnl_cthelper: Fix memory leak Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 026/104] iommu/exynos: Workaround FLPD cache flush issues for SYSMMU v5 Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 027/104] r8152: fix the rx early size of RTL8153 Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 028/104] tipc: fix nametbl deadlock at tipc_nametbl_unsubscribe Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 029/104] inet: frag: release spinlock before calling icmp_send() Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 030/104] pinctrl: st: add irq_request/release_resources callbacks Greg Kroah-Hartman
2017-12-22  8:45 ` [PATCH 4.9 031/104] scsi: lpfc: Fix PT2PT PRLI reject Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 036/104] hwmon: (asus_atk0110) fix uninitialized data access Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 037/104] i2c: mux: pca954x: Add missing pca9546 definition to chip_desc Greg Kroah-Hartman
2017-12-22  9:32   ` Peter Rosin
2017-12-22 15:05     ` Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 038/104] HID: xinmo: fix for out of range for THT 2P arcade controller Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 039/104] ASoC: STI: Fix reader substream pointer set Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 040/104] r8152: prevent the driver from transmitting packets with carrier off Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 041/104] s390/qeth: size calculation outbound buffers Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 042/104] s390/qeth: no ETH header for outbound AF_IUCV Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 043/104] bna: avoid writing uninitialized data into hw registers Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 044/104] i40iw: Receive netdev events post INET_NOTIFIER state Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 045/104] IB/core: Protect against self-requeue of a cq work item Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 046/104] infiniband: Fix alignment of mmap cookies to support VIPT caching Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 047/104] nbd: set queue timeout properly Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 048/104] net: Do not allow negative values for busy_read and busy_poll sysctl interfaces Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 049/104] IB/rxe: double free on error Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 050/104] IB/rxe: increment msn only when completing a request Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 051/104] i40e: Do not enable NAPI on q_vectors that have no rings Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 052/104] RDMA/iser: Fix possible mr leak on device removal event Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 053/104] irda: vlsi_ir: fix check for DMA mapping errors Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 054/104] netfilter: nfnl_cthelper: fix a race when walk the nf_ct_helper_hash table Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 055/104] netfilter: nf_nat_snmp: Fix panic when snmp_trap_helper fails to register Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 056/104] ARM: dts: am335x-evmsk: adjust mmc2 param to allow suspend Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 057/104] cpufreq: Fix creation of symbolic links to policy directories Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 058/104] net: ipconfig: fix ic_close_devs() use-after-free Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 059/104] KVM: pci-assign: do not map smm memory slot pages in vt-d page tables Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 060/104] virtio-balloon: use actual number of stats for stats queue buffers Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 061/104] virtio_balloon: prevent uninitialized variable use Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 062/104] isdn: kcapi: avoid uninitialized data Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 063/104] net: moxa: fix TX overrun memory leak Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 064/104] xhci: plat: Register shutdown for xhci_plat Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 065/104] netfilter: nfnetlink_queue: fix secctx memory leak Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 066/104] Btrfs: fix an integer overflow check Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 067/104] ARM: dma-mapping: disallow dma_get_sgtable() for non-kernel managed memory Greg Kroah-Hartman
2017-12-22  8:46 ` Greg Kroah-Hartman [this message]
2017-12-22  8:46 ` [PATCH 4.9 069/104] bnxt_en: Fix NULL pointer dereference in reopen failure path Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 070/104] backlight: pwm_bl: Fix overflow condition Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 071/104] crypto: crypto4xx - increase context and scatter ring buffer elements Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 072/104] rtc: pl031: make interrupt optional Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 073/104] kvm, mm: account kvm related kmem slabs to kmemcg Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 074/104] net: phy: at803x: Change error to EINVAL for invalid MAC Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 075/104] PCI: Avoid bus reset if bridge itself is broken Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 076/104] scsi: cxgb4i: fix Tx skb leak Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 077/104] scsi: mpt3sas: Fix IO error occurs on pulling out a drive from RAID1 volume created on two SATA drive Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 078/104] PCI: Create SR-IOV virtfn/physfn links before attaching driver Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 079/104] PM / OPP: Move error message to debug level Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 080/104] igb: check memory allocation failure Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 081/104] ixgbe: fix use of uninitialized padding Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 082/104] IB/rxe: check for allocation failure on elem Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 083/104] PCI/AER: Report non-fatal errors only to the affected endpoint Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 084/104] tracing: Exclude generic fields from histograms Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 085/104] ASoC: img-parallel-out: Add pm_runtime_get/put to set_fmt callback Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 086/104] fm10k: fix mis-ordered parameters in declaration for .ndo_set_vf_bw Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 087/104] scsi: lpfc: Fix secure firmware updates Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 088/104] scsi: lpfc: PLOGI failures during NPIV testing Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 089/104] vfio/pci: Virtualize Maximum Payload Size Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 090/104] fm10k: ensure we process SM mbx when processing VF mbx Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 091/104] net: ipv6: send NS for DAD when link operationally up Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 092/104] staging: greybus: light: Release memory obtained by kasprintf Greg Kroah-Hartman
2017-12-22  8:46 ` [PATCH 4.9 093/104] clk: sunxi-ng: sun6i: Rename HDMI DDC clock to avoid name collision Greg Kroah-Hartman
2017-12-22  8:47 ` [PATCH 4.9 094/104] tcp: fix under-evaluated ssthresh in TCP Vegas Greg Kroah-Hartman
2017-12-22  8:47 ` [PATCH 4.9 095/104] rtc: set the alarm to the next expiring timer Greg Kroah-Hartman
2017-12-22  8:47 ` [PATCH 4.9 096/104] cpuidle: fix broadcast control when broadcast can not be entered Greg Kroah-Hartman
2017-12-22  8:47 ` [PATCH 4.9 097/104] thermal: hisilicon: Handle return value of clk_prepare_enable Greg Kroah-Hartman
2017-12-22  8:47 ` [PATCH 4.9 098/104] thermal/drivers/hisi: Fix missing interrupt enablement Greg Kroah-Hartman
2017-12-22  8:47 ` [PATCH 4.9 099/104] thermal/drivers/hisi: Fix kernel panic on alarm interrupt Greg Kroah-Hartman
2017-12-22  8:47 ` [PATCH 4.9 100/104] thermal/drivers/hisi: Simplify the temperature/step computation Greg Kroah-Hartman
2017-12-22  8:47 ` [PATCH 4.9 101/104] thermal/drivers/hisi: Fix multiple alarm interrupts firing Greg Kroah-Hartman
2017-12-22  8:47 ` [PATCH 4.9 102/104] MIPS: math-emu: Fix final emulation phase for certain instructions Greg Kroah-Hartman
2017-12-22  8:47 ` [PATCH 4.9 103/104] platform/x86: asus-wireless: send an EV_SYN/SYN_REPORT between state changes Greg Kroah-Hartman
2017-12-22  8:47 ` [PATCH 4.9 104/104] Revert "Bluetooth: btusb: driver to enable the usb-wakeup feature" Greg Kroah-Hartman
2017-12-22 16:02 ` [PATCH 4.9 000/104] 4.9.72-stable review Greg Kroah-Hartman
2017-12-22 18:29   ` Guenter Roeck
2017-12-23 13:57     ` Greg Kroah-Hartman
2017-12-22 22:34   ` Dan Rue
2017-12-23  9:16     ` Greg Kroah-Hartman
2017-12-22 21:10 ` Shuah Khan
2017-12-23 22:55 ` Guenter Roeck
2017-12-25 13:36   ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171222084614.728109643@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alexander.levin@verizon.com \
    --cc=ego@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=rafael.j.wysocki@intel.com \
    --cc=stable@vger.kernel.org \
    --cc=svaidy@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.