From: "Woods, Brian" <Brian.Woods@amd.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Kevin Tian <kevin.tian@intel.com>,
Stefano Stabellini <sstabellini@kernel.org>,
"Suthikulpanit, Suravee" <Suravee.Suthikulpanit@amd.com>,
Wei Liu <wl@xen.org>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
George Dunlap <George.Dunlap@eu.citrix.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Ian Jackson <ian.jackson@eu.citrix.com>, Tim Deegan <tim@xen.org>,
Julien Grall <julien.grall@arm.com>,
Jan Beulich <jbeulich@suse.com>,
"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
"Woods, Brian" <Brian.Woods@amd.com>
Subject: Re: [Xen-devel] [PATCH v3 07/13] pci: switch pci_conf_read8 to use pci_sbdf_t
Date: Wed, 19 Jun 2019 15:59:51 +0000 [thread overview]
Message-ID: <20190619155949.GB20907@amd.com> (raw)
In-Reply-To: <20190607092232.83179-8-roger.pau@citrix.com>
On Fri, Jun 07, 2019 at 11:22:26AM +0200, Roger Pau Monne wrote:
> This reduces the number of parameters of the function to two, and
> simplifies some of the calling sites.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
As far as AMD IOMMU
Acked-by: Brian Woods <brian.woods@amd.com>
> ---
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> Cc: Wei Liu <wl@xen.org>
> Cc: George Dunlap <George.Dunlap@eu.citrix.com>
> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
> Cc: Julien Grall <julien.grall@arm.com>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Tim Deegan <tim@xen.org>
> Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
> Cc: Brian Woods <brian.woods@amd.com>
> Cc: Kevin Tian <kevin.tian@intel.com>
> ---
> xen/arch/x86/cpu/amd.c | 4 ++--
> xen/arch/x86/msi.c | 2 +-
> xen/arch/x86/x86_64/pci.c | 25 ++++++++++++------------
> xen/drivers/char/ehci-dbgp.c | 5 +++--
> xen/drivers/char/ns16550.c | 6 ++++--
> xen/drivers/passthrough/amd/iommu_init.c | 2 +-
> xen/drivers/passthrough/pci.c | 21 ++++++++------------
> xen/drivers/passthrough/vtd/dmar.c | 6 +++---
> xen/drivers/passthrough/vtd/quirks.c | 6 +++---
> xen/drivers/pci/pci.c | 9 ++++-----
> xen/drivers/video/vga.c | 3 +--
> xen/drivers/vpci/header.c | 3 +--
> xen/drivers/vpci/vpci.c | 8 +++-----
> xen/include/xen/pci.h | 4 +---
> 14 files changed, 47 insertions(+), 57 deletions(-)
>
> diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
> index 8404cf290f..3c069391f4 100644
> --- a/xen/arch/x86/cpu/amd.c
> +++ b/xen/arch/x86/cpu/amd.c
> @@ -420,12 +420,12 @@ static void disable_c1_ramping(void)
> nr_nodes = ((pci_conf_read32(0, 0, 0x18, 0x0, 0x60)>>4)&0x07)+1;
> for (node = 0; node < nr_nodes; node++) {
> /* PMM7: bus=0, dev=0x18+node, function=0x3, register=0x87. */
> - pmm7 = pci_conf_read8(0, 0, 0x18+node, 0x3, 0x87);
> + pmm7 = pci_conf_read8(PCI_SBDF(0, 0, 0x18 + node, 3), 0x87);
> /* Invalid read means we've updated every Northbridge. */
> if (pmm7 == 0xFF)
> break;
> pmm7 &= 0xFC; /* clear pmm7[1:0] */
> - pci_conf_write8(0, 0, 0x18+node, 0x3, 0x87, pmm7);
> + pci_conf_write8(0, 0, 0x18 + node, 0x3, 0x87, pmm7);
> printk ("AMD: Disabling C1 Clock Ramping Node #%x\n", node);
> }
> }
> diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
> index babc4147c4..67339edc68 100644
> --- a/xen/arch/x86/msi.c
> +++ b/xen/arch/x86/msi.c
> @@ -800,7 +800,7 @@ static u64 read_pci_mem_bar(u16 seg, u8 bus, u8 slot, u8 func, u8 bir, int vf)
> disp = vf * pdev->vf_rlen[bir];
> limit = PCI_SRIOV_NUM_BARS;
> }
> - else switch ( pci_conf_read8(seg, bus, slot, func,
> + else switch ( pci_conf_read8(PCI_SBDF(seg, bus, slot, func),
> PCI_HEADER_TYPE) & 0x7f )
> {
> case PCI_HEADER_TYPE_NORMAL:
> diff --git a/xen/arch/x86/x86_64/pci.c b/xen/arch/x86/x86_64/pci.c
> index 6e3f5cf203..b70383fb03 100644
> --- a/xen/arch/x86/x86_64/pci.c
> +++ b/xen/arch/x86/x86_64/pci.c
> @@ -8,27 +8,26 @@
> #include <xen/pci.h>
> #include <asm/io.h>
>
> -#define PCI_CONF_ADDRESS(bus, dev, func, reg) \
> - (0x80000000 | (bus << 16) | (dev << 11) | (func << 8) | (reg & ~3))
> +#define PCI_CONF_ADDRESS(sbdf, reg) \
> + (0x80000000 | ((sbdf).bdf << 8) | ((reg) & ~3))
>
> -uint8_t pci_conf_read8(
> - unsigned int seg, unsigned int bus, unsigned int dev, unsigned int func,
> - unsigned int reg)
> +uint8_t pci_conf_read8(pci_sbdf_t sbdf, unsigned int reg)
> {
> - u32 value;
> + uint32_t value;
>
> - if ( seg || reg > 255 )
> + if ( sbdf.seg || reg > 255 )
> {
> - pci_mmcfg_read(seg, bus, PCI_DEVFN(dev, func), reg, 1, &value);
> + pci_mmcfg_read(sbdf.seg, sbdf.bus, sbdf.devfn, reg, 1, &value);
> return value;
> }
> - else
> - {
> - BUG_ON((bus > 255) || (dev > 31) || (func > 7));
> - return pci_conf_read(PCI_CONF_ADDRESS(bus, dev, func, reg), reg & 3, 1);
> - }
> +
> + return pci_conf_read(PCI_CONF_ADDRESS(sbdf, reg), reg & 3, 1);
> }
>
> +#undef PCI_CONF_ADDRESS
> +#define PCI_CONF_ADDRESS(bus, dev, func, reg) \
> + (0x80000000 | (bus << 16) | (dev << 11) | (func << 8) | (reg & ~3))
> +
> uint16_t pci_conf_read16(
> unsigned int seg, unsigned int bus, unsigned int dev, unsigned int func,
> unsigned int reg)
> diff --git a/xen/drivers/char/ehci-dbgp.c b/xen/drivers/char/ehci-dbgp.c
> index 475dc41767..71f0aaa6ac 100644
> --- a/xen/drivers/char/ehci-dbgp.c
> +++ b/xen/drivers/char/ehci-dbgp.c
> @@ -713,7 +713,7 @@ static unsigned int __init find_dbgp(struct ehci_dbgp *dbgp,
> cap = __find_dbgp(bus, slot, func);
> if ( !cap || ehci_num-- )
> {
> - if ( !func && !(pci_conf_read8(0, bus, slot, func,
> + if ( !func && !(pci_conf_read8(PCI_SBDF(0, bus, slot, func),
> PCI_HEADER_TYPE) & 0x80) )
> break;
> continue;
> @@ -1312,7 +1312,8 @@ static void __init ehci_dbgp_init_preirq(struct serial_port *port)
> offset = (debug_port >> 16) & 0xfff;
>
> /* double check if the mem space is enabled */
> - dbgp->pci_cr = pci_conf_read8(0, dbgp->bus, dbgp->slot, dbgp->func,
> + dbgp->pci_cr = pci_conf_read8(PCI_SBDF(0, dbgp->bus, dbgp->slot,
> + dbgp->func),
> PCI_COMMAND);
> if ( !(dbgp->pci_cr & PCI_COMMAND_MEMORY) )
> {
> diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> index 189e121b7e..547270d0e1 100644
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -1188,8 +1188,10 @@ pci_uart_config(struct ns16550 *uart, bool_t skip_amt, unsigned int idx)
> uart->bar64 = bar_64;
> uart->io_size = max(8U << param->reg_shift,
> param->uart_offset);
> - uart->irq = pci_conf_read8(0, b, d, f, PCI_INTERRUPT_PIN) ?
> - pci_conf_read8(0, b, d, f, PCI_INTERRUPT_LINE) : 0;
> + uart->irq = pci_conf_read8(PCI_SBDF(0, b, d, f),
> + PCI_INTERRUPT_PIN) ?
> + pci_conf_read8(PCI_SBDF(0, b, d, f),
> + PCI_INTERRUPT_LINE) : 0;
>
> return 0;
> }
> diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
> index 72ea8824b0..30de684f6d 100644
> --- a/xen/drivers/passthrough/amd/iommu_init.c
> +++ b/xen/drivers/passthrough/amd/iommu_init.c
> @@ -1241,7 +1241,7 @@ static bool_t __init amd_sp5100_erratum28(void)
> if (vendor_id != 0x1002 || dev_id != 0x4385)
> continue;
>
> - byte = pci_conf_read8(0, bus, 0x14, 0, 0xad);
> + byte = pci_conf_read8(PCI_SBDF(0, bus, 0x14, 0), 0xad);
> if ( (byte >> 3) & 1 )
> {
> printk(XENLOG_WARNING "AMD-Vi: SP5100 erratum 28 detected, disabling IOMMU.\n"
> diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
> index e88689425d..340e957954 100644
> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -260,7 +260,7 @@ static void check_pdev(const struct pci_dev *pdev)
> }
> }
>
> - switch ( pci_conf_read8(seg, bus, dev, func, PCI_HEADER_TYPE) & 0x7f )
> + switch ( pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f )
> {
> case PCI_HEADER_TYPE_BRIDGE:
> if ( !bridge_ctl_mask )
> @@ -370,10 +370,8 @@ static struct pci_dev *alloc_pdev(struct pci_seg *pseg, u8 bus, u8 devfn)
>
> case DEV_TYPE_PCIe2PCI_BRIDGE:
> case DEV_TYPE_LEGACY_PCI_BRIDGE:
> - sec_bus = pci_conf_read8(pseg->nr, bus, PCI_SLOT(devfn),
> - PCI_FUNC(devfn), PCI_SECONDARY_BUS);
> - sub_bus = pci_conf_read8(pseg->nr, bus, PCI_SLOT(devfn),
> - PCI_FUNC(devfn), PCI_SUBORDINATE_BUS);
> + sec_bus = pci_conf_read8(pdev->sbdf, PCI_SECONDARY_BUS);
> + sub_bus = pci_conf_read8(pdev->sbdf, PCI_SUBORDINATE_BUS);
>
> spin_lock(&pseg->bus2bridge_lock);
> for ( ; sec_bus <= sub_bus; sec_bus++ )
> @@ -436,16 +434,12 @@ static void free_pdev(struct pci_seg *pseg, struct pci_dev *pdev)
> /* update bus2bridge */
> switch ( pdev->type )
> {
> - u8 dev, func, sec_bus, sub_bus;
> + uint8_t sec_bus, sub_bus;
>
> case DEV_TYPE_PCIe2PCI_BRIDGE:
> case DEV_TYPE_LEGACY_PCI_BRIDGE:
> - dev = PCI_SLOT(pdev->devfn);
> - func = PCI_FUNC(pdev->devfn);
> - sec_bus = pci_conf_read8(pseg->nr, pdev->bus, dev, func,
> - PCI_SECONDARY_BUS);
> - sub_bus = pci_conf_read8(pseg->nr, pdev->bus, dev, func,
> - PCI_SUBORDINATE_BUS);
> + sec_bus = pci_conf_read8(pdev->sbdf, PCI_SECONDARY_BUS);
> + sub_bus = pci_conf_read8(pdev->sbdf, PCI_SUBORDINATE_BUS);
>
> spin_lock(&pseg->bus2bridge_lock);
> for ( ; sec_bus <= sub_bus; sec_bus++ )
> @@ -1082,7 +1076,8 @@ static int __init _scan_pci_devices(struct pci_seg *pseg, void *arg)
> return -ENOMEM;
> }
>
> - if ( !func && !(pci_conf_read8(pseg->nr, bus, dev, func,
> + if ( !func && !(pci_conf_read8(PCI_SBDF(pseg->nr, bus, dev,
> + func),
> PCI_HEADER_TYPE) & 0x80) )
> break;
> }
> diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c
> index b858fe7c80..9c94deac0b 100644
> --- a/xen/drivers/passthrough/vtd/dmar.c
> +++ b/xen/drivers/passthrough/vtd/dmar.c
> @@ -348,7 +348,7 @@ static int __init acpi_parse_dev_scope(
>
> while ( --depth > 0 )
> {
> - bus = pci_conf_read8(seg, bus, path->dev, path->fn,
> + bus = pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn),
> PCI_SECONDARY_BUS);
> path++;
> }
> @@ -356,9 +356,9 @@ static int __init acpi_parse_dev_scope(
> switch ( acpi_scope->entry_type )
> {
> case ACPI_DMAR_SCOPE_TYPE_BRIDGE:
> - sec_bus = pci_conf_read8(seg, bus, path->dev, path->fn,
> + sec_bus = pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn),
> PCI_SECONDARY_BUS);
> - sub_bus = pci_conf_read8(seg, bus, path->dev, path->fn,
> + sub_bus = pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn),
> PCI_SUBORDINATE_BUS);
> if ( iommu_verbose )
> printk(VTDPREFIX
> diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c
> index d6db862678..ff73b0e7f4 100644
> --- a/xen/drivers/passthrough/vtd/quirks.c
> +++ b/xen/drivers/passthrough/vtd/quirks.c
> @@ -92,8 +92,8 @@ static void __init cantiga_b3_errata_init(void)
> if ( vid != 0x8086 )
> return;
>
> - did_hi = pci_conf_read8(0, 0, IGD_DEV, 0, 3);
> - rid = pci_conf_read8(0, 0, IGD_DEV, 0, 8);
> + did_hi = pci_conf_read8(PCI_SBDF(0, 0, IGD_DEV, 0), 3);
> + rid = pci_conf_read8(PCI_SBDF(0, 0, IGD_DEV, 0), 8);
>
> if ( (did_hi == 0x2A) && (rid == 0x7) )
> is_cantiga_b3 = 1;
> @@ -281,7 +281,7 @@ static void __init tylersburg_intremap_quirk(void)
> {
> /* Match on System Management Registers on Device 20 Function 0 */
> device = pci_conf_read32(0, bus, 20, 0, PCI_VENDOR_ID);
> - rev = pci_conf_read8(0, bus, 20, 0, PCI_REVISION_ID);
> + rev = pci_conf_read8(PCI_SBDF(0, bus, 20, 0), PCI_REVISION_ID);
>
> if ( rev == 0x13 && device == 0x342e8086 )
> {
> diff --git a/xen/drivers/pci/pci.c b/xen/drivers/pci/pci.c
> index 1c808d6632..e3f883fc5c 100644
> --- a/xen/drivers/pci/pci.c
> +++ b/xen/drivers/pci/pci.c
> @@ -21,12 +21,12 @@ int pci_find_cap_offset(u16 seg, u8 bus, u8 dev, u8 func, u8 cap)
>
> while ( max_cap-- )
> {
> - pos = pci_conf_read8(seg, bus, dev, func, pos);
> + pos = pci_conf_read8(PCI_SBDF(seg, bus, dev, func), pos);
> if ( pos < 0x40 )
> break;
>
> pos &= ~3;
> - id = pci_conf_read8(seg, bus, dev, func, pos + PCI_CAP_LIST_ID);
> + id = pci_conf_read8(PCI_SBDF(seg, bus, dev, func), pos + PCI_CAP_LIST_ID);
>
> if ( id == 0xff )
> break;
> @@ -46,13 +46,12 @@ int pci_find_next_cap(u16 seg, u8 bus, unsigned int devfn, u8 pos, int cap)
>
> while ( ttl-- )
> {
> - pos = pci_conf_read8(seg, bus, PCI_SLOT(devfn), PCI_FUNC(devfn), pos);
> + pos = pci_conf_read8(PCI_SBDF3(seg, bus, devfn), pos);
> if ( pos < 0x40 )
> break;
>
> pos &= ~3;
> - id = pci_conf_read8(seg, bus, PCI_SLOT(devfn), PCI_FUNC(devfn),
> - pos + PCI_CAP_LIST_ID);
> + id = pci_conf_read8(PCI_SBDF3(seg, bus, devfn), pos + PCI_CAP_LIST_ID);
>
> if ( id == 0xff )
> break;
> diff --git a/xen/drivers/video/vga.c b/xen/drivers/video/vga.c
> index 6a64fd9013..78533ad0b1 100644
> --- a/xen/drivers/video/vga.c
> +++ b/xen/drivers/video/vga.c
> @@ -136,8 +136,7 @@ void __init video_endboot(void)
> b = 0;
> break;
> case 1:
> - switch ( pci_conf_read8(0, b, PCI_SLOT(df),
> - PCI_FUNC(df),
> + switch ( pci_conf_read8(PCI_SBDF3(0, b, df),
> PCI_HEADER_TYPE) )
> {
> case PCI_HEADER_TYPE_BRIDGE:
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 258b91deed..564c7b6a7d 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -463,8 +463,7 @@ static int init_bars(struct pci_dev *pdev)
> struct vpci_bar *bars = header->bars;
> int rc;
>
> - switch ( pci_conf_read8(pdev->seg, pdev->bus, slot, func, PCI_HEADER_TYPE)
> - & 0x7f )
> + switch ( pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f )
> {
> case PCI_HEADER_TYPE_NORMAL:
> num_bars = PCI_HEADER_NORMAL_NR_BARS;
> diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
> index ca598675ea..c4030333a5 100644
> --- a/xen/drivers/vpci/vpci.c
> +++ b/xen/drivers/vpci/vpci.c
> @@ -222,8 +222,7 @@ static uint32_t vpci_read_hw(pci_sbdf_t sbdf, unsigned int reg,
> */
> if ( reg & 1 )
> {
> - data = pci_conf_read8(sbdf.seg, sbdf.bus, sbdf.dev, sbdf.fn,
> - reg);
> + data = pci_conf_read8(sbdf, reg);
> data |= pci_conf_read16(sbdf.seg, sbdf.bus, sbdf.dev, sbdf.fn,
> reg + 1) << 8;
> }
> @@ -231,8 +230,7 @@ static uint32_t vpci_read_hw(pci_sbdf_t sbdf, unsigned int reg,
> {
> data = pci_conf_read16(sbdf.seg, sbdf.bus, sbdf.dev, sbdf.fn,
> reg);
> - data |= pci_conf_read8(sbdf.seg, sbdf.bus, sbdf.dev, sbdf.fn,
> - reg + 2) << 16;
> + data |= pci_conf_read8(sbdf, reg + 2) << 16;
> }
> break;
>
> @@ -241,7 +239,7 @@ static uint32_t vpci_read_hw(pci_sbdf_t sbdf, unsigned int reg,
> break;
>
> case 1:
> - data = pci_conf_read8(sbdf.seg, sbdf.bus, sbdf.dev, sbdf.fn, reg);
> + data = pci_conf_read8(sbdf, reg);
> break;
>
> default:
> diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
> index 05ee115715..b2a62cb366 100644
> --- a/xen/include/xen/pci.h
> +++ b/xen/include/xen/pci.h
> @@ -172,9 +172,7 @@ struct pci_dev *pci_get_pdev_by_domain(const struct domain *, int seg,
> int bus, int devfn);
> void pci_check_disable_device(u16 seg, u8 bus, u8 devfn);
>
> -uint8_t pci_conf_read8(
> - unsigned int seg, unsigned int bus, unsigned int dev, unsigned int func,
> - unsigned int reg);
> +uint8_t pci_conf_read8(pci_sbdf_t sbdf, unsigned int reg);
> uint16_t pci_conf_read16(
> unsigned int seg, unsigned int bus, unsigned int dev, unsigned int func,
> unsigned int reg);
> --
> 2.20.1 (Apple Git-117)
>
--
Brian Woods
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2019-06-19 16:00 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-07 9:22 [Xen-devel] [PATCH v3 00/13] pci: expand usage of pci_sbdf_t Roger Pau Monne
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 01/13] pci: rename func field to fn Roger Pau Monne
2019-06-07 9:25 ` Paul Durrant
2019-06-07 10:15 ` Jan Beulich
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 02/13] pci: introduce a devfn field to pci_sbdf_t Roger Pau Monne
2019-06-07 10:02 ` Paul Durrant
2019-06-07 10:16 ` Jan Beulich
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 03/13] pci: introduce a pci_sbdf_t field to pci_dev Roger Pau Monne
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 04/13] pci: make PCI_SBDF return a pci_sbdf_t Roger Pau Monne
2019-06-07 13:35 ` Jan Beulich
2019-06-28 1:59 ` Tian, Kevin
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 05/13] pci: make PCI_SBDF2 " Roger Pau Monne
2019-06-07 10:03 ` Paul Durrant
2019-06-07 13:36 ` Jan Beulich
2019-06-28 2:00 ` Tian, Kevin
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 06/13] pci: make PCI_SBDF3 " Roger Pau Monne
2019-06-07 13:39 ` Jan Beulich
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 07/13] pci: switch pci_conf_read8 to use pci_sbdf_t Roger Pau Monne
2019-06-13 14:20 ` Jan Beulich
2019-06-19 15:59 ` Woods, Brian [this message]
2019-06-28 2:01 ` Tian, Kevin
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 08/13] pci: switch pci_conf_read16 " Roger Pau Monne
2019-06-13 14:26 ` Jan Beulich
2019-06-19 16:00 ` Woods, Brian
2019-06-28 2:02 ` Tian, Kevin
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 09/13] pci: switch pci_conf_read32 " Roger Pau Monne
2019-06-13 14:36 ` Jan Beulich
2019-06-14 9:06 ` Roger Pau Monné
2019-06-14 9:20 ` Jan Beulich
2019-06-19 16:01 ` Woods, Brian
2019-06-28 2:03 ` Tian, Kevin
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 10/13] pci: switch pci_conf_write8 " Roger Pau Monne
2019-06-17 9:57 ` Jan Beulich
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 11/13] pci: switch pci_conf_write16 " Roger Pau Monne
2019-06-17 10:05 ` Jan Beulich
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 12/13] pci: switch pci_conf_write32 " Roger Pau Monne
2019-06-17 10:28 ` Jan Beulich
2019-06-19 16:01 ` Woods, Brian
2019-06-07 9:22 ` [Xen-devel] [PATCH v3 13/13] print: introduce a format specifier for pci_sbdf_t Roger Pau Monne
2019-06-17 15:10 ` Jan Beulich
2019-06-17 15:12 ` Andrew Cooper
2019-06-17 15:49 ` Jan Beulich
2019-06-19 16:02 ` Woods, Brian
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190619155949.GB20907@amd.com \
--to=brian.woods@amd.com \
--cc=George.Dunlap@eu.citrix.com \
--cc=Suravee.Suthikulpanit@amd.com \
--cc=andrew.cooper3@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=julien.grall@arm.com \
--cc=kevin.tian@intel.com \
--cc=konrad.wilk@oracle.com \
--cc=roger.pau@citrix.com \
--cc=sstabellini@kernel.org \
--cc=tim@xen.org \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).