Re: [PATCH] Fix modpost failures in fedora 17

From: David Miller
Date: Wed Apr 18 2012 - 15:31:35 EST


From: David Miller <davem@xxxxxxxxxxxxx>
Date: Thu, 12 Apr 2012 14:37:30 -0400 (EDT)

Ping? Can we get this bug fixed merged some time soon?

> The symbol table on x86-64 starts to have entries that have names
> like:
>
> _GLOBAL__sub_I_65535_0___mod_x86cpu_device_table
>
> They are of type STT_FUNCTION and this one had a length of 18. This
> matched the device ID validation logic and it barfed because the
> length did not meet the device type's criteria.
>
> --------------------
> FATAL: arch/x86/crypto/aesni-intel: sizeof(struct x86cpu_device_id)=16 is not a modulo of the size of section __mod_x86cpu_device_table=18.
> Fix definition of struct x86cpu_device_id in mod_devicetable.h
> --------------------
>
> These are some kind of compiler tool internal stuff being emitted and
> not something we want to inspect in modpost's device ID table
> validation code.
>
> So skip the symbol if it is not of type STT_OBJECT.
>
> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
>
> diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
> index 8e730cc..44ddaa5 100644
> --- a/scripts/mod/file2alias.c
> +++ b/scripts/mod/file2alias.c
> @@ -1100,6 +1100,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
> if (!sym->st_shndx || get_secindex(info, sym) >= info->num_sections)
> return;
>
> + /* We're looking for an object */
> + if (ELF_ST_TYPE(sym->st_info) != STT_OBJECT)
> + return;
> +
> /* All our symbols are of form <prefix>__mod_XXX_device_table. */
> name = strstr(symname, "__mod_");
> if (!name)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/