]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
sparc/crc: drop "glue" from filenames
authorEric Biggers <ebiggers@google.com>
Thu, 24 Apr 2025 00:20:37 +0000 (17:20 -0700)
committerEric Biggers <ebiggers@google.com>
Mon, 28 Apr 2025 16:07:19 +0000 (09:07 -0700)
The use of the term "glue" in filenames is a Crypto API-ism that rarely
shows up elsewhere in lib/ or arch/*/lib/.  I think adopting it there
was a mistake.  The library just uses standard functions, so the amount
of code that could be considered "glue" is quite small.  And while often
the C functions just wrap the assembly functions, there are also cases
like crc32c_arch() in arch/x86/lib/crc32-glue.c that blur the line by
in-lining the actual implementation into the C function.  That's not
"glue code", but rather the actual code.

Therefore, let's drop "glue" from the filenames and instead use e.g.
crc32.c instead of crc32-glue.c.

Reviewed-by: "Martin K. Petersen" <martin.petersen@oracle.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20250424002038.179114-7-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
arch/sparc/lib/Makefile
arch/sparc/lib/crc32.c [new file with mode: 0644]
arch/sparc/lib/crc32_glue.c [deleted file]

index 5724d0f356eb5efa0a8869c97aec0d294d7ff703..ef8860eb3f3d139db61efb7c2e8553f4100992ce 100644 (file)
@@ -54,4 +54,4 @@ obj-$(CONFIG_SPARC64) += iomap.o
 obj-$(CONFIG_SPARC32) += atomic32.o
 obj-$(CONFIG_SPARC64) += PeeCeeI.o
 obj-$(CONFIG_CRC32_ARCH) += crc32-sparc.o
-crc32-sparc-y := crc32_glue.o crc32c_asm.o
+crc32-sparc-y := crc32.o crc32c_asm.o
diff --git a/arch/sparc/lib/crc32.c b/arch/sparc/lib/crc32.c
new file mode 100644 (file)
index 0000000..428fd55
--- /dev/null
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/* CRC32c (Castagnoli), sparc64 crc32c opcode accelerated
+ *
+ * This is based largely upon arch/x86/crypto/crc32c-intel.c
+ *
+ * Copyright (C) 2008 Intel Corporation
+ * Authors: Austin Zhang <austin_zhang@linux.intel.com>
+ *          Kent Liu <kent.liu@intel.com>
+ */
+
+#define pr_fmt(fmt)    KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/crc32.h>
+#include <asm/pstate.h>
+#include <asm/elf.h>
+
+static __ro_after_init DEFINE_STATIC_KEY_FALSE(have_crc32c_opcode);
+
+u32 crc32_le_arch(u32 crc, const u8 *data, size_t len)
+{
+       return crc32_le_base(crc, data, len);
+}
+EXPORT_SYMBOL(crc32_le_arch);
+
+void crc32c_sparc64(u32 *crcp, const u64 *data, size_t len);
+
+u32 crc32c_arch(u32 crc, const u8 *data, size_t len)
+{
+       size_t n = -(uintptr_t)data & 7;
+
+       if (!static_branch_likely(&have_crc32c_opcode))
+               return crc32c_base(crc, data, len);
+
+       if (n) {
+               /* Data isn't 8-byte aligned.  Align it. */
+               n = min(n, len);
+               crc = crc32c_base(crc, data, n);
+               data += n;
+               len -= n;
+       }
+       n = len & ~7U;
+       if (n) {
+               crc32c_sparc64(&crc, (const u64 *)data, n);
+               data += n;
+               len -= n;
+       }
+       if (len)
+               crc = crc32c_base(crc, data, len);
+       return crc;
+}
+EXPORT_SYMBOL(crc32c_arch);
+
+u32 crc32_be_arch(u32 crc, const u8 *data, size_t len)
+{
+       return crc32_be_base(crc, data, len);
+}
+EXPORT_SYMBOL(crc32_be_arch);
+
+static int __init crc32_sparc_init(void)
+{
+       unsigned long cfr;
+
+       if (!(sparc64_elf_hwcap & HWCAP_SPARC_CRYPTO))
+               return 0;
+
+       __asm__ __volatile__("rd %%asr26, %0" : "=r" (cfr));
+       if (!(cfr & CFR_CRC32C))
+               return 0;
+
+       static_branch_enable(&have_crc32c_opcode);
+       pr_info("Using sparc64 crc32c opcode optimized CRC32C implementation\n");
+       return 0;
+}
+arch_initcall(crc32_sparc_init);
+
+static void __exit crc32_sparc_exit(void)
+{
+}
+module_exit(crc32_sparc_exit);
+
+u32 crc32_optimizations(void)
+{
+       if (static_key_enabled(&have_crc32c_opcode))
+               return CRC32C_OPTIMIZATION;
+       return 0;
+}
+EXPORT_SYMBOL(crc32_optimizations);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("CRC32c (Castagnoli), sparc64 crc32c opcode accelerated");
diff --git a/arch/sparc/lib/crc32_glue.c b/arch/sparc/lib/crc32_glue.c
deleted file mode 100644 (file)
index d34e7cc..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/* Glue code for CRC32C optimized for sparc64 crypto opcodes.
- *
- * This is based largely upon arch/x86/crypto/crc32c-intel.c
- *
- * Copyright (C) 2008 Intel Corporation
- * Authors: Austin Zhang <austin_zhang@linux.intel.com>
- *          Kent Liu <kent.liu@intel.com>
- */
-
-#define pr_fmt(fmt)    KBUILD_MODNAME ": " fmt
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/crc32.h>
-#include <asm/pstate.h>
-#include <asm/elf.h>
-
-static __ro_after_init DEFINE_STATIC_KEY_FALSE(have_crc32c_opcode);
-
-u32 crc32_le_arch(u32 crc, const u8 *data, size_t len)
-{
-       return crc32_le_base(crc, data, len);
-}
-EXPORT_SYMBOL(crc32_le_arch);
-
-void crc32c_sparc64(u32 *crcp, const u64 *data, size_t len);
-
-u32 crc32c_arch(u32 crc, const u8 *data, size_t len)
-{
-       size_t n = -(uintptr_t)data & 7;
-
-       if (!static_branch_likely(&have_crc32c_opcode))
-               return crc32c_base(crc, data, len);
-
-       if (n) {
-               /* Data isn't 8-byte aligned.  Align it. */
-               n = min(n, len);
-               crc = crc32c_base(crc, data, n);
-               data += n;
-               len -= n;
-       }
-       n = len & ~7U;
-       if (n) {
-               crc32c_sparc64(&crc, (const u64 *)data, n);
-               data += n;
-               len -= n;
-       }
-       if (len)
-               crc = crc32c_base(crc, data, len);
-       return crc;
-}
-EXPORT_SYMBOL(crc32c_arch);
-
-u32 crc32_be_arch(u32 crc, const u8 *data, size_t len)
-{
-       return crc32_be_base(crc, data, len);
-}
-EXPORT_SYMBOL(crc32_be_arch);
-
-static int __init crc32_sparc_init(void)
-{
-       unsigned long cfr;
-
-       if (!(sparc64_elf_hwcap & HWCAP_SPARC_CRYPTO))
-               return 0;
-
-       __asm__ __volatile__("rd %%asr26, %0" : "=r" (cfr));
-       if (!(cfr & CFR_CRC32C))
-               return 0;
-
-       static_branch_enable(&have_crc32c_opcode);
-       pr_info("Using sparc64 crc32c opcode optimized CRC32C implementation\n");
-       return 0;
-}
-arch_initcall(crc32_sparc_init);
-
-static void __exit crc32_sparc_exit(void)
-{
-}
-module_exit(crc32_sparc_exit);
-
-u32 crc32_optimizations(void)
-{
-       if (static_key_enabled(&have_crc32c_opcode))
-               return CRC32C_OPTIMIZATION;
-       return 0;
-}
-EXPORT_SYMBOL(crc32_optimizations);
-
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("CRC32c (Castagnoli), sparc64 crc32c opcode accelerated");