[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 02/12] pci: introduce a pci_sbdf_t field to pci_dev



> -----Original Message-----
> From: Xen-devel [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Roger Pau Monne
> Sent: 06 June 2019 10:02
> To: xen-devel@xxxxxxxxxxxxxxxxxxxx
> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>; Wei Liu <wl@xxxxxxx>; Konrad 
> Rzeszutek Wilk
> <konrad.wilk@xxxxxxxxxx>; George Dunlap <George.Dunlap@xxxxxxxxxx>; Andrew 
> Cooper
> <Andrew.Cooper3@xxxxxxxxxx>; Ian Jackson <Ian.Jackson@xxxxxxxxxx>; Tim 
> (Xen.org) <tim@xxxxxxx>; Julien
> Grall <julien.grall@xxxxxxx>; Jan Beulich <jbeulich@xxxxxxxx>; Roger Pau 
> Monne <roger.pau@xxxxxxxxxx>
> Subject: [Xen-devel] [PATCH v2 02/12] pci: introduce a pci_sbdf_t field to 
> pci_dev
> 
> And use an union with the current seg, bus and devfn fields to make
> fields point to the same underlying data.
> 
> No functional change.
> 
> Suggested-by: Jan Beulich <jbeulich@xxxxxxxx>
> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>

Reviewed-by: Paul Durrant <paul.durrant@xxxxxxxxxx>

> ---
> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> Cc: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> Cc: Jan Beulich <jbeulich@xxxxxxxx>
> Cc: Julien Grall <julien.grall@xxxxxxx>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> Cc: Tim Deegan <tim@xxxxxxx>
> Cc: Wei Liu <wl@xxxxxxx>
> ---
>  xen/drivers/vpci/header.c |  7 ++-----
>  xen/include/xen/pci.h     | 12 +++++++++---
>  2 files changed, 11 insertions(+), 8 deletions(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index efb6ca90e3..046b1c610e 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -461,9 +461,6 @@ static int init_bars(struct pci_dev *pdev)
>      unsigned int i, num_bars, rom_reg;
>      struct vpci_header *header = &pdev->vpci->header;
>      struct vpci_bar *bars = header->bars;
> -    pci_sbdf_t sbdf = {
> -        .sbdf = PCI_SBDF3(pdev->seg, pdev->bus, pdev->devfn),
> -    };
>      int rc;
> 
>      switch ( pci_conf_read8(pdev->seg, pdev->bus, slot, func, 
> PCI_HEADER_TYPE)
> @@ -530,7 +527,7 @@ static int init_bars(struct pci_dev *pdev)
>          else
>              bars[i].type = VPCI_BAR_MEM32;
> 
> -        rc = pci_size_mem_bar(sbdf, reg, &addr, &size,
> +        rc = pci_size_mem_bar(pdev->sbdf, reg, &addr, &size,
>                                (i == num_bars - 1) ? PCI_BAR_LAST : 0);
>          if ( rc < 0 )
>          {
> @@ -560,7 +557,7 @@ static int init_bars(struct pci_dev *pdev)
>      }
> 
>      /* Check expansion ROM. */
> -    rc = pci_size_mem_bar(sbdf, rom_reg, &addr, &size, PCI_BAR_ROM);
> +    rc = pci_size_mem_bar(pdev->sbdf, rom_reg, &addr, &size, PCI_BAR_ROM);
>      if ( rc > 0 && size )
>      {
>          struct vpci_bar *rom = &header->bars[num_bars];
> diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
> index ec98274675..f4908abd8b 100644
> --- a/xen/include/xen/pci.h
> +++ b/xen/include/xen/pci.h
> @@ -83,9 +83,15 @@ struct pci_dev {
>      struct arch_msix *msix;
> 
>      struct domain *domain;
> -    const u16 seg;
> -    const u8 bus;
> -    const u8 devfn;
> +
> +    union {
> +        struct {
> +            const uint8_t devfn;
> +            const uint8_t bus;
> +            const uint16_t seg;
> +        };
> +        const pci_sbdf_t sbdf;
> +    };
> 
>      u8 phantom_stride;
> 
> --
> 2.20.1 (Apple Git-117)
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxxx
> https://lists.xenproject.org/mailman/listinfo/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.