]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
riscv: module: Use generic cmp_int() instead of custom cmp_3way()
authorFlorian Schmaus <florian.schmaus@codasip.com>
Sun, 7 Jun 2026 02:17:53 +0000 (20:17 -0600)
committerPaul Walmsley <pjw@kernel.org>
Sun, 7 Jun 2026 02:17:53 +0000 (20:17 -0600)
The module-sections.c file defines a custom cmp_3way() macro to perform
3-way comparisons during relocation sorting.

Instead of maintaining our own implementation, use the generic
cmp_int() macro provided by the already included <linux/sort.h>. This
removes redundant code and relies on standard kernel interfaces.

Signed-off-by: Florian Schmaus <florian.schmaus@codasip.com>
Link: https://patch.msgid.link/20260512063231.708256-1-florian.schmaus@codasip.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
arch/riscv/kernel/module-sections.c

index 98eaac6f660604092bf198ec461532e6424465d9..b3b11b7f7ed95874fc9062ae24f2e2fa8eadefa8 100644 (file)
@@ -56,17 +56,15 @@ unsigned long module_emit_plt_entry(struct module *mod, unsigned long val)
        return (unsigned long)&plt[i];
 }
 
-#define cmp_3way(a, b) ((a) < (b) ? -1 : (a) > (b))
-
 static int cmp_rela(const void *a, const void *b)
 {
        const Elf_Rela *x = a, *y = b;
        int i;
 
        /* sort by type, symbol index and addend */
-       i = cmp_3way(x->r_info, y->r_info);
+       i = cmp_int(x->r_info, y->r_info);
        if (i == 0)
-               i = cmp_3way(x->r_addend, y->r_addend);
+               i = cmp_int(x->r_addend, y->r_addend);
        return i;
 }