From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Tyshchenko Subject: [RFC PATCH 2/9] iommu: Add ability to map/unmap the number of pages Date: Wed, 15 Mar 2017 22:05:22 +0200 Message-ID: <1489608329-7275-3-git-send-email-olekstysh@gmail.com> References: <1489608329-7275-1-git-send-email-olekstysh@gmail.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 1coFBB-0008U7-T3 for xen-devel@lists.xenproject.org; Wed, 15 Mar 2017 20:05:53 +0000 Received: by mail-wm0-f68.google.com with SMTP id z63so6451603wmg.2 for ; Wed, 15 Mar 2017 13:05:52 -0700 (PDT) In-Reply-To: <1489608329-7275-1-git-send-email-olekstysh@gmail.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: sstabellini@kernel.org, vlad.babchuk@gmail.com, al1img@gmail.com, andrii.anisov@gmail.com, olekstysh@gmail.com, andr2000@gmail.com, julien.grall@arm.com, JBeulich@suse.com, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29t PgoKRXh0ZW5kIHRoZSBJT01NVSBjb2RlIHdpdGggbmV3IEFQSXMgYW5kIHBsYXRmb3JtIGNhbGxi YWNrcy4KVGhlc2UgbmV3IG1hcF9wYWdlcy91bm1hcF9wYWdlcyBBUEkgZG8gYWxtb3N0IHRoZSBz YW1lIHRoaW5nCmFzIGV4aXN0aW5nIG1hcF9wYWdlL3VubWFwX3BhZ2Ugb25lcyBleGNlcHQgdGhl IGZvcm1lcnMgY2FuCmhhbmRsZSB0aGUgbnVtYmVyIG9mIHBhZ2VzLiBTbyBkbyBuZXcgcGxhdGZv cm0gY2FsbGJhY2tzLgoKQ3VycmVudGx5LCB0aGlzIHBhdGNoIHJlcXVpcmVzIHRvIG1vZGlmeSBu ZWl0aGVyCmV4aXN0aW5nIElPTU1VIGRyaXZlcnMgbm9yIFAyTSBjb2RlLgpCdXQsIHRoZSBwYXRj aCBtaWdodCBiZSByZXdyaXR0ZW4gdG8gcmVwbGFjZSBleGlzdGluZwpzaW5nbGUtcGFnZSBzdHVm ZiB3aXRoIHRoZSBtdWx0aS1wYWdlIG9uZSBmb2xsb3dlZCBieSBtb2RpZmljYXRpb25zCm9mIGFs bCByZWxhdGVkIHBhcnRzLgoKU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9s ZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29tPgotLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2lvbW11LmMgfCA1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQog eGVuL2luY2x1ZGUveGVuL2lvbW11LmggICAgICAgICB8IDE2ICsrKysrKysrKystLS0KIDIgZmls ZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2lvbW11LmMKaW5kZXggNWU4MTgxMy4uMTE1Njk4ZiAxMDA2NDQKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21t dS5jCkBAIC0yNDksMjIgKzI0OSwzNyBAQCB2b2lkIGlvbW11X2RvbWFpbl9kZXN0cm95KHN0cnVj dCBkb21haW4gKmQpCiAgICAgYXJjaF9pb21tdV9kb21haW5fZGVzdHJveShkKTsKIH0KIAotaW50 IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNp Z25lZCBsb25nIG1mbiwKLSAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCitp bnQgaW9tbXVfbWFwX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1 bnNpZ25lZCBsb25nIG1mbiwKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBwYWdl X2NvdW50LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAgICAgY29uc3Qgc3RydWN0IGRvbWFpbl9p b21tdSAqaGQgPSBkb21faW9tbXUoZCk7Ci0gICAgaW50IHJjOworICAgIGludCByYyA9IDA7Cisg ICAgdW5zaWduZWQgbG9uZyBpOwogCiAgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBs YXRmb3JtX29wcyApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmMgPSBoZC0+cGxhdGZvcm1f b3BzLT5tYXBfcGFnZShkLCBnZm4sIG1mbiwgZmxhZ3MpOworICAgIGlmICggaGQtPnBsYXRmb3Jt X29wcy0+bWFwX3BhZ2VzICkKKyAgICAgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFn ZXMoZCwgZ2ZuLCBtZm4sIHBhZ2VfY291bnQsIGZsYWdzKTsKKyAgICBlbHNlCisgICAgeworICAg ICAgICBmb3IgKCBpID0gMDsgaSA8IHBhZ2VfY291bnQ7IGkrKyApCisgICAgICAgIHsKKyAgICAg ICAgICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+bWFwX3BhZ2UoZCwgZ2ZuICsgaSwgbWZuICsg aSwgZmxhZ3MpOworICAgICAgICAgICAgaWYgKCB1bmxpa2VseShyYykgKQorICAgICAgICAgICAg eworICAgICAgICAgICAgICAgIC8qIFRPRE8gRG8gd2UgbmVlZCB0byB1bm1hcCBpZiBtYXAgZmFp bGVkPyAqLworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9 CisgICAgfQorCiAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAgICAgaWYgKCAh ZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAgICAgICAgICAg cHJpbnRrKFhFTkxPR19FUlIKLSAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSBtYXBwaW5n IGdmbiAlI2x4IHRvIG1mbiAlI2x4IGZhaWxlZDogJWRcbiIsCi0gICAgICAgICAgICAgICAgICAg ZC0+ZG9tYWluX2lkLCBnZm4sIG1mbiwgcmMpOworICAgICAgICAgICAgICAgICAgICJkJWQ6IElP TU1VIG1hcHBpbmcgZ2ZuICUjbHggdG8gbWZuICUjbHggcGFnZSBjb3VudCAlbHUgZmFpbGVkOiAl ZFxuIiwKKyAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGdmbiwgbWZuLCBwYWdlX2Nv dW50LCByYyk7CiAKICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKICAgICAg ICAgICAgIGRvbWFpbl9jcmFzaChkKTsKQEAgLTI3MywyMSArMjg4LDM0IEBAIGludCBpb21tdV9t YXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwgdW5zaWduZWQgbG9u ZyBtZm4sCiAgICAgcmV0dXJuIHJjOwogfQogCi1pbnQgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbikKK2ludCBpb21tdV91bm1hcF9wYWdlcyhzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIHBhZ2VfY291bnQpCiB7CiAgICAgY29uc3Qgc3RydWN0IGRvbWFpbl9pb21t dSAqaGQgPSBkb21faW9tbXUoZCk7Ci0gICAgaW50IHJjOworICAgIGludCByZXQsIHJjID0gMDsK KyAgICB1bnNpZ25lZCBsb25nIGk7CiAKICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+ cGxhdGZvcm1fb3BzICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9y bV9vcHMtPnVubWFwX3BhZ2UoZCwgZ2ZuKTsKKyAgICBpZiAoIGhkLT5wbGF0Zm9ybV9vcHMtPnVu bWFwX3BhZ2VzICkKKyAgICAgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT51bm1hcF9wYWdlcyhk LCBnZm4sIHBhZ2VfY291bnQpOworICAgIGVsc2UKKyAgICB7CisgICAgICAgIGZvciAoIGkgPSAw OyBpIDwgcGFnZV9jb3VudDsgaSsrICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0ID0gaGQt PnBsYXRmb3JtX29wcy0+dW5tYXBfcGFnZShkLCBnZm4gKyBpKTsKKyAgICAgICAgICAgIGlmICgg bGlrZWx5KCFyYykgKQorICAgICAgICAgICAgICAgIHJjID0gcmV0OworICAgICAgICB9CisgICAg fQorCiAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+aXNf c2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJpbnRr KFhFTkxPR19FUlIKLSAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSB1bm1hcHBpbmcgZ2Zu ICUjbHggZmFpbGVkOiAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGdm biwgcmMpOworICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIHVubWFwcGluZyBnZm4gJSNs eCBwYWdlIGNvdW50ICVsdSBmYWlsZWQ6ICVkXG4iLAorICAgICAgICAgICAgICAgICAgIGQtPmRv bWFpbl9pZCwgZ2ZuLCBwYWdlX2NvdW50LCByYyk7CiAKICAgICAgICAgaWYgKCAhaXNfaGFyZHdh cmVfZG9tYWluKGQpICkKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKaW5kZXgg NTgwM2UzZi4uMDQ0NmVkMyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKKysr IGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKQEAgLTc2LDkgKzc2LDE0IEBAIHZvaWQgaW9tbXVf dGVhcmRvd24oc3RydWN0IGRvbWFpbiAqZCk7CiAjZGVmaW5lIElPTU1VRl9yZWFkYWJsZSAgKDF1 PDxfSU9NTVVGX3JlYWRhYmxlKQogI2RlZmluZSBfSU9NTVVGX3dyaXRhYmxlIDEKICNkZWZpbmUg SU9NTVVGX3dyaXRhYmxlICAoMXU8PF9JT01NVUZfd3JpdGFibGUpCi1pbnQgX19tdXN0X2NoZWNr IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQg aW50IGZsYWdzKTsKLWludCBfX211c3RfY2hlY2sgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBsb25nIGdmbik7CitpbnQgX19tdXN0X2NoZWNrIGlvbW11X21hcF9w YWdlcyhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBsb25nIHBhZ2Vf Y291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxh Z3MpOworaW50IF9fbXVzdF9jaGVjayBpb21tdV91bm1hcF9wYWdlcyhzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgbG9uZyBwYWdlX2NvdW50KTsKKworI2RlZmluZSBpb21tdV9tYXBfcGFnZShkLGdm bixtZm4sZmxhZ3MpIChpb21tdV9tYXBfcGFnZXMoZCxnZm4sbWZuLDEsZmxhZ3MpKQorI2RlZmlu ZSBpb21tdV91bm1hcF9wYWdlKGQsZ2ZuKSAgICAgICAgIChpb21tdV91bm1hcF9wYWdlcyhkLGdm biwxKSkKIAogZW51bSBpb21tdV9mZWF0dXJlCiB7CkBAIC0xNzAsNyArMTc1LDEyIEBAIHN0cnVj dCBpb21tdV9vcHMgewogICAgIHZvaWQgKCp0ZWFyZG93bikoc3RydWN0IGRvbWFpbiAqZCk7CiAg ICAgaW50IF9fbXVzdF9jaGVjayAoKm1hcF9wYWdlKShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l ZCBsb25nIGdmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgbWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOworICAgIGludCBfX211c3RfY2hlY2sgKCptYXBf cGFnZXMpKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBsb25nIHBh Z2VfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IGZsYWdzKTsKICAgICBpbnQgX19tdXN0X2NoZWNrICgqdW5tYXBfcGFnZSkoc3RydWN0IGRvbWFp biAqZCwgdW5zaWduZWQgbG9uZyBnZm4pOworICAgIGludCBfX211c3RfY2hlY2sgKCp1bm1hcF9w YWdlcykoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBhZ2VfY291bnQpOwogICAgIHZv aWQgKCpmcmVlX3BhZ2VfdGFibGUpKHN0cnVjdCBwYWdlX2luZm8gKik7CiAjaWZkZWYgQ09ORklH X1g4NgogICAgIHZvaWQgKCp1cGRhdGVfaXJlX2Zyb21fYXBpYykodW5zaWduZWQgaW50IGFwaWMs IHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSk7Ci0tIAoyLjcuNAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=