[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 1/8] x86: clean up psr boot parameter parsing
Change type of opt_psr from bool to int so more psr features can fit. Introduce a new routine to parse bool parameter so that both cmt and future psr features like cat can use it. Signed-off-by: Chao Peng <chao.p.peng@xxxxxxxxxxxxxxx> --- Changes in v3: * Set "off" value explicity if requested. --- xen/arch/x86/psr.c | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c index 2ef83df..cfa534b 100644 --- a/xen/arch/x86/psr.c +++ b/xen/arch/x86/psr.c @@ -26,11 +26,31 @@ struct psr_assoc { }; struct psr_cmt *__read_mostly psr_cmt; -static bool_t __initdata opt_psr; +static unsigned int __initdata opt_psr; static unsigned int __initdata opt_rmid_max = 255; static uint64_t rmid_mask; static DEFINE_PER_CPU(struct psr_assoc, psr_assoc); +static void __init parse_psr_bool(char* s, char* value, char* feature, int bit) +{ + if ( !strcmp(s, feature) ) + { + if ( !value ) + opt_psr |= bit; + else + { + int val_int = parse_bool(value); + + if ( val_int == 0 ) + opt_psr &= ~bit; + else if ( val_int == 1 ) + opt_psr |= bit; + else + printk("PSR: unknown %s value: %s\n", feature, value); + } + } +} + static void __init parse_psr_param(char *s) { char *ss, *val_str; @@ -44,21 +64,9 @@ static void __init parse_psr_param(char *s) if ( val_str ) *val_str++ = '\0'; - if ( !strcmp(s, "cmt") ) - { - if ( !val_str ) - opt_psr |= PSR_CMT; - else - { - int val_int = parse_bool(val_str); - if ( val_int == 1 ) - opt_psr |= PSR_CMT; - else if ( val_int != 0 ) - printk("PSR: unknown cmt value: %s - CMT disabled!\n", - val_str); - } - } - else if ( val_str && !strcmp(s, "rmid_max") ) + parse_psr_bool(s, val_str, "cmt", PSR_CMT); + + if ( val_str && !strcmp(s, "rmid_max") ) opt_rmid_max = simple_strtoul(val_str, NULL, 0); s = ss + 1; -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |