From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753584AbcD0VUW (ORCPT ); Wed, 27 Apr 2016 17:20:22 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:47036 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751734AbcD0VUO (ORCPT ); Wed, 27 Apr 2016 17:20:14 -0400 Message-ID: <1461791992.1169.0.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 000/115] 3.2.80-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: Wed, 27 Apr 2016 23:19:52 +0200 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-5wiOERKHRLhrq0DGfOU3" X-Mailer: Evolution 3.18.5.1-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 92.40.248.210 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 --=-5wiOERKHRLhrq0DGfOU3 Content-Type: multipart/mixed; boundary="=-317KozlXvUodno0n5f5+" --=-317KozlXvUodno0n5f5+ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined diff for 3.2.80-rc1 relative to 3.2.79. Ben. --=20 Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse. --=-317KozlXvUodno0n5f5+ Content-Disposition: attachment; filename="linux-3.2.80-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.80-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9pcC1zeXNjdGwudHh0IGIvRG9j dW1lbnRhdGlvbi9uZXR3b3JraW5nL2lwLXN5c2N0bC50eHQKaW5kZXggM2I5NzljNmJhODRiLi4w ZGY1ODI0ZmVlM2IgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9pcC1zeXNj dGwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9pcC1zeXNjdGwudHh0CkBAIC0x MDcwLDYgKzEwNzAsMTQgQEAgYWNjZXB0X3JhX2RlZnJ0ciAtIEJPT0xFQU4KIAlGdW5jdGlvbmFs IGRlZmF1bHQ6IGVuYWJsZWQgaWYgYWNjZXB0X3JhIGlzIGVuYWJsZWQuCiAJCQkgICAgZGlzYWJs ZWQgaWYgYWNjZXB0X3JhIGlzIGRpc2FibGVkLgogCithY2NlcHRfcmFfbWluX2hvcF9saW1pdCAt IElOVEVHRVIKKwlNaW5pbXVtIGhvcCBsaW1pdCBJbmZvcm1hdGlvbiBpbiBSb3V0ZXIgQWR2ZXJ0 aXNlbWVudC4KKworCUhvcCBsaW1pdCBJbmZvcm1hdGlvbiBpbiBSb3V0ZXIgQWR2ZXJ0aXNlbWVu dCBsZXNzIHRoYW4gdGhpcworCXZhcmlhYmxlIHNoYWxsIGJlIGlnbm9yZWQuCisKKwlEZWZhdWx0 OiAxCisKIGFjY2VwdF9yYV9waW5mbyAtIEJPT0xFQU4KIAlMZWFybiBQcmVmaXggSW5mb3JtYXRp b24gaW4gUm91dGVyIEFkdmVydGlzZW1lbnQuCiAKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIv TUFJTlRBSU5FUlMKaW5kZXggODY1OWViYTI3MDNkLi5lOTMxNjRkMGU1ZjUgMTAwNjQ0Ci0tLSBh L01BSU5UQUlORVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC0xOTksMTMgKzE5OSwxMyBAQCBGOglk cml2ZXJzL3Njc2kvYWFjcmFpZC8KIAogQUJJVCBVR1VSVSAxLDIgSEFSRFdBUkUgTU9OSVRPUiBE UklWRVIKIE06CUhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+Ci1MOglsbS1zZW5z b3JzQGxtLXNlbnNvcnMub3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1h aW50YWluZWQKIEY6CWRyaXZlcnMvaHdtb24vYWJpdHVndXJ1LmMKIAogQUJJVCBVR1VSVSAzIEhB UkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglBbGlzdGFpciBKb2huIFN0cmFjaGFuIDxhbGlzdGFp ckBkZXZ6ZXJvLmNvLnVrPgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgt aHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglkcml2ZXJzL2h3bW9uL2Fi aXR1Z3VydTMuYwogCkBAIC0zMjIsMTQgKzMyMiwxNCBAQCBTOglNYWludGFpbmVkCiAKIEFETTEw MjUgSEFSRFdBUkUgTU9OSVRPUiBEUklWRVIKIE06CUplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgt ZnIub3JnPgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdl ci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL2FkbTEw MjUKIEY6CWRyaXZlcnMvaHdtb24vYWRtMTAyNS5jCiAKIEFETTEwMjkgSEFSRFdBUkUgTU9OSVRP UiBEUklWRVIKIE06CUNvcmVudGluIExhYmJlIDxjb3JlbnRpbi5sYWJiZUBnZW9tYXR5cy5mcj4K LUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVs Lm9yZwogUzoJTWFpbnRhaW5lZAogRjoJZHJpdmVycy9od21vbi9hZG0xMDI5LmMKIApAQCAtMzY3 LDcgKzM2Nyw3IEBAIEY6CWRyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2FkcDg4NjBfYmwuYwogCiBB RFMxMDE1IEhBUkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglEaXJrIEVpYmFjaCA8ZWliYWNoQGdk c3lzLmRlPgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdl ci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL2FkczEw MTUKIEY6CWRyaXZlcnMvaHdtb24vYWRzMTAxNS5jCkBAIC0zODAsNyArMzgwLDcgQEAgRjoJZHJp dmVycy9tYWNpbnRvc2gvdGhlcm1fYWR0NzQ2eC5jCiAKIEFEVDc0NzUgSEFSRFdBUkUgTU9OSVRP UiBEUklWRVIKIE06CUplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3JnPgotTDoJbG0tc2Vu c29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglN YWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL2FkdDc0NzUKIEY6CWRyaXZlcnMvaHdt b24vYWR0NzQ3NS5jCkBAIC00ODUsNyArNDg1LDcgQEAgRjoJaW5jbHVkZS9saW51eC9hbHRlcmFf anRhZ3VhcnQuaAogCiBBTUQgRkFNMTVIIFBST0NFU1NPUiBQT1dFUiBNT05JVE9SSU5HIERSSVZF UgogTToJQW5kcmVhcyBIZXJybWFubiA8YW5kcmVhcy5oZXJybWFubjNAYW1kLmNvbT4KLUw6CWxt LXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwog UzoJTWFpbnRhaW5lZAogRjoJRG9jdW1lbnRhdGlvbi9od21vbi9mYW0xNWhfcG93ZXIKIEY6CWRy aXZlcnMvaHdtb24vZmFtMTVoX3Bvd2VyLmMKQEAgLTU3Miw3ICs1NzIsNyBAQCBGOglkcml2ZXJz L2lucHV0L21vdXNlL2JjbTU5NzQuYwogCiBBUFBMRSBTTUMgRFJJVkVSCiBNOglIZW5yaWsgUnlk YmVyZyA8cnlkYmVyZ0BldXJvbWFpbC5zZT4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcK K0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJZHJpdmVy cy9od21vbi9hcHBsZXNtYy5jCiAKQEAgLTEyMTQsNyArMTIxNCw3IEBAIEY6CWFyY2gvYXJtL21h Y2gtcHhhL2luY2x1ZGUvbWFjaC96Mi5oCiAKIEFTQzc2MjEgSEFSRFdBUkUgTU9OSVRPUiBEUklW RVIKIE06CUdlb3JnZSBKb3NlcGggPGdlb3JnZS5qb3NlcGhAZmFpcnZpZXc1LmNvbT4KLUw6CWxt LXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwog UzoJTWFpbnRhaW5lZAogRjoJRG9jdW1lbnRhdGlvbi9od21vbi9hc2M3NjIxCiBGOglkcml2ZXJz L2h3bW9uL2FzYzc2MjEuYwpAQCAtMTIzMCw3ICsxMjMwLDcgQEAgRjoJZHJpdmVycy9wbGF0Zm9y bS94ODYvZWVlcGMqLmMKIAogQVNVUyBBU0IxMDAgSEFSRFdBUkUgTU9OSVRPUiBEUklWRVIKIE06 CSJNYXJrIE0uIEhvZmZtYW4iIDxtaG9mZm1hbkBsaWdodGxpbmsuY29tPgotTDoJbG0tc2Vuc29y c0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWlu dGFpbmVkCiBGOglkcml2ZXJzL2h3bW9uL2FzYjEwMC5jCiAKQEAgLTEzMDMsNyArMTMwMyw3IEBA IEY6CWRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC8KIAogQVRLMDExMCBIV01PTiBE UklWRVIKIE06CUx1Y2EgVGV0dGFtYW50aSA8a3Jvbm9zLml0QGdtYWlsLmNvbT4KLUw6CWxtLXNl bnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwogUzoJ TWFpbnRhaW5lZAogRjoJZHJpdmVycy9od21vbi9hc3VzX2F0azAxMTAuYwogCkBAIC0xOTM3LDcg KzE5MzcsNyBAQCBGOgltbS8qY2dyb3VwKgogCiBDT1JFVEVNUCBIQVJEV0FSRSBNT05JVE9SSU5H IERSSVZFUgogTToJRmVuZ2h1YSBZdSA8ZmVuZ2h1YS55dUBpbnRlbC5jb20+Ci1MOglsbS1zZW5z b3JzQGxtLXNlbnNvcnMub3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1h aW50YWluZWQKIEY6CURvY3VtZW50YXRpb24vaHdtb24vY29yZXRlbXAKIEY6CWRyaXZlcnMvaHdt b24vY29yZXRlbXAuYwpAQCAtMjI2Myw3ICsyMjYzLDcgQEAgVDoJZ2l0IGdpdDovL2dpdC5pbmZy YWRlYWQub3JnL3VzZXJzL3Zrb3VsL3NsYXZlLWRtYS5naXQgKHNsYXZlLWRtYSkKIAogRE1FMTcz NyBIQVJEV0FSRSBNT05JVE9SIERSSVZFUgogTToJSnVlcmcgSGFlZmxpZ2VyIDxqdWVyZ2hAZ21h aWwuY29tPgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdl ci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL2RtZTE3 MzcKIEY6CWRyaXZlcnMvaHdtb24vZG1lMTczNy5jCkBAIC0yNjMyLDcgKzI2MzIsNyBAQCBGOglz ZWN1cml0eS9pbnRlZ3JpdHkvZXZtLwogCiBGNzE4MDVGIEhBUkRXQVJFIE1PTklUT1JJTkcgRFJJ VkVSCiBNOglKZWFuIERlbHZhcmUgPGtoYWxpQGxpbnV4LWZyLm9yZz4KLUw6CWxtLXNlbnNvcnNA bG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRh aW5lZAogRjoJRG9jdW1lbnRhdGlvbi9od21vbi9mNzE4MDVmCiBGOglkcml2ZXJzL2h3bW9uL2Y3 MTgwNWYuYwpAQCAtMjY4Myw3ICsyNjgzLDcgQEAgRjoJZnMvKgogCiBGSU5URUsgRjc1Mzc1UyBI QVJEV0FSRSBNT05JVE9SIEFORCBGQU4gQ09OVFJPTExFUiBEUklWRVIKIE06CVJpa3UgVm9pcGlv IDxyaWt1LnZvaXBpb0Bpa2kuZmk+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCitMOgls aW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6CWRyaXZlcnMvaHdt b24vZjc1Mzc1cy5jCiBGOglpbmNsdWRlL2xpbnV4L2Y3NTM3NXMuaApAQCAtMzAxMSw4ICszMDEx LDggQEAgRjoJZHJpdmVycy90dHkvaHZjLwogSEFSRFdBUkUgTU9OSVRPUklORwogTToJSmVhbiBE ZWx2YXJlIDxraGFsaUBsaW51eC1mci5vcmc+CiBNOglHdWVudGVyIFJvZWNrIDxndWVudGVyLnJv ZWNrQGVyaWNzc29uLmNvbT4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKLVc6CWh0dHA6 Ly93d3cubG0tc2Vuc29ycy5vcmcvCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKK1c6 CWh0dHA6Ly9od21vbi53aWtpLmtlcm5lbC5vcmcvCiBUOglxdWlsdCBrZXJuZWwub3JnL3B1Yi9s aW51eC9rZXJuZWwvcGVvcGxlL2pkZWx2YXJlL2xpbnV4LTIuNi9qZGVsdmFyZS1od21vbi8KIFQ6 CWdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZ3JvZWNr L2xpbnV4LXN0YWdpbmcuZ2l0CiBTOglNYWludGFpbmVkCkBAIC0zNjU2LDcgKzM2NTYsNyBAQCBG Oglkcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vCiAKIElUODcgSEFSRFdBUkUgTU9OSVRPUklO RyBEUklWRVIKIE06CUplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3JnPgotTDoJbG0tc2Vu c29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglN YWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL2l0ODcKIEY6CWRyaXZlcnMvaHdtb24v aXQ4Ny5jCkBAIC0zNjc0LDcgKzM2NzQsNyBAQCBGOglpbmNsdWRlL2xpbnV4L2l2dHYqCiAKIEpD NDIuNCBURU1QRVJBVFVSRSBTRU5TT1IgRFJJVkVSCiBNOglHdWVudGVyIFJvZWNrIDxsaW51eEBy b2Vjay11cy5uZXQ+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCitMOglsaW51eC1od21v bkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6CWRyaXZlcnMvaHdtb24vamM0Mi5j CiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL2pjNDIKQEAgLTM3MjYsMTQgKzM3MjYsMTQgQEAgRjoJ ZHJpdmVycy90dHkvc2VyaWFsL2pzbS8KIAogSzEwVEVNUCBIQVJEV0FSRSBNT05JVE9SSU5HIERS SVZFUgogTToJQ2xlbWVucyBMYWRpc2NoIDxjbGVtZW5zQGxhZGlzY2guZGU+Ci1MOglsbS1zZW5z b3JzQGxtLXNlbnNvcnMub3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1h aW50YWluZWQKIEY6CURvY3VtZW50YXRpb24vaHdtb24vazEwdGVtcAogRjoJZHJpdmVycy9od21v bi9rMTB0ZW1wLmMKIAogSzhURU1QIEhBUkRXQVJFIE1PTklUT1JJTkcgRFJJVkVSCiBNOglSdWRv bGYgTWFyZWsgPHIubWFyZWtAYXNzZW1ibGVyLmN6PgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3Jz Lm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglE b2N1bWVudGF0aW9uL2h3bW9uL2s4dGVtcAogRjoJZHJpdmVycy9od21vbi9rOHRlbXAuYwpAQCAt NDA3MCwyNyArNDA3MCwyNyBAQCBGOgluZXQvbGxjLwogCiBMTTczIEhBUkRXQVJFIE1PTklUT1Ig RFJJVkVSCiBNOglHdWlsbGF1bWUgTGlnbmV1bCA8Z3VpbGxhdW1lLmxpZ25ldWxAZ21haWwuY29t PgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJu ZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglkcml2ZXJzL2h3bW9uL2xtNzMuYwogCiBMTTc4IEhB UkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglKZWFuIERlbHZhcmUgPGtoYWxpQGxpbnV4LWZyLm9y Zz4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2Vy bmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJRG9jdW1lbnRhdGlvbi9od21vbi9sbTc4CiBGOglk cml2ZXJzL2h3bW9uL2xtNzguYwogCiBMTTgzIEhBUkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglK ZWFuIERlbHZhcmUgPGtoYWxpQGxpbnV4LWZyLm9yZz4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29y cy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJ RG9jdW1lbnRhdGlvbi9od21vbi9sbTgzCiBGOglkcml2ZXJzL2h3bW9uL2xtODMuYwogCiBMTTkw IEhBUkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglKZWFuIERlbHZhcmUgPGtoYWxpQGxpbnV4LWZy Lm9yZz4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIu a2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJRG9jdW1lbnRhdGlvbi9od21vbi9sbTkwCiBG Oglkcml2ZXJzL2h3bW9uL2xtOTAuYwpAQCAtNDEzNyw3ICs0MTM3LDcgQEAgRjoJZHJpdmVycy9z Y3NpL3N5bTUzYzh4eF8yLwogCiBMVEM0MjYxIEhBUkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglH dWVudGVyIFJvZWNrIDxsaW51eEByb2Vjay11cy5uZXQ+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNv cnMub3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6 CURvY3VtZW50YXRpb24vaHdtb24vbHRjNDI2MQogRjoJZHJpdmVycy9od21vbi9sdGM0MjYxLmMK QEAgLTQyNTgsMTQgKzQyNTgsMTQgQEAgRjoJaW5jbHVkZS9saW51eC9tYXRyb3hmYi5oCiAKIE1B WDE2NjggVEVNUEVSQVRVUkUgU0VOU09SIERSSVZFUgogTToJIkRhdmlkIEdlb3JnZSIgPGRhdmlk Lmdlb3JnZUBza2EuYWMuemE+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCitMOglsaW51 eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6CURvY3VtZW50YXRpb24v aHdtb24vbWF4MTY2OAogRjoJZHJpdmVycy9od21vbi9tYXgxNjY4LmMKIAogTUFYNjY1MCBIQVJE V0FSRSBNT05JVE9SIEFORCBGQU4gQ09OVFJPTExFUiBEUklWRVIKIE06CSJIYW5zIEouIEtvY2gi IDxoamtAaGFuc2prb2NoLmRlPgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGlu dXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9u L2h3bW9uL21heDY2NTAKIEY6CWRyaXZlcnMvaHdtb24vbWF4NjY1MC5jCkBAIC00OTg0LDcgKzQ5 ODQsNyBAQCBGOglkcml2ZXJzL3BhcmlzYy8KIAogUEM4NzM2MCBIQVJEV0FSRSBNT05JVE9SSU5H IERSSVZFUgogTToJSmltIENyb21pZSA8amltLmNyb21pZUBnbWFpbC5jb20+Ci1MOglsbS1zZW5z b3JzQGxtLXNlbnNvcnMub3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1h aW50YWluZWQKIEY6CURvY3VtZW50YXRpb24vaHdtb24vcGM4NzM2MAogRjoJZHJpdmVycy9od21v bi9wYzg3MzYwLmMKQEAgLTQ5OTYsNyArNDk5Niw3IEBAIEY6CWRyaXZlcnMvY2hhci9wYzg3MzZ4 X2dwaW8uYwogCiBQQzg3NDI3IEhBUkRXQVJFIE1PTklUT1JJTkcgRFJJVkVSCiBNOglKZWFuIERl bHZhcmUgPGtoYWxpQGxpbnV4LWZyLm9yZz4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcK K0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJRG9jdW1l bnRhdGlvbi9od21vbi9wYzg3NDI3CiBGOglkcml2ZXJzL2h3bW9uL3BjODc0MjcuYwpAQCAtNTE0 Myw4ICs1MTQzLDggQEAgRjoJZHJpdmVycy9ydGMvcnRjLXB1djMuYwogCiBQTUJVUyBIQVJEV0FS RSBNT05JVE9SSU5HIERSSVZFUlMKIE06CUd1ZW50ZXIgUm9lY2sgPGd1ZW50ZXIucm9lY2tAZXJp Y3Nzb24uY29tPgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZwotVzoJaHR0cDovL3d3dy5s bS1zZW5zb3JzLm9yZy8KK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZworVzoJaHR0cDov L2h3bW9uLndpa2kua2VybmVsLm9yZy8KIFc6CWh0dHA6Ly93d3cucm9lY2stdXMubmV0L2xpbnV4 L2RyaXZlcnMvCiBUOglnaXQgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJu ZWwvZ2l0L2dyb2Vjay9saW51eC1zdGFnaW5nLmdpdAogUzoJTWFpbnRhaW5lZApAQCAtNjAxNCwy OCArNjAxNCwyOCBAQCBGOglkcml2ZXJzL25ldC9ldGhlcm5ldC9zbXNjL3NtYzkxeC4qCiAKIFNN TTY2NSBIQVJEV0FSRSBNT05JVE9SIERSSVZFUgogTToJR3VlbnRlciBSb2VjayA8bGludXhAcm9l Y2stdXMubmV0PgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25A dmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL3Nt bTY2NQogRjoJZHJpdmVycy9od21vbi9zbW02NjUuYwogCiBTTVNDIEVNQzIxMDMgSEFSRFdBUkUg TU9OSVRPUiBEUklWRVIKIE06CVN0ZXZlIEdsZW5kaW5uaW5nIDxzdGV2ZS5nbGVuZGlubmluZ0Bz bXNjLmNvbT4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZn ZXIua2VybmVsLm9yZwogUzoJU3VwcG9ydGVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL2VtYzIx MDMKIEY6CWRyaXZlcnMvaHdtb24vZW1jMjEwMy5jCiAKIFNNU0MgU0NINTYyNyBIQVJEV0FSRSBN T05JVE9SIERSSVZFUgogTToJSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KLUw6 CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9y ZwogUzoJU3VwcG9ydGVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL3NjaDU2MjcKIEY6CWRyaXZl cnMvaHdtb24vc2NoNTYyNy5jCiAKIFNNU0M0N0IzOTcgSEFSRFdBUkUgTU9OSVRPUiBEUklWRVIK IE06CSJNYXJrIE0uIEhvZmZtYW4iIDxtaG9mZm1hbkBsaWdodGxpbmsuY29tPgotTDoJbG0tc2Vu c29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglN YWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL3Ntc2M0N2IzOTcKIEY6CWRyaXZlcnMv aHdtb24vc21zYzQ3YjM5Ny5jCkBAIC03MjEyLDE0ICs3MjEyLDE0IEBAIEY6CWluY2x1ZGUvbGlu dXgvcmVndWxhdG9yLwogCiBWVDEyMTEgSEFSRFdBUkUgTU9OSVRPUiBEUklWRVIKIE06CUp1ZXJn IEhhZWZsaWdlciA8anVlcmdoQGdtYWlsLmNvbT4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5v cmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJRG9j dW1lbnRhdGlvbi9od21vbi92dDEyMTEKIEY6CWRyaXZlcnMvaHdtb24vdnQxMjExLmMKIAogVlQ4 MjMxIEhBUkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglSb2dlciBMdWNhcyA8dnQ4MjMxQGhpZGRl bmVuZ2luZS5jby51az4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3 bW9uQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJZHJpdmVycy9od21vbi92dDgy MzEuYwogCkBAIC03MjM4LDIxICs3MjM4LDIxIEBAIEY6CWRyaXZlcnMvdzEvCiAKIFc4Mzc5MUQg SEFSRFdBUkUgTU9OSVRPUklORyBEUklWRVIKIE06CU1hcmMgSHVsc21hbiA8bS5odWxzbWFuQHR1 ZGVsZnQubmw+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCitMOglsaW51eC1od21vbkB2 Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6CURvY3VtZW50YXRpb24vaHdtb24vdzgz NzkxZAogRjoJZHJpdmVycy9od21vbi93ODM3OTFkLmMKIAogVzgzNzkzIEhBUkRXQVJFIE1PTklU T1JJTkcgRFJJVkVSCiBNOglSdWRvbGYgTWFyZWsgPHIubWFyZWtAYXNzZW1ibGVyLmN6PgotTDoJ bG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3Jn CiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL3c4Mzc5MwogRjoJZHJpdmVy cy9od21vbi93ODM3OTMuYwogCiBXODM3OTUgSEFSRFdBUkUgTU9OSVRPUklORyBEUklWRVIKIE06 CUplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3JnPgotTDoJbG0tc2Vuc29yc0BsbS1zZW5z b3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBG Oglkcml2ZXJzL2h3bW9uL3c4Mzc5NS5jCiAKZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZp bGUKaW5kZXggY2ZhZGI4ZmM3NzgxLi5kMTk3YWU2NjBlMGMgMTAwNjQ0Ci0tLSBhL01ha2VmaWxl CisrKyBiL01ha2VmaWxlCkBAIC0xLDcgKzEsNyBAQAogVkVSU0lPTiA9IDMKIFBBVENITEVWRUwg PSAyCi1TVUJMRVZFTCA9IDc5Ci1FWFRSQVZFUlNJT04gPQorU1VCTEVWRUwgPSA4MAorRVhUUkFW RVJTSU9OID0gLXJjMQogTkFNRSA9IFNhYmVyLXRvb3RoZWQgU3F1aXJyZWwKIAogIyAqRE9DVU1F TlRBVElPTioKZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL3VhY2Nlc3MuaCBi L2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL3VhY2Nlc3MuaAppbmRleCBmZjRjZjlkYWI4ZDIuLjMz NzM1M2RlMjM3YiAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vdWFjY2Vzcy5o CisrKyBiL2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL3VhY2Nlc3MuaApAQCAtNzksNiArNzksNyBA QCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5IHsKICAqLwogc3RydWN0IGV4Y2VwdGlvbl9k YXRhIHsKIAl1bnNpZ25lZCBsb25nIGZhdWx0X2lwOworCXVuc2lnbmVkIGxvbmcgZmF1bHRfZ3A7 CiAJdW5zaWduZWQgbG9uZyBmYXVsdF9zcGFjZTsKIAl1bnNpZ25lZCBsb25nIGZhdWx0X2FkZHI7 CiB9OwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL2FzbS1vZmZzZXRzLmMgYi9hcmNo L3BhcmlzYy9rZXJuZWwvYXNtLW9mZnNldHMuYwppbmRleCBkY2Q1NTEwM2E0YmIuLmEwZGMxZTUw ZTNhMyAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2Mva2VybmVsL2FzbS1vZmZzZXRzLmMKKysrIGIv YXJjaC9wYXJpc2Mva2VybmVsL2FzbS1vZmZzZXRzLmMKQEAgLTI5Miw2ICsyOTIsNyBAQCBpbnQg bWFpbih2b2lkKQogCURFRklORShBU01fUFRfSU5JVElBTCwgUFRfSU5JVElBTCk7CiAJQkxBTkso KTsKIAlERUZJTkUoRVhDREFUQV9JUCwgb2Zmc2V0b2Yoc3RydWN0IGV4Y2VwdGlvbl9kYXRhLCBm YXVsdF9pcCkpOworCURFRklORShFWENEQVRBX0dQLCBvZmZzZXRvZihzdHJ1Y3QgZXhjZXB0aW9u X2RhdGEsIGZhdWx0X2dwKSk7CiAJREVGSU5FKEVYQ0RBVEFfU1BBQ0UsIG9mZnNldG9mKHN0cnVj dCBleGNlcHRpb25fZGF0YSwgZmF1bHRfc3BhY2UpKTsKIAlERUZJTkUoRVhDREFUQV9BRERSLCBv ZmZzZXRvZihzdHJ1Y3QgZXhjZXB0aW9uX2RhdGEsIGZhdWx0X2FkZHIpKTsKIAlCTEFOSygpOwpk aWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3BhcmlzY19rc3ltcy5jIGIvYXJjaC9wYXJp c2Mva2VybmVsL3BhcmlzY19rc3ltcy5jCmluZGV4IGMzZjFiZTk1MWFiNC4uMDgyNDQwNTA1OWQw IDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvcGFyaXNjX2tzeW1zLmMKKysrIGIvYXJj aC9wYXJpc2Mva2VybmVsL3BhcmlzY19rc3ltcy5jCkBAIC00OCwxMSArNDgsMTEgQEAgRVhQT1JU X1NZTUJPTChsc3RybmNweV9mcm9tX3VzZXIpOwogRVhQT1JUX1NZTUJPTChsY2xlYXJfdXNlcik7 CiBFWFBPUlRfU1lNQk9MKGxzdHJubGVuX3VzZXIpOwogCi0vKiBHbG9iYWwgZml4dXBzICovCi1l eHRlcm4gdm9pZCBmaXh1cF9nZXRfdXNlcl9za2lwXzEodm9pZCk7Ci1leHRlcm4gdm9pZCBmaXh1 cF9nZXRfdXNlcl9za2lwXzIodm9pZCk7Ci1leHRlcm4gdm9pZCBmaXh1cF9wdXRfdXNlcl9za2lw XzEodm9pZCk7Ci1leHRlcm4gdm9pZCBmaXh1cF9wdXRfdXNlcl9za2lwXzIodm9pZCk7CisvKiBH bG9iYWwgZml4dXBzIC0gZGVmaW5lZCBhcyBpbnQgdG8gYXZvaWQgY3JlYXRpb24gb2YgZnVuY3Rp b24gcG9pbnRlcnMgKi8KK2V4dGVybiBpbnQgZml4dXBfZ2V0X3VzZXJfc2tpcF8xOworZXh0ZXJu IGludCBmaXh1cF9nZXRfdXNlcl9za2lwXzI7CitleHRlcm4gaW50IGZpeHVwX3B1dF91c2VyX3Nr aXBfMTsKK2V4dGVybiBpbnQgZml4dXBfcHV0X3VzZXJfc2tpcF8yOwogRVhQT1JUX1NZTUJPTChm aXh1cF9nZXRfdXNlcl9za2lwXzEpOwogRVhQT1JUX1NZTUJPTChmaXh1cF9nZXRfdXNlcl9za2lw XzIpOwogRVhQT1JUX1NZTUJPTChmaXh1cF9wdXRfdXNlcl9za2lwXzEpOwpkaWZmIC0tZ2l0IGEv YXJjaC9wYXJpc2Mva2VybmVsL3RyYXBzLmMgYi9hcmNoL3BhcmlzYy9rZXJuZWwvdHJhcHMuYwpp bmRleCBjZDhiMDJmNjliZjUuLjczMTAyZWEwYzIwOSAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2Mv a2VybmVsL3RyYXBzLmMKKysrIGIvYXJjaC9wYXJpc2Mva2VybmVsL3RyYXBzLmMKQEAgLTgxNyw2 ICs4MTcsOSBAQCB2b2lkIG5vdHJhY2UgaGFuZGxlX2ludGVycnVwdGlvbihpbnQgY29kZSwgc3Ry dWN0IHB0X3JlZ3MgKnJlZ3MpCiAKIAkgICAgaWYgKGZhdWx0X3NwYWNlID09IDAgJiYgIWluX2F0 b21pYygpKQogCSAgICB7CisJCS8qIENsZWFuIHVwIGFuZCByZXR1cm4gaWYgaW4gZXhjZXB0aW9u IHRhYmxlLiAqLworCQlpZiAoZml4dXBfZXhjZXB0aW9uKHJlZ3MpKQorCQkJcmV0dXJuOwogCQlw ZGNfY2hhc3Npc19zZW5kX3N0YXR1cyhQRENfQ0hBU1NJU19ESVJFQ1RfUEFOSUMpOwogCQlwYXJp c2NfdGVybWluYXRlKCJLZXJuZWwgRmF1bHQiLCByZWdzLCBjb2RlLCBmYXVsdF9hZGRyZXNzKTsK IAkgICAgfQpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvbGliL2ZpeHVwLlMgYi9hcmNoL3Bhcmlz Yy9saWIvZml4dXAuUwppbmRleCBmOGM0NWNjMjk0N2QuLjEzOGRkMWU1YTg3YSAxMDA2NDQKLS0t IGEvYXJjaC9wYXJpc2MvbGliL2ZpeHVwLlMKKysrIGIvYXJjaC9wYXJpc2MvbGliL2ZpeHVwLlMK QEAgLTI2LDYgKzI2LDcgQEAKIAogI2lmZGVmIENPTkZJR19TTVAKIAkubWFjcm8gIGdldF9mYXVs dF9pcCB0MSB0MgorCWxvYWRncAogCWFkZGlsIExUJV9fcGVyX2NwdV9vZmZzZXQsJXIyNwogCUxE UkVHIFJUJV9fcGVyX2NwdV9vZmZzZXQoJXIxKSxcdDEKIAkvKiB0MiA9IHNtcF9wcm9jZXNzb3Jf aWQoKSAqLwpAQCAtNDAsMTQgKzQxLDE5IEBACiAJTERSRUcgUlQlZXhjZXB0aW9uX2RhdGEoJXIx KSxcdDEKIAkvKiB0MSA9ICZfX2dldF9jcHVfdmFyKGV4Y2VwdGlvbl9kYXRhKSAqLwogCWFkZCxs IFx0MSxcdDIsXHQxCisJLyogJXIyNyA9IHQxLT5mYXVsdF9ncCAtIHJlc3RvcmUgZ3AgKi8KKwlM RFJFRyBFWENEQVRBX0dQKFx0MSksICVyMjcKIAkvKiB0MSA9IHQxLT5mYXVsdF9pcCAqLwogCUxE UkVHIEVYQ0RBVEFfSVAoXHQxKSwgXHQxCiAJLmVuZG0KICNlbHNlCiAJLm1hY3JvICBnZXRfZmF1 bHRfaXAgdDEgdDIKKwlsb2FkZ3AKIAkvKiB0MSA9ICZfX2dldF9jcHVfdmFyKGV4Y2VwdGlvbl9k YXRhKSAqLwogCWFkZGlsIExUJWV4Y2VwdGlvbl9kYXRhLCVyMjcKIAlMRFJFRyBSVCVleGNlcHRp b25fZGF0YSglcjEpLFx0MgorCS8qICVyMjcgPSB0Mi0+ZmF1bHRfZ3AgLSByZXN0b3JlIGdwICov CisJTERSRUcgRVhDREFUQV9HUChcdDIpLCAlcjI3CiAJLyogdDEgPSB0Mi0+ZmF1bHRfaXAgKi8K IAlMRFJFRyBFWENEQVRBX0lQKFx0MiksIFx0MQogCS5lbmRtCmRpZmYgLS1naXQgYS9hcmNoL3Bh cmlzYy9tbS9mYXVsdC5jIGIvYXJjaC9wYXJpc2MvbW0vZmF1bHQuYwppbmRleCBhOWI3NjVhOTk5 ZWYuLjY0NzFhYmIyOWNiYiAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2MvbW0vZmF1bHQuYworKysg Yi9hcmNoL3BhcmlzYy9tbS9mYXVsdC5jCkBAIC0xNDcsNiArMTQ3LDcgQEAgaW50IGZpeHVwX2V4 Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAkJc3RydWN0IGV4Y2VwdGlvbl9kYXRhICpk OwogCQlkID0gJl9fZ2V0X2NwdV92YXIoZXhjZXB0aW9uX2RhdGEpOwogCQlkLT5mYXVsdF9pcCA9 IHJlZ3MtPmlhb3FbMF07CisJCWQtPmZhdWx0X2dwID0gcmVncy0+Z3JbMjddOwogCQlkLT5mYXVs dF9zcGFjZSA9IHJlZ3MtPmlzcjsKIAkJZC0+ZmF1bHRfYWRkciA9IHJlZ3MtPmlvcjsKIApkaWZm IC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL21jb25zb2xlX2tlcm4uYyBiL2FyY2gvdW0vZHJpdmVy cy9tY29uc29sZV9rZXJuLmMKaW5kZXggYzcwZTA0N2VlZDcyLi5mNGE2YWYyNWRjNzIgMTAwNjQ0 Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9tY29uc29sZV9rZXJuLmMKKysrIGIvYXJjaC91bS9kcml2 ZXJzL21jb25zb2xlX2tlcm4uYwpAQCAtMTMzLDcgKzEzMyw3IEBAIHZvaWQgbWNvbnNvbGVfcHJv YyhzdHJ1Y3QgbWNfcmVxdWVzdCAqcmVxKQogCXB0ciArPSBzdHJsZW4oInByb2MiKTsKIAlwdHIg PSBza2lwX3NwYWNlcyhwdHIpOwogCi0JZmlsZSA9IGZpbGVfb3Blbl9yb290KG1udC0+bW50X3Jv b3QsIG1udCwgcHRyLCBPX1JET05MWSk7CisJZmlsZSA9IGZpbGVfb3Blbl9yb290KG1udC0+bW50 X3Jvb3QsIG1udCwgcHRyLCBPX1JET05MWSwgMCk7CiAJaWYgKElTX0VSUihmaWxlKSkgewogCQlt Y29uc29sZV9yZXBseShyZXEsICJGYWlsZWQgdG8gb3BlbiBmaWxlIiwgMSwgMCk7CiAJCWdvdG8g b3V0OwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20veGVuL2h5cGVydmlzb3IuaCBi L2FyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9oeXBlcnZpc29yLmgKaW5kZXggNjZkMGZmZjFlZTg0 Li5mYzUwMGY5N2IzOWQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9oeXBl cnZpc29yLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20veGVuL2h5cGVydmlzb3IuaApAQCAt NzIsNCArNzIsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgeGVuX3gyYXBpY19wYXJhX2F2YWlsYWJs ZSh2b2lkKQogfQogI2VuZGlmCiAKK2V4dGVybiB2b2lkIHhlbl9zZXRfaW9wbF9tYXNrKHVuc2ln bmVkIG1hc2spOworCiAjZW5kaWYgLyogX0FTTV9YODZfWEVOX0hZUEVSVklTT1JfSCAqLwpkaWZm IC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2lvcG9ydC5jIGIvYXJjaC94ODYva2VybmVsL2lvcG9y dC5jCmluZGV4IDhjOTY4OTc0MjUzZC4uNmEyZmE0YWM1YTc2IDEwMDY0NAotLS0gYS9hcmNoL3g4 Ni9rZXJuZWwvaW9wb3J0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2lvcG9ydC5jCkBAIC05NSw5 ICs5NSwxNCBAQCBhc21saW5rYWdlIGxvbmcgc3lzX2lvcGVybSh1bnNpZ25lZCBsb25nIGZyb20s IHVuc2lnbmVkIGxvbmcgbnVtLCBpbnQgdHVybl9vbikKICAqLwogbG9uZyBzeXNfaW9wbCh1bnNp Z25lZCBpbnQgbGV2ZWwsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewotCXVuc2lnbmVkIGludCBv bGQgPSAocmVncy0+ZmxhZ3MgPj4gMTIpICYgMzsKIAlzdHJ1Y3QgdGhyZWFkX3N0cnVjdCAqdCA9 ICZjdXJyZW50LT50aHJlYWQ7CiAKKwkvKgorCSAqIENhcmVmdWw6IHRoZSBJT1BMIGJpdHMgaW4g cmVncy0+ZmxhZ3MgYXJlIHVuZGVmaW5lZCB1bmRlciBYZW4gUFYKKwkgKiBhbmQgY2hhbmdpbmcg dGhlbSBoYXMgbm8gZWZmZWN0LgorCSAqLworCXVuc2lnbmVkIGludCBvbGQgPSB0LT5pb3BsID4+ IDEyOworCiAJaWYgKGxldmVsID4gMykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJLyogVHJ5aW5nIHRv IGdhaW4gbW9yZSBwcml2aWxlZ2VzPyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3By b2Nlc3NfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzXzY0LmMKaW5kZXggZWUyZTcwYzlm ZGJmLi41NTdlYjM3NTdlZGIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzXzY0 LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfNjQuYwpAQCAtMzgsNiArMzgsNyBAQAog I2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CiAjaW5jbHVk ZSA8bGludXgvY3B1aWRsZS5oPgorI2luY2x1ZGUgPHhlbi94ZW4uaD4KIAogI2luY2x1ZGUgPGFz bS9wZ3RhYmxlLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgpAQCAtNTIsNiArNTMsNyBAQAog I2luY2x1ZGUgPGFzbS9zeXNjYWxscy5oPgogI2luY2x1ZGUgPGFzbS9kZWJ1Z3JlZy5oPgogI2lu Y2x1ZGUgPGFzbS9ubWkuaD4KKyNpbmNsdWRlIDxhc20veGVuL2h5cGVydmlzb3IuaD4KIAogYXNt bGlua2FnZSBleHRlcm4gdm9pZCByZXRfZnJvbV9mb3JrKHZvaWQpOwogCkBAIC01MTgsNiArNTIw LDE2IEBAIF9fc3dpdGNoX3RvKHN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldl9wLCBzdHJ1Y3QgdGFz a19zdHJ1Y3QgKm5leHRfcCkKIAkJICAgICB0YXNrX3RocmVhZF9pbmZvKHByZXZfcCktPmZsYWdz ICYgX1RJRl9XT1JLX0NUWFNXX1BSRVYpKQogCQlfX3N3aXRjaF90b194dHJhKHByZXZfcCwgbmV4 dF9wLCB0c3MpOwogCisjaWZkZWYgQ09ORklHX1hFTgorCS8qCisJICogT24gWGVuIFBWLCBJT1BM IGJpdHMgaW4gcHRfcmVncy0+ZmxhZ3MgaGF2ZSBubyBlZmZlY3QsIGFuZAorCSAqIGN1cnJlbnRf cHRfcmVncygpLT5mbGFncyBtYXkgbm90IG1hdGNoIHRoZSBjdXJyZW50IHRhc2sncworCSAqIGlu dGVuZGVkIElPUEwuICBXZSBuZWVkIHRvIHN3aXRjaCBpdCBtYW51YWxseS4KKwkgKi8KKwlpZiAo dW5saWtlbHkoeGVuX3B2X2RvbWFpbigpICYmIHByZXYtPmlvcGwgIT0gbmV4dC0+aW9wbCkpCisJ CXhlbl9zZXRfaW9wbF9tYXNrKG5leHQtPmlvcGwpOworI2VuZGlmCisKIAlyZXR1cm4gcHJldl9w OwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vaTgyNTQuYyBiL2FyY2gveDg2L2t2bS9p ODI1NC5jCmluZGV4IGFhMjFhYTEzOTY5NC4uMzU4ZWRjZGU2NTNkIDEwMDY0NAotLS0gYS9hcmNo L3g4Ni9rdm0vaTgyNTQuYworKysgYi9hcmNoL3g4Ni9rdm0vaTgyNTQuYwpAQCAtMjQ2LDcgKzI0 Niw3IEBAIHN0YXRpYyB2b2lkIGt2bV9waXRfYWNrX2lycShzdHJ1Y3Qga3ZtX2lycV9hY2tfbm90 aWZpZXIgKmtpYW4pCiAJCSAqIFBJQyBpcyBiZWluZyByZXNldC4gIEhhbmRsZSBpdCBncmFjZWZ1 bGx5IGhlcmUKIAkJICovCiAJCWF0b21pY19pbmMoJnBzLT5waXRfdGltZXIucGVuZGluZyk7Ci0J ZWxzZSBpZiAodmFsdWUgPiAwKQorCWVsc2UgaWYgKHZhbHVlID4gMCAmJiBwcy0+cGl0X3RpbWVy LnJlaW5qZWN0KQogCQkvKiBpbiB0aGlzIGNhc2UsIHdlIGhhZCBtdWx0aXBsZSBvdXRzdGFuZGlu ZyBwaXQgaW50ZXJydXB0cwogCQkgKiB0aGF0IHdlIG5lZWRlZCB0byBpbmplY3QuICBSZWluamVj dAogCQkgKi8KQEAgLTMwMCw3ICszMDAsOSBAQCBzdGF0aWMgdm9pZCBwaXRfZG9fd29yayhzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJICogbGFzdCBvbmUgaGFzIGJlZW4gYWNrZWQuCiAJICov CiAJc3Bpbl9sb2NrKCZwcy0+aW5qZWN0X2xvY2spOwotCWlmIChwcy0+aXJxX2FjaykgeworCWlm ICghcHMtPnBpdF90aW1lci5yZWluamVjdCkKKwkJaW5qZWN0ID0gMTsKKwllbHNlIGlmIChwcy0+ aXJxX2FjaykgewogCQlwcy0+aXJxX2FjayA9IDA7CiAJCWluamVjdCA9IDE7CiAJfQpAQCAtMzI5 LDEwICszMzEsMTAgQEAgc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IHBpdF90aW1lcl9mbihz dHJ1Y3QgaHJ0aW1lciAqZGF0YSkKIAlzdHJ1Y3Qga3ZtX3RpbWVyICprdGltZXIgPSBjb250YWlu ZXJfb2YoZGF0YSwgc3RydWN0IGt2bV90aW1lciwgdGltZXIpOwogCXN0cnVjdCBrdm1fcGl0ICpw dCA9IGt0aW1lci0+a3ZtLT5hcmNoLnZwaXQ7CiAKLQlpZiAoa3RpbWVyLT5yZWluamVjdCB8fCAh YXRvbWljX3JlYWQoJmt0aW1lci0+cGVuZGluZykpIHsKKwlpZiAoa3RpbWVyLT5yZWluamVjdCkK IAkJYXRvbWljX2luYygma3RpbWVyLT5wZW5kaW5nKTsKLQkJcXVldWVfd29yayhwdC0+d3EsICZw dC0+ZXhwaXJlZCk7Ci0JfQorCisJcXVldWVfd29yayhwdC0+d3EsICZwdC0+ZXhwaXJlZCk7CiAK IAlpZiAoa3RpbWVyLT50X29wcy0+aXNfcGVyaW9kaWMoa3RpbWVyKSkgewogCQlocnRpbWVyX2Fk ZF9leHBpcmVzX25zKCZrdGltZXItPnRpbWVyLCBrdGltZXItPnBlcmlvZCk7CmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmMKaW5kZXggMDlkYWI1YmM0 OTk1Li5kYTFhMTI2MWFhYzEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYworKysgYi9h cmNoL3g4Ni9rdm0veDg2LmMKQEAgLTU2MzQsMTIgKzU2MzQsMTAgQEAgc3RhdGljIHZvaWQgaW5q ZWN0X3BlbmRpbmdfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCX0KIAogCS8qIHRyeSB0 byBpbmplY3QgbmV3IGV2ZW50IGlmIHBlbmRpbmcgKi8KLQlpZiAodmNwdS0+YXJjaC5ubWlfcGVu ZGluZykgewotCQlpZiAoa3ZtX3g4Nl9vcHMtPm5taV9hbGxvd2VkKHZjcHUpKSB7Ci0JCQktLXZj cHUtPmFyY2gubm1pX3BlbmRpbmc7Ci0JCQl2Y3B1LT5hcmNoLm5taV9pbmplY3RlZCA9IHRydWU7 Ci0JCQlrdm1feDg2X29wcy0+c2V0X25taSh2Y3B1KTsKLQkJfQorCWlmICh2Y3B1LT5hcmNoLm5t aV9wZW5kaW5nICYmIGt2bV94ODZfb3BzLT5ubWlfYWxsb3dlZCh2Y3B1KSkgeworCQktLXZjcHUt PmFyY2gubm1pX3BlbmRpbmc7CisJCXZjcHUtPmFyY2gubm1pX2luamVjdGVkID0gdHJ1ZTsKKwkJ a3ZtX3g4Nl9vcHMtPnNldF9ubWkodmNwdSk7CiAJfSBlbHNlIGlmIChrdm1fY3B1X2hhc19pbnRl cnJ1cHQodmNwdSkpIHsKIAkJaWYgKGt2bV94ODZfb3BzLT5pbnRlcnJ1cHRfYWxsb3dlZCh2Y3B1 KSkgewogCQkJa3ZtX3F1ZXVlX2ludGVycnVwdCh2Y3B1LCBrdm1fY3B1X2dldF9pbnRlcnJ1cHQo dmNwdSksCkBAIC01NzQyLDcgKzU3NDAsNyBAQCBzdGF0aWMgaW50IHZjcHVfZW50ZXJfZ3Vlc3Qo c3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCQkvKiBlbmFibGUgTk1JL0lSUSB3aW5kb3cgb3BlbiBl eGl0cyBpZiBuZWVkZWQgKi8KIAkJaWYgKHZjcHUtPmFyY2gubm1pX3BlbmRpbmcpCiAJCQlrdm1f eDg2X29wcy0+ZW5hYmxlX25taV93aW5kb3codmNwdSk7Ci0JCWVsc2UgaWYgKGt2bV9jcHVfaGFz X2ludGVycnVwdCh2Y3B1KSB8fCByZXFfaW50X3dpbikKKwkJaWYgKGt2bV9jcHVfaGFzX2ludGVy cnVwdCh2Y3B1KSB8fCByZXFfaW50X3dpbikKIAkJCWt2bV94ODZfb3BzLT5lbmFibGVfaXJxX3dp bmRvdyh2Y3B1KTsKIAogCQlpZiAoa3ZtX2xhcGljX2VuYWJsZWQodmNwdSkpIHsKZGlmZiAtLWdp dCBhL2FyY2gveDg2L21tL21tYXAuYyBiL2FyY2gveDg2L21tL21tYXAuYwppbmRleCA3NWY5ZTVk ODBkMDIuLjdkYTFiOWEyMzRhNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vbW1hcC5jCisrKyBi L2FyY2gveDg2L21tL21tYXAuYwpAQCAtNjcsMjIgKzY3LDIxIEBAIHN0YXRpYyBpbnQgbW1hcF9p c19sZWdhY3kodm9pZCkKIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgbW1hcF9ybmQodm9pZCkKIHsK LQl1bnNpZ25lZCBsb25nIHJuZCA9IDA7CisJdW5zaWduZWQgbG9uZyBybmQ7CiAKIAkvKgotCSog IDggYml0cyBvZiByYW5kb21uZXNzIGluIDMyYml0IG1tYXBzLCAyMCBhZGRyZXNzIHNwYWNlIGJp dHMKLQkqIDI4IGJpdHMgb2YgcmFuZG9tbmVzcyBpbiA2NGJpdCBtbWFwcywgNDAgYWRkcmVzcyBz cGFjZSBiaXRzCi0JKi8KLQlpZiAoY3VycmVudC0+ZmxhZ3MgJiBQRl9SQU5ET01JWkUpIHsKLQkJ aWYgKG1tYXBfaXNfaWEzMigpKQotCQkJcm5kID0gZ2V0X3JhbmRvbV9pbnQoKSAlICgxPDw4KTsK LQkJZWxzZQotCQkJcm5kID0gZ2V0X3JhbmRvbV9pbnQoKSAlICgxPDwyOCk7Ci0JfQorCSAqICA4 IGJpdHMgb2YgcmFuZG9tbmVzcyBpbiAzMmJpdCBtbWFwcywgMjAgYWRkcmVzcyBzcGFjZSBiaXRz CisJICogMjggYml0cyBvZiByYW5kb21uZXNzIGluIDY0Yml0IG1tYXBzLCA0MCBhZGRyZXNzIHNw YWNlIGJpdHMKKwkgKi8KKwlpZiAobW1hcF9pc19pYTMyKCkpCisJCXJuZCA9ICh1bnNpZ25lZCBs b25nKWdldF9yYW5kb21faW50KCkgJSAoMTw8OCk7CisJZWxzZQorCQlybmQgPSAodW5zaWduZWQg bG9uZylnZXRfcmFuZG9tX2ludCgpICUgKDE8PDI4KTsKKwogCXJldHVybiBybmQgPDwgUEFHRV9T SElGVDsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgbW1hcF9iYXNlKHZvaWQpCitzdGF0aWMg dW5zaWduZWQgbG9uZyBtbWFwX2Jhc2UodW5zaWduZWQgbG9uZyBybmQpCiB7CiAJdW5zaWduZWQg bG9uZyBnYXAgPSBybGltaXQoUkxJTUlUX1NUQUNLKTsKIApAQCAtOTEsMTkgKzkwLDcgQEAgc3Rh dGljIHVuc2lnbmVkIGxvbmcgbW1hcF9iYXNlKHZvaWQpCiAJZWxzZSBpZiAoZ2FwID4gTUFYX0dB UCkKIAkJZ2FwID0gTUFYX0dBUDsKIAotCXJldHVybiBQQUdFX0FMSUdOKFRBU0tfU0laRSAtIGdh cCAtIG1tYXBfcm5kKCkpOwotfQotCi0vKgotICogQm90dG9tLXVwIChsZWdhY3kpIGxheW91dCBv biBYODZfMzIgZGlkIG5vdCBzdXBwb3J0IHJhbmRvbWl6YXRpb24sIFg4Nl82NAotICogZG9lcywg YnV0IG5vdCB3aGVuIGVtdWxhdGluZyBYODZfMzIKLSAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcg bW1hcF9sZWdhY3lfYmFzZSh2b2lkKQotewotCWlmIChtbWFwX2lzX2lhMzIoKSkKLQkJcmV0dXJu IFRBU0tfVU5NQVBQRURfQkFTRTsKLQllbHNlCi0JCXJldHVybiBUQVNLX1VOTUFQUEVEX0JBU0Ug KyBtbWFwX3JuZCgpOworCXJldHVybiBQQUdFX0FMSUdOKFRBU0tfU0laRSAtIGdhcCAtIHJuZCk7 CiB9CiAKIC8qCkBAIC0xMTIsMTQgKzk5LDE5IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIG1tYXBf bGVnYWN5X2Jhc2Uodm9pZCkKICAqLwogdm9pZCBhcmNoX3BpY2tfbW1hcF9sYXlvdXQoc3RydWN0 IG1tX3N0cnVjdCAqbW0pCiB7Ci0JbW0tPm1tYXBfbGVnYWN5X2Jhc2UgPSBtbWFwX2xlZ2FjeV9i YXNlKCk7Ci0JbW0tPm1tYXBfYmFzZSA9IG1tYXBfYmFzZSgpOworCXVuc2lnbmVkIGxvbmcgcmFu ZG9tX2ZhY3RvciA9IDBVTDsKKworCWlmIChjdXJyZW50LT5mbGFncyAmIFBGX1JBTkRPTUlaRSkK KwkJcmFuZG9tX2ZhY3RvciA9IG1tYXBfcm5kKCk7CisKKwltbS0+bW1hcF9sZWdhY3lfYmFzZSA9 IFRBU0tfVU5NQVBQRURfQkFTRSArIHJhbmRvbV9mYWN0b3I7CiAKIAlpZiAobW1hcF9pc19sZWdh Y3koKSkgewogCQltbS0+bW1hcF9iYXNlID0gbW0tPm1tYXBfbGVnYWN5X2Jhc2U7CiAJCW1tLT5n ZXRfdW5tYXBwZWRfYXJlYSA9IGFyY2hfZ2V0X3VubWFwcGVkX2FyZWE7CiAJCW1tLT51bm1hcF9h cmVhID0gYXJjaF91bm1hcF9hcmVhOwogCX0gZWxzZSB7CisJCW1tLT5tbWFwX2Jhc2UgPSBtbWFw X2Jhc2UocmFuZG9tX2ZhY3Rvcik7CiAJCW1tLT5nZXRfdW5tYXBwZWRfYXJlYSA9IGFyY2hfZ2V0 X3VubWFwcGVkX2FyZWFfdG9wZG93bjsKIAkJbW0tPnVubWFwX2FyZWEgPSBhcmNoX3VubWFwX2Fy ZWFfdG9wZG93bjsKIAl9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvZml4dXAuYyBiL2FyY2gv eDg2L3BjaS9maXh1cC5jCmluZGV4IDA5NTFiODFlYTkwZS4uN2QwY2ZlMzhkYzYwIDEwMDY0NAot LS0gYS9hcmNoL3g4Ni9wY2kvZml4dXAuYworKysgYi9hcmNoL3g4Ni9wY2kvZml4dXAuYwpAQCAt NTM4LDMgKzUzOCwxMCBAQCBzdGF0aWMgdm9pZCBfX2RldmluaXQgdHdpbmhlYWRfcmVzZXJ2ZV9r aWxsaW5nX3pvbmUoc3RydWN0IHBjaV9kZXYgKmRldikKICAgICAgICAgfQogfQogREVDTEFSRV9Q Q0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4MjdCOSwgdHdpbmhlYWRfcmVz ZXJ2ZV9raWxsaW5nX3pvbmUpOworCitzdGF0aWMgdm9pZCBwY2lfYmR3ZXBfYmFyKHN0cnVjdCBw Y2lfZGV2ICpkZXYpCit7CisJZGV2LT5ub25fY29tcGxpYW50X2JhcnMgPSAxOworfQorREVDTEFS RV9QQ0lfRklYVVBfRUFSTFkoUENJX1ZFTkRPUl9JRF9JTlRFTCwgMHg2ZmEwLCBwY2lfYmR3ZXBf YmFyKTsKK0RFQ0xBUkVfUENJX0ZJWFVQX0VBUkxZKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4NmZj MCwgcGNpX2Jkd2VwX2Jhcik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vZW5saWdodGVuLmMg Yi9hcmNoL3g4Ni94ZW4vZW5saWdodGVuLmMKaW5kZXggODFhZmUxYmIzYThhLi5iMjU1MzEyZGVm OWMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYworKysgYi9hcmNoL3g4Ni94 ZW4vZW5saWdodGVuLmMKQEAgLTc2OCw3ICs3NjgsNyBAQCBzdGF0aWMgdm9pZCB4ZW5fbG9hZF9z cDAoc3RydWN0IHRzc19zdHJ1Y3QgKnRzcywKIAl4ZW5fbWNfaXNzdWUoUEFSQVZJUlRfTEFaWV9D UFUpOwogfQogCi1zdGF0aWMgdm9pZCB4ZW5fc2V0X2lvcGxfbWFzayh1bnNpZ25lZCBtYXNrKQor dm9pZCB4ZW5fc2V0X2lvcGxfbWFzayh1bnNpZ25lZCBtYXNrKQogewogCXN0cnVjdCBwaHlzZGV2 X3NldF9pb3BsIHNldF9pb3BsOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9hdGgz ay5jIGIvZHJpdmVycy9ibHVldG9vdGgvYXRoM2suYwppbmRleCA5ZmI5Mjg3MDUwZDcuLjBiODdm YjZjYzM2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvYXRoM2suYworKysgYi9kcml2 ZXJzL2JsdWV0b290aC9hdGgzay5jCkBAIC04MCw2ICs4MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNi X2RldmljZV9pZCBhdGgza190YWJsZVtdID0gewogCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTA1 ZikgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwNzYpIH0sCiAJeyBVU0JfREVWSUNFKDB4 MDQ4OSwgMHhlMDc4KSB9LAorCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTA5NSkgfSwKIAl7IFVT Ql9ERVZJQ0UoMHgwNGM1LCAweDEzMzApIH0sCiAJeyBVU0JfREVWSUNFKDB4MDRDQSwgMHgzMDA0 KSB9LAogCXsgVVNCX0RFVklDRSgweDA0Q0EsIDB4MzAwNSkgfSwKQEAgLTg5LDYgKzkwLDcgQEAg c3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGF0aDNrX3RhYmxlW10gPSB7CiAJeyBVU0JfREVW SUNFKDB4MDRDQSwgMHgzMDBiKSB9LAogCXsgVVNCX0RFVklDRSgweDA0Q0EsIDB4MzAwZikgfSwK IAl7IFVTQl9ERVZJQ0UoMHgwNENBLCAweDMwMTApIH0sCisJeyBVU0JfREVWSUNFKDB4MDRDQSwg MHgzMDE0KSB9LAogCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDIxOSkgfSwKIAl7IFVTQl9ERVZJ Q0UoMHgwOTMwLCAweDAyMWMpIH0sCiAJeyBVU0JfREVWSUNFKDB4MDkzMCwgMHgwMjIwKSB9LApA QCAtMTA5LDEwICsxMTEsMTIgQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGF0aDNrX3Rh YmxlW10gPSB7CiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzMzYyKSB9LAogCXsgVVNCX0RFVklD RSgweDEzZDMsIDB4MzM3NSkgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzOTMpIH0sCisJ eyBVU0JfREVWSUNFKDB4MTNkMywgMHgzMzk1KSB9LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4 MzQwMikgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0MDgpIH0sCiAJeyBVU0JfREVWSUNF KDB4MTNkMywgMHgzNDIzKSB9LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQzMikgfSwKKwl7 IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0NzIpIH0sCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgz NDc0KSB9LAogCiAJLyogQXRoZXJvcyBBUjVCQlUxMiB3aXRoIHNmbGFzaCBmaXJtd2FyZSAqLwpA QCAtMTQwLDYgKzE0NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBhdGgza19ibGlz dF90YmxbXSA9IHsKIAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwNWYpLCAuZHJpdmVyX2luZm8g PSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDc2KSwgLmRyaXZl cl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTA3OCks IC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAw eGUwOTUpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4 MDRjNSwgMHgxMzMwKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RF VklDRSgweDA0Y2EsIDB4MzAwNCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7 IFVTQl9ERVZJQ0UoMHgwNGNhLCAweDMwMDUpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEy IH0sCkBAIC0xNDksNiArMTU0LDcgQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGF0aDNr X2JsaXN0X3RibFtdID0gewogCXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MzAwYiksIC5kcml2ZXJf aW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNGNhLCAweDMwMGYpLCAu ZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MDRjYSwgMHgz MDEwKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDA0 Y2EsIDB4MzAxNCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJ Q0UoMHgwOTMwLCAweDAyMTkpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBV U0JfREVWSUNFKDB4MDkzMCwgMHgwMjFjKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9 LAogCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDIyMCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FU SDMwMTIgfSwKQEAgLTE2OSwxMCArMTc1LDEyIEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9p ZCBhdGgza19ibGlzdF90YmxbXSA9IHsKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzNjIpLCAu ZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgz Mzc1KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDEz ZDMsIDB4MzM5MyksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJ Q0UoMHgxM2QzLCAweDMzOTUpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBV U0JfREVWSUNFKDB4MTNkMywgMHgzNDAyKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9 LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQwOCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FU SDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0MjMpLCAuZHJpdmVyX2luZm8gPSBC VFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDMyKSwgLmRyaXZlcl9p bmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQ3MiksIC5k cml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0 NzQpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAKIAkvKiBBdGhlcm9zIEFSNUJC VTIyIHdpdGggc2ZsYXNoIGZpcm13YXJlICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290 aC9idHVzYi5jIGIvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYwppbmRleCBkODNjODU1YWY3ZTIu LjFjYmExMTNmMjdjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYworKysg Yi9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jCkBAIC0xNjUsNiArMTY1LDcgQEAgc3RhdGljIHN0 cnVjdCB1c2JfZGV2aWNlX2lkIGJsYWNrbGlzdF90YWJsZVtdID0gewogCXsgVVNCX0RFVklDRSgw eDA0ODksIDB4ZTA1ZiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9E RVZJQ0UoMHgwNDg5LCAweGUwNzYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJ eyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDc4KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAx MiB9LAorCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTA5NSksIC5kcml2ZXJfaW5mbyA9IEJUVVNC X0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNGM1LCAweDEzMzApLCAuZHJpdmVyX2luZm8g PSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MDRjYSwgMHgzMDA0KSwgLmRyaXZl cl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MzAwNSks IC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKQEAgLTE3NCw2ICsxNzUsNyBAQCBzdGF0 aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYmxhY2tsaXN0X3RhYmxlW10gPSB7CiAJeyBVU0JfREVW SUNFKDB4MDRjYSwgMHgzMDBiKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsg VVNCX0RFVklDRSgweDA0Y2EsIDB4MzAwZiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIg fSwKIAl7IFVTQl9ERVZJQ0UoMHgwNGNhLCAweDMwMTApLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9B VEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MDRjYSwgMHgzMDE0KSwgLmRyaXZlcl9pbmZvID0g QlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDIxOSksIC5kcml2ZXJf aW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwOTMwLCAweDAyMWMpLCAu ZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MDkzMCwgMHgw MjIwKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LApAQCAtMTk0LDEwICsxOTYsMTIg QEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGJsYWNrbGlzdF90YWJsZVtdID0gewogCXsg VVNCX0RFVklDRSgweDEzZDMsIDB4MzM2MiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIg fSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzNzUpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9B VEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzMzkzKSwgLmRyaXZlcl9pbmZvID0g QlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM5NSksIC5kcml2ZXJf aW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0MDIpLCAu ZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgz NDA4KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDEz ZDMsIDB4MzQyMyksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJ Q0UoMHgxM2QzLCAweDM0MzIpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJeyBV U0JfREVWSUNFKDB4MTNkMywgMHgzNDcyKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9 LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQ3NCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FU SDMwMTIgfSwKIAogCS8qIEF0aGVyb3MgQVI1QkJVMTIgd2l0aCBzZmxhc2ggZmlybXdhcmUgKi8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY29ubmVjdG9yL2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9jb25u ZWN0b3IvY29ubmVjdG9yLmMKaW5kZXggZWE2ZWZlODY0NjhlLi44OTgyOTEyN2Y4M2UgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvY29ubmVjdG9yL2Nvbm5lY3Rvci5jCisrKyBiL2RyaXZlcnMvY29ubmVj dG9yL2Nvbm5lY3Rvci5jCkBAIC0xNTQsMjYgKzE1NCwyMSBAQCBzdGF0aWMgaW50IGNuX2NhbGxf Y2FsbGJhY2soc3RydWN0IHNrX2J1ZmYgKnNrYikKICAqCiAgKiBJdCBjaGVja3Mgc2tiLCBuZXRs aW5rIGhlYWRlciBhbmQgbXNnIHNpemVzLCBhbmQgY2FsbHMgY2FsbGJhY2sgaGVscGVyLgogICov Ci1zdGF0aWMgdm9pZCBjbl9yeF9za2Ioc3RydWN0IHNrX2J1ZmYgKl9fc2tiKQorc3RhdGljIHZv aWQgY25fcnhfc2tiKHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0IG5sbXNnaGRyICpu bGg7Ci0Jc3RydWN0IHNrX2J1ZmYgKnNrYjsKIAlpbnQgbGVuLCBlcnI7CiAKLQlza2IgPSBza2Jf Z2V0KF9fc2tiKTsKLQogCWlmIChza2ItPmxlbiA+PSBOTE1TR19TUEFDRSgwKSkgewogCQlubGgg PSBubG1zZ19oZHIoc2tiKTsKIAkJbGVuID0gbmxtc2dfbGVuKG5saCk7CiAKIAkJaWYgKGxlbiA8 IChpbnQpc2l6ZW9mKHN0cnVjdCBjbl9tc2cpIHx8CiAJCSAgICBza2ItPmxlbiA8IG5saC0+bmxt c2dfbGVuIHx8Ci0JCSAgICBsZW4gPiBDT05ORUNUT1JfTUFYX01TR19TSVpFKSB7Ci0JCQlrZnJl ZV9za2Ioc2tiKTsKKwkJICAgIGxlbiA+IENPTk5FQ1RPUl9NQVhfTVNHX1NJWkUpCiAJCQlyZXR1 cm47Ci0JCX0KIAotCQllcnIgPSBjbl9jYWxsX2NhbGxiYWNrKHNrYik7CisJCWVyciA9IGNuX2Nh bGxfY2FsbGJhY2soc2tiX2dldChza2IpKTsKIAkJaWYgKGVyciA8IDApCiAJCQlrZnJlZV9za2Io c2tiKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5jIGIvZHJpdmVy cy9lZGFjL2FtZDY0X2VkYWMuYwppbmRleCBhOWQ1NDgyY2Y2ZjYuLjBiY2YyZTFjMGUzNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9lZGFjL2FtZDY0X2VkYWMuYworKysgYi9kcml2ZXJzL2VkYWMvYW1k NjRfZWRhYy5jCkBAIC0xMzE4LDcgKzEzMTgsNyBAQCBzdGF0aWMgdTY0IGYxeF9nZXRfbm9ybV9k Y3RfYWRkcihzdHJ1Y3QgYW1kNjRfcHZ0ICpwdnQsIHVuc2lnbmVkIHJhbmdlLAogCXU2NCBjaGFu X29mZjsKIAl1NjQgZHJhbV9iYXNlCQk9IGdldF9kcmFtX2Jhc2UocHZ0LCByYW5nZSk7CiAJdTY0 IGhvbGVfb2ZmCQk9IGYxMF9kaGFyX29mZnNldChwdnQpOwotCXU2NCBkY3Rfc2VsX2Jhc2Vfb2Zm CT0gKHB2dC0+ZGN0X3NlbF9oaSAmIDB4RkZGRkZDMDApIDw8IDE2OworCXU2NCBkY3Rfc2VsX2Jh c2Vfb2ZmCT0gKHU2NCkocHZ0LT5kY3Rfc2VsX2hpICYgMHhGRkZGRkMwMCkgPDwgMTY7CiAKIAlp ZiAoaGlfcm5nKSB7CiAJCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0 b21iaW9zX2VuY29kZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2VuY29k ZXJzLmMKaW5kZXggMjg2ZjFmYTY0MGJjLi5hMWE3ZDA3MWViMTcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3NfZW5jb2RlcnMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL2F0b21iaW9zX2VuY29kZXJzLmMKQEAgLTYwNyw4ICs2MDcsNiBAQCBhdG9tYmlv c19kaWdfZW5jb2Rlcl9zZXR1cChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGludCBhY3Rp b24sIGludCBwYW5lbF9tbwogCQkJZWxzZQogCQkJCWFyZ3MudjEudWNMYW5lTnVtID0gNDsKIAot CQkJaWYgKEVOQ09ERVJfTU9ERV9JU19EUChhcmdzLnYxLnVjRW5jb2Rlck1vZGUpICYmIChkcF9j bG9jayA9PSAyNzAwMDApKQotCQkJCWFyZ3MudjEudWNDb25maWcgfD0gQVRPTV9FTkNPREVSX0NP TkZJR19EUExJTktSQVRFXzJfNzBHSFo7CiAJCQlzd2l0Y2ggKHJhZGVvbl9lbmNvZGVyLT5lbmNv ZGVyX2lkKSB7CiAJCQljYXNlIEVOQ09ERVJfT0JKRUNUX0lEX0lOVEVSTkFMX1VOSVBIWToKIAkJ CQlhcmdzLnYxLnVjQ29uZmlnID0gQVRPTV9FTkNPREVSX0NPTkZJR19WMl9UUkFOU01JVFRFUjE7 CkBAIC02MjUsNiArNjIzLDEwIEBAIGF0b21iaW9zX2RpZ19lbmNvZGVyX3NldHVwKHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlciwgaW50IGFjdGlvbiwgaW50IHBhbmVsX21vCiAJCQkJYXJncy52 MS51Y0NvbmZpZyB8PSBBVE9NX0VOQ09ERVJfQ09ORklHX0xJTktCOwogCQkJZWxzZQogCQkJCWFy Z3MudjEudWNDb25maWcgfD0gQVRPTV9FTkNPREVSX0NPTkZJR19MSU5LQTsKKworCQkJaWYgKEVO Q09ERVJfTU9ERV9JU19EUChhcmdzLnYxLnVjRW5jb2Rlck1vZGUpICYmIChkcF9jbG9jayA9PSAy NzAwMDApKQorCQkJCWFyZ3MudjEudWNDb25maWcgfD0gQVRPTV9FTkNPREVSX0NPTkZJR19EUExJ TktSQVRFXzJfNzBHSFo7CisKIAkJCWJyZWFrOwogCQljYXNlIDI6CiAJCWNhc2UgMzoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvaHdtb24vbWF4MTExMS5jIGIvZHJpdmVycy9od21vbi9tYXgxMTExLmMK aW5kZXggYzk3Yjc4ZWY5MTE2Li45NjEyMWZiYjQwNGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdt b24vbWF4MTExMS5jCisrKyBiL2RyaXZlcnMvaHdtb24vbWF4MTExMS5jCkBAIC04MCw2ICs4MCw5 IEBAIHN0YXRpYyBzdHJ1Y3QgbWF4MTExMV9kYXRhICp0aGVfbWF4MTExMTsKIAogaW50IG1heDEx MTFfcmVhZF9jaGFubmVsKGludCBjaGFubmVsKQogeworCWlmICghdGhlX21heDExMTEgfHwgIXRo ZV9tYXgxMTExLT5zcGkpCisJCXJldHVybiAtRU5PREVWOworCiAJcmV0dXJuIG1heDExMTFfcmVh ZCgmdGhlX21heDExMTEtPnNwaS0+ZGV2LCBjaGFubmVsKTsKIH0KIEVYUE9SVF9TWU1CT0wobWF4 MTExMV9yZWFkX2NoYW5uZWwpOwpAQCAtMjA4LDYgKzIxMSw5IEBAIHN0YXRpYyBpbnQgX19kZXZl eGl0IG1heDExMTFfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiB7CiAJc3RydWN0IG1h eDExMTFfZGF0YSAqZGF0YSA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpOwogCisjaWZkZWYgQ09ORklH X1NIQVJQU0xfUE0KKwl0aGVfbWF4MTExMSA9IE5VTEw7CisjZW5kaWYKIAlod21vbl9kZXZpY2Vf dW5yZWdpc3RlcihkYXRhLT5od21vbl9kZXYpOwogCXN5c2ZzX3JlbW92ZV9ncm91cCgmc3BpLT5k ZXYua29iaiwgJm1heDExMTFfYXR0cl9ncm91cCk7CiAJbXV0ZXhfZGVzdHJveSgmZGF0YS0+ZHJ2 ZGF0YV9sb2NrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbWlzYy9hdGlfcmVtb3RlMi5j IGIvZHJpdmVycy9pbnB1dC9taXNjL2F0aV9yZW1vdGUyLmMKaW5kZXggOGQzNDVlODcwNzVlLi4x Yzc0Mjk3MGRjN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbWlzYy9hdGlfcmVtb3RlMi5j CisrKyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9hdGlfcmVtb3RlMi5jCkBAIC04MTQsMjYgKzgxNCw0 OSBAQCBzdGF0aWMgaW50IGF0aV9yZW1vdGUyX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICpp bnRlcmZhY2UsIGNvbnN0IHN0cnVjdCB1c2JfZAogCiAJYXIyLT51ZGV2ID0gdWRldjsKIAorCS8q IFNhbml0eSBjaGVjaywgZmlyc3QgaW50ZXJmYWNlIG11c3QgaGF2ZSBhbiBlbmRwb2ludCAqLwor CWlmIChhbHQtPmRlc2MuYk51bUVuZHBvaW50cyA8IDEgfHwgIWFsdC0+ZW5kcG9pbnQpIHsKKwkJ ZGV2X2VycigmaW50ZXJmYWNlLT5kZXYsCisJCQkiJXMoKTogaW50ZXJmYWNlIDAgbXVzdCBoYXZl IGFuIGVuZHBvaW50XG4iLCBfX2Z1bmNfXyk7CisJCXIgPSAtRU5PREVWOworCQlnb3RvIGZhaWwx OworCX0KIAlhcjItPmludGZbMF0gPSBpbnRlcmZhY2U7CiAJYXIyLT5lcFswXSA9ICZhbHQtPmVu ZHBvaW50WzBdLmRlc2M7CiAKKwkvKiBTYW5pdHkgY2hlY2ssIHRoZSBkZXZpY2UgbXVzdCBoYXZl IHR3byBpbnRlcmZhY2VzICovCiAJYXIyLT5pbnRmWzFdID0gdXNiX2lmbnVtX3RvX2lmKHVkZXYs IDEpOworCWlmICgodWRldi0+YWN0Y29uZmlnLT5kZXNjLmJOdW1JbnRlcmZhY2VzIDwgMikgfHwg IWFyMi0+aW50ZlsxXSkgeworCQlkZXZfZXJyKCZpbnRlcmZhY2UtPmRldiwgIiVzKCk6IG5lZWQg MiBpbnRlcmZhY2VzLCBmb3VuZCAlZFxuIiwKKwkJCV9fZnVuY19fLCB1ZGV2LT5hY3Rjb25maWct PmRlc2MuYk51bUludGVyZmFjZXMpOworCQlyID0gLUVOT0RFVjsKKwkJZ290byBmYWlsMTsKKwl9 CisKIAlyID0gdXNiX2RyaXZlcl9jbGFpbV9pbnRlcmZhY2UoJmF0aV9yZW1vdGUyX2RyaXZlciwg YXIyLT5pbnRmWzFdLCBhcjIpOwogCWlmIChyKQogCQlnb3RvIGZhaWwxOworCisJLyogU2FuaXR5 IGNoZWNrLCBzZWNvbmQgaW50ZXJmYWNlIG11c3QgaGF2ZSBhbiBlbmRwb2ludCAqLwogCWFsdCA9 IGFyMi0+aW50ZlsxXS0+Y3VyX2FsdHNldHRpbmc7CisJaWYgKGFsdC0+ZGVzYy5iTnVtRW5kcG9p bnRzIDwgMSB8fCAhYWx0LT5lbmRwb2ludCkgeworCQlkZXZfZXJyKCZpbnRlcmZhY2UtPmRldiwK KwkJCSIlcygpOiBpbnRlcmZhY2UgMSBtdXN0IGhhdmUgYW4gZW5kcG9pbnRcbiIsIF9fZnVuY19f KTsKKwkJciA9IC1FTk9ERVY7CisJCWdvdG8gZmFpbDI7CisJfQogCWFyMi0+ZXBbMV0gPSAmYWx0 LT5lbmRwb2ludFswXS5kZXNjOwogCiAJciA9IGF0aV9yZW1vdGUyX3VyYl9pbml0KGFyMik7CiAJ aWYgKHIpCi0JCWdvdG8gZmFpbDI7CisJCWdvdG8gZmFpbDM7CiAKIAlhcjItPmNoYW5uZWxfbWFz ayA9IGNoYW5uZWxfbWFzazsKIAlhcjItPm1vZGVfbWFzayA9IG1vZGVfbWFzazsKIAogCXIgPSBh dGlfcmVtb3RlMl9zZXR1cChhcjIsIGFyMi0+Y2hhbm5lbF9tYXNrKTsKIAlpZiAocikKLQkJZ290 byBmYWlsMjsKKwkJZ290byBmYWlsMzsKIAogCXVzYl9tYWtlX3BhdGgodWRldiwgYXIyLT5waHlz LCBzaXplb2YoYXIyLT5waHlzKSk7CiAJc3RybGNhdChhcjItPnBoeXMsICIvaW5wdXQwIiwgc2l6 ZW9mKGFyMi0+cGh5cykpOwpAQCAtODQyLDExICs4NjUsMTEgQEAgc3RhdGljIGludCBhdGlfcmVt b3RlMl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLCBjb25zdCBzdHJ1Y3Qg dXNiX2QKIAogCXIgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnVkZXYtPmRldi5rb2JqLCAmYXRpX3Jl bW90ZTJfYXR0cl9ncm91cCk7CiAJaWYgKHIpCi0JCWdvdG8gZmFpbDI7CisJCWdvdG8gZmFpbDM7 CiAKIAlyID0gYXRpX3JlbW90ZTJfaW5wdXRfaW5pdChhcjIpOwogCWlmIChyKQotCQlnb3RvIGZh aWwzOworCQlnb3RvIGZhaWw0OwogCiAJdXNiX3NldF9pbnRmZGF0YShpbnRlcmZhY2UsIGFyMik7 CiAKQEAgLTg1NCwxMCArODc3LDExIEBAIHN0YXRpYyBpbnQgYXRpX3JlbW90ZTJfcHJvYmUoc3Ry dWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwgY29uc3Qgc3RydWN0IHVzYl9kCiAKIAlyZXR1 cm4gMDsKIAotIGZhaWwzOgorIGZhaWw0OgogCXN5c2ZzX3JlbW92ZV9ncm91cCgmdWRldi0+ZGV2 LmtvYmosICZhdGlfcmVtb3RlMl9hdHRyX2dyb3VwKTsKLSBmYWlsMjoKKyBmYWlsMzoKIAlhdGlf cmVtb3RlMl91cmJfY2xlYW51cChhcjIpOworIGZhaWwyOgogCXVzYl9kcml2ZXJfcmVsZWFzZV9p bnRlcmZhY2UoJmF0aV9yZW1vdGUyX2RyaXZlciwgYXIyLT5pbnRmWzFdKTsKICBmYWlsMToKIAlr ZnJlZShhcjIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9taXNjL3Bvd2VybWF0ZS5jIGIv ZHJpdmVycy9pbnB1dC9taXNjL3Bvd2VybWF0ZS5jCmluZGV4IGY0NTk0NzE5MGU0Zi4uYmUzNGNk NmE1MDMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2MvcG93ZXJtYXRlLmMKKysrIGIv ZHJpdmVycy9pbnB1dC9taXNjL3Bvd2VybWF0ZS5jCkBAIC0zMDQsNiArMzA0LDkgQEAgc3RhdGlj IGludCBwb3dlcm1hdGVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIGNvbnN0IHN0 cnVjdCB1c2JfZGV2aWNlX2kKIAlpbnQgZXJyb3IgPSAtRU5PTUVNOwogCiAJaW50ZXJmYWNlID0g aW50Zi0+Y3VyX2FsdHNldHRpbmc7CisJaWYgKGludGVyZmFjZS0+ZGVzYy5iTnVtRW5kcG9pbnRz IDwgMSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAllbmRwb2ludCA9ICZpbnRlcmZhY2UtPmVuZHBv aW50WzBdLmRlc2M7CiAJaWYgKCF1c2JfZW5kcG9pbnRfaXNfaW50X2luKGVuZHBvaW50KSkKIAkJ cmV0dXJuIC1FSU87CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21vdXNlL3N5bmFwdGljcy5j IGIvZHJpdmVycy9pbnB1dC9tb3VzZS9zeW5hcHRpY3MuYwppbmRleCA5MWU5NGFkZDA4MTYuLmI3 MmQ2NTI1ODA2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9tb3VzZS9zeW5hcHRpY3MuYwor KysgYi9kcml2ZXJzL2lucHV0L21vdXNlL3N5bmFwdGljcy5jCkBAIC02NzQsOCArNjc0LDkgQEAg c3RhdGljIHZvaWQgc3luYXB0aWNzX3JlcG9ydF9leHRfYnV0dG9ucyhzdHJ1Y3QgcHNtb3VzZSAq cHNtb3VzZSwKIAlpZiAoIVNZTl9DQVBfTVVMVElfQlVUVE9OX05PKHByaXYtPmV4dF9jYXApKQog CQlyZXR1cm47CiAKLQkvKiBCdWcgaW4gRlcgOC4xLCBidXR0b25zIGFyZSByZXBvcnRlZCBvbmx5 IHdoZW4gRXh0Qml0IGlzIDEgKi8KLQlpZiAoU1lOX0lEX0ZVTEwocHJpdi0+aWRlbnRpdHkpID09 IDB4ODAxICYmCisJLyogQnVnIGluIEZXIDguMSAmIDguMiwgYnV0dG9ucyBhcmUgcmVwb3J0ZWQg b25seSB3aGVuIEV4dEJpdCBpcyAxICovCisJaWYgKChTWU5fSURfRlVMTChwcml2LT5pZGVudGl0 eSkgPT0gMHg4MDEgfHwKKwkgICAgIFNZTl9JRF9GVUxMKHByaXYtPmlkZW50aXR5KSA9PSAweDgw MikgJiYKIAkgICAgISgocHNtb3VzZS0+cGFja2V0WzBdIF4gcHNtb3VzZS0+cGFja2V0WzNdKSAm IDB4MDIpKQogCQlyZXR1cm47CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0tc25hcC5jIGIv ZHJpdmVycy9tZC9kbS1zbmFwLmMKaW5kZXggMDljMmI0ZjJkNTEyLi42Njc0ZWJmOTU5ZmUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tc25hcC5jCisrKyBiL2RyaXZlcnMvbWQvZG0tc25hcC5j CkBAIC0xMDU1LDYgKzEwNTUsNyBAQCBzdGF0aWMgaW50IHNuYXBzaG90X2N0cihzdHJ1Y3QgZG1f dGFyZ2V0ICp0aSwgdW5zaWduZWQgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWludCBpOwogCWlu dCByID0gLUVJTlZBTDsKIAljaGFyICpvcmlnaW5fcGF0aCwgKmNvd19wYXRoOworCWRldl90IG9y aWdpbl9kZXYsIGNvd19kZXY7CiAJdW5zaWduZWQgYXJnc191c2VkLCBudW1fZmx1c2hfcmVxdWVz dHMgPSAxOwogCWZtb2RlX3Qgb3JpZ2luX21vZGUgPSBGTU9ERV9SRUFEOwogCkBAIC0xMDg1LDEx ICsxMDg2LDE5IEBAIHN0YXRpYyBpbnQgc25hcHNob3RfY3RyKHN0cnVjdCBkbV90YXJnZXQgKnRp LCB1bnNpZ25lZCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXRpLT5lcnJvciA9ICJDYW5ub3Qg Z2V0IG9yaWdpbiBkZXZpY2UiOwogCQlnb3RvIGJhZF9vcmlnaW47CiAJfQorCW9yaWdpbl9kZXYg PSBzLT5vcmlnaW4tPmJkZXYtPmJkX2RldjsKIAogCWNvd19wYXRoID0gYXJndlswXTsKIAlhcmd2 Kys7CiAJYXJnYy0tOwogCisJY293X2RldiA9IGRtX2dldF9kZXZfdChjb3dfcGF0aCk7CisJaWYg KGNvd19kZXYgJiYgY293X2RldiA9PSBvcmlnaW5fZGV2KSB7CisJCXRpLT5lcnJvciA9ICJDT1cg ZGV2aWNlIGNhbm5vdCBiZSB0aGUgc2FtZSBhcyBvcmlnaW4gZGV2aWNlIjsKKwkJciA9IC1FSU5W QUw7CisJCWdvdG8gYmFkX2NvdzsKKwl9CisKIAlyID0gZG1fZ2V0X2RldmljZSh0aSwgY293X3Bh dGgsIGRtX3RhYmxlX2dldF9tb2RlKHRpLT50YWJsZSksICZzLT5jb3cpOwogCWlmIChyKSB7CiAJ CXRpLT5lcnJvciA9ICJDYW5ub3QgZ2V0IENPVyBkZXZpY2UiOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZC9kbS10YWJsZS5jIGIvZHJpdmVycy9tZC9kbS10YWJsZS5jCmluZGV4IDVjNTI1ODJiMDE3 OS4uMWUzNzkzMTJmYTY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL2RtLXRhYmxlLmMKKysrIGIv ZHJpdmVycy9tZC9kbS10YWJsZS5jCkBAIC00NTgsMzUgKzQ1OCw1MCBAQCBzdGF0aWMgaW50IHVw Z3JhZGVfbW9kZShzdHJ1Y3QgZG1fZGV2X2ludGVybmFsICpkZCwgZm1vZGVfdCBuZXdfbW9kZSwK IH0KIAogLyoKLSAqIEFkZCBhIGRldmljZSB0byB0aGUgbGlzdCwgb3IganVzdCBpbmNyZW1lbnQg dGhlIHVzYWdlIGNvdW50IGlmCi0gKiBpdCdzIGFscmVhZHkgcHJlc2VudC4KKyAqIENvbnZlcnQg dGhlIHBhdGggdG8gYSBkZXZpY2UKICAqLwotaW50IGRtX2dldF9kZXZpY2Uoc3RydWN0IGRtX3Rh cmdldCAqdGksIGNvbnN0IGNoYXIgKnBhdGgsIGZtb2RlX3QgbW9kZSwKLQkJICBzdHJ1Y3QgZG1f ZGV2ICoqcmVzdWx0KQorZGV2X3QgZG1fZ2V0X2Rldl90KGNvbnN0IGNoYXIgKnBhdGgpCiB7Ci0J aW50IHI7CiAJZGV2X3QgdW5pbml0aWFsaXplZF92YXIoZGV2KTsKLQlzdHJ1Y3QgZG1fZGV2X2lu dGVybmFsICpkZDsKIAl1bnNpZ25lZCBpbnQgbWFqb3IsIG1pbm9yOwotCXN0cnVjdCBkbV90YWJs ZSAqdCA9IHRpLT50YWJsZTsKLQotCUJVR19PTighdCk7CiAKIAlpZiAoc3NjYW5mKHBhdGgsICIl dToldSIsICZtYWpvciwgJm1pbm9yKSA9PSAyKSB7CiAJCS8qIEV4dHJhY3QgdGhlIG1ham9yL21p bm9yIG51bWJlcnMgKi8KIAkJZGV2ID0gTUtERVYobWFqb3IsIG1pbm9yKTsKIAkJaWYgKE1BSk9S KGRldikgIT0gbWFqb3IgfHwgTUlOT1IoZGV2KSAhPSBtaW5vcikKLQkJCXJldHVybiAtRU9WRVJG TE9XOworCQkJcmV0dXJuIDA7CiAJfSBlbHNlIHsKIAkJLyogY29udmVydCB0aGUgcGF0aCB0byBh IGRldmljZSAqLwogCQlzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2ID0gbG9va3VwX2JkZXYocGF0 aCk7CiAKIAkJaWYgKElTX0VSUihiZGV2KSkKLQkJCXJldHVybiBQVFJfRVJSKGJkZXYpOworCQkJ cmV0dXJuIDA7CiAJCWRldiA9IGJkZXYtPmJkX2RldjsKIAkJYmRwdXQoYmRldik7CiAJfQogCisJ cmV0dXJuIGRldjsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGRtX2dldF9kZXZfdCk7CisKKy8qCisg KiBBZGQgYSBkZXZpY2UgdG8gdGhlIGxpc3QsIG9yIGp1c3QgaW5jcmVtZW50IHRoZSB1c2FnZSBj b3VudCBpZgorICogaXQncyBhbHJlYWR5IHByZXNlbnQuCisgKi8KK2ludCBkbV9nZXRfZGV2aWNl KHN0cnVjdCBkbV90YXJnZXQgKnRpLCBjb25zdCBjaGFyICpwYXRoLCBmbW9kZV90IG1vZGUsCisJ CSAgc3RydWN0IGRtX2RldiAqKnJlc3VsdCkKK3sKKwlpbnQgcjsKKwlkZXZfdCBkZXY7CisJc3Ry dWN0IGRtX2Rldl9pbnRlcm5hbCAqZGQ7CisJc3RydWN0IGRtX3RhYmxlICp0ID0gdGktPnRhYmxl OworCisJQlVHX09OKCF0KTsKKworCWRldiA9IGRtX2dldF9kZXZfdChwYXRoKTsKKwlpZiAoIWRl dikKKwkJcmV0dXJuIC1FTk9ERVY7CisKIAlkZCA9IGZpbmRfZGV2aWNlKCZ0LT5kZXZpY2VzLCBk ZXYpOwogCWlmICghZGQpIHsKIAkJZGQgPSBrbWFsbG9jKHNpemVvZigqZGQpLCBHRlBfS0VSTkVM KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDEuYyBiL2RyaXZlcnMvbWQvcmFpZDEuYwpp bmRleCA1YzhkZDQwNGIzOWQuLjdiNzVhMTk0MjE1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9y YWlkMS5jCisrKyBiL2RyaXZlcnMvbWQvcmFpZDEuYwpAQCAtMTk3Niw2ICsxOTc2LDcgQEAgc3Rh dGljIHZvaWQgaGFuZGxlX3dyaXRlX2ZpbmlzaGVkKHN0cnVjdCByMWNvbmYgKmNvbmYsIHN0cnVj dCByMWJpbyAqcjFfYmlvKQogCWlmIChmYWlsKSB7CiAJCXNwaW5fbG9ja19pcnEoJmNvbmYtPmRl dmljZV9sb2NrKTsKIAkJbGlzdF9hZGQoJnIxX2Jpby0+cmV0cnlfbGlzdCwgJmNvbmYtPmJpb19l bmRfaW9fbGlzdCk7CisJCWNvbmYtPm5yX3F1ZXVlZCsrOwogCQlzcGluX3VubG9ja19pcnEoJmNv bmYtPmRldmljZV9sb2NrKTsKIAkJbWRfd2FrZXVwX3RocmVhZChjb25mLT5tZGRldi0+dGhyZWFk KTsKIAl9IGVsc2UgewpAQCAtMjA5MCw4ICsyMDkxLDEwIEBAIHN0YXRpYyB2b2lkIHJhaWQxZChz dHJ1Y3QgbWRkZXYgKm1kZGV2KQogCQlMSVNUX0hFQUQodG1wKTsKIAkJc3Bpbl9sb2NrX2lycXNh dmUoJmNvbmYtPmRldmljZV9sb2NrLCBmbGFncyk7CiAJCWlmICghdGVzdF9iaXQoTURfQ0hBTkdF X1BFTkRJTkcsICZtZGRldi0+ZmxhZ3MpKSB7Ci0JCQlsaXN0X2FkZCgmdG1wLCAmY29uZi0+Ymlv X2VuZF9pb19saXN0KTsKLQkJCWxpc3RfZGVsX2luaXQoJmNvbmYtPmJpb19lbmRfaW9fbGlzdCk7 CisJCQl3aGlsZSAoIWxpc3RfZW1wdHkoJmNvbmYtPmJpb19lbmRfaW9fbGlzdCkpIHsKKwkJCQls aXN0X21vdmUoY29uZi0+YmlvX2VuZF9pb19saXN0LnByZXYsICZ0bXApOworCQkJCWNvbmYtPm5y X3F1ZXVlZC0tOworCQkJfQogCQl9CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvbmYtPmRl dmljZV9sb2NrLCBmbGFncyk7CiAJCXdoaWxlICghbGlzdF9lbXB0eSgmdG1wKSkgewpkaWZmIC0t Z2l0IGEvZHJpdmVycy9tZC9yYWlkMTAuYyBiL2RyaXZlcnMvbWQvcmFpZDEwLmMKaW5kZXggOTIy YjcwYjJmZWQzLi44ZmI0NGRhMjU1YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDEwLmMK KysrIGIvZHJpdmVycy9tZC9yYWlkMTAuYwpAQCAtMjI0MSw2ICsyMjQxLDcgQEAgc3RhdGljIHZv aWQgaGFuZGxlX3dyaXRlX2NvbXBsZXRlZChzdHJ1Y3QgcjEwY29uZiAqY29uZiwgc3RydWN0IHIx MGJpbyAqcjEwX2JpbykKIAkJaWYgKGZhaWwpIHsKIAkJCXNwaW5fbG9ja19pcnEoJmNvbmYtPmRl dmljZV9sb2NrKTsKIAkJCWxpc3RfYWRkKCZyMTBfYmlvLT5yZXRyeV9saXN0LCAmY29uZi0+Ymlv X2VuZF9pb19saXN0KTsKKwkJCWNvbmYtPm5yX3F1ZXVlZCsrOwogCQkJc3Bpbl91bmxvY2tfaXJx KCZjb25mLT5kZXZpY2VfbG9jayk7CiAJCQltZF93YWtldXBfdGhyZWFkKGNvbmYtPm1kZGV2LT50 aHJlYWQpOwogCQl9IGVsc2UgewpAQCAtMjI2Nyw4ICsyMjY4LDEwIEBAIHN0YXRpYyB2b2lkIHJh aWQxMGQoc3RydWN0IG1kZGV2ICptZGRldikKIAkJTElTVF9IRUFEKHRtcCk7CiAJCXNwaW5fbG9j a19pcnFzYXZlKCZjb25mLT5kZXZpY2VfbG9jaywgZmxhZ3MpOwogCQlpZiAoIXRlc3RfYml0KE1E X0NIQU5HRV9QRU5ESU5HLCAmbWRkZXYtPmZsYWdzKSkgewotCQkJbGlzdF9hZGQoJnRtcCwgJmNv bmYtPmJpb19lbmRfaW9fbGlzdCk7Ci0JCQlsaXN0X2RlbF9pbml0KCZjb25mLT5iaW9fZW5kX2lv X2xpc3QpOworCQkJd2hpbGUgKCFsaXN0X2VtcHR5KCZjb25mLT5iaW9fZW5kX2lvX2xpc3QpKSB7 CisJCQkJbGlzdF9tb3ZlKGNvbmYtPmJpb19lbmRfaW9fbGlzdC5wcmV2LCAmdG1wKTsKKwkJCQlj b25mLT5ucl9xdWV1ZWQtLTsKKwkJCX0KIAkJfQogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZj b25mLT5kZXZpY2VfbG9jaywgZmxhZ3MpOwogCQl3aGlsZSAoIWxpc3RfZW1wdHkoJnRtcCkpIHsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vYnQ4eHgvYnR0di1kcml2ZXIuYyBiL2Ry aXZlcnMvbWVkaWEvdmlkZW8vYnQ4eHgvYnR0di1kcml2ZXIuYwppbmRleCAzZGQwNjYwN2FlYzIu LmE5ZWMwOGIyOWNlZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9idDh4eC9idHR2 LWRyaXZlci5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vYnQ4eHgvYnR0di1kcml2ZXIuYwpA QCAtMjQ4MCw2ICsyNDgwLDE5IEBAIHN0YXRpYyBpbnQgYnR0dl9nX2ZtdF92aWRfb3ZlcmxheShz dHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZv aWQgYnR0dl9nZXRfd2lkdGhfbWFza192aWRfY2FwKGNvbnN0IHN0cnVjdCBidHR2X2Zvcm1hdCAq Zm10LAorCQkJCQl1bnNpZ25lZCBpbnQgKndpZHRoX21hc2ssCisJCQkJCXVuc2lnbmVkIGludCAq d2lkdGhfYmlhcykKK3sKKwlpZiAoZm10LT5mbGFncyAmIEZPUk1BVF9GTEFHU19QTEFOQVIpIHsK KwkJKndpZHRoX21hc2sgPSB+MTU7IC8qIHdpZHRoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNiBw aXhlbHMgKi8KKwkJKndpZHRoX2JpYXMgPSA4OyAgIC8qIG5lYXJlc3QgKi8KKwl9IGVsc2Ugewor CQkqd2lkdGhfbWFzayA9IH4zOyAvKiB3aWR0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCBwaXhl bHMgKi8KKwkJKndpZHRoX2JpYXMgPSAyOyAgLyogbmVhcmVzdCAqLworCX0KK30KKwogc3RhdGlj IGludCBidHR2X3RyeV9mbXRfdmlkX2NhcChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwK IAkJCQkJCXN0cnVjdCB2NGwyX2Zvcm1hdCAqZikKIHsKQEAgLTI0ODgsNiArMjUwMSw3IEBAIHN0 YXRpYyBpbnQgYnR0dl90cnlfZm10X3ZpZF9jYXAoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnBy aXYsCiAJc3RydWN0IGJ0dHYgKmJ0diA9IGZoLT5idHY7CiAJZW51bSB2NGwyX2ZpZWxkIGZpZWxk OwogCV9fczMyIHdpZHRoLCBoZWlnaHQ7CisJdW5zaWduZWQgaW50IHdpZHRoX21hc2ssIHdpZHRo X2JpYXM7CiAJaW50IHJjOwogCiAJZm10ID0gZm9ybWF0X2J5X2ZvdXJjYyhmLT5mbXQucGl4LnBp eGVsZm9ybWF0KTsKQEAgLTI1MjUsOSArMjUzOSw5IEBAIHN0YXRpYyBpbnQgYnR0dl90cnlfZm10 X3ZpZF9jYXAoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCiAJd2lkdGggPSBmLT5mbXQu cGl4LndpZHRoOwogCWhlaWdodCA9IGYtPmZtdC5waXguaGVpZ2h0OwogCisJYnR0dl9nZXRfd2lk dGhfbWFza192aWRfY2FwKGZtdCwgJndpZHRoX21hc2ssICZ3aWR0aF9iaWFzKTsKIAlyYyA9IGxp bWl0X3NjYWxlZF9zaXplX2xvY2soZmgsICZ3aWR0aCwgJmhlaWdodCwgZmllbGQsCi0JCQkgICAg ICAgLyogd2lkdGhfbWFzazogNCBwaXhlbHMgKi8gfjMsCi0JCQkgICAgICAgLyogd2lkdGhfYmlh czogbmVhcmVzdCAqLyAyLAorCQkJICAgICAgIHdpZHRoX21hc2ssIHdpZHRoX2JpYXMsCiAJCQkg ICAgICAgLyogYWRqdXN0X3NpemUgKi8gMSwKIAkJCSAgICAgICAvKiBhZGp1c3RfY3JvcCAqLyAw KTsKIAlpZiAoMCAhPSByYykKQEAgLTI1NTgsNiArMjU3Miw3IEBAIHN0YXRpYyBpbnQgYnR0dl9z X2ZtdF92aWRfY2FwKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LAogCXN0cnVjdCBidHR2 X2ZoICpmaCA9IHByaXY7CiAJc3RydWN0IGJ0dHYgKmJ0diA9IGZoLT5idHY7CiAJX19zMzIgd2lk dGgsIGhlaWdodDsKKwl1bnNpZ25lZCBpbnQgd2lkdGhfbWFzaywgd2lkdGhfYmlhczsKIAllbnVt IHY0bDJfZmllbGQgZmllbGQ7CiAKIAlyZXR2YWwgPSBidHR2X3N3aXRjaF90eXBlKGZoLCBmLT50 eXBlKTsKQEAgLTI1NzIsOSArMjU4NywxMCBAQCBzdGF0aWMgaW50IGJ0dHZfc19mbXRfdmlkX2Nh cChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwKIAloZWlnaHQgPSBmLT5mbXQucGl4Lmhl aWdodDsKIAlmaWVsZCA9IGYtPmZtdC5waXguZmllbGQ7CiAKKwlmbXQgPSBmb3JtYXRfYnlfZm91 cmNjKGYtPmZtdC5waXgucGl4ZWxmb3JtYXQpOworCWJ0dHZfZ2V0X3dpZHRoX21hc2tfdmlkX2Nh cChmbXQsICZ3aWR0aF9tYXNrLCAmd2lkdGhfYmlhcyk7CiAJcmV0dmFsID0gbGltaXRfc2NhbGVk X3NpemVfbG9jayhmaCwgJndpZHRoLCAmaGVpZ2h0LCBmLT5mbXQucGl4LmZpZWxkLAotCQkJICAg ICAgIC8qIHdpZHRoX21hc2s6IDQgcGl4ZWxzICovIH4zLAotCQkJICAgICAgIC8qIHdpZHRoX2Jp YXM6IG5lYXJlc3QgKi8gMiwKKwkJCSAgICAgICB3aWR0aF9tYXNrLCB3aWR0aF9iaWFzLAogCQkJ ICAgICAgIC8qIGFkanVzdF9zaXplICovIDEsCiAJCQkgICAgICAgLyogYWRqdXN0X2Nyb3AgKi8g MSk7CiAJaWYgKDAgIT0gcmV0dmFsKQpAQCAtMjU4Miw4ICsyNTk4LDYgQEAgc3RhdGljIGludCBi dHR2X3NfZm10X3ZpZF9jYXAoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCiAKIAlmLT5m bXQucGl4LmZpZWxkID0gZmllbGQ7CiAKLQlmbXQgPSBmb3JtYXRfYnlfZm91cmNjKGYtPmZtdC5w aXgucGl4ZWxmb3JtYXQpOwotCiAJLyogdXBkYXRlIG91ciBzdGF0ZSBpbmZvcm1hdGlvbnMgKi8K IAlmaC0+Zm10ICAgICAgICAgICAgICA9IGZtdDsKIAlmaC0+Y2FwLmZpZWxkICAgICAgICA9IGYt PmZtdC5waXguZmllbGQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3B3Yy9wd2Mt aWYuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vcHdjL3B3Yy1pZi5jCmluZGV4IDAxZmY2NDNlNjgy ZC4uY2UxZTBlOGI3NTMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3B3Yy9wd2Mt aWYuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3B3Yy9wd2MtaWYuYwpAQCAtOTEsNiArOTEs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcHdjX2RldmljZV90YWJsZSBb XSA9IHsKIAl7IFVTQl9ERVZJQ0UoMHgwNDcxLCAweDAzMTIpIH0sCiAJeyBVU0JfREVWSUNFKDB4 MDQ3MSwgMHgwMzEzKSB9LCAvKiB0aGUgJ25ldycgNzIwSyAqLwogCXsgVVNCX0RFVklDRSgweDA0 NzEsIDB4MDMyOSkgfSwgLyogUGhpbGlwcyBTUEMgOTAwTkMgUEMgQ2FtZXJhICovCisJeyBVU0Jf REVWSUNFKDB4MDQ3MSwgMHgwMzJDKSB9LCAvKiBQaGlsaXBzIFNQQyA4ODBOQyBQQyBDYW1lcmEg Ki8KIAl7IFVTQl9ERVZJQ0UoMHgwNjlBLCAweDAwMDEpIH0sIC8qIEFza2V5ICovCiAJeyBVU0Jf REVWSUNFKDB4MDQ2RCwgMHgwOEIwKSB9LCAvKiBMb2dpdGVjaCBRdWlja0NhbSBQcm8gMzAwMCAq LwogCXsgVVNCX0RFVklDRSgweDA0NkQsIDB4MDhCMSkgfSwgLyogTG9naXRlY2ggUXVpY2tDYW0g Tm90ZWJvb2sgUHJvICovCkBAIC05NjUsNiArOTY2LDExIEBAIHN0YXRpYyBpbnQgdXNiX3B3Y19w cm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2Vf aWQKIAkJCW5hbWUgPSAiUGhpbGlwcyBTUEMgOTAwTkMgd2ViY2FtIjsKIAkJCXR5cGVfaWQgPSA3 NDA7CiAJCQlicmVhazsKKwkJY2FzZSAweDAzMkM6CisJCQlQV0NfSU5GTygiUGhpbGlwcyBTUEMg ODgwTkMgVVNCIHdlYmNhbSBkZXRlY3RlZC5cbiIpOworCQkJbmFtZSA9ICJQaGlsaXBzIFNQQyA4 ODBOQyB3ZWJjYW0iOworCQkJdHlwZV9pZCA9IDc0MDsKKwkJCWJyZWFrOwogCQlkZWZhdWx0Ogog CQkJcmV0dXJuIC1FTk9ERVY7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEv dmlkZW8vc2FhNzEzNC9zYWE3MTM0LXZpZGVvLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcx MzQvc2FhNzEzNC12aWRlby5jCmluZGV4IDljZjc5MTRmNmY5MC4uZGQ4MzBhNWM5ZDA4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC12aWRlby5jCisrKyBi L2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LXZpZGVvLmMKQEAgLTE1NzcsMTAg KzE1NzcsMTMgQEAgc3RhdGljIGludCBzYWE3MTM0X2dfZm10X3ZpZF9jYXAoc3RydWN0IGZpbGUg KmZpbGUsIHZvaWQgKnByaXYsCiAJZi0+Zm10LnBpeC5oZWlnaHQgICAgICAgPSBmaC0+aGVpZ2h0 OwogCWYtPmZtdC5waXguZmllbGQgICAgICAgID0gZmgtPmNhcC5maWVsZDsKIAlmLT5mbXQucGl4 LnBpeGVsZm9ybWF0ICA9IGZoLT5mbXQtPmZvdXJjYzsKLQlmLT5mbXQucGl4LmJ5dGVzcGVybGlu ZSA9Ci0JCShmLT5mbXQucGl4LndpZHRoICogZmgtPmZtdC0+ZGVwdGgpID4+IDM7CisJaWYgKGZo LT5mbXQtPnBsYW5hcikKKwkJZi0+Zm10LnBpeC5ieXRlc3BlcmxpbmUgPSBmLT5mbXQucGl4Lndp ZHRoOworCWVsc2UKKwkJZi0+Zm10LnBpeC5ieXRlc3BlcmxpbmUgPQorCQkJKGYtPmZtdC5waXgu d2lkdGggKiBmaC0+Zm10LT5kZXB0aCkgLyA4OwogCWYtPmZtdC5waXguc2l6ZWltYWdlID0KLQkJ Zi0+Zm10LnBpeC5oZWlnaHQgKiBmLT5mbXQucGl4LmJ5dGVzcGVybGluZTsKKwkJKGYtPmZtdC5w aXguaGVpZ2h0ICogZi0+Zm10LnBpeC53aWR0aCAqIGZoLT5mbXQtPmRlcHRoKSAvIDg7CiAJcmV0 dXJuIDA7CiB9CiAKQEAgLTE2NDEsMTAgKzE2NDQsMTMgQEAgc3RhdGljIGludCBzYWE3MTM0X3Ry eV9mbXRfdmlkX2NhcChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwKIAlpZiAoZi0+Zm10 LnBpeC5oZWlnaHQgPiBtYXhoKQogCQlmLT5mbXQucGl4LmhlaWdodCA9IG1heGg7CiAJZi0+Zm10 LnBpeC53aWR0aCAmPSB+MHgwMzsKLQlmLT5mbXQucGl4LmJ5dGVzcGVybGluZSA9Ci0JCShmLT5m bXQucGl4LndpZHRoICogZm10LT5kZXB0aCkgPj4gMzsKKwlpZiAoZm10LT5wbGFuYXIpCisJCWYt PmZtdC5waXguYnl0ZXNwZXJsaW5lID0gZi0+Zm10LnBpeC53aWR0aDsKKwllbHNlCisJCWYtPmZt dC5waXguYnl0ZXNwZXJsaW5lID0KKwkJCShmLT5mbXQucGl4LndpZHRoICogZm10LT5kZXB0aCkg LyA4OwogCWYtPmZtdC5waXguc2l6ZWltYWdlID0KLQkJZi0+Zm10LnBpeC5oZWlnaHQgKiBmLT5m bXQucGl4LmJ5dGVzcGVybGluZTsKKwkJKGYtPmZtdC5waXguaGVpZ2h0ICogZi0+Zm10LnBpeC53 aWR0aCAqIGZtdC0+ZGVwdGgpIC8gODsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9taXNjL2FkNTI1eF9kcG90LmMgYi9kcml2ZXJzL21pc2MvYWQ1MjV4X2Rwb3QuYwppbmRl eCA3Y2I5MTEwMjhkMDkuLmRmYTFjMjA2OWRjMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL2Fk NTI1eF9kcG90LmMKKysrIGIvZHJpdmVycy9taXNjL2FkNTI1eF9kcG90LmMKQEAgLTIxOCw3ICsy MTgsNyBAQCBzdGF0aWMgczMyIGRwb3RfcmVhZF9pMmMoc3RydWN0IGRwb3RfZGF0YSAqZHBvdCwg dTggcmVnKQogCQkJICovCiAJCQl2YWx1ZSA9IHN3YWIxNih2YWx1ZSk7CiAKLQkJCWlmIChkcG90 LT51aWQgPT0gRFBPVF9VSUQoQUQ1MjcxX0lEKSkKKwkJCWlmIChkcG90LT51aWQgPT0gRFBPVF9V SUQoQUQ1Mjc0X0lEKSkKIAkJCQl2YWx1ZSA9IHZhbHVlID4+IDI7CiAJCXJldHVybiB2YWx1ZTsK IAlkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvam1lLmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9qbWUuYwppbmRleCBhYjc4NGUwOTE4N2IuLjc1ODNmZTFmOWNiOCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvam1lLmMKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvam1lLmMKQEAgLTI2OSwxMSArMjY5LDE3IEBAIGptZV9yZXNldF9tYWNfcHJvY2Vz c29yKHN0cnVjdCBqbWVfYWRhcHRlciAqam1lKQogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKLWpt ZV9jbGVhcl9wbShzdHJ1Y3Qgam1lX2FkYXB0ZXIgKmptZSkKK2ptZV9jbGVhcl9wbV9lbmFibGVf d29sKHN0cnVjdCBqbWVfYWRhcHRlciAqam1lKQogewogCWp3cml0ZTMyKGptZSwgSk1FX1BNQ1Ms IFBNQ1NfU1RNQVNLIHwgam1lLT5yZWdfcG1jcyk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZAor am1lX2NsZWFyX3BtX2Rpc2FibGVfd29sKHN0cnVjdCBqbWVfYWRhcHRlciAqam1lKQoreworCWp3 cml0ZTMyKGptZSwgSk1FX1BNQ1MsIFBNQ1NfU1RNQVNLKTsKK30KKwogc3RhdGljIGludAogam1l X3JlbG9hZF9lZXByb20oc3RydWN0IGptZV9hZGFwdGVyICpqbWUpCiB7CkBAIC0xODU2LDcgKzE4 NjIsNyBAQCBqbWVfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQogCXN0cnVjdCBqbWVf YWRhcHRlciAqam1lID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsKIAlpbnQgcmM7CiAKLQlqbWVfY2xl YXJfcG0oam1lKTsKKwlqbWVfY2xlYXJfcG1fZGlzYWJsZV93b2woam1lKTsKIAlKTUVfTkFQSV9F TkFCTEUoam1lKTsKIAogCXRhc2tsZXRfZW5hYmxlKCZqbWUtPmxpbmtjaF90YXNrKTsKQEAgLTE5 MjQsMTEgKzE5MzAsMTEgQEAgam1lX3dhaXRfbGluayhzdHJ1Y3Qgam1lX2FkYXB0ZXIgKmptZSkK IHN0YXRpYyB2b2lkCiBqbWVfcG93ZXJzYXZlX3BoeShzdHJ1Y3Qgam1lX2FkYXB0ZXIgKmptZSkK IHsKLQlpZiAoam1lLT5yZWdfcG1jcykgeworCWlmIChqbWUtPnJlZ19wbWNzICYmIGRldmljZV9t YXlfd2FrZXVwKCZqbWUtPnBkZXYtPmRldikpIHsKIAkJam1lX3NldF8xMDBtX2hhbGYoam1lKTsK IAkJaWYgKGptZS0+cmVnX3BtY3MgJiAoUE1DU19MRkVOIHwgUE1DU19MUkVOKSkKIAkJCWptZV93 YWl0X2xpbmsoam1lKTsKLQkJam1lX2NsZWFyX3BtKGptZSk7CisJCWptZV9jbGVhcl9wbV9lbmFi bGVfd29sKGptZSk7CiAJfSBlbHNlIHsKIAkJam1lX3BoeV9vZmYoam1lKTsKIAl9CkBAIC0yNjE2 LDkgKzI2MjIsNiBAQCBqbWVfc2V0X3dvbChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogCWlm ICh3b2wtPndvbG9wdHMgJiBXQUtFX01BR0lDKQogCQlqbWUtPnJlZ19wbWNzIHw9IFBNQ1NfTUZF TjsKIAotCWp3cml0ZTMyKGptZSwgSk1FX1BNQ1MsIGptZS0+cmVnX3BtY3MpOwotCWRldmljZV9z ZXRfd2FrZXVwX2VuYWJsZSgmam1lLT5wZGV2LT5kZXYsICEhKGptZS0+cmVnX3BtY3MpKTsKLQog CXJldHVybiAwOwogfQogCkBAIC0zMTQyLDkgKzMxNDUsOSBAQCBqbWVfaW5pdF9vbmUoc3RydWN0 IHBjaV9kZXYgKnBkZXYsCiAJam1lLT5taWlfaWYubWRpb19yZWFkID0gam1lX21kaW9fcmVhZDsK IAlqbWUtPm1paV9pZi5tZGlvX3dyaXRlID0gam1lX21kaW9fd3JpdGU7CiAKLQlqbWVfY2xlYXJf cG0oam1lKTsKKwlqbWVfY2xlYXJfcG1fZGlzYWJsZV93b2woam1lKTsKIAlwY2lfc2V0X3Bvd2Vy X3N0YXRlKGptZS0+cGRldiwgUENJX0QwKTsKLQlkZXZpY2Vfc2V0X3dha2V1cF9lbmFibGUoJnBk ZXYtPmRldiwgdHJ1ZSk7CisJZGV2aWNlX2luaXRfd2FrZXVwKCZwZGV2LT5kZXYsIHRydWUpOwog CiAJam1lX3NldF9waHlmaWZvXzVsZXZlbChqbWUpOwogCWptZS0+cGNpcmV2ID0gcGRldi0+cmV2 aXNpb247CkBAIC0zMjc3LDcgKzMyODAsNyBAQCBqbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRl dikKIAlpZiAoIW5ldGlmX3J1bm5pbmcobmV0ZGV2KSkKIAkJcmV0dXJuIDA7CiAKLQlqbWVfY2xl YXJfcG0oam1lKTsKKwlqbWVfY2xlYXJfcG1fZGlzYWJsZV93b2woam1lKTsKIAlqbWVfcGh5X29u KGptZSk7CiAJaWYgKHRlc3RfYml0KEpNRV9GTEFHX1NTRVQsICZqbWUtPmZsYWdzKSkKIAkJam1l X3NldF9zZXR0aW5ncyhuZXRkZXYsICZqbWUtPm9sZF9lY21kKTsKQEAgLTMyODUsMTMgKzMyODgs MTQgQEAgam1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJCWptZV9yZXNldF9waHlfcHJv Y2Vzc29yKGptZSk7CiAJam1lX3BoeV9jYWxpYnJhdGlvbihqbWUpOwogCWptZV9waHlfc2V0RUEo am1lKTsKLQlqbWVfc3RhcnRfaXJxKGptZSk7CiAJbmV0aWZfZGV2aWNlX2F0dGFjaChuZXRkZXYp OwogCiAJYXRvbWljX2luYygmam1lLT5saW5rX2NoYW5naW5nKTsKIAogCWptZV9yZXNldF9saW5r KGptZSk7CiAKKwlqbWVfc3RhcnRfaXJxKGptZSk7CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcmVsL2tzODg0Mi5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWljcmVsL2tzODg0Mi5jCmluZGV4IDRhNmFlMDU3ZTNiMS4uMjJhYjA5ODljNjkz IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyZWwva3M4ODQyLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcmVsL2tzODg0Mi5jCkBAIC01NjIsOCArNTYyLDggQEAg c3RhdGljIGludCBfX2tzODg0Ml9zdGFydF9uZXdfcnhfZG1hKHN0cnVjdCBuZXRfZGV2aWNlICpu ZXRkZXYpCiAJCXNnX2luaXRfdGFibGUoc2csIDEpOwogCQlzZ19kbWFfYWRkcmVzcyhzZykgPSBk bWFfbWFwX3NpbmdsZShhZGFwdGVyLT5kZXYsCiAJCQljdGwtPnNrYi0+ZGF0YSwgRE1BX0JVRkZF Ul9TSVpFLCBETUFfRlJPTV9ERVZJQ0UpOwotCQllcnIgPSBkbWFfbWFwcGluZ19lcnJvcihhZGFw dGVyLT5kZXYsIHNnX2RtYV9hZGRyZXNzKHNnKSk7Ci0JCWlmICh1bmxpa2VseShlcnIpKSB7CisJ CWlmIChkbWFfbWFwcGluZ19lcnJvcihhZGFwdGVyLT5kZXYsIHNnX2RtYV9hZGRyZXNzKHNnKSkp IHsKKwkJCWVyciA9IC1FTk9NRU07CiAJCQlzZ19kbWFfYWRkcmVzcyhzZykgPSAwOwogCQkJZ290 byBvdXQ7CiAJCX0KQEAgLTU3NCw4ICs1NzQsMTAgQEAgc3RhdGljIGludCBfX2tzODg0Ml9zdGFy dF9uZXdfcnhfZG1hKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJCQlzZywgMSwgRE1BX0ZS T01fREVWSUNFLAogCQkJRE1BX1BSRVBfSU5URVJSVVBUIHwgRE1BX0NPTVBMX1NLSVBfU1JDX1VO TUFQKTsKIAotCQlpZiAoIWN0bC0+YWRlc2MpCisJCWlmICghY3RsLT5hZGVzYykgeworCQkJZXJy ID0gLUVOT01FTTsKIAkJCWdvdG8gb3V0OworCQl9CiAKIAkJY3RsLT5hZGVzYy0+Y2FsbGJhY2tf cGFyYW0gPSBuZXRkZXY7CiAJCWN0bC0+YWRlc2MtPmNhbGxiYWNrID0ga3M4ODQyX2RtYV9yeF9j YjsKQEAgLTU4Niw3ICs1ODgsNyBAQCBzdGF0aWMgaW50IF9fa3M4ODQyX3N0YXJ0X25ld19yeF9k bWEoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAkJZ290byBvdXQ7CiAJfQogCi0JcmV0dXJu IGVycjsKKwlyZXR1cm4gMDsKIG91dDoKIAlpZiAoc2dfZG1hX2FkZHJlc3Moc2cpKQogCQlkbWFf dW5tYXBfc2luZ2xlKGFkYXB0ZXItPmRldiwgc2dfZG1hX2FkZHJlc3Moc2cpLApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FsZ2UvcWxnZV9tYWluLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9xbG9naWMvcWxnZS9xbGdlX21haW4uYwppbmRleCBjOTJhZmNkOTEyZTIu LjZjYTE0ODFkNzVlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3Fs Z2UvcWxnZV9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FsZ2UvcWxn ZV9tYWluLmMKQEAgLTE2MjIsNyArMTYyMiwxOCBAQCBzdGF0aWMgdm9pZCBxbF9wcm9jZXNzX21h Y19yeF9za2Ioc3RydWN0IHFsX2FkYXB0ZXIgKnFkZXYsCiAJCXJldHVybjsKIAl9CiAJc2tiX3Jl c2VydmUobmV3X3NrYiwgTkVUX0lQX0FMSUdOKTsKKworCXBjaV9kbWFfc3luY19zaW5nbGVfZm9y X2NwdShxZGV2LT5wZGV2LAorCQkJCSAgICBkbWFfdW5tYXBfYWRkcihzYnFfZGVzYywgbWFwYWRk ciksCisJCQkJICAgIGRtYV91bm1hcF9sZW4oc2JxX2Rlc2MsIG1hcGxlbiksCisJCQkJICAgIFBD SV9ETUFfRlJPTURFVklDRSk7CisKIAltZW1jcHkoc2tiX3B1dChuZXdfc2tiLCBsZW5ndGgpLCBz a2ItPmRhdGEsIGxlbmd0aCk7CisKKwlwY2lfZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UocWRl di0+cGRldiwKKwkJCQkgICAgICAgZG1hX3VubWFwX2FkZHIoc2JxX2Rlc2MsIG1hcGFkZHIpLAor CQkJCSAgICAgICBkbWFfdW5tYXBfbGVuKHNicV9kZXNjLCBtYXBsZW4pLAorCQkJCSAgICAgICBQ Q0lfRE1BX0ZST01ERVZJQ0UpOwogCXNrYiA9IG5ld19za2I7CiAKIAkvKiBGcmFtZSBlcnJvciwg c28gZHJvcCB0aGUgcGFja2V0LiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv cmVuZXNhcy9zaF9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvc2hfZXRoLmMK aW5kZXggOTg0MmZkOTJjNDgzLi44NTE3MGYxMDU1NjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3JlbmVzYXMvc2hfZXRoLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVu ZXNhcy9zaF9ldGguYwpAQCAtNjgxLDcgKzY4MSw4IEBAIHN0YXRpYyB2b2lkIHNoX2V0aF9yaW5n X2Zvcm1hdChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikKIAltZHAtPmRpcnR5X3J4ID0gKHUzMikg KGkgLSBSWF9SSU5HX1NJWkUpOwogCiAJLyogTWFyayB0aGUgbGFzdCBlbnRyeSBhcyB3cmFwcGlu ZyB0aGUgcmluZy4gKi8KLQlyeGRlc2MtPnN0YXR1cyB8PSBjcHVfdG9fZWRtYWMobWRwLCBSRF9S REVMKTsKKwlpZiAocnhkZXNjKQorCQlyeGRlc2MtPnN0YXR1cyB8PSBjcHVfdG9fZWRtYWMobWRw LCBSRF9SREVMKTsKIAogCW1lbXNldChtZHAtPnR4X3JpbmcsIDAsIHR4X3JpbmdzaXplKTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXJkYS9pcnR0eS1zaXIuYyBiL2RyaXZlcnMvbmV0L2ly ZGEvaXJ0dHktc2lyLmMKaW5kZXggMzM1MmIyNDQzZTU4Li45YjQwY2QyMGVkYzYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2lyZGEvaXJ0dHktc2lyLmMKKysrIGIvZHJpdmVycy9uZXQvaXJkYS9p cnR0eS1zaXIuYwpAQCAtNDMwLDE2ICs0MzAsNiBAQCBzdGF0aWMgaW50IGlydHR5X29wZW4oc3Ry dWN0IHR0eV9zdHJ1Y3QgKnR0eSkKIAogCS8qIE1vZHVsZSBzdHVmZiBoYW5kbGVkIHZpYSBpcmRh X2xkaXNjLm93bmVyIC0gSmVhbiBJSSAqLwogCi0JLyogRmlyc3QgbWFrZSBzdXJlIHdlJ3JlIG5v dCBhbHJlYWR5IGNvbm5lY3RlZC4gKi8KLQlpZiAodHR5LT5kaXNjX2RhdGEgIT0gTlVMTCkgewot CQlwcml2ID0gdHR5LT5kaXNjX2RhdGE7Ci0JCWlmIChwcml2ICYmIHByaXYtPm1hZ2ljID09IElS VFRZX01BR0lDKSB7Ci0JCQlyZXQgPSAtRUVYSVNUOwotCQkJZ290byBvdXQ7Ci0JCX0KLQkJdHR5 LT5kaXNjX2RhdGEgPSBOVUxMOwkJLyogIyMjICovCi0JfQotCiAJLyogc3RvcCB0aGUgdW5kZXJs eWluZyAgZHJpdmVyICovCiAJaXJ0dHlfc3RvcF9yZWNlaXZlcih0dHksIFRSVUUpOwogCWlmICh0 dHktPm9wcy0+c3RvcCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY3Z0YXAuYyBiL2RyaXZl cnMvbmV0L21hY3Z0YXAuYwppbmRleCA3MzAwNDQ3ZWI0YzcuLjJmY2RlZGVmY2U0MiAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvbWFjdnRhcC5jCisrKyBiL2RyaXZlcnMvbmV0L21hY3Z0YXAuYwpA QCAtNzIwLDYgKzcyMCw4IEBAIHN0YXRpYyBzc2l6ZV90IG1hY3Z0YXBfZ2V0X3VzZXIoc3RydWN0 IG1hY3Z0YXBfcXVldWUgKnEsIHN0cnVjdCBtc2doZHIgKm0sCiAJCWNvcHlsZW4gPSB2bmV0X2hk ci5oZHJfbGVuID8gdm5ldF9oZHIuaGRyX2xlbiA6IEdPT0RDT1BZX0xFTjsKIAkJaWYgKGNvcHls ZW4gPiBnb29kX2xpbmVhcikKIAkJCWNvcHlsZW4gPSBnb29kX2xpbmVhcjsKKwkJZWxzZSBpZiAo Y29weWxlbiA8IEVUSF9ITEVOKQorCQkJY29weWxlbiA9IEVUSF9ITEVOOwogCQlsaW5lYXIgPSBj b3B5bGVuOwogCQlpZiAoaW92X3BhZ2VzKGl2LCB2bmV0X2hkcl9sZW4gKyBjb3B5bGVuLCBjb3Vu dCkKIAkJICAgIDw9IE1BWF9TS0JfRlJBR1MpCkBAIC03MjgsMTAgKzczMCwxMSBAQCBzdGF0aWMg c3NpemVfdCBtYWN2dGFwX2dldF91c2VyKHN0cnVjdCBtYWN2dGFwX3F1ZXVlICpxLCBzdHJ1Y3Qg bXNnaGRyICptLAogCiAJaWYgKCF6ZXJvY29weSkgewogCQljb3B5bGVuID0gbGVuOwotCQlpZiAo dm5ldF9oZHIuaGRyX2xlbiA+IGdvb2RfbGluZWFyKQorCQlsaW5lYXIgPSB2bmV0X2hkci5oZHJf bGVuOworCQlpZiAobGluZWFyID4gZ29vZF9saW5lYXIpCiAJCQlsaW5lYXIgPSBnb29kX2xpbmVh cjsKLQkJZWxzZQotCQkJbGluZWFyID0gdm5ldF9oZHIuaGRyX2xlbjsKKwkJZWxzZSBpZiAobGlu ZWFyIDwgRVRIX0hMRU4pCisJCQlsaW5lYXIgPSBFVEhfSExFTjsKIAl9CiAKIAlza2IgPSBtYWN2 dGFwX2FsbG9jX3NrYigmcS0+c2ssIE1BQ1ZUQVBfUkVTRVJWRSwgY29weWxlbiwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMgYi9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5j CmluZGV4IGJiMzM1YWI5OTgxYy4uMmEwMTc4ZGI3ZWNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9waHkvZHA4MzY0MC5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKQEAgLTY4MCw2 ICs2ODAsMTEgQEAgc3RhdGljIHZvaWQgZGVjb2RlX3J4dHMoc3RydWN0IGRwODM2NDBfcHJpdmF0 ZSAqZHA4MzY0MCwKIHsKIAlzdHJ1Y3Qgcnh0cyAqcnh0czsKIAl1bnNpZ25lZCBsb25nIGZsYWdz OworCXU4IG92ZXJmbG93OworCisJb3ZlcmZsb3cgPSAocGh5X3J4dHMtPm5zX2hpID4+IDE0KSAm IDB4MzsKKwlpZiAob3ZlcmZsb3cpCisJCXByX2RlYnVnKCJyeCB0aW1lc3RhbXAgcXVldWUgb3Zl cmZsb3csIGNvdW50ICVkXG4iLCBvdmVyZmxvdyk7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZHA4 MzY0MC0+cnhfbG9jaywgZmxhZ3MpOwogCkBAIC03MDMsNiArNzA4LDcgQEAgc3RhdGljIHZvaWQg ZGVjb2RlX3R4dHMoc3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCwKIAlzdHJ1Y3Qgc2ti X3NoYXJlZF9od3RzdGFtcHMgc2hod3RzdGFtcHM7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsKIAl1 NjQgbnM7CisJdTggb3ZlcmZsb3c7CiAKIAkvKiBXZSBtdXN0IGFscmVhZHkgaGF2ZSB0aGUgc2ti IHRoYXQgdHJpZ2dlcmVkIHRoaXMuICovCiAKQEAgLTcxMiw2ICs3MTgsMTcgQEAgc3RhdGljIHZv aWQgZGVjb2RlX3R4dHMoc3RydWN0IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCwKIAkJcHJfZGVi dWcoImRwODM2NDA6IGhhdmUgdGltZXN0YW1wIGJ1dCB0eF9xdWV1ZSBlbXB0eVxuIik7CiAJCXJl dHVybjsKIAl9CisKKwlvdmVyZmxvdyA9IChwaHlfdHh0cy0+bnNfaGkgPj4gMTQpICYgMHgzOwor CWlmIChvdmVyZmxvdykgeworCQlwcl9kZWJ1ZygidHggdGltZXN0YW1wIHF1ZXVlIG92ZXJmbG93 LCBjb3VudCAlZFxuIiwgb3ZlcmZsb3cpOworCQl3aGlsZSAoc2tiKSB7CisJCQlza2JfY29tcGxl dGVfdHhfdGltZXN0YW1wKHNrYiwgTlVMTCk7CisJCQlza2IgPSBza2JfZGVxdWV1ZSgmZHA4MzY0 MC0+dHhfcXVldWUpOworCQl9CisJCXJldHVybjsKKwl9CisKIAlucyA9IHBoeTJ0eHRzKHBoeV90 eHRzKTsKIAltZW1zZXQoJnNoaHd0c3RhbXBzLCAwLCBzaXplb2Yoc2hod3RzdGFtcHMpKTsKIAlz aGh3dHN0YW1wcy5od3RzdGFtcCA9IG5zX3RvX2t0aW1lKG5zKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMK aW5kZXggODJkNDQyMTViYjMzLi45OTA3YWM3OGFlZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L3BwcC9wcHBfZ2VuZXJpYy5jCisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jCkBA IC01NTUsNyArNTU1LDcgQEAgc3RhdGljIGludCBnZXRfZmlsdGVyKHZvaWQgX191c2VyICphcmcs IHN0cnVjdCBzb2NrX2ZpbHRlciAqKnApCiAKIHN0YXRpYyBsb25nIHBwcF9pb2N0bChzdHJ1Y3Qg ZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiB7Ci0Jc3Ry dWN0IHBwcF9maWxlICpwZiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgcHBwX2ZpbGUg KnBmOwogCXN0cnVjdCBwcHAgKnBwcDsKIAlpbnQgZXJyID0gLUVGQVVMVCwgdmFsLCB2YWwyLCBp OwogCXN0cnVjdCBwcHBfaWRsZSBpZGxlOwpAQCAtNTY1LDkgKzU2NSwxNCBAQCBzdGF0aWMgbG9u ZyBwcHBfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVk IGxvbmcgYXJnKQogCXZvaWQgX191c2VyICphcmdwID0gKHZvaWQgX191c2VyICopYXJnOwogCWlu dCBfX3VzZXIgKnAgPSBhcmdwOwogCi0JaWYgKCFwZikKLQkJcmV0dXJuIHBwcF91bmF0dGFjaGVk X2lvY3RsKGN1cnJlbnQtPm5zcHJveHktPm5ldF9ucywKLQkJCQkJcGYsIGZpbGUsIGNtZCwgYXJn KTsKKwltdXRleF9sb2NrKCZwcHBfbXV0ZXgpOworCisJcGYgPSBmaWxlLT5wcml2YXRlX2RhdGE7 CisJaWYgKCFwZikgeworCQllcnIgPSBwcHBfdW5hdHRhY2hlZF9pb2N0bChjdXJyZW50LT5uc3By b3h5LT5uZXRfbnMsCisJCQkJCSAgIHBmLCBmaWxlLCBjbWQsIGFyZyk7CisJCWdvdG8gb3V0Owor CX0KIAogCWlmIChjbWQgPT0gUFBQSU9DREVUQUNIKSB7CiAJCS8qCkBAIC01ODIsNyArNTg3LDYg QEAgc3RhdGljIGxvbmcgcHBwX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQg Y21kLCB1bnNpZ25lZCBsb25nIGFyZykKIAkJICogdGhpcyBmZCBhbmQgcmVvcGVuaW5nIC9kZXYv cHBwLgogCQkgKi8KIAkJZXJyID0gLUVJTlZBTDsKLQkJbXV0ZXhfbG9jaygmcHBwX211dGV4KTsK IAkJaWYgKHBmLT5raW5kID09IElOVEVSRkFDRSkgewogCQkJcHBwID0gUEZfVE9fUFBQKHBmKTsK IAkJCWlmIChmaWxlID09IHBwcC0+b3duZXIpCkBAIC01OTQsMTUgKzU5OCwxMyBAQCBzdGF0aWMg bG9uZyBwcHBfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln bmVkIGxvbmcgYXJnKQogCQl9IGVsc2UKIAkJCXByX3dhcm4oIlBQUElPQ0RFVEFDSCBmaWxlLT5m X2NvdW50PSVsZFxuIiwKIAkJCQlhdG9taWNfbG9uZ19yZWFkKCZmaWxlLT5mX2NvdW50KSk7Ci0J CW11dGV4X3VubG9jaygmcHBwX211dGV4KTsKLQkJcmV0dXJuIGVycjsKKwkJZ290byBvdXQ7CiAJ fQogCiAJaWYgKHBmLT5raW5kID09IENIQU5ORUwpIHsKIAkJc3RydWN0IGNoYW5uZWwgKnBjaDsK IAkJc3RydWN0IHBwcF9jaGFubmVsICpjaGFuOwogCi0JCW11dGV4X2xvY2soJnBwcF9tdXRleCk7 CiAJCXBjaCA9IFBGX1RPX0NIQU5ORUwocGYpOwogCiAJCXN3aXRjaCAoY21kKSB7CkBAIC02MjQs MTcgKzYyNiwxNiBAQCBzdGF0aWMgbG9uZyBwcHBfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVu c2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQkJCWVyciA9IGNoYW4tPm9wcy0+ aW9jdGwoY2hhbiwgY21kLCBhcmcpOwogCQkJdXBfcmVhZCgmcGNoLT5jaGFuX3NlbSk7CiAJCX0K LQkJbXV0ZXhfdW5sb2NrKCZwcHBfbXV0ZXgpOwotCQlyZXR1cm4gZXJyOworCQlnb3RvIG91dDsK IAl9CiAKIAlpZiAocGYtPmtpbmQgIT0gSU5URVJGQUNFKSB7CiAJCS8qIGNhbid0IGhhcHBlbiAq LwogCQlwcl9lcnIoIlBQUDogbm90IGludGVyZmFjZSBvciBjaGFubmVsPz9cbiIpOwotCQlyZXR1 cm4gLUVJTlZBTDsKKwkJZXJyID0gLUVJTlZBTDsKKwkJZ290byBvdXQ7CiAJfQogCi0JbXV0ZXhf bG9jaygmcHBwX211dGV4KTsKIAlwcHAgPSBQRl9UT19QUFAocGYpOwogCXN3aXRjaCAoY21kKSB7 CiAJY2FzZSBQUFBJT0NTTVJVOgpAQCAtNzgxLDcgKzc4MiwxMCBAQCBzdGF0aWMgbG9uZyBwcHBf aW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcg YXJnKQogCWRlZmF1bHQ6CiAJCWVyciA9IC1FTk9UVFk7CiAJfQorCitvdXQ6CiAJbXV0ZXhfdW5s b2NrKCZwcHBfbXV0ZXgpOworCiAJcmV0dXJuIGVycjsKIH0KIApAQCAtNzk0LDcgKzc5OCw2IEBA IHN0YXRpYyBpbnQgcHBwX3VuYXR0YWNoZWRfaW9jdGwoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg cHBwX2ZpbGUgKnBmLAogCXN0cnVjdCBwcHBfbmV0ICpwbjsKIAlpbnQgX191c2VyICpwID0gKGlu dCBfX3VzZXIgKilhcmc7CiAKLQltdXRleF9sb2NrKCZwcHBfbXV0ZXgpOwogCXN3aXRjaCAoY21k KSB7CiAJY2FzZSBQUFBJT0NORVdVTklUOgogCQkvKiBDcmVhdGUgYSBuZXcgcHBwIHVuaXQgKi8K QEAgLTg0NSw3ICs4NDgsNyBAQCBzdGF0aWMgaW50IHBwcF91bmF0dGFjaGVkX2lvY3RsKHN0cnVj dCBuZXQgKm5ldCwgc3RydWN0IHBwcF9maWxlICpwZiwKIAlkZWZhdWx0OgogCQllcnIgPSAtRU5P VFRZOwogCX0KLQltdXRleF91bmxvY2soJnBwcF9tdXRleCk7CisKIAlyZXR1cm4gZXJyOwogfQog CkBAIC0yMTc1LDcgKzIxNzgsNyBAQCBpbnQgcHBwX3JlZ2lzdGVyX25ldF9jaGFubmVsKHN0cnVj dCBuZXQgKm5ldCwgc3RydWN0IHBwcF9jaGFubmVsICpjaGFuKQogCiAJcGNoLT5wcHAgPSBOVUxM OwogCXBjaC0+Y2hhbiA9IGNoYW47Ci0JcGNoLT5jaGFuX25ldCA9IG5ldDsKKwlwY2gtPmNoYW5f bmV0ID0gZ2V0X25ldChuZXQpOwogCWNoYW4tPnBwcCA9IHBjaDsKIAlpbml0X3BwcF9maWxlKCZw Y2gtPmZpbGUsIENIQU5ORUwpOwogCXBjaC0+ZmlsZS5oZHJsZW4gPSBjaGFuLT5oZHJsZW47CkBA IC0yMjcyLDYgKzIyNzUsOCBAQCBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsKHN0cnVjdCBwcHBfY2hh bm5lbCAqY2hhbikKIAlzcGluX2xvY2tfYmgoJnBuLT5hbGxfY2hhbm5lbHNfbG9jayk7CiAJbGlz dF9kZWwoJnBjaC0+bGlzdCk7CiAJc3Bpbl91bmxvY2tfYmgoJnBuLT5hbGxfY2hhbm5lbHNfbG9j ayk7CisJcHV0X25ldChwY2gtPmNoYW5fbmV0KTsKKwlwY2gtPmNoYW5fbmV0ID0gTlVMTDsKIAog CXBjaC0+ZmlsZS5kZWFkID0gMTsKIAl3YWtlX3VwX2ludGVycnVwdGlibGUoJnBjaC0+ZmlsZS5y d2FpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYyBiL2RyaXZlcnMvbmV0 L3BwcC9wcHBvZS5jCmluZGV4IDBmNGEwNGQzNWU5Zi4uMjM5ZTZlNzE3ODFjIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYworKysgYi9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYwpA QCAtMzk4LDYgKzM5OCw4IEBAIHN0YXRpYyBpbnQgcHBwb2VfcmN2X2NvcmUoc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAJCWlmICghX19wcHBvZV94bWl0KHNrX3BwcG94 KHJlbGF5X3BvKSwgc2tiKSkKIAkJCWdvdG8gYWJvcnRfcHV0OworCisJCXNvY2tfcHV0KHNrX3Bw cG94KHJlbGF5X3BvKSk7CiAJfSBlbHNlIHsKIAkJaWYgKHNvY2tfcXVldWVfcmN2X3NrYihzaywg c2tiKSkKIAkJCWdvdG8gYWJvcnRfa2ZyZWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9yaW9u ZXQuYyBiL2RyaXZlcnMvbmV0L3Jpb25ldC5jCmluZGV4IGMwZjA5N2IxOTQwMy4uNjZjZDRjZTAy MzEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9yaW9uZXQuYworKysgYi9kcml2ZXJzL25ldC9y aW9uZXQuYwpAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyB2b2lkIHJpb25ldF9vdXRiX21zZ19l dmVudChzdHJ1Y3QgcmlvX21wb3J0ICptcG9ydCwgdm9pZCAqZGV2X2lkLCBpbnQgbWJvCiAJc3Ry dWN0IG5ldF9kZXZpY2UgKm5kZXYgPSBkZXZfaWQ7CiAJc3RydWN0IHJpb25ldF9wcml2YXRlICpy bmV0ID0gbmV0ZGV2X3ByaXYobmRldik7CiAKLQlzcGluX2xvY2soJnJuZXQtPmxvY2spOworCXNw aW5fbG9jaygmcm5ldC0+dHhfbG9jayk7CiAKIAlpZiAobmV0aWZfbXNnX2ludHIocm5ldCkpCiAJ CXByaW50ayhLRVJOX0lORk8KQEAgLTI4OCw3ICsyODgsNyBAQCBzdGF0aWMgdm9pZCByaW9uZXRf b3V0Yl9tc2dfZXZlbnQoc3RydWN0IHJpb19tcG9ydCAqbXBvcnQsIHZvaWQgKmRldl9pZCwgaW50 IG1ibwogCWlmIChybmV0LT50eF9jbnQgPCBSSU9ORVRfVFhfUklOR19TSVpFKQogCQluZXRpZl93 YWtlX3F1ZXVlKG5kZXYpOwogCi0Jc3Bpbl91bmxvY2soJnJuZXQtPmxvY2spOworCXNwaW5fdW5s b2NrKCZybmV0LT50eF9sb2NrKTsKIH0KIAogc3RhdGljIGludCByaW9uZXRfb3BlbihzdHJ1Y3Qg bmV0X2RldmljZSAqbmRldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9jZGNfbmNtLmMg Yi9kcml2ZXJzL25ldC91c2IvY2RjX25jbS5jCmluZGV4IGYwNmZiNzgzODNhMS4uNTYxNjBjYmQ1 NTEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvY2RjX25jbS5jCisrKyBiL2RyaXZlcnMv bmV0L3VzYi9jZGNfbmNtLmMKQEAgLTU1MCw3ICs1NTAsMTEgQEAgYWR2YW5jZToKIAogCWlmYWNl X25vID0gY3R4LT5kYXRhLT5jdXJfYWx0c2V0dGluZy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyOwog Ci0JLyogcmVzZXQgZGF0YSBpbnRlcmZhY2UgKi8KKwkvKiBSZXNldCBkYXRhIGludGVyZmFjZS4g U29tZSBkZXZpY2VzIHdpbGwgbm90IHJlc2V0IHByb3Blcmx5CisJICogdW5sZXNzIHRoZXkgYXJl IGNvbmZpZ3VyZWQgZmlyc3QuICBUb2dnbGUgdGhlIGFsdHNldHRpbmcgdG8KKwkgKiBmb3JjZSBh IHJlc2V0CisJICovCisJdXNiX3NldF9pbnRlcmZhY2UoZGV2LT51ZGV2LCBpZmFjZV9ubywgMSk7 CiAJdGVtcCA9IHVzYl9zZXRfaW50ZXJmYWNlKGRldi0+dWRldiwgaWZhY2Vfbm8sIDApOwogCWlm ICh0ZW1wKQogCQlnb3RvIGVycm9yMjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi91c2Ju ZXQuYyBiL2RyaXZlcnMvbmV0L3VzYi91c2JuZXQuYwppbmRleCAzZDIxNzQyMWMwMTYuLjhhNjM5 OGJkZDIxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL3VzYm5ldC5jCisrKyBiL2RyaXZl cnMvbmV0L3VzYi91c2JuZXQuYwpAQCAtMTQ4Niw2ICsxNDg2LDEzIEBAIG91dDM6CiAJaWYgKGlu Zm8tPnVuYmluZCkKIAkJaW5mby0+dW5iaW5kIChkZXYsIHVkZXYpOwogb3V0MToKKwkvKiBzdWJk cml2ZXJzIG11c3QgdW5kbyBhbGwgdGhleSBkaWQgaW4gYmluZCgpIGlmIHRoZXkKKwkgKiBmYWls IGl0LCBidXQgd2UgbWF5IGZhaWwgbGF0ZXIgYW5kIGEgZGVmZXJyZWQga2V2ZW50CisJICogbWF5 IHRyaWdnZXIgYW4gZXJyb3IgcmVzdWJtaXR0aW5nIGl0c2VsZiBhbmQsIHdvcnNlLAorCSAqIHNj aGVkdWxlIGEgdGltZXIuIFNvIHdlIGtpbGwgaXQgYWxsIGp1c3QgaW4gY2FzZS4KKwkgKi8KKwlj YW5jZWxfd29ya19zeW5jKCZkZXYtPmtldmVudCk7CisJZGVsX3RpbWVyX3N5bmMoJmRldi0+ZGVs YXkpOwogCWZyZWVfbmV0ZGV2KG5ldCk7CiBvdXQ6CiAJdXNiX3B1dF9kZXYoeGRldik7CmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC92ZXRoLmMgYi9kcml2ZXJzL25ldC92ZXRoLmMKaW5kZXggYjkw NzM5ODMxNDMwLi41YTkzMmNkMjFlM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZldGguYwor KysgYi9kcml2ZXJzL25ldC92ZXRoLmMKQEAgLTEyNiwxMSArMTI2LDYgQEAgc3RhdGljIG5ldGRl dl90eF90IHZldGhfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogCXN0YXRzID0gdGhpc19jcHVfcHRyKHByaXYtPnN0YXRzKTsKIAlyY3Zfc3RhdHMgPSB0 aGlzX2NwdV9wdHIocmN2X3ByaXYtPnN0YXRzKTsKIAotCS8qIGRvbid0IGNoYW5nZSBpcF9zdW1t ZWQgPT0gQ0hFQ0tTVU1fUEFSVElBTCwgYXMgdGhhdAotCSAgIHdpbGwgY2F1c2UgYmFkIGNoZWNr c3VtIG9uIGZvcndhcmRlZCBwYWNrZXRzICovCi0JaWYgKHNrYi0+aXBfc3VtbWVkID09IENIRUNL U1VNX05PTkUgJiYKLQkgICAgcmN2LT5mZWF0dXJlcyAmIE5FVElGX0ZfUlhDU1VNKQotCQlza2It PmlwX3N1bW1lZCA9IENIRUNLU1VNX1VOTkVDRVNTQVJZOwogCiAJbGVuZ3RoID0gc2tiLT5sZW47 CiAJaWYgKGRldl9mb3J3YXJkX3NrYihyY3YsIHNrYikgIT0gTkVUX1JYX1NVQ0NFU1MpCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC93YW4vZmFyc3luYy5jIGIvZHJpdmVycy9uZXQvd2FuL2ZhcnN5 bmMuYwppbmRleCA3YTRjNDkxNDUwMzQuLjdkM2ZkOTMyYWRkNyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvd2FuL2ZhcnN5bmMuYworKysgYi9kcml2ZXJzL25ldC93YW4vZmFyc3luYy5jCkBAIC0y NTQ2LDcgKzI1NDYsNyBAQCBmc3RfYWRkX29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qg c3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKICAgICAgICAgICAgICAgICBkZXYtPm1lbV9zdGFy dCAgID0gY2FyZC0+cGh5c19tZW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsg QlVGX09GRlNFVCAoIHR4QnVmZmVyW2ldWzBdWzBdKTsKICAgICAgICAgICAgICAgICBkZXYtPm1l bV9lbmQgICAgID0gY2FyZC0+cGh5c19tZW0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsgQlVGX09GRlNFVCAoIHR4QnVmZmVyW2ldW05VTV9UWF9CVUZGRVJdWzBdKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgQlVGX09GRlNFVCAoIHR4QnVmZmVyW2ldW05V TV9UWF9CVUZGRVIgLSAxXVtMRU5fUlhfQlVGRkVSIC0gMV0pOwogICAgICAgICAgICAgICAgIGRl di0+YmFzZV9hZGRyICAgPSBjYXJkLT5wY2lfY29uZjsKICAgICAgICAgICAgICAgICBkZXYtPmly cSAgICAgICAgID0gY2FyZC0+aXJxOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoOWsvZWVwcm9tLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvZWVw cm9tLmMKaW5kZXggZTQ2Zjc1MWFiNTA4Li5iNjJmMDhjZjViOGMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9lZXByb20uYworKysgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoOWsvZWVwcm9tLmMKQEAgLTM2NCwxMCArMzY0LDkgQEAgdm9pZCBhdGg5a19o d19nZXRfZ2Fpbl9ib3VuZGFyaWVzX3BkYWRjcyhzdHJ1Y3QgYXRoX2h3ICphaCwKIAogCWlmICht YXRjaCkgewogCQlpZiAoQVJfU1JFVl85Mjg3KGFoKSkgewotCQkJLyogRklYTUU6IGFycmF5IG92 ZXJydW4/ICovCiAJCQlmb3IgKGkgPSAwOyBpIDwgbnVtWHBkR2FpbnM7IGkrKykgewogCQkJCW1p blB3clQ0W2ldID0gZGF0YV85Mjg3W2lkeExdLnB3clBkZ1tpXVswXTsKLQkJCQltYXhQd3JUNFtp XSA9IGRhdGFfOTI4N1tpZHhMXS5wd3JQZGdbaV1bNF07CisJCQkJbWF4UHdyVDRbaV0gPSBkYXRh XzkyODdbaWR4TF0ucHdyUGRnW2ldW2ludGVyY2VwdHMgLSAxXTsKIAkJCQlhdGg5a19od19maWxs X3ZwZF90YWJsZShtaW5Qd3JUNFtpXSwgbWF4UHdyVDRbaV0sCiAJCQkJCQlkYXRhXzkyODdbaWR4 TF0ucHdyUGRnW2ldLAogCQkJCQkJZGF0YV85Mjg3W2lkeExdLnZwZFBkZ1tpXSwKQEAgLTM3Nyw3 ICszNzYsNyBAQCB2b2lkIGF0aDlrX2h3X2dldF9nYWluX2JvdW5kYXJpZXNfcGRhZGNzKHN0cnVj dCBhdGhfaHcgKmFoLAogCQl9IGVsc2UgaWYgKGVlcHJvbV80aykgewogCQkJZm9yIChpID0gMDsg aSA8IG51bVhwZEdhaW5zOyBpKyspIHsKIAkJCQltaW5Qd3JUNFtpXSA9IGRhdGFfNGtbaWR4TF0u cHdyUGRnW2ldWzBdOwotCQkJCW1heFB3clQ0W2ldID0gZGF0YV80a1tpZHhMXS5wd3JQZGdbaV1b NF07CisJCQkJbWF4UHdyVDRbaV0gPSBkYXRhXzRrW2lkeExdLnB3clBkZ1tpXVtpbnRlcmNlcHRz IC0gMV07CiAJCQkJYXRoOWtfaHdfZmlsbF92cGRfdGFibGUobWluUHdyVDRbaV0sIG1heFB3clQ0 W2ldLAogCQkJCQkJZGF0YV80a1tpZHhMXS5wd3JQZGdbaV0sCiAJCQkJCQlkYXRhXzRrW2lkeExd LnZwZFBkZ1tpXSwKQEAgLTM4Nyw3ICszODYsNyBAQCB2b2lkIGF0aDlrX2h3X2dldF9nYWluX2Jv dW5kYXJpZXNfcGRhZGNzKHN0cnVjdCBhdGhfaHcgKmFoLAogCQl9IGVsc2UgewogCQkJZm9yIChp ID0gMDsgaSA8IG51bVhwZEdhaW5zOyBpKyspIHsKIAkJCQltaW5Qd3JUNFtpXSA9IGRhdGFfZGVm W2lkeExdLnB3clBkZ1tpXVswXTsKLQkJCQltYXhQd3JUNFtpXSA9IGRhdGFfZGVmW2lkeExdLnB3 clBkZ1tpXVs0XTsKKwkJCQltYXhQd3JUNFtpXSA9IGRhdGFfZGVmW2lkeExdLnB3clBkZ1tpXVtp bnRlcmNlcHRzIC0gMV07CiAJCQkJYXRoOWtfaHdfZmlsbF92cGRfdGFibGUobWluUHdyVDRbaV0s IG1heFB3clQ0W2ldLAogCQkJCQkJZGF0YV9kZWZbaWR4TF0ucHdyUGRnW2ldLAogCQkJCQkJZGF0 YV9kZWZbaWR4TF0udnBkUGRnW2ldLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcHJvYmUuYyBi L2RyaXZlcnMvcGNpL3Byb2JlLmMKaW5kZXggYmM5MmM0NzcxZTU3Li5mYmYzYmUxNzIzOWQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3Byb2JlLmMKKysrIGIvZHJpdmVycy9wY2kvcHJvYmUuYwpA QCAtMTM2LDYgKzEzNiw5IEBAIGludCBfX3BjaV9yZWFkX2Jhc2Uoc3RydWN0IHBjaV9kZXYgKmRl diwgZW51bSBwY2lfYmFyX3R5cGUgdHlwZSwKIAl1MzIgbCwgc3osIG1hc2s7CiAJdTE2IG9yaWdf Y21kOwogCisJaWYgKGRldi0+bm9uX2NvbXBsaWFudF9iYXJzKQorCQlyZXR1cm4gMDsKKwogCW1h c2sgPSB0eXBlID8gUENJX1JPTV9BRERSRVNTX01BU0sgOiB+MDsKIAogCWlmICghZGV2LT5tbWlv X2Fsd2F5c19vbikgewpAQCAtOTAyLDYgKzkwNSw3IEBAIHZvaWQgc2V0X3BjaWVfaG90cGx1Z19i cmlkZ2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiBpbnQgcGNpX3NldHVwX2RldmljZShzdHJ1Y3Qg cGNpX2RldiAqZGV2KQogewogCXUzMiBjbGFzczsKKwl1MTYgY21kOwogCXU4IGhkcl90eXBlOwog CXN0cnVjdCBwY2lfc2xvdCAqc2xvdDsKIAlpbnQgcG9zID0gMDsKQEAgLTk0OSw2ICs5NTMsMTYg QEAgaW50IHBjaV9zZXR1cF9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldikKIAkvKiBkZXZpY2Ug Y2xhc3MgbWF5IGJlIGNoYW5nZWQgYWZ0ZXIgZml4dXAgKi8KIAljbGFzcyA9IGRldi0+Y2xhc3Mg Pj4gODsKIAorCWlmIChkZXYtPm5vbl9jb21wbGlhbnRfYmFycykgeworCQlwY2lfcmVhZF9jb25m aWdfd29yZChkZXYsIFBDSV9DT01NQU5ELCAmY21kKTsKKwkJaWYgKGNtZCAmIChQQ0lfQ09NTUFO RF9JTyB8IFBDSV9DT01NQU5EX01FTU9SWSkpIHsKKwkJCWRldl9pbmZvKCZkZXYtPmRldiwgImRl dmljZSBoYXMgbm9uLWNvbXBsaWFudCBCQVJzOyBkaXNhYmxpbmcgSU8vTUVNIGRlY29kaW5nXG4i KTsKKwkJCWNtZCAmPSB+UENJX0NPTU1BTkRfSU87CisJCQljbWQgJj0gflBDSV9DT01NQU5EX01F TU9SWTsKKwkJCXBjaV93cml0ZV9jb25maWdfd29yZChkZXYsIFBDSV9DT01NQU5ELCBjbWQpOwor CQl9CisJfQorCiAJc3dpdGNoIChkZXYtPmhkcl90eXBlKSB7CQkgICAgLyogaGVhZGVyIHR5cGUg Ki8KIAljYXNlIFBDSV9IRUFERVJfVFlQRV9OT1JNQUw6CQkgICAgLyogc3RhbmRhcmQgaGVhZGVy ICovCiAJCWlmIChjbGFzcyA9PSBQQ0lfQ0xBU1NfQlJJREdFX1BDSSkKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcnRjL3J0Yy12cjQxeHguYyBiL2RyaXZlcnMvcnRjL3J0Yy12cjQxeHguYwppbmRleCBj NTY5OGNkYTM2NmEuLjI3ZGEwNzc4YjU4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXZy NDF4eC5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy12cjQxeHguYwpAQCAtMjcyLDEyICsyNzIsMTMg QEAgc3RhdGljIGlycXJldHVybl90IHJ0Y2xvbmcxX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpk ZXZfaWQpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRjX2NsYXNzX29wcyB2cjQxeHhfcnRj X29wcyA9IHsKLQkucmVsZWFzZQk9IHZyNDF4eF9ydGNfcmVsZWFzZSwKLQkuaW9jdGwJCT0gdnI0 MXh4X3J0Y19pb2N0bCwKLQkucmVhZF90aW1lCT0gdnI0MXh4X3J0Y19yZWFkX3RpbWUsCi0JLnNl dF90aW1lCT0gdnI0MXh4X3J0Y19zZXRfdGltZSwKLQkucmVhZF9hbGFybQk9IHZyNDF4eF9ydGNf cmVhZF9hbGFybSwKLQkuc2V0X2FsYXJtCT0gdnI0MXh4X3J0Y19zZXRfYWxhcm0sCisJLnJlbGVh c2UJCT0gdnI0MXh4X3J0Y19yZWxlYXNlLAorCS5pb2N0bAkJCT0gdnI0MXh4X3J0Y19pb2N0bCwK KwkucmVhZF90aW1lCQk9IHZyNDF4eF9ydGNfcmVhZF90aW1lLAorCS5zZXRfdGltZQkJPSB2cjQx eHhfcnRjX3NldF90aW1lLAorCS5yZWFkX2FsYXJtCQk9IHZyNDF4eF9ydGNfcmVhZF9hbGFybSwK Kwkuc2V0X2FsYXJtCQk9IHZyNDF4eF9ydGNfc2V0X2FsYXJtLAorCS5hbGFybV9pcnFfZW5hYmxl CT0gdnI0MXh4X3J0Y19hbGFybV9pcnFfZW5hYmxlLAogfTsKIAogc3RhdGljIGludCBfX2Rldmlu aXQgcnRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCmRpZmYgLS1naXQgYS9k cml2ZXJzL3Njc2kvYWFjcmFpZC9jb21tc3VwLmMgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9jb21t c3VwLmMKaW5kZXggZTVmMmQ3ZDkwMDJlLi40M2U1OGMyY2MzNWMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvc2NzaS9hYWNyYWlkL2NvbW1zdXAuYworKysgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9jb21t c3VwLmMKQEAgLTgzLDkgKzgzLDEyIEBAIHN0YXRpYyBpbnQgZmliX21hcF9hbGxvYyhzdHJ1Y3Qg YWFjX2RldiAqZGV2KQogCiB2b2lkIGFhY19maWJfbWFwX2ZyZWUoc3RydWN0IGFhY19kZXYgKmRl dikKIHsKLQlwY2lfZnJlZV9jb25zaXN0ZW50KGRldi0+cGRldiwKLQkgIGRldi0+bWF4X2ZpYl9z aXplICogKGRldi0+c2NzaV9ob3N0X3B0ci0+Y2FuX3F1ZXVlICsgQUFDX05VTV9NR1RfRklCKSwK LQkgIGRldi0+aHdfZmliX3ZhLCBkZXYtPmh3X2ZpYl9wYSk7CisJaWYgKGRldi0+aHdfZmliX3Zh ICYmIGRldi0+bWF4X2ZpYl9zaXplKSB7CisJCXBjaV9mcmVlX2NvbnNpc3RlbnQoZGV2LT5wZGV2 LAorCQkoZGV2LT5tYXhfZmliX3NpemUgKgorCQkoZGV2LT5zY3NpX2hvc3RfcHRyLT5jYW5fcXVl dWUgKyBBQUNfTlVNX01HVF9GSUIpKSwKKwkJZGV2LT5od19maWJfdmEsIGRldi0+aHdfZmliX3Bh KTsKKwl9CiAJZGV2LT5od19maWJfdmEgPSBOVUxMOwogCWRldi0+aHdfZmliX3BhID0gMDsKIH0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9iZTJpc2NzaS9iZV9tYWluLmMgYi9kcml2ZXJzL3Nj c2kvYmUyaXNjc2kvYmVfbWFpbi5jCmluZGV4IGI5ZWU5ZjM3MDc4Mi4uNTFlNmZjMGQ2ZDllIDEw MDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYmUyaXNjc2kvYmVfbWFpbi5jCisrKyBiL2RyaXZlcnMv c2NzaS9iZTJpc2NzaS9iZV9tYWluLmMKQEAgLTM2MDcsNiArMzYwNyw3IEBAIHB1dF9zaG9zdDoK IAlzY3NpX2hvc3RfcHV0KHBoYmEtPnNob3N0KTsKIGZyZWVfa3NldDoKIAlpc2NzaV9ib290X2Rl c3Ryb3lfa3NldChwaGJhLT5ib290X2tzZXQpOworCXBoYmEtPmJvb3Rfa3NldCA9IE5VTEw7CiAJ cmV0dXJuIC1FTk9NRU07CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNf aW5pdC5jIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19pbml0LmMKaW5kZXggNTViYzRmYzczNzZm Li4xMmVlMzk4YTRkN2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfaW5pdC5j CisrKyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNfaW5pdC5jCkBAIC0yNTI2LDcgKzI1MjYsNyBA QCBscGZjX29ubGluZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJfQogCiAJdnBvcnRzID0gbHBm Y19jcmVhdGVfdnBvcnRfd29ya19hcnJheShwaGJhKTsKLQlpZiAodnBvcnRzICE9IE5VTEwpCisJ aWYgKHZwb3J0cyAhPSBOVUxMKSB7CiAJCWZvciAoaSA9IDA7IGkgPD0gcGhiYS0+bWF4X3Zwb3J0 cyAmJiB2cG9ydHNbaV0gIT0gTlVMTDsgaSsrKSB7CiAJCQlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9z dDsKIAkJCXNob3N0ID0gbHBmY19zaG9zdF9mcm9tX3Zwb3J0KHZwb3J0c1tpXSk7CkBAIC0yNTM4 LDcgKzI1MzgsOCBAQCBscGZjX29ubGluZShzdHJ1Y3QgbHBmY19oYmEgKnBoYmEpCiAJCQkJdnBv cnRzW2ldLT5mY19mbGFnIHw9IEZDX1ZQT1JUX05FRURTX0lOSVRfVlBJOwogCQkJc3Bpbl91bmxv Y2tfaXJxKHNob3N0LT5ob3N0X2xvY2spOwogCQl9Ci0JCWxwZmNfZGVzdHJveV92cG9ydF93b3Jr X2FycmF5KHBoYmEsIHZwb3J0cyk7CisJfQorCWxwZmNfZGVzdHJveV92cG9ydF93b3JrX2FycmF5 KHBoYmEsIHZwb3J0cyk7CiAKIAlscGZjX3VuYmxvY2tfbWdtdF9pbyhwaGJhKTsKIAlyZXR1cm4g MDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zZC5jIGIvZHJpdmVycy9zY3NpL3NkLmMKaW5k ZXggOWE0ZjUyZDhlMWRiLi42MTRmMmNkMjRiN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9z ZC5jCisrKyBiL2RyaXZlcnMvc2NzaS9zZC5jCkBAIC0xMDUxLDE4ICsxMDUxLDE5IEBAIHN0YXRp YyBpbnQgc2RfZ2V0Z2VvKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHN0cnVjdCBoZF9nZW9t ZXRyeSAqZ2VvKQogCXN0cnVjdCBzY3NpX2Rpc2sgKnNka3AgPSBzY3NpX2Rpc2soYmRldi0+YmRf ZGlzayk7CiAJc3RydWN0IHNjc2lfZGV2aWNlICpzZHAgPSBzZGtwLT5kZXZpY2U7CiAJc3RydWN0 IFNjc2lfSG9zdCAqaG9zdCA9IHNkcC0+aG9zdDsKKwlzZWN0b3JfdCBjYXBhY2l0eSA9IGxvZ2lj YWxfdG9fc2VjdG9ycyhzZHAsIHNka3AtPmNhcGFjaXR5KTsKIAlpbnQgZGlza2luZm9bNF07CiAK IAkvKiBkZWZhdWx0IHRvIG1vc3QgY29tbW9ubHkgdXNlZCB2YWx1ZXMgKi8KLSAgICAgICAgZGlz a2luZm9bMF0gPSAweDQwOwkvKiAxIDw8IDYgKi8KLSAgICAgICAJZGlza2luZm9bMV0gPSAweDIw OwkvKiAxIDw8IDUgKi8KLSAgICAgICAJZGlza2luZm9bMl0gPSBzZGtwLT5jYXBhY2l0eSA+PiAx MTsKLQkKKwlkaXNraW5mb1swXSA9IDB4NDA7CS8qIDEgPDwgNiAqLworCWRpc2tpbmZvWzFdID0g MHgyMDsJLyogMSA8PCA1ICovCisJZGlza2luZm9bMl0gPSBjYXBhY2l0eSA+PiAxMTsKKwogCS8q IG92ZXJyaWRlIHdpdGggY2FsY3VsYXRlZCwgZXh0ZW5kZWQgZGVmYXVsdCwgb3IgZHJpdmVyIHZh bHVlcyAqLwogCWlmIChob3N0LT5ob3N0dC0+Ymlvc19wYXJhbSkKLQkJaG9zdC0+aG9zdHQtPmJp b3NfcGFyYW0oc2RwLCBiZGV2LCBzZGtwLT5jYXBhY2l0eSwgZGlza2luZm8pOworCQlob3N0LT5o b3N0dC0+Ymlvc19wYXJhbShzZHAsIGJkZXYsIGNhcGFjaXR5LCBkaXNraW5mbyk7CiAJZWxzZQot CQlzY3NpY2FtX2Jpb3NfcGFyYW0oYmRldiwgc2RrcC0+Y2FwYWNpdHksIGRpc2tpbmZvKTsKKwkJ c2NzaWNhbV9iaW9zX3BhcmFtKGJkZXYsIGNhcGFjaXR5LCBkaXNraW5mbyk7CiAKIAlnZW8tPmhl YWRzID0gZGlza2luZm9bMF07CiAJZ2VvLT5zZWN0b3JzID0gZGlza2luZm9bMV07CkBAIC0xOTMx LDE0ICsxOTMyLDYgQEAgZ290X2RhdGE6CiAJCX0KIAl9CiAKLQkvKiBSZXNjYWxlIGNhcGFjaXR5 IHRvIDUxMi1ieXRlIHVuaXRzICovCi0JaWYgKHNlY3Rvcl9zaXplID09IDQwOTYpCi0JCXNka3At PmNhcGFjaXR5IDw8PSAzOwotCWVsc2UgaWYgKHNlY3Rvcl9zaXplID09IDIwNDgpCi0JCXNka3At PmNhcGFjaXR5IDw8PSAyOwotCWVsc2UgaWYgKHNlY3Rvcl9zaXplID09IDEwMjQpCi0JCXNka3At PmNhcGFjaXR5IDw8PSAxOwotCiAJYmxrX3F1ZXVlX3BoeXNpY2FsX2Jsb2NrX3NpemUoc2RwLT5y ZXF1ZXN0X3F1ZXVlLAogCQkJCSAgICAgIHNka3AtPnBoeXNpY2FsX2Jsb2NrX3NpemUpOwogCXNk a3AtPmRldmljZS0+c2VjdG9yX3NpemUgPSBzZWN0b3Jfc2l6ZTsKQEAgLTI0MTYsNyArMjQwOSw3 IEBAIHN0YXRpYyBpbnQgc2RfcmV2YWxpZGF0ZV9kaXNrKHN0cnVjdCBnZW5kaXNrICpkaXNrKQog CiAJYmxrX3F1ZXVlX2ZsdXNoKHNka3AtPmRpc2stPnF1ZXVlLCBmbHVzaCk7CiAKLQlzZXRfY2Fw YWNpdHkoZGlzaywgc2RrcC0+Y2FwYWNpdHkpOworCXNldF9jYXBhY2l0eShkaXNrLCBsb2dpY2Fs X3RvX3NlY3RvcnMoc2RwLCBzZGtwLT5jYXBhY2l0eSkpOwogCWtmcmVlKGJ1ZmZlcik7CiAKICBv dXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2QuaCBiL2RyaXZlcnMvc2NzaS9zZC5oCmlu ZGV4IGUzZTNjZDJkZmRhMC4uNWJmZjg4ZmU5MmE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kv c2QuaAorKysgYi9kcml2ZXJzL3Njc2kvc2QuaApAQCAtNTIsNyArNTIsNyBAQCBzdHJ1Y3Qgc2Nz aV9kaXNrIHsKIAlzdHJ1Y3QgZGV2aWNlCWRldjsKIAlzdHJ1Y3QgZ2VuZGlzawkqZGlzazsKIAlh dG9taWNfdAlvcGVuZXJzOwotCXNlY3Rvcl90CWNhcGFjaXR5OwkvKiBzaXplIGluIDUxMi1ieXRl IHNlY3RvcnMgKi8KKwlzZWN0b3JfdAljYXBhY2l0eTsJLyogc2l6ZSBpbiBsb2dpY2FsIGJsb2Nr cyAqLwogCXUzMgkJbWF4X3dzX2Jsb2NrczsKIAl1MzIJCW1heF91bm1hcF9ibG9ja3M7CiAJdTMy CQl1bm1hcF9ncmFudWxhcml0eTsKQEAgLTg5LDYgKzg5LDExIEBAIHN0YXRpYyBpbmxpbmUgc3Ry dWN0IHNjc2lfZGlzayAqc2NzaV9kaXNrKHN0cnVjdCBnZW5kaXNrICpkaXNrKQogCQkgICAgKHNk c2spLT5kaXNrLT5kaXNrX25hbWUsICMjYSkgOgkJCVwKIAlzZGV2X3ByaW50ayhwcmVmaXgsIChz ZHNrKS0+ZGV2aWNlLCBmbXQsICMjYSkKIAorc3RhdGljIGlubGluZSBzZWN0b3JfdCBsb2dpY2Fs X3RvX3NlY3RvcnMoc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2LCBzZWN0b3JfdCBibG9ja3MpCit7 CisJcmV0dXJuIGJsb2NrcyA8PCAoaWxvZzIoc2Rldi0+c2VjdG9yX3NpemUpIC0gOSk7Cit9CisK IC8qCiAgKiBBIERJRi1jYXBhYmxlIHRhcmdldCBkZXZpY2UgY2FuIGJlIGZvcm1hdHRlZCB3aXRo IGRpZmZlcmVudAogICogcHJvdGVjdGlvbiBzY2hlbWVzLiAgQ3VycmVudGx5IDAgdGhyb3VnaCAz IGFyZSBkZWZpbmVkOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3NnLmMgYi9kcml2ZXJzL3Nj c2kvc2cuYwppbmRleCBiNGNhYzM5NDNmMzUuLmZkZGNlNGVlZmNkMiAxMDA2NDQKLS0tIGEvZHJp dmVycy9zY3NpL3NnLmMKKysrIGIvZHJpdmVycy9zY3NpL3NnLmMKQEAgLTYwOSw3ICs2MDksOCBA QCBzZ193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6 ZV90IGNvdW50LCBsb2ZmX3QgKiBwcG9zKQogCWVsc2UKIAkJaHAtPmR4ZmVyX2RpcmVjdGlvbiA9 IChteHNpemUgPiAwKSA/IFNHX0RYRkVSX0ZST01fREVWIDogU0dfRFhGRVJfTk9ORTsKIAlocC0+ ZHhmZXJfbGVuID0gbXhzaXplOwotCWlmIChocC0+ZHhmZXJfZGlyZWN0aW9uID09IFNHX0RYRkVS X1RPX0RFVikKKwlpZiAoKGhwLT5keGZlcl9kaXJlY3Rpb24gPT0gU0dfRFhGRVJfVE9fREVWKSB8 fAorCSAgICAoaHAtPmR4ZmVyX2RpcmVjdGlvbiA9PSBTR19EWEZFUl9UT19GUk9NX0RFVikpCiAJ CWhwLT5keGZlcnAgPSAoY2hhciBfX3VzZXIgKilidWYgKyBjbWRfc2l6ZTsKIAllbHNlCiAJCWhw LT5keGZlcnAgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3VzYmlwL3VzYmlw X2NvbW1vbi5jIGIvZHJpdmVycy9zdGFnaW5nL3VzYmlwL3VzYmlwX2NvbW1vbi5jCmluZGV4IDE5 NGU5NzQwNTFmMy4uNGZiZWYwYzI4MzQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvdXNi aXAvdXNiaXBfY29tbW9uLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3VzYmlwL3VzYmlwX2NvbW1v bi5jCkBAIC04MjAsNiArODIwLDE3IEBAIGludCB1c2JpcF9yZWN2X3hidWZmKHN0cnVjdCB1c2Jp cF9kZXZpY2UgKnVkLCBzdHJ1Y3QgdXJiICp1cmIpCiAJaWYgKCEoc2l6ZSA+IDApKQogCQlyZXR1 cm4gMDsKIAorCWlmIChzaXplID4gdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoKSB7CisJCS8q IHNob3VsZCBub3QgaGFwcGVuLCBwcm9iYWJseSBtYWxpY2lvdXMgcGFja2V0ICovCisJCWlmICh1 ZC0+c2lkZSA9PSBVU0JJUF9TVFVCKSB7CisJCQl1c2JpcF9ldmVudF9hZGQodWQsIFNERVZfRVZF TlRfRVJST1JfVENQKTsKKwkJCXJldHVybiAwOworCQl9IGVsc2UgeworCQkJdXNiaXBfZXZlbnRf YWRkKHVkLCBWREVWX0VWRU5UX0VSUk9SX1RDUCk7CisJCQlyZXR1cm4gLUVQSVBFOworCQl9CisJ fQorCiAJcmV0ID0gdXNiaXBfeG1pdCgwLCB1ZC0+dGNwX3NvY2tldCwgKGNoYXIgKil1cmItPnRy YW5zZmVyX2J1ZmZlciwKIAkJCSBzaXplLCAwKTsKIAlpZiAocmV0ICE9IHNpemUpIHsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1 MC5jCmluZGV4IDMzNjAxZjg5MWZkNy4uMDdjZmVjNTZkYjAwIDEwMDY0NAotLS0gYS9kcml2ZXJz L3R0eS9zZXJpYWwvODI1MC5jCisrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLmMKQEAgLTc3 NywyMiArNzc3LDE2IEBAIHN0YXRpYyBpbnQgc2l6ZV9maWZvKHN0cnVjdCB1YXJ0XzgyNTBfcG9y dCAqdXApCiAgKi8KIHN0YXRpYyB1bnNpZ25lZCBpbnQgYXV0b2NvbmZpZ19yZWFkX2Rpdmlzb3Jf aWQoc3RydWN0IHVhcnRfODI1MF9wb3J0ICpwKQogewotCXVuc2lnbmVkIGNoYXIgb2xkX2RsbCwg b2xkX2RsbSwgb2xkX2xjcjsKLQl1bnNpZ25lZCBpbnQgaWQ7CisJdW5zaWduZWQgY2hhciBvbGRf bGNyOworCXVuc2lnbmVkIGludCBpZCwgb2xkX2RsOwogCiAJb2xkX2xjciA9IHNlcmlhbF9pbnAo cCwgVUFSVF9MQ1IpOwogCXNlcmlhbF9vdXRwKHAsIFVBUlRfTENSLCBVQVJUX0xDUl9DT05GX01P REVfQSk7CisJb2xkX2RsID0gc2VyaWFsX2RsX3JlYWQocCk7CisJc2VyaWFsX2RsX3dyaXRlKHAs IDApOworCWlkID0gc2VyaWFsX2RsX3JlYWQocCk7CisJc2VyaWFsX2RsX3dyaXRlKHAsIG9sZF9k bCk7CiAKLQlvbGRfZGxsID0gc2VyaWFsX2lucChwLCBVQVJUX0RMTCk7Ci0Jb2xkX2RsbSA9IHNl cmlhbF9pbnAocCwgVUFSVF9ETE0pOwotCi0Jc2VyaWFsX291dHAocCwgVUFSVF9ETEwsIDApOwot CXNlcmlhbF9vdXRwKHAsIFVBUlRfRExNLCAwKTsKLQotCWlkID0gc2VyaWFsX2lucChwLCBVQVJU X0RMTCkgfCBzZXJpYWxfaW5wKHAsIFVBUlRfRExNKSA8PCA4OwotCi0Jc2VyaWFsX291dHAocCwg VUFSVF9ETEwsIG9sZF9kbGwpOwotCXNlcmlhbF9vdXRwKHAsIFVBUlRfRExNLCBvbGRfZGxtKTsK IAlzZXJpYWxfb3V0cChwLCBVQVJUX0xDUiwgb2xkX2xjcik7CiAKIAlyZXR1cm4gaWQ7CmRpZmYg LS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvc2gtc2NpLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwv c2gtc2NpLmMKaW5kZXggODI5ZTUxYTIwZWVlLi4wN2MwMTM0OGViMzUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdHR5L3NlcmlhbC9zaC1zY2kuYworKysgYi9kcml2ZXJzL3R0eS9zZXJpYWwvc2gtc2Np LmMKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+CiAjaW5jbHVk ZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2VyaWFsX3NjaS5o PgotI2luY2x1ZGUgPGxpbnV4L25vdGlmaWVyLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGlt ZS5oPgogI2luY2x1ZGUgPGxpbnV4L2NwdWZyZXEuaD4KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4K QEAgLTk1LDggKzk0LDYgQEAgc3RydWN0IHNjaV9wb3J0IHsKIAl1bnNpZ25lZCBpbnQJCQlyeF90 aW1lb3V0OwogI2VuZGlmCiAKLQlzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sJCWZyZXFfdHJhbnNpdGlv bjsKLQogI2lmZGVmIENPTkZJR19TRVJJQUxfU0hfU0NJX0NPTlNPTEUKIAl1bnNpZ25lZCBzaG9y dCBzYXZlZF9zbXI7CiAJdW5zaWduZWQgc2hvcnQgc2F2ZWRfZmNyOwpAQCAtOTU4LDMwICs5NTUs NiBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qgc2NpX21weGVkX2ludGVycnVwdChpbnQgaXJxLCB2b2lk ICpwdHIpCiAJcmV0dXJuIHJldDsKIH0KIAotLyoKLSAqIEhlcmUgd2UgZGVmaW5lIGEgdHJhbnNp dGlvbiBub3RpZmllciBzbyB0aGF0IHdlIGNhbiB1cGRhdGUgYWxsIG9mIG91cgotICogcG9ydHMn IGJhdWQgcmF0ZSB3aGVuIHRoZSBwZXJpcGhlcmFsIGNsb2NrIGNoYW5nZXMuCi0gKi8KLXN0YXRp YyBpbnQgc2NpX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqc2VsZiwKLQkJCXVuc2ln bmVkIGxvbmcgcGhhc2UsIHZvaWQgKnApCi17Ci0Jc3RydWN0IHNjaV9wb3J0ICpzY2lfcG9ydDsK LQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc2NpX3BvcnQgPSBjb250YWluZXJfb2Yoc2VsZiwg c3RydWN0IHNjaV9wb3J0LCBmcmVxX3RyYW5zaXRpb24pOwotCi0JaWYgKChwaGFzZSA9PSBDUFVG UkVRX1BPU1RDSEFOR0UpIHx8Ci0JICAgIChwaGFzZSA9PSBDUFVGUkVRX1JFU1VNRUNIQU5HRSkp IHsKLQkJc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9ICZzY2lfcG9ydC0+cG9ydDsKLQotCQlzcGlu X2xvY2tfaXJxc2F2ZSgmcG9ydC0+bG9jaywgZmxhZ3MpOwotCQlwb3J0LT51YXJ0Y2xrID0gY2xr X2dldF9yYXRlKHNjaV9wb3J0LT5pY2xrKTsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9y dC0+bG9jaywgZmxhZ3MpOwotCX0KLQotCXJldHVybiBOT1RJRllfT0s7Ci19Ci0KIHN0YXRpYyBz dHJ1Y3Qgc2NpX2lycV9kZXNjIHsKIAljb25zdCBjaGFyCSpkZXNjOwogCWlycV9oYW5kbGVyX3QJ aGFuZGxlcjsKQEAgLTIxNzEsOSArMjE0NCw2IEBAIHN0YXRpYyBpbnQgc2NpX3JlbW92ZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IHNjaV9wb3J0ICpwb3J0ID0gcGxh dGZvcm1fZ2V0X2RydmRhdGEoZGV2KTsKIAotCWNwdWZyZXFfdW5yZWdpc3Rlcl9ub3RpZmllcigm cG9ydC0+ZnJlcV90cmFuc2l0aW9uLAotCQkJCSAgICBDUFVGUkVRX1RSQU5TSVRJT05fTk9USUZJ RVIpOwotCiAJdWFydF9yZW1vdmVfb25lX3BvcnQoJnNjaV91YXJ0X2RyaXZlciwgJnBvcnQtPnBv cnQpOwogCiAJY2xrX3B1dChwb3J0LT5pY2xrKTsKQEAgLTIyMjcsMTMgKzIxOTcsNiBAQCBzdGF0 aWMgaW50IF9fZGV2aW5pdCBzY2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQog CWlmIChyZXQpCiAJCWdvdG8gZXJyX3VucmVnOwogCi0Jc3AtPmZyZXFfdHJhbnNpdGlvbi5ub3Rp Zmllcl9jYWxsID0gc2NpX25vdGlmaWVyOwotCi0JcmV0ID0gY3B1ZnJlcV9yZWdpc3Rlcl9ub3Rp Zmllcigmc3AtPmZyZXFfdHJhbnNpdGlvbiwKLQkJCQkJQ1BVRlJFUV9UUkFOU0lUSU9OX05PVElG SUVSKTsKLQlpZiAodW5saWtlbHkocmV0IDwgMCkpCi0JCWdvdG8gZXJyX3VucmVnOwotCiAjaWZk ZWYgQ09ORklHX1NIX1NUQU5EQVJEX0JJT1MKIAlzaF9iaW9zX2dkYl9kZXRhY2goKTsKICNlbmRp ZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2xhc3MvY2RjLWFjbS5jIGIvZHJpdmVycy91c2Iv Y2xhc3MvY2RjLWFjbS5jCmluZGV4IGJiYjIxNzQ5NTkxNy4uM2Q5NmRlMGIyNzhjIDEwMDY0NAot LS0gYS9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmMKKysrIGIvZHJpdmVycy91c2IvY2xhc3Mv Y2RjLWFjbS5jCkBAIC05MjYsNiArOTI2LDkgQEAgc3RhdGljIGludCBhY21fcHJvYmUoc3RydWN0 IHVzYl9pbnRlcmZhY2UgKmludGYsCiAJaWYgKHF1aXJrcyA9PSBOT19VTklPTl9OT1JNQUwpIHsK IAkJZGF0YV9pbnRlcmZhY2UgPSB1c2JfaWZudW1fdG9faWYodXNiX2RldiwgMSk7CiAJCWNvbnRy b2xfaW50ZXJmYWNlID0gdXNiX2lmbnVtX3RvX2lmKHVzYl9kZXYsIDApOworCQkvKiB3ZSB3b3Vs ZCBjcmFzaCAqLworCQlpZiAoIWRhdGFfaW50ZXJmYWNlIHx8ICFjb250cm9sX2ludGVyZmFjZSkK KwkJCXJldHVybiAtRU5PREVWOwogCQlnb3RvIHNraXBfbm9ybWFsX3Byb2JlOwogCX0KIApkaWZm IC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9kcml2ZXIuYyBiL2RyaXZlcnMvdXNiL2NvcmUvZHJp dmVyLmMKaW5kZXggYzEwNWJhMzJmZjAyLi5jNTk1NzE0MmQyNmIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvdXNiL2NvcmUvZHJpdmVyLmMKKysrIGIvZHJpdmVycy91c2IvY29yZS9kcml2ZXIuYwpAQCAt NDI4LDkgKzQyOCwxMyBAQCBzdGF0aWMgaW50IHVzYl91bmJpbmRfaW50ZXJmYWNlKHN0cnVjdCBk ZXZpY2UgKmRldikKIGludCB1c2JfZHJpdmVyX2NsYWltX2ludGVyZmFjZShzdHJ1Y3QgdXNiX2Ry aXZlciAqZHJpdmVyLAogCQkJCXN0cnVjdCB1c2JfaW50ZXJmYWNlICppZmFjZSwgdm9pZCAqcHJp dikKIHsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmaWZhY2UtPmRldjsKKwlzdHJ1Y3QgZGV2aWNl ICpkZXY7CiAJaW50IHJldHZhbCA9IDA7CiAKKwlpZiAoIWlmYWNlKQorCQlyZXR1cm4gLUVOT0RF VjsKKworCWRldiA9ICZpZmFjZS0+ZGV2OwogCWlmIChkZXYtPmRyaXZlcikKIAkJcmV0dXJuIC1F QlVTWTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9odWIuYyBiL2RyaXZlcnMvdXNi L2NvcmUvaHViLmMKaW5kZXggZGRlMDMzMDkzOTZhLi42NzYzMjRhYWNkOTIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvdXNiL2NvcmUvaHViLmMKKysrIGIvZHJpdmVycy91c2IvY29yZS9odWIuYwpAQCAt MzAzMyw3ICszMDMzLDcgQEAgaHViX3BvcnRfaW5pdCAoc3RydWN0IHVzYl9odWIgKmh1Yiwgc3Ry dWN0IHVzYl9kZXZpY2UgKnVkZXYsIGludCBwb3J0MSwKIAogCXN0cnVjdCB1c2JfZGV2aWNlCSpo ZGV2ID0gaHViLT5oZGV2OwogCXN0cnVjdCB1c2JfaGNkCQkqaGNkID0gYnVzX3RvX2hjZChoZGV2 LT5idXMpOwotCWludAkJCWksIGosIHJldHZhbDsKKwlpbnQJCQlyZXRyaWVzLCBvcGVyYXRpb25z LCByZXR2YWwsIGk7CiAJdW5zaWduZWQJCWRlbGF5ID0gSFVCX1NIT1JUX1JFU0VUX1RJTUU7CiAJ ZW51bSB1c2JfZGV2aWNlX3NwZWVkCW9sZHNwZWVkID0gdWRldi0+c3BlZWQ7CiAJY29uc3QgY2hh cgkJKnNwZWVkOwpAQCAtMzEzNSw3ICszMTM1LDcgQEAgaHViX3BvcnRfaW5pdCAoc3RydWN0IHVz Yl9odWIgKmh1Yiwgc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYsIGludCBwb3J0MSwKIAkgKiBmaXJz dCA4IGJ5dGVzIG9mIHRoZSBkZXZpY2UgZGVzY3JpcHRvciB0byBnZXQgdGhlIGVwMCBtYXhwYWNr ZXQKIAkgKiB2YWx1ZS4KIAkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgR0VUX0RFU0NSSVBUT1JfVFJJ RVM7ICgrK2ksIG1zbGVlcCgxMDApKSkgeworCWZvciAocmV0cmllcyA9IDA7IHJldHJpZXMgPCBH RVRfREVTQ1JJUFRPUl9UUklFUzsgKCsrcmV0cmllcywgbXNsZWVwKDEwMCkpKSB7CiAJCWlmIChV U0VfTkVXX1NDSEVNRShyZXRyeV9jb3VudGVyKSAmJiAhKGhjZC0+ZHJpdmVyLT5mbGFncyAmIEhD RF9VU0IzKSkgewogCQkJc3RydWN0IHVzYl9kZXZpY2VfZGVzY3JpcHRvciAqYnVmOwogCQkJaW50 IHIgPSAwOwpAQCAtMzE1MSw3ICszMTUxLDcgQEAgaHViX3BvcnRfaW5pdCAoc3RydWN0IHVzYl9o dWIgKmh1Yiwgc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYsIGludCBwb3J0MSwKIAkJCSAqIDI1NSBp cyBmb3IgV1VTQiBkZXZpY2VzLCB3ZSBhY3R1YWxseSBuZWVkIHRvIHVzZQogCQkJICogNTEyIChX VVNCMS4wWzQuOC4xXSkuCiAJCQkgKi8KLQkJCWZvciAoaiA9IDA7IGogPCAzOyArK2opIHsKKwkJ CWZvciAob3BlcmF0aW9ucyA9IDA7IG9wZXJhdGlvbnMgPCAzOyArK29wZXJhdGlvbnMpIHsKIAkJ CQlidWYtPmJNYXhQYWNrZXRTaXplMCA9IDA7CiAJCQkJciA9IHVzYl9jb250cm9sX21zZyh1ZGV2 LCB1c2JfcmN2YWRkcjBwaXBlKCksCiAJCQkJCVVTQl9SRVFfR0VUX0RFU0NSSVBUT1IsIFVTQl9E SVJfSU4sCkBAIC0zMTcxLDcgKzMxNzEsMTMgQEAgaHViX3BvcnRfaW5pdCAoc3RydWN0IHVzYl9o dWIgKmh1Yiwgc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYsIGludCBwb3J0MSwKIAkJCQkJCXIgPSAt RVBST1RPOwogCQkJCQlicmVhazsKIAkJCQl9Ci0JCQkJaWYgKHIgPT0gMCkKKwkJCQkvKgorCQkJ CSAqIFNvbWUgZGV2aWNlcyB0aW1lIG91dCBpZiB0aGV5IGFyZSBwb3dlcmVkIG9uCisJCQkJICog d2hlbiBhbHJlYWR5IGNvbm5lY3RlZC4gVGhleSBuZWVkIGEgc2Vjb25kCisJCQkJICogcmVzZXQu IEJ1dCBvbmx5IG9uIHRoZSBmaXJzdCBhdHRlbXB0LAorCQkJCSAqIGxlc3Qgd2UgZ2V0IGludG8g YSB0aW1lIG91dC9yZXNldCBsb29wCisJCQkJICovCisJCQkJaWYgKHIgPT0gMCAgfHwgKHIgPT0g LUVUSU1FRE9VVCAmJiByZXRyaWVzID09IDApKQogCQkJCQlicmVhazsKIAkJCX0KIAkJCXVkZXYt PmRlc2NyaXB0b3IuYk1heFBhY2tldFNpemUwID0KQEAgLTMyMDMsNyArMzIwOSw3IEBAIGh1Yl9w b3J0X2luaXQgKHN0cnVjdCB1c2JfaHViICpodWIsIHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2LCBp bnQgcG9ydDEsCiAgCQkgKiBhdXRob3JpemF0aW9uIHdpbGwgYXNzaWduIHRoZSBmaW5hbCBhZGRy ZXNzLgogIAkJICovCiAJCWlmICh1ZGV2LT53dXNiID09IDApIHsKLQkJCWZvciAoaiA9IDA7IGog PCBTRVRfQUREUkVTU19UUklFUzsgKytqKSB7CisJCQlmb3IgKG9wZXJhdGlvbnMgPSAwOyBvcGVy YXRpb25zIDwgU0VUX0FERFJFU1NfVFJJRVM7ICsrb3BlcmF0aW9ucykgewogCQkJCXJldHZhbCA9 IGh1Yl9zZXRfYWRkcmVzcyh1ZGV2LCBkZXZudW0pOwogCQkJCWlmIChyZXR2YWwgPj0gMCkKIAkJ CQkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9taXNjL2lvd2Fycmlvci5jIGIvZHJp dmVycy91c2IvbWlzYy9pb3dhcnJpb3IuYwppbmRleCA4MTQ1NzkwNGQ2YmEuLjJmY2U3MTk3ZmE3 YiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvbWlzYy9pb3dhcnJpb3IuYworKysgYi9kcml2ZXJz L3VzYi9taXNjL2lvd2Fycmlvci5jCkBAIC03OTIsNiArNzkyLDEyIEBAIHN0YXRpYyBpbnQgaW93 YXJyaW9yX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsCiAJaWZhY2VfZGVz YyA9IGludGVyZmFjZS0+Y3VyX2FsdHNldHRpbmc7CiAJZGV2LT5wcm9kdWN0X2lkID0gbGUxNl90 b19jcHUodWRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpOwogCisJaWYgKGlmYWNlX2Rlc2MtPmRl c2MuYk51bUVuZHBvaW50cyA8IDEpIHsKKwkJZGV2X2VycigmaW50ZXJmYWNlLT5kZXYsICJJbnZh bGlkIG51bWJlciBvZiBlbmRwb2ludHNcbiIpOworCQlyZXR2YWwgPSAtRUlOVkFMOworCQlnb3Rv IGVycm9yOworCX0KKwogCS8qIHNldCB1cCB0aGUgZW5kcG9pbnQgaW5mb3JtYXRpb24gKi8KIAlm b3IgKGkgPSAwOyBpIDwgaWZhY2VfZGVzYy0+ZGVzYy5iTnVtRW5kcG9pbnRzOyArK2kpIHsKIAkJ ZW5kcG9pbnQgPSAmaWZhY2VfZGVzYy0+ZW5kcG9pbnRbaV0uZGVzYzsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL3JlbmVzYXNfdXNiaHMvZmlmby5jIGIvZHJpdmVycy91c2IvcmVuZXNhc191c2Jo cy9maWZvLmMKaW5kZXggZmZkZjVkMTUwODVlLi42ZmI1NTE0NzZjY2EgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdXNiL3JlbmVzYXNfdXNiaHMvZmlmby5jCisrKyBiL2RyaXZlcnMvdXNiL3JlbmVzYXNf dXNiaHMvZmlmby5jCkBAIC0xNjYsNyArMTY2LDggQEAgc3RhdGljIGludCB1c2Joc2ZfcGt0X2hh bmRsZXIoc3RydWN0IHVzYmhzX3BpcGUgKnBpcGUsIGludCB0eXBlKQogCQlnb3RvIF9fdXNiaHNf cGt0X2hhbmRsZXJfZW5kOwogCX0KIAotCXJldCA9IGZ1bmMocGt0LCAmaXNfZG9uZSk7CisJaWYg KGxpa2VseShmdW5jKSkKKwkJcmV0ID0gZnVuYyhwa3QsICZpc19kb25lKTsKIAogCWlmIChpc19k b25lKQogCQlfX3VzYmhzZl9wa3RfZGVsKHBrdCk7CkBAIC05MzEsNiArOTMyLDcgQEAgc3RhdGlj IGludCB1c2Joc2ZfZG1hX3RyeV9wb3Aoc3RydWN0IHVzYmhzX3BrdCAqcGt0LCBpbnQgKmlzX2Rv bmUpCiAKIAlwa3QtPnRyYW5zID0gbGVuOwogCisJdXNiaHNmX3R4X2lycV9jdHJsKHBpcGUsIDAp OwogCXRhc2tsZXRfaW5pdCgmZmlmby0+dGFza2xldCwKIAkJICAgICB1c2Joc2ZfZG1hX3ByZXBh cmVfdGFza2xldCwKIAkJICAgICAodW5zaWduZWQgbG9uZylwa3QpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy91c2IvcmVuZXNhc191c2Jocy9tb2RfZ2FkZ2V0LmMgYi9kcml2ZXJzL3VzYi9yZW5lc2Fz X3VzYmhzL21vZF9nYWRnZXQuYwppbmRleCAwYjFmYzA3NzZiODIuLjM0MWRiNDVkYjlkZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy91c2IvcmVuZXNhc191c2Jocy9tb2RfZ2FkZ2V0LmMKKysrIGIvZHJp dmVycy91c2IvcmVuZXNhc191c2Jocy9tb2RfZ2FkZ2V0LmMKQEAgLTE0NiwxMCArMTQ2LDE0IEBA IHN0YXRpYyB2b2lkIHVzYmhzZ19xdWV1ZV9kb25lKHN0cnVjdCB1c2Joc19wcml2ICpwcml2LCBz dHJ1Y3QgdXNiaHNfcGt0ICpwa3QpCiAJc3RydWN0IHVzYmhzX3BpcGUgKnBpcGUgPSBwa3QtPnBp cGU7CiAJc3RydWN0IHVzYmhzZ191ZXAgKnVlcCA9IHVzYmhzZ19waXBlX3RvX3VlcChwaXBlKTsK IAlzdHJ1Y3QgdXNiaHNnX3JlcXVlc3QgKnVyZXEgPSB1c2Joc2dfcGt0X3RvX3VyZXEocGt0KTsK Kwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJdXJlcS0+cmVxLmFjdHVhbCA9IHBrdC0+YWN0dWFs OwogCi0JdXNiaHNnX3F1ZXVlX3BvcCh1ZXAsIHVyZXEsIDApOworCXVzYmhzX2xvY2socHJpdiwg ZmxhZ3MpOworCWlmICh1ZXApCisJCV9fdXNiaHNnX3F1ZXVlX3BvcCh1ZXAsIHVyZXEsIDApOwor CXVzYmhzX3VubG9jayhwcml2LCBmbGFncyk7CiB9CiAKIHN0YXRpYyB2b2lkIHVzYmhzZ19xdWV1 ZV9wdXNoKHN0cnVjdCB1c2Joc2dfdWVwICp1ZXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9z ZXJpYWwvY3AyMTB4LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMKaW5kZXggOWI0MzUz NWNkMTgyLi42NDU2ODdjMDhiYWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIx MHguYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMKQEAgLTE3MCw2ICsxNzAsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVbXSA9IHsKIAl7IFVT Ql9ERVZJQ0UoMHgxOEVGLCAweEUwMjUpIH0sIC8qIEVMViBNYXJibGUgU291bmQgQm9hcmQgMSAq LwogCXsgVVNCX0RFVklDRSgweDE5MDEsIDB4MDE5MCkgfSwgLyogR0UgQjg1MCBDUDIxMDUgUmVj b3JkZXIgaW50ZXJmYWNlICovCiAJeyBVU0JfREVWSUNFKDB4MTkwMSwgMHgwMTkzKSB9LCAvKiBH RSBCNjUwIENQMjEwNCBQTUMgaW50ZXJmYWNlICovCisJeyBVU0JfREVWSUNFKDB4MTkwMSwgMHgw MTk0KSB9LAkvKiBHRSBIZWFsdGhjYXJlIFJlbW90ZSBBbGFybSBCb3ggKi8KIAl7IFVTQl9ERVZJ Q0UoMHgxOUNGLCAweDMwMDApIH0sIC8qIFBhcnJvdCBOTUVBIEdQUyBGbGlnaHQgUmVjb3JkZXIg Ki8KIAl7IFVTQl9ERVZJQ0UoMHgxQURCLCAweDAwMDEpIH0sIC8qIFNjaHdlaXR6ZXIgRW5naW5l ZXJpbmcgQzY2MiBDYWJsZSAqLwogCXsgVVNCX0RFVklDRSgweDFCMUMsIDB4MUMwMCkgfSwgLyog Q29yc2FpciBVU0IgRG9uZ2xlICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvY3lw cmVzc19tOC5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2N5cHJlc3NfbTguYwppbmRleCAxMGMzMGFk MzRlODUuLjhkYjJmYjFhZTg1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2N5cHJl c3NfbTguYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3lwcmVzc19tOC5jCkBAIC00ODksNiAr NDg5LDExIEBAIHN0YXRpYyBpbnQgZ2VuZXJpY19zdGFydHVwKHN0cnVjdCB1c2Jfc2VyaWFsICpz ZXJpYWwpCiAKIAlkYmcoIiVzIC0gcG9ydCAlZCIsIF9fZnVuY19fLCBwb3J0LT5udW1iZXIpOwog CisJaWYgKCFwb3J0LT5pbnRlcnJ1cHRfb3V0X3VyYiB8fCAhcG9ydC0+aW50ZXJydXB0X2luX3Vy YikgeworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICJyZXF1aXJlZCBlbmRwb2ludCBpcyBtaXNzaW5n XG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCiAJcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKHN0 cnVjdCBjeXByZXNzX3ByaXZhdGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXByaXYpCiAJCXJldHVy biAtRU5PTUVNOwpAQCAtNjU4LDEyICs2NjMsNiBAQCBzdGF0aWMgaW50IGN5cHJlc3Nfb3Blbihz dHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQogCQlj eXByZXNzX3NldF90ZXJtaW9zKHR0eSwgcG9ydCwgJnByaXYtPnRtcF90ZXJtaW9zKTsKIAogCS8q IHNldHVwIHRoZSBwb3J0IGFuZCBzdGFydCByZWFkaW5nIGZyb20gdGhlIGRldmljZSAqLwotCWlm ICghcG9ydC0+aW50ZXJydXB0X2luX3VyYikgewotCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAt IGludGVycnVwdF9pbl91cmIgaXMgZW1wdHkhXG4iLAotCQkJX19mdW5jX18pOwotCQlyZXR1cm4g LTE7Ci0JfQotCiAJdXNiX2ZpbGxfaW50X3VyYihwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLCBzZXJp YWwtPmRldiwKIAkJdXNiX3JjdmludHBpcGUoc2VyaWFsLT5kZXYsIHBvcnQtPmludGVycnVwdF9p bl9lbmRwb2ludEFkZHJlc3MpLAogCQlwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLT50cmFuc2Zlcl9i dWZmZXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvZGlnaV9hY2NlbGVwb3J0LmMg Yi9kcml2ZXJzL3VzYi9zZXJpYWwvZGlnaV9hY2NlbGVwb3J0LmMKaW5kZXggZTkyY2JlZmMwZjg4 Li5lNTliZDk1ZjA1YzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9kaWdpX2FjY2Vs ZXBvcnQuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZGlnaV9hY2NlbGVwb3J0LmMKQEAgLTE0 ODksMTIgKzE0ODksMzAgQEAgc3RhdGljIGludCBkaWdpX3N0YXJ0dXBfZGV2aWNlKHN0cnVjdCB1 c2Jfc2VyaWFsICpzZXJpYWwpCiBzdGF0aWMgaW50IGRpZ2lfc3RhcnR1cChzdHJ1Y3QgdXNiX3Nl cmlhbCAqc2VyaWFsKQogewogCisJc3RydWN0IGRldmljZSAqZGV2ID0gJnNlcmlhbC0+aW50ZXJm YWNlLT5kZXY7CiAJaW50IGk7CiAJc3RydWN0IGRpZ2lfcG9ydCAqcHJpdjsKIAlzdHJ1Y3QgZGln aV9zZXJpYWwgKnNlcmlhbF9wcml2OwogCiAJZGJnKCJkaWdpX3N0YXJ0dXA6IFRPUCIpOwogCisJ LyogY2hlY2sgd2hldGhlciB0aGUgZGV2aWNlIGhhcyB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIGVu ZHBvaW50cyAqLworCWlmIChzZXJpYWwtPm51bV9wb3J0X3BvaW50ZXJzIDwgc2VyaWFsLT50eXBl LT5udW1fcG9ydHMgKyAxKSB7CisJCWRldl9lcnIoZGV2LCAiT09CIGVuZHBvaW50cyBtaXNzaW5n XG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJZm9yIChpID0gMDsgaSA8IHNlcmlhbC0+ dHlwZS0+bnVtX3BvcnRzICsgMSA7IGkrKykgeworCQlpZiAoIXNlcmlhbC0+cG9ydFtpXS0+cmVh ZF91cmIpIHsKKwkJCWRldl9lcnIoZGV2LCAiYnVsay1pbiBlbmRwb2ludCBtaXNzaW5nXG4iKTsK KwkJCXJldHVybiAtRU5PREVWOworCQl9CisJCWlmICghc2VyaWFsLT5wb3J0W2ldLT53cml0ZV91 cmIpIHsKKwkJCWRldl9lcnIoZGV2LCAiYnVsay1vdXQgZW5kcG9pbnQgbWlzc2luZ1xuIik7CisJ CQlyZXR1cm4gLUVOT0RFVjsKKwkJfQorCX0KKwogCS8qIGFsbG9jYXRlIHRoZSBwcml2YXRlIGRh dGEgc3RydWN0dXJlcyBmb3IgYWxsIHBvcnRzICovCiAJLyogbnVtYmVyIG9mIHJlZ3VsYXIgcG9y dHMgKyAxIGZvciB0aGUgb3V0LW9mLWJhbmQgcG9ydCAqLwogCWZvciAoaSA9IDA7IGkgPCBzZXJp YWwtPnR5cGUtPm51bV9wb3J0cyArIDE7IGkrKykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Iv c2VyaWFsL2Z0ZGlfc2lvLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYwppbmRleCA1 MDkyNzU3NjZmNWUuLmYwYjc1MjU5MWYyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFs L2Z0ZGlfc2lvLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKQEAgLTEwMjYs NiArMTAyNiwxMCBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVfY29tYmlu ZWQgW10gPSB7CiAJeyBVU0JfREVWSUNFKEZURElfVklELCBDSEVUQ09fU0VBU01BUlRfRElTUExB WV9QSUQpIH0sCiAJeyBVU0JfREVWSUNFKEZURElfVklELCBDSEVUQ09fU0VBU01BUlRfTElURV9Q SUQpIH0sCiAJeyBVU0JfREVWSUNFKEZURElfVklELCBDSEVUQ09fU0VBU01BUlRfQU5BTE9HX1BJ RCkgfSwKKwkvKiBJQ1AgREFTIEktNzU2eFUgZGV2aWNlcyAqLworCXsgVVNCX0RFVklDRShJQ1BE QVNfVklELCBJQ1BEQVNfSTc1NjBVX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoSUNQREFTX1ZJRCwg SUNQREFTX0k3NTYxVV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKElDUERBU19WSUQsIElDUERBU19J NzU2M1VfUElEKSB9LAogCXsgfSwJCQkJCS8qIE9wdGlvbmFsIHBhcmFtZXRlciBlbnRyeSAqLwog CXsgfQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KIH07CmRpZmYgLS1naXQgYS9kcml2ZXJz L3VzYi9zZXJpYWwvZnRkaV9zaW9faWRzLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW9f aWRzLmgKaW5kZXggZjlkNTVjNGY1MDkxLi5jMmU4MGViZTM0YTkgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRk aV9zaW9faWRzLmgKQEAgLTg2Niw2ICs4NjYsMTQgQEAKICNkZWZpbmUgTk9WSVRVU19CT05PX0Vf UElECQkweDYwMTAKIAogLyoKKyAqIElDUERBUyBJLTc1NipVIGRldmljZXMKKyAqLworI2RlZmlu ZSBJQ1BEQVNfVklECQkJMHgxYjVjCisjZGVmaW5lIElDUERBU19JNzU2MFVfUElECQkweDAxMDMK KyNkZWZpbmUgSUNQREFTX0k3NTYxVV9QSUQJCTB4MDEwNAorI2RlZmluZSBJQ1BEQVNfSTc1NjNV X1BJRAkJMHgwMTA1CisKKy8qCiAgKiBSVCBTeXN0ZW1zIHByb2dyYW1taW5nIGNhYmxlcyBmb3Ig dmFyaW91cyBoYW0gcmFkaW9zCiAgKi8KICNkZWZpbmUgUlRTWVNURU1TX1ZJRAkJMHgyMTAwCS8q IFZlbmRvciBJRCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL21jdF91MjMyLmMg Yi9kcml2ZXJzL3VzYi9zZXJpYWwvbWN0X3UyMzIuYwppbmRleCA5NmE2MmRkNWFhM2YuLmE3ZTdi YTY1YTYxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL21jdF91MjMyLmMKKysrIGIv ZHJpdmVycy91c2Ivc2VyaWFsL21jdF91MjMyLmMKQEAgLTQ0Myw2ICs0NDMsMTIgQEAgc3RhdGlj IGludCBtY3RfdTIzMl9zdGFydHVwKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCiAJc3RydWN0 IG1jdF91MjMyX3ByaXZhdGUgKnByaXY7CiAJc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwg KnJwb3J0OwogCisJLyogY2hlY2sgZmlyc3QgdG8gc2ltcGxpZnkgZXJyb3IgaGFuZGxpbmcgKi8K KwlpZiAoIXNlcmlhbC0+cG9ydFsxXSB8fCAhc2VyaWFsLT5wb3J0WzFdLT5pbnRlcnJ1cHRfaW5f dXJiKSB7CisJCWRldl9lcnIoJnBvcnQtPmRldiwgImV4cGVjdGVkIGVuZHBvaW50IG1pc3Npbmdc biIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKIAlwcml2ID0ga3phbGxvYyhzaXplb2Yoc3Ry dWN0IG1jdF91MjMyX3ByaXZhdGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXByaXYpCiAJCXJldHVy biAtRU5PTUVNOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9yYzMyNDM0X3dkdC5jIGIv ZHJpdmVycy93YXRjaGRvZy9yYzMyNDM0X3dkdC5jCmluZGV4IGQ0YzI5YjUzMTFhNC4uNTZkY2Fl N2JlNDhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3dhdGNoZG9nL3JjMzI0MzRfd2R0LmMKKysrIGIv ZHJpdmVycy93YXRjaGRvZy9yYzMyNDM0X3dkdC5jCkBAIC0yMzksNyArMjM5LDcgQEAgc3RhdGlj IGxvbmcgcmMzMjQzNF93ZHRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBj bWQsCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJLyogRmFsbCB0aHJvdWdoICovCiAJY2FzZSBXRElP Q19HRVRUSU1FT1VUOgotCQlyZXR1cm4gY29weV90b191c2VyKGFyZ3AsICZ0aW1lb3V0LCBzaXpl b2YoaW50KSk7CisJCXJldHVybiBjb3B5X3RvX3VzZXIoYXJncCwgJnRpbWVvdXQsIHNpemVvZihp bnQpKSA/IC1FRkFVTFQgOiAwOwogCWRlZmF1bHQ6CiAJCXJldHVybiAtRU5PVFRZOwogCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMveGVuL2V2ZW50cy5jIGIvZHJpdmVycy94ZW4vZXZlbnRzLmMKaW5k ZXggYmNmNzcxMTc4NGE1Li43MTMxOTczOWI5NWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2V2 ZW50cy5jCisrKyBiL2RyaXZlcnMveGVuL2V2ZW50cy5jCkBAIC0zMzcsNiArMzM3LDEyIEBAIHN0 YXRpYyBpbmxpbmUgaW50IHRlc3RfZXZ0Y2huKGludCBwb3J0KQogCXJldHVybiBzeW5jX3Rlc3Rf Yml0KHBvcnQsICZzLT5ldnRjaG5fcGVuZGluZ1swXSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50 IHRlc3RfYW5kX3NldF9tYXNrKGludCBwb3J0KQoreworCXN0cnVjdCBzaGFyZWRfaW5mbyAqcyA9 IEhZUEVSVklTT1Jfc2hhcmVkX2luZm87CisJcmV0dXJuIHN5bmNfdGVzdF9hbmRfc2V0X2JpdChw b3J0LCAmcy0+ZXZ0Y2huX21hc2tbMF0pOworfQorCiAKIC8qKgogICogbm90aWZ5X3JlbW90ZV92 aWFfaXJxIC0gc2VuZCBldmVudCB0byByZW1vdGUgZW5kIG9mIGV2ZW50IGNoYW5uZWwgdmlhIGly cQpAQCAtNTA3LDkgKzUxMywxOSBAQCBzdGF0aWMgdm9pZCBlb2lfcGlycShzdHJ1Y3QgaXJxX2Rh dGEgKmRhdGEpCiAJc3RydWN0IHBoeXNkZXZfZW9pIGVvaSA9IHsgLmlycSA9IHBpcnFfZnJvbV9p cnEoZGF0YS0+aXJxKSB9OwogCWludCByYyA9IDA7CiAKLQlpcnFfbW92ZV9pcnEoZGF0YSk7CisJ aWYgKCFWQUxJRF9FVlRDSE4oZXZ0Y2huKSkKKwkJcmV0dXJuOwogCi0JaWYgKFZBTElEX0VWVENI TihldnRjaG4pKQorCWlmICh1bmxpa2VseShpcnFkX2lzX3NldGFmZmluaXR5X3BlbmRpbmcoZGF0 YSkpKSB7CisJCWludCBtYXNrZWQgPSB0ZXN0X2FuZF9zZXRfbWFzayhldnRjaG4pOworCisJCWNs ZWFyX2V2dGNobihldnRjaG4pOworCisJCWlycV9tb3ZlX21hc2tlZF9pcnEoZGF0YSk7CisKKwkJ aWYgKCFtYXNrZWQpCisJCQl1bm1hc2tfZXZ0Y2huKGV2dGNobik7CisJfSBlbHNlCiAJCWNsZWFy X2V2dGNobihldnRjaG4pOwogCiAJaWYgKHBpcnFfbmVlZHNfZW9pKGRhdGEtPmlycSkpIHsKQEAg LTE0MjcsOSArMTQ0MywxOSBAQCBzdGF0aWMgdm9pZCBhY2tfZHluaXJxKHN0cnVjdCBpcnFfZGF0 YSAqZGF0YSkKIHsKIAlpbnQgZXZ0Y2huID0gZXZ0Y2huX2Zyb21faXJxKGRhdGEtPmlycSk7CiAK LQlpcnFfbW92ZV9pcnEoZGF0YSk7CisJaWYgKCFWQUxJRF9FVlRDSE4oZXZ0Y2huKSkKKwkJcmV0 dXJuOworCisJaWYgKHVubGlrZWx5KGlycWRfaXNfc2V0YWZmaW5pdHlfcGVuZGluZyhkYXRhKSkp IHsKKwkJaW50IG1hc2tlZCA9IHRlc3RfYW5kX3NldF9tYXNrKGV2dGNobik7CiAKLQlpZiAoVkFM SURfRVZUQ0hOKGV2dGNobikpCisJCWNsZWFyX2V2dGNobihldnRjaG4pOworCisJCWlycV9tb3Zl X21hc2tlZF9pcnEoZGF0YSk7CisKKwkJaWYgKCFtYXNrZWQpCisJCQl1bm1hc2tfZXZ0Y2huKGV2 dGNobik7CisJfSBlbHNlCiAJCWNsZWFyX2V2dGNobihldnRjaG4pOwogfQogCmRpZmYgLS1naXQg YS9mcy9iaW8uYyBiL2ZzL2Jpby5jCmluZGV4IGI4NGQ4NTEwMzcyNy4uNTViNTE4ODFlNzUxIDEw MDY0NAotLS0gYS9mcy9iaW8uYworKysgYi9mcy9iaW8uYwpAQCAtNzkzLDE1ICs3OTMsMTkgQEAg aW50IGJpb191bmNvcHlfdXNlcihzdHJ1Y3QgYmlvICpiaW8pCiAJaWYgKCFiaW9fZmxhZ2dlZChi aW8sIEJJT19OVUxMX01BUFBFRCkpIHsKIAkJLyoKIAkJICogaWYgd2UncmUgaW4gYSB3b3JrcXVl dWUsIHRoZSByZXF1ZXN0IGlzIG9ycGhhbmVkLCBzbwotCQkgKiBkb24ndCBjb3B5IGludG8gYSBy YW5kb20gdXNlciBhZGRyZXNzIHNwYWNlLCBqdXN0IGZyZWUuCisJCSAqIGRvbid0IGNvcHkgaW50 byBhIHJhbmRvbSB1c2VyIGFkZHJlc3Mgc3BhY2UsIGp1c3QgZnJlZQorCQkgKiBhbmQgcmV0dXJu IC1FSU5UUiBzbyB1c2VyIHNwYWNlIGRvZXNuJ3QgZXhwZWN0IGFueSBkYXRhLgogCQkgKi8KIAkJ aWYgKGN1cnJlbnQtPm1tKQogCQkJcmV0ID0gX19iaW9fY29weV9pb3YoYmlvLCBibWQtPmlvdmVj cywgYm1kLT5zZ3ZlY3MsCiAJCQkJCSAgICAgYm1kLT5ucl9zZ3ZlY3MsIGJpb19kYXRhX2Rpcihi aW8pID09IFJFQUQsCiAJCQkJCSAgICAgMCwgYm1kLT5pc19vdXJfcGFnZXMpOwotCQllbHNlIGlm IChibWQtPmlzX291cl9wYWdlcykKLQkJCWJpb19mb3JfZWFjaF9zZWdtZW50X2FsbChidmVjLCBi aW8sIGkpCi0JCQkJX19mcmVlX3BhZ2UoYnZlYy0+YnZfcGFnZSk7CisJCWVsc2UgeworCQkJcmV0 ID0gLUVJTlRSOworCQkJaWYgKGJtZC0+aXNfb3VyX3BhZ2VzKQorCQkJCWJpb19mb3JfZWFjaF9z ZWdtZW50X2FsbChidmVjLCBiaW8sIGkpCisJCQkJCV9fZnJlZV9wYWdlKGJ2ZWMtPmJ2X3BhZ2Up OworCQl9CiAJfQogCWJpb19mcmVlX21hcF9kYXRhKGJtZCk7CiAJYmlvX3B1dChiaW8pOwpkaWZm IC0tZ2l0IGEvZnMvZXhlYy5jIGIvZnMvZXhlYy5jCmluZGV4IGFiYTVlMTNhNmE2OC4uYTAwMDZk ODU3ODVjIDEwMDY0NAotLS0gYS9mcy9leGVjLmMKKysrIGIvZnMvZXhlYy5jCkBAIC01NSw2ICs1 NSw5IEBACiAjaW5jbHVkZSA8bGludXgvcGlwZV9mc19pLmg+CiAjaW5jbHVkZSA8bGludXgvb29t Lmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4K KyNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BhdGguaD4KIAogI2luY2x1 ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CkBAIC0yMjQ2 LDYgKzIyNDksOCBAQCB2b2lkIGRvX2NvcmVkdW1wKGxvbmcgc2lnbnIsIGludCBleGl0X2NvZGUs IHN0cnVjdCBwdF9yZWdzICpyZWdzKQogIAkJfQogCX0gZWxzZSB7CiAJCXN0cnVjdCBpbm9kZSAq aW5vZGU7CisJCWludCBvcGVuX2ZsYWdzID0gT19DUkVBVCB8IE9fUkRXUiB8IE9fTk9GT0xMT1cg fAorCQkJCSBPX0xBUkdFRklMRSB8IE9fRVhDTDsKIAogCQlpZiAoY3BybS5saW1pdCA8IGJpbmZt dC0+bWluX2NvcmVkdW1wKQogCQkJZ290byBmYWlsX3VubG9jazsKQEAgLTIyODQsMTAgKzIyODks MjcgQEAgdm9pZCBkb19jb3JlZHVtcChsb25nIHNpZ25yLCBpbnQgZXhpdF9jb2RlLCBzdHJ1Y3Qg cHRfcmVncyAqcmVncykKIAkJICogd2hhdCBtYXR0ZXJzIGlzIHRoYXQgYXQgbGVhc3Qgb25lIG9m IHRoZSB0d28gcHJvY2Vzc2VzCiAJCSAqIHdyaXRlcyBpdHMgY29yZWR1bXAgc3VjY2Vzc2Z1bGx5 LCBub3Qgd2hpY2ggb25lLgogCQkgKi8KLQkJY3BybS5maWxlID0gZmlscF9vcGVuKGNuLmNvcmVu YW1lLAotCQkJCSBPX0NSRUFUIHwgMiB8IE9fTk9GT0xMT1cgfAotCQkJCSBPX0xBUkdFRklMRSB8 IE9fRVhDTCwKLQkJCQkgMDYwMCk7CisJCWlmIChuZWVkX3N1aWRfc2FmZSkgeworCQkJLyoKKwkJ CSAqIFVzaW5nIHVzZXIgbmFtZXNwYWNlcywgbm9ybWFsIHVzZXIgdGFza3MgY2FuIGNoYW5nZQor CQkJICogdGhlaXIgY3VycmVudC0+ZnMtPnJvb3QgdG8gcG9pbnQgdG8gYXJiaXRyYXJ5CisJCQkg KiBkaXJlY3Rvcmllcy4gU2luY2UgdGhlIGludGVudGlvbiBvZiB0aGUgIm9ubHkgZHVtcAorCQkJ ICogd2l0aCBhIGZ1bGx5IHF1YWxpZmllZCBwYXRoIiBydWxlIGlzIHRvIGNvbnRyb2wgd2hlcmUK KwkJCSAqIGNvcmVkdW1wcyBtYXkgYmUgcGxhY2VkIHVzaW5nIHJvb3QgcHJpdmlsZWdlcywKKwkJ CSAqIGN1cnJlbnQtPmZzLT5yb290IG11c3Qgbm90IGJlIHVzZWQuIEluc3RlYWQsIHVzZSB0aGUK KwkJCSAqIHJvb3QgZGlyZWN0b3J5IG9mIGluaXRfdGFzay4KKwkJCSAqLworCQkJc3RydWN0IHBh dGggcm9vdDsKKworCQkJdGFza19sb2NrKCZpbml0X3Rhc2spOworCQkJZ2V0X2ZzX3Jvb3QoaW5p dF90YXNrLmZzLCAmcm9vdCk7CisJCQl0YXNrX3VubG9jaygmaW5pdF90YXNrKTsKKwkJCWNwcm0u ZmlsZSA9IGZpbGVfb3Blbl9yb290KHJvb3QuZGVudHJ5LCByb290Lm1udCwKKwkJCQljbi5jb3Jl bmFtZSwgb3Blbl9mbGFncywgMDYwMCk7CisJCQlwYXRoX3B1dCgmcm9vdCk7CisJCX0gZWxzZSB7 CisJCQljcHJtLmZpbGUgPSBmaWxwX29wZW4oY24uY29yZW5hbWUsIG9wZW5fZmxhZ3MsIDA2MDAp OworCQl9CiAJCWlmIChJU19FUlIoY3BybS5maWxlKSkKIAkJCWdvdG8gZmFpbF91bmxvY2s7CiAK ZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaW5vZGUuYyBiL2ZzL2V4dDQvaW5vZGUuYwppbmRleCAwZGU4 YzZkZGY1ODAuLjAxMGYwNTBhODdiMyAxMDA2NDQKLS0tIGEvZnMvZXh0NC9pbm9kZS5jCisrKyBi L2ZzL2V4dDQvaW5vZGUuYwpAQCAtNDYzNiw2ICs0NjM2LDggQEAgaW50IGV4dDRfbWFya19pbm9k ZV9kaXJ0eShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCW1pZ2h0X3Ns ZWVwKCk7CiAJdHJhY2VfZXh0NF9tYXJrX2lub2RlX2RpcnR5KGlub2RlLCBfUkVUX0lQXyk7CiAJ ZXJyID0gZXh0NF9yZXNlcnZlX2lub2RlX3dyaXRlKGhhbmRsZSwgaW5vZGUsICZpbG9jKTsKKwlp ZiAoZXJyKQorCQlyZXR1cm4gZXJyOwogCWlmIChleHQ0X2hhbmRsZV92YWxpZChoYW5kbGUpICYm CiAJICAgIEVYVDRfSShpbm9kZSktPmlfZXh0cmFfaXNpemUgPCBzYmktPnNfd2FudF9leHRyYV9p c2l6ZSAmJgogCSAgICAhZXh0NF90ZXN0X2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX05P X0VYUEFORCkpIHsKQEAgLTQ2NjYsOSArNDY2OCw3IEBAIGludCBleHQ0X21hcmtfaW5vZGVfZGly dHkoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSkKIAkJCX0KIAkJfQogCX0K LQlpZiAoIWVycikKLQkJZXJyID0gZXh0NF9tYXJrX2lsb2NfZGlydHkoaGFuZGxlLCBpbm9kZSwg Jmlsb2MpOwotCXJldHVybiBlcnI7CisJcmV0dXJuIGV4dDRfbWFya19pbG9jX2RpcnR5KGhhbmRs ZSwgaW5vZGUsICZpbG9jKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2ZzL2ZoYW5kbGUuYyBiL2Zz L2ZoYW5kbGUuYwppbmRleCBjOWUxOGYzZWNjNDEuLjcxMDQzOGExZTAyMSAxMDA2NDQKLS0tIGEv ZnMvZmhhbmRsZS5jCisrKyBiL2ZzL2ZoYW5kbGUuYwpAQCAtMjI5LDcgKzIyOSw3IEBAIGxvbmcg ZG9faGFuZGxlX29wZW4oaW50IG1vdW50ZGlyZmQsCiAJCXBhdGhfcHV0KCZwYXRoKTsKIAkJcmV0 dXJuIGZkOwogCX0KLQlmaWxlID0gZmlsZV9vcGVuX3Jvb3QocGF0aC5kZW50cnksIHBhdGgubW50 LCAiIiwgb3Blbl9mbGFnKTsKKwlmaWxlID0gZmlsZV9vcGVuX3Jvb3QocGF0aC5kZW50cnksIHBh dGgubW50LCAiIiwgb3Blbl9mbGFnLCAwKTsKIAlpZiAoSVNfRVJSKGZpbGUpKSB7CiAJCXB1dF91 bnVzZWRfZmQoZmQpOwogCQlyZXR2YWwgPSAgUFRSX0VSUihmaWxlKTsKZGlmZiAtLWdpdCBhL2Zz L2piZDIvam91cm5hbC5jIGIvZnMvamJkMi9qb3VybmFsLmMKaW5kZXggYzE5YjhjZWNiZmUxLi4w MzliOGFlM2JiZDEgMTAwNjQ0Ci0tLSBhL2ZzL2piZDIvam91cm5hbC5jCisrKyBiL2ZzL2piZDIv am91cm5hbC5jCkBAIC0xMzQwLDExICsxMzQwLDEyIEBAIG91dDoKIC8qKgogICogamJkMl9tYXJr X2pvdXJuYWxfZW1wdHkoKSAtIE1hcmsgb24gZGlzayBqb3VybmFsIGFzIGVtcHR5LgogICogQGpv dXJuYWw6IFRoZSBqb3VybmFsIHRvIHVwZGF0ZS4KKyAqIEB3cml0ZV9vcDogV2l0aCB3aGljaCBv cGVyYXRpb24gc2hvdWxkIHdlIHdyaXRlIHRoZSBqb3VybmFsIHNiCiAgKgogICogVXBkYXRlIGEg am91cm5hbCdzIGR5bmFtaWMgc3VwZXJibG9jayBmaWVsZHMgdG8gc2hvdyB0aGF0IGpvdXJuYWwg aXMgZW1wdHkuCiAgKiBXcml0ZSB1cGRhdGVkIHN1cGVyYmxvY2sgdG8gZGlzayB3YWl0aW5nIGZv ciBJTyB0byBjb21wbGV0ZS4KICAqLwotc3RhdGljIHZvaWQgamJkMl9tYXJrX2pvdXJuYWxfZW1w dHkoam91cm5hbF90ICpqb3VybmFsKQorc3RhdGljIHZvaWQgamJkMl9tYXJrX2pvdXJuYWxfZW1w dHkoam91cm5hbF90ICpqb3VybmFsLCBpbnQgd3JpdGVfb3ApCiB7CiAJam91cm5hbF9zdXBlcmJs b2NrX3QgKnNiID0gam91cm5hbC0+al9zdXBlcmJsb2NrOwogCkBAIC0xMzU3LDcgKzEzNTgsNyBA QCBzdGF0aWMgdm9pZCBqYmQyX21hcmtfam91cm5hbF9lbXB0eShqb3VybmFsX3QgKmpvdXJuYWwp CiAJc2ItPnNfc3RhcnQgICAgPSBjcHVfdG9fYmUzMigwKTsKIAlyZWFkX3VubG9jaygmam91cm5h bC0+al9zdGF0ZV9sb2NrKTsKIAotCWpiZDJfd3JpdGVfc3VwZXJibG9jayhqb3VybmFsLCBXUklU RV9GVUEpOworCWpiZDJfd3JpdGVfc3VwZXJibG9jayhqb3VybmFsLCB3cml0ZV9vcCk7CiAKIAkv KiBMb2cgaXMgbm8gbG9uZ2VyIGVtcHR5ICovCiAJd3JpdGVfbG9jaygmam91cm5hbC0+al9zdGF0 ZV9sb2NrKTsKQEAgLTE1OTMsNyArMTU5NCwxMyBAQCBpbnQgamJkMl9qb3VybmFsX2Rlc3Ryb3ko am91cm5hbF90ICpqb3VybmFsKQogCWlmIChqb3VybmFsLT5qX3NiX2J1ZmZlcikgewogCQlpZiAo IWlzX2pvdXJuYWxfYWJvcnRlZChqb3VybmFsKSkgewogCQkJbXV0ZXhfbG9jaygmam91cm5hbC0+ al9jaGVja3BvaW50X211dGV4KTsKLQkJCWpiZDJfbWFya19qb3VybmFsX2VtcHR5KGpvdXJuYWwp OworCisJCQl3cml0ZV9sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2spOworCQkJam91cm5hbC0+ al90YWlsX3NlcXVlbmNlID0KKwkJCQkrK2pvdXJuYWwtPmpfdHJhbnNhY3Rpb25fc2VxdWVuY2U7 CisJCQl3cml0ZV91bmxvY2soJmpvdXJuYWwtPmpfc3RhdGVfbG9jayk7CisKKwkJCWpiZDJfbWFy a19qb3VybmFsX2VtcHR5KGpvdXJuYWwsIFdSSVRFX0ZMVVNIX0ZVQSk7CiAJCQltdXRleF91bmxv Y2soJmpvdXJuYWwtPmpfY2hlY2twb2ludF9tdXRleCk7CiAJCX0gZWxzZQogCQkJZXJyID0gLUVJ TzsKQEAgLTE4NTksNyArMTg2Niw3IEBAIGludCBqYmQyX2pvdXJuYWxfZmx1c2goam91cm5hbF90 ICpqb3VybmFsKQogCSAqIHRoZSBtYWdpYyBjb2RlIGZvciBhIGZ1bGx5LXJlY292ZXJlZCBzdXBl cmJsb2NrLiAgQW55IGZ1dHVyZQogCSAqIGNvbW1pdHMgb2YgZGF0YSB0byB0aGUgam91cm5hbCB3 aWxsIHJlc3RvcmUgdGhlIGN1cnJlbnQKIAkgKiBzX3N0YXJ0IHZhbHVlLiAqLwotCWpiZDJfbWFy a19qb3VybmFsX2VtcHR5KGpvdXJuYWwpOworCWpiZDJfbWFya19qb3VybmFsX2VtcHR5KGpvdXJu YWwsIFdSSVRFX0ZVQSk7CiAJbXV0ZXhfdW5sb2NrKCZqb3VybmFsLT5qX2NoZWNrcG9pbnRfbXV0 ZXgpOwogCXdyaXRlX2xvY2soJmpvdXJuYWwtPmpfc3RhdGVfbG9jayk7CiAJSl9BU1NFUlQoIWpv dXJuYWwtPmpfcnVubmluZ190cmFuc2FjdGlvbik7CkBAIC0xOTA1LDcgKzE5MTIsNyBAQCBpbnQg amJkMl9qb3VybmFsX3dpcGUoam91cm5hbF90ICpqb3VybmFsLCBpbnQgd3JpdGUpCiAJaWYgKHdy aXRlKSB7CiAJCS8qIExvY2sgdG8gbWFrZSBhc3NlcnRpb25zIGhhcHB5Li4uICovCiAJCW11dGV4 X2xvY2soJmpvdXJuYWwtPmpfY2hlY2twb2ludF9tdXRleCk7Ci0JCWpiZDJfbWFya19qb3VybmFs X2VtcHR5KGpvdXJuYWwpOworCQlqYmQyX21hcmtfam91cm5hbF9lbXB0eShqb3VybmFsLCBXUklU RV9GVUEpOwogCQltdXRleF91bmxvY2soJmpvdXJuYWwtPmpfY2hlY2twb2ludF9tdXRleCk7CiAJ fQogCmRpZmYgLS1naXQgYS9mcy9uZnNkL25mczRwcm9jLmMgYi9mcy9uZnNkL25mczRwcm9jLmMK aW5kZXggOWE5NTlkZTJmMThlLi5iZDA3ZWNmNDQ4YmUgMTAwNjQ0Ci0tLSBhL2ZzL25mc2QvbmZz NHByb2MuYworKysgYi9mcy9uZnNkL25mczRwcm9jLmMKQEAgLTc5MSw2ICs3OTEsNyBAQCBuZnNk NF9zZWNpbmZvKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBuZnNkNF9jb21wb3VuZF9z dGF0ZSAqY3N0YXRlLAogCQkJCSAgICAmZXhwLCAmZGVudHJ5KTsKIAlpZiAoZXJyKQogCQlyZXR1 cm4gZXJyOworCWZoX3VubG9jaygmY3N0YXRlLT5jdXJyZW50X2ZoKTsKIAlpZiAoZGVudHJ5LT5k X2lub2RlID09IE5VTEwpIHsKIAkJZXhwX3B1dChleHApOwogCQllcnIgPSBuZnNlcnJfbm9lbnQ7 CmRpZmYgLS1naXQgYS9mcy9uZnNkL25mczR4ZHIuYyBiL2ZzL25mc2QvbmZzNHhkci5jCmluZGV4 IDlkMmM1MmIwM2JkMi4uMzEzNTJlMmJlYzI5IDEwMDY0NAotLS0gYS9mcy9uZnNkL25mczR4ZHIu YworKysgYi9mcy9uZnNkL25mczR4ZHIuYwpAQCAtOTMxLDggKzkzMSw5IEBAIG5mc2Q0X2RlY29k ZV9yZW5hbWUoc3RydWN0IG5mc2Q0X2NvbXBvdW5kYXJncyAqYXJncCwgc3RydWN0IG5mc2Q0X3Jl bmFtZSAqcmVuYW1lCiAKIAlSRUFEX0JVRig0KTsKIAlSRUFEMzIocmVuYW1lLT5ybl9zbmFtZWxl bik7Ci0JUkVBRF9CVUYocmVuYW1lLT5ybl9zbmFtZWxlbiArIDQpOworCVJFQURfQlVGKHJlbmFt ZS0+cm5fc25hbWVsZW4pOwogCVNBVkVNRU0ocmVuYW1lLT5ybl9zbmFtZSwgcmVuYW1lLT5ybl9z bmFtZWxlbik7CisJUkVBRF9CVUYoNCk7CiAJUkVBRDMyKHJlbmFtZS0+cm5fdG5hbWVsZW4pOwog CVJFQURfQlVGKHJlbmFtZS0+cm5fdG5hbWVsZW4pOwogCVNBVkVNRU0ocmVuYW1lLT5ybl90bmFt ZSwgcmVuYW1lLT5ybl90bmFtZWxlbik7CkBAIC0xMDA5LDEzICsxMDEwLDE0IEBAIG5mc2Q0X2Rl Y29kZV9zZXRjbGllbnRpZChzdHJ1Y3QgbmZzZDRfY29tcG91bmRhcmdzICphcmdwLCBzdHJ1Y3Qg bmZzZDRfc2V0Y2xpZW50CiAJUkVBRF9CVUYoOCk7CiAJUkVBRDMyKHNldGNsaWVudGlkLT5zZV9j YWxsYmFja19wcm9nKTsKIAlSRUFEMzIoc2V0Y2xpZW50aWQtPnNlX2NhbGxiYWNrX25ldGlkX2xl bik7Ci0KLQlSRUFEX0JVRihzZXRjbGllbnRpZC0+c2VfY2FsbGJhY2tfbmV0aWRfbGVuICsgNCk7 CisJUkVBRF9CVUYoc2V0Y2xpZW50aWQtPnNlX2NhbGxiYWNrX25ldGlkX2xlbik7CiAJU0FWRU1F TShzZXRjbGllbnRpZC0+c2VfY2FsbGJhY2tfbmV0aWRfdmFsLCBzZXRjbGllbnRpZC0+c2VfY2Fs bGJhY2tfbmV0aWRfbGVuKTsKKwlSRUFEX0JVRig0KTsKIAlSRUFEMzIoc2V0Y2xpZW50aWQtPnNl X2NhbGxiYWNrX2FkZHJfbGVuKTsKIAotCVJFQURfQlVGKHNldGNsaWVudGlkLT5zZV9jYWxsYmFj a19hZGRyX2xlbiArIDQpOworCVJFQURfQlVGKHNldGNsaWVudGlkLT5zZV9jYWxsYmFja19hZGRy X2xlbik7CiAJU0FWRU1FTShzZXRjbGllbnRpZC0+c2VfY2FsbGJhY2tfYWRkcl92YWwsIHNldGNs aWVudGlkLT5zZV9jYWxsYmFja19hZGRyX2xlbik7CisJUkVBRF9CVUYoNCk7CiAJUkVBRDMyKHNl dGNsaWVudGlkLT5zZV9jYWxsYmFja19pZGVudCk7CiAKIAlERUNPREVfVEFJTDsKQEAgLTE1ODQs OCArMTU4Niw5IEBAIG5mc2Q0X2RlY29kZV9jb21wb3VuZChzdHJ1Y3QgbmZzZDRfY29tcG91bmRh cmdzICphcmdwKQogCSAqLwogCVJFQURfQlVGKDQpOwogCVJFQUQzMihhcmdwLT50YWdsZW4pOwot CVJFQURfQlVGKGFyZ3AtPnRhZ2xlbiArIDgpOworCVJFQURfQlVGKGFyZ3AtPnRhZ2xlbik7CiAJ U0FWRU1FTShhcmdwLT50YWcsIGFyZ3AtPnRhZ2xlbik7CisJUkVBRF9CVUYoOCk7CiAJUkVBRDMy KGFyZ3AtPm1pbm9ydmVyc2lvbik7CiAJUkVBRDMyKGFyZ3AtPm9wY250KTsKIApkaWZmIC0tZ2l0 IGEvZnMvb2NmczIvZGxtL2RsbWNvbnZlcnQuYyBiL2ZzL29jZnMyL2RsbS9kbG1jb252ZXJ0LmMK aW5kZXggMjlhODg2ZDFlODJjLi5mNjViZGNmNjE1MjYgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2Rs bS9kbG1jb252ZXJ0LmMKKysrIGIvZnMvb2NmczIvZGxtL2RsbWNvbnZlcnQuYwpAQCAtMjY1LDYg KzI2NSw3IEBAIGVudW0gZGxtX3N0YXR1cyBkbG1jb252ZXJ0X3JlbW90ZShzdHJ1Y3QgZGxtX2N0 eHQgKmRsbSwKIAkJCQkgIHN0cnVjdCBkbG1fbG9jayAqbG9jaywgaW50IGZsYWdzLCBpbnQgdHlw ZSkKIHsKIAllbnVtIGRsbV9zdGF0dXMgc3RhdHVzOworCXU4IG9sZF9vd25lciA9IHJlcy0+b3du ZXI7CiAKIAltbG9nKDAsICJ0eXBlPSVkLCBjb252ZXJ0X3R5cGU9JWQsIGJ1c3k9JWRcbiIsIGxv Y2stPm1sLnR5cGUsCiAJICAgICBsb2NrLT5tbC5jb252ZXJ0X3R5cGUsIHJlcy0+c3RhdGUgJiBE TE1fTE9DS19SRVNfSU5fUFJPR1JFU1MpOwpAQCAtMjkwLDYgKzI5MSwxOSBAQCBlbnVtIGRsbV9z dGF0dXMgZGxtY29udmVydF9yZW1vdGUoc3RydWN0IGRsbV9jdHh0ICpkbG0sCiAJCXN0YXR1cyA9 IERMTV9ERU5JRUQ7CiAJCWdvdG8gYmFpbDsKIAl9CisKKwlpZiAobG9jay0+bWwudHlwZSA9PSB0 eXBlICYmIGxvY2stPm1sLmNvbnZlcnRfdHlwZSA9PSBMS01fSVZNT0RFKSB7CisJCW1sb2coMCwg Imxhc3QgY29udmVydCByZXF1ZXN0IHJldHVybmVkIERMTV9SRUNPVkVSSU5HLCBidXQgIgorCQkg ICAgICJvd25lciBoYXMgYWxyZWFkeSBxdWV1ZWQgYW5kIHNlbnQgYXN0IHRvIG1lLiByZXMgJS4q cywgIgorCQkgICAgICIoY29va2llPSV1OiVsbHUsIHR5cGU9JWQsIGNvbnY9JWQpXG4iLAorCQkg ICAgIHJlcy0+bG9ja25hbWUubGVuLCByZXMtPmxvY2tuYW1lLm5hbWUsCisJCSAgICAgZGxtX2dl dF9sb2NrX2Nvb2tpZV9ub2RlKGJlNjRfdG9fY3B1KGxvY2stPm1sLmNvb2tpZSkpLAorCQkgICAg IGRsbV9nZXRfbG9ja19jb29raWVfc2VxKGJlNjRfdG9fY3B1KGxvY2stPm1sLmNvb2tpZSkpLAor CQkgICAgIGxvY2stPm1sLnR5cGUsIGxvY2stPm1sLmNvbnZlcnRfdHlwZSk7CisJCXN0YXR1cyA9 IERMTV9OT1JNQUw7CisJCWdvdG8gYmFpbDsKKwl9CisKIAlyZXMtPnN0YXRlIHw9IERMTV9MT0NL X1JFU19JTl9QUk9HUkVTUzsKIAkvKiBtb3ZlIGxvY2sgdG8gbG9jYWwgY29udmVydCBxdWV1ZSAq LwogCS8qIGRvIG5vdCBhbHRlciBsb2NrIHJlZmNvdW50LiAgc3dpdGNoaW5nIGxpc3RzLiAqLwpA QCAtMzE5LDExICszMzMsMTkgQEAgZW51bSBkbG1fc3RhdHVzIGRsbWNvbnZlcnRfcmVtb3RlKHN0 cnVjdCBkbG1fY3R4dCAqZGxtLAogCXNwaW5fbG9jaygmcmVzLT5zcGlubG9jayk7CiAJcmVzLT5z dGF0ZSAmPSB+RExNX0xPQ0tfUkVTX0lOX1BST0dSRVNTOwogCWxvY2stPmNvbnZlcnRfcGVuZGlu ZyA9IDA7Ci0JLyogaWYgaXQgZmFpbGVkLCBtb3ZlIGl0IGJhY2sgdG8gZ3JhbnRlZCBxdWV1ZSAq LworCS8qIGlmIGl0IGZhaWxlZCwgbW92ZSBpdCBiYWNrIHRvIGdyYW50ZWQgcXVldWUuCisJICog aWYgbWFzdGVyIHJldHVybnMgRExNX05PUk1BTCBhbmQgdGhlbiBkb3duIGJlZm9yZSBzZW5kaW5n IGFzdCwKKwkgKiBpdCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gbW92ZWQgdG8gZ3JhbnRlZCBxdWV1 ZSwgcmVzZXQgdG8KKwkgKiBETE1fUkVDT1ZFUklORyBhbmQgcmV0cnkgY29udmVydCAqLwogCWlm IChzdGF0dXMgIT0gRExNX05PUk1BTCkgewogCQlpZiAoc3RhdHVzICE9IERMTV9OT1RRVUVVRUQp CiAJCQlkbG1fZXJyb3Ioc3RhdHVzKTsKIAkJZGxtX3JldmVydF9wZW5kaW5nX2NvbnZlcnQocmVz LCBsb2NrKTsKKwl9IGVsc2UgaWYgKChyZXMtPnN0YXRlICYgRExNX0xPQ0tfUkVTX1JFQ09WRVJJ TkcpIHx8CisJCQkob2xkX293bmVyICE9IHJlcy0+b3duZXIpKSB7CisJCW1sb2coMCwgInJlcyAl LipzIGlzIGluIHJlY292ZXJpbmcgb3IgaGFzIGJlZW4gcmVjb3ZlcmVkLlxuIiwKKwkJCQlyZXMt PmxvY2tuYW1lLmxlbiwgcmVzLT5sb2NrbmFtZS5uYW1lKTsKKwkJc3RhdHVzID0gRExNX1JFQ09W RVJJTkc7CiAJfQogYmFpbDoKIAlzcGluX3VubG9jaygmcmVzLT5zcGlubG9jayk7CmRpZmYgLS1n aXQgYS9mcy9vY2ZzMi9kbG0vZGxtcmVjb3ZlcnkuYyBiL2ZzL29jZnMyL2RsbS9kbG1yZWNvdmVy eS5jCmluZGV4IGJmM2YwMDgwOWFjMi4uMTcxZGIzZjkxZDEwIDEwMDY0NAotLS0gYS9mcy9vY2Zz Mi9kbG0vZGxtcmVjb3ZlcnkuYworKysgYi9mcy9vY2ZzMi9kbG0vZGxtcmVjb3ZlcnkuYwpAQCAt MjAzOSw3ICsyMDM5LDYgQEAgdm9pZCBkbG1fbW92ZV9sb2NrcmVzX3RvX3JlY292ZXJ5X2xpc3Qo c3RydWN0IGRsbV9jdHh0ICpkbG0sCiAJCQlkbG1fbG9ja19nZXQobG9jayk7CiAJCQlpZiAobG9j ay0+Y29udmVydF9wZW5kaW5nKSB7CiAJCQkJLyogbW92ZSBjb252ZXJ0aW5nIGxvY2sgYmFjayB0 byBncmFudGVkICovCi0JCQkJQlVHX09OKGkgIT0gRExNX0NPTlZFUlRJTkdfTElTVCk7CiAJCQkJ bWxvZygwLCAibm9kZSBkaWVkIHdpdGggY29udmVydCBwZW5kaW5nICIKIAkJCQkgICAgICJvbiAl LipzLiBtb3ZlIGJhY2sgdG8gZ3JhbnRlZCBsaXN0LlxuIiwKIAkJCQkgICAgIHJlcy0+bG9ja25h bWUubGVuLCByZXMtPmxvY2tuYW1lLm5hbWUpOwpkaWZmIC0tZ2l0IGEvZnMvb3Blbi5jIGIvZnMv b3Blbi5jCmluZGV4IGI4NDg1ZDNjZWY5Ny4uY2ExNTVkNGYyM2QzIDEwMDY0NAotLS0gYS9mcy9v cGVuLmMKKysrIGIvZnMvb3Blbi5jCkBAIC05NTgsMTIgKzk1OCwxMCBAQCBzdHJ1Y3QgZmlsZSAq ZmlscF9vcGVuKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZmxhZ3MsIGludCBtb2RlKQogRVhQ T1JUX1NZTUJPTChmaWxwX29wZW4pOwogCiBzdHJ1Y3QgZmlsZSAqZmlsZV9vcGVuX3Jvb3Qoc3Ry dWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgdmZzbW91bnQgKm1udCwKLQkJCSAgICBjb25zdCBj aGFyICpmaWxlbmFtZSwgaW50IGZsYWdzKQorCQkJICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBp bnQgZmxhZ3MsIHVtb2RlX3QgbW9kZSkKIHsKIAlzdHJ1Y3Qgb3Blbl9mbGFncyBvcDsKLQlpbnQg bG9va3VwID0gYnVpbGRfb3Blbl9mbGFncyhmbGFncywgMCwgJm9wKTsKLQlpZiAoZmxhZ3MgJiBP X0NSRUFUKQotCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwlpbnQgbG9va3VwID0gYnVpbGRf b3Blbl9mbGFncyhmbGFncywgbW9kZSwgJm9wKTsKIAlpZiAoIWZpbGVuYW1lICYmIChmbGFncyAm IE9fRElSRUNUT1JZKSkKIAkJaWYgKCFkZW50cnktPmRfaW5vZGUtPmlfb3AtPmxvb2t1cCkKIAkJ CXJldHVybiBFUlJfUFRSKC1FTk9URElSKTsKZGlmZiAtLWdpdCBhL2ZzL3NwbGljZS5jIGIvZnMv c3BsaWNlLmMKaW5kZXggNzFjODBmNDQ5ZjkxLi40NTkxMjhiYTA4NGEgMTAwNjQ0Ci0tLSBhL2Zz L3NwbGljZS5jCisrKyBiL2ZzL3NwbGljZS5jCkBAIC0xODgsNiArMTg4LDkgQEAgc3NpemVfdCBz cGxpY2VfdG9fcGlwZShzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLAogCXVuc2lnbmVkIGlu dCBzcGRfcGFnZXMgPSBzcGQtPm5yX3BhZ2VzOwogCWludCByZXQsIGRvX3dha2V1cCwgcGFnZV9u cjsKIAorCWlmICghc3BkX3BhZ2VzKQorCQlyZXR1cm4gMDsKKwogCXJldCA9IDA7CiAJZG9fd2Fr ZXVwID0gMDsKIAlwYWdlX25yID0gMDsKZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfYXR0cl9sZWFm LmMgYi9mcy94ZnMveGZzX2F0dHJfbGVhZi5jCmluZGV4IGMxYjU1ZTU5NjU1MS4uZTA1MDAyMmY3 MTQwIDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX2F0dHJfbGVhZi5jCisrKyBiL2ZzL3hmcy94ZnNf YXR0cl9sZWFmLmMKQEAgLTcyMSw4ICs3MjEsMTAgQEAgeGZzX2F0dHJfc2hvcnRmb3JtX2xpc3Qo eGZzX2F0dHJfbGlzdF9jb250ZXh0X3QgKmNvbnRleHQpCiAJCQkJCXNicC0+bmFtZWxlbiwKIAkJ CQkJc2JwLT52YWx1ZWxlbiwKIAkJCQkJJnNicC0+bmFtZVtzYnAtPm5hbWVsZW5dKTsKLQkJaWYg KGVycm9yKQorCQlpZiAoZXJyb3IpIHsKKwkJCWttZW1fZnJlZShzYnVmKTsKIAkJCXJldHVybiBl cnJvcjsKKwkJfQogCQlpZiAoY29udGV4dC0+c2Vlbl9lbm91Z2gpCiAJCQlicmVhazsKIAkJY3Vy c29yLT5vZmZzZXQrKzsKQEAgLTI0MDQsMTQgKzI0MDYsMTMgQEAgeGZzX2F0dHJfbGVhZl9saXN0 X2ludCh4ZnNfZGFidWZfdCAqYnAsIHhmc19hdHRyX2xpc3RfY29udGV4dF90ICpjb250ZXh0KQog CQkJCWFyZ3Mucm10Ymxrbm8gPSBiZTMyX3RvX2NwdShuYW1lX3JtdC0+dmFsdWVibGspOwogCQkJ CWFyZ3Mucm10YmxrY250ID0gWEZTX0JfVE9fRlNCKGFyZ3MuZHAtPmlfbW91bnQsIHZhbHVlbGVu KTsKIAkJCQlyZXR2YWwgPSB4ZnNfYXR0cl9ybXR2YWxfZ2V0KCZhcmdzKTsKLQkJCQlpZiAocmV0 dmFsKQotCQkJCQlyZXR1cm4gcmV0dmFsOwotCQkJCXJldHZhbCA9IGNvbnRleHQtPnB1dF9saXN0 ZW50KGNvbnRleHQsCi0JCQkJCQllbnRyeS0+ZmxhZ3MsCi0JCQkJCQluYW1lX3JtdC0+bmFtZSwK LQkJCQkJCShpbnQpbmFtZV9ybXQtPm5hbWVsZW4sCi0JCQkJCQl2YWx1ZWxlbiwKLQkJCQkJCWFy Z3MudmFsdWUpOworCQkJCWlmICghcmV0dmFsKQorCQkJCQlyZXR2YWwgPSBjb250ZXh0LT5wdXRf bGlzdGVudChjb250ZXh0LAorCQkJCQkJCWVudHJ5LT5mbGFncywKKwkJCQkJCQluYW1lX3JtdC0+ bmFtZSwKKwkJCQkJCQkoaW50KW5hbWVfcm10LT5uYW1lbGVuLAorCQkJCQkJCXZhbHVlbGVuLAor CQkJCQkJCWFyZ3MudmFsdWUpOwogCQkJCWttZW1fZnJlZShhcmdzLnZhbHVlKTsKIAkJCX0gZWxz ZSB7CiAJCQkJcmV0dmFsID0gY29udGV4dC0+cHV0X2xpc3RlbnQoY29udGV4dCwKZGlmZiAtLWdp dCBhL2luY2x1ZGUvbGludXgvZGV2aWNlLW1hcHBlci5oIGIvaW5jbHVkZS9saW51eC9kZXZpY2Ut bWFwcGVyLmgKaW5kZXggNjcxMmFiNjk4Y2FkLi4yMTNhODcwMDE0NGIgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbGludXgvZGV2aWNlLW1hcHBlci5oCisrKyBiL2luY2x1ZGUvbGludXgvZGV2aWNlLW1h cHBlci5oCkBAIC0xMTYsNiArMTE2LDggQEAgc3RydWN0IGRtX2RldiB7CiAJY2hhciBuYW1lWzE2 XTsKIH07CiAKK2Rldl90IGRtX2dldF9kZXZfdChjb25zdCBjaGFyICpwYXRoKTsKKwogLyoKICAq IENvbnN0cnVjdG9ycyBzaG91bGQgY2FsbCB0aGVzZSBmdW5jdGlvbnMgdG8gZW5zdXJlIGRlc3Rp bmF0aW9uIGRldmljZXMKICAqIGFyZSBvcGVuZWQvY2xvc2VkIGNvcnJlY3RseS4KZGlmZiAtLWdp dCBhL2luY2x1ZGUvbGludXgvZnMuaCBiL2luY2x1ZGUvbGludXgvZnMuaAppbmRleCBkZDc0Mzg1 OWYwNGUuLjQ0ZTg1NmJhOGE3OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9mcy5oCisrKyBi L2luY2x1ZGUvbGludXgvZnMuaApAQCAtMjA3Myw3ICsyMDczLDcgQEAgZXh0ZXJuIGxvbmcgZG9f c3lzX29wZW4oaW50IGRmZCwgY29uc3QgY2hhciBfX3VzZXIgKmZpbGVuYW1lLCBpbnQgZmxhZ3Ms CiAJCQlpbnQgbW9kZSk7CiBleHRlcm4gc3RydWN0IGZpbGUgKmZpbHBfb3Blbihjb25zdCBjaGFy ICosIGludCwgaW50KTsKIGV4dGVybiBzdHJ1Y3QgZmlsZSAqZmlsZV9vcGVuX3Jvb3Qoc3RydWN0 IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwKLQkJCQkgICBjb25zdCBjaGFyICosIGludCk7 CisJCQkJICAgY29uc3QgY2hhciAqLCBpbnQsIHVtb2RlX3QpOwogZXh0ZXJuIHN0cnVjdCBmaWxl ICogZGVudHJ5X29wZW4oc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwgaW50LAog CQkJCSBjb25zdCBzdHJ1Y3QgY3JlZCAqKTsKIGV4dGVybiBpbnQgZmlscF9jbG9zZShzdHJ1Y3Qg ZmlsZSAqLCBmbF9vd25lcl90IGlkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaXB2Ni5o IGIvaW5jbHVkZS9saW51eC9pcHY2LmgKaW5kZXggMDBlZjAwZDBmMzE1Li4yNzI5ZDA5ZTljMTEg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaXB2Ni5oCisrKyBiL2luY2x1ZGUvbGludXgvaXB2 Ni5oCkBAIC0xNTMsNiArMTUzLDcgQEAgc3RydWN0IGlwdjZfZGV2Y29uZiB7CiAjZW5kaWYKIAlf X3MzMgkJbWF4X2FkZHJlc3NlczsKIAlfX3MzMgkJYWNjZXB0X3JhX2RlZnJ0cjsKKwlfX3MzMgkJ YWNjZXB0X3JhX21pbl9ob3BfbGltaXQ7CiAJX19zMzIJCWFjY2VwdF9yYV9waW5mbzsKICNpZmRl ZiBDT05GSUdfSVBWNl9ST1VURVJfUFJFRgogCV9fczMyCQlhY2NlcHRfcmFfcnRyX3ByZWY7CkBA IC0yMTMsNiArMjE0LDggQEAgZW51bSB7CiAJREVWQ09ORl9ESVNBQkxFX0lQVjYsCiAJREVWQ09O Rl9BQ0NFUFRfREFELAogCURFVkNPTkZfRk9SQ0VfVExMQU8sCisJREVWQ09ORl9VU0VfT0lGX0FE RFJTX09OTFkgPSAzNywKKwlERVZDT05GX0FDQ0VQVF9SQV9NSU5fSE9QX0xJTUlULAogCURFVkNP TkZfTUFYCiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oIGIvaW5j bHVkZS9saW51eC9uZXRkZXZpY2UuaAppbmRleCA0YjA0MDk3Yzc0OGMuLjcwMGM5NDgyMWRiMSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4 L25ldGRldmljZS5oCkBAIC0yOTMsNiArMjkzLDcgQEAgc3RydWN0IGhlYWRlcl9vcHMgewogCXZv aWQJKCpjYWNoZV91cGRhdGUpKHN0cnVjdCBoaF9jYWNoZSAqaGgsCiAJCQkJY29uc3Qgc3RydWN0 IG5ldF9kZXZpY2UgKmRldiwKIAkJCQljb25zdCB1bnNpZ25lZCBjaGFyICpoYWRkcik7CisJYm9v bAkoKnZhbGlkYXRlKShjb25zdCBjaGFyICpsbF9oZWFkZXIsIHVuc2lnbmVkIGludCBsZW4pOwog fTsKIAogLyogVGhlc2UgZmxhZyBiaXRzIGFyZSBwcml2YXRlIHRvIHRoZSBnZW5lcmljIG5ldHdv cmsgcXVldWVpbmcKQEAgLTExMTksNyArMTEyMCw3IEBAIHN0cnVjdCBuZXRfZGV2aWNlIHsKIAog CXVuc2lnbmVkIGludAkJbXR1OwkvKiBpbnRlcmZhY2UgTVRVIHZhbHVlCQkqLwogCXVuc2lnbmVk IHNob3J0CQl0eXBlOwkvKiBpbnRlcmZhY2UgaGFyZHdhcmUgdHlwZQkqLwotCXVuc2lnbmVkIHNo b3J0CQloYXJkX2hlYWRlcl9sZW47CS8qIGhhcmR3YXJlIGhkciBsZW5ndGgJKi8KKwl1bnNpZ25l ZCBzaG9ydAkJaGFyZF9oZWFkZXJfbGVuOyAvKiBtYXhpbXVtIGhhcmR3YXJlIGhkciBsZW5ndGgJ Ki8KIAogCS8qIGV4dHJhIGhlYWQtIGFuZCB0YWlscm9vbSB0aGUgaGFyZHdhcmUgbWF5IG5lZWQs IGJ1dCBub3QgaW4gYWxsIGNhc2VzCiAJICogY2FuIHRoaXMgYmUgZ3VhcmFudGVlZCwgZXNwZWNp YWxseSB0YWlscm9vbS4gU29tZSBjYXNlcyBhbHNvIHVzZQpAQCAtMTcyOCw2ICsxNzI5LDI0IEBA IHN0YXRpYyBpbmxpbmUgaW50IGRldl9yZWJ1aWxkX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogCXJldHVybiBkZXYtPmhlYWRlcl9vcHMtPnJlYnVpbGQoc2tiKTsKIH0KIAorLyogbGxfaGVh ZGVyIG11c3QgaGF2ZSBhdCBsZWFzdCBoYXJkX2hlYWRlcl9sZW4gYWxsb2NhdGVkICovCitzdGF0 aWMgaW5saW5lIGJvb2wgZGV2X3ZhbGlkYXRlX2hlYWRlcihjb25zdCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LAorCQkJCSAgICAgICBjaGFyICpsbF9oZWFkZXIsIGludCBsZW4pCit7CisJaWYgKGxp a2VseShsZW4gPj0gZGV2LT5oYXJkX2hlYWRlcl9sZW4pKQorCQlyZXR1cm4gdHJ1ZTsKKworCWlm IChjYXBhYmxlKENBUF9TWVNfUkFXSU8pKSB7CisJCW1lbXNldChsbF9oZWFkZXIgKyBsZW4sIDAs IGRldi0+aGFyZF9oZWFkZXJfbGVuIC0gbGVuKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaWYg KGRldi0+aGVhZGVyX29wcyAmJiBkZXYtPmhlYWRlcl9vcHMtPnZhbGlkYXRlKQorCQlyZXR1cm4g ZGV2LT5oZWFkZXJfb3BzLT52YWxpZGF0ZShsbF9oZWFkZXIsIGxlbik7CisKKwlyZXR1cm4gZmFs c2U7Cit9CisKIHR5cGVkZWYgaW50IGdpZmNvbmZfZnVuY190KHN0cnVjdCBuZXRfZGV2aWNlICog ZGV2LCBjaGFyIF9fdXNlciAqIGJ1ZnB0ciwgaW50IGxlbik7CiBleHRlcm4gaW50CQlyZWdpc3Rl cl9naWZjb25mKHVuc2lnbmVkIGludCBmYW1pbHksIGdpZmNvbmZfZnVuY190ICogZ2lmY29uZik7 CiBzdGF0aWMgaW5saW5lIGludCB1bnJlZ2lzdGVyX2dpZmNvbmYodW5zaWduZWQgaW50IGZhbWls eSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpLmggYi9pbmNsdWRlL2xpbnV4L3BjaS5o CmluZGV4IGYwYzQ0OTU5YmVlYy4uZGQ4YmI4MDc3NzM1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xp bnV4L3BjaS5oCisrKyBiL2luY2x1ZGUvbGludXgvcGNpLmgKQEAgLTMyNyw2ICszMjcsNyBAQCBz dHJ1Y3QgcGNpX2RldiB7CiAJdW5zaWduZWQgaW50ICAgIGlzX2hvdHBsdWdfYnJpZGdlOjE7CiAJ dW5zaWduZWQgaW50ICAgIF9fYWVyX2Zpcm13YXJlX2ZpcnN0X3ZhbGlkOjE7CiAJdW5zaWduZWQg aW50CV9fYWVyX2Zpcm13YXJlX2ZpcnN0OjE7CisJdW5zaWduZWQgaW50CW5vbl9jb21wbGlhbnRf YmFyczoxOwkvKiBicm9rZW4gQkFSczsgaWdub3JlIHRoZW0gKi8KIAlwY2lfZGV2X2ZsYWdzX3Qg ZGV2X2ZsYWdzOwogCWF0b21pY190CWVuYWJsZV9jbnQ7CS8qIHBjaV9lbmFibGVfZGV2aWNlIGhh cyBiZWVuIGNhbGxlZCAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pbmV0X2Vjbi5oIGIv aW5jbHVkZS9uZXQvaW5ldF9lY24uaAppbmRleCAyZmExNDY5MTg2OWMuLjE4ZjJkMTA0YjZiZSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaW5ldF9lY24uaAorKysgYi9pbmNsdWRlL25ldC9pbmV0 X2Vjbi5oCkBAIC0xMDksMTEgKzEwOSwyNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaXB2NF9jb3B5 X2RzY3AodW5zaWduZWQgaW50IGRzY3AsIHN0cnVjdCBpcGhkciAqaW5uZXIpCiAKIHN0cnVjdCBp cHY2aGRyOwogCi1zdGF0aWMgaW5saW5lIGludCBJUDZfRUNOX3NldF9jZShzdHJ1Y3QgaXB2Nmhk ciAqaXBoKQorLyogTm90ZToKKyAqIElQX0VDTl9zZXRfY2UoKSBoYXMgdG8gdHdlYWsgSVBWNCBj aGVja3N1bSB3aGVuIHNldHRpbmcgQ0UsCisgKiBtZWFuaW5nIGJvdGggY2hhbmdlcyBoYXZlIG5v IGVmZmVjdCBvbiBza2ItPmNzdW0gaWYvd2hlbiBDSEVDS1NVTV9DT01QTEVURQorICogSW4gSVB2 NiBjYXNlLCBubyBjaGVja3N1bSBjb21wZW5zYXRlcyB0aGUgY2hhbmdlIGluIElQdjYgaGVhZGVy LAorICogc28gd2UgaGF2ZSB0byB1cGRhdGUgc2tiLT5jc3VtLgorICovCitzdGF0aWMgaW5saW5l IGludCBJUDZfRUNOX3NldF9jZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaXB2NmhkciAq aXBoKQogeworCV9fYmUzMiBmcm9tLCB0bzsKKwogCWlmIChJTkVUX0VDTl9pc19ub3RfZWN0KGlw djZfZ2V0X2RzZmllbGQoaXBoKSkpCiAJCXJldHVybiAwOwotCSooX19iZTMyKilpcGggfD0gaHRv bmwoSU5FVF9FQ05fQ0UgPDwgMjApOworCisJZnJvbSA9ICooX19iZTMyICopaXBoOworCXRvID0g ZnJvbSB8IGh0b25sKElORVRfRUNOX0NFIDw8IDIwKTsKKwkqKF9fYmUzMiAqKWlwaCA9IHRvOwor CWlmIChza2ItPmlwX3N1bW1lZCA9PSBDSEVDS1NVTV9DT01QTEVURSkKKwkJc2tiLT5jc3VtID0g Y3N1bV9hZGQoY3N1bV9zdWIoc2tiLT5jc3VtLCBmcm9tKSwgdG8pOwogCXJldHVybiAxOwogfQog CkBAIC0xMzgsNyArMTUxLDcgQEAgc3RhdGljIGlubGluZSBpbnQgSU5FVF9FQ05fc2V0X2NlKHN0 cnVjdCBza19idWZmICpza2IpCiAKIAljYXNlIGNwdV90b19iZTE2KEVUSF9QX0lQVjYpOgogCQlp ZiAoc2tiLT5uZXR3b3JrX2hlYWRlciArIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikgPD0gc2tiLT50 YWlsKQotCQkJcmV0dXJuIElQNl9FQ05fc2V0X2NlKGlwdjZfaGRyKHNrYikpOworCQkJcmV0dXJu IElQNl9FQ05fc2V0X2NlKHNrYiwgaXB2Nl9oZHIoc2tiKSk7CiAJCWJyZWFrOwogCX0KIApkaWZm IC0tZ2l0IGEva2VybmVsL3NjaGVkLmMgYi9rZXJuZWwvc2NoZWQuYwppbmRleCBhN2E0MGI1Njc3 ZjAuLjMzYWMxZTM0ODU0MiAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkLmMKKysrIGIva2VybmVs L3NjaGVkLmMKQEAgLTIwODQsNiArMjA4NCwxOSBAQCBFWFBPUlRfU1lNQk9MX0dQTChhY2NvdW50 X3N5c3RlbV92dGltZSk7CiAKICNlbmRpZiAvKiBDT05GSUdfSVJRX1RJTUVfQUNDT1VOVElORyAq LwogCitzdGF0aWMgaW5saW5lIHZvaWQgYWNjb3VudF9yZXNldF9ycShzdHJ1Y3QgcnEgKnJxKQor eworI2lmZGVmIENPTkZJR19JUlFfVElNRV9BQ0NPVU5USU5HCisJcnEtPnByZXZfaXJxX3RpbWUg PSAwOworI2VuZGlmCisjaWZkZWYgQ09ORklHX1BBUkFWSVJUCisJcnEtPnByZXZfc3RlYWxfdGlt ZSA9IDA7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfUEFSQVZJUlRfVElNRV9BQ0NPVU5USU5HCisJ cnEtPnByZXZfc3RlYWxfdGltZV9ycSA9IDA7CisjZW5kaWYKK30KKwogI2lmZGVmIENPTkZJR19Q QVJBVklSVAogc3RhdGljIGlubGluZSB1NjQgc3RlYWxfdGlja3ModTY0IHN0ZWFsKQogewpAQCAt Njg1MSw2ICs2ODY0LDcgQEAgbWlncmF0aW9uX2NhbGwoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpu ZmIsIHVuc2lnbmVkIGxvbmcgYWN0aW9uLCB2b2lkICpoY3B1KQogCiAJY2FzZSBDUFVfVVBfUFJF UEFSRToKIAkJcnEtPmNhbGNfbG9hZF91cGRhdGUgPSBjYWxjX2xvYWRfdXBkYXRlOworCQlhY2Nv dW50X3Jlc2V0X3JxKHJxKTsKIAkJYnJlYWs7CiAKIAljYXNlIENQVV9PTkxJTkU6CmRpZmYgLS1n aXQgYS9rZXJuZWwvc3lzY3RsX2JpbmFyeS5jIGIva2VybmVsL3N5c2N0bF9iaW5hcnkuYwppbmRl eCA5ZjlhYTMyMDU5NzMuLmNkMmVhMDJjNWE5ZCAxMDA2NDQKLS0tIGEva2VybmVsL3N5c2N0bF9i aW5hcnkuYworKysgYi9rZXJuZWwvc3lzY3RsX2JpbmFyeS5jCkBAIC0xMzQ2LDcgKzEzNDYsNyBA QCBzdGF0aWMgc3NpemVfdCBiaW5hcnlfc3lzY3RsKGNvbnN0IGludCAqbmFtZSwgaW50IG5sZW4s CiAJfQogCiAJbW50ID0gY3VycmVudC0+bnNwcm94eS0+cGlkX25zLT5wcm9jX21udDsKLQlmaWxl ID0gZmlsZV9vcGVuX3Jvb3QobW50LT5tbnRfcm9vdCwgbW50LCBwYXRobmFtZSwgZmxhZ3MpOwor CWZpbGUgPSBmaWxlX29wZW5fcm9vdChtbnQtPm1udF9yb290LCBtbnQsIHBhdGhuYW1lLCBmbGFn cywgMCk7CiAJcmVzdWx0ID0gUFRSX0VSUihmaWxlKTsKIAlpZiAoSVNfRVJSKGZpbGUpKQogCQln b3RvIG91dF9wdXRuYW1lOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlLmMgYi9rZXJu ZWwvdHJhY2UvdHJhY2UuYwppbmRleCAwYzM0OGE2M2JlNDkuLmY0YjkzYTIwNzAyNiAxMDA2NDQK LS0tIGEva2VybmVsL3RyYWNlL3RyYWNlLmMKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlLmMKQEAg LTM1NjUsNyArMzU2NSwxMCBAQCBzdGF0aWMgc3NpemVfdCB0cmFjaW5nX3NwbGljZV9yZWFkX3Bp cGUoc3RydWN0IGZpbGUgKmZpbHAsCiAKIAlzcGQubnJfcGFnZXMgPSBpOwogCi0JcmV0ID0gc3Bs aWNlX3RvX3BpcGUocGlwZSwgJnNwZCk7CisJaWYgKGkpCisJCXJldCA9IHNwbGljZV90b19waXBl KHBpcGUsICZzcGQpOworCWVsc2UKKwkJcmV0ID0gMDsKIG91dDoKIAlzcGxpY2Vfc2hyaW5rX3Nw ZCgmc3BkKTsKIAlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlX2ly cXNvZmYuYyBiL2tlcm5lbC90cmFjZS90cmFjZV9pcnFzb2ZmLmMKaW5kZXggMTYyNmUxYWVlNzFh Li43NmZiOTUwODhhN2UgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS90cmFjZV9pcnFzb2ZmLmMK KysrIGIva2VybmVsL3RyYWNlL3RyYWNlX2lycXNvZmYuYwpAQCAtMTE3LDggKzExNywxMiBAQCBz dGF0aWMgaW50IGZ1bmNfcHJvbG9nX2RlYyhzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAogCQlyZXR1 cm4gMDsKIAogCWxvY2FsX3NhdmVfZmxhZ3MoKmZsYWdzKTsKLQkvKiBzbGlnaHQgY2hhbmNlIHRv IGdldCBhIGZhbHNlIHBvc2l0aXZlIG9uIHRyYWNpbmdfY3B1ICovCi0JaWYgKCFpcnFzX2Rpc2Fi bGVkX2ZsYWdzKCpmbGFncykpCisJLyoKKwkgKiBTbGlnaHQgY2hhbmNlIHRvIGdldCBhIGZhbHNl IHBvc2l0aXZlIG9uIHRyYWNpbmdfY3B1LAorCSAqIGFsdGhvdWdoIEknbSBzdGFydGluZyB0byB0 aGluayB0aGVyZSBpc24ndCBhIGNoYW5jZS4KKwkgKiBMZWF2ZSB0aGlzIGZvciBub3cganVzdCB0 byBiZSBwYXJhbm9pZC4KKwkgKi8KKwlpZiAoIWlycXNfZGlzYWJsZWRfZmxhZ3MoKmZsYWdzKSAm JiAhcHJlZW1wdF9jb3VudCgpKQogCQlyZXR1cm4gMDsKIAogCSpkYXRhID0gdHItPmRhdGFbY3B1 XTsKZGlmZiAtLWdpdCBhL25ldC9heDI1L2F4MjVfaXAuYyBiL25ldC9heDI1L2F4MjVfaXAuYwpp bmRleCBjZjBjNDdhMjY1MzAuLmEwYzk5NTZiNWIyMyAxMDA2NDQKLS0tIGEvbmV0L2F4MjUvYXgy NV9pcC5jCisrKyBiL25ldC9heDI1L2F4MjVfaXAuYwpAQCAtMjMyLDkgKzIzMiwyNCBAQCBpbnQg YXgyNV9yZWJ1aWxkX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAjZW5kaWYKIAorc3Rh dGljIGJvb2wgYXgyNV92YWxpZGF0ZV9oZWFkZXIoY29uc3QgY2hhciAqaGVhZGVyLCB1bnNpZ25l ZCBpbnQgbGVuKQoreworCWF4MjVfZGlnaSBkaWdpOworCisJaWYgKCFsZW4pCisJCXJldHVybiBm YWxzZTsKKworCWlmIChoZWFkZXJbMF0pCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIGF4MjVf YWRkcl9wYXJzZShoZWFkZXIgKyAxLCBsZW4gLSAxLCBOVUxMLCBOVUxMLCAmZGlnaSwgTlVMTCwK KwkJCSAgICAgICBOVUxMKTsKK30KKwogY29uc3Qgc3RydWN0IGhlYWRlcl9vcHMgYXgyNV9oZWFk ZXJfb3BzID0gewogCS5jcmVhdGUgPSBheDI1X2hhcmRfaGVhZGVyLAogCS5yZWJ1aWxkID0gYXgy NV9yZWJ1aWxkX2hlYWRlciwKKwkudmFsaWRhdGUgPSBheDI1X3ZhbGlkYXRlX2hlYWRlciwKIH07 CiAKIEVYUE9SVF9TWU1CT0woYXgyNV9oYXJkX2hlYWRlcik7CmRpZmYgLS1naXQgYS9uZXQvYnJp ZGdlL2JyX3N0cF9pZi5jIGIvbmV0L2JyaWRnZS9icl9zdHBfaWYuYwppbmRleCAwZjdkYzYwOWYy N2QuLmFmYWZlNjYyZDQ1MiAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9zdHBfaWYuYworKysg Yi9uZXQvYnJpZGdlL2JyX3N0cF9pZi5jCkBAIC0xMjksNyArMTI5LDEwIEBAIHN0YXRpYyB2b2lk IGJyX3N0cF9zdGFydChzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIpCiAJY2hhciAqYXJndltdID0geyBC Ul9TVFBfUFJPRywgYnItPmRldi0+bmFtZSwgInN0YXJ0IiwgTlVMTCB9OwogCWNoYXIgKmVudnBb XSA9IHsgTlVMTCB9OwogCi0JciA9IGNhbGxfdXNlcm1vZGVoZWxwZXIoQlJfU1RQX1BST0csIGFy Z3YsIGVudnAsIFVNSF9XQUlUX1BST0MpOworCWlmIChuZXRfZXEoZGV2X25ldChici0+ZGV2KSwg JmluaXRfbmV0KSkKKwkJciA9IGNhbGxfdXNlcm1vZGVoZWxwZXIoQlJfU1RQX1BST0csIGFyZ3Ys IGVudnAsIFVNSF9XQUlUX1BST0MpOworCWVsc2UKKwkJciA9IC1FTk9FTlQ7CiAJaWYgKHIgPT0g MCkgewogCQlici0+c3RwX2VuYWJsZWQgPSBCUl9VU0VSX1NUUDsKIAkJYnJfZGVidWcoYnIsICJ1 c2Vyc3BhY2UgU1RQIHN0YXJ0ZWRcbiIpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZGV2aW5ldC5j IGIvbmV0L2lwdjQvZGV2aW5ldC5jCmluZGV4IGU0MWM0MGY0OGNmZS4uNzU3YmVlN2U4YTliIDEw MDY0NAotLS0gYS9uZXQvaXB2NC9kZXZpbmV0LmMKKysrIGIvbmV0L2lwdjQvZGV2aW5ldC5jCkBA IC0zMjYsNiArMzI2LDkgQEAgc3RhdGljIHZvaWQgX19pbmV0X2RlbF9pZmEoc3RydWN0IGluX2Rl dmljZSAqaW5fZGV2LCBzdHJ1Y3QgaW5faWZhZGRyICoqaWZhcCwKIAogCUFTU0VSVF9SVE5MKCk7 CiAKKwlpZiAoaW5fZGV2LT5kZWFkKQorCQlnb3RvIG5vX3Byb21vdGlvbnM7CisKIAkvKiAxLiBE ZWxldGluZyBwcmltYXJ5IGlmYWRkciBmb3JjZXMgZGVsZXRpb24gYWxsIHNlY29uZGFyaWVzCiAJ ICogdW5sZXNzIGFsaWFzIHByb21vdGlvbiBpcyBzZXQKIAkgKiovCkBAIC0zNzIsNiArMzc1LDcg QEAgc3RhdGljIHZvaWQgX19pbmV0X2RlbF9pZmEoc3RydWN0IGluX2RldmljZSAqaW5fZGV2LCBz dHJ1Y3QgaW5faWZhZGRyICoqaWZhcCwKIAkJCWZpYl9kZWxfaWZhZGRyKGlmYSwgaWZhMSk7CiAJ fQogCitub19wcm9tb3Rpb25zOgogCS8qIDIuIFVubGluayBpdCAqLwogCiAJKmlmYXAgPSBpZmEx LT5pZmFfbmV4dDsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jIGIvbmV0L2lw djQvZmliX2Zyb250ZW5kLmMKaW5kZXggOTJmYzVmNjlmNWRhLi43Njc4NGM3ZDU0ZGEgMTAwNjQ0 Ci0tLSBhL25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jCisrKyBiL25ldC9pcHY0L2ZpYl9mcm9udGVu ZC5jCkBAIC03NjQsNiArNzY0LDkgQEAgdm9pZCBmaWJfZGVsX2lmYWRkcihzdHJ1Y3QgaW5faWZh ZGRyICppZmEsIHN0cnVjdCBpbl9pZmFkZHIgKmlwcmltKQogCQlzdWJuZXQgPSAxOwogCX0KIAor CWlmIChpbl9kZXYtPmRlYWQpCisJCWdvdG8gbm9fcHJvbW90aW9uczsKKwogCS8qIERlbGV0aW9u IGlzIG1vcmUgY29tcGxpY2F0ZWQgdGhhbiBhZGQuCiAJICogV2Ugc2hvdWxkIHRha2UgY2FyZSBv ZiBub3QgdG8gZGVsZXRlIHRvbyBtdWNoIDotKQogCSAqCkBAIC04MzksNiArODQyLDcgQEAgdm9p ZCBmaWJfZGVsX2lmYWRkcihzdHJ1Y3QgaW5faWZhZGRyICppZmEsIHN0cnVjdCBpbl9pZmFkZHIg KmlwcmltKQogCQl9CiAJfQogCitub19wcm9tb3Rpb25zOgogCWlmICghKG9rICYgQlJEX09LKSkK IAkJZmliX21hZ2ljKFJUTV9ERUxST1VURSwgUlROX0JST0FEQ0FTVCwgaWZhLT5pZmFfYnJvYWRj YXN0LCAzMiwgcHJpbSk7CiAJaWYgKHN1Ym5ldCAmJiBpZmEtPmlmYV9wcmVmaXhsZW4gPCAzMSkg ewpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfZ3JlLmMgYi9uZXQvaXB2NC9pcF9ncmUuYwppbmRl eCA1ZjI4ZmFiZmZkNjcuLjYwMTI1NGU0ZjI4ZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZ3Jl LmMKKysrIGIvbmV0L2lwdjQvaXBfZ3JlLmMKQEAgLTUzNSw3ICs1MzUsNyBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgaXBncmVfZWNuX2RlY2Fwc3VsYXRlKGNvbnN0IHN0cnVjdCBpcGhkciAqaXBoLCBz dHJ1Y3Qgc2tfYnVmZgogCQlpZiAoc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUCkpIHsK IAkJCUlQX0VDTl9zZXRfY2UoaXBfaGRyKHNrYikpOwogCQl9IGVsc2UgaWYgKHNrYi0+cHJvdG9j b2wgPT0gaHRvbnMoRVRIX1BfSVBWNikpIHsKLQkJCUlQNl9FQ05fc2V0X2NlKGlwdjZfaGRyKHNr YikpOworCQkJSVA2X0VDTl9zZXRfY2Uoc2tiLCBpcHY2X2hkcihza2IpKTsKIAkJfQogCX0KIH0K ZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX3NvY2tnbHVlLmMgYi9uZXQvaXB2NC9pcF9zb2NrZ2x1 ZS5jCmluZGV4IDA0M2Q4ODIyYTEzOC4uYjM2NDhiYmVmMGRhIDEwMDY0NAotLS0gYS9uZXQvaXB2 NC9pcF9zb2NrZ2x1ZS5jCisrKyBiL25ldC9pcHY0L2lwX3NvY2tnbHVlLmMKQEAgLTIwNiw2ICsy MDYsOCBAQCBpbnQgaXBfY21zZ19zZW5kKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG1zZ2hkciAq bXNnLCBzdHJ1Y3QgaXBjbV9jb29raWUgKmlwYykKIAkJc3dpdGNoIChjbXNnLT5jbXNnX3R5cGUp IHsKIAkJY2FzZSBJUF9SRVRPUFRTOgogCQkJZXJyID0gY21zZy0+Y21zZ19sZW4gLSBDTVNHX0FM SUdOKHNpemVvZihzdHJ1Y3QgY21zZ2hkcikpOworCisJCQkvKiBPdXIgY2FsbGVyIGlzIHJlc3Bv bnNpYmxlIGZvciBmcmVlaW5nIGlwYy0+b3B0ICovCiAJCQllcnIgPSBpcF9vcHRpb25zX2dldChu ZXQsICZpcGMtPm9wdCwgQ01TR19EQVRBKGNtc2cpLAogCQkJCQkgICAgIGVyciA8IDQwID8gZXJy IDogNDApOwogCQkJaWYgKGVycikKZGlmZiAtLWdpdCBhL25ldC9pcHY0L25ldGZpbHRlci9hcnBf dGFibGVzLmMgYi9uZXQvaXB2NC9uZXRmaWx0ZXIvYXJwX3RhYmxlcy5jCmluZGV4IGJjYjZlNjE5 NzU5NS4uNTFhYmQxNDgwZTIxIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9uZXRmaWx0ZXIvYXJwX3Rh Ymxlcy5jCisrKyBiL25ldC9pcHY0L25ldGZpbHRlci9hcnBfdGFibGVzLmMKQEAgLTM1MCwxMSAr MzUwLDEyIEBAIHVuc2lnbmVkIGludCBhcnB0X2RvX3RhYmxlKHN0cnVjdCBza19idWZmICpza2Is CiB9CiAKIC8qIEFsbCB6ZXJvZXMgPT0gdW5jb25kaXRpb25hbCBydWxlLiAqLwotc3RhdGljIGlu bGluZSBib29sIHVuY29uZGl0aW9uYWwoY29uc3Qgc3RydWN0IGFycHRfYXJwICphcnApCitzdGF0 aWMgaW5saW5lIGJvb2wgdW5jb25kaXRpb25hbChjb25zdCBzdHJ1Y3QgYXJwdF9lbnRyeSAqZSkK IHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IGFycHRfYXJwIHVuY29uZDsKIAotCXJldHVybiBtZW1j bXAoYXJwLCAmdW5jb25kLCBzaXplb2YodW5jb25kKSkgPT0gMDsKKwlyZXR1cm4gZS0+dGFyZ2V0 X29mZnNldCA9PSBzaXplb2Yoc3RydWN0IGFycHRfZW50cnkpICYmCisJICAgICAgIG1lbWNtcCgm ZS0+YXJwLCAmdW5jb25kLCBzaXplb2YodW5jb25kKSkgPT0gMDsKIH0KIAogLyogRmlndXJlcyBv dXQgZnJvbSB3aGF0IGhvb2sgZWFjaCBydWxlIGNhbiBiZSBjYWxsZWQ6IHJldHVybnMgMCBpZgpA QCAtMzkzLDExICszOTQsMTAgQEAgc3RhdGljIGludCBtYXJrX3NvdXJjZV9jaGFpbnMoY29uc3Qg c3RydWN0IHh0X3RhYmxlX2luZm8gKm5ld2luZm8sCiAJCQkJfD0gKCgxIDw8IGhvb2spIHwgKDEg PDwgTkZfQVJQX05VTUhPT0tTKSk7CiAKIAkJCS8qIFVuY29uZGl0aW9uYWwgcmV0dXJuL0VORC4g Ki8KLQkJCWlmICgoZS0+dGFyZ2V0X29mZnNldCA9PSBzaXplb2Yoc3RydWN0IGFycHRfZW50cnkp ICYmCisJCQlpZiAoKHVuY29uZGl0aW9uYWwoZSkgJiYKIAkJCSAgICAgKHN0cmNtcCh0LT50YXJn ZXQudS51c2VyLm5hbWUsCiAJCQkJICAgICBYVF9TVEFOREFSRF9UQVJHRVQpID09IDApICYmCi0J CQkgICAgIHQtPnZlcmRpY3QgPCAwICYmIHVuY29uZGl0aW9uYWwoJmUtPmFycCkpIHx8Ci0JCQkg ICAgdmlzaXRlZCkgeworCQkJICAgICB0LT52ZXJkaWN0IDwgMCkgfHwgdmlzaXRlZCkgewogCQkJ CXVuc2lnbmVkIGludCBvbGRwb3MsIHNpemU7CiAKIAkJCQlpZiAoKHN0cmNtcCh0LT50YXJnZXQu dS51c2VyLm5hbWUsCkBAIC00NjUsMTQgKzQ2NSwxMiBAQCBzdGF0aWMgaW50IG1hcmtfc291cmNl X2NoYWlucyhjb25zdCBzdHJ1Y3QgeHRfdGFibGVfaW5mbyAqbmV3aW5mbywKIAlyZXR1cm4gMTsK IH0KIAotc3RhdGljIGlubGluZSBpbnQgY2hlY2tfZW50cnkoY29uc3Qgc3RydWN0IGFycHRfZW50 cnkgKmUsIGNvbnN0IGNoYXIgKm5hbWUpCitzdGF0aWMgaW5saW5lIGludCBjaGVja19lbnRyeShj b25zdCBzdHJ1Y3QgYXJwdF9lbnRyeSAqZSkKIHsKIAljb25zdCBzdHJ1Y3QgeHRfZW50cnlfdGFy Z2V0ICp0OwogCi0JaWYgKCFhcnBfY2hlY2tlbnRyeSgmZS0+YXJwKSkgewotCQlkdXByaW50Zigi YXJwX3RhYmxlczogYXJwIGNoZWNrIGZhaWxlZCAlcCAlcy5cbiIsIGUsIG5hbWUpOworCWlmICgh YXJwX2NoZWNrZW50cnkoJmUtPmFycCkpCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAogCWlmIChl LT50YXJnZXRfb2Zmc2V0ICsgc2l6ZW9mKHN0cnVjdCB4dF9lbnRyeV90YXJnZXQpID4gZS0+bmV4 dF9vZmZzZXQpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNTEzLDEwICs1MTEsNiBAQCBmaW5kX2No ZWNrX2VudHJ5KHN0cnVjdCBhcnB0X2VudHJ5ICplLCBjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25l ZCBpbnQgc2l6ZSkKIAlzdHJ1Y3QgeHRfdGFyZ2V0ICp0YXJnZXQ7CiAJaW50IHJldDsKIAotCXJl dCA9IGNoZWNrX2VudHJ5KGUsIG5hbWUpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KIAl0 ID0gYXJwdF9nZXRfdGFyZ2V0KGUpOwogCXRhcmdldCA9IHh0X3JlcXVlc3RfZmluZF90YXJnZXQo TkZQUk9UT19BUlAsIHQtPnUudXNlci5uYW1lLAogCQkJCQl0LT51LnVzZXIucmV2aXNpb24pOwpA QCAtNTQyLDcgKzUzNiw3IEBAIHN0YXRpYyBib29sIGNoZWNrX3VuZGVyZmxvdyhjb25zdCBzdHJ1 Y3QgYXJwdF9lbnRyeSAqZSkKIAljb25zdCBzdHJ1Y3QgeHRfZW50cnlfdGFyZ2V0ICp0OwogCXVu c2lnbmVkIGludCB2ZXJkaWN0OwogCi0JaWYgKCF1bmNvbmRpdGlvbmFsKCZlLT5hcnApKQorCWlm ICghdW5jb25kaXRpb25hbChlKSkKIAkJcmV0dXJuIGZhbHNlOwogCXQgPSBhcnB0X2dldF90YXJn ZXRfYyhlKTsKIAlpZiAoc3RyY21wKHQtPnUudXNlci5uYW1lLCBYVF9TVEFOREFSRF9UQVJHRVQp ICE9IDApCkBAIC01NjEsOSArNTU1LDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IGNoZWNrX2VudHJ5 X3NpemVfYW5kX2hvb2tzKHN0cnVjdCBhcnB0X2VudHJ5ICplLAogCQkJCQkgICAgIHVuc2lnbmVk IGludCB2YWxpZF9ob29rcykKIHsKIAl1bnNpZ25lZCBpbnQgaDsKKwlpbnQgZXJyOwogCiAJaWYg KCh1bnNpZ25lZCBsb25nKWUgJSBfX2FsaWdub2ZfXyhzdHJ1Y3QgYXJwdF9lbnRyeSkgIT0gMCB8 fAotCSAgICAodW5zaWduZWQgY2hhciAqKWUgKyBzaXplb2Yoc3RydWN0IGFycHRfZW50cnkpID49 IGxpbWl0KSB7CisJICAgICh1bnNpZ25lZCBjaGFyICopZSArIHNpemVvZihzdHJ1Y3QgYXJwdF9l bnRyeSkgPj0gbGltaXQgfHwKKwkgICAgKHVuc2lnbmVkIGNoYXIgKillICsgZS0+bmV4dF9vZmZz ZXQgPiBsaW1pdCkgewogCQlkdXByaW50ZigiQmFkIG9mZnNldCAlcFxuIiwgZSk7CiAJCXJldHVy biAtRUlOVkFMOwogCX0KQEAgLTU3NSw2ICs1NzEsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgY2hl Y2tfZW50cnlfc2l6ZV9hbmRfaG9va3Moc3RydWN0IGFycHRfZW50cnkgKmUsCiAJCXJldHVybiAt RUlOVkFMOwogCX0KIAorCWVyciA9IGNoZWNrX2VudHJ5KGUpOworCWlmIChlcnIpCisJCXJldHVy biBlcnI7CisKIAkvKiBDaGVjayBob29rcyAmIHVuZGVyZmxvd3MgKi8KIAlmb3IgKGggPSAwOyBo IDwgTkZfQVJQX05VTUhPT0tTOyBoKyspIHsKIAkJaWYgKCEodmFsaWRfaG9va3MgJiAoMSA8PCBo KSkpCkBAIC01ODMsOSArNTgzLDkgQEAgc3RhdGljIGlubGluZSBpbnQgY2hlY2tfZW50cnlfc2l6 ZV9hbmRfaG9va3Moc3RydWN0IGFycHRfZW50cnkgKmUsCiAJCQluZXdpbmZvLT5ob29rX2VudHJ5 W2hdID0gaG9va19lbnRyaWVzW2hdOwogCQlpZiAoKHVuc2lnbmVkIGNoYXIgKillIC0gYmFzZSA9 PSB1bmRlcmZsb3dzW2hdKSB7CiAJCQlpZiAoIWNoZWNrX3VuZGVyZmxvdyhlKSkgewotCQkJCXBy X2VycigiVW5kZXJmbG93cyBtdXN0IGJlIHVuY29uZGl0aW9uYWwgYW5kICIKLQkJCQkgICAgICAg InVzZSB0aGUgU1RBTkRBUkQgdGFyZ2V0IHdpdGggIgotCQkJCSAgICAgICAiQUNDRVBUL0RST1Bc biIpOworCQkJCXByX2RlYnVnKCJVbmRlcmZsb3dzIG11c3QgYmUgdW5jb25kaXRpb25hbCBhbmQg IgorCQkJCQkgInVzZSB0aGUgU1RBTkRBUkQgdGFyZ2V0IHdpdGggIgorCQkJCQkgIkFDQ0VQVC9E Uk9QXG4iKTsKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCX0KIAkJCW5ld2luZm8tPnVuZGVyZmxv d1toXSA9IHVuZGVyZmxvd3NbaF07CkBAIC0xMjE5LDcgKzEyMTksOCBAQCBjaGVja19jb21wYXRf ZW50cnlfc2l6ZV9hbmRfaG9va3Moc3RydWN0IGNvbXBhdF9hcnB0X2VudHJ5ICplLAogCiAJZHVw cmludGYoImNoZWNrX2NvbXBhdF9lbnRyeV9zaXplX2FuZF9ob29rcyAlcFxuIiwgZSk7CiAJaWYg KCh1bnNpZ25lZCBsb25nKWUgJSBfX2FsaWdub2ZfXyhzdHJ1Y3QgY29tcGF0X2FycHRfZW50cnkp ICE9IDAgfHwKLQkgICAgKHVuc2lnbmVkIGNoYXIgKillICsgc2l6ZW9mKHN0cnVjdCBjb21wYXRf YXJwdF9lbnRyeSkgPj0gbGltaXQpIHsKKwkgICAgKHVuc2lnbmVkIGNoYXIgKillICsgc2l6ZW9m KHN0cnVjdCBjb21wYXRfYXJwdF9lbnRyeSkgPj0gbGltaXQgfHwKKwkgICAgKHVuc2lnbmVkIGNo YXIgKillICsgZS0+bmV4dF9vZmZzZXQgPiBsaW1pdCkgewogCQlkdXByaW50ZigiQmFkIG9mZnNl dCAlcCwgbGltaXQgPSAlcFxuIiwgZSwgbGltaXQpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBA IC0xMjMyLDcgKzEyMzMsNyBAQCBjaGVja19jb21wYXRfZW50cnlfc2l6ZV9hbmRfaG9va3Moc3Ry dWN0IGNvbXBhdF9hcnB0X2VudHJ5ICplLAogCX0KIAogCS8qIEZvciBwdXJwb3NlcyBvZiBjaGVj a19lbnRyeSBjYXN0aW5nIHRoZSBjb21wYXQgZW50cnkgaXMgZmluZSAqLwotCXJldCA9IGNoZWNr X2VudHJ5KChzdHJ1Y3QgYXJwdF9lbnRyeSAqKWUsIG5hbWUpOworCXJldCA9IGNoZWNrX2VudHJ5 KChzdHJ1Y3QgYXJwdF9lbnRyeSAqKWUpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L25ldGZpbHRlci9pcF90YWJsZXMuYyBiL25ldC9pcHY0L25ldGZp bHRlci9pcF90YWJsZXMuYwppbmRleCBmOThhMWNmNTRjNWIuLjQxYzAxZGU2OTEwNCAxMDA2NDQK LS0tIGEvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX3RhYmxlcy5jCisrKyBiL25ldC9pcHY0L25ldGZp bHRlci9pcF90YWJsZXMuYwpAQCAtMTY4LDExICsxNjgsMTIgQEAgZ2V0X2VudHJ5KGNvbnN0IHZv aWQgKmJhc2UsIHVuc2lnbmVkIGludCBvZmZzZXQpCiAKIC8qIEFsbCB6ZXJvZXMgPT0gdW5jb25k aXRpb25hbCBydWxlLiAqLwogLyogTWlsZGx5IHBlcmYgY3JpdGljYWwgKG9ubHkgaWYgcGFja2V0 IHRyYWNpbmcgaXMgb24pICovCi1zdGF0aWMgaW5saW5lIGJvb2wgdW5jb25kaXRpb25hbChjb25z dCBzdHJ1Y3QgaXB0X2lwICppcCkKK3N0YXRpYyBpbmxpbmUgYm9vbCB1bmNvbmRpdGlvbmFsKGNv bnN0IHN0cnVjdCBpcHRfZW50cnkgKmUpCiB7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCBpcHRfaXAg dW5jb25kOwogCi0JcmV0dXJuIG1lbWNtcChpcCwgJnVuY29uZCwgc2l6ZW9mKHVuY29uZCkpID09 IDA7CisJcmV0dXJuIGUtPnRhcmdldF9vZmZzZXQgPT0gc2l6ZW9mKHN0cnVjdCBpcHRfZW50cnkp ICYmCisJICAgICAgIG1lbWNtcCgmZS0+aXAsICZ1bmNvbmQsIHNpemVvZih1bmNvbmQpKSA9PSAw OwogI3VuZGVmIEZXSU5WCiB9CiAKQEAgLTIzMCwxMSArMjMxLDEwIEBAIGdldF9jaGFpbm5hbWVf cnVsZW51bShjb25zdCBzdHJ1Y3QgaXB0X2VudHJ5ICpzLCBjb25zdCBzdHJ1Y3QgaXB0X2VudHJ5 ICplLAogCX0gZWxzZSBpZiAocyA9PSBlKSB7CiAJCSgqcnVsZW51bSkrKzsKIAotCQlpZiAocy0+ dGFyZ2V0X29mZnNldCA9PSBzaXplb2Yoc3RydWN0IGlwdF9lbnRyeSkgJiYKKwkJaWYgKHVuY29u ZGl0aW9uYWwocykgJiYKIAkJICAgIHN0cmNtcCh0LT50YXJnZXQudS5rZXJuZWwudGFyZ2V0LT5u YW1lLAogCQkJICAgWFRfU1RBTkRBUkRfVEFSR0VUKSA9PSAwICYmCi0JCSAgIHQtPnZlcmRpY3Qg PCAwICYmCi0JCSAgIHVuY29uZGl0aW9uYWwoJnMtPmlwKSkgeworCQkgICB0LT52ZXJkaWN0IDwg MCkgewogCQkJLyogVGFpbCBvZiBjaGFpbnM6IFNUQU5EQVJEIHRhcmdldCAocmV0dXJuL3BvbGlj eSkgKi8KIAkJCSpjb21tZW50ID0gKmNoYWlubmFtZSA9PSBob29rbmFtZQogCQkJCT8gY29tbWVu dHNbTkZfSVBfVFJBQ0VfQ09NTUVOVF9QT0xJQ1ldCkBAIC00NjgsMTEgKzQ2OCwxMCBAQCBtYXJr X3NvdXJjZV9jaGFpbnMoY29uc3Qgc3RydWN0IHh0X3RhYmxlX2luZm8gKm5ld2luZm8sCiAJCQll LT5jb21lZnJvbSB8PSAoKDEgPDwgaG9vaykgfCAoMSA8PCBORl9JTkVUX05VTUhPT0tTKSk7CiAK IAkJCS8qIFVuY29uZGl0aW9uYWwgcmV0dXJuL0VORC4gKi8KLQkJCWlmICgoZS0+dGFyZ2V0X29m ZnNldCA9PSBzaXplb2Yoc3RydWN0IGlwdF9lbnRyeSkgJiYKKwkJCWlmICgodW5jb25kaXRpb25h bChlKSAmJgogCQkJICAgICAoc3RyY21wKHQtPnRhcmdldC51LnVzZXIubmFtZSwKIAkJCQkgICAg IFhUX1NUQU5EQVJEX1RBUkdFVCkgPT0gMCkgJiYKLQkJCSAgICAgdC0+dmVyZGljdCA8IDAgJiYg dW5jb25kaXRpb25hbCgmZS0+aXApKSB8fAotCQkJICAgIHZpc2l0ZWQpIHsKKwkJCSAgICAgdC0+ dmVyZGljdCA8IDApIHx8IHZpc2l0ZWQpIHsKIAkJCQl1bnNpZ25lZCBpbnQgb2xkcG9zLCBzaXpl OwogCiAJCQkJaWYgKChzdHJjbXAodC0+dGFyZ2V0LnUudXNlci5uYW1lLApAQCAtNTYxLDE0ICs1 NjAsMTIgQEAgc3RhdGljIHZvaWQgY2xlYW51cF9tYXRjaChzdHJ1Y3QgeHRfZW50cnlfbWF0Y2gg Km0sIHN0cnVjdCBuZXQgKm5ldCkKIH0KIAogc3RhdGljIGludAotY2hlY2tfZW50cnkoY29uc3Qg c3RydWN0IGlwdF9lbnRyeSAqZSwgY29uc3QgY2hhciAqbmFtZSkKK2NoZWNrX2VudHJ5KGNvbnN0 IHN0cnVjdCBpcHRfZW50cnkgKmUpCiB7CiAJY29uc3Qgc3RydWN0IHh0X2VudHJ5X3RhcmdldCAq dDsKIAotCWlmICghaXBfY2hlY2tlbnRyeSgmZS0+aXApKSB7Ci0JCWR1cHJpbnRmKCJpcCBjaGVj ayBmYWlsZWQgJXAgJXMuXG4iLCBlLCBuYW1lKTsKKwlpZiAoIWlwX2NoZWNrZW50cnkoJmUtPmlw KSkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCiAJaWYgKGUtPnRhcmdldF9vZmZzZXQgKyBzaXpl b2Yoc3RydWN0IHh0X2VudHJ5X3RhcmdldCkgPgogCSAgICBlLT5uZXh0X29mZnNldCkKQEAgLTY1 OCwxMCArNjU1LDYgQEAgZmluZF9jaGVja19lbnRyeShzdHJ1Y3QgaXB0X2VudHJ5ICplLCBzdHJ1 Y3QgbmV0ICpuZXQsIGNvbnN0IGNoYXIgKm5hbWUsCiAJc3RydWN0IHh0X210Y2hrX3BhcmFtIG10 cGFyOwogCXN0cnVjdCB4dF9lbnRyeV9tYXRjaCAqZW1hdGNoOwogCi0JcmV0ID0gY2hlY2tfZW50 cnkoZSwgbmFtZSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQogCWogPSAwOwogCW10cGFy Lm5ldAk9IG5ldDsKIAltdHBhci50YWJsZSAgICAgPSBuYW1lOwpAQCAtNzA1LDcgKzY5OCw3IEBA IHN0YXRpYyBib29sIGNoZWNrX3VuZGVyZmxvdyhjb25zdCBzdHJ1Y3QgaXB0X2VudHJ5ICplKQog CWNvbnN0IHN0cnVjdCB4dF9lbnRyeV90YXJnZXQgKnQ7CiAJdW5zaWduZWQgaW50IHZlcmRpY3Q7 CiAKLQlpZiAoIXVuY29uZGl0aW9uYWwoJmUtPmlwKSkKKwlpZiAoIXVuY29uZGl0aW9uYWwoZSkp CiAJCXJldHVybiBmYWxzZTsKIAl0ID0gaXB0X2dldF90YXJnZXRfYyhlKTsKIAlpZiAoc3RyY21w KHQtPnUudXNlci5uYW1lLCBYVF9TVEFOREFSRF9UQVJHRVQpICE9IDApCkBAIC03MjUsOSArNzE4 LDExIEBAIGNoZWNrX2VudHJ5X3NpemVfYW5kX2hvb2tzKHN0cnVjdCBpcHRfZW50cnkgKmUsCiAJ CQkgICB1bnNpZ25lZCBpbnQgdmFsaWRfaG9va3MpCiB7CiAJdW5zaWduZWQgaW50IGg7CisJaW50 IGVycjsKIAogCWlmICgodW5zaWduZWQgbG9uZyllICUgX19hbGlnbm9mX18oc3RydWN0IGlwdF9l bnRyeSkgIT0gMCB8fAotCSAgICAodW5zaWduZWQgY2hhciAqKWUgKyBzaXplb2Yoc3RydWN0IGlw dF9lbnRyeSkgPj0gbGltaXQpIHsKKwkgICAgKHVuc2lnbmVkIGNoYXIgKillICsgc2l6ZW9mKHN0 cnVjdCBpcHRfZW50cnkpID49IGxpbWl0IHx8CisJICAgICh1bnNpZ25lZCBjaGFyICopZSArIGUt Pm5leHRfb2Zmc2V0ID4gbGltaXQpIHsKIAkJZHVwcmludGYoIkJhZCBvZmZzZXQgJXBcbiIsIGUp OwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC03MzksNiArNzM0LDEwIEBAIGNoZWNrX2VudHJ5 X3NpemVfYW5kX2hvb2tzKHN0cnVjdCBpcHRfZW50cnkgKmUsCiAJCXJldHVybiAtRUlOVkFMOwog CX0KIAorCWVyciA9IGNoZWNrX2VudHJ5KGUpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisK IAkvKiBDaGVjayBob29rcyAmIHVuZGVyZmxvd3MgKi8KIAlmb3IgKGggPSAwOyBoIDwgTkZfSU5F VF9OVU1IT09LUzsgaCsrKSB7CiAJCWlmICghKHZhbGlkX2hvb2tzICYgKDEgPDwgaCkpKQpAQCAt NzQ3LDkgKzc0Niw5IEBAIGNoZWNrX2VudHJ5X3NpemVfYW5kX2hvb2tzKHN0cnVjdCBpcHRfZW50 cnkgKmUsCiAJCQluZXdpbmZvLT5ob29rX2VudHJ5W2hdID0gaG9va19lbnRyaWVzW2hdOwogCQlp ZiAoKHVuc2lnbmVkIGNoYXIgKillIC0gYmFzZSA9PSB1bmRlcmZsb3dzW2hdKSB7CiAJCQlpZiAo IWNoZWNrX3VuZGVyZmxvdyhlKSkgewotCQkJCXByX2VycigiVW5kZXJmbG93cyBtdXN0IGJlIHVu Y29uZGl0aW9uYWwgYW5kICIKLQkJCQkgICAgICAgInVzZSB0aGUgU1RBTkRBUkQgdGFyZ2V0IHdp dGggIgotCQkJCSAgICAgICAiQUNDRVBUL0RST1BcbiIpOworCQkJCXByX2RlYnVnKCJVbmRlcmZs b3dzIG11c3QgYmUgdW5jb25kaXRpb25hbCBhbmQgIgorCQkJCQkgInVzZSB0aGUgU1RBTkRBUkQg dGFyZ2V0IHdpdGggIgorCQkJCQkgIkFDQ0VQVC9EUk9QXG4iKTsKIAkJCQlyZXR1cm4gLUVJTlZB TDsKIAkJCX0KIAkJCW5ld2luZm8tPnVuZGVyZmxvd1toXSA9IHVuZGVyZmxvd3NbaF07CkBAIC0x NDg2LDcgKzE0ODUsOCBAQCBjaGVja19jb21wYXRfZW50cnlfc2l6ZV9hbmRfaG9va3Moc3RydWN0 IGNvbXBhdF9pcHRfZW50cnkgKmUsCiAKIAlkdXByaW50ZigiY2hlY2tfY29tcGF0X2VudHJ5X3Np emVfYW5kX2hvb2tzICVwXG4iLCBlKTsKIAlpZiAoKHVuc2lnbmVkIGxvbmcpZSAlIF9fYWxpZ25v Zl9fKHN0cnVjdCBjb21wYXRfaXB0X2VudHJ5KSAhPSAwIHx8Ci0JICAgICh1bnNpZ25lZCBjaGFy ICopZSArIHNpemVvZihzdHJ1Y3QgY29tcGF0X2lwdF9lbnRyeSkgPj0gbGltaXQpIHsKKwkgICAg KHVuc2lnbmVkIGNoYXIgKillICsgc2l6ZW9mKHN0cnVjdCBjb21wYXRfaXB0X2VudHJ5KSA+PSBs aW1pdCB8fAorCSAgICAodW5zaWduZWQgY2hhciAqKWUgKyBlLT5uZXh0X29mZnNldCA+IGxpbWl0 KSB7CiAJCWR1cHJpbnRmKCJCYWQgb2Zmc2V0ICVwLCBsaW1pdCA9ICVwXG4iLCBlLCBsaW1pdCk7 CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTE0OTksNyArMTQ5OSw3IEBAIGNoZWNrX2NvbXBh dF9lbnRyeV9zaXplX2FuZF9ob29rcyhzdHJ1Y3QgY29tcGF0X2lwdF9lbnRyeSAqZSwKIAl9CiAK IAkvKiBGb3IgcHVycG9zZXMgb2YgY2hlY2tfZW50cnkgY2FzdGluZyB0aGUgY29tcGF0IGVudHJ5 IGlzIGZpbmUgKi8KLQlyZXQgPSBjaGVja19lbnRyeSgoc3RydWN0IGlwdF9lbnRyeSAqKWUsIG5h bWUpOworCXJldCA9IGNoZWNrX2VudHJ5KChzdHJ1Y3QgaXB0X2VudHJ5ICopZSk7CiAJaWYgKHJl dCkKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwdF9N QVNRVUVSQURFLmMgYi9uZXQvaXB2NC9uZXRmaWx0ZXIvaXB0X01BU1FVRVJBREUuYwppbmRleCA5 OTMxMTUyYTc4YjUuLjlhMzA4MDdjOGMyOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvbmV0ZmlsdGVy L2lwdF9NQVNRVUVSQURFLmMKKysrIGIvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwdF9NQVNRVUVSQURF LmMKQEAgLTEyMyw4ICsxMjMsMTYgQEAgc3RhdGljIGludCBtYXNxX2luZXRfZXZlbnQoc3RydWN0 IG5vdGlmaWVyX2Jsb2NrICp0aGlzLAogCQkJICAgdW5zaWduZWQgbG9uZyBldmVudCwKIAkJCSAg IHZvaWQgKnB0cikKIHsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gKChzdHJ1Y3QgaW5faWZh ZGRyICopcHRyKS0+aWZhX2Rldi0+ZGV2OwotCXJldHVybiBtYXNxX2RldmljZV9ldmVudCh0aGlz LCBldmVudCwgZGV2KTsKKwlzdHJ1Y3QgaW5fZGV2aWNlICppZGV2ID0gKChzdHJ1Y3QgaW5faWZh ZGRyICopcHRyKS0+aWZhX2RldjsKKwkvKiBUaGUgbWFzcV9kZXZfbm90aWZpZXIgd2lsbCBjYXRj aCB0aGUgY2FzZSBvZiB0aGUgZGV2aWNlIGdvaW5nCisJICogZG93bi4gIFNvIGlmIHRoZSBpbmV0 ZGV2IGlzIGRlYWQgYW5kIGJlaW5nIGRlc3Ryb3llZCB3ZSBoYXZlCisJICogbm8gd29yayB0byBk by4gIE90aGVyd2lzZSB0aGlzIGlzIGFuIGluZGl2aWR1YWwgYWRkcmVzcyByZW1vdmFsCisJICog YW5kIHdlIGhhdmUgdG8gcGVyZm9ybSB0aGUgZmx1c2guCisJICovCisJaWYgKGlkZXYtPmRlYWQp CisJCXJldHVybiBOT1RJRllfRE9ORTsKKworCXJldHVybiBtYXNxX2RldmljZV9ldmVudCh0aGlz LCBldmVudCwgaWRldi0+ZGV2KTsKIH0KIAogc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBt YXNxX2Rldl9ub3RpZmllciA9IHsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3BpbmcuYyBiL25ldC9p cHY0L3BpbmcuYwppbmRleCA3YWE2MjI1ZTdmZTMuLjVkMjg2NzczNDVlMCAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvcGluZy5jCisrKyBiL25ldC9pcHY0L3BpbmcuYwpAQCAtNTMwLDggKzUzMCwxMCBA QCBzdGF0aWMgaW50IHBpbmdfc2VuZG1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLAogCiAJaWYgKG1zZy0+bXNnX2NvbnRyb2xsZW4pIHsK IAkJZXJyID0gaXBfY21zZ19zZW5kKHNvY2tfbmV0KHNrKSwgbXNnLCAmaXBjKTsKLQkJaWYgKGVy cikKKwkJaWYgKHVubGlrZWx5KGVycikpIHsKKwkJCWtmcmVlKGlwYy5vcHQpOwogCQkJcmV0dXJu IGVycjsKKwkJfQogCQlpZiAoaXBjLm9wdCkKIAkJCWZyZWUgPSAxOwogCX0KZGlmZiAtLWdpdCBh L25ldC9pcHY0L3Jhdy5jIGIvbmV0L2lwdjQvcmF3LmMKaW5kZXggMDYzYmNkNTRkMjY4Li5lNjQz MDk2M2U5OTQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3Jhdy5jCisrKyBiL25ldC9pcHY0L3Jhdy5j CkBAIC01MjAsOCArNTIwLDEwIEBAIHN0YXRpYyBpbnQgcmF3X3NlbmRtc2coc3RydWN0IGtpb2Ni ICppb2NiLCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywKIAogCWlmIChtc2ct Pm1zZ19jb250cm9sbGVuKSB7CiAJCWVyciA9IGlwX2Ntc2dfc2VuZChzb2NrX25ldChzayksIG1z ZywgJmlwYyk7Ci0JCWlmIChlcnIpCisJCWlmICh1bmxpa2VseShlcnIpKSB7CisJCQlrZnJlZShp cGMub3B0KTsKIAkJCWdvdG8gb3V0OworCQl9CiAJCWlmIChpcGMub3B0KQogCQkJZnJlZSA9IDE7 CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX3llYWguYyBiL25ldC9pcHY0L3RjcF95ZWFo LmMKaW5kZXggMDVjM2I2ZjBlOGUxLi5iZjgzMjFkNmYyZWYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0 L3RjcF95ZWFoLmMKKysrIGIvbmV0L2lwdjQvdGNwX3llYWguYwpAQCAtMjIyLDcgKzIyMiw3IEBA IHN0YXRpYyB1MzIgdGNwX3llYWhfc3N0aHJlc2goc3RydWN0IHNvY2sgKnNrKSB7CiAJeWVhaC0+ ZmFzdF9jb3VudCA9IDA7CiAJeWVhaC0+cmVub19jb3VudCA9IG1heCh5ZWFoLT5yZW5vX2NvdW50 Pj4xLCAyVSk7CiAKLQlyZXR1cm4gdHAtPnNuZF9jd25kIC0gcmVkdWN0aW9uOworCXJldHVybiBt YXhfdChpbnQsIHRwLT5zbmRfY3duZCAtIHJlZHVjdGlvbiwgMik7CiB9CiAKIHN0YXRpYyBzdHJ1 Y3QgdGNwX2Nvbmdlc3Rpb25fb3BzIHRjcF95ZWFoIF9fcmVhZF9tb3N0bHkgPSB7CmRpZmYgLS1n aXQgYS9uZXQvaXB2NC91ZHAuYyBiL25ldC9pcHY0L3VkcC5jCmluZGV4IGY2MDI2MTFhZTljOS4u ZjY0YTFlNTQ4YmViIDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQvaXB2NC91 ZHAuYwpAQCAtODc1LDggKzg3NSwxMCBAQCBpbnQgdWRwX3NlbmRtc2coc3RydWN0IGtpb2NiICpp b2NiLCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywKIAkJcmV0dXJuIGVycjsK IAlpZiAobXNnLT5tc2dfY29udHJvbGxlbikgewogCQllcnIgPSBpcF9jbXNnX3NlbmQoc29ja19u ZXQoc2spLCBtc2csICZpcGMpOwotCQlpZiAoZXJyKQorCQlpZiAodW5saWtlbHkoZXJyKSkgewor CQkJa2ZyZWUoaXBjLm9wdCk7CiAJCQlyZXR1cm4gZXJyOworCQl9CiAJCWlmIChpcGMub3B0KQog CQkJZnJlZSA9IDE7CiAJCWNvbm5lY3RlZCA9IDA7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9hZGRy Y29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwppbmRleCAwMDY4NjdkZjAxNzguLjc5ZWNlYWI0 NjM3YSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYuYworKysgYi9uZXQvaXB2Ni9hZGRy Y29uZi5jCkBAIC0xODUsNiArMTg1LDcgQEAgc3RhdGljIHN0cnVjdCBpcHY2X2RldmNvbmYgaXB2 Nl9kZXZjb25mIF9fcmVhZF9tb3N0bHkgPSB7CiAjZW5kaWYKIAkubWF4X2FkZHJlc3NlcwkJPSBJ UFY2X01BWF9BRERSRVNTRVMsCiAJLmFjY2VwdF9yYV9kZWZydHIJPSAxLAorCS5hY2NlcHRfcmFf bWluX2hvcF9saW1pdD0gMSwKIAkuYWNjZXB0X3JhX3BpbmZvCT0gMSwKICNpZmRlZiBDT05GSUdf SVBWNl9ST1VURVJfUFJFRgogCS5hY2NlcHRfcmFfcnRyX3ByZWYJPSAxLApAQCAtMjE5LDYgKzIy MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaXB2Nl9kZXZjb25mIGlwdjZfZGV2Y29uZl9kZmx0IF9fcmVh ZF9tb3N0bHkgPSB7CiAjZW5kaWYKIAkubWF4X2FkZHJlc3NlcwkJPSBJUFY2X01BWF9BRERSRVNT RVMsCiAJLmFjY2VwdF9yYV9kZWZydHIJPSAxLAorCS5hY2NlcHRfcmFfbWluX2hvcF9saW1pdD0g MSwKIAkuYWNjZXB0X3JhX3BpbmZvCT0gMSwKICNpZmRlZiBDT05GSUdfSVBWNl9ST1VURVJfUFJF RgogCS5hY2NlcHRfcmFfcnRyX3ByZWYJPSAxLApAQCAtMzk0Myw2ICszOTQ1LDcgQEAgc3RhdGlj IGlubGluZSB2b2lkIGlwdjZfc3RvcmVfZGV2Y29uZihzdHJ1Y3QgaXB2Nl9kZXZjb25mICpjbmYs CiAjZW5kaWYKIAlhcnJheVtERVZDT05GX01BWF9BRERSRVNTRVNdID0gY25mLT5tYXhfYWRkcmVz c2VzOwogCWFycmF5W0RFVkNPTkZfQUNDRVBUX1JBX0RFRlJUUl0gPSBjbmYtPmFjY2VwdF9yYV9k ZWZydHI7CisJYXJyYXlbREVWQ09ORl9BQ0NFUFRfUkFfTUlOX0hPUF9MSU1JVF0gPSBjbmYtPmFj Y2VwdF9yYV9taW5faG9wX2xpbWl0OwogCWFycmF5W0RFVkNPTkZfQUNDRVBUX1JBX1BJTkZPXSA9 IGNuZi0+YWNjZXB0X3JhX3BpbmZvOwogI2lmZGVmIENPTkZJR19JUFY2X1JPVVRFUl9QUkVGCiAJ YXJyYXlbREVWQ09ORl9BQ0NFUFRfUkFfUlRSX1BSRUZdID0gY25mLT5hY2NlcHRfcmFfcnRyX3By ZWY7CkBAIC00NTQ2LDYgKzQ1NDksMTMgQEAgc3RhdGljIHN0cnVjdCBhZGRyY29uZl9zeXNjdGxf dGFibGUKIAkJCS5wcm9jX2hhbmRsZXIJPSBwcm9jX2RvaW50dmVjLAogCQl9LAogCQl7CisJCQku cHJvY25hbWUJPSAiYWNjZXB0X3JhX21pbl9ob3BfbGltaXQiLAorCQkJLmRhdGEJCT0gJmlwdjZf ZGV2Y29uZi5hY2NlcHRfcmFfbWluX2hvcF9saW1pdCwKKwkJCS5tYXhsZW4JCT0gc2l6ZW9mKGlu dCksCisJCQkubW9kZQkJPSAwNjQ0LAorCQkJLnByb2NfaGFuZGxlcgk9IHByb2NfZG9pbnR2ZWMs CisJCX0sCisJCXsKIAkJCS5wcm9jbmFtZQk9ICJhY2NlcHRfcmFfcGluZm8iLAogCQkJLmRhdGEJ CT0gJmlwdjZfZGV2Y29uZi5hY2NlcHRfcmFfcGluZm8sCiAJCQkubWF4bGVuCQk9IHNpemVvZihp bnQpLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvZGF0YWdyYW0uYyBiL25ldC9pcHY2L2RhdGFncmFt LmMKaW5kZXggOWU0YmFjYzRmMTllLi4yMDQzN2NiNmRiZGQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L2RhdGFncmFtLmMKKysrIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwpAQCAtMTYxLDYgKzE2MSw5IEBA IGlwdjRfY29ubmVjdGVkOgogCWZsNi5mbDZfZHBvcnQgPSBpbmV0LT5pbmV0X2Rwb3J0OwogCWZs Ni5mbDZfc3BvcnQgPSBpbmV0LT5pbmV0X3Nwb3J0OwogCisJaWYgKCFmbDYuZmxvd2k2X29pZikK KwkJZmw2LmZsb3dpNl9vaWYgPSBucC0+c3RpY2t5X3BrdGluZm8uaXBpNl9pZmluZGV4OworCiAJ aWYgKCFmbDYuZmxvd2k2X29pZiAmJiAoYWRkcl90eXBlJklQVjZfQUREUl9NVUxUSUNBU1QpKQog CQlmbDYuZmxvd2k2X29pZiA9IG5wLT5tY2FzdF9vaWY7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2lwNl9vdXRwdXQuYyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwppbmRleCA2YjNlZGZmMmM4ZjYu LmYxY2E2NTg4MzA3YyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X291dHB1dC5jCisrKyBiL25l dC9pcHY2L2lwNl9vdXRwdXQuYwpAQCAtMTEwOSw5ICsxMTA5LDggQEAgc3RhdGljIGlubGluZSBp bnQgaXA2X3Vmb19hcHBlbmRfZGF0YShzdHJ1Y3Qgc29jayAqc2ssCiAJCQlpbnQgZ2V0ZnJhZyh2 b2lkICpmcm9tLCBjaGFyICp0bywgaW50IG9mZnNldCwgaW50IGxlbiwKIAkJCWludCBvZGQsIHN0 cnVjdCBza19idWZmICpza2IpLAogCQkJdm9pZCAqZnJvbSwgaW50IGxlbmd0aCwgaW50IGhoX2xl biwgaW50IGZyYWdoZWFkZXJsZW4sCi0JCQlpbnQgdHJhbnNoZHJsZW4sIGludCBtdHUsdW5zaWdu ZWQgaW50IGZsYWdzLAotCQkJc3RydWN0IHJ0Nl9pbmZvICpydCkKLQorCQkJaW50IGV4dGhkcmxl biwgaW50IHRyYW5zaGRybGVuLCBpbnQgbXR1LAorCQkJdW5zaWduZWQgaW50IGZsYWdzLCBzdHJ1 Y3QgcnQ2X2luZm8gKnJ0KQogewogCXN0cnVjdCBza19idWZmICpza2I7CiAJaW50IGVycjsKQEAg LTExMzYsNyArMTEzNSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGlwNl91Zm9fYXBwZW5kX2RhdGEo c3RydWN0IHNvY2sgKnNrLAogCQlza2JfcHV0KHNrYixmcmFnaGVhZGVybGVuICsgdHJhbnNoZHJs ZW4pOwogCiAJCS8qIGluaXRpYWxpemUgbmV0d29yayBoZWFkZXIgcG9pbnRlciAqLwotCQlza2Jf cmVzZXRfbmV0d29ya19oZWFkZXIoc2tiKTsKKwkJc2tiX3NldF9uZXR3b3JrX2hlYWRlcihza2Is IGV4dGhkcmxlbik7CiAKIAkJLyogaW5pdGlhbGl6ZSBwcm90b2NvbCBoZWFkZXIgcG9pbnRlciAq LwogCQlza2ItPnRyYW5zcG9ydF9oZWFkZXIgPSBza2ItPm5ldHdvcmtfaGVhZGVyICsgZnJhZ2hl YWRlcmxlbjsKQEAgLTEzNDIsNyArMTM0MSw3IEBAIGludCBpcDZfYXBwZW5kX2RhdGEoc3RydWN0 IHNvY2sgKnNrLCBpbnQgZ2V0ZnJhZyh2b2lkICpmcm9tLCBjaGFyICp0bywKIAkgICAgKHJ0LT5k c3QuZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfVUZPKSAmJgogCSAgICAoc2stPnNrX3R5cGUgPT0g U09DS19ER1JBTSkpIHsKIAkJZXJyID0gaXA2X3Vmb19hcHBlbmRfZGF0YShzaywgZ2V0ZnJhZywg ZnJvbSwgbGVuZ3RoLAotCQkJCQkgIGhoX2xlbiwgZnJhZ2hlYWRlcmxlbiwKKwkJCQkJICBoaF9s ZW4sIGZyYWdoZWFkZXJsZW4sIGV4dGhkcmxlbiwKIAkJCQkJICB0cmFuc2hkcmxlbiwgbXR1LCBm bGFncywgcnQpOwogCQlpZiAoZXJyKQogCQkJZ290byBlcnJvcjsKZGlmZiAtLWdpdCBhL25ldC9p cHY2L2lwNl90dW5uZWwuYyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwppbmRleCBhZTMyZmY3OGFi MzEuLjE4MjhjMjdiYTdhYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X3R1bm5lbC5jCisrKyBi L25ldC9pcHY2L2lwNl90dW5uZWwuYwpAQCAtNjg5LDcgKzY4OSw3IEBAIHN0YXRpYyB2b2lkIGlw NmlwNl9kc2NwX2Vjbl9kZWNhcHN1bGF0ZShjb25zdCBzdHJ1Y3QgaXA2X3RubCAqdCwKIAkJaXB2 Nl9jb3B5X2RzY3AoaXB2Nl9nZXRfZHNmaWVsZChpcHY2aCksIGlwdjZfaGRyKHNrYikpOwogCiAJ aWYgKElORVRfRUNOX2lzX2NlKGlwdjZfZ2V0X2RzZmllbGQoaXB2NmgpKSkKLQkJSVA2X0VDTl9z ZXRfY2UoaXB2Nl9oZHIoc2tiKSk7CisJCUlQNl9FQ05fc2V0X2NlKHNrYiwgaXB2Nl9oZHIoc2ti KSk7CiB9CiAKIC8qIGNhbGxlZCB3aXRoIHJjdV9yZWFkX2xvY2soKSAqLwpkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvbmRpc2MuYyBiL25ldC9pcHY2L25kaXNjLmMKaW5kZXggMzk4MzZkYWZhOTMxLi5l NWIwZjllMGRlYWEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L25kaXNjLmMKKysrIGIvbmV0L2lwdjYv bmRpc2MuYwpAQCAtMTI3NiwxOCArMTI3NiwxNiBAQCBzdGF0aWMgdm9pZCBuZGlzY19yb3V0ZXJf ZGlzY292ZXJ5KHN0cnVjdCBza19idWZmICpza2IpCiAJaWYgKHJ0KQogCQlydC0+cnQ2aV9leHBp cmVzID0gamlmZmllcyArIChIWiAqIGxpZmV0aW1lKTsKIAotCWlmIChyYV9tc2ctPmljbXBoLmlj bXA2X2hvcF9saW1pdCkgewotCQkvKiBPbmx5IHNldCBob3BfbGltaXQgb24gdGhlIGludGVyZmFj ZSBpZiBpdCBpcyBoaWdoZXIgdGhhbgotCQkgKiB0aGUgY3VycmVudCBob3BfbGltaXQuCi0JCSAq LwotCQlpZiAoaW42X2Rldi0+Y25mLmhvcF9saW1pdCA8IHJhX21zZy0+aWNtcGguaWNtcDZfaG9w X2xpbWl0KSB7CisJaWYgKGluNl9kZXYtPmNuZi5hY2NlcHRfcmFfbWluX2hvcF9saW1pdCA8IDI1 NiAmJgorCSAgICByYV9tc2ctPmljbXBoLmljbXA2X2hvcF9saW1pdCkgeworCQlpZiAoaW42X2Rl di0+Y25mLmFjY2VwdF9yYV9taW5faG9wX2xpbWl0IDw9IHJhX21zZy0+aWNtcGguaWNtcDZfaG9w X2xpbWl0KSB7CiAJCQlpbjZfZGV2LT5jbmYuaG9wX2xpbWl0ID0gcmFfbXNnLT5pY21waC5pY21w Nl9ob3BfbGltaXQ7CisJCQlpZiAocnQpCisJCQkJZHN0X21ldHJpY19zZXQoJnJ0LT5kc3QsIFJU QVhfSE9QTElNSVQsCisJCQkJCSAgICAgICByYV9tc2ctPmljbXBoLmljbXA2X2hvcF9saW1pdCk7 CiAJCX0gZWxzZSB7Ci0JCQlORF9QUklOVEsyKEtFUk5fV0FSTklORyAiUkE6IEdvdCByb3V0ZSBh ZHZlcnRpc2VtZW50IHdpdGggbG93ZXIgaG9wX2xpbWl0IHRoYW4gY3VycmVudFxuIik7CisJCQlO RF9QUklOVEsyKEtFUk5fV0FSTklORyAiUkE6IEdvdCByb3V0ZSBhZHZlcnRpc2VtZW50IHdpdGgg bG93ZXIgaG9wX2xpbWl0IHRoYW4gbWluaW11bVxuIik7CiAJCX0KLQkJaWYgKHJ0KQotCQkJZHN0 X21ldHJpY19zZXQoJnJ0LT5kc3QsIFJUQVhfSE9QTElNSVQsCi0JCQkJICAgICAgIHJhX21zZy0+ aWNtcGguaWNtcDZfaG9wX2xpbWl0KTsKIAl9CiAKIHNraXBfZGVmcnRyOgpkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvbmV0ZmlsdGVyL2lwNl90YWJsZXMuYyBiL25ldC9pcHY2L25ldGZpbHRlci9pcDZf dGFibGVzLmMKaW5kZXggMmU3NTJiMmY1YjMwLi44OTcwODg2ODgyYTcgMTAwNjQ0Ci0tLSBhL25l dC9pcHY2L25ldGZpbHRlci9pcDZfdGFibGVzLmMKKysrIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL2lw Nl90YWJsZXMuYwpAQCAtMjA4LDExICsyMDgsMTIgQEAgZ2V0X2VudHJ5KGNvbnN0IHZvaWQgKmJh c2UsIHVuc2lnbmVkIGludCBvZmZzZXQpCiAKIC8qIEFsbCB6ZXJvZXMgPT0gdW5jb25kaXRpb25h bCBydWxlLiAqLwogLyogTWlsZGx5IHBlcmYgY3JpdGljYWwgKG9ubHkgaWYgcGFja2V0IHRyYWNp bmcgaXMgb24pICovCi1zdGF0aWMgaW5saW5lIGJvb2wgdW5jb25kaXRpb25hbChjb25zdCBzdHJ1 Y3QgaXA2dF9pcDYgKmlwdjYpCitzdGF0aWMgaW5saW5lIGJvb2wgdW5jb25kaXRpb25hbChjb25z dCBzdHJ1Y3QgaXA2dF9lbnRyeSAqZSkKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IGlwNnRfaXA2 IHVuY29uZDsKIAotCXJldHVybiBtZW1jbXAoaXB2NiwgJnVuY29uZCwgc2l6ZW9mKHVuY29uZCkp ID09IDA7CisJcmV0dXJuIGUtPnRhcmdldF9vZmZzZXQgPT0gc2l6ZW9mKHN0cnVjdCBpcDZ0X2Vu dHJ5KSAmJgorCSAgICAgICBtZW1jbXAoJmUtPmlwdjYsICZ1bmNvbmQsIHNpemVvZih1bmNvbmQp KSA9PSAwOwogfQogCiBzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCB4dF9lbnRyeV90YXJnZXQg KgpAQCAtMjY5LDExICsyNzAsMTAgQEAgZ2V0X2NoYWlubmFtZV9ydWxlbnVtKGNvbnN0IHN0cnVj dCBpcDZ0X2VudHJ5ICpzLCBjb25zdCBzdHJ1Y3QgaXA2dF9lbnRyeSAqZSwKIAl9IGVsc2UgaWYg KHMgPT0gZSkgewogCQkoKnJ1bGVudW0pKys7CiAKLQkJaWYgKHMtPnRhcmdldF9vZmZzZXQgPT0g c2l6ZW9mKHN0cnVjdCBpcDZ0X2VudHJ5KSAmJgorCQlpZiAodW5jb25kaXRpb25hbChzKSAmJgog CQkgICAgc3RyY21wKHQtPnRhcmdldC51Lmtlcm5lbC50YXJnZXQtPm5hbWUsCiAJCQkgICBYVF9T VEFOREFSRF9UQVJHRVQpID09IDAgJiYKLQkJICAgIHQtPnZlcmRpY3QgPCAwICYmCi0JCSAgICB1 bmNvbmRpdGlvbmFsKCZzLT5pcHY2KSkgeworCQkgICAgdC0+dmVyZGljdCA8IDApIHsKIAkJCS8q IFRhaWwgb2YgY2hhaW5zOiBTVEFOREFSRCB0YXJnZXQgKHJldHVybi9wb2xpY3kpICovCiAJCQkq Y29tbWVudCA9ICpjaGFpbm5hbWUgPT0gaG9va25hbWUKIAkJCQk/IGNvbW1lbnRzW05GX0lQNl9U UkFDRV9DT01NRU5UX1BPTElDWV0KQEAgLTQ5MCwxMSArNDkwLDEwIEBAIG1hcmtfc291cmNlX2No YWlucyhjb25zdCBzdHJ1Y3QgeHRfdGFibGVfaW5mbyAqbmV3aW5mbywKIAkJCWUtPmNvbWVmcm9t IHw9ICgoMSA8PCBob29rKSB8ICgxIDw8IE5GX0lORVRfTlVNSE9PS1MpKTsKIAogCQkJLyogVW5j b25kaXRpb25hbCByZXR1cm4vRU5ELiAqLwotCQkJaWYgKChlLT50YXJnZXRfb2Zmc2V0ID09IHNp emVvZihzdHJ1Y3QgaXA2dF9lbnRyeSkgJiYKKwkJCWlmICgodW5jb25kaXRpb25hbChlKSAmJgog CQkJICAgICAoc3RyY21wKHQtPnRhcmdldC51LnVzZXIubmFtZSwKIAkJCQkgICAgIFhUX1NUQU5E QVJEX1RBUkdFVCkgPT0gMCkgJiYKLQkJCSAgICAgdC0+dmVyZGljdCA8IDAgJiYKLQkJCSAgICAg dW5jb25kaXRpb25hbCgmZS0+aXB2NikpIHx8IHZpc2l0ZWQpIHsKKwkJCSAgICAgdC0+dmVyZGlj dCA8IDApIHx8IHZpc2l0ZWQpIHsKIAkJCQl1bnNpZ25lZCBpbnQgb2xkcG9zLCBzaXplOwogCiAJ CQkJaWYgKChzdHJjbXAodC0+dGFyZ2V0LnUudXNlci5uYW1lLApAQCAtNTgzLDE0ICs1ODIsMTIg QEAgc3RhdGljIHZvaWQgY2xlYW51cF9tYXRjaChzdHJ1Y3QgeHRfZW50cnlfbWF0Y2ggKm0sIHN0 cnVjdCBuZXQgKm5ldCkKIH0KIAogc3RhdGljIGludAotY2hlY2tfZW50cnkoY29uc3Qgc3RydWN0 IGlwNnRfZW50cnkgKmUsIGNvbnN0IGNoYXIgKm5hbWUpCitjaGVja19lbnRyeShjb25zdCBzdHJ1 Y3QgaXA2dF9lbnRyeSAqZSkKIHsKIAljb25zdCBzdHJ1Y3QgeHRfZW50cnlfdGFyZ2V0ICp0Owog Ci0JaWYgKCFpcDZfY2hlY2tlbnRyeSgmZS0+aXB2NikpIHsKLQkJZHVwcmludGYoImlwX3RhYmxl czogaXAgY2hlY2sgZmFpbGVkICVwICVzLlxuIiwgZSwgbmFtZSk7CisJaWYgKCFpcDZfY2hlY2tl bnRyeSgmZS0+aXB2NikpCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAogCWlmIChlLT50YXJnZXRf b2Zmc2V0ICsgc2l6ZW9mKHN0cnVjdCB4dF9lbnRyeV90YXJnZXQpID4KIAkgICAgZS0+bmV4dF9v ZmZzZXQpCkBAIC02ODEsMTAgKzY3OCw2IEBAIGZpbmRfY2hlY2tfZW50cnkoc3RydWN0IGlwNnRf ZW50cnkgKmUsIHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqbmFtZSwKIAlzdHJ1Y3QgeHRf bXRjaGtfcGFyYW0gbXRwYXI7CiAJc3RydWN0IHh0X2VudHJ5X21hdGNoICplbWF0Y2g7CiAKLQly ZXQgPSBjaGVja19lbnRyeShlLCBuYW1lKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCiAJ aiA9IDA7CiAJbXRwYXIubmV0CT0gbmV0OwogCW10cGFyLnRhYmxlICAgICA9IG5hbWU7CkBAIC03 MjgsNyArNzIxLDcgQEAgc3RhdGljIGJvb2wgY2hlY2tfdW5kZXJmbG93KGNvbnN0IHN0cnVjdCBp cDZ0X2VudHJ5ICplKQogCWNvbnN0IHN0cnVjdCB4dF9lbnRyeV90YXJnZXQgKnQ7CiAJdW5zaWdu ZWQgaW50IHZlcmRpY3Q7CiAKLQlpZiAoIXVuY29uZGl0aW9uYWwoJmUtPmlwdjYpKQorCWlmICgh dW5jb25kaXRpb25hbChlKSkKIAkJcmV0dXJuIGZhbHNlOwogCXQgPSBpcDZ0X2dldF90YXJnZXRf YyhlKTsKIAlpZiAoc3RyY21wKHQtPnUudXNlci5uYW1lLCBYVF9TVEFOREFSRF9UQVJHRVQpICE9 IDApCkBAIC03NDgsOSArNzQxLDExIEBAIGNoZWNrX2VudHJ5X3NpemVfYW5kX2hvb2tzKHN0cnVj dCBpcDZ0X2VudHJ5ICplLAogCQkJICAgdW5zaWduZWQgaW50IHZhbGlkX2hvb2tzKQogewogCXVu c2lnbmVkIGludCBoOworCWludCBlcnI7CiAKIAlpZiAoKHVuc2lnbmVkIGxvbmcpZSAlIF9fYWxp Z25vZl9fKHN0cnVjdCBpcDZ0X2VudHJ5KSAhPSAwIHx8Ci0JICAgICh1bnNpZ25lZCBjaGFyICop ZSArIHNpemVvZihzdHJ1Y3QgaXA2dF9lbnRyeSkgPj0gbGltaXQpIHsKKwkgICAgKHVuc2lnbmVk IGNoYXIgKillICsgc2l6ZW9mKHN0cnVjdCBpcDZ0X2VudHJ5KSA+PSBsaW1pdCB8fAorCSAgICAo dW5zaWduZWQgY2hhciAqKWUgKyBlLT5uZXh0X29mZnNldCA+IGxpbWl0KSB7CiAJCWR1cHJpbnRm KCJCYWQgb2Zmc2V0ICVwXG4iLCBlKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtNzYyLDYg Kzc1NywxMCBAQCBjaGVja19lbnRyeV9zaXplX2FuZF9ob29rcyhzdHJ1Y3QgaXA2dF9lbnRyeSAq ZSwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCisJZXJyID0gY2hlY2tfZW50cnkoZSk7CisJaWYg KGVycikKKwkJcmV0dXJuIGVycjsKKwogCS8qIENoZWNrIGhvb2tzICYgdW5kZXJmbG93cyAqLwog CWZvciAoaCA9IDA7IGggPCBORl9JTkVUX05VTUhPT0tTOyBoKyspIHsKIAkJaWYgKCEodmFsaWRf aG9va3MgJiAoMSA8PCBoKSkpCkBAIC03NzAsOSArNzY5LDkgQEAgY2hlY2tfZW50cnlfc2l6ZV9h bmRfaG9va3Moc3RydWN0IGlwNnRfZW50cnkgKmUsCiAJCQluZXdpbmZvLT5ob29rX2VudHJ5W2hd ID0gaG9va19lbnRyaWVzW2hdOwogCQlpZiAoKHVuc2lnbmVkIGNoYXIgKillIC0gYmFzZSA9PSB1 bmRlcmZsb3dzW2hdKSB7CiAJCQlpZiAoIWNoZWNrX3VuZGVyZmxvdyhlKSkgewotCQkJCXByX2Vy cigiVW5kZXJmbG93cyBtdXN0IGJlIHVuY29uZGl0aW9uYWwgYW5kICIKLQkJCQkgICAgICAgInVz ZSB0aGUgU1RBTkRBUkQgdGFyZ2V0IHdpdGggIgotCQkJCSAgICAgICAiQUNDRVBUL0RST1BcbiIp OworCQkJCXByX2RlYnVnKCJVbmRlcmZsb3dzIG11c3QgYmUgdW5jb25kaXRpb25hbCBhbmQgIgor CQkJCQkgInVzZSB0aGUgU1RBTkRBUkQgdGFyZ2V0IHdpdGggIgorCQkJCQkgIkFDQ0VQVC9EUk9Q XG4iKTsKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCX0KIAkJCW5ld2luZm8tPnVuZGVyZmxvd1to XSA9IHVuZGVyZmxvd3NbaF07CkBAIC0xNTEwLDcgKzE1MDksOCBAQCBjaGVja19jb21wYXRfZW50 cnlfc2l6ZV9hbmRfaG9va3Moc3RydWN0IGNvbXBhdF9pcDZ0X2VudHJ5ICplLAogCiAJZHVwcmlu dGYoImNoZWNrX2NvbXBhdF9lbnRyeV9zaXplX2FuZF9ob29rcyAlcFxuIiwgZSk7CiAJaWYgKCh1 bnNpZ25lZCBsb25nKWUgJSBfX2FsaWdub2ZfXyhzdHJ1Y3QgY29tcGF0X2lwNnRfZW50cnkpICE9 IDAgfHwKLQkgICAgKHVuc2lnbmVkIGNoYXIgKillICsgc2l6ZW9mKHN0cnVjdCBjb21wYXRfaXA2 dF9lbnRyeSkgPj0gbGltaXQpIHsKKwkgICAgKHVuc2lnbmVkIGNoYXIgKillICsgc2l6ZW9mKHN0 cnVjdCBjb21wYXRfaXA2dF9lbnRyeSkgPj0gbGltaXQgfHwKKwkgICAgKHVuc2lnbmVkIGNoYXIg KillICsgZS0+bmV4dF9vZmZzZXQgPiBsaW1pdCkgewogCQlkdXByaW50ZigiQmFkIG9mZnNldCAl cCwgbGltaXQgPSAlcFxuIiwgZSwgbGltaXQpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0x NTIzLDcgKzE1MjMsNyBAQCBjaGVja19jb21wYXRfZW50cnlfc2l6ZV9hbmRfaG9va3Moc3RydWN0 IGNvbXBhdF9pcDZ0X2VudHJ5ICplLAogCX0KIAogCS8qIEZvciBwdXJwb3NlcyBvZiBjaGVja19l bnRyeSBjYXN0aW5nIHRoZSBjb21wYXQgZW50cnkgaXMgZmluZSAqLwotCXJldCA9IGNoZWNrX2Vu dHJ5KChzdHJ1Y3QgaXA2dF9lbnRyeSAqKWUsIG5hbWUpOworCXJldCA9IGNoZWNrX2VudHJ5KChz dHJ1Y3QgaXA2dF9lbnRyeSAqKWUpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKZGlmZiAt LWdpdCBhL25ldC9pcHY2L3NpdC5jIGIvbmV0L2lwdjYvc2l0LmMKaW5kZXggNTJjZTE5NjlkOWIy Li4xZGJkMWQxMGNhOWQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3NpdC5jCisrKyBiL25ldC9pcHY2 L3NpdC5jCkBAIC01NTMsNyArNTUzLDcgQEAgb3V0Ogogc3RhdGljIGlubGluZSB2b2lkIGlwaXA2 X2Vjbl9kZWNhcHN1bGF0ZShjb25zdCBzdHJ1Y3QgaXBoZHIgKmlwaCwgc3RydWN0IHNrX2J1ZmYg KnNrYikKIHsKIAlpZiAoSU5FVF9FQ05faXNfY2UoaXBoLT50b3MpKQotCQlJUDZfRUNOX3NldF9j ZShpcHY2X2hkcihza2IpKTsKKwkJSVA2X0VDTl9zZXRfY2Uoc2tiLCBpcHY2X2hkcihza2IpKTsK IH0KIAogc3RhdGljIGludCBpcGlwNl9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYikKZGlmZiAtLWdp dCBhL25ldC9pcHY2L3hmcm02X21vZGVfdHVubmVsLmMgYi9uZXQvaXB2Ni94ZnJtNl9tb2RlX3R1 bm5lbC5jCmluZGV4IDIzZWNkNjhhNWU2Mi4uZTMzYzlkN2E0Zjg1IDEwMDY0NAotLS0gYS9uZXQv aXB2Ni94ZnJtNl9tb2RlX3R1bm5lbC5jCisrKyBiL25ldC9pcHY2L3hmcm02X21vZGVfdHVubmVs LmMKQEAgLTI0LDcgKzI0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGlwaXA2X2Vjbl9kZWNhcHN1 bGF0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCXN0cnVjdCBpcHY2aGRyICppbm5lcl9pcGggPSBp cGlwdjZfaGRyKHNrYik7CiAKIAlpZiAoSU5FVF9FQ05faXNfY2UoaXB2Nl9nZXRfZHNmaWVsZChv dXRlcl9pcGgpKSkKLQkJSVA2X0VDTl9zZXRfY2UoaW5uZXJfaXBoKTsKKwkJSVA2X0VDTl9zZXRf Y2Uoc2tiLCBpbm5lcl9pcGgpOwogfQogCiAvKiBBZGQgZW5jYXBzdWxhdGlvbiBoZWFkZXIuCmRp ZmYgLS1naXQgYS9uZXQvaXVjdi9hZl9pdWN2LmMgYi9uZXQvaXVjdi9hZl9pdWN2LmMKaW5kZXgg Y2Y5OGQ2MjVkOTU4Li5mYzM2YWNjZDQ4N2QgMTAwNjQ0Ci0tLSBhL25ldC9pdWN2L2FmX2l1Y3Yu YworKysgYi9uZXQvaXVjdi9hZl9pdWN2LmMKQEAgLTcwOCw2ICs3MDgsOSBAQCBzdGF0aWMgaW50 IGl1Y3Zfc29ja19iaW5kKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRk ciwKIAlpZiAoIWFkZHIgfHwgYWRkci0+c2FfZmFtaWx5ICE9IEFGX0lVQ1YpCiAJCXJldHVybiAt RUlOVkFMOwogCisJaWYgKGFkZHJfbGVuIDwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pdWN2KSkK KwkJcmV0dXJuIC1FSU5WQUw7CisKIAlsb2NrX3NvY2soc2spOwogCWlmIChzay0+c2tfc3RhdGUg IT0gSVVDVl9PUEVOKSB7CiAJCWVyciA9IC1FQkFERkQ7CmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9s MnRwX2lwLmMgYi9uZXQvbDJ0cC9sMnRwX2lwLmMKaW5kZXggMzM0YTkzZDFhOGVkLi4yZDliOThl Y2JkNzMgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfaXAuYworKysgYi9uZXQvbDJ0cC9sMnRw X2lwLmMKQEAgLTEyOSwxMiArMTI5LDExIEBAIHN0YXRpYyBpbnQgbDJ0cF9pcF9yZWN2KHN0cnVj dCBza19idWZmICpza2IpCiAJaW50IGxlbmd0aDsKIAlpbnQgb2Zmc2V0OwogCi0JLyogUG9pbnQg dG8gTDJUUCBoZWFkZXIgKi8KLQlvcHRyID0gcHRyID0gc2tiLT5kYXRhOwotCiAJaWYgKCFwc2ti X21heV9wdWxsKHNrYiwgNCkpCiAJCWdvdG8gZGlzY2FyZDsKIAorCS8qIFBvaW50IHRvIEwyVFAg aGVhZGVyICovCisJb3B0ciA9IHB0ciA9IHNrYi0+ZGF0YTsKIAlzZXNzaW9uX2lkID0gbnRvaGwo KigoX19iZTMyICopIHB0cikpOwogCXB0ciArPSA0OwogCkBAIC0xNjIsNiArMTYxLDkgQEAgc3Rh dGljIGludCBsMnRwX2lwX3JlY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJaWYgKCFwc2tiX21h eV9wdWxsKHNrYiwgbGVuZ3RoKSkKIAkJCWdvdG8gZGlzY2FyZDsKIAorCQkvKiBQb2ludCB0byBM MlRQIGhlYWRlciAqLworCQlvcHRyID0gcHRyID0gc2tiLT5kYXRhOworCQlwdHIgKz0gNDsKIAkJ cHJpbnRrKEtFUk5fREVCVUcgIiVzOiBpcCByZWN2OiAiLCB0dW5uZWwtPm5hbWUpOwogCiAJCW9m ZnNldCA9IDA7CmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvc3RhX2luZm8uYyBiL25ldC9tYWM4 MDIxMS9zdGFfaW5mby5jCmluZGV4IDE5MTRmNWE2ZDZlNy4uZmViN2U2NzQxM2MyIDEwMDY0NAot LS0gYS9uZXQvbWFjODAyMTEvc3RhX2luZm8uYworKysgYi9uZXQvbWFjODAyMTEvc3RhX2luZm8u YwpAQCAtMzQ0LDEyICszNDQsMTYgQEAgc3RhdGljIGludCBzdGFfaW5mb19maW5pc2hfaW5zZXJ0 KHN0cnVjdCBzdGFfaW5mbyAqc3RhLAogewogCXN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2Fs ID0gc3RhLT5sb2NhbDsKIAlzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSA9IHN0 YS0+c2RhdGE7Ci0Jc3RydWN0IHN0YXRpb25faW5mbyBzaW5mbzsKKwlzdHJ1Y3Qgc3RhdGlvbl9p bmZvICpzaW5mbzsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCBlcnIgPSAwOwogCiAJbG9j a2RlcF9hc3NlcnRfaGVsZCgmbG9jYWwtPnN0YV9tdHgpOwogCisJc2luZm8gPSBremFsbG9jKHNp emVvZihzdHJ1Y3Qgc3RhdGlvbl9pbmZvKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFzaW5mbykKKwkJ cmV0dXJuIC1FTk9NRU07CisKIAlpZiAoIXN0YS0+ZHVtbXkgfHwgZHVtbXlfcmVpbnNlcnQpIHsK IAkJLyogbm90aWZ5IGRyaXZlciAqLwogCQlpZiAoc2RhdGEtPnZpZi50eXBlID09IE5MODAyMTFf SUZUWVBFX0FQX1ZMQU4pCkBAIC0zNTgsOCArMzYyLDEwIEBAIHN0YXRpYyBpbnQgc3RhX2luZm9f ZmluaXNoX2luc2VydChzdHJ1Y3Qgc3RhX2luZm8gKnN0YSwKIAkJCQkJICAgICB1LmFwKTsKIAkJ ZXJyID0gZHJ2X3N0YV9hZGQobG9jYWwsIHNkYXRhLCAmc3RhLT5zdGEpOwogCQlpZiAoZXJyKSB7 Ci0JCQlpZiAoIWFzeW5jKQorCQkJaWYgKCFhc3luYykgeworCQkJCWtmcmVlKHNpbmZvKTsKIAkJ CQlyZXR1cm4gZXJyOworCQkJfQogCQkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBmYWlsZWQgdG8g YWRkIElCU1MgU1RBICVwTSB0byAiCiAJCQkJCSAgImRyaXZlciAoJWQpIC0ga2VlcGluZyBpdCBh bnl3YXkuXG4iLAogCQkJICAgICAgIHNkYXRhLT5uYW1lLCBzdGEtPnN0YS5hZGRyLCBlcnIpOwpA QCAtMzk3LDEyICs0MDMsMTEgQEAgc3RhdGljIGludCBzdGFfaW5mb19maW5pc2hfaW5zZXJ0KHN0 cnVjdCBzdGFfaW5mbyAqc3RhLAogCQlpZWVlODAyMTFfc3RhX2RlYnVnZnNfYWRkKHN0YSk7CiAJ CXJhdGVfY29udHJvbF9hZGRfc3RhX2RlYnVnZnMoc3RhKTsKIAotCQltZW1zZXQoJnNpbmZvLCAw LCBzaXplb2Yoc2luZm8pKTsKLQkJc2luZm8uZmlsbGVkID0gMDsKLQkJc2luZm8uZ2VuZXJhdGlv biA9IGxvY2FsLT5zdGFfZ2VuZXJhdGlvbjsKLQkJY2ZnODAyMTFfbmV3X3N0YShzZGF0YS0+ZGV2 LCBzdGEtPnN0YS5hZGRyLCAmc2luZm8sIEdGUF9LRVJORUwpOworCQlzaW5mby0+Z2VuZXJhdGlv biA9IGxvY2FsLT5zdGFfZ2VuZXJhdGlvbjsKKwkJY2ZnODAyMTFfbmV3X3N0YShzZGF0YS0+ZGV2 LCBzdGEtPnN0YS5hZGRyLCBzaW5mbywgR0ZQX0tFUk5FTCk7CiAJfQogCisJa2ZyZWUoc2luZm8p OwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNf cGVfc2lwLmMgYi9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfcGVfc2lwLmMKaW5kZXggODdlY2Y3 NTkzMjNiLi40ZmU1MzBlOTcxZjYgMTAwNjQ0Ci0tLSBhL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92 c19wZV9zaXAuYworKysgYi9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfcGVfc2lwLmMKQEAgLTg1 LDcgKzg1LDcgQEAgaXBfdnNfc2lwX2ZpbGxfcGFyYW0oc3RydWN0IGlwX3ZzX2Nvbm5fcGFyYW0g KnAsIHN0cnVjdCBza19idWZmICpza2IpCiAJZHB0ciA9IHNrYi0+ZGF0YSArIGRhdGFvZmY7CiAJ ZGF0YWxlbiA9IHNrYi0+bGVuIC0gZGF0YW9mZjsKIAotCWlmIChnZXRfY2FsbGlkKGRwdHIsIGRh dGFvZmYsIGRhdGFsZW4sICZtYXRjaG9mZiwgJm1hdGNobGVuKSkKKwlpZiAoZ2V0X2NhbGxpZChk cHRyLCAwLCBkYXRhbGVuLCAmbWF0Y2hvZmYsICZtYXRjaGxlbikpCiAJCXJldHVybiAtRUlOVkFM OwogCiAJLyogTi5COiBwZV9kYXRhIGlzIG9ubHkgc2V0IG9uIHN1Y2Nlc3MsCmRpZmYgLS1naXQg YS9uZXQvcGhvbmV0L2FmX3Bob25ldC5jIGIvbmV0L3Bob25ldC9hZl9waG9uZXQuYwppbmRleCBk NjVmNjk5ZmJmMzQuLjFlMjlmNzFlZDNjNiAxMDA2NDQKLS0tIGEvbmV0L3Bob25ldC9hZl9waG9u ZXQuYworKysgYi9uZXQvcGhvbmV0L2FmX3Bob25ldC5jCkBAIC0zNzcsNiArMzc3LDEwIEBAIHN0 YXRpYyBpbnQgcGhvbmV0X3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LAogCXN0cnVjdCBzb2NrYWRkcl9wbiBzYTsKIAl1MTYgbGVuOwogCisJc2tiID0gc2ti X3NoYXJlX2NoZWNrKHNrYiwgR0ZQX0FUT01JQyk7CisJaWYgKCFza2IpCisJCXJldHVybiBORVRf UlhfRFJPUDsKKwogCS8qIGNoZWNrIHdlIGhhdmUgYXQgbGVhc3QgYSBmdWxsIFBob25ldCBoZWFk ZXIgKi8KIAlpZiAoIXBza2JfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgcGhvbmV0aGRyKSkpCiAJ CWdvdG8gb3V0OwpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvaXB2Ni5jIGIvbmV0L3NjdHAvaXB2Ni5j CmluZGV4IDA1NGM2YTI4NTY2MS4uNDI4ZmE2ZjY5YmQ4IDEwMDY0NAotLS0gYS9uZXQvc2N0cC9p cHY2LmMKKysrIGIvbmV0L3NjdHAvaXB2Ni5jCkBAIC01MTUsNiArNTE1LDggQEAgc3RhdGljIGlu dCBzY3RwX3Y2X2NtcF9hZGRyKGNvbnN0IHVuaW9uIHNjdHBfYWRkciAqYWRkcjEsCiAJCX0KIAkJ cmV0dXJuIDA7CiAJfQorCWlmIChhZGRyMS0+djYuc2luNl9wb3J0ICE9IGFkZHIyLT52Ni5zaW42 X3BvcnQpCisJCXJldHVybiAwOwogCWlmICghaXB2Nl9hZGRyX2VxdWFsKCZhZGRyMS0+djYuc2lu Nl9hZGRyLCAmYWRkcjItPnY2LnNpbjZfYWRkcikpCiAJCXJldHVybiAwOwogCS8qIElmIHRoaXMg aXMgYSBsaW5rbG9jYWwgYWRkcmVzcywgY29tcGFyZSB0aGUgc2NvcGVfaWQuICovCmRpZmYgLS1n aXQgYS9uZXQvc2N0cC9wcm90b2NvbC5jIGIvbmV0L3NjdHAvcHJvdG9jb2wuYwppbmRleCBkZTM1 ZTAxZjAzYTkuLjE0OWRlYWVmYzBkNiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvcHJvdG9jb2wuYwor KysgYi9uZXQvc2N0cC9wcm90b2NvbC5jCkBAIC02Nyw2ICs2Nyw4IEBACiAjaW5jbHVkZSA8bmV0 L2luZXRfY29tbW9uLmg+CiAjaW5jbHVkZSA8bmV0L2luZXRfZWNuLmg+CiAKKyNkZWZpbmUgTUFY X1NDVFBfUE9SVF9IQVNIX0VOVFJJRVMgKDY0ICogMTAyNCkKKwogLyogR2xvYmFsIGRhdGEgc3Ry dWN0dXJlcy4gKi8KIHN0cnVjdCBzY3RwX2dsb2JhbHMgc2N0cF9nbG9iYWxzIF9fcmVhZF9tb3N0 bHk7CiBERUZJTkVfU05NUF9TVEFUKHN0cnVjdCBzY3RwX21pYiwgc2N0cF9zdGF0aXN0aWNzKSBf X3JlYWRfbW9zdGx5OwpAQCAtMTIwNiw2ICsxMjA4LDggQEAgU0NUUF9TVEFUSUMgX19pbml0IGlu dCBzY3RwX2luaXQodm9pZCkKIAl1bnNpZ25lZCBsb25nIGxpbWl0OwogCWludCBtYXhfc2hhcmU7 CiAJaW50IG9yZGVyOworCWludCBudW1fZW50cmllczsKKwlpbnQgbWF4X2VudHJ5X29yZGVyOwog CiAJLyogU0NUUF9ERUJVRyBzYW5pdHkgY2hlY2suICovCiAJaWYgKCFzY3RwX3Nhbml0eV9jaGVj aygpKQpAQCAtMTMxNiwxNCArMTMyMCwyNCBAQCBTQ1RQX1NUQVRJQyBfX2luaXQgaW50IHNjdHBf aW5pdCh2b2lkKQogCiAJLyogU2l6ZSBhbmQgYWxsb2NhdGUgdGhlIGFzc29jaWF0aW9uIGhhc2gg dGFibGUuCiAJICogVGhlIG1ldGhvZG9sb2d5IGlzIHNpbWlsYXIgdG8gdGhhdCBvZiB0aGUgdGNw IGhhc2ggdGFibGVzLgorCSAqIFRob3VnaCBub3QgaWRlbnRpY2FsLiAgU3RhcnQgYnkgZ2V0dGlu ZyBhIGdvYWwgc2l6ZQogCSAqLwogCWlmICh0b3RhbHJhbV9wYWdlcyA+PSAoMTI4ICogMTAyNCkp CiAJCWdvYWwgPSB0b3RhbHJhbV9wYWdlcyA+PiAoMjIgLSBQQUdFX1NISUZUKTsKIAllbHNlCiAJ CWdvYWwgPSB0b3RhbHJhbV9wYWdlcyA+PiAoMjQgLSBQQUdFX1NISUZUKTsKIAotCWZvciAob3Jk ZXIgPSAwOyAoMVVMIDw8IG9yZGVyKSA8IGdvYWw7IG9yZGVyKyspCi0JCTsKKwkvKiBUaGVuIGNv bXB1dGUgdGhlIHBhZ2Ugb3JkZXIgZm9yIHNhaWQgZ29hbCAqLworCW9yZGVyID0gZ2V0X29yZGVy KGdvYWwpOworCisJLyogTm93IGNvbXB1dGUgdGhlIHJlcXVpcmVkIHBhZ2Ugb3JkZXIgZm9yIHRo ZSBtYXhpbXVtIHNpemVkIHRhYmxlIHdlCisJICogd2FudCB0byBjcmVhdGUKKwkgKi8KKwltYXhf ZW50cnlfb3JkZXIgPSBnZXRfb3JkZXIoTUFYX1NDVFBfUE9SVF9IQVNIX0VOVFJJRVMgKgorCQkJ CSAgICBzaXplb2Yoc3RydWN0IHNjdHBfYmluZF9oYXNoYnVja2V0KSk7CisKKwkvKiBMaW1pdCB0 aGUgcGFnZSBvcmRlciBieSB0aGF0IG1heGltdW0gaGFzaCB0YWJsZSBzaXplICovCisJb3JkZXIg PSBtaW4ob3JkZXIsIG1heF9lbnRyeV9vcmRlcik7CiAKIAlkbyB7CiAJCXNjdHBfYXNzb2NfaGFz aHNpemUgPSAoMVVMIDw8IG9yZGVyKSAqIFBBR0VfU0laRSAvCkBAIC0xMzU3LDI3ICsxMzcxLDQy IEBAIFNDVFBfU1RBVElDIF9faW5pdCBpbnQgc2N0cF9pbml0KHZvaWQpCiAJCUlOSVRfSExJU1Rf SEVBRCgmc2N0cF9lcF9oYXNodGFibGVbaV0uY2hhaW4pOwogCX0KIAotCS8qIEFsbG9jYXRlIGFu ZCBpbml0aWFsaXplIHRoZSBTQ1RQIHBvcnQgaGFzaCB0YWJsZS4gICovCisJLyogQWxsb2NhdGUg YW5kIGluaXRpYWxpemUgdGhlIFNDVFAgcG9ydCBoYXNoIHRhYmxlLgorCSAqIE5vdGUgdGhhdCBv cmRlciBpcyBpbml0YWxpemVkIHRvIHN0YXJ0IGF0IHRoZSBtYXggc2l6ZWQKKwkgKiB0YWJsZSB3 ZSB3YW50IHRvIHN1cHBvcnQuICBJZiB3ZSBjYW4ndCBnZXQgdGhhdCBtYW55IHBhZ2VzCisJICog cmVkdWNlIHRoZSBvcmRlciBhbmQgdHJ5IGFnYWluCisJICovCiAJZG8gewotCQlzY3RwX3BvcnRf aGFzaHNpemUgPSAoMVVMIDw8IG9yZGVyKSAqIFBBR0VfU0laRSAvCi0JCQkJCXNpemVvZihzdHJ1 Y3Qgc2N0cF9iaW5kX2hhc2hidWNrZXQpOwotCQlpZiAoKHNjdHBfcG9ydF9oYXNoc2l6ZSA+ICg2 NCAqIDEwMjQpKSAmJiBvcmRlciA+IDApCi0JCQljb250aW51ZTsKIAkJc2N0cF9wb3J0X2hhc2h0 YWJsZSA9IChzdHJ1Y3Qgc2N0cF9iaW5kX2hhc2hidWNrZXQgKikKIAkJCV9fZ2V0X2ZyZWVfcGFn ZXMoR0ZQX0FUT01JQ3xfX0dGUF9OT1dBUk4sIG9yZGVyKTsKIAl9IHdoaWxlICghc2N0cF9wb3J0 X2hhc2h0YWJsZSAmJiAtLW9yZGVyID4gMCk7CisKIAlpZiAoIXNjdHBfcG9ydF9oYXNodGFibGUp IHsKIAkJcHJfZXJyKCJGYWlsZWQgYmluZCBoYXNoIGFsbG9jXG4iKTsKIAkJc3RhdHVzID0gLUVO T01FTTsKIAkJZ290byBlcnJfYmhhc2hfYWxsb2M7CiAJfQorCisJLyogTm93IGNvbXB1dGUgdGhl IG51bWJlciBvZiBlbnRyaWVzIHRoYXQgd2lsbCBmaXQgaW4gdGhlCisJICogcG9ydCBoYXNoIHNw YWNlIHdlIGFsbG9jYXRlZAorCSAqLworCW51bV9lbnRyaWVzID0gKDFVTCA8PCBvcmRlcikgKiBQ QUdFX1NJWkUgLworCQkgICAgICBzaXplb2Yoc3RydWN0IHNjdHBfYmluZF9oYXNoYnVja2V0KTsK KworCS8qIEFuZCBmaW5pc2ggYnkgcm91bmRpbmcgaXQgZG93biB0byB0aGUgbmVhcmVzdCBwb3dl ciBvZiB0d28KKwkgKiB0aGlzIHdhc3RlcyBzb21lIG1lbW9yeSBvZiBjb3Vyc2UsIGJ1dCBpdHMg bmVlZGVkIGJlY2F1c2UKKwkgKiB0aGUgaGFzaCBmdW5jdGlvbiBvcGVyYXRlcyBiYXNlZCBvbiB0 aGUgYXNzdW1wdGlvbiB0aGF0CisJICogdGhhdCB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaXMgYSBw b3dlciBvZiB0d28KKwkgKi8KKwlzY3RwX3BvcnRfaGFzaHNpemUgPSByb3VuZGRvd25fcG93X29m X3R3byhudW1fZW50cmllcyk7CisKIAlmb3IgKGkgPSAwOyBpIDwgc2N0cF9wb3J0X2hhc2hzaXpl OyBpKyspIHsKIAkJc3Bpbl9sb2NrX2luaXQoJnNjdHBfcG9ydF9oYXNodGFibGVbaV0ubG9jayk7 CiAJCUlOSVRfSExJU1RfSEVBRCgmc2N0cF9wb3J0X2hhc2h0YWJsZVtpXS5jaGFpbik7CiAJfQog Ci0JcHJfaW5mbygiSGFzaCB0YWJsZXMgY29uZmlndXJlZCAoZXN0YWJsaXNoZWQgJWQgYmluZCAl ZClcbiIsCi0JCXNjdHBfYXNzb2NfaGFzaHNpemUsIHNjdHBfcG9ydF9oYXNoc2l6ZSk7CisJcHJf aW5mbygiSGFzaCB0YWJsZXMgY29uZmlndXJlZCAoZXN0YWJsaXNoZWQgJWQgYmluZCAlZC8lZClc biIsCisJCXNjdHBfYXNzb2NfaGFzaHNpemUsIHNjdHBfcG9ydF9oYXNoc2l6ZSwgbnVtX2VudHJp ZXMpOwogCiAJLyogRGlzYWJsZSBBRERJUCBieSBkZWZhdWx0LiAqLwogCXNjdHBfYWRkaXBfZW5h YmxlID0gMDsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAv c21fc3RhdGVmdW5zLmMKaW5kZXggZWI2MzhkZDlhZWY4Li40ZTBhOWI5MzQyMzMgMTAwNjQ0Ci0t LSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCisrKyBiL25ldC9zY3RwL3NtX3N0YXRlZnVucy5j CkBAIC00NzQwLDcgKzQ3NDAsOCBAQCBzY3RwX2Rpc3Bvc2l0aW9uX3Qgc2N0cF9zZl9kb185XzFf cHJtX2Fib3J0KAogCiAJcmV0dmFsID0gU0NUUF9ESVNQT1NJVElPTl9DT05TVU1FOwogCi0Jc2N0 cF9hZGRfY21kX3NmKGNvbW1hbmRzLCBTQ1RQX0NNRF9SRVBMWSwgU0NUUF9DSFVOSyhhYm9ydCkp OworCWlmIChhYm9ydCkKKwkJc2N0cF9hZGRfY21kX3NmKGNvbW1hbmRzLCBTQ1RQX0NNRF9SRVBM WSwgU0NUUF9DSFVOSyhhYm9ydCkpOwogCiAJLyogRXZlbiBpZiB3ZSBjYW4ndCBzZW5kIHRoZSBB Qk9SVCBkdWUgdG8gbG93IG1lbW9yeSBkZWxldGUgdGhlCiAJICogVENCLiAgVGhpcyBpcyBhIGRl cGFydHVyZSBmcm9tIG91ciB0eXBpY2FsIE5PTUVNIGhhbmRsaW5nLgpAQCAtNDg3Miw3ICs0ODcz LDggQEAgc2N0cF9kaXNwb3NpdGlvbl90IHNjdHBfc2ZfY29va2llX3dhaXRfcHJtX2Fib3J0KAog CQkJU0NUUF9UTyhTQ1RQX0VWRU5UX1RJTUVPVVRfVDFfSU5JVCkpOwogCXJldHZhbCA9IFNDVFBf RElTUE9TSVRJT05fQ09OU1VNRTsKIAotCXNjdHBfYWRkX2NtZF9zZihjb21tYW5kcywgU0NUUF9D TURfUkVQTFksIFNDVFBfQ0hVTksoYWJvcnQpKTsKKwlpZiAoYWJvcnQpCisJCXNjdHBfYWRkX2Nt ZF9zZihjb21tYW5kcywgU0NUUF9DTURfUkVQTFksIFNDVFBfQ0hVTksoYWJvcnQpKTsKIAogCXNj dHBfYWRkX2NtZF9zZihjb21tYW5kcywgU0NUUF9DTURfTkVXX1NUQVRFLAogCQkJU0NUUF9TVEFU RShTQ1RQX1NUQVRFX0NMT1NFRCkpOwpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc29ja2V0LmMgYi9u ZXQvc2N0cC9zb2NrZXQuYwppbmRleCA1YjBlMTZjZmFmZjUuLjk5MDdlMzFlYjI2YyAxMDA2NDQK LS0tIGEvbmV0L3NjdHAvc29ja2V0LmMKKysrIGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTE1MjQs OCArMTUyNCw3IEBAIFNDVFBfU1RBVElDIHZvaWQgc2N0cF9jbG9zZShzdHJ1Y3Qgc29jayAqc2ss IGxvbmcgdGltZW91dCkKIAkJCXN0cnVjdCBzY3RwX2NodW5rICpjaHVuazsKIAogCQkJY2h1bmsg PSBzY3RwX21ha2VfYWJvcnRfdXNlcihhc29jLCBOVUxMLCAwKTsKLQkJCWlmIChjaHVuaykKLQkJ CQlzY3RwX3ByaW1pdGl2ZV9BQk9SVChhc29jLCBjaHVuayk7CisJCQlzY3RwX3ByaW1pdGl2ZV9B Qk9SVChhc29jLCBjaHVuayk7CiAJCX0gZWxzZQogCQkJc2N0cF9wcmltaXRpdmVfU0hVVERPV04o YXNvYywgTlVMTCk7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L3NvY2tldC5jIGIvbmV0L3NvY2tldC5j CmluZGV4IDEwZWEyNWFmZDdlNi4uYmRjZGRjZTJkODVkIDEwMDY0NAotLS0gYS9uZXQvc29ja2V0 LmMKKysrIGIvbmV0L3NvY2tldC5jCkBAIC0yMzE3LDMxICsyMzE3LDMxIEBAIGludCBfX3N5c19y ZWN2bW1zZyhpbnQgZmQsIHN0cnVjdCBtbXNnaGRyIF9fdXNlciAqbW1zZywgdW5zaWduZWQgaW50 IHZsZW4sCiAJCQlicmVhazsKIAl9CiAKLW91dF9wdXQ6Ci0JZnB1dF9saWdodChzb2NrLT5maWxl LCBmcHV0X25lZWRlZCk7Ci0KIAlpZiAoZXJyID09IDApCi0JCXJldHVybiBkYXRhZ3JhbXM7CisJ CWdvdG8gb3V0X3B1dDsKIAotCWlmIChkYXRhZ3JhbXMgIT0gMCkgeworCWlmIChkYXRhZ3JhbXMg PT0gMCkgeworCQlkYXRhZ3JhbXMgPSBlcnI7CisJCWdvdG8gb3V0X3B1dDsKKwl9CisKKwkvKgor CSAqIFdlIG1heSByZXR1cm4gbGVzcyBlbnRyaWVzIHRoYW4gcmVxdWVzdGVkICh2bGVuKSBpZiB0 aGUKKwkgKiBzb2NrIGlzIG5vbiBibG9jayBhbmQgdGhlcmUgYXJlbid0IGVub3VnaCBkYXRhZ3Jh bXMuLi4KKwkgKi8KKwlpZiAoZXJyICE9IC1FQUdBSU4pIHsKIAkJLyoKLQkJICogV2UgbWF5IHJl dHVybiBsZXNzIGVudHJpZXMgdGhhbiByZXF1ZXN0ZWQgKHZsZW4pIGlmIHRoZQotCQkgKiBzb2Nr IGlzIG5vbiBibG9jayBhbmQgdGhlcmUgYXJlbid0IGVub3VnaCBkYXRhZ3JhbXMuLi4KKwkJICog Li4uIG9yICBpZiByZWN2bXNnIHJldHVybnMgYW4gZXJyb3IgYWZ0ZXIgd2UKKwkJICogcmVjZWl2 ZWQgc29tZSBkYXRhZ3JhbXMsIHdoZXJlIHdlIHJlY29yZCB0aGUKKwkJICogZXJyb3IgdG8gcmV0 dXJuIG9uIHRoZSBuZXh0IGNhbGwgb3IgaWYgdGhlCisJCSAqIGFwcCBhc2tzIGFib3V0IGl0IHVz aW5nIGdldHNvY2tvcHQoU09fRVJST1IpLgogCQkgKi8KLQkJaWYgKGVyciAhPSAtRUFHQUlOKSB7 Ci0JCQkvKgotCQkJICogLi4uIG9yICBpZiByZWN2bXNnIHJldHVybnMgYW4gZXJyb3IgYWZ0ZXIg d2UKLQkJCSAqIHJlY2VpdmVkIHNvbWUgZGF0YWdyYW1zLCB3aGVyZSB3ZSByZWNvcmQgdGhlCi0J CQkgKiBlcnJvciB0byByZXR1cm4gb24gdGhlIG5leHQgY2FsbCBvciBpZiB0aGUKLQkJCSAqIGFw cCBhc2tzIGFib3V0IGl0IHVzaW5nIGdldHNvY2tvcHQoU09fRVJST1IpLgotCQkJICovCi0JCQlz b2NrLT5zay0+c2tfZXJyID0gLWVycjsKLQkJfQotCi0JCXJldHVybiBkYXRhZ3JhbXM7CisJCXNv Y2stPnNrLT5za19lcnIgPSAtZXJyOwogCX0KK291dF9wdXQ6CisJZnB1dF9saWdodChzb2NrLT5m aWxlLCBmcHV0X25lZWRlZCk7CiAKLQlyZXR1cm4gZXJyOworCXJldHVybiBkYXRhZ3JhbXM7CiB9 CiAKIFNZU0NBTExfREVGSU5FNShyZWN2bW1zZywgaW50LCBmZCwgc3RydWN0IG1tc2doZHIgX191 c2VyICosIG1tc2csCmRpZmYgLS1naXQgYS9uZXQveGZybS94ZnJtX2lucHV0LmMgYi9uZXQveGZy bS94ZnJtX2lucHV0LmMKaW5kZXggYWIyYmI0MmZlMDk0Li4yNTI5ZGFiNWFmNDcgMTAwNjQ0Ci0t LSBhL25ldC94ZnJtL3hmcm1faW5wdXQuYworKysgYi9uZXQveGZybS94ZnJtX2lucHV0LmMKQEAg LTE5MSw2ICsxOTEsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQg bmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpCiAJCVhGUk1fU0tCX0NCKHNrYikt PnNlcS5pbnB1dC5oaSA9IHNlcV9oaTsKIAogCQlza2JfZHN0X2ZvcmNlKHNrYik7CisJCWRldl9o b2xkKHNrYi0+ZGV2KTsKIAogCQluZXh0aGRyID0geC0+dHlwZS0+aW5wdXQoeCwgc2tiKTsKIApA QCAtMTk4LDYgKzE5OSw4IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGlu dCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSkKIAkJCXJldHVybiAwOwogCiBy ZXN1bWU6CisJCWRldl9wdXQoc2tiLT5kZXYpOworCiAJCXNwaW5fbG9jaygmeC0+bG9jayk7CiAJ CWlmIChuZXh0aGRyIDw9IDApIHsKIAkJCWlmIChuZXh0aGRyID09IC1FQkFETVNHKSB7CmRpZmYg LS1naXQgYS9zb3VuZC9jb3JlL3RpbWVyLmMgYi9zb3VuZC9jb3JlL3RpbWVyLmMKaW5kZXggYmVi NDFlY2IyNzMwLi5iYzgzYTk2NTNjNzYgMTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUvdGltZXIuYwor KysgYi9zb3VuZC9jb3JlL3RpbWVyLmMKQEAgLTEwMTcsOCArMTAxNyw4IEBAIHN0YXRpYyBpbnQg c25kX3RpbWVyX3Nfc3RhcnQoc3RydWN0IHNuZF90aW1lciAqIHRpbWVyKQogCQluamlmZiArPSB0 aW1lci0+c3RpY2tzIC0gcHJpdi0+Y29ycmVjdGlvbjsKIAkJcHJpdi0+Y29ycmVjdGlvbiA9IDA7 CiAJfQotCXByaXYtPmxhc3RfZXhwaXJlcyA9IHByaXYtPnRsaXN0LmV4cGlyZXMgPSBuamlmZjsK LQlhZGRfdGltZXIoJnByaXYtPnRsaXN0KTsKKwlwcml2LT5sYXN0X2V4cGlyZXMgPSBuamlmZjsK Kwltb2RfdGltZXIoJnByaXYtPnRsaXN0LCBuamlmZik7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAt LWdpdCBhL3NvdW5kL3BjaS9pbnRlbDh4MC5jIGIvc291bmQvcGNpL2ludGVsOHgwLmMKaW5kZXgg NTVmNDhmYmNjYTM4Li43M2IxM2EwM2IyZDAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9pbnRlbDh4 MC5jCisrKyBiL3NvdW5kL3BjaS9pbnRlbDh4MC5jCkBAIC0yODU4LDYgKzI4NTgsNyBAQCBzdGF0 aWMgdm9pZCBfX2RldmluaXQgaW50ZWw4eDBfbWVhc3VyZV9hYzk3X2Nsb2NrKHN0cnVjdCBpbnRl bDh4MCAqY2hpcCkKIAogc3RhdGljIHN0cnVjdCBzbmRfcGNpX3F1aXJrIGludGVsOHgwX2Nsb2Nr X2xpc3RbXSBfX2RldmluaXRkYXRhID0gewogCVNORF9QQ0lfUVVJUksoMHgwZTExLCAweDAwOGEs ICJBRDE4ODUiLCA0MTAwMCksCisJU05EX1BDSV9RVUlSSygweDEwMTQsIDB4MDU4MSwgIkFEMTk4 MUIiLCA0ODAwMCksCiAJU05EX1BDSV9RVUlSSygweDEwMjgsIDB4MDBiZSwgIkFEMTg4NSIsIDQ0 MTAwKSwKIAlTTkRfUENJX1FVSVJLKDB4MTAyOCwgMHgwMTc3LCAiQUQxOTgwIiwgNDgwMDApLAog CVNORF9QQ0lfUVVJUksoMHgxMDI4LCAweDAxYWQsICJBRDE5ODFCIiwgNDgwMDApLApkaWZmIC0t Z2l0IGEvc291bmQvdXNiL2Nsb2NrLmMgYi9zb3VuZC91c2IvY2xvY2suYwppbmRleCA1ZTYzNGEy ZWIyODIuLjRjMDFmODc3MjI3YyAxMDA2NDQKLS0tIGEvc291bmQvdXNiL2Nsb2NrLmMKKysrIGIv c291bmQvdXNiL2Nsb2NrLmMKQEAgLTIxMSw2ICsyMTEsOCBAQCBzdGF0aWMgaW50IHNldF9zYW1w bGVfcmF0ZV92MShzdHJ1Y3Qgc25kX3VzYl9hdWRpbyAqY2hpcCwgaW50IGlmYWNlLAogCXVuc2ln bmVkIGNoYXIgZGF0YVszXTsKIAlpbnQgZXJyLCBjcmF0ZTsKIAorCWlmIChnZXRfaWZhY2VfZGVz YyhhbHRzKS0+Yk51bUVuZHBvaW50cyA8IDEpCisJCXJldHVybiAtRUlOVkFMOwogCWVwID0gZ2V0 X2VuZHBvaW50KGFsdHMsIDApLT5iRW5kcG9pbnRBZGRyZXNzOwogCiAJLyogaWYgZW5kcG9pbnQg ZG9lc24ndCBoYXZlIHNhbXBsaW5nIHJhdGUgY29udHJvbCwgYmFpbCBvdXQgKi8KZGlmZiAtLWdp dCBhL3NvdW5kL3VzYi9wY20uYyBiL3NvdW5kL3VzYi9wY20uYwppbmRleCA5ODNlMDcxOWY5MjMu LmQ1Y2RmMWZjMDUxYSAxMDA2NDQKLS0tIGEvc291bmQvdXNiL3BjbS5jCisrKyBiL3NvdW5kL3Vz Yi9wY20uYwpAQCAtMTQ4LDYgKzE0OCw4IEBAIHN0YXRpYyBpbnQgaW5pdF9waXRjaF92MShzdHJ1 Y3Qgc25kX3VzYl9hdWRpbyAqY2hpcCwgaW50IGlmYWNlLAogCXVuc2lnbmVkIGNoYXIgZGF0YVsx XTsKIAlpbnQgZXJyOwogCisJaWYgKGdldF9pZmFjZV9kZXNjKGFsdHMpLT5iTnVtRW5kcG9pbnRz IDwgMSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJZXAgPSBnZXRfZW5kcG9pbnQoYWx0cywgMCktPmJF bmRwb2ludEFkZHJlc3M7CiAKIAlkYXRhWzBdID0gMTsKZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi9x dWlya3MuYyBiL3NvdW5kL3VzYi9xdWlya3MuYwppbmRleCBiMDFkM2NmMzc1OWUuLmE4ODBlMjRk MTk2MiAxMDA2NDQKLS0tIGEvc291bmQvdXNiL3F1aXJrcy5jCisrKyBiL3NvdW5kL3VzYi9xdWly a3MuYwpAQCAtMTM2LDYgKzEzNiw3IEBAIHN0YXRpYyBpbnQgY3JlYXRlX2ZpeGVkX3N0cmVhbV9x dWlyayhzdHJ1Y3Qgc25kX3VzYl9hdWRpbyAqY2hpcCwKIAkJc25kX3ByaW50ayhLRVJOX0VSUiAi Y2Fubm90IG1lbWR1cFxuIik7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KKwlJTklUX0xJU1RfSEVB RCgmZnAtPmxpc3QpOwogCWlmIChmcC0+bnJfcmF0ZXMgPiBNQVhfTlJfUkFURVMpIHsKIAkJa2Zy ZWUoZnApOwogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTE1MywyNCArMTU0LDMxIEBAIHN0YXRpYyBp bnQgY3JlYXRlX2ZpeGVkX3N0cmVhbV9xdWlyayhzdHJ1Y3Qgc25kX3VzYl9hdWRpbyAqY2hpcCwK IAlzdHJlYW0gPSAoZnAtPmVuZHBvaW50ICYgVVNCX0RJUl9JTikKIAkJPyBTTkRSVl9QQ01fU1RS RUFNX0NBUFRVUkUgOiBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLOwogCWVyciA9IHNuZF91c2Jf YWRkX2F1ZGlvX3N0cmVhbShjaGlwLCBzdHJlYW0sIGZwKTsKLQlpZiAoZXJyIDwgMCkgewotCQlr ZnJlZShmcCk7Ci0JCWtmcmVlKHJhdGVfdGFibGUpOwotCQlyZXR1cm4gZXJyOwotCX0KKwlpZiAo ZXJyIDwgMCkKKwkJZ290byBlcnJvcjsKIAlpZiAoZnAtPmlmYWNlICE9IGdldF9pZmFjZV9kZXNj KCZpZmFjZS0+YWx0c2V0dGluZ1swXSktPmJJbnRlcmZhY2VOdW1iZXIgfHwKIAkgICAgZnAtPmFs dHNldF9pZHggPj0gaWZhY2UtPm51bV9hbHRzZXR0aW5nKSB7Ci0JCWtmcmVlKGZwKTsKLQkJa2Zy ZWUocmF0ZV90YWJsZSk7Ci0JCXJldHVybiAtRUlOVkFMOworCQllcnIgPSAtRUlOVkFMOworCQln b3RvIGVycm9yOwogCX0KIAlhbHRzID0gJmlmYWNlLT5hbHRzZXR0aW5nW2ZwLT5hbHRzZXRfaWR4 XTsKKwlpZiAoZ2V0X2lmYWNlX2Rlc2MoYWx0cyktPmJOdW1FbmRwb2ludHMgPCAxKSB7CisJCWVy ciA9IC1FSU5WQUw7CisJCWdvdG8gZXJyb3I7CisJfQorCiAJZnAtPmRhdGFpbnRlcnZhbCA9IHNu ZF91c2JfcGFyc2VfZGF0YWludGVydmFsKGNoaXAsIGFsdHMpOwogCWZwLT5tYXhwYWNrc2l6ZSA9 IGxlMTZfdG9fY3B1KGdldF9lbmRwb2ludChhbHRzLCAwKS0+d01heFBhY2tldFNpemUpOwogCXVz Yl9zZXRfaW50ZXJmYWNlKGNoaXAtPmRldiwgZnAtPmlmYWNlLCAwKTsKIAlzbmRfdXNiX2luaXRf cGl0Y2goY2hpcCwgZnAtPmlmYWNlLCBhbHRzLCBmcCk7CiAJc25kX3VzYl9pbml0X3NhbXBsZV9y YXRlKGNoaXAsIGZwLT5pZmFjZSwgYWx0cywgZnAsIGZwLT5yYXRlX21heCk7CiAJcmV0dXJuIDA7 CisKKyBlcnJvcjoKKwlsaXN0X2RlbCgmZnAtPmxpc3QpOyAvKiB1bmxpbmsgZm9yIGF2b2lkaW5n IGRvdWJsZS1mcmVlICovCisJa2ZyZWUoZnApOworCWtmcmVlKHJhdGVfdGFibGUpOworCXJldHVy biBlcnI7CiB9CiAKIC8qCkBAIC0yMzcsNiArMjQ1LDcgQEAgc3RhdGljIGludCBjcmVhdGVfdWF4 eF9xdWlyayhzdHJ1Y3Qgc25kX3VzYl9hdWRpbyAqY2hpcCwKIAlmcC0+ZXBfYXR0ciA9IGdldF9l bmRwb2ludChhbHRzLCAwKS0+Ym1BdHRyaWJ1dGVzOwogCWZwLT5kYXRhaW50ZXJ2YWwgPSAwOwog CWZwLT5tYXhwYWNrc2l6ZSA9IGxlMTZfdG9fY3B1KGdldF9lbmRwb2ludChhbHRzLCAwKS0+d01h eFBhY2tldFNpemUpOworCUlOSVRfTElTVF9IRUFEKCZmcC0+bGlzdCk7CiAKIAlzd2l0Y2ggKGZw LT5tYXhwYWNrc2l6ZSkgewogCWNhc2UgMHgxMjA6CkBAIC0yNjAsNiArMjY5LDcgQEAgc3RhdGlj IGludCBjcmVhdGVfdWF4eF9xdWlyayhzdHJ1Y3Qgc25kX3VzYl9hdWRpbyAqY2hpcCwKIAkJPyBT TkRSVl9QQ01fU1RSRUFNX0NBUFRVUkUgOiBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLOwogCWVy ciA9IHNuZF91c2JfYWRkX2F1ZGlvX3N0cmVhbShjaGlwLCBzdHJlYW0sIGZwKTsKIAlpZiAoZXJy IDwgMCkgeworCQlsaXN0X2RlbCgmZnAtPmxpc3QpOyAvKiB1bmxpbmsgZm9yIGF2b2lkaW5nIGRv dWJsZS1mcmVlICovCiAJCWtmcmVlKGZwKTsKIAkJcmV0dXJuIGVycjsKIAl9CmRpZmYgLS1naXQg YS9zb3VuZC91c2Ivc3RyZWFtLmMgYi9zb3VuZC91c2Ivc3RyZWFtLmMKaW5kZXggMzNhMzM1Yjhh MWJkLi43ZGNlMDc0OTYxNjkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi9zdHJlYW0uYworKysgYi9z b3VuZC91c2Ivc3RyZWFtLmMKQEAgLTc3LDcgKzc3LDkgQEAgc3RhdGljIHZvaWQgc25kX3VzYl9h dWRpb19wY21fZnJlZShzdHJ1Y3Qgc25kX3BjbSAqcGNtKQogLyoKICAqIGFkZCB0aGlzIGVuZHBv aW50IHRvIHRoZSBjaGlwIGluc3RhbmNlLgogICogaWYgYSBzdHJlYW0gd2l0aCB0aGUgc2FtZSBl bmRwb2ludCBhbHJlYWR5IGV4aXN0cywgYXBwZW5kIHRvIGl0LgotICogaWYgbm90LCBjcmVhdGUg YSBuZXcgcGNtIHN0cmVhbS4KKyAqIGlmIG5vdCwgY3JlYXRlIGEgbmV3IHBjbSBzdHJlYW0uIG5v dGUsIGZwIGlzIGFkZGVkIHRvIHRoZSBzdWJzdHJlYW0KKyAqIGZtdF9saXN0IGFuZCB3aWxsIGJl IGZyZWVkIG9uIHRoZSBjaGlwIGluc3RhbmNlIHJlbGVhc2UuIGRvIG5vdCBmcmVlCisgKiBmcCBv ciBkbyByZW1vdmUgaXQgZnJvbSB0aGUgc3Vic3RyZWFtIGZtdF9saXN0IHRvIGF2b2lkIGRvdWJs ZS1mcmVlLgogICovCiBpbnQgc25kX3VzYl9hZGRfYXVkaW9fc3RyZWFtKHN0cnVjdCBzbmRfdXNi X2F1ZGlvICpjaGlwLAogCQkJICAgICBpbnQgc3RyZWFtLApAQCAtNDAzLDYgKzQwNSw3IEBAIGlu dCBzbmRfdXNiX3BhcnNlX2F1ZGlvX2ludGVyZmFjZShzdHJ1Y3Qgc25kX3VzYl9hdWRpbyAqY2hp cCwgaW50IGlmYWNlX25vKQogCQkJCQkqIChmcC0+bWF4cGFja3NpemUgJiAweDdmZik7CiAJCWZw LT5hdHRyaWJ1dGVzID0gcGFyc2VfdWFjX2VuZHBvaW50X2F0dHJpYnV0ZXMoY2hpcCwgYWx0cywg cHJvdG9jb2wsIGlmYWNlX25vKTsKIAkJZnAtPmNsb2NrID0gY2xvY2s7CisJCUlOSVRfTElTVF9I RUFEKCZmcC0+bGlzdCk7CiAKIAkJLyogc29tZSBxdWlya3MgZm9yIGF0dHJpYnV0ZXMgaGVyZSAq LwogCkBAIC00NDYsNiArNDQ5LDcgQEAgaW50IHNuZF91c2JfcGFyc2VfYXVkaW9faW50ZXJmYWNl KHN0cnVjdCBzbmRfdXNiX2F1ZGlvICpjaGlwLCBpbnQgaWZhY2Vfbm8pCiAJCXNuZF9wcmludGRk KEtFUk5fSU5GTyAiJWQ6JXU6JWQ6IGFkZCBhdWRpbyBlbmRwb2ludCAlI3hcbiIsIGRldi0+ZGV2 bnVtLCBpZmFjZV9ubywgYWx0bm8sIGZwLT5lbmRwb2ludCk7CiAJCWVyciA9IHNuZF91c2JfYWRk X2F1ZGlvX3N0cmVhbShjaGlwLCBzdHJlYW0sIGZwKTsKIAkJaWYgKGVyciA8IDApIHsKKwkJCWxp c3RfZGVsKCZmcC0+bGlzdCk7IC8qIHVubGluayBmb3IgYXZvaWRpbmcgZG91YmxlLWZyZWUgKi8K IAkJCWtmcmVlKGZwLT5yYXRlX3RhYmxlKTsKIAkJCWtmcmVlKGZwKTsKIAkJCXJldHVybiBlcnI7 Ck== --=-317KozlXvUodno0n5f5+-- --=-5wiOERKHRLhrq0DGfOU3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABCgAGBQJXISz4AAoJEOe/yOyVhhEJhJ8P/jVNHKtCOZ7je9W98kZF3kgu jDTij6CEG60PncwiBVrNdB7mrAbzWKai9HZHU694isVg6e0WPEfarr0XHIA41Mjj +F++sfFXqf1pYs+HkPuWMcjoO9vyeDUjDjyX0bs3PMMVaJEqr1F1rf6nzC9CuMKK fwi/0XICEiVyST0dAd+ouf9D4gu3gBSEVDSrMLcqwVFA661F6bJy+f6cla7xFOZV bnxk8sEcMhD9UDVNpqa0wyPZRjylMtCgLIdozSEfNXKacAKxuK3iwxIqN7JHKj7+ Bg2JPiteiR2YtX4LbFofdPkkqkhDTMhIzNUer1ZvULA9kFnlT7VBqSnZVu0wfWt7 cnCMPKKFIfdrbnHKvXVEiKjhXqMZzJ2drbcEcPfxV+UxeCm6V48sf++g/7msF2B3 gyuyV13csYdftOcuammrb5BYYYe4s+AWRmxcQXLab5nLfoIWv2Usigb1dhVrYLHu rfHC+lRPD2WY3v+ZNaoASHPpuhlyHGrJRDethxsyRhAexrzZGOLD6vpASa2cdFKV GmDIOzz24m+wNmwanBuY7pqonv9FXRgAfWqafFvUWTpKTKNbj8XN8nt6dwVFTdXA ZUSYHaW8MB48ECgIbPRKLpBFWeeu8OiIbdBye8QYS0m93Nuj0awceZLpnQA4Ttbq 4jitIIbWVCV5NpmnT3jr =pq29 -----END PGP SIGNATURE----- --=-5wiOERKHRLhrq0DGfOU3--