From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:44137 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1422665AbcFMSpN (ORCPT ); Mon, 13 Jun 2016 14:45:13 -0400 Message-ID: <1465843505.3529.222.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 00/46] 3.2.81-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: torvalds@linux-foundation.org, Guenter Roeck , akpm@linux-foundation.org Date: Mon, 13 Jun 2016 19:45:05 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-bTMURcPixMZ0tP2NxRP7" Mime-Version: 1.0 Sender: stable-owner@vger.kernel.org List-ID: --=-bTMURcPixMZ0tP2NxRP7 Content-Type: multipart/mixed; boundary="=-lAamsUVOJ4A3TIJKoIWa" --=-lAamsUVOJ4A3TIJKoIWa Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined diff for 3.2.81-rc1 relative to 3.2.80. Ben. --=C2=A0 Ben Hutchings One of the nice things about standards is that there are so many of them. --=-lAamsUVOJ4A3TIJKoIWa Content-Disposition: attachment; filename="linux-3.2.81-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.81-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0IGIvRG9jdW1l bnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQKaW5kZXggZjAwMDFlYjMzMTczLi5hYzYwMWM0 YjlmNTcgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0Cisr KyBiL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0CkBAIC0yNjk5LDYgKzI2OTks OCBAQCBieXRlcyByZXNwZWN0aXZlbHkuIFN1Y2ggbGV0dGVyIHN1ZmZpeGVzIGNhbiBhbHNvIGJl IGVudGlyZWx5IG9taXR0ZWQuCiAJCQkJCXNlY3RvciBpZiB0aGUgbnVtYmVyIGlzIG9kZCk7CiAJ CQkJaSA9IElHTk9SRV9ERVZJQ0UgKGRvbid0IGJpbmQgdG8gdGhpcwogCQkJCQlkZXZpY2UpOwor CQkJCWogPSBOT19SRVBPUlRfTFVOUyAoZG9uJ3QgdXNlIHJlcG9ydCBsdW5zCisJCQkJCWNvbW1h bmQsIHVhcyBvbmx5KTsKIAkJCQlsID0gTk9UX0xPQ0tBQkxFIChkb24ndCB0cnkgdG8gbG9jayBh bmQKIAkJCQkJdW5sb2NrIGVqZWN0YWJsZSBtZWRpYSk7CiAJCQkJbSA9IE1BWF9TRUNUT1JTXzY0 IChkb24ndCB0cmFuc2ZlciBtb3JlCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCmlu ZGV4IDViNTAwZjkzNDI1Yi4uZjBkNjhkNDljZTgzIDEwMDY0NAotLS0gYS9NYWtlZmlsZQorKysg Yi9NYWtlZmlsZQpAQCAtMSw3ICsxLDcgQEAKIFZFUlNJT04gPSAzCiBQQVRDSExFVkVMID0gMgot U1VCTEVWRUwgPSA4MAotRVhUUkFWRVJTSU9OID0KK1NVQkxFVkVMID0gODEKK0VYVFJBVkVSU0lP TiA9IC1yYzEKIE5BTUUgPSBTYWJlci10b290aGVkIFNxdWlycmVsCiAKICMgKkRPQ1VNRU5UQVRJ T04qCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvc3lzY2FsbC5TIGIvYXJjaC9wYXJp c2Mva2VybmVsL3N5c2NhbGwuUwppbmRleCA4MmE1MmIyZmIxM2YuLmVkM2RmNDQzZTAyZCAxMDA2 NDQKLS0tIGEvYXJjaC9wYXJpc2Mva2VybmVsL3N5c2NhbGwuUworKysgYi9hcmNoL3BhcmlzYy9r ZXJuZWwvc3lzY2FsbC5TCkBAIC0zMTQsNyArMzE0LDcgQEAgdHJhY2VzeXNfbmV4dDoKIAlsZG8J LTE2KCVyMzApLCVyMjkJCQkvKiBSZWZlcmVuY2UgcGFyYW0gc2F2ZSBhcmVhICovCiAjZW5kaWYK IAotCWNvbWljbHIsPj49CV9fTlJfTGludXhfc3lzY2FsbHMsICVyMjAsICVyMAorCWNvbWljbHIs Pj4JX19OUl9MaW51eF9zeXNjYWxscywgJXIyMCwgJXIwCiAJYixuCS5Mc3lzY2FsbF9ub3N5cwog CiAJTERSRUdYICAlcjIwKCVyMTkpLCAlcjE5CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5j bHVkZS9hc20vY3B1dGFibGUuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9jcHV0YWJsZS5o CmluZGV4IGUzMDQ0MmM1MzljZS4uOWI2MDRjMDVmZWMzIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2Vy cGMvaW5jbHVkZS9hc20vY3B1dGFibGUuaAorKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20v Y3B1dGFibGUuaApAQCAtMzAsNiArMzAsNyBAQAogI2RlZmluZSBQUENfRkVBVFVSRV9QU0VSSUVT X1BFUkZNT05fQ09NUEFUIFwKIAkJCQkJMHgwMDAwMDA0MAogCisvKiBSZXNlcnZlZCAtIGRvIG5v dCB1c2UJCTB4MDAwMDAwMDQgKi8KICNkZWZpbmUgUFBDX0ZFQVRVUkVfVFJVRV9MRQkJMHgwMDAw MDAwMgogI2RlZmluZSBQUENfRkVBVFVSRV9QUENfTEUJCTB4MDAwMDAwMDEKIApkaWZmIC0tZ2l0 IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcm9tLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3Byb20u YwppbmRleCBmYTEyMzViMDUwM2IuLmMwMjFhZjgzNjRhMyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dl cnBjL2tlcm5lbC9wcm9tLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcm9tLmMKQEAgLTE1 OSw3ICsxNTksNyBAQCBzdGF0aWMgc3RydWN0IGlibV9wYV9mZWF0dXJlIHsKIAl7Q1BVX0ZUUl9O T0VYRUNVVEUsIDAsIDAsCTAsIDYsIDB9LAogCXtDUFVfRlRSX05PRFNJU1JBTElHTiwgMCwgMCwJ MSwgMSwgMX0sCiAJezAsIE1NVV9GVFJfQ0lfTEFSR0VfUEFHRSwgMCwJMSwgMiwgMH0sCi0Je0NQ VV9GVFJfUkVBTF9MRSwgUFBDX0ZFQVRVUkVfVFJVRV9MRSwgNSwgMCwgMH0sCisJe0NQVV9GVFJf UkVBTF9MRSwgMCwgUFBDX0ZFQVRVUkVfVFJVRV9MRSwgNSwgMCwgMH0sCiB9OwogCiBzdGF0aWMg dm9pZCBfX2luaXQgc2Nhbl9mZWF0dXJlcyh1bnNpZ25lZCBsb25nIG5vZGUsIHVuc2lnbmVkIGNo YXIgKmZ0cnMsCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vaHVnZXRsYi5oIGIv YXJjaC9zMzkwL2luY2x1ZGUvYXNtL2h1Z2V0bGIuaAppbmRleCA3OTllZDBmMTY0M2QuLmRjZDQ2 Y2JhNGVjMyAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2h1Z2V0bGIuaAorKysg Yi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vaHVnZXRsYi5oCkBAIC0xNCw2ICsxNCw3IEBACiAKICNk ZWZpbmUgaXNfaHVnZXBhZ2Vfb25seV9yYW5nZShtbSwgYWRkciwgbGVuKQkwCiAjZGVmaW5lIGh1 Z2V0bGJfZnJlZV9wZ2RfcmFuZ2UJCQlmcmVlX3BnZF9yYW5nZQorI2RlZmluZSBodWdlcGFnZXNf c3VwcG9ydGVkKCkJCQkoTUFDSElORV9IQVNfSFBBR0UpCiAKIHZvaWQgc2V0X2h1Z2VfcHRlX2F0 KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJCSAgICAgcHRlX3Qg KnB0ZXAsIHB0ZV90IHB0ZSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odWdl dGxiLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odWdldGxiLmgKaW5kZXggNDhmYTM5MTVmZDAy Li40ZTgyMjVjMjUxNDUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h1Z2V0bGIu aAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odWdldGxiLmgKQEAgLTMsNiArMyw3IEBACiAK ICNpbmNsdWRlIDxhc20vcGFnZS5oPgogCisjZGVmaW5lIGh1Z2VwYWdlc19zdXBwb3J0ZWQoKSBj cHVfaGFzX3BzZQogCiBzdGF0aWMgaW5saW5lIGludCBpc19odWdlcGFnZV9vbmx5X3JhbmdlKHN0 cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJCQkgdW5zaWduZWQgbG9uZyBhZGRyLApkaWZmIC0tZ2l0 IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vbWljcm9jb2RlLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2Fz bS9taWNyb2NvZGUuaAppbmRleCAyNDIxNTA3MmQwZTEuLjNhN2Y1ZjVhNDA1ZCAxMDA2NDQKLS0t IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vbWljcm9jb2RlLmgKKysrIGIvYXJjaC94ODYvaW5jbHVk ZS9hc20vbWljcm9jb2RlLmgKQEAgLTYxLDQgKzYxLDUgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qg bWljcm9jb2RlX29wcyAqIF9faW5pdCBpbml0X2FtZF9taWNyb2NvZGUodm9pZCkKIH0KICNlbmRp ZgogCitleHRlcm4gYm9vbCBjaGVja19jdXJyZW50X3BhdGNoX2xldmVsKHUzMiAqcmV2LCBib29s IGVhcmx5KTsKICNlbmRpZiAvKiBfQVNNX1g4Nl9NSUNST0NPREVfSCAqLwpkaWZmIC0tZ2l0IGEv YXJjaC94ODYvaW5jbHVkZS9hc20vdWFjY2Vzc182NC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20v dWFjY2Vzc182NC5oCmluZGV4IDFjNjZkMzA5NzFhZC4uMzFmZWQxOTFhNDFlIDEwMDY0NAotLS0g YS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS91YWNjZXNzXzY0LmgKKysrIGIvYXJjaC94ODYvaW5jbHVk ZS9hc20vdWFjY2Vzc182NC5oCkBAIC02OCwxMSArNjgsMTAgQEAgaW50IGNvcHlfdG9fdXNlcih2 b2lkIF9fdXNlciAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHVuc2lnbmVkIHNpemUpCiB9CiAKIHN0 YXRpYyBfX2Fsd2F5c19pbmxpbmUgX19tdXN0X2NoZWNrCi1pbnQgX19jb3B5X2Zyb21fdXNlcih2 b2lkICpkc3QsIGNvbnN0IHZvaWQgX191c2VyICpzcmMsIHVuc2lnbmVkIHNpemUpCitpbnQgX19j b3B5X2Zyb21fdXNlcl9ub2NoZWNrKHZvaWQgKmRzdCwgY29uc3Qgdm9pZCBfX3VzZXIgKnNyYywg dW5zaWduZWQgc2l6ZSkKIHsKIAlpbnQgcmV0ID0gMDsKIAotCW1pZ2h0X2ZhdWx0KCk7CiAJaWYg KCFfX2J1aWx0aW5fY29uc3RhbnRfcChzaXplKSkKIAkJcmV0dXJuIGNvcHlfdXNlcl9nZW5lcmlj KGRzdCwgKF9fZm9yY2Ugdm9pZCAqKXNyYywgc2l6ZSk7CiAJc3dpdGNoIChzaXplKSB7CkBAIC0x MTIsMTEgKzExMSwxNyBAQCBpbnQgX19jb3B5X2Zyb21fdXNlcih2b2lkICpkc3QsIGNvbnN0IHZv aWQgX191c2VyICpzcmMsIHVuc2lnbmVkIHNpemUpCiB9CiAKIHN0YXRpYyBfX2Fsd2F5c19pbmxp bmUgX19tdXN0X2NoZWNrCi1pbnQgX19jb3B5X3RvX3VzZXIodm9pZCBfX3VzZXIgKmRzdCwgY29u c3Qgdm9pZCAqc3JjLCB1bnNpZ25lZCBzaXplKQoraW50IF9fY29weV9mcm9tX3VzZXIodm9pZCAq ZHN0LCBjb25zdCB2b2lkIF9fdXNlciAqc3JjLCB1bnNpZ25lZCBzaXplKQoreworCW1pZ2h0X2Zh dWx0KCk7CisJcmV0dXJuIF9fY29weV9mcm9tX3VzZXJfbm9jaGVjayhkc3QsIHNyYywgc2l6ZSk7 Cit9CisKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgX19tdXN0X2NoZWNrCitpbnQgX19jb3B5X3Rv X3VzZXJfbm9jaGVjayh2b2lkIF9fdXNlciAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHVuc2lnbmVk IHNpemUpCiB7CiAJaW50IHJldCA9IDA7CiAKLQltaWdodF9mYXVsdCgpOwogCWlmICghX19idWls dGluX2NvbnN0YW50X3Aoc2l6ZSkpCiAJCXJldHVybiBjb3B5X3VzZXJfZ2VuZXJpYygoX19mb3Jj ZSB2b2lkICopZHN0LCBzcmMsIHNpemUpOwogCXN3aXRjaCAoc2l6ZSkgewpAQCAtMTU2LDYgKzE2 MSwxMyBAQCBpbnQgX19jb3B5X3RvX3VzZXIodm9pZCBfX3VzZXIgKmRzdCwgY29uc3Qgdm9pZCAq c3JjLCB1bnNpZ25lZCBzaXplKQogfQogCiBzdGF0aWMgX19hbHdheXNfaW5saW5lIF9fbXVzdF9j aGVjaworaW50IF9fY29weV90b191c2VyKHZvaWQgX191c2VyICpkc3QsIGNvbnN0IHZvaWQgKnNy YywgdW5zaWduZWQgc2l6ZSkKK3sKKwltaWdodF9mYXVsdCgpOworCXJldHVybiBfX2NvcHlfdG9f dXNlcl9ub2NoZWNrKGRzdCwgc3JjLCBzaXplKTsKK30KKworc3RhdGljIF9fYWx3YXlzX2lubGlu ZSBfX211c3RfY2hlY2sKIGludCBfX2NvcHlfaW5fdXNlcih2b2lkIF9fdXNlciAqZHN0LCBjb25z dCB2b2lkIF9fdXNlciAqc3JjLCB1bnNpZ25lZCBzaXplKQogewogCWludCByZXQgPSAwOwpAQCAt MjIxLDEzICsyMzMsMTMgQEAgX19tdXN0X2NoZWNrIHVuc2lnbmVkIGxvbmcgX19jbGVhcl91c2Vy KHZvaWQgX191c2VyICptZW0sIHVuc2lnbmVkIGxvbmcgbGVuKTsKIHN0YXRpYyBfX211c3RfY2hl Y2sgX19hbHdheXNfaW5saW5lIGludAogX19jb3B5X2Zyb21fdXNlcl9pbmF0b21pYyh2b2lkICpk c3QsIGNvbnN0IHZvaWQgX191c2VyICpzcmMsIHVuc2lnbmVkIHNpemUpCiB7Ci0JcmV0dXJuIGNv cHlfdXNlcl9nZW5lcmljKGRzdCwgKF9fZm9yY2UgY29uc3Qgdm9pZCAqKXNyYywgc2l6ZSk7CisJ cmV0dXJuIF9fY29weV9mcm9tX3VzZXJfbm9jaGVjayhkc3QsIHNyYywgc2l6ZSk7CiB9CiAKIHN0 YXRpYyBfX211c3RfY2hlY2sgX19hbHdheXNfaW5saW5lIGludAogX19jb3B5X3RvX3VzZXJfaW5h dG9taWModm9pZCBfX3VzZXIgKmRzdCwgY29uc3Qgdm9pZCAqc3JjLCB1bnNpZ25lZCBzaXplKQog ewotCXJldHVybiBjb3B5X3VzZXJfZ2VuZXJpYygoX19mb3JjZSB2b2lkICopZHN0LCBzcmMsIHNp emUpOworCXJldHVybiBfX2NvcHlfdG9fdXNlcl9ub2NoZWNrKGRzdCwgc3JjLCBzaXplKTsKIH0K IAogZXh0ZXJuIGxvbmcgX19jb3B5X3VzZXJfbm9jYWNoZSh2b2lkICpkc3QsIGNvbnN0IHZvaWQg X191c2VyICpzcmMsCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbWljcm9jb2RlX2FtZC5j IGIvYXJjaC94ODYva2VybmVsL21pY3JvY29kZV9hbWQuYwppbmRleCBmOWI5ZWFhM2JiZTUuLmJl MmZhNGQwZTgxNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL21pY3JvY29kZV9hbWQuYwor KysgYi9hcmNoL3g4Ni9rZXJuZWwvbWljcm9jb2RlX2FtZC5jCkBAIC0xMjMsMTMgKzEyMyw2MiBA QCBzdGF0aWMgaW50IGdldF9tYXRjaGluZ19taWNyb2NvZGUoaW50IGNwdSwgc3RydWN0IG1pY3Jv Y29kZV9oZWFkZXJfYW1kICptY19oZHIsCiAJcmV0dXJuIDE7CiB9CiAKKy8qCisgKiBUaG9zZSBw YXRjaCBsZXZlbHMgY2Fubm90IGJlIHVwZGF0ZWQgdG8gbmV3ZXIgb25lcyBhbmQgdGh1cyBzaG91 bGQgYmUgZmluYWwuCisgKi8KK3N0YXRpYyB1MzIgZmluYWxfbGV2ZWxzW10gPSB7CisJMHgwMTAw MDA5OCwKKwkweDAxMDAwMDlmLAorCTB4MDEwMDAwYWYsCisJMCwgLyogVC0xMDEgdGVybWluYXRv ciAqLworfTsKKworLyoKKyAqIENoZWNrIHRoZSBjdXJyZW50IHBhdGNoIGxldmVsIG9uIHRoaXMg Q1BVLgorICoKKyAqIEByZXY6IFVzZSBpdCB0byByZXR1cm4gdGhlIHBhdGNoIGxldmVsLiBJdCBp cyBzZXQgdG8gMCBpbiB0aGUgY2FzZSBvZgorICogZXJyb3IuCisgKgorICogUmV0dXJuczoKKyAq ICAtIHRydWU6IGlmIHVwZGF0ZSBzaG91bGQgc3RvcAorICogIC0gZmFsc2U6IG90aGVyd2lzZQor ICovCitib29sIGNoZWNrX2N1cnJlbnRfcGF0Y2hfbGV2ZWwodTMyICpyZXYsIGJvb2wgZWFybHkp Cit7CisJdTMyIGx2bCwgZHVtbXksIGk7CisJYm9vbCByZXQgPSBmYWxzZTsKKwl1MzIgKmxldmVs czsKKworCXJkbXNyKE1TUl9BTUQ2NF9QQVRDSF9MRVZFTCwgbHZsLCBkdW1teSk7CisKKyNpZmRl ZiBDT05GSUdfWDg2XzMyCisJaWYgKGVhcmx5KQorCQlsZXZlbHMgPSAodTMyICopX19wYV9ub2Rl YnVnKCZmaW5hbF9sZXZlbHMpOworCWVsc2UKKyNlbmRpZgorCQlsZXZlbHMgPSBmaW5hbF9sZXZl bHM7CisKKwlmb3IgKGkgPSAwOyBsZXZlbHNbaV07IGkrKykgeworCQlpZiAobHZsID09IGxldmVs c1tpXSkgeworCQkJbHZsID0gMDsKKwkJCXJldCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCX0K KworCWlmIChyZXYpCisJCSpyZXYgPSBsdmw7CisKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMg aW50IGFwcGx5X21pY3JvY29kZV9hbWQoaW50IGNwdSkKIHsKLQl1MzIgcmV2LCBkdW1teTsKIAlp bnQgY3B1X251bSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CiAJc3RydWN0IHVjb2RlX2NwdV9p bmZvICp1Y2kgPSB1Y29kZV9jcHVfaW5mbyArIGNwdV9udW07CiAJc3RydWN0IG1pY3JvY29kZV9h bWQgKm1jX2FtZCA9IHVjaS0+bWM7CiAJc3RydWN0IGNwdWluZm9feDg2ICpjID0gJmNwdV9kYXRh KGNwdSk7CisJdTMyIGR1bW15LCByZXY7CiAKIAkvKiBXZSBzaG91bGQgYmluZCB0aGUgdGFzayB0 byB0aGUgQ1BVICovCiAJQlVHX09OKGNwdV9udW0gIT0gY3B1KTsKQEAgLTEzNyw2ICsxODYsOSBA QCBzdGF0aWMgaW50IGFwcGx5X21pY3JvY29kZV9hbWQoaW50IGNwdSkKIAlpZiAobWNfYW1kID09 IE5VTEwpCiAJCXJldHVybiAwOwogCisJaWYgKGNoZWNrX2N1cnJlbnRfcGF0Y2hfbGV2ZWwoJnJl diwgZmFsc2UpKQorCQlyZXR1cm4gLTE7CisKIAl3cm1zcmwoTVNSX0FNRDY0X1BBVENIX0xPQURF UiwgKHU2NCkobG9uZykmbWNfYW1kLT5oZHIuZGF0YV9jb2RlKTsKIAkvKiBnZXQgcGF0Y2ggaWQg YWZ0ZXIgcGF0Y2hpbmcgKi8KIAlyZG1zcihNU1JfQU1ENjRfUEFUQ0hfTEVWRUwsIHJldiwgZHVt bXkpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5j CmluZGV4IGRhMWExMjYxYWFjMS4uYTdmZDViMzM2YWM3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9r dm0veDg2LmMKKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jCkBAIC01NzU0LDggKzU3NTQsNiBAQCBz dGF0aWMgaW50IHZjcHVfZW50ZXJfZ3Vlc3Qoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCWt2bV94 ODZfb3BzLT5wcmVwYXJlX2d1ZXN0X3N3aXRjaCh2Y3B1KTsKIAlpZiAodmNwdS0+ZnB1X2FjdGl2 ZSkKIAkJa3ZtX2xvYWRfZ3Vlc3RfZnB1KHZjcHUpOwotCWt2bV9sb2FkX2d1ZXN0X3hjcjAodmNw dSk7Ci0KIAl2Y3B1LT5tb2RlID0gSU5fR1VFU1RfTU9ERTsKIAogCS8qIFdlIHNob3VsZCBzZXQg LT5tb2RlIGJlZm9yZSBjaGVjayAtPnJlcXVlc3RzLApAQCAtNTc3Niw2ICs1Nzc0LDggQEAgc3Rh dGljIGludCB2Y3B1X2VudGVyX2d1ZXN0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAkJZ290byBv dXQ7CiAJfQogCisJa3ZtX2xvYWRfZ3Vlc3RfeGNyMCh2Y3B1KTsKKwogCXNyY3VfcmVhZF91bmxv Y2soJnZjcHUtPmt2bS0+c3JjdSwgdmNwdS0+c3JjdV9pZHgpOwogCiAJa3ZtX2d1ZXN0X2VudGVy KCk7CkBAIC01ODA1LDYgKzU4MDUsOSBAQCBzdGF0aWMgaW50IHZjcHVfZW50ZXJfZ3Vlc3Qoc3Ry dWN0IGt2bV92Y3B1ICp2Y3B1KQogCiAJdmNwdS0+bW9kZSA9IE9VVFNJREVfR1VFU1RfTU9ERTsK IAlzbXBfd21iKCk7CisKKwlrdm1fcHV0X2d1ZXN0X3hjcjAodmNwdSk7CisKIAlsb2NhbF9pcnFf ZW5hYmxlKCk7CiAKIAkrK3ZjcHUtPnN0YXQuZXhpdHM7CkBAIC02Mzc4LDcgKzYzODEsNiBAQCB2 b2lkIGt2bV9sb2FkX2d1ZXN0X2ZwdShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJICogYW5kIGFz c3VtZSBob3N0IHdvdWxkIHVzZSBhbGwgYXZhaWxhYmxlIGJpdHMuCiAJICogR3Vlc3QgeGNyMCB3 b3VsZCBiZSBsb2FkZWQgbGF0ZXIuCiAJICovCi0Ja3ZtX3B1dF9ndWVzdF94Y3IwKHZjcHUpOwog CXZjcHUtPmd1ZXN0X2ZwdV9sb2FkZWQgPSAxOwogCXVubGF6eV9mcHUoY3VycmVudCk7CiAJZnB1 X3Jlc3RvcmVfY2hlY2tpbmcoJnZjcHUtPmFyY2guZ3Vlc3RfZnB1KTsKQEAgLTYzODcsOCArNjM4 OSw2IEBAIHZvaWQga3ZtX2xvYWRfZ3Vlc3RfZnB1KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAog dm9pZCBrdm1fcHV0X2d1ZXN0X2ZwdShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7Ci0Ja3ZtX3B1 dF9ndWVzdF94Y3IwKHZjcHUpOwotCiAJaWYgKCF2Y3B1LT5ndWVzdF9mcHVfbG9hZGVkKQogCQly ZXR1cm47CiAKZGlmZiAtLWdpdCBhL2NyeXB0by9haGFzaC5jIGIvY3J5cHRvL2FoYXNoLmMKaW5k ZXggN2ZkOGVjZjcxMzM3Li44MjcxMTg1ZDRhZDkgMTAwNjQ0Ci0tLSBhL2NyeXB0by9haGFzaC5j CisrKyBiL2NyeXB0by9haGFzaC5jCkBAIC02NCw4ICs2NCw5IEBAIHN0YXRpYyBpbnQgaGFzaF93 YWxrX25ld19lbnRyeShzdHJ1Y3QgY3J5cHRvX2hhc2hfd2FsayAqd2FsaykKIAlzdHJ1Y3Qgc2Nh dHRlcmxpc3QgKnNnOwogCiAJc2cgPSB3YWxrLT5zZzsKLQl3YWxrLT5wZyA9IHNnX3BhZ2Uoc2cp OwogCXdhbGstPm9mZnNldCA9IHNnLT5vZmZzZXQ7CisJd2Fsay0+cGcgPSBzZ19wYWdlKHdhbGst PnNnKSArICh3YWxrLT5vZmZzZXQgPj4gUEFHRV9TSElGVCk7CisJd2Fsay0+b2Zmc2V0ID0gb2Zm c2V0X2luX3BhZ2Uod2Fsay0+b2Zmc2V0KTsKIAl3YWxrLT5lbnRyeWxlbiA9IHNnLT5sZW5ndGg7 CiAKIAlpZiAod2Fsay0+ZW50cnlsZW4gPiB3YWxrLT50b3RhbCkKZGlmZiAtLWdpdCBhL2NyeXB0 by9nY20uYyBiL2NyeXB0by9nY20uYwppbmRleCAxZTMzNTYxMDdhZjIuLjk0M2NiY2VjYTQyNiAx MDA2NDQKLS0tIGEvY3J5cHRvL2djbS5jCisrKyBiL2NyeXB0by9nY20uYwpAQCAtMTEwMyw2ICsx MTAzLDIxIEBAIHN0YXRpYyBpbnQgY3J5cHRvX3JmYzQ1NDNfc2V0YXV0aHNpemUoc3RydWN0IGNy eXB0b19hZWFkICpwYXJlbnQsCiAJcmV0dXJuIGNyeXB0b19hZWFkX3NldGF1dGhzaXplKGN0eC0+ Y2hpbGQsIGF1dGhzaXplKTsKIH0KIAorc3RhdGljIHZvaWQgY3J5cHRvX3JmYzQ1NDNfZG9uZShz dHJ1Y3QgY3J5cHRvX2FzeW5jX3JlcXVlc3QgKmFyZXEsIGludCBlcnIpCit7CisJc3RydWN0IGFl YWRfcmVxdWVzdCAqcmVxID0gYXJlcS0+ZGF0YTsKKwlzdHJ1Y3QgY3J5cHRvX2FlYWQgKmFlYWQg PSBjcnlwdG9fYWVhZF9yZXF0Zm0ocmVxKTsKKwlzdHJ1Y3QgY3J5cHRvX3JmYzQ1NDNfcmVxX2N0 eCAqcmN0eCA9IGNyeXB0b19yZmM0NTQzX3JlcWN0eChyZXEpOworCisJaWYgKCFlcnIpIHsKKwkJ c2NhdHRlcndhbGtfbWFwX2FuZF9jb3B5KHJjdHgtPmF1dGhfdGFnLCByZXEtPmRzdCwKKwkJCQkJ IHJlcS0+Y3J5cHRsZW4sCisJCQkJCSBjcnlwdG9fYWVhZF9hdXRoc2l6ZShhZWFkKSwgMSk7CisJ fQorCisJYWVhZF9yZXF1ZXN0X2NvbXBsZXRlKHJlcSwgZXJyKTsKK30KKwogc3RhdGljIHN0cnVj dCBhZWFkX3JlcXVlc3QgKmNyeXB0b19yZmM0NTQzX2NyeXB0KHN0cnVjdCBhZWFkX3JlcXVlc3Qg KnJlcSwKIAkJCQkJCSBpbnQgZW5jKQogewpAQCAtMTE1OSw4ICsxMTc0LDExIEBAIHN0YXRpYyBz dHJ1Y3QgYWVhZF9yZXF1ZXN0ICpjcnlwdG9fcmZjNDU0M19jcnlwdChzdHJ1Y3QgYWVhZF9yZXF1 ZXN0ICpyZXEsCiAJc2NhdHRlcndhbGtfY3J5cHRvX2NoYWluKGFzc29jLCBwYXlsb2FkLCAwLCAy KTsKIAogCWFlYWRfcmVxdWVzdF9zZXRfdGZtKHN1YnJlcSwgY3R4LT5jaGlsZCk7Ci0JYWVhZF9y ZXF1ZXN0X3NldF9jYWxsYmFjayhzdWJyZXEsIHJlcS0+YmFzZS5mbGFncywgcmVxLT5iYXNlLmNv bXBsZXRlLAotCQkJCSAgcmVxLT5iYXNlLmRhdGEpOworCWFlYWRfcmVxdWVzdF9zZXRfY2FsbGJh Y2soc3VicmVxLCByZXEtPmJhc2UuZmxhZ3MsIGNyeXB0b19yZmM0NTQzX2RvbmUsCisJCQkJICBy ZXEpOworCWlmICghZW5jKQorCQlhZWFkX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKHN1YnJlcSwgcmVx LT5iYXNlLmZsYWdzLAorCQkJCQkgIHJlcS0+YmFzZS5jb21wbGV0ZSwgcmVxLT5iYXNlLmRhdGEp OwogCWFlYWRfcmVxdWVzdF9zZXRfY3J5cHQoc3VicmVxLCBjaXBoZXIsIGNpcGhlciwgZW5jID8g MCA6IGF1dGhzaXplLCBpdik7CiAJYWVhZF9yZXF1ZXN0X3NldF9hc3NvYyhzdWJyZXEsIGFzc29j LCBhc3NvY2xlbik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9hY3BpY2EvZHNtZXRob2Qu YyBiL2RyaXZlcnMvYWNwaS9hY3BpY2EvZHNtZXRob2QuYwppbmRleCA1ZDc5Nzc1MWUyMDUuLjdl MTNiNzFhYTEwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL2FjcGljYS9kc21ldGhvZC5jCisr KyBiL2RyaXZlcnMvYWNwaS9hY3BpY2EvZHNtZXRob2QuYwpAQCAtMjY2LDYgKzI2Niw5IEBAIGFj cGlfZHNfYmVnaW5fbWV0aG9kX2V4ZWN1dGlvbihzdHJ1Y3QgYWNwaV9uYW1lc3BhY2Vfbm9kZSAq bWV0aG9kX25vZGUsCiAJCQkJb2JqX2Rlc2MtPm1ldGhvZC5tdXRleC0+bXV0ZXguCiAJCQkJICAg IG9yaWdpbmFsX3N5bmNfbGV2ZWwgPQogCQkJCSAgICBvYmpfZGVzYy0+bWV0aG9kLm11dGV4LT5t dXRleC5zeW5jX2xldmVsOworCisJCQkJb2JqX2Rlc2MtPm1ldGhvZC5tdXRleC0+bXV0ZXgudGhy ZWFkX2lkID0KKwkJCQkgICAgYWNwaV9vc19nZXRfdGhyZWFkX2lkKCk7CiAJCQl9CiAJCX0KIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYWhjaS5jIGIvZHJpdmVycy9hdGEvbGliYWhjaS5j CmluZGV4IDFhZGI3MTczM2QwNS4uZmJmZGU3MTUzZjc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0 YS9saWJhaGNpLmMKKysrIGIvZHJpdmVycy9hdGEvbGliYWhjaS5jCkBAIC00NTIsNiArNDUyLDcg QEAgdm9pZCBhaGNpX3NhdmVfaW5pdGlhbF9jb25maWcoc3RydWN0IGRldmljZSAqZGV2LAogCQlk ZXZfaW5mbyhkZXYsICJmb3JjaW5nIHBvcnRfbWFwIDB4JXggLT4gMHgleFxuIiwKIAkJCSBwb3J0 X21hcCwgZm9yY2VfcG9ydF9tYXApOwogCQlwb3J0X21hcCA9IGZvcmNlX3BvcnRfbWFwOworCQlo cHJpdi0+c2F2ZWRfcG9ydF9tYXAgPSBwb3J0X21hcDsKIAl9CiAKIAlpZiAobWFza19wb3J0X21h cCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaV9pbnRmLmMgYi9kcml2 ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX2ludGYuYwppbmRleCA2MzZhOGRkMDllYTAuLmU4ZTExZmY5 N2VjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaV9pbnRmLmMKKysrIGIv ZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaV9pbnRmLmMKQEAgLTI2NzksNyArMjY3OSw3IEBAIHN0 YXRpYyBpbnQgd2FpdF9mb3JfbXNnX2RvbmUoc3RydWN0IHNtaV9pbmZvICpzbWlfaW5mbykKIAkJ ICAgIHNtaV9yZXN1bHQgPT0gU0lfU01fQ0FMTF9XSVRIX1RJQ0tfREVMQVkpIHsKIAkJCXNjaGVk dWxlX3RpbWVvdXRfdW5pbnRlcnJ1cHRpYmxlKDEpOwogCQkJc21pX3Jlc3VsdCA9IHNtaV9pbmZv LT5oYW5kbGVycy0+ZXZlbnQoCi0JCQkJc21pX2luZm8tPnNpX3NtLCAxMDApOworCQkJCXNtaV9p bmZvLT5zaV9zbSwgamlmZmllc190b191c2VjcygxKSk7CiAJCX0gZWxzZSBpZiAoc21pX3Jlc3Vs dCA9PSBTSV9TTV9DQUxMX1dJVEhPVVRfREVMQVkpIHsKIAkJCXNtaV9yZXN1bHQgPSBzbWlfaW5m by0+aGFuZGxlcnMtPmV2ZW50KAogCQkJCXNtaV9pbmZvLT5zaV9zbSwgMCk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2VkYWMvaTdjb3JlX2VkYWMuYyBiL2RyaXZlcnMvZWRhYy9pN2NvcmVfZWRhYy5j CmluZGV4IDRjMThiM2M3OGYwMy4uMDNlODMxZTE1OWU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Vk YWMvaTdjb3JlX2VkYWMuYworKysgYi9kcml2ZXJzL2VkYWMvaTdjb3JlX2VkYWMuYwpAQCAtMTky MSw3ICsxOTIxLDcgQEAgc3RhdGljIGludCBpN2NvcmVfbWNlX2NoZWNrX2Vycm9yKHN0cnVjdCBu b3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgdmFsLAogCiAJaTdfZGV2ID0gZ2V0X2k3 Y29yZV9kZXYobWNlLT5zb2NrZXRpZCk7CiAJaWYgKCFpN19kZXYpCi0JCXJldHVybiBOT1RJRllf QkFEOworCQlyZXR1cm4gTk9USUZZX0RPTkU7CiAKIAltY2kgPSBpN19kZXYtPm1jaTsKIAlwdnQg PSBtY2ktPnB2dF9pbmZvOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9lZGFjL3NiX2VkYWMuYyBiL2Ry aXZlcnMvZWRhYy9zYl9lZGFjLmMKaW5kZXggZjhmNzkwYzBkMjUyLi43YmNmZDlkNjQ2NzIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZWRhYy9zYl9lZGFjLmMKKysrIGIvZHJpdmVycy9lZGFjL3NiX2Vk YWMuYwpAQCAtMTU5Niw3ICsxNTk2LDcgQEAgc3RhdGljIGludCBzYnJpZGdlX21jZV9jaGVja19l cnJvcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIHZhbCwKIAogCW1j aSA9IGdldF9tY2lfZm9yX25vZGVfaWQobWNlLT5zb2NrZXRpZCk7CiAJaWYgKCFtY2kpCi0JCXJl dHVybiBOT1RJRllfQkFEOworCQlyZXR1cm4gTk9USUZZX0RPTkU7CiAJcHZ0ID0gbWNpLT5wdnRf aW5mbzsKIAogCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCA0NTJiYzUxMmU2YTcuLmUy MTZjMjExMTBlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC01MzgsNiArNTM4LDM1IEBA IGludCBpOTE1X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmIChkZXYtPnN3aXRj aF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKIAkJcmV0dXJuIDA7CiAKKwkv KgorCSAqIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIHNldCB0aGUgcG93ZXIgc3RhdGUgZXhwbGljaXRs eSwgc2luY2Ugd2UKKwkgKiBwb3dlcmVkIG9mZiB0aGUgZGV2aWNlIGR1cmluZyBmcmVlemUgYW5k IHRoZSBQQ0kgY29yZSB3b24ndCBwb3dlcgorCSAqIGl0IGJhY2sgdXAgZm9yIHVzIGR1cmluZyB0 aGF3LiBQb3dlcmluZyBvZmYgdGhlIGRldmljZSBkdXJpbmcKKwkgKiBmcmVlemUgaXMgbm90IGEg aGFyZCByZXF1aXJlbWVudCB0aG91Z2gsIGFuZCBkdXJpbmcgdGhlCisJICogc3VzcGVuZC9yZXN1 bWUgcGhhc2VzIHRoZSBQQ0kgY29yZSBtYWtlcyBzdXJlIHdlIGdldCBoZXJlIHdpdGggdGhlCisJ ICogZGV2aWNlIHBvd2VyZWQgb24uIFNvIGluIGNhc2Ugd2UgY2hhbmdlIG91ciBmcmVlemUgbG9n aWMgYW5kIGtlZXAKKwkgKiB0aGUgZGV2aWNlIHBvd2VyZWQgd2UgY2FuIGFsc28gcmVtb3ZlIHRo ZSBmb2xsb3dpbmcgc2V0IHBvd2VyIHN0YXRlCisJICogY2FsbC4KKwkgKi8KKwlyZXQgPSBwY2lf c2V0X3Bvd2VyX3N0YXRlKGRldi0+cGRldiwgUENJX0QwKTsKKwlpZiAocmV0KSB7CisJCURSTV9F UlJPUigiZmFpbGVkIHRvIHNldCBQQ0kgRDAgcG93ZXIgc3RhdGUgKCVkKVxuIiwgcmV0KTsKKwkJ cmV0dXJuIHJldDsKKwl9CisKKwkvKgorCSAqIE5vdGUgdGhhdCBwY2lfZW5hYmxlX2RldmljZSgp IGZpcnN0IGVuYWJsZXMgYW55IHBhcmVudCBicmlkZ2UKKwkgKiBkZXZpY2UgYW5kIG9ubHkgdGhl biBzZXRzIHRoZSBwb3dlciBzdGF0ZSBmb3IgdGhpcyBkZXZpY2UuIFRoZQorCSAqIGJyaWRnZSBl bmFibGluZyBpcyBhIG5vcCB0aG91Z2gsIHNpbmNlIGJyaWRnZSBkZXZpY2VzIGFyZSByZXN1bWVk CisJICogZmlyc3QuIFRoZSBvcmRlciBvZiBlbmFibGluZyBwb3dlciBhbmQgZW5hYmxpbmcgdGhl IGRldmljZSBpcworCSAqIGltcG9zZWQgYnkgdGhlIFBDSSBjb3JlIGFzIGRlc2NyaWJlZCBhYm92 ZSwgc28gaGVyZSB3ZSBwcmVzZXJ2ZSB0aGUKKwkgKiBzYW1lIG9yZGVyIGZvciB0aGUgZnJlZXpl L3RoYXcgcGhhc2VzLgorCSAqCisJICogVE9ETzogZXZlbnR1YWxseSB3ZSBzaG91bGQgcmVtb3Zl IHBjaV9kaXNhYmxlX2RldmljZSgpIC8KKwkgKiBwY2lfZW5hYmxlX2VuYWJsZV9kZXZpY2UoKSBm cm9tIHN1c3BlbmQvcmVzdW1lLiBEdWUgdG8gaG93IHRoZXkKKwkgKiBkZXBlbmQgb24gdGhlIGRl dmljZSBlbmFibGUgcmVmY291bnQgd2UgY2FuJ3QgYW55d2F5IGRlcGVuZCBvbiB0aGVtCisJICog ZGlzYWJsaW5nL2VuYWJsaW5nIHRoZSBkZXZpY2UuCisJICovCiAJaWYgKHBjaV9lbmFibGVfZGV2 aWNlKGRldi0+cGRldikpCiAJCXJldHVybiAtRUlPOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL2F0b21iaW9zX2VuY29kZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L2F0b21iaW9zX2VuY29kZXJzLmMKaW5kZXggYTFhN2QwNzFlYjE3Li5jZDhiMzQxNDYxNDYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3NfZW5jb2RlcnMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2VuY29kZXJzLmMKQEAgLTkwLDYgKzkw LDEwIEBAIHN0YXRpYyBib29sIHJhZGVvbl9hdG9tX21vZGVfZml4dXAoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLAogCSAgICAmJiAobW9kZS0+Y3J0Y192c3luY19zdGFydCA8IChtb2RlLT5j cnRjX3ZkaXNwbGF5ICsgMikpKQogCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZzeW5jX3N0YXJ0ID0g YWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheSArIDI7CiAKKwkvKiB2ZXJ0aWNhbCBGUCBtdXN0 IGJlIGF0IGxlYXN0IDEgKi8KKwlpZiAobW9kZS0+Y3J0Y192c3luY19zdGFydCA9PSBtb2RlLT5j cnRjX3ZkaXNwbGF5KQorCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZzeW5jX3N0YXJ0Kys7CisKIAkv KiBnZXQgdGhlIG5hdGl2ZSBtb2RlIGZvciBMVkRTICovCiAJaWYgKHJhZGVvbl9lbmNvZGVyLT5h Y3RpdmVfZGV2aWNlICYgKEFUT01fREVWSUNFX0xDRF9TVVBQT1JUKSkKIAkJcmFkZW9uX3BhbmVs X21vZGVfZml4dXAoZW5jb2RlciwgYWRqdXN0ZWRfbW9kZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2luZmluaWJhbmQvY29yZS91Y20uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VjbS5jCmlu ZGV4IGI4YTBiNGE3ODExYi4uMDZjMTE2YmRjY2EwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmlu aWJhbmQvY29yZS91Y20uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91Y20uYwpAQCAt NDgsNiArNDgsNyBAQAogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIAorI2luY2x1ZGUgPHJk bWEvaWIuaD4KICNpbmNsdWRlIDxyZG1hL2liX2NtLmg+CiAjaW5jbHVkZSA8cmRtYS9pYl91c2Vy X2NtLmg+CiAjaW5jbHVkZSA8cmRtYS9pYl9tYXJzaGFsbC5oPgpAQCAtMTExNiw2ICsxMTE3LDkg QEAgc3RhdGljIHNzaXplX3QgaWJfdWNtX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBj aGFyIF9fdXNlciAqYnVmLAogCXN0cnVjdCBpYl91Y21fY21kX2hkciBoZHI7CiAJc3NpemVfdCBy ZXN1bHQ7CiAKKwlpZiAoV0FSTl9PTl9PTkNFKCFpYl9zYWZlX2ZpbGVfYWNjZXNzKGZpbHApKSkK KwkJcmV0dXJuIC1FQUNDRVM7CisKIAlpZiAobGVuIDwgc2l6ZW9mKGhkcikpCiAJCXJldHVybiAt RUlOVkFMOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91Y21hLmMgYi9k cml2ZXJzL2luZmluaWJhbmQvY29yZS91Y21hLmMKaW5kZXggYjM3YjBjMDJhN2I5Li45MWU4MmI3 ZGFkZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VjbWEuYworKysgYi9k cml2ZXJzL2luZmluaWJhbmQvY29yZS91Y21hLmMKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRl IDxyZG1hL2liX21hcnNoYWxsLmg+CiAjaW5jbHVkZSA8cmRtYS9yZG1hX2NtLmg+CiAjaW5jbHVk ZSA8cmRtYS9yZG1hX2NtX2liLmg+CisjaW5jbHVkZSA8cmRtYS9pYi5oPgogCiBNT0RVTEVfQVVU SE9SKCJTZWFuIEhlZnR5Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlJETUEgVXNlcnNwYWNlIENv bm5lY3Rpb24gTWFuYWdlciBBY2Nlc3MiKTsKQEAgLTEyNjgsNiArMTI2OSw5IEBAIHN0YXRpYyBz c2l6ZV90IHVjbWFfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpi dWYsCiAJc3RydWN0IHJkbWFfdWNtX2NtZF9oZHIgaGRyOwogCXNzaXplX3QgcmV0OwogCisJaWYg KFdBUk5fT05fT05DRSghaWJfc2FmZV9maWxlX2FjY2VzcyhmaWxwKSkpCisJCXJldHVybiAtRUFD Q0VTOworCiAJaWYgKGxlbiA8IHNpemVvZihoZHIpKQogCQlyZXR1cm4gLUVJTlZBTDsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX21haW4uYyBiL2RyaXZlcnMv aW5maW5pYmFuZC9jb3JlL3V2ZXJic19tYWluLmMKaW5kZXggZjA3YzZlMzE3NzcxLi45Y2RjYjUw Mzg2MjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19tYWluLmMK KysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX21haW4uYwpAQCAtNDgsNiArNDgs OCBAQAogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIAorI2luY2x1ZGUgPHJkbWEvaWIuaD4K KwogI2luY2x1ZGUgInV2ZXJicy5oIgogCiBNT0RVTEVfQVVUSE9SKCJSb2xhbmQgRHJlaWVyIik7 CkBAIC01ODAsNiArNTgyLDkgQEAgc3RhdGljIHNzaXplX3QgaWJfdXZlcmJzX3dyaXRlKHN0cnVj dCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLAogCXN0cnVjdCBpYl91dmVyYnNf ZmlsZSAqZmlsZSA9IGZpbHAtPnByaXZhdGVfZGF0YTsKIAlzdHJ1Y3QgaWJfdXZlcmJzX2NtZF9o ZHIgaGRyOwogCisJaWYgKFdBUk5fT05fT05DRSghaWJfc2FmZV9maWxlX2FjY2VzcyhmaWxwKSkp CisJCXJldHVybiAtRUFDQ0VTOworCiAJaWYgKGNvdW50IDwgc2l6ZW9mIGhkcikKIAkJcmV0dXJu IC1FSU5WQUw7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0 aF9maWxlX29wcy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX2ZpbGVfb3Bz LmMKaW5kZXggNzM2ZDllZGJkYmU3Li5lZWQ0NmRkZDIzMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv aW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9maWxlX29wcy5jCisrKyBiL2RyaXZlcnMvaW5maW5p YmFuZC9ody9pcGF0aC9pcGF0aF9maWxlX29wcy5jCkBAIC00NCw2ICs0NCw4IEBACiAjaW5jbHVk ZSA8bGludXgvY3B1Lmg+CiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KIAorI2luY2x1ZGUgPHJk bWEvaWIuaD4KKwogI2luY2x1ZGUgImlwYXRoX2tlcm5lbC5oIgogI2luY2x1ZGUgImlwYXRoX2Nv bW1vbi5oIgogI2luY2x1ZGUgImlwYXRoX3VzZXJfc2RtYS5oIgpAQCAtMjIzOSw2ICsyMjQxLDkg QEAgc3RhdGljIHNzaXplX3QgaXBhdGhfd3JpdGUoc3RydWN0IGZpbGUgKmZwLCBjb25zdCBjaGFy IF9fdXNlciAqZGF0YSwKIAlzc2l6ZV90IHJldCA9IDA7CiAJdm9pZCAqZGVzdDsKIAorCWlmIChX QVJOX09OX09OQ0UoIWliX3NhZmVfZmlsZV9hY2Nlc3MoZnApKSkKKwkJcmV0dXJuIC1FQUNDRVM7 CisKIAlpZiAoY291bnQgPCBzaXplb2YoY21kLnR5cGUpKSB7CiAJCXJldCA9IC1FSU5WQUw7CiAJ CWdvdG8gYmFpbDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX2Zp bGVfb3BzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl9maWxlX29wcy5jCmluZGV4 IGE3NDAzMjQ4ZDgzZC4uODFjNWJkYjE5NGRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJh bmQvaHcvcWliL3FpYl9maWxlX29wcy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIv cWliX2ZpbGVfb3BzLmMKQEAgLTQ1LDYgKzQ1LDggQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5o PgogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgogCisjaW5jbHVkZSA8cmRtYS9pYi5oPgorCiAj aW5jbHVkZSAicWliLmgiCiAjaW5jbHVkZSAicWliX2NvbW1vbi5oIgogI2luY2x1ZGUgInFpYl91 c2VyX3NkbWEuaCIKQEAgLTE5NzEsNiArMTk3Myw5IEBAIHN0YXRpYyBzc2l6ZV90IHFpYl93cml0 ZShzdHJ1Y3QgZmlsZSAqZnAsIGNvbnN0IGNoYXIgX191c2VyICpkYXRhLAogCXNzaXplX3QgcmV0 ID0gMDsKIAl2b2lkICpkZXN0OwogCisJaWYgKFdBUk5fT05fT05DRSghaWJfc2FmZV9maWxlX2Fj Y2VzcyhmcCkpKQorCQlyZXR1cm4gLUVBQ0NFUzsKKwogCWlmIChjb3VudCA8IHNpemVvZihjbWQu dHlwZSkpIHsKIAkJcmV0ID0gLUVJTlZBTDsKIAkJZ290byBiYWlsOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9pbnB1dC9taXNjL3BtaWM4eHh4LXB3cmtleS5jIGIvZHJpdmVycy9pbnB1dC9taXNjL3Bt aWM4eHh4LXB3cmtleS5jCmluZGV4IGIzY2ZiOWM3MWU2Ni4uNjFmNWIzNzRhNDczIDEwMDY0NAot LS0gYS9kcml2ZXJzL2lucHV0L21pc2MvcG1pYzh4eHgtcHdya2V5LmMKKysrIGIvZHJpdmVycy9p bnB1dC9taXNjL3BtaWM4eHh4LXB3cmtleS5jCkBAIC05OCw3ICs5OCw5IEBAIHN0YXRpYyBpbnQg X19kZXZpbml0IHBtaWM4eHh4X3B3cmtleV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpZiAocGRhdGEtPmtwZF90cmlnZ2VyX2Rl bGF5X3VzID4gNjI1MDApIHsKKwkvKiBWYWxpZCByYW5nZSBvZiBwd3Iga2V5IHRyaWdnZXIgZGVs YXkgaXMgMS82NCBzZWMgdG8gMiBzZWNvbmRzLiAqLworCWlmIChwZGF0YS0+a3BkX3RyaWdnZXJf ZGVsYXlfdXMgPiBVU0VDX1BFUl9TRUMgKiAyIHx8CisJICAgIHBkYXRhLT5rcGRfdHJpZ2dlcl9k ZWxheV91cyA8IFVTRUNfUEVSX1NFQyAvIDY0KSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgImlu dmFsaWQgcG93ZXIga2V5IHRyaWdnZXIgZGVsYXlcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9 CkBAIC0xMjAsOCArMTIyLDggQEAgc3RhdGljIGludCBfX2RldmluaXQgcG1pYzh4eHhfcHdya2V5 X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcHdyLT5waHlzID0gInBtaWM4 eHh4X3B3cmtleS9pbnB1dDAiOwogCXB3ci0+ZGV2LnBhcmVudCA9ICZwZGV2LT5kZXY7CiAKLQlk ZWxheSA9IChwZGF0YS0+a3BkX3RyaWdnZXJfZGVsYXlfdXMgPDwgMTApIC8gVVNFQ19QRVJfU0VD OwotCWRlbGF5ID0gMSArIGlsb2cyKGRlbGF5KTsKKwlkZWxheSA9IChwZGF0YS0+a3BkX3RyaWdn ZXJfZGVsYXlfdXMgPDwgNikgLyBVU0VDX1BFUl9TRUM7CisJZGVsYXkgPSBpbG9nMihkZWxheSk7 CiAKIAllcnIgPSBwbTh4eHhfcmVhZGIocGRldi0+ZGV2LnBhcmVudCwgUE9OX0NOVExfMSwgJnBv bl9jbnRsKTsKIAlpZiAoZXJyIDwgMCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC90YWJs ZXQvZ3Rjby5jIGIvZHJpdmVycy9pbnB1dC90YWJsZXQvZ3Rjby5jCmluZGV4IDhlYTZhZmUyZTk5 Mi4uOTI5MjE1YTJkY2ZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L3RhYmxldC9ndGNvLmMK KysrIGIvZHJpdmVycy9pbnB1dC90YWJsZXQvZ3Rjby5jCkBAIC04NjYsNiArODY2LDE0IEBAIHN0 YXRpYyBpbnQgZ3Rjb19wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiaW50ZXJmYWNlLAog CQlnb3RvIGVycl9mcmVlX2J1ZjsKIAl9CiAKKwkvKiBTYW5pdHkgY2hlY2sgdGhhdCBhIGRldmlj ZSBoYXMgYW4gZW5kcG9pbnQgKi8KKwlpZiAodXNiaW50ZXJmYWNlLT5hbHRzZXR0aW5nWzBdLmRl c2MuYk51bUVuZHBvaW50cyA8IDEpIHsKKwkJZGV2X2VycigmdXNiaW50ZXJmYWNlLT5kZXYsCisJ CQkiSW52YWxpZCBudW1iZXIgb2YgZW5kcG9pbnRzXG4iKTsKKwkJZXJyb3IgPSAtRUlOVkFMOwor CQlnb3RvIGVycl9mcmVlX3VyYjsKKwl9CisKIAkvKgogCSAqIFRoZSBlbmRwb2ludCBpcyBhbHdh eXMgYWx0c2V0dGluZyAwLCB3ZSBrbm93IHRoaXMgc2luY2Ugd2Uga25vdwogCSAqIHRoaXMgZGV2 aWNlIG9ubHkgaGFzIG9uZSBpbnRlcnJ1cHQgZW5kcG9pbnQKQEAgLTg4Nyw3ICs4OTUsNyBAQCBz dGF0aWMgaW50IGd0Y29fcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYmludGVyZmFjZSwK IAkgKiBISUQgcmVwb3J0IGRlc2NyaXB0b3IKIAkgKi8KIAlpZiAodXNiX2dldF9leHRyYV9kZXNj cmlwdG9yKHVzYmludGVyZmFjZS0+Y3VyX2FsdHNldHRpbmcsCi0JCQkJICAgICBISURfREVWSUNF X1RZUEUsICZoaWRfZGVzYykgIT0gMCl7CisJCQkJICAgICBISURfREVWSUNFX1RZUEUsICZoaWRf ZGVzYykgIT0gMCkgewogCQllcnIoIkNhbid0IHJldHJpZXZlIGV4dGEgVVNCIGRlc2NyaXB0b3Ig dG8gZ2V0IGhpZCByZXBvcnQgZGVzY3JpcHRvciBsZW5ndGgiKTsKIAkJZXJyb3IgPSAtRUlPOwog CQlnb3RvIGVycl9mcmVlX3VyYjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0 aGVyb3MvYXRseC9hdGwyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2F0bHgvYXRs Mi5jCmluZGV4IDFmZWFlNTkyOGE0Yi4uMTIzMTNjOGNiZTBjIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9hdGhlcm9zL2F0bHgvYXRsMi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2F0aGVyb3MvYXRseC9hdGwyLmMKQEAgLTE0MjgsNyArMTQyOCw3IEBAIHN0YXRpYyBpbnQg X19kZXZpbml0IGF0bDJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAKIAllcnIgPSAtRUlP OwogCi0JbmV0ZGV2LT5od19mZWF0dXJlcyA9IE5FVElGX0ZfU0cgfCBORVRJRl9GX0hXX1ZMQU5f Ulg7CisJbmV0ZGV2LT5od19mZWF0dXJlcyA9IE5FVElGX0ZfSFdfVkxBTl9SWDsKIAluZXRkZXYt PmZlYXR1cmVzIHw9IChORVRJRl9GX0hXX1ZMQU5fVFggfCBORVRJRl9GX0hXX1ZMQU5fUlgpOwog CiAJLyogSW5pdCBQSFkgYXMgZWFybHkgYXMgcG9zc2libGUgZHVlIHRvIHBvd2VyIHNhdmluZyBp c3N1ZSAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvaGNkLXBjaS5jIGIvZHJpdmVy cy91c2IvY29yZS9oY2QtcGNpLmMKaW5kZXggNzZiZTNiYWUzZmY4Li44MzEyZjk1NDcwMDkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvaGNkLXBjaS5jCisrKyBiL2RyaXZlcnMvdXNiL2Nv cmUvaGNkLXBjaS5jCkBAIC03MCw2ICs3MCwxNCBAQCBzdGF0aWMgdm9pZCBjb21wYW5pb25fY29t bW9uKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgdXNiX2hjZCAqaGNkLAogCQkJCVBDSV9T TE9UKGNvbXBhbmlvbi0+ZGV2Zm4pICE9IHNsb3QpCiAJCQljb250aW51ZTsKIAorCQkvKgorCQkg KiBDb21wYW5pb24gZGV2aWNlIHNob3VsZCBiZSBlaXRoZXIgVUhDSSxPSENJIG9yIEVIQ0kgaG9z dAorCQkgKiBjb250cm9sbGVyLCBvdGhlcndpc2Ugc2tpcC4KKwkJICovCisJCWlmIChjb21wYW5p b24tPmNsYXNzICE9IENMX1VIQ0kgJiYgY29tcGFuaW9uLT5jbGFzcyAhPSBDTF9PSENJICYmCisJ CQkJY29tcGFuaW9uLT5jbGFzcyAhPSBDTF9FSENJKQorCQkJY29udGludWU7CisKIAkJY29tcGFu aW9uX2hjZCA9IHBjaV9nZXRfZHJ2ZGF0YShjb21wYW5pb24pOwogCQlpZiAoIWNvbXBhbmlvbl9o Y2QpCiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1tZW0u YyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1tZW0uYwppbmRleCBhYjAyM2IxNjg3MzIuLmUzZjcw ZDNmYjQ0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLW1lbS5jCisrKyBiL2Ry aXZlcnMvdXNiL2hvc3QveGhjaS1tZW0uYwpAQCAtMTc4OSw2ICsxNzg5LDExIEBAIG5vX2J3Ogog CWtmcmVlKHhoY2ktPnBvcnRfYXJyYXkpOwogCWtmcmVlKHhoY2ktPnJoX2J3KTsKIAorCXhoY2kt PnVzYjJfcG9ydHMgPSBOVUxMOworCXhoY2ktPnVzYjNfcG9ydHMgPSBOVUxMOworCXhoY2ktPnBv cnRfYXJyYXkgPSBOVUxMOworCXhoY2ktPnJoX2J3ID0gTlVMTDsKKwogCXhoY2ktPnBhZ2Vfc2l6 ZSA9IDA7CiAJeGhjaS0+cGFnZV9zaGlmdCA9IDA7CiAJeGhjaS0+YnVzX3N0YXRlWzBdLmJ1c19z dXNwZW5kZWQgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jIGIv ZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jCmluZGV4IDI0NGUxYjEyMjU5ZC4uNTBhZjU1OTE4 M2ViIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMKKysrIGIvZHJpdmVy cy91c2IvaG9zdC94aGNpLXBjaS5jCkBAIC00MCw2ICs0MCw3IEBACiAjZGVmaW5lIFBDSV9ERVZJ Q0VfSURfSU5URUxfU1VOUklTRVBPSU5UX0hfWEhDSQkJMHhhMTJmCiAjZGVmaW5lIFBDSV9ERVZJ Q0VfSURfSU5URUxfU1VOUklTRVBPSU5UX0xQX1hIQ0kJMHg5ZDJmCiAjZGVmaW5lIFBDSV9ERVZJ Q0VfSURfSU5URUxfQlJPWFRPTl9NX1hIQ0kJCTB4MGFhOAorI2RlZmluZSBQQ0lfREVWSUNFX0lE X0lOVEVMX0JST1hUT05fQl9YSENJCQkweDFhYTgKIAogc3RhdGljIGNvbnN0IGNoYXIgaGNkX25h bWVbXSA9ICJ4aGNpX2hjZCI7CiAKQEAgLTEzNCw3ICsxMzUsOCBAQCBzdGF0aWMgdm9pZCB4aGNp X3BjaV9xdWlya3Moc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgeGhjaV9oY2QgKnhoY2kpCiAJ CShwZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9TVU5SSVNFUE9JTlRfTFBfWEhD SSB8fAogCQkgcGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfU1VOUklTRVBPSU5U X0hfWEhDSSB8fAogCQkgcGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfQ0hFUlJZ VklFV19YSENJIHx8Ci0JCSBwZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9CUk9Y VE9OX01fWEhDSSkpIHsKKwkJIHBkZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX0lOVEVMX0JS T1hUT05fTV9YSENJIHx8CisJCSBwZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9C Uk9YVE9OX0JfWEhDSSkpIHsKIAkJeGhjaS0+cXVpcmtzIHw9IFhIQ0lfUE1FX1NUVUNLX1FVSVJL OwogCX0KIAlpZiAocGRldi0+dmVuZG9yID09IFBDSV9WRU5ET1JfSURfRVRST04gJiYKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHguYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9j cDIxMHguYwppbmRleCA2NDU2ODdjMDhiYWYuLmU5NDFlMmQzMzI2NSAxMDA2NDQKLS0tIGEvZHJp dmVycy91c2Ivc2VyaWFsL2NwMjEweC5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHgu YwpAQCAtMTE0LDYgKzExNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBp ZF90YWJsZVtdID0gewogCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4ODI2QikgfSwgLyogQ3lnbmFs IEludGVncmF0ZWQgUHJvZHVjdHMsIEluYy4sIEZhc3R0cmF4IEdQUyBkZW1vbnN0cmF0aW9uIG1v ZHVsZSAqLwogCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4ODI4MSkgfSwgLyogTmFub3RlYyBQbHVn ICYgRHJpdmUgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweDgyOTMpIH0sIC8qIFRlbGVnZXNp cyBFVFJYMlVTQiAqLworCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4ODJGNCkgfSwgLyogU3Rhcml6 b25hIE1pY3JvVG91Y2ggKi8KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweDgyRjkpIH0sIC8qIFBy b2N5b24gQVZTICovCiAJeyBVU0JfREVWSUNFKDB4MTBDNCwgMHg4MzQxKSB9LCAvKiBTaWVtZW5z IE1DMzVQVSBHUFJTIE1vZGVtICovCiAJeyBVU0JfREVWSUNFKDB4MTBDNCwgMHg4MzgyKSB9LCAv KiBDeWduYWwgSW50ZWdyYXRlZCBQcm9kdWN0cywgSW5jLiAqLwpAQCAtMTIzLDYgKzEyNCw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZVtdID0gewogCXsgVVNC X0RFVklDRSgweDEwQzQsIDB4ODQxOCkgfSwgLyogSVJaIEF1dG9tYXRpb24gVGVsZXBvcnQgU0ct MTAgR1NNL0dQUlMgTW9kZW0gKi8KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweDg0NkUpIH0sIC8q IEJFSSBVU0IgU2Vuc29yIEludGVyZmFjZSAoVkNQKSAqLwogCXsgVVNCX0RFVklDRSgweDEwQzQs IDB4ODQ3NykgfSwgLyogQmFsbHVmZiBSRklEICovCisJeyBVU0JfREVWSUNFKDB4MTBDNCwgMHg4 NEI2KSB9LCAvKiBTdGFyaXpvbmEgSHlwZXJpb24gKi8KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAw eDg1RUEpIH0sIC8qIEFDLVNlcnZpY2VzIElCVVMtSUYgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0 LCAweDg1RUIpIH0sIC8qIEFDLVNlcnZpY2VzIENJUy1JQlVTICovCiAJeyBVU0JfREVWSUNFKDB4 MTBDNCwgMHg4NUY4KSB9LCAvKiBWaXJ0ZW5pbyBQcmVvbjMyICovCkBAIC0xNDYsNiArMTQ4LDgg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlW10gPSB7CiAJeyBV U0JfREVWSUNFKDB4MTBDNCwgMHhGMDA0KSB9LCAvKiBFbGFuIERpZ2l0YWwgU3lzdGVtcyBVU0Jj b3VudDUwICovCiAJeyBVU0JfREVWSUNFKDB4MTBDNSwgMHhFQTYxKSB9LCAvKiBTaWxpY29uIExh YnMgTW9iaURhdGEgR1BSUyBVU0IgTW9kZW0gKi8KIAl7IFVTQl9ERVZJQ0UoMHgxMENFLCAweEVB NkEpIH0sIC8qIFNpbGljb24gTGFicyBNb2JpRGF0YSBHUFJTIFVTQiBNb2RlbSAxMDBFVSAqLwor CXsgVVNCX0RFVklDRSgweDEyQjgsIDB4RUM2MCkgfSwgLyogTGluayBHNCBFQ1UgKi8KKwl7IFVT Ql9ERVZJQ0UoMHgxMkI4LCAweEVDNjIpIH0sIC8qIExpbmsgRzQrIEVDVSAqLwogCXsgVVNCX0RF VklDRSgweDEzQUQsIDB4OTk5OSkgfSwgLyogQmFsdGVjaCBjYXJkIHJlYWRlciAqLwogCXsgVVNC X0RFVklDRSgweDE1NTUsIDB4MDAwNCkgfSwgLyogT3dlbiBBQzQgVVNCLVJTNDg1IENvbnZlcnRl ciAqLwogCXsgVVNCX0RFVklDRSgweDE2NkEsIDB4MDIwMSkgfSwgLyogQ2xpcHNhbCA1NTAwUEFD QSBDLUJ1cyBQYXNjYWwgQXV0b21hdGlvbiBDb250cm9sbGVyICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi9zdG9yYWdlL3VzYi5jIGIvZHJpdmVycy91c2Ivc3RvcmFnZS91c2IuYwppbmRleCBk NTgyYWY0YTE5NjguLmQyODE3NDIxZmM1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc3RvcmFn ZS91c2IuYworKysgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL3VzYi5jCkBAIC00NTMsNyArNDUzLDcg QEAgc3RhdGljIHZvaWQgYWRqdXN0X3F1aXJrcyhzdHJ1Y3QgdXNfZGF0YSAqdXMpCiAJCQlVU19G TF9DQVBBQ0lUWV9PSyB8IFVTX0ZMX0lHTk9SRV9SRVNJRFVFIHwKIAkJCVVTX0ZMX1NJTkdMRV9M VU4gfCBVU19GTF9OT19XUF9ERVRFQ1QgfAogCQkJVVNfRkxfTk9fUkVBRF9ESVNDX0lORk8gfCBV U19GTF9OT19SRUFEX0NBUEFDSVRZXzE2IHwKLQkJCVVTX0ZMX0lOSVRJQUxfUkVBRDEwKTsKKwkJ CVVTX0ZMX0lOSVRJQUxfUkVBRDEwIHwgVVNfRkxfTk9fUkVQT1JUX0xVTlMpOwogCiAJcCA9IHF1 aXJrczsKIAl3aGlsZSAoKnApIHsKQEAgLTQ5Nyw2ICs0OTcsOSBAQCBzdGF0aWMgdm9pZCBhZGp1 c3RfcXVpcmtzKHN0cnVjdCB1c19kYXRhICp1cykKIAkJY2FzZSAnaSc6CiAJCQlmIHw9IFVTX0ZM X0lHTk9SRV9ERVZJQ0U7CiAJCQlicmVhazsKKwkJY2FzZSAnaic6CisJCQlmIHw9IFVTX0ZMX05P X1JFUE9SVF9MVU5TOworCQkJYnJlYWs7CiAJCWNhc2UgJ2wnOgogCQkJZiB8PSBVU19GTF9OT1Rf TE9DS0FCTEU7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2ZzL2h1Z2V0bGJmcy9pbm9kZS5jIGIv ZnMvaHVnZXRsYmZzL2lub2RlLmMKaW5kZXggMGFhNDI0YTAyMzQ0Li5lYmFiMTE2YjA3NzkgMTAw NjQ0Ci0tLSBhL2ZzL2h1Z2V0bGJmcy9pbm9kZS5jCisrKyBiL2ZzL2h1Z2V0bGJmcy9pbm9kZS5j CkBAIC05NzksNiArOTc5LDExIEBAIHN0YXRpYyBpbnQgX19pbml0IGluaXRfaHVnZXRsYmZzX2Zz KHZvaWQpCiAJaW50IGVycm9yOwogCXN0cnVjdCB2ZnNtb3VudCAqdmZzbW91bnQ7CiAKKwlpZiAo IWh1Z2VwYWdlc19zdXBwb3J0ZWQoKSkgeworCQlwcl9pbmZvKCJodWdldGxiZnM6IGRpc2FibGlu ZyBiZWNhdXNlIHRoZXJlIGFyZSBubyBzdXBwb3J0ZWQgaHVnZXBhZ2Ugc2l6ZXNcbiIpOworCQly ZXR1cm4gLUVOT1RTVVBQOworCX0KKwogCWVycm9yID0gYmRpX2luaXQoJmh1Z2V0bGJmc19iYWNr aW5nX2Rldl9pbmZvKTsKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKZGlmZiAtLWdpdCBh L2ZzL2lzb2ZzL3JvY2suYyBiL2ZzL2lzb2ZzL3JvY2suYwppbmRleCAxNzgwOTQ5OWM3NTIuLmU1 MmExYWMxNjhlZiAxMDA2NDQKLS0tIGEvZnMvaXNvZnMvcm9jay5jCisrKyBiL2ZzL2lzb2ZzL3Jv Y2suYwpAQCAtMjAzLDYgKzIwMyw4IEBAIGludCBnZXRfcm9ja19yaWRnZV9maWxlbmFtZShzdHJ1 Y3QgaXNvX2RpcmVjdG9yeV9yZWNvcmQgKmRlLAogCWludCByZXRuYW1sZW4gPSAwOwogCWludCB0 cnVuY2F0ZSA9IDA7CiAJaW50IHJldCA9IDA7CisJY2hhciAqcDsKKwlpbnQgbGVuOwogCiAJaWYg KCFJU09GU19TQihpbm9kZS0+aV9zYiktPnNfcm9jaykKIAkJcmV0dXJuIDA7CkBAIC0yNjcsMTIg KzI2OSwxNyBAQCByZXBlYXQ6CiAJCQkJCXJyLT51Lk5NLmZsYWdzKTsKIAkJCQlicmVhazsKIAkJ CX0KLQkJCWlmICgoc3RybGVuKHJldG5hbWUpICsgcnItPmxlbiAtIDUpID49IDI1NCkgeworCQkJ bGVuID0gcnItPmxlbiAtIDU7CisJCQlpZiAocmV0bmFtbGVuICsgbGVuID49IDI1NCkgewogCQkJ CXRydW5jYXRlID0gMTsKIAkJCQlicmVhazsKIAkJCX0KLQkJCXN0cm5jYXQocmV0bmFtZSwgcnIt PnUuTk0ubmFtZSwgcnItPmxlbiAtIDUpOwotCQkJcmV0bmFtbGVuICs9IHJyLT5sZW4gLSA1Owor CQkJcCA9IG1lbWNocihyci0+dS5OTS5uYW1lLCAnXDAnLCBsZW4pOworCQkJaWYgKHVubGlrZWx5 KHApKQorCQkJCWxlbiA9IHAgLSByci0+dS5OTS5uYW1lOworCQkJbWVtY3B5KHJldG5hbWUgKyBy ZXRuYW1sZW4sIHJyLT51Lk5NLm5hbWUsIGxlbik7CisJCQlyZXRuYW1sZW4gKz0gbGVuOworCQkJ cmV0bmFtZVtyZXRuYW1sZW5dID0gJ1wwJzsKIAkJCWJyZWFrOwogCQljYXNlIFNJRygnUicsICdF Jyk6CiAJCQlrZnJlZShycy5idWZmZXIpOwpkaWZmIC0tZ2l0IGEvZnMvcHJvYy9iYXNlLmMgYi9m cy9wcm9jL2Jhc2UuYwppbmRleCAxYWNlODNkMDA0YmUuLjQwMjk3NmFiNzQ2YSAxMDA2NDQKLS0t IGEvZnMvcHJvYy9iYXNlLmMKKysrIGIvZnMvcHJvYy9iYXNlLmMKQEAgLTkwNSw3ICs5MDUsOCBA QCBzdGF0aWMgc3NpemVfdCBlbnZpcm9uX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191 c2VyICpidWYsCiAKIAltbSA9IG1tX2Zvcl9tYXBzKHRhc2spOwogCXJldCA9IFBUUl9FUlIobW0p OwotCWlmICghbW0gfHwgSVNfRVJSKG1tKSkKKwkvKiBFbnN1cmUgdGhlIHByb2Nlc3Mgc3Bhd25l ZCBmYXIgZW5vdWdoIHRvIGhhdmUgYW4gZW52aXJvbm1lbnQuICovCisJaWYgKCFtbSB8fCBJU19F UlIobW0pIHx8ICFtbS0+ZW52X2VuZCkKIAkJZ290byBvdXRfZnJlZTsKIAogCXJldCA9IDA7CmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2hhc2guaCBiL2luY2x1ZGUvbGludXgvaGFzaC5oCmlu ZGV4IGI4MDUwNmJkZDczMy4uNDRhM2I5NWYxNmMxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4 L2hhc2guaAorKysgYi9pbmNsdWRlL2xpbnV4L2hhc2guaApAQCAtMzEsMTAgKzMxLDI5IEBACiAj ZXJyb3IgV29yZHNpemUgbm90IDMyIG9yIDY0CiAjZW5kaWYKIAorLyoKKyAqIFRoZSBhYm92ZSBw cmltZXMgYXJlIGFjdGl2ZWx5IGJhZCBmb3IgaGFzaGluZywgc2luY2UgdGhleSBhcmUKKyAqIHRv byBzcGFyc2UuIFRoZSAzMi1iaXQgb25lIGlzIG1vc3RseSBvaywgdGhlIDY0LWJpdCBvbmUgY2F1 c2VzCisgKiByZWFsIHByb2JsZW1zLiBCZXNpZGVzLCB0aGUgInByaW1lIiBwYXJ0IGlzIHBvaW50 bGVzcyBmb3IgdGhlCisgKiBtdWx0aXBsaWNhdGl2ZSBoYXNoLgorICoKKyAqIEFsdGhvdWdoIGEg cmFuZG9tIG9kZCBudW1iZXIgd2lsbCBkbywgaXQgdHVybnMgb3V0IHRoYXQgdGhlIGdvbGRlbgor ICogcmF0aW8gcGhpID0gKHNxcnQoNSktMSkvMiwgb3IgaXRzIG5lZ2F0aXZlLCBoYXMgcGFydGlj dWxhcmx5IG5pY2UKKyAqIHByb3BlcnRpZXMuCisgKgorICogVGhlc2UgYXJlIHRoZSBuZWdhdGl2 ZSwgKDEgLSBwaGkpID0gKHBoaV4yKSA9ICgzIC0gc3FydCg1KSkvMi4KKyAqIChTZWUgS251dGgg dm9sIDMsIHNlY3Rpb24gNi40LCBleGVyY2lzZSA5LikKKyAqLworI2RlZmluZSBHT0xERU5fUkFU SU9fMzIgMHg2MUM4ODY0NworI2RlZmluZSBHT0xERU5fUkFUSU9fNjQgMHg2MUM4ODY0NjgwQjU4 M0VCdWxsCisKIHN0YXRpYyBpbmxpbmUgdTY0IGhhc2hfNjQodTY0IHZhbCwgdW5zaWduZWQgaW50 IGJpdHMpCiB7CiAJdTY0IGhhc2ggPSB2YWw7CiAKKyNpZiBCSVRTX1BFUl9MT05HID09IDY0CisJ aGFzaCA9IGhhc2ggKiBHT0xERU5fUkFUSU9fNjQ7CisjZWxzZQogCS8qICBTaWdoLCBnY2MgY2Fu J3Qgb3B0aW1pc2UgdGhpcyBhbG9uZSBsaWtlIGl0IGRvZXMgZm9yIDMyIGJpdHMuICovCiAJdTY0 IG4gPSBoYXNoOwogCW4gPDw9IDE4OwpAQCAtNDksNiArNjgsNyBAQCBzdGF0aWMgaW5saW5lIHU2 NCBoYXNoXzY0KHU2NCB2YWwsIHVuc2lnbmVkIGludCBiaXRzKQogCWhhc2ggKz0gbjsKIAluIDw8 PSAyOwogCWhhc2ggKz0gbjsKKyNlbmRpZgogCiAJLyogSGlnaCBiaXRzIGFyZSBtb3JlIHJhbmRv bSwgc28gdXNlIHRoZW0uICovCiAJcmV0dXJuIGhhc2ggPj4gKDY0IC0gYml0cyk7CmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaCBiL2luY2x1ZGUvbGludXgvaHVnZXRsYi5oCmlu ZGV4IDRiYzk0NDUyMjJmMi4uNTMzNDcxZDhiNDNiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4 L2h1Z2V0bGIuaAorKysgYi9pbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaApAQCAtMzQ0LDYgKzM0NCwx NSBAQCBzdGF0aWMgaW5saW5lIHBnb2ZmX3QgYmFzZXBhZ2VfaW5kZXgoc3RydWN0IHBhZ2UgKnBh Z2UpCiAJcmV0dXJuIF9fYmFzZXBhZ2VfaW5kZXgocGFnZSk7CiB9CiAKKyNpZm5kZWYgaHVnZXBh Z2VzX3N1cHBvcnRlZAorLyoKKyAqIFNvbWUgcGxhdGZvcm0gZGVjaWRlIHdoZXRoZXIgdGhleSBz dXBwb3J0IGh1Z2UgcGFnZXMgYXQgYm9vdAorICogdGltZS4gU29tZSBvZiB0aGVtLCBzdWNoIGFz IHBvd2VycGMsIHNldCBIUEFHRV9TSElGVCB0byAwCisgKiB3aGVuIHRoZXJlIGlzIG5vIHN1Y2gg c3VwcG9ydAorICovCisjZGVmaW5lIGh1Z2VwYWdlc19zdXBwb3J0ZWQoKSAoSFBBR0VfU0hJRlQg IT0gMCkKKyNlbmRpZgorCiAjZWxzZQogc3RydWN0IGhzdGF0ZSB7fTsKICNkZWZpbmUgYWxsb2Nf aHVnZV9wYWdlX25vZGUoaCwgbmlkKSBOVUxMCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25l dGRldmljZS5oIGIvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAppbmRleCA3MDBjOTQ4MjFkYjEu LjRiMDQwOTdjNzQ4YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysg Yi9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCkBAIC0yOTMsNyArMjkzLDYgQEAgc3RydWN0IGhl YWRlcl9vcHMgewogCXZvaWQJKCpjYWNoZV91cGRhdGUpKHN0cnVjdCBoaF9jYWNoZSAqaGgsCiAJ CQkJY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCQljb25zdCB1bnNpZ25lZCBjaGFy ICpoYWRkcik7Ci0JYm9vbAkoKnZhbGlkYXRlKShjb25zdCBjaGFyICpsbF9oZWFkZXIsIHVuc2ln bmVkIGludCBsZW4pOwogfTsKIAogLyogVGhlc2UgZmxhZyBiaXRzIGFyZSBwcml2YXRlIHRvIHRo ZSBnZW5lcmljIG5ldHdvcmsgcXVldWVpbmcKQEAgLTExMjAsNyArMTExOSw3IEBAIHN0cnVjdCBu ZXRfZGV2aWNlIHsKIAogCXVuc2lnbmVkIGludAkJbXR1OwkvKiBpbnRlcmZhY2UgTVRVIHZhbHVl CQkqLwogCXVuc2lnbmVkIHNob3J0CQl0eXBlOwkvKiBpbnRlcmZhY2UgaGFyZHdhcmUgdHlwZQkq LwotCXVuc2lnbmVkIHNob3J0CQloYXJkX2hlYWRlcl9sZW47IC8qIG1heGltdW0gaGFyZHdhcmUg aGRyIGxlbmd0aAkqLworCXVuc2lnbmVkIHNob3J0CQloYXJkX2hlYWRlcl9sZW47CS8qIGhhcmR3 YXJlIGhkciBsZW5ndGgJKi8KIAogCS8qIGV4dHJhIGhlYWQtIGFuZCB0YWlscm9vbSB0aGUgaGFy ZHdhcmUgbWF5IG5lZWQsIGJ1dCBub3QgaW4gYWxsIGNhc2VzCiAJICogY2FuIHRoaXMgYmUgZ3Vh cmFudGVlZCwgZXNwZWNpYWxseSB0YWlscm9vbS4gU29tZSBjYXNlcyBhbHNvIHVzZQpAQCAtMTcy OSwyNCArMTcyOCw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGRldl9yZWJ1aWxkX2hlYWRlcihzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogCXJldHVybiBkZXYtPmhlYWRlcl9vcHMtPnJlYnVpbGQoc2tiKTsK IH0KIAotLyogbGxfaGVhZGVyIG11c3QgaGF2ZSBhdCBsZWFzdCBoYXJkX2hlYWRlcl9sZW4gYWxs b2NhdGVkICovCi1zdGF0aWMgaW5saW5lIGJvb2wgZGV2X3ZhbGlkYXRlX2hlYWRlcihjb25zdCBz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LAotCQkJCSAgICAgICBjaGFyICpsbF9oZWFkZXIsIGludCBs ZW4pCi17Ci0JaWYgKGxpa2VseShsZW4gPj0gZGV2LT5oYXJkX2hlYWRlcl9sZW4pKQotCQlyZXR1 cm4gdHJ1ZTsKLQotCWlmIChjYXBhYmxlKENBUF9TWVNfUkFXSU8pKSB7Ci0JCW1lbXNldChsbF9o ZWFkZXIgKyBsZW4sIDAsIGRldi0+aGFyZF9oZWFkZXJfbGVuIC0gbGVuKTsKLQkJcmV0dXJuIHRy dWU7Ci0JfQotCi0JaWYgKGRldi0+aGVhZGVyX29wcyAmJiBkZXYtPmhlYWRlcl9vcHMtPnZhbGlk YXRlKQotCQlyZXR1cm4gZGV2LT5oZWFkZXJfb3BzLT52YWxpZGF0ZShsbF9oZWFkZXIsIGxlbik7 Ci0KLQlyZXR1cm4gZmFsc2U7Ci19Ci0KIHR5cGVkZWYgaW50IGdpZmNvbmZfZnVuY190KHN0cnVj dCBuZXRfZGV2aWNlICogZGV2LCBjaGFyIF9fdXNlciAqIGJ1ZnB0ciwgaW50IGxlbik7CiBleHRl cm4gaW50CQlyZWdpc3Rlcl9naWZjb25mKHVuc2lnbmVkIGludCBmYW1pbHksIGdpZmNvbmZfZnVu Y190ICogZ2lmY29uZik7CiBzdGF0aWMgaW5saW5lIGludCB1bnJlZ2lzdGVyX2dpZmNvbmYodW5z aWduZWQgaW50IGZhbWlseSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdXNiX3VzdWFsLmgg Yi9pbmNsdWRlL2xpbnV4L3VzYl91c3VhbC5oCmluZGV4IDg4NDEzZTlkODBiNS4uYTNkNmZhYzY1 M2NkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3VzYl91c3VhbC5oCisrKyBiL2luY2x1ZGUv bGludXgvdXNiX3VzdWFsLmgKQEAgLTY3LDYgKzY3LDggQEAKIAkJLyogSW5pdGlhbCBSRUFEKDEw KSAoYW5kIG90aGVycykgbXVzdCBiZSByZXRyaWVkICovIFwKIAlVU19GTEFHKEJST0tFTl9GVUEs CTB4MDEwMDAwMDApCQkJXAogCQkvKiBDYW5ub3QgaGFuZGxlIEZVQSBpbiBXUklURSBvciBSRUFE IENEQnMgKi8JXAorCVVTX0ZMQUcoTk9fUkVQT1JUX0xVTlMsCTB4MTAwMDAwMDApCQkJXAorCQkv KiBDYW5ub3QgaGFuZGxlIFJFUE9SVF9MVU5TICovCQkJXAogCiAjZGVmaW5lIFVTX0ZMQUcobmFt ZSwgdmFsdWUpCVVTX0ZMXyMjbmFtZSA9IHZhbHVlICwKIGVudW0geyBVU19ET19BTExfRkxBR1Mg fTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYi5oIGIvaW5jbHVkZS9yZG1hL2liLmgKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mY2IyMTg4MmQwOTYKLS0tIC9k ZXYvbnVsbAorKysgYi9pbmNsdWRlL3JkbWEvaWIuaApAQCAtMCwwICsxLDIxIEBACisjaWYgIWRl ZmluZWQoX1JETUFfSUJfSCkKKyNkZWZpbmUgX1JETUFfSUJfSAorCisjaW5jbHVkZSA8bGludXgv c2NoZWQuaD4KKworLyoKKyAqIFRoZSBJQiBpbnRlcmZhY2VzIHRoYXQgdXNlIHdyaXRlKCkgYXMg YmktZGlyZWN0aW9uYWwgaW9jdGwoKSBhcmUKKyAqIGZ1bmRhbWVudGFsbHkgdW5zYWZlLCBzaW5j ZSB0aGVyZSBhcmUgbG90cyBvZiB3YXlzIHRvIHRyaWdnZXIgIndyaXRlKCkiCisgKiBjYWxscyBm cm9tIHZhcmlvdXMgY29udGV4dHMgd2l0aCBlbGV2YXRlZCBwcml2aWxlZ2VzLiBUaGF0IGluY2x1 ZGVzIHRoZQorICogdHJhZGl0aW9uYWwgc3VpZCBleGVjdXRhYmxlIGVycm9yIG1lc3NhZ2Ugd3Jp dGVzLCBidXQgYWxzbyB2YXJpb3VzIGtlcm5lbAorICogaW50ZXJmYWNlcyB0aGF0IGNhbiB3cml0 ZSB0byBmaWxlIGRlc2NyaXB0b3JzLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgcHJv dGVjdGlvbiBmb3IgdGhlIGxlZ2FjeSBBUEkgYnkgcmVzdHJpY3RpbmcgdGhlCisgKiBjYWxsaW5n IGNvbnRleHQuCisgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbCBpYl9zYWZlX2ZpbGVfYWNjZXNzKHN0 cnVjdCBmaWxlICpmaWxwKQoreworCXJldHVybiBmaWxwLT5mX2NyZWQgPT0gY3VycmVudF9jcmVk KCkgJiYgc2VnbWVudF9lcShnZXRfZnMoKSwgVVNFUl9EUyk7Cit9CisKKyNlbmRpZiAvKiBfUkRN QV9JQl9IICovCmRpZmYgLS1naXQgYS9tbS9odWdlX21lbW9yeS5jIGIvbW0vaHVnZV9tZW1vcnku YwppbmRleCA3OTE2NmMyYjhmOGYuLjJmZGU1MTY2OWNkOSAxMDA2NDQKLS0tIGEvbW0vaHVnZV9t ZW1vcnkuYworKysgYi9tbS9odWdlX21lbW9yeS5jCkBAIC0xNjM1LDE0ICsxNjM1LDE0IEBAIGlu dCBraHVnZXBhZ2VkX2VudGVyX3ZtYV9tZXJnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwK IAkJICogcGFnZSBmYXVsdCBpZiBuZWVkZWQuCiAJCSAqLwogCQlyZXR1cm4gMDsKLQlpZiAodm1h LT52bV9vcHMpCisJaWYgKHZtYS0+dm1fb3BzIHx8ICh2bV9mbGFncyAmIFZNX05PX1RIUCkpCiAJ CS8qIGtodWdlcGFnZWQgbm90IHlldCB3b3JraW5nIG9uIGZpbGUgb3Igc3BlY2lhbCBtYXBwaW5n cyAqLwogCQlyZXR1cm4gMDsKIAkvKgogCSAqIElmIGlzX3Bmbl9tYXBwaW5nKCkgaXMgdHJ1ZSBp c19sZWFybl9wZm5fbWFwcGluZygpIG11c3QgYmUKIAkgKiB0cnVlIHRvbywgdmVyaWZ5IGl0IGhl cmUuCiAJICovCi0JVk1fQlVHX09OKGlzX2xpbmVhcl9wZm5fbWFwcGluZyh2bWEpIHx8IHZtX2Zs YWdzICYgVk1fTk9fVEhQKTsKKwlWTV9CVUdfT04oaXNfbGluZWFyX3Bmbl9tYXBwaW5nKHZtYSkp OwogCWhzdGFydCA9ICh2bWEtPnZtX3N0YXJ0ICsgfkhQQUdFX1BNRF9NQVNLKSAmIEhQQUdFX1BN RF9NQVNLOwogCWhlbmQgPSB2bWEtPnZtX2VuZCAmIEhQQUdFX1BNRF9NQVNLOwogCWlmIChoc3Rh cnQgPCBoZW5kKQpAQCAtMTgxNyw2ICsxODE3LDI0IEBAIHN0YXRpYyB2b2lkIF9fY29sbGFwc2Vf aHVnZV9wYWdlX2NvcHkocHRlX3QgKnB0ZSwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJfQogfQogCitz dGF0aWMgYm9vbCBodWdlcGFnZV92bWFfY2hlY2soc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEp Cit7CisJaWYgKCghKHZtYS0+dm1fZmxhZ3MgJiBWTV9IVUdFUEFHRSkgJiYgIWtodWdlcGFnZWRf YWx3YXlzKCkpIHx8CisJICAgICh2bWEtPnZtX2ZsYWdzICYgVk1fTk9IVUdFUEFHRSkpCisJCXJl dHVybiBmYWxzZTsKKworCWlmICghdm1hLT5hbm9uX3ZtYSB8fCB2bWEtPnZtX29wcykKKwkJcmV0 dXJuIGZhbHNlOworCWlmIChpc192bWFfdGVtcG9yYXJ5X3N0YWNrKHZtYSkpCisJCXJldHVybiBm YWxzZTsKKwkvKgorCSAqIElmIGlzX3Bmbl9tYXBwaW5nKCkgaXMgdHJ1ZSBpc19sZWFybl9wZm5f bWFwcGluZygpIG11c3QgYmUKKwkgKiB0cnVlIHRvbywgdmVyaWZ5IGl0IGhlcmUuCisJICovCisJ Vk1fQlVHX09OKGlzX2xpbmVhcl9wZm5fbWFwcGluZyh2bWEpKTsKKwlyZXR1cm4gISh2bWEtPnZt X2ZsYWdzICYgVk1fTk9fVEhQKTsKK30KKwogc3RhdGljIHZvaWQgY29sbGFwc2VfaHVnZV9wYWdl KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywK IAkJCSAgICAgICBzdHJ1Y3QgcGFnZSAqKmhwYWdlLApAQCAtMTg4OSwyMSArMTkwNyw4IEBAIHN0 YXRpYyB2b2lkIGNvbGxhcHNlX2h1Z2VfcGFnZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAloZW5k ID0gdm1hLT52bV9lbmQgJiBIUEFHRV9QTURfTUFTSzsKIAlpZiAoYWRkcmVzcyA8IGhzdGFydCB8 fCBhZGRyZXNzICsgSFBBR0VfUE1EX1NJWkUgPiBoZW5kKQogCQlnb3RvIG91dDsKLQotCWlmICgo ISh2bWEtPnZtX2ZsYWdzICYgVk1fSFVHRVBBR0UpICYmICFraHVnZXBhZ2VkX2Fsd2F5cygpKSB8 fAotCSAgICAodm1hLT52bV9mbGFncyAmIFZNX05PSFVHRVBBR0UpKQorCWlmICghaHVnZXBhZ2Vf dm1hX2NoZWNrKHZtYSkpCiAJCWdvdG8gb3V0OwotCi0JaWYgKCF2bWEtPmFub25fdm1hIHx8IHZt YS0+dm1fb3BzKQotCQlnb3RvIG91dDsKLQlpZiAoaXNfdm1hX3RlbXBvcmFyeV9zdGFjayh2bWEp KQotCQlnb3RvIG91dDsKLQkvKgotCSAqIElmIGlzX3Bmbl9tYXBwaW5nKCkgaXMgdHJ1ZSBpc19s ZWFybl9wZm5fbWFwcGluZygpIG11c3QgYmUKLQkgKiB0cnVlIHRvbywgdmVyaWZ5IGl0IGhlcmUu Ci0JICovCi0JVk1fQlVHX09OKGlzX2xpbmVhcl9wZm5fbWFwcGluZyh2bWEpIHx8IHZtYS0+dm1f ZmxhZ3MgJiBWTV9OT19USFApOwotCiAJcGdkID0gcGdkX29mZnNldChtbSwgYWRkcmVzcyk7CiAJ aWYgKCFwZ2RfcHJlc2VudCgqcGdkKSkKIAkJZ290byBvdXQ7CkBAIC0yMTMzLDI1ICsyMTM4LDEx IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQga2h1Z2VwYWdlZF9zY2FuX21tX3Nsb3QodW5zaWduZWQg aW50IHBhZ2VzLAogCQkJcHJvZ3Jlc3MrKzsKIAkJCWJyZWFrOwogCQl9Ci0KLQkJaWYgKCghKHZt YS0+dm1fZmxhZ3MgJiBWTV9IVUdFUEFHRSkgJiYKLQkJICAgICAha2h1Z2VwYWdlZF9hbHdheXMo KSkgfHwKLQkJICAgICh2bWEtPnZtX2ZsYWdzICYgVk1fTk9IVUdFUEFHRSkpIHsKLQkJc2tpcDoK KwkJaWYgKCFodWdlcGFnZV92bWFfY2hlY2sodm1hKSkgeworc2tpcDoKIAkJCXByb2dyZXNzKys7 CiAJCQljb250aW51ZTsKIAkJfQotCQlpZiAoIXZtYS0+YW5vbl92bWEgfHwgdm1hLT52bV9vcHMp Ci0JCQlnb3RvIHNraXA7Ci0JCWlmIChpc192bWFfdGVtcG9yYXJ5X3N0YWNrKHZtYSkpCi0JCQln b3RvIHNraXA7Ci0JCS8qCi0JCSAqIElmIGlzX3Bmbl9tYXBwaW5nKCkgaXMgdHJ1ZSBpc19sZWFy bl9wZm5fbWFwcGluZygpCi0JCSAqIG11c3QgYmUgdHJ1ZSB0b28sIHZlcmlmeSBpdCBoZXJlLgot CQkgKi8KLQkJVk1fQlVHX09OKGlzX2xpbmVhcl9wZm5fbWFwcGluZyh2bWEpIHx8Ci0JCQkgIHZt YS0+dm1fZmxhZ3MgJiBWTV9OT19USFApOwotCiAJCWhzdGFydCA9ICh2bWEtPnZtX3N0YXJ0ICsg fkhQQUdFX1BNRF9NQVNLKSAmIEhQQUdFX1BNRF9NQVNLOwogCQloZW5kID0gdm1hLT52bV9lbmQg JiBIUEFHRV9QTURfTUFTSzsKIAkJaWYgKGhzdGFydCA+PSBoZW5kKQpkaWZmIC0tZ2l0IGEvbW0v aHVnZXRsYi5jIGIvbW0vaHVnZXRsYi5jCmluZGV4IDkyNTY1OTBiZGQwZS4uYzUyMDk1Y2U0MGI0 IDEwMDY0NAotLS0gYS9tbS9odWdldGxiLmMKKysrIGIvbW0vaHVnZXRsYi5jCkBAIC0xODg5LDEx ICsxODg5LDcgQEAgbW9kdWxlX2V4aXQoaHVnZXRsYl9leGl0KTsKIAogc3RhdGljIGludCBfX2lu aXQgaHVnZXRsYl9pbml0KHZvaWQpCiB7Ci0JLyogU29tZSBwbGF0Zm9ybSBkZWNpZGUgd2hldGhl ciB0aGV5IHN1cHBvcnQgaHVnZSBwYWdlcyBhdCBib290Ci0JICogdGltZS4gT24gdGhlc2UsIHN1 Y2ggYXMgcG93ZXJwYywgSFBBR0VfU0hJRlQgaXMgc2V0IHRvIDAgd2hlbgotCSAqIHRoZXJlIGlz IG5vIHN1Y2ggc3VwcG9ydAotCSAqLwotCWlmIChIUEFHRV9TSElGVCA9PSAwKQorCWlmICghaHVn ZXBhZ2VzX3N1cHBvcnRlZCgpKQogCQlyZXR1cm4gMDsKIAogCWlmICghc2l6ZV90b19oc3RhdGUo ZGVmYXVsdF9oc3RhdGVfc2l6ZSkpIHsKQEAgLTIwMTAsNiArMjAwNiw5IEBAIHN0YXRpYyBpbnQg aHVnZXRsYl9zeXNjdGxfaGFuZGxlcl9jb21tb24oYm9vbCBvYmV5X21lbXBvbGljeSwKIAl1bnNp Z25lZCBsb25nIHRtcDsKIAlpbnQgcmV0OwogCisJaWYgKCFodWdlcGFnZXNfc3VwcG9ydGVkKCkp CisJCXJldHVybiAtRU5PVFNVUFA7CisKIAl0bXAgPSBoLT5tYXhfaHVnZV9wYWdlczsKIAogCWlm ICh3cml0ZSAmJiBoLT5vcmRlciA+PSBNQVhfT1JERVIpCkBAIC0yMDc1LDYgKzIwNzQsOSBAQCBp bnQgaHVnZXRsYl9vdmVyY29tbWl0X2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGlu dCB3cml0ZSwKIAl1bnNpZ25lZCBsb25nIHRtcDsKIAlpbnQgcmV0OwogCisJaWYgKCFodWdlcGFn ZXNfc3VwcG9ydGVkKCkpCisJCXJldHVybiAtRU5PVFNVUFA7CisKIAl0bXAgPSBoLT5ucl9vdmVy Y29tbWl0X2h1Z2VfcGFnZXM7CiAKIAlpZiAod3JpdGUgJiYgaC0+b3JkZXIgPj0gTUFYX09SREVS KQpAQCAtMjEwMCw2ICsyMTAyLDggQEAgb3V0Ogogdm9pZCBodWdldGxiX3JlcG9ydF9tZW1pbmZv KHN0cnVjdCBzZXFfZmlsZSAqbSkKIHsKIAlzdHJ1Y3QgaHN0YXRlICpoID0gJmRlZmF1bHRfaHN0 YXRlOworCWlmICghaHVnZXBhZ2VzX3N1cHBvcnRlZCgpKQorCQlyZXR1cm47CiAJc2VxX3ByaW50 ZihtLAogCQkJIkh1Z2VQYWdlc19Ub3RhbDogICAlNWx1XG4iCiAJCQkiSHVnZVBhZ2VzX0ZyZWU6 ICAgICU1bHVcbiIKQEAgLTIxMTYsNiArMjEyMCw4IEBAIHZvaWQgaHVnZXRsYl9yZXBvcnRfbWVt aW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiBpbnQgaHVnZXRsYl9yZXBvcnRfbm9kZV9tZW1pbmZv KGludCBuaWQsIGNoYXIgKmJ1ZikKIHsKIAlzdHJ1Y3QgaHN0YXRlICpoID0gJmRlZmF1bHRfaHN0 YXRlOworCWlmICghaHVnZXBhZ2VzX3N1cHBvcnRlZCgpKQorCQlyZXR1cm4gMDsKIAlyZXR1cm4g c3ByaW50ZihidWYsCiAJCSJOb2RlICVkIEh1Z2VQYWdlc19Ub3RhbDogJTV1XG4iCiAJCSJOb2Rl ICVkIEh1Z2VQYWdlc19GcmVlOiAgJTV1XG4iCmRpZmYgLS1naXQgYS9uZXQvYXgyNS9heDI1X2lw LmMgYi9uZXQvYXgyNS9heDI1X2lwLmMKaW5kZXggYTBjOTk1NmI1YjIzLi5jZjBjNDdhMjY1MzAg MTAwNjQ0Ci0tLSBhL25ldC9heDI1L2F4MjVfaXAuYworKysgYi9uZXQvYXgyNS9heDI1X2lwLmMK QEAgLTIzMiwyNCArMjMyLDkgQEAgaW50IGF4MjVfcmVidWlsZF9oZWFkZXIoc3RydWN0IHNrX2J1 ZmYgKnNrYikKIAogI2VuZGlmCiAKLXN0YXRpYyBib29sIGF4MjVfdmFsaWRhdGVfaGVhZGVyKGNv bnN0IGNoYXIgKmhlYWRlciwgdW5zaWduZWQgaW50IGxlbikKLXsKLQlheDI1X2RpZ2kgZGlnaTsK LQotCWlmICghbGVuKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlpZiAoaGVhZGVyWzBdKQotCQlyZXR1 cm4gdHJ1ZTsKLQotCXJldHVybiBheDI1X2FkZHJfcGFyc2UoaGVhZGVyICsgMSwgbGVuIC0gMSwg TlVMTCwgTlVMTCwgJmRpZ2ksIE5VTEwsCi0JCQkgICAgICAgTlVMTCk7Ci19Ci0KIGNvbnN0IHN0 cnVjdCBoZWFkZXJfb3BzIGF4MjVfaGVhZGVyX29wcyA9IHsKIAkuY3JlYXRlID0gYXgyNV9oYXJk X2hlYWRlciwKIAkucmVidWlsZCA9IGF4MjVfcmVidWlsZF9oZWFkZXIsCi0JLnZhbGlkYXRlID0g YXgyNV92YWxpZGF0ZV9oZWFkZXIsCiB9OwogCiBFWFBPUlRfU1lNQk9MKGF4MjVfaGFyZF9oZWFk ZXIpOwpkaWZmIC0tZ2l0IGEvbmV0L2JhdG1hbi1hZHYvcm91dGluZy5jIGIvbmV0L2JhdG1hbi1h ZHYvcm91dGluZy5jCmluZGV4IGRhNTg3YWQxODlmOC4uY2M4MmVjNTUyODNiIDEwMDY0NAotLS0g YS9uZXQvYmF0bWFuLWFkdi9yb3V0aW5nLmMKKysrIGIvbmV0L2JhdG1hbi1hZHYvcm91dGluZy5j CkBAIC05OCw2ICs5OCwxNSBAQCBzdGF0aWMgdm9pZCBfdXBkYXRlX3JvdXRlKHN0cnVjdCBiYXRf cHJpdiAqYmF0X3ByaXYsCiAJCW5laWdoX25vZGUgPSBOVUxMOwogCiAJc3Bpbl9sb2NrX2JoKCZv cmlnX25vZGUtPm5laWdoX2xpc3RfbG9jayk7CisJLyogY3Vycl9yb3V0ZXIgdXNlZCBlYXJsaWVy IG1heSBub3QgYmUgdGhlIGN1cnJlbnQgb3JpZ19ub2RlLT5yb3V0ZXIKKwkgKiBhbnltb3JlIGJl Y2F1c2UgaXQgd2FzIGRlcmVmZXJlbmNlZCBvdXRzaWRlIG9mIHRoZSBuZWlnaF9saXN0X2xvY2sK KwkgKiBwcm90ZWN0ZWQgcmVnaW9uLiBBZnRlciB0aGUgbmV3IGJlc3QgbmVpZ2hib3IgaGFzIHJl cGxhY2UgdGhlIGN1cnJlbnQKKwkgKiBiZXN0IG5laWdoYm9yIHRoZSByZWZlcmVuY2UgY291bnRl ciBuZWVkcyB0byBkZWNyZWFzZS4gQ29uc2VxdWVudGx5LAorCSAqIHRoZSBjb2RlIG5lZWRzIHRv IGVuc3VyZSB0aGUgY3Vycl9yb3V0ZXIgdmFyaWFibGUgY29udGFpbnMgYSBwb2ludGVyCisJICog dG8gdGhlIHJlcGxhY2VkIGJlc3QgbmVpZ2hib3IuCisJICovCisJY3Vycl9yb3V0ZXIgPSByY3Vf ZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9yaWdfbm9kZS0+cm91dGVyLCB0cnVlKTsKKwogCXJjdV9h c3NpZ25fcG9pbnRlcihvcmlnX25vZGUtPnJvdXRlciwgbmVpZ2hfbm9kZSk7CiAJc3Bpbl91bmxv Y2tfYmgoJm9yaWdfbm9kZS0+bmVpZ2hfbGlzdF9sb2NrKTsKIApkaWZmIC0tZ2l0IGEvbmV0L2Jh dG1hbi1hZHYvc2VuZC5jIGIvbmV0L2JhdG1hbi1hZHYvc2VuZC5jCmluZGV4IDhhNjg0ZWI3Mzhh ZC4uMjA1NzBkZDZkNmI3IDEwMDY0NAotLS0gYS9uZXQvYmF0bWFuLWFkdi9zZW5kLmMKKysrIGIv bmV0L2JhdG1hbi1hZHYvc2VuZC5jCkBAIC0zNzUsNiArMzc1LDkgQEAgdm9pZCBwdXJnZV9vdXRz dGFuZGluZ19wYWNrZXRzKHN0cnVjdCBiYXRfcHJpdiAqYmF0X3ByaXYsCiAKIAkJaWYgKHBlbmRp bmcpIHsKIAkJCWhsaXN0X2RlbCgmZm9yd19wYWNrZXQtPmxpc3QpOworCQkJaWYgKCFmb3J3X3Bh Y2tldC0+b3duKQorCQkJCWF0b21pY19pbmMoJmJhdF9wcml2LT5iY2FzdF9xdWV1ZV9sZWZ0KTsK KwogCQkJZm9yd19wYWNrZXRfZnJlZShmb3J3X3BhY2tldCk7CiAJCX0KIAl9CkBAIC00MDQsNiAr NDA3LDkgQEAgdm9pZCBwdXJnZV9vdXRzdGFuZGluZ19wYWNrZXRzKHN0cnVjdCBiYXRfcHJpdiAq YmF0X3ByaXYsCiAKIAkJaWYgKHBlbmRpbmcpIHsKIAkJCWhsaXN0X2RlbCgmZm9yd19wYWNrZXQt Pmxpc3QpOworCQkJaWYgKCFmb3J3X3BhY2tldC0+b3duKQorCQkJCWF0b21pY19pbmMoJmJhdF9w cml2LT5iYXRtYW5fcXVldWVfbGVmdCk7CisKIAkJCWZvcndfcGFja2V0X2ZyZWUoZm9yd19wYWNr ZXQpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L2JhdG1hbi1hZHYvc29mdC1pbnRlcmZhY2Uu YyBiL25ldC9iYXRtYW4tYWR2L3NvZnQtaW50ZXJmYWNlLmMKaW5kZXggZjljYzk1NzI4OTg5Li5h OGY0NjI3YTQyNmUgMTAwNjQ0Ci0tLSBhL25ldC9iYXRtYW4tYWR2L3NvZnQtaW50ZXJmYWNlLmMK KysrIGIvbmV0L2JhdG1hbi1hZHYvc29mdC1pbnRlcmZhY2UuYwpAQCAtNjg2LDEwICs2ODYsMTYg QEAgdm9pZCBpbnRlcmZhY2Vfcngoc3RydWN0IG5ldF9kZXZpY2UgKnNvZnRfaWZhY2UsCiAJc2ti X3B1bGxfcmNzdW0oc2tiLCBoZHJfc2l6ZSk7CiAJc2tiX3Jlc2V0X21hY19oZWFkZXIoc2tiKTsK IAorCWlmICh1bmxpa2VseSghcHNrYl9tYXlfcHVsbChza2IsIEVUSF9ITEVOKSkpCisJCWdvdG8g ZHJvcHBlZDsKKwogCWV0aGhkciA9IChzdHJ1Y3QgZXRoaGRyICopc2tiX21hY19oZWFkZXIoc2ti KTsKIAogCXN3aXRjaCAobnRvaHMoZXRoaGRyLT5oX3Byb3RvKSkgewogCWNhc2UgRVRIX1BfODAy MVE6CisJCWlmICghcHNrYl9tYXlfcHVsbChza2IsIFZMQU5fRVRIX0hMRU4pKQorCQkJZ290byBk cm9wcGVkOworCiAJCXZoZHIgPSAoc3RydWN0IHZsYW5fZXRoaGRyICopc2tiLT5kYXRhOwogCQl2 aWQgPSBudG9ocyh2aGRyLT5oX3ZsYW5fVENJKSAmIFZMQU5fVklEX01BU0s7CiAKQEAgLTcyNiw4 ICs3MzIsNiBAQCB2b2lkIGludGVyZmFjZV9yeChzdHJ1Y3QgbmV0X2RldmljZSAqc29mdF9pZmFj ZSwKIAl9CiAKIAkvKiBza2ItPmRldiAmIHNrYi0+cGt0X3R5cGUgYXJlIHNldCBoZXJlICovCi0J aWYgKHVubGlrZWx5KCFwc2tiX21heV9wdWxsKHNrYiwgRVRIX0hMRU4pKSkKLQkJZ290byBkcm9w cGVkOwogCXNrYi0+cHJvdG9jb2wgPSBldGhfdHlwZV90cmFucyhza2IsIHNvZnRfaWZhY2UpOwog CiAJLyogc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnkgYW55bW9yZSBhcyB3ZSB1c2Ugc2tiX3B1bGxf cmNzdW0oKQpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMgYi9uZXQvY29yZS9ydG5l dGxpbmsuYwppbmRleCBlNzczNzNhNDQ4NDcuLjcyYTdlZDgyNjU5YiAxMDA2NDQKLS0tIGEvbmV0 L2NvcmUvcnRuZXRsaW5rLmMKKysrIGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMKQEAgLTkyMCwxNCAr OTIwLDE2IEBAIHN0YXRpYyBpbnQgcnRubF9maWxsX2lmaW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlOTEFfUFVUX1NUUklORyhza2IsIElGTEFfSUZB TElBUywgZGV2LT5pZmFsaWFzKTsKIAogCWlmICgxKSB7Ci0JCXN0cnVjdCBydG5sX2xpbmtfaWZt YXAgbWFwID0gewotCQkJLm1lbV9zdGFydCAgID0gZGV2LT5tZW1fc3RhcnQsCi0JCQkubWVtX2Vu ZCAgICAgPSBkZXYtPm1lbV9lbmQsCi0JCQkuYmFzZV9hZGRyICAgPSBkZXYtPmJhc2VfYWRkciwK LQkJCS5pcnEgICAgICAgICA9IGRldi0+aXJxLAotCQkJLmRtYSAgICAgICAgID0gZGV2LT5kbWEs Ci0JCQkucG9ydCAgICAgICAgPSBkZXYtPmlmX3BvcnQsCi0JCX07CisJCXN0cnVjdCBydG5sX2xp bmtfaWZtYXAgbWFwOworCisJCW1lbXNldCgmbWFwLCAwLCBzaXplb2YobWFwKSk7CisJCW1hcC5t ZW1fc3RhcnQgICA9IGRldi0+bWVtX3N0YXJ0OworCQltYXAubWVtX2VuZCAgICAgPSBkZXYtPm1l bV9lbmQ7CisJCW1hcC5iYXNlX2FkZHIgICA9IGRldi0+YmFzZV9hZGRyOworCQltYXAuaXJxICAg ICAgICAgPSBkZXYtPmlycTsKKwkJbWFwLmRtYSAgICAgICAgID0gZGV2LT5kbWE7CisJCW1hcC5w b3J0ICAgICAgICA9IGRldi0+aWZfcG9ydDsKKwogCQlOTEFfUFVUKHNrYiwgSUZMQV9NQVAsIHNp emVvZihtYXApLCAmbWFwKTsKIAl9CiAKZGlmZiAtLWdpdCBhL25ldC9sbGMvYWZfbGxjLmMgYi9u ZXQvbGxjL2FmX2xsYy5jCmluZGV4IGY0MzJkN2I2ZDkzYS4uNzc1MmIyZmZiYzQzIDEwMDY0NAot LS0gYS9uZXQvbGxjL2FmX2xsYy5jCisrKyBiL25ldC9sbGMvYWZfbGxjLmMKQEAgLTYyNyw2ICs2 MjcsNyBAQCBzdGF0aWMgdm9pZCBsbGNfY21zZ19yY3Yoc3RydWN0IG1zZ2hkciAqbXNnLCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogCWlmIChsbGMtPmNtc2dfZmxhZ3MgJiBMTENfQ01TR19QS1RJTkZP KSB7CiAJCXN0cnVjdCBsbGNfcGt0aW5mbyBpbmZvOwogCisJCW1lbXNldCgmaW5mbywgMCwgc2l6 ZW9mKGluZm8pKTsKIAkJaW5mby5scGlfaWZpbmRleCA9IGxsY19zayhza2ItPnNrKS0+ZGV2LT5p ZmluZGV4OwogCQlsbGNfcGR1X2RlY29kZV9kc2FwKHNrYiwgJmluZm8ubHBpX3NhcCk7CiAJCWxs Y19wZHVfZGVjb2RlX2RhKHNrYiwgaW5mby5scGlfbWFjKTsKZGlmZiAtLWdpdCBhL25ldC9uZXRm aWx0ZXIvbmZfY29ubnRyYWNrX2NvcmUuYyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2Nv cmUuYwppbmRleCA3NDg5YmQzMDFkYTUuLmM4NTU2NzNjZWIyMyAxMDA2NDQKLS0tIGEvbmV0L25l dGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jCisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRy YWNrX2NvcmUuYwpAQCAtMTQ5Myw2ICsxNDkzLDcgQEAgZXJyX3Byb3RvOgogCiBzdGF0aWMgaW50 IG5mX2Nvbm50cmFja19pbml0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCiB7CisJc3RhdGljIGF0b21p YzY0X3QgdW5pcXVlX2lkOwogCWludCByZXQ7CiAKIAlhdG9taWNfc2V0KCZuZXQtPmN0LmNvdW50 LCAwKTsKQEAgLTE1MDQsNyArMTUwNSw4IEBAIHN0YXRpYyBpbnQgbmZfY29ubnRyYWNrX2luaXRf bmV0KHN0cnVjdCBuZXQgKm5ldCkKIAkJZ290byBlcnJfc3RhdDsKIAl9CiAKLQluZXQtPmN0LnNs YWJuYW1lID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsICJuZl9jb25udHJhY2tfJXAiLCBuZXQpOwor CW5ldC0+Y3Quc2xhYm5hbWUgPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwgIm5mX2Nvbm50cmFja18l bGx1IiwKKwkJCQkodTY0KWF0b21pYzY0X2luY19yZXR1cm4oJnVuaXF1ZV9pZCkpOwogCWlmICgh bmV0LT5jdC5zbGFibmFtZSkgewogCQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIGVycl9zbGFibmFt ZTsKZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9ubDgwMjExLmMgYi9uZXQvd2lyZWxlc3Mvbmw4 MDIxMS5jCmluZGV4IGUxZjczYjY1YWYxNS4uNDQ2ZDIyNDM5NDkyIDEwMDY0NAotLS0gYS9uZXQv d2lyZWxlc3Mvbmw4MDIxMS5jCisrKyBiL25ldC93aXJlbGVzcy9ubDgwMjExLmMKQEAgLTc0OTYs NyArNzQ5Niw3IEBAIHN0YXRpYyBpbnQgbmw4MDIxMV9uZXRsaW5rX25vdGlmeShzdHJ1Y3Qgbm90 aWZpZXJfYmxvY2sgKiBuYiwKIAlzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJk ZXY7CiAJc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldjsKIAotCWlmIChzdGF0ZSAhPSBORVRMSU5L X1VSRUxFQVNFKQorCWlmIChzdGF0ZSAhPSBORVRMSU5LX1VSRUxFQVNFIHx8IG5vdGlmeS0+cHJv dG9jb2wgIT0gTkVUTElOS19HRU5FUklDKQogCQlyZXR1cm4gTk9USUZZX0RPTkU7CiAKIAlyY3Vf cmVhZF9sb2NrKCk7CmRpZmYgLS1naXQgYS9uZXQveDI1L3gyNV9mYWNpbGl0aWVzLmMgYi9uZXQv eDI1L3gyNV9mYWNpbGl0aWVzLmMKaW5kZXggMzYzODRhMWZhOWYyLi44ODc3NDljODA1NGQgMTAw NjQ0Ci0tLSBhL25ldC94MjUveDI1X2ZhY2lsaXRpZXMuYworKysgYi9uZXQveDI1L3gyNV9mYWNp bGl0aWVzLmMKQEAgLTI3MSw2ICsyNzEsNyBAQCBpbnQgeDI1X25lZ290aWF0ZV9mYWNpbGl0aWVz KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzb2NrICpzaywKIAogCW1lbXNldCgmdGhlaXJz LCAwLCBzaXplb2YodGhlaXJzKSk7CiAJbWVtY3B5KG5ldywgb3Vycywgc2l6ZW9mKCpuZXcpKTsK KwltZW1zZXQoZHRlLCAwLCBzaXplb2YoKmR0ZSkpOwogCiAJbGVuID0geDI1X3BhcnNlX2ZhY2ls aXRpZXMoc2tiLCAmdGhlaXJzLCBkdGUsICZ4MjUtPnZjX2ZhY2lsX21hc2spOwogCWlmIChsZW4g PCAwKQo= --=-lAamsUVOJ4A3TIJKoIWa-- --=-bTMURcPixMZ0tP2NxRP7 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABCgAGBQJXXv8xAAoJEOe/yOyVhhEJI9UQAMJVH3ucHQIzc9CgHT2OgaFm zr7QPTkQZZ6I6Vyi/76TR898ZuXfeCfDScc3ofOr6tkSX6LSsa5+8hu19oj8YV9/ 5zAqraWraQ0d0ljrPntTTMGpv7tpGiZLxgLX0/0HsTZNR0COqV7M8SFNr/f4DT/A GUUo30iMH3UZiP1L7FBZw26vMMFevkksGdRzaBSBW1mxD25qeZRpR/HccdIw2hTt KCaWeP27gifyNymdP60X9QwWT2Avc6ZDmrNDeMPZVuHPiLGRa9fQLcNSKiC6SeMY whQQrDVxZbJFtMIJZ8/DfpPvt/KK5pgH3kIr5j+Ajb8HHkjoola1IABSMMMJPiC0 IPdyDn6yhakaur1CmxQIecGNQi3DfONahKluBzTrBWZqgogAUb71WUnQGgF4HGrG p59U6DxrJFgGTJOu/rFJUoVQalQP22SfmI5vD7MhrLXmxmYhPsHjAqSRzf/B0/lg fpTRbNTKD1olFfeIM7pen7BFHF8Ak62IiBnfOpxkw3HowqV4aQnVijY0L2N62Cln xfWLMpCexLW4sGsYXN9nBKF4XefI+nd1Zt8c0tcWMufzAd3po0wXt8Iyrc59dVE8 VVmBVx0nHQ5kO7Q829kmzOPDRoXDe3iNr28RPa5lHoztGJoLFubqtKLqQJoVNrLG Utkf0Wf2A61L/47Zte3T =/hEB -----END PGP SIGNATURE----- --=-bTMURcPixMZ0tP2NxRP7--