From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Gunthorpe Subject: [PATCH v3 14/14] xen/gntdev: use mmu_interval_notifier_insert Date: Tue, 12 Nov 2019 16:22:31 -0400 Message-ID: <20191112202231.3856-15-jgg@ziepe.ca> References: <20191112202231.3856-1-jgg@ziepe.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191112202231.3856-1-jgg@ziepe.ca> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: linux-mm@kvack.org, Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling@amd.com Cc: Juergen Gross , David Zhou , Mike Marciniszyn , Stefano Stabellini , Oleksandr Andrushchenko , linux-rdma@vger.kernel.org, nouveau@lists.freedesktop.org, Dennis Dalessandro , amd-gfx@lists.freedesktop.org, Christoph Hellwig , Jason Gunthorpe , dri-devel@lists.freedesktop.org, Alex Deucher , xen-devel@lists.xenproject.org, Boris Ostrovsky , Petr Cvek , =?UTF-8?q?Christian=20K=C3=B6nig?= , Ben Skeggs List-Id: amd-gfx.lists.freedesktop.org RnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgoKZ250ZGV2IHNpbXBseSB3 YW50cyB0byBtb25pdG9yIGEgc3BlY2lmaWMgVk1BIGZvciBhbnkgbm90aWZpZXIgZXZlbnRzLAp0 aGlzIGNhbiBiZSBkb25lIHN0cmFpZ2h0Zm9yd2FyZGx5IHVzaW5nIG1tdV9pbnRlcnZhbF9ub3Rp Zmllcl9pbnNlcnQoKQpvdmVyIHRoZSBWTUEncyBWQSByYW5nZS4KClRoZSBub3RpZmllciBzaG91 bGQgYmUgYXR0YWNoZWQgdW50aWwgdGhlIG9yaWdpbmFsIFZNQSBpcyBkZXN0cm95ZWQuCgpJdCBp cyB1bmNsZWFyIGlmIGFueSBvZiB0aGlzIGlzIGV2ZW4gc2FuZSwgYnV0IGF0IGxlYXN0IGEgbG90 IG9mIGR1cGxpY2F0ZQpjb2RlIGlzIHJlbW92ZWQuCgpSZXZpZXdlZC1ieTogQm9yaXMgT3N0cm92 c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFzb24gR3Vu dGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMveGVuL2dudGRldi1jb21tb24u aCB8ICAgOCArLQogZHJpdmVycy94ZW4vZ250ZGV2LmMgICAgICAgIHwgMTc5ICsrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25z KCspLCAxMzggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vZ250ZGV2LWNv bW1vbi5oIGIvZHJpdmVycy94ZW4vZ250ZGV2LWNvbW1vbi5oCmluZGV4IDJmOGI5NDljM2VlYjE0 Li45MWU0NGMwNGY3ODc2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vZ250ZGV2LWNvbW1vbi5o CisrKyBiL2RyaXZlcnMveGVuL2dudGRldi1jb21tb24uaApAQCAtMjEsMTUgKzIxLDggQEAgc3Ry dWN0IGdudGRldl9kbWFidWZfcHJpdjsKIHN0cnVjdCBnbnRkZXZfcHJpdiB7CiAJLyogTWFwcyB3 aXRoIHZpc2libGUgb2Zmc2V0cyBpbiB0aGUgZmlsZSBkZXNjcmlwdG9yLiAqLwogCXN0cnVjdCBs aXN0X2hlYWQgbWFwczsKLQkvKgotCSAqIE1hcHMgdGhhdCBhcmUgbm90IHZpc2libGU7IHdpbGwg YmUgZnJlZWQgb24gbXVubWFwLgotCSAqIE9ubHkgcG9wdWxhdGVkIGlmIHBvcHVsYXRlX2ZyZWVh YmxlX21hcHMgPT0gMQotCSAqLwotCXN0cnVjdCBsaXN0X2hlYWQgZnJlZWFibGVfbWFwczsKIAkv KiBsb2NrIHByb3RlY3RzIG1hcHMgYW5kIGZyZWVhYmxlX21hcHMuICovCiAJc3RydWN0IG11dGV4 IGxvY2s7Ci0Jc3RydWN0IG1tX3N0cnVjdCAqbW07Ci0Jc3RydWN0IG1tdV9ub3RpZmllciBtbjsK IAogI2lmZGVmIENPTkZJR19YRU5fR1JBTlRfRE1BX0FMTE9DCiAJLyogRGV2aWNlIGZvciB3aGlj aCBETUEgbWVtb3J5IGlzIGFsbG9jYXRlZC4gKi8KQEAgLTQ5LDYgKzQyLDcgQEAgc3RydWN0IGdu dGRldl91bm1hcF9ub3RpZnkgewogfTsKIAogc3RydWN0IGdudGRldl9ncmFudF9tYXAgeworCXN0 cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZpZXIgbm90aWZpZXI7CiAJc3RydWN0IGxpc3RfaGVhZCBu ZXh0OwogCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOwogCWludCBpbmRleDsKZGlmZiAtLWdp dCBhL2RyaXZlcnMveGVuL2dudGRldi5jIGIvZHJpdmVycy94ZW4vZ250ZGV2LmMKaW5kZXggODE0 MDFmMzg2YzljZTAuLmEwNGRkZjJhNjhhZmE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9nbnRk ZXYuYworKysgYi9kcml2ZXJzL3hlbi9nbnRkZXYuYwpAQCAtNjMsNyArNjMsNiBAQCBNT0RVTEVf UEFSTV9ERVNDKGxpbWl0LCAiTWF4aW11bSBudW1iZXIgb2YgZ3JhbnRzIHRoYXQgbWF5IGJlIG1h cHBlZCBieSAiCiBzdGF0aWMgYXRvbWljX3QgcGFnZXNfbWFwcGVkID0gQVRPTUlDX0lOSVQoMCk7 CiAKIHN0YXRpYyBpbnQgdXNlX3B0ZW1vZDsKLSNkZWZpbmUgcG9wdWxhdGVfZnJlZWFibGVfbWFw cyB1c2VfcHRlbW9kCiAKIHN0YXRpYyBpbnQgdW5tYXBfZ3JhbnRfcGFnZXMoc3RydWN0IGdudGRl dl9ncmFudF9tYXAgKm1hcCwKIAkJCSAgICAgaW50IG9mZnNldCwgaW50IHBhZ2VzKTsKQEAgLTI0 OSwxMiArMjQ4LDYgQEAgdm9pZCBnbnRkZXZfcHV0X21hcChzdHJ1Y3QgZ250ZGV2X3ByaXYgKnBy aXYsIHN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXApCiAJCWV2dGNobl9wdXQobWFwLT5ub3Rp ZnkuZXZlbnQpOwogCX0KIAotCWlmIChwb3B1bGF0ZV9mcmVlYWJsZV9tYXBzICYmIHByaXYpIHsK LQkJbXV0ZXhfbG9jaygmcHJpdi0+bG9jayk7Ci0JCWxpc3RfZGVsKCZtYXAtPm5leHQpOwotCQlt dXRleF91bmxvY2soJnByaXYtPmxvY2spOwotCX0KLQogCWlmIChtYXAtPnBhZ2VzICYmICF1c2Vf cHRlbW9kKQogCQl1bm1hcF9ncmFudF9wYWdlcyhtYXAsIDAsIG1hcC0+Y291bnQpOwogCWdudGRl dl9mcmVlX21hcChtYXApOwpAQCAtNDQ0LDE2ICs0MzcsOSBAQCBzdGF0aWMgdm9pZCBnbnRkZXZf dm1hX2Nsb3NlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogCiAJcHJfZGVidWcoImdudGRl dl92bWFfY2xvc2UgJXBcbiIsIHZtYSk7CiAJaWYgKHVzZV9wdGVtb2QpIHsKLQkJLyogSXQgaXMg cG9zc2libGUgdGhhdCBhbiBtbXUgbm90aWZpZXIgY291bGQgYmUgcnVubmluZwotCQkgKiBjb25j dXJyZW50bHksIHNvIHRha2UgcHJpdi0+bG9jayB0byBlbnN1cmUgdGhhdCB0aGUgdm1hIHdvbid0 Ci0JCSAqIHZhbmlzaGluZyBkdXJpbmcgdGhlIHVubWFwX2dyYW50X3BhZ2VzIGNhbGwsIHNpbmNl IHdlIHdpbGwKLQkJICogc3BpbiBoZXJlIHVudGlsIHRoYXQgY29tcGxldGVzLiBTdWNoIGEgY29u Y3VycmVudCBjYWxsIHdpbGwKLQkJICogbm90IGRvIGFueSB1bm1hcHBpbmcsIHNpbmNlIHRoYXQg aGFzIGJlZW4gZG9uZSBwcmlvciB0bwotCQkgKiBjbG9zaW5nIHRoZSB2bWEsIGJ1dCBpdCBtYXkg c3RpbGwgaXRlcmF0ZSB0aGUgdW5tYXBfb3BzIGxpc3QuCi0JCSAqLwotCQltdXRleF9sb2NrKCZw cml2LT5sb2NrKTsKKwkJV0FSTl9PTihtYXAtPnZtYSAhPSB2bWEpOworCQltbXVfaW50ZXJ2YWxf bm90aWZpZXJfcmVtb3ZlKCZtYXAtPm5vdGlmaWVyKTsKIAkJbWFwLT52bWEgPSBOVUxMOwotCQlt dXRleF91bmxvY2soJnByaXYtPmxvY2spOwogCX0KIAl2bWEtPnZtX3ByaXZhdGVfZGF0YSA9IE5V TEw7CiAJZ250ZGV2X3B1dF9tYXAocHJpdiwgbWFwKTsKQEAgLTQ3NSwxMDkgKzQ2MSw0NCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGdudGRldl92bW9wcyA9IHsK IAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tICovCiAKLXN0YXRpYyBib29sIGluX3JhbmdlKHN0cnVjdCBnbnRkZXZf Z3JhbnRfbWFwICptYXAsCi0JCQkgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBs b25nIGVuZCkKLXsKLQlpZiAoIW1hcC0+dm1hKQotCQlyZXR1cm4gZmFsc2U7Ci0JaWYgKG1hcC0+ dm1hLT52bV9zdGFydCA+PSBlbmQpCi0JCXJldHVybiBmYWxzZTsKLQlpZiAobWFwLT52bWEtPnZt X2VuZCA8PSBzdGFydCkKLQkJcmV0dXJuIGZhbHNlOwotCi0JcmV0dXJuIHRydWU7Ci19Ci0KLXN0 YXRpYyBpbnQgdW5tYXBfaWZfaW5fcmFuZ2Uoc3RydWN0IGdudGRldl9ncmFudF9tYXAgKm1hcCwK LQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkJICAg ICAgYm9vbCBibG9ja2FibGUpCitzdGF0aWMgYm9vbCBnbnRkZXZfaW52YWxpZGF0ZShzdHJ1Y3Qg bW11X2ludGVydmFsX25vdGlmaWVyICptbiwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBtbXVfbm90 aWZpZXJfcmFuZ2UgKnJhbmdlLAorCQkJICAgICAgdW5zaWduZWQgbG9uZyBjdXJfc2VxKQogewor CXN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXAgPQorCQljb250YWluZXJfb2YobW4sIHN0cnVj dCBnbnRkZXZfZ3JhbnRfbWFwLCBub3RpZmllcik7CiAJdW5zaWduZWQgbG9uZyBtc3RhcnQsIG1l bmQ7CiAJaW50IGVycjsKIAotCWlmICghaW5fcmFuZ2UobWFwLCBzdGFydCwgZW5kKSkKLQkJcmV0 dXJuIDA7CisJaWYgKCFtbXVfbm90aWZpZXJfcmFuZ2VfYmxvY2thYmxlKHJhbmdlKSkKKwkJcmV0 dXJuIGZhbHNlOwogCi0JaWYgKCFibG9ja2FibGUpCi0JCXJldHVybiAtRUFHQUlOOworCS8qCisJ ICogSWYgdGhlIFZNQSBpcyBzcGxpdCBvciBvdGhlcndpc2UgY2hhbmdlZCB0aGUgbm90aWZpZXIg aXMgbm90CisJICogdXBkYXRlZCwgYnV0IHdlIGRvbid0IHdhbnQgdG8gcHJvY2VzcyBWQSdzIG91 dHNpZGUgdGhlIG1vZGlmaWVkCisJICogVk1BLiBGSVhNRTogSXQgd291bGQgYmUgbXVjaCBtb3Jl IHVuZGVyc3RhbmRhYmxlIHRvIGp1c3QgcHJldmVudAorCSAqIG1vZGlmeWluZyB0aGUgVk1BIGlu IHRoZSBmaXJzdCBwbGFjZS4KKwkgKi8KKwlpZiAobWFwLT52bWEtPnZtX3N0YXJ0ID49IHJhbmdl LT5lbmQgfHwKKwkgICAgbWFwLT52bWEtPnZtX2VuZCA8PSByYW5nZS0+c3RhcnQpCisJCXJldHVy biB0cnVlOwogCi0JbXN0YXJ0ID0gbWF4KHN0YXJ0LCBtYXAtPnZtYS0+dm1fc3RhcnQpOwotCW1l bmQgICA9IG1pbihlbmQsICAgbWFwLT52bWEtPnZtX2VuZCk7CisJbXN0YXJ0ID0gbWF4KHJhbmdl LT5zdGFydCwgbWFwLT52bWEtPnZtX3N0YXJ0KTsKKwltZW5kID0gbWluKHJhbmdlLT5lbmQsIG1h cC0+dm1hLT52bV9lbmQpOwogCXByX2RlYnVnKCJtYXAgJWQrJWQgKCVseCAlbHgpLCByYW5nZSAl bHggJWx4LCBtcmFuZ2UgJWx4ICVseFxuIiwKIAkJCW1hcC0+aW5kZXgsIG1hcC0+Y291bnQsCiAJ CQltYXAtPnZtYS0+dm1fc3RhcnQsIG1hcC0+dm1hLT52bV9lbmQsCi0JCQlzdGFydCwgZW5kLCBt c3RhcnQsIG1lbmQpOworCQkJcmFuZ2UtPnN0YXJ0LCByYW5nZS0+ZW5kLCBtc3RhcnQsIG1lbmQp OwogCWVyciA9IHVubWFwX2dyYW50X3BhZ2VzKG1hcCwKIAkJCQkobXN0YXJ0IC0gbWFwLT52bWEt PnZtX3N0YXJ0KSA+PiBQQUdFX1NISUZULAogCQkJCShtZW5kIC0gbXN0YXJ0KSA+PiBQQUdFX1NI SUZUKTsKIAlXQVJOX09OKGVycik7CiAKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBtbl9p bnZsX3JhbmdlX3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAotCQkJICAgICAgIGNvbnN0 IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlKQotewotCXN0cnVjdCBnbnRkZXZfcHJp diAqcHJpdiA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGdudGRldl9wcml2LCBtbik7Ci0Jc3Ry dWN0IGdudGRldl9ncmFudF9tYXAgKm1hcDsKLQlpbnQgcmV0ID0gMDsKLQotCWlmIChtbXVfbm90 aWZpZXJfcmFuZ2VfYmxvY2thYmxlKHJhbmdlKSkKLQkJbXV0ZXhfbG9jaygmcHJpdi0+bG9jayk7 Ci0JZWxzZSBpZiAoIW11dGV4X3RyeWxvY2soJnByaXYtPmxvY2spKQotCQlyZXR1cm4gLUVBR0FJ TjsKLQotCWxpc3RfZm9yX2VhY2hfZW50cnkobWFwLCAmcHJpdi0+bWFwcywgbmV4dCkgewotCQly ZXQgPSB1bm1hcF9pZl9pbl9yYW5nZShtYXAsIHJhbmdlLT5zdGFydCwgcmFuZ2UtPmVuZCwKLQkJ CQkJbW11X25vdGlmaWVyX3JhbmdlX2Jsb2NrYWJsZShyYW5nZSkpOwotCQlpZiAocmV0KQotCQkJ Z290byBvdXRfdW5sb2NrOwotCX0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1hcCwgJnByaXYtPmZy ZWVhYmxlX21hcHMsIG5leHQpIHsKLQkJcmV0ID0gdW5tYXBfaWZfaW5fcmFuZ2UobWFwLCByYW5n ZS0+c3RhcnQsIHJhbmdlLT5lbmQsCi0JCQkJCW1tdV9ub3RpZmllcl9yYW5nZV9ibG9ja2FibGUo cmFuZ2UpKTsKLQkJaWYgKHJldCkKLQkJCWdvdG8gb3V0X3VubG9jazsKLQl9Ci0KLW91dF91bmxv Y2s6Ci0JbXV0ZXhfdW5sb2NrKCZwcml2LT5sb2NrKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0 YXRpYyB2b2lkIG1uX3JlbGVhc2Uoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sCi0JCSAgICAgICBz dHJ1Y3QgbW1fc3RydWN0ICptbSkKLXsKLQlzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYgPSBjb250 YWluZXJfb2YobW4sIHN0cnVjdCBnbnRkZXZfcHJpdiwgbW4pOwotCXN0cnVjdCBnbnRkZXZfZ3Jh bnRfbWFwICptYXA7Ci0JaW50IGVycjsKLQotCW11dGV4X2xvY2soJnByaXYtPmxvY2spOwotCWxp c3RfZm9yX2VhY2hfZW50cnkobWFwLCAmcHJpdi0+bWFwcywgbmV4dCkgewotCQlpZiAoIW1hcC0+ dm1hKQotCQkJY29udGludWU7Ci0JCXByX2RlYnVnKCJtYXAgJWQrJWQgKCVseCAlbHgpXG4iLAot CQkJCW1hcC0+aW5kZXgsIG1hcC0+Y291bnQsCi0JCQkJbWFwLT52bWEtPnZtX3N0YXJ0LCBtYXAt PnZtYS0+dm1fZW5kKTsKLQkJZXJyID0gdW5tYXBfZ3JhbnRfcGFnZXMobWFwLCAvKiBvZmZzZXQg Ki8gMCwgbWFwLT5jb3VudCk7Ci0JCVdBUk5fT04oZXJyKTsKLQl9Ci0JbGlzdF9mb3JfZWFjaF9l bnRyeShtYXAsICZwcml2LT5mcmVlYWJsZV9tYXBzLCBuZXh0KSB7Ci0JCWlmICghbWFwLT52bWEp Ci0JCQljb250aW51ZTsKLQkJcHJfZGVidWcoIm1hcCAlZCslZCAoJWx4ICVseClcbiIsCi0JCQkJ bWFwLT5pbmRleCwgbWFwLT5jb3VudCwKLQkJCQltYXAtPnZtYS0+dm1fc3RhcnQsIG1hcC0+dm1h LT52bV9lbmQpOwotCQllcnIgPSB1bm1hcF9ncmFudF9wYWdlcyhtYXAsIC8qIG9mZnNldCAqLyAw LCBtYXAtPmNvdW50KTsKLQkJV0FSTl9PTihlcnIpOwotCX0KLQltdXRleF91bmxvY2soJnByaXYt PmxvY2spOworCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IG1tdV9ub3Rp Zmllcl9vcHMgZ250ZGV2X21tdV9vcHMgPSB7Ci0JLnJlbGVhc2UgICAgICAgICAgICAgICAgPSBt bl9yZWxlYXNlLAotCS5pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0ID0gbW5faW52bF9yYW5nZV9zdGFy dCwKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVyX29wcyBnbnRkZXZf bW11X29wcyA9IHsKKwkuaW52YWxpZGF0ZSA9IGdudGRldl9pbnZhbGlkYXRlLAogfTsKIAogLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICovCkBAIC01OTIsNyArNTEzLDYgQEAgc3RhdGljIGludCBnbnRkZXZfb3Blbihz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmxpcCkKIAkJcmV0dXJuIC1FTk9NRU07 CiAKIAlJTklUX0xJU1RfSEVBRCgmcHJpdi0+bWFwcyk7Ci0JSU5JVF9MSVNUX0hFQUQoJnByaXYt PmZyZWVhYmxlX21hcHMpOwogCW11dGV4X2luaXQoJnByaXYtPmxvY2spOwogCiAjaWZkZWYgQ09O RklHX1hFTl9HTlRERVZfRE1BQlVGCkBAIC02MDQsMTcgKzUyNCw2IEBAIHN0YXRpYyBpbnQgZ250 ZGV2X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZsaXApCiAJfQogI2Vu ZGlmCiAKLQlpZiAodXNlX3B0ZW1vZCkgewotCQlwcml2LT5tbSA9IGdldF90YXNrX21tKGN1cnJl bnQpOwotCQlpZiAoIXByaXYtPm1tKSB7Ci0JCQlrZnJlZShwcml2KTsKLQkJCXJldHVybiAtRU5P TUVNOwotCQl9Ci0JCXByaXYtPm1uLm9wcyA9ICZnbnRkZXZfbW11X29wczsKLQkJcmV0ID0gbW11 X25vdGlmaWVyX3JlZ2lzdGVyKCZwcml2LT5tbiwgcHJpdi0+bW0pOwotCQltbXB1dChwcml2LT5t bSk7Ci0JfQotCiAJaWYgKHJldCkgewogCQlrZnJlZShwcml2KTsKIAkJcmV0dXJuIHJldDsKQEAg LTY0NCwxNiArNTUzLDEyIEBAIHN0YXRpYyBpbnQgZ250ZGV2X3JlbGVhc2Uoc3RydWN0IGlub2Rl ICppbm9kZSwgc3RydWN0IGZpbGUgKmZsaXApCiAJCWxpc3RfZGVsKCZtYXAtPm5leHQpOwogCQln bnRkZXZfcHV0X21hcChOVUxMIC8qIGFscmVhZHkgcmVtb3ZlZCAqLywgbWFwKTsKIAl9Ci0JV0FS Tl9PTighbGlzdF9lbXB0eSgmcHJpdi0+ZnJlZWFibGVfbWFwcykpOwogCW11dGV4X3VubG9jaygm cHJpdi0+bG9jayk7CiAKICNpZmRlZiBDT05GSUdfWEVOX0dOVERFVl9ETUFCVUYKIAlnbnRkZXZf ZG1hYnVmX2ZpbmkocHJpdi0+ZG1hYnVmX3ByaXYpOwogI2VuZGlmCiAKLQlpZiAodXNlX3B0ZW1v ZCkKLQkJbW11X25vdGlmaWVyX3VucmVnaXN0ZXIoJnByaXYtPm1uLCBwcml2LT5tbSk7Ci0KIAlr ZnJlZShwcml2KTsKIAlyZXR1cm4gMDsKIH0KQEAgLTcxNCw4ICs2MTksNiBAQCBzdGF0aWMgbG9u ZyBnbnRkZXZfaW9jdGxfdW5tYXBfZ3JhbnRfcmVmKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwK IAltYXAgPSBnbnRkZXZfZmluZF9tYXBfaW5kZXgocHJpdiwgb3AuaW5kZXggPj4gUEFHRV9TSElG VCwgb3AuY291bnQpOwogCWlmIChtYXApIHsKIAkJbGlzdF9kZWwoJm1hcC0+bmV4dCk7Ci0JCWlm IChwb3B1bGF0ZV9mcmVlYWJsZV9tYXBzKQotCQkJbGlzdF9hZGRfdGFpbCgmbWFwLT5uZXh0LCAm cHJpdi0+ZnJlZWFibGVfbWFwcyk7CiAJCWVyciA9IDA7CiAJfQogCW11dGV4X3VubG9jaygmcHJp di0+bG9jayk7CkBAIC0xMDg3LDExICs5OTAsNiBAQCBzdGF0aWMgaW50IGdudGRldl9tbWFwKHN0 cnVjdCBmaWxlICpmbGlwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAkJZ290byB1bmxv Y2tfb3V0OwogCWlmICh1c2VfcHRlbW9kICYmIG1hcC0+dm1hKQogCQlnb3RvIHVubG9ja19vdXQ7 Ci0JaWYgKHVzZV9wdGVtb2QgJiYgcHJpdi0+bW0gIT0gdm1hLT52bV9tbSkgewotCQlwcl93YXJu KCJIdWg/IE90aGVyIG1tP1xuIik7Ci0JCWdvdG8gdW5sb2NrX291dDsKLQl9Ci0KIAlyZWZjb3Vu dF9pbmMoJm1hcC0+dXNlcnMpOwogCiAJdm1hLT52bV9vcHMgPSAmZ250ZGV2X3Ztb3BzOwpAQCAt MTEwMiwxMCArMTAwMCw2IEBAIHN0YXRpYyBpbnQgZ250ZGV2X21tYXAoc3RydWN0IGZpbGUgKmZs aXAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogCQl2bWEtPnZtX2ZsYWdzIHw9IFZNX0RP TlRDT1BZOwogCiAJdm1hLT52bV9wcml2YXRlX2RhdGEgPSBtYXA7Ci0KLQlpZiAodXNlX3B0ZW1v ZCkKLQkJbWFwLT52bWEgPSB2bWE7Ci0KIAlpZiAobWFwLT5mbGFncykgewogCQlpZiAoKHZtYS0+ dm1fZmxhZ3MgJiBWTV9XUklURSkgJiYKIAkJCQkobWFwLT5mbGFncyAmIEdOVE1BUF9yZWFkb25s eSkpCkBAIC0xMTE2LDggKzEwMTAsMjggQEAgc3RhdGljIGludCBnbnRkZXZfbW1hcChzdHJ1Y3Qg ZmlsZSAqZmxpcCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJCQltYXAtPmZsYWdzIHw9 IEdOVE1BUF9yZWFkb25seTsKIAl9CiAKKwlpZiAodXNlX3B0ZW1vZCkgeworCQltYXAtPnZtYSA9 IHZtYTsKKwkJZXJyID0gbW11X2ludGVydmFsX25vdGlmaWVyX2luc2VydF9sb2NrZWQoCisJCQkm bWFwLT5ub3RpZmllciwgdm1hLT52bV9tbSwgdm1hLT52bV9zdGFydCwKKwkJCXZtYS0+dm1fZW5k IC0gdm1hLT52bV9zdGFydCwgJmdudGRldl9tbXVfb3BzKTsKKwkJaWYgKGVycikKKwkJCWdvdG8g b3V0X3VubG9ja19wdXQ7CisJfQogCW11dGV4X3VubG9jaygmcHJpdi0+bG9jayk7CiAKKwkvKgor CSAqIGdudGRldiB0YWtlcyB0aGUgYWRkcmVzcyBvZiB0aGUgUFRFIGluIGZpbmRfZ3JhbnRfcHRl cygpIGFuZCBwYXNzZXMKKwkgKiBpdCB0byB0aGUgaHlwZXJ2aXNvciBpbiBnbnRkZXZfbWFwX2dy YW50X3BhZ2VzKCkuIFRoZSBwdXJwb3NlIG9mCisJICogdGhlIG5vdGlmaWVyIGlzIHRvIHByZXZl bnQgdGhlIGh5cGVydmlzb3IgcG9pbnRlciB0byB0aGUgUFRFIGZyb20KKwkgKiBnb2luZyBzdGFs ZS4KKwkgKgorCSAqIFNpbmNlIHRoaXMgdm1hJ3MgbWFwcGluZ3MgY2FuJ3QgYmUgdG91Y2hlZCB3 aXRob3V0IHRoZSBtbWFwX3NlbSwKKwkgKiBhbmQgd2UgYXJlIGhvbGRpbmcgaXQgbm93LCB0aGVy ZSBpcyBubyBuZWVkIGZvciB0aGUgbm90aWZpZXJfcmFuZ2UKKwkgKiBsb2NraW5nIHBhdHRlcm4u CisJICovCisJbW11X2ludGVydmFsX3JlYWRfYmVnaW4oJm1hcC0+bm90aWZpZXIpOworCiAJaWYg KHVzZV9wdGVtb2QpIHsKIAkJbWFwLT5wYWdlc192bV9zdGFydCA9IHZtYS0+dm1fc3RhcnQ7CiAJ CWVyciA9IGFwcGx5X3RvX3BhZ2VfcmFuZ2Uodm1hLT52bV9tbSwgdm1hLT52bV9zdGFydCwKQEAg LTExNjYsOCArMTA4MCwxMSBAQCBzdGF0aWMgaW50IGdudGRldl9tbWFwKHN0cnVjdCBmaWxlICpm bGlwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAltdXRleF91bmxvY2soJnByaXYtPmxv Y2spOwogb3V0X3B1dF9tYXA6CiAJaWYgKHVzZV9wdGVtb2QpIHsKLQkJbWFwLT52bWEgPSBOVUxM OwogCQl1bm1hcF9ncmFudF9wYWdlcyhtYXAsIDAsIG1hcC0+Y291bnQpOworCQlpZiAobWFwLT52 bWEpIHsKKwkJCW1tdV9pbnRlcnZhbF9ub3RpZmllcl9yZW1vdmUoJm1hcC0+bm90aWZpZXIpOwor CQkJbWFwLT52bWEgPSBOVUxMOworCQl9CiAJfQogCWdudGRldl9wdXRfbWFwKHByaXYsIG1hcCk7 CiAJcmV0dXJuIGVycjsKLS0gCjIuMjQuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0 aW5mby94ZW4tZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 49D55C43331 for ; Tue, 12 Nov 2019 20:46:52 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 285DB2067B for ; Tue, 12 Nov 2019 20:46:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 285DB2067B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ziepe.ca Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4F9786EBDE; Tue, 12 Nov 2019 20:46:44 +0000 (UTC) Received: from mail-qk1-x742.google.com (mail-qk1-x742.google.com [IPv6:2607:f8b0:4864:20::742]) by gabe.freedesktop.org (Postfix) with ESMTPS id 462676EBC8 for ; Tue, 12 Nov 2019 20:22:57 +0000 (UTC) Received: by mail-qk1-x742.google.com with SMTP id z23so15662165qkj.10 for ; Tue, 12 Nov 2019 12:22:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ag74A03ltWPnoMqcDguSbvV42NCeKy/4wLDNRWFWC64=; b=VxJLJWI3b7fWzZX9eE/peqyWXvgb17jIaLDJQd6SBAejm7pxw8nF+tt0/BkJfA3LXD IYzvbptp3D4P2J+t4prZc5SHsRbdnLZZAUOdwDxWepg19htyYjsBvclwRHwTVBoc3RLB 8AaGiEgBwwKsi9eBR4Pr5qkIONJJLpcmAg1jjBWjxRSCKkG1zzLaHbY6xzY3Z2puokyb 8rBq2vAGfRlGgXftZ6lajgzzLZzdwFZc6tA4v1do9VvekH95Nakf155Imk91HM0tjIL9 XRNrXdQVgQXL4onBRbtS6O8WtL1FpuYN5aLqq+2zHDKGCshX/YFGKsEn6XpBCFM6ozi9 jEqA== X-Gm-Message-State: APjAAAUN8YDjMBNg4HDGCpccKKkjmeka44AqBGvskEkHRlRxUqkaWfhc bcDlpitIH017I+jxnP0oWcdLpw== X-Google-Smtp-Source: APXvYqzFb8GUByDgUwOTbZF3caBu1zPVFacaHYNI0Y/7i1YxdoOa6W+iBbg13cRpLZGHNCe94hp2sw== X-Received: by 2002:a05:620a:1645:: with SMTP id c5mr7466381qko.22.1573590176249; Tue, 12 Nov 2019 12:22:56 -0800 (PST) Received: from ziepe.ca (hlfxns017vw-142-162-113-180.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.162.113.180]) by smtp.gmail.com with ESMTPSA id x30sm9613099qtc.7.2019.11.12.12.22.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 12 Nov 2019 12:22:49 -0800 (PST) Received: from jgg by mlx.ziepe.ca with local (Exim 4.90_1) (envelope-from ) id 1iUcgZ-0003ks-QH; Tue, 12 Nov 2019 16:22:47 -0400 From: Jason Gunthorpe To: linux-mm@kvack.org, Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling@amd.com Subject: [PATCH v3 14/14] xen/gntdev: use mmu_interval_notifier_insert Date: Tue, 12 Nov 2019 16:22:31 -0400 Message-Id: <20191112202231.3856-15-jgg@ziepe.ca> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191112202231.3856-1-jgg@ziepe.ca> References: <20191112202231.3856-1-jgg@ziepe.ca> MIME-Version: 1.0 X-Mailman-Approved-At: Tue, 12 Nov 2019 20:46:43 +0000 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ag74A03ltWPnoMqcDguSbvV42NCeKy/4wLDNRWFWC64=; b=PCWQFtRmX6dvCHfSMOkkkcPKeSnrHz8krN1hlyUDdwuQyPsVYOmzLQC5Yc41QZZP85 B2NGMnss1hJMDxF9lI+niLqo+82kQlnomIjzm0A0i+pJUKE0GqVpYK2MOn66QPGThGqX NS94OqyNlUtJgXLAoouud6q++7BxD+vQdqXjziXP0GXKbwlkyF9M+ndNZkMoy7I1rJmB ToKMX/nJPIpUEiHM9uVporsmySIGzEMSqaRCthLMgEJFbQ6MTWATLpKUViLlGqYMFEmk /0gOYuaOZHlcHNsUM5RxvixV9NteWANqq9+eCto0TKyqtpfm3yeZNMfikTuU5wGo+s69 K8UQ== X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , David Zhou , Mike Marciniszyn , Stefano Stabellini , Oleksandr Andrushchenko , linux-rdma@vger.kernel.org, nouveau@lists.freedesktop.org, Dennis Dalessandro , amd-gfx@lists.freedesktop.org, Christoph Hellwig , Jason Gunthorpe , dri-devel@lists.freedesktop.org, Alex Deucher , xen-devel@lists.xenproject.org, Boris Ostrovsky , Petr Cvek , =?UTF-8?q?Christian=20K=C3=B6nig?= , Ben Skeggs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" Message-ID: <20191112202231.T7Qs41ZeJNo83W7RcABlq8qwTRBwsvhl8_bs1qpZQl4@z> RnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgoKZ250ZGV2IHNpbXBseSB3 YW50cyB0byBtb25pdG9yIGEgc3BlY2lmaWMgVk1BIGZvciBhbnkgbm90aWZpZXIgZXZlbnRzLAp0 aGlzIGNhbiBiZSBkb25lIHN0cmFpZ2h0Zm9yd2FyZGx5IHVzaW5nIG1tdV9pbnRlcnZhbF9ub3Rp Zmllcl9pbnNlcnQoKQpvdmVyIHRoZSBWTUEncyBWQSByYW5nZS4KClRoZSBub3RpZmllciBzaG91 bGQgYmUgYXR0YWNoZWQgdW50aWwgdGhlIG9yaWdpbmFsIFZNQSBpcyBkZXN0cm95ZWQuCgpJdCBp cyB1bmNsZWFyIGlmIGFueSBvZiB0aGlzIGlzIGV2ZW4gc2FuZSwgYnV0IGF0IGxlYXN0IGEgbG90 IG9mIGR1cGxpY2F0ZQpjb2RlIGlzIHJlbW92ZWQuCgpSZXZpZXdlZC1ieTogQm9yaXMgT3N0cm92 c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFzb24gR3Vu dGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMveGVuL2dudGRldi1jb21tb24u aCB8ICAgOCArLQogZHJpdmVycy94ZW4vZ250ZGV2LmMgICAgICAgIHwgMTc5ICsrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25z KCspLCAxMzggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vZ250ZGV2LWNv bW1vbi5oIGIvZHJpdmVycy94ZW4vZ250ZGV2LWNvbW1vbi5oCmluZGV4IDJmOGI5NDljM2VlYjE0 Li45MWU0NGMwNGY3ODc2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vZ250ZGV2LWNvbW1vbi5o CisrKyBiL2RyaXZlcnMveGVuL2dudGRldi1jb21tb24uaApAQCAtMjEsMTUgKzIxLDggQEAgc3Ry dWN0IGdudGRldl9kbWFidWZfcHJpdjsKIHN0cnVjdCBnbnRkZXZfcHJpdiB7CiAJLyogTWFwcyB3 aXRoIHZpc2libGUgb2Zmc2V0cyBpbiB0aGUgZmlsZSBkZXNjcmlwdG9yLiAqLwogCXN0cnVjdCBs aXN0X2hlYWQgbWFwczsKLQkvKgotCSAqIE1hcHMgdGhhdCBhcmUgbm90IHZpc2libGU7IHdpbGwg YmUgZnJlZWQgb24gbXVubWFwLgotCSAqIE9ubHkgcG9wdWxhdGVkIGlmIHBvcHVsYXRlX2ZyZWVh YmxlX21hcHMgPT0gMQotCSAqLwotCXN0cnVjdCBsaXN0X2hlYWQgZnJlZWFibGVfbWFwczsKIAkv KiBsb2NrIHByb3RlY3RzIG1hcHMgYW5kIGZyZWVhYmxlX21hcHMuICovCiAJc3RydWN0IG11dGV4 IGxvY2s7Ci0Jc3RydWN0IG1tX3N0cnVjdCAqbW07Ci0Jc3RydWN0IG1tdV9ub3RpZmllciBtbjsK IAogI2lmZGVmIENPTkZJR19YRU5fR1JBTlRfRE1BX0FMTE9DCiAJLyogRGV2aWNlIGZvciB3aGlj aCBETUEgbWVtb3J5IGlzIGFsbG9jYXRlZC4gKi8KQEAgLTQ5LDYgKzQyLDcgQEAgc3RydWN0IGdu dGRldl91bm1hcF9ub3RpZnkgewogfTsKIAogc3RydWN0IGdudGRldl9ncmFudF9tYXAgeworCXN0 cnVjdCBtbXVfaW50ZXJ2YWxfbm90aWZpZXIgbm90aWZpZXI7CiAJc3RydWN0IGxpc3RfaGVhZCBu ZXh0OwogCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOwogCWludCBpbmRleDsKZGlmZiAtLWdp dCBhL2RyaXZlcnMveGVuL2dudGRldi5jIGIvZHJpdmVycy94ZW4vZ250ZGV2LmMKaW5kZXggODE0 MDFmMzg2YzljZTAuLmEwNGRkZjJhNjhhZmE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9nbnRk ZXYuYworKysgYi9kcml2ZXJzL3hlbi9nbnRkZXYuYwpAQCAtNjMsNyArNjMsNiBAQCBNT0RVTEVf UEFSTV9ERVNDKGxpbWl0LCAiTWF4aW11bSBudW1iZXIgb2YgZ3JhbnRzIHRoYXQgbWF5IGJlIG1h cHBlZCBieSAiCiBzdGF0aWMgYXRvbWljX3QgcGFnZXNfbWFwcGVkID0gQVRPTUlDX0lOSVQoMCk7 CiAKIHN0YXRpYyBpbnQgdXNlX3B0ZW1vZDsKLSNkZWZpbmUgcG9wdWxhdGVfZnJlZWFibGVfbWFw cyB1c2VfcHRlbW9kCiAKIHN0YXRpYyBpbnQgdW5tYXBfZ3JhbnRfcGFnZXMoc3RydWN0IGdudGRl dl9ncmFudF9tYXAgKm1hcCwKIAkJCSAgICAgaW50IG9mZnNldCwgaW50IHBhZ2VzKTsKQEAgLTI0 OSwxMiArMjQ4LDYgQEAgdm9pZCBnbnRkZXZfcHV0X21hcChzdHJ1Y3QgZ250ZGV2X3ByaXYgKnBy aXYsIHN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXApCiAJCWV2dGNobl9wdXQobWFwLT5ub3Rp ZnkuZXZlbnQpOwogCX0KIAotCWlmIChwb3B1bGF0ZV9mcmVlYWJsZV9tYXBzICYmIHByaXYpIHsK LQkJbXV0ZXhfbG9jaygmcHJpdi0+bG9jayk7Ci0JCWxpc3RfZGVsKCZtYXAtPm5leHQpOwotCQlt dXRleF91bmxvY2soJnByaXYtPmxvY2spOwotCX0KLQogCWlmIChtYXAtPnBhZ2VzICYmICF1c2Vf cHRlbW9kKQogCQl1bm1hcF9ncmFudF9wYWdlcyhtYXAsIDAsIG1hcC0+Y291bnQpOwogCWdudGRl dl9mcmVlX21hcChtYXApOwpAQCAtNDQ0LDE2ICs0MzcsOSBAQCBzdGF0aWMgdm9pZCBnbnRkZXZf dm1hX2Nsb3NlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogCiAJcHJfZGVidWcoImdudGRl dl92bWFfY2xvc2UgJXBcbiIsIHZtYSk7CiAJaWYgKHVzZV9wdGVtb2QpIHsKLQkJLyogSXQgaXMg cG9zc2libGUgdGhhdCBhbiBtbXUgbm90aWZpZXIgY291bGQgYmUgcnVubmluZwotCQkgKiBjb25j dXJyZW50bHksIHNvIHRha2UgcHJpdi0+bG9jayB0byBlbnN1cmUgdGhhdCB0aGUgdm1hIHdvbid0 Ci0JCSAqIHZhbmlzaGluZyBkdXJpbmcgdGhlIHVubWFwX2dyYW50X3BhZ2VzIGNhbGwsIHNpbmNl IHdlIHdpbGwKLQkJICogc3BpbiBoZXJlIHVudGlsIHRoYXQgY29tcGxldGVzLiBTdWNoIGEgY29u Y3VycmVudCBjYWxsIHdpbGwKLQkJICogbm90IGRvIGFueSB1bm1hcHBpbmcsIHNpbmNlIHRoYXQg aGFzIGJlZW4gZG9uZSBwcmlvciB0bwotCQkgKiBjbG9zaW5nIHRoZSB2bWEsIGJ1dCBpdCBtYXkg c3RpbGwgaXRlcmF0ZSB0aGUgdW5tYXBfb3BzIGxpc3QuCi0JCSAqLwotCQltdXRleF9sb2NrKCZw cml2LT5sb2NrKTsKKwkJV0FSTl9PTihtYXAtPnZtYSAhPSB2bWEpOworCQltbXVfaW50ZXJ2YWxf bm90aWZpZXJfcmVtb3ZlKCZtYXAtPm5vdGlmaWVyKTsKIAkJbWFwLT52bWEgPSBOVUxMOwotCQlt dXRleF91bmxvY2soJnByaXYtPmxvY2spOwogCX0KIAl2bWEtPnZtX3ByaXZhdGVfZGF0YSA9IE5V TEw7CiAJZ250ZGV2X3B1dF9tYXAocHJpdiwgbWFwKTsKQEAgLTQ3NSwxMDkgKzQ2MSw0NCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGdudGRldl92bW9wcyA9IHsK IAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tICovCiAKLXN0YXRpYyBib29sIGluX3JhbmdlKHN0cnVjdCBnbnRkZXZf Z3JhbnRfbWFwICptYXAsCi0JCQkgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBs b25nIGVuZCkKLXsKLQlpZiAoIW1hcC0+dm1hKQotCQlyZXR1cm4gZmFsc2U7Ci0JaWYgKG1hcC0+ dm1hLT52bV9zdGFydCA+PSBlbmQpCi0JCXJldHVybiBmYWxzZTsKLQlpZiAobWFwLT52bWEtPnZt X2VuZCA8PSBzdGFydCkKLQkJcmV0dXJuIGZhbHNlOwotCi0JcmV0dXJuIHRydWU7Ci19Ci0KLXN0 YXRpYyBpbnQgdW5tYXBfaWZfaW5fcmFuZ2Uoc3RydWN0IGdudGRldl9ncmFudF9tYXAgKm1hcCwK LQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkJICAg ICAgYm9vbCBibG9ja2FibGUpCitzdGF0aWMgYm9vbCBnbnRkZXZfaW52YWxpZGF0ZShzdHJ1Y3Qg bW11X2ludGVydmFsX25vdGlmaWVyICptbiwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBtbXVfbm90 aWZpZXJfcmFuZ2UgKnJhbmdlLAorCQkJICAgICAgdW5zaWduZWQgbG9uZyBjdXJfc2VxKQogewor CXN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXAgPQorCQljb250YWluZXJfb2YobW4sIHN0cnVj dCBnbnRkZXZfZ3JhbnRfbWFwLCBub3RpZmllcik7CiAJdW5zaWduZWQgbG9uZyBtc3RhcnQsIG1l bmQ7CiAJaW50IGVycjsKIAotCWlmICghaW5fcmFuZ2UobWFwLCBzdGFydCwgZW5kKSkKLQkJcmV0 dXJuIDA7CisJaWYgKCFtbXVfbm90aWZpZXJfcmFuZ2VfYmxvY2thYmxlKHJhbmdlKSkKKwkJcmV0 dXJuIGZhbHNlOwogCi0JaWYgKCFibG9ja2FibGUpCi0JCXJldHVybiAtRUFHQUlOOworCS8qCisJ ICogSWYgdGhlIFZNQSBpcyBzcGxpdCBvciBvdGhlcndpc2UgY2hhbmdlZCB0aGUgbm90aWZpZXIg aXMgbm90CisJICogdXBkYXRlZCwgYnV0IHdlIGRvbid0IHdhbnQgdG8gcHJvY2VzcyBWQSdzIG91 dHNpZGUgdGhlIG1vZGlmaWVkCisJICogVk1BLiBGSVhNRTogSXQgd291bGQgYmUgbXVjaCBtb3Jl IHVuZGVyc3RhbmRhYmxlIHRvIGp1c3QgcHJldmVudAorCSAqIG1vZGlmeWluZyB0aGUgVk1BIGlu IHRoZSBmaXJzdCBwbGFjZS4KKwkgKi8KKwlpZiAobWFwLT52bWEtPnZtX3N0YXJ0ID49IHJhbmdl LT5lbmQgfHwKKwkgICAgbWFwLT52bWEtPnZtX2VuZCA8PSByYW5nZS0+c3RhcnQpCisJCXJldHVy biB0cnVlOwogCi0JbXN0YXJ0ID0gbWF4KHN0YXJ0LCBtYXAtPnZtYS0+dm1fc3RhcnQpOwotCW1l bmQgICA9IG1pbihlbmQsICAgbWFwLT52bWEtPnZtX2VuZCk7CisJbXN0YXJ0ID0gbWF4KHJhbmdl LT5zdGFydCwgbWFwLT52bWEtPnZtX3N0YXJ0KTsKKwltZW5kID0gbWluKHJhbmdlLT5lbmQsIG1h cC0+dm1hLT52bV9lbmQpOwogCXByX2RlYnVnKCJtYXAgJWQrJWQgKCVseCAlbHgpLCByYW5nZSAl bHggJWx4LCBtcmFuZ2UgJWx4ICVseFxuIiwKIAkJCW1hcC0+aW5kZXgsIG1hcC0+Y291bnQsCiAJ CQltYXAtPnZtYS0+dm1fc3RhcnQsIG1hcC0+dm1hLT52bV9lbmQsCi0JCQlzdGFydCwgZW5kLCBt c3RhcnQsIG1lbmQpOworCQkJcmFuZ2UtPnN0YXJ0LCByYW5nZS0+ZW5kLCBtc3RhcnQsIG1lbmQp OwogCWVyciA9IHVubWFwX2dyYW50X3BhZ2VzKG1hcCwKIAkJCQkobXN0YXJ0IC0gbWFwLT52bWEt PnZtX3N0YXJ0KSA+PiBQQUdFX1NISUZULAogCQkJCShtZW5kIC0gbXN0YXJ0KSA+PiBQQUdFX1NI SUZUKTsKIAlXQVJOX09OKGVycik7CiAKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBtbl9p bnZsX3JhbmdlX3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAotCQkJICAgICAgIGNvbnN0 IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgKnJhbmdlKQotewotCXN0cnVjdCBnbnRkZXZfcHJp diAqcHJpdiA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGdudGRldl9wcml2LCBtbik7Ci0Jc3Ry dWN0IGdudGRldl9ncmFudF9tYXAgKm1hcDsKLQlpbnQgcmV0ID0gMDsKLQotCWlmIChtbXVfbm90 aWZpZXJfcmFuZ2VfYmxvY2thYmxlKHJhbmdlKSkKLQkJbXV0ZXhfbG9jaygmcHJpdi0+bG9jayk7 Ci0JZWxzZSBpZiAoIW11dGV4X3RyeWxvY2soJnByaXYtPmxvY2spKQotCQlyZXR1cm4gLUVBR0FJ TjsKLQotCWxpc3RfZm9yX2VhY2hfZW50cnkobWFwLCAmcHJpdi0+bWFwcywgbmV4dCkgewotCQly ZXQgPSB1bm1hcF9pZl9pbl9yYW5nZShtYXAsIHJhbmdlLT5zdGFydCwgcmFuZ2UtPmVuZCwKLQkJ CQkJbW11X25vdGlmaWVyX3JhbmdlX2Jsb2NrYWJsZShyYW5nZSkpOwotCQlpZiAocmV0KQotCQkJ Z290byBvdXRfdW5sb2NrOwotCX0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1hcCwgJnByaXYtPmZy ZWVhYmxlX21hcHMsIG5leHQpIHsKLQkJcmV0ID0gdW5tYXBfaWZfaW5fcmFuZ2UobWFwLCByYW5n ZS0+c3RhcnQsIHJhbmdlLT5lbmQsCi0JCQkJCW1tdV9ub3RpZmllcl9yYW5nZV9ibG9ja2FibGUo cmFuZ2UpKTsKLQkJaWYgKHJldCkKLQkJCWdvdG8gb3V0X3VubG9jazsKLQl9Ci0KLW91dF91bmxv Y2s6Ci0JbXV0ZXhfdW5sb2NrKCZwcml2LT5sb2NrKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0 YXRpYyB2b2lkIG1uX3JlbGVhc2Uoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sCi0JCSAgICAgICBz dHJ1Y3QgbW1fc3RydWN0ICptbSkKLXsKLQlzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYgPSBjb250 YWluZXJfb2YobW4sIHN0cnVjdCBnbnRkZXZfcHJpdiwgbW4pOwotCXN0cnVjdCBnbnRkZXZfZ3Jh bnRfbWFwICptYXA7Ci0JaW50IGVycjsKLQotCW11dGV4X2xvY2soJnByaXYtPmxvY2spOwotCWxp c3RfZm9yX2VhY2hfZW50cnkobWFwLCAmcHJpdi0+bWFwcywgbmV4dCkgewotCQlpZiAoIW1hcC0+ dm1hKQotCQkJY29udGludWU7Ci0JCXByX2RlYnVnKCJtYXAgJWQrJWQgKCVseCAlbHgpXG4iLAot CQkJCW1hcC0+aW5kZXgsIG1hcC0+Y291bnQsCi0JCQkJbWFwLT52bWEtPnZtX3N0YXJ0LCBtYXAt PnZtYS0+dm1fZW5kKTsKLQkJZXJyID0gdW5tYXBfZ3JhbnRfcGFnZXMobWFwLCAvKiBvZmZzZXQg Ki8gMCwgbWFwLT5jb3VudCk7Ci0JCVdBUk5fT04oZXJyKTsKLQl9Ci0JbGlzdF9mb3JfZWFjaF9l bnRyeShtYXAsICZwcml2LT5mcmVlYWJsZV9tYXBzLCBuZXh0KSB7Ci0JCWlmICghbWFwLT52bWEp Ci0JCQljb250aW51ZTsKLQkJcHJfZGVidWcoIm1hcCAlZCslZCAoJWx4ICVseClcbiIsCi0JCQkJ bWFwLT5pbmRleCwgbWFwLT5jb3VudCwKLQkJCQltYXAtPnZtYS0+dm1fc3RhcnQsIG1hcC0+dm1h LT52bV9lbmQpOwotCQllcnIgPSB1bm1hcF9ncmFudF9wYWdlcyhtYXAsIC8qIG9mZnNldCAqLyAw LCBtYXAtPmNvdW50KTsKLQkJV0FSTl9PTihlcnIpOwotCX0KLQltdXRleF91bmxvY2soJnByaXYt PmxvY2spOworCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IG1tdV9ub3Rp Zmllcl9vcHMgZ250ZGV2X21tdV9vcHMgPSB7Ci0JLnJlbGVhc2UgICAgICAgICAgICAgICAgPSBt bl9yZWxlYXNlLAotCS5pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0ID0gbW5faW52bF9yYW5nZV9zdGFy dCwKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVyX29wcyBnbnRkZXZf bW11X29wcyA9IHsKKwkuaW52YWxpZGF0ZSA9IGdudGRldl9pbnZhbGlkYXRlLAogfTsKIAogLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICovCkBAIC01OTIsNyArNTEzLDYgQEAgc3RhdGljIGludCBnbnRkZXZfb3Blbihz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmxpcCkKIAkJcmV0dXJuIC1FTk9NRU07 CiAKIAlJTklUX0xJU1RfSEVBRCgmcHJpdi0+bWFwcyk7Ci0JSU5JVF9MSVNUX0hFQUQoJnByaXYt PmZyZWVhYmxlX21hcHMpOwogCW11dGV4X2luaXQoJnByaXYtPmxvY2spOwogCiAjaWZkZWYgQ09O RklHX1hFTl9HTlRERVZfRE1BQlVGCkBAIC02MDQsMTcgKzUyNCw2IEBAIHN0YXRpYyBpbnQgZ250 ZGV2X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZsaXApCiAJfQogI2Vu ZGlmCiAKLQlpZiAodXNlX3B0ZW1vZCkgewotCQlwcml2LT5tbSA9IGdldF90YXNrX21tKGN1cnJl bnQpOwotCQlpZiAoIXByaXYtPm1tKSB7Ci0JCQlrZnJlZShwcml2KTsKLQkJCXJldHVybiAtRU5P TUVNOwotCQl9Ci0JCXByaXYtPm1uLm9wcyA9ICZnbnRkZXZfbW11X29wczsKLQkJcmV0ID0gbW11 X25vdGlmaWVyX3JlZ2lzdGVyKCZwcml2LT5tbiwgcHJpdi0+bW0pOwotCQltbXB1dChwcml2LT5t bSk7Ci0JfQotCiAJaWYgKHJldCkgewogCQlrZnJlZShwcml2KTsKIAkJcmV0dXJuIHJldDsKQEAg LTY0NCwxNiArNTUzLDEyIEBAIHN0YXRpYyBpbnQgZ250ZGV2X3JlbGVhc2Uoc3RydWN0IGlub2Rl ICppbm9kZSwgc3RydWN0IGZpbGUgKmZsaXApCiAJCWxpc3RfZGVsKCZtYXAtPm5leHQpOwogCQln bnRkZXZfcHV0X21hcChOVUxMIC8qIGFscmVhZHkgcmVtb3ZlZCAqLywgbWFwKTsKIAl9Ci0JV0FS Tl9PTighbGlzdF9lbXB0eSgmcHJpdi0+ZnJlZWFibGVfbWFwcykpOwogCW11dGV4X3VubG9jaygm cHJpdi0+bG9jayk7CiAKICNpZmRlZiBDT05GSUdfWEVOX0dOVERFVl9ETUFCVUYKIAlnbnRkZXZf ZG1hYnVmX2ZpbmkocHJpdi0+ZG1hYnVmX3ByaXYpOwogI2VuZGlmCiAKLQlpZiAodXNlX3B0ZW1v ZCkKLQkJbW11X25vdGlmaWVyX3VucmVnaXN0ZXIoJnByaXYtPm1uLCBwcml2LT5tbSk7Ci0KIAlr ZnJlZShwcml2KTsKIAlyZXR1cm4gMDsKIH0KQEAgLTcxNCw4ICs2MTksNiBAQCBzdGF0aWMgbG9u ZyBnbnRkZXZfaW9jdGxfdW5tYXBfZ3JhbnRfcmVmKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwK IAltYXAgPSBnbnRkZXZfZmluZF9tYXBfaW5kZXgocHJpdiwgb3AuaW5kZXggPj4gUEFHRV9TSElG VCwgb3AuY291bnQpOwogCWlmIChtYXApIHsKIAkJbGlzdF9kZWwoJm1hcC0+bmV4dCk7Ci0JCWlm IChwb3B1bGF0ZV9mcmVlYWJsZV9tYXBzKQotCQkJbGlzdF9hZGRfdGFpbCgmbWFwLT5uZXh0LCAm cHJpdi0+ZnJlZWFibGVfbWFwcyk7CiAJCWVyciA9IDA7CiAJfQogCW11dGV4X3VubG9jaygmcHJp di0+bG9jayk7CkBAIC0xMDg3LDExICs5OTAsNiBAQCBzdGF0aWMgaW50IGdudGRldl9tbWFwKHN0 cnVjdCBmaWxlICpmbGlwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAkJZ290byB1bmxv Y2tfb3V0OwogCWlmICh1c2VfcHRlbW9kICYmIG1hcC0+dm1hKQogCQlnb3RvIHVubG9ja19vdXQ7 Ci0JaWYgKHVzZV9wdGVtb2QgJiYgcHJpdi0+bW0gIT0gdm1hLT52bV9tbSkgewotCQlwcl93YXJu KCJIdWg/IE90aGVyIG1tP1xuIik7Ci0JCWdvdG8gdW5sb2NrX291dDsKLQl9Ci0KIAlyZWZjb3Vu dF9pbmMoJm1hcC0+dXNlcnMpOwogCiAJdm1hLT52bV9vcHMgPSAmZ250ZGV2X3Ztb3BzOwpAQCAt MTEwMiwxMCArMTAwMCw2IEBAIHN0YXRpYyBpbnQgZ250ZGV2X21tYXAoc3RydWN0IGZpbGUgKmZs aXAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogCQl2bWEtPnZtX2ZsYWdzIHw9IFZNX0RP TlRDT1BZOwogCiAJdm1hLT52bV9wcml2YXRlX2RhdGEgPSBtYXA7Ci0KLQlpZiAodXNlX3B0ZW1v ZCkKLQkJbWFwLT52bWEgPSB2bWE7Ci0KIAlpZiAobWFwLT5mbGFncykgewogCQlpZiAoKHZtYS0+ dm1fZmxhZ3MgJiBWTV9XUklURSkgJiYKIAkJCQkobWFwLT5mbGFncyAmIEdOVE1BUF9yZWFkb25s eSkpCkBAIC0xMTE2LDggKzEwMTAsMjggQEAgc3RhdGljIGludCBnbnRkZXZfbW1hcChzdHJ1Y3Qg ZmlsZSAqZmxpcCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJCQltYXAtPmZsYWdzIHw9 IEdOVE1BUF9yZWFkb25seTsKIAl9CiAKKwlpZiAodXNlX3B0ZW1vZCkgeworCQltYXAtPnZtYSA9 IHZtYTsKKwkJZXJyID0gbW11X2ludGVydmFsX25vdGlmaWVyX2luc2VydF9sb2NrZWQoCisJCQkm bWFwLT5ub3RpZmllciwgdm1hLT52bV9tbSwgdm1hLT52bV9zdGFydCwKKwkJCXZtYS0+dm1fZW5k IC0gdm1hLT52bV9zdGFydCwgJmdudGRldl9tbXVfb3BzKTsKKwkJaWYgKGVycikKKwkJCWdvdG8g b3V0X3VubG9ja19wdXQ7CisJfQogCW11dGV4X3VubG9jaygmcHJpdi0+bG9jayk7CiAKKwkvKgor CSAqIGdudGRldiB0YWtlcyB0aGUgYWRkcmVzcyBvZiB0aGUgUFRFIGluIGZpbmRfZ3JhbnRfcHRl cygpIGFuZCBwYXNzZXMKKwkgKiBpdCB0byB0aGUgaHlwZXJ2aXNvciBpbiBnbnRkZXZfbWFwX2dy YW50X3BhZ2VzKCkuIFRoZSBwdXJwb3NlIG9mCisJICogdGhlIG5vdGlmaWVyIGlzIHRvIHByZXZl bnQgdGhlIGh5cGVydmlzb3IgcG9pbnRlciB0byB0aGUgUFRFIGZyb20KKwkgKiBnb2luZyBzdGFs ZS4KKwkgKgorCSAqIFNpbmNlIHRoaXMgdm1hJ3MgbWFwcGluZ3MgY2FuJ3QgYmUgdG91Y2hlZCB3 aXRob3V0IHRoZSBtbWFwX3NlbSwKKwkgKiBhbmQgd2UgYXJlIGhvbGRpbmcgaXQgbm93LCB0aGVy ZSBpcyBubyBuZWVkIGZvciB0aGUgbm90aWZpZXJfcmFuZ2UKKwkgKiBsb2NraW5nIHBhdHRlcm4u CisJICovCisJbW11X2ludGVydmFsX3JlYWRfYmVnaW4oJm1hcC0+bm90aWZpZXIpOworCiAJaWYg KHVzZV9wdGVtb2QpIHsKIAkJbWFwLT5wYWdlc192bV9zdGFydCA9IHZtYS0+dm1fc3RhcnQ7CiAJ CWVyciA9IGFwcGx5X3RvX3BhZ2VfcmFuZ2Uodm1hLT52bV9tbSwgdm1hLT52bV9zdGFydCwKQEAg LTExNjYsOCArMTA4MCwxMSBAQCBzdGF0aWMgaW50IGdudGRldl9tbWFwKHN0cnVjdCBmaWxlICpm bGlwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAltdXRleF91bmxvY2soJnByaXYtPmxv Y2spOwogb3V0X3B1dF9tYXA6CiAJaWYgKHVzZV9wdGVtb2QpIHsKLQkJbWFwLT52bWEgPSBOVUxM OwogCQl1bm1hcF9ncmFudF9wYWdlcyhtYXAsIDAsIG1hcC0+Y291bnQpOworCQlpZiAobWFwLT52 bWEpIHsKKwkJCW1tdV9pbnRlcnZhbF9ub3RpZmllcl9yZW1vdmUoJm1hcC0+bm90aWZpZXIpOwor CQkJbWFwLT52bWEgPSBOVUxMOworCQl9CiAJfQogCWdudGRldl9wdXRfbWFwKHByaXYsIG1hcCk7 CiAJcmV0dXJuIGVycjsKLS0gCjIuMjQuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9hbWQtZ2Z4