|
[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 |