From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH for-next 6/6] xen/vpci: trap access to the list of PCI capabilities Date: Tue, 11 Apr 2017 11:04:02 +0100 Message-ID: <20170411100402.56246-7-roger.pau@citrix.com> References: <20170411100402.56246-1-roger.pau@citrix.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 1cxsg4-0006BI-IL for xen-devel@lists.xenproject.org; Tue, 11 Apr 2017 10:05:36 +0000 In-Reply-To: <20170411100402.56246-1-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , julien.grall@arm.com, Jan Beulich , boris.ostrovsky@oracle.com, Roger Pau Monne List-Id: xen-devel@lists.xenproject.org QWRkIHRyYXBzIHRvIGVhY2ggY2FwYWJpbGl0eSBQQ0lfQ0FQX0xJU1RfTkVYVCBmaWVsZCBpbiBv cmRlciB0byBtYXNrIHRoZW0gb24KcmVxdWVzdC4KCkFsbCBjYXBhYmlsaXRpZXMgZnJvbSB0aGUg ZGV2aWNlIGFyZSBmZXRjaGVkIGFuZCBzdG9yZWQgaW4gYW4gaW50ZXJuYWwgbGlzdCwKdGhhdCdz IGxhdGVyIHVzZWQgaW4gb3JkZXIgdG8gcmV0dXJuIHRoZSBuZXh0IGNhcGFiaWxpdHkgdG8gdGhl IGd1ZXN0LiBOb3RlCnRoYXQgdGhpcyBvbmx5IHJlbW92ZXMgdGhlIGNhcGFiaWxpdHkgZnJvbSB0 aGUgbGlua2VkIGxpc3QgYXMgc2VlbiBieSB0aGUKZ3Vlc3QsIGJ1dCB0aGUgYWN0dWFsIGNhcGFi aWxpdHkgc3RydWN0dXJlIGNvdWxkIHN0aWxsIGJlIGFjY2Vzc2VkIGJ5IHRoZQpndWVzdCwgcHJv dmlkZWQgdGhhdCBpdCdzIHBvc2l0aW9uIGNhbiBiZSBmb3VuZCB1c2luZyBhbm90aGVyIG1lY2hh bmlzbS4KRmluYWxseSB0aGUgTVNJIGFuZCBNU0ktWCBjYXBhYmlsaXRpZXMgYXJlIG1hc2tlZCB1 bnRpbCBYZW4ga25vd3MgaG93IHRvCnByb3Blcmx5IGhhbmRsZSBhY2Nlc3NlcyB0byB0aGVtLgoK VGhpcyBzaG91bGQgYWxsb3cgYSBQVkggRG9tMCB0byBib290IG9uIHNvbWUgaGFyZHdhcmUsIHBy b3ZpZGVkIHRoYXQgdGhlCmhhcmR3YXJlIGRvZXNuJ3QgcmVxdWlyZSBNU0kvTVNJLVggYW5kIHRo YXQgdGhlcmUgYXJlIG5vIFNSLUlPViBkZXZpY2VzIGluIHRoZQpzeXN0ZW0sIHNvIHRoZSBwYW5p YyBhdCB0aGUgZW5kIG9mIHRoZSBQVkggRG9tMCBidWlsZCBpcyByZXBsYWNlZCBieSBhCndhcm5p bmcuCgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNv bT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vZG9t MF9idWlsZC5jICAgfCAgIDIgKy0KIHhlbi9kcml2ZXJzL3ZwY2kvTWFrZWZpbGUgICAgICAgfCAg IDIgKy0KIHhlbi9kcml2ZXJzL3ZwY2kvY2FwYWJpbGl0aWVzLmMgfCAxNTMgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUveGVuL3ZwY2kuaCAgICAg ICAgICB8ICAgMyArCiA0IGZpbGVzIGNoYW5nZWQsIDE1OCBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3ZwY2kvY2FwYWJpbGl0aWVz LmMKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RvbTBfYnVpbGQuYyBiL3hlbi9hcmNo L3g4Ni9odm0vZG9tMF9idWlsZC5jCmluZGV4IDQ3NjAwMzQ1YWIuLjIzYWIyMDE2N2UgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG9tMF9idWlsZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9o dm0vZG9tMF9idWlsZC5jCkBAIC0xMDkxLDcgKzEwOTEsNyBAQCBpbnQgX19pbml0IGRvbTBfY29u c3RydWN0X3B2aChzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBtb2R1bGVfdCAqaW1hZ2UsCiAgICAg ICAgIHJldHVybiByYzsKICAgICB9CiAKLSAgICBwYW5pYygiQnVpbGRpbmcgYSBQVkh2MiBEb20w IGlzIG5vdCB5ZXQgc3VwcG9ydGVkLiIpOworICAgIHByaW50aygiV0FSTklORzogUFZIIGlzIGFu IGV4cGVyaW1lbnRhbCBtb2RlIHdpdGggbGltaXRlZCBmdW5jdGlvbmFsaXR5XG4iKTsKICAgICBy ZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdnBjaS9NYWtlZmlsZSBiL3hl bi9kcml2ZXJzL3ZwY2kvTWFrZWZpbGUKaW5kZXggMjQxNDY3MjEyZi4uYzNmMzA4NWM5MyAxMDA2 NDQKLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9NYWtlZmlsZQorKysgYi94ZW4vZHJpdmVycy92cGNp L01ha2VmaWxlCkBAIC0xICsxIEBACi1vYmoteSArPSB2cGNpLm8gaGVhZGVyLm8KK29iai15ICs9 IHZwY2kubyBoZWFkZXIubyBjYXBhYmlsaXRpZXMubwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMv dnBjaS9jYXBhYmlsaXRpZXMuYyBiL3hlbi9kcml2ZXJzL3ZwY2kvY2FwYWJpbGl0aWVzLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNjllY2QyMjUzNwotLS0gL2Rldi9u dWxsCisrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvY2FwYWJpbGl0aWVzLmMKQEAgLTAsMCArMSwxNTMg QEAKKy8qCisgKiBHZW5lcmljIGZ1bmN0aW9uYWxpdHkgZm9yIGhhbmRsaW5nIGFjY2Vzc2VzIHRv IHRoZSBQQ0kgY2FwYWJpbGl0aWVzIGZyb20KKyAqIHRoZSBjb25maWd1cmF0aW9uIHNwYWNlLgor ICoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBDaXRyaXggU3lzdGVtcyBSJkQKKyAqCisgKiBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UsIHZlcnNpb24gMiwgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaW5jbHVkZSA8eGVuL3NjaGVk Lmg+CisjaW5jbHVkZSA8eGVuL3ZwY2kuaD4KKworc3RydWN0IHZwY2lfY2FwYWJpbGl0eSB7Cisg ICAgc3RydWN0IGxpc3RfaGVhZCBuZXh0OworICAgIHVpbnQ4X3Qgb2Zmc2V0OworICAgIGJvb2wg bWFza2VkOworfTsKKworc3RhdGljIGludCB2cGNpX2NhcF9yZWFkKHN0cnVjdCBwY2lfZGV2ICpk ZXYsIHVuc2lnbmVkIGludCByZWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5pb24gdnBj aV92YWwgKnZhbCwgdm9pZCAqZGF0YSkKK3sKKyAgICBzdHJ1Y3QgdnBjaV9jYXBhYmlsaXR5ICpu ZXh0LCAqY3VyciA9IGRhdGE7CisKKyAgICB2YWwtPmhhbGZfd29yZCA9IDA7CisKKyAgICAvKiBS ZXR1cm4gdGhlIHBvc2l0aW9uIG9mIHRoZSBuZXh0IG5vbi1tYXNrZWQgY2FwYWJpbGl0eS4gKi8K KyAgICB3aGlsZSAoIChuZXh0ID0gbGlzdF9uZXh0X2VudHJ5KGN1cnIsIG5leHQpKSAhPSBOVUxM ICkKKyAgICB7CisgICAgICAgIGlmICggIW5leHQtPm1hc2tlZCApCisgICAgICAgIHsKKyAgICAg ICAgICAgIHZhbC0+aGFsZl93b3JkID0gbmV4dC0+b2Zmc2V0OworICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgIH0KKyAgICAgICAgY3VyciA9IG5leHQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7 Cit9CitzdGF0aWMgaW50IHZwY2lfY2FwX3dyaXRlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHVuc2ln bmVkIGludCByZWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uIHZwY2lfdmFsIHZh bCwgdm9pZCAqZGF0YSkKK3sKKyAgICAvKiBJZ25vcmVkLiAqLworICAgIHJldHVybiAwOworfQor CitzdGF0aWMgaW50IHZwY2lfaW5kZXhfY2FwYWJpbGl0aWVzKHN0cnVjdCBwY2lfZGV2ICpwZGV2 KQoreworICAgIHVpbnQ4X3Qgc2VnID0gcGRldi0+c2VnLCBidXMgPSBwZGV2LT5idXM7CisgICAg dWludDhfdCBzbG90ID0gUENJX1NMT1QocGRldi0+ZGV2Zm4pLCBmdW5jID0gUENJX0ZVTkMocGRl di0+ZGV2Zm4pOworICAgIHVpbnQ4X3QgcG9zID0gUENJX0NBUEFCSUxJVFlfTElTVDsKKyAgICB1 aW50MTZfdCBzdGF0dXM7CisgICAgdW5zaWduZWQgaW50IG1heF9jYXAgPSA0ODsKKyAgICBzdHJ1 Y3QgdnBjaV9jYXBhYmlsaXR5ICpjYXA7CisgICAgaW50IHJjOworCisgICAgSU5JVF9MSVNUX0hF QUQoJnBkZXYtPnZwY2ktPmNhcF9saXN0KTsKKworICAgIC8qIENoZWNrIGlmIGRldmljZSBoYXMg Y2FwYWJpbGl0aWVzLiAqLworICAgIHN0YXR1cyA9IHBjaV9jb25mX3JlYWQxNihzZWcsIGJ1cywg c2xvdCwgZnVuYywgUENJX1NUQVRVUyk7CisgICAgaWYgKCAoc3RhdHVzICYgUENJX1NUQVRVU19D QVBfTElTVCkgPT0gMCApCisgICAgICAgIHJldHVybiAwOworCisgICAgLyogQWRkIHRoZSByb290 IGNhcGFiaWxpdHkgcG9pbnRlci4gKi8KKyAgICBjYXAgPSB4emFsbG9jKHN0cnVjdCB2cGNpX2Nh cGFiaWxpdHkpOworICAgIGlmICggIWNhcCApCisgICAgICAgIHJldHVybiAtRU5PTUVNOworCisg ICAgY2FwLT5vZmZzZXQgPSBwb3M7CisgICAgbGlzdF9hZGRfdGFpbCgmY2FwLT5uZXh0LCAmcGRl di0+dnBjaS0+Y2FwX2xpc3QpOworICAgIHJjID0geGVuX3ZwY2lfYWRkX3JlZ2lzdGVyKHBkZXYs IHZwY2lfY2FwX3JlYWQsIHZwY2lfY2FwX3dyaXRlLCBwb3MsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMSwgY2FwKTsKKyAgICBpZiAoIHJjICkKKyAgICAgICAgcmV0dXJuIHJjOwor CisgICAgLyoKKyAgICAgKiBJdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2YgY2FwYWJpbGl0aWVzIHBy ZXNlbnQgaW4gdGhlIGRldmljZSwgYW5kCisgICAgICogYWRkIGEgaGFuZGxlciBmb3IgZWFjaCBw b2ludGVyIHRvIHRoZSBuZXh0IGl0ZW0gKFBDSV9DQVBfTElTVF9ORVhUKS4KKyAgICAgKi8KKyAg ICB3aGlsZSAoIG1heF9jYXAtLSApCisgICAgeworICAgICAgICBwb3MgPSBwY2lfY29uZl9yZWFk OChzZWcsIGJ1cywgc2xvdCwgZnVuYywgcG9zKTsKKyAgICAgICAgaWYgKCBwb3MgPCAweDQwICkK KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhcCA9IHh6YWxsb2Moc3RydWN0IHZwY2lf Y2FwYWJpbGl0eSk7CisgICAgICAgIGlmICggIWNhcCApCisgICAgICAgICAgICByZXR1cm4gLUVO T01FTTsKKworICAgICAgICBjYXAtPm9mZnNldCA9IHBvczsKKyAgICAgICAgbGlzdF9hZGRfdGFp bCgmY2FwLT5uZXh0LCAmcGRldi0+dnBjaS0+Y2FwX2xpc3QpOworICAgICAgICBwb3MgKz0gUENJ X0NBUF9MSVNUX05FWFQ7CisgICAgICAgIHJjID0geGVuX3ZwY2lfYWRkX3JlZ2lzdGVyKHBkZXYs IHZwY2lfY2FwX3JlYWQsIHZwY2lfY2FwX3dyaXRlLCBwb3MsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDEsIGNhcCk7CisgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAg cmV0dXJuIHJjOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB2cGNp X21hc2tfY2FwYWJpbGl0eShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdWludDhfdCBjYXBfaWQpCit7 CisgICAgc3RydWN0IHZwY2lfY2FwYWJpbGl0eSAqY2FwOworICAgIHVpbnQ4X3QgY2FwX29mZnNl dDsKKworICAgIGNhcF9vZmZzZXQgPSBwY2lfZmluZF9jYXBfb2Zmc2V0KHBkZXYtPnNlZywgcGRl di0+YnVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKHBk ZXYtPmRldmZuKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRlVO QyhwZGV2LT5kZXZmbiksIGNhcF9pZCk7CisgICAgaWYgKCAhY2FwX29mZnNldCApCisgICAgICAg IHJldHVybjsKKworICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBjYXAsICZwZGV2LT52cGNpLT5j YXBfbGlzdCwgbmV4dCApCisgICAgICAgIGlmICggY2FwLT5vZmZzZXQgPT0gY2FwX29mZnNldCAp CisgICAgICAgICAgICBjYXAtPm1hc2tlZCA9IHRydWU7Cit9CisKK3N0YXRpYyBpbnQgdnBjaV9j YXBhYmlsaXRpZXNfaW5pdChzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sKKyAgICBpbnQgcmM7CisK KyAgICByYyA9IHZwY2lfaW5kZXhfY2FwYWJpbGl0aWVzKHBkZXYpOworICAgIGlmICggcmMgKQor ICAgICAgICByZXR1cm4gcmM7CisKKyAgICAvKiBNYXNrIE1TSSBhbmQgTVNJLVggY2FwYWJpbGl0 aWVzIHVudGlsIFhlbiBoYW5kbGVzIHRoZW0uICovCisgICAgdnBjaV9tYXNrX2NhcGFiaWxpdHko cGRldiwgUENJX0NBUF9JRF9NU0kpOworICAgIHZwY2lfbWFza19jYXBhYmlsaXR5KHBkZXYsIFBD SV9DQVBfSURfTVNJWCk7CisKKyAgICByZXR1cm4gMDsKK30KKworUkVHSVNURVJfVlBDSV9JTklU KHZwY2lfY2FwYWJpbGl0aWVzX2luaXQpOworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICog bW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAq IHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KKwpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3ZwY2kuaCBiL3hlbi9pbmNsdWRlL3hlbi92cGNp LmgKaW5kZXggMjA1ZDEyMWE5Mi4uOTQ0ZjQ4ZDg5MyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv eGVuL3ZwY2kuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oCkBAIC02OCw2ICs2OCw5IEBA IHN0cnVjdCB2cGNpIHsKICAgICAgICAgICAgIGJvb2wgc2l6aW5nOwogICAgICAgICB9IGJhcnNb Nl07CiAgICAgfSBoZWFkZXI7CisKKyAgICAvKiBMaXN0IG9mIGNhcGFiaWxpdGllcyBzdXBwb3J0 ZWQgYnkgdGhlIGRldmljZS4gKi8KKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIGNhcF9saXN0OwogI2Vu ZGlmCiB9OwogCi0tIAoyLjExLjAgKEFwcGxlIEdpdC04MSkKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK