kernel_samsung_a53x/drivers/net/wireless/realtek/rtlwifi
Ilpo Järvinen 67e7aad977 wifi: rtlwifi: Remove bogus and dangerous ASPM disable/enable code
commit b3943b3c2971444364e03224cfc828c5789deada upstream.

Ever since introduction in the commit 0c8173385e54 ("rtl8192ce: Add new
driver") the rtlwifi code has, according to comments, attempted to
disable/enable ASPM of the upstream bridge by writing into its LNKCTL
register. However, the code has never been correct because it performs
the writes to the device instead of the upstream bridge.

Worse yet, the offset where the PCIe capabilities reside is derived
from the offset of the upstream bridge. As a result, the write will use
an offset on the device that does not relate to the LNKCTL register
making the ASPM disable/enable code outright dangerous.

Because of those problems, there is no indication that the driver needs
disable/enable ASPM on the upstream bridge. As the Capabilities offset
is not correctly calculated for the write to target device's LNKCTL
register, the code is not disabling/enabling device's ASPM either.
Therefore, just remove the upstream bridge related ASPM disable/enable
code entirely.

The upstream bridge related ASPM code was the only user of the struct
mp_adapter members num4bytes, pcibridge_pciehdr_offset, and
pcibridge_linkctrlreg so those are removed as well.

Note: This change does not remove the code related to changing the
device's ASPM on purpose (which is independent of this flawed code
related to upstream bridge's ASPM).

Suggested-by: Bjorn Helgaas <bhelgaas@kernel.org>
Fixes: 0c8173385e54 ("rtl8192ce: Add new driver")
Fixes: 886e14b65a8f ("rtlwifi: Eliminate raw reads and writes from PCIe portion")
Cc: stable@vger.kernel.org
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20231124084725.12738-2-ilpo.jarvinen@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-18 12:12:47 +01:00
..
btcoexist
rtl8188ee wifi: rtlwifi: rtl8188ee: phy: using calculate_bit_shift() 2024-11-18 12:12:37 +01:00
rtl8192c wifi: rtlwifi: rtl8192c: using calculate_bit_shift() 2024-11-18 12:12:37 +01:00
rtl8192ce wifi: rtlwifi: rtl8192ce: using calculate_bit_shift() 2024-11-18 12:12:38 +01:00
rtl8192cu wifi: rtlwifi: rtl8192cu: using calculate_bit_shift() 2024-11-18 12:12:37 +01:00
rtl8192de wifi: rtlwifi: rtl8192de: using calculate_bit_shift() 2024-11-18 12:12:38 +01:00
rtl8192ee wifi: rtlwifi: rtl8192ee: using calculate_bit_shift() 2024-11-18 12:12:38 +01:00
rtl8192se wifi: rtlwifi: rtl8192se: using calculate_bit_shift() 2024-11-18 12:12:38 +01:00
rtl8723ae
rtl8723be
rtl8723com
rtl8821ae
base.c
base.h
cam.c
cam.h
core.c
core.h
debug.c
debug.h
efuse.c
efuse.h
Kconfig
Makefile
pci.c wifi: rtlwifi: Remove bogus and dangerous ASPM disable/enable code 2024-11-18 12:12:47 +01:00
pci.h wifi: rtlwifi: Remove bogus and dangerous ASPM disable/enable code 2024-11-18 12:12:47 +01:00
ps.c
ps.h
pwrseqcmd.h
rc.c
rc.h
regd.c
regd.h
stats.c
stats.h
usb.c
usb.h
wifi.h wifi: rtlwifi: add calculate_bit_shift() 2024-11-18 12:12:37 +01:00