[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v13 2/3] pci: add wrapper for parse_pci.
From: Elena Ufimtseva <elena.ufimtseva@xxxxxxxxxx> For sbdf's parsing in RMRR command line, add parse_pci_seg with additional parameter def_seg. parse_pci_seg will help to identify if segment was found in string being parsed or default segment was used. Make a wrapper parse_pci so the rest of the callers are not affected. Signed-off-by: Elena Ufimtseva <elena.ufimtseva@xxxxxxxxxx> Signed-off-by: Venu Busireddy <venu.busireddy@xxxxxxxxxx> --- xen/drivers/pci/pci.c | 11 +++++++++++ xen/include/xen/pci.h | 3 +++ 2 files changed, 14 insertions(+) v13: - Renamed __parse_pci() to parse_pci_seg() as suggested by Konrad Wilk. diff --git a/xen/drivers/pci/pci.c b/xen/drivers/pci/pci.c index ca07ed0..13d3309 100644 --- a/xen/drivers/pci/pci.c +++ b/xen/drivers/pci/pci.c @@ -119,11 +119,21 @@ const char *__init parse_pci(const char *s, unsigned int *seg_p, unsigned int *bus_p, unsigned int *dev_p, unsigned int *func_p) { + bool def_seg; + + return parse_pci_seg(s, seg_p, bus_p, dev_p, func_p, &def_seg); +} + +const char *__init parse_pci_seg(const char *s, unsigned int *seg_p, + unsigned int *bus_p, unsigned int *dev_p, + unsigned int *func_p, bool *def_seg) +{ unsigned long seg = simple_strtoul(s, &s, 16), bus, dev, func; if ( *s != ':' ) return NULL; bus = simple_strtoul(s + 1, &s, 16); + *def_seg = false; if ( *s == ':' ) dev = simple_strtoul(s + 1, &s, 16); else @@ -131,6 +141,7 @@ const char *__init parse_pci(const char *s, unsigned int *seg_p, dev = bus; bus = seg; seg = 0; + *def_seg = true; } if ( func_p ) { diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h index 0872401..59b6e8a 100644 --- a/xen/include/xen/pci.h +++ b/xen/include/xen/pci.h @@ -159,6 +159,9 @@ int pci_find_ext_capability(int seg, int bus, int devfn, int cap); int pci_find_next_ext_capability(int seg, int bus, int devfn, int pos, int cap); const char *parse_pci(const char *, unsigned int *seg, unsigned int *bus, unsigned int *dev, unsigned int *func); +const char *parse_pci_seg(const char *, unsigned int *seg, unsigned int *bus, + unsigned int *dev, unsigned int *func, bool *def_seg); + bool_t pcie_aer_get_firmware_first(const struct pci_dev *); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |