An extra linked list is created inside aspm.c to keep track of devices on which the link state was enabled. However, it is possible to access them via existing device lists. This series remove the extra linked list and other related members of the struct pcie_link_state: `root`, `parent` and `downstream`. All these are now either calculated or obtained directly when needed. VERSION CHANGES: -v3: - Remane pci_get_parent() to pcie_upstream_link() and improve the logic based previous review. - Improve the algorithm to iterate through the devices - v2: » - Avoid using BUG_ON() » - Create helper function pci_get_parent() » - Fix a bug from the previous version MERGE NOTICE: These series are based on » 'commit e4e737bb5c17 ("Linux 5.15-rc2")' Bolarinwa O. Saheed (4): PCI/ASPM: Remove struct pcie_link_state.parent PCI/ASPM: Remove struct pcie_link_state.root PCI/ASPM: Remove struct pcie_link_state.downstream PCI/ASPM: Remove unncessary linked list from aspm.c Saheed O. Bolarinwa (1): PCI: Handle NULL value inside pci_upstream_bridge() drivers/pci/pcie/aspm.c | 152 ++++++++++++++++++++++++---------------- include/linux/pci.h | 3 + 2 files changed, 94 insertions(+), 61 deletions(-) -- 2.20.1