linux/drivers/misc/cardreader
Tong Zhang 3ce3e45cc3 misc: alcor_pci: fix null-ptr-deref when there is no PCI bridge
There is an issue with the ASPM(optional) capability checking function.
A device might be attached to root complex directly, in this case,
bus->self(bridge) will be NULL, thus priv->parent_pdev is NULL.
Since alcor_pci_init_check_aspm(priv->parent_pdev) checks the PCI link's
ASPM capability and populate parent_cap_off, which will be used later by
alcor_pci_aspm_ctrl() to dynamically turn on/off device, what we can do
here is to avoid checking the capability if we are on the root complex.
This will make pdev_cap_off 0 and alcor_pci_aspm_ctrl() will simply
return when bring called, effectively disable ASPM for the device.

[    1.246492] BUG: kernel NULL pointer dereference, address: 00000000000000c0
[    1.248731] RIP: 0010:pci_read_config_byte+0x5/0x40
[    1.253998] Call Trace:
[    1.254131]  ? alcor_pci_find_cap_offset.isra.0+0x3a/0x100 [alcor_pci]
[    1.254476]  alcor_pci_probe+0x169/0x2d5 [alcor_pci]

Co-developed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Tong Zhang <ztong0001@gmail.com>
Link: https://lore.kernel.org/r/20210513040732.1310159-1-ztong0001@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-05-14 13:47:37 +02:00
..
alcor_pci.c misc: alcor_pci: fix null-ptr-deref when there is no PCI bridge 2021-05-14 13:47:37 +02:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile misc: rtsx: Add support new chip rts5228 mmc: rtsx: Add support MMC_CAP2_NO_MMC 2020-07-10 14:58:47 +02:00
rtl8411.c misc: rtsx: Remove rtsx_pci_read/write_config() wrappers 2020-07-22 13:29:44 +02:00
rts5209.c misc: rtsx: Remove rtsx_pci_read/write_config() wrappers 2020-07-22 13:29:44 +02:00
rts5227.c misc: rtsx: init of rts522a add OCP power off when no card is present 2021-02-04 17:09:32 +01:00
rts5228.c misc: rtsx: Fix power down flow 2020-09-16 17:30:37 +02:00
rts5228.h misc: rtsx: Add support new chip rts5228 mmc: rtsx: Add support MMC_CAP2_NO_MMC 2020-07-10 14:58:47 +02:00
rts5229.c misc: rtsx: Remove rtsx_pci_read/write_config() wrappers 2020-07-22 13:29:44 +02:00
rts5249.c misc: rtsx: rts5249 support runtime PM 2020-12-09 19:42:18 +01:00
rts5260.c misc: rtsx: Add power saving functions and fix driving parameter 2020-09-16 17:30:37 +02:00
rts5260.h
rts5261.c misc: rtsx: Fix clock timing for RTS5261 2020-11-16 11:59:30 +01:00
rts5261.h misc: rtsx: Check mmc support for RTS5261 2020-11-16 11:59:30 +01:00
rtsx_pcr.c misc: rtsx: Remove unneeded return variable 2021-02-03 15:58:14 +01:00
rtsx_pcr.h misc: rtsx: rts5249 support runtime PM 2020-12-09 19:42:18 +01:00
rtsx_usb.c misc: rtsx_usb: Constify struct usb_device_id 2020-06-29 18:39:45 +02:00