Page MenuHomeFreeBSD

D26032.1794706236.diff
No OneTemporary

Authored By
Unknown
Size
734 B
Referenced Files
None
Subscribers
None

D26032.1794706236.diff

Index: sys/libkern/gsb_crc32.c
===================================================================
--- sys/libkern/gsb_crc32.c
+++ sys/libkern/gsb_crc32.c
@@ -58,7 +58,8 @@
#endif
#if defined(__aarch64__)
-#include <machine/cpu.h>
+#include <machine/elf.h>
+#include <machine/md_var.h>
#endif
#endif /* _KERNEL */
@@ -770,14 +771,7 @@
} else
#endif
#if defined(__aarch64__)
- uint64_t reg;
-
- /*
- * We only test for CRC32 support on the CPU with index 0 assuming that
- * this applies to all CPUs.
- */
- reg = READ_SPECIALREG(id_aa64isar0_el1);
- if (ID_AA64ISAR0_CRC32_VAL(reg) != ID_AA64ISAR0_CRC32_NONE) {
+ if ((elf_hwcap & HWCAP_CRC32) != 0) {
return (armv8_crc32c(crc32c, buffer, length));
} else
#endif

File Metadata

Mime Type
text/plain
Expires
Sun, Nov 15, 1:30 AM (4 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
41735247
Default Alt Text
D26032.1794706236.diff (734 B)

Event Timeline