modpost: convert do_pnp_card_entries() to a generic handler
authorMasahiro Yamada <masahiroy@kernel.org>
Tue, 19 Nov 2024 23:56:46 +0000 (08:56 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Wed, 27 Nov 2024 23:46:02 +0000 (08:46 +0900)
do_pnp_card_entries() no longer needs to iterate over the
pnp_card_device_id array.

Convert it to a generic ->do_entry() handler.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
scripts/mod/file2alias.c

index 5ef87a6d33f8555c0bf13a41b8ceaa2858b63990..00bb3f8f06471319d79152a11eff84382d034652 100644 (file)
@@ -651,34 +651,24 @@ static void do_pnp_device_entry(void *symval, unsigned long size,
 }
 
 /* looks like: "pnp:dD" for every device of the card */
-static void do_pnp_card_entries(void *symval, unsigned long size,
-                               struct module *mod)
+static void do_pnp_card_entry(struct module *mod, void *symval)
 {
-       const unsigned long id_size = SIZE_pnp_card_device_id;
-       const unsigned int count = (size / id_size)-1;
-       unsigned int i;
-
-       device_id_check(mod->name, "pnp", size, id_size, symval);
-
-       for (i = 0; i < count; i++) {
-               unsigned int j;
-               DEF_FIELD_ADDR(symval + i * id_size, pnp_card_device_id, devs);
+       DEF_FIELD_ADDR(symval, pnp_card_device_id, devs);
 
-               for (j = 0; j < PNP_MAX_DEVICES; j++) {
-                       const char *id = (char *)(*devs)[j].id;
-                       char acpi_id[PNP_ID_LEN];
+       for (unsigned int i = 0; i < PNP_MAX_DEVICES; i++) {
+               const char *id = (char *)(*devs)[i].id;
+               char acpi_id[PNP_ID_LEN];
 
-                       if (!id[0])
-                               break;
+               if (!id[0])
+                       break;
 
-                       /* add an individual alias for every device entry */
-                       module_alias_printf(mod, false, "pnp:d%s*", id);
+               /* fix broken pnp bus lowercasing */
+               for (unsigned int j = 0; j < sizeof(acpi_id); j++)
+                       acpi_id[j] = toupper(id[j]);
 
-                       /* fix broken pnp bus lowercasing */
-                       for (int k = 0; k < sizeof(acpi_id); k++)
-                               acpi_id[k] = toupper(id[k]);
-                       module_alias_printf(mod, false, "acpi*:%s:*", acpi_id);
-               }
+               /* add an individual alias for every device entry */
+               module_alias_printf(mod, false, "pnp:d%s*", id);
+               module_alias_printf(mod, false, "acpi*:%s:*", acpi_id);
        }
 }
 
@@ -1541,6 +1531,7 @@ static const struct devtable devtable[] = {
        {"cdx", SIZE_cdx_device_id, do_cdx_entry},
        {"vchiq", SIZE_vchiq_device_id, do_vchiq_entry},
        {"coreboot", SIZE_coreboot_device_id, do_coreboot_entry},
+       {"pnp_card", SIZE_pnp_card_device_id, do_pnp_card_entry},
 };
 
 /* Create MODULE_ALIAS() statements.
@@ -1591,8 +1582,6 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
                do_of_table(symval, sym->st_size, mod);
        else if (sym_is(name, namelen, "pnp"))
                do_pnp_device_entry(symval, sym->st_size, mod);
-       else if (sym_is(name, namelen, "pnp_card"))
-               do_pnp_card_entries(symval, sym->st_size, mod);
        else {
                int i;