From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933393AbcBIAWm (ORCPT ); Mon, 8 Feb 2016 19:22:42 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:60291 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965174AbcBIAVX (ORCPT ); Mon, 8 Feb 2016 19:21:23 -0500 Message-ID: <1454977265.2654.2.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 00/87] 3.2.77-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: torvalds@linux-foundation.org, Guenter Roeck , Phil Jensen , akpm@linux-foundation.org Date: Tue, 09 Feb 2016 00:21:05 +0000 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-25Cyi/y4Sp2UIQC/Yx/Q" X-Mailer: Evolution 3.18.3-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 2a02:8011:400e:2:a11:96ff:fe28:a980 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 --=-25Cyi/y4Sp2UIQC/Yx/Q Content-Type: multipart/mixed; boundary="=-658X1BUSnp4BbfhOkKY7" --=-658X1BUSnp4BbfhOkKY7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined diff for 3.2.77-rc1 relative to 3.2.76. Ben. --=20 Ben Hutchings Design a system any fool can use, and only a fool will want to use it. --=-658X1BUSnp4BbfhOkKY7 Content-Disposition: attachment; filename="linux-3.2.77-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.77-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggMjg5Y2ExNGEyMGQ2Li45ZDFi ODdkYzcxYmEgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC0xLDcgKzEs NyBAQAogVkVSU0lPTiA9IDMKIFBBVENITEVWRUwgPSAyCi1TVUJMRVZFTCA9IDc2Ci1FWFRSQVZF UlNJT04gPQorU1VCTEVWRUwgPSA3NworRVhUUkFWRVJTSU9OID0gLXJjMQogTkFNRSA9IFNhYmVy LXRvb3RoZWQgU3F1aXJyZWwKIAogIyAqRE9DVU1FTlRBVElPTioKZGlmZiAtLWdpdCBhL2FyY2gv bTMyci9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvbTMyci9rZXJuZWwvc2V0dXAuYwppbmRleCAwMzky MTEyYTVkNzAuLmE1ZWNlZjcxODhiYSAxMDA2NDQKLS0tIGEvYXJjaC9tMzJyL2tlcm5lbC9zZXR1 cC5jCisrKyBiL2FyY2gvbTMyci9rZXJuZWwvc2V0dXAuYwpAQCAtODEsNyArODEsMTAgQEAgc3Rh dGljIHN0cnVjdCByZXNvdXJjZSBjb2RlX3Jlc291cmNlID0gewogfTsKIAogdW5zaWduZWQgbG9u ZyBtZW1vcnlfc3RhcnQ7CitFWFBPUlRfU1lNQk9MKG1lbW9yeV9zdGFydCk7CisKIHVuc2lnbmVk IGxvbmcgbWVtb3J5X2VuZDsKK0VYUE9SVF9TWU1CT0wobWVtb3J5X2VuZCk7CiAKIHZvaWQgX19p bml0IHNldHVwX2FyY2goY2hhciAqKik7CiBpbnQgZ2V0X2NwdWluZm8oY2hhciAqKTsKZGlmZiAt LWdpdCBhL2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL3NpZ2luZm8uaCBiL2FyY2gvcGFyaXNjL2lu Y2x1ZGUvYXNtL3NpZ2luZm8uaAppbmRleCBkNzAzNDcyOGYzNzcuLjFjNzU1NjVkOTg0YiAxMDA2 NDQKLS0tIGEvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vc2lnaW5mby5oCisrKyBiL2FyY2gvcGFy aXNjL2luY2x1ZGUvYXNtL3NpZ2luZm8uaApAQCAtMSw2ICsxLDEwIEBACiAjaWZuZGVmIF9QQVJJ U0NfU0lHSU5GT19ICiAjZGVmaW5lIF9QQVJJU0NfU0lHSU5GT19ICiAKKyNpZiBkZWZpbmVkKF9f TFA2NF9fKQorI2RlZmluZSBfX0FSQ0hfU0lfUFJFQU1CTEVfU0laRSAgICg0ICogc2l6ZW9mKGlu dCkpCisjZW5kaWYKKwogI2luY2x1ZGUgPGFzbS1nZW5lcmljL3NpZ2luZm8uaD4KIAogI3VuZGVm IE5TSUdUUkFQCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3luY2guaCBi L2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zeW5jaC5oCmluZGV4IGU2ODJhNzE0M2VkYi4uYzUw ODY4NjgxZjllIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3luY2guaAor KysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3luY2guaApAQCAtNDQsNyArNDQsNyBAQCBz dGF0aWMgaW5saW5lIHZvaWQgaXN5bmModm9pZCkKIAlNQUtFX0xXU1lOQ19TRUNUSU9OX0VOVFJZ KDk3LCBfX2x3c3luY19maXh1cCk7CiAjZGVmaW5lIFBQQ19BQ1FVSVJFX0JBUlJJRVIJICJcbiIg c3RyaW5naWZ5X2luX2MoX19QUENfQUNRVUlSRV9CQVJSSUVSKQogI2RlZmluZSBQUENfUkVMRUFT RV9CQVJSSUVSCSBzdHJpbmdpZnlfaW5fYyhMV1NZTkMpICJcbiIKLSNkZWZpbmUgUFBDX0FUT01J Q19FTlRSWV9CQVJSSUVSICJcbiIgc3RyaW5naWZ5X2luX2MoTFdTWU5DKSAiXG4iCisjZGVmaW5l IFBQQ19BVE9NSUNfRU5UUllfQkFSUklFUiAiXG4iIHN0cmluZ2lmeV9pbl9jKHN5bmMpICJcbiIK ICNkZWZpbmUgUFBDX0FUT01JQ19FWElUX0JBUlJJRVIJICJcbiIgc3RyaW5naWZ5X2luX2Moc3lu YykgIlxuIgogI2Vsc2UKICNkZWZpbmUgUFBDX0FDUVVJUkVfQkFSUklFUgpkaWZmIC0tZ2l0IGEv YXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3N5c3RlbS5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUv YXNtL3N5c3RlbS5oCmluZGV4IGUzMGExM2QxZWU3Ni4uMTBkNWMzZTdmYzM3IDEwMDY0NAotLS0g YS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3lzdGVtLmgKKysrIGIvYXJjaC9wb3dlcnBjL2lu Y2x1ZGUvYXNtL3N5c3RlbS5oCkBAIC0yMzQsMTIgKzIzNCwxMiBAQCBfX3hjaGdfdTMyKHZvbGF0 aWxlIHZvaWQgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKQogCXVuc2lnbmVkIGxvbmcgcHJldjsKIAog CV9fYXNtX18gX192b2xhdGlsZV9fKAotCVBQQ19SRUxFQVNFX0JBUlJJRVIKKwlQUENfQVRPTUlD X0VOVFJZX0JBUlJJRVIKICIxOglsd2FyeAklMCwwLCUyIFxuIgogCVBQQzQwNV9FUlI3NygwLCUy KQogIglzdHdjeC4JJTMsMCwlMiBcblwKIAlibmUtCTFiIgotCVBQQ19BQ1FVSVJFX0JBUlJJRVIK KwlQUENfQVRPTUlDX0VYSVRfQkFSUklFUgogCTogIj0mciIgKHByZXYpLCAiK20iICgqKHZvbGF0 aWxlIHVuc2lnbmVkIGludCAqKXApCiAJOiAiciIgKHApLCAiciIgKHZhbCkKIAk6ICJjYyIsICJt ZW1vcnkiKTsKQEAgLTI3NywxMiArMjc3LDEyIEBAIF9feGNoZ191NjQodm9sYXRpbGUgdm9pZCAq cCwgdW5zaWduZWQgbG9uZyB2YWwpCiAJdW5zaWduZWQgbG9uZyBwcmV2OwogCiAJX19hc21fXyBf X3ZvbGF0aWxlX18oCi0JUFBDX1JFTEVBU0VfQkFSUklFUgorCVBQQ19BVE9NSUNfRU5UUllfQkFS UklFUgogIjE6CWxkYXJ4CSUwLDAsJTIgXG4iCiAJUFBDNDA1X0VSUjc3KDAsJTIpCiAiCXN0ZGN4 LgklMywwLCUyIFxuXAogCWJuZS0JMWIiCi0JUFBDX0FDUVVJUkVfQkFSUklFUgorCVBQQ19BVE9N SUNfRVhJVF9CQVJSSUVSCiAJOiAiPSZyIiAocHJldiksICIrbSIgKCoodm9sYXRpbGUgdW5zaWdu ZWQgbG9uZyAqKXApCiAJOiAiciIgKHApLCAiciIgKHZhbCkKIAk6ICJjYyIsICJtZW1vcnkiKTsK QEAgLTM2OCwxNCArMzY4LDE0IEBAIF9fY21weGNoZ191MzIodm9sYXRpbGUgdW5zaWduZWQgaW50 ICpwLCB1bnNpZ25lZCBsb25nIG9sZCwgdW5zaWduZWQgbG9uZyBuZXcpCiAJdW5zaWduZWQgaW50 IHByZXY7CiAKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCi0JUFBDX1JFTEVBU0VfQkFSUklFUgor CVBQQ19BVE9NSUNfRU5UUllfQkFSUklFUgogIjE6CWx3YXJ4CSUwLDAsJTIJCSMgX19jbXB4Y2hn X3UzMlxuXAogCWNtcHcJMCwlMCwlM1xuXAogCWJuZS0JMmZcbiIKIAlQUEM0MDVfRVJSNzcoMCwl MikKICIJc3R3Y3guCSU0LDAsJTJcblwKIAlibmUtCTFiIgotCVBQQ19BQ1FVSVJFX0JBUlJJRVIK KwlQUENfQVRPTUlDX0VYSVRfQkFSUklFUgogCSJcblwKIDI6IgogCTogIj0mciIgKHByZXYpLCAi K20iICgqcCkKQEAgLTQxNCwxMyArNDE0LDEzIEBAIF9fY21weGNoZ191NjQodm9sYXRpbGUgdW5z aWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyBvbGQsIHVuc2lnbmVkIGxvbmcgbmV3KQogCXVu c2lnbmVkIGxvbmcgcHJldjsKIAogCV9fYXNtX18gX192b2xhdGlsZV9fICgKLQlQUENfUkVMRUFT RV9CQVJSSUVSCisJUFBDX0FUT01JQ19FTlRSWV9CQVJSSUVSCiAiMToJbGRhcngJJTAsMCwlMgkJ IyBfX2NtcHhjaGdfdTY0XG5cCiAJY21wZAkwLCUwLCUzXG5cCiAJYm5lLQkyZlxuXAogCXN0ZGN4 LgklNCwwLCUyXG5cCiAJYm5lLQkxYiIKLQlQUENfQUNRVUlSRV9CQVJSSUVSCisJUFBDX0FUT01J Q19FWElUX0JBUlJJRVIKIAkiXG5cCiAyOiIKIAk6ICI9JnIiIChwcmV2KSwgIittIiAoKnApCmRp ZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC9zeXNfc3BhcmNfNjQuYyBiL2FyY2gvc3BhcmMv a2VybmVsL3N5c19zcGFyY182NC5jCmluZGV4IDBmZjY4MmQyODRlMC4uYTA2MmZlOWE0ZTQ5IDEw MDY0NAotLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC9zeXNfc3BhcmNfNjQuYworKysgYi9hcmNoL3Nw YXJjL2tlcm5lbC9zeXNfc3BhcmNfNjQuYwpAQCAtNTE3LDcgKzUxNyw3IEBAIG91dDoKIAogU1lT Q0FMTF9ERUZJTkUxKHNwYXJjNjRfcGVyc29uYWxpdHksIHVuc2lnbmVkIGxvbmcsIHBlcnNvbmFs aXR5KQogewotCWludCByZXQ7CisJbG9uZyByZXQ7CiAKIAlpZiAocGVyc29uYWxpdHkoY3VycmVu dC0+cGVyc29uYWxpdHkpID09IFBFUl9MSU5VWDMyICYmCiAJICAgIHBlcnNvbmFsaXR5KHBlcnNv bmFsaXR5KSA9PSBQRVJfTElOVVgpCmRpZmYgLS1naXQgYS9hcmNoL3VtL29zLUxpbnV4L3N0YXJ0 X3VwLmMgYi9hcmNoL3VtL29zLUxpbnV4L3N0YXJ0X3VwLmMKaW5kZXggMmY1M2I4OTJmZDgwLi5j ODk5M2RmYmU4ZTEgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvc3RhcnRfdXAuYworKysg Yi9hcmNoL3VtL29zLUxpbnV4L3N0YXJ0X3VwLmMKQEAgLTk1LDYgKzk1LDggQEAgc3RhdGljIGlu dCBzdGFydF9wdHJhY2VkX2NoaWxkKHZvaWQpCiB7CiAJaW50IHBpZCwgbiwgc3RhdHVzOwogCisJ ZmZsdXNoKHN0ZG91dCk7CisKIAlwaWQgPSBmb3JrKCk7CiAJaWYgKHBpZCA9PSAwKQogCQlwdHJh Y2VfY2hpbGQoKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Jvb3QuaCBiL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL2Jvb3QuaAppbmRleCA1ZTFhMmVlZjNlN2MuLjYwZDJmODFmN2M1 ZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vYm9vdC5oCisrKyBiL2FyY2gveDg2 L2luY2x1ZGUvYXNtL2Jvb3QuaApAQCAtMzIsNyArMzIsNyBAQAogI2RlZmluZSBCT09UX0hFQVBf U0laRSAgICAgICAgICAgICAweDQwMDAwMAogI2Vsc2UgLyogIUNPTkZJR19LRVJORUxfQlpJUDIg Ki8KIAotI2RlZmluZSBCT09UX0hFQVBfU0laRQkweDgwMDAKKyNkZWZpbmUgQk9PVF9IRUFQX1NJ WkUJMHgxMDAwMAogCiAjZW5kaWYgLyogIUNPTkZJR19LRVJORUxfQlpJUDIgKi8KIApkaWZmIC0t Z2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vbW11X2NvbnRleHQuaCBiL2FyY2gveDg2L2luY2x1 ZGUvYXNtL21tdV9jb250ZXh0LmgKaW5kZXggY2U0ZWE5NGZjNGJlLi5iYWJiY2QxOGE3YTcgMTAw NjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdV9jb250ZXh0LmgKKysrIGIvYXJjaC94 ODYvaW5jbHVkZS9hc20vbW11X2NvbnRleHQuaApAQCAtODcsNyArODcsMzQgQEAgc3RhdGljIGlu bGluZSB2b2lkIHN3aXRjaF9tbShzdHJ1Y3QgbW1fc3RydWN0ICpwcmV2LCBzdHJ1Y3QgbW1fc3Ry dWN0ICpuZXh0LAogI2VuZGlmCiAJCWNwdW1hc2tfc2V0X2NwdShjcHUsIG1tX2NwdW1hc2sobmV4 dCkpOwogCi0JCS8qIFJlLWxvYWQgcGFnZSB0YWJsZXMgKi8KKwkJLyoKKwkJICogUmUtbG9hZCBw YWdlIHRhYmxlcy4KKwkJICoKKwkJICogVGhpcyBsb2dpYyBoYXMgYW4gb3JkZXJpbmcgY29uc3Ry YWludDoKKwkJICoKKwkJICogIENQVSAwOiBXcml0ZSB0byBhIFBURSBmb3IgJ25leHQnCisJCSAq ICBDUFUgMDogbG9hZCBiaXQgMSBpbiBtbV9jcHVtYXNrLiAgaWYgbm9uemVybywgc2VuZCBJUEku CisJCSAqICBDUFUgMTogc2V0IGJpdCAxIGluIG5leHQncyBtbV9jcHVtYXNrCisJCSAqICBDUFUg MTogbG9hZCBmcm9tIHRoZSBQVEUgdGhhdCBDUFUgMCB3cml0ZXMgKGltcGxpY2l0KQorCQkgKgor CQkgKiBXZSBuZWVkIHRvIHByZXZlbnQgYW4gb3V0Y29tZSBpbiB3aGljaCBDUFUgMSBvYnNlcnZl cworCQkgKiB0aGUgbmV3IFBURSB2YWx1ZSBhbmQgQ1BVIDAgb2JzZXJ2ZXMgYml0IDEgY2xlYXIg aW4KKwkJICogbW1fY3B1bWFzay4gIChJZiB0aGF0IG9jY3VycywgdGhlbiB0aGUgSVBJIHdpbGwg bmV2ZXIKKwkJICogYmUgc2VudCwgYW5kIENQVSAwJ3MgVExCIHdpbGwgY29udGFpbiBhIHN0YWxl IGVudHJ5LikKKwkJICoKKwkJICogVGhlIGJhZCBvdXRjb21lIGNhbiBvY2N1ciBpZiBlaXRoZXIg Q1BVJ3MgbG9hZCBpcworCQkgKiByZW9yZGVyZWQgYmVmb3JlIHRoYXQgQ1BVJ3Mgc3RvcmUsIHNv IGJvdGggQ1BVcyBtdXN0CisJCSAqIGV4ZWN1dGUgZnVsbCBiYXJyaWVycyB0byBwcmV2ZW50IHRo aXMgZnJvbSBoYXBwZW5pbmcuCisJCSAqCisJCSAqIFRodXMsIHN3aXRjaF9tbSBuZWVkcyBhIGZ1 bGwgYmFycmllciBiZXR3ZWVuIHRoZQorCQkgKiBzdG9yZSB0byBtbV9jcHVtYXNrIGFuZCBhbnkg b3BlcmF0aW9uIHRoYXQgY291bGQgbG9hZAorCQkgKiBmcm9tIG5leHQtPnBnZC4gIFRMQiBmaWxs cyBhcmUgc3BlY2lhbCBhbmQgY2FuIGhhcHBlbgorCQkgKiBkdWUgdG8gaW5zdHJ1Y3Rpb24gZmV0 Y2hlcyBvciBmb3Igbm8gcmVhc29uIGF0IGFsbCwKKwkJICogYW5kIG5laXRoZXIgTE9DSyBub3Ig TUZFTkNFIG9yZGVycyB0aGVtLgorCQkgKiBGb3J0dW5hdGVseSwgbG9hZF9jcjMoKSBpcyBzZXJp YWxpemluZyBhbmQgZ2l2ZXMgdGhlCisJCSAqIG9yZGVyaW5nIGd1YXJhbnRlZSB3ZSBuZWVkLgor CQkgKgorCQkgKi8KIAkJbG9hZF9jcjMobmV4dC0+cGdkKTsKIAogCQkvKiBzdG9wIGZsdXNoIGlw aXMgZm9yIHRoZSBwcmV2aW91cyBtbSAqLwpAQCAtMTA4LDYgKzEzNSw5IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBzd2l0Y2hfbW0oc3RydWN0IG1tX3N0cnVjdCAqcHJldiwgc3RydWN0IG1tX3N0cnVj dCAqbmV4dCwKIAkJCS8qIFdlIHdlcmUgaW4gbGF6eSB0bGIgbW9kZSBhbmQgbGVhdmVfbW0gZGlz YWJsZWQKIAkJCSAqIHRsYiBmbHVzaCBJUEkgZGVsaXZlcnkuIFdlIG11c3QgcmVsb2FkIENSMwog CQkJICogdG8gbWFrZSBzdXJlIHRvIHVzZSBubyBmcmVlZCBwYWdlIHRhYmxlcy4KKwkJCSAqCisJ CQkgKiBBcyBhYm92ZSwgbG9hZF9jcjMoKSBpcyBzZXJpYWxpemluZyBhbmQgb3JkZXJzIFRMQgor CQkJICogZmlsbHMgd2l0aCByZXNwZWN0IHRvIHRoZSBtbV9jcHVtYXNrIHdyaXRlLgogCQkJICov CiAJCQlsb2FkX2NyMyhuZXh0LT5wZ2QpOwogCQkJbG9hZF9tbV9sZHQobmV4dCk7CmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzc182NC5jIGIvYXJjaC94ODYva2VybmVsL3Byb2Nl c3NfNjQuYwppbmRleCBhYWFiMzJlOGEwNzguLmVlMmU3MGM5ZmRiZiAxMDA2NDQKLS0tIGEvYXJj aC94ODYva2VybmVsL3Byb2Nlc3NfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzc182 NC5jCkBAIC0yMjEsNyArMjIxLDcgQEAgdm9pZCByZWxlYXNlX3RocmVhZChzdHJ1Y3QgdGFza19z dHJ1Y3QgKmRlYWRfdGFzaykKIAkJaWYgKGRlYWRfdGFzay0+bW0tPmNvbnRleHQubGR0KSB7CiAJ CQlwcmludGsoIldBUk5JTkc6IGRlYWQgcHJvY2VzcyAlOHMgc3RpbGwgaGFzIExEVD8gPCVwLyVk PlxuIiwKIAkJCQkJZGVhZF90YXNrLT5jb21tLAotCQkJCQlkZWFkX3Rhc2stPm1tLT5jb250ZXh0 LmxkdCwKKwkJCQkJZGVhZF90YXNrLT5tbS0+Y29udGV4dC5sZHQtPmVudHJpZXMsCiAJCQkJCWRl YWRfdGFzay0+bW0tPmNvbnRleHQubGR0LT5zaXplKTsKIAkJCUJVRygpOwogCQl9CmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9rZXJuZWwvcmVib290LmMgYi9hcmNoL3g4Ni9rZXJuZWwvcmVib290LmMK aW5kZXggNzg4NDJjZWQ1ZjY2Li5hMzRiZGRkZWNhODUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tl cm5lbC9yZWJvb3QuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcmVib290LmMKQEAgLTQxMiw2ICs0 MTIsMTQgQEAgc3RhdGljIHN0cnVjdCBkbWlfc3lzdGVtX2lkIF9faW5pdGRhdGEgcGNpX3JlYm9v dF9kbWlfdGFibGVbXSA9IHsKIAkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiaU1hYzks MSIpLAogCQl9LAogCX0sCisJewkvKiBIYW5kbGUgcHJvYmxlbXMgd2l0aCByZWJvb3Rpbmcgb24g dGhlIGlNYWMxMCwxLiAqLworCQkuY2FsbGJhY2sgPSBzZXRfcGNpX3JlYm9vdCwKKwkJLmlkZW50 ID0gIkFwcGxlIGlNYWMxMCwxIiwKKwkJLm1hdGNoZXMgPSB7CisJCSAgICBETUlfTUFUQ0goRE1J X1NZU19WRU5ET1IsICJBcHBsZSBJbmMuIiksCisJCSAgICBETUlfTUFUQ0goRE1JX1BST0RVQ1Rf TkFNRSwgImlNYWMxMCwxIiksCisJCX0sCisJfSwKIAkvKiBBU1JvY2sgKi8KIAl7CS8qIEhhbmRs ZSBwcm9ibGVtcyB3aXRoIHJlYm9vdGluZyBvbiBBU1JvY2sgUTE5MDBEQy1JVFggKi8KIAkJLmNh bGxiYWNrID0gc2V0X3BjaV9yZWJvb3QsCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdHJhY2Uu aCBiL2FyY2gveDg2L2t2bS90cmFjZS5oCmluZGV4IDcyMTY5MTZhNTIyZS4uYTM5ZTBlMmZhZjBl IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vdHJhY2UuaAorKysgYi9hcmNoL3g4Ni9rdm0vdHJh Y2UuaApAQCAtMzI2LDcgKzMyNiw3IEBAIFRSQUNFX0VWRU5UKGt2bV9pbmpfdmlycSwKICNkZWZp bmUga3ZtX3RyYWNlX3N5bV9leGMJCQkJCQlcCiAJRVhTKERFKSwgRVhTKERCKSwgRVhTKEJQKSwg RVhTKE9GKSwgRVhTKEJSKSwgRVhTKFVEKSwgRVhTKE5NKSwJXAogCUVYUyhERiksIEVYUyhUUyks IEVYUyhOUCksIEVYUyhTUyksIEVYUyhHUCksIEVYUyhQRiksCQlcCi0JRVhTKE1GKSwgRVhTKE1D KQorCUVYUyhNRiksIEVYUyhBQyksIEVYUyhNQykKIAogLyoKICAqIFRyYWNlcG9pbnQgZm9yIGt2 bSBpbnRlcnJ1cHQgaW5qZWN0aW9uOgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIv YXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IDgwYzZkNjgzNTgwNS4uZDQ3ZDE1MzdhZmM0IDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmMKKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jCkBAIC04 MzQsNyArODM0LDggQEAgc3RhdGljIHUzMiBtc3JzX3RvX3NhdmVbXSA9IHsKICNpZmRlZiBDT05G SUdfWDg2XzY0CiAJTVNSX0NTVEFSLCBNU1JfS0VSTkVMX0dTX0JBU0UsIE1TUl9TWVNDQUxMX01B U0ssIE1TUl9MU1RBUiwKICNlbmRpZgotCU1TUl9JQTMyX1RTQywgTVNSX0lBMzJfQ1JfUEFULCBN U1JfVk1fSFNBVkVfUEEKKwlNU1JfSUEzMl9UU0MsIE1TUl9JQTMyX0NSX1BBVCwgTVNSX1ZNX0hT QVZFX1BBLAorCU1TUl9UU0NfQVVYLAogfTsKIAogc3RhdGljIHVuc2lnbmVkIG51bV9tc3JzX3Rv X3NhdmU7CkBAIC0zODY3LDYgKzM4NjgsMjAgQEAgc3RhdGljIHZvaWQga3ZtX2luaXRfbXNyX2xp c3Qodm9pZCkKIAlmb3IgKGkgPSBqID0gS1ZNX1NBVkVfTVNSU19CRUdJTjsgaSA8IEFSUkFZX1NJ WkUobXNyc190b19zYXZlKTsgaSsrKSB7CiAJCWlmIChyZG1zcl9zYWZlKG1zcnNfdG9fc2F2ZVtp XSwgJmR1bW15WzBdLCAmZHVtbXlbMV0pIDwgMCkKIAkJCWNvbnRpbnVlOworCisJCS8qCisJCSAq IEV2ZW4gTVNScyB0aGF0IGFyZSB2YWxpZCBpbiB0aGUgaG9zdCBtYXkgbm90IGJlIGV4cG9zZWQK KwkJICogdG8gdGhlIGd1ZXN0cyBpbiBzb21lIGNhc2VzLgorCQkgKi8KKwkJc3dpdGNoIChtc3Jz X3RvX3NhdmVbaV0pIHsKKwkJY2FzZSBNU1JfVFNDX0FVWDoKKwkJCWlmICgha3ZtX3g4Nl9vcHMt PnJkdHNjcF9zdXBwb3J0ZWQoKSkKKwkJCQljb250aW51ZTsKKwkJCWJyZWFrOworCQlkZWZhdWx0 OgorCQkJYnJlYWs7CisJCX0KKwogCQlpZiAoaiA8IGkpCiAJCQltc3JzX3RvX3NhdmVbal0gPSBt c3JzX3RvX3NhdmVbaV07CiAJCWorKzsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3RsYi5jIGIv YXJjaC94ODYvbW0vdGxiLmMKaW5kZXggZDZjMDQxOGMzZTQ3Li41NTAzNGExNWYxM2MgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L21tL3RsYi5jCisrKyBiL2FyY2gveDg2L21tL3RsYi5jCkBAIC0yNzgs NyArMjc4LDkgQEAgdm9pZCBmbHVzaF90bGJfY3VycmVudF90YXNrKHZvaWQpCiAKIAlwcmVlbXB0 X2Rpc2FibGUoKTsKIAorCS8qIFRoaXMgaXMgYW4gaW1wbGljaXQgZnVsbCBiYXJyaWVyIHRoYXQg c3luY2hyb25pemVzIHdpdGggc3dpdGNoX21tLiAqLwogCWxvY2FsX2ZsdXNoX3RsYigpOworCiAJ aWYgKGNwdW1hc2tfYW55X2J1dChtbV9jcHVtYXNrKG1tKSwgc21wX3Byb2Nlc3Nvcl9pZCgpKSA8 IG5yX2NwdV9pZHMpCiAJCWZsdXNoX3RsYl9vdGhlcnMobW1fY3B1bWFzayhtbSksIG1tLCBUTEJf RkxVU0hfQUxMKTsKIAlwcmVlbXB0X2VuYWJsZSgpOwpAQCAtMjg5LDEwICsyOTEsMjAgQEAgdm9p ZCBmbHVzaF90bGJfbW0oc3RydWN0IG1tX3N0cnVjdCAqbW0pCiAJcHJlZW1wdF9kaXNhYmxlKCk7 CiAKIAlpZiAoY3VycmVudC0+YWN0aXZlX21tID09IG1tKSB7Ci0JCWlmIChjdXJyZW50LT5tbSkK KwkJaWYgKGN1cnJlbnQtPm1tKSB7CisJCQkvKgorCQkJICogVGhpcyBpcyBhbiBpbXBsaWNpdCBm dWxsIGJhcnJpZXIgKE1PViB0byBDUikgdGhhdAorCQkJICogc3luY2hyb25pemVzIHdpdGggc3dp dGNoX21tLgorCQkJICovCiAJCQlsb2NhbF9mbHVzaF90bGIoKTsKLQkJZWxzZQorCQl9IGVsc2Ug ewogCQkJbGVhdmVfbW0oc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKwkJCS8qIFN5bmNocm9uaXplIHdp dGggc3dpdGNoX21tLiAqLworCQkJc21wX21iKCk7CisJCX0KKwl9IGVsc2UgeworCQkvKiBTeW5j aHJvbml6ZSB3aXRoIHN3aXRjaF9tbS4gKi8KKwkJc21wX21iKCk7CiAJfQogCWlmIChjcHVtYXNr X2FueV9idXQobW1fY3B1bWFzayhtbSksIHNtcF9wcm9jZXNzb3JfaWQoKSkgPCBucl9jcHVfaWRz KQogCQlmbHVzaF90bGJfb3RoZXJzKG1tX2NwdW1hc2sobW0pLCBtbSwgVExCX0ZMVVNIX0FMTCk7 CkBAIC0zMDcsMTAgKzMxOSwxOCBAQCB2b2lkIGZsdXNoX3RsYl9wYWdlKHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIHZhKQogCXByZWVtcHRfZGlzYWJsZSgpOwogCiAJ aWYgKGN1cnJlbnQtPmFjdGl2ZV9tbSA9PSBtbSkgewotCQlpZiAoY3VycmVudC0+bW0pCisJCWlm IChjdXJyZW50LT5tbSkgeworCQkJLyoKKwkJCSAqIEltcGxpY2l0IGZ1bGwgYmFycmllciAoSU5W TFBHKSB0aGF0IHN5bmNocm9uaXplcworCQkJICogd2l0aCBzd2l0Y2hfbW0uCisJCQkgKi8KIAkJ CV9fZmx1c2hfdGxiX29uZSh2YSk7Ci0JCWVsc2UKKwkJfSBlbHNlIHsKIAkJCWxlYXZlX21tKHNt cF9wcm9jZXNzb3JfaWQoKSk7CisKKwkJCS8qIFN5bmNocm9uaXplIHdpdGggc3dpdGNoX21tLiAq LworCQkJc21wX21iKCk7CisJCX0KIAl9CiAKIAlpZiAoY3B1bWFza19hbnlfYnV0KG1tX2NwdW1h c2sobW0pLCBzbXBfcHJvY2Vzc29yX2lkKCkpIDwgbnJfY3B1X2lkcykKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L3hlbi9zdXNwZW5kLmMgYi9hcmNoL3g4Ni94ZW4vc3VzcGVuZC5jCmluZGV4IDQ1MzI5 YzhjMjI2ZS4uMzllMTJjMTBiOTMxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vc3VzcGVuZC5j CisrKyBiL2FyY2gveDg2L3hlbi9zdXNwZW5kLmMKQEAgLTMwLDcgKzMwLDggQEAgdm9pZCB4ZW5f YXJjaF9odm1fcG9zdF9zdXNwZW5kKGludCBzdXNwZW5kX2NhbmNlbGxlZCkKIHsKICNpZmRlZiBD T05GSUdfWEVOX1BWSFZNCiAJaW50IGNwdTsKLQl4ZW5faHZtX2luaXRfc2hhcmVkX2luZm8oKTsK KwlpZiAoIXN1c3BlbmRfY2FuY2VsbGVkKQorCSAgICB4ZW5faHZtX2luaXRfc2hhcmVkX2luZm8o KTsKIAl4ZW5fY2FsbGJhY2tfdmVjdG9yKCk7CiAJeGVuX3VucGx1Z19lbXVsYXRlZF9kZXZpY2Vz KCk7CiAJaWYgKHhlbl9mZWF0dXJlKFhFTkZFQVRfaHZtX3NhZmVfcHZjbG9jaykpIHsKZGlmZiAt LWdpdCBhL2NyeXB0by9hYmxrY2lwaGVyLmMgYi9jcnlwdG8vYWJsa2NpcGhlci5jCmluZGV4IDZl YjZlYjEyMjUwMi4uNjYwMGEyYTE1YjZiIDEwMDY0NAotLS0gYS9jcnlwdG8vYWJsa2NpcGhlci5j CisrKyBiL2NyeXB0by9hYmxrY2lwaGVyLmMKQEAgLTM3OSw2ICszNzksNyBAQCBzdGF0aWMgaW50 IGNyeXB0b19pbml0X2FibGtjaXBoZXJfb3BzKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIHUzMiB0 eXBlLAogCX0KIAljcnQtPmJhc2UgPSBfX2NyeXB0b19hYmxrY2lwaGVyX2Nhc3QodGZtKTsKIAlj cnQtPml2c2l6ZSA9IGFsZy0+aXZzaXplOworCWNydC0+aGFzX3NldGtleSA9IGFsZy0+bWF4X2tl eXNpemU7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2NyeXB0by9hZl9hbGcuYyBiL2Ny eXB0by9hZl9hbGcuYwppbmRleCA2ZWY2ZTJhZDM0NGUuLjY4ZWMxYWM0MTA0YSAxMDA2NDQKLS0t IGEvY3J5cHRvL2FmX2FsZy5jCisrKyBiL2NyeXB0by9hZl9hbGcuYwpAQCAtNzYsNiArNzYsOCBA QCBpbnQgYWZfYWxnX3JlZ2lzdGVyX3R5cGUoY29uc3Qgc3RydWN0IGFmX2FsZ190eXBlICp0eXBl KQogCQlnb3RvIHVubG9jazsKIAogCXR5cGUtPm9wcy0+b3duZXIgPSBUSElTX01PRFVMRTsKKwlp ZiAodHlwZS0+b3BzX25va2V5KQorCQl0eXBlLT5vcHNfbm9rZXktPm93bmVyID0gVEhJU19NT0RV TEU7CiAJbm9kZS0+dHlwZSA9IHR5cGU7CiAJbGlzdF9hZGQoJm5vZGUtPmxpc3QsICZhbGdfdHlw ZXMpOwogCWVyciA9IDA7CkBAIC0xMjUsNiArMTI3LDI2IEBAIGludCBhZl9hbGdfcmVsZWFzZShz dHJ1Y3Qgc29ja2V0ICpzb2NrKQogfQogRVhQT1JUX1NZTUJPTF9HUEwoYWZfYWxnX3JlbGVhc2Up OwogCit2b2lkIGFmX2FsZ19yZWxlYXNlX3BhcmVudChzdHJ1Y3Qgc29jayAqc2spCit7CisJc3Ry dWN0IGFsZ19zb2NrICphc2sgPSBhbGdfc2soc2spOworCXVuc2lnbmVkIGludCBub2tleSA9IGFz ay0+bm9rZXlfcmVmY250OworCWJvb2wgbGFzdCA9IG5va2V5ICYmICFhc2stPnJlZmNudDsKKwor CXNrID0gYXNrLT5wYXJlbnQ7CisJYXNrID0gYWxnX3NrKHNrKTsKKworCWxvY2tfc29jayhzayk7 CisJYXNrLT5ub2tleV9yZWZjbnQgLT0gbm9rZXk7CisJaWYgKCFsYXN0KQorCQlsYXN0ID0gIS0t YXNrLT5yZWZjbnQ7CisJcmVsZWFzZV9zb2NrKHNrKTsKKworCWlmIChsYXN0KQorCQlzb2NrX3B1 dChzayk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChhZl9hbGdfcmVsZWFzZV9wYXJlbnQpOworCiBz dGF0aWMgaW50IGFsZ19iaW5kKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAq dWFkZHIsIGludCBhZGRyX2xlbikKIHsKIAlzdHJ1Y3Qgc29jayAqc2sgPSBzb2NrLT5zazsKQEAg LTEzMiw2ICsxNTQsNyBAQCBzdGF0aWMgaW50IGFsZ19iaW5kKHN0cnVjdCBzb2NrZXQgKnNvY2ss IHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKIAlzdHJ1Y3Qgc29ja2FkZHJf YWxnICpzYSA9ICh2b2lkICopdWFkZHI7CiAJY29uc3Qgc3RydWN0IGFmX2FsZ190eXBlICp0eXBl OwogCXZvaWQgKnByaXZhdGU7CisJaW50IGVycjsKIAogCWlmIChzb2NrLT5zdGF0ZSA9PSBTU19D T05ORUNURUQpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMTU3LDE2ICsxODAsMjIgQEAgc3RhdGlj IGludCBhbGdfYmluZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRy LCBpbnQgYWRkcl9sZW4pCiAJCXJldHVybiBQVFJfRVJSKHByaXZhdGUpOwogCX0KIAorCWVyciA9 IC1FQlVTWTsKIAlsb2NrX3NvY2soc2spOworCWlmIChhc2stPnJlZmNudCB8IGFzay0+bm9rZXlf cmVmY250KQorCQlnb3RvIHVubG9jazsKIAogCXN3YXAoYXNrLT50eXBlLCB0eXBlKTsKIAlzd2Fw KGFzay0+cHJpdmF0ZSwgcHJpdmF0ZSk7CiAKKwllcnIgPSAwOworCit1bmxvY2s6CiAJcmVsZWFz ZV9zb2NrKHNrKTsKIAogCWFsZ19kb19yZWxlYXNlKHR5cGUsIHByaXZhdGUpOwogCi0JcmV0dXJu IDA7CisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBhbGdfc2V0a2V5KHN0cnVjdCBzb2Nr ICpzaywgY2hhciBfX3VzZXIgKnVrZXksCkBAIC0xOTksMTEgKzIyOCwxNSBAQCBzdGF0aWMgaW50 IGFsZ19zZXRzb2Nrb3B0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5h bWUsCiAJc3RydWN0IHNvY2sgKnNrID0gc29jay0+c2s7CiAJc3RydWN0IGFsZ19zb2NrICphc2sg PSBhbGdfc2soc2spOwogCWNvbnN0IHN0cnVjdCBhZl9hbGdfdHlwZSAqdHlwZTsKLQlpbnQgZXJy ID0gLUVOT1BST1RPT1BUOworCWludCBlcnIgPSAtRUJVU1k7CiAKIAlsb2NrX3NvY2soc2spOwor CWlmIChhc2stPnJlZmNudCkKKwkJZ290byB1bmxvY2s7CisKIAl0eXBlID0gYXNrLT50eXBlOwog CisJZXJyID0gLUVOT1BST1RPT1BUOwogCWlmIChsZXZlbCAhPSBTT0xfQUxHIHx8ICF0eXBlKQog CQlnb3RvIHVubG9jazsKIApAQCAtMjI4LDYgKzI2MSw3IEBAIGludCBhZl9hbGdfYWNjZXB0KHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2tldCAqbmV3c29jaykKIAlzdHJ1Y3QgYWxnX3NvY2sg KmFzayA9IGFsZ19zayhzayk7CiAJY29uc3Qgc3RydWN0IGFmX2FsZ190eXBlICp0eXBlOwogCXN0 cnVjdCBzb2NrICpzazI7CisJdW5zaWduZWQgaW50IG5va2V5OwogCWludCBlcnI7CiAKIAlsb2Nr X3NvY2soc2spOwpAQCAtMjQ3LDIwICsyODEsMjkgQEAgaW50IGFmX2FsZ19hY2NlcHQoc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2V0ICpuZXdzb2NrKQogCXNlY3VyaXR5X3NrX2Nsb25lKHNr LCBzazIpOwogCiAJZXJyID0gdHlwZS0+YWNjZXB0KGFzay0+cHJpdmF0ZSwgc2syKTsKLQlpZiAo ZXJyKSB7Ci0JCXNrX2ZyZWUoc2syKTsKKworCW5va2V5ID0gZXJyID09IC1FTk9LRVk7CisJaWYg KG5va2V5ICYmIHR5cGUtPmFjY2VwdF9ub2tleSkKKwkJZXJyID0gdHlwZS0+YWNjZXB0X25va2V5 KGFzay0+cHJpdmF0ZSwgc2syKTsKKworCWlmIChlcnIpCiAJCWdvdG8gdW5sb2NrOwotCX0KIAog CXNrMi0+c2tfZmFtaWx5ID0gUEZfQUxHOwogCi0Jc29ja19ob2xkKHNrKTsKKwlpZiAobm9rZXkg fHwgIWFzay0+cmVmY250KyspCisJCXNvY2tfaG9sZChzayk7CisJYXNrLT5ub2tleV9yZWZjbnQg Kz0gbm9rZXk7CiAJYWxnX3NrKHNrMiktPnBhcmVudCA9IHNrOwogCWFsZ19zayhzazIpLT50eXBl ID0gdHlwZTsKKwlhbGdfc2soc2syKS0+bm9rZXlfcmVmY250ID0gbm9rZXk7CiAKIAluZXdzb2Nr LT5vcHMgPSB0eXBlLT5vcHM7CiAJbmV3c29jay0+c3RhdGUgPSBTU19DT05ORUNURUQ7CiAKKwlp ZiAobm9rZXkpCisJCW5ld3NvY2stPm9wcyA9IHR5cGUtPm9wc19ub2tleTsKKwogCWVyciA9IDA7 CiAKIHVubG9jazoKZGlmZiAtLWdpdCBhL2NyeXB0by9haGFzaC5jIGIvY3J5cHRvL2FoYXNoLmMK aW5kZXggOTZjOGU3Y2I2ODBmLi43ZmQ4ZWNmNzEzMzcgMTAwNjQ0Ci0tLSBhL2NyeXB0by9haGFz aC5jCisrKyBiL2NyeXB0by9haGFzaC5jCkBAIC0zNjksNiArMzY5LDcgQEAgc3RhdGljIGludCBj cnlwdG9fYWhhc2hfaW5pdF90Zm0oc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKIAlzdHJ1Y3QgYWhh c2hfYWxnICphbGcgPSBjcnlwdG9fYWhhc2hfYWxnKGhhc2gpOwogCiAJaGFzaC0+c2V0a2V5ID0g YWhhc2hfbm9zZXRrZXk7CisJaGFzaC0+aGFzX3NldGtleSA9IGZhbHNlOwogCWhhc2gtPmV4cG9y dCA9IGFoYXNoX25vX2V4cG9ydDsKIAloYXNoLT5pbXBvcnQgPSBhaGFzaF9ub19pbXBvcnQ7CiAK QEAgLTM4MSw4ICszODIsMTAgQEAgc3RhdGljIGludCBjcnlwdG9fYWhhc2hfaW5pdF90Zm0oc3Ry dWN0IGNyeXB0b190Zm0gKnRmbSkKIAloYXNoLT5maW51cCA9IGFsZy0+ZmludXAgPzogYWhhc2hf ZGVmX2ZpbnVwOwogCWhhc2gtPmRpZ2VzdCA9IGFsZy0+ZGlnZXN0OwogCi0JaWYgKGFsZy0+c2V0 a2V5KQorCWlmIChhbGctPnNldGtleSkgewogCQloYXNoLT5zZXRrZXkgPSBhbGctPnNldGtleTsK KwkJaGFzaC0+aGFzX3NldGtleSA9IHRydWU7CisJfQogCWlmIChhbGctPmV4cG9ydCkKIAkJaGFz aC0+ZXhwb3J0ID0gYWxnLT5leHBvcnQ7CiAJaWYgKGFsZy0+aW1wb3J0KQpkaWZmIC0tZ2l0IGEv Y3J5cHRvL2FsZ2lmX2hhc2guYyBiL2NyeXB0by9hbGdpZl9oYXNoLmMKaW5kZXggYTY4YjU2YTM2 OGE4Li4yZGZiMGYxMGUwYmIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hbGdpZl9oYXNoLmMKKysrIGIv Y3J5cHRvL2FsZ2lmX2hhc2guYwpAQCAtMzQsNiArMzQsMTEgQEAgc3RydWN0IGhhc2hfY3R4IHsK IAlzdHJ1Y3QgYWhhc2hfcmVxdWVzdCByZXE7CiB9OwogCitzdHJ1Y3QgYWxnaWZfaGFzaF90Zm0g eworCXN0cnVjdCBjcnlwdG9fYWhhc2ggKmhhc2g7CisJYm9vbCBoYXNfa2V5OworfTsKKwogc3Rh dGljIGludCBoYXNoX3NlbmRtc2coc3RydWN0IGtpb2NiICp1bnVzZWQsIHN0cnVjdCBzb2NrZXQg KnNvY2ssCiAJCQlzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBpZ25vcmVkKQogewpAQCAtMjQ2 LDE5ICsyNTEsMTUxIEBAIHN0YXRpYyBzdHJ1Y3QgcHJvdG9fb3BzIGFsZ2lmX2hhc2hfb3BzID0g ewogCS5hY2NlcHQJCT0JaGFzaF9hY2NlcHQsCiB9OwogCitzdGF0aWMgaW50IGhhc2hfY2hlY2tf a2V5KHN0cnVjdCBzb2NrZXQgKnNvY2spCit7CisJaW50IGVyciA9IDA7CisJc3RydWN0IHNvY2sg KnBzazsKKwlzdHJ1Y3QgYWxnX3NvY2sgKnBhc2s7CisJc3RydWN0IGFsZ2lmX2hhc2hfdGZtICp0 Zm07CisJc3RydWN0IHNvY2sgKnNrID0gc29jay0+c2s7CisJc3RydWN0IGFsZ19zb2NrICphc2sg PSBhbGdfc2soc2spOworCisJbG9ja19zb2NrKHNrKTsKKwlpZiAoYXNrLT5yZWZjbnQpCisJCWdv dG8gdW5sb2NrX2NoaWxkOworCisJcHNrID0gYXNrLT5wYXJlbnQ7CisJcGFzayA9IGFsZ19zayhh c2stPnBhcmVudCk7CisJdGZtID0gcGFzay0+cHJpdmF0ZTsKKworCWVyciA9IC1FTk9LRVk7CisJ bG9ja19zb2NrX25lc3RlZChwc2ssIFNJTkdMRV9ERVBUSF9ORVNUSU5HKTsKKwlpZiAoIXRmbS0+ aGFzX2tleSkKKwkJZ290byB1bmxvY2s7CisKKwlpZiAoIXBhc2stPnJlZmNudCsrKQorCQlzb2Nr X2hvbGQocHNrKTsKKworCWFzay0+cmVmY250ID0gMTsKKwlzb2NrX3B1dChwc2spOworCisJZXJy ID0gMDsKKwordW5sb2NrOgorCXJlbGVhc2Vfc29jayhwc2spOwordW5sb2NrX2NoaWxkOgorCXJl bGVhc2Vfc29jayhzayk7CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGhhc2hfc2Vu ZG1zZ19ub2tleShzdHJ1Y3Qga2lvY2IgKnVudXNlZCwgc3RydWN0IHNvY2tldCAqc29jaywKKwkJ CSAgICAgIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IHNpemUpCit7CisJaW50IGVycjsKKwor CWVyciA9IGhhc2hfY2hlY2tfa2V5KHNvY2spOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisK KwlyZXR1cm4gaGFzaF9zZW5kbXNnKHVudXNlZCwgc29jaywgbXNnLCBzaXplKTsKK30KKworc3Rh dGljIHNzaXplX3QgaGFzaF9zZW5kcGFnZV9ub2tleShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1 Y3QgcGFnZSAqcGFnZSwKKwkJCQkgICBpbnQgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgaW50IGZsYWdz KQoreworCWludCBlcnI7CisKKwllcnIgPSBoYXNoX2NoZWNrX2tleShzb2NrKTsKKwlpZiAoZXJy KQorCQlyZXR1cm4gZXJyOworCisJcmV0dXJuIGhhc2hfc2VuZHBhZ2Uoc29jaywgcGFnZSwgb2Zm c2V0LCBzaXplLCBmbGFncyk7Cit9CisKK3N0YXRpYyBpbnQgaGFzaF9yZWN2bXNnX25va2V5KHN0 cnVjdCBraW9jYiAqdW51c2VkLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAorCQkJICAgICAgc3RydWN0 IG1zZ2hkciAqbXNnLCBzaXplX3QgaWdub3JlZCwgaW50IGZsYWdzKQoreworCWludCBlcnI7CisK KwllcnIgPSBoYXNoX2NoZWNrX2tleShzb2NrKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOwor CisJcmV0dXJuIGhhc2hfcmVjdm1zZyh1bnVzZWQsIHNvY2ssIG1zZywgaWdub3JlZCwgZmxhZ3Mp OworfQorCitzdGF0aWMgaW50IGhhc2hfYWNjZXB0X25va2V5KHN0cnVjdCBzb2NrZXQgKnNvY2ss IHN0cnVjdCBzb2NrZXQgKm5ld3NvY2ssCisJCQkgICAgIGludCBmbGFncykKK3sKKwlpbnQgZXJy OworCisJZXJyID0gaGFzaF9jaGVja19rZXkoc29jayk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVy cjsKKworCXJldHVybiBoYXNoX2FjY2VwdChzb2NrLCBuZXdzb2NrLCBmbGFncyk7Cit9CisKK3N0 YXRpYyBzdHJ1Y3QgcHJvdG9fb3BzIGFsZ2lmX2hhc2hfb3BzX25va2V5ID0geworCS5mYW1pbHkJ CT0JUEZfQUxHLAorCisJLmNvbm5lY3QJPQlzb2NrX25vX2Nvbm5lY3QsCisJLnNvY2tldHBhaXIJ PQlzb2NrX25vX3NvY2tldHBhaXIsCisJLmdldG5hbWUJPQlzb2NrX25vX2dldG5hbWUsCisJLmlv Y3RsCQk9CXNvY2tfbm9faW9jdGwsCisJLmxpc3RlbgkJPQlzb2NrX25vX2xpc3RlbiwKKwkuc2h1 dGRvd24JPQlzb2NrX25vX3NodXRkb3duLAorCS5nZXRzb2Nrb3B0CT0Jc29ja19ub19nZXRzb2Nr b3B0LAorCS5tbWFwCQk9CXNvY2tfbm9fbW1hcCwKKwkuYmluZAkJPQlzb2NrX25vX2JpbmQsCisJ LnNldHNvY2tvcHQJPQlzb2NrX25vX3NldHNvY2tvcHQsCisJLnBvbGwJCT0Jc29ja19ub19wb2xs LAorCisJLnJlbGVhc2UJPQlhZl9hbGdfcmVsZWFzZSwKKwkuc2VuZG1zZwk9CWhhc2hfc2VuZG1z Z19ub2tleSwKKwkuc2VuZHBhZ2UJPQloYXNoX3NlbmRwYWdlX25va2V5LAorCS5yZWN2bXNnCT0J aGFzaF9yZWN2bXNnX25va2V5LAorCS5hY2NlcHQJCT0JaGFzaF9hY2NlcHRfbm9rZXksCit9Owor CiBzdGF0aWMgdm9pZCAqaGFzaF9iaW5kKGNvbnN0IGNoYXIgKm5hbWUsIHUzMiB0eXBlLCB1MzIg bWFzaykKIHsKLQlyZXR1cm4gY3J5cHRvX2FsbG9jX2FoYXNoKG5hbWUsIHR5cGUsIG1hc2spOwor CXN0cnVjdCBhbGdpZl9oYXNoX3RmbSAqdGZtOworCXN0cnVjdCBjcnlwdG9fYWhhc2ggKmhhc2g7 CisKKwl0Zm0gPSBremFsbG9jKHNpemVvZigqdGZtKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF0Zm0p CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJaGFzaCA9IGNyeXB0b19hbGxvY19haGFz aChuYW1lLCB0eXBlLCBtYXNrKTsKKwlpZiAoSVNfRVJSKGhhc2gpKSB7CisJCWtmcmVlKHRmbSk7 CisJCXJldHVybiBFUlJfQ0FTVChoYXNoKTsKKwl9CisKKwl0Zm0tPmhhc2ggPSBoYXNoOworCisJ cmV0dXJuIHRmbTsKIH0KIAogc3RhdGljIHZvaWQgaGFzaF9yZWxlYXNlKHZvaWQgKnByaXZhdGUp CiB7Ci0JY3J5cHRvX2ZyZWVfYWhhc2gocHJpdmF0ZSk7CisJc3RydWN0IGFsZ2lmX2hhc2hfdGZt ICp0Zm0gPSBwcml2YXRlOworCisJY3J5cHRvX2ZyZWVfYWhhc2godGZtLT5oYXNoKTsKKwlrZnJl ZSh0Zm0pOwogfQogCiBzdGF0aWMgaW50IGhhc2hfc2V0a2V5KHZvaWQgKnByaXZhdGUsIGNvbnN0 IHU4ICprZXksIHVuc2lnbmVkIGludCBrZXlsZW4pCiB7Ci0JcmV0dXJuIGNyeXB0b19haGFzaF9z ZXRrZXkocHJpdmF0ZSwga2V5LCBrZXlsZW4pOworCXN0cnVjdCBhbGdpZl9oYXNoX3RmbSAqdGZt ID0gcHJpdmF0ZTsKKwlpbnQgZXJyOworCisJZXJyID0gY3J5cHRvX2FoYXNoX3NldGtleSh0Zm0t Pmhhc2gsIGtleSwga2V5bGVuKTsKKwl0Zm0tPmhhc19rZXkgPSAhZXJyOworCisJcmV0dXJuIGVy cjsKIH0KIAogc3RhdGljIHZvaWQgaGFzaF9zb2NrX2Rlc3RydWN0KHN0cnVjdCBzb2NrICpzaykK QEAgLTI3MiwxMiArNDA5LDE0IEBAIHN0YXRpYyB2b2lkIGhhc2hfc29ja19kZXN0cnVjdChzdHJ1 Y3Qgc29jayAqc2spCiAJYWZfYWxnX3JlbGVhc2VfcGFyZW50KHNrKTsKIH0KIAotc3RhdGljIGlu dCBoYXNoX2FjY2VwdF9wYXJlbnQodm9pZCAqcHJpdmF0ZSwgc3RydWN0IHNvY2sgKnNrKQorc3Rh dGljIGludCBoYXNoX2FjY2VwdF9wYXJlbnRfbm9rZXkodm9pZCAqcHJpdmF0ZSwgc3RydWN0IHNv Y2sgKnNrKQogewogCXN0cnVjdCBoYXNoX2N0eCAqY3R4OwogCXN0cnVjdCBhbGdfc29jayAqYXNr ID0gYWxnX3NrKHNrKTsKLQl1bnNpZ25lZCBsZW4gPSBzaXplb2YoKmN0eCkgKyBjcnlwdG9fYWhh c2hfcmVxc2l6ZShwcml2YXRlKTsKLQl1bnNpZ25lZCBkcyA9IGNyeXB0b19haGFzaF9kaWdlc3Rz aXplKHByaXZhdGUpOworCXN0cnVjdCBhbGdpZl9oYXNoX3RmbSAqdGZtID0gcHJpdmF0ZTsKKwlz dHJ1Y3QgY3J5cHRvX2FoYXNoICpoYXNoID0gdGZtLT5oYXNoOworCXVuc2lnbmVkIGxlbiA9IHNp emVvZigqY3R4KSArIGNyeXB0b19haGFzaF9yZXFzaXplKGhhc2gpOworCXVuc2lnbmVkIGRzID0g Y3J5cHRvX2FoYXNoX2RpZ2VzdHNpemUoaGFzaCk7CiAKIAljdHggPSBzb2NrX2ttYWxsb2Moc2ss IGxlbiwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjdHgpCkBAIC0yOTcsNyArNDM2LDcgQEAgc3RhdGlj IGludCBoYXNoX2FjY2VwdF9wYXJlbnQodm9pZCAqcHJpdmF0ZSwgc3RydWN0IHNvY2sgKnNrKQog CiAJYXNrLT5wcml2YXRlID0gY3R4OwogCi0JYWhhc2hfcmVxdWVzdF9zZXRfdGZtKCZjdHgtPnJl cSwgcHJpdmF0ZSk7CisJYWhhc2hfcmVxdWVzdF9zZXRfdGZtKCZjdHgtPnJlcSwgaGFzaCk7CiAJ YWhhc2hfcmVxdWVzdF9zZXRfY2FsbGJhY2soJmN0eC0+cmVxLCBDUllQVE9fVEZNX1JFUV9NQVlf QkFDS0xPRywKIAkJCQkgICBhZl9hbGdfY29tcGxldGUsICZjdHgtPmNvbXBsZXRpb24pOwogCkBA IC0zMDYsMTIgKzQ0NSwyNCBAQCBzdGF0aWMgaW50IGhhc2hfYWNjZXB0X3BhcmVudCh2b2lkICpw cml2YXRlLCBzdHJ1Y3Qgc29jayAqc2spCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgaGFz aF9hY2NlcHRfcGFyZW50KHZvaWQgKnByaXZhdGUsIHN0cnVjdCBzb2NrICpzaykKK3sKKwlzdHJ1 Y3QgYWxnaWZfaGFzaF90Zm0gKnRmbSA9IHByaXZhdGU7CisKKwlpZiAoIXRmbS0+aGFzX2tleSAm JiBjcnlwdG9fYWhhc2hfaGFzX3NldGtleSh0Zm0tPmhhc2gpKQorCQlyZXR1cm4gLUVOT0tFWTsK KworCXJldHVybiBoYXNoX2FjY2VwdF9wYXJlbnRfbm9rZXkocHJpdmF0ZSwgc2spOworfQorCiBz dGF0aWMgY29uc3Qgc3RydWN0IGFmX2FsZ190eXBlIGFsZ2lmX3R5cGVfaGFzaCA9IHsKIAkuYmlu ZAkJPQloYXNoX2JpbmQsCiAJLnJlbGVhc2UJPQloYXNoX3JlbGVhc2UsCiAJLnNldGtleQkJPQlo YXNoX3NldGtleSwKIAkuYWNjZXB0CQk9CWhhc2hfYWNjZXB0X3BhcmVudCwKKwkuYWNjZXB0X25v a2V5CT0JaGFzaF9hY2NlcHRfcGFyZW50X25va2V5LAogCS5vcHMJCT0JJmFsZ2lmX2hhc2hfb3Bz LAorCS5vcHNfbm9rZXkJPQkmYWxnaWZfaGFzaF9vcHNfbm9rZXksCiAJLm5hbWUJCT0JImhhc2gi LAogCS5vd25lcgkJPQlUSElTX01PRFVMRQogfTsKZGlmZiAtLWdpdCBhL2NyeXB0by9hbGdpZl9z a2NpcGhlci5jIGIvY3J5cHRvL2FsZ2lmX3NrY2lwaGVyLmMKaW5kZXggODMxODdmNDk3YzdjLi40 NWZhNmJkOTE4N2IgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hbGdpZl9za2NpcGhlci5jCisrKyBiL2Ny eXB0by9hbGdpZl9za2NpcGhlci5jCkBAIC0zMSw2ICszMSwxMSBAQCBzdHJ1Y3Qgc2tjaXBoZXJf c2dfbGlzdCB7CiAJc3RydWN0IHNjYXR0ZXJsaXN0IHNnWzBdOwogfTsKIAorc3RydWN0IHNrY2lw aGVyX3RmbSB7CisJc3RydWN0IGNyeXB0b19hYmxrY2lwaGVyICpza2NpcGhlcjsKKwlib29sIGhh c19rZXk7Cit9OworCiBzdHJ1Y3Qgc2tjaXBoZXJfY3R4IHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHRz Z2w7CiAJc3RydWN0IGFmX2FsZ19zZ2wgcnNnbDsKQEAgLTQ0MSwxMyArNDQ2LDYgQEAgc3RhdGlj IGludCBza2NpcGhlcl9yZWN2bXNnKHN0cnVjdCBraW9jYiAqdW51c2VkLCBzdHJ1Y3Qgc29ja2V0 ICpzb2NrLAogCQljaGFyIF9fdXNlciAqZnJvbSA9IGlvdi0+aW92X2Jhc2U7CiAKIAkJd2hpbGUg KHNlZ2xlbikgewotCQkJc2dsID0gbGlzdF9maXJzdF9lbnRyeSgmY3R4LT50c2dsLAotCQkJCQkg ICAgICAgc3RydWN0IHNrY2lwaGVyX3NnX2xpc3QsIGxpc3QpOwotCQkJc2cgPSBzZ2wtPnNnOwot Ci0JCQl3aGlsZSAoIXNnLT5sZW5ndGgpCi0JCQkJc2crKzsKLQogCQkJdXNlZCA9IGN0eC0+dXNl ZDsKIAkJCWlmICghdXNlZCkgewogCQkJCWVyciA9IHNrY2lwaGVyX3dhaXRfZm9yX2RhdGEoc2ss IGZsYWdzKTsKQEAgLTQ2OSw2ICs0NjcsMTMgQEAgc3RhdGljIGludCBza2NpcGhlcl9yZWN2bXNn KHN0cnVjdCBraW9jYiAqdW51c2VkLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCQkJaWYgKCF1c2Vk KQogCQkJCWdvdG8gZnJlZTsKIAorCQkJc2dsID0gbGlzdF9maXJzdF9lbnRyeSgmY3R4LT50c2ds LAorCQkJCQkgICAgICAgc3RydWN0IHNrY2lwaGVyX3NnX2xpc3QsIGxpc3QpOworCQkJc2cgPSBz Z2wtPnNnOworCisJCQl3aGlsZSAoIXNnLT5sZW5ndGgpCisJCQkJc2crKzsKKwogCQkJYWJsa2Np cGhlcl9yZXF1ZXN0X3NldF9jcnlwdCgmY3R4LT5yZXEsIHNnLAogCQkJCQkJICAgICBjdHgtPnJz Z2wuc2csIHVzZWQsCiAJCQkJCQkgICAgIGN0eC0+aXYpOwpAQCAtNTQ0LDE5ICs1NDksMTM5IEBA IHN0YXRpYyBzdHJ1Y3QgcHJvdG9fb3BzIGFsZ2lmX3NrY2lwaGVyX29wcyA9IHsKIAkucG9sbAkJ PQlza2NpcGhlcl9wb2xsLAogfTsKIAorc3RhdGljIGludCBza2NpcGhlcl9jaGVja19rZXkoc3Ry dWN0IHNvY2tldCAqc29jaykKK3sKKwlpbnQgZXJyID0gMDsKKwlzdHJ1Y3Qgc29jayAqcHNrOwor CXN0cnVjdCBhbGdfc29jayAqcGFzazsKKwlzdHJ1Y3Qgc2tjaXBoZXJfdGZtICp0Zm07CisJc3Ry dWN0IHNvY2sgKnNrID0gc29jay0+c2s7CisJc3RydWN0IGFsZ19zb2NrICphc2sgPSBhbGdfc2so c2spOworCisJbG9ja19zb2NrKHNrKTsKKwlpZiAoYXNrLT5yZWZjbnQpCisJCWdvdG8gdW5sb2Nr X2NoaWxkOworCisJcHNrID0gYXNrLT5wYXJlbnQ7CisJcGFzayA9IGFsZ19zayhhc2stPnBhcmVu dCk7CisJdGZtID0gcGFzay0+cHJpdmF0ZTsKKworCWVyciA9IC1FTk9LRVk7CisJbG9ja19zb2Nr X25lc3RlZChwc2ssIFNJTkdMRV9ERVBUSF9ORVNUSU5HKTsKKwlpZiAoIXRmbS0+aGFzX2tleSkK KwkJZ290byB1bmxvY2s7CisKKwlpZiAoIXBhc2stPnJlZmNudCsrKQorCQlzb2NrX2hvbGQocHNr KTsKKworCWFzay0+cmVmY250ID0gMTsKKwlzb2NrX3B1dChwc2spOworCisJZXJyID0gMDsKKwor dW5sb2NrOgorCXJlbGVhc2Vfc29jayhwc2spOwordW5sb2NrX2NoaWxkOgorCXJlbGVhc2Vfc29j ayhzayk7CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IHNrY2lwaGVyX3NlbmRtc2df bm9rZXkoc3RydWN0IGtpb2NiICp1bnVzZWQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCisJCQkJICBz dHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBzaXplKQoreworCWludCBlcnI7CisKKwllcnIgPSBz a2NpcGhlcl9jaGVja19rZXkoc29jayk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCXJl dHVybiBza2NpcGhlcl9zZW5kbXNnKHVudXNlZCwgc29jaywgbXNnLCBzaXplKTsKK30KKworc3Rh dGljIHNzaXplX3Qgc2tjaXBoZXJfc2VuZHBhZ2Vfbm9rZXkoc3RydWN0IHNvY2tldCAqc29jaywg c3RydWN0IHBhZ2UgKnBhZ2UsCisJCQkJICAgICAgIGludCBvZmZzZXQsIHNpemVfdCBzaXplLCBp bnQgZmxhZ3MpCit7CisJaW50IGVycjsKKworCWVyciA9IHNrY2lwaGVyX2NoZWNrX2tleShzb2Nr KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJcmV0dXJuIHNrY2lwaGVyX3NlbmRwYWdl KHNvY2ssIHBhZ2UsIG9mZnNldCwgc2l6ZSwgZmxhZ3MpOworfQorCitzdGF0aWMgaW50IHNrY2lw aGVyX3JlY3Ztc2dfbm9rZXkoc3RydWN0IGtpb2NiICp1bnVzZWQsIHN0cnVjdCBzb2NrZXQgKnNv Y2ssCisJCQkJICBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBpZ25vcmVkLCBpbnQgZmxhZ3Mp Cit7CisJaW50IGVycjsKKworCWVyciA9IHNrY2lwaGVyX2NoZWNrX2tleShzb2NrKTsKKwlpZiAo ZXJyKQorCQlyZXR1cm4gZXJyOworCisJcmV0dXJuIHNrY2lwaGVyX3JlY3Ztc2codW51c2VkLCBz b2NrLCBtc2csIGlnbm9yZWQsIGZsYWdzKTsKK30KKworc3RhdGljIHN0cnVjdCBwcm90b19vcHMg YWxnaWZfc2tjaXBoZXJfb3BzX25va2V5ID0geworCS5mYW1pbHkJCT0JUEZfQUxHLAorCisJLmNv bm5lY3QJPQlzb2NrX25vX2Nvbm5lY3QsCisJLnNvY2tldHBhaXIJPQlzb2NrX25vX3NvY2tldHBh aXIsCisJLmdldG5hbWUJPQlzb2NrX25vX2dldG5hbWUsCisJLmlvY3RsCQk9CXNvY2tfbm9faW9j dGwsCisJLmxpc3RlbgkJPQlzb2NrX25vX2xpc3RlbiwKKwkuc2h1dGRvd24JPQlzb2NrX25vX3No dXRkb3duLAorCS5nZXRzb2Nrb3B0CT0Jc29ja19ub19nZXRzb2Nrb3B0LAorCS5tbWFwCQk9CXNv Y2tfbm9fbW1hcCwKKwkuYmluZAkJPQlzb2NrX25vX2JpbmQsCisJLmFjY2VwdAkJPQlzb2NrX25v X2FjY2VwdCwKKwkuc2V0c29ja29wdAk9CXNvY2tfbm9fc2V0c29ja29wdCwKKworCS5yZWxlYXNl CT0JYWZfYWxnX3JlbGVhc2UsCisJLnNlbmRtc2cJPQlza2NpcGhlcl9zZW5kbXNnX25va2V5LAor CS5zZW5kcGFnZQk9CXNrY2lwaGVyX3NlbmRwYWdlX25va2V5LAorCS5yZWN2bXNnCT0Jc2tjaXBo ZXJfcmVjdm1zZ19ub2tleSwKKwkucG9sbAkJPQlza2NpcGhlcl9wb2xsLAorfTsKKwogc3RhdGlj IHZvaWQgKnNrY2lwaGVyX2JpbmQoY29uc3QgY2hhciAqbmFtZSwgdTMyIHR5cGUsIHUzMiBtYXNr KQogewotCXJldHVybiBjcnlwdG9fYWxsb2NfYWJsa2NpcGhlcihuYW1lLCB0eXBlLCBtYXNrKTsK KwlzdHJ1Y3Qgc2tjaXBoZXJfdGZtICp0Zm07CisJc3RydWN0IGNyeXB0b19hYmxrY2lwaGVyICpz a2NpcGhlcjsKKworCXRmbSA9IGt6YWxsb2Moc2l6ZW9mKCp0Zm0pLCBHRlBfS0VSTkVMKTsKKwlp ZiAoIXRmbSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwlza2NpcGhlciA9IGNyeXB0 b19hbGxvY19hYmxrY2lwaGVyKG5hbWUsIHR5cGUsIG1hc2spOworCWlmIChJU19FUlIoc2tjaXBo ZXIpKSB7CisJCWtmcmVlKHRmbSk7CisJCXJldHVybiBFUlJfQ0FTVChza2NpcGhlcik7CisJfQor CisJdGZtLT5za2NpcGhlciA9IHNrY2lwaGVyOworCisJcmV0dXJuIHRmbTsKIH0KIAogc3RhdGlj IHZvaWQgc2tjaXBoZXJfcmVsZWFzZSh2b2lkICpwcml2YXRlKQogewotCWNyeXB0b19mcmVlX2Fi bGtjaXBoZXIocHJpdmF0ZSk7CisJc3RydWN0IHNrY2lwaGVyX3RmbSAqdGZtID0gcHJpdmF0ZTsK KworCWNyeXB0b19mcmVlX2FibGtjaXBoZXIodGZtLT5za2NpcGhlcik7CisJa2ZyZWUodGZtKTsK IH0KIAogc3RhdGljIGludCBza2NpcGhlcl9zZXRrZXkodm9pZCAqcHJpdmF0ZSwgY29uc3QgdTgg KmtleSwgdW5zaWduZWQgaW50IGtleWxlbikKIHsKLQlyZXR1cm4gY3J5cHRvX2FibGtjaXBoZXJf c2V0a2V5KHByaXZhdGUsIGtleSwga2V5bGVuKTsKKwlzdHJ1Y3Qgc2tjaXBoZXJfdGZtICp0Zm0g PSBwcml2YXRlOworCWludCBlcnI7CisKKwllcnIgPSBjcnlwdG9fYWJsa2NpcGhlcl9zZXRrZXko dGZtLT5za2NpcGhlciwga2V5LCBrZXlsZW4pOworCXRmbS0+aGFzX2tleSA9ICFlcnI7CisKKwly ZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgdm9pZCBza2NpcGhlcl9zb2NrX2Rlc3RydWN0KHN0cnVj dCBzb2NrICpzaykKQEAgLTU3MSwyNCArNjk2LDI2IEBAIHN0YXRpYyB2b2lkIHNrY2lwaGVyX3Nv Y2tfZGVzdHJ1Y3Qoc3RydWN0IHNvY2sgKnNrKQogCWFmX2FsZ19yZWxlYXNlX3BhcmVudChzayk7 CiB9CiAKLXN0YXRpYyBpbnQgc2tjaXBoZXJfYWNjZXB0X3BhcmVudCh2b2lkICpwcml2YXRlLCBz dHJ1Y3Qgc29jayAqc2spCitzdGF0aWMgaW50IHNrY2lwaGVyX2FjY2VwdF9wYXJlbnRfbm9rZXko dm9pZCAqcHJpdmF0ZSwgc3RydWN0IHNvY2sgKnNrKQogewogCXN0cnVjdCBza2NpcGhlcl9jdHgg KmN0eDsKIAlzdHJ1Y3QgYWxnX3NvY2sgKmFzayA9IGFsZ19zayhzayk7Ci0JdW5zaWduZWQgaW50 IGxlbiA9IHNpemVvZigqY3R4KSArIGNyeXB0b19hYmxrY2lwaGVyX3JlcXNpemUocHJpdmF0ZSk7 CisJc3RydWN0IHNrY2lwaGVyX3RmbSAqdGZtID0gcHJpdmF0ZTsKKwlzdHJ1Y3QgY3J5cHRvX2Fi bGtjaXBoZXIgKnNrY2lwaGVyID0gdGZtLT5za2NpcGhlcjsKKwl1bnNpZ25lZCBpbnQgbGVuID0g c2l6ZW9mKCpjdHgpICsgY3J5cHRvX2FibGtjaXBoZXJfcmVxc2l6ZShza2NpcGhlcik7CiAKIAlj dHggPSBzb2NrX2ttYWxsb2Moc2ssIGxlbiwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjdHgpCiAJCXJl dHVybiAtRU5PTUVNOwogCi0JY3R4LT5pdiA9IHNvY2tfa21hbGxvYyhzaywgY3J5cHRvX2FibGtj aXBoZXJfaXZzaXplKHByaXZhdGUpLAorCWN0eC0+aXYgPSBzb2NrX2ttYWxsb2Moc2ssIGNyeXB0 b19hYmxrY2lwaGVyX2l2c2l6ZShza2NpcGhlciksCiAJCQkgICAgICAgR0ZQX0tFUk5FTCk7CiAJ aWYgKCFjdHgtPml2KSB7CiAJCXNvY2tfa2ZyZWVfcyhzaywgY3R4LCBsZW4pOwogCQlyZXR1cm4g LUVOT01FTTsKIAl9CiAKLQltZW1zZXQoY3R4LT5pdiwgMCwgY3J5cHRvX2FibGtjaXBoZXJfaXZz aXplKHByaXZhdGUpKTsKKwltZW1zZXQoY3R4LT5pdiwgMCwgY3J5cHRvX2FibGtjaXBoZXJfaXZz aXplKHNrY2lwaGVyKSk7CiAKIAlJTklUX0xJU1RfSEVBRCgmY3R4LT50c2dsKTsKIAljdHgtPmxl biA9IGxlbjsKQEAgLTYwMCw3ICs3MjcsNyBAQCBzdGF0aWMgaW50IHNrY2lwaGVyX2FjY2VwdF9w YXJlbnQodm9pZCAqcHJpdmF0ZSwgc3RydWN0IHNvY2sgKnNrKQogCiAJYXNrLT5wcml2YXRlID0g Y3R4OwogCi0JYWJsa2NpcGhlcl9yZXF1ZXN0X3NldF90Zm0oJmN0eC0+cmVxLCBwcml2YXRlKTsK KwlhYmxrY2lwaGVyX3JlcXVlc3Rfc2V0X3RmbSgmY3R4LT5yZXEsIHNrY2lwaGVyKTsKIAlhYmxr Y2lwaGVyX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKCZjdHgtPnJlcSwgQ1JZUFRPX1RGTV9SRVFfTUFZ X0JBQ0tMT0csCiAJCQkJCWFmX2FsZ19jb21wbGV0ZSwgJmN0eC0+Y29tcGxldGlvbik7CiAKQEAg LTYwOSwxMiArNzM2LDI0IEBAIHN0YXRpYyBpbnQgc2tjaXBoZXJfYWNjZXB0X3BhcmVudCh2b2lk ICpwcml2YXRlLCBzdHJ1Y3Qgc29jayAqc2spCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQg c2tjaXBoZXJfYWNjZXB0X3BhcmVudCh2b2lkICpwcml2YXRlLCBzdHJ1Y3Qgc29jayAqc2spCit7 CisJc3RydWN0IHNrY2lwaGVyX3RmbSAqdGZtID0gcHJpdmF0ZTsKKworCWlmICghdGZtLT5oYXNf a2V5ICYmIGNyeXB0b19hYmxrY2lwaGVyX2hhc19zZXRrZXkodGZtLT5za2NpcGhlcikpCisJCXJl dHVybiAtRU5PS0VZOworCisJcmV0dXJuIHNrY2lwaGVyX2FjY2VwdF9wYXJlbnRfbm9rZXkocHJp dmF0ZSwgc2spOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGFmX2FsZ190eXBlIGFsZ2lmX3R5 cGVfc2tjaXBoZXIgPSB7CiAJLmJpbmQJCT0Jc2tjaXBoZXJfYmluZCwKIAkucmVsZWFzZQk9CXNr Y2lwaGVyX3JlbGVhc2UsCiAJLnNldGtleQkJPQlza2NpcGhlcl9zZXRrZXksCiAJLmFjY2VwdAkJ PQlza2NpcGhlcl9hY2NlcHRfcGFyZW50LAorCS5hY2NlcHRfbm9rZXkJPQlza2NpcGhlcl9hY2Nl cHRfcGFyZW50X25va2V5LAogCS5vcHMJCT0JJmFsZ2lmX3NrY2lwaGVyX29wcywKKwkub3BzX25v a2V5CT0JJmFsZ2lmX3NrY2lwaGVyX29wc19ub2tleSwKIAkubmFtZQkJPQkic2tjaXBoZXIiLAog CS5vd25lcgkJPQlUSElTX01PRFVMRQogfTsKZGlmZiAtLWdpdCBhL2NyeXB0by9zaGFzaC5jIGIv Y3J5cHRvL3NoYXNoLmMKaW5kZXggZjUwNzI5NGYyODExLi5kMTVmMzUwMTljNGIgMTAwNjQ0Ci0t LSBhL2NyeXB0by9zaGFzaC5jCisrKyBiL2NyeXB0by9zaGFzaC5jCkBAIC0zNTQsOCArMzU0LDEw IEBAIGludCBjcnlwdG9faW5pdF9zaGFzaF9vcHNfYXN5bmMoc3RydWN0IGNyeXB0b190Zm0gKnRm bSkKIAljcnQtPmZpbnVwID0gc2hhc2hfYXN5bmNfZmludXA7CiAJY3J0LT5kaWdlc3QgPSBzaGFz aF9hc3luY19kaWdlc3Q7CiAKLQlpZiAoYWxnLT5zZXRrZXkpCisJaWYgKGFsZy0+c2V0a2V5KSB7 CiAJCWNydC0+c2V0a2V5ID0gc2hhc2hfYXN5bmNfc2V0a2V5OworCQljcnQtPmhhc19zZXRrZXkg PSB0cnVlOworCX0KIAlpZiAoYWxnLT5leHBvcnQpCiAJCWNydC0+ZXhwb3J0ID0gc2hhc2hfYXN5 bmNfZXhwb3J0OwogCWlmIChhbGctPmltcG9ydCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9l ZGFjX2RldmljZS5jIGIvZHJpdmVycy9lZGFjL2VkYWNfZGV2aWNlLmMKaW5kZXggYzNmNjc0Mzdh ZmI2Li4yZjI1YjVlN2Q0NTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZWRhYy9lZGFjX2RldmljZS5j CisrKyBiL2RyaXZlcnMvZWRhYy9lZGFjX2RldmljZS5jCkBAIC00NDQsMTMgKzQ0NCwxMCBAQCB2 b2lkIGVkYWNfZGV2aWNlX3dvcmtxX3NldHVwKHN0cnVjdCBlZGFjX2RldmljZV9jdGxfaW5mbyAq ZWRhY19kZXYsCiAgKi8KIHZvaWQgZWRhY19kZXZpY2Vfd29ya3FfdGVhcmRvd24oc3RydWN0IGVk YWNfZGV2aWNlX2N0bF9pbmZvICplZGFjX2RldikKIHsKLQlpbnQgc3RhdHVzOworCWVkYWNfZGV2 LT5vcF9zdGF0ZSA9IE9QX09GRkxJTkU7CiAKLQlzdGF0dXMgPSBjYW5jZWxfZGVsYXllZF93b3Jr KCZlZGFjX2Rldi0+d29yayk7Ci0JaWYgKHN0YXR1cyA9PSAwKSB7Ci0JCS8qIHdvcmtxIGluc3Rh bmNlIG1pZ2h0IGJlIHJ1bm5pbmcsIHdhaXQgZm9yIGl0ICovCi0JCWZsdXNoX3dvcmtxdWV1ZShl ZGFjX3dvcmtxdWV1ZSk7Ci0JfQorCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmZWRhY19kZXYt PndvcmspOworCWZsdXNoX3dvcmtxdWV1ZShlZGFjX3dvcmtxdWV1ZSk7CiB9CiAKIC8qCmRpZmYg LS1naXQgYS9kcml2ZXJzL2VkYWMvZWRhY19tYy5jIGIvZHJpdmVycy9lZGFjL2VkYWNfbWMuYwpp bmRleCA3ZGIxMDFiY2I3NzAuLjA4ZmRiNGFiYzE5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9lZGFj L2VkYWNfbWMuYworKysgYi9kcml2ZXJzL2VkYWMvZWRhY19tYy5jCkBAIC0zNDgsMTkgKzM0OCwx MCBAQCBzdGF0aWMgdm9pZCBlZGFjX21jX3dvcmtxX3NldHVwKHN0cnVjdCBtZW1fY3RsX2luZm8g Km1jaSwgdW5zaWduZWQgbXNlYywKICAqLwogc3RhdGljIHZvaWQgZWRhY19tY193b3JrcV90ZWFy ZG93bihzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2kpCiB7Ci0JaW50IHN0YXR1czsKLQotCWlmICht Y2ktPm9wX3N0YXRlICE9IE9QX1JVTk5JTkdfUE9MTCkKLQkJcmV0dXJuOwotCi0Jc3RhdHVzID0g Y2FuY2VsX2RlbGF5ZWRfd29yaygmbWNpLT53b3JrKTsKLQlpZiAoc3RhdHVzID09IDApIHsKLQkJ ZGVidWdmMCgiJXMoKSBub3QgY2FuY2VsZWQsIGZsdXNoIHRoZSBxdWV1ZVxuIiwKLQkJCV9fZnVu Y19fKTsKKwltY2ktPm9wX3N0YXRlID0gT1BfT0ZGTElORTsKIAotCQkvKiB3b3JrcSBpbnN0YW5j ZSBtaWdodCBiZSBydW5uaW5nLCB3YWl0IGZvciBpdCAqLwotCQlmbHVzaF93b3JrcXVldWUoZWRh Y193b3JrcXVldWUpOwotCX0KKwljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJm1jaS0+d29yayk7 CisJZmx1c2hfd29ya3F1ZXVlKGVkYWNfd29ya3F1ZXVlKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZWRhYy9lZGFjX3BjaS5jIGIvZHJpdmVycy9lZGFjL2VkYWNfcGNpLmMKaW5kZXgg MmIzNzgyMDdkNTcxLi4xN2I4MzI0NDM0YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZWRhYy9lZGFj X3BjaS5jCisrKyBiL2RyaXZlcnMvZWRhYy9lZGFjX3BjaS5jCkBAIC0yNzUsMTMgKzI3NSwxMiBA QCBzdGF0aWMgdm9pZCBlZGFjX3BjaV93b3JrcV9zZXR1cChzdHJ1Y3QgZWRhY19wY2lfY3RsX2lu Zm8gKnBjaSwKICAqLwogc3RhdGljIHZvaWQgZWRhY19wY2lfd29ya3FfdGVhcmRvd24oc3RydWN0 IGVkYWNfcGNpX2N0bF9pbmZvICpwY2kpCiB7Ci0JaW50IHN0YXR1czsKLQogCWRlYnVnZjAoIiVz KClcbiIsIF9fZnVuY19fKTsKIAotCXN0YXR1cyA9IGNhbmNlbF9kZWxheWVkX3dvcmsoJnBjaS0+ d29yayk7Ci0JaWYgKHN0YXR1cyA9PSAwKQotCQlmbHVzaF93b3JrcXVldWUoZWRhY193b3JrcXVl dWUpOworCXBjaS0+b3Bfc3RhdGUgPSBPUF9PRkZMSU5FOworCisJY2FuY2VsX2RlbGF5ZWRfd29y a19zeW5jKCZwY2ktPndvcmspOworCWZsdXNoX3dvcmtxdWV1ZShlZGFjX3dvcmtxdWV1ZSk7CiB9 CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdG9tYmlv cy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXRvbWJpb3MuYwppbmRleCAyNGU5 NzU2OTM0YjYuLjQ3M2JkMzMwMDMyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fYXRvbWJpb3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9h dG9tYmlvcy5jCkBAIC00NDYsNyArNDQ2LDkgQEAgc3RhdGljIGJvb2wgcmFkZW9uX2F0b21fYXBw bHlfcXVpcmtzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJfQogCiAJLyogRnVqaXRzdSBEMzAw My1TMiBib2FyZCBsaXN0cyBEVkktSSBhcyBEVkktRCBhbmQgVkdBICovCi0JaWYgKCgoZGV2LT5w ZGV2LT5kZXZpY2UgPT0gMHg5ODAyKSB8fCAoZGV2LT5wZGV2LT5kZXZpY2UgPT0gMHg5ODA2KSkg JiYKKwlpZiAoKChkZXYtPnBkZXYtPmRldmljZSA9PSAweDk4MDIpIHx8CisJICAgICAoZGV2LT5w ZGV2LT5kZXZpY2UgPT0gMHg5ODA1KSB8fAorCSAgICAgKGRldi0+cGRldi0+ZGV2aWNlID09IDB4 OTgwNikpICYmCiAJICAgIChkZXYtPnBkZXYtPnN1YnN5c3RlbV92ZW5kb3IgPT0gMHgxNzM0KSAm JgogCSAgICAoZGV2LT5wZGV2LT5zdWJzeXN0ZW1fZGV2aWNlID09IDB4MTFiZCkpIHsKIAkJaWYg KCpjb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfVkdBKSB7CkBAIC00NTcsMTQg KzQ1OSw2IEBAIHN0YXRpYyBib29sIHJhZGVvbl9hdG9tX2FwcGx5X3F1aXJrcyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCQl9CiAJfQogCi0JLyogRnVqaXRzdSBEMzAwMy1TMiBib2FyZCBsaXN0 cyBEVkktSSBhcyBEVkktSSBhbmQgVkdBICovCi0JaWYgKChkZXYtPnBkZXYtPmRldmljZSA9PSAw eDk4MDUpICYmCi0JICAgIChkZXYtPnBkZXYtPnN1YnN5c3RlbV92ZW5kb3IgPT0gMHgxNzM0KSAm JgotCSAgICAoZGV2LT5wZGV2LT5zdWJzeXN0ZW1fZGV2aWNlID09IDB4MTFiZCkpIHsKLQkJaWYg KCpjb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfVkdBKQotCQkJcmV0dXJuIGZh bHNlOwotCX0KLQogCXJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X2RldmljZS5jCmluZGV4IDhjZGU4NGI2NjZkNS4uZTUxZjA5ZjdhMTc1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYwpAQCAtOTYwLDYgKzk2MCw3IEBAIGludCByYWRlb25f cmVzdW1lX2ttcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCX0KIAogCWRybV9rbXNfaGVscGVy X3BvbGxfZW5hYmxlKGRldik7CisJZHJtX2hlbHBlcl9ocGRfaXJxX2V2ZW50KGRldik7CiAJcmV0 dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L2FoLmMg Yi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9haC5jCmluZGV4IDU0MjZjY2ZjYTFhMi4uMDhm M2YyOGJkMmZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9haC5jCisr KyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L2FoLmMKQEAgLTExMiw2ICsxMTIsNyBAQCBz dGF0aWMgc3RydWN0IGliX2FoICpjcmVhdGVfaWJvZV9haChzdHJ1Y3QgaWJfcGQgKnBkLCBzdHJ1 Y3QgaWJfYWhfYXR0ciAqYWhfYXR0cgogCWFoLT5hdi5ldGgucG9ydF9wZCA9IGNwdV90b19iZTMy KHRvX21wZChwZCktPnBkbiB8IChhaF9hdHRyLT5wb3J0X251bSA8PCAyNCkpOwogCWFoLT5hdi5l dGguZ2lkX2luZGV4ID0gYWhfYXR0ci0+Z3JoLnNnaWRfaW5kZXg7CiAJYWgtPmF2LmV0aC52bGFu ID0gY3B1X3RvX2JlMTYodmxhbl90YWcpOworCWFoLT5hdi5ldGguaG9wX2xpbWl0ID0gYWhfYXR0 ci0+Z3JoLmhvcF9saW1pdDsKIAlpZiAoYWhfYXR0ci0+c3RhdGljX3JhdGUpIHsKIAkJYWgtPmF2 LmV0aC5zdGF0X3JhdGUgPSBhaF9hdHRyLT5zdGF0aWNfcmF0ZSArIE1MWDRfU1RBVF9SQVRFX09G RlNFVDsKIAkJd2hpbGUgKGFoLT5hdi5ldGguc3RhdF9yYXRlID4gSUJfUkFURV8yXzVfR0JQUyAr IE1MWDRfU1RBVF9SQVRFX09GRlNFVCAmJgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5k L2h3L3FpYi9xaWJfdmVyYnNfbWNhc3QuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWli X3ZlcmJzX21jYXN0LmMKaW5kZXggZGFiYjY5N2IxYzJhLi40OGJhMWMzZTk0NWEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3ZlcmJzX21jYXN0LmMKKysrIGIvZHJp dmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfdmVyYnNfbWNhc3QuYwpAQCAtMjg2LDE1ICsyODYs MTMgQEAgaW50IHFpYl9tdWx0aWNhc3RfZGV0YWNoKHN0cnVjdCBpYl9xcCAqaWJxcCwgdW5pb24g aWJfZ2lkICpnaWQsIHUxNiBsaWQpCiAJc3RydWN0IHFpYl9pYmRldiAqZGV2ID0gdG9faWRldihp YnFwLT5kZXZpY2UpOwogCXN0cnVjdCBxaWJfaWJwb3J0ICppYnAgPSB0b19pcG9ydChpYnFwLT5k ZXZpY2UsIHFwLT5wb3J0X251bSk7CiAJc3RydWN0IHFpYl9tY2FzdCAqbWNhc3QgPSBOVUxMOwot CXN0cnVjdCBxaWJfbWNhc3RfcXAgKnAsICp0bXA7CisJc3RydWN0IHFpYl9tY2FzdF9xcCAqcCwg KnRtcCwgKmRlbHAgPSBOVUxMOwogCXN0cnVjdCByYl9ub2RlICpuOwogCWludCBsYXN0ID0gMDsK IAlpbnQgcmV0OwogCi0JaWYgKGlicXAtPnFwX251bSA8PSAxIHx8IHFwLT5zdGF0ZSA9PSBJQl9R UFNfUkVTRVQpIHsKLQkJcmV0ID0gLUVJTlZBTDsKLQkJZ290byBiYWlsOwotCX0KKwlpZiAoaWJx cC0+cXBfbnVtIDw9IDEgfHwgcXAtPnN0YXRlID09IElCX1FQU19SRVNFVCkKKwkJcmV0dXJuIC1F SU5WQUw7CiAKIAlzcGluX2xvY2tfaXJxKCZpYnAtPmxvY2spOwogCkBAIC0zMDMsOCArMzAxLDcg QEAgaW50IHFpYl9tdWx0aWNhc3RfZGV0YWNoKHN0cnVjdCBpYl9xcCAqaWJxcCwgdW5pb24gaWJf Z2lkICpnaWQsIHUxNiBsaWQpCiAJd2hpbGUgKDEpIHsKIAkJaWYgKG4gPT0gTlVMTCkgewogCQkJ c3Bpbl91bmxvY2tfaXJxKCZpYnAtPmxvY2spOwotCQkJcmV0ID0gLUVJTlZBTDsKLQkJCWdvdG8g YmFpbDsKKwkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAKIAkJbWNhc3QgPSByYl9lbnRyeShuLCBz dHJ1Y3QgcWliX21jYXN0LCByYl9ub2RlKTsKQEAgLTMyOCw2ICszMjUsNyBAQCBpbnQgcWliX211 bHRpY2FzdF9kZXRhY2goc3RydWN0IGliX3FwICppYnFwLCB1bmlvbiBpYl9naWQgKmdpZCwgdTE2 IGxpZCkKIAkJICovCiAJCWxpc3RfZGVsX3JjdSgmcC0+bGlzdCk7CiAJCW1jYXN0LT5uX2F0dGFj aGVkLS07CisJCWRlbHAgPSBwOwogCiAJCS8qIElmIHRoaXMgd2FzIHRoZSBsYXN0IGF0dGFjaGVk IFFQLCByZW1vdmUgdGhlIEdJRCB0b28uICovCiAJCWlmIChsaXN0X2VtcHR5KCZtY2FzdC0+cXBf bGlzdCkpIHsKQEAgLTMzOCwxNSArMzM2LDE2IEBAIGludCBxaWJfbXVsdGljYXN0X2RldGFjaChz dHJ1Y3QgaWJfcXAgKmlicXAsIHVuaW9uIGliX2dpZCAqZ2lkLCB1MTYgbGlkKQogCX0KIAogCXNw aW5fdW5sb2NrX2lycSgmaWJwLT5sb2NrKTsKKwkvKiBRUCBub3QgYXR0YWNoZWQgKi8KKwlpZiAo IWRlbHApCisJCXJldHVybiAtRUlOVkFMOworCS8qCisJICogV2FpdCBmb3IgYW55IGxpc3Qgd2Fs a2VycyB0byBmaW5pc2ggYmVmb3JlIGZyZWVpbmcgdGhlCisJICogbGlzdCBlbGVtZW50LgorCSAq LworCXdhaXRfZXZlbnQobWNhc3QtPndhaXQsIGF0b21pY19yZWFkKCZtY2FzdC0+cmVmY291bnQp IDw9IDEpOworCXFpYl9tY2FzdF9xcF9mcmVlKGRlbHApOwogCi0JaWYgKHApIHsKLQkJLyoKLQkJ ICogV2FpdCBmb3IgYW55IGxpc3Qgd2Fsa2VycyB0byBmaW5pc2ggYmVmb3JlIGZyZWVpbmcgdGhl Ci0JCSAqIGxpc3QgZWxlbWVudC4KLQkJICovCi0JCXdhaXRfZXZlbnQobWNhc3QtPndhaXQsIGF0 b21pY19yZWFkKCZtY2FzdC0+cmVmY291bnQpIDw9IDEpOwotCQlxaWJfbWNhc3RfcXBfZnJlZShw KTsKLQl9CiAJaWYgKGxhc3QpIHsKIAkJYXRvbWljX2RlYygmbWNhc3QtPnJlZmNvdW50KTsKIAkJ d2FpdF9ldmVudChtY2FzdC0+d2FpdCwgIWF0b21pY19yZWFkKCZtY2FzdC0+cmVmY291bnQpKTsK QEAgLTM1NSwxMSArMzU0LDcgQEAgaW50IHFpYl9tdWx0aWNhc3RfZGV0YWNoKHN0cnVjdCBpYl9x cCAqaWJxcCwgdW5pb24gaWJfZ2lkICpnaWQsIHUxNiBsaWQpCiAJCWRldi0+bl9tY2FzdF9ncnBz X2FsbG9jYXRlZC0tOwogCQlzcGluX3VubG9ja19pcnEoJmRldi0+bl9tY2FzdF9ncnBzX2xvY2sp OwogCX0KLQotCXJldCA9IDA7Ci0KLWJhaWw6Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0K IAogaW50IHFpYl9tY2FzdF90cmVlX2VtcHR5KHN0cnVjdCBxaWJfaWJwb3J0ICppYnApCmRpZmYg LS1naXQgYS9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLXg4NmlhNjRpby5oIGIvZHJpdmVycy9p bnB1dC9zZXJpby9pODA0Mi14ODZpYTY0aW8uaAppbmRleCA4NThiMGUzNDg0NDMuLjZjZWNjYzJm MmQ2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9zZXJpby9pODA0Mi14ODZpYTY0aW8uaAor KysgYi9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLXg4NmlhNjRpby5oCkBAIC0yNTgsNiArMjU4 LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBfX2luaXRjb25zdCBpODA0 Ml9kbWlfbm9tdXhfdGFibGVbXSA9IHsKIAkJfSwKIAl9LAogCXsKKwkJLyogRnVqaXRzdSBMaWZl Ym9vayBVNzQ1ICovCisJCS5tYXRjaGVzID0geworCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9S LCAiRlVKSVRTVSIpLAorCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJMSUZFQk9PSyBV NzQ1IiksCisJCX0sCisJfSwKKwl7CiAJCS8qIEZ1aml0c3UgVDcwSCAqLwogCQkubWF0Y2hlcyA9 IHsKIAkJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIkZVSklUU1UiKSwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbWQvZG0tZXhjZXB0aW9uLXN0b3JlLmggYi9kcml2ZXJzL21kL2RtLWV4Y2VwdGlv bi1zdG9yZS5oCmluZGV4IDBiMjUzNjI0N2NmNS4uODRlMjc3MDhhZDk3IDEwMDY0NAotLS0gYS9k cml2ZXJzL21kL2RtLWV4Y2VwdGlvbi1zdG9yZS5oCisrKyBiL2RyaXZlcnMvbWQvZG0tZXhjZXB0 aW9uLXN0b3JlLmgKQEAgLTcwLDcgKzcwLDcgQEAgc3RydWN0IGRtX2V4Y2VwdGlvbl9zdG9yZV90 eXBlIHsKIAkgKiBVcGRhdGUgdGhlIG1ldGFkYXRhIHdpdGggdGhpcyBleGNlcHRpb24uCiAJICov CiAJdm9pZCAoKmNvbW1pdF9leGNlcHRpb24pIChzdHJ1Y3QgZG1fZXhjZXB0aW9uX3N0b3JlICpz dG9yZSwKLQkJCQkgIHN0cnVjdCBkbV9leGNlcHRpb24gKmUsCisJCQkJICBzdHJ1Y3QgZG1fZXhj ZXB0aW9uICplLCBpbnQgdmFsaWQsCiAJCQkJICB2b2lkICgqY2FsbGJhY2spICh2b2lkICosIGlu dCBzdWNjZXNzKSwKIAkJCQkgIHZvaWQgKmNhbGxiYWNrX2NvbnRleHQpOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL21kL2RtLXNuYXAtcGVyc2lzdGVudC5jIGIvZHJpdmVycy9tZC9kbS1zbmFwLXBl cnNpc3RlbnQuYwppbmRleCA3NWMxODJiZmQxMjguLjYyMTVmMzRhM2QxMCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9tZC9kbS1zbmFwLXBlcnNpc3RlbnQuYworKysgYi9kcml2ZXJzL21kL2RtLXNuYXAt cGVyc2lzdGVudC5jCkBAIC02NDYsNyArNjQ2LDcgQEAgc3RhdGljIGludCBwZXJzaXN0ZW50X3By ZXBhcmVfZXhjZXB0aW9uKHN0cnVjdCBkbV9leGNlcHRpb25fc3RvcmUgKnN0b3JlLAogfQogCiBz dGF0aWMgdm9pZCBwZXJzaXN0ZW50X2NvbW1pdF9leGNlcHRpb24oc3RydWN0IGRtX2V4Y2VwdGlv bl9zdG9yZSAqc3RvcmUsCi0JCQkJCXN0cnVjdCBkbV9leGNlcHRpb24gKmUsCisJCQkJCXN0cnVj dCBkbV9leGNlcHRpb24gKmUsIGludCB2YWxpZCwKIAkJCQkJdm9pZCAoKmNhbGxiYWNrKSAodm9p ZCAqLCBpbnQgc3VjY2VzcyksCiAJCQkJCXZvaWQgKmNhbGxiYWNrX2NvbnRleHQpCiB7CkBAIC02 NTUsNiArNjU1LDkgQEAgc3RhdGljIHZvaWQgcGVyc2lzdGVudF9jb21taXRfZXhjZXB0aW9uKHN0 cnVjdCBkbV9leGNlcHRpb25fc3RvcmUgKnN0b3JlLAogCXN0cnVjdCBjb3JlX2V4Y2VwdGlvbiBj ZTsKIAlzdHJ1Y3QgY29tbWl0X2NhbGxiYWNrICpjYjsKIAorCWlmICghdmFsaWQpCisJCXBzLT52 YWxpZCA9IDA7CisKIAljZS5vbGRfY2h1bmsgPSBlLT5vbGRfY2h1bms7CiAJY2UubmV3X2NodW5r ID0gZS0+bmV3X2NodW5rOwogCXdyaXRlX2V4Y2VwdGlvbihwcywgcHMtPmN1cnJlbnRfY29tbWl0 dGVkKyssICZjZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXNuYXAtdHJhbnNpZW50LmMg Yi9kcml2ZXJzL21kL2RtLXNuYXAtdHJhbnNpZW50LmMKaW5kZXggMWNlOWEyNTg2ZTQxLi4zMTQz OWQ1M2NmN2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tc25hcC10cmFuc2llbnQuYworKysg Yi9kcml2ZXJzL21kL2RtLXNuYXAtdHJhbnNpZW50LmMKQEAgLTUyLDEyICs1MiwxMiBAQCBzdGF0 aWMgaW50IHRyYW5zaWVudF9wcmVwYXJlX2V4Y2VwdGlvbihzdHJ1Y3QgZG1fZXhjZXB0aW9uX3N0 b3JlICpzdG9yZSwKIH0KIAogc3RhdGljIHZvaWQgdHJhbnNpZW50X2NvbW1pdF9leGNlcHRpb24o c3RydWN0IGRtX2V4Y2VwdGlvbl9zdG9yZSAqc3RvcmUsCi0JCQkJICAgICAgIHN0cnVjdCBkbV9l eGNlcHRpb24gKmUsCisJCQkJICAgICAgIHN0cnVjdCBkbV9leGNlcHRpb24gKmUsIGludCB2YWxp ZCwKIAkJCQkgICAgICAgdm9pZCAoKmNhbGxiYWNrKSAodm9pZCAqLCBpbnQgc3VjY2VzcyksCiAJ CQkJICAgICAgIHZvaWQgKmNhbGxiYWNrX2NvbnRleHQpCiB7CiAJLyogSnVzdCBzdWNjZWVkICov Ci0JY2FsbGJhY2soY2FsbGJhY2tfY29udGV4dCwgMSk7CisJY2FsbGJhY2soY2FsbGJhY2tfY29u dGV4dCwgdmFsaWQpOwogfQogCiBzdGF0aWMgdm9pZCB0cmFuc2llbnRfdXNhZ2Uoc3RydWN0IGRt X2V4Y2VwdGlvbl9zdG9yZSAqc3RvcmUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXNuYXAu YyBiL2RyaXZlcnMvbWQvZG0tc25hcC5jCmluZGV4IDZiOTRjM2NlNDJlZC4uMDljMmI0ZjJkNTEy IDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL2RtLXNuYXAuYworKysgYi9kcml2ZXJzL21kL2RtLXNu YXAuYwpAQCAtMTM5Myw4ICsxMzkzLDkgQEAgc3RhdGljIHZvaWQgX19pbnZhbGlkYXRlX3NuYXBz aG90KHN0cnVjdCBkbV9zbmFwc2hvdCAqcywgaW50IGVycikKIAlkbV90YWJsZV9ldmVudChzLT50 aS0+dGFibGUpOwogfQogCi1zdGF0aWMgdm9pZCBwZW5kaW5nX2NvbXBsZXRlKHN0cnVjdCBkbV9z bmFwX3BlbmRpbmdfZXhjZXB0aW9uICpwZSwgaW50IHN1Y2Nlc3MpCitzdGF0aWMgdm9pZCBwZW5k aW5nX2NvbXBsZXRlKHZvaWQgKmNvbnRleHQsIGludCBzdWNjZXNzKQogeworCXN0cnVjdCBkbV9z bmFwX3BlbmRpbmdfZXhjZXB0aW9uICpwZSA9IGNvbnRleHQ7CiAJc3RydWN0IGRtX2V4Y2VwdGlv biAqZTsKIAlzdHJ1Y3QgZG1fc25hcHNob3QgKnMgPSBwZS0+c25hcDsKIAlzdHJ1Y3QgYmlvICpv cmlnaW5fYmlvcyA9IE5VTEw7CkBAIC0xNDY0LDI0ICsxNDY1LDEzIEBAIG91dDoKIAlmcmVlX3Bl bmRpbmdfZXhjZXB0aW9uKHBlKTsKIH0KIAotc3RhdGljIHZvaWQgY29tbWl0X2NhbGxiYWNrKHZv aWQgKmNvbnRleHQsIGludCBzdWNjZXNzKQotewotCXN0cnVjdCBkbV9zbmFwX3BlbmRpbmdfZXhj ZXB0aW9uICpwZSA9IGNvbnRleHQ7Ci0KLQlwZW5kaW5nX2NvbXBsZXRlKHBlLCBzdWNjZXNzKTsK LX0KLQogc3RhdGljIHZvaWQgY29tcGxldGVfZXhjZXB0aW9uKHN0cnVjdCBkbV9zbmFwX3BlbmRp bmdfZXhjZXB0aW9uICpwZSkKIHsKIAlzdHJ1Y3QgZG1fc25hcHNob3QgKnMgPSBwZS0+c25hcDsK IAotCWlmICh1bmxpa2VseShwZS0+Y29weV9lcnJvcikpCi0JCXBlbmRpbmdfY29tcGxldGUocGUs IDApOwotCi0JZWxzZQotCQkvKiBVcGRhdGUgdGhlIG1ldGFkYXRhIGlmIHdlIGFyZSBwZXJzaXN0 ZW50ICovCi0JCXMtPnN0b3JlLT50eXBlLT5jb21taXRfZXhjZXB0aW9uKHMtPnN0b3JlLCAmcGUt PmUsCi0JCQkJCQkgY29tbWl0X2NhbGxiYWNrLCBwZSk7CisJLyogVXBkYXRlIHRoZSBtZXRhZGF0 YSBpZiB3ZSBhcmUgcGVyc2lzdGVudCAqLworCXMtPnN0b3JlLT50eXBlLT5jb21taXRfZXhjZXB0 aW9uKHMtPnN0b3JlLCAmcGUtPmUsICFwZS0+Y29weV9lcnJvciwKKwkJCQkJIHBlbmRpbmdfY29t cGxldGUsIHBlKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi1j b3JlL2R2Yl9mcm9udGVuZC5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLWNvcmUvZHZiX2Zyb250 ZW5kLmMKaW5kZXggMmMwYWNkYjRkODExLi41MDUzNzRkZWY3MmEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbWVkaWEvZHZiL2R2Yi1jb3JlL2R2Yl9mcm9udGVuZC5jCisrKyBiL2RyaXZlcnMvbWVkaWEv ZHZiL2R2Yi1jb3JlL2R2Yl9mcm9udGVuZC5jCkBAIC0xNjYxLDkgKzE2NjEsOSBAQCBzdGF0aWMg aW50IGR2Yl9mcm9udGVuZF9pb2N0bF9sZWdhY3koc3RydWN0IGZpbGUgKmZpbGUsCiAJCW1lbWNw eShpbmZvLCAmZmUtPm9wcy5pbmZvLCBzaXplb2Yoc3RydWN0IGR2Yl9mcm9udGVuZF9pbmZvKSk7 CiAJCWR2Yl9mcm9udGVuZF9nZXRfZnJlcXVlbmN5X2xpbWl0cyhmZSwgJmluZm8tPmZyZXF1ZW5j eV9taW4sICZpbmZvLT5mcmVxdWVuY3lfbWF4KTsKIAotCQkvKiBGb3JjZSB0aGUgQ0FOX0lOVkVS U0lPTl9BVVRPIGJpdCBvbi4gSWYgdGhlIGZyb250ZW5kIGRvZXNuJ3QKLQkJICogZG8gaXQsIGl0 IGlzIGRvbmUgZm9yIGl0LiAqLwotCQlpbmZvLT5jYXBzIHw9IEZFX0NBTl9JTlZFUlNJT05fQVVU TzsKKwkJLyogU2V0IENBTl9JTlZFUlNJT05fQVVUTyBiaXQgb24gaW4gb3RoZXIgdGhhbiBvbmVz aG90IG1vZGUgKi8KKwkJaWYgKCEoZmVwcml2LT50dW5lX21vZGVfZmxhZ3MgJiBGRV9UVU5FX01P REVfT05FU0hPVCkpCisJCQlpbmZvLT5jYXBzIHw9IEZFX0NBTl9JTlZFUlNJT05fQVVUTzsKIAkJ ZXJyID0gMDsKIAkJYnJlYWs7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9yYy9yYy1t YWluLmMgYi9kcml2ZXJzL21lZGlhL3JjL3JjLW1haW4uYwppbmRleCAyYmU1MWM4OTAxNDEuLjBh NmNjZWJmZjJiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9yYy9yYy1tYWluLmMKKysrIGIv ZHJpdmVycy9tZWRpYS9yYy9yYy1tYWluLmMKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IHJjX21h cCAqcmNfbWFwX2dldChjb25zdCBjaGFyICpuYW1lKQogCXN0cnVjdCByY19tYXBfbGlzdCAqbWFw OwogCiAJbWFwID0gc2Vla19yY19tYXAobmFtZSk7Ci0jaWZkZWYgTU9EVUxFCisjaWZkZWYgQ09O RklHX01PRFVMRVMKIAlpZiAoIW1hcCkgewogCQlpbnQgcmMgPSByZXF1ZXN0X21vZHVsZShuYW1l KTsKIAkJaWYgKHJjIDwgMCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9nc3Bj YS9vdjUzNC5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9nc3BjYS9vdjUzNC5jCmluZGV4IDc2OTA3 ZWNlZDRhMS4uNDc0NTYxMzBmZDBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2dz cGNhL292NTM0LmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9nc3BjYS9vdjUzNC5jCkBAIC0x NDgxLDggKzE0ODEsMTMgQEAgc3RhdGljIHZvaWQgc2Rfc2V0X3N0cmVhbXBhcm0oc3RydWN0IGdz cGNhX2RldiAqZ3NwY2FfZGV2LAogCXN0cnVjdCB2NGwyX2ZyYWN0ICp0cGYgPSAmY3AtPnRpbWVw ZXJmcmFtZTsKIAlzdHJ1Y3Qgc2QgKnNkID0gKHN0cnVjdCBzZCAqKSBnc3BjYV9kZXY7CiAKLQkv KiBTZXQgcmVxdWVzdGVkIGZyYW1lcmF0ZSAqLwotCXNkLT5mcmFtZV9yYXRlID0gdHBmLT5kZW5v bWluYXRvciAvIHRwZi0+bnVtZXJhdG9yOworCWlmICh0cGYtPm51bWVyYXRvciA9PSAwIHx8IHRw Zi0+ZGVub21pbmF0b3IgPT0gMCkKKwkJLyogU2V0IGRlZmF1bHQgZnJhbWVyYXRlICovCisJCXNk LT5mcmFtZV9yYXRlID0gMzA7CisJZWxzZQorCQkvKiBTZXQgcmVxdWVzdGVkIGZyYW1lcmF0ZSAq LworCQlzZC0+ZnJhbWVfcmF0ZSA9IHRwZi0+ZGVub21pbmF0b3IgLyB0cGYtPm51bWVyYXRvcjsK KwogCWlmIChnc3BjYV9kZXYtPnN0cmVhbWluZykKIAkJc2V0X2ZyYW1lX3JhdGUoZ3NwY2FfZGV2 KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9nc3BjYS90b3Byby5jIGIvZHJp dmVycy9tZWRpYS92aWRlby9nc3BjYS90b3Byby5jCmluZGV4IDI5NTk2YzU5ODM3Zi4uYWFjODIz YjU0M2U0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2dzcGNhL3RvcHJvLmMKKysr IGIvZHJpdmVycy9tZWRpYS92aWRlby9nc3BjYS90b3Byby5jCkBAIC00Nzg5LDcgKzQ3ODksMTEg QEAgc3RhdGljIHZvaWQgc2Rfc2V0X3N0cmVhbXBhcm0oc3RydWN0IGdzcGNhX2RldiAqZ3NwY2Ff ZGV2LAogCXN0cnVjdCB2NGwyX2ZyYWN0ICp0cGYgPSAmY3AtPnRpbWVwZXJmcmFtZTsKIAlpbnQg ZnIsIGk7CiAKLQlzZC0+ZnJhbWVyYXRlID0gdHBmLT5kZW5vbWluYXRvciAvIHRwZi0+bnVtZXJh dG9yOworCWlmICh0cGYtPm51bWVyYXRvciA9PSAwIHx8IHRwZi0+ZGVub21pbmF0b3IgPT0gMCkK KwkJc2QtPmZyYW1lcmF0ZSA9IDMwOworCWVsc2UKKwkJc2QtPmZyYW1lcmF0ZSA9IHRwZi0+ZGVu b21pbmF0b3IgLyB0cGYtPm51bWVyYXRvcjsKKwogCWlmIChnc3BjYV9kZXYtPnN0cmVhbWluZykK IAkJc2V0ZnJhbWVyYXRlKGdzcGNhX2Rldik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEv dmlkZW8vdXNidmlzaW9uL3VzYnZpc2lvbi12aWRlby5jIGIvZHJpdmVycy9tZWRpYS92aWRlby91 c2J2aXNpb24vdXNidmlzaW9uLXZpZGVvLmMKaW5kZXggNWE3NGY1ZTA3ZDdkLi45MDIxNDBlOGRi M2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXNidmlzaW9uL3VzYnZpc2lvbi12 aWRlby5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXNidmlzaW9uL3VzYnZpc2lvbi12aWRl by5jCkBAIC0xNDI1LDYgKzE0MjUsNyBAQCBzdGF0aWMgdm9pZCB1c2J2aXNpb25fcmVsZWFzZShz dHJ1Y3QgdXNiX3VzYnZpc2lvbiAqdXNidmlzaW9uKQogCiAJdXNidmlzaW9uX3JlbW92ZV9zeXNm cyh1c2J2aXNpb24tPnZkZXYpOwogCXVzYnZpc2lvbl91bnJlZ2lzdGVyX3ZpZGVvKHVzYnZpc2lv bik7CisJa2ZyZWUodXNidmlzaW9uLT5hbHRfbWF4X3BrdF9zaXplKTsKIAogCXVzYl9mcmVlX3Vy Yih1c2J2aXNpb24tPmN0cmxfdXJiKTsKIApAQCAtMTQ4Niw3ICsxNDg3LDcgQEAgc3RhdGljIGlu dCBfX2RldmluaXQgdXNidmlzaW9uX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAog CWNvbnN0IHN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmludGVyZmFjZTsKIAlzdHJ1Y3QgdXNi X3VzYnZpc2lvbiAqdXNidmlzaW9uID0gTlVMTDsKIAljb25zdCBzdHJ1Y3QgdXNiX2VuZHBvaW50 X2Rlc2NyaXB0b3IgKmVuZHBvaW50OwotCWludCBtb2RlbCwgaTsKKwlpbnQgbW9kZWwsIGksIHJl dDsKIAogCVBERUJVRyhEQkdfUFJPQkUsICJWSUQ9JSMwNHgsIFBJRD0lIzA0eCwgaWZudW09JXUi LAogCQkJCWRldi0+ZGVzY3JpcHRvci5pZFZlbmRvciwKQEAgLTE0OTUsMzMgKzE0OTYsNTggQEAg c3RhdGljIGludCBfX2RldmluaXQgdXNidmlzaW9uX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNl ICppbnRmLAogCW1vZGVsID0gZGV2aWQtPmRyaXZlcl9pbmZvOwogCWlmIChtb2RlbCA8IDAgfHwg bW9kZWwgPj0gdXNidmlzaW9uX2RldmljZV9kYXRhX3NpemUpIHsKIAkJUERFQlVHKERCR19QUk9C RSwgIm1vZGVsIG91dCBvZiBib3VuZHMgJWQiLCBtb2RlbCk7Ci0JCXJldHVybiAtRU5PREVWOwor CQlyZXQgPSAtRU5PREVWOworCQlnb3RvIGVycl91c2I7CiAJfQogCXByaW50ayhLRVJOX0lORk8g IiVzOiAlcyBmb3VuZFxuIiwgX19mdW5jX18sCiAJCQkJdXNidmlzaW9uX2RldmljZV9kYXRhW21v ZGVsXS5tb2RlbF9zdHJpbmcpOwogCisJLyoKKwkgKiB0aGlzIGlzIGEgc2VjdXJpdHkgY2hlY2su CisJICogYW4gZXhwbG9pdCB1c2luZyBhbiBpbmNvcnJlY3QgYkludGVyZmFjZU51bWJlciBpcyBr bm93bgorCSAqLworCWlmIChpZm51bSA+PSBVU0JfTUFYSU5URVJGQUNFUyB8fCAhZGV2LT5hY3Rj b25maWctPmludGVyZmFjZVtpZm51bV0pCisJCXJldHVybiAtRU5PREVWOworCiAJaWYgKHVzYnZp c2lvbl9kZXZpY2VfZGF0YVttb2RlbF0uaW50ZXJmYWNlID49IDApCiAJCWludGVyZmFjZSA9ICZk ZXYtPmFjdGNvbmZpZy0+aW50ZXJmYWNlW3VzYnZpc2lvbl9kZXZpY2VfZGF0YVttb2RlbF0uaW50 ZXJmYWNlXS0+YWx0c2V0dGluZ1swXTsKLQllbHNlCisJZWxzZSBpZiAoaWZudW0gPCBkZXYtPmFj dGNvbmZpZy0+ZGVzYy5iTnVtSW50ZXJmYWNlcykKIAkJaW50ZXJmYWNlID0gJmRldi0+YWN0Y29u ZmlnLT5pbnRlcmZhY2VbaWZudW1dLT5hbHRzZXR0aW5nWzBdOworCWVsc2UgeworCQlkZXZfZXJy KCZpbnRmLT5kZXYsICJpbnRlcmZhY2UgJWQgaXMgaW52YWxpZCwgbWF4IGlzICVkXG4iLAorCQkg ICAgaWZudW0sIGRldi0+YWN0Y29uZmlnLT5kZXNjLmJOdW1JbnRlcmZhY2VzIC0gMSk7CisJCXJl dCA9IC1FTk9ERVY7CisJCWdvdG8gZXJyX3VzYjsKKwl9CisKKwlpZiAoaW50ZXJmYWNlLT5kZXNj LmJOdW1FbmRwb2ludHMgPCAyKSB7CisJCWRldl9lcnIoJmludGYtPmRldiwgImludGVyZmFjZSAl ZCBoYXMgJWQgZW5kcG9pbnRzLCBidXQgbXVzdCIKKwkJICAgICIgaGF2ZSBtaW5pbXVtIDJcbiIs IGlmbnVtLCBpbnRlcmZhY2UtPmRlc2MuYk51bUVuZHBvaW50cyk7CisJCXJldCA9IC1FTk9ERVY7 CisJCWdvdG8gZXJyX3VzYjsKKwl9CiAJZW5kcG9pbnQgPSAmaW50ZXJmYWNlLT5lbmRwb2ludFsx XS5kZXNjOworCiAJaWYgKCF1c2JfZW5kcG9pbnRfeGZlcl9pc29jKGVuZHBvaW50KSkgewogCQlk ZXZfZXJyKCZpbnRmLT5kZXYsICIlczogaW50ZXJmYWNlICVkLiBoYXMgbm9uLUlTTyBlbmRwb2lu dCFcbiIsCiAJCSAgICBfX2Z1bmNfXywgaWZudW0pOwogCQlkZXZfZXJyKCZpbnRmLT5kZXYsICIl czogRW5kcG9pbnQgYXR0cmlidXRlcyAlZCIsCiAJCSAgICBfX2Z1bmNfXywgZW5kcG9pbnQtPmJt QXR0cmlidXRlcyk7Ci0JCXJldHVybiAtRU5PREVWOworCQlyZXQgPSAtRU5PREVWOworCQlnb3Rv IGVycl91c2I7CiAJfQogCWlmICh1c2JfZW5kcG9pbnRfZGlyX291dChlbmRwb2ludCkpIHsKIAkJ ZGV2X2VycigmaW50Zi0+ZGV2LCAiJXM6IGludGVyZmFjZSAlZC4gaGFzIElTTyBPVVQgZW5kcG9p bnQhXG4iLAogCQkgICAgX19mdW5jX18sIGlmbnVtKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJCXJl dCA9IC1FTk9ERVY7CisJCWdvdG8gZXJyX3VzYjsKIAl9CiAKIAl1c2J2aXNpb24gPSB1c2J2aXNp b25fYWxsb2MoZGV2LCBpbnRmKTsKIAlpZiAodXNidmlzaW9uID09IE5VTEwpIHsKIAkJZGV2X2Vy cigmaW50Zi0+ZGV2LCAiJXM6IGNvdWxkbid0IGFsbG9jYXRlIFVTQlZpc2lvbiBzdHJ1Y3RcbiIs IF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8g ZXJyX3VzYjsKIAl9CiAKIAlpZiAoZGV2LT5kZXNjcmlwdG9yLmJOdW1Db25maWd1cmF0aW9ucyA+ IDEpCkBAIC0xNTQwLDcgKzE1NjYsOCBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCB1c2J2aXNpb25f cHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiAJdXNidmlzaW9uLT5hbHRfbWF4X3Br dF9zaXplID0ga21hbGxvYygzMiAqIHVzYnZpc2lvbi0+bnVtX2FsdCwgR0ZQX0tFUk5FTCk7CiAJ aWYgKHVzYnZpc2lvbi0+YWx0X21heF9wa3Rfc2l6ZSA9PSBOVUxMKSB7CiAJCWRldl9lcnIoJmlu dGYtPmRldiwgInVzYnZpc2lvbjogb3V0IG9mIG1lbW9yeSFcbiIpOwotCQlyZXR1cm4gLUVOT01F TTsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJfcGt0OwogCX0KIAogCWZvciAoaSA9IDA7 IGkgPCB1c2J2aXNpb24tPm51bV9hbHQ7IGkrKykgewpAQCAtMTU3NSw2ICsxNjAyLDEyIEBAIHN0 YXRpYyBpbnQgX19kZXZpbml0IHVzYnZpc2lvbl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAq aW50ZiwKIAogCVBERUJVRyhEQkdfUFJPQkUsICJzdWNjZXNzIik7CiAJcmV0dXJuIDA7CisKK2Vy cl9wa3Q6CisJdXNidmlzaW9uX3JlbGVhc2UodXNidmlzaW9uKTsKK2Vycl91c2I6CisJdXNiX3B1 dF9kZXYoZGV2KTsKKwlyZXR1cm4gcmV0OwogfQogCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3VzYi9hc2l4LmMgYi9kcml2ZXJzL25ldC91c2IvYXNpeC5jCmluZGV4IDNkMDY4ZmUwMzRjYy4u OWY1MzY5ODg4YWJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvYXNpeC5jCisrKyBiL2Ry aXZlcnMvbmV0L3VzYi9hc2l4LmMKQEAgLTM2MSw3ICszNjEsNyBAQCBzdGF0aWMgaW50IGFzaXhf cnhfZml4dXBfaW50ZXJuYWwoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti LAogCQl9CiAKIAkJaWYgKHJ4LT5zaXplID4gZGV2LT5uZXQtPm10dSArIEVUSF9ITEVOICsgVkxB Tl9ITEVOKSB7Ci0JCQluZXRkZXZfZXJyKGRldi0+bmV0LCAiYXNpeF9yeF9maXh1cCgpIEJhZCBS WCBMZW5ndGggJWRcbiIsCisJCQluZXRkZXZfZGJnKGRldi0+bmV0LCAiYXNpeF9yeF9maXh1cCgp IEJhZCBSWCBMZW5ndGggJWRcbiIsCiAJCQkJICAgcngtPnNpemUpOwogCQkJa2ZyZWVfc2tiKHJ4 LT5heF9za2IpOwogCQkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoOWsvaHRjX2hzdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0 Y19oc3QuYwppbmRleCA0Zjc4NDNhZTY4MDAuLjUxZTI1NmU3NTc4YSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19oc3QuYworKysgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2hzdC5jCkBAIC0zNzcsNyArMzc3LDcgQEAgdm9pZCBhdGg5 a19odGNfcnhfbXNnKHN0cnVjdCBodGNfdGFyZ2V0ICpodGNfaGFuZGxlLAogCWh0Y19oZHIgPSAo c3RydWN0IGh0Y19mcmFtZV9oZHIgKikgc2tiLT5kYXRhOwogCWVwaWQgPSBodGNfaGRyLT5lbmRw b2ludF9pZDsKIAotCWlmIChlcGlkID49IEVORFBPSU5UX01BWCkgeworCWlmIChlcGlkIDwgMCB8 fCBlcGlkID49IEVORFBPSU5UX01BWCkgewogCQlpZiAocGlwZV9pZCAhPSBVU0JfUkVHX0lOX1BJ UEUpCiAJCQlkZXZfa2ZyZWVfc2tiX2FueShza2IpOwogCQllbHNlCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjZS9zdy5jIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvcnRsd2lmaS9ydGw4MTkyY2Uvc3cuYwppbmRleCBkZjg1MmU4YWI1MjkuLmY3Y2ZmNDU2 ZGQwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyY2Uv c3cuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjZS9zdy5jCkBA IC0xMzgsNiArMTM4LDggQEAgaW50IHJ0bDkyY19pbml0X3N3X3ZhcnMoc3RydWN0IGllZWU4MDIx MV9odyAqaHcpCiAJcnRscHJpdi0+cHNjLmluYWN0aXZlcHMgPSBydGxwcml2LT5jZmctPm1vZF9w YXJhbXMtPmluYWN0aXZlcHM7CiAJcnRscHJpdi0+cHNjLnN3Y3RybF9scHMgPSBydGxwcml2LT5j ZmctPm1vZF9wYXJhbXMtPnN3Y3RybF9scHM7CiAJcnRscHJpdi0+cHNjLmZ3Y3RybF9scHMgPSBy dGxwcml2LT5jZmctPm1vZF9wYXJhbXMtPmZ3Y3RybF9scHM7CisJcnRscHJpdi0+Y2ZnLT5tb2Rf cGFyYW1zLT5zd19jcnlwdG8gPQorCQlydGxwcml2LT5jZmctPm1vZF9wYXJhbXMtPnN3X2NyeXB0 bzsKIAlpZiAoIXJ0bHByaXYtPnBzYy5pbmFjdGl2ZXBzKQogCQlwcl9pbmZvKCJydGw4MTkyY2U6 IFBvd2VyIFNhdmUgb2ZmIChtb2R1bGUgb3B0aW9uKVxuIik7CiAJaWYgKCFydGxwcml2LT5wc2Mu ZndjdHJsX2xwcykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvcnRs ODE5MmN1L3N3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjdS9zdy5j CmluZGV4IGU4MTNlZmZmZDZiMy4uN2Q2MjI3YzhjZjIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjdS9zdy5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL3J0bHdpZmkvcnRsODE5MmN1L3N3LmMKQEAgLTYyLDYgKzYyLDggQEAgc3RhdGljIGludCBy dGw5MmN1X2luaXRfc3dfdmFycyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykKIAlydGxwcml2LT5k bS5kaXNhYmxlX2ZyYW1lYnVyc3RpbmcgPSAwOwogCXJ0bHByaXYtPmRtLnRoZXJtYWx2YWx1ZSA9 IDA7CiAJcnRscHJpdi0+ZGJnLmdsb2JhbF9kZWJ1Z2xldmVsID0gcnRscHJpdi0+Y2ZnLT5tb2Rf cGFyYW1zLT5kZWJ1ZzsKKwlydGxwcml2LT5jZmctPm1vZF9wYXJhbXMtPnN3X2NyeXB0byA9CisJ CXJ0bHByaXYtPmNmZy0+bW9kX3BhcmFtcy0+c3dfY3J5cHRvOwogCXJ0bHByaXYtPnJ0bGhhbC5w ZmlybXdhcmUgPSB2bWFsbG9jKDB4NDAwMCk7CiAJaWYgKCFydGxwcml2LT5ydGxoYWwucGZpcm13 YXJlKSB7CiAJCVJUX1RSQUNFKHJ0bHByaXYsIENPTVBfRVJSLCBEQkdfRU1FUkcsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJkZS9zdy5jIGIvZHJpdmVy cy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyZGUvc3cuYwppbmRleCAxNDk0OTNmNGMyNWMu LjE4MTNjZGUzYjRjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9y dGw4MTkyZGUvc3cuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJk ZS9zdy5jCkBAIC0zODcsOCArMzg3LDggQEAgbW9kdWxlX3BhcmFtX25hbWVkKHN3bHBzLCBydGw5 MmRlX21vZF9wYXJhbXMuc3djdHJsX2xwcywgYm9vbCwgMDQ0NCk7CiBtb2R1bGVfcGFyYW1fbmFt ZWQoZndscHMsIHJ0bDkyZGVfbW9kX3BhcmFtcy5md2N0cmxfbHBzLCBib29sLCAwNDQ0KTsKIE1P RFVMRV9QQVJNX0RFU0Moc3dlbmMsICJTZXQgdG8gMSBmb3Igc29mdHdhcmUgY3J5cHRvIChkZWZh dWx0IDApXG4iKTsKIE1PRFVMRV9QQVJNX0RFU0MoaXBzLCAiU2V0IHRvIDAgdG8gbm90IHVzZSBs aW5rIHBvd2VyIHNhdmUgKGRlZmF1bHQgMSlcbiIpOwotTU9EVUxFX1BBUk1fREVTQyhzd2xwcywg IlNldCB0byAxIHRvIHVzZSBTVyBjb250cm9sIHBvd2VyIHNhdmUgKGRlZmF1bHQgMClcbiIpOwot TU9EVUxFX1BBUk1fREVTQyhmd2xwcywgIlNldCB0byAxIHRvIHVzZSBGVyBjb250cm9sIHBvd2Vy IHNhdmUgKGRlZmF1bHQgMSlcbiIpOworTU9EVUxFX1BBUk1fREVTQyhzd2xwcywgIlNldCB0byAx IHRvIHVzZSBTVyBjb250cm9sIHBvd2VyIHNhdmUgKGRlZmF1bHQgMSlcbiIpOworTU9EVUxFX1BB Uk1fREVTQyhmd2xwcywgIlNldCB0byAxIHRvIHVzZSBGVyBjb250cm9sIHBvd2VyIHNhdmUgKGRl ZmF1bHQgMClcbiIpOwogTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIlNldCBkZWJ1ZyBsZXZlbCAo MC01KSAoZGVmYXVsdCAwKSIpOwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgcnRs d2lmaV9wbV9vcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZp L3J0bDgxOTJzZS9zdy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyc2Uv c3cuYwppbmRleCA5MmY0OWQ1MjJjNTYuLmEwZTA2MTQyZGM3NSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyc2Uvc3cuYworKysgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJzZS9zdy5jCkBAIC0xNjcsNiArMTY3LDggQEAgc3RhdGlj IGludCBydGw5MnNfaW5pdF9zd192YXJzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KQogCXJ0bHBy aXYtPnBzYy5pbmFjdGl2ZXBzID0gcnRscHJpdi0+Y2ZnLT5tb2RfcGFyYW1zLT5pbmFjdGl2ZXBz OwogCXJ0bHByaXYtPnBzYy5zd2N0cmxfbHBzID0gcnRscHJpdi0+Y2ZnLT5tb2RfcGFyYW1zLT5z d2N0cmxfbHBzOwogCXJ0bHByaXYtPnBzYy5md2N0cmxfbHBzID0gcnRscHJpdi0+Y2ZnLT5tb2Rf cGFyYW1zLT5md2N0cmxfbHBzOworCXJ0bHByaXYtPmNmZy0+bW9kX3BhcmFtcy0+c3dfY3J5cHRv ID0KKwkJcnRscHJpdi0+Y2ZnLT5tb2RfcGFyYW1zLT5zd19jcnlwdG87CiAJaWYgKCFydGxwcml2 LT5wc2MuaW5hY3RpdmVwcykKIAkJcHJfaW5mbygicnRsODE5MmNlOiBQb3dlciBTYXZlIG9mZiAo bW9kdWxlIG9wdGlvbilcbiIpOwogCWlmICghcnRscHJpdi0+cHNjLmZ3Y3RybF9scHMpCkBAIC0z OTksOCArNDAxLDggQEAgbW9kdWxlX3BhcmFtX25hbWVkKHN3bHBzLCBydGw5MnNlX21vZF9wYXJh bXMuc3djdHJsX2xwcywgYm9vbCwgMDQ0NCk7CiBtb2R1bGVfcGFyYW1fbmFtZWQoZndscHMsIHJ0 bDkyc2VfbW9kX3BhcmFtcy5md2N0cmxfbHBzLCBib29sLCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RF U0Moc3dlbmMsICJTZXQgdG8gMSBmb3Igc29mdHdhcmUgY3J5cHRvIChkZWZhdWx0IDApXG4iKTsK IE1PRFVMRV9QQVJNX0RFU0MoaXBzLCAiU2V0IHRvIDAgdG8gbm90IHVzZSBsaW5rIHBvd2VyIHNh dmUgKGRlZmF1bHQgMSlcbiIpOwotTU9EVUxFX1BBUk1fREVTQyhzd2xwcywgIlNldCB0byAxIHRv IHVzZSBTVyBjb250cm9sIHBvd2VyIHNhdmUgKGRlZmF1bHQgMClcbiIpOwotTU9EVUxFX1BBUk1f REVTQyhmd2xwcywgIlNldCB0byAxIHRvIHVzZSBGVyBjb250cm9sIHBvd2VyIHNhdmUgKGRlZmF1 bHQgMSlcbiIpOworTU9EVUxFX1BBUk1fREVTQyhzd2xwcywgIlNldCB0byAxIHRvIHVzZSBTVyBj b250cm9sIHBvd2VyIHNhdmUgKGRlZmF1bHQgMSlcbiIpOworTU9EVUxFX1BBUk1fREVTQyhmd2xw cywgIlNldCB0byAxIHRvIHVzZSBGVyBjb250cm9sIHBvd2VyIHNhdmUgKGRlZmF1bHQgMClcbiIp OwogTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIlNldCBkZWJ1ZyBsZXZlbCAoMC01KSAoZGVmYXVs dCAwKSIpOwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgcnRsd2lmaV9wbV9vcHMg PSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3VzYi5jIGIvZHJp dmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS91c2IuYwppbmRleCAxN2U2NDI5NzhmOGQuLjk2ODEz N2EwZWNhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS91c2IuYwor KysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3VzYi5jCkBAIC01MDAsNiArNTAwLDgg QEAgc3RhdGljIHZvaWQgX3J0bF91c2JfcnhfcHJvY2Vzc19ub2FnZyhzdHJ1Y3QgaWVlZTgwMjEx X2h3ICpodywKIAkJfSBlbHNlIHsKIAkJCWRldl9rZnJlZV9za2JfYW55KHNrYik7CiAJCX0KKwl9 IGVsc2UgeworCQlkZXZfa2ZyZWVfc2tiX2FueShza2IpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvd2lyZWxlc3Mvd2wxMnh4L3NwaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv d2wxMnh4L3NwaS5jCmluZGV4IDBmOTcxODY3Nzg2MC4uNjg2NmUzZjhkNjRkIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC93aXJlbGVzcy93bDEyeHgvc3BpLmMKKysrIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3Mvd2wxMnh4L3NwaS5jCkBAIC02Nyw3ICs2NywxMCBAQAogLyogSFcgbGltaXRhdGlvbjog bWF4aW11bSBwb3NzaWJsZSBjaHVuayBzaXplIGlzIDQwOTUgYnl0ZXMgKi8KICNkZWZpbmUgV1NQ SV9NQVhfQ0hVTktfU0laRSAgICA0MDkyCiAKLSNkZWZpbmUgV1NQSV9NQVhfTlVNX09GX0NIVU5L UyAoV0wxMjcxX0FHR1JfQlVGRkVSX1NJWkUgLyBXU1BJX01BWF9DSFVOS19TSVpFKQorLyogTWF4 aW11bSBudW1iZXIgb2YgU1BJIHdyaXRlIGNodW5rcyAqLworI2RlZmluZSBXU1BJX01BWF9OVU1f T0ZfQ0hVTktTIFwKKwkoKFdMMTI3MV9BR0dSX0JVRkZFUl9TSVpFIC8gV1NQSV9NQVhfQ0hVTktf U0laRSkgKyAxKQorCiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNwaV9kZXZpY2UgKndsX3RvX3Nw aShzdHJ1Y3Qgd2wxMjcxICp3bCkKIHsKQEAgLTI3NCw5ICsyNzcsMTAgQEAgc3RhdGljIHZvaWQg d2wxMjcxX3NwaV9yYXdfcmVhZChzdHJ1Y3Qgd2wxMjcxICp3bCwgaW50IGFkZHIsIHZvaWQgKmJ1 ZiwKIHN0YXRpYyB2b2lkIHdsMTI3MV9zcGlfcmF3X3dyaXRlKHN0cnVjdCB3bDEyNzEgKndsLCBp bnQgYWRkciwgdm9pZCAqYnVmLAogCQkJICBzaXplX3QgbGVuLCBib29sIGZpeGVkKQogeworCS8q IFNQSSB3cml0ZSBidWZmZXJzIC0gMiBmb3IgZWFjaCBjaHVuayAqLwogCXN0cnVjdCBzcGlfdHJh bnNmZXIgdFsyICogV1NQSV9NQVhfTlVNX09GX0NIVU5LU107CiAJc3RydWN0IHNwaV9tZXNzYWdl IG07Ci0JdTMyIGNvbW1hbmRzW1dTUElfTUFYX05VTV9PRl9DSFVOS1NdOworCXUzMiBjb21tYW5k c1tXU1BJX01BWF9OVU1fT0ZfQ0hVTktTXTsgLyogMSBjb21tYW5kIHBlciBjaHVuayAqLwogCXUz MiAqY21kOwogCXUzMiBjaHVua19sZW47CiAJaW50IGk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bv d2VyL3Rlc3RfcG93ZXIuYyBiL2RyaXZlcnMvcG93ZXIvdGVzdF9wb3dlci5jCmluZGV4IGI1Mjdj OTNiZjJmMy4uYzRhMGY1YTM3MTg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bvd2VyL3Rlc3RfcG93 ZXIuYworKysgYi9kcml2ZXJzL3Bvd2VyL3Rlc3RfcG93ZXIuYwpAQCAtMjM3LDYgKzIzNyw4IEBA IHN0YXRpYyBpbnQgbWFwX2dldF92YWx1ZShzdHJ1Y3QgYmF0dGVyeV9wcm9wZXJ0eV9tYXAgKm1h cCwgY29uc3QgY2hhciAqa2V5LAogCWJ1ZltNQVhfS0VZTEVOR1RILTFdID0gJ1wwJzsKIAogCWNy ID0gc3RybmxlbihidWYsIE1BWF9LRVlMRU5HVEgpIC0gMTsKKwlpZiAoY3IgPCAwKQorCQlyZXR1 cm4gZGVmX3ZhbDsKIAlpZiAoYnVmW2NyXSA9PSAnXG4nKQogCQlidWZbY3JdID0gJ1wwJzsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2luaXRpby5jIGIvZHJpdmVycy9zY3NpL2luaXRpby5j CmluZGV4IGRkNzQxYmNkNmNjZC4uZmI0NTFmNzZjMmFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Nj c2kvaW5pdGlvLmMKKysrIGIvZHJpdmVycy9zY3NpL2luaXRpby5jCkBAIC0xMTAsMTEgKzExMCw2 IEBACiAjZGVmaW5lIGk5MXVfTUFYUVVFVUUJCTIKICNkZWZpbmUgaTkxdV9SRVZJRCAiSW5pdGlv IElOSS05WDAwVS9VVyBTQ1NJIGRldmljZSBkcml2ZXI7IFJldmlzaW9uOiAxLjA0YSIKIAotI2Rl ZmluZSBJOTUwX0RFVklDRV9JRAkweDk1MDAJLyogSW5pdGlvJ3MgaW5pYy05NTAgcHJvZHVjdCBJ RCAgICovCi0jZGVmaW5lIEk5NDBfREVWSUNFX0lECTB4OTQwMAkvKiBJbml0aW8ncyBpbmljLTk0 MCBwcm9kdWN0IElEICAgKi8KLSNkZWZpbmUgSTkzNV9ERVZJQ0VfSUQJMHg5NDAxCS8qIEluaXRp bydzIGluaWMtOTM1IHByb2R1Y3QgSUQgICAqLwotI2RlZmluZSBJOTIwX0RFVklDRV9JRAkweDAw MDIJLyogSW5pdGlvJ3Mgb3RoZXIgcHJvZHVjdCBJRCAgICAgICovCi0KICNpZmRlZiBERUJVR19p OTF1CiBzdGF0aWMgdW5zaWduZWQgaW50IGk5MXVfZGVidWcgPSBERUJVR19ERUZBVUxUOwogI2Vu ZGlmCkBAIC0xMjcsMTcgKzEyMiw2IEBAIHN0YXRpYyBpbnQgc2V0dXBfZGVidWcgPSAwOwogCiBz dGF0aWMgdm9pZCBpOTF1U0NCUG9zdCh1OCAqIHBIY2IsIHU4ICogcFNjYik7CiAKLS8qIFBDSSBE ZXZpY2VzIHN1cHBvcnRlZCBieSB0aGlzIGRyaXZlciAqLwotc3RhdGljIHN0cnVjdCBwY2lfZGV2 aWNlX2lkIGk5MXVfcGNpX2RldmljZXNbXSA9IHsKLQl7IFBDSV9WRU5ET1JfSURfSU5JVCwgIEk5 NTBfREVWSUNFX0lELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwKLQl7IFBDSV9W RU5ET1JfSURfSU5JVCwgIEk5NDBfREVWSUNFX0lELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAw LCAwLCAwfSwKLQl7IFBDSV9WRU5ET1JfSURfSU5JVCwgIEk5MzVfREVWSUNFX0lELCBQQ0lfQU5Z X0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwKLQl7IFBDSV9WRU5ET1JfSURfSU5JVCwgIEk5MjBf REVWSUNFX0lELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwKLQl7IFBDSV9WRU5E T1JfSURfRE9NRVgsIEk5MjBfREVWSUNFX0lELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAw LCAwfSwKLQl7IH0KLX07Ci1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgaTkxdV9wY2lfZGV2aWNl cyk7Ci0KICNkZWZpbmUgREVCVUdfSU5URVJSVVBUIDAKICNkZWZpbmUgREVCVUdfUVVFVUUgICAg IDAKICNkZWZpbmUgREVCVUdfU1RBVEUgICAgIDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hv c3QveGhjaS5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLmMKaW5kZXggZDdkZGI1YTA2NGQ5Li5h MWY5MGM3ZmI1NjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5jCisrKyBiL2Ry aXZlcnMvdXNiL2hvc3QveGhjaS5jCkBAIC00MzAwLDYgKzQzMDAsOSBAQCBzdGF0aWMgaW50IF9f aW5pdCB4aGNpX2hjZF9pbml0KHZvaWQpCiB7CiAJaW50IHJldHZhbDsKIAorCWlmICh1c2JfZGlz YWJsZWQoKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKIAlyZXR2YWwgPSB4aGNpX3JlZ2lzdGVyX3Bj aSgpOwogCWlmIChyZXR2YWwgPCAwKSB7CiAJCXByaW50ayhLRVJOX0RFQlVHICJQcm9ibGVtIHJl Z2lzdGVyaW5nIFBDSSBkcml2ZXIuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwv Y3AyMTB4LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMKaW5kZXggMTM5ODU5N2IxNzI1 Li4yZDYyMmQ3YmE1MzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHguYwor KysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMKQEAgLTE2Niw2ICsxNjYsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVbXSA9IHsKIAl7IFVTQl9ERVZJ Q0UoMHgxN0Y0LCAweEFBQUEpIH0sIC8qIFdhdmVzZW5zZSBKYXp6IGJsb29kIGdsdWNvc2UgbWV0 ZXIgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxODQzLCAweDAyMDApIH0sIC8qIFZhaXNhbGEgVVNCIElu c3RydW1lbnQgQ2FibGUgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxOEVGLCAweEUwMEYpIH0sIC8qIEVM ViBVU0ItSTJDLUludGVyZmFjZSAqLworCXsgVVNCX0RFVklDRSgweDE4RUYsIDB4RTAyNSkgfSwg LyogRUxWIE1hcmJsZSBTb3VuZCBCb2FyZCAxICovCiAJeyBVU0JfREVWSUNFKDB4MUFEQiwgMHgw MDAxKSB9LCAvKiBTY2h3ZWl0emVyIEVuZ2luZWVyaW5nIEM2NjIgQ2FibGUgKi8KIAl7IFVTQl9E RVZJQ0UoMHgxQjFDLCAweDFDMDApIH0sIC8qIENvcnNhaXIgVVNCIERvbmdsZSAqLwogCXsgVVNC X0RFVklDRSgweDFCQTQsIDB4MDAwMikgfSwJLyogU2lsaWNvbiBMYWJzIDM1OHggZmFjdG9yeSBk ZWZhdWx0ICovCmRpZmYgLS1naXQgYS9mcy9jaWZzL2NpZnNfZGVidWcuaCBiL2ZzL2NpZnMvY2lm c19kZWJ1Zy5oCmluZGV4IDg5NDJiMjhjZjgwNy4uM2Q1NWQ3MjA1MDlkIDEwMDY0NAotLS0gYS9m cy9jaWZzL2NpZnNfZGVidWcuaAorKysgYi9mcy9jaWZzL2NpZnNfZGVidWcuaApAQCAtMjMsNiAr MjMsOCBAQAogI2lmbmRlZiBfSF9DSUZTX0RFQlVHCiAjZGVmaW5lIF9IX0NJRlNfREVCVUcKIAor I2luY2x1ZGUgPGxpbnV4L3JhdGVsaW1pdC5oPgorCiB2b2lkIGNpZnNfZHVtcF9tZW0oY2hhciAq bGFiZWwsIHZvaWQgKmRhdGEsIGludCBsZW5ndGgpOwogI2lmZGVmIENPTkZJR19DSUZTX0RFQlVH MgogI2RlZmluZSBEQkcyIDIKQEAgLTQ4LDcgKzUwLDcgQEAgZXh0ZXJuIGludCBjaWZzRllJOwog I2RlZmluZSBjaWZzZnlpKGZtdCwgYXJnLi4uKQkJCQkJCVwKIGRvIHsJCQkJCQkJCQlcCiAJaWYg KGNpZnNGWUkgJiBDSUZTX0lORk8pCQkJCQlcCi0JCXByaW50ayhLRVJOX0RFQlVHICIlczogIiBm bXQgIlxuIiwgX19GSUxFX18sICMjYXJnKTsJXAorCQlwcl9kZWJ1Z19yYXRlbGltaXRlZCgiJXM6 ICIgZm10ICJcbiIsIF9fRklMRV9fLCAjI2FyZyk7IFwKIH0gd2hpbGUgKDApCiAKICNkZWZpbmUg Y0ZZSShzZXQsIGZtdCwgYXJnLi4uKQkJCVwKQEAgLTU4LDcgKzYwLDcgQEAgZG8gewkJCQkJCVwK IH0gd2hpbGUgKDApCiAKICNkZWZpbmUgY2lmc3dhcm4oZm10LCBhcmcuLi4pCQkJXAotCXByaW50 ayhLRVJOX1dBUk5JTkcgZm10ICJcbiIsICMjYXJnKQorCXByX3dhcm5fcmF0ZWxpbWl0ZWQoZm10 ICJcbiIsICMjYXJnKQogCiAvKiBkZWJ1ZyBldmVudCBtZXNzYWdlOiAqLwogZXh0ZXJuIGludCBj aWZzRVJST1I7CkBAIC03Myw3ICs3NSw3IEBAIGRvIHsJCQkJCQkJCQlcCiAjZGVmaW5lIGNpZnNl cnJvcihmbXQsIGFyZy4uLikJCQkJCVwKIGRvIHsJCQkJCQkJCVwKIAlpZiAoY2lmc0VSUk9SKQkJ CQkJCVwKLQkJcHJpbnRrKEtFUk5fRVJSICJDSUZTIFZGUzogIiBmbXQgIlxuIiwgIyNhcmcpOwlc CisJCXByX2Vycl9yYXRlbGltaXRlZCgiQ0lGUyBWRlM6ICIgZm10ICJcbiIsICMjYXJnKTsJXAog fSB3aGlsZSAoMCkKIAogI2RlZmluZSBjRVJST1Ioc2V0LCBmbXQsIGFyZy4uLikJCVwKZGlmZiAt LWdpdCBhL2ZzL2NpZnMvY29ubmVjdC5jIGIvZnMvY2lmcy9jb25uZWN0LmMKaW5kZXggNDlkNmUy MTA1MmMyLi5mMGY3YTZjMjAwYjggMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY29ubmVjdC5jCisrKyBi L2ZzL2NpZnMvY29ubmVjdC5jCkBAIC0xMzQsNyArMTM0LDYgQEAgY2lmc19yZWNvbm5lY3Qoc3Ry dWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2VydmVyKQogCXNlcnZlci0+c2Vzc2lvbl9rZXkucmVzcG9u c2UgPSBOVUxMOwogCXNlcnZlci0+c2Vzc2lvbl9rZXkubGVuID0gMDsKIAlzZXJ2ZXItPmxzdHJw ID0gamlmZmllczsKLQltdXRleF91bmxvY2soJnNlcnZlci0+c3J2X211dGV4KTsKIAogCS8qIG1h cmsgc3VibWl0dGVkIE1JRHMgZm9yIHJldHJ5IGFuZCBpc3N1ZSBjYWxsYmFjayAqLwogCUlOSVRf TElTVF9IRUFEKCZyZXRyeV9saXN0KTsKQEAgLTE0Nyw2ICsxNDYsNyBAQCBjaWZzX3JlY29ubmVj dChzdHJ1Y3QgVENQX1NlcnZlcl9JbmZvICpzZXJ2ZXIpCiAJCWxpc3RfbW92ZSgmbWlkX2VudHJ5 LT5xaGVhZCwgJnJldHJ5X2xpc3QpOwogCX0KIAlzcGluX3VubG9jaygmR2xvYmFsTWlkX0xvY2sp OworCW11dGV4X3VubG9jaygmc2VydmVyLT5zcnZfbXV0ZXgpOwogCiAJY0ZZSSgxLCAiJXM6IGlz c3VpbmcgbWlkIGNhbGxiYWNrcyIsIF9fZnVuY19fKTsKIAlsaXN0X2Zvcl9lYWNoX3NhZmUodG1w LCB0bXAyLCAmcmV0cnlfbGlzdCkgewpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9yZWFkZGlyLmMgYi9m cy9jaWZzL3JlYWRkaXIuYwppbmRleCA1MmE4MjBhM2I5OGEuLmRjOTNhNmQyMGExNyAxMDA2NDQK LS0tIGEvZnMvY2lmcy9yZWFkZGlyLmMKKysrIGIvZnMvY2lmcy9yZWFkZGlyLmMKQEAgLTgyMyw2 ICs4MjMsNyBAQCBpbnQgY2lmc19yZWFkZGlyKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpkaXJl bnRyeSwgZmlsbGRpcl90IGZpbGxkaXIpCiAJCQl9CiAJCQkvKiBpZiBidWdneSBzZXJ2ZXIgcmV0 dXJucyAuIGFuZCAuLiBsYXRlIGRvCiAJCQl3ZSB3YW50IHRvIGNoZWNrIGZvciB0aGF0IGhlcmU/ ICovCisJCQkqdG1wX2J1ZiA9IDA7CiAJCQlyYyA9IGNpZnNfZmlsbGRpcihjdXJyZW50X2VudHJ5 LCBmaWxlLAogCQkJCQlmaWxsZGlyLCBkaXJlbnRyeSwgdG1wX2J1ZiwgbWF4X2xlbik7CiAJCQlp ZiAocmMgPT0gLUVPVkVSRkxPVykgewpkaWZmIC0tZ2l0IGEvZnMvY2lmcy90cmFuc3BvcnQuYyBi L2ZzL2NpZnMvdHJhbnNwb3J0LmMKaW5kZXggNGU1ZGZiN2Y3ZDgwLi5kMjFhODliOWQ0OTUgMTAw NjQ0Ci0tLSBhL2ZzL2NpZnMvdHJhbnNwb3J0LmMKKysrIGIvZnMvY2lmcy90cmFuc3BvcnQuYwpA QCAtMzcwLDEwICszNzAsOCBAQCBjaWZzX2NhbGxfYXN5bmMoc3RydWN0IFRDUF9TZXJ2ZXJfSW5m byAqc2VydmVyLCBzdHJ1Y3Qga3ZlYyAqaW92LAogCXNwaW5fdW5sb2NrKCZHbG9iYWxNaWRfTG9j ayk7CiAKIAlyYyA9IGNpZnNfc2lnbl9zbWIyKGlvdiwgbnZlYywgc2VydmVyLCAmbWlkLT5zZXF1 ZW5jZV9udW1iZXIpOwotCWlmIChyYykgewotCQltdXRleF91bmxvY2soJnNlcnZlci0+c3J2X211 dGV4KTsKLQkJZ290byBvdXRfZXJyOwotCX0KKwlpZiAocmMpCisJCWdvdG8gb3V0OwogCiAJbWlk LT5yZWNlaXZlID0gcmVjZWl2ZTsKIAltaWQtPmNhbGxiYWNrID0gY2FsbGJhY2s7CkBAIC0zODQs MTQgKzM4MiwxNSBAQCBjaWZzX2NhbGxfYXN5bmMoc3RydWN0IFRDUF9TZXJ2ZXJfSW5mbyAqc2Vy dmVyLCBzdHJ1Y3Qga3ZlYyAqaW92LAogCXJjID0gc21iX3NlbmR2KHNlcnZlciwgaW92LCBudmVj KTsKIAljaWZzX2luX3NlbmRfZGVjKHNlcnZlcik7CiAJY2lmc19zYXZlX3doZW5fc2VudChtaWQp Oworb3V0OgorCWlmIChyYyA8IDApCisJCWRlbGV0ZV9taWQobWlkKTsKKwogCW11dGV4X3VubG9j aygmc2VydmVyLT5zcnZfbXV0ZXgpOwogCi0JaWYgKHJjKQotCQlnb3RvIG91dF9lcnI7CisJaWYg KHJjID09IDApCisJCXJldHVybiAwOwogCi0JcmV0dXJuIHJjOwotb3V0X2VycjoKLQlkZWxldGVf bWlkKG1pZCk7CiAJYXRvbWljX2RlYygmc2VydmVyLT5pbkZsaWdodCk7CiAJd2FrZV91cCgmc2Vy dmVyLT5yZXF1ZXN0X3EpOwogCXJldHVybiByYzsKZGlmZiAtLWdpdCBhL2ZzL2hvc3Rmcy9ob3N0 ZnNfa2Vybi5jIGIvZnMvaG9zdGZzL2hvc3Rmc19rZXJuLmMKaW5kZXggMTA0ZTRkOWI0MDY3Li44 ZGIzOTc5Y2RiYTYgMTAwNjQ0Ci0tLSBhL2ZzL2hvc3Rmcy9ob3N0ZnNfa2Vybi5jCisrKyBiL2Zz L2hvc3Rmcy9ob3N0ZnNfa2Vybi5jCkBAIC03MjAsMTUgKzcyMCwxMyBAQCBpbnQgaG9zdGZzX21r bm9kKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGludCBtb2RlLCBk ZXZfdCBkZXYpCiAKIAlpbml0X3NwZWNpYWxfaW5vZGUoaW5vZGUsIG1vZGUsIGRldik7CiAJZXJy ID0gZG9fbWtub2QobmFtZSwgbW9kZSwgTUFKT1IoZGV2KSwgTUlOT1IoZGV2KSk7Ci0JaWYgKCFl cnIpCisJaWYgKGVycikKIAkJZ290byBvdXRfZnJlZTsKIAogCWVyciA9IHJlYWRfbmFtZShpbm9k ZSwgbmFtZSk7CiAJX19wdXRuYW1lKG5hbWUpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0X3B1dDsK LQlpZiAoZXJyKQotCQlnb3RvIG91dF9wdXQ7CiAKIAlkX2luc3RhbnRpYXRlKGRlbnRyeSwgaW5v ZGUpOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZnMvbG9ja3MuYyBiL2ZzL2xvY2tzLmMKaW5k ZXggZDRmMWQ4OWQ5YmM2Li5jNzg0OGRiZGVjNjEgMTAwNjQ0Ci0tLSBhL2ZzL2xvY2tzLmMKKysr IGIvZnMvbG9ja3MuYwpAQCAtMTg2Myw3ICsxODYzLDYgQEAgaW50IGZjbnRsX3NldGxrKHVuc2ln bmVkIGludCBmZCwgc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCiAJCWdvdG8g b3V0OwogCX0KIAotYWdhaW46CiAJZXJyb3IgPSBmbG9ja190b19wb3NpeF9sb2NrKGZpbHAsIGZp bGVfbG9jaywgJmZsb2NrKTsKIAlpZiAoZXJyb3IpCiAJCWdvdG8gb3V0OwpAQCAtMTg5NCwxOSAr MTg5MywyMiBAQCBhZ2FpbjoKIAkgKiBBdHRlbXB0IHRvIGRldGVjdCBhIGNsb3NlL2ZjbnRsIHJh Y2UgYW5kIHJlY292ZXIgYnkKIAkgKiByZWxlYXNpbmcgdGhlIGxvY2sgdGhhdCB3YXMganVzdCBh Y3F1aXJlZC4KIAkgKi8KLQkvKgotCSAqIHdlIG5lZWQgdGhhdCBzcGluX2xvY2sgaGVyZSAtIGl0 IHByZXZlbnRzIHJlb3JkZXJpbmcgYmV0d2VlbgotCSAqIHVwZGF0ZSBvZiBpbm9kZS0+aV9mbG9j ayBhbmQgY2hlY2sgZm9yIGl0IGRvbmUgaW4gY2xvc2UoKS4KLQkgKiByY3VfcmVhZF9sb2NrKCkg d291bGRuJ3QgZG8uCi0JICovCi0Jc3Bpbl9sb2NrKCZjdXJyZW50LT5maWxlcy0+ZmlsZV9sb2Nr KTsKLQlmID0gZmNoZWNrKGZkKTsKLQlzcGluX3VubG9jaygmY3VycmVudC0+ZmlsZXMtPmZpbGVf bG9jayk7Ci0JaWYgKCFlcnJvciAmJiBmICE9IGZpbHAgJiYgZmxvY2subF90eXBlICE9IEZfVU5M Q0spIHsKLQkJZmxvY2subF90eXBlID0gRl9VTkxDSzsKLQkJZ290byBhZ2FpbjsKKwlpZiAoIWVy cm9yICYmIGZpbGVfbG9jay0+ZmxfdHlwZSAhPSBGX1VOTENLKSB7CisJCS8qCisJCSAqIFdlIG5l ZWQgdGhhdCBzcGluX2xvY2sgaGVyZSAtIGl0IHByZXZlbnRzIHJlb3JkZXJpbmcgYmV0d2Vlbgor CQkgKiB1cGRhdGUgb2YgaW5vZGUtPmlfZmxvY2sgYW5kIGNoZWNrIGZvciBpdCBkb25lIGluCisJ CSAqIGNsb3NlKCkuIHJjdV9yZWFkX2xvY2soKSB3b3VsZG4ndCBkby4KKwkJICovCisJCXNwaW5f bG9jaygmY3VycmVudC0+ZmlsZXMtPmZpbGVfbG9jayk7CisJCWYgPSBmY2hlY2soZmQpOworCQlz cGluX3VubG9jaygmY3VycmVudC0+ZmlsZXMtPmZpbGVfbG9jayk7CisJCWlmIChmICE9IGZpbHAp IHsKKwkJCWZpbGVfbG9jay0+ZmxfdHlwZSA9IEZfVU5MQ0s7CisJCQllcnJvciA9IGRvX2xvY2tf ZmlsZV93YWl0KGZpbHAsIGNtZCwgZmlsZV9sb2NrKTsKKwkJCVdBUk5fT05fT05DRShlcnJvcik7 CisJCQllcnJvciA9IC1FQkFERjsKKwkJfQogCX0KLQogb3V0OgogCWxvY2tzX2ZyZWVfbG9jayhm aWxlX2xvY2spOwogCXJldHVybiBlcnJvcjsKQEAgLTE5ODEsNyArMTk4Myw2IEBAIGludCBmY250 bF9zZXRsazY0KHVuc2lnbmVkIGludCBmZCwgc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGlu dCBjbWQsCiAJCWdvdG8gb3V0OwogCX0KIAotYWdhaW46CiAJZXJyb3IgPSBmbG9jazY0X3RvX3Bv c2l4X2xvY2soZmlscCwgZmlsZV9sb2NrLCAmZmxvY2spOwogCWlmIChlcnJvcikKIAkJZ290byBv dXQ7CkBAIC0yMDEyLDE0ICsyMDEzLDIyIEBAIGFnYWluOgogCSAqIEF0dGVtcHQgdG8gZGV0ZWN0 IGEgY2xvc2UvZmNudGwgcmFjZSBhbmQgcmVjb3ZlciBieQogCSAqIHJlbGVhc2luZyB0aGUgbG9j ayB0aGF0IHdhcyBqdXN0IGFjcXVpcmVkLgogCSAqLwotCXNwaW5fbG9jaygmY3VycmVudC0+Zmls ZXMtPmZpbGVfbG9jayk7Ci0JZiA9IGZjaGVjayhmZCk7Ci0Jc3Bpbl91bmxvY2soJmN1cnJlbnQt PmZpbGVzLT5maWxlX2xvY2spOwotCWlmICghZXJyb3IgJiYgZiAhPSBmaWxwICYmIGZsb2NrLmxf dHlwZSAhPSBGX1VOTENLKSB7Ci0JCWZsb2NrLmxfdHlwZSA9IEZfVU5MQ0s7Ci0JCWdvdG8gYWdh aW47CisJaWYgKCFlcnJvciAmJiBmaWxlX2xvY2stPmZsX3R5cGUgIT0gRl9VTkxDSykgeworCQkv KgorCQkgKiBXZSBuZWVkIHRoYXQgc3Bpbl9sb2NrIGhlcmUgLSBpdCBwcmV2ZW50cyByZW9yZGVy aW5nIGJldHdlZW4KKwkJICogdXBkYXRlIG9mIGlub2RlLT5pX2Zsb2NrIGFuZCBjaGVjayBmb3Ig aXQgZG9uZSBpbgorCQkgKiBjbG9zZSgpLiByY3VfcmVhZF9sb2NrKCkgd291bGRuJ3QgZG8uCisJ CSAqLworCQlzcGluX2xvY2soJmN1cnJlbnQtPmZpbGVzLT5maWxlX2xvY2spOworCQlmID0gZmNo ZWNrKGZkKTsKKwkJc3Bpbl91bmxvY2soJmN1cnJlbnQtPmZpbGVzLT5maWxlX2xvY2spOworCQlp ZiAoZiAhPSBmaWxwKSB7CisJCQlmaWxlX2xvY2stPmZsX3R5cGUgPSBGX1VOTENLOworCQkJZXJy b3IgPSBkb19sb2NrX2ZpbGVfd2FpdChmaWxwLCBjbWQsIGZpbGVfbG9jayk7CisJCQlXQVJOX09O X09OQ0UoZXJyb3IpOworCQkJZXJyb3IgPSAtRUJBREY7CisJCX0KIAl9Ci0KIG91dDoKIAlsb2Nr c19mcmVlX2xvY2soZmlsZV9sb2NrKTsKIAlyZXR1cm4gZXJyb3I7CmRpZmYgLS1naXQgYS9mcy9u ZnMvaW5vZGUuYyBiL2ZzL25mcy9pbm9kZS5jCmluZGV4IGExNTAzYTcwMTNhMS4uYWY0N2VhMTI1 NTgyIDEwMDY0NAotLS0gYS9mcy9uZnMvaW5vZGUuYworKysgYi9mcy9uZnMvaW5vZGUuYwpAQCAt MTIwNyw2ICsxMjA3LDcgQEAgc3RhdGljIGludCBuZnNfdXBkYXRlX2lub2RlKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIHN0cnVjdCBuZnNfZmF0dHIgKmZhdHRyKQogCXVuc2lnbmVkIGxvbmcgaW52YWxp ZCA9IDA7CiAJdW5zaWduZWQgbG9uZyBub3cgPSBqaWZmaWVzOwogCXVuc2lnbmVkIGxvbmcgc2F2 ZV9jYWNoZV92YWxpZGl0eTsKKwlib29sIGNhY2hlX3JldmFsaWRhdGVkID0gdHJ1ZTsKIAogCWRm cHJpbnRrKFZGUywgIk5GUzogJXMoJXMvJWxkIGN0PSVkIGluZm89MHgleClcbiIsCiAJCQlfX2Z1 bmNfXywgaW5vZGUtPmlfc2ItPnNfaWQsIGlub2RlLT5pX2lubywKQEAgLTEyNTIsOCArMTI1Mywx MCBAQCBzdGF0aWMgaW50IG5mc191cGRhdGVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgc3Ry dWN0IG5mc19mYXR0ciAqZmF0dHIpCiAJCQkJbmZzX2ZvcmNlX2xvb2t1cF9yZXZhbGlkYXRlKGlu b2RlKTsKIAkJCWlub2RlLT5pX3ZlcnNpb24gPSBmYXR0ci0+Y2hhbmdlX2F0dHI7CiAJCX0KLQl9 IGVsc2UgaWYgKHNlcnZlci0+Y2FwcyAmIE5GU19DQVBfQ0hBTkdFX0FUVFIpCisJfSBlbHNlIGlm IChzZXJ2ZXItPmNhcHMgJiBORlNfQ0FQX0NIQU5HRV9BVFRSKSB7CiAJCWludmFsaWQgfD0gc2F2 ZV9jYWNoZV92YWxpZGl0eTsKKwkJY2FjaGVfcmV2YWxpZGF0ZWQgPSBmYWxzZTsKKwl9CiAKIAlp ZiAoZmF0dHItPnZhbGlkICYgTkZTX0FUVFJfRkFUVFJfTVRJTUUpIHsKIAkJLyogTkZTdjIvdjM6 IENoZWNrIGlmIHRoZSBtdGltZSBhZ3JlZXMgKi8KQEAgLTEyNjUsMTEgKzEyNjgsMTMgQEAgc3Rh dGljIGludCBuZnNfdXBkYXRlX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBuZnNf ZmF0dHIgKmZhdHRyKQogCQkJCW5mc19mb3JjZV9sb29rdXBfcmV2YWxpZGF0ZShpbm9kZSk7CiAJ CQltZW1jcHkoJmlub2RlLT5pX210aW1lLCAmZmF0dHItPm10aW1lLCBzaXplb2YoaW5vZGUtPmlf bXRpbWUpKTsKIAkJfQotCX0gZWxzZSBpZiAoc2VydmVyLT5jYXBzICYgTkZTX0NBUF9NVElNRSkK Kwl9IGVsc2UgaWYgKHNlcnZlci0+Y2FwcyAmIE5GU19DQVBfTVRJTUUpIHsKIAkJaW52YWxpZCB8 PSBzYXZlX2NhY2hlX3ZhbGlkaXR5ICYgKE5GU19JTk9fSU5WQUxJRF9BVFRSCiAJCQkJfCBORlNf SU5PX0lOVkFMSURfREFUQQogCQkJCXwgTkZTX0lOT19SRVZBTF9QQUdFQ0FDSEUKIAkJCQl8IE5G U19JTk9fUkVWQUxfRk9SQ0VEKTsKKwkJY2FjaGVfcmV2YWxpZGF0ZWQgPSBmYWxzZTsKKwl9CiAK IAlpZiAoZmF0dHItPnZhbGlkICYgTkZTX0FUVFJfRkFUVFJfQ1RJTUUpIHsKIAkJLyogSWYgY3Rp bWUgaGFzIGNoYW5nZWQgd2Ugc2hvdWxkIGRlZmluaXRlbHkgY2xlYXIgYWNjZXNzK2FjbCBjYWNo ZXMgKi8KQEAgLTEyODQsMTEgKzEyODksMTMgQEAgc3RhdGljIGludCBuZnNfdXBkYXRlX2lub2Rl KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBuZnNfZmF0dHIgKmZhdHRyKQogCQkJfQogCQkJ bWVtY3B5KCZpbm9kZS0+aV9jdGltZSwgJmZhdHRyLT5jdGltZSwgc2l6ZW9mKGlub2RlLT5pX2N0 aW1lKSk7CiAJCX0KLQl9IGVsc2UgaWYgKHNlcnZlci0+Y2FwcyAmIE5GU19DQVBfQ1RJTUUpCisJ fSBlbHNlIGlmIChzZXJ2ZXItPmNhcHMgJiBORlNfQ0FQX0NUSU1FKSB7CiAJCWludmFsaWQgfD0g c2F2ZV9jYWNoZV92YWxpZGl0eSAmIChORlNfSU5PX0lOVkFMSURfQVRUUgogCQkJCXwgTkZTX0lO T19JTlZBTElEX0FDQ0VTUwogCQkJCXwgTkZTX0lOT19JTlZBTElEX0FDTAogCQkJCXwgTkZTX0lO T19SRVZBTF9GT1JDRUQpOworCQljYWNoZV9yZXZhbGlkYXRlZCA9IGZhbHNlOworCX0KIAogCS8q IENoZWNrIGlmIG91ciBjYWNoZWQgZmlsZSBzaXplIGlzIHN0YWxlICovCiAJaWYgKGZhdHRyLT52 YWxpZCAmIE5GU19BVFRSX0ZBVFRSX1NJWkUpIHsKQEAgLTEzMDksMTcgKzEzMTYsMjEgQEAgc3Rh dGljIGludCBuZnNfdXBkYXRlX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBuZnNf ZmF0dHIgKmZhdHRyKQogCQkJCQkobG9uZyBsb25nKWN1cl9pc2l6ZSwKIAkJCQkJKGxvbmcgbG9u ZyluZXdfaXNpemUpOwogCQl9Ci0JfSBlbHNlCisJfSBlbHNlIHsKIAkJaW52YWxpZCB8PSBzYXZl X2NhY2hlX3ZhbGlkaXR5ICYgKE5GU19JTk9fSU5WQUxJRF9BVFRSCiAJCQkJfCBORlNfSU5PX1JF VkFMX1BBR0VDQUNIRQogCQkJCXwgTkZTX0lOT19SRVZBTF9GT1JDRUQpOworCQljYWNoZV9yZXZh bGlkYXRlZCA9IGZhbHNlOworCX0KIAogCiAJaWYgKGZhdHRyLT52YWxpZCAmIE5GU19BVFRSX0ZB VFRSX0FUSU1FKQogCQltZW1jcHkoJmlub2RlLT5pX2F0aW1lLCAmZmF0dHItPmF0aW1lLCBzaXpl b2YoaW5vZGUtPmlfYXRpbWUpKTsKLQllbHNlIGlmIChzZXJ2ZXItPmNhcHMgJiBORlNfQ0FQX0FU SU1FKQorCWVsc2UgaWYgKHNlcnZlci0+Y2FwcyAmIE5GU19DQVBfQVRJTUUpIHsKIAkJaW52YWxp ZCB8PSBzYXZlX2NhY2hlX3ZhbGlkaXR5ICYgKE5GU19JTk9fSU5WQUxJRF9BVElNRQogCQkJCXwg TkZTX0lOT19SRVZBTF9GT1JDRUQpOworCQljYWNoZV9yZXZhbGlkYXRlZCA9IGZhbHNlOworCX0K IAogCWlmIChmYXR0ci0+dmFsaWQgJiBORlNfQVRUUl9GQVRUUl9NT0RFKSB7CiAJCWlmICgoaW5v ZGUtPmlfbW9kZSAmIFNfSUFMTFVHTykgIT0gKGZhdHRyLT5tb2RlICYgU19JQUxMVUdPKSkgewpA QCAtMTMyOCwzMyArMTMzOSwzOSBAQCBzdGF0aWMgaW50IG5mc191cGRhdGVfaW5vZGUoc3RydWN0 IGlub2RlICppbm9kZSwgc3RydWN0IG5mc19mYXR0ciAqZmF0dHIpCiAJCQlpbm9kZS0+aV9tb2Rl ID0gbmV3bW9kZTsKIAkJCWludmFsaWQgfD0gTkZTX0lOT19JTlZBTElEX0FUVFJ8TkZTX0lOT19J TlZBTElEX0FDQ0VTU3xORlNfSU5PX0lOVkFMSURfQUNMOwogCQl9Ci0JfSBlbHNlIGlmIChzZXJ2 ZXItPmNhcHMgJiBORlNfQ0FQX01PREUpCisJfSBlbHNlIGlmIChzZXJ2ZXItPmNhcHMgJiBORlNf Q0FQX01PREUpIHsKIAkJaW52YWxpZCB8PSBzYXZlX2NhY2hlX3ZhbGlkaXR5ICYgKE5GU19JTk9f SU5WQUxJRF9BVFRSCiAJCQkJfCBORlNfSU5PX0lOVkFMSURfQUNDRVNTCiAJCQkJfCBORlNfSU5P X0lOVkFMSURfQUNMCiAJCQkJfCBORlNfSU5PX1JFVkFMX0ZPUkNFRCk7CisJCWNhY2hlX3JldmFs aWRhdGVkID0gZmFsc2U7CisJfQogCiAJaWYgKGZhdHRyLT52YWxpZCAmIE5GU19BVFRSX0ZBVFRS X09XTkVSKSB7CiAJCWlmIChpbm9kZS0+aV91aWQgIT0gZmF0dHItPnVpZCkgewogCQkJaW52YWxp ZCB8PSBORlNfSU5PX0lOVkFMSURfQVRUUnxORlNfSU5PX0lOVkFMSURfQUNDRVNTfE5GU19JTk9f SU5WQUxJRF9BQ0w7CiAJCQlpbm9kZS0+aV91aWQgPSBmYXR0ci0+dWlkOwogCQl9Ci0JfSBlbHNl IGlmIChzZXJ2ZXItPmNhcHMgJiBORlNfQ0FQX09XTkVSKQorCX0gZWxzZSBpZiAoc2VydmVyLT5j YXBzICYgTkZTX0NBUF9PV05FUikgewogCQlpbnZhbGlkIHw9IHNhdmVfY2FjaGVfdmFsaWRpdHkg JiAoTkZTX0lOT19JTlZBTElEX0FUVFIKIAkJCQl8IE5GU19JTk9fSU5WQUxJRF9BQ0NFU1MKIAkJ CQl8IE5GU19JTk9fSU5WQUxJRF9BQ0wKIAkJCQl8IE5GU19JTk9fUkVWQUxfRk9SQ0VEKTsKKwkJ Y2FjaGVfcmV2YWxpZGF0ZWQgPSBmYWxzZTsKKwl9CiAKIAlpZiAoZmF0dHItPnZhbGlkICYgTkZT X0FUVFJfRkFUVFJfR1JPVVApIHsKIAkJaWYgKGlub2RlLT5pX2dpZCAhPSBmYXR0ci0+Z2lkKSB7 CiAJCQlpbnZhbGlkIHw9IE5GU19JTk9fSU5WQUxJRF9BVFRSfE5GU19JTk9fSU5WQUxJRF9BQ0NF U1N8TkZTX0lOT19JTlZBTElEX0FDTDsKIAkJCWlub2RlLT5pX2dpZCA9IGZhdHRyLT5naWQ7CiAJ CX0KLQl9IGVsc2UgaWYgKHNlcnZlci0+Y2FwcyAmIE5GU19DQVBfT1dORVJfR1JPVVApCisJfSBl bHNlIGlmIChzZXJ2ZXItPmNhcHMgJiBORlNfQ0FQX09XTkVSX0dST1VQKSB7CiAJCWludmFsaWQg fD0gc2F2ZV9jYWNoZV92YWxpZGl0eSAmIChORlNfSU5PX0lOVkFMSURfQVRUUgogCQkJCXwgTkZT X0lOT19JTlZBTElEX0FDQ0VTUwogCQkJCXwgTkZTX0lOT19JTlZBTElEX0FDTAogCQkJCXwgTkZT X0lOT19SRVZBTF9GT1JDRUQpOworCQljYWNoZV9yZXZhbGlkYXRlZCA9IGZhbHNlOworCX0KIAog CWlmIChmYXR0ci0+dmFsaWQgJiBORlNfQVRUUl9GQVRUUl9OTElOSykgewogCQlpZiAoaW5vZGUt PmlfbmxpbmsgIT0gZmF0dHItPm5saW5rKSB7CkBAIC0xMzYzLDE4ICsxMzgwLDIxIEBAIHN0YXRp YyBpbnQgbmZzX3VwZGF0ZV9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgbmZzX2Zh dHRyICpmYXR0cikKIAkJCQlpbnZhbGlkIHw9IE5GU19JTk9fSU5WQUxJRF9EQVRBOwogCQkJc2V0 X25saW5rKGlub2RlLCBmYXR0ci0+bmxpbmspOwogCQl9Ci0JfSBlbHNlIGlmIChzZXJ2ZXItPmNh cHMgJiBORlNfQ0FQX05MSU5LKQorCX0gZWxzZSBpZiAoc2VydmVyLT5jYXBzICYgTkZTX0NBUF9O TElOSykgewogCQlpbnZhbGlkIHw9IHNhdmVfY2FjaGVfdmFsaWRpdHkgJiAoTkZTX0lOT19JTlZB TElEX0FUVFIKIAkJCQl8IE5GU19JTk9fUkVWQUxfRk9SQ0VEKTsKKwkJY2FjaGVfcmV2YWxpZGF0 ZWQgPSBmYWxzZTsKKwl9CiAKIAlpZiAoZmF0dHItPnZhbGlkICYgTkZTX0FUVFJfRkFUVFJfU1BB Q0VfVVNFRCkgewogCQkvKgogCQkgKiByZXBvcnQgdGhlIGJsb2NrcyBpbiA1MTJieXRlIHVuaXRz CiAJCSAqLwogCQlpbm9kZS0+aV9ibG9ja3MgPSBuZnNfY2FsY19ibG9ja19zaXplKGZhdHRyLT5k dS5uZnMzLnVzZWQpOwotIAl9Ci0JaWYgKGZhdHRyLT52YWxpZCAmIE5GU19BVFRSX0ZBVFRSX0JM T0NLU19VU0VEKQorCX0gZWxzZSBpZiAoZmF0dHItPnZhbGlkICYgTkZTX0FUVFJfRkFUVFJfQkxP Q0tTX1VTRUQpCiAJCWlub2RlLT5pX2Jsb2NrcyA9IGZhdHRyLT5kdS5uZnMyLmJsb2NrczsKKwll bHNlCisJCWNhY2hlX3JldmFsaWRhdGVkID0gZmFsc2U7CiAKIAkvKiBVcGRhdGUgYXR0cnRpbWVv IHZhbHVlIGlmIHdlJ3JlIG91dCBvZiB0aGUgdW5zdGFibGUgcGVyaW9kICovCiAJaWYgKGludmFs aWQgJiBORlNfSU5PX0lOVkFMSURfQVRUUikgewpAQCAtMTM4MywxNSArMTQwMywxOSBAQCBzdGF0 aWMgaW50IG5mc191cGRhdGVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IG5mc19m YXR0ciAqZmF0dHIpCiAJCW5mc2ktPmF0dHJ0aW1lb190aW1lc3RhbXAgPSBub3c7CiAJCW5mc2kt PmF0dHJfZ2VuY291bnQgPSBuZnNfaW5jX2F0dHJfZ2VuZXJhdGlvbl9jb3VudGVyKCk7CiAJfSBl bHNlIHsKLQkJaWYgKCF0aW1lX2luX3JhbmdlX29wZW4obm93LCBuZnNpLT5hdHRydGltZW9fdGlt ZXN0YW1wLCBuZnNpLT5hdHRydGltZW9fdGltZXN0YW1wICsgbmZzaS0+YXR0cnRpbWVvKSkgewot CQkJaWYgKChuZnNpLT5hdHRydGltZW8gPDw9IDEpID4gTkZTX01BWEFUVFJUSU1FTyhpbm9kZSkp Ci0JCQkJbmZzaS0+YXR0cnRpbWVvID0gTkZTX01BWEFUVFJUSU1FTyhpbm9kZSk7CisJCWlmIChj YWNoZV9yZXZhbGlkYXRlZCkgeworCQkJaWYgKCF0aW1lX2luX3JhbmdlX29wZW4obm93LCBuZnNp LT5hdHRydGltZW9fdGltZXN0YW1wLAorCQkJCW5mc2ktPmF0dHJ0aW1lb190aW1lc3RhbXAgKyBu ZnNpLT5hdHRydGltZW8pKSB7CisJCQkJbmZzaS0+YXR0cnRpbWVvIDw8PSAxOworCQkJCWlmIChu ZnNpLT5hdHRydGltZW8gPiBORlNfTUFYQVRUUlRJTUVPKGlub2RlKSkKKwkJCQkJbmZzaS0+YXR0 cnRpbWVvID0gTkZTX01BWEFUVFJUSU1FTyhpbm9kZSk7CisJCQl9CiAJCQluZnNpLT5hdHRydGlt ZW9fdGltZXN0YW1wID0gbm93OwogCQl9CiAJfQogCiAJLyogRG9uJ3QgZGVjbGFyZSBhdHRyY2Fj aGUgdXAgdG8gZGF0ZSBpZiB0aGVyZSB3ZXJlIG5vIGF0dHJzISAqLwotCWlmIChmYXR0ci0+dmFs aWQgIT0gMCkKKwlpZiAoY2FjaGVfcmV2YWxpZGF0ZWQpCiAJCWludmFsaWQgJj0gfk5GU19JTk9f SU5WQUxJRF9BVFRSOwogCiAJLyogRG9uJ3QgaW52YWxpZGF0ZSB0aGUgZGF0YSBpZiB3ZSB3ZXJl IHRvIGJsYW1lICovCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9kbG0vZGxtbWFzdGVyLmMgYi9mcy9v Y2ZzMi9kbG0vZGxtbWFzdGVyLmMKaW5kZXggOGU0OGJhNWY2NTQ5Li43MDlmYjdhZDhjNmQgMTAw NjQ0Ci0tLSBhL2ZzL29jZnMyL2RsbS9kbG1tYXN0ZXIuYworKysgYi9mcy9vY2ZzMi9kbG0vZGxt bWFzdGVyLmMKQEAgLTI0NTksNiArMjQ1OSwxMSBAQCBzdGF0aWMgaW50IGRsbV9taWdyYXRlX2xv Y2tyZXMoc3RydWN0IGRsbV9jdHh0ICpkbG0sCiAJc3Bpbl9sb2NrKCZkbG0tPm1hc3Rlcl9sb2Nr KTsKIAlyZXQgPSBkbG1fYWRkX21pZ3JhdGlvbl9tbGUoZGxtLCByZXMsIG1sZSwgJm9sZG1sZSwg bmFtZSwKIAkJCQkgICAgbmFtZWxlbiwgdGFyZ2V0LCBkbG0tPm5vZGVfbnVtKTsKKwkvKiBnZXQg YW4gZXh0cmEgcmVmZXJlbmNlIG9uIHRoZSBtbGUuCisJICogb3RoZXJ3aXNlIHRoZSBhc3NlcnRf bWFzdGVyIGZyb20gdGhlIG5ldworCSAqIG1hc3RlciB3aWxsIGRlc3Ryb3kgdGhpcy4KKwkgKi8K KwlkbG1fZ2V0X21sZV9pbnVzZShtbGUpOwogCXNwaW5fdW5sb2NrKCZkbG0tPm1hc3Rlcl9sb2Nr KTsKIAlzcGluX3VubG9jaygmZGxtLT5zcGlubG9jayk7CiAKQEAgLTI0OTQsNiArMjQ5OSw3IEBA IGZhaWw6CiAJCWlmIChtbGVfYWRkZWQpIHsKIAkJCWRsbV9tbGVfZGV0YWNoX2hiX2V2ZW50cyhk bG0sIG1sZSk7CiAJCQlkbG1fcHV0X21sZShtbGUpOworCQkJZGxtX3B1dF9tbGVfaW51c2UobWxl KTsKIAkJfSBlbHNlIGlmIChtbGUpIHsKIAkJCWttZW1fY2FjaGVfZnJlZShkbG1fbWxlX2NhY2hl LCBtbGUpOwogCQkJbWxlID0gTlVMTDsKQEAgLTI1MTEsMTcgKzI1MTcsNiBAQCBmYWlsOgogCSAq IGVuc3VyZSB0aGF0IGFsbCBhc3NlcnRfbWFzdGVyIHdvcmsgaXMgZmx1c2hlZC4gKi8KIAlmbHVz aF93b3JrcXVldWUoZGxtLT5kbG1fd29ya2VyKTsKIAotCS8qIGdldCBhbiBleHRyYSByZWZlcmVu Y2Ugb24gdGhlIG1sZS4KLQkgKiBvdGhlcndpc2UgdGhlIGFzc2VydF9tYXN0ZXIgZnJvbSB0aGUg bmV3Ci0JICogbWFzdGVyIHdpbGwgZGVzdHJveSB0aGlzLgotCSAqIGFsc28sIG1ha2Ugc3VyZSB0 aGF0IGFsbCBjYWxsZXJzIG9mIGRsbV9nZXRfbWxlCi0JICogdGFrZSBib3RoIGRsbS0+c3Bpbmxv Y2sgYW5kIGRsbS0+bWFzdGVyX2xvY2sgKi8KLQlzcGluX2xvY2soJmRsbS0+c3BpbmxvY2spOwot CXNwaW5fbG9jaygmZGxtLT5tYXN0ZXJfbG9jayk7Ci0JZGxtX2dldF9tbGVfaW51c2UobWxlKTsK LQlzcGluX3VubG9jaygmZGxtLT5tYXN0ZXJfbG9jayk7Ci0Jc3Bpbl91bmxvY2soJmRsbS0+c3Bp bmxvY2spOwotCiAJLyogbm90aWZ5IG5ldyBub2RlIGFuZCBzZW5kIGFsbCBsb2NrIHN0YXRlICov CiAJLyogY2FsbCBzZW5kX29uZV9sb2NrcmVzIHdpdGggbWlncmF0aW9uIGZsYWcuCiAJICogdGhp cyBzZXJ2ZXMgYXMgbm90aWNlIHRvIHRoZSB0YXJnZXQgbm9kZSB0aGF0IGEKQEAgLTMyNDksNiAr MzI0NCwxNSBAQCB0b3A6CiAJCQkgICAgbWxlLT5uZXdfbWFzdGVyICE9IGRlYWRfbm9kZSkKIAkJ CQljb250aW51ZTsKIAorCQkJaWYgKG1sZS0+bmV3X21hc3RlciA9PSBkZWFkX25vZGUgJiYgbWxl LT5pbnVzZSkgeworCQkJCW1sb2coTUxfTk9USUNFLCAiJXM6IHRhcmdldCAldSBkaWVkIGR1cmlu ZyAiCisJCQkJCQkibWlncmF0aW9uIGZyb20gJXUsIHRoZSBNTEUgaXMgIgorCQkJCQkJInN0aWxs IGtlZXAgdXNlZCwgaWdub3JlIGl0IVxuIiwKKwkJCQkJCWRsbS0+bmFtZSwgZGVhZF9ub2RlLAor CQkJCQkJbWxlLT5tYXN0ZXIpOworCQkJCWNvbnRpbnVlOworCQkJfQorCiAJCQkvKiBJZiB3ZSBo YXZlIHJlYWNoZWQgdGhpcyBwb2ludCwgdGhpcyBtbGUgbmVlZHMgdG8gYmUKIAkJCSAqIHJlbW92 ZWQgZnJvbSB0aGUgbGlzdCBhbmQgZnJlZWQuICovCiAJCQlkbG1fY2xlYW5fbWlncmF0aW9uX21s ZShkbG0sIG1sZSk7CmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9kbG1nbHVlLmMgYi9mcy9vY2ZzMi9k bG1nbHVlLmMKaW5kZXggYjVlNDU3Y2NmZWQyLi42NDY1MzE3ZTQ3YTYgMTAwNjQ0Ci0tLSBhL2Zz L29jZnMyL2RsbWdsdWUuYworKysgYi9mcy9vY2ZzMi9kbG1nbHVlLmMKQEAgLTEzNzMsNiArMTM3 Myw3IEBAIHN0YXRpYyBpbnQgX19vY2ZzMl9jbHVzdGVyX2xvY2soc3RydWN0IG9jZnMyX3N1cGVy ICpvc2IsCiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1bnNpZ25lZCBpbnQgZ2VuOwogCWludCBu b3F1ZXVlX2F0dGVtcHRlZCA9IDA7CisJaW50IGtpY2tfZGMgPSAwOwogCiAJb2NmczJfaW5pdF9t YXNrX3dhaXRlcigmbXcpOwogCkBAIC0xNTAxLDcgKzE1MDIsMTIgQEAgdXBkYXRlX2hvbGRlcnM6 CiB1bmxvY2s6CiAJbG9ja3Jlc19jbGVhcl9mbGFncyhsb2NrcmVzLCBPQ0ZTMl9MT0NLX1VQQ09O VkVSVF9GSU5JU0hJTkcpOwogCisJLyogb2NmczJfdW5ibG9ja19sb2NrIHJlcXVlcyBvbiBzZWVp bmcgT0NGUzJfTE9DS19VUENPTlZFUlRfRklOSVNISU5HICovCisJa2lja19kYyA9IChsb2NrcmVz LT5sX2ZsYWdzICYgT0NGUzJfTE9DS19CTE9DS0VEKTsKKwogCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmxvY2tyZXMtPmxfbG9jaywgZmxhZ3MpOworCWlmIChraWNrX2RjKQorCQlvY2ZzMl93YWtl X2Rvd25jb252ZXJ0X3RocmVhZChvc2IpOwogb3V0OgogCS8qCiAJICogVGhpcyBpcyBoZWxwaW5n IHdvcmsgYXJvdW5kIGEgbG9jayBpbnZlcnNpb24gYmV0d2VlbiB0aGUgcGFnZSBsb2NrCmRpZmYg LS1naXQgYS9mcy91ZGYvaW5vZGUuYyBiL2ZzL3VkZi9pbm9kZS5jCmluZGV4IGUwODE0NDA3NjUy YS4uNWQ2N2UyMDIzMzExIDEwMDY0NAotLS0gYS9mcy91ZGYvaW5vZGUuYworKysgYi9mcy91ZGYv aW5vZGUuYwpAQCAtMTk3NSwxNCArMTk3NSwyOSBAQCB2b2lkIHVkZl93cml0ZV9hZXh0KHN0cnVj dCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBleHRlbnRfcG9zaXRpb24gKmVwb3MsCiAJCWVwb3MtPm9m ZnNldCArPSBhZHNpemU7CiB9CiAKKy8qCisgKiBPbmx5IDEgaW5kaXJlY3QgZXh0ZW50IGluIGEg cm93IHJlYWxseSBtYWtlcyBzZW5zZSBidXQgYWxsb3cgdXB0byAxNiBpbiBjYXNlCisgKiBzb21l b25lIGRvZXMgc29tZSB3ZWlyZCBzdHVmZi4KKyAqLworI2RlZmluZSBVREZfTUFYX0lORElSX0VY VFMgMTYKKwogaW50OF90IHVkZl9uZXh0X2FleHQoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0 IGV4dGVudF9wb3NpdGlvbiAqZXBvcywKIAkJICAgICBzdHJ1Y3Qga2VybmVsX2xiX2FkZHIgKmVs b2MsIHVpbnQzMl90ICplbGVuLCBpbnQgaW5jKQogewogCWludDhfdCBldHlwZTsKKwl1bnNpZ25l ZCBpbnQgaW5kaXJlY3Rpb25zID0gMDsKIAogCXdoaWxlICgoZXR5cGUgPSB1ZGZfY3VycmVudF9h ZXh0KGlub2RlLCBlcG9zLCBlbG9jLCBlbGVuLCBpbmMpKSA9PQogCSAgICAgICAoRVhUX05FWFRf RVhURU5UX0FMTE9DREVDUyA+PiAzMCkpIHsKIAkJaW50IGJsb2NrOworCisJCWlmICgrK2luZGly ZWN0aW9ucyA+IFVERl9NQVhfSU5ESVJfRVhUUykgeworCQkJdWRmX2Vycihpbm9kZS0+aV9zYiwK KwkJCQkidG9vIG1hbnkgaW5kaXJlY3QgZXh0ZW50cyBpbiBpbm9kZSAlbHVcbiIsCisJCQkJaW5v ZGUtPmlfaW5vKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCiAJCWVwb3MtPmJsb2NrID0gKmVsb2M7 CiAJCWVwb3MtPm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgYWxsb2NFeHREZXNjKTsKIAkJYnJlbHNl KGVwb3MtPmJoKTsKZGlmZiAtLWdpdCBhL2ZzL3VkZi91bmljb2RlLmMgYi9mcy91ZGYvdW5pY29k ZS5jCmluZGV4IGQyOWMwNmZiZjRjZS4uNTIzMzBjYjA5ZGFmIDEwMDY0NAotLS0gYS9mcy91ZGYv dW5pY29kZS5jCisrKyBiL2ZzL3VkZi91bmljb2RlLmMKQEAgLTEzMywxMSArMTMzLDE1IEBAIGlu dCB1ZGZfQ1MwdG9VVEY4KHN0cnVjdCB1c3RyICp1dGZfbywgY29uc3Qgc3RydWN0IHVzdHIgKm9j dV9pKQogCQlpZiAoYyA8IDB4ODBVKQogCQkJdXRmX28tPnVfbmFtZVt1dGZfby0+dV9sZW4rK10g PSAodWludDhfdCljOwogCQllbHNlIGlmIChjIDwgMHg4MDBVKSB7CisJCQlpZiAodXRmX28tPnVf bGVuID4gKFVERl9OQU1FX0xFTiAtIDQpKQorCQkJCWJyZWFrOwogCQkJdXRmX28tPnVfbmFtZVt1 dGZfby0+dV9sZW4rK10gPQogCQkJCQkJKHVpbnQ4X3QpKDB4YzAgfCAoYyA+PiA2KSk7CiAJCQl1 dGZfby0+dV9uYW1lW3V0Zl9vLT51X2xlbisrXSA9CiAJCQkJCQkodWludDhfdCkoMHg4MCB8IChj ICYgMHgzZikpOwogCQl9IGVsc2UgeworCQkJaWYgKHV0Zl9vLT51X2xlbiA+IChVREZfTkFNRV9M RU4gLSA1KSkKKwkJCQlicmVhazsKIAkJCXV0Zl9vLT51X25hbWVbdXRmX28tPnVfbGVuKytdID0K IAkJCQkJCSh1aW50OF90KSgweGUwIHwgKGMgPj4gMTIpKTsKIAkJCXV0Zl9vLT51X25hbWVbdXRm X28tPnVfbGVuKytdID0KQEAgLTE3OCwxNyArMTgyLDIyIEBAIGludCB1ZGZfQ1MwdG9VVEY4KHN0 cnVjdCB1c3RyICp1dGZfbywgY29uc3Qgc3RydWN0IHVzdHIgKm9jdV9pKQogc3RhdGljIGludCB1 ZGZfVVRGOHRvQ1MwKGRzdHJpbmcgKm9jdSwgc3RydWN0IHVzdHIgKnV0ZiwgaW50IGxlbmd0aCkK IHsKIAl1bnNpZ25lZCBjLCBpLCBtYXhfdmFsLCB1dGZfY2hhcjsKLQlpbnQgdXRmX2NudCwgdV9s ZW47CisJaW50IHV0Zl9jbnQsIHVfbGVuLCB1X2NoOwogCiAJbWVtc2V0KG9jdSwgMCwgc2l6ZW9m KGRzdHJpbmcpICogbGVuZ3RoKTsKIAlvY3VbMF0gPSA4OwogCW1heF92YWwgPSAweGZmVTsKKwl1 X2NoID0gMTsKIAogdHJ5X2FnYWluOgogCXVfbGVuID0gMFU7CiAJdXRmX2NoYXIgPSAwVTsKIAl1 dGZfY250ID0gMFU7CiAJZm9yIChpID0gMFU7IGkgPCB1dGYtPnVfbGVuOyBpKyspIHsKKwkJLyog TmFtZSBkaWRuJ3QgZml0PyAqLworCQlpZiAodV9sZW4gKyAxICsgdV9jaCA+PSBsZW5ndGgpCisJ CQlyZXR1cm4gMDsKKwogCQljID0gKHVpbnQ4X3QpdXRmLT51X25hbWVbaV07CiAKIAkJLyogQ29t cGxldGUgYSBtdWx0aS1ieXRlIFVURi04IGNoYXJhY3RlciAqLwpAQCAtMjMwLDYgKzIzOSw3IEBA IHRyeV9hZ2FpbjoKIAkJCWlmIChtYXhfdmFsID09IDB4ZmZVKSB7CiAJCQkJbWF4X3ZhbCA9IDB4 ZmZmZlU7CiAJCQkJb2N1WzBdID0gKHVpbnQ4X3QpMHgxMFU7CisJCQkJdV9jaCA9IDI7CiAJCQkJ Z290byB0cnlfYWdhaW47CiAJCQl9CiAJCQlnb3RvIGVycm9yX291dDsKQEAgLTI4Miw3ICsyOTIs NyBAQCBzdGF0aWMgaW50IHVkZl9DUzB0b05MUyhzdHJ1Y3QgbmxzX3RhYmxlICpubHMsIHN0cnVj dCB1c3RyICp1dGZfbywKIAkJCWMgPSAoYyA8PCA4KSB8IG9jdVtpKytdOwogCiAJCWxlbiA9IG5s cy0+dW5pMmNoYXIoYywgJnV0Zl9vLT51X25hbWVbdXRmX28tPnVfbGVuXSwKLQkJCQkgICAgVURG X05BTUVfTEVOIC0gdXRmX28tPnVfbGVuKTsKKwkJCQkgICAgVURGX05BTUVfTEVOIC0gMiAtIHV0 Zl9vLT51X2xlbik7CiAJCS8qIFZhbGlkIGNoYXJhY3Rlcj8gKi8KIAkJaWYgKGxlbiA+PSAwKQog CQkJdXRmX28tPnVfbGVuICs9IGxlbjsKQEAgLTMwMCwxNSArMzEwLDE5IEBAIHN0YXRpYyBpbnQg dWRmX05MU3RvQ1MwKHN0cnVjdCBubHNfdGFibGUgKm5scywgZHN0cmluZyAqb2N1LCBzdHJ1Y3Qg dXN0ciAqdW5pLAogCWludCBsZW47CiAJdW5zaWduZWQgaSwgbWF4X3ZhbDsKIAl1aW50MTZfdCB1 bmlfY2hhcjsKLQlpbnQgdV9sZW47CisJaW50IHVfbGVuLCB1X2NoOwogCiAJbWVtc2V0KG9jdSwg MCwgc2l6ZW9mKGRzdHJpbmcpICogbGVuZ3RoKTsKIAlvY3VbMF0gPSA4OwogCW1heF92YWwgPSAw eGZmVTsKKwl1X2NoID0gMTsKIAogdHJ5X2FnYWluOgogCXVfbGVuID0gMFU7CiAJZm9yIChpID0g MFU7IGkgPCB1bmktPnVfbGVuOyBpKyspIHsKKwkJLyogTmFtZSBkaWRuJ3QgZml0PyAqLworCQlp ZiAodV9sZW4gKyAxICsgdV9jaCA+PSBsZW5ndGgpCisJCQlyZXR1cm4gMDsKIAkJbGVuID0gbmxz LT5jaGFyMnVuaSgmdW5pLT51X25hbWVbaV0sIHVuaS0+dV9sZW4gLSBpLCAmdW5pX2NoYXIpOwog CQlpZiAoIWxlbikKIAkJCWNvbnRpbnVlOwpAQCAtMzIxLDYgKzMzNSw3IEBAIHRyeV9hZ2FpbjoK IAkJaWYgKHVuaV9jaGFyID4gbWF4X3ZhbCkgewogCQkJbWF4X3ZhbCA9IDB4ZmZmZlU7CiAJCQlv Y3VbMF0gPSAodWludDhfdCkweDEwVTsKKwkJCXVfY2ggPSAyOwogCQkJZ290byB0cnlfYWdhaW47 CiAJCX0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jcnlwdG8vaGFzaC5oIGIvaW5jbHVkZS9jcnlw dG8vaGFzaC5oCmluZGV4IDI2Y2IxZWIxNmY0Yy4uYzhjNzk4NzhjMDgyIDEwMDY0NAotLS0gYS9p bmNsdWRlL2NyeXB0by9oYXNoLmgKKysrIGIvaW5jbHVkZS9jcnlwdG8vaGFzaC5oCkBAIC05NCw2 ICs5NCw3IEBAIHN0cnVjdCBjcnlwdG9fYWhhc2ggewogCQkgICAgICB1bnNpZ25lZCBpbnQga2V5 bGVuKTsKIAogCXVuc2lnbmVkIGludCByZXFzaXplOworCWJvb2wgaGFzX3NldGtleTsKIAlzdHJ1 Y3QgY3J5cHRvX3RmbSBiYXNlOwogfTsKIApAQCAtMTgxLDYgKzE4MiwxMSBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgKmFoYXNoX3JlcXVlc3RfY3R4KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCiAK IGludCBjcnlwdG9fYWhhc2hfc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSwgY29uc3Qg dTggKmtleSwKIAkJCXVuc2lnbmVkIGludCBrZXlsZW4pOworc3RhdGljIGlubGluZSBib29sIGNy eXB0b19haGFzaF9oYXNfc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKK3sKKwlyZXR1 cm4gdGZtLT5oYXNfc2V0a2V5OworfQorCiBpbnQgY3J5cHRvX2FoYXNoX2ZpbnVwKHN0cnVjdCBh aGFzaF9yZXF1ZXN0ICpyZXEpOwogaW50IGNyeXB0b19haGFzaF9maW5hbChzdHJ1Y3QgYWhhc2hf cmVxdWVzdCAqcmVxKTsKIGludCBjcnlwdG9fYWhhc2hfZGlnZXN0KHN0cnVjdCBhaGFzaF9yZXF1 ZXN0ICpyZXEpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jcnlwdG8vaWZfYWxnLmggYi9pbmNsdWRl L2NyeXB0by9pZl9hbGcuaAppbmRleCBkNjFjMTExNzAyMTMuLmJmZWZkODEzOWUxOCAxMDA2NDQK LS0tIGEvaW5jbHVkZS9jcnlwdG8vaWZfYWxnLmgKKysrIGIvaW5jbHVkZS9jcnlwdG8vaWZfYWxn LmgKQEAgLTMwLDYgKzMwLDkgQEAgc3RydWN0IGFsZ19zb2NrIHsKIAogCXN0cnVjdCBzb2NrICpw YXJlbnQ7CiAKKwl1bnNpZ25lZCBpbnQgcmVmY250OworCXVuc2lnbmVkIGludCBub2tleV9yZWZj bnQ7CisKIAljb25zdCBzdHJ1Y3QgYWZfYWxnX3R5cGUgKnR5cGU7CiAJdm9pZCAqcHJpdmF0ZTsK IH07CkBAIC00OSw4ICs1MiwxMCBAQCBzdHJ1Y3QgYWZfYWxnX3R5cGUgewogCXZvaWQgKCpyZWxl YXNlKSh2b2lkICpwcml2YXRlKTsKIAlpbnQgKCpzZXRrZXkpKHZvaWQgKnByaXZhdGUsIGNvbnN0 IHU4ICprZXksIHVuc2lnbmVkIGludCBrZXlsZW4pOwogCWludCAoKmFjY2VwdCkodm9pZCAqcHJp dmF0ZSwgc3RydWN0IHNvY2sgKnNrKTsKKwlpbnQgKCphY2NlcHRfbm9rZXkpKHZvaWQgKnByaXZh dGUsIHN0cnVjdCBzb2NrICpzayk7CiAKIAlzdHJ1Y3QgcHJvdG9fb3BzICpvcHM7CisJc3RydWN0 IHByb3RvX29wcyAqb3BzX25va2V5OwogCXN0cnVjdCBtb2R1bGUgKm93bmVyOwogCWNoYXIgbmFt ZVsxNF07CiB9OwpAQCAtNjQsNiArNjksNyBAQCBpbnQgYWZfYWxnX3JlZ2lzdGVyX3R5cGUoY29u c3Qgc3RydWN0IGFmX2FsZ190eXBlICp0eXBlKTsKIGludCBhZl9hbGdfdW5yZWdpc3Rlcl90eXBl KGNvbnN0IHN0cnVjdCBhZl9hbGdfdHlwZSAqdHlwZSk7CiAKIGludCBhZl9hbGdfcmVsZWFzZShz dHJ1Y3Qgc29ja2V0ICpzb2NrKTsKK3ZvaWQgYWZfYWxnX3JlbGVhc2VfcGFyZW50KHN0cnVjdCBz b2NrICpzayk7CiBpbnQgYWZfYWxnX2FjY2VwdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2Nr ZXQgKm5ld3NvY2spOwogCiBpbnQgYWZfYWxnX21ha2Vfc2coc3RydWN0IGFmX2FsZ19zZ2wgKnNn bCwgdm9pZCBfX3VzZXIgKmFkZHIsIGludCBsZW4sCkBAIC04MCwxMSArODYsNiBAQCBzdGF0aWMg aW5saW5lIHN0cnVjdCBhbGdfc29jayAqYWxnX3NrKHN0cnVjdCBzb2NrICpzaykKIAlyZXR1cm4g KHN0cnVjdCBhbGdfc29jayAqKXNrOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgYWZfYWxnX3Jl bGVhc2VfcGFyZW50KHN0cnVjdCBzb2NrICpzaykKLXsKLQlzb2NrX3B1dChhbGdfc2soc2spLT5w YXJlbnQpOwotfQotCiBzdGF0aWMgaW5saW5lIHZvaWQgYWZfYWxnX2luaXRfY29tcGxldGlvbihz dHJ1Y3QgYWZfYWxnX2NvbXBsZXRpb24gKmNvbXBsZXRpb24pCiB7CiAJaW5pdF9jb21wbGV0aW9u KCZjb21wbGV0aW9uLT5jb21wbGV0aW9uKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY3J5 cHRvLmggYi9pbmNsdWRlL2xpbnV4L2NyeXB0by5oCmluZGV4IGNhMDFlYTg5OTExNC4uNmY1MDFk ZWNjZjQxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NyeXB0by5oCisrKyBiL2luY2x1ZGUv bGludXgvY3J5cHRvLmgKQEAgLTM0Niw2ICszNDYsNyBAQCBzdHJ1Y3QgYWJsa2NpcGhlcl90Zm0g ewogCiAJdW5zaWduZWQgaW50IGl2c2l6ZTsKIAl1bnNpZ25lZCBpbnQgcmVxc2l6ZTsKKwlib29s IGhhc19zZXRrZXk7CiB9OwogCiBzdHJ1Y3QgYWVhZF90Zm0gewpAQCAtNjU2LDYgKzY1NywxMyBA QCBzdGF0aWMgaW5saW5lIGludCBjcnlwdG9fYWJsa2NpcGhlcl9zZXRrZXkoc3RydWN0IGNyeXB0 b19hYmxrY2lwaGVyICp0Zm0sCiAJcmV0dXJuIGNydC0+c2V0a2V5KGNydC0+YmFzZSwga2V5LCBr ZXlsZW4pOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgY3J5cHRvX2FibGtjaXBoZXJfaGFzX3Nl dGtleShzdHJ1Y3QgY3J5cHRvX2FibGtjaXBoZXIgKnRmbSkKK3sKKwlzdHJ1Y3QgYWJsa2NpcGhl cl90Zm0gKmNydCA9IGNyeXB0b19hYmxrY2lwaGVyX2NydCh0Zm0pOworCisJcmV0dXJuIGNydC0+ aGFzX3NldGtleTsKK30KKwogc3RhdGljIGlubGluZSBzdHJ1Y3QgY3J5cHRvX2FibGtjaXBoZXIg KmNyeXB0b19hYmxrY2lwaGVyX3JlcXRmbSgKIAlzdHJ1Y3QgYWJsa2NpcGhlcl9yZXF1ZXN0ICpy ZXEpCiB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L210ZC9uYW5kLmggYi9pbmNsdWRlL2xp bnV4L210ZC9uYW5kLmgKaW5kZXggYjI1YjA5YjFlYTAwLi4wYzRmMGRkYzgyNjcgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvbXRkL25hbmQuaAorKysgYi9pbmNsdWRlL2xpbnV4L210ZC9uYW5k LmgKQEAgLTI4Myw3ICsyODMsNyBAQCBzdHJ1Y3QgbmFuZF9vbmZpX3BhcmFtcyB7CiAJX19sZTE2 IHRfcjsKIAlfX2xlMTYgdF9jY3M7CiAJX19sZTE2IHNyY19zeW5jX3RpbWluZ19tb2RlOwotCV9f bGUxNiBzcmNfc3N5bmNfZmVhdHVyZXM7CisJdTggc3JjX3NzeW5jX2ZlYXR1cmVzOwogCV9fbGUx NiBjbGtfcGluX2NhcGFjaXRhbmNlX3R5cDsKIAlfX2xlMTYgaW9fcGluX2NhcGFjaXRhbmNlX3R5 cDsKIAlfX2xlMTYgaW5wdXRfcGluX2NhcGFjaXRhbmNlX3R5cDsKQEAgLTI5MSw3ICsyOTEsNyBA QCBzdHJ1Y3QgbmFuZF9vbmZpX3BhcmFtcyB7CiAJdTggZHJpdmVyX3N0cmVuZ2h0X3N1cHBvcnQ7 CiAJX19sZTE2IHRfaW50X3I7CiAJX19sZTE2IHRfYWxkOwotCXU4IHJlc2VydmVkNFs3XTsKKwl1 OCByZXNlcnZlZDRbOF07CiAKIAkvKiB2ZW5kb3IgKi8KIAl1OCByZXNlcnZlZDVbOTBdOwpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wcmludGsuaCBiL2luY2x1ZGUvbGludXgvcHJpbnRrLmgK aW5kZXggZjBlMjJmNzUxNDNmLi4xM2FiYzA2NWU3MTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlu dXgvcHJpbnRrLmgKKysrIGIvaW5jbHVkZS9saW51eC9wcmludGsuaApAQCAtODAsMTMgKzgwLDEz IEBAIHN0cnVjdCB2YV9mb3JtYXQgewogCiAvKgogICogRHVtbXkgcHJpbnRrIGZvciBkaXNhYmxl ZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cyB0byB1c2Ugd2hpbHN0IG1haW50YWluaW5nCi0gKiBnY2Mn cyBmb3JtYXQgYW5kIHNpZGUtZWZmZWN0IGNoZWNraW5nLgorICogZ2NjJ3MgZm9ybWF0IGNoZWNr aW5nLgogICovCi1zdGF0aWMgaW5saW5lIF9fcHJpbnRmKDEsIDIpCi1pbnQgbm9fcHJpbnRrKGNv bnN0IGNoYXIgKmZtdCwgLi4uKQotewotCXJldHVybiAwOwotfQorI2RlZmluZSBub19wcmludGso Zm10LCAuLi4pCQkJXAorZG8gewkJCQkJCVwKKwlpZiAoMCkJCQkJCVwKKwkJcHJpbnRrKGZtdCwg IyNfX1ZBX0FSR1NfXyk7CVwKK30gd2hpbGUgKDApCiAKIGV4dGVybiBhc21saW5rYWdlIF9fcHJp bnRmKDEsIDIpCiB2b2lkIGVhcmx5X3ByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLik7CmRpZmYg LS1naXQgYS9rZXJuZWwvZnV0ZXguYyBiL2tlcm5lbC9mdXRleC5jCmluZGV4IDc0ODE1OTUzZjU0 Yy4uOWRjMmM3MTkyYjJlIDEwMDY0NAotLS0gYS9rZXJuZWwvZnV0ZXguYworKysgYi9rZXJuZWwv ZnV0ZXguYwpAQCAtMjQ5Miw2ICsyNDkyLDExIEBAIHN0YXRpYyBpbnQgZnV0ZXhfd2FpdF9yZXF1 ZXVlX3BpKHUzMiBfX3VzZXIgKnVhZGRyLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAJCWlmIChxLnBp X3N0YXRlICYmIChxLnBpX3N0YXRlLT5vd25lciAhPSBjdXJyZW50KSkgewogCQkJc3Bpbl9sb2Nr KHEubG9ja19wdHIpOwogCQkJcmV0ID0gZml4dXBfcGlfc3RhdGVfb3duZXIodWFkZHIyLCAmcSwg Y3VycmVudCk7CisJCQkvKgorCQkJICogRHJvcCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBwaSBzdGF0 ZSB3aGljaAorCQkJICogdGhlIHJlcXVldWVfcGkoKSBjb2RlIGFjcXVpcmVkIGZvciB1cy4KKwkJ CSAqLworCQkJZnJlZV9waV9zdGF0ZShxLnBpX3N0YXRlKTsKIAkJCXNwaW5fdW5sb2NrKHEubG9j a19wdHIpOwogCQl9CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2tlcm5lbC90aW1lL3Bvc2l4LWNs b2NrLmMgYi9rZXJuZWwvdGltZS9wb3NpeC1jbG9jay5jCmluZGV4IGNlMDMzYzdhYTJlOC4uOWNm ZjBhYjgyYjYzIDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS9wb3NpeC1jbG9jay5jCisrKyBiL2tl cm5lbC90aW1lL3Bvc2l4LWNsb2NrLmMKQEAgLTY5LDEwICs2OSwxMCBAQCBzdGF0aWMgc3NpemVf dCBwb3NpeF9jbG9ja19yZWFkKHN0cnVjdCBmaWxlICpmcCwgY2hhciBfX3VzZXIgKmJ1ZiwKIHN0 YXRpYyB1bnNpZ25lZCBpbnQgcG9zaXhfY2xvY2tfcG9sbChzdHJ1Y3QgZmlsZSAqZnAsIHBvbGxf dGFibGUgKndhaXQpCiB7CiAJc3RydWN0IHBvc2l4X2Nsb2NrICpjbGsgPSBnZXRfcG9zaXhfY2xv Y2soZnApOwotCWludCByZXN1bHQgPSAwOworCXVuc2lnbmVkIGludCByZXN1bHQgPSAwOwogCiAJ aWYgKCFjbGspCi0JCXJldHVybiAtRU5PREVWOworCQlyZXR1cm4gUE9MTEVSUjsKIAogCWlmIChj bGstPm9wcy5wb2xsKQogCQlyZXN1bHQgPSBjbGstPm9wcy5wb2xsKGNsaywgZnAsIHdhaXQpOwpk aWZmIC0tZ2l0IGEvbGliL2RtYS1kZWJ1Zy5jIGIvbGliL2RtYS1kZWJ1Zy5jCmluZGV4IGZlYTc5 MGEyYjE3Ni4uNTUxZmY3MjgyZGFkIDEwMDY0NAotLS0gYS9saWIvZG1hLWRlYnVnLmMKKysrIGIv bGliL2RtYS1kZWJ1Zy5jCkBAIC05NDIsNyArOTQyLDcgQEAgc3RhdGljIGlubGluZSBib29sIG92 ZXJsYXAodm9pZCAqYWRkciwgdW5zaWduZWQgbG9uZyBsZW4sIHZvaWQgKnN0YXJ0LCB2b2lkICpl bmQKIAogc3RhdGljIHZvaWQgY2hlY2tfZm9yX2lsbGVnYWxfYXJlYShzdHJ1Y3QgZGV2aWNlICpk ZXYsIHZvaWQgKmFkZHIsIHVuc2lnbmVkIGxvbmcgbGVuKQogewotCWlmIChvdmVybGFwKGFkZHIs IGxlbiwgX3RleHQsIF9ldGV4dCkgfHwKKwlpZiAob3ZlcmxhcChhZGRyLCBsZW4sIF9zdGV4dCwg X2V0ZXh0KSB8fAogCSAgICBvdmVybGFwKGFkZHIsIGxlbiwgX19zdGFydF9yb2RhdGEsIF9fZW5k X3JvZGF0YSkpCiAJCWVycl9wcmludGsoZGV2LCBOVUxMLCAiRE1BLUFQSTogZGV2aWNlIGRyaXZl ciBtYXBzIG1lbW9yeSBmcm9tIGtlcm5lbCB0ZXh0IG9yIHJvZGF0YSBbYWRkcj0lcF0gW2xlbj0l bHVdXG4iLCBhZGRyLCBsZW4pOwogfQpkaWZmIC0tZ2l0IGEvbW0vbWVtY29udHJvbC5jIGIvbW0v bWVtY29udHJvbC5jCmluZGV4IDIwNGRlNmFiNjI5Mi4uOWJhNjdkZDZkYjM0IDEwMDY0NAotLS0g YS9tbS9tZW1jb250cm9sLmMKKysrIGIvbW0vbWVtY29udHJvbC5jCkBAIC00NTY0LDE2ICs0NTY0 LDE3IEBAIHN0YXRpYyB2b2lkIG1lbV9jZ3JvdXBfdXNhZ2VfdW5yZWdpc3Rlcl9ldmVudChzdHJ1 Y3QgY2dyb3VwICpjZ3JwLAogc3dhcF9idWZmZXJzOgogCS8qIFN3YXAgcHJpbWFyeSBhbmQgc3Bh cmUgYXJyYXkgKi8KIAl0aHJlc2hvbGRzLT5zcGFyZSA9IHRocmVzaG9sZHMtPnByaW1hcnk7Ci0J LyogSWYgYWxsIGV2ZW50cyBhcmUgdW5yZWdpc3RlcmVkLCBmcmVlIHRoZSBzcGFyZSBhcnJheSAq LwotCWlmICghbmV3KSB7Ci0JCWtmcmVlKHRocmVzaG9sZHMtPnNwYXJlKTsKLQkJdGhyZXNob2xk cy0+c3BhcmUgPSBOVUxMOwotCX0KIAogCXJjdV9hc3NpZ25fcG9pbnRlcih0aHJlc2hvbGRzLT5w cmltYXJ5LCBuZXcpOwogCiAJLyogVG8gYmUgc3VyZSB0aGF0IG5vYm9keSB1c2VzIHRocmVzaG9s ZHMgKi8KIAlzeW5jaHJvbml6ZV9yY3UoKTsKKworCS8qIElmIGFsbCBldmVudHMgYXJlIHVucmVn aXN0ZXJlZCwgZnJlZSB0aGUgc3BhcmUgYXJyYXkgKi8KKwlpZiAoIW5ldykgeworCQlrZnJlZSh0 aHJlc2hvbGRzLT5zcGFyZSk7CisJCXRocmVzaG9sZHMtPnNwYXJlID0gTlVMTDsKKwl9CiB1bmxv Y2s6CiAJbXV0ZXhfdW5sb2NrKCZtZW1jZy0+dGhyZXNob2xkc19sb2NrKTsKIH0KZGlmZiAtLWdp dCBhL25ldC9pcHY2L3RjcF9pcHY2LmMgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCmluZGV4IDAxNzA2 NzkyZjI4Mi4uYjIwZjdhMDhiNGY3IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni90Y3BfaXB2Ni5jCisr KyBiL25ldC9pcHY2L3RjcF9pcHY2LmMKQEAgLTUxMyw4ICs1MTMsMTAgQEAgc3RhdGljIGludCB0 Y3BfdjZfc2VuZF9zeW5hY2soc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpy ZXEsCiAJCV9fdGNwX3Y2X3NlbmRfY2hlY2soc2tiLCAmdHJlcS0+bG9jX2FkZHIsICZ0cmVxLT5y bXRfYWRkcik7CiAKIAkJaXB2Nl9hZGRyX2NvcHkoJmZsNi5kYWRkciwgJnRyZXEtPnJtdF9hZGRy KTsKKwkJcmN1X3JlYWRfbG9jaygpOwogCQllcnIgPSBpcDZfeG1pdChzaywgc2tiLCAmZmw2LCBy Y3VfZGVyZWZlcmVuY2UobnAtPm9wdCksCiAJCQkgICAgICAgbnAtPnRjbGFzcyk7CisJCXJjdV9y ZWFkX3VubG9jaygpOwogCQllcnIgPSBuZXRfeG1pdF9ldmFsKGVycik7CiAJfQogCmRpZmYgLS1n aXQgYS9uZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmMgYi9uZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmMK aW5kZXggNTgxYzA2YTA0MDY3Li41NDM3YjMzZmQzM2UgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3Nt X3NpZGVlZmZlY3QuYworKysgYi9uZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmMKQEAgLTI0OSwxMSAr MjQ5LDEyIEBAIHZvaWQgc2N0cF9nZW5lcmF0ZV90M19ydHhfZXZlbnQodW5zaWduZWQgbG9uZyBw ZWVyKQogCWludCBlcnJvcjsKIAlzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnRyYW5zcG9ydCA9IChz dHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKikgcGVlcjsKIAlzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAq YXNvYyA9IHRyYW5zcG9ydC0+YXNvYzsKKwlzdHJ1Y3Qgc29jayAqc2sgPSBhc29jLT5iYXNlLnNr OwogCiAJLyogQ2hlY2sgd2hldGhlciBhIHRhc2sgaXMgaW4gdGhlIHNvY2suICAqLwogCi0Jc2N0 cF9iaF9sb2NrX3NvY2soYXNvYy0+YmFzZS5zayk7Ci0JaWYgKHNvY2tfb3duZWRfYnlfdXNlcihh c29jLT5iYXNlLnNrKSkgeworCXNjdHBfYmhfbG9ja19zb2NrKHNrKTsKKwlpZiAoc29ja19vd25l ZF9ieV91c2VyKHNrKSkgewogCQlTQ1RQX0RFQlVHX1BSSU5USygiJXM6U29jayBpcyBidXN5Llxu IiwgX19mdW5jX18pOwogCiAJCS8qIFRyeSBhZ2FpbiBsYXRlci4gICovCkBAIC0yNzYsMTAgKzI3 NywxMCBAQCB2b2lkIHNjdHBfZ2VuZXJhdGVfdDNfcnR4X2V2ZW50KHVuc2lnbmVkIGxvbmcgcGVl cikKIAkJCSAgIHRyYW5zcG9ydCwgR0ZQX0FUT01JQyk7CiAKIAlpZiAoZXJyb3IpCi0JCWFzb2Mt PmJhc2Uuc2stPnNrX2VyciA9IC1lcnJvcjsKKwkJc2stPnNrX2VyciA9IC1lcnJvcjsKIAogb3V0 X3VubG9jazoKLQlzY3RwX2JoX3VubG9ja19zb2NrKGFzb2MtPmJhc2Uuc2spOworCXNjdHBfYmhf dW5sb2NrX3NvY2soc2spOwogCXNjdHBfdHJhbnNwb3J0X3B1dCh0cmFuc3BvcnQpOwogfQogCkBA IC0yODksMTAgKzI5MCwxMSBAQCBvdXRfdW5sb2NrOgogc3RhdGljIHZvaWQgc2N0cF9nZW5lcmF0 ZV90aW1lb3V0X2V2ZW50KHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLAogCQkJCQlzY3Rw X2V2ZW50X3RpbWVvdXRfdCB0aW1lb3V0X3R5cGUpCiB7CisJc3RydWN0IHNvY2sgKnNrID0gYXNv Yy0+YmFzZS5zazsKIAlpbnQgZXJyb3IgPSAwOwogCi0Jc2N0cF9iaF9sb2NrX3NvY2soYXNvYy0+ YmFzZS5zayk7Ci0JaWYgKHNvY2tfb3duZWRfYnlfdXNlcihhc29jLT5iYXNlLnNrKSkgeworCXNj dHBfYmhfbG9ja19zb2NrKHNrKTsKKwlpZiAoc29ja19vd25lZF9ieV91c2VyKHNrKSkgewogCQlT Q1RQX0RFQlVHX1BSSU5USygiJXM6U29jayBpcyBidXN5OiB0aW1lciAlZFxuIiwKIAkJCQkgIF9f ZnVuY19fLAogCQkJCSAgdGltZW91dF90eXBlKTsKQEAgLTMxNiwxMCArMzE4LDEwIEBAIHN0YXRp YyB2b2lkIHNjdHBfZ2VuZXJhdGVfdGltZW91dF9ldmVudChzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlv biAqYXNvYywKIAkJCSAgICh2b2lkICopdGltZW91dF90eXBlLCBHRlBfQVRPTUlDKTsKIAogCWlm IChlcnJvcikKLQkJYXNvYy0+YmFzZS5zay0+c2tfZXJyID0gLWVycm9yOworCQlzay0+c2tfZXJy ID0gLWVycm9yOwogCiBvdXRfdW5sb2NrOgotCXNjdHBfYmhfdW5sb2NrX3NvY2soYXNvYy0+YmFz ZS5zayk7CisJc2N0cF9iaF91bmxvY2tfc29jayhzayk7CiAJc2N0cF9hc3NvY2lhdGlvbl9wdXQo YXNvYyk7CiB9CiAKQEAgLTM2OSw5ICszNzEsMTAgQEAgdm9pZCBzY3RwX2dlbmVyYXRlX2hlYXJ0 YmVhdF9ldmVudCh1bnNpZ25lZCBsb25nIGRhdGEpCiAJaW50IGVycm9yID0gMDsKIAlzdHJ1Y3Qg c2N0cF90cmFuc3BvcnQgKnRyYW5zcG9ydCA9IChzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKikgZGF0 YTsKIAlzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYyA9IHRyYW5zcG9ydC0+YXNvYzsKKwlz dHJ1Y3Qgc29jayAqc2sgPSBhc29jLT5iYXNlLnNrOwogCi0Jc2N0cF9iaF9sb2NrX3NvY2soYXNv Yy0+YmFzZS5zayk7Ci0JaWYgKHNvY2tfb3duZWRfYnlfdXNlcihhc29jLT5iYXNlLnNrKSkgewor CXNjdHBfYmhfbG9ja19zb2NrKHNrKTsKKwlpZiAoc29ja19vd25lZF9ieV91c2VyKHNrKSkgewog CQlTQ1RQX0RFQlVHX1BSSU5USygiJXM6U29jayBpcyBidXN5LlxuIiwgX19mdW5jX18pOwogCiAJ CS8qIFRyeSBhZ2FpbiBsYXRlci4gICovCkBAIC0zOTIsMTAgKzM5NSwxMCBAQCB2b2lkIHNjdHBf Z2VuZXJhdGVfaGVhcnRiZWF0X2V2ZW50KHVuc2lnbmVkIGxvbmcgZGF0YSkKIAkJCSAgIHRyYW5z cG9ydCwgR0ZQX0FUT01JQyk7CiAKIAkgaWYgKGVycm9yKQotCQkgYXNvYy0+YmFzZS5zay0+c2tf ZXJyID0gLWVycm9yOworCQlzay0+c2tfZXJyID0gLWVycm9yOwogCiBvdXRfdW5sb2NrOgotCXNj dHBfYmhfdW5sb2NrX3NvY2soYXNvYy0+YmFzZS5zayk7CisJc2N0cF9iaF91bmxvY2tfc29jayhz ayk7CiAJc2N0cF90cmFuc3BvcnRfcHV0KHRyYW5zcG9ydCk7CiB9CiAKQEAgLTQwNiw5ICs0MDks MTAgQEAgdm9pZCBzY3RwX2dlbmVyYXRlX3Byb3RvX3VucmVhY2hfZXZlbnQodW5zaWduZWQgbG9u ZyBkYXRhKQogewogCXN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdHJhbnNwb3J0ID0gKHN0cnVjdCBz Y3RwX3RyYW5zcG9ydCAqKSBkYXRhOwogCXN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jID0g dHJhbnNwb3J0LT5hc29jOworCXN0cnVjdCBzb2NrICpzayA9IGFzb2MtPmJhc2Uuc2s7CiAJCi0J c2N0cF9iaF9sb2NrX3NvY2soYXNvYy0+YmFzZS5zayk7Ci0JaWYgKHNvY2tfb3duZWRfYnlfdXNl cihhc29jLT5iYXNlLnNrKSkgeworCXNjdHBfYmhfbG9ja19zb2NrKHNrKTsKKwlpZiAoc29ja19v d25lZF9ieV91c2VyKHNrKSkgewogCQlTQ1RQX0RFQlVHX1BSSU5USygiJXM6U29jayBpcyBidXN5 LlxuIiwgX19mdW5jX18pOwogCiAJCS8qIFRyeSBhZ2FpbiBsYXRlci4gICovCkBAIC00MjksNyAr NDMzLDcgQEAgdm9pZCBzY3RwX2dlbmVyYXRlX3Byb3RvX3VucmVhY2hfZXZlbnQodW5zaWduZWQg bG9uZyBkYXRhKQogCQkgICBhc29jLT5zdGF0ZSwgYXNvYy0+ZXAsIGFzb2MsIHRyYW5zcG9ydCwg R0ZQX0FUT01JQyk7CiAKIG91dF91bmxvY2s6Ci0Jc2N0cF9iaF91bmxvY2tfc29jayhhc29jLT5i YXNlLnNrKTsKKwlzY3RwX2JoX3VubG9ja19zb2NrKHNrKTsKIAlzY3RwX2Fzc29jaWF0aW9uX3B1 dChhc29jKTsKIH0KIApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9ibG9hdC1vLW1ldGVyIGIvc2NyaXB0 cy9ibG9hdC1vLW1ldGVyCmluZGV4IDYxMjkwMjBjNDFhOS4uODEyMjhhNDQzMTIyIDEwMDc1NQot LS0gYS9zY3JpcHRzL2Jsb2F0LW8tbWV0ZXIKKysrIGIvc2NyaXB0cy9ibG9hdC1vLW1ldGVyCkBA IC01NSw4ICs1NSw4IEBAIGZvciBuYW1lIGluIGNvbW1vbjoKIGRlbHRhLnNvcnQoKQogZGVsdGEu cmV2ZXJzZSgpCiAKLXByaW50ICJhZGQvcmVtb3ZlOiAlcy8lcyBncm93L3NocmluazogJXMvJXMg dXAvZG93bjogJXMvJXMgKCVzKSIgJSBcCi0gICAgICAoYWRkLCByZW1vdmUsIGdyb3csIHNocmlu aywgdXAsIC1kb3duLCB1cC1kb3duKQotcHJpbnQgIiUtNDBzICU3cyAlN3MgJSs3cyIgJSAoImZ1 bmN0aW9uIiwgIm9sZCIsICJuZXciLCAiZGVsdGEiKQorcHJpbnQoImFkZC9yZW1vdmU6ICVzLyVz IGdyb3cvc2hyaW5rOiAlcy8lcyB1cC9kb3duOiAlcy8lcyAoJXMpIiAlIFwKKyAgICAgIChhZGQs IHJlbW92ZSwgZ3Jvdywgc2hyaW5rLCB1cCwgLWRvd24sIHVwLWRvd24pKQorcHJpbnQoIiUtNDBz ICU3cyAlN3MgJSs3cyIgJSAoImZ1bmN0aW9uIiwgIm9sZCIsICJuZXciLCAiZGVsdGEiKSkKIGZv ciBkLCBuIGluIGRlbHRhOgotICAgIGlmIGQ6IHByaW50ICIlLTQwcyAlN3MgJTdzICUrN2QiICUg KG4sIG9sZC5nZXQobiwiLSIpLCBuZXcuZ2V0KG4sIi0iKSwgZCkKKyAgICBpZiBkOiBwcmludCgi JS00MHMgJTdzICU3cyAlKzdkIiAlIChuLCBvbGQuZ2V0KG4sIi0iKSwgbmV3LmdldChuLCItIiks IGQpKQpkaWZmIC0tZ2l0IGEvc291bmQvY29yZS9jb250cm9sLmMgYi9zb3VuZC9jb3JlL2NvbnRy b2wuYwppbmRleCAxYmE1ZDMzOWFjZDMuLjk2YzYyZTU4ZDk1MCAxMDA2NDQKLS0tIGEvc291bmQv Y29yZS9jb250cm9sLmMKKysrIGIvc291bmQvY29yZS9jb250cm9sLmMKQEAgLTEzMjEsNiArMTMy MSw4IEBAIHN0YXRpYyBpbnQgc25kX2N0bF90bHZfaW9jdGwoc3RydWN0IHNuZF9jdGxfZmlsZSAq ZmlsZSwKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJaWYgKHRsdi5sZW5ndGggPCBzaXplb2YodW5zaWdu ZWQgaW50KSAqIDIpCiAJCXJldHVybiAtRUlOVkFMOworCWlmICghdGx2Lm51bWlkKQorCQlyZXR1 cm4gLUVJTlZBTDsKIAlkb3duX3JlYWQoJmNhcmQtPmNvbnRyb2xzX3J3c2VtKTsKIAlrY3RsID0g c25kX2N0bF9maW5kX251bWlkKGNhcmQsIHRsdi5udW1pZCk7CiAJaWYgKGtjdGwgPT0gTlVMTCkg ewpkaWZmIC0tZ2l0IGEvc291bmQvY29yZS9ocnRpbWVyLmMgYi9zb3VuZC9jb3JlL2hydGltZXIu YwppbmRleCBiOGIzMWM0MzNkNjQuLjE0ZDQ4M2Q2YjNiMCAxMDA2NDQKLS0tIGEvc291bmQvY29y ZS9ocnRpbWVyLmMKKysrIGIvc291bmQvY29yZS9ocnRpbWVyLmMKQEAgLTkwLDcgKzkwLDcgQEAg c3RhdGljIGludCBzbmRfaHJ0aW1lcl9zdGFydChzdHJ1Y3Qgc25kX3RpbWVyICp0KQogCXN0cnVj dCBzbmRfaHJ0aW1lciAqc3RpbWUgPSB0LT5wcml2YXRlX2RhdGE7CiAKIAlhdG9taWNfc2V0KCZz dGltZS0+cnVubmluZywgMCk7Ci0JaHJ0aW1lcl9jYW5jZWwoJnN0aW1lLT5ocnQpOworCWhydGlt ZXJfdHJ5X3RvX2NhbmNlbCgmc3RpbWUtPmhydCk7CiAJaHJ0aW1lcl9zdGFydCgmc3RpbWUtPmhy dCwgbnNfdG9fa3RpbWUodC0+c3RpY2tzICogcmVzb2x1dGlvbiksCiAJCSAgICAgIEhSVElNRVJf TU9ERV9SRUwpOwogCWF0b21pY19zZXQoJnN0aW1lLT5ydW5uaW5nLCAxKTsKQEAgLTEwMSw2ICsx MDEsNyBAQCBzdGF0aWMgaW50IHNuZF9ocnRpbWVyX3N0b3Aoc3RydWN0IHNuZF90aW1lciAqdCkK IHsKIAlzdHJ1Y3Qgc25kX2hydGltZXIgKnN0aW1lID0gdC0+cHJpdmF0ZV9kYXRhOwogCWF0b21p Y19zZXQoJnN0aW1lLT5ydW5uaW5nLCAwKTsKKwlocnRpbWVyX3RyeV90b19jYW5jZWwoJnN0aW1l LT5ocnQpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3BjbV9jb21w YXQuYyBiL3NvdW5kL2NvcmUvcGNtX2NvbXBhdC5jCmluZGV4IDRkYmI2NmVmNDM1ZC4uY2VhZGEw OTZlMjJhIDEwMDY0NAotLS0gYS9zb3VuZC9jb3JlL3BjbV9jb21wYXQuYworKysgYi9zb3VuZC9j b3JlL3BjbV9jb21wYXQuYwpAQCAtMjM1LDEwICsyMzUsMTUgQEAgc3RhdGljIGludCBzbmRfcGNt X2lvY3RsX2h3X3BhcmFtc19jb21wYXQoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJl YW0sCiAJaWYgKCEgKHJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWUpKQogCQlyZXR1cm4gLUVO T1RUWTsKIAotCS8qIG9ubHkgZmlmb19zaXplIGlzIGRpZmZlcmVudCwgc28ganVzdCBjb3B5IGFs bCAqLwotCWRhdGEgPSBtZW1kdXBfdXNlcihkYXRhMzIsIHNpemVvZigqZGF0YTMyKSk7Ci0JaWYg KElTX0VSUihkYXRhKSkKLQkJcmV0dXJuIFBUUl9FUlIoZGF0YSk7CisJZGF0YSA9IGttYWxsb2Mo c2l6ZW9mKCpkYXRhKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkYXRhKQorCQlyZXR1cm4gLUVOT01F TTsKKworCS8qIG9ubHkgZmlmb19zaXplIChSTyBmcm9tIHVzZXJzcGFjZSkgaXMgZGlmZmVyZW50 LCBzbyBqdXN0IGNvcHkgYWxsICovCisJaWYgKGNvcHlfZnJvbV91c2VyKGRhdGEsIGRhdGEzMiwg c2l6ZW9mKCpkYXRhMzIpKSkgeworCQllcnIgPSAtRUZBVUxUOworCQlnb3RvIGVycm9yOworCX0K IAogCWlmIChyZWZpbmUpCiAJCWVyciA9IHNuZF9wY21faHdfcmVmaW5lKHN1YnN0cmVhbSwgZGF0 YSk7CmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3NlcS9zZXFfY2xpZW50bWdyLmMgYi9zb3VuZC9j b3JlL3NlcS9zZXFfY2xpZW50bWdyLmMKaW5kZXggNGRjNmJhZTgwZTE1Li5lY2ZiZjVmMzlkMzgg MTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUvc2VxL3NlcV9jbGllbnRtZ3IuYworKysgYi9zb3VuZC9j b3JlL3NlcS9zZXFfY2xpZW50bWdyLmMKQEAgLTE5NTAsNyArMTk1MCw3IEBAIHN0YXRpYyBpbnQg c25kX3NlcV9pb2N0bF9yZW1vdmVfZXZlbnRzKHN0cnVjdCBzbmRfc2VxX2NsaWVudCAqY2xpZW50 LAogCQkgKiBObyByZXN0cmljdGlvbnMgc28gZm9yIGEgdXNlciBjbGllbnQgd2UgY2FuIGNsZWFy CiAJCSAqIHRoZSB3aG9sZSBmaWZvCiAJCSAqLwotCQlpZiAoY2xpZW50LT50eXBlID09IFVTRVJf Q0xJRU5UKQorCQlpZiAoY2xpZW50LT50eXBlID09IFVTRVJfQ0xJRU5UICYmIGNsaWVudC0+ZGF0 YS51c2VyLmZpZm8pCiAJCQlzbmRfc2VxX2ZpZm9fY2xlYXIoY2xpZW50LT5kYXRhLnVzZXIuZmlm byk7CiAJfQogCmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3NlcS9zZXFfY29tcGF0LmMgYi9zb3Vu ZC9jb3JlL3NlcS9zZXFfY29tcGF0LmMKaW5kZXggODFmN2MxMDlkYzQ2Li42NTE3NTkwMmE2OGEg MTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUvc2VxL3NlcV9jb21wYXQuYworKysgYi9zb3VuZC9jb3Jl L3NlcS9zZXFfY29tcGF0LmMKQEAgLTQ5LDExICs0OSwxMiBAQCBzdGF0aWMgaW50IHNuZF9zZXFf Y2FsbF9wb3J0X2luZm9faW9jdGwoc3RydWN0IHNuZF9zZXFfY2xpZW50ICpjbGllbnQsIHVuc2ln bmVkCiAJc3RydWN0IHNuZF9zZXFfcG9ydF9pbmZvICpkYXRhOwogCW1tX3NlZ21lbnRfdCBmczsK IAotCWRhdGEgPSBtZW1kdXBfdXNlcihkYXRhMzIsIHNpemVvZigqZGF0YTMyKSk7Ci0JaWYgKElT X0VSUihkYXRhKSkKLQkJcmV0dXJuIFBUUl9FUlIoZGF0YSk7CisJZGF0YSA9IGttYWxsb2Moc2l6 ZW9mKCpkYXRhKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkYXRhKQorCQlyZXR1cm4gLUVOT01FTTsK IAotCWlmIChnZXRfdXNlcihkYXRhLT5mbGFncywgJmRhdGEzMi0+ZmxhZ3MpIHx8CisJaWYgKGNv cHlfZnJvbV91c2VyKGRhdGEsIGRhdGEzMiwgc2l6ZW9mKCpkYXRhMzIpKSB8fAorCSAgICBnZXRf dXNlcihkYXRhLT5mbGFncywgJmRhdGEzMi0+ZmxhZ3MpIHx8CiAJICAgIGdldF91c2VyKGRhdGEt PnRpbWVfcXVldWUsICZkYXRhMzItPnRpbWVfcXVldWUpKQogCQlnb3RvIGVycm9yOwogCWRhdGEt Pmtlcm5lbCA9IE5VTEw7CmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3NlcS9zZXFfcXVldWUuYyBi L3NvdW5kL2NvcmUvc2VxL3NlcV9xdWV1ZS5jCmluZGV4IGY5MDc3MzYxYzExOS4uNGM5YWE0NjJk ZTliIDEwMDY0NAotLS0gYS9zb3VuZC9jb3JlL3NlcS9zZXFfcXVldWUuYworKysgYi9zb3VuZC9j b3JlL3NlcS9zZXFfcXVldWUuYwpAQCAtMTQ0LDggKzE0NCwxMCBAQCBzdGF0aWMgc3RydWN0IHNu ZF9zZXFfcXVldWUgKnF1ZXVlX25ldyhpbnQgb3duZXIsIGludCBsb2NrZWQpCiBzdGF0aWMgdm9p ZCBxdWV1ZV9kZWxldGUoc3RydWN0IHNuZF9zZXFfcXVldWUgKnEpCiB7CiAJLyogc3RvcCBhbmQg cmVsZWFzZSB0aGUgdGltZXIgKi8KKwltdXRleF9sb2NrKCZxLT50aW1lcl9tdXRleCk7CiAJc25k X3NlcV90aW1lcl9zdG9wKHEtPnRpbWVyKTsKIAlzbmRfc2VxX3RpbWVyX2Nsb3NlKHEpOworCW11 dGV4X3VubG9jaygmcS0+dGltZXJfbXV0ZXgpOwogCS8qIHdhaXQgdW50aWwgYWNjZXNzIGZyZWUg Ki8KIAlzbmRfdXNlX2xvY2tfc3luYygmcS0+dXNlX2xvY2spOwogCS8qIHJlbGVhc2UgcmVzb3Vy Y2VzLi4uICovCmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3RpbWVyLmMgYi9zb3VuZC9jb3JlL3Rp bWVyLmMKaW5kZXggOGU3NTYxZGZjNWZjLi43NmJkZmFjY2I4ZGUgMTAwNjQ0Ci0tLSBhL3NvdW5k L2NvcmUvdGltZXIuYworKysgYi9zb3VuZC9jb3JlL3RpbWVyLmMKQEAgLTcyLDcgKzcyLDcgQEAg c3RydWN0IHNuZF90aW1lcl91c2VyIHsKIAlzdHJ1Y3QgdGltZXNwZWMgdHN0YW1wOwkJLyogdHJp Z2dlciB0c3RhbXAgKi8KIAl3YWl0X3F1ZXVlX2hlYWRfdCBxY2hhbmdlX3NsZWVwOwogCXN0cnVj dCBmYXN5bmNfc3RydWN0ICpmYXN5bmM7Ci0Jc3RydWN0IG11dGV4IHRyZWFkX3NlbTsKKwlzdHJ1 Y3QgbXV0ZXggaW9jdGxfbG9jazsKIH07CiAKIC8qIGxpc3Qgb2YgdGltZXJzICovCkBAIC0yMTQs MTEgKzIxNCwxMyBAQCBzdGF0aWMgdm9pZCBzbmRfdGltZXJfY2hlY2tfbWFzdGVyKHN0cnVjdCBz bmRfdGltZXJfaW5zdGFuY2UgKm1hc3RlcikKIAkJICAgIHNsYXZlLT5zbGF2ZV9pZCA9PSBtYXN0 ZXItPnNsYXZlX2lkKSB7CiAJCQlsaXN0X21vdmVfdGFpbCgmc2xhdmUtPm9wZW5fbGlzdCwgJm1h c3Rlci0+c2xhdmVfbGlzdF9oZWFkKTsKIAkJCXNwaW5fbG9ja19pcnEoJnNsYXZlX2FjdGl2ZV9s b2NrKTsKKwkJCXNwaW5fbG9jaygmbWFzdGVyLT50aW1lci0+bG9jayk7CiAJCQlzbGF2ZS0+bWFz dGVyID0gbWFzdGVyOwogCQkJc2xhdmUtPnRpbWVyID0gbWFzdGVyLT50aW1lcjsKIAkJCWlmIChz bGF2ZS0+ZmxhZ3MgJiBTTkRSVl9USU1FUl9JRkxHX1JVTk5JTkcpCiAJCQkJbGlzdF9hZGRfdGFp bCgmc2xhdmUtPmFjdGl2ZV9saXN0LAogCQkJCQkgICAgICAmbWFzdGVyLT5zbGF2ZV9hY3RpdmVf aGVhZCk7CisJCQlzcGluX3VubG9jaygmbWFzdGVyLT50aW1lci0+bG9jayk7CiAJCQlzcGluX3Vu bG9ja19pcnEoJnNsYXZlX2FjdGl2ZV9sb2NrKTsKIAkJfQogCX0KQEAgLTM0NCwxNSArMzQ2LDE4 IEBAIGludCBzbmRfdGltZXJfY2xvc2Uoc3RydWN0IHNuZF90aW1lcl9pbnN0YW5jZSAqdGltZXJp KQogCQkgICAgdGltZXItPmh3LmNsb3NlKQogCQkJdGltZXItPmh3LmNsb3NlKHRpbWVyKTsKIAkJ LyogcmVtb3ZlIHNsYXZlIGxpbmtzICovCisJCXNwaW5fbG9ja19pcnEoJnNsYXZlX2FjdGl2ZV9s b2NrKTsKKwkJc3Bpbl9sb2NrKCZ0aW1lci0+bG9jayk7CiAJCWxpc3RfZm9yX2VhY2hfZW50cnlf c2FmZShzbGF2ZSwgdG1wLCAmdGltZXJpLT5zbGF2ZV9saXN0X2hlYWQsCiAJCQkJCSBvcGVuX2xp c3QpIHsKLQkJCXNwaW5fbG9ja19pcnEoJnNsYXZlX2FjdGl2ZV9sb2NrKTsKLQkJCV9zbmRfdGlt ZXJfc3RvcChzbGF2ZSwgMSwgU05EUlZfVElNRVJfRVZFTlRfUkVTT0xVVElPTik7CiAJCQlsaXN0 X21vdmVfdGFpbCgmc2xhdmUtPm9wZW5fbGlzdCwgJnNuZF90aW1lcl9zbGF2ZV9saXN0KTsKIAkJ CXNsYXZlLT5tYXN0ZXIgPSBOVUxMOwogCQkJc2xhdmUtPnRpbWVyID0gTlVMTDsKLQkJCXNwaW5f dW5sb2NrX2lycSgmc2xhdmVfYWN0aXZlX2xvY2spOworCQkJbGlzdF9kZWxfaW5pdCgmc2xhdmUt PmFja19saXN0KTsKKwkJCWxpc3RfZGVsX2luaXQoJnNsYXZlLT5hY3RpdmVfbGlzdCk7CiAJCX0K KwkJc3Bpbl91bmxvY2soJnRpbWVyLT5sb2NrKTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZzbGF2ZV9h Y3RpdmVfbG9jayk7CiAJCW11dGV4X3VubG9jaygmcmVnaXN0ZXJfbXV0ZXgpOwogCX0KICBvdXQ6 CkBAIC00MzksOSArNDQ0LDEyIEBAIHN0YXRpYyBpbnQgc25kX3RpbWVyX3N0YXJ0X3NsYXZlKHN0 cnVjdCBzbmRfdGltZXJfaW5zdGFuY2UgKnRpbWVyaSkKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZz bGF2ZV9hY3RpdmVfbG9jaywgZmxhZ3MpOwogCXRpbWVyaS0+ZmxhZ3MgfD0gU05EUlZfVElNRVJf SUZMR19SVU5OSU5HOwotCWlmICh0aW1lcmktPm1hc3RlcikKKwlpZiAodGltZXJpLT5tYXN0ZXIg JiYgdGltZXJpLT50aW1lcikgeworCQlzcGluX2xvY2soJnRpbWVyaS0+dGltZXItPmxvY2spOwog CQlsaXN0X2FkZF90YWlsKCZ0aW1lcmktPmFjdGl2ZV9saXN0LAogCQkJICAgICAgJnRpbWVyaS0+ bWFzdGVyLT5zbGF2ZV9hY3RpdmVfaGVhZCk7CisJCXNwaW5fdW5sb2NrKCZ0aW1lcmktPnRpbWVy LT5sb2NrKTsKKwl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2xhdmVfYWN0aXZlX2xvY2ss IGZsYWdzKTsKIAlyZXR1cm4gMTsgLyogZGVsYXllZCBzdGFydCAqLwogfQpAQCAtNDg3LDYgKzQ5 NSw4IEBAIHN0YXRpYyBpbnQgX3NuZF90aW1lcl9zdG9wKHN0cnVjdCBzbmRfdGltZXJfaW5zdGFu Y2UgKiB0aW1lcmksCiAJCWlmICgha2VlcF9mbGFnKSB7CiAJCQlzcGluX2xvY2tfaXJxc2F2ZSgm c2xhdmVfYWN0aXZlX2xvY2ssIGZsYWdzKTsKIAkJCXRpbWVyaS0+ZmxhZ3MgJj0gflNORFJWX1RJ TUVSX0lGTEdfUlVOTklORzsKKwkJCWxpc3RfZGVsX2luaXQoJnRpbWVyaS0+YWNrX2xpc3QpOwor CQkJbGlzdF9kZWxfaW5pdCgmdGltZXJpLT5hY3RpdmVfbGlzdCk7CiAJCQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZzbGF2ZV9hY3RpdmVfbG9jaywgZmxhZ3MpOwogCQl9CiAJCWdvdG8gX19lbmQ7 CkBAIC02OTIsNyArNzAyLDcgQEAgdm9pZCBzbmRfdGltZXJfaW50ZXJydXB0KHN0cnVjdCBzbmRf dGltZXIgKiB0aW1lciwgdW5zaWduZWQgbG9uZyB0aWNrc19sZWZ0KQogCQl9IGVsc2UgewogCQkJ dGktPmZsYWdzICY9IH5TTkRSVl9USU1FUl9JRkxHX1JVTk5JTkc7CiAJCQlpZiAoLS10aW1lci0+ cnVubmluZykKLQkJCQlsaXN0X2RlbCgmdGktPmFjdGl2ZV9saXN0KTsKKwkJCQlsaXN0X2RlbF9p bml0KCZ0aS0+YWN0aXZlX2xpc3QpOwogCQl9CiAJCWlmICgodGltZXItPmh3LmZsYWdzICYgU05E UlZfVElNRVJfSFdfVEFTS0xFVCkgfHwKIAkJICAgICh0aS0+ZmxhZ3MgJiBTTkRSVl9USU1FUl9J RkxHX0ZBU1QpKQpAQCAtMTI1NSw3ICsxMjY1LDcgQEAgc3RhdGljIGludCBzbmRfdGltZXJfdXNl cl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogCQlyZXR1cm4g LUVOT01FTTsKIAlzcGluX2xvY2tfaW5pdCgmdHUtPnFsb2NrKTsKIAlpbml0X3dhaXRxdWV1ZV9o ZWFkKCZ0dS0+cWNoYW5nZV9zbGVlcCk7Ci0JbXV0ZXhfaW5pdCgmdHUtPnRyZWFkX3NlbSk7CisJ bXV0ZXhfaW5pdCgmdHUtPmlvY3RsX2xvY2spOwogCXR1LT50aWNrcyA9IDE7CiAJdHUtPnF1ZXVl X3NpemUgPSAxMjg7CiAJdHUtPnF1ZXVlID0ga21hbGxvYyh0dS0+cXVldWVfc2l6ZSAqIHNpemVv ZihzdHJ1Y3Qgc25kX3RpbWVyX3JlYWQpLApAQCAtMTI3NSw4ICsxMjg1LDEwIEBAIHN0YXRpYyBp bnQgc25kX3RpbWVyX3VzZXJfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmls ZSAqZmlsZSkKIAlpZiAoZmlsZS0+cHJpdmF0ZV9kYXRhKSB7CiAJCXR1ID0gZmlsZS0+cHJpdmF0 ZV9kYXRhOwogCQlmaWxlLT5wcml2YXRlX2RhdGEgPSBOVUxMOworCQltdXRleF9sb2NrKCZ0dS0+ aW9jdGxfbG9jayk7CiAJCWlmICh0dS0+dGltZXJpKQogCQkJc25kX3RpbWVyX2Nsb3NlKHR1LT50 aW1lcmkpOworCQltdXRleF91bmxvY2soJnR1LT5pb2N0bF9sb2NrKTsKIAkJa2ZyZWUodHUtPnF1 ZXVlKTsKIAkJa2ZyZWUodHUtPnRxdWV1ZSk7CiAJCWtmcmVlKHR1KTsKQEAgLTE1MTQsNyArMTUy Niw2IEBAIHN0YXRpYyBpbnQgc25kX3RpbWVyX3VzZXJfdHNlbGVjdChzdHJ1Y3QgZmlsZSAqZmls ZSwKIAlpbnQgZXJyID0gMDsKIAogCXR1ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwotCW11dGV4X2xv Y2soJnR1LT50cmVhZF9zZW0pOwogCWlmICh0dS0+dGltZXJpKSB7CiAJCXNuZF90aW1lcl9jbG9z ZSh0dS0+dGltZXJpKTsKIAkJdHUtPnRpbWVyaSA9IE5VTEw7CkBAIC0xNTU4LDcgKzE1NjksNiBA QCBzdGF0aWMgaW50IHNuZF90aW1lcl91c2VyX3RzZWxlY3Qoc3RydWN0IGZpbGUgKmZpbGUsCiAJ fQogCiAgICAgICBfX2VycjoKLSAgICAgIAltdXRleF91bmxvY2soJnR1LT50cmVhZF9zZW0pOwog CXJldHVybiBlcnI7CiB9CiAKQEAgLTE3NzEsNyArMTc4MSw3IEBAIGVudW0gewogCVNORFJWX1RJ TUVSX0lPQ1RMX1BBVVNFX09MRCA9IF9JTygnVCcsIDB4MjMpLAogfTsKIAotc3RhdGljIGxvbmcg c25kX3RpbWVyX3VzZXJfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQs CitzdGF0aWMgbG9uZyBfX3NuZF90aW1lcl91c2VyX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1 bnNpZ25lZCBpbnQgY21kLAogCQkJCSB1bnNpZ25lZCBsb25nIGFyZykKIHsKIAlzdHJ1Y3Qgc25k X3RpbWVyX3VzZXIgKnR1OwpAQCAtMTc4OCwxNyArMTc5OCwxMSBAQCBzdGF0aWMgbG9uZyBzbmRf dGltZXJfdXNlcl9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwKIAl7 CiAJCWludCB4YXJnOwogCi0JCW11dGV4X2xvY2soJnR1LT50cmVhZF9zZW0pOwotCQlpZiAodHUt PnRpbWVyaSkJewkvKiB0b28gbGF0ZSAqLwotCQkJbXV0ZXhfdW5sb2NrKCZ0dS0+dHJlYWRfc2Vt KTsKKwkJaWYgKHR1LT50aW1lcmkpCS8qIHRvbyBsYXRlICovCiAJCQlyZXR1cm4gLUVCVVNZOwot CQl9Ci0JCWlmIChnZXRfdXNlcih4YXJnLCBwKSkgewotCQkJbXV0ZXhfdW5sb2NrKCZ0dS0+dHJl YWRfc2VtKTsKKwkJaWYgKGdldF91c2VyKHhhcmcsIHApKQogCQkJcmV0dXJuIC1FRkFVTFQ7Ci0J CX0KIAkJdHUtPnRyZWFkID0geGFyZyA/IDEgOiAwOwotCQltdXRleF91bmxvY2soJnR1LT50cmVh ZF9zZW0pOwogCQlyZXR1cm4gMDsKIAl9CiAJY2FzZSBTTkRSVl9USU1FUl9JT0NUTF9HSU5GTzoK QEAgLTE4MzEsNiArMTgzNSwxOCBAQCBzdGF0aWMgbG9uZyBzbmRfdGltZXJfdXNlcl9pb2N0bChz dHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwKIAlyZXR1cm4gLUVOT1RUWTsKIH0K IAorc3RhdGljIGxvbmcgc25kX3RpbWVyX3VzZXJfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVu c2lnbmVkIGludCBjbWQsCisJCQkJIHVuc2lnbmVkIGxvbmcgYXJnKQoreworCXN0cnVjdCBzbmRf dGltZXJfdXNlciAqdHUgPSBmaWxlLT5wcml2YXRlX2RhdGE7CisJbG9uZyByZXQ7CisKKwltdXRl eF9sb2NrKCZ0dS0+aW9jdGxfbG9jayk7CisJcmV0ID0gX19zbmRfdGltZXJfdXNlcl9pb2N0bChm aWxlLCBjbWQsIGFyZyk7CisJbXV0ZXhfdW5sb2NrKCZ0dS0+aW9jdGxfbG9jayk7CisJcmV0dXJu IHJldDsKK30KKwogc3RhdGljIGludCBzbmRfdGltZXJfdXNlcl9mYXN5bmMoaW50IGZkLCBzdHJ1 Y3QgZmlsZSAqIGZpbGUsIGludCBvbikKIHsKIAlzdHJ1Y3Qgc25kX3RpbWVyX3VzZXIgKnR1Owpk aWZmIC0tZ2l0IGEvc291bmQvcGNpL2ZtODAxLmMgYi9zb3VuZC9wY2kvZm04MDEuYwppbmRleCBl YzA1ZWY1YTVhYmYuLjlhZWIxYzA2YTU1NSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2ZtODAxLmMK KysrIGIvc291bmQvcGNpL2ZtODAxLmMKQEAgLTEyNDQsNiArMTI0NCw4IEBAIHN0YXRpYyBpbnQg X19kZXZpbml0IHNuZF9mbTgwMV9jcmVhdGUoc3RydWN0IHNuZF9jYXJkICpjYXJkLAogCQkJcmV0 dXJuIC1FTk9ERVY7CiAJCX0KIAl9IGVsc2UgaWYgKCh0ZWE1NzV4X3R1bmVyICYgVFVORVJfVFlQ RV9NQVNLKSA9PSAwKSB7CisJCXVuc2lnbmVkIGludCB0dW5lcl9vbmx5ID0gdGVhNTc1eF90dW5l ciAmIFRVTkVSX09OTFk7CisKIAkJLyogYXV0b2RldGVjdCB0dW5lciBjb25uZWN0aW9uICovCiAJ CWZvciAodGVhNTc1eF90dW5lciA9IDE7IHRlYTU3NXhfdHVuZXIgPD0gMzsgdGVhNTc1eF90dW5l cisrKSB7CiAJCQljaGlwLT50ZWE1NzV4X3R1bmVyID0gdGVhNTc1eF90dW5lcjsKQEAgLTEyNTcs NiArMTI1OSw4IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IHNuZF9mbTgwMV9jcmVhdGUoc3RydWN0 IHNuZF9jYXJkICpjYXJkLAogCQkJc25kX3ByaW50ayhLRVJOX0VSUiAiVEVBNTc1eCByYWRpbyBu b3QgZm91bmRcbiIpOwogCQkJY2hpcC0+dGVhNTc1eF90dW5lciA9IFRVTkVSX0RJU0FCTEVEOwog CQl9CisKKwkJY2hpcC0+dGVhNTc1eF90dW5lciB8PSB0dW5lcl9vbmx5OwogCX0KIAlpZiAoIShj aGlwLT50ZWE1NzV4X3R1bmVyICYgVFVORVJfRElTQUJMRUQpKSB7CiAJCXN0cmxjcHkoY2hpcC0+ dGVhLmNhcmQsIGdldF90ZWE1NzV4X2dwaW8oY2hpcCktPm5hbWUsCi== --=-658X1BUSnp4BbfhOkKY7-- --=-25Cyi/y4Sp2UIQC/Yx/Q Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAVrkw8ee/yOyVhhEJAQpNExAAwADS6QRq9bI/op0PSKeBiSk0qkDtkUS2 LeneR2syPfNGGaa8NNq5Z1ejHOmm6jznE+jjA1ezZEcs3mwj23bkUuwOnfGojqUu IoI7FC0qkwRHiRU7tYlapTBwcGYMn9AcDPyfz0yWMuGwAUWFDq6NnLbod7+HzvlH /FnzG4LMpxCt22V4SdOFNAIN1XEUKZVMcb0mAK4fmk9sm3X4c05HVkit8axGszuF 7cd5dpL69OJUoxGdqGt2jDx0w+n5qvCApIR/wp/0ZqCiXbxKf5GsZbECwMhvsseb yPB75ghYJ217LtyeIa02r6HgVwuDDIB/YI/La+ObPRmwlwNhIsWZkTAo3rjOZYAG c4AtHL2j9xoSfKo/G3sV9ySbhSyWdSPp7S2Tzpw6xAidKaiIz0TkcUhdvqZmSbUt O8bH9s+9hW9PXwaEfakJ1trhSxzu4wTRtTJh3zuNbPv8wy8jBXzOzwSxxwUyNKMl Vj2i0WMqiCUYsLK6eqVjuBKeQMdqhDa0sR4lbzcQYGlWgSfQ0wFffkKqRzZtZZ/O D+lB07+J2UWwg3cL/BjC/WNozlakoH84091dY63kPf09/E5biiUtRb6CEe65yKbJ vbqzi+DTawlCiA8iJGsqoOdiRfhgjPflG7ZEan1s1NlDYHuIM5JLE+mlBdoagkox 0EU/B52B9mw= =V2xU -----END PGP SIGNATURE----- --=-25Cyi/y4Sp2UIQC/Yx/Q--