PCI/ASPM: Remove pcie_aspm_enabled() unnecessary locking
authorBjorn Helgaas <bhelgaas@google.com>
Wed, 9 Oct 2019 13:00:12 +0000 (08:00 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 15 Oct 2019 19:25:15 +0000 (14:25 -0500)
commit5e0c21c75e8c08375a69710527e4a921b897cb7e
treeb5f2eb8ab5afcac1c40014101b137b8f5ebeafba
parent54ecb8f7028c5eb3d740bb82b0f1d90f2df63c5c
PCI/ASPM: Remove pcie_aspm_enabled() unnecessary locking

The lifetime of the link_state structure (bridge->link_state) is not the
same as the lifetime of "bridge" itself.  The link_state is allocated by
pcie_aspm_init_link_state() after children of the bridge have been
enumerated, and it is deallocated by pcie_aspm_exit_link_state() after all
children of the bridge (but not the bridge itself) have been removed.

Previously pcie_aspm_enabled() acquired aspm_lock to ensure that
link_state was not deallocated while we're looking at it.  But the fact
that the caller of pcie_aspm_enabled() holds a reference to @pdev means
there's always at least one child of the bridge, which means link_state
can't be deallocated.

Remove the unnecessary locking in pcie_aspm_enabled().

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/pci/pcie/aspm.c