mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-11 13:27:06 +09:00
sparc64: Migrate hvcons irq to panicked cpu
[ Upstream commit 7dd4fcf5b7 ]
On panic, all other CPUs are stopped except the one which had
hit panic. To keep console alive, we need to migrate hvcons irq
to panicked CPU.
Signed-off-by: Vijay Kumar <vijay.ac.kumar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
cf368c29f5
commit
84a66ca775
@@ -59,8 +59,11 @@ extern atomic_t dcpage_flushes;
|
||||
extern atomic_t dcpage_flushes_xcall;
|
||||
|
||||
extern int sysctl_tsb_ratio;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SERIAL_SUNHV
|
||||
void sunhv_migrate_hvcons_irq(int cpu);
|
||||
#endif
|
||||
#endif
|
||||
void sun_do_break(void);
|
||||
extern int stop_a_enabled;
|
||||
extern int scons_pwroff;
|
||||
|
||||
@@ -1465,8 +1465,12 @@ void smp_send_stop(void)
|
||||
int cpu;
|
||||
|
||||
if (tlb_type == hypervisor) {
|
||||
int this_cpu = smp_processor_id();
|
||||
#ifdef CONFIG_SERIAL_SUNHV
|
||||
sunhv_migrate_hvcons_irq(this_cpu);
|
||||
#endif
|
||||
for_each_online_cpu(cpu) {
|
||||
if (cpu == smp_processor_id())
|
||||
if (cpu == this_cpu)
|
||||
continue;
|
||||
#ifdef CONFIG_SUN_LDOMS
|
||||
if (ldom_domaining_enabled) {
|
||||
|
||||
@@ -398,6 +398,12 @@ static struct uart_driver sunhv_reg = {
|
||||
|
||||
static struct uart_port *sunhv_port;
|
||||
|
||||
void sunhv_migrate_hvcons_irq(int cpu)
|
||||
{
|
||||
/* Migrate hvcons irq to param cpu */
|
||||
irq_force_affinity(sunhv_port->irq, cpumask_of(cpu));
|
||||
}
|
||||
|
||||
/* Copy 's' into the con_write_page, decoding "\n" into
|
||||
* "\r\n" along the way. We have to return two lengths
|
||||
* because the caller needs to know how much to advance
|
||||
|
||||
Reference in New Issue
Block a user