From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergey Tovpeko Subject: Re: [PATCH] xl, fix for short BDF (without domain specified) Date: Wed, 07 Jul 2010 16:43:41 +0400 Message-ID: <4C34767D.6010206@gmail.com> References: <4C343A7C.8000800@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070700030006040008020905" Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Stefano Stabellini Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------070700030006040008020905 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Oh, too many input cases. Below patch tries to recognize the following input: pci = ['0001:02:03.4@5'] pci = ['0001:02:03.4'] pci = ['02:03.4@5'] pci = ['02:03.4'] Hope so. Stefano Stabellini wrote: > > the test on the return value should be "< 5", otherwise it wouldn't work > if you use > > pci = ['01:00.0@0'] > > --------------070700030006040008020905 Content-Type: text/x-patch; name="bdf_parse.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="bdf_parse.diff" commit db423431f8b8b2a773df105e407372118cc12a27 Author: Sergey Tovpeko Date: Tue Jul 6 23:31:50 2010 +0400 Check that BDF have been parsed correctly. Before that fix, BDF could be parsed incorrectly if user omitted domain in it. diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 208ecd6..fe2408c 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -827,9 +827,12 @@ skip_vfb: p = strtok(buf2, ","); if (!p) goto skip_pci; - if (!sscanf(p, PCI_BDF_VDEVFN, &domain, &bus, &dev, &func, &vdevfn)) { - sscanf(p, "%02x:%02x.%01x@%02x", &bus, &dev, &func, &vdevfn); + if (sscanf(p, PCI_BDF_VDEVFN, &domain, &bus, &dev, &func, &vdevfn) < 4) { domain = 0; + if (sscanf(p, "%02x:%02x.%01x@%02x", &bus, &dev, &func, &vdevfn) < 3) { + fprintf(stderr,"xl: Unable to parse pci bdf (%s)\n", p); + goto skip_pci; + } } libxl_device_pci_init(*pcidevs + *num_pcidevs, domain, bus, dev, func, vdevfn); (*pcidevs)[*num_pcidevs].msitranslate = pci_msitranslate; --------------070700030006040008020905 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------070700030006040008020905--