From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH v9 2/3] VT-d: wrap a _sync version for all VT-d flush interfaces Date: Fri, 1 Apr 2016 22:47:38 +0800 Message-ID: <1459522059-102365-3-git-send-email-quan.xu@intel.com> References: <1459522059-102365-1-git-send-email-quan.xu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1459522059-102365-1-git-send-email-quan.xu@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: kevin.tian@intel.com, feng.wu@intel.com, jbeulich@suse.com, dario.faggioli@citrix.com, Quan Xu List-Id: xen-devel@lists.xenproject.org VGhlIGRldl9pbnZhbGlkYXRlX2lvdGxiKCkgc2NhbnMgYXRzX2RldmljZXMgbGlzdCB0byBmbHVz aCBBVFMgZGV2aWNlcywKYW5kIHRoZSBpbnZhbGlkYXRlX3N5bmMoKSBpcyBwdXQgYWZ0ZXIgZGV2 X2ludmFsaWRhdGVfaW90bGIoKSB0bwpzeW5jaHJvbml6ZSB3aXRoIGhhcmR3YXJlIGZvciBmbHVz aCBzdGF0dXMuIElmIHdlIGFzc2lnbiBtdWx0aXBsZQpBVFMgZGV2aWNlcyB0byBhIGRvbWFpbiwg dGhlIGZsdXNoIHN0YXR1cyBpcyBhYm91dCBhbGwgdGhlc2UgbXVsdGlwbGUKQVRTIGRldmljZXMu IE9uY2UgZmx1c2ggdGltZW91dCBleHBpcmVzLCB3ZSBjb3VsZG4ndCBmaW5kIG91dCB3aGljaApv bmUgaXMgdGhlIGJ1Z2d5IEFUUyBkZXZpY2UuCgpUaGVuLCBUaGUgaW52YWxpZGF0ZV9zeW5jKCkg dmFyaWFudCAoV2UgbmVlZCB0byBwYXNzIGRvd24gdGhlIGRldmljZSdzClNCREYgdG8gaGlkZSB0 aGUgQVRTIGRldmljZSkgaXMgcHV0IHdpdGhpbiBkZXZfaW52YWxpZGF0ZV9pb3RsYigpIHRvCnN5 bmNocm9uaXplIGZvciB0aGUgZmx1c2ggc3RhdHVzIG9uZSBieSBvbmUuIElmIGZsdXNoIHRpbWVv dXQgZXhwaXJlcywKd2UgY291bGQgZmluZCBvdXQgdGhlIGJ1Z2d5IEFUUyBkZXZpY2UgYW5kIGhp ZGUgaXQuIEhvd2V2ZXIsIGZvciBvdGhlcgpWVC1kIGZsdXNoIGludGVyZmFjZXMsIHRoZSBpbnZh bGlkYXRlX3N5bmMoKSBpcyBzdGlsbCBwdXQgYWZ0ZXIgYXQgcHJlc2VudC4KVGhpcyBpcyBpbmNv bnNpc3RlbnQuCgpTbyB3ZSB3cmFwIGEgX3N5bmMgdmVyc2lvbiBmb3IgYWxsIFZULWQgZmx1c2gg aW50ZXJmYWNlcy4gSXQgc2ltcGxpZmllcwpjYWxsZXIgbG9naWMgYW5kIG1ha2VzIGNvZGUgbW9y ZSByZWFkYWJsZSBhcyB3ZWxsLgoKU2lnbmVkLW9mZi1ieTogUXVhbiBYdSA8cXVhbi54dUBpbnRl bC5jb20+Ci0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oICB8ICAyICsr CiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMgIHwgNjAgKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYv YXRzLmMgfCAxMiArKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDI0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9l eHRlcm4uaCBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4uaAppbmRleCBkNGQz N2MzLi42ZDMxODdkIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0 ZXJuLmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oCkBAIC02MSw2 ICs2MSw4IEBAIGludCBkZXZfaW52YWxpZGF0ZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1 MTYgZGlkLAogCiBpbnQgcWludmFsX2RldmljZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LAog ICAgICAgICAgICAgICAgICAgICAgICAgdTMyIG1heF9pbnZzX3BlbmQsIHUxNiBzaWQsIHUxNiBz aXplLCB1NjQgYWRkcik7CitpbnQgcWludmFsX2RldmljZV9pb3RsYl9zeW5jKHN0cnVjdCBpb21t dSAqaW9tbXUsIHUzMiBtYXhfaW52c19wZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1MTYgc2lkLCB1MTYgc2l6ZSwgdTY0IGFkZHIpOwogCiB1bnNpZ25lZCBpbnQgZ2V0X2NhY2hl X2xpbmVfc2l6ZSh2b2lkKTsKIHZvaWQgY2FjaGVsaW5lX2ZsdXNoKGNoYXIgKik7CmRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvcWludmFsLmMKaW5kZXggNTJiYTJjMi4uZDEyNjYxYiAxMDA2NDQKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCisrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYwpAQCAtMzMsNiArMzMsMTAgQEAgaW50ZWdlcl9wYXJh bSgidnRkX3FpX3RpbWVvdXQiLCB2dGRfcWlfdGltZW91dCk7CiAKICNkZWZpbmUgSU9NTVVfUUlf VElNRU9VVCAodnRkX3FpX3RpbWVvdXQgKiBNSUxMSVNFQ1MoMSkpCiAKK3N0YXRpYyBpbnQgX19t dXN0X2NoZWNrIHF1ZXVlX2ludmFsaWRhdGVfd2FpdChzdHJ1Y3QgaW9tbXUgKmlvbW11LAorICAg IHU4IGlmbGFnLCB1OCBzdywgdTggZm4pOworc3RhdGljIGludCBpbnZhbGlkYXRlX3N5bmMoc3Ry dWN0IGlvbW11ICppb21tdSk7CisKIHN0YXRpYyB2b2lkIHByaW50X3FpX3JlZ3Moc3RydWN0IGlv bW11ICppb21tdSkKIHsKICAgICB1NjQgdmFsOwpAQCAtMTAyLDYgKzEwNiwxNSBAQCBzdGF0aWMg dm9pZCBxdWV1ZV9pbnZhbGlkYXRlX2NvbnRleHQoc3RydWN0IGlvbW11ICppb21tdSwKICAgICB1 bm1hcF92dGRfZG9tYWluX3BhZ2UocWludmFsX2VudHJpZXMpOwogfQogCitzdGF0aWMgaW50IHF1 ZXVlX2ludmFsaWRhdGVfY29udGV4dF9zeW5jKHN0cnVjdCBpb21tdSAqaW9tbXUsCisgICAgdTE2 IGRpZCwgdTE2IHNvdXJjZV9pZCwgdTggZnVuY3Rpb25fbWFzaywgdTggZ3JhbnUpCit7CisgICAg cXVldWVfaW52YWxpZGF0ZV9jb250ZXh0KGlvbW11LCBkaWQsIHNvdXJjZV9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25fbWFzaywgZ3JhbnUpOworCisgICAgcmV0dXJu IGludmFsaWRhdGVfc3luYyhpb21tdSk7Cit9CisKIHN0YXRpYyB2b2lkIHF1ZXVlX2ludmFsaWRh dGVfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwKICAgICB1OCBncmFudSwgdTggZHIsIHU4IGR3 LCB1MTYgZGlkLCB1OCBhbSwgdTggaWgsIHU2NCBhZGRyKQogewpAQCAtMTM1LDYgKzE0OCwxNCBA QCBzdGF0aWMgdm9pZCBxdWV1ZV9pbnZhbGlkYXRlX2lvdGxiKHN0cnVjdCBpb21tdSAqaW9tbXUs CiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdz KTsKIH0KIAorc3RhdGljIGludCBxdWV1ZV9pbnZhbGlkYXRlX2lvdGxiX3N5bmMoc3RydWN0IGlv bW11ICppb21tdSwKKyAgICB1OCBncmFudSwgdTggZHIsIHU4IGR3LCB1MTYgZGlkLCB1OCBhbSwg dTggaWgsIHU2NCBhZGRyKQoreworICAgIHF1ZXVlX2ludmFsaWRhdGVfaW90bGIoaW9tbXUsIGdy YW51LCBkciwgZHcsIGRpZCwgYW0sIGloLCBhZGRyKTsKKworICAgIHJldHVybiBpbnZhbGlkYXRl X3N5bmMoaW9tbXUpOworfQorCiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBxdWV1ZV9pbnZhbGlk YXRlX3dhaXQoc3RydWN0IGlvbW11ICppb21tdSwKICAgICB1OCBpZmxhZywgdTggc3csIHU4IGZu KQogewpAQCAtMjI5LDYgKzI1MCwxNCBAQCBpbnQgcWludmFsX2RldmljZV9pb3RsYihzdHJ1Y3Qg aW9tbXUgKmlvbW11LAogICAgIHJldHVybiAwOwogfQogCitpbnQgcWludmFsX2RldmljZV9pb3Rs Yl9zeW5jKHN0cnVjdCBpb21tdSAqaW9tbXUsCisgICAgdTMyIG1heF9pbnZzX3BlbmQsIHUxNiBz aWQsIHUxNiBzaXplLCB1NjQgYWRkcikKK3sKKyAgICBxaW52YWxfZGV2aWNlX2lvdGxiKGlvbW11 LCBtYXhfaW52c19wZW5kLCBzaWQsIHNpemUsIGFkZHIpOworCisgICAgcmV0dXJuIGludmFsaWRh dGVfc3luYyhpb21tdSk7Cit9CisKIHN0YXRpYyB2b2lkIHF1ZXVlX2ludmFsaWRhdGVfaWVjKHN0 cnVjdCBpb21tdSAqaW9tbXUsIHU4IGdyYW51LCB1OCBpbSwgdTE2IGlpZHgpCiB7CiAgICAgdW5z aWduZWQgbG9uZyBmbGFnczsKQEAgLTI1Niw3ICsyODUsNyBAQCBzdGF0aWMgdm9pZCBxdWV1ZV9p bnZhbGlkYXRlX2llYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1OCBncmFudSwgdTggaW0sIHUxNiBp aWR4KQogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5yZWdpc3Rlcl9sb2NrLCBm bGFncyk7CiB9CiAKLXN0YXRpYyBpbnQgX19pb21tdV9mbHVzaF9pZWMoc3RydWN0IGlvbW11ICpp b21tdSwgdTggZ3JhbnUsIHU4IGltLCB1MTYgaWlkeCkKK3N0YXRpYyBpbnQgcXVldWVfaW52YWxp ZGF0ZV9pZWNfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1OCBncmFudSwgdTggaW0sIHUxNiBp aWR4KQogewogICAgIGludCByZXQ7CiAKQEAgLTI3MywxMiArMzAyLDEyIEBAIHN0YXRpYyBpbnQg X19pb21tdV9mbHVzaF9pZWMoc3RydWN0IGlvbW11ICppb21tdSwgdTggZ3JhbnUsIHU4IGltLCB1 MTYgaWlkeCkKIAogaW50IGlvbW11X2ZsdXNoX2llY19nbG9iYWwoc3RydWN0IGlvbW11ICppb21t dSkKIHsKLSAgICByZXR1cm4gX19pb21tdV9mbHVzaF9pZWMoaW9tbXUsIElFQ19HTE9CQUxfSU5W TCwgMCwgMCk7CisgICAgcmV0dXJuIHF1ZXVlX2ludmFsaWRhdGVfaWVjX3N5bmMoaW9tbXUsIElF Q19HTE9CQUxfSU5WTCwgMCwgMCk7CiB9CiAKIGludCBpb21tdV9mbHVzaF9pZWNfaW5kZXgoc3Ry dWN0IGlvbW11ICppb21tdSwgdTggaW0sIHUxNiBpaWR4KQogewotICAgcmV0dXJuIF9faW9tbXVf Zmx1c2hfaWVjKGlvbW11LCBJRUNfSU5ERVhfSU5WTCwgaW0sIGlpZHgpOworICAgcmV0dXJuIHF1 ZXVlX2ludmFsaWRhdGVfaWVjX3N5bmMoaW9tbXUsIElFQ19JTkRFWF9JTlZMLCBpbSwgaWlkeCk7 CiB9CiAKIHN0YXRpYyBpbnQgZmx1c2hfY29udGV4dF9xaSgKQEAgLTMwNCwxMSArMzMzLDkgQEAg c3RhdGljIGludCBmbHVzaF9jb250ZXh0X3FpKAogICAgIH0KIAogICAgIGlmICggcWlfY3RybC0+ cWludmFsX21hZGRyICE9IDAgKQotICAgIHsKLSAgICAgICAgcXVldWVfaW52YWxpZGF0ZV9jb250 ZXh0KGlvbW11LCBkaWQsIHNpZCwgZm0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0eXBlID4+IERNQV9DQ01EX0lOVkxfR1JBTlVfT0ZGU0VUKTsKLSAgICAgICAgcmV0ID0gaW52 YWxpZGF0ZV9zeW5jKGlvbW11KTsKLSAgICB9CisgICAgICAgIHJldCA9IHF1ZXVlX2ludmFsaWRh dGVfY29udGV4dF9zeW5jKGlvbW11LCBkaWQsIHNpZCwgZm0sCisgICAgICAgICAgICAgICAgICB0 eXBlID4+IERNQV9DQ01EX0lOVkxfR1JBTlVfT0ZGU0VUKTsKKwogICAgIHJldHVybiByZXQ7CiB9 CiAKQEAgLTMzOCwyMyArMzY1LDI0IEBAIHN0YXRpYyBpbnQgZmx1c2hfaW90bGJfcWkoCiAKICAg ICBpZiAoIHFpX2N0cmwtPnFpbnZhbF9tYWRkciAhPSAwICkKICAgICB7Ci0gICAgICAgIGludCBy YzsKLQogICAgICAgICAvKiB1c2UgcXVldWVkIGludmFsaWRhdGlvbiAqLwogICAgICAgICBpZiAo Y2FwX3dyaXRlX2RyYWluKGlvbW11LT5jYXApKQogICAgICAgICAgICAgZHcgPSAxOwogICAgICAg ICBpZiAoY2FwX3JlYWRfZHJhaW4oaW9tbXUtPmNhcCkpCiAgICAgICAgICAgICBkciA9IDE7CiAg ICAgICAgIC8qIE5lZWQgdG8gY29uc2lkZSB0aGUgaWggYml0IGxhdGVyICovCi0gICAgICAgIHF1 ZXVlX2ludmFsaWRhdGVfaW90bGIoaW9tbXUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHlwZSA+PiBETUFfVExCX0ZMVVNIX0dSQU5VX09GRlNFVCwgZHIsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZHcsIGRpZCwgc2l6ZV9vcmRlciwgMCwgYWRkcik7CisgICAgICAg IHJldCA9IHF1ZXVlX2ludmFsaWRhdGVfaW90bGJfc3luYyhpb21tdSwKKyAgICAgICAgICAgICAg ICAgIHR5cGUgPj4gRE1BX1RMQl9GTFVTSF9HUkFOVV9PRkZTRVQsIGRyLCBkdywgZGlkLAorICAg ICAgICAgICAgICAgICAgc2l6ZV9vcmRlciwgMCwgYWRkcik7CisKKyAgICAgICAgLyogVE9ETzog VGltZW91dCBlcnJvciBoYW5kbGluZyB0byBiZSBhZGRlZCBsYXRlciAqLworICAgICAgICBpZiAo IHJldCApCisgICAgICAgICAgICByZXR1cm4gcmV0OworCiAgICAgICAgIGlmICggZmx1c2hfZGV2 X2lvdGxiICkKICAgICAgICAgICAgIHJldCA9IGRldl9pbnZhbGlkYXRlX2lvdGxiKGlvbW11LCBk aWQsIGFkZHIsIHNpemVfb3JkZXIsIHR5cGUpOwotICAgICAgICByYyA9IGludmFsaWRhdGVfc3lu Yyhpb21tdSk7Ci0gICAgICAgIGlmICggIXJldCApCi0gICAgICAgICAgICByZXQgPSByYzsKICAg ICB9CisKICAgICByZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQveDg2L2F0cy5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9h dHMuYwppbmRleCAzMzRiOWMxLi43YjFjMDdiIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQveDg2L2F0cy5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94 ODYvYXRzLmMKQEAgLTExOCw3ICsxMTgsNiBAQCBpbnQgZGV2X2ludmFsaWRhdGVfaW90bGIoc3Ry dWN0IGlvbW11ICppb21tdSwgdTE2IGRpZCwKICAgICB7CiAgICAgICAgIHUxNiBzaWQgPSBQQ0lf QkRGMihwZGV2LT5idXMsIHBkZXYtPmRldmZuKTsKICAgICAgICAgYm9vbF90IHNiaXQ7Ci0gICAg ICAgIGludCByYyA9IDA7CiAKICAgICAgICAgLyogT25seSBpbnZhbGlkYXRlIGRldmljZXMgdGhh dCBiZWxvbmcgdG8gdGhpcyBJT01NVSAqLwogICAgICAgICBpZiAoIHBkZXYtPmlvbW11ICE9IGlv bW11ICkKQEAgLTEzNCw4ICsxMzMsOCBAQCBpbnQgZGV2X2ludmFsaWRhdGVfaW90bGIoc3RydWN0 IGlvbW11ICppb21tdSwgdTE2IGRpZCwKICAgICAgICAgICAgIC8qIGludmFsaWRhdGUgYWxsIHRy YW5zbGF0aW9uczogc2JpdD0xLGJpdF82Mz0wLGJpdFs2MjoxMl09MSAqLwogICAgICAgICAgICAg c2JpdCA9IDE7CiAgICAgICAgICAgICBhZGRyID0gKH4wVUwgPDwgUEFHRV9TSElGVF80SykgJiAw eDdGRkZGRkZGRkZGRkZGRkY7Ci0gICAgICAgICAgICByYyA9IHFpbnZhbF9kZXZpY2VfaW90bGIo aW9tbXUsIHBkZXYtPmF0c19xdWV1ZV9kZXB0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaWQsIHNiaXQsIGFkZHIpOworICAgICAgICAgICAgcmV0ID0gcWludmFsX2Rl dmljZV9pb3RsYl9zeW5jKGlvbW11LCBwZGV2LT5hdHNfcXVldWVfZGVwdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkLCBzYml0LCBhZGRyKTsKICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIERNQV9UTEJfUFNJX0ZMVVNIOgogICAgICAgICAg ICAgaWYgKCAhZGV2aWNlX2luX2RvbWFpbihpb21tdSwgcGRldiwgZGlkKSApCkBAIC0xNTQsMTYg KzE1MywxMyBAQCBpbnQgZGV2X2ludmFsaWRhdGVfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwg dTE2IGRpZCwKICAgICAgICAgICAgICAgICBhZGRyIHw9ICgoKHU2NCkxIDw8IChzaXplX29yZGVy IC0gMSkpIC0gMSkgPDwgUEFHRV9TSElGVF80SzsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg ICAgcmMgPSBxaW52YWxfZGV2aWNlX2lvdGxiKGlvbW11LCBwZGV2LT5hdHNfcXVldWVfZGVwdGgs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkLCBzYml0LCBhZGRyKTsK KyAgICAgICAgICAgIHJldCA9IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhpb21tdSwgcGRldi0+ YXRzX3F1ZXVlX2RlcHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNpZCwgc2JpdCwgYWRkcik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVs dDoKICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYLCAiaW52YWxp ZCB2dC1kIGZsdXNoIHR5cGVcbiIpOwogICAgICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOwog ICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCAhcmV0ICkKLSAgICAgICAgICAgIHJldCA9IHJjOwog ICAgIH0KIAogICAgIHJldHVybiByZXQ7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==