From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752136AbbKOC3v (ORCPT ); Sat, 14 Nov 2015 21:29:51 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:35551 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751934AbbKOC3p (ORCPT ); Sat, 14 Nov 2015 21:29:45 -0500 Message-ID: <1447554571.17039.30.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 00/60] 3.2.73-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: Sun, 15 Nov 2015 02:29:31 +0000 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-Qd1qdqRzjzfxnQYHfXSC" X-Mailer: Evolution 3.18.1-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.247 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 --=-Qd1qdqRzjzfxnQYHfXSC Content-Type: multipart/mixed; boundary="=-YBwKwwGORm/wNuO/EZAI" --=-YBwKwwGORm/wNuO/EZAI Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined diff for 3.2.73-rc1 relative to 3.2.72. Ben. --=20 Ben Hutchings Everything should be made as simple as possible, but not simpler. - Albert Einstei= n --=-YBwKwwGORm/wNuO/EZAI Content-Disposition: attachment; filename="linux-3.2.73-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.73-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggNzdhYzQxNy4uMmFhMzg5ZiAx MDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTEsNyArMSw3IEBACiBWRVJT SU9OID0gMwogUEFUQ0hMRVZFTCA9IDIKLVNVQkxFVkVMID0gNzIKLUVYVFJBVkVSU0lPTiA9CitT VUJMRVZFTCA9IDczCitFWFRSQVZFUlNJT04gPSAtcmMxCiBOQU1FID0gU2FiZXItdG9vdGhlZCBT cXVpcnJlbAogCiAjICpET0NVTUVOVEFUSU9OKgpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2luY2x1 ZGUvYXNtL2xpbmthZ2UuaCBiL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9saW5rYWdlLmgKaW5kZXgg NWE4MjJiYi4uMDY2ZTc0ZiAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL2xpbmth Z2UuaAorKysgYi9hcmNoL202OGsvaW5jbHVkZS9hc20vbGlua2FnZS5oCkBAIC00LDQgKzQsMzQg QEAKICNkZWZpbmUgX19BTElHTiAuYWxpZ24gNAogI2RlZmluZSBfX0FMSUdOX1NUUiAiLmFsaWdu IDQiCiAKKy8qCisgKiBNYWtlIHN1cmUgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgZG8gYW55dGhpbmcg c3R1cGlkIHdpdGggdGhlCisgKiBhcmd1bWVudHMgb24gdGhlIHN0YWNrIC0gdGhleSBhcmUgb3du ZWQgYnkgdGhlICpjYWxsZXIqLCBub3QKKyAqIHRoZSBjYWxsZWUuIFRoaXMganVzdCBmb29scyBn Y2MgaW50byBub3Qgc3BpbGxpbmcgaW50byB0aGVtLAorICogYW5kIGtlZXBzIGl0IGZyb20gZG9p bmcgdGFpbGNhbGwgcmVjdXJzaW9uIGFuZC9vciB1c2luZyB0aGUKKyAqIHN0YWNrIHNsb3RzIGZv ciB0ZW1wb3Jhcmllcywgc2luY2UgdGhleSBhcmUgbGl2ZSBhbmQgInVzZWQiCisgKiBhbGwgdGhl IHdheSB0byB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbi4KKyAqLworI2RlZmluZSBhc21saW5rYWdl X3Byb3RlY3QobiwgcmV0LCBhcmdzLi4uKSBcCisJX19hc21saW5rYWdlX3Byb3RlY3QjI24ocmV0 LCAjI2FyZ3MpCisjZGVmaW5lIF9fYXNtbGlua2FnZV9wcm90ZWN0X24ocmV0LCBhcmdzLi4uKSBc CisJX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiIDogIj1yIiAocmV0KSA6ICIwIiAocmV0KSwgIyNh cmdzKQorI2RlZmluZSBfX2FzbWxpbmthZ2VfcHJvdGVjdDAocmV0KSBcCisJX19hc21saW5rYWdl X3Byb3RlY3RfbihyZXQpCisjZGVmaW5lIF9fYXNtbGlua2FnZV9wcm90ZWN0MShyZXQsIGFyZzEp IFwKKwlfX2FzbWxpbmthZ2VfcHJvdGVjdF9uKHJldCwgIm0iIChhcmcxKSkKKyNkZWZpbmUgX19h c21saW5rYWdlX3Byb3RlY3QyKHJldCwgYXJnMSwgYXJnMikgXAorCV9fYXNtbGlua2FnZV9wcm90 ZWN0X24ocmV0LCAibSIgKGFyZzEpLCAibSIgKGFyZzIpKQorI2RlZmluZSBfX2FzbWxpbmthZ2Vf cHJvdGVjdDMocmV0LCBhcmcxLCBhcmcyLCBhcmczKSBcCisJX19hc21saW5rYWdlX3Byb3RlY3Rf bihyZXQsICJtIiAoYXJnMSksICJtIiAoYXJnMiksICJtIiAoYXJnMykpCisjZGVmaW5lIF9fYXNt bGlua2FnZV9wcm90ZWN0NChyZXQsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpIFwKKwlfX2FzbWxp bmthZ2VfcHJvdGVjdF9uKHJldCwgIm0iIChhcmcxKSwgIm0iIChhcmcyKSwgIm0iIChhcmczKSwg XAorCQkJICAgICAgIm0iIChhcmc0KSkKKyNkZWZpbmUgX19hc21saW5rYWdlX3Byb3RlY3Q1KHJl dCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSkgXAorCV9fYXNtbGlua2FnZV9wcm90ZWN0 X24ocmV0LCAibSIgKGFyZzEpLCAibSIgKGFyZzIpLCAibSIgKGFyZzMpLCBcCisJCQkgICAgICAi bSIgKGFyZzQpLCAibSIgKGFyZzUpKQorI2RlZmluZSBfX2FzbWxpbmthZ2VfcHJvdGVjdDYocmV0 LCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1LCBhcmc2KSBcCisJX19hc21saW5rYWdlX3By b3RlY3RfbihyZXQsICJtIiAoYXJnMSksICJtIiAoYXJnMiksICJtIiAoYXJnMyksIFwKKwkJCSAg ICAgICJtIiAoYXJnNCksICJtIiAoYXJnNSksICJtIiAoYXJnNikpCisKICNlbmRpZgpkaWZmIC0t Z2l0IGEvYXJjaC9taXBzL21tL2RtYS1kZWZhdWx0LmMgYi9hcmNoL21pcHMvbW0vZG1hLWRlZmF1 bHQuYwppbmRleCA0NjA4NDkxLi4yYmMyODAyIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbW0vZG1h LWRlZmF1bHQuYworKysgYi9hcmNoL21pcHMvbW0vZG1hLWRlZmF1bHQuYwpAQCAtNjcsNyArNjcs NyBAQCBzdGF0aWMgZ2ZwX3QgbWFzc2FnZV9nZnBfZmxhZ3MoY29uc3Qgc3RydWN0IGRldmljZSAq ZGV2LCBnZnBfdCBnZnApCiAJZWxzZQogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfWk9ORV9E TUEpICYmICFkZWZpbmVkKENPTkZJR19aT05FX0RNQTMyKQotCSAgICAgaWYgKGRldi0+Y29oZXJl bnRfZG1hX21hc2sgPCBETUFfQklUX01BU0soNjQpKQorCSAgICAgaWYgKGRldi0+Y29oZXJlbnRf ZG1hX21hc2sgPCBETUFfQklUX01BU0soc2l6ZW9mKHBoeXNfYWRkcl90KSAqIDgpKQogCQlkbWFf ZmxhZyA9IF9fR0ZQX0RNQTsKIAllbHNlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJw Yy9rZXJuZWwvcnRhcy5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9ydGFzLmMKaW5kZXggNDM0YTE4 MC4uMTdkYmQzNCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9ydGFzLmMKKysrIGIv YXJjaC9wb3dlcnBjL2tlcm5lbC9ydGFzLmMKQEAgLTk5Miw2ICs5OTIsOSBAQCBhc21saW5rYWdl IGludCBwcGNfcnRhcyhzdHJ1Y3QgcnRhc19hcmdzIF9fdXNlciAqdWFyZ3MpCiAJaWYgKCFjYXBh YmxlKENBUF9TWVNfQURNSU4pKQogCQlyZXR1cm4gLUVQRVJNOwogCisJaWYgKCFydGFzLmVudHJ5 KQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCWlmIChjb3B5X2Zyb21fdXNlcigmYXJncywgdWFyZ3Ms IDMgKiBzaXplb2YodTMyKSkgIT0gMCkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAKZGlmZiAtLWdpdCBh L2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9r dm1faG9zdC5oCmluZGV4IDkzY2U3ZTQuLjUxZjg1ZmMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2lu Y2x1ZGUvYXNtL2t2bV9ob3N0LmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3Qu aApAQCAtODMsNiArODMsNyBAQAogI2RlZmluZSBHUF9WRUNUT1IgMTMKICNkZWZpbmUgUEZfVkVD VE9SIDE0CiAjZGVmaW5lIE1GX1ZFQ1RPUiAxNgorI2RlZmluZSBBQ19WRUNUT1IgMTcKICNkZWZp bmUgTUNfVkVDVE9SIDE4CiAKICNkZWZpbmUgU0VMRUNUT1JfVElfTUFTSyAoMSA8PCAyKQpkaWZm IC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9w cm9jZXNzXzY0LmMKaW5kZXggN2U5NGFiZC4uYWFhYjMyZTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2 L2tlcm5lbC9wcm9jZXNzXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfNjQuYwpA QCAtNTU1LDI3ICs1NTUsNTkgQEAgdm9pZCBzZXRfcGVyc29uYWxpdHlfaWEzMih2b2lkKQogCWN1 cnJlbnRfdGhyZWFkX2luZm8oKS0+c3RhdHVzIHw9IFRTX0NPTVBBVDsKIH0KIAorLyoKKyAqIENh bGxlZCBmcm9tIGZzL3Byb2Mgd2l0aCBhIHJlZmVyZW5jZSBvbiBAcCB0byBmaW5kIHRoZSBmdW5j dGlvbgorICogd2hpY2ggY2FsbGVkIGludG8gc2NoZWR1bGUoKS4gVGhpcyBuZWVkcyB0byBiZSBk b25lIGNhcmVmdWxseQorICogYmVjYXVzZSB0aGUgdGFzayBtaWdodCB3YWtlIHVwIGFuZCB3ZSBt aWdodCBsb29rIGF0IGEgc3RhY2sKKyAqIGNoYW5naW5nIHVuZGVyIHVzLgorICovCiB1bnNpZ25l ZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCiB7Ci0JdW5zaWduZWQgbG9u ZyBzdGFjazsKLQl1NjQgZnAsIGlwOworCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGJvdHRvbSwgdG9w LCBzcCwgZnAsIGlwOwogCWludCBjb3VudCA9IDA7CiAKIAlpZiAoIXAgfHwgcCA9PSBjdXJyZW50 IHx8IHAtPnN0YXRlID09IFRBU0tfUlVOTklORykKIAkJcmV0dXJuIDA7Ci0Jc3RhY2sgPSAodW5z aWduZWQgbG9uZyl0YXNrX3N0YWNrX3BhZ2UocCk7Ci0JaWYgKHAtPnRocmVhZC5zcCA8IHN0YWNr IHx8IHAtPnRocmVhZC5zcCA+PSBzdGFjaytUSFJFQURfU0laRSkKKworCXN0YXJ0ID0gKHVuc2ln bmVkIGxvbmcpdGFza19zdGFja19wYWdlKHApOworCWlmICghc3RhcnQpCisJCXJldHVybiAwOwor CisJLyoKKwkgKiBMYXlvdXQgb2YgdGhlIHN0YWNrIHBhZ2U6CisJICoKKwkgKiAtLS0tLS0tLS0t LSB0b3BtYXggPSBzdGFydCArIFRIUkVBRF9TSVpFIC0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpCisJ ICogUEFERElORworCSAqIC0tLS0tLS0tLS0tIHRvcCA9IHRvcG1heCAtIFRPUF9PRl9LRVJORUxf U1RBQ0tfUEFERElORworCSAqIHN0YWNrCisJICogLS0tLS0tLS0tLS0gYm90dG9tID0gc3RhcnQg KyBzaXplb2YodGhyZWFkX2luZm8pCisJICogdGhyZWFkX2luZm8KKwkgKiAtLS0tLS0tLS0tLSBz dGFydAorCSAqCisJICogVGhlIHRhc2tzIHN0YWNrIHBvaW50ZXIgcG9pbnRzIGF0IHRoZSBsb2Nh dGlvbiB3aGVyZSB0aGUKKwkgKiBmcmFtZXBvaW50ZXIgaXMgc3RvcmVkLiBUaGUgZGF0YSBvbiB0 aGUgc3RhY2sgaXM6CisJICogLi4uIElQIEZQIC4uLiBJUCBGUAorCSAqCisJICogV2UgbmVlZCB0 byByZWFkIEZQIGFuZCBJUCwgc28gd2UgbmVlZCB0byBhZGp1c3QgdGhlIHVwcGVyCisJICogYm91 bmQgYnkgYW5vdGhlciB1bnNpZ25lZCBsb25nLgorCSAqLworCXRvcCA9IHN0YXJ0ICsgVEhSRUFE X1NJWkU7CisJdG9wIC09IDIgKiBzaXplb2YodW5zaWduZWQgbG9uZyk7CisJYm90dG9tID0gc3Rh cnQgKyBzaXplb2Yoc3RydWN0IHRocmVhZF9pbmZvKTsKKworCXNwID0gQUNDRVNTX09OQ0UocC0+ dGhyZWFkLnNwKTsKKwlpZiAoc3AgPCBib3R0b20gfHwgc3AgPiB0b3ApCiAJCXJldHVybiAwOwot CWZwID0gKih1NjQgKikocC0+dGhyZWFkLnNwKTsKKworCWZwID0gQUNDRVNTX09OQ0UoKih1bnNp Z25lZCBsb25nICopc3ApOwogCWRvIHsKLQkJaWYgKGZwIDwgKHVuc2lnbmVkIGxvbmcpc3RhY2sg fHwKLQkJICAgIGZwID49ICh1bnNpZ25lZCBsb25nKXN0YWNrK1RIUkVBRF9TSVpFKQorCQlpZiAo ZnAgPCBib3R0b20gfHwgZnAgPiB0b3ApCiAJCQlyZXR1cm4gMDsKLQkJaXAgPSAqKHU2NCAqKShm cCs4KTsKKwkJaXAgPSBBQ0NFU1NfT05DRSgqKHVuc2lnbmVkIGxvbmcgKikoZnAgKyBzaXplb2Yo dW5zaWduZWQgbG9uZykpKTsKIAkJaWYgKCFpbl9zY2hlZF9mdW5jdGlvbnMoaXApKQogCQkJcmV0 dXJuIGlwOwotCQlmcCA9ICoodTY0ICopZnA7Ci0JfSB3aGlsZSAoY291bnQrKyA8IDE2KTsKKwkJ ZnAgPSBBQ0NFU1NfT05DRSgqKHVuc2lnbmVkIGxvbmcgKilmcCk7CisJfSB3aGlsZSAoY291bnQr KyA8IDE2ICYmIHAtPnN0YXRlICE9IFRBU0tfUlVOTklORyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9tbXUuYyBiL2FyY2gveDg2L2t2bS9tbXUuYwppbmRleCBj YWM3YjJiLi40YTk0OWM3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vbW11LmMKKysrIGIvYXJj aC94ODYva3ZtL21tdS5jCkBAIC0zMjYsNiArMzI2LDEyIEBAIHN0YXRpYyB1NjQgX19nZXRfc3B0 ZV9sb2NrbGVzcyh1NjQgKnNwdGVwKQogewogCXJldHVybiBBQ0NFU1NfT05DRSgqc3B0ZXApOwog fQorCitzdGF0aWMgYm9vbCBfX2NoZWNrX2RpcmVjdF9zcHRlX21taW9fcGYodTY0IHNwdGUpCit7 CisJLyogSXQgaXMgdmFsaWQgaWYgdGhlIHNwdGUgaXMgemFwcGVkLiAqLworCXJldHVybiBzcHRl ID09IDB1bGw7Cit9CiAjZWxzZQogdW5pb24gc3BsaXRfc3B0ZSB7CiAJc3RydWN0IHsKQEAgLTQz MCw2ICs0MzYsMjMgQEAgcmV0cnk6CiAKIAlyZXR1cm4gc3B0ZS5zcHRlOwogfQorCitzdGF0aWMg Ym9vbCBfX2NoZWNrX2RpcmVjdF9zcHRlX21taW9fcGYodTY0IHNwdGUpCit7CisJdW5pb24gc3Bs aXRfc3B0ZSBzc3B0ZSA9ICh1bmlvbiBzcGxpdF9zcHRlKXNwdGU7CisJdTMyIGhpZ2hfbW1pb19t YXNrID0gc2hhZG93X21taW9fbWFzayA+PiAzMjsKKworCS8qIEl0IGlzIHZhbGlkIGlmIHRoZSBz cHRlIGlzIHphcHBlZC4gKi8KKwlpZiAoc3B0ZSA9PSAwdWxsKQorCQlyZXR1cm4gdHJ1ZTsKKwor CS8qIEl0IGlzIHZhbGlkIGlmIHRoZSBzcHRlIGlzIGJlaW5nIHphcHBlZC4gKi8KKwlpZiAoc3Nw dGUuc3B0ZV9sb3cgPT0gMHVsbCAmJgorCSAgICAoc3NwdGUuc3B0ZV9oaWdoICYgaGlnaF9tbWlv X21hc2spID09IGhpZ2hfbW1pb19tYXNrKQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBmYWxz ZTsKK30KICNlbmRpZgogCiBzdGF0aWMgYm9vbCBzcHRlX2hhc192b2xhdGlsZV9iaXRzKHU2NCBz cHRlKQpAQCAtMjg3Miw2ICsyODk1LDIxIEBAIHN0YXRpYyBib29sIHF1aWNrbHlfY2hlY2tfbW1p b19wZihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBhZGRyLCBib29sIGRpcmVjdCkKIAlyZXR1 cm4gdmNwdV9tYXRjaF9tbWlvX2d2YSh2Y3B1LCBhZGRyKTsKIH0KIAorCisvKgorICogT24gZGly ZWN0IGhvc3RzLCB0aGUgbGFzdCBzcHRlIGlzIG9ubHkgYWxsb3dzIHR3byBzdGF0ZXMKKyAqIGZv ciBtbWlvIHBhZ2UgZmF1bHQ6CisgKiAgIC0gSXQgaXMgdGhlIG1taW8gc3B0ZQorICogICAtIEl0 IGlzIHphcHBlZCBvciBpdCBpcyBiZWluZyB6YXBwZWQuCisgKgorICogVGhpcyBmdW5jdGlvbiBj b21wbGV0ZWx5IGNoZWNrcyB0aGUgc3B0ZSB3aGVuIHRoZSBsYXN0IHNwdGUKKyAqIGlzIG5vdCB0 aGUgbW1pbyBzcHRlLgorICovCitzdGF0aWMgYm9vbCBjaGVja19kaXJlY3Rfc3B0ZV9tbWlvX3Bm KHU2NCBzcHRlKQoreworCXJldHVybiBfX2NoZWNrX2RpcmVjdF9zcHRlX21taW9fcGYoc3B0ZSk7 Cit9CisKIHN0YXRpYyB1NjQgd2Fsa19zaGFkb3dfcGFnZV9nZXRfbW1pb19zcHRlKHN0cnVjdCBr dm1fdmNwdSAqdmNwdSwgdTY0IGFkZHIpCiB7CiAJc3RydWN0IGt2bV9zaGFkb3dfd2Fsa19pdGVy YXRvciBpdGVyYXRvcjsKQEAgLTI5MTMsNiArMjk1MSwxMyBAQCBpbnQgaGFuZGxlX21taW9fcGFn ZV9mYXVsdF9jb21tb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgYWRkciwgYm9vbCBkaXJl Y3QpCiAJfQogCiAJLyoKKwkgKiBJdCdzIG9rIGlmIHRoZSBndmEgaXMgcmVtYXBwZWQgYnkgb3Ro ZXIgY3B1cyBvbiBzaGFkb3cgZ3Vlc3QsCisJICogaXQncyBhIEJVRyBpZiB0aGUgZ2ZuIGlzIG5v dCBhIG1taW8gcGFnZS4KKwkgKi8KKwlpZiAoZGlyZWN0ICYmICFjaGVja19kaXJlY3Rfc3B0ZV9t bWlvX3BmKHNwdGUpKQorCQlyZXR1cm4gLTE7CisKKwkvKgogCSAqIElmIHRoZSBwYWdlIHRhYmxl IGlzIHphcHBlZCBieSBvdGhlciBjcHVzLCBsZXQgQ1BVIGZhdWx0IGFnYWluIG9uCiAJICogdGhl IGFkZHJlc3MuCiAJICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vc3ZtLmMgYi9hcmNoL3g4 Ni9rdm0vc3ZtLmMKaW5kZXggN2EyZDlkNi4uMGRlNjc4MyAxMDA2NDQKLS0tIGEvYXJjaC94ODYv a3ZtL3N2bS5jCisrKyBiL2FyY2gveDg2L2t2bS9zdm0uYwpAQCAtMTAxNCw2ICsxMDE0LDcgQEAg c3RhdGljIHZvaWQgaW5pdF92bWNiKHN0cnVjdCB2Y3B1X3N2bSAqc3ZtKQogCXNldF9leGNlcHRp b25faW50ZXJjZXB0KHN2bSwgUEZfVkVDVE9SKTsKIAlzZXRfZXhjZXB0aW9uX2ludGVyY2VwdChz dm0sIFVEX1ZFQ1RPUik7CiAJc2V0X2V4Y2VwdGlvbl9pbnRlcmNlcHQoc3ZtLCBNQ19WRUNUT1Ip OworCXNldF9leGNlcHRpb25faW50ZXJjZXB0KHN2bSwgQUNfVkVDVE9SKTsKIAogCXNldF9pbnRl cmNlcHQoc3ZtLCBJTlRFUkNFUFRfSU5UUik7CiAJc2V0X2ludGVyY2VwdChzdm0sIElOVEVSQ0VQ VF9OTUkpOwpAQCAtMTY4OSw2ICsxNjkwLDEyIEBAIHN0YXRpYyBpbnQgdWRfaW50ZXJjZXB0aW9u KHN0cnVjdCB2Y3B1X3N2bSAqc3ZtKQogCXJldHVybiAxOwogfQogCitzdGF0aWMgaW50IGFjX2lu dGVyY2VwdGlvbihzdHJ1Y3QgdmNwdV9zdm0gKnN2bSkKK3sKKwlrdm1fcXVldWVfZXhjZXB0aW9u X2UoJnN2bS0+dmNwdSwgQUNfVkVDVE9SLCAwKTsKKwlyZXR1cm4gMTsKK30KKwogc3RhdGljIHZv aWQgc3ZtX2ZwdV9hY3RpdmF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJc3RydWN0IHZj cHVfc3ZtICpzdm0gPSB0b19zdm0odmNwdSk7CkBAIC0zMTg4LDYgKzMxOTUsNyBAQCBzdGF0aWMg aW50ICgqc3ZtX2V4aXRfaGFuZGxlcnNbXSkoc3RydWN0IHZjcHVfc3ZtICpzdm0pID0gewogCVtT Vk1fRVhJVF9FWENQX0JBU0UgKyBQRl9WRUNUT1JdCT0gcGZfaW50ZXJjZXB0aW9uLAogCVtTVk1f RVhJVF9FWENQX0JBU0UgKyBOTV9WRUNUT1JdCT0gbm1faW50ZXJjZXB0aW9uLAogCVtTVk1fRVhJ VF9FWENQX0JBU0UgKyBNQ19WRUNUT1JdCT0gbWNfaW50ZXJjZXB0aW9uLAorCVtTVk1fRVhJVF9F WENQX0JBU0UgKyBBQ19WRUNUT1JdCT0gYWNfaW50ZXJjZXB0aW9uLAogCVtTVk1fRVhJVF9JTlRS XQkJCQk9IGludHJfaW50ZXJjZXB0aW9uLAogCVtTVk1fRVhJVF9OTUldCQkJCT0gbm1pX2ludGVy Y2VwdGlvbiwKIAlbU1ZNX0VYSVRfU01JXQkJCQk9IG5vcF9vbl9pbnRlcmNlcHRpb24sCmRpZmYg LS1naXQgYS9hcmNoL3g4Ni9rdm0vdHJhY2UuaCBiL2FyY2gveDg2L2t2bS90cmFjZS5oCmluZGV4 IDkxMWQyNjQuLjcyMTY5MTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS90cmFjZS5oCisrKyBi L2FyY2gveDg2L2t2bS90cmFjZS5oCkBAIC0yNDQsNiArMjQ0LDcgQEAgVFJBQ0VfRVZFTlQoa3Zt X2FwaWMsCiAJeyBTVk1fRVhJVF9FWENQX0JBU0UgKyBVRF9WRUNUT1IsCSJVRCBleGNwIiB9LCBc CiAJeyBTVk1fRVhJVF9FWENQX0JBU0UgKyBQRl9WRUNUT1IsCSJQRiBleGNwIiB9LCBcCiAJeyBT Vk1fRVhJVF9FWENQX0JBU0UgKyBOTV9WRUNUT1IsCSJOTSBleGNwIiB9LCBcCisJeyBTVk1fRVhJ VF9FWENQX0JBU0UgKyBBQ19WRUNUT1IsICAgICAgICJBQyBleGNwIiB9LCBcCiAJeyBTVk1fRVhJ VF9FWENQX0JBU0UgKyBNQ19WRUNUT1IsCSJNQyBleGNwIiB9LCBcCiAJeyBTVk1fRVhJVF9JTlRS LAkJCSJpbnRlcnJ1cHQiIH0sIFwKIAl7IFNWTV9FWElUX05NSSwJCQkJIm5taSIgfSwgXApkaWZm IC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC5jCmluZGV4IDQy MTk1OGYuLmZiOGMyM2QgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXguYworKysgYi9hcmNo L3g4Ni9rdm0vdm14LmMKQEAgLTExNzEsNyArMTE3MSw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9l eGNlcHRpb25fYml0bWFwKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAl1MzIgZWI7CiAKIAllYiA9 ICgxdSA8PCBQRl9WRUNUT1IpIHwgKDF1IDw8IFVEX1ZFQ1RPUikgfCAoMXUgPDwgTUNfVkVDVE9S KSB8Ci0JICAgICAoMXUgPDwgTk1fVkVDVE9SKSB8ICgxdSA8PCBEQl9WRUNUT1IpOworCSAgICAg KDF1IDw8IE5NX1ZFQ1RPUikgfCAoMXUgPDwgREJfVkVDVE9SKSB8ICgxdSA8PCBBQ19WRUNUT1Ip OwogCWlmICgodmNwdS0+Z3Vlc3RfZGVidWcgJgogCSAgICAgKEtWTV9HVUVTVERCR19FTkFCTEUg fCBLVk1fR1VFU1REQkdfVVNFX1NXX0JQKSkgPT0KIAkgICAgKEtWTV9HVUVTVERCR19FTkFCTEUg fCBLVk1fR1VFU1REQkdfVVNFX1NXX0JQKSkKQEAgLTQyNjYsNiArNDI2Niw5IEBAIHN0YXRpYyBp bnQgaGFuZGxlX2V4Y2VwdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAKIAlleF9ubyA9IGlu dHJfaW5mbyAmIElOVFJfSU5GT19WRUNUT1JfTUFTSzsKIAlzd2l0Y2ggKGV4X25vKSB7CisJY2Fz ZSBBQ19WRUNUT1I6CisJCWt2bV9xdWV1ZV9leGNlcHRpb25fZSh2Y3B1LCBBQ19WRUNUT1IsIGVy cm9yX2NvZGUpOworCQlyZXR1cm4gMTsKIAljYXNlIERCX1ZFQ1RPUjoKIAkJZHI2ID0gdm1jc19y ZWFkbChFWElUX1FVQUxJRklDQVRJT04pOwogCQlpZiAoISh2Y3B1LT5ndWVzdF9kZWJ1ZyAmCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vc2V0dXAuYyBiL2FyY2gveDg2L3hlbi9zZXR1cC5jCmlu ZGV4IDRkNTRiMzguLjNjN2I3MGQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9zZXR1cC5jCisr KyBiL2FyY2gveDg2L3hlbi9zZXR1cC5jCkBAIC0yNzMsNyArMjczLDcgQEAgY2hhciAqIF9faW5p dCB4ZW5fbWVtb3J5X3NldHVwKHZvaWQpCiAJCXhlbl9pZ25vcmVfdW51c2FibGUobWFwLCBtZW1t YXAubnJfZW50cmllcyk7CiAKIAkvKiBNYWtlIHN1cmUgdGhlIFhlbi1zdXBwbGllZCBtZW1vcnkg bWFwIGlzIHdlbGwtb3JkZXJlZC4gKi8KLQlzYW5pdGl6ZV9lODIwX21hcChtYXAsIG1lbW1hcC5u cl9lbnRyaWVzLCAmbWVtbWFwLm5yX2VudHJpZXMpOworCXNhbml0aXplX2U4MjBfbWFwKG1hcCwg QVJSQVlfU0laRShtYXApLCAmbWVtbWFwLm5yX2VudHJpZXMpOwogCiAJbWF4X3BhZ2VzID0geGVu X2dldF9tYXhfcGFnZXMoKTsKIAlpZiAobWF4X3BhZ2VzID4gbWF4X3BmbikKZGlmZiAtLWdpdCBh L2NyeXB0by9hYmxrY2lwaGVyLmMgYi9jcnlwdG8vYWJsa2NpcGhlci5jCmluZGV4IDlmNzMwMzcu LmQ1M2EzMGIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hYmxrY2lwaGVyLmMKKysrIGIvY3J5cHRvL2Fi bGtjaXBoZXIuYwpAQCAtNzAwLDcgKzcwMCw3IEBAIHN0cnVjdCBjcnlwdG9fYWJsa2NpcGhlciAq Y3J5cHRvX2FsbG9jX2FibGtjaXBoZXIoY29uc3QgY2hhciAqYWxnX25hbWUsCiBlcnI6CiAJCWlm IChlcnIgIT0gLUVBR0FJTikKIAkJCWJyZWFrOwotCQlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVu dCkpIHsKKwkJaWYgKGZhdGFsX3NpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7CiAJCQllcnIgPSAt RUlOVFI7CiAJCQlicmVhazsKIAkJfQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FoYXNoLmMgYi9jcnlw dG8vYWhhc2guYwppbmRleCA3ZmUxNzUyLi45NmM4ZTdjIDEwMDY0NAotLS0gYS9jcnlwdG8vYWhh c2guYworKysgYi9jcnlwdG8vYWhhc2guYwpAQCAtNDYyLDcgKzQ2Miw4IEBAIHN0YXRpYyBpbnQg YWhhc2hfcHJlcGFyZV9hbGcoc3RydWN0IGFoYXNoX2FsZyAqYWxnKQogCXN0cnVjdCBjcnlwdG9f YWxnICpiYXNlID0gJmFsZy0+aGFsZy5iYXNlOwogCiAJaWYgKGFsZy0+aGFsZy5kaWdlc3RzaXpl ID4gUEFHRV9TSVpFIC8gOCB8fAotCSAgICBhbGctPmhhbGcuc3RhdGVzaXplID4gUEFHRV9TSVpF IC8gOCkKKwkgICAgYWxnLT5oYWxnLnN0YXRlc2l6ZSA+IFBBR0VfU0laRSAvIDggfHwKKwkgICAg YWxnLT5oYWxnLnN0YXRlc2l6ZSA9PSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWJhc2UtPmNy YV90eXBlID0gJmNyeXB0b19haGFzaF90eXBlOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FsZ2FwaS5j IGIvY3J5cHRvL2FsZ2FwaS5jCmluZGV4IDNiOWVmOTIuLjU1OTNhZmQgMTAwNjQ0Ci0tLSBhL2Ny eXB0by9hbGdhcGkuYworKysgYi9jcnlwdG8vYWxnYXBpLmMKQEAgLTM0Miw3ICszNDIsNyBAQCBz dGF0aWMgdm9pZCBjcnlwdG9fd2FpdF9mb3JfdGVzdChzdHJ1Y3QgY3J5cHRvX2xhcnZhbCAqbGFy dmFsKQogCQljcnlwdG9fYWxnX3Rlc3RlZChsYXJ2YWwtPmFsZy5jcmFfZHJpdmVyX25hbWUsIDAp OwogCX0KIAotCWVyciA9IHdhaXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZSgmbGFydmFs LT5jb21wbGV0aW9uKTsKKwllcnIgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2tpbGxhYmxlKCZsYXJ2 YWwtPmNvbXBsZXRpb24pOwogCVdBUk5fT04oZXJyKTsKIAogb3V0OgpkaWZmIC0tZ2l0IGEvY3J5 cHRvL2FwaS5jIGIvY3J5cHRvL2FwaS5jCmluZGV4IGFjODA3OTQuLmE1NTQ3ZmIgMTAwNjQ0Ci0t LSBhL2NyeXB0by9hcGkuYworKysgYi9jcnlwdG8vYXBpLmMKQEAgLTE3OCw3ICsxNzgsNyBAQCBz dGF0aWMgc3RydWN0IGNyeXB0b19hbGcgKmNyeXB0b19sYXJ2YWxfd2FpdChzdHJ1Y3QgY3J5cHRv X2FsZyAqYWxnKQogCXN0cnVjdCBjcnlwdG9fbGFydmFsICpsYXJ2YWwgPSAodm9pZCAqKWFsZzsK IAlsb25nIHRpbWVvdXQ7CiAKLQl0aW1lb3V0ID0gd2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1 cHRpYmxlX3RpbWVvdXQoCisJdGltZW91dCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fa2lsbGFibGVf dGltZW91dCgKIAkJJmxhcnZhbC0+Y29tcGxldGlvbiwgNjAgKiBIWik7CiAKIAlhbGcgPSBsYXJ2 YWwtPmFkdWx0OwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHN0cnVjdCBjcnlwdG9fdGZtICpjcnlwdG9f YWxsb2NfYmFzZShjb25zdCBjaGFyICphbGdfbmFtZSwgdTMyIHR5cGUsIHUzMiBtYXNrKQogZXJy OgogCQlpZiAoZXJyICE9IC1FQUdBSU4pCiAJCQlicmVhazsKLQkJaWYgKHNpZ25hbF9wZW5kaW5n KGN1cnJlbnQpKSB7CisJCWlmIChmYXRhbF9zaWduYWxfcGVuZGluZyhjdXJyZW50KSkgewogCQkJ ZXJyID0gLUVJTlRSOwogCQkJYnJlYWs7CiAJCX0KQEAgLTU1OCw3ICs1NTgsNyBAQCB2b2lkICpj cnlwdG9fYWxsb2NfdGZtKGNvbnN0IGNoYXIgKmFsZ19uYW1lLAogZXJyOgogCQlpZiAoZXJyICE9 IC1FQUdBSU4pCiAJCQlicmVhazsKLQkJaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7CisJ CWlmIChmYXRhbF9zaWduYWxfcGVuZGluZyhjdXJyZW50KSkgewogCQkJZXJyID0gLUVJTlRSOwog CQkJYnJlYWs7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9yZWdtYXAvcmVnbWFwLWRl YnVnZnMuYyBiL2RyaXZlcnMvYmFzZS9yZWdtYXAvcmVnbWFwLWRlYnVnZnMuYwppbmRleCBjZDI1 MmUwLi5hNzE5N2U0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2UvcmVnbWFwL3JlZ21hcC1kZWJ1 Z2ZzLmMKKysrIGIvZHJpdmVycy9iYXNlL3JlZ21hcC9yZWdtYXAtZGVidWdmcy5jCkBAIC0yMyw4 ICsyMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpyZWdtYXBfZGVidWdmc19yb290OwogLyog Q2FsY3VsYXRlIHRoZSBsZW5ndGggb2YgYSBmaXhlZCBmb3JtYXQgICovCiBzdGF0aWMgc2l6ZV90 IHJlZ21hcF9jYWxjX3JlZ19sZW4oaW50IG1heF92YWwsIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zl9z aXplKQogewotCXNucHJpbnRmKGJ1ZiwgYnVmX3NpemUsICIleCIsIG1heF92YWwpOwotCXJldHVy biBzdHJsZW4oYnVmKTsKKwlyZXR1cm4gc25wcmludGYoTlVMTCwgMCwgIiV4IiwgbWF4X3ZhbCk7 CiB9CiAKIHN0YXRpYyBpbnQgcmVnbWFwX29wZW5fZmlsZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBz dHJ1Y3QgZmlsZSAqZmlsZSkKQEAgLTE0MCw3ICsxMzksNyBAQCBzdGF0aWMgc3NpemVfdCByZWdt YXBfYWNjZXNzX3JlYWRfZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJLyogSWYgd2UncmUgaW4g dGhlIHJlZ2lvbiB0aGUgdXNlciBpcyB0cnlpbmcgdG8gcmVhZCAqLwogCQlpZiAocCA+PSAqcHBv cykgewogCQkJLyogLi4uYnV0IG5vdCBiZXlvbmQgaXQgKi8KLQkJCWlmIChidWZfcG9zID49IGNv dW50IC0gMSAtIHRvdF9sZW4pCisJCQlpZiAoYnVmX3BvcyArIHRvdF9sZW4gKyAxID49IGNvdW50 KQogCQkJCWJyZWFrOwogCiAJCQkvKiBGb3JtYXQgdGhlIHJlZ2lzdGVyICovCmRpZmYgLS1naXQg YS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJv bnQuYwppbmRleCA5NmI4Y2I3Li44NTdmMzYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3hl bi1ibGtmcm9udC5jCisrKyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMKQEAgLTEyOTIs NyArMTI5Miw4IEBAIHN0YXRpYyB2b2lkIGJsa2JhY2tfY2hhbmdlZChzdHJ1Y3QgeGVuYnVzX2Rl dmljZSAqZGV2LAogCQkJYnJlYWs7CiAJCS8qIE1pc3NlZCB0aGUgYmFja2VuZCdzIENsb3Npbmcg c3RhdGUgLS0gZmFsbHRocm91Z2ggKi8KIAljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoKLQkJYmxr ZnJvbnRfY2xvc2luZyhpbmZvKTsKKwkJaWYgKGluZm8pCisJCQlibGtmcm9udF9jbG9zaW5nKGlu Zm8pOwogCQlicmVhazsKIAl9CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9nZW0uYwpp bmRleCBiZDBiMWZjLi5mYzY0YWQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZ2Vt LmMKQEAgLTE3MiwxMSArMTcyLDEyIEBAIG5vdXZlYXVfZ2VtX2luZm8oc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXYsIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtLAogCXN0cnVjdCBub3V2ZWF1 X2JvICpudmJvID0gbm91dmVhdV9nZW1fb2JqZWN0KGdlbSk7CiAJc3RydWN0IG5vdXZlYXVfdm1h ICp2bWE7CiAKLQlpZiAobnZiby0+Ym8ubWVtLm1lbV90eXBlID09IFRUTV9QTF9UVCkKKwlpZiAo aXNfcG93ZXJfb2ZfMihudmJvLT52YWxpZF9kb21haW5zKSkKKwkJcmVwLT5kb21haW4gPSBudmJv LT52YWxpZF9kb21haW5zOworCWVsc2UgaWYgKG52Ym8tPmJvLm1lbS5tZW1fdHlwZSA9PSBUVE1f UExfVFQpCiAJCXJlcC0+ZG9tYWluID0gTk9VVkVBVV9HRU1fRE9NQUlOX0dBUlQ7CiAJZWxzZQog CQlyZXAtPmRvbWFpbiA9IE5PVVZFQVVfR0VNX0RPTUFJTl9WUkFNOwotCiAJcmVwLT5vZmZzZXQg PSBudmJvLT5iby5vZmZzZXQ7CiAJaWYgKGZwcml2LT52bSkgewogCQl2bWEgPSBub3V2ZWF1X2Jv X3ZtYV9maW5kKG52Ym8sIGZwcml2LT52bSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJh bmQvY29yZS9jbS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY20uYwppbmRleCA4YjcyZjM5 Li43MjJhODkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbS5jCisrKyBi L2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtLmMKQEAgLTg1Niw2ICs4NTYsMTEgQEAgcmV0ZXN0 OgogCWNhc2UgSUJfQ01fU0lEUl9SRVFfUkNWRDoKIAkJc3Bpbl91bmxvY2tfaXJxKCZjbV9pZF9w cml2LT5sb2NrKTsKIAkJY21fcmVqZWN0X3NpZHJfcmVxKGNtX2lkX3ByaXYsIElCX1NJRFJfUkVK RUNUKTsKKwkJc3Bpbl9sb2NrX2lycSgmY20ubG9jayk7CisJCWlmICghUkJfRU1QVFlfTk9ERSgm Y21faWRfcHJpdi0+c2lkcl9pZF9ub2RlKSkKKwkJCXJiX2VyYXNlKCZjbV9pZF9wcml2LT5zaWRy X2lkX25vZGUsCisJCQkJICZjbS5yZW1vdGVfc2lkcl90YWJsZSk7CisJCXNwaW5fdW5sb2NrX2ly cSgmY20ubG9jayk7CiAJCWJyZWFrOwogCWNhc2UgSUJfQ01fUkVRX1NFTlQ6CiAJCWliX2NhbmNl bF9tYWQoY21faWRfcHJpdi0+YXYucG9ydC0+bWFkX2FnZW50LCBjbV9pZF9wcml2LT5tc2cpOwpA QCAtMzA5Miw3ICszMDk3LDEwIEBAIGludCBpYl9zZW5kX2NtX3NpZHJfcmVwKHN0cnVjdCBpYl9j bV9pZCAqY21faWQsCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY21faWRfcHJpdi0+bG9jaywg ZmxhZ3MpOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmNtLmxvY2ssIGZsYWdzKTsKLQlyYl9lcmFz ZSgmY21faWRfcHJpdi0+c2lkcl9pZF9ub2RlLCAmY20ucmVtb3RlX3NpZHJfdGFibGUpOworCWlm ICghUkJfRU1QVFlfTk9ERSgmY21faWRfcHJpdi0+c2lkcl9pZF9ub2RlKSkgeworCQlyYl9lcmFz ZSgmY21faWRfcHJpdi0+c2lkcl9pZF9ub2RlLCAmY20ucmVtb3RlX3NpZHJfdGFibGUpOworCQlS Ql9DTEVBUl9OT0RFKCZjbV9pZF9wcml2LT5zaWRyX2lkX25vZGUpOworCX0KIAlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZjbS5sb2NrLCBmbGFncyk7CiAJcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYyBiL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUu YwppbmRleCBkM2RhMTY2Li43MTBmYzE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lvbW11L2ludGVs LWlvbW11LmMKKysrIGIvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jCkBAIC0xNzk4LDEzICsx Nzk4LDIwIEBAIHN0YXRpYyBpbnQgX19kb21haW5fbWFwcGluZyhzdHJ1Y3QgZG1hcl9kb21haW4g KmRvbWFpbiwgdW5zaWduZWQgbG9uZyBpb3ZfcGZuLAogCQkJCXJldHVybiAtRU5PTUVNOwogCQkJ LyogSXQgaXMgbGFyZ2UgcGFnZSovCiAJCQlpZiAobGFyZ2VwYWdlX2x2bCA+IDEpIHsKKwkJCQl1 bnNpZ25lZCBsb25nIG5yX3N1cGVycGFnZXMsIGVuZF9wZm4sIGx2bF9wYWdlczsKKwogCQkJCXB0 ZXZhbCB8PSBETUFfUFRFX0xBUkdFX1BBR0U7Ci0JCQkJLyogRW5zdXJlIHRoYXQgb2xkIHNtYWxs IHBhZ2UgdGFibGVzIGFyZSByZW1vdmVkIHRvIG1ha2Ugcm9vbQotCQkJCSAgIGZvciBzdXBlcnBh Z2UsIGlmIHRoZXkgZXhpc3QuICovCi0JCQkJZG1hX3B0ZV9jbGVhcl9yYW5nZShkb21haW4sIGlv dl9wZm4sCi0JCQkJCQkgICAgaW92X3BmbiArIGx2bF90b19ucl9wYWdlcyhsYXJnZXBhZ2VfbHZs KSAtIDEpOwotCQkJCWRtYV9wdGVfZnJlZV9wYWdldGFibGUoZG9tYWluLCBpb3ZfcGZuLAotCQkJ CQkJICAgICAgIGlvdl9wZm4gKyBsdmxfdG9fbnJfcGFnZXMobGFyZ2VwYWdlX2x2bCkgLSAxKTsK KwkJCQlsdmxfcGFnZXMgPSBsdmxfdG9fbnJfcGFnZXMobGFyZ2VwYWdlX2x2bCk7CisKKwkJCQlu cl9zdXBlcnBhZ2VzID0gc2dfcmVzIC8gbHZsX3BhZ2VzOworCQkJCWVuZF9wZm4gPSBpb3ZfcGZu ICsgbnJfc3VwZXJwYWdlcyAqIGx2bF9wYWdlcyAtIDE7CisKKwkJCQkvKgorCQkJCSAqIEVuc3Vy ZSB0aGF0IG9sZCBzbWFsbCBwYWdlIHRhYmxlcyBhcmUKKwkJCQkgKiByZW1vdmVkIHRvIG1ha2Ug cm9vbSBmb3Igc3VwZXJwYWdlKHMpLgorCQkJCSAqLworCQkJCWRtYV9wdGVfY2xlYXJfcmFuZ2Uo ZG9tYWluLCBpb3ZfcGZuLCBlbmRfcGZuKTsKKwkJCQlkbWFfcHRlX2ZyZWVfcGFnZXRhYmxlKGRv bWFpbiwgaW92X3BmbiwgZW5kX3Bmbik7CiAJCQl9IGVsc2UgewogCQkJCXB0ZXZhbCAmPSB+KHVp bnQ2NF90KURNQV9QVEVfTEFSR0VfUEFHRTsKIAkJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQv bWQuYyBiL2RyaXZlcnMvbWQvbWQuYwppbmRleCBkN2U5MjQyLi4wOTE0NTM0IDEwMDY0NAotLS0g YS9kcml2ZXJzL21kL21kLmMKKysrIGIvZHJpdmVycy9tZC9tZC5jCkBAIC03ODk1LDYgKzc4OTUs NyBAQCBpbnQgcmRldl9zZXRfYmFkYmxvY2tzKHN0cnVjdCBtZF9yZGV2ICpyZGV2LCBzZWN0b3Jf dCBzLCBpbnQgc2VjdG9ycywKIAkJLyogTWFrZSBzdXJlIHRoZXkgZ2V0IHdyaXR0ZW4gb3V0IHBy b21wdGx5ICovCiAJCXN5c2ZzX25vdGlmeV9kaXJlbnRfc2FmZShyZGV2LT5zeXNmc19zdGF0ZSk7 CiAJCXNldF9iaXQoTURfQ0hBTkdFX0NMRUFOLCAmcmRldi0+bWRkZXYtPmZsYWdzKTsKKwkJc2V0 X2JpdChNRF9DSEFOR0VfUEVORElORywgJnJkZXYtPm1kZGV2LT5mbGFncyk7CiAJCW1kX3dha2V1 cF90aHJlYWQocmRldi0+bWRkZXYtPnRocmVhZCk7CiAJfQogCXJldHVybiBydjsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLWJ0cmVlLXJlbW92ZS5jIGIvZHJpdmVy cy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0tYnRyZWUtcmVtb3ZlLmMKaW5kZXggMjk0ZWI1Yi4uZjc3 NjkyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0tYnRyZWUtcmVt b3ZlLmMKKysrIGIvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0tYnRyZWUtcmVtb3ZlLmMK QEAgLTMwMSwxMSArMzAxLDE2IEBAIHN0YXRpYyB2b2lkIHJlZGlzdHJpYnV0ZTMoc3RydWN0IGRt X2J0cmVlX2luZm8gKmluZm8sIHN0cnVjdCBidHJlZV9ub2RlICpwYXJlbnQsCiB7CiAJaW50IHM7 CiAJdWludDMyX3QgbWF4X2VudHJpZXMgPSBsZTMyX3RvX2NwdShsZWZ0LT5oZWFkZXIubWF4X2Vu dHJpZXMpOwotCXVuc2lnbmVkIHRhcmdldCA9IChucl9sZWZ0ICsgbnJfY2VudGVyICsgbnJfcmln aHQpIC8gMzsKLQlCVUdfT04odGFyZ2V0ID4gbWF4X2VudHJpZXMpOworCXVuc2lnbmVkIHRvdGFs ID0gbnJfbGVmdCArIG5yX2NlbnRlciArIG5yX3JpZ2h0OworCXVuc2lnbmVkIHRhcmdldF9yaWdo dCA9IHRvdGFsIC8gMzsKKwl1bnNpZ25lZCByZW1haW5kZXIgPSAodGFyZ2V0X3JpZ2h0ICogMykg IT0gdG90YWw7CisJdW5zaWduZWQgdGFyZ2V0X2xlZnQgPSB0YXJnZXRfcmlnaHQgKyByZW1haW5k ZXI7CisKKwlCVUdfT04odGFyZ2V0X2xlZnQgPiBtYXhfZW50cmllcyk7CisJQlVHX09OKHRhcmdl dF9yaWdodCA+IG1heF9lbnRyaWVzKTsKIAogCWlmIChucl9sZWZ0IDwgbnJfcmlnaHQpIHsKLQkJ cyA9IG5yX2xlZnQgLSB0YXJnZXQ7CisJCXMgPSBucl9sZWZ0IC0gdGFyZ2V0X2xlZnQ7CiAKIAkJ aWYgKHMgPCAwICYmIG5yX2NlbnRlciA8IC1zKSB7CiAJCQkvKiBub3QgZW5vdWdoIGluIGNlbnRy YWwgbm9kZSAqLwpAQCAtMzE2LDEwICszMjEsMTAgQEAgc3RhdGljIHZvaWQgcmVkaXN0cmlidXRl MyhzdHJ1Y3QgZG1fYnRyZWVfaW5mbyAqaW5mbywgc3RydWN0IGJ0cmVlX25vZGUgKnBhcmVudCwK IAkJfSBlbHNlCiAJCQlzaGlmdChsZWZ0LCBjZW50ZXIsIHMpOwogCi0JCXNoaWZ0KGNlbnRlciwg cmlnaHQsIHRhcmdldCAtIG5yX3JpZ2h0KTsKKwkJc2hpZnQoY2VudGVyLCByaWdodCwgdGFyZ2V0 X3JpZ2h0IC0gbnJfcmlnaHQpOwogCiAJfSBlbHNlIHsKLQkJcyA9IHRhcmdldCAtIG5yX3JpZ2h0 OworCQlzID0gdGFyZ2V0X3JpZ2h0IC0gbnJfcmlnaHQ7CiAJCWlmIChzID4gMCAmJiBucl9jZW50 ZXIgPCBzKSB7CiAJCQkvKiBub3QgZW5vdWdoIGluIGNlbnRyYWwgbm9kZSAqLwogCQkJc2hpZnQo Y2VudGVyLCByaWdodCwgbnJfY2VudGVyKTsKQEAgLTMyOSw3ICszMzQsNyBAQCBzdGF0aWMgdm9p ZCByZWRpc3RyaWJ1dGUzKHN0cnVjdCBkbV9idHJlZV9pbmZvICppbmZvLCBzdHJ1Y3QgYnRyZWVf bm9kZSAqcGFyZW50LAogCQl9IGVsc2UKIAkJCXNoaWZ0KGNlbnRlciwgcmlnaHQsIHMpOwogCi0J CXNoaWZ0KGxlZnQsIGNlbnRlciwgbnJfbGVmdCAtIHRhcmdldCk7CisJCXNoaWZ0KGxlZnQsIGNl bnRlciwgbnJfbGVmdCAtIHRhcmdldF9sZWZ0KTsKIAl9CiAKIAkqa2V5X3B0cihwYXJlbnQsIGMt PmluZGV4KSA9IGNlbnRlci0+a2V5c1swXTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcGVyc2lz dGVudC1kYXRhL2RtLWJ0cmVlLmMgYi9kcml2ZXJzL21kL3BlcnNpc3RlbnQtZGF0YS9kbS1idHJl ZS5jCmluZGV4IDYyZjI5N2EuLjI5ZTQyM2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcGVyc2lz dGVudC1kYXRhL2RtLWJ0cmVlLmMKKysrIGIvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0t YnRyZWUuYwpAQCAtNTAzLDcgKzUwMyw3IEBAIHN0YXRpYyBpbnQgYnRyZWVfc3BsaXRfYmVuZWF0 aChzdHJ1Y3Qgc2hhZG93X3NwaW5lICpzLCB1aW50NjRfdCBrZXkpCiAKIAlyID0gbmV3X2Jsb2Nr KHMtPmluZm8sICZyaWdodCk7CiAJaWYgKHIgPCAwKSB7Ci0JCS8qIEZJWE1FOiBwdXQgbGVmdCAq LworCQl1bmxvY2tfYmxvY2socy0+aW5mbywgbGVmdCk7CiAJCXJldHVybiByOwogCX0KIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZC9yYWlkMC5jIGIvZHJpdmVycy9tZC9yYWlkMC5jCmluZGV4IGQz ZTZmMzUuLmMwYjRhMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDAuYworKysgYi9kcml2 ZXJzL21kL3JhaWQwLmMKQEAgLTg4LDYgKzg4LDcgQEAgc3RhdGljIGludCBjcmVhdGVfc3RyaXBf em9uZXMoc3RydWN0IG1kZGV2ICptZGRldiwgc3RydWN0IHIwY29uZiAqKnByaXZhdGVfY29uZikK IAljaGFyIGJbQkRFVk5BTUVfU0laRV07CiAJY2hhciBiMltCREVWTkFNRV9TSVpFXTsKIAlzdHJ1 Y3QgcjBjb25mICpjb25mID0ga3phbGxvYyhzaXplb2YoKmNvbmYpLCBHRlBfS0VSTkVMKTsKKwl1 bnNpZ25lZCBzaG9ydCBibGtzaXplID0gNTEyOwogCiAJaWYgKCFjb25mKQogCQlyZXR1cm4gLUVO T01FTTsKQEAgLTEwMiw2ICsxMDMsOSBAQCBzdGF0aWMgaW50IGNyZWF0ZV9zdHJpcF96b25lcyhz dHJ1Y3QgbWRkZXYgKm1kZGV2LCBzdHJ1Y3QgcjBjb25mICoqcHJpdmF0ZV9jb25mKQogCQlzZWN0 b3JfZGl2KHNlY3RvcnMsIG1kZGV2LT5jaHVua19zZWN0b3JzKTsKIAkJcmRldjEtPnNlY3RvcnMg PSBzZWN0b3JzICogbWRkZXYtPmNodW5rX3NlY3RvcnM7CiAKKwkJYmxrc2l6ZSA9IG1heChibGtz aXplLCBxdWV1ZV9sb2dpY2FsX2Jsb2NrX3NpemUoCisJCQkJICAgICAgcmRldjEtPmJkZXYtPmJk X2Rpc2stPnF1ZXVlKSk7CisKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShyZGV2MiwgJm1kZGV2LT5k aXNrcywgc2FtZV9zZXQpIHsKIAkJCXByX2RlYnVnKCJtZC9yYWlkMDolczogICBjb21wYXJpbmcg JXMoJWxsdSkiCiAJCQkJICIgd2l0aCAlcyglbGx1KVxuIiwKQEAgLTEzOCw2ICsxNDIsMTggQEAg c3RhdGljIGludCBjcmVhdGVfc3RyaXBfem9uZXMoc3RydWN0IG1kZGV2ICptZGRldiwgc3RydWN0 IHIwY29uZiAqKnByaXZhdGVfY29uZikKIAl9CiAJcHJfZGVidWcoIm1kL3JhaWQwOiVzOiBGSU5B TCAlZCB6b25lc1xuIiwKIAkJIG1kbmFtZShtZGRldiksIGNvbmYtPm5yX3N0cmlwX3pvbmVzKTsK KwkvKgorCSAqIG5vdyBzaW5jZSB3ZSBoYXZlIHRoZSBoYXJkIHNlY3RvciBzaXplcywgd2UgY2Fu IG1ha2Ugc3VyZQorCSAqIGNodW5rIHNpemUgaXMgYSBtdWx0aXBsZSBvZiB0aGF0IHNlY3RvciBz aXplCisJICovCisJaWYgKChtZGRldi0+Y2h1bmtfc2VjdG9ycyA8PCA5KSAlIGJsa3NpemUpIHsK KwkJcHJpbnRrKEtFUk5fRVJSICJtZC9yYWlkMDolczogY2h1bmtfc2l6ZSBvZiAlZCBub3QgbXVs dGlwbGUgb2YgYmxvY2sgc2l6ZSAlZFxuIiwKKwkJICAgICAgIG1kbmFtZShtZGRldiksCisJCSAg ICAgICBtZGRldi0+Y2h1bmtfc2VjdG9ycyA8PCA5LCBibGtzaXplKTsKKwkJZXJyID0gLUVJTlZB TDsKKwkJZ290byBhYm9ydDsKKwl9CisKIAllcnIgPSAtRU5PTUVNOwogCWNvbmYtPnN0cmlwX3pv bmUgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc3RyaXBfem9uZSkqCiAJCQkJY29uZi0+bnJfc3Ry aXBfem9uZXMsIEdGUF9LRVJORUwpOwpAQCAtMTg2LDggKzIwMiw2IEBAIHN0YXRpYyBpbnQgY3Jl YXRlX3N0cmlwX3pvbmVzKHN0cnVjdCBtZGRldiAqbWRkZXYsIHN0cnVjdCByMGNvbmYgKipwcml2 YXRlX2NvbmYpCiAJCX0KIAkJZGV2W2pdID0gcmRldjE7CiAKLQkJZGlza19zdGFja19saW1pdHMo bWRkZXYtPmdlbmRpc2ssIHJkZXYxLT5iZGV2LAotCQkJCSAgcmRldjEtPmRhdGFfb2Zmc2V0IDw8 IDkpOwogCQkvKiBhcyB3ZSBkb24ndCBob25vdXIgbWVyZ2VfYnZlY19mbiwgd2UgbXVzdCBuZXZl ciByaXNrCiAJCSAqIHZpb2xhdGluZyBpdCwgc28gbGltaXQgLT5tYXhfc2VnbWVudHMgdG8gMSwg bHlpbmcgd2l0aGluCiAJCSAqIGEgc2luZ2xlIHBhZ2UuCkBAIC0yNjMsMjEgKzI3Nyw2IEBAIHN0 YXRpYyBpbnQgY3JlYXRlX3N0cmlwX3pvbmVzKHN0cnVjdCBtZGRldiAqbWRkZXYsIHN0cnVjdCBy MGNvbmYgKipwcml2YXRlX2NvbmYpCiAJbWRkZXYtPnF1ZXVlLT5iYWNraW5nX2Rldl9pbmZvLmNv bmdlc3RlZF9mbiA9IHJhaWQwX2Nvbmdlc3RlZDsKIAltZGRldi0+cXVldWUtPmJhY2tpbmdfZGV2 X2luZm8uY29uZ2VzdGVkX2RhdGEgPSBtZGRldjsKIAotCS8qCi0JICogbm93IHNpbmNlIHdlIGhh dmUgdGhlIGhhcmQgc2VjdG9yIHNpemVzLCB3ZSBjYW4gbWFrZSBzdXJlCi0JICogY2h1bmsgc2l6 ZSBpcyBhIG11bHRpcGxlIG9mIHRoYXQgc2VjdG9yIHNpemUKLQkgKi8KLQlpZiAoKG1kZGV2LT5j aHVua19zZWN0b3JzIDw8IDkpICUgcXVldWVfbG9naWNhbF9ibG9ja19zaXplKG1kZGV2LT5xdWV1 ZSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJtZC9yYWlkMDolczogY2h1bmtfc2l6ZSBvZiAlZCBu b3QgdmFsaWRcbiIsCi0JCSAgICAgICBtZG5hbWUobWRkZXYpLAotCQkgICAgICAgbWRkZXYtPmNo dW5rX3NlY3RvcnMgPDwgOSk7Ci0JCWdvdG8gYWJvcnQ7Ci0JfQotCi0JYmxrX3F1ZXVlX2lvX21p bihtZGRldi0+cXVldWUsIG1kZGV2LT5jaHVua19zZWN0b3JzIDw8IDkpOwotCWJsa19xdWV1ZV9p b19vcHQobWRkZXYtPnF1ZXVlLAotCQkJIChtZGRldi0+Y2h1bmtfc2VjdG9ycyA8PCA5KSAqIG1k ZGV2LT5yYWlkX2Rpc2tzKTsKLQogCXByX2RlYnVnKCJtZC9yYWlkMDolczogZG9uZS5cbiIsIG1k bmFtZShtZGRldikpOwogCSpwcml2YXRlX2NvbmYgPSBjb25mOwogCkBAIC0zNDAsNiArMzM5LDcg QEAgc3RhdGljIGludCByYWlkMF9ydW4oc3RydWN0IG1kZGV2ICptZGRldikKIHsKIAlzdHJ1Y3Qg cjBjb25mICpjb25mOwogCWludCByZXQ7CisJc3RydWN0IG1kX3JkZXYgKnJkZXY7CiAKIAlpZiAo bWRkZXYtPmNodW5rX3NlY3RvcnMgPT0gMCkgewogCQlwcmludGsoS0VSTl9FUlIgIm1kL3JhaWQw OiVzOiBjaHVuayBzaXplIG11c3QgYmUgc2V0LlxuIiwKQEAgLTM0OCw3ICszNDgsNiBAQCBzdGF0 aWMgaW50IHJhaWQwX3J1bihzdHJ1Y3QgbWRkZXYgKm1kZGV2KQogCX0KIAlpZiAobWRfY2hlY2tf bm9fYml0bWFwKG1kZGV2KSkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JYmxrX3F1ZXVlX21heF9od19z ZWN0b3JzKG1kZGV2LT5xdWV1ZSwgbWRkZXYtPmNodW5rX3NlY3RvcnMpOwogCiAJLyogaWYgcHJp dmF0ZSBpcyBub3QgbnVsbCwgd2UgYXJlIGhlcmUgYWZ0ZXIgdGFrZW92ZXIgKi8KIAlpZiAobWRk ZXYtPnByaXZhdGUgPT0gTlVMTCkgewpAQCAtMzU5LDYgKzM1OCwxNyBAQCBzdGF0aWMgaW50IHJh aWQwX3J1bihzdHJ1Y3QgbWRkZXYgKm1kZGV2KQogCX0KIAljb25mID0gbWRkZXYtPnByaXZhdGU7 CiAKKwlibGtfcXVldWVfbWF4X2h3X3NlY3RvcnMobWRkZXYtPnF1ZXVlLCBtZGRldi0+Y2h1bmtf c2VjdG9ycyk7CisKKwlibGtfcXVldWVfaW9fbWluKG1kZGV2LT5xdWV1ZSwgbWRkZXYtPmNodW5r X3NlY3RvcnMgPDwgOSk7CisJYmxrX3F1ZXVlX2lvX29wdChtZGRldi0+cXVldWUsCisJCQkgKG1k ZGV2LT5jaHVua19zZWN0b3JzIDw8IDkpICogbWRkZXYtPnJhaWRfZGlza3MpOworCisJbGlzdF9m b3JfZWFjaF9lbnRyeShyZGV2LCAmbWRkZXYtPmRpc2tzLCBzYW1lX3NldCkgeworCQlkaXNrX3N0 YWNrX2xpbWl0cyhtZGRldi0+Z2VuZGlzaywgcmRldi0+YmRldiwKKwkJCQkgIHJkZXYtPmRhdGFf b2Zmc2V0IDw8IDkpOworCX0KKwogCS8qIGNhbGN1bGF0ZSBhcnJheSBkZXZpY2Ugc2l6ZSAqLwog CW1kX3NldF9hcnJheV9zZWN0b3JzKG1kZGV2LCByYWlkMF9zaXplKG1kZGV2LCAwLCAwKSk7CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDEuYyBiL2RyaXZlcnMvbWQvcmFpZDEuYwppbmRl eCBhNWYyODRkLi41YzhkZDQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL3JhaWQxLmMKKysrIGIv ZHJpdmVycy9tZC9yYWlkMS5jCkBAIC0xMjQwLDYgKzEyNDAsNyBAQCBzdGF0aWMgdm9pZCBlcnJv cihzdHJ1Y3QgbWRkZXYgKm1kZGV2LCBzdHJ1Y3QgbWRfcmRldiAqcmRldikKIAkgKi8KIAlzZXRf Yml0KE1EX1JFQ09WRVJZX0lOVFIsICZtZGRldi0+cmVjb3ZlcnkpOwogCXNldF9iaXQoTURfQ0hB TkdFX0RFVlMsICZtZGRldi0+ZmxhZ3MpOworCXNldF9iaXQoTURfQ0hBTkdFX1BFTkRJTkcsICZt ZGRldi0+ZmxhZ3MpOwogCXByaW50ayhLRVJOX0FMRVJUCiAJICAgICAgICJtZC9yYWlkMTolczog RGlzayBmYWlsdXJlIG9uICVzLCBkaXNhYmxpbmcgZGV2aWNlLlxuIgogCSAgICAgICAibWQvcmFp ZDE6JXM6IE9wZXJhdGlvbiBjb250aW51aW5nIG9uICVkIGRldmljZXMuXG4iLApAQCAtMTk0OSw2 ICsxOTUwLDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX3N5bmNfd3JpdGVfZmluaXNoZWQoc3RydWN0 IHIxY29uZiAqY29uZiwgc3RydWN0IHIxYmlvICpyMV9iaW8KIHN0YXRpYyB2b2lkIGhhbmRsZV93 cml0ZV9maW5pc2hlZChzdHJ1Y3QgcjFjb25mICpjb25mLCBzdHJ1Y3QgcjFiaW8gKnIxX2JpbykK IHsKIAlpbnQgbTsKKwlib29sIGZhaWwgPSBmYWxzZTsKIAlmb3IgKG0gPSAwOyBtIDwgY29uZi0+ cmFpZF9kaXNrcyA7IG0rKykKIAkJaWYgKHIxX2Jpby0+Ymlvc1ttXSA9PSBJT19NQURFX0dPT0Qp IHsKIAkJCXN0cnVjdCBtZF9yZGV2ICpyZGV2ID0gY29uZi0+bWlycm9yc1ttXS5yZGV2OwpAQCAt MTk2MSw2ICsxOTYzLDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX3dyaXRlX2ZpbmlzaGVkKHN0cnVj dCByMWNvbmYgKmNvbmYsIHN0cnVjdCByMWJpbyAqcjFfYmlvKQogCQkJICogbmFycm93IGRvd24g YW5kIHJlY29yZCBwcmVjaXNlIHdyaXRlCiAJCQkgKiBlcnJvcnMuCiAJCQkgKi8KKwkJCWZhaWwg PSB0cnVlOwogCQkJaWYgKCFuYXJyb3dfd3JpdGVfZXJyb3IocjFfYmlvLCBtKSkgewogCQkJCW1k X2Vycm9yKGNvbmYtPm1kZGV2LAogCQkJCQkgY29uZi0+bWlycm9yc1ttXS5yZGV2KTsKQEAgLTE5 NzAsOSArMTk3MywxNiBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfd3JpdGVfZmluaXNoZWQoc3RydWN0 IHIxY29uZiAqY29uZiwgc3RydWN0IHIxYmlvICpyMV9iaW8pCiAJCQlyZGV2X2RlY19wZW5kaW5n KGNvbmYtPm1pcnJvcnNbbV0ucmRldiwKIAkJCQkJIGNvbmYtPm1kZGV2KTsKIAkJfQotCWlmICh0 ZXN0X2JpdChSMUJJT19Xcml0ZUVycm9yLCAmcjFfYmlvLT5zdGF0ZSkpCi0JCWNsb3NlX3dyaXRl KHIxX2Jpbyk7Ci0JcmFpZF9lbmRfYmlvX2lvKHIxX2Jpbyk7CisJaWYgKGZhaWwpIHsKKwkJc3Bp bl9sb2NrX2lycSgmY29uZi0+ZGV2aWNlX2xvY2spOworCQlsaXN0X2FkZCgmcjFfYmlvLT5yZXRy eV9saXN0LCAmY29uZi0+YmlvX2VuZF9pb19saXN0KTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZjb25m LT5kZXZpY2VfbG9jayk7CisJCW1kX3dha2V1cF90aHJlYWQoY29uZi0+bWRkZXYtPnRocmVhZCk7 CisJfSBlbHNlIHsKKwkJaWYgKHRlc3RfYml0KFIxQklPX1dyaXRlRXJyb3IsICZyMV9iaW8tPnN0 YXRlKSkKKwkJCWNsb3NlX3dyaXRlKHIxX2Jpbyk7CisJCXJhaWRfZW5kX2Jpb19pbyhyMV9iaW8p OworCX0KIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlX3JlYWRfZXJyb3Ioc3RydWN0IHIxY29uZiAq Y29uZiwgc3RydWN0IHIxYmlvICpyMV9iaW8pCkBAIC0yMDc1LDYgKzIwODUsMjcgQEAgc3RhdGlj IHZvaWQgcmFpZDFkKHN0cnVjdCBtZGRldiAqbWRkZXYpCiAKIAltZF9jaGVja19yZWNvdmVyeSht ZGRldik7CiAKKwlpZiAoIWxpc3RfZW1wdHlfY2FyZWZ1bCgmY29uZi0+YmlvX2VuZF9pb19saXN0 KSAmJgorCSAgICAhdGVzdF9iaXQoTURfQ0hBTkdFX1BFTkRJTkcsICZtZGRldi0+ZmxhZ3MpKSB7 CisJCUxJU1RfSEVBRCh0bXApOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmY29uZi0+ZGV2aWNlX2xv Y2ssIGZsYWdzKTsKKwkJaWYgKCF0ZXN0X2JpdChNRF9DSEFOR0VfUEVORElORywgJm1kZGV2LT5m bGFncykpIHsKKwkJCWxpc3RfYWRkKCZ0bXAsICZjb25mLT5iaW9fZW5kX2lvX2xpc3QpOworCQkJ bGlzdF9kZWxfaW5pdCgmY29uZi0+YmlvX2VuZF9pb19saXN0KTsKKwkJfQorCQlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZjb25mLT5kZXZpY2VfbG9jaywgZmxhZ3MpOworCQl3aGlsZSAoIWxpc3Rf ZW1wdHkoJnRtcCkpIHsKKwkJCXIxX2JpbyA9IGxpc3RfZmlyc3RfZW50cnkoJmNvbmYtPmJpb19l bmRfaW9fbGlzdCwKKwkJCQkJCSAgc3RydWN0IHIxYmlvLCByZXRyeV9saXN0KTsKKwkJCWxpc3Rf ZGVsKCZyMV9iaW8tPnJldHJ5X2xpc3QpOworCQkJaWYgKG1kZGV2LT5kZWdyYWRlZCkKKwkJCQlz ZXRfYml0KFIxQklPX0RlZ3JhZGVkLCAmcjFfYmlvLT5zdGF0ZSk7CisJCQlpZiAodGVzdF9iaXQo UjFCSU9fV3JpdGVFcnJvciwgJnIxX2Jpby0+c3RhdGUpKQorCQkJCWNsb3NlX3dyaXRlKHIxX2Jp byk7CisJCQlyYWlkX2VuZF9iaW9faW8ocjFfYmlvKTsKKwkJfQorCX0KKwogCWJsa19zdGFydF9w bHVnKCZwbHVnKTsKIAlmb3IgKDs7KSB7CiAKQEAgLTI0NzMsNiArMjUwNCw3IEBAIHN0YXRpYyBz dHJ1Y3QgcjFjb25mICpzZXR1cF9jb25mKHN0cnVjdCBtZGRldiAqbWRkZXYpCiAJY29uZi0+cmFp ZF9kaXNrcyA9IG1kZGV2LT5yYWlkX2Rpc2tzOwogCWNvbmYtPm1kZGV2ID0gbWRkZXY7CiAJSU5J VF9MSVNUX0hFQUQoJmNvbmYtPnJldHJ5X2xpc3QpOworCUlOSVRfTElTVF9IRUFEKCZjb25mLT5i aW9fZW5kX2lvX2xpc3QpOwogCiAJc3Bpbl9sb2NrX2luaXQoJmNvbmYtPnJlc3luY19sb2NrKTsK IAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZjb25mLT53YWl0X2JhcnJpZXIpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tZC9yYWlkMS5oIGIvZHJpdmVycy9tZC9yYWlkMS5oCmluZGV4IGM3MzJiNmMuLjZm YmQzYTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDEuaAorKysgYi9kcml2ZXJzL21kL3Jh aWQxLmgKQEAgLTQzLDYgKzQzLDExIEBAIHN0cnVjdCByMWNvbmYgewogCSAqIGJsb2NrLCBvciBh bnl0aGluZyBlbHNlLgogCSAqLwogCXN0cnVjdCBsaXN0X2hlYWQJcmV0cnlfbGlzdDsKKwkvKiBB IHNlcGFyYXRlIGxpc3Qgb2YgcjFiaW8gd2hpY2gganVzdCBuZWVkIHJhaWRfZW5kX2Jpb19pbyBj YWxsZWQuCisJICogVGhpcyBtdXN0bid0IGhhcHBlbiBmb3Igd3JpdGVzIHdoaWNoIGhhZCBhbnkg ZXJyb3JzIGlmIHRoZSBzdXBlcmJsb2NrCisJICogbmVlZHMgdG8gYmUgd3JpdHRlbi4KKwkgKi8K KwlzdHJ1Y3QgbGlzdF9oZWFkCWJpb19lbmRfaW9fbGlzdDsKIAogCS8qIHF1ZXVlIHBlbmRpbmcg d3JpdGVzIHRvIGJlIHN1Ym1pdHRlZCBvbiB1bnBsdWcgKi8KIAlzdHJ1Y3QgYmlvX2xpc3QJCXBl bmRpbmdfYmlvX2xpc3Q7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL3JhaWQxMC5jIGIvZHJpdmVy cy9tZC9yYWlkMTAuYwppbmRleCBhYmFjODNhLi45MjJiNzBiIDEwMDY0NAotLS0gYS9kcml2ZXJz L21kL3JhaWQxMC5jCisrKyBiL2RyaXZlcnMvbWQvcmFpZDEwLmMKQEAgLTEyODAsNiArMTI4MCw3 IEBAIHN0YXRpYyB2b2lkIGVycm9yKHN0cnVjdCBtZGRldiAqbWRkZXYsIHN0cnVjdCBtZF9yZGV2 ICpyZGV2KQogCXNldF9iaXQoQmxvY2tlZCwgJnJkZXYtPmZsYWdzKTsKIAlzZXRfYml0KEZhdWx0 eSwgJnJkZXYtPmZsYWdzKTsKIAlzZXRfYml0KE1EX0NIQU5HRV9ERVZTLCAmbWRkZXYtPmZsYWdz KTsKKwlzZXRfYml0KE1EX0NIQU5HRV9QRU5ESU5HLCAmbWRkZXYtPmZsYWdzKTsKIAlwcmludGso S0VSTl9BTEVSVAogCSAgICAgICAibWQvcmFpZDEwOiVzOiBEaXNrIGZhaWx1cmUgb24gJXMsIGRp c2FibGluZyBkZXZpY2UuXG4iCiAJICAgICAgICJtZC9yYWlkMTA6JXM6IE9wZXJhdGlvbiBjb250 aW51aW5nIG9uICVkIGRldmljZXMuXG4iLApAQCAtMjIxNSw2ICsyMjE2LDcgQEAgc3RhdGljIHZv aWQgaGFuZGxlX3dyaXRlX2NvbXBsZXRlZChzdHJ1Y3QgcjEwY29uZiAqY29uZiwgc3RydWN0IHIx MGJpbyAqcjEwX2JpbykKIAkJfQogCQlwdXRfYnVmKHIxMF9iaW8pOwogCX0gZWxzZSB7CisJCWJv b2wgZmFpbCA9IGZhbHNlOwogCQlmb3IgKG0gPSAwOyBtIDwgY29uZi0+Y29waWVzOyBtKyspIHsK IAkJCWludCBkZXYgPSByMTBfYmlvLT5kZXZzW21dLmRldm51bTsKIAkJCXN0cnVjdCBiaW8gKmJp byA9IHIxMF9iaW8tPmRldnNbbV0uYmlvOwpAQCAtMjIyNyw2ICsyMjI5LDcgQEAgc3RhdGljIHZv aWQgaGFuZGxlX3dyaXRlX2NvbXBsZXRlZChzdHJ1Y3QgcjEwY29uZiAqY29uZiwgc3RydWN0IHIx MGJpbyAqcjEwX2JpbykKIAkJCQlyZGV2X2RlY19wZW5kaW5nKHJkZXYsIGNvbmYtPm1kZGV2KTsK IAkJCX0gZWxzZSBpZiAoYmlvICE9IE5VTEwgJiYKIAkJCQkgICAhdGVzdF9iaXQoQklPX1VQVE9E QVRFLCAmYmlvLT5iaV9mbGFncykpIHsKKwkJCQlmYWlsID0gdHJ1ZTsKIAkJCQlpZiAoIW5hcnJv d193cml0ZV9lcnJvcihyMTBfYmlvLCBtKSkgewogCQkJCQltZF9lcnJvcihjb25mLT5tZGRldiwg cmRldik7CiAJCQkJCXNldF9iaXQoUjEwQklPX0RlZ3JhZGVkLApAQCAtMjIzNSwxMCArMjIzOCwx NyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfd3JpdGVfY29tcGxldGVkKHN0cnVjdCByMTBjb25mICpj b25mLCBzdHJ1Y3QgcjEwYmlvICpyMTBfYmlvKQogCQkJCXJkZXZfZGVjX3BlbmRpbmcocmRldiwg Y29uZi0+bWRkZXYpOwogCQkJfQogCQl9Ci0JCWlmICh0ZXN0X2JpdChSMTBCSU9fV3JpdGVFcnJv ciwKLQkJCSAgICAgJnIxMF9iaW8tPnN0YXRlKSkKLQkJCWNsb3NlX3dyaXRlKHIxMF9iaW8pOwot CQlyYWlkX2VuZF9iaW9faW8ocjEwX2Jpbyk7CisJCWlmIChmYWlsKSB7CisJCQlzcGluX2xvY2tf aXJxKCZjb25mLT5kZXZpY2VfbG9jayk7CisJCQlsaXN0X2FkZCgmcjEwX2Jpby0+cmV0cnlfbGlz dCwgJmNvbmYtPmJpb19lbmRfaW9fbGlzdCk7CisJCQlzcGluX3VubG9ja19pcnEoJmNvbmYtPmRl dmljZV9sb2NrKTsKKwkJCW1kX3dha2V1cF90aHJlYWQoY29uZi0+bWRkZXYtPnRocmVhZCk7CisJ CX0gZWxzZSB7CisJCQlpZiAodGVzdF9iaXQoUjEwQklPX1dyaXRlRXJyb3IsCisJCQkJICAgICAm cjEwX2Jpby0+c3RhdGUpKQorCQkJCWNsb3NlX3dyaXRlKHIxMF9iaW8pOworCQkJcmFpZF9lbmRf YmlvX2lvKHIxMF9iaW8pOworCQl9CiAJfQogfQogCkBAIC0yMjUyLDYgKzIyNjIsMjkgQEAgc3Rh dGljIHZvaWQgcmFpZDEwZChzdHJ1Y3QgbWRkZXYgKm1kZGV2KQogCiAJbWRfY2hlY2tfcmVjb3Zl cnkobWRkZXYpOwogCisJaWYgKCFsaXN0X2VtcHR5X2NhcmVmdWwoJmNvbmYtPmJpb19lbmRfaW9f bGlzdCkgJiYKKwkgICAgIXRlc3RfYml0KE1EX0NIQU5HRV9QRU5ESU5HLCAmbWRkZXYtPmZsYWdz KSkgeworCQlMSVNUX0hFQUQodG1wKTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJmNvbmYtPmRldmlj ZV9sb2NrLCBmbGFncyk7CisJCWlmICghdGVzdF9iaXQoTURfQ0hBTkdFX1BFTkRJTkcsICZtZGRl di0+ZmxhZ3MpKSB7CisJCQlsaXN0X2FkZCgmdG1wLCAmY29uZi0+YmlvX2VuZF9pb19saXN0KTsK KwkJCWxpc3RfZGVsX2luaXQoJmNvbmYtPmJpb19lbmRfaW9fbGlzdCk7CisJCX0KKwkJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmY29uZi0+ZGV2aWNlX2xvY2ssIGZsYWdzKTsKKwkJd2hpbGUgKCFs aXN0X2VtcHR5KCZ0bXApKSB7CisJCQlyMTBfYmlvID0gbGlzdF9maXJzdF9lbnRyeSgmY29uZi0+ YmlvX2VuZF9pb19saXN0LAorCQkJCQkJICBzdHJ1Y3QgcjEwYmlvLCByZXRyeV9saXN0KTsKKwkJ CWxpc3RfZGVsKCZyMTBfYmlvLT5yZXRyeV9saXN0KTsKKwkJCWlmIChtZGRldi0+ZGVncmFkZWQp CisJCQkJc2V0X2JpdChSMTBCSU9fRGVncmFkZWQsICZyMTBfYmlvLT5zdGF0ZSk7CisKKwkJCWlm ICh0ZXN0X2JpdChSMTBCSU9fV3JpdGVFcnJvciwKKwkJCQkgICAgICZyMTBfYmlvLT5zdGF0ZSkp CisJCQkJY2xvc2Vfd3JpdGUocjEwX2Jpbyk7CisJCQlyYWlkX2VuZF9iaW9faW8ocjEwX2Jpbyk7 CisJCX0KKwl9CisKIAlibGtfc3RhcnRfcGx1ZygmcGx1Zyk7CiAJZm9yICg7OykgewogCkBAIC0y ODYwLDYgKzI4OTMsNyBAQCBzdGF0aWMgc3RydWN0IHIxMGNvbmYgKnNldHVwX2NvbmYoc3RydWN0 IG1kZGV2ICptZGRldikKIAogCXNwaW5fbG9ja19pbml0KCZjb25mLT5kZXZpY2VfbG9jayk7CiAJ SU5JVF9MSVNUX0hFQUQoJmNvbmYtPnJldHJ5X2xpc3QpOworCUlOSVRfTElTVF9IRUFEKCZjb25m LT5iaW9fZW5kX2lvX2xpc3QpOwogCiAJc3Bpbl9sb2NrX2luaXQoJmNvbmYtPnJlc3luY19sb2Nr KTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZjb25mLT53YWl0X2JhcnJpZXIpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9tZC9yYWlkMTAuaCBiL2RyaXZlcnMvbWQvcmFpZDEwLmgKaW5kZXggN2ZhY2Zk Zi4uNjRiMDE2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9yYWlkMTAuaAorKysgYi9kcml2ZXJz L21kL3JhaWQxMC5oCkBAIC00MCw2ICs0MCwxMiBAQCBzdHJ1Y3QgcjEwY29uZiB7CiAJc2VjdG9y X3QgY2h1bmtfbWFzazsKIAogCXN0cnVjdCBsaXN0X2hlYWQJcmV0cnlfbGlzdDsKKwkvKiBBIHNl cGFyYXRlIGxpc3Qgb2YgcjFiaW8gd2hpY2gganVzdCBuZWVkIHJhaWRfZW5kX2Jpb19pbyBjYWxs ZWQuCisJICogVGhpcyBtdXN0bid0IGhhcHBlbiBmb3Igd3JpdGVzIHdoaWNoIGhhZCBhbnkgZXJy b3JzIGlmIHRoZSBzdXBlcmJsb2NrCisJICogbmVlZHMgdG8gYmUgd3JpdHRlbi4KKwkgKi8KKwlz dHJ1Y3QgbGlzdF9oZWFkCWJpb19lbmRfaW9fbGlzdDsKKwogCS8qIHF1ZXVlIHBlbmRpbmcgd3Jp dGVzIGFuZCBzdWJtaXQgdGhlbSBvbiB1bnBsdWcgKi8KIAlzdHJ1Y3QgYmlvX2xpc3QJCXBlbmRp bmdfYmlvX2xpc3Q7CiAJaW50CQkJcGVuZGluZ19jb3VudDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bXRkL3ViaS9pby5jIGIvZHJpdmVycy9tdGQvdWJpL2lvLmMKaW5kZXggZjIwYjZmMi4uNmU3ZjRk NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvdWJpL2lvLmMKKysrIGIvZHJpdmVycy9tdGQvdWJp L2lvLmMKQEAgLTk0Myw2ICs5NDMsMTEgQEAgc3RhdGljIGludCB2YWxpZGF0ZV92aWRfaGRyKGNv bnN0IHN0cnVjdCB1YmlfZGV2aWNlICp1YmksCiAJCWdvdG8gYmFkOwogCX0KIAorCWlmIChkYXRh X3NpemUgPiB1YmktPmxlYl9zaXplKSB7CisJCXViaV9lcnIoImJhZCBkYXRhX3NpemUiKTsKKwkJ Z290byBiYWQ7CisJfQorCiAJaWYgKHZvbF90eXBlID09IFVCSV9WSURfU1RBVElDKSB7CiAJCS8q CiAJCSAqIEFsdGhvdWdoIGZyb20gaGlnaC1sZXZlbCBwb2ludCBvZiB2aWV3IHN0YXRpYyB2b2x1 bWVzIG1heQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvdWJpL3Z0YmwuYyBiL2RyaXZlcnMvbXRk L3ViaS92dGJsLmMKaW5kZXggOTViMjlmNS4uMzU3ZTQyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9t dGQvdWJpL3Z0YmwuYworKysgYi9kcml2ZXJzL210ZC91YmkvdnRibC5jCkBAIC02NTYsNiArNjU2 LDcgQEAgc3RhdGljIGludCBpbml0X3ZvbHVtZXMoc3RydWN0IHViaV9kZXZpY2UgKnViaSwgY29u c3Qgc3RydWN0IHViaV9zY2FuX2luZm8gKnNpLAogCQlpZiAodWJpLT5jb3JyX3BlYl9jb3VudCkK IAkJCXViaV9lcnIoIiVkIFBFQnMgYXJlIGNvcnJ1cHRlZCBhbmQgbm90IHVzZWQiLAogCQkJCXVi aS0+Y29ycl9wZWJfY291bnQpOworCQlyZXR1cm4gLUVOT1NQQzsKIAl9CiAJdWJpLT5yc3ZkX3Bl YnMgKz0gcmVzZXJ2ZWRfcGViczsKIAl1YmktPmF2YWlsX3BlYnMgLT0gcmVzZXJ2ZWRfcGViczsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3ViaS93bC5jIGIvZHJpdmVycy9tdGQvdWJpL3dsLmMK aW5kZXggNDIyZTViZS4uNzc2NTA2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvdWJpL3dsLmMK KysrIGIvZHJpdmVycy9tdGQvdWJpL3dsLmMKQEAgLTE1MTIsNiArMTUxMiw3IEBAIGludCB1Ymlf d2xfaW5pdF9zY2FuKHN0cnVjdCB1YmlfZGV2aWNlICp1YmksIHN0cnVjdCB1Ymlfc2Nhbl9pbmZv ICpzaSkKIAkJaWYgKHViaS0+Y29ycl9wZWJfY291bnQpCiAJCQl1YmlfZXJyKCIlZCBQRUJzIGFy ZSBjb3JydXB0ZWQgYW5kIG5vdCB1c2VkIiwKIAkJCQl1YmktPmNvcnJfcGViX2NvdW50KTsKKwkJ ZXJyID0gLUVOT1NQQzsKIAkJZ290byBvdXRfZnJlZTsKIAl9CiAJdWJpLT5hdmFpbF9wZWJzIC09 IFdMX1JFU0VSVkVEX1BFQlM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYyBi L2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCmluZGV4IDJmMzE5ZDEuLjBmNGEwNGQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5j CkBAIC0zMTksNyArMzE5LDYgQEAgc3RhdGljIHZvaWQgcHBwb2VfZmx1c2hfZGV2KHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYpCiAJCQlpZiAocG8tPnBwcG9lX2RldiA9PSBkZXYgJiYKIAkJCSAgICBz ay0+c2tfc3RhdGUgJiAoUFBQT1hfQ09OTkVDVEVEIHwgUFBQT1hfQk9VTkQgfCBQUFBPWF9aT01C SUUpKSB7CiAJCQkJcHBwb3hfdW5iaW5kX3NvY2soc2spOwotCQkJCXNrLT5za19zdGF0ZSA9IFBQ UE9YX1pPTUJJRTsKIAkJCQlzay0+c2tfc3RhdGVfY2hhbmdlKHNrKTsKIAkJCQlwby0+cHBwb2Vf ZGV2ID0gTlVMTDsKIAkJCQlkZXZfcHV0KGRldik7CkBAIC01NzYsNyArNTc1LDcgQEAgc3RhdGlj IGludCBwcHBvZV9yZWxlYXNlKHN0cnVjdCBzb2NrZXQgKnNvY2spCiAKIAlwbyA9IHBwcG94X3Nr KHNrKTsKIAotCWlmIChzay0+c2tfc3RhdGUgJiAoUFBQT1hfQ09OTkVDVEVEIHwgUFBQT1hfQk9V TkQgfCBQUFBPWF9aT01CSUUpKSB7CisJaWYgKHBvLT5wcHBvZV9kZXYpIHsKIAkJZGV2X3B1dChw by0+cHBwb2VfZGV2KTsKIAkJcG8tPnBwcG9lX2RldiA9IE5VTEw7CiAJfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdXNiL2FzaXguYyBiL2RyaXZlcnMvbmV0L3VzYi9hc2l4LmMKaW5kZXggOThh Yjc1OS4uM2QwNjhmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL2FzaXguYworKysgYi9k cml2ZXJzL25ldC91c2IvYXNpeC5jCkBAIC0xMTMyLDE5ICsxMTMyLDcgQEAgc3RhdGljIGludCBh eDg4NzcyX2JpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50 ZikKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlyZXQgPSBhc2l4X3N3X3Jlc2V0KGRldiwgQVhfU1dS RVNFVF9JUFBEIHwgQVhfU1dSRVNFVF9QUkwpOwotCWlmIChyZXQgPCAwKQotCQlyZXR1cm4gcmV0 OwotCi0JbXNsZWVwKDE1MCk7Ci0KLQlyZXQgPSBhc2l4X3N3X3Jlc2V0KGRldiwgQVhfU1dSRVNF VF9DTEVBUik7Ci0JaWYgKHJldCA8IDApCi0JCXJldHVybiByZXQ7Ci0KLQltc2xlZXAoMTUwKTsK LQotCXJldCA9IGFzaXhfc3dfcmVzZXQoZGV2LCBlbWJkX3BoeSA/IEFYX1NXUkVTRVRfSVBSTCA6 IEFYX1NXUkVTRVRfUFJURSk7CisJYXg4ODc3Ml9yZXNldChkZXYpOwogCiAJLyogUmVhZCBQSFlJ RCByZWdpc3RlciAqQUZURVIqIHRoZSBQSFkgd2FzIHJlc2V0IHByb3Blcmx5ICovCiAJcGh5aWQg PSBhc2l4X2dldF9waHlpZChkZXYpOwpAQCAtMTU1NSw3ICsxNTQzLDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcml2ZXJfaW5mbyBheDg4NzcyX2luZm8gPSB7CiAJLnVuYmluZCA9IGF4ODg3NzJf dW5iaW5kLAogCS5zdGF0dXMgPSBhc2l4X3N0YXR1cywKIAkubGlua19yZXNldCA9IGF4ODg3NzJf bGlua19yZXNldCwKLQkucmVzZXQgPSBheDg4NzcyX3Jlc2V0LAorCS5yZXNldCA9IGF4ODg3NzJf bGlua19yZXNldCwKIAkuZmxhZ3MgPSBGTEFHX0VUSEVSIHwgRkxBR19GUkFNSU5HX0FYIHwgRkxB R19MSU5LX0lOVFIgfCBGTEFHX01VTFRJX1BBQ0tFVCwKIAkucnhfZml4dXAgPSBhc2l4X3J4X2Zp eHVwX2NvbW1vbiwKIAkudHhfZml4dXAgPSBhc2l4X3R4X2ZpeHVwLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGg5ay9pbml0LmMKaW5kZXggMTM1NWQ3MS4uY2E2MDI1NiAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYworKysgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoOWsvaW5pdC5jCkBAIC03MDgsNiArNzA4LDcgQEAgdm9pZCBhdGg5a19zZXRf aHdfY2FwYWIoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KQog CWh3LT5tYXhfcmF0ZV90cmllcyA9IDEwOwogCWh3LT5zdGFfZGF0YV9zaXplID0gc2l6ZW9mKHN0 cnVjdCBhdGhfbm9kZSk7CiAJaHctPnZpZl9kYXRhX3NpemUgPSBzaXplb2Yoc3RydWN0IGF0aF92 aWYpOworCWh3LT5leHRyYV90eF9oZWFkcm9vbSA9IDQ7CiAKIAlody0+d2lwaHktPmF2YWlsYWJs ZV9hbnRlbm5hc19yeCA9IEJJVChhaC0+Y2Fwcy5tYXhfcnhjaGFpbnMpIC0gMTsKIAlody0+d2lw aHktPmF2YWlsYWJsZV9hbnRlbm5hc190eCA9IEJJVChhaC0+Y2Fwcy5tYXhfdHhjaGFpbnMpIC0g MTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLWFnbi5jIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtYWduLmMKaW5kZXggNGEzNjk3My4uZTBi MDM5MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtYWduLmMK KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtYWduLmMKQEAgLTIwMDEsNyAr MjAwMSw3IEBAIHN0YXRpYyB2b2lkIGl3bGFnbl93b3dsYW5fcHJvZ3JhbV9rZXlzKHN0cnVjdCBp ZWVlODAyMTFfaHcgKmh3LAogCQkJdTggKnBuID0gc2VxLmNjbXAucG47CiAKIAkJCWllZWU4MDIx MV9nZXRfa2V5X3J4X3NlcShrZXksIGksICZzZXEpOwotCQkJYWVzX3NjLT5wbiA9IGNwdV90b19s ZTY0KAorCQkJYWVzX3NjW2ldLnBuID0gY3B1X3RvX2xlNjQoCiAJCQkJCSh1NjQpcG5bNV0gfAog CQkJCQkoKHU2NClwbls0XSA8PCA4KSB8CiAJCQkJCSgodTY0KXBuWzNdIDw8IDE2KSB8CmRpZmYg LS1naXQgYS9kcml2ZXJzL3Njc2kvM3ctOXh4eC5jIGIvZHJpdmVycy9zY3NpLzN3LTl4eHguYwpp bmRleCBmYjM3ZGY2Li5kN2E5MGMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvM3ctOXh4eC5j CisrKyBiL2RyaXZlcnMvc2NzaS8zdy05eHh4LmMKQEAgLTIyNSw2ICsyMjUsMTcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdHdhX2ZvcHMgPSB7CiAJLmxsc2VlawkJPSBu b29wX2xsc2VlaywKIH07CiAKKy8qCisgKiBUaGUgY29udHJvbGxlcnMgdXNlIGFuIGlubGluZSBi dWZmZXIgaW5zdGVhZCBvZiBhIG1hcHBlZCBTR0wgZm9yIHNtYWxsLAorICogc2luZ2xlIGVudHJ5 IGJ1ZmZlcnMuICBOb3RlIHRoYXQgd2UgdHJlYXQgYSB6ZXJvLWxlbmd0aCB0cmFuc2ZlciBsaWtl CisgKiBhIG1hcHBlZCBTR0wuCisgKi8KK3N0YXRpYyBib29sIHR3YV9jb21tYW5kX21hcHBlZChz dHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCit7CisJcmV0dXJuIHNjc2lfc2dfY291bnQoY21kKSAhPSAx IHx8CisJCXNjc2lfYnVmZmxlbihjbWQpID49IFRXX01JTl9TR0xfTEVOR1RIOworfQorCiAvKiBU aGlzIGZ1bmN0aW9uIHdpbGwgY29tcGxldGUgYW4gYWVuIHJlcXVlc3QgZnJvbSB0aGUgaXNyICov CiBzdGF0aWMgaW50IHR3YV9hZW5fY29tcGxldGUoVFdfRGV2aWNlX0V4dGVuc2lvbiAqdHdfZGV2 LCBpbnQgcmVxdWVzdF9pZCkKIHsKQEAgLTEzNTEsNyArMTM2Miw4IEBAIHN0YXRpYyBpcnFyZXR1 cm5fdCB0d2FfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSkKIAkJCQl9CiAK IAkJCQkvKiBOb3cgY29tcGxldGUgdGhlIGlvICovCi0JCQkJc2NzaV9kbWFfdW5tYXAoY21kKTsK KwkJCQlpZiAodHdhX2NvbW1hbmRfbWFwcGVkKGNtZCkpCisJCQkJCXNjc2lfZG1hX3VubWFwKGNt ZCk7CiAJCQkJY21kLT5zY3NpX2RvbmUoY21kKTsKIAkJCQl0d19kZXYtPnN0YXRlW3JlcXVlc3Rf aWRdID0gVFdfU19DT01QTEVURUQ7CiAJCQkJdHdhX2ZyZWVfcmVxdWVzdF9pZCh0d19kZXYsIHJl cXVlc3RfaWQpOwpAQCAtMTU5NCw3ICsxNjA2LDggQEAgc3RhdGljIGludCB0d2FfcmVzZXRfZGV2 aWNlX2V4dGVuc2lvbihUV19EZXZpY2VfRXh0ZW5zaW9uICp0d19kZXYpCiAJCQkJc3RydWN0IHNj c2lfY21uZCAqY21kID0gdHdfZGV2LT5zcmJbaV07CiAKIAkJCQljbWQtPnJlc3VsdCA9IChESURf UkVTRVQgPDwgMTYpOwotCQkJCXNjc2lfZG1hX3VubWFwKGNtZCk7CisJCQkJaWYgKHR3YV9jb21t YW5kX21hcHBlZChjbWQpKQorCQkJCQlzY3NpX2RtYV91bm1hcChjbWQpOwogCQkJCWNtZC0+c2Nz aV9kb25lKGNtZCk7CiAJCQl9CiAJCX0KQEAgLTE3NzcsMTIgKzE3OTAsMTQgQEAgc3RhdGljIGlu dCB0d2Ffc2NzaV9xdWV1ZV9sY2soc3RydWN0IHNjc2lfY21uZCAqU0NwbnQsIHZvaWQgKCpkb25l KShzdHJ1Y3Qgc2NzaV8KIAlyZXR2YWwgPSB0d2Ffc2NzaW9wX2V4ZWN1dGVfc2NzaSh0d19kZXYs IHJlcXVlc3RfaWQsIE5VTEwsIDAsIE5VTEwpOwogCXN3aXRjaCAocmV0dmFsKSB7CiAJY2FzZSBT Q1NJX01MUVVFVUVfSE9TVF9CVVNZOgotCQlzY3NpX2RtYV91bm1hcChTQ3BudCk7CisJCWlmICh0 d2FfY29tbWFuZF9tYXBwZWQoU0NwbnQpKQorCQkJc2NzaV9kbWFfdW5tYXAoU0NwbnQpOwogCQl0 d2FfZnJlZV9yZXF1ZXN0X2lkKHR3X2RldiwgcmVxdWVzdF9pZCk7CiAJCWJyZWFrOwogCWNhc2Ug MToKIAkJU0NwbnQtPnJlc3VsdCA9IChESURfRVJST1IgPDwgMTYpOwotCQlzY3NpX2RtYV91bm1h cChTQ3BudCk7CisJCWlmICh0d2FfY29tbWFuZF9tYXBwZWQoU0NwbnQpKQorCQkJc2NzaV9kbWFf dW5tYXAoU0NwbnQpOwogCQlkb25lKFNDcG50KTsKIAkJdHdfZGV2LT5zdGF0ZVtyZXF1ZXN0X2lk XSA9IFRXX1NfQ09NUExFVEVEOwogCQl0d2FfZnJlZV9yZXF1ZXN0X2lkKHR3X2RldiwgcmVxdWVz dF9pZCk7CkBAIC0xODQzLDggKzE4NTgsNyBAQCBzdGF0aWMgaW50IHR3YV9zY3Npb3BfZXhlY3V0 ZV9zY3NpKFRXX0RldmljZV9FeHRlbnNpb24gKnR3X2RldiwgaW50IHJlcXVlc3RfaWQsCiAJCS8q IE1hcCBzZ2xpc3QgZnJvbSBzY3NpIGxheWVyIHRvIGNtZCBwYWNrZXQgKi8KIAogCQlpZiAoc2Nz aV9zZ19jb3VudChzcmIpKSB7Ci0JCQlpZiAoKHNjc2lfc2dfY291bnQoc3JiKSA9PSAxKSAmJgot CQkJICAgIChzY3NpX2J1ZmZsZW4oc3JiKSA8IFRXX01JTl9TR0xfTEVOR1RIKSkgeworCQkJaWYg KCF0d2FfY29tbWFuZF9tYXBwZWQoc3JiKSkgewogCQkJCWlmIChzcmItPnNjX2RhdGFfZGlyZWN0 aW9uID09IERNQV9UT19ERVZJQ0UgfHwKIAkJCQkgICAgc3JiLT5zY19kYXRhX2RpcmVjdGlvbiA9 PSBETUFfQklESVJFQ1RJT05BTCkKIAkJCQkJc2NzaV9zZ19jb3B5X3RvX2J1ZmZlcihzcmIsCkBA IC0xOTE3LDcgKzE5MzEsNyBAQCBzdGF0aWMgdm9pZCB0d2Ffc2NzaW9wX2V4ZWN1dGVfc2NzaV9j b21wbGV0ZShUV19EZXZpY2VfRXh0ZW5zaW9uICp0d19kZXYsIGludCByZQogewogCXN0cnVjdCBz Y3NpX2NtbmQgKmNtZCA9IHR3X2Rldi0+c3JiW3JlcXVlc3RfaWRdOwogCi0JaWYgKHNjc2lfYnVm ZmxlbihjbWQpIDwgVFdfTUlOX1NHTF9MRU5HVEggJiYKKwlpZiAoIXR3YV9jb21tYW5kX21hcHBl ZChjbWQpICYmCiAJICAgIChjbWQtPnNjX2RhdGFfZGlyZWN0aW9uID09IERNQV9GUk9NX0RFVklD RSB8fAogCSAgICAgY21kLT5zY19kYXRhX2RpcmVjdGlvbiA9PSBETUFfQklESVJFQ1RJT05BTCkp IHsKIAkJaWYgKHNjc2lfc2dfY291bnQoY21kKSA9PSAxKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJz L3Njc2kvbXZzYXMvbXZfc2FzLmMgYi9kcml2ZXJzL3Njc2kvbXZzYXMvbXZfc2FzLmMKaW5kZXgg YzZhZDY5NC4uMjhiMTA1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL212c2FzL212X3Nhcy5j CisrKyBiL2RyaXZlcnMvc2NzaS9tdnNhcy9tdl9zYXMuYwpAQCAtOTkxLDYgKzk5MSw4IEBAIHN0 YXRpYyB2b2lkIG12c19zbG90X2ZyZWUoc3RydWN0IG12c19pbmZvICptdmksIHUzMiByeF9kZXNj KQogc3RhdGljIHZvaWQgbXZzX3Nsb3RfdGFza19mcmVlKHN0cnVjdCBtdnNfaW5mbyAqbXZpLCBz dHJ1Y3Qgc2FzX3Rhc2sgKnRhc2ssCiAJCQkgIHN0cnVjdCBtdnNfc2xvdF9pbmZvICpzbG90LCB1 MzIgc2xvdF9pZHgpCiB7CisJaWYgKCFzbG90KQorCQlyZXR1cm47CiAJaWYgKCFzbG90LT50YXNr KQogCQlyZXR1cm47CiAJaWYgKCFzYXNfcHJvdG9jb2xfYXRhKHRhc2stPnRhc2tfcHJvdG8pKQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2lpby9hY2NlbC9zY2EzMDAwX3JpbmcuYyBiL2Ry aXZlcnMvc3RhZ2luZy9paW8vYWNjZWwvc2NhMzAwMF9yaW5nLmMKaW5kZXggNGE5YTAxZC4uOWU4 NmMxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2lpby9hY2NlbC9zY2EzMDAwX3Jpbmcu YworKysgYi9kcml2ZXJzL3N0YWdpbmcvaWlvL2FjY2VsL3NjYTMwMDBfcmluZy5jCkBAIC0xMjAs NyArMTIwLDcgQEAgc3RhdGljIGludCBzY2EzMDAwX3JlYWRfZmlyc3Rfbl9od19yYihzdHJ1Y3Qg aWlvX2J1ZmZlciAqciwKIAlpZiAocmV0KQogCQlnb3RvIGVycm9yX3JldDsKIAotCWZvciAoaSA9 IDA7IGkgPCBudW1fcmVhZDsgaSsrKQorCWZvciAoaSA9IDA7IGkgPCBudW1fcmVhZCAvIHNpemVv Zih1MTYpOyBpKyspCiAJCSooKCh1MTYgKilyeCkgKyBpKSA9IGJlMTZfdG9fY3B1cCgodTE2ICop cnggKyBpKTsKIAogCWlmIChjb3B5X3RvX3VzZXIoYnVmLCByeCwgbnVtX3JlYWQpKQpkaWZmIC0t Z2l0IGEvZHJpdmVycy90dHkvbl90dHkuYyBiL2RyaXZlcnMvdHR5L25fdHR5LmMKaW5kZXggYmFj ODNkOC4uNDY3MWY4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy90dHkvbl90dHkuYworKysgYi9kcml2 ZXJzL3R0eS9uX3R0eS5jCkBAIC0xMjk4LDggKzEyOTgsNyBAQCBoYW5kbGVfbmV3bGluZToKIAkJ CXR0eS0+Y2Fub25fZGF0YSsrOwogCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdHR5LT5yZWFk X2xvY2ssIGZsYWdzKTsKIAkJCWtpbGxfZmFzeW5jKCZ0dHktPmZhc3luYywgU0lHSU8sIFBPTExf SU4pOwotCQkJaWYgKHdhaXRxdWV1ZV9hY3RpdmUoJnR0eS0+cmVhZF93YWl0KSkKLQkJCQl3YWtl X3VwX2ludGVycnVwdGlibGUoJnR0eS0+cmVhZF93YWl0KTsKKwkJCXdha2VfdXBfaW50ZXJydXB0 aWJsZSgmdHR5LT5yZWFkX3dhaXQpOwogCQkJcmV0dXJuOwogCQl9CiAJfQpAQCAtMTQyMiw4ICsx NDIxLDcgQEAgc3RhdGljIHZvaWQgbl90dHlfcmVjZWl2ZV9idWYoc3RydWN0IHR0eV9zdHJ1Y3Qg KnR0eSwgY29uc3QgdW5zaWduZWQgY2hhciAqY3AsCiAJaWYgKCghdHR5LT5pY2Fub24gJiYgKHR0 eS0+cmVhZF9jbnQgPj0gdHR5LT5taW5pbXVtX3RvX3dha2UpKSB8fAogCQlMX0VYVFBST0ModHR5 KSkgewogCQlraWxsX2Zhc3luYygmdHR5LT5mYXN5bmMsIFNJR0lPLCBQT0xMX0lOKTsKLQkJaWYg KHdhaXRxdWV1ZV9hY3RpdmUoJnR0eS0+cmVhZF93YWl0KSkKLQkJCXdha2VfdXBfaW50ZXJydXB0 aWJsZSgmdHR5LT5yZWFkX3dhaXQpOworCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJnR0eS0+cmVh ZF93YWl0KTsKIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvdHR5X2lvLmMgYi9k cml2ZXJzL3R0eS90dHlfaW8uYwppbmRleCBmYTU5ZmJlLi42YWIwMzIyIDEwMDY0NAotLS0gYS9k cml2ZXJzL3R0eS90dHlfaW8uYworKysgYi9kcml2ZXJzL3R0eS90dHlfaW8uYwpAQCAtMTk4NSw4 ICsxOTg1LDI0IEBAIGdvdF9kcml2ZXI6CiAJaWYgKCFub2N0dHkgJiYKIAkgICAgY3VycmVudC0+ c2lnbmFsLT5sZWFkZXIgJiYKIAkgICAgIWN1cnJlbnQtPnNpZ25hbC0+dHR5ICYmCi0JICAgIHR0 eS0+c2Vzc2lvbiA9PSBOVUxMKQotCQlfX3Byb2Nfc2V0X3R0eShjdXJyZW50LCB0dHkpOworCSAg ICB0dHktPnNlc3Npb24gPT0gTlVMTCkgeworCQkvKgorCQkgKiBEb24ndCBsZXQgYSBwcm9jZXNz IHRoYXQgb25seSBoYXMgd3JpdGUgYWNjZXNzIHRvIHRoZSB0dHkKKwkJICogb2J0YWluIHRoZSBw cml2aWxlZ2VzIGFzc29jaWF0ZWQgd2l0aCBoYXZpbmcgYSB0dHkgYXMKKwkJICogY29udHJvbGxp bmcgdGVybWluYWwgKGJlaW5nIGFibGUgdG8gcmVvcGVuIGl0IHdpdGggZnVsbAorCQkgKiBhY2Nl c3MgdGhyb3VnaCAvZGV2L3R0eSwgYmVpbmcgYWJsZSB0byBwZXJmb3JtIHB1c2hiYWNrKS4KKwkJ ICogTWFueSBkaXN0cmlidXRpb25zIHNldCB0aGUgZ3JvdXAgb2YgYWxsIHR0eXMgdG8gInR0eSIg YW5kCisJCSAqIGdyYW50IHdyaXRlLW9ubHkgYWNjZXNzIHRvIGFsbCB0ZXJtaW5hbHMgZm9yIHNl dGdpZCB0dHkKKwkJICogYmluYXJpZXMsIHdoaWNoIHNob3VsZCBub3QgaW1wbHkgZnVsbCBwcml2 aWxlZ2VzIG9uIGFsbCB0dHlzLgorCQkgKgorCQkgKiBUaGlzIGNvdWxkIHRoZW9yZXRpY2FsbHkg YnJlYWsgb2xkIGNvZGUgdGhhdCBwZXJmb3JtcyBvcGVuKCkKKwkJICogb24gYSB3cml0ZS1vbmx5 IGZpbGUgZGVzY3JpcHRvci4gSW4gdGhhdCBjYXNlLCBpdCBtaWdodCBiZQorCQkgKiBuZWNlc3Nh cnkgdG8gYWxzbyBwZXJtaXQgdGhpcyBpZgorCQkgKiBpbm9kZV9wZXJtaXNzaW9uKGlub2RlLCBN QVlfUkVBRCkgPT0gMC4KKwkJICovCisJCWlmIChmaWxwLT5mX21vZGUgJiBGTU9ERV9SRUFEKQor CQkJX19wcm9jX3NldF90dHkoY3VycmVudCwgdHR5KTsKKwl9CiAJc3Bpbl91bmxvY2tfaXJxKCZj dXJyZW50LT5zaWdoYW5kLT5zaWdsb2NrKTsKIAl0dHlfdW5sb2NrKCk7CiAJbXV0ZXhfdW5sb2Nr KCZ0dHlfbXV0ZXgpOwpAQCAtMjI2Niw3ICsyMjgyLDcgQEAgc3RhdGljIGludCBmaW9uYmlvKHN0 cnVjdCBmaWxlICpmaWxlLCBpbnQgX191c2VyICpwKQogICoJCVRha2VzIC0+c2lnbG9jaygpIHdo ZW4gdXBkYXRpbmcgc2lnbmFsLT50dHkKICAqLwogCi1zdGF0aWMgaW50IHRpb2NzY3R0eShzdHJ1 Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgYXJnKQorc3RhdGljIGludCB0aW9jc2N0dHkoc3RydWN0 IHR0eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IGZpbGUgKmZpbGUsIGludCBhcmcpCiB7CiAJaW50IHJl dCA9IDA7CiAJaWYgKGN1cnJlbnQtPnNpZ25hbC0+bGVhZGVyICYmICh0YXNrX3Nlc3Npb24oY3Vy cmVudCkgPT0gdHR5LT5zZXNzaW9uKSkKQEAgLTIyOTksNiArMjMxNSwxMyBAQCBzdGF0aWMgaW50 IHRpb2NzY3R0eShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgYXJnKQogCQkJZ290byB1bmxv Y2s7CiAJCX0KIAl9CisKKwkvKiBTZWUgdGhlIGNvbW1lbnQgaW4gdHR5X29wZW4oKS4gKi8KKwlp ZiAoKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1JFQUQpID09IDAgJiYgIWNhcGFibGUoQ0FQX1NZU19B RE1JTikpIHsKKwkJcmV0ID0gLUVQRVJNOworCQlnb3RvIHVubG9jazsKKwl9CisKIAlwcm9jX3Nl dF90dHkoY3VycmVudCwgdHR5KTsKIHVubG9jazoKIAltdXRleF91bmxvY2soJnR0eV9tdXRleCk7 CkBAIC0yNjUzLDcgKzI2NzYsNyBAQCBsb25nIHR0eV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwg dW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJCW5vX3R0eSgpOwogCQlyZXR1 cm4gMDsKIAljYXNlIFRJT0NTQ1RUWToKLQkJcmV0dXJuIHRpb2NzY3R0eSh0dHksIGFyZyk7CisJ CXJldHVybiB0aW9jc2N0dHkodHR5LCBmaWxlLCBhcmcpOwogCWNhc2UgVElPQ0dQR1JQOgogCQly ZXR1cm4gdGlvY2dwZ3JwKHR0eSwgcmVhbF90dHksIHApOwogCWNhc2UgVElPQ1NQR1JQOgpkaWZm IC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9xdWlya3MuYyBiL2RyaXZlcnMvdXNiL2NvcmUvcXVp cmtzLmMKaW5kZXggYWQ0NTQwZS4uMTM1MzMyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY29y ZS9xdWlya3MuYworKysgYi9kcml2ZXJzL3VzYi9jb3JlL3F1aXJrcy5jCkBAIC01Myw2ICs1Mywx MyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgdXNiX3F1aXJrX2xpc3RbXSA9 IHsKIAl7IFVTQl9ERVZJQ0UoMHgwNDZkLCAweDA4MmQpLCAuZHJpdmVyX2luZm8gPSBVU0JfUVVJ UktfREVMQVlfSU5JVCB9LAogCXsgVVNCX0RFVklDRSgweDA0NmQsIDB4MDg0MyksIC5kcml2ZXJf aW5mbyA9IFVTQl9RVUlSS19ERUxBWV9JTklUIH0sCiAKKwkvKiBMb2dpdGVjaCBDb25mZXJlbmNl Q2FtIENDMzAwMGUgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDZkLCAweDA4NDcpLCAuZHJpdmVyX2lu Zm8gPSBVU0JfUVVJUktfREVMQVlfSU5JVCB9LAorCXsgVVNCX0RFVklDRSgweDA0NmQsIDB4MDg0 OCksIC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19ERUxBWV9JTklUIH0sCisKKwkvKiBMb2dpdGVj aCBQVFogUHJvIENhbWVyYSAqLworCXsgVVNCX0RFVklDRSgweDA0NmQsIDB4MDg1MyksIC5kcml2 ZXJfaW5mbyA9IFVTQl9RVUlSS19ERUxBWV9JTklUIH0sCisKIAkvKiBMb2dpdGVjaCBRdWlja2Nh bSBGdXNpb24gKi8KIAl7IFVTQl9ERVZJQ0UoMHgwNDZkLCAweDA4YzEpLCAuZHJpdmVyX2luZm8g PSBVU0JfUVVJUktfUkVTRVRfUkVTVU1FIH0sCiAKQEAgLTc3LDYgKzg0LDEyIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCB1c2JfcXVpcmtfbGlzdFtdID0gewogCS8qIFBoaWxp cHMgUFNDODA1IGF1ZGlvIGRldmljZSAqLwogCXsgVVNCX0RFVklDRSgweDA0NzEsIDB4MDE1NSks IC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwKIAorCS8qIFBsYW50cm9u aWMgQXVkaW8gNjU1IERTUCAqLworCXsgVVNCX0RFVklDRSgweDA0N2YsIDB4YzAwOCksIC5kcml2 ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwKKworCS8qIFBsYW50cm9uaWMgQXVk aW8gNjQ4IFVTQiAqLworCXsgVVNCX0RFVklDRSgweDA0N2YsIDB4YzAxMyksIC5kcml2ZXJfaW5m byA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwKKwogCS8qIEFydGlzbWFuIFdhdGNoZG9nIERv bmdsZSAqLwogCXsgVVNCX0RFVklDRSgweDA0YjQsIDB4MDUyNiksIC5kcml2ZXJfaW5mbyA9CiAJ CQlVU0JfUVVJUktfQ09ORklHX0lOVEZfU1RSSU5HUyB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy91 c2IvaG9zdC94aGNpLXBjaS5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jCmluZGV4IGEz MGY5ZTUuLmE0MmVmMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYwor KysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMKQEAgLTEyMyw2ICsxMjMsMTEgQEAgc3Rh dGljIHZvaWQgeGhjaV9wY2lfcXVpcmtzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHhoY2lf aGNkICp4aGNpKQogCQl4aGNpLT5xdWlya3MgfD0gWEhDSV9TUFVSSU9VU19SRUJPT1Q7CiAJfQog CWlmIChwZGV2LT52ZW5kb3IgPT0gUENJX1ZFTkRPUl9JRF9JTlRFTCAmJgorCQlwZGV2LT5kZXZp Y2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9MWU5YUE9JTlRfTFBfWEhDSSkgeworCQl4aGNpLT5x dWlya3MgfD0gWEhDSV9TUFVSSU9VU19SRUJPT1Q7CisJCXhoY2ktPnF1aXJrcyB8PSBYSENJX1NQ VVJJT1VTX1dBS0VVUDsKKwl9CisJaWYgKHBkZXYtPnZlbmRvciA9PSBQQ0lfVkVORE9SX0lEX0lO VEVMICYmCiAJCShwZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9TVU5SSVNFUE9J TlRfTFBfWEhDSSB8fAogCQkgcGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfU1VO UklTRVBPSU5UX0hfWEhDSSB8fAogCQkgcGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5U RUxfQ0hFUlJZVklFV19YSENJKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNp LXJpbmcuYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMKaW5kZXggZGM4ZTVhOC4uOWY1 NzExMSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYworKysgYi9kcml2 ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jCkBAIC0yMTg3LDYgKzIxODcsMTAgQEAgc3RhdGljIGlu dCBwcm9jZXNzX2J1bGtfaW50cl90ZChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksIHN0cnVjdCB4aGNp X3RkICp0ZCwKIAkJCQlFVkVOVF9UUkJfTEVOKGxlMzJfdG9fY3B1KGV2ZW50LT50cmFuc2Zlcl9s ZW4pKSk7CiAJLyogRmFzdCBwYXRoIC0gd2FzIHRoaXMgdGhlIGxhc3QgVFJCIGluIHRoZSBURCBm b3IgdGhpcyBVUkI/ICovCiAJaWYgKGV2ZW50X3RyYiA9PSB0ZC0+bGFzdF90cmIpIHsKKwkJaWYg KHRkLT51cmJfbGVuZ3RoX3NldCAmJiB0cmJfY29tcF9jb2RlID09IENPTVBfU0hPUlRfVFgpCisJ CQlyZXR1cm4gZmluaXNoX3RkKHhoY2ksIHRkLCBldmVudF90cmIsIGV2ZW50LCBlcCwKKwkJCQkJ IHN0YXR1cywgZmFsc2UpOworCiAJCWlmIChFVkVOVF9UUkJfTEVOKGxlMzJfdG9fY3B1KGV2ZW50 LT50cmFuc2Zlcl9sZW4pKSAhPSAwKSB7CiAJCQl0ZC0+dXJiLT5hY3R1YWxfbGVuZ3RoID0KIAkJ CQl0ZC0+dXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoIC0KQEAgLTIyMzgsNiArMjI0MiwxMiBA QCBzdGF0aWMgaW50IHByb2Nlc3NfYnVsa19pbnRyX3RkKHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwg c3RydWN0IHhoY2lfdGQgKnRkLAogCQkJdGQtPnVyYi0+YWN0dWFsX2xlbmd0aCArPQogCQkJCVRS Ql9MRU4obGUzMl90b19jcHUoY3VyX3RyYi0+Z2VuZXJpYy5maWVsZFsyXSkpIC0KIAkJCQlFVkVO VF9UUkJfTEVOKGxlMzJfdG9fY3B1KGV2ZW50LT50cmFuc2Zlcl9sZW4pKTsKKworCQlpZiAodHJi X2NvbXBfY29kZSA9PSBDT01QX1NIT1JUX1RYKSB7CisJCQl4aGNpX2RiZyh4aGNpLCAibWlkIGJ1 bGsvaW50ciBTUCwgd2FpdCBmb3IgbGFzdCBUUkIgZXZlbnRcbiIpOworCQkJdGQtPnVyYl9sZW5n dGhfc2V0ID0gdHJ1ZTsKKwkJCXJldHVybiAwOworCQl9CiAJfQogCiAJcmV0dXJuIGZpbmlzaF90 ZCh4aGNpLCB0ZCwgZXZlbnRfdHJiLCBldmVudCwgZXAsIHN0YXR1cywgZmFsc2UpOwpAQCAtMjI2 OCw2ICsyMjc4LDcgQEAgc3RhdGljIGludCBoYW5kbGVfdHhfZXZlbnQoc3RydWN0IHhoY2lfaGNk ICp4aGNpLAogCXUzMiB0cmJfY29tcF9jb2RlOwogCWludCByZXQgPSAwOwogCWludCB0ZF9udW0g PSAwOworCWJvb2wgaGFuZGxpbmdfc2tpcHBlZF90ZHMgPSBmYWxzZTsKIAogCXNsb3RfaWQgPSBU UkJfVE9fU0xPVF9JRChsZTMyX3RvX2NwdShldmVudC0+ZmxhZ3MpKTsKIAl4ZGV2ID0geGhjaS0+ ZGV2c1tzbG90X2lkXTsKQEAgLTIzODEsNiArMjM5MiwxMCBAQCBzdGF0aWMgaW50IGhhbmRsZV90 eF9ldmVudChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksCiAJCWVwLT5za2lwID0gdHJ1ZTsKIAkJeGhj aV9kYmcoeGhjaSwgIk1pc3Mgc2VydmljZSBpbnRlcnZhbCBlcnJvciwgc2V0IHNraXAgZmxhZ1xu Iik7CiAJCWdvdG8gY2xlYW51cDsKKwljYXNlIENPTVBfUElOR19FUlI6CisJCWVwLT5za2lwID0g dHJ1ZTsKKwkJeGhjaV9kYmcoeGhjaSwgIk5vIFBpbmcgcmVzcG9uc2UgZXJyb3IsIFNraXAgb25l IElzb2MgVERcbiIpOworCQlnb3RvIGNsZWFudXA7CiAJZGVmYXVsdDoKIAkJaWYgKHhoY2lfaXNf dmVuZG9yX2luZm9fY29kZSh4aGNpLCB0cmJfY29tcF9jb2RlKSkgewogCQkJc3RhdHVzID0gMDsK QEAgLTI1MTIsMTMgKzI1MjcsMTggQEAgc3RhdGljIGludCBoYW5kbGVfdHhfZXZlbnQoc3RydWN0 IHhoY2lfaGNkICp4aGNpLAogCQkJCQkJIGVwLCAmc3RhdHVzKTsKIAogY2xlYW51cDoKKworCisJ CWhhbmRsaW5nX3NraXBwZWRfdGRzID0gZXAtPnNraXAgJiYKKwkJCXRyYl9jb21wX2NvZGUgIT0g Q09NUF9NSVNTRURfSU5UICYmCisJCQl0cmJfY29tcF9jb2RlICE9IENPTVBfUElOR19FUlI7CisK IAkJLyoKLQkJICogRG8gbm90IHVwZGF0ZSBldmVudCByaW5nIGRlcXVldWUgcG9pbnRlciBpZiBl cC0+c2tpcCBpcyBzZXQuCi0JCSAqIFdpbGwgcm9sbCBiYWNrIHRvIGNvbnRpbnVlIHByb2Nlc3Mg bWlzc2VkIHRkcy4KKwkJICogRG8gbm90IHVwZGF0ZSBldmVudCByaW5nIGRlcXVldWUgcG9pbnRl ciBpZiB3ZSdyZSBpbiBhIGxvb3AKKwkJICogcHJvY2Vzc2luZyBtaXNzZWQgdGRzLgogCQkgKi8K LQkJaWYgKHRyYl9jb21wX2NvZGUgPT0gQ09NUF9NSVNTRURfSU5UIHx8ICFlcC0+c2tpcCkgewor CQlpZiAoIWhhbmRsaW5nX3NraXBwZWRfdGRzKQogCQkJaW5jX2RlcSh4aGNpLCB4aGNpLT5ldmVu dF9yaW5nLCB0cnVlKTsKLQkJfQogCiAJCWlmIChyZXQpIHsKIAkJCXVyYiA9IHRkLT51cmI7CkBA IC0yNTUzLDcgKzI1NzMsNyBAQCBjbGVhbnVwOgogCSAqIFByb2Nlc3MgdGhlbSBhcyBzaG9ydCB0 cmFuc2ZlciB1bnRpbCByZWFjaCB0aGUgdGQgcG9pbnRlZCBieQogCSAqIHRoZSBldmVudC4KIAkg Ki8KLQl9IHdoaWxlIChlcC0+c2tpcCAmJiB0cmJfY29tcF9jb2RlICE9IENPTVBfTUlTU0VEX0lO VCk7CisJfSB3aGlsZSAoaGFuZGxpbmdfc2tpcHBlZF90ZHMpOwogCiAJcmV0dXJuIDA7CiB9CmRp ZmYgLS1naXQgYS9mcy9jaWZzL2lub2RlLmMgYi9mcy9jaWZzL2lub2RlLmMKaW5kZXggNzEwZGQw NS4uMWRjMGFmNyAxMDA2NDQKLS0tIGEvZnMvY2lmcy9pbm9kZS5jCisrKyBiL2ZzL2NpZnMvaW5v ZGUuYwpAQCAtMTg3Myw3ICsxODczLDYgQEAgY2lmc19zZXRfZmlsZV9zaXplKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIHN0cnVjdCBpYXR0ciAqYXR0cnMsCiAJc3RydWN0IGNpZnNfc2JfaW5mbyAqY2lm c19zYiA9IENJRlNfU0IoaW5vZGUtPmlfc2IpOwogCXN0cnVjdCB0Y29uX2xpbmsgKnRsaW5rID0g TlVMTDsKIAlzdHJ1Y3QgY2lmc190Y29uICpwVGNvbiA9IE5VTEw7Ci0Jc3RydWN0IGNpZnNfaW9f cGFybXMgaW9fcGFybXM7CiAKIAkvKgogCSAqIFRvIGF2b2lkIHNwdXJpb3VzIG9wbG9jayBicmVh a3MgZnJvbSBzZXJ2ZXIsIGluIHRoZSBjYXNlIG9mCkBAIC0xODkzLDE4ICsxODkyLDYgQEAgY2lm c19zZXRfZmlsZV9zaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBpYXR0ciAqYXR0cnMs CiAJCQkJCW5waWQsIGZhbHNlKTsKIAkJY2lmc0ZpbGVJbmZvX3B1dChvcGVuX2ZpbGUpOwogCQlj RllJKDEsICJTZXRGU2l6ZSBmb3IgYXR0cnMgcmMgPSAlZCIsIHJjKTsKLQkJaWYgKChyYyA9PSAt RUlOVkFMKSB8fCAocmMgPT0gLUVPUE5PVFNVUFApKSB7Ci0JCQl1bnNpZ25lZCBpbnQgYnl0ZXNf d3JpdHRlbjsKLQotCQkJaW9fcGFybXMubmV0ZmlkID0gbmZpZDsKLQkJCWlvX3Bhcm1zLnBpZCA9 IG5waWQ7Ci0JCQlpb19wYXJtcy50Y29uID0gcFRjb247Ci0JCQlpb19wYXJtcy5vZmZzZXQgPSAw OwotCQkJaW9fcGFybXMubGVuZ3RoID0gYXR0cnMtPmlhX3NpemU7Ci0JCQlyYyA9IENJRlNTTUJX cml0ZSh4aWQsICZpb19wYXJtcywgJmJ5dGVzX3dyaXR0ZW4sCi0JCQkJCSAgTlVMTCwgTlVMTCwg MSk7Ci0JCQljRllJKDEsICJXcnQgc2V0ZW9mIHJjICVkIiwgcmMpOwotCQl9CiAJfSBlbHNlCiAJ CXJjID0gLUVJTlZBTDsKIApAQCAtMTkyNSwzMSArMTkxMiw3IEBAIGNpZnNfc2V0X2ZpbGVfc2l6 ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaWF0dHIgKmF0dHJzLAogCQkJCSAgIGNpZnNf c2ItPm1udF9jaWZzX2ZsYWdzICYKIAkJCQkJQ0lGU19NT1VOVF9NQVBfU1BFQ0lBTF9DSFIpOwog CQljRllJKDEsICJTZXRFT0YgYnkgcGF0aCAoc2V0YXR0cnMpIHJjID0gJWQiLCByYyk7Ci0JCWlm ICgocmMgPT0gLUVJTlZBTCkgfHwgKHJjID09IC1FT1BOT1RTVVBQKSkgewotCQkJX191MTYgbmV0 ZmlkOwotCQkJaW50IG9wbG9jayA9IDA7Ci0KLQkJCXJjID0gU01CTGVnYWN5T3Blbih4aWQsIHBU Y29uLCBmdWxsX3BhdGgsCi0JCQkJRklMRV9PUEVOLCBHRU5FUklDX1dSSVRFLAotCQkJCUNSRUFU RV9OT1RfRElSLCAmbmV0ZmlkLCAmb3Bsb2NrLCBOVUxMLAotCQkJCWNpZnNfc2ItPmxvY2FsX25s cywKLQkJCQljaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmCi0JCQkJCUNJRlNfTU9VTlRfTUFQX1NQ RUNJQUxfQ0hSKTsKLQkJCWlmIChyYyA9PSAwKSB7Ci0JCQkJdW5zaWduZWQgaW50IGJ5dGVzX3dy aXR0ZW47Ci0KLQkJCQlpb19wYXJtcy5uZXRmaWQgPSBuZXRmaWQ7Ci0JCQkJaW9fcGFybXMucGlk ID0gY3VycmVudC0+dGdpZDsKLQkJCQlpb19wYXJtcy50Y29uID0gcFRjb247Ci0JCQkJaW9fcGFy bXMub2Zmc2V0ID0gMDsKLQkJCQlpb19wYXJtcy5sZW5ndGggPSBhdHRycy0+aWFfc2l6ZTsKLQkJ CQlyYyA9IENJRlNTTUJXcml0ZSh4aWQsICZpb19wYXJtcywKLQkJCQkJCSAgJmJ5dGVzX3dyaXR0 ZW4sCi0JCQkJCQkgIE5VTEwsIE5VTEwsICAxKTsKLQkJCQljRllJKDEsICJ3cnQgc2V0ZW9mIHJj ICVkIiwgcmMpOwotCQkJCUNJRlNTTUJDbG9zZSh4aWQsIHBUY29uLCBuZXRmaWQpOwotCQkJfQot CQl9CisKIAkJaWYgKHRsaW5rKQogCQkJY2lmc19wdXRfdGxpbmsodGxpbmspOwogCX0KZGlmZiAt LWdpdCBhL2ZzL25mcy9uZnM0c3RhdGUuYyBiL2ZzL25mcy9uZnM0c3RhdGUuYwppbmRleCBjZDU1 MjE0Li5jNGM4MjQzIDEwMDY0NAotLS0gYS9mcy9uZnMvbmZzNHN0YXRlLmMKKysrIGIvZnMvbmZz L25mczRzdGF0ZS5jCkBAIC0xMTkyLDcgKzExOTIsNyBAQCByZXN0YXJ0OgogCQkJCX0KIAkJCQlz cGluX3VubG9jaygmc3RhdGUtPnN0YXRlX2xvY2spOwogCQkJCW5mczRfcHV0X29wZW5fc3RhdGUo c3RhdGUpOwotCQkJCWNsZWFyX2JpdChORlM0Q0xOVF9SRUNMQUlNX05PR1JBQ0UsCisJCQkJY2xl YXJfYml0KE5GU19TVEFURV9SRUNMQUlNX05PR1JBQ0UsCiAJCQkJCSZzdGF0ZS0+ZmxhZ3MpOwog CQkJCWdvdG8gcmVzdGFydDsKIAkJCX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2NoZWQu aCBiL2luY2x1ZGUvbGludXgvc2NoZWQuaAppbmRleCA0NGU1ZjQ3Li45YjlhYzI5IDEwMDY0NAot LS0gYS9pbmNsdWRlL2xpbnV4L3NjaGVkLmgKKysrIGIvaW5jbHVkZS9saW51eC9zY2hlZC5oCkBA IC0xNjkwLDcgKzE2OTAsNyBAQCBzdGF0aWMgaW5saW5lIHBpZF90IHRhc2tfdGdpZF92bnIoc3Ry dWN0IHRhc2tfc3RydWN0ICp0c2spCiB9CiAKIAotc3RhdGljIGludCBwaWRfYWxpdmUoY29uc3Qg c3RydWN0IHRhc2tfc3RydWN0ICpwKTsKK3N0YXRpYyBpbmxpbmUgaW50IHBpZF9hbGl2ZShjb25z dCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApOwogc3RhdGljIGlubGluZSBwaWRfdCB0YXNrX3BwaWRf bnJfbnMoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBwaWRfbmFtZXNwYWNl ICpucykKIHsKIAlwaWRfdCBwaWQgPSAwOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9za2J1 ZmYuaCBiL2luY2x1ZGUvbGludXgvc2tidWZmLmgKaW5kZXggMWI0ZWEyOS4uZDBjOWU2ZCAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NrYnVm Zi5oCkBAIC0yMDQ1LDYgKzIwNDUsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2tiX3Bvc3RwdWxs X3Jjc3VtKHN0cnVjdCBza19idWZmICpza2IsCiB7CiAJaWYgKHNrYi0+aXBfc3VtbWVkID09IENI RUNLU1VNX0NPTVBMRVRFKQogCQlza2ItPmNzdW0gPSBjc3VtX3N1Yihza2ItPmNzdW0sIGNzdW1f cGFydGlhbChzdGFydCwgbGVuLCAwKSk7CisJZWxzZSBpZiAoc2tiLT5pcF9zdW1tZWQgPT0gQ0hF Q0tTVU1fUEFSVElBTCAmJgorCQkgc2tiX2NoZWNrc3VtX3N0YXJ0X29mZnNldChza2IpIDwgMCkK KwkJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NVTV9OT05FOwogfQogCiB1bnNpZ25lZCBjaGFyICpz a2JfcHVsbF9yY3N1bShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgbGVuKTsKQEAg LTIxMzEsNyArMjEzNCw4IEBAIGV4dGVybiBpbnQJICAgICAgIHNrYl9jb3B5X2RhdGFncmFtX2lv dmVjKGNvbnN0IHN0cnVjdCBza19idWZmICpmcm9tLAogCQkJCQkgICAgICAgaW50IHNpemUpOwog ZXh0ZXJuIGludAkgICAgICAgc2tiX2NvcHlfYW5kX2NzdW1fZGF0YWdyYW1faW92ZWMoc3RydWN0 IHNrX2J1ZmYgKnNrYiwKIAkJCQkJCQlpbnQgaGxlbiwKLQkJCQkJCQlzdHJ1Y3QgaW92ZWMgKmlv dik7CisJCQkJCQkJc3RydWN0IGlvdmVjICppb3YsCisJCQkJCQkJaW50IGxlbik7CiBleHRlcm4g aW50CSAgICAgICBza2JfY29weV9kYXRhZ3JhbV9mcm9tX2lvdmVjKHN0cnVjdCBza19idWZmICpz a2IsCiAJCQkJCQkgICAgaW50IG9mZnNldCwKIAkJCQkJCSAgICBjb25zdCBzdHJ1Y3QgaW92ZWMg KmZyb20sCmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL3dtODkwNC5oIGIvaW5jbHVkZS9zb3Vu ZC93bTg5MDQuaAppbmRleCA4OThiZTNhLi42ZDhmOGZiIDEwMDY0NAotLS0gYS9pbmNsdWRlL3Nv dW5kL3dtODkwNC5oCisrKyBiL2luY2x1ZGUvc291bmQvd204OTA0LmgKQEAgLTExOSw3ICsxMTks NyBAQAogI2RlZmluZSBXTTg5MDRfTUlDX1JFR1MgIDIKICNkZWZpbmUgV004OTA0X0dQSU9fUkVH UyA0CiAjZGVmaW5lIFdNODkwNF9EUkNfUkVHUyAgNAotI2RlZmluZSBXTTg5MDRfRVFfUkVHUyAg IDI1CisjZGVmaW5lIFdNODkwNF9FUV9SRUdTICAgMjQKIAogLyoqCiAgKiBEUkMgY29uZmlndXJh dGlvbnMgYXJlIHNwZWNpZmllZCB3aXRoIGEgbGFiZWwgYW5kIGEgc2V0IG9mIHJlZ2lzdGVyCmRp ZmYgLS1naXQgYS9rZXJuZWwvaXJxL3Byb2MuYyBiL2tlcm5lbC9pcnEvcHJvYy5jCmluZGV4IGZi NjU1ZjVmLi4xNTM3NGQwIDEwMDY0NAotLS0gYS9rZXJuZWwvaXJxL3Byb2MuYworKysgYi9rZXJu ZWwvaXJxL3Byb2MuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxl Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVs X3N0YXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogCiAjaW5jbHVkZSAiaW50ZXJuYWxz LmgiCiAKQEAgLTMyNiwxOCArMzI3LDI5IEBAIHZvaWQgcmVnaXN0ZXJfaGFuZGxlcl9wcm9jKHVu c2lnbmVkIGludCBpcnEsIHN0cnVjdCBpcnFhY3Rpb24gKmFjdGlvbikKIAogdm9pZCByZWdpc3Rl cl9pcnFfcHJvYyh1bnNpZ25lZCBpbnQgaXJxLCBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCiB7CisJ c3RhdGljIERFRklORV9NVVRFWChyZWdpc3Rlcl9sb2NrKTsKIAljaGFyIG5hbWUgW01BWF9OQU1F TEVOXTsKIAotCWlmICghcm9vdF9pcnFfZGlyIHx8IChkZXNjLT5pcnFfZGF0YS5jaGlwID09ICZu b19pcnFfY2hpcCkgfHwgZGVzYy0+ZGlyKQorCWlmICghcm9vdF9pcnFfZGlyIHx8IChkZXNjLT5p cnFfZGF0YS5jaGlwID09ICZub19pcnFfY2hpcCkpCiAJCXJldHVybjsKIAorCS8qCisJICogaXJx IGRpcmVjdG9yaWVzIGFyZSByZWdpc3RlcmVkIG9ubHkgd2hlbiBhIGhhbmRsZXIgaXMKKwkgKiBh ZGRlZCwgbm90IHdoZW4gdGhlIGRlc2NyaXB0b3IgaXMgY3JlYXRlZCwgc28gbXVsdGlwbGUKKwkg KiB0YXNrcyBtaWdodCB0cnkgdG8gcmVnaXN0ZXIgYXQgdGhlIHNhbWUgdGltZS4KKwkgKi8KKwlt dXRleF9sb2NrKCZyZWdpc3Rlcl9sb2NrKTsKKworCWlmIChkZXNjLT5kaXIpCisJCWdvdG8gb3V0 X3VubG9jazsKKwogCW1lbXNldChuYW1lLCAwLCBNQVhfTkFNRUxFTik7CiAJc3ByaW50ZihuYW1l LCAiJWQiLCBpcnEpOwogCiAJLyogY3JlYXRlIC9wcm9jL2lycS8xMjM0ICovCiAJZGVzYy0+ZGly ID0gcHJvY19ta2RpcihuYW1lLCByb290X2lycV9kaXIpOwogCWlmICghZGVzYy0+ZGlyKQotCQly ZXR1cm47CisJCWdvdG8gb3V0X3VubG9jazsKIAogI2lmZGVmIENPTkZJR19TTVAKIAkvKiBjcmVh dGUgL3Byb2MvaXJxLzxpcnE+L3NtcF9hZmZpbml0eSAqLwpAQCAtMzU4LDYgKzM3MCw5IEBAIHZv aWQgcmVnaXN0ZXJfaXJxX3Byb2ModW5zaWduZWQgaW50IGlycSwgc3RydWN0IGlycV9kZXNjICpk ZXNjKQogCiAJcHJvY19jcmVhdGVfZGF0YSgic3B1cmlvdXMiLCAwNDQ0LCBkZXNjLT5kaXIsCiAJ CQkgJmlycV9zcHVyaW91c19wcm9jX2ZvcHMsICh2b2lkICopKGxvbmcpaXJxKTsKKworb3V0X3Vu bG9jazoKKwltdXRleF91bmxvY2soJnJlZ2lzdGVyX2xvY2spOwogfQogCiB2b2lkIHVucmVnaXN0 ZXJfaXJxX3Byb2ModW5zaWduZWQgaW50IGlycSwgc3RydWN0IGlycV9kZXNjICpkZXNjKQpkaWZm IC0tZ2l0IGEva2VybmVsL21vZHVsZS5jIGIva2VybmVsL21vZHVsZS5jCmluZGV4IDk1ZWNkOWYu LjhkMmYzN2QgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9tb2R1bGUuYworKysgYi9rZXJuZWwvbW9kdWxl LmMKQEAgLTg5MywxMSArODkzLDE1IEBAIHZvaWQgc3ltYm9sX3B1dF9hZGRyKHZvaWQgKmFkZHIp CiAJaWYgKGNvcmVfa2VybmVsX3RleHQoYSkpCiAJCXJldHVybjsKIAotCS8qIG1vZHVsZV90ZXh0 X2FkZHJlc3MgaXMgc2FmZSBoZXJlOiB3ZSdyZSBzdXBwb3NlZCB0byBoYXZlIHJlZmVyZW5jZQot CSAqIHRvIG1vZHVsZSBmcm9tIHN5bWJvbF9nZXQsIHNvIGl0IGNhbid0IGdvIGF3YXkuICovCisJ LyoKKwkgKiBFdmVuIHRob3VnaCB3ZSBob2xkIGEgcmVmZXJlbmNlIG9uIHRoZSBtb2R1bGU7IHdl IHN0aWxsIG5lZWQgdG8KKwkgKiBkaXNhYmxlIHByZWVtcHRpb24gaW4gb3JkZXIgdG8gc2FmZWx5 IHRyYXZlcnNlIHRoZSBkYXRhIHN0cnVjdHVyZS4KKwkgKi8KKwlwcmVlbXB0X2Rpc2FibGUoKTsK IAltb2RhZGRyID0gX19tb2R1bGVfdGV4dF9hZGRyZXNzKGEpOwogCUJVR19PTighbW9kYWRkcik7 CiAJbW9kdWxlX3B1dChtb2RhZGRyKTsKKwlwcmVlbXB0X2VuYWJsZSgpOwogfQogRVhQT1JUX1NZ TUJPTF9HUEwoc3ltYm9sX3B1dF9hZGRyKTsKIApkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkLmMg Yi9rZXJuZWwvc2NoZWQuYwppbmRleCBmZTMzZDBmLi4yN2MzMDkyIDEwMDY0NAotLS0gYS9rZXJu ZWwvc2NoZWQuYworKysgYi9rZXJuZWwvc2NoZWQuYwpAQCAtMTAxNiw4ICsxMDE2LDEwIEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBmaW5pc2hfbG9ja19zd2l0Y2goc3RydWN0IHJxICpycSwgc3RydWN0 IHRhc2tfc3RydWN0ICpwcmV2KQogCSAqIEFmdGVyIC0+b25fY3B1IGlzIGNsZWFyZWQsIHRoZSB0 YXNrIGNhbiBiZSBtb3ZlZCB0byBhIGRpZmZlcmVudCBDUFUuCiAJICogV2UgbXVzdCBlbnN1cmUg dGhpcyBkb2Vzbid0IGhhcHBlbiB1bnRpbCB0aGUgc3dpdGNoIGlzIGNvbXBsZXRlbHkKIAkgKiBm aW5pc2hlZC4KKwkgKgorCSAqIFBhaXJzIHdpdGggdGhlIGNvbnRyb2wgZGVwZW5kZW5jeSBhbmQg cm1iIGluIHRyeV90b193YWtlX3VwKCkuCiAJICovCi0Jc21wX3dtYigpOworCXNtcF9tYigpOwog CXByZXYtPm9uX2NwdSA9IDA7CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfREVCVUdfU1BJTkxPQ0sK QEAgLTMxOTEsMTEgKzMxOTMsMTEgQEAgc3RhdGljIHZvaWQgZmluaXNoX3Rhc2tfc3dpdGNoKHN0 cnVjdCBycSAqcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldikKIAkgKiBJZiBhIHRhc2sgZGll cywgdGhlbiBpdCBzZXRzIFRBU0tfREVBRCBpbiB0c2stPnN0YXRlIGFuZCBjYWxscwogCSAqIHNj aGVkdWxlIG9uZSBsYXN0IHRpbWUuIFRoZSBzY2hlZHVsZSBjYWxsIHdpbGwgbmV2ZXIgcmV0dXJu LCBhbmQKIAkgKiB0aGUgc2NoZWR1bGVkIHRhc2sgbXVzdCBkcm9wIHRoYXQgcmVmZXJlbmNlLgot CSAqIFRoZSB0ZXN0IGZvciBUQVNLX0RFQUQgbXVzdCBvY2N1ciB3aGlsZSB0aGUgcnVucXVldWUg bG9ja3MgYXJlCi0JICogc3RpbGwgaGVsZCwgb3RoZXJ3aXNlIHByZXYgY291bGQgYmUgc2NoZWR1 bGVkIG9uIGFub3RoZXIgY3B1LCBkaWUKLQkgKiB0aGVyZSBiZWZvcmUgd2UgbG9vayBhdCBwcmV2 LT5zdGF0ZSwgYW5kIHRoZW4gdGhlIHJlZmVyZW5jZSB3b3VsZAotCSAqIGJlIGRyb3BwZWQgdHdp Y2UuCi0JICoJCU1hbmZyZWQgU3ByYXVsIDxtYW5mcmVkQGNvbG9yZnVsbGlmZS5jb20+CisJICoK KwkgKiBXZSBtdXN0IG9ic2VydmUgcHJldi0+c3RhdGUgYmVmb3JlIGNsZWFyaW5nIHByZXYtPm9u X2NwdSAoaW4KKwkgKiBmaW5pc2hfbG9ja19zd2l0Y2gpLCBvdGhlcndpc2UgYSBjb25jdXJyZW50 IHdha2V1cCBjYW4gZ2V0IHByZXYKKwkgKiBydW5uaW5nIG9uIGFub3RoZXIgQ1BVIGFuZCB3ZSBj b3VsZCByYXZlIHdpdGggaXRzIFJVTk5JTkcgLT4gREVBRAorCSAqIHRyYW5zaXRpb24sIHJlc3Vs dGluZyBpbiBhIGRvdWJsZSBkcm9wLgogCSAqLwogCXByZXZfc3RhdGUgPSBwcmV2LT5zdGF0ZTsK IAlmaW5pc2hfYXJjaF9zd2l0Y2gocHJldik7CmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS9jbG9j a3NvdXJjZS5jIGIva2VybmVsL3RpbWUvY2xvY2tzb3VyY2UuYwppbmRleCBkM2FkMDIyLi5mZWUx MGI1IDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS9jbG9ja3NvdXJjZS5jCisrKyBiL2tlcm5lbC90 aW1lL2Nsb2Nrc291cmNlLmMKQEAgLTI5MSw3ICsyOTEsNyBAQCBzdGF0aWMgdm9pZCBjbG9ja3Nv dXJjZV93YXRjaGRvZyh1bnNpZ25lZCBsb25nIGRhdGEpCiAJCQljb250aW51ZTsKIAogCQkvKiBD aGVjayB0aGUgZGV2aWF0aW9uIGZyb20gdGhlIHdhdGNoZG9nIGNsb2Nrc291cmNlLiAqLwotCQlp ZiAoKGFicyhjc19uc2VjIC0gd2RfbnNlYykgPiBXQVRDSERPR19USFJFU0hPTEQpKSB7CisJCWlm IChhYnM2NChjc19uc2VjIC0gd2RfbnNlYykgPiBXQVRDSERPR19USFJFU0hPTEQpIHsKIAkJCWNs b2Nrc291cmNlX3Vuc3RhYmxlKGNzLCBjc19uc2VjIC0gd2RfbnNlYyk7CiAJCQljb250aW51ZTsK IAkJfQpkaWZmIC0tZ2l0IGEvbW0vZmlsZW1hcC5jIGIvbW0vZmlsZW1hcC5jCmluZGV4IDZjMDA5 YzIuLmYyZjUyNDcgMTAwNjQ0Ci0tLSBhL21tL2ZpbGVtYXAuYworKysgYi9tbS9maWxlbWFwLmMK QEAgLTI0MDgsNiArMjQwOCwxMSBAQCBhZ2FpbjoKIAkJCWJyZWFrOwogCQl9CiAKKwkJaWYgKGZh dGFsX3NpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7CisJCQlzdGF0dXMgPSAtRUlOVFI7CisJCQli cmVhazsKKwkJfQorCiAJCXN0YXR1cyA9IGFfb3BzLT53cml0ZV9iZWdpbihmaWxlLCBtYXBwaW5n LCBwb3MsIGJ5dGVzLCBmbGFncywKIAkJCQkJCSZwYWdlLCAmZnNkYXRhKTsKIAkJaWYgKHVubGlr ZWx5KHN0YXR1cykpCkBAIC0yNDQ4LDEwICsyNDUzLDYgQEAgYWdhaW46CiAJCXdyaXR0ZW4gKz0g Y29waWVkOwogCiAJCWJhbGFuY2VfZGlydHlfcGFnZXNfcmF0ZWxpbWl0ZWQobWFwcGluZyk7Ci0J CWlmIChmYXRhbF9zaWduYWxfcGVuZGluZyhjdXJyZW50KSkgewotCQkJc3RhdHVzID0gLUVJTlRS OwotCQkJYnJlYWs7Ci0JCX0KIAl9IHdoaWxlIChpb3ZfaXRlcl9jb3VudChpKSk7CiAKIAlyZXR1 cm4gd3JpdHRlbiA/IHdyaXR0ZW4gOiBzdGF0dXM7CmRpZmYgLS1naXQgYS9tbS9odWdldGxiLmMg Yi9tbS9odWdldGxiLmMKaW5kZXggMjY5MjJkYS4uNzc2YzYzMCAxMDA2NDQKLS0tIGEvbW0vaHVn ZXRsYi5jCisrKyBiL21tL2h1Z2V0bGIuYwpAQCAtMjUwMiw2ICsyNTAyLDE0IEBAIHN0YXRpYyBp bnQgdW5tYXBfcmVmX3ByaXZhdGUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqdm1hLAogCQkJY29udGludWU7CiAKIAkJLyoKKwkJICogU2hhcmVkIFZNQXMgaGF2 ZSB0aGVpciBvd24gcmVzZXJ2ZXMgYW5kIGRvIG5vdCBhZmZlY3QKKwkJICogTUFQX1BSSVZBVEUg YWNjb3VudGluZyBidXQgaXQgaXMgcG9zc2libGUgdGhhdCBhIHNoYXJlZAorCQkgKiBWTUEgaXMg dXNpbmcgdGhlIHNhbWUgcGFnZSBzbyBjaGVjayBhbmQgc2tpcCBzdWNoIFZNQXMuCisJCSAqLwor CQlpZiAoaXRlcl92bWEtPnZtX2ZsYWdzICYgVk1fTUFZU0hBUkUpCisJCQljb250aW51ZTsKKwor CQkvKgogCQkgKiBVbm1hcCB0aGUgcGFnZSBmcm9tIG90aGVyIFZNQXMgd2l0aG91dCB0aGVpciBv d24gcmVzZXJ2ZXMuCiAJCSAqIFRoZXkgZ2V0IG1hcmtlZCB0byBiZSBTSUdLSUxMZWQgaWYgdGhl eSBmYXVsdCBpbiB0aGVzZQogCQkgKiBhcmVhcy4gVGhpcyBpcyBiZWNhdXNlIGEgZnV0dXJlIG5v LXBhZ2UgZmF1bHQgb24gdGhpcyBWTUEKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2RhdGFncmFtLmMg Yi9uZXQvY29yZS9kYXRhZ3JhbS5jCmluZGV4IGE0OTYzMTMuLjY2MTZiZmIgMTAwNjQ0Ci0tLSBh L25ldC9jb3JlL2RhdGFncmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdyYW0uYwpAQCAtNzA5LDYg KzcwOSw3IEBAIEVYUE9SVF9TWU1CT0woX19za2JfY2hlY2tzdW1fY29tcGxldGUpOwogICoJQHNr Yjogc2tidWZmCiAgKglAaGxlbjogaGFyZHdhcmUgbGVuZ3RoCiAgKglAaW92OiBpbyB2ZWN0b3IK KyAqCUBsZW46IGFtb3VudCBvZiBkYXRhIHRvIGNvcHkgZnJvbSBza2IgdG8gaW92CiAgKgogICoJ Q2FsbGVyIF9tdXN0XyBjaGVjayB0aGF0IHNrYiB3aWxsIGZpdCB0byB0aGlzIGlvdmVjLgogICoK QEAgLTcxOCwxMSArNzE5LDE0IEBAIEVYUE9SVF9TWU1CT0woX19za2JfY2hlY2tzdW1fY29tcGxl dGUpOwogICoJCQkgICBjYW4gYmUgbW9kaWZpZWQhCiAgKi8KIGludCBza2JfY29weV9hbmRfY3N1 bV9kYXRhZ3JhbV9pb3ZlYyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotCQkJCSAgICAgaW50IGhsZW4s IHN0cnVjdCBpb3ZlYyAqaW92KQorCQkJCSAgICAgaW50IGhsZW4sIHN0cnVjdCBpb3ZlYyAqaW92 LCBpbnQgbGVuKQogewogCV9fd3N1bSBjc3VtOwogCWludCBjaHVuayA9IHNrYi0+bGVuIC0gaGxl bjsKIAorCWlmIChjaHVuayA+IGxlbikKKwkJY2h1bmsgPSBsZW47CisKIAlpZiAoIWNodW5rKQog CQlyZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZXRodG9vbC5jIGIvbmV0L2NvcmUv ZXRodG9vbC5jCmluZGV4IDIzNjcyNDYuLmYzMTY5OGEgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2V0 aHRvb2wuYworKysgYi9uZXQvY29yZS9ldGh0b29sLmMKQEAgLTEzNTksNyArMTM1OSw3IEBAIHN0 YXRpYyBpbnQgZXRodG9vbF9nZXRfc3RyaW5ncyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB2b2lk IF9fdXNlciAqdXNlcmFkZHIpCiAKIAlnc3RyaW5ncy5sZW4gPSByZXQ7CiAKLQlkYXRhID0ga21h bGxvYyhnc3RyaW5ncy5sZW4gKiBFVEhfR1NUUklOR19MRU4sIEdGUF9VU0VSKTsKKwlkYXRhID0g a2NhbGxvYyhnc3RyaW5ncy5sZW4sIEVUSF9HU1RSSU5HX0xFTiwgR0ZQX1VTRVIpOwogCWlmICgh ZGF0YSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NrYnVmZi5j IGIvbmV0L2NvcmUvc2tidWZmLmMKaW5kZXggNzEyMWQ5Yi4uYjMwZDljMiAxMDA2NDQKLS0tIGEv bmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZmLmMKQEAgLTI1NzksMTEgKzI1 NzksMTIgQEAgRVhQT1JUX1NZTUJPTChza2JfYXBwZW5kX2RhdGF0b19mcmFncyk7CiAgKi8KIHVu c2lnbmVkIGNoYXIgKnNrYl9wdWxsX3Jjc3VtKHN0cnVjdCBza19idWZmICpza2IsIHVuc2lnbmVk IGludCBsZW4pCiB7CisJdW5zaWduZWQgY2hhciAqZGF0YSA9IHNrYi0+ZGF0YTsKKwogCUJVR19P TihsZW4gPiBza2ItPmxlbik7Ci0Jc2tiLT5sZW4gLT0gbGVuOwotCUJVR19PTihza2ItPmxlbiA8 IHNrYi0+ZGF0YV9sZW4pOwotCXNrYl9wb3N0cHVsbF9yY3N1bShza2IsIHNrYi0+ZGF0YSwgbGVu KTsKLQlyZXR1cm4gc2tiLT5kYXRhICs9IGxlbjsKKwlfX3NrYl9wdWxsKHNrYiwgbGVuKTsKKwlz a2JfcG9zdHB1bGxfcmNzdW0oc2tiLCBkYXRhLCBsZW4pOworCXJldHVybiBza2ItPmRhdGE7CiB9 CiBFWFBPUlRfU1lNQk9MX0dQTChza2JfcHVsbF9yY3N1bSk7CiAKZGlmZiAtLWdpdCBhL25ldC9p cHY0L3RjcF9pbnB1dC5jIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKaW5kZXggYWZlNjg4Ni4uZjhi NTg5OSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lucHV0LmMKKysrIGIvbmV0L2lwdjQvdGNw X2lucHV0LmMKQEAgLTUxOTgsNyArNTE5OCw3IEBAIHN0YXRpYyBpbnQgdGNwX2NvcHlfdG9faW92 ZWMoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgaGxlbikKIAkJZXJy ID0gc2tiX2NvcHlfZGF0YWdyYW1faW92ZWMoc2tiLCBobGVuLCB0cC0+dWNvcHkuaW92LCBjaHVu ayk7CiAJZWxzZQogCQllcnIgPSBza2JfY29weV9hbmRfY3N1bV9kYXRhZ3JhbV9pb3ZlYyhza2Is IGhsZW4sCi0JCQkJCQkgICAgICAgdHAtPnVjb3B5Lmlvdik7CisJCQkJCQkgICAgICAgdHAtPnVj b3B5LmlvdiwgY2h1bmspOwogCiAJaWYgKCFlcnIpIHsKIAkJdHAtPnVjb3B5LmxlbiAtPSBjaHVu azsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5kZXggNWU5 MjA0My4uYjExMTIyMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lwdjQv dWRwLmMKQEAgLTEyMDcsNyArMTIwNyw3IEBAIHRyeV9hZ2FpbjoKIAllbHNlIHsKIAkJZXJyID0g c2tiX2NvcHlfYW5kX2NzdW1fZGF0YWdyYW1faW92ZWMoc2tiLAogCQkJCQkJICAgICAgIHNpemVv ZihzdHJ1Y3QgdWRwaGRyKSwKLQkJCQkJCSAgICAgICBtc2ctPm1zZ19pb3YpOworCQkJCQkJICAg ICAgIG1zZy0+bXNnX2lvdiwgY29waWVkKTsKIAogCQlpZiAoZXJyID09IC1FSU5WQUwpCiAJCQln b3RvIGNzdW1fY29weV9lcnI7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yYXcuYyBiL25ldC9pcHY2 L3Jhdy5jCmluZGV4IDkyODdmM2UuLjI0MGMxMDJmIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yYXcu YworKysgYi9uZXQvaXB2Ni9yYXcuYwpAQCAtNDc5LDcgKzQ3OSw3IEBAIHN0YXRpYyBpbnQgcmF3 djZfcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrICpzaywKIAkJCWdvdG8g Y3N1bV9jb3B5X2VycjsKIAkJZXJyID0gc2tiX2NvcHlfZGF0YWdyYW1faW92ZWMoc2tiLCAwLCBt c2ctPm1zZ19pb3YsIGNvcGllZCk7CiAJfSBlbHNlIHsKLQkJZXJyID0gc2tiX2NvcHlfYW5kX2Nz dW1fZGF0YWdyYW1faW92ZWMoc2tiLCAwLCBtc2ctPm1zZ19pb3YpOworCQllcnIgPSBza2JfY29w eV9hbmRfY3N1bV9kYXRhZ3JhbV9pb3ZlYyhza2IsIDAsIG1zZy0+bXNnX2lvdiwgY29waWVkKTsK IAkJaWYgKGVyciA9PSAtRUlOVkFMKQogCQkJZ290byBjc3VtX2NvcHlfZXJyOwogCX0KZGlmZiAt LWdpdCBhL25ldC9pcHY2L3VkcC5jIGIvbmV0L2lwdjYvdWRwLmMKaW5kZXggZGMwOGFmZC4uODg4 ODkyZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvdWRwLmMKKysrIGIvbmV0L2lwdjYvdWRwLmMKQEAg LTM4Myw3ICszODMsOCBAQCB0cnlfYWdhaW46CiAJCWVyciA9IHNrYl9jb3B5X2RhdGFncmFtX2lv dmVjKHNrYiwgc2l6ZW9mKHN0cnVjdCB1ZHBoZHIpLAogCQkJCQkgICAgICBtc2ctPm1zZ19pb3Ys IGNvcGllZCAgICAgICApOwogCWVsc2UgewotCQllcnIgPSBza2JfY29weV9hbmRfY3N1bV9kYXRh Z3JhbV9pb3ZlYyhza2IsIHNpemVvZihzdHJ1Y3QgdWRwaGRyKSwgbXNnLT5tc2dfaW92KTsKKwkJ ZXJyID0gc2tiX2NvcHlfYW5kX2NzdW1fZGF0YWdyYW1faW92ZWMoc2tiLCBzaXplb2Yoc3RydWN0 IHVkcGhkciksCisJCQkJCQkgICAgICAgbXNnLT5tc2dfaW92LCBjb3BpZWQpOwogCQlpZiAoZXJy ID09IC1FSU5WQUwpCiAJCQlnb3RvIGNzdW1fY29weV9lcnI7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0 L3J4cnBjL2FyLXJlY3Ztc2cuYyBiL25ldC9yeHJwYy9hci1yZWN2bXNnLmMKaW5kZXggNWNjMmRh NS4uYzY3ZjVkMyAxMDA2NDQKLS0tIGEvbmV0L3J4cnBjL2FyLXJlY3Ztc2cuYworKysgYi9uZXQv cnhycGMvYXItcmVjdm1zZy5jCkBAIC0xODUsNyArMTg1LDggQEAgaW50IHJ4cnBjX3JlY3Ztc2co c3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCQkJCQkJICAgICAgbXNn LT5tc2dfaW92LCBjb3B5KTsKIAkJfSBlbHNlIHsKIAkJCXJldCA9IHNrYl9jb3B5X2FuZF9jc3Vt X2RhdGFncmFtX2lvdmVjKHNrYiwgb2Zmc2V0LAotCQkJCQkJCSAgICAgICBtc2ctPm1zZ19pb3Yp OworCQkJCQkJCSAgICAgICBtc2ctPm1zZ19pb3YsCisJCQkJCQkJICAgICAgIGNvcHkpOwogCQkJ aWYgKHJldCA9PSAtRUlOVkFMKQogCQkJCWdvdG8gY3N1bV9jb3B5X2Vycm9yOwogCQl9CmRpZmYg LS1naXQgYS9zZWN1cml0eS9rZXlzL2djLmMgYi9zZWN1cml0eS9rZXlzL2djLmMKaW5kZXggMmUy Mzk1ZC4uNzgxN2JiMCAxMDA2NDQKLS0tIGEvc2VjdXJpdHkva2V5cy9nYy5jCisrKyBiL3NlY3Vy aXR5L2tleXMvZ2MuYwpAQCAtMTcyLDYgKzE3MiwxMiBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBr ZXlfZ2NfdW51c2VkX2tleShzdHJ1Y3Qga2V5ICprZXkpCiB7CiAJa2V5X2NoZWNrKGtleSk7CiAK KwkvKiBUaHJvdyBhd2F5IHRoZSBrZXkgZGF0YSBpZiB0aGUga2V5IGlzIGluc3RhbnRpYXRlZCAq LworCWlmICh0ZXN0X2JpdChLRVlfRkxBR19JTlNUQU5USUFURUQsICZrZXktPmZsYWdzKSAmJgor CSAgICAhdGVzdF9iaXQoS0VZX0ZMQUdfTkVHQVRJVkUsICZrZXktPmZsYWdzKSAmJgorCSAgICBr ZXktPnR5cGUtPmRlc3Ryb3kpCisJCWtleS0+dHlwZS0+ZGVzdHJveShrZXkpOworCiAJc2VjdXJp dHlfa2V5X2ZyZWUoa2V5KTsKIAogCS8qIGRlYWwgd2l0aCB0aGUgdXNlcidzIGtleSB0cmFja2lu ZyBhbmQgcXVvdGEgKi8KQEAgLTE4NiwxMCArMTkyLDYgQEAgc3RhdGljIG5vaW5saW5lIHZvaWQg a2V5X2djX3VudXNlZF9rZXkoc3RydWN0IGtleSAqa2V5KQogCWlmICh0ZXN0X2JpdChLRVlfRkxB R19JTlNUQU5USUFURUQsICZrZXktPmZsYWdzKSkKIAkJYXRvbWljX2RlYygma2V5LT51c2VyLT5u aWtleXMpOwogCi0JLyogbm93IHRocm93IGF3YXkgdGhlIGtleSBtZW1vcnkgKi8KLQlpZiAoa2V5 LT50eXBlLT5kZXN0cm95KQotCQlrZXktPnR5cGUtPmRlc3Ryb3koa2V5KTsKLQogCWtleV91c2Vy X3B1dChrZXktPnVzZXIpOwogCiAJa2ZyZWUoa2V5LT5kZXNjcmlwdGlvbik7CmRpZmYgLS1naXQg YS9zb3VuZC9wY2kvaGRhL3BhdGNoX2NvbmV4YW50LmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2Nv bmV4YW50LmMKaW5kZXggNmE1MjRmYi4uZGU1MWFiY2IgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9o ZGEvcGF0Y2hfY29uZXhhbnQuYworKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2NvbmV4YW50LmMK QEAgLTQ0OTUsNiArNDQ5NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjaV9xdWlyayBj eHQ1MDY2X2ZpeHVwc1tdID0gewogCVNORF9QQ0lfUVVJUksoMHgxN2FhLCAweDIxNWYsICJMZW5v dm8gVDUxMCIsIENYVF9QSU5DRkdfTEVOT1ZPX1RQNDEwKSwKIAlTTkRfUENJX1FVSVJLKDB4MTdh YSwgMHgyMWNlLCAiTGVub3ZvIFQ0MjAiLCBDWFRfUElOQ0ZHX0xFTk9WT19UUDQxMCksCiAJU05E X1BDSV9RVUlSSygweDE3YWEsIDB4MjFjZiwgIkxlbm92byBUNTIwIiwgQ1hUX1BJTkNGR19MRU5P Vk9fVFA0MTApLAorCVNORF9QQ0lfUVVJUksoMHgxN2FhLCAweDM5MGIsICJMZW5vdm8gRzUwLTgw IiwgQ1hUX0ZJWFVQX1NURVJFT19ETUlDKSwKIAlTTkRfUENJX1FVSVJLKDB4MTdhYSwgMHgzOTc1 LCAiTGVub3ZvIFUzMDBzIiwgQ1hUX0ZJWFVQX1NURVJFT19ETUlDKSwKIAlTTkRfUENJX1FVSVJL KDB4MTdhYSwgMHgzOTc3LCAiTGVub3ZvIElkZWFQYWQgVTMxMCIsIENYVF9GSVhVUF9TVEVSRU9f RE1JQyksCiAJU05EX1BDSV9RVUlSSygweDE3YWEsIDB4Mzk3YiwgIkxlbm92byBTMjA1IiwgQ1hU X0ZJWFVQX1NURVJFT19ETUlDKSwKZGlmZiAtLWdpdCBhL3NvdW5kL3N5bnRoL2VtdXgvZW11eF9v c3MuYyBiL3NvdW5kL3N5bnRoL2VtdXgvZW11eF9vc3MuYwppbmRleCBkYWY2MWFiLi42NDZiNjY3 IDEwMDY0NAotLS0gYS9zb3VuZC9zeW50aC9lbXV4L2VtdXhfb3NzLmMKKysrIGIvc291bmQvc3lu dGgvZW11eC9lbXV4X29zcy5jCkBAIC02OSw3ICs2OSw4IEBAIHNuZF9lbXV4X2luaXRfc2VxX29z cyhzdHJ1Y3Qgc25kX2VtdXggKmVtdSkKIAlzdHJ1Y3Qgc25kX3NlcV9vc3NfcmVnICphcmc7CiAJ c3RydWN0IHNuZF9zZXFfZGV2aWNlICpkZXY7CiAKLQlpZiAoc25kX3NlcV9kZXZpY2VfbmV3KGVt dS0+Y2FyZCwgMCwgU05EUlZfU0VRX0RFVl9JRF9PU1MsCisJLyogdXNpbmcgZGV2aWNlIzEgaGVy ZSBmb3IgYXZvaWRpbmcgY29uZmxpY3RzIHdpdGggT1BMMyAqLworCWlmIChzbmRfc2VxX2Rldmlj ZV9uZXcoZW11LT5jYXJkLCAxLCBTTkRSVl9TRVFfREVWX0lEX09TUywKIAkJCSAgICAgICBzaXpl b2Yoc3RydWN0IHNuZF9zZXFfb3NzX3JlZyksICZkZXYpIDwgMCkKIAkJcmV0dXJuOwogCm== --=-YBwKwwGORm/wNuO/EZAI-- --=-Qd1qdqRzjzfxnQYHfXSC Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAVkfuC+e/yOyVhhEJAQq+Lw/9ExCa8C3xxEmOlhnm4hvr7pENx8W1Q1v0 /bHiYUNf6FJvE1MJJoavN6rAc8rEGB7z9PO89PkHZlq0fWjo+tekssBLvNp2knVC P9BePLkSuO5UWwnJsuYfpIgQa3VjrfHRNUjPMx8wfLjHV72SXpMoyZiF7Q5qDQiC OyInXnKt7/rT+PlaBwuBhv7IPMYSIewgevELiJh3tb2U/1fy8VamwJeHeAM35azJ hHLOwZI63fvmcttsQ0VXTz1V2locii1sNrYTGg+YZboXJSbCmOFfkWKXH6ABTM6g 3tSesblePCiCSdd5E1qxX/czIMjmRDXrLYs9BLXiGDYVPGKqm9Mj/YS6jkCUJMkC JTbgA+7hQUuf/iUkduecykXR3QwEvk1EtvH5FclDazoFVceUScSCANLnTeIUD3QN 4I4v55po0YDxPfpXJJ2iOTaEIjO0hh1jwaSPpiDhinbnSQl9jUdj3b8cBOvQqHOd gaj5LQdceMBpIfxuoLB9VLYu0+/CaVlWCst68mFVNEDm4V2R2/lqLLXa0JEB/ehU ZWwmK/OkDlUM+4GM39PtjPh+Ab7lPg+9dxUI8lx0mgTPqiBDXICZb5nXwh4gdrZ3 J2Ee9Is0y21Q6UT+eVqSBJ4+DlG2IlMiEt957kEw7GDBLgzTx/ZlHcuE4WI47Ptu Flb7LWwJL8s= =Ob1C -----END PGP SIGNATURE----- --=-Qd1qdqRzjzfxnQYHfXSC--