Lines Matching refs:lc

195 	struct lowcore *lc;  in pcpu_alloc_lowcore()  local
197 lc = (struct lowcore *) __get_free_pages(GFP_KERNEL | GFP_DMA, LC_ORDER); in pcpu_alloc_lowcore()
201 if (!lc || !nodat_stack || !async_stack || !mcck_stack) in pcpu_alloc_lowcore()
203 memcpy(lc, &S390_lowcore, 512); in pcpu_alloc_lowcore()
204 memset((char *) lc + 512, 0, sizeof(*lc) - 512); in pcpu_alloc_lowcore()
205 lc->async_stack = async_stack + STACK_INIT_OFFSET; in pcpu_alloc_lowcore()
206 lc->nodat_stack = nodat_stack + STACK_INIT_OFFSET; in pcpu_alloc_lowcore()
207 lc->mcck_stack = mcck_stack + STACK_INIT_OFFSET; in pcpu_alloc_lowcore()
208 lc->cpu_nr = cpu; in pcpu_alloc_lowcore()
209 lc->spinlock_lockval = arch_spin_lockval(cpu); in pcpu_alloc_lowcore()
210 lc->spinlock_index = 0; in pcpu_alloc_lowcore()
211 lc->return_lpswe = gen_lpswe(__LC_RETURN_PSW); in pcpu_alloc_lowcore()
212 lc->return_mcck_lpswe = gen_lpswe(__LC_RETURN_MCCK_PSW); in pcpu_alloc_lowcore()
213 lc->preempt_count = PREEMPT_DISABLED; in pcpu_alloc_lowcore()
214 if (nmi_alloc_mcesa(&lc->mcesad)) in pcpu_alloc_lowcore()
216 if (abs_lowcore_map(cpu, lc, true)) in pcpu_alloc_lowcore()
218 lowcore_ptr[cpu] = lc; in pcpu_alloc_lowcore()
219 pcpu_sigp_retry(pcpu, SIGP_SET_PREFIX, __pa(lc)); in pcpu_alloc_lowcore()
223 nmi_free_mcesa(&lc->mcesad); in pcpu_alloc_lowcore()
228 free_pages((unsigned long) lc, LC_ORDER); in pcpu_alloc_lowcore()
235 struct lowcore *lc; in pcpu_free_lowcore() local
239 lc = lowcore_ptr[cpu]; in pcpu_free_lowcore()
240 nodat_stack = lc->nodat_stack - STACK_INIT_OFFSET; in pcpu_free_lowcore()
241 async_stack = lc->async_stack - STACK_INIT_OFFSET; in pcpu_free_lowcore()
242 mcck_stack = lc->mcck_stack - STACK_INIT_OFFSET; in pcpu_free_lowcore()
246 nmi_free_mcesa(&lc->mcesad); in pcpu_free_lowcore()
250 free_pages((unsigned long) lc, LC_ORDER); in pcpu_free_lowcore()
255 struct lowcore *lc = lowcore_ptr[cpu]; in pcpu_prepare_secondary() local
259 lc->cpu_nr = cpu; in pcpu_prepare_secondary()
260 lc->restart_flags = RESTART_FLAG_CTLREGS; in pcpu_prepare_secondary()
261 lc->spinlock_lockval = arch_spin_lockval(cpu); in pcpu_prepare_secondary()
262 lc->spinlock_index = 0; in pcpu_prepare_secondary()
263 lc->percpu_offset = __per_cpu_offset[cpu]; in pcpu_prepare_secondary()
264 lc->kernel_asce = S390_lowcore.kernel_asce; in pcpu_prepare_secondary()
265 lc->user_asce = s390_invalid_asce; in pcpu_prepare_secondary()
266 lc->machine_flags = S390_lowcore.machine_flags; in pcpu_prepare_secondary()
267 lc->user_timer = lc->system_timer = in pcpu_prepare_secondary()
268 lc->steal_timer = lc->avg_steal_timer = 0; in pcpu_prepare_secondary()
269 __ctl_store(lc->cregs_save_area, 0, 15); in pcpu_prepare_secondary()
270 lc->cregs_save_area[1] = lc->kernel_asce; in pcpu_prepare_secondary()
271 lc->cregs_save_area[7] = lc->user_asce; in pcpu_prepare_secondary()
272 save_access_regs((unsigned int *) lc->access_regs_save_area); in pcpu_prepare_secondary()
278 struct lowcore *lc; in pcpu_attach_task() local
282 lc = lowcore_ptr[cpu]; in pcpu_attach_task()
283 lc->kernel_stack = (unsigned long) task_stack_page(tsk) in pcpu_attach_task()
285 lc->current_task = (unsigned long) tsk; in pcpu_attach_task()
286 lc->lpp = LPP_MAGIC; in pcpu_attach_task()
287 lc->current_pid = tsk->pid; in pcpu_attach_task()
288 lc->user_timer = tsk->thread.user_timer; in pcpu_attach_task()
289 lc->guest_timer = tsk->thread.guest_timer; in pcpu_attach_task()
290 lc->system_timer = tsk->thread.system_timer; in pcpu_attach_task()
291 lc->hardirq_timer = tsk->thread.hardirq_timer; in pcpu_attach_task()
292 lc->softirq_timer = tsk->thread.softirq_timer; in pcpu_attach_task()
293 lc->steal_timer = 0; in pcpu_attach_task()
298 struct lowcore *lc; in pcpu_start_fn() local
302 lc = lowcore_ptr[cpu]; in pcpu_start_fn()
303 lc->restart_stack = lc->kernel_stack; in pcpu_start_fn()
304 lc->restart_fn = (unsigned long) func; in pcpu_start_fn()
305 lc->restart_data = (unsigned long) data; in pcpu_start_fn()
306 lc->restart_source = -1U; in pcpu_start_fn()
324 struct lowcore *lc, *abs_lc; in pcpu_delegate() local
328 lc = lowcore_ptr[pcpu - pcpu_devices]; in pcpu_delegate()
338 if (lc) { in pcpu_delegate()
339 lc->restart_stack = stack; in pcpu_delegate()
340 lc->restart_fn = (unsigned long)func; in pcpu_delegate()
341 lc->restart_data = (unsigned long)data; in pcpu_delegate()
342 lc->restart_source = source_cpu; in pcpu_delegate()
403 struct lowcore *lc = lowcore_ptr[0]; in smp_call_ipl_cpu() local
406 lc = &S390_lowcore; in smp_call_ipl_cpu()
409 lc->nodat_stack); in smp_call_ipl_cpu()
621 struct lowcore *lc; in smp_store_status() local
626 lc = lowcore_ptr[cpu]; in smp_store_status()
627 pa = __pa(&lc->floating_pt_save_area); in smp_store_status()
633 pa = lc->mcesad & MCESA_ORIGIN_MASK; in smp_store_status()
635 pa |= lc->mcesad & MCESA_LC_MASK; in smp_store_status()
1250 static __always_inline void set_new_lowcore(struct lowcore *lc) in set_new_lowcore() argument
1257 dst.even = (unsigned long) lc; in set_new_lowcore()
1258 dst.odd = sizeof(*lc); in set_new_lowcore()
1259 pfx = __pa(lc); in set_new_lowcore()
1272 struct lowcore *lc, *lc_ipl; in smp_reinit_ipl_cpu() local
1277 lc = (struct lowcore *) __get_free_pages(GFP_KERNEL | GFP_DMA, LC_ORDER); in smp_reinit_ipl_cpu()
1281 if (!lc || !nodat_stack || !async_stack || !mcck_stack || nmi_alloc_mcesa(&mcesad)) in smp_reinit_ipl_cpu()
1286 set_new_lowcore(lc); in smp_reinit_ipl_cpu()
1294 if (abs_lowcore_map(0, lc, false)) in smp_reinit_ipl_cpu()
1296 lowcore_ptr[0] = lc; in smp_reinit_ipl_cpu()