arch/loongarch/kernel/relocate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
It is better to use unsigned long rather than long for _end and _text
to calculate the kernel length.
Cc: stable@vger.kernel.org # v6.3+
Fixes: e5f02b51fa0c ("LoongArch: Add support for kernel address space layout randomization (KASLR)")
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
arch/loongarch/kernel/relocate.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/loongarch/kernel/relocate.c b/arch/loongarch/kernel/relocate.c
index b5e2312a2fca..76abbb8d2931 100644
--- a/arch/loongarch/kernel/relocate.c
+++ b/arch/loongarch/kernel/relocate.c
@@ -183,7 +183,7 @@ static inline void __init *determine_relocation_address(void)
if (kaslr_disabled())
return destination;
- kernel_length = (long)_end - (long)_text;
+ kernel_length = (unsigned long)_end - (unsigned long)_text;
random_offset = get_random_boot() << 16;
random_offset &= (CONFIG_RANDOMIZE_BASE_MAX_OFFSET - 1);
@@ -232,7 +232,7 @@ unsigned long __init relocate_kernel(void)
early_memunmap(cmdline, COMMAND_LINE_SIZE);
if (random_offset) {
- kernel_length = (long)(_end) - (long)(_text);
+ kernel_length = (unsigned long)(_end) - (unsigned long)(_text);
/* Copy the kernel to it's new location */
memcpy(location_new, _text, kernel_length);
--
2.42.0
Applied, thanks.
Huacai
On Tue, Nov 25, 2025 at 2:35 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
>
> It is better to use unsigned long rather than long for _end and _text
> to calculate the kernel length.
>
> Cc: stable@vger.kernel.org # v6.3+
> Fixes: e5f02b51fa0c ("LoongArch: Add support for kernel address space layout randomization (KASLR)")
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
> arch/loongarch/kernel/relocate.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/loongarch/kernel/relocate.c b/arch/loongarch/kernel/relocate.c
> index b5e2312a2fca..76abbb8d2931 100644
> --- a/arch/loongarch/kernel/relocate.c
> +++ b/arch/loongarch/kernel/relocate.c
> @@ -183,7 +183,7 @@ static inline void __init *determine_relocation_address(void)
> if (kaslr_disabled())
> return destination;
>
> - kernel_length = (long)_end - (long)_text;
> + kernel_length = (unsigned long)_end - (unsigned long)_text;
>
> random_offset = get_random_boot() << 16;
> random_offset &= (CONFIG_RANDOMIZE_BASE_MAX_OFFSET - 1);
> @@ -232,7 +232,7 @@ unsigned long __init relocate_kernel(void)
> early_memunmap(cmdline, COMMAND_LINE_SIZE);
>
> if (random_offset) {
> - kernel_length = (long)(_end) - (long)(_text);
> + kernel_length = (unsigned long)(_end) - (unsigned long)(_text);
>
> /* Copy the kernel to it's new location */
> memcpy(location_new, _text, kernel_length);
> --
> 2.42.0
>
>
© 2016 - 2025 Red Hat, Inc.