Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2992606AbbEENuI (ORCPT ); Tue, 5 May 2015 09:50:08 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:54178 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1946020AbbEENtv (ORCPT ); Tue, 5 May 2015 09:49:51 -0400 Message-ID: <1430833778.4113.217.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 000/221] 3.2.69-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, Guenter Roeck , Phil Jensen , akpm@linux-foundation.org Date: Tue, 05 May 2015 14:49:38 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-SeZg7xgXmeu1Kmpg05aQ" X-Mailer: Evolution 3.12.9-1+b1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.249 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 298676 Lines: 3910 --=-SeZg7xgXmeu1Kmpg05aQ Content-Type: multipart/mixed; boundary="=-lZgYlQ2DPCMnwQnnS7lo" --=-lZgYlQ2DPCMnwQnnS7lo Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined diff for 3.2.69-rc1 relative to 3.2.68. Ben. --=20 Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse. --=-lZgYlQ2DPCMnwQnnS7lo Content-Disposition: attachment; filename="linux-3.2.69-rc1.patch" Content-Type: text/x-patch; name="linux-3.2.69-rc1.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdXNiL3VzYi1zZXJpYWwudHh0IGIvRG9jdW1lbnRh dGlvbi91c2IvdXNiLXNlcmlhbC50eHQKaW5kZXggNWJkNzkyNi4uOTQ3ZmE2MiAxMDA2NDQKLS0t IGEvRG9jdW1lbnRhdGlvbi91c2IvdXNiLXNlcmlhbC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi91 c2IvdXNiLXNlcmlhbC50eHQKQEAgLTE0NSw3ICsxNDUsNyBAQCBLZXlzcGFuIFBEQSBTZXJpYWwg QWRhcHRlcgogICBTaW5nbGUgcG9ydCBEQi05IHNlcmlhbCBhZGFwdGVyLCBwdXNoZWQgYXMgYSBQ REEgYWRhcHRlciBmb3IgaU1hY3MgKG1vc3RseQogICBzb2xkIGluIE1hY2ludG9zaCBjYXRhbG9n cywgY29tZXMgaW4gYSB0cmFuc2x1Y2VudCB3aGl0ZS9ncmVlbiBkb25nbGUpLgogICBGYWlybHkg c2ltcGxlIGRldmljZS4gRmlybXdhcmUgaXMgaG9tZWJyZXcuCi0gIFRoaXMgZHJpdmVyIGFsc28g d29ya3MgZm9yIHRoZSBYaXJjb20vRW50cmdyYSBzaW5nbGUgcG9ydCBzZXJpYWwgYWRhcHRlci4K KyAgVGhpcyBkcml2ZXIgYWxzbyB3b3JrcyBmb3IgdGhlIFhpcmNvbS9FbnRyZWdhIHNpbmdsZSBw b3J0IHNlcmlhbCBhZGFwdGVyLgogCiAgIEN1cnJlbnQgc3RhdHVzOgogICAgVGhpbmdzIHRoYXQg d29yazoKZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggMmU3Y2JkYS4uN2Yz YmVhNCAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTEsNyArMSw3IEBA CiBWRVJTSU9OID0gMwogUEFUQ0hMRVZFTCA9IDIKLVNVQkxFVkVMID0gNjgKLUVYVFJBVkVSU0lP TiA9CitTVUJMRVZFTCA9IDY5CitFWFRSQVZFUlNJT04gPSAtcmMxCiBOQU1FID0gU2FiZXItdG9v dGhlZCBTcXVpcnJlbAogCiAjICpET0NVTUVOVEFUSU9OKgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v bWFjaC1weGEvY29yZ2kuYyBiL2FyY2gvYXJtL21hY2gtcHhhL2NvcmdpLmMKaW5kZXggNTQ5NDY4 ZC4uZTE3MTVhZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvY29yZ2kuYworKysgYi9h cmNoL2FybS9tYWNoLXB4YS9jb3JnaS5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8bGlu dXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjL3B4YS1pMmMuaD4KICNpbmNsdWRlIDxsaW51 eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9tYWNoaW5lLmg+CiAjaW5jbHVkZSA8 bGludXgvc3BpL3NwaS5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaS9hZHM3ODQ2Lmg+CiAjaW5jbHVk ZSA8bGludXgvc3BpL2NvcmdpX2xjZC5oPgpAQCAtNzA0LDYgKzcwNSw4IEBAIHN0YXRpYyB2b2lk IF9faW5pdCBjb3JnaV9pbml0KHZvaWQpCiAJCXNoYXJwc2xfbmFuZF9wYXJ0aXRpb25zWzFdLnNp emUgPSA1MyAqIDEwMjQgKiAxMDI0OwogCiAJcGxhdGZvcm1fYWRkX2RldmljZXMoZGV2aWNlcywg QVJSQVlfU0laRShkZXZpY2VzKSk7CisKKwlyZWd1bGF0b3JfaGFzX2Z1bGxfY29uc3RyYWludHMo KTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IGZpeHVwX2NvcmdpKHN0cnVjdCB0YWcgKnRhZ3Ms IGNoYXIgKipjbWRsaW5lLApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvaHg0NzAwLmMg Yi9hcmNoL2FybS9tYWNoLXB4YS9oeDQ3MDAuYwppbmRleCA2ZjYzNjhlLi5hN2JlOTc5IDEwMDY0 NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9oeDQ3MDAuYworKysgYi9hcmNoL2FybS9tYWNoLXB4 YS9oeDQ3MDAuYwpAQCAtODM1LDYgKzgzNSw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBoeDQ3MDBf aW5pdCh2b2lkKQogCW1kZWxheSgxMCk7CiAJZ3Bpb19zZXRfdmFsdWUoR1BJTzcxX0hYNDcwMF9B U0lDM19uUkVTRVQsIDEpOwogCW1kZWxheSgxMCk7CisKKwlyZWd1bGF0b3JfaGFzX2Z1bGxfY29u c3RyYWludHMoKTsKIH0KIAogTUFDSElORV9TVEFSVChINDcwMCwgIkhQIGlQQVEgSFg0NzAwIikK ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3Bvb2RsZS5jIGIvYXJjaC9hcm0vbWFjaC1w eGEvcG9vZGxlLmMKaW5kZXggNTBjODMzMS4uZmI2NDVmNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0v bWFjaC1weGEvcG9vZGxlLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvcG9vZGxlLmMKQEAgLTI1 LDYgKzI1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CiAjaW5jbHVkZSA8bGludXgvaTJj Lmg+CiAjaW5jbHVkZSA8bGludXgvaTJjL3B4YS1pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWd1 bGF0b3IvbWFjaGluZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KICNpbmNsdWRlIDxs aW51eC9zcGkvYWRzNzg0Ni5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaS9weGEyeHhfc3BpLmg+CkBA IC00NTMsNiArNDU0LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHBvb2RsZV9pbml0KHZvaWQpCiAJ cHhhX3NldF9pMmNfaW5mbyhOVUxMKTsKIAlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCBBUlJB WV9BTkRfU0laRShwb29kbGVfaTJjX2RldmljZXMpKTsKIAlwb29kbGVfaW5pdF9zcGkoKTsKKwly ZWd1bGF0b3JfaGFzX2Z1bGxfY29uc3RyYWludHMoKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0 IGZpeHVwX3Bvb2RsZShzdHJ1Y3QgdGFnICp0YWdzLCBjaGFyICoqY21kbGluZSwKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL21hY2gtcHhhL3NwaXR6LmMgYi9hcmNoL2FybS9tYWNoLXB4YS9zcGl0ei5j CmluZGV4IDk1M2E5MTkuLjA0NTFiYmQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3Nw aXR6LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvc3BpdHouYwpAQCAtOTY5LDYgKzk2OSw4IEBA IHN0YXRpYyB2b2lkIF9faW5pdCBzcGl0el9pbml0KHZvaWQpCiAJc3BpdHpfbm9yX2luaXQoKTsK IAlzcGl0el9uYW5kX2luaXQoKTsKIAlzcGl0el9pMmNfaW5pdCgpOworCisJcmVndWxhdG9yX2hh c19mdWxsX2NvbnN0cmFpbnRzKCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBzcGl0el9maXh1 cChzdHJ1Y3QgdGFnICp0YWdzLCBjaGFyICoqY21kbGluZSwKZGlmZiAtLWdpdCBhL2FyY2gvYXJt L21hY2gtc2ExMTAwL3BtLmMgYi9hcmNoL2FybS9tYWNoLXNhMTEwMC9wbS5jCmluZGV4IGJmODVi OGIuLjY2YzQ4NDUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtc2ExMTAwL3BtLmMKKysrIGIv YXJjaC9hcm0vbWFjaC1zYTExMDAvcG0uYwpAQCAtODEsNiArODEsNyBAQCBzdGF0aWMgaW50IHNh MTF4MF9wbV9lbnRlcihzdXNwZW5kX3N0YXRlX3Qgc3RhdGUpCiAJLyoKIAkgKiBFbnN1cmUgbm90 IHRvIGNvbWUgYmFjayBoZXJlIGlmIGl0IHdhc24ndCBpbnRlbmRlZAogCSAqLworCVJDU1IgPSBS Q1NSX1NNUjsKIAlQU1BSID0gMDsKIAogCS8qCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvc3lz ZGV2L2F4b25yYW0uYyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYvYXhvbnJhbS5jCmluZGV4IGJhNDI3 MTkuLjliZWZhZGUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9zeXNkZXYvYXhvbnJhbS5jCisr KyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYvYXhvbnJhbS5jCkBAIC0xNTYsNyArMTU2LDcgQEAgYXhv bl9yYW1fZGlyZWN0X2FjY2VzcyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpkZXZpY2UsIHNlY3Rvcl90 IHNlY3RvciwKIAl9CiAKIAkqa2FkZHIgPSAodm9pZCAqKShiYW5rLT5waF9hZGRyICsgb2Zmc2V0 KTsKLQkqcGZuID0gdmlydF90b19waHlzKGthZGRyKSA+PiBQQUdFX1NISUZUOworCSpwZm4gPSB2 aXJ0X3RvX3BoeXMoKmthZGRyKSA+PiBQQUdFX1NISUZUOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYg LS1naXQgYS9hcmNoL3MzOTAva3ZtL2ludGVyY2VwdC5jIGIvYXJjaC9zMzkwL2t2bS9pbnRlcmNl cHQuYwppbmRleCBiYzQ4NmQwLi5hNWY2ZWZmIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva3ZtL2lu dGVyY2VwdC5jCisrKyBiL2FyY2gvczM5MC9rdm0vaW50ZXJjZXB0LmMKQEAgLTU4LDcgKzU4LDYg QEAgc3RhdGljIGludCBoYW5kbGVfbGN0bGcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCQkJYnJl YWs7CiAJCXJlZyA9IChyZWcgKyAxKSAlIDE2OwogCX0gd2hpbGUgKDEpOwotCWt2bV9tYWtlX3Jl cXVlc3QoS1ZNX1JFUV9UTEJfRkxVU0gsIHZjcHUpOwogCXJldHVybiAwOwogfQogCkBAIC05OCw3 ICs5Nyw2IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2xjdGwoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQog CQkJYnJlYWs7CiAJCXJlZyA9IChyZWcgKyAxKSAlIDE2OwogCX0gd2hpbGUgKDEpOwotCWt2bV9t YWtlX3JlcXVlc3QoS1ZNX1JFUV9UTEJfRkxVU0gsIHZjcHUpOwogCXJldHVybiAwOwogfQogCmRp ZmYgLS1naXQgYS9hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMgYi9hcmNoL3MzOTAva3ZtL2t2bS1z MzkwLmMKaW5kZXggZjZmNDFkZC4uYjk2YjRkZSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2t2bS9r dm0tczM5MC5jCisrKyBiL2FyY2gvczM5MC9rdm0va3ZtLXMzOTAuYwpAQCAtMzExLDcgKzMxMSw3 IEBAIGludCBrdm1fYXJjaF92Y3B1X3NldHVwKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAl2Y3B1 LT5hcmNoLnNpZV9ibG9jay0+ZWNiICAgPSA2OwogCXZjcHUtPmFyY2guc2llX2Jsb2NrLT5lY2Eg ICA9IDB4QzEwMDIwMDFVOwogCXZjcHUtPmFyY2guc2llX2Jsb2NrLT5mYWMgICA9IChpbnQpIChs b25nKSBmYWNpbGl0aWVzOwotCWhydGltZXJfaW5pdCgmdmNwdS0+YXJjaC5ja2NfdGltZXIsIENM T0NLX1JFQUxUSU1FLCBIUlRJTUVSX01PREVfQUJTKTsKKwlocnRpbWVyX2luaXQoJnZjcHUtPmFy Y2guY2tjX3RpbWVyLCBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9SRUwpOwogCXRhc2ts ZXRfaW5pdCgmdmNwdS0+YXJjaC50YXNrbGV0LCBrdm1fczM5MF90YXNrbGV0LAogCQkgICAgICh1 bnNpZ25lZCBsb25nKSB2Y3B1KTsKIAl2Y3B1LT5hcmNoLmNrY190aW1lci5mdW5jdGlvbiA9IGt2 bV9zMzkwX2lkbGVfd2FrZXVwOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL2Flc25pLWlu dGVsX2dsdWUuYyBiL2FyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRlbF9nbHVlLmMKaW5kZXggMTZh Y2Y2OC4uM2IzYTYyZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2Flc25pLWludGVsX2ds dWUuYworKysgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfZ2x1ZS5jCkBAIC0xMjAyLDcg KzEyMDIsNyBAQCBzdGF0aWMgaW50IF9fZHJpdmVyX3JmYzQxMDZfZGVjcnlwdChzdHJ1Y3QgYWVh ZF9yZXF1ZXN0ICpyZXEpCiAJCXNyYyA9IGttYWxsb2MocmVxLT5jcnlwdGxlbiArIHJlcS0+YXNz b2NsZW4sIEdGUF9BVE9NSUMpOwogCQlpZiAoIXNyYykKIAkJCXJldHVybiAtRU5PTUVNOwotCQlh c3NvYyA9IChzcmMgKyByZXEtPmNyeXB0bGVuICsgYXV0aF90YWdfbGVuKTsKKwkJYXNzb2MgPSAo c3JjICsgcmVxLT5jcnlwdGxlbik7CiAJCXNjYXR0ZXJ3YWxrX21hcF9hbmRfY29weShzcmMsIHJl cS0+c3JjLCAwLCByZXEtPmNyeXB0bGVuLCAwKTsKIAkJc2NhdHRlcndhbGtfbWFwX2FuZF9jb3B5 KGFzc29jLCByZXEtPmFzc29jLCAwLAogCQkJcmVxLT5hc3NvY2xlbiwgMCk7CkBAIC0xMjI3LDcg KzEyMjcsNyBAQCBzdGF0aWMgaW50IF9fZHJpdmVyX3JmYzQxMDZfZGVjcnlwdChzdHJ1Y3QgYWVh ZF9yZXF1ZXN0ICpyZXEpCiAJCXNjYXR0ZXJ3YWxrX2RvbmUoJnNyY19zZ193YWxrLCAwLCAwKTsK IAkJc2NhdHRlcndhbGtfZG9uZSgmYXNzb2Nfc2dfd2FsaywgMCwgMCk7CiAJfSBlbHNlIHsKLQkJ c2NhdHRlcndhbGtfbWFwX2FuZF9jb3B5KGRzdCwgcmVxLT5kc3QsIDAsIHJlcS0+Y3J5cHRsZW4s IDEpOworCQlzY2F0dGVyd2Fsa19tYXBfYW5kX2NvcHkoZHN0LCByZXEtPmRzdCwgMCwgdGVtcENp cGhlckxlbiwgMSk7CiAJCWtmcmVlKHNyYyk7CiAJfQogCXJldHVybiByZXR2YWw7CmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfNjQuUyBiL2FyY2gveDg2L2tlcm5lbC9lbnRyeV82 NC5TCmluZGV4IDlkMjhkYmFjLi44ZDE1YzY5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwv ZW50cnlfNjQuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfNjQuUwpAQCAtNDE0LDExICs0 MTQsMTQgQEAgRU5UUlkocmV0X2Zyb21fZm9yaykKIAl0ZXN0bCAkMywgQ1MtQVJHT0ZGU0VUKCVy c3ApCQkjIGZyb20ga2VybmVsX3RocmVhZD8KIAlqZSAgIGludF9yZXRfZnJvbV9zeXNfY2FsbAog Ci0JdGVzdGwgJF9USUZfSUEzMiwgVElfZmxhZ3MoJXJjeCkJIyAzMi1iaXQgY29tcGF0IHRhc2sg bmVlZHMgSVJFVAotCWpueiAgaW50X3JldF9mcm9tX3N5c19jYWxsCi0KLQlSRVNUT1JFX1RPUF9P Rl9TVEFDSyAlcmRpLCAtQVJHT0ZGU0VUCi0Jam1wIHJldF9mcm9tX3N5c19jYWxsCQkJIyBnbyB0 byB0aGUgU1lTUkVUIGZhc3RwYXRoCisJLyoKKwkgKiBCeSB0aGUgdGltZSB3ZSBnZXQgaGVyZSwg d2UgaGF2ZSBubyBpZGVhIHdoZXRoZXIgb3VyIHB0X3JlZ3MsCisJICogdGkgZmxhZ3MsIGFuZCB0 aSBzdGF0dXMgY2FtZSBmcm9tIHRoZSA2NC1iaXQgU1lTQ0FMTCBmYXN0IHBhdGgsCisJICogdGhl IHNsb3cgcGF0aCwgb3Igb25lIG9mIHRoZSBpYTMyZW50cnkgcGF0aHMuCisJICogVXNlIGludF9y ZXRfZnJvbV9zeXNfY2FsbCB0byByZXR1cm4sIHNpbmNlIGl0IGNhbiBzYWZlbHkgaGFuZGxlCisJ ICogYWxsIG9mIHRoZSBhYm92ZS4KKwkgKi8KKwlqbXAgIGludF9yZXRfZnJvbV9zeXNfY2FsbAog CiAJQ0ZJX0VORFBST0MKIEVORChyZXRfZnJvbV9mb3JrKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv a2VybmVsL3JlYm9vdC5jIGIvYXJjaC94ODYva2VybmVsL3JlYm9vdC5jCmluZGV4IGY0MTFhY2Eu LjQxYjJmNTcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9yZWJvb3QuYworKysgYi9hcmNo L3g4Ni9rZXJuZWwvcmVib290LmMKQEAgLTI3OSwxNCArMjc5LDYgQEAgc3RhdGljIHN0cnVjdCBk bWlfc3lzdGVtX2lkIF9faW5pdGRhdGEgcmVib290X2RtaV90YWJsZVtdID0gewogCQkJRE1JX01B VENIKERNSV9QUk9EVUNUX05BTUUsICJWR04tWjU0ME4iKSwKIAkJfSwKIAl9LAotCXsJLyogSGFu ZGxlIHByb2JsZW1zIHdpdGggcmVib290aW5nIG9uIENvbXB1TGFiIFNCQy1GSVRQQzIgKi8KLQkJ LmNhbGxiYWNrID0gc2V0X2Jpb3NfcmVib290LAotCQkuaWRlbnQgPSAiQ29tcHVMYWIgU0JDLUZJ VFBDMiIsCi0JCS5tYXRjaGVzID0gewotCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiQ29t cHVMYWIiKSwKLQkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiU0JDLUZJVFBDMiIpLAot CQl9LAotCX0sCiAJeyAgICAgICAvKiBIYW5kbGUgcHJvYmxlbXMgd2l0aCByZWJvb3Rpbmcgb24g QVNVUyBQNFM4MDAgKi8KIAkJLmNhbGxiYWNrID0gc2V0X2Jpb3NfcmVib290LAogCQkuaWRlbnQg PSAiQVNVUyBQNFM4MDAiLApAQCAtMjk1LDE0ICsyODcsNiBAQCBzdGF0aWMgc3RydWN0IGRtaV9z eXN0ZW1faWQgX19pbml0ZGF0YSByZWJvb3RfZG1pX3RhYmxlW10gPSB7CiAJCQlETUlfTUFUQ0go RE1JX0JPQVJEX05BTUUsICJQNFM4MDAiKSwKIAkJfSwKIAl9LAotCXsJLyogSGFuZGxlIHByb2Js ZW1zIHdpdGggcmVib290aW5nIG9uIFZlcnNhTG9naWMgTWVubG93IGJvYXJkcyAqLwotCQkuY2Fs bGJhY2sgPSBzZXRfYmlvc19yZWJvb3QsCi0JCS5pZGVudCA9ICJWZXJzYUxvZ2ljIE1lbmxvdyBi YXNlZCBib2FyZCIsCi0JCS5tYXRjaGVzID0gewotCQkJRE1JX01BVENIKERNSV9CT0FSRF9WRU5E T1IsICJWZXJzYUxvZ2ljIENvcnBvcmF0aW9uIiksCi0JCQlETUlfTUFUQ0goRE1JX0JPQVJEX05B TUUsICJWZXJzYUxvZ2ljIE1lbmxvdyBib2FyZCIpLAotCQl9LAotCX0sCiAJeyAvKiBIYW5kbGUg cmVib290IGlzc3VlIG9uIEFjZXIgQXNwaXJlIG9uZSAqLwogCQkuY2FsbGJhY2sgPSBzZXRfa2Jk X3JlYm9vdCwKIAkJLmlkZW50ID0gIkFjZXIgQXNwaXJlIE9uZSBBMTEwIiwKQEAgLTQyOCw2ICs0 MTIsMjQgQEAgc3RhdGljIHN0cnVjdCBkbWlfc3lzdGVtX2lkIF9faW5pdGRhdGEgcGNpX3JlYm9v dF9kbWlfdGFibGVbXSA9IHsKIAkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiaU1hYzks MSIpLAogCQl9LAogCX0sCisJLyogQVNSb2NrICovCisJewkvKiBIYW5kbGUgcHJvYmxlbXMgd2l0 aCByZWJvb3Rpbmcgb24gQVNSb2NrIFExOTAwREMtSVRYICovCisJCS5jYWxsYmFjayA9IHNldF9w Y2lfcmVib290LAorCQkuaWRlbnQgPSAiQVNSb2NrIFExOTAwREMtSVRYIiwKKwkJLm1hdGNoZXMg PSB7CisJCQlETUlfTUFUQ0goRE1JX0JPQVJEX1ZFTkRPUiwgIkFTUm9jayIpLAorCQkJRE1JX01B VENIKERNSV9CT0FSRF9OQU1FLCAiUTE5MDBEQy1JVFgiKSwKKwkJfSwKKwl9LAorCS8qIENlcnRl YyAqLworCXsgICAgICAgLyogSGFuZGxlIHByb2JsZW1zIHdpdGggcmVib290aW5nIG9uIENlcnRl YyBCUEM2MDAgKi8KKwkJLmNhbGxiYWNrID0gc2V0X3BjaV9yZWJvb3QsCisJCS5pZGVudCA9ICJD ZXJ0ZWMgQlBDNjAwIiwKKwkJLm1hdGNoZXMgPSB7CisJCQlETUlfTUFUQ0goRE1JX1NZU19WRU5E T1IsICJDZXJ0ZWMiKSwKKwkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiQlBDNjAwIiks CisJCX0sCisJfSwKIAl7CS8qIEhhbmRsZSBwcm9ibGVtcyB3aXRoIHJlYm9vdGluZyBvbiB0aGUg TGF0aXR1ZGUgRTYzMjAuICovCiAJCS5jYWxsYmFjayA9IHNldF9wY2lfcmVib290LAogCQkuaWRl bnQgPSAiRGVsbCBMYXRpdHVkZSBFNjMyMCIsCkBAIC00MzYsNiArNDM4LDE0IEBAIHN0YXRpYyBz dHJ1Y3QgZG1pX3N5c3RlbV9pZCBfX2luaXRkYXRhIHBjaV9yZWJvb3RfZG1pX3RhYmxlW10gPSB7 CiAJCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIkxhdGl0dWRlIEU2MzIwIiksCiAJCX0s CiAJfSwKKwl7CS8qIEhhbmRsZSBwcm9ibGVtcyB3aXRoIHJlYm9vdGluZyBvbiB0aGUgTGF0aXR1 ZGUgRTU0MTAuICovCisJCS5jYWxsYmFjayA9IHNldF9wY2lfcmVib290LAorCQkuaWRlbnQgPSAi RGVsbCBMYXRpdHVkZSBFNTQxMCIsCisJCS5tYXRjaGVzID0geworCQkJRE1JX01BVENIKERNSV9T WVNfVkVORE9SLCAiRGVsbCBJbmMuIiksCisJCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwg IkxhdGl0dWRlIEU1NDEwIiksCisJCX0sCisJfSwKIAl7CS8qIEhhbmRsZSBwcm9ibGVtcyB3aXRo IHJlYm9vdGluZyBvbiB0aGUgTGF0aXR1ZGUgRTU0MjAuICovCiAJCS5jYWxsYmFjayA9IHNldF9w Y2lfcmVib290LAogCQkuaWRlbnQgPSAiRGVsbCBMYXRpdHVkZSBFNTQyMCIsCkBAIC00NjIsNiAr NDcyLDIyIEBAIHN0YXRpYyBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBfX2luaXRkYXRhIHBjaV9yZWJv b3RfZG1pX3RhYmxlW10gPSB7CiAJfSwKIAl7CS8qIEhhbmRsZSBwcm9ibGVtcyB3aXRoIHJlYm9v dGluZyBvbiB0aGUgUHJlY2lzaW9uIE02NjAwLiAqLwogCQkuY2FsbGJhY2sgPSBzZXRfcGNpX3Jl Ym9vdCwKKwkJLmlkZW50ID0gIkRlbGwgUHJlY2lzaW9uIE02NjAwIiwKKwkJLm1hdGNoZXMgPSB7 CisJCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJEZWxsIEluYy4iKSwKKwkJCURNSV9NQVRD SChETUlfUFJPRFVDVF9OQU1FLCAiUHJlY2lzaW9uIE02NjAwIiksCisJCX0sCisJfSwKKwl7CS8q IEhhbmRsZSBwcm9ibGVtcyB3aXRoIHJlYm9vdGluZyBvbiB0aGUgRGVsbCBQb3dlckVkZ2UgQzYx MDAuICovCisJCS5jYWxsYmFjayA9IHNldF9wY2lfcmVib290LAorCQkuaWRlbnQgPSAiRGVsbCBQ b3dlckVkZ2UgQzYxMDAiLAorCQkubWF0Y2hlcyA9IHsKKwkJCURNSV9NQVRDSChETUlfU1lTX1ZF TkRPUiwgIkRlbGwiKSwKKwkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiQzYxMDAiKSwK KwkJfSwKKwl9LAorCXsJLyogSGFuZGxlIHByb2JsZW1zIHdpdGggcmVib290aW5nIG9uIHRoZSBQ cmVjaXNpb24gTTY2MDAuICovCisJCS5jYWxsYmFjayA9IHNldF9wY2lfcmVib290LAogCQkuaWRl bnQgPSAiRGVsbCBPcHRpUGxleCA5OTAiLAogCQkubWF0Y2hlcyA9IHsKIAkJCURNSV9NQVRDSChE TUlfU1lTX1ZFTkRPUiwgIkRlbGwgSW5jLiIpLApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVs L3RyYXBzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvdHJhcHMuYwppbmRleCAyYWZmMzQ3Li5lZGJkMzBh IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdHJhcHMuYworKysgYi9hcmNoL3g4Ni9rZXJu ZWwvdHJhcHMuYwpAQCAtNDM1LDcgKzQzNSw3IEBAIGRvdHJhcGxpbmthZ2Ugdm9pZCBfX2twcm9i ZXMgZG9fZGVidWcoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgZXJyb3JfY29kZSkKIAkgKiB0 aGVuIGl0J3MgdmVyeSBsaWtlbHkgdGhlIHJlc3VsdCBvZiBhbiBpY2VicC9pbnQwMSB0cmFwLgog CSAqIFVzZXIgd2FudHMgYSBzaWd0cmFwIGZvciB0aGF0LgogCSAqLwotCWlmICghZHI2ICYmIHVz ZXJfbW9kZShyZWdzKSkKKwlpZiAoIWRyNiAmJiB1c2VyX21vZGVfdm0ocmVncykpCiAJCXVzZXJf aWNlYnAgPSAxOwogCiAJLyogQ2F0Y2gga21lbWNoZWNrIGNvbmRpdGlvbnMgZmlyc3Qgb2YgYWxs ISAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL2VtdWxhdGUuYyBiL2FyY2gveDg2L2t2bS9l bXVsYXRlLmMKaW5kZXggYmRhZDQ4OS4uOWFmMGI4MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3Zt L2VtdWxhdGUuYworKysgYi9hcmNoL3g4Ni9rdm0vZW11bGF0ZS5jCkBAIC00MDE0LDcgKzQwMTQs OCBAQCBpbnQgeDg2X2VtdWxhdGVfaW5zbihzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkK IAkJaWYgKHJjICE9IFg4NkVNVUxfQ09OVElOVUUpCiAJCQlnb3RvIGRvbmU7CiAJfQotCWN0eHQt PmRzdC5vcmlnX3ZhbCA9IGN0eHQtPmRzdC52YWw7CisJLyogQ29weSBmdWxsIDY0LWJpdCB2YWx1 ZSBmb3IgQ01QWENIRzhCLiAgKi8KKwljdHh0LT5kc3Qub3JpZ192YWw2NCA9IGN0eHQtPmRzdC52 YWw2NDsKIAogc3BlY2lhbF9pbnNuOgogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9tbWFwLmMg Yi9hcmNoL3g4Ni9tbS9tbWFwLmMKaW5kZXggNWMxYWUyOC4uNzVmOWU1ZCAxMDA2NDQKLS0tIGEv YXJjaC94ODYvbW0vbW1hcC5jCisrKyBiL2FyY2gveDg2L21tL21tYXAuYwpAQCAtMzUsMTIgKzM1 LDEyIEBAIHN0cnVjdCBfX3JlYWRfbW9zdGx5IHZhX2FsaWdubWVudCB2YV9hbGlnbiA9IHsKIAku ZmxhZ3MgPSAtMSwKIH07CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgc3RhY2tfbWF4cmFuZG9tX3Np emUodm9pZCkKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHN0YWNrX21heHJhbmRvbV9zaXplKHZvaWQp CiB7Ci0JdW5zaWduZWQgaW50IG1heCA9IDA7CisJdW5zaWduZWQgbG9uZyBtYXggPSAwOwogCWlm ICgoY3VycmVudC0+ZmxhZ3MgJiBQRl9SQU5ET01JWkUpICYmCiAJCSEoY3VycmVudC0+cGVyc29u YWxpdHkgJiBBRERSX05PX1JBTkRPTUlaRSkpIHsKLQkJbWF4ID0gKCgtMVUpICYgU1RBQ0tfUk5E X01BU0spIDw8IFBBR0VfU0hJRlQ7CisJCW1heCA9ICgoLTFVTCkgJiBTVEFDS19STkRfTUFTSykg PDwgUEFHRV9TSElGVDsKIAl9CiAKIAlyZXR1cm4gbWF4OwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv dmRzby92ZHNvMzIvc2lncmV0dXJuLlMgYi9hcmNoL3g4Ni92ZHNvL3Zkc28zMi9zaWdyZXR1cm4u UwppbmRleCAzMTc3NmQwLi5kN2VjNGUyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni92ZHNvL3Zkc28z Mi9zaWdyZXR1cm4uUworKysgYi9hcmNoL3g4Ni92ZHNvL3Zkc28zMi9zaWdyZXR1cm4uUwpAQCAt MTcsNiArMTcsNyBAQAogCS50ZXh0CiAJLmdsb2JsIF9fa2VybmVsX3NpZ3JldHVybgogCS50eXBl IF9fa2VybmVsX3NpZ3JldHVybixAZnVuY3Rpb24KKwlub3AgLyogdGhpcyBndXkgaXMgbmVlZGVk IGZvciAuTFNUQVJURkRFRExTSTEgYmVsb3cgKHdhdGNoIGZvciBIQUNLKSAqLwogCUFMSUdOCiBf X2tlcm5lbF9zaWdyZXR1cm46CiAuTFNUQVJUX3NpZ3JldHVybjoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvYWNwaS92aWRlby5jIGIvZHJpdmVycy9hY3BpL3ZpZGVvLmMKaW5kZXggMmViZmRkMi4uY2I4 NDJhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL3ZpZGVvLmMKKysrIGIvZHJpdmVycy9hY3Bp L3ZpZGVvLmMKQEAgLTE4NTQsNiArMTg1NCwxNyBAQCBFWFBPUlRfU1lNQk9MKGFjcGlfdmlkZW9f dW5yZWdpc3Rlcik7CiAKIHN0YXRpYyBpbnQgX19pbml0IGFjcGlfdmlkZW9faW5pdCh2b2lkKQog eworCS8qCisJICogTGV0IHRoZSBtb2R1bGUgbG9hZCBldmVuIGlmIEFDUEkgaXMgZGlzYWJsZWQg KGUuZy4gZHVlIHRvCisJICogYSBicm9rZW4gQklPUykgc28gdGhhdCBpOTE1LmtvIGNhbiBzdGls bCBiZSBsb2FkZWQgb24gc3VjaAorCSAqIG9sZCBzeXN0ZW1zIHdpdGhvdXQgYW4gQWNwaU9wUmVn aW9uLgorCSAqCisJICogYWNwaV92aWRlb19yZWdpc3RlcigpIHdpbGwgcmVwb3J0IC1FTk9ERVYg bGF0ZXIgYXMgd2VsbCBkdWUKKwkgKiB0byBhY3BpX2Rpc2FibGVkIHdoZW4gaTkxNS5rbyB0cmll cyB0byByZWdpc3RlciBpdHNlbGYgYWZ0ZXJ3YXJkcy4KKwkgKi8KKwlpZiAoYWNwaV9kaXNhYmxl ZCkKKwkJcmV0dXJuIDA7CisKIAlkbWlfY2hlY2tfc3lzdGVtKHZpZGVvX2RtaV90YWJsZSk7CiAK IAlpZiAoaW50ZWxfb3ByZWdpb25fcHJlc2VudCgpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9j ay9uYmQuYyBiL2RyaXZlcnMvYmxvY2svbmJkLmMKaW5kZXggNWZiNjg4NS4uNzg4NTgxZSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ibG9jay9uYmQuYworKysgYi9kcml2ZXJzL2Jsb2NrL25iZC5jCkBA IC03NzMsMTAgKzc3Myw2IEBAIHN0YXRpYyBpbnQgX19pbml0IG5iZF9pbml0KHZvaWQpCiAJCXJl dHVybiAtRUlOVkFMOwogCX0KIAotCW5iZF9kZXYgPSBrY2FsbG9jKG5iZHNfbWF4LCBzaXplb2Yo Km5iZF9kZXYpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW5iZF9kZXYpCi0JCXJldHVybiAtRU5PTUVN OwotCiAJcGFydF9zaGlmdCA9IDA7CiAJaWYgKG1heF9wYXJ0ID4gMCkgewogCQlwYXJ0X3NoaWZ0 ID0gZmxzKG1heF9wYXJ0KTsKQEAgLTc5OCw2ICs3OTQsMTAgQEAgc3RhdGljIGludCBfX2luaXQg bmJkX2luaXQodm9pZCkKIAlpZiAobmJkc19tYXggPiAxVUwgPDwgKE1JTk9SQklUUyAtIHBhcnRf c2hpZnQpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCW5iZF9kZXYgPSBrY2FsbG9jKG5iZHNfbWF4 LCBzaXplb2YoKm5iZF9kZXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW5iZF9kZXYpCisJCXJldHVy biAtRU5PTUVNOworCiAJZm9yIChpID0gMDsgaSA8IG5iZHNfbWF4OyBpKyspIHsKIAkJc3RydWN0 IGdlbmRpc2sgKmRpc2sgPSBhbGxvY19kaXNrKDEgPDwgcGFydF9zaGlmdCk7CiAJCWlmICghZGlz aykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMgYi9kcml2ZXJzL2JsdWV0 b290aC9hdGgzay5jCmluZGV4IDIyNzc1YWUuLjNlYjZhZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Ymx1ZXRvb3RoL2F0aDNrLmMKKysrIGIvZHJpdmVycy9ibHVldG9vdGgvYXRoM2suYwpAQCAtMTA2 LDYgKzEwNiw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBhdGgza190YWJsZVtdID0g ewogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM5MykgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2Qz LCAweDM0MDIpIH0sCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDA4KSB9LAorCXsgVVNCX0RF VklDRSgweDEzZDMsIDB4MzQyMykgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0MzIpIH0s CiAKIAkvKiBBdGhlcm9zIEFSNUJCVTEyIHdpdGggc2ZsYXNoIGZpcm13YXJlICovCkBAIC0xNjAs NiArMTYxLDcgQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGF0aDNrX2JsaXN0X3RibFtd ID0gewogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM5MyksIC5kcml2ZXJfaW5mbyA9IEJUVVNC X0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0MDIpLCAuZHJpdmVyX2luZm8g PSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDA4KSwgLmRyaXZl cl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQyMyks IC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAw eDM0MzIpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAKIAkvKiBBdGhlcm9zIEFS NUJCVTIyIHdpdGggc2ZsYXNoIGZpcm13YXJlICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0 b290aC9idHVzYi5jIGIvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYwppbmRleCAyYjQ3OWQ2Li41 YzM4NWU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jCisrKyBiL2RyaXZl cnMvYmx1ZXRvb3RoL2J0dXNiLmMKQEAgLTE5MSw2ICsxOTEsNyBAQCBzdGF0aWMgc3RydWN0IHVz Yl9kZXZpY2VfaWQgYmxhY2tsaXN0X3RhYmxlW10gPSB7CiAJeyBVU0JfREVWSUNFKDB4MTNkMywg MHgzMzkzKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgw eDEzZDMsIDB4MzQwMiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9E RVZJQ0UoMHgxM2QzLCAweDM0MDgpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJ eyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDIzKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAx MiB9LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQzMiksIC5kcml2ZXJfaW5mbyA9IEJUVVNC X0FUSDMwMTIgfSwKIAogCS8qIEF0aGVyb3MgQVI1QkJVMTIgd2l0aCBzZmxhc2ggZmlybXdhcmUg Ki8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci90cG0vdHBtLmMgYi9kcml2ZXJzL2NoYXIvdHBt L3RwbS5jCmluZGV4IGMyMzRiOWUuLmY3Mzk1YzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci90 cG0vdHBtLmMKKysrIGIvZHJpdmVycy9jaGFyL3RwbS90cG0uYwpAQCAtMTM0MSw3ICsxMzQxLDcg QEAgc3RydWN0IHRwbV9jaGlwICp0cG1fcmVnaXN0ZXJfaGFyZHdhcmUoc3RydWN0IGRldmljZSAq ZGV2LAogCiAJLyogTWFrZSBjaGlwIGF2YWlsYWJsZSAqLwogCXNwaW5fbG9jaygmZHJpdmVyX2xv Y2spOwotCWxpc3RfYWRkX3JjdSgmY2hpcC0+bGlzdCwgJnRwbV9jaGlwX2xpc3QpOworCWxpc3Rf YWRkX3RhaWxfcmN1KCZjaGlwLT5saXN0LCAmdHBtX2NoaXBfbGlzdCk7CiAJc3Bpbl91bmxvY2so JmRyaXZlcl9sb2NrKTsKIAogCXJldHVybiBjaGlwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFy L3ZpcnRpb19jb25zb2xlLmMgYi9kcml2ZXJzL2NoYXIvdmlydGlvX2NvbnNvbGUuYwppbmRleCBj NjhiOGFkLi5lOWQxOGFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvdmlydGlvX2NvbnNvbGUu YworKysgYi9kcml2ZXJzL2NoYXIvdmlydGlvX2NvbnNvbGUuYwpAQCAtMTI0LDYgKzEyNCw3IEBA IHN0cnVjdCBwb3J0c19kZXZpY2UgewogCSAqIG5vdGlmaWNhdGlvbgogCSAqLwogCXN0cnVjdCB3 b3JrX3N0cnVjdCBjb250cm9sX3dvcms7CisJc3RydWN0IHdvcmtfc3RydWN0IGNvbmZpZ193b3Jr OwogCiAJc3RydWN0IGxpc3RfaGVhZCBwb3J0czsKIApAQCAtMTU1NiwxMCArMTU1NywyMSBAQCBz dGF0aWMgdm9pZCBjb25maWdfaW50cihzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldikKIAogCXBv cnRkZXYgPSB2ZGV2LT5wcml2OwogCisJaWYgKCF1c2VfbXVsdGlwb3J0KHBvcnRkZXYpKQorCQlz Y2hlZHVsZV93b3JrKCZwb3J0ZGV2LT5jb25maWdfd29yayk7Cit9CisKK3N0YXRpYyB2b2lkIGNv bmZpZ193b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBw b3J0c19kZXZpY2UgKnBvcnRkZXY7CisKKwlwb3J0ZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0 cnVjdCBwb3J0c19kZXZpY2UsIGNvbnRyb2xfd29yayk7CiAJaWYgKCF1c2VfbXVsdGlwb3J0KHBv cnRkZXYpKSB7CisJCXN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2OwogCQlzdHJ1Y3QgcG9ydCAq cG9ydDsKIAkJdTE2IHJvd3MsIGNvbHM7CiAKKwkJdmRldiA9IHBvcnRkZXYtPnZkZXY7CiAJCXZk ZXYtPmNvbmZpZy0+Z2V0KHZkZXYsCiAJCQkJICBvZmZzZXRvZihzdHJ1Y3QgdmlydGlvX2NvbnNv bGVfY29uZmlnLCBjb2xzKSwKIAkJCQkgICZjb2xzLCBzaXplb2YodTE2KSk7CkBAIC0xNzMxLDYg KzE3NDMsOCBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCB2aXJ0Y29uc19wcm9iZShzdHJ1Y3Qgdmly dGlvX2RldmljZSAqdmRldikKIAlzcGluX2xvY2tfaW5pdCgmcG9ydGRldi0+cG9ydHNfbG9jayk7 CiAJSU5JVF9MSVNUX0hFQUQoJnBvcnRkZXYtPnBvcnRzKTsKIAorCUlOSVRfV09SSygmcG9ydGRl di0+Y29uZmlnX3dvcmssICZjb25maWdfd29ya19oYW5kbGVyKTsKKwogCWlmIChtdWx0aXBvcnQp IHsKIAkJdW5zaWduZWQgaW50IG5yX2FkZGVkX2J1ZnM7CiAKQEAgLTE4MDYsNiArMTgyMCw4IEBA IHN0YXRpYyB2b2lkIHZpcnRjb25zX3JlbW92ZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldikK IAkvKiBGaW5pc2ggdXAgd29yayB0aGF0J3MgbGluZWQgdXAgKi8KIAlpZiAodXNlX211bHRpcG9y dChwb3J0ZGV2KSkKIAkJY2FuY2VsX3dvcmtfc3luYygmcG9ydGRldi0+Y29udHJvbF93b3JrKTsK KwllbHNlCisJCWNhbmNlbF93b3JrX3N5bmMoJnBvcnRkZXYtPmNvbmZpZ193b3JrKTsKIAogCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShwb3J0LCBwb3J0MiwgJnBvcnRkZXYtPnBvcnRzLCBsaXN0 KQogCQl1bnBsdWdfcG9ydChwb3J0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3B1ZnJlcS9zcGVl ZHN0ZXAtbGliLmMgYi9kcml2ZXJzL2NwdWZyZXEvc3BlZWRzdGVwLWxpYi5jCmluZGV4IDhhZjJk MmYuLjJjMDM0NWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3B1ZnJlcS9zcGVlZHN0ZXAtbGliLmMK KysrIGIvZHJpdmVycy9jcHVmcmVxL3NwZWVkc3RlcC1saWIuYwpAQCAtMzk5LDYgKzM5OSw3IEBA IHVuc2lnbmVkIGludCBzcGVlZHN0ZXBfZ2V0X2ZyZXFzKGVudW0gc3BlZWRzdGVwX3Byb2Nlc3Nv ciBwcm9jZXNzb3IsCiAKIAlwcl9kZWJ1ZygicHJldmlvdXMgc3BlZWQgaXMgJXVcbiIsIHByZXZf c3BlZWQpOwogCisJcHJlZW1wdF9kaXNhYmxlKCk7CiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwog CiAJLyogc3dpdGNoIHRvIGxvdyBzdGF0ZSAqLwpAQCAtNDYzLDYgKzQ2NCw4IEBAIHVuc2lnbmVk IGludCBzcGVlZHN0ZXBfZ2V0X2ZyZXFzKGVudW0gc3BlZWRzdGVwX3Byb2Nlc3NvciBwcm9jZXNz b3IsCiAKIG91dDoKIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisJcHJlZW1wdF9lbmFibGUo KTsKKwogCXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChzcGVlZHN0ZXBfZ2V0X2Zy ZXFzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3B1ZnJlcS9zcGVlZHN0ZXAtc21pLmMgYi9kcml2 ZXJzL2NwdWZyZXEvc3BlZWRzdGVwLXNtaS5jCmluZGV4IGM3NmVhZDMuLjhhOTdmOTQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvY3B1ZnJlcS9zcGVlZHN0ZXAtc21pLmMKKysrIGIvZHJpdmVycy9jcHVm cmVxL3NwZWVkc3RlcC1zbWkuYwpAQCAtMTg3LDYgKzE4Nyw3IEBAIHN0YXRpYyB2b2lkIHNwZWVk c3RlcF9zZXRfc3RhdGUodW5zaWduZWQgaW50IHN0YXRlKQogCQlyZXR1cm47CiAKIAkvKiBEaXNh YmxlIElSUXMgKi8KKwlwcmVlbXB0X2Rpc2FibGUoKTsKIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7 CiAKIAljb21tYW5kID0gKHNtaV9zaWcgJiAweGZmZmZmZjAwKSB8IChzbWlfY21kICYgMHhmZik7 CkBAIC0xOTcsOSArMTk4LDE5IEBAIHN0YXRpYyB2b2lkIHNwZWVkc3RlcF9zZXRfc3RhdGUodW5z aWduZWQgaW50IHN0YXRlKQogCiAJZG8gewogCQlpZiAocmV0cnkpIHsKKwkJCS8qCisJCQkgKiBX ZSBuZWVkIHRvIGVuYWJsZSBpbnRlcnJ1cHRzLCBvdGhlcndpc2UgdGhlIGJsb2NrYWdlCisJCQkg KiB3b24ndCByZXNvbHZlLgorCQkJICoKKwkJCSAqIFdlIGRpc2FibGUgcHJlZW1wdGlvbiBzbyB0 aGF0IG90aGVyIHByb2Nlc3NlcyBkb24ndAorCQkJICogcnVuLiBJZiBvdGhlciBwcm9jZXNzZXMg d2VyZSBydW5uaW5nLCB0aGV5IGNvdWxkCisJCQkgKiBzdWJtaXQgbW9yZSBETUEgcmVxdWVzdHMs IG1ha2luZyB0aGUgYmxvY2thZ2Ugd29yc2UuCisJCQkgKi8KIAkJCXByX2RlYnVnKCJyZXRyeSAl dSwgcHJldmlvdXMgcmVzdWx0ICV1LCB3YWl0aW5nLi4uXG4iLAogCQkJCQlyZXRyeSwgcmVzdWx0 KTsKKwkJCWxvY2FsX2lycV9lbmFibGUoKTsKIAkJCW1kZWxheShyZXRyeSAqIDUwKTsKKwkJCWxv Y2FsX2lycV9kaXNhYmxlKCk7CiAJCX0KIAkJcmV0cnkrKzsKIAkJX19hc21fXyBfX3ZvbGF0aWxl X18oCkBAIC0yMTYsNiArMjI3LDcgQEAgc3RhdGljIHZvaWQgc3BlZWRzdGVwX3NldF9zdGF0ZSh1 bnNpZ25lZCBpbnQgc3RhdGUpCiAKIAkvKiBlbmFibGUgSVJRcyAqLwogCWxvY2FsX2lycV9yZXN0 b3JlKGZsYWdzKTsKKwlwcmVlbXB0X2VuYWJsZSgpOwogCiAJaWYgKG5ld19zdGF0ZSA9PSBzdGF0 ZSkKIAkJcHJfZGVidWcoImNoYW5nZSB0byAldSBNSHogc3VjY2VlZGVkIGFmdGVyICV1IHRyaWVz ICIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvZG1pX3NjYW4uYyBiL2RyaXZlcnMvZmly bXdhcmUvZG1pX3NjYW4uYwppbmRleCAyODYxZWY0Li5jY2I1OWZhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2Zpcm13YXJlL2RtaV9zY2FuLmMKKysrIGIvZHJpdmVycy9maXJtd2FyZS9kbWlfc2Nhbi5j CkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBjaGFyICogX19pbml0IGRtaV9zdHJpbmcoY29uc3Qg c3RydWN0IGRtaV9oZWFkZXIgKmRtLCB1OCBzKQogICoJV2UgaGF2ZSB0byBiZSBjYXV0aW91cyBo ZXJlLiBXZSBoYXZlIHNlZW4gQklPU2VzIHdpdGggRE1JIHBvaW50ZXJzCiAgKglwb2ludGluZyB0 byBjb21wbGV0ZWx5IHRoZSB3cm9uZyBwbGFjZSBmb3IgZXhhbXBsZQogICovCi1zdGF0aWMgdm9p ZCBkbWlfdGFibGUodTggKmJ1ZiwgaW50IGxlbiwgaW50IG51bSwKK3N0YXRpYyB2b2lkIGRtaV90 YWJsZSh1OCAqYnVmLCB1MzIgbGVuLCBpbnQgbnVtLAogCQkgICAgICB2b2lkICgqZGVjb2RlKShj b25zdCBzdHJ1Y3QgZG1pX2hlYWRlciAqLCB2b2lkICopLAogCQkgICAgICB2b2lkICpwcml2YXRl X2RhdGEpCiB7CkBAIC05OSw3ICs5OSw3IEBAIHN0YXRpYyB2b2lkIGRtaV90YWJsZSh1OCAqYnVm LCBpbnQgbGVuLCBpbnQgbnVtLAogfQogCiBzdGF0aWMgdTMyIGRtaV9iYXNlOwotc3RhdGljIHUx NiBkbWlfbGVuOworc3RhdGljIHUzMiBkbWlfbGVuOwogc3RhdGljIHUxNiBkbWlfbnVtOwogCiBz dGF0aWMgaW50IF9faW5pdCBkbWlfd2Fsa19lYXJseSh2b2lkICgqZGVjb2RlKShjb25zdCBzdHJ1 Y3QgZG1pX2hlYWRlciAqLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncGlvL2dwaW8tdHBzNjU5MTIu YyBiL2RyaXZlcnMvZ3Bpby9ncGlvLXRwczY1OTEyLmMKaW5kZXggNzllNjZjMC4uMjcxMjY4MCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncGlvL2dwaW8tdHBzNjU5MTIuYworKysgYi9kcml2ZXJzL2dw aW8vZ3Bpby10cHM2NTkxMi5jCkBAIC0yNiw5ICsyNiwxMiBAQCBzdHJ1Y3QgdHBzNjU5MTJfZ3Bp b19kYXRhIHsKIAlzdHJ1Y3QgZ3Bpb19jaGlwIGdwaW9fY2hpcDsKIH07CiAKKyNkZWZpbmUgdG9f dGdkKGdjKSBjb250YWluZXJfb2YoZ2MsIHN0cnVjdCB0cHM2NTkxMl9ncGlvX2RhdGEsIGdwaW9f Y2hpcCkKKwogc3RhdGljIGludCB0cHM2NTkxMl9ncGlvX2dldChzdHJ1Y3QgZ3Bpb19jaGlwICpn YywgdW5zaWduZWQgb2Zmc2V0KQogewotCXN0cnVjdCB0cHM2NTkxMiAqdHBzNjU5MTIgPSBjb250 YWluZXJfb2YoZ2MsIHN0cnVjdCB0cHM2NTkxMiwgZ3Bpbyk7CisJc3RydWN0IHRwczY1OTEyX2dw aW9fZGF0YSAqdHBzNjU5MTJfZ3BpbyA9IHRvX3RnZChnYyk7CisJc3RydWN0IHRwczY1OTEyICp0 cHM2NTkxMiA9IHRwczY1OTEyX2dwaW8tPnRwczY1OTEyOwogCWludCB2YWw7CiAKIAl2YWwgPSB0 cHM2NTkxMl9yZWdfcmVhZCh0cHM2NTkxMiwgVFBTNjU5MTJfR1BJTzEgKyBvZmZzZXQpOwpAQCAt NDIsNyArNDUsOCBAQCBzdGF0aWMgaW50IHRwczY1OTEyX2dwaW9fZ2V0KHN0cnVjdCBncGlvX2No aXAgKmdjLCB1bnNpZ25lZCBvZmZzZXQpCiBzdGF0aWMgdm9pZCB0cHM2NTkxMl9ncGlvX3NldChz dHJ1Y3QgZ3Bpb19jaGlwICpnYywgdW5zaWduZWQgb2Zmc2V0LAogCQkJICAgICAgaW50IHZhbHVl KQogewotCXN0cnVjdCB0cHM2NTkxMiAqdHBzNjU5MTIgPSBjb250YWluZXJfb2YoZ2MsIHN0cnVj dCB0cHM2NTkxMiwgZ3Bpbyk7CisJc3RydWN0IHRwczY1OTEyX2dwaW9fZGF0YSAqdHBzNjU5MTJf Z3BpbyA9IHRvX3RnZChnYyk7CisJc3RydWN0IHRwczY1OTEyICp0cHM2NTkxMiA9IHRwczY1OTEy X2dwaW8tPnRwczY1OTEyOwogCiAJaWYgKHZhbHVlKQogCQl0cHM2NTkxMl9zZXRfYml0cyh0cHM2 NTkxMiwgVFBTNjU5MTJfR1BJTzEgKyBvZmZzZXQsCkBAIC01NSw3ICs1OSw4IEBAIHN0YXRpYyB2 b2lkIHRwczY1OTEyX2dwaW9fc2V0KHN0cnVjdCBncGlvX2NoaXAgKmdjLCB1bnNpZ25lZCBvZmZz ZXQsCiBzdGF0aWMgaW50IHRwczY1OTEyX2dwaW9fb3V0cHV0KHN0cnVjdCBncGlvX2NoaXAgKmdj LCB1bnNpZ25lZCBvZmZzZXQsCiAJCQkJaW50IHZhbHVlKQogewotCXN0cnVjdCB0cHM2NTkxMiAq dHBzNjU5MTIgPSBjb250YWluZXJfb2YoZ2MsIHN0cnVjdCB0cHM2NTkxMiwgZ3Bpbyk7CisJc3Ry dWN0IHRwczY1OTEyX2dwaW9fZGF0YSAqdHBzNjU5MTJfZ3BpbyA9IHRvX3RnZChnYyk7CisJc3Ry dWN0IHRwczY1OTEyICp0cHM2NTkxMiA9IHRwczY1OTEyX2dwaW8tPnRwczY1OTEyOwogCiAJLyog U2V0IHRoZSBpbml0aWFsIHZhbHVlICovCiAJdHBzNjU5MTJfZ3Bpb19zZXQoZ2MsIG9mZnNldCwg dmFsdWUpOwpAQCAtNjYsNyArNzEsOCBAQCBzdGF0aWMgaW50IHRwczY1OTEyX2dwaW9fb3V0cHV0 KHN0cnVjdCBncGlvX2NoaXAgKmdjLCB1bnNpZ25lZCBvZmZzZXQsCiAKIHN0YXRpYyBpbnQgdHBz NjU5MTJfZ3Bpb19pbnB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpnYywgdW5zaWduZWQgb2Zmc2V0KQog ewotCXN0cnVjdCB0cHM2NTkxMiAqdHBzNjU5MTIgPSBjb250YWluZXJfb2YoZ2MsIHN0cnVjdCB0 cHM2NTkxMiwgZ3Bpbyk7CisJc3RydWN0IHRwczY1OTEyX2dwaW9fZGF0YSAqdHBzNjU5MTJfZ3Bp byA9IHRvX3RnZChnYyk7CisJc3RydWN0IHRwczY1OTEyICp0cHM2NTkxMiA9IHRwczY1OTEyX2dw aW8tPnRwczY1OTEyOwogCiAJcmV0dXJuIHRwczY1OTEyX2NsZWFyX2JpdHModHBzNjU5MTIsIFRQ UzY1OTEyX0dQSU8xICsgb2Zmc2V0LAogCQkJCQkJCQlHUElPX0NGR19NQVNLKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3NfZHAuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vYXRvbWJpb3NfZHAuYwppbmRleCBlOGEzYzMxLi4zZTM0ZjFlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2RwLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9hdG9tYmlvc19kcC5jCkBAIC03MzksMTAgKzczOSw4IEBAIHN0YXRpYyBpbnQg cmFkZW9uX2RwX2xpbmtfdHJhaW5faW5pdChzdHJ1Y3QgcmFkZW9uX2RwX2xpbmtfdHJhaW5faW5m byAqZHBfaW5mbykKIAkJcmFkZW9uX3dyaXRlX2RwY2RfcmVnKGRwX2luZm8tPnJhZGVvbl9jb25u ZWN0b3IsCiAJCQkJICAgICAgRFBfRE9XTlNQUkVBRF9DVFJMLCAwKTsKIAotCWlmICgoZHBfaW5m by0+Y29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKSAm JgotCSAgICAoZGlnLT5wYW5lbF9tb2RlID09IERQX1BBTkVMX01PREVfSU5URVJOQUxfRFAyX01P REUpKSB7CisJaWYgKGRpZy0+cGFuZWxfbW9kZSA9PSBEUF9QQU5FTF9NT0RFX0lOVEVSTkFMX0RQ Ml9NT0RFKQogCQlyYWRlb25fd3JpdGVfZHBjZF9yZWcoZHBfaW5mby0+cmFkZW9uX2Nvbm5lY3Rv ciwgRFBfRURQX0NPTkZJR1VSQVRJT05fU0VULCAxKTsKLQl9CiAKIAkvKiBzZXQgdGhlIGxhbmUg Y291bnQgb24gdGhlIHNpbmsgKi8KIAl0bXAgPSBkcF9pbmZvLT5kcF9sYW5lX2NvdW50OwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vZXZlcmdyZWVuLmMKaW5kZXggOWIzZjc4Ny4uNWQ3ODk3MyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL2V2ZXJncmVlbi5jCkBAIC0yNjMxLDYgKzI2MzEsOSBAQCBpbnQgZXZlcmdyZWVu X2lycV9zZXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJV1JFRzMyKERDX0hQRDVfSU5U X0NPTlRST0wsIGhwZDUpOwogCVdSRUczMihEQ19IUEQ2X0lOVF9DT05UUk9MLCBocGQ2KTsKIAor CS8qIHBvc3RpbmcgcmVhZCAqLworCVJSRUczMihTUkJNX1NUQVRVUyk7CisKIAlyZXR1cm4gMDsK IH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3IxMDAuYwppbmRleCA3NmMxMjkwLi5kZmQxMjY3IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IxMDAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3IxMDAuYwpAQCAtNjg4LDYgKzY4OCwxMCBAQCBpbnQgcjEwMF9pcnFfc2V0KHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2KQogCQl0bXAgfD0gUkFERU9OX0ZQMl9ERVRFQ1RfTUFTSzsKIAl9 CiAJV1JFRzMyKFJBREVPTl9HRU5fSU5UX0NOVEwsIHRtcCk7CisKKwkvKiByZWFkIGJhY2sgdG8g cG9zdCB0aGUgd3JpdGUgKi8KKwlSUkVHMzIoUkFERU9OX0dFTl9JTlRfQ05UTCk7CisKIAlyZXR1 cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMgYi9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYwppbmRleCBhYjQ2YTk5Li5lNTI5OWEwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3I2MDAuYwpAQCAtMzE1Niw2ICszMTU2LDkgQEAgaW50IHI2MDBfaXJxX3NldChz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAkJV1JFRzMyKERDX0hPVF9QTFVHX0RFVEVDVDNf SU5UX0NPTlRST0wsIGhwZDMpOwogCX0KIAorCS8qIHBvc3RpbmcgcmVhZCAqLworCVJSRUczMihS XzAwMEU1MF9TUkJNX1NUQVRVUyk7CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYmlvcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fYmlvcy5jCmluZGV4IGNjZjMyNGIuLjZlOTg3MDMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Jpb3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9iaW9zLmMKQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIGJvb2wgaWdwX3JlYWRf Ymlvc19mcm9tX3ZyYW0oc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAKIHN0YXRpYyBib29s IHJhZGVvbl9yZWFkX2Jpb3Moc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7Ci0JdWludDhf dCBfX2lvbWVtICpiaW9zOworCXVpbnQ4X3QgX19pb21lbSAqYmlvcywgdmFsMSwgdmFsMjsKIAlz aXplX3Qgc2l6ZTsKIAogCXJkZXYtPmJpb3MgPSBOVUxMOwpAQCAtODYsMTUgKzg2LDE5IEBAIHN0 YXRpYyBib29sIHJhZGVvbl9yZWFkX2Jpb3Moc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJ CXJldHVybiBmYWxzZTsKIAl9CiAKLQlpZiAoc2l6ZSA9PSAwIHx8IGJpb3NbMF0gIT0gMHg1NSB8 fCBiaW9zWzFdICE9IDB4YWEpIHsKKwl2YWwxID0gcmVhZGIoJmJpb3NbMF0pOworCXZhbDIgPSBy ZWFkYigmYmlvc1sxXSk7CisKKwlpZiAoc2l6ZSA9PSAwIHx8IHZhbDEgIT0gMHg1NSB8fCB2YWwy ICE9IDB4YWEpIHsKIAkJcGNpX3VubWFwX3JvbShyZGV2LT5wZGV2LCBiaW9zKTsKIAkJcmV0dXJu IGZhbHNlOwogCX0KLQlyZGV2LT5iaW9zID0ga21lbWR1cChiaW9zLCBzaXplLCBHRlBfS0VSTkVM KTsKKwlyZGV2LT5iaW9zID0ga3phbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKIAlpZiAocmRldi0+ YmlvcyA9PSBOVUxMKSB7CiAJCXBjaV91bm1hcF9yb20ocmRldi0+cGRldiwgYmlvcyk7CiAJCXJl dHVybiBmYWxzZTsKIAl9CisJbWVtY3B5X2Zyb21pbyhyZGV2LT5iaW9zLCBiaW9zLCBzaXplKTsK IAlwY2lfdW5tYXBfcm9tKHJkZXYtPnBkZXYsIGJpb3MpOwogCXJldHVybiB0cnVlOwogfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2NzLmMKaW5kZXggMWYzMjU1Ny4uMGRkYzA4YyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9jcy5jCkBAIC05NSwxMSArOTUsMTMgQEAgaW50IHJhZGVvbl9jc19w YXJzZXJfaW5pdChzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwgdm9pZCAqZGF0YSkKIAl1aW50 NjRfdCAqY2h1bmtfYXJyYXlfcHRyOwogCXVuc2lnbmVkIHNpemUsIGksIGZsYWdzID0gMDsKIAor CUlOSVRfTElTVF9IRUFEKCZwLT52YWxpZGF0ZWQpOworCiAJaWYgKCFjcy0+bnVtX2NodW5rcykg ewogCQlyZXR1cm4gMDsKIAl9CisKIAkvKiBnZXQgY2h1bmtzICovCi0JSU5JVF9MSVNUX0hFQUQo JnAtPnZhbGlkYXRlZCk7CiAJcC0+aWR4ID0gMDsKIAlwLT5jaHVua19pYl9pZHggPSAtMTsKIAlw LT5jaHVua19yZWxvY3NfaWR4ID0gLTE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JzNjAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JzNjAwLmMKaW5kZXggZGMwMDE1 NS4uZmMzNzU1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczYwMC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2MDAuYwpAQCAtNTc2LDYgKzU3NiwxMCBAQCBp bnQgcnM2MDBfaXJxX3NldChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAlXUkVHMzIoUl8w MDY1NDBfRHhNT0RFX0lOVF9NQVNLLCBtb2RlX2ludCk7CiAJV1JFRzMyKFJfMDA3RDA4X0RDX0hP VF9QTFVHX0RFVEVDVDFfSU5UX0NPTlRST0wsIGhwZDEpOwogCVdSRUczMihSXzAwN0QxOF9EQ19I T1RfUExVR19ERVRFQ1QyX0lOVF9DT05UUk9MLCBocGQyKTsKKworCS8qIHBvc3RpbmcgcmVhZCAq LworCVJSRUczMihSXzAwMDA0MF9HRU5fSU5UX0NOVEwpOworCiAJcmV0dXJuIDA7CiB9CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKaW5kZXggYjYzOTUzNi4uZjczOWZjZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKQEAgLTUwMywyMSArNTAzLDYgQEAgc3RhdGljIGlu dCB2bXdfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBj aGlwc2V0KQogCQlnb3RvIG91dF9lcnIxOwogCX0KIAotCXJldCA9IHR0bV9ib19pbml0X21tKCZk ZXZfcHJpdi0+YmRldiwgVFRNX1BMX1ZSQU0sCi0JCQkgICAgIChkZXZfcHJpdi0+dnJhbV9zaXpl ID4+IFBBR0VfU0hJRlQpKTsKLQlpZiAodW5saWtlbHkocmV0ICE9IDApKSB7Ci0JCURSTV9FUlJP UigiRmFpbGVkIGluaXRpYWxpemluZyBtZW1vcnkgbWFuYWdlciBmb3IgVlJBTS5cbiIpOwotCQln b3RvIG91dF9lcnIyOwotCX0KLQotCWRldl9wcml2LT5oYXNfZ21yID0gdHJ1ZTsKLQlpZiAodHRt X2JvX2luaXRfbW0oJmRldl9wcml2LT5iZGV2LCBWTVdfUExfR01SLAotCQkJICAgZGV2X3ByaXYt Pm1heF9nbXJfaWRzKSAhPSAwKSB7Ci0JCURSTV9JTkZPKCJObyBHTVIgbWVtb3J5IGF2YWlsYWJs ZS4gIgotCQkJICJHcmFwaGljcyBtZW1vcnkgcmVzb3VyY2VzIGFyZSB2ZXJ5IGxpbWl0ZWQuXG4i KTsKLQkJZGV2X3ByaXYtPmhhc19nbXIgPSBmYWxzZTsKLQl9Ci0KIAlkZXZfcHJpdi0+bW1pb19t dHJyID0gZHJtX210cnJfYWRkKGRldl9wcml2LT5tbWlvX3N0YXJ0LAogCQkJCQkgICBkZXZfcHJp di0+bW1pb19zaXplLCBEUk1fTVRSUl9XQyk7CiAKQEAgLTU3MCw2ICs1NTUsMjIgQEAgc3RhdGlj IGludCB2bXdfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9u ZyBjaGlwc2V0KQogCWlmICh1bmxpa2VseShkZXZfcHJpdi0+Zm1hbiA9PSBOVUxMKSkKIAkJZ290 byBvdXRfbm9fZm1hbjsKIAorCisJcmV0ID0gdHRtX2JvX2luaXRfbW0oJmRldl9wcml2LT5iZGV2 LCBUVE1fUExfVlJBTSwKKwkJCSAgICAgKGRldl9wcml2LT52cmFtX3NpemUgPj4gUEFHRV9TSElG VCkpOworCWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgaW5p dGlhbGl6aW5nIG1lbW9yeSBtYW5hZ2VyIGZvciBWUkFNLlxuIik7CisJCWdvdG8gb3V0X25vX3Zy YW07CisJfQorCisJZGV2X3ByaXYtPmhhc19nbXIgPSB0cnVlOworCWlmICh0dG1fYm9faW5pdF9t bSgmZGV2X3ByaXYtPmJkZXYsIFZNV19QTF9HTVIsCisJCQkgICBkZXZfcHJpdi0+bWF4X2dtcl9p ZHMpICE9IDApIHsKKwkJRFJNX0lORk8oIk5vIEdNUiBtZW1vcnkgYXZhaWxhYmxlLiAiCisJCQkg IkdyYXBoaWNzIG1lbW9yeSByZXNvdXJjZXMgYXJlIHZlcnkgbGltaXRlZC5cbiIpOworCQlkZXZf cHJpdi0+aGFzX2dtciA9IGZhbHNlOworCX0KKwogCS8qIE5lZWQgdG8gc3RhcnQgdGhlIGZpZm8g dG8gY2hlY2sgaWYgd2UgY2FuIGRvIHNjcmVlbiBvYmplY3RzICovCiAJcmV0ID0gdm13XzNkX3Jl c291cmNlX2luYyhkZXZfcHJpdiwgdHJ1ZSk7CiAJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKQEAg LTYyMCw2ICs2MjEsMTAgQEAgb3V0X25vX2ttczoKIAkJdm13XzNkX3Jlc291cmNlX2RlYyhkZXZf cHJpdiwgZmFsc2UpOwogCX0KIG91dF9ub19maWZvOgorCWlmIChkZXZfcHJpdi0+aGFzX2dtcikK KwkJKHZvaWQpIHR0bV9ib19jbGVhbl9tbSgmZGV2X3ByaXYtPmJkZXYsIFZNV19QTF9HTVIpOwor CSh2b2lkKXR0bV9ib19jbGVhbl9tbSgmZGV2X3ByaXYtPmJkZXYsIFRUTV9QTF9WUkFNKTsKK291 dF9ub192cmFtOgogCXZtd19mZW5jZV9tYW5hZ2VyX3Rha2Vkb3duKGRldl9wcml2LT5mbWFuKTsK IG91dF9ub19mbWFuOgogCWlmIChkZXZfcHJpdi0+c3RlYWx0aCkKQEAgLTYzMywxMCArNjM4LDYg QEAgb3V0X2VycjQ6CiBvdXRfZXJyMzoKIAlkcm1fbXRycl9kZWwoZGV2X3ByaXYtPm1taW9fbXRy ciwgZGV2X3ByaXYtPm1taW9fc3RhcnQsCiAJCSAgICAgZGV2X3ByaXYtPm1taW9fc2l6ZSwgRFJN X01UUlJfV0MpOwotCWlmIChkZXZfcHJpdi0+aGFzX2dtcikKLQkJKHZvaWQpIHR0bV9ib19jbGVh bl9tbSgmZGV2X3ByaXYtPmJkZXYsIFZNV19QTF9HTVIpOwotCSh2b2lkKXR0bV9ib19jbGVhbl9t bSgmZGV2X3ByaXYtPmJkZXYsIFRUTV9QTF9WUkFNKTsKLW91dF9lcnIyOgogCSh2b2lkKXR0bV9i b19kZXZpY2VfcmVsZWFzZSgmZGV2X3ByaXYtPmJkZXYpOwogb3V0X2VycjE6CiAJdm13X3R0bV9n bG9iYWxfcmVsZWFzZShkZXZfcHJpdik7CkBAIC02NjUsNiArNjY2LDExIEBAIHN0YXRpYyBpbnQg dm13X2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl9CiAJdm13X2ttc19j bG9zZShkZXZfcHJpdik7CiAJdm13X292ZXJsYXlfY2xvc2UoZGV2X3ByaXYpOworCisJaWYgKGRl dl9wcml2LT5oYXNfZ21yKQorCQkodm9pZCl0dG1fYm9fY2xlYW5fbW0oJmRldl9wcml2LT5iZGV2 LCBWTVdfUExfR01SKTsKKwkodm9pZCl0dG1fYm9fY2xlYW5fbW0oJmRldl9wcml2LT5iZGV2LCBU VE1fUExfVlJBTSk7CisKIAl2bXdfZmVuY2VfbWFuYWdlcl90YWtlZG93bihkZXZfcHJpdi0+Zm1h bik7CiAJaWYgKGRldl9wcml2LT5zdGVhbHRoKQogCQlwY2lfcmVsZWFzZV9yZWdpb24oZGV2LT5w ZGV2LCAyKTsKQEAgLTY3NSw5ICs2ODEsNiBAQCBzdGF0aWMgaW50IHZtd19kcml2ZXJfdW5sb2Fk KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaW91bm1hcChkZXZfcHJpdi0+bW1pb192aXJ0KTsK IAlkcm1fbXRycl9kZWwoZGV2X3ByaXYtPm1taW9fbXRyciwgZGV2X3ByaXYtPm1taW9fc3RhcnQs CiAJCSAgICAgZGV2X3ByaXYtPm1taW9fc2l6ZSwgRFJNX01UUlJfV0MpOwotCWlmIChkZXZfcHJp di0+aGFzX2dtcikKLQkJKHZvaWQpdHRtX2JvX2NsZWFuX21tKCZkZXZfcHJpdi0+YmRldiwgVk1X X1BMX0dNUik7Ci0JKHZvaWQpdHRtX2JvX2NsZWFuX21tKCZkZXZfcHJpdi0+YmRldiwgVFRNX1BM X1ZSQU0pOwogCSh2b2lkKXR0bV9ib19kZXZpY2VfcmVsZWFzZSgmZGV2X3ByaXYtPmJkZXYpOwog CXZtd190dG1fZ2xvYmFsX3JlbGVhc2UoZGV2X3ByaXYpOwogCWlkcl9kZXN0cm95KCZkZXZfcHJp di0+c3VyZmFjZV9pZHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1l bS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbS5jCmluZGV4IGE4NDExMjMuLjA1NWVi ZWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYworKysgYi9kcml2 ZXJzL2luZmluaWJhbmQvY29yZS91bWVtLmMKQEAgLTk0LDYgKzk0LDE0IEBAIHN0cnVjdCBpYl91 bWVtICppYl91bWVtX2dldChzdHJ1Y3QgaWJfdWNvbnRleHQgKmNvbnRleHQsIHVuc2lnbmVkIGxv bmcgYWRkciwKIAlpZiAoZG1hc3luYykKIAkJZG1hX3NldF9hdHRyKERNQV9BVFRSX1dSSVRFX0JB UlJJRVIsICZhdHRycyk7CiAKKwkvKgorCSAqIElmIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgYWRk ciBhbmQgc2l6ZSByZXF1ZXN0ZWQgZm9yIHRoaXMgbWVtb3J5CisJICogcmVnaW9uIGNhdXNlcyBh biBpbnRlZ2VyIG92ZXJmbG93LCByZXR1cm4gZXJyb3IuCisJICovCisJaWYgKChQQUdFX0FMSUdO KGFkZHIgKyBzaXplKSA8PSBzaXplKSB8fAorCSAgICAoUEFHRV9BTElHTihhZGRyICsgc2l6ZSkg PD0gYWRkcikpCisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOworCiAJaWYgKCFjYW5fZG9fbWxv Y2soKSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVQRVJNKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9p bmZpbmliYW5kL2NvcmUvdXZlcmJzX21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2 ZXJic19tYWluLmMKaW5kZXggODc5NjM2Ny4uOTM3OWI5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9p bmZpbmliYW5kL2NvcmUvdXZlcmJzX21haW4uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29y ZS91dmVyYnNfbWFpbi5jCkBAIC00NTEsNiArNDUxLDcgQEAgc3RhdGljIHZvaWQgaWJfdXZlcmJz X2FzeW5jX2hhbmRsZXIoc3RydWN0IGliX3V2ZXJic19maWxlICpmaWxlLAogCiAJZW50cnktPmRl c2MuYXN5bmMuZWxlbWVudCAgICA9IGVsZW1lbnQ7CiAJZW50cnktPmRlc2MuYXN5bmMuZXZlbnRf dHlwZSA9IGV2ZW50OworCWVudHJ5LT5kZXNjLmFzeW5jLnJlc2VydmVkICAgPSAwOwogCWVudHJ5 LT5jb3VudGVyICAgICAgICAgICAgICAgPSBjb3VudGVyOwogCiAJbGlzdF9hZGRfdGFpbCgmZW50 cnktPmxpc3QsICZmaWxlLT5hc3luY19maWxlLT5ldmVudF9saXN0KTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21hZC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21s eDQvbWFkLmMKaW5kZXggNzc3MDJjMC4uNDZiMjkxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZp bmliYW5kL2h3L21seDQvbWFkLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFk LmMKQEAgLTQ0LDYgKzQ0LDE0IEBAIGVudW0gewogCU1MWDRfSUJfVkVORE9SX0NMQVNTMiA9IDB4 YQogfTsKIAorLyogQ291bnRlcnMgc2hvdWxkIGJlIHNhdHVyYXRlIG9uY2UgdGhleSByZWFjaCB0 aGVpciBtYXhpbXVtIHZhbHVlICovCisjZGVmaW5lIEFTU0lHTl8zMkJJVF9DT1VOVEVSKGNvdW50 ZXIsIHZhbHVlKSBkbyB7XAorCWlmICgodmFsdWUpID4gKHUzMil+MFUpCQkJIFwKKwkJY291bnRl ciA9IGNwdV90b19iZTMyKCh1MzIpfjBVKTsgXAorCWVsc2UJCQkJCSBcCisJCWNvdW50ZXIgPSBj cHVfdG9fYmUzMih2YWx1ZSk7CSBcCit9IHdoaWxlICgwKQorCiBpbnQgbWx4NF9NQURfSUZDKHN0 cnVjdCBtbHg0X2liX2RldiAqZGV2LCBpbnQgaWdub3JlX21rZXksIGludCBpZ25vcmVfYmtleSwK IAkJIGludCBwb3J0LCBzdHJ1Y3QgaWJfd2MgKmluX3djLCBzdHJ1Y3QgaWJfZ3JoICppbl9ncmgs CiAJCSB2b2lkICppbl9tYWQsIHZvaWQgKnJlc3BvbnNlX21hZCkKQEAgLTMwMywxMCArMzExLDE0 IEBAIHN0YXRpYyBpbnQgaWJfcHJvY2Vzc19tYWQoc3RydWN0IGliX2RldmljZSAqaWJkZXYsIGlu dCBtYWRfZmxhZ3MsIHU4IHBvcnRfbnVtLAogc3RhdGljIHZvaWQgZWRpdF9jb3VudGVyKHN0cnVj dCBtbHg0X2NvdW50ZXIgKmNudCwKIAkJCQkJc3RydWN0IGliX3BtYV9wb3J0Y291bnRlcnMgKnBt YV9jbnQpCiB7Ci0JcG1hX2NudC0+cG9ydF94bWl0X2RhdGEgPSBjcHVfdG9fYmUzMigoYmU2NF90 b19jcHUoY250LT50eF9ieXRlcyk+PjIpKTsKLQlwbWFfY250LT5wb3J0X3Jjdl9kYXRhICA9IGNw dV90b19iZTMyKChiZTY0X3RvX2NwdShjbnQtPnJ4X2J5dGVzKT4+MikpOwotCXBtYV9jbnQtPnBv cnRfeG1pdF9wYWNrZXRzID0gY3B1X3RvX2JlMzIoYmU2NF90b19jcHUoY250LT50eF9mcmFtZXMp KTsKLQlwbWFfY250LT5wb3J0X3Jjdl9wYWNrZXRzICA9IGNwdV90b19iZTMyKGJlNjRfdG9fY3B1 KGNudC0+cnhfZnJhbWVzKSk7CisJQVNTSUdOXzMyQklUX0NPVU5URVIocG1hX2NudC0+cG9ydF94 bWl0X2RhdGEsCisJCQkgICAgIChiZTY0X3RvX2NwdShjbnQtPnR4X2J5dGVzKSA+PiAyKSk7CisJ QVNTSUdOXzMyQklUX0NPVU5URVIocG1hX2NudC0+cG9ydF9yY3ZfZGF0YSwKKwkJCSAgICAgKGJl NjRfdG9fY3B1KGNudC0+cnhfYnl0ZXMpID4+IDIpKTsKKwlBU1NJR05fMzJCSVRfQ09VTlRFUihw bWFfY250LT5wb3J0X3htaXRfcGFja2V0cywKKwkJCSAgICAgYmU2NF90b19jcHUoY250LT50eF9m cmFtZXMpKTsKKwlBU1NJR05fMzJCSVRfQ09VTlRFUihwbWFfY250LT5wb3J0X3Jjdl9wYWNrZXRz LAorCQkJICAgICBiZTY0X3RvX2NwdShjbnQtPnJ4X2ZyYW1lcykpOwogfQogCiBzdGF0aWMgaW50 IGlib2VfcHJvY2Vzc19tYWQoc3RydWN0IGliX2RldmljZSAqaWJkZXYsIGludCBtYWRfZmxhZ3Ms IHU4IHBvcnRfbnVtLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWIu aCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliLmgKaW5kZXggYjg4MWJkYy4uNGMyYjA3 OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWIuaAorKysgYi9kcml2 ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYi5oCkBAIC0xMDA1LDEyICsxMDA1LDYgQEAgc3RydWN0 IHFpYl9kZXZkYXRhIHsKIAkvKiBjb250cm9sIGhpZ2gtbGV2ZWwgYWNjZXNzIHRvIEVFUFJPTSAq LwogCXN0cnVjdCBtdXRleCBlZXBfbG9jazsKIAl1aW50NjRfdCB0cmFmZmljX3dkczsKLQkvKiBh Y3RpdmUgdGltZSBpcyBrZXB0IGluIHNlY29uZHMsIGJ1dCBsb2dnZWQgaW4gaG91cnMgKi8KLQlh dG9taWNfdCBhY3RpdmVfdGltZTsKLQkvKiBCZWxvdyBhcmUgbm9taW5hbCBzaGFkb3cgb2YgRUVQ Uk9NLCBuZXcgc2luY2UgbGFzdCBFRVBST00gdXBkYXRlICovCi0JdWludDhfdCBlZXBfc3RfZXJy c1tRSUJfRUVQX0xPR19DTlRdOwotCXVpbnQ4X3QgZWVwX3N0X25ld19lcnJzW1FJQl9FRVBfTE9H X0NOVF07Ci0JdWludDE2X3QgZWVwX2hyczsKIAkvKgogCSAqIG1hc2tzIGZvciB3aGljaCBiaXRz IG9mIGVycnMsIGh3ZXJycyB0aGF0IGNhdXNlCiAJICogZWFjaCBvZiB0aGUgY291bnRlcnMgdG8g aW5jcmVtZW50LgpAQCAtMTIyNyw4ICsxMjIxLDcgQEAgaW50IHFpYl90d3NpX2Jsa19yZChzdHJ1 Y3QgcWliX2RldmRhdGEgKmRkLCBpbnQgZGV2LCBpbnQgYWRkciwgdm9pZCAqYnVmZmVyLAogaW50 IHFpYl90d3NpX2Jsa193cihzdHJ1Y3QgcWliX2RldmRhdGEgKmRkLCBpbnQgZGV2LCBpbnQgYWRk ciwKIAkJICAgIGNvbnN0IHZvaWQgKmJ1ZmZlciwgaW50IGxlbik7CiB2b2lkIHFpYl9nZXRfZWVw cm9tX2luZm8oc3RydWN0IHFpYl9kZXZkYXRhICopOwotaW50IHFpYl91cGRhdGVfZWVwcm9tX2xv ZyhzdHJ1Y3QgcWliX2RldmRhdGEgKmRkKTsKLXZvaWQgcWliX2luY19lZXByb21fZXJyKHN0cnVj dCBxaWJfZGV2ZGF0YSAqZGQsIHUzMiBlaWR4LCB1MzIgaW5jcik7CisjZGVmaW5lIHFpYl9pbmNf ZWVwcm9tX2VycihkZCwgZWlkeCwgaW5jcikKIHZvaWQgcWliX2R1bXBfbG9va3VwX291dHB1dF9x dWV1ZShzdHJ1Y3QgcWliX2RldmRhdGEgKik7CiB2b2lkIHFpYl9mb3JjZV9waW9fYXZhaWxfdXBk YXRlKHN0cnVjdCBxaWJfZGV2ZGF0YSAqKTsKIHZvaWQgcWliX2NsZWFyX3N5bWVycm9yX29uX2xp bmt1cCh1bnNpZ25lZCBsb25nIG9wYXF1ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJh bmQvaHcvcWliL3FpYl9lZXByb20uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX2Vl cHJvbS5jCmluZGV4IDkyZDljZmUuLjYzNTljMmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5p YmFuZC9ody9xaWIvcWliX2VlcHJvbS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIv cWliX2VlcHJvbS5jCkBAIC0yNjMsMTg5ICsyNjMsOSBAQCB2b2lkIHFpYl9nZXRfZWVwcm9tX2lu Zm8oc3RydWN0IHFpYl9kZXZkYXRhICpkZCkKIAkJcWliX2Rldl9lcnIoZGQsICJCb2FyZCBTTiAl cyBkaWQgbm90IHBhc3MgZnVuY3Rpb25hbCAiCiAJCQkgICAgInRlc3Q6ICVzXG4iLCBkZC0+c2Vy aWFsLCBpZnAtPmlmX2NvbW1lbnQpOwogCi0JbWVtY3B5KCZkZC0+ZWVwX3N0X2VycnMsICZpZnAt PmlmX2VycmNudHAsIFFJQl9FRVBfTE9HX0NOVCk7Ci0JLyoKLQkgKiBQb3dlci1vbiAoYWN0dWFs bHkgImFjdGl2ZSIpIGhvdXJzIGFyZSBrZXB0IGFzIGxpdHRsZS1lbmRpYW4gdmFsdWUKLQkgKiBp biBFRVBST00sIGJ1dCBhcyBzZWNvbmRzIGluIGEgKHBvc3NpYmx5IGFzIHNtYWxsIGFzIDI0LWJp dCkKLQkgKiBhdG9taWNfdCB3aGlsZSBydW5uaW5nLgotCSAqLwotCWF0b21pY19zZXQoJmRkLT5h Y3RpdmVfdGltZSwgMCk7Ci0JZGQtPmVlcF9ocnMgPSBpZnAtPmlmX3Bvd2VyaG91clswXSB8IChp ZnAtPmlmX3Bvd2VyaG91clsxXSA8PCA4KTsKLQogZG9uZToKIAl2ZnJlZShidWYpOwogCiBiYWls OjsKIH0KIAotLyoqCi0gKiBxaWJfdXBkYXRlX2VlcHJvbV9sb2cgLSBjb3B5IGFjdGl2ZS10aW1l IGFuZCBlcnJvciBjb3VudGVycyB0byBlZXByb20KLSAqIEBkZDogdGhlIHFsb2dpY19pYiBkZXZp Y2UKLSAqCi0gKiBBbHRob3VnaCB0aGUgdGltZSBpcyBrZXB0IGFzIHNlY29uZHMgaW4gdGhlIHFp Yl9kZXZkYXRhIHN0cnVjdCwgaXQgaXMKLSAqIHJvdW5kZWQgdG8gaG91cnMgZm9yIHJlLXdyaXRl LCBhcyB3ZSBoYXZlIG9ubHkgMTYgYml0cyBpbiBFRVBST00uCi0gKiBGaXJzdC1jdXQgY29kZSBy ZWFkcyB3aG9sZSAoZXhwZWN0ZWQpIHN0cnVjdCBxaWJfZmxhc2gsIG1vZGlmaWVzLAotICogcmUt d3JpdGVzLiBGdXR1cmUgZGlyZWN0aW9uOiByZWFkL3dyaXRlIG9ubHkgd2hhdCB3ZSBuZWVkLCBh c3N1bWluZwotICogdGhhdCB0aGUgRUVQUk9NIGhhZCB0byBoYXZlIGJlZW4gImdvb2QgZW5vdWdo IiBmb3IgZHJpdmVyIGluaXQsIGFuZAotICogaWYgbm90LCB3ZSBhcmVuJ3QgbWFraW5nIGl0IHdv cnNlLgotICoKLSAqLwotaW50IHFpYl91cGRhdGVfZWVwcm9tX2xvZyhzdHJ1Y3QgcWliX2RldmRh dGEgKmRkKQotewotCXZvaWQgKmJ1ZjsKLQlzdHJ1Y3QgcWliX2ZsYXNoICppZnA7Ci0JaW50IGxl biwgaGlfd2F0ZXI7Ci0JdWludDMyX3QgbmV3X3RpbWUsIG5ld19ocnM7Ci0JdTggY3N1bTsKLQlp bnQgcmV0LCBpZHg7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCS8qIGZpcnN0LCBjaGVjayBp ZiB3ZSBhY3R1YWxseSBuZWVkIHRvIGRvIGFueXRoaW5nLiAqLwotCXJldCA9IDA7Ci0JZm9yIChp ZHggPSAwOyBpZHggPCBRSUJfRUVQX0xPR19DTlQ7ICsraWR4KSB7Ci0JCWlmIChkZC0+ZWVwX3N0 X25ld19lcnJzW2lkeF0pIHsKLQkJCXJldCA9IDE7Ci0JCQlicmVhazsKLQkJfQotCX0KLQluZXdf dGltZSA9IGF0b21pY19yZWFkKCZkZC0+YWN0aXZlX3RpbWUpOwotCi0JaWYgKHJldCA9PSAwICYm IG5ld190aW1lIDwgMzYwMCkKLQkJZ290byBiYWlsOwotCi0JLyoKLQkgKiBUaGUgcXVpY2stY2hl Y2sgYWJvdmUgZGV0ZXJtaW5lZCB0aGF0IHRoZXJlIGlzIHNvbWV0aGluZyB3b3J0aHkKLQkgKiBv ZiBsb2dnaW5nLCBzbyBnZXQgY3VycmVudCBjb250ZW50cyBhbmQgZG8gYSBtb3JlIGRldGFpbGVk IGlkZWEuCi0JICogcmVhZCBmdWxsIGZsYXNoLCBub3QganVzdCBjdXJyZW50bHkgdXNlZCBwYXJ0 LCBzaW5jZSBpdCBtYXkgaGF2ZQotCSAqIGJlZW4gd3JpdHRlbiB3aXRoIGEgbmV3ZXIgZGVmaW5p dGlvbgotCSAqLwotCWxlbiA9IHNpemVvZihzdHJ1Y3QgcWliX2ZsYXNoKTsKLQlidWYgPSB2bWFs bG9jKGxlbik7Ci0JcmV0ID0gMTsKLQlpZiAoIWJ1ZikgewotCQlxaWJfZGV2X2VycihkZCwgIkNv dWxkbid0IGFsbG9jYXRlIG1lbW9yeSB0byByZWFkICV1ICIKLQkJCSAgICAiYnl0ZXMgZnJvbSBl ZXByb20gZm9yIGxvZ2dpbmdcbiIsIGxlbik7Ci0JCWdvdG8gYmFpbDsKLQl9Ci0KLQkvKiBHcmFi IHNlbWFwaG9yZSBhbmQgcmVhZCBjdXJyZW50IEVFUFJPTS4gSWYgd2UgZ2V0IGFuCi0JICogZXJy b3IsIGxldCBnbywgYnV0IGlmIG5vdCwga2VlcCBpdCB1bnRpbCB3ZSBmaW5pc2ggd3JpdGUuCi0J ICovCi0JcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZC0+ZWVwX2xvY2spOwotCWlm IChyZXQpIHsKLQkJcWliX2Rldl9lcnIoZGQsICJVbmFibGUgdG8gYWNxdWlyZSBFRVBST00gZm9y IGxvZ2dpbmdcbiIpOwotCQlnb3RvIGZyZWVfYmFpbDsKLQl9Ci0JcmV0ID0gcWliX3R3c2lfYmxr X3JkKGRkLCBkZC0+dHdzaV9lZXByb21fZGV2LCAwLCBidWYsIGxlbik7Ci0JaWYgKHJldCkgewot CQltdXRleF91bmxvY2soJmRkLT5lZXBfbG9jayk7Ci0JCXFpYl9kZXZfZXJyKGRkLCAiVW5hYmxl IHJlYWQgRUVQUk9NIGZvciBsb2dnaW5nXG4iKTsKLQkJZ290byBmcmVlX2JhaWw7Ci0JfQotCWlm cCA9IChzdHJ1Y3QgcWliX2ZsYXNoICopYnVmOwotCi0JY3N1bSA9IGZsYXNoX2NzdW0oaWZwLCAw KTsKLQlpZiAoY3N1bSAhPSBpZnAtPmlmX2NzdW0pIHsKLQkJbXV0ZXhfdW5sb2NrKCZkZC0+ZWVw X2xvY2spOwotCQlxaWJfZGV2X2VycihkZCwgIkVFUFJPTSBja3MgZXJyICgweCUwMlgsIFMvQiAw eCUwMlgpXG4iLAotCQkJICAgIGNzdW0sIGlmcC0+aWZfY3N1bSk7Ci0JCXJldCA9IDE7Ci0JCWdv dG8gZnJlZV9iYWlsOwotCX0KLQloaV93YXRlciA9IDA7Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRk LT5lZXBfc3RfbG9jaywgZmxhZ3MpOwotCWZvciAoaWR4ID0gMDsgaWR4IDwgUUlCX0VFUF9MT0df Q05UOyArK2lkeCkgewotCQlpbnQgbmV3X3ZhbCA9IGRkLT5lZXBfc3RfbmV3X2VycnNbaWR4XTsK LQkJaWYgKG5ld192YWwpIHsKLQkJCS8qCi0JCQkgKiBJZiB3ZSBoYXZlIHNlZW4gYW55IGVycm9y cywgYWRkIHRvIEVFUFJPTSB2YWx1ZXMKLQkJCSAqIFdlIG5lZWQgdG8gc2F0dXJhdGUgYXQgMHhG RiAoMjU1KSBhbmQgd2UgYWxzbwotCQkJICogd291bGQgbmVlZCB0byBhZGp1c3QgdGhlIGNoZWNr c3VtIGlmIHdlIHdlcmUKLQkJCSAqIHRyeWluZyB0byBtaW5pbWl6ZSBFRVBST00gdHJhZmZpYwot CQkJICogTm90ZSB0aGF0IHdlIGFkZCB0byBhY3R1YWwgY3VycmVudCBjb3VudCBpbiBFRVBST00s Ci0JCQkgKiBpbiBjYXNlIGl0IHdhcyBhbHRlcmVkIHdoaWxlIHdlIHdlcmUgcnVubmluZy4KLQkJ CSAqLwotCQkJbmV3X3ZhbCArPSBpZnAtPmlmX2VycmNudHBbaWR4XTsKLQkJCWlmIChuZXdfdmFs ID4gMHhGRikKLQkJCQluZXdfdmFsID0gMHhGRjsKLQkJCWlmIChpZnAtPmlmX2VycmNudHBbaWR4 XSAhPSBuZXdfdmFsKSB7Ci0JCQkJaWZwLT5pZl9lcnJjbnRwW2lkeF0gPSBuZXdfdmFsOwotCQkJ CWhpX3dhdGVyID0gb2Zmc2V0b2Yoc3RydWN0IHFpYl9mbGFzaCwKLQkJCQkJCSAgICBpZl9lcnJj bnRwKSArIGlkeDsKLQkJCX0KLQkJCS8qCi0JCQkgKiB1cGRhdGUgb3VyIHNoYWRvdyAodXNlZCB0 byBtaW5pbWl6ZSBFRVBST00KLQkJCSAqIHRyYWZmaWMpLCB0byBtYXRjaCB3aGF0IHdlIGFyZSBh Ym91dCB0byB3cml0ZS4KLQkJCSAqLwotCQkJZGQtPmVlcF9zdF9lcnJzW2lkeF0gPSBuZXdfdmFs OwotCQkJZGQtPmVlcF9zdF9uZXdfZXJyc1tpZHhdID0gMDsKLQkJfQotCX0KLQkvKgotCSAqIE5v dyB1cGRhdGUgYWN0aXZlLXRpbWUuIFdlIHdvdWxkIGxpa2UgdG8gcm91bmQgdG8gdGhlIG5lYXJl c3QgaG91cgotCSAqIGJ1dCB1bmxlc3MgYXRvbWljX3QgYXJlIHN1cmUgdG8gYmUgcHJvcGVyIHNp Z25lZCBpbnRzIHdlIGNhbm5vdCwKLQkgKiBiZWNhdXNlIHdlIG5lZWQgdG8gYWNjb3VudCBmb3Ig d2hhdCB3ZSAidHJhbnNmZXIiIHRvIEVFUFJPTSBhbmQKLQkgKiBpZiB3ZSBsb2cgYW4gaG91ciBh dCAzMSBtaW51dGVzLCB0aGVuIHdlIHdvdWxkIG5lZWQgdG8gc2V0Ci0JICogYWN0aXZlX3RpbWUg dG8gLTI5IHRvIGFjY3VyYXRlbHkgY291bnQgdGhlIF9uZXh0XyBob3VyLgotCSAqLwotCWlmIChu ZXdfdGltZSA+PSAzNjAwKSB7Ci0JCW5ld19ocnMgPSBuZXdfdGltZSAvIDM2MDA7Ci0JCWF0b21p Y19zdWIoKG5ld19ocnMgKiAzNjAwKSwgJmRkLT5hY3RpdmVfdGltZSk7Ci0JCW5ld19ocnMgKz0g ZGQtPmVlcF9ocnM7Ci0JCWlmIChuZXdfaHJzID4gMHhGRkZGKQotCQkJbmV3X2hycyA9IDB4RkZG RjsKLQkJZGQtPmVlcF9ocnMgPSBuZXdfaHJzOwotCQlpZiAoKG5ld19ocnMgJiAweEZGKSAhPSBp ZnAtPmlmX3Bvd2VyaG91clswXSkgewotCQkJaWZwLT5pZl9wb3dlcmhvdXJbMF0gPSBuZXdfaHJz ICYgMHhGRjsKLQkJCWhpX3dhdGVyID0gb2Zmc2V0b2Yoc3RydWN0IHFpYl9mbGFzaCwgaWZfcG93 ZXJob3VyKTsKLQkJfQotCQlpZiAoKG5ld19ocnMgPj4gOCkgIT0gaWZwLT5pZl9wb3dlcmhvdXJb MV0pIHsKLQkJCWlmcC0+aWZfcG93ZXJob3VyWzFdID0gbmV3X2hycyA+PiA4OwotCQkJaGlfd2F0 ZXIgPSBvZmZzZXRvZihzdHJ1Y3QgcWliX2ZsYXNoLCBpZl9wb3dlcmhvdXIpICsgMTsKLQkJfQot CX0KLQkvKgotCSAqIFRoZXJlIGlzIGEgdGlueSBwb3NzaWJpbGl0eSB0aGF0IHdlIGNvdWxkIHNv bWVob3cgZmFpbCB0byB3cml0ZQotCSAqIHRoZSBFRVBST00gYWZ0ZXIgdXBkYXRpbmcgb3VyIHNo YWRvd3MsIGJ1dCBwcm9ibGVtcyBmcm9tIGhvbGRpbmcKLQkgKiB0aGUgc3BpbmxvY2sgdG9vIGxv bmcgYXJlIGEgbXVjaCBiaWdnZXIgaXNzdWUuCi0JICovCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmZGQtPmVlcF9zdF9sb2NrLCBmbGFncyk7Ci0JaWYgKGhpX3dhdGVyKSB7Ci0JCS8qIHdlIG1h ZGUgc29tZSBjaGFuZ2UgdG8gdGhlIGRhdGEsIHVvcGRhdGUgY2tzdW0gYW5kIHdyaXRlICovCi0J CWNzdW0gPSBmbGFzaF9jc3VtKGlmcCwgMSk7Ci0JCXJldCA9IGVlcHJvbV93cml0ZV93aXRoX2Vu YWJsZShkZCwgMCwgYnVmLCBoaV93YXRlciArIDEpOwotCX0KLQltdXRleF91bmxvY2soJmRkLT5l ZXBfbG9jayk7Ci0JaWYgKHJldCkKLQkJcWliX2Rldl9lcnIoZGQsICJGYWlsZWQgdXBkYXRpbmcg RUVQUk9NXG4iKTsKLQotZnJlZV9iYWlsOgotCXZmcmVlKGJ1Zik7Ci1iYWlsOgotCXJldHVybiBy ZXQ7Ci19Ci0KLS8qKgotICogcWliX2luY19lZXByb21fZXJyIC0gaW5jcmVtZW50IG9uZSBvZiB0 aGUgZm91ciBlcnJvciBjb3VudGVycwotICogdGhhdCBhcmUgbG9nZ2VkIHRvIEVFUFJPTS4KLSAq IEBkZDogdGhlIHFsb2dpY19pYiBkZXZpY2UKLSAqIEBlaWR4OiAwLi4zLCB0aGUgY291bnRlciB0 byBpbmNyZW1lbnQKLSAqIEBpbmNyOiBob3cgbXVjaCB0byBhZGQKLSAqCi0gKiBFYWNoIGNvdW50 ZXIgaXMgOC1iaXRzLCBhbmQgc2F0dXJhdGVzIGF0IDI1NSAoMHhGRikuIFRoZXkKLSAqIGFyZSBj b3BpZWQgdG8gdGhlIEVFUFJPTSAoYWthIGZsYXNoKSB3aGVuZXZlciBxaWJfdXBkYXRlX2VlcHJv bV9sb2coKQotICogaXMgY2FsbGVkLCBidXQgaXQgY2FuIG9ubHkgYmUgY2FsbGVkIGluIGEgY29u dGV4dCB0aGF0IGFsbG93cyBzbGVlcC4KLSAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBl dmVuIGF0IGludGVycnVwdCBsZXZlbC4KLSAqLwotdm9pZCBxaWJfaW5jX2VlcHJvbV9lcnIoc3Ry dWN0IHFpYl9kZXZkYXRhICpkZCwgdTMyIGVpZHgsIHUzMiBpbmNyKQotewotCXVpbnQgbmV3X3Zh bDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRkLT5lZXBf c3RfbG9jaywgZmxhZ3MpOwotCW5ld192YWwgPSBkZC0+ZWVwX3N0X25ld19lcnJzW2VpZHhdICsg aW5jcjsKLQlpZiAobmV3X3ZhbCA+IDI1NSkKLQkJbmV3X3ZhbCA9IDI1NTsKLQlkZC0+ZWVwX3N0 X25ld19lcnJzW2VpZHhdID0gbmV3X3ZhbDsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZC0+ ZWVwX3N0X2xvY2ssIGZsYWdzKTsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9o dy9xaWIvcWliX2liYTYxMjAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX2liYTYx MjAuYwppbmRleCA0ZjE4ZTJkLi4yYTBmN2RlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJh bmQvaHcvcWliL3FpYl9pYmE2MTIwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9x aWJfaWJhNjEyMC5jCkBAIC0yNjc0LDggKzI2NzQsNiBAQCBzdGF0aWMgdm9pZCBxaWJfZ2V0XzYx MjBfZmFzdHN0YXRzKHVuc2lnbmVkIGxvbmcgb3BhcXVlKQogCXNwaW5fbG9ja19pcnFzYXZlKCZk ZC0+ZWVwX3N0X2xvY2ssIGZsYWdzKTsKIAl0cmFmZmljX3dkcyAtPSBkZC0+dHJhZmZpY193ZHM7 CiAJZGQtPnRyYWZmaWNfd2RzICs9IHRyYWZmaWNfd2RzOwotCWlmICh0cmFmZmljX3dkcyAgPj0g UUlCX1RSQUZGSUNfQUNUSVZFX1RIUkVTSE9MRCkKLQkJYXRvbWljX2FkZCg1LCAmZGQtPmFjdGl2 ZV90aW1lKTsgLyogUy9CICNkZWZpbmUgKi8KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZC0+ ZWVwX3N0X2xvY2ssIGZsYWdzKTsKIAogCXFpYl9jaGtfNjEyMF9lcnJvcm1hc2soZGQpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfaWJhNzIyMC5jIGIvZHJpdmVy cy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfaWJhNzIyMC5jCmluZGV4IDdlYzQwNDguLjRkYzA0ZTMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX2liYTcyMjAuYworKysg Yi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl9pYmE3MjIwLmMKQEAgLTMyOTIsOCArMzI5 Miw2IEBAIHN0YXRpYyB2b2lkIHFpYl9nZXRfNzIyMF9mYXN0c3RhdHModW5zaWduZWQgbG9uZyBv cGFxdWUpCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRkLT5lZXBfc3RfbG9jaywgZmxhZ3MpOwogCXRy YWZmaWNfd2RzIC09IGRkLT50cmFmZmljX3dkczsKIAlkZC0+dHJhZmZpY193ZHMgKz0gdHJhZmZp Y193ZHM7Ci0JaWYgKHRyYWZmaWNfd2RzICA+PSBRSUJfVFJBRkZJQ19BQ1RJVkVfVEhSRVNIT0xE KQotCQlhdG9taWNfYWRkKDUsICZkZC0+YWN0aXZlX3RpbWUpOyAvKiBTL0IgI2RlZmluZSAqLwog CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRkLT5lZXBfc3RfbG9jaywgZmxhZ3MpOwogZG9uZToK IAltb2RfdGltZXIoJmRkLT5zdGF0c190aW1lciwgamlmZmllcyArIEhaICogQUNUSVZJVFlfVElN RVIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfaWJhNzMyMi5j IGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfaWJhNzMyMi5jCmluZGV4IGQ4NTE3ZmMu LjQ0MTgwYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX2liYTcz MjIuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl9pYmE3MzIyLmMKQEAgLTQ3 OTMsOCArNDc5Myw2IEBAIHN0YXRpYyB2b2lkIHFpYl9nZXRfNzMyMl9mYXN0c3RhdHModW5zaWdu ZWQgbG9uZyBvcGFxdWUpCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZwcGQtPmRkLT5lZXBfc3RfbG9j aywgZmxhZ3MpOwogCQl0cmFmZmljX3dkcyAtPSBwcGQtPmRkLT50cmFmZmljX3dkczsKIAkJcHBk LT5kZC0+dHJhZmZpY193ZHMgKz0gdHJhZmZpY193ZHM7Ci0JCWlmICh0cmFmZmljX3dkcyA+PSBR SUJfVFJBRkZJQ19BQ1RJVkVfVEhSRVNIT0xEKQotCQkJYXRvbWljX2FkZChBQ1RJVklUWV9USU1F UiwgJnBwZC0+ZGQtPmFjdGl2ZV90aW1lKTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHBk LT5kZC0+ZWVwX3N0X2xvY2ssIGZsYWdzKTsKIAkJaWYgKHBwZC0+Y3BzcGVjLT5xZHJfZGZlX29u ICYmIChwcGQtPmxpbmtfc3BlZWRfYWN0aXZlICYKIAkJCQkJCVFJQl9JQl9RRFIpICYmCmRpZmYg LS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl9pbml0LmMgYi9kcml2ZXJzL2lu ZmluaWJhbmQvaHcvcWliL3FpYl9pbml0LmMKaW5kZXggNThiMGY4YS4uOTk2NmVjMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfaW5pdC5jCisrKyBiL2RyaXZlcnMv aW5maW5pYmFuZC9ody9xaWIvcWliX2luaXQuYwpAQCAtNzY1LDcgKzc2NSw2IEBAIHN0YXRpYyB2 b2lkIHFpYl9zaHV0ZG93bl9kZXZpY2Uoc3RydWN0IHFpYl9kZXZkYXRhICpkZCkKIAkJZGQtPmZf cXVpZXRfc2VyZGVzKHBwZCk7CiAJfQogCi0JcWliX3VwZGF0ZV9lZXByb21fbG9nKGRkKTsKIH0K IAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl9zeXNmcy5j IGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfc3lzZnMuYwppbmRleCA3OGZiZDU2Li5j OTcyMjRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl9zeXNmcy5j CisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3N5c2ZzLmMKQEAgLTU1MCwyOCAr NTUwLDYgQEAgYmFpbDoKIAlyZXR1cm4gcmV0IDwgMCA/IHJldCA6IGNvdW50OwogfQogCi1zdGF0 aWMgc3NpemVfdCBzaG93X2xvZ2dlZF9lcnJzKHN0cnVjdCBkZXZpY2UgKmRldmljZSwKLQkJCQlz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQotewotCXN0cnVjdCBxaWJf aWJkZXYgKmRldiA9Ci0JCWNvbnRhaW5lcl9vZihkZXZpY2UsIHN0cnVjdCBxaWJfaWJkZXYsIGli ZGV2LmRldik7Ci0Jc3RydWN0IHFpYl9kZXZkYXRhICpkZCA9IGRkX2Zyb21fZGV2KGRldik7Ci0J aW50IGlkeCwgY291bnQ7Ci0KLQkvKiBmb3JjZSBjb25zaXN0ZW5jeSB3aXRoIGFjdHVhbCBFRVBS T00gKi8KLQlpZiAocWliX3VwZGF0ZV9lZXByb21fbG9nKGRkKSAhPSAwKQotCQlyZXR1cm4gLUVO WElPOwotCi0JY291bnQgPSAwOwotCWZvciAoaWR4ID0gMDsgaWR4IDwgUUlCX0VFUF9MT0dfQ05U OyArK2lkeCkgewotCQljb3VudCArPSBzY25wcmludGYoYnVmICsgY291bnQsIFBBR0VfU0laRSAt IGNvdW50LCAiJWQlYyIsCi0JCQkJICAgZGQtPmVlcF9zdF9lcnJzW2lkeF0sCi0JCQkJICAgaWR4 ID09IChRSUJfRUVQX0xPR19DTlQgLSAxKSA/ICdcbicgOiAnICcpOwotCX0KLQotCXJldHVybiBj b3VudDsKLX0KLQogLyoKICAqIER1bXAgdGVtcHNlbnNlIHJlZ3MuIGluIGRlY2ltYWwsIHRvIGVh c2Ugc2hlbGwtc2NyaXB0cy4KICAqLwpAQCAtNjE4LDcgKzU5Niw2IEBAIHN0YXRpYyBERVZJQ0Vf QVRUUihuY3R4dHMsIFNfSVJVR08sIHNob3dfbmN0eHRzLCBOVUxMKTsKIHN0YXRpYyBERVZJQ0Vf QVRUUihuZnJlZWN0eHRzLCBTX0lSVUdPLCBzaG93X25mcmVlY3R4dHMsIE5VTEwpOwogc3RhdGlj IERFVklDRV9BVFRSKHNlcmlhbCwgU19JUlVHTywgc2hvd19zZXJpYWwsIE5VTEwpOwogc3RhdGlj IERFVklDRV9BVFRSKGJvYXJkdmVyc2lvbiwgU19JUlVHTywgc2hvd19ib2FyZHZlcnNpb24sIE5V TEwpOwotc3RhdGljIERFVklDRV9BVFRSKGxvZ2dlZF9lcnJvcnMsIFNfSVJVR08sIHNob3dfbG9n Z2VkX2VycnMsIE5VTEwpOwogc3RhdGljIERFVklDRV9BVFRSKHRlbXBzZW5zZSwgU19JUlVHTywg c2hvd190ZW1wc2Vuc2UsIE5VTEwpOwogc3RhdGljIERFVklDRV9BVFRSKGxvY2FsYnVzX2luZm8s IFNfSVJVR08sIHNob3dfbG9jYWxidXNfaW5mbywgTlVMTCk7CiBzdGF0aWMgREVWSUNFX0FUVFIo Y2hpcF9yZXNldCwgU19JV1VTUiwgTlVMTCwgc3RvcmVfY2hpcF9yZXNldCk7CkBAIC02MzIsNyAr NjA5LDYgQEAgc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpxaWJfYXR0cmlidXRlc1td ID0gewogCSZkZXZfYXR0cl9uZnJlZWN0eHRzLAogCSZkZXZfYXR0cl9zZXJpYWwsCiAJJmRldl9h dHRyX2JvYXJkdmVyc2lvbiwKLQkmZGV2X2F0dHJfbG9nZ2VkX2Vycm9ycywKIAkmZGV2X2F0dHJf dGVtcHNlbnNlLAogCSZkZXZfYXR0cl9sb2NhbGJ1c19pbmZvLAogCSZkZXZfYXR0cl9jaGlwX3Jl c2V0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3VzZS9zeW5hcHRpY3MuYyBiL2RyaXZl cnMvaW5wdXQvbW91c2Uvc3luYXB0aWNzLmMKaW5kZXggYmI0MWY5NC4uOTFlOTRhZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9pbnB1dC9tb3VzZS9zeW5hcHRpY3MuYworKysgYi9kcml2ZXJzL2lucHV0 L21vdXNlL3N5bmFwdGljcy5jCkBAIC0yNzQsOCArMjc0LDE0IEBAIHN0YXRpYyBpbnQgc3luYXB0 aWNzX3Jlc29sdXRpb24oc3RydWN0IHBzbW91c2UgKnBzbW91c2UpCiAJCX0KIAl9CiAKLQlpZiAo U1lOX0VYVF9DQVBfUkVRVUVTVFMocHJpdi0+Y2FwYWJpbGl0aWVzKSA+PSA3ICYmCi0JICAgIFNZ Tl9DQVBfTUlOX0RJTUVOU0lPTlMocHJpdi0+ZXh0X2NhcF8wYykpIHsKKwlpZiAoU1lOX0NBUF9N SU5fRElNRU5TSU9OUyhwcml2LT5leHRfY2FwXzBjKSAmJgorCSAgICAoU1lOX0VYVF9DQVBfUkVR VUVTVFMocHJpdi0+Y2FwYWJpbGl0aWVzKSA+PSA3IHx8CisJICAgICAvKgorCSAgICAgICogRmly bXdhcmUgdjguMSBkb2VzIG5vdCByZXBvcnQgcHJvcGVyIG51bWJlciBvZiBleHRlbmRlZAorCSAg ICAgICogY2FwYWJpbGl0aWVzLCBidXQgaGFzIGJlZW4gcHJvdmVuIHRvIHJlcG9ydCBjb3JyZWN0 IG1pbgorCSAgICAgICogY29vcmRpbmF0ZXMuCisJICAgICAgKi8KKwkgICAgIFNZTl9JRF9GVUxM KHByaXYtPmlkZW50aXR5KSA9PSAweDgwMSkpIHsKIAkJaWYgKHN5bmFwdGljc19zZW5kX2NtZChw c21vdXNlLCBTWU5fUVVFX0VYVF9NSU5fQ09PUkRTLCByZXNwKSkgewogCQkJcHNtb3VzZV93YXJu KHBzbW91c2UsCiAJCQkJICAgICAiZGV2aWNlIGNsYWltcyB0byBoYXZlIG1pbiBjb29yZGluYXRl cyBxdWVyeSwgYnV0IEknbSBub3QgYWJsZSB0byByZWFkIGl0LlxuIik7CkBAIC00OTUsNiArNTAx LDE4IEBAIHN0YXRpYyB2b2lkIHN5bmFwdGljc19wYXJzZV9hZ20oY29uc3QgdW5zaWduZWQgY2hh ciBidWZbXSwKIAlwcml2LT5hZ21fcGVuZGluZyA9IHRydWU7CiB9CiAKK3N0YXRpYyB2b2lkIHN5 bmFwdGljc19wYXJzZV9leHRfYnV0dG9ucyhjb25zdCB1bnNpZ25lZCBjaGFyIGJ1ZltdLAorCQkJ CQlzdHJ1Y3Qgc3luYXB0aWNzX2RhdGEgKnByaXYsCisJCQkJCXN0cnVjdCBzeW5hcHRpY3NfaHdf c3RhdGUgKmh3KQoreworCXVuc2lnbmVkIGludCBleHRfYml0cyA9CisJCShTWU5fQ0FQX01VTFRJ X0JVVFRPTl9OTyhwcml2LT5leHRfY2FwKSArIDEpID4+IDE7CisJdW5zaWduZWQgaW50IGV4dF9t YXNrID0gKDFVIDw8IGV4dF9iaXRzKSAtIDE7CisKKwlody0+ZXh0X2J1dHRvbnMgPSBidWZbNF0g JiBleHRfbWFzazsKKwlody0+ZXh0X2J1dHRvbnMgfD0gKGJ1Zls1XSAmIGV4dF9tYXNrKSA8PCBl eHRfYml0czsKK30KKwogc3RhdGljIGJvb2wgaXNfZm9yY2VwYWQ7CiAKIHN0YXRpYyBpbnQgc3lu YXB0aWNzX3BhcnNlX2h3X3N0YXRlKGNvbnN0IHVuc2lnbmVkIGNoYXIgYnVmW10sCkBAIC01ODEs MjggKzU5OSw5IEBAIHN0YXRpYyBpbnQgc3luYXB0aWNzX3BhcnNlX2h3X3N0YXRlKGNvbnN0IHVu c2lnbmVkIGNoYXIgYnVmW10sCiAJCQlody0+ZG93biA9ICgoYnVmWzBdIF4gYnVmWzNdKSAmIDB4 MDIpID8gMSA6IDA7CiAJCX0KIAotCQlpZiAoU1lOX0NBUF9NVUxUSV9CVVRUT05fTk8ocHJpdi0+ ZXh0X2NhcCkgJiYKKwkJaWYgKFNZTl9DQVBfTVVMVElfQlVUVE9OX05PKHByaXYtPmV4dF9jYXAp ID4gMCAmJgogCQkgICAgKChidWZbMF0gXiBidWZbM10pICYgMHgwMikpIHsKLQkJCXN3aXRjaCAo U1lOX0NBUF9NVUxUSV9CVVRUT05fTk8ocHJpdi0+ZXh0X2NhcCkgJiB+MHgwMSkgewotCQkJZGVm YXVsdDoKLQkJCQkvKgotCQkJCSAqIGlmIG5FeHRCdG4gaXMgZ3JlYXRlciB0aGFuIDggaXQgc2hv dWxkIGJlCi0JCQkJICogY29uc2lkZXJlZCBpbnZhbGlkIGFuZCB0cmVhdGVkIGFzIDAKLQkJCQkg Ki8KLQkJCQlicmVhazsKLQkJCWNhc2UgODoKLQkJCQlody0+ZXh0X2J1dHRvbnMgfD0gKChidWZb NV0gJiAweDA4KSkgPyAweDgwIDogMDsKLQkJCQlody0+ZXh0X2J1dHRvbnMgfD0gKChidWZbNF0g JiAweDA4KSkgPyAweDQwIDogMDsKLQkJCWNhc2UgNjoKLQkJCQlody0+ZXh0X2J1dHRvbnMgfD0g KChidWZbNV0gJiAweDA0KSkgPyAweDIwIDogMDsKLQkJCQlody0+ZXh0X2J1dHRvbnMgfD0gKChi dWZbNF0gJiAweDA0KSkgPyAweDEwIDogMDsKLQkJCWNhc2UgNDoKLQkJCQlody0+ZXh0X2J1dHRv bnMgfD0gKChidWZbNV0gJiAweDAyKSkgPyAweDA4IDogMDsKLQkJCQlody0+ZXh0X2J1dHRvbnMg fD0gKChidWZbNF0gJiAweDAyKSkgPyAweDA0IDogMDsKLQkJCWNhc2UgMjoKLQkJCQlody0+ZXh0 X2J1dHRvbnMgfD0gKChidWZbNV0gJiAweDAxKSkgPyAweDAyIDogMDsKLQkJCQlody0+ZXh0X2J1 dHRvbnMgfD0gKChidWZbNF0gJiAweDAxKSkgPyAweDAxIDogMDsKLQkJCX0KKwkJCXN5bmFwdGlj c19wYXJzZV9leHRfYnV0dG9ucyhidWYsIHByaXYsIGh3KTsKIAkJfQogCX0gZWxzZSB7CiAJCWh3 LT54ID0gKCgoYnVmWzFdICYgMHgxZikgPDwgOCkgfCBidWZbMl0pOwpAQCAtNjY0LDEyICs2NjMs MzUgQEAgc3RhdGljIHZvaWQgc3luYXB0aWNzX3JlcG9ydF9zZW1pX210X2RhdGEoc3RydWN0IGlu cHV0X2RldiAqZGV2LAogCX0KIH0KIAorc3RhdGljIHZvaWQgc3luYXB0aWNzX3JlcG9ydF9leHRf YnV0dG9ucyhzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSwKKwkJCQkJIGNvbnN0IHN0cnVjdCBzeW5h cHRpY3NfaHdfc3RhdGUgKmh3KQoreworCXN0cnVjdCBpbnB1dF9kZXYgKmRldiA9IHBzbW91c2Ut PmRldjsKKwlzdHJ1Y3Qgc3luYXB0aWNzX2RhdGEgKnByaXYgPSBwc21vdXNlLT5wcml2YXRlOwor CWludCBleHRfYml0cyA9IChTWU5fQ0FQX01VTFRJX0JVVFRPTl9OTyhwcml2LT5leHRfY2FwKSAr IDEpID4+IDE7CisJaW50IGk7CisKKwlpZiAoIVNZTl9DQVBfTVVMVElfQlVUVE9OX05PKHByaXYt PmV4dF9jYXApKQorCQlyZXR1cm47CisKKwkvKiBCdWcgaW4gRlcgOC4xLCBidXR0b25zIGFyZSBy ZXBvcnRlZCBvbmx5IHdoZW4gRXh0Qml0IGlzIDEgKi8KKwlpZiAoU1lOX0lEX0ZVTEwocHJpdi0+ aWRlbnRpdHkpID09IDB4ODAxICYmCisJICAgICEoKHBzbW91c2UtPnBhY2tldFswXSBeIHBzbW91 c2UtPnBhY2tldFszXSkgJiAweDAyKSkKKwkJcmV0dXJuOworCisJZm9yIChpID0gMDsgaSA8IGV4 dF9iaXRzOyBpKyspIHsKKwkJaW5wdXRfcmVwb3J0X2tleShkZXYsIEJUTl8wICsgMiAqIGksCisJ CQlody0+ZXh0X2J1dHRvbnMgJiAoMSA8PCBpKSk7CisJCWlucHV0X3JlcG9ydF9rZXkoZGV2LCBC VE5fMSArIDIgKiBpLAorCQkJaHctPmV4dF9idXR0b25zICYgKDEgPDwgKGkgKyBleHRfYml0cykp KTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIHN5bmFwdGljc19yZXBvcnRfYnV0dG9ucyhzdHJ1Y3Qg cHNtb3VzZSAqcHNtb3VzZSwKIAkJCQkgICAgIGNvbnN0IHN0cnVjdCBzeW5hcHRpY3NfaHdfc3Rh dGUgKmh3KQogewogCXN0cnVjdCBpbnB1dF9kZXYgKmRldiA9IHBzbW91c2UtPmRldjsKIAlzdHJ1 Y3Qgc3luYXB0aWNzX2RhdGEgKnByaXYgPSBwc21vdXNlLT5wcml2YXRlOwotCWludCBpOwogCiAJ aW5wdXRfcmVwb3J0X2tleShkZXYsIEJUTl9MRUZULCBody0+bGVmdCk7CiAJaW5wdXRfcmVwb3J0 X2tleShkZXYsIEJUTl9SSUdIVCwgaHctPnJpZ2h0KTsKQEAgLTY4Miw4ICs3MDQsNyBAQCBzdGF0 aWMgdm9pZCBzeW5hcHRpY3NfcmVwb3J0X2J1dHRvbnMoc3RydWN0IHBzbW91c2UgKnBzbW91c2Us CiAJCWlucHV0X3JlcG9ydF9rZXkoZGV2LCBCVE5fQkFDSywgaHctPmRvd24pOwogCX0KIAotCWZv ciAoaSA9IDA7IGkgPCBTWU5fQ0FQX01VTFRJX0JVVFRPTl9OTyhwcml2LT5leHRfY2FwKTsgaSsr KQotCQlpbnB1dF9yZXBvcnRfa2V5KGRldiwgQlROXzAgKyBpLCBody0+ZXh0X2J1dHRvbnMgJiAo MSA8PCBpKSk7CisJc3luYXB0aWNzX3JlcG9ydF9leHRfYnV0dG9ucyhwc21vdXNlLCBodyk7CiB9 CiAKIHN0YXRpYyB2b2lkIHN5bmFwdGljc19yZXBvcnRfc2xvdChzdHJ1Y3QgaW5wdXRfZGV2ICpk ZXYsIGludCBzbG90LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1pby5jIGIvZHJpdmVycy9t ZC9kbS1pby5jCmluZGV4IDM5YTA4YmUuLmI4ZWQwMWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQv ZG0taW8uYworKysgYi9kcml2ZXJzL21kL2RtLWlvLmMKQEAgLTI5OSw2ICsyOTksMTYgQEAgc3Rh dGljIHZvaWQgZG9fcmVnaW9uKGludCBydywgdW5zaWduZWQgcmVnaW9uLCBzdHJ1Y3QgZG1faW9f cmVnaW9uICp3aGVyZSwKIAlzZWN0b3JfdCByZW1haW5pbmcgPSB3aGVyZS0+Y291bnQ7CiAJc3Ry dWN0IHJlcXVlc3RfcXVldWUgKnEgPSBiZGV2X2dldF9xdWV1ZSh3aGVyZS0+YmRldik7CiAJc2Vj dG9yX3QgZGlzY2FyZF9zZWN0b3JzOworCXVuc2lnbmVkIGludCB1bmluaXRpYWxpemVkX3Zhcihz cGVjaWFsX2NtZF9tYXhfc2VjdG9ycyk7CisKKwkvKiBSZWplY3QgdW5zdXBwb3J0ZWQgZGlzY2Fy ZCByZXF1ZXN0cyAqLworCWlmIChydyAmIFJFUV9ESVNDQVJEKSB7CisJCXNwZWNpYWxfY21kX21h eF9zZWN0b3JzID0gcS0+bGltaXRzLm1heF9kaXNjYXJkX3NlY3RvcnM7CisJCWlmIChzcGVjaWFs X2NtZF9tYXhfc2VjdG9ycyA9PSAwKSB7CisJCQlkZWNfY291bnQoaW8sIHJlZ2lvbiwgLUVPUE5P VFNVUFApOworCQkJcmV0dXJuOworCQl9CisJfQogCiAJLyoKIAkgKiB3aGVyZS0+Y291bnQgbWF5 IGJlIHplcm8gaWYgcncgaG9sZHMgYSBmbHVzaCBhbmQgd2UgbmVlZCB0bwpAQCAtMzIyLDcgKzMz Miw3IEBAIHN0YXRpYyB2b2lkIGRvX3JlZ2lvbihpbnQgcncsIHVuc2lnbmVkIHJlZ2lvbiwgc3Ry dWN0IGRtX2lvX3JlZ2lvbiAqd2hlcmUsCiAJCXN0b3JlX2lvX2FuZF9yZWdpb25faW5fYmlvKGJp bywgaW8sIHJlZ2lvbik7CiAKIAkJaWYgKHJ3ICYgUkVRX0RJU0NBUkQpIHsKLQkJCWRpc2NhcmRf c2VjdG9ycyA9IG1pbl90KHNlY3Rvcl90LCBxLT5saW1pdHMubWF4X2Rpc2NhcmRfc2VjdG9ycywg cmVtYWluaW5nKTsKKwkJCWRpc2NhcmRfc2VjdG9ycyA9IG1pbl90KHNlY3Rvcl90LCBzcGVjaWFs X2NtZF9tYXhfc2VjdG9ycywgcmVtYWluaW5nKTsKIAkJCWJpby0+Ymlfc2l6ZSA9IGRpc2NhcmRf c2VjdG9ycyA8PCBTRUNUT1JfU0hJRlQ7CiAJCQlyZW1haW5pbmcgLT0gZGlzY2FyZF9zZWN0b3Jz OwogCQl9IGVsc2Ugd2hpbGUgKHJlbWFpbmluZykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9k bS1yYWlkMS5jIGIvZHJpdmVycy9tZC9kbS1yYWlkMS5jCmluZGV4IGI3YjY0OWQuLmI0MzYxZWIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tcmFpZDEuYworKysgYi9kcml2ZXJzL21kL2RtLXJh aWQxLmMKQEAgLTYwMyw2ICs2MDMsMTUgQEAgc3RhdGljIHZvaWQgd3JpdGVfY2FsbGJhY2sodW5z aWduZWQgbG9uZyBlcnJvciwgdm9pZCAqY29udGV4dCkKIAkJcmV0dXJuOwogCX0KIAorCS8qCisJ ICogSWYgdGhlIGJpbyBpcyBkaXNjYXJkLCByZXR1cm4gYW4gZXJyb3IsIGJ1dCBkbyBub3QKKwkg KiBkZWdyYWRlIHRoZSBhcnJheS4KKwkgKi8KKwlpZiAoYmlvLT5iaV9ydyAmIFJFUV9ESVNDQVJE KSB7CisJCWJpb19lbmRpbyhiaW8sIC1FT1BOT1RTVVBQKTsKKwkJcmV0dXJuOworCX0KKwogCWZv ciAoaSA9IDA7IGkgPCBtcy0+bnJfbWlycm9yczsgaSsrKQogCQlpZiAodGVzdF9iaXQoaSwgJmVy cm9yKSkKIAkJCWZhaWxfbWlycm9yKG1zLT5taXJyb3IgKyBpLCBETV9SQUlEMV9XUklURV9FUlJP Uik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXNuYXAuYyBiL2RyaXZlcnMvbWQvZG0tc25h cC5jCmluZGV4IGZlYzc5ZTcuLjZiOTRjM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tc25h cC5jCisrKyBiL2RyaXZlcnMvbWQvZG0tc25hcC5jCkBAIC0xNDQ0LDggKzE0NDQsNiBAQCBvdXQ6 CiAJCWZ1bGxfYmlvLT5iaV9lbmRfaW8gPSBwZS0+ZnVsbF9iaW9fZW5kX2lvOwogCQlmdWxsX2Jp by0+YmlfcHJpdmF0ZSA9IHBlLT5mdWxsX2Jpb19wcml2YXRlOwogCX0KLQlmcmVlX3BlbmRpbmdf ZXhjZXB0aW9uKHBlKTsKLQogCWluY3JlbWVudF9wZW5kaW5nX2V4Y2VwdGlvbnNfZG9uZV9jb3Vu dCgpOwogCiAJdXBfd3JpdGUoJnMtPmxvY2spOwpAQCAtMTQ2Miw2ICsxNDYwLDggQEAgb3V0Ogog CX0KIAogCXJldHJ5X29yaWdpbl9iaW9zKHMsIG9yaWdpbl9iaW9zKTsKKworCWZyZWVfcGVuZGlu Z19leGNlcHRpb24ocGUpOwogfQogCiBzdGF0aWMgdm9pZCBjb21taXRfY2FsbGJhY2sodm9pZCAq Y29udGV4dCwgaW50IHN1Y2Nlc3MpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLmMgYi9kcml2 ZXJzL21kL2RtLmMKaW5kZXggN2VhZDA2NS4uYzAwYmNkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9t ZC9kbS5jCisrKyBiL2RyaXZlcnMvbWQvZG0uYwpAQCAtMjIzMiw3ICsyMjMyLDcgQEAgaW50IGRt X3NldHVwX21kX3F1ZXVlKHN0cnVjdCBtYXBwZWRfZGV2aWNlICptZCkKIAlyZXR1cm4gMDsKIH0K IAotc3RhdGljIHN0cnVjdCBtYXBwZWRfZGV2aWNlICpkbV9maW5kX21kKGRldl90IGRldikKK3N0 cnVjdCBtYXBwZWRfZGV2aWNlICpkbV9nZXRfbWQoZGV2X3QgZGV2KQogewogCXN0cnVjdCBtYXBw ZWRfZGV2aWNlICptZDsKIAl1bnNpZ25lZCBtaW5vciA9IE1JTk9SKGRldik7CkBAIC0yMjQzLDEy ICsyMjQzLDE1IEBAIHN0YXRpYyBzdHJ1Y3QgbWFwcGVkX2RldmljZSAqZG1fZmluZF9tZChkZXZf dCBkZXYpCiAJc3Bpbl9sb2NrKCZfbWlub3JfbG9jayk7CiAKIAltZCA9IGlkcl9maW5kKCZfbWlu b3JfaWRyLCBtaW5vcik7Ci0JaWYgKG1kICYmIChtZCA9PSBNSU5PUl9BTExPQ0VEIHx8Ci0JCSAg IChNSU5PUihkaXNrX2RldnQoZG1fZGlzayhtZCkpKSAhPSBtaW5vcikgfHwKLQkJICAgZG1fZGVs ZXRpbmdfbWQobWQpIHx8Ci0JCSAgIHRlc3RfYml0KERNRl9GUkVFSU5HLCAmbWQtPmZsYWdzKSkp IHsKLQkJbWQgPSBOVUxMOwotCQlnb3RvIG91dDsKKwlpZiAobWQpIHsKKwkJaWYgKChtZCA9PSBN SU5PUl9BTExPQ0VEIHx8CisJCSAgICAgKE1JTk9SKGRpc2tfZGV2dChkbV9kaXNrKG1kKSkpICE9 IG1pbm9yKSB8fAorCQkgICAgIGRtX2RlbGV0aW5nX21kKG1kKSB8fAorCQkgICAgIHRlc3RfYml0 KERNRl9GUkVFSU5HLCAmbWQtPmZsYWdzKSkpIHsKKwkJCW1kID0gTlVMTDsKKwkJCWdvdG8gb3V0 OworCQl9CisJCWRtX2dldChtZCk7CiAJfQogCiBvdXQ6CkBAIC0yMjU2LDE2ICsyMjU5LDYgQEAg b3V0OgogCiAJcmV0dXJuIG1kOwogfQotCi1zdHJ1Y3QgbWFwcGVkX2RldmljZSAqZG1fZ2V0X21k KGRldl90IGRldikKLXsKLQlzdHJ1Y3QgbWFwcGVkX2RldmljZSAqbWQgPSBkbV9maW5kX21kKGRl dik7Ci0KLQlpZiAobWQpCi0JCWRtX2dldChtZCk7Ci0KLQlyZXR1cm4gbWQ7Ci19CiBFWFBPUlRf U1lNQk9MX0dQTChkbV9nZXRfbWQpOwogCiB2b2lkICpkbV9nZXRfbWRwdHIoc3RydWN0IG1hcHBl ZF9kZXZpY2UgKm1kKQpAQCAtMjMwMiwxMCArMjI5NSwxNiBAQCBzdGF0aWMgdm9pZCBfX2RtX2Rl c3Ryb3koc3RydWN0IG1hcHBlZF9kZXZpY2UgKm1kLCBib29sIHdhaXQpCiAJc2V0X2JpdChETUZf RlJFRUlORywgJm1kLT5mbGFncyk7CiAJc3Bpbl91bmxvY2soJl9taW5vcl9sb2NrKTsKIAorCS8q CisJICogVGFrZSBzdXNwZW5kX2xvY2sgc28gdGhhdCBwcmVzdXNwZW5kIGFuZCBwb3N0c3VzcGVu ZCBtZXRob2RzCisJICogZG8gbm90IHJhY2Ugd2l0aCBpbnRlcm5hbCBzdXNwZW5kLgorCSAqLwor CW11dGV4X2xvY2soJm1kLT5zdXNwZW5kX2xvY2spOwogCWlmICghZG1fc3VzcGVuZGVkX21kKG1k KSkgewogCQlkbV90YWJsZV9wcmVzdXNwZW5kX3RhcmdldHMobWFwKTsKIAkJZG1fdGFibGVfcG9z dHN1c3BlbmRfdGFyZ2V0cyhtYXApOwogCX0KKwltdXRleF91bmxvY2soJm1kLT5zdXNwZW5kX2xv Y2spOwogCiAJLyoKIAkgKiBSYXJlLCBidXQgdGhlcmUgbWF5IGJlIEkvTyByZXF1ZXN0cyBzdGls bCBnb2luZyB0byBjb21wbGV0ZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11 c2IvbG1lZG0wNC5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9sbWVkbTA0LmMKaW5kZXgg YjkyMjgyNC4uYzdhZDg1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9s bWVkbTA0LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9sbWVkbTA0LmMKQEAgLTMy Niw3ICszMjYsOSBAQCBzdGF0aWMgdm9pZCBsbWUyNTEwX2ludF9yZXNwb25zZShzdHJ1Y3QgdXJi ICpsbWVfdXJiKQogCiBzdGF0aWMgaW50IGxtZTI1MTBfaW50X3JlYWQoc3RydWN0IGR2Yl91c2Jf YWRhcHRlciAqYWRhcCkKIHsKKwlzdHJ1Y3QgZHZiX3VzYl9kZXZpY2UgKmQgPSBhZGFwLT5kZXY7 CiAJc3RydWN0IGxtZTI1MTBfc3RhdGUgKmxtZV9pbnQgPSBhZGFwLT5kZXYtPnByaXY7CisJc3Ry dWN0IHVzYl9ob3N0X2VuZHBvaW50ICplcDsKIAogCWxtZV9pbnQtPmxtZV91cmIgPSB1c2JfYWxs b2NfdXJiKDAsIEdGUF9BVE9NSUMpOwogCkBAIC0zNDgsNiArMzUwLDEyIEBAIHN0YXRpYyBpbnQg bG1lMjUxMF9pbnRfcmVhZChzdHJ1Y3QgZHZiX3VzYl9hZGFwdGVyICphZGFwKQogCQkJCWFkYXAs CiAJCQkJOCk7CiAKKwkvKiBRdWlyayBvZiBwaXBlIHJlcG9ydGluZyBQSVBFX0JVTEsgYnV0IGJl aGF2ZXMgYXMgaW50ZXJydXB0ICovCisJZXAgPSB1c2JfcGlwZV9lbmRwb2ludChkLT51ZGV2LCBs bWVfaW50LT5sbWVfdXJiLT5waXBlKTsKKworCWlmICh1c2JfZW5kcG9pbnRfdHlwZSgmZXAtPmRl c2MpID09IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEspCisJCWxtZV9pbnQtPmxtZV91cmItPnBpcGUg PSB1c2JfcmN2YnVsa3BpcGUoZC0+dWRldiwgMHhhKSwKKwogCWxtZV9pbnQtPmxtZV91cmItPnRy YW5zZmVyX2ZsYWdzIHw9IFVSQl9OT19UUkFOU0ZFUl9ETUFfTUFQOwogCiAJdXNiX3N1Ym1pdF91 cmIobG1lX2ludC0+bG1lX3VyYiwgR0ZQX0FUT01JQyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9jYW4vZGV2LmMgYi9kcml2ZXJzL25ldC9jYW4vZGV2LmMKaW5kZXggYTI1NDQyZS4uZGI5MTAw ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY2FuL2Rldi5jCisrKyBiL2RyaXZlcnMvbmV0L2Nh bi9kZXYuYwpAQCAtNDY4LDYgKzQ2OCwxMSBAQCBzdHJ1Y3Qgc2tfYnVmZiAqYWxsb2NfY2FuX3Nr YihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgY2FuX2ZyYW1lICoqY2YpCiAJc2tiLT5w cm90b2NvbCA9IGh0b25zKEVUSF9QX0NBTik7CiAJc2tiLT5wa3RfdHlwZSA9IFBBQ0tFVF9CUk9B RENBU1Q7CiAJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NVTV9VTk5FQ0VTU0FSWTsKKworCXNrYl9y ZXNldF9tYWNfaGVhZGVyKHNrYik7CisJc2tiX3Jlc2V0X25ldHdvcmtfaGVhZGVyKHNrYik7CisJ c2tiX3Jlc2V0X3RyYW5zcG9ydF9oZWFkZXIoc2tiKTsKKwogCSpjZiA9IChzdHJ1Y3QgY2FuX2Zy YW1lICopc2tiX3B1dChza2IsIHNpemVvZihzdHJ1Y3QgY2FuX2ZyYW1lKSk7CiAJbWVtc2V0KCpj ZiwgMCwgc2l6ZW9mKHN0cnVjdCBjYW5fZnJhbWUpKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYW1kL3BjbmV0MzIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wY25l dDMyLmMKaW5kZXggZjkyYmM2ZS4uYzY2NGFiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYW1kL3BjbmV0MzIuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGNuZXQz Mi5jCkBAIC0xNTI0LDcgKzE1MjQsNyBAQCBwY25ldDMyX3Byb2JlMSh1bnNpZ25lZCBsb25nIGlv YWRkciwgaW50IHNoYXJlZCwgc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7CiAJc3RydWN0IHBjbmV0 MzJfcHJpdmF0ZSAqbHA7CiAJaW50IGksIG1lZGlhOwotCWludCBmZHgsIG1paSwgZnNldCwgZHhz dWZsbzsKKwlpbnQgZmR4LCBtaWksIGZzZXQsIGR4c3VmbG8sIHNyYW07CiAJaW50IGNoaXBfdmVy c2lvbjsKIAljaGFyICpjaGlwbmFtZTsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2OwpAQCAtMTU2 MSw3ICsxNTYxLDcgQEAgcGNuZXQzMl9wcm9iZTEodW5zaWduZWQgbG9uZyBpb2FkZHIsIGludCBz aGFyZWQsIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCX0KIAogCS8qIGluaXRpYWxpemUgdmFyaWFi bGVzICovCi0JZmR4ID0gbWlpID0gZnNldCA9IGR4c3VmbG8gPSAwOworCWZkeCA9IG1paSA9IGZz ZXQgPSBkeHN1ZmxvID0gc3JhbSA9IDA7CiAJY2hpcF92ZXJzaW9uID0gKGNoaXBfdmVyc2lvbiA+ PiAxMikgJiAweGZmZmY7CiAKIAlzd2l0Y2ggKGNoaXBfdmVyc2lvbikgewpAQCAtMTU5NCw2ICsx NTk0LDcgQEAgcGNuZXQzMl9wcm9iZTEodW5zaWduZWQgbG9uZyBpb2FkZHIsIGludCBzaGFyZWQs IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCQljaGlwbmFtZSA9ICJQQ25ldC9GQVNUIElJSSA3OUM5 NzMiOwkvKiBQQ0kgKi8KIAkJZmR4ID0gMTsKIAkJbWlpID0gMTsKKwkJc3JhbSA9IDE7CiAJCWJy ZWFrOwogCWNhc2UgMHgyNjI2OgogCQljaGlwbmFtZSA9ICJQQ25ldC9Ib21lIDc5Qzk3OCI7CS8q IFBDSSAqLwpAQCAtMTYxNyw2ICsxNjE4LDcgQEAgcGNuZXQzMl9wcm9iZTEodW5zaWduZWQgbG9u ZyBpb2FkZHIsIGludCBzaGFyZWQsIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCQljaGlwbmFtZSA9 ICJQQ25ldC9GQVNUIElJSSA3OUM5NzUiOwkvKiBQQ0kgKi8KIAkJZmR4ID0gMTsKIAkJbWlpID0g MTsKKwkJc3JhbSA9IDE7CiAJCWJyZWFrOwogCWNhc2UgMHgyNjI4OgogCQljaGlwbmFtZSA9ICJQ Q25ldC9QUk8gNzlDOTc2IjsKQEAgLTE2NDUsNiArMTY0NywzMSBAQCBwY25ldDMyX3Byb2JlMSh1 bnNpZ25lZCBsb25nIGlvYWRkciwgaW50IHNoYXJlZCwgc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJ CWR4c3VmbG8gPSAxOwogCX0KIAorCS8qCisJICogVGhlIEFtNzlDOTczL0FtNzlDOTc1IGNvbnRy b2xsZXJzIGNvbWUgd2l0aCAxMksgb2YgU1JBTQorCSAqIHdoaWNoIHdlIGNhbiB1c2UgZm9yIHRo ZSBUeC9SeCBidWZmZXJzIGJ1dCBtb3N0IGltcG9ydGFudGx5LAorCSAqIHRoZSB1c2Ugb2YgU1JB TSBhbGxvdyB1cyB0byB1c2UgdGhlIEJDUjE4Ok5PVUZMTyBiaXQgdG8gYXZvaWQKKwkgKiBUeCBm aWZvIHVuZGVyZmxvd3MuCisJICovCisJaWYgKHNyYW0pIHsKKwkJLyoKKwkJICogVGhlIFNSQU0g aXMgYmVpbmcgY29uZmlndXJlZCBpbiB0d28gc3RlcHMuIEZpcnN0IHdlCisJCSAqIHNldCB0aGUg U1JBTSBzaXplIGluIHRoZSBCQ1IyNTpTUkFNX1NJWkUgYml0cy4gQWNjb3JkaW5nCisJCSAqIHRv IHRoZSBkYXRhc2hlZXQsIGVhY2ggYml0IGNvcnJlc3BvbmRzIHRvIGEgNTEyLWJ5dGUKKwkJICog cGFnZSBzbyB3ZSBjYW4gaGF2ZSBhdCBtb3N0IDI0IHBhZ2VzLiBUaGUgU1JBTV9TSVpFCisJCSAq IGhvbGRzIHRoZSB2YWx1ZSBvZiB0aGUgdXBwZXIgOCBiaXRzIG9mIHRoZSAxNi1iaXQgU1JBTSBz aXplLgorCQkgKiBUaGUgbG93IDgtYml0cyBzdGFydCBhdCAweDAwIGFuZCBlbmQgYXQgMHhmZi4g U28gdGhlCisJCSAqIGFkZHJlc3MgcmFuZ2UgaXMgZnJvbSAweDAwMDAgdXAgdG8gMHgxN2ZmLiBU aGVyZWZvcmUsCisJCSAqIHRoZSBTUkFNX1NJWkUgaXMgc2V0IHRvIDB4MTcuIFRoZSBuZXh0IHN0 ZXAgaXMgdG8gc2V0CisJCSAqIHRoZSBCQ1IyNjpTUkFNX0JORCBtaWR3YXkgdGhyb3VnaCBzbyB0 aGUgVHggYW5kIFJ4CisJCSAqIGJ1ZmZlcnMgY2FuIHNoYXJlIHRoZSBTUkFNIGVxdWFsbHkuCisJ CSAqLworCQlhLT53cml0ZV9iY3IoaW9hZGRyLCAyNSwgMHgxNyk7CisJCWEtPndyaXRlX2Jjcihp b2FkZHIsIDI2LCAweGMpOworCQkvKiBBbmQgZmluYWxseSBlbmFibGUgdGhlIE5PVUZMTyBiaXQg Ki8KKwkJYS0+d3JpdGVfYmNyKGlvYWRkciwgMTgsIGEtPnJlYWRfYmNyKGlvYWRkciwgMTgpIHwg KDEgPDwgMTEpKTsKKwl9CisKIAlkZXYgPSBhbGxvY19ldGhlcmRldihzaXplb2YoKmxwKSk7CiAJ aWYgKCFkZXYpIHsKIAkJaWYgKHBjbmV0MzJfZGVidWcgJiBORVRJRl9NU0dfUFJPQkUpCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMKaW5kZXgg MmY2MzYxZS4uMTA0MjkzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYm54MngvYm54MnhfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2JueDJ4L2JueDJ4X21haW4uYwpAQCAtMTAzMjUsNiArMTAzMjUsMTAgQEAgc3RhdGljIGludCBf X2RldmluaXQgYm54MnhfaW5pdF9kZXYoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJLyogY2xlYW4g aW5kaXJlY3QgYWRkcmVzc2VzICovCiAJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChicC0+cGRldiwg UENJQ0ZHX0dSQ19BRERSRVNTLAogCQkJICAgICAgIFBDSUNGR19WRU5ET1JfSURfT0ZGU0VUKTsK KworCS8qIFNldCBQQ0llIHJlc2V0IHR5cGUgdG8gZnVuZGFtZW50YWwgZm9yIEVFSCByZWNvdmVy eSAqLworCXBkZXYtPm5lZWRzX2ZyZXNldCA9IDE7CisKIAkvKgogCSAqIENsZWFuIHRoZSBmb2xs b3dpbmcgaW5kaXJlY3QgYWRkcmVzc2VzIGZvciBhbGwgZnVuY3Rpb25zIHNpbmNlIGl0CiAJICog aXMgbm90IHVzZWQgYnkgdGhlIGRyaXZlci4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL3RnMy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMK aW5kZXggMmVjMTllNy4uZDBlYmY5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vdGczLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMK QEAgLTU0MTIsNyArNTQxMiw3IEBAIHN0YXRpYyB2b2lkIHRnM190eChzdHJ1Y3QgdGczX25hcGkg KnRuYXBpKQogCQkJc3dfaWR4ID0gTkVYVF9UWChzd19pZHgpOwogCQl9CiAKLQkJZGV2X2tmcmVl X3NrYihza2IpOworCQlkZXZfa2ZyZWVfc2tiX2FueShza2IpOwogCiAJCWlmICh1bmxpa2VseSh0 eF9idWcpKSB7CiAJCQl0ZzNfdHhfcmVjb3Zlcih0cCk7CkBAIC01NzAyLDcgKzU3MDIsNyBAQCBz dGF0aWMgaW50IHRnM19yeChzdHJ1Y3QgdGczX25hcGkgKnRuYXBpLCBpbnQgYnVkZ2V0KQogCiAJ CWlmIChsZW4gPiAodHAtPmRldi0+bXR1ICsgRVRIX0hMRU4pICYmCiAJCSAgICBza2ItPnByb3Rv Y29sICE9IGh0b25zKEVUSF9QXzgwMjFRKSkgewotCQkJZGV2X2tmcmVlX3NrYihza2IpOworCQkJ ZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIAkJCWdvdG8gZHJvcF9pdF9ub19yZWN5Y2xlOwogCQl9 CiAKQEAgLTY2MDksNyArNjYwOSw3IEBAIHN0YXRpYyBpbnQgdGlnb24zX2RtYV9od2J1Z193b3Jr YXJvdW5kKHN0cnVjdCB0ZzNfbmFwaSAqdG5hcGksCiAJCQkJCSAgUENJX0RNQV9UT0RFVklDRSk7 CiAJCS8qIE1ha2Ugc3VyZSB0aGUgbWFwcGluZyBzdWNjZWVkZWQgKi8KIAkJaWYgKHBjaV9kbWFf bWFwcGluZ19lcnJvcih0cC0+cGRldiwgbmV3X2FkZHIpKSB7Ci0JCQlkZXZfa2ZyZWVfc2tiKG5l d19za2IpOworCQkJZGV2X2tmcmVlX3NrYl9hbnkobmV3X3NrYik7CiAJCQlyZXQgPSAtMTsKIAkJ fSBlbHNlIHsKIAkJCXUzMiBzYXZlX2VudHJ5ID0gKmVudHJ5OwpAQCAtNjYyNCwxMyArNjYyNCwx MyBAQCBzdGF0aWMgaW50IHRpZ29uM19kbWFfaHdidWdfd29ya2Fyb3VuZChzdHJ1Y3QgdGczX25h cGkgKnRuYXBpLAogCQkJCQkgICAgbmV3X3NrYi0+bGVuLCBiYXNlX2ZsYWdzLAogCQkJCQkgICAg bXNzLCB2bGFuKSkgewogCQkJCXRnM190eF9za2JfdW5tYXAodG5hcGksIHNhdmVfZW50cnksIC0x KTsKLQkJCQlkZXZfa2ZyZWVfc2tiKG5ld19za2IpOworCQkJCWRldl9rZnJlZV9za2JfYW55KG5l d19za2IpOwogCQkJCXJldCA9IC0xOwogCQkJfQogCQl9CiAJfQogCi0JZGV2X2tmcmVlX3NrYihz a2IpOworCWRldl9rZnJlZV9za2JfYW55KHNrYik7CiAJKnBza2IgPSBuZXdfc2tiOwogCXJldHVy biByZXQ7CiB9CkBAIC02NjczLDcgKzY2NzMsNyBAQCBzdGF0aWMgaW50IHRnM190c29fYnVnKHN0 cnVjdCB0ZzMgKnRwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCX0gd2hpbGUgKHNlZ3MpOwogCiB0 ZzNfdHNvX2J1Z19lbmQ6Ci0JZGV2X2tmcmVlX3NrYihza2IpOworCWRldl9rZnJlZV9za2JfYW55 KHNrYik7CiAKIAlyZXR1cm4gTkVUREVWX1RYX09LOwogfQpAQCAtNjg4OCw3ICs2ODg4LDcgQEAg ZG1hX2Vycm9yOgogCXRnM190eF9za2JfdW5tYXAodG5hcGksIHRuYXBpLT50eF9wcm9kLCAtLWkp OwogCXRuYXBpLT50eF9idWZmZXJzW3RuYXBpLT50eF9wcm9kXS5za2IgPSBOVUxMOwogZHJvcDoK LQlkZXZfa2ZyZWVfc2tiKHNrYik7CisJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIGRyb3Bfbm9m cmVlOgogCXRwLT50eF9kcm9wcGVkKys7CiAJcmV0dXJuIE5FVERFVl9UWF9PSzsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2VtdWxleC9iZW5ldC9iZV9tYWluLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9lbXVsZXgvYmVuZXQvYmVfbWFpbi5jCmluZGV4IDM2YzdjNGUuLjEwYzlh Y2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2VtdWxleC9iZW5ldC9iZV9tYWlu LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZW11bGV4L2JlbmV0L2JlX21haW4uYwpAQCAt MTQzNCw3ICsxNDM0LDcgQEAgc3RhdGljIHUxNiBiZV90eF9jb21wbF9wcm9jZXNzKHN0cnVjdCBi ZV9hZGFwdGVyICphZGFwdGVyLAogCQlxdWV1ZV90YWlsX2luYyh0eHEpOwogCX0gd2hpbGUgKGN1 cl9pbmRleCAhPSBsYXN0X2luZGV4KTsKIAotCWtmcmVlX3NrYihzZW50X3NrYik7CisJZGV2X2tm cmVlX3NrYl9hbnkoc2VudF9za2IpOwogCXJldHVybiBudW1fd3JiczsKIH0KIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMKaW5kZXggZmI5ZTdkMy4uYjE2N2UzOCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jCkBAIC0yMDkyLDEwICsyMDky LDEwIEBAIHN0YXRpYyBpbnQgZ2Zhcl9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCXNrYl9uZXcgPSBza2JfcmVhbGxvY19oZWFkcm9vbShz a2IsIEdNQUNfRkNCX0xFTik7CiAJCWlmICghc2tiX25ldykgewogCQkJZGV2LT5zdGF0cy50eF9l cnJvcnMrKzsKLQkJCWtmcmVlX3NrYihza2IpOworCQkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsK IAkJCXJldHVybiBORVRERVZfVFhfT0s7CiAJCX0KLQkJa2ZyZWVfc2tiKHNrYik7CisJCWRldl9r ZnJlZV9za2JfYW55KHNrYik7CiAJCXNrYiA9IHNrYl9uZXc7CiAJfQogCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiL2l4Z2JfbWFpbi5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvaW50ZWwvaXhnYi9peGdiX21haW4uYwppbmRleCBlMjExNDhmLi5lMTdjZmNhIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiL2l4Z2JfbWFpbi5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2IvaXhnYl9tYWluLmMKQEAgLTE1Mzks MTIgKzE1MzksMTIgQEAgaXhnYl94bWl0X2ZyYW1lKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVj dCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJaW50IHRzbzsKIAogCWlmICh0ZXN0X2JpdChfX0lYR0Jf RE9XTiwgJmFkYXB0ZXItPmZsYWdzKSkgewotCQlkZXZfa2ZyZWVfc2tiKHNrYik7CisJCWRldl9r ZnJlZV9za2JfYW55KHNrYik7CiAJCXJldHVybiBORVRERVZfVFhfT0s7CiAJfQogCiAJaWYgKHNr Yi0+bGVuIDw9IDApIHsKLQkJZGV2X2tmcmVlX3NrYihza2IpOworCQlkZXZfa2ZyZWVfc2tiX2Fu eShza2IpOwogCQlyZXR1cm4gTkVUREVWX1RYX09LOwogCX0KIApAQCAtMTU2MSw3ICsxNTYxLDcg QEAgaXhnYl94bWl0X2ZyYW1lKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNl ICpuZXRkZXYpCiAKIAl0c28gPSBpeGdiX3RzbyhhZGFwdGVyLCBza2IpOwogCWlmICh0c28gPCAw KSB7Ci0JCWRldl9rZnJlZV9za2Ioc2tiKTsKKwkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIAkJ cmV0dXJuIE5FVERFVl9UWF9PSzsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3Fsb2dpYy9uZXR4ZW4vbmV0eGVuX25pY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9xbG9naWMvbmV0eGVuL25ldHhlbl9uaWNfbWFpbi5jCmluZGV4IDRhMjM4YTQuLjg3MzdlMGQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9uZXR4ZW4vbmV0eGVuX25p Y19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL25ldHhlbi9uZXR4ZW5f bmljX21haW4uYwpAQCAtMjI3Nyw3ICsyMjc3LDEwIEBAIHN0YXRpYyBpbnQgbmV0eGVuX25pY19w b2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIAogCXdvcmtfZG9uZSA9 IG5ldHhlbl9wcm9jZXNzX3Jjdl9yaW5nKHNkc19yaW5nLCBidWRnZXQpOwogCi0JaWYgKCh3b3Jr X2RvbmUgPCBidWRnZXQpICYmIHR4X2NvbXBsZXRlKSB7CisJaWYgKCF0eF9jb21wbGV0ZSkKKwkJ d29ya19kb25lID0gYnVkZ2V0OworCisJaWYgKHdvcmtfZG9uZSA8IGJ1ZGdldCkgewogCQluYXBp X2NvbXBsZXRlKCZzZHNfcmluZy0+bmFwaSk7CiAJCWlmICh0ZXN0X2JpdChfX05YX0RFVl9VUCwg JmFkYXB0ZXItPnN0YXRlKSkKIAkJCW5ldHhlbl9uaWNfZW5hYmxlX2ludChzZHNfcmluZyk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrLzgxMzljcC5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvcmVhbHRlay84MTM5Y3AuYwppbmRleCA0YWE4MzBmLi5hYjVjMjc2IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrLzgxMzljcC5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvODEzOWNwLmMKQEAgLTg4Niw3ICs4ODYsNyBAQCBv dXRfdW5sb2NrOgogCiAJcmV0dXJuIE5FVERFVl9UWF9PSzsKIG91dF9kbWFfZXJyb3I6Ci0Ja2Zy ZWVfc2tiKHNrYik7CisJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIAljcC0+ZGV2LT5zdGF0cy50 eF9kcm9wcGVkKys7CiAJZ290byBvdXRfdW5sb2NrOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvcmVhbHRlay84MTM5dG9vLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFs dGVrLzgxMzl0b28uYwppbmRleCA0ZDZiMjU0Li43Mjg4MDVmIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9yZWFsdGVrLzgxMzl0b28uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9yZWFsdGVrLzgxMzl0b28uYwpAQCAtMTcwMyw5ICsxNzAzLDkgQEAgc3RhdGljIG5ldGRldl90 eF90IHJ0bDgxMzlfc3RhcnRfeG1pdCAoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJaWYgKGxlbiA8 IEVUSF9aTEVOKQogCQkJbWVtc2V0KHRwLT50eF9idWZbZW50cnldLCAwLCBFVEhfWkxFTik7CiAJ CXNrYl9jb3B5X2FuZF9jc3VtX2Rldihza2IsIHRwLT50eF9idWZbZW50cnldKTsKLQkJZGV2X2tm cmVlX3NrYihza2IpOworCQlkZXZfa2ZyZWVfc2tiX2FueShza2IpOwogCX0gZWxzZSB7Ci0JCWRl dl9rZnJlZV9za2Ioc2tiKTsKKwkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIAkJZGV2LT5zdGF0 cy50eF9kcm9wcGVkKys7CiAJCXJldHVybiBORVRERVZfVFhfT0s7CiAJfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvcmVhbHRlay9yODE2OS5jCmluZGV4IGEzYmQwYmEuLjBjMjY3ODcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9yZWFsdGVrL3I4MTY5LmMKQEAgLTUzNzIsNyArNTM3Miw3IEBAIHN0YXRpYyB2b2lkIHJ0 bDgxNjlfdHhfY2xlYXJfcmFuZ2Uoc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHAsIHUzMiBzdGFy dCwKIAkJCQkJICAgICB0cC0+VHhEZXNjQXJyYXkgKyBlbnRyeSk7CiAJCQlpZiAoc2tiKSB7CiAJ CQkJdHAtPmRldi0+c3RhdHMudHhfZHJvcHBlZCsrOwotCQkJCWRldl9rZnJlZV9za2Ioc2tiKTsK KwkJCQlkZXZfa2ZyZWVfc2tiX2FueShza2IpOwogCQkJCXR4X3NrYi0+c2tiID0gTlVMTDsKIAkJ CX0KIAkJfQpAQCAtNTY1MSw3ICs1NjUxLDcgQEAgc3RhdGljIG5ldGRldl90eF90IHJ0bDgxNjlf c3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogZXJyX2RtYV8xOgogCXJ0bDgxNjlfdW5t YXBfdHhfc2tiKGQsIHRwLT50eF9za2IgKyBlbnRyeSwgdHhkKTsKIGVycl9kbWFfMDoKLQlkZXZf a2ZyZWVfc2tiKHNrYik7CisJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIGVycl91cGRhdGVfc3Rh dHM6CiAJZGV2LT5zdGF0cy50eF9kcm9wcGVkKys7CiAJcmV0dXJuIE5FVERFVl9UWF9PSzsKQEAg LTU3MzQsNyArNTczNCw3IEBAIHN0YXRpYyB2b2lkIHJ0bDgxNjlfdHhfaW50ZXJydXB0KHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsCiAJCWlmIChzdGF0dXMgJiBMYXN0RnJhZykgewogCQkJZGV2LT5z dGF0cy50eF9wYWNrZXRzKys7CiAJCQlkZXYtPnN0YXRzLnR4X2J5dGVzICs9IHR4X3NrYi0+c2ti LT5sZW47Ci0JCQlkZXZfa2ZyZWVfc2tiKHR4X3NrYi0+c2tiKTsKKwkJCWRldl9rZnJlZV9za2Jf YW55KHR4X3NrYi0+c2tiKTsKIAkJCXR4X3NrYi0+c2tiID0gTlVMTDsKIAkJfQogCQlkaXJ0eV90 eCsrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdnRhcC5jIGIvZHJpdmVycy9uZXQvbWFj dnRhcC5jCmluZGV4IDBlNmU1N2UuLjczMDA0NDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21h Y3Z0YXAuYworKysgYi9kcml2ZXJzL25ldC9tYWN2dGFwLmMKQEAgLTY2NywxMSArNjY3LDE1IEBA IHN0YXRpYyB1bnNpZ25lZCBsb25nIGlvdl9wYWdlcyhjb25zdCBzdHJ1Y3QgaW92ZWMgKml2LCBp bnQgb2Zmc2V0LAogCXJldHVybiBwYWdlczsKIH0KIAorLyogTmVpZ2hib3VyIGNvZGUgaGFzIHNv bWUgYXNzdW1wdGlvbnMgb24gSEhfREFUQV9NT0QgYWxpZ25tZW50ICovCisjZGVmaW5lIE1BQ1ZU QVBfUkVTRVJWRSBISF9EQVRBX09GRihFVEhfSExFTikKKwogLyogR2V0IHBhY2tldCBmcm9tIHVz ZXIgc3BhY2UgYnVmZmVyICovCiBzdGF0aWMgc3NpemVfdCBtYWN2dGFwX2dldF91c2VyKHN0cnVj dCBtYWN2dGFwX3F1ZXVlICpxLCBzdHJ1Y3QgbXNnaGRyICptLAogCQkJCWNvbnN0IHN0cnVjdCBp b3ZlYyAqaXYsIHVuc2lnbmVkIGxvbmcgdG90YWxfbGVuLAogCQkJCXNpemVfdCBjb3VudCwgaW50 IG5vYmxvY2spCiB7CisJaW50IGdvb2RfbGluZWFyID0gU0tCX01BWF9IRUFEKE1BQ1ZUQVBfUkVT RVJWRSk7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsKIAlzdHJ1Y3QgbWFjdmxhbl9kZXYgKnZsYW47 CiAJdW5zaWduZWQgbG9uZyBsZW4gPSB0b3RhbF9sZW47CkBAIC03MTQsNiArNzE4LDggQEAgc3Rh dGljIHNzaXplX3QgbWFjdnRhcF9nZXRfdXNlcihzdHJ1Y3QgbWFjdnRhcF9xdWV1ZSAqcSwgc3Ry dWN0IG1zZ2hkciAqbSwKIAogCWlmIChtICYmIG0tPm1zZ19jb250cm9sICYmIHNvY2tfZmxhZygm cS0+c2ssIFNPQ0tfWkVST0NPUFkpKSB7CiAJCWNvcHlsZW4gPSB2bmV0X2hkci5oZHJfbGVuID8g dm5ldF9oZHIuaGRyX2xlbiA6IEdPT0RDT1BZX0xFTjsKKwkJaWYgKGNvcHlsZW4gPiBnb29kX2xp bmVhcikKKwkJCWNvcHlsZW4gPSBnb29kX2xpbmVhcjsKIAkJbGluZWFyID0gY29weWxlbjsKIAkJ aWYgKGlvdl9wYWdlcyhpdiwgdm5ldF9oZHJfbGVuICsgY29weWxlbiwgY291bnQpCiAJCSAgICA8 PSBNQVhfU0tCX0ZSQUdTKQpAQCAtNzIyLDEwICs3MjgsMTMgQEAgc3RhdGljIHNzaXplX3QgbWFj dnRhcF9nZXRfdXNlcihzdHJ1Y3QgbWFjdnRhcF9xdWV1ZSAqcSwgc3RydWN0IG1zZ2hkciAqbSwK IAogCWlmICghemVyb2NvcHkpIHsKIAkJY29weWxlbiA9IGxlbjsKLQkJbGluZWFyID0gdm5ldF9o ZHIuaGRyX2xlbjsKKwkJaWYgKHZuZXRfaGRyLmhkcl9sZW4gPiBnb29kX2xpbmVhcikKKwkJCWxp bmVhciA9IGdvb2RfbGluZWFyOworCQllbHNlCisJCQlsaW5lYXIgPSB2bmV0X2hkci5oZHJfbGVu OwogCX0KIAotCXNrYiA9IG1hY3Z0YXBfYWxsb2Nfc2tiKCZxLT5zaywgTkVUX0lQX0FMSUdOLCBj b3B5bGVuLAorCXNrYiA9IG1hY3Z0YXBfYWxsb2Nfc2tiKCZxLT5zaywgTUFDVlRBUF9SRVNFUlZF LCBjb3B5bGVuLAogCQkJCWxpbmVhciwgbm9ibG9jaywgJmVycik7CiAJaWYgKCFza2IpCiAJCWdv dG8gZXJyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwL3BwcF9kZWZsYXRlLmMgYi9kcml2 ZXJzL25ldC9wcHAvcHBwX2RlZmxhdGUuYwppbmRleCAxZGJkZjgyLi40Mzc2NGNjIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9wcHAvcHBwX2RlZmxhdGUuYworKysgYi9kcml2ZXJzL25ldC9wcHAv cHBwX2RlZmxhdGUuYwpAQCAtMjY4LDcgKzI2OCw3IEBAIHN0YXRpYyBpbnQgel9jb21wcmVzcyh2 b2lkICphcmcsIHVuc2lnbmVkIGNoYXIgKnJwdHIsIHVuc2lnbmVkIGNoYXIgKm9idWYsCiAJLyoK IAkgKiBTZWUgaWYgd2UgbWFuYWdlZCB0byByZWR1Y2UgdGhlIHNpemUgb2YgdGhlIHBhY2tldC4K IAkgKi8KLQlpZiAob2xlbiA8IGlzaXplKSB7CisJaWYgKG9sZW4gPCBpc2l6ZSAmJiBvbGVuIDw9 IG9zaXplKSB7CiAJCXN0YXRlLT5zdGF0cy5jb21wX2J5dGVzICs9IG9sZW47CiAJCXN0YXRlLT5z dGF0cy5jb21wX3BhY2tldHMrKzsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv dXNiL3BsdXNiLmMgYi9kcml2ZXJzL25ldC91c2IvcGx1c2IuYwppbmRleCAyMTdhZWM4Li40YTA5 MTEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvcGx1c2IuYworKysgYi9kcml2ZXJzL25l dC91c2IvcGx1c2IuYwpAQCAtMTM5LDYgKzEzOSwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVz Yl9kZXZpY2VfaWQJcHJvZHVjdHMgW10gPSB7CiB9LCB7CiAJVVNCX0RFVklDRSgweDA1MGQsIDB4 MjU4YSksICAgICAvKiBCZWxraW4gRjVVMjU4L0Y1VTI3OSAoUEwtMjVBMSkgKi8KIAkuZHJpdmVy X2luZm8gPSAgKHVuc2lnbmVkIGxvbmcpICZwcm9saWZpY19pbmZvLAorfSwgeworCVVTQl9ERVZJ Q0UoMHgzOTIzLCAweDc4MjUpLCAgICAgLyogTmF0aW9uYWwgSW5zdHJ1bWVudHMgVVNCCisJCQkJ CSAqIEhvc3QtdG8tSG9zdCBDYWJsZQorCQkJCQkgKi8KKwkuZHJpdmVyX2luZm8gPSAgKHVuc2ln bmVkIGxvbmcpICZwcm9saWZpY19pbmZvLAogfSwKIAogCXsgfSwJCS8vIEVORApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQveGVuLW5ldGZyb250LmMgYi9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQu YwppbmRleCAwZDk5MTRiLi5jNjRhNjBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0 ZnJvbnQuYworKysgYi9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYwpAQCAtMTA1Myw4ICsxMDUz LDcgQEAgZXJyOgogCiBzdGF0aWMgaW50IHhlbm5ldF9jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsIGludCBtdHUpCiB7Ci0JaW50IG1heCA9IHhlbm5ldF9jYW5fc2coZGV2KSA/Ci0J CVhFTl9ORVRJRl9NQVhfVFhfU0laRSAtIE1BWF9UQ1BfSEVBREVSIDogRVRIX0RBVEFfTEVOOwor CWludCBtYXggPSB4ZW5uZXRfY2FuX3NnKGRldikgPyBYRU5fTkVUSUZfTUFYX1RYX1NJWkUgOiBF VEhfREFUQV9MRU47CiAKIAlpZiAobXR1ID4gbWF4KQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTEz MjksOCArMTMyOCw2IEBAIHN0YXRpYyBzdHJ1Y3QgbmV0X2RldmljZSAqIF9fZGV2aW5pdCB4ZW5u ZXRfY3JlYXRlX2RldihzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2CiAJU0VUX0VUSFRPT0xfT1BT KG5ldGRldiwgJnhlbm5ldF9ldGh0b29sX29wcyk7CiAJU0VUX05FVERFVl9ERVYobmV0ZGV2LCAm ZGV2LT5kZXYpOwogCi0JbmV0aWZfc2V0X2dzb19tYXhfc2l6ZShuZXRkZXYsIFhFTl9ORVRJRl9N QVhfVFhfU0laRSAtIE1BWF9UQ1BfSEVBREVSKTsKLQogCW5wLT5uZXRkZXYgPSBuZXRkZXY7CiAK IAluZXRpZl9jYXJyaWVyX29mZihuZXRkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaG90 cGx1Zy5jIGIvZHJpdmVycy9wY2kvaG90cGx1Zy5jCmluZGV4IDJiNTM1MmEuLjNiNzBmNWMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2hvdHBsdWcuYworKysgYi9kcml2ZXJzL3BjaS9ob3RwbHVn LmMKQEAgLTI3LDcgKzI3LDcgQEAgaW50IHBjaV91ZXZlbnQoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYpCiAJaWYgKGFkZF91ZXZlbnRfdmFyKGVudiwgIlBD SV9TTE9UX05BTUU9JXMiLCBwY2lfbmFtZShwZGV2KSkpCiAJCXJldHVybiAtRU5PTUVNOwogCi0J aWYgKGFkZF91ZXZlbnRfdmFyKGVudiwgIk1PREFMSUFTPXBjaTp2JTA4WGQlMDhYc3YlMDhYc2Ql MDhYYmMlMDJYc2MlMDJYaSUwMngiLAorCWlmIChhZGRfdWV2ZW50X3ZhcihlbnYsICJNT0RBTElB Uz1wY2k6diUwOFhkJTA4WHN2JTA4WHNkJTA4WGJjJTAyWHNjJTAyWGklMDJYIiwKIAkJCSAgIHBk ZXYtPnZlbmRvciwgcGRldi0+ZGV2aWNlLAogCQkJICAgcGRldi0+c3Vic3lzdGVtX3ZlbmRvciwg cGRldi0+c3Vic3lzdGVtX2RldmljZSwKIAkJCSAgICh1OCkocGRldi0+Y2xhc3MgPj4gMTYpLCAo dTgpKHBkZXYtPmNsYXNzID4+IDgpLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcm9tLmMgYi9k cml2ZXJzL3BjaS9yb20uYwppbmRleCA0OGViZGIyLi5lMzE2NTljIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3BjaS9yb20uYworKysgYi9kcml2ZXJzL3BjaS9yb20uYwpAQCAtNjksNiArNjksNyBAQCBz aXplX3QgcGNpX2dldF9yb21fc2l6ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdm9pZCBfX2lvbWVt ICpyb20sIHNpemVfdCBzaXplKQogewogCXZvaWQgX19pb21lbSAqaW1hZ2U7CiAJaW50IGxhc3Rf aW1hZ2U7CisJdW5zaWduZWQgbGVuZ3RoOwogCiAJaW1hZ2UgPSByb207CiAJZG8gewpAQCAtOTEs OSArOTIsOSBAQCBzaXplX3QgcGNpX2dldF9yb21fc2l6ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwg dm9pZCBfX2lvbWVtICpyb20sIHNpemVfdCBzaXplKQogCQlpZiAocmVhZGIocGRzICsgMykgIT0g J1InKQogCQkJYnJlYWs7CiAJCWxhc3RfaW1hZ2UgPSByZWFkYihwZHMgKyAyMSkgJiAweDgwOwot CQkvKiB0aGlzIGxlbmd0aCBpcyByZWxpYWJsZSAqLwotCQlpbWFnZSArPSByZWFkdyhwZHMgKyAx NikgKiA1MTI7Ci0JfSB3aGlsZSAoIWxhc3RfaW1hZ2UpOworCQlsZW5ndGggPSByZWFkdyhwZHMg KyAxNik7CisJCWltYWdlICs9IGxlbmd0aCAqIDUxMjsKKwl9IHdoaWxlIChsZW5ndGggJiYgIWxh c3RfaW1hZ2UpOwogCiAJLyogbmV2ZXIgcmV0dXJuIGEgc2l6ZSBsYXJnZXIgdGhhbiB0aGUgUENJ IHJlc291cmNlIHdpbmRvdyAqLwogCS8qIHRoZXJlIGFyZSBrbm93biBST01zIHRoYXQgZ2V0IHRo ZSBzaXplIHdyb25nICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYmUyaXNjc2kvYmVfbWFp bi5jIGIvZHJpdmVycy9zY3NpL2JlMmlzY3NpL2JlX21haW4uYwppbmRleCAzNzljNjk2Li5iOWVl OWYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYmUyaXNjc2kvYmVfbWFpbi5jCisrKyBiL2Ry aXZlcnMvc2NzaS9iZTJpc2NzaS9iZV9tYWluLmMKQEAgLTQyNCw3ICs0MjQsNiBAQCBzdGF0aWMg c3RydWN0IGJlaXNjc2lfaGJhICpiZWlzY3NpX2hiYV9hbGxvYyhzdHJ1Y3QgcGNpX2RldiAqcGNp ZGV2KQogCQkJImlzY3NpX2hvc3RfYWxsb2MgZmFpbGVkXG4iKTsKIAkJcmV0dXJuIE5VTEw7CiAJ fQotCXNob3N0LT5kbWFfYm91bmRhcnkgPSBwY2lkZXYtPmRtYV9tYXNrOwogCXNob3N0LT5tYXhf aWQgPSBCRTJfTUFYX1NFU1NJT05TOwogCXNob3N0LT5tYXhfY2hhbm5lbCA9IDA7CiAJc2hvc3Qt Pm1heF9jbWRfbGVuID0gQkVJU0NTSV9NQVhfQ01EX0xFTjsKQEAgLTQzOTgsOSArNDM5Nyw5IEBA IGZyZWVfcG9ydDoKIGhiYV9mcmVlOgogCWlmIChwaGJhLT5tc2l4X2VuYWJsZWQpCiAJCXBjaV9k aXNhYmxlX21zaXgocGhiYS0+cGNpZGV2KTsKLQlpc2NzaV9ob3N0X3JlbW92ZShwaGJhLT5zaG9z dCk7CiAJcGNpX2Rldl9wdXQocGhiYS0+cGNpZGV2KTsKIAlpc2NzaV9ob3N0X2ZyZWUocGhiYS0+ c2hvc3QpOworCXBjaV9zZXRfZHJ2ZGF0YShwY2lkZXYsIE5VTEwpOwogZGlzYWJsZV9wY2k6CiAJ cGNpX2Rpc2FibGVfZGV2aWNlKHBjaWRldik7CiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc2NzaS9saWJzYXMvc2FzX2Rpc2NvdmVyLmMgYi9kcml2ZXJzL3Njc2kvbGlic2FzL3Nh c19kaXNjb3Zlci5jCmluZGV4IDU0YTUxOTkuLjY3NmUxNjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv c2NzaS9saWJzYXMvc2FzX2Rpc2NvdmVyLmMKKysrIGIvZHJpdmVycy9zY3NpL2xpYnNhcy9zYXNf ZGlzY292ZXIuYwpAQCAtMzM2LDE0ICszMzYsMTYgQEAgc3RhdGljIHZvaWQgc2FzX3JldmFsaWRh dGVfZG9tYWluKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlzdHJ1Y3Qgc2FzX2Rpc2NvdmVy eV9ldmVudCAqZXYgPQogCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IHNhc19kaXNjb3Zlcnlf ZXZlbnQsIHdvcmspOwogCXN0cnVjdCBhc2Rfc2FzX3BvcnQgKnBvcnQgPSBldi0+cG9ydDsKKwlz dHJ1Y3QgZG9tYWluX2RldmljZSAqZGRldiA9IHBvcnQtPnBvcnRfZGV2OwogCiAJc2FzX2JlZ2lu X2V2ZW50KERJU0NFX1JFVkFMSURBVEVfRE9NQUlOLCAmcG9ydC0+ZGlzYy5kaXNjX2V2ZW50X2xv Y2ssCiAJCQkmcG9ydC0+ZGlzYy5wZW5kaW5nKTsKIAogCVNBU19EUFJJTlRLKCJSRVZBTElEQVRJ TkcgRE9NQUlOIG9uIHBvcnQgJWQsIHBpZDolZFxuIiwgcG9ydC0+aWQsCiAJCSAgICB0YXNrX3Bp ZF9ucihjdXJyZW50KSk7Ci0JaWYgKHBvcnQtPnBvcnRfZGV2KQotCQlyZXMgPSBzYXNfZXhfcmV2 YWxpZGF0ZV9kb21haW4ocG9ydC0+cG9ydF9kZXYpOworCWlmIChkZGV2ICYmIChkZGV2LT5kZXZf dHlwZSA9PSBGQU5PVVRfREVWIHx8CisJCSAgICAgZGRldi0+ZGV2X3R5cGUgPT0gRURHRV9ERVYp KQorCQlyZXMgPSBzYXNfZXhfcmV2YWxpZGF0ZV9kb21haW4oZGRldik7CiAKIAlTQVNfRFBSSU5U SygiZG9uZSBSRVZBTElEQVRJTkcgRE9NQUlOIG9uIHBvcnQgJWQsIHBpZDolZCwgcmVzIDB4JXhc biIsCiAJCSAgICBwb3J0LT5pZCwgdGFza19waWRfbnIoY3VycmVudCksIHJlcyk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYyBiL2RyaXZlcnMvc2NzaS9zY3NpX2xpYi5jCmlu ZGV4IDBiZGM0YTcuLmY2YTQ2NGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zY3NpX2xpYi5j CisrKyBiL2RyaXZlcnMvc2NzaS9zY3NpX2xpYi5jCkBAIC0xMjA2LDkgKzEyMDYsMTEgQEAgaW50 IHNjc2lfcHJlcF9zdGF0ZV9jaGVjayhzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXYsIHN0cnVjdCBy ZXF1ZXN0ICpyZXEpCiAJCQkJICAgICJyZWplY3RpbmcgSS9PIHRvIGRlYWQgZGV2aWNlXG4iKTsK IAkJCXJldCA9IEJMS1BSRVBfS0lMTDsKIAkJCWJyZWFrOwotCQljYXNlIFNERVZfUVVJRVNDRToK IAkJY2FzZSBTREVWX0JMT0NLOgogCQljYXNlIFNERVZfQ1JFQVRFRF9CTE9DSzoKKwkJCXJldCA9 IEJMS1BSRVBfREVGRVI7CisJCQlicmVhazsKKwkJY2FzZSBTREVWX1FVSUVTQ0U6CiAJCQkvKgog CQkJICogSWYgdGhlIGRldmljZXMgaXMgYmxvY2tlZCB3ZSBkZWZlciBub3JtYWwgY29tbWFuZHMu CiAJCQkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zZy5jIGIvZHJpdmVycy9zY3NpL3Nn LmMKaW5kZXggNDQxYTFjNS4uMmQyNTYxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3NnLmMK KysrIGIvZHJpdmVycy9zY3NpL3NnLmMKQEAgLTQ5OCw3ICs0OTgsNyBAQCBzdGF0aWMgc3NpemVf dAogc2dfbmV3X3JlYWQoU2dfZmQgKiBzZnAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3Vu dCwgU2dfcmVxdWVzdCAqIHNycCkKIHsKIAlzZ19pb19oZHJfdCAqaHAgPSAmc3JwLT5oZWFkZXI7 Ci0JaW50IGVyciA9IDA7CisJaW50IGVyciA9IDAsIGVycjI7CiAJaW50IGxlbjsKIAogCWlmIChj b3VudCA8IFNaX1NHX0lPX0hEUikgewpAQCAtNTI3LDggKzUyNyw4IEBAIHNnX25ld19yZWFkKFNn X2ZkICogc2ZwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsIFNnX3JlcXVlc3QgKiBz cnApCiAJCWdvdG8gZXJyX291dDsKIAl9CiBlcnJfb3V0OgotCWVyciA9IHNnX2ZpbmlzaF9yZW1f cmVxKHNycCk7Ci0JcmV0dXJuICgwID09IGVycikgPyBjb3VudCA6IGVycjsKKwllcnIyID0gc2df ZmluaXNoX3JlbV9yZXEoc3JwKTsKKwlyZXR1cm4gZXJyID8gOiBlcnIyID8gOiBjb3VudDsKIH0K IAogc3RhdGljIHNzaXplX3QKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1kdy1taWQuYyBi L2RyaXZlcnMvc3BpL3NwaS1kdy1taWQuYwppbmRleCBlNmExYmQzLi4yYjg4YjI0IDEwMDY0NAot LS0gYS9kcml2ZXJzL3NwaS9zcGktZHctbWlkLmMKKysrIGIvZHJpdmVycy9zcGkvc3BpLWR3LW1p ZC5jCkBAIC0xNTUsNiArMTU1LDkgQEAgc3RhdGljIGludCBtaWRfc3BpX2RtYV90cmFuc2Zlcihz dHJ1Y3QgZHdfc3BpICpkd3MsIGludCBjc19jaGFuZ2UpCiAJCQkJMSwKIAkJCQlETUFfVE9fREVW SUNFLAogCQkJCURNQV9QUkVQX0lOVEVSUlVQVCB8IERNQV9DT01QTF9TS0lQX0RFU1RfVU5NQVAp OworCWlmICghdHhkZXNjKQorCQlyZXR1cm4gTlVMTDsKKwogCXR4ZGVzYy0+Y2FsbGJhY2sgPSBk d19zcGlfZG1hX2RvbmU7CiAJdHhkZXNjLT5jYWxsYmFja19wYXJhbSA9IGR3czsKIApAQCAtMTc3 LDYgKzE4MCw5IEBAIHN0YXRpYyBpbnQgbWlkX3NwaV9kbWFfdHJhbnNmZXIoc3RydWN0IGR3X3Nw aSAqZHdzLCBpbnQgY3NfY2hhbmdlKQogCQkJCTEsCiAJCQkJRE1BX0ZST01fREVWSUNFLAogCQkJ CURNQV9QUkVQX0lOVEVSUlVQVCB8IERNQV9DT01QTF9TS0lQX0RFU1RfVU5NQVApOworCWlmICgh cnhkZXNjKQorCQlyZXR1cm4gTlVMTDsKKwogCXJ4ZGVzYy0+Y2FsbGJhY2sgPSBkd19zcGlfZG1h X2RvbmU7CiAJcnhkZXNjLT5jYWxsYmFja19wYXJhbSA9IGR3czsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9zcGkvc3BpLWR3LmMgYi9kcml2ZXJzL3NwaS9zcGktZHcuYwppbmRleCBiYmRmMGNmLi45 ZmMzNGU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktZHcuYworKysgYi9kcml2ZXJzL3Nw aS9zcGktZHcuYwpAQCAtNzg2LDEzICs3ODYsMTMgQEAgc3RhdGljIHZvaWQgc3BpX2h3X2luaXQo c3RydWN0IGR3X3NwaSAqZHdzKQogCSAqLwogCWlmICghZHdzLT5maWZvX2xlbikgewogCQl1MzIg ZmlmbzsKLQkJZm9yIChmaWZvID0gMjsgZmlmbyA8PSAyNTY7IGZpZm8rKykgeworCQlmb3IgKGZp Zm8gPSAxOyBmaWZvIDwgMjU2OyBmaWZvKyspIHsKIAkJCWR3X3dyaXRldyhkd3MsIERXX1NQSV9U WEZMVFIsIGZpZm8pOwogCQkJaWYgKGZpZm8gIT0gZHdfcmVhZHcoZHdzLCBEV19TUElfVFhGTFRS KSkKIAkJCQlicmVhazsKIAkJfQogCi0JCWR3cy0+Zmlmb19sZW4gPSAoZmlmbyA9PSAyKSA/IDAg OiBmaWZvIC0gMTsKKwkJZHdzLT5maWZvX2xlbiA9IChmaWZvID09IDEpID8gMCA6IGZpZm87CiAJ CWR3X3dyaXRldyhkd3MsIERXX1NQSV9UWEZMVFIsIDApOwogCX0KIH0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3BpL3NwaWRldi5jIGIvZHJpdmVycy9zcGkvc3BpZGV2LmMKaW5kZXggODMwYWRiZS4u MTU1NmRiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpZGV2LmMKKysrIGIvZHJpdmVycy9z cGkvc3BpZGV2LmMKQEAgLTI0MSw3ICsyNDEsMTAgQEAgc3RhdGljIGludCBzcGlkZXZfbWVzc2Fn ZShzdHJ1Y3Qgc3BpZGV2X2RhdGEgKnNwaWRldiwKIAkJa190bXAtPmxlbiA9IHVfdG1wLT5sZW47 CiAKIAkJdG90YWwgKz0ga190bXAtPmxlbjsKLQkJaWYgKHRvdGFsID4gYnVmc2l6KSB7CisJCS8q IENoZWNrIHRvdGFsIGxlbmd0aCBvZiB0cmFuc2ZlcnMuICBBbHNvIGNoZWNrIGVhY2gKKwkJICog dHJhbnNmZXIgbGVuZ3RoIHRvIGF2b2lkIGFyaXRobWV0aWMgb3ZlcmZsb3cuCisJCSAqLworCQlp ZiAodG90YWwgPiBidWZzaXogfHwga190bXAtPmxlbiA+IGJ1ZnNpeikgewogCQkJc3RhdHVzID0g LUVNU0dTSVpFOwogCQkJZ290byBkb25lOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdp bmcvY29tZWRpL2NvbWVkaV9jb21wYXQzMi5jIGIvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9jb21l ZGlfY29tcGF0MzIuYwppbmRleCA0MWE3YTYyLi5hOGEwYzBmIDEwMDY0NAotLS0gYS9kcml2ZXJz L3N0YWdpbmcvY29tZWRpL2NvbWVkaV9jb21wYXQzMi5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9j b21lZGkvY29tZWRpX2NvbXBhdDMyLmMKQEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMgaW50IGNv bXBhdF9jbWQoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGxvbmcgYXJnKQogewogCXN0cnVj dCBjb21lZGlfY21kIF9fdXNlciAqY21kOwogCXN0cnVjdCBjb21lZGkzMl9jbWRfc3RydWN0IF9f dXNlciAqY21kMzI7Ci0JaW50IHJjOworCWludCByYywgZXJyOwogCiAJY21kMzIgPSBjb21wYXRf cHRyKGFyZyk7CiAJY21kID0gY29tcGF0X2FsbG9jX3VzZXJfc3BhY2Uoc2l6ZW9mKCpjbWQpKTsK QEAgLTI4MCw3ICsyODAsMTUgQEAgc3RhdGljIGludCBjb21wYXRfY21kKHN0cnVjdCBmaWxlICpm aWxlLCB1bnNpZ25lZCBsb25nIGFyZykKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIAotCXJldHVy biB0cmFuc2xhdGVkX2lvY3RsKGZpbGUsIENPTUVESV9DTUQsICh1bnNpZ25lZCBsb25nKWNtZCk7 CisJcmMgPSB0cmFuc2xhdGVkX2lvY3RsKGZpbGUsIENPTUVESV9DTUQsICh1bnNpZ25lZCBsb25n KWNtZCk7CisJaWYgKHJjID09IC1FQUdBSU4pIHsKKwkJLyogU3BlY2lhbCBjYXNlOiBjb3B5IGNt ZCBiYWNrIHRvIHVzZXIuICovCisJCWVyciA9IHB1dF9jb21wYXRfY21kKGNtZDMyLCBjbWQpOwor CQlpZiAoZXJyKQorCQkJcmMgPSBlcnI7CisJfQorCisJcmV0dXJuIHJjOwogfQogCiAvKiBIYW5k bGUgMzItYml0IENPTUVESV9DTURURVNUIGlvY3RsLiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9z dGFnaW5nL2lpby9pbXUvYWRpczE2NDAwX2NvcmUuYyBiL2RyaXZlcnMvc3RhZ2luZy9paW8vaW11 L2FkaXMxNjQwMF9jb3JlLmMKaW5kZXggZDA4MmEzNy4uNTdjYjkyZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9zdGFnaW5nL2lpby9pbXUvYWRpczE2NDAwX2NvcmUuYworKysgYi9kcml2ZXJzL3N0YWdp bmcvaWlvL2ltdS9hZGlzMTY0MDBfY29yZS5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8 bGludXgvc3lzZnMuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgv bW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CiAKICNpbmNsdWRlICIuLi9paW8u aCIKICNpbmNsdWRlICIuLi9zeXNmcy5oIgpAQCAtNTQxLDcgKzU0Miw3IEBAIHN0YXRpYyBpbnQg YWRpczE2NDAwX3JlYWRfcmF3KHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYsCiAJCW11dGV4X3Vu bG9jaygmaW5kaW9fZGV2LT5tbG9jayk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwotCQl2 YWwxNiA9ICgodmFsMTYgJiAweEZGRikgPDwgNCkgPj4gNDsKKwkJdmFsMTYgPSBzaWduX2V4dGVu ZDMyKHZhbDE2LCAxMSk7CiAJCSp2YWwgPSB2YWwxNjsKIAkJcmV0dXJuIElJT19WQUxfSU5UOwog CWNhc2UgKDEgPDwgSUlPX0NIQU5fSU5GT19PRkZTRVRfU0VQQVJBVEUpOgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zdGFnaW5nL2lpby9pbmR1c3RyaWFsaW8tY29yZS5jIGIvZHJpdmVycy9zdGFnaW5n L2lpby9pbmR1c3RyaWFsaW8tY29yZS5jCmluZGV4IGFlYzkzMTEuLmYwYWJmMjkgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvc3RhZ2luZy9paW8vaW5kdXN0cmlhbGlvLWNvcmUuYworKysgYi9kcml2ZXJz L3N0YWdpbmcvaWlvL2luZHVzdHJpYWxpby1jb3JlLmMKQEAgLTcxMSw2ICs3MTEsNyBAQCBzdGF0 aWMgdm9pZCBpaW9fZGV2aWNlX3VucmVnaXN0ZXJfc3lzZnMoc3RydWN0IGlpb19kZXYgKmluZGlv X2RldikKIAkJaWlvX2RldmljZV9yZW1vdmVfYW5kX2ZyZWVfcmVhZF9hdHRyKGluZGlvX2Rldiwg cCk7CiAJfQogCWtmcmVlKGluZGlvX2Rldi0+Y2hhbl9hdHRyX2dyb3VwLmF0dHJzKTsKKwlpbmRp b19kZXYtPmNoYW5fYXR0cl9ncm91cC5hdHRycyA9IE5VTEw7CiB9CiAKIHN0YXRpYyBjb25zdCBj aGFyICogY29uc3QgaWlvX2V2X3R5cGVfdGV4dFtdID0gewpAQCAtOTg2LDYgKzk4Nyw3IEBAIHN0 YXRpYyBpbnQgaWlvX2RldmljZV9yZWdpc3Rlcl9ldmVudHNldChzdHJ1Y3QgaWlvX2RldiAqaW5k aW9fZGV2KQogZXJyb3JfZnJlZV9zZXR1cF9ldmVudF9saW5lczoKIAlfX2lpb19yZW1vdmVfZXZl bnRfY29uZmlnX2F0dHJzKGluZGlvX2Rldik7CiAJa2ZyZWUoaW5kaW9fZGV2LT5ldmVudF9pbnRl cmZhY2UpOworCWluZGlvX2Rldi0+ZXZlbnRfaW50ZXJmYWNlID0gTlVMTDsKIGVycm9yX3JldDoK IAogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU1L3JmLmMg Yi9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU1L3JmLmMKaW5kZXggYjhlYzc4My4uMzAwMzM2MyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3Z0NjY1NS9yZi5jCisrKyBiL2RyaXZlcnMvc3RhZ2lu Zy92dDY2NTUvcmYuYwpAQCAtMTAyOSw2ICsxMDI5LDcgQEAgdW5zaWduZWQgY2hhciBieVB3cmRC bSA9IDA7CiAJCWJyZWFrOwogICAgIGNhc2UgUkFURV82TToKICAgICBjYXNlIFJBVEVfOU06Cisg ICAgY2FzZSBSQVRFXzEyTToKICAgICBjYXNlIFJBVEVfMThNOgogICAgICAgICBieVB3ciA9IHBE ZXZpY2UtPmFieU9GRE1Qd3JUYmxbdUNIXTsKICAgICAgICAgaWYgKHBEZXZpY2UtPmJ5UkZUeXBl ID09IFJGX1VXMjQ1MikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvaXNjc2kvaXNjc2lf dGFyZ2V0X3RxLmMgYi9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJnZXRfdHEuYwppbmRl eCAwYmFhYzViLi4zZjU5YTgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2Nz aV90YXJnZXRfdHEuYworKysgYi9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJnZXRfdHEu YwpAQCAtMjYsMzYgKzI2LDIyIEBACiAjaW5jbHVkZSAiaXNjc2lfdGFyZ2V0X3RxLmgiCiAjaW5j bHVkZSAiaXNjc2lfdGFyZ2V0LmgiCiAKLXN0YXRpYyBMSVNUX0hFQUQoYWN0aXZlX3RzX2xpc3Qp Owogc3RhdGljIExJU1RfSEVBRChpbmFjdGl2ZV90c19saXN0KTsKLXN0YXRpYyBERUZJTkVfU1BJ TkxPQ0soYWN0aXZlX3RzX2xvY2spOwogc3RhdGljIERFRklORV9TUElOTE9DSyhpbmFjdGl2ZV90 c19sb2NrKTsKIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0sodHNfYml0bWFwX2xvY2spOwogCi1zdGF0 aWMgdm9pZCBpc2NzaV9hZGRfdHNfdG9fYWN0aXZlX2xpc3Qoc3RydWN0IGlzY3NpX3RocmVhZF9z ZXQgKnRzKQotewotCXNwaW5fbG9jaygmYWN0aXZlX3RzX2xvY2spOwotCWxpc3RfYWRkX3RhaWwo JnRzLT50c19saXN0LCAmYWN0aXZlX3RzX2xpc3QpOwotCWlzY3NpdF9nbG9iYWwtPmFjdGl2ZV90 cysrOwotCXNwaW5fdW5sb2NrKCZhY3RpdmVfdHNfbG9jayk7Ci19Ci0KIGV4dGVybiB2b2lkIGlz Y3NpX2FkZF90c190b19pbmFjdGl2ZV9saXN0KHN0cnVjdCBpc2NzaV90aHJlYWRfc2V0ICp0cykK IHsKKwlpZiAoIWxpc3RfZW1wdHkoJnRzLT50c19saXN0KSkgeworCQlXQVJOX09OKDEpOworCQly ZXR1cm47CisJfQogCXNwaW5fbG9jaygmaW5hY3RpdmVfdHNfbG9jayk7CiAJbGlzdF9hZGRfdGFp bCgmdHMtPnRzX2xpc3QsICZpbmFjdGl2ZV90c19saXN0KTsKIAlpc2NzaXRfZ2xvYmFsLT5pbmFj dGl2ZV90cysrOwogCXNwaW5fdW5sb2NrKCZpbmFjdGl2ZV90c19sb2NrKTsKIH0KIAotc3RhdGlj IHZvaWQgaXNjc2lfZGVsX3RzX2Zyb21fYWN0aXZlX2xpc3Qoc3RydWN0IGlzY3NpX3RocmVhZF9z ZXQgKnRzKQotewotCXNwaW5fbG9jaygmYWN0aXZlX3RzX2xvY2spOwotCWxpc3RfZGVsKCZ0cy0+ dHNfbGlzdCk7Ci0JaXNjc2l0X2dsb2JhbC0+YWN0aXZlX3RzLS07Ci0Jc3Bpbl91bmxvY2soJmFj dGl2ZV90c19sb2NrKTsKLX0KLQogc3RhdGljIHN0cnVjdCBpc2NzaV90aHJlYWRfc2V0ICppc2Nz aV9nZXRfdHNfZnJvbV9pbmFjdGl2ZV9saXN0KHZvaWQpCiB7CiAJc3RydWN0IGlzY3NpX3RocmVh ZF9zZXQgKnRzOwpAQCAtNjksNyArNTUsNyBAQCBzdGF0aWMgc3RydWN0IGlzY3NpX3RocmVhZF9z ZXQgKmlzY3NpX2dldF90c19mcm9tX2luYWN0aXZlX2xpc3Qodm9pZCkKIAlsaXN0X2Zvcl9lYWNo X2VudHJ5KHRzLCAmaW5hY3RpdmVfdHNfbGlzdCwgdHNfbGlzdCkKIAkJYnJlYWs7CiAKLQlsaXN0 X2RlbCgmdHMtPnRzX2xpc3QpOworCWxpc3RfZGVsX2luaXQoJnRzLT50c19saXN0KTsKIAlpc2Nz aXRfZ2xvYmFsLT5pbmFjdGl2ZV90cy0tOwogCXNwaW5fdW5sb2NrKCZpbmFjdGl2ZV90c19sb2Nr KTsKIApAQCAtMjIwLDggKzIwNiw2IEBAIHN0YXRpYyB2b2lkIGlzY3NpX2RlYWxsb2NhdGVfZXh0 cmFfdGhyZWFkX3NldHModm9pZCkKIAogdm9pZCBpc2NzaV9hY3RpdmF0ZV90aHJlYWRfc2V0KHN0 cnVjdCBpc2NzaV9jb25uICpjb25uLCBzdHJ1Y3QgaXNjc2lfdGhyZWFkX3NldCAqdHMpCiB7Ci0J aXNjc2lfYWRkX3RzX3RvX2FjdGl2ZV9saXN0KHRzKTsKLQogCXNwaW5fbG9ja19iaCgmdHMtPnRz X3N0YXRlX2xvY2spOwogCWNvbm4tPnRocmVhZF9zZXQgPSB0czsKIAl0cy0+Y29ubiA9IGNvbm47 CkBAIC00MjQsNyArNDA4LDYgQEAgc3RydWN0IGlzY3NpX2Nvbm4gKmlzY3NpX3J4X3RocmVhZF9w cmVfaGFuZGxlcihzdHJ1Y3QgaXNjc2lfdGhyZWFkX3NldCAqdHMpCiAKIAlpZiAodHMtPmRlbGF5 X2luYWN0aXZlICYmICgtLXRzLT50aHJlYWRfY291bnQgPT0gMCkpIHsKIAkJc3Bpbl91bmxvY2tf YmgoJnRzLT50c19zdGF0ZV9sb2NrKTsKLQkJaXNjc2lfZGVsX3RzX2Zyb21fYWN0aXZlX2xpc3Qo dHMpOwogCiAJCWlmICghaXNjc2l0X2dsb2JhbC0+aW5fc2h1dGRvd24pCiAJCQlpc2NzaV9kZWFs bG9jYXRlX2V4dHJhX3RocmVhZF9zZXRzKCk7CkBAIC00NzcsNyArNDYwLDYgQEAgc3RydWN0IGlz Y3NpX2Nvbm4gKmlzY3NpX3R4X3RocmVhZF9wcmVfaGFuZGxlcihzdHJ1Y3QgaXNjc2lfdGhyZWFk X3NldCAqdHMpCiAKIAlpZiAodHMtPmRlbGF5X2luYWN0aXZlICYmICgtLXRzLT50aHJlYWRfY291 bnQgPT0gMCkpIHsKIAkJc3Bpbl91bmxvY2tfYmgoJnRzLT50c19zdGF0ZV9sb2NrKTsKLQkJaXNj c2lfZGVsX3RzX2Zyb21fYWN0aXZlX2xpc3QodHMpOwogCiAJCWlmICghaXNjc2l0X2dsb2JhbC0+ aW5fc2h1dGRvd24pCiAJCQlpc2NzaV9kZWFsbG9jYXRlX2V4dHJhX3RocmVhZF9zZXRzKCk7CkBA IC01MzYsMTAgKzUxOCw4IEBAIGludCBpc2NzaV90aHJlYWRfc2V0X2luaXQodm9pZCkKIAkJcmV0 dXJuIC1FTk9NRU07CiAJfQogCi0Jc3Bpbl9sb2NrX2luaXQoJmFjdGl2ZV90c19sb2NrKTsKIAlz cGluX2xvY2tfaW5pdCgmaW5hY3RpdmVfdHNfbG9jayk7CiAJc3Bpbl9sb2NrX2luaXQoJnRzX2Jp dG1hcF9sb2NrKTsKLQlJTklUX0xJU1RfSEVBRCgmYWN0aXZlX3RzX2xpc3QpOwogCUlOSVRfTElT VF9IRUFEKCZpbmFjdGl2ZV90c19saXN0KTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfcHNjc2kuYyBiL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9j b3JlX3BzY3NpLmMKaW5kZXggZTgxMzIyNy4uZWJmOWI2MCAxMDA2NDQKLS0tIGEvZHJpdmVycy90 YXJnZXQvdGFyZ2V0X2NvcmVfcHNjc2kuYworKysgYi9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29y ZV9wc2NzaS5jCkBAIC0xMTY4LDcgKzExNjgsNyBAQCBzdGF0aWMgdTMyIHBzY3NpX2dldF9kZXZp Y2VfdHlwZShzdHJ1Y3Qgc2VfZGV2aWNlICpkZXYpCiAJc3RydWN0IHBzY3NpX2Rldl92aXJ0ICpw ZHYgPSBkZXYtPmRldl9wdHI7CiAJc3RydWN0IHNjc2lfZGV2aWNlICpzZCA9IHBkdi0+cGR2X3Nk OwogCi0JcmV0dXJuIHNkLT50eXBlOworCXJldHVybiAoc2QpID8gc2QtPnR5cGUgOiBUWVBFX05P X0xVTjsKIH0KIAogc3RhdGljIHNlY3Rvcl90IHBzY3NpX2dldF9ibG9ja3Moc3RydWN0IHNlX2Rl dmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvdGNtX2ZjL3RmY19pby5jIGIv ZHJpdmVycy90YXJnZXQvdGNtX2ZjL3RmY19pby5jCmluZGV4IGFkYTEzMWMuLmNlYmQyMzUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdGFyZ2V0L3RjbV9mYy90ZmNfaW8uYworKysgYi9kcml2ZXJzL3Rh cmdldC90Y21fZmMvdGZjX2lvLmMKQEAgLTMzNSw3ICszMzUsNyBAQCB2b2lkIGZ0X2ludmxfaHdf Y29udGV4dChzdHJ1Y3QgZnRfY21kICpjbWQpCiAJCWVwID0gZmNfc2VxX2V4Y2goc2VxKTsKIAkJ aWYgKGVwKSB7CiAJCQlscG9ydCA9IGVwLT5scDsKLQkJCWlmIChscG9ydCAmJiAoZXAtPnhpZCA8 PSBscG9ydC0+bHJvX3hpZCkpCisJCQlpZiAobHBvcnQgJiYgKGVwLT54aWQgPD0gbHBvcnQtPmxy b194aWQpKSB7CiAJCQkJLyoKIAkJCQkgKiAiZGRwX2RvbmUiIHRyaWdnZXIgaW52YWxpZGF0aW9u IG9mIEhXCiAJCQkJICogc3BlY2lmaWMgRERQIGNvbnRleHQKQEAgLTM1MCw2ICszNTAsNyBAQCB2 b2lkIGZ0X2ludmxfaHdfY29udGV4dChzdHJ1Y3QgZnRfY21kICpjbWQpCiAJCQkJICogaWRlbnRp ZmllZCB1c2luZyBlcC0+eGlkKQogCQkJCSAqLwogCQkJCWNtZC0+d2FzX2RkcF9zZXR1cCA9IDA7 CisJCQl9CiAJCX0KIAl9CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9wdHkuYyBiL2RyaXZl cnMvdHR5L3B0eS5jCmluZGV4IDQ3MzU5MjguLmU3NTNiZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dHR5L3B0eS5jCisrKyBiL2RyaXZlcnMvdHR5L3B0eS5jCkBAIC0xNzUsNiArMTc1LDkgQEAgc3Rh dGljIGludCBwdHlfc2lnbmFsKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGludCBzaWcpCiAJdW5z aWduZWQgbG9uZyBmbGFnczsKIAlzdHJ1Y3QgcGlkICpwZ3JwOwogCisJaWYgKHNpZyAhPSBTSUdJ TlQgJiYgc2lnICE9IFNJR1FVSVQgJiYgc2lnICE9IFNJR1RTVFApCisJCXJldHVybiAtRUlOVkFM OworCiAJaWYgKHR0eS0+bGluaykgewogCQlzcGluX2xvY2tfaXJxc2F2ZSgmdHR5LT5saW5rLT5j dHJsX2xvY2ssIGZsYWdzKTsKIAkJcGdycCA9IGdldF9waWQodHR5LT5saW5rLT5wZ3JwKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwX3BjaS5jIGIvZHJpdmVycy90dHkvc2Vy aWFsLzgyNTBfcGNpLmMKaW5kZXggZWYyNGU5Ni4uYzFjMWU1MiAxMDA2NDQKLS0tIGEvZHJpdmVy cy90dHkvc2VyaWFsLzgyNTBfcGNpLmMKKysrIGIvZHJpdmVycy90dHkvc2VyaWFsLzgyNTBfcGNp LmMKQEAgLTY3LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgbW9hbl9kZXZpY2UoY29uc3QgY2hhciAq c3RyLCBzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCSAgICAgICAiUGxlYXNlIHNlbmQgdGhlIG91dHB1 dCBvZiBsc3BjaSAtdnYsIHRoaXNcbiIKIAkgICAgICAgIm1lc3NhZ2UgKDB4JTA0eCwweCUwNHgs MHglMDR4LDB4JTA0eCksIHRoZVxuIgogCSAgICAgICAibWFudWZhY3R1cmVyIGFuZCBuYW1lIG9m IHNlcmlhbCBib2FyZCBvclxuIgotCSAgICAgICAibW9kZW0gYm9hcmQgdG8gcm1rK3NlcmlhbEBh cm0ubGludXgub3JnLnVrLlxuIiwKKwkgICAgICAgIm1vZGVtIGJvYXJkIHRvIDxsaW51eC1zZXJp YWxAdmdlci5rZXJuZWwub3JnPi5cbiIsCiAJICAgICAgIHBjaV9uYW1lKGRldiksIHN0ciwgZGV2 LT52ZW5kb3IsIGRldi0+ZGV2aWNlLAogCSAgICAgICBkZXYtPnN1YnN5c3RlbV92ZW5kb3IsIGRl di0+c3Vic3lzdGVtX2RldmljZSk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS90dHlfaW8u YyBiL2RyaXZlcnMvdHR5L3R0eV9pby5jCmluZGV4IDYxM2YwNmEuLmZhNTlmYmUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvdHR5L3R0eV9pby5jCisrKyBiL2RyaXZlcnMvdHR5L3R0eV9pby5jCkBAIC05 NDMsOCArOTQzLDggQEAgRVhQT1JUX1NZTUJPTChzdGFydF90dHkpOwogLyogV2UgbGltaXQgdHR5 IHRpbWUgdXBkYXRlIHZpc2liaWxpdHkgdG8gZXZlcnkgOCBzZWNvbmRzIG9yIHNvLiAqLwogc3Rh dGljIHZvaWQgdHR5X3VwZGF0ZV90aW1lKHN0cnVjdCB0aW1lc3BlYyAqdGltZSkKIHsKLQl1bnNp Z25lZCBsb25nIHNlYyA9IGdldF9zZWNvbmRzKCkgJiB+NzsKLQlpZiAoKGxvbmcpKHNlYyAtIHRp bWUtPnR2X3NlYykgPiAwKQorCXVuc2lnbmVkIGxvbmcgc2VjID0gZ2V0X3NlY29uZHMoKTsKKwlp ZiAoYWJzKHNlYyAtIHRpbWUtPnR2X3NlYykgJiB+NykKIAkJdGltZS0+dHZfc2VjID0gc2VjOwog fQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS90dHlfaW9jdGwuYyBiL2RyaXZlcnMvdHR5L3R0 eV9pb2N0bC5jCmluZGV4IDkzN2Y5MjcuLjE3NDAxMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdHR5 L3R0eV9pb2N0bC5jCisrKyBiL2RyaXZlcnMvdHR5L3R0eV9pb2N0bC5jCkBAIC0xNTQsMTEgKzE1 NCwxNyBAQCB2b2lkIHR0eV93YWl0X3VudGlsX3NlbnQoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwg bG9uZyB0aW1lb3V0KQogI2VuZGlmCiAJaWYgKCF0aW1lb3V0KQogCQl0aW1lb3V0ID0gTUFYX1ND SEVEVUxFX1RJTUVPVVQ7CisKIAlpZiAod2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQo dHR5LT53cml0ZV93YWl0LAotCQkJIXR0eV9jaGFyc19pbl9idWZmZXIodHR5KSwgdGltZW91dCkg Pj0gMCkgewotCQlpZiAodHR5LT5vcHMtPndhaXRfdW50aWxfc2VudCkKLQkJCXR0eS0+b3BzLT53 YWl0X3VudGlsX3NlbnQodHR5LCB0aW1lb3V0KTsKKwkJCSF0dHlfY2hhcnNfaW5fYnVmZmVyKHR0 eSksIHRpbWVvdXQpIDwgMCkgeworCQlyZXR1cm47CiAJfQorCisJaWYgKHRpbWVvdXQgPT0gTUFY X1NDSEVEVUxFX1RJTUVPVVQpCisJCXRpbWVvdXQgPSAwOworCisJaWYgKHR0eS0+b3BzLT53YWl0 X3VudGlsX3NlbnQpCisJCXR0eS0+b3BzLT53YWl0X3VudGlsX3NlbnQodHR5LCB0aW1lb3V0KTsK IH0KIEVYUE9SVF9TWU1CT0wodHR5X3dhaXRfdW50aWxfc2VudCk7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdHR5L3Z0L3Z0LmMgYi9kcml2ZXJzL3R0eS92dC92dC5jCmluZGV4IDYzMmRmNTRmLi5j NTE4MDNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3R0eS92dC92dC5jCisrKyBiL2RyaXZlcnMvdHR5 L3Z0L3Z0LmMKQEAgLTQ5OSw2ICs0OTksNyBAQCB2b2lkIGludmVydF9zY3JlZW4oc3RydWN0IHZj X2RhdGEgKnZjLCBpbnQgb2Zmc2V0LCBpbnQgY291bnQsIGludCB2aWV3ZWQpCiAjZW5kaWYKIAlp ZiAoRE9fVVBEQVRFKHZjKSkKIAkJZG9fdXBkYXRlX3JlZ2lvbih2YywgKHVuc2lnbmVkIGxvbmcp IHAsIGNvdW50KTsKKwlub3RpZnlfdXBkYXRlKHZjKTsKIH0KIAogLyogdXNlZCBieSBzZWxlY3Rp b246IGNvbXBsZW1lbnQgcG9pbnRlciBwb3NpdGlvbiAqLwpAQCAtNTE1LDYgKzUxNiw3IEBAIHZv aWQgY29tcGxlbWVudF9wb3Moc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgb2Zmc2V0KQogCQlzY3Jf d3JpdGV3KG9sZCwgc2NyZWVucG9zKHZjLCBvbGRfb2Zmc2V0LCAxKSk7CiAJCWlmIChET19VUERB VEUodmMpKQogCQkJdmMtPnZjX3N3LT5jb25fcHV0Yyh2Yywgb2xkLCBvbGR5LCBvbGR4KTsKKwkJ bm90aWZ5X3VwZGF0ZSh2Yyk7CiAJfQogCiAJb2xkX29mZnNldCA9IG9mZnNldDsKQEAgLTUzMiw4 ICs1MzQsOCBAQCB2b2lkIGNvbXBsZW1lbnRfcG9zKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IG9m ZnNldCkKIAkJCW9sZHkgPSAob2Zmc2V0ID4+IDEpIC8gdmMtPnZjX2NvbHM7CiAJCQl2Yy0+dmNf c3ctPmNvbl9wdXRjKHZjLCBuZXcsIG9sZHksIG9sZHgpOwogCQl9CisJCW5vdGlmeV91cGRhdGUo dmMpOwogCX0KLQogfQogCiBzdGF0aWMgdm9pZCBpbnNlcnRfY2hhcihzdHJ1Y3QgdmNfZGF0YSAq dmMsIHVuc2lnbmVkIGludCBucikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy1h Y20uYyBiL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYwppbmRleCBkMzhkODhlLi4zNjBkZGI1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmMKKysrIGIvZHJpdmVycy91 c2IvY2xhc3MvY2RjLWFjbS5jCkBAIC05MTEsNiArOTExLDcgQEAgc3RhdGljIGludCBhY21fcHJv YmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiAJdW5zaWduZWQgbG9uZyBxdWlya3M7CiAJ aW50IG51bV9yeF9idWY7CiAJaW50IGk7CisJdW5zaWduZWQgaW50IGVsZW5ndGggPSAwOwogCWlu dCBjb21iaW5lZF9pbnRlcmZhY2VzID0gMDsKIAogCS8qIG5vcm1hbCBxdWlya3MgKi8KQEAgLTk1 MCw5ICs5NTEsMTIgQEAgc3RhdGljIGludCBhY21fcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2Ug KmludGYsCiAJCQlkZXZfZXJyKCZpbnRmLT5kZXYsICJza2lwcGluZyBnYXJiYWdlXG4iKTsKIAkJ CWdvdG8gbmV4dF9kZXNjOwogCQl9CisJCWVsZW5ndGggPSBidWZmZXJbMF07CiAKIAkJc3dpdGNo IChidWZmZXJbMl0pIHsKIAkJY2FzZSBVU0JfQ0RDX1VOSU9OX1RZUEU6IC8qIHdlJ3ZlIGZvdW5k IGl0ICovCisJCQlpZiAoZWxlbmd0aCA8IHNpemVvZihzdHJ1Y3QgdXNiX2NkY191bmlvbl9kZXNj KSkKKwkJCQlnb3RvIG5leHRfZGVzYzsKIAkJCWlmICh1bmlvbl9oZWFkZXIpIHsKIAkJCQlkZXZf ZXJyKCZpbnRmLT5kZXYsICJNb3JlIHRoYW4gb25lICIKIAkJCQkJInVuaW9uIGRlc2NyaXB0b3Is IHNraXBwaW5nIC4uLlxuIik7CkBAIC05NjEsMzEgKzk2NSwzOCBAQCBzdGF0aWMgaW50IGFjbV9w cm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKIAkJCXVuaW9uX2hlYWRlciA9IChzdHJ1 Y3QgdXNiX2NkY191bmlvbl9kZXNjICopYnVmZmVyOwogCQkJYnJlYWs7CiAJCWNhc2UgVVNCX0NE Q19DT1VOVFJZX1RZUEU6IC8qIGV4cG9ydCB0aHJvdWdoIHN5c2ZzKi8KKwkJCWlmIChlbGVuZ3Ro IDwgc2l6ZW9mKHN0cnVjdCB1c2JfY2RjX2NvdW50cnlfZnVuY3Rpb25hbF9kZXNjKSkKKwkJCQln b3RvIG5leHRfZGVzYzsKIAkJCWNmZCA9IChzdHJ1Y3QgdXNiX2NkY19jb3VudHJ5X2Z1bmN0aW9u YWxfZGVzYyAqKWJ1ZmZlcjsKIAkJCWJyZWFrOwogCQljYXNlIFVTQl9DRENfSEVBREVSX1RZUEU6 IC8qIG1heWJlIGNoZWNrIHZlcnNpb24gKi8KIAkJCWJyZWFrOyAvKiBmb3Igbm93IHdlIGlnbm9y ZSBpdCAqLwogCQljYXNlIFVTQl9DRENfQUNNX1RZUEU6CisJCQlpZiAoZWxlbmd0aCA8IDQpCisJ CQkJZ290byBuZXh0X2Rlc2M7CiAJCQlhY19tYW5hZ2VtZW50X2Z1bmN0aW9uID0gYnVmZmVyWzNd OwogCQkJYnJlYWs7CiAJCWNhc2UgVVNCX0NEQ19DQUxMX01BTkFHRU1FTlRfVFlQRToKKwkJCWlm IChlbGVuZ3RoIDwgNSkKKwkJCQlnb3RvIG5leHRfZGVzYzsKIAkJCWNhbGxfbWFuYWdlbWVudF9m dW5jdGlvbiA9IGJ1ZmZlclszXTsKIAkJCWNhbGxfaW50ZXJmYWNlX251bSA9IGJ1ZmZlcls0XTsK IAkJCWlmICggKHF1aXJrcyAmIE5PVF9BX01PREVNKSA9PSAwICYmIChjYWxsX21hbmFnZW1lbnRf ZnVuY3Rpb24gJiAzKSAhPSAzKQogCQkJCWRldl9lcnIoJmludGYtPmRldiwgIlRoaXMgZGV2aWNl IGNhbm5vdCBkbyBjYWxscyBvbiBpdHMgb3duLiBJdCBpcyBub3QgYSBtb2RlbS5cbiIpOwogCQkJ YnJlYWs7CiAJCWRlZmF1bHQ6Ci0JCQkvKiB0aGVyZSBhcmUgTE9UUyBtb3JlIENEQyBkZXNjcmlw dG9ycyB0aGF0CisJCQkvKgorCQkJICogdGhlcmUgYXJlIExPVFMgbW9yZSBDREMgZGVzY3JpcHRv cnMgdGhhdAogCQkJICogY291bGQgbGVnaXRpbWF0ZWx5IGJlIGZvdW5kIGhlcmUuCiAJCQkgKi8K IAkJCWRldl9kYmcoJmludGYtPmRldiwgIklnbm9yaW5nIGRlc2NyaXB0b3I6ICIKLQkJCQkJInR5 cGUgJTAyeCwgbGVuZ3RoICVkXG4iLAotCQkJCQlidWZmZXJbMl0sIGJ1ZmZlclswXSk7CisJCQkJ CSJ0eXBlICUwMngsIGxlbmd0aCAldWRcbiIsCisJCQkJCWJ1ZmZlclsyXSwgZWxlbmd0aCk7CiAJ CQlicmVhazsKIAkJfQogbmV4dF9kZXNjOgotCQlidWZsZW4gLT0gYnVmZmVyWzBdOwotCQlidWZm ZXIgKz0gYnVmZmVyWzBdOworCQlidWZsZW4gLT0gZWxlbmd0aDsKKwkJYnVmZmVyICs9IGVsZW5n dGg7CiAJfQogCiAJaWYgKCF1bmlvbl9oZWFkZXIpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNi L2NvcmUvYnVmZmVyLmMgYi9kcml2ZXJzL3VzYi9jb3JlL2J1ZmZlci5jCmluZGV4IGIwNTg1ZTYu LjE5ZmE2OGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvYnVmZmVyLmMKKysrIGIvZHJp dmVycy91c2IvY29yZS9idWZmZXIuYwpAQCAtMjIsMTcgKzIyLDI1IEBACiAgKi8KIAogLyogRklY TUUgdHVuZSB0aGVzZSBiYXNlZCBvbiBwb29sIHN0YXRpc3RpY3MgLi4uICovCi1zdGF0aWMgY29u c3Qgc2l6ZV90CXBvb2xfbWF4W0hDRF9CVUZGRVJfUE9PTFNdID0gewotCS8qIHBsYXRmb3JtcyB3 aXRob3V0IGRtYS1mcmllbmRseSBjYWNoZXMgbWlnaHQgbmVlZCB0bwotCSAqIHByZXZlbnQgY2Fj aGVsaW5lIHNoYXJpbmcuLi4KLQkgKi8KLQkzMiwKLQkxMjgsCi0JNTEyLAotCVBBR0VfU0laRSAv IDIKLQkvKiBiaWdnZXIgLS0+IGFsbG9jYXRlIHBhZ2VzICovCitzdGF0aWMgc2l6ZV90IHBvb2xf bWF4W0hDRF9CVUZGRVJfUE9PTFNdID0geworCTMyLCAxMjgsIDUxMiwgMjA0OCwKIH07CiAKK3Zv aWQgX19pbml0IHVzYl9pbml0X3Bvb2xfbWF4KHZvaWQpCit7CisJLyoKKwkgKiBUaGUgcG9vbF9t YXggdmFsdWVzIG11c3QgbmV2ZXIgYmUgc21hbGxlciB0aGFuCisJICogQVJDSF9LTUFMTE9DX01J TkFMSUdOLgorCSAqLworCWlmIChBUkNIX0tNQUxMT0NfTUlOQUxJR04gPD0gMzIpCisJCTsJCQkv KiBPcmlnaW5hbCB2YWx1ZSBpcyBva2F5ICovCisJZWxzZSBpZiAoQVJDSF9LTUFMTE9DX01JTkFM SUdOIDw9IDY0KQorCQlwb29sX21heFswXSA9IDY0OworCWVsc2UgaWYgKEFSQ0hfS01BTExPQ19N SU5BTElHTiA8PSAxMjgpCisJCXBvb2xfbWF4WzBdID0gMDsJLyogRG9uJ3QgdXNlIHRoaXMgcG9v bCAqLworCWVsc2UKKwkJQlVJTERfQlVHKCk7CQkvKiBXZSBkb24ndCBhbGxvdyB0aGlzICovCit9 CiAKIC8qIFNFVFVQIHByaW1pdGl2ZXMgKi8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29y ZS9kZXZpby5jIGIvZHJpdmVycy91c2IvY29yZS9kZXZpby5jCmluZGV4IDQ5MjU3YjMuLjY0MzQw ZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvZGV2aW8uYworKysgYi9kcml2ZXJzL3Vz Yi9jb3JlL2RldmlvLmMKQEAgLTQwNiw2ICs0MDYsNyBAQCBzdGF0aWMgdm9pZCBhc3luY19jb21w bGV0ZWQoc3RydWN0IHVyYiAqdXJiKQogCWFzLT5zdGF0dXMgPSB1cmItPnN0YXR1czsKIAlzaWdu ciA9IGFzLT5zaWducjsKIAlpZiAoc2lnbnIpIHsKKwkJbWVtc2V0KCZzaW5mbywgMCwgc2l6ZW9m KHNpbmZvKSk7CiAJCXNpbmZvLnNpX3NpZ25vID0gYXMtPnNpZ25yOwogCQlzaW5mby5zaV9lcnJu byA9IGFzLT5zdGF0dXM7CiAJCXNpbmZvLnNpX2NvZGUgPSBTSV9BU1lOQ0lPOwpAQCAtMjAzMSw2 ICsyMDMyLDcgQEAgc3RhdGljIHZvaWQgdXNiZGV2X3JlbW92ZShzdHJ1Y3QgdXNiX2RldmljZSAq dWRldikKIAkJd2FrZV91cF9hbGwoJnBzLT53YWl0KTsKIAkJbGlzdF9kZWxfaW5pdCgmcHMtPmxp c3QpOwogCQlpZiAocHMtPmRpc2NzaWducikgeworCQkJbWVtc2V0KCZzaW5mbywgMCwgc2l6ZW9m KHNpbmZvKSk7CiAJCQlzaW5mby5zaV9zaWdubyA9IHBzLT5kaXNjc2lnbnI7CiAJCQlzaW5mby5z aV9lcnJubyA9IEVQSVBFOwogCQkJc2luZm8uc2lfY29kZSA9IFNJX0FTWU5DSU87CmRpZmYgLS1n aXQgYS9kcml2ZXJzL3VzYi9jb3JlL2RyaXZlci5jIGIvZHJpdmVycy91c2IvY29yZS9kcml2ZXIu YwppbmRleCBjYzEzYWJmLi5jMTA1YmEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2Ry aXZlci5jCisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvZHJpdmVyLmMKQEAgLTE2NjQsNiArMTY2NCwx OCBAQCBzdGF0aWMgaW50IGF1dG9zdXNwZW5kX2NoZWNrKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2 KQogCQlkZXZfZGJnKCZ1ZGV2LT5kZXYsICJyZW1vdGUgd2FrZXVwIG5lZWRlZCBmb3IgYXV0b3N1 c3BlbmRcbiIpOwogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQorCisJLyoKKwkgKiBJZiB0aGUg ZGV2aWNlIGlzIGEgZGlyZWN0IGNoaWxkIG9mIHRoZSByb290IGh1YiBhbmQgdGhlIEhDRAorCSAq IGRvZXNuJ3QgaGFuZGxlIHdha2V1cCByZXF1ZXN0cywgZG9uJ3QgYWxsb3cgYXV0b3N1c3BlbmQg d2hlbgorCSAqIHdha2V1cCBpcyBuZWVkZWQuCisJICovCisJaWYgKHcgJiYgdWRldi0+cGFyZW50 ID09IHVkZXYtPmJ1cy0+cm9vdF9odWIgJiYKKwkJCWJ1c190b19oY2QodWRldi0+YnVzKS0+Y2Fu dF9yZWN2X3dha2V1cHMpIHsKKwkJZGV2X2RiZygmdWRldi0+ZGV2LCAiSENEIGRvZXNuJ3QgaGFu ZGxlIHdha2V1cCByZXF1ZXN0c1xuIik7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwl9CisKIAl1 ZGV2LT5kb19yZW1vdGVfd2FrZXVwID0gdzsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL2NvcmUvaGNkLmMgYi9kcml2ZXJzL3VzYi9jb3JlL2hjZC5jCmluZGV4IGMwZWU1 MmEuLmViMmMzYmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvaGNkLmMKKysrIGIvZHJp dmVycy91c2IvY29yZS9oY2QuYwpAQCAtMTU0Miw2ICsxNTQyLDcgQEAgc3RhdGljIGludCB1bmxp bmsxKHN0cnVjdCB1c2JfaGNkICpoY2QsIHN0cnVjdCB1cmIgKnVyYiwgaW50IHN0YXR1cykKIGlu dCB1c2JfaGNkX3VubGlua191cmIgKHN0cnVjdCB1cmIgKnVyYiwgaW50IHN0YXR1cykKIHsKIAlz dHJ1Y3QgdXNiX2hjZAkJKmhjZDsKKwlzdHJ1Y3QgdXNiX2RldmljZQkqdWRldiA9IHVyYi0+ZGV2 OwogCWludAkJCXJldHZhbCA9IC1FSURSTTsKIAl1bnNpZ25lZCBsb25nCQlmbGFnczsKIApAQCAt MTU1MywyMCArMTU1NCwxOSBAQCBpbnQgdXNiX2hjZF91bmxpbmtfdXJiIChzdHJ1Y3QgdXJiICp1 cmIsIGludCBzdGF0dXMpCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmhjZF91cmJfdW5saW5rX2xvY2ss IGZsYWdzKTsKIAlpZiAoYXRvbWljX3JlYWQoJnVyYi0+dXNlX2NvdW50KSA+IDApIHsKIAkJcmV0 dmFsID0gMDsKLQkJdXNiX2dldF9kZXYodXJiLT5kZXYpOworCQl1c2JfZ2V0X2Rldih1ZGV2KTsK IAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaGNkX3VyYl91bmxpbmtfbG9jaywgZmxhZ3Mp OwogCWlmIChyZXR2YWwgPT0gMCkgewogCQloY2QgPSBidXNfdG9faGNkKHVyYi0+ZGV2LT5idXMp OwogCQlyZXR2YWwgPSB1bmxpbmsxKGhjZCwgdXJiLCBzdGF0dXMpOwotCQl1c2JfcHV0X2Rldih1 cmItPmRldik7CisJCWlmIChyZXR2YWwgPT0gMCkKKwkJCXJldHZhbCA9IC1FSU5QUk9HUkVTUzsK KwkJZWxzZSBpZiAocmV0dmFsICE9IC1FSURSTSAmJiByZXR2YWwgIT0gLUVCVVNZKQorCQkJZGV2 X2RiZygmdWRldi0+ZGV2LCAiaGNkX3VubGlua191cmIgJXAgZmFpbCAlZFxuIiwKKwkJCQkJdXJi LCByZXR2YWwpOworCQl1c2JfcHV0X2Rldih1ZGV2KTsKIAl9Ci0KLQlpZiAocmV0dmFsID09IDAp Ci0JCXJldHZhbCA9IC1FSU5QUk9HUkVTUzsKLQllbHNlIGlmIChyZXR2YWwgIT0gLUVJRFJNICYm IHJldHZhbCAhPSAtRUJVU1kpCi0JCWRldl9kYmcoJnVyYi0+ZGV2LT5kZXYsICJoY2RfdW5saW5r X3VyYiAlcCBmYWlsICVkXG4iLAotCQkJCXVyYiwgcmV0dmFsKTsKIAlyZXR1cm4gcmV0dmFsOwog fQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL3VzYi5jIGIvZHJpdmVycy91c2IvY29y ZS91c2IuYwppbmRleCA3M2NkOTAwLi45MDQ0ZWY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9j b3JlL3VzYi5jCisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvdXNiLmMKQEAgLTEwMTAsNiArMTAxMCw3 IEBAIHN0YXRpYyBpbnQgX19pbml0IHVzYl9pbml0KHZvaWQpCiAJCXByX2luZm8oIiVzOiBVU0Ig c3VwcG9ydCBkaXNhYmxlZFxuIiwgdXNiY29yZV9uYW1lKTsKIAkJcmV0dXJuIDA7CiAJfQorCXVz Yl9pbml0X3Bvb2xfbWF4KCk7CiAKIAlyZXR2YWwgPSB1c2JfZGVidWdmc19pbml0KCk7CiAJaWYg KHJldHZhbCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9pbm9kZS5jIGIvZHJpdmVy cy91c2IvZ2FkZ2V0L2lub2RlLmMKaW5kZXggNzEzODU0MC4uY2U3MjUzYiAxMDA2NDQKLS0tIGEv ZHJpdmVycy91c2IvZ2FkZ2V0L2lub2RlLmMKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2lub2Rl LmMKQEAgLTU3MCw2ICs1NzAsNyBAQCBzdGF0aWMgc3NpemVfdCBlcF9haW9fcmVhZF9yZXRyeShz dHJ1Y3Qga2lvY2IgKmlvY2IpCiAJCQlicmVhazsKIAl9CiAJa2ZyZWUocHJpdi0+YnVmKTsKKwlr ZnJlZShwcml2LT5pdik7CiAJa2ZyZWUocHJpdik7CiAJcmV0dXJuIGxlbjsKIH0KQEAgLTU5MSw2 ICs1OTIsNyBAQCBzdGF0aWMgdm9pZCBlcF9haW9fY29tcGxldGUoc3RydWN0IHVzYl9lcCAqZXAs IHN0cnVjdCB1c2JfcmVxdWVzdCAqcmVxKQogCSAqLwogCWlmIChwcml2LT5pdiA9PSBOVUxMIHx8 IHVubGlrZWx5KHJlcS0+YWN0dWFsID09IDApKSB7CiAJCWtmcmVlKHJlcS0+YnVmKTsKKwkJa2Zy ZWUocHJpdi0+aXYpOwogCQlrZnJlZShwcml2KTsKIAkJaW9jYi0+cHJpdmF0ZSA9IE5VTEw7CiAJ CS8qIGFpb19jb21wbGV0ZSgpIHJlcG9ydHMgYnl0ZXMtdHJhbnNmZXJyZWQgX2FuZF8gZmF1bHRz ICovCkBAIC02MjYsNyArNjI4LDcgQEAgZXBfYWlvX3J3dGFpbCgKIAlzdHJ1Y3QgdXNiX3JlcXVl c3QJKnJlcTsKIAlzc2l6ZV90CQkJdmFsdWU7CiAKLQlwcml2ID0ga21hbGxvYyhzaXplb2YgKnBy aXYsIEdGUF9LRVJORUwpOworCXByaXYgPSBremFsbG9jKHNpemVvZiAqcHJpdiwgR0ZQX0tFUk5F TCk7CiAJaWYgKCFwcml2KSB7CiAJCXZhbHVlID0gLUVOT01FTTsKIGZhaWw6CkBAIC02MzQsMTEg KzYzNiwxOSBAQCBmYWlsOgogCQlyZXR1cm4gdmFsdWU7CiAJfQogCWlvY2ItPnByaXZhdGUgPSBw cml2OwotCXByaXYtPml2ID0gaXY7CisJaWYgKGl2KSB7CisJCXByaXYtPml2ID0ga21lbWR1cChp diwgbnJfc2VncyAqIHNpemVvZihzdHJ1Y3QgaW92ZWMpLAorCQkJCSAgIEdGUF9LRVJORUwpOwor CQlpZiAoIXByaXYtPml2KSB7CisJCQlrZnJlZShwcml2KTsKKwkJCWdvdG8gZmFpbDsKKwkJfQor CX0KIAlwcml2LT5ucl9zZWdzID0gbnJfc2VnczsKIAogCXZhbHVlID0gZ2V0X3JlYWR5X2VwKGlv Y2ItPmtpX2ZpbHAtPmZfZmxhZ3MsIGVwZGF0YSk7CiAJaWYgKHVubGlrZWx5KHZhbHVlIDwgMCkp IHsKKwkJa2ZyZWUocHJpdi0+aXYpOwogCQlrZnJlZShwcml2KTsKIAkJZ290byBmYWlsOwogCX0K QEAgLTY3Miw2ICs2ODIsNyBAQCBmYWlsOgogCW11dGV4X3VubG9jaygmZXBkYXRhLT5sb2NrKTsK IAogCWlmICh1bmxpa2VseSh2YWx1ZSkpIHsKKwkJa2ZyZWUocHJpdi0+aXYpOwogCQlrZnJlZShw cml2KTsKIAkJcHV0X2VwKGVwZGF0YSk7CiAJfSBlbHNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Vz Yi9ob3N0L2lzcDE3NjAtaGNkLmMgYi9kcml2ZXJzL3VzYi9ob3N0L2lzcDE3NjAtaGNkLmMKaW5k ZXggMjdkZmFiOC4uYTRjMjM2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9pc3AxNzYw LWhjZC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QvaXNwMTc2MC1oY2QuYwpAQCAtMjI1NCw2ICsy MjU0LDkgQEAgc3RydWN0IHVzYl9oY2QgKmlzcDE3NjBfcmVnaXN0ZXIocGh5c19hZGRyX3QgcmVz X3N0YXJ0LCByZXNvdXJjZV9zaXplX3QgcmVzX2xlbiwKIAloY2QtPnJzcmNfc3RhcnQgPSByZXNf c3RhcnQ7CiAJaGNkLT5yc3JjX2xlbiA9IHJlc19sZW47CiAKKwkvKiBUaGlzIGRyaXZlciBkb2Vz bid0IHN1cHBvcnQgd2FrZXVwIHJlcXVlc3RzICovCisJaGNkLT5jYW50X3JlY3Zfd2FrZXVwcyA9 IDE7CisKIAlyZXQgPSB1c2JfYWRkX2hjZChoY2QsIGlycSwgaXJxZmxhZ3MpOwogCWlmIChyZXQp CiAJCWdvdG8gZXJyX3VubWFwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLWh1 Yi5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLWh1Yi5jCmluZGV4IGE4YmJlZWQuLmMxZmE5MmUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1odWIuYworKysgYi9kcml2ZXJzL3Vz Yi9ob3N0L3hoY2ktaHViLmMKQEAgLTM4NSw2ICszODUsMTAgQEAgc3RhdGljIHZvaWQgeGhjaV9j bGVhcl9wb3J0X2NoYW5nZV9iaXQoc3RydWN0IHhoY2lfaGNkICp4aGNpLCB1MTYgd1ZhbHVlLAog CQlzdGF0dXMgPSBQT1JUX1BMQzsKIAkJcG9ydF9jaGFuZ2VfYml0ID0gImxpbmsgc3RhdGUiOwog CQlicmVhazsKKwljYXNlIFVTQl9QT1JUX0ZFQVRfQ19QT1JUX0NPTkZJR19FUlJPUjoKKwkJc3Rh dHVzID0gUE9SVF9DRUM7CisJCXBvcnRfY2hhbmdlX2JpdCA9ICJjb25maWcgZXJyb3IiOworCQli cmVhazsKIAlkZWZhdWx0OgogCQkvKiBTaG91bGQgbmV2ZXIgaGFwcGVuICovCiAJCXJldHVybjsK QEAgLTU5Miw2ICs1OTYsOCBAQCBpbnQgeGhjaV9odWJfY29udHJvbChzdHJ1Y3QgdXNiX2hjZCAq aGNkLCB1MTYgdHlwZVJlcSwgdTE2IHdWYWx1ZSwKIAkJCQlzdGF0dXMgfD0gVVNCX1BPUlRfU1RB VF9DX0xJTktfU1RBVEUgPDwgMTY7CiAJCQlpZiAoKHRlbXAgJiBQT1JUX1dSQykpCiAJCQkJc3Rh dHVzIHw9IFVTQl9QT1JUX1NUQVRfQ19CSF9SRVNFVCA8PCAxNjsKKwkJCWlmICgodGVtcCAmIFBP UlRfQ0VDKSkKKwkJCQlzdGF0dXMgfD0gVVNCX1BPUlRfU1RBVF9DX0NPTkZJR19FUlJPUiA8PCAx NjsKIAkJfQogCiAJCWlmIChoY2QtPnNwZWVkICE9IEhDRF9VU0IzKSB7CkBAIC04NjgsNiArODc0 LDcgQEAgaW50IHhoY2lfaHViX2NvbnRyb2woc3RydWN0IHVzYl9oY2QgKmhjZCwgdTE2IHR5cGVS ZXEsIHUxNiB3VmFsdWUsCiAJCWNhc2UgVVNCX1BPUlRfRkVBVF9DX09WRVJfQ1VSUkVOVDoKIAkJ Y2FzZSBVU0JfUE9SVF9GRUFUX0NfRU5BQkxFOgogCQljYXNlIFVTQl9QT1JUX0ZFQVRfQ19QT1JU X0xJTktfU1RBVEU6CisJCWNhc2UgVVNCX1BPUlRfRkVBVF9DX1BPUlRfQ09ORklHX0VSUk9SOgog CQkJeGhjaV9jbGVhcl9wb3J0X2NoYW5nZV9iaXQoeGhjaSwgd1ZhbHVlLCB3SW5kZXgsCiAJCQkJ CXBvcnRfYXJyYXlbd0luZGV4XSwgdGVtcCk7CiAJCQlicmVhazsKQEAgLTkxNiw3ICs5MjMsNyBA QCBpbnQgeGhjaV9odWJfc3RhdHVzX2RhdGEoc3RydWN0IHVzYl9oY2QgKmhjZCwgY2hhciAqYnVm KQogCW1lbXNldChidWYsIDAsIHJldHZhbCk7CiAJc3RhdHVzID0gMDsKIAotCW1hc2sgPSBQT1JU X0NTQyB8IFBPUlRfUEVDIHwgUE9SVF9PQ0MgfCBQT1JUX1BMQyB8IFBPUlRfV1JDOworCW1hc2sg PSBQT1JUX0NTQyB8IFBPUlRfUEVDIHwgUE9SVF9PQ0MgfCBQT1JUX1BMQyB8IFBPUlRfV1JDIHwg UE9SVF9DRUM7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmeGhjaS0+bG9jaywgZmxhZ3MpOwogCS8q IEZvciBlYWNoIHBvcnQsIGRpZCBhbnl0aGluZyBjaGFuZ2U/ICBJZiBzbywgc2V0IHRoYXQgYml0 IGluIGJ1Zi4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYyBiL2Ry aXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYwppbmRleCBhNDY0ZGJjLi5hMzBmOWU1IDEwMDY0NAot LS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC94 aGNpLXBjaS5jCkBAIC0zNiw2ICszNiw5IEBACiAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRF TF9MWU5YUE9JTlRfWEhDSQkweDhjMzEKICNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9MWU5Y UE9JTlRfTFBfWEhDSQkweDljMzEKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9DSEVSUllW SUVXX1hIQ0kJCTB4MjJiNQorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1NVTlJJU0VQT0lO VF9IX1hIQ0kJCTB4YTEyZgorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1NVTlJJU0VQT0lO VF9MUF9YSENJCTB4OWQyZgogCiBzdGF0aWMgY29uc3QgY2hhciBoY2RfbmFtZVtdID0gInhoY2lf aGNkIjsKIApAQCAtMTAyLDYgKzEwNSw4IEBAIHN0YXRpYyB2b2lkIHhoY2lfcGNpX3F1aXJrcyhz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB4aGNpX2hjZCAqeGhjaSkKIAlpZiAocGRldi0+dmVu ZG9yID09IFBDSV9WRU5ET1JfSURfQU1EKQogCQl4aGNpLT5xdWlya3MgfD0gWEhDSV9UUlVTVF9U WF9MRU5HVEg7CiAKKwlpZiAocGRldi0+dmVuZG9yID09IFBDSV9WRU5ET1JfSURfSU5URUwpCisJ CXhoY2ktPnF1aXJrcyB8PSBYSENJX0FWT0lEX0JFSTsKIAlpZiAocGRldi0+dmVuZG9yID09IFBD SV9WRU5ET1JfSURfSU5URUwgJiYKIAkJCXBkZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX0lO VEVMX1BBTlRIRVJQT0lOVF9YSENJKSB7CiAJCXhoY2ktPnF1aXJrcyB8PSBYSENJX0VQX0xJTUlU X1FVSVJLOwpAQCAtMTE2LDcgKzEyMSwxMiBAQCBzdGF0aWMgdm9pZCB4aGNpX3BjaV9xdWlya3Mo c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgeGhjaV9oY2QgKnhoY2kpCiAJCSAqIFBQVCBjaGlw c2V0cy4KIAkJICovCiAJCXhoY2ktPnF1aXJrcyB8PSBYSENJX1NQVVJJT1VTX1JFQk9PVDsKLQkJ eGhjaS0+cXVpcmtzIHw9IFhIQ0lfQVZPSURfQkVJOworCX0KKwlpZiAocGRldi0+dmVuZG9yID09 IFBDSV9WRU5ET1JfSURfSU5URUwgJiYKKwkJKHBkZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lE X0lOVEVMX1NVTlJJU0VQT0lOVF9MUF9YSENJIHx8CisJCSBwZGV2LT5kZXZpY2UgPT0gUENJX0RF VklDRV9JRF9JTlRFTF9TVU5SSVNFUE9JTlRfSF9YSENJIHx8CisJCSBwZGV2LT5kZXZpY2UgPT0g UENJX0RFVklDRV9JRF9JTlRFTF9DSEVSUllWSUVXX1hIQ0kpKSB7CisJCXhoY2ktPnF1aXJrcyB8 PSBYSENJX1BNRV9TVFVDS19RVUlSSzsKIAl9CiAJaWYgKHBkZXYtPnZlbmRvciA9PSBQQ0lfVkVO RE9SX0lEX0VUUk9OICYmCiAJCQlwZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9BU1JPQ0tf UDY3KSB7CkBAIC0xMjgsNiArMTM4LDIxIEBAIHN0YXRpYyB2b2lkIHhoY2lfcGNpX3F1aXJrcyhz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB4aGNpX2hjZCAqeGhjaSkKIAkJeGhjaS0+cXVpcmtz IHw9IFhIQ0lfUkVTRVRfT05fUkVTVU1FOwogfQogCisvKgorICogTWFrZSBzdXJlIFBNRSB3b3Jr cyBvbiBzb21lIEludGVsIHhIQ0kgY29udHJvbGxlcnMgYnkgd3JpdGluZyAxIHRvIGNsZWFyCisg KiB0aGUgSW50ZXJuYWwgUE1FIGZsYWcgYml0IGluIHZlbmRvciBzcGVjaWZpYyBQTUNUUkwgcmVn aXN0ZXIgYXQgb2Zmc2V0IDB4ODBhNAorICovCitzdGF0aWMgdm9pZCB4aGNpX3BtZV9xdWlyayhz dHJ1Y3QgeGhjaV9oY2QgKnhoY2kpCit7CisJdTMyIHZhbDsKKwl2b2lkIF9faW9tZW0gKnJlZzsK KworCXJlZyA9ICh2b2lkIF9faW9tZW0gKikgeGhjaS0+Y2FwX3JlZ3MgKyAweDgwYTQ7CisJdmFs ID0gcmVhZGwocmVnKTsKKwl3cml0ZWwodmFsIHwgQklUKDI4KSwgcmVnKTsKKwlyZWFkbChyZWcp OworfQorCiAvKiBjYWxsZWQgZHVyaW5nIHByb2JlKCkgYWZ0ZXIgY2hpcCByZXNldCBjb21wbGV0 ZXMgKi8KIHN0YXRpYyBpbnQgeGhjaV9wY2lfc2V0dXAoc3RydWN0IHVzYl9oY2QgKmhjZCkKIHsK QEAgLTIzNSw2ICsyNjAsOSBAQCBzdGF0aWMgaW50IHhoY2lfcGNpX3N1c3BlbmQoc3RydWN0IHVz Yl9oY2QgKmhjZCwgYm9vbCBkb193YWtldXApCiAJCQl4aGNpLT5zaGFyZWRfaGNkLT5zdGF0ZSAh PSBIQ19TVEFURV9TVVNQRU5ERUQpCiAJCXJldHVybiAtRUlOVkFMOwogCisJaWYgKHhoY2ktPnF1 aXJrcyAmIFhIQ0lfUE1FX1NUVUNLX1FVSVJLKQorCQl4aGNpX3BtZV9xdWlyayh4aGNpKTsKKwog CXJldHZhbCA9IHhoY2lfc3VzcGVuZCh4aGNpLCBkb193YWtldXApOwogCiAJcmV0dXJuIHJldHZh bDsKQEAgLTI2NSw2ICsyOTMsOSBAQCBzdGF0aWMgaW50IHhoY2lfcGNpX3Jlc3VtZShzdHJ1Y3Qg dXNiX2hjZCAqaGNkLCBib29sIGhpYmVybmF0ZWQpCiAJaWYgKHVzYl9pc19pbnRlbF9zd2l0Y2hh YmxlX3hoY2kocGRldikpCiAJCXVzYl9lbmFibGVfeGhjaV9wb3J0cyhwZGV2KTsKIAorCWlmICh4 aGNpLT5xdWlya3MgJiBYSENJX1BNRV9TVFVDS19RVUlSSykKKwkJeGhjaV9wbWVfcXVpcmsoeGhj aSk7CisKIAlyZXR2YWwgPSB4aGNpX3Jlc3VtZSh4aGNpLCBoaWJlcm5hdGVkKTsKIAlyZXR1cm4g cmV0dmFsOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYyBiL2Ry aXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMKaW5kZXggMzc1NTI3NC4uMjVlOWViNCAxMDA2NDQK LS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0 L3hoY2ktcmluZy5jCkBAIC0xOTgwLDcgKzE5ODAsNyBAQCBzdGF0aWMgaW50IHByb2Nlc3NfY3Ry bF90ZChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksIHN0cnVjdCB4aGNpX3RkICp0ZCwKIAlpZiAoZXZl bnRfdHJiICE9IGVwX3JpbmctPmRlcXVldWUpIHsKIAkJLyogVGhlIGV2ZW50IHdhcyBmb3IgdGhl IHN0YXR1cyBzdGFnZSAqLwogCQlpZiAoZXZlbnRfdHJiID09IHRkLT5sYXN0X3RyYikgewotCQkJ aWYgKHRkLT51cmItPmFjdHVhbF9sZW5ndGggIT0gMCkgeworCQkJaWYgKHRkLT51cmJfbGVuZ3Ro X3NldCkgewogCQkJCS8qIERvbid0IG92ZXJ3cml0ZSBhIHByZXZpb3VzbHkgc2V0IGVycm9yIGNv ZGUKIAkJCQkgKi8KIAkJCQlpZiAoKCpzdGF0dXMgPT0gLUVJTlBST0dSRVNTIHx8ICpzdGF0dXMg PT0gMCkgJiYKQEAgLTE5OTQsNyArMTk5NCwxMyBAQCBzdGF0aWMgaW50IHByb2Nlc3NfY3RybF90 ZChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksIHN0cnVjdCB4aGNpX3RkICp0ZCwKIAkJCQkJdGQtPnVy Yi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aDsKIAkJCX0KIAkJfSBlbHNlIHsKLQkJLyogTWF5YmUg dGhlIGV2ZW50IHdhcyBmb3IgdGhlIGRhdGEgc3RhZ2U/ICovCisJCQkvKgorCQkJICogTWF5YmUg dGhlIGV2ZW50IHdhcyBmb3IgdGhlIGRhdGEgc3RhZ2U/IElmIHNvLCB1cGRhdGUKKwkJCSAqIGFs cmVhZHkgdGhlIGFjdHVhbF9sZW5ndGggb2YgdGhlIFVSQiBhbmQgZmxhZyBpdCBhcworCQkJICog c2V0LCBzbyB0aGF0IGl0IGlzIG5vdCBvdmVyd3JpdHRlbiBpbiB0aGUgZXZlbnQgZm9yCisJCQkg KiB0aGUgbGFzdCBUUkIuCisJCQkgKi8KKwkJCXRkLT51cmJfbGVuZ3RoX3NldCA9IHRydWU7CiAJ CQl0ZC0+dXJiLT5hY3R1YWxfbGVuZ3RoID0KIAkJCQl0ZC0+dXJiLT50cmFuc2Zlcl9idWZmZXJf bGVuZ3RoIC0KIAkJCQlFVkVOVF9UUkJfTEVOKGxlMzJfdG9fY3B1KGV2ZW50LT50cmFuc2Zlcl9s ZW4pKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5oIGIvZHJpdmVycy91c2Iv aG9zdC94aGNpLmgKaW5kZXggMjA5MGEwMy4uZWZiZGY4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy91 c2IvaG9zdC94aGNpLmgKKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLmgKQEAgLTEsMyArMSw0 IEBACisKIC8qCiAgKiB4SENJIGhvc3QgY29udHJvbGxlciBkcml2ZXIKICAqCkBAIC04OCw5ICs4 OSwxMCBAQCBzdHJ1Y3QgeGhjaV9jYXBfcmVncyB7CiAjZGVmaW5lIEhDU19JU1QocCkJCSgoKHAp ID4+IDApICYgMHhmKQogLyogYml0cyA0OjcsIG1heCBudW1iZXIgb2YgRXZlbnQgUmluZyBzZWdt ZW50cyAqLwogI2RlZmluZSBIQ1NfRVJTVF9NQVgocCkJCSgoKHApID4+IDQpICYgMHhmKQorLyog Yml0cyAyMToyNSBIaSA1IGJpdHMgb2YgU2NyYXRjaHBhZCBidWZmZXJzIFNXIG11c3QgYWxsb2Nh dGUgZm9yIHRoZSBIVyAqLwogLyogYml0IDI2IFNjcmF0Y2hwYWQgcmVzdG9yZSAtIGZvciBzYXZl L3Jlc3RvcmUgSFcgc3RhdGUgLSBub3QgdXNlZCB5ZXQgKi8KLS8qIGJpdHMgMjc6MzEgbnVtYmVy IG9mIFNjcmF0Y2hwYWQgYnVmZmVycyBTVyBtdXN0IGFsbG9jYXRlIGZvciB0aGUgSFcgKi8KLSNk ZWZpbmUgSENTX01BWF9TQ1JBVENIUEFEKHApICAgKCgocCkgPj4gMjcpICYgMHgxZikKKy8qIGJp dHMgMjc6MzEgTG8gNSBiaXRzIG9mIFNjcmF0Y2hwYWQgYnVmZmVycyBTVyBtdXN0IGFsbG9jYXRl IGZvciB0aGUgSFcgKi8KKyNkZWZpbmUgSENTX01BWF9TQ1JBVENIUEFEKHApICAgKCgoKHApID4+ IDE2KSAmIDB4M2UwKSB8ICgoKHApID4+IDI3KSAmIDB4MWYpKQogCiAvKiBIQ1NQQVJBTVMzIC0g aGNzX3BhcmFtczMgLSBiaXRtYXNrcyAqLwogLyogYml0cyAwOjcsIE1heCBVMSB0byBVMCBsYXRl bmN5IGZvciB0aGUgcm9vdGh1YiBwb3J0cyAqLwpAQCAtMTI1NSw2ICsxMjU3LDggQEAgc3RydWN0 IHhoY2lfdGQgewogCXN0cnVjdCB4aGNpX3NlZ21lbnQJKnN0YXJ0X3NlZzsKIAl1bmlvbiB4aGNp X3RyYgkJKmZpcnN0X3RyYjsKIAl1bmlvbiB4aGNpX3RyYgkJKmxhc3RfdHJiOworCS8qIGFjdHVh bF9sZW5ndGggb2YgdGhlIFVSQiBoYXMgYWxyZWFkeSBiZWVuIHNldCAqLworCWJvb2wJCQl1cmJf bGVuZ3RoX3NldDsKIH07CiAKIC8qIHhIQ0kgY29tbWFuZCBkZWZhdWx0IHRpbWVvdXQgdmFsdWUg Ki8KQEAgLTE0OTMsNiArMTQ5Nyw3IEBAIHN0cnVjdCB4aGNpX2hjZCB7CiAjZGVmaW5lIFhIQ0lf QVZPSURfQkVJCQkoMSA8PCAxNSkKICNkZWZpbmUgWEhDSV9TTE9XX1NVU1BFTkQJKDEgPDwgMTcp CiAjZGVmaW5lIFhIQ0lfU1BVUklPVVNfV0FLRVVQCSgxIDw8IDE4KQorI2RlZmluZSBYSENJX1BN RV9TVFVDS19RVUlSSwkoMSA8PCAyMCkKIAl1bnNpZ25lZCBpbnQJCW51bV9hY3RpdmVfZXBzOwog CXVuc2lnbmVkIGludAkJbGltaXRfYWN0aXZlX2VwczsKIAkvKiBUaGVyZSBhcmUgdHdvIHJvb3Ro dWJzIHRvIGtlZXAgdHJhY2sgb2YgYnVzIHN1c3BlbmQgaW5mbyBmb3IgKi8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnIGIvZHJpdmVycy91c2Ivc2VyaWFsL0tjb25maWcK aW5kZXggNjc3ZjU3Ny4uMTg4OGRhN2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9L Y29uZmlnCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnCkBAIC01NzgsMTAgKzU3OCwx MCBAQCBjb25maWcgVVNCX1NFUklBTF9DWUJFUkpBQ0sKIAkgIElmIHVuc3VyZSwgc2F5IE4uCiAK IGNvbmZpZyBVU0JfU0VSSUFMX1hJUkNPTQotCXRyaXN0YXRlICJVU0IgWGlyY29tIC8gRW50cmVn cmEgU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlciIKKwl0cmlzdGF0ZSAiVVNCIFhpcmNvbSAvIEVu dHJlZ2EgU2luZ2xlIFBvcnQgU2VyaWFsIERyaXZlciIKIAlzZWxlY3QgVVNCX0VaVVNCCiAJaGVs cAotCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgYSBYaXJjb20gb3IgRW50cmVncmEg c2luZ2xlIHBvcnQgVVNCIHRvCisJICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBhIFhp cmNvbSBvciBFbnRyZWdhIHNpbmdsZSBwb3J0IFVTQiB0bwogCSAgc2VyaWFsIGNvbnZlcnRlciBk ZXZpY2UuICBUaGlzIGRyaXZlciBtYWtlcyB1c2Ugb2YgZmlybXdhcmUKIAkgIGRldmVsb3BlZCBm cm9tIHNjcmF0Y2ggYnkgQnJpYW4gV2FybmVyLgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9z ZXJpYWwvYnVzLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvYnVzLmMKaW5kZXggN2Y1NDdkYy4uYThk Yzc5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2J1cy5jCisrKyBiL2RyaXZlcnMv dXNiL3NlcmlhbC9idXMuYwpAQCAtNTIsNiArNTIsNyBAQCBzdGF0aWMgaW50IHVzYl9zZXJpYWxf ZGV2aWNlX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgdXNiX3NlcmlhbF9k cml2ZXIgKmRyaXZlcjsKIAlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0OworCXN0cnVjdCBk ZXZpY2UgKnR0eV9kZXY7CiAJaW50IHJldHZhbCA9IDA7CiAJaW50IG1pbm9yOwogCkBAIC03Mywx MiArNzQsMjAgQEAgc3RhdGljIGludCB1c2Jfc2VyaWFsX2RldmljZV9wcm9iZShzdHJ1Y3QgZGV2 aWNlICpkZXYpCiAJcmV0dmFsID0gZGV2aWNlX2NyZWF0ZV9maWxlKGRldiwgJmRldl9hdHRyX3Bv cnRfbnVtYmVyKTsKIAlpZiAocmV0dmFsKSB7CiAJCWlmIChkcml2ZXItPnBvcnRfcmVtb3ZlKQot CQkJcmV0dmFsID0gZHJpdmVyLT5wb3J0X3JlbW92ZShwb3J0KTsKKwkJCWRyaXZlci0+cG9ydF9y ZW1vdmUocG9ydCk7CiAJCWdvdG8gZXhpdDsKIAl9CiAKIAltaW5vciA9IHBvcnQtPm51bWJlcjsK LQl0dHlfcmVnaXN0ZXJfZGV2aWNlKHVzYl9zZXJpYWxfdHR5X2RyaXZlciwgbWlub3IsIGRldik7 CisJdHR5X2RldiA9IHR0eV9yZWdpc3Rlcl9kZXZpY2UodXNiX3NlcmlhbF90dHlfZHJpdmVyLCBt aW5vciwgZGV2KTsKKwlpZiAoSVNfRVJSKHR0eV9kZXYpKSB7CisJCXJldHZhbCA9IFBUUl9FUlIo dHR5X2Rldik7CisJCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICZkZXZfYXR0cl9wb3J0X251bWJl cik7CisJCWlmIChkcml2ZXItPnBvcnRfcmVtb3ZlKQorCQkJZHJpdmVyLT5wb3J0X3JlbW92ZShw b3J0KTsKKwkJZ290byBleGl0OworCX0KKwogCWRldl9pbmZvKCZwb3J0LT5zZXJpYWwtPmRldi0+ ZGV2LAogCQkgIiVzIGNvbnZlcnRlciBub3cgYXR0YWNoZWQgdG8gdHR5VVNCJWRcbiIsCiAJCSBk cml2ZXItPmRlc2NyaXB0aW9uLCBtaW5vcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJp YWwvY3AyMTB4LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMKaW5kZXggZTc5NWE0Yy4u N2YzMmM3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2NwMjEweC5jCisrKyBiL2Ry aXZlcnMvdXNiL3NlcmlhbC9jcDIxMHguYwpAQCAtNjMsNiArNjMsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVbXSA9IHsKIAl7IFVTQl9ERVZJQ0UoMHgwODQ2 LCAweDExMDApIH0sIC8qIE5ldEdlYXIgTWFuYWdlZCBTd2l0Y2ggTTQxMDAgc2VyaWVzLCBNNTMw MCBzZXJpZXMsIE03MTAwIHNlcmllcyAqLwogCXsgVVNCX0RFVklDRSgweDA4ZTYsIDB4NTUwMSkg fSwgLyogR2VtYWx0byBQcm94LVBVL0NVIGNvbnRhY3RsZXNzIHNtYXJ0Y2FyZCByZWFkZXIgKi8K IAl7IFVTQl9ERVZJQ0UoMHgwOEZELCAweDAwMEEpIH0sIC8qIERpZ2lhbnN3ZXIgQS9TICwgWmln QmVlLzgwMi4xNS40IE1BQyBEZXZpY2UgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwOTA4LCAweDAxRkYp IH0sIC8qIFNpZW1lbnMgUlVHR0VEQ09NIFVTQiBTZXJpYWwgQ29uc29sZSAqLwogCXsgVVNCX0RF VklDRSgweDBCRUQsIDB4MTEwMCkgfSwgLyogTUVJIChUTSkgQ2FzaGZsb3ctU0MgQmlsbC9Wb3Vj aGVyIEFjY2VwdG9yICovCiAJeyBVU0JfREVWSUNFKDB4MEJFRCwgMHgxMTAxKSB9LCAvKiBNRUkg c2VyaWVzIDIwMDAgQ29tYm8gQWNjZXB0b3IgKi8KIAl7IFVTQl9ERVZJQ0UoMHgwRkNGLCAweDEw MDMpIH0sIC8qIER5bmFzdHJlYW0gQU5UIGRldmVsb3BtZW50IGJvYXJkICovCkBAIC0xNTIsNiAr MTUzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlW10gPSB7 CiAJeyBVU0JfREVWSUNFKDB4MTY2QSwgMHgwMzA1KSB9LCAvKiBDbGlwc2FsIEMtNTAwMENUMiBD LUJ1cyBTcGVjdHJ1bSBDb2xvdXIgVG91Y2hzY3JlZW4gKi8KIAl7IFVTQl9ERVZJQ0UoMHgxNjZB LCAweDA0MDEpIH0sIC8qIENsaXBzYWwgTDUxeHggQy1CdXMgQXJjaGl0ZWN0dXJhbCBEaW1tZXIg Ki8KIAl7IFVTQl9ERVZJQ0UoMHgxNjZBLCAweDAxMDEpIH0sIC8qIENsaXBzYWwgNTU2MDg4NCBD LUJ1cyBNdWx0aS1yb29tIEF1ZGlvIE1hdHJpeCBTd2l0Y2hlciAqLworCXsgVVNCX0RFVklDRSgw eDE2QzAsIDB4MDlCMCkgfSwgLyogTHVuYXRpY28gU2VsZXRlayAqLworCXsgVVNCX0RFVklDRSgw eDE2QzAsIDB4MDlCMSkgfSwgLyogTHVuYXRpY28gU2VsZXRlayAqLwogCXsgVVNCX0RFVklDRSgw eDE2RDYsIDB4MDAwMSkgfSwgLyogSmFibG90cm9uIHNlcmlhbCBpbnRlcmZhY2UgKi8KIAl7IFVT Ql9ERVZJQ0UoMHgxNkRDLCAweDAwMTApIH0sIC8qIFctSUUtTkUtUiBQbGVpbiAmIEJhdXMgR21i SCBQTDUxMiBQb3dlciBTdXBwbHkgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxNkRDLCAweDAwMTEpIH0s IC8qIFctSUUtTkUtUiBQbGVpbiAmIEJhdXMgR21iSCBSQ00gUmVtb3RlIENvbnRyb2wgZm9yIE1B UkFUT04gUG93ZXIgU3VwcGx5ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRk aV9zaW8uYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jCmluZGV4IGY2YTYyMDUuLmUx M2ViYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jCisrKyBiL2Ry aXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jCkBAIC02MjgsNiArNjI4LDcgQEAgc3RhdGljIHN0 cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJpbmVkIFtdID0gewogCQkuZHJpdmVyX2lu Zm8gPSAoa2VybmVsX3Vsb25nX3QpJmZ0ZGlfanRhZ19xdWlyayB9LAogCXsgVVNCX0RFVklDRShG VERJX1ZJRCwgRlRESV9OVF9PUklPTkxYTV9QSUQpLAogCQkuZHJpdmVyX2luZm8gPSAoa2VybmVs X3Vsb25nX3QpJmZ0ZGlfanRhZ19xdWlyayB9LAorCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRE SV9TWU5BUFNFX1NTMjAwX1BJRCkgfSwKIAkvKgogCSAqIEVMViBkZXZpY2VzOgogCSAqLwpAQCAt ODIzLDYgKzgyNCw4IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9jb21i aW5lZCBbXSA9IHsKIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfRUxTVEVSX1VOSUNPTV9Q SUQpIH0sCiAJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1BST1BPWF9KVEFHQ0FCTEVJSV9Q SUQpIH0sCiAJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1BST1BPWF9JU1BDQUJMRUlJSV9Q SUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBDWUJFUl9DT1JURVhfQVZfUElEKSwKKwkJ LmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZmdGRpX2p0YWdfcXVpcmsgfSwKIAl7IFVT Ql9ERVZJQ0UoT0xJTUVYX1ZJRCwgT0xJTUVYX0FSTV9VU0JfT0NEX1BJRCksCiAJCS5kcml2ZXJf aW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmZnRkaV9qdGFnX3F1aXJrIH0sCiAJeyBVU0JfREVWSUNF KE9MSU1FWF9WSUQsIE9MSU1FWF9BUk1fVVNCX09DRF9IX1BJRCksCkBAIC0xMDAwLDYgKzEwMDMs MjMgQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJpbmVkIFtdID0g ewogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9FS0VZX0NPTlZfVVNCX1BJRCkgfSwKIAkv KiBHRSBIZWFsdGhjYXJlIGRldmljZXMgKi8KIAl7IFVTQl9ERVZJQ0UoR0VfSEVBTFRIQ0FSRV9W SUQsIEdFX0hFQUxUSENBUkVfTkVNT19UUkFDS0VSX1BJRCkgfSwKKwkvKiBBY3RpdmUgUmVzZWFy Y2ggKEFjdGlzZW5zZSkgZGV2aWNlcyAqLworCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgQUNUSVNF TlNFX05EQ19QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBBQ1RJU0VOU0VfVVNHX1BJ RCkgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEFDVElTRU5TRV9OR1RfUElEKSB9LAorCXsg VVNCX0RFVklDRShGVERJX1ZJRCwgQUNUSVNFTlNFX05HV19QSUQpIH0sCisJeyBVU0JfREVWSUNF KEZURElfVklELCBBQ1RJU0VOU0VfRDlBQ19QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklE LCBBQ1RJU0VOU0VfRDlBRF9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBBQ1RJU0VO U0VfRDlBRV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBBQ1RJU0VOU0VfRDlBRl9Q SUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBDSEVUQ09fU0VBR0FVR0VfUElEKSB9LAor CXsgVVNCX0RFVklDRShGVERJX1ZJRCwgQ0hFVENPX1NFQVNXSVRDSF9QSUQpIH0sCisJeyBVU0Jf REVWSUNFKEZURElfVklELCBDSEVUQ09fU0VBU01BUlRfTk1FQTIwMDBfUElEKSB9LAorCXsgVVNC X0RFVklDRShGVERJX1ZJRCwgQ0hFVENPX1NFQVNNQVJUX0VUSEVSTkVUX1BJRCkgfSwKKwl7IFVT Ql9ERVZJQ0UoRlRESV9WSUQsIENIRVRDT19TRUFTTUFSVF9XSUZJX1BJRCkgfSwKKwl7IFVTQl9E RVZJQ0UoRlRESV9WSUQsIENIRVRDT19TRUFTTUFSVF9ESVNQTEFZX1BJRCkgfSwKKwl7IFVTQl9E RVZJQ0UoRlRESV9WSUQsIENIRVRDT19TRUFTTUFSVF9MSVRFX1BJRCkgfSwKKwl7IFVTQl9ERVZJ Q0UoRlRESV9WSUQsIENIRVRDT19TRUFTTUFSVF9BTkFMT0dfUElEKSB9LAogCXsgfSwJCQkJCS8q IE9wdGlvbmFsIHBhcmFtZXRlciBlbnRyeSAqLwogCXsgfQkJCQkJLyogVGVybWluYXRpbmcgZW50 cnkgKi8KIH07CkBAIC0xOTI3LDggKzE5NDcsMTIgQEAgc3RhdGljIGludCBmdGRpXzh1MjIzMmNf cHJvYmUoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKIAogCWRiZygiJXMiLCBfX2Z1bmNfXyk7 CiAKLQlpZiAoKHVkZXYtPm1hbnVmYWN0dXJlciAmJiAhc3RyY21wKHVkZXYtPm1hbnVmYWN0dXJl ciwgIkNBTEFPIFN5c3RlbXMiKSkgfHwKLQkgICAgKHVkZXYtPnByb2R1Y3QgJiYgIXN0cmNtcCh1 ZGV2LT5wcm9kdWN0LCAiQmVhZ2xlQm9uZS9YRFMxMDBWMiIpKSkKKwlpZiAodWRldi0+bWFudWZh Y3R1cmVyICYmICFzdHJjbXAodWRldi0+bWFudWZhY3R1cmVyLCAiQ0FMQU8gU3lzdGVtcyIpKQor CQlyZXR1cm4gZnRkaV9qdGFnX3Byb2JlKHNlcmlhbCk7CisKKwlpZiAodWRldi0+cHJvZHVjdCAm JgorCQkoIXN0cmNtcCh1ZGV2LT5wcm9kdWN0LCAiQmVhZ2xlQm9uZS9YRFMxMDBWMiIpIHx8CisJ CSAhc3RyY21wKHVkZXYtPnByb2R1Y3QsICJTTkFQIENvbm5lY3QgRTEwIikpKQogCQlyZXR1cm4g ZnRkaV9qdGFnX3Byb2JlKHNlcmlhbCk7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Np b19pZHMuaAppbmRleCA1NzM1ZmI3Li4zNjExOTJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9z ZXJpYWwvZnRkaV9zaW9faWRzLmgKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvX2lk cy5oCkBAIC0zOCw2ICszOCw5IEBACiAKICNkZWZpbmUgRlRESV9MVU1FTF9QRDEyX1BJRAkweDYw MDIKIAorLyogQ3liZXIgQ29ydGV4IEFWIGJ5IEZhYnVsb3VzIFNpbGljb24gKGh0dHA6Ly9mYWJ1 bG91c3NpbGljb24uY29tKSAqLworI2RlZmluZSBDWUJFUl9DT1JURVhfQVZfUElECTB4ODY5OAor CiAvKgogICogTWFydmVsbCBPcGVuUkQgQmFzZSwgQ2xpZW50CiAgKiBodHRwOi8vd3d3Lm9wZW4t cmQub3JnCkBAIC01NTgsNiArNTYxLDEyIEBACiAgKi8KICNkZWZpbmUgRlRESV9OVF9PUklPTkxY TV9QSUQJMHg3YzkwCS8qIE9yaW9uTFhtIFN1YnN0YXRpb24gQXV0b21hdGlvbiBQbGF0Zm9ybSAq LwogCisvKgorICogU3luYXBzZSBXaXJlbGVzcyBwcm9kdWN0IGlkcyAoRlRESV9WSUQpCisgKiBo dHRwOi8vd3d3LnN5bmFwc2Utd2lyZWxlc3MuY29tCisgKi8KKyNkZWZpbmUgRlRESV9TWU5BUFNF X1NTMjAwX1BJRCAweDkwOTAgLyogU1MyMDAgLSBTTkFQIFN0aWNrIDIwMCAqLworCiAKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qKiB0aGlyZC1wYXJ0eSBWSUQvUElEIGNv bWJvcyAqKi8KQEAgLTE0MzIsMyArMTQ0MSwyMyBAQAogICovCiAjZGVmaW5lIEdFX0hFQUxUSENB UkVfVklECQkweDE5MDEKICNkZWZpbmUgR0VfSEVBTFRIQ0FSRV9ORU1PX1RSQUNLRVJfUElECTB4 MDAxNQorCisvKgorICogQWN0aXZlIFJlc2VhcmNoIChBY3Rpc2Vuc2UpIGRldmljZXMKKyAqLwor I2RlZmluZSBBQ1RJU0VOU0VfTkRDX1BJRAkJMHhEOUE4IC8qIE5EQyBVU0IgU2VyaWFsIEFkYXB0 ZXIgKi8KKyNkZWZpbmUgQUNUSVNFTlNFX1VTR19QSUQJCTB4RDlBOSAvKiBVU0cgVVNCIFNlcmlh bCBBZGFwdGVyICovCisjZGVmaW5lIEFDVElTRU5TRV9OR1RfUElECQkweEQ5QUEgLyogTkdUIE5N RUEyMDAwIEludGVyZmFjZSAqLworI2RlZmluZSBBQ1RJU0VOU0VfTkdXX1BJRAkJMHhEOUFCIC8q IE5HVyBOTUVBMjAwMCBHYXRld2F5ICovCisjZGVmaW5lIEFDVElTRU5TRV9EOUFDX1BJRAkJMHhE OUFDIC8qIEFjdGlzZW5zZSBSZXNlcnZlZCAqLworI2RlZmluZSBBQ1RJU0VOU0VfRDlBRF9QSUQJ CTB4RDlBRCAvKiBBY3Rpc2Vuc2UgUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgQUNUSVNFTlNFX0Q5QUVf UElECQkweEQ5QUUgLyogQWN0aXNlbnNlIFJlc2VydmVkICovCisjZGVmaW5lIEFDVElTRU5TRV9E OUFGX1BJRAkJMHhEOUFGIC8qIEFjdGlzZW5zZSBSZXNlcnZlZCAqLworI2RlZmluZSBDSEVUQ09f U0VBR0FVR0VfUElECQkweEE1NDggLyogU2VhR2F1Z2UgVVNCIEFkYXB0ZXIgKi8KKyNkZWZpbmUg Q0hFVENPX1NFQVNXSVRDSF9QSUQJCTB4QTU0OSAvKiBTZWFTd2l0Y2ggVVNCIEFkYXB0ZXIgKi8K KyNkZWZpbmUgQ0hFVENPX1NFQVNNQVJUX05NRUEyMDAwX1BJRAkweEE1NEEgLyogU2VhU21hcnQg Tk1FQTIwMDAgR2F0ZXdheSAqLworI2RlZmluZSBDSEVUQ09fU0VBU01BUlRfRVRIRVJORVRfUElE CTB4QTU0QiAvKiBTZWFTbWFydCBFdGhlcm5ldCBHYXRld2F5ICovCisjZGVmaW5lIENIRVRDT19T RUFTTUFSVF9XSUZJX1BJRAkweEE1QUMgLyogU2VhU21hcnQgV2lmaSBHYXRld2F5ICovCisjZGVm aW5lIENIRVRDT19TRUFTTUFSVF9ESVNQTEFZX1BJRAkweEE1QUQgLyogU2VhU21hcnQgTk1FQTIw MDAgRGlzcGxheSAqLworI2RlZmluZSBDSEVUQ09fU0VBU01BUlRfTElURV9QSUQJMHhBNUFFIC8q IFNlYVNtYXJ0IExpdGUgVVNCIEFkYXB0ZXIgKi8KKyNkZWZpbmUgQ0hFVENPX1NFQVNNQVJUX0FO QUxPR19QSUQJMHhBNUFGIC8qIFNlYVNtYXJ0IEFuYWxvZyBBZGFwdGVyICovCmRpZmYgLS1naXQg YS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGEuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9r ZXlzcGFuX3BkYS5jCmluZGV4IGQ1YzBjNmEuLjY2MWExYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dXNiL3NlcmlhbC9rZXlzcGFuX3BkYS5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFu X3BkYS5jCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIFVTQiBLZXlzcGFuIFBEQSAvIFhpcmNvbSAv IEVudHJlZ3JhIENvbnZlcnRlciBkcml2ZXIKKyAqIFVTQiBLZXlzcGFuIFBEQSAvIFhpcmNvbSAv IEVudHJlZ2EgQ29udmVydGVyIGRyaXZlcgogICoKICAqIENvcHlyaWdodCAoQykgMTk5OSAtIDIw MDEgR3JlZyBLcm9haC1IYXJ0bWFuCTxncmVnQGtyb2FoLmNvbT4KICAqIENvcHlyaWdodCAoQykg MTk5OSwgMjAwMCBCcmlhbiBXYXJuZXIJPHdhcm5lckBsb3RoYXIuY29tPgpAQCAtMTE5LDExICsx MTksMTIgQEAgc3RydWN0IGtleXNwYW5fcGRhX3ByaXZhdGUgewogI2RlZmluZSBLRVlTUEFOX1BE QV9GQUtFX0lECQkweDAxMDMKICNkZWZpbmUgS0VZU1BBTl9QREFfSUQJCQkweDAxMDQgLyogbm8g Y2x1ZSAqLwogCi0vKiBGb3IgWGlyY29tIFBHU0RCOSBhbmQgb2xkZXIgRW50cmVncmEgdmVyc2lv biBvZiB0aGUgc2FtZSBkZXZpY2UgKi8KKy8qIEZvciBYaXJjb20gUEdTREI5IGFuZCBvbGRlciBF bnRyZWdhIHZlcnNpb24gb2YgdGhlIHNhbWUgZGV2aWNlICovCiAjZGVmaW5lIFhJUkNPTV9WRU5E T1JfSUQJCTB4MDg1YQogI2RlZmluZSBYSVJDT01fRkFLRV9JRAkJCTB4ODAyNwotI2RlZmluZSBF TlRSRUdSQV9WRU5ET1JfSUQJCTB4MTY0NQotI2RlZmluZSBFTlRSRUdSQV9GQUtFX0lECQkweDgw OTMKKyNkZWZpbmUgWElSQ09NX0ZBS0VfSURfMgkJMHg4MDI1IC8qICJQR01GSFVCIiBzZXJpYWwg Ki8KKyNkZWZpbmUgRU5UUkVHQV9WRU5ET1JfSUQJCTB4MTY0NQorI2RlZmluZSBFTlRSRUdBX0ZB S0VfSUQJCQkweDgwOTMKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3Rh YmxlX2NvbWJpbmVkW10gPSB7CiAjaWZkZWYgS0VZU1BBTgpAQCAtMTMxLDcgKzEzMiw4IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9jb21iaW5lZFtdID0gewog I2VuZGlmCiAjaWZkZWYgWElSQ09NCiAJeyBVU0JfREVWSUNFKFhJUkNPTV9WRU5ET1JfSUQsIFhJ UkNPTV9GQUtFX0lEKSB9LAotCXsgVVNCX0RFVklDRShFTlRSRUdSQV9WRU5ET1JfSUQsIEVOVFJF R1JBX0ZBS0VfSUQpIH0sCisJeyBVU0JfREVWSUNFKFhJUkNPTV9WRU5ET1JfSUQsIFhJUkNPTV9G QUtFX0lEXzIpIH0sCisJeyBVU0JfREVWSUNFKEVOVFJFR0FfVkVORE9SX0lELCBFTlRSRUdBX0ZB S0VfSUQpIH0sCiAjZW5kaWYKIAl7IFVTQl9ERVZJQ0UoS0VZU1BBTl9WRU5ET1JfSUQsIEtFWVNQ QU5fUERBX0lEKSB9LAogCXsgfQkJCQkJCS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCkBAIC0xNjIs NyArMTY0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2Zh a2VbXSA9IHsKICNpZmRlZiBYSVJDT00KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9p ZCBpZF90YWJsZV9mYWtlX3hpcmNvbVtdID0gewogCXsgVVNCX0RFVklDRShYSVJDT01fVkVORE9S X0lELCBYSVJDT01fRkFLRV9JRCkgfSwKLQl7IFVTQl9ERVZJQ0UoRU5UUkVHUkFfVkVORE9SX0lE LCBFTlRSRUdSQV9GQUtFX0lEKSB9LAorCXsgVVNCX0RFVklDRShYSVJDT01fVkVORE9SX0lELCBY SVJDT01fRkFLRV9JRF8yKSB9LAorCXsgVVNCX0RFVklDRShFTlRSRUdBX1ZFTkRPUl9JRCwgRU5U UkVHQV9GQUtFX0lEKSB9LAogCXsgfQogfTsKICNlbmRpZgpAQCAtNzU3LDcgKzc2MCw3IEBAIHN0 YXRpYyBpbnQga2V5c3Bhbl9wZGFfZmFrZV9zdGFydHVwKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJp YWwpCiAjZW5kaWYKICNpZmRlZiBYSVJDT00KIAllbHNlIGlmICgobGUxNl90b19jcHUoc2VyaWFs LT5kZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpID09IFhJUkNPTV9WRU5ET1JfSUQpIHx8Ci0JCSAo bGUxNl90b19jcHUoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpID09IEVOVFJFR1JB X1ZFTkRPUl9JRCkpCisJCSAobGUxNl90b19jcHUoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuaWRW ZW5kb3IpID09IEVOVFJFR0FfVkVORE9SX0lEKSkKIAkJZndfbmFtZSA9ICJrZXlzcGFuX3BkYS94 aXJjb21fcGdzLmZ3IjsKICNlbmRpZgogCWVsc2UgewpAQCAtODQ4LDcgKzg1MSw3IEBAIHN0YXRp YyBzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgeGlyY29tX3Bnc19mYWtlX2RldmljZSA9IHsKIAkJ Lm93bmVyID0JVEhJU19NT0RVTEUsCiAJCS5uYW1lID0JCSJ4aXJjb21fbm9fZmlybSIsCiAJfSwK LQkuZGVzY3JpcHRpb24gPQkJIlhpcmNvbSAvIEVudHJlZ3JhIFBHUyAtIChwcmVyZW51bWVyYXRp b24pIiwKKwkuZGVzY3JpcHRpb24gPQkJIlhpcmNvbSAvIEVudHJlZ2EgUEdTIC0gKHByZXJlbnVt ZXJhdGlvbikiLAogCS51c2JfZHJpdmVyID0gCQkma2V5c3Bhbl9wZGFfZHJpdmVyLAogCS5pZF90 YWJsZSA9CQlpZF90YWJsZV9mYWtlX3hpcmNvbSwKIAkubnVtX3BvcnRzID0JCTEsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3hlbi9tYW5hZ2UuYyBiL2RyaXZlcnMveGVuL21hbmFnZS5jCmluZGV4IDY1 NDg0MTcuLmNhYTM5NjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL21hbmFnZS5jCisrKyBiL2Ry aXZlcnMveGVuL21hbmFnZS5jCkBAIC0xMTAsMTAgKzExMCwxNiBAQCBzdGF0aWMgdm9pZCBkb19z dXNwZW5kKHZvaWQpCiAKIAllcnIgPSBmcmVlemVfcHJvY2Vzc2VzKCk7CiAJaWYgKGVycikgewot CQlwcmludGsoS0VSTl9FUlIgInhlbiBzdXNwZW5kOiBmcmVlemUgZmFpbGVkICVkXG4iLCBlcnIp OworCQlwcl9lcnIoIiVzOiBmcmVlemUgcHJvY2Vzc2VzIGZhaWxlZCAlZFxuIiwgX19mdW5jX18s IGVycik7CiAJCWdvdG8gb3V0OwogCX0KIAorCWVyciA9IGZyZWV6ZV9rZXJuZWxfdGhyZWFkcygp OworCWlmIChlcnIpIHsKKwkJcHJfZXJyKCIlczogZnJlZXplIGtlcm5lbCB0aHJlYWRzIGZhaWxl ZCAlZFxuIiwgX19mdW5jX18sIGVycik7CisJCWdvdG8gb3V0X3RoYXc7CisJfQorCiAJZXJyID0g ZHBtX3N1c3BlbmRfc3RhcnQoUE1TR19GUkVFWkUpOwogCWlmIChlcnIpIHsKIAkJcHJpbnRrKEtF Uk5fRVJSICJ4ZW4gc3VzcGVuZDogZHBtX3N1c3BlbmRfc3RhcnQgJWRcbiIsIGVycik7CmRpZmYg LS1naXQgYS9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9jb25mX3NwYWNlLmMgYi9kcml2ZXJzL3hl bi94ZW4tcGNpYmFjay9jb25mX3NwYWNlLmMKaW5kZXggNTJmZWQxNi4uODJhYjFjMyAxMDA2NDQK LS0tIGEvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svY29uZl9zcGFjZS5jCisrKyBiL2RyaXZlcnMv eGVuL3hlbi1wY2liYWNrL2NvbmZfc3BhY2UuYwpAQCAtMTYsNyArMTYsNyBAQAogI2luY2x1ZGUg ImNvbmZfc3BhY2UuaCIKICNpbmNsdWRlICJjb25mX3NwYWNlX3F1aXJrcy5oIgogCi1zdGF0aWMg aW50IHBlcm1pc3NpdmU7Citib29sIHBlcm1pc3NpdmU7CiBtb2R1bGVfcGFyYW0ocGVybWlzc2l2 ZSwgYm9vbCwgMDY0NCk7CiAKIC8qIFRoaXMgaXMgd2hlcmUgeGVuX3BjaWJrX3JlYWRfY29uZmln X2J5dGUsIHhlbl9wY2lia19yZWFkX2NvbmZpZ193b3JkLApkaWZmIC0tZ2l0IGEvZHJpdmVycy94 ZW4veGVuLXBjaWJhY2svY29uZl9zcGFjZS5oIGIvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svY29u Zl9zcGFjZS5oCmluZGV4IGU1NmM5MzQuLjJlMWQ3M2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVu L3hlbi1wY2liYWNrL2NvbmZfc3BhY2UuaAorKysgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9j b25mX3NwYWNlLmgKQEAgLTY0LDYgKzY0LDggQEAgc3RydWN0IGNvbmZpZ19maWVsZF9lbnRyeSB7 CiAJdm9pZCAqZGF0YTsKIH07CiAKK2V4dGVybiBib29sIHBlcm1pc3NpdmU7CisKICNkZWZpbmUg T0ZGU0VUKGNmZ19lbnRyeSkgKChjZmdfZW50cnkpLT5iYXNlX29mZnNldCsoY2ZnX2VudHJ5KS0+ ZmllbGQtPm9mZnNldCkKIAogLyogQWRkIGZpZWxkcyB0byBhIGRldmljZSAtIHRoZSBhZGRfZmll bGRzIG1hY3JvIGV4cGVjdHMgdG8gZ2V0IGEgcG9pbnRlciB0bwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy94ZW4veGVuLXBjaWJhY2svY29uZl9zcGFjZV9oZWFkZXIuYyBiL2RyaXZlcnMveGVuL3hlbi1w Y2liYWNrL2NvbmZfc3BhY2VfaGVhZGVyLmMKaW5kZXggM2RhZjg2Mi4uYTViYjgxYSAxMDA2NDQK LS0tIGEvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svY29uZl9zcGFjZV9oZWFkZXIuYworKysgYi9k cml2ZXJzL3hlbi94ZW4tcGNpYmFjay9jb25mX3NwYWNlX2hlYWRlci5jCkBAIC05LDYgKzksMTAg QEAKICNpbmNsdWRlICJwY2liYWNrLmgiCiAjaW5jbHVkZSAiY29uZl9zcGFjZS5oIgogCitzdHJ1 Y3QgcGNpX2NtZF9pbmZvIHsKKwl1MTYgdmFsOworfTsKKwogc3RydWN0IHBjaV9iYXJfaW5mbyB7 CiAJdTMyIHZhbDsKIAl1MzIgbGVuX3ZhbDsKQEAgLTE4LDIyICsyMiwzNiBAQCBzdHJ1Y3QgcGNp X2Jhcl9pbmZvIHsKICNkZWZpbmUgaXNfZW5hYmxlX2NtZCh2YWx1ZSkgKCh2YWx1ZSkmKFBDSV9D T01NQU5EX01FTU9SWXxQQ0lfQ09NTUFORF9JTykpCiAjZGVmaW5lIGlzX21hc3Rlcl9jbWQodmFs dWUpICgodmFsdWUpJlBDSV9DT01NQU5EX01BU1RFUikKIAotc3RhdGljIGludCBjb21tYW5kX3Jl YWQoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IG9mZnNldCwgdTE2ICp2YWx1ZSwgdm9pZCAqZGF0 YSkKKy8qIEJpdHMgZ3Vlc3RzIGFyZSBhbGxvd2VkIHRvIGNvbnRyb2wgaW4gcGVybWlzc2l2ZSBt b2RlLiAqLworI2RlZmluZSBQQ0lfQ09NTUFORF9HVUVTVCAoUENJX0NPTU1BTkRfTUFTVEVSfFBD SV9DT01NQU5EX1NQRUNJQUx8IFwKKwkJCSAgIFBDSV9DT01NQU5EX0lOVkFMSURBVEV8UENJX0NP TU1BTkRfVkdBX1BBTEVUVEV8IFwKKwkJCSAgIFBDSV9DT01NQU5EX1dBSVR8UENJX0NPTU1BTkRf RkFTVF9CQUNLKQorCitzdGF0aWMgdm9pZCAqY29tbWFuZF9pbml0KHN0cnVjdCBwY2lfZGV2ICpk ZXYsIGludCBvZmZzZXQpCiB7Ci0JaW50IGk7Ci0JaW50IHJldDsKLQotCXJldCA9IHhlbl9wY2li a19yZWFkX2NvbmZpZ193b3JkKGRldiwgb2Zmc2V0LCB2YWx1ZSwgZGF0YSk7Ci0JaWYgKCFwY2lf aXNfZW5hYmxlZChkZXYpKQotCQlyZXR1cm4gcmV0OwotCi0JZm9yIChpID0gMDsgaSA8IFBDSV9S T01fUkVTT1VSQ0U7IGkrKykgewotCQlpZiAoZGV2LT5yZXNvdXJjZVtpXS5mbGFncyAmIElPUkVT T1VSQ0VfSU8pCi0JCQkqdmFsdWUgfD0gUENJX0NPTU1BTkRfSU87Ci0JCWlmIChkZXYtPnJlc291 cmNlW2ldLmZsYWdzICYgSU9SRVNPVVJDRV9NRU0pCi0JCQkqdmFsdWUgfD0gUENJX0NPTU1BTkRf TUVNT1JZOworCXN0cnVjdCBwY2lfY21kX2luZm8gKmNtZCA9IGttYWxsb2Moc2l6ZW9mKCpjbWQp LCBHRlBfS0VSTkVMKTsKKwlpbnQgZXJyOworCisJaWYgKCFjbWQpCisJCXJldHVybiBFUlJfUFRS KC1FTk9NRU0pOworCisJZXJyID0gcGNpX3JlYWRfY29uZmlnX3dvcmQoZGV2LCBQQ0lfQ09NTUFO RCwgJmNtZC0+dmFsKTsKKwlpZiAoZXJyKSB7CisJCWtmcmVlKGNtZCk7CisJCXJldHVybiBFUlJf UFRSKGVycik7CiAJfQogCisJcmV0dXJuIGNtZDsKK30KKworc3RhdGljIGludCBjb21tYW5kX3Jl YWQoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IG9mZnNldCwgdTE2ICp2YWx1ZSwgdm9pZCAqZGF0 YSkKK3sKKwlpbnQgcmV0ID0gcGNpX3JlYWRfY29uZmlnX3dvcmQoZGV2LCBvZmZzZXQsIHZhbHVl KTsKKwljb25zdCBzdHJ1Y3QgcGNpX2NtZF9pbmZvICpjbWQgPSBkYXRhOworCisJKnZhbHVlICY9 IFBDSV9DT01NQU5EX0dVRVNUOworCSp2YWx1ZSB8PSBjbWQtPnZhbCAmIH5QQ0lfQ09NTUFORF9H VUVTVDsKKwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTQxLDYgKzU5LDggQEAgc3RhdGljIGludCBj b21tYW5kX3dyaXRlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBvZmZzZXQsIHUxNiB2YWx1ZSwg dm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgeGVuX3BjaWJrX2Rldl9kYXRhICpkZXZfZGF0YTsKIAlp bnQgZXJyOworCXUxNiB2YWw7CisJc3RydWN0IHBjaV9jbWRfaW5mbyAqY21kID0gZGF0YTsKIAog CWRldl9kYXRhID0gcGNpX2dldF9kcnZkYXRhKGRldik7CiAJaWYgKCFwY2lfaXNfZW5hYmxlZChk ZXYpICYmIGlzX2VuYWJsZV9jbWQodmFsdWUpKSB7CkBAIC04Myw2ICsxMDMsMTkgQEAgc3RhdGlj IGludCBjb21tYW5kX3dyaXRlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBvZmZzZXQsIHUxNiB2 YWx1ZSwgdm9pZCAqZGF0YSkKIAkJfQogCX0KIAorCWNtZC0+dmFsID0gdmFsdWU7CisKKwlpZiAo IXBlcm1pc3NpdmUgJiYgKCFkZXZfZGF0YSB8fCAhZGV2X2RhdGEtPnBlcm1pc3NpdmUpKQorCQly ZXR1cm4gMDsKKworCS8qIE9ubHkgYWxsb3cgdGhlIGd1ZXN0IHRvIGNvbnRyb2wgY2VydGFpbiBi aXRzLiAqLworCWVyciA9IHBjaV9yZWFkX2NvbmZpZ193b3JkKGRldiwgb2Zmc2V0LCAmdmFsKTsK KwlpZiAoZXJyIHx8IHZhbCA9PSB2YWx1ZSkKKwkJcmV0dXJuIGVycjsKKworCXZhbHVlICY9IFBD SV9DT01NQU5EX0dVRVNUOworCXZhbHVlIHw9IHZhbCAmIH5QQ0lfQ09NTUFORF9HVUVTVDsKKwog CXJldHVybiBwY2lfd3JpdGVfY29uZmlnX3dvcmQoZGV2LCBvZmZzZXQsIHZhbHVlKTsKIH0KIApA QCAtMjgyLDYgKzMxNSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29uZmlnX2ZpZWxkIGhlYWRl cl9jb21tb25bXSA9IHsKIAl7CiAJIC5vZmZzZXQgICAgPSBQQ0lfQ09NTUFORCwKIAkgLnNpemUg ICAgICA9IDIsCisJIC5pbml0ICAgICAgPSBjb21tYW5kX2luaXQsCisJIC5yZWxlYXNlICAgPSBi YXJfcmVsZWFzZSwKIAkgLnUudy5yZWFkICA9IGNvbW1hbmRfcmVhZCwKIAkgLnUudy53cml0ZSA9 IGNvbW1hbmRfd3JpdGUsCiAJfSwKZGlmZiAtLWdpdCBhL2ZzL2F1dG9mczQvZGV2LWlvY3RsLmMg Yi9mcy9hdXRvZnM0L2Rldi1pb2N0bC5jCmluZGV4IGRlNTQyNzEuLjYyZDdhNmQgMTAwNjQ0Ci0t LSBhL2ZzL2F1dG9mczQvZGV2LWlvY3RsLmMKKysrIGIvZnMvYXV0b2ZzNC9kZXYtaW9jdGwuYwpA QCAtOTUsNyArOTUsNyBAQCBzdGF0aWMgaW50IGNoZWNrX2Rldl9pb2N0bF92ZXJzaW9uKGludCBj bWQsIHN0cnVjdCBhdXRvZnNfZGV2X2lvY3RsICpwYXJhbSkKICAqLwogc3RhdGljIHN0cnVjdCBh dXRvZnNfZGV2X2lvY3RsICpjb3B5X2Rldl9pb2N0bChzdHJ1Y3QgYXV0b2ZzX2Rldl9pb2N0bCBf X3VzZXIgKmluKQogewotCXN0cnVjdCBhdXRvZnNfZGV2X2lvY3RsIHRtcDsKKwlzdHJ1Y3QgYXV0 b2ZzX2Rldl9pb2N0bCB0bXAsICpyZXM7CiAKIAlpZiAoY29weV9mcm9tX3VzZXIoJnRtcCwgaW4s IHNpemVvZih0bXApKSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVGQVVMVCk7CkBAIC0xMDMsNyArMTAz LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgYXV0b2ZzX2Rldl9pb2N0bCAqY29weV9kZXZfaW9jdGwoc3Ry dWN0IGF1dG9mc19kZXZfaW9jdGwgX191c2VyICppCiAJaWYgKHRtcC5zaXplIDwgc2l6ZW9mKHRt cCkpCiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCi0JcmV0dXJuIG1lbWR1cF91c2VyKGlu LCB0bXAuc2l6ZSk7CisJaWYgKHRtcC5zaXplID4gKFBBVEhfTUFYICsgc2l6ZW9mKHRtcCkpKQor CQlyZXR1cm4gRVJSX1BUUigtRU5BTUVUT09MT05HKTsKKworCXJlcyA9IG1lbWR1cF91c2VyKGlu LCB0bXAuc2l6ZSk7CisJaWYgKCFJU19FUlIocmVzKSkKKwkJcmVzLT5zaXplID0gdG1wLnNpemU7 CisKKwlyZXR1cm4gcmVzOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZnJlZV9kZXZfaW9jdGwo c3RydWN0IGF1dG9mc19kZXZfaW9jdGwgKnBhcmFtKQpkaWZmIC0tZ2l0IGEvZnMvYmluZm10X2Vs Zi5jIGIvZnMvYmluZm10X2VsZi5jCmluZGV4IDhkZDYxNWMuLjJhZWQ2NjcgMTAwNjQ0Ci0tLSBh L2ZzL2JpbmZtdF9lbGYuYworKysgYi9mcy9iaW5mbXRfZWxmLmMKQEAgLTU0MiwxMSArNTQyLDEy IEBAIG91dDoKIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgcmFuZG9taXplX3N0YWNrX3RvcCh1bnNp Z25lZCBsb25nIHN0YWNrX3RvcCkKIHsKLQl1bnNpZ25lZCBpbnQgcmFuZG9tX3ZhcmlhYmxlID0g MDsKKwl1bnNpZ25lZCBsb25nIHJhbmRvbV92YXJpYWJsZSA9IDA7CiAKIAlpZiAoKGN1cnJlbnQt PmZsYWdzICYgUEZfUkFORE9NSVpFKSAmJgogCQkhKGN1cnJlbnQtPnBlcnNvbmFsaXR5ICYgQURE Ul9OT19SQU5ET01JWkUpKSB7Ci0JCXJhbmRvbV92YXJpYWJsZSA9IGdldF9yYW5kb21faW50KCkg JiBTVEFDS19STkRfTUFTSzsKKwkJcmFuZG9tX3ZhcmlhYmxlID0gKHVuc2lnbmVkIGxvbmcpIGdl dF9yYW5kb21faW50KCk7CisJCXJhbmRvbV92YXJpYWJsZSAmPSBTVEFDS19STkRfTUFTSzsKIAkJ cmFuZG9tX3ZhcmlhYmxlIDw8PSBQQUdFX1NISUZUOwogCX0KICNpZmRlZiBDT05GSUdfU1RBQ0tf R1JPV1NVUApkaWZmIC0tZ2l0IGEvZnMvY2lmcy9maWxlLmMgYi9mcy9jaWZzL2ZpbGUuYwppbmRl eCBhYTA1ZDVlLi5mOWQyODYzIDEwMDY0NAotLS0gYS9mcy9jaWZzL2ZpbGUuYworKysgYi9mcy9j aWZzL2ZpbGUuYwpAQCAtMTYwOCw2ICsxNjA4LDcgQEAgcmVmaW5kX3dyaXRhYmxlOgogCQkJY2lm c0ZpbGVJbmZvX3B1dChpbnZfZmlsZSk7CiAJCQlzcGluX2xvY2soJmNpZnNfZmlsZV9saXN0X2xv Y2spOwogCQkJKytyZWZpbmQ7CisJCQlpbnZfZmlsZSA9IE5VTEw7CiAJCQlnb3RvIHJlZmluZF93 cml0YWJsZTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2ZzL2RlYnVnZnMvaW5vZGUuYyBiL2ZzL2Rl YnVnZnMvaW5vZGUuYwppbmRleCA2YWMwODkzLi5hMTVmMWUyIDEwMDY0NAotLS0gYS9mcy9kZWJ1 Z2ZzL2lub2RlLmMKKysrIGIvZnMvZGVidWdmcy9pbm9kZS5jCkBAIC0xMjUsMTEgKzEyNSwzMCBA QCBzdGF0aWMgaW5saW5lIGludCBkZWJ1Z2ZzX3Bvc2l0aXZlKHN0cnVjdCBkZW50cnkgKmRlbnRy eSkKIAlyZXR1cm4gZGVudHJ5LT5kX2lub2RlICYmICFkX3VuaGFzaGVkKGRlbnRyeSk7CiB9CiAK K3N0YXRpYyB2b2lkIGRlYnVnZnNfZXZpY3RfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKK3sK Kwl0cnVuY2F0ZV9pbm9kZV9wYWdlcygmaW5vZGUtPmlfZGF0YSwgMCk7CisJZW5kX3dyaXRlYmFj ayhpbm9kZSk7CisJaWYgKFNfSVNMTksoaW5vZGUtPmlfbW9kZSkpCisJCWtmcmVlKGlub2RlLT5p X3ByaXZhdGUpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgZGVi dWdmc19zdXBlcl9vcGVyYXRpb25zID0geworCS5ldmljdF9pbm9kZQk9IGRlYnVnZnNfZXZpY3Rf aW5vZGUsCit9OworCiBzdGF0aWMgaW50IGRlYnVnX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Js b2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKIHsKIAlzdGF0aWMgc3RydWN0IHRyZWVf ZGVzY3IgZGVidWdfZmlsZXNbXSA9IHt7IiJ9fTsKKwlpbnQgZXJyOwogCi0JcmV0dXJuIHNpbXBs ZV9maWxsX3N1cGVyKHNiLCBERUJVR0ZTX01BR0lDLCBkZWJ1Z19maWxlcyk7CisJZXJyID0gc2lt cGxlX2ZpbGxfc3VwZXIoc2IsIERFQlVHRlNfTUFHSUMsIGRlYnVnX2ZpbGVzKTsKKwlpZiAoZXJy KQorCQlyZXR1cm4gZXJyOworCisJc2ItPnNfb3AgPSAmZGVidWdmc19zdXBlcl9vcGVyYXRpb25z OworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z19tb3VudChz dHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKQEAgLTMxMiwyMyArMzMxLDE0IEBAIHN0 YXRpYyBpbnQgX19kZWJ1Z2ZzX3JlbW92ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBk ZW50cnkgKnBhcmVudCkKIAlpbnQgcmV0ID0gMDsKIAogCWlmIChkZWJ1Z2ZzX3Bvc2l0aXZlKGRl bnRyeSkpIHsKLQkJaWYgKGRlbnRyeS0+ZF9pbm9kZSkgewotCQkJZGdldChkZW50cnkpOwotCQkJ c3dpdGNoIChkZW50cnktPmRfaW5vZGUtPmlfbW9kZSAmIFNfSUZNVCkgewotCQkJY2FzZSBTX0lG RElSOgotCQkJCXJldCA9IHNpbXBsZV9ybWRpcihwYXJlbnQtPmRfaW5vZGUsIGRlbnRyeSk7Ci0J CQkJYnJlYWs7Ci0JCQljYXNlIFNfSUZMTks6Ci0JCQkJa2ZyZWUoZGVudHJ5LT5kX2lub2RlLT5p X3ByaXZhdGUpOwotCQkJCS8qIGZhbGwgdGhyb3VnaCAqLwotCQkJZGVmYXVsdDoKLQkJCQlzaW1w bGVfdW5saW5rKHBhcmVudC0+ZF9pbm9kZSwgZGVudHJ5KTsKLQkJCQlicmVhazsKLQkJCX0KLQkJ CWlmICghcmV0KQotCQkJCWRfZGVsZXRlKGRlbnRyeSk7Ci0JCQlkcHV0KGRlbnRyeSk7Ci0JCX0K KwkJZGdldChkZW50cnkpOworCQlpZiAoU19JU0RJUihkZW50cnktPmRfaW5vZGUtPmlfbW9kZSkp CisJCQlyZXQgPSBzaW1wbGVfcm1kaXIocGFyZW50LT5kX2lub2RlLCBkZW50cnkpOworCQllbHNl CisJCQlzaW1wbGVfdW5saW5rKHBhcmVudC0+ZF9pbm9kZSwgZGVudHJ5KTsKKwkJaWYgKCFyZXQp CisJCQlkX2RlbGV0ZShkZW50cnkpOworCQlkcHV0KGRlbnRyeSk7CiAJfQogCXJldHVybiByZXQ7 CiB9CmRpZmYgLS1naXQgYS9mcy9lY3J5cHRmcy9maWxlLmMgYi9mcy9lY3J5cHRmcy9maWxlLmMK aW5kZXggODBmYzg3Ni4uNDY0ZmUxZiAxMDA2NDQKLS0tIGEvZnMvZWNyeXB0ZnMvZmlsZS5jCisr KyBiL2ZzL2VjcnlwdGZzL2ZpbGUuYwpAQCAtMzA3LDkgKzMwNywyMyBAQCBlY3J5cHRmc191bmxv Y2tlZF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQg bG9uZyBhcmcpCiAKIAlpZiAoZWNyeXB0ZnNfZmlsZV90b19wcml2YXRlKGZpbGUpKQogCQlsb3dl cl9maWxlID0gZWNyeXB0ZnNfZmlsZV90b19sb3dlcihmaWxlKTsKLQlpZiAobG93ZXJfZmlsZSAm JiBsb3dlcl9maWxlLT5mX29wICYmIGxvd2VyX2ZpbGUtPmZfb3AtPnVubG9ja2VkX2lvY3RsKQor CWlmICghKGxvd2VyX2ZpbGUgJiYgbG93ZXJfZmlsZS0+Zl9vcCAmJiBsb3dlcl9maWxlLT5mX29w LT51bmxvY2tlZF9pb2N0bCkpCisJCXJldHVybiByYzsKKworCXN3aXRjaCAoY21kKSB7CisJY2Fz ZSBGSVRSSU06CisJY2FzZSBGU19JT0NfR0VURkxBR1M6CisJY2FzZSBGU19JT0NfU0VURkxBR1M6 CisJY2FzZSBGU19JT0NfR0VUVkVSU0lPTjoKKwljYXNlIEZTX0lPQ19TRVRWRVJTSU9OOgogCQly YyA9IGxvd2VyX2ZpbGUtPmZfb3AtPnVubG9ja2VkX2lvY3RsKGxvd2VyX2ZpbGUsIGNtZCwgYXJn KTsKLQlyZXR1cm4gcmM7CisJCWZzc3RhY2tfY29weV9hdHRyX2FsbChmaWxlLT5mX3BhdGguZGVu dHJ5LT5kX2lub2RlLAorCQkJCSAgICAgIGxvd2VyX2ZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5v ZGUpOworCisJCXJldHVybiByYzsKKwlkZWZhdWx0OgorCQlyZXR1cm4gcmM7CisJfQogfQogCiAj aWZkZWYgQ09ORklHX0NPTVBBVApAQCAtMzIxLDkgKzMzNSwyMyBAQCBlY3J5cHRmc19jb21wYXRf aW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcg YXJnKQogCiAJaWYgKGVjcnlwdGZzX2ZpbGVfdG9fcHJpdmF0ZShmaWxlKSkKIAkJbG93ZXJfZmls ZSA9IGVjcnlwdGZzX2ZpbGVfdG9fbG93ZXIoZmlsZSk7Ci0JaWYgKGxvd2VyX2ZpbGUgJiYgbG93 ZXJfZmlsZS0+Zl9vcCAmJiBsb3dlcl9maWxlLT5mX29wLT5jb21wYXRfaW9jdGwpCisJaWYgKCEo bG93ZXJfZmlsZSAmJiBsb3dlcl9maWxlLT5mX29wICYmIGxvd2VyX2ZpbGUtPmZfb3AtPmNvbXBh dF9pb2N0bCkpCisJCXJldHVybiByYzsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBGSVRSSU06 CisJY2FzZSBGU19JT0MzMl9HRVRGTEFHUzoKKwljYXNlIEZTX0lPQzMyX1NFVEZMQUdTOgorCWNh c2UgRlNfSU9DMzJfR0VUVkVSU0lPTjoKKwljYXNlIEZTX0lPQzMyX1NFVFZFUlNJT046CiAJCXJj ID0gbG93ZXJfZmlsZS0+Zl9vcC0+Y29tcGF0X2lvY3RsKGxvd2VyX2ZpbGUsIGNtZCwgYXJnKTsK LQlyZXR1cm4gcmM7CisJCWZzc3RhY2tfY29weV9hdHRyX2FsbChmaWxlLT5mX3BhdGguZGVudHJ5 LT5kX2lub2RlLAorCQkJCSAgICAgIGxvd2VyX2ZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUp OworCisJCXJldHVybiByYzsKKwlkZWZhdWx0OgorCQlyZXR1cm4gcmM7CisJfQogfQogI2VuZGlm CiAKZGlmZiAtLWdpdCBhL2ZzL2V4ZWMuYyBiL2ZzL2V4ZWMuYwppbmRleCA3ODE5OWViLi43YWRi NDNmIDEwMDY0NAotLS0gYS9mcy9leGVjLmMKKysrIGIvZnMvZXhlYy5jCkBAIC0xMjgyLDYgKzEy ODIsNDUgQEAgaW50IGNoZWNrX3Vuc2FmZV9leGVjKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0p CiAJcmV0dXJuIHJlczsKIH0KIAorc3RhdGljIHZvaWQgYnBybV9maWxsX3VpZChzdHJ1Y3QgbGlu dXhfYmlucHJtICpicHJtKQoreworCXN0cnVjdCBpbm9kZSAqaW5vZGU7CisJdW5zaWduZWQgaW50 IG1vZGU7CisJdWlkX3QgdWlkOworCWdpZF90IGdpZDsKKworCS8qIGNsZWFyIGFueSBwcmV2aW91 cyBzZXRbdWddaWQgZGF0YSBmcm9tIGEgcHJldmlvdXMgYmluYXJ5ICovCisJYnBybS0+Y3JlZC0+ ZXVpZCA9IGN1cnJlbnRfZXVpZCgpOworCWJwcm0tPmNyZWQtPmVnaWQgPSBjdXJyZW50X2VnaWQo KTsKKworCWlmIChicHJtLT5maWxlLT5mX3BhdGgubW50LT5tbnRfZmxhZ3MgJiBNTlRfTk9TVUlE KQorCQlyZXR1cm47CisKKwlpbm9kZSA9IGJwcm0tPmZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5v ZGU7CisJbW9kZSA9IEFDQ0VTU19PTkNFKGlub2RlLT5pX21vZGUpOworCWlmICghKG1vZGUgJiAo U19JU1VJRHxTX0lTR0lEKSkpCisJCXJldHVybjsKKworCS8qIEJlIGNhcmVmdWwgaWYgc3VpZC9z Z2lkIGlzIHNldCAqLworCW11dGV4X2xvY2soJmlub2RlLT5pX211dGV4KTsKKworCS8qIHJlbG9h ZCBhdG9taWNhbGx5IG1vZGUvdWlkL2dpZCBub3cgdGhhdCBsb2NrIGhlbGQgKi8KKwltb2RlID0g aW5vZGUtPmlfbW9kZTsKKwl1aWQgPSBpbm9kZS0+aV91aWQ7CisJZ2lkID0gaW5vZGUtPmlfZ2lk OworCW11dGV4X3VubG9jaygmaW5vZGUtPmlfbXV0ZXgpOworCisJaWYgKG1vZGUgJiBTX0lTVUlE KSB7CisJCWJwcm0tPnBlcl9jbGVhciB8PSBQRVJfQ0xFQVJfT05fU0VUSUQ7CisJCWJwcm0tPmNy ZWQtPmV1aWQgPSB1aWQ7CisJfQorCisJaWYgKChtb2RlICYgKFNfSVNHSUQgfCBTX0lYR1JQKSkg PT0gKFNfSVNHSUQgfCBTX0lYR1JQKSkgeworCQlicHJtLT5wZXJfY2xlYXIgfD0gUEVSX0NMRUFS X09OX1NFVElEOworCQlicHJtLT5jcmVkLT5lZ2lkID0gZ2lkOworCX0KK30KKwogLyogCiAgKiBG aWxsIHRoZSBiaW5wcm0gc3RydWN0dXJlIGZyb20gdGhlIGlub2RlLiAKICAqIENoZWNrIHBlcm1p c3Npb25zLCB0aGVuIHJlYWQgdGhlIGZpcnN0IDEyOCAoQklOUFJNX0JVRl9TSVpFKSBieXRlcwpA QCAtMTI5MCwzNiArMTMyOSwxMiBAQCBpbnQgY2hlY2tfdW5zYWZlX2V4ZWMoc3RydWN0IGxpbnV4 X2JpbnBybSAqYnBybSkKICAqLwogaW50IHByZXBhcmVfYmlucHJtKHN0cnVjdCBsaW51eF9iaW5w cm0gKmJwcm0pCiB7Ci0JdW1vZGVfdCBtb2RlOwotCXN0cnVjdCBpbm9kZSAqIGlub2RlID0gYnBy bS0+ZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsKIAlpbnQgcmV0dmFsOwogCi0JbW9kZSA9 IGlub2RlLT5pX21vZGU7CiAJaWYgKGJwcm0tPmZpbGUtPmZfb3AgPT0gTlVMTCkKIAkJcmV0dXJu IC1FQUNDRVM7CiAKLQkvKiBjbGVhciBhbnkgcHJldmlvdXMgc2V0W3VnXWlkIGRhdGEgZnJvbSBh IHByZXZpb3VzIGJpbmFyeSAqLwotCWJwcm0tPmNyZWQtPmV1aWQgPSBjdXJyZW50X2V1aWQoKTsK LQlicHJtLT5jcmVkLT5lZ2lkID0gY3VycmVudF9lZ2lkKCk7Ci0KLQlpZiAoIShicHJtLT5maWxl LT5mX3BhdGgubW50LT5tbnRfZmxhZ3MgJiBNTlRfTk9TVUlEKSkgewotCQkvKiBTZXQtdWlkPyAq LwotCQlpZiAobW9kZSAmIFNfSVNVSUQpIHsKLQkJCWJwcm0tPnBlcl9jbGVhciB8PSBQRVJfQ0xF QVJfT05fU0VUSUQ7Ci0JCQlicHJtLT5jcmVkLT5ldWlkID0gaW5vZGUtPmlfdWlkOwotCQl9Ci0K LQkJLyogU2V0LWdpZD8gKi8KLQkJLyoKLQkJICogSWYgc2V0Z2lkIGlzIHNldCBidXQgbm8gZ3Jv dXAgZXhlY3V0ZSBiaXQgdGhlbiB0aGlzCi0JCSAqIGlzIGEgY2FuZGlkYXRlIGZvciBtYW5kYXRv cnkgbG9ja2luZywgbm90IGEgc2V0Z2lkCi0JCSAqIGV4ZWN1dGFibGUuCi0JCSAqLwotCQlpZiAo KG1vZGUgJiAoU19JU0dJRCB8IFNfSVhHUlApKSA9PSAoU19JU0dJRCB8IFNfSVhHUlApKSB7Ci0J CQlicHJtLT5wZXJfY2xlYXIgfD0gUEVSX0NMRUFSX09OX1NFVElEOwotCQkJYnBybS0+Y3JlZC0+ ZWdpZCA9IGlub2RlLT5pX2dpZDsKLQkJfQotCX0KKwlicHJtX2ZpbGxfdWlkKGJwcm0pOwogCiAJ LyogZmlsbCBpbiBiaW5wcm0gc2VjdXJpdHkgYmxvYiAqLwogCXJldHZhbCA9IHNlY3VyaXR5X2Jw cm1fc2V0X2NyZWRzKGJwcm0pOwpkaWZmIC0tZ2l0IGEvZnMvZnVzZS9kZXYuYyBiL2ZzL2Z1c2Uv ZGV2LmMKaW5kZXggY2YwMDk4ZC4uODE5NzBkNyAxMDA2NDQKLS0tIGEvZnMvZnVzZS9kZXYuYwor KysgYi9mcy9mdXNlL2Rldi5jCkBAIC03MTcsOCArNzE3LDggQEAgc3RhdGljIGludCBmdXNlX3Ry eV9tb3ZlX3BhZ2Uoc3RydWN0IGZ1c2VfY29weV9zdGF0ZSAqY3MsIHN0cnVjdCBwYWdlICoqcGFn ZXApCiAKIAluZXdwYWdlID0gYnVmLT5wYWdlOwogCi0JaWYgKFdBUk5fT04oIVBhZ2VVcHRvZGF0 ZShuZXdwYWdlKSkpCi0JCXJldHVybiAtRUlPOworCWlmICghUGFnZVVwdG9kYXRlKG5ld3BhZ2Up KQorCQlTZXRQYWdlVXB0b2RhdGUobmV3cGFnZSk7CiAKIAlDbGVhclBhZ2VNYXBwZWRUb0Rpc2so bmV3cGFnZSk7CiAKQEAgLTE1NzAsNiArMTU3MCw5IEBAIGNvcHlfZmluaXNoOgogc3RhdGljIGlu dCBmdXNlX25vdGlmeShzdHJ1Y3QgZnVzZV9jb25uICpmYywgZW51bSBmdXNlX25vdGlmeV9jb2Rl IGNvZGUsCiAJCSAgICAgICB1bnNpZ25lZCBpbnQgc2l6ZSwgc3RydWN0IGZ1c2VfY29weV9zdGF0 ZSAqY3MpCiB7CisJLyogRG9uJ3QgdHJ5IHRvIG1vdmUgcGFnZXMgKHlldCkgKi8KKwljcy0+bW92 ZV9wYWdlcyA9IDA7CisKIAlzd2l0Y2ggKGNvZGUpIHsKIAljYXNlIEZVU0VfTk9USUZZX1BPTEw6 CiAJCXJldHVybiBmdXNlX25vdGlmeV9wb2xsKGZjLCBzaXplLCBjcyk7CmRpZmYgLS1naXQgYS9m cy9oZnNwbHVzL2JyZWMuYyBiL2ZzL2hmc3BsdXMvYnJlYy5jCmluZGV4IDJhNzM0Y2YuLjc0Mjlj NDAgMTAwNjQ0Ci0tLSBhL2ZzL2hmc3BsdXMvYnJlYy5jCisrKyBiL2ZzL2hmc3BsdXMvYnJlYy5j CkBAIC0xMzAsMTMgKzEzMCwxNiBAQCBza2lwOgogCWhmc19ibm9kZV93cml0ZShub2RlLCBlbnRy eSwgZGF0YV9vZmYgKyBrZXlfbGVuLCBlbnRyeV9sZW4pOwogCWhmc19ibm9kZV9kdW1wKG5vZGUp OwogCi0JaWYgKG5ld19ub2RlKSB7Ci0JCS8qIHVwZGF0ZSBwYXJlbnQga2V5IGlmIHdlIGluc2Vy dGVkIGEga2V5Ci0JCSAqIGF0IHRoZSBzdGFydCBvZiB0aGUgZmlyc3Qgbm9kZQotCQkgKi8KLQkJ aWYgKCFyZWMgJiYgbmV3X25vZGUgIT0gbm9kZSkKLQkJCWhmc19icmVjX3VwZGF0ZV9wYXJlbnQo ZmQpOworCS8qCisJICogdXBkYXRlIHBhcmVudCBrZXkgaWYgd2UgaW5zZXJ0ZWQgYSBrZXkKKwkg KiBhdCB0aGUgc3RhcnQgb2YgdGhlIG5vZGUgYW5kIGl0IGlzIG5vdCB0aGUgbmV3IG5vZGUKKwkg Ki8KKwlpZiAoIXJlYyAmJiBuZXdfbm9kZSAhPSBub2RlKSB7CisJCWhmc19ibm9kZV9yZWFkX2tl eShub2RlLCBmZC0+c2VhcmNoX2tleSwgZGF0YV9vZmYgKyBzaXplKTsKKwkJaGZzX2JyZWNfdXBk YXRlX3BhcmVudChmZCk7CisJfQogCisJaWYgKG5ld19ub2RlKSB7CiAJCWhmc19ibm9kZV9wdXQo ZmQtPmJub2RlKTsKIAkJaWYgKCFuZXdfbm9kZS0+cGFyZW50KSB7CiAJCQloZnNfYnRyZWVfaW5j X2hlaWdodCh0cmVlKTsKQEAgLTE2Niw5ICsxNjksNiBAQCBza2lwOgogCQlnb3RvIGFnYWluOwog CX0KIAotCWlmICghcmVjKQotCQloZnNfYnJlY191cGRhdGVfcGFyZW50KGZkKTsKLQogCXJldHVy biAwOwogfQogCkBAIC0zNjgsNiArMzY4LDggQEAgYWdhaW46CiAJaWYgKElTX0VSUihwYXJlbnQp KQogCQlyZXR1cm4gUFRSX0VSUihwYXJlbnQpOwogCV9faGZzX2JyZWNfZmluZChwYXJlbnQsIGZk KTsKKwlpZiAoZmQtPnJlY29yZCA8IDApCisJCXJldHVybiAtRU5PRU5UOwogCWhmc19ibm9kZV9k dW1wKHBhcmVudCk7CiAJcmVjID0gZmQtPnJlY29yZDsKIApkaWZmIC0tZ2l0IGEvZnMvamZmczIv c2Nhbi5jIGIvZnMvamZmczIvc2Nhbi5jCmluZGV4IDI4MTA3Y2EuLjMyN2NjMTcgMTAwNjQ0Ci0t LSBhL2ZzL2pmZnMyL3NjYW4uYworKysgYi9mcy9qZmZzMi9zY2FuLmMKQEAgLTUwMyw2ICs1MDMs MTAgQEAgc3RhdGljIGludCBqZmZzMl9zY2FuX2VyYXNlYmxvY2sgKHN0cnVjdCBqZmZzMl9zYl9p bmZvICpjLCBzdHJ1Y3QgamZmczJfZXJhc2VibG8KIAkJCQlzdW1sZW4gPSBjLT5zZWN0b3Jfc2l6 ZSAtIGplMzJfdG9fY3B1KHNtLT5vZmZzZXQpOwogCQkJCXN1bXB0ciA9IGJ1ZiArIGJ1Zl9zaXpl IC0gc3VtbGVuOwogCisJCQkJLyogc20tPm9mZnNldCBtYXliZSB3cm9uZyBidXQgTUFHSUMgbWF5 YmUgcmlnaHQgKi8KKwkJCQlpZiAoc3VtbGVuID4gYy0+c2VjdG9yX3NpemUpCisJCQkJCWdvdG8g ZnVsbF9zY2FuOworCiAJCQkJLyogTm93LCBtYWtlIHN1cmUgdGhlIHN1bW1hcnkgaXRzZWxmIGlz IGF2YWlsYWJsZSAqLwogCQkJCWlmIChzdW1sZW4gPiBidWZfc2l6ZSkgewogCQkJCQkvKiBOZWVk IHRvIGttYWxsb2MgZm9yIHRoaXMuICovCkBAIC01MzcsNiArNTQxLDcgQEAgc3RhdGljIGludCBq ZmZzMl9zY2FuX2VyYXNlYmxvY2sgKHN0cnVjdCBqZmZzMl9zYl9pbmZvICpjLCBzdHJ1Y3QgamZm czJfZXJhc2VibG8KIAkJfQogCX0KIAorZnVsbF9zY2FuOgogCWJ1Zl9vZnMgPSBqZWItPm9mZnNl dDsKIAogCWlmICghYnVmX3NpemUpIHsKZGlmZiAtLWdpdCBhL2ZzL2pmcy9qZnNfZHRyZWUuYyBi L2ZzL2pmcy9qZnNfZHRyZWUuYwppbmRleCA5ZjdjNzU4Li5mNmYzMmZhIDEwMDY0NAotLS0gYS9m cy9qZnMvamZzX2R0cmVlLmMKKysrIGIvZnMvamZzL2pmc19kdHJlZS5jCkBAIC0zMTAzLDcgKzMx MDMsNyBAQCBpbnQgamZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKmZpbHAsIHZvaWQgKmRpcmVudCwg ZmlsbGRpcl90IGZpbGxkaXIpCiAJCQkJICogc2VsZiAiLiIKIAkJCQkgKi8KIAkJCQlmaWxwLT5m X3BvcyA9IDE7Ci0JCQkJaWYgKGZpbGxkaXIoZGlyZW50LCAiLiIsIDEsIDAsIGlwLT5pX2lubywK KwkJCQlpZiAoZmlsbGRpcihkaXJlbnQsICIuIiwgMSwgMSwgaXAtPmlfaW5vLAogCQkJCQkgICAg RFRfRElSKSkKIAkJCQkJcmV0dXJuIDA7CiAJCQl9CkBAIC0zMTExLDcgKzMxMTEsNyBAQCBpbnQg amZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKmZpbHAsIHZvaWQgKmRpcmVudCwgZmlsbGRpcl90IGZp bGxkaXIpCiAJCQkgKiBwYXJlbnQgIi4uIgogCQkJICovCiAJCQlmaWxwLT5mX3BvcyA9IDI7Ci0J CQlpZiAoZmlsbGRpcihkaXJlbnQsICIuLiIsIDIsIDEsIFBBUkVOVChpcCksIERUX0RJUikpCisJ CQlpZiAoZmlsbGRpcihkaXJlbnQsICIuLiIsIDIsIDIsIFBBUkVOVChpcCksIERUX0RJUikpCiAJ CQkJcmV0dXJuIDA7CiAKIAkJCS8qCmRpZmYgLS1naXQgYS9mcy9uZnMvY2FsbGJhY2suYyBiL2Zz L25mcy9jYWxsYmFjay5jCmluZGV4IDUxNmYzMzcuLjMxNzJiNTEgMTAwNjQ0Ci0tLSBhL2ZzL25m cy9jYWxsYmFjay5jCisrKyBiL2ZzL25mcy9jYWxsYmFjay5jCkBAIC0xNDksMjIgKzE0OSwyNCBA QCBuZnM0MV9jYWxsYmFja19zdmModm9pZCAqdnJxc3RwKQogCXNldF9mcmVlemFibGUoKTsKIAog CXdoaWxlICgha3RocmVhZF9zaG91bGRfc3RvcCgpKSB7Ci0JCXByZXBhcmVfdG9fd2FpdCgmc2Vy di0+c3ZfY2Jfd2FpdHEsICZ3cSwgVEFTS19JTlRFUlJVUFRJQkxFKTsKKwkJcHJlcGFyZV90b193 YWl0KCZzZXJ2LT5zdl9jYl93YWl0cSwgJndxLCBUQVNLX1VOSU5URVJSVVBUSUJMRSk7CiAJCXNw aW5fbG9ja19iaCgmc2Vydi0+c3ZfY2JfbG9jayk7CiAJCWlmICghbGlzdF9lbXB0eSgmc2Vydi0+ c3ZfY2JfbGlzdCkpIHsKIAkJCXJlcSA9IGxpc3RfZmlyc3RfZW50cnkoJnNlcnYtPnN2X2NiX2xp c3QsCiAJCQkJCXN0cnVjdCBycGNfcnFzdCwgcnFfYmNfbGlzdCk7CiAJCQlsaXN0X2RlbCgmcmVx LT5ycV9iY19saXN0KTsKIAkJCXNwaW5fdW5sb2NrX2JoKCZzZXJ2LT5zdl9jYl9sb2NrKTsKKwkJ CWZpbmlzaF93YWl0KCZzZXJ2LT5zdl9jYl93YWl0cSwgJndxKTsKIAkJCWRwcmludGsoIkludm9r aW5nIGJjX3N2Y19wcm9jZXNzKClcbiIpOwogCQkJZXJyb3IgPSBiY19zdmNfcHJvY2VzcyhzZXJ2 LCByZXEsIHJxc3RwKTsKIAkJCWRwcmludGsoImJjX3N2Y19wcm9jZXNzKCkgcmV0dXJuZWQgdy8g ZXJyb3IgY29kZT0gJWRcbiIsCiAJCQkJZXJyb3IpOwogCQl9IGVsc2UgewogCQkJc3Bpbl91bmxv Y2tfYmgoJnNlcnYtPnN2X2NiX2xvY2spOwotCQkJc2NoZWR1bGUoKTsKKwkJCS8qIHNjaGVkdWxl X3RpbWVvdXQgdG8gZ2FtZSB0aGUgaHVuZyB0YXNrIHdhdGNoZG9nICovCisJCQlzY2hlZHVsZV90 aW1lb3V0KDYwICogSFopOworCQkJZmluaXNoX3dhaXQoJnNlcnYtPnN2X2NiX3dhaXRxLCAmd3Ep OwogCQl9Ci0JCWZpbmlzaF93YWl0KCZzZXJ2LT5zdl9jYl93YWl0cSwgJndxKTsKIAl9CiAJcmV0 dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9mcy9uZnMvY2FsbGJhY2tfeGRyLmMgYi9mcy9uZnMvY2Fs bGJhY2tfeGRyLmMKaW5kZXggM2ZkZTA1NS4uNmQyMmQzNSAxMDA2NDQKLS0tIGEvZnMvbmZzL2Nh bGxiYWNrX3hkci5jCisrKyBiL2ZzL25mcy9jYWxsYmFja194ZHIuYwpAQCAtNDU5LDggKzQ1OSwx MCBAQCBzdGF0aWMgX19iZTMyIGRlY29kZV9jYl9zZXF1ZW5jZV9hcmdzKHN0cnVjdCBzdmNfcnFz dCAqcnFzdHAsCiAKIAkJZm9yIChpID0gMDsgaSA8IGFyZ3MtPmNzYV9ucmNsaXN0czsgaSsrKSB7 CiAJCQlzdGF0dXMgPSBkZWNvZGVfcmNfbGlzdCh4ZHIsICZhcmdzLT5jc2FfcmNsaXN0c1tpXSk7 Ci0JCQlpZiAoc3RhdHVzKQorCQkJaWYgKHN0YXR1cykgeworCQkJCWFyZ3MtPmNzYV9ucmNsaXN0 cyA9IGk7CiAJCQkJZ290byBvdXRfZnJlZTsKKwkJCX0KIAkJfQogCX0KIAlzdGF0dXMgPSAwOwpk aWZmIC0tZ2l0IGEvZnMvbmZzL2RlbGVnYXRpb24uYyBiL2ZzL25mcy9kZWxlZ2F0aW9uLmMKaW5k ZXggYWM4ODlhZi4uOTJjZjA3ZCAxMDA2NDQKLS0tIGEvZnMvbmZzL2RlbGVnYXRpb24uYworKysg Yi9mcy9uZnMvZGVsZWdhdGlvbi5jCkBAIC0xNDksOCArMTQ5LDggQEAgdm9pZCBuZnNfaW5vZGVf cmVjbGFpbV9kZWxlZ2F0aW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBycGNfY3JlZCAq Y3JlZCwKIAkJCQkgICZkZWxlZ2F0aW9uLT5mbGFncyk7CiAJCQlORlNfSShpbm9kZSktPmRlbGVn YXRpb25fc3RhdGUgPSBkZWxlZ2F0aW9uLT50eXBlOwogCQkJc3Bpbl91bmxvY2soJmRlbGVnYXRp b24tPmxvY2spOwotCQkJcHV0X3JwY2NyZWQob2xkY3JlZCk7CiAJCQlyY3VfcmVhZF91bmxvY2so KTsKKwkJCXB1dF9ycGNjcmVkKG9sZGNyZWQpOwogCQl9IGVsc2UgewogCQkJLyogV2UgYXBwZWFy IHRvIGhhdmUgcmFjZWQgd2l0aCBhIGRlbGVnYXRpb24gcmV0dXJuLiAqLwogCQkJc3Bpbl91bmxv Y2soJmRlbGVnYXRpb24tPmxvY2spOwpkaWZmIC0tZ2l0IGEvZnMvbmZzL25mczRwcm9jLmMgYi9m cy9uZnMvbmZzNHByb2MuYwppbmRleCAzNTE5ODllLi5lODM3ODZmIDEwMDY0NAotLS0gYS9mcy9u ZnMvbmZzNHByb2MuYworKysgYi9mcy9uZnMvbmZzNHByb2MuYwpAQCAtMjY3LDcgKzI2Nyw3IEBA IHN0YXRpYyBpbnQgbmZzNF9oYW5kbGVfZXhjZXB0aW9uKHN0cnVjdCBuZnNfc2VydmVyICpzZXJ2 ZXIsIGludCBlcnJvcmNvZGUsIHN0cnVjCiAJCWNhc2UgMDoKIAkJCXJldHVybiAwOwogCQljYXNl IC1ORlM0RVJSX09QRU5NT0RFOgotCQkJaWYgKG5mc19oYXZlX2RlbGVnYXRpb24oaW5vZGUsIEZN T0RFX1JFQUQpKSB7CisJCQlpZiAoaW5vZGUgJiYgbmZzX2hhdmVfZGVsZWdhdGlvbihpbm9kZSwg Rk1PREVfUkVBRCkpIHsKIAkJCQluZnNfaW5vZGVfcmV0dXJuX2RlbGVnYXRpb24oaW5vZGUpOwog CQkJCWV4Y2VwdGlvbi0+cmV0cnkgPSAxOwogCQkJCXJldHVybiAwOwpAQCAtMjc5LDEwICsyNzks OSBAQCBzdGF0aWMgaW50IG5mczRfaGFuZGxlX2V4Y2VwdGlvbihzdHJ1Y3QgbmZzX3NlcnZlciAq c2VydmVyLCBpbnQgZXJyb3Jjb2RlLCBzdHJ1YwogCQljYXNlIC1ORlM0RVJSX0RFTEVHX1JFVk9L RUQ6CiAJCWNhc2UgLU5GUzRFUlJfQURNSU5fUkVWT0tFRDoKIAkJY2FzZSAtTkZTNEVSUl9CQURf U1RBVEVJRDoKLQkJCWlmIChzdGF0ZSAhPSBOVUxMKQotCQkJCW5mc19yZW1vdmVfYmFkX2RlbGVn YXRpb24oc3RhdGUtPmlub2RlKTsKIAkJCWlmIChzdGF0ZSA9PSBOVUxMKQogCQkJCWJyZWFrOwor CQkJbmZzX3JlbW92ZV9iYWRfZGVsZWdhdGlvbihzdGF0ZS0+aW5vZGUpOwogCQkJbmZzNF9zY2hl ZHVsZV9zdGF0ZWlkX3JlY292ZXJ5KHNlcnZlciwgc3RhdGUpOwogCQkJZ290byB3YWl0X29uX3Jl Y292ZXJ5OwogCQljYXNlIC1ORlM0RVJSX0VYUElSRUQ6CkBAIC0zNzQ2LDggKzM3NDUsOSBAQCBu ZnM0X2FzeW5jX2hhbmRsZV9lcnJvcihzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2ssIGNvbnN0IHN0cnVj dCBuZnNfc2VydmVyICpzZXJ2ZXIsCiAJCWNhc2UgLU5GUzRFUlJfREVMRUdfUkVWT0tFRDoKIAkJ Y2FzZSAtTkZTNEVSUl9BRE1JTl9SRVZPS0VEOgogCQljYXNlIC1ORlM0RVJSX0JBRF9TVEFURUlE OgotCQkJaWYgKHN0YXRlICE9IE5VTEwpCi0JCQkJbmZzX3JlbW92ZV9iYWRfZGVsZWdhdGlvbihz dGF0ZS0+aW5vZGUpOworCQkJaWYgKHN0YXRlID09IE5VTEwpCisJCQkJYnJlYWs7CisJCQluZnNf cmVtb3ZlX2JhZF9kZWxlZ2F0aW9uKHN0YXRlLT5pbm9kZSk7CiAJCWNhc2UgLU5GUzRFUlJfT1BF Tk1PREU6CiAJCQlpZiAoc3RhdGUgPT0gTlVMTCkKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL2Zz L25pbGZzMi9idHJlZS5jIGIvZnMvbmlsZnMyL2J0cmVlLmMKaW5kZXggYjJlM2ZmMy4uZWNkYmFl MSAxMDA2NDQKLS0tIGEvZnMvbmlsZnMyL2J0cmVlLmMKKysrIGIvZnMvbmlsZnMyL2J0cmVlLmMK QEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlICJhbGxvYy5oIgogI2luY2x1ZGUgImRhdC5oIgog CitzdGF0aWMgdm9pZCBfX25pbGZzX2J0cmVlX2luaXQoc3RydWN0IG5pbGZzX2JtYXAgKmJtYXAp OworCiBzdGF0aWMgc3RydWN0IG5pbGZzX2J0cmVlX3BhdGggKm5pbGZzX2J0cmVlX2FsbG9jX3Bh dGgodm9pZCkKIHsKIAlzdHJ1Y3QgbmlsZnNfYnRyZWVfcGF0aCAqcGF0aDsKQEAgLTM2OCw2ICsz NzAsMzQgQEAgc3RhdGljIGludCBuaWxmc19idHJlZV9ub2RlX2Jyb2tlbihjb25zdCBzdHJ1Y3Qg bmlsZnNfYnRyZWVfbm9kZSAqbm9kZSwKIAlyZXR1cm4gcmV0OwogfQogCisvKioKKyAqIG5pbGZz X2J0cmVlX3Jvb3RfYnJva2VuIC0gdmVyaWZ5IGNvbnNpc3RlbmN5IG9mIGJ0cmVlIHJvb3Qgbm9k ZQorICogQG5vZGU6IGJ0cmVlIHJvb3Qgbm9kZSB0byBiZSBleGFtaW5lZAorICogQGlubzogaW5v ZGUgbnVtYmVyCisgKgorICogUmV0dXJuIFZhbHVlOiBJZiBub2RlIGlzIGJyb2tlbiwgMSBpcyBy ZXR1cm5lZC4gT3RoZXJ3aXNlLCAwIGlzIHJldHVybmVkLgorICovCitzdGF0aWMgaW50IG5pbGZz X2J0cmVlX3Jvb3RfYnJva2VuKGNvbnN0IHN0cnVjdCBuaWxmc19idHJlZV9ub2RlICpub2RlLAor CQkJCSAgIHVuc2lnbmVkIGxvbmcgaW5vKQoreworCWludCBsZXZlbCwgZmxhZ3MsIG5jaGlsZHJl bjsKKwlpbnQgcmV0ID0gMDsKKworCWxldmVsID0gbmlsZnNfYnRyZWVfbm9kZV9nZXRfbGV2ZWwo bm9kZSk7CisJZmxhZ3MgPSBuaWxmc19idHJlZV9ub2RlX2dldF9mbGFncyhub2RlKTsKKwluY2hp bGRyZW4gPSBuaWxmc19idHJlZV9ub2RlX2dldF9uY2hpbGRyZW4obm9kZSk7CisKKwlpZiAodW5s aWtlbHkobGV2ZWwgPCBOSUxGU19CVFJFRV9MRVZFTF9OT0RFX01JTiB8fAorCQkgICAgIGxldmVs ID4gTklMRlNfQlRSRUVfTEVWRUxfTUFYIHx8CisJCSAgICAgbmNoaWxkcmVuIDwgMCB8fAorCQkg ICAgIG5jaGlsZHJlbiA+IE5JTEZTX0JUUkVFX1JPT1RfTkNISUxEUkVOX01BWCkpIHsKKwkJcHJf Y3JpdCgiTklMRlM6IGJhZCBidHJlZSByb290IChpbm9kZSBudW1iZXI9JWx1KTogbGV2ZWwgPSAl ZCwgZmxhZ3MgPSAweCV4LCBuY2hpbGRyZW4gPSAlZFxuIiwKKwkJCWlubywgbGV2ZWwsIGZsYWdz LCBuY2hpbGRyZW4pOworCQlyZXQgPSAxOworCX0KKwlyZXR1cm4gcmV0OworfQorCiBpbnQgbmls ZnNfYnRyZWVfYnJva2VuX25vZGVfYmxvY2soc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKIHsKIAlp bnQgcmV0OwpAQCAtMTcxMyw3ICsxNzQzLDcgQEAgbmlsZnNfYnRyZWVfY29tbWl0X2NvbnZlcnRf YW5kX2luc2VydChzdHJ1Y3QgbmlsZnNfYm1hcCAqYnRyZWUsCiAKIAkvKiBjb252ZXJ0IGFuZCBp bnNlcnQgKi8KIAlkYXQgPSBOSUxGU19CTUFQX1VTRV9WQk4oYnRyZWUpID8gbmlsZnNfYm1hcF9n ZXRfZGF0KGJ0cmVlKSA6IE5VTEw7Ci0JbmlsZnNfYnRyZWVfaW5pdChidHJlZSk7CisJX19uaWxm c19idHJlZV9pbml0KGJ0cmVlKTsKIAlpZiAobnJlcSAhPSBOVUxMKSB7CiAJCW5pbGZzX2JtYXBf Y29tbWl0X2FsbG9jX3B0cihidHJlZSwgZHJlcSwgZGF0KTsKIAkJbmlsZnNfYm1hcF9jb21taXRf YWxsb2NfcHRyKGJ0cmVlLCBucmVxLCBkYXQpOwpAQCAtMjI5NCwxMiArMjMyNCwyMyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IG5pbGZzX2JtYXBfb3BlcmF0aW9ucyBuaWxmc19idHJlZV9vcHNfZ2Mg PSB7CiAJLmJvcF9nYXRoZXJfZGF0YQk9CU5VTEwsCiB9OwogCi1pbnQgbmlsZnNfYnRyZWVfaW5p dChzdHJ1Y3QgbmlsZnNfYm1hcCAqYm1hcCkKK3N0YXRpYyB2b2lkIF9fbmlsZnNfYnRyZWVfaW5p dChzdHJ1Y3QgbmlsZnNfYm1hcCAqYm1hcCkKIHsKIAlibWFwLT5iX29wcyA9ICZuaWxmc19idHJl ZV9vcHM7CiAJYm1hcC0+Yl9uY2hpbGRyZW5fcGVyX2Jsb2NrID0KIAkJTklMRlNfQlRSRUVfTk9E RV9OQ0hJTERSRU5fTUFYKG5pbGZzX2J0cmVlX25vZGVfc2l6ZShibWFwKSk7Ci0JcmV0dXJuIDA7 Cit9CisKK2ludCBuaWxmc19idHJlZV9pbml0KHN0cnVjdCBuaWxmc19ibWFwICpibWFwKQorewor CWludCByZXQgPSAwOworCisJX19uaWxmc19idHJlZV9pbml0KGJtYXApOworCisJaWYgKG5pbGZz X2J0cmVlX3Jvb3RfYnJva2VuKG5pbGZzX2J0cmVlX2dldF9yb290KGJtYXApLAorCQkJCSAgICBi bWFwLT5iX2lub2RlLT5pX2lubykpCisJCXJldCA9IC1FSU87CisJcmV0dXJuIHJldDsKIH0KIAog dm9pZCBuaWxmc19idHJlZV9pbml0X2djKHN0cnVjdCBuaWxmc19ibWFwICpibWFwKQpkaWZmIC0t Z2l0IGEvZnMvbmlsZnMyL3NlZ21lbnQuYyBiL2ZzL25pbGZzMi9zZWdtZW50LmMKaW5kZXggZWI3 ZjZhNi4uNmJiYTEwNiAxMDA2NDQKLS0tIGEvZnMvbmlsZnMyL3NlZ21lbnQuYworKysgYi9mcy9u aWxmczIvc2VnbWVudC5jCkBAIC0xOTAzLDYgKzE5MDMsNyBAQCBzdGF0aWMgdm9pZCBuaWxmc19z ZWdjdG9yX2Ryb3Bfd3JpdHRlbl9maWxlcyhzdHJ1Y3QgbmlsZnNfc2NfaW5mbyAqc2NpLAogCQkJ CQkgICAgIHN0cnVjdCB0aGVfbmlsZnMgKm5pbGZzKQogewogCXN0cnVjdCBuaWxmc19pbm9kZV9p bmZvICppaSwgKm47CisJaW50IGR1cmluZ19tb3VudCA9ICEoc2NpLT5zY19zdXBlci0+c19mbGFn cyAmIE1TX0FDVElWRSk7CiAJaW50IGRlZmVyX2lwdXQgPSBmYWxzZTsKIAogCXNwaW5fbG9jaygm bmlsZnMtPm5zX2lub2RlX2xvY2spOwpAQCAtMTkxNSwxMCArMTkxNiwxMCBAQCBzdGF0aWMgdm9p ZCBuaWxmc19zZWdjdG9yX2Ryb3Bfd3JpdHRlbl9maWxlcyhzdHJ1Y3QgbmlsZnNfc2NfaW5mbyAq c2NpLAogCQlicmVsc2UoaWktPmlfYmgpOwogCQlpaS0+aV9iaCA9IE5VTEw7CiAJCWxpc3RfZGVs X2luaXQoJmlpLT5pX2RpcnR5KTsKLQkJaWYgKCFpaS0+dmZzX2lub2RlLmlfbmxpbmspIHsKKwkJ aWYgKCFpaS0+dmZzX2lub2RlLmlfbmxpbmsgfHwgZHVyaW5nX21vdW50KSB7CiAJCQkvKgotCQkJ ICogRGVmZXIgY2FsbGluZyBpcHV0KCkgdG8gYXZvaWQgYSBkZWFkbG9jawotCQkJICogb3ZlciBJ X1NZTkMgZmxhZyBmb3IgaW5vZGVzIHdpdGggaV9ubGluayA9PSAwCisJCQkgKiBEZWZlciBjYWxs aW5nIGlwdXQoKSB0byBhdm9pZCBkZWFkbG9ja3MgaWYKKwkJCSAqIGlfbmxpbmsgPT0gMCBvciBt b3VudCBpcyBub3QgeWV0IGZpbmlzaGVkLgogCQkJICovCiAJCQlsaXN0X2FkZF90YWlsKCZpaS0+ aV9kaXJ0eSwgJnNjaS0+c2NfaXB1dF9xdWV1ZSk7CiAJCQlkZWZlcl9pcHV0ID0gdHJ1ZTsKZGlm ZiAtLWdpdCBhL2ZzL29jZnMyL2ZpbGUuYyBiL2ZzL29jZnMyL2ZpbGUuYwppbmRleCAwZGUyNGEy Li42YTdhM2Q5IDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9maWxlLmMKKysrIGIvZnMvb2NmczIvZmls ZS5jCkBAIC0yMzg3LDEwICsyMzg3LDE0IEBAIG91dF9kaW86CiAJLyogYnVmZmVyZWQgYWlvIHdv dWxkbid0IGhhdmUgcHJvcGVyIGxvY2sgY292ZXJhZ2UgdG9kYXkgKi8KIAlCVUdfT04ocmV0ID09 IC1FSU9DQlFVRVVFRCAmJiAhKGZpbGUtPmZfZmxhZ3MgJiBPX0RJUkVDVCkpOwogCisJaWYgKHVu bGlrZWx5KHdyaXR0ZW4gPD0gMCkpCisJCWdvdG8gbm9fc3luYzsKKwogCWlmICgoKGZpbGUtPmZf ZmxhZ3MgJiBPX0RTWU5DKSAmJiAhZGlyZWN0X2lvKSB8fCBJU19TWU5DKGlub2RlKSB8fAogCSAg ICAoKGZpbGUtPmZfZmxhZ3MgJiBPX0RJUkVDVCkgJiYgIWRpcmVjdF9pbykpIHsKLQkJcmV0ID0g ZmlsZW1hcF9mZGF0YXdyaXRlX3JhbmdlKGZpbGUtPmZfbWFwcGluZywgKnBwb3MsCi0JCQkJCSAg ICAgICAqcHBvcyArIGNvdW50IC0gMSk7CisJCXJldCA9IGZpbGVtYXBfZmRhdGF3cml0ZV9yYW5n ZShmaWxlLT5mX21hcHBpbmcsCisJCQkJCSAgICAgICBpb2NiLT5raV9wb3MgLSB3cml0dGVuLAor CQkJCQkgICAgICAgaW9jYi0+a2lfcG9zIC0gMSk7CiAJCWlmIChyZXQgPCAwKQogCQkJd3JpdHRl biA9IHJldDsKIApAQCAtMjQwMywxMCArMjQwNywxMiBAQCBvdXRfZGlvOgogCQl9CiAKIAkJaWYg KCFyZXQpCi0JCQlyZXQgPSBmaWxlbWFwX2ZkYXRhd2FpdF9yYW5nZShmaWxlLT5mX21hcHBpbmcs ICpwcG9zLAotCQkJCQkJICAgICAgKnBwb3MgKyBjb3VudCAtIDEpOworCQkJcmV0ID0gZmlsZW1h cF9mZGF0YXdhaXRfcmFuZ2UoZmlsZS0+Zl9tYXBwaW5nLAorCQkJCQkJICAgICAgaW9jYi0+a2lf cG9zIC0gd3JpdHRlbiwKKwkJCQkJCSAgICAgIGlvY2ItPmtpX3BvcyAtIDEpOwogCX0KIAorbm9f c3luYzoKIAkvKgogCSAqIGRlZXAgaW4gZ19mX2Ffd19uKCktPm9jZnMyX2RpcmVjdF9JTyB3ZSBw YXNzIGluIGEgb2NmczJfZGlvX2VuZF9pbwogCSAqIGZ1bmN0aW9uIHBvaW50ZXIgd2hpY2ggaXMg Y2FsbGVkIHdoZW4gb19kaXJlY3QgaW8gY29tcGxldGVzIHNvIHRoYXQKZGlmZiAtLWdpdCBhL2Zz L3Byb2MvdGFza19tbXUuYyBiL2ZzL3Byb2MvdGFza19tbXUuYwppbmRleCBlZjE3NDBkLi5kMWJk NmE5IDEwMDY0NAotLS0gYS9mcy9wcm9jL3Rhc2tfbW11LmMKKysrIGIvZnMvcHJvYy90YXNrX21t dS5jCkBAIC04NjQsOSArODY0LDE5IEBAIG91dDoKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMg aW50IHBhZ2VtYXBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkK K3sKKwkvKiBkbyBub3QgZGlzY2xvc2UgcGh5c2ljYWwgYWRkcmVzc2VzIHRvIHVucHJpdmlsZWdl ZAorCSAgIHVzZXJzcGFjZSAoY2xvc2VzIGEgcm93aGFtbWVyIGF0dGFjayB2ZWN0b3IpICovCisJ aWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQorCQlyZXR1cm4gLUVQRVJNOworCXJldHVybiAw OworfQorCiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHByb2NfcGFnZW1hcF9vcGVyYXRp b25zID0gewogCS5sbHNlZWsJCT0gbWVtX2xzZWVrLCAvKiBib3Jyb3cgdGhpcyAqLwogCS5yZWFk CQk9IHBhZ2VtYXBfcmVhZCwKKwkub3BlbgkJPSBwYWdlbWFwX29wZW4sCiB9OwogI2VuZGlmIC8q IENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUiAqLwogCmRpZmYgLS1naXQgYS9mcy91ZGYvaW5vZGUu YyBiL2ZzL3VkZi9pbm9kZS5jCmluZGV4IDJhNzA2YmIuLmUwODE0NDAgMTAwNjQ0Ci0tLSBhL2Zz L3VkZi9pbm9kZS5jCisrKyBiL2ZzL3VkZi9pbm9kZS5jCkBAIC0xMjcxLDYgKzEyNzEsNyBAQCBz dGF0aWMgdm9pZCB1ZGZfZmlsbF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgYnVm ZmVyX2hlYWQgKmJoKQogCXN0cnVjdCB1ZGZfc2JfaW5mbyAqc2JpID0gVURGX1NCKGlub2RlLT5p X3NiKTsKIAlzdHJ1Y3QgdWRmX2lub2RlX2luZm8gKmlpbmZvID0gVURGX0koaW5vZGUpOwogCXVu c2lnbmVkIGludCBsaW5rX2NvdW50OworCWludCBicyA9IGlub2RlLT5pX3NiLT5zX2Jsb2Nrc2l6 ZTsKIAogCWZlID0gKHN0cnVjdCBmaWxlRW50cnkgKiliaC0+Yl9kYXRhOwogCWVmZSA9IChzdHJ1 Y3QgZXh0ZW5kZWRGaWxlRW50cnkgKiliaC0+Yl9kYXRhOwpAQCAtMTI5MSw0MSArMTI5MiwzOCBA QCBzdGF0aWMgdm9pZCB1ZGZfZmlsbF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3Qg YnVmZmVyX2hlYWQgKmJoKQogCWlmIChmZS0+ZGVzY1RhZy50YWdJZGVudCA9PSBjcHVfdG9fbGUx NihUQUdfSURFTlRfRUZFKSkgewogCQlpaW5mby0+aV9lZmUgPSAxOwogCQlpaW5mby0+aV91c2Ug PSAwOwotCQlpZiAodWRmX2FsbG9jX2lfZGF0YShpbm9kZSwgaW5vZGUtPmlfc2ItPnNfYmxvY2tz aXplIC0KKwkJaWYgKHVkZl9hbGxvY19pX2RhdGEoaW5vZGUsIGJzIC0KIAkJCQkJc2l6ZW9mKHN0 cnVjdCBleHRlbmRlZEZpbGVFbnRyeSkpKSB7CiAJCQltYWtlX2JhZF9pbm9kZShpbm9kZSk7CiAJ CQlyZXR1cm47CiAJCX0KIAkJbWVtY3B5KGlpbmZvLT5pX2V4dC5pX2RhdGEsCiAJCSAgICAgICBi aC0+Yl9kYXRhICsgc2l6ZW9mKHN0cnVjdCBleHRlbmRlZEZpbGVFbnRyeSksCi0JCSAgICAgICBp bm9kZS0+aV9zYi0+c19ibG9ja3NpemUgLQotCQkJCQlzaXplb2Yoc3RydWN0IGV4dGVuZGVkRmls ZUVudHJ5KSk7CisJCSAgICAgICBicyAtIHNpemVvZihzdHJ1Y3QgZXh0ZW5kZWRGaWxlRW50cnkp KTsKIAl9IGVsc2UgaWYgKGZlLT5kZXNjVGFnLnRhZ0lkZW50ID09IGNwdV90b19sZTE2KFRBR19J REVOVF9GRSkpIHsKIAkJaWluZm8tPmlfZWZlID0gMDsKIAkJaWluZm8tPmlfdXNlID0gMDsKLQkJ aWYgKHVkZl9hbGxvY19pX2RhdGEoaW5vZGUsIGlub2RlLT5pX3NiLT5zX2Jsb2Nrc2l6ZSAtCi0J CQkJCQlzaXplb2Yoc3RydWN0IGZpbGVFbnRyeSkpKSB7CisJCWlmICh1ZGZfYWxsb2NfaV9kYXRh KGlub2RlLCBicyAtIHNpemVvZihzdHJ1Y3QgZmlsZUVudHJ5KSkpIHsKIAkJCW1ha2VfYmFkX2lu b2RlKGlub2RlKTsKIAkJCXJldHVybjsKIAkJfQogCQltZW1jcHkoaWluZm8tPmlfZXh0LmlfZGF0 YSwKIAkJICAgICAgIGJoLT5iX2RhdGEgKyBzaXplb2Yoc3RydWN0IGZpbGVFbnRyeSksCi0JCSAg ICAgICBpbm9kZS0+aV9zYi0+c19ibG9ja3NpemUgLSBzaXplb2Yoc3RydWN0IGZpbGVFbnRyeSkp OworCQkgICAgICAgYnMgLSBzaXplb2Yoc3RydWN0IGZpbGVFbnRyeSkpOwogCX0gZWxzZSBpZiAo ZmUtPmRlc2NUYWcudGFnSWRlbnQgPT0gY3B1X3RvX2xlMTYoVEFHX0lERU5UX1VTRSkpIHsKIAkJ aWluZm8tPmlfZWZlID0gMDsKIAkJaWluZm8tPmlfdXNlID0gMTsKIAkJaWluZm8tPmlfbGVuQWxs b2MgPSBsZTMyX3RvX2NwdSgKIAkJCQkoKHN0cnVjdCB1bmFsbG9jU3BhY2VFbnRyeSAqKWJoLT5i X2RhdGEpLT4KIAkJCQkgbGVuZ3RoQWxsb2NEZXNjcyk7Ci0JCWlmICh1ZGZfYWxsb2NfaV9kYXRh KGlub2RlLCBpbm9kZS0+aV9zYi0+c19ibG9ja3NpemUgLQorCQlpZiAodWRmX2FsbG9jX2lfZGF0 YShpbm9kZSwgYnMgLQogCQkJCQlzaXplb2Yoc3RydWN0IHVuYWxsb2NTcGFjZUVudHJ5KSkpIHsK IAkJCW1ha2VfYmFkX2lub2RlKGlub2RlKTsKIAkJCXJldHVybjsKIAkJfQogCQltZW1jcHkoaWlu Zm8tPmlfZXh0LmlfZGF0YSwKIAkJICAgICAgIGJoLT5iX2RhdGEgKyBzaXplb2Yoc3RydWN0IHVu YWxsb2NTcGFjZUVudHJ5KSwKLQkJICAgICAgIGlub2RlLT5pX3NiLT5zX2Jsb2Nrc2l6ZSAtCi0J CQkJCXNpemVvZihzdHJ1Y3QgdW5hbGxvY1NwYWNlRW50cnkpKTsKKwkJICAgICAgIGJzIC0gc2l6 ZW9mKHN0cnVjdCB1bmFsbG9jU3BhY2VFbnRyeSkpOwogCQlyZXR1cm47CiAJfQogCkBAIC0xNDAz LDYgKzE0MDEsMTkgQEAgc3RhdGljIHZvaWQgdWRmX2ZpbGxfaW5vZGUoc3RydWN0IGlub2RlICpp bm9kZSwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKIAkJCQkJCQlpaW5mby0+aV9sZW5FQXR0cjsK IAl9CiAKKwkvKgorCSAqIFNhbml0eSBjaGVjayBsZW5ndGggb2YgYWxsb2NhdGlvbiBkZXNjcmlw dG9ycyBhbmQgZXh0ZW5kZWQgYXR0cnMgdG8KKwkgKiBhdm9pZCBpbnRlZ2VyIG92ZXJmbG93cwor CSAqLworCWlmIChpaW5mby0+aV9sZW5FQXR0ciA+IGJzIHx8IGlpbmZvLT5pX2xlbkFsbG9jID4g YnMpIHsKKwkJbWFrZV9iYWRfaW5vZGUoaW5vZGUpOworCQlyZXR1cm47CisJfQorCS8qIE5vdyBk byBleGFjdCBjaGVja3MgKi8KKwlpZiAodWRmX2ZpbGVfZW50cnlfYWxsb2Nfb2Zmc2V0KGlub2Rl KSArIGlpbmZvLT5pX2xlbkFsbG9jID4gYnMpIHsKKwkJbWFrZV9iYWRfaW5vZGUoaW5vZGUpOwor CQlyZXR1cm47CisJfQogCS8qIFNhbml0eSBjaGVja3MgZm9yIGZpbGVzIGluIElDQiBzbyB0aGF0 IHdlIGRvbid0IGdldCBjb25mdXNlZCBsYXRlciAqLwogCWlmIChpaW5mby0+aV9hbGxvY190eXBl ID09IElDQlRBR19GTEFHX0FEX0lOX0lDQikgewogCQkvKgpAQCAtMTQxNCw4ICsxNDI1LDcgQEAg c3RhdGljIHZvaWQgdWRmX2ZpbGxfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGJ1 ZmZlcl9oZWFkICpiaCkKIAkJCXJldHVybjsKIAkJfQogCQkvKiBGaWxlIGluIElDQiBoYXMgdG8g Zml0IGluIHRoZXJlLi4uICovCi0JCWlmIChpbm9kZS0+aV9zaXplID4gaW5vZGUtPmlfc2ItPnNf YmxvY2tzaXplIC0KLQkJCQkJdWRmX2ZpbGVfZW50cnlfYWxsb2Nfb2Zmc2V0KGlub2RlKSkgewor CQlpZiAoaW5vZGUtPmlfc2l6ZSA+IGJzIC0gdWRmX2ZpbGVfZW50cnlfYWxsb2Nfb2Zmc2V0KGlu b2RlKSkgewogCQkJbWFrZV9iYWRfaW5vZGUoaW5vZGUpOwogCQkJcmV0dXJuOwogCQl9CmRpZmYg LS1naXQgYS9mcy94ZnMveGZzX2ZpbGUuYyBiL2ZzL3hmcy94ZnNfZmlsZS5jCmluZGV4IDc1M2Vk OWIuLjhhZTkzN2EgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfZmlsZS5jCisrKyBiL2ZzL3hmcy94 ZnNfZmlsZS5jCkBAIC01MTYsNyArNTE2LDggQEAgU1RBVElDIGludAkJCQkvKiBlcnJvciAocG9z aXRpdmUpICovCiB4ZnNfemVyb19sYXN0X2Jsb2NrKAogCXhmc19pbm9kZV90CSppcCwKIAl4ZnNf ZnNpemVfdAlvZmZzZXQsCi0JeGZzX2ZzaXplX3QJaXNpemUpCisJeGZzX2ZzaXplX3QJaXNpemUs CisJYm9vbAkJKmRpZF96ZXJvaW5nKQogewogCXhmc19maWxlb2ZmX3QJbGFzdF9mc2I7CiAJeGZz X21vdW50X3QJKm1wID0gaXAtPmlfbW91bnQ7CkBAIC01NjAsNiArNTYxLDcgQEAgeGZzX3plcm9f bGFzdF9ibG9jaygKIAl6ZXJvX2xlbiA9IG1wLT5tX3NiLnNiX2Jsb2Nrc2l6ZSAtIHplcm9fb2Zm c2V0OwogCWlmIChpc2l6ZSArIHplcm9fbGVuID4gb2Zmc2V0KQogCQl6ZXJvX2xlbiA9IG9mZnNl dCAtIGlzaXplOworCSpkaWRfemVyb2luZyA9IHRydWU7CiAJZXJyb3IgPSB4ZnNfaW96ZXJvKGlw LCBpc2l6ZSwgemVyb19sZW4pOwogCiAJeGZzX2lsb2NrKGlwLCBYRlNfSUxPQ0tfRVhDTCk7CkBA IC01ODIsNyArNTg0LDggQEAgaW50CQkJCQkvKiBlcnJvciAocG9zaXRpdmUpICovCiB4ZnNfemVy b19lb2YoCiAJeGZzX2lub2RlX3QJKmlwLAogCXhmc19vZmZfdAlvZmZzZXQsCQkvKiBzdGFydGlu ZyBJL08gb2Zmc2V0ICovCi0JeGZzX2ZzaXplX3QJaXNpemUpCQkvKiBjdXJyZW50IGlub2RlIHNp emUgKi8KKwl4ZnNfZnNpemVfdAlpc2l6ZSwJCS8qIGN1cnJlbnQgaW5vZGUgc2l6ZSAqLworCWJv b2wJCSpkaWRfemVyb2luZykKIHsKIAl4ZnNfbW91bnRfdAkqbXAgPSBpcC0+aV9tb3VudDsKIAl4 ZnNfZmlsZW9mZl90CXN0YXJ0X3plcm9fZnNiOwpAQCAtNjAyLDcgKzYwNSw3IEBAIHhmc196ZXJv X2VvZigKIAkgKiBGaXJzdCBoYW5kbGUgemVyb2luZyB0aGUgYmxvY2sgb24gd2hpY2ggaXNpemUg cmVzaWRlcy4KIAkgKiBXZSBvbmx5IHplcm8gYSBwYXJ0IG9mIHRoYXQgYmxvY2sgc28gaXQgaXMg aGFuZGxlZCBzcGVjaWFsbHkuCiAJICovCi0JZXJyb3IgPSB4ZnNfemVyb19sYXN0X2Jsb2NrKGlw LCBvZmZzZXQsIGlzaXplKTsKKwllcnJvciA9IHhmc196ZXJvX2xhc3RfYmxvY2soaXAsIG9mZnNl dCwgaXNpemUsIGRpZF96ZXJvaW5nKTsKIAlpZiAoZXJyb3IpIHsKIAkJQVNTRVJUKHhmc19pc2ls b2NrZWQoaXAsIFhGU19JTE9DS19FWENMfFhGU19JT0xPQ0tfRVhDTCkpOwogCQlyZXR1cm4gZXJy b3I7CkBAIC02NzIsNiArNjc1LDcgQEAgeGZzX3plcm9fZW9mKAogCQkJZ290byBvdXRfbG9jazsK IAkJfQogCisJCSpkaWRfemVyb2luZyA9IHRydWU7CiAJCXN0YXJ0X3plcm9fZnNiID0gaW1hcC5i cl9zdGFydG9mZiArIGltYXAuYnJfYmxvY2tjb3VudDsKIAkJQVNTRVJUKHN0YXJ0X3plcm9fZnNi IDw9IChlbmRfemVyb19mc2IgKyAxKSk7CiAKQEAgLTcyOSwxMyArNzMzLDE1IEBAIHJlc3RhcnQ6 CiAJICovCiAJaWYgKChpcC0+aV9uZXdfc2l6ZSAmJiAqcG9zID4gaXAtPmlfbmV3X3NpemUpIHx8 CiAJICAgICghaXAtPmlfbmV3X3NpemUgJiYgKnBvcyA+IGlwLT5pX3NpemUpKSB7CisJCWJvb2wJ emVybyA9IGZhbHNlOworCiAJCWlmICgqaW9sb2NrID09IFhGU19JT0xPQ0tfU0hBUkVEKSB7CiAJ CQl4ZnNfcndfaXVubG9jayhpcCwgWEZTX0lMT0NLX0VYQ0wgfCAqaW9sb2NrKTsKIAkJCSppb2xv Y2sgPSBYRlNfSU9MT0NLX0VYQ0w7CiAJCQl4ZnNfcndfaWxvY2soaXAsIFhGU19JTE9DS19FWENM IHwgKmlvbG9jayk7CiAJCQlnb3RvIHJlc3RhcnQ7CiAJCX0KLQkJZXJyb3IgPSAteGZzX3plcm9f ZW9mKGlwLCAqcG9zLCBpcC0+aV9zaXplKTsKKwkJZXJyb3IgPSAteGZzX3plcm9fZW9mKGlwLCAq cG9zLCBpcC0+aV9zaXplLCAmemVybyk7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL2ZzL3hmcy94 ZnNfaW9wcy5jIGIvZnMveGZzL3hmc19pb3BzLmMKaW5kZXggYmQyZmI0My4uMWMwMWYwNCAxMDA2 NDQKLS0tIGEvZnMveGZzL3hmc19pb3BzLmMKKysrIGIvZnMveGZzL3hmc19pb3BzLmMKQEAgLTc2 Niw2ICs3NjYsNyBAQCB4ZnNfc2V0YXR0cl9zaXplKAogCWludAkJCWVycm9yOwogCXVpbnQJCQls b2NrX2ZsYWdzOwogCXVpbnQJCQljb21taXRfZmxhZ3MgPSAwOworCWJvb2wJCQlkaWRfemVyb2lu ZyA9IGZhbHNlOwogCiAJdHJhY2VfeGZzX3NldGF0dHIoaXApOwogCkBAIC04MTIsMjAgKzgxMywx NiBAQCB4ZnNfc2V0YXR0cl9zaXplKAogCQlnb3RvIG91dF91bmxvY2s7CiAKIAkvKgotCSAqIE5v dyB3ZSBjYW4gbWFrZSB0aGUgY2hhbmdlcy4gIEJlZm9yZSB3ZSBqb2luIHRoZSBpbm9kZSB0byB0 aGUKLQkgKiB0cmFuc2FjdGlvbiwgdGFrZSBjYXJlIG9mIHRoZSBwYXJ0IG9mIHRoZSB0cnVuY2F0 aW9uIHRoYXQgbXVzdCBiZQotCSAqIGRvbmUgd2l0aG91dCB0aGUgaW5vZGUgbG9jay4gIFRoaXMg bmVlZHMgdG8gYmUgZG9uZSBiZWZvcmUgam9pbmluZwotCSAqIHRoZSBpbm9kZSB0byB0aGUgdHJh bnNhY3Rpb24sIGJlY2F1c2UgdGhlIGlub2RlIGNhbm5vdCBiZSB1bmxvY2tlZAotCSAqIG9uY2Ug aXQgaXMgYSBwYXJ0IG9mIHRoZSB0cmFuc2FjdGlvbi4KKwkgKiBGaWxlIGRhdGEgY2hhbmdlcyBt dXN0IGJlIGNvbXBsZXRlIGJlZm9yZSB3ZSBzdGFydCB0aGUgdHJhbnNhY3Rpb24gdG8KKwkgKiBt b2RpZnkgdGhlIGlub2RlLiAgVGhpcyBuZWVkcyB0byBiZSBkb25lIGJlZm9yZSBqb2luaW5nIHRo ZSBpbm9kZSB0bworCSAqIHRoZSB0cmFuc2FjdGlvbiBiZWNhdXNlIHRoZSBpbm9kZSBjYW5ub3Qg YmUgdW5sb2NrZWQgb25jZSBpdCBpcyBhCisJICogcGFydCBvZiB0aGUgdHJhbnNhY3Rpb24uCisJ ICoKKwkgKiBTdGFydCB3aXRoIHplcm9pbmcgYW55IGRhdGEgYmxvY2sgYmV5b25kIEVPRiB0aGF0 IHdlIG1heSBleHBvc2Ugb24KKwkgKiBmaWxlIGV4dGVuc2lvbi4KIAkgKi8KIAlpZiAoaWF0dHIt PmlhX3NpemUgPiBpcC0+aV9zaXplKSB7Ci0JCS8qCi0JCSAqIERvIHRoZSBmaXJzdCBwYXJ0IG9m IGdyb3dpbmcgYSBmaWxlOiB6ZXJvIGFueSBkYXRhIGluIHRoZQotCQkgKiBsYXN0IGJsb2NrIHRo YXQgaXMgYmV5b25kIHRoZSBvbGQgRU9GLiAgV2UgbmVlZCB0byBkbyB0aGlzCi0JCSAqIGJlZm9y ZSB0aGUgaW5vZGUgaXMgam9pbmVkIHRvIHRoZSB0cmFuc2FjdGlvbiB0byBtb2RpZnkKLQkJICog aV9zaXplLgotCQkgKi8KLQkJZXJyb3IgPSB4ZnNfemVyb19lb2YoaXAsIGlhdHRyLT5pYV9zaXpl LCBpcC0+aV9zaXplKTsKKwkJZXJyb3IgPSB4ZnNfemVyb19lb2YoaXAsIGlhdHRyLT5pYV9zaXpl LCBpcC0+aV9zaXplLCAmZGlkX3plcm9pbmcpOwogCQlpZiAoZXJyb3IpCiAJCQlnb3RvIG91dF91 bmxvY2s7CiAJfQpAQCAtODM3LDIzICs4MzQsMTggQEAgeGZzX3NldGF0dHJfc2l6ZSgKIAkgKiBh bnkgcHJldmlvdXMgd3JpdGVzIHRoYXQgYXJlIGJleW9uZCB0aGUgb24gZGlzayBFT0YgYW5kIHRo ZSBuZXcKIAkgKiBFT0YgdGhhdCBoYXZlIG5vdCBiZWVuIHdyaXR0ZW4gb3V0IG5lZWQgdG8gYmUg d3JpdHRlbiBoZXJlLiAgSWYgd2UKIAkgKiBkbyBub3Qgd3JpdGUgdGhlIGRhdGEgb3V0LCB3ZSBl eHBvc2Ugb3Vyc2VsdmVzIHRvIHRoZSBudWxsIGZpbGVzCi0JICogcHJvYmxlbS4KLQkgKgotCSAq IE9ubHkgZmx1c2ggZnJvbSB0aGUgb24gZGlzayBzaXplIHRvIHRoZSBzbWFsbGVyIG9mIHRoZSBp biBtZW1vcnkKLQkgKiBmaWxlIHNpemUgb3IgdGhlIG5ldyBzaXplIGFzIHRoYXQncyB0aGUgcmFu Z2Ugd2UgcmVhbGx5IGNhcmUgYWJvdXQKLQkgKiBoZXJlIGFuZCBwcmV2ZW50cyB3YWl0aW5nIGZv ciBvdGhlciBkYXRhIG5vdCB3aXRoaW4gdGhlIHJhbmdlIHdlCi0JICogY2FyZSBhYm91dCBoZXJl LgorCSAqIHByb2JsZW0uIE5vdGUgdGhhdCB0aGlzIGluY2x1ZGVzIGFueSBibG9jayB6ZXJvaW5n IHdlIGRpZCBhYm92ZTsKKwkgKiBvdGhlcndpc2UgdGhvc2UgYmxvY2tzIG1heSBub3QgYmUgemVy b2VkIGFmdGVyIGEgY3Jhc2guCiAJICovCi0JaWYgKGlwLT5pX3NpemUgIT0gaXAtPmlfZC5kaV9z aXplICYmIGlhdHRyLT5pYV9zaXplID4gaXAtPmlfZC5kaV9zaXplKSB7CisJaWYgKGlhdHRyLT5p YV9zaXplID4gaXAtPmlfZC5kaV9zaXplICYmCisJICAgIChpcC0+aV9zaXplICE9IGlwLT5pX2Qu ZGlfc2l6ZSB8fCBkaWRfemVyb2luZykpIHsKIAkJZXJyb3IgPSB4ZnNfZmx1c2hfcGFnZXMoaXAs IGlwLT5pX2QuZGlfc2l6ZSwgaWF0dHItPmlhX3NpemUsIDAsCiAJCQkJCUZJX05PTkUpOwogCQlp ZiAoZXJyb3IpCiAJCQlnb3RvIG91dF91bmxvY2s7CiAJfQogCi0JLyoKLQkgKiBXYWl0IGZvciBh bGwgZGlyZWN0IEkvTyB0byBjb21wbGV0ZS4KLQkgKi8KKwkvKiBOb3cgd2FpdCBmb3IgYWxsIGRp cmVjdCBJL08gdG8gY29tcGxldGUuICovCiAJaW5vZGVfZGlvX3dhaXQoaW5vZGUpOwogCiAJZXJy b3IgPSAtYmxvY2tfdHJ1bmNhdGVfcGFnZShpbm9kZS0+aV9tYXBwaW5nLCBpYXR0ci0+aWFfc2l6 ZSwKZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfdm5vZGVvcHMuaCBiL2ZzL3hmcy94ZnNfdm5vZGVv cHMuaAppbmRleCAzNWQzZDUxLi5jMGY3NzE0IDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX3Zub2Rl b3BzLmgKKysrIGIvZnMveGZzL3hmc192bm9kZW9wcy5oCkBAIC01OSw2ICs1OSw3IEBAIGludCB4 ZnNfZmx1c2hfcGFnZXMoc3RydWN0IHhmc19pbm9kZSAqaXAsIHhmc19vZmZfdCBmaXJzdCwKIAkJ eGZzX29mZl90IGxhc3QsIHVpbnQ2NF90IGZsYWdzLCBpbnQgZmlvcHQpOwogaW50IHhmc193YWl0 X29uX3BhZ2VzKHN0cnVjdCB4ZnNfaW5vZGUgKmlwLCB4ZnNfb2ZmX3QgZmlyc3QsIHhmc19vZmZf dCBsYXN0KTsKIAotaW50IHhmc196ZXJvX2VvZihzdHJ1Y3QgeGZzX2lub2RlICosIHhmc19vZmZf dCwgeGZzX2ZzaXplX3QpOworaW50CXhmc196ZXJvX2VvZihzdHJ1Y3QgeGZzX2lub2RlICppcCwg eGZzX29mZl90IG9mZnNldCwKKwkJICAgICB4ZnNfZnNpemVfdCBpc2l6ZSwgYm9vbCAqZGlkX3pl cm9pbmcpOwogCiAjZW5kaWYgLyogX1hGU19WTk9ERU9QU19IICovCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L2Jsa190eXBlcy5oIGIvaW5jbHVkZS9saW51eC9ibGtfdHlwZXMuaAppbmRleCA0 MDUzY2JkLi5kZGNlMjNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Jsa190eXBlcy5oCisr KyBiL2luY2x1ZGUvbGludXgvYmxrX3R5cGVzLmgKQEAgLTE0NCw3ICsxNDQsOSBAQCBlbnVtIHJx X2ZsYWdfYml0cyB7CiAJX19SRVFfRUxWUFJJViwJCS8qIGVsZXZhdG9yIHByaXZhdGUgZGF0YSBh dHRhY2hlZCAqLwogCV9fUkVRX0ZBSUxFRCwJCS8qIHNldCBpZiB0aGUgcmVxdWVzdCBmYWlsZWQg Ki8KIAlfX1JFUV9RVUlFVCwJCS8qIGRvbid0IHdvcnJ5IGFib3V0IGVycm9ycyAqLwotCV9fUkVR X1BSRUVNUFQsCQkvKiBzZXQgZm9yICJpZGVfcHJlZW1wdCIgcmVxdWVzdHMgKi8KKwlfX1JFUV9Q UkVFTVBULAkJLyogc2V0IGZvciAiaWRlX3ByZWVtcHQiIHJlcXVlc3RzIGFuZCBhbHNvCisJCQkJ ICAgZm9yIHJlcXVlc3RzIGZvciB3aGljaCB0aGUgU0NTSSAicXVpZXNjZSIKKwkJCQkgICBzdGF0 ZSBtdXN0IGJlIGlnbm9yZWQuICovCiAJX19SRVFfQUxMT0NFRCwJCS8qIHJlcXVlc3QgY2FtZSBm cm9tIG91ciBhbGxvYyBwb29sICovCiAJX19SRVFfQ09QWV9VU0VSLAkvKiBjb250YWlucyBjb3Bp ZXMgb2YgdXNlciBwYWdlcyAqLwogCV9fUkVRX0ZMVVNIX1NFUSwJLyogcmVxdWVzdCBmb3IgZmx1 c2ggc2VxdWVuY2UgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY29tcGlsZXItZ2NjNC5o IGIvaW5jbHVkZS9saW51eC9jb21waWxlci1nY2M0LmgKaW5kZXggZTJhMzYwYS4uNTlhN2U0YyAx MDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jb21waWxlci1nY2M0LmgKKysrIGIvaW5jbHVkZS9s aW51eC9jb21waWxlci1nY2M0LmgKQEAgLTI5LDYgKzI5LDggQEAKICAgIHRoZSBrZXJuZWwgY29u dGV4dCAqLwogI2RlZmluZSBfX2NvbGQJCQlfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpCiAKKyNk ZWZpbmUgX19saW5rdGltZV9lcnJvcihtZXNzYWdlKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18o bWVzc2FnZSkpKQorCiAvKgogICogR0NDICdhc20gZ290bycgbWlzY29tcGlsZXMgY2VydGFpbiBj b2RlIHNlcXVlbmNlczoKICAqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgg Yi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgKaW5kZXggN2M3NTQ2Yi4uNjVjOGI3OCAxMDA2NDQK LS0tIGEvaW5jbHVkZS9saW51eC9jb21waWxlci5oCisrKyBiL2luY2x1ZGUvbGludXgvY29tcGls ZXIuaApAQCAtMjk3LDcgKzI5Nyw5IEBAIHZvaWQgZnRyYWNlX2xpa2VseV91cGRhdGUoc3RydWN0 IGZ0cmFjZV9icmFuY2hfZGF0YSAqZiwgaW50IHZhbCwgaW50IGV4cGVjdCk7CiAjaWZuZGVmIF9f Y29tcGlsZXRpbWVfZXJyb3IKICMgZGVmaW5lIF9fY29tcGlsZXRpbWVfZXJyb3IobWVzc2FnZSkK ICNlbmRpZgotCisjaWZuZGVmIF9fbGlua3RpbWVfZXJyb3IKKyMgZGVmaW5lIF9fbGlua3RpbWVf ZXJyb3IobWVzc2FnZSkKKyNlbmRpZgogLyoKICAqIFByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20g bWVyZ2luZyBvciByZWZldGNoaW5nIGFjY2Vzc2VzLiAgVGhlIGNvbXBpbGVyCiAgKiBpcyBhbHNv IGZvcmJpZGRlbiBmcm9tIHJlb3JkZXJpbmcgc3VjY2Vzc2l2ZSBpbnN0YW5jZXMgb2YgQUNDRVNT X09OQ0UoKSwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZnNub3RpZnkuaCBiL2luY2x1ZGUv bGludXgvZnNub3RpZnkuaAppbmRleCAyYTUzZjEwLi5kYWQ0ZjYxIDEwMDY0NAotLS0gYS9pbmNs dWRlL2xpbnV4L2Zzbm90aWZ5LmgKKysrIGIvaW5jbHVkZS9saW51eC9mc25vdGlmeS5oCkBAIC0x MDAsOCArMTAwLDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmc25vdGlmeV9tb3ZlKHN0cnVjdCBp bm9kZSAqb2xkX2Rpciwgc3RydWN0IGlub2RlICpuZXdfZGlyLAogCQluZXdfZGlyX21hc2sgfD0g RlNfSVNESVI7CiAJfQogCi0JZnNub3RpZnkob2xkX2Rpciwgb2xkX2Rpcl9tYXNrLCBvbGRfZGly LCBGU05PVElGWV9FVkVOVF9JTk9ERSwgb2xkX25hbWUsIGZzX2Nvb2tpZSk7Ci0JZnNub3RpZnko bmV3X2RpciwgbmV3X2Rpcl9tYXNrLCBuZXdfZGlyLCBGU05PVElGWV9FVkVOVF9JTk9ERSwgbmV3 X25hbWUsIGZzX2Nvb2tpZSk7CisJZnNub3RpZnkob2xkX2Rpciwgb2xkX2Rpcl9tYXNrLCBzb3Vy Y2UsIEZTTk9USUZZX0VWRU5UX0lOT0RFLCBvbGRfbmFtZSwKKwkJIGZzX2Nvb2tpZSk7CisJZnNu b3RpZnkobmV3X2RpciwgbmV3X2Rpcl9tYXNrLCBzb3VyY2UsIEZTTk9USUZZX0VWRU5UX0lOT0RF LCBuZXdfbmFtZSwKKwkJIGZzX2Nvb2tpZSk7CiAKIAlpZiAodGFyZ2V0KQogCQlmc25vdGlmeV9s aW5rX2NvdW50KHRhcmdldCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIGIv aW5jbHVkZS9saW51eC9rZXJuZWwuaAppbmRleCAwYjhjYTM1Li5kY2Y2YThiIDEwMDY0NAotLS0g YS9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oCisrKyBiL2luY2x1ZGUvbGludXgva2VybmVsLmgKQEAg LTY3OSw2ICs2NzksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZnRyYWNlX2R1bXAoZW51bSBmdHJh Y2VfZHVtcF9tb2RlIG9vcHNfZHVtcF9tb2RlKSB7IH0KICNkZWZpbmUgQlVJTERfQlVHX09OX1pF Uk8oZSkgKDApCiAjZGVmaW5lIEJVSUxEX0JVR19PTl9OVUxMKGUpICgodm9pZCopMCkKICNkZWZp bmUgQlVJTERfQlVHX09OKGNvbmRpdGlvbikKKyNkZWZpbmUgQlVJTERfQlVHKCkgKDApCiAjZWxz ZSAvKiBfX0NIRUNLRVJfXyAqLwogCiAvKiBGb3JjZSBhIGNvbXBpbGF0aW9uIGVycm9yIGlmIGEg Y29uc3RhbnQgZXhwcmVzc2lvbiBpcyBub3QgYSBwb3dlciBvZiAyICovCkBAIC03MTcsNiArNzE4 LDIxIEBAIGV4dGVybiBpbnQgX19idWlsZF9idWdfb25fZmFpbGVkOwogCQlpZiAoY29uZGl0aW9u KSBfX2J1aWxkX2J1Z19vbl9mYWlsZWQgPSAxOwlcCiAJfSB3aGlsZSgwKQogI2VuZGlmCisKKy8q KgorICogQlVJTERfQlVHIC0gYnJlYWsgY29tcGlsZSBpZiB1c2VkLgorICoKKyAqIElmIHlvdSBo YXZlIHNvbWUgY29kZSB0aGF0IHlvdSBleHBlY3QgdGhlIGNvbXBpbGVyIHRvIGVsaW1pbmF0ZSBh dAorICogYnVpbGQgdGltZSwgeW91IHNob3VsZCB1c2UgQlVJTERfQlVHIHRvIGRldGVjdCBpZiBp dCBpcworICogdW5leHBlY3RlZGx5IHVzZWQuCisgKi8KKyNkZWZpbmUgQlVJTERfQlVHKCkJCQkJ CQlcCisJZG8gewkJCQkJCQlcCisJCWV4dGVybiB2b2lkIF9fYnVpbGRfYnVnX2ZhaWxlZCh2b2lk KQkJXAorCQkJX19saW5rdGltZV9lcnJvcigiQlVJTERfQlVHIGZhaWxlZCIpOwlcCisJCV9fYnVp bGRfYnVnX2ZhaWxlZCgpOwkJCQlcCisJfSB3aGlsZSAoMCkKKwogI2VuZGlmCS8qIF9fQ0hFQ0tF Ul9fICovCiAKIC8qIFRyYXAgcGFzdGVycyBvZiBfX0ZVTkNUSU9OX18gYXQgY29tcGlsZS10aW1l ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3VzYi9oY2QuaCBiL2luY2x1ZGUvbGludXgv dXNiL2hjZC5oCmluZGV4IDBkYWE0NmIuLjRmYzNlNWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlu dXgvdXNiL2hjZC5oCisrKyBiL2luY2x1ZGUvbGludXgvdXNiL2hjZC5oCkBAIC0xMjgsNiArMTI4 LDggQEAgc3RydWN0IHVzYl9oY2QgewogCXVuc2lnbmVkCQl3aXJlbGVzczoxOwkvKiBXaXJlbGVz cyBVU0IgSENEICovCiAJdW5zaWduZWQJCWF1dGhvcml6ZWRfZGVmYXVsdDoxOwogCXVuc2lnbmVk CQloYXNfdHQ6MTsJLyogSW50ZWdyYXRlZCBUVCBpbiByb290IGh1YiAqLworCXVuc2lnbmVkCQlj YW50X3JlY3Zfd2FrZXVwczoxOworCQkJLyogd2FrZXVwIHJlcXVlc3RzIGZyb20gZG93bnN0cmVh bSBhcmVuJ3QgcmVjZWl2ZWQgKi8KIAogCWludAkJCWlycTsJCS8qIGlycSBhbGxvY2F0ZWQgKi8K IAl2b2lkIF9faW9tZW0JCSpyZWdzOwkJLyogZGV2aWNlIG1lbW9yeS9pbyAqLwpAQCAtNDAxLDYg KzQwMyw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyB1c2JfaGNkX3BjaV9wbV9v cHM7CiAjZW5kaWYgLyogQ09ORklHX1BDSSAqLwogCiAvKiBwY2ktaXNoIChwZGV2IG51bGwgaXMg b2spIGJ1ZmZlciBhbGxvYy9tYXBwaW5nIHN1cHBvcnQgKi8KK3ZvaWQgdXNiX2luaXRfcG9vbF9t YXgodm9pZCk7CiBpbnQgaGNkX2J1ZmZlcl9jcmVhdGUoc3RydWN0IHVzYl9oY2QgKmhjZCk7CiB2 b2lkIGhjZF9idWZmZXJfZGVzdHJveShzdHJ1Y3QgdXNiX2hjZCAqaGNkKTsKIApkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19leHRlbmQuaCBiL2luY2x1ZGUv bmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfZXh0ZW5kLmgKaW5kZXggMmRjZjMxNy4uZDkxODA3 NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19leHRlbmQu aAorKysgYi9pbmNsdWRlL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2V4dGVuZC5oCkBAIC0z Myw4ICszMyw4IEBAIGVudW0gbmZfY3RfZXh0X2lkIHsKIC8qIEV4dGVuc2lvbnM6IG9wdGlvbmFs IHN0dWZmIHdoaWNoIGlzbid0IHBlcm1hbmVudGx5IGluIHN0cnVjdC4gKi8KIHN0cnVjdCBuZl9j dF9leHQgewogCXN0cnVjdCByY3VfaGVhZCByY3U7Ci0JdTggb2Zmc2V0W05GX0NUX0VYVF9OVU1d OwotCXU4IGxlbjsKKwl1MTYgb2Zmc2V0W05GX0NUX0VYVF9OVU1dOworCXUxNiBsZW47CiAJY2hh ciBkYXRhWzBdOwogfTsKIApkaWZmIC0tZ2l0IGEva2VybmVsL2RlYnVnL2tkYi9rZGJfbWFpbi5j IGIva2VybmVsL2RlYnVnL2tkYi9rZGJfbWFpbi5jCmluZGV4IDYzNzg2ZTcuLmY1NmFmNTUgMTAw NjQ0Ci0tLSBhL2tlcm5lbC9kZWJ1Zy9rZGIva2RiX21haW4uYworKysgYi9rZXJuZWwvZGVidWcv a2RiL2tkYl9tYWluLmMKQEAgLTI1OTUsNyArMjU5NSw3IEBAIHN0YXRpYyBpbnQga2RiX3N1bW1h cnkoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQogI2RlZmluZSBLKHgpICgoeCkgPDwgKFBB R0VfU0hJRlQgLSAxMCkpCiAJa2RiX3ByaW50ZigiXG5NZW1Ub3RhbDogICAgICAgJThsdSBrQlxu TWVtRnJlZTogICAgICAgICU4bHUga0JcbiIKIAkJICAgIkJ1ZmZlcnM6ICAgICAgICAlOGx1IGtC XG4iLAotCQkgICB2YWwudG90YWxyYW0sIHZhbC5mcmVlcmFtLCB2YWwuYnVmZmVycmFtKTsKKwkJ ICAgSyh2YWwudG90YWxyYW0pLCBLKHZhbC5mcmVlcmFtKSwgSyh2YWwuYnVmZmVycmFtKSk7CiAJ cmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9ldmVudHMvY29yZS5jIGIva2VybmVs L2V2ZW50cy9jb3JlLmMKaW5kZXggMmE0YmY0My4uNDI3NzA5NSAxMDA2NDQKLS0tIGEva2VybmVs L2V2ZW50cy9jb3JlLmMKKysrIGIva2VybmVsL2V2ZW50cy9jb3JlLmMKQEAgLTM5NTYsNiArMzk1 NiwxMyBAQCBzdGF0aWMgdm9pZCBwZXJmX3BlbmRpbmdfZXZlbnQoc3RydWN0IGlycV93b3JrICpl bnRyeSkKIHsKIAlzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQgPSBjb250YWluZXJfb2YoZW50cnks CiAJCQlzdHJ1Y3QgcGVyZl9ldmVudCwgcGVuZGluZyk7CisJaW50IHJjdHg7CisKKwlyY3R4ID0g cGVyZl9zd2V2ZW50X2dldF9yZWN1cnNpb25fY29udGV4dCgpOworCS8qCisJICogSWYgd2UgJ2Zh aWwnIGhlcmUsIHRoYXQncyBPSywgaXQgbWVhbnMgcmVjdXJzaW9uIGlzIGFscmVhZHkgZGlzYWJs ZWQKKwkgKiBhbmQgd2Ugd29uJ3QgcmVjdXJzZSAnZnVydGhlcicuCisJICovCiAKIAlpZiAoZXZl bnQtPnBlbmRpbmdfZGlzYWJsZSkgewogCQlldmVudC0+cGVuZGluZ19kaXNhYmxlID0gMDsKQEAg LTM5NjYsNiArMzk3Myw5IEBAIHN0YXRpYyB2b2lkIHBlcmZfcGVuZGluZ19ldmVudChzdHJ1Y3Qg aXJxX3dvcmsgKmVudHJ5KQogCQlldmVudC0+cGVuZGluZ193YWtldXAgPSAwOwogCQlwZXJmX2V2 ZW50X3dha2V1cChldmVudCk7CiAJfQorCisJaWYgKHJjdHggPj0gMCkKKwkJcGVyZl9zd2V2ZW50 X3B1dF9yZWN1cnNpb25fY29udGV4dChyY3R4KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2tlcm5l bC9wcmludGsuYyBiL2tlcm5lbC9wcmludGsuYwppbmRleCA4ZmFjNDM0Li5jMDczZjQzIDEwMDY0 NAotLS0gYS9rZXJuZWwvcHJpbnRrLmMKKysrIGIva2VybmVsL3ByaW50ay5jCkBAIC0xMjMsNyAr MTIzLDcgQEAgc3RhdGljIHN0cnVjdCBjb25zb2xlICpleGNsdXNpdmVfY29uc29sZTsKICAqLwog c3RydWN0IGNvbnNvbGVfY21kbGluZQogewotCWNoYXIJbmFtZVs4XTsJCQkvKiBOYW1lIG9mIHRo ZSBkcml2ZXIJICAgICovCisJY2hhcgluYW1lWzE2XTsJCQkvKiBOYW1lIG9mIHRoZSBkcml2ZXIJ ICAgICovCiAJaW50CWluZGV4OwkJCQkvKiBNaW5vciBkZXYuIHRvIHVzZQkgICAgKi8KIAljaGFy CSpvcHRpb25zOwkJCS8qIE9wdGlvbnMgZm9yIHRoZSBkcml2ZXIgICAqLwogI2lmZGVmIENPTkZJ R19BMTFZX0JSQUlMTEVfQ09OU09MRQpAQCAtMTQ3Nyw2ICsxNDc3LDcgQEAgdm9pZCByZWdpc3Rl cl9jb25zb2xlKHN0cnVjdCBjb25zb2xlICpuZXdjb24pCiAJICovCiAJZm9yIChpID0gMDsgaSA8 IE1BWF9DTURMSU5FQ09OU09MRVMgJiYgY29uc29sZV9jbWRsaW5lW2ldLm5hbWVbMF07CiAJCQlp KyspIHsKKwkJQlVJTERfQlVHX09OKHNpemVvZihjb25zb2xlX2NtZGxpbmVbaV0ubmFtZSkgIT0g c2l6ZW9mKG5ld2Nvbi0+bmFtZSkpOwogCQlpZiAoc3RyY21wKGNvbnNvbGVfY21kbGluZVtpXS5u YW1lLCBuZXdjb24tPm5hbWUpICE9IDApCiAJCQljb250aW51ZTsKIAkJaWYgKG5ld2Nvbi0+aW5k ZXggPj0gMCAmJgpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkLmMgYi9rZXJuZWwvc2NoZWQuYwpp bmRleCBlYTg1YjBkLi5mZTMzZDBmIDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWQuYworKysgYi9r ZXJuZWwvc2NoZWQuYwpAQCAtNTIyNCw4ICs1MjI0LDExIEBAIHZvaWQgcnRfbXV0ZXhfc2V0cHJp byhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBwcmlvKQogCiAJaWYgKHJ0X3ByaW8ocHJpbykp CiAJCXAtPnNjaGVkX2NsYXNzID0gJnJ0X3NjaGVkX2NsYXNzOwotCWVsc2UKKwllbHNlIHsKKwkJ aWYgKHJ0X3ByaW8ob2xkcHJpbykpCisJCQlwLT5ydC50aW1lb3V0ID0gMDsKIAkJcC0+c2NoZWRf Y2xhc3MgPSAmZmFpcl9zY2hlZF9jbGFzczsKKwl9CiAKIAlwLT5wcmlvID0gcHJpbzsKIApAQCAt OTEwNCw2ICs5MTA3LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IHRnX2hhc19ydF90YXNrcyhzdHJ1 Y3QgdGFza19ncm91cCAqdGcpCiB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICpnLCAqcDsKIAorCS8q CisJICogQXV0b2dyb3VwcyBkbyBub3QgaGF2ZSBSVCB0YXNrczsgc2VlIGF1dG9ncm91cF9jcmVh dGUoKS4KKwkgKi8KKwlpZiAodGFza19ncm91cF9pc19hdXRvZ3JvdXAodGcpKQorCQlyZXR1cm4g MDsKKwogCWRvX2VhY2hfdGhyZWFkKGcsIHApIHsKIAkJaWYgKHJ0X3Rhc2socCkgJiYgcnRfcnFf b2Zfc2UoJnAtPnJ0KS0+dGcgPT0gdGcpCiAJCQlyZXR1cm4gMTsKZGlmZiAtLWdpdCBhL2tlcm5l bC9zY2hlZF9hdXRvZ3JvdXAuYyBiL2tlcm5lbC9zY2hlZF9hdXRvZ3JvdXAuYwppbmRleCBmMjgw ZGYxLi5jYjBhOTUwIDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWRfYXV0b2dyb3VwLmMKKysrIGIv a2VybmVsL3NjaGVkX2F1dG9ncm91cC5jCkBAIC04Niw4ICs4Niw3IEBAIHN0YXRpYyBpbmxpbmUg c3RydWN0IGF1dG9ncm91cCAqYXV0b2dyb3VwX2NyZWF0ZSh2b2lkKQogCSAqIHNvIHdlIGRvbid0 IGhhdmUgdG8gbW92ZSB0YXNrcyBhcm91bmQgdXBvbiBwb2xpY3kgY2hhbmdlLAogCSAqIG9yIGZs YWlsIGFyb3VuZCB0cnlpbmcgdG8gYWxsb2NhdGUgYmFuZHdpZHRoIG9uIHRoZSBmbHkuCiAJICog QSBiYW5kd2lkdGggZXhjZXB0aW9uIGluIF9fc2NoZWRfc2V0c2NoZWR1bGVyKCkgYWxsb3dzCi0J ICogdGhlIHBvbGljeSBjaGFuZ2UgdG8gcHJvY2VlZC4gIFRoZXJlYWZ0ZXIsIHRhc2tfZ3JvdXAo KQotCSAqIHJldHVybnMgJnJvb3RfdGFza19ncm91cCwgc28gemVybyBiYW5kd2lkdGggaXMgcmVx dWlyZWQuCisJICogdGhlIHBvbGljeSBjaGFuZ2UgdG8gcHJvY2VlZC4KIAkgKi8KIAlmcmVlX3J0 X3NjaGVkX2dyb3VwKHRnKTsKIAl0Zy0+cnRfc2UgPSByb290X3Rhc2tfZ3JvdXAucnRfc2U7CkBA IC0xMTQsOSArMTEzLDYgQEAgdGFza193YW50c19hdXRvZ3JvdXAoc3RydWN0IHRhc2tfc3RydWN0 ICpwLCBzdHJ1Y3QgdGFza19ncm91cCAqdGcpCiAJaWYgKHRnICE9ICZyb290X3Rhc2tfZ3JvdXAp CiAJCXJldHVybiBmYWxzZTsKIAotCWlmIChwLT5zY2hlZF9jbGFzcyAhPSAmZmFpcl9zY2hlZF9j bGFzcykKLQkJcmV0dXJuIGZhbHNlOwotCiAJLyoKIAkgKiBXZSBjYW4gb25seSBhc3N1bWUgdGhl IHRhc2sgZ3JvdXAgY2FuJ3QgZ28gYXdheSBvbiB1cyBpZgogCSAqIGF1dG9ncm91cF9tb3ZlX2dy b3VwKCkgY2FuIHNlZSB1cyBvbiAtPnRocmVhZF9ncm91cCBsaXN0LgpkaWZmIC0tZ2l0IGEva2Vy bmVsL3RyYWNlL2Z0cmFjZS5jIGIva2VybmVsL3RyYWNlL2Z0cmFjZS5jCmluZGV4IGRjYmFmZWQu LjA4ZTA0M2IgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS9mdHJhY2UuYworKysgYi9rZXJuZWwv dHJhY2UvZnRyYWNlLmMKQEAgLTkzNSw2ICs5MzUsMTIgQEAgc3RhdGljIF9faW5pdCB2b2lkIGZ0 cmFjZV9wcm9maWxlX2RlYnVnZnMoc3RydWN0IGRlbnRyeSAqZF90cmFjZXIpCiAKIHN0YXRpYyBz dHJ1Y3QgcGlkICogY29uc3QgZnRyYWNlX3N3YXBwZXJfcGlkID0gJmluaXRfc3RydWN0X3BpZDsK IAorI2lmZGVmIENPTkZJR19GVU5DVElPTl9HUkFQSF9UUkFDRVIKK3N0YXRpYyBpbnQgZnRyYWNl X2dyYXBoX2FjdGl2ZTsKKyNlbHNlCisjIGRlZmluZSBmdHJhY2VfZ3JhcGhfYWN0aXZlIDAKKyNl bmRpZgorCiBzdGF0aWMgbG9mZl90CiBmdHJhY2VfZmlsdGVyX2xzZWVrKHN0cnVjdCBmaWxlICpm aWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKQogewpAQCAtMTgxMCwyNCArMTgxNiwzNiBA QCBzdGF0aWMgaW50IGZ0cmFjZV9zaHV0ZG93bihzdHJ1Y3QgZnRyYWNlX29wcyAqb3BzLCBpbnQg Y29tbWFuZCkKIAogc3RhdGljIHZvaWQgZnRyYWNlX3N0YXJ0dXBfc3lzY3RsKHZvaWQpCiB7CisJ aW50IGNvbW1hbmQ7CisKIAlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkKIAkJcmV0dXJu OwogCiAJLyogRm9yY2UgdXBkYXRlIG5leHQgdGltZSAqLwogCXNhdmVkX2Z0cmFjZV9mdW5jID0g TlVMTDsKIAkvKiBmdHJhY2Vfc3RhcnRfdXAgaXMgdHJ1ZSBpZiB3ZSB3YW50IGZ0cmFjZSBydW5u aW5nICovCi0JaWYgKGZ0cmFjZV9zdGFydF91cCkKLQkJZnRyYWNlX3J1bl91cGRhdGVfY29kZShG VFJBQ0VfVVBEQVRFX0NBTExTKTsKKwlpZiAoZnRyYWNlX3N0YXJ0X3VwKSB7CisJCWNvbW1hbmQg PSBGVFJBQ0VfVVBEQVRFX0NBTExTOworCQlpZiAoZnRyYWNlX2dyYXBoX2FjdGl2ZSkKKwkJCWNv bW1hbmQgfD0gRlRSQUNFX1NUQVJUX0ZVTkNfUkVUOworCQlmdHJhY2Vfc3RhcnR1cF9lbmFibGUo Y29tbWFuZCk7CisJfQogfQogCiBzdGF0aWMgdm9pZCBmdHJhY2Vfc2h1dGRvd25fc3lzY3RsKHZv aWQpCiB7CisJaW50IGNvbW1hbmQ7CisKIAlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkK IAkJcmV0dXJuOwogCiAJLyogZnRyYWNlX3N0YXJ0X3VwIGlzIHRydWUgaWYgZnRyYWNlIGlzIHJ1 bm5pbmcgKi8KLQlpZiAoZnRyYWNlX3N0YXJ0X3VwKQotCQlmdHJhY2VfcnVuX3VwZGF0ZV9jb2Rl KEZUUkFDRV9ESVNBQkxFX0NBTExTKTsKKwlpZiAoZnRyYWNlX3N0YXJ0X3VwKSB7CisJCWNvbW1h bmQgPSBGVFJBQ0VfRElTQUJMRV9DQUxMUzsKKwkJaWYgKGZ0cmFjZV9ncmFwaF9hY3RpdmUpCisJ CQljb21tYW5kIHw9IEZUUkFDRV9TVE9QX0ZVTkNfUkVUOworCQlmdHJhY2VfcnVuX3VwZGF0ZV9j b2RlKGNvbW1hbmQpOworCX0KIH0KIAogc3RhdGljIGN5Y2xlX3QJCWZ0cmFjZV91cGRhdGVfdGlt ZTsKQEAgLTQwMjQsMTIgKzQwNDIsMTIgQEAgZnRyYWNlX2VuYWJsZV9zeXNjdGwoc3RydWN0IGN0 bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAogCWlmIChmdHJhY2VfZW5hYmxlZCkgewogCi0J CWZ0cmFjZV9zdGFydHVwX3N5c2N0bCgpOwotCiAJCS8qIHdlIGFyZSBzdGFydGluZyBmdHJhY2Ug YWdhaW4gKi8KIAkJaWYgKGZ0cmFjZV9vcHNfbGlzdCAhPSAmZnRyYWNlX2xpc3RfZW5kKQogCQkJ dXBkYXRlX2Z0cmFjZV9mdW5jdGlvbigpOwogCisJCWZ0cmFjZV9zdGFydHVwX3N5c2N0bCgpOwor CiAJfSBlbHNlIHsKIAkJLyogc3RvcHBpbmcgZnRyYWNlIGNhbGxzIChqdXN0IHNlbmQgdG8gZnRy YWNlX3N0dWIpICovCiAJCWZ0cmFjZV90cmFjZV9mdW5jdGlvbiA9IGZ0cmFjZV9zdHViOwpAQCAt NDA0NCw3ICs0MDYyLDYgQEAgZnRyYWNlX2VuYWJsZV9zeXNjdGwoc3RydWN0IGN0bF90YWJsZSAq dGFibGUsIGludCB3cml0ZSwKIAogI2lmZGVmIENPTkZJR19GVU5DVElPTl9HUkFQSF9UUkFDRVIK IAotc3RhdGljIGludCBmdHJhY2VfZ3JhcGhfYWN0aXZlOwogc3RhdGljIHN0cnVjdCBub3RpZmll cl9ibG9jayBmdHJhY2Vfc3VzcGVuZF9ub3RpZmllcjsKIAogaW50IGZ0cmFjZV9ncmFwaF9lbnRy eV9zdHViKHN0cnVjdCBmdHJhY2VfZ3JhcGhfZW50ICp0cmFjZSkKZGlmZiAtLWdpdCBhL21tL2h1 Z2V0bGIuYyBiL21tL2h1Z2V0bGIuYwppbmRleCBkMmM0M2EyLi4yNjkyMmRhIDEwMDY0NAotLS0g YS9tbS9odWdldGxiLmMKKysrIGIvbW0vaHVnZXRsYi5jCkBAIC0yNDE4LDkgKzI0MTgsMTAgQEAg dm9pZCBfX3VubWFwX2h1Z2VwYWdlX3JhbmdlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1 bnNpZ25lZCBsb25nIHN0YXJ0LAogCQkJY29udGludWU7CiAKIAkJLyoKLQkJICogSFdQb2lzb25l ZCBodWdlcGFnZSBpcyBhbHJlYWR5IHVubWFwcGVkIGFuZCBkcm9wcGVkIHJlZmVyZW5jZQorCQkg KiBNaWdyYXRpbmcgaHVnZXBhZ2Ugb3IgSFdQb2lzb25lZCBodWdlcGFnZSBpcyBhbHJlYWR5CisJ CSAqIHVubWFwcGVkIGFuZCBpdHMgcmVmY291bnQgaXMgZHJvcHBlZAogCQkgKi8KLQkJaWYgKHVu bGlrZWx5KGlzX2h1Z2V0bGJfZW50cnlfaHdwb2lzb25lZChwdGUpKSkKKwkJaWYgKHVubGlrZWx5 KCFwdGVfcHJlc2VudChwdGUpKSkKIAkJCWNvbnRpbnVlOwogCiAJCXBhZ2UgPSBwdGVfcGFnZShw dGUpOwpAQCAtMjc5OCw2ICsyNzk5LDcgQEAgaW50IGh1Z2V0bGJfZmF1bHQoc3RydWN0IG1tX3N0 cnVjdCAqbW0sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCXN0cnVjdCBwYWdlICpwYWdl Y2FjaGVfcGFnZSA9IE5VTEw7CiAJc3RhdGljIERFRklORV9NVVRFWChodWdldGxiX2luc3RhbnRp YXRpb25fbXV0ZXgpOwogCXN0cnVjdCBoc3RhdGUgKmggPSBoc3RhdGVfdm1hKHZtYSk7CisJaW50 IG5lZWRfd2FpdF9sb2NrID0gMDsKIAogCXB0ZXAgPSBodWdlX3B0ZV9vZmZzZXQobW0sIGFkZHJl c3MpOwogCWlmIChwdGVwKSB7CkBAIC0yODI5LDYgKzI4MzEsMTYgQEAgaW50IGh1Z2V0bGJfZmF1 bHQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCXJl dCA9IDA7CiAKIAkvKgorCSAqIGVudHJ5IGNvdWxkIGJlIGEgbWlncmF0aW9uL2h3cG9pc29uIGVu dHJ5IGF0IHRoaXMgcG9pbnQsIHNvIHRoaXMKKwkgKiBjaGVjayBwcmV2ZW50cyB0aGUga2VybmVs IGZyb20gZ29pbmcgYmVsb3cgYXNzdW1pbmcgdGhhdCB3ZSBoYXZlCisJICogYSBhY3RpdmUgaHVn ZXBhZ2UgaW4gcGFnZWNhY2hlLiBUaGlzIGdvdG8gZXhwZWN0cyB0aGUgMm5kIHBhZ2UgZmF1bHQs CisJICogYW5kIGlzX2h1Z2V0bGJfZW50cnlfKG1pZ3JhdGlvbnxod3BvaXNvbmVkKSBjaGVjayB3 aWxsIHByb3Blcmx5CisJICogaGFuZGxlIGl0LgorCSAqLworCWlmICghcHRlX3ByZXNlbnQoZW50 cnkpKQorCQlnb3RvIG91dF9tdXRleDsKKworCS8qCiAJICogSWYgd2UgYXJlIGdvaW5nIHRvIENP VyB0aGUgbWFwcGluZyBsYXRlciwgd2UgZXhhbWluZSB0aGUgcGVuZGluZwogCSAqIHJlc2VydmF0 aW9ucyBmb3IgdGhpcyBwYWdlIG5vdy4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IGFueQogCSAqIGFs bG9jYXRpb25zIG5lY2Vzc2FyeSB0byByZWNvcmQgdGhhdCByZXNlcnZhdGlvbiBvY2N1ciBvdXRz aWRlIHRoZQpAQCAtMjg0NywyOSArMjg1OSwzMCBAQCBpbnQgaHVnZXRsYl9mYXVsdChzdHJ1Y3Qg bW1fc3RydWN0ICptbSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCQkJCQkJCXZtYSwg YWRkcmVzcyk7CiAJfQogCisJc3Bpbl9sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsKKwkvKiBD aGVjayBmb3IgYSByYWNpbmcgdXBkYXRlIGJlZm9yZSBjYWxsaW5nIGh1Z2V0bGJfY293ICovCisJ aWYgKHVubGlrZWx5KCFwdGVfc2FtZShlbnRyeSwgaHVnZV9wdGVwX2dldChwdGVwKSkpKQorCQln b3RvIG91dF9wYWdlX3RhYmxlX2xvY2s7CisKIAkvKgogCSAqIGh1Z2V0bGJfY293KCkgcmVxdWly ZXMgcGFnZSBsb2NrcyBvZiBwdGVfcGFnZShlbnRyeSkgYW5kCiAJICogcGFnZWNhY2hlX3BhZ2Us IHNvIGhlcmUgd2UgbmVlZCB0YWtlIHRoZSBmb3JtZXIgb25lCiAJICogd2hlbiBwYWdlICE9IHBh Z2VjYWNoZV9wYWdlIG9yICFwYWdlY2FjaGVfcGFnZS4KLQkgKiBOb3RlIHRoYXQgbG9ja2luZyBv cmRlciBpcyBhbHdheXMgcGFnZWNhY2hlX3BhZ2UgLT4gcGFnZSwKLQkgKiBzbyBubyB3b3JyeSBh Ym91dCBkZWFkbG9jay4KIAkgKi8KIAlwYWdlID0gcHRlX3BhZ2UoZW50cnkpOwotCWdldF9wYWdl KHBhZ2UpOwogCWlmIChwYWdlICE9IHBhZ2VjYWNoZV9wYWdlKQotCQlsb2NrX3BhZ2UocGFnZSk7 Ci0KLQlzcGluX2xvY2soJm1tLT5wYWdlX3RhYmxlX2xvY2spOwotCS8qIENoZWNrIGZvciBhIHJh Y2luZyB1cGRhdGUgYmVmb3JlIGNhbGxpbmcgaHVnZXRsYl9jb3cgKi8KLQlpZiAodW5saWtlbHko IXB0ZV9zYW1lKGVudHJ5LCBodWdlX3B0ZXBfZ2V0KHB0ZXApKSkpCi0JCWdvdG8gb3V0X3BhZ2Vf dGFibGVfbG9jazsKKwkJaWYgKCF0cnlsb2NrX3BhZ2UocGFnZSkpIHsKKwkJCW5lZWRfd2FpdF9s b2NrID0gMTsKKwkJCWdvdG8gb3V0X3BhZ2VfdGFibGVfbG9jazsKKwkJfQogCisJZ2V0X3BhZ2Uo cGFnZSk7CiAKIAlpZiAoZmxhZ3MgJiBGQVVMVF9GTEFHX1dSSVRFKSB7CiAJCWlmICghcHRlX3dy aXRlKGVudHJ5KSkgewogCQkJcmV0ID0gaHVnZXRsYl9jb3cobW0sIHZtYSwgYWRkcmVzcywgcHRl cCwgZW50cnksCiAJCQkJCQkJcGFnZWNhY2hlX3BhZ2UpOwotCQkJZ290byBvdXRfcGFnZV90YWJs ZV9sb2NrOworCQkJZ290byBvdXRfcHV0X3BhZ2U7CiAJCX0KIAkJZW50cnkgPSBwdGVfbWtkaXJ0 eShlbnRyeSk7CiAJfQpAQCAtMjg3Nyw3ICsyODkwLDEwIEBAIGludCBodWdldGxiX2ZhdWx0KHN0 cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAlpZiAoaHVn ZV9wdGVwX3NldF9hY2Nlc3NfZmxhZ3Modm1hLCBhZGRyZXNzLCBwdGVwLCBlbnRyeSwKIAkJCQkJ CWZsYWdzICYgRkFVTFRfRkxBR19XUklURSkpCiAJCXVwZGF0ZV9tbXVfY2FjaGUodm1hLCBhZGRy ZXNzLCBwdGVwKTsKLQorb3V0X3B1dF9wYWdlOgorCWlmIChwYWdlICE9IHBhZ2VjYWNoZV9wYWdl KQorCQl1bmxvY2tfcGFnZShwYWdlKTsKKwlwdXRfcGFnZShwYWdlKTsKIG91dF9wYWdlX3RhYmxl X2xvY2s6CiAJc3Bpbl91bmxvY2soJm1tLT5wYWdlX3RhYmxlX2xvY2spOwogCkBAIC0yODg1LDEz ICsyOTAxLDE4IEBAIG91dF9wYWdlX3RhYmxlX2xvY2s6CiAJCXVubG9ja19wYWdlKHBhZ2VjYWNo ZV9wYWdlKTsKIAkJcHV0X3BhZ2UocGFnZWNhY2hlX3BhZ2UpOwogCX0KLQlpZiAocGFnZSAhPSBw YWdlY2FjaGVfcGFnZSkKLQkJdW5sb2NrX3BhZ2UocGFnZSk7Ci0JcHV0X3BhZ2UocGFnZSk7Ci0K IG91dF9tdXRleDoKIAltdXRleF91bmxvY2soJmh1Z2V0bGJfaW5zdGFudGlhdGlvbl9tdXRleCk7 CiAKKwkvKgorCSAqIEdlbmVyYWxseSBpdCdzIHNhZmUgdG8gaG9sZCByZWZjb3VudCBkdXJpbmcg d2FpdGluZyBwYWdlIGxvY2suIEJ1dAorCSAqIGhlcmUgd2UganVzdCB3YWl0IHRvIGRlZmVyIHRo ZSBuZXh0IHBhZ2UgZmF1bHQgdG8gYXZvaWQgYnVzeSBsb29wIGFuZAorCSAqIHRoZSBwYWdlIGlz IG5vdCB1c2VkIGFmdGVyIHVubG9ja2VkIGJlZm9yZSByZXR1cm5pbmcgZnJvbSB0aGUgY3VycmVu dAorCSAqIHBhZ2UgZmF1bHQuIFNvIHdlIGFyZSBzYWZlIGZyb20gYWNjZXNzaW5nIGZyZWVkIHBh Z2UsIGV2ZW4gaWYgd2Ugd2FpdAorCSAqIGhlcmUgd2l0aG91dCB0YWtpbmcgcmVmY291bnQuCisJ ICovCisJaWYgKG5lZWRfd2FpdF9sb2NrKQorCQl3YWl0X29uX3BhZ2VfbG9ja2VkKHBhZ2UpOwog CXJldHVybiByZXQ7CiB9CiAKQEAgLTMwMTcsNyArMzAzOCwyMiBAQCB2b2lkIGh1Z2V0bGJfY2hh bmdlX3Byb3RlY3Rpb24oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCQljb250aW51ZTsK IAkJaWYgKGh1Z2VfcG1kX3Vuc2hhcmUobW0sICZhZGRyZXNzLCBwdGVwKSkKIAkJCWNvbnRpbnVl OwotCQlpZiAoIWh1Z2VfcHRlX25vbmUoaHVnZV9wdGVwX2dldChwdGVwKSkpIHsKKwkJcHRlID0g aHVnZV9wdGVwX2dldChwdGVwKTsKKwkJaWYgKHVubGlrZWx5KGlzX2h1Z2V0bGJfZW50cnlfaHdw b2lzb25lZChwdGUpKSkKKwkJCWNvbnRpbnVlOworCQlpZiAodW5saWtlbHkoaXNfaHVnZXRsYl9l bnRyeV9taWdyYXRpb24ocHRlKSkpIHsKKwkJCXN3cF9lbnRyeV90IGVudHJ5ID0gcHRlX3RvX3N3 cF9lbnRyeShwdGUpOworCisJCQlpZiAoaXNfd3JpdGVfbWlncmF0aW9uX2VudHJ5KGVudHJ5KSkg eworCQkJCXB0ZV90IG5ld3B0ZTsKKworCQkJCW1ha2VfbWlncmF0aW9uX2VudHJ5X3JlYWQoJmVu dHJ5KTsKKwkJCQluZXdwdGUgPSBzd3BfZW50cnlfdG9fcHRlKGVudHJ5KTsKKwkJCQlzZXRfaHVn ZV9wdGVfYXQobW0sIGFkZHJlc3MsIHB0ZXAsIG5ld3B0ZSk7CisJCQl9CisJCQljb250aW51ZTsK KwkJfQorCQlpZiAoIWh1Z2VfcHRlX25vbmUocHRlKSkgewogCQkJcHRlID0gaHVnZV9wdGVwX2dl dF9hbmRfY2xlYXIobW0sIGFkZHJlc3MsIHB0ZXApOwogCQkJcHRlID0gcHRlX21raHVnZShwdGVf bW9kaWZ5KHB0ZSwgbmV3cHJvdCkpOwogCQkJc2V0X2h1Z2VfcHRlX2F0KG1tLCBhZGRyZXNzLCBw dGVwLCBwdGUpOwpkaWZmIC0tZ2l0IGEvbW0vbWVtb3J5LmMgYi9tbS9tZW1vcnkuYwppbmRleCAw YTdiYjM4Li40NTJiOGJhIDEwMDY0NAotLS0gYS9tbS9tZW1vcnkuYworKysgYi9tbS9tZW1vcnku YwpAQCAtMzgzMSw3ICszODMxLDcgQEAgaW50IGdlbmVyaWNfYWNjZXNzX3BoeXMoc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAlpZiAoZm9sbG93X3BoeXMo dm1hLCBhZGRyLCB3cml0ZSwgJnByb3QsICZwaHlzX2FkZHIpKQogCQlyZXR1cm4gLUVJTlZBTDsK IAotCW1hZGRyID0gaW9yZW1hcF9wcm90KHBoeXNfYWRkciwgUEFHRV9TSVpFLCBwcm90KTsKKwlt YWRkciA9IGlvcmVtYXBfcHJvdChwaHlzX2FkZHIsIFBBR0VfQUxJR04obGVuICsgb2Zmc2V0KSwg cHJvdCk7CiAJaWYgKHdyaXRlKQogCQltZW1jcHlfdG9pbyhtYWRkciArIG9mZnNldCwgYnVmLCBs ZW4pOwogCWVsc2UKZGlmZiAtLWdpdCBhL21tL21tYXAuYyBiL21tL21tYXAuYwppbmRleCAxM2I1 Njg1Li45NGY0ZTM0IDEwMDY0NAotLS0gYS9tbS9tbWFwLmMKKysrIGIvbW0vbW1hcC5jCkBAIC0x MTEsNyArMTExLDcgQEAgc3RydWN0IHBlcmNwdV9jb3VudGVyIHZtX2NvbW1pdHRlZF9hcyBfX19f Y2FjaGVsaW5lX2FsaWduZWRfaW5fc21wOwogICovCiBpbnQgX192bV9lbm91Z2hfbWVtb3J5KHN0 cnVjdCBtbV9zdHJ1Y3QgKm1tLCBsb25nIHBhZ2VzLCBpbnQgY2FwX3N5c19hZG1pbikKIHsKLQl1 bnNpZ25lZCBsb25nIGZyZWUsIGFsbG93ZWQ7CisJbG9uZyBmcmVlLCBhbGxvd2VkOwogCiAJdm1f YWNjdF9tZW1vcnkocGFnZXMpOwogCkBAIC01NDEsMTAgKzU0MSw4IEBAIGFnYWluOgkJCXJlbW92 ZV9uZXh0ID0gMSArIChlbmQgPiBuZXh0LT52bV9lbmQpOwogCiAJCQlpbXBvcnRlci0+YW5vbl92 bWEgPSBleHBvcnRlci0+YW5vbl92bWE7CiAJCQllcnJvciA9IGFub25fdm1hX2Nsb25lKGltcG9y dGVyLCBleHBvcnRlcik7Ci0JCQlpZiAoZXJyb3IpIHsKLQkJCQlpbXBvcnRlci0+YW5vbl92bWEg PSBOVUxMOworCQkJaWYgKGVycm9yKQogCQkJCXJldHVybiBlcnJvcjsKLQkJCX0KIAkJfQogCX0K IApkaWZmIC0tZ2l0IGEvbW0vbm9tbXUuYyBiL21tL25vbW11LmMKaW5kZXggMWRiNzk3MS4uZDBj YjExZiAxMDA2NDQKLS0tIGEvbW0vbm9tbXUuYworKysgYi9tbS9ub21tdS5jCkBAIC0xODg1LDcg KzE4ODUsNyBAQCBFWFBPUlRfU1lNQk9MKHVubWFwX21hcHBpbmdfcmFuZ2UpOwogICovCiBpbnQg X192bV9lbm91Z2hfbWVtb3J5KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBsb25nIHBhZ2VzLCBpbnQg Y2FwX3N5c19hZG1pbikKIHsKLQl1bnNpZ25lZCBsb25nIGZyZWUsIGFsbG93ZWQ7CisJbG9uZyBm cmVlLCBhbGxvd2VkOwogCiAJdm1fYWNjdF9tZW1vcnkocGFnZXMpOwogCmRpZmYgLS1naXQgYS9t bS9wYWdlLXdyaXRlYmFjay5jIGIvbW0vcGFnZS13cml0ZWJhY2suYwppbmRleCBhYWQyMmFhLi4x YmYxZjc0IDEwMDY0NAotLS0gYS9tbS9wYWdlLXdyaXRlYmFjay5jCisrKyBiL21tL3BhZ2Utd3Jp dGViYWNrLmMKQEAgLTY2MSw4ICs2NjEsMTEgQEAgc3RhdGljIHZvaWQgYmRpX3VwZGF0ZV93cml0 ZV9iYW5kd2lkdGgoc3RydWN0IGJhY2tpbmdfZGV2X2luZm8gKmJkaSwKIAkgKiAgICAgICAgICAg ICAgICAgICBidyAqIGVsYXBzZWQgKyB3cml0ZV9iYW5kd2lkdGggKiAocGVyaW9kIC0gZWxhcHNl ZCkKIAkgKiB3cml0ZV9iYW5kd2lkdGggPSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBlcmlvZAorCSAqCisJICogQHdyaXR0ZW4gbWF5IGhhdmUgZGVjcmVhc2VkIGR1 ZSB0byBhY2NvdW50X3BhZ2VfcmVkaXJ0eSgpLgorCSAqIEF2b2lkIHVuZGVyZmxvd2luZyBAYncg Y2FsY3VsYXRpb24uCiAJICovCi0JYncgPSB3cml0dGVuIC0gYmRpLT53cml0dGVuX3N0YW1wOwor CWJ3ID0gd3JpdHRlbiAtIG1pbih3cml0dGVuLCBiZGktPndyaXR0ZW5fc3RhbXApOwogCWJ3ICo9 IEhaOwogCWlmICh1bmxpa2VseShlbGFwc2VkID4gcGVyaW9kKSkgewogCQlkb19kaXYoYncsIGVs YXBzZWQpOwpAQCAtNzI2LDcgKzcyOSw3IEBAIHN0YXRpYyB2b2lkIGdsb2JhbF91cGRhdGVfYmFu ZHdpZHRoKHVuc2lnbmVkIGxvbmcgdGhyZXNoLAogCQkJCSAgICB1bnNpZ25lZCBsb25nIG5vdykK IHsKIAlzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGRpcnR5X2xvY2spOwotCXN0YXRpYyB1bnNpZ25l ZCBsb25nIHVwZGF0ZV90aW1lOworCXN0YXRpYyB1bnNpZ25lZCBsb25nIHVwZGF0ZV90aW1lID0g SU5JVElBTF9KSUZGSUVTOwogCiAJLyoKIAkgKiBjaGVjayBsb2NrbGVzc2x5IGZpcnN0IHRvIG9w dGltaXplIGF3YXkgbG9ja2luZyBmb3IgdGhlIG1vc3QgdGltZQpkaWZmIC0tZ2l0IGEvbW0vcm1h cC5jIGIvbW0vcm1hcC5jCmluZGV4IDJjNGVlM2UuLjk4ZjBiZjdmIDEwMDY0NAotLS0gYS9tbS9y bWFwLmMKKysrIGIvbW0vcm1hcC5jCkBAIC0yOTUsNiArMjk1LDEzIEBAIGludCBhbm9uX3ZtYV9j bG9uZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmRzdCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICpz cmMpCiAJcmV0dXJuIDA7CiAKICBlbm9tZW1fZmFpbHVyZToKKwkvKgorCSAqIGRzdC0+YW5vbl92 bWEgaXMgZHJvcHBlZCBoZXJlIG90aGVyd2lzZSBpdHMgZGVncmVlIGNhbiBiZSBpbmNvcnJlY3Rs eQorCSAqIGRlY3JlbWVudGVkIGluIHVubGlua19hbm9uX3ZtYXMoKS4KKwkgKiBXZSBjYW4gc2Fm ZWx5IGRvIHRoaXMgYmVjYXVzZSBjYWxsZXJzIG9mIGFub25fdm1hX2Nsb25lKCkgZG9uJ3QgY2Fy ZQorCSAqIGFib3V0IGRzdC0+YW5vbl92bWEgaWYgYW5vbl92bWFfY2xvbmUoKSBmYWlsZWQuCisJ ICovCisJZHN0LT5hbm9uX3ZtYSA9IE5VTEw7CiAJdW5saW5rX2Fub25fdm1hcyhkc3QpOwogCXJl dHVybiAtRU5PTUVNOwogfQpkaWZmIC0tZ2l0IGEvbmV0L2NhaWYvY2FpZl9zb2NrZXQuYyBiL25l dC9jYWlmL2NhaWZfc29ja2V0LmMKaW5kZXggN2ZhYzc1Zi4uN2VlZDllYiAxMDA2NDQKLS0tIGEv bmV0L2NhaWYvY2FpZl9zb2NrZXQuYworKysgYi9uZXQvY2FpZi9jYWlmX3NvY2tldC5jCkBAIC0z MTcsNyArMzE3LDcgQEAgc3RhdGljIGludCBjYWlmX3NlcXBrdF9yZWN2bXNnKHN0cnVjdCBraW9j YiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywKIAlpbnQgY29weWxlbjsKIAogCXJldCA9IC1F T1BOT1RTVVBQOwotCWlmIChtLT5tc2dfZmxhZ3MmTVNHX09PQikKKwlpZiAoZmxhZ3MgJiBNU0df T09CKQogCQlnb3RvIHJlYWRfZXJyb3I7CiAKIAlza2IgPSBza2JfcmVjdl9kYXRhZ3JhbShzaywg ZmxhZ3MsIDAgLCAmcmV0KTsKZGlmZiAtLWdpdCBhL25ldC9jYW4vYWZfY2FuLmMgYi9uZXQvY2Fu L2FmX2Nhbi5jCmluZGV4IDBjZTJhZDAuLjdkOWRmZjIyMiAxMDA2NDQKLS0tIGEvbmV0L2Nhbi9h Zl9jYW4uYworKysgYi9uZXQvY2FuL2FmX2Nhbi5jCkBAIC0yNDQsNiArMjQ0LDkgQEAgaW50IGNh bl9zZW5kKHN0cnVjdCBza19idWZmICpza2IsIGludCBsb29wKQogCX0KIAogCXNrYi0+cHJvdG9j b2wgPSBodG9ucyhFVEhfUF9DQU4pOworCXNrYi0+aXBfc3VtbWVkID0gQ0hFQ0tTVU1fVU5ORUNF U1NBUlk7CisKKwlza2JfcmVzZXRfbWFjX2hlYWRlcihza2IpOwogCXNrYl9yZXNldF9uZXR3b3Jr X2hlYWRlcihza2IpOwogCXNrYl9yZXNldF90cmFuc3BvcnRfaGVhZGVyKHNrYik7CiAKZGlmZiAt LWdpdCBhL25ldC9jZXBoL29zZF9jbGllbnQuYyBiL25ldC9jZXBoL29zZF9jbGllbnQuYwppbmRl eCBhNzBmNDI2Li4yZGY5OGE2IDEwMDY0NAotLS0gYS9uZXQvY2VwaC9vc2RfY2xpZW50LmMKKysr IGIvbmV0L2NlcGgvb3NkX2NsaWVudC5jCkBAIC02NzgsMTIgKzY3OCwyMiBAQCBzdGF0aWMgdm9p ZCBwdXRfb3NkKHN0cnVjdCBjZXBoX29zZCAqb3NkKQogICovCiBzdGF0aWMgdm9pZCBfX3JlbW92 ZV9vc2Qoc3RydWN0IGNlcGhfb3NkX2NsaWVudCAqb3NkYywgc3RydWN0IGNlcGhfb3NkICpvc2Qp CiB7Ci0JZG91dCgiX19yZW1vdmVfb3NkICVwXG4iLCBvc2QpOworCWRvdXQoIiVzICVwIG9zZCVk XG4iLCBfX2Z1bmNfXywgb3NkLCBvc2QtPm9fb3NkKTsKIAlCVUdfT04oIWxpc3RfZW1wdHkoJm9z ZC0+b19yZXF1ZXN0cykpOwotCXJiX2VyYXNlKCZvc2QtPm9fbm9kZSwgJm9zZGMtPm9zZHMpOwog CWxpc3RfZGVsX2luaXQoJm9zZC0+b19vc2RfbHJ1KTsKLQljZXBoX2Nvbl9jbG9zZSgmb3NkLT5v X2Nvbik7Ci0JcHV0X29zZChvc2QpOworCXJiX2VyYXNlKCZvc2QtPm9fbm9kZSwgJm9zZGMtPm9z ZHMpOworCVJCX0NMRUFSX05PREUoJm9zZC0+b19ub2RlKTsKK30KKworc3RhdGljIHZvaWQgcmVt b3ZlX29zZChzdHJ1Y3QgY2VwaF9vc2RfY2xpZW50ICpvc2RjLCBzdHJ1Y3QgY2VwaF9vc2QgKm9z ZCkKK3sKKwlkb3V0KCIlcyAlcCBvc2QlZFxuIiwgX19mdW5jX18sIG9zZCwgb3NkLT5vX29zZCk7 CisKKwlpZiAoIVJCX0VNUFRZX05PREUoJm9zZC0+b19ub2RlKSkgeworCQljZXBoX2Nvbl9jbG9z ZSgmb3NkLT5vX2Nvbik7CisJCV9fcmVtb3ZlX29zZChvc2RjLCBvc2QpOworCQlwdXRfb3NkKG9z ZCk7CisJfQogfQogCiBzdGF0aWMgdm9pZCByZW1vdmVfYWxsX29zZHMoc3RydWN0IGNlcGhfb3Nk X2NsaWVudCAqb3NkYykKQEAgLTY5Myw3ICs3MDMsNyBAQCBzdGF0aWMgdm9pZCByZW1vdmVfYWxs X29zZHMoc3RydWN0IGNlcGhfb3NkX2NsaWVudCAqb3NkYykKIAl3aGlsZSAoIVJCX0VNUFRZX1JP T1QoJm9zZGMtPm9zZHMpKSB7CiAJCXN0cnVjdCBjZXBoX29zZCAqb3NkID0gcmJfZW50cnkocmJf Zmlyc3QoJm9zZGMtPm9zZHMpLAogCQkJCQkJc3RydWN0IGNlcGhfb3NkLCBvX25vZGUpOwotCQlf X3JlbW92ZV9vc2Qob3NkYywgb3NkKTsKKwkJcmVtb3ZlX29zZChvc2RjLCBvc2QpOwogCX0KIAlt dXRleF91bmxvY2soJm9zZGMtPnJlcXVlc3RfbXV0ZXgpOwogfQpAQCAtNzIzLDcgKzczMyw3IEBA IHN0YXRpYyB2b2lkIHJlbW92ZV9vbGRfb3NkcyhzdHJ1Y3QgY2VwaF9vc2RfY2xpZW50ICpvc2Rj KQogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShvc2QsIG5vc2QsICZvc2RjLT5vc2RfbHJ1LCBv X29zZF9scnUpIHsKIAkJaWYgKHRpbWVfYmVmb3JlKGppZmZpZXMsIG9zZC0+bHJ1X3R0bCkpCiAJ CQlicmVhazsKLQkJX19yZW1vdmVfb3NkKG9zZGMsIG9zZCk7CisJCXJlbW92ZV9vc2Qob3NkYywg b3NkKTsKIAl9CiAJbXV0ZXhfdW5sb2NrKCZvc2RjLT5yZXF1ZXN0X211dGV4KTsKIH0KQEAgLTcz OSw3ICs3NDksNyBAQCBzdGF0aWMgaW50IF9fcmVzZXRfb3NkKHN0cnVjdCBjZXBoX29zZF9jbGll bnQgKm9zZGMsIHN0cnVjdCBjZXBoX29zZCAqb3NkKQogCWRvdXQoIl9fcmVzZXRfb3NkICVwIG9z ZCVkXG4iLCBvc2QsIG9zZC0+b19vc2QpOwogCWlmIChsaXN0X2VtcHR5KCZvc2QtPm9fcmVxdWVz dHMpICYmCiAJICAgIGxpc3RfZW1wdHkoJm9zZC0+b19saW5nZXJfcmVxdWVzdHMpKSB7Ci0JCV9f cmVtb3ZlX29zZChvc2RjLCBvc2QpOworCQlyZW1vdmVfb3NkKG9zZGMsIG9zZCk7CiAJfSBlbHNl IGlmIChtZW1jbXAoJm9zZGMtPm9zZG1hcC0+b3NkX2FkZHJbb3NkLT5vX29zZF0sCiAJCQkgICZv c2QtPm9fY29uLnBlZXJfYWRkciwKIAkJCSAgc2l6ZW9mKG9zZC0+b19jb24ucGVlcl9hZGRyKSkg PT0gMCAmJgpAQCAtMTI3MSw2ICsxMjgxLDcgQEAgc3RhdGljIHZvaWQgcmVzZXRfY2hhbmdlZF9v c2RzKHN0cnVjdCBjZXBoX29zZF9jbGllbnQgKm9zZGMpCiB7CiAJc3RydWN0IHJiX25vZGUgKnAs ICpuOwogCisJZG91dCgiJXMgJXBcbiIsIF9fZnVuY19fLCBvc2RjKTsKIAlmb3IgKHAgPSByYl9m aXJzdCgmb3NkYy0+b3Nkcyk7IHA7IHAgPSBuKSB7CiAJCXN0cnVjdCBjZXBoX29zZCAqb3NkID0g cmJfZW50cnkocCwgc3RydWN0IGNlcGhfb3NkLCBvX25vZGUpOwogCmRpZmYgLS1naXQgYS9uZXQv Y29tcGF0LmMgYi9uZXQvY29tcGF0LmMKaW5kZXggNzU5ZTU0Mi4uZjA2OTk0ZCAxMDA2NDQKLS0t IGEvbmV0L2NvbXBhdC5jCisrKyBiL25ldC9jb21wYXQuYwpAQCAtNzEsNiArNzEsMTMgQEAgaW50 IGdldF9jb21wYXRfbXNnaGRyKHN0cnVjdCBtc2doZHIgKmttc2csIHN0cnVjdCBjb21wYXRfbXNn aGRyIF9fdXNlciAqdW1zZykKIAkgICAgX19nZXRfdXNlcihrbXNnLT5tc2dfY29udHJvbGxlbiwg JnVtc2ctPm1zZ19jb250cm9sbGVuKSB8fAogCSAgICBfX2dldF91c2VyKGttc2ctPm1zZ19mbGFn cywgJnVtc2ctPm1zZ19mbGFncykpCiAJCXJldHVybiAtRUZBVUxUOworCisJaWYgKCF0bXAxKQor CQlrbXNnLT5tc2dfbmFtZWxlbiA9IDA7CisKKwlpZiAoa21zZy0+bXNnX25hbWVsZW4gPCAwKQor CQlyZXR1cm4gLUVJTlZBTDsKKwogCWlmIChrbXNnLT5tc2dfbmFtZWxlbiA+IHNpemVvZihzdHJ1 Y3Qgc29ja2FkZHJfc3RvcmFnZSkpCiAJCWttc2ctPm1zZ19uYW1lbGVuID0gc2l6ZW9mKHN0cnVj dCBzb2NrYWRkcl9zdG9yYWdlKTsKIAlrbXNnLT5tc2dfbmFtZSA9IGNvbXBhdF9wdHIodG1wMSk7 CkBAIC03MzcsMjQgKzc0NCwxOCBAQCBzdGF0aWMgdW5zaWduZWQgY2hhciBuYXNbMjFdID0gewog CiBhc21saW5rYWdlIGxvbmcgY29tcGF0X3N5c19zZW5kbXNnKGludCBmZCwgc3RydWN0IGNvbXBh dF9tc2doZHIgX191c2VyICptc2csIHVuc2lnbmVkIGZsYWdzKQogewotCWlmIChmbGFncyAmIE1T R19DTVNHX0NPTVBBVCkKLQkJcmV0dXJuIC1FSU5WQUw7CiAJcmV0dXJuIF9fc3lzX3NlbmRtc2co ZmQsIChzdHJ1Y3QgbXNnaGRyIF9fdXNlciAqKW1zZywgZmxhZ3MgfCBNU0dfQ01TR19DT01QQVQp OwogfQogCiBhc21saW5rYWdlIGxvbmcgY29tcGF0X3N5c19zZW5kbW1zZyhpbnQgZmQsIHN0cnVj dCBjb21wYXRfbW1zZ2hkciBfX3VzZXIgKm1tc2csCiAJCQkJICAgIHVuc2lnbmVkIHZsZW4sIHVu c2lnbmVkIGludCBmbGFncykKIHsKLQlpZiAoZmxhZ3MgJiBNU0dfQ01TR19DT01QQVQpCi0JCXJl dHVybiAtRUlOVkFMOwogCXJldHVybiBfX3N5c19zZW5kbW1zZyhmZCwgKHN0cnVjdCBtbXNnaGRy IF9fdXNlciAqKW1tc2csIHZsZW4sCiAJCQkgICAgICBmbGFncyB8IE1TR19DTVNHX0NPTVBBVCk7 CiB9CiAKIGFzbWxpbmthZ2UgbG9uZyBjb21wYXRfc3lzX3JlY3Ztc2coaW50IGZkLCBzdHJ1Y3Qg Y29tcGF0X21zZ2hkciBfX3VzZXIgKm1zZywgdW5zaWduZWQgaW50IGZsYWdzKQogewotCWlmIChm bGFncyAmIE1TR19DTVNHX0NPTVBBVCkKLQkJcmV0dXJuIC1FSU5WQUw7CiAJcmV0dXJuIF9fc3lz X3JlY3Ztc2coZmQsIChzdHJ1Y3QgbXNnaGRyIF9fdXNlciAqKW1zZywgZmxhZ3MgfCBNU0dfQ01T R19DT01QQVQpOwogfQogCkBAIC03NzcsOSArNzc4LDYgQEAgYXNtbGlua2FnZSBsb25nIGNvbXBh dF9zeXNfcmVjdm1tc2coaW50IGZkLCBzdHJ1Y3QgY29tcGF0X21tc2doZHIgX191c2VyICptbXNn LAogCWludCBkYXRhZ3JhbXM7CiAJc3RydWN0IHRpbWVzcGVjIGt0c3BlYzsKIAotCWlmIChmbGFn cyAmIE1TR19DTVNHX0NPTVBBVCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KIAlpZiAodGltZW91dCA9 PSBOVUxMKQogCQlyZXR1cm4gX19zeXNfcmVjdm1tc2coZmQsIChzdHJ1Y3QgbW1zZ2hkciBfX3Vz ZXIgKiltbXNnLCB2bGVuLAogCQkJCSAgICAgIGZsYWdzIHwgTVNHX0NNU0dfQ09NUEFULCBOVUxM KTsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggZmNi NTEzMy4uMWMwZDg2MiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMKKysrIGIvbmV0L2NvcmUv ZGV2LmMKQEAgLTg1OSw3ICs4NTksNyBAQCBpbnQgZGV2X3ZhbGlkX25hbWUoY29uc3QgY2hhciAq bmFtZSkKIAkJcmV0dXJuIDA7CiAKIAl3aGlsZSAoKm5hbWUpIHsKLQkJaWYgKCpuYW1lID09ICcv JyB8fCBpc3NwYWNlKCpuYW1lKSkKKwkJaWYgKCpuYW1lID09ICcvJyB8fCAqbmFtZSA9PSAnOicg fHwgaXNzcGFjZSgqbmFtZSkpCiAJCQlyZXR1cm4gMDsKIAkJbmFtZSsrOwogCX0KQEAgLTYzMzgs MTAgKzYzMzgsMjAgQEAgc3RhdGljIGludCBkZXZfY3B1X2NhbGxiYWNrKHN0cnVjdCBub3RpZmll cl9ibG9jayAqbmZiLAogCQlvbGRzZC0+b3V0cHV0X3F1ZXVlID0gTlVMTDsKIAkJb2xkc2QtPm91 dHB1dF9xdWV1ZV90YWlscCA9ICZvbGRzZC0+b3V0cHV0X3F1ZXVlOwogCX0KLQkvKiBBcHBlbmQg TkFQSSBwb2xsIGxpc3QgZnJvbSBvZmZsaW5lIENQVS4gKi8KLQlpZiAoIWxpc3RfZW1wdHkoJm9s ZHNkLT5wb2xsX2xpc3QpKSB7Ci0JCWxpc3Rfc3BsaWNlX2luaXQoJm9sZHNkLT5wb2xsX2xpc3Qs ICZzZC0+cG9sbF9saXN0KTsKLQkJcmFpc2Vfc29mdGlycV9pcnFvZmYoTkVUX1JYX1NPRlRJUlEp OworCS8qIEFwcGVuZCBOQVBJIHBvbGwgbGlzdCBmcm9tIG9mZmxpbmUgQ1BVLCB3aXRoIG9uZSBl eGNlcHRpb24gOgorCSAqIHByb2Nlc3NfYmFja2xvZygpIG11c3QgYmUgY2FsbGVkIGJ5IGNwdSBv d25pbmcgcGVyY3B1IGJhY2tsb2cuCisJICogV2UgcHJvcGVybHkgaGFuZGxlIHByb2Nlc3NfcXVl dWUgJiBpbnB1dF9wa3RfcXVldWUgbGF0ZXIuCisJICovCisJd2hpbGUgKCFsaXN0X2VtcHR5KCZv bGRzZC0+cG9sbF9saXN0KSkgeworCQlzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGkgPSBsaXN0X2Zp cnN0X2VudHJ5KCZvbGRzZC0+cG9sbF9saXN0LAorCQkJCQkJCSAgICBzdHJ1Y3QgbmFwaV9zdHJ1 Y3QsCisJCQkJCQkJICAgIHBvbGxfbGlzdCk7CisKKwkJbGlzdF9kZWxfaW5pdCgmbmFwaS0+cG9s bF9saXN0KTsKKwkJaWYgKG5hcGktPnBvbGwgPT0gcHJvY2Vzc19iYWNrbG9nKQorCQkJbmFwaS0+ c3RhdGUgPSAwOworCQllbHNlCisJCQlfX19fbmFwaV9zY2hlZHVsZShzZCwgbmFwaSk7CiAJfQog CiAJcmFpc2Vfc29mdGlycV9pcnFvZmYoTkVUX1RYX1NPRlRJUlEpOwpAQCAtNjM1Miw3ICs2MzYy LDcgQEAgc3RhdGljIGludCBkZXZfY3B1X2NhbGxiYWNrKHN0cnVjdCBub3RpZmllcl9ibG9jayAq bmZiLAogCQluZXRpZl9yeChza2IpOwogCQlpbnB1dF9xdWV1ZV9oZWFkX2luY3Iob2xkc2QpOwog CX0KLQl3aGlsZSAoKHNrYiA9IF9fc2tiX2RlcXVldWUoJm9sZHNkLT5pbnB1dF9wa3RfcXVldWUp KSkgeworCXdoaWxlICgoc2tiID0gc2tiX2RlcXVldWUoJm9sZHNkLT5pbnB1dF9wa3RfcXVldWUp KSkgewogCQluZXRpZl9yeChza2IpOwogCQlpbnB1dF9xdWV1ZV9oZWFkX2luY3Iob2xkc2QpOwog CX0KZGlmZiAtLWdpdCBhL25ldC9jb3JlL2dlbl9zdGF0cy5jIGIvbmV0L2NvcmUvZ2VuX3N0YXRz LmMKaW5kZXggMDQ1MmViMi4uOTEwODBjMSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZ2VuX3N0YXRz LmMKKysrIGIvbmV0L2NvcmUvZ2VuX3N0YXRzLmMKQEAgLTMxLDYgKzMxLDkgQEAgZ25ldF9zdGF0 c19jb3B5KHN0cnVjdCBnbmV0X2R1bXAgKmQsIGludCB0eXBlLCB2b2lkICpidWYsIGludCBzaXpl KQogCXJldHVybiAwOwogCiBubGFfcHV0X2ZhaWx1cmU6CisJa2ZyZWUoZC0+eHN0YXRzKTsKKwlk LT54c3RhdHMgPSBOVUxMOworCWQtPnhzdGF0c19sZW4gPSAwOwogCXNwaW5fdW5sb2NrX2JoKGQt PmxvY2spOwogCXJldHVybiAtMTsKIH0KQEAgLTIwNCw3ICsyMDcsOSBAQCBpbnQKIGduZXRfc3Rh dHNfY29weV9hcHAoc3RydWN0IGduZXRfZHVtcCAqZCwgdm9pZCAqc3QsIGludCBsZW4pCiB7CiAJ aWYgKGQtPmNvbXBhdF94c3RhdHMpIHsKLQkJZC0+eHN0YXRzID0gc3Q7CisJCWQtPnhzdGF0cyA9 IGttZW1kdXAoc3QsIGxlbiwgR0ZQX0FUT01JQyk7CisJCWlmICghZC0+eHN0YXRzKQorCQkJZ290 byBlcnJfb3V0OwogCQlkLT54c3RhdHNfbGVuID0gbGVuOwogCX0KIApAQCAtMjEyLDYgKzIxNywx MSBAQCBnbmV0X3N0YXRzX2NvcHlfYXBwKHN0cnVjdCBnbmV0X2R1bXAgKmQsIHZvaWQgKnN0LCBp bnQgbGVuKQogCQlyZXR1cm4gZ25ldF9zdGF0c19jb3B5KGQsIFRDQV9TVEFUU19BUFAsIHN0LCBs ZW4pOwogCiAJcmV0dXJuIDA7CisKK2Vycl9vdXQ6CisJZC0+eHN0YXRzX2xlbiA9IDA7CisJc3Bp bl91bmxvY2tfYmgoZC0+bG9jayk7CisJcmV0dXJuIC0xOwogfQogRVhQT1JUX1NZTUJPTChnbmV0 X3N0YXRzX2NvcHlfYXBwKTsKIApAQCAtMjQ0LDYgKzI1NCw5IEBAIGduZXRfc3RhdHNfZmluaXNo X2NvcHkoc3RydWN0IGduZXRfZHVtcCAqZCkKIAkJCXJldHVybiAtMTsKIAl9CiAKKwlrZnJlZShk LT54c3RhdHMpOworCWQtPnhzdGF0cyA9IE5VTEw7CisJZC0+eHN0YXRzX2xlbiA9IDA7CiAJc3Bp bl91bmxvY2tfYmgoZC0+bG9jayk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9uZXQvY29y ZS9ydG5ldGxpbmsuYyBiL25ldC9jb3JlL3J0bmV0bGluay5jCmluZGV4IDA5MDBhMTcuLjViNDEy ZjAgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3J0bmV0bGluay5jCisrKyBiL25ldC9jb3JlL3J0bmV0 bGluay5jCkBAIC0xMTUyLDE0ICsxMTUyLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3Bv bGljeSBpZmxhX3ZmaW5mb19wb2xpY3lbSUZMQV9WRl9JTkZPX01BWCsxXSA9IHsKIH07CiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBpZmxhX3ZmX3BvbGljeVtJRkxBX1ZGX01BWCsx XSA9IHsKLQlbSUZMQV9WRl9NQUNdCQk9IHsgLnR5cGUgPSBOTEFfQklOQVJZLAotCQkJCSAgICAu bGVuID0gc2l6ZW9mKHN0cnVjdCBpZmxhX3ZmX21hYykgfSwKLQlbSUZMQV9WRl9WTEFOXQkJPSB7 IC50eXBlID0gTkxBX0JJTkFSWSwKLQkJCQkgICAgLmxlbiA9IHNpemVvZihzdHJ1Y3QgaWZsYV92 Zl92bGFuKSB9LAotCVtJRkxBX1ZGX1RYX1JBVEVdCT0geyAudHlwZSA9IE5MQV9CSU5BUlksCi0J CQkJICAgIC5sZW4gPSBzaXplb2Yoc3RydWN0IGlmbGFfdmZfdHhfcmF0ZSkgfSwKLQlbSUZMQV9W Rl9TUE9PRkNIS10JPSB7IC50eXBlID0gTkxBX0JJTkFSWSwKLQkJCQkgICAgLmxlbiA9IHNpemVv ZihzdHJ1Y3QgaWZsYV92Zl9zcG9vZmNoaykgfSwKKwlbSUZMQV9WRl9NQUNdCQk9IHsgLmxlbiA9 IHNpemVvZihzdHJ1Y3QgaWZsYV92Zl9tYWMpIH0sCisJW0lGTEFfVkZfVkxBTl0JCT0geyAubGVu ID0gc2l6ZW9mKHN0cnVjdCBpZmxhX3ZmX3ZsYW4pIH0sCisJW0lGTEFfVkZfVFhfUkFURV0JPSB7 IC5sZW4gPSBzaXplb2Yoc3RydWN0IGlmbGFfdmZfdHhfcmF0ZSkgfSwKKwlbSUZMQV9WRl9TUE9P RkNIS10JPSB7IC5sZW4gPSBzaXplb2Yoc3RydWN0IGlmbGFfdmZfc3Bvb2ZjaGspIH0sCiB9Owog CiBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgaWZsYV9wb3J0X3BvbGljeVtJRkxBX1BP UlRfTUFYKzFdID0gewpAQCAtMTcwNSwxMCArMTcwMSwxMCBAQCBzdGF0aWMgaW50IHJ0bmxfZ3Jv dXBfY2hhbmdlbGluayhzdHJ1Y3QgbmV0ICpuZXQsIGludCBncm91cCwKIAkJc3RydWN0IGlmaW5m b21zZyAqaWZtLAogCQlzdHJ1Y3QgbmxhdHRyICoqdGIpCiB7Ci0Jc3RydWN0IG5ldF9kZXZpY2Ug KmRldjsKKwlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCAqYXV4OwogCWludCBlcnI7CiAKLQlmb3Jf ZWFjaF9uZXRkZXYobmV0LCBkZXYpIHsKKwlmb3JfZWFjaF9uZXRkZXZfc2FmZShuZXQsIGRldiwg YXV4KSB7CiAJCWlmIChkZXYtPmdyb3VwID09IGdyb3VwKSB7CiAJCQllcnIgPSBkb19zZXRsaW5r KGRldiwgaWZtLCB0YiwgTlVMTCwgMCk7CiAJCQlpZiAoZXJyIDwgMCkKQEAgLTE4NjQsOCArMTg2 MCwxNiBAQCByZXBsYXk6CiAJCQlnb3RvIG91dDsKIAogCQllcnIgPSBydG5sX2NvbmZpZ3VyZV9s aW5rKGRldiwgaWZtKTsKLQkJaWYgKGVyciA8IDApCi0JCQl1bnJlZ2lzdGVyX25ldGRldmljZShk ZXYpOworCQlpZiAoZXJyIDwgMCkgeworCQkJaWYgKG9wcy0+bmV3bGluaykgeworCQkJCUxJU1Rf SEVBRChsaXN0X2tpbGwpOworCisJCQkJb3BzLT5kZWxsaW5rKGRldiwgJmxpc3Rfa2lsbCk7CisJ CQkJdW5yZWdpc3Rlcl9uZXRkZXZpY2VfbWFueSgmbGlzdF9raWxsKTsKKwkJCX0gZWxzZSB7CisJ CQkJdW5yZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTsKKwkJCX0KKwkJfQogb3V0OgogCQlwdXRfbmV0 KGRlc3RfbmV0KTsKIAkJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3N5c2N0bF9u ZXRfY29yZS5jIGIvbmV0L2NvcmUvc3lzY3RsX25ldF9jb3JlLmMKaW5kZXggZjBiZGQzNi4uZjk0 OTZjNCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc3lzY3RsX25ldF9jb3JlLmMKKysrIGIvbmV0L2Nv cmUvc3lzY3RsX25ldF9jb3JlLmMKQEAgLTIxLDYgKzIxLDggQEAKIAogc3RhdGljIGludCB6ZXJv ID0gMDsKIHN0YXRpYyBpbnQgdXNob3J0X21heCA9IFVTSFJUX01BWDsKK3N0YXRpYyBpbnQgbWlu X3NuZGJ1ZiA9IFNPQ0tfTUlOX1NOREJVRjsKK3N0YXRpYyBpbnQgbWluX3JjdmJ1ZiA9IFNPQ0tf TUlOX1JDVkJVRjsKIAogI2lmZGVmIENPTkZJR19SUFMKIHN0YXRpYyBpbnQgcnBzX3NvY2tfZmxv d19zeXNjdGwoY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLApAQCAtODksMjggKzkxLDMyIEBA IHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlIG5ldF9jb3JlX3RhYmxlW10gPSB7CiAJCS5kYXRhCQk9 ICZzeXNjdGxfd21lbV9tYXgsCiAJCS5tYXhsZW4JCT0gc2l6ZW9mKGludCksCiAJCS5tb2RlCQk9 IDA2NDQsCi0JCS5wcm9jX2hhbmRsZXIJPSBwcm9jX2RvaW50dmVjCisJCS5wcm9jX2hhbmRsZXIJ PSBwcm9jX2RvaW50dmVjX21pbm1heCwKKwkJLmV4dHJhMQkJPSAmbWluX3NuZGJ1ZiwKIAl9LAog CXsKIAkJLnByb2NuYW1lCT0gInJtZW1fbWF4IiwKIAkJLmRhdGEJCT0gJnN5c2N0bF9ybWVtX21h eCwKIAkJLm1heGxlbgkJPSBzaXplb2YoaW50KSwKIAkJLm1vZGUJCT0gMDY0NCwKLQkJLnByb2Nf aGFuZGxlcgk9IHByb2NfZG9pbnR2ZWMKKwkJLnByb2NfaGFuZGxlcgk9IHByb2NfZG9pbnR2ZWNf bWlubWF4LAorCQkuZXh0cmExCQk9ICZtaW5fcmN2YnVmLAogCX0sCiAJewogCQkucHJvY25hbWUJ PSAid21lbV9kZWZhdWx0IiwKIAkJLmRhdGEJCT0gJnN5c2N0bF93bWVtX2RlZmF1bHQsCiAJCS5t YXhsZW4JCT0gc2l6ZW9mKGludCksCiAJCS5tb2RlCQk9IDA2NDQsCi0JCS5wcm9jX2hhbmRsZXIJ PSBwcm9jX2RvaW50dmVjCisJCS5wcm9jX2hhbmRsZXIJPSBwcm9jX2RvaW50dmVjX21pbm1heCwK KwkJLmV4dHJhMQkJPSAmbWluX3NuZGJ1ZiwKIAl9LAogCXsKIAkJLnByb2NuYW1lCT0gInJtZW1f ZGVmYXVsdCIsCiAJCS5kYXRhCQk9ICZzeXNjdGxfcm1lbV9kZWZhdWx0LAogCQkubWF4bGVuCQk9 IHNpemVvZihpbnQpLAogCQkubW9kZQkJPSAwNjQ0LAotCQkucHJvY19oYW5kbGVyCT0gcHJvY19k b2ludHZlYworCQkucHJvY19oYW5kbGVyCT0gcHJvY19kb2ludHZlY19taW5tYXgsCisJCS5leHRy YTEJCT0gJm1pbl9yY3ZidWYsCiAJfSwKIAl7CiAJCS5wcm9jbmFtZQk9ICJkZXZfd2VpZ2h0IiwK ZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2ZvcndhcmQuYyBiL25ldC9pcHY0L2lwX2ZvcndhcmQu YwppbmRleCAyOWEwN2I2Li5iY2Q3OGEzIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9mb3J3YXJk LmMKKysrIGIvbmV0L2lwdjQvaXBfZm9yd2FyZC5jCkBAIC01Nyw2ICs1Nyw5IEBAIGludCBpcF9m b3J3YXJkKHN0cnVjdCBza19idWZmICpza2IpCiAJc3RydWN0IHJ0YWJsZSAqcnQ7CS8qIFJvdXRl IHdlIHVzZSAqLwogCXN0cnVjdCBpcF9vcHRpb25zICogb3B0CT0gJihJUENCKHNrYiktPm9wdCk7 CiAKKwlpZiAodW5saWtlbHkoc2tiLT5zaykpCisJCWdvdG8gZHJvcDsKKwogCWlmIChza2Jfd2Fy bl9pZl9scm8oc2tiKSkKIAkJZ290byBkcm9wOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9m cmFnbWVudC5jIGIvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYwppbmRleCA4ZjQ0MWIyLi4xNmUyNWE0 IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9mcmFnbWVudC5jCisrKyBiL25ldC9pcHY0L2lwX2Zy YWdtZW50LmMKQEAgLTY5MiwyNyArNjkyLDMwIEBAIEVYUE9SVF9TWU1CT0woaXBfZGVmcmFnKTsK IHN0cnVjdCBza19idWZmICppcF9jaGVja19kZWZyYWcoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMy IHVzZXIpCiB7CiAJc3RydWN0IGlwaGRyIGlwaDsKKwlpbnQgbmV0b2ZmOwogCXUzMiBsZW47CiAK IAlpZiAoc2tiLT5wcm90b2NvbCAhPSBodG9ucyhFVEhfUF9JUCkpCiAJCXJldHVybiBza2I7CiAK LQlpZiAoIXNrYl9jb3B5X2JpdHMoc2tiLCAwLCAmaXBoLCBzaXplb2YoaXBoKSkpCisJbmV0b2Zm ID0gc2tiX25ldHdvcmtfb2Zmc2V0KHNrYik7CisKKwlpZiAoc2tiX2NvcHlfYml0cyhza2IsIG5l dG9mZiwgJmlwaCwgc2l6ZW9mKGlwaCkpIDwgMCkKIAkJcmV0dXJuIHNrYjsKIAogCWlmIChpcGgu aWhsIDwgNSB8fCBpcGgudmVyc2lvbiAhPSA0KQogCQlyZXR1cm4gc2tiOwogCiAJbGVuID0gbnRv aHMoaXBoLnRvdF9sZW4pOwotCWlmIChza2ItPmxlbiA8IGxlbiB8fCBsZW4gPCAoaXBoLmlobCAq IDQpKQorCWlmIChza2ItPmxlbiA8IG5ldG9mZiArIGxlbiB8fCBsZW4gPCAoaXBoLmlobCAqIDQp KQogCQlyZXR1cm4gc2tiOwogCiAJaWYgKGlwX2lzX2ZyYWdtZW50KCZpcGgpKSB7CiAJCXNrYiA9 IHNrYl9zaGFyZV9jaGVjayhza2IsIEdGUF9BVE9NSUMpOwogCQlpZiAoc2tiKSB7Ci0JCQlpZiAo IXBza2JfbWF5X3B1bGwoc2tiLCBpcGguaWhsKjQpKQorCQkJaWYgKCFwc2tiX21heV9wdWxsKHNr YiwgbmV0b2ZmICsgaXBoLmlobCAqIDQpKQogCQkJCXJldHVybiBza2I7Ci0JCQlpZiAocHNrYl90 cmltX3Jjc3VtKHNrYiwgbGVuKSkKKwkJCWlmIChwc2tiX3RyaW1fcmNzdW0oc2tiLCBuZXRvZmYg KyBsZW4pKQogCQkJCXJldHVybiBza2I7CiAJCQltZW1zZXQoSVBDQihza2IpLCAwLCBzaXplb2Yo c3RydWN0IGluZXRfc2tiX3Bhcm0pKTsKIAkJCWlmIChpcF9kZWZyYWcoc2tiLCB1c2VyKSkKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L2lwX291dHB1dC5jIGIvbmV0L2lwdjQvaXBfb3V0cHV0LmMKaW5k ZXggYmYyZTU0Yi4uMDEzZjU5YiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfb3V0cHV0LmMKKysr IGIvbmV0L2lwdjQvaXBfb3V0cHV0LmMKQEAgLTgzNCw3ICs4MzQsOCBAQCBzdGF0aWMgaW50IF9f aXBfYXBwZW5kX2RhdGEoc3RydWN0IHNvY2sgKnNrLAogCWNvcmstPmxlbmd0aCArPSBsZW5ndGg7 CiAJaWYgKCgobGVuZ3RoID4gbXR1KSB8fCAoc2tiICYmIHNrYl9oYXNfZnJhZ3Moc2tiKSkpICYm CiAJICAgIChzay0+c2tfcHJvdG9jb2wgPT0gSVBQUk9UT19VRFApICYmCi0JICAgIChydC0+ZHN0 LmRldi0+ZmVhdHVyZXMgJiBORVRJRl9GX1VGTykgJiYgIXJ0LT5kc3QuaGVhZGVyX2xlbikgewor CSAgICAocnQtPmRzdC5kZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9VRk8pICYmICFydC0+ZHN0Lmhl YWRlcl9sZW4gJiYKKwkgICAgKHNrLT5za190eXBlID09IFNPQ0tfREdSQU0pKSB7CiAJCWVyciA9 IGlwX3Vmb19hcHBlbmRfZGF0YShzaywgcXVldWUsIGdldGZyYWcsIGZyb20sIGxlbmd0aCwKIAkJ CQkJIGhoX2xlbiwgZnJhZ2hlYWRlcmxlbiwgdHJhbnNoZHJsZW4sCiAJCQkJCSBtYXhmcmFnbGVu LCBmbGFncyk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jIGIvbmV0L2lwdjQv aXBfc29ja2dsdWUuYwppbmRleCA1NDJhOWMxLi4wNDNkODgyIDEwMDY0NAotLS0gYS9uZXQvaXB2 NC9pcF9zb2NrZ2x1ZS5jCisrKyBiL25ldC9pcHY0L2lwX3NvY2tnbHVlLmMKQEAgLTQxNiwxNSAr NDE2LDExIEBAIGludCBpcF9yZWN2X2Vycm9yKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hk ciAqbXNnLCBpbnQgbGVuLCBpbnQgKmFkZHJfbGVuKQogCiAJbWVtY3B5KCZlcnJoZHIuZWUsICZz ZXJyLT5lZSwgc2l6ZW9mKHN0cnVjdCBzb2NrX2V4dGVuZGVkX2VycikpOwogCXNpbiA9ICZlcnJo ZHIub2ZmZW5kZXI7Ci0Jc2luLT5zaW5fZmFtaWx5ID0gQUZfVU5TUEVDOworCW1lbXNldChzaW4s IDAsIHNpemVvZigqc2luKSk7CiAJaWYgKHNlcnItPmVlLmVlX29yaWdpbiA9PSBTT19FRV9PUklH SU5fSUNNUCkgewotCQlzdHJ1Y3QgaW5ldF9zb2NrICppbmV0ID0gaW5ldF9zayhzayk7Ci0KIAkJ c2luLT5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKIAkJc2luLT5zaW5fYWRkci5zX2FkZHIgPSBpcF9o ZHIoc2tiKS0+c2FkZHI7Ci0JCXNpbi0+c2luX3BvcnQgPSAwOwotCQltZW1zZXQoJnNpbi0+c2lu X3plcm8sIDAsIHNpemVvZihzaW4tPnNpbl96ZXJvKSk7Ci0JCWlmIChpbmV0LT5jbXNnX2ZsYWdz KQorCQlpZiAoaW5ldF9zayhzayktPmNtc2dfZmxhZ3MpCiAJCQlpcF9jbXNnX3JlY3YobXNnLCBz a2IpOwogCX0KIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcGluZy5jIGIvbmV0L2lwdjQvcGluZy5j CmluZGV4IGQ0OTVkNGIuLjdhYTYyMjUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3BpbmcuYworKysg Yi9uZXQvaXB2NC9waW5nLmMKQEAgLTEzOSw2ICsxMzksNyBAQCBzdGF0aWMgdm9pZCBwaW5nX3Y0 X3VuaGFzaChzdHJ1Y3Qgc29jayAqc2spCiAJaWYgKHNrX2hhc2hlZChzaykpIHsKIAkJd3JpdGVf bG9ja19iaCgmcGluZ190YWJsZS5sb2NrKTsKIAkJaGxpc3RfbnVsbHNfZGVsKCZzay0+c2tfbnVs bHNfbm9kZSk7CisJCXNrX251bGxzX25vZGVfaW5pdCgmc2stPnNrX251bGxzX25vZGUpOwogCQlz b2NrX3B1dChzayk7CiAJCWlzay0+aW5ldF9udW0gPSBpc2stPmluZXRfc3BvcnQgPSAwOwogCQlz b2NrX3Byb3RfaW51c2VfYWRkKHNvY2tfbmV0KHNrKSwgc2stPnNrX3Byb3QsIC0xKTsKQEAgLTI1 Nyw2ICsyNTgsMTEgQEAgc3RhdGljIGludCBwaW5nX2JpbmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCiAJaWYgKGFkZHJfbGVuIDwgc2l6ZW9m KHN0cnVjdCBzb2NrYWRkcl9pbikpCiAJCXJldHVybiAtRUlOVkFMOwogCisJaWYgKGFkZHItPnNp bl9mYW1pbHkgIT0gQUZfSU5FVCAmJgorCSAgICAhKGFkZHItPnNpbl9mYW1pbHkgPT0gQUZfVU5T UEVDICYmCisJICAgICAgYWRkci0+c2luX2FkZHIuc19hZGRyID09IGh0b25sKElOQUREUl9BTlkp KSkKKwkJcmV0dXJuIC1FQUZOT1NVUFBPUlQ7CisKIAlwcl9kZWJ1ZygicGluZ192NF9iaW5kKHNr PSVwLHNhX2FkZHI9JTA4eCxzYV9wb3J0PSVkKVxuIiwKIAkJc2ssIGFkZHItPnNpbl9hZGRyLnNf YWRkciwgbnRvaHMoYWRkci0+c2luX3BvcnQpKTsKIApAQCAtNTA0LDcgKzUxMCw3IEBAIHN0YXRp YyBpbnQgcGluZ19zZW5kbXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3QgbXNnaGRyICptc2csCiAJCWlmIChtc2ctPm1zZ19uYW1lbGVuIDwgc2l6ZW9mKCp1c2lu KSkKIAkJCXJldHVybiAtRUlOVkFMOwogCQlpZiAodXNpbi0+c2luX2ZhbWlseSAhPSBBRl9JTkVU KQotCQkJcmV0dXJuIC1FSU5WQUw7CisJCQlyZXR1cm4gLUVBRk5PU1VQUE9SVDsKIAkJZGFkZHIg PSB1c2luLT5zaW5fYWRkci5zX2FkZHI7CiAJCS8qIG5vIHJlbW90ZSBwb3J0ICovCiAJfSBlbHNl IHsKQEAgLTcxNiw4ICs3MjIsMTEgQEAgdm9pZCBwaW5nX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogCXNrID0gcGluZ192NF9sb29rdXAobmV0LCBzYWRkciwgZGFkZHIsIG50b2hzKGljbXBoLT51 bi5lY2hvLmlkKSwKIAkJCSAgICBza2ItPmRldi0+aWZpbmRleCk7CiAJaWYgKHNrICE9IE5VTEwp IHsKKwkJc3RydWN0IHNrX2J1ZmYgKnNrYjIgPSBza2JfY2xvbmUoc2tiLCBHRlBfQVRPTUlDKTsK KwogCQlwcl9kZWJ1ZygicmN2IG9uIHNvY2tldCAlcFxuIiwgc2spOwotCQlwaW5nX3F1ZXVlX3Jj dl9za2Ioc2ssIHNrYl9nZXQoc2tiKSk7CisJCWlmIChza2IyKQorCQkJcGluZ19xdWV1ZV9yY3Zf c2tiKHNrLCBza2IyKTsKIAkJc29ja19wdXQoc2spOwogCQlyZXR1cm47CiAJfQpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMgYi9uZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQu YwppbmRleCA3MzliMDczLi4yNTNkZDgwIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9zeXNjdGxfbmV0 X2lwdjQuYworKysgYi9uZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYwpAQCAtMjQsNyArMjQsNyBA QAogI2luY2x1ZGUgPG5ldC9pbmV0X2ZyYWcuaD4KICNpbmNsdWRlIDxuZXQvcGluZy5oPgogCi1z dGF0aWMgaW50IHplcm87CitzdGF0aWMgaW50IG9uZSA9IDE7CiBzdGF0aWMgaW50IHRjcF9yZXRy MV9tYXggPSAyNTU7CiBzdGF0aWMgaW50IGlwX2xvY2FsX3BvcnRfcmFuZ2VfbWluW10gPSB7IDEs IDEgfTsKIHN0YXRpYyBpbnQgaXBfbG9jYWxfcG9ydF9yYW5nZV9tYXhbXSA9IHsgNjU1MzUsIDY1 NTM1IH07CkBAIC00NDgsMTQgKzQ0OCwxNiBAQCBzdGF0aWMgc3RydWN0IGN0bF90YWJsZSBpcHY0 X3RhYmxlW10gPSB7CiAJCS5kYXRhCQk9ICZzeXNjdGxfdGNwX3dtZW0sCiAJCS5tYXhsZW4JCT0g c2l6ZW9mKHN5c2N0bF90Y3Bfd21lbSksCiAJCS5tb2RlCQk9IDA2NDQsCi0JCS5wcm9jX2hhbmRs ZXIJPSBwcm9jX2RvaW50dmVjCisJCS5wcm9jX2hhbmRsZXIJPSBwcm9jX2RvaW50dmVjX21pbm1h eCwKKwkJLmV4dHJhMQkJPSAmb25lLAogCX0sCiAJewogCQkucHJvY25hbWUJPSAidGNwX3JtZW0i LAogCQkuZGF0YQkJPSAmc3lzY3RsX3RjcF9ybWVtLAogCQkubWF4bGVuCQk9IHNpemVvZihzeXNj dGxfdGNwX3JtZW0pLAogCQkubW9kZQkJPSAwNjQ0LAotCQkucHJvY19oYW5kbGVyCT0gcHJvY19k b2ludHZlYworCQkucHJvY19oYW5kbGVyCT0gcHJvY19kb2ludHZlY19taW5tYXgsCisJCS5leHRy YTEJCT0gJm9uZSwKIAl9LAogCXsKIAkJLnByb2NuYW1lCT0gInRjcF9hcHBfd2luIiwKQEAgLTY2 Miw3ICs2NjQsNyBAQCBzdGF0aWMgc3RydWN0IGN0bF90YWJsZSBpcHY0X3RhYmxlW10gPSB7CiAJ CS5tYXhsZW4JCT0gc2l6ZW9mKHN5c2N0bF91ZHBfcm1lbV9taW4pLAogCQkubW9kZQkJPSAwNjQ0 LAogCQkucHJvY19oYW5kbGVyCT0gcHJvY19kb2ludHZlY19taW5tYXgsCi0JCS5leHRyYTEJCT0g Jnplcm8KKwkJLmV4dHJhMQkJPSAmb25lCiAJfSwKIAl7CiAJCS5wcm9jbmFtZQk9ICJ1ZHBfd21l bV9taW4iLApAQCAtNjcwLDcgKzY3Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlIGlwdjRf dGFibGVbXSA9IHsKIAkJLm1heGxlbgkJPSBzaXplb2Yoc3lzY3RsX3VkcF93bWVtX21pbiksCiAJ CS5tb2RlCQk9IDA2NDQsCiAJCS5wcm9jX2hhbmRsZXIJPSBwcm9jX2RvaW50dmVjX21pbm1heCwK LQkJLmV4dHJhMQkJPSAmemVybworCQkuZXh0cmExCQk9ICZvbmUKIAl9LAogCXsgfQogfTsKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwpp bmRleCAzYTM3ZjU0Li5lNjE0ODEwIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMK KysrIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCkBAIC0yMzIwLDMzICsyMzIwLDQwIEBAIGJlZ2lu X2Z3ZDoKIAl9CiB9CiAKLS8qIFNlbmQgYSBmaW4uICBUaGUgY2FsbGVyIGxvY2tzIHRoZSBzb2Nr ZXQgZm9yIHVzLiAgVGhpcyBjYW5ub3QgYmUKLSAqIGFsbG93ZWQgdG8gZmFpbCBxdWV1ZWluZyBh IEZJTiBmcmFtZSB1bmRlciBhbnkgY2lyY3Vtc3RhbmNlcy4KKy8qIFNlbmQgYSBGSU4uIFRoZSBj YWxsZXIgbG9ja3MgdGhlIHNvY2tldCBmb3IgdXMuCisgKiBXZSBzaG91bGQgdHJ5IHRvIHNlbmQg YSBGSU4gcGFja2V0IHJlYWxseSBoYXJkLCBidXQgZXZlbnR1YWxseSBnaXZlIHVwLgogICovCiB2 b2lkIHRjcF9zZW5kX2ZpbihzdHJ1Y3Qgc29jayAqc2spCiB7CisJc3RydWN0IHNrX2J1ZmYgKnNr YiwgKnRza2IgPSB0Y3Bfd3JpdGVfcXVldWVfdGFpbChzayk7CiAJc3RydWN0IHRjcF9zb2NrICp0 cCA9IHRjcF9zayhzayk7Ci0Jc3RydWN0IHNrX2J1ZmYgKnNrYiA9IHRjcF93cml0ZV9xdWV1ZV90 YWlsKHNrKTsKLQlpbnQgbXNzX25vdzsKIAotCS8qIE9wdGltaXphdGlvbiwgdGFjayBvbiB0aGUg RklOIGlmIHdlIGhhdmUgYSBxdWV1ZSBvZgotCSAqIHVuc2VudCBmcmFtZXMuICBCdXQgYmUgY2Fy ZWZ1bCBhYm91dCBvdXRnb2luZyBTQUNLUwotCSAqIGFuZCBJUCBvcHRpb25zLgorCS8qIE9wdGlt aXphdGlvbiwgdGFjayBvbiB0aGUgRklOIGlmIHdlIGhhdmUgb25lIHNrYiBpbiB3cml0ZSBxdWV1 ZSBhbmQKKwkgKiB0aGlzIHNrYiB3YXMgbm90IHlldCBzZW50LCBvciB3ZSBhcmUgdW5kZXIgbWVt b3J5IHByZXNzdXJlLgorCSAqIE5vdGU6IGluIHRoZSBsYXR0ZXIgY2FzZSwgRklOIHBhY2tldCB3 aWxsIGJlIHNlbnQgYWZ0ZXIgYSB0aW1lb3V0LAorCSAqIGFzIFRDUCBzdGFjayB0aGlua3MgaXQg aGFzIGFscmVhZHkgYmVlbiB0cmFuc21pdHRlZC4KIAkgKi8KLQltc3Nfbm93ID0gdGNwX2N1cnJl bnRfbXNzKHNrKTsKLQotCWlmICh0Y3Bfc2VuZF9oZWFkKHNrKSAhPSBOVUxMKSB7Ci0JCVRDUF9T S0JfQ0Ioc2tiKS0+dGNwX2ZsYWdzIHw9IFRDUEhEUl9GSU47Ci0JCVRDUF9TS0JfQ0Ioc2tiKS0+ ZW5kX3NlcSsrOworCWlmICh0c2tiICYmICh0Y3Bfc2VuZF9oZWFkKHNrKSB8fCB0Y3BfbWVtb3J5 X3ByZXNzdXJlKSkgeworY29hbGVzY2U6CisJCVRDUF9TS0JfQ0IodHNrYiktPnRjcF9mbGFncyB8 PSBUQ1BIRFJfRklOOworCQlUQ1BfU0tCX0NCKHRza2IpLT5lbmRfc2VxKys7CiAJCXRwLT53cml0 ZV9zZXErKzsKKwkJaWYgKCF0Y3Bfc2VuZF9oZWFkKHNrKSkgeworCQkJLyogVGhpcyBtZWFucyB0 c2tiIHdhcyBhbHJlYWR5IHNlbnQuCisJCQkgKiBQcmV0ZW5kIHdlIGluY2x1ZGVkIHRoZSBGSU4g b24gcHJldmlvdXMgdHJhbnNtaXQuCisJCQkgKiBXZSBuZWVkIHRvIHNldCB0cC0+c25kX254dCB0 byB0aGUgdmFsdWUgaXQgd291bGQgaGF2ZQorCQkJICogaWYgRklOIGhhZCBiZWVuIHNlbnQuIFRo aXMgaXMgYmVjYXVzZSByZXRyYW5zbWl0IHBhdGgKKwkJCSAqIGRvZXMgbm90IGNoYW5nZSB0cC0+ c25kX254dC4KKwkJCSAqLworCQkJdHAtPnNuZF9ueHQrKzsKKwkJCXJldHVybjsKKwkJfQogCX0g ZWxzZSB7Ci0JCS8qIFNvY2tldCBpcyBsb2NrZWQsIGtlZXAgdHJ5aW5nIHVudGlsIG1lbW9yeSBp cyBhdmFpbGFibGUuICovCi0JCWZvciAoOzspIHsKLQkJCXNrYiA9IGFsbG9jX3NrYl9mY2xvbmUo TUFYX1RDUF9IRUFERVIsCi0JCQkJCSAgICAgICBzay0+c2tfYWxsb2NhdGlvbik7Ci0JCQlpZiAo c2tiKQotCQkJCWJyZWFrOwotCQkJeWllbGQoKTsKKwkJc2tiID0gYWxsb2Nfc2tiX2ZjbG9uZShN QVhfVENQX0hFQURFUiwgc2stPnNrX2FsbG9jYXRpb24pOworCQlpZiAodW5saWtlbHkoIXNrYikp IHsKKwkJCWlmICh0c2tiKQorCQkJCWdvdG8gY29hbGVzY2U7CisJCQlyZXR1cm47CiAJCX0KIAog CQkvKiBSZXNlcnZlIHNwYWNlIGZvciBoZWFkZXJzIGFuZCBwcmVwYXJlIGNvbnRyb2wgYml0cy4g Ki8KQEAgLTIzNTYsNyArMjM2Myw3IEBAIHZvaWQgdGNwX3NlbmRfZmluKHN0cnVjdCBzb2NrICpz aykKIAkJCQkgICAgIFRDUEhEUl9BQ0sgfCBUQ1BIRFJfRklOKTsKIAkJdGNwX3F1ZXVlX3NrYihz aywgc2tiKTsKIAl9Ci0JX190Y3BfcHVzaF9wZW5kaW5nX2ZyYW1lcyhzaywgbXNzX25vdywgVENQ X05BR0xFX09GRik7CisJX190Y3BfcHVzaF9wZW5kaW5nX2ZyYW1lcyhzaywgdGNwX2N1cnJlbnRf bXNzKHNrKSwgVENQX05BR0xFX09GRik7CiB9CiAKIC8qIFdlIGdldCBoZXJlIHdoZW4gYSBwcm9j ZXNzIGNsb3NlcyBhIGZpbGUgZGVzY3JpcHRvciAoZWl0aGVyIGR1ZSB0bwpAQCAtMjYzMiwxMyAr MjYzOSwxMCBAQCBpbnQgdGNwX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrKQogCiAJdGNwX2Nvbm5l Y3RfaW5pdChzayk7CiAKLQlidWZmID0gYWxsb2Nfc2tiX2ZjbG9uZShNQVhfVENQX0hFQURFUiAr IDE1LCBzay0+c2tfYWxsb2NhdGlvbik7Ci0JaWYgKHVubGlrZWx5KGJ1ZmYgPT0gTlVMTCkpCisJ YnVmZiA9IHNrX3N0cmVhbV9hbGxvY19za2Ioc2ssIDAsIHNrLT5za19hbGxvY2F0aW9uKTsKKwlp ZiAodW5saWtlbHkoIWJ1ZmYpKQogCQlyZXR1cm4gLUVOT0JVRlM7CiAKLQkvKiBSZXNlcnZlIHNw YWNlIGZvciBoZWFkZXJzLiAqLwotCXNrYl9yZXNlcnZlKGJ1ZmYsIE1BWF9UQ1BfSEVBREVSKTsK LQogCXRwLT5zbmRfbnh0ID0gdHAtPndyaXRlX3NlcTsKIAl0Y3BfaW5pdF9ub25kYXRhX3NrYihi dWZmLCB0cC0+d3JpdGVfc2VxKyssIFRDUEhEUl9TWU4pOwogCVRDUF9FQ05fc2VuZF9zeW4oc2ss IGJ1ZmYpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvZGF0YWdyYW0uYyBiL25ldC9pcHY2L2RhdGFn cmFtLmMKaW5kZXggM2M3Yzk0OC4uMzM3MTliNyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvZGF0YWdy YW0uYworKysgYi9uZXQvaXB2Ni9kYXRhZ3JhbS5jCkBAIC0zNzEsMTIgKzM3MSwxMCBAQCBpbnQg aXB2Nl9yZWN2X2Vycm9yKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBpbnQg bGVuLCBpbnQgKmFkZHJfbGVuKQogCiAJbWVtY3B5KCZlcnJoZHIuZWUsICZzZXJyLT5lZSwgc2l6 ZW9mKHN0cnVjdCBzb2NrX2V4dGVuZGVkX2VycikpOwogCXNpbiA9ICZlcnJoZHIub2ZmZW5kZXI7 Ci0Jc2luLT5zaW42X2ZhbWlseSA9IEFGX1VOU1BFQzsKKwltZW1zZXQoc2luLCAwLCBzaXplb2Yo KnNpbikpOworCiAJaWYgKHNlcnItPmVlLmVlX29yaWdpbiAhPSBTT19FRV9PUklHSU5fTE9DQUwp IHsKIAkJc2luLT5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OwotCQlzaW4tPnNpbjZfZmxvd2luZm8g PSAwOwotCQlzaW4tPnNpbjZfcG9ydCA9IDA7Ci0JCXNpbi0+c2luNl9zY29wZV9pZCA9IDA7CiAJ CWlmIChza2ItPnByb3RvY29sID09IGh0b25zKEVUSF9QX0lQVjYpKSB7CiAJCQlpcHY2X2FkZHJf Y29weSgmc2luLT5zaW42X2FkZHIsICZpcHY2X2hkcihza2IpLT5zYWRkcik7CiAJCQlpZiAobnAt PnJ4b3B0LmFsbCkKQEAgLTM4NCwxMSArMzgyLDkgQEAgaW50IGlwdjZfcmVjdl9lcnJvcihzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgaW50IGxlbiwgaW50ICphZGRyX2xlbikK IAkJCWlmIChpcHY2X2FkZHJfdHlwZSgmc2luLT5zaW42X2FkZHIpICYgSVBWNl9BRERSX0xJTktM T0NBTCkKIAkJCQlzaW4tPnNpbjZfc2NvcGVfaWQgPSBJUDZDQihza2IpLT5paWY7CiAJCX0gZWxz ZSB7Ci0JCQlzdHJ1Y3QgaW5ldF9zb2NrICppbmV0ID0gaW5ldF9zayhzayk7Ci0KIAkJCWlwdjZf YWRkcl9zZXRfdjRtYXBwZWQoaXBfaGRyKHNrYiktPnNhZGRyLAogCQkJCQkgICAgICAgJnNpbi0+ c2luNl9hZGRyKTsKLQkJCWlmIChpbmV0LT5jbXNnX2ZsYWdzKQorCQkJaWYgKGluZXRfc2soc2sp LT5jbXNnX2ZsYWdzKQogCQkJCWlwX2Ntc2dfcmVjdihtc2csIHNrYik7CiAJCX0KIAl9CmRpZmYg LS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKaW5k ZXggMjIxNWQ2Yi4uNmIzZWRmZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X291dHB1dC5jCisr KyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwpAQCAtMTMzOSw3ICsxMzM5LDggQEAgaW50IGlwNl9h cHBlbmRfZGF0YShzdHJ1Y3Qgc29jayAqc2ssIGludCBnZXRmcmFnKHZvaWQgKmZyb20sIGNoYXIg KnRvLAogCWlmICgoKGxlbmd0aCA+IG10dSkgfHwKIAkgICAgIChza2IgJiYgc2tiX2hhc19mcmFn cyhza2IpKSkgJiYKIAkgICAgKHNrLT5za19wcm90b2NvbCA9PSBJUFBST1RPX1VEUCkgJiYKLQkg ICAgKHJ0LT5kc3QuZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfVUZPKSkgeworCSAgICAocnQtPmRz dC5kZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9VRk8pICYmCisJICAgIChzay0+c2tfdHlwZSA9PSBT T0NLX0RHUkFNKSkgewogCQllcnIgPSBpcDZfdWZvX2FwcGVuZF9kYXRhKHNrLCBnZXRmcmFnLCBm cm9tLCBsZW5ndGgsCiAJCQkJCSAgaGhfbGVuLCBmcmFnaGVhZGVybGVuLAogCQkJCQkgIHRyYW5z aGRybGVuLCBtdHUsIGZsYWdzLCBydCk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZGlzYy5jIGIv bmV0L2lwdjYvbmRpc2MuYwppbmRleCA2MjA5NmQ4Li44ODRkNDVmIDEwMDY0NAotLS0gYS9uZXQv aXB2Ni9uZGlzYy5jCisrKyBiL25ldC9pcHY2L25kaXNjLmMKQEAgLTEyNzcsNyArMTI3NywxNCBA QCBzdGF0aWMgdm9pZCBuZGlzY19yb3V0ZXJfZGlzY292ZXJ5KHN0cnVjdCBza19idWZmICpza2Ip CiAJCXJ0LT5ydDZpX2V4cGlyZXMgPSBqaWZmaWVzICsgKEhaICogbGlmZXRpbWUpOwogCiAJaWYg KHJhX21zZy0+aWNtcGguaWNtcDZfaG9wX2xpbWl0KSB7Ci0JCWluNl9kZXYtPmNuZi5ob3BfbGlt aXQgPSByYV9tc2ctPmljbXBoLmljbXA2X2hvcF9saW1pdDsKKwkJLyogT25seSBzZXQgaG9wX2xp bWl0IG9uIHRoZSBpbnRlcmZhY2UgaWYgaXQgaXMgaGlnaGVyIHRoYW4KKwkJICogdGhlIGN1cnJl bnQgaG9wX2xpbWl0LgorCQkgKi8KKwkJaWYgKGluNl9kZXYtPmNuZi5ob3BfbGltaXQgPCByYV9t c2ctPmljbXBoLmljbXA2X2hvcF9saW1pdCkgeworCQkJaW42X2Rldi0+Y25mLmhvcF9saW1pdCA9 IHJhX21zZy0+aWNtcGguaWNtcDZfaG9wX2xpbWl0OworCQl9IGVsc2UgeworCQkJTkRfUFJJTlRL MihLRVJOX1dBUk5JTkcgIlJBOiBHb3Qgcm91dGUgYWR2ZXJ0aXNlbWVudCB3aXRoIGxvd2VyIGhv cF9saW1pdCB0aGFuIGN1cnJlbnRcbiIpOworCQl9CiAJCWlmIChydCkKIAkJCWRzdF9tZXRyaWNf c2V0KCZydC0+ZHN0LCBSVEFYX0hPUExJTUlULAogCQkJCSAgICAgICByYV9tc2ctPmljbXBoLmlj bXA2X2hvcF9saW1pdCk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYv cm91dGUuYwppbmRleCA3ODJmNjdhLi5kODlkMWE2IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yb3V0 ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRlLmMKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgdTMy ICppcHY2X2Nvd19tZXRyaWNzKHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgdW5zaWduZWQgbG9uZyBv bGQpCiAJdTMyICpwID0gTlVMTDsKIAogCWlmICghKHJ0LT5kc3QuZmxhZ3MgJiBEU1RfSE9TVCkp Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gZHN0X2Nvd19tZXRyaWNzX2dlbmVyaWMoZHN0LCBv bGQpOwogCiAJaWYgKCFydC0+cnQ2aV9wZWVyKQogCQlydDZfYmluZF9wZWVyKHJ0LCAxKTsKQEAg LTEwMTgsMTIgKzEwMTgsOSBAQCBzdGF0aWMgdm9pZCBpcDZfcnRfdXBkYXRlX3BtdHUoc3RydWN0 IGRzdF9lbnRyeSAqZHN0LCB1MzIgbXR1KQogCiAJaWYgKG10dSA8IGRzdF9tdHUoZHN0KSAmJiBy dDYtPnJ0NmlfZHN0LnBsZW4gPT0gMTI4KSB7CiAJCXJ0Ni0+cnQ2aV9mbGFncyB8PSBSVEZfTU9E SUZJRUQ7Ci0JCWlmIChtdHUgPCBJUFY2X01JTl9NVFUpIHsKLQkJCXUzMiBmZWF0dXJlcyA9IGRz dF9tZXRyaWMoZHN0LCBSVEFYX0ZFQVRVUkVTKTsKKwkJaWYgKG10dSA8IElQVjZfTUlOX01UVSkK IAkJCW10dSA9IElQVjZfTUlOX01UVTsKLQkJCWZlYXR1cmVzIHw9IFJUQVhfRkVBVFVSRV9BTExG UkFHOwotCQkJZHN0X21ldHJpY19zZXQoZHN0LCBSVEFYX0ZFQVRVUkVTLCBmZWF0dXJlcyk7Ci0J CX0KKwogCQlkc3RfbWV0cmljX3NldChkc3QsIFJUQVhfTVRVLCBtdHUpOwogCX0KIH0KZGlmZiAt LWdpdCBhL25ldC9pcmRhL2lyY29tbS9pcmNvbW1fdHR5LmMgYi9uZXQvaXJkYS9pcmNvbW0vaXJj b21tX3R0eS5jCmluZGV4IDI1MzY5NWQuLmNmMzY4ZGQgMTAwNjQ0Ci0tLSBhL25ldC9pcmRhL2ly Y29tbS9pcmNvbW1fdHR5LmMKKysrIGIvbmV0L2lyZGEvaXJjb21tL2lyY29tbV90dHkuYwpAQCAt ODQ4LDcgKzg0OCw5IEBAIHN0YXRpYyB2b2lkIGlyY29tbV90dHlfd2FpdF91bnRpbF9zZW50KHN0 cnVjdCB0dHlfc3RydWN0ICp0dHksIGludCB0aW1lb3V0KQogCW9yaWdfamlmZmllcyA9IGppZmZp ZXM7CiAKIAkvKiBTZXQgcG9sbCB0aW1lIHRvIDIwMCBtcyAqLwotCXBvbGxfdGltZSA9IElSREFf TUlOKHRpbWVvdXQsIG1zZWNzX3RvX2ppZmZpZXMoMjAwKSk7CisJcG9sbF90aW1lID0gbXNlY3Nf dG9famlmZmllcygyMDApOworCWlmICh0aW1lb3V0KQorCQlwb2xsX3RpbWUgPSBtaW5fdCh1bnNp Z25lZCBsb25nLCB0aW1lb3V0LCBwb2xsX3RpbWUpOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnNl bGYtPnNwaW5sb2NrLCBmbGFncyk7CiAJd2hpbGUgKHNlbGYtPnR4X3NrYiAmJiBzZWxmLT50eF9z a2ItPmxlbikgewpkaWZmIC0tZ2l0IGEvbmV0L2xsYy9zeXNjdGxfbmV0X2xsYy5jIGIvbmV0L2xs Yy9zeXNjdGxfbmV0X2xsYy5jCmluZGV4IGUyZWJlMzUuLmJlMDc4ZWMgMTAwNjQ0Ci0tLSBhL25l dC9sbGMvc3lzY3RsX25ldF9sbGMuYworKysgYi9uZXQvbGxjL3N5c2N0bF9uZXRfbGxjLmMKQEAg LTE3LDI4ICsxNywyOCBAQCBzdGF0aWMgc3RydWN0IGN0bF90YWJsZSBsbGMyX3RpbWVvdXRfdGFi bGVbXSA9IHsKIAl7CiAJCS5wcm9jbmFtZQk9ICJhY2siLAogCQkuZGF0YQkJPSAmc3lzY3RsX2xs YzJfYWNrX3RpbWVvdXQsCi0JCS5tYXhsZW4JCT0gc2l6ZW9mKGxvbmcpLAorCQkubWF4bGVuCQk9 IHNpemVvZihzeXNjdGxfbGxjMl9hY2tfdGltZW91dCksCiAJCS5tb2RlCQk9IDA2NDQsCiAJCS5w cm9jX2hhbmRsZXIgICA9IHByb2NfZG9pbnR2ZWNfamlmZmllcywKIAl9LAogCXsKIAkJLnByb2Nu YW1lCT0gImJ1c3kiLAogCQkuZGF0YQkJPSAmc3lzY3RsX2xsYzJfYnVzeV90aW1lb3V0LAotCQku bWF4bGVuCQk9IHNpemVvZihsb25nKSwKKwkJLm1heGxlbgkJPSBzaXplb2Yoc3lzY3RsX2xsYzJf YnVzeV90aW1lb3V0KSwKIAkJLm1vZGUJCT0gMDY0NCwKIAkJLnByb2NfaGFuZGxlciAgID0gcHJv Y19kb2ludHZlY19qaWZmaWVzLAogCX0sCiAJewogCQkucHJvY25hbWUJPSAicCIsCiAJCS5kYXRh CQk9ICZzeXNjdGxfbGxjMl9wX3RpbWVvdXQsCi0JCS5tYXhsZW4JCT0gc2l6ZW9mKGxvbmcpLAor CQkubWF4bGVuCQk9IHNpemVvZihzeXNjdGxfbGxjMl9wX3RpbWVvdXQpLAogCQkubW9kZQkJPSAw NjQ0LAogCQkucHJvY19oYW5kbGVyICAgPSBwcm9jX2RvaW50dmVjX2ppZmZpZXMsCiAJfSwKIAl7 CiAJCS5wcm9jbmFtZQk9ICJyZWoiLAogCQkuZGF0YQkJPSAmc3lzY3RsX2xsYzJfcmVqX3RpbWVv dXQsCi0JCS5tYXhsZW4JCT0gc2l6ZW9mKGxvbmcpLAorCQkubWF4bGVuCQk9IHNpemVvZihzeXNj dGxfbGxjMl9yZWpfdGltZW91dCksCiAJCS5tb2RlCQk9IDA2NDQsCiAJCS5wcm9jX2hhbmRsZXIg ICA9IHByb2NfZG9pbnR2ZWNfamlmZmllcywKIAl9LApkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjEx L2FnZy1yeC5jIGIvbmV0L21hYzgwMjExL2FnZy1yeC5jCmluZGV4IGFlYTE1NTkuLjYxNzQ3ODUg MTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9hZ2ctcnguYworKysgYi9uZXQvbWFjODAyMTEvYWdn LXJ4LmMKQEAgLTQ5LDggKzQ5LDYgQEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX2ZyZWVfdGlkX3J4 KHN0cnVjdCByY3VfaGVhZCAqaCkKIAkJY29udGFpbmVyX29mKGgsIHN0cnVjdCB0aWRfYW1wZHVf cngsIHJjdV9oZWFkKTsKIAlpbnQgaTsKIAotCWRlbF90aW1lcl9zeW5jKCZ0aWRfcngtPnJlb3Jk ZXJfdGltZXIpOwotCiAJZm9yIChpID0gMDsgaSA8IHRpZF9yeC0+YnVmX3NpemU7IGkrKykKIAkJ ZGV2X2tmcmVlX3NrYih0aWRfcngtPnJlb3JkZXJfYnVmW2ldKTsKIAlrZnJlZSh0aWRfcngtPnJl b3JkZXJfYnVmKTsKQEAgLTkxLDYgKzg5LDEyIEBAIHZvaWQgX19faWVlZTgwMjExX3N0b3Bfcnhf YmFfc2Vzc2lvbihzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwgdTE2IHRpZCwKIAogCWRlbF90aW1lcl9z eW5jKCZ0aWRfcngtPnNlc3Npb25fdGltZXIpOwogCisJLyogbWFrZSBzdXJlIGllZWU4MDIxMV9z dGFfcmVvcmRlcl9yZWxlYXNlKCkgZG9lc24ndCByZS1hcm0gdGhlIHRpbWVyICovCisJc3Bpbl9s b2NrX2JoKCZ0aWRfcngtPnJlb3JkZXJfbG9jayk7CisJdGlkX3J4LT5yZW1vdmVkID0gdHJ1ZTsK KwlzcGluX3VubG9ja19iaCgmdGlkX3J4LT5yZW9yZGVyX2xvY2spOworCWRlbF90aW1lcl9zeW5j KCZ0aWRfcngtPnJlb3JkZXJfdGltZXIpOworCiAJY2FsbF9yY3UoJnRpZF9yeC0+cmN1X2hlYWQs IGllZWU4MDIxMV9mcmVlX3RpZF9yeCk7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9p ZWVlODAyMTFfaS5oIGIvbmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgKaW5kZXggYTljZjU5My4u OGRhMzcxYzUgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oCisrKyBiL25l dC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oCkBAIC01MywxMSArNTMsMjUgQEAgc3RydWN0IGllZWU4 MDIxMV9sb2NhbDsKIAogI2RlZmluZSBUVV9UT19FWFBfVElNRSh4KQkoamlmZmllcyArIHVzZWNz X3RvX2ppZmZpZXMoKHgpICogMTAyNCkpCiAKLSNkZWZpbmUgSUVFRTgwMjExX0RFRkFVTFRfVUFQ U0RfUVVFVUVTIFwKLQkoSUVFRTgwMjExX1dNTV9JRV9TVEFfUU9TSU5GT19BQ19CSyB8CVwKLQkg SUVFRTgwMjExX1dNTV9JRV9TVEFfUU9TSU5GT19BQ19CRSB8CVwKLQkgSUVFRTgwMjExX1dNTV9J RV9TVEFfUU9TSU5GT19BQ19WSSB8CVwKLQkgSUVFRTgwMjExX1dNTV9JRV9TVEFfUU9TSU5GT19B Q19WTykKKy8qCisgKiBTb21lIEFQcyBleHBlcmllbmNlIHByb2JsZW1zIHdoZW4gd29ya2luZyB3 aXRoIFUtQVBTRC4gRGVjcmVhc2luZyB0aGUKKyAqIHByb2JhYmlsaXR5IG9mIHRoYXQgaGFwcGVu aW5nIGJ5IHVzaW5nIGxlZ2FjeSBtb2RlIGZvciBhbGwgQUNzIGJ1dCBWTyBpc24ndAorICogZW5v dWdoLgorICoKKyAqIENpc2NvIDQ0MTBOIG9yaWdpbmFsbHkgZm9yY2VkIHVzIHRvIGVuYWJsZSBW TyBieSBkZWZhdWx0IG9ubHkgYmVjYXVzZSBpdAorICogdHJlYXRlZCBub24tVk8gQUNzIGFzIGxl Z2FjeS4KKyAqCisgKiBIb3dldmVyIHNvbWUgQVBzIChub3RhYmx5IE5ldGdlYXIgUjcwMDApIHNp bGVudGx5IHJlY2xhc3NpZnkgcGFja2V0cyB0bworICogZGlmZmVyZW50IEFDcy4gU2luY2UgdS1B UFNEIEFDcyByZXF1aXJlIHRyaWdnZXIgZnJhbWVzIGZvciBmcmFtZSByZXRyaWV2YWwKKyAqIGNs aWVudHMgd291bGQgbmV2ZXIgc2VlIHNvbWUgZnJhbWVzIChlLmcuIEFSUCByZXNwb25zZXMpIG9y IHdvdWxkIGZldGNoIHRoZW0KKyAqIGFjY2lkZW50YWxseSBhZnRlciBhIGxvbmcgdGltZS4KKyAq CisgKiBJdCBtYWtlcyBsaXR0bGUgc2Vuc2UgdG8gZW5hYmxlIHUtQVBTRCBxdWV1ZXMgYnkgZGVm YXVsdCBiZWNhdXNlIGl0IG5lZWRzCisgKiB1c2Vyc3BhY2UgYXBwbGljYXRpb25zIHRvIGJlIGF3 YXJlIG9mIGl0IHRvIGFjdHVhbGx5IHRha2UgYWR2YW50YWdlIG9mIHRoZQorICogcG9zc2libGUg YWRkaXRpb25hbCBwb3dlcnNhdmluZ3MuIEltcGxpY2l0bHkgZGVwZW5kaW5nIG9uIGRyaXZlciBh dXRvdHJpZ2dlcgorICogZnJhbWUgc3VwcG9ydCBkb2Vzbid0IG1ha2UgbXVjaCBzZW5zZS4KKyAq LworI2RlZmluZSBJRUVFODAyMTFfREVGQVVMVF9VQVBTRF9RVUVVRVMgMAogCiAjZGVmaW5lIElF RUU4MDIxMV9ERUZBVUxUX01BWF9TUF9MRU4JCVwKIAlJRUVFODAyMTFfV01NX0lFX1NUQV9RT1NJ TkZPX1NQX0FMTApkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3J4LmMgYi9uZXQvbWFjODAyMTEv cnguYwppbmRleCBjMDQ0NGEwLi43YzUzZWZmIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvcngu YworKysgYi9uZXQvbWFjODAyMTEvcnguYwpAQCAtNjcwLDkgKzY3MCwxMCBAQCBzdGF0aWMgdm9p ZCBpZWVlODAyMTFfc3RhX3Jlb3JkZXJfcmVsZWFzZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywK IAogIHNldF9yZWxlYXNlX3RpbWVyOgogCi0JCW1vZF90aW1lcigmdGlkX2FnZ19yeC0+cmVvcmRl cl90aW1lciwKLQkJCSAgdGlkX2FnZ19yeC0+cmVvcmRlcl90aW1lW2pdICsgMSArCi0JCQkgIEhU X1JYX1JFT1JERVJfQlVGX1RJTUVPVVQpOworCQlpZiAoIXRpZF9hZ2dfcngtPnJlbW92ZWQpCisJ CQltb2RfdGltZXIoJnRpZF9hZ2dfcngtPnJlb3JkZXJfdGltZXIsCisJCQkJICB0aWRfYWdnX3J4 LT5yZW9yZGVyX3RpbWVbal0gKyAxICsKKwkJCQkgIEhUX1JYX1JFT1JERVJfQlVGX1RJTUVPVVQp OwogCX0gZWxzZSB7CiAJCWRlbF90aW1lcigmdGlkX2FnZ19yeC0+cmVvcmRlcl90aW1lcik7CiAJ fQpAQCAtMTkyMSw2ICsxOTIyLDkgQEAgaWVlZTgwMjExX3J4X2hfbWVzaF9md2Rpbmcoc3RydWN0 IGllZWU4MDIxMV9yeF9kYXRhICpyeCkKIAloZHIgPSAoc3RydWN0IGllZWU4MDIxMV9oZHIgKikg c2tiLT5kYXRhOwogCW1lc2hfaGRyID0gKHN0cnVjdCBpZWVlODAyMTFzX2hkciAqKSAoc2tiLT5k YXRhICsgaGRybGVuKTsKIAorCWlmIChpZWVlODAyMTFfZHJvcF91bmVuY3J5cHRlZChyeCwgaGRy LT5mcmFtZV9jb250cm9sKSkKKwkJcmV0dXJuIFJYX0RST1BfTU9OSVRPUjsKKwogCS8qIGZyYW1l IGlzIGluIFJNQywgZG9uJ3QgZm9yd2FyZCAqLwogCWlmIChpZWVlODAyMTFfaXNfZGF0YShoZHIt PmZyYW1lX2NvbnRyb2wpICYmCiAJICAgIGlzX211bHRpY2FzdF9ldGhlcl9hZGRyKGhkci0+YWRk cjEpICYmCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvc3RhX2luZm8uaCBiL25ldC9tYWM4MDIx MS9zdGFfaW5mby5oCmluZGV4IGE2ODE1NWYuLjU1NmZiY2MgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4 MDIxMS9zdGFfaW5mby5oCisrKyBiL25ldC9tYWM4MDIxMS9zdGFfaW5mby5oCkBAIC0xMzgsNiAr MTM4LDcgQEAgc3RydWN0IHRpZF9hbXBkdV90eCB7CiAgKiBAZGlhbG9nX3Rva2VuOiBkaWFsb2cg dG9rZW4gZm9yIGFnZ3JlZ2F0aW9uIHNlc3Npb24KICAqIEByY3VfaGVhZDogUkNVIGhlYWQgdXNl ZCBmb3IgZnJlZWluZyB0aGlzIHN0cnVjdAogICogQHJlb3JkZXJfbG9jazogc2VyaWFsaXplcyBh Y2Nlc3MgdG8gcmVvcmRlciBidWZmZXIsIHNlZSBiZWxvdy4KKyAqIEByZW1vdmVkOiB0aGlzIHNl c3Npb24gaXMgcmVtb3ZlZCAoYnV0IG1pZ2h0IGhhdmUgYmVlbiBmb3VuZCBkdWUgdG8gUkNVKQog ICoKICAqIFRoaXMgc3RydWN0dXJlJ3MgbGlmZXRpbWUgaXMgbWFuYWdlZCBieSBSQ1UsIGFzc2ln bm1lbnRzIHRvCiAgKiB0aGUgYXJyYXkgaG9sZGluZyBpdCBtdXN0IGhvbGQgdGhlIGFnZ3JlZ2F0 aW9uIG11dGV4LgpAQCAtMTYwLDYgKzE2MSw3IEBAIHN0cnVjdCB0aWRfYW1wZHVfcnggewogCXUx NiBidWZfc2l6ZTsKIAl1MTYgdGltZW91dDsKIAl1OCBkaWFsb2dfdG9rZW47CisJYm9vbCByZW1v dmVkOwogfTsKIAogLyoqCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvdHguYyBiL25ldC9tYWM4 MDIxMS90eC5jCmluZGV4IDI1YmJiMmUuLjY1ZGYyOTYgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIx MS90eC5jCisrKyBiL25ldC9tYWM4MDIxMS90eC5jCkBAIC01MzcsOSArNTM3LDExIEBAIGllZWU4 MDIxMV90eF9oX2NoZWNrX2NvbnRyb2xfcG9ydF9wcm90b2NvbChzdHJ1Y3QgaWVlZTgwMjExX3R4 X2RhdGEgKnR4KQogewogCXN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqaW5mbyA9IElFRUU4MDIx MV9TS0JfQ0IodHgtPnNrYik7CiAKLQlpZiAodW5saWtlbHkodHgtPnNkYXRhLT5jb250cm9sX3Bv cnRfcHJvdG9jb2wgPT0gdHgtPnNrYi0+cHJvdG9jb2wgJiYKLQkJICAgICB0eC0+c2RhdGEtPmNv bnRyb2xfcG9ydF9ub19lbmNyeXB0KSkKLQkJaW5mby0+ZmxhZ3MgfD0gSUVFRTgwMjExX1RYX0lO VEZMX0RPTlRfRU5DUllQVDsKKwlpZiAodW5saWtlbHkodHgtPnNkYXRhLT5jb250cm9sX3BvcnRf cHJvdG9jb2wgPT0gdHgtPnNrYi0+cHJvdG9jb2wpKSB7CisJCWlmICh0eC0+c2RhdGEtPmNvbnRy b2xfcG9ydF9ub19lbmNyeXB0KQorCQkJaW5mby0+ZmxhZ3MgfD0gSUVFRTgwMjExX1RYX0lOVEZM X0RPTlRfRU5DUllQVDsKKwkJaW5mby0+ZmxhZ3MgfD0gSUVFRTgwMjExX1RYX0NUTF9VU0VfTUlO UkFURTsKKwl9CiAKIAlyZXR1cm4gVFhfQ09OVElOVUU7CiB9CmRpZmYgLS1naXQgYS9uZXQvbmV0 ZmlsdGVyL2lwdnMvaXBfdnNfY29yZS5jIGIvbmV0L25ldGZpbHRlci9pcHZzL2lwX3ZzX2NvcmUu YwppbmRleCA2ZGM3ZDdkLi5kODY0YWFmIDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL2lwdnMv aXBfdnNfY29yZS5jCisrKyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c19jb3JlLmMKQEAgLTY2 MiwxNiArNjYyLDI0IEBAIHN0YXRpYyBpbmxpbmUgaW50IGlwX3ZzX2dhdGhlcl9mcmFnc192Nihz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1X2ludDMyX3QgdXNlcikKIH0KICNlbmRpZgogCi1zdGF0aWMg aW50IGlwX3ZzX3JvdXRlX21lX2hhcmRlcihpbnQgYWYsIHN0cnVjdCBza19idWZmICpza2IpCitz dGF0aWMgaW50IGlwX3ZzX3JvdXRlX21lX2hhcmRlcihpbnQgYWYsIHN0cnVjdCBza19idWZmICpz a2IsCisJCQkJIHVuc2lnbmVkIGludCBob29rbnVtKQogeworCWlmICghc3lzY3RsX3NuYXRfcmVy b3V0ZShza2IpKQorCQlyZXR1cm4gMDsKKwkvKiBSZXJvdXRlIHJlcGxpZXMgb25seSB0byByZW1v dGUgY2xpZW50cyAoRk9SV0FSRCBhbmQgTE9DQUxfT1VUKSAqLworCWlmIChORl9JTkVUX0xPQ0FM X0lOID09IGhvb2tudW0pCisJCXJldHVybiAwOwogI2lmZGVmIENPTkZJR19JUF9WU19JUFY2CiAJ aWYgKGFmID09IEFGX0lORVQ2KSB7Ci0JCWlmIChzeXNjdGxfc25hdF9yZXJvdXRlKHNrYikgJiYg aXA2X3JvdXRlX21lX2hhcmRlcihza2IpICE9IDApCisJCXN0cnVjdCBkc3RfZW50cnkgKmRzdCA9 IHNrYl9kc3Qoc2tiKTsKKworCQlpZiAoZHN0LT5kZXYgJiYgIShkc3QtPmRldi0+ZmxhZ3MgJiBJ RkZfTE9PUEJBQ0spICYmCisJCSAgICBpcDZfcm91dGVfbWVfaGFyZGVyKHNrYikgIT0gMCkKIAkJ CXJldHVybiAxOwogCX0gZWxzZQogI2VuZGlmCi0JCWlmICgoc3lzY3RsX3NuYXRfcmVyb3V0ZShz a2IpIHx8Ci0JCSAgICAgc2tiX3J0YWJsZShza2IpLT5ydF9mbGFncyAmIFJUQ0ZfTE9DQUwpICYm CisJCWlmICghKHNrYl9ydGFibGUoc2tiKS0+cnRfZmxhZ3MgJiBSVENGX0xPQ0FMKSAmJgogCQkg ICAgaXBfcm91dGVfbWVfaGFyZGVyKHNrYiwgUlROX0xPQ0FMKSAhPSAwKQogCQkJcmV0dXJuIDE7 CiAKQEAgLTc4Miw3ICs3OTAsOCBAQCBzdGF0aWMgaW50IGhhbmRsZV9yZXNwb25zZV9pY21wKGlu dCBhZiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQl1bmlvbiBuZl9pbmV0X2FkZHIgKnNuZXQs CiAJCQkJX191OCBwcm90b2NvbCwgc3RydWN0IGlwX3ZzX2Nvbm4gKmNwLAogCQkJCXN0cnVjdCBp cF92c19wcm90b2NvbCAqcHAsCi0JCQkJdW5zaWduZWQgaW50IG9mZnNldCwgdW5zaWduZWQgaW50 IGlobCkKKwkJCQl1bnNpZ25lZCBpbnQgb2Zmc2V0LCB1bnNpZ25lZCBpbnQgaWhsLAorCQkJCXVu c2lnbmVkIGludCBob29rbnVtKQogewogCXVuc2lnbmVkIGludCB2ZXJkaWN0ID0gTkZfRFJPUDsK IApAQCAtODEyLDcgKzgyMSw3IEBAIHN0YXRpYyBpbnQgaGFuZGxlX3Jlc3BvbnNlX2ljbXAoaW50 IGFmLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogI2VuZGlmCiAJCWlwX3ZzX25hdF9pY21wKHNrYiwg cHAsIGNwLCAxKTsKIAotCWlmIChpcF92c19yb3V0ZV9tZV9oYXJkZXIoYWYsIHNrYikpCisJaWYg KGlwX3ZzX3JvdXRlX21lX2hhcmRlcihhZiwgc2tiLCBob29rbnVtKSkKIAkJZ290byBvdXQ7CiAK IAkvKiBkbyB0aGUgc3RhdGlzdGljcyBhbmQgcHV0IGl0IGJhY2sgKi8KQEAgLTkwOCw3ICs5MTcs NyBAQCBzdGF0aWMgaW50IGlwX3ZzX291dF9pY21wKHN0cnVjdCBza19idWZmICpza2IsIGludCAq cmVsYXRlZCwKIAogCXNuZXQuaXAgPSBpcGgtPnNhZGRyOwogCXJldHVybiBoYW5kbGVfcmVzcG9u c2VfaWNtcChBRl9JTkVULCBza2IsICZzbmV0LCBjaWgtPnByb3RvY29sLCBjcCwKLQkJCQkgICAg cHAsIG9mZnNldCwgaWhsKTsKKwkJCQkgICAgcHAsIG9mZnNldCwgaWhsLCBob29rbnVtKTsKIH0K IAogI2lmZGVmIENPTkZJR19JUF9WU19JUFY2CkBAIC05ODUsNyArOTk0LDggQEAgc3RhdGljIGlu dCBpcF92c19vdXRfaWNtcF92NihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgKnJlbGF0ZWQsCiAK IAlpcHY2X2FkZHJfY29weSgmc25ldC5pbjYsICZpcGgtPnNhZGRyKTsKIAlyZXR1cm4gaGFuZGxl X3Jlc3BvbnNlX2ljbXAoQUZfSU5FVDYsIHNrYiwgJnNuZXQsIGNpaC0+bmV4dGhkciwgY3AsCi0J CQkJICAgIHBwLCBvZmZzZXQsIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpOworCQkJCSAgICBwcCwg b2Zmc2V0LCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpLAorCQkJCSAgICBob29rbnVtKTsKIH0KICNl bmRpZgogCkBAIC0xMDE4LDcgKzEwMjgsNyBAQCBzdGF0aWMgaW5saW5lIGludCBpc190Y3BfcmVz ZXQoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5oX2xlbikKICAqLwogc3RhdGljIHVu c2lnbmVkIGludAogaGFuZGxlX3Jlc3BvbnNlKGludCBhZiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IGlwX3ZzX3Byb3RvX2RhdGEgKnBkLAotCQlzdHJ1Y3QgaXBfdnNfY29ubiAqY3AsIGlu dCBpaGwpCisJCXN0cnVjdCBpcF92c19jb25uICpjcCwgaW50IGlobCwgdW5zaWduZWQgaW50IGhv b2tudW0pCiB7CiAJc3RydWN0IGlwX3ZzX3Byb3RvY29sICpwcCA9IHBkLT5wcDsKIApAQCAtMTA1 Niw3ICsxMDY2LDcgQEAgaGFuZGxlX3Jlc3BvbnNlKGludCBhZiwgc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IGlwX3ZzX3Byb3RvX2RhdGEgKnBkLAogCSAqIGlmIGl0IGNhbWUgZnJvbSB0aGlz IG1hY2hpbmUgaXRzZWxmLiAgU28gcmUtY29tcHV0ZQogCSAqIHRoZSByb3V0aW5nIGluZm9ybWF0 aW9uLgogCSAqLwotCWlmIChpcF92c19yb3V0ZV9tZV9oYXJkZXIoYWYsIHNrYikpCisJaWYgKGlw X3ZzX3JvdXRlX21lX2hhcmRlcihhZiwgc2tiLCBob29rbnVtKSkKIAkJZ290byBkcm9wOwogCiAJ SVBfVlNfREJHX1BLVCgxMCwgYWYsIHBwLCBza2IsIDAsICJBZnRlciBTTkFUIik7CkBAIC0xMTY5 LDcgKzExNzksNyBAQCBpcF92c19vdXQodW5zaWduZWQgaW50IGhvb2tudW0sIHN0cnVjdCBza19i dWZmICpza2IsIGludCBhZikKIAljcCA9IHBwLT5jb25uX291dF9nZXQoYWYsIHNrYiwgJmlwaCwg aXBoLmxlbiwgMCk7CiAKIAlpZiAobGlrZWx5KGNwKSkKLQkJcmV0dXJuIGhhbmRsZV9yZXNwb25z ZShhZiwgc2tiLCBwZCwgY3AsIGlwaC5sZW4pOworCQlyZXR1cm4gaGFuZGxlX3Jlc3BvbnNlKGFm LCBza2IsIHBkLCBjcCwgaXBoLmxlbiwgaG9va251bSk7CiAJaWYgKHN5c2N0bF9uYXRfaWNtcF9z ZW5kKG5ldCkgJiYKIAkgICAgKHBwLT5wcm90b2NvbCA9PSBJUFBST1RPX1RDUCB8fAogCSAgICAg cHAtPnByb3RvY29sID09IElQUFJPVE9fVURQIHx8CmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVy L2lwdnMvaXBfdnNfZnRwLmMgYi9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfZnRwLmMKaW5kZXgg NTM4ZDc0ZS4uMzY1MTYzZiAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9pcHZzL2lwX3ZzX2Z0 cC5jCisrKyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c19mdHAuYwpAQCAtMTgzLDYgKzE4Myw4 IEBAIHN0YXRpYyBpbnQgaXBfdnNfZnRwX291dChzdHJ1Y3QgaXBfdnNfYXBwICphcHAsIHN0cnVj dCBpcF92c19jb25uICpjcCwKIAlzdHJ1Y3QgbmZfY29ubiAqY3Q7CiAJc3RydWN0IG5ldCAqbmV0 OwogCisJKmRpZmYgPSAwOworCiAjaWZkZWYgQ09ORklHX0lQX1ZTX0lQVjYKIAkvKiBUaGlzIGFw cGxpY2F0aW9uIGhlbHBlciBkb2Vzbid0IHdvcmsgd2l0aCBJUHY2IHlldCwKIAkgKiBzbyB0dXJu IHRoaXMgaW50byBhIG5vLW9wIGZvciBJUHY2IHBhY2tldHMKQEAgLTE5MSw4ICsxOTMsNiBAQCBz dGF0aWMgaW50IGlwX3ZzX2Z0cF9vdXQoc3RydWN0IGlwX3ZzX2FwcCAqYXBwLCBzdHJ1Y3QgaXBf dnNfY29ubiAqY3AsCiAJCXJldHVybiAxOwogI2VuZGlmCiAKLQkqZGlmZiA9IDA7Ci0KIAkvKiBP bmx5IHVzZWZ1bCBmb3IgZXN0YWJsaXNoZWQgc2Vzc2lvbnMgKi8KIAlpZiAoY3AtPnN0YXRlICE9 IElQX1ZTX1RDUF9TX0VTVEFCTElTSEVEKQogCQlyZXR1cm4gMTsKQEAgLTMxOCw2ICszMTgsOSBA QCBzdGF0aWMgaW50IGlwX3ZzX2Z0cF9pbihzdHJ1Y3QgaXBfdnNfYXBwICphcHAsIHN0cnVjdCBp cF92c19jb25uICpjcCwKIAlzdHJ1Y3QgaXBfdnNfY29ubiAqbl9jcDsKIAlzdHJ1Y3QgbmV0ICpu ZXQ7CiAKKwkvKiBubyBkaWZmIHJlcXVpcmVkIGZvciBpbmNvbWluZyBwYWNrZXRzICovCisJKmRp ZmYgPSAwOworCiAjaWZkZWYgQ09ORklHX0lQX1ZTX0lQVjYKIAkvKiBUaGlzIGFwcGxpY2F0aW9u IGhlbHBlciBkb2Vzbid0IHdvcmsgd2l0aCBJUHY2IHlldCwKIAkgKiBzbyB0dXJuIHRoaXMgaW50 byBhIG5vLW9wIGZvciBJUHY2IHBhY2tldHMKQEAgLTMyNiw5ICszMjksNiBAQCBzdGF0aWMgaW50 IGlwX3ZzX2Z0cF9pbihzdHJ1Y3QgaXBfdnNfYXBwICphcHAsIHN0cnVjdCBpcF92c19jb25uICpj cCwKIAkJcmV0dXJuIDE7CiAjZW5kaWYKIAotCS8qIG5vIGRpZmYgcmVxdWlyZWQgZm9yIGluY29t aW5nIHBhY2tldHMgKi8KLQkqZGlmZiA9IDA7Ci0KIAkvKiBPbmx5IHVzZWZ1bCBmb3IgZXN0YWJs aXNoZWQgc2Vzc2lvbnMgKi8KIAlpZiAoY3AtPnN0YXRlICE9IElQX1ZTX1RDUF9TX0VTVEFCTElT SEVEKQogCQlyZXR1cm4gMTsKZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c19z eW5jLmMgYi9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfc3luYy5jCmluZGV4IDJiNjY3OGMwLi4y Y2JjYzgzIDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfc3luYy5jCisrKyBi L25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c19zeW5jLmMKQEAgLTc2Myw2ICs3NjMsOCBAQCBzdGF0 aWMgdm9pZCBpcF92c19wcm9jX2Nvbm4oc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgaXBfdnNfY29u bl9wYXJhbSAqcGFyYW0sCiAJCQlJUF9WU19EQkcoMiwgIkJBQ0tVUCwgYWRkIG5ldyBjb25uLiBm YWlsZWRcbiIpOwogCQkJcmV0dXJuOwogCQl9CisJCWlmICghKGZsYWdzICYgSVBfVlNfQ09OTl9G X1RFTVBMQVRFKSkKKwkJCWtmcmVlKHBhcmFtLT5wZV9kYXRhKTsKIAl9IGVsc2UgaWYgKCFjcC0+ ZGVzdCkgewogCQlkZXN0ID0gaXBfdnNfdHJ5X2JpbmRfZGVzdChjcCk7CiAJCWlmIChkZXN0KQpA QCAtMTA2NCw2ICsxMDY2LDcgQEAgc3RhdGljIGlubGluZSBpbnQgaXBfdnNfcHJvY19zeW5jX2Nv bm4oc3RydWN0IG5ldCAqbmV0LCBfX3U4ICpwLCBfX3U4ICptc2dfZW5kKQogCQkJCShvcHRfZmxh Z3MgJiBJUFZTX09QVF9GX1NFUV9EQVRBID8gJm9wdCA6IE5VTEwpCiAJCQkJKTsKICNlbmRpZgor CWlwX3ZzX3BlX3B1dChwYXJhbS5wZSk7CiAJcmV0dXJuIDA7CiAJLyogRXJyb3IgZXhpdCAqLwog b3V0OgpkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9xdWV1ZS5jIGIvbmV0L25ldGZpbHRl ci9uZl9xdWV1ZS5jCmluZGV4IGIzYTdkYjYuLjZkNzA1MzMgMTAwNjQ0Ci0tLSBhL25ldC9uZXRm aWx0ZXIvbmZfcXVldWUuYworKysgYi9uZXQvbmV0ZmlsdGVyL25mX3F1ZXVlLmMKQEAgLTIzMyw3 ICsyMzMsNyBAQCBpbnQgbmZfcXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkgKiByZXR1cm5l ZCBieSBuZl9xdWV1ZS4gIEZvciBpbnN0YW5jZSwgY2FsbGVycyByZWx5IG9uIC1FQ0FOQ0VMRUQg dG8gbWVhbgogCSAqICdpZ25vcmUgdGhpcyBob29rJy4KIAkgKi8KLQlpZiAoSVNfRVJSKHNlZ3Mp KQorCWlmIChJU19FUlJfT1JfTlVMTChzZWdzKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlxdWV1 ZWQgPSAwOwpkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci94dF9zb2NrZXQuYyBiL25ldC9uZXRm aWx0ZXIveHRfc29ja2V0LmMKaW5kZXggZmUzOWY3ZS4uYzQ3MDZiZSAxMDA2NDQKLS0tIGEvbmV0 L25ldGZpbHRlci94dF9zb2NrZXQuYworKysgYi9uZXQvbmV0ZmlsdGVyL3h0X3NvY2tldC5jCkBA IC0yMDUsMTIgKzIwNSwxMyBAQCBzdGF0aWMgaW50CiBleHRyYWN0X2ljbXA2X2ZpZWxkcyhjb25z dCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkgICAgIHVuc2lnbmVkIGludCBvdXRzaWRlX2hkcmxl biwKIAkJICAgICBpbnQgKnByb3RvY29sLAotCQkgICAgIHN0cnVjdCBpbjZfYWRkciAqKnJhZGRy LAotCQkgICAgIHN0cnVjdCBpbjZfYWRkciAqKmxhZGRyLAorCQkgICAgIGNvbnN0IHN0cnVjdCBp bjZfYWRkciAqKnJhZGRyLAorCQkgICAgIGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqKmxhZGRyLAog CQkgICAgIF9fYmUxNiAqcnBvcnQsCi0JCSAgICAgX19iZTE2ICpscG9ydCkKKwkJICAgICBfX2Jl MTYgKmxwb3J0LAorCQkgICAgIHN0cnVjdCBpcHY2aGRyICppcHY2X3ZhcikKIHsKLQlzdHJ1Y3Qg aXB2NmhkciAqaW5zaWRlX2lwaCwgX2luc2lkZV9pcGg7CisJY29uc3Qgc3RydWN0IGlwdjZoZHIg Kmluc2lkZV9pcGg7CiAJc3RydWN0IGljbXA2aGRyICppY21waCwgX2ljbXBoOwogCV9fYmUxNiAq cG9ydHMsIF9wb3J0c1syXTsKIAl1OCBpbnNpZGVfbmV4dGhkcjsKQEAgLTIyNCwxMiArMjI1LDE1 IEBAIGV4dHJhY3RfaWNtcDZfZmllbGRzKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCiAJaWYg KGljbXBoLT5pY21wNl90eXBlICYgSUNNUFY2X0lORk9NU0dfTUFTSykKIAkJcmV0dXJuIDE7CiAK LQlpbnNpZGVfaXBoID0gc2tiX2hlYWRlcl9wb2ludGVyKHNrYiwgb3V0c2lkZV9oZHJsZW4gKyBz aXplb2YoX2ljbXBoKSwgc2l6ZW9mKF9pbnNpZGVfaXBoKSwgJl9pbnNpZGVfaXBoKTsKKwlpbnNp ZGVfaXBoID0gc2tiX2hlYWRlcl9wb2ludGVyKHNrYiwgb3V0c2lkZV9oZHJsZW4gKyBzaXplb2Yo X2ljbXBoKSwKKwkJCQkJc2l6ZW9mKCppcHY2X3ZhciksIGlwdjZfdmFyKTsKIAlpZiAoaW5zaWRl X2lwaCA9PSBOVUxMKQogCQlyZXR1cm4gMTsKIAlpbnNpZGVfbmV4dGhkciA9IGluc2lkZV9pcGgt Pm5leHRoZHI7CiAKLQlpbnNpZGVfaGRybGVuID0gaXB2Nl9za2lwX2V4dGhkcihza2IsIG91dHNp ZGVfaGRybGVuICsgc2l6ZW9mKF9pY21waCkgKyBzaXplb2YoX2luc2lkZV9pcGgpLCAmaW5zaWRl X25leHRoZHIpOworCWluc2lkZV9oZHJsZW4gPSBpcHY2X3NraXBfZXh0aGRyKHNrYiwgb3V0c2lk ZV9oZHJsZW4gKyBzaXplb2YoX2ljbXBoKSArCisJCQkJCSAgICAgIHNpemVvZigqaXB2Nl92YXIp LAorCQkJCQkgJmluc2lkZV9uZXh0aGRyKTsKIAlpZiAoaW5zaWRlX2hkcmxlbiA8IDApCiAJCXJl dHVybiAxOyAvKiBoam06IFBhY2tldCBoYXMgbm8vaW5jb21wbGV0ZSB0cmFuc3BvcnQgbGF5ZXIg aGVhZGVycy4gKi8KIApAQCAtMjU2LDEwICsyNjAsMTAgQEAgZXh0cmFjdF9pY21wNl9maWVsZHMo Y29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIHN0YXRpYyBib29sCiBzb2NrZXRfbXQ2X3YxKGNv bnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB4dF9hY3Rpb25fcGFyYW0gKnBhcikKIHsK LQlzdHJ1Y3QgaXB2NmhkciAqaXBoID0gaXB2Nl9oZHIoc2tiKTsKKwlzdHJ1Y3QgaXB2NmhkciBp cHY2X3ZhciwgKmlwaCA9IGlwdjZfaGRyKHNrYik7CiAJc3RydWN0IHVkcGhkciBfaGRyLCAqaHAg PSBOVUxMOwogCXN0cnVjdCBzb2NrICpzazsKLQlzdHJ1Y3QgaW42X2FkZHIgKmRhZGRyLCAqc2Fk ZHI7CisJY29uc3Qgc3RydWN0IGluNl9hZGRyICpkYWRkciwgKnNhZGRyOwogCV9fYmUxNiBkcG9y dCwgc3BvcnQ7CiAJaW50IHRob2ZmLCB0cHJvdG87CiAJY29uc3Qgc3RydWN0IHh0X3NvY2tldF9t dGluZm8xICppbmZvID0gKHN0cnVjdCB4dF9zb2NrZXRfbXRpbmZvMSAqKSBwYXItPm1hdGNoaW5m bzsKQEAgLTI4Myw3ICsyODcsNyBAQCBzb2NrZXRfbXQ2X3YxKGNvbnN0IHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCB4dF9hY3Rpb25fcGFyYW0gKnBhcikKIAogCX0gZWxzZSBpZiAodHByb3Rv ID09IElQUFJPVE9fSUNNUFY2KSB7CiAJCWlmIChleHRyYWN0X2ljbXA2X2ZpZWxkcyhza2IsIHRo b2ZmLCAmdHByb3RvLCAmc2FkZHIsICZkYWRkciwKLQkJCQkJICZzcG9ydCwgJmRwb3J0KSkKKwkJ CQkJICZzcG9ydCwgJmRwb3J0LCAmaXB2Nl92YXIpKQogCQkJcmV0dXJuIGZhbHNlOwogCX0gZWxz ZSB7CiAJCXJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL25ldC9yZHMvaXdfcmRtYS5jIGIvbmV0 L3Jkcy9pd19yZG1hLmMKaW5kZXggNGUxZGUxNy4uODM3MjVmMyAxMDA2NDQKLS0tIGEvbmV0L3Jk cy9pd19yZG1hLmMKKysrIGIvbmV0L3Jkcy9pd19yZG1hLmMKQEAgLTg4LDcgKzg4LDkgQEAgc3Rh dGljIHVuc2lnbmVkIGludCByZHNfaXdfdW5tYXBfZmFzdHJlZ19saXN0KHN0cnVjdCByZHNfaXdf bXJfcG9vbCAqcG9vbCwKIAkJCWludCAqdW5waW5uZWQpOwogc3RhdGljIHZvaWQgcmRzX2l3X2Rl c3Ryb3lfZmFzdHJlZyhzdHJ1Y3QgcmRzX2l3X21yX3Bvb2wgKnBvb2wsIHN0cnVjdCByZHNfaXdf bXIgKmlibXIpOwogCi1zdGF0aWMgaW50IHJkc19pd19nZXRfZGV2aWNlKHN0cnVjdCByZHNfc29j ayAqcnMsIHN0cnVjdCByZHNfaXdfZGV2aWNlICoqcmRzX2l3ZGV2LCBzdHJ1Y3QgcmRtYV9jbV9p ZCAqKmNtX2lkKQorc3RhdGljIGludCByZHNfaXdfZ2V0X2RldmljZShzdHJ1Y3Qgc29ja2FkZHJf aW4gKnNyYywgc3RydWN0IHNvY2thZGRyX2luICpkc3QsCisJCQkgICAgIHN0cnVjdCByZHNfaXdf ZGV2aWNlICoqcmRzX2l3ZGV2LAorCQkJICAgICBzdHJ1Y3QgcmRtYV9jbV9pZCAqKmNtX2lkKQog ewogCXN0cnVjdCByZHNfaXdfZGV2aWNlICppd2RldjsKIAlzdHJ1Y3QgcmRzX2l3X2NtX2lkICpp X2NtX2lkOwpAQCAtMTEyLDE1ICsxMTQsMTUgQEAgc3RhdGljIGludCByZHNfaXdfZ2V0X2Rldmlj ZShzdHJ1Y3QgcmRzX3NvY2sgKnJzLCBzdHJ1Y3QgcmRzX2l3X2RldmljZSAqKnJkc19pd2QKIAkJ CQlzcmNfYWRkci0+c2luX3BvcnQsCiAJCQkJZHN0X2FkZHItPnNpbl9hZGRyLnNfYWRkciwKIAkJ CQlkc3RfYWRkci0+c2luX3BvcnQsCi0JCQkJcnMtPnJzX2JvdW5kX2FkZHIsCi0JCQkJcnMtPnJz X2JvdW5kX3BvcnQsCi0JCQkJcnMtPnJzX2Nvbm5fYWRkciwKLQkJCQlycy0+cnNfY29ubl9wb3J0 KTsKKwkJCQlzcmMtPnNpbl9hZGRyLnNfYWRkciwKKwkJCQlzcmMtPnNpbl9wb3J0LAorCQkJCWRz dC0+c2luX2FkZHIuc19hZGRyLAorCQkJCWRzdC0+c2luX3BvcnQpOwogI2lmZGVmIFdPUktJTkdf VFVQTEVfREVURUNUSU9OCi0JCQlpZiAoc3JjX2FkZHItPnNpbl9hZGRyLnNfYWRkciA9PSBycy0+ cnNfYm91bmRfYWRkciAmJgotCQkJICAgIHNyY19hZGRyLT5zaW5fcG9ydCA9PSBycy0+cnNfYm91 bmRfcG9ydCAmJgotCQkJICAgIGRzdF9hZGRyLT5zaW5fYWRkci5zX2FkZHIgPT0gcnMtPnJzX2Nv bm5fYWRkciAmJgotCQkJICAgIGRzdF9hZGRyLT5zaW5fcG9ydCA9PSBycy0+cnNfY29ubl9wb3J0 KSB7CisJCQlpZiAoc3JjX2FkZHItPnNpbl9hZGRyLnNfYWRkciA9PSBzcmMtPnNpbl9hZGRyLnNf YWRkciAmJgorCQkJICAgIHNyY19hZGRyLT5zaW5fcG9ydCA9PSBzcmMtPnNpbl9wb3J0ICYmCisJ CQkgICAgZHN0X2FkZHItPnNpbl9hZGRyLnNfYWRkciA9PSBkc3QtPnNpbl9hZGRyLnNfYWRkciAm JgorCQkJICAgIGRzdF9hZGRyLT5zaW5fcG9ydCA9PSBkc3QtPnNpbl9wb3J0KSB7CiAjZWxzZQog CQkJLyogRklYTUUgLSBuZWVkcyB0byBjb21wYXJlIHRoZSBsb2NhbCBhbmQgcmVtb3RlCiAJCQkg KiBpcGFkZHIvcG9ydCB0dXBsZSwgYnV0IHRoZSBpcGFkZHIgaXMgdGhlIG9ubHkKQEAgLTEyOCw3 ICsxMzAsNyBAQCBzdGF0aWMgaW50IHJkc19pd19nZXRfZGV2aWNlKHN0cnVjdCByZHNfc29jayAq cnMsIHN0cnVjdCByZHNfaXdfZGV2aWNlICoqcmRzX2l3ZAogCQkJICogemVybydlZC4gIEl0IGRv ZXNuJ3QgYXBwZWFyIHRvIGJlIHByb3Blcmx5IHBvcHVsYXRlZAogCQkJICogZHVyaW5nIGNvbm5l Y3Rpb24gc2V0dXAuLi4KIAkJCSAqLwotCQkJaWYgKHNyY19hZGRyLT5zaW5fYWRkci5zX2FkZHIg PT0gcnMtPnJzX2JvdW5kX2FkZHIpIHsKKwkJCWlmIChzcmNfYWRkci0+c2luX2FkZHIuc19hZGRy ID09IHNyYy0+c2luX2FkZHIuc19hZGRyKSB7CiAjZW5kaWYKIAkJCQlzcGluX3VubG9ja19pcnEo Jml3ZGV2LT5zcGlubG9jayk7CiAJCQkJKnJkc19pd2RldiA9IGl3ZGV2OwpAQCAtMTgwLDE5ICsx ODIsMTMgQEAgaW50IHJkc19pd191cGRhdGVfY21faWQoc3RydWN0IHJkc19pd19kZXZpY2UgKnJk c19pd2Rldiwgc3RydWN0IHJkbWFfY21faWQgKmNtX2kKIHsKIAlzdHJ1Y3Qgc29ja2FkZHJfaW4g KnNyY19hZGRyLCAqZHN0X2FkZHI7CiAJc3RydWN0IHJkc19pd19kZXZpY2UgKnJkc19pd2Rldl9v bGQ7Ci0Jc3RydWN0IHJkc19zb2NrIHJzOwogCXN0cnVjdCByZG1hX2NtX2lkICpwY21faWQ7CiAJ aW50IHJjOwogCiAJc3JjX2FkZHIgPSAoc3RydWN0IHNvY2thZGRyX2luICopJmNtX2lkLT5yb3V0 ZS5hZGRyLnNyY19hZGRyOwogCWRzdF9hZGRyID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSZjbV9p ZC0+cm91dGUuYWRkci5kc3RfYWRkcjsKIAotCXJzLnJzX2JvdW5kX2FkZHIgPSBzcmNfYWRkci0+ c2luX2FkZHIuc19hZGRyOwotCXJzLnJzX2JvdW5kX3BvcnQgPSBzcmNfYWRkci0+c2luX3BvcnQ7 Ci0JcnMucnNfY29ubl9hZGRyID0gZHN0X2FkZHItPnNpbl9hZGRyLnNfYWRkcjsKLQlycy5yc19j b25uX3BvcnQgPSBkc3RfYWRkci0+c2luX3BvcnQ7Ci0KLQlyYyA9IHJkc19pd19nZXRfZGV2aWNl KCZycywgJnJkc19pd2Rldl9vbGQsICZwY21faWQpOworCXJjID0gcmRzX2l3X2dldF9kZXZpY2Uo c3JjX2FkZHIsIGRzdF9hZGRyLCAmcmRzX2l3ZGV2X29sZCwgJnBjbV9pZCk7CiAJaWYgKHJjKQog CQlyZHNfaXdfcmVtb3ZlX2NtX2lkKHJkc19pd2RldiwgY21faWQpOwogCkBAIC02MTEsOSArNjA3 LDE3IEBAIHZvaWQgKnJkc19pd19nZXRfbXIoc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywgdW5zaWdu ZWQgbG9uZyBuZW50cywKIAlzdHJ1Y3QgcmRzX2l3X2RldmljZSAqcmRzX2l3ZGV2OwogCXN0cnVj dCByZHNfaXdfbXIgKmlibXIgPSBOVUxMOwogCXN0cnVjdCByZG1hX2NtX2lkICpjbV9pZDsKKwlz dHJ1Y3Qgc29ja2FkZHJfaW4gc3JjID0geworCQkuc2luX2FkZHIuc19hZGRyID0gcnMtPnJzX2Jv dW5kX2FkZHIsCisJCS5zaW5fcG9ydCA9IHJzLT5yc19ib3VuZF9wb3J0LAorCX07CisJc3RydWN0 IHNvY2thZGRyX2luIGRzdCA9IHsKKwkJLnNpbl9hZGRyLnNfYWRkciA9IHJzLT5yc19jb25uX2Fk ZHIsCisJCS5zaW5fcG9ydCA9IHJzLT5yc19jb25uX3BvcnQsCisJfTsKIAlpbnQgcmV0OwogCi0J cmV0ID0gcmRzX2l3X2dldF9kZXZpY2UocnMsICZyZHNfaXdkZXYsICZjbV9pZCk7CisJcmV0ID0g cmRzX2l3X2dldF9kZXZpY2UoJnNyYywgJmRzdCwgJnJkc19pd2RldiwgJmNtX2lkKTsKIAlpZiAo cmV0IHx8ICFjbV9pZCkgewogCQlyZXQgPSAtRU5PREVWOwogCQlnb3RvIG91dDsKZGlmZiAtLWdp dCBhL25ldC9yZHMvc3lzY3RsLmMgYi9uZXQvcmRzL3N5c2N0bC5jCmluZGV4IDI1YWQwYzcuLjA2 NTAyNmYgMTAwNjQ0Ci0tLSBhL25ldC9yZHMvc3lzY3RsLmMKKysrIGIvbmV0L3Jkcy9zeXNjdGwu YwpAQCAtNzEsMTQgKzcxLDE0IEBAIHN0YXRpYyBjdGxfdGFibGUgcmRzX3N5c2N0bF9yZHNfdGFi bGVbXSA9IHsKIAl7CiAJCS5wcm9jbmFtZQk9ICJtYXhfdW5hY2tlZF9wYWNrZXRzIiwKIAkJLmRh dGEJCT0gJnJkc19zeXNjdGxfbWF4X3VuYWNrZWRfcGFja2V0cywKLQkJLm1heGxlbiAgICAgICAg ID0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpLAorCQkubWF4bGVuICAgICAgICAgPSBzaXplb2YoaW50 KSwKIAkJLm1vZGUgICAgICAgICAgID0gMDY0NCwKIAkJLnByb2NfaGFuZGxlciAgID0gcHJvY19k b2ludHZlYywKIAl9LAogCXsKIAkJLnByb2NuYW1lCT0gIm1heF91bmFja2VkX2J5dGVzIiwKIAkJ LmRhdGEJCT0gJnJkc19zeXNjdGxfbWF4X3VuYWNrZWRfYnl0ZXMsCi0JCS5tYXhsZW4gICAgICAg ICA9IHNpemVvZih1bnNpZ25lZCBsb25nKSwKKwkJLm1heGxlbiAgICAgICAgID0gc2l6ZW9mKGlu dCksCiAJCS5tb2RlICAgICAgICAgICA9IDA2NDQsCiAJCS5wcm9jX2hhbmRsZXIgICA9IHByb2Nf ZG9pbnR2ZWMsCiAJfSwKZGlmZiAtLWdpdCBhL25ldC9yeHJwYy9hci1yZWN2bXNnLmMgYi9uZXQv cnhycGMvYXItcmVjdm1zZy5jCmluZGV4IDg5ODQ5MmEuLjVjYzJkYTUgMTAwNjQ0Ci0tLSBhL25l dC9yeHJwYy9hci1yZWN2bXNnLmMKKysrIGIvbmV0L3J4cnBjL2FyLXJlY3Ztc2cuYwpAQCAtODcs NyArODcsNyBAQCBpbnQgcnhycGNfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBz b2NrZXQgKnNvY2ssCiAJCWlmICghc2tiKSB7CiAJCQkvKiBub3RoaW5nIHJlbWFpbnMgb24gdGhl IHF1ZXVlICovCiAJCQlpZiAoY29waWVkICYmCi0JCQkgICAgKG1zZy0+bXNnX2ZsYWdzICYgTVNH X1BFRUsgfHwgdGltZW8gPT0gMCkpCisJCQkgICAgKGZsYWdzICYgTVNHX1BFRUsgfHwgdGltZW8g PT0gMCkpCiAJCQkJZ290byBvdXQ7CiAKIAkJCS8qIHdhaXQgZm9yIGEgbWVzc2FnZSB0byB0dXJu IHVwICovCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvZW1hdGNoLmMgYi9uZXQvc2NoZWQvZW1hdGNo LmMKaW5kZXggODhkOTNlYi4uMDg4MzQyZiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2VtYXRjaC5j CisrKyBiL25ldC9zY2hlZC9lbWF0Y2guYwpAQCAtMjI3LDYgKzIyNyw3IEBAIHN0YXRpYyBpbnQg dGNmX2VtX3ZhbGlkYXRlKHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLAogCQkJCSAqIHRvIHJlcGxheSB0 aGUgcmVxdWVzdC4KIAkJCQkgKi8KIAkJCQltb2R1bGVfcHV0KGVtLT5vcHMtPm93bmVyKTsKKwkJ CQllbS0+b3BzID0gTlVMTDsKIAkJCQllcnIgPSAtRUFHQUlOOwogCQkJfQogI2VuZGlmCmRpZmYg LS1naXQgYS9uZXQvc29ja2V0LmMgYi9uZXQvc29ja2V0LmMKaW5kZXggM2ZhYTM1OC4uMTE2Y2Y5 ZCAxMDA2NDQKLS0tIGEvbmV0L3NvY2tldC5jCisrKyBiL25ldC9zb2NrZXQuYwpAQCAtMTg4NSw2 ICsxODg1LDkgQEAgc3RhdGljIGludCBjb3B5X21zZ2hkcl9mcm9tX3VzZXIoc3RydWN0IG1zZ2hk ciAqa21zZywKIAlpZiAoY29weV9mcm9tX3VzZXIoa21zZywgdW1zZywgc2l6ZW9mKHN0cnVjdCBt c2doZHIpKSkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAKKwlpZiAoa21zZy0+bXNnX25hbWUgPT0gTlVM TCkKKwkJa21zZy0+bXNnX25hbWVsZW4gPSAwOworCiAJaWYgKGttc2ctPm1zZ19uYW1lbGVuIDwg MCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvY2FjaGUuYyBi L25ldC9zdW5ycGMvY2FjaGUuYwppbmRleCAyMzdhMmVlLi43ZGU5MzVhIDEwMDY0NAotLS0gYS9u ZXQvc3VucnBjL2NhY2hlLmMKKysrIGIvbmV0L3N1bnJwYy9jYWNoZS5jCkBAIC05MDksNyArOTA5 LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBjYWNoZV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBw b2xsX3RhYmxlICp3YWl0LAogCXBvbGxfd2FpdChmaWxwLCAmcXVldWVfd2FpdCwgd2FpdCk7CiAK IAkvKiBhbHdheSBhbGxvdyB3cml0ZSAqLwotCW1hc2sgPSBQT0xMX09VVCB8IFBPTExXUk5PUk07 CisJbWFzayA9IFBPTExPVVQgfCBQT0xMV1JOT1JNOwogCiAJaWYgKCFycCkKIAkJcmV0dXJuIG1h c2s7CmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3hwcnRyZG1hL3ZlcmJzLmMgYi9uZXQvc3VucnBj L3hwcnRyZG1hL3ZlcmJzLmMKaW5kZXggMjgyMzZiYS4uMzdlNDQ4NCAxMDA2NDQKLS0tIGEvbmV0 L3N1bnJwYy94cHJ0cmRtYS92ZXJicy5jCisrKyBiL25ldC9zdW5ycGMveHBydHJkbWEvdmVyYnMu YwpAQCAtNDg1LDcgKzQ4NSw3IEBAIHJwY3JkbWFfaWFfb3BlbihzdHJ1Y3QgcnBjcmRtYV94cHJ0 ICp4cHJ0LCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsIGludCBtZW1yZWcpCiAJaWYgKHJjKSB7CiAJ CWRwcmludGsoIlJQQzogICAgICAgJXM6IGliX3F1ZXJ5X2RldmljZSBmYWlsZWQgJWRcbiIsCiAJ CQlfX2Z1bmNfXywgcmMpOwotCQlnb3RvIG91dDI7CisJCWdvdG8gb3V0MzsKIAl9CiAKIAlpZiAo ZGV2YXR0ci5kZXZpY2VfY2FwX2ZsYWdzICYgSUJfREVWSUNFX0xPQ0FMX0RNQV9MS0VZKSB7CkBA IC01ODcsNyArNTg3LDcgQEAgcnBjcmRtYV9pYV9vcGVuKHN0cnVjdCBycGNyZG1hX3hwcnQgKnhw cnQsIHN0cnVjdCBzb2NrYWRkciAqYWRkciwgaW50IG1lbXJlZykKIAkJcHJpbnRrKEtFUk5fRVJS ICIlczogaW52YWxpZCBtZW1vcnkgcmVnaXN0cmF0aW9uIG1vZGUgJWRcbiIsCiAJCQkJX19mdW5j X18sIG1lbXJlZyk7CiAJCXJjID0gLUVJTlZBTDsKLQkJZ290byBvdXQyOworCQlnb3RvIG91dDM7 CiAJfQogCWRwcmludGsoIlJQQzogICAgICAgJXM6IG1lbW9yeSByZWdpc3RyYXRpb24gc3RyYXRl Z3kgaXMgJWRcbiIsCiAJCV9fZnVuY19fLCBtZW1yZWcpOwpAQCAtNTk2LDYgKzU5NiwxMCBAQCBy cGNyZG1hX2lhX29wZW4oc3RydWN0IHJwY3JkbWFfeHBydCAqeHBydCwgc3RydWN0IHNvY2thZGRy ICphZGRyLCBpbnQgbWVtcmVnKQogCWlhLT5yaV9tZW1yZWdfc3RyYXRlZ3kgPSBtZW1yZWc7CiAK IAlyZXR1cm4gMDsKKworb3V0MzoKKwlpYl9kZWFsbG9jX3BkKGlhLT5yaV9wZCk7CisJaWEtPnJp X3BkID0gTlVMTDsKIG91dDI6CiAJcmRtYV9kZXN0cm95X2lkKGlhLT5yaV9pZCk7CiAJaWEtPnJp X2lkID0gTlVMTDsKZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9ubDgwMjExLmMgYi9uZXQvd2ly ZWxlc3Mvbmw4MDIxMS5jCmluZGV4IGNiNDE2OGUuLmUxZjczYjYgMTAwNjQ0Ci0tLSBhL25ldC93 aXJlbGVzcy9ubDgwMjExLmMKKysrIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuYwpAQCAtMjY1MCw2 ICsyNjUwLDE0IEBAIHN0YXRpYyBpbnQgbmw4MDIxMV9uZXdfc3RhdGlvbihzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCWlmIChwYXJzZV9zdGF0aW9uX2ZsYWdz KGluZm8sICZwYXJhbXMpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCS8qIEhUIHJlcXVpcmVzIFFv UywgYnV0IGlmIHdlIGRvbid0IGhhdmUgdGhhdCBqdXN0IGlnbm9yZSBIVC9WSFQKKwkgKiBhcyB1 c2Vyc3BhY2UgbWlnaHQganVzdCBwYXNzIHRocm91Z2ggdGhlIGNhcGFiaWxpdGllcyBmcm9tIHRo ZSBJRXMKKwkgKiBkaXJlY3RseSwgcmF0aGVyIHRoYW4gZW5mb3JjaW5nIHRoaXMgcmVzdHJpY3Rp b24gYW5kIHJldHVybmluZyBhbgorCSAqIGVycm9yIGluIHRoaXMgY2FzZS4KKwkgKi8KKwlpZiAo IShwYXJhbXMuc3RhX2ZsYWdzX3NldCAmIEJJVChOTDgwMjExX1NUQV9GTEFHX1dNRSkpKQorCQlw YXJhbXMuaHRfY2FwYSA9IE5VTEw7CisKIAkvKiBwYXJzZSBXTUUgYXR0cmlidXRlcyBpZiBzdGEg aXMgV01FIGNhcGFibGUgKi8KIAlpZiAoKHJkZXYtPndpcGh5LmZsYWdzICYgV0lQSFlfRkxBR19B UF9VQVBTRCkgJiYKIAkgICAgKHBhcmFtcy5zdGFfZmxhZ3Nfc2V0ICYgQklUKE5MODAyMTFfU1RB X0ZMQUdfV01FKSkgJiYKZGlmZiAtLWdpdCBhL25ldC94ZnJtL3hmcm1fb3V0cHV0LmMgYi9uZXQv eGZybS94ZnJtX291dHB1dC5jCmluZGV4IDQ3YmFjZDguLmU0OWQ1ZjQgMTAwNjQ0Ci0tLSBhL25l dC94ZnJtL3hmcm1fb3V0cHV0LmMKKysrIGIvbmV0L3hmcm0veGZybV9vdXRwdXQuYwpAQCAtMTUx LDYgKzE1MSw4IEBAIHN0YXRpYyBpbnQgeGZybV9vdXRwdXRfZ3NvKHN0cnVjdCBza19idWZmICpz a2IpCiAJa2ZyZWVfc2tiKHNrYik7CiAJaWYgKElTX0VSUihzZWdzKSkKIAkJcmV0dXJuIFBUUl9F UlIoc2Vncyk7CisJaWYgKHNlZ3MgPT0gTlVMTCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlkbyB7 CiAJCXN0cnVjdCBza19idWZmICpuc2tiID0gc2Vncy0+bmV4dDsKZGlmZiAtLWdpdCBhL3NlY3Vy aXR5L3NlbGludXgvc2VsaW51eGZzLmMgYi9zZWN1cml0eS9zZWxpbnV4L3NlbGludXhmcy5jCmlu ZGV4IDRkZDhkY2YuLmJhYzg5MjggMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvc2VsaW51 eGZzLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zZWxpbnV4ZnMuYwpAQCAtMTUwLDcgKzE1MCw3 IEBAIHN0YXRpYyBzc2l6ZV90IHNlbF93cml0ZV9lbmZvcmNlKHN0cnVjdCBmaWxlICpmaWxlLCBj b25zdCBjaGFyIF9fdXNlciAqYnVmLAogCQlnb3RvIG91dDsKIAogCS8qIE5vIHBhcnRpYWwgd3Jp dGVzLiAqLwotCWxlbmd0aCA9IEVJTlZBTDsKKwlsZW5ndGggPSAtRUlOVkFMOwogCWlmICgqcHBv cyAhPSAwKQogCQlnb3RvIG91dDsKIApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc21hY2svc21hY2su aCBiL3NlY3VyaXR5L3NtYWNrL3NtYWNrLmgKaW5kZXggMmFkMDA2NS4uYmQ4OGI3MyAxMDA2NDQK LS0tIGEvc2VjdXJpdHkvc21hY2svc21hY2suaAorKysgYi9zZWN1cml0eS9zbWFjay9zbWFjay5o CkBAIC0yNzIsNiArMjcyLDE2IEBAIHN0YXRpYyBpbmxpbmUgY2hhciAqc21rX29mX3Rhc2soY29u c3Qgc3RydWN0IHRhc2tfc21hY2sgKnRzcCkKIAlyZXR1cm4gdHNwLT5zbWtfdGFzazsKIH0KIAor c3RhdGljIGlubGluZSBjaGFyICpzbWtfb2ZfdGFza19zdHJ1Y3QoY29uc3Qgc3RydWN0IHRhc2tf c3RydWN0ICp0KQoreworCWNoYXIgKnNrcDsKKworCXJjdV9yZWFkX2xvY2soKTsKKwlza3AgPSBz bWtfb2ZfdGFzayhfX3Rhc2tfY3JlZCh0KS0+c2VjdXJpdHkpOworCXJjdV9yZWFkX3VubG9jaygp OworCXJldHVybiBza3A7Cit9CisKIC8qCiAgKiBQcmVzZW50IGEgcG9pbnRlciB0byB0aGUgZm9y a2VkIHNtYWNrIGxhYmVsIGluIGFuIHRhc2sgYmxvYi4KICAqLwpkaWZmIC0tZ2l0IGEvc2VjdXJp dHkvc21hY2svc21hY2tfbHNtLmMgYi9zZWN1cml0eS9zbWFjay9zbWFja19sc20uYwppbmRleCBl M2FkYjQ5Li43NzRjMTU5IDEwMDY0NAotLS0gYS9zZWN1cml0eS9zbWFjay9zbWFja19sc20uYwor KysgYi9zZWN1cml0eS9zbWFjay9zbWFja19sc20uYwpAQCAtMzgsOCArMzgsNiBAQAogI2luY2x1 ZGUgPGxpbnV4L3BlcnNvbmFsaXR5Lmg+CiAjaW5jbHVkZSAic21hY2suaCIKIAotI2RlZmluZSB0 YXNrX3NlY3VyaXR5KHRhc2spCSh0YXNrX2NyZWRfeHh4KCh0YXNrKSwgc2VjdXJpdHkpKQotCiAj ZGVmaW5lIFRSQU5TX1RSVUUJIlRSVUUiCiAjZGVmaW5lIFRSQU5TX1RSVUVfU0laRQk0CiAKQEAg LTE2MSw3ICsxNTksNyBAQCBzdGF0aWMgaW50IHNtYWNrX3B0cmFjZV9hY2Nlc3NfY2hlY2soc3Ry dWN0IHRhc2tfc3RydWN0ICpjdHAsIHVuc2lnbmVkIGludCBtb2RlKQogCWlmIChyYyAhPSAwKQog CQlyZXR1cm4gcmM7CiAKLQl0c3AgPSBzbWtfb2ZfdGFzayh0YXNrX3NlY3VyaXR5KGN0cCkpOwor CXRzcCA9IHNta19vZl90YXNrX3N0cnVjdChjdHApOwogCXNta19hZF9pbml0KCZhZCwgX19mdW5j X18sIExTTV9BVURJVF9EQVRBX1RBU0spOwogCXNta19hZF9zZXRmaWVsZF91X3RzaygmYWQsIGN0 cCk7CiAKQEAgLTE4Nyw3ICsxODUsNyBAQCBzdGF0aWMgaW50IHNtYWNrX3B0cmFjZV90cmFjZW1l KHN0cnVjdCB0YXNrX3N0cnVjdCAqcHRwKQogCWlmIChyYyAhPSAwKQogCQlyZXR1cm4gcmM7CiAK LQl0c3AgPSBzbWtfb2ZfdGFzayh0YXNrX3NlY3VyaXR5KHB0cCkpOworCXRzcCA9IHNta19vZl90 YXNrX3N0cnVjdChwdHApOwogCXNta19hZF9pbml0KCZhZCwgX19mdW5jX18sIExTTV9BVURJVF9E QVRBX1RBU0spOwogCXNta19hZF9zZXRmaWVsZF91X3RzaygmYWQsIHB0cCk7CiAKQEAgLTE1MTUs NyArMTUxMyw3IEBAIHN0YXRpYyBpbnQgc21rX2N1cmFjY19vbl90YXNrKHN0cnVjdCB0YXNrX3N0 cnVjdCAqcCwgaW50IGFjY2VzcywKIAogCXNta19hZF9pbml0KCZhZCwgY2FsbGVyLCBMU01fQVVE SVRfREFUQV9UQVNLKTsKIAlzbWtfYWRfc2V0ZmllbGRfdV90c2soJmFkLCBwKTsKLQlyZXR1cm4g c21rX2N1cmFjYyhzbWtfb2ZfdGFzayh0YXNrX3NlY3VyaXR5KHApKSwgYWNjZXNzLCAmYWQpOwor CXJldHVybiBzbWtfY3VyYWNjKHNta19vZl90YXNrX3N0cnVjdChwKSwgYWNjZXNzLCAmYWQpOwog fQogCiAvKioKQEAgLTE1NjEsNyArMTU1OSw3IEBAIHN0YXRpYyBpbnQgc21hY2tfdGFza19nZXRz aWQoc3RydWN0IHRhc2tfc3RydWN0ICpwKQogICovCiBzdGF0aWMgdm9pZCBzbWFja190YXNrX2dl dHNlY2lkKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgdTMyICpzZWNpZCkKIHsKLQkqc2VjaWQgPSBz bWFja190b19zZWNpZChzbWtfb2ZfdGFzayh0YXNrX3NlY3VyaXR5KHApKSk7CisJKnNlY2lkID0g c21hY2tfdG9fc2VjaWQoc21rX29mX3Rhc2tfc3RydWN0KHApKTsKIH0KIAogLyoqCkBAIC0xNjcz LDcgKzE2NzEsNyBAQCBzdGF0aWMgaW50IHNtYWNrX3Rhc2tfa2lsbChzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnAsIHN0cnVjdCBzaWdpbmZvICppbmZvLAogCSAqIGNhbiB3cml0ZSB0aGUgcmVjZWl2ZXIu CiAJICovCiAJaWYgKHNlY2lkID09IDApCi0JCXJldHVybiBzbWtfY3VyYWNjKHNta19vZl90YXNr KHRhc2tfc2VjdXJpdHkocCkpLCBNQVlfV1JJVEUsCisJCXJldHVybiBzbWtfY3VyYWNjKHNta19v Zl90YXNrX3N0cnVjdChwKSwgTUFZX1dSSVRFLAogCQkJCSAgJmFkKTsKIAkvKgogCSAqIElmIHRo ZSBzZWNpZCBpc24ndCAwIHdlJ3JlIGRlYWxpbmcgd2l0aCBzb21lIFVTQiBJTwpAQCAtMTY4MSw3 ICsxNjc5LDcgQEAgc3RhdGljIGludCBzbWFja190YXNrX2tpbGwoc3RydWN0IHRhc2tfc3RydWN0 ICpwLCBzdHJ1Y3Qgc2lnaW5mbyAqaW5mbywKIAkgKiB3ZSBjYW4ndCB0YWtlIHByaXZpbGVnZSBp bnRvIGFjY291bnQuCiAJICovCiAJcmV0dXJuIHNta19hY2Nlc3Moc21hY2tfZnJvbV9zZWNpZChz ZWNpZCksCi0JCQkgIHNta19vZl90YXNrKHRhc2tfc2VjdXJpdHkocCkpLCBNQVlfV1JJVEUsICZh ZCk7CisJCQkgIHNta19vZl90YXNrX3N0cnVjdChwKSwgTUFZX1dSSVRFLCAmYWQpOwogfQogCiAv KioKQEAgLTE2OTQsOSArMTY5MiwxMyBAQCBzdGF0aWMgaW50IHNtYWNrX3Rhc2tfd2FpdChzdHJ1 Y3QgdGFza19zdHJ1Y3QgKnApCiB7CiAJc3RydWN0IHNta19hdWRpdF9pbmZvIGFkOwogCWNoYXIg KnNwID0gc21rX29mX2N1cnJlbnQoKTsKLQljaGFyICp0c3AgPSBzbWtfb2ZfZm9ya2VkKHRhc2tf c2VjdXJpdHkocCkpOworCWNoYXIgKnRzcDsKIAlpbnQgcmM7CiAKKwlyY3VfcmVhZF9sb2NrKCk7 CisJdHNwID0gc21rX29mX2ZvcmtlZChfX3Rhc2tfY3JlZChwKS0+c2VjdXJpdHkpOworCXJjdV9y ZWFkX3VubG9jaygpOworCiAJLyogd2UgZG9uJ3QgbG9nIGhlcmUsIHdlIGNhbiBiZSBvdmVycmlk ZW4gKi8KIAlyYyA9IHNta19hY2Nlc3ModHNwLCBzcCwgTUFZX1dSSVRFLCBOVUxMKTsKIAlpZiAo cmMgPT0gMCkKQEAgLTE3MzMsNyArMTczNSw3IEBAIHN0YXRpYyBpbnQgc21hY2tfdGFza193YWl0 KHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIHN0YXRpYyB2b2lkIHNtYWNrX3Rhc2tfdG9faW5vZGUo c3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQogewogCXN0cnVjdCBp bm9kZV9zbWFjayAqaXNwID0gaW5vZGUtPmlfc2VjdXJpdHk7Ci0JaXNwLT5zbWtfaW5vZGUgPSBz bWtfb2ZfdGFzayh0YXNrX3NlY3VyaXR5KHApKTsKKwlpc3AtPnNta19pbm9kZSA9IHNta19vZl90 YXNrX3N0cnVjdChwKTsKIH0KIAogLyoKQEAgLTI3MTQsNyArMjcxNiw3IEBAIHN0YXRpYyBpbnQg c21hY2tfZ2V0cHJvY2F0dHIoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBjaGFyICpuYW1lLCBjaGFy ICoqdmFsdWUpCiAJaWYgKHN0cmNtcChuYW1lLCAiY3VycmVudCIpICE9IDApCiAJCXJldHVybiAt RUlOVkFMOwogCi0JY3AgPSBrc3RyZHVwKHNta19vZl90YXNrKHRhc2tfc2VjdXJpdHkocCkpLCBH RlBfS0VSTkVMKTsKKwljcCA9IGtzdHJkdXAoc21rX29mX3Rhc2tfc3RydWN0KHApLCBHRlBfS0VS TkVMKTsKIAlpZiAoY3AgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKZGlmZiAtLWdpdCBh L3NvdW5kL2NvcmUvY29udHJvbC5jIGIvc291bmQvY29yZS9jb250cm9sLmMKaW5kZXggOTIxMDU5 NC4uMWJhNWQzMyAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9jb250cm9sLmMKKysrIGIvc291bmQv Y29yZS9jb250cm9sLmMKQEAgLTExNjQsNiArMTE2NCwxMCBAQCBzdGF0aWMgaW50IHNuZF9jdGxf ZWxlbV9hZGQoc3RydWN0IHNuZF9jdGxfZmlsZSAqZmlsZSwKIAogCWlmIChpbmZvLT5jb3VudCA8 IDEpCiAJCXJldHVybiAtRUlOVkFMOworCWlmICghKmluZm8tPmlkLm5hbWUpCisJCXJldHVybiAt RUlOVkFMOworCWlmIChzdHJubGVuKGluZm8tPmlkLm5hbWUsIHNpemVvZihpbmZvLT5pZC5uYW1l KSkgPj0gc2l6ZW9mKGluZm8tPmlkLm5hbWUpKQorCQlyZXR1cm4gLUVJTlZBTDsKIAlhY2Nlc3Mg PSBpbmZvLT5hY2Nlc3MgPT0gMCA/IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEUgOgog CQkoaW5mby0+YWNjZXNzICYgKFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEV8CiAJCQkJ IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19JTkFDVElWRXwKZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUv cGNtX25hdGl2ZS5jIGIvc291bmQvY29yZS9wY21fbmF0aXZlLmMKaW5kZXggNjM4NjAwYi4uOGEw MDU1NSAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9wY21fbmF0aXZlLmMKKysrIGIvc291bmQvY29y ZS9wY21fbmF0aXZlLmMKQEAgLTEzODIsNiArMTM4Miw4IEBAIHN0YXRpYyBpbnQgc25kX3BjbV9k b19kcmFpbl9pbml0KHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLCBpbnQgc3Rh dGUpCiAJCQlpZiAoISBzbmRfcGNtX3BsYXliYWNrX2VtcHR5KHN1YnN0cmVhbSkpIHsKIAkJCQlz bmRfcGNtX2RvX3N0YXJ0KHN1YnN0cmVhbSwgU05EUlZfUENNX1NUQVRFX0RSQUlOSU5HKTsKIAkJ CQlzbmRfcGNtX3Bvc3Rfc3RhcnQoc3Vic3RyZWFtLCBTTkRSVl9QQ01fU1RBVEVfRFJBSU5JTkcp OworCQkJfSBlbHNlIHsKKwkJCQlydW50aW1lLT5zdGF0dXMtPnN0YXRlID0gU05EUlZfUENNX1NU QVRFX1NFVFVQOwogCQkJfQogCQkJYnJlYWs7CiAJCWNhc2UgU05EUlZfUENNX1NUQVRFX1JVTk5J Tkc6CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYyBiL3NvdW5kL3Bj aS9oZGEvcGF0Y2hfcmVhbHRlay5jCmluZGV4IGQxMGE2ZWYuLjZkMTlmOTkgMTAwNjQ0Ci0tLSBh L3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hf cmVhbHRlay5jCkBAIC03MzcsNyArNzM3LDcgQEAgc3RhdGljIHZvaWQgYWxjX2F1dG9fc2V0dXBf ZWFwZChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywgYm9vbCBvbikKIHsKIAkvKiBXZSBjdXJyZW50 bHkgb25seSBoYW5kbGUgZnJvbnQsIEhQICovCiAJc3RhdGljIGhkYV9uaWRfdCBwaW5zW10gPSB7 Ci0JCTB4MGYsIDB4MTAsIDB4MTQsIDB4MTUsIDAKKwkJMHgwZiwgMHgxMCwgMHgxNCwgMHgxNSwg MHgxNywgMAogCX07CiAJaGRhX25pZF90ICpwOwogCWZvciAocCA9IHBpbnM7ICpwOyBwKyspCmRp ZmYgLS1naXQgYS9zb3VuZC9wY2kvcmlwdGlkZS9yaXB0aWRlLmMgYi9zb3VuZC9wY2kvcmlwdGlk ZS9yaXB0aWRlLmMKaW5kZXggZGNiZWRkMy4uYzg2MDQ0ZiAxMDA2NDQKLS0tIGEvc291bmQvcGNp L3JpcHRpZGUvcmlwdGlkZS5jCisrKyBiL3NvdW5kL3BjaS9yaXB0aWRlL3JpcHRpZGUuYwpAQCAt MjAyNiwzMiArMjAyNiw0MyBAQCBzbmRfcmlwdGlkZV9qb3lzdGlja19wcm9iZShzdHJ1Y3QgcGNp X2RldiAqcGNpLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpCiB7CiAJc3RhdGljIGlu dCBkZXY7CiAJc3RydWN0IGdhbWVwb3J0ICpnYW1lcG9ydDsKKwlpbnQgcmV0OwogCiAJaWYgKGRl diA+PSBTTkRSVl9DQVJEUykKIAkJcmV0dXJuIC1FTk9ERVY7CisKIAlpZiAoIWVuYWJsZVtkZXZd KSB7Ci0JCWRldisrOwotCQlyZXR1cm4gLUVOT0VOVDsKKwkJcmV0ID0gLUVOT0VOVDsKKwkJZ290 byBpbmNfZGV2OwogCX0KIAotCWlmICgham95c3RpY2tfcG9ydFtkZXYrK10pCi0JCXJldHVybiAw OworCWlmICgham95c3RpY2tfcG9ydFtkZXZdKSB7CisJCXJldCA9IDA7CisJCWdvdG8gaW5jX2Rl djsKKwl9CiAKIAlnYW1lcG9ydCA9IGdhbWVwb3J0X2FsbG9jYXRlX3BvcnQoKTsKLQlpZiAoIWdh bWVwb3J0KQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoIWdhbWVwb3J0KSB7CisJCXJldCA9IC1F Tk9NRU07CisJCWdvdG8gaW5jX2RldjsKKwl9CiAJaWYgKCFyZXF1ZXN0X3JlZ2lvbihqb3lzdGlj a19wb3J0W2Rldl0sIDgsICJSaXB0aWRlIGdhbWVwb3J0IikpIHsKIAkJc25kX3ByaW50ayhLRVJO X1dBUk5JTkcKIAkJCSAgICJSaXB0aWRlOiBjYW5ub3QgZ3JhYiBnYW1lcG9ydCAweCV4XG4iLAog CQkJICAgam95c3RpY2tfcG9ydFtkZXZdKTsKIAkJZ2FtZXBvcnRfZnJlZV9wb3J0KGdhbWVwb3J0 KTsKLQkJcmV0dXJuIC1FQlVTWTsKKwkJcmV0ID0gLUVCVVNZOworCQlnb3RvIGluY19kZXY7CiAJ fQogCiAJZ2FtZXBvcnQtPmlvID0gam95c3RpY2tfcG9ydFtkZXZdOwogCWdhbWVwb3J0X3JlZ2lz dGVyX3BvcnQoZ2FtZXBvcnQpOwogCXBjaV9zZXRfZHJ2ZGF0YShwY2ksIGdhbWVwb3J0KTsKLQly ZXR1cm4gMDsKKworCXJldCA9IDA7CitpbmNfZGV2OgorCWRldisrOworCXJldHVybiByZXQ7CiB9 CiAKIHN0YXRpYyB2b2lkIF9fZGV2ZXhpdCBzbmRfcmlwdGlkZV9qb3lzdGlja19yZW1vdmUoc3Ry dWN0IHBjaV9kZXYgKnBjaSkKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9ybWU5NjUyL2hkc3BtLmMg Yi9zb3VuZC9wY2kvcm1lOTY1Mi9oZHNwbS5jCmluZGV4IDE5ZWUyMjAuLjcxYTNkNTIgMTAwNjQ0 Ci0tLSBhL3NvdW5kL3BjaS9ybWU5NjUyL2hkc3BtLmMKKysrIGIvc291bmQvcGNpL3JtZTk2NTIv aGRzcG0uYwpAQCAtNTk2Niw2ICs1OTY2LDkgQEAgc3RhdGljIGludCBzbmRfaGRzcG1fcGxheWJh Y2tfb3BlbihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKIAkJc25kX3BjbV9o d19jb25zdHJhaW50X21pbm1heChydW50aW1lLAogCQkJCQkgICAgIFNORFJWX1BDTV9IV19QQVJB TV9QRVJJT0RfU0laRSwKIAkJCQkJICAgICA2NCwgODE5Mik7CisJCXNuZF9wY21faHdfY29uc3Ry YWludF9taW5tYXgocnVudGltZSwKKwkJCQkJICAgICBTTkRSVl9QQ01fSFdfUEFSQU1fUEVSSU9E UywKKwkJCQkJICAgICAyLCAyKTsKIAkJYnJlYWs7CiAJfQogCkBAIC02MDQwLDYgKzYwNDMsOSBA QCBzdGF0aWMgaW50IHNuZF9oZHNwbV9jYXB0dXJlX29wZW4oc3RydWN0IHNuZF9wY21fc3Vic3Ry ZWFtICpzdWJzdHJlYW0pCiAJCXNuZF9wY21faHdfY29uc3RyYWludF9taW5tYXgocnVudGltZSwK IAkJCQkJICAgICBTTkRSVl9QQ01fSFdfUEFSQU1fUEVSSU9EX1NJWkUsCiAJCQkJCSAgICAgNjQs IDgxOTIpOworCQlzbmRfcGNtX2h3X2NvbnN0cmFpbnRfbWlubWF4KHJ1bnRpbWUsCisJCQkJCSAg ICAgU05EUlZfUENNX0hXX1BBUkFNX1BFUklPRFMsCisJCQkJCSAgICAgMiwgMik7CiAJCWJyZWFr OwogCX0KIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9hZGF2ODB4LmMgYi9zb3VuZC9z b2MvY29kZWNzL2FkYXY4MHguYwppbmRleCBmOWYwODk0Li5iMjNkOTc5IDEwMDY0NAotLS0gYS9z b3VuZC9zb2MvY29kZWNzL2FkYXY4MHguYworKysgYi9zb3VuZC9zb2MvY29kZWNzL2FkYXY4MHgu YwpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBpbnQgYWRhdjgweF9wdXRfZGVlbXBoKHN0cnVj dCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2Rl YyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKIAlzdHJ1Y3QgYWRhdjgweCAqYWRhdjgw eCA9IHNuZF9zb2NfY29kZWNfZ2V0X2RydmRhdGEoY29kZWMpOwotCXVuc2lnbmVkIGludCBkZWVt cGggPSB1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdOworCXVuc2lnbmVkIGludCBk ZWVtcGggPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXTsKIAogCWlmIChkZWVtcGgg PiAxKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTMyMyw3ICszMjMsNyBAQCBzdGF0aWMgaW50IGFk YXY4MHhfZ2V0X2RlZW1waChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKIAlzdHJ1Y3Qg c25kX3NvY19jb2RlYyAqY29kZWMgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CiAJc3Ry dWN0IGFkYXY4MHggKmFkYXY4MHggPSBzbmRfc29jX2NvZGVjX2dldF9kcnZkYXRhKGNvZGVjKTsK IAotCXVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMF0gPSBhZGF2ODB4LT5kZWVtcGg7 CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBhZGF2ODB4LT5kZWVtcGg7CiAJ cmV0dXJuIDA7CiB9OwogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL2FrNDY0MS5jIGIv c291bmQvc29jL2NvZGVjcy9hazQ2NDEuYwppbmRleCA3NzgzODU4Li42MDg5MWY2IDEwMDY0NAot LS0gYS9zb3VuZC9zb2MvY29kZWNzL2FrNDY0MS5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvYWs0 NjQxLmMKQEAgLTc1LDcgKzc1LDcgQEAgc3RhdGljIGludCBhazQ2NDFfcHV0X2RlZW1waChzdHJ1 Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29k ZWMgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CiAJc3RydWN0IGFrNDY0MV9wcml2ICph azQ2NDEgPSBzbmRfc29jX2NvZGVjX2dldF9kcnZkYXRhKGNvZGVjKTsKLQlpbnQgZGVlbXBoID0g dWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXTsKKwlpbnQgZGVlbXBoID0gdWNvbnRy b2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CiAKIAlpZiAoZGVlbXBoID4gMSkKIAkJcmV0dXJu IC1FSU5WQUw7CkBAIC05MSw3ICs5MSw3IEBAIHN0YXRpYyBpbnQgYWs0NjQxX2dldF9kZWVtcGgo c3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNv ZGVjID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwogCXN0cnVjdCBhazQ2NDFfcHJpdiAq YWs0NjQxID0gc25kX3NvY19jb2RlY19nZXRfZHJ2ZGF0YShjb2RlYyk7CiAKLQl1Y29udHJvbC0+ dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdID0gYWs0NjQxLT5kZWVtcGg7CisJdWNvbnRyb2wtPnZh bHVlLmludGVnZXIudmFsdWVbMF0gPSBhazQ2NDEtPmRlZW1waDsKIAlyZXR1cm4gMDsKIH07CiAK ZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvY3M0MjcxLmMgYi9zb3VuZC9zb2MvY29kZWNz L2NzNDI3MS5jCmluZGV4IDY5ZmRlMTUuLjU2MWQ1ZTAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9j b2RlY3MvY3M0MjcxLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy9jczQyNzEuYwpAQCAtMjYxLDcg KzI2MSw3IEBAIHN0YXRpYyBpbnQgY3M0MjcxX2dldF9kZWVtcGgoc3RydWN0IHNuZF9rY29udHJv bCAqa2NvbnRyb2wsCiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc25kX2tjb250cm9s X2NoaXAoa2NvbnRyb2wpOwogCXN0cnVjdCBjczQyNzFfcHJpdmF0ZSAqY3M0MjcxID0gc25kX3Nv Y19jb2RlY19nZXRfZHJ2ZGF0YShjb2RlYyk7CiAKLQl1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRl ZC5pdGVtWzBdID0gY3M0MjcxLT5kZWVtcGg7CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFs dWVbMF0gPSBjczQyNzEtPmRlZW1waDsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjcxLDcgKzI3MSw3 IEBAIHN0YXRpYyBpbnQgY3M0MjcxX3B1dF9kZWVtcGgoc3RydWN0IHNuZF9rY29udHJvbCAqa2Nv bnRyb2wsCiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc25kX2tjb250cm9sX2NoaXAo a2NvbnRyb2wpOwogCXN0cnVjdCBjczQyNzFfcHJpdmF0ZSAqY3M0MjcxID0gc25kX3NvY19jb2Rl Y19nZXRfZHJ2ZGF0YShjb2RlYyk7CiAKLQljczQyNzEtPmRlZW1waCA9IHVjb250cm9sLT52YWx1 ZS5lbnVtZXJhdGVkLml0ZW1bMF07CisJY3M0MjcxLT5kZWVtcGggPSB1Y29udHJvbC0+dmFsdWUu aW50ZWdlci52YWx1ZVswXTsKIAlyZXR1cm4gY3M0MjcxX3NldF9kZWVtcGgoY29kZWMpOwogfQog CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3NndGw1MDAwLmMgYi9zb3VuZC9zb2MvY29k ZWNzL3NndGw1MDAwLmMKaW5kZXggYzhjZGY5MS4uZWQwN2Q4MyAxMDA2NDQKLS0tIGEvc291bmQv c29jL2NvZGVjcy9zZ3RsNTAwMC5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvc2d0bDUwMDAuYwpA QCAtMTA5OCwxMyArMTA5OCw3IEBAIHN0YXRpYyBpbnQgc2d0bDUwMDBfc2V0X3Bvd2VyX3JlZ3Mo c3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogCQkvKiBFbmFibGUgVkREQyBjaGFyZ2UgcHVt cCAqLwogCQlhbmFfcHdyIHw9IFNHVEw1MDAwX1ZERENfQ0hSR1BNUF9QT1dFUlVQOwogCX0gZWxz ZSBpZiAodmRkaW8gPj0gMzEwMCAmJiB2ZGRhID49IDMxMDApIHsKLQkJLyoKLQkJICogaWYgdmRk aW8gYW5kIHZkZGQgPiAzLjF2LAotCQkgKiBjaGFyZ2UgcHVtcCBzaG91bGQgYmUgY2xlYW4gYmVm b3JlIHNldCBhbmFfcHdyCi0JCSAqLwotCQlzbmRfc29jX3VwZGF0ZV9iaXRzKGNvZGVjLCBTR1RM NTAwMF9DSElQX0FOQV9QT1dFUiwKLQkJCQlTR1RMNTAwMF9WRERDX0NIUkdQTVBfUE9XRVJVUCwg MCk7Ci0KKwkJYW5hX3B3ciAmPSB+U0dUTDUwMDBfVkREQ19DSFJHUE1QX1BPV0VSVVA7CiAJCS8q IFZEREMgdXNlIFZERElPIHJhaWwgKi8KIAkJbHJlZ19jdHJsIHw9IFNHVEw1MDAwX1ZERENfQVNT Tl9PVlJEOwogCQlscmVnX2N0cmwgfD0gU0dUTDUwMDBfVkREQ19NQU5fQVNTTl9WRERJTyA8PApk aWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTIwMDAuYyBiL3NvdW5kL3NvYy9jb2RlY3Mv d20yMDAwLmMKaW5kZXggYmEwM2RjMi4uZDQyMTE0MCAxMDA2NDQKLS0tIGEvc291bmQvc29jL2Nv ZGVjcy93bTIwMDAuYworKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtMjAwMC5jCkBAIC02MTQsNyAr NjE0LDcgQEAgc3RhdGljIGludCB3bTIwMDBfYW5jX21vZGVfZ2V0KHN0cnVjdCBzbmRfa2NvbnRy b2wgKmtjb250cm9sLAogewogCXN0cnVjdCB3bTIwMDBfcHJpdiAqd20yMDAwID0gZGV2X2dldF9k cnZkYXRhKCZ3bTIwMDBfaTJjLT5kZXYpOwogCi0JdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQu aXRlbVswXSA9IHdtMjAwMC0+YW5jX2FjdGl2ZTsKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52 YWx1ZVswXSA9IHdtMjAwMC0+YW5jX2FjdGl2ZTsKIAogCXJldHVybiAwOwogfQpAQCAtNjIzLDcg KzYyMyw3IEBAIHN0YXRpYyBpbnQgd20yMDAwX2FuY19tb2RlX3B1dChzdHJ1Y3Qgc25kX2tjb250 cm9sICprY29udHJvbCwKIAkJCSAgICAgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29u dHJvbCkKIHsKIAlzdHJ1Y3Qgd20yMDAwX3ByaXYgKndtMjAwMCA9IGRldl9nZXRfZHJ2ZGF0YSgm d20yMDAwX2kyYy0+ZGV2KTsKLQlpbnQgYW5jX2FjdGl2ZSA9IHVjb250cm9sLT52YWx1ZS5lbnVt ZXJhdGVkLml0ZW1bMF07CisJaW50IGFuY19hY3RpdmUgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdl ci52YWx1ZVswXTsKIAogCWlmIChhbmNfYWN0aXZlID4gMSkKIAkJcmV0dXJuIC1FSU5WQUw7CkBA IC02MzgsNyArNjM4LDcgQEAgc3RhdGljIGludCB3bTIwMDBfc3BlYWtlcl9nZXQoc3RydWN0IHNu ZF9rY29udHJvbCAqa2NvbnRyb2wsCiB7CiAJc3RydWN0IHdtMjAwMF9wcml2ICp3bTIwMDAgPSBk ZXZfZ2V0X2RydmRhdGEoJndtMjAwMF9pMmMtPmRldik7CiAKLQl1Y29udHJvbC0+dmFsdWUuZW51 bWVyYXRlZC5pdGVtWzBdID0gd20yMDAwLT5zcGtfZW5hOworCXVjb250cm9sLT52YWx1ZS5pbnRl Z2VyLnZhbHVlWzBdID0gd20yMDAwLT5zcGtfZW5hOwogCiAJcmV0dXJuIDA7CiB9CkBAIC02NDcs NyArNjQ3LDcgQEAgc3RhdGljIGludCB3bTIwMDBfc3BlYWtlcl9wdXQoc3RydWN0IHNuZF9rY29u dHJvbCAqa2NvbnRyb2wsCiAJCQkgICAgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29u dHJvbCkKIHsKIAlzdHJ1Y3Qgd20yMDAwX3ByaXYgKndtMjAwMCA9IGRldl9nZXRfZHJ2ZGF0YSgm d20yMDAwX2kyYy0+ZGV2KTsKLQlpbnQgdmFsID0gdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQu aXRlbVswXTsKKwlpbnQgdmFsID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CiAK IAlpZiAodmFsID4gMSkKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mv Y29kZWNzL3dtODczMS5jIGIvc291bmQvc29jL2NvZGVjcy93bTg3MzEuYwppbmRleCA2Y2ZkNGY3 Li5kZmZlZGUxIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtODczMS5jCisrKyBiL3Nv dW5kL3NvYy9jb2RlY3Mvd204NzMxLmMKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgaW50IHdt ODczMV9nZXRfZGVlbXBoKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAogCXN0cnVjdCBz bmRfc29jX2NvZGVjICpjb2RlYyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKIAlzdHJ1 Y3Qgd204NzMxX3ByaXYgKndtODczMSA9IHNuZF9zb2NfY29kZWNfZ2V0X2RydmRhdGEoY29kZWMp OwogCi0JdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXSA9IHdtODczMS0+ZGVlbXBo OworCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gd204NzMxLT5kZWVtcGg7CiAK IAlyZXR1cm4gMDsKIH0KQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMgaW50IHdtODczMV9wdXRf ZGVlbXBoKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAogewogCXN0cnVjdCBzbmRfc29j X2NvZGVjICpjb2RlYyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKIAlzdHJ1Y3Qgd204 NzMxX3ByaXYgKndtODczMSA9IHNuZF9zb2NfY29kZWNfZ2V0X2RydmRhdGEoY29kZWMpOwotCWlu dCBkZWVtcGggPSB1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdOworCWludCBkZWVt cGggPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXTsKIAlpbnQgcmV0ID0gMDsKIAog CWlmIChkZWVtcGggPiAxKQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg5MDMuYyBi L3NvdW5kL3NvYy9jb2RlY3Mvd204OTAzLmMKaW5kZXggNDM1MmZmYi4uMTZjMGVjNSAxMDA2NDQK LS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg5MDMuYworKysgYi9zb3VuZC9zb2MvY29kZWNzL3dt ODkwMy5jCkBAIC00NjQsNyArNDY0LDcgQEAgc3RhdGljIGludCB3bTg5MDNfZ2V0X2RlZW1waChz dHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29k ZWMgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CiAJc3RydWN0IHdtODkwM19wcml2ICp3 bTg5MDMgPSBzbmRfc29jX2NvZGVjX2dldF9kcnZkYXRhKGNvZGVjKTsKIAotCXVjb250cm9sLT52 YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMF0gPSB3bTg5MDMtPmRlZW1waDsKKwl1Y29udHJvbC0+dmFs dWUuaW50ZWdlci52YWx1ZVswXSA9IHdtODkwMy0+ZGVlbXBoOwogCiAJcmV0dXJuIDA7CiB9CkBA IC00NzQsNyArNDc0LDcgQEAgc3RhdGljIGludCB3bTg5MDNfcHV0X2RlZW1waChzdHJ1Y3Qgc25k X2tjb250cm9sICprY29udHJvbCwKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBz bmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CiAJc3RydWN0IHdtODkwM19wcml2ICp3bTg5MDMg PSBzbmRfc29jX2NvZGVjX2dldF9kcnZkYXRhKGNvZGVjKTsKLQlpbnQgZGVlbXBoID0gdWNvbnRy b2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXTsKKwlpbnQgZGVlbXBoID0gdWNvbnRyb2wtPnZh bHVlLmludGVnZXIudmFsdWVbMF07CiAJaW50IHJldCA9IDA7CiAKIAlpZiAoZGVlbXBoID4gMSkK ZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204OTA0LmMgYi9zb3VuZC9zb2MvY29kZWNz L3dtODkwNC5jCmluZGV4IGZhZmI3NmYuLjc5YmZhNTIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9j b2RlY3Mvd204OTA0LmMKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg5MDQuYwpAQCAtODE0LDcg KzgxNCw3IEBAIHN0YXRpYyBpbnQgd204OTA0X2dldF9kZWVtcGgoc3RydWN0IHNuZF9rY29udHJv bCAqa2NvbnRyb2wsCiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc25kX2tjb250cm9s X2NoaXAoa2NvbnRyb2wpOwogCXN0cnVjdCB3bTg5MDRfcHJpdiAqd204OTA0ID0gc25kX3NvY19j b2RlY19nZXRfZHJ2ZGF0YShjb2RlYyk7CiAKLQl1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5p dGVtWzBdID0gd204OTA0LT5kZWVtcGg7CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVb MF0gPSB3bTg5MDQtPmRlZW1waDsKIAlyZXR1cm4gMDsKIH0KIApAQCAtODIzLDcgKzgyMyw3IEBA IHN0YXRpYyBpbnQgd204OTA0X3B1dF9kZWVtcGgoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRy b2wsCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc25kX2tjb250cm9sX2NoaXAo a2NvbnRyb2wpOwogCXN0cnVjdCB3bTg5MDRfcHJpdiAqd204OTA0ID0gc25kX3NvY19jb2RlY19n ZXRfZHJ2ZGF0YShjb2RlYyk7Ci0JaW50IGRlZW1waCA9IHVjb250cm9sLT52YWx1ZS5lbnVtZXJh dGVkLml0ZW1bMF07CisJaW50IGRlZW1waCA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVl WzBdOwogCiAJaWYgKGRlZW1waCA+IDEpCiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEv c291bmQvc29jL2NvZGVjcy93bTg5NTUuYyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTU1LmMKaW5k ZXggM2M3MTk4Ny4uNzdmZjFkNyAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg5NTUu YworKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtODk1NS5jCkBAIC0zNzcsNyArMzc3LDcgQEAgc3Rh dGljIGludCB3bTg5NTVfZ2V0X2RlZW1waChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwK IAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJv bCk7CiAJc3RydWN0IHdtODk1NV9wcml2ICp3bTg5NTUgPSBzbmRfc29jX2NvZGVjX2dldF9kcnZk YXRhKGNvZGVjKTsKIAotCXVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMF0gPSB3bTg5 NTUtPmRlZW1waDsKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IHdtODk1NS0+ ZGVlbXBoOwogCXJldHVybiAwOwogfQogCkBAIC0zODYsNyArMzg2LDcgQEAgc3RhdGljIGludCB3 bTg5NTVfcHV0X2RlZW1waChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKIHsKIAlzdHJ1 Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CiAJ c3RydWN0IHdtODk1NV9wcml2ICp3bTg5NTUgPSBzbmRfc29jX2NvZGVjX2dldF9kcnZkYXRhKGNv ZGVjKTsKLQlpbnQgZGVlbXBoID0gdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXTsK KwlpbnQgZGVlbXBoID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CiAKIAlpZiAo ZGVlbXBoID4gMSkKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29k ZWNzL3dtODk2MC5jIGIvc291bmQvc29jL2NvZGVjcy93bTg5NjAuYwppbmRleCAzNTUxNzA1Li5i MmFiZTkzIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtODk2MC5jCisrKyBiL3NvdW5k L3NvYy9jb2RlY3Mvd204OTYwLmMKQEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0aWMgaW50IHdtODk2 MF9nZXRfZGVlbXBoKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAogCXN0cnVjdCBzbmRf c29jX2NvZGVjICpjb2RlYyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKIAlzdHJ1Y3Qg d204OTYwX3ByaXYgKndtODk2MCA9IHNuZF9zb2NfY29kZWNfZ2V0X2RydmRhdGEoY29kZWMpOwog Ci0JdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXSA9IHdtODk2MC0+ZGVlbXBoOwor CXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gd204OTYwLT5kZWVtcGg7CiAJcmV0 dXJuIDA7CiB9CiAKQEAgLTE0NCw3ICsxNDQsNyBAQCBzdGF0aWMgaW50IHdtODk2MF9wdXRfZGVl bXBoKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAogewogCXN0cnVjdCBzbmRfc29jX2Nv ZGVjICpjb2RlYyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKIAlzdHJ1Y3Qgd204OTYw X3ByaXYgKndtODk2MCA9IHNuZF9zb2NfY29kZWNfZ2V0X2RydmRhdGEoY29kZWMpOwotCWludCBk ZWVtcGggPSB1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdOworCWludCBkZWVtcGgg PSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXTsKIAogCWlmIChkZWVtcGggPiAxKQog CQlyZXR1cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9vbWFwL29tYXAtcGNtLmMg Yi9zb3VuZC9zb2Mvb21hcC9vbWFwLXBjbS5jCmluZGV4IDZlZGU3ZGMuLjk1NjM3MjggMTAwNjQ0 Ci0tLSBhL3NvdW5kL3NvYy9vbWFwL29tYXAtcGNtLmMKKysrIGIvc291bmQvc29jL29tYXAvb21h cC1wY20uYwpAQCAtMzMzLDcgKzMzMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9vcHMgb21h cF9wY21fb3BzID0gewogCS5tbWFwCQk9IG9tYXBfcGNtX21tYXAsCiB9OwogCi1zdGF0aWMgdTY0 IG9tYXBfcGNtX2RtYW1hc2sgPSBETUFfQklUX01BU0soNjQpOworc3RhdGljIHU2NCBvbWFwX3Bj bV9kbWFtYXNrID0gRE1BX0JJVF9NQVNLKDMyKTsKIAogc3RhdGljIGludCBvbWFwX3BjbV9wcmVh bGxvY2F0ZV9kbWFfYnVmZmVyKHN0cnVjdCBzbmRfcGNtICpwY20sCiAJaW50IHN0cmVhbSkKQEAg LTM4NSw3ICszODUsNyBAQCBzdGF0aWMgaW50IG9tYXBfcGNtX25ldyhzdHJ1Y3Qgc25kX3NvY19w Y21fcnVudGltZSAqcnRkKQogCWlmICghY2FyZC0+ZGV2LT5kbWFfbWFzaykKIAkJY2FyZC0+ZGV2 LT5kbWFfbWFzayA9ICZvbWFwX3BjbV9kbWFtYXNrOwogCWlmICghY2FyZC0+ZGV2LT5jb2hlcmVu dF9kbWFfbWFzaykKLQkJY2FyZC0+ZGV2LT5jb2hlcmVudF9kbWFfbWFzayA9IERNQV9CSVRfTUFT Syg2NCk7CisJCWNhcmQtPmRldi0+Y29oZXJlbnRfZG1hX21hc2sgPSBETUFfQklUX01BU0soMzIp OwogCiAJaWYgKGRhaS0+ZHJpdmVyLT5wbGF5YmFjay5jaGFubmVsc19taW4pIHsKIAkJcmV0ID0g b21hcF9wY21fcHJlYWxsb2NhdGVfZG1hX2J1ZmZlcihwY20sCmRpZmYgLS1naXQgYS9zb3VuZC91 c2IvbWl4ZXJfcXVpcmtzLmMgYi9zb3VuZC91c2IvbWl4ZXJfcXVpcmtzLmMKaW5kZXggZmI5NTA2 OS4uMDQwZDEwMSAxMDA2NDQKLS0tIGEvc291bmQvdXNiL21peGVyX3F1aXJrcy5jCisrKyBiL3Nv dW5kL3VzYi9taXhlcl9xdWlya3MuYwpAQCAtNjQsNiArNjQsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHJjX2NvbmZpZyB7CiAJeyBVU0JfSUQoMHgwNDFlLCAweDMwNDApLCAyLCAyLCA2LCA2LCAg MiwgIDB4NmU5MSB9LCAvKiBMaXZlISAyNC1iaXQgKi8KIAl7IFVTQl9JRCgweDA0MWUsIDB4MzA0 MiksIDAsIDEsIDEsIDEsICAxLCAgMHgwMDBkIH0sIC8qIFVzYiBYLUZpIFM1MSAqLwogCXsgVVNC X0lEKDB4MDQxZSwgMHgzMGRmKSwgMCwgMSwgMSwgMSwgIDEsICAweDAwMGQgfSwgLyogVXNiIFgt RmkgUzUxIFBybyAqLworCXsgVVNCX0lEKDB4MDQxZSwgMHgzMjM3KSwgMCwgMSwgMSwgMSwgIDEs ICAweDAwMGQgfSwgLyogVXNiIFgtRmkgUzUxIFBybyAqLwogCXsgVVNCX0lEKDB4MDQxZSwgMHgz MDQ4KSwgMiwgMiwgNiwgNiwgIDIsICAweDZlOTEgfSwgLyogVG9zaGliYSBTQjA1MDAgKi8KIH07 CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi9xdWlya3MtdGFibGUuaCBiL3NvdW5kL3VzYi9xdWly a3MtdGFibGUuaAppbmRleCAyYWFjYjk2Li5iMzhkZGUwIDEwMDY0NAotLS0gYS9zb3VuZC91c2Iv cXVpcmtzLXRhYmxlLmgKKysrIGIvc291bmQvdXNiL3F1aXJrcy10YWJsZS5oCkBAIC0xODAzLDYg KzE4MDMsMzYgQEAgWUFNQUhBX0RFVklDRSgweDcwMTAsICJVQjk5IiksCiAJCX0KIAl9CiB9LAor eworCVVTQl9ERVZJQ0UoMHgwNTgyLCAweDAxNTkpLAorCS5kcml2ZXJfaW5mbyA9ICh1bnNpZ25l ZCBsb25nKSAmIChjb25zdCBzdHJ1Y3Qgc25kX3VzYl9hdWRpb19xdWlyaykgeworCQkvKiAudmVu ZG9yX25hbWUgPSAiUm9sYW5kIiwgKi8KKwkJLyogLnByb2R1Y3RfbmFtZSA9ICJVQS0yMiIsICov CisJCS5pZm51bSA9IFFVSVJLX0FOWV9JTlRFUkZBQ0UsCisJCS50eXBlID0gUVVJUktfQ09NUE9T SVRFLAorCQkuZGF0YSA9IChjb25zdCBzdHJ1Y3Qgc25kX3VzYl9hdWRpb19xdWlya1tdKSB7CisJ CQl7CisJCQkJLmlmbnVtID0gMCwKKwkJCQkudHlwZSA9IFFVSVJLX0FVRElPX1NUQU5EQVJEX0lO VEVSRkFDRQorCQkJfSwKKwkJCXsKKwkJCQkuaWZudW0gPSAxLAorCQkJCS50eXBlID0gUVVJUktf QVVESU9fU1RBTkRBUkRfSU5URVJGQUNFCisJCQl9LAorCQkJeworCQkJCS5pZm51bSA9IDIsCisJ CQkJLnR5cGUgPSBRVUlSS19NSURJX0ZJWEVEX0VORFBPSU5ULAorCQkJCS5kYXRhID0gJiAoY29u c3Qgc3RydWN0IHNuZF91c2JfbWlkaV9lbmRwb2ludF9pbmZvKSB7CisJCQkJCS5vdXRfY2FibGVz ID0gMHgwMDAxLAorCQkJCQkuaW5fY2FibGVzID0gMHgwMDAxCisJCQkJfQorCQkJfSwKKwkJCXsK KwkJCQkuaWZudW0gPSAtMQorCQkJfQorCQl9CisJfQorfSwKIAogLyogR3VpbGxlbW90IGRldmlj ZXMgKi8KIHsK --=-lZgYlQ2DPCMnwQnnS7lo-- --=-SeZg7xgXmeu1Kmpg05aQ Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIVAwUAVUjKc+e/yOyVhhEJAQoO9RAAu80QbGLqNGmAnhXnZDaD8wgEw2JGF3RJ 8RlA8nixigPqF2Ln48ws/9hpqfBc4Xldu8YqwRavb0ugqSaUk910n2pw5dLaX4Y7 MDcf2YgJSHdASmM95EFPLbt6/IMB9IDcSQfUCO6nYRpdxHKW7JiSPG05gPt+NxVE OAJqZEFe8jOdDI1V7jcrSrXmU5KAEm19Frt2/6n3dgFP6NFTIWm38d2e7jUVi6lm wT/Cog1YptlsuYq4LXTc4+5HVF0Gy1w6rL09u9puuG6dVha6qALHAZTcx34RWdGY kOVgBIRVHSpQRxOgQ+SZJnt9T+LHztmSWXwhGDDbdC5JV5IpjvJnbHxHmh1SWU7i PFLHXpJUSKnPR6uLb5hfNp9S6cXRAYsFayjH6nGj2mWboEW+Voai13e+v+Nkuu5t 0AXAcliplt7c3rQWqhaIAVtoTebBuSikHBCsk2dKe7ykfc48r8x8dkYra8uX51J1 MBvO3TJguRVHofrQA4W//kJBYO7lxhwsF7WILWdRYOFsvltxp4zQyxal4yuIOjhp FCULM4T1iCaV2hRHCQhFSnnMFwfQ/gkkvuf6u/e5DFEEecS/D/SMCAZngJlq7wsC 4K4j1lNiDqHCA/QE1i88Yjs6waXO9cRQ94VetqvopKCf2bvS88NjW0JIgUfM4K8/ y4x7PmA2oiI= =tsYK -----END PGP SIGNATURE----- --=-SeZg7xgXmeu1Kmpg05aQ-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/