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>
29 unsigned long aligned, offset, count; in s390_kernel_write_odd() local
33 offset = (unsigned long) dst & 7UL; in s390_kernel_write_odd()
34 size = min(8UL - offset, size); in s390_kernel_write_odd()
35 count = size - 1; in s390_kernel_write_odd()
45 : "a" (&tmp), "a" (&tmp[offset]), "a" (src) in s390_kernel_write_odd()
51 * s390_kernel_write - write to kernel memory bypassing DAT
58 * Therefore we have a read-modify-write sequence: the function reads eight
75 size -= copied; in s390_kernel_write()
85 unsigned long phys, offset; in memcpy_real_iter() local
92 offset = src & ~MEMCPY_REAL_MASK; in memcpy_real_iter()
93 chunk = (void *)(__memcpy_real_area + offset); in memcpy_real_iter()
94 len = min(count, MEMCPY_REAL_SIZE - offset); in memcpy_real_iter()
105 count -= copied; in memcpy_real_iter()
123 return -EFAULT; in memcpy_real()
128 * Find CPU that owns swapped prefix page
133 int cpu; in get_swapped_owner() local
135 for_each_online_cpu(cpu) { in get_swapped_owner()
136 lc = virt_to_phys(lowcore_ptr[cpu]); in get_swapped_owner()
137 if (addr > lc + sizeof(struct lowcore) - 1 || addr < lc) in get_swapped_owner()
139 return cpu; in get_swapped_owner()
141 return -1; in get_swapped_owner()
156 int this_cpu, cpu; in xlate_dev_mem_ptr() local
161 cpu = get_swapped_owner(addr); in xlate_dev_mem_ptr()
162 if (cpu < 0) in xlate_dev_mem_ptr()
168 size = PAGE_SIZE - (addr & ~PAGE_MASK); in xlate_dev_mem_ptr()
174 } else if (cpu == this_cpu) { in xlate_dev_mem_ptr()
175 ptr = (void *)(addr - virt_to_phys(lowcore_ptr[cpu])); in xlate_dev_mem_ptr()