get_lowcore
tmp = (unsigned long)get_lowcore()->ipl_parmblock_ptr;
get_lowcore()->last_update_clock = TOD_UNIX_EPOCH;
get_lowcore()->current_pid = 0;
get_lowcore()->lpp = LPP_MAGIC;
lpp(&get_lowcore()->lpp);
get_lowcore()->vmcore_info = __kaslr_offset_phys ? __kaslr_offset_phys | 0x1UL : 0;
get_lowcore()->kernel_asce.val = swapper_pg_dir | asce_bits;
get_lowcore()->user_asce = s390_invalid_asce;
local_ctl_load(1, &get_lowcore()->kernel_asce);
local_ctl_load(7, &get_lowcore()->user_asce);
local_ctl_load(13, &get_lowcore()->kernel_asce);
init_mm.context.asce = get_lowcore()->kernel_asce.val;
local_ctl_load(1, &get_lowcore()->kernel_asce);
local_ctl_load(1, &get_lowcore()->user_asce);
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
: "=m" (get_lowcore()->stfl_fac_list));
stfl_fac_list = get_lowcore()->stfl_fac_list;
#define local_softirq_pending() (get_lowcore()->softirq_pending)
#define set_softirq_pending(x) (get_lowcore()->softirq_pending = (x))
#define or_softirq_pending(x) (get_lowcore()->softirq_pending |= (x))
return addr >= (void *)get_lowcore() &&
addr < (void *)(get_lowcore() + 1);
(void *)get_lowcore();
local_ctl_load(1, &get_lowcore()->kernel_asce);
local_ctl_load(1, &get_lowcore()->user_asce);
local_ctl_load(7, &get_lowcore()->user_asce);
local_ctl_load(1, &get_lowcore()->kernel_asce);
local_ctl_load(1, &get_lowcore()->user_asce);
local_ctl_load(7, &get_lowcore()->user_asce);
get_lowcore()->user_asce = s390_invalid_asce;
get_lowcore()->user_asce.val = next->context.asce;
if (!get_lowcore()->ccd)
WRITE_ONCE(get_lowcore()->ccd, get_lowcore()->ccd | PAI_CRYPTO_KERNEL_OFFSET);
if (!get_lowcore()->ccd)
WRITE_ONCE(get_lowcore()->ccd, get_lowcore()->ccd & ~PAI_CRYPTO_KERNEL_OFFSET);
#define __my_cpu_offset get_lowcore()->percpu_offset
__atomic_add(val, &get_lowcore()->preempt_count);
return __atomic_add_const_and_test(-1, &get_lowcore()->preempt_count);
return unlikely(READ_ONCE(get_lowcore()->preempt_count) == preempt_offset);
old = READ_ONCE(get_lowcore()->preempt_count);
} while (!arch_try_cmpxchg(&get_lowcore()->preempt_count, &old, new));
__atomic_and(~PREEMPT_NEED_RESCHED, &get_lowcore()->preempt_count);
__atomic_or(PREEMPT_NEED_RESCHED, &get_lowcore()->preempt_count);
return !(READ_ONCE(get_lowcore()->preempt_count) & PREEMPT_NEED_RESCHED);
unsigned long ksp = get_lowcore()->kernel_stack;
return (struct pcpu *)(get_lowcore()->pcpu);
call_on_stack(0, get_lowcore()->async_stack, void, __do_softirq);
get_lowcore()->stack_canary = current->stack_canary;
old = get_lowcore()->clock_comparator;
get_lowcore()->clock_comparator = clock_comparator_max;
set_clock_comparator(get_lowcore()->clock_comparator);
get_lowcore()->clock_comparator = comp;
set_clock_comparator(get_lowcore()->clock_comparator);
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
return get_lowcore();
unsigned long stack = get_lowcore()->async_stack - STACK_INIT_OFFSET;
unsigned long stack = get_lowcore()->nodat_stack - STACK_INIT_OFFSET;
unsigned long stack = get_lowcore()->mcck_stack - STACK_INIT_OFFSET;
unsigned long stack = get_lowcore()->restart_stack - STACK_INIT_OFFSET;
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
return ((get_lowcore()->async_stack ^ frame) & ~(THREAD_SIZE - 1)) == 0;
call_on_stack(2, get_lowcore()->async_stack, void, do_IRQ,
regs->tpi_info = get_lowcore()->tpi_info;
if (get_lowcore()->tpi_info.adapter_IO)
regs->int_code = get_lowcore()->ext_int_code_addr;
regs->int_parm = get_lowcore()->ext_params;
regs->int_parm_long = get_lowcore()->ext_params2;
prefix = (unsigned long)get_lowcore()->prefixreg_save_area;
memcpy(absolute_pointer(get_lowcore()->floating_pt_save_area),
mcesa = __va(get_lowcore()->mcesad & MCESA_ORIGIN_MASK);
struct lowcore *lc = get_lowcore();
ptr = u64_to_hex(ptr, (u64)get_lowcore());
struct lowcore *lc = get_lowcore();
set_clock_comparator(get_lowcore()->clock_comparator);
cr2.reg = get_lowcore()->cregs_save_area[2];
mcck_backup->mcic = get_lowcore()->mcck_interruption_code &
mcck_backup->ext_damage_code = get_lowcore()->external_damage_code;
mcck_backup->failing_storage_address = get_lowcore()->failing_storage_address;
struct lowcore *lc = get_lowcore();
lpp(&get_lowcore()->lpp);
WRITE_ONCE(get_lowcore()->ccd, ccd);
WRITE_ONCE(get_lowcore()->aicd, ccd);
WRITE_ONCE(get_lowcore()->ccd, 0);
WRITE_ONCE(get_lowcore()->aicd, 0);
if (get_lowcore()->current_pid != current->pid) {
get_lowcore()->current_pid = current->pid;
lpp(&get_lowcore()->lpp);
lc->preempt_count = get_lowcore()->preempt_count;
lc->sys_enter_timer = get_lowcore()->sys_enter_timer;
lc->exit_timer = get_lowcore()->exit_timer;
lc->user_timer = get_lowcore()->user_timer;
lc->system_timer = get_lowcore()->system_timer;
lc->steal_timer = get_lowcore()->steal_timer;
lc->last_update_timer = get_lowcore()->last_update_timer;
lc->last_update_clock = get_lowcore()->last_update_clock;
lc->kernel_stack = get_lowcore()->kernel_stack;
lc->kernel_asce = get_lowcore()->kernel_asce;
lc->user_asce = get_lowcore()->user_asce;
void *lowcore_start = get_lowcore();
pr_info("Lowcore relocated to 0x%px\n", get_lowcore());
memcpy(lc, get_lowcore(), 512);
lc->kernel_asce = get_lowcore()->kernel_asce;
lc = get_lowcore();
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
regs->psw = get_lowcore()->svc_old_psw;
regs->int_code = get_lowcore()->svc_int_code;
get_lowcore()->clock_comparator = clock_comparator_max;
get_lowcore()->clock_comparator = get_tod_clock() + delta;
set_clock_comparator(get_lowcore()->clock_comparator);
get_lowcore()->clock_comparator = clock_comparator_max;
set_clock_comparator(get_lowcore()->clock_comparator);
if (get_lowcore()->clock_comparator == clock_comparator_max)
set_clock_comparator(get_lowcore()->clock_comparator);
if (get_lowcore()->clock_comparator != clock_comparator_max) {
get_lowcore()->clock_comparator += delta;
set_clock_comparator(get_lowcore()->clock_comparator);
get_lowcore()->last_update_clock += delta;
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
struct lowcore *lc = get_lowcore();
get_lowcore()->softirq_timer += vtime_delta();
get_lowcore()->hardirq_timer += vtime_delta();
struct lowcore *lc = get_lowcore();
if (get_lowcore()->avg_steal_timer * 100 / (TICK_USEC << 12) >=
ix = get_lowcore()->spinlock_index++;
get_lowcore()->spinlock_index--;
rc = call_on_stack(1, get_lowcore()->nodat_stack,
struct lowcore *lc = get_lowcore();
unsigned long lowcore = (unsigned long)get_lowcore();
max_addr = (get_lowcore()->kernel_asce.val & _REGION_ENTRY_TYPE_MASK) >> 2;
asce = get_lowcore()->kernel_asce.val;
asce = get_lowcore()->user_asce.val;
crdte(*old, new, table, dtt, addr, get_lowcore()->kernel_asce.val);
get_lowcore()->user_asce = asce;
const u32 *cpu_nr = &get_lowcore()->cpu_nr;
&get_lowcore()->current_task;
psw_ext_save = get_lowcore()->external_new_psw;
get_lowcore()->external_new_psw.mask = psw_mask;
get_lowcore()->ext_int_code = 0;
[psw_ext_addr] "=Q" (get_lowcore()->external_new_psw.addr)
} while (get_lowcore()->ext_int_code != EXT_IRQ_SERVICE_SIG);
get_lowcore()->external_new_psw = psw_ext_save;
irq_ptr->last_data_irq_time = get_lowcore()->int_clock.tod;
u64 irq_time = get_lowcore()->int_clock.tod;
__entry->tpi_info = get_lowcore()->tpi_info;