Lines Matching refs:addr
69 static __always_inline bool memory_is_poisoned_1(unsigned long addr) in memory_is_poisoned_1() argument
71 s8 shadow_value = *(s8 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_1()
74 s8 last_accessible_byte = addr & KASAN_SHADOW_MASK; in memory_is_poisoned_1()
81 static __always_inline bool memory_is_poisoned_2(unsigned long addr) in memory_is_poisoned_2() argument
83 u16 *shadow_addr = (u16 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_2()
86 if (memory_is_poisoned_1(addr + 1)) in memory_is_poisoned_2()
89 if (likely(((addr + 1) & KASAN_SHADOW_MASK) != 0)) in memory_is_poisoned_2()
98 static __always_inline bool memory_is_poisoned_4(unsigned long addr) in memory_is_poisoned_4() argument
100 u16 *shadow_addr = (u16 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_4()
103 if (memory_is_poisoned_1(addr + 3)) in memory_is_poisoned_4()
106 if (likely(((addr + 3) & KASAN_SHADOW_MASK) >= 3)) in memory_is_poisoned_4()
115 static __always_inline bool memory_is_poisoned_8(unsigned long addr) in memory_is_poisoned_8() argument
117 u16 *shadow_addr = (u16 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_8()
120 if (memory_is_poisoned_1(addr + 7)) in memory_is_poisoned_8()
123 if (likely(((addr + 7) & KASAN_SHADOW_MASK) >= 7)) in memory_is_poisoned_8()
132 static __always_inline bool memory_is_poisoned_16(unsigned long addr) in memory_is_poisoned_16() argument
134 u32 *shadow_addr = (u32 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_16()
138 s8 last_byte = (addr + 15) & KASAN_SHADOW_MASK; in memory_is_poisoned_16()
146 return memory_is_poisoned_1(addr + 15); in memory_is_poisoned_16()
194 static __always_inline bool memory_is_poisoned_n(unsigned long addr, in memory_is_poisoned_n() argument
199 ret = memory_is_zero(kasan_mem_to_shadow((void *)addr), in memory_is_poisoned_n()
200 kasan_mem_to_shadow((void *)addr + size - 1) + 1); in memory_is_poisoned_n()
203 unsigned long last_byte = addr + size - 1; in memory_is_poisoned_n()
213 static __always_inline bool memory_is_poisoned(unsigned long addr, size_t size) in memory_is_poisoned() argument
218 return memory_is_poisoned_1(addr); in memory_is_poisoned()
220 return memory_is_poisoned_2(addr); in memory_is_poisoned()
222 return memory_is_poisoned_4(addr); in memory_is_poisoned()
224 return memory_is_poisoned_8(addr); in memory_is_poisoned()
226 return memory_is_poisoned_16(addr); in memory_is_poisoned()
232 return memory_is_poisoned_n(addr, size); in memory_is_poisoned()
236 static __always_inline void check_memory_region(unsigned long addr, in check_memory_region() argument
244 if (unlikely((void *)addr < in check_memory_region()
246 info.access_addr = (void *)addr; in check_memory_region()
254 if (likely(!memory_is_poisoned(addr, size))) in check_memory_region()
257 kasan_report(addr, size, write, _RET_IP_); in check_memory_region()
260 void __asan_loadN(unsigned long addr, size_t size);
261 void __asan_storeN(unsigned long addr, size_t size);
264 void *memset(void *addr, int c, size_t len) in memset() argument
266 __asan_storeN((unsigned long)addr, len); in memset()
268 return __memset(addr, c, len); in memset()
413 int kasan_module_alloc(void *addr, size_t size) in kasan_module_alloc() argument
419 shadow_start = (unsigned long)kasan_mem_to_shadow(addr); in kasan_module_alloc()
433 find_vm_area(addr)->flags |= VM_KASAN; in kasan_module_alloc()
443 vfree(kasan_mem_to_shadow(vm->addr)); in kasan_free_shadow()
472 void __asan_load##size(unsigned long addr) \
474 check_memory_region(addr, size, false); \
480 void __asan_store##size(unsigned long addr) \
482 check_memory_region(addr, size, true); \
495 void __asan_loadN(unsigned long addr, size_t size) in __asan_loadN() argument
497 check_memory_region(addr, size, false); in __asan_loadN()
505 void __asan_storeN(unsigned long addr, size_t size) in __asan_storeN() argument
507 check_memory_region(addr, size, true); in __asan_storeN()