[SRU LP#1736954] powerpc: Do not call ppc_md.panic in fadump panic notifier

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[SRU LP#1736954] powerpc: Do not call ppc_md.panic in fadump panic notifier

Thadeu Lima de Souza Cascardo-3
Because of a change in qemu 2.10, ppc64el guests won't reboot after panic
timeout, shutting down instead, because of an RTAS call.

This fixes it.

Cascardo.


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

[trusty SRU PATCH] powerpc: Do not call ppc_md.panic in fadump panic notifier

Thadeu Lima de Souza Cascardo-3
From: Nicholas Piggin <[hidden email]>

BugLink: https://bugs.launchpad.net/bugs/1736954

If fadump is not registered, and no other crash or debug handlers are
registered, the powerpc panic handler stops the guest before the
generic panic code can push out debug information to the console.

Currently, system reset injection causes the guest to silently stop.

Stop calling ppc_md.panic in the panic notifier. crash_fadump already
does rtas_os_term() to terminate the guest if fadump is registered.

Remove ppc_md.panic. Move fadump panic notifier into fadump code.

Signed-off-by: Nicholas Piggin <[hidden email]>
Reviewed-by: Mahesh Salgaonkar <[hidden email]>
Signed-off-by: Michael Ellerman <[hidden email]>
(backported from commit a3b2cb30f252b21a6f962e0dd107c8b897ca65e4)
[cascardo: context and setup_panic called from setup_{32,64}.c]
Signed-off-by: Thadeu Lima de Souza Cascardo <[hidden email]>
---
 arch/powerpc/include/asm/machdep.h     |  1 -
 arch/powerpc/include/asm/setup.h       |  1 -
 arch/powerpc/kernel/fadump.c           | 22 ++++++++++++++++++++++
 arch/powerpc/kernel/setup-common.c     | 22 ----------------------
 arch/powerpc/kernel/setup_32.c         |  3 ---
 arch/powerpc/kernel/setup_64.c         |  3 ---
 arch/powerpc/platforms/ps3/setup.c     | 15 ---------------
 arch/powerpc/platforms/pseries/setup.c |  1 -
 8 files changed, 22 insertions(+), 46 deletions(-)

diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h
index bce1d7b77046..9170b830f2d5 100644
--- a/arch/powerpc/include/asm/machdep.h
+++ b/arch/powerpc/include/asm/machdep.h
@@ -141,7 +141,6 @@ struct machdep_calls {
  void (*restart)(char *cmd);
  void (*power_off)(void);
  void (*halt)(void);
- void (*panic)(char *str);
  void (*cpu_die)(void);
 
  long (*time_init)(void); /* Optional, may be NULL */
diff --git a/arch/powerpc/include/asm/setup.h b/arch/powerpc/include/asm/setup.h
index 703a8412dac2..d90a4c32b688 100644
--- a/arch/powerpc/include/asm/setup.h
+++ b/arch/powerpc/include/asm/setup.h
@@ -25,7 +25,6 @@ extern void reloc_got2(unsigned long);
 
 void check_for_initrd(void);
 void do_init_bootmem(void);
-void setup_panic(void);
 
 #endif /* !__ASSEMBLY__ */
 
diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index 2230fd0ca3e4..ba689d911470 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -1276,6 +1276,25 @@ static void fadump_init_files(void)
  return;
 }
 
+static int fadump_panic_event(struct notifier_block *this,
+      unsigned long event, void *ptr)
+{
+ /*
+ * If firmware-assisted dump has been registered then trigger
+ * firmware-assisted dump and let firmware handle everything
+ * else. If this returns, then fadump was not registered, so
+ * go through the rest of the panic path.
+ */
+ crash_fadump(NULL, ptr);
+
+ return NOTIFY_DONE;
+}
+
+static struct notifier_block fadump_panic_block = {
+ .notifier_call = fadump_panic_event,
+ .priority = INT_MIN /* may not return; must be done last */
+};
+
 /*
  * Prepare for firmware-assisted dump.
  */
@@ -1308,6 +1327,9 @@ int __init setup_fadump(void)
  init_fadump_mem_struct(&fdm, fw_dump.reserve_dump_area_start);
  fadump_init_files();
 
+ atomic_notifier_chain_register(&panic_notifier_list,
+ &fadump_panic_block);
+
  return 1;
 }
 subsys_initcall(setup_fadump);
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 04aa4d3c7c05..f6b4bd0191fd 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -647,28 +647,6 @@ int check_legacy_ioport(unsigned long base_port)
 }
 EXPORT_SYMBOL(check_legacy_ioport);
 
-static int ppc_panic_event(struct notifier_block *this,
-                             unsigned long event, void *ptr)
-{
- /*
- * If firmware-assisted dump has been registered then trigger
- * firmware-assisted dump and let firmware handle everything else.
- */
- crash_fadump(NULL, ptr);
- ppc_md.panic(ptr);  /* May not return */
- return NOTIFY_DONE;
-}
-
-static struct notifier_block ppc_panic_block = {
- .notifier_call = ppc_panic_event,
- .priority = INT_MIN /* may not return; must be done last */
-};
-
-void __init setup_panic(void)
-{
- atomic_notifier_chain_register(&panic_notifier_list, &ppc_panic_block);
-}
-
 #ifdef CONFIG_CHECK_CACHE_COHERENCY
 /*
  * For platforms that have configurable cache-coherency.  This function
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
index b903dc5cf944..c74aed2d84bf 100644
--- a/arch/powerpc/kernel/setup_32.c
+++ b/arch/powerpc/kernel/setup_32.c
@@ -299,9 +299,6 @@ void __init setup_arch(char **cmdline_p)
  /* reboot on panic */
  panic_timeout = 180;
 
- if (ppc_md.panic)
- setup_panic();
-
  init_mm.start_code = (unsigned long)_stext;
  init_mm.end_code = (unsigned long) _etext;
  init_mm.end_data = (unsigned long) _edata;
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 3973991121e4..0f86689a5078 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -599,9 +599,6 @@ void __init setup_arch(char **cmdline_p)
  /* reboot on panic */
  panic_timeout = 180;
 
- if (ppc_md.panic)
- setup_panic();
-
  init_mm.start_code = (unsigned long)_stext;
  init_mm.end_code = (unsigned long) _etext;
  init_mm.end_data = (unsigned long) _edata;
diff --git a/arch/powerpc/platforms/ps3/setup.c b/arch/powerpc/platforms/ps3/setup.c
index 3f509f86432c..4ff7cafa34a4 100644
--- a/arch/powerpc/platforms/ps3/setup.c
+++ b/arch/powerpc/platforms/ps3/setup.c
@@ -104,20 +104,6 @@ static void ps3_halt(void)
  ps3_sys_manager_halt(); /* never returns */
 }
 
-static void ps3_panic(char *str)
-{
- DBG("%s:%d %s\n", __func__, __LINE__, str);
-
- smp_send_stop();
- printk("\n");
- printk("   System does not reboot automatically.\n");
- printk("   Please press POWER button.\n");
- printk("\n");
-
- while(1)
- lv1_pause(1);
-}
-
 #if defined(CONFIG_FB_PS3) || defined(CONFIG_FB_PS3_MODULE) || \
     defined(CONFIG_PS3_FLASH) || defined(CONFIG_PS3_FLASH_MODULE)
 static void __init prealloc(struct ps3_prealloc *p)
@@ -272,7 +258,6 @@ define_machine(ps3) {
  .probe = ps3_probe,
  .setup_arch = ps3_setup_arch,
  .init_IRQ = ps3_init_IRQ,
- .panic = ps3_panic,
  .get_boot_time = ps3_get_boot_time,
  .set_dabr = ps3_set_dabr,
  .calibrate_decr = ps3_calibrate_decr,
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index c1f190858701..4fa543a50793 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -802,7 +802,6 @@ define_machine(pseries) {
  .restart = rtas_restart,
  .power_off = pSeries_power_off,
  .halt = rtas_halt,
- .panic = rtas_os_term,
  .get_boot_time = rtas_get_boot_time,
  .get_rtc_time = rtas_get_rtc_time,
  .set_rtc_time = rtas_set_rtc_time,
--
2.14.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

[xenial SRU PATCH] powerpc: Do not call ppc_md.panic in fadump panic notifier

Thadeu Lima de Souza Cascardo-3
In reply to this post by Thadeu Lima de Souza Cascardo-3
From: Nicholas Piggin <[hidden email]>

BugLink: https://bugs.launchpad.net/bugs/1736954

If fadump is not registered, and no other crash or debug handlers are
registered, the powerpc panic handler stops the guest before the
generic panic code can push out debug information to the console.

Currently, system reset injection causes the guest to silently stop.

Stop calling ppc_md.panic in the panic notifier. crash_fadump already
does rtas_os_term() to terminate the guest if fadump is registered.

Remove ppc_md.panic. Move fadump panic notifier into fadump code.

Signed-off-by: Nicholas Piggin <[hidden email]>
Reviewed-by: Mahesh Salgaonkar <[hidden email]>
Signed-off-by: Michael Ellerman <[hidden email]>
(backported from commit a3b2cb30f252b21a6f962e0dd107c8b897ca65e4)
[cascardo: context and setup_panic called from setup_{32,64}.c]
Signed-off-by: Thadeu Lima de Souza Cascardo <[hidden email]>
---
 arch/powerpc/include/asm/machdep.h     |  1 -
 arch/powerpc/include/asm/setup.h       |  1 -
 arch/powerpc/kernel/fadump.c           | 22 ++++++++++++++++++++++
 arch/powerpc/kernel/setup-common.c     | 22 ----------------------
 arch/powerpc/kernel/setup_32.c         |  3 ---
 arch/powerpc/kernel/setup_64.c         |  3 ---
 arch/powerpc/platforms/ps3/setup.c     | 15 ---------------
 arch/powerpc/platforms/pseries/setup.c |  1 -
 8 files changed, 22 insertions(+), 46 deletions(-)

diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h
index 3f191f573d4f..9e3acf5f518c 100644
--- a/arch/powerpc/include/asm/machdep.h
+++ b/arch/powerpc/include/asm/machdep.h
@@ -113,7 +113,6 @@ struct machdep_calls {
 
  void (*restart)(char *cmd);
  void (*halt)(void);
- void (*panic)(char *str);
  void (*cpu_die)(void);
 
  long (*time_init)(void); /* Optional, may be NULL */
diff --git a/arch/powerpc/include/asm/setup.h b/arch/powerpc/include/asm/setup.h
index e9d384cbd021..64f7572fe934 100644
--- a/arch/powerpc/include/asm/setup.h
+++ b/arch/powerpc/include/asm/setup.h
@@ -23,7 +23,6 @@ extern void reloc_got2(unsigned long);
 
 void check_for_initrd(void);
 void initmem_init(void);
-void setup_panic(void);
 #define ARCH_PANIC_TIMEOUT 180
 
 #endif /* !__ASSEMBLY__ */
diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index 26d091a1a54c..5932877c1115 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -1279,6 +1279,25 @@ static void fadump_init_files(void)
  return;
 }
 
+static int fadump_panic_event(struct notifier_block *this,
+      unsigned long event, void *ptr)
+{
+ /*
+ * If firmware-assisted dump has been registered then trigger
+ * firmware-assisted dump and let firmware handle everything
+ * else. If this returns, then fadump was not registered, so
+ * go through the rest of the panic path.
+ */
+ crash_fadump(NULL, ptr);
+
+ return NOTIFY_DONE;
+}
+
+static struct notifier_block fadump_panic_block = {
+ .notifier_call = fadump_panic_event,
+ .priority = INT_MIN /* may not return; must be done last */
+};
+
 /*
  * Prepare for firmware-assisted dump.
  */
@@ -1311,6 +1330,9 @@ int __init setup_fadump(void)
  init_fadump_mem_struct(&fdm, fw_dump.reserve_dump_area_start);
  fadump_init_files();
 
+ atomic_notifier_chain_register(&panic_notifier_list,
+ &fadump_panic_block);
+
  return 1;
 }
 subsys_initcall(setup_fadump);
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 93c7e5f19e88..e979769b9955 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -688,28 +688,6 @@ int check_legacy_ioport(unsigned long base_port)
 }
 EXPORT_SYMBOL(check_legacy_ioport);
 
-static int ppc_panic_event(struct notifier_block *this,
-                             unsigned long event, void *ptr)
-{
- /*
- * If firmware-assisted dump has been registered then trigger
- * firmware-assisted dump and let firmware handle everything else.
- */
- crash_fadump(NULL, ptr);
- ppc_md.panic(ptr);  /* May not return */
- return NOTIFY_DONE;
-}
-
-static struct notifier_block ppc_panic_block = {
- .notifier_call = ppc_panic_event,
- .priority = INT_MIN /* may not return; must be done last */
-};
-
-void __init setup_panic(void)
-{
- atomic_notifier_chain_register(&panic_notifier_list, &ppc_panic_block);
-}
-
 #ifdef CONFIG_CHECK_CACHE_COHERENCY
 /*
  * For platforms that have configurable cache-coherency.  This function
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
index ad8c9db61237..25db5429129a 100644
--- a/arch/powerpc/kernel/setup_32.c
+++ b/arch/powerpc/kernel/setup_32.c
@@ -299,9 +299,6 @@ void __init setup_arch(char **cmdline_p)
  if (cpu_has_feature(CPU_FTR_UNIFIED_ID_CACHE))
  ucache_bsize = icache_bsize = dcache_bsize;
 
- if (ppc_md.panic)
- setup_panic();
-
  init_mm.start_code = (unsigned long)_stext;
  init_mm.end_code = (unsigned long) _etext;
  init_mm.end_data = (unsigned long) _edata;
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index a20823210ac0..13d7a14f3953 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -709,9 +709,6 @@ void __init setup_arch(char **cmdline_p)
  dcache_bsize = ppc64_caches.dline_size;
  icache_bsize = ppc64_caches.iline_size;
 
- if (ppc_md.panic)
- setup_panic();
-
  init_mm.start_code = (unsigned long)_stext;
  init_mm.end_code = (unsigned long) _etext;
  init_mm.end_data = (unsigned long) _edata;
diff --git a/arch/powerpc/platforms/ps3/setup.c b/arch/powerpc/platforms/ps3/setup.c
index 799c8580ab09..427ba83d6df1 100644
--- a/arch/powerpc/platforms/ps3/setup.c
+++ b/arch/powerpc/platforms/ps3/setup.c
@@ -104,20 +104,6 @@ static void ps3_halt(void)
  ps3_sys_manager_halt(); /* never returns */
 }
 
-static void ps3_panic(char *str)
-{
- DBG("%s:%d %s\n", __func__, __LINE__, str);
-
- smp_send_stop();
- printk("\n");
- printk("   System does not reboot automatically.\n");
- printk("   Please press POWER button.\n");
- printk("\n");
-
- while(1)
- lv1_pause(1);
-}
-
 #if defined(CONFIG_FB_PS3) || defined(CONFIG_FB_PS3_MODULE) || \
     defined(CONFIG_PS3_FLASH) || defined(CONFIG_PS3_FLASH_MODULE)
 static void __init prealloc(struct ps3_prealloc *p)
@@ -268,7 +254,6 @@ define_machine(ps3) {
  .probe = ps3_probe,
  .setup_arch = ps3_setup_arch,
  .init_IRQ = ps3_init_IRQ,
- .panic = ps3_panic,
  .get_boot_time = ps3_get_boot_time,
  .set_dabr = ps3_set_dabr,
  .calibrate_decr = ps3_calibrate_decr,
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index 36df46eaba24..addb47364bfb 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -841,7 +841,6 @@ define_machine(pseries) {
  .pcibios_fixup = pSeries_final_fixup,
  .restart = rtas_restart,
  .halt = rtas_halt,
- .panic = rtas_os_term,
  .get_boot_time = rtas_get_boot_time,
  .get_rtc_time = rtas_get_rtc_time,
  .set_rtc_time = rtas_set_rtc_time,
--
2.14.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

[zesty/artful SRU PATCH] powerpc: Do not call ppc_md.panic in fadump panic notifier

Thadeu Lima de Souza Cascardo-3
In reply to this post by Thadeu Lima de Souza Cascardo-3
From: Nicholas Piggin <[hidden email]>

BugLink: https://bugs.launchpad.net/bugs/1736954

If fadump is not registered, and no other crash or debug handlers are
registered, the powerpc panic handler stops the guest before the
generic panic code can push out debug information to the console.

Currently, system reset injection causes the guest to silently stop.

Stop calling ppc_md.panic in the panic notifier. crash_fadump already
does rtas_os_term() to terminate the guest if fadump is registered.

Remove ppc_md.panic. Move fadump panic notifier into fadump code.

Signed-off-by: Nicholas Piggin <[hidden email]>
Reviewed-by: Mahesh Salgaonkar <[hidden email]>
Signed-off-by: Michael Ellerman <[hidden email]>
(cherry picked from commit a3b2cb30f252b21a6f962e0dd107c8b897ca65e4)
Signed-off-by: Thadeu Lima de Souza Cascardo <[hidden email]>
---
 arch/powerpc/include/asm/machdep.h     |  1 -
 arch/powerpc/include/asm/setup.h       |  1 -
 arch/powerpc/kernel/fadump.c           | 22 ++++++++++++++++++++++
 arch/powerpc/kernel/setup-common.c     | 27 ---------------------------
 arch/powerpc/platforms/ps3/setup.c     | 15 ---------------
 arch/powerpc/platforms/pseries/setup.c |  1 -
 6 files changed, 22 insertions(+), 45 deletions(-)

diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h
index cd2fc1cc1cc7..73b92017b6d7 100644
--- a/arch/powerpc/include/asm/machdep.h
+++ b/arch/powerpc/include/asm/machdep.h
@@ -76,7 +76,6 @@ struct machdep_calls {
 
  void __noreturn (*restart)(char *cmd);
  void __noreturn (*halt)(void);
- void (*panic)(char *str);
  void (*cpu_die)(void);
 
  long (*time_init)(void); /* Optional, may be NULL */
diff --git a/arch/powerpc/include/asm/setup.h b/arch/powerpc/include/asm/setup.h
index 654d64c9f3ac..3a3fb0ca68f5 100644
--- a/arch/powerpc/include/asm/setup.h
+++ b/arch/powerpc/include/asm/setup.h
@@ -23,7 +23,6 @@ extern void reloc_got2(unsigned long);
 
 void check_for_initrd(void);
 void initmem_init(void);
-void setup_panic(void);
 #define ARCH_PANIC_TIMEOUT 180
 
 #ifdef CONFIG_PPC_PSERIES
diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index dc0c49cfd90a..dd2c85f0bd8d 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -1446,6 +1446,25 @@ static void fadump_init_files(void)
  return;
 }
 
+static int fadump_panic_event(struct notifier_block *this,
+      unsigned long event, void *ptr)
+{
+ /*
+ * If firmware-assisted dump has been registered then trigger
+ * firmware-assisted dump and let firmware handle everything
+ * else. If this returns, then fadump was not registered, so
+ * go through the rest of the panic path.
+ */
+ crash_fadump(NULL, ptr);
+
+ return NOTIFY_DONE;
+}
+
+static struct notifier_block fadump_panic_block = {
+ .notifier_call = fadump_panic_event,
+ .priority = INT_MIN /* may not return; must be done last */
+};
+
 /*
  * Prepare for firmware-assisted dump.
  */
@@ -1478,6 +1497,9 @@ int __init setup_fadump(void)
  init_fadump_mem_struct(&fdm, fw_dump.reserve_dump_area_start);
  fadump_init_files();
 
+ atomic_notifier_chain_register(&panic_notifier_list,
+ &fadump_panic_block);
+
  return 1;
 }
 subsys_initcall(setup_fadump);
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index b7fb11791033..7273669a2bee 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -729,30 +729,6 @@ int check_legacy_ioport(unsigned long base_port)
 }
 EXPORT_SYMBOL(check_legacy_ioport);
 
-static int ppc_panic_event(struct notifier_block *this,
-                             unsigned long event, void *ptr)
-{
- /*
- * If firmware-assisted dump has been registered then trigger
- * firmware-assisted dump and let firmware handle everything else.
- */
- crash_fadump(NULL, ptr);
- ppc_md.panic(ptr);  /* May not return */
- return NOTIFY_DONE;
-}
-
-static struct notifier_block ppc_panic_block = {
- .notifier_call = ppc_panic_event,
- .priority = INT_MIN /* may not return; must be done last */
-};
-
-void __init setup_panic(void)
-{
- if (!ppc_md.panic)
- return;
- atomic_notifier_chain_register(&panic_notifier_list, &ppc_panic_block);
-}
-
 #ifdef CONFIG_CHECK_CACHE_COHERENCY
 /*
  * For platforms that have configurable cache-coherency.  This function
@@ -897,9 +873,6 @@ void __init setup_arch(char **cmdline_p)
  /* Probe the machine type, establish ppc_md. */
  probe_machine();
 
- /* Setup panic notifier if requested by the platform. */
- setup_panic();
-
  /*
  * Configure ppc_md.power_save (ppc32 only, 64-bit machines do
  * it from their respective probe() function.
diff --git a/arch/powerpc/platforms/ps3/setup.c b/arch/powerpc/platforms/ps3/setup.c
index 6244bc849469..9dabea6e1443 100644
--- a/arch/powerpc/platforms/ps3/setup.c
+++ b/arch/powerpc/platforms/ps3/setup.c
@@ -104,20 +104,6 @@ static void __noreturn ps3_halt(void)
  ps3_sys_manager_halt(); /* never returns */
 }
 
-static void ps3_panic(char *str)
-{
- DBG("%s:%d %s\n", __func__, __LINE__, str);
-
- smp_send_stop();
- printk("\n");
- printk("   System does not reboot automatically.\n");
- printk("   Please press POWER button.\n");
- printk("\n");
-
- while(1)
- lv1_pause(1);
-}
-
 #if defined(CONFIG_FB_PS3) || defined(CONFIG_FB_PS3_MODULE) || \
     defined(CONFIG_PS3_FLASH) || defined(CONFIG_PS3_FLASH_MODULE)
 static void __init prealloc(struct ps3_prealloc *p)
@@ -269,7 +255,6 @@ define_machine(ps3) {
  .probe = ps3_probe,
  .setup_arch = ps3_setup_arch,
  .init_IRQ = ps3_init_IRQ,
- .panic = ps3_panic,
  .get_boot_time = ps3_get_boot_time,
  .set_dabr = ps3_set_dabr,
  .calibrate_decr = ps3_calibrate_decr,
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index b5d86426e97b..b5b650910cf5 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -722,7 +722,6 @@ define_machine(pseries) {
  .pcibios_fixup = pSeries_final_fixup,
  .restart = rtas_restart,
  .halt = rtas_halt,
- .panic = rtas_os_term,
  .get_boot_time = rtas_get_boot_time,
  .get_rtc_time = rtas_get_rtc_time,
  .set_rtc_time = rtas_set_rtc_time,
--
2.14.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

ACK[B/A/X/T]: [SRU LP#1736954] powerpc: Do not call ppc_md.panic in fadump panic notifier

Stefan Bader-2
In reply to this post by Thadeu Lima de Souza Cascardo-3
On 07.12.2017 18:40, Thadeu Lima de Souza Cascardo wrote:
> Because of a change in qemu 2.10, ppc64el guests won't reboot after panic
> timeout, shutting down instead, because of an RTAS call.
>
> This fixes it.
>
> Cascardo.
>
>

Ignored for Zesty due to being out of support.

Acked-by: Stefan Bader <[hidden email]>



--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team

signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

ACK: [SRU LP#1736954] powerpc: Do not call ppc_md.panic in fadump panic notifier

Colin King
In reply to this post by Thadeu Lima de Souza Cascardo-3
On 07/12/17 17:40, Thadeu Lima de Souza Cascardo wrote:
> Because of a change in qemu 2.10, ppc64el guests won't reboot after panic
> timeout, shutting down instead, because of an RTAS call.
>
> This fixes it.
>
> Cascardo.
>
>
Zesty is EOL. The rest look OK (backports and cherry picks)

Acked-by: Colin Ian King <[hidden email]>

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

APPLIED[A/X/T]: [SRU LP#1736954] powerpc: Do not call ppc_md.panic in fadump panic notifier

Stefan Bader-2
In reply to this post by Thadeu Lima de Souza Cascardo-3
On 07.12.2017 18:40, Thadeu Lima de Souza Cascardo wrote:
> Because of a change in qemu 2.10, ppc64el guests won't reboot after panic
> timeout, shutting down instead, because of an RTAS call.
>
> This fixes it.
>
> Cascardo.
>
>
Applied to artful+xenial/master-next-backlog, and trusty/master-next


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team

signature.asc (836 bytes) Download Attachment