From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sebastian Andrzej Siewior Subject: [PATCH 1/3] arm: Convert arm boot_lock to raw Date: Fri, 7 Dec 2018 11:27:47 +0100 Message-ID: <20181207102749.15205-2-bigeasy@linutronix.de> References: <20181207102749.15205-1-bigeasy@linutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181207102749.15205-1-bigeasy@linutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: linux-arm-kernel@lists.infradead.org, Arnd Bergmann Cc: Tony Lindgren , Viresh Kumar , Linus Walleij , David Brown , Wei Xu , Manivannan Sadhasivam , linux-samsung-soc@vger.kernel.org, Viresh Kumar , Russell King , Krzysztof Kozlowski , Maxime Ripard , Chen-Yu Tsai , Kukjin Kim , Andy Gross , Sebastian Andrzej Siewior , linux-arm-msm@vger.kernel.org, tglx@linutronix.de, linux-omap@vger.kernel.org, Barry Song , Frank Rowand , Patrice Chotard , Shiraz Hashim , =?UTF-8?q?Andreas=20F=C3=A4rber?= List-Id: linux-arm-msm@vger.kernel.org RnJvbTogRnJhbmsgUm93YW5kIDxmcmFuay5yb3dhbmRAYW0uc29ueS5jb20+CgpUaGUgYXJtIGJv b3RfbG9jayBpcyB1c2VkIGJ5IHRoZSBzZWNvbmRhcnkgcHJvY2Vzc29yIHN0YXJ0dXAgY29kZS4g IFRoZSBsb2NraW5nCnRhc2sgaXMgdGhlIGlkbGUgdGhyZWFkLCB3aGljaCBoYXMgaWRsZS0+c2No ZWRfY2xhc3MgPT0gJmlkbGVfc2NoZWRfY2xhc3MuCmlkbGVfc2NoZWRfY2xhc3MtPmVucXVldWVf dGFzayA9PSBOVUxMLCBzbyBpZiB0aGUgaWRsZSB0YXNrIGJsb2NrcyBvbiB0aGUKbG9jaywgdGhl IGF0dGVtcHQgdG8gd2FrZSBpdCB3aGVuIHRoZSBsb2NrIGJlY29tZXMgYXZhaWxhYmxlIHdpbGwg ZmFpbDoKCnRyeV90b193YWtlX3VwKCkKICAgLi4uCiAgICAgIGFjdGl2YXRlX3Rhc2soKQogICAg ICAgICBlbnF1ZXVlX3Rhc2soKQogICAgICAgICAgICBwLT5zY2hlZF9jbGFzcy0+ZW5xdWV1ZV90 YXNrKHJxLCBwLCBmbGFncykKCkZpeCBieSBjb252ZXJ0aW5nIGJvb3RfbG9jayB0byBhIHJhdyBz cGluIGxvY2suCgpDYzogQW5kcmVhcyBGw6RyYmVyIDxhZmFlcmJlckBzdXNlLmRlPgpDYzogTWFu aXZhbm5hbiBTYWRoYXNpdmFtIDxtYW5pdmFubmFuLnNhZGhhc2l2YW1AbGluYXJvLm9yZz4KQ2M6 IFJ1c3NlbGwgS2luZyA8bGludXhAYXJtbGludXgub3JnLnVrPgpDYzogS3VramluIEtpbSA8a2dl bmVAa2VybmVsLm9yZz4KQ2M6IEtyenlzenRvZiBLb3psb3dza2kgPGtyemtAa2VybmVsLm9yZz4K Q2M6IFdlaSBYdSA8eHV3ZWk1QGhpc2lsaWNvbi5jb20+CkNjOiBUb255IExpbmRncmVuIDx0b255 QGF0b21pZGUuY29tPgpDYzogQmFycnkgU29uZyA8YmFvaHVhQGtlcm5lbC5vcmc+CkNjOiBBbmR5 IEdyb3NzIDxhbmR5Lmdyb3NzQGxpbmFyby5vcmc+CkNjOiBEYXZpZCBCcm93biA8ZGF2aWQuYnJv d25AbGluYXJvLm9yZz4KQ2M6IFZpcmVzaCBLdW1hciA8dmlyZXNoa0BrZXJuZWwub3JnPgpDYzog U2hpcmF6IEhhc2hpbSA8c2hpcmF6LmxpbnV4Lmtlcm5lbEBnbWFpbC5jb20+CkNjOiBQYXRyaWNl IENob3RhcmQgPHBhdHJpY2UuY2hvdGFyZEBzdC5jb20+CkNjOiBNYXhpbWUgUmlwYXJkIDxtYXhp bWUucmlwYXJkQGJvb3RsaW4uY29tPgpDYzogQ2hlbi1ZdSBUc2FpIDx3ZW5zQGNzaWUub3JnPgpD YzogTGludXMgV2FsbGVpaiA8bGludXMud2FsbGVpakBsaW5hcm8ub3JnPgpDYzogbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBsaW51eC1zYW1zdW5nLXNvY0B2Z2VyLmtl cm5lbC5vcmcKQ2M6IGxpbnV4LW9tYXBAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1hcm0tbXNt QHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBGcmFuayBSb3dhbmQgPGZyYW5rLnJvd2Fu ZEBhbS5zb255LmNvbT4KTGluazogaHR0cDovL2xrbWwua2VybmVsLm9yZy9yLzRFNzdCOTUyLjMw MTA2MDZAYW0uc29ueS5jb20KU2lnbmVkLW9mZi1ieTogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxp bnV0cm9uaXguZGU+ClRlc3RlZC1ieTogVG9ueSBMaW5kZ3JlbiA8dG9ueUBhdG9taWRlLmNvbT4K QWNrZWQtYnk6IEtyenlzenRvZiBLb3psb3dza2kgPGtyemtAa2VybmVsLm9yZz4KVGVzdGVkLWJ5 OiBLcnp5c3p0b2YgS296bG93c2tpIDxrcnprQGtlcm5lbC5vcmc+IChFeHlub3M1NDIyIExpbmFy byBQTS1RQSkKQWNrZWQtYnk6IEFuZHJlYXMgRsOkcmJlciA8YWZhZXJiZXJAc3VzZS5kZT4gKGZv ciBtYWNoLWFjdGlvbnMpCkFja2VkLWJ5OiBWaXJlc2ggS3VtYXIgPHZpcmVzaC5rdW1hckBsaW5h cm8ub3JnPgpBY2tlZC1ieTogUGF0cmljZSBDaG90YXJkIDxwYXRyaWNlLmNob3RhcmRAc3QuY29t PiAoZm9yIG1hY2gtc3RpKQpBY2tlZC1ieTogV2VpIFh1IDx4dXdlaTVAaGlzaWxpY29uLmNvbT4g KGZvciBtYWNoLWhpc2kpClNpZ25lZC1vZmYtYnk6IFNlYmFzdGlhbiBBbmRyemVqIFNpZXdpb3Ig PGJpZ2Vhc3lAbGludXRyb25peC5kZT4KLS0tCiBhcmNoL2FybS9tYWNoLWFjdGlvbnMvcGxhdHNt cC5jICAgfCAgNiArKystLS0KIGFyY2gvYXJtL21hY2gtZXh5bm9zL3BsYXRzbXAuYyAgICB8IDEy ICsrKysrKy0tLS0tLQogYXJjaC9hcm0vbWFjaC1oaXNpL3BsYXRtY3BtLmMgICAgIHwgMjIgKysr KysrKysrKystLS0tLS0tLS0tLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLXNtcC5jICAgIHwg MTAgKysrKystLS0tLQogYXJjaC9hcm0vbWFjaC1wcmltYTIvcGxhdHNtcC5jICAgIHwgMTAgKysr KystLS0tLQogYXJjaC9hcm0vbWFjaC1xY29tL3BsYXRzbXAuYyAgICAgIHwgMTAgKysrKystLS0t LQogYXJjaC9hcm0vbWFjaC1zcGVhci9wbGF0c21wLmMgICAgIHwgMTAgKysrKystLS0tLQogYXJj aC9hcm0vbWFjaC1zdGkvcGxhdHNtcC5jICAgICAgIHwgMTAgKysrKystLS0tLQogYXJjaC9hcm0v bWFjaC1zdW54aS9tY19zbXAuYyAgICAgIHwgMjAgKysrKysrKysrKy0tLS0tLS0tLS0KIGFyY2gv YXJtL3BsYXQtdmVyc2F0aWxlL3BsYXRzbXAuYyB8IDEwICsrKysrLS0tLS0KIDEwIGZpbGVzIGNo YW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL21hY2gtYWN0aW9ucy9wbGF0c21wLmMgYi9hcmNoL2FybS9tYWNoLWFjdGlvbnMvcGxh dHNtcC5jCmluZGV4IDNlZmFhMTBlZmM0MzkuLjc3MDA3OTI0NWQyNzMgMTAwNjQ0Ci0tLSBhL2Fy Y2gvYXJtL21hY2gtYWN0aW9ucy9wbGF0c21wLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hY3Rpb25z L3BsYXRzbXAuYwpAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgdm9pZCBfX2lvbWVtICpzcHNfYmFz ZV9hZGRyOwogc3RhdGljIHZvaWQgX19pb21lbSAqdGltZXJfYmFzZV9hZGRyOwogc3RhdGljIGlu dCBuY29yZXM7CiAKLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0soYm9vdF9sb2NrKTsKK3N0YXRpYyBE RUZJTkVfUkFXX1NQSU5MT0NLKGJvb3RfbG9jayk7CiAKIHZvaWQgb3dsX3NlY29uZGFyeV9zdGFy dHVwKHZvaWQpOwogCkBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyBpbnQgczUwMF9zbXBfYm9vdF9z ZWNvbmRhcnkodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IHRhc2tfc3RydWN0ICppZGxlKQogCiAJ dWRlbGF5KDEwKTsKIAotCXNwaW5fbG9jaygmYm9vdF9sb2NrKTsKKwlyYXdfc3Bpbl9sb2NrKCZi b290X2xvY2spOwogCiAJc21wX3NlbmRfcmVzY2hlZHVsZShjcHUpOwogCkBAIC0xMDYsNyArMTA2 LDcgQEAgc3RhdGljIGludCBzNTAwX3NtcF9ib290X3NlY29uZGFyeSh1bnNpZ25lZCBpbnQgY3B1 LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmlkbGUpCiAJd3JpdGVsKDAsIHRpbWVyX2Jhc2VfYWRkciAr IE9XTF9DUFUxX0FERFIgKyAoY3B1IC0gMSkgKiA0KTsKIAl3cml0ZWwoMCwgdGltZXJfYmFzZV9h ZGRyICsgT1dMX0NQVTFfRkxBRyArIChjcHUgLSAxKSAqIDQpOwogCi0Jc3Bpbl91bmxvY2soJmJv b3RfbG9jayk7CisJcmF3X3NwaW5fdW5sb2NrKCZib290X2xvY2spOwogCiAJcmV0dXJuIDA7CiB9 CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWV4eW5vcy9wbGF0c21wLmMgYi9hcmNoL2FybS9t YWNoLWV4eW5vcy9wbGF0c21wLmMKaW5kZXggNmExZTY4MjM3MWIzMi4uMTdkY2EwZmYzMzZlMCAx MDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1leHlub3MvcGxhdHNtcC5jCisrKyBiL2FyY2gvYXJt L21hY2gtZXh5bm9zL3BsYXRzbXAuYwpAQCAtMjM5LDcgKzIzOSw3IEBAIHN0YXRpYyB2b2lkIHdy aXRlX3Blbl9yZWxlYXNlKGludCB2YWwpCiAJc3luY19jYWNoZV93KCZwZW5fcmVsZWFzZSk7CiB9 CiAKLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0soYm9vdF9sb2NrKTsKK3N0YXRpYyBERUZJTkVfUkFX X1NQSU5MT0NLKGJvb3RfbG9jayk7CiAKIHN0YXRpYyB2b2lkIGV4eW5vc19zZWNvbmRhcnlfaW5p dCh1bnNpZ25lZCBpbnQgY3B1KQogewpAQCAtMjUyLDggKzI1Miw4IEBAIHN0YXRpYyB2b2lkIGV4 eW5vc19zZWNvbmRhcnlfaW5pdCh1bnNpZ25lZCBpbnQgY3B1KQogCS8qCiAJICogU3luY2hyb25p c2Ugd2l0aCB0aGUgYm9vdCB0aHJlYWQuCiAJICovCi0Jc3Bpbl9sb2NrKCZib290X2xvY2spOwot CXNwaW5fdW5sb2NrKCZib290X2xvY2spOworCXJhd19zcGluX2xvY2soJmJvb3RfbG9jayk7CisJ cmF3X3NwaW5fdW5sb2NrKCZib290X2xvY2spOwogfQogCiBpbnQgZXh5bm9zX3NldF9ib290X2Fk ZHIodTMyIGNvcmVfaWQsIHVuc2lnbmVkIGxvbmcgYm9vdF9hZGRyKQpAQCAtMzE3LDcgKzMxNyw3 IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2Jvb3Rfc2Vjb25kYXJ5KHVuc2lnbmVkIGludCBjcHUsIHN0 cnVjdCB0YXNrX3N0cnVjdCAqaWRsZSkKIAkgKiBTZXQgc3luY2hyb25pc2F0aW9uIHN0YXRlIGJl dHdlZW4gdGhpcyBib290IHByb2Nlc3NvcgogCSAqIGFuZCB0aGUgc2Vjb25kYXJ5IG9uZQogCSAq LwotCXNwaW5fbG9jaygmYm9vdF9sb2NrKTsKKwlyYXdfc3Bpbl9sb2NrKCZib290X2xvY2spOwog CiAJLyoKIAkgKiBUaGUgc2Vjb25kYXJ5IHByb2Nlc3NvciBpcyB3YWl0aW5nIHRvIGJlIHJlbGVh c2VkIGZyb20KQEAgLTM0NCw3ICszNDQsNyBAQCBzdGF0aWMgaW50IGV4eW5vc19ib290X3NlY29u ZGFyeSh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmlkbGUpCiAKIAkJaWYg KHRpbWVvdXQgPT0gMCkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJjcHUxIHBvd2VyIGVuYWJsZSBm YWlsZWQiKTsKLQkJCXNwaW5fdW5sb2NrKCZib290X2xvY2spOworCQkJcmF3X3NwaW5fdW5sb2Nr KCZib290X2xvY2spOwogCQkJcmV0dXJuIC1FVElNRURPVVQ7CiAJCX0KIAl9CkBAIC0zOTAsNyAr MzkwLDcgQEAgc3RhdGljIGludCBleHlub3NfYm9vdF9zZWNvbmRhcnkodW5zaWduZWQgaW50IGNw dSwgc3RydWN0IHRhc2tfc3RydWN0ICppZGxlKQogCSAqIGNhbGlicmF0aW9ucywgdGhlbiB3YWl0 IGZvciBpdCB0byBmaW5pc2gKIAkgKi8KIGZhaWw6Ci0Jc3Bpbl91bmxvY2soJmJvb3RfbG9jayk7 CisJcmF3X3NwaW5fdW5sb2NrKCZib290X2xvY2spOwogCiAJcmV0dXJuIHBlbl9yZWxlYXNlICE9 IC0xID8gcmV0IDogMDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaGlzaS9wbGF0bWNw bS5jIGIvYXJjaC9hcm0vbWFjaC1oaXNpL3BsYXRtY3BtLmMKaW5kZXggZjY2ODE1YzNkZDA3ZS4u MDA1MjRhYmQ5NjNmNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1oaXNpL3BsYXRtY3BtLmMK KysrIGIvYXJjaC9hcm0vbWFjaC1oaXNpL3BsYXRtY3BtLmMKQEAgLTYxLDcgKzYxLDcgQEAKIAog c3RhdGljIHZvaWQgX19pb21lbSAqc3lzY3RybCwgKmZhYnJpYzsKIHN0YXRpYyBpbnQgaGlwMDRf Y3B1X3RhYmxlW0hJUDA0X01BWF9DTFVTVEVSU11bSElQMDRfTUFYX0NQVVNfUEVSX0NMVVNURVJd Owotc3RhdGljIERFRklORV9TUElOTE9DSyhib290X2xvY2spOworc3RhdGljIERFRklORV9SQVdf U1BJTkxPQ0soYm9vdF9sb2NrKTsKIHN0YXRpYyB1MzIgZmFicmljX3BoeXNfYWRkcjsKIC8qCiAg KiBbMF06IGJvb3R3cmFwcGVyIHBoeXNpY2FsIGFkZHJlc3MKQEAgLTExMyw3ICsxMTMsNyBAQCBz dGF0aWMgaW50IGhpcDA0X2Jvb3Rfc2Vjb25kYXJ5KHVuc2lnbmVkIGludCBsX2NwdSwgc3RydWN0 IHRhc2tfc3RydWN0ICppZGxlKQogCWlmIChjbHVzdGVyID49IEhJUDA0X01BWF9DTFVTVEVSUyB8 fCBjcHUgPj0gSElQMDRfTUFYX0NQVVNfUEVSX0NMVVNURVIpCiAJCXJldHVybiAtRUlOVkFMOwog Ci0Jc3Bpbl9sb2NrX2lycSgmYm9vdF9sb2NrKTsKKwlyYXdfc3Bpbl9sb2NrX2lycSgmYm9vdF9s b2NrKTsKIAogCWlmIChoaXAwNF9jcHVfdGFibGVbY2x1c3Rlcl1bY3B1XSkKIAkJZ290byBvdXQ7 CkBAIC0xNDcsNyArMTQ3LDcgQEAgc3RhdGljIGludCBoaXAwNF9ib290X3NlY29uZGFyeSh1bnNp Z25lZCBpbnQgbF9jcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqaWRsZSkKIAogb3V0OgogCWhpcDA0 X2NwdV90YWJsZVtjbHVzdGVyXVtjcHVdKys7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZib290X2xvY2sp OworCXJhd19zcGluX3VubG9ja19pcnEoJmJvb3RfbG9jayk7CiAKIAlyZXR1cm4gMDsKIH0KQEAg LTE2MiwxMSArMTYyLDExIEBAIHN0YXRpYyB2b2lkIGhpcDA0X2NwdV9kaWUodW5zaWduZWQgaW50 IGxfY3B1KQogCWNwdSA9IE1QSURSX0FGRklOSVRZX0xFVkVMKG1waWRyLCAwKTsKIAljbHVzdGVy ID0gTVBJRFJfQUZGSU5JVFlfTEVWRUwobXBpZHIsIDEpOwogCi0Jc3Bpbl9sb2NrKCZib290X2xv Y2spOworCXJhd19zcGluX2xvY2soJmJvb3RfbG9jayk7CiAJaGlwMDRfY3B1X3RhYmxlW2NsdXN0 ZXJdW2NwdV0tLTsKIAlpZiAoaGlwMDRfY3B1X3RhYmxlW2NsdXN0ZXJdW2NwdV0gPT0gMSkgewog CQkvKiBBIHBvd2VyX3VwIHJlcXVlc3Qgd2VudCBhaGVhZCBvZiB1cy4gKi8KLQkJc3Bpbl91bmxv Y2soJmJvb3RfbG9jayk7CisJCXJhd19zcGluX3VubG9jaygmYm9vdF9sb2NrKTsKIAkJcmV0dXJu OwogCX0gZWxzZSBpZiAoaGlwMDRfY3B1X3RhYmxlW2NsdXN0ZXJdW2NwdV0gPiAxKSB7CiAJCXBy X2VycigiQ2x1c3RlciAlZCBDUFUlZCBib290cyBtdWx0aXBsZSB0aW1lc1xuIiwgY2x1c3Rlciwg Y3B1KTsKQEAgLTE3NCw3ICsxNzQsNyBAQCBzdGF0aWMgdm9pZCBoaXAwNF9jcHVfZGllKHVuc2ln bmVkIGludCBsX2NwdSkKIAl9CiAKIAlsYXN0X21hbiA9IGhpcDA0X2NsdXN0ZXJfaXNfZG93bihj bHVzdGVyKTsKLQlzcGluX3VubG9jaygmYm9vdF9sb2NrKTsKKwlyYXdfc3Bpbl91bmxvY2soJmJv b3RfbG9jayk7CiAJaWYgKGxhc3RfbWFuKSB7CiAJCS8qIFNpbmNlIGl0J3MgQ29ydGV4IEExNSwg ZGlzYWJsZSBMMiBwcmVmZXRjaGluZy4gKi8KIAkJYXNtIHZvbGF0aWxlKApAQCAtMjAzLDcgKzIw Myw3IEBAIHN0YXRpYyBpbnQgaGlwMDRfY3B1X2tpbGwodW5zaWduZWQgaW50IGxfY3B1KQogCSAg ICAgICBjcHUgPj0gSElQMDRfTUFYX0NQVVNfUEVSX0NMVVNURVIpOwogCiAJY291bnQgPSBUSU1F T1VUX01TRUMgLyBQT0xMX01TRUM7Ci0Jc3Bpbl9sb2NrX2lycSgmYm9vdF9sb2NrKTsKKwlyYXdf c3Bpbl9sb2NrX2lycSgmYm9vdF9sb2NrKTsKIAlmb3IgKHRyaWVzID0gMDsgdHJpZXMgPCBjb3Vu dDsgdHJpZXMrKykgewogCQlpZiAoaGlwMDRfY3B1X3RhYmxlW2NsdXN0ZXJdW2NwdV0pCiAJCQln b3RvIGVycjsKQEAgLTIxMSwxMCArMjExLDEwIEBAIHN0YXRpYyBpbnQgaGlwMDRfY3B1X2tpbGwo dW5zaWduZWQgaW50IGxfY3B1KQogCQlkYXRhID0gcmVhZGxfcmVsYXhlZChzeXNjdHJsICsgU0Nf Q1BVX1JFU0VUX1NUQVRVUyhjbHVzdGVyKSk7CiAJCWlmIChkYXRhICYgQ09SRV9XRklfU1RBVFVT KGNwdSkpCiAJCQlicmVhazsKLQkJc3Bpbl91bmxvY2tfaXJxKCZib290X2xvY2spOworCQlyYXdf c3Bpbl91bmxvY2tfaXJxKCZib290X2xvY2spOwogCQkvKiBXYWl0IGZvciBjbGVhbiBMMiB3aGVu IHRoZSB3aG9sZSBjbHVzdGVyIGlzIGRvd24uICovCiAJCW1zbGVlcChQT0xMX01TRUMpOwotCQlz cGluX2xvY2tfaXJxKCZib290X2xvY2spOworCQlyYXdfc3Bpbl9sb2NrX2lycSgmYm9vdF9sb2Nr KTsKIAl9CiAJaWYgKHRyaWVzID49IGNvdW50KQogCQlnb3RvIGVycjsKQEAgLTIzMSwxMCArMjMx LDEwIEBAIHN0YXRpYyBpbnQgaGlwMDRfY3B1X2tpbGwodW5zaWduZWQgaW50IGxfY3B1KQogCQln b3RvIGVycjsKIAlpZiAoaGlwMDRfY2x1c3Rlcl9pc19kb3duKGNsdXN0ZXIpKQogCQloaXAwNF9z ZXRfc25vb3BfZmlsdGVyKGNsdXN0ZXIsIDApOwotCXNwaW5fdW5sb2NrX2lycSgmYm9vdF9sb2Nr KTsKKwlyYXdfc3Bpbl91bmxvY2tfaXJxKCZib290X2xvY2spOwogCXJldHVybiAxOwogZXJyOgot CXNwaW5fdW5sb2NrX2lycSgmYm9vdF9sb2NrKTsKKwlyYXdfc3Bpbl91bmxvY2tfaXJxKCZib290 X2xvY2spOwogCXJldHVybiAwOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNo LW9tYXAyL29tYXAtc21wLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc21wLmMKaW5kZXgg MWM3MzY5NGM4NzFhZC4uYWM0ZDJmMDMwYjg3NCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1v bWFwMi9vbWFwLXNtcC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcC1zbXAuYwpAQCAt NjksNyArNjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9tYXBfc21wX2NvbmZpZyBvbWFwNV9j ZmcgX19pbml0Y29uc3QgPSB7CiAJLnN0YXJ0dXBfYWRkciA9IG9tYXA1X3NlY29uZGFyeV9zdGFy dHVwLAogfTsKIAotc3RhdGljIERFRklORV9TUElOTE9DSyhib290X2xvY2spOworc3RhdGljIERF RklORV9SQVdfU1BJTkxPQ0soYm9vdF9sb2NrKTsKIAogdm9pZCBfX2lvbWVtICpvbWFwNF9nZXRf c2N1X2Jhc2Uodm9pZCkKIHsKQEAgLTE3Nyw4ICsxNzcsOCBAQCBzdGF0aWMgdm9pZCBvbWFwNF9z ZWNvbmRhcnlfaW5pdCh1bnNpZ25lZCBpbnQgY3B1KQogCS8qCiAJICogU3luY2hyb25pc2Ugd2l0 aCB0aGUgYm9vdCB0aHJlYWQuCiAJICovCi0Jc3Bpbl9sb2NrKCZib290X2xvY2spOwotCXNwaW5f dW5sb2NrKCZib290X2xvY2spOworCXJhd19zcGluX2xvY2soJmJvb3RfbG9jayk7CisJcmF3X3Nw aW5fdW5sb2NrKCZib290X2xvY2spOwogfQogCiBzdGF0aWMgaW50IG9tYXA0X2Jvb3Rfc2Vjb25k YXJ5KHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqaWRsZSkKQEAgLTE5MSw3 ICsxOTEsNyBAQCBzdGF0aWMgaW50IG9tYXA0X2Jvb3Rfc2Vjb25kYXJ5KHVuc2lnbmVkIGludCBj cHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqaWRsZSkKIAkgKiBTZXQgc3luY2hyb25pc2F0aW9uIHN0 YXRlIGJldHdlZW4gdGhpcyBib290IHByb2Nlc3NvcgogCSAqIGFuZCB0aGUgc2Vjb25kYXJ5IG9u ZQogCSAqLwotCXNwaW5fbG9jaygmYm9vdF9sb2NrKTsKKwlyYXdfc3Bpbl9sb2NrKCZib290X2xv Y2spOwogCiAJLyoKIAkgKiBVcGRhdGUgdGhlIEF1eENvcmVCb290MCB3aXRoIGJvb3Qgc3RhdGUg Zm9yIHNlY29uZGFyeSBjb3JlLgpAQCAtMjcwLDcgKzI3MCw3IEBAIHN0YXRpYyBpbnQgb21hcDRf Ym9vdF9zZWNvbmRhcnkodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IHRhc2tfc3RydWN0ICppZGxl KQogCSAqIE5vdyB0aGUgc2Vjb25kYXJ5IGNvcmUgaXMgc3RhcnRpbmcgdXAgbGV0IGl0IHJ1biBp dHMKIAkgKiBjYWxpYnJhdGlvbnMsIHRoZW4gd2FpdCBmb3IgaXQgdG8gZmluaXNoCiAJICovCi0J c3Bpbl91bmxvY2soJmJvb3RfbG9jayk7CisJcmF3X3NwaW5fdW5sb2NrKCZib290X2xvY2spOwog CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXByaW1hMi9wbGF0c21w LmMgYi9hcmNoL2FybS9tYWNoLXByaW1hMi9wbGF0c21wLmMKaW5kZXggNzVlZjVkNGJlNTU0Yy4u YzE3Yzg2ZTVkODYwYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1wcmltYTIvcGxhdHNtcC5j CisrKyBiL2FyY2gvYXJtL21hY2gtcHJpbWEyL3BsYXRzbXAuYwpAQCAtMjIsNyArMjIsNyBAQAog CiBzdGF0aWMgdm9pZCBfX2lvbWVtICpjbGtfYmFzZTsKIAotc3RhdGljIERFRklORV9TUElOTE9D Syhib290X2xvY2spOworc3RhdGljIERFRklORV9SQVdfU1BJTkxPQ0soYm9vdF9sb2NrKTsKIAog c3RhdGljIHZvaWQgc2lyZnNvY19zZWNvbmRhcnlfaW5pdCh1bnNpZ25lZCBpbnQgY3B1KQogewpA QCAtMzYsOCArMzYsOCBAQCBzdGF0aWMgdm9pZCBzaXJmc29jX3NlY29uZGFyeV9pbml0KHVuc2ln bmVkIGludCBjcHUpCiAJLyoKIAkgKiBTeW5jaHJvbmlzZSB3aXRoIHRoZSBib290IHRocmVhZC4K IAkgKi8KLQlzcGluX2xvY2soJmJvb3RfbG9jayk7Ci0Jc3Bpbl91bmxvY2soJmJvb3RfbG9jayk7 CisJcmF3X3NwaW5fbG9jaygmYm9vdF9sb2NrKTsKKwlyYXdfc3Bpbl91bmxvY2soJmJvb3RfbG9j ayk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGNsa19pZHNbXSAgPSB7 CkBAIC03NSw3ICs3NSw3IEBAIHN0YXRpYyBpbnQgc2lyZnNvY19ib290X3NlY29uZGFyeSh1bnNp Z25lZCBpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmlkbGUpCiAJLyogbWFrZSBzdXJlIHdy aXRlIGJ1ZmZlciBpcyBkcmFpbmVkICovCiAJbWIoKTsKIAotCXNwaW5fbG9jaygmYm9vdF9sb2Nr KTsKKwlyYXdfc3Bpbl9sb2NrKCZib290X2xvY2spOwogCiAJLyoKIAkgKiBUaGUgc2Vjb25kYXJ5 IHByb2Nlc3NvciBpcyB3YWl0aW5nIHRvIGJlIHJlbGVhc2VkIGZyb20KQEAgLTEwNyw3ICsxMDcs NyBAQCBzdGF0aWMgaW50IHNpcmZzb2NfYm9vdF9zZWNvbmRhcnkodW5zaWduZWQgaW50IGNwdSwg c3RydWN0IHRhc2tfc3RydWN0ICppZGxlKQogCSAqIG5vdyB0aGUgc2Vjb25kYXJ5IGNvcmUgaXMg c3RhcnRpbmcgdXAgbGV0IGl0IHJ1biBpdHMKIAkgKiBjYWxpYnJhdGlvbnMsIHRoZW4gd2FpdCBm b3IgaXQgdG8gZmluaXNoCiAJICovCi0Jc3Bpbl91bmxvY2soJmJvb3RfbG9jayk7CisJcmF3X3Nw aW5fdW5sb2NrKCZib290X2xvY2spOwogCiAJcmV0dXJuIHBlbl9yZWxlYXNlICE9IC0xID8gLUVO T1NZUyA6IDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXFjb20vcGxhdHNtcC5jIGIv YXJjaC9hcm0vbWFjaC1xY29tL3BsYXRzbXAuYwppbmRleCA1NDk0YzllMGM5MDliLi5lOGNlMTU3 ZDM1NDhhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXFjb20vcGxhdHNtcC5jCisrKyBiL2Fy Y2gvYXJtL21hY2gtcWNvbS9wbGF0c21wLmMKQEAgLTQ2LDcgKzQ2LDcgQEAKIAogZXh0ZXJuIHZv aWQgc2Vjb25kYXJ5X3N0YXJ0dXBfYXJtKHZvaWQpOwogCi1zdGF0aWMgREVGSU5FX1NQSU5MT0NL KGJvb3RfbG9jayk7CitzdGF0aWMgREVGSU5FX1JBV19TUElOTE9DSyhib290X2xvY2spOwogCiAj aWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVCiBzdGF0aWMgdm9pZCBxY29tX2NwdV9kaWUodW5zaWdu ZWQgaW50IGNwdSkKQEAgLTYwLDggKzYwLDggQEAgc3RhdGljIHZvaWQgcWNvbV9zZWNvbmRhcnlf aW5pdCh1bnNpZ25lZCBpbnQgY3B1KQogCS8qCiAJICogU3luY2hyb25pc2Ugd2l0aCB0aGUgYm9v dCB0aHJlYWQuCiAJICovCi0Jc3Bpbl9sb2NrKCZib290X2xvY2spOwotCXNwaW5fdW5sb2NrKCZi b290X2xvY2spOworCXJhd19zcGluX2xvY2soJmJvb3RfbG9jayk7CisJcmF3X3NwaW5fdW5sb2Nr KCZib290X2xvY2spOwogfQogCiBzdGF0aWMgaW50IHNjc3NfcmVsZWFzZV9zZWNvbmRhcnkodW5z aWduZWQgaW50IGNwdSkKQEAgLTI4NCw3ICsyODQsNyBAQCBzdGF0aWMgaW50IHFjb21fYm9vdF9z ZWNvbmRhcnkodW5zaWduZWQgaW50IGNwdSwgaW50ICgqZnVuYykodW5zaWduZWQgaW50KSkKIAkg KiBzZXQgc3luY2hyb25pc2F0aW9uIHN0YXRlIGJldHdlZW4gdGhpcyBib290IHByb2Nlc3Nvcgog CSAqIGFuZCB0aGUgc2Vjb25kYXJ5IG9uZQogCSAqLwotCXNwaW5fbG9jaygmYm9vdF9sb2NrKTsK KwlyYXdfc3Bpbl9sb2NrKCZib290X2xvY2spOwogCiAJLyoKIAkgKiBTZW5kIHRoZSBzZWNvbmRh cnkgQ1BVIGEgc29mdCBpbnRlcnJ1cHQsIHRoZXJlYnkgY2F1c2luZwpAQCAtMjk3LDcgKzI5Nyw3 IEBAIHN0YXRpYyBpbnQgcWNvbV9ib290X3NlY29uZGFyeSh1bnNpZ25lZCBpbnQgY3B1LCBpbnQg KCpmdW5jKSh1bnNpZ25lZCBpbnQpKQogCSAqIG5vdyB0aGUgc2Vjb25kYXJ5IGNvcmUgaXMgc3Rh cnRpbmcgdXAgbGV0IGl0IHJ1biBpdHMKIAkgKiBjYWxpYnJhdGlvbnMsIHRoZW4gd2FpdCBmb3Ig aXQgdG8gZmluaXNoCiAJICovCi0Jc3Bpbl91bmxvY2soJmJvb3RfbG9jayk7CisJcmF3X3NwaW5f dW5sb2NrKCZib290X2xvY2spOwogCiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gv YXJtL21hY2gtc3BlYXIvcGxhdHNtcC5jIGIvYXJjaC9hcm0vbWFjaC1zcGVhci9wbGF0c21wLmMK aW5kZXggMzkwMzhhMDM4MzZhYy4uNmRhNWM5Mzg3MmJmOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0v bWFjaC1zcGVhci9wbGF0c21wLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1zcGVhci9wbGF0c21wLmMK QEAgLTMyLDcgKzMyLDcgQEAgc3RhdGljIHZvaWQgd3JpdGVfcGVuX3JlbGVhc2UoaW50IHZhbCkK IAlzeW5jX2NhY2hlX3coJnBlbl9yZWxlYXNlKTsKIH0KIAotc3RhdGljIERFRklORV9TUElOTE9D Syhib290X2xvY2spOworc3RhdGljIERFRklORV9SQVdfU1BJTkxPQ0soYm9vdF9sb2NrKTsKIAog c3RhdGljIHZvaWQgX19pb21lbSAqc2N1X2Jhc2UgPSBJT01FTShWQV9TQ1VfQkFTRSk7CiAKQEAg LTQ3LDggKzQ3LDggQEAgc3RhdGljIHZvaWQgc3BlYXIxM3h4X3NlY29uZGFyeV9pbml0KHVuc2ln bmVkIGludCBjcHUpCiAJLyoKIAkgKiBTeW5jaHJvbmlzZSB3aXRoIHRoZSBib290IHRocmVhZC4K IAkgKi8KLQlzcGluX2xvY2soJmJvb3RfbG9jayk7Ci0Jc3Bpbl91bmxvY2soJmJvb3RfbG9jayk7 CisJcmF3X3NwaW5fbG9jaygmYm9vdF9sb2NrKTsKKwlyYXdfc3Bpbl91bmxvY2soJmJvb3RfbG9j ayk7CiB9CiAKIHN0YXRpYyBpbnQgc3BlYXIxM3h4X2Jvb3Rfc2Vjb25kYXJ5KHVuc2lnbmVkIGlu dCBjcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqaWRsZSkKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGlj IGludCBzcGVhcjEzeHhfYm9vdF9zZWNvbmRhcnkodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IHRh c2tfc3RydWN0ICppZGxlKQogCSAqIHNldCBzeW5jaHJvbmlzYXRpb24gc3RhdGUgYmV0d2VlbiB0 aGlzIGJvb3QgcHJvY2Vzc29yCiAJICogYW5kIHRoZSBzZWNvbmRhcnkgb25lCiAJICovCi0Jc3Bp bl9sb2NrKCZib290X2xvY2spOworCXJhd19zcGluX2xvY2soJmJvb3RfbG9jayk7CiAKIAkvKgog CSAqIFRoZSBzZWNvbmRhcnkgcHJvY2Vzc29yIGlzIHdhaXRpbmcgdG8gYmUgcmVsZWFzZWQgZnJv bQpAQCAtODQsNyArODQsNyBAQCBzdGF0aWMgaW50IHNwZWFyMTN4eF9ib290X3NlY29uZGFyeSh1 bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmlkbGUpCiAJICogbm93IHRoZSBz ZWNvbmRhcnkgY29yZSBpcyBzdGFydGluZyB1cCBsZXQgaXQgcnVuIGl0cwogCSAqIGNhbGlicmF0 aW9ucywgdGhlbiB3YWl0IGZvciBpdCB0byBmaW5pc2gKIAkgKi8KLQlzcGluX3VubG9jaygmYm9v dF9sb2NrKTsKKwlyYXdfc3Bpbl91bmxvY2soJmJvb3RfbG9jayk7CiAKIAlyZXR1cm4gcGVuX3Jl bGVhc2UgIT0gLTEgPyAtRU5PU1lTIDogMDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gt c3RpL3BsYXRzbXAuYyBiL2FyY2gvYXJtL21hY2gtc3RpL3BsYXRzbXAuYwppbmRleCAyMzFmMTll MTc0MzY1Li5hMzQxOWI3MDAzZTZmIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXN0aS9wbGF0 c21wLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1zdGkvcGxhdHNtcC5jCkBAIC0zNSw3ICszNSw3IEBA IHN0YXRpYyB2b2lkIHdyaXRlX3Blbl9yZWxlYXNlKGludCB2YWwpCiAJc3luY19jYWNoZV93KCZw ZW5fcmVsZWFzZSk7CiB9CiAKLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0soYm9vdF9sb2NrKTsKK3N0 YXRpYyBERUZJTkVfUkFXX1NQSU5MT0NLKGJvb3RfbG9jayk7CiAKIHN0YXRpYyB2b2lkIHN0aV9z ZWNvbmRhcnlfaW5pdCh1bnNpZ25lZCBpbnQgY3B1KQogewpAQCAtNDgsOCArNDgsOCBAQCBzdGF0 aWMgdm9pZCBzdGlfc2Vjb25kYXJ5X2luaXQodW5zaWduZWQgaW50IGNwdSkKIAkvKgogCSAqIFN5 bmNocm9uaXNlIHdpdGggdGhlIGJvb3QgdGhyZWFkLgogCSAqLwotCXNwaW5fbG9jaygmYm9vdF9s b2NrKTsKLQlzcGluX3VubG9jaygmYm9vdF9sb2NrKTsKKwlyYXdfc3Bpbl9sb2NrKCZib290X2xv Y2spOworCXJhd19zcGluX3VubG9jaygmYm9vdF9sb2NrKTsKIH0KIAogc3RhdGljIGludCBzdGlf Ym9vdF9zZWNvbmRhcnkodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IHRhc2tfc3RydWN0ICppZGxl KQpAQCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgaW50IHN0aV9ib290X3NlY29uZGFyeSh1bnNpZ25l ZCBpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmlkbGUpCiAJICogc2V0IHN5bmNocm9uaXNh dGlvbiBzdGF0ZSBiZXR3ZWVuIHRoaXMgYm9vdCBwcm9jZXNzb3IKIAkgKiBhbmQgdGhlIHNlY29u ZGFyeSBvbmUKIAkgKi8KLQlzcGluX2xvY2soJmJvb3RfbG9jayk7CisJcmF3X3NwaW5fbG9jaygm Ym9vdF9sb2NrKTsKIAogCS8qCiAJICogVGhlIHNlY29uZGFyeSBwcm9jZXNzb3IgaXMgd2FpdGlu ZyB0byBiZSByZWxlYXNlZCBmcm9tCkBAIC05MSw3ICs5MSw3IEBAIHN0YXRpYyBpbnQgc3RpX2Jv b3Rfc2Vjb25kYXJ5KHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqaWRsZSkK IAkgKiBub3cgdGhlIHNlY29uZGFyeSBjb3JlIGlzIHN0YXJ0aW5nIHVwIGxldCBpdCBydW4gaXRz CiAJICogY2FsaWJyYXRpb25zLCB0aGVuIHdhaXQgZm9yIGl0IHRvIGZpbmlzaAogCSAqLwotCXNw aW5fdW5sb2NrKCZib290X2xvY2spOworCXJhd19zcGluX3VubG9jaygmYm9vdF9sb2NrKTsKIAog CXJldHVybiBwZW5fcmVsZWFzZSAhPSAtMSA/IC1FTk9TWVMgOiAwOwogfQpkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vbWFjaC1zdW54aS9tY19zbXAuYyBiL2FyY2gvYXJtL21hY2gtc3VueGkvbWNfc21w LmMKaW5kZXggYjQwMzdiNjAzODk3ZC4uOGE2Yzg3MmY1MmI1OSAxMDA2NDQKLS0tIGEvYXJjaC9h cm0vbWFjaC1zdW54aS9tY19zbXAuYworKysgYi9hcmNoL2FybS9tYWNoLXN1bnhpL21jX3NtcC5j CkBAIC0zNjcsNyArMzY3LDcgQEAgc3RhdGljIHZvaWQgc3VueGlfY2x1c3Rlcl9jYWNoZV9kaXNh YmxlX3dpdGhvdXRfYXhpKHZvaWQpCiBzdGF0aWMgaW50IHN1bnhpX21jX3NtcF9jcHVfdGFibGVb U1VOWElfTlJfQ0xVU1RFUlNdW1NVTlhJX0NQVVNfUEVSX0NMVVNURVJdOwogaW50IHN1bnhpX21j X3NtcF9maXJzdF9jb21lcjsKIAotc3RhdGljIERFRklORV9TUElOTE9DSyhib290X2xvY2spOwor c3RhdGljIERFRklORV9SQVdfU1BJTkxPQ0soYm9vdF9sb2NrKTsKIAogc3RhdGljIGJvb2wgc3Vu eGlfbWNfc21wX2NsdXN0ZXJfaXNfZG93bih1bnNpZ25lZCBpbnQgY2x1c3RlcikKIHsKQEAgLTM5 OSw3ICszOTksNyBAQCBzdGF0aWMgaW50IHN1bnhpX21jX3NtcF9ib290X3NlY29uZGFyeSh1bnNp Z25lZCBpbnQgbF9jcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqaQogCWlmIChjbHVzdGVyID49IFNV TlhJX05SX0NMVVNURVJTIHx8IGNwdSA+PSBTVU5YSV9DUFVTX1BFUl9DTFVTVEVSKQogCQlyZXR1 cm4gLUVJTlZBTDsKIAotCXNwaW5fbG9ja19pcnEoJmJvb3RfbG9jayk7CisJcmF3X3NwaW5fbG9j a19pcnEoJmJvb3RfbG9jayk7CiAKIAlpZiAoc3VueGlfbWNfc21wX2NwdV90YWJsZVtjbHVzdGVy XVtjcHVdKQogCQlnb3RvIG91dDsKQEAgLTQxNyw3ICs0MTcsNyBAQCBzdGF0aWMgaW50IHN1bnhp X21jX3NtcF9ib290X3NlY29uZGFyeSh1bnNpZ25lZCBpbnQgbF9jcHUsIHN0cnVjdCB0YXNrX3N0 cnVjdCAqaQogCiBvdXQ6CiAJc3VueGlfbWNfc21wX2NwdV90YWJsZVtjbHVzdGVyXVtjcHVdKys7 Ci0Jc3Bpbl91bmxvY2tfaXJxKCZib290X2xvY2spOworCXJhd19zcGluX3VubG9ja19pcnEoJmJv b3RfbG9jayk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTQ0OCwxMyArNDQ4LDEzIEBAIHN0YXRpYyB2 b2lkIHN1bnhpX21jX3NtcF9jcHVfZGllKHVuc2lnbmVkIGludCBsX2NwdSkKIAljbHVzdGVyID0g TVBJRFJfQUZGSU5JVFlfTEVWRUwobXBpZHIsIDEpOwogCXByX2RlYnVnKCIlczogY2x1c3RlciAl dSBjcHUgJXVcbiIsIF9fZnVuY19fLCBjbHVzdGVyLCBjcHUpOwogCi0Jc3Bpbl9sb2NrKCZib290 X2xvY2spOworCXJhd19zcGluX2xvY2soJmJvb3RfbG9jayk7CiAJc3VueGlfbWNfc21wX2NwdV90 YWJsZVtjbHVzdGVyXVtjcHVdLS07CiAJaWYgKHN1bnhpX21jX3NtcF9jcHVfdGFibGVbY2x1c3Rl cl1bY3B1XSA9PSAxKSB7CiAJCS8qIEEgcG93ZXJfdXAgcmVxdWVzdCB3ZW50IGFoZWFkIG9mIHVz LiAqLwogCQlwcl9kZWJ1ZygiJXM6IGFib3J0aW5nIGR1ZSB0byBhIHBvd2VyIHVwIHJlcXVlc3Rc biIsCiAJCQkgX19mdW5jX18pOwotCQlzcGluX3VubG9jaygmYm9vdF9sb2NrKTsKKwkJcmF3X3Nw aW5fdW5sb2NrKCZib290X2xvY2spOwogCQlyZXR1cm47CiAJfSBlbHNlIGlmIChzdW54aV9tY19z bXBfY3B1X3RhYmxlW2NsdXN0ZXJdW2NwdV0gPiAxKSB7CiAJCXByX2VycigiQ2x1c3RlciAlZCBD UFUlZCBib290cyBtdWx0aXBsZSB0aW1lc1xuIiwKQEAgLTQ2Myw3ICs0NjMsNyBAQCBzdGF0aWMg dm9pZCBzdW54aV9tY19zbXBfY3B1X2RpZSh1bnNpZ25lZCBpbnQgbF9jcHUpCiAJfQogCiAJbGFz dF9tYW4gPSBzdW54aV9tY19zbXBfY2x1c3Rlcl9pc19kb3duKGNsdXN0ZXIpOwotCXNwaW5fdW5s b2NrKCZib290X2xvY2spOworCXJhd19zcGluX3VubG9jaygmYm9vdF9sb2NrKTsKIAogCWdpY19j cHVfaWZfZG93bigwKTsKIAlpZiAobGFzdF9tYW4pCkBAIC01NDIsMTEgKzU0MiwxMSBAQCBzdGF0 aWMgaW50IHN1bnhpX21jX3NtcF9jcHVfa2lsbCh1bnNpZ25lZCBpbnQgbF9jcHUpCiAKIAkvKiB3 YWl0IGZvciBDUFUgY29yZSB0byBkaWUgYW5kIGVudGVyIFdGSSAqLwogCWNvdW50ID0gVElNRU9V VF9VU0VDIC8gUE9MTF9VU0VDOwotCXNwaW5fbG9ja19pcnEoJmJvb3RfbG9jayk7CisJcmF3X3Nw aW5fbG9ja19pcnEoJmJvb3RfbG9jayk7CiAJZm9yICh0cmllcyA9IDA7IHRyaWVzIDwgY291bnQ7 IHRyaWVzKyspIHsKLQkJc3Bpbl91bmxvY2tfaXJxKCZib290X2xvY2spOworCQlyYXdfc3Bpbl91 bmxvY2tfaXJxKCZib290X2xvY2spOwogCQl1c2xlZXBfcmFuZ2UoUE9MTF9VU0VDIC8gMiwgUE9M TF9VU0VDKTsKLQkJc3Bpbl9sb2NrX2lycSgmYm9vdF9sb2NrKTsKKwkJcmF3X3NwaW5fbG9ja19p cnEoJmJvb3RfbG9jayk7CiAKIAkJLyoKIAkJICogSWYgdGhlIHVzZXIgdHVybnMgb2ZmIGEgYnVu Y2ggb2YgY29yZXMgYXQgdGhlIHNhbWUKQEAgLTU5Myw3ICs1OTMsNyBAQCBzdGF0aWMgaW50IHN1 bnhpX21jX3NtcF9jcHVfa2lsbCh1bnNpZ25lZCBpbnQgbF9jcHUpCiAJc3VueGlfY2x1c3Rlcl9w b3dlcmRvd24oY2x1c3Rlcik7CiAKIG91dDoKLQlzcGluX3VubG9ja19pcnEoJmJvb3RfbG9jayk7 CisJcmF3X3NwaW5fdW5sb2NrX2lycSgmYm9vdF9sb2NrKTsKIAlwcl9kZWJ1ZygiJXM6IGNsdXN0 ZXIgJXUgY3B1ICV1IHBvd2VyZG93bjogJWRcbiIsCiAJCSBfX2Z1bmNfXywgY2x1c3RlciwgY3B1 LCByZXQpOwogCXJldHVybiAhcmV0OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC12ZXJzYXRp bGUvcGxhdHNtcC5jIGIvYXJjaC9hcm0vcGxhdC12ZXJzYXRpbGUvcGxhdHNtcC5jCmluZGV4IGMy MzY2NTEwMTg3YTguLjZiNjBmNTgyYjczOGMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtdmVy c2F0aWxlL3BsYXRzbXAuYworKysgYi9hcmNoL2FybS9wbGF0LXZlcnNhdGlsZS9wbGF0c21wLmMK QEAgLTMyLDcgKzMyLDcgQEAgc3RhdGljIHZvaWQgd3JpdGVfcGVuX3JlbGVhc2UoaW50IHZhbCkK IAlzeW5jX2NhY2hlX3coJnBlbl9yZWxlYXNlKTsKIH0KIAotc3RhdGljIERFRklORV9TUElOTE9D Syhib290X2xvY2spOworc3RhdGljIERFRklORV9SQVdfU1BJTkxPQ0soYm9vdF9sb2NrKTsKIAog dm9pZCB2ZXJzYXRpbGVfc2Vjb25kYXJ5X2luaXQodW5zaWduZWQgaW50IGNwdSkKIHsKQEAgLTQ1 LDggKzQ1LDggQEAgdm9pZCB2ZXJzYXRpbGVfc2Vjb25kYXJ5X2luaXQodW5zaWduZWQgaW50IGNw dSkKIAkvKgogCSAqIFN5bmNocm9uaXNlIHdpdGggdGhlIGJvb3QgdGhyZWFkLgogCSAqLwotCXNw aW5fbG9jaygmYm9vdF9sb2NrKTsKLQlzcGluX3VubG9jaygmYm9vdF9sb2NrKTsKKwlyYXdfc3Bp bl9sb2NrKCZib290X2xvY2spOworCXJhd19zcGluX3VubG9jaygmYm9vdF9sb2NrKTsKIH0KIAog aW50IHZlcnNhdGlsZV9ib290X3NlY29uZGFyeSh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgdGFz a19zdHJ1Y3QgKmlkbGUpCkBAIC01Nyw3ICs1Nyw3IEBAIGludCB2ZXJzYXRpbGVfYm9vdF9zZWNv bmRhcnkodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IHRhc2tfc3RydWN0ICppZGxlKQogCSAqIFNl dCBzeW5jaHJvbmlzYXRpb24gc3RhdGUgYmV0d2VlbiB0aGlzIGJvb3QgcHJvY2Vzc29yCiAJICog YW5kIHRoZSBzZWNvbmRhcnkgb25lCiAJICovCi0Jc3Bpbl9sb2NrKCZib290X2xvY2spOworCXJh d19zcGluX2xvY2soJmJvb3RfbG9jayk7CiAKIAkvKgogCSAqIFRoaXMgaXMgcmVhbGx5IGJlbHQg YW5kIGJyYWNlczsgd2UgaG9sZCB1bmludGVuZGVkIHNlY29uZGFyeQpAQCAtODcsNyArODcsNyBA QCBpbnQgdmVyc2F0aWxlX2Jvb3Rfc2Vjb25kYXJ5KHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCB0 YXNrX3N0cnVjdCAqaWRsZSkKIAkgKiBub3cgdGhlIHNlY29uZGFyeSBjb3JlIGlzIHN0YXJ0aW5n IHVwIGxldCBpdCBydW4gaXRzCiAJICogY2FsaWJyYXRpb25zLCB0aGVuIHdhaXQgZm9yIGl0IHRv IGZpbmlzaAogCSAqLwotCXNwaW5fdW5sb2NrKCZib290X2xvY2spOworCXJhd19zcGluX3VubG9j aygmYm9vdF9sb2NrKTsKIAogCXJldHVybiBwZW5fcmVsZWFzZSAhPSAtMSA/IC1FTk9TWVMgOiAw OwogfQotLSAKMi4yMC4wLnJjMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJu ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK