From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 07/13] iommu: track reserved ranges using a rangeset Date: Tue, 17 Jul 2018 14:38:10 +0100 Message-ID: <20180717133816.37958-8-paul.durrant@citrix.com> References: <20180717133816.37958-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 1ffQBN-0005lT-3B for xen-devel@lists.xenproject.org; Tue, 17 Jul 2018 13:38:25 +0000 In-Reply-To: <20180717133816.37958-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+Ci0tLQpDYzogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBp bnRlbC5jb20+Cgp2MjoKIC0gTmV3IGluIHYyLgotLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2lvbW11LmMgICAgICAgfCAxMCArKysrKysrKystCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvaW9tbXUuYyAgIHwgMjAgKysrKysrKysrKysrKy0tLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC94ODYvdnRkLmMgfCAxNyArKysrKysrKysrKysrKysrLQogeGVuL2luY2x1ZGUv eGVuL2lvbW11LmggICAgICAgICAgICAgICB8ICA2ICsrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA0 NCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCmlu ZGV4IDlkNGVkNmQyNzUuLjIwNDgzNDJmM2UgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAt MTQ3LDYgKzE0NywxMCBAQCBpbnQgaW9tbXVfZG9tYWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCkK ICAgICBpZiAoICFpb21tdV9lbmFibGVkICkKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBoZC0+ cmVzZXJ2ZWRfcmFuZ2VzID0gcmFuZ2VzZXRfbmV3KGQsIE5VTEwsIDApOworICAgIGlmICggIWhk LT5yZXNlcnZlZF9yYW5nZXMgKQorICAgICAgICByZXR1cm4gLUVOT01FTTsKKwogICAgIGhkLT5w bGF0Zm9ybV9vcHMgPSBpb21tdV9nZXRfb3BzKCk7CiAgICAgcmV0dXJuIGhkLT5wbGF0Zm9ybV9v cHMtPmluaXQoZCk7CiB9CkBAIC0yNDgsMTIgKzI1MiwxNiBAQCBpbnQgaW9tbXVfY29uc3RydWN0 KHN0cnVjdCBkb21haW4gKmQpCiAKIHZvaWQgaW9tbXVfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRv bWFpbiAqZCkKIHsKLSAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFkb21faW9tbXUoZCktPnBs YXRmb3JtX29wcyApCisgICAgY29uc3Qgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9t bXUoZCk7CisKKyAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkK ICAgICAgICAgcmV0dXJuOwogCiAgICAgaW9tbXVfdGVhcmRvd24oZCk7CiAKICAgICBhcmNoX2lv bW11X2RvbWFpbl9kZXN0cm95KGQpOworCisgICAgcmFuZ2VzZXRfZGVzdHJveShoZC0+cmVzZXJ2 ZWRfcmFuZ2VzKTsKIH0KIAogaW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGJm bl90IGJmbiwgbWZuX3QgbWZuLApkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv dnRkL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwppbmRleCBj OWY1MGYwNGFkLi4yODJlMjI3NDE0IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpA QCAtMTkxMCw2ICsxOTEwLDcgQEAgc3RhdGljIGludCBybXJyX2lkZW50aXR5X21hcHBpbmcoc3Ry dWN0IGRvbWFpbiAqZCwgYm9vbF90IG1hcCwKICAgICB1bnNpZ25lZCBsb25nIGVuZF9wZm4gPSBQ QUdFX0FMSUdOXzRLKHJtcnItPmVuZF9hZGRyZXNzKSA+PiBQQUdFX1NISUZUXzRLOwogICAgIHN0 cnVjdCBtYXBwZWRfcm1yciAqbXJtcnI7CiAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBk b21faW9tbXUoZCk7CisgICAgaW50IGVyciA9IDA7CiAKICAgICBBU1NFUlQocGNpZGV2c19sb2Nr ZWQoKSk7CiAgICAgQVNTRVJUKHJtcnItPmJhc2VfYWRkcmVzcyA8IHJtcnItPmVuZF9hZGRyZXNz KTsKQEAgLTE5MjMsOCArMTkyNCw2IEBAIHN0YXRpYyBpbnQgcm1ycl9pZGVudGl0eV9tYXBwaW5n KHN0cnVjdCBkb21haW4gKmQsIGJvb2xfdCBtYXAsCiAgICAgICAgIGlmICggbXJtcnItPmJhc2Ug PT0gcm1yci0+YmFzZV9hZGRyZXNzICYmCiAgICAgICAgICAgICAgbXJtcnItPmVuZCA9PSBybXJy LT5lbmRfYWRkcmVzcyApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXQgPSAwOwotCiAg ICAgICAgICAgICBpZiAoIG1hcCApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgKytt cm1yci0+Y291bnQ7CkBAIC0xOTM0LDI4ICsxOTMzLDM1IEBAIHN0YXRpYyBpbnQgcm1ycl9pZGVu dGl0eV9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQsIGJvb2xfdCBtYXAsCiAgICAgICAgICAgICBp ZiAoIC0tbXJtcnItPmNvdW50ICkKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAg ICAgICAgd2hpbGUgKCBiYXNlX3BmbiA8IGVuZF9wZm4gKQorICAgICAgICAgICAgZXJyID0gcmFu Z2VzZXRfcmVtb3ZlX3JhbmdlKGhkLT5yZXNlcnZlZF9yYW5nZXMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9wZm4sIGVuZF9wZm4pOworICAgICAgICAgICAg d2hpbGUgKCAhZXJyICYmIGJhc2VfcGZuIDwgZW5kX3BmbiApCiAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgaWYgKCBjbGVhcl9pZGVudGl0eV9wMm1fZW50cnkoZCwgYmFzZV9wZm4pICkK LSAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVOWElPOworICAgICAgICAgICAgICAgICAgICBl cnIgPSAtRU5YSU87CisKICAgICAgICAgICAgICAgICBiYXNlX3BmbisrOwogICAgICAgICAgICAg fQogCiAgICAgICAgICAgICBsaXN0X2RlbCgmbXJtcnItPmxpc3QpOwogICAgICAgICAgICAgeGZy ZWUobXJtcnIpOwotICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgICAgIHJldHVybiBl cnI7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoICFtYXAgKQogICAgICAgICByZXR1cm4g LUVOT0VOVDsKIAorICAgIGVyciA9IHJhbmdlc2V0X2FkZF9yYW5nZShoZC0+cmVzZXJ2ZWRfcmFu Z2VzLCBiYXNlX3BmbiwgZW5kX3Bmbik7CisgICAgaWYgKCBlcnIgKQorICAgICAgICByZXR1cm4g ZXJyOworCiAgICAgd2hpbGUgKCBiYXNlX3BmbiA8IGVuZF9wZm4gKQogICAgIHsKLSAgICAgICAg aW50IGVyciA9IHNldF9pZGVudGl0eV9wMm1fZW50cnkoZCwgYmFzZV9wZm4sIHAybV9hY2Nlc3Nf cncsIGZsYWcpOwotCisgICAgICAgIGVyciA9IHNldF9pZGVudGl0eV9wMm1fZW50cnkoZCwgYmFz ZV9wZm4sIHAybV9hY2Nlc3NfcncsIGZsYWcpOwogICAgICAgICBpZiAoIGVyciApCiAgICAgICAg ICAgICByZXR1cm4gZXJyOworCiAgICAgICAgIGJhc2VfcGZuKys7CiAgICAgfQogCmRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYwppbmRleCA2ZmVkNGE5MmNiLi4wMzI0MTJiOGM2IDEw MDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jCisrKyBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKQEAgLTE2NCwxMCArMTY0LDI1IEBA IHZvaWQgX19od2RvbV9pbml0IHZ0ZF9zZXRfaHdkb21fbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpk KQogCiAgICAgICAgICAgICBpZiAoICFyYyApCiAgICAgICAgICAgICAgICByYyA9IHJldDsKKwor ICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFRoZSBvbmx5IHJlYXNvbiBhIHJlc2VydmVk IHBhZ2Ugd291bGQgYmUgbWFwcGVkIGlzIHRoYXQKKyAgICAgICAgICAgICAqIGlvbW11X2luY2x1 c2l2ZV9tYXBwaW5nIGlzIHNldCwgaW4gd2hpY2ggY2FzZSB0aGUgQkZOCisgICAgICAgICAgICAg KiBuZWVkcyB0byBiZSBtYXJrZWQgYXMgcmVzZXJ2ZWQgaW4gdGhlIElPTU1VLgorICAgICAgICAg ICAgICovCisgICAgICAgICAgICBpZiAoIHBhZ2VfaXNfcmFtX3R5cGUocGZuLCBSQU1fVFlQRV9S RVNFUlZFRCkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEFTU0VSVChpb21tdV9p bmNsdXNpdmVfbWFwcGluZyk7CisKKyAgICAgICAgICAgICAgICByZXQgPSByYW5nZXNldF9hZGRf c2luZ2xldG9uKGRvbV9pb21tdShkKS0+cmVzZXJ2ZWRfcmFuZ2VzLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZuX3goYmZuKSk7CisgICAgICAgICAgICAg ICAgaWYgKCAhcmMgKQorICAgICAgICAgICAgICAgICAgICByYyA9IHJldDsKKyAgICAgICAgICAg IH0KICAgICAgICAgfQogCiAgICAgICAgIGlmICggcmMgKQotICAgICAgICAgICAgcHJpbnRrKFhF TkxPR19XQVJOSU5HIFZURFBSRUZJWCAiIGQlZDogSU9NTVUgbWFwcGluZyBmYWlsZWQ6ICVkXG4i LAorICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBSRUZJWCAiIGQlZDogSU9N TVUgbWFwcGluZy9yZXNlcnZhdGlvbiBmYWlsZWQ6ICVkXG4iLAogICAgICAgICAgICAgICAgICAg IGQtPmRvbWFpbl9pZCwgcmMpOwogCiAgICAgICAgIGlmICghKGkgJiAoMHhmZmZmZiA+PiAoUEFH RV9TSElGVCAtIFBBR0VfU0hJRlRfNEspKSkpCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4v aW9tbXUuaCBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCmluZGV4IDYyNDc4NGZlYzguLmNjMGJl ODFiNGUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCisrKyBiL3hlbi9pbmNs dWRlL3hlbi9pb21tdS5oCkBAIC0xMjIsNiArMTIyLDEyIEBAIHN0cnVjdCBkb21haW5faW9tbXUg ewogCiAgICAgLyogRmVhdHVyZXMgc3VwcG9ydGVkIGJ5IHRoZSBJT01NVSAqLwogICAgIERFQ0xB UkVfQklUTUFQKGZlYXR1cmVzLCBJT01NVV9GRUFUX2NvdW50KTsKKworICAgIC8qCisgICAgICog QkZOIHJhbmdlcyB0aGF0IGFyZSByZXNlcnZlZCBpbiB0aGUgZG9tYWluIElPTU1VIG1hcHBpbmdz IGFuZAorICAgICAqIG11c3Qgbm90IGJlIG1vZGlmaWVkIGFmdGVyIGluaXRpYWxpemF0aW9uLgor ICAgICAqLworICAgIHN0cnVjdCByYW5nZXNldCAqcmVzZXJ2ZWRfcmFuZ2VzOwogfTsKIAogI2Rl ZmluZSBkb21faW9tbXUoZCkgICAgICAgICAgICAgICgmKGQpLT5pb21tdSkKLS0gCjIuMTEuMAoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=