|
@@ -160,7 +160,7 @@ static __always_inline bool memory_is_poisoned_16(unsigned long addr)
|
|
|
return *shadow_addr;
|
|
|
}
|
|
|
|
|
|
-static __always_inline unsigned long bytes_is_zero(const u8 *start,
|
|
|
+static __always_inline unsigned long bytes_is_nonzero(const u8 *start,
|
|
|
size_t size)
|
|
|
{
|
|
|
while (size) {
|
|
@@ -173,7 +173,7 @@ static __always_inline unsigned long bytes_is_zero(const u8 *start,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static __always_inline unsigned long memory_is_zero(const void *start,
|
|
|
+static __always_inline unsigned long memory_is_nonzero(const void *start,
|
|
|
const void *end)
|
|
|
{
|
|
|
unsigned int words;
|
|
@@ -181,11 +181,11 @@ static __always_inline unsigned long memory_is_zero(const void *start,
|
|
|
unsigned int prefix = (unsigned long)start % 8;
|
|
|
|
|
|
if (end - start <= 16)
|
|
|
- return bytes_is_zero(start, end - start);
|
|
|
+ return bytes_is_nonzero(start, end - start);
|
|
|
|
|
|
if (prefix) {
|
|
|
prefix = 8 - prefix;
|
|
|
- ret = bytes_is_zero(start, prefix);
|
|
|
+ ret = bytes_is_nonzero(start, prefix);
|
|
|
if (unlikely(ret))
|
|
|
return ret;
|
|
|
start += prefix;
|
|
@@ -194,12 +194,12 @@ static __always_inline unsigned long memory_is_zero(const void *start,
|
|
|
words = (end - start) / 8;
|
|
|
while (words) {
|
|
|
if (unlikely(*(u64 *)start))
|
|
|
- return bytes_is_zero(start, 8);
|
|
|
+ return bytes_is_nonzero(start, 8);
|
|
|
start += 8;
|
|
|
words--;
|
|
|
}
|
|
|
|
|
|
- return bytes_is_zero(start, (end - start) % 8);
|
|
|
+ return bytes_is_nonzero(start, (end - start) % 8);
|
|
|
}
|
|
|
|
|
|
static __always_inline bool memory_is_poisoned_n(unsigned long addr,
|
|
@@ -207,7 +207,7 @@ static __always_inline bool memory_is_poisoned_n(unsigned long addr,
|
|
|
{
|
|
|
unsigned long ret;
|
|
|
|
|
|
- ret = memory_is_zero(kasan_mem_to_shadow((void *)addr),
|
|
|
+ ret = memory_is_nonzero(kasan_mem_to_shadow((void *)addr),
|
|
|
kasan_mem_to_shadow((void *)addr + size - 1) + 1);
|
|
|
|
|
|
if (unlikely(ret)) {
|