Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752574AbaFGCSr (ORCPT ); Fri, 6 Jun 2014 22:18:47 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:36565 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752299AbaFGCSp (ORCPT ); Fri, 6 Jun 2014 22:18:45 -0400 Message-ID: <1402107781.23860.16.camel@deadeye.wl.decadent.org.uk> Subject: Re: [PATCH 3.2 00/92] 3.2.60-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, Satoru Takeuchi , Guenter Roeck , akpm@linux-foundation.org Date: Sat, 07 Jun 2014 03:23:01 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-X3IMJ+1jIRQ9NaRAtjbh" X-Mailer: Evolution 3.12.2-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.249 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 --=-X3IMJ+1jIRQ9NaRAtjbh Content-Type: multipart/mixed; boundary="=-z1f8DDsBOW8E3mB1N7ry" --=-z1f8DDsBOW8E3mB1N7ry Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.60-rc1 relative to 3.2.59. Ben. --=20 Ben Hutchings Knowledge is power. France is bacon. --=-z1f8DDsBOW8E3mB1N7ry Content-Disposition: attachment; filename="linux-3.2.60-rc1.patch" Content-Type: text/x-patch; name="linux-3.2.60-rc1.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaW5wdXQvZWxhbnRlY2gudHh0IGIvRG9jdW1lbnRh dGlvbi9pbnB1dC9lbGFudGVjaC50eHQNCmluZGV4IDU2MDJlYjcuLmUxYWUxMjcgMTAwNjQ0DQot LS0gYS9Eb2N1bWVudGF0aW9uL2lucHV0L2VsYW50ZWNoLnR4dA0KKysrIGIvRG9jdW1lbnRhdGlv bi9pbnB1dC9lbGFudGVjaC50eHQNCkBAIC01MDQsOSArNTA0LDEyIEBAIGJ5dGUgNToNCiAqIHJl Z18xMA0KIA0KICAgIGJpdCAgIDcgICA2ICAgNSAgIDQgICAzICAgMiAgIDEgICAwDQotICAgICAg ICAgMCAgIDAgICAwICAgMCAgIDAgICAwICAgMCAgIEENCisgICAgICAgICAwICAgMCAgIDAgICAw ICAgUiAgIEYgICBUICAgQQ0KIA0KICAgICAgICAgIEE6IDEgPSBlbmFibGUgYWJzb2x1dGUgdHJh Y2tpbmcNCisgICAgICAgICBUOiAxID0gZW5hYmxlIHR3byBmaW5nZXIgbW9kZSBhdXRvIGNvcnJl Y3QNCisgICAgICAgICBGOiAxID0gZGlzYWJsZSBBQlMgUG9zaXRpb24gRmlsdGVyDQorICAgICAg ICAgUjogMSA9IGVuYWJsZSByZWFsIGhhcmR3YXJlIHJlc29sdXRpb24NCiANCiA2LjIgTmF0aXZl IGFic29sdXRlIG1vZGUgNiBieXRlIHBhY2tldCBmb3JtYXQNCiAgICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2Vm aWxlDQppbmRleCAxYmUzNDE0Li45ZTBkZmMzIDEwMDY0NA0KLS0tIGEvTWFrZWZpbGUNCisrKyBi L01ha2VmaWxlDQpAQCAtMSw3ICsxLDcgQEANCiBWRVJTSU9OID0gMw0KIFBBVENITEVWRUwgPSAy DQotU1VCTEVWRUwgPSA1OQ0KLUVYVFJBVkVSU0lPTiA9DQorU1VCTEVWRUwgPSA2MA0KK0VYVFJB VkVSU0lPTiA9IC1yYzENCiBOQU1FID0gU2FiZXItdG9vdGhlZCBTcXVpcnJlbA0KIA0KICMgKkRP Q1VNRU5UQVRJT04qDQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2xpYi9jcnRzYXZyZXMuUyBi L2FyY2gvcG93ZXJwYy9saWIvY3J0c2F2cmVzLlMNCmluZGV4IDFjODkzZjAuLjIxZWNkZjUgMTAw NjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvbGliL2NydHNhdnJlcy5TDQorKysgYi9hcmNoL3Bvd2Vy cGMvbGliL2NydHNhdnJlcy5TDQpAQCAtMjMwLDYgKzIzMCw4NyBAQCBfR0xPQkFMKF9yZXN0MzJn cHJfMzFfeCkNCiAJbXIJMSwxMQ0KIAlibHINCiANCisjaWZkZWYgQ09ORklHX0FMVElWRUMNCisv KiBDYWxsZWQgd2l0aCByMCBwb2ludGluZyBqdXN0IGJleW9uZCB0aGUgZW5kIG9mIHRoZSB2ZWN0 b3Igc2F2ZSBhcmVhLiAgKi8NCisNCitfR0xPQkFMKF9zYXZldnJfMjApDQorCWxpCXIxMSwtMTky DQorCXN0dngJdnIyMCxyMTEscjANCitfR0xPQkFMKF9zYXZldnJfMjEpDQorCWxpCXIxMSwtMTc2 DQorCXN0dngJdnIyMSxyMTEscjANCitfR0xPQkFMKF9zYXZldnJfMjIpDQorCWxpCXIxMSwtMTYw DQorCXN0dngJdnIyMixyMTEscjANCitfR0xPQkFMKF9zYXZldnJfMjMpDQorCWxpCXIxMSwtMTQ0 DQorCXN0dngJdnIyMyxyMTEscjANCitfR0xPQkFMKF9zYXZldnJfMjQpDQorCWxpCXIxMSwtMTI4 DQorCXN0dngJdnIyNCxyMTEscjANCitfR0xPQkFMKF9zYXZldnJfMjUpDQorCWxpCXIxMSwtMTEy DQorCXN0dngJdnIyNSxyMTEscjANCitfR0xPQkFMKF9zYXZldnJfMjYpDQorCWxpCXIxMSwtOTYN CisJc3R2eAl2cjI2LHIxMSxyMA0KK19HTE9CQUwoX3NhdmV2cl8yNykNCisJbGkJcjExLC04MA0K KwlzdHZ4CXZyMjcscjExLHIwDQorX0dMT0JBTChfc2F2ZXZyXzI4KQ0KKwlsaQlyMTEsLTY0DQor CXN0dngJdnIyOCxyMTEscjANCitfR0xPQkFMKF9zYXZldnJfMjkpDQorCWxpCXIxMSwtNDgNCisJ c3R2eAl2cjI5LHIxMSxyMA0KK19HTE9CQUwoX3NhdmV2cl8zMCkNCisJbGkJcjExLC0zMg0KKwlz dHZ4CXZyMzAscjExLHIwDQorX0dMT0JBTChfc2F2ZXZyXzMxKQ0KKwlsaQlyMTEsLTE2DQorCXN0 dngJdnIzMSxyMTEscjANCisJYmxyDQorDQorX0dMT0JBTChfcmVzdHZyXzIwKQ0KKwlsaQlyMTEs LTE5Mg0KKwlsdngJdnIyMCxyMTEscjANCitfR0xPQkFMKF9yZXN0dnJfMjEpDQorCWxpCXIxMSwt MTc2DQorCWx2eAl2cjIxLHIxMSxyMA0KK19HTE9CQUwoX3Jlc3R2cl8yMikNCisJbGkJcjExLC0x NjANCisJbHZ4CXZyMjIscjExLHIwDQorX0dMT0JBTChfcmVzdHZyXzIzKQ0KKwlsaQlyMTEsLTE0 NA0KKwlsdngJdnIyMyxyMTEscjANCitfR0xPQkFMKF9yZXN0dnJfMjQpDQorCWxpCXIxMSwtMTI4 DQorCWx2eAl2cjI0LHIxMSxyMA0KK19HTE9CQUwoX3Jlc3R2cl8yNSkNCisJbGkJcjExLC0xMTIN CisJbHZ4CXZyMjUscjExLHIwDQorX0dMT0JBTChfcmVzdHZyXzI2KQ0KKwlsaQlyMTEsLTk2DQor CWx2eAl2cjI2LHIxMSxyMA0KK19HTE9CQUwoX3Jlc3R2cl8yNykNCisJbGkJcjExLC04MA0KKwls dngJdnIyNyxyMTEscjANCitfR0xPQkFMKF9yZXN0dnJfMjgpDQorCWxpCXIxMSwtNjQNCisJbHZ4 CXZyMjgscjExLHIwDQorX0dMT0JBTChfcmVzdHZyXzI5KQ0KKwlsaQlyMTEsLTQ4DQorCWx2eAl2 cjI5LHIxMSxyMA0KK19HTE9CQUwoX3Jlc3R2cl8zMCkNCisJbGkJcjExLC0zMg0KKwlsdngJdnIz MCxyMTEscjANCitfR0xPQkFMKF9yZXN0dnJfMzEpDQorCWxpCXIxMSwtMTYNCisJbHZ4CXZyMzEs cjExLHIwDQorCWJscg0KKw0KKyNlbmRpZiAvKiBDT05GSUdfQUxUSVZFQyAqLw0KKw0KICNlbHNl IC8qIENPTkZJR19QUEM2NCAqLw0KIA0KIC5nbG9ibAlfc2F2ZWdwcjBfMTQNCkBAIC0zNTMsNiAr NDM0LDExMSBAQCBfcmVzdGdwcjBfMzE6DQogCW10bHIJcjANCiAJYmxyDQogDQorI2lmZGVmIENP TkZJR19BTFRJVkVDDQorLyogQ2FsbGVkIHdpdGggcjAgcG9pbnRpbmcganVzdCBiZXlvbmQgdGhl IGVuZCBvZiB0aGUgdmVjdG9yIHNhdmUgYXJlYS4gICovDQorDQorLmdsb2JsCV9zYXZldnJfMjAN Citfc2F2ZXZyXzIwOg0KKwlsaQlyMTIsLTE5Mg0KKwlzdHZ4CXZyMjAscjEyLHIwDQorLmdsb2Js CV9zYXZldnJfMjENCitfc2F2ZXZyXzIxOg0KKwlsaQlyMTIsLTE3Ng0KKwlzdHZ4CXZyMjEscjEy LHIwDQorLmdsb2JsCV9zYXZldnJfMjINCitfc2F2ZXZyXzIyOg0KKwlsaQlyMTIsLTE2MA0KKwlz dHZ4CXZyMjIscjEyLHIwDQorLmdsb2JsCV9zYXZldnJfMjMNCitfc2F2ZXZyXzIzOg0KKwlsaQly MTIsLTE0NA0KKwlzdHZ4CXZyMjMscjEyLHIwDQorLmdsb2JsCV9zYXZldnJfMjQNCitfc2F2ZXZy XzI0Og0KKwlsaQlyMTIsLTEyOA0KKwlzdHZ4CXZyMjQscjEyLHIwDQorLmdsb2JsCV9zYXZldnJf MjUNCitfc2F2ZXZyXzI1Og0KKwlsaQlyMTIsLTExMg0KKwlzdHZ4CXZyMjUscjEyLHIwDQorLmds b2JsCV9zYXZldnJfMjYNCitfc2F2ZXZyXzI2Og0KKwlsaQlyMTIsLTk2DQorCXN0dngJdnIyNixy MTIscjANCisuZ2xvYmwJX3NhdmV2cl8yNw0KK19zYXZldnJfMjc6DQorCWxpCXIxMiwtODANCisJ c3R2eAl2cjI3LHIxMixyMA0KKy5nbG9ibAlfc2F2ZXZyXzI4DQorX3NhdmV2cl8yODoNCisJbGkJ cjEyLC02NA0KKwlzdHZ4CXZyMjgscjEyLHIwDQorLmdsb2JsCV9zYXZldnJfMjkNCitfc2F2ZXZy XzI5Og0KKwlsaQlyMTIsLTQ4DQorCXN0dngJdnIyOSxyMTIscjANCisuZ2xvYmwJX3NhdmV2cl8z MA0KK19zYXZldnJfMzA6DQorCWxpCXIxMiwtMzINCisJc3R2eAl2cjMwLHIxMixyMA0KKy5nbG9i bAlfc2F2ZXZyXzMxDQorX3NhdmV2cl8zMToNCisJbGkJcjEyLC0xNg0KKwlzdHZ4CXZyMzEscjEy LHIwDQorCWJscg0KKw0KKy5nbG9ibAlfcmVzdHZyXzIwDQorX3Jlc3R2cl8yMDoNCisJbGkJcjEy LC0xOTINCisJbHZ4CXZyMjAscjEyLHIwDQorLmdsb2JsCV9yZXN0dnJfMjENCitfcmVzdHZyXzIx Og0KKwlsaQlyMTIsLTE3Ng0KKwlsdngJdnIyMSxyMTIscjANCisuZ2xvYmwJX3Jlc3R2cl8yMg0K K19yZXN0dnJfMjI6DQorCWxpCXIxMiwtMTYwDQorCWx2eAl2cjIyLHIxMixyMA0KKy5nbG9ibAlf cmVzdHZyXzIzDQorX3Jlc3R2cl8yMzoNCisJbGkJcjEyLC0xNDQNCisJbHZ4CXZyMjMscjEyLHIw DQorLmdsb2JsCV9yZXN0dnJfMjQNCitfcmVzdHZyXzI0Og0KKwlsaQlyMTIsLTEyOA0KKwlsdngJ dnIyNCxyMTIscjANCisuZ2xvYmwJX3Jlc3R2cl8yNQ0KK19yZXN0dnJfMjU6DQorCWxpCXIxMiwt MTEyDQorCWx2eAl2cjI1LHIxMixyMA0KKy5nbG9ibAlfcmVzdHZyXzI2DQorX3Jlc3R2cl8yNjoN CisJbGkJcjEyLC05Ng0KKwlsdngJdnIyNixyMTIscjANCisuZ2xvYmwJX3Jlc3R2cl8yNw0KK19y ZXN0dnJfMjc6DQorCWxpCXIxMiwtODANCisJbHZ4CXZyMjcscjEyLHIwDQorLmdsb2JsCV9yZXN0 dnJfMjgNCitfcmVzdHZyXzI4Og0KKwlsaQlyMTIsLTY0DQorCWx2eAl2cjI4LHIxMixyMA0KKy5n bG9ibAlfcmVzdHZyXzI5DQorX3Jlc3R2cl8yOToNCisJbGkJcjEyLC00OA0KKwlsdngJdnIyOSxy MTIscjANCisuZ2xvYmwJX3Jlc3R2cl8zMA0KK19yZXN0dnJfMzA6DQorCWxpCXIxMiwtMzINCisJ bHZ4CXZyMzAscjEyLHIwDQorLmdsb2JsCV9yZXN0dnJfMzENCitfcmVzdHZyXzMxOg0KKwlsaQly MTIsLTE2DQorCWx2eAl2cjMxLHIxMixyMA0KKwlibHINCisNCisjZW5kaWYgLyogQ09ORklHX0FM VElWRUMgKi8NCisNCiAjZW5kaWYgLyogQ09ORklHX1BQQzY0ICovDQogDQogI2VuZGlmDQpkaWZm IC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vaHVnZXRsYi5oIGIvYXJjaC94ODYvaW5jbHVk ZS9hc20vaHVnZXRsYi5oDQppbmRleCA0MzlhOWFjLi40OGZhMzkxIDEwMDY0NA0KLS0tIGEvYXJj aC94ODYvaW5jbHVkZS9hc20vaHVnZXRsYi5oDQorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9o dWdldGxiLmgNCkBAIC01MSw2ICs1MSw3IEBAIHN0YXRpYyBpbmxpbmUgcHRlX3QgaHVnZV9wdGVw X2dldF9hbmRfY2xlYXIoc3RydWN0IG1tX3N0cnVjdCAqbW0sDQogc3RhdGljIGlubGluZSB2b2lk IGh1Z2VfcHRlcF9jbGVhcl9mbHVzaChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCiAJCQkJ CSB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKQ0KIHsNCisJcHRlcF9jbGVhcl9mbHVz aCh2bWEsIGFkZHIsIHB0ZXApOw0KIH0NCiANCiBzdGF0aWMgaW5saW5lIGludCBodWdlX3B0ZV9u b25lKHB0ZV90IHB0ZSkNCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbGR0LmMgYi9hcmNo L3g4Ni9rZXJuZWwvbGR0LmMNCmluZGV4IDRhYzQ1MzEuLjNlMGNjYmYgMTAwNjQ0DQotLS0gYS9h cmNoL3g4Ni9rZXJuZWwvbGR0LmMNCisrKyBiL2FyY2gveDg2L2tlcm5lbC9sZHQuYw0KQEAgLTIx LDYgKzIxLDggQEANCiAjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+DQogI2luY2x1ZGUgPGFz bS9zeXNjYWxscy5oPg0KIA0KK2ludCBzeXNjdGxfbGR0MTYgPSAwOw0KKw0KICNpZmRlZiBDT05G SUdfU01QDQogc3RhdGljIHZvaWQgZmx1c2hfbGR0KHZvaWQgKmN1cnJlbnRfbW0pDQogew0KQEAg LTIzNSw3ICsyMzcsNyBAQCBzdGF0aWMgaW50IHdyaXRlX2xkdCh2b2lkIF9fdXNlciAqcHRyLCB1 bnNpZ25lZCBsb25nIGJ5dGVjb3VudCwgaW50IG9sZG1vZGUpDQogCSAqIElSRVQgbGVha2luZyB0 aGUgaGlnaCBiaXRzIG9mIHRoZSBrZXJuZWwgc3RhY2sgYWRkcmVzcy4NCiAJICovDQogI2lmZGVm IENPTkZJR19YODZfNjQNCi0JaWYgKCFsZHRfaW5mby5zZWdfMzJiaXQpIHsNCisJaWYgKCFsZHRf aW5mby5zZWdfMzJiaXQgJiYgIXN5c2N0bF9sZHQxNikgew0KIAkJZXJyb3IgPSAtRUlOVkFMOw0K IAkJZ290byBvdXRfdW5sb2NrOw0KIAl9DQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvdmRzby92ZHNv MzItc2V0dXAuYyBiL2FyY2gveDg2L3Zkc28vdmRzbzMyLXNldHVwLmMNCmluZGV4IDQ2OGQ1OTEu LjUxYmRjMDUgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni92ZHNvL3Zkc28zMi1zZXR1cC5jDQorKysg Yi9hcmNoL3g4Ni92ZHNvL3Zkc28zMi1zZXR1cC5jDQpAQCAtNDEsNiArNDEsNyBAQCBlbnVtIHsN CiAjaWZkZWYgQ09ORklHX1g4Nl82NA0KICNkZWZpbmUgdmRzb19lbmFibGVkCQkJc3lzY3RsX3Zz eXNjYWxsMzINCiAjZGVmaW5lIGFyY2hfc2V0dXBfYWRkaXRpb25hbF9wYWdlcwlzeXNjYWxsMzJf c2V0dXBfcGFnZXMNCitleHRlcm4gaW50IHN5c2N0bF9sZHQxNjsNCiAjZW5kaWYNCiANCiAvKg0K QEAgLTM4OCw2ICszODksMTMgQEAgc3RhdGljIGN0bF90YWJsZSBhYmlfdGFibGUyW10gPSB7DQog CQkubW9kZQkJPSAwNjQ0LA0KIAkJLnByb2NfaGFuZGxlcgk9IHByb2NfZG9pbnR2ZWMNCiAJfSwN CisJew0KKwkJLnByb2NuYW1lCT0gImxkdDE2IiwNCisJCS5kYXRhCQk9ICZzeXNjdGxfbGR0MTYs DQorCQkubWF4bGVuCQk9IHNpemVvZihpbnQpLA0KKwkJLm1vZGUJCT0gMDY0NCwNCisJCS5wcm9j X2hhbmRsZXIJPSBwcm9jX2RvaW50dmVjDQorCX0sDQogCXt9DQogfTsNCiANCmRpZmYgLS1naXQg YS9kcml2ZXJzL2FjcGkvZWMuYyBiL2RyaXZlcnMvYWNwaS9lYy5jDQppbmRleCA4MTc2YjgyLi4z OTIzMDY0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hY3BpL2VjLmMNCisrKyBiL2RyaXZlcnMvYWNw aS9lYy5jDQpAQCAtNzAsNiArNzAsOCBAQCBlbnVtIGVjX2NvbW1hbmQgew0KICNkZWZpbmUgQUNQ SV9FQ19ERUxBWQkJNTAwCS8qIFdhaXQgNTAwbXMgbWF4LiBkdXJpbmcgRUMgb3BzICovDQogI2Rl ZmluZSBBQ1BJX0VDX1VERUxBWV9HTEsJMTAwMAkvKiBXYWl0IDFtcyBtYXguIHRvIGdldCBnbG9i YWwgbG9jayAqLw0KICNkZWZpbmUgQUNQSV9FQ19NU0lfVURFTEFZCTU1MAkvKiBXYWl0IDU1MHVz IGZvciBNU0kgRUMgKi8NCisjZGVmaW5lIEFDUElfRUNfQ0xFQVJfTUFYCTEwMAkvKiBNYXhpbXVt IG51bWJlciBvZiBldmVudHMgdG8gcXVlcnkNCisJCQkJCSAqIHdoZW4gdHJ5aW5nIHRvIGNsZWFy IHRoZSBFQyAqLw0KIA0KIGVudW0gew0KIAlFQ19GTEFHU19RVUVSWV9QRU5ESU5HLAkJLyogUXVl cnkgaXMgcGVuZGluZyAqLw0KQEAgLTEyMyw2ICsxMjUsNyBAQCBFWFBPUlRfU1lNQk9MKGZpcnN0 X2VjKTsNCiBzdGF0aWMgaW50IEVDX0ZMQUdTX01TSTsgLyogT3V0LW9mLXNwZWMgTVNJIGNvbnRy b2xsZXIgKi8NCiBzdGF0aWMgaW50IEVDX0ZMQUdTX1ZBTElEQVRFX0VDRFQ7IC8qIEFTVVN0ZWMg RUNEVHMgbmVlZCB0byBiZSB2YWxpZGF0ZWQgKi8NCiBzdGF0aWMgaW50IEVDX0ZMQUdTX1NLSVBf RFNEVF9TQ0FOOyAvKiBOb3QgYWxsIEJJT1Mgc3Vydml2ZSBlYXJseSBEU0RUIHNjYW4gKi8NCitz dGF0aWMgaW50IEVDX0ZMQUdTX0NMRUFSX09OX1JFU1VNRTsgLyogTmVlZHMgYWNwaV9lY19jbGVh cigpIG9uIGJvb3QvcmVzdW1lICovDQogDQogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRyYW5zYWN0aW9uIE1hbmFnZW1lbnQNCkBAIC0yMDMsMTMg KzIwNiwxMyBAQCB1bmxvY2s6DQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVjLT5jdXJyX2xv Y2ssIGZsYWdzKTsNCiB9DQogDQotc3RhdGljIGludCBhY3BpX2VjX3N5bmNfcXVlcnkoc3RydWN0 IGFjcGlfZWMgKmVjKTsNCitzdGF0aWMgaW50IGFjcGlfZWNfc3luY19xdWVyeShzdHJ1Y3QgYWNw aV9lYyAqZWMsIHU4ICpkYXRhKTsNCiANCiBzdGF0aWMgaW50IGVjX2NoZWNrX3NjaV9zeW5jKHN0 cnVjdCBhY3BpX2VjICplYywgdTggc3RhdGUpDQogew0KIAlpZiAoc3RhdGUgJiBBQ1BJX0VDX0ZM QUdfU0NJKSB7DQogCQlpZiAoIXRlc3RfYW5kX3NldF9iaXQoRUNfRkxBR1NfUVVFUllfUEVORElO RywgJmVjLT5mbGFncykpDQotCQkJcmV0dXJuIGFjcGlfZWNfc3luY19xdWVyeShlYyk7DQorCQkJ cmV0dXJuIGFjcGlfZWNfc3luY19xdWVyeShlYywgTlVMTCk7DQogCX0NCiAJcmV0dXJuIDA7DQog fQ0KQEAgLTQ0OSw2ICs0NTIsMjcgQEAgaW50IGVjX3RyYW5zYWN0aW9uKHU4IGNvbW1hbmQsDQog DQogRVhQT1JUX1NZTUJPTChlY190cmFuc2FjdGlvbik7DQogDQorLyoNCisgKiBQcm9jZXNzIF9R IGV2ZW50cyB0aGF0IG1pZ2h0IGhhdmUgYWNjdW11bGF0ZWQgaW4gdGhlIEVDLg0KKyAqIFJ1biB3 aXRoIGxvY2tlZCBlYyBtdXRleC4NCisgKi8NCitzdGF0aWMgdm9pZCBhY3BpX2VjX2NsZWFyKHN0 cnVjdCBhY3BpX2VjICplYykNCit7DQorCWludCBpLCBzdGF0dXM7DQorCXU4IHZhbHVlID0gMDsN CisNCisJZm9yIChpID0gMDsgaSA8IEFDUElfRUNfQ0xFQVJfTUFYOyBpKyspIHsNCisJCXN0YXR1 cyA9IGFjcGlfZWNfc3luY19xdWVyeShlYywgJnZhbHVlKTsNCisJCWlmIChzdGF0dXMgfHwgIXZh bHVlKQ0KKwkJCWJyZWFrOw0KKwl9DQorDQorCWlmICh1bmxpa2VseShpID09IEFDUElfRUNfQ0xF QVJfTUFYKSkNCisJCXByX3dhcm4oIldhcm5pbmc6IE1heGltdW0gb2YgJWQgc3RhbGUgRUMgZXZl bnRzIGNsZWFyZWRcbiIsIGkpOw0KKwllbHNlDQorCQlwcl9pbmZvKCIlZCBzdGFsZSBFQyBldmVu dHMgY2xlYXJlZFxuIiwgaSk7DQorfQ0KKw0KIHZvaWQgYWNwaV9lY19ibG9ja190cmFuc2FjdGlv bnModm9pZCkNCiB7DQogCXN0cnVjdCBhY3BpX2VjICplYyA9IGZpcnN0X2VjOw0KQEAgLTQ3Miw2 ICs0OTYsMTAgQEAgdm9pZCBhY3BpX2VjX3VuYmxvY2tfdHJhbnNhY3Rpb25zKHZvaWQpDQogCW11 dGV4X2xvY2soJmVjLT5sb2NrKTsNCiAJLyogQWxsb3cgdHJhbnNhY3Rpb25zIHRvIGJlIGNhcnJp ZWQgb3V0IGFnYWluICovDQogCWNsZWFyX2JpdChFQ19GTEFHU19CTE9DS0VELCAmZWMtPmZsYWdz KTsNCisNCisJaWYgKEVDX0ZMQUdTX0NMRUFSX09OX1JFU1VNRSkNCisJCWFjcGlfZWNfY2xlYXIo ZWMpOw0KKw0KIAltdXRleF91bmxvY2soJmVjLT5sb2NrKTsNCiB9DQogDQpAQCAtNTYxLDEzICs1 ODksMTggQEAgc3RhdGljIHZvaWQgYWNwaV9lY19ydW4odm9pZCAqY3h0KQ0KIAlrZnJlZShoYW5k bGVyKTsNCiB9DQogDQotc3RhdGljIGludCBhY3BpX2VjX3N5bmNfcXVlcnkoc3RydWN0IGFjcGlf ZWMgKmVjKQ0KK3N0YXRpYyBpbnQgYWNwaV9lY19zeW5jX3F1ZXJ5KHN0cnVjdCBhY3BpX2VjICpl YywgdTggKmRhdGEpDQogew0KIAl1OCB2YWx1ZSA9IDA7DQogCWludCBzdGF0dXM7DQogCXN0cnVj dCBhY3BpX2VjX3F1ZXJ5X2hhbmRsZXIgKmhhbmRsZXIsICpjb3B5Ow0KLQlpZiAoKHN0YXR1cyA9 IGFjcGlfZWNfcXVlcnlfdW5sb2NrZWQoZWMsICZ2YWx1ZSkpKQ0KKw0KKwlzdGF0dXMgPSBhY3Bp X2VjX3F1ZXJ5X3VubG9ja2VkKGVjLCAmdmFsdWUpOw0KKwlpZiAoZGF0YSkNCisJCSpkYXRhID0g dmFsdWU7DQorCWlmIChzdGF0dXMpDQogCQlyZXR1cm4gc3RhdHVzOw0KKw0KIAlsaXN0X2Zvcl9l YWNoX2VudHJ5KGhhbmRsZXIsICZlYy0+bGlzdCwgbm9kZSkgew0KIAkJaWYgKHZhbHVlID09IGhh bmRsZXItPnF1ZXJ5X2JpdCkgew0KIAkJCS8qIGhhdmUgY3VzdG9tIGhhbmRsZXIgZm9yIHRoaXMg Yml0ICovDQpAQCAtNTkwLDcgKzYyMyw3IEBAIHN0YXRpYyB2b2lkIGFjcGlfZWNfZ3BlX3F1ZXJ5 KHZvaWQgKmVjX2N4dCkNCiAJaWYgKCFlYykNCiAJCXJldHVybjsNCiAJbXV0ZXhfbG9jaygmZWMt PmxvY2spOw0KLQlhY3BpX2VjX3N5bmNfcXVlcnkoZWMpOw0KKwlhY3BpX2VjX3N5bmNfcXVlcnko ZWMsIE5VTEwpOw0KIAltdXRleF91bmxvY2soJmVjLT5sb2NrKTsNCiB9DQogDQpAQCAtODI4LDYg Kzg2MSwxMyBAQCBzdGF0aWMgaW50IGFjcGlfZWNfYWRkKHN0cnVjdCBhY3BpX2RldmljZSAqZGV2 aWNlKQ0KIA0KIAkvKiBFQyBpcyBmdWxseSBvcGVyYXRpb25hbCwgYWxsb3cgcXVlcmllcyAqLw0K IAljbGVhcl9iaXQoRUNfRkxBR1NfUVVFUllfUEVORElORywgJmVjLT5mbGFncyk7DQorDQorCS8q IENsZWFyIHN0YWxlIF9RIGV2ZW50cyBpZiBoYXJkd2FyZSBtaWdodCByZXF1aXJlIHRoYXQgKi8N CisJaWYgKEVDX0ZMQUdTX0NMRUFSX09OX1JFU1VNRSkgew0KKwkJbXV0ZXhfbG9jaygmZWMtPmxv Y2spOw0KKwkJYWNwaV9lY19jbGVhcihlYyk7DQorCQltdXRleF91bmxvY2soJmVjLT5sb2NrKTsN CisJfQ0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCkBAIC05MjksNiArOTY5LDMwIEBAIHN0YXRpYyBp bnQgZWNfZW5sYXJnZV9zdG9ybV90aHJlc2hvbGQoY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQg KmlkKQ0KIAlyZXR1cm4gMDsNCiB9DQogDQorLyoNCisgKiBPbiBzb21lIGhhcmR3YXJlIGl0IGlz IG5lY2Vzc2FyeSB0byBjbGVhciBldmVudHMgYWNjdW11bGF0ZWQgYnkgdGhlIEVDIGR1cmluZw0K KyAqIHNsZWVwLiBUaGVzZSBFQ3Mgc3RvcCByZXBvcnRpbmcgR1BFcyB1bnRpbCB0aGV5IGFyZSBt YW51YWxseSBwb2xsZWQsIGlmIHRvbw0KKyAqIG1hbnkgZXZlbnRzIGFyZSBhY2N1bXVsYXRlZC4g KGUuZy4gU2Ftc3VuZyBTZXJpZXMgNS85IG5vdGVib29rcykNCisgKg0KKyAqIGh0dHBzOi8vYnVn emlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQxNjENCisgKg0KKyAqIElkZWFsbHks IHRoZSBFQyBzaG91bGQgYWxzbyBiZSBpbnN0cnVjdGVkIE5PVCB0byBhY2N1bXVsYXRlIGV2ZW50 cyBkdXJpbmcNCisgKiBzbGVlcCAod2hpY2ggV2luZG93cyBzZWVtcyB0byBkbyBzb21laG93KSwg YnV0IHRoZSBpbnRlcmZhY2UgdG8gY29udHJvbCB0aGlzDQorICogYmVoYXZpb3VyIGlzIG5vdCBr bm93biBhdCB0aGlzIHRpbWUuDQorICoNCisgKiBNb2RlbHMga25vd24gdG8gYmUgYWZmZWN0ZWQg YXJlIFNhbXN1bmcgNTMwVXh4LzUzNVV4eC81NDBVeHgvNTUwUHh4LzkwMFh4eCwNCisgKiBob3dl dmVyIGl0IGlzIHZlcnkgbGlrZWx5IHRoYXQgb3RoZXIgU2Ftc3VuZyBtb2RlbHMgYXJlIGFmZmVj dGVkLg0KKyAqDQorICogT24gc3lzdGVtcyB3aGljaCBkb24ndCBhY2N1bXVsYXRlIF9RIGV2ZW50 cyBkdXJpbmcgc2xlZXAsIHRoaXMgZXh0cmEgY2hlY2sNCisgKiBzaG91bGQgYmUgaGFybWxlc3Mu DQorICovDQorc3RhdGljIGludCBlY19jbGVhcl9vbl9yZXN1bWUoY29uc3Qgc3RydWN0IGRtaV9z eXN0ZW1faWQgKmlkKQ0KK3sNCisJcHJfZGVidWcoIkRldGVjdGVkIHN5c3RlbSBuZWVkaW5nIEVD IHBvbGwgb24gcmVzdW1lLlxuIik7DQorCUVDX0ZMQUdTX0NMRUFSX09OX1JFU1VNRSA9IDE7DQor CXJldHVybiAwOw0KK30NCisNCiBzdGF0aWMgc3RydWN0IGRtaV9zeXN0ZW1faWQgX19pbml0ZGF0 YSBlY19kbWlfdGFibGVbXSA9IHsNCiAJew0KIAllY19za2lwX2RzZHRfc2NhbiwgIkNvbXBhbCBK Rkw5MiIsIHsNCkBAIC05NjgsNiArMTAzMiw5IEBAIHN0YXRpYyBzdHJ1Y3QgZG1pX3N5c3RlbV9p ZCBfX2luaXRkYXRhIGVjX2RtaV90YWJsZVtdID0gew0KIAllY192YWxpZGF0ZV9lY2R0LCAiQVNV UyBoYXJkd2FyZSIsIHsNCiAJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiQVNVU1RlayBDb21w dXRlciBJbmMuIiksDQogCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiTDRSIiksfSwgTlVM TH0sDQorCXsNCisJZWNfY2xlYXJfb25fcmVzdW1lLCAiU2Ftc3VuZyBoYXJkd2FyZSIsIHsNCisJ RE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiU0FNU1VORyBFTEVDVFJPTklDUyBDTy4sIExURC4i KX0sIE5VTEx9LA0KIAl7fSwNCiB9Ow0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL2FtYmFz c2Fkb3IuYyBiL2RyaXZlcnMvYXRtL2FtYmFzc2Fkb3IuYw0KaW5kZXggZjhmNDFlMC4uODliMzBm MyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYXRtL2FtYmFzc2Fkb3IuYw0KKysrIGIvZHJpdmVycy9h dG0vYW1iYXNzYWRvci5jDQpAQCAtODAyLDcgKzgwMiw3IEBAIHN0YXRpYyB2b2lkIGZpbGxfcnhf cG9vbCAoYW1iX2RldiAqIGRldiwgdW5zaWduZWQgY2hhciBwb29sLA0KICAgICB9DQogICAgIC8v IGNhc3QgbmVlZGVkIGFzIHRoZXJlIGlzIG5vICU/IGZvciBwb2ludGVyIGRpZmZlcmVuY2VzDQog ICAgIFBSSU5URCAoREJHX1NLQiwgImFsbG9jYXRlZCBza2IgYXQgJXAsIGhlYWQgJXAsIGFyZWEg JWxpIiwNCi0JICAgIHNrYiwgc2tiLT5oZWFkLCAobG9uZykgKHNrYl9lbmRfcG9pbnRlcihza2Ip IC0gc2tiLT5oZWFkKSk7DQorCSAgICBza2IsIHNrYi0+aGVhZCwgKGxvbmcpIHNrYl9lbmRfb2Zm c2V0KHNrYikpOw0KICAgICByeC5oYW5kbGUgPSB2aXJ0X3RvX2J1cyAoc2tiKTsNCiAgICAgcngu aG9zdF9hZGRyZXNzID0gY3B1X3RvX2JlMzIgKHZpcnRfdG9fYnVzIChza2ItPmRhdGEpKTsNCiAg ICAgaWYgKHJ4X2dpdmUgKGRldiwgJnJ4LCBwb29sKSkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0 bS9pZHQ3NzI1Mi5jIGIvZHJpdmVycy9hdG0vaWR0NzcyNTIuYw0KaW5kZXggYjBlNzVjZS4uODE4 NDVmYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYXRtL2lkdDc3MjUyLmMNCisrKyBiL2RyaXZlcnMv YXRtL2lkdDc3MjUyLmMNCkBAIC0xMjU4LDcgKzEyNTgsNyBAQCBpZHQ3NzI1Ml9yeF9yYXcoc3Ry dWN0IGlkdDc3MjUyX2RldiAqY2FyZCkNCiAJdGFpbCA9IHJlYWRsKFNBUl9SRUdfUkFXQ1QpOw0K IA0KIAlwY2lfZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUoY2FyZC0+cGNpZGV2LCBJRFQ3NzI1Ml9Q UlZfUEFERFIocXVldWUpLA0KLQkJCQkgICAgc2tiX2VuZF9wb2ludGVyKHF1ZXVlKSAtIHF1ZXVl LT5oZWFkIC0gMTYsDQorCQkJCSAgICBza2JfZW5kX29mZnNldChxdWV1ZSkgLSAxNiwNCiAJCQkJ ICAgIFBDSV9ETUFfRlJPTURFVklDRSk7DQogDQogCXdoaWxlIChoZWFkICE9IHRhaWwpIHsNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9hdGgzay5jIGIvZHJpdmVycy9ibHVldG9vdGgv YXRoM2suYw0KaW5kZXggMzUzOWY5Yi4uNmZlMDAzYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYmx1 ZXRvb3RoL2F0aDNrLmMNCisrKyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMNCkBAIC04MSw2 ICs4MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBhdGgza190YWJsZVtdID0gew0K IAl7IFVTQl9ERVZJQ0UoMHgwNENBLCAweDMwMDQpIH0sDQogCXsgVVNCX0RFVklDRSgweDA0Q0Es IDB4MzAwNSkgfSwNCiAJeyBVU0JfREVWSUNFKDB4MDRDQSwgMHgzMDA2KSB9LA0KKwl7IFVTQl9E RVZJQ0UoMHgwNENBLCAweDMwMDcpIH0sDQogCXsgVVNCX0RFVklDRSgweDA0Q0EsIDB4MzAwOCkg fSwNCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzMzYyKSB9LA0KIAl7IFVTQl9ERVZJQ0UoMHgw Q0YzLCAweEUwMDQpIH0sDQpAQCAtMTIzLDYgKzEyNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2Rl dmljZV9pZCBhdGgza19ibGlzdF90YmxbXSA9IHsNCiAJeyBVU0JfREVWSUNFKDB4MDRjYSwgMHgz MDA0KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LA0KIAl7IFVTQl9ERVZJQ0UoMHgw NGNhLCAweDMwMDUpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sDQogCXsgVVNCX0RF VklDRSgweDA0Y2EsIDB4MzAwNiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwNCisJ eyBVU0JfREVWSUNFKDB4MDRjYSwgMHgzMDA3KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAx MiB9LA0KIAl7IFVTQl9ERVZJQ0UoMHgwNGNhLCAweDMwMDgpLCAuZHJpdmVyX2luZm8gPSBCVFVT Ql9BVEgzMDEyIH0sDQogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM2MiksIC5kcml2ZXJfaW5m byA9IEJUVVNCX0FUSDMwMTIgfSwNCiAJeyBVU0JfREVWSUNFKDB4MGNmMywgMHhlMDA0KSwgLmRy aXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmx1ZXRv b3RoL2J0dXNiLmMgYi9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jDQppbmRleCBmMThiNWEyLi5k ZGRjYjFkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYw0KKysrIGIvZHJp dmVycy9ibHVldG9vdGgvYnR1c2IuYw0KQEAgLTE1Miw2ICsxNTIsNyBAQCBzdGF0aWMgc3RydWN0 IHVzYl9kZXZpY2VfaWQgYmxhY2tsaXN0X3RhYmxlW10gPSB7DQogCXsgVVNCX0RFVklDRSgweDA0 Y2EsIDB4MzAwNCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwNCiAJeyBVU0JfREVW SUNFKDB4MDRjYSwgMHgzMDA1KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LA0KIAl7 IFVTQl9ERVZJQ0UoMHgwNGNhLCAweDMwMDYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEy IH0sDQorCXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MzAwNyksIC5kcml2ZXJfaW5mbyA9IEJUVVNC X0FUSDMwMTIgfSwNCiAJeyBVU0JfREVWSUNFKDB4MDRjYSwgMHgzMDA4KSwgLmRyaXZlcl9pbmZv ID0gQlRVU0JfQVRIMzAxMiB9LA0KIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzNjIpLCAuZHJp dmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sDQogCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4ZTAw NCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwNCmRpZmYgLS1naXQgYS9kcml2ZXJz L2NyeXB0by9jYWFtL2Vycm9yLmMgYi9kcml2ZXJzL2NyeXB0by9jYWFtL2Vycm9yLmMNCmluZGV4 IDdlMmQ1NGIuLjliOGQyMzEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2NyeXB0by9jYWFtL2Vycm9y LmMNCisrKyBiL2RyaXZlcnMvY3J5cHRvL2NhYW0vZXJyb3IuYw0KQEAgLTE2LDkgKzE2LDEzIEBA DQogCWNoYXIgKnRtcDsJCQkJCQlcDQogCQkJCQkJCQlcDQogCXRtcCA9IGttYWxsb2Moc2l6ZW9m KGZvcm1hdCkgKyBtYXhfYWxsb2MsIEdGUF9BVE9NSUMpOwlcDQotCXNwcmludGYodG1wLCBmb3Jt YXQsIHBhcmFtKTsJCQkJXA0KLQlzdHJjYXQoc3RyLCB0bXApOwkJCQkJXA0KLQlrZnJlZSh0bXAp OwkJCQkJCVwNCisJaWYgKGxpa2VseSh0bXApKSB7CQkJCQlcDQorCQlzcHJpbnRmKHRtcCwgZm9y bWF0LCBwYXJhbSk7CQkJXA0KKwkJc3RyY2F0KHN0ciwgdG1wKTsJCQkJXA0KKwkJa2ZyZWUodG1w KTsJCQkJCVwNCisJfSBlbHNlIHsJCQkJCQlcDQorCQlzdHJjYXQoc3RyLCAia21hbGxvYyBmYWls dXJlIGluIFNQUklOVEZDQVQiKTsJXA0KKwl9CQkJCQkJCVwNCiB9DQogDQogc3RhdGljIHZvaWQg cmVwb3J0X2p1bXBfaWR4KHUzMiBzdGF0dXMsIGNoYXIgKm91dHN0cikNCmRpZmYgLS1naXQgYS9k cml2ZXJzL2RtYS9tdl94b3IuYyBiL2RyaXZlcnMvZG1hL212X3hvci5jDQppbmRleCA5YTM1M2My Li45YjAxMTQ1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9kbWEvbXZfeG9yLmMNCisrKyBiL2RyaXZl cnMvZG1hL212X3hvci5jDQpAQCAtMjE4LDEyICsyMTgsMTAgQEAgc3RhdGljIHZvaWQgbXZfc2V0 X21vZGUoc3RydWN0IG12X3hvcl9jaGFuICpjaGFuLA0KIA0KIHN0YXRpYyB2b2lkIG12X2NoYW5f YWN0aXZhdGUoc3RydWN0IG12X3hvcl9jaGFuICpjaGFuKQ0KIHsNCi0JdTMyIGFjdGl2YXRpb247 DQotDQogCWRldl9kYmcoY2hhbi0+ZGV2aWNlLT5jb21tb24uZGV2LCAiIGFjdGl2YXRlIGNoYW4u XG4iKTsNCi0JYWN0aXZhdGlvbiA9IF9fcmF3X3JlYWRsKFhPUl9BQ1RJVkFUSU9OKGNoYW4pKTsN Ci0JYWN0aXZhdGlvbiB8PSAweDE7DQotCV9fcmF3X3dyaXRlbChhY3RpdmF0aW9uLCBYT1JfQUNU SVZBVElPTihjaGFuKSk7DQorDQorCS8qIHdyaXRlbCBlbnN1cmVzIGFsbCBkZXNjcmlwdG9ycyBh cmUgZmx1c2hlZCBiZWZvcmUgYWN0aXZhdGlvbiAqLw0KKwl3cml0ZWwoQklUKDApLCBYT1JfQUNU SVZBVElPTihjaGFuKSk7DQogfQ0KIA0KIHN0YXRpYyBjaGFyIG12X2NoYW5faXNfYnVzeShzdHJ1 Y3QgbXZfeG9yX2NoYW4gKmNoYW4pDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbm91dmVhdV9hY3BpLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2FjcGku Yw0KaW5kZXggM2RmNTZjNy4uNWVlOGNjYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L25vdXZlYXVfYWNwaS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2FjcGkuYw0KQEAgLTMzMiw5ICszMzIsNiBAQCBib29sIG5vdXZlYXVfYWNwaV9yb21fc3Vw cG9ydGVkKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KIAlhY3BpX3N0YXR1cyBzdGF0dXM7DQogCWFj cGlfaGFuZGxlIGRoYW5kbGUsIHJvbV9oYW5kbGU7DQogDQotCWlmICghbm91dmVhdV9kc21fcHJp di5kc21fZGV0ZWN0ZWQgJiYgIW5vdXZlYXVfZHNtX3ByaXYub3B0aW11c19kZXRlY3RlZCkNCi0J CXJldHVybiBmYWxzZTsNCi0NCiAJZGhhbmRsZSA9IERFVklDRV9BQ1BJX0hBTkRMRSgmcGRldi0+ ZGV2KTsNCiAJaWYgKCFkaGFuZGxlKQ0KIAkJcmV0dXJuIGZhbHNlOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX2Jpb3MuYw0KaW5kZXggZDMwNmNjOC4uY2NmMzI0YiAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Jpb3MuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fYmlvcy5jDQpAQCAtMTczLDYgKzE3MywyMCBAQCBzdGF0aWMgYm9vbCBy YWRlb25fYXRybV9nZXRfYmlvcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikNCiAJCX0NCiAJ fQ0KIA0KKwlpZiAoIWZvdW5kKSB7DQorCQl3aGlsZSAoKHBkZXYgPSBwY2lfZ2V0X2NsYXNzKFBD SV9DTEFTU19ESVNQTEFZX09USEVSIDw8IDgsIHBkZXYpKSAhPSBOVUxMKSB7DQorCQkJZGhhbmRs ZSA9IERFVklDRV9BQ1BJX0hBTkRMRSgmcGRldi0+ZGV2KTsNCisJCQlpZiAoIWRoYW5kbGUpDQor CQkJCWNvbnRpbnVlOw0KKw0KKwkJCXN0YXR1cyA9IGFjcGlfZ2V0X2hhbmRsZShkaGFuZGxlLCAi QVRSTSIsICZhdHJtX2hhbmRsZSk7DQorCQkJaWYgKCFBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkgew0K KwkJCQlmb3VuZCA9IHRydWU7DQorCQkJCWJyZWFrOw0KKwkJCX0NCisJCX0NCisJfQ0KKw0KIAlp ZiAoIWZvdW5kKQ0KIAkJcmV0dXJuIGZhbHNlOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fb2JqZWN0LmMNCmluZGV4IGYzYWU2MDcuLjNlMzViYmUgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fb2JqZWN0LmMNCkBAIC01MTMsMjIgKzUxMywzMCBAQCBpbnQgcmFkZW9uX2Jv X2ZhdWx0X3Jlc2VydmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pDQogCXJi byA9IGNvbnRhaW5lcl9vZihibywgc3RydWN0IHJhZGVvbl9ibywgdGJvKTsNCiAJcmFkZW9uX2Jv X2NoZWNrX3RpbGluZyhyYm8sIDAsIDApOw0KIAlyZGV2ID0gcmJvLT5yZGV2Ow0KLQlpZiAoYm8t Pm1lbS5tZW1fdHlwZSA9PSBUVE1fUExfVlJBTSkgew0KLQkJc2l6ZSA9IGJvLT5tZW0ubnVtX3Bh Z2VzIDw8IFBBR0VfU0hJRlQ7DQotCQlvZmZzZXQgPSBiby0+bWVtLnN0YXJ0IDw8IFBBR0VfU0hJ RlQ7DQotCQlpZiAoKG9mZnNldCArIHNpemUpID4gcmRldi0+bWMudmlzaWJsZV92cmFtX3NpemUp IHsNCi0JCQkvKiBodXJyYWggdGhlIG1lbW9yeSBpcyBub3QgdmlzaWJsZSAhICovDQotCQkJcmFk ZW9uX3R0bV9wbGFjZW1lbnRfZnJvbV9kb21haW4ocmJvLCBSQURFT05fR0VNX0RPTUFJTl9WUkFN KTsNCi0JCQlyYm8tPnBsYWNlbWVudC5scGZuID0gcmRldi0+bWMudmlzaWJsZV92cmFtX3NpemUg Pj4gUEFHRV9TSElGVDsNCi0JCQlyID0gdHRtX2JvX3ZhbGlkYXRlKGJvLCAmcmJvLT5wbGFjZW1l bnQsIGZhbHNlLCB0cnVlLCBmYWxzZSk7DQotCQkJaWYgKHVubGlrZWx5KHIgIT0gMCkpDQotCQkJ CXJldHVybiByOw0KLQkJCW9mZnNldCA9IGJvLT5tZW0uc3RhcnQgPDwgUEFHRV9TSElGVDsNCi0J CQkvKiB0aGlzIHNob3VsZCBub3QgaGFwcGVuICovDQotCQkJaWYgKChvZmZzZXQgKyBzaXplKSA+ IHJkZXYtPm1jLnZpc2libGVfdnJhbV9zaXplKQ0KLQkJCQlyZXR1cm4gLUVJTlZBTDsNCi0JCX0N CisJaWYgKGJvLT5tZW0ubWVtX3R5cGUgIT0gVFRNX1BMX1ZSQU0pDQorCQlyZXR1cm4gMDsNCisN CisJc2l6ZSA9IGJvLT5tZW0ubnVtX3BhZ2VzIDw8IFBBR0VfU0hJRlQ7DQorCW9mZnNldCA9IGJv LT5tZW0uc3RhcnQgPDwgUEFHRV9TSElGVDsNCisJaWYgKChvZmZzZXQgKyBzaXplKSA8PSByZGV2 LT5tYy52aXNpYmxlX3ZyYW1fc2l6ZSkNCisJCXJldHVybiAwOw0KKw0KKwkvKiBodXJyYWggdGhl IG1lbW9yeSBpcyBub3QgdmlzaWJsZSAhICovDQorCXJhZGVvbl90dG1fcGxhY2VtZW50X2Zyb21f ZG9tYWluKHJibywgUkFERU9OX0dFTV9ET01BSU5fVlJBTSk7DQorCXJiby0+cGxhY2VtZW50Lmxw Zm4gPSByZGV2LT5tYy52aXNpYmxlX3ZyYW1fc2l6ZSA+PiBQQUdFX1NISUZUOw0KKwlyID0gdHRt X2JvX3ZhbGlkYXRlKGJvLCAmcmJvLT5wbGFjZW1lbnQsIGZhbHNlLCB0cnVlLCBmYWxzZSk7DQor CWlmICh1bmxpa2VseShyID09IC1FTk9NRU0pKSB7DQorCQlyYWRlb25fdHRtX3BsYWNlbWVudF9m cm9tX2RvbWFpbihyYm8sIFJBREVPTl9HRU1fRE9NQUlOX0dUVCk7DQorCQlyZXR1cm4gdHRtX2Jv X3ZhbGlkYXRlKGJvLCAmcmJvLT5wbGFjZW1lbnQsIGZhbHNlLCB0cnVlLCBmYWxzZSk7DQorCX0g ZWxzZSBpZiAodW5saWtlbHkociAhPSAwKSkgew0KKwkJcmV0dXJuIHI7DQogCX0NCisNCisJb2Zm c2V0ID0gYm8tPm1lbS5zdGFydCA8PCBQQUdFX1NISUZUOw0KKwkvKiB0aGlzIHNob3VsZCBuZXZl ciBoYXBwZW4gKi8NCisJaWYgKChvZmZzZXQgKyBzaXplKSA+IHJkZXYtPm1jLnZpc2libGVfdnJh bV9zaXplKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQogCXJldHVybiAwOw0KIH0NCiANCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMgYi9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMNCmluZGV4IDQwOTMyZmIuLjg0YmEwMzMg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMNCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYw0KQEAgLTU1OCwxNCAr NTU4LDM2IEBAIHN0YXRpYyBpbnQgdm13X2NtZF9kbWEoc3RydWN0IHZtd19wcml2YXRlICpkZXZf cHJpdiwNCiAJfSAqY21kOw0KIAlpbnQgcmV0Ow0KIAlzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXM7 DQorCVNWR0EzZENtZFN1cmZhY2VETUFTdWZmaXggKnN1ZmZpeDsNCisJdWludDMyX3QgYm9fc2l6 ZTsNCiANCiAJY21kID0gY29udGFpbmVyX29mKGhlYWRlciwgc3RydWN0IHZtd19kbWFfY21kLCBo ZWFkZXIpOw0KKwlzdWZmaXggPSAoU1ZHQTNkQ21kU3VyZmFjZURNQVN1ZmZpeCAqKSgodW5zaWdu ZWQgbG9uZykgJmNtZC0+ZG1hICsNCisJCQkJCSAgICAgICBoZWFkZXItPnNpemUgLSBzaXplb2Yo KnN1ZmZpeCkpOw0KKw0KKwkvKiBNYWtlIHN1cmUgZGV2aWNlIGFuZCB2ZXJpZmllciBzdGF5cyBp biBzeW5jLiAqLw0KKwlpZiAodW5saWtlbHkoc3VmZml4LT5zdWZmaXhTaXplICE9IHNpemVvZigq c3VmZml4KSkpIHsNCisJCURSTV9FUlJPUigiSW52YWxpZCBETUEgc3VmZml4IHNpemUuXG4iKTsN CisJCXJldHVybiAtRUlOVkFMOw0KKwl9DQorDQogCXJldCA9IHZtd190cmFuc2xhdGVfZ3Vlc3Rf cHRyKGRldl9wcml2LCBzd19jb250ZXh0LA0KIAkJCQkgICAgICAmY21kLT5kbWEuZ3Vlc3QucHRy LA0KIAkJCQkgICAgICAmdm13X2JvKTsNCiAJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkNCiAJCXJl dHVybiByZXQ7DQogDQorCS8qIE1ha2Ugc3VyZSBETUEgZG9lc24ndCBjcm9zcyBCTyBib3VuZGFy aWVzLiAqLw0KKwlib19zaXplID0gdm13X2JvLT5iYXNlLm51bV9wYWdlcyAqIFBBR0VfU0laRTsN CisJaWYgKHVubGlrZWx5KGNtZC0+ZG1hLmd1ZXN0LnB0ci5vZmZzZXQgPiBib19zaXplKSkgew0K KwkJRFJNX0VSUk9SKCJJbnZhbGlkIERNQSBvZmZzZXQuXG4iKTsNCisJCXJldHVybiAtRUlOVkFM Ow0KKwl9DQorDQorCWJvX3NpemUgLT0gY21kLT5kbWEuZ3Vlc3QucHRyLm9mZnNldDsNCisJaWYg KHVubGlrZWx5KHN1ZmZpeC0+bWF4aW11bU9mZnNldCA+IGJvX3NpemUpKQ0KKwkJc3VmZml4LT5t YXhpbXVtT2Zmc2V0ID0gYm9fc2l6ZTsNCisNCiAJYm8gPSAmdm13X2JvLT5iYXNlOw0KIAlyZXQg PSB2bXdfdXNlcl9zdXJmYWNlX2xvb2t1cF9oYW5kbGUoZGV2X3ByaXYsIHN3X2NvbnRleHQtPnRm aWxlLA0KIAkJCQkJICAgICBjbWQtPmRtYS5ob3N0LnNpZCwgJnNyZik7DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9oaWQvaGlkLWlkcy5oIGIvZHJpdmVycy9oaWQvaGlkLWlkcy5oDQppbmRleCBjYTJi M2U2Li5jY2M4OWIwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9oaWQvaGlkLWlkcy5oDQorKysgYi9k cml2ZXJzL2hpZC9oaWQtaWRzLmgNCkBAIC02NzgsNiArNjc4LDEzIEBADQogI2RlZmluZSBVU0Jf REVWSUNFX0lEX1NZTUJPTF9TQ0FOTkVSXzEJMHgwODAwDQogI2RlZmluZSBVU0JfREVWSUNFX0lE X1NZTUJPTF9TQ0FOTkVSXzIJMHgxMzAwDQogDQorI2RlZmluZSBVU0JfVkVORE9SX0lEX1NZTkFQ VElDUwkJMHgwNmNiDQorI2RlZmluZSBVU0JfREVWSUNFX0lEX1NZTkFQVElDU19MVFMxCTB4MGFm OA0KKyNkZWZpbmUgVVNCX0RFVklDRV9JRF9TWU5BUFRJQ1NfTFRTMgkweDFkMTANCisjZGVmaW5l IFVTQl9ERVZJQ0VfSURfU1lOQVBUSUNTX0hECTB4MGFjMw0KKyNkZWZpbmUgVVNCX0RFVklDRV9J RF9TWU5BUFRJQ1NfUVVBRF9IRAkweDFhYzMNCisjZGVmaW5lIFVTQl9ERVZJQ0VfSURfU1lOQVBU SUNTX1RQX1YxMDMJMHg1NzEwDQorDQogI2RlZmluZSBVU0JfVkVORE9SX0lEX1RIUlVTVE1BU1RF UgkweDA0NGYNCiANCiAjZGVmaW5lIFVTQl9WRU5ET1JfSURfVE9QU0VFRAkJMHgwNzY2DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9oaWQvdXNiaGlkL2hpZC1xdWlya3MuYyBiL2RyaXZlcnMvaGlkL3Vz YmhpZC9oaWQtcXVpcmtzLmMNCmluZGV4IGY5OGZiYWQuLjcxYzI1ODIgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL2hpZC91c2JoaWQvaGlkLXF1aXJrcy5jDQorKysgYi9kcml2ZXJzL2hpZC91c2JoaWQv aGlkLXF1aXJrcy5jDQpAQCAtMTAwLDYgKzEwMCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhp ZF9ibGFja2xpc3Qgew0KIAl7IFVTQl9WRU5ET1JfSURfQ0hJQ09OWSwgVVNCX0RFVklDRV9JRF9D SElDT05ZX1dJUkVMRVNTLCBISURfUVVJUktfTVVMVElfSU5QVVQgfSwNCiAJeyBVU0JfVkVORE9S X0lEX1NJR01BX01JQ1JPLCBVU0JfREVWSUNFX0lEX1NJR01BX01JQ1JPX0tFWUJPQVJELCBISURf UVVJUktfTk9fSU5JVF9SRVBPUlRTIH0sDQogCXsgVVNCX1ZFTkRPUl9JRF9OVFJJRywgVVNCX0RF VklDRV9JRF9OVFJJR19EVU9TRU5TRSwgSElEX1FVSVJLX05PX0lOSVRfUkVQT1JUUyB9LA0KKwl7 IFVTQl9WRU5ET1JfSURfU1lOQVBUSUNTLCBVU0JfREVWSUNFX0lEX1NZTkFQVElDU19MVFMxLCBI SURfUVVJUktfTk9fSU5JVF9SRVBPUlRTIH0sDQorCXsgVVNCX1ZFTkRPUl9JRF9TWU5BUFRJQ1Ms IFVTQl9ERVZJQ0VfSURfU1lOQVBUSUNTX0xUUzIsIEhJRF9RVUlSS19OT19JTklUX1JFUE9SVFMg fSwNCisJeyBVU0JfVkVORE9SX0lEX1NZTkFQVElDUywgVVNCX0RFVklDRV9JRF9TWU5BUFRJQ1Nf SEQsIEhJRF9RVUlSS19OT19JTklUX1JFUE9SVFMgfSwNCisJeyBVU0JfVkVORE9SX0lEX1NZTkFQ VElDUywgVVNCX0RFVklDRV9JRF9TWU5BUFRJQ1NfUVVBRF9IRCwgSElEX1FVSVJLX05PX0lOSVRf UkVQT1JUUyB9LA0KKwl7IFVTQl9WRU5ET1JfSURfU1lOQVBUSUNTLCBVU0JfREVWSUNFX0lEX1NZ TkFQVElDU19UUF9WMTAzLCBISURfUVVJUktfTk9fSU5JVF9SRVBPUlRTIH0sDQogDQogCXsgMCwg MCB9DQogfTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2VtYzE0MDMuYyBiL2RyaXZlcnMv aHdtb24vZW1jMTQwMy5jDQppbmRleCBjZDJhNmU0Li43ZGEwOGFjIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9od21vbi9lbWMxNDAzLmMNCisrKyBiL2RyaXZlcnMvaHdtb24vZW1jMTQwMy5jDQpAQCAt MTU5LDcgKzE1OSw3IEBAIHN0YXRpYyBzc2l6ZV90IHN0b3JlX2h5c3Qoc3RydWN0IGRldmljZSAq ZGV2LA0KIAlpZiAocmV0dmFsIDwgMCkNCiAJCWdvdG8gZmFpbDsNCiANCi0JaHlzdCA9IHZhbCAt IHJldHZhbCAqIDEwMDA7DQorCWh5c3QgPSByZXR2YWwgKiAxMDAwIC0gdmFsOw0KIAloeXN0ID0g RElWX1JPVU5EX0NMT1NFU1QoaHlzdCwgMTAwMCk7DQogCWlmIChoeXN0IDwgMCB8fCBoeXN0ID4g MjU1KSB7DQogCQlyZXR2YWwgPSAtRVJBTkdFOw0KQEAgLTI5MCw3ICsyOTAsNyBAQCBzdGF0aWMg aW50IGVtYzE0MDNfZGV0ZWN0KHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsDQogCX0NCiANCiAJ aWQgPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xpZW50LCBUSEVSTUFMX1JFVklTSU9OX1JF Ryk7DQotCWlmIChpZCAhPSAweDAxKQ0KKwlpZiAoaWQgPCAweDAxIHx8IGlkID4gMHgwNCkNCiAJ CXJldHVybiAtRU5PREVWOw0KIA0KIAlyZXR1cm4gMDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2ky Yy9idXNzZXMvaTJjLWRlc2lnbndhcmUtY29yZS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1k ZXNpZ253YXJlLWNvcmUuYw0KaW5kZXggM2MyODEyZi4uYWFkYjM5OCAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvaTJjL2J1c3Nlcy9pMmMtZGVzaWdud2FyZS1jb3JlLmMNCisrKyBiL2RyaXZlcnMvaTJj L2J1c3Nlcy9pMmMtZGVzaWdud2FyZS1jb3JlLmMNCkBAIC0zNDYsNiArMzQ2LDkgQEAgc3RhdGlj IHZvaWQgaTJjX2R3X3hmZXJfaW5pdChzdHJ1Y3QgZHdfaTJjX2RldiAqZGV2KQ0KIAkJaWNfY29u ICY9IH5EV19JQ19DT05fMTBCSVRBRERSX01BU1RFUjsNCiAJZHdfd3JpdGVsKGRldiwgaWNfY29u LCBEV19JQ19DT04pOw0KIA0KKwkvKiBlbmZvcmNlIGRpc2FibGVkIGludGVycnVwdHMgKGR1ZSB0 byBIVyBpc3N1ZXMpICovDQorCWkyY19kd19kaXNhYmxlX2ludChkZXYpOw0KKw0KIAkvKiBFbmFi bGUgdGhlIGFkYXB0ZXIgKi8NCiAJZHdfd3JpdGVsKGRldiwgMSwgRFdfSUNfRU5BQkxFKTsNCiAN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXMzYzI0MTAuYyBiL2RyaXZlcnMv aTJjL2J1c3Nlcy9pMmMtczNjMjQxMC5jDQppbmRleCA0YzE3MTgwLi43ZDZkMmI3IDEwMDY0NA0K LS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zM2MyNDEwLmMNCisrKyBiL2RyaXZlcnMvaTJj L2J1c3Nlcy9pMmMtczNjMjQxMC5jDQpAQCAtMTA4MiwxMCArMTA4MiwxMCBAQCBzdGF0aWMgaW50 IHMzYzI0eHhfaTJjX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQogCXN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2UoZGV2KTsNCiAJc3RydWN0IHMzYzI0 eHhfaTJjICppMmMgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsNCiANCi0JaTJjLT5zdXNw ZW5kZWQgPSAwOw0KIAljbGtfZW5hYmxlKGkyYy0+Y2xrKTsNCiAJczNjMjR4eF9pMmNfaW5pdChp MmMpOw0KIAljbGtfZGlzYWJsZShpMmMtPmNsayk7DQorCWkyYy0+c3VzcGVuZGVkID0gMDsNCiAN CiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbW91c2UvZWxhbnRl Y2guYyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvZWxhbnRlY2guYw0KaW5kZXggZTJhOTg2Ny4uMzQy YTA1OSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaW5wdXQvbW91c2UvZWxhbnRlY2guYw0KKysrIGIv ZHJpdmVycy9pbnB1dC9tb3VzZS9lbGFudGVjaC5jDQpAQCAtMTEsNiArMTEsNyBAQA0KICAqLw0K IA0KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPg0KKyNpbmNsdWRlIDxsaW51eC9kbWkuaD4NCiAj aW5jbHVkZSA8bGludXgvc2xhYi5oPg0KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCiAjaW5j bHVkZSA8bGludXgvaW5wdXQuaD4NCkBAIC03ODMsNyArNzg0LDExIEBAIHN0YXRpYyBpbnQgZWxh bnRlY2hfc2V0X2Fic29sdXRlX21vZGUoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpDQogCQlicmVh azsNCiANCiAJY2FzZSAzOg0KLQkJZXRkLT5yZWdfMTAgPSAweDBiOw0KKwkJaWYgKGV0ZC0+c2V0 X2h3X3Jlc29sdXRpb24pDQorCQkJZXRkLT5yZWdfMTAgPSAweDBiOw0KKwkJZWxzZQ0KKwkJCWV0 ZC0+cmVnXzEwID0gMHgwMzsNCisNCiAJCWlmIChlbGFudGVjaF93cml0ZV9yZWcocHNtb3VzZSwg MHgxMCwgZXRkLT5yZWdfMTApKQ0KIAkJCXJjID0gLTE7DQogDQpAQCAtMTIwNiw2ICsxMjExLDIy IEBAIHN0YXRpYyBpbnQgZWxhbnRlY2hfcmVjb25uZWN0KHN0cnVjdCBwc21vdXNlICpwc21vdXNl KQ0KIH0NCiANCiAvKg0KKyAqIFNvbWUgaHdfdmVyc2lvbiAzIG1vZGVscyBnbyBpbnRvIGVycm9y IHN0YXRlIHdoZW4gd2UgdHJ5IHRvIHNldCBiaXQgMyBvZiByMTANCisgKi8NCitzdGF0aWMgY29u c3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgbm9faHdfcmVzX2RtaV90YWJsZVtdID0gew0KKyNpZiBk ZWZpbmVkKENPTkZJR19ETUkpICYmIGRlZmluZWQoQ09ORklHX1g4NikNCisJew0KKwkJLyogR2ln YWJ5dGUgVTI0NDIgKi8NCisJCS5tYXRjaGVzID0gew0KKwkJCURNSV9NQVRDSChETUlfU1lTX1ZF TkRPUiwgIkdJR0FCWVRFIiksDQorCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJVMjQ0 MiIpLA0KKwkJfSwNCisJfSwNCisjZW5kaWYNCisJeyB9DQorfTsNCisNCisvKg0KICAqIGRldGVy bWluZSBoYXJkd2FyZSB2ZXJzaW9uIGFuZCBzZXQgc29tZSBwcm9wZXJ0aWVzIGFjY29yZGluZyB0 byBpdC4NCiAgKi8NCiBzdGF0aWMgaW50IGVsYW50ZWNoX3NldF9wcm9wZXJ0aWVzKHN0cnVjdCBl bGFudGVjaF9kYXRhICpldGQpDQpAQCAtMTI1NCw2ICsxMjc1LDkgQEAgc3RhdGljIGludCBlbGFu dGVjaF9zZXRfcHJvcGVydGllcyhzdHJ1Y3QgZWxhbnRlY2hfZGF0YSAqZXRkKQ0KIAkJCWV0ZC0+ cmVwb3J0c19wcmVzc3VyZSA9IHRydWU7DQogCX0NCiANCisJLyogRW5hYmxlIHJlYWwgaGFyZHdh cmUgcmVzb2x1dGlvbiBvbiBod192ZXJzaW9uIDMgPyAqLw0KKwlldGQtPnNldF9od19yZXNvbHV0 aW9uID0gIWRtaV9jaGVja19zeXN0ZW0obm9faHdfcmVzX2RtaV90YWJsZSk7DQorDQogCXJldHVy biAwOw0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21vdXNlL2VsYW50ZWNoLmgg Yi9kcml2ZXJzL2lucHV0L21vdXNlL2VsYW50ZWNoLmgNCmluZGV4IDllNWYxYWEuLjM1NjliZWQg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL2lucHV0L21vdXNlL2VsYW50ZWNoLmgNCisrKyBiL2RyaXZl cnMvaW5wdXQvbW91c2UvZWxhbnRlY2guaA0KQEAgLTEyOCw2ICsxMjgsNyBAQCBzdHJ1Y3QgZWxh bnRlY2hfZGF0YSB7DQogCWJvb2wgcGFyaXR5Y2hlY2s7DQogCWJvb2wganVtcHlfY3Vyc29yOw0K IAlib29sIHJlcG9ydHNfcHJlc3N1cmU7DQorCWJvb2wgc2V0X2h3X3Jlc29sdXRpb247DQogCXVu c2lnbmVkIGNoYXIgaHdfdmVyc2lvbjsNCiAJdW5zaWduZWQgaW50IGZ3X3ZlcnNpb247DQogCXVu c2lnbmVkIGludCBzaW5nbGVfZmluZ2VyX3JlcG9ydHM7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9p bnB1dC9tb3VzZS9zeW5hcHRpY3MuYyBiL2RyaXZlcnMvaW5wdXQvbW91c2Uvc3luYXB0aWNzLmMN CmluZGV4IDg4NmMxOTEuLjhhMzk4MDcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2lucHV0L21vdXNl L3N5bmFwdGljcy5jDQorKysgYi9kcml2ZXJzL2lucHV0L21vdXNlL3N5bmFwdGljcy5jDQpAQCAt MTM5NCw2ICsxMzk0LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBtaW5f bWF4X2RtaV90YWJsZVtdIF9faW5pdGNvbnN0ID0gew0KIAkJLmRyaXZlcl9kYXRhID0gKGludCBb XSl7MTIzMiwgNTcxMCwgMTE1NiwgNDY5Nn0sDQogCX0sDQogCXsNCisJCS8qIExlbm92byBUaGlu a1BhZCBFZGdlIEU0MzEgKi8NCisJCS5tYXRjaGVzID0gew0KKwkJCURNSV9NQVRDSChETUlfU1lT X1ZFTkRPUiwgIkxFTk9WTyIpLA0KKwkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9WRVJTSU9OLCAi VGhpbmtQYWQgRWRnZSBFNDMxIiksDQorCQl9LA0KKwkJLmRyaXZlcl9kYXRhID0gKGludCBbXSl7 MTAyNCwgNTAyMiwgMjUwOCwgNDgzMn0sDQorCX0sDQorCXsNCiAJCS8qIExlbm92byBUaGlua1Bh ZCBUNDMxcyAqLw0KIAkJLm1hdGNoZXMgPSB7DQogCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9S LCAiTEVOT1ZPIiksDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9tZC5jIGIvZHJpdmVycy9tZC9t ZC5jDQppbmRleCAyZDA1NDRjLi5kYjRiNGE4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9tZC5j DQorKysgYi9kcml2ZXJzL21kL21kLmMNCkBAIC04MTIyLDcgKzgxMjIsOCBAQCBzdGF0aWMgaW50 IG1kX25vdGlmeV9yZWJvb3Qoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp0aGlzLA0KIAkJaWYgKG1k ZGV2X3RyeWxvY2sobWRkZXYpKSB7DQogCQkJaWYgKG1kZGV2LT5wZXJzKQ0KIAkJCQlfX21kX3N0 b3Bfd3JpdGVzKG1kZGV2KTsNCi0JCQltZGRldi0+c2FmZW1vZGUgPSAyOw0KKwkJCWlmIChtZGRl di0+cGVyc2lzdGVudCkNCisJCQkJbWRkZXYtPnNhZmVtb2RlID0gMjsNCiAJCQltZGRldl91bmxv Y2sobWRkZXYpOw0KIAkJfQ0KIAkJbmVlZF9kZWxheSA9IDE7DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS9tZWRpYS1kZXZpY2UuYyBiL2RyaXZlcnMvbWVkaWEvbWVkaWEtZGV2aWNlLmMNCmlu ZGV4IDZlZGM5YmEuLjI5ODcwM2YgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21lZGlhL21lZGlhLWRl dmljZS5jDQorKysgYi9kcml2ZXJzL21lZGlhL21lZGlhLWRldmljZS5jDQpAQCAtOTAsNiArOTAs NyBAQCBzdGF0aWMgbG9uZyBtZWRpYV9kZXZpY2VfZW51bV9lbnRpdGllcyhzdHJ1Y3QgbWVkaWFf ZGV2aWNlICptZGV2LA0KIAlzdHJ1Y3QgbWVkaWFfZW50aXR5ICplbnQ7DQogCXN0cnVjdCBtZWRp YV9lbnRpdHlfZGVzYyB1X2VudDsNCiANCisJbWVtc2V0KCZ1X2VudCwgMCwgc2l6ZW9mKHVfZW50 KSk7DQogCWlmIChjb3B5X2Zyb21fdXNlcigmdV9lbnQuaWQsICZ1ZW50LT5pZCwgc2l6ZW9mKHVf ZW50LmlkKSkpDQogCQlyZXR1cm4gLUVGQVVMVDsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL21l ZGlhL3ZpZGVvL292NzY3MC5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9vdjc2NzAuYw0KaW5kZXgg OGFhMDU4NS4uMTcxMjVkOSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vb3Y3Njcw LmMNCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vb3Y3NjcwLmMNCkBAIC05MzcsNyArOTM3LDcg QEAgc3RhdGljIGludCBvdjc2NzBfZW51bV9mcmFtZXNpemVzKHN0cnVjdCB2NGwyX3N1YmRldiAq c2QsDQogCSAqIHdpbmRvd3MgdGhhdCBmYWxsIG91dHNpZGUgdGhhdC4NCiAJICovDQogCWZvciAo aSA9IDA7IGkgPCBOX1dJTl9TSVpFUzsgaSsrKSB7DQotCQlzdHJ1Y3Qgb3Y3NjcwX3dpbl9zaXpl ICp3aW4gPSAmb3Y3NjcwX3dpbl9zaXplc1tpbmRleF07DQorCQlzdHJ1Y3Qgb3Y3NjcwX3dpbl9z aXplICp3aW4gPSAmb3Y3NjcwX3dpbl9zaXplc1tpXTsNCiAJCWlmIChpbmZvLT5taW5fd2lkdGgg JiYgd2luLT53aWR0aCA8IGluZm8tPm1pbl93aWR0aCkNCiAJCQljb250aW51ZTsNCiAJCWlmIChp bmZvLT5taW5faGVpZ2h0ICYmIHdpbi0+aGVpZ2h0IDwgaW5mby0+bWluX2hlaWdodCkNCmRpZmYg LS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3Y0bDItY29tcGF0LWlvY3RsMzIuYyBiL2RyaXZl cnMvbWVkaWEvdmlkZW8vdjRsMi1jb21wYXQtaW9jdGwzMi5jDQppbmRleCBjNjg1MzFiLi4yNjcx OTU5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby92NGwyLWNvbXBhdC1pb2N0bDMy LmMNCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdjRsMi1jb21wYXQtaW9jdGwzMi5jDQpAQCAt MTc4LDYgKzE3OCw5IEBAIHN0cnVjdCB2NGwyX2NyZWF0ZV9idWZmZXJzMzIgew0KIA0KIHN0YXRp YyBpbnQgX19nZXRfdjRsMl9mb3JtYXQzMihzdHJ1Y3QgdjRsMl9mb3JtYXQgKmtwLCBzdHJ1Y3Qg djRsMl9mb3JtYXQzMiBfX3VzZXIgKnVwKQ0KIHsNCisJaWYgKGdldF91c2VyKGtwLT50eXBlLCAm dXAtPnR5cGUpKQ0KKwkJcmV0dXJuIC1FRkFVTFQ7DQorDQogCXN3aXRjaCAoa3AtPnR5cGUpIHsN CiAJY2FzZSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkU6DQogCWNhc2UgVjRMMl9CVUZfVFlQ RV9WSURFT19PVVRQVVQ6DQpAQCAtMjA4LDE3ICsyMTEsMTYgQEAgc3RhdGljIGludCBfX2dldF92 NGwyX2Zvcm1hdDMyKHN0cnVjdCB2NGwyX2Zvcm1hdCAqa3AsIHN0cnVjdCB2NGwyX2Zvcm1hdDMy IF9fdXMNCiANCiBzdGF0aWMgaW50IGdldF92NGwyX2Zvcm1hdDMyKHN0cnVjdCB2NGwyX2Zvcm1h dCAqa3AsIHN0cnVjdCB2NGwyX2Zvcm1hdDMyIF9fdXNlciAqdXApDQogew0KLQlpZiAoIWFjY2Vz c19vayhWRVJJRllfUkVBRCwgdXAsIHNpemVvZihzdHJ1Y3QgdjRsMl9mb3JtYXQzMikpIHx8DQot CQkJZ2V0X3VzZXIoa3AtPnR5cGUsICZ1cC0+dHlwZSkpDQotCQkJcmV0dXJuIC1FRkFVTFQ7DQor CWlmICghYWNjZXNzX29rKFZFUklGWV9SRUFELCB1cCwgc2l6ZW9mKHN0cnVjdCB2NGwyX2Zvcm1h dDMyKSkpDQorCQlyZXR1cm4gLUVGQVVMVDsNCiAJcmV0dXJuIF9fZ2V0X3Y0bDJfZm9ybWF0MzIo a3AsIHVwKTsNCiB9DQogDQogc3RhdGljIGludCBnZXRfdjRsMl9jcmVhdGUzMihzdHJ1Y3QgdjRs Ml9jcmVhdGVfYnVmZmVycyAqa3AsIHN0cnVjdCB2NGwyX2NyZWF0ZV9idWZmZXJzMzIgX191c2Vy ICp1cCkNCiB7DQogCWlmICghYWNjZXNzX29rKFZFUklGWV9SRUFELCB1cCwgc2l6ZW9mKHN0cnVj dCB2NGwyX2NyZWF0ZV9idWZmZXJzMzIpKSB8fA0KLQkgICAgY29weV9mcm9tX3VzZXIoa3AsIHVw LCBvZmZzZXRvZihzdHJ1Y3QgdjRsMl9jcmVhdGVfYnVmZmVyczMyLCBmb3JtYXQuZm10KSkpDQot CQkJcmV0dXJuIC1FRkFVTFQ7DQorCSAgICBjb3B5X2Zyb21fdXNlcihrcCwgdXAsIG9mZnNldG9m KHN0cnVjdCB2NGwyX2NyZWF0ZV9idWZmZXJzMzIsIGZvcm1hdCkpKQ0KKwkJcmV0dXJuIC1FRkFV TFQ7DQogCXJldHVybiBfX2dldF92NGwyX2Zvcm1hdDMyKCZrcC0+Zm9ybWF0LCAmdXAtPmZvcm1h dCk7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMg Yi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jDQppbmRleCAxYmYzNmFjLi41YWYyYThm IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYw0KKysrIGIvZHJp dmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYw0KQEAgLTQ5MTQsNiArNDkxNCw3IEBAIHN0YXRp YyBpbnQgX19pbml0IGJvbmRpbmdfaW5pdCh2b2lkKQ0KIG91dDoNCiAJcmV0dXJuIHJlczsNCiBl cnI6DQorCWJvbmRfZGVzdHJveV9kZWJ1Z2ZzKCk7DQogCXJ0bmxfbGlua191bnJlZ2lzdGVyKCZi b25kX2xpbmtfb3BzKTsNCiBlcnJfbGluazoNCiAJdW5yZWdpc3Rlcl9wZXJuZXRfc3Vic3lzKCZi b25kX25ldF9vcHMpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Nhbi9zamExMDAwL3BlYWtf cGNpLmMgYi9kcml2ZXJzL25ldC9jYW4vc2phMTAwMC9wZWFrX3BjaS5jDQppbmRleCAyYzdmNTAz Li41MTkyZjg2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvY2FuL3NqYTEwMDAvcGVha19wY2ku Yw0KKysrIGIvZHJpdmVycy9uZXQvY2FuL3NqYTEwMDAvcGVha19wY2kuYw0KQEAgLTM5LDkgKzM5 LDkgQEAgTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOw0KICNkZWZpbmUgRFJWX05BTUUgICJwZWFr X3BjaSINCiANCiBzdHJ1Y3QgcGVha19wY2lfY2hhbiB7DQotCXZvaWQgX19pb21lbSAqY2ZnX2Jh c2U7CSAgICAgLyogQ29tbW9uIGZvciBhbGwgY2hhbm5lbHMgKi8NCi0Jc3RydWN0IG5ldF9kZXZp Y2UgKm5leHRfZGV2OyAvKiBDaGFpbiBvZiBuZXR3b3JrIGRldmljZXMgKi8NCi0JdTE2IGljcl9t YXNrOwkJICAgICAvKiBJbnRlcnJ1cHQgbWFzayBmb3IgZmFzdCBhY2sgKi8NCisJdm9pZCBfX2lv bWVtICpjZmdfYmFzZTsJCS8qIENvbW1vbiBmb3IgYWxsIGNoYW5uZWxzICovDQorCXN0cnVjdCBu ZXRfZGV2aWNlICpwcmV2X2RldjsJLyogQ2hhaW4gb2YgbmV0d29yayBkZXZpY2VzICovDQorCXUx NiBpY3JfbWFzazsJCQkvKiBJbnRlcnJ1cHQgbWFzayBmb3IgZmFzdCBhY2sgKi8NCiB9Ow0KIA0K ICNkZWZpbmUgUEVBS19QQ0lfQ0FOX0NMT0NLCSgxNjAwMDAwMCAvIDIpDQpAQCAtOTgsNyArOTgs NyBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBwZWFrX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAq cGRldiwNCiB7DQogCXN0cnVjdCBzamExMDAwX3ByaXYgKnByaXY7DQogCXN0cnVjdCBwZWFrX3Bj aV9jaGFuICpjaGFuOw0KLQlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCAqZGV2MCA9IE5VTEw7DQor CXN0cnVjdCBuZXRfZGV2aWNlICpkZXYsICpwcmV2X2RldjsNCiAJdm9pZCBfX2lvbWVtICpjZmdf YmFzZSwgKnJlZ19iYXNlOw0KIAl1MTYgc3ViX3N5c19pZCwgaWNyOw0KIAlpbnQgaSwgZXJyLCBj aGFubmVsczsNCkBAIC0xOTYsMTggKzE5NiwxNCBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBwZWFr X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCiAJCX0NCiANCiAJCS8qIENyZWF0ZSBj aGFpbiBvZiBTSkExMDAwIGRldmljZXMgKi8NCi0JCWlmIChpID09IDApDQotCQkJZGV2MCA9IGRl djsNCi0JCWVsc2UNCi0JCQljaGFuLT5uZXh0X2RldiA9IGRldjsNCisJCWNoYW4tPnByZXZfZGV2 ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOw0KKwkJcGNpX3NldF9kcnZkYXRhKHBkZXYsIGRldik7 DQogDQogCQlkZXZfaW5mbygmcGRldi0+ZGV2LA0KIAkJCSAiJXMgYXQgcmVnX2Jhc2U9MHglcCBj ZmdfYmFzZT0weCVwIGlycT0lZFxuIiwNCiAJCQkgZGV2LT5uYW1lLCBwcml2LT5yZWdfYmFzZSwg Y2hhbi0+Y2ZnX2Jhc2UsIGRldi0+aXJxKTsNCiAJfQ0KIA0KLQlwY2lfc2V0X2RydmRhdGEocGRl diwgZGV2MCk7DQotDQogCS8qIEVuYWJsZSBpbnRlcnJ1cHRzICovDQogCXdyaXRldyhpY3IsIGNm Z19iYXNlICsgUElUQV9JQ1IgKyAyKTsNCiANCkBAIC0yMTcsMTIgKzIxMywxMyBAQCBmYWlsdXJl X3JlbW92ZV9jaGFubmVsczoNCiAJLyogRGlzYWJsZSBpbnRlcnJ1cHRzICovDQogCXdyaXRldygw eDAsIGNmZ19iYXNlICsgUElUQV9JQ1IgKyAyKTsNCiANCi0JZm9yIChkZXYgPSBkZXYwOyBkZXY7 IGRldiA9IGNoYW4tPm5leHRfZGV2KSB7DQotCQl1bnJlZ2lzdGVyX3NqYTEwMDBkZXYoZGV2KTsN Ci0JCWZyZWVfc2phMTAwMGRldihkZXYpOw0KKwlmb3IgKGRldiA9IHBjaV9nZXRfZHJ2ZGF0YShw ZGV2KTsgZGV2OyBkZXYgPSBwcmV2X2Rldikgew0KIAkJcHJpdiA9IG5ldGRldl9wcml2KGRldik7 DQogCQljaGFuID0gcHJpdi0+cHJpdjsNCi0JCWRldiA9IGNoYW4tPm5leHRfZGV2Ow0KKwkJcHJl dl9kZXYgPSBjaGFuLT5wcmV2X2RldjsNCisNCisJCXVucmVnaXN0ZXJfc2phMTAwMGRldihkZXYp Ow0KKwkJZnJlZV9zamExMDAwZGV2KGRldik7DQogCX0NCiANCiAJcGNpX2lvdW5tYXAocGRldiwg cmVnX2Jhc2UpOw0KQEAgLTI0MSw3ICsyMzgsNyBAQCBmYWlsdXJlX2Rpc2FibGVfcGNpOg0KIA0K IHN0YXRpYyB2b2lkIF9fZGV2ZXhpdCBwZWFrX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBk ZXYpDQogew0KLQlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYp OyAvKiBGaXJzdCBkZXZpY2UgKi8NCisJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHBjaV9nZXRf ZHJ2ZGF0YShwZGV2KTsgLyogTGFzdCBkZXZpY2UgKi8NCiAJc3RydWN0IHNqYTEwMDBfcHJpdiAq cHJpdiA9IG5ldGRldl9wcml2KGRldik7DQogCXN0cnVjdCBwZWFrX3BjaV9jaGFuICpjaGFuID0g cHJpdi0+cHJpdjsNCiAJdm9pZCBfX2lvbWVtICpjZmdfYmFzZSA9IGNoYW4tPmNmZ19iYXNlOw0K QEAgLTI1MiwxMCArMjQ5LDEyIEBAIHN0YXRpYyB2b2lkIF9fZGV2ZXhpdCBwZWFrX3BjaV9yZW1v dmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQogDQogCS8qIExvb3Agb3ZlciBhbGwgcmVnaXN0ZXJl ZCBkZXZpY2VzICovDQogCXdoaWxlICgxKSB7DQorCQlzdHJ1Y3QgbmV0X2RldmljZSAqcHJldl9k ZXYgPSBjaGFuLT5wcmV2X2RldjsNCisNCiAJCWRldl9pbmZvKCZwZGV2LT5kZXYsICJyZW1vdmlu ZyBkZXZpY2UgJXNcbiIsIGRldi0+bmFtZSk7DQogCQl1bnJlZ2lzdGVyX3NqYTEwMDBkZXYoZGV2 KTsNCiAJCWZyZWVfc2phMTAwMGRldihkZXYpOw0KLQkJZGV2ID0gY2hhbi0+bmV4dF9kZXY7DQor CQlkZXYgPSBwcmV2X2RldjsNCiAJCWlmICghZGV2KQ0KIAkJCWJyZWFrOw0KIAkJcHJpdiA9IG5l dGRldl9wcml2KGRldik7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vdGczLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYw0KaW5kZXggYzc3 YzQ2Mi4uMjYxNTQzMyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L3RnMy5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYw0KQEAgLTEw NjU2LDcgKzEwNjU2LDkgQEAgc3RhdGljIGludCB0ZzNfc2V0X3JpbmdwYXJhbShzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF9yaW5ncGFyYW0gKmUNCiAJaWYgKHRnM19mbGFn KHRwLCBNQVhfUlhQRU5EXzY0KSAmJg0KIAkgICAgdHAtPnJ4X3BlbmRpbmcgPiA2MykNCiAJCXRw LT5yeF9wZW5kaW5nID0gNjM7DQotCXRwLT5yeF9qdW1ib19wZW5kaW5nID0gZXJpbmctPnJ4X2p1 bWJvX3BlbmRpbmc7DQorDQorCWlmICh0ZzNfZmxhZyh0cCwgSlVNQk9fUklOR19FTkFCTEUpKQ0K KwkJdHAtPnJ4X2p1bWJvX3BlbmRpbmcgPSBlcmluZy0+cnhfanVtYm9fcGVuZGluZzsNCiANCiAJ Zm9yIChpID0gMDsgaSA8IHRwLT5pcnFfbWF4OyBpKyspDQogCQl0cC0+bmFwaVtpXS50eF9wZW5k aW5nID0gZXJpbmctPnR4X3BlbmRpbmc7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxh bi5jIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jDQppbmRleCAzMDFiMzllLi5iNzRjZGY2IDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jDQorKysgYi9kcml2ZXJzL25ldC9tYWN2bGFu LmMNCkBAIC0yMzYsMTEgKzIzNiw5IEBAIHN0YXRpYyBpbnQgbWFjdmxhbl9xdWV1ZV94bWl0KHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpDQogCWNvbnN0IHN0cnVj dCBtYWN2bGFuX2RldiAqdmxhbiA9IG5ldGRldl9wcml2KGRldik7DQogCWNvbnN0IHN0cnVjdCBt YWN2bGFuX3BvcnQgKnBvcnQgPSB2bGFuLT5wb3J0Ow0KIAljb25zdCBzdHJ1Y3QgbWFjdmxhbl9k ZXYgKmRlc3Q7DQotCV9fdTggaXBfc3VtbWVkID0gc2tiLT5pcF9zdW1tZWQ7DQogDQogCWlmICh2 bGFuLT5tb2RlID09IE1BQ1ZMQU5fTU9ERV9CUklER0UpIHsNCiAJCWNvbnN0IHN0cnVjdCBldGho ZHIgKmV0aCA9ICh2b2lkICopc2tiLT5kYXRhOw0KLQkJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NV TV9VTk5FQ0VTU0FSWTsNCiANCiAJCS8qIHNlbmQgdG8gb3RoZXIgYnJpZGdlIHBvcnRzIGRpcmVj dGx5ICovDQogCQlpZiAoaXNfbXVsdGljYXN0X2V0aGVyX2FkZHIoZXRoLT5oX2Rlc3QpKSB7DQpA QCAtMjU4LDcgKzI1Niw2IEBAIHN0YXRpYyBpbnQgbWFjdmxhbl9xdWV1ZV94bWl0KHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpDQogCX0NCiANCiB4bWl0X3dvcmxk Og0KLQlza2ItPmlwX3N1bW1lZCA9IGlwX3N1bW1lZDsNCiAJc2tiLT5kZXYgPSB2bGFuLT5sb3dl cmRldjsNCiAJcmV0dXJuIGRldl9xdWV1ZV94bWl0KHNrYik7DQogfQ0KQEAgLTM5NCw4ICszOTEs MTAgQEAgc3RhdGljIHZvaWQgbWFjdmxhbl9jaGFuZ2VfcnhfZmxhZ3Moc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgaW50IGNoYW5nZSkNCiAJc3RydWN0IG1hY3ZsYW5fZGV2ICp2bGFuID0gbmV0ZGV2 X3ByaXYoZGV2KTsNCiAJc3RydWN0IG5ldF9kZXZpY2UgKmxvd2VyZGV2ID0gdmxhbi0+bG93ZXJk ZXY7DQogDQotCWlmIChjaGFuZ2UgJiBJRkZfQUxMTVVMVEkpDQotCQlkZXZfc2V0X2FsbG11bHRp KGxvd2VyZGV2LCBkZXYtPmZsYWdzICYgSUZGX0FMTE1VTFRJID8gMSA6IC0xKTsNCisJaWYgKGRl di0+ZmxhZ3MgJiBJRkZfVVApIHsNCisJCWlmIChjaGFuZ2UgJiBJRkZfQUxMTVVMVEkpDQorCQkJ ZGV2X3NldF9hbGxtdWx0aShsb3dlcmRldiwgZGV2LT5mbGFncyAmIElGRl9BTExNVUxUSSA/IDEg OiAtMSk7DQorCX0NCiB9DQogDQogc3RhdGljIHZvaWQgbWFjdmxhbl9zZXRfbXVsdGljYXN0X2xp c3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldikNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aW1h eC9pMjQwMG0vdXNiLXJ4LmMgYi9kcml2ZXJzL25ldC93aW1heC9pMjQwMG0vdXNiLXJ4LmMNCmlu ZGV4IGUzMjU3NjguLmI3OGVlNjcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aW1heC9pMjQw MG0vdXNiLXJ4LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpbWF4L2kyNDAwbS91c2ItcnguYw0KQEAg LTI3Nyw3ICsyNzcsNyBAQCByZXRyeToNCiAJCWRfcHJpbnRmKDEsIGRldiwgIlJYOiBzaXplIGNo YW5nZWQgdG8gJWQsIHJlY2VpdmVkICVkLCAiDQogCQkJICJjb3BpZWQgJWQsIGNhcGFjaXR5ICVs ZFxuIiwNCiAJCQkgcnhfc2l6ZSwgcmVhZF9zaXplLCByeF9za2ItPmxlbiwNCi0JCQkgKGxvbmcp IChza2JfZW5kX3BvaW50ZXIobmV3X3NrYikgLSBuZXdfc2tiLT5oZWFkKSk7DQorCQkJIChsb25n KSBza2JfZW5kX29mZnNldChuZXdfc2tiKSk7DQogCQlnb3RvIHJldHJ5Ow0KIAl9DQogCQkvKiBJ biBtb3N0IGNhc2VzLCBpdCBoYXBwZW5zIGR1ZSB0byB0aGUgaGFyZHdhcmUgc2NoZWR1bGluZyBh DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMG1hYy5jIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMG1hYy5jDQppbmRleCA1YzM4MjgxLi4x ZDRjNTc5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMG1h Yy5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwbWFjLmMNCkBAIC02 NTEsMjAgKzY1MSwxOCBAQCB2b2lkIHJ0MngwMG1hY19ic3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBp ZWVlODAyMTFfaHcgKmh3LA0KIAkJCQkgICAgICBic3NfY29uZi0+YnNzaWQpOw0KIA0KIAkvKg0K LQkgKiBVcGRhdGUgdGhlIGJlYWNvbi4gVGhpcyBpcyBvbmx5IHJlcXVpcmVkIG9uIFVTQiBkZXZp Y2VzLiBQQ0kNCi0JICogZGV2aWNlcyBmZXRjaCBiZWFjb25zIHBlcmlvZGljYWxseS4NCi0JICov DQotCWlmIChjaGFuZ2VzICYgQlNTX0NIQU5HRURfQkVBQ09OICYmIHJ0MngwMF9pc191c2IocnQy eDAwZGV2KSkNCi0JCXJ0MngwMHF1ZXVlX3VwZGF0ZV9iZWFjb24ocnQyeDAwZGV2LCB2aWYpOw0K LQ0KLQkvKg0KIAkgKiBTdGFydC9zdG9wIGJlYWNvbmluZy4NCiAJICovDQogCWlmIChjaGFuZ2Vz ICYgQlNTX0NIQU5HRURfQkVBQ09OX0VOQUJMRUQpIHsNCiAJCWlmICghYnNzX2NvbmYtPmVuYWJs ZV9iZWFjb24gJiYgaW50Zi0+ZW5hYmxlX2JlYWNvbikgew0KLQkJCXJ0MngwMHF1ZXVlX2NsZWFy X2JlYWNvbihydDJ4MDBkZXYsIHZpZik7DQogCQkJcnQyeDAwZGV2LT5pbnRmX2JlYWNvbmluZy0t Ow0KIAkJCWludGYtPmVuYWJsZV9iZWFjb24gPSBmYWxzZTsNCisJCQkvKg0KKwkJCSAqIENsZWFy IGJlYWNvbiBpbiB0aGUgSC9XIGZvciB0aGlzIHZpZi4gVGhpcyBpcyBuZWVkZWQNCisJCQkgKiB0 byBkaXNhYmxlIGJlYWNvbmluZyBvbiB0aGlzIHBhcnRpY3VsYXIgaW50ZXJmYWNlDQorCQkJICog YW5kIGtlZXAgaXQgcnVubmluZyBvbiBvdGhlciBpbnRlcmZhY2VzLg0KKwkJCSAqLw0KKwkJCXJ0 MngwMHF1ZXVlX2NsZWFyX2JlYWNvbihydDJ4MDBkZXYsIHZpZik7DQogDQogCQkJaWYgKHJ0Mngw MGRldi0+aW50Zl9iZWFjb25pbmcgPT0gMCkgew0KIAkJCQkvKg0KQEAgLTY3NSwxMSArNjczLDE1 IEBAIHZvaWQgcnQyeDAwbWFjX2Jzc19pbmZvX2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAq aHcsDQogCQkJCXJ0MngwMHF1ZXVlX3N0b3BfcXVldWUocnQyeDAwZGV2LT5iY24pOw0KIAkJCQlt dXRleF91bmxvY2soJmludGYtPmJlYWNvbl9za2JfbXV0ZXgpOw0KIAkJCX0NCi0NCi0NCiAJCX0g ZWxzZSBpZiAoYnNzX2NvbmYtPmVuYWJsZV9iZWFjb24gJiYgIWludGYtPmVuYWJsZV9iZWFjb24p IHsNCiAJCQlydDJ4MDBkZXYtPmludGZfYmVhY29uaW5nKys7DQogCQkJaW50Zi0+ZW5hYmxlX2Jl YWNvbiA9IHRydWU7DQorCQkJLyoNCisJCQkgKiBVcGxvYWQgYmVhY29uIHRvIHRoZSBIL1cuIFRo aXMgaXMgb25seSByZXF1aXJlZCBvbg0KKwkJCSAqIFVTQiBkZXZpY2VzLiBQQ0kgZGV2aWNlcyBm ZXRjaCBiZWFjb25zIHBlcmlvZGljYWxseS4NCisJCQkgKi8NCisJCQlpZiAocnQyeDAwX2lzX3Vz YihydDJ4MDBkZXYpKQ0KKwkJCQlydDJ4MDBxdWV1ZV91cGRhdGVfYmVhY29uKHJ0MngwMGRldiwg dmlmKTsNCiANCiAJCQlpZiAocnQyeDAwZGV2LT5pbnRmX2JlYWNvbmluZyA9PSAxKSB7DQogCQkJ CS8qDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyY3Uv aHcuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMNCmluZGV4 IGQzOTIwZGEuLjc5ZmM0YjcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3 aWZpL3J0bDgxOTJjdS9ody5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0 bDgxOTJjdS9ody5jDQpAQCAtMTE1OCwxMiArMTE1OCwyMyBAQCBpbnQgcnRsOTJjdV9od19pbml0 KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KQ0KIAlzdHJ1Y3QgcnRsX3BzX2N0bCAqcHBzYyA9IHJ0 bF9wc2MocnRsX3ByaXYoaHcpKTsNCiAJaW50IGVyciA9IDA7DQogCXN0YXRpYyBib29sIGlxa19p bml0aWFsaXplZDsNCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCisNCisJLyogQXMgdGhpcyBmdW5j dGlvbiBjYW4gdGFrZSBhIHZlcnkgbG9uZyB0aW1lICh1cCB0byAzNTAgbXMpDQorCSAqIGFuZCBj YW4gYmUgY2FsbGVkIHdpdGggaXJxcyBkaXNhYmxlZCwgcmVlbmFibGUgdGhlIGlycXMNCisJICog dG8gbGV0IHRoZSBvdGhlciBkZXZpY2VzIGNvbnRpbnVlIGJlaW5nIHNlcnZpY2VkLg0KKwkgKg0K KwkgKiBJdCBpcyBzYWZlIGRvaW5nIHNvIHNpbmNlIG91ciBvd24gaW50ZXJydXB0cyB3aWxsIG9u bHkgYmUgZW5hYmxlZA0KKwkgKiBpbiBhIHN1YnNlcXVlbnQgc3RlcC4NCisJICovDQorCWxvY2Fs X3NhdmVfZmxhZ3MoZmxhZ3MpOw0KKwlsb2NhbF9pcnFfZW5hYmxlKCk7DQogDQogCXJ0bGhhbC0+ aHdfdHlwZSA9IEhBUkRXQVJFX1RZUEVfUlRMODE5MkNVOw0KIAllcnIgPSBfcnRsOTJjdV9pbml0 X21hYyhodyk7DQogCWlmIChlcnIpIHsNCiAJCVJUX1RSQUNFKHJ0bHByaXYsIENPTVBfRVJSLCBE QkdfRU1FUkcsICgiaW5pdCBtYWMgZmFpbGVkIVxuIikpOw0KLQkJcmV0dXJuIGVycjsNCisJCWdv dG8gZXhpdDsNCiAJfQ0KIAllcnIgPSBydGw5MmNfZG93bmxvYWRfZncoaHcpOw0KIAlpZiAoZXJy KSB7DQpAQCAtMTE3MSw3ICsxMTgyLDcgQEAgaW50IHJ0bDkyY3VfaHdfaW5pdChzdHJ1Y3QgaWVl ZTgwMjExX2h3ICpodykNCiAJCQkgKCJGYWlsZWQgdG8gZG93bmxvYWQgRlcuIEluaXQgSFcgd2l0 aG91dCBGVyBub3cuLlxuIikpOw0KIAkJZXJyID0gMTsNCiAJCXJ0bGhhbC0+ZndfcmVhZHkgPSBm YWxzZTsNCi0JCXJldHVybiBlcnI7DQorCQlnb3RvIGV4aXQ7DQogCX0gZWxzZSB7DQogCQlydGxo YWwtPmZ3X3JlYWR5ID0gdHJ1ZTsNCiAJfQ0KQEAgLTEyMTIsNiArMTIyMyw4IEBAIGludCBydGw5 MmN1X2h3X2luaXQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpDQogCV91cGRhdGVfbWFjX3NldHRp bmcoaHcpOw0KIAlydGw5MmNfZG1faW5pdChodyk7DQogCV9kdW1wX3JlZ2lzdGVycyhodyk7DQor ZXhpdDoNCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOw0KIAlyZXR1cm4gZXJyOw0KIH0NCiAN CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3NocGNocF9jdHJsLmMgYi9kcml2ZXJz L3BjaS9ob3RwbHVnL3NocGNocF9jdHJsLmMNCmluZGV4IDNmZmMxYjIuLmI4ODg2NzUgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3NocGNocF9jdHJsLmMNCisrKyBiL2RyaXZlcnMv cGNpL2hvdHBsdWcvc2hwY2hwX2N0cmwuYw0KQEAgLTI4NSw4ICsyODUsOCBAQCBzdGF0aWMgaW50 IGJvYXJkX2FkZGVkKHN0cnVjdCBzbG90ICpwX3Nsb3QpDQogCQlyZXR1cm4gV1JPTkdfQlVTX0ZS RVFVRU5DWTsNCiAJfQ0KIA0KLQlic3AgPSBjdHJsLT5wY2lfZGV2LT5idXMtPmN1cl9idXNfc3Bl ZWQ7DQotCW1zcCA9IGN0cmwtPnBjaV9kZXYtPmJ1cy0+bWF4X2J1c19zcGVlZDsNCisJYnNwID0g Y3RybC0+cGNpX2Rldi0+c3Vib3JkaW5hdGUtPmN1cl9idXNfc3BlZWQ7DQorCW1zcCA9IGN0cmwt PnBjaV9kZXYtPnN1Ym9yZGluYXRlLT5tYXhfYnVzX3NwZWVkOw0KIA0KIAkvKiBDaGVjayBpZiB0 aGVyZSBhcmUgb3RoZXIgc2xvdHMgb3IgZGV2aWNlcyBvbiB0aGUgc2FtZSBidXMgKi8NCiAJaWYg KCFsaXN0X2VtcHR5KCZjdHJsLT5wY2lfZGV2LT5zdWJvcmRpbmF0ZS0+ZGV2aWNlcykpDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvdGhpbmtwYWRfYWNwaS5jIGIvZHJpdmVycy9w bGF0Zm9ybS94ODYvdGhpbmtwYWRfYWNwaS5jDQppbmRleCA4ZTZjNGZhLi4yYThkNmFhIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvdGhpbmtwYWRfYWNwaS5jDQorKysgYi9kcml2 ZXJzL3BsYXRmb3JtL3g4Ni90aGlua3BhZF9hY3BpLmMNCkBAIC0zNDA1LDcgKzM0MDUsNyBAQCBz dGF0aWMgaW50IF9faW5pdCBob3RrZXlfaW5pdChzdHJ1Y3QgaWJtX2luaXRfc3RydWN0ICppaWJt KQ0KIAkvKiBEbyBub3QgaXNzdWUgZHVwbGljYXRlIGJyaWdodG5lc3MgY2hhbmdlIGV2ZW50cyB0 bw0KIAkgKiB1c2Vyc3BhY2UuIHRwYWNwaV9kZXRlY3RfYnJpZ2h0bmVzc19jYXBhYmlsaXRpZXMo KSBtdXN0IGhhdmUNCiAJICogYmVlbiBjYWxsZWQgYmVmb3JlIHRoaXMgcG9pbnQgICovDQotCWlm ICh0cF9mZWF0dXJlcy5icmlnaHRfYWNwaW1vZGUgJiYgYWNwaV92aWRlb19iYWNrbGlnaHRfc3Vw cG9ydCgpKSB7DQorCWlmIChhY3BpX3ZpZGVvX2JhY2tsaWdodF9zdXBwb3J0KCkpIHsNCiAJCXBy X2luZm8oIlRoaXMgVGhpbmtQYWQgaGFzIHN0YW5kYXJkIEFDUEkgYmFja2xpZ2h0ICINCiAJCQki YnJpZ2h0bmVzcyBjb250cm9sLCBzdXBwb3J0ZWQgYnkgdGhlIEFDUEkgIg0KIAkJCSJ2aWRlbyBk cml2ZXJcbiIpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9tcHQyc2FzL21wdDJzYXNfc2Nz aWguYyBiL2RyaXZlcnMvc2NzaS9tcHQyc2FzL21wdDJzYXNfc2NzaWguYw0KaW5kZXggOTg3YzZk Ni4uMDE3ODBhOSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9tcHQyc2FzL21wdDJzYXNfc2Nz aWguYw0KKysrIGIvZHJpdmVycy9zY3NpL21wdDJzYXMvbXB0MnNhc19zY3NpaC5jDQpAQCAtODE2 Niw3ICs4MTY2LDYgQEAgX3Njc2loX3N1c3BlbmQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHBtX21l c3NhZ2VfdCBzdGF0ZSkNCiANCiAJbXB0MnNhc19iYXNlX2ZyZWVfcmVzb3VyY2VzKGlvYyk7DQog CXBjaV9zYXZlX3N0YXRlKHBkZXYpOw0KLQlwY2lfZGlzYWJsZV9kZXZpY2UocGRldik7DQogCXBj aV9zZXRfcG93ZXJfc3RhdGUocGRldiwgZGV2aWNlX3N0YXRlKTsNCiAJcmV0dXJuIDA7DQogfQ0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9vY3Rlb24vZXRoZXJuZXQtdHguYyBiL2RyaXZl cnMvc3RhZ2luZy9vY3Rlb24vZXRoZXJuZXQtdHguYw0KaW5kZXggMjU0MmMzNy4uYzVkYTBkMiAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy9vY3Rlb24vZXRoZXJuZXQtdHguYw0KKysrIGIv ZHJpdmVycy9zdGFnaW5nL29jdGVvbi9ldGhlcm5ldC10eC5jDQpAQCAtMzQ0LDcgKzM0NCw3IEBA IGludCBjdm1fb2N0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2Ug KmRldikNCiAJfQ0KIAlpZiAodW5saWtlbHkNCiAJICAgIChza2ItPnRydWVzaXplICE9DQotCSAg ICAgc2l6ZW9mKCpza2IpICsgc2tiX2VuZF9wb2ludGVyKHNrYikgLSBza2ItPmhlYWQpKSB7DQor CSAgICAgc2l6ZW9mKCpza2IpICsgc2tiX2VuZF9vZmZzZXQoc2tiKSkpIHsNCiAJCS8qDQogCQkg ICBwcmludGsoIlRYIGJ1ZmZlciB0cnVlc2l6ZSBoYXMgYmVlbiBjaGFuZ2VkXG4iKTsNCiAJCSAq Lw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L2h2Yy9odmNfY29uc29sZS5jIGIvZHJpdmVycy90 dHkvaHZjL2h2Y19jb25zb2xlLmMNCmluZGV4IDdiOTdlN2UuLjQ0MzU0N2IgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL3R0eS9odmMvaHZjX2NvbnNvbGUuYw0KKysrIGIvZHJpdmVycy90dHkvaHZjL2h2 Y19jb25zb2xlLmMNCkBAIC0xOTAsNyArMTkwLDcgQEAgc3RhdGljIHN0cnVjdCB0dHlfZHJpdmVy ICpodmNfY29uc29sZV9kZXZpY2Uoc3RydWN0IGNvbnNvbGUgKmMsIGludCAqaW5kZXgpDQogCXJl dHVybiBodmNfZHJpdmVyOw0KIH0NCiANCi1zdGF0aWMgaW50IF9faW5pdCBodmNfY29uc29sZV9z ZXR1cChzdHJ1Y3QgY29uc29sZSAqY28sIGNoYXIgKm9wdGlvbnMpDQorc3RhdGljIGludCBodmNf Y29uc29sZV9zZXR1cChzdHJ1Y3QgY29uc29sZSAqY28sIGNoYXIgKm9wdGlvbnMpDQogewkNCiAJ aWYgKGNvLT5pbmRleCA8IDAgfHwgY28tPmluZGV4ID49IE1BWF9OUl9IVkNfQ09OU09MRVMpDQog CQlyZXR1cm4gLUVOT0RFVjsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL3NodXR0 bGVfdXNiYXQuYyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2Uvc2h1dHRsZV91c2JhdC5jDQppbmRleCAw YjAwMDkxLi5mZjhhZWVlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc3RvcmFnZS9zaHV0dGxl X3VzYmF0LmMNCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2Uvc2h1dHRsZV91c2JhdC5jDQpAQCAt MTg0Niw3ICsxODQ2LDcgQEAgc3RhdGljIGludCB1c2JhdF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVy ZmFjZSAqaW50ZiwNCiAJdXMtPnRyYW5zcG9ydF9uYW1lID0gIlNodXR0bGUgVVNCQVQiOw0KIAl1 cy0+dHJhbnNwb3J0ID0gdXNiYXRfZmxhc2hfdHJhbnNwb3J0Ow0KIAl1cy0+dHJhbnNwb3J0X3Jl c2V0ID0gdXNiX3N0b3JfQ0JfcmVzZXQ7DQotCXVzLT5tYXhfbHVuID0gMTsNCisJdXMtPm1heF9s dW4gPSAwOw0KIA0KIAlyZXN1bHQgPSB1c2Jfc3Rvcl9wcm9iZTIodXMpOw0KIAlyZXR1cm4gcmVz dWx0Ow0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9kZXZzLmggYi9k cml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1YWxfZGV2cy5oDQppbmRleCAwODcxMWJjLi40OWQyMjJk IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2RldnMuaA0KKysrIGIv ZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2RldnMuaA0KQEAgLTIyNiw2ICsyMjYsMjAgQEAg VU5VU1VBTF9ERVYoICAweDA0MjEsIDB4MDQ5NSwgMHgwMzcwLCAweDAzNzAsDQogCQlVU0JfU0Nf REVWSUNFLCBVU0JfUFJfREVWSUNFLCBOVUxMLA0KIAkJVVNfRkxfTUFYX1NFQ1RPUlNfNjQgKSwN CiANCisvKiBSZXBvcnRlZCBieSBEYW5pZWxlIEZvcnNpIDxkZm9yc2lAZ21haWwuY29tPiAqLw0K K1VOVVNVQUxfREVWKCAgMHgwNDIxLCAweDA0YjksIDB4MDM1MCwgMHgwMzUwLA0KKwkJIk5va2lh IiwNCisJCSI1MzAwIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIE5VTEwsDQor CQlVU19GTF9NQVhfU0VDVE9SU182NCApLA0KKw0KKy8qIFBhdGNoIHN1Ym1pdHRlZCBieSBWaWN0 b3IgQS4gU2FudG9zIDx2aWN0b3JhdXIuc2FudG9zQGdtYWlsLmNvbT4gKi8NCitVTlVTVUFMX0RF ViggIDB4MDQyMSwgMHgwNWFmLCAweDA3NDIsIDB4MDc0MiwNCisJCSJOb2tpYSIsDQorCQkiMzA1 IiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIE5VTEwsDQorCQlVU19GTF9NQVhf U0VDVE9SU182NCksDQorDQogLyogUGF0Y2ggc3VibWl0dGVkIGJ5IE1pa2hhaWwgWm9sb3Rhcnlv diA8bGVib25AbGVib24ub3JnLnVhPiAqLw0KIFVOVVNVQUxfREVWKCAgMHgwNDIxLCAweDA2YWEs IDB4MTExMCwgMHgxMTEwLA0KIAkJIk5va2lhIiwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVv L3RnYWZiLmMgYi9kcml2ZXJzL3ZpZGVvL3RnYWZiLmMNCmluZGV4IGFjMmNmNmQuLjNiMTViY2Eg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL3ZpZGVvL3RnYWZiLmMNCisrKyBiL2RyaXZlcnMvdmlkZW8v dGdhZmIuYw0KQEAgLTE5Miw2ICsxOTIsOCBAQCB0Z2FmYl9jaGVja192YXIoc3RydWN0IGZiX3Zh cl9zY3JlZW5pbmZvICp2YXIsIHN0cnVjdCBmYl9pbmZvICppbmZvKQ0KIA0KIAlpZiAodmFyLT54 cmVzX3ZpcnR1YWwgIT0gdmFyLT54cmVzIHx8IHZhci0+eXJlc192aXJ0dWFsICE9IHZhci0+eXJl cykNCiAJCXJldHVybiAtRUlOVkFMOw0KKwlpZiAodmFyLT54cmVzICogdmFyLT55cmVzICogKHZh ci0+Yml0c19wZXJfcGl4ZWwgPj4gMykgPiBpbmZvLT5maXguc21lbV9sZW4pDQorCQlyZXR1cm4g LUVJTlZBTDsNCiAJaWYgKHZhci0+bm9uc3RkKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogCWlmICgx MDAwMDAwMDAwIC8gdmFyLT5waXhjbG9jayA+IFRHQV9QTExfTUFYX0ZSRVEpDQpAQCAtMjcyLDYg KzI3NCw3IEBAIHRnYWZiX3NldF9wYXIoc3RydWN0IGZiX2luZm8gKmluZm8pDQogCXBhci0+eXJl cyA9IGluZm8tPnZhci55cmVzOw0KIAlwYXItPnBsbF9mcmVxID0gcGxsX2ZyZXEgPSAxMDAwMDAw MDAwIC8gaW5mby0+dmFyLnBpeGNsb2NrOw0KIAlwYXItPmJpdHNfcGVyX3BpeGVsID0gaW5mby0+ dmFyLmJpdHNfcGVyX3BpeGVsOw0KKwlpbmZvLT5maXgubGluZV9sZW5ndGggPSBwYXItPnhyZXMg KiAocGFyLT5iaXRzX3Blcl9waXhlbCA+PiAzKTsNCiANCiAJdGdhX3R5cGUgPSBwYXItPnRnYV90 eXBlOw0KIA0KQEAgLTEzMTgsNiArMTMyMSw3IEBAIHRnYWZiX2luaXRfZml4KHN0cnVjdCBmYl9p bmZvICppbmZvKQ0KIAlpbnQgdGdhX2J1c190YyA9IFRHQV9CVVNfVEMocGFyLT5kZXYpOw0KIAl1 OCB0Z2FfdHlwZSA9IHBhci0+dGdhX3R5cGU7DQogCWNvbnN0IGNoYXIgKnRnYV90eXBlX25hbWUg PSBOVUxMOw0KKwl1bnNpZ25lZCBtZW1vcnlfc2l6ZTsNCiANCiAJc3dpdGNoICh0Z2FfdHlwZSkg ew0KIAljYXNlIFRHQV9UWVBFXzhQTEFORToNCkBAIC0xMzI1LDIxICsxMzI5LDI1IEBAIHRnYWZi X2luaXRfZml4KHN0cnVjdCBmYl9pbmZvICppbmZvKQ0KIAkJCXRnYV90eXBlX25hbWUgPSAiRGln aXRhbCBaTFhwLUUxIjsNCiAJCWlmICh0Z2FfYnVzX3RjKQ0KIAkJCXRnYV90eXBlX25hbWUgPSAi RGlnaXRhbCBaTFgtRTEiOw0KKwkJbWVtb3J5X3NpemUgPSAyMDk3MTUyOw0KIAkJYnJlYWs7DQog CWNhc2UgVEdBX1RZUEVfMjRQTEFORToNCiAJCWlmICh0Z2FfYnVzX3BjaSkNCiAJCQl0Z2FfdHlw ZV9uYW1lID0gIkRpZ2l0YWwgWkxYcC1FMiI7DQogCQlpZiAodGdhX2J1c190YykNCiAJCQl0Z2Ff dHlwZV9uYW1lID0gIkRpZ2l0YWwgWkxYLUUyIjsNCisJCW1lbW9yeV9zaXplID0gODM4ODYwODsN CiAJCWJyZWFrOw0KIAljYXNlIFRHQV9UWVBFXzI0UExVU1o6DQogCQlpZiAodGdhX2J1c19wY2kp DQogCQkJdGdhX3R5cGVfbmFtZSA9ICJEaWdpdGFsIFpMWHAtRTMiOw0KIAkJaWYgKHRnYV9idXNf dGMpDQogCQkJdGdhX3R5cGVfbmFtZSA9ICJEaWdpdGFsIFpMWC1FMyI7DQorCQltZW1vcnlfc2l6 ZSA9IDE2Nzc3MjE2Ow0KIAkJYnJlYWs7DQogCWRlZmF1bHQ6DQogCQl0Z2FfdHlwZV9uYW1lID0g IlVua25vd24iOw0KKwkJbWVtb3J5X3NpemUgPSAxNjc3NzIxNjsNCiAJCWJyZWFrOw0KIAl9DQog DQpAQCAtMTM1MSw5ICsxMzU5LDggQEAgdGdhZmJfaW5pdF9maXgoc3RydWN0IGZiX2luZm8gKmlu Zm8pDQogCQkJICAgID8gRkJfVklTVUFMX1BTRVVET0NPTE9SDQogCQkJICAgIDogRkJfVklTVUFM X0RJUkVDVENPTE9SKTsNCiANCi0JaW5mby0+Zml4LmxpbmVfbGVuZ3RoID0gcGFyLT54cmVzICog KHBhci0+Yml0c19wZXJfcGl4ZWwgPj4gMyk7DQogCWluZm8tPmZpeC5zbWVtX3N0YXJ0ID0gKHNp emVfdCkgcGFyLT50Z2FfZmJfYmFzZTsNCi0JaW5mby0+Zml4LnNtZW1fbGVuID0gaW5mby0+Zml4 LmxpbmVfbGVuZ3RoICogcGFyLT55cmVzOw0KKwlpbmZvLT5maXguc21lbV9sZW4gPSBtZW1vcnlf c2l6ZTsNCiAJaW5mby0+Zml4Lm1taW9fc3RhcnQgPSAoc2l6ZV90KSBwYXItPnRnYV9yZWdzX2Jh c2U7DQogCWluZm8tPmZpeC5tbWlvX2xlbiA9IDUxMjsNCiANCkBAIC0xNDc4LDYgKzE0ODUsOSBA QCB0Z2FmYl9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYpDQogCQltb2RlZGJfdGdhID0gJm1v ZGVkYl90YzsNCiAJCW1vZGVkYnNpemVfdGdhID0gMTsNCiAJfQ0KKw0KKwl0Z2FmYl9pbml0X2Zp eChpbmZvKTsNCisNCiAJcmV0ID0gZmJfZmluZF9tb2RlKCZpbmZvLT52YXIsIGluZm8sDQogCQkJ ICAgbW9kZV9vcHRpb24gPyBtb2RlX29wdGlvbiA6IG1vZGVfb3B0aW9uX3RnYSwNCiAJCQkgICBt b2RlZGJfdGdhLCBtb2RlZGJzaXplX3RnYSwgTlVMTCwNCkBAIC0xNDk1LDcgKzE1MDUsNiBAQCB0 Z2FmYl9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYpDQogCX0NCiANCiAJdGdhZmJfc2V0X3Bh cihpbmZvKTsNCi0JdGdhZmJfaW5pdF9maXgoaW5mbyk7DQogDQogCWlmIChyZWdpc3Rlcl9mcmFt ZWJ1ZmZlcihpbmZvKSA8IDApIHsNCiAJCXByaW50ayhLRVJOX0VSUiAidGdhZmI6IENvdWxkIG5v dCByZWdpc3RlciBmcmFtZWJ1ZmZlclxuIik7DQpkaWZmIC0tZ2l0IGEvZnMvbmZzZC9uZnM0YWNs LmMgYi9mcy9uZnNkL25mczRhY2wuYw0KaW5kZXggOWM1MWFmZi4uNDM1YTliZTEgMTAwNjQ0DQot LS0gYS9mcy9uZnNkL25mczRhY2wuYw0KKysrIGIvZnMvbmZzZC9uZnM0YWNsLmMNCkBAIC0zNzMs OCArMzczLDEwIEBAIHNvcnRfcGFjbChzdHJ1Y3QgcG9zaXhfYWNsICpwYWNsKQ0KIAkgKiBieSB1 aWQvZ2lkLiAqLw0KIAlpbnQgaSwgajsNCiANCi0JaWYgKHBhY2wtPmFfY291bnQgPD0gNCkNCi0J CXJldHVybjsgLyogbm8gdXNlcnMgb3IgZ3JvdXBzICovDQorCS8qIG5vIHVzZXJzIG9yIGdyb3Vw cyAqLw0KKwlpZiAoIXBhY2wgfHwgcGFjbC0+YV9jb3VudCA8PSA0KQ0KKwkJcmV0dXJuOw0KKw0K IAlpID0gMTsNCiAJd2hpbGUgKHBhY2wtPmFfZW50cmllc1tpXS5lX3RhZyA9PSBBQ0xfVVNFUikN CiAJCWkrKzsNCkBAIC00OTgsMTMgKzUwMCwxMiBAQCBwb3NpeF9zdGF0ZV90b19hY2woc3RydWN0 IHBvc2l4X2FjbF9zdGF0ZSAqc3RhdGUsIHVuc2lnbmVkIGludCBmbGFncykNCiANCiAJLyoNCiAJ ICogQUNMcyB3aXRoIG5vIEFDRXMgYXJlIHRyZWF0ZWQgZGlmZmVyZW50bHkgaW4gdGhlIGluaGVy aXRhYmxlDQotCSAqIGFuZCBlZmZlY3RpdmUgY2FzZXM6IHdoZW4gdGhlcmUgYXJlIG5vIGluaGVy aXRhYmxlIEFDRXMsIHdlDQotCSAqIHNldCBhIHplcm8tbGVuZ3RoIGRlZmF1bHQgcG9zaXggYWNs Og0KKwkgKiBhbmQgZWZmZWN0aXZlIGNhc2VzOiB3aGVuIHRoZXJlIGFyZSBubyBpbmhlcml0YWJs ZSBBQ0VzLA0KKwkgKiBjYWxscyAtPnNldF9hY2wgd2l0aCBhIE5VTEwgQUNMIHN0cnVjdHVyZS4N CiAJICovDQotCWlmIChzdGF0ZS0+ZW1wdHkgJiYgKGZsYWdzICYgTkZTNF9BQ0xfVFlQRV9ERUZB VUxUKSkgew0KLQkJcGFjbCA9IHBvc2l4X2FjbF9hbGxvYygwLCBHRlBfS0VSTkVMKTsNCi0JCXJl dHVybiBwYWNsID8gcGFjbCA6IEVSUl9QVFIoLUVOT01FTSk7DQotCX0NCisJaWYgKHN0YXRlLT5l bXB0eSAmJiAoZmxhZ3MgJiBORlM0X0FDTF9UWVBFX0RFRkFVTFQpKQ0KKwkJcmV0dXJuIE5VTEw7 DQorDQogCS8qDQogCSAqIFdoZW4gdGhlcmUgYXJlIG5vIGVmZmVjdGl2ZSBBQ0VzLCB0aGUgZm9s bG93aW5nIHdpbGwgZW5kDQogCSAqIHVwIHNldHRpbmcgYSAzLWVsZW1lbnQgZWZmZWN0aXZlIHBv c2l4IEFDTCB3aXRoIGFsbA0KZGlmZiAtLWdpdCBhL2ZzL25mc2QvbmZzNHN0YXRlLmMgYi9mcy9u ZnNkL25mczRzdGF0ZS5jDQppbmRleCA0Y2VmOTlmLi5iMmUwYTU1IDEwMDY0NA0KLS0tIGEvZnMv bmZzZC9uZnM0c3RhdGUuYw0KKysrIGIvZnMvbmZzZC9uZnM0c3RhdGUuYw0KQEAgLTk4Niw2ICs5 ODYsMTggQEAgc3RhdGljIHN0cnVjdCBuZnM0X2NsaWVudCAqYWxsb2NfY2xpZW50KHN0cnVjdCB4 ZHJfbmV0b2JqIG5hbWUpDQogCX0NCiAJbWVtY3B5KGNscC0+Y2xfbmFtZS5kYXRhLCBuYW1lLmRh dGEsIG5hbWUubGVuKTsNCiAJY2xwLT5jbF9uYW1lLmxlbiA9IG5hbWUubGVuOw0KKwlJTklUX0xJ U1RfSEVBRCgmY2xwLT5jbF9zZXNzaW9ucyk7DQorCWlkcl9pbml0KCZjbHAtPmNsX3N0YXRlaWRz KTsNCisJYXRvbWljX3NldCgmY2xwLT5jbF9yZWZjb3VudCwgMCk7DQorCWNscC0+Y2xfY2Jfc3Rh dGUgPSBORlNENF9DQl9VTktOT1dOOw0KKwlJTklUX0xJU1RfSEVBRCgmY2xwLT5jbF9pZGhhc2gp Ow0KKwlJTklUX0xJU1RfSEVBRCgmY2xwLT5jbF9zdHJoYXNoKTsNCisJSU5JVF9MSVNUX0hFQUQo JmNscC0+Y2xfb3Blbm93bmVycyk7DQorCUlOSVRfTElTVF9IRUFEKCZjbHAtPmNsX2RlbGVnYXRp b25zKTsNCisJSU5JVF9MSVNUX0hFQUQoJmNscC0+Y2xfbHJ1KTsNCisJSU5JVF9MSVNUX0hFQUQo JmNscC0+Y2xfY2FsbGJhY2tzKTsNCisJc3Bpbl9sb2NrX2luaXQoJmNscC0+Y2xfbG9jayk7DQor CXJwY19pbml0X3dhaXRfcXVldWUoJmNscC0+Y2xfY2Jfd2FpdHEsICJCYWNrY2hhbm5lbCBzbG90 IHRhYmxlIik7DQogCXJldHVybiBjbHA7DQogfQ0KIA0KQEAgLTk5OSw2ICsxMDExLDcgQEAgZnJl ZV9jbGllbnQoc3RydWN0IG5mczRfY2xpZW50ICpjbHApDQogCQlsaXN0X2RlbCgmc2VzLT5zZV9w ZXJjbG50KTsNCiAJCW5mc2Q0X3B1dF9zZXNzaW9uKHNlcyk7DQogCX0NCisJcnBjX2Rlc3Ryb3lf d2FpdF9xdWV1ZSgmY2xwLT5jbF9jYl93YWl0cSk7DQogCWlmIChjbHAtPmNsX2NyZWQuY3JfZ3Jv dXBfaW5mbykNCiAJCXB1dF9ncm91cF9pbmZvKGNscC0+Y2xfY3JlZC5jcl9ncm91cF9pbmZvKTsN CiAJa2ZyZWUoY2xwLT5jbF9wcmluY2lwYWwpOw0KQEAgLTExNjMsNyArMTE3Niw2IEBAIHN0YXRp YyBzdHJ1Y3QgbmZzNF9jbGllbnQgKmNyZWF0ZV9jbGllbnQoc3RydWN0IHhkcl9uZXRvYmogbmFt ZSwgY2hhciAqcmVjZGlyLA0KIAlpZiAoY2xwID09IE5VTEwpDQogCQlyZXR1cm4gTlVMTDsNCiAN Ci0JSU5JVF9MSVNUX0hFQUQoJmNscC0+Y2xfc2Vzc2lvbnMpOw0KIA0KIAlwcmluYyA9IHN2Y19n c3NfcHJpbmNpcGFsKHJxc3RwKTsNCiAJaWYgKHByaW5jKSB7DQpAQCAtMTE3NCwyMSArMTE4Niwx MCBAQCBzdGF0aWMgc3RydWN0IG5mczRfY2xpZW50ICpjcmVhdGVfY2xpZW50KHN0cnVjdCB4ZHJf bmV0b2JqIG5hbWUsIGNoYXIgKnJlY2RpciwNCiAJCX0NCiAJfQ0KIA0KLQlpZHJfaW5pdCgmY2xw LT5jbF9zdGF0ZWlkcyk7DQogCW1lbWNweShjbHAtPmNsX3JlY2RpciwgcmVjZGlyLCBIRVhESVJf TEVOKTsNCi0JYXRvbWljX3NldCgmY2xwLT5jbF9yZWZjb3VudCwgMCk7DQotCWNscC0+Y2xfY2Jf c3RhdGUgPSBORlNENF9DQl9VTktOT1dOOw0KLQlJTklUX0xJU1RfSEVBRCgmY2xwLT5jbF9pZGhh c2gpOw0KLQlJTklUX0xJU1RfSEVBRCgmY2xwLT5jbF9zdHJoYXNoKTsNCi0JSU5JVF9MSVNUX0hF QUQoJmNscC0+Y2xfb3Blbm93bmVycyk7DQotCUlOSVRfTElTVF9IRUFEKCZjbHAtPmNsX2RlbGVn YXRpb25zKTsNCi0JSU5JVF9MSVNUX0hFQUQoJmNscC0+Y2xfbHJ1KTsNCi0JSU5JVF9MSVNUX0hF QUQoJmNscC0+Y2xfY2FsbGJhY2tzKTsNCi0Jc3Bpbl9sb2NrX2luaXQoJmNscC0+Y2xfbG9jayk7 DQogCUlOSVRfV09SSygmY2xwLT5jbF9jYl9udWxsLmNiX3dvcmssIG5mc2Q0X2RvX2NhbGxiYWNr X3JwYyk7DQogCWNscC0+Y2xfdGltZSA9IGdldF9zZWNvbmRzKCk7DQogCWNsZWFyX2JpdCgwLCAm Y2xwLT5jbF9jYl9zbG90X2J1c3kpOw0KLQlycGNfaW5pdF93YWl0X3F1ZXVlKCZjbHAtPmNsX2Ni X3dhaXRxLCAiQmFja2NoYW5uZWwgc2xvdCB0YWJsZSIpOw0KIAljb3B5X3ZlcmYoY2xwLCB2ZXJm KTsNCiAJcnBjX2NvcHlfYWRkcigoc3RydWN0IHNvY2thZGRyICopICZjbHAtPmNsX2FkZHIsIHNh KTsNCiAJY2xwLT5jbF9mbGF2b3IgPSBycXN0cC0+cnFfZmxhdm9yOw0KQEAgLTMzNzUsOSArMzM3 NiwxNiBAQCBvdXQ6DQogc3RhdGljIF9fYmUzMg0KIG5mc2Q0X2ZyZWVfbG9ja19zdGF0ZWlkKHN0 cnVjdCBuZnM0X29sX3N0YXRlaWQgKnN0cCkNCiB7DQotCWlmIChjaGVja19mb3JfbG9ja3Moc3Rw LT5zdF9maWxlLCBsb2Nrb3duZXIoc3RwLT5zdF9zdGF0ZW93bmVyKSkpDQorCXN0cnVjdCBuZnM0 X2xvY2tvd25lciAqbG8gPSBsb2Nrb3duZXIoc3RwLT5zdF9zdGF0ZW93bmVyKTsNCisNCisJaWYg KGNoZWNrX2Zvcl9sb2NrcyhzdHAtPnN0X2ZpbGUsIGxvKSkNCiAJCXJldHVybiBuZnNlcnJfbG9j a3NfaGVsZDsNCi0JcmVsZWFzZV9sb2NrX3N0YXRlaWQoc3RwKTsNCisJLyoNCisJICogQ3VycmVu dGx5IHRoZXJlJ3MgYSAxLTEgbG9jayBzdGF0ZWlkPC0+bG9ja293bmVyDQorCSAqIGNvcnJlc3Bv bmRhbmNlLCBhbmQgd2UgaGF2ZSB0byBkZWxldGUgdGhlIGxvY2tvd25lciB3aGVuIHdlDQorCSAq IGRlbGV0ZSB0aGUgbG9jayBzdGF0ZWlkOg0KKwkgKi8NCisJdW5oYXNoX2xvY2tvd25lcihsbyk7 DQogCXJldHVybiBuZnNfb2s7DQogfQ0KIA0KQEAgLTM4MTIsNiArMzgyMCwxMCBAQCBzdGF0aWMg Ym9vbCBzYW1lX2xvY2tvd25lcl9pbm8oc3RydWN0IG5mczRfbG9ja293bmVyICpsbywgc3RydWN0 IGlub2RlICppbm9kZSwgYw0KIA0KIAlpZiAoIXNhbWVfb3duZXJfc3RyKCZsby0+bG9fb3duZXIs IG93bmVyLCBjbGlkKSkNCiAJCXJldHVybiBmYWxzZTsNCisJaWYgKGxpc3RfZW1wdHkoJmxvLT5s b19vd25lci5zb19zdGF0ZWlkcykpIHsNCisJCVdBUk5fT05fT05DRSgxKTsNCisJCXJldHVybiBm YWxzZTsNCisJfQ0KIAlsc3QgPSBsaXN0X2ZpcnN0X2VudHJ5KCZsby0+bG9fb3duZXIuc29fc3Rh dGVpZHMsDQogCQkJICAgICAgIHN0cnVjdCBuZnM0X29sX3N0YXRlaWQsIHN0X3BlcnN0YXRlb3du ZXIpOw0KIAlyZXR1cm4gbHN0LT5zdF9maWxlLT5maV9pbm9kZSA9PSBpbm9kZTsNCmRpZmYgLS1n aXQgYS9mcy9wb3NpeF9hY2wuYyBiL2ZzL3Bvc2l4X2FjbC5jDQppbmRleCBjZWE0NjIzLi42Yzcw YWIyIDEwMDY0NA0KLS0tIGEvZnMvcG9zaXhfYWNsLmMNCisrKyBiL2ZzL3Bvc2l4X2FjbC5jDQpA QCAtMTU1LDYgKzE1NSwxMiBAQCBwb3NpeF9hY2xfZXF1aXZfbW9kZShjb25zdCBzdHJ1Y3QgcG9z aXhfYWNsICphY2wsIHVtb2RlX3QgKm1vZGVfcCkNCiAJdW1vZGVfdCBtb2RlID0gMDsNCiAJaW50 IG5vdF9lcXVpdiA9IDA7DQogDQorCS8qDQorCSAqIEEgbnVsbCBBQ0wgY2FuIGFsd2F5cyBiZSBw cmVzZW50ZWQgYXMgbW9kZSBiaXRzLg0KKwkgKi8NCisJaWYgKCFhY2wpDQorCQlyZXR1cm4gMDsN CisNCiAJRk9SRUFDSF9BQ0xfRU5UUlkocGEsIGFjbCwgcGUpIHsNCiAJCXN3aXRjaCAocGEtPmVf dGFnKSB7DQogCQkJY2FzZSBBQ0xfVVNFUl9PQko6DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9mdHJhY2UuaCBiL2luY2x1ZGUvbGludXgvZnRyYWNlLmgNCmluZGV4IDI2ZWFmY2UuLmEzZWJi MDkgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L2Z0cmFjZS5oDQorKysgYi9pbmNsdWRlL2xp bnV4L2Z0cmFjZS5oDQpAQCAtMjYwLDYgKzI2MCw3IEBAIGV4dGVybiBpbnQgZnRyYWNlX21ha2Vf Y2FsbChzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjLCB1bnNpZ25lZCBsb25nIGFkZHIpOw0KIGV4dGVy biBpbnQgZnRyYWNlX2FyY2hfcmVhZF9keW5faW5mbyhjaGFyICpidWYsIGludCBzaXplKTsNCiAN CiBleHRlcm4gaW50IHNraXBfdHJhY2UodW5zaWduZWQgbG9uZyBpcCk7DQorZXh0ZXJuIHZvaWQg ZnRyYWNlX21vZHVsZV9pbml0KHN0cnVjdCBtb2R1bGUgKm1vZCk7DQogDQogZXh0ZXJuIHZvaWQg ZnRyYWNlX2Rpc2FibGVfZGFlbW9uKHZvaWQpOw0KIGV4dGVybiB2b2lkIGZ0cmFjZV9lbmFibGVf ZGFlbW9uKHZvaWQpOw0KQEAgLTI3Miw2ICsyNzMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZnRy YWNlX3NldF9maWx0ZXIodW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbGVuLCBpbnQgcmVzZXQpDQog c3RhdGljIGlubGluZSB2b2lkIGZ0cmFjZV9kaXNhYmxlX2RhZW1vbih2b2lkKSB7IH0NCiBzdGF0 aWMgaW5saW5lIHZvaWQgZnRyYWNlX2VuYWJsZV9kYWVtb24odm9pZCkgeyB9DQogc3RhdGljIGlu bGluZSB2b2lkIGZ0cmFjZV9yZWxlYXNlX21vZChzdHJ1Y3QgbW9kdWxlICptb2QpIHt9DQorc3Rh dGljIGlubGluZSB2b2lkIGZ0cmFjZV9tb2R1bGVfaW5pdChzdHJ1Y3QgbW9kdWxlICptb2QpIHt9 DQogc3RhdGljIGlubGluZSBpbnQgcmVnaXN0ZXJfZnRyYWNlX2NvbW1hbmQoc3RydWN0IGZ0cmFj ZV9mdW5jX2NvbW1hbmQgKmNtZCkNCiB7DQogCXJldHVybiAtRUlOVkFMOw0KZGlmZiAtLWdpdCBh L2luY2x1ZGUvbGludXgva3ZtX2hvc3QuaCBiL2luY2x1ZGUvbGludXgva3ZtX2hvc3QuaA0KaW5k ZXggZTY3OTZjMS4uZjkzZDhjMSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgva3ZtX2hvc3Qu aA0KKysrIGIvaW5jbHVkZS9saW51eC9rdm1faG9zdC5oDQpAQCAtOTUsNyArOTUsNiBAQCBzdHJ1 Y3Qga3ZtX2FzeW5jX3BmIHsNCiAJdW5zaWduZWQgbG9uZyBhZGRyOw0KIAlzdHJ1Y3Qga3ZtX2Fy Y2hfYXN5bmNfcGYgYXJjaDsNCiAJc3RydWN0IHBhZ2UgKnBhZ2U7DQotCWJvb2wgZG9uZTsNCiB9 Ow0KIA0KIHZvaWQga3ZtX2NsZWFyX2FzeW5jX3BmX2NvbXBsZXRpb25fcXVldWUoc3RydWN0IGt2 bV92Y3B1ICp2Y3B1KTsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oIGIvaW5j bHVkZS9saW51eC9za2J1ZmYuaA0KaW5kZXggMTNiZDZkMC4uYzQ0NWU1MiAxMDA2NDQNCi0tLSBh L2luY2x1ZGUvbGludXgvc2tidWZmLmgNCisrKyBiL2luY2x1ZGUvbGludXgvc2tidWZmLmgNCkBA IC02MTcsMTEgKzYxNywyMSBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgKnNrYl9lbmRf cG9pbnRlcihjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIHsNCiAJcmV0dXJuIHNrYi0+aGVh ZCArIHNrYi0+ZW5kOw0KIH0NCisNCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBza2JfZW5k X29mZnNldChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KK3sNCisJcmV0dXJuIHNrYi0+ZW5k Ow0KK30NCiAjZWxzZQ0KIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciAqc2tiX2VuZF9wb2lu dGVyKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpDQogew0KIAlyZXR1cm4gc2tiLT5lbmQ7DQog fQ0KKw0KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHNrYl9lbmRfb2Zmc2V0KGNvbnN0IHN0 cnVjdCBza19idWZmICpza2IpDQorew0KKwlyZXR1cm4gc2tiLT5lbmQgLSBza2ItPmhlYWQ7DQor fQ0KICNlbmRpZg0KIA0KIC8qIEludGVybmFsICovDQpAQCAtMjU0OSw3ICsyNTU5LDcgQEAgc3Rh dGljIGlubGluZSBib29sIHNrYl9pc19yZWN5Y2xlYWJsZShjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBpbnQgc2tiX3NpemUpDQogCQlyZXR1cm4gZmFsc2U7DQogDQogCXNrYl9zaXplID0gU0tC X0RBVEFfQUxJR04oc2tiX3NpemUgKyBORVRfU0tCX1BBRCk7DQotCWlmIChza2JfZW5kX3BvaW50 ZXIoc2tiKSAtIHNrYi0+aGVhZCA8IHNrYl9zaXplKQ0KKwlpZiAoc2tiX2VuZF9vZmZzZXQoc2ti KSA8IHNrYl9zaXplKQ0KIAkJcmV0dXJuIGZhbHNlOw0KIA0KIAlpZiAoc2tiX3NoYXJlZChza2Ip IHx8IHNrYl9jbG9uZWQoc2tiKSkNCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcDZfcm91dGUu aCBiL2luY2x1ZGUvbmV0L2lwNl9yb3V0ZS5oDQppbmRleCA1ZTkxYjcyLi40OTEzZGFjIDEwMDY0 NA0KLS0tIGEvaW5jbHVkZS9uZXQvaXA2X3JvdXRlLmgNCisrKyBiL2luY2x1ZGUvbmV0L2lwNl9y b3V0ZS5oDQpAQCAtMzQsNiArMzQsMTEgQEAgc3RydWN0IHJvdXRlX2luZm8gew0KICNkZWZpbmUg UlQ2X0xPT0tVUF9GX1NSQ1BSRUZfUFVCTElDCTB4MDAwMDAwMTANCiAjZGVmaW5lIFJUNl9MT09L VVBfRl9TUkNQUkVGX0NPQQkweDAwMDAwMDIwDQogDQorLyogV2UgZG8gbm90ICh5ZXQgPykgc3Vw cG9ydCBJUHY2IGp1bWJvZ3JhbXMgKFJGQyAyNjc1KQ0KKyAqIFVubGlrZSBJUHY0LCBoZHItPnNl Z19sZW4gZG9lc24ndCBpbmNsdWRlIHRoZSBJUHY2IGhlYWRlcg0KKyAqLw0KKyNkZWZpbmUgSVA2 X01BWF9NVFUgKDB4RkZGRiArIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpDQorDQogLyoNCiAgKiBy dDZfc3JjcHJlZnMyZmxhZ3MoKSBhbmQgcnQ2X2ZsYWdzMnNyY3ByZWZzKCkgdHJhbnNsYXRlDQog ICogYmV0d2VlbiBJUFY2X0FERFJfUFJFRkVSRU5DRVMgc29ja2V0IG9wdGlvbiB2YWx1ZXMNCmRp ZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy9tb2R1bGUuaCBiL2luY2x1ZGUvdHJhY2Uv ZXZlbnRzL21vZHVsZS5oDQppbmRleCAxNjE5MzI3Li5jYTI5OGM3IDEwMDY0NA0KLS0tIGEvaW5j bHVkZS90cmFjZS9ldmVudHMvbW9kdWxlLmgNCisrKyBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL21v ZHVsZS5oDQpAQCAtNzgsNyArNzgsNyBAQCBERUNMQVJFX0VWRU5UX0NMQVNTKG1vZHVsZV9yZWZj bnQsDQogDQogCVRQX2Zhc3RfYXNzaWduKA0KIAkJX19lbnRyeS0+aXAJPSBpcDsNCi0JCV9fZW50 cnktPnJlZmNudAk9IF9fdGhpc19jcHVfcmVhZChtb2QtPnJlZnB0ci0+aW5jcykgKyBfX3RoaXNf Y3B1X3JlYWQobW9kLT5yZWZwdHItPmRlY3MpOw0KKwkJX19lbnRyeS0+cmVmY250CT0gX190aGlz X2NwdV9yZWFkKG1vZC0+cmVmcHRyLT5pbmNzKSAtIF9fdGhpc19jcHVfcmVhZChtb2QtPnJlZnB0 ci0+ZGVjcyk7DQogCQlfX2Fzc2lnbl9zdHIobmFtZSwgbW9kLT5uYW1lKTsNCiAJKSwNCiANCmRp ZmYgLS1naXQgYS9rZXJuZWwvZXZlbnRzL2NvcmUuYyBiL2tlcm5lbC9ldmVudHMvY29yZS5jDQpp bmRleCBiMTViNGY3Li4xZDFlZGNiIDEwMDY0NA0KLS0tIGEva2VybmVsL2V2ZW50cy9jb3JlLmMN CisrKyBiL2tlcm5lbC9ldmVudHMvY29yZS5jDQpAQCAtNDg5OSw2ICs0ODk5LDkgQEAgc3RydWN0 IHN3ZXZlbnRfaHRhYmxlIHsNCiANCiAJLyogUmVjdXJzaW9uIGF2b2lkYW5jZSBpbiBlYWNoIGNv bnRleHRzICovDQogCWludAkJCQlyZWN1cnNpb25bUEVSRl9OUl9DT05URVhUU107DQorDQorCS8q IEtlZXBzIHRyYWNrIG9mIGNwdSBiZWluZyBpbml0aWFsaXplZC9leGl0ZWQgKi8NCisJYm9vbAkJ CQlvbmxpbmU7DQogfTsNCiANCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHN3ZXZlbnRf aHRhYmxlLCBzd2V2ZW50X2h0YWJsZSk7DQpAQCAtNTE0MSw4ICs1MTQ0LDE0IEBAIHN0YXRpYyBp bnQgcGVyZl9zd2V2ZW50X2FkZChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQsIGludCBmbGFncykN CiAJaHdjLT5zdGF0ZSA9ICEoZmxhZ3MgJiBQRVJGX0VGX1NUQVJUKTsNCiANCiAJaGVhZCA9IGZp bmRfc3dldmVudF9oZWFkKHN3aGFzaCwgZXZlbnQpOw0KLQlpZiAoV0FSTl9PTl9PTkNFKCFoZWFk KSkNCisJaWYgKCFoZWFkKSB7DQorCQkvKg0KKwkJICogV2UgY2FuIHJhY2Ugd2l0aCBjcHUgaG90 cGx1ZyBjb2RlLiBEbyBub3QNCisJCSAqIFdBUk4gaWYgdGhlIGNwdSBqdXN0IGdvdCB1bnBsdWdn ZWQuDQorCQkgKi8NCisJCVdBUk5fT05fT05DRShzd2hhc2gtPm9ubGluZSk7DQogCQlyZXR1cm4g LUVJTlZBTDsNCisJfQ0KIA0KIAlobGlzdF9hZGRfaGVhZF9yY3UoJmV2ZW50LT5obGlzdF9lbnRy eSwgaGVhZCk7DQogDQpAQCAtNjMwMSw2ICs2MzEwLDkgQEAgU1lTQ0FMTF9ERUZJTkU1KHBlcmZf ZXZlbnRfb3BlbiwNCiAJaWYgKGF0dHIuZnJlcSkgew0KIAkJaWYgKGF0dHIuc2FtcGxlX2ZyZXEg PiBzeXNjdGxfcGVyZl9ldmVudF9zYW1wbGVfcmF0ZSkNCiAJCQlyZXR1cm4gLUVJTlZBTDsNCisJ fSBlbHNlIHsNCisJCWlmIChhdHRyLnNhbXBsZV9wZXJpb2QgJiAoMVVMTCA8PCA2MykpDQorCQkJ cmV0dXJuIC1FSU5WQUw7DQogCX0NCiANCiAJLyoNCkBAIC03MDc4LDYgKzcwOTAsNyBAQCBzdGF0 aWMgdm9pZCBfX2NwdWluaXQgcGVyZl9ldmVudF9pbml0X2NwdShpbnQgY3B1KQ0KIAlzdHJ1Y3Qg c3dldmVudF9odGFibGUgKnN3aGFzaCA9ICZwZXJfY3B1KHN3ZXZlbnRfaHRhYmxlLCBjcHUpOw0K IA0KIAltdXRleF9sb2NrKCZzd2hhc2gtPmhsaXN0X211dGV4KTsNCisJc3doYXNoLT5vbmxpbmUg PSB0cnVlOw0KIAlpZiAoc3doYXNoLT5obGlzdF9yZWZjb3VudCA+IDApIHsNCiAJCXN0cnVjdCBz d2V2ZW50X2hsaXN0ICpobGlzdDsNCiANCkBAIC03MTM1LDYgKzcxNDgsNyBAQCBzdGF0aWMgdm9p ZCBwZXJmX2V2ZW50X2V4aXRfY3B1KGludCBjcHUpDQogCXBlcmZfZXZlbnRfZXhpdF9jcHVfY29u dGV4dChjcHUpOw0KIA0KIAltdXRleF9sb2NrKCZzd2hhc2gtPmhsaXN0X211dGV4KTsNCisJc3do YXNoLT5vbmxpbmUgPSBmYWxzZTsNCiAJc3dldmVudF9obGlzdF9yZWxlYXNlKHN3aGFzaCk7DQog CW11dGV4X3VubG9jaygmc3doYXNoLT5obGlzdF9tdXRleCk7DQogfQ0KZGlmZiAtLWdpdCBhL2tl cm5lbC9mdXRleC5jIGIva2VybmVsL2Z1dGV4LmMNCmluZGV4IDg4ODg4MTUuLjFiYjM3ZDAgMTAw NjQ0DQotLS0gYS9rZXJuZWwvZnV0ZXguYw0KKysrIGIva2VybmVsL2Z1dGV4LmMNCkBAIC01ODgs NiArNTg4LDU1IEBAIHZvaWQgZXhpdF9waV9zdGF0ZV9saXN0KHN0cnVjdCB0YXNrX3N0cnVjdCAq Y3VycikNCiAJcmF3X3NwaW5fdW5sb2NrX2lycSgmY3Vyci0+cGlfbG9jayk7DQogfQ0KIA0KKy8q DQorICogV2UgbmVlZCB0byBjaGVjayB0aGUgZm9sbG93aW5nIHN0YXRlczoNCisgKg0KKyAqICAg ICAgV2FpdGVyIHwgcGlfc3RhdGUgfCBwaS0+b3duZXIgfCB1VElEICAgICAgfCB1T0RJRUQgfCA/ DQorICoNCisgKiBbMV0gIE5VTEwgICB8IC0tLSAgICAgIHwgLS0tICAgICAgIHwgMCAgICAgICAg IHwgMC8xICAgIHwgVmFsaWQNCisgKiBbMl0gIE5VTEwgICB8IC0tLSAgICAgIHwgLS0tICAgICAg IHwgPjAgICAgICAgIHwgMC8xICAgIHwgVmFsaWQNCisgKg0KKyAqIFszXSAgRm91bmQgIHwgTlVM TCAgICAgfCAtLSAgICAgICAgfCBBbnkgICAgICAgfCAwLzEgICAgfCBJbnZhbGlkDQorICoNCisg KiBbNF0gIEZvdW5kICB8IEZvdW5kICAgIHwgTlVMTCAgICAgIHwgMCAgICAgICAgIHwgMSAgICAg IHwgVmFsaWQNCisgKiBbNV0gIEZvdW5kICB8IEZvdW5kICAgIHwgTlVMTCAgICAgIHwgPjAgICAg ICAgIHwgMSAgICAgIHwgSW52YWxpZA0KKyAqDQorICogWzZdICBGb3VuZCAgfCBGb3VuZCAgICB8 IHRhc2sgICAgICB8IDAgICAgICAgICB8IDEgICAgICB8IFZhbGlkDQorICoNCisgKiBbN10gIEZv dW5kICB8IEZvdW5kICAgIHwgTlVMTCAgICAgIHwgQW55ICAgICAgIHwgMCAgICAgIHwgSW52YWxp ZA0KKyAqDQorICogWzhdICBGb3VuZCAgfCBGb3VuZCAgICB8IHRhc2sgICAgICB8ID09dGFza1RJ RCB8IDAvMSAgICB8IFZhbGlkDQorICogWzldICBGb3VuZCAgfCBGb3VuZCAgICB8IHRhc2sgICAg ICB8IDAgICAgICAgICB8IDAgICAgICB8IEludmFsaWQNCisgKiBbMTBdIEZvdW5kICB8IEZvdW5k ICAgIHwgdGFzayAgICAgIHwgIT10YXNrVElEIHwgMC8xICAgIHwgSW52YWxpZA0KKyAqDQorICog WzFdCUluZGljYXRlcyB0aGF0IHRoZSBrZXJuZWwgY2FuIGFjcXVpcmUgdGhlIGZ1dGV4IGF0b21p Y2FsbHkuIFdlDQorICoJY2FtZSBjYW1lIGhlcmUgZHVlIHRvIGEgc3RhbGUgRlVURVhfV0FJVEVS Uy9GVVRFWF9PV05FUl9ESUVEIGJpdC4NCisgKg0KKyAqIFsyXQlWYWxpZCwgaWYgVElEIGRvZXMg bm90IGJlbG9uZyB0byBhIGtlcm5lbCB0aHJlYWQuIElmIG5vIG1hdGNoaW5nDQorICogICAgICB0 aHJlYWQgaXMgZm91bmQgdGhlbiBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgb3duZXIgVElEIGhhcyBk aWVkLg0KKyAqDQorICogWzNdCUludmFsaWQuIFRoZSB3YWl0ZXIgaXMgcXVldWVkIG9uIGEgbm9u IFBJIGZ1dGV4DQorICoNCisgKiBbNF0JVmFsaWQgc3RhdGUgYWZ0ZXIgZXhpdF9yb2J1c3RfbGlz dCgpLCB3aGljaCBzZXRzIHRoZSB1c2VyIHNwYWNlDQorICoJdmFsdWUgdG8gRlVURVhfV0FJVEVS UyB8IEZVVEVYX09XTkVSX0RJRUQuDQorICoNCisgKiBbNV0JVGhlIHVzZXIgc3BhY2UgdmFsdWUg Z290IG1hbmlwdWxhdGVkIGJldHdlZW4gZXhpdF9yb2J1c3RfbGlzdCgpDQorICoJYW5kIGV4aXRf cGlfc3RhdGVfbGlzdCgpDQorICoNCisgKiBbNl0JVmFsaWQgc3RhdGUgYWZ0ZXIgZXhpdF9waV9z dGF0ZV9saXN0KCkgd2hpY2ggc2V0cyB0aGUgbmV3IG93bmVyIGluDQorICoJdGhlIHBpX3N0YXRl IGJ1dCBjYW5ub3QgYWNjZXNzIHRoZSB1c2VyIHNwYWNlIHZhbHVlLg0KKyAqDQorICogWzddCXBp X3N0YXRlLT5vd25lciBjYW4gb25seSBiZSBOVUxMIHdoZW4gdGhlIE9XTkVSX0RJRUQgYml0IGlz IHNldC4NCisgKg0KKyAqIFs4XQlPd25lciBhbmQgdXNlciBzcGFjZSB2YWx1ZSBtYXRjaA0KKyAq DQorICogWzldCVRoZXJlIGlzIG5vIHRyYW5zaWVudCBzdGF0ZSB3aGljaCBzZXRzIHRoZSB1c2Vy IHNwYWNlIFRJRCB0byAwDQorICoJZXhjZXB0IGV4aXRfcm9idXN0X2xpc3QoKSwgYnV0IHRoaXMg aXMgaW5kaWNhdGVkIGJ5IHRoZQ0KKyAqCUZVVEVYX09XTkVSX0RJRUQgYml0LiBTZWUgWzRdDQor ICoNCisgKiBbMTBdIFRoZXJlIGlzIG5vIHRyYW5zaWVudCBzdGF0ZSB3aGljaCBsZWF2ZXMgb3du ZXIgYW5kIHVzZXIgc3BhY2UNCisgKglUSUQgb3V0IG9mIHN5bmMuDQorICovDQogc3RhdGljIGlu dA0KIGxvb2t1cF9waV9zdGF0ZSh1MzIgdXZhbCwgc3RydWN0IGZ1dGV4X2hhc2hfYnVja2V0ICpo YiwNCiAJCXVuaW9uIGZ1dGV4X2tleSAqa2V5LCBzdHJ1Y3QgZnV0ZXhfcGlfc3RhdGUgKipwcykN CkBAIC02MDMsMTIgKzY1MiwxMyBAQCBsb29rdXBfcGlfc3RhdGUodTMyIHV2YWwsIHN0cnVjdCBm dXRleF9oYXNoX2J1Y2tldCAqaGIsDQogCXBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodGhpcywg bmV4dCwgaGVhZCwgbGlzdCkgew0KIAkJaWYgKG1hdGNoX2Z1dGV4KCZ0aGlzLT5rZXksIGtleSkp IHsNCiAJCQkvKg0KLQkJCSAqIEFub3RoZXIgd2FpdGVyIGFscmVhZHkgZXhpc3RzIC0gYnVtcCB1 cA0KLQkJCSAqIHRoZSByZWZjb3VudCBhbmQgcmV0dXJuIGl0cyBwaV9zdGF0ZToNCisJCQkgKiBT YW5pdHkgY2hlY2sgdGhlIHdhaXRlciBiZWZvcmUgaW5jcmVhc2luZw0KKwkJCSAqIHRoZSByZWZj b3VudCBhbmQgYXR0YWNoaW5nIHRvIGl0Lg0KIAkJCSAqLw0KIAkJCXBpX3N0YXRlID0gdGhpcy0+ cGlfc3RhdGU7DQogCQkJLyoNCi0JCQkgKiBVc2Vyc3BhY2UgbWlnaHQgaGF2ZSBtZXNzZWQgdXAg bm9uLVBJIGFuZCBQSSBmdXRleGVzDQorCQkJICogVXNlcnNwYWNlIG1pZ2h0IGhhdmUgbWVzc2Vk IHVwIG5vbi1QSSBhbmQNCisJCQkgKiBQSSBmdXRleGVzIFszXQ0KIAkJCSAqLw0KIAkJCWlmICh1 bmxpa2VseSghcGlfc3RhdGUpKQ0KIAkJCQlyZXR1cm4gLUVJTlZBTDsNCkBAIC02MTYsMzQgKzY2 Niw3MCBAQCBsb29rdXBfcGlfc3RhdGUodTMyIHV2YWwsIHN0cnVjdCBmdXRleF9oYXNoX2J1Y2tl dCAqaGIsDQogCQkJV0FSTl9PTighYXRvbWljX3JlYWQoJnBpX3N0YXRlLT5yZWZjb3VudCkpOw0K IA0KIAkJCS8qDQotCQkJICogV2hlbiBwaV9zdGF0ZS0+b3duZXIgaXMgTlVMTCB0aGVuIHRoZSBv d25lciBkaWVkDQotCQkJICogYW5kIGFub3RoZXIgd2FpdGVyIGlzIG9uIHRoZSBmbHkuIHBpX3N0 YXRlLT5vd25lcg0KLQkJCSAqIGlzIGZpeGVkIHVwIGJ5IHRoZSB0YXNrIHdoaWNoIGFjcXVpcmVz DQotCQkJICogcGlfc3RhdGUtPnJ0X211dGV4Lg0KLQkJCSAqDQotCQkJICogV2UgZG8gbm90IGNo ZWNrIGZvciBwaWQgPT0gMCB3aGljaCBjYW4gaGFwcGVuIHdoZW4NCi0JCQkgKiB0aGUgb3duZXIg ZGllZCBhbmQgcm9idXN0X2xpc3RfZXhpdCgpIGNsZWFyZWQgdGhlDQotCQkJICogVElELg0KKwkJ CSAqIEhhbmRsZSB0aGUgb3duZXIgZGllZCBjYXNlOg0KIAkJCSAqLw0KLQkJCWlmIChwaWQgJiYg cGlfc3RhdGUtPm93bmVyKSB7DQorCQkJaWYgKHV2YWwgJiBGVVRFWF9PV05FUl9ESUVEKSB7DQor CQkJCS8qDQorCQkJCSAqIGV4aXRfcGlfc3RhdGVfbGlzdCBzZXRzIG93bmVyIHRvIE5VTEwgYW5k DQorCQkJCSAqIHdha2VzIHRoZSB0b3Btb3N0IHdhaXRlci4gVGhlIHRhc2sgd2hpY2gNCisJCQkJ ICogYWNxdWlyZXMgdGhlIHBpX3N0YXRlLT5ydF9tdXRleCB3aWxsIGZpeHVwDQorCQkJCSAqIG93 bmVyLg0KKwkJCQkgKi8NCisJCQkJaWYgKCFwaV9zdGF0ZS0+b3duZXIpIHsNCisJCQkJCS8qDQor CQkJCQkgKiBObyBwaSBzdGF0ZSBvd25lciwgYnV0IHRoZSB1c2VyDQorCQkJCQkgKiBzcGFjZSBU SUQgaXMgbm90IDAuIEluY29uc2lzdGVudA0KKwkJCQkJICogc3RhdGUuIFs1XQ0KKwkJCQkJICov DQorCQkJCQlpZiAocGlkKQ0KKwkJCQkJCXJldHVybiAtRUlOVkFMOw0KKwkJCQkJLyoNCisJCQkJ CSAqIFRha2UgYSByZWYgb24gdGhlIHN0YXRlIGFuZA0KKwkJCQkJICogcmV0dXJuLiBbNF0NCisJ CQkJCSAqLw0KKwkJCQkJZ290byBvdXRfc3RhdGU7DQorCQkJCX0NCisNCiAJCQkJLyoNCi0JCQkJ ICogQmFpbCBvdXQgaWYgdXNlciBzcGFjZSBtYW5pcHVsYXRlZCB0aGUNCi0JCQkJICogZnV0ZXgg dmFsdWUuDQorCQkJCSAqIElmIFRJRCBpcyAwLCB0aGVuIGVpdGhlciB0aGUgZHlpbmcgb3duZXIN CisJCQkJICogaGFzIG5vdCB5ZXQgZXhlY3V0ZWQgZXhpdF9waV9zdGF0ZV9saXN0KCkNCisJCQkJ ICogb3Igc29tZSB3YWl0ZXIgYWNxdWlyZWQgdGhlIHJ0bXV0ZXggaW4gdGhlDQorCQkJCSAqIHBp IHN0YXRlLCBidXQgZGlkIG5vdCB5ZXQgZml4dXAgdGhlIFRJRCBpbg0KKwkJCQkgKiB1c2VyIHNw YWNlLg0KKwkJCQkgKg0KKwkJCQkgKiBUYWtlIGEgcmVmIG9uIHRoZSBzdGF0ZSBhbmQgcmV0dXJu LiBbNl0NCiAJCQkJICovDQotCQkJCWlmIChwaWQgIT0gdGFza19waWRfdm5yKHBpX3N0YXRlLT5v d25lcikpDQorCQkJCWlmICghcGlkKQ0KKwkJCQkJZ290byBvdXRfc3RhdGU7DQorCQkJfSBlbHNl IHsNCisJCQkJLyoNCisJCQkJICogSWYgdGhlIG93bmVyIGRpZWQgYml0IGlzIG5vdCBzZXQsDQor CQkJCSAqIHRoZW4gdGhlIHBpX3N0YXRlIG11c3QgaGF2ZSBhbg0KKwkJCQkgKiBvd25lci4gWzdd DQorCQkJCSAqLw0KKwkJCQlpZiAoIXBpX3N0YXRlLT5vd25lcikNCiAJCQkJCXJldHVybiAtRUlO VkFMOw0KIAkJCX0NCiANCisJCQkvKg0KKwkJCSAqIEJhaWwgb3V0IGlmIHVzZXIgc3BhY2UgbWFu aXB1bGF0ZWQgdGhlDQorCQkJICogZnV0ZXggdmFsdWUuIElmIHBpIHN0YXRlIGV4aXN0cyB0aGVu IHRoZQ0KKwkJCSAqIG93bmVyIFRJRCBtdXN0IGJlIHRoZSBzYW1lIGFzIHRoZSB1c2VyDQorCQkJ ICogc3BhY2UgVElELiBbOS8xMF0NCisJCQkgKi8NCisJCQlpZiAocGlkICE9IHRhc2tfcGlkX3Zu cihwaV9zdGF0ZS0+b3duZXIpKQ0KKwkJCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJCW91dF9zdGF0 ZToNCiAJCQlhdG9taWNfaW5jKCZwaV9zdGF0ZS0+cmVmY291bnQpOw0KIAkJCSpwcyA9IHBpX3N0 YXRlOw0KLQ0KIAkJCXJldHVybiAwOw0KIAkJfQ0KIAl9DQogDQogCS8qDQogCSAqIFdlIGFyZSB0 aGUgZmlyc3Qgd2FpdGVyIC0gdHJ5IHRvIGxvb2sgdXAgdGhlIHJlYWwgb3duZXIgYW5kIGF0dGFj aA0KLQkgKiB0aGUgbmV3IHBpX3N0YXRlIHRvIGl0LCBidXQgYmFpbCBvdXQgd2hlbiBUSUQgPSAw DQorCSAqIHRoZSBuZXcgcGlfc3RhdGUgdG8gaXQsIGJ1dCBiYWlsIG91dCB3aGVuIFRJRCA9IDAg WzFdDQogCSAqLw0KIAlpZiAoIXBpZCkNCiAJCXJldHVybiAtRVNSQ0g7DQpAQCAtNjUxLDYgKzcz NywxMSBAQCBsb29rdXBfcGlfc3RhdGUodTMyIHV2YWwsIHN0cnVjdCBmdXRleF9oYXNoX2J1Y2tl dCAqaGIsDQogCWlmICghcCkNCiAJCXJldHVybiAtRVNSQ0g7DQogDQorCWlmICghcC0+bW0pIHsN CisJCXB1dF90YXNrX3N0cnVjdChwKTsNCisJCXJldHVybiAtRVBFUk07DQorCX0NCisNCiAJLyoN CiAJICogV2UgbmVlZCB0byBsb29rIGF0IHRoZSB0YXNrIHN0YXRlIGZsYWdzIHRvIGZpZ3VyZSBv dXQsDQogCSAqIHdoZXRoZXIgdGhlIHRhc2sgaXMgZXhpdGluZy4gVG8gcHJvdGVjdCBhZ2FpbnN0 IHRoZSBkb19leGl0DQpAQCAtNjcxLDYgKzc2Miw5IEBAIGxvb2t1cF9waV9zdGF0ZSh1MzIgdXZh bCwgc3RydWN0IGZ1dGV4X2hhc2hfYnVja2V0ICpoYiwNCiAJCXJldHVybiByZXQ7DQogCX0NCiAN CisJLyoNCisJICogTm8gZXhpc3RpbmcgcGkgc3RhdGUuIEZpcnN0IHdhaXRlci4gWzJdDQorCSAq Lw0KIAlwaV9zdGF0ZSA9IGFsbG9jX3BpX3N0YXRlKCk7DQogDQogCS8qDQpAQCAtNzQyLDEwICs4 MzYsMTggQEAgcmV0cnk6DQogCQlyZXR1cm4gLUVERUFETEs7DQogDQogCS8qDQotCSAqIFN1cnBy aXNlIC0gd2UgZ290IHRoZSBsb2NrLiBKdXN0IHJldHVybiB0byB1c2Vyc3BhY2U6DQorCSAqIFN1 cnByaXNlIC0gd2UgZ290IHRoZSBsb2NrLCBidXQgd2UgZG8gbm90IHRydXN0IHVzZXIgc3BhY2Ug YXQgYWxsLg0KIAkgKi8NCi0JaWYgKHVubGlrZWx5KCFjdXJ2YWwpKQ0KLQkJcmV0dXJuIDE7DQor CWlmICh1bmxpa2VseSghY3VydmFsKSkgew0KKwkJLyoNCisJCSAqIFdlIHZlcmlmeSB3aGV0aGVy IHRoZXJlIGlzIGtlcm5lbCBzdGF0ZSBmb3IgdGhpcw0KKwkJICogZnV0ZXguIElmIG5vdCwgd2Ug Y2FuIHNhZmVseSBhc3N1bWUsIHRoYXQgdGhlIDAgLT4NCisJCSAqIFRJRCB0cmFuc2l0aW9uIGlz IGNvcnJlY3QuIElmIHN0YXRlIGV4aXN0cywgd2UgZG8NCisJCSAqIG5vdCBib3RoZXIgdG8gZml4 dXAgdGhlIHVzZXIgc3BhY2Ugc3RhdGUgYXMgaXQgd2FzDQorCQkgKiBjb3JydXB0ZWQgYWxyZWFk eS4NCisJCSAqLw0KKwkJcmV0dXJuIGZ1dGV4X3RvcF93YWl0ZXIoaGIsIGtleSkgPyAtRUlOVkFM IDogMTsNCisJfQ0KIA0KIAl1dmFsID0gY3VydmFsOw0KIA0KQEAgLTg3NSw2ICs5NzcsNyBAQCBz dGF0aWMgaW50IHdha2VfZnV0ZXhfcGkodTMyIF9fdXNlciAqdWFkZHIsIHUzMiB1dmFsLCBzdHJ1 Y3QgZnV0ZXhfcSAqdGhpcykNCiAJc3RydWN0IHRhc2tfc3RydWN0ICpuZXdfb3duZXI7DQogCXN0 cnVjdCBmdXRleF9waV9zdGF0ZSAqcGlfc3RhdGUgPSB0aGlzLT5waV9zdGF0ZTsNCiAJdTMyIHVu aW5pdGlhbGl6ZWRfdmFyKGN1cnZhbCksIG5ld3ZhbDsNCisJaW50IHJldCA9IDA7DQogDQogCWlm ICghcGlfc3RhdGUpDQogCQlyZXR1cm4gLUVJTlZBTDsNCkBAIC04OTgsMjMgKzEwMDEsMTkgQEAg c3RhdGljIGludCB3YWtlX2Z1dGV4X3BpKHUzMiBfX3VzZXIgKnVhZGRyLCB1MzIgdXZhbCwgc3Ry dWN0IGZ1dGV4X3EgKnRoaXMpDQogCQluZXdfb3duZXIgPSB0aGlzLT50YXNrOw0KIA0KIAkvKg0K LQkgKiBXZSBwYXNzIGl0IHRvIHRoZSBuZXh0IG93bmVyLiAoVGhlIFdBSVRFUlMgYml0IGlzIGFs d2F5cw0KLQkgKiBrZXB0IGVuYWJsZWQgd2hpbGUgdGhlcmUgaXMgUEkgc3RhdGUgYXJvdW5kLiBX ZSBtdXN0IGFsc28NCi0JICogcHJlc2VydmUgdGhlIG93bmVyIGRpZWQgYml0LikNCisJICogV2Ug cGFzcyBpdCB0byB0aGUgbmV4dCBvd25lci4gVGhlIFdBSVRFUlMgYml0IGlzIGFsd2F5cw0KKwkg KiBrZXB0IGVuYWJsZWQgd2hpbGUgdGhlcmUgaXMgUEkgc3RhdGUgYXJvdW5kLiBXZSBjbGVhbnVw IHRoZQ0KKwkgKiBvd25lciBkaWVkIGJpdCwgYmVjYXVzZSB3ZSBhcmUgdGhlIG93bmVyLg0KIAkg Ki8NCi0JaWYgKCEodXZhbCAmIEZVVEVYX09XTkVSX0RJRUQpKSB7DQotCQlpbnQgcmV0ID0gMDsN CisJbmV3dmFsID0gRlVURVhfV0FJVEVSUyB8IHRhc2tfcGlkX3ZucihuZXdfb3duZXIpOw0KIA0K LQkJbmV3dmFsID0gRlVURVhfV0FJVEVSUyB8IHRhc2tfcGlkX3ZucihuZXdfb3duZXIpOw0KLQ0K LQkJaWYgKGNtcHhjaGdfZnV0ZXhfdmFsdWVfbG9ja2VkKCZjdXJ2YWwsIHVhZGRyLCB1dmFsLCBu ZXd2YWwpKQ0KLQkJCXJldCA9IC1FRkFVTFQ7DQotCQllbHNlIGlmIChjdXJ2YWwgIT0gdXZhbCkN Ci0JCQlyZXQgPSAtRUlOVkFMOw0KLQkJaWYgKHJldCkgew0KLQkJCXJhd19zcGluX3VubG9jaygm cGlfc3RhdGUtPnBpX211dGV4LndhaXRfbG9jayk7DQotCQkJcmV0dXJuIHJldDsNCi0JCX0NCisJ aWYgKGNtcHhjaGdfZnV0ZXhfdmFsdWVfbG9ja2VkKCZjdXJ2YWwsIHVhZGRyLCB1dmFsLCBuZXd2 YWwpKQ0KKwkJcmV0ID0gLUVGQVVMVDsNCisJZWxzZSBpZiAoY3VydmFsICE9IHV2YWwpDQorCQly ZXQgPSAtRUlOVkFMOw0KKwlpZiAocmV0KSB7DQorCQlyYXdfc3Bpbl91bmxvY2soJnBpX3N0YXRl LT5waV9tdXRleC53YWl0X2xvY2spOw0KKwkJcmV0dXJuIHJldDsNCiAJfQ0KIA0KIAlyYXdfc3Bp bl9sb2NrX2lycSgmcGlfc3RhdGUtPm93bmVyLT5waV9sb2NrKTsNCkBAIC0xMTkzLDcgKzEyOTIs NyBAQCB2b2lkIHJlcXVldWVfcGlfd2FrZV9mdXRleChzdHJ1Y3QgZnV0ZXhfcSAqcSwgdW5pb24g ZnV0ZXhfa2V5ICprZXksDQogICoNCiAgKiBSZXR1cm5zOg0KICAqICAwIC0gZmFpbGVkIHRvIGFj cXVpcmUgdGhlIGxvY2sgYXRvbWljbHkNCi0gKiAgMSAtIGFjcXVpcmVkIHRoZSBsb2NrDQorICog PjAgLSBhY3F1aXJlZCB0aGUgbG9jaywgcmV0dXJuIHZhbHVlIGlzIHZwaWQgb2YgdGhlIHRvcF93 YWl0ZXINCiAgKiA8MCAtIGVycm9yDQogICovDQogc3RhdGljIGludCBmdXRleF9wcm94eV90cnls b2NrX2F0b21pYyh1MzIgX191c2VyICpwaWZ1dGV4LA0KQEAgLTEyMDQsNyArMTMwMyw3IEBAIHN0 YXRpYyBpbnQgZnV0ZXhfcHJveHlfdHJ5bG9ja19hdG9taWModTMyIF9fdXNlciAqcGlmdXRleCwN CiB7DQogCXN0cnVjdCBmdXRleF9xICp0b3Bfd2FpdGVyID0gTlVMTDsNCiAJdTMyIGN1cnZhbDsN Ci0JaW50IHJldDsNCisJaW50IHJldCwgdnBpZDsNCiANCiAJaWYgKGdldF9mdXRleF92YWx1ZV9s b2NrZWQoJmN1cnZhbCwgcGlmdXRleCkpDQogCQlyZXR1cm4gLUVGQVVMVDsNCkBAIC0xMjMyLDEx ICsxMzMxLDEzIEBAIHN0YXRpYyBpbnQgZnV0ZXhfcHJveHlfdHJ5bG9ja19hdG9taWModTMyIF9f dXNlciAqcGlmdXRleCwNCiAJICogdGhlIGNvbnRlbmRlZCBjYXNlIG9yIGlmIHNldF93YWl0ZXJz IGlzIDEuICBUaGUgcGlfc3RhdGUgaXMgcmV0dXJuZWQNCiAJICogaW4gcHMgaW4gY29udGVuZGVk IGNhc2VzLg0KIAkgKi8NCisJdnBpZCA9IHRhc2tfcGlkX3Zucih0b3Bfd2FpdGVyLT50YXNrKTsN CiAJcmV0ID0gZnV0ZXhfbG9ja19waV9hdG9taWMocGlmdXRleCwgaGIyLCBrZXkyLCBwcywgdG9w X3dhaXRlci0+dGFzaywNCiAJCQkJICAgc2V0X3dhaXRlcnMpOw0KLQlpZiAocmV0ID09IDEpDQor CWlmIChyZXQgPT0gMSkgew0KIAkJcmVxdWV1ZV9waV93YWtlX2Z1dGV4KHRvcF93YWl0ZXIsIGtl eTIsIGhiMik7DQotDQorCQlyZXR1cm4gdnBpZDsNCisJfQ0KIAlyZXR1cm4gcmV0Ow0KIH0NCiAN CkBAIC0xMjY4LDEwICsxMzY5LDE2IEBAIHN0YXRpYyBpbnQgZnV0ZXhfcmVxdWV1ZSh1MzIgX191 c2VyICp1YWRkcjEsIHVuc2lnbmVkIGludCBmbGFncywNCiAJc3RydWN0IGZ1dGV4X2hhc2hfYnVj a2V0ICpoYjEsICpoYjI7DQogCXN0cnVjdCBwbGlzdF9oZWFkICpoZWFkMTsNCiAJc3RydWN0IGZ1 dGV4X3EgKnRoaXMsICpuZXh0Ow0KLQl1MzIgY3VydmFsMjsNCiANCiAJaWYgKHJlcXVldWVfcGkp IHsNCiAJCS8qDQorCQkgKiBSZXF1ZXVlIFBJIG9ubHkgd29ya3Mgb24gdHdvIGRpc3RpbmN0IHVh ZGRycy4gVGhpcw0KKwkJICogY2hlY2sgaXMgb25seSB2YWxpZCBmb3IgcHJpdmF0ZSBmdXRleGVz LiBTZWUgYmVsb3cuDQorCQkgKi8NCisJCWlmICh1YWRkcjEgPT0gdWFkZHIyKQ0KKwkJCXJldHVy biAtRUlOVkFMOw0KKw0KKwkJLyoNCiAJCSAqIHJlcXVldWVfcGkgcmVxdWlyZXMgYSBwaV9zdGF0 ZSwgdHJ5IHRvIGFsbG9jYXRlIGl0IG5vdw0KIAkJICogd2l0aG91dCBhbnkgbG9ja3MgaW4gY2Fz ZSBpdCBmYWlscy4NCiAJCSAqLw0KQEAgLTEzMDksNiArMTQxNiwxNSBAQCByZXRyeToNCiAJaWYg KHVubGlrZWx5KHJldCAhPSAwKSkNCiAJCWdvdG8gb3V0X3B1dF9rZXkxOw0KIA0KKwkvKg0KKwkg KiBUaGUgY2hlY2sgYWJvdmUgd2hpY2ggY29tcGFyZXMgdWFkZHJzIGlzIG5vdCBzdWZmaWNpZW50 IGZvcg0KKwkgKiBzaGFyZWQgZnV0ZXhlcy4gV2UgbmVlZCB0byBjb21wYXJlIHRoZSBrZXlzOg0K KwkgKi8NCisJaWYgKHJlcXVldWVfcGkgJiYgbWF0Y2hfZnV0ZXgoJmtleTEsICZrZXkyKSkgew0K KwkJcmV0ID0gLUVJTlZBTDsNCisJCWdvdG8gb3V0X3B1dF9rZXlzOw0KKwl9DQorDQogCWhiMSA9 IGhhc2hfZnV0ZXgoJmtleTEpOw0KIAloYjIgPSBoYXNoX2Z1dGV4KCZrZXkyKTsNCiANCkBAIC0x MzU0LDE2ICsxNDcwLDI1IEBAIHJldHJ5X3ByaXZhdGU6DQogCQkgKiBBdCB0aGlzIHBvaW50IHRo ZSB0b3Bfd2FpdGVyIGhhcyBlaXRoZXIgdGFrZW4gdWFkZHIyIG9yIGlzDQogCQkgKiB3YWl0aW5n IG9uIGl0LiAgSWYgdGhlIGZvcm1lciwgdGhlbiB0aGUgcGlfc3RhdGUgd2lsbCBub3QNCiAJCSAq IGV4aXN0IHlldCwgbG9vayBpdCB1cCBvbmUgbW9yZSB0aW1lIHRvIGVuc3VyZSB3ZSBoYXZlIGEN Ci0JCSAqIHJlZmVyZW5jZSB0byBpdC4NCisJCSAqIHJlZmVyZW5jZSB0byBpdC4gSWYgdGhlIGxv Y2sgd2FzIHRha2VuLCByZXQgY29udGFpbnMgdGhlDQorCQkgKiB2cGlkIG9mIHRoZSB0b3Agd2Fp dGVyIHRhc2suDQogCQkgKi8NCi0JCWlmIChyZXQgPT0gMSkgew0KKwkJaWYgKHJldCA+IDApIHsN CiAJCQlXQVJOX09OKHBpX3N0YXRlKTsNCiAJCQlkcm9wX2NvdW50Kys7DQogCQkJdGFza19jb3Vu dCsrOw0KLQkJCXJldCA9IGdldF9mdXRleF92YWx1ZV9sb2NrZWQoJmN1cnZhbDIsIHVhZGRyMik7 DQotCQkJaWYgKCFyZXQpDQotCQkJCXJldCA9IGxvb2t1cF9waV9zdGF0ZShjdXJ2YWwyLCBoYjIs ICZrZXkyLA0KLQkJCQkJCSAgICAgICZwaV9zdGF0ZSk7DQorCQkJLyoNCisJCQkgKiBJZiB3ZSBh Y3F1aXJlZCB0aGUgbG9jaywgdGhlbiB0aGUgdXNlcg0KKwkJCSAqIHNwYWNlIHZhbHVlIG9mIHVh ZGRyMiBzaG91bGQgYmUgdnBpZC4gSXQNCisJCQkgKiBjYW5ub3QgYmUgY2hhbmdlZCBieSB0aGUg dG9wIHdhaXRlciBhcyBpdA0KKwkJCSAqIGlzIGJsb2NrZWQgb24gaGIyIGxvY2sgaWYgaXQgdHJp ZXMgdG8gZG8NCisJCQkgKiBzby4gSWYgc29tZXRoaW5nIGZpZGRsZWQgd2l0aCBpdCBiZWhpbmQg b3VyDQorCQkJICogYmFjayB0aGUgcGkgc3RhdGUgbG9va3VwIG1pZ2h0IHVuZWFydGgNCisJCQkg KiBpdC4gU28gd2UgcmF0aGVyIHVzZSB0aGUga25vd24gdmFsdWUgdGhhbg0KKwkJCSAqIHJlcmVh ZGluZyBhbmQgaGFuZGluZyBwb3RlbnRpYWwgY3JhcCB0bw0KKwkJCSAqIGxvb2t1cF9waV9zdGF0 ZS4NCisJCQkgKi8NCisJCQlyZXQgPSBsb29rdXBfcGlfc3RhdGUocmV0LCBoYjIsICZrZXkyLCAm cGlfc3RhdGUpOw0KIAkJfQ0KIA0KIAkJc3dpdGNoIChyZXQpIHsNCkBAIC0yMTMzLDkgKzIyNTgs MTAgQEAgcmV0cnk6DQogCS8qDQogCSAqIFRvIGF2b2lkIHJhY2VzLCB0cnkgdG8gZG8gdGhlIFRJ RCAtPiAwIGF0b21pYyB0cmFuc2l0aW9uDQogCSAqIGFnYWluLiBJZiBpdCBzdWNjZWVkcyB0aGVu IHdlIGNhbiByZXR1cm4gd2l0aG91dCB3YWtpbmcNCi0JICogYW55b25lIGVsc2UgdXA6DQorCSAq IGFueW9uZSBlbHNlIHVwLiBXZSBvbmx5IHRyeSB0aGlzIGlmIG5laXRoZXIgdGhlIHdhaXRlcnMg bm9yDQorCSAqIHRoZSBvd25lciBkaWVkIGJpdCBhcmUgc2V0Lg0KIAkgKi8NCi0JaWYgKCEodXZh bCAmIEZVVEVYX09XTkVSX0RJRUQpICYmDQorCWlmICghKHV2YWwgJiB+RlVURVhfVElEX01BU0sp ICYmDQogCSAgICBjbXB4Y2hnX2Z1dGV4X3ZhbHVlX2xvY2tlZCgmdXZhbCwgdWFkZHIsIHZwaWQs IDApKQ0KIAkJZ290byBwaV9mYXVsdGVkOw0KIAkvKg0KQEAgLTIxNjcsMTEgKzIyOTMsOSBAQCBy ZXRyeToNCiAJLyoNCiAJICogTm8gd2FpdGVycyAtIGtlcm5lbCB1bmxvY2tzIHRoZSBmdXRleDoN CiAJICovDQotCWlmICghKHV2YWwgJiBGVVRFWF9PV05FUl9ESUVEKSkgew0KLQkJcmV0ID0gdW5s b2NrX2Z1dGV4X3BpKHVhZGRyLCB1dmFsKTsNCi0JCWlmIChyZXQgPT0gLUVGQVVMVCkNCi0JCQln b3RvIHBpX2ZhdWx0ZWQ7DQotCX0NCisJcmV0ID0gdW5sb2NrX2Z1dGV4X3BpKHVhZGRyLCB1dmFs KTsNCisJaWYgKHJldCA9PSAtRUZBVUxUKQ0KKwkJZ290byBwaV9mYXVsdGVkOw0KIA0KIG91dF91 bmxvY2s6DQogCXNwaW5fdW5sb2NrKCZoYi0+bG9jayk7DQpAQCAtMjMzMSw2ICsyNDU1LDE1IEBA IHN0YXRpYyBpbnQgZnV0ZXhfd2FpdF9yZXF1ZXVlX3BpKHUzMiBfX3VzZXIgKnVhZGRyLCB1bnNp Z25lZCBpbnQgZmxhZ3MsDQogCWlmIChyZXQpDQogCQlnb3RvIG91dF9rZXkyOw0KIA0KKwkvKg0K KwkgKiBUaGUgY2hlY2sgYWJvdmUgd2hpY2ggY29tcGFyZXMgdWFkZHJzIGlzIG5vdCBzdWZmaWNp ZW50IGZvcg0KKwkgKiBzaGFyZWQgZnV0ZXhlcy4gV2UgbmVlZCB0byBjb21wYXJlIHRoZSBrZXlz Og0KKwkgKi8NCisJaWYgKG1hdGNoX2Z1dGV4KCZxLmtleSwgJmtleTIpKSB7DQorCQlyZXQgPSAt RUlOVkFMOw0KKwkJZ290byBvdXRfcHV0X2tleXM7DQorCX0NCisNCiAJLyogUXVldWUgdGhlIGZ1 dGV4X3EsIGRyb3AgdGhlIGhiIGxvY2ssIHdhaXQgZm9yIHdha2V1cC4gKi8NCiAJZnV0ZXhfd2Fp dF9xdWV1ZV9tZShoYiwgJnEsIHRvKTsNCiANCmRpZmYgLS1naXQgYS9rZXJuZWwvaHJ0aW1lci5j IGIva2VybmVsL2hydGltZXIuYw0KaW5kZXggNjBmN2UzMi4uMjBlODhhZiAxMDA2NDQNCi0tLSBh L2tlcm5lbC9ocnRpbWVyLmMNCisrKyBiL2tlcm5lbC9ocnRpbWVyLmMNCkBAIC0yMzIsNiArMjMy LDExIEBAIGFnYWluOg0KIAkJCWdvdG8gYWdhaW47DQogCQl9DQogCQl0aW1lci0+YmFzZSA9IG5l d19iYXNlOw0KKwl9IGVsc2Ugew0KKwkJaWYgKGNwdSAhPSB0aGlzX2NwdSAmJiBocnRpbWVyX2No ZWNrX3RhcmdldCh0aW1lciwgbmV3X2Jhc2UpKSB7DQorCQkJY3B1ID0gdGhpc19jcHU7DQorCQkJ Z290byBhZ2FpbjsNCisJCX0NCiAJfQ0KIAlyZXR1cm4gbmV3X2Jhc2U7DQogfQ0KQEAgLTU2Nyw2 ICs1NzIsMjMgQEAgaHJ0aW1lcl9mb3JjZV9yZXByb2dyYW0oc3RydWN0IGhydGltZXJfY3B1X2Jh c2UgKmNwdV9iYXNlLCBpbnQgc2tpcF9lcXVhbCkNCiANCiAJY3B1X2Jhc2UtPmV4cGlyZXNfbmV4 dC50djY0ID0gZXhwaXJlc19uZXh0LnR2NjQ7DQogDQorCS8qDQorCSAqIElmIGEgaGFuZyB3YXMg ZGV0ZWN0ZWQgaW4gdGhlIGxhc3QgdGltZXIgaW50ZXJydXB0IHRoZW4gd2UNCisJICogbGVhdmUg dGhlIGhhbmcgZGVsYXkgYWN0aXZlIGluIHRoZSBoYXJkd2FyZS4gV2Ugd2FudCB0aGUNCisJICog c3lzdGVtIHRvIG1ha2UgcHJvZ3Jlc3MuIFRoYXQgYWxzbyBwcmV2ZW50cyB0aGUgZm9sbG93aW5n DQorCSAqIHNjZW5hcmlvOg0KKwkgKiBUMSBleHBpcmVzIDUwbXMgZnJvbSBub3cNCisJICogVDIg ZXhwaXJlcyA1cyBmcm9tIG5vdw0KKwkgKg0KKwkgKiBUMSBpcyByZW1vdmVkLCBzbyB0aGlzIGNv ZGUgaXMgY2FsbGVkIGFuZCB3b3VsZCByZXByb2dyYW0NCisJICogdGhlIGhhcmR3YXJlIHRvIDVz IGZyb20gbm93LiBBbnkgaHJ0aW1lcl9zdGFydCBhZnRlciB0aGF0DQorCSAqIHdpbGwgbm90IHJl cHJvZ3JhbSB0aGUgaGFyZHdhcmUgZHVlIHRvIGhhbmdfZGV0ZWN0ZWQgYmVpbmcNCisJICogc2V0 LiBTbyB3ZSdkIGVmZmVjdGl2bHkgYmxvY2sgYWxsIHRpbWVycyB1bnRpbCB0aGUgVDIgZXZlbnQN CisJICogZmlyZXMuDQorCSAqLw0KKwlpZiAoY3B1X2Jhc2UtPmhhbmdfZGV0ZWN0ZWQpDQorCQly ZXR1cm47DQorDQogCWlmIChjcHVfYmFzZS0+ZXhwaXJlc19uZXh0LnR2NjQgIT0gS1RJTUVfTUFY KQ0KIAkJdGlja19wcm9ncmFtX2V2ZW50KGNwdV9iYXNlLT5leHBpcmVzX25leHQsIDEpOw0KIH0N CkBAIC05NTgsMTEgKzk4MCw4IEBAIGludCBfX2hydGltZXJfc3RhcnRfcmFuZ2VfbnMoc3RydWN0 IGhydGltZXIgKnRpbWVyLCBrdGltZV90IHRpbSwNCiAJLyogUmVtb3ZlIGFuIGFjdGl2ZSB0aW1l ciBmcm9tIHRoZSBxdWV1ZTogKi8NCiAJcmV0ID0gcmVtb3ZlX2hydGltZXIodGltZXIsIGJhc2Up Ow0KIA0KLQkvKiBTd2l0Y2ggdGhlIHRpbWVyIGJhc2UsIGlmIG5lY2Vzc2FyeTogKi8NCi0JbmV3 X2Jhc2UgPSBzd2l0Y2hfaHJ0aW1lcl9iYXNlKHRpbWVyLCBiYXNlLCBtb2RlICYgSFJUSU1FUl9N T0RFX1BJTk5FRCk7DQotDQogCWlmIChtb2RlICYgSFJUSU1FUl9NT0RFX1JFTCkgew0KLQkJdGlt ID0ga3RpbWVfYWRkX3NhZmUodGltLCBuZXdfYmFzZS0+Z2V0X3RpbWUoKSk7DQorCQl0aW0gPSBr dGltZV9hZGRfc2FmZSh0aW0sIGJhc2UtPmdldF90aW1lKCkpOw0KIAkJLyoNCiAJCSAqIENPTkZJ R19USU1FX0xPV19SRVMgaXMgYSB0ZW1wb3Jhcnkgd2F5IGZvciBhcmNoaXRlY3R1cmVzDQogCQkg KiB0byBzaWduYWwgdGhhdCB0aGV5IHNpbXBseSByZXR1cm4geHRpbWUgaW4NCkBAIC05NzcsNiAr OTk2LDkgQEAgaW50IF9faHJ0aW1lcl9zdGFydF9yYW5nZV9ucyhzdHJ1Y3QgaHJ0aW1lciAqdGlt ZXIsIGt0aW1lX3QgdGltLA0KIA0KIAlocnRpbWVyX3NldF9leHBpcmVzX3JhbmdlX25zKHRpbWVy LCB0aW0sIGRlbHRhX25zKTsNCiANCisJLyogU3dpdGNoIHRoZSB0aW1lciBiYXNlLCBpZiBuZWNl c3Nhcnk6ICovDQorCW5ld19iYXNlID0gc3dpdGNoX2hydGltZXJfYmFzZSh0aW1lciwgYmFzZSwg bW9kZSAmIEhSVElNRVJfTU9ERV9QSU5ORUQpOw0KKw0KIAl0aW1lcl9zdGF0c19ocnRpbWVyX3Nl dF9zdGFydF9pbmZvKHRpbWVyKTsNCiANCiAJbGVmdG1vc3QgPSBlbnF1ZXVlX2hydGltZXIodGlt ZXIsIG5ld19iYXNlKTsNCmRpZmYgLS1naXQgYS9rZXJuZWwvbW9kdWxlLmMgYi9rZXJuZWwvbW9k dWxlLmMNCmluZGV4IDY1MzYyZDkuLjk1ZWNkOWYgMTAwNjQ0DQotLS0gYS9rZXJuZWwvbW9kdWxl LmMNCisrKyBiL2tlcm5lbC9tb2R1bGUuYw0KQEAgLTI4ODgsNiArMjg4OCw5IEBAIHN0YXRpYyBz dHJ1Y3QgbW9kdWxlICpsb2FkX21vZHVsZSh2b2lkIF9fdXNlciAqdW1vZCwNCiAJLyogVGhpcyBo YXMgdG8gYmUgZG9uZSBvbmNlIHdlJ3JlIHN1cmUgbW9kdWxlIG5hbWUgaXMgdW5pcXVlLiAqLw0K IAlkeW5hbWljX2RlYnVnX3NldHVwKGluZm8uZGVidWcsIGluZm8ubnVtX2RlYnVnKTsNCiANCisJ LyogRnRyYWNlIGluaXQgbXVzdCBiZSBjYWxsZWQgaW4gdGhlIE1PRFVMRV9TVEFURV9VTkZPUk1F RCBzdGF0ZSAqLw0KKwlmdHJhY2VfbW9kdWxlX2luaXQobW9kKTsNCisNCiAJLyogRmluZCBkdXBs aWNhdGUgc3ltYm9scyAqLw0KIAllcnIgPSB2ZXJpZnlfZXhwb3J0X3N5bWJvbHMobW9kKTsNCiAJ aWYgKGVyciA8IDApDQpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX2NwdXByaS5jIGIva2VybmVs L3NjaGVkX2NwdXByaS5jDQppbmRleCBhODZjZjlkLi4xZjRhZmRkIDEwMDY0NA0KLS0tIGEva2Vy bmVsL3NjaGVkX2NwdXByaS5jDQorKysgYi9rZXJuZWwvc2NoZWRfY3B1cHJpLmMNCkBAIC02OCw4 ICs2OCw3IEBAIGludCBjcHVwcmlfZmluZChzdHJ1Y3QgY3B1cHJpICpjcCwgc3RydWN0IHRhc2tf c3RydWN0ICpwLA0KIAlpbnQgICAgICAgICAgICAgICAgICBpZHggICAgICA9IDA7DQogCWludCAg ICAgICAgICAgICAgICAgIHRhc2tfcHJpID0gY29udmVydF9wcmlvKHAtPnByaW8pOw0KIA0KLQlp ZiAodGFza19wcmkgPj0gTUFYX1JUX1BSSU8pDQotCQlyZXR1cm4gMDsNCisJQlVHX09OKHRhc2tf cHJpID49IENQVVBSSV9OUl9QUklPUklUSUVTKTsNCiANCiAJZm9yIChpZHggPSAwOyBpZHggPCB0 YXNrX3ByaTsgaWR4KyspIHsNCiAJCXN0cnVjdCBjcHVwcmlfdmVjICp2ZWMgID0gJmNwLT5wcmlf dG9fY3B1W2lkeF07DQpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWVyLmMgYi9rZXJuZWwvdGltZXIu Yw0KaW5kZXggZjhiMDVhNC4uMzQ5OTUzZSAxMDA2NDQNCi0tLSBhL2tlcm5lbC90aW1lci5jDQor KysgYi9rZXJuZWwvdGltZXIuYw0KQEAgLTc2OSw3ICs3NjksNyBAQCB1bnNpZ25lZCBsb25nIGFw cGx5X3NsYWNrKHN0cnVjdCB0aW1lcl9saXN0ICp0aW1lciwgdW5zaWduZWQgbG9uZyBleHBpcmVz KQ0KIA0KIAliaXQgPSBmaW5kX2xhc3RfYml0KCZtYXNrLCBCSVRTX1BFUl9MT05HKTsNCiANCi0J bWFzayA9ICgxIDw8IGJpdCkgLSAxOw0KKwltYXNrID0gKDFVTCA8PCBiaXQpIC0gMTsNCiANCiAJ ZXhwaXJlc19saW1pdCA9IGV4cGlyZXNfbGltaXQgJiB+KG1hc2spOw0KIA0KZGlmZiAtLWdpdCBh L2tlcm5lbC90cmFjZS9mdHJhY2UuYyBiL2tlcm5lbC90cmFjZS9mdHJhY2UuYw0KaW5kZXggYTY1 ZmEzNi4uZGNiYWZlZCAxMDA2NDQNCi0tLSBhL2tlcm5lbC90cmFjZS9mdHJhY2UuYw0KKysrIGIv a2VybmVsL3RyYWNlL2Z0cmFjZS5jDQpAQCAtMzU0MiwxNiArMzU0MiwxMSBAQCBzdGF0aWMgdm9p ZCBmdHJhY2VfaW5pdF9tb2R1bGUoc3RydWN0IG1vZHVsZSAqbW9kLA0KIAlmdHJhY2VfcHJvY2Vz c19sb2NzKG1vZCwgc3RhcnQsIGVuZCk7DQogfQ0KIA0KLXN0YXRpYyBpbnQgZnRyYWNlX21vZHVs ZV9ub3RpZnlfZW50ZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpzZWxmLA0KLQkJCQkgICAgICB1 bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqZGF0YSkNCit2b2lkIGZ0cmFjZV9tb2R1bGVfaW5pdChz dHJ1Y3QgbW9kdWxlICptb2QpDQogew0KLQlzdHJ1Y3QgbW9kdWxlICptb2QgPSBkYXRhOw0KLQ0K LQlpZiAodmFsID09IE1PRFVMRV9TVEFURV9DT01JTkcpDQotCQlmdHJhY2VfaW5pdF9tb2R1bGUo bW9kLCBtb2QtPmZ0cmFjZV9jYWxsc2l0ZXMsDQotCQkJCSAgIG1vZC0+ZnRyYWNlX2NhbGxzaXRl cyArDQotCQkJCSAgIG1vZC0+bnVtX2Z0cmFjZV9jYWxsc2l0ZXMpOw0KLQlyZXR1cm4gMDsNCisJ ZnRyYWNlX2luaXRfbW9kdWxlKG1vZCwgbW9kLT5mdHJhY2VfY2FsbHNpdGVzLA0KKwkJCSAgIG1v ZC0+ZnRyYWNlX2NhbGxzaXRlcyArDQorCQkJICAgbW9kLT5udW1fZnRyYWNlX2NhbGxzaXRlcyk7 DQogfQ0KIA0KIHN0YXRpYyBpbnQgZnRyYWNlX21vZHVsZV9ub3RpZnlfZXhpdChzdHJ1Y3Qgbm90 aWZpZXJfYmxvY2sgKnNlbGYsDQpAQCAtMzU2NSwxMSArMzU2MCw2IEBAIHN0YXRpYyBpbnQgZnRy YWNlX21vZHVsZV9ub3RpZnlfZXhpdChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnNlbGYsDQogCXJl dHVybiAwOw0KIH0NCiAjZWxzZQ0KLXN0YXRpYyBpbnQgZnRyYWNlX21vZHVsZV9ub3RpZnlfZW50 ZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpzZWxmLA0KLQkJCQkgICAgICB1bnNpZ25lZCBsb25n IHZhbCwgdm9pZCAqZGF0YSkNCi17DQotCXJldHVybiAwOw0KLX0NCiBzdGF0aWMgaW50IGZ0cmFj ZV9tb2R1bGVfbm90aWZ5X2V4aXQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpzZWxmLA0KIAkJCQkg ICAgIHVuc2lnbmVkIGxvbmcgdmFsLCB2b2lkICpkYXRhKQ0KIHsNCkBAIC0zNTc3LDExICszNTY3 LDYgQEAgc3RhdGljIGludCBmdHJhY2VfbW9kdWxlX25vdGlmeV9leGl0KHN0cnVjdCBub3RpZmll cl9ibG9jayAqc2VsZiwNCiB9DQogI2VuZGlmIC8qIENPTkZJR19NT0RVTEVTICovDQogDQotc3Ry dWN0IG5vdGlmaWVyX2Jsb2NrIGZ0cmFjZV9tb2R1bGVfZW50ZXJfbmIgPSB7DQotCS5ub3RpZmll cl9jYWxsID0gZnRyYWNlX21vZHVsZV9ub3RpZnlfZW50ZXIsDQotCS5wcmlvcml0eSA9IElOVF9N QVgsCS8qIFJ1biBiZWZvcmUgYW55dGhpbmcgdGhhdCBjYW4gdXNlIGtwcm9iZXMgKi8NCi19Ow0K LQ0KIHN0cnVjdCBub3RpZmllcl9ibG9jayBmdHJhY2VfbW9kdWxlX2V4aXRfbmIgPSB7DQogCS5u b3RpZmllcl9jYWxsID0gZnRyYWNlX21vZHVsZV9ub3RpZnlfZXhpdCwNCiAJLnByaW9yaXR5ID0g SU5UX01JTiwJLyogUnVuIGFmdGVyIGFueXRoaW5nIHRoYXQgY2FuIHJlbW92ZSBrcHJvYmVzICov DQpAQCAtMzYxOCwxMCArMzYwMyw2IEBAIHZvaWQgX19pbml0IGZ0cmFjZV9pbml0KHZvaWQpDQog CQkJCSAgX19zdGFydF9tY291bnRfbG9jLA0KIAkJCQkgIF9fc3RvcF9tY291bnRfbG9jKTsNCiAN Ci0JcmV0ID0gcmVnaXN0ZXJfbW9kdWxlX25vdGlmaWVyKCZmdHJhY2VfbW9kdWxlX2VudGVyX25i KTsNCi0JaWYgKHJldCkNCi0JCXByX3dhcm5pbmcoIkZhaWxlZCB0byByZWdpc3RlciB0cmFjZSBm dHJhY2UgbW9kdWxlIGVudGVyIG5vdGlmaWVyXG4iKTsNCi0NCiAJcmV0ID0gcmVnaXN0ZXJfbW9k dWxlX25vdGlmaWVyKCZmdHJhY2VfbW9kdWxlX2V4aXRfbmIpOw0KIAlpZiAocmV0KQ0KIAkJcHJf d2FybmluZygiRmFpbGVkIHRvIHJlZ2lzdGVyIHRyYWNlIGZ0cmFjZSBtb2R1bGUgZXhpdCBub3Rp ZmllclxuIik7DQpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlcG9pbnQuYyBiL2tlcm5lbC90cmFj ZXBvaW50LmMNCmluZGV4IDQxYjI1YTAuLjA4OGZiYzUgMTAwNjQ0DQotLS0gYS9rZXJuZWwvdHJh Y2Vwb2ludC5jDQorKysgYi9rZXJuZWwvdHJhY2Vwb2ludC5jDQpAQCAtNjM4LDYgKzYzOCw5IEBA IHN0YXRpYyBpbnQgdHJhY2Vwb2ludF9tb2R1bGVfY29taW5nKHN0cnVjdCBtb2R1bGUgKm1vZCkN CiAJc3RydWN0IHRwX21vZHVsZSAqdHBfbW9kLCAqaXRlcjsNCiAJaW50IHJldCA9IDA7DQogDQor CWlmICghbW9kLT5udW1fdHJhY2Vwb2ludHMpDQorCQlyZXR1cm4gMDsNCisNCiAJLyoNCiAJICog V2Ugc2tpcCBtb2R1bGVzIHRoYXQgdGFpbnQgdGhlIGtlcm5lbCwgZXNwZWNpYWxseSB0aG9zZSB3 aXRoIGRpZmZlcmVudA0KIAkgKiBtb2R1bGUgaGVhZGVycyAoZm9yIGZvcmNlZCBsb2FkKSwgdG8g bWFrZSBzdXJlIHdlIGRvbid0IGNhdXNlIGEgY3Jhc2guDQpAQCAtNjgxLDYgKzY4NCw5IEBAIHN0 YXRpYyBpbnQgdHJhY2Vwb2ludF9tb2R1bGVfZ29pbmcoc3RydWN0IG1vZHVsZSAqbW9kKQ0KIHsN CiAJc3RydWN0IHRwX21vZHVsZSAqcG9zOw0KIA0KKwlpZiAoIW1vZC0+bnVtX3RyYWNlcG9pbnRz KQ0KKwkJcmV0dXJuIDA7DQorDQogCW11dGV4X2xvY2soJnRyYWNlcG9pbnRzX211dGV4KTsNCiAJ dHJhY2Vwb2ludF91cGRhdGVfcHJvYmVfcmFuZ2UobW9kLT50cmFjZXBvaW50c19wdHJzLA0KIAkJ bW9kLT50cmFjZXBvaW50c19wdHJzICsgbW9kLT5udW1fdHJhY2Vwb2ludHMpOw0KZGlmZiAtLWdp dCBhL21tL21lbW9yeS1mYWlsdXJlLmMgYi9tbS9tZW1vcnktZmFpbHVyZS5jDQppbmRleCA5NmM0 YmNmLi41MTkwMWIxIDEwMDY0NA0KLS0tIGEvbW0vbWVtb3J5LWZhaWx1cmUuYw0KKysrIGIvbW0v bWVtb3J5LWZhaWx1cmUuYw0KQEAgLTEwMzMsMTUgKzEwMzMsMTYgQEAgaW50IF9fbWVtb3J5X2Zh aWx1cmUodW5zaWduZWQgbG9uZyBwZm4sIGludCB0cmFwbm8sIGludCBmbGFncykNCiAJCQlyZXR1 cm4gMDsNCiAJCX0gZWxzZSBpZiAoUGFnZUh1Z2UoaHBhZ2UpKSB7DQogCQkJLyoNCi0JCQkgKiBD aGVjayAianVzdCB1bnBvaXNvbmVkIiwgImZpbHRlciBoaXQiLCBhbmQNCi0JCQkgKiAicmFjZSB3 aXRoIG90aGVyIHN1YnBhZ2UuIg0KKwkJCSAqIENoZWNrICJmaWx0ZXIgaGl0IiBhbmQgInJhY2Ug d2l0aCBvdGhlciBzdWJwYWdlLiINCiAJCQkgKi8NCiAJCQlsb2NrX3BhZ2UoaHBhZ2UpOw0KLQkJ CWlmICghUGFnZUhXUG9pc29uKGhwYWdlKQ0KLQkJCSAgICB8fCAoaHdwb2lzb25fZmlsdGVyKHAp ICYmIFRlc3RDbGVhclBhZ2VIV1BvaXNvbihwKSkNCi0JCQkgICAgfHwgKHAgIT0gaHBhZ2UgJiYg VGVzdFNldFBhZ2VIV1BvaXNvbihocGFnZSkpKSB7DQotCQkJCWF0b21pY19sb25nX3N1Yihucl9w YWdlcywgJm1jZV9iYWRfcGFnZXMpOw0KLQkJCQlyZXR1cm4gMDsNCisJCQlpZiAoUGFnZUhXUG9p c29uKGhwYWdlKSkgew0KKwkJCQlpZiAoKGh3cG9pc29uX2ZpbHRlcihwKSAmJiBUZXN0Q2xlYXJQ YWdlSFdQb2lzb24ocCkpDQorCQkJCSAgICB8fCAocCAhPSBocGFnZSAmJiBUZXN0U2V0UGFnZUhX UG9pc29uKGhwYWdlKSkpIHsNCisJCQkJCWF0b21pY19sb25nX3N1Yihucl9wYWdlcywgJm1jZV9i YWRfcGFnZXMpOw0KKwkJCQkJdW5sb2NrX3BhZ2UoaHBhZ2UpOw0KKwkJCQkJcmV0dXJuIDA7DQor CQkJCX0NCiAJCQl9DQogCQkJc2V0X3BhZ2VfaHdwb2lzb25faHVnZV9wYWdlKGhwYWdlKTsNCiAJ CQlyZXMgPSBkZXF1ZXVlX2h3cG9pc29uZWRfaHVnZV9wYWdlKGhwYWdlKTsNCkBAIC0xMDkzLDYg KzEwOTQsOCBAQCBpbnQgX19tZW1vcnlfZmFpbHVyZSh1bnNpZ25lZCBsb25nIHBmbiwgaW50IHRy YXBubywgaW50IGZsYWdzKQ0KIAkgKi8NCiAJaWYgKCFQYWdlSFdQb2lzb24ocCkpIHsNCiAJCXBy aW50ayhLRVJOX0VSUiAiTUNFICUjbHg6IGp1c3QgdW5wb2lzb25lZFxuIiwgcGZuKTsNCisJCWF0 b21pY19sb25nX3N1Yihucl9wYWdlcywgJm1jZV9iYWRfcGFnZXMpOw0KKwkJcHV0X3BhZ2UoaHBh Z2UpOw0KIAkJcmVzID0gMDsNCiAJCWdvdG8gb3V0Ow0KIAl9DQpkaWZmIC0tZ2l0IGEvbW0vcGFn ZS13cml0ZWJhY2suYyBiL21tL3BhZ2Utd3JpdGViYWNrLmMNCmluZGV4IGI1Y2Q3OTYuLmQyYWMw NTcgMTAwNjQ0DQotLS0gYS9tbS9wYWdlLXdyaXRlYmFjay5jDQorKysgYi9tbS9wYWdlLXdyaXRl YmFjay5jDQpAQCAtNTU5LDcgKzU1OSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGJkaV9wb3Np dGlvbl9yYXRpbyhzdHJ1Y3QgYmFja2luZ19kZXZfaW5mbyAqYmRpLA0KIAkgKiAgICAgPT4gZmFz dCByZXNwb25zZSBvbiBsYXJnZSBlcnJvcnM7IHNtYWxsIG9zY2lsbGF0aW9uIG5lYXIgc2V0cG9p bnQNCiAJICovDQogCXNldHBvaW50ID0gKGZyZWVydW4gKyBsaW1pdCkgLyAyOw0KLQl4ID0gZGl2 X3M2NCgoc2V0cG9pbnQgLSBkaXJ0eSkgPDwgUkFURUxJTUlUX0NBTENfU0hJRlQsDQorCXggPSBk aXY2NF9zNjQoKChzNjQpc2V0cG9pbnQgLSAoczY0KWRpcnR5KSA8PCBSQVRFTElNSVRfQ0FMQ19T SElGVCwNCiAJCSAgICBsaW1pdCAtIHNldHBvaW50ICsgMSk7DQogCXBvc19yYXRpbyA9IHg7DQog CXBvc19yYXRpbyA9IHBvc19yYXRpbyAqIHggPj4gUkFURUxJTUlUX0NBTENfU0hJRlQ7DQpAQCAt NjI1LDcgKzYyNSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGJkaV9wb3NpdGlvbl9yYXRpbyhz dHJ1Y3QgYmFja2luZ19kZXZfaW5mbyAqYmRpLA0KIAl4X2ludGVyY2VwdCA9IGJkaV9zZXRwb2lu dCArIHNwYW47DQogDQogCWlmIChiZGlfZGlydHkgPCB4X2ludGVyY2VwdCAtIHNwYW4gLyA0KSB7 DQotCQlwb3NfcmF0aW8gPSBkaXZfdTY0KHBvc19yYXRpbyAqICh4X2ludGVyY2VwdCAtIGJkaV9k aXJ0eSksDQorCQlwb3NfcmF0aW8gPSBkaXY2NF91NjQocG9zX3JhdGlvICogKHhfaW50ZXJjZXB0 IC0gYmRpX2RpcnR5KSwNCiAJCQkJICAgIHhfaW50ZXJjZXB0IC0gYmRpX3NldHBvaW50ICsgMSk7 DQogCX0gZWxzZQ0KIAkJcG9zX3JhdGlvIC89IDQ7DQpkaWZmIC0tZ2l0IGEvbmV0L2JsdWV0b290 aC9oY2lfY29ubi5jIGIvbmV0L2JsdWV0b290aC9oY2lfY29ubi5jDQppbmRleCBhYTEyNjQ5Li40 ZDk5ZDQyIDEwMDY0NA0KLS0tIGEvbmV0L2JsdWV0b290aC9oY2lfY29ubi5jDQorKysgYi9uZXQv Ymx1ZXRvb3RoL2hjaV9jb25uLmMNCkBAIC02MTAsMTQgKzYxMCwxNyBAQCBzdGF0aWMgaW50IGhj aV9jb25uX2F1dGgoc3RydWN0IGhjaV9jb25uICpjb25uLCBfX3U4IHNlY19sZXZlbCwgX191OCBh dXRoX3R5cGUpDQogCWlmICghdGVzdF9hbmRfc2V0X2JpdChIQ0lfQ09OTl9BVVRIX1BFTkQsICZj b25uLT5wZW5kKSkgew0KIAkJc3RydWN0IGhjaV9jcF9hdXRoX3JlcXVlc3RlZCBjcDsNCiANCi0J CS8qIGVuY3J5cHQgbXVzdCBiZSBwZW5kaW5nIGlmIGF1dGggaXMgYWxzbyBwZW5kaW5nICovDQot CQlzZXRfYml0KEhDSV9DT05OX0VOQ1JZUFRfUEVORCwgJmNvbm4tPnBlbmQpOw0KLQ0KIAkJY3Au aGFuZGxlID0gY3B1X3RvX2xlMTYoY29ubi0+aGFuZGxlKTsNCiAJCWhjaV9zZW5kX2NtZChjb25u LT5oZGV2LCBIQ0lfT1BfQVVUSF9SRVFVRVNURUQsDQogCQkJCQkJCXNpemVvZihjcCksICZjcCk7 DQorDQorCQkvKiBJZiB3ZSdyZSBhbHJlYWR5IGVuY3J5cHRlZCBzZXQgdGhlIFJFQVVUSF9QRU5E IGZsYWcsDQorCQkgKiBvdGhlcndpc2Ugc2V0IHRoZSBFTkNSWVBUX1BFTkQuDQorCQkgKi8NCiAJ CWlmIChjb25uLT5rZXlfdHlwZSAhPSAweGZmKQ0KIAkJCXNldF9iaXQoSENJX0NPTk5fUkVBVVRI X1BFTkQsICZjb25uLT5wZW5kKTsNCisJCWVsc2UNCisJCQlzZXRfYml0KEhDSV9DT05OX0VOQ1JZ UFRfUEVORCwgJmNvbm4tPnBlbmQpOw0KIAl9DQogDQogCXJldHVybiAwOw0KZGlmZiAtLWdpdCBh L25ldC9icmlkZ2UvYnJfbmV0bGluay5jIGIvbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMNCmluZGV4 IGNiZjljY2QuLjk5YTQ4YTMgMTAwNjQ0DQotLS0gYS9uZXQvYnJpZGdlL2JyX25ldGxpbmsuYw0K KysrIGIvbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMNCkBAIC0yMTEsMTEgKzIxMSwyNiBAQCBzdGF0 aWMgaW50IGJyX3ZhbGlkYXRlKHN0cnVjdCBubGF0dHIgKnRiW10sIHN0cnVjdCBubGF0dHIgKmRh dGFbXSkNCiAJcmV0dXJuIDA7DQogfQ0KIA0KK3N0YXRpYyBpbnQgYnJfZGV2X25ld2xpbmsoc3Ry dWN0IG5ldCAqc3JjX25ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwNCisJCQkgIHN0cnVjdCBu bGF0dHIgKnRiW10sIHN0cnVjdCBubGF0dHIgKmRhdGFbXSkNCit7DQorCXN0cnVjdCBuZXRfYnJp ZGdlICpiciA9IG5ldGRldl9wcml2KGRldik7DQorDQorCWlmICh0YltJRkxBX0FERFJFU1NdKSB7 DQorCQlzcGluX2xvY2tfYmgoJmJyLT5sb2NrKTsNCisJCWJyX3N0cF9jaGFuZ2VfYnJpZGdlX2lk KGJyLCBubGFfZGF0YSh0YltJRkxBX0FERFJFU1NdKSk7DQorCQlzcGluX3VubG9ja19iaCgmYnIt PmxvY2spOw0KKwl9DQorDQorCXJldHVybiByZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTsNCit9DQor DQogc3RydWN0IHJ0bmxfbGlua19vcHMgYnJfbGlua19vcHMgX19yZWFkX21vc3RseSA9IHsNCiAJ LmtpbmQJCT0gImJyaWRnZSIsDQogCS5wcml2X3NpemUJPSBzaXplb2Yoc3RydWN0IG5ldF9icmlk Z2UpLA0KIAkuc2V0dXAJCT0gYnJfZGV2X3NldHVwLA0KIAkudmFsaWRhdGUJPSBicl92YWxpZGF0 ZSwNCisJLm5ld2xpbmsJPSBicl9kZXZfbmV3bGluaywNCiAJLmRlbGxpbmsJPSBicl9kZXZfZGVs ZXRlLA0KIH07DQogDQpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMu YyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMNCmluZGV4IDU4NjRjYzQuLjQ1Zjkz ZjggMTAwNjQ0DQotLS0gYS9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jDQorKysgYi9u ZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jDQpAQCAtMTA0NCwxMCArMTA0NCw5IEBAIHN0 YXRpYyBpbnQgZG9fcmVwbGFjZV9maW5pc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZWJ0X3Jl cGxhY2UgKnJlcGwsDQogCWlmIChyZXBsLT5udW1fY291bnRlcnMgJiYNCiAJICAgY29weV90b191 c2VyKHJlcGwtPmNvdW50ZXJzLCBjb3VudGVyc3RtcCwNCiAJICAgcmVwbC0+bnVtX2NvdW50ZXJz ICogc2l6ZW9mKHN0cnVjdCBlYnRfY291bnRlcikpKSB7DQotCQlyZXQgPSAtRUZBVUxUOw0KKwkJ LyogU2lsZW50IGVycm9yLCBjYW4ndCBmYWlsLCBuZXcgdGFibGUgaXMgYWxyZWFkeSBpbiBwbGFj ZSAqLw0KKwkJbmV0X3dhcm5fcmF0ZWxpbWl0ZWQoImVidGFibGVzOiBjb3VudGVycyBjb3B5IHRv IHVzZXIgZmFpbGVkIHdoaWxlIHJlcGxhY2luZyB0YWJsZVxuIik7DQogCX0NCi0JZWxzZQ0KLQkJ cmV0ID0gMDsNCiANCiAJLyogZGVjcmVhc2UgbW9kdWxlIGNvdW50IGFuZCBmcmVlIHJlc291cmNl cyAqLw0KIAlFQlRfRU5UUllfSVRFUkFURSh0YWJsZS0+ZW50cmllcywgdGFibGUtPmVudHJpZXNf c2l6ZSwNCmRpZmYgLS1naXQgYS9uZXQvY2VwaC9tZXNzZW5nZXIuYyBiL25ldC9jZXBoL21lc3Nl bmdlci5jDQppbmRleCBhZDViNzA4Li4yMGJhMmQ1IDEwMDY0NA0KLS0tIGEvbmV0L2NlcGgvbWVz c2VuZ2VyLmMNCisrKyBiL25ldC9jZXBoL21lc3Nlbmdlci5jDQpAQCAtMjg0LDYgKzI4NCwzNyBA QCBzdGF0aWMgaW50IGNlcGhfdGNwX3NlbmRtc2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0 IGt2ZWMgKmlvdiwNCiAJcmV0dXJuIHI7DQogfQ0KIA0KK3N0YXRpYyBpbnQgX19jZXBoX3RjcF9z ZW5kcGFnZShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgcGFnZSAqcGFnZSwNCisJCSAgICAg aW50IG9mZnNldCwgc2l6ZV90IHNpemUsIGJvb2wgbW9yZSkNCit7DQorCWludCBmbGFncyA9IE1T R19ET05UV0FJVCB8IE1TR19OT1NJR05BTCB8IChtb3JlID8gTVNHX01PUkUgOiBNU0dfRU9SKTsN CisJaW50IHJldDsNCisNCisJcmV0ID0ga2VybmVsX3NlbmRwYWdlKHNvY2ssIHBhZ2UsIG9mZnNl dCwgc2l6ZSwgZmxhZ3MpOw0KKwlpZiAocmV0ID09IC1FQUdBSU4pDQorCQlyZXQgPSAwOw0KKw0K KwlyZXR1cm4gcmV0Ow0KK30NCisNCitzdGF0aWMgaW50IGNlcGhfdGNwX3NlbmRwYWdlKHN0cnVj dCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBwYWdlICpwYWdlLA0KKwkJICAgICBpbnQgb2Zmc2V0LCBz aXplX3Qgc2l6ZSwgYm9vbCBtb3JlKQ0KK3sNCisJaW50IHJldDsNCisJc3RydWN0IGt2ZWMgaW92 Ow0KKw0KKwkvKiBzZW5kcGFnZSBjYW5ub3QgcHJvcGVybHkgaGFuZGxlIHBhZ2VzIHdpdGggcGFn ZV9jb3VudCA9PSAwLA0KKwkgKiB3ZSBuZWVkIHRvIGZhbGxiYWNrIHRvIHNlbmRtc2cgaWYgdGhh dCdzIHRoZSBjYXNlICovDQorCWlmIChwYWdlX2NvdW50KHBhZ2UpID49IDEpDQorCQlyZXR1cm4g X19jZXBoX3RjcF9zZW5kcGFnZShzb2NrLCBwYWdlLCBvZmZzZXQsIHNpemUsIG1vcmUpOw0KKw0K Kwlpb3YuaW92X2Jhc2UgPSBrbWFwKHBhZ2UpICsgb2Zmc2V0Ow0KKwlpb3YuaW92X2xlbiA9IHNp emU7DQorCXJldCA9IGNlcGhfdGNwX3NlbmRtc2coc29jaywgJmlvdiwgMSwgc2l6ZSwgbW9yZSk7 DQorCWt1bm1hcChwYWdlKTsNCisNCisJcmV0dXJuIHJldDsNCit9DQogDQogLyoNCiAgKiBTaHV0 ZG93bi9jbG9zZSB0aGUgc29ja2V0IGZvciB0aGUgZ2l2ZW4gY29ubmVjdGlvbi4NCkBAIC04NTEs MTggKzg4MiwxNCBAQCBzdGF0aWMgaW50IHdyaXRlX3BhcnRpYWxfbXNnX3BhZ2VzKHN0cnVjdCBj ZXBoX2Nvbm5lY3Rpb24gKmNvbikNCiAJCQkJY3B1X3RvX2xlMzIoY3JjMzJjKHRtcGNyYywgYmFz ZSwgbGVuKSk7DQogCQkJY29uLT5vdXRfbXNnX3Bvcy5kaWRfcGFnZV9jcmMgPSAxOw0KIAkJfQ0K LQkJcmV0ID0ga2VybmVsX3NlbmRwYWdlKGNvbi0+c29jaywgcGFnZSwNCisJCXJldCA9IGNlcGhf dGNwX3NlbmRwYWdlKGNvbi0+c29jaywgcGFnZSwNCiAJCQkJICAgICAgY29uLT5vdXRfbXNnX3Bv cy5wYWdlX3BvcyArIHBhZ2Vfc2hpZnQsDQotCQkJCSAgICAgIGxlbiwNCi0JCQkJICAgICAgTVNH X0RPTlRXQUlUIHwgTVNHX05PU0lHTkFMIHwNCi0JCQkJICAgICAgTVNHX01PUkUpOw0KKwkJCQkg ICAgICBsZW4sIDEpOw0KIA0KIAkJaWYgKGNyYyAmJg0KIAkJICAgIChtc2ctPnBhZ2VzIHx8IG1z Zy0+cGFnZWxpc3QgfHwgbXNnLT5iaW8gfHwgaW5fdHJhaWwpKQ0KIAkJCWt1bm1hcChwYWdlKTsN CiANCi0JCWlmIChyZXQgPT0gLUVBR0FJTikNCi0JCQlyZXQgPSAwOw0KIAkJaWYgKHJldCA8PSAw KQ0KIAkJCWdvdG8gb3V0Ow0KIA0KZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2Nv cmUvZGV2LmMNCmluZGV4IDdiY2YzN2QuLjg1NGRhMTUgMTAwNjQ0DQotLS0gYS9uZXQvY29yZS9k ZXYuYw0KKysrIGIvbmV0L2NvcmUvZGV2LmMNCkBAIC0zNjQ4LDYgKzM2NDgsNyBAQCBzdGF0aWMg dm9pZCBuYXBpX3JldXNlX3NrYihzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIHN0cnVjdCBza19i dWZmICpza2IpDQogCXNrYi0+dmxhbl90Y2kgPSAwOw0KIAlza2ItPmRldiA9IG5hcGktPmRldjsN CiAJc2tiLT5za2JfaWlmID0gMDsNCisJc2tiLT50cnVlc2l6ZSA9IFNLQl9UUlVFU0laRShza2Jf ZW5kX29mZnNldChza2IpKTsNCiANCiAJbmFwaS0+c2tiID0gc2tiOw0KIH0NCmRpZmYgLS1naXQg YS9uZXQvY29yZS9maWx0ZXIuYyBiL25ldC9jb3JlL2ZpbHRlci5jDQppbmRleCA1ZGVhNDUyLi45 Yzg4MDgwIDEwMDY0NA0KLS0tIGEvbmV0L2NvcmUvZmlsdGVyLmMNCisrKyBiL25ldC9jb3JlL2Zp bHRlci5jDQpAQCAtMzIwLDYgKzMyMCw4IEBAIGxvYWRfYjoNCiANCiAJCQlpZiAoc2tiX2lzX25v bmxpbmVhcihza2IpKQ0KIAkJCQlyZXR1cm4gMDsNCisJCQlpZiAoc2tiLT5sZW4gPCBzaXplb2Yo c3RydWN0IG5sYXR0cikpDQorCQkJCXJldHVybiAwOw0KIAkJCWlmIChBID4gc2tiLT5sZW4gLSBz aXplb2Yoc3RydWN0IG5sYXR0cikpDQogCQkJCXJldHVybiAwOw0KIA0KQEAgLTMzNiwxMSArMzM4 LDEzIEBAIGxvYWRfYjoNCiANCiAJCQlpZiAoc2tiX2lzX25vbmxpbmVhcihza2IpKQ0KIAkJCQly ZXR1cm4gMDsNCisJCQlpZiAoc2tiLT5sZW4gPCBzaXplb2Yoc3RydWN0IG5sYXR0cikpDQorCQkJ CXJldHVybiAwOw0KIAkJCWlmIChBID4gc2tiLT5sZW4gLSBzaXplb2Yoc3RydWN0IG5sYXR0cikp DQogCQkJCXJldHVybiAwOw0KIA0KIAkJCW5sYSA9IChzdHJ1Y3QgbmxhdHRyICopJnNrYi0+ZGF0 YVtBXTsNCi0JCQlpZiAobmxhLT5ubGFfbGVuID4gQSAtIHNrYi0+bGVuKQ0KKwkJCWlmIChubGEt Pm5sYV9sZW4gPiBza2ItPmxlbiAtIEEpDQogCQkJCXJldHVybiAwOw0KIA0KIAkJCW5sYSA9IG5s YV9maW5kX25lc3RlZChubGEsIFgpOw0KZGlmZiAtLWdpdCBhL25ldC9jb3JlL3J0bmV0bGluay5j IGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMNCmluZGV4IDViN2Q1ZjIuLjdiZWFmMTAgMTAwNjQ0DQot LS0gYS9uZXQvY29yZS9ydG5ldGxpbmsuYw0KKysrIGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMNCkBA IC03NDQsNyArNzQ0LDggQEAgc3RhdGljIGlubGluZSBpbnQgcnRubF92ZmluZm9fc2l6ZShjb25z dCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LA0KIAkJcmV0dXJuIDA7DQogfQ0KIA0KLXN0YXRpYyBz aXplX3QgcnRubF9wb3J0X3NpemUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldikNCitzdGF0 aWMgc2l6ZV90IHJ0bmxfcG9ydF9zaXplKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsDQor CQkJICAgICB1MzIgZXh0X2ZpbHRlcl9tYXNrKQ0KIHsNCiAJc2l6ZV90IHBvcnRfc2l6ZSA9IG5s YV90b3RhbF9zaXplKDQpCQkvKiBQT1JUX1ZGICovDQogCQkrIG5sYV90b3RhbF9zaXplKFBPUlRf UFJPRklMRV9NQVgpCS8qIFBPUlRfUFJPRklMRSAqLw0KQEAgLTc2MCw3ICs3NjEsOCBAQCBzdGF0 aWMgc2l6ZV90IHJ0bmxfcG9ydF9zaXplKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpDQog CXNpemVfdCBwb3J0X3NlbGZfc2l6ZSA9IG5sYV90b3RhbF9zaXplKHNpemVvZihzdHJ1Y3Qgbmxh dHRyKSkNCiAJCSsgcG9ydF9zaXplOw0KIA0KLQlpZiAoIWRldi0+bmV0ZGV2X29wcy0+bmRvX2dl dF92Zl9wb3J0IHx8ICFkZXYtPmRldi5wYXJlbnQpDQorCWlmICghZGV2LT5uZXRkZXZfb3BzLT5u ZG9fZ2V0X3ZmX3BvcnQgfHwgIWRldi0+ZGV2LnBhcmVudCB8fA0KKwkgICAgIShleHRfZmlsdGVy X21hc2sgJiBSVEVYVF9GSUxURVJfVkYpKQ0KIAkJcmV0dXJuIDA7DQogCWlmIChkZXZfbnVtX3Zm KGRldi0+ZGV2LnBhcmVudCkpDQogCQlyZXR1cm4gcG9ydF9zZWxmX3NpemUgKyB2Zl9wb3J0c19z aXplICsNCkBAIC03OTEsNyArNzkzLDcgQEAgc3RhdGljIG5vaW5saW5lIHNpemVfdCBpZl9ubG1z Z19zaXplKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsDQogCSAgICAgICArIG5sYV90b3Rh bF9zaXplKGV4dF9maWx0ZXJfbWFzaw0KIAkJCSAgICAgICAgJiBSVEVYVF9GSUxURVJfVkYgPyA0 IDogMCkgLyogSUZMQV9OVU1fVkYgKi8NCiAJICAgICAgICsgcnRubF92ZmluZm9fc2l6ZShkZXYs IGV4dF9maWx0ZXJfbWFzaykgLyogSUZMQV9WRklORk9fTElTVCAqLw0KLQkgICAgICAgKyBydG5s X3BvcnRfc2l6ZShkZXYpIC8qIElGTEFfVkZfUE9SVFMgKyBJRkxBX1BPUlRfU0VMRiAqLw0KKwkg ICAgICAgKyBydG5sX3BvcnRfc2l6ZShkZXYsIGV4dF9maWx0ZXJfbWFzaykgLyogSUZMQV9WRl9Q T1JUUyArIElGTEFfUE9SVF9TRUxGICovDQogCSAgICAgICArIHJ0bmxfbGlua19nZXRfc2l6ZShk ZXYpIC8qIElGTEFfTElOS0lORk8gKi8NCiAJICAgICAgICsgcnRubF9saW5rX2dldF9hZl9zaXpl KGRldik7IC8qIElGTEFfQUZfU1BFQyAqLw0KIH0NCkBAIC04NTEsMTEgKzg1MywxMyBAQCBzdGF0 aWMgaW50IHJ0bmxfcG9ydF9zZWxmX2ZpbGwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5l dF9kZXZpY2UgKmRldikNCiAJcmV0dXJuIDA7DQogfQ0KIA0KLXN0YXRpYyBpbnQgcnRubF9wb3J0 X2ZpbGwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikNCitzdGF0 aWMgaW50IHJ0bmxfcG9ydF9maWxsKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsDQorCQkJICB1MzIgZXh0X2ZpbHRlcl9tYXNrKQ0KIHsNCiAJaW50IGVycjsNCiAN Ci0JaWYgKCFkZXYtPm5ldGRldl9vcHMtPm5kb19nZXRfdmZfcG9ydCB8fCAhZGV2LT5kZXYucGFy ZW50KQ0KKwlpZiAoIWRldi0+bmV0ZGV2X29wcy0+bmRvX2dldF92Zl9wb3J0IHx8ICFkZXYtPmRl di5wYXJlbnQgfHwNCisJICAgICEoZXh0X2ZpbHRlcl9tYXNrICYgUlRFWFRfRklMVEVSX1ZGKSkN CiAJCXJldHVybiAwOw0KIA0KIAllcnIgPSBydG5sX3BvcnRfc2VsZl9maWxsKHNrYiwgZGV2KTsN CkBAIC0xMDAyLDcgKzEwMDYsNyBAQCBzdGF0aWMgaW50IHJ0bmxfZmlsbF9pZmluZm8oc3RydWN0 IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwNCiAJCW5sYV9uZXN0X2VuZChz a2IsIHZmaW5mbyk7DQogCX0NCiANCi0JaWYgKHJ0bmxfcG9ydF9maWxsKHNrYiwgZGV2KSkNCisJ aWYgKHJ0bmxfcG9ydF9maWxsKHNrYiwgZGV2LCBleHRfZmlsdGVyX21hc2spKQ0KIAkJZ290byBu bGFfcHV0X2ZhaWx1cmU7DQogDQogCWlmIChkZXYtPnJ0bmxfbGlua19vcHMpIHsNCkBAIC0xMDU3 LDYgKzEwNjEsNyBAQCBzdGF0aWMgaW50IHJ0bmxfZHVtcF9pZmluZm8oc3RydWN0IHNrX2J1ZmYg KnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKQ0KIAlzdHJ1Y3QgaGxpc3Rfbm9kZSAq bm9kZTsNCiAJc3RydWN0IG5sYXR0ciAqdGJbSUZMQV9NQVgrMV07DQogCXUzMiBleHRfZmlsdGVy X21hc2sgPSAwOw0KKwlpbnQgZXJyOw0KIA0KIAlzX2ggPSBjYi0+YXJnc1swXTsNCiAJc19pZHgg PSBjYi0+YXJnc1sxXTsNCkBAIC0xMDc3LDExICsxMDgyLDE3IEBAIHN0YXRpYyBpbnQgcnRubF9k dW1wX2lmaW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAq Y2IpDQogCQlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UoZGV2LCBub2RlLCBoZWFkLCBpbmRleF9o bGlzdCkgew0KIAkJCWlmIChpZHggPCBzX2lkeCkNCiAJCQkJZ290byBjb250Ow0KLQkJCWlmIChy dG5sX2ZpbGxfaWZpbmZvKHNrYiwgZGV2LCBSVE1fTkVXTElOSywNCi0JCQkJCSAgICAgTkVUTElO S19DQihjYi0+c2tiKS5waWQsDQotCQkJCQkgICAgIGNiLT5ubGgtPm5sbXNnX3NlcSwgMCwNCi0J CQkJCSAgICAgTkxNX0ZfTVVMVEksDQotCQkJCQkgICAgIGV4dF9maWx0ZXJfbWFzaykgPD0gMCkN CisJCQllcnIgPSBydG5sX2ZpbGxfaWZpbmZvKHNrYiwgZGV2LCBSVE1fTkVXTElOSywNCisJCQkJ CSAgICAgICBORVRMSU5LX0NCKGNiLT5za2IpLnBpZCwNCisJCQkJCSAgICAgICBjYi0+bmxoLT5u bG1zZ19zZXEsIDAsDQorCQkJCQkgICAgICAgTkxNX0ZfTVVMVEksDQorCQkJCQkgICAgICAgZXh0 X2ZpbHRlcl9tYXNrKTsNCisJCQkvKiBJZiB3ZSByYW4gb3V0IG9mIHJvb20gb24gdGhlIGZpcnN0 IG1lc3NhZ2UsDQorCQkJICogd2UncmUgaW4gdHJvdWJsZQ0KKwkJCSAqLw0KKwkJCVdBUk5fT04o KGVyciA9PSAtRU1TR1NJWkUpICYmIChza2ItPmxlbiA9PSAwKSk7DQorDQorCQkJaWYgKGVyciA8 PSAwKQ0KIAkJCQlnb3RvIG91dDsNCiANCiAJCQlubF9kdW1wX2NoZWNrX2NvbnNpc3RlbnQoY2Is IG5sbXNnX2hkcihza2IpKTsNCmRpZmYgLS1naXQgYS9uZXQvY29yZS9za2J1ZmYuYyBiL25ldC9j b3JlL3NrYnVmZi5jDQppbmRleCA4YWM0YTBmLi45MjA0ZDliIDEwMDY0NA0KLS0tIGEvbmV0L2Nv cmUvc2tidWZmLmMNCisrKyBiL25ldC9jb3JlL3NrYnVmZi5jDQpAQCAtNzQzLDcgKzc0Myw3IEBA IHN0YXRpYyB2b2lkIGNvcHlfc2tiX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqbmV3LCBjb25zdCBz dHJ1Y3Qgc2tfYnVmZiAqb2xkKQ0KIHN0cnVjdCBza19idWZmICpza2JfY29weShjb25zdCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBnZnBfdCBnZnBfbWFzaykNCiB7DQogCWludCBoZWFkZXJsZW4gPSBz a2JfaGVhZHJvb20oc2tiKTsNCi0JdW5zaWduZWQgaW50IHNpemUgPSAoc2tiX2VuZF9wb2ludGVy KHNrYikgLSBza2ItPmhlYWQpICsgc2tiLT5kYXRhX2xlbjsNCisJdW5zaWduZWQgaW50IHNpemUg PSBza2JfZW5kX29mZnNldChza2IpICsgc2tiLT5kYXRhX2xlbjsNCiAJc3RydWN0IHNrX2J1ZmYg Km4gPSBhbGxvY19za2Ioc2l6ZSwgZ2ZwX21hc2spOw0KIA0KIAlpZiAoIW4pDQpAQCAtODQzLDcg Kzg0Myw3IEBAIGludCBwc2tiX2V4cGFuZF9oZWFkKHN0cnVjdCBza19idWZmICpza2IsIGludCBu aGVhZCwgaW50IG50YWlsLA0KIHsNCiAJaW50IGk7DQogCXU4ICpkYXRhOw0KLQlpbnQgc2l6ZSA9 IG5oZWFkICsgKHNrYl9lbmRfcG9pbnRlcihza2IpIC0gc2tiLT5oZWFkKSArIG50YWlsOw0KKwlp bnQgc2l6ZSA9IG5oZWFkICsgc2tiX2VuZF9vZmZzZXQoc2tiKSArIG50YWlsOw0KIAlsb25nIG9m ZjsNCiAJYm9vbCBmYXN0cGF0aDsNCiANCkBAIC0yNjQyLDE0ICsyNjQyLDEzIEBAIHN0cnVjdCBz a19idWZmICpza2Jfc2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgZmVhdHVyZXMpDQog CQkJaWYgKHVubGlrZWx5KCFuc2tiKSkNCiAJCQkJZ290byBlcnI7DQogDQotCQkJaHNpemUgPSBz a2JfZW5kX3BvaW50ZXIobnNrYikgLSBuc2tiLT5oZWFkOw0KKwkJCWhzaXplID0gc2tiX2VuZF9v ZmZzZXQobnNrYik7DQogCQkJaWYgKHNrYl9jb3dfaGVhZChuc2tiLCBkb2Zmc2V0ICsgaGVhZHJv b20pKSB7DQogCQkJCWtmcmVlX3NrYihuc2tiKTsNCiAJCQkJZ290byBlcnI7DQogCQkJfQ0KIA0K LQkJCW5za2ItPnRydWVzaXplICs9IHNrYl9lbmRfcG9pbnRlcihuc2tiKSAtIG5za2ItPmhlYWQg LQ0KLQkJCQkJICBoc2l6ZTsNCisJCQluc2tiLT50cnVlc2l6ZSArPSBza2JfZW5kX29mZnNldChu c2tiKSAtIGhzaXplOw0KIAkJCXNrYl9yZWxlYXNlX2hlYWRfc3RhdGUobnNrYik7DQogCQkJX19z a2JfcHVzaChuc2tiLCBkb2Zmc2V0KTsNCiAJCX0gZWxzZSB7DQpAQCAtMzE5NywxMiArMzE5Niwx NCBAQCBFWFBPUlRfU1lNQk9MKF9fc2tiX3dhcm5fbHJvX2ZvcndhcmRpbmcpOw0KIHVuc2lnbmVk IGludCBza2JfZ3NvX3RyYW5zcG9ydF9zZWdsZW4oY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikN CiB7DQogCWNvbnN0IHN0cnVjdCBza2Jfc2hhcmVkX2luZm8gKnNoaW5mbyA9IHNrYl9zaGluZm8o c2tiKTsNCi0JdW5zaWduZWQgaW50IGhkcl9sZW47DQogDQogCWlmIChsaWtlbHkoc2hpbmZvLT5n c29fdHlwZSAmIChTS0JfR1NPX1RDUFY0IHwgU0tCX0dTT19UQ1BWNikpKQ0KLQkJaGRyX2xlbiA9 IHRjcF9oZHJsZW4oc2tiKTsNCi0JZWxzZQ0KLQkJaGRyX2xlbiA9IHNpemVvZihzdHJ1Y3QgdWRw aGRyKTsNCi0JcmV0dXJuIGhkcl9sZW4gKyBzaGluZm8tPmdzb19zaXplOw0KKwkJcmV0dXJuIHRj cF9oZHJsZW4oc2tiKSArIHNoaW5mby0+Z3NvX3NpemU7DQorDQorCS8qIFVGTyBzZXRzIGdzb19z aXplIHRvIHRoZSBzaXplIG9mIHRoZSBmcmFnbWVudGF0aW9uDQorCSAqIHBheWxvYWQsIGkuZS4g dGhlIHNpemUgb2YgdGhlIEw0IChVRFApIGhlYWRlciBpcyBhbHJlYWR5DQorCSAqIGFjY291bnRl ZCBmb3IuDQorCSAqLw0KKwlyZXR1cm4gc2hpbmZvLT5nc29fc2l6ZTsNCiB9DQogRVhQT1JUX1NZ TUJPTF9HUEwoc2tiX2dzb190cmFuc3BvcnRfc2VnbGVuKTsNCmRpZmYgLS1naXQgYS9uZXQvaXB2 NC9maWJfc2VtYW50aWNzLmMgYi9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMNCmluZGV4IGQwMWY5 YzYuLjc2ZGE5NzkgMTAwNjQ0DQotLS0gYS9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMNCisrKyBi L25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYw0KQEAgLTc1MiwxMyArNzUyLDEzIEBAIHN0cnVjdCBm aWJfaW5mbyAqZmliX2NyZWF0ZV9pbmZvKHN0cnVjdCBmaWJfY29uZmlnICpjZmcpDQogCWZpID0g a3phbGxvYyhzaXplb2YoKmZpKStuaHMqc2l6ZW9mKHN0cnVjdCBmaWJfbmgpLCBHRlBfS0VSTkVM KTsNCiAJaWYgKGZpID09IE5VTEwpDQogCQlnb3RvIGZhaWx1cmU7DQorCWZpYl9pbmZvX2NudCsr Ow0KIAlpZiAoY2ZnLT5mY19teCkgew0KIAkJZmktPmZpYl9tZXRyaWNzID0ga3phbGxvYyhzaXpl b2YodTMyKSAqIFJUQVhfTUFYLCBHRlBfS0VSTkVMKTsNCiAJCWlmICghZmktPmZpYl9tZXRyaWNz KQ0KIAkJCWdvdG8gZmFpbHVyZTsNCiAJfSBlbHNlDQogCQlmaS0+ZmliX21ldHJpY3MgPSAodTMy ICopIGRzdF9kZWZhdWx0X21ldHJpY3M7DQotCWZpYl9pbmZvX2NudCsrOw0KIA0KIAlmaS0+Zmli X25ldCA9IGhvbGRfbmV0KG5ldCk7DQogCWZpLT5maWJfcHJvdG9jb2wgPSBjZmctPmZjX3Byb3Rv Y29sOw0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2ZvcndhcmQuYyBiL25ldC9pcHY0L2lwX2Zv cndhcmQuYw0KaW5kZXggZTBkOWYwMi4uNzU5M2YzYSAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L2lw X2ZvcndhcmQuYw0KKysrIGIvbmV0L2lwdjQvaXBfZm9yd2FyZC5jDQpAQCAtNDIsMTIgKzQyLDEy IEBADQogc3RhdGljIGJvb2wgaXBfbWF5X2ZyYWdtZW50KGNvbnN0IHN0cnVjdCBza19idWZmICpz a2IpDQogew0KIAlyZXR1cm4gdW5saWtlbHkoKGlwX2hkcihza2IpLT5mcmFnX29mZiAmIGh0b25z KElQX0RGKSkgPT0gMCkgfHwNCi0JICAgICAgICFza2ItPmxvY2FsX2RmOw0KKwkJc2tiLT5sb2Nh bF9kZjsNCiB9DQogDQogc3RhdGljIGJvb2wgaXBfZXhjZWVkc19tdHUoY29uc3Qgc3RydWN0IHNr X2J1ZmYgKnNrYiwgdW5zaWduZWQgaW50IG10dSkNCiB7DQotCWlmIChza2ItPmxlbiA8PSBtdHUg fHwgc2tiLT5sb2NhbF9kZikNCisJaWYgKHNrYi0+bGVuIDw9IG10dSkNCiAJCXJldHVybiBmYWxz ZTsNCiANCiAJaWYgKHNrYl9pc19nc28oc2tiKSAmJiBza2JfZ3NvX25ldHdvcmtfc2VnbGVuKHNr YikgPD0gbXR1KQ0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L25ldGZpbHRlci9hcnBfdGFibGVzLmMg Yi9uZXQvaXB2NC9uZXRmaWx0ZXIvYXJwX3RhYmxlcy5jDQppbmRleCBmZDdhM2Y2Li5iY2I2ZTYx IDEwMDY0NA0KLS0tIGEvbmV0L2lwdjQvbmV0ZmlsdGVyL2FycF90YWJsZXMuYw0KKysrIGIvbmV0 L2lwdjQvbmV0ZmlsdGVyL2FycF90YWJsZXMuYw0KQEAgLTEwMzksOCArMTAzOSwxMCBAQCBzdGF0 aWMgaW50IF9fZG9fcmVwbGFjZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IGNoYXIgKm5hbWUsDQog DQogCXh0X2ZyZWVfdGFibGVfaW5mbyhvbGRpbmZvKTsNCiAJaWYgKGNvcHlfdG9fdXNlcihjb3Vu dGVyc19wdHIsIGNvdW50ZXJzLA0KLQkJCSBzaXplb2Yoc3RydWN0IHh0X2NvdW50ZXJzKSAqIG51 bV9jb3VudGVycykgIT0gMCkNCi0JCXJldCA9IC1FRkFVTFQ7DQorCQkJIHNpemVvZihzdHJ1Y3Qg eHRfY291bnRlcnMpICogbnVtX2NvdW50ZXJzKSAhPSAwKSB7DQorCQkvKiBTaWxlbnQgZXJyb3Is IGNhbid0IGZhaWwsIG5ldyB0YWJsZSBpcyBhbHJlYWR5IGluIHBsYWNlICovDQorCQluZXRfd2Fy bl9yYXRlbGltaXRlZCgiYXJwdGFibGVzOiBjb3VudGVycyBjb3B5IHRvIHVzZXIgZmFpbGVkIHdo aWxlIHJlcGxhY2luZyB0YWJsZVxuIik7DQorCX0NCiAJdmZyZWUoY291bnRlcnMpOw0KIAl4dF90 YWJsZV91bmxvY2sodCk7DQogCXJldHVybiByZXQ7DQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvbmV0 ZmlsdGVyL2lwX3RhYmxlcy5jIGIvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX3RhYmxlcy5jDQppbmRl eCAyNGU1NTZlLi5mOThhMWNmIDEwMDY0NA0KLS0tIGEvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX3Rh Ymxlcy5jDQorKysgYi9uZXQvaXB2NC9uZXRmaWx0ZXIvaXBfdGFibGVzLmMNCkBAIC0xMjI3LDgg KzEyMjcsMTAgQEAgX19kb19yZXBsYWNlKHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqbmFt ZSwgdW5zaWduZWQgaW50IHZhbGlkX2hvb2tzLA0KIA0KIAl4dF9mcmVlX3RhYmxlX2luZm8ob2xk aW5mbyk7DQogCWlmIChjb3B5X3RvX3VzZXIoY291bnRlcnNfcHRyLCBjb3VudGVycywNCi0JCQkg c2l6ZW9mKHN0cnVjdCB4dF9jb3VudGVycykgKiBudW1fY291bnRlcnMpICE9IDApDQotCQlyZXQg PSAtRUZBVUxUOw0KKwkJCSBzaXplb2Yoc3RydWN0IHh0X2NvdW50ZXJzKSAqIG51bV9jb3VudGVy cykgIT0gMCkgew0KKwkJLyogU2lsZW50IGVycm9yLCBjYW4ndCBmYWlsLCBuZXcgdGFibGUgaXMg YWxyZWFkeSBpbiBwbGFjZSAqLw0KKwkJbmV0X3dhcm5fcmF0ZWxpbWl0ZWQoImlwdGFibGVzOiBj b3VudGVycyBjb3B5IHRvIHVzZXIgZmFpbGVkIHdoaWxlIHJlcGxhY2luZyB0YWJsZVxuIik7DQor CX0NCiAJdmZyZWUoY291bnRlcnMpOw0KIAl4dF90YWJsZV91bmxvY2sodCk7DQogCXJldHVybiBy ZXQ7DQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcGluZy5jIGIvbmV0L2lwdjQvcGluZy5jDQppbmRl eCAwMDk3NWI2Li5kNDk1ZDRiIDEwMDY0NA0KLS0tIGEvbmV0L2lwdjQvcGluZy5jDQorKysgYi9u ZXQvaXB2NC9waW5nLmMNCkBAIC0yMDMsMjYgKzIwMywzMyBAQCBzdGF0aWMgaW50IHBpbmdfaW5p dF9zb2NrKHN0cnVjdCBzb2NrICpzaykNCiAJc3RydWN0IG5ldCAqbmV0ID0gc29ja19uZXQoc2sp Ow0KIAlnaWRfdCBncm91cCA9IGN1cnJlbnRfZWdpZCgpOw0KIAlnaWRfdCByYW5nZVsyXTsNCi0J c3RydWN0IGdyb3VwX2luZm8gKmdyb3VwX2luZm8gPSBnZXRfY3VycmVudF9ncm91cHMoKTsNCi0J aW50IGksIGosIGNvdW50ID0gZ3JvdXBfaW5mby0+bmdyb3VwczsNCisJc3RydWN0IGdyb3VwX2lu Zm8gKmdyb3VwX2luZm87DQorCWludCBpLCBqLCBjb3VudDsNCisJaW50IHJldCA9IDA7DQogDQog CWluZXRfZ2V0X3BpbmdfZ3JvdXBfcmFuZ2VfbmV0KG5ldCwgcmFuZ2UsIHJhbmdlKzEpOw0KIAlp ZiAocmFuZ2VbMF0gPD0gZ3JvdXAgJiYgZ3JvdXAgPD0gcmFuZ2VbMV0pDQogCQlyZXR1cm4gMDsN CiANCisJZ3JvdXBfaW5mbyA9IGdldF9jdXJyZW50X2dyb3VwcygpOw0KKwljb3VudCA9IGdyb3Vw X2luZm8tPm5ncm91cHM7DQogCWZvciAoaSA9IDA7IGkgPCBncm91cF9pbmZvLT5uYmxvY2tzOyBp KyspIHsNCiAJCWludCBjcF9jb3VudCA9IG1pbl90KGludCwgTkdST1VQU19QRVJfQkxPQ0ssIGNv dW50KTsNCiANCiAJCWZvciAoaiA9IDA7IGogPCBjcF9jb3VudDsgaisrKSB7DQogCQkJZ3JvdXAg PSBncm91cF9pbmZvLT5ibG9ja3NbaV1bal07DQogCQkJaWYgKHJhbmdlWzBdIDw9IGdyb3VwICYm IGdyb3VwIDw9IHJhbmdlWzFdKQ0KLQkJCQlyZXR1cm4gMDsNCisJCQkJZ290byBvdXRfcmVsZWFz ZV9ncm91cDsNCiAJCX0NCiANCiAJCWNvdW50IC09IGNwX2NvdW50Ow0KIAl9DQogDQotCXJldHVy biAtRUFDQ0VTOw0KKwlyZXQgPSAtRUFDQ0VTOw0KKw0KK291dF9yZWxlYXNlX2dyb3VwOg0KKwlw dXRfZ3JvdXBfaW5mbyhncm91cF9pbmZvKTsNCisJcmV0dXJuIHJldDsNCiB9DQogDQogc3RhdGlj IHZvaWQgcGluZ19jbG9zZShzdHJ1Y3Qgc29jayAqc2ssIGxvbmcgdGltZW91dCkNCmRpZmYgLS1n aXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYw0KaW5kZXggNjc2OGNlMi4u NjUyNjExMCAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L3JvdXRlLmMNCisrKyBiL25ldC9pcHY0L3Jv dXRlLmMNCkBAIC0yMTQyLDcgKzIxNDIsNyBAQCBzdGF0aWMgaW50IF9fbWtyb3V0ZV9pbnB1dChz dHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KIAlzdHJ1Y3QgaW5fZGV2aWNlICpvdXRfZGV2Ow0KIAl1bnNp Z25lZCBpbnQgZmxhZ3MgPSAwOw0KIAlfX2JlMzIgc3BlY19kc3Q7DQotCXUzMiBpdGFnOw0KKwl1 MzIgaXRhZyA9IDA7DQogDQogCS8qIGdldCBhIHdvcmtpbmcgcmVmZXJlbmNlIHRvIHRoZSBvdXRw dXQgZGV2aWNlICovDQogCW91dF9kZXYgPSBfX2luX2Rldl9nZXRfcmN1KEZJQl9SRVNfREVWKCpy ZXMpKTsNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfY3ViaWMuYyBiL25ldC9pcHY0L3RjcF9j dWJpYy5jDQppbmRleCBiNzhlYWMyLi5lZDNkNmQ0IDEwMDY0NA0KLS0tIGEvbmV0L2lwdjQvdGNw X2N1YmljLmMNCisrKyBiL25ldC9pcHY0L3RjcF9jdWJpYy5jDQpAQCAtNDA2LDcgKzQwNiw3IEBA IHN0YXRpYyB2b2lkIGJpY3RjcF9hY2tlZChzdHJ1Y3Qgc29jayAqc2ssIHUzMiBjbnQsIHMzMiBy dHRfdXMpDQogCQlyYXRpbyAtPSBjYS0+ZGVsYXllZF9hY2sgPj4gQUNLX1JBVElPX1NISUZUOw0K IAkJcmF0aW8gKz0gY250Ow0KIA0KLQkJY2EtPmRlbGF5ZWRfYWNrID0gbWluKHJhdGlvLCBBQ0tf UkFUSU9fTElNSVQpOw0KKwkJY2EtPmRlbGF5ZWRfYWNrID0gY2xhbXAocmF0aW8sIDFVLCBBQ0tf UkFUSU9fTElNSVQpOw0KIAl9DQogDQogCS8qIFNvbWUgY2FsbHMgYXJlIGZvciBkdXBsaWNhdGVz IHdpdGhvdXQgdGltZXRhbXBzICovDQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvbmV0ZmlsdGVyL2lw Nl90YWJsZXMuYyBiL25ldC9pcHY2L25ldGZpbHRlci9pcDZfdGFibGVzLmMNCmluZGV4IDk0ODc0 YjAuLjJlNzUyYjIgMTAwNjQ0DQotLS0gYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvaXA2X3RhYmxlcy5j DQorKysgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvaXA2X3RhYmxlcy5jDQpAQCAtMTI0OSw4ICsxMjQ5 LDEwIEBAIF9fZG9fcmVwbGFjZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IGNoYXIgKm5hbWUsIHVu c2lnbmVkIGludCB2YWxpZF9ob29rcywNCiANCiAJeHRfZnJlZV90YWJsZV9pbmZvKG9sZGluZm8p Ow0KIAlpZiAoY29weV90b191c2VyKGNvdW50ZXJzX3B0ciwgY291bnRlcnMsDQotCQkJIHNpemVv ZihzdHJ1Y3QgeHRfY291bnRlcnMpICogbnVtX2NvdW50ZXJzKSAhPSAwKQ0KLQkJcmV0ID0gLUVG QVVMVDsNCisJCQkgc2l6ZW9mKHN0cnVjdCB4dF9jb3VudGVycykgKiBudW1fY291bnRlcnMpICE9 IDApIHsNCisJCS8qIFNpbGVudCBlcnJvciwgY2FuJ3QgZmFpbCwgbmV3IHRhYmxlIGlzIGFscmVh ZHkgaW4gcGxhY2UgKi8NCisJCW5ldF93YXJuX3JhdGVsaW1pdGVkKCJpcDZ0YWJsZXM6IGNvdW50 ZXJzIGNvcHkgdG8gdXNlciBmYWlsZWQgd2hpbGUgcmVwbGFjaW5nIHRhYmxlXG4iKTsNCisJfQ0K IAl2ZnJlZShjb3VudGVycyk7DQogCXh0X3RhYmxlX3VubG9jayh0KTsNCiAJcmV0dXJuIHJldDsN CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYw0KaW5kZXgg MzllMTFmOS4uNzgyZjY3YSAxMDA2NDQNCi0tLSBhL25ldC9pcHY2L3JvdXRlLmMNCisrKyBiL25l dC9pcHY2L3JvdXRlLmMNCkBAIC0xMDU2LDcgKzEwNTYsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50 IGlwNl9tdHUoY29uc3Qgc3RydWN0IGRzdF9lbnRyeSAqZHN0KQ0KIAl1bnNpZ25lZCBpbnQgbXR1 ID0gZHN0X21ldHJpY19yYXcoZHN0LCBSVEFYX01UVSk7DQogDQogCWlmIChtdHUpDQotCQlyZXR1 cm4gbXR1Ow0KKwkJZ290byBvdXQ7DQogDQogCW10dSA9IElQVjZfTUlOX01UVTsNCiANCkBAIC0x MDY2LDcgKzEwNjYsOCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGlwNl9tdHUoY29uc3Qgc3RydWN0 IGRzdF9lbnRyeSAqZHN0KQ0KIAkJbXR1ID0gaWRldi0+Y25mLm10dTY7DQogCXJjdV9yZWFkX3Vu bG9jaygpOw0KIA0KLQlyZXR1cm4gbXR1Ow0KK291dDoNCisJcmV0dXJuIG1pbl90KHVuc2lnbmVk IGludCwgbXR1LCBJUDZfTUFYX01UVSk7DQogfQ0KIA0KIHN0YXRpYyBzdHJ1Y3QgZHN0X2VudHJ5 ICppY21wNl9kc3RfZ2NfbGlzdDsNCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX3BwcC5jIGIv bmV0L2wydHAvbDJ0cF9wcHAuYw0KaW5kZXggOTY5Y2QzZS4uZTBmMDkzNCAxMDA2NDQNCi0tLSBh L25ldC9sMnRwL2wydHBfcHBwLmMNCisrKyBiL25ldC9sMnRwL2wydHBfcHBwLmMNCkBAIC03NzIs OSArNzcyLDkgQEAgc3RhdGljIGludCBwcHBvbDJ0cF9jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNv Y2ssIHN0cnVjdCBzb2NrYWRkciAqdXNlcnZhZGRyLA0KIAlzZXNzaW9uLT5kZXJlZiA9IHBwcG9s MnRwX3Nlc3Npb25fc29ja19wdXQ7DQogDQogCS8qIElmIFBNVFUgZGlzY292ZXJ5IHdhcyBlbmFi bGVkLCB1c2UgdGhlIE1UVSB0aGF0IHdhcyBkaXNjb3ZlcmVkICovDQotCWRzdCA9IHNrX2RzdF9n ZXQoc2spOw0KKwlkc3QgPSBza19kc3RfZ2V0KHR1bm5lbC0+c29jayk7DQogCWlmIChkc3QgIT0g TlVMTCkgew0KLQkJdTMyIHBtdHUgPSBkc3RfbXR1KF9fc2tfZHN0X2dldChzaykpOw0KKwkJdTMy IHBtdHUgPSBkc3RfbXR1KF9fc2tfZHN0X2dldCh0dW5uZWwtPnNvY2spKTsNCiAJCWlmIChwbXR1 ICE9IDApDQogCQkJc2Vzc2lvbi0+bXR1ID0gc2Vzc2lvbi0+bXJ1ID0gcG10dSAtDQogCQkJCVBQ UE9MMlRQX0hFQURFUl9PVkVSSEVBRDsNCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X21pcnJl ZC5jIGIvbmV0L3NjaGVkL2FjdF9taXJyZWQuYw0KaW5kZXggZTA1MTM5OC4uZDA2N2VkMSAxMDA2 NDQNCi0tLSBhL25ldC9zY2hlZC9hY3RfbWlycmVkLmMNCisrKyBiL25ldC9zY2hlZC9hY3RfbWly cmVkLmMNCkBAIC0yMDEsMTMgKzIwMSwxMiBAQCBzdGF0aWMgaW50IHRjZl9taXJyZWQoc3RydWN0 IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjX2FjdGlvbiAqYSwNCiBvdXQ6DQogCWlmIChl cnIpIHsNCiAJCW0tPnRjZl9xc3RhdHMub3ZlcmxpbWl0cysrOw0KLQkJLyogc2hvdWxkIHdlIGJl IGFza2luZyBmb3IgcGFja2V0IHRvIGJlIGRyb3BwZWQ/DQotCQkgKiBtYXkgbWFrZSBzZW5zZSBm b3IgcmVkaXJlY3QgY2FzZSBvbmx5DQotCQkgKi8NCi0JCXJldHZhbCA9IFRDX0FDVF9TSE9UOw0K LQl9IGVsc2Ugew0KKwkJaWYgKG0tPnRjZm1fZWFjdGlvbiAhPSBUQ0FfRUdSRVNTX01JUlJPUikN CisJCQlyZXR2YWwgPSBUQ19BQ1RfU0hPVDsNCisJCWVsc2UNCisJCQlyZXR2YWwgPSBtLT50Y2Zf YWN0aW9uOw0KKwl9IGVsc2UNCiAJCXJldHZhbCA9IG0tPnRjZl9hY3Rpb247DQotCX0NCiAJc3Bp bl91bmxvY2soJm0tPnRjZl9sb2NrKTsNCiANCiAJcmV0dXJuIHJldHZhbDsNCmRpZmYgLS1naXQg YS9uZXQvc2N0cC9wcm90b2NvbC5jIGIvbmV0L3NjdHAvcHJvdG9jb2wuYw0KaW5kZXggNmY2YWQ4 Ni4uZGUzNWUwMSAxMDA2NDQNCi0tLSBhL25ldC9zY3RwL3Byb3RvY29sLmMNCisrKyBiL25ldC9z Y3RwL3Byb3RvY29sLmMNCkBAIC01MjgsOCArNTI4LDEzIEBAIHN0YXRpYyB2b2lkIHNjdHBfdjRf Z2V0X2RzdChzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnQsIHVuaW9uIHNjdHBfYWRkciAqc2FkZHIs DQogCQkJY29udGludWU7DQogCQlpZiAoKGxhZGRyLT5zdGF0ZSA9PSBTQ1RQX0FERFJfU1JDKSAm Jg0KIAkJICAgIChBRl9JTkVUID09IGxhZGRyLT5hLnNhLnNhX2ZhbWlseSkpIHsNCi0JCQlmbDQt PnNhZGRyID0gbGFkZHItPmEudjQuc2luX2FkZHIuc19hZGRyOw0KIAkJCWZsNC0+Zmw0X3Nwb3J0 ID0gbGFkZHItPmEudjQuc2luX3BvcnQ7DQorCQkJZmxvd2k0X3VwZGF0ZV9vdXRwdXQoZmw0LA0K KwkJCQkJICAgICBhc29jLT5iYXNlLnNrLT5za19ib3VuZF9kZXZfaWYsDQorCQkJCQkgICAgIFJU X0NPTk5fRkxBR1MoYXNvYy0+YmFzZS5zayksDQorCQkJCQkgICAgIGRhZGRyLT52NC5zaW5fYWRk ci5zX2FkZHIsDQorCQkJCQkgICAgIGxhZGRyLT5hLnY0LnNpbl9hZGRyLnNfYWRkcik7DQorDQog CQkJcnQgPSBpcF9yb3V0ZV9vdXRwdXRfa2V5KCZpbml0X25ldCwgZmw0KTsNCiAJCQlpZiAoIUlT X0VSUihydCkpIHsNCiAJCQkJZHN0ID0gJnJ0LT5kc3Q7DQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9t b2QvbW9kcG9zdC5jIGIvc2NyaXB0cy9tb2QvbW9kcG9zdC5jDQppbmRleCA2MTkyMjhkLi5kYzU3 NDhmIDEwMDY0NA0KLS0tIGEvc2NyaXB0cy9tb2QvbW9kcG9zdC5jDQorKysgYi9zY3JpcHRzL21v ZC9tb2Rwb3N0LmMNCkBAIC01NjksMTIgKzU2OSwxNiBAQCBzdGF0aWMgaW50IGlnbm9yZV91bmRl Zl9zeW1ib2woc3RydWN0IGVsZl9pbmZvICppbmZvLCBjb25zdCBjaGFyICpzeW1uYW1lKQ0KIAkJ aWYgKHN0cm5jbXAoc3ltbmFtZSwgIl9yZXN0Z3ByXyIsIHNpemVvZigiX3Jlc3RncHJfIikgLSAx KSA9PSAwIHx8DQogCQkgICAgc3RybmNtcChzeW1uYW1lLCAiX3NhdmVncHJfIiwgc2l6ZW9mKCJf c2F2ZWdwcl8iKSAtIDEpID09IDAgfHwNCiAJCSAgICBzdHJuY21wKHN5bW5hbWUsICJfcmVzdDMy Z3ByXyIsIHNpemVvZigiX3Jlc3QzMmdwcl8iKSAtIDEpID09IDAgfHwNCi0JCSAgICBzdHJuY21w KHN5bW5hbWUsICJfc2F2ZTMyZ3ByXyIsIHNpemVvZigiX3NhdmUzMmdwcl8iKSAtIDEpID09IDAp DQorCQkgICAgc3RybmNtcChzeW1uYW1lLCAiX3NhdmUzMmdwcl8iLCBzaXplb2YoIl9zYXZlMzJn cHJfIikgLSAxKSA9PSAwIHx8DQorCQkgICAgc3RybmNtcChzeW1uYW1lLCAiX3Jlc3R2cl8iLCBz aXplb2YoIl9yZXN0dnJfIikgLSAxKSA9PSAwIHx8DQorCQkgICAgc3RybmNtcChzeW1uYW1lLCAi X3NhdmV2cl8iLCBzaXplb2YoIl9zYXZldnJfIikgLSAxKSA9PSAwKQ0KIAkJCXJldHVybiAxOw0K IAlpZiAoaW5mby0+aGRyLT5lX21hY2hpbmUgPT0gRU1fUFBDNjQpDQogCQkvKiBTcGVjaWFsIHJl Z2lzdGVyIGZ1bmN0aW9uIGxpbmtlZCBvbiBhbGwgbW9kdWxlcyBkdXJpbmcgZmluYWwgbGluayBv ZiAua28gKi8NCiAJCWlmIChzdHJuY21wKHN5bW5hbWUsICJfcmVzdGdwcjBfIiwgc2l6ZW9mKCJf cmVzdGdwcjBfIikgLSAxKSA9PSAwIHx8DQotCQkgICAgc3RybmNtcChzeW1uYW1lLCAiX3NhdmVn cHIwXyIsIHNpemVvZigiX3NhdmVncHIwXyIpIC0gMSkgPT0gMCkNCisJCSAgICBzdHJuY21wKHN5 bW5hbWUsICJfc2F2ZWdwcjBfIiwgc2l6ZW9mKCJfc2F2ZWdwcjBfIikgLSAxKSA9PSAwIHx8DQor CQkgICAgc3RybmNtcChzeW1uYW1lLCAiX3Jlc3R2cl8iLCBzaXplb2YoIl9yZXN0dnJfIikgLSAx KSA9PSAwIHx8DQorCQkgICAgc3RybmNtcChzeW1uYW1lLCAiX3NhdmV2cl8iLCBzaXplb2YoIl9z YXZldnJfIikgLSAxKSA9PSAwKQ0KIAkJCXJldHVybiAxOw0KIAkvKiBEbyBub3QgaWdub3JlIHRo aXMgc3ltYm9sICovDQogCXJldHVybiAwOw0KZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2FzeW5jX3Bm LmMgYi92aXJ0L2t2bS9hc3luY19wZi5jDQppbmRleCA3NDI2OGI0Li5iZGQyYzBkIDEwMDY0NA0K LS0tIGEvdmlydC9rdm0vYXN5bmNfcGYuYw0KKysrIGIvdmlydC9rdm0vYXN5bmNfcGYuYw0KQEAg LTc1LDcgKzc1LDYgQEAgc3RhdGljIHZvaWQgYXN5bmNfcGZfZXhlY3V0ZShzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspDQogCXNwaW5fbG9jaygmdmNwdS0+YXN5bmNfcGYubG9jayk7DQogCWxpc3Rf YWRkX3RhaWwoJmFwZi0+bGluaywgJnZjcHUtPmFzeW5jX3BmLmRvbmUpOw0KIAlhcGYtPnBhZ2Ug PSBwYWdlOw0KLQlhcGYtPmRvbmUgPSB0cnVlOw0KIAlzcGluX3VubG9jaygmdmNwdS0+YXN5bmNf cGYubG9jayk7DQogDQogCS8qDQpAQCAtODgsNyArODcsNyBAQCBzdGF0aWMgdm9pZCBhc3luY19w Zl9leGVjdXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCiAJaWYgKHdhaXRxdWV1ZV9hY3Rp dmUoJnZjcHUtPndxKSkNCiAJCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmdmNwdS0+d3EpOw0KIA0K LQltbWRyb3AobW0pOw0KKwltbXB1dChtbSk7DQogCWt2bV9wdXRfa3ZtKHZjcHUtPmt2bSk7DQog fQ0KIA0KQEAgLTk5LDEwICs5OCwxMiBAQCB2b2lkIGt2bV9jbGVhcl9hc3luY19wZl9jb21wbGV0 aW9uX3F1ZXVlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkNCiAJCXN0cnVjdCBrdm1fYXN5bmNfcGYg KndvcmsgPQ0KIAkJCWxpc3RfZW50cnkodmNwdS0+YXN5bmNfcGYucXVldWUubmV4dCwNCiAJCQkJ ICAgdHlwZW9mKCp3b3JrKSwgcXVldWUpOw0KLQkJY2FuY2VsX3dvcmtfc3luYygmd29yay0+d29y ayk7DQogCQlsaXN0X2RlbCgmd29yay0+cXVldWUpOw0KLQkJaWYgKCF3b3JrLT5kb25lKSAvKiB3 b3JrIHdhcyBjYW5jZWxlZCAqLw0KKwkJaWYgKGNhbmNlbF93b3JrX3N5bmMoJndvcmstPndvcmsp KSB7DQorCQkJbW1wdXQod29yay0+bW0pOw0KKwkJCWt2bV9wdXRfa3ZtKHZjcHUtPmt2bSk7IC8q ID09IHdvcmstPnZjcHUtPmt2bSAqLw0KIAkJCWttZW1fY2FjaGVfZnJlZShhc3luY19wZl9jYWNo ZSwgd29yayk7DQorCQl9DQogCX0NCiANCiAJc3Bpbl9sb2NrKCZ2Y3B1LT5hc3luY19wZi5sb2Nr KTsNCkBAIC0xNjMsMTMgKzE2NCwxMiBAQCBpbnQga3ZtX3NldHVwX2FzeW5jX3BmKHN0cnVjdCBr dm1fdmNwdSAqdmNwdSwgZ3ZhX3QgZ3ZhLCBnZm5fdCBnZm4sDQogCQlyZXR1cm4gMDsNCiANCiAJ d29yay0+cGFnZSA9IE5VTEw7DQotCXdvcmstPmRvbmUgPSBmYWxzZTsNCiAJd29yay0+dmNwdSA9 IHZjcHU7DQogCXdvcmstPmd2YSA9IGd2YTsNCiAJd29yay0+YWRkciA9IGdmbl90b19odmEodmNw dS0+a3ZtLCBnZm4pOw0KIAl3b3JrLT5hcmNoID0gKmFyY2g7DQogCXdvcmstPm1tID0gY3VycmVu dC0+bW07DQotCWF0b21pY19pbmMoJndvcmstPm1tLT5tbV9jb3VudCk7DQorCWF0b21pY19pbmMo JndvcmstPm1tLT5tbV91c2Vycyk7DQogCWt2bV9nZXRfa3ZtKHdvcmstPnZjcHUtPmt2bSk7DQog DQogCS8qIHRoaXMgY2FuJ3QgcmVhbGx5IGhhcHBlbiBvdGhlcndpc2UgZ2ZuX3RvX3Bmbl9hc3lu Yw0KQEAgLTE4Nyw3ICsxODcsNyBAQCBpbnQga3ZtX3NldHVwX2FzeW5jX3BmKHN0cnVjdCBrdm1f dmNwdSAqdmNwdSwgZ3ZhX3QgZ3ZhLCBnZm5fdCBnZm4sDQogCXJldHVybiAxOw0KIHJldHJ5X3N5 bmM6DQogCWt2bV9wdXRfa3ZtKHdvcmstPnZjcHUtPmt2bSk7DQotCW1tZHJvcCh3b3JrLT5tbSk7 DQorCW1tcHV0KHdvcmstPm1tKTsNCiAJa21lbV9jYWNoZV9mcmVlKGFzeW5jX3BmX2NhY2hlLCB3 b3JrKTsNCiAJcmV0dXJuIDA7DQogfQ0K --=-z1f8DDsBOW8E3mB1N7ry-- --=-X3IMJ+1jIRQ9NaRAtjbh Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIVAwUAU5J3iue/yOyVhhEJAQr0OhAAuc987YAD0tAgpTLG6UJLoje6OEMPT2TF zOhitlzW8cALs98zTk4UeOxRQQIuBcEA9JzdBJt0fWhLU3QM8bgdNVhng6UCNlOw 1RixdgobIaH5GFeudgeu0U3eOh3ULy/e4mDWdlsYlUqI1zpO0k8+8WMp+yscMk99 eaKUkW1e8QoS30aPv8lLoIWp/dIhAcT0YxBmjU8iwhRVm21SDpnZodkzIIl5rjFx +whfcH0tmhKgN866j+Cn1W3QyZsQOMtVVtayDBP9fpSndKwlE048Ym6Npt70zTS0 Q428z3WTd2DIRurF0m9Xg6IQHgH/hwkkbqKH2/N+QZ8v9zcl6V0gNtrTsWCfankz omSgKrDCc4olcMN8bmiNBQ17152oIxT0Xp3TWYsxnKBh5W+VNs+YAp6GsiGO8RSZ VUQFgoQL++QGDsPFjJVfPOj6CsE/gofClDptsOYTlkypgVrufjQmt0QvBap7ZZ9b Wp8gLW1XyKUE0tfSRBz9ldrFtvYBBfX0eZniZTK9gX10jiEcn+I3cHha0TJ4khus UvlLbmJRGFYFbfiDikjWLQ1UghFKCPDWSd3rNh8T00AXgFJFs2jdmyHyW4Vv7kMh nWuGBYc6Z0FModXBYrEs5E3n5aLqUlNjH9SO/Ba0hsRbgQzAPmvfrz0uEL904aKc O4q7KJJ55BQ= =M+IJ -----END PGP SIGNATURE----- --=-X3IMJ+1jIRQ9NaRAtjbh-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/