From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH 2/8] xen: Use typesafe gfn/mfn in guest_physmap_* helpers Date: Tue, 14 Jun 2016 13:07:01 +0100 Message-ID: <1465906027-16614-3-git-send-email-julien.grall@arm.com> References: <1465906027-16614-1-git-send-email-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1465906027-16614-1-git-send-email-julien.grall@arm.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: sstabellini@kernel.org, Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jan Beulich , wei.chen@linaro.org List-Id: xen-devel@lists.xenproject.org QWxzbyByZW5hbWUgc29tZSB2YXJpYWJsZXMgdG8gZ2ZuIG9yIG1mbiB3aGVuIGl0IGRvZXMgbm90 IHJlcXVpcmUgbXVjaApyZXdvcmsuCgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGll bi5ncmFsbEBhcm0uY29tPgoKLS0tCkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5p QGtlcm5lbC5vcmc+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogUGF1bCBEdXJyYW50IDxw YXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBA ZXUuY2l0cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29t PgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzog VGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29t PgotLS0KIHhlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyAgICAgICAgfCAgMiArLQogeGVuL2Fy Y2gvYXJtL21tLmMgICAgICAgICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KIHhlbi9hcmNoL2Fy bS9wMm0uYyAgICAgICAgICAgICAgICAgfCAyMCArKysrKysrKysrLS0tLS0tLS0tLQogeGVuL2Fy Y2gveDg2L2RvbWFpbi5jICAgICAgICAgICAgICB8ICA1ICsrKy0tCiB4ZW4vYXJjaC94ODYvZG9t YWluX2J1aWxkLmMgICAgICAgIHwgIDYgKysrLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMg ICAgICAgICAgIHwgIDggKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAg ICAgfCAxMiArKysrKysrLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0uYyAgICAgICAgICAgICAg fCAzMiArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogeGVuL2NvbW1vbi9ncmFudF90 YWJsZS5jICAgICAgICAgICB8ICA3ICsrKystLS0KIHhlbi9jb21tb24vbWVtb3J5LmMgICAgICAg ICAgICAgICAgfCAzMiArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogeGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYyB8ICA0ICsrLS0KIHhlbi9pbmNsdWRlL2FzbS1hcm0v cDJtLmggICAgICAgICAgfCAxMiArKysrKystLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvcDJt LmggICAgICAgICAgfCAxMSArKysrKy0tLS0tLQogeGVuL2luY2x1ZGUveGVuL21tLmggICAgICAg ICAgICAgICB8ICAyICstCiAxNCBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCA3NSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94 ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKaW5kZXggMmU0YzI5NS4uMDJiNDUzOSAxMDA2NDQK LS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21h aW5fYnVpbGQuYwpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBib29sX3QgaW5zZXJ0XzExX2Jh bmsoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHJl cyA9IGd1ZXN0X3BoeXNtYXBfYWRkX3BhZ2UoZCwgc3Bmbiwgc3Bmbiwgb3JkZXIpOworICAgIHJl cyA9IGd1ZXN0X3BoeXNtYXBfYWRkX3BhZ2UoZCwgX2dmbihzcGZuKSwgX21mbihzcGZuKSwgb3Jk ZXIpOwogICAgIGlmICggcmVzICkKICAgICAgICAgcGFuaWMoIkZhaWxlZCBtYXAgcGFnZXMgdG8g RE9NMDogJWQiLCByZXMpOwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbW0uYyBiL3hlbi9h cmNoL2FybS9tbS5jCmluZGV4IDJlYzIxMWIuLjVhYjliNzUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L2FybS9tbS5jCisrKyBiL3hlbi9hcmNoL2FybS9tbS5jCkBAIC0xMTUzLDcgKzExNTMsNyBAQCBp bnQgeGVubWVtX2FkZF90b19waHlzbWFwX29uZSgKICAgICB9CiAKICAgICAvKiBNYXAgYXQgbmV3 IGxvY2F0aW9uLiAqLwotICAgIHJjID0gZ3Vlc3RfcGh5c21hcF9hZGRfZW50cnkoZCwgZ3Bmbiwg bWZuLCAwLCB0KTsKKyAgICByYyA9IGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KGQsIF9nZm4oZ3Bm biksIF9tZm4obWZuKSwgMCwgdCk7CiAKICAgICAvKiBJZiB3ZSBmYWlsIHRvIGFkZCB0aGUgbWFw cGluZywgd2UgbmVlZCB0byBkcm9wIHRoZSByZWZlcmVuY2Ugd2UKICAgICAgKiB0b29rIGVhcmxp ZXIgb24gZm9yZWlnbiBwYWdlcyAqLwpAQCAtMTI4Miw4ICsxMjgyLDggQEAgaW50IGNyZWF0ZV9n cmFudF9ob3N0X21hcHBpbmcodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGZyYW1l LAogICAgIGlmICggZmxhZ3MgJiBHTlRNQVBfcmVhZG9ubHkgKQogICAgICAgICB0ID0gcDJtX2dy YW50X21hcF9ybzsKIAotICAgIHJjID0gZ3Vlc3RfcGh5c21hcF9hZGRfZW50cnkoY3VycmVudC0+ ZG9tYWluLCBhZGRyID4+IFBBR0VfU0hJRlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmcmFtZSwgMCwgdCk7CisgICAgcmMgPSBndWVzdF9waHlzbWFwX2FkZF9lbnRyeShjdXJy ZW50LT5kb21haW4sIF9nZm4oYWRkciA+PiBQQUdFX1NISUZUKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF9tZm4oZnJhbWUpLCAwLCB0KTsKIAogICAgIGlmICggcmMgKQogICAg ICAgICByZXR1cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKQEAgLTEyOTQsMTMgKzEyOTQsMTMgQEAg aW50IGNyZWF0ZV9ncmFudF9ob3N0X21hcHBpbmcodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25l ZCBsb25nIGZyYW1lLAogaW50IHJlcGxhY2VfZ3JhbnRfaG9zdF9tYXBwaW5nKHVuc2lnbmVkIGxv bmcgYWRkciwgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbmV3X2Fk ZHIsIHVuc2lnbmVkIGludCBmbGFncykKIHsKLSAgICB1bnNpZ25lZCBsb25nIGdmbiA9ICh1bnNp Z25lZCBsb25nKShhZGRyID4+IFBBR0VfU0hJRlQpOworICAgIGdmbl90IGdmbiA9IF9nZm4oYWRk ciA+PiBQQUdFX1NISUZUKTsKICAgICBzdHJ1Y3QgZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWlu OwogCiAgICAgaWYgKCBuZXdfYWRkciAhPSAwIHx8IChmbGFncyAmIEdOVE1BUF9jb250YWluc19w dGUpICkKICAgICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAKLSAgICBndWVzdF9w aHlzbWFwX3JlbW92ZV9wYWdlKGQsIGdmbiwgbWZuLCAwKTsKKyAgICBndWVzdF9waHlzbWFwX3Jl bW92ZV9wYWdlKGQsIGdmbiwgX21mbihtZm4pLCAwKTsKIAogICAgIHJldHVybiBHTlRTVF9va2F5 OwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3AybS5jIGIveGVuL2FyY2gvYXJtL3AybS5j CmluZGV4IDg2N2UyOTQuLmRlY2VjMGQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9wMm0uYwor KysgYi94ZW4vYXJjaC9hcm0vcDJtLmMKQEAgLTEyOTAsMjYgKzEyOTAsMjYgQEAgaW50IG1hcF9k ZXZfbW1pb19yZWdpb24oc3RydWN0IGRvbWFpbiAqZCwKIH0KIAogaW50IGd1ZXN0X3BoeXNtYXBf YWRkX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgbG9uZyBncGZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl90IGdmbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4sCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBwYWdlX29yZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHAybV90eXBlX3QgdCkKIHsKICAgICByZXR1cm4gYXBwbHlfcDJtX2NoYW5nZXMoZCwgSU5T RVJULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZm5fdG9fcGFkZHIoZ3BmbiksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBmbl90b19wYWRkcihncGZuICsgKDEgPDwgcGFn ZV9vcmRlcikpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZm5fdG9fcGFkZHIobWZu KSwgTUFUVFJfTUVNLCAwLCB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZm5fdG9f cGFkZHIoZ2ZuX3goZ2ZuKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBmbl90b19w YWRkcihnZm5feChnZm4pICsgKDEgPDwgcGFnZV9vcmRlcikpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwZm5fdG9fcGFkZHIobWZuX3gobWZuKSksIE1BVFRSX01FTSwgMCwgdCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZC0+YXJjaC5wMm0uZGVmYXVsdF9hY2Nlc3MpOwog fQogCiB2b2lkIGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGdwZm4sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGludCBw YWdlX29yZGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl90IGdmbiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4sIHVuc2lnbmVkIGludCBwYWdl X29yZGVyKQogewogICAgIGFwcGx5X3AybV9jaGFuZ2VzKGQsIFJFTU9WRSwKLSAgICAgICAgICAg ICAgICAgICAgICBwZm5fdG9fcGFkZHIoZ3BmbiksCi0gICAgICAgICAgICAgICAgICAgICAgcGZu X3RvX3BhZGRyKGdwZm4gKyAoMTw8cGFnZV9vcmRlcikpLAotICAgICAgICAgICAgICAgICAgICAg IHBmbl90b19wYWRkcihtZm4pLCBNQVRUUl9NRU0sIDAsIHAybV9pbnZhbGlkLAorICAgICAgICAg ICAgICAgICAgICAgIHBmbl90b19wYWRkcihnZm5feChnZm4pKSwKKyAgICAgICAgICAgICAgICAg ICAgICBwZm5fdG9fcGFkZHIoZ2ZuX3goZ2ZuKSArICgxPDxwYWdlX29yZGVyKSksCisgICAgICAg ICAgICAgICAgICAgICAgcGZuX3RvX3BhZGRyKG1mbl94KG1mbikpLCBNQVRUUl9NRU0sIDAsIHAy bV9pbnZhbGlkLAogICAgICAgICAgICAgICAgICAgICAgIGQtPmFyY2gucDJtLmRlZmF1bHRfYWNj ZXNzKTsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbi5jIGIveGVuL2FyY2gv eDg2L2RvbWFpbi5jCmluZGV4IDk4OWJjNzQuLmZmODI4MTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMKQEAgLTgwMiw5ICs4MDIs MTAgQEAgaW50IGFyY2hfZG9tYWluX3NvZnRfcmVzZXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAg ICAgcmV0ID0gLUVOT01FTTsKICAgICAgICAgZ290byBleGl0X3B1dF9nZm47CiAgICAgfQotICAg IGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgZ2ZuLCBtZm4sIFBBR0VfT1JERVJfNEspOwor ICAgIGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgX2dmbihnZm4pLCBfbWZuKG1mbiksIFBB R0VfT1JERVJfNEspOwogCi0gICAgcmV0ID0gZ3Vlc3RfcGh5c21hcF9hZGRfcGFnZShkLCBnZm4s IHBhZ2VfdG9fbWZuKG5ld19wYWdlKSwgUEFHRV9PUkRFUl80Syk7CisgICAgcmV0ID0gZ3Vlc3Rf cGh5c21hcF9hZGRfcGFnZShkLCBfZ2ZuKGdmbiksIF9tZm4ocGFnZV90b19tZm4obmV3X3BhZ2Up KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBR0VfT1JERVJfNEspOwogICAg IGlmICggcmV0ICkKICAgICB7CiAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgIkZhaWxlZCB0 byBhZGQgYSBwYWdlIHRvIHJlcGxhY2UiCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWlu X2J1aWxkLmMgYi94ZW4vYXJjaC94ODYvZG9tYWluX2J1aWxkLmMKaW5kZXggYjI5YzM3Ny4uMGEw MmQ2NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RvbWFpbl9idWlsZC5jCisrKyBiL3hlbi9h cmNoL3g4Ni9kb21haW5fYnVpbGQuYwpAQCAtNDI3LDcgKzQyNyw3IEBAIHN0YXRpYyBfX2luaXQg dm9pZCBwdmhfYWRkX21lbV9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg Z2ZuLAogICAgICAgICBpZiAoICFpb21lbV9hY2Nlc3NfcGVybWl0dGVkKGQsIG1mbiArIGksIG1m biArIGkpICkKICAgICAgICAgewogICAgICAgICAgICAgb21mbiA9IGdldF9nZm5fcXVlcnlfdW5s b2NrZWQoZCwgZ2ZuICsgaSwgJnQpOwotICAgICAgICAgICAgZ3Vlc3RfcGh5c21hcF9yZW1vdmVf cGFnZShkLCBnZm4gKyBpLCBtZm5feChvbWZuKSwgUEFHRV9PUkRFUl80Syk7CisgICAgICAgICAg ICBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdlKGQsIF9nZm4oZ2ZuICsgaSksIG9tZm4sIFBBR0Vf T1JERVJfNEspOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtNTMwLDcg KzUzMCw3IEBAIHN0YXRpYyBfX2luaXQgdm9pZCBwdmhfbWFwX2FsbF9pb21lbShzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzKQogICAgICAgICAgICAgaWYgKCBnZXRfZ3Bm bl9mcm9tX21mbihtZm4pICE9IElOVkFMSURfTTJQX0VOVFJZICkKICAgICAgICAgICAgICAgICBj b250aW51ZTsKIAotICAgICAgICAgICAgcmMgPSBndWVzdF9waHlzbWFwX2FkZF9wYWdlKGQsIHN0 YXJ0X3BmbiwgbWZuLCAwKTsKKyAgICAgICAgICAgIHJjID0gZ3Vlc3RfcGh5c21hcF9hZGRfcGFn ZShkLCBfZ2ZuKHN0YXJ0X3BmbiksIF9tZm4obWZuKSwgMCk7CiAgICAgICAgICAgICBpZiAoIHJj ICE9IDAgKQogICAgICAgICAgICAgICAgIHBhbmljKCJVbmFibGUgdG8gYWRkIGdwZm4gJSNseCBt Zm4gJSNseCB0byBEb20wIHBoeXNtYXA6ICVkIiwKICAgICAgICAgICAgICAgICAgICAgICBzdGFy dF9wZm4sIG1mbiwgcmMpOwpAQCAtNjA1LDcgKzYwNSw3IEBAIHN0YXRpYyBfX2luaXQgdm9pZCBk b20wX3VwZGF0ZV9waHlzbWFwKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgcGZuLAog ewogICAgIGlmICggaXNfcHZoX2RvbWFpbihkKSApCiAgICAgewotICAgICAgICBpbnQgcmMgPSBn dWVzdF9waHlzbWFwX2FkZF9wYWdlKGQsIHBmbiwgbWZuLCAwKTsKKyAgICAgICAgaW50IHJjID0g Z3Vlc3RfcGh5c21hcF9hZGRfcGFnZShkLCBfZ2ZuKHBmbiksIF9tZm4obWZuKSwgMCk7CiAgICAg ICAgIEJVR19PTihyYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL2lvcmVxLmMgYi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKaW5kZXggMzMz Y2UxNC4uNzE0OGFjNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYwpAQCAtMjY3LDggKzI2Nyw4IEBAIGJvb2xfdCBpc19p b3JlcV9zZXJ2ZXJfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBzdHJ1Y3QgcGFnZV9pbmZv ICpwYWdlKQogc3RhdGljIHZvaWQgaHZtX3JlbW92ZV9pb3JlcV9nbWZuKAogICAgIHN0cnVjdCBk b21haW4gKmQsIHN0cnVjdCBodm1faW9yZXFfcGFnZSAqaW9ycCkKIHsKLSAgICBndWVzdF9waHlz bWFwX3JlbW92ZV9wYWdlKGQsIGlvcnAtPmdtZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYWdlX3RvX21mbihpb3JwLT5wYWdlKSwgMCk7CisgICAgZ3Vlc3RfcGh5c21hcF9yZW1v dmVfcGFnZShkLCBfZ2ZuKGlvcnAtPmdtZm4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgX21mbihwYWdlX3RvX21mbihpb3JwLT5wYWdlKSksIDApOwogICAgIGNsZWFyX3BhZ2UoaW9y cC0+dmEpOwogfQogCkBAIC0yNzksOCArMjc5LDggQEAgc3RhdGljIGludCBodm1fYWRkX2lvcmVx X2dtZm4oCiAKICAgICBjbGVhcl9wYWdlKGlvcnAtPnZhKTsKIAotICAgIHJjID0gZ3Vlc3RfcGh5 c21hcF9hZGRfcGFnZShkLCBpb3JwLT5nbWZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYWdlX3RvX21mbihpb3JwLT5wYWdlKSwgMCk7CisgICAgcmMgPSBndWVzdF9waHlzbWFw X2FkZF9wYWdlKGQsIF9nZm4oaW9ycC0+Z21mbiksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9tZm4ocGFnZV90b19tZm4oaW9ycC0+cGFnZSkpLCAwKTsKICAgICBpZiAoIHJjID09 IDAgKQogICAgICAgICBwYWdpbmdfbWFya19kaXJ0eShkLCBwYWdlX3RvX21mbihpb3JwLT5wYWdl KSk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMK aW5kZXggOGQxMGEzZS4uYTZlMDdmMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysr IGIveGVuL2FyY2gveDg2L21tLmMKQEAgLTQyMDgsNyArNDIwOCw4IEBAIHN0YXRpYyBpbnQgY3Jl YXRlX2dyYW50X3AybV9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUs CiAgICAgZWxzZQogICAgICAgICBwMm10ID0gcDJtX2dyYW50X21hcF9ydzsKICAgICByYyA9IGd1 ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KGN1cnJlbnQtPmRvbWFpbiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFkZHIgPj4gUEFHRV9TSElGVCwgZnJhbWUsIFBBR0VfT1JERVJfNEss IHAybXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2dmbihhZGRyID4+IFBB R0VfU0hJRlQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21mbihmcmFtZSks IFBBR0VfT1JERVJfNEssIHAybXQpOwogICAgIGlmICggcmMgKQogICAgICAgICByZXR1cm4gR05U U1RfZ2VuZXJhbF9lcnJvcjsKICAgICBlbHNlCkBAIC00MjY1LDcgKzQyNjYsNyBAQCBzdGF0aWMg aW50IHJlcGxhY2VfZ3JhbnRfcDJtX21hcHBpbmcoCiAgICAgICAgICAgICAgICAgdHlwZSwgbWZu X3gob2xkX21mbiksIGZyYW1lKTsKICAgICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7 CiAgICAgfQotICAgIGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgZ2ZuLCBmcmFtZSwgUEFH RV9PUkRFUl80Syk7CisgICAgZ3Vlc3RfcGh5c21hcF9yZW1vdmVfcGFnZShkLCBfZ2ZuKGdmbiks IF9tZm4oZnJhbWUpLCBQQUdFX09SREVSXzRLKTsKIAogICAgIHB1dF9nZm4oZCwgZ2ZuKTsKICAg ICByZXR1cm4gR05UU1Rfb2theTsKQEAgLTQ4NTAsNyArNDg1MSw4IEBAIGludCB4ZW5tZW1fYWRk X3RvX3BoeXNtYXBfb25lKAogICAgIHsKICAgICAgICAgaWYgKCBpc194ZW5faGVhcF9tZm4ocHJl dl9tZm4pICkKICAgICAgICAgICAgIC8qIFhlbiBoZWFwIGZyYW1lcyBhcmUgc2ltcGx5IHVuaG9v a2VkIGZyb20gdGhpcyBwaHlzIHNsb3QuICovCi0gICAgICAgICAgICBndWVzdF9waHlzbWFwX3Jl bW92ZV9wYWdlKGQsIGdwZm4sIHByZXZfbWZuLCBQQUdFX09SREVSXzRLKTsKKyAgICAgICAgICAg IGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgX2dmbihncGZuKSwgX21mbihwcmV2X21mbiks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBR0VfT1JERVJfNEspOwog ICAgICAgICBlbHNlCiAgICAgICAgICAgICAvKiBOb3JtYWwgZG9tYWluIG1lbW9yeSBpcyBmcmVl ZCwgdG8gYXZvaWQgbGVha2luZyBtZW1vcnkuICovCiAgICAgICAgICAgICBndWVzdF9yZW1vdmVf cGFnZShkLCBncGZuKTsKQEAgLTQ4NjQsMTAgKzQ4NjYsMTAgQEAgaW50IHhlbm1lbV9hZGRfdG9f cGh5c21hcF9vbmUoCiAgICAgaWYgKCBzcGFjZSA9PSBYRU5NQVBTUEFDRV9nbWZuIHx8IHNwYWNl ID09IFhFTk1BUFNQQUNFX2dtZm5fcmFuZ2UgKQogICAgICAgICBBU1NFUlQoIG9sZF9ncGZuID09 IGdmbiApOwogICAgIGlmICggb2xkX2dwZm4gIT0gSU5WQUxJRF9NMlBfRU5UUlkgKQotICAgICAg ICBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdlKGQsIG9sZF9ncGZuLCBtZm4sIFBBR0VfT1JERVJf NEspOworICAgICAgICBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdlKGQsIF9nZm4ob2xkX2dwZm4p LCBfbWZuKG1mbiksIFBBR0VfT1JERVJfNEspOwogCiAgICAgLyogTWFwIGF0IG5ldyBsb2NhdGlv bi4gKi8KLSAgICByYyA9IGd1ZXN0X3BoeXNtYXBfYWRkX3BhZ2UoZCwgZ3BmbiwgbWZuLCBQQUdF X09SREVSXzRLKTsKKyAgICByYyA9IGd1ZXN0X3BoeXNtYXBfYWRkX3BhZ2UoZCwgX2dmbihncGZu KSwgX21mbihtZm4pLCBQQUdFX09SREVSXzRLKTsKIAogICAgIC8qIEluIHRoZSBYRU5NQVBTUEFD RV9nbWZuLCB3ZSB0b29rIGEgcmVmIG9mIHRoZSBnZm4gYXQgdGhlIHRvcCAqLwogICAgIGlmICgg c3BhY2UgPT0gWEVOTUFQU1BBQ0VfZ21mbiB8fCBzcGFjZSA9PSBYRU5NQVBTUEFDRV9nbWZuX3Jh bmdlICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9t bS9wMm0uYwppbmRleCA5YjE5NzY5Li5mYWY2ZTEzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv bW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC02NjUsMjEgKzY2NSwyMSBA QCBwMm1fcmVtb3ZlX3BhZ2Uoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBn Zm4sIHVuc2lnbmVkIGxvbmcgbWZuLAogfQogCiBpbnQKLWd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3Bh Z2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBpbnQgcGFnZV9vcmRlcikKK2d1 ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLAorICAg ICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4sIHVuc2lnbmVkIGludCBwYWdlX29yZGVy KQogewogICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSBwMm1fZ2V0X2hvc3RwMm0oZCk7CiAg ICAgaW50IHJjOwogICAgIGdmbl9sb2NrKHAybSwgZ2ZuLCBwYWdlX29yZGVyKTsKLSAgICByYyA9 IHAybV9yZW1vdmVfcGFnZShwMm0sIGdmbiwgbWZuLCBwYWdlX29yZGVyKTsKKyAgICByYyA9IHAy bV9yZW1vdmVfcGFnZShwMm0sIGdmbl94KGdmbiksIG1mbl94KG1mbiksIHBhZ2Vfb3JkZXIpOwog ICAgIGdmbl91bmxvY2socDJtLCBnZm4sIHBhZ2Vfb3JkZXIpOwogICAgIHJldHVybiByYzsKIH0K IAotaW50Ci1ndWVzdF9waHlzbWFwX2FkZF9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l ZCBsb25nIGdmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuLCB1 bnNpZ25lZCBpbnQgcGFnZV9vcmRlciwgCi0gICAgICAgICAgICAgICAgICAgICAgICBwMm1fdHlw ZV90IHQpCitzdGF0aWMgaW50CitfX2d1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIG1mbiwgdW5zaWduZWQgaW50IHBhZ2Vfb3JkZXIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgIHAybV90eXBlX3QgdCkKIHsKICAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0g cDJtX2dldF9ob3N0cDJtKGQpOwogICAgIHVuc2lnbmVkIGxvbmcgaSwgb2dmbjsKQEAgLTgzOCw2 ICs4MzgsMTMgQEAgb3V0OgogICAgIHJldHVybiByYzsKIH0KIAorLyogWFhYOiBUbyBiZSByZW1v dmVkIHdoZW4gX19ndWVzdF9waHlzbWFwX2FkZF9lbnRyeSB3aWxsIHVzZSB0eXBlc2FmZSAqLwor aW50CitndWVzdF9waHlzbWFwX2FkZF9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4s IG1mbl90IG1mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwYWdlX29y ZGVyLCBwMm1fdHlwZV90IHQpCit7CisgICAgcmV0dXJuIF9fZ3Vlc3RfcGh5c21hcF9hZGRfZW50 cnkoZCwgZ2ZuX3goZ2ZuKSwgbWZuX3gobWZuKSwgcGFnZV9vcmRlciwgdCk7Cit9CiAKIC8qCiAg KiBNb2RpZnkgdGhlIHAybSB0eXBlIG9mIGEgc2luZ2xlIGdmbiBmcm9tIG90IHRvIG50LgpAQCAt Mjc4NSw3ICsyNzkyLDggQEAgaW50IHAybV9hZGRfZm9yZWlnbihzdHJ1Y3QgZG9tYWluICp0ZG9t LCB1bnNpZ25lZCBsb25nIGZnZm4sCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg Z3BmbiwgZG9taWRfdCBmb3JlaWduZG9tKQogewogICAgIHAybV90eXBlX3QgcDJtdCwgcDJtdF9w cmV2OwotICAgIHVuc2lnbmVkIGxvbmcgcHJldl9tZm4sIG1mbjsKKyAgICBtZm5fdCBwcmV2X21m bjsKKyAgICB1bnNpZ25lZCBsb25nIG1mbjsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwog ICAgIGludCByYzsKICAgICBzdHJ1Y3QgZG9tYWluICpmZG9tOwpAQCAtMjgzMSwxMiArMjgzOSwx MiBAQCBpbnQgcDJtX2FkZF9mb3JlaWduKHN0cnVjdCBkb21haW4gKnRkb20sIHVuc2lnbmVkIGxv bmcgZmdmbiwKICAgICBtZm4gPSBtZm5feChwYWdlX3RvX21mbihwYWdlKSk7CiAKICAgICAvKiBS ZW1vdmUgcHJldmlvdXNseSBtYXBwZWQgcGFnZSBpZiBpdCBpcyBwcmVzZW50LiAqLwotICAgIHBy ZXZfbWZuID0gbWZuX3goZ2V0X2dmbih0ZG9tLCBncGZuLCAmcDJtdF9wcmV2KSk7Ci0gICAgaWYg KCBtZm5fdmFsaWQoX21mbihwcmV2X21mbikpICkKKyAgICBwcmV2X21mbiA9IGdldF9nZm4odGRv bSwgZ3BmbiwgJnAybXRfcHJldik7CisgICAgaWYgKCBtZm5fdmFsaWQocHJldl9tZm4pICkKICAg ICB7Ci0gICAgICAgIGlmICggaXNfeGVuX2hlYXBfbWZuKHByZXZfbWZuKSApCisgICAgICAgIGlm ICggaXNfeGVuX2hlYXBfbWZuKG1mbl94KHByZXZfbWZuKSkgKQogICAgICAgICAgICAgLyogWGVu IGhlYXAgZnJhbWVzIGFyZSBzaW1wbHkgdW5ob29rZWQgZnJvbSB0aGlzIHBoeXMgc2xvdCAqLwot ICAgICAgICAgICAgZ3Vlc3RfcGh5c21hcF9yZW1vdmVfcGFnZSh0ZG9tLCBncGZuLCBwcmV2X21m biwgMCk7CisgICAgICAgICAgICBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdlKHRkb20sIF9nZm4o Z3BmbiksIHByZXZfbWZuLCAwKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgLyogTm9ybWFs IGRvbWFpbiBtZW1vcnkgaXMgZnJlZWQsIHRvIGF2b2lkIGxlYWtpbmcgbWVtb3J5LiAqLwogICAg ICAgICAgICAgZ3Vlc3RfcmVtb3ZlX3BhZ2UodGRvbSwgZ3Bmbik7CmRpZmYgLS1naXQgYS94ZW4v Y29tbW9uL2dyYW50X3RhYmxlLmMgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKaW5kZXggM2Mz MDRmNC4uM2YxNTU0MyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCisrKyBi L3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwpAQCAtMTgxOCw3ICsxODE4LDcgQEAgZ250dGFiX3Ry YW5zZmVyKAogICAgICAgICAgICAgZ290byBjb3B5YmFjazsKICAgICAgICAgfQogCi0gICAgICAg IGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgZ29wLm1mbiwgbWZuLCAwKTsKKyAgICAgICAg Z3Vlc3RfcGh5c21hcF9yZW1vdmVfcGFnZShkLCBfZ2ZuKGdvcC5tZm4pLCBfbWZuKG1mbiksIDAp OwogICAgICAgICBnbnR0YWJfZmx1c2hfdGxiKGQpOwogCiAgICAgICAgIC8qIEZpbmQgdGhlIHRh cmdldCBkb21haW4uICovCkBAIC0xOTQ2LDcgKzE5NDYsNyBAQCBnbnR0YWJfdHJhbnNmZXIoCiAg ICAgICAgIHsKICAgICAgICAgICAgIGdyYW50X2VudHJ5X3YxX3QgKnNoYSA9ICZzaGFyZWRfZW50 cnlfdjEoZS0+Z3JhbnRfdGFibGUsIGdvcC5yZWYpOwogCi0gICAgICAgICAgICBndWVzdF9waHlz bWFwX2FkZF9wYWdlKGUsIHNoYS0+ZnJhbWUsIG1mbiwgMCk7CisgICAgICAgICAgICBndWVzdF9w aHlzbWFwX2FkZF9wYWdlKGUsIF9nZm4oc2hhLT5mcmFtZSksIF9tZm4obWZuKSwgMCk7CiAgICAg ICAgICAgICBpZiAoICFwYWdpbmdfbW9kZV90cmFuc2xhdGUoZSkgKQogICAgICAgICAgICAgICAg IHNoYS0+ZnJhbWUgPSBtZm47CiAgICAgICAgIH0KQEAgLTE5NTQsNyArMTk1NCw4IEBAIGdudHRh Yl90cmFuc2ZlcigKICAgICAgICAgewogICAgICAgICAgICAgZ3JhbnRfZW50cnlfdjJfdCAqc2hh ID0gJnNoYXJlZF9lbnRyeV92MihlLT5ncmFudF90YWJsZSwgZ29wLnJlZik7CiAKLSAgICAgICAg ICAgIGd1ZXN0X3BoeXNtYXBfYWRkX3BhZ2UoZSwgc2hhLT5mdWxsX3BhZ2UuZnJhbWUsIG1mbiwg MCk7CisgICAgICAgICAgICBndWVzdF9waHlzbWFwX2FkZF9wYWdlKGUsIF9nZm4oc2hhLT5mdWxs X3BhZ2UuZnJhbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbWZuKG1m biksIDApOwogICAgICAgICAgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGUpICkKICAg ICAgICAgICAgICAgICBzaGEtPmZ1bGxfcGFnZS5mcmFtZSA9IG1mbjsKICAgICAgICAgfQpkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9jb21tb24vbWVtb3J5LmMKaW5kZXgg MzE0OWYyNi4uMjI0YTdiMiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9tZW1vcnkuYworKysgYi94 ZW4vY29tbW9uL21lbW9yeS5jCkBAIC0yMTMsNyArMjEzLDcgQEAgc3RhdGljIHZvaWQgcG9wdWxh dGVfcGh5c21hcChzdHJ1Y3QgbWVtb3BfYXJncyAqYSkKICAgICAgICAgICAgICAgICBtZm4gPSBw YWdlX3RvX21mbihwYWdlKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgZ3Vlc3RfcGh5 c21hcF9hZGRfcGFnZShkLCBncGZuLCBtZm4sIGEtPmV4dGVudF9vcmRlcik7CisgICAgICAgICAg ICBndWVzdF9waHlzbWFwX2FkZF9wYWdlKGQsIF9nZm4oZ3BmbiksIF9tZm4obWZuKSwgYS0+ZXh0 ZW50X29yZGVyKTsKIAogICAgICAgICAgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQp ICkKICAgICAgICAgICAgIHsKQEAgLTIzNywyMCArMjM3LDIwIEBAIGludCBndWVzdF9yZW1vdmVf cGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdtZm4pCiAjaWZkZWYgQ09ORklH X1g4NgogICAgIHAybV90eXBlX3QgcDJtdDsKICNlbmRpZgotICAgIHVuc2lnbmVkIGxvbmcgbWZu OworICAgIG1mbl90IG1mbjsKIAogI2lmZGVmIENPTkZJR19YODYKLSAgICBtZm4gPSBtZm5feChn ZXRfZ2ZuX3F1ZXJ5KGQsIGdtZm4sICZwMm10KSk7IAorICAgIG1mbiA9IGdldF9nZm5fcXVlcnko ZCwgZ21mbiwgJnAybXQpOwogICAgIGlmICggdW5saWtlbHkocDJtX2lzX3BhZ2luZyhwMm10KSkg KQogICAgIHsKLSAgICAgICAgZ3Vlc3RfcGh5c21hcF9yZW1vdmVfcGFnZShkLCBnbWZuLCBtZm4s IDApOworICAgICAgICBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdlKGQsIF9nZm4oZ21mbiksIG1m biwgMCk7CiAgICAgICAgIHB1dF9nZm4oZCwgZ21mbik7CiAgICAgICAgIC8qIElmIHRoZSBwYWdl IGhhc24ndCB5ZXQgYmVlbiBwYWdlZCBvdXQsIHRoZXJlIGlzIGFuCiAgICAgICAgICAqIGFjdHVh bCBwYWdlIHRoYXQgbmVlZHMgdG8gYmUgcmVsZWFzZWQuICovCiAgICAgICAgIGlmICggcDJtdCA9 PSBwMm1fcmFtX3BhZ2luZ19vdXQgKQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQobWZu X3ZhbGlkKG1mbikpOwotICAgICAgICAgICAgcGFnZSA9IG1mbl90b19wYWdlKG1mbik7CisgICAg ICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKG1mbl94KG1mbikpKTsKKyAgICAgICAgICAgIHBhZ2Ug PSBtZm5fdG9fcGFnZShtZm5feChtZm4pKTsKICAgICAgICAgICAgIGlmICggdGVzdF9hbmRfY2xl YXJfYml0KF9QR0NfYWxsb2NhdGVkLCAmcGFnZS0+Y291bnRfaW5mbykgKQogICAgICAgICAgICAg ICAgIHB1dF9wYWdlKHBhZ2UpOwogICAgICAgICB9CkBAIC0yNTksMTQgKzI1OSwxNCBAQCBpbnQg Z3Vlc3RfcmVtb3ZlX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnbWZuKQog ICAgIH0KICAgICBpZiAoIHAybXQgPT0gcDJtX21taW9fZGlyZWN0ICkKICAgICB7Ci0gICAgICAg IGNsZWFyX21taW9fcDJtX2VudHJ5KGQsIGdtZm4sIF9tZm4obWZuKSwgMCk7CisgICAgICAgIGNs ZWFyX21taW9fcDJtX2VudHJ5KGQsIGdtZm4sIG1mbiwgMCk7CiAgICAgICAgIHB1dF9nZm4oZCwg Z21mbik7CiAgICAgICAgIHJldHVybiAxOwogICAgIH0KICNlbHNlCi0gICAgbWZuID0gbWZuX3go Z2ZuX3RvX21mbihkLCBfZ2ZuKGdtZm4pKSk7CisgICAgbWZuID0gZ2ZuX3RvX21mbihkLCBfZ2Zu KGdtZm4pKTsKICNlbmRpZgotICAgIGlmICggdW5saWtlbHkoIW1mbl92YWxpZChtZm4pKSApCisg ICAgaWYgKCB1bmxpa2VseSghbWZuX3ZhbGlkKG1mbl94KG1mbikpKSApCiAgICAgewogICAgICAg ICBwdXRfZ2ZuKGQsIGdtZm4pOwogICAgICAgICBnZHByaW50ayhYRU5MT0dfSU5GTywgIkRvbWFp biAldSBwYWdlIG51bWJlciAlbHggaW52YWxpZFxuIiwKQEAgLTI4OCwxMiArMjg4LDEyIEBAIGlu dCBndWVzdF9yZW1vdmVfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdtZm4p CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICAvKiBNYXliZSB0aGUg bWZuIGNoYW5nZWQgKi8KLSAgICAgICAgbWZuID0gbWZuX3goZ2V0X2dmbl9xdWVyeV91bmxvY2tl ZChkLCBnbWZuLCAmcDJtdCkpOworICAgICAgICBtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2Vk KGQsIGdtZm4sICZwMm10KTsKICAgICAgICAgQVNTRVJUKCFwMm1faXNfc2hhcmVkKHAybXQpKTsK ICAgICB9CiAjZW5kaWYgLyogQ09ORklHX1g4NiAqLwogCi0gICAgcGFnZSA9IG1mbl90b19wYWdl KG1mbik7CisgICAgcGFnZSA9IG1mbl90b19wYWdlKG1mbl94KG1mbikpOwogICAgIGlmICggdW5s aWtlbHkoIWdldF9wYWdlKHBhZ2UsIGQpKSApCiAgICAgewogICAgICAgICBwdXRfZ2ZuKGQsIGdt Zm4pOwpAQCAtMzE2LDcgKzMxNiw3IEBAIGludCBndWVzdF9yZW1vdmVfcGFnZShzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBsb25nIGdtZm4pCiAgICAgICAgICB0ZXN0X2FuZF9jbGVhcl9iaXQo X1BHQ19hbGxvY2F0ZWQsICZwYWdlLT5jb3VudF9pbmZvKSApCiAgICAgICAgIHB1dF9wYWdlKHBh Z2UpOwogCi0gICAgZ3Vlc3RfcGh5c21hcF9yZW1vdmVfcGFnZShkLCBnbWZuLCBtZm4sIDApOwor ICAgIGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgX2dmbihnbWZuKSwgbWZuLCAwKTsKIAog ICAgIHB1dF9wYWdlKHBhZ2UpOwogICAgIHB1dF9nZm4oZCwgZ21mbik7CkBAIC01NDAsNyArNTQw LDcgQEAgc3RhdGljIGxvbmcgbWVtb3J5X2V4Y2hhbmdlKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0o eGVuX21lbW9yeV9leGNoYW5nZV90KSBhcmcpCiAgICAgICAgICAgICBnZm4gPSBtZm5fdG9fZ21m bihkLCBtZm4pOwogICAgICAgICAgICAgLyogUGFnZXMgd2VyZSB1bnNoYXJlZCBhYm92ZSAqLwog ICAgICAgICAgICAgQlVHX09OKFNIQVJFRF9NMlAoZ2ZuKSk7Ci0gICAgICAgICAgICBndWVzdF9w aHlzbWFwX3JlbW92ZV9wYWdlKGQsIGdmbiwgbWZuLCAwKTsKKyAgICAgICAgICAgIGd1ZXN0X3Bo eXNtYXBfcmVtb3ZlX3BhZ2UoZCwgX2dmbihnZm4pLCBfbWZuKG1mbiksIDApOwogICAgICAgICAg ICAgcHV0X3BhZ2UocGFnZSk7CiAgICAgICAgIH0KIApAQCAtNTg0LDcgKzU4NCw4IEBAIHN0YXRp YyBsb25nIG1lbW9yeV9leGNoYW5nZShYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9tZW1vcnlf ZXhjaGFuZ2VfdCkgYXJnKQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBtZm4gPSBwYWdl X3RvX21mbihwYWdlKTsKLSAgICAgICAgICAgIGd1ZXN0X3BoeXNtYXBfYWRkX3BhZ2UoZCwgZ3Bm biwgbWZuLCBleGNoLm91dC5leHRlbnRfb3JkZXIpOworICAgICAgICAgICAgZ3Vlc3RfcGh5c21h cF9hZGRfcGFnZShkLCBfZ2ZuKGdwZm4pLCBfbWZuKG1mbiksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGV4Y2gub3V0LmV4dGVudF9vcmRlcik7CiAKICAgICAgICAgICAgIGlm ICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCiAgICAgICAgICAgICB7CkBAIC0xMDg3LDcg KzEwODgsOCBAQCBsb25nIGRvX21lbW9yeV9vcCh1bnNpZ25lZCBsb25nIGNtZCwgWEVOX0dVRVNU X0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dm bihkLCB4cmZwLmdwZm4sIE5VTEwsIFAyTV9BTExPQyk7CiAgICAgICAgIGlmICggcGFnZSApCiAg ICAgICAgIHsKLSAgICAgICAgICAgIGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgeHJmcC5n cGZuLCBwYWdlX3RvX21mbihwYWdlKSwgMCk7CisgICAgICAgICAgICBndWVzdF9waHlzbWFwX3Jl bW92ZV9wYWdlKGQsIF9nZm4oeHJmcC5ncGZuKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgX21mbihwYWdlX3RvX21mbihwYWdlKSksIDApOwogICAgICAgICAgICAgcHV0 X3BhZ2UocGFnZSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Fy bS9zbW11LmMKaW5kZXggNTRhMDNhNi4uOTBlZTJlOSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYXJtL3NtbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0v c21tdS5jCkBAIC0yNzcxLDcgKzI3NzEsNyBAQCBzdGF0aWMgaW50IGFybV9zbW11X21hcF9wYWdl KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAogCSAqIFRoZSBmdW5jdGlvbiBn dWVzdF9waHlzbWFwX2FkZF9lbnRyeSByZXBsYWNlcyB0aGUgY3VycmVudCBtYXBwaW5nCiAJICog aWYgdGhlcmUgaXMgYWxyZWFkeSBvbmUuLi4KIAkgKi8KLQlyZXR1cm4gZ3Vlc3RfcGh5c21hcF9h ZGRfZW50cnkoZCwgZ2ZuLCBtZm4sIDAsIHQpOworCXJldHVybiBndWVzdF9waHlzbWFwX2FkZF9l bnRyeShkLCBfZ2ZuKGdmbiksIF9tZm4obWZuKSwgMCwgdCk7CiB9CiAKIHN0YXRpYyBpbnQgYXJt X3NtbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbikKQEAg LTI3ODMsNyArMjc4Myw3IEBAIHN0YXRpYyBpbnQgYXJtX3NtbXVfdW5tYXBfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbikKIAlpZiAoICFpc19kb21haW5fZGlyZWN0X21h cHBlZChkKSApCiAJCXJldHVybiAtRUlOVkFMOwogCi0JZ3Vlc3RfcGh5c21hcF9yZW1vdmVfcGFn ZShkLCBnZm4sIGdmbiwgMCk7CisJZ3Vlc3RfcGh5c21hcF9yZW1vdmVfcGFnZShkLCBfZ2ZuKGdm biksIF9tZm4oZ2ZuKSwgMCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL2FzbS1hcm0vcDJtLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCmluZGV4IDc1YzY1 YTguLjBkMWU2MWUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgKKysrIGIv eGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaApAQCAtMTYwLDIzICsxNjAsMjMgQEAgaW50IG1hcF9k ZXZfbW1pb19yZWdpb24oc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgbWZuKTsKIAogaW50IGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0cnVj dCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBn Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ2ZuX3QgZ2ZuLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1mbl90IG1mbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs b25nIHBhZ2Vfb3JkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX3R5cGVfdCB0 KTsKIAogLyogVW50eXBlZCB2ZXJzaW9uIGZvciBSQU0gb25seSwgZm9yIGNvbXBhdGliaWxpdHkg Ki8KIHN0YXRpYyBpbmxpbmUgaW50IGd1ZXN0X3BoeXNtYXBfYWRkX3BhZ2Uoc3RydWN0IGRvbWFp biAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBnZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn Zm5fdCBnZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl90 IG1mbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IHBhZ2Vfb3JkZXIpCiB7CiAgICAgcmV0dXJuIGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KGQs IGdmbiwgbWZuLCBwYWdlX29yZGVyLCBwMm1fcmFtX3J3KTsKIH0KIAogdm9pZCBndWVzdF9waHlz bWFwX3JlbW92ZV9wYWdlKHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBncGZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBpbnQgcGFnZV9vcmRlcik7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ2ZuX3QgZ2ZuLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1mbl90IG1mbiwgdW5zaWduZWQgaW50IHBhZ2Vfb3JkZXIpOwogCiBtZm5fdCBn Zm5fdG9fbWZuKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbik7CiAKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL2FzbS14ODYvcDJtLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCmluZGV4 IDY1Njc1YTIuLjRhYjM1NzQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgK KysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaApAQCAtNTQ1LDE0ICs1NDUsMTQgQEAgdm9p ZCBwMm1fdGVhcmRvd24oc3RydWN0IHAybV9kb21haW4gKnAybSk7CiB2b2lkIHAybV9maW5hbF90 ZWFyZG93bihzdHJ1Y3QgZG9tYWluICpkKTsKIAogLyogQWRkIGEgcGFnZSB0byBhIGRvbWFpbidz IHAybSB0YWJsZSAqLwotaW50IGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0cnVjdCBkb21haW4g KmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBpbnQgcGFnZV9vcmRlciwgCitpbnQgZ3Vlc3RfcGh5c21h cF9hZGRfZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1mbl90IG1mbiwgdW5zaWduZWQgaW50IHBhZ2Vfb3JkZXIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcDJtX3R5cGVfdCB0KTsKIAogLyogVW50eXBlZCB2ZXJzaW9u IGZvciBSQU0gb25seSwgZm9yIGNvbXBhdGliaWxpdHkgKi8KIHN0YXRpYyBpbmxpbmUgaW50IGd1 ZXN0X3BoeXNtYXBfYWRkX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBnZm4sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZm5fdCBnZm4sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2Vfb3JkZXIpCiB7CiAgICAg cmV0dXJuIGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KGQsIGdmbiwgbWZuLCBwYWdlX29yZGVyLCBw Mm1fcmFtX3J3KTsKQEAgLTU2MCw4ICs1NjAsNyBAQCBzdGF0aWMgaW5saW5lIGludCBndWVzdF9w aHlzbWFwX2FkZF9wYWdlKHN0cnVjdCBkb21haW4gKmQsCiAKIC8qIFJlbW92ZSBhIHBhZ2UgZnJv bSBhIGRvbWFpbidzIHAybSB0YWJsZSAqLwogaW50IGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2Uo c3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgZ2ZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBt Zm4sIHVuc2lnbmVkIGludCBwYWdlX29yZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdmbl90IGdmbiwgbWZuX3QgbWZuLCB1bnNpZ25lZCBpbnQgcGFnZV9vcmRlcik7CiAKIC8q IFNldCBhIHAybSByYW5nZSBhcyBwb3B1bGF0ZS1vbi1kZW1hbmQgKi8KIGludCBndWVzdF9waHlz bWFwX21hcmtfcG9wdWxhdGVfb25fZGVtYW5kKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxv bmcgZ2ZuLApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL21tLmggYi94ZW4vaW5jbHVkZS94 ZW4vbW0uaAppbmRleCAzY2Y2NDZhLi4xNjgyZDFmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94 ZW4vbW0uaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vbW0uaApAQCAtNTExLDcgKzUxMSw3IEBAIGlu dCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXBfb25lKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGlu dCBzcGFjZSwKIAogLyogUmV0dXJucyAxIG9uIHN1Y2Nlc3MsIDAgb24gZXJyb3IsIG5lZ2F0aXZl IGlmIHRoZSByaW5nCiAgKiBmb3IgZXZlbnQgcHJvcGFnYXRpb24gaXMgZnVsbCBpbiB0aGUgcHJl c2VuY2Ugb2YgcGFnaW5nICovCi1pbnQgZ3Vlc3RfcmVtb3ZlX3BhZ2Uoc3RydWN0IGRvbWFpbiAq ZCwgdW5zaWduZWQgbG9uZyBnbWZuKTsKK2ludCBndWVzdF9yZW1vdmVfcGFnZShzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBsb25nIGdmbik7CiAKICNkZWZpbmUgUkFNX1RZUEVfQ09OVkVOVElP TkFMIDB4MDAwMDAwMDEKICNkZWZpbmUgUkFNX1RZUEVfUkVTRVJWRUQgICAgIDB4MDAwMDAwMDIK LS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK