Commit cbc3d00c authored by Mauricio Faria de Oliveira's avatar Mauricio Faria de Oliveira Committed by Masahiro Yamada

modpost: add missing else to the "of" check

Without this 'else' statement, an "usb" name goes into two handlers:
the first/previous 'if' statement _AND_ the for-loop over 'devtable',
but the latter is useless as it has no 'usb' device_id entry anyway.

Tested with allmodconfig before/after patch; no changes to *.mod.c:

    git checkout v6.6-rc3
    make -j$(nproc) allmodconfig
    make -j$(nproc) olddefconfig

    make -j$(nproc)
    find . -name '*.mod.c' | cpio -pd /tmp/before

    # apply patch

    make -j$(nproc)
    find . -name '*.mod.c' | cpio -pd /tmp/after

    diff -r /tmp/before/ /tmp/after/
    # no difference

Fixes: acbef7b7 ("modpost: fix module autoloading for OF devices with generic compatible property")
Signed-off-by: default avatarMauricio Faria de Oliveira <mfo@canonical.com>
Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent 28d49e17
...@@ -1604,7 +1604,7 @@ void handle_moddevtable(struct module *mod, struct elf_info *info, ...@@ -1604,7 +1604,7 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
/* First handle the "special" cases */ /* First handle the "special" cases */
if (sym_is(name, namelen, "usb")) if (sym_is(name, namelen, "usb"))
do_usb_table(symval, sym->st_size, mod); do_usb_table(symval, sym->st_size, mod);
if (sym_is(name, namelen, "of")) else if (sym_is(name, namelen, "of"))
do_of_table(symval, sym->st_size, mod); do_of_table(symval, sym->st_size, mod);
else if (sym_is(name, namelen, "pnp")) else if (sym_is(name, namelen, "pnp"))
do_pnp_device_entry(symval, sym->st_size, mod); do_pnp_device_entry(symval, sym->st_size, mod);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment