mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 10:19:47 +00:00
s390: add machine check SIGP
This will be used with the upcoming entry.S changes to signal that there's a machine check pending that cannot be handled in the Machine check handler itself. Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Sven Schnelle <svens@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
a999eb96fd
commit
11886c199d
2 changed files with 9 additions and 0 deletions
|
@ -58,5 +58,6 @@ extern int smp_rescan_cpus(void);
|
|||
extern void __noreturn cpu_die(void);
|
||||
extern void __cpu_die(unsigned int cpu);
|
||||
extern int __cpu_disable(void);
|
||||
extern void schedule_mcck_handler(void);
|
||||
|
||||
#endif /* __ASM_SMP_H */
|
||||
|
|
|
@ -61,6 +61,7 @@ enum {
|
|||
ec_schedule = 0,
|
||||
ec_call_function_single,
|
||||
ec_stop_cpu,
|
||||
ec_mcck_pending,
|
||||
};
|
||||
|
||||
enum {
|
||||
|
@ -403,6 +404,11 @@ int smp_find_processor_id(u16 address)
|
|||
return -1;
|
||||
}
|
||||
|
||||
void schedule_mcck_handler(void)
|
||||
{
|
||||
pcpu_ec_call(pcpu_devices + smp_processor_id(), ec_mcck_pending);
|
||||
}
|
||||
|
||||
bool arch_vcpu_is_preempted(int cpu)
|
||||
{
|
||||
if (test_cpu_flag_of(CIF_ENABLED_WAIT, cpu))
|
||||
|
@ -497,6 +503,8 @@ static void smp_handle_ext_call(void)
|
|||
scheduler_ipi();
|
||||
if (test_bit(ec_call_function_single, &bits))
|
||||
generic_smp_call_function_single_interrupt();
|
||||
if (test_bit(ec_mcck_pending, &bits))
|
||||
s390_handle_mcck();
|
||||
}
|
||||
|
||||
static void do_ext_call_interrupt(struct ext_code ext_code,
|
||||
|
|
Loading…
Reference in a new issue