Lines Matching refs:addr

70 static __always_inline bool memory_is_poisoned_1(unsigned long addr)  in memory_is_poisoned_1()  argument
72 s8 shadow_value = *(s8 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_1()
75 s8 last_accessible_byte = addr & KASAN_SHADOW_MASK; in memory_is_poisoned_1()
82 static __always_inline bool memory_is_poisoned_2(unsigned long addr) in memory_is_poisoned_2() argument
84 u16 *shadow_addr = (u16 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_2()
87 if (memory_is_poisoned_1(addr + 1)) in memory_is_poisoned_2()
95 if (likely(((addr + 1) & KASAN_SHADOW_MASK) != 0)) in memory_is_poisoned_2()
104 static __always_inline bool memory_is_poisoned_4(unsigned long addr) in memory_is_poisoned_4() argument
106 u16 *shadow_addr = (u16 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_4()
109 if (memory_is_poisoned_1(addr + 3)) in memory_is_poisoned_4()
117 if (likely(((addr + 3) & KASAN_SHADOW_MASK) >= 3)) in memory_is_poisoned_4()
126 static __always_inline bool memory_is_poisoned_8(unsigned long addr) in memory_is_poisoned_8() argument
128 u16 *shadow_addr = (u16 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_8()
131 if (memory_is_poisoned_1(addr + 7)) in memory_is_poisoned_8()
139 if (likely(IS_ALIGNED(addr, KASAN_SHADOW_SCALE_SIZE))) in memory_is_poisoned_8()
148 static __always_inline bool memory_is_poisoned_16(unsigned long addr) in memory_is_poisoned_16() argument
150 u32 *shadow_addr = (u32 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_16()
163 if (likely(IS_ALIGNED(addr, KASAN_SHADOW_SCALE_SIZE))) in memory_is_poisoned_16()
166 return memory_is_poisoned_1(addr + 15); in memory_is_poisoned_16()
214 static __always_inline bool memory_is_poisoned_n(unsigned long addr, in memory_is_poisoned_n() argument
219 ret = memory_is_zero(kasan_mem_to_shadow((void *)addr), in memory_is_poisoned_n()
220 kasan_mem_to_shadow((void *)addr + size - 1) + 1); in memory_is_poisoned_n()
223 unsigned long last_byte = addr + size - 1; in memory_is_poisoned_n()
233 static __always_inline bool memory_is_poisoned(unsigned long addr, size_t size) in memory_is_poisoned() argument
238 return memory_is_poisoned_1(addr); in memory_is_poisoned()
240 return memory_is_poisoned_2(addr); in memory_is_poisoned()
242 return memory_is_poisoned_4(addr); in memory_is_poisoned()
244 return memory_is_poisoned_8(addr); in memory_is_poisoned()
246 return memory_is_poisoned_16(addr); in memory_is_poisoned()
252 return memory_is_poisoned_n(addr, size); in memory_is_poisoned()
256 static __always_inline void check_memory_region(unsigned long addr, in check_memory_region() argument
262 if (unlikely((void *)addr < in check_memory_region()
264 kasan_report(addr, size, write, _RET_IP_); in check_memory_region()
268 if (likely(!memory_is_poisoned(addr, size))) in check_memory_region()
271 kasan_report(addr, size, write, _RET_IP_); in check_memory_region()
274 void __asan_loadN(unsigned long addr, size_t size);
275 void __asan_storeN(unsigned long addr, size_t size);
278 void *memset(void *addr, int c, size_t len) in memset() argument
280 __asan_storeN((unsigned long)addr, len); in memset()
282 return __memset(addr, c, len); in memset()
427 int kasan_module_alloc(void *addr, size_t size) in kasan_module_alloc() argument
433 shadow_start = (unsigned long)kasan_mem_to_shadow(addr); in kasan_module_alloc()
447 find_vm_area(addr)->flags |= VM_KASAN; in kasan_module_alloc()
458 vfree(kasan_mem_to_shadow(vm->addr)); in kasan_free_shadow()
487 void __asan_load##size(unsigned long addr) \
489 check_memory_region(addr, size, false); \
495 void __asan_store##size(unsigned long addr) \
497 check_memory_region(addr, size, true); \
510 void __asan_loadN(unsigned long addr, size_t size) in __asan_loadN() argument
512 check_memory_region(addr, size, false); in __asan_loadN()
520 void __asan_storeN(unsigned long addr, size_t size) in __asan_storeN() argument
522 check_memory_region(addr, size, true); in __asan_storeN()