From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH v3 1/9] xen/vpci: introduce basic handlers to trap accesses to the PCI config space Date: Mon, 29 May 2017 09:26:36 -0600 Message-ID: <592C59CC020000780015D5A1@prv-mh.provo.novell.com> References: <20170427143546.14662-1-roger.pau@citrix.com> <20170427143546.14662-2-roger.pau@citrix.com> <591EF4B3020000780015B438@prv-mh.provo.novell.com> <20170529125735.nk2kesh55zerx77a@dhcp-3-128.uk.xensource.com> <592C4969020000780015D502@prv-mh.provo.novell.com> <20170529150505.3xvpu6jrbwswgraq@dhcp-3-128.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dFMZ8-0005ng-F3 for xen-devel@lists.xenproject.org; Mon, 29 May 2017 15:26:42 +0000 In-Reply-To: <20170529150505.3xvpu6jrbwswgraq@dhcp-3-128.uk.xensource.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Roger Pau Monne Cc: Wei Liu , Andrew Cooper , IanJackson , julien.grall@arm.com, PaulDurrant , xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com List-Id: xen-devel@lists.xenproject.org Pj4+IE9uIDI5LjA1LjE3IGF0IDE3OjA1LCA8cm9nZXIucGF1QGNpdHJpeC5jb20+IHdyb3RlOgo+ IE9uIE1vbiwgTWF5IDI5LCAyMDE3IGF0IDA4OjE2OjQxQU0gLTA2MDAsIEphbiBCZXVsaWNoIHdy b3RlOgo+PiA+Pj4gT24gMjkuMDUuMTcgYXQgMTQ6NTcsIDxyb2dlci5wYXVAY2l0cml4LmNvbT4g d3JvdGU6Cj4+ID4gT24gRnJpLCBNYXkgMTksIDIwMTcgYXQgMDU6MzU6NDdBTSAtMDYwMCwgSmFu IEJldWxpY2ggd3JvdGU6Cj4+ID4+ID4+PiBPbiAyNy4wNC4xNyBhdCAxNjozNSwgPHJvZ2VyLnBh dUBjaXRyaXguY29tPiB3cm90ZToKPj4gPj4gPiAraW50IHhlbl92cGNpX2FkZF9yZWdpc3Rlcihz dHJ1Y3QgcGNpX2RldiAqcGRldiwgdnBjaV9yZWFkX3QgcmVhZF9oYW5kbGVyLAo+PiAKPj4gQnR3 LiwgSSBvbmx5IG5vdyBub3RpY2UgdGhpcyBmdXJ0aGVyIHN0cmFuZ2UgeGVuXyBwcmVmaXggaGVy ZS4KPiAKPiBJIGFzc3VtZSB0aGlzIHNob3VsZCBiZSB2cGNpXyosIChkcm9wcGluZyB0aGUgeGVu XyBwcmVmaXggdW5pZm9ybWx5KS4KClllcyBwbGVhc2UuCgo+PiA+PiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgIHZwY2lfd3JpdGVfdCB3cml0ZV9oYW5kbGVyLCB1bnNpZ25lZCBpbnQgb2Zm c2V0LAo+PiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzaXpl LCB2b2lkICpkYXRhKQo+PiA+PiA+ICt7Cj4+ID4+ID4gKyAgICBzdHJ1Y3QgcmJfbm9kZSAqKm5l dywgKnBhcmVudDsKPj4gPj4gPiArICAgIHN0cnVjdCB2cGNpX3JlZ2lzdGVyICpyOwo+PiA+PiA+ ICsKPj4gPj4gPiArICAgIC8qIFNvbWUgc2FuaXR5IGNoZWNrcy4gKi8KPj4gPj4gPiArICAgIGlm ICggKHNpemUgIT0gMSAmJiBzaXplICE9IDIgJiYgc2l6ZSAhPSA0KSB8fCBvZmZzZXQgPj0gMHhG RkYgfHwKPj4gPj4gCj4+ID4+IE9mZiBieSBvbmUgYWdhaW4gaW4gdGhlIG9mZnNldCBjaGVjay4K Pj4gPiAKPj4gPiBGaXhlZCB0byBiZSA+IDB4ZmZmLiBTaG91bGQgdGhpcyBtYXliZSBiZSBhZGRl ZCB0byBwY2lfcmVncy5oIGFzCj4+ID4gUENJX01BWF9SRUdJU1RFUj8gCj4+IAo+PiBDb3VsZCBi ZSBkb25lLCBidXQgdGhlbiB3ZSBuZWVkIG9uZSBmb3IgYmFzZSBhbmQgb25lIGZvcgo+PiBleHRl bmRlZCBjb25maWcgc3BhY2UuIE1heSB3YW50IHRvIGNoZWNrIHdoZXRoZXIgTGludXggaGFzCj4+ IGludmVudGVkIHNvbWUgZ29vZCBuYW1lcyBmb3IgdGhlc2UgYnkgbm93Lgo+IAo+IHBjaV9yZWdz LmggZnJvbSBMaW51eCBub3cgaGFzOgo+IAo+IC8qCj4gICogQ29udmVudGlvbmFsIFBDSSBhbmQg UENJLVggTW9kZSAxIGRldmljZXMgaGF2ZSAyNTYgYnl0ZXMgb2YKPiAgKiBjb25maWd1cmF0aW9u IHNwYWNlLiAgUENJLVggTW9kZSAyIGFuZCBQQ0llIGRldmljZXMgaGF2ZSA0MDk2IGJ5dGVzIG9m Cj4gICogY29uZmlndXJhdGlvbiBzcGFjZS4KPiAgKi8KPiAjZGVmaW5lIFBDSV9DRkdfU1BBQ0Vf U0laRQkyNTYKPiAjZGVmaW5lIFBDSV9DRkdfU1BBQ0VfRVhQX1NJWkUJNDA5Ngo+IAo+IEF0IHRo ZSB0b3AuIERvIHlvdSB0aGluayB0aG9zZSBkZWZpbmVzIGFyZSBmaW5lIGZvciBpbXBvcnRpbmc/ CgpTdXJlLgoKPiAodGhpcwo+IHdhcyBpbnRyb2R1Y2VkIGJ5IGNjMTAzODViNmZkZTMsIGJ1dCBJ IGRvbid0IHRoaW5rIGltcG9ydGluZyB0aGlzIGluIGEKPiBtb3JlIGZvcm1hbCB3YXkgbWFrZXMg c2Vuc2UpLgoKQWdyZWVkLgoKPj4gPj4gPiArLyogSGVscGVyIG1hY3JvcyBmb3IgdGhlIHJlYWQv d3JpdGUgaGFuZGxlcnMuICovCj4+ID4+ID4gKyNkZWZpbmUgR0VOTUFTS19CWVRFUyhlLCBzKSBH RU5NQVNLKChlKSAqIDgsIChzKSAqIDgpCj4+ID4+IAo+PiA+PiBXaGF0IGRvIGUgYW5kIHMgc3Rh bmQgZm9yIGhlcmU/Cj4+ID4gCj4+ID4gZSA9IGVuZCwgcyA9IHN0YXJ0IChpbiBieXRlcykuCj4+ IAo+PiBBbmQgd2hlcmUgZG8geW91IHN0YXJ0IGNvdW50aW5nLiBIYXZpbmcgc2VlbiB0aGUgcmVz dCBvZiB0aGUKPj4gc2VyaWVzIEknbSBhY3R1YWxseSByYXRoZXIgdW5jb252aW5jZWQgdXNlIHRo ZXNlIG1hY3JvcyByZXN1bHRzCj4+IGluIGJldHRlciBjb2RlIC0gdG8gbWUsIHBsYWluIGhleCBu dW1iZXJzIGFyZSBxdWl0ZSBhIGJpdCBlYXNpZXIKPj4gdG8gcmVhZCBhcyBsb25nIGFzIHRoZSBu dW1iZXIgb2YgZGlnaXRzIGRvZXNuJ3QgZ28gbWVhbmluZ2Z1bGx5Cj4+IGJleW9uZCAxMCBvciBz by4KPj4gCj4+ID4+ID4gKyNkZWZpbmUgU0hJRlRfUklHSFRfQllURVMoZCwgbykgZCA+Pj0gKG8p ICogOAo+PiA+PiAKPj4gPj4gQW5kIGF0IGxlYXN0IG8gaGVyZT8KPj4gPiAKPj4gPiBvID0gb2Zm c2V0IChpbiBieXRlcykKPj4gCj4+IEkgdGhpbmsgc2ltcGx5IHdyaXRoaW5nIHRoZSBzaGlmdCBl eHByZXNzaW9uIGlzIG9uY2UgYWdhaW4gbW9yZQo+PiBjbGVhciB0byB0aGUgcmVhZGVyIHRoYW4g dXNpbmcgYSBtYWNybyB3aGljaCBpcyBsb25nZXIgdG8gcmVhZAo+PiBhbmQgdHlwZSBhbmQgd2hp Y2ggaGFzIHNlbWFudGljcyB3aGljaCBhcmVuJ3QgaW1tZWRpYXRlbHkKPj4gY2xlYXIgZnJvbSBp dHMgbmFtZS4KPj4gCj4+ID4gSSBjYW4gcmVuYW1lIEFERF9SRVNVTFQgdG8gQVBQRU5EX1JFU1VM VCBvciBzb21ldGhpbmcgbW9yZSBkZXNjcmlwdGl2ZQo+PiA+IGlmIHlvdSB0aGluayBpdCdzIGdv aW5nIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVuZGVyc3RhbmQuCj4+IAo+PiBJJ2QgcHJlZmVyIGlm IHRoZSBuYW1lICJtZXJnZSIgYXBwZWFyZWQgaW4gdGhhdCBuYW1lIC0gSSBkb24ndCBzZWUKPj4g dGhpcyBiZWluZyB1c2FibGUgc3RyaWN0bHkgb25seSB0byBhcHBlbmQgdG8gZWl0aGVyIHNpZGUg b2YgYSB2YWx1ZS4KPiAKPiBPSyBNRVJHRV9SRVNVTFQgb3IgTUVSR0VfUkVHSVNURVIgbWF5YmU/ IChhbmQgdGhlIHJlc3QgcmVtb3ZlZCkuCgpFaXRoZXIgbmFtZSBpcyBmaW5lIHdpdGggbWUsIHdp dGggYSBzbGlnaHQgcHJlZmVyZW5jZSB0byB0aGUgZm9ybWVyLgoKPj4gPj4gPiArc3RhdGljIGlu dCB2cGNpX3dyaXRlX2hlbHBlcihzdHJ1Y3QgcGNpX2RldiAqcGRldiwKPj4gPj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdnBjaV9yZWdpc3RlciAqciwgdW5z aWduZWQgaW50IHNpemUsCj4+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgaW50IG9mZnNldCwgdWludDMyX3QgZGF0YSkKPj4gPj4gPiArewo+PiA+PiA+ICsgICAg dW5pb24gdnBjaV92YWwgdmFsID0geyAuZG91YmxlX3dvcmQgPSBkYXRhIH07Cj4+ID4+ID4gKyAg ICBpbnQgcmM7Cj4+ID4+ID4gKwo+PiA+PiA+ICsgICAgQVNTRVJUKHNpemUgPD0gci0+c2l6ZSk7 Cj4+ID4+ID4gKyAgICBpZiAoIHNpemUgIT0gci0+c2l6ZSApCj4+ID4+ID4gKyAgICB7Cj4+ID4+ ID4gKyAgICAgICAgcmMgPSByLT5yZWFkKHBkZXYsIHItPm9mZnNldCwgJnZhbCwgci0+cHJpdl9k YXRhKTsKPj4gPj4gPiArICAgICAgICBpZiAoIHJjICkKPj4gPj4gPiArICAgICAgICAgICAgcmV0 dXJuIHJjOwo+PiA+PiA+ICsgICAgICAgIHZhbC5kb3VibGVfd29yZCAmPSB+R0VOTUFTS19CWVRF UyhzaXplICsgb2Zmc2V0LCBvZmZzZXQpOwo+PiA+PiA+ICsgICAgICAgIGRhdGEgJj0gR0VOTUFT S19CWVRFUyhzaXplLCAwKTsKPj4gPj4gPiArICAgICAgICB2YWwuZG91YmxlX3dvcmQgfD0gZGF0 YSA8PCAob2Zmc2V0ICogOCk7Cj4+ID4+ID4gKyAgICB9Cj4+ID4+ID4gKwo+PiA+PiA+ICsgICAg cmV0dXJuIHItPndyaXRlKHBkZXYsIHItPm9mZnNldCwgdmFsLCByLT5wcml2X2RhdGEpOwo+PiA+ PiA+ICt9Cj4+ID4+IAo+PiA+PiBJJ20gbm90IHN1cmUgdGhhdCB3cml0aW5nIGJhY2sgdGhlIHZh bHVlIHJlYWQgaXMgY29ycmVjdCBpbiBhbGwgY2FzZXMKPj4gPj4gKHRoaW5rIG9mIHdyaXRlLW9u bHkgb3IgcncxYyByZWdpc3RlcnMgb3IgZXZlbiBvZmZzZXRzIHdoZXJlIHJlYWRzCj4+ID4+IGFu ZCB3cml0ZXMgYWNjZXNzIGRpZmZlcmVudCByZWdpc3RlcnMgYWx0b2dldGhlcikuIEkgdGhpbmsg dGhlIHdyaXRlCj4+ID4+IGhhbmRsZXJzIHdpbGwgbmVlZCB0byBiZSBtYWRlIGNhcGFibGUgb2Yg ZGVhbGluZyB3aXRoIHBhcnRpYWwgd3JpdGVzLgo+PiA+IAo+PiA+IFRoYXQgc2VlbXMgdG8gYmUg d2hhdCBwY2liYWNrIGRvZXMgZnJvIHdyaXRlczogcmVhZCwgbWVyZ2UgdmFsdWUsCj4+ID4gd3Jp dGUgYmFjayAoZHJpdmVycy94ZW4veGVuLXBjaWJhY2svY29uZl9zcGFjZS5jCj4+ID4geGVuX3Bj aWJrX2NvbmZpZ193cml0ZSk6Cj4+ID4gCj4+ID4gZXJyID0gY29uZl9zcGFjZV9yZWFkKGRldiwg Y2ZnX2VudHJ5LCBmaWVsZF9zdGFydCwKPj4gPiAJCSAgICAgICZ0bXBfdmFsKTsKPj4gPiBpZiAo ZXJyKQo+PiA+IAlicmVhazsKPj4gPiAKPj4gPiB0bXBfdmFsID0gbWVyZ2VfdmFsdWUodG1wX3Zh bCwgdmFsdWUsIGdldF9tYXNrKHNpemUpLAo+PiA+IAkJICAgICAgb2Zmc2V0IC0gZmllbGRfc3Rh cnQpOwo+PiA+IAo+PiA+IGVyciA9IGNvbmZfc3BhY2Vfd3JpdGUoZGV2LCBjZmdfZW50cnksIGZp ZWxkX3N0YXJ0LAo+PiA+IAkJICAgICAgIHRtcF92YWwpOwo+PiA+IAo+PiA+IEkgd291bGQgcHJl ZmVyIHRvIGRvIGl0IHRoaXMgd2F5IGluIG9yZGVyIHRvIGF2b2lkIGFkZGluZyBtb3JlCj4+ID4g Y29tcGxleGl0eSB0byB0aGUgaGFuZGxlcnMgdGhlbXNlbHZlcy4gU28gZmFyIEkgaGF2ZW4ndCBm b3VuZCBhbnkgc3VjaAo+PiA+IHJlZ2lzdGVycyAocncxYykgaW4gdGhlIFBDSSBjb25maWcgc3Bh Y2UsIGRvIHlvdSBoYXZlIHJlZmVyZW5jZXMgdG8KPj4gPiBhbnkgb2YgdGhlbT8KPj4gCj4+IFRo ZSBzdGF0dXMgcmVnaXN0ZXIuCj4gCj4gQnV0IHRoZSBzdGF0dXMgcmVnaXN0ZXIgaXMgbm90IGdv aW5nIHRvIGJlIHRyYXBwZWQsIG5vdCBieSBEb20wIG9yCj4gRG9tVXM/IE5vbmUgb2YgdGhlIHJl Z2lzdGVycyB0aGF0IEkndmUgZW11bGF0ZWQgZm9yIHRoZSBoZWFkZXIsIG9yIHRoZQo+IGNhcGFi aWxpdGllcyBiZWhhdmUgdGhpcyB3YXksIGFuZCBhZGRpbmcgc3VjaCBhbmQgb2Zmc2V0IHdvdWxk Cj4gZ3JlYXRseSBpbmNyZWFzZSB0aGUgY29tcGxleGl0eSBvZiBlYWNoIGhhbmRsZXIgSU1ITy4K PiAKPiBNYXliZSBpdCB3b3VsZCBiZSBlYXNpZXIgdG8gYWRkIGEgZmxhZyB0byBtYXJrIHJ3MWMg cmVnaXN0ZXJzIGFzIHN1Y2gsCj4gaWYgdGhhdCdzIGV2ZXIgbmVlZGVkPyAoYW5kIGF2b2lkIHRo ZSByZWFkIGluIHRoYXQgY2FzZSkKCldlbGwsIHllcywgdGhhdCdzIGhvdyBxZW11IGRvZXMgaXQu IE9mIGNvdXJzZSB3aXRoIHRoZSBjYXZlYXQgdGhhdAp5b3UgbmVlZCB0byBtYXJrIGluZGl2aWR1 YWwgYml0cyAoYWdhaW4gYXMgcWVtdSBkb2VzKS4gT2YgY291cnNlLAphcyBsb25nIGFzIG5vIHN1 Y2ggcmVnaXN0ZXIgaXMgYmVpbmcgZW11bGF0ZWQsIGxlYXZpbmcgYSBwcm9taW5lbnQKY29tbWVu dCB3b3VsZCBwcm9iYWJseSBiZSBhbiBhY2NlcHRhYmxlIGFsdGVybmF0aXZlIHRvIGNvZGluZwph bGwgdGhpcyByaWdodCBhd2F5LgoKPj4gPj4gPiArLyogSGVscGVycyBmb3IgbG9ja2luZy91bmxv Y2tpbmcuICovCj4+ID4+ID4gKyNkZWZpbmUgdnBjaV9sb2NrKGQpIHNwaW5fbG9jaygmKGQpLT5h cmNoLmh2bV9kb21haW4udnBjaV9sb2NrKQo+PiA+PiA+ICsjZGVmaW5lIHZwY2lfdW5sb2NrKGQp IHNwaW5fdW5sb2NrKCYoZCktPmFyY2guaHZtX2RvbWFpbi52cGNpX2xvY2spCj4+ID4+ID4gKyNk ZWZpbmUgdnBjaV9sb2NrZWQoZCkgc3Bpbl9pc19sb2NrZWQoJihkKS0+YXJjaC5odm1fZG9tYWlu LnZwY2lfbG9jaykKPj4gPj4gCj4+ID4+IFdoaWxlIGZvciB0aGUgY29kZSBsYXllcmluZyB5b3Ug ZG9uJ3QgbmVlZCByZWN1cnNpdmUgbG9ja3MsIGRpZCB5b3UKPj4gPj4gY29uc2lkZXIgdXNpbmcg dGhlbSBuZXZlcnRoZWxlc3Mgc28gdGhhdCBzcGluX2lzX2xvY2tlZCgpIHJldHVybgo+PiA+PiB2 YWx1ZXMgYXJlIGFjdHVhbGx5IG1lYW5pbmdmdWwgZm9yIHlvdXIgcHVycG9zZXM/Cj4+ID4gCj4+ ID4gSSdtIG5vdCBzdXJlIEkgZm9sbG93LCBzcGluX2lzX2xvY2tlZCBhbHJlYWR5IHJldHVybiBt ZWFuaW5nZnVsIHZhbHVlcwo+PiA+IGZvciBteSBwdXJwb3NlIEFGQUlDVC4KPj4gCj4+IEZvciBu b24tcmVjdXJzaXZlIGxvY2tzIHRoaXMgdGVsbHMgeW91IHdoZXRoZXIgX2FueV8gQ1BVIGhvbGRz Cj4+IHRoZSBsb2NrLCB5ZXQgbm9ybWFsbHkgeW91IHdhbnQgdG8ga25vdyB3aGV0aGVyIHRoZSBD UFUgeW91Cj4+IHJ1biBvbiBkb2VzLgo+IAo+IEluZGVlZCwgc28gaWYgSSBtYWtlIHRoZSBsb2Nr IHJlY3Vyc2l2ZSBzcGluX2lzX2xvY2tlZCBpcyBnb2luZyB0bwo+IHJldHVybiB3aGV0aGVyIHRo ZSBjdXJyZW50IENQVSBob2xkcyB0aGUgbG9jay4gVGhhdCdzIGtpbmQgb2YKPiBjb3VudGVyLWlu dHVpdGl2ZS4KCkNvdW50ZXItaW50dWl0aXZlIG9yIG5vdCwgaXQncyBhIHJlc3VsdCBvZiBub24t cmVjdXJzaXZlIGxvY2tzIGJlaW5nCm1vcmUgc2xpbSAoYW5kIGhlbmNlIHNsaWdodGx5IGZhc3Rl cikuIEFuZCBhcyBsb25nIGFzCnNwaW5faXNfbG9ja2VkKCkgaXMgYmVpbmcgdXNlZCBpbiBBU1NF UlQoKXMgb25seSwgaXQncyBiZXR0ZXIgdGhhbgpubyBzYW5pdHkgY2hlY2tpbmcgYXQgYWxsLgoK SmFuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK