]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
PCI: Clean up pci_scan_slot()
authorNiklas Schnelle <schnelle@linux.ibm.com>
Tue, 28 Jun 2022 14:30:56 +0000 (16:30 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 22 Jul 2022 21:04:16 +0000 (16:04 -0500)
commitc3df83e01a96ca569d261bcdffa2fb858b1012fa
tree7a4731ee9c8a064eaa448af07b8af66c30b25e84
parentf2906aa863381afb0015a9eb7fefad885d4e5a56
PCI: Clean up pci_scan_slot()

While determining the next PCI function is factored out of pci_scan_slot()
into next_fn(), the former still handles the first function as a special
case, which duplicates the code from the scan loop.

Furthermore the non-ARI branch of next_fn() is generally hard to understand
and especially the check for multifunction devices is hidden in the
handling of NULL devices for non-contiguous multifunction. It also signals
that no further functions need to be scanned by returning 0 via wraparound
and this is a valid function number.

Improve upon this by transforming the conditions in next_fn() to be easier
to understand.

By changing next_fn() to return -ENODEV instead of 0 when there is no next
function we can then handle the initial function inside the loop and
deduplicate the shared handling. This also makes it more explicit that only
function 0 must exist.

No functional change is intended.

Link: https://lore.kernel.org/r/20220628143100.3228092-2-schnelle@linux.ibm.com
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
drivers/pci/probe.c