From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Lyon Subject: Re: [PATCH] vfio: Extended capability fixes Date: Tue, 2 Nov 2010 15:18:48 -0700 Message-ID: <201011021518.48756.pugs@cisco.com> References: <20101102050835.2963.63375.stgit@s20.home> Mime-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Cc: linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, kvm@vger.kernel.org To: Alex Williamson Return-path: In-Reply-To: <20101102050835.2963.63375.stgit@s20.home> Sender: linux-pci-owner@vger.kernel.org List-Id: kvm.vger.kernel.org Applied. Thanks! On Monday, November 01, 2010 10:08:35 pm Alex Williamson wrote: > - Virtual channel position gets truncated as a u8 > - Print the ecap that's unknown, not the last cap we saw > - Print actual config offset, which provides enough info to make > some sense of the error. > > Signed-off-by: Alex Williamson > --- > > drivers/vfio/vfio_pci_config.c | 8 ++++---- > 1 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/vfio/vfio_pci_config.c > b/drivers/vfio/vfio_pci_config.c index 8af995d..8304316 100644 > --- a/drivers/vfio/vfio_pci_config.c > +++ b/drivers/vfio/vfio_pci_config.c > @@ -410,7 +410,7 @@ static int vfio_msi_cap_len(struct vfio_dev *vdev, u8 > pos) * Determine extended capability length for VC (2 & 9) and > * MFVC capabilities > */ > -static int vfio_vc_cap_len(struct vfio_dev *vdev, u8 pos) > +static int vfio_vc_cap_len(struct vfio_dev *vdev, u16 pos) > { > struct pci_dev *pdev = vdev->pdev; > u32 dw; > @@ -580,7 +580,7 @@ int vfio_build_config_map(struct vfio_dev *vdev) > printk(KERN_WARNING > "%s: pci config conflict at %x, " > "caps %x %x\n", > - __func__, i, map[pos+i], cap); > + __func__, pos+i, map[pos+i], cap); > map[pos+i] = cap; > } > ret = pci_read_config_byte(pdev, pos + PCI_CAP_LIST_NEXT, &pos); > @@ -683,7 +683,7 @@ int vfio_build_config_map(struct vfio_dev *vdev) > if (len == 0 || len == 0xFF) { > printk(KERN_WARNING > "%s: unknown length for pci ext cap %x\n", > - __func__, cap); > + __func__, ecap); > len = PCI_CAP_SIZEOF; > } > for (i = 0; i < len; i++) { > @@ -691,7 +691,7 @@ int vfio_build_config_map(struct vfio_dev *vdev) > printk(KERN_WARNING > "%s: pci config conflict at %x, " > "caps %x %x\n", > - __func__, i, map[epos+i], ecap); > + __func__, epos+i, map[epos+i], ecap); > map[epos+i] = ecap; > }