linux/drivers
Rafael J. Wysocki cfd402c22c driver core: Extend device_is_dependent()
commit 3d1cf435e2 upstream.

If the device passed as the target (second argument) to
device_is_dependent() is not completely registered (that is, it has
been initialized, but not added yet), but the parent pointer of it
is set, it may be missing from the list of the parent's children
and device_for_each_child() called by device_is_dependent() cannot
be relied on to catch that dependency.

For this reason, modify device_is_dependent() to check the ancestors
of the target device by following its parent pointer in addition to
the device_for_each_child() walk.

Fixes: 9ed9895370 ("driver core: Functional dependencies tracking support")
Reported-by: Stephan Gerhold <stephan@gerhold.net>
Tested-by: Stephan Gerhold <stephan@gerhold.net>
Reviewed-by: Saravana Kannan <saravanak@google.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://lore.kernel.org/r/17705994.d592GUb2YH@kreacher
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-01-27 11:05:42 +01:00
..
accessibility
acpi ACPI: scan: Make acpi_bus_get_device() clear return pointer on error 2021-01-27 11:05:35 +01:00
amba
android binder: fix UAF when releasing todo list 2020-10-29 09:54:56 +01:00
ata ata: sata_nv: Fix retrieving of active qcs 2020-11-05 11:08:38 +01:00
atm atm: idt77252: call pci_disable_device() on error path 2021-01-12 20:10:17 +01:00
auxdisplay
base driver core: Extend device_is_dependent() 2021-01-27 11:05:42 +01:00
bcma
block block: rsxx: select CONFIG_CRC32 2021-01-17 14:04:22 +01:00
bluetooth Bluetooth: revert: hci_h5: close serdev device and free hu in h5_close 2021-01-12 20:10:20 +01:00
bus bus: fsl-mc: fix error return code in fsl_mc_object_allocate() 2020-12-30 11:26:02 +01:00
cdrom
char random32: make prandom_u32() output unpredictable 2020-11-18 19:18:52 +01:00
clk clk: tegra30: Add hda clock default rates to clock driver 2021-01-27 11:05:37 +01:00
clocksource clocksource/drivers/arm_arch_timer: Correct fault programming of CNTKCTL_EL1.EVNTI 2020-12-30 11:26:00 +01:00
connector
cpufreq cpufreq: powernow-k8: pass policy rather than use cpufreq_cpu_get() 2021-01-17 14:04:21 +01:00
cpuidle cpuidle: Fixup IRQ state 2020-09-09 19:04:23 +02:00
crypto chtls: Fix chtls resources release sequence 2021-01-17 14:04:20 +01:00
dax
dca
devfreq PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out 2020-10-01 13:14:26 +02:00
dio
dma dmaengine: xilinx_dma: fix mixed_enum_type coverity warning 2021-01-17 14:04:22 +01:00
dma-buf dma-fence: Serialise signal enabling (dma_fence_enable_sw_signaling) 2020-10-01 13:14:24 +02:00
edac EDAC/amd64: Fix PCI component registration 2020-12-30 11:26:10 +01:00
eisa
extcon extcon: max77693: Fix modalias string 2020-12-30 11:26:03 +01:00
firewire
firmware firmware: arm_sdei: Use cpus_read_lock() to avoid races with cpuhp 2020-10-01 13:14:35 +02:00
fmc
fpga fpga: dfl: fix bug in port reset handshake 2020-07-29 10:16:48 +02:00
fsi
gnss gnss: sirf: fix error return code in sirf_probe() 2020-06-22 09:05:28 +02:00
gpio gpio: eic-sprd: break loop when getting NULL device resource 2020-12-30 11:25:45 +01:00
gpu drm/nouveau/kms/nv50-: fix case where notifier buffer is at offset 0 2021-01-27 11:05:38 +01:00
hid HID: Ignore battery for Elan touchscreen on ASUS UX550 2021-01-27 11:05:37 +01:00
hsi HSI: omap_ssi: Don't jump to free ID in ssi_add_controller() 2020-12-30 11:25:57 +01:00
hv hv_balloon: disable warning when floor reached 2020-11-18 19:18:41 +01:00
hwmon hwmon: (pmbus/max34440) Fix status register reads for MAX344{51,60,61} 2020-10-29 09:55:02 +01:00
hwspinlock
hwtracing stm class: Fix module init return on allocation failure 2021-01-27 11:05:40 +01:00
i2c i2c: octeon: check correct size of maximum RECV_LEN packet 2021-01-27 11:05:38 +01:00
ide scsi: ide: Do not set the RQF_PREEMPT flag for sense requests 2021-01-12 20:10:16 +01:00
idle
iio iio: ad5504: Fix setting power-down state 2021-01-27 11:05:39 +01:00
infiniband RDMA/mlx5: Fix wrong free of blue flame register on error 2021-01-19 18:22:38 +01:00
input Input: cyapa_gen6 - fix out-of-bounds stack access 2020-12-30 11:26:07 +01:00
iommu iommu/intel: Fix memleak in intel_irq_remapping_alloc 2021-01-17 14:04:22 +01:00
ipack ipack: tpci200: fix error return code in tpci200_register() 2020-05-27 17:37:43 +02:00
irqchip irqchip/mips-cpu: Set IPI domain parent chip 2021-01-27 11:05:40 +01:00
isdn misdn: dsp: select CONFIG_BITREVERSE 2021-01-19 18:22:36 +01:00
leds leds: bcm6328, bcm6358: use devres LED registering function 2020-11-05 11:08:46 +01:00
lightnvm lightnvm: select CONFIG_CRC32 2021-01-17 14:04:22 +01:00
macintosh drivers/macintosh: Fix memleak in windfarm_pm112 driver 2020-06-22 09:05:29 +02:00
mailbox mailbox: avoid timer start from callback 2020-10-30 10:38:21 +01:00
mcb
md dm integrity: fix a crash if "recalculate" used without "internal_hash" 2021-01-27 11:05:36 +01:00
media media: gp8psk: initialize stats at power control logic 2021-01-06 14:45:00 +01:00
memory memory: emif: Remove bogus debugfs error handling 2020-11-05 11:08:45 +01:00
memstick memstick: r592: Fix error return in r592_probe() 2020-12-30 11:26:00 +01:00
message scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove() 2020-11-05 11:08:47 +01:00
mfd mfd: sprd: Add wakeup capability for PMIC IRQ 2020-11-18 19:18:46 +01:00
misc misc: vmw_vmci: fix kernel info-leak by initializing dbells in vmci_ctx_get_chkpt_doorbells() 2021-01-06 14:45:00 +01:00
mmc mmc: sdhci-xenon: fix 1.8v regulator stabilization 2021-01-27 11:05:35 +01:00
mtd Revert "mtd: spinand: Fix OOB read" 2021-01-09 13:43:47 +01:00
mux
net can: peak_usb: fix use after free bugs 2021-01-27 11:05:39 +01:00
nfc nfc: s3fwrn5: Release the nfc firmware 2020-12-30 11:26:04 +01:00
ntb NTB: hw: amd: fix an issue about leak system resources 2020-10-30 10:38:25 +01:00
nubus
nvdimm libnvdimm/namespace: Fix reaping of invalidated block-window-namespace labels 2020-12-30 11:26:17 +01:00
nvme nvme: free sq/cq dbbuf pointers when dbbuf set fails 2020-12-02 08:48:09 +01:00
nvmem nvmem: qfprom: remove incorrect write support 2020-06-10 21:35:00 +02:00
of of/address: Fix of_node memory leak in of_dma_is_coherent 2020-11-18 19:18:48 +01:00
opp
oprofile
parisc parisc: mask out enable and reserved bits from sba imask 2020-08-19 08:15:07 +02:00
parport
pci PCI: Fix pci_slot_release() NULL pointer dereference 2020-12-30 11:26:17 +01:00
pcmcia
perf drivers/perf: xgene_pmu: Fix uninitialized resource struct 2020-10-29 09:55:00 +01:00
phy phy: tegra: xusb: Fix dangling pointer on probe failure 2020-12-02 08:48:10 +01:00
pinctrl pinctrl: sunxi: Always call chained_irq_{enter, exit} in sunxi_pinctrl_irq_handler 2020-12-30 11:26:16 +01:00
platform platform/x86: intel-vbtn: Drop HP Stream x360 Convertible PC 11 from allow-list 2021-01-27 11:05:39 +01:00
pnp
power power: supply: bq24190_charger: fix reference leak 2020-12-30 11:25:57 +01:00
powercap powercap: restrict energy meter to root access 2020-11-10 21:11:27 +01:00
pps
ps3 powerpc/ps3: use dma_mapping_error() 2020-12-30 11:26:04 +01:00
ptp
pwm pwm: lp3943: Dynamically allocate PWM chip base 2020-12-30 11:26:05 +01:00
rapidio rapidio: fix the missed put_device() for rio_mport_add_riodev 2020-10-30 10:38:21 +01:00
ras
regulator regulator: workaround self-referent regulators 2020-11-24 13:27:25 +01:00
remoteproc remoteproc: qcom: q6v5: Update running state before requesting stop 2020-08-21 11:05:34 +02:00
reset reset: uniphier: Add SCSSI reset control for each channel 2020-02-24 08:34:44 +01:00
rpmsg rpmsg: glink: Use complete_all for open states 2020-11-05 11:08:43 +01:00
rtc rtc: sun6i: Fix memleak in sun6i_rtc_clk_init 2021-01-06 14:45:01 +01:00
s390 s390/dasd: fix list corruption of lcu list 2020-12-30 11:26:10 +01:00
sbus
scsi scsi: megaraid_sas: Fix MEGASAS_IOC_FIRMWARE regression 2021-01-27 11:05:38 +01:00
sfi
sh
siox
slimbus slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI 2020-12-30 11:25:57 +01:00
sn
soc soc: qcom: smp2p: Safely acquire spinlock without IRQs 2020-12-30 11:26:14 +01:00
soundwire
spi spi: cadence: cache reference clock rate during probe 2021-01-23 15:49:57 +01:00
spmi
ssb
staging staging: mt7621-dma: Fix a resource leak in an error handling path 2021-01-12 20:10:20 +01:00
target scsi: target: Fix XCOPY NAA identifier lookup 2021-01-12 20:10:25 +01:00
tc
tee optee: add writeback to valid memory type 2020-12-02 08:48:12 +01:00
thermal thermal: rcar_thermal: Handle probe error gracefully 2020-10-01 13:14:39 +02:00
thunderbolt thunderbolt: Add the missed ida_simple_remove() in ring_request_msix() 2020-11-18 19:18:49 +01:00
tty serial: mvebu-uart: fix tx lost characters at power off 2021-01-27 11:05:40 +01:00
uio uio: Fix use-after-free in uio_unregister_device() 2020-11-18 19:18:49 +01:00
usb xhci: tegra: Delay for disabling LFPS detector 2021-01-27 11:05:41 +01:00
uwb
vfio vfio/pci: Move dummy_resources_list init in vfio_pci_probe() 2021-01-06 14:44:59 +01:00
vhost vhost_net: fix ubuf refcount incorrectly when sendmsg fails 2021-01-12 20:10:19 +01:00
video video: hyperv_fb: Fix the mmap() regression for v5.4.y and older 2021-01-12 20:10:20 +01:00
virt drivers/virt/fsl_hypervisor: Fix error handling path 2020-10-29 09:55:09 +01:00
virtio virtio_ring: Avoid loop when vq is broken in virtqueue_poll 2020-08-26 10:31:01 +02:00
visorbus visorbus: fix uninitialized variable access 2020-02-24 08:34:47 +01:00
vlynq
vme vme: bridges: reduce stack usage 2020-02-24 08:34:47 +01:00
w1 w1: mxc_w1: Fix timeout resolution problem leading to bus error 2020-11-05 11:08:47 +01:00
watchdog watchdog: coh901327: add COMMON_CLK dependency 2020-12-30 11:26:05 +01:00
xen xen: Fix event channel callback via INTX/GSI 2021-01-27 11:05:37 +01:00
zorro
Kconfig
Makefile