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>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
Sasha Levin <alexander.levin@verizon.com>
Subject: [PATCH 4.9 011/104] cpuidle: Validate cpu_dev in cpuidle_add_sysfs()
Date: Fri, 22 Dec 2017 09:45:37 +0100 [thread overview]
Message-ID: <20171222084610.088036478@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 ad0a45fd9c14feebd000b6e84189d0edff265170 ]
If a given cpu is not in cpu_present and cpu hotplug
is disabled, arch can skip setting up the cpu_dev.
Arch cpuidle driver should pass correct cpu mask
for registration, but failing to do so by the driver
causes error to propagate and crash like this:
[ 30.076045] Unable to handle kernel paging request for data at address 0x00000048
[ 30.076100] Faulting instruction address: 0xc0000000007b2f30
cpu 0x4d: Vector: 300 (Data Access) at [c000003feb18b670]
pc: c0000000007b2f30: kobject_get+0x20/0x70
lr: c0000000007b3c94: kobject_add_internal+0x54/0x3f0
sp: c000003feb18b8f0
msr: 9000000000009033
dar: 48
dsisr: 40000000
current = 0xc000003fd2ed8300
paca = 0xc00000000fbab500 softe: 0 irq_happened: 0x01
pid = 1, comm = swapper/0
Linux version 4.11.0-rc2-svaidy+ (sv@sagarika) (gcc version 6.2.0
20161005 (Ubuntu 6.2.0-5ubuntu12) ) #10 SMP Sun Mar 19 00:08:09 IST 2017
enter ? for help
[c000003feb18b960] c0000000007b3c94 kobject_add_internal+0x54/0x3f0
[c000003feb18b9f0] c0000000007b43a4 kobject_init_and_add+0x64/0xa0
[c000003feb18ba70] c000000000e284f4 cpuidle_add_sysfs+0xb4/0x130
[c000003feb18baf0] c000000000e26038 cpuidle_register_device+0x118/0x1c0
[c000003feb18bb30] c000000000e26c48 cpuidle_register+0x78/0x120
[c000003feb18bbc0] c00000000168fd9c powernv_processor_idle_init+0x110/0x1c4
[c000003feb18bc40] c00000000000cff8 do_one_initcall+0x68/0x1d0
[c000003feb18bd00] c0000000016242f4 kernel_init_freeable+0x280/0x360
[c000003feb18bdc0] c00000000000d864 kernel_init+0x24/0x160
[c000003feb18be30] c00000000000b4e8 ret_from_kernel_thread+0x5c/0x74
Validating cpu_dev fixes the crash and reports correct error message like:
[ 30.163506] Failed to register cpuidle device for cpu136
[ 30.173329] Registration of powernv driver failed.
Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
[ 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/sysfs.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
--- a/drivers/cpuidle/sysfs.c
+++ b/drivers/cpuidle/sysfs.c
@@ -613,6 +613,18 @@ int cpuidle_add_sysfs(struct cpuidle_dev
struct device *cpu_dev = get_cpu_device((unsigned long)dev->cpu);
int error;
+ /*
+ * Return if cpu_device is not setup for this CPU.
+ *
+ * This could happen if the arch did not set up cpu_device
+ * since this CPU is not in cpu_present mask and the
+ * driver did not send a correct CPU mask during registration.
+ * Without this check we would end up passing bogus
+ * value for &cpu_dev->kobj in kobject_init_and_add()
+ */
+ if (!cpu_dev)
+ return -ENODEV;
+
kdev = kzalloc(sizeof(*kdev), GFP_KERNEL);
if (!kdev)
return -ENOMEM;
next prev parent reply other threads:[~2017-12-22 10:30 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 ` Greg Kroah-Hartman [this message]
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 ` [PATCH 4.9 068/104] cpuidle: powernv: Pass correct drv->cpumask for registration Greg Kroah-Hartman
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=20171222084610.088036478@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=alexander.levin@verizon.com \
--cc=linux-kernel@vger.kernel.org \
--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.