From: Morduan Zang Date: Wed, 14 Jan 2026 05:30:33 +0000 (+0800) Subject: efi/cper: Fix cper_bits_to_str buffer handling and return value X-Git-Tag: v6.12.67~138 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=81dcb27e9b596089ede5f0b752ceaadae92d72d5;p=thirdparty%2Fkernel%2Fstable.git efi/cper: Fix cper_bits_to_str buffer handling and return value commit d7f1b4bdc7108be1b178e1617b5f45c8918e88d7 upstream. The return value calculation was incorrect: `return len - buf_size;` Initially `len = buf_size`, then `len` decreases with each operation. This results in a negative return value on success. Fix by returning `buf_size - len` which correctly calculates the actual number of bytes written. Fixes: a976d790f494 ("efi/cper: Add a new helper function to print bitmasks") Signed-off-by: Morduan Zang Signed-off-by: Ard Biesheuvel Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/firmware/efi/cper.c b/drivers/firmware/efi/cper.c index 7f89a9fb2ecad..16b27fe9608fd 100644 --- a/drivers/firmware/efi/cper.c +++ b/drivers/firmware/efi/cper.c @@ -162,7 +162,7 @@ int cper_bits_to_str(char *buf, int buf_size, unsigned long bits, len -= size; str += size; } - return len - buf_size; + return buf_size - len; } EXPORT_SYMBOL_GPL(cper_bits_to_str);