|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 18/52] xen/arch/x86/psr.c: let custom parameter parsing routines return errno
Modify the custom parameter parsing routines in:
xen/arch/x86/psr.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>
---
xen/arch/x86/psr.c | 28 +++++++++++++++++++++-------
1 file changed, 21 insertions(+), 7 deletions(-)
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index 9ce8f17a18..397963c667 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -420,7 +420,7 @@ static const struct feat_props l2_cat_props = {
};
static void __init parse_psr_bool(char *s, char *value, char *feature,
- unsigned int mask)
+ unsigned int mask, int *rc)
{
if ( !strcmp(s, feature) )
{
@@ -434,13 +434,17 @@ static void __init parse_psr_bool(char *s, char *value,
char *feature,
opt_psr &= ~mask;
else if ( val_int == 1 )
opt_psr |= mask;
+ else
+ *rc = -EINVAL;
}
}
}
-static void __init parse_psr_param(char *s)
+static int __init parse_psr_param(char *s)
{
char *ss, *val_str;
+ const char *q;
+ int rc = 0;
do {
ss = strchr(s, ',');
@@ -451,18 +455,28 @@ static void __init parse_psr_param(char *s)
if ( val_str )
*val_str++ = '\0';
- parse_psr_bool(s, val_str, "cmt", PSR_CMT);
- parse_psr_bool(s, val_str, "cat", PSR_CAT);
- parse_psr_bool(s, val_str, "cdp", PSR_CDP);
+ parse_psr_bool(s, val_str, "cmt", PSR_CMT, &rc);
+ parse_psr_bool(s, val_str, "cat", PSR_CAT, &rc);
+ parse_psr_bool(s, val_str, "cdp", PSR_CDP, &rc);
if ( val_str && !strcmp(s, "rmid_max") )
- opt_rmid_max = simple_strtoul(val_str, NULL, 0);
+ {
+ opt_rmid_max = simple_strtoul(val_str, &q, 0);
+ if ( *q )
+ rc = -EINVAL;
+ }
if ( val_str && !strcmp(s, "cos_max") )
- opt_cos_max = simple_strtoul(val_str, NULL, 0);
+ {
+ opt_cos_max = simple_strtoul(val_str, &q, 0);
+ if ( *q )
+ rc = -EINVAL;
+ }
s = ss + 1;
} while ( ss );
+
+ return rc;
}
custom_param("psr", parse_psr_param);
--
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 |