Message ID | 20220711011738.3219487-1-chenhuacai@loongson.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [V2] tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH | expand |
On Mon, Jul 11, 2022 at 09:17:38AM +0800, Huacai Chen wrote: > If DEBUG_SECTION_MISMATCH enabled, __calc_tpm2_event_size() will not be > inlined, this cause section mismatch like this: > > WARNING: modpost: vmlinux.o(.text.unlikely+0xe30c): Section mismatch in reference from the variable L0 to the function .init.text:early_ioremap() > The function L0() references > the function __init early_memremap(). > This is often because L0 lacks a __init > annotation or the annotation of early_ioremap is wrong. > > Fix it by using __always_inline instead of inline for the called-once > function __calc_tpm2_event_size(). > > Fixes: 44038bc514a2 ("tpm: Abstract crypto agile event size calculations") > Cc: stable@vger.kernel.org > Reported-by: WANG Xuerui <git@xen0n.name> > Signed-off-by: Huacai Chen <chenhuacai@loongson.cn> > --- > V2: Add Fixes tag and cc stable@vger.kernel.org > > include/linux/tpm_eventlog.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/tpm_eventlog.h b/include/linux/tpm_eventlog.h > index 739ba9a03ec1..20c0ff54b7a0 100644 > --- a/include/linux/tpm_eventlog.h > +++ b/include/linux/tpm_eventlog.h > @@ -157,7 +157,7 @@ struct tcg_algorithm_info { > * Return: size of the event on success, 0 on failure > */ > > -static inline int __calc_tpm2_event_size(struct tcg_pcr_event2_head *event, > +static __always_inline int __calc_tpm2_event_size(struct tcg_pcr_event2_head *event, > struct tcg_pcr_event *event_header, > bool do_mapping) > { > -- > 2.31.1 > Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org> BR, Jarkko
diff --git a/include/linux/tpm_eventlog.h b/include/linux/tpm_eventlog.h index 739ba9a03ec1..20c0ff54b7a0 100644 --- a/include/linux/tpm_eventlog.h +++ b/include/linux/tpm_eventlog.h @@ -157,7 +157,7 @@ struct tcg_algorithm_info { * Return: size of the event on success, 0 on failure */ -static inline int __calc_tpm2_event_size(struct tcg_pcr_event2_head *event, +static __always_inline int __calc_tpm2_event_size(struct tcg_pcr_event2_head *event, struct tcg_pcr_event *event_header, bool do_mapping) {
If DEBUG_SECTION_MISMATCH enabled, __calc_tpm2_event_size() will not be inlined, this cause section mismatch like this: WARNING: modpost: vmlinux.o(.text.unlikely+0xe30c): Section mismatch in reference from the variable L0 to the function .init.text:early_ioremap() The function L0() references the function __init early_memremap(). This is often because L0 lacks a __init annotation or the annotation of early_ioremap is wrong. Fix it by using __always_inline instead of inline for the called-once function __calc_tpm2_event_size(). Fixes: 44038bc514a2 ("tpm: Abstract crypto agile event size calculations") Cc: stable@vger.kernel.org Reported-by: WANG Xuerui <git@xen0n.name> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn> --- V2: Add Fixes tag and cc stable@vger.kernel.org include/linux/tpm_eventlog.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)