summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/tests/devinfo.c')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/tests/devinfo.c42
1 files changed, 10 insertions, 32 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c
index bf15e8bdc4e8..d5071fde20cf 100644
--- a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c
+++ b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c
@@ -157,43 +157,21 @@ static void devinfo_pci_ids(struct kunit *test)
static void devinfo_no_trans_cfg_dups(struct kunit *test)
{
- /* allocate iwl_dev_info_table_size as upper bound */
- const struct iwl_cfg_trans_params **cfgs;
- int count = 0;
- int p = 0;
-
- for (int i = 0; iwl_hw_card_ids[i].vendor; i++)
- count++;
-
- cfgs = kunit_kcalloc(test, count, sizeof(*cfgs), GFP_KERNEL);
- KUNIT_ASSERT_NOT_NULL(test, cfgs);
-
- /* build a list of unique (by pointer) configs first */
for (int i = 0; iwl_hw_card_ids[i].vendor; i++) {
- struct iwl_cfg_trans_params *cfg;
- bool found = false;
+ const struct iwl_cfg_trans_params *cfg_i =
+ (void *)iwl_hw_card_ids[i].driver_data;
- cfg = (void *)iwl_hw_card_ids[i].driver_data;
+ for (int j = 0; j < i; j++) {
+ const struct iwl_cfg_trans_params *cfg_j =
+ (void *)iwl_hw_card_ids[j].driver_data;
- for (int j = 0; j < p; j++) {
- if (cfgs[j] == cfg) {
- found = true;
- break;
- }
- }
- if (!found) {
- cfgs[p] = cfg;
- p++;
- }
- }
+ if (cfg_i == cfg_j)
+ continue;
- /* check that they're really all different */
- for (int i = 0; i < p; i++) {
- for (int j = 0; j < i; j++) {
- KUNIT_EXPECT_NE_MSG(test, memcmp(cfgs[i], cfgs[j],
- sizeof(*cfgs[i])), 0,
+ KUNIT_EXPECT_NE_MSG(test, memcmp(cfg_j, cfg_i,
+ sizeof(*cfg_i)), 0,
"identical configs: %ps and %ps\n",
- cfgs[i], cfgs[j]);
+ cfg_i, cfg_j);
}
}
}