powerpc: Make ppc_md.{halt, restart} __noreturn
powernv marks it's halt and restart calls as __noreturn. However, ppc_md does not have this annotation. Add the annotation to ppc_md, and then to every halt/restart function that is missing it. Additionally, I have verified that all of these functions do not return. Occasionally I have added a spin loop to be sure. Signed-off-by: Daniel Axtens <dja@axtens.net> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
このコミットが含まれているのは:
@@ -204,7 +204,7 @@ static int __init setup_rstcr(void)
|
||||
|
||||
arch_initcall(setup_rstcr);
|
||||
|
||||
void fsl_rstcr_restart(char *cmd)
|
||||
void __noreturn fsl_rstcr_restart(char *cmd)
|
||||
{
|
||||
local_irq_disable();
|
||||
if (rstcr)
|
||||
@@ -228,10 +228,11 @@ EXPORT_SYMBOL(diu_ops);
|
||||
* to initiate a partition restart when we're running under the Freescale
|
||||
* hypervisor.
|
||||
*/
|
||||
void fsl_hv_restart(char *cmd)
|
||||
void __noreturn fsl_hv_restart(char *cmd)
|
||||
{
|
||||
pr_info("hv restart\n");
|
||||
fh_partition_restart(-1);
|
||||
while (1) ;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -241,9 +242,10 @@ void fsl_hv_restart(char *cmd)
|
||||
* function pointers, to shut down the partition when we're running under
|
||||
* the Freescale hypervisor.
|
||||
*/
|
||||
void fsl_hv_halt(void)
|
||||
void __noreturn fsl_hv_halt(void)
|
||||
{
|
||||
pr_info("hv exit\n");
|
||||
fh_partition_stop(-1);
|
||||
while (1) ;
|
||||
}
|
||||
#endif
|
||||
|
@@ -19,7 +19,7 @@ extern u32 fsl_get_sys_freq(void);
|
||||
struct spi_board_info;
|
||||
struct device_node;
|
||||
|
||||
extern void fsl_rstcr_restart(char *cmd);
|
||||
extern void __noreturn fsl_rstcr_restart(char *cmd);
|
||||
|
||||
/* The different ports that the DIU can be connected to */
|
||||
enum fsl_diu_monitor_port {
|
||||
@@ -42,8 +42,8 @@ struct platform_diu_data_ops {
|
||||
|
||||
extern struct platform_diu_data_ops diu_ops;
|
||||
|
||||
void fsl_hv_restart(char *cmd);
|
||||
void fsl_hv_halt(void);
|
||||
void __noreturn fsl_hv_restart(char *cmd);
|
||||
void __noreturn fsl_hv_halt(void);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
新しいイシューから参照
ユーザーをブロックする