Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 95ec77c0 authored by Daniel Axtens's avatar Daniel Axtens Committed by Michael Ellerman
Browse files

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: default avatarDaniel Axtens <dja@axtens.net>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 62c2c5cf
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -111,8 +111,8 @@ struct machdep_calls {
	/* To setup PHBs when using automatic OF platform driver for PCI */
	int		(*pci_setup_phb)(struct pci_controller *host);

	void		(*restart)(char *cmd);
	void		(*halt)(void);
	void __noreturn	(*restart)(char *cmd);
	void __noreturn (*halt)(void);
	void		(*panic)(char *str);
	void		(*cpu_die)(void);

+1 −1
Original line number Diff line number Diff line
@@ -275,7 +275,7 @@ extern int mpc5200_psc_ac97_gpio_reset(int psc_number);
extern void mpc52xx_map_common_devices(void);
extern int mpc52xx_set_psc_clkdiv(int psc_id, int clkdiv);
extern unsigned int mpc52xx_get_xtal_freq(struct device_node *node);
extern void mpc52xx_restart(char *cmd);
extern void __noreturn mpc52xx_restart(char *cmd);

/* mpc52xx_gpt.c */
struct mpc52xx_gpt_priv;
+1 −1
Original line number Diff line number Diff line
@@ -13,6 +13,6 @@
#ifndef __ASM_POWERPC_PPC4xx_H__
#define __ASM_POWERPC_PPC4xx_H__

extern void ppc4xx_reset_system(char *cmd);
extern void __noreturn ppc4xx_reset_system(char *cmd);

#endif /* __ASM_POWERPC_PPC4xx_H__ */
+2 −2
Original line number Diff line number Diff line
@@ -339,9 +339,9 @@ extern int rtas_service_present(const char *service);
extern int rtas_call(int token, int, int, int *, ...);
void rtas_call_unlocked(struct rtas_args *args, int token, int nargs,
			int nret, ...);
extern void rtas_restart(char *cmd);
extern void __noreturn rtas_restart(char *cmd);
extern void rtas_power_off(void);
extern void rtas_halt(void);
extern void __noreturn rtas_halt(void);
extern void rtas_os_term(char *str);
extern int rtas_get_sensor(int sensor, int index, int *state);
extern int rtas_get_sensor_fast(int sensor, int index, int *state);
+2 −2
Original line number Diff line number Diff line
@@ -685,7 +685,7 @@ int rtas_set_indicator_fast(int indicator, int index, int new_value)
	return rc;
}

void rtas_restart(char *cmd)
void __noreturn rtas_restart(char *cmd)
{
	if (rtas_flash_term_hook)
		rtas_flash_term_hook(SYS_RESTART);
@@ -704,7 +704,7 @@ void rtas_power_off(void)
	for (;;);
}

void rtas_halt(void)
void __noreturn rtas_halt(void)
{
	if (rtas_flash_term_hook)
		rtas_flash_term_hook(SYS_HALT);
Loading