[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 21/53] xen/arch/x86/shutdown.c: let custom parameter parsing routines return errno
Modify the custom parameter parsing routines in: xen/arch/x86/shutdown.c to indicate whether the parameter value was parsed successfully. Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Signed-off-by: Juergen Gross <jgross@xxxxxxxx> --- V4: - issue a message in case of reboot=efi and no EFI runtime services (Jan Beulich) V3: - dont stop loop at first invalid character (Jan Beulich) --- xen/arch/x86/shutdown.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/shutdown.c b/xen/arch/x86/shutdown.c index f63b8a668f..a87aa60add 100644 --- a/xen/arch/x86/shutdown.c +++ b/xen/arch/x86/shutdown.c @@ -51,8 +51,11 @@ static int reboot_mode; * efi Use the EFI reboot (if running under EFI) */ static enum reboot_type reboot_type = BOOT_INVALID; -static void __init set_reboot_type(char *str) + +static int __init set_reboot_type(const char *str) { + int rc = 0; + for ( ; ; ) { switch ( *str ) @@ -74,6 +77,9 @@ static void __init set_reboot_type(char *str) case 't': reboot_type = *str; break; + default: + rc = -EINVAL; + break; } if ( (str = strchr(str, ',')) == NULL ) break; @@ -81,7 +87,13 @@ static void __init set_reboot_type(char *str) } if ( reboot_type == BOOT_EFI && !efi_enabled(EFI_RS) ) + { + printk("EFI reboot selected, but no EFI runtime services available.\n" + "Falling back to default reboot type.\n"); reboot_type = BOOT_INVALID; + } + + return rc; } custom_param("reboot", set_reboot_type); -- 2.12.3 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |