From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH] amd-iommu: remove page merging code Date: Mon, 26 Nov 2018 17:30:45 +0000 Message-ID: <20181126173045.1274-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 1gRKik-0001l6-1m for xen-devel@lists.xenproject.org; Mon, 26 Nov 2018 17:30:54 +0000 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: Paul Durrant , Brian Woods , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org VGhlIHBhZ2UgbWVyZ2luZyBsb2dpYyBtYWtlcyB1c2Ugb2YgYml0cyAxLTggYW5kIGJpdCA2MyBv ZiBhIFBURSwgd2hpY2ggdXNlZAp0byBiZSBzcGVjaWZpZWQgYXMgaWdub3JlZC4gSG93ZXZlciwg Yml0cyA1IGFuZCA2IGFyZSBub3cgc3BlY2lmaWVkIGFzCidhY2Nlc3NlZCcgYW5kICdkaXJ0eScg Yml0cyBhbmQgdGhlaXIgdXNlIG9ubHkgcmVtYWlucyBzYWZlIGFzIGxvbmcgYXMKdGhlIERURSAn SG9zdCBBY2Nlc3MgRGlydHknIGJpdHMgcmVtYWluIGNsZWFyLiBUaGUgY29kZSBpcyBhbHNvIG9m IGR1YmlvdXMKYmVuZWZpdCBhbmQgd2FzIHRoZSBzdWJqZWN0IFhTQS0yNzUuCgpUaGlzIHBhdGNo IHJlbW92ZXMgdGhlIGNvZGUsIGZyZWVpbmcgdXAgdGhlIHJlbWFpbmluZyBQVEUgJ2lnbm9yZWQn IGJpdHMKZm9yIG90aGVyIHBvdGVudGlhbCB1c2UgYW5kIHNob3J0ZW5pbmcgdGhlIHNvdXJjZSBi eSAxNzAgbGluZXMuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBj aXRyaXguY29tPgotLS0KQ2M6IFN1cmF2ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRoaWt1 bHBhbml0QGFtZC5jb20+CkNjOiBCcmlhbiBXb29kcyA8YnJpYW4ud29vZHNAYW1kLmNvbT4KLS0t CiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMgfCAxNzIgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MTcxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9pb21tdV9tYXAuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYwpp bmRleCAwYWMzZjQ3M2IzLi5jNGRiZDk2MjI3IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L2lvbW11X21hcC5jCkBAIC0zMjMsMTM0ICszMjMsNiBAQCB1aW50NjRfdCBhbWRfaW9tbXVfZ2V0 X2FkZHJlc3NfZnJvbV9wdGUodm9pZCAqcHRlKQogICAgIHJldHVybiBwdHI7CiB9CiAKLS8qIEZv ciBlYWNoIHBkZSwgV2UgdXNlIGlnbm9yZWQgYml0cyAoYml0IDEgLSBiaXQgOCBhbmQgYml0IDYz KQotICogdG8gc2F2ZSBwZGUgY291bnQsIHBkZSBjb3VudCA9IDUxMSBpcyBhIGNhbmRpZGF0ZSBv ZiBwYWdlIGNvYWxlc2NpbmcuCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQgZ2V0X3BkZV9jb3Vu dCh1aW50NjRfdCBwZGUpCi17Ci0gICAgdW5zaWduZWQgaW50IGNvdW50OwotICAgIHVpbnQ2NF90 IHVwcGVyX21hc2sgPSAxVUxMIDw8IDYzIDsKLSAgICB1aW50NjRfdCBsb3dlcl9tYXNrID0gMHhG RiA8PCAxOwotCi0gICAgY291bnQgPSAoKHBkZSAmIHVwcGVyX21hc2spID4+IDU1KSB8ICgocGRl ICYgbG93ZXJfbWFzaykgPj4gMSk7Ci0gICAgcmV0dXJuIGNvdW50OwotfQotCi0vKiBDb252ZXJ0 IHBkZSBjb3VudCBpbnRvIGlvbW11IHB0ZSBpZ25vcmVkIGJpdHMgKi8KLXN0YXRpYyB2b2lkIHNl dF9wZGVfY291bnQodWludDY0X3QgKnBkZSwgdW5zaWduZWQgaW50IGNvdW50KQotewotICAgIHVp bnQ2NF90IHVwcGVyX21hc2sgPSAxVUxMIDw8IDggOwotICAgIHVpbnQ2NF90IGxvd2VyX21hc2sg PSAweEZGOwotICAgIHVpbnQ2NF90IHB0ZV9tYXNrID0gKH4oMVVMTCA8PCA2MykpICYgKH4oMHhG RiA8PCAxKSk7Ci0KLSAgICAqcGRlICY9IHB0ZV9tYXNrOwotICAgICpwZGUgfD0gKChjb3VudCAm IHVwcGVyX21hc2sgKSA8PCA1NSkgfCAoKGNvdW50ICYgbG93ZXJfbWFzayApIDw8IDEpOwotfQot Ci0vKiBSZXR1cm4gMSwgaWYgcGFnZXMgYXJlIHN1aXRhYmxlIGZvciBtZXJnaW5nIGF0IG1lcmdl X2xldmVsLgotICogb3RoZXJ3aXNlIGluY3JlYXNlIHBkZSBjb3VudCBpZiBtZm4gaXMgY29udGln b3VzIHdpdGggbWZuIC0gMQotICovCi1zdGF0aWMgYm9vbCBpb21tdV91cGRhdGVfcGRlX2NvdW50 KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgcHRfbWZuLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGRmbiwgdW5zaWduZWQgbG9uZyBtZm4s Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtZXJnZV9s ZXZlbCkKLXsKLSAgICB1bnNpZ25lZCBpbnQgcGRlX2NvdW50LCBuZXh0X2xldmVsOwotICAgIHVu c2lnbmVkIGxvbmcgZmlyc3RfbWZuOwotICAgIHVpbnQ2NF90ICp0YWJsZSwgKnBkZSwgKm50YWJs ZTsKLSAgICB1aW50NjRfdCBudGFibGVfbWFkZHIsIG1hc2s7Ci0gICAgc3RydWN0IGRvbWFpbl9p b21tdSAqaGQgPSBkb21faW9tbXUoZCk7Ci0gICAgYm9vbCBvayA9IGZhbHNlOwotCi0gICAgQVNT RVJUKCBzcGluX2lzX2xvY2tlZCgmaGQtPmFyY2gubWFwcGluZ19sb2NrKSAmJiBwdF9tZm4gKTsK LQotICAgIG5leHRfbGV2ZWwgPSBtZXJnZV9sZXZlbCAtIDE7Ci0KLSAgICAvKiBnZXQgcGRlIGF0 IG1lcmdlIGxldmVsICovCi0gICAgdGFibGUgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihwdF9tZm4p KTsKLSAgICBwZGUgPSB0YWJsZSArIHBmbl90b19wZGVfaWR4KGRmbiwgbWVyZ2VfbGV2ZWwpOwot Ci0gICAgLyogZ2V0IHBhZ2UgdGFibGUgb2YgbmV4dCBsZXZlbCAqLwotICAgIG50YWJsZV9tYWRk ciA9IGFtZF9pb21tdV9nZXRfYWRkcmVzc19mcm9tX3B0ZShwZGUpOwotICAgIG50YWJsZSA9IG1h cF9kb21haW5fcGFnZShfbWZuKHBhZGRyX3RvX3BmbihudGFibGVfbWFkZHIpKSk7Ci0KLSAgICAv KiBnZXQgdGhlIGZpcnN0IG1mbiBvZiBuZXh0IGxldmVsICovCi0gICAgZmlyc3RfbWZuID0gYW1k X2lvbW11X2dldF9hZGRyZXNzX2Zyb21fcHRlKG50YWJsZSkgPj4gUEFHRV9TSElGVDsKLQotICAg IGlmICggZmlyc3RfbWZuID09IDAgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIG1hc2sgPSAo MVVMTDw8IChQVEVfUEVSX1RBQkxFX1NISUZUICogbmV4dF9sZXZlbCkpIC0gMTsKLQotICAgIGlm ICggKChmaXJzdF9tZm4gJiBtYXNrKSA9PSAwKSAmJgotICAgICAgICAgKCgoZGZuICYgbWFzaykg fCBmaXJzdF9tZm4pID09IG1mbikgKQotICAgIHsKLSAgICAgICAgcGRlX2NvdW50ID0gZ2V0X3Bk ZV9jb3VudCgqcGRlKTsKLQotICAgICAgICBpZiAoIHBkZV9jb3VudCA9PSAoUFRFX1BFUl9UQUJM RV9TSVpFIC0gMSkgKQotICAgICAgICAgICAgb2sgPSB0cnVlOwotICAgICAgICBlbHNlIGlmICgg cGRlX2NvdW50IDwgKFBURV9QRVJfVEFCTEVfU0laRSAtIDEpKQotICAgICAgICB7Ci0gICAgICAg ICAgICBwZGVfY291bnQrKzsKLSAgICAgICAgICAgIHNldF9wZGVfY291bnQocGRlLCBwZGVfY291 bnQpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZWxzZQotICAgICAgICAvKiBub24tY29udGln dW91cyBtYXBwaW5nICovCi0gICAgICAgIHNldF9wZGVfY291bnQocGRlLCAwKTsKLQotb3V0Ogot ICAgIHVubWFwX2RvbWFpbl9wYWdlKG50YWJsZSk7Ci0gICAgdW5tYXBfZG9tYWluX3BhZ2UodGFi bGUpOwotCi0gICAgcmV0dXJuIG9rOwotfQotCi1zdGF0aWMgaW50IGlvbW11X21lcmdlX3BhZ2Vz KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgcHRfbWZuLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGRmbiwgdW5zaWduZWQgaW50IGZsYWdzLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbWVyZ2VfbGV2ZWwpCi17Ci0g ICAgdWludDY0X3QgKnRhYmxlLCAqcGRlLCAqbnRhYmxlOwotICAgIHVpbnQ2NF90IG50YWJsZV9t Zm47Ci0gICAgdW5zaWduZWQgbG9uZyBmaXJzdF9tZm47Ci0gICAgc3RydWN0IGRvbWFpbl9pb21t dSAqaGQgPSBkb21faW9tbXUoZCk7Ci0KLSAgICBBU1NFUlQoIHNwaW5faXNfbG9ja2VkKCZoZC0+ YXJjaC5tYXBwaW5nX2xvY2spICYmIHB0X21mbiApOwotCi0gICAgdGFibGUgPSBtYXBfZG9tYWlu X3BhZ2UoX21mbihwdF9tZm4pKTsKLSAgICBwZGUgPSB0YWJsZSArIHBmbl90b19wZGVfaWR4KGRm biwgbWVyZ2VfbGV2ZWwpOwotCi0gICAgLyogZ2V0IGZpcnN0IG1mbiAqLwotICAgIG50YWJsZV9t Zm4gPSBhbWRfaW9tbXVfZ2V0X2FkZHJlc3NfZnJvbV9wdGUocGRlKSA+PiBQQUdFX1NISUZUOwot Ci0gICAgaWYgKCBudGFibGVfbWZuID09IDAgKQotICAgIHsKLSAgICAgICAgdW5tYXBfZG9tYWlu X3BhZ2UodGFibGUpOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBudGFibGUgPSBt YXBfZG9tYWluX3BhZ2UoX21mbihudGFibGVfbWZuKSk7Ci0gICAgZmlyc3RfbWZuID0gYW1kX2lv bW11X2dldF9hZGRyZXNzX2Zyb21fcHRlKG50YWJsZSkgPj4gUEFHRV9TSElGVDsKLQotICAgIGlm ICggZmlyc3RfbWZuID09IDAgKQotICAgIHsKLSAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobnRh YmxlKTsKLSAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UodGFibGUpOwotICAgICAgICByZXR1cm4g MTsKLSAgICB9Ci0KLSAgICAvKiBzZXR1cCBzdXBlciBwYWdlIG1hcHBpbmcsIG5leHQgbGV2ZWwg PSAwICovCi0gICAgc2V0X2lvbW11X3BkZV9wcmVzZW50KCh1aW50MzJfdCAqKXBkZSwgZmlyc3Rf bWZuLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAhIShmbGFncyAmIElPTU1VRl93cml0 YWJsZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICEhKGZsYWdzICYgSU9NTVVGX3JlYWRh YmxlKSk7Ci0KLSAgICBhbWRfaW9tbXVfZmx1c2hfYWxsX3BhZ2VzKGQpOwotCi0gICAgdW5tYXBf ZG9tYWluX3BhZ2UobnRhYmxlKTsKLSAgICB1bm1hcF9kb21haW5fcGFnZSh0YWJsZSk7Ci0gICAg cmV0dXJuIDA7Ci19Ci0KIC8qIFdhbGsgaW8gcGFnZSB0YWJsZXMgYW5kIGJ1aWxkIGxldmVsIHBh Z2UgdGFibGVzIGlmIG5lY2Vzc2FyeQogICoge1JlLCB1bn1tYXBwaW5nIHN1cGVyIHBhZ2UgZnJh bWVzIGNhdXNlcyByZS1hbGxvY2F0aW9uIG9mIGlvCiAgKiBwYWdlIHRhYmxlcy4KQEAgLTY1Niw3 ICs1MjgsNiBAQCBpbnQgYW1kX2lvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90 IGRmbiwgbWZuX3QgbWZuLAogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11 KGQpOwogICAgIGludCByYzsKICAgICB1bnNpZ25lZCBsb25nIHB0X21mbls3XTsKLSAgICB1bnNp Z25lZCBpbnQgbWVyZ2VfbGV2ZWw7CiAKICAgICBpZiAoIGlvbW11X3VzZV9oYXBfcHQoZCkgKQog ICAgICAgICByZXR1cm4gMDsKQEAgLTY5OCw1NSArNTY5LDE0IEBAIGludCBhbWRfaW9tbXVfbWFw X3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCBtZm4sCiAgICAgICAgIHJl dHVybiAtRUZBVUxUOwogICAgIH0KIAotICAgIC8qIEluc3RhbGwgNGsgbWFwcGluZyBmaXJzdCAq LworICAgIC8qIEluc3RhbGwgNGsgbWFwcGluZyAqLwogICAgIG5lZWRfZmx1c2ggPSBzZXRfaW9t bXVfcHRlX3ByZXNlbnQocHRfbWZuWzFdLCBkZm5feChkZm4pLCBtZm5feChtZm4pLCAxLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgISEoZmxhZ3MgJiBJT01NVUZfd3Jp dGFibGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgISEoZmxhZ3Mg JiBJT01NVUZfcmVhZGFibGUpKTsKIAogICAgIGlmICggbmVlZF9mbHVzaCApCi0gICAgewogICAg ICAgICBhbWRfaW9tbXVfZmx1c2hfcGFnZXMoZCwgZGZuX3goZGZuKSwgMCk7Ci0gICAgICAgIC8q IE5vIGZ1cnRoZXIgbWVyZ2luZywgYXMgdGhlIGxvZ2ljIGRvZXNuJ3QgY29wZS4gKi8KLSAgICAg ICAgaGQtPmFyY2gubm9fbWVyZ2UgPSB0cnVlOwotICAgIH0KLQotICAgIC8qCi0gICAgICogU3Vw cHJlc3MgbWVyZ2luZyBvZiBub24tUi9XIG1hcHBpbmdzIG9yIGFmdGVyIGluaXRpYWwgdGFibGUg Y3JlYXRpb24sCi0gICAgICogYXMgdGhlIG1lcmdlIGxvZ2ljIGRvZXMgbm90IGNvcGUgd2l0aCB0 aGlzLgotICAgICAqLwotICAgIGlmICggaGQtPmFyY2gubm9fbWVyZ2UgfHwgZmxhZ3MgIT0gKElP TU1VRl93cml0YWJsZSB8IElPTU1VRl9yZWFkYWJsZSkgKQotICAgICAgICBnb3RvIG91dDsKLSAg ICBpZiAoIGQtPmNyZWF0aW9uX2ZpbmlzaGVkICkKLSAgICB7Ci0gICAgICAgIGhkLT5hcmNoLm5v X21lcmdlID0gdHJ1ZTsKLSAgICAgICAgZ290byBvdXQ7Ci0gICAgfQotCi0gICAgZm9yICggbWVy Z2VfbGV2ZWwgPSAyOyBtZXJnZV9sZXZlbCA8PSBoZC0+YXJjaC5wYWdpbmdfbW9kZTsKLSAgICAg ICAgICBtZXJnZV9sZXZlbCsrICkKLSAgICB7Ci0gICAgICAgIGlmICggcHRfbWZuW21lcmdlX2xl dmVsXSA9PSAwICkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBpZiAoICFpb21tdV91cGRh dGVfcGRlX2NvdW50KGQsIHB0X21mblttZXJnZV9sZXZlbF0sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGZuX3goZGZuKSwgbWZuX3gobWZuKSwgbWVyZ2VfbGV2ZWwpICkK LSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGlmICggaW9tbXVfbWVyZ2VfcGFnZXMoZCwg cHRfbWZuW21lcmdlX2xldmVsXSwgZGZuX3goZGZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmbGFncywgbWVyZ2VfbGV2ZWwpICkKLSAgICAgICAgewotICAgICAgICAgICAgc3Bp bl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7Ci0gICAgICAgICAgICBBTURfSU9NTVVf REVCVUcoIk1lcmdlIGlvbW11IHBhZ2UgZmFpbGVkIGF0IGxldmVsICVkLCAiCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgImRmbiA9ICUiUFJJX2RmbiIgbWZuID0gJSJQUklfbWZuIlxuIiwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZV9sZXZlbCwgZGZuX3goZGZuKSwgbWZu X3gobWZuKSk7Ci0gICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7Ci0gICAgICAgICAgICByZXR1 cm4gLUVGQVVMVDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIERlYWxsb2NhdGUgbG93ZXIgbGV2 ZWwgcGFnZSB0YWJsZSAqLwotICAgICAgICBmcmVlX2FtZF9pb21tdV9wZ3RhYmxlKG1mbl90b19w YWdlKF9tZm4ocHRfbWZuW21lcmdlX2xldmVsIC0gMV0pKSk7Ci0gICAgfQogCi1vdXQ6CiAgICAg c3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAgICAgcmV0dXJuIDA7CiB9Ci0t IAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs