[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6 3/8] x86/PCI: read maximum MSI vector count early
On Thu, Sep 19, 2019 at 03:22:54PM +0200, Jan Beulich wrote: > Rather than doing this every time we set up interrupts for a device > anew (and then in several places) fill this invariant field right after > allocating struct pci_dev. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> LGTM: Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Just one nit below. > --- > v6: New. > > --- > xen/arch/x86/msi.c | 13 +++++-------- > xen/drivers/passthrough/pci.c | 10 ++++++++++ > xen/drivers/vpci/msi.c | 9 ++++----- > xen/include/xen/pci.h | 3 ++- > xen/include/xen/vpci.h | 6 ++---- > 5 files changed, 23 insertions(+), 18 deletions(-) > > --- a/xen/arch/x86/msi.c > +++ b/xen/arch/x86/msi.c > @@ -664,7 +664,7 @@ static int msi_capability_init(struct pc > { > struct msi_desc *entry; > int pos; > - unsigned int i, maxvec, mpos; > + unsigned int i, mpos; > u16 control, seg = dev->seg; > u8 bus = dev->bus; > u8 slot = PCI_SLOT(dev->devfn); > @@ -675,9 +675,8 @@ static int msi_capability_init(struct pc > if ( !pos ) > return -ENODEV; > control = pci_conf_read16(dev->sbdf, msi_control_reg(pos)); > - maxvec = multi_msi_capable(control); > - if ( nvec > maxvec ) > - return maxvec; > + if ( nvec > dev->msi_maxvec ) > + return dev->msi_maxvec; > control &= ~PCI_MSI_FLAGS_QSIZE; > multi_msi_enable(control, nvec); > > @@ -711,7 +710,7 @@ static int msi_capability_init(struct pc > > /* All MSIs are unmasked by default, Mask them all */ > maskbits = pci_conf_read32(dev->sbdf, mpos); > - maskbits |= ~(u32)0 >> (32 - maxvec); > + maskbits |= ~(u32)0 >> (32 - dev->msi_maxvec); GENMASK would be slightly easier to parse IMO (here and below). Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |