From mboxrd@z Thu Jan 1 00:00:00 1970 From: jglisse@redhat.com Subject: [PATCH v2 3/3] mm/mmu_notifier: contextual information for event triggering invalidation v2 Date: Wed, 5 Dec 2018 00:36:28 -0500 Message-ID: <20181205053628.3210-4-jglisse@redhat.com> References: <20181205053628.3210-1-jglisse@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5D1046E35E for ; Wed, 5 Dec 2018 05:37:15 +0000 (UTC) In-Reply-To: <20181205053628.3210-1-jglisse@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-mm@kvack.org Cc: Ralph Campbell , Jan Kara , kvm@vger.kernel.org, Matthew Wilcox , linux-rdma@vger.kernel.org, John Hubbard , Felix Kuehling , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Michal Hocko , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Ross Zwisler , linux-fsdevel@vger.kernel.org, Paolo Bonzini , Andrew Morton , Dan Williams List-Id: dri-devel@lists.freedesktop.org RnJvbTogSsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3NlQHJlZGhhdC5jb20+CgpDUFUgcGFnZSB0YWJs ZSB1cGRhdGUgY2FuIGhhcHBlbnMgZm9yIG1hbnkgcmVhc29ucywgbm90IG9ubHkgYXMgYSByZXN1 bHQKb2YgYSBzeXNjYWxsIChtdW5tYXAoKSwgbXByb3RlY3QoKSwgbXJlbWFwKCksIG1hZHZpc2Uo KSwgLi4uKSBidXQgYWxzbwphcyBhIHJlc3VsdCBvZiBrZXJuZWwgYWN0aXZpdGllcyAobWVtb3J5 IGNvbXByZXNzaW9uLCByZWNsYWltLCBtaWdyYXRpb24sCi4uLikuCgpVc2VycyBvZiBtbXUgbm90 aWZpZXIgQVBJIHRyYWNrIGNoYW5nZXMgdG8gdGhlIENQVSBwYWdlIHRhYmxlIGFuZCB0YWtlCnNw ZWNpZmljIGFjdGlvbiBmb3IgdGhlbS4gV2hpbGUgY3VycmVudCBBUEkgb25seSBwcm92aWRlIHJh bmdlIG9mIHZpcnR1YWwKYWRkcmVzcyBhZmZlY3RlZCBieSB0aGUgY2hhbmdlLCBub3Qgd2h5IHRo ZSBjaGFuZ2VzIGlzIGhhcHBlbmluZy4KClRoaXMgcGF0Y2hzZXQgYWRkcyBldmVudCBpbmZvcm1h dGlvbiBzbyB0aGF0IHVzZXJzIG9mIG1tdSBub3RpZmllciBjYW4KZGlmZmVyZW50aWF0ZSBhbW9u ZyBicm9hZCBjYXRlZ29yeToKICAgIC0gVU5NQVA6IG11bm1hcCgpIG9yIG1yZW1hcCgpCiAgICAt IENMRUFSOiBwYWdlIHRhYmxlIGlzIGNsZWFyZWQgKG1pZ3JhdGlvbiwgY29tcGFjdGlvbiwgcmVj bGFpbSwgLi4uKQogICAgLSBQUk9URUNUSU9OX1ZNQTogY2hhbmdlIGluIGFjY2VzcyBwcm90ZWN0 aW9ucyBmb3IgdGhlIHJhbmdlCiAgICAtIFBST1RFQ1RJT05fUEFHRTogY2hhbmdlIGluIGFjY2Vz cyBwcm90ZWN0aW9ucyBmb3IgcGFnZSBpbiB0aGUgcmFuZ2UKICAgIC0gU09GVF9ESVJUWTogc29m dCBkaXJ0eW5lc3MgdHJhY2tpbmcKCkJlaW5nIGFibGUgdG8gaWRlbnRpZnkgbXVubWFwKCkgYW5k IG1yZW1hcCgpIGZyb20gb3RoZXIgcmVhc29ucyB3aHkgdGhlCnBhZ2UgdGFibGUgaXMgY2xlYXJl ZCBpcyBpbXBvcnRhbnQgdG8gYWxsb3cgdXNlciBvZiBtbXUgbm90aWZpZXIgdG8KdXBkYXRlIHRo ZWlyIG93biBpbnRlcm5hbCB0cmFja2luZyBzdHJ1Y3R1cmUgYWNjb3JkaW5nbHkgKG9uIG11bm1h cCBvcgptcmVtYXAgaXQgaXMgbm90IGxvbmdlciBuZWVkZWQgdG8gdHJhY2sgcmFuZ2Ugb2Ygdmly dHVhbCBhZGRyZXNzIGFzIGl0CmJlY29tZXMgaW52YWxpZCkuCgpDaGFuZ2VzIHNpbmNlIHYxOgog ICAgLSB1c2UgbW11X25vdGlmaWVyX3JhbmdlX2luaXQoKSBoZWxwZXIgdG8gdG8gb3B0aW1pemUg b3V0IHRoZSBjYXNlCiAgICAgIHdoZW4gbW11IG5vdGlmaWVyIGlzIG5vdCBlbmFibGVkCiAgICAt IHVzZSBrZXJuZWwgZG9jIGZvcm1hdCBmb3IgZGVzY3JpYmluZyB0aGUgZW51bSB2YWx1ZXMKClNp Z25lZC1vZmYtYnk6IErDqXLDtG1lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgpBY2tlZC1i eTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgpDYzogQW5kcmV3 IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IE1hdHRoZXcgV2lsY294IDxt YXdpbGNveEBtaWNyb3NvZnQuY29tPgpDYzogUm9zcyBad2lzbGVyIDx6d2lzbGVyQGtlcm5lbC5v cmc+CkNjOiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgpDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53 aWxsaWFtc0BpbnRlbC5jb20+CkNjOiBQYW9sbyBCb256aW5pIDxwYm9uemluaUByZWRoYXQuY29t PgpDYzogUmFkaW0gS3LEjW3DocWZIDxya3JjbWFyQHJlZGhhdC5jb20+CkNjOiBNaWNoYWwgSG9j a28gPG1ob2Nrb0BrZXJuZWwub3JnPgpDYzogRmVsaXggS3VlaGxpbmcgPGZlbGl4Lmt1ZWhsaW5n QGFtZC5jb20+CkNjOiBSYWxwaCBDYW1wYmVsbCA8cmNhbXBiZWxsQG52aWRpYS5jb20+CkNjOiBK b2huIEh1YmJhcmQgPGpodWJiYXJkQG52aWRpYS5jb20+CkNjOiBrdm1Admdlci5rZXJuZWwub3Jn CkNjOiBsaW51eC1yZG1hQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtZnNkZXZlbEB2Z2VyLmtl cm5lbC5vcmcKQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKLS0tCiBmcy9kYXgu YyAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysrKysrKwogZnMvcHJvYy90YXNrX21tdS5jICAg ICAgICAgICB8ICAzICsrLQogaW5jbHVkZS9saW51eC9tbXVfbm90aWZpZXIuaCB8IDM1ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBrZXJuZWwvZXZlbnRzL3Vwcm9iZXMuYyAg ICAgIHwgIDMgKystCiBtbS9odWdlX21lbW9yeS5jICAgICAgICAgICAgIHwgMTIgKysrKysrKyst LS0tCiBtbS9odWdldGxiLmMgICAgICAgICAgICAgICAgIHwgMTAgKysrKysrLS0tLQogbW0va2h1 Z2VwYWdlZC5jICAgICAgICAgICAgICB8ICAzICsrLQogbW0va3NtLmMgICAgICAgICAgICAgICAg ICAgICB8ICA2ICsrKystLQogbW0vbWFkdmlzZS5jICAgICAgICAgICAgICAgICB8ICAzICsrLQog bW0vbWVtb3J5LmMgICAgICAgICAgICAgICAgICB8IDE4ICsrKysrKysrKysrKy0tLS0tLQogbW0v bWlncmF0ZS5jICAgICAgICAgICAgICAgICB8ICA1ICsrKy0tCiBtbS9tcHJvdGVjdC5jICAgICAg ICAgICAgICAgIHwgIDMgKystCiBtbS9tcmVtYXAuYyAgICAgICAgICAgICAgICAgIHwgIDMgKyst CiBtbS9vb21fa2lsbC5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIG1tL3JtYXAuYyAgICAgICAg ICAgICAgICAgICAgfCAgNiArKysrLS0KIDE1IGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlvbnMo KyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2RheC5jIGIvZnMvZGF4LmMKaW5k ZXggODc0MDg1YmFjYWY1Li42MDU2YjAzYTE2MjYgMTAwNjQ0Ci0tLSBhL2ZzL2RheC5jCisrKyBi L2ZzL2RheC5jCkBAIC03NjgsNiArNzY4LDEzIEBAIHN0YXRpYyB2b2lkIGRheF9lbnRyeV9ta2Ns ZWFuKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBwZ29mZl90IGluZGV4LAogCiAJCWFk ZHJlc3MgPSBwZ29mZl9hZGRyZXNzKGluZGV4LCB2bWEpOwogCisJCS8qCisJCSAqIEFsbCB0aGUg ZmllbGQgYXJlIHBvcHVsYXRlZCBieSBmb2xsb3dfcHRlX3BtZCgpIGV4Y2VwdAorCQkgKiB0aGUg ZXZlbnQgZmllbGQuCisJCSAqLworCQltbXVfbm90aWZpZXJfcmFuZ2VfaW5pdCgmcmFuZ2UsIE5V TEwsIDAsIC0xVUwsCisJCQkJCU1NVV9OT1RJRllfUFJPVEVDVElPTl9QQUdFKTsKKwogCQkvKgog CQkgKiBOb3RlIGJlY2F1c2Ugd2UgcHJvdmlkZSBzdGFydC9lbmQgdG8gZm9sbG93X3B0ZV9wbWQg aXQgd2lsbAogCQkgKiBjYWxsIG1tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KCkg b24gb3VyIGJlaGFsZgpkaWZmIC0tZ2l0IGEvZnMvcHJvYy90YXNrX21tdS5jIGIvZnMvcHJvYy90 YXNrX21tdS5jCmluZGV4IGIzZGRjZWIwMDNiYy4uZjY4YTllYmIwMjE4IDEwMDY0NAotLS0gYS9m cy9wcm9jL3Rhc2tfbW11LmMKKysrIGIvZnMvcHJvYy90YXNrX21tdS5jCkBAIC0xMTQxLDcgKzEx NDEsOCBAQCBzdGF0aWMgc3NpemVfdCBjbGVhcl9yZWZzX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxl LCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLAogCQkJCWJyZWFrOwogCQkJfQogCi0JCQltbXVfbm90 aWZpZXJfcmFuZ2VfaW5pdCgmcmFuZ2UsIG1tLCAwLCAtMVVMKTsKKwkJCW1tdV9ub3RpZmllcl9y YW5nZV9pbml0KCZyYW5nZSwgbW0sIDAsIC0xVUwsCisJCQkJCQlNTVVfTk9USUZZX1NPRlRfRElS VFkpOwogCQkJbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoJnJhbmdlKTsKIAkJ fQogCQl3YWxrX3BhZ2VfcmFuZ2UoMCwgbW0tPmhpZ2hlc3Rfdm1fZW5kLCAmY2xlYXJfcmVmc193 YWxrKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW11X25vdGlmaWVyLmggYi9pbmNsdWRl L2xpbnV4L21tdV9ub3RpZmllci5oCmluZGV4IDM5YjA2NzcyNDI3Zi4uZDI0OWUyNGFjZWE1IDEw MDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21tdV9ub3RpZmllci5oCisrKyBiL2luY2x1ZGUvbGlu dXgvbW11X25vdGlmaWVyLmgKQEAgLTI1LDEwICsyNSwzOSBAQCBzdHJ1Y3QgbW11X25vdGlmaWVy X21tIHsKIAlzcGlubG9ja190IGxvY2s7CiB9OwogCisvKioKKyAqIGVudW0gbW11X25vdGlmaWVy X2V2ZW50IC0gcmVhc29uIGZvciB0aGUgbW11IG5vdGlmaWVyIGNhbGxiYWNrCisgKiBATU1VX05P VElGWV9VTk1BUDogZWl0aGVyIG11bm1hcCgpIHRoYXQgdW5tYXAgdGhlIHJhbmdlIG9yIGEgbXJl bWFwKCkgdGhhdAorICogbW92ZSB0aGUgcmFuZ2UKKyAqCisgKiBATU1VX05PVElGWV9DTEVBUjog Y2xlYXIgcGFnZSB0YWJsZSBlbnRyeSAobWFueSByZWFzb25zIGZvciB0aGlzIGxpa2UKKyAqIG1h ZHZpc2UoKSBvciByZXBsYWNpbmcgYSBwYWdlIGJ5IGFub3RoZXIgb25lLCAuLi4pLgorICoKKyAq IEBNTVVfTk9USUZZX1BST1RFQ1RJT05fVk1BOiB1cGRhdGUgaXMgZHVlIHRvIHByb3RlY3Rpb24g Y2hhbmdlIGZvciB0aGUgcmFuZ2UKKyAqIGllIHVzaW5nIHRoZSB2bWEgYWNjZXNzIHBlcm1pc3Np b24gKHZtX3BhZ2VfcHJvdCkgdG8gdXBkYXRlIHRoZSB3aG9sZSByYW5nZQorICogaXMgZW5vdWdo IG5vIG5lZWQgdG8gaW5zcGVjdCBjaGFuZ2VzIHRvIHRoZSBDUFUgcGFnZSB0YWJsZSAobXByb3Rl Y3QoKQorICogc3lzY2FsbCkKKyAqCisgKiBATU1VX05PVElGWV9QUk9URUNUSU9OX1BBR0U6IHVw ZGF0ZSBpcyBkdWUgdG8gY2hhbmdlIGluIHJlYWQvd3JpdGUgZmxhZyBmb3IKKyAqIHBhZ2VzIGlu IHRoZSByYW5nZSBzbyB0byBtaXJyb3IgdGhvc2UgY2hhbmdlcyB0aGUgdXNlciBtdXN0IGluc3Bl Y3QgdGhlIENQVQorICogcGFnZSB0YWJsZSAoZnJvbSB0aGUgZW5kIGNhbGxiYWNrKS4KKyAqCisg KiBATU1VX05PVElGWV9TT0ZUX0RJUlRZOiBzb2Z0IGRpcnR5IGFjY291bnRpbmcgKHN0aWxsIHNh bWUgcGFnZSBhbmQgc2FtZQorICogYWNjZXNzIGZsYWdzKQorICovCitlbnVtIG1tdV9ub3RpZmll cl9ldmVudCB7CisJTU1VX05PVElGWV9VTk1BUCA9IDAsCisJTU1VX05PVElGWV9DTEVBUiwKKwlN TVVfTk9USUZZX1BST1RFQ1RJT05fVk1BLAorCU1NVV9OT1RJRllfUFJPVEVDVElPTl9QQUdFLAor CU1NVV9OT1RJRllfU09GVF9ESVJUWSwKK307CisKIHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2Ug ewogCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOwogCXVuc2lnbmVkIGxvbmcgc3RhcnQ7CiAJdW5zaWdu ZWQgbG9uZyBlbmQ7CisJZW51bSBtbXVfbm90aWZpZXJfZXZlbnQgZXZlbnQ7CiAJYm9vbCBibG9j a2FibGU7CiB9OwogCkBAIC0zMjAsMTEgKzM0OSwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbW11 X25vdGlmaWVyX21tX2Rlc3Ryb3koc3RydWN0IG1tX3N0cnVjdCAqbW0pCiBzdGF0aWMgaW5saW5l IHZvaWQgbW11X25vdGlmaWVyX3JhbmdlX2luaXQoc3RydWN0IG1tdV9ub3RpZmllcl9yYW5nZSAq cmFuZ2UsCiAJCQkJCSAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJCQkgICB1bnNpZ25lZCBs b25nIHN0YXJ0LAotCQkJCQkgICB1bnNpZ25lZCBsb25nIGVuZCkKKwkJCQkJICAgdW5zaWduZWQg bG9uZyBlbmQsCisJCQkJCSAgIGVudW0gbW11X25vdGlmaWVyX2V2ZW50IGV2ZW50KQogewogCXJh bmdlLT5tbSA9IG1tOwogCXJhbmdlLT5zdGFydCA9IHN0YXJ0OwogCXJhbmdlLT5lbmQgPSBlbmQ7 CisJcmFuZ2UtPmV2ZW50ID0gZXZlbnQ7CiB9CiAKICNkZWZpbmUgcHRlcF9jbGVhcl9mbHVzaF95 b3VuZ19ub3RpZnkoX192bWEsIF9fYWRkcmVzcywgX19wdGVwKQkJXApAQCAtNDUzLDcgKzQ4NCw3 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfbW11X25vdGlmaWVyX3JhbmdlX2luaXQoc3RydWN0IG1t dV9ub3RpZmllcl9yYW5nZSAqcmFuZ2UsCiAJcmFuZ2UtPmVuZCA9IGVuZDsKIH0KIAotI2RlZmlu ZSBtbXVfbm90aWZpZXJfcmFuZ2VfaW5pdChyYW5nZSwgbW0sIHN0YXJ0LCBlbmQpIFwKKyNkZWZp bmUgbW11X25vdGlmaWVyX3JhbmdlX2luaXQocmFuZ2UsIG1tLCBzdGFydCwgZW5kLCBldmVudCkg XAogCV9tbXVfbm90aWZpZXJfcmFuZ2VfaW5pdChyYW5nZSwgc3RhcnQsIGVuZCkKIAogCmRpZmYg LS1naXQgYS9rZXJuZWwvZXZlbnRzL3Vwcm9iZXMuYyBiL2tlcm5lbC9ldmVudHMvdXByb2Jlcy5j CmluZGV4IDFmYzhhOTM3MDljMy4uYTcwYzMyMDRmMjVkIDEwMDY0NAotLS0gYS9rZXJuZWwvZXZl bnRzL3Vwcm9iZXMuYworKysgYi9rZXJuZWwvZXZlbnRzL3Vwcm9iZXMuYwpAQCAtMTc0LDcgKzE3 NCw4IEBAIHN0YXRpYyBpbnQgX19yZXBsYWNlX3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAlzdHJ1Y3QgbW11X25vdGlmaWVyX3JhbmdlIHJhbmdl OwogCXN0cnVjdCBtZW1fY2dyb3VwICptZW1jZzsKIAotCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0 KCZyYW5nZSwgbW0sIGFkZHIsIGFkZHIgKyBQQUdFX1NJWkUpOworCW1tdV9ub3RpZmllcl9yYW5n ZV9pbml0KCZyYW5nZSwgbW0sIGFkZHIsIGFkZHIgKyBQQUdFX1NJWkUsCisJCQkJTU1VX05PVElG WV9DTEVBUik7CiAKIAlWTV9CVUdfT05fUEFHRShQYWdlVHJhbnNIdWdlKG9sZF9wYWdlKSwgb2xk X3BhZ2UpOwogCmRpZmYgLS1naXQgYS9tbS9odWdlX21lbW9yeS5jIGIvbW0vaHVnZV9tZW1vcnku YwppbmRleCBjMWQzY2U4MDk0MTYuLmI4ZDkwMjk4OTBjNSAxMDA2NDQKLS0tIGEvbW0vaHVnZV9t ZW1vcnkuYworKysgYi9tbS9odWdlX21lbW9yeS5jCkBAIC0xMTgzLDcgKzExODMsOCBAQCBzdGF0 aWMgdm1fZmF1bHRfdCBkb19odWdlX3BtZF93cF9wYWdlX2ZhbGxiYWNrKHN0cnVjdCB2bV9mYXVs dCAqdm1mLAogCX0KIAogCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KCZyYW5nZSwgdm1hLT52bV9t bSwgaGFkZHIsCi0JCQkJaGFkZHIgKyBIUEFHRV9QTURfU0laRSk7CisJCQkJaGFkZHIgKyBIUEFH RV9QTURfU0laRSwKKwkJCQlNTVVfTk9USUZZX0NMRUFSKTsKIAltbXVfbm90aWZpZXJfaW52YWxp ZGF0ZV9yYW5nZV9zdGFydCgmcmFuZ2UpOwogCiAJdm1mLT5wdGwgPSBwbWRfbG9jayh2bWEtPnZt X21tLCB2bWYtPnBtZCk7CkBAIC0xMzQ3LDcgKzEzNDgsOCBAQCB2bV9mYXVsdF90IGRvX2h1Z2Vf cG1kX3dwX3BhZ2Uoc3RydWN0IHZtX2ZhdWx0ICp2bWYsIHBtZF90IG9yaWdfcG1kKQogCV9fU2V0 UGFnZVVwdG9kYXRlKG5ld19wYWdlKTsKIAogCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KCZyYW5n ZSwgdm1hLT52bV9tbSwgaGFkZHIsCi0JCQkJaGFkZHIgKyBIUEFHRV9QTURfU0laRSk7CisJCQkJ aGFkZHIgKyBIUEFHRV9QTURfU0laRSwKKwkJCQlNTVVfTk9USUZZX0NMRUFSKTsKIAltbXVfbm90 aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydCgmcmFuZ2UpOwogCiAJc3Bpbl9sb2NrKHZtZi0+ cHRsKTsKQEAgLTIwMjcsNyArMjAyOSw4IEBAIHZvaWQgX19zcGxpdF9odWdlX3B1ZChzdHJ1Y3Qg dm1fYXJlYV9zdHJ1Y3QgKnZtYSwgcHVkX3QgKnB1ZCwKIAlzdHJ1Y3QgbW11X25vdGlmaWVyX3Jh bmdlIHJhbmdlOwogCiAJbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCB2bWEtPnZtX21t LCBhZGRyZXNzICYgSFBBR0VfUFVEX01BU0ssCi0JCQkJKGFkZHJlc3MgJiBIUEFHRV9QVURfTUFT SykgKyBIUEFHRV9QVURfU0laRSk7CisJCQkJKGFkZHJlc3MgJiBIUEFHRV9QVURfTUFTSykgKyBI UEFHRV9QVURfU0laRSwKKwkJCQlNTVVfTk9USUZZX0NMRUFSKTsKIAltbXVfbm90aWZpZXJfaW52 YWxpZGF0ZV9yYW5nZV9zdGFydCgmcmFuZ2UpOwogCXB0bCA9IHB1ZF9sb2NrKHZtYS0+dm1fbW0s IHB1ZCk7CiAJaWYgKHVubGlrZWx5KCFwdWRfdHJhbnNfaHVnZSgqcHVkKSAmJiAhcHVkX2Rldm1h cCgqcHVkKSkpCkBAIC0yMjQzLDcgKzIyNDYsOCBAQCB2b2lkIF9fc3BsaXRfaHVnZV9wbWQoc3Ry dWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHBtZF90ICpwbWQsCiAJc3RydWN0IG1tdV9ub3RpZmll cl9yYW5nZSByYW5nZTsKIAogCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KCZyYW5nZSwgdm1hLT52 bV9tbSwgYWRkcmVzcyAmIEhQQUdFX1BNRF9NQVNLLAotCQkJCShhZGRyZXNzICYgSFBBR0VfUE1E X01BU0spICsgSFBBR0VfUE1EX1NJWkUpOworCQkJCShhZGRyZXNzICYgSFBBR0VfUE1EX01BU0sp ICsgSFBBR0VfUE1EX1NJWkUsCisJCQkJTU1VX05PVElGWV9DTEVBUik7CiAJbW11X25vdGlmaWVy X2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoJnJhbmdlKTsKIAlwdGwgPSBwbWRfbG9jayh2bWEtPnZt X21tLCBwbWQpOwogCmRpZmYgLS1naXQgYS9tbS9odWdldGxiLmMgYi9tbS9odWdldGxiLmMKaW5k ZXggZTdjMTc5Y2JjZDc1Li5mZDEzOTU5MThiYjMgMTAwNjQ0Ci0tLSBhL21tL2h1Z2V0bGIuYwor KysgYi9tbS9odWdldGxiLmMKQEAgLTMyNDYsNyArMzI0Niw3IEBAIGludCBjb3B5X2h1Z2V0bGJf cGFnZV9yYW5nZShzdHJ1Y3QgbW1fc3RydWN0ICpkc3QsIHN0cnVjdCBtbV9zdHJ1Y3QgKnNyYywK IAogCWlmIChjb3cpIHsKIAkJbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCBzcmMsIHZt YS0+dm1fc3RhcnQsCi0JCQkJCXZtYS0+dm1fZW5kKTsKKwkJCQkJdm1hLT52bV9lbmQsIE1NVV9O T1RJRllfQ0xFQVIpOwogCQltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydCgmcmFu Z2UpOwogCX0KIApAQCAtMzM1Nyw3ICszMzU3LDcgQEAgdm9pZCBfX3VubWFwX2h1Z2VwYWdlX3Jh bmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAog CS8qCiAJICogSWYgc2hhcmluZyBwb3NzaWJsZSwgYWxlcnQgbW11IG5vdGlmaWVycyBvZiB3b3Jz dCBjYXNlLgogCSAqLwotCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KCZyYW5nZSwgbW0sIHN0YXJ0 LCBlbmQpOworCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KCZyYW5nZSwgbW0sIHN0YXJ0LCBlbmQs IE1NVV9OT1RJRllfQ0xFQVIpOwogCWFkanVzdF9yYW5nZV9pZl9wbWRfc2hhcmluZ19wb3NzaWJs ZSh2bWEsICZyYW5nZS5zdGFydCwgJnJhbmdlLmVuZCk7CiAJbW11X25vdGlmaWVyX2ludmFsaWRh dGVfcmFuZ2Vfc3RhcnQoJnJhbmdlKTsKIAlhZGRyZXNzID0gc3RhcnQ7CkBAIC0zNjI1LDcgKzM2 MjUsOCBAQCBzdGF0aWMgdm1fZmF1bHRfdCBodWdldGxiX2NvdyhzdHJ1Y3QgbW1fc3RydWN0ICpt bSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJX19TZXRQYWdlVXB0b2RhdGUobmV3X3Bh Z2UpOwogCXNldF9wYWdlX2h1Z2VfYWN0aXZlKG5ld19wYWdlKTsKIAotCW1tdV9ub3RpZmllcl9y YW5nZV9pbml0KCZyYW5nZSwgbW0sIGhhZGRyLCBoYWRkciArIGh1Z2VfcGFnZV9zaXplKGgpKTsK KwltbXVfbm90aWZpZXJfcmFuZ2VfaW5pdCgmcmFuZ2UsIG1tLCBoYWRkciwgaGFkZHIgKyBodWdl X3BhZ2Vfc2l6ZShoKSwKKwkJCQlNTVVfTk9USUZZX0NMRUFSKTsKIAltbXVfbm90aWZpZXJfaW52 YWxpZGF0ZV9yYW5nZV9zdGFydCgmcmFuZ2UpOwogCiAJLyoKQEAgLTQzNDUsNyArNDM0Niw4IEBA IHVuc2lnbmVkIGxvbmcgaHVnZXRsYl9jaGFuZ2VfcHJvdGVjdGlvbihzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYSwKIAkgKiBzdGFydC9lbmQuICBTZXQgcmFuZ2Uuc3RhcnQvcmFuZ2UuZW5kIHRv IGNvdmVyIHRoZSBtYXhpbXVtIHBvc3NpYmxlCiAJICogcmFuZ2UgaWYgUE1EIHNoYXJpbmcgaXMg cG9zc2libGUuCiAJICovCi0JbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCBtbSwgc3Rh cnQsIGVuZCk7CisJbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCBtbSwgc3RhcnQsIGVu ZCwKKwkJCQlNTVVfTk9USUZZX1BST1RFQ1RJT05fVk1BKTsKIAlhZGp1c3RfcmFuZ2VfaWZfcG1k X3NoYXJpbmdfcG9zc2libGUodm1hLCAmcmFuZ2Uuc3RhcnQsICZyYW5nZS5lbmQpOwogCiAJQlVH X09OKGFkZHJlc3MgPj0gZW5kKTsKZGlmZiAtLWdpdCBhL21tL2todWdlcGFnZWQuYyBiL21tL2to dWdlcGFnZWQuYwppbmRleCA3NzM2ZjZjMzdmMTkuLjMzMWRjMjczOGY0OCAxMDA2NDQKLS0tIGEv bW0va2h1Z2VwYWdlZC5jCisrKyBiL21tL2todWdlcGFnZWQuYwpAQCAtMTAxNiw3ICsxMDE2LDgg QEAgc3RhdGljIHZvaWQgY29sbGFwc2VfaHVnZV9wYWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAog CXB0ZSA9IHB0ZV9vZmZzZXRfbWFwKHBtZCwgYWRkcmVzcyk7CiAJcHRlX3B0bCA9IHB0ZV9sb2Nr cHRyKG1tLCBwbWQpOwogCi0JbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCBtbSwgYWRk cmVzcywgYWRkcmVzcyArIEhQQUdFX1BNRF9TSVpFKTsKKwltbXVfbm90aWZpZXJfcmFuZ2VfaW5p dCgmcmFuZ2UsIG1tLCBhZGRyZXNzLCBhZGRyZXNzICsgSFBBR0VfUE1EX1NJWkUsCisJCQkJTU1V X05PVElGWV9DTEVBUik7CiAJbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoJnJh bmdlKTsKIAlwbWRfcHRsID0gcG1kX2xvY2sobW0sIHBtZCk7IC8qIHByb2JhYmx5IHVubmVjZXNz YXJ5ICovCiAJLyoKZGlmZiAtLWdpdCBhL21tL2tzbS5jIGIvbW0va3NtLmMKaW5kZXggNjIzOWQy ZGY3YThlLi45OGE2MjdjMDFlYjAgMTAwNjQ0Ci0tLSBhL21tL2tzbS5jCisrKyBiL21tL2tzbS5j CkBAIC0xMDUxLDcgKzEwNTEsOCBAQCBzdGF0aWMgaW50IHdyaXRlX3Byb3RlY3RfcGFnZShzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJQlVHX09OKFBhZ2VU cmFuc0NvbXBvdW5kKHBhZ2UpKTsKIAogCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KCZyYW5nZSwg bW0sIHB2bXcuYWRkcmVzcywKLQkJCQlwdm13LmFkZHJlc3MgKyBQQUdFX1NJWkUpOworCQkJCXB2 bXcuYWRkcmVzcyArIFBBR0VfU0laRSwKKwkJCQlNTVVfTk9USUZZX0NMRUFSKTsKIAltbXVfbm90 aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydCgmcmFuZ2UpOwogCiAJaWYgKCFwYWdlX3ZtYV9t YXBwZWRfd2FsaygmcHZtdykpCkBAIC0xMTM4LDcgKzExMzksOCBAQCBzdGF0aWMgaW50IHJlcGxh Y2VfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJ aWYgKCFwbWQpCiAJCWdvdG8gb3V0OwogCi0JbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdl LCBtbSwgYWRkciwgYWRkciArIFBBR0VfU0laRSk7CisJbW11X25vdGlmaWVyX3JhbmdlX2luaXQo JnJhbmdlLCBtbSwgYWRkciwgYWRkciArIFBBR0VfU0laRSwKKwkJCQlNTVVfTk9USUZZX0NMRUFS KTsKIAltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydCgmcmFuZ2UpOwogCiAJcHRl cCA9IHB0ZV9vZmZzZXRfbWFwX2xvY2sobW0sIHBtZCwgYWRkciwgJnB0bCk7CmRpZmYgLS1naXQg YS9tbS9tYWR2aXNlLmMgYi9tbS9tYWR2aXNlLmMKaW5kZXggMjFhNzg4MWEyZGI0Li5kMjIwYWQ3 MDg3ZWQgMTAwNjQ0Ci0tLSBhL21tL21hZHZpc2UuYworKysgYi9tbS9tYWR2aXNlLmMKQEAgLTQ3 Miw3ICs0NzIsOCBAQCBzdGF0aWMgaW50IG1hZHZpc2VfZnJlZV9zaW5nbGVfdm1hKHN0cnVjdCB2 bV9hcmVhX3N0cnVjdCAqdm1hLAogCXJhbmdlLmVuZCA9IG1pbih2bWEtPnZtX2VuZCwgZW5kX2Fk ZHIpOwogCWlmIChyYW5nZS5lbmQgPD0gdm1hLT52bV9zdGFydCkKIAkJcmV0dXJuIC1FSU5WQUw7 Ci0JbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCBtbSwgcmFuZ2Uuc3RhcnQsIHJhbmdl LmVuZCk7CisJbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCBtbSwgcmFuZ2Uuc3RhcnQs IHJhbmdlLmVuZCwKKwkJCQlNTVVfTk9USUZZX0NMRUFSKTsKIAogCWxydV9hZGRfZHJhaW4oKTsK IAl0bGJfZ2F0aGVyX21tdSgmdGxiLCBtbSwgcmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7CmRpZmYg LS1naXQgYS9tbS9tZW1vcnkuYyBiL21tL21lbW9yeS5jCmluZGV4IDU3NDMwN2YxMTQ2NC4uODkz ZTNiYzRiODk1IDEwMDY0NAotLS0gYS9tbS9tZW1vcnkuYworKysgYi9tbS9tZW1vcnkuYwpAQCAt MTAwOSw3ICsxMDA5LDggQEAgaW50IGNvcHlfcGFnZV9yYW5nZShzdHJ1Y3QgbW1fc3RydWN0ICpk c3RfbW0sIHN0cnVjdCBtbV9zdHJ1Y3QgKnNyY19tbSwKIAlpc19jb3cgPSBpc19jb3dfbWFwcGlu Zyh2bWEtPnZtX2ZsYWdzKTsKIAogCWlmIChpc19jb3cpIHsKLQkJbW11X25vdGlmaWVyX3Jhbmdl X2luaXQoJnJhbmdlLCBzcmNfbW0sIGFkZHIsIGVuZCk7CisJCW1tdV9ub3RpZmllcl9yYW5nZV9p bml0KCZyYW5nZSwgc3JjX21tLCBhZGRyLCBlbmQsCisJCQkJCU1NVV9OT1RJRllfUFJPVEVDVElP Tl9QQUdFKTsKIAkJbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoJnJhbmdlKTsK IAl9CiAKQEAgLTEzMzMsNyArMTMzNCw4IEBAIHZvaWQgdW5tYXBfdm1hcyhzdHJ1Y3QgbW11X2dh dGhlciAqdGxiLAogewogCXN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UgcmFuZ2U7CiAKLQltbXVf bm90aWZpZXJfcmFuZ2VfaW5pdCgmcmFuZ2UsIHZtYS0+dm1fbW0sIHN0YXJ0X2FkZHIsIGVuZF9h ZGRyKTsKKwltbXVfbm90aWZpZXJfcmFuZ2VfaW5pdCgmcmFuZ2UsIHZtYS0+dm1fbW0sIHN0YXJ0 X2FkZHIsCisJCQkJZW5kX2FkZHIsIE1NVV9OT1RJRllfVU5NQVApOwogCW1tdV9ub3RpZmllcl9p bnZhbGlkYXRlX3JhbmdlX3N0YXJ0KCZyYW5nZSk7CiAJZm9yICggOyB2bWEgJiYgdm1hLT52bV9z dGFydCA8IGVuZF9hZGRyOyB2bWEgPSB2bWEtPnZtX25leHQpCiAJCXVubWFwX3NpbmdsZV92bWEo dGxiLCB2bWEsIHN0YXJ0X2FkZHIsIGVuZF9hZGRyLCBOVUxMKTsKQEAgLTEzNTUsNyArMTM1Nyw4 IEBAIHZvaWQgemFwX3BhZ2VfcmFuZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2ln bmVkIGxvbmcgc3RhcnQsCiAJc3RydWN0IG1tdV9nYXRoZXIgdGxiOwogCiAJbHJ1X2FkZF9kcmFp bigpOwotCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KCZyYW5nZSwgdm1hLT52bV9tbSwgc3RhcnQs IHN0YXJ0ICsgc2l6ZSk7CisJbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCB2bWEtPnZt X21tLCBzdGFydCwKKwkJCQlzdGFydCArIHNpemUsIE1NVV9OT1RJRllfQ0xFQVIpOwogCXRsYl9n YXRoZXJfbW11KCZ0bGIsIHZtYS0+dm1fbW0sIHN0YXJ0LCByYW5nZS5lbmQpOwogCXVwZGF0ZV9o aXdhdGVyX3Jzcyh2bWEtPnZtX21tKTsKIAltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9z dGFydCgmcmFuZ2UpOwpAQCAtMTM4MSw3ICsxMzg0LDggQEAgc3RhdGljIHZvaWQgemFwX3BhZ2Vf cmFuZ2Vfc2luZ2xlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFk ZHIKIAlzdHJ1Y3QgbW11X2dhdGhlciB0bGI7CiAKIAlscnVfYWRkX2RyYWluKCk7Ci0JbW11X25v dGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCB2bWEtPnZtX21tLCBhZGRyZXNzLCBhZGRyZXNzICsg c2l6ZSk7CisJbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCB2bWEtPnZtX21tLCBhZGRy ZXNzLAorCQkJCWFkZHJlc3MgKyBzaXplLCBNTVVfTk9USUZZX0NMRUFSKTsKIAl0bGJfZ2F0aGVy X21tdSgmdGxiLCB2bWEtPnZtX21tLCBhZGRyZXNzLCByYW5nZS5lbmQpOwogCXVwZGF0ZV9oaXdh dGVyX3Jzcyh2bWEtPnZtX21tKTsKIAltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFy dCgmcmFuZ2UpOwpAQCAtMjI3Miw3ICsyMjc2LDggQEAgc3RhdGljIHZtX2ZhdWx0X3Qgd3BfcGFn ZV9jb3B5KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCV9fU2V0UGFnZVVwdG9kYXRlKG5ld19wYWdl KTsKIAogCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KCZyYW5nZSwgbW0sIHZtZi0+YWRkcmVzcyAm IFBBR0VfTUFTSywKLQkJCQkodm1mLT5hZGRyZXNzICYgUEFHRV9NQVNLKSArIFBBR0VfU0laRSk7 CisJCQkJKHZtZi0+YWRkcmVzcyAmIFBBR0VfTUFTSykgKyBQQUdFX1NJWkUsCisJCQkJTU1VX05P VElGWV9DTEVBUik7CiAJbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoJnJhbmdl KTsKIAogCS8qCkBAIC00MDYxLDcgKzQwNjYsOCBAQCBzdGF0aWMgaW50IF9fZm9sbG93X3B0ZV9w bWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKIAogCQlpZiAo cmFuZ2UpIHsKIAkJCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KHJhbmdlLCBtbSwgYWRkcmVzcyAm IFBNRF9NQVNLLAotCQkJCQkgICAgIChhZGRyZXNzICYgUE1EX01BU0spICsgUE1EX1NJWkUpOwor CQkJCQkgICAgIChhZGRyZXNzICYgUE1EX01BU0spICsgUE1EX1NJWkUsCisJCQkJCSAgICAgcmFu Z2UtPmV2ZW50KTsKIAkJCW1tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KHJhbmdl KTsKIAkJfQogCQkqcHRscCA9IHBtZF9sb2NrKG1tLCBwbWQpOwpkaWZmIC0tZ2l0IGEvbW0vbWln cmF0ZS5jIGIvbW0vbWlncmF0ZS5jCmluZGV4IDc0ZjViMzIwOGMwNS4uZjAyYmI0YjIyYzFhIDEw MDY0NAotLS0gYS9tbS9taWdyYXRlLmMKKysrIGIvbW0vbWlncmF0ZS5jCkBAIC0yMzE2LDcgKzIz MTYsNyBAQCBzdGF0aWMgdm9pZCBtaWdyYXRlX3ZtYV9jb2xsZWN0KHN0cnVjdCBtaWdyYXRlX3Zt YSAqbWlncmF0ZSkKIAltbV93YWxrLnByaXZhdGUgPSBtaWdyYXRlOwogCiAJbW11X25vdGlmaWVy X3JhbmdlX2luaXQoJnJhbmdlLCBtbV93YWxrLm1tLCBtaWdyYXRlLT5zdGFydCwKLQkJCQltaWdy YXRlLT5lbmQpOworCQkJCW1pZ3JhdGUtPmVuZCwgTU1VX05PVElGWV9DTEVBUik7CiAJbW11X25v dGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoJnJhbmdlKTsKIAl3YWxrX3BhZ2VfcmFuZ2Uo bWlncmF0ZS0+c3RhcnQsIG1pZ3JhdGUtPmVuZCwgJm1tX3dhbGspOwogCW1tdV9ub3RpZmllcl9p bnZhbGlkYXRlX3JhbmdlX2VuZCgmcmFuZ2UpOwpAQCAtMjcyNSw3ICsyNzI1LDggQEAgc3RhdGlj IHZvaWQgbWlncmF0ZV92bWFfcGFnZXMoc3RydWN0IG1pZ3JhdGVfdm1hICptaWdyYXRlKQogCQkJ CW5vdGlmaWVkID0gdHJ1ZTsKIAogCQkJCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KCZyYW5nZSwg bW0sIGFkZHIsCi0JCQkJCQkJbWlncmF0ZS0+ZW5kKTsKKwkJCQkJCQltaWdyYXRlLT5lbmQsCisJ CQkJCQkJTU1VX05PVElGWV9DTEVBUik7CiAJCQkJbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFu Z2Vfc3RhcnQoJnJhbmdlKTsKIAkJCX0KIAkJCW1pZ3JhdGVfdm1hX2luc2VydF9wYWdlKG1pZ3Jh dGUsIGFkZHIsIG5ld3BhZ2UsCmRpZmYgLS1naXQgYS9tbS9tcHJvdGVjdC5jIGIvbW0vbXByb3Rl Y3QuYwppbmRleCAzNmNiMzU4ZGIxNzAuLmQ1YmJlNWNhNjFhYyAxMDA2NDQKLS0tIGEvbW0vbXBy b3RlY3QuYworKysgYi9tbS9tcHJvdGVjdC5jCkBAIC0xODUsNyArMTg1LDggQEAgc3RhdGljIGlu bGluZSB1bnNpZ25lZCBsb25nIGNoYW5nZV9wbWRfcmFuZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0 ICp2bWEsCiAKIAkJLyogaW52b2tlIHRoZSBtbXUgbm90aWZpZXIgaWYgdGhlIHBtZCBpcyBwb3B1 bGF0ZWQgKi8KIAkJaWYgKCFyYW5nZS5zdGFydCkgewotCQkJbW11X25vdGlmaWVyX3JhbmdlX2lu aXQoJnJhbmdlLCB2bWEtPnZtX21tLCBhZGRyLCBlbmQpOworCQkJbW11X25vdGlmaWVyX3Jhbmdl X2luaXQoJnJhbmdlLCB2bWEtPnZtX21tLCBhZGRyLCBlbmQsCisJCQkJCQlNTVVfTk9USUZZX1BS T1RFQ1RJT05fVk1BKTsKIAkJCW1tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KCZy YW5nZSk7CiAJCX0KIApkaWZmIC0tZ2l0IGEvbW0vbXJlbWFwLmMgYi9tbS9tcmVtYXAuYwppbmRl eCBkZWYwMWQ4NmUzNmYuLjM4NmUzYzQ5MmY2ZSAxMDA2NDQKLS0tIGEvbW0vbXJlbWFwLmMKKysr IGIvbW0vbXJlbWFwLmMKQEAgLTIwMyw3ICsyMDMsOCBAQCB1bnNpZ25lZCBsb25nIG1vdmVfcGFn ZV90YWJsZXMoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJb2xkX2VuZCA9IG9sZF9hZGRy ICsgbGVuOwogCWZsdXNoX2NhY2hlX3JhbmdlKHZtYSwgb2xkX2FkZHIsIG9sZF9lbmQpOwogCi0J bW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCB2bWEtPnZtX21tLCBvbGRfYWRkciwgb2xk X2VuZCk7CisJbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdlLCB2bWEtPnZtX21tLCBvbGRf YWRkciwKKwkJCQlvbGRfZW5kLCBNTVVfTk9USUZZX1VOTUFQKTsKIAltbXVfbm90aWZpZXJfaW52 YWxpZGF0ZV9yYW5nZV9zdGFydCgmcmFuZ2UpOwogCiAJZm9yICg7IG9sZF9hZGRyIDwgb2xkX2Vu ZDsgb2xkX2FkZHIgKz0gZXh0ZW50LCBuZXdfYWRkciArPSBleHRlbnQpIHsKZGlmZiAtLWdpdCBh L21tL29vbV9raWxsLmMgYi9tbS9vb21fa2lsbC5jCmluZGV4IDFlZWE4YjA0ZjI3YS4uNGFjOTUw MzJiODk4IDEwMDY0NAotLS0gYS9tbS9vb21fa2lsbC5jCisrKyBiL21tL29vbV9raWxsLmMKQEAg LTUyMCw3ICs1MjAsNyBAQCBib29sIF9fb29tX3JlYXBfdGFza19tbShzdHJ1Y3QgbW1fc3RydWN0 ICptbSkKIAkJCXN0cnVjdCBtbXVfZ2F0aGVyIHRsYjsKIAogCQkJbW11X25vdGlmaWVyX3Jhbmdl X2luaXQoJnJhbmdlLCBtbSwgdm1hLT52bV9zdGFydCwKLQkJCQkJCXZtYS0+dm1fZW5kKTsKKwkJ CQkJCXZtYS0+dm1fZW5kLCBNTVVfTk9USUZZX0NMRUFSKTsKIAkJCXRsYl9nYXRoZXJfbW11KCZ0 bGIsIG1tLCByYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKIAkJCWlmIChtbXVfbm90aWZpZXJfaW52 YWxpZGF0ZV9yYW5nZV9zdGFydF9ub25ibG9jaygmcmFuZ2UpKSB7CiAJCQkJdGxiX2ZpbmlzaF9t bXUoJnRsYiwgcmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7CmRpZmYgLS1naXQgYS9tbS9ybWFwLmMg Yi9tbS9ybWFwLmMKaW5kZXggYzc1ZjcyZjZmZTBlLi42Y2EwMTljZGM3ODkgMTAwNjQ0Ci0tLSBh L21tL3JtYXAuYworKysgYi9tbS9ybWFwLmMKQEAgLTg5OCw3ICs4OTgsOCBAQCBzdGF0aWMgYm9v bCBwYWdlX21rY2xlYW5fb25lKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSwKIAkgKi8KIAltbXVfbm90aWZpZXJfcmFuZ2VfaW5pdCgmcmFuZ2UsIHZtYS0+dm1f bW0sIGFkZHJlc3MsCiAJCQkJbWluKHZtYS0+dm1fZW5kLCBhZGRyZXNzICsKLQkJCQkgICAgKFBB R0VfU0laRSA8PCBjb21wb3VuZF9vcmRlcihwYWdlKSkpKTsKKwkJCQkgICAgKFBBR0VfU0laRSA8 PCBjb21wb3VuZF9vcmRlcihwYWdlKSkpLAorCQkJCU1NVV9OT1RJRllfUFJPVEVDVElPTl9QQUdF KTsKIAltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFydCgmcmFuZ2UpOwogCiAJd2hp bGUgKHBhZ2Vfdm1hX21hcHBlZF93YWxrKCZwdm13KSkgewpAQCAtMTM3Myw3ICsxMzc0LDggQEAg c3RhdGljIGJvb2wgdHJ5X3RvX3VubWFwX29uZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsCiAJICovCiAJbW11X25vdGlmaWVyX3JhbmdlX2luaXQoJnJhbmdl LCB2bWEtPnZtX21tLCB2bWEtPnZtX3N0YXJ0LAogCQkJCW1pbih2bWEtPnZtX2VuZCwgdm1hLT52 bV9zdGFydCArCi0JCQkJICAgIChQQUdFX1NJWkUgPDwgY29tcG91bmRfb3JkZXIocGFnZSkpKSk7 CisJCQkJICAgIChQQUdFX1NJWkUgPDwgY29tcG91bmRfb3JkZXIocGFnZSkpKSwKKwkJCQlNTVVf Tk9USUZZX0NMRUFSKTsKIAlpZiAoUGFnZUh1Z2UocGFnZSkpIHsKIAkJLyoKIAkJICogSWYgc2hh cmluZyBpcyBwb3NzaWJsZSwgc3RhcnQgYW5kIGVuZCB3aWxsIGJlIGFkanVzdGVkCi0tIAoyLjE3 LjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=