@@ -28,7 +28,7 @@
unsigned int pci_probe = PCI_PROBE_CONF1 | PCI_PROBE_MMCONF;
-static void __init parse_mmcfg(char *s)
+static int __init parse_mmcfg(char *s)
{
char *ss;
@@ -37,13 +37,24 @@ static void __init parse_mmcfg(char *s)
if ( ss )
*ss = '\0';
- if ( !parse_bool(s) )
+ switch ( parse_bool(s) ) {
+ case 0:
pci_probe &= ~PCI_PROBE_MMCONF;
- else if ( !strcmp(s, "amd_fam10") || !strcmp(s, "amd-fam10") )
- pci_probe |= PCI_CHECK_ENABLE_AMD_MMCONF;
+ break;
+ case 1:
+ break;
+ default:
+ if ( !strcmp(s, "amd_fam10") || !strcmp(s, "amd-fam10") )
+ pci_probe |= PCI_CHECK_ENABLE_AMD_MMCONF;
+ else
+ return -EINVAL;
+ break;
+ }
s = ss + 1;
} while ( ss );
+
+ return 0;
}
custom_param("mmcfg", parse_mmcfg);
Modify the custom parameter parsing routines in: xen/arch/x86/x86_64/mmconfig-shared.c to indicate whether the parameter value was parsed successfully. Cc: Jan Beulich <jbeulich@suse.com> Cc: Andrew Cooper <andrew.cooper3@citrix.com> Signed-off-by: Juergen Gross <jgross@suse.com> --- xen/arch/x86/x86_64/mmconfig-shared.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-)