summaryrefslogtreecommitdiff
path: root/kernel-lib
diff options
context:
space:
mode:
Diffstat (limited to 'kernel-lib')
-rw-r--r--kernel-lib/crc32c.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel-lib/crc32c.c b/kernel-lib/crc32c.c
index dfa4e6c1..29fd01d4 100644
--- a/kernel-lib/crc32c.c
+++ b/kernel-lib/crc32c.c
@@ -218,5 +218,9 @@ u32 __crc32c_le(u32 crc, unsigned char const *data, size_t length)
u32 crc32c_le(u32 crc, unsigned char const *data, size_t length)
{
+ /* Use by-byte access for unaligned buffers */
+ if ((unsigned long)data % sizeof(unsigned long))
+ return __crc32c_le(crc, data, length);
+
return crc_function(crc, data, length);
}