Lines Matching +full:cpu +full:- +full:offset

1 // SPDX-License-Identifier: GPL-2.0
3 * Access kernel memory without faulting -- s390 specific implementation.
14 #include <linux/cpu.h>
17 #include <asm/asm-extable.h>
30 unsigned long aligned, offset, count; in s390_kernel_write_odd() local
34 offset = (unsigned long) dst & 7UL; in s390_kernel_write_odd()
35 size = min(8UL - offset, size); in s390_kernel_write_odd()
36 count = size - 1; in s390_kernel_write_odd()
46 : "a" (&tmp), "a" (&tmp[offset]), "a" (src) in s390_kernel_write_odd()
52 * __s390_kernel_write - write to kernel memory bypassing DAT
59 * Therefore we have a read-modify-write sequence: the function reads eight
76 size -= copied; in __s390_kernel_write()
86 unsigned long phys, offset; in memcpy_real_iter() local
93 offset = src & ~MEMCPY_REAL_MASK; in memcpy_real_iter()
94 chunk = (void *)(__memcpy_real_area + offset); in memcpy_real_iter()
95 len = min(count, MEMCPY_REAL_SIZE - offset); in memcpy_real_iter()
106 count -= copied; in memcpy_real_iter()
124 return -EFAULT; in memcpy_real()
129 * Find CPU that owns swapped prefix page
134 int cpu; in get_swapped_owner() local
136 for_each_online_cpu(cpu) { in get_swapped_owner()
137 lc = virt_to_phys(lowcore_ptr[cpu]); in get_swapped_owner()
138 if (addr > lc + sizeof(struct lowcore) - 1 || addr < lc) in get_swapped_owner()
140 return cpu; in get_swapped_owner()
142 return -1; in get_swapped_owner()
157 int this_cpu, cpu; in xlate_dev_mem_ptr() local
162 cpu = get_swapped_owner(addr); in xlate_dev_mem_ptr()
163 if (cpu < 0) in xlate_dev_mem_ptr()
169 size = PAGE_SIZE - (addr & ~PAGE_MASK); in xlate_dev_mem_ptr()
175 } else if (cpu == this_cpu) { in xlate_dev_mem_ptr()
176 ptr = (void *)(addr - virt_to_phys(lowcore_ptr[cpu])); in xlate_dev_mem_ptr()