@@ -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);
}
}
}