The 'reason' variable in module_sig_check() points to 3 strings across the *switch* statement, all needlessly starting with the same text. Let's put the starting text into the pr_notice() call -- it saves 21 bytes of the object code (x86 gcc 10.2.1).
Suggested-by: Joe Perches <j...@perches.com> Signed-off-by: Sergey Shtylyov <s.shtyl...@omprussia.ru> --- Changes in version 2: - put less starting text into the pr_notice() call; - updated the patch description accordingly, added the "Suggested-by:" tag. kernel/module.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) Index: linux/kernel/module.c =================================================================== --- linux.orig/kernel/module.c +++ linux/kernel/module.c @@ -2907,16 +2907,17 @@ static int module_sig_check(struct load_ * enforcing, certain errors are non-fatal. */ case -ENODATA: - reason = "Loading of unsigned module"; + reason = "unsigned module"; goto decide; case -ENOPKG: - reason = "Loading of module with unsupported crypto"; + reason = "module with unsupported crypto"; goto decide; case -ENOKEY: - reason = "Loading of module with unavailable key"; + reason = "module with unavailable key"; decide: if (is_module_sig_enforced()) { - pr_notice("%s: %s is rejected\n", info->name, reason); + pr_notice("%s: loading of %s is rejected\n", + info->name, reason); return -EKEYREJECTED; }