Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755304Ab3JUJDk (ORCPT ); Mon, 21 Oct 2013 05:03:40 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:40000 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754697Ab3JUJDe (ORCPT ); Mon, 21 Oct 2013 05:03:34 -0400 Message-ID: <1382346165.25689.1.camel@deadeye.wl.decadent.org.uk> Subject: Re: [PATCH 3.2 000/149] 3.2.52-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org Date: Mon, 21 Oct 2013 10:02:45 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-gvEKZeukf5v/PvCE+hIj" X-Mailer: Evolution 3.8.5-2 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 212.20.242.100 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 Content-Length: 234435 Lines: 3075 --=-gvEKZeukf5v/PvCE+hIj Content-Type: multipart/mixed; boundary="=-OwICMyT5ruQIGZUmOpd+" --=-OwICMyT5ruQIGZUmOpd+ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.52-rc1 relative to 3.2.51. Ben. --=20 Ben Hutchings All the simple programs have been written, and all the good names taken. --=-OwICMyT5ruQIGZUmOpd+ Content-Disposition: attachment; filename="linux-3.2.52-rc1.patch" Content-Type: text/x-patch; name="linux-3.2.52-rc1.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUNCmluZGV4IDBmMTE5MzYuLmE0ODk3Yjcg MTAwNjQ0DQotLS0gYS9NYWtlZmlsZQ0KKysrIGIvTWFrZWZpbGUNCkBAIC0xLDcgKzEsNyBAQA0K IFZFUlNJT04gPSAzDQogUEFUQ0hMRVZFTCA9IDINCi1TVUJMRVZFTCA9IDUxDQotRVhUUkFWRVJT SU9OID0NCitTVUJMRVZFTCA9IDUyDQorRVhUUkFWRVJTSU9OID0gLXJjMQ0KIE5BTUUgPSBTYWJl ci10b290aGVkIFNxdWlycmVsDQogDQogIyAqRE9DVU1FTlRBVElPTioNCmRpZmYgLS1naXQgYS9h cmNoL2FybS9tYWNoLXZlcnNhdGlsZS9wY2kuYyBiL2FyY2gvYXJtL21hY2gtdmVyc2F0aWxlL3Bj aS5jDQppbmRleCBjODk4ZGViLi4xODllZDAwIDEwMDY0NA0KLS0tIGEvYXJjaC9hcm0vbWFjaC12 ZXJzYXRpbGUvcGNpLmMNCisrKyBiL2FyY2gvYXJtL21hY2gtdmVyc2F0aWxlL3BjaS5jDQpAQCAt NDMsOSArNDMsOSBAQA0KICNkZWZpbmUgUENJX0lNQVAwCQlfX0lPX0FERFJFU1MoVkVSU0FUSUxF X1BDSV9DT1JFX0JBU0UrMHgwKQ0KICNkZWZpbmUgUENJX0lNQVAxCQlfX0lPX0FERFJFU1MoVkVS U0FUSUxFX1BDSV9DT1JFX0JBU0UrMHg0KQ0KICNkZWZpbmUgUENJX0lNQVAyCQlfX0lPX0FERFJF U1MoVkVSU0FUSUxFX1BDSV9DT1JFX0JBU0UrMHg4KQ0KLSNkZWZpbmUgUENJX1NNQVAwCQlfX0lP X0FERFJFU1MoVkVSU0FUSUxFX1BDSV9DT1JFX0JBU0UrMHgxMCkNCi0jZGVmaW5lIFBDSV9TTUFQ MQkJX19JT19BRERSRVNTKFZFUlNBVElMRV9QQ0lfQ09SRV9CQVNFKzB4MTQpDQotI2RlZmluZSBQ Q0lfU01BUDIJCV9fSU9fQUREUkVTUyhWRVJTQVRJTEVfUENJX0NPUkVfQkFTRSsweDE4KQ0KKyNk ZWZpbmUgUENJX1NNQVAwCQlfX0lPX0FERFJFU1MoVkVSU0FUSUxFX1BDSV9DT1JFX0JBU0UrMHgx NCkNCisjZGVmaW5lIFBDSV9TTUFQMQkJX19JT19BRERSRVNTKFZFUlNBVElMRV9QQ0lfQ09SRV9C QVNFKzB4MTgpDQorI2RlZmluZSBQQ0lfU01BUDIJCV9fSU9fQUREUkVTUyhWRVJTQVRJTEVfUENJ X0NPUkVfQkFTRSsweDFjKQ0KICNkZWZpbmUgUENJX1NFTEZJRAkJX19JT19BRERSRVNTKFZFUlNB VElMRV9QQ0lfQ09SRV9CQVNFKzB4YykNCiANCiAjZGVmaW5lIERFVklDRV9JRF9PRkZTRVQJCTB4 MDANCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9pbml0LmMgYi9hcmNoL2FybS9tbS9pbml0LmMN CmluZGV4IGZiZGQxMmUuLmNjM2YzNWQgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9tbS9pbml0LmMN CisrKyBiL2FyY2gvYXJtL21tL2luaXQuYw0KQEAgLTk4LDYgKzk4LDkgQEAgdm9pZCBzaG93X21l bSh1bnNpZ25lZCBpbnQgZmlsdGVyKQ0KIAlwcmludGsoIk1lbS1pbmZvOlxuIik7DQogCXNob3df ZnJlZV9hcmVhcyhmaWx0ZXIpOw0KIA0KKwlpZiAoZmlsdGVyICYgU0hPV19NRU1fRklMVEVSX1BB R0VfQ09VTlQpDQorCQlyZXR1cm47DQorDQogCWZvcl9lYWNoX2JhbmsgKGksIG1pKSB7DQogCQlz dHJ1Y3QgbWVtYmFuayAqYmFuayA9ICZtaS0+YmFua1tpXTsNCiAJCXVuc2lnbmVkIGludCBwZm4x LCBwZm4yOw0KZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9tbS9jb250aWcuYyBiL2FyY2gvaWE2NC9t bS9jb250aWcuYw0KaW5kZXggZjExNGEzYi4uY2U2ZTdhOCAxMDA2NDQNCi0tLSBhL2FyY2gvaWE2 NC9tbS9jb250aWcuYw0KKysrIGIvYXJjaC9pYTY0L21tL2NvbnRpZy5jDQpAQCAtNDYsNiArNDYs OCBAQCB2b2lkIHNob3dfbWVtKHVuc2lnbmVkIGludCBmaWx0ZXIpDQogCXByaW50ayhLRVJOX0lO Rk8gIk1lbS1pbmZvOlxuIik7DQogCXNob3dfZnJlZV9hcmVhcyhmaWx0ZXIpOw0KIAlwcmludGso S0VSTl9JTkZPICJOb2RlIG1lbW9yeSBpbiBwYWdlczpcbiIpOw0KKwlpZiAoZmlsdGVyICYgU0hP V19NRU1fRklMVEVSX1BBR0VfQ09VTlQpDQorCQlyZXR1cm47DQogCWZvcl9lYWNoX29ubGluZV9w Z2RhdChwZ2RhdCkgew0KIAkJdW5zaWduZWQgbG9uZyBwcmVzZW50Ow0KIAkJdW5zaWduZWQgbG9u ZyBmbGFnczsNCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvbW0vZGlzY29udGlnLmMgYi9hcmNoL2lh NjQvbW0vZGlzY29udGlnLmMNCmluZGV4IGM2NDEzMzMuLjIyMzA4MTcgMTAwNjQ0DQotLS0gYS9h cmNoL2lhNjQvbW0vZGlzY29udGlnLmMNCisrKyBiL2FyY2gvaWE2NC9tbS9kaXNjb250aWcuYw0K QEAgLTYyMyw2ICs2MjMsOCBAQCB2b2lkIHNob3dfbWVtKHVuc2lnbmVkIGludCBmaWx0ZXIpDQog DQogCXByaW50ayhLRVJOX0lORk8gIk1lbS1pbmZvOlxuIik7DQogCXNob3dfZnJlZV9hcmVhcyhm aWx0ZXIpOw0KKwlpZiAoZmlsdGVyICYgU0hPV19NRU1fRklMVEVSX1BBR0VfQ09VTlQpDQorCQly ZXR1cm47DQogCXByaW50ayhLRVJOX0lORk8gIk5vZGUgbWVtb3J5IGluIHBhZ2VzOlxuIik7DQog CWZvcl9lYWNoX29ubGluZV9wZ2RhdChwZ2RhdCkgew0KIAkJdW5zaWduZWQgbG9uZyBwcmVzZW50 Ow0KZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9rZXJuZWwvdm1saW51eC1ub21tdS5sZHMgYi9hcmNo L202OGsva2VybmVsL3ZtbGludXgtbm9tbXUubGRzDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMC4uNDBlMDJkOQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvYXJjaC9tNjhrL2tlcm5l bC92bWxpbnV4LW5vbW11Lmxkcw0KQEAgLTAsMCArMSw5MyBAQA0KKy8qDQorICoJdm1saW51eC5s ZHMuUyAtLSBtYXN0ZXIgbGlua2VyIHNjcmlwdCBmb3IgbTY4a25vbW11IGFyY2gNCisgKg0KKyAq CShDKSBDb3B5cmlnaHQgMjAwMi0yMDEyLCBHcmVnIFVuZ2VyZXIgPGdlcmdAc25hcGdlYXIuY29t Pg0KKyAqDQorICoJVGhpcyBsaW5rZXIgc2NyaXB0IGlzIGVxdWlwcGVkIHRvIGJ1aWxkIGVpdGhl ciBST00gbG9hZGVkIG9yIFJBTQ0KKyAqCXJ1biBrZXJuZWxzLg0KKyAqLw0KKw0KKyNpZiBkZWZp bmVkKENPTkZJR19SQU1LRVJORUwpDQorI2RlZmluZQlLVEVYVF9BRERSCUNPTkZJR19LRVJORUxC QVNFDQorI2VuZGlmDQorI2lmIGRlZmluZWQoQ09ORklHX1JPTUtFUk5FTCkNCisjZGVmaW5lCUtU RVhUX0FERFIJQ09ORklHX1JPTVNUQVJUDQorI2RlZmluZQlLREFUQV9BRERSCUNPTkZJR19LRVJO RUxCQVNFDQorI2RlZmluZQlMT0FEX09GRlNFVAlLREFUQV9BRERSICsgKEFERFIoLnRleHQpICsg U0laRU9GKC50ZXh0KSkNCisjZW5kaWYNCisNCisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4NCisjaW5j bHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+DQorI2luY2x1ZGUgPGFzbS1nZW5lcmljL3ZtbGludXgu bGRzLmg+DQorDQorT1VUUFVUX0FSQ0gobTY4aykNCitFTlRSWShfc3RhcnQpDQorDQoramlmZmll cyA9IGppZmZpZXNfNjQgKyA0Ow0KKw0KK1NFQ1RJT05TIHsNCisNCisjaWZkZWYgQ09ORklHX1JP TVZFQw0KKwkuID0gQ09ORklHX1JPTVZFQzsNCisJLnJvbXZlYyA6IHsNCisJCV9fcm9tX3N0YXJ0 ID0gLjsNCisJCV9yb212ZWMgPSAuOw0KKwkJKigucm9tdmVjKQ0KKwkJKiguZGF0YS4uaW5pdHZl Y3QpDQorCX0NCisjZW5kaWYNCisNCisJLiA9IEtURVhUX0FERFI7DQorDQorCV90ZXh0ID0gLjsN CisJX3N0ZXh0ID0gLjsNCisJLnRleHQgOiB7DQorCQlIRUFEX1RFWFQNCisJCVRFWFRfVEVYVA0K KwkJU0NIRURfVEVYVA0KKwkJTE9DS19URVhUDQorCQkqKC5maXh1cCkNCisJCS4gPSBBTElHTigx Nik7DQorCX0NCisJX2V0ZXh0ID0gLjsNCisNCisjaWZkZWYgS0RBVEFfQUREUg0KKwkuID0gS0RB VEFfQUREUjsNCisjZW5kaWYNCisNCisJX3NkYXRhID0gLjsNCisJUk9fREFUQV9TRUNUSU9OKFBB R0VfU0laRSkNCisJUldfREFUQV9TRUNUSU9OKDE2LCBQQUdFX1NJWkUsIFRIUkVBRF9TSVpFKQ0K KwlfZWRhdGEgPSAuOw0KKw0KKwlFWENFUFRJT05fVEFCTEUoMTYpDQorCU5PVEVTDQorDQorCS4g PSBBTElHTihQQUdFX1NJWkUpOw0KKwlfX2luaXRfYmVnaW4gPSAuOw0KKwlJTklUX1RFWFRfU0VD VElPTihQQUdFX1NJWkUpDQorCUlOSVRfREFUQV9TRUNUSU9OKDE2KQ0KKwlQRVJDUFVfU0VDVElP TigxNikNCisJLm02OGtfZml4dXAgOiB7DQorCQlfX3N0YXJ0X2ZpeHVwID0gLjsNCisJCSooLm02 OGtfZml4dXApDQorCQlfX3N0b3BfZml4dXAgPSAuOw0KKwl9DQorCS5pbml0LmRhdGEgOiB7DQor CQkuID0gQUxJR04oUEFHRV9TSVpFKTsNCisJCV9faW5pdF9lbmQgPSAuOw0KKwl9DQorDQorCV9z YnNzID0gLjsNCisJQlNTX1NFQ1RJT04oMCwgMCwgMCkNCisJX2Vic3MgPSAuOw0KKw0KKwlfZW5k ID0gLjsNCisNCisJU1RBQlNfREVCVUcNCisJLmNvbW1lbnQgMCA6IHsgKiguY29tbWVudCkgfQ0K Kw0KKwkvKiBTZWN0aW9ucyB0byBiZSBkaXNjYXJkZWQgKi8NCisJRElTQ0FSRFMNCit9DQorDQpk aWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2tlcm5lbC92bWxpbnV4Lmxkcy5TIGIvYXJjaC9tNjhrL2tl cm5lbC92bWxpbnV4Lmxkcy5TDQppbmRleCAwMzBkYWJmLi42OWVjNzk2IDEwMDY0NA0KLS0tIGEv YXJjaC9tNjhrL2tlcm5lbC92bWxpbnV4Lmxkcy5TDQorKysgYi9hcmNoL202OGsva2VybmVsL3Zt bGludXgubGRzLlMNCkBAIC0xLDUgKzEsMTQgQEANCi0jaWZkZWYgQ09ORklHX01NVQ0KLSNpbmNs dWRlICJ2bWxpbnV4Lmxkc19tbS5TIg0KKyNpZiBkZWZpbmVkKENPTkZJR19NTVUpICYmICFkZWZp bmVkKENPTkZJR19DT0xERklSRSkNCitQSERSUw0KK3sNCisgIHRleHQgUFRfTE9BRCBGSUxFSERS IFBIRFJTIEZMQUdTICg3KTsNCisgIGRhdGEgUFRfTE9BRCBGTEFHUyAoNyk7DQorfQ0KKyNpZmRl ZiBDT05GSUdfU1VOMw0KKyNpbmNsdWRlICJ2bWxpbnV4LXN1bjMubGRzIg0KICNlbHNlDQotI2lu Y2x1ZGUgInZtbGludXgubGRzX25vLlMiDQorI2luY2x1ZGUgInZtbGludXgtc3RkLmxkcyINCisj ZW5kaWYNCisjZWxzZQ0KKyNpbmNsdWRlICJ2bWxpbnV4LW5vbW11LmxkcyINCiAjZW5kaWYNCmRp ZmYgLS1naXQgYS9hcmNoL202OGsva2VybmVsL3ZtbGludXgubGRzX21tLlMgYi9hcmNoL202OGsv a2VybmVsL3ZtbGludXgubGRzX21tLlMNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg OTliYTMxNS4uMDAwMDAwMA0KLS0tIGEvYXJjaC9tNjhrL2tlcm5lbC92bWxpbnV4Lmxkc19tbS5T DQorKysgL2Rldi9udWxsDQpAQCAtMSwxMCArMCwwIEBADQotUEhEUlMNCi17DQotICB0ZXh0IFBU X0xPQUQgRklMRUhEUiBQSERSUyBGTEFHUyAoNyk7DQotICBkYXRhIFBUX0xPQUQgRkxBR1MgKDcp Ow0KLX0NCi0jaWZkZWYgQ09ORklHX1NVTjMNCi0jaW5jbHVkZSAidm1saW51eC1zdW4zLmxkcyIN Ci0jZWxzZQ0KLSNpbmNsdWRlICJ2bWxpbnV4LXN0ZC5sZHMiDQotI2VuZGlmDQpkaWZmIC0tZ2l0 IGEvYXJjaC9tNjhrL2tlcm5lbC92bWxpbnV4Lmxkc19uby5TIGIvYXJjaC9tNjhrL2tlcm5lbC92 bWxpbnV4Lmxkc19uby5TDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDRlMjM4OTMu LjAwMDAwMDANCi0tLSBhL2FyY2gvbTY4ay9rZXJuZWwvdm1saW51eC5sZHNfbm8uUw0KKysrIC9k ZXYvbnVsbA0KQEAgLTEsMTg3ICswLDAgQEANCi0vKg0KLSAqCXZtbGludXgubGRzLlMgLS0gbWFz dGVyIGxpbmtlciBzY3JpcHQgZm9yIG02OGtub21tdSBhcmNoDQotICoNCi0gKgkoQykgQ29weXJp Z2h0IDIwMDItMjAwNiwgR3JlZyBVbmdlcmVyIDxnZXJnQHNuYXBnZWFyLmNvbT4NCi0gKg0KLSAq CVRoaXMgbGlua2VyIHNjcmlwdCBpcyBlcXVpcHBlZCB0byBidWlsZCBlaXRoZXIgUk9NIGxvYWRl ZCBvciBSQU0NCi0gKglydW4ga2VybmVscy4NCi0gKi8NCi0NCi0jaW5jbHVkZSA8YXNtLWdlbmVy aWMvdm1saW51eC5sZHMuaD4NCi0jaW5jbHVkZSA8YXNtL3BhZ2UuaD4NCi0jaW5jbHVkZSA8YXNt L3RocmVhZF9pbmZvLmg+DQotDQotI2lmIGRlZmluZWQoQ09ORklHX1JBTUtFUk5FTCkNCi0jZGVm aW5lCVJBTV9TVEFSVAlDT05GSUdfS0VSTkVMQkFTRQ0KLSNkZWZpbmUJUkFNX0xFTkdUSAkoQ09O RklHX1JBTUJBU0UgKyBDT05GSUdfUkFNU0laRSAtIENPTkZJR19LRVJORUxCQVNFKQ0KLSNkZWZp bmUJVEVYVAkJcmFtDQotI2RlZmluZQlEQVRBCQlyYW0NCi0jZGVmaW5lCUlOSVQJCXJhbQ0KLSNk ZWZpbmUJQlNTUwkJcmFtDQotI2VuZGlmDQotI2lmIGRlZmluZWQoQ09ORklHX1JPTUtFUk5FTCkg fHwgZGVmaW5lZChDT05GSUdfSElNRU1LRVJORUwpDQotI2RlZmluZQlSQU1fU1RBUlQJQ09ORklH X1JBTUJBU0UNCi0jZGVmaW5lCVJBTV9MRU5HVEgJQ09ORklHX1JBTVNJWkUNCi0jZGVmaW5lCVJP TVZFQ19TVEFSVAlDT05GSUdfUk9NVkVDDQotI2RlZmluZQlST01WRUNfTEVOR1RICUNPTkZJR19S T01WRUNTSVpFDQotI2RlZmluZQlST01fU1RBUlQJQ09ORklHX1JPTVNUQVJUDQotI2RlZmluZQlS T01fTEVOR1RICUNPTkZJR19ST01TSVpFDQotI2RlZmluZQlURVhUCQlyb20NCi0jZGVmaW5lCURB VEEJCXJhbQ0KLSNkZWZpbmUJSU5JVAkJcmFtDQotI2RlZmluZQlCU1NTCQlyYW0NCi0jZW5kaWYN Ci0NCi0jaWZuZGVmIERBVEFfQUREUg0KLSNkZWZpbmUJREFUQV9BRERSDQotI2VuZGlmDQotDQot DQotT1VUUFVUX0FSQ0gobTY4aykNCi1FTlRSWShfc3RhcnQpDQotDQotTUVNT1JZIHsNCi0JcmFt CTogT1JJR0lOID0gUkFNX1NUQVJULCBMRU5HVEggPSBSQU1fTEVOR1RIDQotI2lmZGVmIFJPTV9T VEFSVA0KLQlyb212ZWMJOiBPUklHSU4gPSBST01WRUNfU1RBUlQsIExFTkdUSCA9IFJPTVZFQ19M RU5HVEgNCi0Jcm9tCTogT1JJR0lOID0gUk9NX1NUQVJULCBMRU5HVEggPSBST01fTEVOR1RIDQot I2VuZGlmDQotfQ0KLQ0KLWppZmZpZXMgPSBqaWZmaWVzXzY0ICsgNDsNCi0NCi1TRUNUSU9OUyB7 DQotDQotI2lmZGVmIFJPTVZFQ19TVEFSVA0KLQkuID0gUk9NVkVDX1NUQVJUIDsNCi0JLnJvbXZl YyA6IHsNCi0JCV9fcm9tX3N0YXJ0ID0gLiA7DQotCQlfcm9tdmVjID0gLjsNCi0JCSooLmRhdGEu LmluaXR2ZWN0KQ0KLQl9ID4gcm9tdmVjDQotI2VuZGlmDQotDQotCS50ZXh0IDogew0KLQkJX3Rl eHQgPSAuOw0KLQkJX3N0ZXh0ID0gLiA7DQotCQlIRUFEX1RFWFQNCi0JCVRFWFRfVEVYVA0KLQkJ U0NIRURfVEVYVA0KLQkJTE9DS19URVhUDQotCQkqKC50ZXh0Li5sb2NrKQ0KLQ0KLQkJLiA9IEFM SUdOKDE2KTsgICAgICAgICAgLyogRXhjZXB0aW9uIHRhYmxlICAgICAgICAgICAgICAqLw0KLQkJ X19zdGFydF9fX2V4X3RhYmxlID0gLjsNCi0JCSooX19leF90YWJsZSkNCi0JCV9fc3RvcF9fX2V4 X3RhYmxlID0gLjsNCi0NCi0JCSooLnJvZGF0YSkgKigucm9kYXRhLiopDQotCQkqKF9fdmVybWFn aWMpCQkvKiBLZXJuZWwgdmVyc2lvbiBtYWdpYyAqLw0KLQkJKigucm9kYXRhMSkNCi0JCSooLnJv ZGF0YS5zdHIxLjEpDQotDQotCQkvKiBLZXJuZWwgc3ltYm9sIHRhYmxlOiBOb3JtYWwgc3ltYm9s cyAqLw0KLQkJLiA9IEFMSUdOKDQpOw0KLQkJX19zdGFydF9fX2tzeW10YWIgPSAuOw0KLQkJKihT T1JUKF9fX2tzeW10YWIrKikpDQotCQlfX3N0b3BfX19rc3ltdGFiID0gLjsNCi0NCi0JCS8qIEtl cm5lbCBzeW1ib2wgdGFibGU6IEdQTC1vbmx5IHN5bWJvbHMgKi8NCi0JCV9fc3RhcnRfX19rc3lt dGFiX2dwbCA9IC47DQotCQkqKFNPUlQoX19fa3N5bXRhYl9ncGwrKikpDQotCQlfX3N0b3BfX19r c3ltdGFiX2dwbCA9IC47DQotDQotCQkvKiBLZXJuZWwgc3ltYm9sIHRhYmxlOiBOb3JtYWwgdW51 c2VkIHN5bWJvbHMgKi8NCi0JCV9fc3RhcnRfX19rc3ltdGFiX3VudXNlZCA9IC47DQotCQkqKFNP UlQoX19fa3N5bXRhYl91bnVzZWQrKikpDQotCQlfX3N0b3BfX19rc3ltdGFiX3VudXNlZCA9IC47 DQotDQotCQkvKiBLZXJuZWwgc3ltYm9sIHRhYmxlOiBHUEwtb25seSB1bnVzZWQgc3ltYm9scyAq Lw0KLQkJX19zdGFydF9fX2tzeW10YWJfdW51c2VkX2dwbCA9IC47DQotCQkqKFNPUlQoX19fa3N5 bXRhYl91bnVzZWRfZ3BsKyopKQ0KLQkJX19zdG9wX19fa3N5bXRhYl91bnVzZWRfZ3BsID0gLjsN Ci0NCi0JCS8qIEtlcm5lbCBzeW1ib2wgdGFibGU6IEdQTC1mdXR1cmUgc3ltYm9scyAqLw0KLQkJ X19zdGFydF9fX2tzeW10YWJfZ3BsX2Z1dHVyZSA9IC47DQotCQkqKFNPUlQoX19fa3N5bXRhYl9n cGxfZnV0dXJlKyopKQ0KLQkJX19zdG9wX19fa3N5bXRhYl9ncGxfZnV0dXJlID0gLjsNCi0NCi0J CS8qIEtlcm5lbCBzeW1ib2wgdGFibGU6IE5vcm1hbCBzeW1ib2xzICovDQotCQlfX3N0YXJ0X19f a2NyY3RhYiA9IC47DQotCQkqKFNPUlQoX19fa2NyY3RhYisqKSkNCi0JCV9fc3RvcF9fX2tjcmN0 YWIgPSAuOw0KLQ0KLQkJLyogS2VybmVsIHN5bWJvbCB0YWJsZTogR1BMLW9ubHkgc3ltYm9scyAq Lw0KLQkJX19zdGFydF9fX2tjcmN0YWJfZ3BsID0gLjsNCi0JCSooU09SVChfX19rY3JjdGFiX2dw bCsqKSkNCi0JCV9fc3RvcF9fX2tjcmN0YWJfZ3BsID0gLjsNCi0NCi0JCS8qIEtlcm5lbCBzeW1i b2wgdGFibGU6IE5vcm1hbCB1bnVzZWQgc3ltYm9scyAqLw0KLQkJX19zdGFydF9fX2tjcmN0YWJf dW51c2VkID0gLjsNCi0JCSooU09SVChfX19rY3JjdGFiX3VudXNlZCsqKSkNCi0JCV9fc3RvcF9f X2tjcmN0YWJfdW51c2VkID0gLjsNCi0NCi0JCS8qIEtlcm5lbCBzeW1ib2wgdGFibGU6IEdQTC1v bmx5IHVudXNlZCBzeW1ib2xzICovDQotCQlfX3N0YXJ0X19fa2NyY3RhYl91bnVzZWRfZ3BsID0g LjsNCi0JCSooU09SVChfX19rY3JjdGFiX3VudXNlZF9ncGwrKikpDQotCQlfX3N0b3BfX19rY3Jj dGFiX3VudXNlZF9ncGwgPSAuOw0KLQ0KLQkJLyogS2VybmVsIHN5bWJvbCB0YWJsZTogR1BMLWZ1 dHVyZSBzeW1ib2xzICovDQotCQlfX3N0YXJ0X19fa2NyY3RhYl9ncGxfZnV0dXJlID0gLjsNCi0J CSooU09SVChfX19rY3JjdGFiX2dwbF9mdXR1cmUrKikpDQotCQlfX3N0b3BfX19rY3JjdGFiX2dw bF9mdXR1cmUgPSAuOw0KLQ0KLQkJLyogS2VybmVsIHN5bWJvbCB0YWJsZTogc3RyaW5ncyAqLw0K LQkJKihfX2tzeW10YWJfc3RyaW5ncykNCi0NCi0JCS8qIEJ1aWx0LWluIG1vZHVsZSBwYXJhbWV0 ZXJzICovDQotCQkuID0gQUxJR04oNCkgOw0KLQkJX19zdGFydF9fX3BhcmFtID0gLjsNCi0JCSoo X19wYXJhbSkNCi0JCV9fc3RvcF9fX3BhcmFtID0gLjsNCi0NCi0JCS8qIEJ1aWx0LWluIG1vZHVs ZSB2ZXJzaW9ucyAqLw0KLQkJLiA9IEFMSUdOKDQpIDsNCi0JCV9fc3RhcnRfX19tb2R2ZXIgPSAu Ow0KLQkJKihfX21vZHZlcikNCi0JCV9fc3RvcF9fX21vZHZlciA9IC47DQotDQotCQkuID0gQUxJ R04oNCkgOw0KLQkJX2V0ZXh0ID0gLiA7DQotCX0gPiBURVhUDQotDQotCS5kYXRhIERBVEFfQURE UiA6IHsNCi0JCS4gPSBBTElHTig0KTsNCi0JCV9zZGF0YSA9IC4gOw0KLQkJREFUQV9EQVRBDQot CQlDQUNIRUxJTkVfQUxJR05FRF9EQVRBKDMyKQ0KLQkJUEFHRV9BTElHTkVEX0RBVEEoUEFHRV9T SVpFKQ0KLQkJKiguZGF0YS4uc2hhcmVkX2FsaWduZWQpDQotCQlJTklUX1RBU0tfREFUQShUSFJF QURfU0laRSkNCi0JCV9lZGF0YSA9IC4gOw0KLQl9ID4gREFUQQ0KLQ0KLQkuaW5pdC50ZXh0IDog ew0KLQkJLiA9IEFMSUdOKFBBR0VfU0laRSk7DQotCQlfX2luaXRfYmVnaW4gPSAuOw0KLQl9ID4g SU5JVA0KLQlJTklUX1RFWFRfU0VDVElPTihQQUdFX1NJWkUpID4gSU5JVA0KLQlJTklUX0RBVEFf U0VDVElPTigxNikgPiBJTklUDQotCS5pbml0LmRhdGEgOiB7DQotCQkuID0gQUxJR04oUEFHRV9T SVpFKTsNCi0JCV9faW5pdF9lbmQgPSAuOw0KLQl9ID4gSU5JVA0KLQ0KLQkuYnNzIDogew0KLQkJ LiA9IEFMSUdOKDQpOw0KLQkJX3Nic3MgPSAuIDsNCi0JCSooLmJzcykNCi0JCSooQ09NTU9OKQ0K LQkJLiA9IEFMSUdOKDQpIDsNCi0JCV9lYnNzID0gLiA7DQotCSAJX2VuZCA9IC4gOw0KLQl9ID4g QlNTUw0KLQ0KLQlESVNDQVJEUw0KLX0NCi0NCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9tbS9p bml0LmMgYi9hcmNoL3BhcmlzYy9tbS9pbml0LmMNCmluZGV4IDgyZjM2NGUuLjBiNjIxNjIgMTAw NjQ0DQotLS0gYS9hcmNoL3BhcmlzYy9tbS9pbml0LmMNCisrKyBiL2FyY2gvcGFyaXNjL21tL2lu aXQuYw0KQEAgLTY4NSw2ICs2ODUsOCBAQCB2b2lkIHNob3dfbWVtKHVuc2lnbmVkIGludCBmaWx0 ZXIpDQogDQogCXByaW50ayhLRVJOX0lORk8gIk1lbS1pbmZvOlxuIik7DQogCXNob3dfZnJlZV9h cmVhcyhmaWx0ZXIpOw0KKwlpZiAoZmlsdGVyICYgU0hPV19NRU1fRklMVEVSX1BBR0VfQ09VTlQp DQorCQlyZXR1cm47DQogI2lmbmRlZiBDT05GSUdfRElTQ09OVElHTUVNDQogCWkgPSBtYXhfbWFw bnI7DQogCXdoaWxlIChpLS0gPiAwKSB7DQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5l bC9hbGlnbi5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9hbGlnbi5jDQppbmRleCA4MTg0ZWU5Li4z ZmNiYWUwIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9hbGlnbi5jDQorKysgYi9h cmNoL3Bvd2VycGMva2VybmVsL2FsaWduLmMNCkBAIC03NjQsNiArNzY0LDE2IEBAIGludCBmaXhf YWxpZ25tZW50KHN0cnVjdCBwdF9yZWdzICpyZWdzKQ0KIAluYiA9IGFsaWduaW5mb1tpbnN0cl0u bGVuOw0KIAlmbGFncyA9IGFsaWduaW5mb1tpbnN0cl0uZmxhZ3M7DQogDQorCS8qIGxkYnJ4L3N0 ZGJyeCBvdmVybGFwIGxmcy9zdGZzIGluIHRoZSBEU0lTUiB1bmZvcnR1bmF0ZWx5ICovDQorCWlm IChJU19YRk9STShpbnN0cnVjdGlvbikgJiYgKChpbnN0cnVjdGlvbiA+PiAxKSAmIDB4M2ZmKSA9 PSA1MzIpIHsNCisJCW5iID0gODsNCisJCWZsYWdzID0gTEQrU1c7DQorCX0gZWxzZSBpZiAoSVNf WEZPUk0oaW5zdHJ1Y3Rpb24pICYmDQorCQkgICAoKGluc3RydWN0aW9uID4+IDEpICYgMHgzZmYp ID09IDY2MCkgew0KKwkJbmIgPSA4Ow0KKwkJZmxhZ3MgPSBTVCtTVzsNCisJfQ0KKw0KIAkvKiBC eXRlc3dhcCBsaXR0bGUgZW5kaWFuIGxvYWRzIGFuZCBzdG9yZXMgKi8NCiAJc3dpeiA9IDA7DQog CWlmIChyZWdzLT5tc3IgJiBNU1JfTEUpIHsNCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2Vy bmVsL2lvbW11LmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2lvbW11LmMNCmluZGV4IDBjZmNmOTgu LmQwYjIwNWMgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2lvbW11LmMNCisrKyBi L2FyY2gvcG93ZXJwYy9rZXJuZWwvaW9tbXUuYw0KQEAgLTQ5NSw3ICs0OTUsNyBAQCBzdHJ1Y3Qg aW9tbXVfdGFibGUgKmlvbW11X2luaXRfdGFibGUoc3RydWN0IGlvbW11X3RhYmxlICp0YmwsIGlu dCBuaWQpDQogCS8qIG51bWJlciBvZiBieXRlcyBuZWVkZWQgZm9yIHRoZSBiaXRtYXAgKi8NCiAJ c3ogPSAodGJsLT5pdF9zaXplICsgNykgPj4gMzsNCiANCi0JcGFnZSA9IGFsbG9jX3BhZ2VzX25v ZGUobmlkLCBHRlBfQVRPTUlDLCBnZXRfb3JkZXIoc3opKTsNCisJcGFnZSA9IGFsbG9jX3BhZ2Vz X25vZGUobmlkLCBHRlBfS0VSTkVMLCBnZXRfb3JkZXIoc3opKTsNCiAJaWYgKCFwYWdlKQ0KIAkJ cGFuaWMoImlvbW11X2luaXRfdGFibGU6IENhbid0IGFsbG9jYXRlICVsZCBieXRlc1xuIiwgc3op Ow0KIAl0YmwtPml0X21hcCA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsNCmRpZmYgLS1naXQgYS9hcmNo L3Bvd2VycGMva2VybmVsL2xwYXJjZmcuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvbHBhcmNmZy5j DQppbmRleCA4MjY2ODFkLi4yNmFmMjRiIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5l bC9scGFyY2ZnLmMNCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvbHBhcmNmZy5jDQpAQCAtMzc1 LDYgKzM3NSw3IEBAIHN0YXRpYyB2b2lkIHBhcnNlX3N5c3RlbV9wYXJhbWV0ZXJfc3RyaW5nKHN0 cnVjdCBzZXFfZmlsZSAqbSkNCiAJCQkJX19wYShydGFzX2RhdGFfYnVmKSwNCiAJCQkJUlRBU19E QVRBX0JVRl9TSVpFKTsNCiAJbWVtY3B5KGxvY2FsX2J1ZmZlciwgcnRhc19kYXRhX2J1ZiwgU1BM UEFSX01BWExFTkdUSCk7DQorCWxvY2FsX2J1ZmZlcltTUExQQVJfTUFYTEVOR1RIIC0gMV0gPSAn XDAnOw0KIAlzcGluX3VubG9jaygmcnRhc19kYXRhX2J1Zl9sb2NrKTsNCiANCiAJaWYgKGNhbGxf c3RhdHVzICE9IDApIHsNCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3N5c2ZzLmMg Yi9hcmNoL3Bvd2VycGMva2VybmVsL3N5c2ZzLmMNCmluZGV4IDU1YmU2NGQuLmNhNjgzYTEgMTAw NjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3N5c2ZzLmMNCisrKyBiL2FyY2gvcG93ZXJw Yy9rZXJuZWwvc3lzZnMuYw0KQEAgLTE4LDYgKzE4LDcgQEANCiAjaW5jbHVkZSA8YXNtL21hY2hk ZXAuaD4NCiAjaW5jbHVkZSA8YXNtL3NtcC5oPg0KICNpbmNsdWRlIDxhc20vcG1jLmg+DQorI2lu Y2x1ZGUgPGFzbS9maXJtd2FyZS5oPg0KIA0KICNpbmNsdWRlICJjYWNoZWluZm8uaCINCiANCkBA IC0xNzgsMTQgKzE3OSwyNCBAQCBTWVNGU19QTUNTRVRVUChwdXJyLCBTUFJOX1BVUlIpOw0KIFNZ U0ZTX1BNQ1NFVFVQKHNwdXJyLCBTUFJOX1NQVVJSKTsNCiBTWVNGU19QTUNTRVRVUChkc2NyLCBT UFJOX0RTQ1IpOw0KIA0KKy8qDQorICBMZXRzIG9ubHkgZW5hYmxlIHJlYWQgZm9yIHBoeXAgcmVz b3VyY2VzIGFuZA0KKyAgZW5hYmxlIHdyaXRlIHdoZW4gbmVlZGVkIHdpdGggYSBzZXBhcmF0ZSBm dW5jdGlvbi4NCisgIExldHMgYmUgY29uc2VydmF0aXZlIGFuZCBkZWZhdWx0IHRvIHBzZXJpZXMu DQorKi8NCiBzdGF0aWMgU1lTREVWX0FUVFIobW1jcmEsIDA2MDAsIHNob3dfbW1jcmEsIHN0b3Jl X21tY3JhKTsNCiBzdGF0aWMgU1lTREVWX0FUVFIoc3B1cnIsIDA2MDAsIHNob3dfc3B1cnIsIE5V TEwpOw0KIHN0YXRpYyBTWVNERVZfQVRUUihkc2NyLCAwNjAwLCBzaG93X2RzY3IsIHN0b3JlX2Rz Y3IpOw0KLXN0YXRpYyBTWVNERVZfQVRUUihwdXJyLCAwNjAwLCBzaG93X3B1cnIsIHN0b3JlX3B1 cnIpOw0KK3N0YXRpYyBTWVNERVZfQVRUUihwdXJyLCAwNDAwLCBzaG93X3B1cnIsIHN0b3JlX3B1 cnIpOw0KIA0KIHVuc2lnbmVkIGxvbmcgZHNjcl9kZWZhdWx0ID0gMDsNCiBFWFBPUlRfU1lNQk9M KGRzY3JfZGVmYXVsdCk7DQogDQorc3RhdGljIHZvaWQgYWRkX3dyaXRlX3Blcm1pc3Npb25fZGV2 X2F0dHIoc3RydWN0IHN5c2Rldl9hdHRyaWJ1dGUgKmF0dHIpDQorew0KKwlhdHRyLT5hdHRyLm1v ZGUgfD0gMDIwMDsNCit9DQorDQogc3RhdGljIHNzaXplX3Qgc2hvd19kc2NyX2RlZmF1bHQoc3Ry dWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsDQogCQlzdHJ1Y3Qgc3lzZGV2X2NsYXNzX2F0dHJpYnV0 ZSAqYXR0ciwgY2hhciAqYnVmKQ0KIHsNCkBAIC0zOTQsOCArNDA1LDExIEBAIHN0YXRpYyB2b2lk IF9fY3B1aW5pdCByZWdpc3Rlcl9jcHVfb25saW5lKHVuc2lnbmVkIGludCBjcHUpDQogCWlmIChj cHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9NTUNSQSkpDQogCQlzeXNkZXZfY3JlYXRlX2ZpbGUocywg JmF0dHJfbW1jcmEpOw0KIA0KLQlpZiAoY3B1X2hhc19mZWF0dXJlKENQVV9GVFJfUFVSUikpDQor CWlmIChjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9QVVJSKSkgew0KKwkJaWYgKCFmaXJtd2FyZV9o YXNfZmVhdHVyZShGV19GRUFUVVJFX0xQQVIpKQ0KKwkJCWFkZF93cml0ZV9wZXJtaXNzaW9uX2Rl dl9hdHRyKCZhdHRyX3B1cnIpOw0KIAkJc3lzZGV2X2NyZWF0ZV9maWxlKHMsICZhdHRyX3B1cnIp Ow0KKwl9DQogDQogCWlmIChjcHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9TUFVSUikpDQogCQlzeXNk ZXZfY3JlYXRlX2ZpbGUocywgJmF0dHJfc3B1cnIpOw0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJw Yy9saWIvY2hlY2tzdW1fNjQuUyBiL2FyY2gvcG93ZXJwYy9saWIvY2hlY2tzdW1fNjQuUw0KaW5k ZXggMTgyNDVhZi4uM2NkYmM2NCAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9saWIvY2hlY2tz dW1fNjQuUw0KKysrIGIvYXJjaC9wb3dlcnBjL2xpYi9jaGVja3N1bV82NC5TDQpAQCAtMjI5LDE5 ICsyMjksMzUgQEAgX0dMT0JBTChjc3VtX3BhcnRpYWwpDQogCWJscg0KIA0KIA0KLQkubWFjcm8g c291cmNlDQorCS5tYWNybyBzcmNucg0KIDEwMDoNCiAJLnNlY3Rpb24gX19leF90YWJsZSwiYSIN CiAJLmFsaWduIDMNCi0JLmxsb25nIDEwMGIsLkxzcmNfZXJyb3INCisJLmxsb25nIDEwMGIsLkxz cmNfZXJyb3JfbnINCiAJLnByZXZpb3VzDQogCS5lbmRtDQogDQotCS5tYWNybyBkZXN0DQorCS5t YWNybyBzb3VyY2UNCisxNTA6DQorCS5zZWN0aW9uIF9fZXhfdGFibGUsImEiDQorCS5hbGlnbiAz DQorCS5sbG9uZyAxNTBiLC5Mc3JjX2Vycm9yDQorCS5wcmV2aW91cw0KKwkuZW5kbQ0KKw0KKwku bWFjcm8gZHN0bnINCiAyMDA6DQogCS5zZWN0aW9uIF9fZXhfdGFibGUsImEiDQogCS5hbGlnbiAz DQotCS5sbG9uZyAyMDBiLC5MZGVzdF9lcnJvcg0KKwkubGxvbmcgMjAwYiwuTGRlc3RfZXJyb3Jf bnINCisJLnByZXZpb3VzDQorCS5lbmRtDQorDQorCS5tYWNybyBkZXN0DQorMjUwOg0KKwkuc2Vj dGlvbiBfX2V4X3RhYmxlLCJhIg0KKwkuYWxpZ24gMw0KKwkubGxvbmcgMjUwYiwuTGRlc3RfZXJy b3INCiAJLnByZXZpb3VzDQogCS5lbmRtDQogDQpAQCAtMjcyLDE2ICsyODgsMTYgQEAgX0dMT0JB TChjc3VtX3BhcnRpYWxfY29weV9nZW5lcmljKQ0KIAlybGRpY2wuIHI2LHIzLDY0LTEsNjQtMgkJ LyogcjYgPSAocjMgJiAweDMpID4+IDEgKi8NCiAJYmVxCS5MY29weV9hbGlnbmVkDQogDQotCWxp CXI3LDQNCi0Jc3ViCXI2LHI3LHI2DQorCWxpCXI5LDQNCisJc3ViCXI2LHI5LHI2DQogCW10Y3Ry CXI2DQogDQogMToNCi1zb3VyY2U7CWxoeglyNiwwKHIzKQkJLyogYWxpZ24gdG8gZG91Ymxld29y ZCAqLw0KK3NyY25yOwlsaHoJcjYsMChyMykJCS8qIGFsaWduIHRvIGRvdWJsZXdvcmQgKi8NCiAJ c3ViaQlyNSxyNSwyDQogCWFkZGkJcjMscjMsMg0KIAlhZGRlCXIwLHIwLHI2DQotZGVzdDsJc3Ro CXI2LDAocjQpDQorZHN0bnI7CXN0aAlyNiwwKHI0KQ0KIAlhZGRpCXI0LHI0LDINCiAJYmRuegkx Yg0KIA0KQEAgLTM5NSwxMCArNDExLDEwIEBAIGRlc3Q7CXN0ZAlyMTYsNTYocjQpDQogDQogCW10 Y3RyCXI2DQogMzoNCi1zb3VyY2U7CWxkCXI2LDAocjMpDQorc3JjbnI7CWxkCXI2LDAocjMpDQog CWFkZGkJcjMscjMsOA0KIAlhZGRlCXIwLHIwLHI2DQotZGVzdDsJc3RkCXI2LDAocjQpDQorZHN0 bnI7CXN0ZAlyNiwwKHI0KQ0KIAlhZGRpCXI0LHI0LDgNCiAJYmRuegkzYg0KIA0KQEAgLTQwOCwx MCArNDI0LDEwIEBAIGRlc3Q7CXN0ZAlyNiwwKHI0KQ0KIAlzcmRpLglyNixyNSwyDQogCWJlcQku TGNvcHlfdGFpbF9oYWxmd29yZA0KIA0KLXNvdXJjZTsJbHd6CXI2LDAocjMpDQorc3JjbnI7CWx3 eglyNiwwKHIzKQ0KIAlhZGRpCXIzLHIzLDQNCiAJYWRkZQlyMCxyMCxyNg0KLWRlc3Q7CXN0dwly NiwwKHI0KQ0KK2RzdG5yOwlzdHcJcjYsMChyNCkNCiAJYWRkaQlyNCxyNCw0DQogCXN1YmkJcjUs cjUsNA0KIA0KQEAgLTQxOSwxMCArNDM1LDEwIEBAIGRlc3Q7CXN0dwlyNiwwKHI0KQ0KIAlzcmRp LglyNixyNSwxDQogCWJlcQkuTGNvcHlfdGFpbF9ieXRlDQogDQotc291cmNlOwlsaHoJcjYsMChy MykNCitzcmNucjsJbGh6CXI2LDAocjMpDQogCWFkZGkJcjMscjMsMg0KIAlhZGRlCXIwLHIwLHI2 DQotZGVzdDsJc3RoCXI2LDAocjQpDQorZHN0bnI7CXN0aAlyNiwwKHI0KQ0KIAlhZGRpCXI0LHI0 LDINCiAJc3ViaQlyNSxyNSwyDQogDQpAQCAtNDMwLDEwICs0NDYsMTAgQEAgZGVzdDsJc3RoCXI2 LDAocjQpDQogCWFuZGkuCXI2LHI1LDENCiAJYmVxCS5MY29weV9maW5pc2gNCiANCi1zb3VyY2U7 CWxieglyNiwwKHIzKQ0KK3NyY25yOwlsYnoJcjYsMChyMykNCiAJc2xkaQlyOSxyNiw4CQkJLyog UGFkIHRoZSBieXRlIG91dCB0byAxNiBiaXRzICovDQogCWFkZGUJcjAscjAscjkNCi1kZXN0Owlz dGIJcjYsMChyNCkNCitkc3RucjsJc3RiCXI2LDAocjQpDQogDQogLkxjb3B5X2ZpbmlzaDoNCiAJ YWRkemUJcjAscjAJCQkvKiBhZGQgaW4gZmluYWwgY2FycnkgKi8NCkBAIC00NDMsNiArNDU5LDEx IEBAIGRlc3Q7CXN0YglyNiwwKHI0KQ0KIAlibHINCiANCiAuTHNyY19lcnJvcjoNCisJbGQJcjE0 LFNUS19SRUcocjE0KShyMSkNCisJbGQJcjE1LFNUS19SRUcocjE1KShyMSkNCisJbGQJcjE2LFNU S19SRUcocjE2KShyMSkNCisJYWRkaQlyMSxyMSxTVEFDS0ZSQU1FU0laRQ0KKy5Mc3JjX2Vycm9y X25yOg0KIAljbXBkaQkwLHI3LDANCiAJYmVxbHINCiAJbGkJcjYsLUVGQVVMVA0KQEAgLTQ1MCw2 ICs0NzEsMTEgQEAgZGVzdDsJc3RiCXI2LDAocjQpDQogCWJscg0KIA0KIC5MZGVzdF9lcnJvcjoN CisJbGQJcjE0LFNUS19SRUcocjE0KShyMSkNCisJbGQJcjE1LFNUS19SRUcocjE1KShyMSkNCisJ bGQJcjE2LFNUS19SRUcocjE2KShyMSkNCisJYWRkaQlyMSxyMSxTVEFDS0ZSQU1FU0laRQ0KKy5M ZGVzdF9lcnJvcl9ucjoNCiAJY21wZGkJMCxyOCwwDQogCWJlcWxyDQogCWxpCXI2LC1FRkFVTFQN CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC9lbnRyeS5TIGIvYXJjaC9zcGFyYy9rZXJu ZWwvZW50cnkuUw0KaW5kZXggZjQ0NWU5OC4uY2ZhYmMzZCAxMDA2NDQNCi0tLSBhL2FyY2gvc3Bh cmMva2VybmVsL2VudHJ5LlMNCisrKyBiL2FyY2gvc3BhcmMva2VybmVsL2VudHJ5LlMNCkBAIC0x MTc3LDcgKzExNzcsNyBAQCBzeXNfc2lncmV0dXJuOg0KIAkgbm9wDQogDQogCWNhbGwJc3lzY2Fs bF90cmFjZQ0KLQkgbm9wDQorCSBtb3YJMSwgJW8xDQogDQogMToNCiAJLyogV2UgZG9uJ3Qgd2Fu dCB0byBtdWNrIHdpdGggdXNlciByZWdpc3RlcnMgbGlrZSBhDQpkaWZmIC0tZ2l0IGEvYXJjaC9z cGFyYy9rZXJuZWwva3RsYi5TIGIvYXJjaC9zcGFyYy9rZXJuZWwva3RsYi5TDQppbmRleCA3OWYz MTAzLi43YzAwNzM1IDEwMDY0NA0KLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwva3RsYi5TDQorKysg Yi9hcmNoL3NwYXJjL2tlcm5lbC9rdGxiLlMNCkBAIC0yNSwxMSArMjUsMTAgQEAga3ZtYXBfaXRs YjoNCiAJICovDQoga3ZtYXBfaXRsYl80djoNCiANCi1rdm1hcF9pdGxiX25vbmxpbmVhcjoNCiAJ LyogQ2F0Y2gga2VybmVsIE5VTEwgcG9pbnRlciBjYWxscy4gICovDQogCXNldGhpCQklaGkoUEFH RV9TSVpFKSwgJWc1DQogCWNtcAkJJWc0LCAlZzUNCi0JYmxldSxwbgkJJXhjYywga3ZtYXBfZHRs Yl9sb25ncGF0aA0KKwlibHUscG4JCSV4Y2MsIGt2bWFwX2l0bGJfbG9uZ3BhdGgNCiAJIG5vcA0K IA0KIAlLRVJOX1RTQl9MT09LVVBfVEwxKCVnNCwgJWc2LCAlZzUsICVnMSwgJWcyLCAlZzMsIGt2 bWFwX2l0bGJfbG9hZCkNCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC9zeXNjYWxscy5T IGIvYXJjaC9zcGFyYy9rZXJuZWwvc3lzY2FsbHMuUw0KaW5kZXggN2Y1ZjY1ZC4uODE3MTg3ZCAx MDA2NDQNCi0tLSBhL2FyY2gvc3BhcmMva2VybmVsL3N5c2NhbGxzLlMNCisrKyBiL2FyY2gvc3Bh cmMva2VybmVsL3N5c2NhbGxzLlMNCkBAIC0xNDcsNyArMTQ3LDcgQEAgbGludXhfc3lzY2FsbF90 cmFjZTMyOg0KIAlzcmwJJWk0LCAwLCAlbzQNCiAJc3JsCSVpMSwgMCwgJW8xDQogCXNybAklaTIs IDAsICVvMg0KLQliYSxwdAkleGNjLCAyZg0KKwliYSxwdAkleGNjLCA1Zg0KIAkgc3JsCSVpMywg MCwgJW8zDQogDQogbGludXhfc3lzY2FsbF90cmFjZToNCkBAIC0xNzcsMTMgKzE3NywxMyBAQCBs aW51eF9zcGFyY19zeXNjYWxsMzI6DQogCXNybAklaTEsIDAsICVvMQkJCQkhIElFVTAJR3JvdXAN CiAJbGR4CVslZzYgKyBUSV9GTEFHU10sICVsMAkJISBMb2FkDQogDQotCXNybAklaTUsIDAsICVv NQkJCQkhIElFVTENCisJc3JsCSVpMywgMCwgJW8zCQkJCSEgSUVVMA0KIAlzcmwJJWkyLCAwLCAl bzIJCQkJISBJRVUwCUdyb3VwDQogCWFuZGNjCSVsMCwgKF9USUZfU1lTQ0FMTF9UUkFDRXxfVElG X1NFQ0NPTVB8X1RJRl9TWVNDQUxMX0FVRElUfF9USUZfU1lTQ0FMTF9UUkFDRVBPSU5UKSwgJWcw DQogCWJuZSxwbgklaWNjLCBsaW51eF9zeXNjYWxsX3RyYWNlMzIJCSEgQ1RJDQogCSBtb3YJJWkw LCAlbDUJCQkJISBJRVUxDQotCWNhbGwJJWw3CQkJCQkhIENUSQlHcm91cCBicmsgZm9yY2VkDQot CSBzcmwJJWkzLCAwLCAlbzMJCQkJISBJRVUwDQorNToJY2FsbAklbDcJCQkJCSEgQ1RJCUdyb3Vw IGJyayBmb3JjZWQNCisJIHNybAklaTUsIDAsICVvNQkJCQkhIElFVTENCiAJYmEsYSxwdAkleGNj LCAzZg0KIA0KIAkvKiBMaW51eCBuYXRpdmUgc3lzdGVtIGNhbGxzIGVudGVyIGhlcmUuLi4gKi8N CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC90cmFtcG9saW5lXzY0LlMgYi9hcmNoL3Nw YXJjL2tlcm5lbC90cmFtcG9saW5lXzY0LlMNCmluZGV4IGRhMWI3ODEuLjhmYTg0YTMgMTAwNjQ0 DQotLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC90cmFtcG9saW5lXzY0LlMNCisrKyBiL2FyY2gvc3Bh cmMva2VybmVsL3RyYW1wb2xpbmVfNjQuUw0KQEAgLTEzMSw3ICsxMzEsNiBAQCBzdGFydHVwX2Nv bnRpbnVlOg0KIAljbHIJCSVsNQ0KIAlzZXRoaQkJJWhpKG51bV9rZXJuZWxfaW1hZ2VfbWFwcGlu Z3MpLCAlbDYNCiAJbGR1dwkJWyVsNiArICVsbyhudW1fa2VybmVsX2ltYWdlX21hcHBpbmdzKV0s ICVsNg0KLQlhZGQJCSVsNiwgMSwgJWw2DQogDQogCW1vdgkJMTUsICVsNw0KIAlCUkFOQ0hfSUZf QU5ZX0NIRUVUQUgoZzEsZzUsMmYpDQpAQCAtMjI0LDcgKzIyMyw2IEBAIG5pYWdhcmFfbG9ja190 bGI6DQogCWNscgkJJWw1DQogCXNldGhpCQklaGkobnVtX2tlcm5lbF9pbWFnZV9tYXBwaW5ncyks ICVsNg0KIAlsZHV3CQlbJWw2ICsgJWxvKG51bV9rZXJuZWxfaW1hZ2VfbWFwcGluZ3MpXSwgJWw2 DQotCWFkZAkJJWw2LCAxLCAlbDYNCiANCiAxOg0KIAltb3YJCUhWX0ZBU1RfTU1VX01BUF9QRVJN X0FERFIsICVvNQ0KZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvbGliL2tzeW1zLmMgYi9hcmNoL3Nw YXJjL2xpYi9rc3ltcy5jDQppbmRleCAxYjMwYmIzLi5mYmI4MDA1IDEwMDY0NA0KLS0tIGEvYXJj aC9zcGFyYy9saWIva3N5bXMuYw0KKysrIGIvYXJjaC9zcGFyYy9saWIva3N5bXMuYw0KQEAgLTEz MSwxNSArMTMxLDYgQEAgRVhQT1JUX1NZTUJPTChfX19jb3B5X2Zyb21fdXNlcik7DQogRVhQT1JU X1NZTUJPTChfX19jb3B5X2luX3VzZXIpOw0KIEVYUE9SVF9TWU1CT0woX19jbGVhcl91c2VyKTsN CiANCi0vKiBSVyBzZW1hcGhvcmVzICovDQotRVhQT1JUX1NZTUJPTChfX2Rvd25fcmVhZCk7DQot RVhQT1JUX1NZTUJPTChfX2Rvd25fcmVhZF90cnlsb2NrKTsNCi1FWFBPUlRfU1lNQk9MKF9fZG93 bl93cml0ZSk7DQotRVhQT1JUX1NZTUJPTChfX2Rvd25fd3JpdGVfdHJ5bG9jayk7DQotRVhQT1JU X1NZTUJPTChfX3VwX3JlYWQpOw0KLUVYUE9SVF9TWU1CT0woX191cF93cml0ZSk7DQotRVhQT1JU X1NZTUJPTChfX2Rvd25ncmFkZV93cml0ZSk7DQotDQogLyogQXRvbWljIGNvdW50ZXIgaW1wbGVt ZW50YXRpb24uICovDQogRVhQT1JUX1NZTUJPTChhdG9taWNfYWRkKTsNCiBFWFBPUlRfU1lNQk9M KGF0b21pY19hZGRfcmV0KTsNCmRpZmYgLS1naXQgYS9hcmNoL3VuaWNvcmUzMi9tbS9pbml0LmMg Yi9hcmNoL3VuaWNvcmUzMi9tbS9pbml0LmMNCmluZGV4IDNiMzc5Y2QuLmQxYWY0ZWQgMTAwNjQ0 DQotLS0gYS9hcmNoL3VuaWNvcmUzMi9tbS9pbml0LmMNCisrKyBiL2FyY2gvdW5pY29yZTMyL21t L2luaXQuYw0KQEAgLTY1LDYgKzY1LDkgQEAgdm9pZCBzaG93X21lbSh1bnNpZ25lZCBpbnQgZmls dGVyKQ0KIAlwcmludGsoS0VSTl9ERUZBVUxUICJNZW0taW5mbzpcbiIpOw0KIAlzaG93X2ZyZWVf YXJlYXMoZmlsdGVyKTsNCiANCisJaWYgKGZpbHRlciAmIFNIT1dfTUVNX0ZJTFRFUl9QQUdFX0NP VU5UKQ0KKwkJcmV0dXJuOw0KKw0KIAlmb3JfZWFjaF9iYW5rKGksIG1pKSB7DQogCQlzdHJ1Y3Qg bWVtYmFuayAqYmFuayA9ICZtaS0+YmFua1tpXTsNCiAJCXVuc2lnbmVkIGludCBwZm4xLCBwZm4y Ow0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9yZWJvb3QuYyBiL2FyY2gveDg2L2tlcm5l bC9yZWJvb3QuYw0KaW5kZXggNDdmNGU1Zi4uYTRlMWI0YiAxMDA2NDQNCi0tLSBhL2FyY2gveDg2 L2tlcm5lbC9yZWJvb3QuYw0KKysrIGIvYXJjaC94ODYva2VybmVsL3JlYm9vdC5jDQpAQCAtNDY4 LDYgKzQ2OCwyMiBAQCBzdGF0aWMgc3RydWN0IGRtaV9zeXN0ZW1faWQgX19pbml0ZGF0YSBwY2lf cmVib290X2RtaV90YWJsZVtdID0gew0KIAkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAi UHJlY2lzaW9uIE02NjAwIiksDQogCQl9LA0KIAl9LA0KKwl7CS8qIEhhbmRsZSBwcm9ibGVtcyB3 aXRoIHJlYm9vdGluZyBvbiB0aGUgRGVsbCBQb3dlckVkZ2UgQzYxMDAuICovDQorCQkuY2FsbGJh Y2sgPSBzZXRfcGNpX3JlYm9vdCwNCisJCS5pZGVudCA9ICJEZWxsIFBvd2VyRWRnZSBDNjEwMCIs DQorCQkubWF0Y2hlcyA9IHsNCisJCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJEZWxsIElu Yy4iKSwNCisJCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIkM2MTAwIiksDQorCQl9LA0K Kwl9LA0KKwl7CS8qIFNvbWUgQzYxMDAgbWFjaGluZXMgd2VyZSBzaGlwcGVkIHdpdGggdmVuZG9y IGJlaW5nICdEZWxsJy4gKi8NCisJCS5jYWxsYmFjayA9IHNldF9wY2lfcmVib290LA0KKwkJLmlk ZW50ID0gIkRlbGwgUG93ZXJFZGdlIEM2MTAwIiwNCisJCS5tYXRjaGVzID0gew0KKwkJCURNSV9N QVRDSChETUlfU1lTX1ZFTkRPUiwgIkRlbGwiKSwNCisJCQlETUlfTUFUQ0goRE1JX1BST0RVQ1Rf TkFNRSwgIkM2MTAwIiksDQorCQl9LA0KKwl9LA0KIAl7IH0NCiB9Ow0KIA0KZGlmZiAtLWdpdCBh L2FyY2gveDg2L3BsYXRmb3JtL2VmaS9lZmkuYyBiL2FyY2gveDg2L3BsYXRmb3JtL2VmaS9lZmku Yw0KaW5kZXggZjk1MzdlMy4uYTE4ZDIwZCAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L3BsYXRmb3Jt L2VmaS9lZmkuYw0KKysrIGIvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaS5jDQpAQCAtNzAzLDEw ICs3MDMsMTMgQEAgdm9pZCBfX2luaXQgZWZpX2VudGVyX3ZpcnR1YWxfbW9kZSh2b2lkKQ0KIA0K IAlmb3IgKHAgPSBtZW1tYXAubWFwOyBwIDwgbWVtbWFwLm1hcF9lbmQ7IHAgKz0gbWVtbWFwLmRl c2Nfc2l6ZSkgew0KIAkJbWQgPSBwOw0KLQkJaWYgKCEobWQtPmF0dHJpYnV0ZSAmIEVGSV9NRU1P UllfUlVOVElNRSkgJiYNCi0JCSAgICBtZC0+dHlwZSAhPSBFRklfQk9PVF9TRVJWSUNFU19DT0RF ICYmDQotCQkgICAgbWQtPnR5cGUgIT0gRUZJX0JPT1RfU0VSVklDRVNfREFUQSkNCi0JCQljb250 aW51ZTsNCisJCWlmICghKG1kLT5hdHRyaWJ1dGUgJiBFRklfTUVNT1JZX1JVTlRJTUUpKSB7DQor I2lmZGVmIENPTkZJR19YODZfNjQNCisJCQlpZiAobWQtPnR5cGUgIT0gRUZJX0JPT1RfU0VSVklD RVNfQ09ERSAmJg0KKwkJCSAgICBtZC0+dHlwZSAhPSBFRklfQk9PVF9TRVJWSUNFU19EQVRBKQ0K KyNlbmRpZg0KKwkJCQljb250aW51ZTsNCisJCX0NCiANCiAJCXNpemUgPSBtZC0+bnVtX3BhZ2Vz IDw8IEVGSV9QQUdFX1NISUZUOw0KIAkJZW5kID0gbWQtPnBoeXNfYWRkciArIHNpemU7DQpkaWZm IC0tZ2l0IGEvY3J5cHRvL2FwaS5jIGIvY3J5cHRvL2FwaS5jDQppbmRleCAwMzNhNzE0Li5jZWEz Y2Y2IDEwMDY0NA0KLS0tIGEvY3J5cHRvL2FwaS5jDQorKysgYi9jcnlwdG8vYXBpLmMNCkBAIC0z NCw2ICszNCw4IEBAIEVYUE9SVF9TWU1CT0xfR1BMKGNyeXB0b19hbGdfc2VtKTsNCiBCTE9DS0lO R19OT1RJRklFUl9IRUFEKGNyeXB0b19jaGFpbik7DQogRVhQT1JUX1NZTUJPTF9HUEwoY3J5cHRv X2NoYWluKTsNCiANCitzdGF0aWMgc3RydWN0IGNyeXB0b19hbGcgKmNyeXB0b19sYXJ2YWxfd2Fp dChzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnKTsNCisNCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBjcnlw dG9fYWxnICpjcnlwdG9fYWxnX2dldChzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnKQ0KIHsNCiAJYXRv bWljX2luYygmYWxnLT5jcmFfcmVmY250KTsNCkBAIC0xNTAsOCArMTUyLDExIEBAIHN0YXRpYyBz dHJ1Y3QgY3J5cHRvX2FsZyAqY3J5cHRvX2xhcnZhbF9hZGQoY29uc3QgY2hhciAqbmFtZSwgdTMy IHR5cGUsDQogCX0NCiAJdXBfd3JpdGUoJmNyeXB0b19hbGdfc2VtKTsNCiANCi0JaWYgKGFsZyAh PSAmbGFydmFsLT5hbGcpDQorCWlmIChhbGcgIT0gJmxhcnZhbC0+YWxnKSB7DQogCQlrZnJlZShs YXJ2YWwpOw0KKwkJaWYgKGNyeXB0b19pc19sYXJ2YWwoYWxnKSkNCisJCQlhbGcgPSBjcnlwdG9f bGFydmFsX3dhaXQoYWxnKTsNCisJfQ0KIA0KIAlyZXR1cm4gYWxnOw0KIH0NCmRpZmYgLS1naXQg YS9kcml2ZXJzL2FjcGkvYWNwaV9pcG1pLmMgYi9kcml2ZXJzL2FjcGkvYWNwaV9pcG1pLmMNCmlu ZGV4IGY0MGFjZWYuLmE2OTc3ZTEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2FjcGkvYWNwaV9pcG1p LmMNCisrKyBiL2RyaXZlcnMvYWNwaS9hY3BpX2lwbWkuYw0KQEAgLTM5LDYgKzM5LDcgQEANCiAj aW5jbHVkZSA8bGludXgvaXBtaS5oPg0KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4NCiAjaW5j bHVkZSA8bGludXgvcG5wLmg+DQorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+DQogDQogTU9E VUxFX0FVVEhPUigiWmhhbyBZYWt1aSIpOw0KIE1PRFVMRV9ERVNDUklQVElPTigiQUNQSSBJUE1J IE9wcmVnaW9uIGRyaXZlciIpOw0KQEAgLTU3LDcgKzU4LDcgQEAgc3RydWN0IGFjcGlfaXBtaV9k ZXZpY2Ugew0KIAlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7DQogCS8qIHRoZSBJUE1JIHJlcXVlc3Qg bWVzc2FnZSBsaXN0ICovDQogCXN0cnVjdCBsaXN0X2hlYWQgdHhfbXNnX2xpc3Q7DQotCXN0cnVj dCBtdXRleAl0eF9tc2dfbG9jazsNCisJc3BpbmxvY2tfdAl0eF9tc2dfbG9jazsNCiAJYWNwaV9o YW5kbGUgaGFuZGxlOw0KIAlzdHJ1Y3QgcG5wX2RldiAqcG5wX2RldjsNCiAJaXBtaV91c2VyX3QJ dXNlcl9pbnRlcmZhY2U7DQpAQCAtMTQ3LDYgKzE0OCw3IEBAIHN0YXRpYyB2b2lkIGFjcGlfZm9y bWF0X2lwbWlfbXNnKHN0cnVjdCBhY3BpX2lwbWlfbXNnICp0eF9tc2csDQogCXN0cnVjdCBrZXJu ZWxfaXBtaV9tc2cgKm1zZzsNCiAJc3RydWN0IGFjcGlfaXBtaV9idWZmZXIgKmJ1ZmZlcjsNCiAJ c3RydWN0IGFjcGlfaXBtaV9kZXZpY2UgKmRldmljZTsNCisJdW5zaWduZWQgbG9uZyBmbGFnczsN CiANCiAJbXNnID0gJnR4X21zZy0+dHhfbWVzc2FnZTsNCiAJLyoNCkBAIC0xNzcsMTAgKzE3OSwx MCBAQCBzdGF0aWMgdm9pZCBhY3BpX2Zvcm1hdF9pcG1pX21zZyhzdHJ1Y3QgYWNwaV9pcG1pX21z ZyAqdHhfbXNnLA0KIA0KIAkvKiBHZXQgdGhlIG1zZ2lkICovDQogCWRldmljZSA9IHR4X21zZy0+ ZGV2aWNlOw0KLQltdXRleF9sb2NrKCZkZXZpY2UtPnR4X21zZ19sb2NrKTsNCisJc3Bpbl9sb2Nr X2lycXNhdmUoJmRldmljZS0+dHhfbXNnX2xvY2ssIGZsYWdzKTsNCiAJZGV2aWNlLT5jdXJyX21z Z2lkKys7DQogCXR4X21zZy0+dHhfbXNnaWQgPSBkZXZpY2UtPmN1cnJfbXNnaWQ7DQotCW11dGV4 X3VubG9jaygmZGV2aWNlLT50eF9tc2dfbG9jayk7DQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmRldmljZS0+dHhfbXNnX2xvY2ssIGZsYWdzKTsNCiB9DQogDQogc3RhdGljIHZvaWQgYWNwaV9m b3JtYXRfaXBtaV9yZXNwb25zZShzdHJ1Y3QgYWNwaV9pcG1pX21zZyAqbXNnLA0KQEAgLTI0Miw2 ICsyNDQsNyBAQCBzdGF0aWMgdm9pZCBpcG1pX21zZ19oYW5kbGVyKHN0cnVjdCBpcG1pX3JlY3Zf bXNnICptc2csIHZvaWQgKnVzZXJfbXNnX2RhdGEpDQogCWludCBtc2dfZm91bmQgPSAwOw0KIAlz dHJ1Y3QgYWNwaV9pcG1pX21zZyAqdHhfbXNnOw0KIAlzdHJ1Y3QgcG5wX2RldiAqcG5wX2RldiA9 IGlwbWlfZGV2aWNlLT5wbnBfZGV2Ow0KKwl1bnNpZ25lZCBsb25nIGZsYWdzOw0KIA0KIAlpZiAo bXNnLT51c2VyICE9IGlwbWlfZGV2aWNlLT51c2VyX2ludGVyZmFjZSkgew0KIAkJZGV2X3dhcm4o JnBucF9kZXYtPmRldiwgIlVuZXhwZWN0ZWQgcmVzcG9uc2UgaXMgcmV0dXJuZWQuICINCkBAIC0y NTAsNyArMjUzLDcgQEAgc3RhdGljIHZvaWQgaXBtaV9tc2dfaGFuZGxlcihzdHJ1Y3QgaXBtaV9y ZWN2X21zZyAqbXNnLCB2b2lkICp1c2VyX21zZ19kYXRhKQ0KIAkJaXBtaV9mcmVlX3JlY3ZfbXNn KG1zZyk7DQogCQlyZXR1cm47DQogCX0NCi0JbXV0ZXhfbG9jaygmaXBtaV9kZXZpY2UtPnR4X21z Z19sb2NrKTsNCisJc3Bpbl9sb2NrX2lycXNhdmUoJmlwbWlfZGV2aWNlLT50eF9tc2dfbG9jaywg ZmxhZ3MpOw0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHR4X21zZywgJmlwbWlfZGV2aWNlLT50eF9t c2dfbGlzdCwgaGVhZCkgew0KIAkJaWYgKG1zZy0+bXNnaWQgPT0gdHhfbXNnLT50eF9tc2dpZCkg ew0KIAkJCW1zZ19mb3VuZCA9IDE7DQpAQCAtMjU4LDcgKzI2MSw3IEBAIHN0YXRpYyB2b2lkIGlw bWlfbXNnX2hhbmRsZXIoc3RydWN0IGlwbWlfcmVjdl9tc2cgKm1zZywgdm9pZCAqdXNlcl9tc2df ZGF0YSkNCiAJCX0NCiAJfQ0KIA0KLQltdXRleF91bmxvY2soJmlwbWlfZGV2aWNlLT50eF9tc2df bG9jayk7DQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlwbWlfZGV2aWNlLT50eF9tc2dfbG9j aywgZmxhZ3MpOw0KIAlpZiAoIW1zZ19mb3VuZCkgew0KIAkJZGV2X3dhcm4oJnBucF9kZXYtPmRl diwgIlVuZXhwZWN0ZWQgcmVzcG9uc2UgKG1zZyBpZCAlbGQpIGlzICINCiAJCQkicmV0dXJuZWQu XG4iLCBtc2ctPm1zZ2lkKTsNCkBAIC0zNzgsNiArMzgxLDcgQEAgYWNwaV9pcG1pX3NwYWNlX2hh bmRsZXIodTMyIGZ1bmN0aW9uLCBhY3BpX3BoeXNpY2FsX2FkZHJlc3MgYWRkcmVzcywNCiAJc3Ry dWN0IGFjcGlfaXBtaV9kZXZpY2UgKmlwbWlfZGV2aWNlID0gaGFuZGxlcl9jb250ZXh0Ow0KIAlp bnQgZXJyLCByZW1fdGltZTsNCiAJYWNwaV9zdGF0dXMgc3RhdHVzOw0KKwl1bnNpZ25lZCBsb25n IGZsYWdzOw0KIAkvKg0KIAkgKiBJUE1JIG9wcmVnaW9uIG1lc3NhZ2UuDQogCSAqIElQTUkgbWVz c2FnZSBpcyBmaXJzdGx5IHdyaXR0ZW4gdG8gdGhlIEJNQyBhbmQgc3lzdGVtIHNvZnR3YXJlDQpA QCAtMzk1LDkgKzM5OSw5IEBAIGFjcGlfaXBtaV9zcGFjZV9oYW5kbGVyKHUzMiBmdW5jdGlvbiwg YWNwaV9waHlzaWNhbF9hZGRyZXNzIGFkZHJlc3MsDQogCQlyZXR1cm4gQUVfTk9fTUVNT1JZOw0K IA0KIAlhY3BpX2Zvcm1hdF9pcG1pX21zZyh0eF9tc2csIGFkZHJlc3MsIHZhbHVlKTsNCi0JbXV0 ZXhfbG9jaygmaXBtaV9kZXZpY2UtPnR4X21zZ19sb2NrKTsNCisJc3Bpbl9sb2NrX2lycXNhdmUo JmlwbWlfZGV2aWNlLT50eF9tc2dfbG9jaywgZmxhZ3MpOw0KIAlsaXN0X2FkZF90YWlsKCZ0eF9t c2ctPmhlYWQsICZpcG1pX2RldmljZS0+dHhfbXNnX2xpc3QpOw0KLQltdXRleF91bmxvY2soJmlw bWlfZGV2aWNlLT50eF9tc2dfbG9jayk7DQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlwbWlf ZGV2aWNlLT50eF9tc2dfbG9jaywgZmxhZ3MpOw0KIAllcnIgPSBpcG1pX3JlcXVlc3Rfc2V0dGlt ZShpcG1pX2RldmljZS0+dXNlcl9pbnRlcmZhY2UsDQogCQkJCQkmdHhfbXNnLT5hZGRyLA0KIAkJ CQkJdHhfbXNnLT50eF9tc2dpZCwNCkBAIC00MTMsOSArNDE3LDkgQEAgYWNwaV9pcG1pX3NwYWNl X2hhbmRsZXIodTMyIGZ1bmN0aW9uLCBhY3BpX3BoeXNpY2FsX2FkZHJlc3MgYWRkcmVzcywNCiAJ c3RhdHVzID0gQUVfT0s7DQogDQogZW5kX2xhYmVsOg0KLQltdXRleF9sb2NrKCZpcG1pX2Rldmlj ZS0+dHhfbXNnX2xvY2spOw0KKwlzcGluX2xvY2tfaXJxc2F2ZSgmaXBtaV9kZXZpY2UtPnR4X21z Z19sb2NrLCBmbGFncyk7DQogCWxpc3RfZGVsKCZ0eF9tc2ctPmhlYWQpOw0KLQltdXRleF91bmxv Y2soJmlwbWlfZGV2aWNlLT50eF9tc2dfbG9jayk7DQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmlwbWlfZGV2aWNlLT50eF9tc2dfbG9jaywgZmxhZ3MpOw0KIAlrZnJlZSh0eF9tc2cpOw0KIAly ZXR1cm4gc3RhdHVzOw0KIH0NCkBAIC00NTcsNyArNDYxLDcgQEAgc3RhdGljIHZvaWQgYWNwaV9h ZGRfaXBtaV9kZXZpY2Uoc3RydWN0IGFjcGlfaXBtaV9kZXZpY2UgKmlwbWlfZGV2aWNlKQ0KIA0K IAlJTklUX0xJU1RfSEVBRCgmaXBtaV9kZXZpY2UtPmhlYWQpOw0KIA0KLQltdXRleF9pbml0KCZp cG1pX2RldmljZS0+dHhfbXNnX2xvY2spOw0KKwlzcGluX2xvY2tfaW5pdCgmaXBtaV9kZXZpY2Ut PnR4X21zZ19sb2NrKTsNCiAJSU5JVF9MSVNUX0hFQUQoJmlwbWlfZGV2aWNlLT50eF9tc2dfbGlz dCk7DQogCWlwbWlfaW5zdGFsbF9zcGFjZV9oYW5kbGVyKGlwbWlfZGV2aWNlKTsNCiANCmRpZmYg LS1naXQgYS9kcml2ZXJzL2FjcGkvZWMuYyBiL2RyaXZlcnMvYWNwaS9lYy5jDQppbmRleCA1MWRl MTg2Li44MTc2YjgyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hY3BpL2VjLmMNCisrKyBiL2RyaXZl cnMvYWNwaS9lYy5jDQpAQCAtOTY0LDYgKzk2NCwxMCBAQCBzdGF0aWMgc3RydWN0IGRtaV9zeXN0 ZW1faWQgX19pbml0ZGF0YSBlY19kbWlfdGFibGVbXSA9IHsNCiAJZWNfZW5sYXJnZV9zdG9ybV90 aHJlc2hvbGQsICJDTEVWTyBoYXJkd2FyZSIsIHsNCiAJRE1JX01BVENIKERNSV9TWVNfVkVORE9S LCAiQ0xFVk8gQ28uIiksDQogCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiTTcyMFQvTTcz MFQiKSx9LCBOVUxMfSwNCisJew0KKwllY192YWxpZGF0ZV9lY2R0LCAiQVNVUyBoYXJkd2FyZSIs IHsNCisJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiQVNVU1RlayBDb21wdXRlciBJbmMuIiks DQorCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiTDRSIiksfSwgTlVMTH0sDQogCXt9LA0K IH07DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9jY2lzcy5jIGIvZHJpdmVycy9ibG9j ay9jY2lzcy5jDQppbmRleCBkMzQ0NmY2Li5kN2FkODY1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9i bG9jay9jY2lzcy5jDQorKysgYi9kcml2ZXJzL2Jsb2NrL2NjaXNzLmMNCkBAIC0xMTg2LDYgKzEx ODYsNyBAQCBzdGF0aWMgaW50IGNjaXNzX2lvY3RsMzJfcGFzc3RocnUoc3RydWN0IGJsb2NrX2Rl dmljZSAqYmRldiwgZm1vZGVfdCBtb2RlLA0KIAlpbnQgZXJyOw0KIAl1MzIgY3A7DQogDQorCW1l bXNldCgmYXJnNjQsIDAsIHNpemVvZihhcmc2NCkpOw0KIAllcnIgPSAwOw0KIAllcnIgfD0NCiAJ ICAgIGNvcHlfZnJvbV91c2VyKCZhcmc2NC5MVU5faW5mbywgJmFyZzMyLT5MVU5faW5mbywNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2NwcWFycmF5LmMgYi9kcml2ZXJzL2Jsb2NrL2NwcWFy cmF5LmMNCmluZGV4IDkxMjViYmUuLjUwNGJjMTYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Jsb2Nr L2NwcWFycmF5LmMNCisrKyBiL2RyaXZlcnMvYmxvY2svY3BxYXJyYXkuYw0KQEAgLTExOTUsNiAr MTE5NSw3IEBAIG91dF9wYXNzdGhydToNCiAJCWlkYV9wY2lfaW5mb19zdHJ1Y3QgcGNpaW5mbzsN CiANCiAJCWlmICghYXJnKSByZXR1cm4gLUVJTlZBTDsNCisJCW1lbXNldCgmcGNpaW5mbywgMCwg c2l6ZW9mKHBjaWluZm8pKTsNCiAJCXBjaWluZm8uYnVzID0gaG9zdC0+cGNpX2Rldi0+YnVzLT5u dW1iZXI7DQogCQlwY2lpbmZvLmRldl9mbiA9IGhvc3QtPnBjaV9kZXYtPmRldmZuOw0KIAkJcGNp aW5mby5ib2FyZF9pZCA9IGhvc3QtPmJvYXJkX2lkOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmx1 ZXRvb3RoL2F0aDNrLmMgYi9kcml2ZXJzL2JsdWV0b290aC9hdGgzay5jDQppbmRleCBiZGU3MmY3 Li4zNTM5ZjliIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvYXRoM2suYw0KKysrIGIv ZHJpdmVycy9ibHVldG9vdGgvYXRoM2suYw0KQEAgLTg0LDYgKzg0LDcgQEAgc3RhdGljIHN0cnVj dCB1c2JfZGV2aWNlX2lkIGF0aDNrX3RhYmxlW10gPSB7DQogCXsgVVNCX0RFVklDRSgweDA0Q0Es IDB4MzAwOCkgfSwNCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzMzYyKSB9LA0KIAl7IFVTQl9E RVZJQ0UoMHgwQ0YzLCAweEUwMDQpIH0sDQorCXsgVVNCX0RFVklDRSgweDBDRjMsIDB4RTAwNSkg fSwNCiAJeyBVU0JfREVWSUNFKDB4MDkzMCwgMHgwMjE5KSB9LA0KIAl7IFVTQl9ERVZJQ0UoMHgw NDg5LCAweGUwNTcpIH0sDQogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM5MykgfSwNCkBAIC0x MjUsNiArMTI2LDcgQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGF0aDNrX2JsaXN0X3Ri bFtdID0gew0KIAl7IFVTQl9ERVZJQ0UoMHgwNGNhLCAweDMwMDgpLCAuZHJpdmVyX2luZm8gPSBC VFVTQl9BVEgzMDEyIH0sDQogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM2MiksIC5kcml2ZXJf aW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwNCiAJeyBVU0JfREVWSUNFKDB4MGNmMywgMHhlMDA0KSwg LmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LA0KKwl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAw eGUwMDUpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sDQogCXsgVVNCX0RFVklDRSgw eDA5MzAsIDB4MDIxOSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwNCiAJeyBVU0Jf REVWSUNFKDB4MDQ4OSwgMHhlMDU3KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LA0K IAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzOTMpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgz MDEyIH0sDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYyBiL2RyaXZlcnMv Ymx1ZXRvb3RoL2J0dXNiLmMNCmluZGV4IDFiZDM5MjQuLmYxOGI1YTIgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL2JsdWV0b290aC9idHVzYi5jDQorKysgYi9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5j DQpAQCAtMTA4LDYgKzEwOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBidHVzYl90 YWJsZVtdID0gew0KIA0KIAkvKiBCcm9hZGNvbSBCQ00yMDcwMkEwICovDQogCXsgVVNCX0RFVklD RSgweDBiMDUsIDB4MTdiNSkgfSwNCisJeyBVU0JfREVWSUNFKDB4MGIwNSwgMHgxN2NiKSB9LA0K IAl7IFVTQl9ERVZJQ0UoMHgwNGNhLCAweDIwMDMpIH0sDQogCXsgVVNCX0RFVklDRSgweDA0ODks IDB4ZTA0MikgfSwNCiAJeyBVU0JfREVWSUNFKDB4NDEzYywgMHg4MTk3KSB9LA0KQEAgLTE1NCw2 ICsxNTUsNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYmxhY2tsaXN0X3RhYmxlW10g PSB7DQogCXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MzAwOCksIC5kcml2ZXJfaW5mbyA9IEJUVVNC X0FUSDMwMTIgfSwNCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzMzYyKSwgLmRyaXZlcl9pbmZv ID0gQlRVU0JfQVRIMzAxMiB9LA0KIAl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweGUwMDQpLCAuZHJp dmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sDQorCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4ZTAw NSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwNCiAJeyBVU0JfREVWSUNFKDB4MDkz MCwgMHgwMjE5KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LA0KIAl7IFVTQl9ERVZJ Q0UoMHgwNDg5LCAweGUwNTcpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sDQogCXsg VVNCX0RFVklDRSgweDEzZDMsIDB4MzM5MyksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIg fSwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZWRpZC5jDQppbmRleCA3MjExZjY3Li43MmY0NjBlIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9lZGlkLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5j DQpAQCAtMTI1LDYgKzEyNSw5IEBAIHN0YXRpYyBzdHJ1Y3QgZWRpZF9xdWlyayB7DQogDQogCS8q IFZpZXdTb25pYyBWQTIwMjZ3ICovDQogCXsgIlZTQyIsIDUwMjAsIEVESURfUVVJUktfRk9SQ0Vf UkVEVUNFRF9CTEFOS0lORyB9LA0KKw0KKwkvKiBNZWRpb24gTUQgMzAyMTcgUEcgKi8NCisJeyAi TUVEIiwgMHg3YjgsIEVESURfUVVJUktfUFJFRkVSX0xBUkdFXzc1IH0sDQogfTsNCiANCiAvKioq IEREQyBmZXRjaCBhbmQgYmxvY2sgdmFsaWRhdGlvbiAqKiovDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMNCmluZGV4IGEwN2NjYWIuLjcyMTYzZTggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jDQpA QCAtNjIxLDcgKzYyMSwxOCBAQCBpbnRlbF9kcF9pMmNfYXV4X2NoKHN0cnVjdCBpMmNfYWRhcHRl ciAqYWRhcHRlciwgaW50IG1vZGUsDQogCQkJRFJNX0RFQlVHX0tNUygiYXV4X2NoIG5hdGl2ZSBu YWNrXG4iKTsNCiAJCQlyZXR1cm4gLUVSRU1PVEVJTzsNCiAJCWNhc2UgQVVYX05BVElWRV9SRVBM WV9ERUZFUjoNCi0JCQl1ZGVsYXkoMTAwKTsNCisJCQkvKg0KKwkJCSAqIEZvciBub3csIGp1c3Qg Z2l2ZSBtb3JlIHNsYWNrIHRvIGJyYW5jaCBkZXZpY2VzLiBXZQ0KKwkJCSAqIGNvdWxkIGNoZWNr IHRoZSBEUENEIGZvciBJMkMgYml0IHJhdGUgY2FwYWJpbGl0aWVzLA0KKwkJCSAqIGFuZCBpZiBh dmFpbGFibGUsIGFkanVzdCB0aGUgaW50ZXJ2YWwuIFdlIGNvdWxkIGFsc28NCisJCQkgKiBiZSBt b3JlIGNhcmVmdWwgd2l0aCBEUC10by1MZWdhY3kgYWRhcHRlcnMgd2hlcmUgYQ0KKwkJCSAqIGxv bmcgbGVnYWN5IGNhYmxlIG1heSBmb3JjZSB2ZXJ5IGxvdyBJMkMgYml0IHJhdGVzLg0KKwkJCSAq Lw0KKwkJCWlmIChpbnRlbF9kcC0+ZHBjZFtEUF9ET1dOU1RSRUFNUE9SVF9QUkVTRU5UXSAmDQor CQkJICAgIERQX0RXTl9TVFJNX1BPUlRfUFJFU0VOVCkNCisJCQkJdXNsZWVwX3JhbmdlKDUwMCwg NjAwKTsNCisJCQllbHNlDQorCQkJCXVzbGVlcF9yYW5nZSgzMDAsIDQwMCk7DQogCQkJY29udGlu dWU7DQogCQlkZWZhdWx0Og0KIAkJCURSTV9FUlJPUigiYXV4X2NoIGludmFsaWQgbmF0aXZlIHJl cGx5IDB4JTAyeFxuIiwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9v cHJlZ2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYw0KaW5kZXgg Y2ZmYjAwNy4uMzU2YTI1MiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X29wcmVnaW9uLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9uLmMN CkBAIC0xNjEsNyArMTYxLDcgQEAgc3RhdGljIHUzMiBhc2xlX3NldF9iYWNrbGlnaHQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdTMyIGJjbHApDQogDQogCW1heCA9IGludGVsX3BhbmVsX2dldF9t YXhfYmFja2xpZ2h0KGRldik7DQogCWludGVsX3BhbmVsX3NldF9iYWNrbGlnaHQoZGV2LCBiY2xw ICogbWF4IC8gMjU1KTsNCi0JYXNsZS0+Y2JsdiA9IChiY2xwKjB4NjQpLzB4ZmYgfCBBU0xFX0NC TFZfVkFMSUQ7DQorCWFzbGUtPmNibHYgPSBESVZfUk9VTkRfVVAoYmNscCAqIDEwMCwgMjU1KSB8 IEFTTEVfQ0JMVl9WQUxJRDsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3NfZW5jb2RlcnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vYXRvbWJpb3NfZW5jb2RlcnMuYw0KaW5kZXggZjBkYzA0Yi4uMzE3MTI5NCAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3NfZW5jb2RlcnMuYw0KKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19lbmNvZGVycy5jDQpAQCAtMTM4NSw4ICsx Mzg1LDEyIEBAIHJhZGVvbl9hdG9tX2VuY29kZXJfZHBtc19kaWcoc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyLCBpbnQgbW9kZSkNCiAJCQlhdG9tYmlvc19kaWdfZW5jb2Rlcl9zZXR1cChlbmNv ZGVyLCBBVE9NX0VOQUJMRSwgMCk7DQogCQkJYXRvbWJpb3NfZGlnX3RyYW5zbWl0dGVyX3NldHVw KGVuY29kZXIsIEFUT01fVFJBTlNNSVRURVJfQUNUSU9OX1NFVFVQLCAwLCAwKTsNCiAJCQlhdG9t Ymlvc19kaWdfdHJhbnNtaXR0ZXJfc2V0dXAoZW5jb2RlciwgQVRPTV9UUkFOU01JVFRFUl9BQ1RJ T05fRU5BQkxFLCAwLCAwKTsNCi0JCQkvKiBzb21lIGVhcmx5IGRjZTMuMiBib2FyZHMgaGF2ZSBh IGJ1ZyBpbiB0aGVpciB0cmFuc21pdHRlciBjb250cm9sIHRhYmxlICovDQotCQkJaWYgKChyZGV2 LT5mYW1pbHkgIT0gQ0hJUF9SVjcxMCkgJiYgKHJkZXYtPmZhbWlseSAhPSBDSElQX1JWNzMwKSkN CisJCQkvKiBzb21lIGRjZTMueCBib2FyZHMgaGF2ZSBhIGJ1ZyBpbiB0aGVpciB0cmFuc21pdHRl ciBjb250cm9sIHRhYmxlLg0KKwkJCSAqIEFDVElPTl9FTkFCTEVfT1VUUFVUIGNhbiBwcm9iYWJs eSBiZSBkcm9wcGVkIHNpbmNlIEFDVElPTl9FTkFCTEUNCisJCQkgKiBkb2VzIHRoZSBzYW1lIHRo aW5nIGFuZCBtb3JlLg0KKwkJCSAqLw0KKwkJCWlmICgocmRldi0+ZmFtaWx5ICE9IENISVBfUlY3 MTApICYmIChyZGV2LT5mYW1pbHkgIT0gQ0hJUF9SVjczMCkgJiYNCisJCQkgICAgKHJkZXYtPmZh bWlseSAhPSBDSElQX1JTODgwKSkNCiAJCQkJYXRvbWJpb3NfZGlnX3RyYW5zbWl0dGVyX3NldHVw KGVuY29kZXIsIEFUT01fVFJBTlNNSVRURVJfQUNUSU9OX0VOQUJMRV9PVVRQVVQsIDAsIDApOw0K IAkJfQ0KIAkJaWYgKEVOQ09ERVJfTU9ERV9JU19EUChhdG9tYmlvc19nZXRfZW5jb2Rlcl9tb2Rl KGVuY29kZXIpKSAmJiBjb25uZWN0b3IpIHsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL2V2ZXJncmVlbi5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYw0K aW5kZXggZjU5NjJhMC4uYTY4MDU3YSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vZXZlcmdyZWVuLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMN CkBAIC01MDEsNyArNTAxLDggQEAgc3RhdGljIHUzMiBldmVyZ3JlZW5fbGluZV9idWZmZXJfYWRq dXN0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LA0KIAkJCQkJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGUsDQogCQkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqb3RoZXJfbW9kZSkN CiB7DQotCXUzMiB0bXA7DQorCXUzMiB0bXAsIGJ1ZmZlcl9hbGxvYywgaTsNCisJdTMyIHBpcGVf b2Zmc2V0ID0gcmFkZW9uX2NydGMtPmNydGNfaWQgKiAweDIwOw0KIAkvKg0KIAkgKiBMaW5lIEJ1 ZmZlciBTZXR1cA0KIAkgKiBUaGVyZSBhcmUgMyBsaW5lIGJ1ZmZlcnMsIGVhY2ggb25lIHNoYXJl ZCBieSAyIGRpc3BsYXkgY29udHJvbGxlcnMuDQpAQCAtNTI0LDE4ICs1MjUsMzQgQEAgc3RhdGlj IHUzMiBldmVyZ3JlZW5fbGluZV9idWZmZXJfYWRqdXN0KHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LA0KIAkgKiBub24tbGlua2VkIGNydGNzIGZvciBtYXhpbXVtIGxpbmUgYnVmZmVyIGFsbG9j YXRpb24uDQogCSAqLw0KIAlpZiAocmFkZW9uX2NydGMtPmJhc2UuZW5hYmxlZCAmJiBtb2RlKSB7 DQotCQlpZiAob3RoZXJfbW9kZSkNCisJCWlmIChvdGhlcl9tb2RlKSB7DQogCQkJdG1wID0gMDsg LyogMS8yICovDQotCQllbHNlDQorCQkJYnVmZmVyX2FsbG9jID0gMTsNCisJCX0gZWxzZSB7DQog CQkJdG1wID0gMjsgLyogd2hvbGUgKi8NCi0JfSBlbHNlDQorCQkJYnVmZmVyX2FsbG9jID0gMjsN CisJCX0NCisJfSBlbHNlIHsNCiAJCXRtcCA9IDA7DQorCQlidWZmZXJfYWxsb2MgPSAwOw0KKwl9 DQogDQogCS8qIHNlY29uZCBjb250cm9sbGVyIG9mIHRoZSBwYWlyIHVzZXMgc2Vjb25kIGhhbGYg b2YgdGhlIGxiICovDQogCWlmIChyYWRlb25fY3J0Yy0+Y3J0Y19pZCAlIDIpDQogCQl0bXAgKz0g NDsNCiAJV1JFRzMyKERDX0xCX01FTU9SWV9TUExJVCArIHJhZGVvbl9jcnRjLT5jcnRjX29mZnNl dCwgdG1wKTsNCiANCisJaWYgKEFTSUNfSVNfRENFNDEocmRldikgfHwgQVNJQ19JU19EQ0U1KHJk ZXYpKSB7DQorCQlXUkVHMzIoUElQRTBfRE1JRl9CVUZGRVJfQ09OVFJPTCArIHBpcGVfb2Zmc2V0 LA0KKwkJICAgICAgIERNSUZfQlVGRkVSU19BTExPQ0FURUQoYnVmZmVyX2FsbG9jKSk7DQorCQlm b3IgKGkgPSAwOyBpIDwgcmRldi0+dXNlY190aW1lb3V0OyBpKyspIHsNCisJCQlpZiAoUlJFRzMy KFBJUEUwX0RNSUZfQlVGRkVSX0NPTlRST0wgKyBwaXBlX29mZnNldCkgJg0KKwkJCSAgICBETUlG X0JVRkZFUlNfQUxMT0NBVEVEX0NPTVBMRVRFRCkNCisJCQkJYnJlYWs7DQorCQkJdWRlbGF5KDEp Ow0KKwkJfQ0KKwl9DQorDQogCWlmIChyYWRlb25fY3J0Yy0+YmFzZS5lbmFibGVkICYmIG1vZGUp IHsNCiAJCXN3aXRjaCAodG1wKSB7DQogCQljYXNlIDA6DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5kLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJn cmVlbmQuaA0KaW5kZXggZmU0NGE5NS4uNDdmM2JkMiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vZXZlcmdyZWVuZC5oDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2 ZXJncmVlbmQuaA0KQEAgLTQ1OSw2ICs0NTksMTAgQEANCiAjICAgICAgIGRlZmluZSBMQVRFTkNZ X0xPV19XQVRFUk1BUksoeCkgICAgICAgICAgICAgICAgICAgKCh4KSA8PCAwKQ0KICMgICAgICAg ZGVmaW5lIExBVEVOQ1lfSElHSF9XQVRFUk1BUksoeCkgICAgICAgICAgICAgICAgICAoKHgpIDw8 IDE2KQ0KIA0KKyNkZWZpbmUJUElQRTBfRE1JRl9CVUZGRVJfQ09OVFJPTAkJCSAgMHgwY2EwDQor IyAgICAgICBkZWZpbmUgRE1JRl9CVUZGRVJTX0FMTE9DQVRFRCh4KSAgICAgICAgICAgICAgICAg ICgoeCkgPDwgMCkNCisjICAgICAgIGRlZmluZSBETUlGX0JVRkZFUlNfQUxMT0NBVEVEX0NPTVBM RVRFRCAgICAgICAgICAgKDEgPDwgNCkNCisNCiAjZGVmaW5lIElIX1JCX0NOVEwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZTAwDQogIyAgICAgICBkZWZpbmUgSUhf UkJfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApDQogIyAgICAg ICBkZWZpbmUgSUhfSUJfU0laRSh4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoeCkg PDwgMSkgLyogbG9nMiAqLw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2F0b21iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdG9tYmlvcy5j DQppbmRleCAzODNiMzhlLi5jZGE4OWM2YiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2F0b21iaW9zLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2F0b21iaW9zLmMNCkBAIC03MDksMTMgKzcwOSwxNiBAQCBib29sIHJhZGVvbl9nZXRfYXRv bV9jb25uZWN0b3JfaW5mb19mcm9tX29iamVjdF90YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQ0KIAkJCQkJCQkJKEFUT01fU1JDX0RTVF9UQUJMRV9GT1JfT05FX09CSkVDVCAqKQ0KIAkJCQkJ CQkJKGN0eC0+YmlvcyArIGRhdGFfb2Zmc2V0ICsNCiAJCQkJCQkJCSBsZTE2X3RvX2NwdShyb3V0 ZXJfb2JqLT5hc09iamVjdHNba10udXNTcmNEc3RUYWJsZU9mZnNldCkpOw0KKwkJCQkJCQl1OCAq bnVtX2RzdF9vYmpzID0gKHU4ICopDQorCQkJCQkJCQkoKHU4ICopcm91dGVyX3NyY19kc3RfdGFi bGUgKyAxICsNCisJCQkJCQkJCSAocm91dGVyX3NyY19kc3RfdGFibGUtPnVjTnVtYmVyT2ZTcmMg KiAyKSk7DQorCQkJCQkJCXUxNiAqZHN0X29ianMgPSAodTE2ICopKG51bV9kc3Rfb2JqcyArIDEp Ow0KIAkJCQkJCQlpbnQgZW51bV9pZDsNCiANCiAJCQkJCQkJcm91dGVyLnJvdXRlcl9pZCA9IHJv dXRlcl9vYmpfaWQ7DQotCQkJCQkJCWZvciAoZW51bV9pZCA9IDA7IGVudW1faWQgPCByb3V0ZXJf c3JjX2RzdF90YWJsZS0+dWNOdW1iZXJPZkRzdDsNCi0JCQkJCQkJICAgICBlbnVtX2lkKyspIHsN CisJCQkJCQkJZm9yIChlbnVtX2lkID0gMDsgZW51bV9pZCA8ICgqbnVtX2RzdF9vYmpzKTsgZW51 bV9pZCsrKSB7DQogCQkJCQkJCQlpZiAobGUxNl90b19jcHUocGF0aC0+dXNDb25uT2JqZWN0SWQp ID09DQotCQkJCQkJCQkgICAgbGUxNl90b19jcHUocm91dGVyX3NyY19kc3RfdGFibGUtPnVzRHN0 T2JqZWN0SURbZW51bV9pZF0pKQ0KKwkJCQkJCQkJICAgIGxlMTZfdG9fY3B1KGRzdF9vYmpzW2Vu dW1faWRdKSkNCiAJCQkJCQkJCQlicmVhazsNCiAJCQkJCQkJfQ0KIA0KQEAgLTE2MTYsNyArMTYx OSw5IEBAIHN0cnVjdCByYWRlb25fZW5jb2Rlcl9hdG9tX2RpZyAqcmFkZW9uX2F0b21iaW9zX2dl dF9sdmRzX2luZm8oc3RydWN0DQogCQkJCQkJCQlrZnJlZShlZGlkKTsNCiAJCQkJCQl9DQogCQkJ CQl9DQotCQkJCQlyZWNvcmQgKz0gc2l6ZW9mKEFUT01fRkFLRV9FRElEX1BBVENIX1JFQ09SRCk7 DQorCQkJCQlyZWNvcmQgKz0gZmFrZV9lZGlkX3JlY29yZC0+dWNGYWtlRURJRExlbmd0aCA/DQor CQkJCQkJZmFrZV9lZGlkX3JlY29yZC0+dWNGYWtlRURJRExlbmd0aCArIDIgOg0KKwkJCQkJCXNp emVvZihBVE9NX0ZBS0VfRURJRF9QQVRDSF9SRUNPUkQpOw0KIAkJCQkJYnJlYWs7DQogCQkJCWNh c2UgTENEX1BBTkVMX1JFU09MVVRJT05fUkVDT1JEX1RZUEU6DQogCQkJCQlwYW5lbF9yZXNfcmVj b3JkID0gKEFUT01fUEFORUxfUkVTT0xVVElPTl9QQVRDSF9SRUNPUkQgKilyZWNvcmQ7DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jDQppbmRleCA2ZmQ1M2I2Li5i MTAxODQzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVj dG9ycy5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb25uZWN0b3JzLmMN CkBAIC0xMzg3LDYgKzEzODcsMjQgQEAgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgcmFkZW9u X2RwX2Nvbm5lY3Rvcl9mdW5jcyA9IHsNCiAJLmZvcmNlID0gcmFkZW9uX2R2aV9mb3JjZSwNCiB9 Ow0KIA0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyByYWRlb25fZWRw X2Nvbm5lY3Rvcl9mdW5jcyA9IHsNCisJLmRwbXMgPSBkcm1faGVscGVyX2Nvbm5lY3Rvcl9kcG1z LA0KKwkuZGV0ZWN0ID0gcmFkZW9uX2RwX2RldGVjdCwNCisJLmZpbGxfbW9kZXMgPSBkcm1faGVs cGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsDQorCS5zZXRfcHJvcGVydHkgPSByYWRl b25fbHZkc19zZXRfcHJvcGVydHksDQorCS5kZXN0cm95ID0gcmFkZW9uX2RwX2Nvbm5lY3Rvcl9k ZXN0cm95LA0KKwkuZm9yY2UgPSByYWRlb25fZHZpX2ZvcmNlLA0KK307DQorDQorc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHJhZGVvbl9sdmRzX2JyaWRnZV9jb25uZWN0 b3JfZnVuY3MgPSB7DQorCS5kcG1zID0gZHJtX2hlbHBlcl9jb25uZWN0b3JfZHBtcywNCisJLmRl dGVjdCA9IHJhZGVvbl9kcF9kZXRlY3QsDQorCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9i ZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLA0KKwkuc2V0X3Byb3BlcnR5ID0gcmFkZW9uX2x2ZHNf c2V0X3Byb3BlcnR5LA0KKwkuZGVzdHJveSA9IHJhZGVvbl9kcF9jb25uZWN0b3JfZGVzdHJveSwN CisJLmZvcmNlID0gcmFkZW9uX2R2aV9mb3JjZSwNCit9Ow0KKw0KIHZvaWQNCiByYWRlb25fYWRk X2F0b21fY29ubmVjdG9yKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsDQogCQkJICB1aW50MzJfdCBj b25uZWN0b3JfaWQsDQpAQCAtMTQ3OCw4ICsxNDk2LDYgQEAgcmFkZW9uX2FkZF9hdG9tX2Nvbm5l Y3RvcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0KIAkJCWdvdG8gZmFpbGVkOw0KIAkJcmFkZW9u X2RpZ19jb25uZWN0b3ItPmlncF9sYW5lX2luZm8gPSBpZ3BfbGFuZV9pbmZvOw0KIAkJcmFkZW9u X2Nvbm5lY3Rvci0+Y29uX3ByaXYgPSByYWRlb25fZGlnX2Nvbm5lY3RvcjsNCi0JCWRybV9jb25u ZWN0b3JfaW5pdChkZXYsICZyYWRlb25fY29ubmVjdG9yLT5iYXNlLCAmcmFkZW9uX2RwX2Nvbm5l Y3Rvcl9mdW5jcywgY29ubmVjdG9yX3R5cGUpOw0KLQkJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRk KCZyYWRlb25fY29ubmVjdG9yLT5iYXNlLCAmcmFkZW9uX2RwX2Nvbm5lY3Rvcl9oZWxwZXJfZnVu Y3MpOw0KIAkJaWYgKGkyY19idXMtPnZhbGlkKSB7DQogCQkJLyogYWRkIERQIGkyYyBidXMgKi8N CiAJCQlpZiAoY29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX2VEUCkNCkBAIC0x NDk2LDYgKzE1MTIsMTAgQEAgcmFkZW9uX2FkZF9hdG9tX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LA0KIAkJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfVkdBOg0KIAkJY2FzZSBEUk1f TU9ERV9DT05ORUNUT1JfRFZJQToNCiAJCWRlZmF1bHQ6DQorCQkJZHJtX2Nvbm5lY3Rvcl9pbml0 KGRldiwgJnJhZGVvbl9jb25uZWN0b3ItPmJhc2UsDQorCQkJCQkgICAmcmFkZW9uX2RwX2Nvbm5l Y3Rvcl9mdW5jcywgY29ubmVjdG9yX3R5cGUpOw0KKwkJCWRybV9jb25uZWN0b3JfaGVscGVyX2Fk ZCgmcmFkZW9uX2Nvbm5lY3Rvci0+YmFzZSwNCisJCQkJCQkgJnJhZGVvbl9kcF9jb25uZWN0b3Jf aGVscGVyX2Z1bmNzKTsNCiAJCQljb25uZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0gdHJ1ZTsN CiAJCQljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IHRydWU7DQogCQkJcmFkZW9uX2Nv bm5lY3Rvci0+ZGFjX2xvYWRfZGV0ZWN0ID0gdHJ1ZTsNCkBAIC0xNTA4LDYgKzE1MjgsMTAgQEAg cmFkZW9uX2FkZF9hdG9tX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0KIAkJY2Fz ZSBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUE6DQogCQljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9I RE1JQjoNCiAJCWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0Og0KKwkJCWRybV9j b25uZWN0b3JfaW5pdChkZXYsICZyYWRlb25fY29ubmVjdG9yLT5iYXNlLA0KKwkJCQkJICAgJnJh ZGVvbl9kcF9jb25uZWN0b3JfZnVuY3MsIGNvbm5lY3Rvcl90eXBlKTsNCisJCQlkcm1fY29ubmVj dG9yX2hlbHBlcl9hZGQoJnJhZGVvbl9jb25uZWN0b3ItPmJhc2UsDQorCQkJCQkJICZyYWRlb25f ZHBfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7DQogCQkJZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfcHJv cGVydHkoJnJhZGVvbl9jb25uZWN0b3ItPmJhc2UsDQogCQkJCQkJICAgICAgcmRldi0+bW9kZV9p bmZvLnVuZGVyc2Nhbl9wcm9wZXJ0eSwNCiAJCQkJCQkgICAgICBVTkRFUlNDQU5fT0ZGKTsNCkBA IC0xNTMyLDYgKzE1NTYsMTAgQEAgcmFkZW9uX2FkZF9hdG9tX2Nvbm5lY3RvcihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LA0KIAkJCWJyZWFrOw0KIAkJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfTFZE UzoNCiAJCWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX2VEUDoNCisJCQlkcm1fY29ubmVjdG9yX2lu aXQoZGV2LCAmcmFkZW9uX2Nvbm5lY3Rvci0+YmFzZSwNCisJCQkJCSAgICZyYWRlb25fbHZkc19i cmlkZ2VfY29ubmVjdG9yX2Z1bmNzLCBjb25uZWN0b3JfdHlwZSk7DQorCQkJZHJtX2Nvbm5lY3Rv cl9oZWxwZXJfYWRkKCZyYWRlb25fY29ubmVjdG9yLT5iYXNlLA0KKwkJCQkJCSAmcmFkZW9uX2Rw X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOw0KIAkJCWRybV9jb25uZWN0b3JfYXR0YWNoX3Byb3Bl cnR5KCZyYWRlb25fY29ubmVjdG9yLT5iYXNlLA0KIAkJCQkJCSAgICAgIGRldi0+bW9kZV9jb25m aWcuc2NhbGluZ19tb2RlX3Byb3BlcnR5LA0KIAkJCQkJCSAgICAgIERSTV9NT0RFX1NDQUxFX0ZV TExTQ1JFRU4pOw0KQEAgLTE2OTUsNyArMTcyMyw3IEBAIHJhZGVvbl9hZGRfYXRvbV9jb25uZWN0 b3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCiAJCQkJZ290byBmYWlsZWQ7DQogCQkJcmFkZW9u X2RpZ19jb25uZWN0b3ItPmlncF9sYW5lX2luZm8gPSBpZ3BfbGFuZV9pbmZvOw0KIAkJCXJhZGVv bl9jb25uZWN0b3ItPmNvbl9wcml2ID0gcmFkZW9uX2RpZ19jb25uZWN0b3I7DQotCQkJZHJtX2Nv bm5lY3Rvcl9pbml0KGRldiwgJnJhZGVvbl9jb25uZWN0b3ItPmJhc2UsICZyYWRlb25fZHBfY29u bmVjdG9yX2Z1bmNzLCBjb25uZWN0b3JfdHlwZSk7DQorCQkJZHJtX2Nvbm5lY3Rvcl9pbml0KGRl diwgJnJhZGVvbl9jb25uZWN0b3ItPmJhc2UsICZyYWRlb25fZWRwX2Nvbm5lY3Rvcl9mdW5jcywg Y29ubmVjdG9yX3R5cGUpOw0KIAkJCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmcmFkZW9uX2Nv bm5lY3Rvci0+YmFzZSwgJnJhZGVvbl9kcF9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsNCiAJCQlp ZiAoaTJjX2J1cy0+dmFsaWQpIHsNCiAJCQkJLyogYWRkIERQIGkyYyBidXMgKi8NCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2RldmljZS5jDQppbmRleCBjZDk0YWJiLi44Y2RlODRiIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMNCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2RldmljZS5jDQpAQCAtODE4LDEwICs4MTgsMTYg QEAgaW50IHJhZGVvbl9kZXZpY2VfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwNCiAJ CQlyZXR1cm4gcjsNCiAJfQ0KIAlpZiAocmFkZW9uX3Rlc3RpbmcpIHsNCi0JCXJhZGVvbl90ZXN0 X21vdmVzKHJkZXYpOw0KKwkJaWYgKHJkZXYtPmFjY2VsX3dvcmtpbmcpDQorCQkJcmFkZW9uX3Rl c3RfbW92ZXMocmRldik7DQorCQllbHNlDQorCQkJRFJNX0lORk8oInJhZGVvbjogYWNjZWxlcmF0 aW9uIGRpc2FibGVkLCBza2lwcGluZyBtb3ZlIHRlc3RzXG4iKTsNCiAJfQ0KIAlpZiAocmFkZW9u X2JlbmNobWFya2luZykgew0KLQkJcmFkZW9uX2JlbmNobWFyayhyZGV2LCByYWRlb25fYmVuY2ht YXJraW5nKTsNCisJCWlmIChyZGV2LT5hY2NlbF93b3JraW5nKQ0KKwkJCXJhZGVvbl9iZW5jaG1h cmsocmRldiwgcmFkZW9uX2JlbmNobWFya2luZyk7DQorCQllbHNlDQorCQkJRFJNX0lORk8oInJh ZGVvbjogYWNjZWxlcmF0aW9uIGRpc2FibGVkLCBza2lwcGluZyBiZW5jaG1hcmtzXG4iKTsNCiAJ fQ0KIAlyZXR1cm4gMDsNCiB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y czQwMC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczQwMC5jDQppbmRleCA0ZGQ5NTEyLi5j MDg3NDM0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczQwMC5jDQorKysg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JzNDAwLmMNCkBAIC0xNzQsMTAgKzE3NCwxMyBAQCBp bnQgcnM0MDBfZ2FydF9lbmFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpDQogCS8qIEZJ WE1FOiBhY2NvcmRpbmcgdG8gZG9jIHdlIHNob3VsZCBzZXQgSElERV9NTUNGR19CQVI9MCwNCiAJ ICogQUdQTU9ERTMwPTAgJiBBR1AzMEVOSEFOQ0VEPTAgaW4gTkJfQ05UTCAqLw0KIAlpZiAoKHJk ZXYtPmZhbWlseSA9PSBDSElQX1JTNjkwKSB8fCAocmRldi0+ZmFtaWx5ID09IENISVBfUlM3NDAp KSB7DQotCQlXUkVHMzJfTUMoUlM0ODBfTUNfTUlTQ19DTlRMLA0KLQkJCSAgKFJTNDgwX0dBUlRf SU5ERVhfUkVHX0VOIHwgUlM2OTBfQkxPQ0tfR0ZYX0QzX0VOKSk7DQorCQl0bXAgPSBSUkVHMzJf TUMoUlM0ODBfTUNfTUlTQ19DTlRMKTsNCisJCXRtcCB8PSBSUzQ4MF9HQVJUX0lOREVYX1JFR19F TiB8IFJTNjkwX0JMT0NLX0dGWF9EM19FTjsNCisJCVdSRUczMl9NQyhSUzQ4MF9NQ19NSVNDX0NO VEwsIHRtcCk7DQogCX0gZWxzZSB7DQotCQlXUkVHMzJfTUMoUlM0ODBfTUNfTUlTQ19DTlRMLCBS UzQ4MF9HQVJUX0lOREVYX1JFR19FTik7DQorCQl0bXAgPSBSUkVHMzJfTUMoUlM0ODBfTUNfTUlT Q19DTlRMKTsNCisJCXRtcCB8PSBSUzQ4MF9HQVJUX0lOREVYX1JFR19FTjsNCisJCVdSRUczMl9N QyhSUzQ4MF9NQ19NSVNDX0NOVEwsIHRtcCk7DQogCX0NCiAJLyogRW5hYmxlIGdhcnQgKi8NCiAJ V1JFRzMyX01DKFJTNDgwX0FHUF9BRERSRVNTX1NQQUNFX1NJWkUsIChSUzQ4MF9HQVJUX0VOIHwg c2l6ZV9yZWcpKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtY29yZS5jIGIvZHJpdmVy cy9oaWQvaGlkLWNvcmUuYw0KaW5kZXggNjExYWFmYy4uOWFjNDM4OSAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvaGlkL2hpZC1jb3JlLmMNCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1jb3JlLmMNCkBAIC01 OSw2ICs1OSw4IEBAIHN0cnVjdCBoaWRfcmVwb3J0ICpoaWRfcmVnaXN0ZXJfcmVwb3J0KHN0cnVj dCBoaWRfZGV2aWNlICpkZXZpY2UsIHVuc2lnbmVkIHR5cGUsDQogCXN0cnVjdCBoaWRfcmVwb3J0 X2VudW0gKnJlcG9ydF9lbnVtID0gZGV2aWNlLT5yZXBvcnRfZW51bSArIHR5cGU7DQogCXN0cnVj dCBoaWRfcmVwb3J0ICpyZXBvcnQ7DQogDQorCWlmIChpZCA+PSBISURfTUFYX0lEUykNCisJCXJl dHVybiBOVUxMOw0KIAlpZiAocmVwb3J0X2VudW0tPnJlcG9ydF9pZF9oYXNoW2lkXSkNCiAJCXJl dHVybiByZXBvcnRfZW51bS0+cmVwb3J0X2lkX2hhc2hbaWRdOw0KIA0KQEAgLTIxNiw5ICsyMTgs OSBAQCBzdGF0aWMgaW50IGhpZF9hZGRfZmllbGQoc3RydWN0IGhpZF9wYXJzZXIgKnBhcnNlciwg dW5zaWduZWQgcmVwb3J0X3R5cGUsIHVuc2lnbg0KIHsNCiAJc3RydWN0IGhpZF9yZXBvcnQgKnJl cG9ydDsNCiAJc3RydWN0IGhpZF9maWVsZCAqZmllbGQ7DQotCWludCB1c2FnZXM7DQorCXVuc2ln bmVkIHVzYWdlczsNCiAJdW5zaWduZWQgb2Zmc2V0Ow0KLQlpbnQgaTsNCisJdW5zaWduZWQgaTsN CiANCiAJcmVwb3J0ID0gaGlkX3JlZ2lzdGVyX3JlcG9ydChwYXJzZXItPmRldmljZSwgcmVwb3J0 X3R5cGUsIHBhcnNlci0+Z2xvYmFsLnJlcG9ydF9pZCk7DQogCWlmICghcmVwb3J0KSB7DQpAQCAt MjM3LDcgKzIzOSw4IEBAIHN0YXRpYyBpbnQgaGlkX2FkZF9maWVsZChzdHJ1Y3QgaGlkX3BhcnNl ciAqcGFyc2VyLCB1bnNpZ25lZCByZXBvcnRfdHlwZSwgdW5zaWduDQogCWlmICghcGFyc2VyLT5s b2NhbC51c2FnZV9pbmRleCkgLyogSWdub3JlIHBhZGRpbmcgZmllbGRzICovDQogCQlyZXR1cm4g MDsNCiANCi0JdXNhZ2VzID0gbWF4X3QoaW50LCBwYXJzZXItPmxvY2FsLnVzYWdlX2luZGV4LCBw YXJzZXItPmdsb2JhbC5yZXBvcnRfY291bnQpOw0KKwl1c2FnZXMgPSBtYXhfdCh1bnNpZ25lZCwg cGFyc2VyLT5sb2NhbC51c2FnZV9pbmRleCwNCisJCQkJIHBhcnNlci0+Z2xvYmFsLnJlcG9ydF9j b3VudCk7DQogDQogCWZpZWxkID0gaGlkX3JlZ2lzdGVyX2ZpZWxkKHJlcG9ydCwgdXNhZ2VzLCBw YXJzZXItPmdsb2JhbC5yZXBvcnRfY291bnQpOw0KIAlpZiAoIWZpZWxkKQ0KQEAgLTI0OCw3ICsy NTEsNyBAQCBzdGF0aWMgaW50IGhpZF9hZGRfZmllbGQoc3RydWN0IGhpZF9wYXJzZXIgKnBhcnNl ciwgdW5zaWduZWQgcmVwb3J0X3R5cGUsIHVuc2lnbg0KIAlmaWVsZC0+YXBwbGljYXRpb24gPSBo aWRfbG9va3VwX2NvbGxlY3Rpb24ocGFyc2VyLCBISURfQ09MTEVDVElPTl9BUFBMSUNBVElPTik7 DQogDQogCWZvciAoaSA9IDA7IGkgPCB1c2FnZXM7IGkrKykgew0KLQkJaW50IGogPSBpOw0KKwkJ dW5zaWduZWQgaiA9IGk7DQogCQkvKiBEdXBsaWNhdGUgdGhlIGxhc3QgdXNhZ2Ugd2UgcGFyc2Vk IGlmIHdlIGhhdmUgZXhjZXNzIHZhbHVlcyAqLw0KIAkJaWYgKGkgPj0gcGFyc2VyLT5sb2NhbC51 c2FnZV9pbmRleCkNCiAJCQlqID0gcGFyc2VyLT5sb2NhbC51c2FnZV9pbmRleCAtIDE7DQpAQCAt MzgwLDggKzM4MywxMCBAQCBzdGF0aWMgaW50IGhpZF9wYXJzZXJfZ2xvYmFsKHN0cnVjdCBoaWRf cGFyc2VyICpwYXJzZXIsIHN0cnVjdCBoaWRfaXRlbSAqaXRlbSkNCiANCiAJY2FzZSBISURfR0xP QkFMX0lURU1fVEFHX1JFUE9SVF9JRDoNCiAJCXBhcnNlci0+Z2xvYmFsLnJlcG9ydF9pZCA9IGl0 ZW1fdWRhdGEoaXRlbSk7DQotCQlpZiAocGFyc2VyLT5nbG9iYWwucmVwb3J0X2lkID09IDApIHsN Ci0JCQlkYmdfaGlkKCJyZXBvcnRfaWQgMCBpcyBpbnZhbGlkXG4iKTsNCisJCWlmIChwYXJzZXIt Pmdsb2JhbC5yZXBvcnRfaWQgPT0gMCB8fA0KKwkJICAgIHBhcnNlci0+Z2xvYmFsLnJlcG9ydF9p ZCA+PSBISURfTUFYX0lEUykgew0KKwkJCWRiZ19oaWQoInJlcG9ydF9pZCAldSBpcyBpbnZhbGlk XG4iLA0KKwkJCQlwYXJzZXItPmdsb2JhbC5yZXBvcnRfaWQpOw0KIAkJCXJldHVybiAtMTsNCiAJ CX0NCiAJCXJldHVybiAwOw0KQEAgLTU1Miw3ICs1NTcsNyBAQCBzdGF0aWMgdm9pZCBoaWRfZGV2 aWNlX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2KQ0KIAlmb3IgKGkgPSAwOyBpIDwgSElEX1JF UE9SVF9UWVBFUzsgaSsrKSB7DQogCQlzdHJ1Y3QgaGlkX3JlcG9ydF9lbnVtICpyZXBvcnRfZW51 bSA9IGRldmljZS0+cmVwb3J0X2VudW0gKyBpOw0KIA0KLQkJZm9yIChqID0gMDsgaiA8IDI1Njsg aisrKSB7DQorCQlmb3IgKGogPSAwOyBqIDwgSElEX01BWF9JRFM7IGorKykgew0KIAkJCXN0cnVj dCBoaWRfcmVwb3J0ICpyZXBvcnQgPSByZXBvcnRfZW51bS0+cmVwb3J0X2lkX2hhc2hbal07DQog CQkJaWYgKHJlcG9ydCkNCiAJCQkJaGlkX2ZyZWVfcmVwb3J0KHJlcG9ydCk7DQpAQCAtNzEwLDYg KzcxNSw2NCBAQCBlcnI6DQogfQ0KIEVYUE9SVF9TWU1CT0xfR1BMKGhpZF9wYXJzZV9yZXBvcnQp Ow0KIA0KK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaGlkX3JlcG9ydF9uYW1lc1tdID0gew0K KwkiSElEX0lOUFVUX1JFUE9SVCIsDQorCSJISURfT1VUUFVUX1JFUE9SVCIsDQorCSJISURfRkVB VFVSRV9SRVBPUlQiLA0KK307DQorLyoqDQorICogaGlkX3ZhbGlkYXRlX3ZhbHVlcyAtIHZhbGlk YXRlIGV4aXN0aW5nIGRldmljZSByZXBvcnQncyB2YWx1ZSBpbmRleGVzDQorICoNCisgKiBAZGV2 aWNlOiBoaWQgZGV2aWNlDQorICogQHR5cGU6IHdoaWNoIHJlcG9ydCB0eXBlIHRvIGV4YW1pbmUN CisgKiBAaWQ6IHdoaWNoIHJlcG9ydCBJRCB0byBleGFtaW5lICgwIGZvciBmaXJzdCkNCisgKiBA ZmllbGRfaW5kZXg6IHdoaWNoIHJlcG9ydCBmaWVsZCB0byBleGFtaW5lDQorICogQHJlcG9ydF9j b3VudHM6IGV4cGVjdGVkIG51bWJlciBvZiB2YWx1ZXMNCisgKg0KKyAqIFZhbGlkYXRlIHRoZSBu dW1iZXIgb2YgdmFsdWVzIGluIGEgZ2l2ZW4gZmllbGQgb2YgYSBnaXZlbiByZXBvcnQsIGFmdGVy DQorICogcGFyc2luZy4NCisgKi8NCitzdHJ1Y3QgaGlkX3JlcG9ydCAqaGlkX3ZhbGlkYXRlX3Zh bHVlcyhzdHJ1Y3QgaGlkX2RldmljZSAqaGlkLA0KKwkJCQkgICAgICAgdW5zaWduZWQgaW50IHR5 cGUsIHVuc2lnbmVkIGludCBpZCwNCisJCQkJICAgICAgIHVuc2lnbmVkIGludCBmaWVsZF9pbmRl eCwNCisJCQkJICAgICAgIHVuc2lnbmVkIGludCByZXBvcnRfY291bnRzKQ0KK3sNCisJc3RydWN0 IGhpZF9yZXBvcnQgKnJlcG9ydDsNCisNCisJaWYgKHR5cGUgPiBISURfRkVBVFVSRV9SRVBPUlQp IHsNCisJCWhpZF9lcnIoaGlkLCAiaW52YWxpZCBISUQgcmVwb3J0IHR5cGUgJXVcbiIsIHR5cGUp Ow0KKwkJcmV0dXJuIE5VTEw7DQorCX0NCisNCisJaWYgKGlkID49IEhJRF9NQVhfSURTKSB7DQor CQloaWRfZXJyKGhpZCwgImludmFsaWQgSElEIHJlcG9ydCBpZCAldVxuIiwgaWQpOw0KKwkJcmV0 dXJuIE5VTEw7DQorCX0NCisNCisJLyoNCisJICogRXhwbGljaXRseSBub3QgdXNpbmcgaGlkX2dl dF9yZXBvcnQoKSBoZXJlIHNpbmNlIGl0IGRlcGVuZHMgb24NCisJICogLT5udW1iZXJlZCBiZWlu ZyBjaGVja2VkLCB3aGljaCBtYXkgbm90IGFsd2F5cyBiZSB0aGUgY2FzZSB3aGVuDQorCSAqIGRy aXZlcnMgZ28gdG8gYWNjZXNzIHJlcG9ydCB2YWx1ZXMuDQorCSAqLw0KKwlyZXBvcnQgPSBoaWQt PnJlcG9ydF9lbnVtW3R5cGVdLnJlcG9ydF9pZF9oYXNoW2lkXTsNCisJaWYgKCFyZXBvcnQpIHsN CisJCWhpZF9lcnIoaGlkLCAibWlzc2luZyAlcyAldVxuIiwgaGlkX3JlcG9ydF9uYW1lc1t0eXBl XSwgaWQpOw0KKwkJcmV0dXJuIE5VTEw7DQorCX0NCisJaWYgKHJlcG9ydC0+bWF4ZmllbGQgPD0g ZmllbGRfaW5kZXgpIHsNCisJCWhpZF9lcnIoaGlkLCAibm90IGVub3VnaCBmaWVsZHMgaW4gJXMg JXVcbiIsDQorCQkJaGlkX3JlcG9ydF9uYW1lc1t0eXBlXSwgaWQpOw0KKwkJcmV0dXJuIE5VTEw7 DQorCX0NCisJaWYgKHJlcG9ydC0+ZmllbGRbZmllbGRfaW5kZXhdLT5yZXBvcnRfY291bnQgPCBy ZXBvcnRfY291bnRzKSB7DQorCQloaWRfZXJyKGhpZCwgIm5vdCBlbm91Z2ggdmFsdWVzIGluICVz ICV1IGZpZWxkICV1XG4iLA0KKwkJCWhpZF9yZXBvcnRfbmFtZXNbdHlwZV0sIGlkLCBmaWVsZF9p bmRleCk7DQorCQlyZXR1cm4gTlVMTDsNCisJfQ0KKwlyZXR1cm4gcmVwb3J0Ow0KK30NCitFWFBP UlRfU1lNQk9MX0dQTChoaWRfdmFsaWRhdGVfdmFsdWVzKTsNCisNCiAvKg0KICAqIENvbnZlcnQg YSBzaWduZWQgbi1iaXQgaW50ZWdlciB0byBzaWduZWQgMzItYml0IGludGVnZXIuIENvbW1vbg0K ICAqIGNhc2VzIGFyZSBkb25lIHRocm91Z2ggdGhlIGNvbXBpbGVyLCB0aGUgc2NyZXdlZCB0aGlu Z3MgaGFzIHRvIGJlDQpAQCAtOTkwLDcgKzEwNTMsMTIgQEAgRVhQT1JUX1NZTUJPTF9HUEwoaGlk X291dHB1dF9yZXBvcnQpOw0KIA0KIGludCBoaWRfc2V0X2ZpZWxkKHN0cnVjdCBoaWRfZmllbGQg KmZpZWxkLCB1bnNpZ25lZCBvZmZzZXQsIF9fczMyIHZhbHVlKQ0KIHsNCi0JdW5zaWduZWQgc2l6 ZSA9IGZpZWxkLT5yZXBvcnRfc2l6ZTsNCisJdW5zaWduZWQgc2l6ZTsNCisNCisJaWYgKCFmaWVs ZCkNCisJCXJldHVybiAtMTsNCisNCisJc2l6ZSA9IGZpZWxkLT5yZXBvcnRfc2l6ZTsNCiANCiAJ aGlkX2R1bXBfaW5wdXQoZmllbGQtPnJlcG9ydC0+ZGV2aWNlLCBmaWVsZC0+dXNhZ2UgKyBvZmZz ZXQsIHZhbHVlKTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtaWRzLmggYi9kcml2 ZXJzL2hpZC9oaWQtaWRzLmgNCmluZGV4IDA4MDc1ZjIuLmNhMmIzZTYgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL2hpZC9oaWQtaWRzLmgNCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1pZHMuaA0KQEAgLTU4 MSw2ICs1ODEsNyBAQA0KICNkZWZpbmUgVVNCX0RFVklDRV9JRF9OVFJJR19UT1VDSF9TQ1JFRU5f MTYgICAweDAwMTINCiAjZGVmaW5lIFVTQl9ERVZJQ0VfSURfTlRSSUdfVE9VQ0hfU0NSRUVOXzE3 ICAgMHgwMDEzDQogI2RlZmluZSBVU0JfREVWSUNFX0lEX05UUklHX1RPVUNIX1NDUkVFTl8xOCAg IDB4MDAxNA0KKyNkZWZpbmUgVVNCX0RFVklDRV9JRF9OVFJJR19EVU9TRU5TRSAweDE1MDANCiAN CiAjZGVmaW5lIFVTQl9WRU5ET1JfSURfT05UUkFLCQkweDBhMDcNCiAjZGVmaW5lIFVTQl9ERVZJ Q0VfSURfT05UUkFLX0FEVTEwMAkweDAwNjQNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQt aW5wdXQuYyBiL2RyaXZlcnMvaGlkL2hpZC1pbnB1dC5jDQppbmRleCBmMzMzMTM5Li45NWM3OWEz IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9oaWQvaGlkLWlucHV0LmMNCisrKyBiL2RyaXZlcnMvaGlk L2hpZC1pbnB1dC5jDQpAQCAtMjg0LDYgKzI4NCwxMCBAQCBzdGF0aWMgdm9pZCBoaWRpbnB1dF9j b25maWd1cmVfdXNhZ2Uoc3RydWN0IGhpZF9pbnB1dCAqaGlkaW5wdXQsIHN0cnVjdCBoaWRfZmll bA0KIAlpZiAoZmllbGQtPmZsYWdzICYgSElEX01BSU5fSVRFTV9DT05TVEFOVCkNCiAJCWdvdG8g aWdub3JlOw0KIA0KKwkvKiBJZ25vcmUgaWYgcmVwb3J0IGNvdW50IGlzIG91dCBvZiBib3VuZHMu ICovDQorCWlmIChmaWVsZC0+cmVwb3J0X2NvdW50IDwgMSkNCisJCWdvdG8gaWdub3JlOw0KKw0K IAkvKiBvbmx5IExFRCB1c2FnZXMgYXJlIHN1cHBvcnRlZCBpbiBvdXRwdXQgZmllbGRzICovDQog CWlmIChmaWVsZC0+cmVwb3J0X3R5cGUgPT0gSElEX09VVFBVVF9SRVBPUlQgJiYNCiAJCQkodXNh Z2UtPmhpZCAmIEhJRF9VU0FHRV9QQUdFKSAhPSBISURfVVBfTEVEKSB7DQpAQCAtODg3LDEwICs4 OTEsMTUgQEAgc3RhdGljIHZvaWQgcmVwb3J0X2ZlYXR1cmVzKHN0cnVjdCBoaWRfZGV2aWNlICpo aWQpDQogDQogCXJlcF9lbnVtID0gJmhpZC0+cmVwb3J0X2VudW1bSElEX0ZFQVRVUkVfUkVQT1JU XTsNCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXAsICZyZXBfZW51bS0+cmVwb3J0X2xpc3QsIGxp c3QpDQotCQlmb3IgKGkgPSAwOyBpIDwgcmVwLT5tYXhmaWVsZDsgaSsrKQ0KKwkJZm9yIChpID0g MDsgaSA8IHJlcC0+bWF4ZmllbGQ7IGkrKykgew0KKwkJCS8qIElnbm9yZSBpZiByZXBvcnQgY291 bnQgaXMgb3V0IG9mIGJvdW5kcy4gKi8NCisJCQlpZiAocmVwLT5maWVsZFtpXS0+cmVwb3J0X2Nv dW50IDwgMSkNCisJCQkJY29udGludWU7DQorDQogCQkJZm9yIChqID0gMDsgaiA8IHJlcC0+Zmll bGRbaV0tPm1heHVzYWdlOyBqKyspDQogCQkJCWRydi0+ZmVhdHVyZV9tYXBwaW5nKGhpZCwgcmVw LT5maWVsZFtpXSwNCiAJCQkJCQkgICAgIHJlcC0+ZmllbGRbaV0tPnVzYWdlICsgaik7DQorCQl9 DQogfQ0KIA0KIC8qDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWxnMmZmLmMgYi9kcml2 ZXJzL2hpZC9oaWQtbGcyZmYuYw0KaW5kZXggM2MzMWJjNi4uMTI4ZjAxMSAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvaGlkL2hpZC1sZzJmZi5jDQorKysgYi9kcml2ZXJzL2hpZC9oaWQtbGcyZmYuYw0K QEAgLTY2LDI2ICs2NiwxMyBAQCBpbnQgbGcyZmZfaW5pdChzdHJ1Y3QgaGlkX2RldmljZSAqaGlk KQ0KIAlzdHJ1Y3QgaGlkX3JlcG9ydCAqcmVwb3J0Ow0KIAlzdHJ1Y3QgaGlkX2lucHV0ICpoaWRp bnB1dCA9IGxpc3RfZW50cnkoaGlkLT5pbnB1dHMubmV4dCwNCiAJCQkJCQlzdHJ1Y3QgaGlkX2lu cHV0LCBsaXN0KTsNCi0Jc3RydWN0IGxpc3RfaGVhZCAqcmVwb3J0X2xpc3QgPQ0KLQkJCSZoaWQt PnJlcG9ydF9lbnVtW0hJRF9PVVRQVVRfUkVQT1JUXS5yZXBvcnRfbGlzdDsNCiAJc3RydWN0IGlu cHV0X2RldiAqZGV2ID0gaGlkaW5wdXQtPmlucHV0Ow0KIAlpbnQgZXJyb3I7DQogDQotCWlmIChs aXN0X2VtcHR5KHJlcG9ydF9saXN0KSkgew0KLQkJaGlkX2VycihoaWQsICJubyBvdXRwdXQgcmVw b3J0IGZvdW5kXG4iKTsNCisJLyogQ2hlY2sgdGhhdCB0aGUgcmVwb3J0IGxvb2tzIG9rICovDQor CXJlcG9ydCA9IGhpZF92YWxpZGF0ZV92YWx1ZXMoaGlkLCBISURfT1VUUFVUX1JFUE9SVCwgMCwg MCwgNyk7DQorCWlmICghcmVwb3J0KQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQotCX0NCi0NCi0JcmVw b3J0ID0gbGlzdF9lbnRyeShyZXBvcnRfbGlzdC0+bmV4dCwgc3RydWN0IGhpZF9yZXBvcnQsIGxp c3QpOw0KLQ0KLQlpZiAocmVwb3J0LT5tYXhmaWVsZCA8IDEpIHsNCi0JCWhpZF9lcnIoaGlkLCAi b3V0cHV0IHJlcG9ydCBpcyBlbXB0eVxuIik7DQotCQlyZXR1cm4gLUVOT0RFVjsNCi0JfQ0KLQlp ZiAocmVwb3J0LT5maWVsZFswXS0+cmVwb3J0X2NvdW50IDwgNykgew0KLQkJaGlkX2VycihoaWQs ICJub3QgZW5vdWdoIHZhbHVlcyBpbiB0aGUgZmllbGRcbiIpOw0KLQkJcmV0dXJuIC1FTk9ERVY7 DQotCX0NCiANCiAJbGcyZmYgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgbGcyZmZfZGV2aWNlKSwg R0ZQX0tFUk5FTCk7DQogCWlmICghbGcyZmYpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlk LWxnM2ZmLmMgYi9kcml2ZXJzL2hpZC9oaWQtbGczZmYuYw0KaW5kZXggZjk4NjQ0Yy4uOTFmOTgx ZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaGlkL2hpZC1sZzNmZi5jDQorKysgYi9kcml2ZXJzL2hp ZC9oaWQtbGczZmYuYw0KQEAgLTY4LDEwICs2OCwxMSBAQCBzdGF0aWMgaW50IGhpZF9sZzNmZl9w bGF5KHN0cnVjdCBpbnB1dF9kZXYgKmRldiwgdm9pZCAqZGF0YSwNCiAJaW50IHgsIHk7DQogDQog LyoNCi0gKiBNYXh1c2FnZSBzaG91bGQgYWx3YXlzIGJlIDYzIChtYXhpbXVtIGZpZWxkcykNCi0g KiBsaWtlbHkgYSBiZXR0ZXIgd2F5IHRvIGVuc3VyZSB0aGlzIGRhdGEgaXMgY2xlYW4NCisgKiBB dmFpbGFibGUgdmFsdWVzIGluIHRoZSBmaWVsZCBzaG91bGQgYWx3YXlzIGJlIDYzLCBidXQgd2Ug b25seSB1c2UgdXAgdG8NCisgKiAzNS4gSW5zdGVhZCwgY2xlYXIgdGhlIGVudGlyZSBhcmVhLCBo b3dldmVyIGJpZyBpdCBpcy4NCiAgKi8NCi0JbWVtc2V0KHJlcG9ydC0+ZmllbGRbMF0tPnZhbHVl LCAwLCBzaXplb2YoX19zMzIpKnJlcG9ydC0+ZmllbGRbMF0tPm1heHVzYWdlKTsNCisJbWVtc2V0 KHJlcG9ydC0+ZmllbGRbMF0tPnZhbHVlLCAwLA0KKwkgICAgICAgc2l6ZW9mKF9fczMyKSAqIHJl cG9ydC0+ZmllbGRbMF0tPnJlcG9ydF9jb3VudCk7DQogDQogCXN3aXRjaCAoZWZmZWN0LT50eXBl KSB7DQogCWNhc2UgRkZfQ09OU1RBTlQ6DQpAQCAtMTMxLDMyICsxMzIsMTQgQEAgc3RhdGljIGNv bnN0IHNpZ25lZCBzaG9ydCBmZjNfam95c3RpY2tfYWNbXSA9IHsNCiBpbnQgbGczZmZfaW5pdChz dHJ1Y3QgaGlkX2RldmljZSAqaGlkKQ0KIHsNCiAJc3RydWN0IGhpZF9pbnB1dCAqaGlkaW5wdXQg PSBsaXN0X2VudHJ5KGhpZC0+aW5wdXRzLm5leHQsIHN0cnVjdCBoaWRfaW5wdXQsIGxpc3QpOw0K LQlzdHJ1Y3QgbGlzdF9oZWFkICpyZXBvcnRfbGlzdCA9ICZoaWQtPnJlcG9ydF9lbnVtW0hJRF9P VVRQVVRfUkVQT1JUXS5yZXBvcnRfbGlzdDsNCiAJc3RydWN0IGlucHV0X2RldiAqZGV2ID0gaGlk aW5wdXQtPmlucHV0Ow0KLQlzdHJ1Y3QgaGlkX3JlcG9ydCAqcmVwb3J0Ow0KLQlzdHJ1Y3QgaGlk X2ZpZWxkICpmaWVsZDsNCiAJY29uc3Qgc2lnbmVkIHNob3J0ICpmZl9iaXRzID0gZmYzX2pveXN0 aWNrX2FjOw0KIAlpbnQgZXJyb3I7DQogCWludCBpOw0KIA0KLQkvKiBGaW5kIHRoZSByZXBvcnQg dG8gdXNlICovDQotCWlmIChsaXN0X2VtcHR5KHJlcG9ydF9saXN0KSkgew0KLQkJaGlkX2Vyciho aWQsICJObyBvdXRwdXQgcmVwb3J0IGZvdW5kXG4iKTsNCi0JCXJldHVybiAtMTsNCi0JfQ0KLQ0K IAkvKiBDaGVjayB0aGF0IHRoZSByZXBvcnQgbG9va3Mgb2sgKi8NCi0JcmVwb3J0ID0gbGlzdF9l bnRyeShyZXBvcnRfbGlzdC0+bmV4dCwgc3RydWN0IGhpZF9yZXBvcnQsIGxpc3QpOw0KLQlpZiAo IXJlcG9ydCkgew0KLQkJaGlkX2VycihoaWQsICJOVUxMIG91dHB1dCByZXBvcnRcbiIpOw0KLQkJ cmV0dXJuIC0xOw0KLQl9DQotDQotCWZpZWxkID0gcmVwb3J0LT5maWVsZFswXTsNCi0JaWYgKCFm aWVsZCkgew0KLQkJaGlkX2VycihoaWQsICJOVUxMIGZpZWxkXG4iKTsNCi0JCXJldHVybiAtMTsN Ci0JfQ0KKwlpZiAoIWhpZF92YWxpZGF0ZV92YWx1ZXMoaGlkLCBISURfT1VUUFVUX1JFUE9SVCwg MCwgMCwgMzUpKQ0KKwkJcmV0dXJuIC1FTk9ERVY7DQogDQogCS8qIEFzc3VtZSBzaW5nbGUgZml4 ZWQgZGV2aWNlIEc5NDAgKi8NCiAJZm9yIChpID0gMDsgZmZfYml0c1tpXSA+PSAwOyBpKyspDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWxnNGZmLmMgYi9kcml2ZXJzL2hpZC9oaWQtbGc0 ZmYuYw0KaW5kZXggMTAzZjMwZC4uNWM2YmY0YiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaGlkL2hp ZC1sZzRmZi5jDQorKysgYi9kcml2ZXJzL2hpZC9oaWQtbGc0ZmYuYw0KQEAgLTMzOSwzMyArMzM5 LDE1IEBAIHN0YXRpYyBzc2l6ZV90IGxnNGZmX3JhbmdlX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0DQogaW50IGxnNGZmX2luaXQoc3RydWN0IGhp ZF9kZXZpY2UgKmhpZCkNCiB7DQogCXN0cnVjdCBoaWRfaW5wdXQgKmhpZGlucHV0ID0gbGlzdF9l bnRyeShoaWQtPmlucHV0cy5uZXh0LCBzdHJ1Y3QgaGlkX2lucHV0LCBsaXN0KTsNCi0Jc3RydWN0 IGxpc3RfaGVhZCAqcmVwb3J0X2xpc3QgPSAmaGlkLT5yZXBvcnRfZW51bVtISURfT1VUUFVUX1JF UE9SVF0ucmVwb3J0X2xpc3Q7DQogCXN0cnVjdCBpbnB1dF9kZXYgKmRldiA9IGhpZGlucHV0LT5p bnB1dDsNCi0Jc3RydWN0IGhpZF9yZXBvcnQgKnJlcG9ydDsNCi0Jc3RydWN0IGhpZF9maWVsZCAq ZmllbGQ7DQogCXN0cnVjdCBsZzRmZl9kZXZpY2VfZW50cnkgKmVudHJ5Ow0KIAlzdHJ1Y3QgdXNi X2RldmljZV9kZXNjcmlwdG9yICp1ZGVzYzsNCiAJaW50IGVycm9yLCBpLCBqOw0KIAlfX3UxNiBi Y2REZXZpY2UsIHJldl9tYWosIHJldl9taW47DQogDQotCS8qIEZpbmQgdGhlIHJlcG9ydCB0byB1 c2UgKi8NCi0JaWYgKGxpc3RfZW1wdHkocmVwb3J0X2xpc3QpKSB7DQotCQloaWRfZXJyKGhpZCwg Ik5vIG91dHB1dCByZXBvcnQgZm91bmRcbiIpOw0KLQkJcmV0dXJuIC0xOw0KLQl9DQotDQogCS8q IENoZWNrIHRoYXQgdGhlIHJlcG9ydCBsb29rcyBvayAqLw0KLQlyZXBvcnQgPSBsaXN0X2VudHJ5 KHJlcG9ydF9saXN0LT5uZXh0LCBzdHJ1Y3QgaGlkX3JlcG9ydCwgbGlzdCk7DQotCWlmICghcmVw b3J0KSB7DQotCQloaWRfZXJyKGhpZCwgIk5VTEwgb3V0cHV0IHJlcG9ydFxuIik7DQorCWlmICgh aGlkX3ZhbGlkYXRlX3ZhbHVlcyhoaWQsIEhJRF9PVVRQVVRfUkVQT1JULCAwLCAwLCA3KSkNCiAJ CXJldHVybiAtMTsNCi0JfQ0KLQ0KLQlmaWVsZCA9IHJlcG9ydC0+ZmllbGRbMF07DQotCWlmICgh ZmllbGQpIHsNCi0JCWhpZF9lcnIoaGlkLCAiTlVMTCBmaWVsZFxuIik7DQotCQlyZXR1cm4gLTE7 DQotCX0NCiANCiAJLyogQ2hlY2sgd2hhdCB3aGVlbCBoYXMgYmVlbiBjb25uZWN0ZWQgKi8NCiAJ Zm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUobGc0ZmZfZGV2aWNlcyk7IGkrKykgew0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1sZ2ZmLmMgYi9kcml2ZXJzL2hpZC9oaWQtbGdmZi5jDQpp bmRleCAyN2JjNTRmLi4xZDk3OGRhYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaGlkL2hpZC1sZ2Zm LmMNCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1sZ2ZmLmMNCkBAIC0xMzAsMjcgKzEzMCwxNCBAQCBz dGF0aWMgdm9pZCBoaWRfbGdmZl9zZXRfYXV0b2NlbnRlcihzdHJ1Y3QgaW5wdXRfZGV2ICpkZXYs IHUxNiBtYWduaXR1ZGUpDQogaW50IGxnZmZfaW5pdChzdHJ1Y3QgaGlkX2RldmljZSogaGlkKQ0K IHsNCiAJc3RydWN0IGhpZF9pbnB1dCAqaGlkaW5wdXQgPSBsaXN0X2VudHJ5KGhpZC0+aW5wdXRz Lm5leHQsIHN0cnVjdCBoaWRfaW5wdXQsIGxpc3QpOw0KLQlzdHJ1Y3QgbGlzdF9oZWFkICpyZXBv cnRfbGlzdCA9ICZoaWQtPnJlcG9ydF9lbnVtW0hJRF9PVVRQVVRfUkVQT1JUXS5yZXBvcnRfbGlz dDsNCiAJc3RydWN0IGlucHV0X2RldiAqZGV2ID0gaGlkaW5wdXQtPmlucHV0Ow0KLQlzdHJ1Y3Qg aGlkX3JlcG9ydCAqcmVwb3J0Ow0KLQlzdHJ1Y3QgaGlkX2ZpZWxkICpmaWVsZDsNCiAJY29uc3Qg c2lnbmVkIHNob3J0ICpmZl9iaXRzID0gZmZfam95c3RpY2s7DQogCWludCBlcnJvcjsNCiAJaW50 IGk7DQogDQotCS8qIEZpbmQgdGhlIHJlcG9ydCB0byB1c2UgKi8NCi0JaWYgKGxpc3RfZW1wdHko cmVwb3J0X2xpc3QpKSB7DQotCQloaWRfZXJyKGhpZCwgIk5vIG91dHB1dCByZXBvcnQgZm91bmRc biIpOw0KLQkJcmV0dXJuIC0xOw0KLQl9DQotDQogCS8qIENoZWNrIHRoYXQgdGhlIHJlcG9ydCBs b29rcyBvayAqLw0KLQlyZXBvcnQgPSBsaXN0X2VudHJ5KHJlcG9ydF9saXN0LT5uZXh0LCBzdHJ1 Y3QgaGlkX3JlcG9ydCwgbGlzdCk7DQotCWZpZWxkID0gcmVwb3J0LT5maWVsZFswXTsNCi0JaWYg KCFmaWVsZCkgew0KLQkJaGlkX2VycihoaWQsICJOVUxMIGZpZWxkXG4iKTsNCi0JCXJldHVybiAt MTsNCi0JfQ0KKwlpZiAoIWhpZF92YWxpZGF0ZV92YWx1ZXMoaGlkLCBISURfT1VUUFVUX1JFUE9S VCwgMCwgMCwgNykpDQorCQlyZXR1cm4gLUVOT0RFVjsNCiANCiAJZm9yIChpID0gMDsgaSA8IEFS UkFZX1NJWkUoZGV2aWNlcyk7IGkrKykgew0KIAkJaWYgKGRldi0+aWQudmVuZG9yID09IGRldmlj ZXNbaV0uaWRWZW5kb3IgJiYNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtbG9naXRlY2gt ZGouYyBiL2RyaXZlcnMvaGlkL2hpZC1sb2dpdGVjaC1kai5jDQppbmRleCA4ODIxZWNjLi44Mjhh MGRkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9oaWQvaGlkLWxvZ2l0ZWNoLWRqLmMNCisrKyBiL2Ry aXZlcnMvaGlkL2hpZC1sb2dpdGVjaC1kai5jDQpAQCAtNzkxLDYgKzc5MSwxMiBAQCBzdGF0aWMg aW50IGxvZ2lfZGpfcHJvYmUoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYsDQogCQlnb3RvIGhpZF9w YXJzZV9mYWlsOw0KIAl9DQogDQorCWlmICghaGlkX3ZhbGlkYXRlX3ZhbHVlcyhoZGV2LCBISURf T1VUUFVUX1JFUE9SVCwgUkVQT1JUX0lEX0RKX1NIT1JULA0KKwkJCQkgMCwgREpSRVBPUlRfU0hP UlRfTEVOR1RIIC0gMSkpIHsNCisJCXJldHZhbCA9IC1FTk9ERVY7DQorCQlnb3RvIGhpZF9wYXJz ZV9mYWlsOw0KKwl9DQorDQogCS8qIFN0YXJ0cyB0aGUgdXNiIGRldmljZSBhbmQgY29ubmVjdHMg dG8gdXBwZXIgaW50ZXJmYWNlcyBoaWRkZXYgYW5kDQogCSAqIGhpZHJhdyAqLw0KIAlyZXR2YWwg PSBoaWRfaHdfc3RhcnQoaGRldiwgSElEX0NPTk5FQ1RfREVGQVVMVCk7DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9oaWQvaGlkLW50cmlnLmMgYi9kcml2ZXJzL2hpZC9oaWQtbnRyaWcuYw0KaW5kZXgg OWZhZTJlYi4uNDhjYmE4NSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaGlkL2hpZC1udHJpZy5jDQor KysgYi9kcml2ZXJzL2hpZC9oaWQtbnRyaWcuYw0KQEAgLTExNSw3ICsxMTUsOCBAQCBzdGF0aWMg aW5saW5lIGludCBudHJpZ19nZXRfbW9kZShzdHJ1Y3QgaGlkX2RldmljZSAqaGRldikNCiAJc3Ry dWN0IGhpZF9yZXBvcnQgKnJlcG9ydCA9IGhkZXYtPnJlcG9ydF9lbnVtW0hJRF9GRUFUVVJFX1JF UE9SVF0uDQogCQkJCSAgICByZXBvcnRfaWRfaGFzaFsweDBkXTsNCiANCi0JaWYgKCFyZXBvcnQp DQorCWlmICghcmVwb3J0IHx8IHJlcG9ydC0+bWF4ZmllbGQgPCAxIHx8DQorCSAgICByZXBvcnQt PmZpZWxkWzBdLT5yZXBvcnRfY291bnQgPCAxKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogDQogCXVz YmhpZF9zdWJtaXRfcmVwb3J0KGhkZXYsIHJlcG9ydCwgVVNCX0RJUl9JTik7DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9oaWQvaGlkLXBpY29sY2QuYyBiL2RyaXZlcnMvaGlkL2hpZC1waWNvbGNkLmMN CmluZGV4IDAxZTdkMmMuLjFkYWVhY2EgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2hpZC9oaWQtcGlj b2xjZC5jDQorKysgYi9kcml2ZXJzL2hpZC9oaWQtcGljb2xjZC5jDQpAQCAtMTQyNCw3ICsxNDI0 LDcgQEAgc3RhdGljIHNzaXplX3QgcGljb2xjZF9vcGVyYXRpb25fbW9kZV9zdG9yZShzdHJ1Y3Qg ZGV2aWNlICpkZXYsDQogCQlidWYgKz0gMTA7DQogCQljbnQgLT0gMTA7DQogCX0NCi0JaWYgKCFy ZXBvcnQpDQorCWlmICghcmVwb3J0IHx8IHJlcG9ydC0+bWF4ZmllbGQgIT0gMSkNCiAJCXJldHVy biAtRUlOVkFMOw0KIA0KIAl3aGlsZSAoY250ID4gMCAmJiAoYnVmW2NudC0xXSA9PSAnXG4nIHx8 IGJ1ZltjbnQtMV0gPT0gJ1xyJykpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLXBsLmMg Yi9kcml2ZXJzL2hpZC9oaWQtcGwuYw0KaW5kZXggMDcwZjkzYS4uMTI3ODZjZCAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvaGlkL2hpZC1wbC5jDQorKysgYi9kcml2ZXJzL2hpZC9oaWQtcGwuYw0KQEAg LTEyOSw4ICsxMjksMTQgQEAgc3RhdGljIGludCBwbGZmX2luaXQoc3RydWN0IGhpZF9kZXZpY2Ug KmhpZCkNCiAJCQlzdHJvbmcgPSAmcmVwb3J0LT5maWVsZFswXS0+dmFsdWVbMl07DQogCQkJd2Vh ayA9ICZyZXBvcnQtPmZpZWxkWzBdLT52YWx1ZVszXTsNCiAJCQlkZWJ1ZygiZGV0ZWN0ZWQgc2lu Z2xlLWZpZWxkIGRldmljZSIpOw0KLQkJfSBlbHNlIGlmIChyZXBvcnQtPm1heGZpZWxkID49IDQg JiYgcmVwb3J0LT5maWVsZFswXS0+bWF4dXNhZ2UgPT0gMSAmJg0KLQkJCQlyZXBvcnQtPmZpZWxk WzBdLT51c2FnZVswXS5oaWQgPT0gKEhJRF9VUF9MRUQgfCAweDQzKSkgew0KKwkJfSBlbHNlIGlm IChyZXBvcnQtPmZpZWxkWzBdLT5tYXh1c2FnZSA9PSAxICYmDQorCQkJICAgcmVwb3J0LT5maWVs ZFswXS0+dXNhZ2VbMF0uaGlkID09DQorCQkJCShISURfVVBfTEVEIHwgMHg0MykgJiYNCisJCQkg ICByZXBvcnQtPm1heGZpZWxkID49IDQgJiYNCisJCQkgICByZXBvcnQtPmZpZWxkWzBdLT5yZXBv cnRfY291bnQgPj0gMSAmJg0KKwkJCSAgIHJlcG9ydC0+ZmllbGRbMV0tPnJlcG9ydF9jb3VudCA+ PSAxICYmDQorCQkJICAgcmVwb3J0LT5maWVsZFsyXS0+cmVwb3J0X2NvdW50ID49IDEgJiYNCisJ CQkgICByZXBvcnQtPmZpZWxkWzNdLT5yZXBvcnRfY291bnQgPj0gMSkgew0KIAkJCXJlcG9ydC0+ ZmllbGRbMF0tPnZhbHVlWzBdID0gMHgwMDsNCiAJCQlyZXBvcnQtPmZpZWxkWzFdLT52YWx1ZVsw XSA9IDB4MDA7DQogCQkJc3Ryb25nID0gJnJlcG9ydC0+ZmllbGRbMl0tPnZhbHVlWzBdOw0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1zcGVlZGxpbmsuYyBiL2RyaXZlcnMvaGlkL2hpZC1z cGVlZGxpbmsuYw0KaW5kZXggNjAyMDEzNy4uMmIwM2M5YiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv aGlkL2hpZC1zcGVlZGxpbmsuYw0KKysrIGIvZHJpdmVycy9oaWQvaGlkLXNwZWVkbGluay5jDQpA QCAtMyw3ICszLDcgQEANCiAgKiAgRml4ZXMgImp1bXB5IiBjdXJzb3IgYW5kIHJlbW92ZXMgbm9u ZXhpc3RlbnQga2V5Ym9hcmQgTEVEUyBmcm9tDQogICogIHRoZSBISUQgZGVzY3JpcHRvci4NCiAg Kg0KLSAqICBDb3B5cmlnaHQgKGMpIDIwMTEgU3RlZmFuIEtyaXdhbmVrIDxtYWlsQHN0ZWZhbmty aXdhbmVrLmRlPg0KKyAqICBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTMgU3RlZmFuIEtyaXdhbmVr IDxkZXZAc3RlZmFua3Jpd2FuZWsuZGU+DQogICovDQogDQogLyoNCkBAIC00OCw4ICs0OCwxMyBA QCBzdGF0aWMgaW50IHNwZWVkbGlua19ldmVudChzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwgc3Ry dWN0IGhpZF9maWVsZCAqZmllbGQsDQogCQlzdHJ1Y3QgaGlkX3VzYWdlICp1c2FnZSwgX19zMzIg dmFsdWUpDQogew0KIAkvKiBObyBvdGhlciBjb25kaXRpb25zIGR1ZSB0byB1c2FnZV90YWJsZS4g Ki8NCi0JLyogRml4ICJqdW1weSIgY3Vyc29yIChpbnZhbGlkIGV2ZW50cyBzZW50IGJ5IGRldmlj ZSkuICovDQotCWlmICh2YWx1ZSA9PSAyNTYpDQorDQorCS8qIFRoaXMgZml4ZXMgdGhlICJqdW1w eSIgY3Vyc29yIG9jY3VyaW5nIGR1ZSB0byBpbnZhbGlkIGV2ZW50cyBzZW50DQorCSAqIGJ5IHRo ZSBkZXZpY2UuIFNvbWUgZGV2aWNlcyBvbmx5IHNlbmQgdGhlbSB3aXRoIHZhbHVlPT0rMjU2LCBv dGhlcnMNCisJICogZG9uJ3QuIEhvd2V2ZXIsIGNhdGNoaW5nIGFicyh2YWx1ZSk+PTI1NiBpcyBy ZXN0cmljdGl2ZSBlbm91Z2ggbm90DQorCSAqIHRvIGludGVyZmVyZSB3aXRoIGRldmljZXMgdGhh dCB3ZXJlIGJ1Zy1mcmVlIChoYXMgYmVlbiB0ZXN0ZWQpLg0KKwkgKi8NCisJaWYgKGFicyh2YWx1 ZSkgPj0gMjU2KQ0KIAkJcmV0dXJuIDE7DQogCS8qIERyb3AgdXNlbGVzcyBkaXN0YW5jZSAwIGV2 ZW50cyAob24gYnV0dG9uIGNsaWNrcyBldGMuKSBhcyB3ZWxsICovDQogCWlmICh2YWx1ZSA9PSAw KQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC16cGZmLmMgYi9kcml2ZXJzL2hpZC9oaWQt enBmZi5jDQppbmRleCBmNmJhODFkLi5mMzQ4ZjdmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9oaWQv aGlkLXpwZmYuYw0KKysrIGIvZHJpdmVycy9oaWQvaGlkLXpwZmYuYw0KQEAgLTcwLDIxICs3MCwx MyBAQCBzdGF0aWMgaW50IHpwZmZfaW5pdChzdHJ1Y3QgaGlkX2RldmljZSAqaGlkKQ0KIAlzdHJ1 Y3QgaGlkX3JlcG9ydCAqcmVwb3J0Ow0KIAlzdHJ1Y3QgaGlkX2lucHV0ICpoaWRpbnB1dCA9IGxp c3RfZW50cnkoaGlkLT5pbnB1dHMubmV4dCwNCiAJCQkJCQlzdHJ1Y3QgaGlkX2lucHV0LCBsaXN0 KTsNCi0Jc3RydWN0IGxpc3RfaGVhZCAqcmVwb3J0X2xpc3QgPQ0KLQkJCSZoaWQtPnJlcG9ydF9l bnVtW0hJRF9PVVRQVVRfUkVQT1JUXS5yZXBvcnRfbGlzdDsNCiAJc3RydWN0IGlucHV0X2RldiAq ZGV2ID0gaGlkaW5wdXQtPmlucHV0Ow0KLQlpbnQgZXJyb3I7DQorCWludCBpLCBlcnJvcjsNCiAN Ci0JaWYgKGxpc3RfZW1wdHkocmVwb3J0X2xpc3QpKSB7DQotCQloaWRfZXJyKGhpZCwgIm5vIG91 dHB1dCByZXBvcnQgZm91bmRcbiIpOw0KLQkJcmV0dXJuIC1FTk9ERVY7DQotCX0NCi0NCi0JcmVw b3J0ID0gbGlzdF9lbnRyeShyZXBvcnRfbGlzdC0+bmV4dCwgc3RydWN0IGhpZF9yZXBvcnQsIGxp c3QpOw0KLQ0KLQlpZiAocmVwb3J0LT5tYXhmaWVsZCA8IDQpIHsNCi0JCWhpZF9lcnIoaGlkLCAi bm90IGVub3VnaCBmaWVsZHMgaW4gcmVwb3J0XG4iKTsNCi0JCXJldHVybiAtRU5PREVWOw0KKwlm b3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7DQorCQlyZXBvcnQgPSBoaWRfdmFsaWRhdGVfdmFsdWVz KGhpZCwgSElEX09VVFBVVF9SRVBPUlQsIDAsIGksIDEpOw0KKwkJaWYgKCFyZXBvcnQpDQorCQkJ cmV0dXJuIC1FTk9ERVY7DQogCX0NCiANCiAJenBmZiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB6 cGZmX2RldmljZSksIEdGUF9LRVJORUwpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZHJh dy5jIGIvZHJpdmVycy9oaWQvaGlkcmF3LmMNCmluZGV4IDE3ZDE1YmIuLjllNTBmNjEgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL2hpZC9oaWRyYXcuYw0KKysrIGIvZHJpdmVycy9oaWQvaGlkcmF3LmMN CkBAIC00Miw3ICs0Miw2IEBAIHN0YXRpYyBzdHJ1Y3QgY2RldiBoaWRyYXdfY2RldjsNCiBzdGF0 aWMgc3RydWN0IGNsYXNzICpoaWRyYXdfY2xhc3M7DQogc3RhdGljIHN0cnVjdCBoaWRyYXcgKmhp ZHJhd190YWJsZVtISURSQVdfTUFYX0RFVklDRVNdOw0KIHN0YXRpYyBERUZJTkVfTVVURVgobWlu b3JzX2xvY2spOw0KLXN0YXRpYyB2b2lkIGRyb3BfcmVmKHN0cnVjdCBoaWRyYXcgKmhpZCwgaW50 IGV4aXN0c19iaXQpOw0KIA0KIHN0YXRpYyBzc2l6ZV90IGhpZHJhd19yZWFkKHN0cnVjdCBmaWxl ICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmZmVyLCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykN CiB7DQpAQCAtMjk2LDE0ICsyOTUsMzcgQEAgb3V0Og0KIA0KIH0NCiANCitzdGF0aWMgdm9pZCBk cm9wX3JlZihzdHJ1Y3QgaGlkcmF3ICpoaWRyYXcsIGludCBleGlzdHNfYml0KQ0KK3sNCisJaWYg KGV4aXN0c19iaXQpIHsNCisJCWhpZF9od19jbG9zZShoaWRyYXctPmhpZCk7DQorCQloaWRyYXct PmV4aXN0ID0gMDsNCisJCWlmIChoaWRyYXctPm9wZW4pDQorCQkJd2FrZV91cF9pbnRlcnJ1cHRp YmxlKCZoaWRyYXctPndhaXQpOw0KKwl9IGVsc2Ugew0KKwkJLS1oaWRyYXctPm9wZW47DQorCX0N CisNCisJaWYgKCFoaWRyYXctPm9wZW4gJiYgIWhpZHJhdy0+ZXhpc3QpIHsNCisJCWRldmljZV9k ZXN0cm95KGhpZHJhd19jbGFzcywgTUtERVYoaGlkcmF3X21ham9yLCBoaWRyYXctPm1pbm9yKSk7 DQorCQloaWRyYXdfdGFibGVbaGlkcmF3LT5taW5vcl0gPSBOVUxMOw0KKwkJa2ZyZWUoaGlkcmF3 KTsNCisJfQ0KK30NCisNCiBzdGF0aWMgaW50IGhpZHJhd19yZWxlYXNlKHN0cnVjdCBpbm9kZSAq IGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbGUpDQogew0KIAl1bnNpZ25lZCBpbnQgbWlub3IgPSBp bWlub3IoaW5vZGUpOw0KIAlzdHJ1Y3QgaGlkcmF3X2xpc3QgKmxpc3QgPSBmaWxlLT5wcml2YXRl X2RhdGE7DQogDQotCWRyb3BfcmVmKGhpZHJhd190YWJsZVttaW5vcl0sIDApOw0KKwltdXRleF9s b2NrKCZtaW5vcnNfbG9jayk7DQorDQogCWxpc3RfZGVsKCZsaXN0LT5ub2RlKTsNCiAJa2ZyZWUo bGlzdCk7DQorDQorCWRyb3BfcmVmKGhpZHJhd190YWJsZVttaW5vcl0sIDApOw0KKw0KKwltdXRl eF91bmxvY2soJm1pbm9yc19sb2NrKTsNCiAJcmV0dXJuIDA7DQogfQ0KIA0KQEAgLTUwNiw3ICs1 MjgsMTIgQEAgRVhQT1JUX1NZTUJPTF9HUEwoaGlkcmF3X2Nvbm5lY3QpOw0KIHZvaWQgaGlkcmF3 X2Rpc2Nvbm5lY3Qoc3RydWN0IGhpZF9kZXZpY2UgKmhpZCkNCiB7DQogCXN0cnVjdCBoaWRyYXcg KmhpZHJhdyA9IGhpZC0+aGlkcmF3Ow0KKw0KKwltdXRleF9sb2NrKCZtaW5vcnNfbG9jayk7DQor DQogCWRyb3BfcmVmKGhpZHJhdywgMSk7DQorDQorCW11dGV4X3VubG9jaygmbWlub3JzX2xvY2sp Ow0KIH0NCiBFWFBPUlRfU1lNQk9MX0dQTChoaWRyYXdfZGlzY29ubmVjdCk7DQogDQpAQCAtNTU1 LDIzICs1ODIsMyBAQCB2b2lkIGhpZHJhd19leGl0KHZvaWQpDQogCXVucmVnaXN0ZXJfY2hyZGV2 X3JlZ2lvbihkZXZfaWQsIEhJRFJBV19NQVhfREVWSUNFUyk7DQogDQogfQ0KLQ0KLXN0YXRpYyB2 b2lkIGRyb3BfcmVmKHN0cnVjdCBoaWRyYXcgKmhpZHJhdywgaW50IGV4aXN0c19iaXQpDQotew0K LQltdXRleF9sb2NrKCZtaW5vcnNfbG9jayk7DQotCWlmIChleGlzdHNfYml0KSB7DQotCQloaWRf aHdfY2xvc2UoaGlkcmF3LT5oaWQpOw0KLQkJaGlkcmF3LT5leGlzdCA9IDA7DQotCQlpZiAoaGlk cmF3LT5vcGVuKQ0KLQkJCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmaGlkcmF3LT53YWl0KTsNCi0J fSBlbHNlIHsNCi0JCS0taGlkcmF3LT5vcGVuOw0KLQl9DQotDQotCWlmICghaGlkcmF3LT5vcGVu ICYmICFoaWRyYXctPmV4aXN0KSB7DQotCQlkZXZpY2VfZGVzdHJveShoaWRyYXdfY2xhc3MsIE1L REVWKGhpZHJhd19tYWpvciwgaGlkcmF3LT5taW5vcikpOw0KLQkJaGlkcmF3X3RhYmxlW2hpZHJh dy0+bWlub3JdID0gTlVMTDsNCi0JCWtmcmVlKGhpZHJhdyk7DQotCX0NCi0JbXV0ZXhfdW5sb2Nr KCZtaW5vcnNfbG9jayk7DQotfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL3VzYmhpZC9oaWQt cXVpcmtzLmMgYi9kcml2ZXJzL2hpZC91c2JoaWQvaGlkLXF1aXJrcy5jDQppbmRleCA5NmExZTBm Li5mOThmYmFkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9oaWQvdXNiaGlkL2hpZC1xdWlya3MuYw0K KysrIGIvZHJpdmVycy9oaWQvdXNiaGlkL2hpZC1xdWlya3MuYw0KQEAgLTk5LDYgKzk5LDggQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBoaWRfYmxhY2tsaXN0IHsNCiAJeyBVU0JfVkVORE9SX0lEX0NI SUNPTlksIFVTQl9ERVZJQ0VfSURfQ0hJQ09OWV9NVUxUSV9UT1VDSCwgSElEX1FVSVJLX01VTFRJ X0lOUFVUIH0sDQogCXsgVVNCX1ZFTkRPUl9JRF9DSElDT05ZLCBVU0JfREVWSUNFX0lEX0NISUNP TllfV0lSRUxFU1MsIEhJRF9RVUlSS19NVUxUSV9JTlBVVCB9LA0KIAl7IFVTQl9WRU5ET1JfSURf U0lHTUFfTUlDUk8sIFVTQl9ERVZJQ0VfSURfU0lHTUFfTUlDUk9fS0VZQk9BUkQsIEhJRF9RVUlS S19OT19JTklUX1JFUE9SVFMgfSwNCisJeyBVU0JfVkVORE9SX0lEX05UUklHLCBVU0JfREVWSUNF X0lEX05UUklHX0RVT1NFTlNFLCBISURfUVVJUktfTk9fSU5JVF9SRVBPUlRTIH0sDQorDQogCXsg MCwgMCB9DQogfTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2FwcGxlc21jLmMgYi9k cml2ZXJzL2h3bW9uL2FwcGxlc21jLmMNCmluZGV4IGQ5OWFhODQuLjMwY2FjNTggMTAwNjQ0DQot LS0gYS9kcml2ZXJzL2h3bW9uL2FwcGxlc21jLmMNCisrKyBiL2RyaXZlcnMvaHdtb24vYXBwbGVz bWMuYw0KQEAgLTM0NCw4ICszNDQsMTAgQEAgc3RhdGljIGludCBhcHBsZXNtY19nZXRfbG93ZXJf Ym91bmQodW5zaWduZWQgaW50ICpsbywgY29uc3QgY2hhciAqa2V5KQ0KIAl3aGlsZSAoYmVnaW4g IT0gZW5kKSB7DQogCQlpbnQgbWlkZGxlID0gYmVnaW4gKyAoZW5kIC0gYmVnaW4pIC8gMjsNCiAJ CWVudHJ5ID0gYXBwbGVzbWNfZ2V0X2VudHJ5X2J5X2luZGV4KG1pZGRsZSk7DQotCQlpZiAoSVNf RVJSKGVudHJ5KSkNCisJCWlmIChJU19FUlIoZW50cnkpKSB7DQorCQkJKmxvID0gMDsNCiAJCQly ZXR1cm4gUFRSX0VSUihlbnRyeSk7DQorCQl9DQogCQlpZiAoc3RyY21wKGVudHJ5LT5rZXksIGtl eSkgPCAwKQ0KIAkJCWJlZ2luID0gbWlkZGxlICsgMTsNCiAJCWVsc2UNCkBAIC0zNjQsOCArMzY2 LDEwIEBAIHN0YXRpYyBpbnQgYXBwbGVzbWNfZ2V0X3VwcGVyX2JvdW5kKHVuc2lnbmVkIGludCAq aGksIGNvbnN0IGNoYXIgKmtleSkNCiAJd2hpbGUgKGJlZ2luICE9IGVuZCkgew0KIAkJaW50IG1p ZGRsZSA9IGJlZ2luICsgKGVuZCAtIGJlZ2luKSAvIDI7DQogCQllbnRyeSA9IGFwcGxlc21jX2dl dF9lbnRyeV9ieV9pbmRleChtaWRkbGUpOw0KLQkJaWYgKElTX0VSUihlbnRyeSkpDQorCQlpZiAo SVNfRVJSKGVudHJ5KSkgew0KKwkJCSpoaSA9IHNtY3JlZy5rZXlfY291bnQ7DQogCQkJcmV0dXJu IFBUUl9FUlIoZW50cnkpOw0KKwkJfQ0KIAkJaWYgKHN0cmNtcChrZXksIGVudHJ5LT5rZXkpIDwg MCkNCiAJCQllbmQgPSBtaWRkbGU7DQogCQllbHNlDQpAQCAtNDg1LDE2ICs0ODksMjUgQEAgc3Rh dGljIGludCBhcHBsZXNtY19pbml0X3NtY3JlZ190cnkodm9pZCkNCiB7DQogCXN0cnVjdCBhcHBs ZXNtY19yZWdpc3RlcnMgKnMgPSAmc21jcmVnOw0KIAlib29sIGxlZnRfbGlnaHRfc2Vuc29yLCBy aWdodF9saWdodF9zZW5zb3I7DQorCXVuc2lnbmVkIGludCBjb3VudDsNCiAJdTggdG1wWzFdOw0K IAlpbnQgcmV0Ow0KIA0KIAlpZiAocy0+aW5pdF9jb21wbGV0ZSkNCiAJCXJldHVybiAwOw0KIA0K LQlyZXQgPSByZWFkX3JlZ2lzdGVyX2NvdW50KCZzLT5rZXlfY291bnQpOw0KKwlyZXQgPSByZWFk X3JlZ2lzdGVyX2NvdW50KCZjb3VudCk7DQogCWlmIChyZXQpDQogCQlyZXR1cm4gcmV0Ow0KIA0K KwlpZiAocy0+Y2FjaGUgJiYgcy0+a2V5X2NvdW50ICE9IGNvdW50KSB7DQorCQlwcl93YXJuKCJr ZXkgY291bnQgY2hhbmdlZCBmcm9tICVkIHRvICVkXG4iLA0KKwkJCXMtPmtleV9jb3VudCwgY291 bnQpOw0KKwkJa2ZyZWUocy0+Y2FjaGUpOw0KKwkJcy0+Y2FjaGUgPSBOVUxMOw0KKwl9DQorCXMt PmtleV9jb3VudCA9IGNvdW50Ow0KKw0KIAlpZiAoIXMtPmNhY2hlKQ0KIAkJcy0+Y2FjaGUgPSBr Y2FsbG9jKHMtPmtleV9jb3VudCwgc2l6ZW9mKCpzLT5jYWNoZSksIEdGUF9LRVJORUwpOw0KIAlp ZiAoIXMtPmNhY2hlKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYyBi L2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYw0KaW5kZXggZjQ0YTA2Ny4uYjRhNGFhZiAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYw0KKysrIGIvZHJpdmVycy9pb21t dS9pbnRlbC1pb21tdS5jDQpAQCAtODYxLDU2ICs4NjEsNTQgQEAgc3RhdGljIGludCBkbWFfcHRl X2NsZWFyX3JhbmdlKHN0cnVjdCBkbWFyX2RvbWFpbiAqZG9tYWluLA0KIAlyZXR1cm4gb3JkZXI7 DQogfQ0KIA0KK3N0YXRpYyB2b2lkIGRtYV9wdGVfZnJlZV9sZXZlbChzdHJ1Y3QgZG1hcl9kb21h aW4gKmRvbWFpbiwgaW50IGxldmVsLA0KKwkJCSAgICAgICBzdHJ1Y3QgZG1hX3B0ZSAqcHRlLCB1 bnNpZ25lZCBsb25nIHBmbiwNCisJCQkgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVu c2lnbmVkIGxvbmcgbGFzdF9wZm4pDQorew0KKwlwZm4gPSBtYXgoc3RhcnRfcGZuLCBwZm4pOw0K KwlwdGUgPSAmcHRlW3Bmbl9sZXZlbF9vZmZzZXQocGZuLCBsZXZlbCldOw0KKw0KKwlkbyB7DQor CQl1bnNpZ25lZCBsb25nIGxldmVsX3BmbjsNCisJCXN0cnVjdCBkbWFfcHRlICpsZXZlbF9wdGU7 DQorDQorCQlpZiAoIWRtYV9wdGVfcHJlc2VudChwdGUpIHx8IGRtYV9wdGVfc3VwZXJwYWdlKHB0 ZSkpDQorCQkJZ290byBuZXh0Ow0KKw0KKwkJbGV2ZWxfcGZuID0gcGZuICYgbGV2ZWxfbWFzayhs ZXZlbCAtIDEpOw0KKwkJbGV2ZWxfcHRlID0gcGh5c190b192aXJ0KGRtYV9wdGVfYWRkcihwdGUp KTsNCisNCisJCWlmIChsZXZlbCA+IDIpDQorCQkJZG1hX3B0ZV9mcmVlX2xldmVsKGRvbWFpbiwg bGV2ZWwgLSAxLCBsZXZlbF9wdGUsDQorCQkJCQkgICBsZXZlbF9wZm4sIHN0YXJ0X3BmbiwgbGFz dF9wZm4pOw0KKw0KKwkJLyogSWYgcmFuZ2UgY292ZXJzIGVudGlyZSBwYWdldGFibGUsIGZyZWUg aXQgKi8NCisJCWlmICghKHN0YXJ0X3BmbiA+IGxldmVsX3BmbiB8fA0KKwkJICAgICAgbGFzdF9w Zm4gPCBsZXZlbF9wZm4gKyBsZXZlbF9zaXplKGxldmVsKSkpIHsNCisJCQlkbWFfY2xlYXJfcHRl KHB0ZSk7DQorCQkJZG9tYWluX2ZsdXNoX2NhY2hlKGRvbWFpbiwgcHRlLCBzaXplb2YoKnB0ZSkp Ow0KKwkJCWZyZWVfcGd0YWJsZV9wYWdlKGxldmVsX3B0ZSk7DQorCQl9DQorbmV4dDoNCisJCXBm biArPSBsZXZlbF9zaXplKGxldmVsKTsNCisJfSB3aGlsZSAoIWZpcnN0X3B0ZV9pbl9wYWdlKCsr cHRlKSAmJiBwZm4gPD0gbGFzdF9wZm4pOw0KK30NCisNCiAvKiBmcmVlIHBhZ2UgdGFibGUgcGFn ZXMuIGxhc3QgbGV2ZWwgcHRlIHNob3VsZCBhbHJlYWR5IGJlIGNsZWFyZWQgKi8NCiBzdGF0aWMg dm9pZCBkbWFfcHRlX2ZyZWVfcGFnZXRhYmxlKHN0cnVjdCBkbWFyX2RvbWFpbiAqZG9tYWluLA0K IAkJCQkgICB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwNCiAJCQkJICAgdW5zaWduZWQgbG9uZyBs YXN0X3BmbikNCiB7DQogCWludCBhZGRyX3dpZHRoID0gYWdhd190b193aWR0aChkb21haW4tPmFn YXcpIC0gVlREX1BBR0VfU0hJRlQ7DQotCXN0cnVjdCBkbWFfcHRlICpmaXJzdF9wdGUsICpwdGU7 DQotCWludCB0b3RhbCA9IGFnYXdfdG9fbGV2ZWwoZG9tYWluLT5hZ2F3KTsNCi0JaW50IGxldmVs Ow0KLQl1bnNpZ25lZCBsb25nIHRtcDsNCi0JaW50IGxhcmdlX3BhZ2UgPSAyOw0KIA0KIAlCVUdf T04oYWRkcl93aWR0aCA8IEJJVFNfUEVSX0xPTkcgJiYgc3RhcnRfcGZuID4+IGFkZHJfd2lkdGgp Ow0KIAlCVUdfT04oYWRkcl93aWR0aCA8IEJJVFNfUEVSX0xPTkcgJiYgbGFzdF9wZm4gPj4gYWRk cl93aWR0aCk7DQogCUJVR19PTihzdGFydF9wZm4gPiBsYXN0X3Bmbik7DQogDQogCS8qIFdlIGRv bid0IG5lZWQgbG9jayBoZXJlOyBub2JvZHkgZWxzZSB0b3VjaGVzIHRoZSBpb3ZhIHJhbmdlICov DQotCWxldmVsID0gMjsNCi0Jd2hpbGUgKGxldmVsIDw9IHRvdGFsKSB7DQotCQl0bXAgPSBhbGln bl90b19sZXZlbChzdGFydF9wZm4sIGxldmVsKTsNCi0NCi0JCS8qIElmIHdlIGNhbid0IGV2ZW4g Y2xlYXIgb25lIFBURSBhdCB0aGlzIGxldmVsLCB3ZSdyZSBkb25lICovDQotCQlpZiAodG1wICsg bGV2ZWxfc2l6ZShsZXZlbCkgLSAxID4gbGFzdF9wZm4pDQotCQkJcmV0dXJuOw0KLQ0KLQkJZG8g ew0KLQkJCWxhcmdlX3BhZ2UgPSBsZXZlbDsNCi0JCQlmaXJzdF9wdGUgPSBwdGUgPSBkbWFfcGZu X2xldmVsX3B0ZShkb21haW4sIHRtcCwgbGV2ZWwsICZsYXJnZV9wYWdlKTsNCi0JCQlpZiAobGFy Z2VfcGFnZSA+IGxldmVsKQ0KLQkJCQlsZXZlbCA9IGxhcmdlX3BhZ2UgKyAxOw0KLQkJCWlmICgh cHRlKSB7DQotCQkJCXRtcCA9IGFsaWduX3RvX2xldmVsKHRtcCArIDEsIGxldmVsICsgMSk7DQot CQkJCWNvbnRpbnVlOw0KLQkJCX0NCi0JCQlkbyB7DQotCQkJCWlmIChkbWFfcHRlX3ByZXNlbnQo cHRlKSkgew0KLQkJCQkJZnJlZV9wZ3RhYmxlX3BhZ2UocGh5c190b192aXJ0KGRtYV9wdGVfYWRk cihwdGUpKSk7DQotCQkJCQlkbWFfY2xlYXJfcHRlKHB0ZSk7DQotCQkJCX0NCi0JCQkJcHRlKys7 DQotCQkJCXRtcCArPSBsZXZlbF9zaXplKGxldmVsKTsNCi0JCQl9IHdoaWxlICghZmlyc3RfcHRl X2luX3BhZ2UocHRlKSAmJg0KLQkJCQkgdG1wICsgbGV2ZWxfc2l6ZShsZXZlbCkgLSAxIDw9IGxh c3RfcGZuKTsNCisJZG1hX3B0ZV9mcmVlX2xldmVsKGRvbWFpbiwgYWdhd190b19sZXZlbChkb21h aW4tPmFnYXcpLA0KKwkJCSAgIGRvbWFpbi0+cGdkLCAwLCBzdGFydF9wZm4sIGxhc3RfcGZuKTsN CiANCi0JCQlkb21haW5fZmx1c2hfY2FjaGUoZG9tYWluLCBmaXJzdF9wdGUsDQotCQkJCQkgICAo dm9pZCAqKXB0ZSAtICh2b2lkICopZmlyc3RfcHRlKTsNCi0JCQkNCi0JCX0gd2hpbGUgKHRtcCAm JiB0bXAgKyBsZXZlbF9zaXplKGxldmVsKSAtIDEgPD0gbGFzdF9wZm4pOw0KLQkJbGV2ZWwrKzsN Ci0JfQ0KIAkvKiBmcmVlIHBnZCAqLw0KIAlpZiAoc3RhcnRfcGZuID09IDAgJiYgbGFzdF9wZm4g PT0gRE9NQUlOX01BWF9QRk4oZG9tYWluLT5nYXcpKSB7DQogCQlmcmVlX3BndGFibGVfcGFnZShk b21haW4tPnBnZCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1zbmFwLmMgYi9kcml2ZXJz L21kL2RtLXNuYXAuYw0KaW5kZXggYjRhYWE3Yi4uNWMzMDMxNiAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvbWQvZG0tc25hcC5jDQorKysgYi9kcml2ZXJzL21kL2RtLXNuYXAuYw0KQEAgLTcyMSwxNyAr NzIxLDE2IEBAIHN0YXRpYyBpbnQgY2FsY19tYXhfYnVja2V0cyh2b2lkKQ0KICAqLw0KIHN0YXRp YyBpbnQgaW5pdF9oYXNoX3RhYmxlcyhzdHJ1Y3QgZG1fc25hcHNob3QgKnMpDQogew0KLQlzZWN0 b3JfdCBoYXNoX3NpemUsIGNvd19kZXZfc2l6ZSwgb3JpZ2luX2Rldl9zaXplLCBtYXhfYnVja2V0 czsNCisJc2VjdG9yX3QgaGFzaF9zaXplLCBjb3dfZGV2X3NpemUsIG1heF9idWNrZXRzOw0KIA0K IAkvKg0KIAkgKiBDYWxjdWxhdGUgYmFzZWQgb24gdGhlIHNpemUgb2YgdGhlIG9yaWdpbmFsIHZv bHVtZSBvcg0KIAkgKiB0aGUgQ09XIHZvbHVtZS4uLg0KIAkgKi8NCiAJY293X2Rldl9zaXplID0g Z2V0X2Rldl9zaXplKHMtPmNvdy0+YmRldik7DQotCW9yaWdpbl9kZXZfc2l6ZSA9IGdldF9kZXZf c2l6ZShzLT5vcmlnaW4tPmJkZXYpOw0KIAltYXhfYnVja2V0cyA9IGNhbGNfbWF4X2J1Y2tldHMo KTsNCiANCi0JaGFzaF9zaXplID0gbWluKG9yaWdpbl9kZXZfc2l6ZSwgY293X2Rldl9zaXplKSA+ PiBzLT5zdG9yZS0+Y2h1bmtfc2hpZnQ7DQorCWhhc2hfc2l6ZSA9IGNvd19kZXZfc2l6ZSA+PiBz LT5zdG9yZS0+Y2h1bmtfc2hpZnQ7DQogCWhhc2hfc2l6ZSA9IG1pbihoYXNoX3NpemUsIG1heF9i dWNrZXRzKTsNCiANCiAJaWYgKGhhc2hfc2l6ZSA8IDY0KQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bWVkaWEvdmlkZW8vaGRwdnIvaGRwdnItY29yZS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9oZHB2 ci9oZHB2ci1jb3JlLmMNCmluZGV4IDQ0MWRhY2YuLjA2MDM1M2UgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL21lZGlhL3ZpZGVvL2hkcHZyL2hkcHZyLWNvcmUuYw0KKysrIGIvZHJpdmVycy9tZWRpYS92 aWRlby9oZHB2ci9oZHB2ci1jb3JlLmMNCkBAIC0yOTcsNiArMjk3LDExIEBAIHN0YXRpYyBpbnQg aGRwdnJfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwNCiANCiAJZGV2LT53 b3JrcXVldWUgPSAwOw0KIA0KKwkvKiBpbml0IHZpZGVvIHRyYW5zZmVyIHF1ZXVlcyBmaXJzdCBv ZiBhbGwgKi8NCisJLyogdG8gcHJldmVudCBvb3BzIGluIGhkcHZyX2RlbGV0ZSgpIG9uIGVycm9y IHBhdGhzICovDQorCUlOSVRfTElTVF9IRUFEKCZkZXYtPmZyZWVfYnVmZl9saXN0KTsNCisJSU5J VF9MSVNUX0hFQUQoJmRldi0+cmVjX2J1ZmZfbGlzdCk7DQorDQogCS8qIHJlZ2lzdGVyIHY0bDJf ZGV2aWNlIGVhcmx5IHNvIGl0IGNhbiBiZSB1c2VkIGZvciBwcmludGtzICovDQogCWlmICh2NGwy X2RldmljZV9yZWdpc3RlcigmaW50ZXJmYWNlLT5kZXYsICZkZXYtPnY0bDJfZGV2KSkgew0KIAkJ ZXJyKCJ2NGwyX2RldmljZV9yZWdpc3RlciBmYWlsZWQiKTsNCkBAIC0zMTksMTAgKzMyNCw2IEBA IHN0YXRpYyBpbnQgaGRwdnJfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwN CiAJaWYgKCFkZXYtPndvcmtxdWV1ZSkNCiAJCWdvdG8gZXJyb3I7DQogDQotCS8qIGluaXQgdmlk ZW8gdHJhbnNmZXIgcXVldWVzICovDQotCUlOSVRfTElTVF9IRUFEKCZkZXYtPmZyZWVfYnVmZl9s aXN0KTsNCi0JSU5JVF9MSVNUX0hFQUQoJmRldi0+cmVjX2J1ZmZfbGlzdCk7DQotDQogCWRldi0+ b3B0aW9ucyA9IGhkcHZyX2RlZmF1bHRfb3B0aW9uczsNCiANCiAJaWYgKGRlZmF1bHRfdmlkZW9f aW5wdXQgPCBIRFBWUl9WSURFT19JTlBVVFMpDQpAQCAtMzczLDEyICszNzQsNiBAQCBzdGF0aWMg aW50IGhkcHZyX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsDQogCX0NCiAJ bXV0ZXhfdW5sb2NrKCZkZXYtPmlvX211dGV4KTsNCiANCi0JaWYgKGhkcHZyX3JlZ2lzdGVyX3Zp ZGVvZGV2KGRldiwgJmludGVyZmFjZS0+ZGV2LA0KLQkJCQkgICAgdmlkZW9fbnJbYXRvbWljX2lu Y19yZXR1cm4oJmRldl9ucildKSkgew0KLQkJdjRsMl9lcnIoJmRldi0+djRsMl9kZXYsICJyZWdp c3RlcmluZyB2aWRlb2RldiBmYWlsZWRcbiIpOw0KLQkJZ290byBlcnJvcjsNCi0JfQ0KLQ0KICNp ZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpDQogCXJl dHZhbCA9IGhkcHZyX3JlZ2lzdGVyX2kyY19hZGFwdGVyKGRldik7DQogCWlmIChyZXR2YWwgPCAw KSB7DQpAQCAtMzk5LDYgKzM5NCwxMyBAQCBzdGF0aWMgaW50IGhkcHZyX3Byb2JlKHN0cnVjdCB1 c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsDQogCX0NCiAjZW5kaWYNCiANCisJcmV0dmFsID0gaGRw dnJfcmVnaXN0ZXJfdmlkZW9kZXYoZGV2LCAmaW50ZXJmYWNlLT5kZXYsDQorCQkJCSAgICB2aWRl b19uclthdG9taWNfaW5jX3JldHVybigmZGV2X25yKV0pOw0KKwlpZiAocmV0dmFsIDwgMCkgew0K KwkJdjRsMl9lcnIoJmRldi0+djRsMl9kZXYsICJyZWdpc3RlcmluZyB2aWRlb2RldiBmYWlsZWRc biIpOw0KKwkJZ290byByZWdfZmFpbDsNCisJfQ0KKw0KIAkvKiBsZXQgdGhlIHVzZXIga25vdyB3 aGF0IG5vZGUgdGhpcyBkZXZpY2UgaXMgbm93IGF0dGFjaGVkIHRvICovDQogCXY0bDJfaW5mbygm ZGV2LT52NGwyX2RldiwgImRldmljZSBub3cgYXR0YWNoZWQgdG8gJXNcbiIsDQogCQkgIHZpZGVv X2RldmljZV9ub2RlX25hbWUoZGV2LT52aWRlb19kZXYpKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJz L21tYy9ob3N0L3RtaW9fbW1jX2RtYS5jIGIvZHJpdmVycy9tbWMvaG9zdC90bWlvX21tY19kbWEu Yw0KaW5kZXggODZmMjU5Yy4uYmU5ZTc0ZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qv dG1pb19tbWNfZG1hLmMNCisrKyBiL2RyaXZlcnMvbW1jL2hvc3QvdG1pb19tbWNfZG1hLmMNCkBA IC05Miw2ICs5Miw3IEBAIHN0YXRpYyB2b2lkIHRtaW9fbW1jX3N0YXJ0X2RtYV9yeChzdHJ1Y3Qg dG1pb19tbWNfaG9zdCAqaG9zdCkNCiBwaW86DQogCWlmICghZGVzYykgew0KIAkJLyogRE1BIGZh aWxlZCwgZmFsbCBiYWNrIHRvIFBJTyAqLw0KKwkJdG1pb19tbWNfZW5hYmxlX2RtYShob3N0LCBm YWxzZSk7DQogCQlpZiAocmV0ID49IDApDQogCQkJcmV0ID0gLUVJTzsNCiAJCWhvc3QtPmNoYW5f cnggPSBOVUxMOw0KQEAgLTEwNCw3ICsxMDUsNiBAQCBwaW86DQogCQl9DQogCQlkZXZfd2Fybigm aG9zdC0+cGRldi0+ZGV2LA0KIAkJCSAiRE1BIGZhaWxlZDogJWQsIGZhbGxpbmcgYmFjayB0byBQ SU9cbiIsIHJldCk7DQotCQl0bWlvX21tY19lbmFibGVfZG1hKGhvc3QsIGZhbHNlKTsNCiAJfQ0K IA0KIAlkZXZfZGJnKCZob3N0LT5wZGV2LT5kZXYsICIlcygpOiBkZXNjICVwLCBjb29raWUgJWQs IHNnWyVkXVxuIiwgX19mdW5jX18sDQpAQCAtMTczLDYgKzE3Myw3IEBAIHN0YXRpYyB2b2lkIHRt aW9fbW1jX3N0YXJ0X2RtYV90eChzdHJ1Y3QgdG1pb19tbWNfaG9zdCAqaG9zdCkNCiBwaW86DQog CWlmICghZGVzYykgew0KIAkJLyogRE1BIGZhaWxlZCwgZmFsbCBiYWNrIHRvIFBJTyAqLw0KKwkJ dG1pb19tbWNfZW5hYmxlX2RtYShob3N0LCBmYWxzZSk7DQogCQlpZiAocmV0ID49IDApDQogCQkJ cmV0ID0gLUVJTzsNCiAJCWhvc3QtPmNoYW5fdHggPSBOVUxMOw0KQEAgLTE4NSw3ICsxODYsNiBA QCBwaW86DQogCQl9DQogCQlkZXZfd2FybigmaG9zdC0+cGRldi0+ZGV2LA0KIAkJCSAiRE1BIGZh aWxlZDogJWQsIGZhbGxpbmcgYmFjayB0byBQSU9cbiIsIHJldCk7DQotCQl0bWlvX21tY19lbmFi bGVfZG1hKGhvc3QsIGZhbHNlKTsNCiAJfQ0KIA0KIAlkZXZfZGJnKCZob3N0LT5wZGV2LT5kZXYs ICIlcygpOiBkZXNjICVwLCBjb29raWUgJWRcbiIsIF9fZnVuY19fLA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRf bWFpbi5jDQppbmRleCBiNDM2Yjg0Li4xYmYzNmFjIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQv Ym9uZGluZy9ib25kX21haW4uYw0KKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4u Yw0KQEAgLTE5MTEsNiArMTkxMSw3IEBAIGludCBib25kX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZp Y2UgKmJvbmRfZGV2LCBzdHJ1Y3QgbmV0X2RldmljZSAqc2xhdmVfZGV2KQ0KIAlzdHJ1Y3QgYm9u ZGluZyAqYm9uZCA9IG5ldGRldl9wcml2KGJvbmRfZGV2KTsNCiAJc3RydWN0IHNsYXZlICpzbGF2 ZSwgKm9sZGN1cnJlbnQ7DQogCXN0cnVjdCBzb2NrYWRkciBhZGRyOw0KKwlpbnQgb2xkX2ZsYWdz ID0gYm9uZF9kZXYtPmZsYWdzOw0KIAl1MzIgb2xkX2ZlYXR1cmVzID0gYm9uZF9kZXYtPmZlYXR1 cmVzOw0KIA0KIAkvKiBzbGF2ZSBpcyBub3QgYSBzbGF2ZSBvciBtYXN0ZXIgaXMgbm90IG1hc3Rl ciBvZiB0aGlzIHNsYXZlICovDQpAQCAtMjA0MSwxMiArMjA0MiwxOCBAQCBpbnQgYm9uZF9yZWxl YXNlKHN0cnVjdCBuZXRfZGV2aWNlICpib25kX2Rldiwgc3RydWN0IG5ldF9kZXZpY2UgKnNsYXZl X2RldikNCiAJICogYWxyZWFkeSB0YWtlbiBjYXJlIG9mIGFib3ZlIHdoZW4gd2UgZGV0YWNoZWQg dGhlIHNsYXZlDQogCSAqLw0KIAlpZiAoIVVTRVNfUFJJTUFSWShib25kLT5wYXJhbXMubW9kZSkp IHsNCi0JCS8qIHVuc2V0IHByb21pc2N1aXR5IGxldmVsIGZyb20gc2xhdmUgKi8NCi0JCWlmIChi b25kX2Rldi0+ZmxhZ3MgJiBJRkZfUFJPTUlTQykNCisJCS8qIHVuc2V0IHByb21pc2N1aXR5IGxl dmVsIGZyb20gc2xhdmUNCisJCSAqIE5PVEU6IFRoZSBORVRERVZfQ0hBTkdFQUREUiBjYWxsIGFi b3ZlIG1heSBjaGFuZ2UgdGhlIHZhbHVlDQorCQkgKiBvZiB0aGUgSUZGX1BST01JU0MgZmxhZyBp biB0aGUgYm9uZF9kZXYsIGJ1dCB3ZSBuZWVkIHRoZQ0KKwkJICogdmFsdWUgb2YgdGhhdCBmbGFn IGJlZm9yZSB0aGF0IGNoYW5nZSwgYXMgdGhhdCB3YXMgdGhlIHZhbHVlDQorCQkgKiB3aGVuIHRo aXMgc2xhdmUgd2FzIGF0dGFjaGVkLCBzbyB3ZSBjYWNoZSBhdCB0aGUgc3RhcnQgb2YgdGhlDQor CQkgKiBmdW5jdGlvbiBhbmQgdXNlIGl0IGhlcmUuIFNhbWUgZ29lcyBmb3IgQUxMTVVMVEkgYmVs b3cNCisJCSAqLw0KKwkJaWYgKG9sZF9mbGFncyAmIElGRl9QUk9NSVNDKQ0KIAkJCWRldl9zZXRf cHJvbWlzY3VpdHkoc2xhdmVfZGV2LCAtMSk7DQogDQogCQkvKiB1bnNldCBhbGxtdWx0aSBsZXZl bCBmcm9tIHNsYXZlICovDQotCQlpZiAoYm9uZF9kZXYtPmZsYWdzICYgSUZGX0FMTE1VTFRJKQ0K KwkJaWYgKG9sZF9mbGFncyAmIElGRl9BTExNVUxUSSkNCiAJCQlkZXZfc2V0X2FsbG11bHRpKHNs YXZlX2RldiwgLTEpOw0KIA0KIAkJLyogZmx1c2ggbWFzdGVyJ3MgbWNfbGlzdCBmcm9tIHNsYXZl ICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4uYyBiL2RyaXZlcnMvbmV0 L2Nhbi9mbGV4Y2FuLmMNCmluZGV4IGU1OWQwMDYuLmFhNGY5MTUgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL25ldC9jYW4vZmxleGNhbi5jDQorKysgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi5jDQpA QCAtNjY2LDcgKzY2Niw2IEBAIHN0YXRpYyBpbnQgZmxleGNhbl9jaGlwX3N0YXJ0KHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYpDQogew0KIAlzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2 X3ByaXYoZGV2KTsNCiAJc3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi0+ YmFzZTsNCi0JdW5zaWduZWQgaW50IGk7DQogCWludCBlcnI7DQogCXUzMiByZWdfbWNyLCByZWdf Y3RybDsNCiANCkBAIC03MzIsMTcgKzczMSw2IEBAIHN0YXRpYyBpbnQgZmxleGNhbl9jaGlwX3N0 YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpDQogCWRldl9kYmcoZGV2LT5kZXYucGFyZW50LCAi JXM6IHdyaXRpbmcgY3RybD0weCUwOHgiLCBfX2Z1bmNfXywgcmVnX2N0cmwpOw0KIAlmbGV4Y2Fu X3dyaXRlKHJlZ19jdHJsLCAmcmVncy0+Y3RybCk7DQogDQotCWZvciAoaSA9IDA7IGkgPCBBUlJB WV9TSVpFKHJlZ3MtPmNhbnR4ZmcpOyBpKyspIHsNCi0JCWZsZXhjYW5fd3JpdGUoMCwgJnJlZ3Mt PmNhbnR4ZmdbaV0uY2FuX2N0cmwpOw0KLQkJZmxleGNhbl93cml0ZSgwLCAmcmVncy0+Y2FudHhm Z1tpXS5jYW5faWQpOw0KLQkJZmxleGNhbl93cml0ZSgwLCAmcmVncy0+Y2FudHhmZ1tpXS5kYXRh WzBdKTsNCi0JCWZsZXhjYW5fd3JpdGUoMCwgJnJlZ3MtPmNhbnR4ZmdbaV0uZGF0YVsxXSk7DQot DQotCQkvKiBwdXQgTUIgaW50byByeCBxdWV1ZSAqLw0KLQkJZmxleGNhbl93cml0ZShGTEVYQ0FO X01CX0NOVF9DT0RFKDB4NCksDQotCQkJJnJlZ3MtPmNhbnR4ZmdbaV0uY2FuX2N0cmwpOw0KLQl9 DQotDQogCS8qIGFjY2VwdGFuY2UgbWFzay9hY2NlcHRhbmNlIGNvZGUgKGFjY2VwdCBldmVyeXRo aW5nKSAqLw0KIAlmbGV4Y2FuX3dyaXRlKDB4MCwgJnJlZ3MtPnJ4Z21hc2spOw0KIAlmbGV4Y2Fu X3dyaXRlKDB4MCwgJnJlZ3MtPnJ4MTRtYXNrKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNj YWxlL2dpYW5mYXIuYw0KaW5kZXggZDA3MjJhNy4uZmI5ZTdkMyAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMNCkBAIC0zOTcsNyArMzk3LDEzIEBAIHN0YXRpYyB2 b2lkIGdmYXJfaW5pdF9tYWMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpDQogCWlmIChuZGV2LT5m ZWF0dXJlcyAmIE5FVElGX0ZfSVBfQ1NVTSkNCiAJCXRjdHJsIHw9IFRDVFJMX0lOSVRfQ1NVTTsN CiANCi0JdGN0cmwgfD0gVENUUkxfVFhTQ0hFRF9QUklPOw0KKwlpZiAocHJpdi0+cHJpb19zY2hl ZF9lbikNCisJCXRjdHJsIHw9IFRDVFJMX1RYU0NIRURfUFJJTzsNCisJZWxzZSB7DQorCQl0Y3Ry bCB8PSBUQ1RSTF9UWFNDSEVEX1dSUlM7DQorCQlnZmFyX3dyaXRlKCZyZWdzLT50cjAzd3QsIERF RkFVTFRfV1JSU19XRUlHSFQpOw0KKwkJZ2Zhcl93cml0ZSgmcmVncy0+dHI0N3d0LCBERUZBVUxU X1dSUlNfV0VJR0hUKTsNCisJfQ0KIA0KIAlnZmFyX3dyaXRlKCZyZWdzLT50Y3RybCwgdGN0cmwp Ow0KIA0KQEAgLTExNTcsNiArMTE2Myw5IEBAIHN0YXRpYyBpbnQgZ2Zhcl9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpvZmRldikNCiAJcHJpdi0+cnhfZmlsZXJfZW5hYmxlID0gMTsNCiAJ LyogRW5hYmxlIG1vc3QgbWVzc2FnZXMgYnkgZGVmYXVsdCAqLw0KIAlwcml2LT5tc2dfZW5hYmxl ID0gKE5FVElGX01TR19JRlVQIDw8IDEgKSAtIDE7DQorCS8qIHVzZSBwcml0b3JpdHkgaC93IHR4 IHF1ZXVlIHNjaGVkdWxpbmcgZm9yIHNpbmdsZSBxdWV1ZSBkZXZpY2VzICovDQorCWlmIChwcml2 LT5udW1fdHhfcXVldWVzID09IDEpDQorCQlwcml2LT5wcmlvX3NjaGVkX2VuID0gMTsNCiANCiAJ LyogQ2FycmllciBzdGFydHMgZG93biwgcGh5bGliIHdpbGwgYnJpbmcgaXQgdXAgKi8NCiAJbmV0 aWZfY2Fycmllcl9vZmYoZGV2KTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9m cmVlc2NhbGUvZ2lhbmZhci5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5m YXIuaA0KaW5kZXggOWFhNDM3Ny4uYWJlYjc5YSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmgNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Zy ZWVzY2FsZS9naWFuZmFyLmgNCkBAIC0zMDQsOCArMzA0LDE2IEBAIGV4dGVybiBjb25zdCBjaGFy IGdmYXJfZHJpdmVyX3ZlcnNpb25bXTsNCiAjZGVmaW5lIFRDVFJMX1RGQ1BBVVNFCQkweDAwMDAw MDA4DQogI2RlZmluZSBUQ1RSTF9UWFNDSEVEX01BU0sJMHgwMDAwMDAwNg0KICNkZWZpbmUgVENU UkxfVFhTQ0hFRF9JTklUCTB4MDAwMDAwMDANCisvKiBwcmlvcml0eSBzY2hlZHVsaW5nICovDQog I2RlZmluZSBUQ1RSTF9UWFNDSEVEX1BSSU8JMHgwMDAwMDAwMg0KKy8qIHdlaWdodGVkIHJvdW5k LXJvYmluIHNjaGVkdWxpbmcgKFdSUlMpICovDQogI2RlZmluZSBUQ1RSTF9UWFNDSEVEX1dSUlMJ MHgwMDAwMDAwNA0KKy8qIGRlZmF1bHQgV1JSUyB3ZWlnaHQgYW5kIHBvbGljeSBzZXR0aW5nLA0K KyAqIHRhaWxvcmVkIHRvIHRoZSB0cjAzd3QgYW5kIHRyNDd3dCByZWdpc3RlcnM6DQorICogZXF1 YWwgd2VpZ2h0IGZvciBhbGwgVHggUXMsIG1lYXN1cmVkIGluIDY0Ynl0ZSB1bml0cw0KKyAqLw0K KyNkZWZpbmUgREVGQVVMVF9XUlJTX1dFSUdIVAkweDE4MTgxODE4DQorDQogI2RlZmluZSBUQ1RS TF9JTklUX0NTVU0JCShUQ1RSTF9UVUNTRU4gfCBUQ1RSTF9JUENTRU4pDQogDQogI2RlZmluZSBJ RVZFTlRfSU5JVF9DTEVBUgkweGZmZmZmZmZmDQpAQCAtMTEwMSw3ICsxMTA5LDggQEAgc3RydWN0 IGdmYXJfcHJpdmF0ZSB7DQogCQlleHRlbmRlZF9oYXNoOjEsDQogCQliZF9zdGFzaF9lbjoxLA0K IAkJcnhfZmlsZXJfZW5hYmxlOjEsDQotCQl3b2xfZW46MTsgLyogV2FrZS1vbi1MQU4gZW5hYmxl ZCAqLw0KKwkJd29sX2VuOjEsIC8qIFdha2Utb24tTEFOIGVuYWJsZWQgKi8NCisJCXByaW9fc2No ZWRfZW46MTsgLyogRW5hYmxlIHByaW9ydHkgYmFzZWQgVHggc2NoZWR1bGluZyBpbiBIdyAqLw0K IAl1bnNpZ25lZCBzaG9ydCBwYWRkaW5nOw0KIA0KIAkvKiBQSFkgc3R1ZmYgKi8NCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrLzgxMzljcC5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvcmVhbHRlay84MTM5Y3AuYw0KaW5kZXggOGY0NzkwNy4uNDIzNmI4MiAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvODEzOWNwLmMNCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvODEzOWNwLmMNCkBAIC00NzgsNyArNDc4LDcgQEAgcnhf c3RhdHVzX2xvb3A6DQogDQogCXdoaWxlICgxKSB7DQogCQl1MzIgc3RhdHVzLCBsZW47DQotCQlk bWFfYWRkcl90IG1hcHBpbmc7DQorCQlkbWFfYWRkcl90IG1hcHBpbmcsIG5ld19tYXBwaW5nOw0K IAkJc3RydWN0IHNrX2J1ZmYgKnNrYiwgKm5ld19za2I7DQogCQlzdHJ1Y3QgY3BfZGVzYyAqZGVz YzsNCiAJCWNvbnN0IHVuc2lnbmVkIGJ1ZmxlbiA9IGNwLT5yeF9idWZfc3o7DQpAQCAtNTIwLDYg KzUyMCwxNCBAQCByeF9zdGF0dXNfbG9vcDoNCiAJCQlnb3RvIHJ4X25leHQ7DQogCQl9DQogDQor CQluZXdfbWFwcGluZyA9IGRtYV9tYXBfc2luZ2xlKCZjcC0+cGRldi0+ZGV2LCBuZXdfc2tiLT5k YXRhLCBidWZsZW4sDQorCQkJCQkgUENJX0RNQV9GUk9NREVWSUNFKTsNCisJCWlmIChkbWFfbWFw cGluZ19lcnJvcigmY3AtPnBkZXYtPmRldiwgbmV3X21hcHBpbmcpKSB7DQorCQkJZGV2LT5zdGF0 cy5yeF9kcm9wcGVkKys7DQorCQkJa2ZyZWVfc2tiKG5ld19za2IpOw0KKwkJCWdvdG8gcnhfbmV4 dDsNCisJCX0NCisNCiAJCWRtYV91bm1hcF9zaW5nbGUoJmNwLT5wZGV2LT5kZXYsIG1hcHBpbmcs DQogCQkJCSBidWZsZW4sIFBDSV9ETUFfRlJPTURFVklDRSk7DQogDQpAQCAtNTMxLDEyICs1Mzks MTEgQEAgcnhfc3RhdHVzX2xvb3A6DQogDQogCQlza2JfcHV0KHNrYiwgbGVuKTsNCiANCi0JCW1h cHBpbmcgPSBkbWFfbWFwX3NpbmdsZSgmY3AtPnBkZXYtPmRldiwgbmV3X3NrYi0+ZGF0YSwgYnVm bGVuLA0KLQkJCQkJIFBDSV9ETUFfRlJPTURFVklDRSk7DQogCQljcC0+cnhfc2tiW3J4X3RhaWxd ID0gbmV3X3NrYjsNCiANCiAJCWNwX3J4X3NrYihjcCwgc2tiLCBkZXNjKTsNCiAJCXJ4Kys7DQor CQltYXBwaW5nID0gbmV3X21hcHBpbmc7DQogDQogcnhfbmV4dDoNCiAJCWNwLT5yeF9yaW5nW3J4 X3RhaWxdLm9wdHMyID0gMDsNCkBAIC03MDQsNiArNzExLDIyIEBAIHN0YXRpYyBpbmxpbmUgdTMy IGNwX3R4X3ZsYW5fdGFnKHN0cnVjdCBza19idWZmICpza2IpDQogCQlUeFZsYW5UYWcgfCBzd2Fi MTYodmxhbl90eF90YWdfZ2V0KHNrYikpIDogMHgwMDsNCiB9DQogDQorc3RhdGljIHZvaWQgdW53 aW5kX3R4X2ZyYWdfbWFwcGluZyhzdHJ1Y3QgY3BfcHJpdmF0ZSAqY3AsIHN0cnVjdCBza19idWZm ICpza2IsDQorCQkJCSAgIGludCBmaXJzdCwgaW50IGVudHJ5X2xhc3QpDQorew0KKwlpbnQgZnJh ZywgaW5kZXg7DQorCXN0cnVjdCBjcF9kZXNjICp0eGQ7DQorCXNrYl9mcmFnX3QgKnRoaXNfZnJh ZzsNCisJZm9yIChmcmFnID0gMDsgZnJhZytmaXJzdCA8IGVudHJ5X2xhc3Q7IGZyYWcrKykgew0K KwkJaW5kZXggPSBmaXJzdCtmcmFnOw0KKwkJY3AtPnR4X3NrYltpbmRleF0gPSBOVUxMOw0KKwkJ dHhkID0gJmNwLT50eF9yaW5nW2luZGV4XTsNCisJCXRoaXNfZnJhZyA9ICZza2Jfc2hpbmZvKHNr YiktPmZyYWdzW2ZyYWddOw0KKwkJZG1hX3VubWFwX3NpbmdsZSgmY3AtPnBkZXYtPmRldiwgbGU2 NF90b19jcHUodHhkLT5hZGRyKSwNCisJCQkJIHNrYl9mcmFnX3NpemUodGhpc19mcmFnKSwgUENJ X0RNQV9UT0RFVklDRSk7DQorCX0NCit9DQorDQogc3RhdGljIG5ldGRldl90eF90IGNwX3N0YXJ0 X3htaXQgKHN0cnVjdCBza19idWZmICpza2IsDQogCQkJCQlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KQ0KIHsNCkBAIC03MzcsNiArNzYwLDkgQEAgc3RhdGljIG5ldGRldl90eF90IGNwX3N0YXJ0X3ht aXQgKHN0cnVjdCBza19idWZmICpza2IsDQogDQogCQlsZW4gPSBza2ItPmxlbjsNCiAJCW1hcHBp bmcgPSBkbWFfbWFwX3NpbmdsZSgmY3AtPnBkZXYtPmRldiwgc2tiLT5kYXRhLCBsZW4sIFBDSV9E TUFfVE9ERVZJQ0UpOw0KKwkJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKCZjcC0+cGRldi0+ZGV2LCBt YXBwaW5nKSkNCisJCQlnb3RvIG91dF9kbWFfZXJyb3I7DQorDQogCQl0eGQtPm9wdHMyID0gb3B0 czI7DQogCQl0eGQtPmFkZHIgPSBjcHVfdG9fbGU2NChtYXBwaW5nKTsNCiAJCXdtYigpOw0KQEAg LTc3NCw2ICs4MDAsOSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgY3Bfc3RhcnRfeG1pdCAoc3RydWN0 IHNrX2J1ZmYgKnNrYiwNCiAJCWZpcnN0X2xlbiA9IHNrYl9oZWFkbGVuKHNrYik7DQogCQlmaXJz dF9tYXBwaW5nID0gZG1hX21hcF9zaW5nbGUoJmNwLT5wZGV2LT5kZXYsIHNrYi0+ZGF0YSwNCiAJ CQkJCSAgICAgICBmaXJzdF9sZW4sIFBDSV9ETUFfVE9ERVZJQ0UpOw0KKwkJaWYgKGRtYV9tYXBw aW5nX2Vycm9yKCZjcC0+cGRldi0+ZGV2LCBmaXJzdF9tYXBwaW5nKSkNCisJCQlnb3RvIG91dF9k bWFfZXJyb3I7DQorDQogCQljcC0+dHhfc2tiW2VudHJ5XSA9IHNrYjsNCiAJCWVudHJ5ID0gTkVY VF9UWChlbnRyeSk7DQogDQpAQCAtNzg3LDYgKzgxNiwxMSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qg Y3Bfc3RhcnRfeG1pdCAoc3RydWN0IHNrX2J1ZmYgKnNrYiwNCiAJCQltYXBwaW5nID0gZG1hX21h cF9zaW5nbGUoJmNwLT5wZGV2LT5kZXYsDQogCQkJCQkJIHNrYl9mcmFnX2FkZHJlc3ModGhpc19m cmFnKSwNCiAJCQkJCQkgbGVuLCBQQ0lfRE1BX1RPREVWSUNFKTsNCisJCQlpZiAoZG1hX21hcHBp bmdfZXJyb3IoJmNwLT5wZGV2LT5kZXYsIG1hcHBpbmcpKSB7DQorCQkJCXVud2luZF90eF9mcmFn X21hcHBpbmcoY3AsIHNrYiwgZmlyc3RfZW50cnksIGVudHJ5KTsNCisJCQkJZ290byBvdXRfZG1h X2Vycm9yOw0KKwkJCX0NCisNCiAJCQllb3IgPSAoZW50cnkgPT0gKENQX1RYX1JJTkdfU0laRSAt IDEpKSA/IFJpbmdFbmQgOiAwOw0KIA0KIAkJCWN0cmwgPSBlb3IgfCBsZW4gfCBEZXNjT3duOw0K QEAgLTg0NSwxMSArODc5LDE2IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBjcF9zdGFydF94bWl0IChz dHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KIAlpZiAoVFhfQlVGRlNfQVZBSUwoY3ApIDw9IChNQVhfU0tC X0ZSQUdTICsgMSkpDQogCQluZXRpZl9zdG9wX3F1ZXVlKGRldik7DQogDQorb3V0X3VubG9jazoN CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3AtPmxvY2ssIGludHJfZmxhZ3MpOw0KIA0KIAlj cHc4KFR4UG9sbCwgTm9ybWFsVHhQb2xsKTsNCiANCiAJcmV0dXJuIE5FVERFVl9UWF9PSzsNCitv dXRfZG1hX2Vycm9yOg0KKwlrZnJlZV9za2Ioc2tiKTsNCisJY3AtPmRldi0+c3RhdHMudHhfZHJv cHBlZCsrOw0KKwlnb3RvIG91dF91bmxvY2s7DQogfQ0KIA0KIC8qIFNldCBvciBjbGVhciB0aGUg bXVsdGljYXN0IGZpbHRlciBmb3IgdGhpcyBhZGFwdG9yLg0KQEAgLTEwMjMsNiArMTA2MiwxMCBA QCBzdGF0aWMgaW50IGNwX3JlZmlsbF9yeChzdHJ1Y3QgY3BfcHJpdmF0ZSAqY3ApDQogDQogCQlt YXBwaW5nID0gZG1hX21hcF9zaW5nbGUoJmNwLT5wZGV2LT5kZXYsIHNrYi0+ZGF0YSwNCiAJCQkJ CSBjcC0+cnhfYnVmX3N6LCBQQ0lfRE1BX0ZST01ERVZJQ0UpOw0KKwkJaWYgKGRtYV9tYXBwaW5n X2Vycm9yKCZjcC0+cGRldi0+ZGV2LCBtYXBwaW5nKSkgew0KKwkJCWtmcmVlX3NrYihza2IpOw0K KwkJCWdvdG8gZXJyX291dDsNCisJCX0NCiAJCWNwLT5yeF9za2JbaV0gPSBza2I7DQogDQogCQlj cC0+cnhfcmluZ1tpXS5vcHRzMiA9IDA7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvc2ZjL3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvcnguYw0KaW5kZXggOWNlODY2 NS4uYzIzMWIzZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9yeC5jDQor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvcnguYw0KQEAgLTMxMiw4ICszMTIsOSBAQCBz dGF0aWMgdm9pZCBlZnhfcmVzdXJyZWN0X3J4X2J1ZmZlcihzdHJ1Y3QgZWZ4X3J4X3F1ZXVlICpy eF9xdWV1ZSwNCiANCiAJaW5kZXggPSByeF9xdWV1ZS0+YWRkZWRfY291bnQgJiByeF9xdWV1ZS0+ cHRyX21hc2s7DQogCW5ld19idWYgPSBlZnhfcnhfYnVmZmVyKHJ4X3F1ZXVlLCBpbmRleCk7DQot CW5ld19idWYtPmRtYV9hZGRyID0gcnhfYnVmLT5kbWFfYWRkciBeIChQQUdFX1NJWkUgPj4gMSk7 DQogCW5ld19idWYtPnUucGFnZSA9IHJ4X2J1Zi0+dS5wYWdlOw0KKwluZXdfYnVmLT5wYWdlX29m ZnNldCA9IHJ4X2J1Zi0+cGFnZV9vZmZzZXQgXiAoUEFHRV9TSVpFID4+IDEpOw0KKwluZXdfYnVm LT5kbWFfYWRkciA9IHN0YXRlLT5kbWFfYWRkciArIG5ld19idWYtPnBhZ2Vfb2Zmc2V0Ow0KIAlu ZXdfYnVmLT5sZW4gPSByeF9idWYtPmxlbjsNCiAJbmV3X2J1Zi0+aXNfcGFnZSA9IHRydWU7DQog CSsrcnhfcXVldWUtPmFkZGVkX2NvdW50Ow0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3ZpYS92aWEtcmhpbmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3ZpYS92aWEtcmhpbmUu Yw0KaW5kZXggZjM0ZGQ5OS4uZjM3ZTBhZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3ZpYS92aWEtcmhpbmUuYw0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvdmlhL3ZpYS1y aGluZS5jDQpAQCAtMzIsNyArMzIsNyBAQA0KICNkZWZpbmUgcHJfZm10KGZtdCkgS0JVSUxEX01P RE5BTUUgIjogIiBmbXQNCiANCiAjZGVmaW5lIERSVl9OQU1FCSJ2aWEtcmhpbmUiDQotI2RlZmlu ZSBEUlZfVkVSU0lPTgkiMS41LjAiDQorI2RlZmluZSBEUlZfVkVSU0lPTgkiMS41LjEiDQogI2Rl ZmluZSBEUlZfUkVMREFURQkiMjAxMC0xMC0wOSINCiANCiANCkBAIC0xNTE4LDcgKzE1MTgsMTIg QEAgc3RhdGljIG5ldGRldl90eF90IHJoaW5lX3N0YXJ0X3R4KHN0cnVjdCBza19idWZmICpza2Is DQogCQljcHVfdG9fbGUzMihUWERFU0MgfCAoc2tiLT5sZW4gPj0gRVRIX1pMRU4gPyBza2ItPmxl biA6IEVUSF9aTEVOKSk7DQogDQogCWlmICh1bmxpa2VseSh2bGFuX3R4X3RhZ19wcmVzZW50KHNr YikpKSB7DQotCQlycC0+dHhfcmluZ1tlbnRyeV0udHhfc3RhdHVzID0gY3B1X3RvX2xlMzIoKHZs YW5fdHhfdGFnX2dldChza2IpKSA8PCAxNik7DQorCQl1MTYgdmlkX3BjcCA9IHZsYW5fdHhfdGFn X2dldChza2IpOw0KKw0KKwkJLyogZHJvcCBDRkkvREVJIGJpdCwgcmVnaXN0ZXIgbmVlZHMgVklE IGFuZCBQQ1AgKi8NCisJCXZpZF9wY3AgPSAodmlkX3BjcCAmIFZMQU5fVklEX01BU0spIHwNCisJ CQkgICgodmlkX3BjcCAmIFZMQU5fUFJJT19NQVNLKSA+PiAxKTsNCisJCXJwLT50eF9yaW5nW2Vu dHJ5XS50eF9zdGF0dXMgPSBjcHVfdG9fbGUzMigodmlkX3BjcCkgPDwgMTYpOw0KIAkJLyogcmVx dWVzdCB0YWdnaW5nICovDQogCQlycC0+dHhfcmluZ1tlbnRyeV0uZGVzY19sZW5ndGggfD0gY3B1 X3RvX2xlMzIoMHgwMjAwMDApOw0KIAl9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQveGlsaW54L2xsX3RlbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC9s bF90ZW1hY19tYWluLmMNCmluZGV4IDI2ODFiNTMuLmUyNjk0NWQgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC94aWxpbngvbGxfdGVtYWNfbWFpbi5jDQorKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC94aWxpbngvbGxfdGVtYWNfbWFpbi5jDQpAQCAtMzA4LDYgKzMwOCwxMiBAQCBz dGF0aWMgaW50IHRlbWFjX2RtYV9iZF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KQ0KIAkJ ICAgICAgIGxwLT5yeF9iZF9wICsgKHNpemVvZigqbHAtPnJ4X2JkX3YpICogKFJYX0JEX05VTSAt IDEpKSk7DQogCWxwLT5kbWFfb3V0KGxwLCBUWF9DVVJERVNDX1BUUiwgbHAtPnR4X2JkX3ApOw0K IA0KKwkvKiBJbml0IGRlc2NyaXB0b3IgaW5kZXhlcyAqLw0KKwlscC0+dHhfYmRfY2kgPSAwOw0K KwlscC0+dHhfYmRfbmV4dCA9IDA7DQorCWxwLT50eF9iZF90YWlsID0gMDsNCisJbHAtPnJ4X2Jk X2NpID0gMDsNCisNCiAJcmV0dXJuIDA7DQogDQogb3V0Og0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L21hY3Z0YXAuYyBiL2RyaXZlcnMvbmV0L21hY3Z0YXAuYw0KaW5kZXggOTZiOWUzYy4uYjBm OTAxNSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L21hY3Z0YXAuYw0KKysrIGIvZHJpdmVycy9u ZXQvbWFjdnRhcC5jDQpAQCAtNjQxLDYgKzY0MSwyOCBAQCBzdGF0aWMgaW50IG1hY3Z0YXBfc2ti X3RvX3ZuZXRfaGRyKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsDQogCXJldHVybiAwOw0KIH0N CiANCitzdGF0aWMgdW5zaWduZWQgbG9uZyBpb3ZfcGFnZXMoY29uc3Qgc3RydWN0IGlvdmVjICpp diwgaW50IG9mZnNldCwNCisJCQkgICAgICAgdW5zaWduZWQgbG9uZyBucl9zZWdzKQ0KK3sNCisJ dW5zaWduZWQgbG9uZyBzZWcsIGJhc2U7DQorCWludCBwYWdlcyA9IDAsIGxlbiwgc2l6ZTsNCisN CisJd2hpbGUgKG5yX3NlZ3MgJiYgKG9mZnNldCA+PSBpdi0+aW92X2xlbikpIHsNCisJCW9mZnNl dCAtPSBpdi0+aW92X2xlbjsNCisJCSsraXY7DQorCQktLW5yX3NlZ3M7DQorCX0NCisNCisJZm9y IChzZWcgPSAwOyBzZWcgPCBucl9zZWdzOyBzZWcrKykgew0KKwkJYmFzZSA9ICh1bnNpZ25lZCBs b25nKWl2W3NlZ10uaW92X2Jhc2UgKyBvZmZzZXQ7DQorCQlsZW4gPSBpdltzZWddLmlvdl9sZW4g LSBvZmZzZXQ7DQorCQlzaXplID0gKChiYXNlICYgflBBR0VfTUFTSykgKyBsZW4gKyB+UEFHRV9N QVNLKSA+PiBQQUdFX1NISUZUOw0KKwkJcGFnZXMgKz0gc2l6ZTsNCisJCW9mZnNldCA9IDA7DQor CX0NCisNCisJcmV0dXJuIHBhZ2VzOw0KK30NCiANCiAvKiBHZXQgcGFja2V0IGZyb20gdXNlciBz cGFjZSBidWZmZXIgKi8NCiBzdGF0aWMgc3NpemVfdCBtYWN2dGFwX2dldF91c2VyKHN0cnVjdCBt YWN2dGFwX3F1ZXVlICpxLCBzdHJ1Y3QgbXNnaGRyICptLA0KQEAgLTY4NywzMSArNzA5LDE1IEBA IHN0YXRpYyBzc2l6ZV90IG1hY3Z0YXBfZ2V0X3VzZXIoc3RydWN0IG1hY3Z0YXBfcXVldWUgKnEs IHN0cnVjdCBtc2doZHIgKm0sDQogCWlmICh1bmxpa2VseShjb3VudCA+IFVJT19NQVhJT1YpKQ0K IAkJZ290byBlcnI7DQogDQotCWlmIChtICYmIG0tPm1zZ19jb250cm9sICYmIHNvY2tfZmxhZygm cS0+c2ssIFNPQ0tfWkVST0NPUFkpKQ0KLQkJemVyb2NvcHkgPSB0cnVlOw0KLQ0KLQlpZiAoemVy b2NvcHkpIHsNCi0JCS8qIFVzZXJzcGFjZSBtYXkgcHJvZHVjZSB2ZWN0b3JzIHdpdGggY291bnQg Z3JlYXRlciB0aGFuDQotCQkgKiBNQVhfU0tCX0ZSQUdTLCBzbyB3ZSBuZWVkIHRvIGxpbmVhcml6 ZSBwYXJ0cyBvZiB0aGUgc2tiDQotCQkgKiB0byBsZXQgdGhlIHJlc3Qgb2YgZGF0YSB0byBiZSBm aXQgaW4gdGhlIGZyYWdzLg0KLQkJICovDQotCQlpZiAoY291bnQgPiBNQVhfU0tCX0ZSQUdTKSB7 DQotCQkJY29weWxlbiA9IGlvdl9sZW5ndGgoaXYsIGNvdW50IC0gTUFYX1NLQl9GUkFHUyk7DQot CQkJaWYgKGNvcHlsZW4gPCB2bmV0X2hkcl9sZW4pDQotCQkJCWNvcHlsZW4gPSAwOw0KLQkJCWVs c2UNCi0JCQkJY29weWxlbiAtPSB2bmV0X2hkcl9sZW47DQotCQl9DQotCQkvKiBUaGVyZSBhcmUg MjU2IGJ5dGVzIHRvIGJlIGNvcGllZCBpbiBza2IsIHNvIHRoZXJlIGlzIGVub3VnaA0KLQkJICog cm9vbSBmb3Igc2tiIGV4cGFuZCBoZWFkIGluIGNhc2UgaXQgaXMgdXNlZC4NCi0JCSAqIFRoZSBy ZXN0IGJ1ZmZlciBpcyBtYXBwZWQgZnJvbSB1c2Vyc3BhY2UuDQotCQkgKi8NCi0JCWlmIChjb3B5 bGVuIDwgdm5ldF9oZHIuaGRyX2xlbikNCi0JCQljb3B5bGVuID0gdm5ldF9oZHIuaGRyX2xlbjsN Ci0JCWlmICghY29weWxlbikNCi0JCQljb3B5bGVuID0gR09PRENPUFlfTEVOOw0KKwlpZiAobSAm JiBtLT5tc2dfY29udHJvbCAmJiBzb2NrX2ZsYWcoJnEtPnNrLCBTT0NLX1pFUk9DT1BZKSkgew0K KwkJY29weWxlbiA9IHZuZXRfaGRyLmhkcl9sZW4gPyB2bmV0X2hkci5oZHJfbGVuIDogR09PRENP UFlfTEVOOw0KIAkJbGluZWFyID0gY29weWxlbjsNCi0JfSBlbHNlIHsNCisJCWlmIChpb3ZfcGFn ZXMoaXYsIHZuZXRfaGRyX2xlbiArIGNvcHlsZW4sIGNvdW50KQ0KKwkJICAgIDw9IE1BWF9TS0Jf RlJBR1MpDQorCQkJemVyb2NvcHkgPSB0cnVlOw0KKwl9DQorDQorCWlmICghemVyb2NvcHkpIHsN CiAJCWNvcHlsZW4gPSBsZW47DQogCQlsaW5lYXIgPSB2bmV0X2hkci5oZHJfbGVuOw0KIAl9DQpA QCAtNzIzLDkgKzcyOSwxNSBAQCBzdGF0aWMgc3NpemVfdCBtYWN2dGFwX2dldF91c2VyKHN0cnVj dCBtYWN2dGFwX3F1ZXVlICpxLCBzdHJ1Y3QgbXNnaGRyICptLA0KIA0KIAlpZiAoemVyb2NvcHkp DQogCQllcnIgPSB6ZXJvY29weV9zZ19mcm9tX2lvdmVjKHNrYiwgaXYsIHZuZXRfaGRyX2xlbiwg Y291bnQpOw0KLQllbHNlDQorCWVsc2Ugew0KIAkJZXJyID0gc2tiX2NvcHlfZGF0YWdyYW1fZnJv bV9pb3ZlYyhza2IsIDAsIGl2LCB2bmV0X2hkcl9sZW4sDQogCQkJCQkJICAgbGVuKTsNCisJCWlm ICghZXJyICYmIG0gJiYgbS0+bXNnX2NvbnRyb2wpIHsNCisJCQlzdHJ1Y3QgdWJ1Zl9pbmZvICp1 YXJnID0gbS0+bXNnX2NvbnRyb2w7DQorCQkJdWFyZy0+Y2FsbGJhY2sodWFyZyk7DQorCQl9DQor CX0NCisNCiAJaWYgKGVycikNCiAJCWdvdG8gZXJyX2tmcmVlOw0KIA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3BwcC9wcHRwLmMgYi9kcml2ZXJzL25ldC9wcHAvcHB0cC5jDQppbmRleCBhZDZh OWQ5Li4yYjM0OWQzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvcHBwL3BwdHAuYw0KKysrIGIv ZHJpdmVycy9uZXQvcHBwL3BwdHAuYw0KQEAgLTI4MSw3ICsyODEsNyBAQCBzdGF0aWMgaW50IHBw dHBfeG1pdChzdHJ1Y3QgcHBwX2NoYW5uZWwgKmNoYW4sIHN0cnVjdCBza19idWZmICpza2IpDQog CW5mX3Jlc2V0KHNrYik7DQogDQogCXNrYi0+aXBfc3VtbWVkID0gQ0hFQ0tTVU1fTk9ORTsNCi0J aXBfc2VsZWN0X2lkZW50KGlwaCwgJnJ0LT5kc3QsIE5VTEwpOw0KKwlpcF9zZWxlY3RfaWRlbnQo c2tiLCAmcnQtPmRzdCwgTlVMTCk7DQogCWlwX3NlbmRfY2hlY2soaXBoKTsNCiANCiAJaXBfbG9j YWxfb3V0KHNrYik7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdHVuLmMgYi9kcml2ZXJzL25l dC90dW4uYw0KaW5kZXggZjRjNWRlNi4uZWUxYWFiMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0 L3R1bi5jDQorKysgYi9kcml2ZXJzL25ldC90dW4uYw0KQEAgLTYxNCw4ICs2MTQsOSBAQCBzdGF0 aWMgc3NpemVfdCB0dW5fZ2V0X3VzZXIoc3RydWN0IHR1bl9zdHJ1Y3QgKnR1biwNCiAJaW50IG9m ZnNldCA9IDA7DQogDQogCWlmICghKHR1bi0+ZmxhZ3MgJiBUVU5fTk9fUEkpKSB7DQotCQlpZiAo KGxlbiAtPSBzaXplb2YocGkpKSA+IGNvdW50KQ0KKwkJaWYgKGxlbiA8IHNpemVvZihwaSkpDQog CQkJcmV0dXJuIC1FSU5WQUw7DQorCQlsZW4gLT0gc2l6ZW9mKHBpKTsNCiANCiAJCWlmIChtZW1j cHlfZnJvbWlvdmVjZW5kKCh2b2lkICopJnBpLCBpdiwgMCwgc2l6ZW9mKHBpKSkpDQogCQkJcmV0 dXJuIC1FRkFVTFQ7DQpAQCAtNjIzLDggKzYyNCw5IEBAIHN0YXRpYyBzc2l6ZV90IHR1bl9nZXRf dXNlcihzdHJ1Y3QgdHVuX3N0cnVjdCAqdHVuLA0KIAl9DQogDQogCWlmICh0dW4tPmZsYWdzICYg VFVOX1ZORVRfSERSKSB7DQotCQlpZiAoKGxlbiAtPSB0dW4tPnZuZXRfaGRyX3N6KSA+IGNvdW50 KQ0KKwkJaWYgKGxlbiA8IHR1bi0+dm5ldF9oZHJfc3opDQogCQkJcmV0dXJuIC1FSU5WQUw7DQor CQlsZW4gLT0gdHVuLT52bmV0X2hkcl9zejsNCiANCiAJCWlmIChtZW1jcHlfZnJvbWlvdmVjZW5k KCh2b2lkICopJmdzbywgaXYsIG9mZnNldCwgc2l6ZW9mKGdzbykpKQ0KIAkJCXJldHVybiAtRUZB VUxUOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9jZGNfZXRoZXIuYyBiL2RyaXZlcnMv bmV0L3VzYi9jZGNfZXRoZXIuYw0KaW5kZXggMmJhNDBjZi4uNDNhYTA2YiAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvbmV0L3VzYi9jZGNfZXRoZXIuYw0KKysrIGIvZHJpdmVycy9uZXQvdXNiL2NkY19l dGhlci5jDQpAQCAtNjE1LDYgKzYxNSwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZp Y2VfaWQJcHJvZHVjdHMgW10gPSB7DQogCS5iSW50ZXJmYWNlUHJvdG9jb2wJPSBVU0JfQ0RDX1BS T1RPX05PTkUsDQogCS5kcml2ZXJfaW5mbyA9ICh1bnNpZ25lZCBsb25nKSZ3d2FuX2luZm8sDQog fSwgew0KKwkvKiBUZWxpdCBtb2R1bGVzICovDQorCVVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9J TkZPKDB4MWJjNywgVVNCX0NMQVNTX0NPTU0sDQorCQkJVVNCX0NEQ19TVUJDTEFTU19FVEhFUk5F VCwgVVNCX0NEQ19QUk9UT19OT05FKSwNCisJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190 KSAmd3dhbl9pbmZvLA0KK30sIHsNCiAJVVNCX0lOVEVSRkFDRV9JTkZPKFVTQl9DTEFTU19DT01N LCBVU0JfQ0RDX1NVQkNMQVNTX0VUSEVSTkVULA0KIAkJCVVTQl9DRENfUFJPVE9fTk9ORSksDQog CS5kcml2ZXJfaW5mbyA9ICh1bnNpZ25lZCBsb25nKSAmY2RjX2luZm8sDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdXNiL2RtOTYwMS5jIGIvZHJpdmVycy9uZXQvdXNiL2RtOTYwMS5jDQppbmRl eCBmYmMwZTRkLi4xMzZlY2YzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvdXNiL2RtOTYwMS5j DQorKysgYi9kcml2ZXJzL25ldC91c2IvZG05NjAxLmMNCkBAIC0zODQsNyArMzg0LDcgQEAgc3Rh dGljIHZvaWQgZG05NjAxX3NldF9tdWx0aWNhc3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldCkNCiAJ CXJ4X2N0bCB8PSAweDAyOw0KIAl9IGVsc2UgaWYgKG5ldC0+ZmxhZ3MgJiBJRkZfQUxMTVVMVEkg fHwNCiAJCSAgIG5ldGRldl9tY19jb3VudChuZXQpID4gRE1fTUFYX01DQVNUKSB7DQotCQlyeF9j dGwgfD0gMHgwNDsNCisJCXJ4X2N0bCB8PSAweDA4Ow0KIAl9IGVsc2UgaWYgKCFuZXRkZXZfbWNf ZW1wdHkobmV0KSkgew0KIAkJc3RydWN0IG5ldGRldl9od19hZGRyICpoYTsNCiANCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAzX3BoeS5jIGIvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwM19waHkuYw0KaW5kZXggNzNiZTdmZi4uZjE0 NjgyNCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDNf cGh5LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDNfcGh5LmMN CkBAIC0xMDE2LDYgKzEwMTYsMTAgQEAgc3RhdGljIGJvb2wgYXI5MDAzX2h3X2FuaV9jb250cm9s KHN0cnVjdCBhdGhfaHcgKmFoLA0KIAkJICogaXNfb24gPT0gMCBtZWFucyBNUkMgQ0NLIGlzIE9G RiAobW9yZSBub2lzZSBpbW0pDQogCQkgKi8NCiAJCWJvb2wgaXNfb24gPSBwYXJhbSA/IDEgOiAw Ow0KKw0KKwkJaWYgKGFoLT5jYXBzLnJ4X2NoYWlubWFzayA9PSAxKQ0KKwkJCWJyZWFrOw0KKw0K IAkJUkVHX1JNV19GSUVMRChhaCwgQVJfUEhZX01SQ19DQ0tfQ1RSTCwNCiAJCQkgICAgICBBUl9Q SFlfTVJDX0NDS19FTkFCTEUsIGlzX29uKTsNCiAJCVJFR19STVdfRklFTEQoYWgsIEFSX1BIWV9N UkNfQ0NLX0NUUkwsDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlr L2F0aDlrLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXRoOWsuaA0KaW5kZXgg MWMyNjlmNS4uN2M3MGNmMiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGg5ay9hdGg5ay5oDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXRoOWsu aA0KQEAgLTc3LDEwICs3Nyw2IEBAIHN0cnVjdCBhdGhfY29uZmlnIHsNCiAJCSAgICAgICBzaXpl b2Yoc3RydWN0IGF0aF9idWZfc3RhdGUpKTsJCVwNCiAJfSB3aGlsZSAoMCkNCiANCi0jZGVmaW5l IEFUSF9SWEJVRl9SRVNFVChfYmYpIGRvIHsJCVwNCi0JCShfYmYpLT5iZl9zdGFsZSA9IGZhbHNl OwlcDQotCX0gd2hpbGUgKDApDQotDQogLyoqDQogICogZW51bSBidWZmZXJfdHlwZSAtIEJ1ZmZl ciB0eXBlIGZsYWdzDQogICoNCkBAIC0zMDgsNiArMzA0LDcgQEAgc3RydWN0IGF0aF9yeCB7DQog CXN0cnVjdCBhdGhfYnVmICpyeF9idWZwdHI7DQogCXN0cnVjdCBhdGhfcnhfZWRtYSByeF9lZG1h W0FUSDlLX1JYX1FVRVVFX01BWF07DQogDQorCXN0cnVjdCBhdGhfYnVmICpidWZfaG9sZDsNCiAJ c3RydWN0IHNrX2J1ZmYgKmZyYWc7DQogfTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoOWsvcmVjdi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlr L3JlY3YuYw0KaW5kZXggZDE3MWE3Mi4uODMyNmMxNCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGg5ay9yZWN2LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGg5ay9yZWN2LmMNCkBAIC03OCw4ICs3OCw2IEBAIHN0YXRpYyB2b2lkIGF0aF9yeF9idWZf bGluayhzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmKQ0KIAlzdHJ1Y3Qg YXRoX2Rlc2MgKmRzOw0KIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KIA0KLQlBVEhfUlhCVUZfUkVT RVQoYmYpOw0KLQ0KIAlkcyA9IGJmLT5iZl9kZXNjOw0KIAlkcy0+ZHNfbGluayA9IDA7IC8qIGxp bmsgdG8gbnVsbCAqLw0KIAlkcy0+ZHNfZGF0YSA9IGJmLT5iZl9idWZfYWRkcjsNCkBAIC0xMDYs NiArMTA0LDE0IEBAIHN0YXRpYyB2b2lkIGF0aF9yeF9idWZfbGluayhzdHJ1Y3QgYXRoX3NvZnRj ICpzYywgc3RydWN0IGF0aF9idWYgKmJmKQ0KIAlzYy0+cngucnhsaW5rID0gJmRzLT5kc19saW5r Ow0KIH0NCiANCitzdGF0aWMgdm9pZCBhdGhfcnhfYnVmX3JlbGluayhzdHJ1Y3QgYXRoX3NvZnRj ICpzYywgc3RydWN0IGF0aF9idWYgKmJmKQ0KK3sNCisJaWYgKHNjLT5yeC5idWZfaG9sZCkNCisJ CWF0aF9yeF9idWZfbGluayhzYywgc2MtPnJ4LmJ1Zl9ob2xkKTsNCisNCisJc2MtPnJ4LmJ1Zl9o b2xkID0gYmY7DQorfQ0KKw0KIHN0YXRpYyB2b2lkIGF0aF9zZXRkZWZhbnRlbm5hKHN0cnVjdCBh dGhfc29mdGMgKnNjLCB1MzIgYW50ZW5uYSkNCiB7DQogCS8qIFhYWCBibG9jayBiZWFjb24gaW50 ZXJydXB0cyAqLw0KQEAgLTE1Myw3ICsxNTksNiBAQCBzdGF0aWMgYm9vbCBhdGhfcnhfZWRtYV9i dWZfbGluayhzdHJ1Y3QgYXRoX3NvZnRjICpzYywNCiANCiAJc2tiID0gYmYtPmJmX21wZHU7DQog DQotCUFUSF9SWEJVRl9SRVNFVChiZik7DQogCW1lbXNldChza2ItPmRhdGEsIDAsIGFoLT5jYXBz LnJ4X3N0YXR1c19sZW4pOw0KIAlkbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShzYy0+ZGV2LCBi Zi0+YmZfYnVmX2FkZHIsDQogCQkJCWFoLT5jYXBzLnJ4X3N0YXR1c19sZW4sIERNQV9UT19ERVZJ Q0UpOw0KQEAgLTQ5Miw2ICs0OTcsNyBAQCBpbnQgYXRoX3N0YXJ0cmVjdihzdHJ1Y3QgYXRoX3Nv ZnRjICpzYykNCiAJaWYgKGxpc3RfZW1wdHkoJnNjLT5yeC5yeGJ1ZikpDQogCQlnb3RvIHN0YXJ0 X3JlY3Y7DQogDQorCXNjLT5yeC5idWZfaG9sZCA9IE5VTEw7DQogCXNjLT5yeC5yeGxpbmsgPSBO VUxMOw0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoYmYsIHRiZiwgJnNjLT5yeC5yeGJ1Ziwg bGlzdCkgew0KIAkJYXRoX3J4X2J1Zl9saW5rKHNjLCBiZik7DQpAQCAtNzQyLDYgKzc0OCw5IEBA IHN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiAqYXRoX2dldF9uZXh0X3J4X2J1ZihzdHJ1Y3QgYXRoX3Nv ZnRjICpzYywNCiAJfQ0KIA0KIAliZiA9IGxpc3RfZmlyc3RfZW50cnkoJnNjLT5yeC5yeGJ1Ziwg c3RydWN0IGF0aF9idWYsIGxpc3QpOw0KKwlpZiAoYmYgPT0gc2MtPnJ4LmJ1Zl9ob2xkKQ0KKwkJ cmV0dXJuIE5VTEw7DQorDQogCWRzID0gYmYtPmJmX2Rlc2M7DQogDQogCS8qDQpAQCAtMTk3NCw3 ICsxOTgzLDcgQEAgcmVxdWV1ZToNCiAJCWlmIChlZG1hKSB7DQogCQkJYXRoX3J4X2VkbWFfYnVm X2xpbmsoc2MsIHF0eXBlKTsNCiAJCX0gZWxzZSB7DQotCQkJYXRoX3J4X2J1Zl9saW5rKHNjLCBi Zik7DQorCQkJYXRoX3J4X2J1Zl9yZWxpbmsoc2MsIGJmKTsNCiAJCQlhdGg5a19od19yeGVuYShh aCk7DQogCQl9DQogCX0gd2hpbGUgKDEpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGg5ay94bWl0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1p dC5jDQppbmRleCAxOGRhMTAwLi4xMjZlZDMxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDlrL3htaXQuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDlrL3htaXQuYw0KQEAgLTI0MjMsNiArMjQyMyw3IEBAIHZvaWQgYXRoX3R4X25vZGVfaW5pdChz dHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9ub2RlICphbikNCiAJZm9yIChhY25vID0g MCwgYWMgPSAmYW4tPmFjW2Fjbm9dOw0KIAkgICAgIGFjbm8gPCBXTUVfTlVNX0FDOyBhY25vKyss IGFjKyspIHsNCiAJCWFjLT5zY2hlZCAgICA9IGZhbHNlOw0KKwkJYWMtPmNsZWFyX3BzX2ZpbHRl ciA9IHRydWU7DQogCQlhYy0+dHhxID0gc2MtPnR4LnR4cV9tYXBbYWNub107DQogCQlJTklUX0xJ U1RfSEVBRCgmYWMtPnRpZF9xKTsNCiAJfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL3A1NC9wNTR1c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3A1NC9wNTR1c2IuYw0KaW5k ZXggNTY0MjE4Yy4uMDc4NDQ5MyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3A1 NC9wNTR1c2IuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcDU0L3A1NHVzYi5jDQpAQCAt ODMsNiArODMsNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgcDU0dV90YWJsZVtdID0g ew0KIAl7VVNCX0RFVklDRSgweDA2YTksIDB4MDAwZSl9LAkvKiBXZXN0ZWxsIDgwMi4xMWcgVVNC IChBOTAtMjExV0ctMDEpICovDQogCXtVU0JfREVWSUNFKDB4MDZiOSwgMHgwMTIxKX0sCS8qIFRo b21zb24gU3BlZWRUb3VjaCAxMjFnICovDQogCXtVU0JfREVWSUNFKDB4MDcwNywgMHhlZTEzKX0s ICAgLyogU01DIDI4NjJXLUcgdmVyc2lvbiAyICovDQorCXtVU0JfREVWSUNFKDB4MDdhYSwgMHgw MDIwKX0sCS8qIENvcmVnYSBXTFVTQjJHVFNUIFVTQiAqLw0KIAl7VVNCX0RFVklDRSgweDA4MDMs IDB4NDMxMCl9LAkvKiBab29tIDQ0MTBhICovDQogCXtVU0JfREVWSUNFKDB4MDgzYSwgMHg0NTIx KX0sICAgLyogU2llbWVucyBHaWdhc2V0IFVTQiBBZGFwdGVyIDU0IHZlcnNpb24gMiAqLw0KIAl7 VVNCX0RFVklDRSgweDA4M2EsIDB4NDUzMSl9LAkvKiBULUNvbSBTaW51cyAxNTQgZGF0YSBJSSAq Lw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI4MDBsaWIuYyBi L2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI4MDBsaWIuYw0KaW5kZXggNjdjYmU1YS4u OGZiOGM5ZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI4MDBs aWIuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjgwMGxpYi5jDQpAQCAt MjA2Nyw2ICsyMDY3LDEzIEBAIHN0YXRpYyBpbnQgcnQyODAwX2dldF9nYWluX2NhbGlicmF0aW9u X2RlbHRhKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpDQogCWludCBpOw0KIA0KIAkvKg0K KwkgKiBGaXJzdCBjaGVjayBpZiB0ZW1wZXJhdHVyZSBjb21wZW5zYXRpb24gaXMgc3VwcG9ydGVk Lg0KKwkgKi8NCisJcnQyeDAwX2VlcHJvbV9yZWFkKHJ0MngwMGRldiwgRUVQUk9NX05JQ19DT05G MSwgJmVlcHJvbSk7DQorCWlmICghcnQyeDAwX2dldF9maWVsZDE2KGVlcHJvbSwgRUVQUk9NX05J Q19DT05GMV9FWFRFUk5BTF9UWF9BTEMpKQ0KKwkJcmV0dXJuIDA7DQorDQorCS8qDQogCSAqIFJl YWQgVFNTSSBib3VuZGFyaWVzIGZvciB0ZW1wZXJhdHVyZSBjb21wZW5zYXRpb24gZnJvbQ0KIAkg KiB0aGUgRUVQUk9NLg0KIAkgKg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0 bHdpZmkvd2lmaS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS93aWZpLmgNCmluZGV4 IGRlYjg3ZTkuLjgyYmFhYTIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3 aWZpL3dpZmkuaA0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS93aWZpLmgNCkBA IC0xNjMwLDcgKzE2MzAsNyBAQCBzdHJ1Y3QgcnRsX3ByaXYgew0KIAkgICB0aGF0IGl0IHBvaW50 cyB0byB0aGUgZGF0YSBhbGxvY2F0ZWQNCiAJICAgYmV5b25kICB0aGlzIHN0cnVjdHVyZSBsaWtl Og0KIAkgICBydGxfcGNpX3ByaXYgb3IgcnRsX3VzYl9wcml2ICovDQotCXU4IHByaXZbMF07DQor CXU4IHByaXZbMF0gX19hbGlnbmVkKHNpemVvZih2b2lkICopKTsNCiB9Ow0KIA0KICNkZWZpbmUg cnRsX3ByaXYoaHcpCQkoKChzdHJ1Y3QgcnRsX3ByaXYgKikoaHcpLT5wcml2KSkNCmRpZmYgLS1n aXQgYS9kcml2ZXJzL29mL2Jhc2UuYyBiL2RyaXZlcnMvb2YvYmFzZS5jDQppbmRleCA5YjY1ODhl Li4zNzYzOWE2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9vZi9iYXNlLmMNCisrKyBiL2RyaXZlcnMv b2YvYmFzZS5jDQpAQCAtMTE4OSw2ICsxMTg5LDcgQEAgdm9pZCBvZl9hbGlhc19zY2FuKHZvaWQg KiAoKmR0X2FsbG9jKSh1NjQgc2l6ZSwgdTY0IGFsaWduKSkNCiAJCWFwID0gZHRfYWxsb2Moc2l6 ZW9mKCphcCkgKyBsZW4gKyAxLCA0KTsNCiAJCWlmICghYXApDQogCQkJY29udGludWU7DQorCQlt ZW1zZXQoYXAsIDAsIHNpemVvZigqYXApICsgbGVuICsgMSk7DQogCQlhcC0+YWxpYXMgPSBzdGFy dDsNCiAJCW9mX2FsaWFzX2FkZChhcCwgbnAsIGlkLCBzdGFydCwgbGVuKTsNCiAJfQ0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvc2NzaS9lc3Bfc2NzaS5jIGIvZHJpdmVycy9zY3NpL2VzcF9zY3NpLmMN CmluZGV4IDM5NGVkOWUuLjRhYTMwZDggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Njc2kvZXNwX3Nj c2kuYw0KKysrIGIvZHJpdmVycy9zY3NpL2VzcF9zY3NpLmMNCkBAIC01MzAsNyArNTMwLDcgQEAg c3RhdGljIGludCBlc3BfbmVlZF90b19uZWdvX3N5bmMoc3RydWN0IGVzcF90YXJnZXRfZGF0YSAq dHApDQogc3RhdGljIGludCBlc3BfYWxsb2NfbHVuX3RhZyhzdHJ1Y3QgZXNwX2NtZF9lbnRyeSAq ZW50LA0KIAkJCSAgICAgc3RydWN0IGVzcF9sdW5fZGF0YSAqbHApDQogew0KLQlpZiAoIWVudC0+ dGFnWzBdKSB7DQorCWlmICghZW50LT5vcmlnX3RhZ1swXSkgew0KIAkJLyogTm9uLXRhZ2dlZCwg c2xvdCBhbHJlYWR5IHRha2VuPyAgKi8NCiAJCWlmIChscC0+bm9uX3RhZ2dlZF9jbWQpDQogCQkJ cmV0dXJuIC1FQlVTWTsNCkBAIC01NjQsOSArNTY0LDkgQEAgc3RhdGljIGludCBlc3BfYWxsb2Nf bHVuX3RhZyhzdHJ1Y3QgZXNwX2NtZF9lbnRyeSAqZW50LA0KIAkJCXJldHVybiAtRUJVU1k7DQog CX0NCiANCi0JQlVHX09OKGxwLT50YWdnZWRfY21kc1tlbnQtPnRhZ1sxXV0pOw0KKwlCVUdfT04o bHAtPnRhZ2dlZF9jbWRzW2VudC0+b3JpZ190YWdbMV1dKTsNCiANCi0JbHAtPnRhZ2dlZF9jbWRz W2VudC0+dGFnWzFdXSA9IGVudDsNCisJbHAtPnRhZ2dlZF9jbWRzW2VudC0+b3JpZ190YWdbMV1d ID0gZW50Ow0KIAlscC0+bnVtX3RhZ2dlZCsrOw0KIA0KIAlyZXR1cm4gMDsNCkBAIC01NzUsOSAr NTc1LDkgQEAgc3RhdGljIGludCBlc3BfYWxsb2NfbHVuX3RhZyhzdHJ1Y3QgZXNwX2NtZF9lbnRy eSAqZW50LA0KIHN0YXRpYyB2b2lkIGVzcF9mcmVlX2x1bl90YWcoc3RydWN0IGVzcF9jbWRfZW50 cnkgKmVudCwNCiAJCQkgICAgIHN0cnVjdCBlc3BfbHVuX2RhdGEgKmxwKQ0KIHsNCi0JaWYgKGVu dC0+dGFnWzBdKSB7DQotCQlCVUdfT04obHAtPnRhZ2dlZF9jbWRzW2VudC0+dGFnWzFdXSAhPSBl bnQpOw0KLQkJbHAtPnRhZ2dlZF9jbWRzW2VudC0+dGFnWzFdXSA9IE5VTEw7DQorCWlmIChlbnQt Pm9yaWdfdGFnWzBdKSB7DQorCQlCVUdfT04obHAtPnRhZ2dlZF9jbWRzW2VudC0+b3JpZ190YWdb MV1dICE9IGVudCk7DQorCQlscC0+dGFnZ2VkX2NtZHNbZW50LT5vcmlnX3RhZ1sxXV0gPSBOVUxM Ow0KIAkJbHAtPm51bV90YWdnZWQtLTsNCiAJfSBlbHNlIHsNCiAJCUJVR19PTihscC0+bm9uX3Rh Z2dlZF9jbWQgIT0gZW50KTsNCkBAIC02NjcsNiArNjY3LDggQEAgc3RhdGljIHN0cnVjdCBlc3Bf Y21kX2VudHJ5ICpmaW5kX2FuZF9wcmVwX2lzc3VhYmxlX2NvbW1hbmQoc3RydWN0IGVzcCAqZXNw KQ0KIAkJCWVudC0+dGFnWzBdID0gMDsNCiAJCQllbnQtPnRhZ1sxXSA9IDA7DQogCQl9DQorCQll bnQtPm9yaWdfdGFnWzBdID0gZW50LT50YWdbMF07DQorCQllbnQtPm9yaWdfdGFnWzFdID0gZW50 LT50YWdbMV07DQogDQogCQlpZiAoZXNwX2FsbG9jX2x1bl90YWcoZW50LCBscCkgPCAwKQ0KIAkJ CWNvbnRpbnVlOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9lc3Bfc2NzaS5oIGIvZHJpdmVy cy9zY3NpL2VzcF9zY3NpLmgNCmluZGV4IDI4ZTIyYWMuLmNkNjg4MDUgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL3Njc2kvZXNwX3Njc2kuaA0KKysrIGIvZHJpdmVycy9zY3NpL2VzcF9zY3NpLmgNCkBA IC0yNzEsNiArMjcxLDcgQEAgc3RydWN0IGVzcF9jbWRfZW50cnkgew0KICNkZWZpbmUgRVNQX0NN RF9GTEFHX0FVVE9TRU5TRQkweDA0IC8qIERvaW5nIGF1dG9tYXRpYyBSRVFVRVNUX1NFTlNFICov DQogDQogCXU4CQkJdGFnWzJdOw0KKwl1OAkJCW9yaWdfdGFnWzJdOw0KIA0KIAl1OAkJCXN0YXR1 czsNCiAJdTgJCQltZXNzYWdlOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zY3NpX3RyYW5z cG9ydF9pc2NzaS5jIGIvZHJpdmVycy9zY3NpL3Njc2lfdHJhbnNwb3J0X2lzY3NpLmMNCmluZGV4 IDk2MDI5ZTYuLmM4NzQ0NTggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Njc2kvc2NzaV90cmFuc3Bv cnRfaXNjc2kuYw0KKysrIGIvZHJpdmVycy9zY3NpL3Njc2lfdHJhbnNwb3J0X2lzY3NpLmMNCkBA IC0yMTA1LDcgKzIxMDUsNyBAQCBpc2NzaV9pZl9yeChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIAkJ CQlicmVhazsNCiAJCQllcnIgPSBpc2NzaV9pZl9zZW5kX3JlcGx5KGdyb3VwLCBubGgtPm5sbXNn X3NlcSwNCiAJCQkJbmxoLT5ubG1zZ190eXBlLCAwLCAwLCBldiwgc2l6ZW9mKCpldikpOw0KLQkJ fSB3aGlsZSAoZXJyIDwgMCAmJiBlcnIgIT0gLUVDT05OUkVGVVNFRCk7DQorCQl9IHdoaWxlIChl cnIgPCAwICYmIGVyciAhPSAtRUNPTk5SRUZVU0VEICYmIGVyciAhPSAtRVNSQ0gpOw0KIAkJc2ti X3B1bGwoc2tiLCBybGVuKTsNCiAJfQ0KIAltdXRleF91bmxvY2soJnJ4X3F1ZXVlX211dGV4KTsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2QuYyBiL2RyaXZlcnMvc2NzaS9zZC5jDQppbmRl eCAxNzYwM2RhLi5mNmQyYjYyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zY3NpL3NkLmMNCisrKyBi L2RyaXZlcnMvc2NzaS9zZC5jDQpAQCAtMjEzNiwxNCArMjEzNiw5IEBAIHNkX3JlYWRfY2FjaGVf dHlwZShzdHJ1Y3Qgc2NzaV9kaXNrICpzZGtwLCB1bnNpZ25lZCBjaGFyICpidWZmZXIpDQogCQkJ fQ0KIAkJfQ0KIA0KLQkJaWYgKG1vZGVwYWdlID09IDB4M0YpIHsNCi0JCQlzZF9wcmludGsoS0VS Tl9FUlIsIHNka3AsICJObyBDYWNoaW5nIG1vZGUgcGFnZSAiDQotCQkJCSAgInByZXNlbnRcbiIp Ow0KLQkJCWdvdG8gZGVmYXVsdHM7DQotCQl9IGVsc2UgaWYgKChidWZmZXJbb2Zmc2V0XSAmIDB4 M2YpICE9IG1vZGVwYWdlKSB7DQotCQkJc2RfcHJpbnRrKEtFUk5fRVJSLCBzZGtwLCAiR290IHdy b25nIHBhZ2VcbiIpOw0KLQkJCWdvdG8gZGVmYXVsdHM7DQotCQl9DQorCQlzZF9wcmludGsoS0VS Tl9FUlIsIHNka3AsICJObyBDYWNoaW5nIG1vZGUgcGFnZSBmb3VuZFxuIik7DQorCQlnb3RvIGRl ZmF1bHRzOw0KKw0KIAlQYWdlX2ZvdW5kOg0KIAkJaWYgKG1vZGVwYWdlID09IDgpIHsNCiAJCQlz ZGtwLT5XQ0UgPSAoKGJ1ZmZlcltvZmZzZXQgKyAyXSAmIDB4MDQpICE9IDApOw0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvc3RhZ2luZy9jb21lZGkvZHJpdmVycy9kdDI4MnguYyBiL2RyaXZlcnMvc3Rh Z2luZy9jb21lZGkvZHJpdmVycy9kdDI4MnguYw0KaW5kZXggOTVlYmMyNi4uZTNhZGIzOCAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy9jb21lZGkvZHJpdmVycy9kdDI4MnguYw0KKysrIGIv ZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9kcml2ZXJzL2R0MjgyeC5jDQpAQCAtNDA3LDggKzQwNyw5 IEBAIHN0cnVjdCBkdDI4MnhfcHJpdmF0ZSB7DQogCQkJfQkJCQkJXA0KIAkJCXVkZWxheSg1KTsJ CQkJXA0KIAkJfQkJCQkJCVwNCi0JCWlmIChfaSkJCQkJCQlcDQorCQlpZiAoX2kpIHsJCQkJCVwN CiAJCQliCQkJCQlcDQorCQl9CQkJCQkJXA0KIAl9IHdoaWxlICgwKQ0KIA0KIHN0YXRpYyBpbnQg ZHQyODJ4X2F0dGFjaChzdHJ1Y3QgY29tZWRpX2RldmljZSAqZGV2LA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3RhZ2luZy9jb21lZGkvZHJpdmVycy9uaV82NXh4LmMgYi9kcml2ZXJzL3N0YWdpbmcv Y29tZWRpL2RyaXZlcnMvbmlfNjV4eC5jDQppbmRleCA0MDNmYzA5Li44YjU2NGFkIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9kcml2ZXJzL25pXzY1eHguYw0KKysrIGIvZHJp dmVycy9zdGFnaW5nL2NvbWVkaS9kcml2ZXJzL25pXzY1eHguYw0KQEAgLTQxMSwyOSArNDExLDI1 IEBAIHN0YXRpYyBpbnQgbmlfNjV4eF9kaW9faW5zbl9iaXRzKHN0cnVjdCBjb21lZGlfZGV2aWNl ICpkZXYsDQogCQkJCSBzdHJ1Y3QgY29tZWRpX3N1YmRldmljZSAqcywNCiAJCQkJIHN0cnVjdCBj b21lZGlfaW5zbiAqaW5zbiwgdW5zaWduZWQgaW50ICpkYXRhKQ0KIHsNCi0JdW5zaWduZWQgYmFz ZV9iaXRmaWVsZF9jaGFubmVsOw0KLQljb25zdCB1bnNpZ25lZCBtYXhfcG9ydHNfcGVyX2JpdGZp ZWxkID0gNTsNCisJaW50IGJhc2VfYml0ZmllbGRfY2hhbm5lbDsNCiAJdW5zaWduZWQgcmVhZF9i aXRzID0gMDsNCi0JdW5zaWduZWQgajsNCisJaW50IGxhc3RfcG9ydF9vZmZzZXQgPSBuaV82NXh4 X3BvcnRfYnlfY2hhbm5lbChzLT5uX2NoYW4gLSAxKTsNCisJaW50IHBvcnRfb2Zmc2V0Ow0KKw0K IAlpZiAoaW5zbi0+biAhPSAyKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogCWJhc2VfYml0ZmllbGRf Y2hhbm5lbCA9IENSX0NIQU4oaW5zbi0+Y2hhbnNwZWMpOw0KLQlmb3IgKGogPSAwOyBqIDwgbWF4 X3BvcnRzX3Blcl9iaXRmaWVsZDsgKytqKSB7DQotCQljb25zdCB1bnNpZ25lZCBwb3J0X29mZnNl dCA9DQotCQkJbmlfNjV4eF9wb3J0X2J5X2NoYW5uZWwoYmFzZV9iaXRmaWVsZF9jaGFubmVsKSAr IGo7DQotCQljb25zdCB1bnNpZ25lZCBwb3J0ID0NCi0JCQlzcHJpdmF0ZShzKS0+YmFzZV9wb3J0 ICsgcG9ydF9vZmZzZXQ7DQotCQl1bnNpZ25lZCBiYXNlX3BvcnRfY2hhbm5lbDsNCisJZm9yIChw b3J0X29mZnNldCA9IG5pXzY1eHhfcG9ydF9ieV9jaGFubmVsKGJhc2VfYml0ZmllbGRfY2hhbm5l bCk7DQorCSAgICAgcG9ydF9vZmZzZXQgPD0gbGFzdF9wb3J0X29mZnNldDsgcG9ydF9vZmZzZXQr Kykgew0KKwkJdW5zaWduZWQgcG9ydCA9IHNwcml2YXRlKHMpLT5iYXNlX3BvcnQgKyBwb3J0X29m ZnNldDsNCisJCWludCBiYXNlX3BvcnRfY2hhbm5lbCA9IHBvcnRfb2Zmc2V0ICogbmlfNjV4eF9j aGFubmVsc19wZXJfcG9ydDsNCiAJCXVuc2lnbmVkIHBvcnRfbWFzaywgcG9ydF9kYXRhLCBwb3J0 X3JlYWRfYml0czsNCi0JCWludCBiaXRzaGlmdDsNCi0JCWlmIChwb3J0ID49IG5pXzY1eHhfdG90 YWxfbnVtX3BvcnRzKGJvYXJkKGRldikpKQ0KKwkJaW50IGJpdHNoaWZ0ID0gYmFzZV9wb3J0X2No YW5uZWwgLSBiYXNlX2JpdGZpZWxkX2NoYW5uZWw7DQorDQorCQlpZiAoYml0c2hpZnQgPj0gMzIp DQogCQkJYnJlYWs7DQotCQliYXNlX3BvcnRfY2hhbm5lbCA9IHBvcnRfb2Zmc2V0ICogbmlfNjV4 eF9jaGFubmVsc19wZXJfcG9ydDsNCiAJCXBvcnRfbWFzayA9IGRhdGFbMF07DQogCQlwb3J0X2Rh dGEgPSBkYXRhWzFdOw0KLQkJYml0c2hpZnQgPSBiYXNlX3BvcnRfY2hhbm5lbCAtIGJhc2VfYml0 ZmllbGRfY2hhbm5lbDsNCi0JCWlmIChiaXRzaGlmdCA+PSAzMiB8fCBiaXRzaGlmdCA8PSAtMzIp DQotCQkJYnJlYWs7DQogCQlpZiAoYml0c2hpZnQgPiAwKSB7DQogCQkJcG9ydF9tYXNrID4+PSBi aXRzaGlmdDsNCiAJCQlwb3J0X2RhdGEgPj49IGJpdHNoaWZ0Ow0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3RhZ2luZy92dDY2NTYvbWFpbl91c2IuYyBiL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYvbWFp bl91c2IuYw0KaW5kZXggNzU0ZDU0ZS4uZjY4MDc2NiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3Rh Z2luZy92dDY2NTYvbWFpbl91c2IuYw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9tYWlu X3VzYi5jDQpAQCAtMTIyMSw2ICsxMjIxLDggQEAgZGV2aWNlX3JlbGVhc2VfV1BBREVWKHBEZXZp Y2UpOw0KICAgICBtZW1zZXQocE1nbXQtPmFieUN1cnJCU1NJRCwgMCwgNik7DQogICAgIHBNZ210 LT5lQ3VyclN0YXRlID0gV01BQ19TVEFURV9JRExFOw0KIA0KKwlwRGV2aWNlLT5mbGFncyAmPSB+ REVWSUNFX0ZMQUdTX09QRU5FRDsNCisNCiAgICAgZGV2aWNlX2ZyZWVfdHhfYnVmcyhwRGV2aWNl KTsNCiAgICAgZGV2aWNlX2ZyZWVfcnhfYnVmcyhwRGV2aWNlKTsNCiAgICAgZGV2aWNlX2ZyZWVf aW50X2J1ZnMocERldmljZSk7DQpAQCAtMTIzMiw3ICsxMjM0LDYgQEAgZGV2aWNlX3JlbGVhc2Vf V1BBREVWKHBEZXZpY2UpOw0KICAgICB1c2JfZnJlZV91cmIocERldmljZS0+cEludGVycnVwdFVS Qik7DQogDQogICAgIEJTU3ZDbGVhck5vZGVEQlRhYmxlKHBEZXZpY2UsIDApOw0KLSAgICBwRGV2 aWNlLT5mbGFncyAmPSh+REVWSUNFX0ZMQUdTX09QRU5FRCk7DQogDQogICAgIERCR19QUlQoTVNH X0xFVkVMX0RFQlVHLCBLRVJOX0lORk8gImRldmljZV9jbG9zZTIgXG4iKTsNCiANCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3N0YWdpbmcvenJhbS96cmFtX2Rydi5jIGIvZHJpdmVycy9zdGFnaW5nL3py YW0venJhbV9kcnYuYw0KaW5kZXggOTI2ZDQ4My4uZDE5N2IzZSAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvc3RhZ2luZy96cmFtL3pyYW1fZHJ2LmMNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy96cmFtL3py YW1fZHJ2LmMNCkBAIC03MDksOSArNzA5LDcgQEAgc3RhdGljIHZvaWQgenJhbV9zbG90X2ZyZWVf bm90aWZ5KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsDQogCXN0cnVjdCB6cmFtICp6cmFtOw0K IA0KIAl6cmFtID0gYmRldi0+YmRfZGlzay0+cHJpdmF0ZV9kYXRhOw0KLQlkb3duX3dyaXRlKCZ6 cmFtLT5sb2NrKTsNCiAJenJhbV9mcmVlX3BhZ2UoenJhbSwgaW5kZXgpOw0KLQl1cF93cml0ZSgm enJhbS0+bG9jayk7DQogCXpyYW1fc3RhdDY0X2luYyh6cmFtLCAmenJhbS0+c3RhdHMubm90aWZ5 X2ZyZWUpOw0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvenJhbS96cmFtX2Ry di5oIGIvZHJpdmVycy9zdGFnaW5nL3pyYW0venJhbV9kcnYuaA0KaW5kZXggODdmMmZlYy4uZTVj ZDI0NiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy96cmFtL3pyYW1fZHJ2LmgNCisrKyBi L2RyaXZlcnMvc3RhZ2luZy96cmFtL3pyYW1fZHJ2LmgNCkBAIC0xMDcsOSArMTA3LDggQEAgc3Ry dWN0IHpyYW0gew0KIAl2b2lkICpjb21wcmVzc19idWZmZXI7DQogCXN0cnVjdCB0YWJsZSAqdGFi bGU7DQogCXNwaW5sb2NrX3Qgc3RhdDY0X2xvY2s7CS8qIHByb3RlY3QgNjQtYml0IHN0YXRzICov DQotCXN0cnVjdCByd19zZW1hcGhvcmUgbG9jazsgLyogcHJvdGVjdCBjb21wcmVzc2lvbiBidWZm ZXJzLCB0YWJsZSwNCi0JCQkJICAgKiAzMmJpdCBzdGF0IGNvdW50ZXJzIGFnYWluc3QgY29uY3Vy cmVudA0KLQkJCQkgICAqIG5vdGlmaWNhdGlvbnMsIHJlYWRzIGFuZCB3cml0ZXMgKi8NCisJc3Ry dWN0IHJ3X3NlbWFwaG9yZSBsb2NrOyAvKiBwcm90ZWN0IGNvbXByZXNzaW9uIGJ1ZmZlcnMgYW5k IHRhYmxlDQorCQkJCSAgICogYWdhaW5zdCBjb25jdXJyZW50IHJlYWQgYW5kIHdyaXRlcyAqLw0K IAlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcXVldWU7DQogCXN0cnVjdCBnZW5kaXNrICpkaXNrOw0K IAlpbnQgaW5pdF9kb25lOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC9wY2hfdWFy dC5jIGIvZHJpdmVycy90dHkvc2VyaWFsL3BjaF91YXJ0LmMNCmluZGV4IGMwYjQ4NzIuLmY1NDQw YTcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvcGNoX3VhcnQuYw0KKysrIGIvZHJp dmVycy90dHkvc2VyaWFsL3BjaF91YXJ0LmMNCkBAIC01NTIsMTEgKzU1MiwxMiBAQCBzdGF0aWMg aW50IGRtYV9wdXNoX3J4KHN0cnVjdCBlZzIwdF9wb3J0ICpwcml2LCBpbnQgc2l6ZSkNCiAJCWRl dl93YXJuKHBvcnQtPmRldiwgIlJ4IG92ZXJydW46IGRyb3BwaW5nICV1IGJ5dGVzXG4iLA0KIAkJ CSBzaXplIC0gcm9vbSk7DQogCWlmICghcm9vbSkNCi0JCXJldHVybiByb29tOw0KKwkJZ290byBv dXQ7DQogDQogCXR0eV9pbnNlcnRfZmxpcF9zdHJpbmcodHR5LCBzZ192aXJ0KCZwcml2LT5zZ19y eCksIHNpemUpOw0KIA0KIAlwb3J0LT5pY291bnQucnggKz0gcm9vbTsNCitvdXQ6DQogCXR0eV9r cmVmX3B1dCh0dHkpOw0KIA0KIAlyZXR1cm4gcm9vbTsNCkBAIC05NzAsNiArOTcxLDggQEAgc3Rh dGljIHZvaWQgcGNoX3VhcnRfZXJyX2lyKHN0cnVjdCBlZzIwdF9wb3J0ICpwcml2LCB1bnNpZ25l ZCBpbnQgbHNyKQ0KIAlpZiAodHR5ID09IE5VTEwpIHsNCiAJCWZvciAoaSA9IDA7IGVycm9yX21z Z1tpXSAhPSBOVUxMOyBpKyspDQogCQkJZGV2X2VycigmcHJpdi0+cGRldi0+ZGV2LCBlcnJvcl9t c2dbaV0pOw0KKwl9IGVsc2Ugew0KKwkJdHR5X2tyZWZfcHV0KHR0eSk7DQogCX0NCiB9DQogDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2xhc3MvY2RjLXdkbS5jIGIvZHJpdmVycy91c2IvY2xh c3MvY2RjLXdkbS5jDQppbmRleCBmZThjMDRiLi4wNmRmYjRmIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy91c2IvY2xhc3MvY2RjLXdkbS5jDQorKysgYi9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtd2RtLmMN CkBAIC0xODcsNiArMTg3LDcgQEAgc2tpcF9lcnJvcjoNCiBzdGF0aWMgdm9pZCB3ZG1faW50X2Nh bGxiYWNrKHN0cnVjdCB1cmIgKnVyYikNCiB7DQogCWludCBydiA9IDA7DQorCWludCByZXNwb25k aW5nOw0KIAlpbnQgc3RhdHVzID0gdXJiLT5zdGF0dXM7DQogCXN0cnVjdCB3ZG1fZGV2aWNlICpk ZXNjOw0KIAlzdHJ1Y3QgdXNiX2N0cmxyZXF1ZXN0ICpyZXE7DQpAQCAtMjYwLDggKzI2MSw4IEBA IHN0YXRpYyB2b2lkIHdkbV9pbnRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiKQ0KIAlkZXNjLT5y ZXNwb25zZS0+dHJhbnNmZXJfZmxhZ3MgfD0gVVJCX05PX1RSQU5TRkVSX0RNQV9NQVA7DQogCXNw aW5fbG9jaygmZGVzYy0+aXVzcGluKTsNCiAJY2xlYXJfYml0KFdETV9SRUFELCAmZGVzYy0+Zmxh Z3MpOw0KLQlzZXRfYml0KFdETV9SRVNQT05ESU5HLCAmZGVzYy0+ZmxhZ3MpOw0KLQlpZiAoIXRl c3RfYml0KFdETV9ESVNDT05ORUNUSU5HLCAmZGVzYy0+ZmxhZ3MpDQorCXJlc3BvbmRpbmcgPSB0 ZXN0X2FuZF9zZXRfYml0KFdETV9SRVNQT05ESU5HLCAmZGVzYy0+ZmxhZ3MpOw0KKwlpZiAoIXJl c3BvbmRpbmcgJiYgIXRlc3RfYml0KFdETV9ESVNDT05ORUNUSU5HLCAmZGVzYy0+ZmxhZ3MpDQog CQkmJiAhdGVzdF9iaXQoV0RNX1NVU1BFTkRJTkcsICZkZXNjLT5mbGFncykpIHsNCiAJCXJ2ID0g dXNiX3N1Ym1pdF91cmIoZGVzYy0+cmVzcG9uc2UsIEdGUF9BVE9NSUMpOw0KIAkJZGV2X2RiZygm ZGVzYy0+aW50Zi0+ZGV2LCAiJXM6IHVzYl9zdWJtaXRfdXJiICVkIiwNCkBAIC02NTgsMTYgKzY1 OSwyMCBAQCBzdGF0aWMgdm9pZCB3ZG1fcnh3b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykN CiB7DQogCXN0cnVjdCB3ZG1fZGV2aWNlICpkZXNjID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVj dCB3ZG1fZGV2aWNlLCByeHdvcmspOw0KIAl1bnNpZ25lZCBsb25nIGZsYWdzOw0KLQlpbnQgcnY7 DQorCWludCBydiA9IDA7DQorCWludCByZXNwb25kaW5nOw0KIA0KIAlzcGluX2xvY2tfaXJxc2F2 ZSgmZGVzYy0+aXVzcGluLCBmbGFncyk7DQogCWlmICh0ZXN0X2JpdChXRE1fRElTQ09OTkVDVElO RywgJmRlc2MtPmZsYWdzKSkgew0KIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzYy0+aXVz cGluLCBmbGFncyk7DQogCX0gZWxzZSB7DQorCQlyZXNwb25kaW5nID0gdGVzdF9hbmRfc2V0X2Jp dChXRE1fUkVTUE9ORElORywgJmRlc2MtPmZsYWdzKTsNCiAJCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmRlc2MtPml1c3BpbiwgZmxhZ3MpOw0KLQkJcnYgPSB1c2Jfc3VibWl0X3VyYihkZXNjLT5y ZXNwb25zZSwgR0ZQX0tFUk5FTCk7DQorCQlpZiAoIXJlc3BvbmRpbmcpDQorCQkJcnYgPSB1c2Jf c3VibWl0X3VyYihkZXNjLT5yZXNwb25zZSwgR0ZQX0tFUk5FTCk7DQogCQlpZiAocnYgPCAwICYm IHJ2ICE9IC1FUEVSTSkgew0KIAkJCXNwaW5fbG9ja19pcnFzYXZlKCZkZXNjLT5pdXNwaW4sIGZs YWdzKTsNCisJCQljbGVhcl9iaXQoV0RNX1JFU1BPTkRJTkcsICZkZXNjLT5mbGFncyk7DQogCQkJ aWYgKCF0ZXN0X2JpdChXRE1fRElTQ09OTkVDVElORywgJmRlc2MtPmZsYWdzKSkNCiAJCQkJc2No ZWR1bGVfd29yaygmZGVzYy0+cnh3b3JrKTsNCiAJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZk ZXNjLT5pdXNwaW4sIGZsYWdzKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL2NvbmZp Zy5jIGIvZHJpdmVycy91c2IvY29yZS9jb25maWcuYw0KaW5kZXggZjRiZGQwYy4uNzg2MDlkMyAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvY29uZmlnLmMNCisrKyBiL2RyaXZlcnMvdXNi L2NvcmUvY29uZmlnLmMNCkBAIC00MjQsNyArNDI0LDggQEAgc3RhdGljIGludCB1c2JfcGFyc2Vf Y29uZmlndXJhdGlvbihzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgY2ZnaWR4LA0KIA0KIAlt ZW1jcHkoJmNvbmZpZy0+ZGVzYywgYnVmZmVyLCBVU0JfRFRfQ09ORklHX1NJWkUpOw0KIAlpZiAo Y29uZmlnLT5kZXNjLmJEZXNjcmlwdG9yVHlwZSAhPSBVU0JfRFRfQ09ORklHIHx8DQotCSAgICBj b25maWctPmRlc2MuYkxlbmd0aCA8IFVTQl9EVF9DT05GSUdfU0laRSkgew0KKwkgICAgY29uZmln LT5kZXNjLmJMZW5ndGggPCBVU0JfRFRfQ09ORklHX1NJWkUgfHwNCisJICAgIGNvbmZpZy0+ZGVz Yy5iTGVuZ3RoID4gc2l6ZSkgew0KIAkJZGV2X2VycihkZGV2LCAiaW52YWxpZCBkZXNjcmlwdG9y IGZvciBjb25maWcgaW5kZXggJWQ6ICINCiAJCSAgICAidHlwZSA9IDB4JVgsIGxlbmd0aCA9ICVk XG4iLCBjZmdpZHgsDQogCQkgICAgY29uZmlnLT5kZXNjLmJEZXNjcmlwdG9yVHlwZSwgY29uZmln LT5kZXNjLmJMZW5ndGgpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvZGV2aW8uYyBi L2RyaXZlcnMvdXNiL2NvcmUvZGV2aW8uYw0KaW5kZXggMjJmNzcwYS4uNDkyNTdiMyAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvZGV2aW8uYw0KKysrIGIvZHJpdmVycy91c2IvY29yZS9k ZXZpby5jDQpAQCAtNjQ2LDYgKzY0NiwyMiBAQCBzdGF0aWMgaW50IGNoZWNrX2N0cmxyZWNpcChz dHJ1Y3QgZGV2X3N0YXRlICpwcywgdW5zaWduZWQgaW50IHJlcXVlc3R0eXBlLA0KIAkJaWYgKChp bmRleCAmIH5VU0JfRElSX0lOKSA9PSAwKQ0KIAkJCXJldHVybiAwOw0KIAkJcmV0ID0gZmluZGlu dGZlcChwcy0+ZGV2LCBpbmRleCk7DQorCQlpZiAocmV0IDwgMCkgew0KKwkJCS8qDQorCQkJICog U29tZSBub3QgZnVsbHkgY29tcGxpYW50IFdpbiBhcHBzIHNlZW0gdG8gZ2V0DQorCQkJICogaW5k ZXggd3JvbmcgYW5kIGhhdmUgdGhlIGVuZHBvaW50IG51bWJlciBoZXJlDQorCQkJICogcmF0aGVy IHRoYW4gdGhlIGVuZHBvaW50IGFkZHJlc3MgKHdpdGggdGhlDQorCQkJICogY29ycmVjdCBkaXJl Y3Rpb24pLiBXaW4gZG9lcyBsZXQgdGhpcyB0aHJvdWdoLA0KKwkJCSAqIHNvIHdlJ2xsIG5vdCBy ZWplY3QgaXQgaGVyZSBidXQgbGVhdmUgaXQgdG8NCisJCQkgKiB0aGUgZGV2aWNlIHRvIG5vdCBi cmVhayBLVk0uIEJ1dCB3ZSB3YXJuLg0KKwkJCSAqLw0KKwkJCXJldCA9IGZpbmRpbnRmZXAocHMt PmRldiwgaW5kZXggXiAweDgwKTsNCisJCQlpZiAocmV0ID49IDApDQorCQkJCWRldl9pbmZvKCZw cy0+ZGV2LT5kZXYsDQorCQkJCQkiJXM6IHByb2Nlc3MgJWkgKCVzKSByZXF1ZXN0aW5nIGVwICUw MnggYnV0IG5lZWRzICUwMnhcbiIsDQorCQkJCQlfX2Z1bmNfXywgdGFza19waWRfbnIoY3VycmVu dCksDQorCQkJCQljdXJyZW50LT5jb21tLCBpbmRleCwgaW5kZXggXiAweDgwKTsNCisJCX0NCiAJ CWlmIChyZXQgPj0gMCkNCiAJCQlyZXQgPSBjaGVja2ludGYocHMsIHJldCk7DQogCQlicmVhazsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jIGIvZHJpdmVycy91c2IvY29yZS9o dWIuYw0KaW5kZXggMjc2OGE3ZS4uYTVlYTg1ZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2Nv cmUvaHViLmMNCisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMNCkBAIC0zNzQ5LDcgKzM3NDks OCBAQCBzdGF0aWMgdm9pZCBodWJfZXZlbnRzKHZvaWQpDQogCQkJCQlodWItPmhkZXYtPmNoaWxk cmVuW2kgLSAxXTsNCiANCiAJCQkJZGV2X2RiZyhodWJfZGV2LCAid2FybSByZXNldCBwb3J0ICVk XG4iLCBpKTsNCi0JCQkJaWYgKCF1ZGV2KSB7DQorCQkJCWlmICghdWRldiB8fCAhKHBvcnRzdGF0 dXMgJg0KKwkJCQkJCVVTQl9QT1JUX1NUQVRfQ09OTkVDVElPTikpIHsNCiAJCQkJCXN0YXR1cyA9 IGh1Yl9wb3J0X3Jlc2V0KGh1YiwgaSwNCiAJCQkJCQkJTlVMTCwgSFVCX0JIX1JFU0VUX1RJTUUs DQogCQkJCQkJCXRydWUpOw0KQEAgLTM3NTksOCArMzc2MCw4IEBAIHN0YXRpYyB2b2lkIGh1Yl9l dmVudHModm9pZCkNCiAJCQkJCXVzYl9sb2NrX2RldmljZSh1ZGV2KTsNCiAJCQkJCXN0YXR1cyA9 IHVzYl9yZXNldF9kZXZpY2UodWRldik7DQogCQkJCQl1c2JfdW5sb2NrX2RldmljZSh1ZGV2KTsN CisJCQkJCWNvbm5lY3RfY2hhbmdlID0gMDsNCiAJCQkJfQ0KLQkJCQljb25uZWN0X2NoYW5nZSA9 IDA7DQogCQkJfQ0KIA0KIAkJCWlmIChjb25uZWN0X2NoYW5nZSkNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi9kd2MzL2R3YzMtcGNpLmMgYi9kcml2ZXJzL3VzYi9kd2MzL2R3YzMtcGNpLmMNCmlu ZGV4IGY3N2MwMDAuLjllZGM1ODIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9kd2MzL2R3YzMt cGNpLmMNCisrKyBiL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1wY2kuYw0KQEAgLTQ1LDYgKzQ1LDgg QEANCiAvKiBGSVhNRSBkZWZpbmUgdGhlc2UgaW4gPGxpbnV4L3BjaV9pZHMuaD4gKi8NCiAjZGVm aW5lIFBDSV9WRU5ET1JfSURfU1lOT1BTWVMJCTB4MTZjMw0KICNkZWZpbmUgUENJX0RFVklDRV9J RF9TWU5PUFNZU19IQVBTVVNCMwkweGFiY2QNCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxf QllUCQkweDBmMzcNCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfTVJGTEQJMHgxMTllDQog DQogI2RlZmluZSBEV0MzX1BDSV9ERVZTX1BPU1NJQkxFCTMyDQogDQpAQCAtMTkxLDYgKzE5Myw4 IEBAIHN0YXRpYyBERUZJTkVfUENJX0RFVklDRV9UQUJMRShkd2MzX3BjaV9pZF90YWJsZSkgPSB7 DQogCQlQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfU1lOT1BTWVMsDQogCQkJCVBDSV9ERVZJQ0Vf SURfU1lOT1BTWVNfSEFQU1VTQjMpLA0KIAl9LA0KKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9J RF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF9CWVQpLCB9LA0KKwl7IFBDSV9ERVZJQ0UoUENJ X1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF9NUkZMRCksIH0sDQogCXsgIH0J LyogVGVybWluYXRpbmcgRW50cnkgKi8NCiB9Ow0KIE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBk d2MzX3BjaV9pZF90YWJsZSk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9laGNpLW14 Yy5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLW14Yy5jDQppbmRleCA1NTk3OGZjLi4wODc0NDcz IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLW14Yy5jDQorKysgYi9kcml2ZXJz L3VzYi9ob3N0L2VoY2ktbXhjLmMNCkBAIC0yOTYsNyArMjk2LDcgQEAgc3RhdGljIGludCBfX2V4 aXQgZWhjaV9teGNfZHJ2X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KIAlp ZiAocGRhdGEgJiYgcGRhdGEtPmV4aXQpDQogCQlwZGF0YS0+ZXhpdChwZGV2KTsNCiANCi0JaWYg KHBkYXRhLT5vdGcpDQorCWlmIChwZGF0YSAmJiBwZGF0YS0+b3RnKQ0KIAkJb3RnX3NodXRkb3du KHBkYXRhLT5vdGcpOw0KIA0KIAl1c2JfcmVtb3ZlX2hjZChoY2QpOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL2hvc3QvZWhjaS1wY2kuYyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1wY2kuYw0K aW5kZXggYjcxZTIyZS4uMjljMDQyMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvZWhj aS1wY2kuYw0KKysrIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLXBjaS5jDQpAQCAtNTQzLDcgKzU0 Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBlaGNpX3BjaV9kcml2ZXIgPSB7DQogCS5y ZW1vdmUgPQl1c2JfaGNkX3BjaV9yZW1vdmUsDQogCS5zaHV0ZG93biA9IAl1c2JfaGNkX3BjaV9z aHV0ZG93biwNCiANCi0jaWZkZWYgQ09ORklHX1BNX1NMRUVQDQorI2lmZGVmIENPTkZJR19QTQ0K IAkuZHJpdmVyID0Jew0KIAkJLnBtID0JJnVzYl9oY2RfcGNpX3BtX29wcw0KIAl9LA0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wY2kuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hj aS1wY2kuYw0KaW5kZXggYmMwMWIwNi4uODM5Y2I2NCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNi L2hvc3Qvb2hjaS1wY2kuYw0KKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBjaS5jDQpAQCAt NDEzLDcgKzQxMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBvaGNpX3BjaV9kcml2ZXIg PSB7DQogCS5yZW1vdmUgPQl1c2JfaGNkX3BjaV9yZW1vdmUsDQogCS5zaHV0ZG93biA9CXVzYl9o Y2RfcGNpX3NodXRkb3duLA0KIA0KLSNpZmRlZiBDT05GSUdfUE1fU0xFRVANCisjaWZkZWYgQ09O RklHX1BNDQogCS5kcml2ZXIgPQl7DQogCQkucG0gPQkmdXNiX2hjZF9wY2lfcG1fb3BzDQogCX0s DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC91aGNpLXBjaS5jIGIvZHJpdmVycy91c2Iv aG9zdC91aGNpLXBjaS5jDQppbmRleCBjMzAwYmQyZjcuLjBmMjI4YzQgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL3VzYi9ob3N0L3VoY2ktcGNpLmMNCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QvdWhjaS1w Y2kuYw0KQEAgLTI5Myw3ICsyOTMsNyBAQCBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgdWhjaV9w Y2lfZHJpdmVyID0gew0KIAkucmVtb3ZlID0JdXNiX2hjZF9wY2lfcmVtb3ZlLA0KIAkuc2h1dGRv d24gPQl1aGNpX3NodXRkb3duLA0KIA0KLSNpZmRlZiBDT05GSUdfUE1fU0xFRVANCisjaWZkZWYg Q09ORklHX1BNDQogCS5kcml2ZXIgPQl7DQogCQkucG0gPQkmdXNiX2hjZF9wY2lfcG1fb3BzDQog CX0sDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jIGIvZHJpdmVycy91 c2IvaG9zdC94aGNpLXBjaS5jDQppbmRleCA3OWQyNzIwLi42MWIwNjY4IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jDQorKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2kt cGNpLmMNCkBAIC0zMzAsNyArMzMwLDcgQEAgc3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHhoY2lf cGNpX2RyaXZlciA9IHsNCiAJLyogc3VzcGVuZCBhbmQgcmVzdW1lIGltcGxlbWVudGVkIGxhdGVy ICovDQogDQogCS5zaHV0ZG93biA9IAl1c2JfaGNkX3BjaV9zaHV0ZG93biwNCi0jaWZkZWYgQ09O RklHX1BNX1NMRUVQDQorI2lmZGVmIENPTkZJR19QTQ0KIAkuZHJpdmVyID0gew0KIAkJLnBtID0g JnVzYl9oY2RfcGNpX3BtX29wcw0KIAl9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qv eGhjaS1yaW5nLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jDQppbmRleCA2MzM0NzZl Li4yYjRmNDJiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYw0KKysr IGIvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYw0KQEAgLTg3OSw4ICs4NzksMTIgQEAgcmVt b3ZlX2ZpbmlzaGVkX3RkOg0KIAkJLyogT3RoZXJ3aXNlIHJpbmcgdGhlIGRvb3JiZWxsKHMpIHRv IHJlc3RhcnQgcXVldWVkIHRyYW5zZmVycyAqLw0KIAkJcmluZ19kb29yYmVsbF9mb3JfYWN0aXZl X3JpbmdzKHhoY2ksIHNsb3RfaWQsIGVwX2luZGV4KTsNCiAJfQ0KLQllcC0+c3RvcHBlZF90ZCA9 IE5VTEw7DQotCWVwLT5zdG9wcGVkX3RyYiA9IE5VTEw7DQorDQorCS8qIENsZWFyIHN0b3BwZWRf dGQgYW5kIHN0b3BwZWRfdHJiIGlmIGVuZHBvaW50IGlzIG5vdCBoYWx0ZWQgKi8NCisJaWYgKCEo ZXAtPmVwX3N0YXRlICYgRVBfSEFMVEVEKSkgew0KKwkJZXAtPnN0b3BwZWRfdGQgPSBOVUxMOw0K KwkJZXAtPnN0b3BwZWRfdHJiID0gTlVMTDsNCisJfQ0KIA0KIAkvKg0KIAkgKiBEcm9wIHRoZSBs b2NrIGFuZCBjb21wbGV0ZSB0aGUgVVJCcyBpbiB0aGUgY2FuY2VsbGVkIFREIGxpc3QuDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ku Yw0KaW5kZXggNmUxYzkyYS4uNjI5YWE3NCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qv eGhjaS5jDQorKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuYw0KQEAgLTM0ODQsMTAgKzM0ODQs MjEgQEAgdm9pZCB4aGNpX2ZyZWVfZGV2KHN0cnVjdCB1c2JfaGNkICpoY2QsIHN0cnVjdCB1c2Jf ZGV2aWNlICp1ZGV2KQ0KIHsNCiAJc3RydWN0IHhoY2lfaGNkICp4aGNpID0gaGNkX3RvX3hoY2ko aGNkKTsNCiAJc3RydWN0IHhoY2lfdmlydF9kZXZpY2UgKnZpcnRfZGV2Ow0KKwlzdHJ1Y3QgZGV2 aWNlICpkZXYgPSBoY2QtPnNlbGYuY29udHJvbGxlcjsNCiAJdW5zaWduZWQgbG9uZyBmbGFnczsN CiAJdTMyIHN0YXRlOw0KIAlpbnQgaSwgcmV0Ow0KIA0KKyNpZm5kZWYgQ09ORklHX1VTQl9ERUZB VUxUX1BFUlNJU1QNCisJLyoNCisJICogV2UgY2FsbGVkIHBtX3J1bnRpbWVfZ2V0X25vcmVzdW1l IHdoZW4gdGhlIGRldmljZSB3YXMgYXR0YWNoZWQuDQorCSAqIERlY3JlbWVudCB0aGUgY291bnRl ciBoZXJlIHRvIGFsbG93IGNvbnRyb2xsZXIgdG8gcnVudGltZSBzdXNwZW5kDQorCSAqIGlmIG5v IGRldmljZXMgcmVtYWluLg0KKwkgKi8NCisJaWYgKHhoY2ktPnF1aXJrcyAmIFhIQ0lfUkVTRVRf T05fUkVTVU1FKQ0KKwkJcG1fcnVudGltZV9wdXRfbm9pZGxlKGRldik7DQorI2VuZGlmDQorDQog CXJldCA9IHhoY2lfY2hlY2tfYXJncyhoY2QsIHVkZXYsIE5VTEwsIDAsIHRydWUsIF9fZnVuY19f KTsNCiAJLyogSWYgdGhlIGhvc3QgaXMgaGFsdGVkIGR1ZSB0byBkcml2ZXIgdW5sb2FkLCB3ZSBz dGlsbCBuZWVkIHRvIGZyZWUgdGhlDQogCSAqIGRldmljZS4NCkBAIC0zNTU5LDYgKzM1NzAsNyBA QCBzdGF0aWMgaW50IHhoY2lfcmVzZXJ2ZV9ob3N0X2NvbnRyb2xfZXBfcmVzb3VyY2VzKHN0cnVj dCB4aGNpX2hjZCAqeGhjaSkNCiBpbnQgeGhjaV9hbGxvY19kZXYoc3RydWN0IHVzYl9oY2QgKmhj ZCwgc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYpDQogew0KIAlzdHJ1Y3QgeGhjaV9oY2QgKnhoY2kg PSBoY2RfdG9feGhjaShoY2QpOw0KKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBoY2QtPnNlbGYuY29u dHJvbGxlcjsNCiAJdW5zaWduZWQgbG9uZyBmbGFnczsNCiAJaW50IHRpbWVsZWZ0Ow0KIAlpbnQg cmV0Ow0KQEAgLTM2MTEsNiArMzYyMywxNiBAQCBpbnQgeGhjaV9hbGxvY19kZXYoc3RydWN0IHVz Yl9oY2QgKmhjZCwgc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYpDQogCQlnb3RvIGRpc2FibGVfc2xv dDsNCiAJfQ0KIAl1ZGV2LT5zbG90X2lkID0geGhjaS0+c2xvdF9pZDsNCisNCisjaWZuZGVmIENP TkZJR19VU0JfREVGQVVMVF9QRVJTSVNUDQorCS8qDQorCSAqIElmIHJlc2V0dGluZyB1cG9uIHJl c3VtZSwgd2UgY2FuJ3QgcHV0IHRoZSBjb250cm9sbGVyIGludG8gcnVudGltZQ0KKwkgKiBzdXNw ZW5kIGlmIHRoZXJlIGlzIGEgZGV2aWNlIGF0dGFjaGVkLg0KKwkgKi8NCisJaWYgKHhoY2ktPnF1 aXJrcyAmIFhIQ0lfUkVTRVRfT05fUkVTVU1FKQ0KKwkJcG1fcnVudGltZV9nZXRfbm9yZXN1bWUo ZGV2KTsNCisjZW5kaWYNCisNCiAJLyogSXMgdGhpcyBhIExTIG9yIEZTIGRldmljZSB1bmRlciBh IEhTIGh1Yj8gKi8NCiAJLyogSHViIG9yIHBlcmlwaGVyaWFsPyAqLw0KIAlyZXR1cm4gMTsNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvbW9zNzcyMC5jIGIvZHJpdmVycy91c2Ivc2Vy aWFsL21vczc3MjAuYw0KaW5kZXggOTI3MGQ1Yy4uOGUwMmZmMiAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvdXNiL3NlcmlhbC9tb3M3NzIwLmMNCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9tb3M3NzIw LmMNCkBAIC0zODMsNyArMzgzLDcgQEAgc3RhdGljIGludCB3cml0ZV9wYXJwb3J0X3JlZ19ub25i bG9jayhzdHJ1Y3QgbW9zNzcxNV9wYXJwb3J0ICptb3NfcGFycG9ydCwNCiAJCWtmcmVlKHVyYnRy YWNrKTsNCiAJCXJldHVybiAtRU5PTUVNOw0KIAl9DQotCXVyYnRyYWNrLT5zZXR1cCA9IGttYWxs b2Moc2l6ZW9mKCp1cmJ0cmFjay0+c2V0dXApLCBHRlBfS0VSTkVMKTsNCisJdXJidHJhY2stPnNl dHVwID0ga21hbGxvYyhzaXplb2YoKnVyYnRyYWNrLT5zZXR1cCksIEdGUF9BVE9NSUMpOw0KIAlp ZiAoIXVyYnRyYWNrLT5zZXR1cCkgew0KIAkJdXNiX2ZyZWVfdXJiKHVyYnRyYWNrLT51cmIpOw0K IAkJa2ZyZWUodXJidHJhY2spOw0KQEAgLTM5MSw4ICszOTEsOCBAQCBzdGF0aWMgaW50IHdyaXRl X3BhcnBvcnRfcmVnX25vbmJsb2NrKHN0cnVjdCBtb3M3NzE1X3BhcnBvcnQgKm1vc19wYXJwb3J0 LA0KIAl9DQogCXVyYnRyYWNrLT5zZXR1cC0+YlJlcXVlc3RUeXBlID0gKF9fdTgpMHg0MDsNCiAJ dXJidHJhY2stPnNldHVwLT5iUmVxdWVzdCA9IChfX3U4KTB4MGU7DQotCXVyYnRyYWNrLT5zZXR1 cC0+d1ZhbHVlID0gZ2V0X3JlZ192YWx1ZShyZWcsIGR1bW15KTsNCi0JdXJidHJhY2stPnNldHVw LT53SW5kZXggPSBnZXRfcmVnX2luZGV4KHJlZyk7DQorCXVyYnRyYWNrLT5zZXR1cC0+d1ZhbHVl ID0gY3B1X3RvX2xlMTYoZ2V0X3JlZ192YWx1ZShyZWcsIGR1bW15KSk7DQorCXVyYnRyYWNrLT5z ZXR1cC0+d0luZGV4ID0gY3B1X3RvX2xlMTYoZ2V0X3JlZ19pbmRleChyZWcpKTsNCiAJdXJidHJh Y2stPnNldHVwLT53TGVuZ3RoID0gMDsNCiAJdXNiX2ZpbGxfY29udHJvbF91cmIodXJidHJhY2st PnVyYiwgdXNiZGV2LA0KIAkJCSAgICAgdXNiX3NuZGN0cmxwaXBlKHVzYmRldiwgMCksDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jIGIvZHJpdmVycy91c2Ivc2VyaWFs L29wdGlvbi5jDQppbmRleCBjMjEwM2Y0Li41MzZjNGFkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91 c2Ivc2VyaWFsL29wdGlvbi5jDQorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMNCkBA IC04MSw2ICs4MSw3IEBAIHN0YXRpYyB2b2lkIG9wdGlvbl9pbnN0YXRfY2FsbGJhY2soc3RydWN0 IHVyYiAqdXJiKTsNCiANCiAjZGVmaW5lIEhVQVdFSV9WRU5ET1JfSUQJCQkweDEyRDENCiAjZGVm aW5lIEhVQVdFSV9QUk9EVUNUX0UxNzMJCQkweDE0MEMNCisjZGVmaW5lIEhVQVdFSV9QUk9EVUNU X0UxNzUwCQkJMHgxNDA2DQogI2RlZmluZSBIVUFXRUlfUFJPRFVDVF9LNDUwNQkJCTB4MTQ2NA0K ICNkZWZpbmUgSFVBV0VJX1BST0RVQ1RfSzM3NjUJCQkweDE0NjUNCiAjZGVmaW5lIEhVQVdFSV9Q Uk9EVUNUX0s0NjA1CQkJMHgxNEM2DQpAQCAtNTgxLDYgKzU4Miw4IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7DQogCXsgVVNCX0RFVklDRV9BTkRf SU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHgxYzIzLCBVU0JfQ0xBU1NfQ09NTSwg MHgwMiwgMHhmZikgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlf VkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FMTczLCAweGZmLCAweGZmLCAweGZmKSwNCiAJCS5k cml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkgJm5ldF9pbnRmMV9ibGFja2xpc3QgfSwNCisJ eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlf UFJPRFVDVF9FMTc1MCwgMHhmZiwgMHhmZiwgMHhmZiksDQorCQkuZHJpdmVyX2luZm8gPSAoa2Vy bmVsX3Vsb25nX3QpICZuZXRfaW50ZjJfYmxhY2tsaXN0IH0sDQogCXsgVVNCX0RFVklDRV9BTkRf SU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHgxNDQxLCBVU0JfQ0xBU1NfQ09NTSwg MHgwMiwgMHhmZikgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlf VkVORE9SX0lELCAweDE0NDIsIFVTQl9DTEFTU19DT01NLCAweDAyLCAweGZmKSB9LA0KIAl7IFVT Ql9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9E VUNUX0s0NTA1LCAweGZmLCAweGZmLCAweGZmKSwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9n cmFudC10YWJsZS5jIGIvZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYw0KaW5kZXggYmYxYzA5NC4u YjY1N2RlNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMveGVuL2dyYW50LXRhYmxlLmMNCisrKyBiL2Ry aXZlcnMveGVuL2dyYW50LXRhYmxlLmMNCkBAIC0zNTUsOSArMzU1LDE4IEBAIHZvaWQgZ250dGFi X3JlcXVlc3RfZnJlZV9jYWxsYmFjayhzdHJ1Y3QgZ250dGFiX2ZyZWVfY2FsbGJhY2sgKmNhbGxi YWNrLA0KIAkJCQkgIHZvaWQgKCpmbikodm9pZCAqKSwgdm9pZCAqYXJnLCB1MTYgY291bnQpDQog ew0KIAl1bnNpZ25lZCBsb25nIGZsYWdzOw0KKwlzdHJ1Y3QgZ250dGFiX2ZyZWVfY2FsbGJhY2sg KmNiOw0KKw0KIAlzcGluX2xvY2tfaXJxc2F2ZSgmZ250dGFiX2xpc3RfbG9jaywgZmxhZ3MpOw0K LQlpZiAoY2FsbGJhY2stPm5leHQpDQotCQlnb3RvIG91dDsNCisNCisJLyogQ2hlY2sgaWYgdGhl IGNhbGxiYWNrIGlzIGFscmVhZHkgb24gdGhlIGxpc3QgKi8NCisJY2IgPSBnbnR0YWJfZnJlZV9j YWxsYmFja19saXN0Ow0KKwl3aGlsZSAoY2IpIHsNCisJCWlmIChjYiA9PSBjYWxsYmFjaykNCisJ CQlnb3RvIG91dDsNCisJCWNiID0gY2ItPm5leHQ7DQorCX0NCisNCiAJY2FsbGJhY2stPmZuID0g Zm47DQogCWNhbGxiYWNrLT5hcmcgPSBhcmc7DQogCWNhbGxiYWNrLT5jb3VudCA9IGNvdW50Ow0K ZGlmZiAtLWdpdCBhL2ZzL2RlYnVnZnMvaW5vZGUuYyBiL2ZzL2RlYnVnZnMvaW5vZGUuYw0KaW5k ZXggZjNhMjU3ZC4uZmIwMDFjZCAxMDA2NDQNCi0tLSBhL2ZzL2RlYnVnZnMvaW5vZGUuYw0KKysr IGIvZnMvZGVidWdmcy9pbm9kZS5jDQpAQCAtMzgwLDggKzM4MCw3IEBAIEVYUE9SVF9TWU1CT0xf R1BMKGRlYnVnZnNfcmVtb3ZlKTsNCiAgKi8NCiB2b2lkIGRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2 ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogew0KLQlzdHJ1Y3QgZGVudHJ5ICpjaGlsZDsNCi0J c3RydWN0IGRlbnRyeSAqcGFyZW50Ow0KKwlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCwgKm5leHQsICpw YXJlbnQ7DQogDQogCWlmICghZGVudHJ5KQ0KIAkJcmV0dXJuOw0KQEAgLTM5MSw2MSArMzkwLDM3 IEBAIHZvaWQgZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkN CiAJCXJldHVybjsNCiANCiAJcGFyZW50ID0gZGVudHJ5Ow0KKyBkb3duOg0KIAltdXRleF9sb2Nr KCZwYXJlbnQtPmRfaW5vZGUtPmlfbXV0ZXgpOw0KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUo Y2hpbGQsIG5leHQsICZwYXJlbnQtPmRfc3ViZGlycywgZF91LmRfY2hpbGQpIHsNCisJCWlmICgh ZGVidWdmc19wb3NpdGl2ZShjaGlsZCkpDQorCQkJY29udGludWU7DQogDQotCXdoaWxlICgxKSB7 DQotCQkvKg0KLQkJICogV2hlbiBhbGwgZGVudHJpZXMgdW5kZXIgInBhcmVudCIgaGFzIGJlZW4g cmVtb3ZlZCwNCi0JCSAqIHdhbGsgdXAgdGhlIHRyZWUgdW50aWwgd2UgcmVhY2ggb3VyIHN0YXJ0 aW5nIHBvaW50Lg0KLQkJICovDQotCQlpZiAobGlzdF9lbXB0eSgmcGFyZW50LT5kX3N1YmRpcnMp KSB7DQotCQkJbXV0ZXhfdW5sb2NrKCZwYXJlbnQtPmRfaW5vZGUtPmlfbXV0ZXgpOw0KLQkJCWlm IChwYXJlbnQgPT0gZGVudHJ5KQ0KLQkJCQlicmVhazsNCi0JCQlwYXJlbnQgPSBwYXJlbnQtPmRf cGFyZW50Ow0KLQkJCW11dGV4X2xvY2soJnBhcmVudC0+ZF9pbm9kZS0+aV9tdXRleCk7DQotCQl9 DQotCQljaGlsZCA9IGxpc3RfZW50cnkocGFyZW50LT5kX3N1YmRpcnMubmV4dCwgc3RydWN0IGRl bnRyeSwNCi0JCQkJZF91LmRfY2hpbGQpOw0KLSBuZXh0X3NpYmxpbmc6DQotDQotCQkvKg0KLQkJ ICogSWYgImNoaWxkIiBpc24ndCBlbXB0eSwgd2FsayBkb3duIHRoZSB0cmVlIGFuZA0KLQkJICog cmVtb3ZlIGFsbCBpdHMgZGVzY2VuZGFudHMgZmlyc3QuDQotCQkgKi8NCisJCS8qIHBlcmhhcHMg c2ltcGxlX2VtcHR5KGNoaWxkKSBtYWtlcyBtb3JlIHNlbnNlICovDQogCQlpZiAoIWxpc3RfZW1w dHkoJmNoaWxkLT5kX3N1YmRpcnMpKSB7DQogCQkJbXV0ZXhfdW5sb2NrKCZwYXJlbnQtPmRfaW5v ZGUtPmlfbXV0ZXgpOw0KIAkJCXBhcmVudCA9IGNoaWxkOw0KLQkJCW11dGV4X2xvY2soJnBhcmVu dC0+ZF9pbm9kZS0+aV9tdXRleCk7DQotCQkJY29udGludWU7DQotCQl9DQotCQlfX2RlYnVnZnNf cmVtb3ZlKGNoaWxkLCBwYXJlbnQpOw0KLQkJaWYgKHBhcmVudC0+ZF9zdWJkaXJzLm5leHQgPT0g JmNoaWxkLT5kX3UuZF9jaGlsZCkgew0KLQkJCS8qDQotCQkJICogVHJ5IHRoZSBuZXh0IHNpYmxp bmcuDQotCQkJICovDQotCQkJaWYgKGNoaWxkLT5kX3UuZF9jaGlsZC5uZXh0ICE9ICZwYXJlbnQt PmRfc3ViZGlycykgew0KLQkJCQljaGlsZCA9IGxpc3RfZW50cnkoY2hpbGQtPmRfdS5kX2NoaWxk Lm5leHQsDQotCQkJCQkJICAgc3RydWN0IGRlbnRyeSwNCi0JCQkJCQkgICBkX3UuZF9jaGlsZCk7 DQotCQkJCWdvdG8gbmV4dF9zaWJsaW5nOw0KLQkJCX0NCi0NCi0JCQkvKg0KLQkJCSAqIEF2b2lk IGluZmluaXRlIGxvb3AgaWYgd2UgZmFpbCB0byByZW1vdmUNCi0JCQkgKiBvbmUgZGVudHJ5Lg0K LQkJCSAqLw0KLQkJCW11dGV4X3VubG9jaygmcGFyZW50LT5kX2lub2RlLT5pX211dGV4KTsNCi0J CQlicmVhazsNCisJCQlnb3RvIGRvd247DQogCQl9DQotCQlzaW1wbGVfcmVsZWFzZV9mcygmZGVi dWdmc19tb3VudCwgJmRlYnVnZnNfbW91bnRfY291bnQpOw0KKyB1cDoNCisJCWlmICghX19kZWJ1 Z2ZzX3JlbW92ZShjaGlsZCwgcGFyZW50KSkNCisJCQlzaW1wbGVfcmVsZWFzZV9mcygmZGVidWdm c19tb3VudCwgJmRlYnVnZnNfbW91bnRfY291bnQpOw0KIAl9DQogDQotCXBhcmVudCA9IGRlbnRy eS0+ZF9wYXJlbnQ7DQorCW11dGV4X3VubG9jaygmcGFyZW50LT5kX2lub2RlLT5pX211dGV4KTsN CisJY2hpbGQgPSBwYXJlbnQ7DQorCXBhcmVudCA9IHBhcmVudC0+ZF9wYXJlbnQ7DQogCW11dGV4 X2xvY2soJnBhcmVudC0+ZF9pbm9kZS0+aV9tdXRleCk7DQotCV9fZGVidWdmc19yZW1vdmUoZGVu dHJ5LCBwYXJlbnQpOw0KKw0KKwlpZiAoY2hpbGQgIT0gZGVudHJ5KSB7DQorCQluZXh0ID0gbGlz dF9lbnRyeShjaGlsZC0+ZF91LmRfY2hpbGQubmV4dCwgc3RydWN0IGRlbnRyeSwNCisJCQkJCWRf dS5kX2NoaWxkKTsNCisJCWdvdG8gdXA7DQorCX0NCisNCisJaWYgKCFfX2RlYnVnZnNfcmVtb3Zl KGNoaWxkLCBwYXJlbnQpKQ0KKwkJc2ltcGxlX3JlbGVhc2VfZnMoJmRlYnVnZnNfbW91bnQsICZk ZWJ1Z2ZzX21vdW50X2NvdW50KTsNCiAJbXV0ZXhfdW5sb2NrKCZwYXJlbnQtPmRfaW5vZGUtPmlf bXV0ZXgpOw0KLQlzaW1wbGVfcmVsZWFzZV9mcygmZGVidWdmc19tb3VudCwgJmRlYnVnZnNfbW91 bnRfY291bnQpOw0KIH0NCiBFWFBPUlRfU1lNQk9MX0dQTChkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNp dmUpOw0KIA0KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvbmFtZWkuYyBiL2ZzL2V4dDQvbmFtZWkuYw0K aW5kZXggM2NhM2I3Zi4uMmUwZTM0ZiAxMDA2NDQNCi0tLSBhL2ZzL2V4dDQvbmFtZWkuYw0KKysr IGIvZnMvZXh0NC9uYW1laS5jDQpAQCAtMjA1NCw3ICsyMDU0LDggQEAgaW50IGV4dDRfb3JwaGFu X2RlbChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIAlpbnQgZXJyID0g MDsNCiANCiAJLyogZXh0NF9oYW5kbGVfdmFsaWQoKSBhc3N1bWVzIGEgdmFsaWQgaGFuZGxlX3Qg cG9pbnRlciAqLw0KLQlpZiAoaGFuZGxlICYmICFleHQ0X2hhbmRsZV92YWxpZChoYW5kbGUpKQ0K KwlpZiAoaGFuZGxlICYmICFleHQ0X2hhbmRsZV92YWxpZChoYW5kbGUpICYmDQorCSAgICAhKEVY VDRfU0IoaW5vZGUtPmlfc2IpLT5zX21vdW50X3N0YXRlICYgRVhUNF9PUlBIQU5fRlMpKQ0KIAkJ cmV0dXJuIDA7DQogDQogCW11dGV4X2xvY2soJkVYVDRfU0IoaW5vZGUtPmlfc2IpLT5zX29ycGhh bl9sb2NrKTsNCmRpZmYgLS1naXQgYS9mcy9mdXNlL2Rpci5jIGIvZnMvZnVzZS9kaXIuYw0KaW5k ZXggNWVmN2FmYi4uMDZlMmY3MyAxMDA2NDQNCi0tLSBhL2ZzL2Z1c2UvZGlyLmMNCisrKyBiL2Zz L2Z1c2UvZGlyLmMNCkBAIC0xMDYzLDYgKzEwNjMsOCBAQCBzdGF0aWMgaW50IHBhcnNlX2RpcmZp bGUoY2hhciAqYnVmLCBzaXplX3QgbmJ5dGVzLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCQlyZXR1 cm4gLUVJTzsNCiAJCWlmIChyZWNsZW4gPiBuYnl0ZXMpDQogCQkJYnJlYWs7DQorCQlpZiAobWVt Y2hyKGRpcmVudC0+bmFtZSwgJy8nLCBkaXJlbnQtPm5hbWVsZW4pICE9IE5VTEwpDQorCQkJcmV0 dXJuIC1FSU87DQogDQogCQlvdmVyID0gZmlsbGRpcihkc3RidWYsIGRpcmVudC0+bmFtZSwgZGly ZW50LT5uYW1lbGVuLA0KIAkJCSAgICAgICBmaWxlLT5mX3BvcywgZGlyZW50LT5pbm8sIGRpcmVu dC0+dHlwZSk7DQpAQCAtMTI4Miw2ICsxMjg0LDcgQEAgc3RhdGljIGludCBmdXNlX2RvX3NldGF0 dHIoc3RydWN0IGRlbnRyeSAqZW50cnksIHN0cnVjdCBpYXR0ciAqYXR0ciwNCiB7DQogCXN0cnVj dCBpbm9kZSAqaW5vZGUgPSBlbnRyeS0+ZF9pbm9kZTsNCiAJc3RydWN0IGZ1c2VfY29ubiAqZmMg PSBnZXRfZnVzZV9jb25uKGlub2RlKTsNCisJc3RydWN0IGZ1c2VfaW5vZGUgKmZpID0gZ2V0X2Z1 c2VfaW5vZGUoaW5vZGUpOw0KIAlzdHJ1Y3QgZnVzZV9yZXEgKnJlcTsNCiAJc3RydWN0IGZ1c2Vf c2V0YXR0cl9pbiBpbmFyZzsNCiAJc3RydWN0IGZ1c2VfYXR0cl9vdXQgb3V0YXJnOw0KQEAgLTEz MTIsOCArMTMxNSwxMCBAQCBzdGF0aWMgaW50IGZ1c2VfZG9fc2V0YXR0cihzdHJ1Y3QgZGVudHJ5 ICplbnRyeSwgc3RydWN0IGlhdHRyICphdHRyLA0KIAlpZiAoSVNfRVJSKHJlcSkpDQogCQlyZXR1 cm4gUFRSX0VSUihyZXEpOw0KIA0KLQlpZiAoaXNfdHJ1bmNhdGUpDQorCWlmIChpc190cnVuY2F0 ZSkgew0KIAkJZnVzZV9zZXRfbm93cml0ZShpbm9kZSk7DQorCQlzZXRfYml0KEZVU0VfSV9TSVpF X1VOU1RBQkxFLCAmZmktPnN0YXRlKTsNCisJfQ0KIA0KIAltZW1zZXQoJmluYXJnLCAwLCBzaXpl b2YoaW5hcmcpKTsNCiAJbWVtc2V0KCZvdXRhcmcsIDAsIHNpemVvZihvdXRhcmcpKTsNCkBAIC0x Mzc1LDEyICsxMzgwLDE0IEBAIHN0YXRpYyBpbnQgZnVzZV9kb19zZXRhdHRyKHN0cnVjdCBkZW50 cnkgKmVudHJ5LCBzdHJ1Y3QgaWF0dHIgKmF0dHIsDQogCQlpbnZhbGlkYXRlX2lub2RlX3BhZ2Vz Mihpbm9kZS0+aV9tYXBwaW5nKTsNCiAJfQ0KIA0KKwljbGVhcl9iaXQoRlVTRV9JX1NJWkVfVU5T VEFCTEUsICZmaS0+c3RhdGUpOw0KIAlyZXR1cm4gMDsNCiANCiBlcnJvcjoNCiAJaWYgKGlzX3Ry dW5jYXRlKQ0KIAkJZnVzZV9yZWxlYXNlX25vd3JpdGUoaW5vZGUpOw0KIA0KKwljbGVhcl9iaXQo RlVTRV9JX1NJWkVfVU5TVEFCTEUsICZmaS0+c3RhdGUpOw0KIAlyZXR1cm4gZXJyOw0KIH0NCiAN CkBAIC0xNDM5LDYgKzE0NDYsOCBAQCBzdGF0aWMgaW50IGZ1c2Vfc2V0eGF0dHIoc3RydWN0IGRl bnRyeSAqZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsDQogCQlmYy0+bm9fc2V0eGF0dHIgPSAxOw0K IAkJZXJyID0gLUVPUE5PVFNVUFA7DQogCX0NCisJaWYgKCFlcnIpDQorCQlmdXNlX2ludmFsaWRh dGVfYXR0cihpbm9kZSk7DQogCXJldHVybiBlcnI7DQogfQ0KIA0KQEAgLTE1NjgsNiArMTU3Nyw4 IEBAIHN0YXRpYyBpbnQgZnVzZV9yZW1vdmV4YXR0cihzdHJ1Y3QgZGVudHJ5ICplbnRyeSwgY29u c3QgY2hhciAqbmFtZSkNCiAJCWZjLT5ub19yZW1vdmV4YXR0ciA9IDE7DQogCQllcnIgPSAtRU9Q Tk9UU1VQUDsNCiAJfQ0KKwlpZiAoIWVycikNCisJCWZ1c2VfaW52YWxpZGF0ZV9hdHRyKGlub2Rl KTsNCiAJcmV0dXJuIGVycjsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZnMvZnVzZS9maWxlLmMgYi9m cy9mdXNlL2ZpbGUuYw0KaW5kZXggNTI0MjAwNi4uNTEwZDRhYSAxMDA2NDQNCi0tLSBhL2ZzL2Z1 c2UvZmlsZS5jDQorKysgYi9mcy9mdXNlL2ZpbGUuYw0KQEAgLTUxOSw3ICs1MTksOCBAQCBzdGF0 aWMgdm9pZCBmdXNlX3JlYWRfdXBkYXRlX3NpemUoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90 IHNpemUsDQogCXN0cnVjdCBmdXNlX2lub2RlICpmaSA9IGdldF9mdXNlX2lub2RlKGlub2RlKTsN CiANCiAJc3Bpbl9sb2NrKCZmYy0+bG9jayk7DQotCWlmIChhdHRyX3ZlciA9PSBmaS0+YXR0cl92 ZXJzaW9uICYmIHNpemUgPCBpbm9kZS0+aV9zaXplKSB7DQorCWlmIChhdHRyX3ZlciA9PSBmaS0+ YXR0cl92ZXJzaW9uICYmIHNpemUgPCBpbm9kZS0+aV9zaXplICYmDQorCSAgICAhdGVzdF9iaXQo RlVTRV9JX1NJWkVfVU5TVEFCTEUsICZmaS0+c3RhdGUpKSB7DQogCQlmaS0+YXR0cl92ZXJzaW9u ID0gKytmYy0+YXR0cl92ZXJzaW9uOw0KIAkJaV9zaXplX3dyaXRlKGlub2RlLCBzaXplKTsNCiAJ fQ0KQEAgLTg4MSwxMiArODgyLDE2IEBAIHN0YXRpYyBzc2l6ZV90IGZ1c2VfcGVyZm9ybV93cml0 ZShzdHJ1Y3QgZmlsZSAqZmlsZSwNCiB7DQogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5n LT5ob3N0Ow0KIAlzdHJ1Y3QgZnVzZV9jb25uICpmYyA9IGdldF9mdXNlX2Nvbm4oaW5vZGUpOw0K KwlzdHJ1Y3QgZnVzZV9pbm9kZSAqZmkgPSBnZXRfZnVzZV9pbm9kZShpbm9kZSk7DQogCWludCBl cnIgPSAwOw0KIAlzc2l6ZV90IHJlcyA9IDA7DQogDQogCWlmIChpc19iYWRfaW5vZGUoaW5vZGUp KQ0KIAkJcmV0dXJuIC1FSU87DQogDQorCWlmIChpbm9kZS0+aV9zaXplIDwgcG9zICsgaW92X2l0 ZXJfY291bnQoaWkpKQ0KKwkJc2V0X2JpdChGVVNFX0lfU0laRV9VTlNUQUJMRSwgJmZpLT5zdGF0 ZSk7DQorDQogCWRvIHsNCiAJCXN0cnVjdCBmdXNlX3JlcSAqcmVxOw0KIAkJc3NpemVfdCBjb3Vu dDsNCkBAIC05MjEsNiArOTI2LDcgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9wZXJmb3JtX3dyaXRl KHN0cnVjdCBmaWxlICpmaWxlLA0KIAlpZiAocmVzID4gMCkNCiAJCWZ1c2Vfd3JpdGVfdXBkYXRl X3NpemUoaW5vZGUsIHBvcyk7DQogDQorCWNsZWFyX2JpdChGVVNFX0lfU0laRV9VTlNUQUJMRSwg JmZpLT5zdGF0ZSk7DQogCWZ1c2VfaW52YWxpZGF0ZV9hdHRyKGlub2RlKTsNCiANCiAJcmV0dXJu IHJlcyA+IDAgPyByZXMgOiBlcnI7DQpAQCAtMTI1MSw3ICsxMjU3LDYgQEAgc3RhdGljIGludCBm dXNlX3dyaXRlcGFnZV9sb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpDQogDQogCWluY19iZGlfc3Rh dChtYXBwaW5nLT5iYWNraW5nX2Rldl9pbmZvLCBCRElfV1JJVEVCQUNLKTsNCiAJaW5jX3pvbmVf cGFnZV9zdGF0ZSh0bXBfcGFnZSwgTlJfV1JJVEVCQUNLX1RFTVApOw0KLQllbmRfcGFnZV93cml0 ZWJhY2socGFnZSk7DQogDQogCXNwaW5fbG9jaygmZmMtPmxvY2spOw0KIAlsaXN0X2FkZCgmcmVx LT53cml0ZXBhZ2VzX2VudHJ5LCAmZmktPndyaXRlcGFnZXMpOw0KQEAgLTEyNTksNiArMTI2NCw4 IEBAIHN0YXRpYyBpbnQgZnVzZV93cml0ZXBhZ2VfbG9ja2VkKHN0cnVjdCBwYWdlICpwYWdlKQ0K IAlmdXNlX2ZsdXNoX3dyaXRlcGFnZXMoaW5vZGUpOw0KIAlzcGluX3VubG9jaygmZmMtPmxvY2sp Ow0KIA0KKwllbmRfcGFnZV93cml0ZWJhY2socGFnZSk7DQorDQogCXJldHVybiAwOw0KIA0KIGVy cl9mcmVlOg0KZGlmZiAtLWdpdCBhL2ZzL2Z1c2UvZnVzZV9pLmggYi9mcy9mdXNlL2Z1c2VfaS5o DQppbmRleCA4OWM0YTU4Li41MmZmZDI0IDEwMDY0NA0KLS0tIGEvZnMvZnVzZS9mdXNlX2kuaA0K KysrIGIvZnMvZnVzZS9mdXNlX2kuaA0KQEAgLTEwMyw2ICsxMDMsMTUgQEAgc3RydWN0IGZ1c2Vf aW5vZGUgew0KIA0KIAkvKiogTGlzdCBvZiB3cml0ZXBhZ2UgcmVxdWVzdHN0IChwZW5kaW5nIG9y IHNlbnQpICovDQogCXN0cnVjdCBsaXN0X2hlYWQgd3JpdGVwYWdlczsNCisNCisJLyoqIE1pc2Nl bGxhbmVvdXMgYml0cyBkZXNjcmliaW5nIGlub2RlIHN0YXRlICovDQorCXVuc2lnbmVkIGxvbmcg c3RhdGU7DQorfTsNCisNCisvKiogRlVTRSBpbm9kZSBzdGF0ZSBiaXRzICovDQorZW51bSB7DQor CS8qKiBBbiBvcGVyYXRpb24gY2hhbmdpbmcgZmlsZSBzaXplIGlzIGluIHByb2dyZXNzICAqLw0K KwlGVVNFX0lfU0laRV9VTlNUQUJMRSwNCiB9Ow0KIA0KIHN0cnVjdCBmdXNlX2Nvbm47DQpkaWZm IC0tZ2l0IGEvZnMvZnVzZS9pbm9kZS5jIGIvZnMvZnVzZS9pbm9kZS5jDQppbmRleCAxZjgyZDk1 Li45MTJjMjUwIDEwMDY0NA0KLS0tIGEvZnMvZnVzZS9pbm9kZS5jDQorKysgYi9mcy9mdXNlL2lu b2RlLmMNCkBAIC05Miw2ICs5Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgaW5vZGUgKmZ1c2VfYWxsb2Nf aW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikNCiAJZmktPmF0dHJfdmVyc2lvbiA9IDA7DQog CWZpLT53cml0ZWN0ciA9IDA7DQogCWZpLT5vcmlnX2lubyA9IDA7DQorCWZpLT5zdGF0ZSA9IDA7 DQogCUlOSVRfTElTVF9IRUFEKCZmaS0+d3JpdGVfZmlsZXMpOw0KIAlJTklUX0xJU1RfSEVBRCgm ZmktPnF1ZXVlZF93cml0ZXMpOw0KIAlJTklUX0xJU1RfSEVBRCgmZmktPndyaXRlcGFnZXMpOw0K QEAgLTIwMCw3ICsyMDEsOCBAQCB2b2lkIGZ1c2VfY2hhbmdlX2F0dHJpYnV0ZXMoc3RydWN0IGlu b2RlICppbm9kZSwgc3RydWN0IGZ1c2VfYXR0ciAqYXR0ciwNCiAJbG9mZl90IG9sZHNpemU7DQog DQogCXNwaW5fbG9jaygmZmMtPmxvY2spOw0KLQlpZiAoYXR0cl92ZXJzaW9uICE9IDAgJiYgZmkt PmF0dHJfdmVyc2lvbiA+IGF0dHJfdmVyc2lvbikgew0KKwlpZiAoKGF0dHJfdmVyc2lvbiAhPSAw ICYmIGZpLT5hdHRyX3ZlcnNpb24gPiBhdHRyX3ZlcnNpb24pIHx8DQorCSAgICB0ZXN0X2JpdChG VVNFX0lfU0laRV9VTlNUQUJMRSwgJmZpLT5zdGF0ZSkpIHsNCiAJCXNwaW5fdW5sb2NrKCZmYy0+ bG9jayk7DQogCQlyZXR1cm47DQogCX0NCmRpZmYgLS1naXQgYS9mcy9pc29mcy9pbm9kZS5jIGIv ZnMvaXNvZnMvaW5vZGUuYw0KaW5kZXggZjk1MDA1OS4uYTVmMjVhNyAxMDA2NDQNCi0tLSBhL2Zz L2lzb2ZzL2lub2RlLmMNCisrKyBiL2ZzL2lzb2ZzL2lub2RlLmMNCkBAIC0xMjAsOCArMTIwLDgg QEAgc3RhdGljIHZvaWQgZGVzdHJveV9pbm9kZWNhY2hlKHZvaWQpDQogDQogc3RhdGljIGludCBp c29mc19yZW1vdW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCAqZmxhZ3MsIGNoYXIgKmRh dGEpDQogew0KLQkvKiB3ZSBwcm9iYWJseSB3YW50IGEgbG90IG1vcmUgaGVyZSAqLw0KLQkqZmxh Z3MgfD0gTVNfUkRPTkxZOw0KKwlpZiAoISgqZmxhZ3MgJiBNU19SRE9OTFkpKQ0KKwkJcmV0dXJu IC1FUk9GUzsNCiAJcmV0dXJuIDA7DQogfQ0KIA0KQEAgLTc3MCwxNSArNzcwLDYgQEAgcm9vdF9m b3VuZDoNCiAJICovDQogCXMtPnNfbWF4Ynl0ZXMgPSAweDgwMDAwMDAwMDAwTEw7DQogDQotCS8q DQotCSAqIFRoZSBDRFJPTSBpcyByZWFkLW9ubHksIGhhcyBubyBub2RlcyAoZGV2aWNlcykgb24g aXQsIGFuZCBzaW5jZQ0KLQkgKiBhbGwgb2YgdGhlIGZpbGVzIGFwcGVhciB0byBiZSBvd25lZCBi eSByb290LCB3ZSByZWFsbHkgZG8gbm90IHdhbnQNCi0JICogdG8gYWxsb3cgc3VpZC4gIChzdWlk IG9yIGRldmljZXMgd2lsbCBub3Qgc2hvdyB1cCB1bmxlc3Mgd2UgaGF2ZQ0KLQkgKiBSb2NrIFJp ZGdlIGV4dGVuc2lvbnMpDQotCSAqLw0KLQ0KLQlzLT5zX2ZsYWdzIHw9IE1TX1JET05MWSAvKiB8 IE1TX05PREVWIHwgTVNfTk9TVUlEICovOw0KLQ0KIAkvKiBTZXQgdGhpcyBmb3IgcmVmZXJlbmNl LiBJdHMgbm90IGN1cnJlbnRseSB1c2VkIGV4Y2VwdCBvbiB3cml0ZQ0KIAkgICB3aGljaCB3ZSBk b24ndCBoYXZlIC4uICovDQogDQpAQCAtMTUzNSw2ICsxNTI2LDkgQEAgc3RydWN0IGlub2RlICpp c29mc19pZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsDQogc3RhdGljIHN0cnVjdCBkZW50cnkg Kmlzb2ZzX21vdW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KIAlpbnQgZmxh Z3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhKQ0KIHsNCisJLyogV2UgZG9uJ3Qg c3VwcG9ydCByZWFkLXdyaXRlIG1vdW50cyAqLw0KKwlpZiAoIShmbGFncyAmIE1TX1JET05MWSkp DQorCQlyZXR1cm4gRVJSX1BUUigtRUFDQ0VTKTsNCiAJcmV0dXJuIG1vdW50X2JkZXYoZnNfdHlw ZSwgZmxhZ3MsIGRldl9uYW1lLCBkYXRhLCBpc29mc19maWxsX3N1cGVyKTsNCiB9DQogDQpkaWZm IC0tZ2l0IGEvZnMvbmlsZnMyL3BhZ2UuYyBiL2ZzL25pbGZzMi9wYWdlLmMNCmluZGV4IDY1MjIx YTAuLjE2ZWFjZWMgMTAwNjQ0DQotLS0gYS9mcy9uaWxmczIvcGFnZS5jDQorKysgYi9mcy9uaWxm czIvcGFnZS5jDQpAQCAtOTQsNiArOTQsNyBAQCB2b2lkIG5pbGZzX2ZvcmdldF9idWZmZXIoc3Ry dWN0IGJ1ZmZlcl9oZWFkICpiaCkNCiAJY2xlYXJfYnVmZmVyX25pbGZzX3ZvbGF0aWxlKGJoKTsN CiAJY2xlYXJfYnVmZmVyX25pbGZzX2NoZWNrZWQoYmgpOw0KIAljbGVhcl9idWZmZXJfbmlsZnNf cmVkaXJlY3RlZChiaCk7DQorCWNsZWFyX2J1ZmZlcl9hc3luY193cml0ZShiaCk7DQogCWNsZWFy X2J1ZmZlcl9kaXJ0eShiaCk7DQogCWlmIChuaWxmc19wYWdlX2J1ZmZlcnNfY2xlYW4ocGFnZSkp DQogCQlfX25pbGZzX2NsZWFyX3BhZ2VfZGlydHkocGFnZSk7DQpAQCAtMzkwLDYgKzM5MSw3IEBA IHZvaWQgbmlsZnNfY2xlYXJfZGlydHlfcGFnZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBp bmcpDQogCQkJYmggPSBoZWFkID0gcGFnZV9idWZmZXJzKHBhZ2UpOw0KIAkJCWRvIHsNCiAJCQkJ bG9ja19idWZmZXIoYmgpOw0KKwkJCQljbGVhcl9idWZmZXJfYXN5bmNfd3JpdGUoYmgpOw0KIAkJ CQljbGVhcl9idWZmZXJfZGlydHkoYmgpOw0KIAkJCQljbGVhcl9idWZmZXJfbmlsZnNfdm9sYXRp bGUoYmgpOw0KIAkJCQljbGVhcl9idWZmZXJfbmlsZnNfY2hlY2tlZChiaCk7DQpkaWZmIC0tZ2l0 IGEvZnMvbmlsZnMyL3NlZ21lbnQuYyBiL2ZzL25pbGZzMi9zZWdtZW50LmMNCmluZGV4IDZmMjRl NjcuLjIzM2QzZWQgMTAwNjQ0DQotLS0gYS9mcy9uaWxmczIvc2VnbWVudC5jDQorKysgYi9mcy9u aWxmczIvc2VnbWVudC5jDQpAQCAtNjYyLDcgKzY2Miw3IEBAIHN0YXRpYyBzaXplX3QgbmlsZnNf bG9va3VwX2RpcnR5X2RhdGFfYnVmZmVycyhzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIA0KIAkJYmgg PSBoZWFkID0gcGFnZV9idWZmZXJzKHBhZ2UpOw0KIAkJZG8gew0KLQkJCWlmICghYnVmZmVyX2Rp cnR5KGJoKSkNCisJCQlpZiAoIWJ1ZmZlcl9kaXJ0eShiaCkgfHwgYnVmZmVyX2FzeW5jX3dyaXRl KGJoKSkNCiAJCQkJY29udGludWU7DQogCQkJZ2V0X2JoKGJoKTsNCiAJCQlsaXN0X2FkZF90YWls KCZiaC0+Yl9hc3NvY19idWZmZXJzLCBsaXN0cCk7DQpAQCAtNjk2LDcgKzY5Niw4IEBAIHN0YXRp YyB2b2lkIG5pbGZzX2xvb2t1cF9kaXJ0eV9ub2RlX2J1ZmZlcnMoc3RydWN0IGlub2RlICppbm9k ZSwNCiAJCWZvciAoaSA9IDA7IGkgPCBwYWdldmVjX2NvdW50KCZwdmVjKTsgaSsrKSB7DQogCQkJ YmggPSBoZWFkID0gcGFnZV9idWZmZXJzKHB2ZWMucGFnZXNbaV0pOw0KIAkJCWRvIHsNCi0JCQkJ aWYgKGJ1ZmZlcl9kaXJ0eShiaCkpIHsNCisJCQkJaWYgKGJ1ZmZlcl9kaXJ0eShiaCkgJiYNCisJ CQkJCQkhYnVmZmVyX2FzeW5jX3dyaXRlKGJoKSkgew0KIAkJCQkJZ2V0X2JoKGJoKTsNCiAJCQkJ CWxpc3RfYWRkX3RhaWwoJmJoLT5iX2Fzc29jX2J1ZmZlcnMsDQogCQkJCQkJICAgICAgbGlzdHAp Ow0KQEAgLTE1NzYsNiArMTU3Nyw3IEBAIHN0YXRpYyB2b2lkIG5pbGZzX3NlZ2N0b3JfcHJlcGFy ZV93cml0ZShzdHJ1Y3QgbmlsZnNfc2NfaW5mbyAqc2NpKQ0KIA0KIAkJbGlzdF9mb3JfZWFjaF9l bnRyeShiaCwgJnNlZ2J1Zi0+c2Jfc2Vnc3VtX2J1ZmZlcnMsDQogCQkJCSAgICBiX2Fzc29jX2J1 ZmZlcnMpIHsNCisJCQlzZXRfYnVmZmVyX2FzeW5jX3dyaXRlKGJoKTsNCiAJCQlpZiAoYmgtPmJf cGFnZSAhPSBiZF9wYWdlKSB7DQogCQkJCWlmIChiZF9wYWdlKSB7DQogCQkJCQlsb2NrX3BhZ2Uo YmRfcGFnZSk7DQpAQCAtMTU4OSw2ICsxNTkxLDcgQEAgc3RhdGljIHZvaWQgbmlsZnNfc2VnY3Rv cl9wcmVwYXJlX3dyaXRlKHN0cnVjdCBuaWxmc19zY19pbmZvICpzY2kpDQogDQogCQlsaXN0X2Zv cl9lYWNoX2VudHJ5KGJoLCAmc2VnYnVmLT5zYl9wYXlsb2FkX2J1ZmZlcnMsDQogCQkJCSAgICBi X2Fzc29jX2J1ZmZlcnMpIHsNCisJCQlzZXRfYnVmZmVyX2FzeW5jX3dyaXRlKGJoKTsNCiAJCQlp ZiAoYmggPT0gc2VnYnVmLT5zYl9zdXBlcl9yb290KSB7DQogCQkJCWlmIChiaC0+Yl9wYWdlICE9 IGJkX3BhZ2UpIHsNCiAJCQkJCWxvY2tfcGFnZShiZF9wYWdlKTsNCkBAIC0xNjc0LDYgKzE2Nzcs NyBAQCBzdGF0aWMgdm9pZCBuaWxmc19hYm9ydF9sb2dzKHN0cnVjdCBsaXN0X2hlYWQgKmxvZ3Ms IGludCBlcnIpDQogCWxpc3RfZm9yX2VhY2hfZW50cnkoc2VnYnVmLCBsb2dzLCBzYl9saXN0KSB7 DQogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJoLCAmc2VnYnVmLT5zYl9zZWdzdW1fYnVmZmVycywN CiAJCQkJICAgIGJfYXNzb2NfYnVmZmVycykgew0KKwkJCWNsZWFyX2J1ZmZlcl9hc3luY193cml0 ZShiaCk7DQogCQkJaWYgKGJoLT5iX3BhZ2UgIT0gYmRfcGFnZSkgew0KIAkJCQlpZiAoYmRfcGFn ZSkNCiAJCQkJCWVuZF9wYWdlX3dyaXRlYmFjayhiZF9wYWdlKTsNCkBAIC0xNjgzLDYgKzE2ODcs NyBAQCBzdGF0aWMgdm9pZCBuaWxmc19hYm9ydF9sb2dzKHN0cnVjdCBsaXN0X2hlYWQgKmxvZ3Ms IGludCBlcnIpDQogDQogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJoLCAmc2VnYnVmLT5zYl9wYXls b2FkX2J1ZmZlcnMsDQogCQkJCSAgICBiX2Fzc29jX2J1ZmZlcnMpIHsNCisJCQljbGVhcl9idWZm ZXJfYXN5bmNfd3JpdGUoYmgpOw0KIAkJCWlmIChiaCA9PSBzZWdidWYtPnNiX3N1cGVyX3Jvb3Qp IHsNCiAJCQkJaWYgKGJoLT5iX3BhZ2UgIT0gYmRfcGFnZSkgew0KIAkJCQkJZW5kX3BhZ2Vfd3Jp dGViYWNrKGJkX3BhZ2UpOw0KQEAgLTE3NTIsNiArMTc1Nyw3IEBAIHN0YXRpYyB2b2lkIG5pbGZz X3NlZ2N0b3JfY29tcGxldGVfd3JpdGUoc3RydWN0IG5pbGZzX3NjX2luZm8gKnNjaSkNCiAJCQkJ ICAgIGJfYXNzb2NfYnVmZmVycykgew0KIAkJCXNldF9idWZmZXJfdXB0b2RhdGUoYmgpOw0KIAkJ CWNsZWFyX2J1ZmZlcl9kaXJ0eShiaCk7DQorCQkJY2xlYXJfYnVmZmVyX2FzeW5jX3dyaXRlKGJo KTsNCiAJCQlpZiAoYmgtPmJfcGFnZSAhPSBiZF9wYWdlKSB7DQogCQkJCWlmIChiZF9wYWdlKQ0K IAkJCQkJZW5kX3BhZ2Vfd3JpdGViYWNrKGJkX3BhZ2UpOw0KQEAgLTE3NzMsNiArMTc3OSw3IEBA IHN0YXRpYyB2b2lkIG5pbGZzX3NlZ2N0b3JfY29tcGxldGVfd3JpdGUoc3RydWN0IG5pbGZzX3Nj X2luZm8gKnNjaSkNCiAJCQkJICAgIGJfYXNzb2NfYnVmZmVycykgew0KIAkJCXNldF9idWZmZXJf dXB0b2RhdGUoYmgpOw0KIAkJCWNsZWFyX2J1ZmZlcl9kaXJ0eShiaCk7DQorCQkJY2xlYXJfYnVm ZmVyX2FzeW5jX3dyaXRlKGJoKTsNCiAJCQljbGVhcl9idWZmZXJfZGVsYXkoYmgpOw0KIAkJCWNs ZWFyX2J1ZmZlcl9uaWxmc192b2xhdGlsZShiaCk7DQogCQkJY2xlYXJfYnVmZmVyX25pbGZzX3Jl ZGlyZWN0ZWQoYmgpOw0KZGlmZiAtLWdpdCBhL2ZzL25vdGlmeS9mYW5vdGlmeS9mYW5vdGlmeS5j IGIvZnMvbm90aWZ5L2Zhbm90aWZ5L2Zhbm90aWZ5LmMNCmluZGV4IGE1MDYzNjAuLjBjMmY5MTIg MTAwNjQ0DQotLS0gYS9mcy9ub3RpZnkvZmFub3RpZnkvZmFub3RpZnkuYw0KKysrIGIvZnMvbm90 aWZ5L2Zhbm90aWZ5L2Zhbm90aWZ5LmMNCkBAIC0xOCw2ICsxOCwxMiBAQCBzdGF0aWMgYm9vbCBz aG91bGRfbWVyZ2Uoc3RydWN0IGZzbm90aWZ5X2V2ZW50ICpvbGQsIHN0cnVjdCBmc25vdGlmeV9l dmVudCAqbmV3KQ0KIAkgICAgb2xkLT50Z2lkID09IG5ldy0+dGdpZCkgew0KIAkJc3dpdGNoIChv bGQtPmRhdGFfdHlwZSkgew0KIAkJY2FzZSAoRlNOT1RJRllfRVZFTlRfUEFUSCk6DQorI2lmZGVm IENPTkZJR19GQU5PVElGWV9BQ0NFU1NfUEVSTUlTU0lPTlMNCisJCQkvKiBkb250IG1lcmdlIHR3 byBwZXJtaXNzaW9uIGV2ZW50cyAqLw0KKwkJCWlmICgob2xkLT5tYXNrICYgRkFOX0FMTF9QRVJN X0VWRU5UUykgJiYNCisJCQkgICAgKG5ldy0+bWFzayAmIEZBTl9BTExfUEVSTV9FVkVOVFMpKQ0K KwkJCQlyZXR1cm4gZmFsc2U7DQorI2VuZGlmDQogCQkJaWYgKChvbGQtPnBhdGgubW50ID09IG5l dy0+cGF0aC5tbnQpICYmDQogCQkJICAgIChvbGQtPnBhdGguZGVudHJ5ID09IG5ldy0+cGF0aC5k ZW50cnkpKQ0KIAkJCQlyZXR1cm4gdHJ1ZTsNCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9leHRlbnRf bWFwLmMgYi9mcy9vY2ZzMi9leHRlbnRfbWFwLmMNCmluZGV4IDdlYjFjMGMuLmNmMjI4NDcgMTAw NjQ0DQotLS0gYS9mcy9vY2ZzMi9leHRlbnRfbWFwLmMNCisrKyBiL2ZzL29jZnMyL2V4dGVudF9t YXAuYw0KQEAgLTc4Miw3ICs3ODIsNiBAQCBpbnQgb2NmczJfZmllbWFwKHN0cnVjdCBpbm9kZSAq aW5vZGUsIHN0cnVjdCBmaWVtYXBfZXh0ZW50X2luZm8gKmZpZWluZm8sDQogCWNwb3MgPSBtYXBf c3RhcnQgPj4gb3NiLT5zX2NsdXN0ZXJzaXplX2JpdHM7DQogCW1hcHBpbmdfZW5kID0gb2NmczJf Y2x1c3RlcnNfZm9yX2J5dGVzKGlub2RlLT5pX3NiLA0KIAkJCQkJICAgICAgIG1hcF9zdGFydCAr IG1hcF9sZW4pOw0KLQltYXBwaW5nX2VuZCAtPSBjcG9zOw0KIAlpc19sYXN0ID0gMDsNCiAJd2hp bGUgKGNwb3MgPCBtYXBwaW5nX2VuZCAmJiAhaXNfbGFzdCkgew0KIAkJdTMyIGZlX2ZsYWdzOw0K ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaGlkLmggYi9pbmNsdWRlL2xpbnV4L2hpZC5oDQpp bmRleCAzMzFlMmVmLi4xOWZlNzE5IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9oaWQuaA0K KysrIGIvaW5jbHVkZS9saW51eC9oaWQuaA0KQEAgLTQxNiwxMCArNDE2LDEyIEBAIHN0cnVjdCBo aWRfcmVwb3J0IHsNCiAJc3RydWN0IGhpZF9kZXZpY2UgKmRldmljZTsJCQkvKiBhc3NvY2lhdGVk IGRldmljZSAqLw0KIH07DQogDQorI2RlZmluZSBISURfTUFYX0lEUyAyNTYNCisNCiBzdHJ1Y3Qg aGlkX3JlcG9ydF9lbnVtIHsNCiAJdW5zaWduZWQgbnVtYmVyZWQ7DQogCXN0cnVjdCBsaXN0X2hl YWQgcmVwb3J0X2xpc3Q7DQotCXN0cnVjdCBoaWRfcmVwb3J0ICpyZXBvcnRfaWRfaGFzaFsyNTZd Ow0KKwlzdHJ1Y3QgaGlkX3JlcG9ydCAqcmVwb3J0X2lkX2hhc2hbSElEX01BWF9JRFNdOw0KIH07 DQogDQogI2RlZmluZSBISURfUkVQT1JUX1RZUEVTIDMNCkBAIC03MTYsNiArNzE4LDEwIEBAIHZv aWQgaGlkX291dHB1dF9yZXBvcnQoc3RydWN0IGhpZF9yZXBvcnQgKnJlcG9ydCwgX191OCAqZGF0 YSk7DQogc3RydWN0IGhpZF9kZXZpY2UgKmhpZF9hbGxvY2F0ZV9kZXZpY2Uodm9pZCk7DQogc3Ry dWN0IGhpZF9yZXBvcnQgKmhpZF9yZWdpc3Rlcl9yZXBvcnQoc3RydWN0IGhpZF9kZXZpY2UgKmRl dmljZSwgdW5zaWduZWQgdHlwZSwgdW5zaWduZWQgaWQpOw0KIGludCBoaWRfcGFyc2VfcmVwb3J0 KHN0cnVjdCBoaWRfZGV2aWNlICpoaWQsIF9fdTggKnN0YXJ0LCB1bnNpZ25lZCBzaXplKTsNCitz dHJ1Y3QgaGlkX3JlcG9ydCAqaGlkX3ZhbGlkYXRlX3ZhbHVlcyhzdHJ1Y3QgaGlkX2RldmljZSAq aGlkLA0KKwkJCQkgICAgICAgdW5zaWduZWQgaW50IHR5cGUsIHVuc2lnbmVkIGludCBpZCwNCisJ CQkJICAgICAgIHVuc2lnbmVkIGludCBmaWVsZF9pbmRleCwNCisJCQkJICAgICAgIHVuc2lnbmVk IGludCByZXBvcnRfY291bnRzKTsNCiBpbnQgaGlkX2NoZWNrX2tleXNfcHJlc3NlZChzdHJ1Y3Qg aGlkX2RldmljZSAqaGlkKTsNCiBpbnQgaGlkX2Nvbm5lY3Qoc3RydWN0IGhpZF9kZXZpY2UgKmhp ZCwgdW5zaWduZWQgaW50IGNvbm5lY3RfbWFzayk7DQogdm9pZCBoaWRfZGlzY29ubmVjdChzdHJ1 Y3QgaGlkX2RldmljZSAqaGlkKTsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2ljbXB2Ni5o IGIvaW5jbHVkZS9saW51eC9pY21wdjYuaA0KaW5kZXggYmE0NWU2Yi4uZjVhMjFkMCAxMDA2NDQN Ci0tLSBhL2luY2x1ZGUvbGludXgvaWNtcHY2LmgNCisrKyBiL2luY2x1ZGUvbGludXgvaWNtcHY2 LmgNCkBAIC0xMjMsNiArMTIzLDggQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgaWNtcDZoZHIgKmlj bXA2X2hkcihjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KICNkZWZpbmUgSUNNUFY2X05PVF9O RUlHSEJPVVIJCTINCiAjZGVmaW5lIElDTVBWNl9BRERSX1VOUkVBQ0gJCTMNCiAjZGVmaW5lIElD TVBWNl9QT1JUX1VOUkVBQ0gJCTQNCisjZGVmaW5lIElDTVBWNl9QT0xJQ1lfRkFJTAkJNQ0KKyNk ZWZpbmUgSUNNUFY2X1JFSkVDVF9ST1VURQkJNg0KIA0KIC8qDQogICoJQ29kZXMgZm9yIFRpbWUg RXhjZWVkZWQNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2lwdjYuaCBiL2luY2x1ZGUvbGlu dXgvaXB2Ni5oDQppbmRleCAwYzk5Nzc2Li44NGIxNDQ3IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9s aW51eC9pcHY2LmgNCisrKyBiL2luY2x1ZGUvbGludXgvaXB2Ni5oDQpAQCAtMjU1LDYgKzI1NSw3 IEBAIHN0cnVjdCBpbmV0Nl9za2JfcGFybSB7DQogI2RlZmluZSBJUDZTS0JfWEZSTV9UUkFOU0ZP Uk1FRAkxDQogI2RlZmluZSBJUDZTS0JfRk9SV0FSREVECTINCiAjZGVmaW5lIElQNlNLQl9SRVJP VVRFRAkJNA0KKyNkZWZpbmUgSVA2U0tCX0ZSQUdNRU5URUQgICAgICAxNg0KIH07DQogDQogI2Rl ZmluZSBJUDZDQihza2IpCSgoc3RydWN0IGluZXQ2X3NrYl9wYXJtKikoKHNrYiktPmNiKSkNCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tLmggYi9pbmNsdWRlL2xpbnV4L21tLmgNCmluZGV4 IGQwNDkzZjYuLjMwNWZkNzUgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L21tLmgNCisrKyBi L2luY2x1ZGUvbGludXgvbW0uaA0KQEAgLTg2NSw3ICs4NjUsOCBAQCBleHRlcm4gdm9pZCBwYWdl ZmF1bHRfb3V0X29mX21lbW9yeSh2b2lkKTsNCiAgKiBGbGFncyBwYXNzZWQgdG8gc2hvd19tZW0o KSBhbmQgc2hvd19mcmVlX2FyZWFzKCkgdG8gc3VwcHJlc3Mgb3V0cHV0IGluDQogICogdmFyaW91 cyBjb250ZXh0cy4NCiAgKi8NCi0jZGVmaW5lIFNIT1dfTUVNX0ZJTFRFUl9OT0RFUwkoMHgwMDAx dSkJLyogZmlsdGVyIGRpc2FsbG93ZWQgbm9kZXMgKi8NCisjZGVmaW5lIFNIT1dfTUVNX0ZJTFRF Ul9OT0RFUwkJKDB4MDAwMXUpCS8qIGRpc2FsbG93ZWQgbm9kZXMgKi8NCisjZGVmaW5lIFNIT1df TUVNX0ZJTFRFUl9QQUdFX0NPVU5UCSgweDAwMDJ1KQkvKiBwYWdlIHR5cGUgY291bnQgKi8NCiAN CiBleHRlcm4gdm9pZCBzaG93X2ZyZWVfYXJlYXModW5zaWduZWQgaW50IGZsYWdzKTsNCiBleHRl cm4gYm9vbCBza2lwX2ZyZWVfYXJlYXNfbm9kZSh1bnNpZ25lZCBpbnQgZmxhZ3MsIGludCBuaWQp Ow0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGVyZl9ldmVudC5oIGIvaW5jbHVkZS9saW51 eC9wZXJmX2V2ZW50LmgNCmluZGV4IDNjZmNmZWEuLmVlYjZhMjkgMTAwNjQ0DQotLS0gYS9pbmNs dWRlL2xpbnV4L3BlcmZfZXZlbnQuaA0KKysrIGIvaW5jbHVkZS9saW51eC9wZXJmX2V2ZW50LmgN CkBAIC05MjcsNyArOTI3LDcgQEAgc3RydWN0IHBlcmZfY3B1X2NvbnRleHQgew0KIAlpbnQJCQkJ ZXhjbHVzaXZlOw0KIAlzdHJ1Y3QgbGlzdF9oZWFkCQlyb3RhdGlvbl9saXN0Ow0KIAlpbnQJCQkJ amlmZmllc19pbnRlcnZhbDsNCi0Jc3RydWN0IHBtdQkJCSphY3RpdmVfcG11Ow0KKwlzdHJ1Y3Qg cG11CQkJKnVuaXF1ZV9wbXU7DQogCXN0cnVjdCBwZXJmX2Nncm91cAkJKmNncnA7DQogfTsNCiAN CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCBiL2luY2x1ZGUvbGludXgvcmN1 bGlzdC5oDQppbmRleCA2Zjk1ZTI0Li4zODYzMzUyIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51 eC9yY3VsaXN0LmgNCisrKyBiL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oDQpAQCAtMjU0LDggKzI1 NCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBsaXN0X3NwbGljZV9pbml0X3JjdShzdHJ1Y3QgbGlz dF9oZWFkICpsaXN0LA0KICAqLw0KICNkZWZpbmUgbGlzdF9maXJzdF9vcl9udWxsX3JjdShwdHIs IHR5cGUsIG1lbWJlcikgXA0KIAkoe3N0cnVjdCBsaXN0X2hlYWQgKl9fcHRyID0gKHB0cik7IFwN Ci0JICBzdHJ1Y3QgbGlzdF9oZWFkIF9fcmN1ICpfX25leHQgPSBsaXN0X25leHRfcmN1KF9fcHRy KTsgXA0KLQkgIGxpa2VseShfX3B0ciAhPSBfX25leHQpID8gY29udGFpbmVyX29mKF9fbmV4dCwg dHlwZSwgbWVtYmVyKSA6IE5VTEw7IFwNCisJICBzdHJ1Y3QgbGlzdF9oZWFkICpfX25leHQgPSBB Q0NFU1NfT05DRShfX3B0ci0+bmV4dCk7IFwNCisJICBsaWtlbHkoX19wdHIgIT0gX19uZXh0KSA/ IFwNCisJCWxpc3RfZW50cnlfcmN1KF9fbmV4dCwgdHlwZSwgbWVtYmVyKSA6IE5VTEw7IFwNCiAJ fSkNCiANCiAvKioNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3VzYi9oY2QuaCBiL2luY2x1 ZGUvbGludXgvdXNiL2hjZC5oDQppbmRleCAwMzM1NGQ1Li4wZGFhNDZiIDEwMDY0NA0KLS0tIGEv aW5jbHVkZS9saW51eC91c2IvaGNkLmgNCisrKyBiL2luY2x1ZGUvbGludXgvdXNiL2hjZC5oDQpA QCAtMzk1LDcgKzM5NSw3IEBAIGV4dGVybiBpbnQgdXNiX2hjZF9wY2lfcHJvYmUoc3RydWN0IHBj aV9kZXYgKmRldiwNCiBleHRlcm4gdm9pZCB1c2JfaGNkX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9k ZXYgKmRldik7DQogZXh0ZXJuIHZvaWQgdXNiX2hjZF9wY2lfc2h1dGRvd24oc3RydWN0IHBjaV9k ZXYgKmRldik7DQogDQotI2lmZGVmIENPTkZJR19QTV9TTEVFUA0KKyNpZmRlZiBDT05GSUdfUE0N CiBleHRlcm4gY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgdXNiX2hjZF9wY2lfcG1fb3BzOw0KICNl bmRpZg0KICNlbmRpZiAvKiBDT05GSUdfUENJICovDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQv aW5ldHBlZXIuaCBiL2luY2x1ZGUvbmV0L2luZXRwZWVyLmgNCmluZGV4IGU5ZmYzZmMuLjM0YjA2 ZGEgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL25ldC9pbmV0cGVlci5oDQorKysgYi9pbmNsdWRlL25l dC9pbmV0cGVlci5oDQpAQCAtNDEsNiArNDEsMTAgQEAgc3RydWN0IGluZXRfcGVlciB7DQogCXUz MgkJCXBtdHVfb3JpZzsNCiAJdTMyCQkJcG10dV9sZWFybmVkOw0KIAlzdHJ1Y3QgaW5ldHBlZXJf YWRkcl9iYXNlIHJlZGlyZWN0X2xlYXJuZWQ7DQorCXVuaW9uIHsNCisJCXN0cnVjdCBsaXN0X2hl YWQJZ2NfbGlzdDsNCisJCXN0cnVjdCByY3VfaGVhZCAgICAgZ2NfcmN1Ow0KKwl9Ow0KIAkvKg0K IAkgKiBPbmNlIGluZXRfcGVlciBpcyBxdWV1ZWQgZm9yIGRlbGV0aW9uIChyZWZjbnQgPT0gLTEp LCBmb2xsb3dpbmcgZmllbGRzDQogCSAqIGFyZSBub3QgYXZhaWxhYmxlOiByaWQsIGlwX2lkX2Nv dW50LCB0Y3BfdHMsIHRjcF90c19zdGFtcA0KQEAgLTk2LDYgKzEwMCw4IEBAIHN0YXRpYyBpbmxp bmUgc3RydWN0IGluZXRfcGVlciAqaW5ldF9nZXRwZWVyX3Y2KGNvbnN0IHN0cnVjdCBpbjZfYWRk ciAqdjZkYWRkciwNCiBleHRlcm4gdm9pZCBpbmV0X3B1dHBlZXIoc3RydWN0IGluZXRfcGVlciAq cCk7DQogZXh0ZXJuIGJvb2wgaW5ldF9wZWVyX3hybGltX2FsbG93KHN0cnVjdCBpbmV0X3BlZXIg KnBlZXIsIGludCB0aW1lb3V0KTsNCiANCitleHRlcm4gdm9pZCBpbmV0cGVlcl9pbnZhbGlkYXRl X3RyZWUoaW50IGZhbWlseSk7DQorDQogLyoNCiAgKiB0ZW1wb3JhcnkgY2hlY2sgdG8gbWFrZSBz dXJlIHdlIGRvbnQgYWNjZXNzIHJpZCwgaXBfaWRfY291bnQsIHRjcF90cywNCiAgKiB0Y3BfdHNf c3RhbXAgaWYgbm8gcmVmY291bnQgaXMgdGFrZW4gb24gaW5ldF9wZWVyDQpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9uZXQvaXAuaCBiL2luY2x1ZGUvbmV0L2lwLmgNCmluZGV4IGVjYTBlZjcuLjA2YWVk NzIgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL25ldC9pcC5oDQorKysgYi9pbmNsdWRlL25ldC9pcC5o DQpAQCAtMjY2LDkgKzI2NiwxMSBAQCBpbnQgaXBfZG9udF9mcmFnbWVudChzdHJ1Y3Qgc29jayAq c2ssIHN0cnVjdCBkc3RfZW50cnkgKmRzdCkNCiANCiBleHRlcm4gdm9pZCBfX2lwX3NlbGVjdF9p ZGVudChzdHJ1Y3QgaXBoZHIgKmlwaCwgc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBpbnQgbW9yZSk7 DQogDQotc3RhdGljIGlubGluZSB2b2lkIGlwX3NlbGVjdF9pZGVudChzdHJ1Y3QgaXBoZHIgKmlw aCwgc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29jayAqc2spDQorc3RhdGljIGlubGlu ZSB2b2lkIGlwX3NlbGVjdF9pZGVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZHN0X2Vu dHJ5ICpkc3QsIHN0cnVjdCBzb2NrICpzaykNCiB7DQotCWlmIChpcGgtPmZyYWdfb2ZmICYgaHRv bnMoSVBfREYpKSB7DQorCXN0cnVjdCBpcGhkciAqaXBoID0gaXBfaGRyKHNrYik7DQorDQorCWlm ICgoaXBoLT5mcmFnX29mZiAmIGh0b25zKElQX0RGKSkgJiYgIXNrYi0+bG9jYWxfZGYpIHsNCiAJ CS8qIFRoaXMgaXMgb25seSB0byB3b3JrIGFyb3VuZCBidWdneSBXaW5kb3dzOTUvMjAwMA0KIAkJ ICogVkogY29tcHJlc3Npb24gaW1wbGVtZW50YXRpb25zLiAgSWYgdGhlIElEIGZpZWxkDQogCQkg KiBkb2VzIG5vdCBjaGFuZ2UsIHRoZXkgZHJvcCBldmVyeSBvdGhlciBwYWNrZXQgaW4NCkBAIC0y ODAsOSArMjgyLDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpcF9zZWxlY3RfaWRlbnQoc3RydWN0 IGlwaGRyICppcGgsIHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgc3RyDQogCQlfX2lwX3NlbGVjdF9p ZGVudChpcGgsIGRzdCwgMCk7DQogfQ0KIA0KLXN0YXRpYyBpbmxpbmUgdm9pZCBpcF9zZWxlY3Rf aWRlbnRfbW9yZShzdHJ1Y3QgaXBoZHIgKmlwaCwgc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1 Y3Qgc29jayAqc2ssIGludCBtb3JlKQ0KK3N0YXRpYyBpbmxpbmUgdm9pZCBpcF9zZWxlY3RfaWRl bnRfbW9yZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHN0cnVj dCBzb2NrICpzaywgaW50IG1vcmUpDQogew0KLQlpZiAoaXBoLT5mcmFnX29mZiAmIGh0b25zKElQ X0RGKSkgew0KKwlzdHJ1Y3QgaXBoZHIgKmlwaCA9IGlwX2hkcihza2IpOw0KKw0KKwlpZiAoKGlw aC0+ZnJhZ19vZmYgJiBodG9ucyhJUF9ERikpICYmICFza2ItPmxvY2FsX2RmKSB7DQogCQlpZiAo c2sgJiYgaW5ldF9zayhzayktPmluZXRfZGFkZHIpIHsNCiAJCQlpcGgtPmlkID0gaHRvbnMoaW5l dF9zayhzayktPmluZXRfaWQpOw0KIAkJCWluZXRfc2soc2spLT5pbmV0X2lkICs9IDEgKyBtb3Jl Ow0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lwaXAuaCBiL2luY2x1ZGUvbmV0L2lwaXAuaA0K aW5kZXggYTMyNjU0ZC4uNGRjY2ZlMyAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbmV0L2lwaXAuaA0K KysrIGIvaW5jbHVkZS9uZXQvaXBpcC5oDQpAQCAtNTAsNyArNTAsNyBAQCBzdHJ1Y3QgaXBfdHVu bmVsX3BybF9lbnRyeSB7DQogCWludCBwa3RfbGVuID0gc2tiLT5sZW4gLSBza2JfdHJhbnNwb3J0 X29mZnNldChza2IpOwkJXA0KIAkJCQkJCQkJCVwNCiAJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NV TV9OT05FOwkJCQkJXA0KLQlpcF9zZWxlY3RfaWRlbnQoaXBoLCAmcnQtPmRzdCwgTlVMTCk7CQkJ CVwNCisJaXBfc2VsZWN0X2lkZW50KHNrYiwgJnJ0LT5kc3QsIE5VTEwpOwkJCQlcDQogCQkJCQkJ CQkJXA0KIAllcnIgPSBpcF9sb2NhbF9vdXQoc2tiKTsJCQkJCVwNCiAJaWYgKGxpa2VseShuZXRf eG1pdF9ldmFsKGVycikgPT0gMCkpIHsJCQkJXA0KZGlmZiAtLWdpdCBhL2tlcm5lbC9jZ3JvdXAu YyBiL2tlcm5lbC9jZ3JvdXAuYw0KaW5kZXggZDJhMDFmZS4uMmExZmZiNyAxMDA2NDQNCi0tLSBh L2tlcm5lbC9jZ3JvdXAuYw0KKysrIGIva2VybmVsL2Nncm91cC5jDQpAQCAtMzUwNCw2ICszNTA0 LDcgQEAgc3RhdGljIGludCBjZ3JvdXBfd3JpdGVfZXZlbnRfY29udHJvbChzdHJ1Y3QgY2dyb3Vw ICpjZ3JwLCBzdHJ1Y3QgY2Z0eXBlICpjZnQsDQogCQkJCSAgICAgIGNvbnN0IGNoYXIgKmJ1ZmZl cikNCiB7DQogCXN0cnVjdCBjZ3JvdXBfZXZlbnQgKmV2ZW50ID0gTlVMTDsNCisJc3RydWN0IGNn cm91cCAqY2dycF9jZmlsZTsNCiAJdW5zaWduZWQgaW50IGVmZCwgY2ZkOw0KIAlzdHJ1Y3QgZmls ZSAqZWZpbGUgPSBOVUxMOw0KIAlzdHJ1Y3QgZmlsZSAqY2ZpbGUgPSBOVUxMOw0KQEAgLTM1NTks NiArMzU2MCwxNiBAQCBzdGF0aWMgaW50IGNncm91cF93cml0ZV9ldmVudF9jb250cm9sKHN0cnVj dCBjZ3JvdXAgKmNncnAsIHN0cnVjdCBjZnR5cGUgKmNmdCwNCiAJCWdvdG8gZmFpbDsNCiAJfQ0K IA0KKwkvKg0KKwkgKiBUaGUgZmlsZSB0byBiZSBtb25pdG9yZWQgbXVzdCBiZSBpbiB0aGUgc2Ft ZSBjZ3JvdXAgYXMNCisJICogY2dyb3VwLmV2ZW50X2NvbnRyb2wgaXMuDQorCSAqLw0KKwljZ3Jw X2NmaWxlID0gX19kX2NncnAoY2ZpbGUtPmZfZGVudHJ5LT5kX3BhcmVudCk7DQorCWlmIChjZ3Jw X2NmaWxlICE9IGNncnApIHsNCisJCXJldCA9IC1FSU5WQUw7DQorCQlnb3RvIGZhaWw7DQorCX0N CisNCiAJaWYgKCFldmVudC0+Y2Z0LT5yZWdpc3Rlcl9ldmVudCB8fCAhZXZlbnQtPmNmdC0+dW5y ZWdpc3Rlcl9ldmVudCkgew0KIAkJcmV0ID0gLUVJTlZBTDsNCiAJCWdvdG8gZmFpbDsNCmRpZmYg LS1naXQgYS9rZXJuZWwvZXZlbnRzL2NvcmUuYyBiL2tlcm5lbC9ldmVudHMvY29yZS5jDQppbmRl eCA1YmJlNDQzLi44M2Q1NjIxIDEwMDY0NA0KLS0tIGEva2VybmVsL2V2ZW50cy9jb3JlLmMNCisr KyBiL2tlcm5lbC9ldmVudHMvY29yZS5jDQpAQCAtMjQyLDkgKzI0Miw5IEBAIHBlcmZfY2dyb3Vw X21hdGNoKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkNCiAJcmV0dXJuICFldmVudC0+Y2dycCB8 fCBldmVudC0+Y2dycCA9PSBjcHVjdHgtPmNncnA7DQogfQ0KIA0KLXN0YXRpYyBpbmxpbmUgdm9p ZCBwZXJmX2dldF9jZ3JvdXAoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQ0KK3N0YXRpYyBpbmxp bmUgYm9vbCBwZXJmX3RyeWdldF9jZ3JvdXAoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQ0KIHsN Ci0JY3NzX2dldCgmZXZlbnQtPmNncnAtPmNzcyk7DQorCXJldHVybiBjc3NfdHJ5Z2V0KCZldmVu dC0+Y2dycC0+Y3NzKTsNCiB9DQogDQogc3RhdGljIGlubGluZSB2b2lkIHBlcmZfcHV0X2Nncm91 cChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpDQpAQCAtMzYwLDYgKzM2MCw4IEBAIHZvaWQgcGVy Zl9jZ3JvdXBfc3dpdGNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgaW50IG1vZGUpDQogDQog CWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHBtdSwgJnBtdXMsIGVudHJ5KSB7DQogCQljcHVjdHgg PSB0aGlzX2NwdV9wdHIocG11LT5wbXVfY3B1X2NvbnRleHQpOw0KKwkJaWYgKGNwdWN0eC0+dW5p cXVlX3BtdSAhPSBwbXUpDQorCQkJY29udGludWU7IC8qIGVuc3VyZSB3ZSBwcm9jZXNzIGVhY2gg Y3B1Y3R4IG9uY2UgKi8NCiANCiAJCS8qDQogCQkgKiBwZXJmX2Nncm91cF9ldmVudHMgc2F5cyBh dCBsZWFzdCBvbmUNCkBAIC0zODMsOSArMzg1LDEwIEBAIHZvaWQgcGVyZl9jZ3JvdXBfc3dpdGNo KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgaW50IG1vZGUpDQogDQogCQkJaWYgKG1vZGUgJiBQ RVJGX0NHUk9VUF9TV0lOKSB7DQogCQkJCVdBUk5fT05fT05DRShjcHVjdHgtPmNncnApOw0KLQkJ CQkvKiBzZXQgY2dycCBiZWZvcmUgY3R4c3cgaW4gdG8NCi0JCQkJICogYWxsb3cgZXZlbnRfZmls dGVyX21hdGNoKCkgdG8gbm90DQotCQkJCSAqIGhhdmUgdG8gcGFzcyB0YXNrIGFyb3VuZA0KKwkJ CQkvKg0KKwkJCQkgKiBzZXQgY2dycCBiZWZvcmUgY3R4c3cgaW4gdG8gYWxsb3cNCisJCQkJICog ZXZlbnRfZmlsdGVyX21hdGNoKCkgdG8gbm90IGhhdmUgdG8gcGFzcw0KKwkJCQkgKiB0YXNrIGFy b3VuZA0KIAkJCQkgKi8NCiAJCQkJY3B1Y3R4LT5jZ3JwID0gcGVyZl9jZ3JvdXBfZnJvbV90YXNr KHRhc2spOw0KIAkJCQljcHVfY3R4X3NjaGVkX2luKGNwdWN0eCwgRVZFTlRfQUxMLCB0YXNrKTsN CkBAIC00NzMsNyArNDc2LDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IHBlcmZfY2dyb3VwX2Nvbm5l Y3QoaW50IGZkLCBzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQsDQogCWV2ZW50LT5jZ3JwID0gY2dy cDsNCiANCiAJLyogbXVzdCBiZSBkb25lIGJlZm9yZSB3ZSBmcHV0KCkgdGhlIGZpbGUgKi8NCi0J cGVyZl9nZXRfY2dyb3VwKGV2ZW50KTsNCisJaWYgKCFwZXJmX3RyeWdldF9jZ3JvdXAoZXZlbnQp KSB7DQorCQlldmVudC0+Y2dycCA9IE5VTEw7DQorCQlyZXQgPSAtRU5PRU5UOw0KKwkJZ290byBv dXQ7DQorCX0NCiANCiAJLyoNCiAJICogYWxsIGV2ZW50cyBpbiBhIGdyb3VwIG11c3QgbW9uaXRv cg0KQEAgLTQzNzcsNyArNDM4NCw3IEBAIHN0YXRpYyB2b2lkIHBlcmZfZXZlbnRfdGFza19ldmVu dChzdHJ1Y3QgcGVyZl90YXNrX2V2ZW50ICp0YXNrX2V2ZW50KQ0KIAlyY3VfcmVhZF9sb2NrKCk7 DQogCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHBtdSwgJnBtdXMsIGVudHJ5KSB7DQogCQljcHVj dHggPSBnZXRfY3B1X3B0cihwbXUtPnBtdV9jcHVfY29udGV4dCk7DQotCQlpZiAoY3B1Y3R4LT5h Y3RpdmVfcG11ICE9IHBtdSkNCisJCWlmIChjcHVjdHgtPnVuaXF1ZV9wbXUgIT0gcG11KQ0KIAkJ CWdvdG8gbmV4dDsNCiAJCXBlcmZfZXZlbnRfdGFza19jdHgoJmNwdWN0eC0+Y3R4LCB0YXNrX2V2 ZW50KTsNCiANCkBAIC00NTIzLDcgKzQ1MzAsNyBAQCBzdGF0aWMgdm9pZCBwZXJmX2V2ZW50X2Nv bW1fZXZlbnQoc3RydWN0IHBlcmZfY29tbV9ldmVudCAqY29tbV9ldmVudCkNCiAJcmN1X3JlYWRf bG9jaygpOw0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShwbXUsICZwbXVzLCBlbnRyeSkgew0K IAkJY3B1Y3R4ID0gZ2V0X2NwdV9wdHIocG11LT5wbXVfY3B1X2NvbnRleHQpOw0KLQkJaWYgKGNw dWN0eC0+YWN0aXZlX3BtdSAhPSBwbXUpDQorCQlpZiAoY3B1Y3R4LT51bmlxdWVfcG11ICE9IHBt dSkNCiAJCQlnb3RvIG5leHQ7DQogCQlwZXJmX2V2ZW50X2NvbW1fY3R4KCZjcHVjdHgtPmN0eCwg Y29tbV9ldmVudCk7DQogDQpAQCAtNDcxOSw3ICs0NzI2LDcgQEAgZ290X25hbWU6DQogCXJjdV9y ZWFkX2xvY2soKTsNCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UocG11LCAmcG11cywgZW50cnkp IHsNCiAJCWNwdWN0eCA9IGdldF9jcHVfcHRyKHBtdS0+cG11X2NwdV9jb250ZXh0KTsNCi0JCWlm IChjcHVjdHgtPmFjdGl2ZV9wbXUgIT0gcG11KQ0KKwkJaWYgKGNwdWN0eC0+dW5pcXVlX3BtdSAh PSBwbXUpDQogCQkJZ290byBuZXh0Ow0KIAkJcGVyZl9ldmVudF9tbWFwX2N0eCgmY3B1Y3R4LT5j dHgsIG1tYXBfZXZlbnQsDQogCQkJCQl2bWEtPnZtX2ZsYWdzICYgVk1fRVhFQyk7DQpAQCAtNTc0 MSw4ICs1NzQ4LDggQEAgc3RhdGljIHZvaWQgdXBkYXRlX3BtdV9jb250ZXh0KHN0cnVjdCBwbXUg KnBtdSwgc3RydWN0IHBtdSAqb2xkX3BtdSkNCiANCiAJCWNwdWN0eCA9IHBlcl9jcHVfcHRyKHBt dS0+cG11X2NwdV9jb250ZXh0LCBjcHUpOw0KIA0KLQkJaWYgKGNwdWN0eC0+YWN0aXZlX3BtdSA9 PSBvbGRfcG11KQ0KLQkJCWNwdWN0eC0+YWN0aXZlX3BtdSA9IHBtdTsNCisJCWlmIChjcHVjdHgt PnVuaXF1ZV9wbXUgPT0gb2xkX3BtdSkNCisJCQljcHVjdHgtPnVuaXF1ZV9wbXUgPSBwbXU7DQog CX0NCiB9DQogDQpAQCAtNTg3Nyw3ICs1ODg0LDcgQEAgc2tpcF90eXBlOg0KIAkJY3B1Y3R4LT5j dHgucG11ID0gcG11Ow0KIAkJY3B1Y3R4LT5qaWZmaWVzX2ludGVydmFsID0gMTsNCiAJCUlOSVRf TElTVF9IRUFEKCZjcHVjdHgtPnJvdGF0aW9uX2xpc3QpOw0KLQkJY3B1Y3R4LT5hY3RpdmVfcG11 ID0gcG11Ow0KKwkJY3B1Y3R4LT51bmlxdWVfcG11ID0gcG11Ow0KIAl9DQogDQogZ290X2NwdV9j b250ZXh0Og0KZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZF9mYWlyLmMgYi9rZXJuZWwvc2NoZWRf ZmFpci5jDQppbmRleCA1OTQ3NGM1Li5jMjYxZGE3IDEwMDY0NA0KLS0tIGEva2VybmVsL3NjaGVk X2ZhaXIuYw0KKysrIGIva2VybmVsL3NjaGVkX2ZhaXIuYw0KQEAgLTQ4OTAsMTEgKzQ4OTAsMTUg QEAgc3RhdGljIHZvaWQgdGFza19mb3JrX2ZhaXIoc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KIA0K IAl1cGRhdGVfcnFfY2xvY2socnEpOw0KIA0KLQlpZiAodW5saWtlbHkodGFza19jcHUocCkgIT0g dGhpc19jcHUpKSB7DQotCQlyY3VfcmVhZF9sb2NrKCk7DQotCQlfX3NldF90YXNrX2NwdShwLCB0 aGlzX2NwdSk7DQotCQlyY3VfcmVhZF91bmxvY2soKTsNCi0JfQ0KKwkvKg0KKwkgKiBOb3Qgb25s eSB0aGUgY3B1IGJ1dCBhbHNvIHRoZSB0YXNrX2dyb3VwIG9mIHRoZSBwYXJlbnQgbWlnaHQgaGF2 ZQ0KKwkgKiBiZWVuIGNoYW5nZWQgYWZ0ZXIgcGFyZW50LT5zZS5wYXJlbnQsY2ZzX3JxIHdlcmUg Y29waWVkIHRvDQorCSAqIGNoaWxkLT5zZS5wYXJlbnQsY2ZzX3JxLiBTbyBjYWxsIF9fc2V0X3Rh c2tfY3B1KCkgdG8gbWFrZSB0aG9zZQ0KKwkgKiBvZiBjaGlsZCBwb2ludCB0byB2YWxpZCBvbmVz Lg0KKwkgKi8NCisJcmN1X3JlYWRfbG9jaygpOw0KKwlfX3NldF90YXNrX2NwdShwLCB0aGlzX2Nw dSk7DQorCXJjdV9yZWFkX3VubG9jaygpOw0KIA0KIAl1cGRhdGVfY3VycihjZnNfcnEpOw0KIA0K ZGlmZiAtLWdpdCBhL2xpYi9zaG93X21lbS5jIGIvbGliL3Nob3dfbWVtLmMNCmluZGV4IDQ0MDdm OGMuLmI3YzcyMzEgMTAwNjQ0DQotLS0gYS9saWIvc2hvd19tZW0uYw0KKysrIGIvbGliL3Nob3df bWVtLmMNCkBAIC0xOCw2ICsxOCw5IEBAIHZvaWQgc2hvd19tZW0odW5zaWduZWQgaW50IGZpbHRl cikNCiAJcHJpbnRrKCJNZW0tSW5mbzpcbiIpOw0KIAlzaG93X2ZyZWVfYXJlYXMoZmlsdGVyKTsN CiANCisJaWYgKGZpbHRlciAmIFNIT1dfTUVNX0ZJTFRFUl9QQUdFX0NPVU5UKQ0KKwkJcmV0dXJu Ow0KKw0KIAlmb3JfZWFjaF9vbmxpbmVfcGdkYXQocGdkYXQpIHsNCiAJCXVuc2lnbmVkIGxvbmcg aSwgZmxhZ3M7DQogDQpkaWZmIC0tZ2l0IGEvbW0vaHVnZV9tZW1vcnkuYyBiL21tL2h1Z2VfbWVt b3J5LmMNCmluZGV4IGQ4MGFjNGIuLmVkMGVkOGEgMTAwNjQ0DQotLS0gYS9tbS9odWdlX21lbW9y eS5jDQorKysgYi9tbS9odWdlX21lbW9yeS5jDQpAQCAtMTg4Miw2ICsxODgyLDggQEAgc3RhdGlj IHZvaWQgY29sbGFwc2VfaHVnZV9wYWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLA0KIAkJZ290byBv dXQ7DQogDQogCXZtYSA9IGZpbmRfdm1hKG1tLCBhZGRyZXNzKTsNCisJaWYgKCF2bWEpDQorCQln b3RvIG91dDsNCiAJaHN0YXJ0ID0gKHZtYS0+dm1fc3RhcnQgKyB+SFBBR0VfUE1EX01BU0spICYg SFBBR0VfUE1EX01BU0s7DQogCWhlbmQgPSB2bWEtPnZtX2VuZCAmIEhQQUdFX1BNRF9NQVNLOw0K IAlpZiAoYWRkcmVzcyA8IGhzdGFydCB8fCBhZGRyZXNzICsgSFBBR0VfUE1EX1NJWkUgPiBoZW5k KQ0KZGlmZiAtLWdpdCBhL21tL21lbWNvbnRyb2wuYyBiL21tL21lbWNvbnRyb2wuYw0KaW5kZXgg ZDAyN2EyNC4uMjA0ZGU2YSAxMDA2NDQNCi0tLSBhL21tL21lbWNvbnRyb2wuYw0KKysrIGIvbW0v bWVtY29udHJvbC5jDQpAQCAtNDM4NSw3ICs0Mzg1LDEzIEBAIHN0YXRpYyBpbnQgY29tcGFyZV90 aHJlc2hvbGRzKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpDQogCWNvbnN0IHN0cnVjdCBt ZW1fY2dyb3VwX3RocmVzaG9sZCAqX2EgPSBhOw0KIAljb25zdCBzdHJ1Y3QgbWVtX2Nncm91cF90 aHJlc2hvbGQgKl9iID0gYjsNCiANCi0JcmV0dXJuIF9hLT50aHJlc2hvbGQgLSBfYi0+dGhyZXNo b2xkOw0KKwlpZiAoX2EtPnRocmVzaG9sZCA+IF9iLT50aHJlc2hvbGQpDQorCQlyZXR1cm4gMTsN CisNCisJaWYgKF9hLT50aHJlc2hvbGQgPCBfYi0+dGhyZXNob2xkKQ0KKwkJcmV0dXJuIC0xOw0K Kw0KKwlyZXR1cm4gMDsNCiB9DQogDQogc3RhdGljIGludCBtZW1fY2dyb3VwX29vbV9ub3RpZnlf Y2Ioc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnKQ0KZGlmZiAtLWdpdCBhL21tL3BhZ2VfYWxsb2Mu YyBiL21tL3BhZ2VfYWxsb2MuYw0KaW5kZXggYjVhZmVhMi4uZDg3NjJiMiAxMDA2NDQNCi0tLSBh L21tL3BhZ2VfYWxsb2MuYw0KKysrIGIvbW0vcGFnZV9hbGxvYy5jDQpAQCAtMTc2MCw2ICsxNzYw LDEzIEBAIHZvaWQgd2Fybl9hbGxvY19mYWlsZWQoZ2ZwX3QgZ2ZwX21hc2ssIGludCBvcmRlciwg Y29uc3QgY2hhciAqZm10LCAuLi4pDQogCQlyZXR1cm47DQogDQogCS8qDQorCSAqIFdhbGtpbmcg YWxsIG1lbW9yeSB0byBjb3VudCBwYWdlIHR5cGVzIGlzIHZlcnkgZXhwZW5zaXZlIGFuZCBzaG91 bGQNCisJICogYmUgaW5oaWJpdGVkIGluIG5vbi1ibG9ja2FibGUgY29udGV4dHMuDQorCSAqLw0K KwlpZiAoIShnZnBfbWFzayAmIF9fR0ZQX1dBSVQpKQ0KKwkJZmlsdGVyIHw9IFNIT1dfTUVNX0ZJ TFRFUl9QQUdFX0NPVU5UOw0KKw0KKwkvKg0KIAkgKiBUaGlzIGRvY3VtZW50cyBleGNlcHRpb25z IGdpdmVuIHRvIGFsbG9jYXRpb25zIGluIGNlcnRhaW4NCiAJICogY29udGV4dHMgdGhhdCBhcmUg YWxsb3dlZCB0byBhbGxvY2F0ZSBvdXRzaWRlIGN1cnJlbnQncyBzZXQNCiAJICogb2YgYWxsb3dl ZCBub2Rlcy4NCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jIGIvbmV0L2Jy aWRnZS9icl9tdWx0aWNhc3QuYw0KaW5kZXggYjgxNTAwYy4uYTA2ZGVjYSAxMDA2NDQNCi0tLSBh L25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMNCisrKyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0 LmMNCkBAIC0xMTU1LDcgKzExNTUsOCBAQCBzdGF0aWMgaW50IGJyX2lwNl9tdWx0aWNhc3RfcXVl cnkoc3RydWN0IG5ldF9icmlkZ2UgKmJyLA0KIAkJbWxkMnEgPSAoc3RydWN0IG1sZDJfcXVlcnkg KilpY21wNl9oZHIoc2tiKTsNCiAJCWlmICghbWxkMnEtPm1sZDJxX25zcmNzKQ0KIAkJCWdyb3Vw ID0gJm1sZDJxLT5tbGQycV9tY2E7DQotCQltYXhfZGVsYXkgPSBtbGQycS0+bWxkMnFfbXJjID8g TUxEVjJfTVJDKG1sZDJxLT5tbGQycV9tcmMpIDogMTsNCisNCisJCW1heF9kZWxheSA9IG1heCht c2Vjc190b19qaWZmaWVzKE1MRFYyX01SQyhudG9ocyhtbGQycS0+bWxkMnFfbXJjKSkpLCAxVUwp Ow0KIAl9DQogDQogCWlmICghZ3JvdXApDQpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9zdHAu YyBiL25ldC9icmlkZ2UvYnJfc3RwLmMNCmluZGV4IGRkMTQ3ZDcuLjhhYzk0NmYgMTAwNjQ0DQot LS0gYS9uZXQvYnJpZGdlL2JyX3N0cC5jDQorKysgYi9uZXQvYnJpZGdlL2JyX3N0cC5jDQpAQCAt MTg5LDcgKzE4OSw3IEBAIHN0YXRpYyB2b2lkIGJyX3JlY29yZF9jb25maWdfaW5mb3JtYXRpb24o c3RydWN0IG5ldF9icmlkZ2VfcG9ydCAqcCwNCiAJcC0+ZGVzaWduYXRlZF9hZ2UgPSBqaWZmaWVz ICsgYnBkdS0+bWVzc2FnZV9hZ2U7DQogDQogCW1vZF90aW1lcigmcC0+bWVzc2FnZV9hZ2VfdGlt ZXIsIGppZmZpZXMNCi0JCSAgKyAocC0+YnItPm1heF9hZ2UgLSBicGR1LT5tZXNzYWdlX2FnZSkp Ow0KKwkJICArIChicGR1LT5tYXhfYWdlIC0gYnBkdS0+bWVzc2FnZV9hZ2UpKTsNCiB9DQogDQog LyogY2FsbGVkIHVuZGVyIGJyaWRnZSBsb2NrICovDQpkaWZmIC0tZ2l0IGEvbmV0L2NhaWYvY2Zj dHJsLmMgYi9uZXQvY2FpZi9jZmN0cmwuYw0KaW5kZXggNWNmNTIyMi4uODRlZmJlNCAxMDA2NDQN Ci0tLSBhL25ldC9jYWlmL2NmY3RybC5jDQorKysgYi9uZXQvY2FpZi9jZmN0cmwuYw0KQEAgLTI4 OCw5ICsyODgsMTAgQEAgaW50IGNmY3RybF9saW5rdXBfcmVxdWVzdChzdHJ1Y3QgY2ZsYXllciAq bGF5ZXIsDQogDQogCQljb3VudCA9IGNmY3RybF9jYW5jZWxfcmVxKCZjZmN0cmwtPnNlcnYubGF5 ZXIsDQogCQkJCQkJdXNlcl9sYXllcik7DQotCQlpZiAoY291bnQgIT0gMSkNCisJCWlmIChjb3Vu dCAhPSAxKSB7DQogCQkJcHJfZXJyKCJDb3VsZCBub3QgcmVtb3ZlIHJlcXVlc3QgKCVkKSIsIGNv dW50KTsNCiAJCQlyZXR1cm4gLUVOT0RFVjsNCisJCX0NCiAJfQ0KIAlyZXR1cm4gMDsNCiB9DQpk aWZmIC0tZ2l0IGEvbmV0L2NlcGgvb3NkX2NsaWVudC5jIGIvbmV0L2NlcGgvb3NkX2NsaWVudC5j DQppbmRleCBmNGYzZjU4Li5hNzBmNDI2IDEwMDY0NA0KLS0tIGEvbmV0L2NlcGgvb3NkX2NsaWVu dC5jDQorKysgYi9uZXQvY2VwaC9vc2RfY2xpZW50LmMNCkBAIC0xNzE5LDYgKzE3MTksOCBAQCBp bnQgY2VwaF9vc2RjX3N0YXJ0X3JlcXVlc3Qoc3RydWN0IGNlcGhfb3NkX2NsaWVudCAqb3NkYywN CiAJCQkJZG91dCgib3NkY19zdGFydF9yZXF1ZXN0IGZhaWxlZCBtYXAsICINCiAJCQkJICAgICAi IHdpbGwgcmV0cnkgJWxsZFxuIiwgcmVxLT5yX3RpZCk7DQogCQkJCXJjID0gMDsNCisJCQl9IGVs c2Ugew0KKwkJCQlfX3VucmVnaXN0ZXJfcmVxdWVzdChvc2RjLCByZXEpOw0KIAkJCX0NCiAJCQln b3RvIG91dF91bmxvY2s7DQogCQl9DQpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvbmV0cG9sbC5jIGIv bmV0L2NvcmUvbmV0cG9sbC5jDQppbmRleCBkYjRiYjdhLi45NjQ5Y2VhIDEwMDY0NA0KLS0tIGEv bmV0L2NvcmUvbmV0cG9sbC5jDQorKysgYi9uZXQvY29yZS9uZXRwb2xsLmMNCkBAIC05MjMsMTUg KzkyMywxNCBAQCBFWFBPUlRfU1lNQk9MX0dQTChfX25ldHBvbGxfY2xlYW51cCk7DQogDQogdm9p ZCBuZXRwb2xsX2NsZWFudXAoc3RydWN0IG5ldHBvbGwgKm5wKQ0KIHsNCi0JaWYgKCFucC0+ZGV2 KQ0KLQkJcmV0dXJuOw0KLQ0KIAlydG5sX2xvY2soKTsNCisJaWYgKCFucC0+ZGV2KQ0KKwkJZ290 byBvdXQ7DQogCV9fbmV0cG9sbF9jbGVhbnVwKG5wKTsNCi0JcnRubF91bmxvY2soKTsNCi0NCiAJ ZGV2X3B1dChucC0+ZGV2KTsNCiAJbnAtPmRldiA9IE5VTEw7DQorb3V0Og0KKwlydG5sX3VubG9j aygpOw0KIH0NCiBFWFBPUlRfU1lNQk9MKG5ldHBvbGxfY2xlYW51cCk7DQogDQpkaWZmIC0tZ2l0 IGEvbmV0L2NvcmUvc3lzY3RsX25ldF9jb3JlLmMgYi9uZXQvY29yZS9zeXNjdGxfbmV0X2NvcmUu Yw0KaW5kZXggNzdhNjVmMC4uZjBiZGQzNiAxMDA2NDQNCi0tLSBhL25ldC9jb3JlL3N5c2N0bF9u ZXRfY29yZS5jDQorKysgYi9uZXQvY29yZS9zeXNjdGxfbmV0X2NvcmUuYw0KQEAgLTE5LDYgKzE5 LDkgQEANCiAjaW5jbHVkZSA8bmV0L3NvY2suaD4NCiAjaW5jbHVkZSA8bmV0L25ldF9yYXRlbGlt aXQuaD4NCiANCitzdGF0aWMgaW50IHplcm8gPSAwOw0KK3N0YXRpYyBpbnQgdXNob3J0X21heCA9 IFVTSFJUX01BWDsNCisNCiAjaWZkZWYgQ09ORklHX1JQUw0KIHN0YXRpYyBpbnQgcnBzX3NvY2tf Zmxvd19zeXNjdGwoY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLA0KIAkJCQl2b2lkIF9fdXNl ciAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykNCkBAIC0xOTIsNyArMTk1LDkg QEAgc3RhdGljIHN0cnVjdCBjdGxfdGFibGUgbmV0bnNfY29yZV90YWJsZVtdID0gew0KIAkJLmRh dGEJCT0gJmluaXRfbmV0LmNvcmUuc3lzY3RsX3NvbWF4Y29ubiwNCiAJCS5tYXhsZW4JCT0gc2l6 ZW9mKGludCksDQogCQkubW9kZQkJPSAwNjQ0LA0KLQkJLnByb2NfaGFuZGxlcgk9IHByb2NfZG9p bnR2ZWMNCisJCS5leHRyYTEJCT0gJnplcm8sDQorCQkuZXh0cmEyCQk9ICZ1c2hvcnRfbWF4LA0K KwkJLnByb2NfaGFuZGxlcgk9IHByb2NfZG9pbnR2ZWNfbWlubWF4DQogCX0sDQogCXsgfQ0KIH07 DQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmliX3RyaWUuYyBiL25ldC9pcHY0L2ZpYl90cmllLmMN CmluZGV4IGNkMmQ2MzkuLmM3YzY3MjQgMTAwNjQ0DQotLS0gYS9uZXQvaXB2NC9maWJfdHJpZS5j DQorKysgYi9uZXQvaXB2NC9maWJfdHJpZS5jDQpAQCAtNzIsNyArNzIsNiBAQA0KICNpbmNsdWRl IDxsaW51eC9pbml0Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4NCiAjaW5jbHVkZSA8bGlu dXgvc2xhYi5oPg0KLSNpbmNsdWRlIDxsaW51eC9wcmVmZXRjaC5oPg0KICNpbmNsdWRlIDxsaW51 eC9leHBvcnQuaD4NCiAjaW5jbHVkZSA8bmV0L25ldF9uYW1lc3BhY2UuaD4NCiAjaW5jbHVkZSA8 bmV0L2lwLmg+DQpAQCAtMTc3MywxMCArMTc3Miw4IEBAIHN0YXRpYyBzdHJ1Y3QgbGVhZiAqbGVh Zl93YWxrX3JjdShzdHJ1Y3QgdG5vZGUgKnAsIHN0cnVjdCBydF90cmllX25vZGUgKmMpDQogCQkJ aWYgKCFjKQ0KIAkJCQljb250aW51ZTsNCiANCi0JCQlpZiAoSVNfTEVBRihjKSkgew0KLQkJCQlw cmVmZXRjaChyY3VfZGVyZWZlcmVuY2VfcnRubChwLT5jaGlsZFtpZHhdKSk7DQorCQkJaWYgKElT X0xFQUYoYykpDQogCQkJCXJldHVybiAoc3RydWN0IGxlYWYgKikgYzsNCi0JCQl9DQogDQogCQkJ LyogUmVzY2FuIHN0YXJ0IHNjYW5uaW5nIGluIG5ldyBub2RlICovDQogCQkJcCA9IChzdHJ1Y3Qg dG5vZGUgKikgYzsNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pZ21wLmMgYi9uZXQvaXB2NC9pZ21w LmMNCmluZGV4IGM4OTg5YTcuLjc1YjA4NjAgMTAwNjQ0DQotLS0gYS9uZXQvaXB2NC9pZ21wLmMN CisrKyBiL25ldC9pcHY0L2lnbXAuYw0KQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0aWMgc3RydWN0 IHNrX2J1ZmYgKmlnbXB2M19uZXdwYWNrKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBzaXpl KQ0KIAlwaXAtPnNhZGRyICAgID0gZmw0LnNhZGRyOw0KIAlwaXAtPnByb3RvY29sID0gSVBQUk9U T19JR01QOw0KIAlwaXAtPnRvdF9sZW4gID0gMDsJLyogZmlsbGVkIGluIGxhdGVyICovDQotCWlw X3NlbGVjdF9pZGVudChwaXAsICZydC0+ZHN0LCBOVUxMKTsNCisJaXBfc2VsZWN0X2lkZW50KHNr YiwgJnJ0LT5kc3QsIE5VTEwpOw0KIAkoKHU4KikmcGlwWzFdKVswXSA9IElQT1BUX1JBOw0KIAko KHU4KikmcGlwWzFdKVsxXSA9IDQ7DQogCSgodTgqKSZwaXBbMV0pWzJdID0gMDsNCkBAIC02ODMs NyArNjgzLDcgQEAgc3RhdGljIGludCBpZ21wX3NlbmRfcmVwb3J0KHN0cnVjdCBpbl9kZXZpY2Ug KmluX2Rldiwgc3RydWN0IGlwX21jX2xpc3QgKnBtYywNCiAJaXBoLT5kYWRkciAgICA9IGRzdDsN CiAJaXBoLT5zYWRkciAgICA9IGZsNC5zYWRkcjsNCiAJaXBoLT5wcm90b2NvbCA9IElQUFJPVE9f SUdNUDsNCi0JaXBfc2VsZWN0X2lkZW50KGlwaCwgJnJ0LT5kc3QsIE5VTEwpOw0KKwlpcF9zZWxl Y3RfaWRlbnQoc2tiLCAmcnQtPmRzdCwgTlVMTCk7DQogCSgodTgqKSZpcGhbMV0pWzBdID0gSVBP UFRfUkE7DQogCSgodTgqKSZpcGhbMV0pWzFdID0gNDsNCiAJKCh1OCopJmlwaFsxXSlbMl0gPSAw Ow0KQEAgLTcwNSw3ICs3MDUsNyBAQCBzdGF0aWMgdm9pZCBpZ21wX2dxX3RpbWVyX2V4cGlyZSh1 bnNpZ25lZCBsb25nIGRhdGEpDQogDQogCWluX2Rldi0+bXJfZ3FfcnVubmluZyA9IDA7DQogCWln bXB2M19zZW5kX3JlcG9ydChpbl9kZXYsIE5VTEwpOw0KLQlfX2luX2Rldl9wdXQoaW5fZGV2KTsN CisJaW5fZGV2X3B1dChpbl9kZXYpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBpZ21wX2lmY190aW1l cl9leHBpcmUodW5zaWduZWQgbG9uZyBkYXRhKQ0KQEAgLTcxNyw3ICs3MTcsNyBAQCBzdGF0aWMg dm9pZCBpZ21wX2lmY190aW1lcl9leHBpcmUodW5zaWduZWQgbG9uZyBkYXRhKQ0KIAkJaW5fZGV2 LT5tcl9pZmNfY291bnQtLTsNCiAJCWlnbXBfaWZjX3N0YXJ0X3RpbWVyKGluX2RldiwgSUdNUF9V bnNvbGljaXRlZF9SZXBvcnRfSW50ZXJ2YWwpOw0KIAl9DQotCV9faW5fZGV2X3B1dChpbl9kZXYp Ow0KKwlpbl9kZXZfcHV0KGluX2Rldik7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGlnbXBfaWZjX2V2 ZW50KHN0cnVjdCBpbl9kZXZpY2UgKmluX2RldikNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0 cGVlci5jIGIvbmV0L2lwdjQvaW5ldHBlZXIuYw0KaW5kZXggODZmMTNjNjcuLjU4YzRlNjk2IDEw MDY0NA0KLS0tIGEvbmV0L2lwdjQvaW5ldHBlZXIuYw0KKysrIGIvbmV0L2lwdjQvaW5ldHBlZXIu Yw0KQEAgLTE3LDYgKzE3LDcgQEANCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+DQogI2luY2x1 ZGUgPGxpbnV4L21tLmg+DQogI2luY2x1ZGUgPGxpbnV4L25ldC5oPg0KKyNpbmNsdWRlIDxsaW51 eC93b3JrcXVldWUuaD4NCiAjaW5jbHVkZSA8bmV0L2lwLmg+DQogI2luY2x1ZGUgPG5ldC9pbmV0 cGVlci5oPg0KICNpbmNsdWRlIDxuZXQvc2VjdXJlX3NlcS5oPg0KQEAgLTMxLDggKzMyLDggQEAN CiAgKiAgQXQgdGhlIG1vbWVudCBvZiB3cml0aW5nIHRoaXMgbm90ZXMgaWRlbnRpZmllciBvZiBJ UCBwYWNrZXRzIGlzIGdlbmVyYXRlZA0KICAqICB0byBiZSB1bnByZWRpY3RhYmxlIHVzaW5nIHRo aXMgY29kZSBvbmx5IGZvciBwYWNrZXRzIHN1YmplY3RlZA0KICAqICAoYWN0dWFsbHkgb3IgcG90 ZW50aWFsbHkpIHRvIGRlZnJhZ21lbnRhdGlvbi4gIEkuZS4gREYgcGFja2V0cyBsZXNzIHRoYW4N Ci0gKiAgUE1UVSBpbiBzaXplIHVzZXMgYSBjb25zdGFudCBJRCBhbmQgZG8gbm90IHVzZSB0aGlz IGNvZGUgKHNlZQ0KLSAqICBpcF9zZWxlY3RfaWRlbnQoKSBpbiBpbmNsdWRlL25ldC9pcC5oKS4N CisgKiAgUE1UVSBpbiBzaXplIHdoZW4gbG9jYWwgZnJhZ21lbnRhdGlvbiBpcyBkaXNhYmxlZCB1 c2UgYSBjb25zdGFudCBJRCBhbmQgZG8NCisgKiAgbm90IHVzZSB0aGlzIGNvZGUgKHNlZSBpcF9z ZWxlY3RfaWRlbnQoKSBpbiBpbmNsdWRlL25ldC9pcC5oKS4NCiAgKg0KICAqICBSb3V0ZSBjYWNo ZSBlbnRyaWVzIGhvbGQgcmVmZXJlbmNlcyB0byBvdXIgbm9kZXMuDQogICogIE5ldyBjYWNoZSBl bnRyaWVzIGdldCByZWZlcmVuY2VzIHZpYSBsb29rdXAgYnkgZGVzdGluYXRpb24gSVAgYWRkcmVz cyBpbg0KQEAgLTY2LDYgKzY3LDExIEBADQogDQogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpw ZWVyX2NhY2hlcCBfX3JlYWRfbW9zdGx5Ow0KIA0KK3N0YXRpYyBMSVNUX0hFQUQoZ2NfbGlzdCk7 DQorc3RhdGljIGNvbnN0IGludCBnY19kZWxheSA9IDYwICogSFo7DQorc3RhdGljIHN0cnVjdCBk ZWxheWVkX3dvcmsgZ2Nfd29yazsNCitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGdjX2xvY2spOw0K Kw0KICNkZWZpbmUgbm9kZV9oZWlnaHQoeCkgeC0+YXZsX2hlaWdodA0KIA0KICNkZWZpbmUgcGVl cl9hdmxfZW1wdHkgKChzdHJ1Y3QgaW5ldF9wZWVyICopJnBlZXJfZmFrZV9ub2RlKQ0KQEAgLTEw Miw2ICsxMDgsNTAgQEAgaW50IGluZXRfcGVlcl90aHJlc2hvbGQgX19yZWFkX21vc3RseSA9IDY1 NTM2ICsgMTI4OwkvKiBzdGFydCB0byB0aHJvdyBlbnRyaWVzIG0NCiBpbnQgaW5ldF9wZWVyX21p bnR0bCBfX3JlYWRfbW9zdGx5ID0gMTIwICogSFo7CS8qIFRUTCB1bmRlciBoaWdoIGxvYWQ6IDEy MCBzZWMgKi8NCiBpbnQgaW5ldF9wZWVyX21heHR0bCBfX3JlYWRfbW9zdGx5ID0gMTAgKiA2MCAq IEhaOwkvKiB1c3VhbCB0aW1lIHRvIGxpdmU6IDEwIG1pbiAqLw0KIA0KK3N0YXRpYyB2b2lkIGlu ZXRwZWVyX2djX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQorew0KKwlzdHJ1Y3Qg aW5ldF9wZWVyICpwLCAqbjsNCisJTElTVF9IRUFEKGxpc3QpOw0KKw0KKwlzcGluX2xvY2tfYmgo JmdjX2xvY2spOw0KKwlsaXN0X3JlcGxhY2VfaW5pdCgmZ2NfbGlzdCwgJmxpc3QpOw0KKwlzcGlu X3VubG9ja19iaCgmZ2NfbG9jayk7DQorDQorCWlmIChsaXN0X2VtcHR5KCZsaXN0KSkNCisJCXJl dHVybjsNCisNCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHAsIG4sICZsaXN0LCBnY19saXN0 KSB7DQorDQorCQlpZihuZWVkX3Jlc2NoZWQoKSkNCisJCQljb25kX3Jlc2NoZWQoKTsNCisNCisJ CWlmIChwLT5hdmxfbGVmdCAhPSBwZWVyX2F2bF9lbXB0eSkgew0KKwkJCWxpc3RfYWRkX3RhaWwo JnAtPmF2bF9sZWZ0LT5nY19saXN0LCAmbGlzdCk7DQorCQkJcC0+YXZsX2xlZnQgPSBwZWVyX2F2 bF9lbXB0eTsNCisJCX0NCisNCisJCWlmIChwLT5hdmxfcmlnaHQgIT0gcGVlcl9hdmxfZW1wdHkp IHsNCisJCQlsaXN0X2FkZF90YWlsKCZwLT5hdmxfcmlnaHQtPmdjX2xpc3QsICZsaXN0KTsNCisJ CQlwLT5hdmxfcmlnaHQgPSBwZWVyX2F2bF9lbXB0eTsNCisJCX0NCisNCisJCW4gPSBsaXN0X2Vu dHJ5KHAtPmdjX2xpc3QubmV4dCwgc3RydWN0IGluZXRfcGVlciwgZ2NfbGlzdCk7DQorDQorCQlp ZiAoIWF0b21pY19yZWFkKCZwLT5yZWZjbnQpKSB7DQorCQkJbGlzdF9kZWwoJnAtPmdjX2xpc3Qp Ow0KKwkJCWttZW1fY2FjaGVfZnJlZShwZWVyX2NhY2hlcCwgcCk7DQorCQl9DQorCX0NCisNCisJ aWYgKGxpc3RfZW1wdHkoJmxpc3QpKQ0KKwkJcmV0dXJuOw0KKw0KKwlzcGluX2xvY2tfYmgoJmdj X2xvY2spOw0KKwlsaXN0X3NwbGljZSgmbGlzdCwgJmdjX2xpc3QpOw0KKwlzcGluX3VubG9ja19i aCgmZ2NfbG9jayk7DQorDQorCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZ2Nfd29yaywgZ2NfZGVs YXkpOw0KK30NCiANCiAvKiBDYWxsZWQgZnJvbSBpcF9vdXRwdXQuYzppcF9pbml0ICAqLw0KIHZv aWQgX19pbml0IGluZXRfaW5pdHBlZXJzKHZvaWQpDQpAQCAtMTI2LDYgKzE3Niw3IEBAIHZvaWQg X19pbml0IGluZXRfaW5pdHBlZXJzKHZvaWQpDQogCQkJMCwgU0xBQl9IV0NBQ0hFX0FMSUdOIHwg U0xBQl9QQU5JQywNCiAJCQlOVUxMKTsNCiANCisJSU5JVF9ERUxBWUVEX1dPUktfREVGRVJSQUJM RSgmZ2Nfd29yaywgaW5ldHBlZXJfZ2Nfd29ya2VyKTsNCiB9DQogDQogc3RhdGljIGludCBhZGRy X2NvbXBhcmUoY29uc3Qgc3RydWN0IGluZXRwZWVyX2FkZHIgKmEsDQpAQCAtNDQ4LDcgKzQ5OSw3 IEBAIHJlbG9va3VwOg0KIAkJcC0+cG10dV9leHBpcmVzID0gMDsNCiAJCXAtPnBtdHVfb3JpZyA9 IDA7DQogCQltZW1zZXQoJnAtPnJlZGlyZWN0X2xlYXJuZWQsIDAsIHNpemVvZihwLT5yZWRpcmVj dF9sZWFybmVkKSk7DQotDQorCQlJTklUX0xJU1RfSEVBRCgmcC0+Z2NfbGlzdCk7DQogDQogCQkv KiBMaW5rIHRoZSBub2RlLiAqLw0KIAkJbGlua190b19wb29sKHAsIGJhc2UpOw0KQEAgLTUwOCwz ICs1NTksMzggQEAgYm9vbCBpbmV0X3BlZXJfeHJsaW1fYWxsb3coc3RydWN0IGluZXRfcGVlciAq cGVlciwgaW50IHRpbWVvdXQpDQogCXJldHVybiByYzsNCiB9DQogRVhQT1JUX1NZTUJPTChpbmV0 X3BlZXJfeHJsaW1fYWxsb3cpOw0KKw0KK3N0YXRpYyB2b2lkIGluZXRwZWVyX2ludmFsX3JjdShz dHJ1Y3QgcmN1X2hlYWQgKmhlYWQpDQorew0KKwlzdHJ1Y3QgaW5ldF9wZWVyICpwID0gY29udGFp bmVyX29mKGhlYWQsIHN0cnVjdCBpbmV0X3BlZXIsIGdjX3JjdSk7DQorDQorCXNwaW5fbG9ja19i aCgmZ2NfbG9jayk7DQorCWxpc3RfYWRkX3RhaWwoJnAtPmdjX2xpc3QsICZnY19saXN0KTsNCisJ c3Bpbl91bmxvY2tfYmgoJmdjX2xvY2spOw0KKw0KKwlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmdj X3dvcmssIGdjX2RlbGF5KTsNCit9DQorDQordm9pZCBpbmV0cGVlcl9pbnZhbGlkYXRlX3RyZWUo aW50IGZhbWlseSkNCit7DQorCXN0cnVjdCBpbmV0X3BlZXIgKm9sZCwgKm5ldywgKnByZXY7DQor CXN0cnVjdCBpbmV0X3BlZXJfYmFzZSAqYmFzZSA9IGZhbWlseV90b19iYXNlKGZhbWlseSk7DQor DQorCXdyaXRlX3NlcWxvY2tfYmgoJmJhc2UtPmxvY2spOw0KKw0KKwlvbGQgPSBiYXNlLT5yb290 Ow0KKwlpZiAob2xkID09IHBlZXJfYXZsX2VtcHR5X3JjdSkNCisJCWdvdG8gb3V0Ow0KKw0KKwlu ZXcgPSBwZWVyX2F2bF9lbXB0eV9yY3U7DQorDQorCXByZXYgPSBjbXB4Y2hnKCZiYXNlLT5yb290 LCBvbGQsIG5ldyk7DQorCWlmIChwcmV2ID09IG9sZCkgew0KKwkJYmFzZS0+dG90YWwgPSAwOw0K KwkJY2FsbF9yY3UoJnByZXYtPmdjX3JjdSwgaW5ldHBlZXJfaW52YWxfcmN1KTsNCisJfQ0KKw0K K291dDoNCisJd3JpdGVfc2VxdW5sb2NrX2JoKCZiYXNlLT5sb2NrKTsNCit9DQorRVhQT1JUX1NZ TUJPTChpbmV0cGVlcl9pbnZhbGlkYXRlX3RyZWUpOw0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lw X291dHB1dC5jIGIvbmV0L2lwdjQvaXBfb3V0cHV0LmMNCmluZGV4IDBiYzk1ZjMuLmRhZjQwOGUg MTAwNjQ0DQotLS0gYS9uZXQvaXB2NC9pcF9vdXRwdXQuYw0KKysrIGIvbmV0L2lwdjQvaXBfb3V0 cHV0LmMNCkBAIC0xNjIsNyArMTYyLDcgQEAgaW50IGlwX2J1aWxkX2FuZF9zZW5kX3BrdChzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc29jayAqc2ssDQogCWlwaC0+ZGFkZHIgICAgPSAob3B0 ICYmIG9wdC0+b3B0LnNyciA/IG9wdC0+b3B0LmZhZGRyIDogZGFkZHIpOw0KIAlpcGgtPnNhZGRy ICAgID0gc2FkZHI7DQogCWlwaC0+cHJvdG9jb2wgPSBzay0+c2tfcHJvdG9jb2w7DQotCWlwX3Nl bGVjdF9pZGVudChpcGgsICZydC0+ZHN0LCBzayk7DQorCWlwX3NlbGVjdF9pZGVudChza2IsICZy dC0+ZHN0LCBzayk7DQogDQogCWlmIChvcHQgJiYgb3B0LT5vcHQub3B0bGVuKSB7DQogCQlpcGgt PmlobCArPSBvcHQtPm9wdC5vcHRsZW4+PjI7DQpAQCAtMzkwLDcgKzM5MCw3IEBAIHBhY2tldF9y b3V0ZWQ6DQogCQlpcF9vcHRpb25zX2J1aWxkKHNrYiwgJmluZXRfb3B0LT5vcHQsIGluZXQtPmlu ZXRfZGFkZHIsIHJ0LCAwKTsNCiAJfQ0KIA0KLQlpcF9zZWxlY3RfaWRlbnRfbW9yZShpcGgsICZy dC0+ZHN0LCBzaywNCisJaXBfc2VsZWN0X2lkZW50X21vcmUoc2tiLCAmcnQtPmRzdCwgc2ssDQog CQkJICAgICAoc2tiX3NoaW5mbyhza2IpLT5nc29fc2VncyA/OiAxKSAtIDEpOw0KIA0KIAlza2It PnByaW9yaXR5ID0gc2stPnNrX3ByaW9yaXR5Ow0KQEAgLTEzMzQsNyArMTMzNCw3IEBAIHN0cnVj dCBza19idWZmICpfX2lwX21ha2Vfc2tiKHN0cnVjdCBzb2NrICpzaywNCiAJaXBoLT5paGwgPSA1 Ow0KIAlpcGgtPnRvcyA9IGluZXQtPnRvczsNCiAJaXBoLT5mcmFnX29mZiA9IGRmOw0KLQlpcF9z ZWxlY3RfaWRlbnQoaXBoLCAmcnQtPmRzdCwgc2spOw0KKwlpcF9zZWxlY3RfaWRlbnQoc2tiLCAm cnQtPmRzdCwgc2spOw0KIAlpcGgtPnR0bCA9IHR0bDsNCiAJaXBoLT5wcm90b2NvbCA9IHNrLT5z a19wcm90b2NvbDsNCiAJaXBoLT5zYWRkciA9IGZsNC0+c2FkZHI7DQpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvaXBtci5jIGIvbmV0L2lwdjQvaXBtci5jDQppbmRleCAwMDY0Mzk0Li5iNWU2NGU0IDEw MDY0NA0KLS0tIGEvbmV0L2lwdjQvaXBtci5jDQorKysgYi9uZXQvaXB2NC9pcG1yLmMNCkBAIC0x NTc2LDcgKzE1NzYsNyBAQCBzdGF0aWMgdm9pZCBpcF9lbmNhcChzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBfX2JlMzIgc2FkZHIsIF9fYmUzMiBkYWRkcikNCiAJaXBoLT5wcm90b2NvbAk9CUlQUFJPVE9f SVBJUDsNCiAJaXBoLT5paGwJPQk1Ow0KIAlpcGgtPnRvdF9sZW4JPQlodG9ucyhza2ItPmxlbik7 DQotCWlwX3NlbGVjdF9pZGVudChpcGgsIHNrYl9kc3Qoc2tiKSwgTlVMTCk7DQorCWlwX3NlbGVj dF9pZGVudChza2IsIHNrYl9kc3Qoc2tiKSwgTlVMTCk7DQogCWlwX3NlbmRfY2hlY2soaXBoKTsN CiANCiAJbWVtc2V0KCYoSVBDQihza2IpLT5vcHQpLCAwLCBzaXplb2YoSVBDQihza2IpLT5vcHQp KTsNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yYXcuYyBiL25ldC9pcHY0L3Jhdy5jDQppbmRleCBl MWQ0ZjMwLi4yODE1MDE0IDEwMDY0NA0KLS0tIGEvbmV0L2lwdjQvcmF3LmMNCisrKyBiL25ldC9p cHY0L3Jhdy5jDQpAQCAtMzgwLDcgKzM4MCw3IEBAIHN0YXRpYyBpbnQgcmF3X3NlbmRfaGRyaW5j KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGZsb3dpNCAqZmw0LA0KIAkJaXBoLT5jaGVjayAgID0g MDsNCiAJCWlwaC0+dG90X2xlbiA9IGh0b25zKGxlbmd0aCk7DQogCQlpZiAoIWlwaC0+aWQpDQot CQkJaXBfc2VsZWN0X2lkZW50KGlwaCwgJnJ0LT5kc3QsIE5VTEwpOw0KKwkJCWlwX3NlbGVjdF9p ZGVudChza2IsICZydC0+ZHN0LCBOVUxMKTsNCiANCiAJCWlwaC0+Y2hlY2sgPSBpcF9mYXN0X2Nz dW0oKHVuc2lnbmVkIGNoYXIgKilpcGgsIGlwaC0+aWhsKTsNCiAJfQ0KZGlmZiAtLWdpdCBhL25l dC9pcHY0L3JvdXRlLmMgYi9uZXQvaXB2NC9yb3V0ZS5jDQppbmRleCA5NGNkYmM1Li5jNDVhMTU1 YTMgMTAwNjQ0DQotLS0gYS9uZXQvaXB2NC9yb3V0ZS5jDQorKysgYi9uZXQvaXB2NC9yb3V0ZS5j DQpAQCAtOTM5LDYgKzkzOSw3IEBAIHN0YXRpYyB2b2lkIHJ0X2NhY2hlX2ludmFsaWRhdGUoc3Ry dWN0IG5ldCAqbmV0KQ0KIAlnZXRfcmFuZG9tX2J5dGVzKCZzaHVmZmxlLCBzaXplb2Yoc2h1ZmZs ZSkpOw0KIAlhdG9taWNfYWRkKHNodWZmbGUgKyAxVSwgJm5ldC0+aXB2NC5ydF9nZW5pZCk7DQog CXJlZGlyZWN0X2dlbmlkKys7DQorCWluZXRwZWVyX2ludmFsaWRhdGVfdHJlZShBRl9JTkVUKTsN CiB9DQogDQogLyoNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfY3ViaWMuYyBiL25ldC9pcHY0 L3RjcF9jdWJpYy5jDQppbmRleCBmMzc2YjA1Li5iNzhlYWMyIDEwMDY0NA0KLS0tIGEvbmV0L2lw djQvdGNwX2N1YmljLmMNCisrKyBiL25ldC9pcHY0L3RjcF9jdWJpYy5jDQpAQCAtMjA0LDggKzIw NCw4IEBAIHN0YXRpYyB1MzIgY3ViaWNfcm9vdCh1NjQgYSkNCiAgKi8NCiBzdGF0aWMgaW5saW5l IHZvaWQgYmljdGNwX3VwZGF0ZShzdHJ1Y3QgYmljdGNwICpjYSwgdTMyIGN3bmQpDQogew0KLQl1 NjQgb2ZmczsNCi0JdTMyIGRlbHRhLCB0LCBiaWNfdGFyZ2V0LCBtYXhfY250Ow0KKwl1MzIgZGVs dGEsIGJpY190YXJnZXQsIG1heF9jbnQ7DQorCXU2NCBvZmZzLCB0Ow0KIA0KIAljYS0+YWNrX2Nu dCsrOwkvKiBjb3VudCB0aGUgbnVtYmVyIG9mIEFDS3MgKi8NCiANCkBAIC0yNDgsOSArMjQ4LDEx IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBiaWN0Y3BfdXBkYXRlKHN0cnVjdCBiaWN0Y3AgKmNhLCB1 MzIgY3duZCkNCiAJICogaWYgdGhlIGN3bmQgPCAxIG1pbGxpb24gcGFja2V0cyAhISENCiAJICov DQogDQorCXQgPSAoczMyKSh0Y3BfdGltZV9zdGFtcCAtIGNhLT5lcG9jaF9zdGFydCk7DQorCXQg Kz0gbXNlY3NfdG9famlmZmllcyhjYS0+ZGVsYXlfbWluID4+IDMpOw0KIAkvKiBjaGFuZ2UgdGhl IHVuaXQgZnJvbSBIWiB0byBiaWN0Y3BfSFogKi8NCi0JdCA9ICgodGNwX3RpbWVfc3RhbXAgKyBt c2Vjc190b19qaWZmaWVzKGNhLT5kZWxheV9taW4+PjMpDQotCSAgICAgIC0gY2EtPmVwb2NoX3N0 YXJ0KSA8PCBCSUNUQ1BfSFopIC8gSFo7DQorCXQgPDw9IEJJQ1RDUF9IWjsNCisJZG9fZGl2KHQs IEhaKTsNCiANCiAJaWYgKHQgPCBjYS0+YmljX0spCQkvKiB0IC0gSyAqLw0KIAkJb2ZmcyA9IGNh LT5iaWNfSyAtIHQ7DQpAQCAtNDEyLDcgKzQxNCw3IEBAIHN0YXRpYyB2b2lkIGJpY3RjcF9hY2tl ZChzdHJ1Y3Qgc29jayAqc2ssIHUzMiBjbnQsIHMzMiBydHRfdXMpDQogCQlyZXR1cm47DQogDQog CS8qIERpc2NhcmQgZGVsYXkgc2FtcGxlcyByaWdodCBhZnRlciBmYXN0IHJlY292ZXJ5ICovDQot CWlmICgoczMyKSh0Y3BfdGltZV9zdGFtcCAtIGNhLT5lcG9jaF9zdGFydCkgPCBIWikNCisJaWYg KGNhLT5lcG9jaF9zdGFydCAmJiAoczMyKSh0Y3BfdGltZV9zdGFtcCAtIGNhLT5lcG9jaF9zdGFy dCkgPCBIWikNCiAJCXJldHVybjsNCiANCiAJZGVsYXkgPSAocnR0X3VzIDw8IDMpIC8gVVNFQ19Q RVJfTVNFQzsNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC94ZnJtNF9tb2RlX3R1bm5lbC5jIGIvbmV0 L2lwdjQveGZybTRfbW9kZV90dW5uZWwuYw0KaW5kZXggZWQ0YmYxMS4uOTM4NTUzZSAxMDA2NDQN Ci0tLSBhL25ldC9pcHY0L3hmcm00X21vZGVfdHVubmVsLmMNCisrKyBiL25ldC9pcHY0L3hmcm00 X21vZGVfdHVubmVsLmMNCkBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyBpbnQgeGZybTRfbW9kZV90 dW5uZWxfb3V0cHV0KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0K IA0KIAl0b3BfaXBoLT5mcmFnX29mZiA9IChmbGFncyAmIFhGUk1fU1RBVEVfTk9QTVRVRElTQykg Pw0KIAkJMCA6IChYRlJNX01PREVfU0tCX0NCKHNrYiktPmZyYWdfb2ZmICYgaHRvbnMoSVBfREYp KTsNCi0JaXBfc2VsZWN0X2lkZW50KHRvcF9pcGgsIGRzdC0+Y2hpbGQsIE5VTEwpOw0KKwlpcF9z ZWxlY3RfaWRlbnQoc2tiLCBkc3QtPmNoaWxkLCBOVUxMKTsNCiANCiAJdG9wX2lwaC0+dHRsID0g aXA0X2RzdF9ob3BsaW1pdChkc3QtPmNoaWxkKTsNCiANCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9h ZGRyY29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYw0KaW5kZXggMzE0YmRhMi4uNWQ0MTI5MyAx MDA2NDQNCi0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMNCisrKyBiL25ldC9pcHY2L2FkZHJjb25m LmMNCkBAIC05MTMsMTIgKzkxMywxMCBAQCByZXRyeToNCiAJaWYgKGlmcC0+ZmxhZ3MgJiBJRkFf Rl9PUFRJTUlTVElDKQ0KIAkJYWRkcl9mbGFncyB8PSBJRkFfRl9PUFRJTUlTVElDOw0KIA0KLQlp ZnQgPSAhbWF4X2FkZHJlc3NlcyB8fA0KLQkgICAgICBpcHY2X2NvdW50X2FkZHJlc3NlcyhpZGV2 KSA8IG1heF9hZGRyZXNzZXMgPw0KLQkJaXB2Nl9hZGRfYWRkcihpZGV2LCAmYWRkciwgdG1wX3Bs ZW4sDQotCQkJICAgICAgaXB2Nl9hZGRyX3R5cGUoJmFkZHIpJklQVjZfQUREUl9TQ09QRV9NQVNL LA0KLQkJCSAgICAgIGFkZHJfZmxhZ3MpIDogTlVMTDsNCi0JaWYgKCFpZnQgfHwgSVNfRVJSKGlm dCkpIHsNCisJaWZ0ID0gaXB2Nl9hZGRfYWRkcihpZGV2LCAmYWRkciwgdG1wX3BsZW4sDQorCQkJ ICAgIGlwdjZfYWRkcl90eXBlKCZhZGRyKSZJUFY2X0FERFJfU0NPUEVfTUFTSywNCisJCQkgICAg YWRkcl9mbGFncyk7DQorCWlmIChJU19FUlIoaWZ0KSkgew0KIAkJaW42X2lmYV9wdXQoaWZwKTsN CiAJCWluNl9kZXZfcHV0KGlkZXYpOw0KIAkJcHJpbnRrKEtFUk5fSU5GTw0KZGlmZiAtLWdpdCBh L25ldC9pcHY2L2ljbXAuYyBiL25ldC9pcHY2L2ljbXAuYw0KaW5kZXggOTA4NjhmYi4uZDUwNTQ1 MyAxMDA2NDQNCi0tLSBhL25ldC9pcHY2L2ljbXAuYw0KKysrIGIvbmV0L2lwdjYvaWNtcC5jDQpA QCAtOTExLDYgKzkxMSwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGljbXA2X2VyciB7DQogCQku ZXJyCT0gRUNPTk5SRUZVU0VELA0KIAkJLmZhdGFsCT0gMSwNCiAJfSwNCisJewkvKiBQT0xJQ1lf RkFJTCAqLw0KKwkJLmVycgk9IEVBQ0NFUywNCisJCS5mYXRhbAk9IDEsDQorCX0sDQorCXsJLyog UkVKRUNUX1JPVVRFCSovDQorCQkuZXJyCT0gRUFDQ0VTLA0KKwkJLmZhdGFsCT0gMSwNCisJfSwN CiB9Ow0KIA0KIGludCBpY21wdjZfZXJyX2NvbnZlcnQodTggdHlwZSwgdTggY29kZSwgaW50ICpl cnIpDQpAQCAtOTIyLDcgKzkzMCw3IEBAIGludCBpY21wdjZfZXJyX2NvbnZlcnQodTggdHlwZSwg dTggY29kZSwgaW50ICplcnIpDQogCXN3aXRjaCAodHlwZSkgew0KIAljYXNlIElDTVBWNl9ERVNU X1VOUkVBQ0g6DQogCQlmYXRhbCA9IDE7DQotCQlpZiAoY29kZSA8PSBJQ01QVjZfUE9SVF9VTlJF QUNIKSB7DQorCQlpZiAoY29kZSA8IEFSUkFZX1NJWkUodGFiX3VucmVhY2gpKSB7DQogCQkJKmVy ciAgPSB0YWJfdW5yZWFjaFtjb2RlXS5lcnI7DQogCQkJZmF0YWwgPSB0YWJfdW5yZWFjaFtjb2Rl XS5mYXRhbDsNCiAJCX0NCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZmliLmMgYi9uZXQvaXB2 Ni9pcDZfZmliLmMNCmluZGV4IDkzNzE4ZjMuLjQ0MzcyNGYgMTAwNjQ0DQotLS0gYS9uZXQvaXB2 Ni9pcDZfZmliLmMNCisrKyBiL25ldC9pcHY2L2lwNl9maWIuYw0KQEAgLTg2MiwxNCArODYyLDIy IEBAIHN0YXRpYyBzdHJ1Y3QgZmliNl9ub2RlICogZmliNl9sb29rdXBfMShzdHJ1Y3QgZmliNl9u b2RlICpyb290LA0KIA0KIAkJCWlmIChpcHY2X3ByZWZpeF9lcXVhbCgma2V5LT5hZGRyLCBhcmdz LT5hZGRyLCBrZXktPnBsZW4pKSB7DQogI2lmZGVmIENPTkZJR19JUFY2X1NVQlRSRUVTDQotCQkJ CWlmIChmbi0+c3VidHJlZSkNCi0JCQkJCWZuID0gZmliNl9sb29rdXBfMShmbi0+c3VidHJlZSwg YXJncyArIDEpOw0KKwkJCQlpZiAoZm4tPnN1YnRyZWUpIHsNCisJCQkJCXN0cnVjdCBmaWI2X25v ZGUgKnNmbjsNCisJCQkJCXNmbiA9IGZpYjZfbG9va3VwXzEoZm4tPnN1YnRyZWUsDQorCQkJCQkJ CSAgICBhcmdzICsgMSk7DQorCQkJCQlpZiAoIXNmbikNCisJCQkJCQlnb3RvIGJhY2t0cmFjazsN CisJCQkJCWZuID0gc2ZuOw0KKwkJCQl9DQogI2VuZGlmDQotCQkJCWlmICghZm4gfHwgZm4tPmZu X2ZsYWdzICYgUlROX1JUSU5GTykNCisJCQkJaWYgKGZuLT5mbl9mbGFncyAmIFJUTl9SVElORk8p DQogCQkJCQlyZXR1cm4gZm47DQogCQkJfQ0KIAkJfQ0KLQ0KKyNpZmRlZiBDT05GSUdfSVBWNl9T VUJUUkVFUw0KK2JhY2t0cmFjazoNCisjZW5kaWYNCiAJCWlmIChmbi0+Zm5fZmxhZ3MgJiBSVE5f Uk9PVCkNCiAJCQlicmVhazsNCiANCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMg Yi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMNCmluZGV4IGRiNjAwNDMuLjkxZDA3MTEgMTAwNjQ0DQot LS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMNCisrKyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYw0K QEAgLTExMjUsNiArMTEyNSw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IGlwNl91Zm9fYXBwZW5kX2Rh dGEoc3RydWN0IHNvY2sgKnNrLA0KIAkgKiB1ZHAgZGF0YWdyYW0NCiAJICovDQogCWlmICgoc2ti ID0gc2tiX3BlZWtfdGFpbCgmc2stPnNrX3dyaXRlX3F1ZXVlKSkgPT0gTlVMTCkgew0KKwkJc3Ry dWN0IGZyYWdfaGRyIGZoZHI7DQorDQogCQlza2IgPSBzb2NrX2FsbG9jX3NlbmRfc2tiKHNrLA0K IAkJCWhoX2xlbiArIGZyYWdoZWFkZXJsZW4gKyB0cmFuc2hkcmxlbiArIDIwLA0KIAkJCShmbGFn cyAmIE1TR19ET05UV0FJVCksICZlcnIpOw0KQEAgLTExNDUsMTIgKzExNDcsNiBAQCBzdGF0aWMg aW5saW5lIGludCBpcDZfdWZvX2FwcGVuZF9kYXRhKHN0cnVjdCBzb2NrICpzaywNCiANCiAJCXNr Yi0+aXBfc3VtbWVkID0gQ0hFQ0tTVU1fUEFSVElBTDsNCiAJCXNrYi0+Y3N1bSA9IDA7DQotCX0N Ci0NCi0JZXJyID0gc2tiX2FwcGVuZF9kYXRhdG9fZnJhZ3Moc2ssc2tiLCBnZXRmcmFnLCBmcm9t LA0KLQkJCQkgICAgICAobGVuZ3RoIC0gdHJhbnNoZHJsZW4pKTsNCi0JaWYgKCFlcnIpIHsNCi0J CXN0cnVjdCBmcmFnX2hkciBmaGRyOw0KIA0KIAkJLyogU3BlY2lmeSB0aGUgbGVuZ3RoIG9mIGVh Y2ggSVB2NiBkYXRhZ3JhbSBmcmFnbWVudC4NCiAJCSAqIEl0IGhhcyB0byBiZSBhIG11bHRpcGxl IG9mIDguDQpAQCAtMTE2MSwxNSArMTE1NywxMCBAQCBzdGF0aWMgaW5saW5lIGludCBpcDZfdWZv X2FwcGVuZF9kYXRhKHN0cnVjdCBzb2NrICpzaywNCiAJCWlwdjZfc2VsZWN0X2lkZW50KCZmaGRy LCBydCk7DQogCQlza2Jfc2hpbmZvKHNrYiktPmlwNl9mcmFnX2lkID0gZmhkci5pZGVudGlmaWNh dGlvbjsNCiAJCV9fc2tiX3F1ZXVlX3RhaWwoJnNrLT5za193cml0ZV9xdWV1ZSwgc2tiKTsNCi0N Ci0JCXJldHVybiAwOw0KIAl9DQotCS8qIFRoZXJlIGlzIG5vdCBlbm91Z2ggc3VwcG9ydCBkbyBV UEQgTFNPLA0KLQkgKiBzbyBmb2xsb3cgbm9ybWFsIHBhdGgNCi0JICovDQotCWtmcmVlX3NrYihz a2IpOw0KIA0KLQlyZXR1cm4gZXJyOw0KKwlyZXR1cm4gc2tiX2FwcGVuZF9kYXRhdG9fZnJhZ3Mo c2ssIHNrYiwgZ2V0ZnJhZywgZnJvbSwNCisJCQkJICAgICAgIChsZW5ndGggLSB0cmFuc2hkcmxl bikpOw0KIH0NCiANCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpcHY2X29wdF9oZHIgKmlwNl9vcHRf ZHVwKHN0cnVjdCBpcHY2X29wdF9oZHIgKnNyYywNCkBAIC0xMzQyLDI3ICsxMzMzLDI3IEBAIGlu dCBpcDZfYXBwZW5kX2RhdGEoc3RydWN0IHNvY2sgKnNrLCBpbnQgZ2V0ZnJhZyh2b2lkICpmcm9t LCBjaGFyICp0bywNCiAJICogLS15b3NoZnVqaQ0KIAkgKi8NCiANCi0JY29yay0+bGVuZ3RoICs9 IGxlbmd0aDsNCi0JaWYgKGxlbmd0aCA+IG10dSkgew0KLQkJaW50IHByb3RvID0gc2stPnNrX3By b3RvY29sOw0KLQkJaWYgKGRvbnRmcmFnICYmIChwcm90byA9PSBJUFBST1RPX1VEUCB8fCBwcm90 byA9PSBJUFBST1RPX1JBVykpew0KLQkJCWlwdjZfbG9jYWxfcnhwbXR1KHNrLCBmbDYsIG10dS1l eHRoZHJsZW4pOw0KLQkJCXJldHVybiAtRU1TR1NJWkU7DQotCQl9DQotDQotCQlpZiAocHJvdG8g PT0gSVBQUk9UT19VRFAgJiYNCi0JCSAgICAocnQtPmRzdC5kZXYtPmZlYXR1cmVzICYgTkVUSUZf Rl9VRk8pKSB7DQorCWlmICgobGVuZ3RoID4gbXR1KSAmJiBkb250ZnJhZyAmJiAoc2stPnNrX3By b3RvY29sID09IElQUFJPVE9fVURQIHx8DQorCQkJCQkgICBzay0+c2tfcHJvdG9jb2wgPT0gSVBQ Uk9UT19SQVcpKSB7DQorCQlpcHY2X2xvY2FsX3J4cG10dShzaywgZmw2LCBtdHUtZXh0aGRybGVu KTsNCisJCXJldHVybiAtRU1TR1NJWkU7DQorCX0NCiANCi0JCQllcnIgPSBpcDZfdWZvX2FwcGVu ZF9kYXRhKHNrLCBnZXRmcmFnLCBmcm9tLCBsZW5ndGgsDQotCQkJCQkJICBoaF9sZW4sIGZyYWdo ZWFkZXJsZW4sDQotCQkJCQkJICB0cmFuc2hkcmxlbiwgbXR1LCBmbGFncywgcnQpOw0KLQkJCWlm IChlcnIpDQotCQkJCWdvdG8gZXJyb3I7DQotCQkJcmV0dXJuIDA7DQotCQl9DQorCXNrYiA9IHNr Yl9wZWVrX3RhaWwoJnNrLT5za193cml0ZV9xdWV1ZSk7DQorCWNvcmstPmxlbmd0aCArPSBsZW5n dGg7DQorCWlmICgoKGxlbmd0aCA+IG10dSkgfHwNCisJICAgICAoc2tiICYmIHNrYl9pc19nc28o c2tiKSkpICYmDQorCSAgICAoc2stPnNrX3Byb3RvY29sID09IElQUFJPVE9fVURQKSAmJg0KKwkg ICAgKHJ0LT5kc3QuZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfVUZPKSkgew0KKwkJZXJyID0gaXA2 X3Vmb19hcHBlbmRfZGF0YShzaywgZ2V0ZnJhZywgZnJvbSwgbGVuZ3RoLA0KKwkJCQkJICBoaF9s ZW4sIGZyYWdoZWFkZXJsZW4sDQorCQkJCQkgIHRyYW5zaGRybGVuLCBtdHUsIGZsYWdzLCBydCk7 DQorCQlpZiAoZXJyKQ0KKwkJCWdvdG8gZXJyb3I7DQorCQlyZXR1cm4gMDsNCiAJfQ0KIA0KLQlp ZiAoKHNrYiA9IHNrYl9wZWVrX3RhaWwoJnNrLT5za193cml0ZV9xdWV1ZSkpID09IE5VTEwpDQor CWlmICghc2tiKQ0KIAkJZ290byBhbGxvY19uZXdfc2tiOw0KIA0KIAl3aGlsZSAobGVuZ3RoID4g MCkgew0KZGlmZiAtLWdpdCBhL25ldC9pcHY2L21jYXN0LmMgYi9uZXQvaXB2Ni9tY2FzdC5jDQpp bmRleCBjN2VjNGJiLi5kMjBhOWJlIDEwMDY0NA0KLS0tIGEvbmV0L2lwdjYvbWNhc3QuYw0KKysr IGIvbmV0L2lwdjYvbWNhc3QuYw0KQEAgLTIxNTksNyArMjE1OSw3IEBAIHN0YXRpYyB2b2lkIG1s ZF9ncV90aW1lcl9leHBpcmUodW5zaWduZWQgbG9uZyBkYXRhKQ0KIA0KIAlpZGV2LT5tY19ncV9y dW5uaW5nID0gMDsNCiAJbWxkX3NlbmRfcmVwb3J0KGlkZXYsIE5VTEwpOw0KLQlfX2luNl9kZXZf cHV0KGlkZXYpOw0KKwlpbjZfZGV2X3B1dChpZGV2KTsNCiB9DQogDQogc3RhdGljIHZvaWQgbWxk X2lmY190aW1lcl9leHBpcmUodW5zaWduZWQgbG9uZyBkYXRhKQ0KQEAgLTIxNzIsNyArMjE3Miw3 IEBAIHN0YXRpYyB2b2lkIG1sZF9pZmNfdGltZXJfZXhwaXJlKHVuc2lnbmVkIGxvbmcgZGF0YSkN CiAJCWlmIChpZGV2LT5tY19pZmNfY291bnQpDQogCQkJbWxkX2lmY19zdGFydF90aW1lcihpZGV2 LCBpZGV2LT5tY19tYXhkZWxheSk7DQogCX0NCi0JX19pbjZfZGV2X3B1dChpZGV2KTsNCisJaW42 X2Rldl9wdXQoaWRldik7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIG1sZF9pZmNfZXZlbnQoc3RydWN0 IGluZXQ2X2RldiAqaWRldikNCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZGlzYy5jIGIvbmV0L2lw djYvbmRpc2MuYw0KaW5kZXggOWZmYzM3Zi4uYmM1NTM1OCAxMDA2NDQNCi0tLSBhL25ldC9pcHY2 L25kaXNjLmMNCisrKyBiL25ldC9pcHY2L25kaXNjLmMNCkBAIC00NDcsNyArNDQ3LDYgQEAgc3Ry dWN0IHNrX2J1ZmYgKm5kaXNjX2J1aWxkX3NrYihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LA0KIAlz dHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KIAlzdHJ1Y3QgaWNtcDZoZHIgKmhkcjsNCiAJaW50IGxlbjsN Ci0JaW50IGVycjsNCiAJdTggKm9wdDsNCiANCiAJaWYgKCFkZXYtPmFkZHJfbGVuKQ0KQEAgLTQ1 NywxNCArNDU2LDEyIEBAIHN0cnVjdCBza19idWZmICpuZGlzY19idWlsZF9za2Ioc3RydWN0IG5l dF9kZXZpY2UgKmRldiwNCiAJaWYgKGxsaW5mbykNCiAJCWxlbiArPSBuZGlzY19vcHRfYWRkcl9z cGFjZShkZXYpOw0KIA0KLQlza2IgPSBzb2NrX2FsbG9jX3NlbmRfc2tiKHNrLA0KLQkJCQkgIChN QVhfSEVBREVSICsgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSArDQotCQkJCSAgIGxlbiArIExMX0FM TE9DQVRFRF9TUEFDRShkZXYpKSwNCi0JCQkJICAxLCAmZXJyKTsNCisJc2tiID0gYWxsb2Nfc2ti KChNQVhfSEVBREVSICsgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSArDQorCQkJIGxlbiArIExMX0FM TE9DQVRFRF9TUEFDRShkZXYpKSwgR0ZQX0FUT01JQyk7DQogCWlmICghc2tiKSB7DQogCQlORF9Q UklOVEswKEtFUk5fRVJSDQotCQkJICAgIklDTVB2NiBORDogJXMoKSBmYWlsZWQgdG8gYWxsb2Nh dGUgYW4gc2tiLCBlcnI9JWQuXG4iLA0KLQkJCSAgIF9fZnVuY19fLCBlcnIpOw0KKwkJCSAgICJJ Q01QdjYgTkQ6ICVzKCkgZmFpbGVkIHRvIGFsbG9jYXRlIGFuIHNrYi5cbiIsDQorCQkJICAgX19m dW5jX18pOw0KIAkJcmV0dXJuIE5VTEw7DQogCX0NCiANCkBAIC00OTIsNiArNDg5LDExIEBAIHN0 cnVjdCBza19idWZmICpuZGlzY19idWlsZF9za2Ioc3RydWN0IG5ldF9kZXZpY2UgKmRldiwNCiAJ CQkJCSAgIGNzdW1fcGFydGlhbChoZHIsDQogCQkJCQkJCWxlbiwgMCkpOw0KIA0KKwkvKiBNYW51 YWxseSBhc3NpZ24gc29ja2V0IG93bmVyc2hpcCBhcyB3ZSBhdm9pZCBjYWxsaW5nDQorCSAqIHNv Y2tfYWxsb2Nfc2VuZF9wc2tiKCkgdG8gYnlwYXNzIHdtZW0gYnVmZmVyIGxpbWl0cw0KKwkgKi8N CisJc2tiX3NldF9vd25lcl93KHNrYiwgc2spOw0KKw0KIAlyZXR1cm4gc2tiOw0KIH0NCiANCmRp ZmYgLS1naXQgYS9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMgYi9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMN CmluZGV4IDQxMWZlMmMuLmViYTVkZWIgMTAwNjQ0DQotLS0gYS9uZXQvaXB2Ni9yZWFzc2VtYmx5 LmMNCisrKyBiL25ldC9pcHY2L3JlYXNzZW1ibHkuYw0KQEAgLTUxNyw2ICs1MTcsNyBAQCBzdGF0 aWMgaW50IGlwNl9mcmFnX3JlYXNtKHN0cnVjdCBmcmFnX3F1ZXVlICpmcSwgc3RydWN0IHNrX2J1 ZmYgKnByZXYsDQogCWhlYWQtPnRzdGFtcCA9IGZxLT5xLnN0YW1wOw0KIAlpcHY2X2hkcihoZWFk KS0+cGF5bG9hZF9sZW4gPSBodG9ucyhwYXlsb2FkX2xlbik7DQogCUlQNkNCKGhlYWQpLT5uaG9m ZiA9IG5ob2ZmOw0KKwlJUDZDQihoZWFkKS0+ZmxhZ3MgfD0gSVA2U0tCX0ZSQUdNRU5URUQ7DQog DQogCS8qIFllcywgYW5kIGZvbGQgcmVkdW5kYW50IGNoZWNrc3VtIGJhY2suIDgpICovDQogCWlm IChoZWFkLT5pcF9zdW1tZWQgPT0gQ0hFQ0tTVU1fQ09NUExFVEUpDQpAQCAtNTUyLDYgKzU1Myw5 IEBAIHN0YXRpYyBpbnQgaXB2Nl9mcmFnX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIAljb25z dCBzdHJ1Y3QgaXB2NmhkciAqaGRyID0gaXB2Nl9oZHIoc2tiKTsNCiAJc3RydWN0IG5ldCAqbmV0 ID0gZGV2X25ldChza2JfZHN0KHNrYiktPmRldik7DQogDQorCWlmIChJUDZDQihza2IpLT5mbGFn cyAmIElQNlNLQl9GUkFHTUVOVEVEKQ0KKwkJZ290byBmYWlsX2hkcjsNCisNCiAJSVA2X0lOQ19T VEFUU19CSChuZXQsIGlwNl9kc3RfaWRldihza2JfZHN0KHNrYikpLCBJUFNUQVRTX01JQl9SRUFT TVJFUURTKTsNCiANCiAJLyogSnVtYm8gcGF5bG9hZCBpbmhpYml0cyBmcmFnLiBoZWFkZXIgKi8N CkBAIC01NzIsNiArNTc2LDcgQEAgc3RhdGljIGludCBpcHY2X2ZyYWdfcmN2KHN0cnVjdCBza19i dWZmICpza2IpDQogCQkJCSBpcDZfZHN0X2lkZXYoc2tiX2RzdChza2IpKSwgSVBTVEFUU19NSUJf UkVBU01PS1MpOw0KIA0KIAkJSVA2Q0Ioc2tiKS0+bmhvZmYgPSAodTggKilmaGRyIC0gc2tiX25l dHdvcmtfaGVhZGVyKHNrYik7DQorCQlJUDZDQihza2IpLT5mbGFncyB8PSBJUDZTS0JfRlJBR01F TlRFRDsNCiAJCXJldHVybiAxOw0KIAl9DQogDQpkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9p cHZzL2lwX3ZzX3htaXQuYyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c194bWl0LmMNCmluZGV4 IGFhMmQ3MjAuLjM4YzA4MTMgMTAwNjQ0DQotLS0gYS9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNf eG1pdC5jDQorKysgYi9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfeG1pdC5jDQpAQCAtODUzLDcg Kzg1Myw3IEBAIGlwX3ZzX3R1bm5lbF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBp cF92c19jb25uICpjcCwNCiAJaXBoLT5kYWRkcgkJPQljcC0+ZGFkZHIuaXA7DQogCWlwaC0+c2Fk ZHIJCT0Jc2FkZHI7DQogCWlwaC0+dHRsCQk9CW9sZF9pcGgtPnR0bDsNCi0JaXBfc2VsZWN0X2lk ZW50KGlwaCwgJnJ0LT5kc3QsIE5VTEwpOw0KKwlpcF9zZWxlY3RfaWRlbnQoc2tiLCAmcnQtPmRz dCwgTlVMTCk7DQogDQogCS8qIEFub3RoZXIgaGFjazogYXZvaWQgaWNtcF9zZW5kIGluIGlwX2Zy YWdtZW50ICovDQogCXNrYi0+bG9jYWxfZGYgPSAxOw0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9z Y2hfaHRiLmMgYi9uZXQvc2NoZWQvc2NoX2h0Yi5jDQppbmRleCBmMDhiOTE2Ni4uY2FhNWFmZiAx MDA2NDQNCi0tLSBhL25ldC9zY2hlZC9zY2hfaHRiLmMNCisrKyBiL25ldC9zY2hlZC9zY2hfaHRi LmMNCkBAIC04Niw3ICs4Niw3IEBAIHN0cnVjdCBodGJfY2xhc3Mgew0KIAl1bnNpZ25lZCBpbnQg Y2hpbGRyZW47DQogCXN0cnVjdCBodGJfY2xhc3MgKnBhcmVudDsJLyogcGFyZW50IGNsYXNzICov DQogDQotCWludCBwcmlvOwkJLyogdGhlc2UgdHdvIGFyZSB1c2VkIG9ubHkgYnkgbGVhdmVzLi4u ICovDQorCXUzMiBwcmlvOwkJLyogdGhlc2UgdHdvIGFyZSB1c2VkIG9ubHkgYnkgbGVhdmVzLi4u ICovDQogCWludCBxdWFudHVtOwkJLyogYnV0IHN0b3JlZCBmb3IgcGFyZW50LXRvLWxlYWYgcmV0 dXJuICovDQogDQogCXVuaW9uIHsNCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9pcHY2LmMgYi9uZXQv c2N0cC9pcHY2LmMNCmluZGV4IDgxMDQyNzguLjBiNmEzOTEgMTAwNjQ0DQotLS0gYS9uZXQvc2N0 cC9pcHY2LmMNCisrKyBiL25ldC9zY3RwL2lwdjYuYw0KQEAgLTIwNSw0NSArMjA1LDI0IEBAIG91 dDoNCiAJCWluNl9kZXZfcHV0KGlkZXYpOw0KIH0NCiANCi0vKiBCYXNlZCBvbiB0Y3BfdjZfeG1p dCgpIGluIHRjcF9pcHY2LmMuICovDQogc3RhdGljIGludCBzY3RwX3Y2X3htaXQoc3RydWN0IHNr X2J1ZmYgKnNrYiwgc3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQpDQogew0KIAlzdHJ1 Y3Qgc29jayAqc2sgPSBza2ItPnNrOw0KIAlzdHJ1Y3QgaXB2Nl9waW5mbyAqbnAgPSBpbmV0Nl9z ayhzayk7DQotCXN0cnVjdCBmbG93aTYgZmw2Ow0KLQ0KLQltZW1zZXQoJmZsNiwgMCwgc2l6ZW9m KGZsNikpOw0KLQ0KLQlmbDYuZmxvd2k2X3Byb3RvID0gc2stPnNrX3Byb3RvY29sOw0KLQ0KLQkv KiBGaWxsIGluIHRoZSBkZXN0IGFkZHJlc3MgZnJvbSB0aGUgcm91dGUgZW50cnkgcGFzc2VkIHdp dGggdGhlIHNrYg0KLQkgKiBhbmQgdGhlIHNvdXJjZSBhZGRyZXNzIGZyb20gdGhlIHRyYW5zcG9y dC4NCi0JICovDQotCWlwdjZfYWRkcl9jb3B5KCZmbDYuZGFkZHIsICZ0cmFuc3BvcnQtPmlwYWRk ci52Ni5zaW42X2FkZHIpOw0KLQlpcHY2X2FkZHJfY29weSgmZmw2LnNhZGRyLCAmdHJhbnNwb3J0 LT5zYWRkci52Ni5zaW42X2FkZHIpOw0KLQ0KLQlmbDYuZmxvd2xhYmVsID0gbnAtPmZsb3dfbGFi ZWw7DQotCUlQNl9FQ05fZmxvd194bWl0KHNrLCBmbDYuZmxvd2xhYmVsKTsNCi0JaWYgKGlwdjZf YWRkcl90eXBlKCZmbDYuc2FkZHIpICYgSVBWNl9BRERSX0xJTktMT0NBTCkNCi0JCWZsNi5mbG93 aTZfb2lmID0gdHJhbnNwb3J0LT5zYWRkci52Ni5zaW42X3Njb3BlX2lkOw0KLQllbHNlDQotCQlm bDYuZmxvd2k2X29pZiA9IHNrLT5za19ib3VuZF9kZXZfaWY7DQotDQotCWlmIChucC0+b3B0ICYm IG5wLT5vcHQtPnNyY3J0KSB7DQotCQlzdHJ1Y3QgcnQwX2hkciAqcnQwID0gKHN0cnVjdCBydDBf aGRyICopIG5wLT5vcHQtPnNyY3J0Ow0KLQkJaXB2Nl9hZGRyX2NvcHkoJmZsNi5kYWRkciwgcnQw LT5hZGRyKTsNCi0JfQ0KKwlzdHJ1Y3QgZmxvd2k2ICpmbDYgPSAmdHJhbnNwb3J0LT5mbC51Lmlw NjsNCiANCiAJU0NUUF9ERUJVR19QUklOVEsoIiVzOiBza2I6JXAsIGxlbjolZCwgc3JjOiVwSTYg ZHN0OiVwSTZcbiIsDQogCQkJICBfX2Z1bmNfXywgc2tiLCBza2ItPmxlbiwNCi0JCQkgICZmbDYu c2FkZHIsICZmbDYuZGFkZHIpOw0KKwkJCSAgJmZsNi0+c2FkZHIsICZmbDYtPmRhZGRyKTsNCiAN Ci0JU0NUUF9JTkNfU1RBVFMoU0NUUF9NSUJfT1VUU0NUUFBBQ0tTKTsNCisJSVA2X0VDTl9mbG93 X3htaXQoc2ssIGZsNi0+Zmxvd2xhYmVsKTsNCiANCiAJaWYgKCEodHJhbnNwb3J0LT5wYXJhbV9m bGFncyAmIFNQUF9QTVRVRF9FTkFCTEUpKQ0KIAkJc2tiLT5sb2NhbF9kZiA9IDE7DQogDQotCXJl dHVybiBpcDZfeG1pdChzaywgc2tiLCAmZmw2LCBucC0+b3B0LCBucC0+dGNsYXNzKTsNCisJU0NU UF9JTkNfU1RBVFMoU0NUUF9NSUJfT1VUU0NUUFBBQ0tTKTsNCisNCisJcmV0dXJuIGlwNl94bWl0 KHNrLCBza2IsIGZsNiwgbnAtPm9wdCwgbnAtPnRjbGFzcyk7DQogfQ0KIA0KIC8qIFJldHVybnMg dGhlIGRzdCBjYWNoZSBlbnRyeSBmb3IgdGhlIGdpdmVuIHNvdXJjZSBhbmQgZGVzdGluYXRpb24g aXANCkBAIC0yNTYsMTAgKzIzNSwxMiBAQCBzdGF0aWMgdm9pZCBzY3RwX3Y2X2dldF9kc3Qoc3Ry dWN0IHNjdHBfdHJhbnNwb3J0ICp0LCB1bmlvbiBzY3RwX2FkZHIgKnNhZGRyLA0KIAlzdHJ1Y3Qg ZHN0X2VudHJ5ICpkc3QgPSBOVUxMOw0KIAlzdHJ1Y3QgZmxvd2k2ICpmbDYgPSAmZmwtPnUuaXA2 Ow0KIAlzdHJ1Y3Qgc2N0cF9iaW5kX2FkZHIgKmJwOw0KKwlzdHJ1Y3QgaXB2Nl9waW5mbyAqbnAg PSBpbmV0Nl9zayhzayk7DQogCXN0cnVjdCBzY3RwX3NvY2thZGRyX2VudHJ5ICpsYWRkcjsNCiAJ dW5pb24gc2N0cF9hZGRyICpiYWRkciA9IE5VTEw7DQogCXVuaW9uIHNjdHBfYWRkciAqZGFkZHIg PSAmdC0+aXBhZGRyOw0KIAl1bmlvbiBzY3RwX2FkZHIgZHN0X3NhZGRyOw0KKwlzdHJ1Y3QgaW42 X2FkZHIgKmZpbmFsX3AsIGZpbmFsOw0KIAlfX3U4IG1hdGNobGVuID0gMDsNCiAJX191OCBibWF0 Y2hsZW47DQogCXNjdHBfc2NvcGVfdCBzY29wZTsNCkBAIC0yODIsNyArMjYzLDggQEAgc3RhdGlj IHZvaWQgc2N0cF92Nl9nZXRfZHN0KHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdCwgdW5pb24gc2N0 cF9hZGRyICpzYWRkciwNCiAJCVNDVFBfREVCVUdfUFJJTlRLKCJTUkM9JXBJNiAtICIsICZmbDYt PnNhZGRyKTsNCiAJfQ0KIA0KLQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNrLCBmbDYsIE5V TEwsIGZhbHNlKTsNCisJZmluYWxfcCA9IGZsNl91cGRhdGVfZHN0KGZsNiwgbnAtPm9wdCwgJmZp bmFsKTsNCisJZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxvdyhzaywgZmw2LCBmaW5hbF9wLCBmYWxz ZSk7DQogCWlmICghYXNvYyB8fCBzYWRkcikNCiAJCWdvdG8gb3V0Ow0KIA0KQEAgLTMzMywxMCAr MzE1LDEyIEBAIHN0YXRpYyB2b2lkIHNjdHBfdjZfZ2V0X2RzdChzdHJ1Y3Qgc2N0cF90cmFuc3Bv cnQgKnQsIHVuaW9uIHNjdHBfYWRkciAqc2FkZHIsDQogCQl9DQogCX0NCiAJcmN1X3JlYWRfdW5s b2NrKCk7DQorDQogCWlmIChiYWRkcikgew0KIAkJaXB2Nl9hZGRyX2NvcHkoJmZsNi0+c2FkZHIs ICZiYWRkci0+djYuc2luNl9hZGRyKTsNCiAJCWZsNi0+Zmw2X3Nwb3J0ID0gYmFkZHItPnY2LnNp bjZfcG9ydDsNCi0JCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssIGZsNiwgTlVMTCwgZmFs c2UpOw0KKwkJZmluYWxfcCA9IGZsNl91cGRhdGVfZHN0KGZsNiwgbnAtPm9wdCwgJmZpbmFsKTsN CisJCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssIGZsNiwgZmluYWxfcCwgZmFsc2UpOw0K IAl9DQogDQogb3V0Og0KZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3NpZGVlZmZlY3QuYyBiL25l dC9zY3RwL3NtX3NpZGVlZmZlY3QuYw0KaW5kZXggOTAzMmQ1MC4uNzYzODhiMCAxMDA2NDQNCi0t LSBhL25ldC9zY3RwL3NtX3NpZGVlZmZlY3QuYw0KKysrIGIvbmV0L3NjdHAvc21fc2lkZWVmZmVj dC5jDQpAQCAtMTYwNCw5ICsxNjA0LDggQEAgc3RhdGljIGludCBzY3RwX2NtZF9pbnRlcnByZXRl cihzY3RwX2V2ZW50X3QgZXZlbnRfdHlwZSwNCiAJCQkJCWFzb2MtPm91dHF1ZXVlLm91dHN0YW5k aW5nX2J5dGVzOw0KIAkJCXNhY2toLm51bV9nYXBfYWNrX2Jsb2NrcyA9IDA7DQogCQkJc2Fja2gu bnVtX2R1cF90c25zID0gMDsNCi0JCQljaHVuay0+c3ViaC5zYWNrX2hkciA9ICZzYWNraDsNCiAJ CQlzY3RwX2FkZF9jbWRfc2YoY29tbWFuZHMsIFNDVFBfQ01EX1BST0NFU1NfU0FDSywNCi0JCQkJ CVNDVFBfQ0hVTksoY2h1bmspKTsNCisJCQkJCVNDVFBfU0FDS0goJnNhY2toKSk7DQogCQkJYnJl YWs7DQogDQogCQljYXNlIFNDVFBfQ01EX0RJU0NBUkRfUEFDS0VUOg0KZGlmZiAtLWdpdCBhL25l dC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29ja2V0LmMNCmluZGV4IGJhMDEwOGYuLmM1M2Qw MWUgMTAwNjQ0DQotLS0gYS9uZXQvc2N0cC9zb2NrZXQuYw0KKysrIGIvbmV0L3NjdHAvc29ja2V0 LmMNCkBAIC04MTQsNiArODE0LDkgQEAgc3RhdGljIGludCBzY3RwX3NlbmRfYXNjb25mX2RlbF9p cChzdHJ1Y3Qgc29jawkJKnNrLA0KIAkJCWdvdG8gc2tpcF9ta2FzY29uZjsNCiAJCX0NCiANCisJ CWlmIChsYWRkciA9PSBOVUxMKQ0KKwkJCXJldHVybiAtRUlOVkFMOw0KKw0KIAkJLyogV2UgZG8g bm90IG5lZWQgUkNVIHByb3RlY3Rpb24gdGhyb3VnaG91dCB0aGlzIGxvb3ANCiAJCSAqIGJlY2F1 c2UgdGhpcyBpcyBkb25lIHVuZGVyIGEgc29ja2V0IGxvY2sgZnJvbSB0aGUNCiAJCSAqIHNldHNv Y2tvcHQgY2FsbC4NCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9ldGhfbWVkaWEuYyBiL25ldC90aXBj L2V0aF9tZWRpYS5jDQppbmRleCBlNzI4ZDRjLi5hMjI0YTM4IDEwMDY0NA0KLS0tIGEvbmV0L3Rp cGMvZXRoX21lZGlhLmMNCisrKyBiL25ldC90aXBjL2V0aF9tZWRpYS5jDQpAQCAtNTMsNiArNTMs NyBAQCBzdHJ1Y3QgZXRoX2JlYXJlciB7DQogCXN0cnVjdCB0aXBjX2JlYXJlciAqYmVhcmVyOw0K IAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2Ow0KIAlzdHJ1Y3QgcGFja2V0X3R5cGUgdGlwY19wYWNr ZXRfdHlwZTsNCisJc3RydWN0IHdvcmtfc3RydWN0IHNldHVwOw0KIH07DQogDQogc3RhdGljIHN0 cnVjdCBldGhfYmVhcmVyIGV0aF9iZWFyZXJzW01BWF9FVEhfQkVBUkVSU107DQpAQCAtMTIxLDYg KzEyMiwxNyBAQCBzdGF0aWMgaW50IHJlY3ZfbXNnKHN0cnVjdCBza19idWZmICpidWYsIHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsDQogfQ0KIA0KIC8qKg0KKyAqIHNldHVwX2JlYXJlciAtIHNldHVw IGFzc29jaWF0aW9uIGJldHdlZW4gRXRoZXJuZXQgYmVhcmVyIGFuZCBpbnRlcmZhY2UNCisgKi8N CitzdGF0aWMgdm9pZCBzZXR1cF9iZWFyZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KK3sN CisJc3RydWN0IGV0aF9iZWFyZXIgKmViX3B0ciA9DQorCQljb250YWluZXJfb2Yod29yaywgc3Ry dWN0IGV0aF9iZWFyZXIsIHNldHVwKTsNCisNCisJZGV2X2FkZF9wYWNrKCZlYl9wdHItPnRpcGNf cGFja2V0X3R5cGUpOw0KK30NCisNCisvKioNCiAgKiBlbmFibGVfYmVhcmVyIC0gYXR0YWNoIFRJ UEMgYmVhcmVyIHRvIGFuIEV0aGVybmV0IGludGVyZmFjZQ0KICAqLw0KIA0KQEAgLTE2NCw3ICsx NzYsOCBAQCBzdGF0aWMgaW50IGVuYWJsZV9iZWFyZXIoc3RydWN0IHRpcGNfYmVhcmVyICp0Yl9w dHIpDQogCWViX3B0ci0+dGlwY19wYWNrZXRfdHlwZS5mdW5jID0gcmVjdl9tc2c7DQogCWViX3B0 ci0+dGlwY19wYWNrZXRfdHlwZS5hZl9wYWNrZXRfcHJpdiA9IGViX3B0cjsNCiAJSU5JVF9MSVNU X0hFQUQoJihlYl9wdHItPnRpcGNfcGFja2V0X3R5cGUubGlzdCkpOw0KLQlkZXZfYWRkX3BhY2so JmViX3B0ci0+dGlwY19wYWNrZXRfdHlwZSk7DQorCUlOSVRfV09SSygmZWJfcHRyLT5zZXR1cCwg c2V0dXBfYmVhcmVyKTsNCisJc2NoZWR1bGVfd29yaygmZWJfcHRyLT5zZXR1cCk7DQogDQogCS8q IEFzc29jaWF0ZSBUSVBDIGJlYXJlciB3aXRoIEV0aGVybmV0IGJlYXJlciAqLw0KIA0KZGlmZiAt LWdpdCBhL3NjcmlwdHMva2VybmVsLWRvYyBiL3NjcmlwdHMva2VybmVsLWRvYw0KaW5kZXggZDc5 MzAwMS4uYmEzZDlkZiAxMDA3NTUNCi0tLSBhL3NjcmlwdHMva2VybmVsLWRvYw0KKysrIGIvc2Ny aXB0cy9rZXJuZWwtZG9jDQpAQCAtMjA0NCw2ICsyMDQ0LDkgQEAgc3ViIHByb2Nlc3NfZmlsZSgk KSB7DQogDQogICAgICRzZWN0aW9uX2NvdW50ZXIgPSAwOw0KICAgICB3aGlsZSAoPElOPikgew0K Kwl3aGlsZSAocy9cXFxzKiQvLykgew0KKwkgICAgJF8gLj0gPElOPjsNCisJfQ0KIAlpZiAoJHN0 YXRlID09IDApIHsNCiAJICAgIGlmICgvJGRvY19zdGFydC9vKSB7DQogCQkkc3RhdGUgPSAxOwkJ IyBuZXh0IGxpbmUgaXMgYWx3YXlzIHRoZSBmdW5jdGlvbiBuYW1lDQpkaWZmIC0tZ2l0IGEvc291 bmQvcGNpL2hkYS9oZGFfaW50ZWwuYyBiL3NvdW5kL3BjaS9oZGEvaGRhX2ludGVsLmMNCmluZGV4 IGExNjZhODUuLjdlYmU0YjcgMTAwNjQ0DQotLS0gYS9zb3VuZC9wY2kvaGRhL2hkYV9pbnRlbC5j DQorKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9pbnRlbC5jDQpAQCAtMjYyMSw2ICsyNjIxLDcgQEAg c3RhdGljIHN0cnVjdCBzbmRfcGNpX3F1aXJrIG1zaV9ibGFja19saXN0W10gX19kZXZpbml0ZGF0 YSA9IHsNCiAJU05EX1BDSV9RVUlSSygweDEwNDMsIDB4ODFmMiwgIkFTVVMiLCAwKSwgLyogQXRo bG9uNjQgWDIgKyBudmlkaWEgKi8NCiAJU05EX1BDSV9RVUlSSygweDEwNDMsIDB4ODFmNiwgIkFT VVMiLCAwKSwgLyogbnZpZGlhICovDQogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgyMmQsICJB U1VTIiwgMCksIC8qIEF0aGxvbjY0IFgyICsgbnZpZGlhIE1DUDU1ICovDQorCVNORF9QQ0lfUVVJ UksoMHgxMTc5LCAweGZiNDQsICJUb3NoaWJhIFNhdGVsbGl0ZSBDODcwIiwgMCksIC8qIEFNRCBI dWRzb24gKi8NCiAJU05EX1BDSV9RVUlSSygweDE4NDksIDB4MDg4OCwgIkFTUm9jayIsIDApLCAv KiBBdGhsb242NCBYMiArIG52aWRpYSAqLw0KIAlTTkRfUENJX1FVSVJLKDB4YTBhMCwgMHgwNTc1 LCAiQW9wZW4gTVo5MTUtTSIsIDApLCAvKiBJQ0g2ICovDQogCXt9DQpkaWZmIC0tZ2l0IGEvc291 bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYw0KaW5k ZXggNTVkOWIzMC4uMDVmMDk3YSAxMDA2NDQNCi0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRt aS5jDQorKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYw0KQEAgLTUxMiw2ICs1MTIsMTcg QEAgc3RhdGljIGludCBoZG1pX2NoYW5uZWxfYWxsb2NhdGlvbihzdHJ1Y3QgaGRtaV9lbGQgKmVs ZCwgaW50IGNoYW5uZWxzKQ0KIAkJfQ0KIAl9DQogDQorCWlmICghY2EpIHsNCisJCS8qIGlmIHRo ZXJlIHdhcyBubyBtYXRjaCwgc2VsZWN0IHRoZSByZWd1bGFyIEFMU0EgY2hhbm5lbA0KKwkJICog YWxsb2NhdGlvbiB3aXRoIHRoZSBtYXRjaGluZyBudW1iZXIgb2YgY2hhbm5lbHMgKi8NCisJCWZv ciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNoYW5uZWxfYWxsb2NhdGlvbnMpOyBpKyspIHsNCisJ CQlpZiAoY2hhbm5lbHMgPT0gY2hhbm5lbF9hbGxvY2F0aW9uc1tpXS5jaGFubmVscykgew0KKwkJ CQljYSA9IGNoYW5uZWxfYWxsb2NhdGlvbnNbaV0uY2FfaW5kZXg7DQorCQkJCWJyZWFrOw0KKwkJ CX0NCisJCX0NCisJfQ0KKw0KIAlzbmRfcHJpbnRfY2hhbm5lbF9hbGxvY2F0aW9uKGVsZC0+c3Br X2FsbG9jLCBidWYsIHNpemVvZihidWYpKTsNCiAJc25kX3ByaW50ZGQoIkhETUk6IHNlbGVjdCBD QSAweCV4IGZvciAlZC1jaGFubmVsIGFsbG9jYXRpb246ICVzXG4iLA0KIAkJICAgIGNhLCBjaGFu bmVscywgYnVmKTsNCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzLzg4cG04NjB4LWNvZGVj LmMgYi9zb3VuZC9zb2MvY29kZWNzLzg4cG04NjB4LWNvZGVjLmMNCmluZGV4IDVjYTEyMmUuLjI5 MGY0ZDMgMTAwNjQ0DQotLS0gYS9zb3VuZC9zb2MvY29kZWNzLzg4cG04NjB4LWNvZGVjLmMNCisr KyBiL3NvdW5kL3NvYy9jb2RlY3MvODhwbTg2MHgtY29kZWMuYw0KQEAgLTM1MSw2ICszNTEsOSBA QCBzdGF0aWMgaW50IHNuZF9zb2NfcHV0X3ZvbHN3XzJyX3N0KHN0cnVjdCBzbmRfa2NvbnRyb2wg Kmtjb250cm9sLA0KIAl2YWwgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXTsNCiAJ dmFsMiA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdOw0KIA0KKwlpZiAodmFsID49 IEFSUkFZX1NJWkUoc3RfdGFibGUpIHx8IHZhbDIgPj0gQVJSQVlfU0laRShzdF90YWJsZSkpDQor CQlyZXR1cm4gLUVJTlZBTDsNCisNCiAJZXJyID0gc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywg cmVnLCAweDNmLCBzdF90YWJsZVt2YWxdLm0pOw0KIAlpZiAoZXJyIDwgMCkNCiAJCXJldHVybiBl cnI7DQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9tYXg5ODA5NS5jIGIvc291bmQvc29j L2NvZGVjcy9tYXg5ODA5NS5jDQppbmRleCAyNmQ3YjA4Li5hNTJjMTViIDEwMDY0NA0KLS0tIGEv c291bmQvc29jL2NvZGVjcy9tYXg5ODA5NS5jDQorKysgYi9zb3VuZC9zb2MvY29kZWNzL21heDk4 MDk1LmMNCkBAIC0xODYxLDcgKzE4NjEsNyBAQCBzdGF0aWMgaW50IG1heDk4MDk1X3B1dF9lcV9l bnVtKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLA0KIAlzdHJ1Y3QgbWF4OTgwOTVfcGRh dGEgKnBkYXRhID0gbWF4OTgwOTUtPnBkYXRhOw0KIAlpbnQgY2hhbm5lbCA9IG1heDk4MDk1X2dl dF9lcV9jaGFubmVsKGtjb250cm9sLT5pZC5uYW1lKTsNCiAJc3RydWN0IG1heDk4MDk1X2NkYXRh ICpjZGF0YTsNCi0JaW50IHNlbCA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdOw0K Kwl1bnNpZ25lZCBpbnQgc2VsID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07DQog CXN0cnVjdCBtYXg5ODA5NV9lcV9jZmcgKmNvZWZfc2V0Ow0KIAlpbnQgZnMsIGJlc3QsIGJlc3Rf dmFsLCBpOw0KIAlpbnQgcmVnbWFzaywgcmVnc2F2ZTsNCkBAIC0yMDE0LDcgKzIwMTQsNyBAQCBz dGF0aWMgaW50IG1heDk4MDk1X3B1dF9icV9lbnVtKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250 cm9sLA0KIAlzdHJ1Y3QgbWF4OTgwOTVfcGRhdGEgKnBkYXRhID0gbWF4OTgwOTUtPnBkYXRhOw0K IAlpbnQgY2hhbm5lbCA9IG1heDk4MDk1X2dldF9icV9jaGFubmVsKGNvZGVjLCBrY29udHJvbC0+ aWQubmFtZSk7DQogCXN0cnVjdCBtYXg5ODA5NV9jZGF0YSAqY2RhdGE7DQotCWludCBzZWwgPSB1 Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXTsNCisJdW5zaWduZWQgaW50IHNlbCA9IHVj b250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdOw0KIAlzdHJ1Y3QgbWF4OTgwOTVfYmlxdWFk X2NmZyAqY29lZl9zZXQ7DQogCWludCBmcywgYmVzdCwgYmVzdF92YWwsIGk7DQogCWludCByZWdt YXNrLCByZWdzYXZlOw0KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204OTYwLmMgYi9z b3VuZC9zb2MvY29kZWNzL3dtODk2MC5jDQppbmRleCAyZGYyNTNjLi5lZjk2Y2E2IDEwMDY0NA0K LS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg5NjAuYw0KKysrIGIvc291bmQvc29jL2NvZGVjcy93 bTg5NjAuYw0KQEAgLTgwNSw5ICs4MDUsOSBAQCBzdGF0aWMgaW50IHdtODk2MF9zZXRfZGFpX3Bs bChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwgaW50IHBsbF9pZCwNCiAJaWYgKHBsbF9k aXYuaykgew0KIAkJcmVnIHw9IDB4MjA7DQogDQotCQlzbmRfc29jX3dyaXRlKGNvZGVjLCBXTTg5 NjBfUExMMiwgKHBsbF9kaXYuayA+PiAxOCkgJiAweDNmKTsNCi0JCXNuZF9zb2Nfd3JpdGUoY29k ZWMsIFdNODk2MF9QTEwzLCAocGxsX2Rpdi5rID4+IDkpICYgMHgxZmYpOw0KLQkJc25kX3NvY193 cml0ZShjb2RlYywgV004OTYwX1BMTDQsIHBsbF9kaXYuayAmIDB4MWZmKTsNCisJCXNuZF9zb2Nf d3JpdGUoY29kZWMsIFdNODk2MF9QTEwyLCAocGxsX2Rpdi5rID4+IDE2KSAmIDB4ZmYpOw0KKwkJ c25kX3NvY193cml0ZShjb2RlYywgV004OTYwX1BMTDMsIChwbGxfZGl2LmsgPj4gOCkgJiAweGZm KTsNCisJCXNuZF9zb2Nfd3JpdGUoY29kZWMsIFdNODk2MF9QTEw0LCBwbGxfZGl2LmsgJiAweGZm KTsNCiAJfQ0KIAlzbmRfc29jX3dyaXRlKGNvZGVjLCBXTTg5NjBfUExMMSwgcmVnKTsNCiANCmRp ZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvbWFwLmMgYi90b29scy9wZXJmL3V0aWwvbWFwLmMN CmluZGV4IDQyZGZmYTAuLmY3YTdiOWQgMTAwNjQ0DQotLS0gYS90b29scy9wZXJmL3V0aWwvbWFw LmMNCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9tYXAuYw0KQEAgLTE2LDYgKzE2LDcgQEAgY29uc3Qg Y2hhciAqbWFwX3R5cGVfX25hbWVbTUFQX19OUl9UWVBFU10gPSB7DQogc3RhdGljIGlubGluZSBp bnQgaXNfYW5vbl9tZW1vcnkoY29uc3QgY2hhciAqZmlsZW5hbWUpDQogew0KIAlyZXR1cm4gIXN0 cmNtcChmaWxlbmFtZSwgIi8vYW5vbiIpIHx8DQorCSAgICAgICAhc3RyY21wKGZpbGVuYW1lLCAi L2Rldi96ZXJvIChkZWxldGVkKSIpIHx8DQogCSAgICAgICAhc3RyY21wKGZpbGVuYW1lLCAiL2Fu b25faHVnZXBhZ2UgKGRlbGV0ZWQpIik7DQogfQ0KIA0K --=-OwICMyT5ruQIGZUmOpd+-- --=-gvEKZeukf5v/PvCE+hIj Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (GNU/Linux) iQIVAwUAUmTttee/yOyVhhEJAQoBMQ/8CbzrOlS2Nyd0BEQHOlo8coG5g38nZqHa Qc7dg9u7AWHwiVfWE00UO1YMq91eUVdE8h98jVfkwzGA5fKyaGK+YPsdjmltthbN r7zX4lC8cZ9AsZ2DxKqYyHSFLQDOFOYB10Gff/BG+O9nFHaF2uLrr3NtvE4VJb6J dcoZGAlSEUQQtfwEoeyuUVmHaIs2n0xXtaB3YAWMq1+R0If3f+UYmxWLbxZIniWy akoiGyXS8G5FJ8eSRNTkfqDVNSfwb3buRVCuulfaIMze3/AGnAKRO94gR63dmOTN AZRT1dXN8Jzu182xf7OjKyqbMCpCmp1DlOT5+iZn2h9ZtlCVkgCzwXu6WAP84WrI 1dbEnOHSuovEB7d4OLG8H0JiGhbfw8LpjJAT3ASqdiVVg+TSVPzL7xnexg3Gxo67 RpsERidvtfm0/XnFzLNAWMVsJCZf+GtAp7j6m2JTPyfVyiFasbIXEPaJzm6nQtO9 Ro1xtPLrI2YXX4G2+QCPANTjrhcsr7bye/oihvZOQSEpKbnYaGycqDdOrVH1n43K mGxU3iVAvYe0hyxb73MkIAFqGsTTIoB9486sUytH2lqDkB/Cxrs4gKLZgy7t7zg4 MJt0ig6ASeY0xm8MIYgEKcsCLCziqJBgBEouYDTVMuoGXLOieBQRLT7Miihv2PQZ JzuGPl0plPk= =WsnV -----END PGP SIGNATURE----- --=-gvEKZeukf5v/PvCE+hIj-- -- 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/