Lines Matching defs:len
22 size_t len;
66 static int __patch_insn_set(void *addr, u8 c, size_t len)
68 bool across_pages = (offset_in_page(addr) + len) > PAGE_SIZE;
74 if (len + offset_in_page(addr) > 2 * PAGE_SIZE)
90 memset(waddr, c, len);
98 (unsigned long)waddr + len);
111 static int __patch_insn_write(void *addr, const void *insn, size_t len)
113 bool across_pages = (offset_in_page(addr) + len) > PAGE_SIZE;
120 if (len + offset_in_page(addr) > 2 * PAGE_SIZE)
144 ret = copy_to_kernel_nofault(waddr, insn, len);
152 (unsigned long)waddr + len);
165 static int __patch_insn_set(void *addr, u8 c, size_t len)
167 memset(addr, c, len);
173 static int __patch_insn_write(void *addr, const void *insn, size_t len)
175 return copy_to_kernel_nofault(addr, insn, len);
180 static int patch_insn_set(void *addr, u8 c, size_t len)
187 * loop with len <= 2 * PAGE_SIZE.
189 while (len) {
190 size = min(len, PAGE_SIZE * 2 - offset_in_page(addr));
196 len -= size;
203 int patch_text_set_nosync(void *addr, u8 c, size_t len)
207 ret = patch_insn_set(addr, c, len);
209 flush_icache_range((uintptr_t)addr, (uintptr_t)addr + len);
215 int patch_insn_write(void *addr, const void *insn, size_t len)
222 * because __patch_insn_write() can only handle len <= 2 * PAGE_SIZE.
224 while (len) {
225 size = min(len, PAGE_SIZE * 2 - offset_in_page(addr));
232 len -= size;
239 int patch_text_nosync(void *addr, const void *insns, size_t len)
243 ret = patch_insn_write(addr, insns, len);
245 flush_icache_range((uintptr_t)addr, (uintptr_t)addr + len);
257 ret = patch_insn_write(patch->addr, patch->insns, patch->len);
277 int patch_text(void *addr, u32 *insns, size_t len)
283 .len = len,