From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v6 06/14] iommu: track reserved ranges using a rangeset Date: Thu, 23 Aug 2018 10:47:03 +0100 Message-ID: <20180823094711.21376-7-paul.durrant@citrix.com> References: <20180823094711.21376-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fsmD2-00005e-7D for xen-devel@lists.xenproject.org; Thu, 23 Aug 2018 09:47:20 +0000 In-Reply-To: <20180823094711.21376-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 bGljaEBzdXNlLmNvbT4KQ2M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgoKdjY6 CiAtIFJlLWJhc2UuCgp2MjoKIC0gTmV3IGluIHYyLgotLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2lvbW11LmMgICAgICAgfCAxMCArKysrKysrKystCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvaW9tbXUuYyAgIHwgMjAgKysrKysrKysrKysrKy0tLS0tLS0KIHhlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMgfCAxNSArKysrKysrKysrKysrKy0KIHhlbi9pbmNsdWRl L3hlbi9pb21tdS5oICAgICAgICAgICAgICAgfCAgNiArKysrKysKIDQgZmlsZXMgY2hhbmdlZCwg NDIgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpp bmRleCBmNzVjYWIxMzBkLi45YjYzZTllZmVlIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAg LTE0Nyw2ICsxNDcsMTAgQEAgaW50IGlvbW11X2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQp CiAgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCApCiAgICAgICAgIHJldHVybiAwOwogCisgICAgaGQt PnJlc2VydmVkX3JhbmdlcyA9IHJhbmdlc2V0X25ldyhkLCBOVUxMLCAwKTsKKyAgICBpZiAoICFo ZC0+cmVzZXJ2ZWRfcmFuZ2VzICkKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKICAgICBoZC0+ cGxhdGZvcm1fb3BzID0gaW9tbXVfZ2V0X29wcygpOwogICAgIHJldHVybiBoZC0+cGxhdGZvcm1f b3BzLT5pbml0KGQpOwogfQpAQCAtMjQ4LDEyICsyNTIsMTYgQEAgaW50IGlvbW11X2NvbnN0cnVj dChzdHJ1Y3QgZG9tYWluICpkKQogCiB2b2lkIGlvbW11X2RvbWFpbl9kZXN0cm95KHN0cnVjdCBk b21haW4gKmQpCiB7Ci0gICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhZG9tX2lvbW11KGQpLT5w bGF0Zm9ybV9vcHMgKQorICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lv bW11KGQpOworCisgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3JtX29wcyAp CiAgICAgICAgIHJldHVybjsKIAogICAgIGlvbW11X3RlYXJkb3duKGQpOwogCiAgICAgYXJjaF9p b21tdV9kb21haW5fZGVzdHJveShkKTsKKworICAgIHJhbmdlc2V0X2Rlc3Ryb3koaGQtPnJlc2Vy dmVkX3Jhbmdlcyk7CiB9CiAKIGludCBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBi Zm5fdCBiZm4sIG1mbl90IG1mbiwKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3Z0ZC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKaW5kZXgg YzlmNTBmMDRhZC4uMjgyZTIyNzQxNCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvdnRkL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMK QEAgLTE5MTAsNiArMTkxMCw3IEBAIHN0YXRpYyBpbnQgcm1ycl9pZGVudGl0eV9tYXBwaW5nKHN0 cnVjdCBkb21haW4gKmQsIGJvb2xfdCBtYXAsCiAgICAgdW5zaWduZWQgbG9uZyBlbmRfcGZuID0g UEFHRV9BTElHTl80SyhybXJyLT5lbmRfYWRkcmVzcykgPj4gUEFHRV9TSElGVF80SzsKICAgICBz dHJ1Y3QgbWFwcGVkX3JtcnIgKm1ybXJyOwogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0g ZG9tX2lvbW11KGQpOworICAgIGludCBlcnIgPSAwOwogCiAgICAgQVNTRVJUKHBjaWRldnNfbG9j a2VkKCkpOwogICAgIEFTU0VSVChybXJyLT5iYXNlX2FkZHJlc3MgPCBybXJyLT5lbmRfYWRkcmVz cyk7CkBAIC0xOTIzLDggKzE5MjQsNiBAQCBzdGF0aWMgaW50IHJtcnJfaWRlbnRpdHlfbWFwcGlu ZyhzdHJ1Y3QgZG9tYWluICpkLCBib29sX3QgbWFwLAogICAgICAgICBpZiAoIG1ybXJyLT5iYXNl ID09IHJtcnItPmJhc2VfYWRkcmVzcyAmJgogICAgICAgICAgICAgIG1ybXJyLT5lbmQgPT0gcm1y ci0+ZW5kX2FkZHJlc3MgKQogICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmV0ID0gMDsKLQog ICAgICAgICAgICAgaWYgKCBtYXAgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICsr bXJtcnItPmNvdW50OwpAQCAtMTkzNCwyOCArMTkzMywzNSBAQCBzdGF0aWMgaW50IHJtcnJfaWRl bnRpdHlfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkLCBib29sX3QgbWFwLAogICAgICAgICAgICAg aWYgKCAtLW1ybXJyLT5jb3VudCApCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAg ICAgICAgIHdoaWxlICggYmFzZV9wZm4gPCBlbmRfcGZuICkKKyAgICAgICAgICAgIGVyciA9IHJh bmdlc2V0X3JlbW92ZV9yYW5nZShoZC0+cmVzZXJ2ZWRfcmFuZ2VzLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfcGZuLCBlbmRfcGZuKTsKKyAgICAgICAgICAg IHdoaWxlICggIWVyciAmJiBiYXNlX3BmbiA8IGVuZF9wZm4gKQogICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgIGlmICggY2xlYXJfaWRlbnRpdHlfcDJtX2VudHJ5KGQsIGJhc2VfcGZuKSAp Ci0gICAgICAgICAgICAgICAgICAgIHJldCA9IC1FTlhJTzsKKyAgICAgICAgICAgICAgICAgICAg ZXJyID0gLUVOWElPOworCiAgICAgICAgICAgICAgICAgYmFzZV9wZm4rKzsKICAgICAgICAgICAg IH0KIAogICAgICAgICAgICAgbGlzdF9kZWwoJm1ybXJyLT5saXN0KTsKICAgICAgICAgICAgIHhm cmVlKG1ybXJyKTsKLSAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgICAgICByZXR1cm4g ZXJyOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCAhbWFwICkKICAgICAgICAgcmV0dXJu IC1FTk9FTlQ7CiAKKyAgICBlcnIgPSByYW5nZXNldF9hZGRfcmFuZ2UoaGQtPnJlc2VydmVkX3Jh bmdlcywgYmFzZV9wZm4sIGVuZF9wZm4pOworICAgIGlmICggZXJyICkKKyAgICAgICAgcmV0dXJu IGVycjsKKwogICAgIHdoaWxlICggYmFzZV9wZm4gPCBlbmRfcGZuICkKICAgICB7Ci0gICAgICAg IGludCBlcnIgPSBzZXRfaWRlbnRpdHlfcDJtX2VudHJ5KGQsIGJhc2VfcGZuLCBwMm1fYWNjZXNz X3J3LCBmbGFnKTsKLQorICAgICAgICBlcnIgPSBzZXRfaWRlbnRpdHlfcDJtX2VudHJ5KGQsIGJh c2VfcGZuLCBwMm1fYWNjZXNzX3J3LCBmbGFnKTsKICAgICAgICAgaWYgKCBlcnIgKQogICAgICAg ICAgICAgcmV0dXJuIGVycjsKKwogICAgICAgICBiYXNlX3BmbisrOwogICAgIH0KIApkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKaW5kZXggZmI2NzRjZGM2OC4uNjAxZDgyYTE2ZSAx MDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYworKysgYi94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jCkBAIC0xNTQsOCArMTU0LDIxIEBA IHZvaWQgX19od2RvbV9pbml0IHZ0ZF9zZXRfaHdkb21fbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpk KQogCiAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgX2JmbihwZm4pLCBfbWZuKHBmbiks CiAJCQkgICAgSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlKTsKKworICAgICAgICAv KgorICAgICAgICAgKiBUaGUgb25seSByZWFzb24gYSByZXNlcnZlZCBwYWdlIHdvdWxkIGJlIG1h cHBlZCBpcyB0aGF0CisgICAgICAgICAqIGlvbW11X2luY2x1c2l2ZV9tYXBwaW5nIGlzIHNldCwg aW4gd2hpY2ggY2FzZSBpdCBuZWVkcyB0byBiZQorICAgICAgICAgKiBtYXJrZWQgYXMgcmVzZXJ2 ZWQgaW4gdGhlIElPTU1VLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAhcmMgJiYgcGFnZV9p c19yYW1fdHlwZShwZm4sIFJBTV9UWVBFX1JFU0VSVkVEKSApCisgICAgICAgIHsKKyAgICAgICAg ICAgIEFTU0VSVChpb21tdV9pbmNsdXNpdmVfbWFwcGluZyk7CisKKyAgICAgICAgICAgIHJjID0g cmFuZ2VzZXRfYWRkX3NpbmdsZXRvbihkb21faW9tbXUoZCktPnJlc2VydmVkX3JhbmdlcywgcGZu KTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICggcmMgKQotICAgICAgICAgICAgcHJpbnRrKFhF TkxPR19XQVJOSU5HIFZURFBSRUZJWCAiIGQlZDogSU9NTVUgbWFwcGluZyBmYWlsZWQ6ICVkXG4i LAorICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBSRUZJWCAiIGQlZDogSU9N TVUgbWFwcGluZy9yZXNlcnZhdGlvbiBmYWlsZWQ6ICVkXG4iLAogICAgICAgICAgICAgICAgICAg IGQtPmRvbWFpbl9pZCwgcmMpOwogCiAgICAgICAgIGlmICghKGkgJiAweGZmZmZmKSkKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgK aW5kZXggNmVkYzZlMWExMC4uOGNkYjUzMGQ0OSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVu L2lvbW11LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKQEAgLTEyMiw2ICsxMjIsMTIg QEAgc3RydWN0IGRvbWFpbl9pb21tdSB7CiAKICAgICAvKiBGZWF0dXJlcyBzdXBwb3J0ZWQgYnkg dGhlIElPTU1VICovCiAgICAgREVDTEFSRV9CSVRNQVAoZmVhdHVyZXMsIElPTU1VX0ZFQVRfY291 bnQpOworCisgICAgLyoKKyAgICAgKiBCRk4gcmFuZ2VzIHRoYXQgYXJlIHJlc2VydmVkIGluIHRo ZSBkb21haW4gSU9NTVUgbWFwcGluZ3MgYW5kCisgICAgICogbXVzdCBub3QgYmUgbW9kaWZpZWQg YWZ0ZXIgaW5pdGlhbGl6YXRpb24uCisgICAgICovCisgICAgc3RydWN0IHJhbmdlc2V0ICpyZXNl cnZlZF9yYW5nZXM7CiB9OwogCiAjZGVmaW5lIGRvbV9pb21tdShkKSAgICAgICAgICAgICAgKCYo ZCktPmlvbW11KQotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv L3hlbi1kZXZlbA==