From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Subject: Re: [PATCH 3/4] VFIO: pci: amend vfio-pci for explicit binding via sysfs only Date: Mon, 28 Oct 2013 23:54:43 -0500 Message-ID: <1383022483.3410.85.camel@snotra.buserror.net> References: <1381418830.7979.405.camel@snotra.buserror.net> <1381472840-3470-1-git-send-email-kim.phillips@linaro.org> <1381472840-3470-3-git-send-email-kim.phillips@linaro.org> <1382982462.4097.38.camel@ul30vt.home> <1382983205.3410.6.camel@snotra.buserror.net> <1382983792.3410.13.camel@snotra.buserror.net> <6A3DF150A5B70D4F9B66A25E3F7C888D071D4F0B@039-SN2MPN1-013.039d.mgd.msft.net> <1383018042.3410.69.camel@snotra.buserror.net> <6A3DF150A5B70D4F9B66A25E3F7C888D071D4F3A@039-SN2MPN1-013.039d.mgd.msft.net> <1383020990.3410.76.camel@snotra.buserror.net> <6A3DF150A5B70D4F9B66A25E3F7C888D071D4FA0@039-SN2MPN1-013.039d.mgd.msft.net> <1383021306.3410.80.camel@snotra.buserror.net> <6A3DF150A5B70D4F9B66A25E3F7C888D071D4FE5@039-SN2MPN1-013.039d.mgd.msft.net> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: Wood Scott-B07421 , Alex Williamson , Kim Phillips , Yoder Stuart-B08248 , "christoffer.dall@linaro.org" , "linux-kernel@vger.kernel.org" , "a.motakis@virtualopensystems.com" , "agraf@suse.de" , Sethi Varun-B16395 , "peter.maydell@linaro.org" , "santosh.shukla@linaro.org" , "kvm@vger.kernel.org" , "gregkh@linuxfoundation.org" To: Bhushan Bharat-R65777 Return-path: In-Reply-To: <6A3DF150A5B70D4F9B66A25E3F7C888D071D4FE5@039-SN2MPN1-013.039d.mgd.msft.net> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On Mon, 2013-10-28 at 23:45 -0500, Bhushan Bharat-R65777 wrote: > > > -----Original Message----- > > From: Wood Scott-B07421 > > Sent: Tuesday, October 29, 2013 10:05 AM > > To: Bhushan Bharat-R65777 > > Cc: Wood Scott-B07421; Alex Williamson; Kim Phillips; Yoder Stuart-B08248; > > christoffer.dall@linaro.org; linux-kernel@vger.kernel.org; > > a.motakis@virtualopensystems.com; agraf@suse.de; Sethi Varun-B16395; > > peter.maydell@linaro.org; santosh.shukla@linaro.org; kvm@vger.kernel.org; > > gregkh@linuxfoundation.org > > Subject: Re: [PATCH 3/4] VFIO: pci: amend vfio-pci for explicit binding via > > sysfs only > > > > On Mon, 2013-10-28 at 23:31 -0500, Bhushan Bharat-R65777 wrote: > > > > > > > -----Original Message----- > > > > From: Wood Scott-B07421 > > > > Sent: Tuesday, October 29, 2013 10:00 AM > > > > To: Bhushan Bharat-R65777 > > > > Cc: Wood Scott-B07421; Alex Williamson; Kim Phillips; Yoder > > > > Stuart-B08248; christoffer.dall@linaro.org; > > > > linux-kernel@vger.kernel.org; a.motakis@virtualopensystems.com; > > > > agraf@suse.de; Sethi Varun-B16395; peter.maydell@linaro.org; > > > > santosh.shukla@linaro.org; kvm@vger.kernel.org; > > > > gregkh@linuxfoundation.org > > > > Subject: Re: [PATCH 3/4] VFIO: pci: amend vfio-pci for explicit > > > > binding via sysfs only > > > > > > > > On Mon, 2013-10-28 at 22:52 -0500, Bhushan Bharat-R65777 wrote: > > > > > So when ids == NULL it does not check of vendor etc and calls > > > > > pci_add_dynid() > > > > which in turn calls driver_attach(). > > > > > > > > > > If we change the above loop to break if ids->vendor == PCI_ANY_ID > > > > >&& ids- subvendor == PCI_ANY_ID then also we will call pci_add_dyids(). > > > > > > > > What problem are you trying to solve? > > > > > > new_id interface to continue working as before. > > > > In what specific way does this allow new_id to continue working as before? Be > > verbose. > > > What I observed that this patch (kim's patch) new_id interface stops working. Yes. > This is found to be because store_new_id() checks for pdrv->id_table which is no more NULL, so the below check fails I do not think that is the reason. The reason is because sysfs_bind_only is set, and this is not a direct sysfs bind. > if (ids) { > ^^ > This is no more NULL, so enter inside the loop > > retval = -EINVAL; > while (ids->vendor || ids->subvendor || ids->class_mask) { > if (driver_data == ids->driver_data) { > retval = 0; > break; > } > ids++; > } > if (retval) /* No match */ > return retval; > ^^^^^ > This is where it returns as -EINVAL Why wouldn't it have broken out of the loop earlier, since driver_data and ids->driver_data should both be zero? I assume this is with a patch to do PCI_ANY_ID in vfio-pci. -Scott