crypto: arm64/gcm - remove Wunused-const-variable ghash_cpu_feature
Subsystems (3)
PATCH 1/1 crypto: arm64/gcm - remove Wunused-const-variable ghash_cpu_feature
GCC compiler complains with below messages.
warning: ‘ghash_cpu_feature’ defined but not used [-Wunused-const-variable=]
static const struct cpu_feature ghash_cpu_feature[] = {
^~~~~~~~~~~~~~~~~The variable with MODULE_DEVICE_TABLE() is registered as platform_driver. But ghash_cpu_feature is not used, so remove ghash_cpu_feature.
--- arch/arm64/crypto/ghash-ce-glue.c | 5 ----- 1 file changed, 5 deletions(-)
arch/arm64/crypto/ghash-ce-glue.c +0 -5
@@ -615,10 +615,5 @@ static void __exit ghash_ce_mod_exit(void)crypto_unregister_shash (&ghash_alg); } -static const struct cpu_feature ghash_cpu_feature[] = { - {cpu_feature (PMULL ) }, { } -}; -MODULE_DEVICE_TABLE (cpu, ghash_cpu_feature); -module_init (ghash_ce_mod_init);module_exit (ghash_ce_mod_exit);
Signature · 1 line
2.20.1
Quoted 2 lines · Austin Kim
The variable with
MODULE_DEVICE_TABLE()is registered asplatform_driver.
What does this mean? There is no platform_driver involved here at all.
Quoted 1 line
But
ghash_cpu_featureis not used, so removeghash_cpu_feature.
It is used when the file is built as a module.
arch/arm64/crypto/ghash-ce-glue.c static void __exit ghash_ce_mod_exit(void) · line 622
Quoted 13 lines
arch/arm64/crypto/ghash-ce-glue.c +0
-5@@ -615,10 +615,5 @@ static void __exit ghash_ce_mod_exit(void)crypto_unregister_shash (&ghash_alg); } -static const struct cpu_feature ghash_cpu_feature[] = { - {cpu_feature (PMULL ) }, { } -}; -MODULE_DEVICE_TABLE (cpu, ghash_cpu_feature); -
Probably adding __maybe_unused to ghash_cpu_feature[] is the right thing to do. That's what module_cpu_feature_match() does.
(Note that module_cpu_feature_match() can't be used here, as it seems the intent is for this module to be autoloaded when PMULL is detected, but still be loadable without it. So, that's apparently the reason for using MODULE_DEVICE_TABLE() directly.)
- Eric
2021년 5월 28일 (금) 오전 2:46, Eric Biggers <[email protected]>님이 작성:
Quoted 7 lines · Austin Kim
Quoted 2 lines
The variable with
MODULE_DEVICE_TABLE()is registered asplatform_driver.What does this mean? There is no
platform_driverinvolved here at all.
What I would like to say is "in many cases, MODULE_DEVICE_TABLE is registered as struct of platform_driver"
ex) [drivers/char/hw_random/meson-rng.c] MODULE_DEVICE_TABLE(of, meson_rng_of_match);
static struct platform_driver meson_rng_driver = { .probe = meson_rng_probe,
.driver = {
.name = "meson-rng",
.of_match_table = meson_rng_of_match,
},
};
Quoted 4 lines
Quoted 1 line
But
ghash_cpu_featureis not used, so removeghash_cpu_feature.It is used when the file is built as a module.
Thanks for the information. But it looks like this file is compiled as built-in with 'CONFIG_CRYPTO_GHASH_ARM64_CE=y' by default.
Quoted 11 lines
arch/arm64/crypto/ghash-ce-glue.c
Quoted 3 lines
arch/arm64/crypto/ghash-ce-glue.c +0
-0Probably adding
__maybe_unusedto ghash_cpu_feature[] is the right thing to do. That's whatmodule_cpu_feature_match()does.(Note that
module_cpu_feature_match()can't be used here, as it seems the intent is for this module to be autoloaded when PMULL is detected, but still be loadable without it. So, that's apparently the reason for usingMODULE_DEVICE_TABLE()directly.)
Thanks for the valuable idea and feedback.
Quoted 2 lines
- Eric