• Home
  • Raw
  • Download

Lines Matching refs:addr

50 static __always_inline bool memory_is_poisoned_1(unsigned long addr)  in memory_is_poisoned_1()  argument
52 s8 shadow_value = *(s8 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_1()
55 s8 last_accessible_byte = addr & KASAN_SHADOW_MASK; in memory_is_poisoned_1()
62 static __always_inline bool memory_is_poisoned_2_4_8(unsigned long addr, in memory_is_poisoned_2_4_8() argument
65 u8 *shadow_addr = (u8 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_2_4_8()
71 if (unlikely(((addr + size - 1) & KASAN_SHADOW_MASK) < size - 1)) in memory_is_poisoned_2_4_8()
72 return *shadow_addr || memory_is_poisoned_1(addr + size - 1); in memory_is_poisoned_2_4_8()
74 return memory_is_poisoned_1(addr + size - 1); in memory_is_poisoned_2_4_8()
77 static __always_inline bool memory_is_poisoned_16(unsigned long addr) in memory_is_poisoned_16() argument
79 u16 *shadow_addr = (u16 *)kasan_mem_to_shadow((void *)addr); in memory_is_poisoned_16()
82 if (unlikely(!IS_ALIGNED(addr, KASAN_SHADOW_SCALE_SIZE))) in memory_is_poisoned_16()
83 return *shadow_addr || memory_is_poisoned_1(addr + 15); in memory_is_poisoned_16()
130 static __always_inline bool memory_is_poisoned_n(unsigned long addr, in memory_is_poisoned_n() argument
135 ret = memory_is_nonzero(kasan_mem_to_shadow((void *)addr), in memory_is_poisoned_n()
136 kasan_mem_to_shadow((void *)addr + size - 1) + 1); in memory_is_poisoned_n()
139 unsigned long last_byte = addr + size - 1; in memory_is_poisoned_n()
149 static __always_inline bool memory_is_poisoned(unsigned long addr, size_t size) in memory_is_poisoned() argument
154 return memory_is_poisoned_1(addr); in memory_is_poisoned()
158 return memory_is_poisoned_2_4_8(addr, size); in memory_is_poisoned()
160 return memory_is_poisoned_16(addr); in memory_is_poisoned()
166 return memory_is_poisoned_n(addr, size); in memory_is_poisoned()
169 static __always_inline bool check_memory_region_inline(unsigned long addr, in check_memory_region_inline() argument
176 if (unlikely((void *)addr < in check_memory_region_inline()
178 kasan_report(addr, size, write, ret_ip); in check_memory_region_inline()
182 if (likely(!memory_is_poisoned(addr, size))) in check_memory_region_inline()
185 kasan_report(addr, size, write, ret_ip); in check_memory_region_inline()
189 bool check_memory_region(unsigned long addr, size_t size, bool write, in check_memory_region() argument
192 return check_memory_region_inline(addr, size, write, ret_ip); in check_memory_region()
232 void __asan_load##size(unsigned long addr) \
234 check_memory_region_inline(addr, size, false, _RET_IP_);\
240 void __asan_store##size(unsigned long addr) \
242 check_memory_region_inline(addr, size, true, _RET_IP_); \
255 void __asan_loadN(unsigned long addr, size_t size) in __asan_loadN() argument
257 check_memory_region(addr, size, false, _RET_IP_); in __asan_loadN()
265 void __asan_storeN(unsigned long addr, size_t size) in __asan_storeN() argument
267 check_memory_region(addr, size, true, _RET_IP_); in __asan_storeN()
280 void __asan_alloca_poison(unsigned long addr, size_t size) in __asan_alloca_poison() argument
287 const void *left_redzone = (const void *)(addr - in __asan_alloca_poison()
289 const void *right_redzone = (const void *)(addr + rounded_up_size); in __asan_alloca_poison()
291 WARN_ON(!IS_ALIGNED(addr, KASAN_ALLOCA_REDZONE_SIZE)); in __asan_alloca_poison()
293 kasan_unpoison_shadow((const void *)(addr + rounded_down_size), in __asan_alloca_poison()
315 void __asan_set_shadow_##byte(const void *addr, size_t size) \
317 __memset((void *)addr, 0x##byte, size); \