From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 07/15] iommu: track reserved ranges using a rangeset Date: Wed, 1 Aug 2018 14:40:20 +0100 Message-ID: <20180801134028.1654-8-paul.durrant@citrix.com> References: <20180801134028.1654-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fkrMj-0008Nc-OZ for xen-devel@lists.xenproject.org; Wed, 01 Aug 2018 13:40:37 +0000 In-Reply-To: <20180801134028.1654-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Kevin Tian , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org UmFuZ2VzIHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcmVzZXJ2ZWQgaW4gdGhlIElPTU1VIGFy ZSBub3QgbmVjZXNzYXJpbHkKbGltaXRlZCB0byBSTVJScy4gSWYgaW9tbXVfaW5jbHVzaXZlX21h cHBpbmcgaXMgc2V0IHRoZW4gYW55IGZyYW1lIG51bWJlcgpmYWxsaW5nIHdpdGhpbiBhbiBFODIw IHJlc2VydmVkIHJlZ2lvbiBzaG91bGQgYWxzbyBiZSBjb25zaWRlcmVkIGFzCnJlc2VydmVkIGlu IHRoZSBJT01NVS4KVGhpcyBwYXRjaCBhZGRzIGEgcmFuZ2VzZXQgdG8gdGhlIGRvbWFpbl9pb21t dSBzdHJ1Y3R1cmUgdGhhdCBpcyB0aGVuIHVzZWQKdG8gdHJhY2sgYWxsIHJlc2VydmVkIHJhbmdl cy4gVGhpcyB3aWxsIGJlIG5lZWRlZCBieSBhIHN1YnNlcXVlbnQgcGF0Y2gKdG8gdGVzdCB3aGV0 aGVyIGl0IGlzIHNhZmUgdG8gbW9kaWZ5IGEgcGFydGljdWxhciBJT01NVSBlbnRyeS4KClNpZ25l ZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+ClJldmlld2Vk LWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5 OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KQ2M6IEphbiBCZXVsaWNoIDxqYmV1 bGljaEBzdXNlLmNvbT4KQ2M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgoKdjI6 CiAtIE5ldyBpbiB2Mi4KLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jICAgICAg IHwgMTAgKysrKysrKysrLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMgICB8 IDIwICsrKysrKysrKysrKystLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2 L3Z0ZC5jIHwgMTcgKysrKysrKysrKysrKysrKy0KIHhlbi9pbmNsdWRlL3hlbi9pb21tdS5oICAg ICAgICAgICAgICAgfCAgNiArKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygr KSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9p b21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCAyMWU2ODg2YTNm Li5iMTBhMzdlNWQ3IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5j CisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTE0Nyw2ICsxNDcsMTAg QEAgaW50IGlvbW11X2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgaWYgKCAhaW9t bXVfZW5hYmxlZCApCiAgICAgICAgIHJldHVybiAwOwogCisgICAgaGQtPnJlc2VydmVkX3Jhbmdl cyA9IHJhbmdlc2V0X25ldyhkLCBOVUxMLCAwKTsKKyAgICBpZiAoICFoZC0+cmVzZXJ2ZWRfcmFu Z2VzICkKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKICAgICBoZC0+cGxhdGZvcm1fb3BzID0g aW9tbXVfZ2V0X29wcygpOwogICAgIHJldHVybiBoZC0+cGxhdGZvcm1fb3BzLT5pbml0KGQpOwog fQpAQCAtMjQ4LDEyICsyNTIsMTYgQEAgaW50IGlvbW11X2NvbnN0cnVjdChzdHJ1Y3QgZG9tYWlu ICpkKQogCiB2b2lkIGlvbW11X2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpCiB7Ci0g ICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhZG9tX2lvbW11KGQpLT5wbGF0Zm9ybV9vcHMgKQor ICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOworCisgICAg aWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3JtX29wcyApCiAgICAgICAgIHJldHVy bjsKIAogICAgIGlvbW11X3RlYXJkb3duKGQpOwogCiAgICAgYXJjaF9pb21tdV9kb21haW5fZGVz dHJveShkKTsKKworICAgIHJhbmdlc2V0X2Rlc3Ryb3koaGQtPnJlc2VydmVkX3Jhbmdlcyk7CiB9 CiAKIGludCBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBiZm5fdCBiZm4sIG1mbl90 IG1mbiwKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKaW5kZXggYzlmNTBmMDRhZC4uMjgy ZTIyNzQxNCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMK KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTE5MTAsNiArMTkx MCw3IEBAIHN0YXRpYyBpbnQgcm1ycl9pZGVudGl0eV9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQs IGJvb2xfdCBtYXAsCiAgICAgdW5zaWduZWQgbG9uZyBlbmRfcGZuID0gUEFHRV9BTElHTl80Syhy bXJyLT5lbmRfYWRkcmVzcykgPj4gUEFHRV9TSElGVF80SzsKICAgICBzdHJ1Y3QgbWFwcGVkX3Jt cnIgKm1ybXJyOwogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwor ICAgIGludCBlcnIgPSAwOwogCiAgICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOwogICAgIEFT U0VSVChybXJyLT5iYXNlX2FkZHJlc3MgPCBybXJyLT5lbmRfYWRkcmVzcyk7CkBAIC0xOTIzLDgg KzE5MjQsNiBAQCBzdGF0aWMgaW50IHJtcnJfaWRlbnRpdHlfbWFwcGluZyhzdHJ1Y3QgZG9tYWlu ICpkLCBib29sX3QgbWFwLAogICAgICAgICBpZiAoIG1ybXJyLT5iYXNlID09IHJtcnItPmJhc2Vf YWRkcmVzcyAmJgogICAgICAgICAgICAgIG1ybXJyLT5lbmQgPT0gcm1yci0+ZW5kX2FkZHJlc3Mg KQogICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmV0ID0gMDsKLQogICAgICAgICAgICAgaWYg KCBtYXAgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICsrbXJtcnItPmNvdW50OwpA QCAtMTkzNCwyOCArMTkzMywzNSBAQCBzdGF0aWMgaW50IHJtcnJfaWRlbnRpdHlfbWFwcGluZyhz dHJ1Y3QgZG9tYWluICpkLCBib29sX3QgbWFwLAogICAgICAgICAgICAgaWYgKCAtLW1ybXJyLT5j b3VudCApCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgICAgIHdoaWxlICgg YmFzZV9wZm4gPCBlbmRfcGZuICkKKyAgICAgICAgICAgIGVyciA9IHJhbmdlc2V0X3JlbW92ZV9y YW5nZShoZC0+cmVzZXJ2ZWRfcmFuZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJhc2VfcGZuLCBlbmRfcGZuKTsKKyAgICAgICAgICAgIHdoaWxlICggIWVyciAm JiBiYXNlX3BmbiA8IGVuZF9wZm4gKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGlm ICggY2xlYXJfaWRlbnRpdHlfcDJtX2VudHJ5KGQsIGJhc2VfcGZuKSApCi0gICAgICAgICAgICAg ICAgICAgIHJldCA9IC1FTlhJTzsKKyAgICAgICAgICAgICAgICAgICAgZXJyID0gLUVOWElPOwor CiAgICAgICAgICAgICAgICAgYmFzZV9wZm4rKzsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg ICAgbGlzdF9kZWwoJm1ybXJyLT5saXN0KTsKICAgICAgICAgICAgIHhmcmVlKG1ybXJyKTsKLSAg ICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgICAgICByZXR1cm4gZXJyOwogICAgICAgICB9 CiAgICAgfQogCiAgICAgaWYgKCAhbWFwICkKICAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CiAKKyAg ICBlcnIgPSByYW5nZXNldF9hZGRfcmFuZ2UoaGQtPnJlc2VydmVkX3JhbmdlcywgYmFzZV9wZm4s IGVuZF9wZm4pOworICAgIGlmICggZXJyICkKKyAgICAgICAgcmV0dXJuIGVycjsKKwogICAgIHdo aWxlICggYmFzZV9wZm4gPCBlbmRfcGZuICkKICAgICB7Ci0gICAgICAgIGludCBlcnIgPSBzZXRf aWRlbnRpdHlfcDJtX2VudHJ5KGQsIGJhc2VfcGZuLCBwMm1fYWNjZXNzX3J3LCBmbGFnKTsKLQor ICAgICAgICBlcnIgPSBzZXRfaWRlbnRpdHlfcDJtX2VudHJ5KGQsIGJhc2VfcGZuLCBwMm1fYWNj ZXNzX3J3LCBmbGFnKTsKICAgICAgICAgaWYgKCBlcnIgKQogICAgICAgICAgICAgcmV0dXJuIGVy cjsKKwogICAgICAgICBiYXNlX3BmbisrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC94ODYvdnRkLmMKaW5kZXggNmZlZDRhOTJjYi4uMDMyNDEyYjhjNiAxMDA2NDQKLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYworKysgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQveDg2L3Z0ZC5jCkBAIC0xNjQsMTAgKzE2NCwyNSBAQCB2b2lkIF9faHdkb21f aW5pdCB2dGRfc2V0X2h3ZG9tX21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCkKIAogICAgICAgICAg ICAgaWYgKCAhcmMgKQogICAgICAgICAgICAgICAgcmMgPSByZXQ7CisKKyAgICAgICAgICAgIC8q CisgICAgICAgICAgICAgKiBUaGUgb25seSByZWFzb24gYSByZXNlcnZlZCBwYWdlIHdvdWxkIGJl IG1hcHBlZCBpcyB0aGF0CisgICAgICAgICAgICAgKiBpb21tdV9pbmNsdXNpdmVfbWFwcGluZyBp cyBzZXQsIGluIHdoaWNoIGNhc2UgdGhlIEJGTgorICAgICAgICAgICAgICogbmVlZHMgdG8gYmUg bWFya2VkIGFzIHJlc2VydmVkIGluIHRoZSBJT01NVS4KKyAgICAgICAgICAgICAqLworICAgICAg ICAgICAgaWYgKCBwYWdlX2lzX3JhbV90eXBlKHBmbiwgUkFNX1RZUEVfUkVTRVJWRUQpICkKKyAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoaW9tbXVfaW5jbHVzaXZlX21hcHBp bmcpOworCisgICAgICAgICAgICAgICAgcmV0ID0gcmFuZ2VzZXRfYWRkX3NpbmdsZXRvbihkb21f aW9tbXUoZCktPnJlc2VydmVkX3JhbmdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJmbl94KGJmbikpOworICAgICAgICAgICAgICAgIGlmICggIXJjICkK KyAgICAgICAgICAgICAgICAgICAgcmMgPSByZXQ7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K IAogICAgICAgICBpZiAoIHJjICkKLSAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBW VERQUkVGSVggIiBkJWQ6IElPTU1VIG1hcHBpbmcgZmFpbGVkOiAlZFxuIiwKKyAgICAgICAgICAg IHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVggIiBkJWQ6IElPTU1VIG1hcHBpbmcvcmVz ZXJ2YXRpb24gZmFpbGVkOiAlZFxuIiwKICAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQs IHJjKTsKIAogICAgICAgICBpZiAoIShpICYgKDB4ZmZmZmYgPj4gKFBBR0VfU0hJRlQgLSBQQUdF X1NISUZUXzRLKSkpKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmggYi94ZW4v aW5jbHVkZS94ZW4vaW9tbXUuaAppbmRleCA2MjQ3ODRmZWM4Li5jYzBiZTgxYjRlIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUu aApAQCAtMTIyLDYgKzEyMiwxMiBAQCBzdHJ1Y3QgZG9tYWluX2lvbW11IHsKIAogICAgIC8qIEZl YXR1cmVzIHN1cHBvcnRlZCBieSB0aGUgSU9NTVUgKi8KICAgICBERUNMQVJFX0JJVE1BUChmZWF0 dXJlcywgSU9NTVVfRkVBVF9jb3VudCk7CisKKyAgICAvKgorICAgICAqIEJGTiByYW5nZXMgdGhh dCBhcmUgcmVzZXJ2ZWQgaW4gdGhlIGRvbWFpbiBJT01NVSBtYXBwaW5ncyBhbmQKKyAgICAgKiBt dXN0IG5vdCBiZSBtb2RpZmllZCBhZnRlciBpbml0aWFsaXphdGlvbi4KKyAgICAgKi8KKyAgICBz dHJ1Y3QgcmFuZ2VzZXQgKnJlc2VydmVkX3JhbmdlczsKIH07CiAKICNkZWZpbmUgZG9tX2lvbW11 KGQpICAgICAgICAgICAgICAoJihkKS0+aW9tbXUpCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs