summaryrefslogtreecommitdiff
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2021-10-24 16:55:05 +0300
committerLuca Coelho <luciano.coelho@intel.com>2021-10-28 12:04:10 +0300
commit3f7320428fa41a4c8be9c6f3d0cc06beeb0b3df8 (patch)
tree4d4f0c2e4e555b57da8a2dc01072c8ed3f122396 /drivers/net/wireless
parent97f8a3d1610b1f50013de1e632b007cbfd7459d8 (diff)
iwlwifi: pcie: simplify iwl_pci_find_dev_info()
We currently match the list of devices from the start to the end, but then find the *last* match, so we need to look at each and every entry. We don't want to change the semantics ("most generic entry must come first"), so just change the order of matching to be back-to-front, then we can break out once we find a match. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Link: https://lore.kernel.org/r/iwlwifi.20211024165252.abd85e1391cb.I7681fe90735044cc1c59f120e8591b7ac125535d@changeid Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/pcie/drv.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
index 3276f04cfd60..c574f041f096 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
@@ -1339,10 +1339,9 @@ iwl_pci_find_dev_info(u16 device, u16 subsystem_device,
u16 mac_type, u8 mac_step,
u16 rf_type, u8 cdb, u8 rf_id, u8 no_160, u8 cores)
{
- const struct iwl_dev_info *ret = NULL;
int i;
- for (i = 0; i < ARRAY_SIZE(iwl_dev_info_table); i++) {
+ for (i = ARRAY_SIZE(iwl_dev_info_table) - 1; i >= 0; i--) {
const struct iwl_dev_info *dev_info = &iwl_dev_info_table[i];
if (dev_info->device != (u16)IWL_CFG_ANY &&
@@ -1381,10 +1380,10 @@ iwl_pci_find_dev_info(u16 device, u16 subsystem_device,
dev_info->cores != cores)
continue;
- ret = dev_info;
+ return dev_info;
}
- return ret;
+ return NULL;
}
static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)