[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 3/7] docs: Improve documentation and parsing for pci=
Alter parse_pci_param() to use parse_boolean(), so the sub options behave like other Xen booleans. Update the command line documentation for consistency. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Wei Liu <wei.liu2@xxxxxxxxxx> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> CC: Juergen Gross <jgross@xxxxxxxx> v3: * New --- docs/misc/xen-command-line.pandoc | 9 ++++----- xen/drivers/passthrough/pci.c | 20 ++++---------------- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc index ab486e0..41dec5b 100644 --- a/docs/misc/xen-command-line.pandoc +++ b/docs/misc/xen-command-line.pandoc @@ -1502,13 +1502,12 @@ This option is ignored in **pv-shim** mode. > Default: `on` ### pci -> `= {no-}serr | {no-}perr` + = List of [ serr=<bool>, perr=<bool> ] -> Default: Signaling left as set by firmware. - -Disable signaling of SERR (system errors) and/or PERR (parity errors) -on all PCI devices. + Default: Signaling left as set by firmware. +Override the firmware settings, and explicitly enable or disable the +signalling of PCI System and Parity errors. ### pci-phantom > `=[<seg>:]<bus>:<device>,<stride>` diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c index 93c20b9..8108ed5 100644 --- a/xen/drivers/passthrough/pci.c +++ b/xen/drivers/passthrough/pci.c @@ -188,37 +188,25 @@ custom_param("pci-phantom", parse_phantom_dev); static u16 __read_mostly command_mask; static u16 __read_mostly bridge_ctl_mask; -/* - * The 'pci' parameter controls certain PCI device aspects. - * Optional comma separated value may contain: - * - * serr don't suppress system errors (default) - * no-serr suppress system errors - * perr don't suppress parity errors (default) - * no-perr suppress parity errors - */ static int __init parse_pci_param(const char *s) { const char *ss; int rc = 0; do { - bool_t on = !!strncmp(s, "no-", 3); + int val; u16 cmd_mask = 0, brctl_mask = 0; - if ( !on ) - s += 3; - ss = strchr(s, ','); if ( !ss ) ss = strchr(s, '\0'); - if ( !cmdline_strcmp(s, "serr") ) + if ( (val = parse_boolean("serr", s, ss)) >= 0 ) { cmd_mask = PCI_COMMAND_SERR; brctl_mask = PCI_BRIDGE_CTL_SERR | PCI_BRIDGE_CTL_DTMR_SERR; } - else if ( !cmdline_strcmp(s, "perr") ) + else if ( (val = parse_boolean("perr", s, ss)) >= 0 ) { cmd_mask = PCI_COMMAND_PARITY; brctl_mask = PCI_BRIDGE_CTL_PARITY; @@ -226,7 +214,7 @@ static int __init parse_pci_param(const char *s) else rc = -EINVAL; - if ( on ) + if ( val ) { command_mask &= ~cmd_mask; bridge_ctl_mask &= ~brctl_mask; -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |