diff mbox series

tpm: eventlog: Declare mapping_size __maybe_unused

Message ID 10590A3A04DA011F+20250311120115.1451048-1-wangyuli@uniontech.com (mailing list archive)
State New
Headers show
Series tpm: eventlog: Declare mapping_size __maybe_unused | expand

Commit Message

WangYuli March 11, 2025, 12:01 p.m. UTC
Given that when CONFIG_EFI is not enabled, do_mapping is inherently
false. Thus, the mapping_size variable is set but remains unused,
resulting in a compilation warning.

Simply annotating it with __maybe_unused will resolve this compilation
warning.

[ Fix follow errors with clang-19 when W=1e: ]
  In file included from drivers/char/tpm/tpm1-cmd.c:21:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm1-cmd.o] Error 1
  make[8]: *** Waiting for unfinished jobs....
  In file included from drivers/char/tpm/tpm-dev-common.c:19:
  In file included from drivers/char/tpm/tpm.h:28:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-dev-common.o] Error 1
  In file included from drivers/char/tpm/tpm2-cmd.c:14:
  In file included from drivers/char/tpm/tpm.h:28:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  In file included from drivers/char/tpm/tpm-dev.c:16:
  In file included from drivers/char/tpm/tpm-dev.h:6:
  In file included from drivers/char/tpm/tpm.h:28:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-dev.o] Error 1
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm2-cmd.o] Error 1
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpmrm-dev.o] Error 1
  In file included from drivers/char/tpm/tpm-chip.c:24:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  In file included from drivers/char/tpm/tpm-sysfs.c:16:
  In file included from drivers/char/tpm/tpm.h:28:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-chip.o] Error 1
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-sysfs.o] Error 1
  In file included from drivers/char/tpm/tpm2-sessions.c:71:
  In file included from drivers/char/tpm/tpm.h:28:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm2-sessions.o] Error 1
  In file included from drivers/char/tpm/tpm-interface.c:28:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-interface.o] Error 1
  In file included from drivers/char/tpm/tpm2-space.c:16:
  In file included from drivers/char/tpm/tpm.h:28:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm2-space.o] Error 1
  In file included from drivers/char/tpm/eventlog/tpm1.c:24:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/eventlog/tpm1.o] Error 1
  In file included from drivers/char/tpm/eventlog/common.c:20:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/eventlog/common.o] Error 1
  In file included from drivers/char/tpm/eventlog/tpm2.c:20:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/eventlog/tpm2.o] Error 1
  In file included from drivers/char/tpm/tpm_vtpm_proxy.c:24:
  In file included from drivers/char/tpm/tpm.h:28:
  ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
    167 |         int mapping_size;
        |             ^
  1 error generated.
  make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm_vtpm_proxy.o] Error 1
  make[7]: *** [scripts/Makefile.build:465: drivers/char/tpm] Error 2
  make[6]: *** [scripts/Makefile.build:465: drivers/char] Error 2
  make[6]: *** Waiting for unfinished jobs....

Suggested-by: Chen Linxuan <chenlinxuan@uniontech.com>
Signed-off-by: WangYuli <wangyuli@uniontech.com>
---
 include/linux/tpm_eventlog.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jarkko Sakkinen March 12, 2025, 6:20 a.m. UTC | #1
On Tue, Mar 11, 2025 at 08:01:15PM +0800, WangYuli wrote:
> Given that when CONFIG_EFI is not enabled, do_mapping is inherently
> false. Thus, the mapping_size variable is set but remains unused,
> resulting in a compilation warning.
> 
> Simply annotating it with __maybe_unused will resolve this compilation
> warning.
> 
> [ Fix follow errors with clang-19 when W=1e: ]

Why do we care clang-19 with W=1e?

>   In file included from drivers/char/tpm/tpm1-cmd.c:21:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm1-cmd.o] Error 1
>   make[8]: *** Waiting for unfinished jobs....
>   In file included from drivers/char/tpm/tpm-dev-common.c:19:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-dev-common.o] Error 1
>   In file included from drivers/char/tpm/tpm2-cmd.c:14:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   In file included from drivers/char/tpm/tpm-dev.c:16:
>   In file included from drivers/char/tpm/tpm-dev.h:6:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-dev.o] Error 1
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm2-cmd.o] Error 1
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpmrm-dev.o] Error 1
>   In file included from drivers/char/tpm/tpm-chip.c:24:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   In file included from drivers/char/tpm/tpm-sysfs.c:16:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-chip.o] Error 1
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-sysfs.o] Error 1
>   In file included from drivers/char/tpm/tpm2-sessions.c:71:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm2-sessions.o] Error 1
>   In file included from drivers/char/tpm/tpm-interface.c:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-interface.o] Error 1
>   In file included from drivers/char/tpm/tpm2-space.c:16:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm2-space.o] Error 1
>   In file included from drivers/char/tpm/eventlog/tpm1.c:24:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/eventlog/tpm1.o] Error 1
>   In file included from drivers/char/tpm/eventlog/common.c:20:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/eventlog/common.o] Error 1
>   In file included from drivers/char/tpm/eventlog/tpm2.c:20:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/eventlog/tpm2.o] Error 1
>   In file included from drivers/char/tpm/tpm_vtpm_proxy.c:24:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm_vtpm_proxy.o] Error 1
>   make[7]: *** [scripts/Makefile.build:465: drivers/char/tpm] Error 2
>   make[6]: *** [scripts/Makefile.build:465: drivers/char] Error 2
>   make[6]: *** Waiting for unfinished jobs....

Only one instance that demonstrates the issue please.

> 
> Suggested-by: Chen Linxuan <chenlinxuan@uniontech.com>
> Signed-off-by: WangYuli <wangyuli@uniontech.com>
> ---
>  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 891368e82558..7ca58b2e96e8 100644
> --- a/include/linux/tpm_eventlog.h
> +++ b/include/linux/tpm_eventlog.h
> @@ -164,7 +164,7 @@ static __always_inline u32 __calc_tpm2_event_size(struct tcg_pcr_event2_head *ev
>  	struct tcg_efi_specid_event_head *efispecid;
>  	struct tcg_event_field *event_field;
>  	void *mapping = NULL;
> -	int mapping_size;
> +	__maybe_unused int mapping_size;
>  	void *marker;
>  	void *marker_start;
>  	u32 halg_size;
> -- 
> 2.47.2
> 
> 


BR, Jarkko
Jarkko Sakkinen March 12, 2025, 6:21 a.m. UTC | #2
On Tue, Mar 11, 2025 at 08:01:15PM +0800, WangYuli wrote:
> Given that when CONFIG_EFI is not enabled, do_mapping is inherently
> false. Thus, the mapping_size variable is set but remains unused,
> resulting in a compilation warning.
> 
> Simply annotating it with __maybe_unused will resolve this compilation
> warning.
> 
> [ Fix follow errors with clang-19 when W=1e: ]
>   In file included from drivers/char/tpm/tpm1-cmd.c:21:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm1-cmd.o] Error 1
>   make[8]: *** Waiting for unfinished jobs....
>   In file included from drivers/char/tpm/tpm-dev-common.c:19:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-dev-common.o] Error 1
>   In file included from drivers/char/tpm/tpm2-cmd.c:14:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   In file included from drivers/char/tpm/tpm-dev.c:16:
>   In file included from drivers/char/tpm/tpm-dev.h:6:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-dev.o] Error 1
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm2-cmd.o] Error 1
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpmrm-dev.o] Error 1
>   In file included from drivers/char/tpm/tpm-chip.c:24:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   In file included from drivers/char/tpm/tpm-sysfs.c:16:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-chip.o] Error 1
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-sysfs.o] Error 1
>   In file included from drivers/char/tpm/tpm2-sessions.c:71:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm2-sessions.o] Error 1
>   In file included from drivers/char/tpm/tpm-interface.c:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm-interface.o] Error 1
>   In file included from drivers/char/tpm/tpm2-space.c:16:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm2-space.o] Error 1
>   In file included from drivers/char/tpm/eventlog/tpm1.c:24:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/eventlog/tpm1.o] Error 1
>   In file included from drivers/char/tpm/eventlog/common.c:20:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/eventlog/common.o] Error 1
>   In file included from drivers/char/tpm/eventlog/tpm2.c:20:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/eventlog/tpm2.o] Error 1
>   In file included from drivers/char/tpm/tpm_vtpm_proxy.c:24:
>   In file included from drivers/char/tpm/tpm.h:28:
>   ./include/linux/tpm_eventlog.h:167:6: error: variable 'mapping_size' set but not used [-Werror,-Wunused-but-set-variable]
>     167 |         int mapping_size;
>         |             ^
>   1 error generated.
>   make[8]: *** [scripts/Makefile.build:207: drivers/char/tpm/tpm_vtpm_proxy.o] Error 1
>   make[7]: *** [scripts/Makefile.build:465: drivers/char/tpm] Error 2
>   make[6]: *** [scripts/Makefile.build:465: drivers/char] Error 2
>   make[6]: *** Waiting for unfinished jobs....
> 
> Suggested-by: Chen Linxuan <chenlinxuan@uniontech.com>
> Signed-off-by: WangYuli <wangyuli@uniontech.com>
> ---
>  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 891368e82558..7ca58b2e96e8 100644
> --- a/include/linux/tpm_eventlog.h
> +++ b/include/linux/tpm_eventlog.h
> @@ -164,7 +164,7 @@ static __always_inline u32 __calc_tpm2_event_size(struct tcg_pcr_event2_head *ev
>  	struct tcg_efi_specid_event_head *efispecid;
>  	struct tcg_event_field *event_field;
>  	void *mapping = NULL;
> -	int mapping_size;
> +	__maybe_unused int mapping_size;

NAK for the code change. Unused is not a problem.
Uninitialized is.

>  	void *marker;
>  	void *marker_start;
>  	u32 halg_size;
> -- 
> 2.47.2
> 
>
BR, Jarkko
WangYuli March 12, 2025, 6:36 a.m. UTC | #3
Hi Jarkko,

On 2025/3/12 14:20, Jarkko Sakkinen wrote:
> Why do we care clang-19 with W=1e?

1. the kernel, being a software endeavor predicated on robustness, 
should not normally countenance build failures stemming from toolchain 
and compilation setups that are implicitly project-approved.

2. Besides, it's not as if GCC is immune to "unused-but-set-variable" 
warnings.  The thing is, I just happen to be using clang-19 for kernel 
builds.

> Only one instance that demonstrates the issue please.

Thanks for the feedback, I'll be more mindful going forward.
diff mbox series

Patch

diff --git a/include/linux/tpm_eventlog.h b/include/linux/tpm_eventlog.h
index 891368e82558..7ca58b2e96e8 100644
--- a/include/linux/tpm_eventlog.h
+++ b/include/linux/tpm_eventlog.h
@@ -164,7 +164,7 @@  static __always_inline u32 __calc_tpm2_event_size(struct tcg_pcr_event2_head *ev
 	struct tcg_efi_specid_event_head *efispecid;
 	struct tcg_event_field *event_field;
 	void *mapping = NULL;
-	int mapping_size;
+	__maybe_unused int mapping_size;
 	void *marker;
 	void *marker_start;
 	u32 halg_size;