Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752168AbaL2BPI (ORCPT ); Sun, 28 Dec 2014 20:15:08 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:33274 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751747AbaL2BPC (ORCPT ); Sun, 28 Dec 2014 20:15:02 -0500 Message-ID: <1419815687.5686.2.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 00/27] 3.2.66-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, Satoru Takeuchi , Guenter Roeck , Phil Jensen , akpm@linux-foundation.org Date: Mon, 29 Dec 2014 02:14:47 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-ckmxQVbDF7Q4gmcQRohH" X-Mailer: Evolution 3.12.9-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 46.189.28.191 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 --=-ckmxQVbDF7Q4gmcQRohH Content-Type: multipart/mixed; boundary="=-tIvY82XTxH7ybYT0Wcbb" --=-tIvY82XTxH7ybYT0Wcbb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.66-rc1 relative to 3.2.65. Ben. --=20 Ben Hutchings Anthony's Law of Force: Don't force it, get a larger hammer. --=-tIvY82XTxH7ybYT0Wcbb Content-Disposition: attachment; filename="linux-3.2.66-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.66-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggMTQzMzEwOS4uY2RhN2UxZCAx MDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTEsNyArMSw3IEBACiBWRVJT SU9OID0gMwogUEFUQ0hMRVZFTCA9IDIKLVNVQkxFVkVMID0gNjUKLUVYVFJBVkVSU0lPTiA9CitT VUJMRVZFTCA9IDY2CitFWFRSQVZFUlNJT04gPSAtcmMxCiBOQU1FID0gU2FiZXItdG9vdGhlZCBT cXVpcnJlbAogCiAjICpET0NVTUVOVEFUSU9OKgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3Bs YXRmb3Jtcy9jZWxsL3NwdWZzL2lub2RlLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwv c3B1ZnMvaW5vZGUuYwppbmRleCA3MGVjNGU5Li45NDFkNWNiIDEwMDY0NAotLS0gYS9hcmNoL3Bv d2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1ZnMvaW5vZGUuYworKysgYi9hcmNoL3Bvd2VycGMvcGxh dGZvcm1zL2NlbGwvc3B1ZnMvaW5vZGUuYwpAQCAtMTY1LDcgKzE2NSw3IEBAIHN0YXRpYyB2b2lk IHNwdWZzX3BydW5lX2RpcihzdHJ1Y3QgZGVudHJ5ICpkaXIpCiAJc3RydWN0IGRlbnRyeSAqZGVu dHJ5LCAqdG1wOwogCiAJbXV0ZXhfbG9jaygmZGlyLT5kX2lub2RlLT5pX211dGV4KTsKLQlsaXN0 X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZGVudHJ5LCB0bXAsICZkaXItPmRfc3ViZGlycywgZF91LmRf Y2hpbGQpIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZGVudHJ5LCB0bXAsICZkaXItPmRf c3ViZGlycywgZF9jaGlsZCkgewogCQlzcGluX2xvY2soJmRlbnRyeS0+ZF9sb2NrKTsKIAkJaWYg KCEoZF91bmhhc2hlZChkZW50cnkpKSAmJiBkZW50cnktPmRfaW5vZGUpIHsKIAkJCWRnZXRfZGxv Y2soZGVudHJ5KTsKQEAgLTIyMyw3ICsyMjMsNyBAQCBvdXQ6CiAJICogLSBmcmVlIGNoaWxkJ3Mg aW5vZGUgaWYgcG9zc2libGUKIAkgKiAtIGZyZWUgY2hpbGQKIAkgKi8KLQlsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUoZGVudHJ5LCB0bXAsICZkaXItPmRfc3ViZGlycywgZF91LmRfY2hpbGQpIHsK KwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZGVudHJ5LCB0bXAsICZkaXItPmRfc3ViZGlycywg ZF9jaGlsZCkgewogCQlkcHV0KGRlbnRyeSk7CiAJfQogCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAv a2VybmVsL3RpbWUuYyBiL2FyY2gvczM5MC9rZXJuZWwvdGltZS5jCmluZGV4IGIyZjQ0ZGUuLmZk NjVlNWUyIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3RpbWUuYworKysgYi9hcmNoL3Mz OTAva2VybmVsL3RpbWUuYwpAQCAtMTEwLDIwICsxMTAsMTAgQEAgc3RhdGljIHZvaWQgZml4dXBf Y2xvY2tfY29tcGFyYXRvcih1bnNpZ25lZCBsb25nIGxvbmcgZGVsdGEpCiAJc2V0X2Nsb2NrX2Nv bXBhcmF0b3IoUzM5MF9sb3djb3JlLmNsb2NrX2NvbXBhcmF0b3IpOwogfQogCi1zdGF0aWMgaW50 IHMzOTBfbmV4dF9rdGltZShrdGltZV90IGV4cGlyZXMsCitzdGF0aWMgaW50IHMzOTBfbmV4dF9l dmVudCh1bnNpZ25lZCBsb25nIGRlbHRhLAogCQkJICAgc3RydWN0IGNsb2NrX2V2ZW50X2Rldmlj ZSAqZXZ0KQogewotCXN0cnVjdCB0aW1lc3BlYyB0czsKLQl1NjQgbnNlY3M7Ci0KLQl0cy50dl9z ZWMgPSB0cy50dl9uc2VjID0gMDsKLQltb25vdG9uaWNfdG9fYm9vdGJhc2VkKCZ0cyk7Ci0JbnNl Y3MgPSBrdGltZV90b19ucyhrdGltZV9hZGQodGltZXNwZWNfdG9fa3RpbWUodHMpLCBleHBpcmVz KSk7Ci0JZG9fZGl2KG5zZWNzLCAxMjUpOwotCVMzOTBfbG93Y29yZS5jbG9ja19jb21wYXJhdG9y ID0gc2NoZWRfY2xvY2tfYmFzZV9jYyArIChuc2VjcyA8PCA5KTsKLQkvKiBQcm9ncmFtIHRoZSBt YXhpbXVtIHZhbHVlIGlmIHdlIGhhdmUgYW4gb3ZlcmZsb3cgKD09IHllYXIgMjA0MikgKi8KLQlp ZiAodW5saWtlbHkoUzM5MF9sb3djb3JlLmNsb2NrX2NvbXBhcmF0b3IgPCBzY2hlZF9jbG9ja19i YXNlX2NjKSkKLQkJUzM5MF9sb3djb3JlLmNsb2NrX2NvbXBhcmF0b3IgPSAtMVVMTDsKKwlTMzkw X2xvd2NvcmUuY2xvY2tfY29tcGFyYXRvciA9IGdldF9jbG9jaygpICsgZGVsdGE7CiAJc2V0X2Ns b2NrX2NvbXBhcmF0b3IoUzM5MF9sb3djb3JlLmNsb2NrX2NvbXBhcmF0b3IpOwogCXJldHVybiAw OwogfQpAQCAtMTQ4LDE1ICsxMzgsMTQgQEAgdm9pZCBpbml0X2NwdV90aW1lcih2b2lkKQogCWNw dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKIAljZCA9ICZwZXJfY3B1KGNvbXBhcmF0b3JzLCBjcHUp OwogCWNkLT5uYW1lCQk9ICJjb21wYXJhdG9yIjsKLQljZC0+ZmVhdHVyZXMJCT0gQ0xPQ0tfRVZU X0ZFQVRfT05FU0hPVCB8Ci0JCQkJICBDTE9DS19FVlRfRkVBVF9LVElNRTsKKwljZC0+ZmVhdHVy ZXMJCT0gQ0xPQ0tfRVZUX0ZFQVRfT05FU0hPVDsKIAljZC0+bXVsdAkJPSAxNjc3NzsKIAljZC0+ c2hpZnQJCT0gMTI7CiAJY2QtPm1pbl9kZWx0YV9ucwk9IDE7CiAJY2QtPm1heF9kZWx0YV9ucwk9 IExPTkdfTUFYOwogCWNkLT5yYXRpbmcJCT0gNDAwOwogCWNkLT5jcHVtYXNrCQk9IGNwdW1hc2tf b2YoY3B1KTsKLQljZC0+c2V0X25leHRfa3RpbWUJPSBzMzkwX25leHRfa3RpbWU7CisJY2QtPnNl dF9uZXh0X2V2ZW50CT0gczM5MF9uZXh0X2V2ZW50OwogCWNkLT5zZXRfbW9kZQkJPSBzMzkwX3Nl dF9tb2RlOwogCiAJY2xvY2tldmVudHNfcmVnaXN0ZXJfZGV2aWNlKGNkKTsKZGlmZiAtLWdpdCBh L2FyY2gveDg2L2NyeXB0by9naGFzaC1jbG11bG5pLWludGVsX2FzbS5TIGIvYXJjaC94ODYvY3J5 cHRvL2doYXNoLWNsbXVsbmktaW50ZWxfYXNtLlMKaW5kZXggMWViN2Y5MC4uZWI0ZDJhMiAxMDA2 NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2doYXNoLWNsbXVsbmktaW50ZWxfYXNtLlMKKysrIGIv YXJjaC94ODYvY3J5cHRvL2doYXNoLWNsbXVsbmktaW50ZWxfYXNtLlMKQEAgLTI0LDEwICsyNCw2 IEBACiAuYWxpZ24gMTYKIC5MYnN3YXBfbWFzazoKIAkub2N0YSAweDAwMDEwMjAzMDQwNTA2MDcw ODA5MGEwYjBjMGQwZTBmCi0uTHBvbHk6Ci0JLm9jdGEgMHhjMjAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMQotLkx0d29fb25lOgotCS5vY3RhIDB4MDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDEKIAogI2RlZmluZSBEQVRBCSV4bW0wCiAjZGVmaW5lIFNIQVNICSV4bW0xCkBAIC0x MzEsMjcgKzEyNywzIEBAIEVOVFJZKGNsbXVsX2doYXNoX3VwZGF0ZSkKIAltb3Z1cHMgREFUQSwg KCVyZGkpCiAuTHVwZGF0ZV9qdXN0X3JldDoKIAlyZXQKLQotLyoKLSAqIHZvaWQgY2xtdWxfZ2hh c2hfc2V0a2V5KGJlMTI4ICpzaGFzaCwgY29uc3QgdTggKmtleSk7Ci0gKgotICogQ2FsY3VsYXRl IGhhc2hfa2V5IDw8IDEgbW9kIHBvbHkKLSAqLwotRU5UUlkoY2xtdWxfZ2hhc2hfc2V0a2V5KQot CW1vdmFwcyAuTGJzd2FwX21hc2ssIEJTV0FQCi0JbW92dXBzICglcnNpKSwgJXhtbTAKLQlQU0hV RkJfWE1NIEJTV0FQICV4bW0wCi0JbW92YXBzICV4bW0wLCAleG1tMQotCXBzbGxxICQxLCAleG1t MAotCXBzcmxxICQ2MywgJXhtbTEKLQltb3ZhcHMgJXhtbTEsICV4bW0yCi0JcHNsbGRxICQ4LCAl eG1tMQotCXBzcmxkcSAkOCwgJXhtbTIKLQlwb3IgJXhtbTEsICV4bW0wCi0JIyByZWR1Y3Rpb24K LQlwc2h1ZmQgJDBiMDAxMDAxMDAsICV4bW0yLCAleG1tMQotCXBjbXBlcWQgLkx0d29fb25lLCAl eG1tMQotCXBhbmQgLkxwb2x5LCAleG1tMQotCXB4b3IgJXhtbTEsICV4bW0wCi0JbW92dXBzICV4 bW0wLCAoJXJkaSkKLQlyZXQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9naGFzaC1jbG11 bG5pLWludGVsX2dsdWUuYyBiL2FyY2gveDg2L2NyeXB0by9naGFzaC1jbG11bG5pLWludGVsX2ds dWUuYwppbmRleCA5NzZhYTY0Li4yOTRhMjY0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8v Z2hhc2gtY2xtdWxuaS1pbnRlbF9nbHVlLmMKKysrIGIvYXJjaC94ODYvY3J5cHRvL2doYXNoLWNs bXVsbmktaW50ZWxfZ2x1ZS5jCkBAIC0yOSw4ICsyOSw2IEBAIHZvaWQgY2xtdWxfZ2hhc2hfbXVs KGNoYXIgKmRzdCwgY29uc3QgYmUxMjggKnNoYXNoKTsKIHZvaWQgY2xtdWxfZ2hhc2hfdXBkYXRl KGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjLCB1bnNpZ25lZCBpbnQgc3JjbGVuLAogCQkJY29u c3QgYmUxMjggKnNoYXNoKTsKIAotdm9pZCBjbG11bF9naGFzaF9zZXRrZXkoYmUxMjggKnNoYXNo LCBjb25zdCB1OCAqa2V5KTsKLQogc3RydWN0IGdoYXNoX2FzeW5jX2N0eCB7CiAJc3RydWN0IGNy eXB0ZF9haGFzaCAqY3J5cHRkX3RmbTsKIH07CkBAIC01NywxMyArNTUsMjMgQEAgc3RhdGljIGlu dCBnaGFzaF9zZXRrZXkoc3RydWN0IGNyeXB0b19zaGFzaCAqdGZtLAogCQkJY29uc3QgdTggKmtl eSwgdW5zaWduZWQgaW50IGtleWxlbikKIHsKIAlzdHJ1Y3QgZ2hhc2hfY3R4ICpjdHggPSBjcnlw dG9fc2hhc2hfY3R4KHRmbSk7CisJYmUxMjggKnggPSAoYmUxMjggKilrZXk7CisJdTY0IGEsIGI7 CiAKIAlpZiAoa2V5bGVuICE9IEdIQVNIX0JMT0NLX1NJWkUpIHsKIAkJY3J5cHRvX3NoYXNoX3Nl dF9mbGFncyh0Zm0sIENSWVBUT19URk1fUkVTX0JBRF9LRVlfTEVOKTsKIAkJcmV0dXJuIC1FSU5W QUw7CiAJfQogCi0JY2xtdWxfZ2hhc2hfc2V0a2V5KCZjdHgtPnNoYXNoLCBrZXkpOworCS8qIHBl cmZvcm0gbXVsdGlwbGljYXRpb24gYnkgJ3gnIGluIEdGKDJeMTI4KSAqLworCWEgPSBiZTY0X3Rv X2NwdSh4LT5hKTsKKwliID0gYmU2NF90b19jcHUoeC0+Yik7CisKKwljdHgtPnNoYXNoLmEgPSAo X19iZTY0KSgoYiA8PCAxKSB8IChhID4+IDYzKSk7CisJY3R4LT5zaGFzaC5iID0gKF9fYmU2NCko KGEgPDwgMSkgfCAoYiA+PiA2MykpOworCisJaWYgKGEgPj4gNjMpCisJCWN0eC0+c2hhc2guYiBe PSBjcHVfdG9fYmU2NCgweGMyKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVh dHVyZS5oCmluZGV4IGEzMTVmMWMuLmI4YTVmZTUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1 ZGUvYXNtL2NwdWZlYXR1cmUuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJl LmgKQEAgLTE5Myw2ICsxOTMsNyBAQAogI2RlZmluZSBYODZfRkVBVFVSRV9ERUNPREVBU1NJU1RT ICg4KjMyKzEyKSAvKiBBTUQgRGVjb2RlIEFzc2lzdHMgc3VwcG9ydCAqLwogI2RlZmluZSBYODZf RkVBVFVSRV9QQVVTRUZJTFRFUiAoOCozMisxMykgLyogQU1EIGZpbHRlcmVkIHBhdXNlIGludGVy Y2VwdCAqLwogI2RlZmluZSBYODZfRkVBVFVSRV9QRlRIUkVTSE9MRCAoOCozMisxNCkgLyogQU1E IHBhdXNlIGZpbHRlciB0aHJlc2hvbGQgKi8KKyNkZWZpbmUgWDg2X0ZFQVRVUkVfVk1NQ0FMTCAg ICAgKCA4KjMyKzE1KSAvKiBQcmVmZXIgdm1tY2FsbCB0byB2bWNhbGwgKi8KIAogCiAvKiBJbnRl bC1kZWZpbmVkIENQVSBmZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHgwMDAwMDAwNzowIChlYngpLCB3 b3JkIDkgKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9wYXJhLmggYi9h cmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1fcGFyYS5oCmluZGV4IDczNGMzNzYuLjlmMGE2ODAgMTAw NjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9wYXJhLmgKKysrIGIvYXJjaC94ODYv aW5jbHVkZS9hc20va3ZtX3BhcmEuaApAQCAtOTEsMTUgKzkxLDIxIEBAIHN0cnVjdCBrdm1fdmNw dV9wdl9hcGZfZGF0YSB7CiAKICNpZmRlZiBfX0tFUk5FTF9fCiAjaW5jbHVkZSA8YXNtL3Byb2Nl c3Nvci5oPgorI2luY2x1ZGUgPGFzbS9hbHRlcm5hdGl2ZS5oPgogCiBleHRlcm4gdm9pZCBrdm1j bG9ja19pbml0KHZvaWQpOwogZXh0ZXJuIGludCBrdm1fcmVnaXN0ZXJfY2xvY2soY2hhciAqdHh0 KTsKIAogCi0vKiBUaGlzIGluc3RydWN0aW9uIGlzIHZtY2FsbC4gIE9uIG5vbi1WVCBhcmNoaXRl Y3R1cmVzLCBpdCB3aWxsIGdlbmVyYXRlIGEKLSAqIHRyYXAgdGhhdCB3ZSB3aWxsIHRoZW4gcmV3 cml0ZSB0byB0aGUgYXBwcm9wcmlhdGUgaW5zdHJ1Y3Rpb24uCisjaWZkZWYgQ09ORklHX0RFQlVH X1JPREFUQQorI2RlZmluZSBLVk1fSFlQRVJDQUxMIFwKKyAgICAgICAgQUxURVJOQVRJVkUoIi5i eXRlIDB4MGYsMHgwMSwweGMxIiwgIi5ieXRlIDB4MGYsMHgwMSwweGQ5IiwgWDg2X0ZFQVRVUkVf Vk1NQ0FMTCkKKyNlbHNlCisvKiBPbiBBTUQgcHJvY2Vzc29ycywgdm1jYWxsIHdpbGwgZ2VuZXJh dGUgYSB0cmFwIHRoYXQgd2Ugd2lsbAorICogdGhlbiByZXdyaXRlIHRvIHRoZSBhcHByb3ByaWF0 ZSBpbnN0cnVjdGlvbi4KICAqLwogI2RlZmluZSBLVk1fSFlQRVJDQUxMICIuYnl0ZSAweDBmLDB4 MDEsMHhjMSIKKyNlbmRpZgogCiAvKiBGb3IgS1ZNIGh5cGVyY2FsbHMsIGEgdGhyZWUtYnl0ZSBz ZXF1ZW5jZSBvZiBlaXRoZXIgdGhlIHZtcnVuIG9yIHRoZSB2bW1ydW4KICAqIGluc3RydWN0aW9u LiAgVGhlIGh5cGVydmlzb3IgbWF5IHJlcGxhY2UgaXQgd2l0aCBzb21ldGhpbmcgZWxzZSBidXQg b25seSB0aGUKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvYW1kLmMgYi9hcmNoL3g4 Ni9rZXJuZWwvY3B1L2FtZC5jCmluZGV4IGYwN2JlY2MuLjJkNDRhMjggMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L2tlcm5lbC9jcHUvYW1kLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9hbWQuYwpA QCAtNDY5LDYgKzQ2OSwxMyBAQCBzdGF0aWMgdm9pZCBfX2NwdWluaXQgZWFybHlfaW5pdF9hbWQo c3RydWN0IGNwdWluZm9feDg2ICpjKQogCQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfRVhU RF9BUElDSUQpOwogCX0KICNlbmRpZgorCisJLyoKKwkgKiBUaGlzIGlzIG9ubHkgbmVlZGVkIHRv IHRlbGwgdGhlIGtlcm5lbCB3aGV0aGVyIHRvIHVzZSBWTUNBTEwKKwkgKiBhbmQgVk1NQ0FMTC4g IFZNTUNBTEwgaXMgbmV2ZXIgZXhlY3V0ZWQgZXhjZXB0IHVuZGVyIHZpcnQsIHNvCisJICogd2Ug Y2FuIHNldCBpdCB1bmNvbmRpdGlvbmFsbHkuCisJICovCisJc2V0X2NwdV9jYXAoYywgWDg2X0ZF QVRVUkVfVk1NQ0FMTCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9fY3B1aW5pdCBpbml0X2FtZChzdHJ1 Y3QgY3B1aW5mb194ODYgKmMpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwva3ZtLmMgYi9h cmNoL3g4Ni9rZXJuZWwva3ZtLmMKaW5kZXggYTljMjExNi4uNGI2NzAxZSAxMDA2NDQKLS0tIGEv YXJjaC94ODYva2VybmVsL2t2bS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9rdm0uYwpAQCAtNDE5 LDcgKzQxOSwxNCBAQCBzdGF0aWMgdm9pZCBrdm1fbGVhdmVfbGF6eV9tbXUodm9pZCkKIHN0YXRp YyB2b2lkIF9faW5pdCBwYXJhdmlydF9vcHNfc2V0dXAodm9pZCkKIHsKIAlwdl9pbmZvLm5hbWUg PSAiS1ZNIjsKLQlwdl9pbmZvLnBhcmF2aXJ0X2VuYWJsZWQgPSAxOworCisJLyoKKwkgKiBLVk0g aXNuJ3QgcGFyYXZpcnQgaW4gdGhlIHNlbnNlIG9mIHBhcmF2aXJ0X2VuYWJsZWQuICBBIEtWTQor CSAqIGd1ZXN0IGtlcm5lbCB3b3JrcyBsaWtlIGEgYmFyZSBtZXRhbCBrZXJuZWwgd2l0aCBhZGRp dGlvbmFsCisJICogZmVhdHVyZXMsIGFuZCBwYXJhdmlydF9lbmFibGVkIGlzIGFib3V0IGZlYXR1 cmVzIHRoYXQgYXJlCisJICogbWlzc2luZy4KKwkgKi8KKwlwdl9pbmZvLnBhcmF2aXJ0X2VuYWJs ZWQgPSAwOwogCiAJaWYgKGt2bV9wYXJhX2hhc19mZWF0dXJlKEtWTV9GRUFUVVJFX05PUF9JT19E RUxBWSkpCiAJCXB2X2NwdV9vcHMuaW9fZGVsYXkgPSBrdm1faW9fZGVsYXk7CmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9rZXJuZWwva3ZtY2xvY2suYyBiL2FyY2gveDg2L2tlcm5lbC9rdm1jbG9jay5j CmluZGV4IDQ0ODQyZDcuLmU5MGVjYTAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9rdm1j bG9jay5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9rdm1jbG9jay5jCkBAIC0yMDMsNyArMjAzLDYg QEAgdm9pZCBfX2luaXQga3ZtY2xvY2tfaW5pdCh2b2lkKQogI2VuZGlmCiAJa3ZtX2dldF9wcmVz ZXRfbHBqKCk7CiAJY2xvY2tzb3VyY2VfcmVnaXN0ZXJfaHooJmt2bV9jbG9jaywgTlNFQ19QRVJf U0VDKTsKLQlwdl9pbmZvLnBhcmF2aXJ0X2VuYWJsZWQgPSAxOwogCXB2X2luZm8ubmFtZSA9ICJL Vk0iOwogCiAJaWYgKGt2bV9wYXJhX2hhc19mZWF0dXJlKEtWTV9GRUFUVVJFX0NMT0NLU09VUkNF X1NUQUJMRV9CSVQpKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Rscy5jIGIvYXJjaC94 ODYva2VybmVsL3Rscy5jCmluZGV4IGJjZmVjMmQuLjdhZjczMzggMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2tlcm5lbC90bHMuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvdGxzLmMKQEAgLTI4LDYgKzI4 LDIxIEBAIHN0YXRpYyBpbnQgZ2V0X2ZyZWVfaWR4KHZvaWQpCiAJcmV0dXJuIC1FU1JDSDsKIH0K IAorc3RhdGljIGJvb2wgdGxzX2Rlc2Nfb2theShjb25zdCBzdHJ1Y3QgdXNlcl9kZXNjICppbmZv KQoreworCWlmIChMRFRfZW1wdHkoaW5mbykpCisJCXJldHVybiB0cnVlOworCisJLyoKKwkgKiBl c3BmaXggaXMgcmVxdWlyZWQgZm9yIDE2LWJpdCBkYXRhIHNlZ21lbnRzLCBidXQgZXNwZml4CisJ ICogb25seSB3b3JrcyBmb3IgTERUIHNlZ21lbnRzLgorCSAqLworCWlmICghaW5mby0+c2VnXzMy Yml0KQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIHZvaWQg c2V0X3Rsc19kZXNjKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IGlkeCwKIAkJCSBjb25zdCBz dHJ1Y3QgdXNlcl9kZXNjICppbmZvLCBpbnQgbikKIHsKQEAgLTY3LDYgKzgyLDkgQEAgaW50IGRv X3NldF90aHJlYWRfYXJlYShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBpZHgsCiAJaWYgKGNv cHlfZnJvbV91c2VyKCZpbmZvLCB1X2luZm8sIHNpemVvZihpbmZvKSkpCiAJCXJldHVybiAtRUZB VUxUOwogCisJaWYgKCF0bHNfZGVzY19va2F5KCZpbmZvKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisK IAlpZiAoaWR4ID09IC0xKQogCQlpZHggPSBpbmZvLmVudHJ5X251bWJlcjsKIApAQCAtMTk3LDYg KzIxNSw3IEBAIGludCByZWdzZXRfdGxzX3NldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwg Y29uc3Qgc3RydWN0IHVzZXJfcmVnc2V0ICpyZWdzZXQsCiB7CiAJc3RydWN0IHVzZXJfZGVzYyBp bmZvYnVmW0dEVF9FTlRSWV9UTFNfRU5UUklFU107CiAJY29uc3Qgc3RydWN0IHVzZXJfZGVzYyAq aW5mbzsKKwlpbnQgaTsKIAogCWlmIChwb3MgPj0gR0RUX0VOVFJZX1RMU19FTlRSSUVTICogc2l6 ZW9mKHN0cnVjdCB1c2VyX2Rlc2MpIHx8CiAJICAgIChwb3MgJSBzaXplb2Yoc3RydWN0IHVzZXJf ZGVzYykpICE9IDAgfHwKQEAgLTIxMCw2ICsyMjksMTAgQEAgaW50IHJlZ3NldF90bHNfc2V0KHN0 cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LCBjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXQgKnJlZ3Nl dCwKIAllbHNlCiAJCWluZm8gPSBpbmZvYnVmOwogCisJZm9yIChpID0gMDsgaSA8IGNvdW50IC8g c2l6ZW9mKHN0cnVjdCB1c2VyX2Rlc2MpOyBpKyspCisJCWlmICghdGxzX2Rlc2Nfb2theShpbmZv ICsgaSkpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwogCXNldF90bHNfZGVzYyh0YXJnZXQsCiAJCSAg ICAgR0RUX0VOVFJZX1RMU19NSU4gKyAocG9zIC8gc2l6ZW9mKHN0cnVjdCB1c2VyX2Rlc2MpKSwK IAkJICAgICBpbmZvLCBjb3VudCAvIHNpemVvZihzdHJ1Y3QgdXNlcl9kZXNjKSk7CmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmMKaW5kZXggMmQ3ZDBk Zi4uYmIxNzljYyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jCisrKyBiL2FyY2gveDg2 L2t2bS94ODYuYwpAQCAtNDg0Niw3ICs0ODQ2LDcgQEAgc3RhdGljIGludCBoYW5kbGVfZW11bGF0 aW9uX2ZhaWx1cmUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCiAJKyt2Y3B1LT5zdGF0Lmluc25f ZW11bGF0aW9uX2ZhaWw7CiAJdHJhY2Vfa3ZtX2VtdWxhdGVfaW5zbl9mYWlsZWQodmNwdSk7Ci0J aWYgKCFpc19ndWVzdF9tb2RlKHZjcHUpKSB7CisJaWYgKCFpc19ndWVzdF9tb2RlKHZjcHUpICYm IGt2bV94ODZfb3BzLT5nZXRfY3BsKHZjcHUpID09IDApIHsKIAkJdmNwdS0+cnVuLT5leGl0X3Jl YXNvbiA9IEtWTV9FWElUX0lOVEVSTkFMX0VSUk9SOwogCQl2Y3B1LT5ydW4tPmludGVybmFsLnN1 YmVycm9yID0gS1ZNX0lOVEVSTkFMX0VSUk9SX0VNVUxBVElPTjsKIAkJdmNwdS0+cnVuLT5pbnRl cm5hbC5uZGF0YSA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9haGNpLmMgYi9kcml2ZXJz L2F0YS9haGNpLmMKaW5kZXggOTIzYWMxNS4uODFmMzJlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9h dGEvYWhjaS5jCisrKyBiL2RyaXZlcnMvYXRhL2FoY2kuYwpAQCAtMzMxLDYgKzMzMSw5IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBhaGNpX3BjaV90YmxbXSA9IHsKIAl7IFBD SV9WREVWSUNFKElOVEVMLCAweDhjODcpLCBib2FyZF9haGNpIH0sIC8qIDkgU2VyaWVzIFJBSUQg Ki8KIAl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhjOGUpLCBib2FyZF9haGNpIH0sIC8qIDkgU2Vy aWVzIFJBSUQgKi8KIAl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhjOGYpLCBib2FyZF9haGNpIH0s IC8qIDkgU2VyaWVzIFJBSUQgKi8KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDlkMDMpLCBib2Fy ZF9haGNpIH0sIC8qIFN1bnJpc2UgUG9pbnQtTFAgQUhDSSAqLworCXsgUENJX1ZERVZJQ0UoSU5U RUwsIDB4OWQwNSksIGJvYXJkX2FoY2kgfSwgLyogU3VucmlzZSBQb2ludC1MUCBSQUlEICovCisJ eyBQQ0lfVkRFVklDRShJTlRFTCwgMHg5ZDA3KSwgYm9hcmRfYWhjaSB9LCAvKiBTdW5yaXNlIFBv aW50LUxQIFJBSUQgKi8KIAl7IFBDSV9WREVWSUNFKElOVEVMLCAweGExMDMpLCBib2FyZF9haGNp IH0sIC8qIFN1bnJpc2UgUG9pbnQtSCBBSENJICovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhh MTAzKSwgYm9hcmRfYWhjaSB9LCAvKiBTdW5yaXNlIFBvaW50LUggUkFJRCAqLwogCXsgUENJX1ZE RVZJQ0UoSU5URUwsIDB4YTEwNSksIGJvYXJkX2FoY2kgfSwgLyogU3VucmlzZSBQb2ludC1IIFJB SUQgKi8KQEAgLTQ5OSw2ICs1MDIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2Vf aWQgYWhjaV9wY2lfdGJsW10gPSB7CiAJICogZW5hYmxlZC4gIGh0dHBzOi8vYnVnemlsbGEua2Vy bmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3MzEKIAkgKi8KIAl7IFBDSV9WREVWSUNFKFNBTVNV TkcsIDB4MTYwMCksIGJvYXJkX2FoY2lfbm9tc2kgfSwKKwl7IFBDSV9WREVWSUNFKFNBTVNVTkcs IDB4YTgwMCksIGJvYXJkX2FoY2lfbm9tc2kgfSwKIAogCS8qIEVubW90dXMgKi8KIAl7IFBDSV9E RVZJQ0UoMHgxYzQ0LCAweDgwMDApLCBib2FyZF9haGNpIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJz L2F0YS9zYXRhX2ZzbC5jIGIvZHJpdmVycy9hdGEvc2F0YV9mc2wuYwppbmRleCA3OGFlN2I2Li41 NDcwMmY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9zYXRhX2ZzbC5jCisrKyBiL2RyaXZlcnMv YXRhL3NhdGFfZnNsLmMKQEAgLTEzMzgsNyArMTMzOCw3IEBAIHN0YXRpYyBpbnQgc2F0YV9mc2xf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqb2ZkZXYpCiAJaG9zdF9wcml2LT5jc3JfYmFz ZSA9IGNzcl9iYXNlOwogCiAJaXJxID0gaXJxX29mX3BhcnNlX2FuZF9tYXAob2ZkZXYtPmRldi5v Zl9ub2RlLCAwKTsKLQlpZiAoaXJxIDwgMCkgeworCWlmICghaXJxKSB7CiAJCWRldl9lcnIoJm9m ZGV2LT5kZXYsICJpbnZhbGlkIGlycSBmcm9tIHBsYXRmb3JtXG4iKTsKIAkJZ290byBlcnJvcl9l eGl0X3dpdGhfY2xlYW51cDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Ny dGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCmluZGV4IDNmMTc5OWIuLjA5ODUxY2Ug MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fY3J0Yy5jCkBAIC0xODE1LDcgKzE4MTUsMTcgQEAgaW50IGRybV9tb2RlX2dldGZi KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJci0+ZGVwdGggPSBmYi0+ZGVwdGg7CiAJci0+YnBw ID0gZmItPmJpdHNfcGVyX3BpeGVsOwogCXItPnBpdGNoID0gZmItPnBpdGNoOwotCWZiLT5mdW5j cy0+Y3JlYXRlX2hhbmRsZShmYiwgZmlsZV9wcml2LCAmci0+aGFuZGxlKTsKKwlpZiAoZmlsZV9w cml2LT5pc19tYXN0ZXIgfHwgY2FwYWJsZShDQVBfU1lTX0FETUlOKSkgeworCQlyZXQgPSBmYi0+ ZnVuY3MtPmNyZWF0ZV9oYW5kbGUoZmIsIGZpbGVfcHJpdiwgJnItPmhhbmRsZSk7CisJfSBlbHNl IHsKKwkJLyogR0VUX0ZCKCkgaXMgYW4gdW5wcml2aWxlZ2VkIGlvY3RsIHNvIHdlIG11c3Qgbm90 CisJCSAqIHJldHVybiBhIGJ1ZmZlci1oYW5kbGUgdG8gbm9uLW1hc3RlciBwcm9jZXNzZXMhIEZv cgorCQkgKiBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSByZWFzb25zLCB3ZSBjYW5ub3QgbWFrZQor CQkgKiBHRVRfRkIoKSBwcml2aWxlZ2VkLCBzbyBqdXN0IHJldHVybiBhbiBpbnZhbGlkIGhhbmRs ZQorCQkgKiBmb3Igbm9uLW1hc3RlcnMuICovCisJCXItPmhhbmRsZSA9IDA7CisJCXJldCA9IDA7 CisJfQogCiBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2x2ZHMuYwppbmRleCBmYWRkMDIxLi40ZGE4MTgyIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHZkcy5jCkBAIC05MTQsNiArOTE0LDE4IEBAIGJvb2wgaW50ZWxfbHZkc19p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaW50IHBpcGU7CiAJdTggcGluOwogCisJLyoK KwkgKiBVbmxvY2sgcmVnaXN0ZXJzIGFuZCBqdXN0IGxlYXZlIHRoZW0gdW5sb2NrZWQuIERvIHRo aXMgYmVmb3JlCisJICogY2hlY2tpbmcgcXVpcmsgbGlzdHMgdG8gYXZvaWQgYm9ndXMgV0FSTklO R3MuCisJICovCisJaWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkgeworCQlJOTE1X1dSSVRFKFBDSF9Q UF9DT05UUk9MLAorCQkJICAgSTkxNV9SRUFEKFBDSF9QUF9DT05UUk9MKSB8IFBBTkVMX1VOTE9D S19SRUdTKTsKKwl9IGVsc2UgeworCQlJOTE1X1dSSVRFKFBQX0NPTlRST0wsCisJCQkgICBJOTE1 X1JFQUQoUFBfQ09OVFJPTCkgfCBQQU5FTF9VTkxPQ0tfUkVHUyk7CisJfQorCiAJLyogU2tpcCBp bml0IG9uIG1hY2hpbmVzIHdlIGtub3cgZmFsc2VseSByZXBvcnQgTFZEUyAqLwogCWlmIChkbWlf Y2hlY2tfc3lzdGVtKGludGVsX25vX2x2ZHMpKQogCQlyZXR1cm4gZmFsc2U7CkBAIC0xMDg4LDE5 ICsxMTAwLDYgQEAgb3V0OgogCQlwd20gPSBJOTE1X1JFQUQoQkxDX1BXTV9QQ0hfQ1RMMSk7CiAJ CXB3bSB8PSBQV01fUENIX0VOQUJMRTsKIAkJSTkxNV9XUklURShCTENfUFdNX1BDSF9DVEwxLCBw d20pOwotCQkvKgotCQkgKiBVbmxvY2sgcmVnaXN0ZXJzIGFuZCBqdXN0Ci0JCSAqIGxlYXZlIHRo ZW0gdW5sb2NrZWQKLQkJICovCi0JCUk5MTVfV1JJVEUoUENIX1BQX0NPTlRST0wsCi0JCQkgICBJ OTE1X1JFQUQoUENIX1BQX0NPTlRST0wpIHwgUEFORUxfVU5MT0NLX1JFR1MpOwotCX0gZWxzZSB7 Ci0JCS8qCi0JCSAqIFVubG9jayByZWdpc3RlcnMgYW5kIGp1c3QKLQkJICogbGVhdmUgdGhlbSB1 bmxvY2tlZAotCQkgKi8KLQkJSTkxNV9XUklURShQUF9DT05UUk9MLAotCQkJICAgSTkxNV9SRUFE KFBQX0NPTlRST0wpIHwgUEFORUxfVU5MT0NLX1JFR1MpOwogCX0KIAlkZXZfcHJpdi0+bGlkX25v dGlmaWVyLm5vdGlmaWVyX2NhbGwgPSBpbnRlbF9saWRfbm90aWZ5OwogCWlmIChhY3BpX2xpZF9u b3RpZmllcl9yZWdpc3RlcigmZGV2X3ByaXYtPmxpZF9ub3RpZmllcikpIHsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtZGF2aW5jaS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2ky Yy1kYXZpbmNpLmMKaW5kZXggNzliNGJjYi4uMTgzN2ZlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9p MmMvYnVzc2VzL2kyYy1kYXZpbmNpLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1kYXZp bmNpLmMKQEAgLTQxNiwxMSArNDE2LDkgQEAgaTJjX2RhdmluY2lfeGZlcl9tc2coc3RydWN0IGky Y19hZGFwdGVyICphZGFwLCBzdHJ1Y3QgaTJjX21zZyAqbXNnLCBpbnQgc3RvcCkKIAlpZiAoZGV2 LT5jbWRfZXJyICYgREFWSU5DSV9JMkNfU1RSX05BQ0spIHsKIAkJaWYgKG1zZy0+ZmxhZ3MgJiBJ MkNfTV9JR05PUkVfTkFLKQogCQkJcmV0dXJuIG1zZy0+bGVuOwotCQlpZiAoc3RvcCkgewotCQkJ dyA9IGRhdmluY2lfaTJjX3JlYWRfcmVnKGRldiwgREFWSU5DSV9JMkNfTURSX1JFRyk7Ci0JCQl3 IHw9IERBVklOQ0lfSTJDX01EUl9TVFA7Ci0JCQlkYXZpbmNpX2kyY193cml0ZV9yZWcoZGV2LCBE QVZJTkNJX0kyQ19NRFJfUkVHLCB3KTsKLQkJfQorCQl3ID0gZGF2aW5jaV9pMmNfcmVhZF9yZWco ZGV2LCBEQVZJTkNJX0kyQ19NRFJfUkVHKTsKKwkJdyB8PSBEQVZJTkNJX0kyQ19NRFJfU1RQOwor CQlkYXZpbmNpX2kyY193cml0ZV9yZWcoZGV2LCBEQVZJTkNJX0kyQ19NRFJfUkVHLCB3KTsKIAkJ cmV0dXJuIC1FUkVNT1RFSU87CiAJfQogCXJldHVybiAtRUlPOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS9kdmIvdHR1c2ItZGVjL3R0dXNiZGVjZmUuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL3R0 dXNiLWRlYy90dHVzYmRlY2ZlLmMKaW5kZXggMjEyNjBhYS4uODUyODcwYiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItZGVjL3R0dXNiZGVjZmUuYworKysgYi9kcml2ZXJzL21l ZGlhL2R2Yi90dHVzYi1kZWMvdHR1c2JkZWNmZS5jCkBAIC0xNTQsNiArMTU0LDkgQEAgc3RhdGlj IGludCB0dHVzYmRlY2ZlX2R2YnNfZGlzZXFjX3NlbmRfbWFzdGVyX2NtZChzdHJ1Y3QgZHZiX2Zy b250ZW5kKiBmZSwgc3RydWMKIAkJICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKIAkJICAgMHgw MCwgMHgwMCB9OwogCisJaWYgKGNtZC0+bXNnX2xlbiA+IHNpemVvZihiKSAtIDQpCisJCXJldHVy biAtRUlOVkFMOworCiAJbWVtY3B5KCZiWzRdLCBjbWQtPm1zZywgY21kLT5tc2dfbGVuKTsKIAog CXN0YXRlLT5jb25maWctPnNlbmRfY29tbWFuZChmZSwgMHg3MiwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L0tjb25maWcgYi9kcml2ZXJzL25ldC9LY29uZmlnCmluZGV4IDY1NGE1ZTkuLjYxZDNk MWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L0tjb25maWcKKysrIGIvZHJpdmVycy9uZXQvS2Nv bmZpZwpAQCAtMTQzLDYgKzE0Myw3IEBAIGNvbmZpZyBNQUNWTEFOCiBjb25maWcgTUFDVlRBUAog CXRyaXN0YXRlICJNQUMtVkxBTiBiYXNlZCB0YXAgZHJpdmVyIChFWFBFUklNRU5UQUwpIgogCWRl cGVuZHMgb24gTUFDVkxBTgorCWRlcGVuZHMgb24gSU5FVAogCWhlbHAKIAkgIFRoaXMgYWRkcyBh IHNwZWNpYWxpemVkIHRhcCBjaGFyYWN0ZXIgZGV2aWNlIGRyaXZlciB0aGF0IGlzIGJhc2VkCiAJ ICBvbiB0aGUgTUFDLVZMQU4gbmV0d29yayBpbnRlcmZhY2UsIGNhbGxlZCBtYWN2dGFwLiBBIG1h Y3Z0YXAgZGV2aWNlCkBAIC0xOTUsNiArMTk2LDcgQEAgY29uZmlnIFJJT05FVF9SWF9TSVpFCiAK IGNvbmZpZyBUVU4KIAl0cmlzdGF0ZSAiVW5pdmVyc2FsIFRVTi9UQVAgZGV2aWNlIGRyaXZlciBz dXBwb3J0IgorCWRlcGVuZHMgb24gSU5FVAogCXNlbGVjdCBDUkMzMgogCS0tLWhlbHAtLS0KIAkg IFRVTi9UQVAgcHJvdmlkZXMgcGFja2V0IHJlY2VwdGlvbiBhbmQgdHJhbnNtaXNzaW9uIGZvciB1 c2VyIHNwYWNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWN2dGFwLmMgYi9kcml2ZXJzL25l dC9tYWN2dGFwLmMKaW5kZXggYjBmOTAxNS4uMGU2ZTU3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvbWFjdnRhcC5jCisrKyBiL2RyaXZlcnMvbmV0L21hY3Z0YXAuYwpAQCAtMTUsNiArMTUsNyBA QAogI2luY2x1ZGUgPGxpbnV4L2NkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgogCisjaW5j bHVkZSA8bmV0L2lwdjYuaD4KICNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFjZS5oPgogI2luY2x1 ZGUgPG5ldC9ydG5ldGxpbmsuaD4KICNpbmNsdWRlIDxuZXQvc29jay5oPgpAQCAtNTc3LDYgKzU3 OCw4IEBAIHN0YXRpYyBpbnQgbWFjdnRhcF9za2JfZnJvbV92bmV0X2hkcihzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLAogCQkJYnJlYWs7CiAJCWNhc2UgVklSVElPX05FVF9IRFJfR1NPX1VEUDoKIAkJCWdz b190eXBlID0gU0tCX0dTT19VRFA7CisJCQlpZiAoc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhf UF9JUFY2KSkKKwkJCQlpcHY2X3Byb3h5X3NlbGVjdF9pZGVudChza2IpOwogCQkJYnJlYWs7CiAJ CWRlZmF1bHQ6CiAJCQlyZXR1cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3R1 bi5jIGIvZHJpdmVycy9uZXQvdHVuLmMKaW5kZXggZWUxYWFiMC4uMmZiYmNhNiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvdHVuLmMKKysrIGIvZHJpdmVycy9uZXQvdHVuLmMKQEAgLTY0LDYgKzY0 LDcgQEAKICNpbmNsdWRlIDxsaW51eC9uc3Byb3h5Lmg+CiAjaW5jbHVkZSA8bGludXgvdmlydGlv X25ldC5oPgogI2luY2x1ZGUgPGxpbnV4L3JjdXBkYXRlLmg+CisjaW5jbHVkZSA8bmV0L2lwdjYu aD4KICNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFjZS5oPgogI2luY2x1ZGUgPG5ldC9uZXRucy9n ZW5lcmljLmg+CiAjaW5jbHVkZSA8bmV0L3J0bmV0bGluay5oPgpAQCAtNjk1LDYgKzY5Niw4IEBA IHN0YXRpYyBzc2l6ZV90IHR1bl9nZXRfdXNlcihzdHJ1Y3QgdHVuX3N0cnVjdCAqdHVuLAogCQli cmVhazsKIAl9CiAKKwlza2JfcmVzZXRfbmV0d29ya19oZWFkZXIoc2tiKTsKKwogCWlmIChnc28u Z3NvX3R5cGUgIT0gVklSVElPX05FVF9IRFJfR1NPX05PTkUpIHsKIAkJcHJfZGVidWcoIkdTTyFc biIpOwogCQlzd2l0Y2ggKGdzby5nc29fdHlwZSAmIH5WSVJUSU9fTkVUX0hEUl9HU09fRUNOKSB7 CkBAIC03MDYsNiArNzA5LDggQEAgc3RhdGljIHNzaXplX3QgdHVuX2dldF91c2VyKHN0cnVjdCB0 dW5fc3RydWN0ICp0dW4sCiAJCQlicmVhazsKIAkJY2FzZSBWSVJUSU9fTkVUX0hEUl9HU09fVURQ OgogCQkJc2tiX3NoaW5mbyhza2IpLT5nc29fdHlwZSA9IFNLQl9HU09fVURQOworCQkJaWYgKHNr Yi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVBWNikpCisJCQkJaXB2Nl9wcm94eV9zZWxlY3Rf aWRlbnQoc2tiKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJdHVuLT5kZXYtPnN0YXRzLnJ4 X2ZyYW1lX2Vycm9ycysrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9pbm9kZS5jIGIv ZHJpdmVycy91c2IvY29yZS9pbm9kZS5jCmluZGV4IDIyNzhkYWQuLjViYWJkOTQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvdXNiL2NvcmUvaW5vZGUuYworKysgYi9kcml2ZXJzL3VzYi9jb3JlL2lub2Rl LmMKQEAgLTIxMiw3ICsyMTIsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfYnVzKHN0cnVjdCBkZW50 cnkgKmJ1cykKIAogCW11dGV4X2xvY2soJmJ1cy0+ZF9pbm9kZS0+aV9tdXRleCk7CiAKLQlsaXN0 X2Zvcl9lYWNoX2VudHJ5KGRldiwgJmJ1cy0+ZF9zdWJkaXJzLCBkX3UuZF9jaGlsZCkKKwlsaXN0 X2Zvcl9lYWNoX2VudHJ5KGRldiwgJmJ1cy0+ZF9zdWJkaXJzLCBkX2NoaWxkKQogCQlpZiAoZGV2 LT5kX2lub2RlKQogCQkJdXBkYXRlX2RldihkZXYpOwogCkBAIC0yMjksNyArMjI5LDcgQEAgc3Rh dGljIHZvaWQgdXBkYXRlX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAKIAltdXRleF9sb2Nr X25lc3RlZCgmcm9vdC0+ZF9pbm9kZS0+aV9tdXRleCwgSV9NVVRFWF9QQVJFTlQpOwogCi0JbGlz dF9mb3JfZWFjaF9lbnRyeShidXMsICZyb290LT5kX3N1YmRpcnMsIGRfdS5kX2NoaWxkKSB7CisJ bGlzdF9mb3JfZWFjaF9lbnRyeShidXMsICZyb290LT5kX3N1YmRpcnMsIGRfY2hpbGQpIHsKIAkJ aWYgKGJ1cy0+ZF9pbm9kZSkgewogCQkJc3dpdGNoIChTX0lGTVQgJiBidXMtPmRfaW5vZGUtPmlf bW9kZSkgewogCQkJY2FzZSBTX0lGRElSOgpAQCAtMzQ1LDcgKzM0NSw3IEBAIHN0YXRpYyBpbnQg dXNiZnNfZW1wdHkgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAogCXNwaW5fbG9jaygmZGVudHJ5 LT5kX2xvY2spOwogCWxpc3RfZm9yX2VhY2gobGlzdCwgJmRlbnRyeS0+ZF9zdWJkaXJzKSB7Ci0J CXN0cnVjdCBkZW50cnkgKmRlID0gbGlzdF9lbnRyeShsaXN0LCBzdHJ1Y3QgZGVudHJ5LCBkX3Uu ZF9jaGlsZCk7CisJCXN0cnVjdCBkZW50cnkgKmRlID0gbGlzdF9lbnRyeShsaXN0LCBzdHJ1Y3Qg ZGVudHJ5LCBkX2NoaWxkKTsKIAogCQlzcGluX2xvY2tfbmVzdGVkKCZkZS0+ZF9sb2NrLCBERU5U UllfRF9MT0NLX05FU1RFRCk7CiAJCWlmICh1c2Jmc19wb3NpdGl2ZShkZSkpIHsKZGlmZiAtLWdp dCBhL2ZzLzlwL3Zmc19pbm9kZV9kb3RsLmMgYi9mcy85cC92ZnNfaW5vZGVfZG90bC5jCmluZGV4 IDBiNTc0NWUuLjMwZDRmYTggMTAwNjQ0Ci0tLSBhL2ZzLzlwL3Zmc19pbm9kZV9kb3RsLmMKKysr IGIvZnMvOXAvdmZzX2lub2RlX2RvdGwuYwpAQCAtODEsNyArODEsNyBAQCBzdGF0aWMgc3RydWN0 IGRlbnRyeSAqdjlmc19kZW50cnlfZnJvbV9kaXJfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkK IAlzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOwogCS8qIERpcmVjdG9yeSBzaG91bGQgaGF2ZSBv bmx5IG9uZSBlbnRyeS4gKi8KIAlCVUdfT04oU19JU0RJUihpbm9kZS0+aV9tb2RlKSAmJiAhbGlz dF9pc19zaW5ndWxhcigmaW5vZGUtPmlfZGVudHJ5KSk7Ci0JZGVudHJ5ID0gbGlzdF9lbnRyeShp bm9kZS0+aV9kZW50cnkubmV4dCwgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7CisJZGVudHJ5ID0g bGlzdF9lbnRyeShpbm9kZS0+aV9kZW50cnkubmV4dCwgc3RydWN0IGRlbnRyeSwgZF91LmRfYWxp YXMpOwogCXNwaW5fdW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsKIAlyZXR1cm4gZGVudHJ5OwogfQpk aWZmIC0tZ2l0IGEvZnMvYWZmcy9hbWlnYWZmcy5jIGIvZnMvYWZmcy9hbWlnYWZmcy5jCmluZGV4 IGRlMzdlYzguLjQzYzA1ZDggMTAwNjQ0Ci0tLSBhL2ZzL2FmZnMvYW1pZ2FmZnMuYworKysgYi9m cy9hZmZzL2FtaWdhZmZzLmMKQEAgLTEzMiw3ICsxMzIsNyBAQCBhZmZzX2ZpeF9kY2FjaGUoc3Ry dWN0IGRlbnRyeSAqZGVudHJ5LCB1MzIgZW50cnlfaW5vKQogCWhlYWQgPSAmaW5vZGUtPmlfZGVu dHJ5OwogCW5leHQgPSBoZWFkLT5uZXh0OwogCXdoaWxlIChuZXh0ICE9IGhlYWQpIHsKLQkJZGVu dHJ5ID0gbGlzdF9lbnRyeShuZXh0LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsKKwkJZGVudHJ5 ID0gbGlzdF9lbnRyeShuZXh0LCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9hbGlhcyk7CiAJCWlmIChl bnRyeV9pbm8gPT0gKHUzMikobG9uZylkZW50cnktPmRfZnNkYXRhKSB7CiAJCQlkZW50cnktPmRf ZnNkYXRhID0gZGF0YTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZnMvYXV0b2ZzNC9leHBpcmUu YyBiL2ZzL2F1dG9mczQvZXhwaXJlLmMKaW5kZXggMmM2OWQxMi4uN2ZjMDM3MSAxMDA2NDQKLS0t IGEvZnMvYXV0b2ZzNC9leHBpcmUuYworKysgYi9mcy9hdXRvZnM0L2V4cGlyZS5jCkBAIC0xMDAs NyArMTAwLDcgQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKmdldF9uZXh0X3Bvc2l0aXZlX3N1YmRp cihzdHJ1Y3QgZGVudHJ5ICpwcmV2LAogCXAgPSBwcmV2OwogCXNwaW5fbG9jaygmcC0+ZF9sb2Nr KTsKIGFnYWluOgotCW5leHQgPSBwLT5kX3UuZF9jaGlsZC5uZXh0OworCW5leHQgPSBwLT5kX2No aWxkLm5leHQ7CiBzdGFydDoKIAlpZiAobmV4dCA9PSAmcm9vdC0+ZF9zdWJkaXJzKSB7CiAJCXNw aW5fdW5sb2NrKCZwLT5kX2xvY2spOwpAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXJ0OgogCQlyZXR1 cm4gTlVMTDsKIAl9CiAKLQlxID0gbGlzdF9lbnRyeShuZXh0LCBzdHJ1Y3QgZGVudHJ5LCBkX3Uu ZF9jaGlsZCk7CisJcSA9IGxpc3RfZW50cnkobmV4dCwgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7 CiAKIAlzcGluX2xvY2tfbmVzdGVkKCZxLT5kX2xvY2ssIERFTlRSWV9EX0xPQ0tfTkVTVEVEKTsK IAkvKiBOZWdhdGl2ZSBkZW50cnkgLSB0cnkgbmV4dCAqLwpAQCAtMTY1LDEzICsxNjUsMTMgQEAg YWdhaW46CiAJCQkJZ290byByZWxvY2s7CiAJCQl9CiAJCQlzcGluX3VubG9jaygmcC0+ZF9sb2Nr KTsKLQkJCW5leHQgPSBwLT5kX3UuZF9jaGlsZC5uZXh0OworCQkJbmV4dCA9IHAtPmRfY2hpbGQu bmV4dDsKIAkJCXAgPSBwYXJlbnQ7CiAJCQlpZiAobmV4dCAhPSAmcGFyZW50LT5kX3N1YmRpcnMp CiAJCQkJYnJlYWs7CiAJCX0KIAl9Ci0JcmV0ID0gbGlzdF9lbnRyeShuZXh0LCBzdHJ1Y3QgZGVu dHJ5LCBkX3UuZF9jaGlsZCk7CisJcmV0ID0gbGlzdF9lbnRyeShuZXh0LCBzdHJ1Y3QgZGVudHJ5 LCBkX2NoaWxkKTsKIAogCXNwaW5fbG9ja19uZXN0ZWQoJnJldC0+ZF9sb2NrLCBERU5UUllfRF9M T0NLX05FU1RFRCk7CiAJLyogTmVnYXRpdmUgZGVudHJ5IC0gdHJ5IG5leHQgKi8KQEAgLTQ1NSw3 ICs0NTUsNyBAQCBmb3VuZDoKIAlzcGluX2xvY2soJnNiaS0+bG9va3VwX2xvY2spOwogCXNwaW5f bG9jaygmZXhwaXJlZC0+ZF9wYXJlbnQtPmRfbG9jayk7CiAJc3Bpbl9sb2NrX25lc3RlZCgmZXhw aXJlZC0+ZF9sb2NrLCBERU5UUllfRF9MT0NLX05FU1RFRCk7Ci0JbGlzdF9tb3ZlKCZleHBpcmVk LT5kX3BhcmVudC0+ZF9zdWJkaXJzLCAmZXhwaXJlZC0+ZF91LmRfY2hpbGQpOworCWxpc3RfbW92 ZSgmZXhwaXJlZC0+ZF9wYXJlbnQtPmRfc3ViZGlycywgJmV4cGlyZWQtPmRfY2hpbGQpOwogCXNw aW5fdW5sb2NrKCZleHBpcmVkLT5kX2xvY2spOwogCXNwaW5fdW5sb2NrKCZleHBpcmVkLT5kX3Bh cmVudC0+ZF9sb2NrKTsKIAlzcGluX3VubG9jaygmc2JpLT5sb29rdXBfbG9jayk7CmRpZmYgLS1n aXQgYS9mcy9hdXRvZnM0L3Jvb3QuYyBiL2ZzL2F1dG9mczQvcm9vdC5jCmluZGV4IDc5MGZhNjMu LjJlOTM2YzYgMTAwNjQ0Ci0tLSBhL2ZzL2F1dG9mczQvcm9vdC5jCisrKyBiL2ZzL2F1dG9mczQv cm9vdC5jCkBAIC02NTEsNyArNjUxLDcgQEAgc3RhdGljIHZvaWQgYXV0b2ZzX2NsZWFyX2xlYWZf YXV0b21vdW50X2ZsYWdzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAkvKiBvbmx5IGNvbnNpZGVy IHBhcmVudHMgYmVsb3cgZGVudHJ5cyBpbiB0aGUgcm9vdCAqLwogCWlmIChJU19ST09UKHBhcmVu dC0+ZF9wYXJlbnQpKQogCQlyZXR1cm47Ci0JZF9jaGlsZCA9ICZkZW50cnktPmRfdS5kX2NoaWxk OworCWRfY2hpbGQgPSAmZGVudHJ5LT5kX2NoaWxkOwogCS8qIFNldCBwYXJlbnQgbWFuYWdlZCBp ZiBpdCdzIGJlY29taW5nIGVtcHR5ICovCiAJaWYgKGRfY2hpbGQtPm5leHQgPT0gJnBhcmVudC0+ ZF9zdWJkaXJzICYmCiAJICAgIGRfY2hpbGQtPnByZXYgPT0gJnBhcmVudC0+ZF9zdWJkaXJzKQpk aWZmIC0tZ2l0IGEvZnMvY2VwaC9kaXIuYyBiL2ZzL2NlcGgvZGlyLmMKaW5kZXggOTg5NTQwMC4u NzkwM2U2MiAxMDA2NDQKLS0tIGEvZnMvY2VwaC9kaXIuYworKysgYi9mcy9jZXBoL2Rpci5jCkBA IC0xMDQsNyArMTA0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGZwb3Nfb2ZmKGxvZmZfdCBwKQogLyoK ICAqIFdoZW4gcG9zc2libGUsIHdlIHRyeSB0byBzYXRpc2Z5IGEgcmVhZGRpciBieSBwZWVraW5n IGF0IHRoZQogICogZGNhY2hlLiAgV2UgbWFrZSB0aGlzIHdvcmsgYnkgY2FyZWZ1bGx5IG9yZGVy aW5nIGRlbnRyaWVzIG9uCi0gKiBkX3UuZF9jaGlsZCB3aGVuIHdlIGluaXRpYWxseSBnZXQgcmVz dWx0cyBiYWNrIGZyb20gdGhlIE1EUywgYW5kCisgKiBkX2NoaWxkIHdoZW4gd2UgaW5pdGlhbGx5 IGdldCByZXN1bHRzIGJhY2sgZnJvbSB0aGUgTURTLCBhbmQKICAqIGZhbGxpbmcgYmFjayB0byBh ICJub3JtYWwiIHN5bmMgcmVhZGRpciBpZiBhbnkgZGVudHJpZXMgaW4gdGhlIGRpcgogICogYXJl IGRyb3BwZWQuCiAgKgpAQCAtMTQwLDExICsxNDAsMTEgQEAgc3RhdGljIGludCBfX2RjYWNoZV9y ZWFkZGlyKHN0cnVjdCBmaWxlICpmaWxwLAogCQlwID0gcGFyZW50LT5kX3N1YmRpcnMucHJldjsK IAkJZG91dCgiIGluaXRpYWwgcCAlcC8lcFxuIiwgcC0+cHJldiwgcC0+bmV4dCk7CiAJfSBlbHNl IHsKLQkJcCA9IGxhc3QtPmRfdS5kX2NoaWxkLnByZXY7CisJCXAgPSBsYXN0LT5kX2NoaWxkLnBy ZXY7CiAJfQogCiBtb3JlOgotCWRlbnRyeSA9IGxpc3RfZW50cnkocCwgc3RydWN0IGRlbnRyeSwg ZF91LmRfY2hpbGQpOworCWRlbnRyeSA9IGxpc3RfZW50cnkocCwgc3RydWN0IGRlbnRyeSwgZF9j aGlsZCk7CiAJZGkgPSBjZXBoX2RlbnRyeShkZW50cnkpOwogCXdoaWxlICgxKSB7CiAJCWRvdXQo IiBwICVwLyVwICVzIGRfc3ViZGlycyAlcC8lcFxuIiwgcC0+cHJldiwgcC0+bmV4dCwKQEAgLTE2 Niw3ICsxNjYsNyBAQCBtb3JlOgogCQkgICAgICFkZW50cnktPmRfaW5vZGUgPyAiIG51bGwiIDog IiIpOwogCQlzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOwogCQlwID0gcC0+cHJldjsKLQkJ ZGVudHJ5ID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7CisJCWRl bnRyeSA9IGxpc3RfZW50cnkocCwgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7CiAJCWRpID0gY2Vw aF9kZW50cnkoZGVudHJ5KTsKIAl9CiAKZGlmZiAtLWdpdCBhL2ZzL2NlcGgvaW5vZGUuYyBiL2Zz L2NlcGgvaW5vZGUuYwppbmRleCA4N2ZiMTMyLi44ZTg4OWI3IDEwMDY0NAotLS0gYS9mcy9jZXBo L2lub2RlLmMKKysrIGIvZnMvY2VwaC9pbm9kZS5jCkBAIC04NjgsOSArODY4LDkgQEAgc3RhdGlj IHZvaWQgY2VwaF9zZXRfZGVudHJ5X29mZnNldChzdHJ1Y3QgZGVudHJ5ICpkbikKIAogCXNwaW5f bG9jaygmZGlyLT5kX2xvY2spOwogCXNwaW5fbG9ja19uZXN0ZWQoJmRuLT5kX2xvY2ssIERFTlRS WV9EX0xPQ0tfTkVTVEVEKTsKLQlsaXN0X21vdmUoJmRuLT5kX3UuZF9jaGlsZCwgJmRpci0+ZF9z dWJkaXJzKTsKKwlsaXN0X21vdmUoJmRuLT5kX2NoaWxkLCAmZGlyLT5kX3N1YmRpcnMpOwogCWRv dXQoInNldF9kZW50cnlfb2Zmc2V0ICVwICVsbGQgKCVwICVwKVxuIiwgZG4sIGRpLT5vZmZzZXQs Ci0JICAgICBkbi0+ZF91LmRfY2hpbGQucHJldiwgZG4tPmRfdS5kX2NoaWxkLm5leHQpOworCSAg ICAgZG4tPmRfY2hpbGQucHJldiwgZG4tPmRfY2hpbGQubmV4dCk7CiAJc3Bpbl91bmxvY2soJmRu LT5kX2xvY2spOwogCXNwaW5fdW5sb2NrKCZkaXItPmRfbG9jayk7CiB9CkBAIC0xMjU2LDcgKzEy NTYsNyBAQCByZXRyeV9sb29rdXA6CiAJCQkvKiByZW9yZGVyIHBhcmVudCdzIGRfc3ViZGlycyAq LwogCQkJc3Bpbl9sb2NrKCZwYXJlbnQtPmRfbG9jayk7CiAJCQlzcGluX2xvY2tfbmVzdGVkKCZk bi0+ZF9sb2NrLCBERU5UUllfRF9MT0NLX05FU1RFRCk7Ci0JCQlsaXN0X21vdmUoJmRuLT5kX3Uu ZF9jaGlsZCwgJnBhcmVudC0+ZF9zdWJkaXJzKTsKKwkJCWxpc3RfbW92ZSgmZG4tPmRfY2hpbGQs ICZwYXJlbnQtPmRfc3ViZGlycyk7CiAJCQlzcGluX3VubG9jaygmZG4tPmRfbG9jayk7CiAJCQlz cGluX3VubG9jaygmcGFyZW50LT5kX2xvY2spOwogCQl9CmRpZmYgLS1naXQgYS9mcy9jaWZzL2lu b2RlLmMgYi9mcy9jaWZzL2lub2RlLmMKaW5kZXggYzBjNTFlMS4uNzEwZGQwNSAxMDA2NDQKLS0t IGEvZnMvY2lmcy9pbm9kZS5jCisrKyBiL2ZzL2NpZnMvaW5vZGUuYwpAQCAtODIzLDcgKzgyMyw3 IEBAIGlub2RlX2hhc19oYXNoZWRfZGVudHJpZXMoc3RydWN0IGlub2RlICppbm9kZSkKIAlzdHJ1 Y3QgZGVudHJ5ICpkZW50cnk7CiAKIAlzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOwotCWxpc3Rf Zm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7CisJbGlz dF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7 CiAJCWlmICghZF91bmhhc2hlZChkZW50cnkpIHx8IElTX1JPT1QoZGVudHJ5KSkgewogCQkJc3Bp bl91bmxvY2soJmlub2RlLT5pX2xvY2spOwogCQkJcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9m cy9jb2RhL2NhY2hlLmMgYi9mcy9jb2RhL2NhY2hlLmMKaW5kZXggNjkwMTU3OC4uNGIyZTVjYiAx MDA2NDQKLS0tIGEvZnMvY29kYS9jYWNoZS5jCisrKyBiL2ZzL2NvZGEvY2FjaGUuYwpAQCAtOTUs NyArOTUsNyBAQCBzdGF0aWMgdm9pZCBjb2RhX2ZsYWdfY2hpbGRyZW4oc3RydWN0IGRlbnRyeSAq cGFyZW50LCBpbnQgZmxhZykKIAlzcGluX2xvY2soJnBhcmVudC0+ZF9sb2NrKTsKIAlsaXN0X2Zv cl9lYWNoKGNoaWxkLCAmcGFyZW50LT5kX3N1YmRpcnMpCiAJewotCQlkZSA9IGxpc3RfZW50cnko Y2hpbGQsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxkKTsKKwkJZGUgPSBsaXN0X2VudHJ5KGNo aWxkLCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsKIAkJLyogZG9uJ3Qga25vdyB3aGF0IHRvIGRv IHdpdGggbmVnYXRpdmUgZGVudHJpZXMgKi8KIAkJaWYgKCAhIGRlLT5kX2lub2RlICkgCiAJCQlj b250aW51ZTsKZGlmZiAtLWdpdCBhL2ZzL2RjYWNoZS5jIGIvZnMvZGNhY2hlLmMKaW5kZXggZDMy MjkyOS4uM2Y2NTc0MiAxMDA2NDQKLS0tIGEvZnMvZGNhY2hlLmMKKysrIGIvZnMvZGNhY2hlLmMK QEAgLTQyLDcgKzQyLDcgQEAKIC8qCiAgKiBVc2FnZToKICAqIGRjYWNoZS0+ZF9pbm9kZS0+aV9s b2NrIHByb3RlY3RzOgotICogICAtIGlfZGVudHJ5LCBkX2FsaWFzLCBkX2lub2RlIG9mIGFsaWFz ZXMKKyAqICAgLSBpX2RlbnRyeSwgZF91LmRfYWxpYXMsIGRfaW5vZGUgb2YgYWxpYXNlcwogICog ZGNhY2hlX2hhc2hfYnVja2V0IGxvY2sgcHJvdGVjdHM6CiAgKiAgIC0gdGhlIGRjYWNoZSBoYXNo IHRhYmxlCiAgKiBzX2Fub24gYmwgbGlzdCBzcGlubG9jayBwcm90ZWN0czoKQEAgLTU3LDcgKzU3 LDcgQEAKICAqICAgLSBkX3VuaGFzaGVkKCkKICAqICAgLSBkX3BhcmVudCBhbmQgZF9zdWJkaXJz CiAgKiAgIC0gY2hpbGRyZW5zJyBkX2NoaWxkIGFuZCBkX3BhcmVudAotICogICAtIGRfYWxpYXMs IGRfaW5vZGUKKyAqICAgLSBkX3UuZF9hbGlhcywgZF9pbm9kZQogICoKICAqIE9yZGVyaW5nOgog ICogZGVudHJ5LT5kX2lub2RlLT5pX2xvY2sKQEAgLTE0MCw3ICsxNDAsNiBAQCBzdGF0aWMgdm9p ZCBfX2RfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKmhlYWQpCiB7CiAJc3RydWN0IGRlbnRyeSAqZGVu dHJ5ID0gY29udGFpbmVyX29mKGhlYWQsIHN0cnVjdCBkZW50cnksIGRfdS5kX3JjdSk7CiAKLQlX QVJOX09OKCFsaXN0X2VtcHR5KCZkZW50cnktPmRfYWxpYXMpKTsKIAlpZiAoZG5hbWVfZXh0ZXJu YWwoZGVudHJ5KSkKIAkJa2ZyZWUoZGVudHJ5LT5kX25hbWUubmFtZSk7CiAJa21lbV9jYWNoZV9m cmVlKGRlbnRyeV9jYWNoZSwgZGVudHJ5KTsgCkBAIC0xNTEsNiArMTUwLDcgQEAgc3RhdGljIHZv aWQgX19kX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpoZWFkKQogICovCiBzdGF0aWMgdm9pZCBkX2Zy ZWUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQogeworCVdBUk5fT04oIWxpc3RfZW1wdHkoJmRlbnRy eS0+ZF91LmRfYWxpYXMpKTsKIAlCVUdfT04oZGVudHJ5LT5kX2NvdW50KTsKIAl0aGlzX2NwdV9k ZWMobnJfZGVudHJ5KTsKIAlpZiAoZGVudHJ5LT5kX29wICYmIGRlbnRyeS0+ZF9vcC0+ZF9yZWxl YXNlKQpAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyB2b2lkIGRlbnRyeV9pcHV0KHN0cnVjdCBk ZW50cnkgKiBkZW50cnkpCiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsK IAlpZiAoaW5vZGUpIHsKIAkJZGVudHJ5LT5kX2lub2RlID0gTlVMTDsKLQkJbGlzdF9kZWxfaW5p dCgmZGVudHJ5LT5kX2FsaWFzKTsKKwkJbGlzdF9kZWxfaW5pdCgmZGVudHJ5LT5kX3UuZF9hbGlh cyk7CiAJCXNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7CiAJCXNwaW5fdW5sb2NrKCZpbm9k ZS0+aV9sb2NrKTsKIAkJaWYgKCFpbm9kZS0+aV9ubGluaykKQEAgLTIxMyw3ICsyMTMsNyBAQCBz dGF0aWMgdm9pZCBkZW50cnlfdW5saW5rX2lub2RlKHN0cnVjdCBkZW50cnkgKiBkZW50cnkpCiB7 CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKIAlkZW50cnktPmRfaW5v ZGUgPSBOVUxMOwotCWxpc3RfZGVsX2luaXQoJmRlbnRyeS0+ZF9hbGlhcyk7CisJbGlzdF9kZWxf aW5pdCgmZGVudHJ5LT5kX3UuZF9hbGlhcyk7CiAJZGVudHJ5X3JjdXdhbGtfYmFycmllcihkZW50 cnkpOwogCXNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7CiAJc3Bpbl91bmxvY2soJmlub2Rl LT5pX2xvY2spOwpAQCAtMzA2LDkgKzMwNiw5IEBAIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpkX2tp bGwoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQpCiAJX19yZWxl YXNlcyhwYXJlbnQtPmRfbG9jaykKIAlfX3JlbGVhc2VzKGRlbnRyeS0+ZF9pbm9kZS0+aV9sb2Nr KQogewotCWxpc3RfZGVsKCZkZW50cnktPmRfdS5kX2NoaWxkKTsKKwlfX2xpc3RfZGVsX2VudHJ5 KCZkZW50cnktPmRfY2hpbGQpOwogCS8qCi0JICogSW5mb3JtIHRyeV90b19hc2NlbmQoKSB0aGF0 IHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gdGhlCisJICogSW5mb3JtIGFzY2VuZGluZyBy ZWFkZXJzIHRoYXQgd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byB0aGUKIAkgKiBkZW50cnkg dHJlZQogCSAqLwogCWRlbnRyeS0+ZF9mbGFncyB8PSBEQ0FDSEVfREVOVFJZX0tJTExFRDsKQEAg LTYyNCw3ICs2MjQsNyBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqX19kX2ZpbmRfYWxpYXMoc3Ry dWN0IGlub2RlICppbm9kZSwgaW50IHdhbnRfZGlzY29uKQogCiBhZ2FpbjoKIAlkaXNjb25fYWxp YXMgPSBOVUxMOwotCWxpc3RfZm9yX2VhY2hfZW50cnkoYWxpYXMsICZpbm9kZS0+aV9kZW50cnks IGRfYWxpYXMpIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5 LCBkX3UuZF9hbGlhcykgewogCQlzcGluX2xvY2soJmFsaWFzLT5kX2xvY2spOwogIAkJaWYgKFNf SVNESVIoaW5vZGUtPmlfbW9kZSkgfHwgIWRfdW5oYXNoZWQoYWxpYXMpKSB7CiAJCQlpZiAoSVNf Uk9PVChhbGlhcykgJiYKQEAgLTY3Nyw3ICs2NzcsNyBAQCB2b2lkIGRfcHJ1bmVfYWxpYXNlcyhz dHJ1Y3QgaW5vZGUgKmlub2RlKQogCXN0cnVjdCBkZW50cnkgKmRlbnRyeTsKIHJlc3RhcnQ6CiAJ c3Bpbl9sb2NrKCZpbm9kZS0+aV9sb2NrKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwg Jmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgeworCWxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5 LCAmaW5vZGUtPmlfZGVudHJ5LCBkX3UuZF9hbGlhcykgewogCQlzcGluX2xvY2soJmRlbnRyeS0+ ZF9sb2NrKTsKIAkJaWYgKCFkZW50cnktPmRfY291bnQpIHsKIAkJCV9fZGdldF9kbG9jayhkZW50 cnkpOwpAQCAtODU3LDcgKzg1Nyw3IEBAIHN0YXRpYyB2b2lkIHNocmlua19kY2FjaGVfZm9yX3Vt b3VudF9zdWJ0cmVlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAkJLyogZGVzY2VuZCB0byB0aGUg Zmlyc3QgbGVhZiBpbiB0aGUgY3VycmVudCBzdWJ0cmVlICovCiAJCXdoaWxlICghbGlzdF9lbXB0 eSgmZGVudHJ5LT5kX3N1YmRpcnMpKQogCQkJZGVudHJ5ID0gbGlzdF9lbnRyeShkZW50cnktPmRf c3ViZGlycy5uZXh0LAotCQkJCQkgICAgc3RydWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOworCQkJ CQkgICAgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7CiAKIAkJLyogY29uc3VtZSB0aGUgZGVudHJp ZXMgZnJvbSB0aGlzIGxlYWYgdXAgdGhyb3VnaCBpdHMgcGFyZW50cwogCQkgKiB1bnRpbCB3ZSBm aW5kIG9uZSB3aXRoIGNoaWxkcmVuIG9yIHJ1biBvdXQgYWx0b2dldGhlciAqLwpAQCAtODg5LDE3 ICs4ODksMTcgQEAgc3RhdGljIHZvaWQgc2hyaW5rX2RjYWNoZV9mb3JfdW1vdW50X3N1YnRyZWUo c3RydWN0IGRlbnRyeSAqZGVudHJ5KQogCiAJCQlpZiAoSVNfUk9PVChkZW50cnkpKSB7CiAJCQkJ cGFyZW50ID0gTlVMTDsKLQkJCQlsaXN0X2RlbCgmZGVudHJ5LT5kX3UuZF9jaGlsZCk7CisJCQkJ bGlzdF9kZWwoJmRlbnRyeS0+ZF9jaGlsZCk7CiAJCQl9IGVsc2UgewogCQkJCXBhcmVudCA9IGRl bnRyeS0+ZF9wYXJlbnQ7CiAJCQkJcGFyZW50LT5kX2NvdW50LS07Ci0JCQkJbGlzdF9kZWwoJmRl bnRyeS0+ZF91LmRfY2hpbGQpOworCQkJCWxpc3RfZGVsKCZkZW50cnktPmRfY2hpbGQpOwogCQkJ fQogCiAJCQlpbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKIAkJCWlmIChpbm9kZSkgewogCQkJCWRl bnRyeS0+ZF9pbm9kZSA9IE5VTEw7Ci0JCQkJbGlzdF9kZWxfaW5pdCgmZGVudHJ5LT5kX2FsaWFz KTsKKwkJCQlsaXN0X2RlbF9pbml0KCZkZW50cnktPmRfdS5kX2FsaWFzKTsKIAkJCQlpZiAoZGVu dHJ5LT5kX29wICYmIGRlbnRyeS0+ZF9vcC0+ZF9pcHV0KQogCQkJCQlkZW50cnktPmRfb3AtPmRf aXB1dChkZW50cnksIGlub2RlKTsKIAkJCQllbHNlCkBAIC05MTcsNyArOTE3LDcgQEAgc3RhdGlj IHZvaWQgc2hyaW5rX2RjYWNoZV9mb3JfdW1vdW50X3N1YnRyZWUoc3RydWN0IGRlbnRyeSAqZGVu dHJ5KQogCQl9IHdoaWxlIChsaXN0X2VtcHR5KCZkZW50cnktPmRfc3ViZGlycykpOwogCiAJCWRl bnRyeSA9IGxpc3RfZW50cnkoZGVudHJ5LT5kX3N1YmRpcnMubmV4dCwKLQkJCQkgICAgc3RydWN0 IGRlbnRyeSwgZF91LmRfY2hpbGQpOworCQkJCSAgICBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsK IAl9CiB9CiAKQEAgLTk0OSwzNCArOTQ5LDYgQEAgdm9pZCBzaHJpbmtfZGNhY2hlX2Zvcl91bW91 bnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAl9CiB9CiAKLS8qCi0gKiBUaGlzIHRyaWVzIHRv IGFzY2VuZCBvbmUgbGV2ZWwgb2YgcGFyZW50aG9vZCwgYnV0Ci0gKiB3ZSBjYW4gcmFjZSB3aXRo IHJlbmFtaW5nLCBzbyB3ZSBuZWVkIHRvIHJlLWNoZWNrCi0gKiB0aGUgcGFyZW50aG9vZCBhZnRl ciBkcm9wcGluZyB0aGUgbG9jayBhbmQgY2hlY2sKLSAqIHRoYXQgdGhlIHNlcXVlbmNlIG51bWJl ciBzdGlsbCBtYXRjaGVzLgotICovCi1zdGF0aWMgc3RydWN0IGRlbnRyeSAqdHJ5X3RvX2FzY2Vu ZChzdHJ1Y3QgZGVudHJ5ICpvbGQsIGludCBsb2NrZWQsIHVuc2lnbmVkIHNlcSkKLXsKLQlzdHJ1 Y3QgZGVudHJ5ICpuZXcgPSBvbGQtPmRfcGFyZW50OwotCi0JcmN1X3JlYWRfbG9jaygpOwotCXNw aW5fdW5sb2NrKCZvbGQtPmRfbG9jayk7Ci0Jc3Bpbl9sb2NrKCZuZXctPmRfbG9jayk7Ci0KLQkv KgotCSAqIG1pZ2h0IGdvIGJhY2sgdXAgdGhlIHdyb25nIHBhcmVudCBpZiB3ZSBoYXZlIGhhZCBh IHJlbmFtZQotCSAqIG9yIGRlbGV0aW9uCi0JICovCi0JaWYgKG5ldyAhPSBvbGQtPmRfcGFyZW50 IHx8Ci0JCSAob2xkLT5kX2ZsYWdzICYgRENBQ0hFX0RFTlRSWV9LSUxMRUQpIHx8Ci0JCSAoIWxv Y2tlZCAmJiByZWFkX3NlcXJldHJ5KCZyZW5hbWVfbG9jaywgc2VxKSkpIHsKLQkJc3Bpbl91bmxv Y2soJm5ldy0+ZF9sb2NrKTsKLQkJbmV3ID0gTlVMTDsKLQl9Ci0JcmN1X3JlYWRfdW5sb2NrKCk7 Ci0JcmV0dXJuIG5ldzsKLX0KLQogCiAvKgogICogU2VhcmNoIGZvciBhdCBsZWFzdCAxIG1vdW50 IHBvaW50IGluIHRoZSBkZW50cnkncyBzdWJkaXJzLgpAQCAtMTAxMCw3ICs5ODIsNyBAQCByZXBl YXQ6CiByZXN1bWU6CiAJd2hpbGUgKG5leHQgIT0gJnRoaXNfcGFyZW50LT5kX3N1YmRpcnMpIHsK IAkJc3RydWN0IGxpc3RfaGVhZCAqdG1wID0gbmV4dDsKLQkJc3RydWN0IGRlbnRyeSAqZGVudHJ5 ID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxkKTsKKwkJc3RydWN0 IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQp OwogCQluZXh0ID0gdG1wLT5uZXh0OwogCiAJCXNwaW5fbG9ja19uZXN0ZWQoJmRlbnRyeS0+ZF9s b2NrLCBERU5UUllfRF9MT0NLX05FU1RFRCk7CkBAIC0xMDMyLDE3ICsxMDA0LDMyIEBAIHJlc3Vt ZToKIAkvKgogCSAqIEFsbCBkb25lIGF0IHRoaXMgbGV2ZWwgLi4uIGFzY2VuZCBhbmQgcmVzdW1l IHRoZSBzZWFyY2guCiAJICovCisJcmN1X3JlYWRfbG9jaygpOworYXNjZW5kOgogCWlmICh0aGlz X3BhcmVudCAhPSBwYXJlbnQpIHsKIAkJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSB0aGlzX3BhcmVu dDsKLQkJdGhpc19wYXJlbnQgPSB0cnlfdG9fYXNjZW5kKHRoaXNfcGFyZW50LCBsb2NrZWQsIHNl cSk7Ci0JCWlmICghdGhpc19wYXJlbnQpCisJCXRoaXNfcGFyZW50ID0gY2hpbGQtPmRfcGFyZW50 OworCisJCXNwaW5fdW5sb2NrKCZjaGlsZC0+ZF9sb2NrKTsKKwkJc3Bpbl9sb2NrKCZ0aGlzX3Bh cmVudC0+ZF9sb2NrKTsKKworCQkvKiBtaWdodCBnbyBiYWNrIHVwIHRoZSB3cm9uZyBwYXJlbnQg aWYgd2UgaGF2ZSBoYWQgYSByZW5hbWUgKi8KKwkJaWYgKCFsb2NrZWQgJiYgcmVhZF9zZXFyZXRy eSgmcmVuYW1lX2xvY2ssIHNlcSkpCiAJCQlnb3RvIHJlbmFtZV9yZXRyeTsKLQkJbmV4dCA9IGNo aWxkLT5kX3UuZF9jaGlsZC5uZXh0OworCQluZXh0ID0gY2hpbGQtPmRfY2hpbGQubmV4dDsKKwkJ d2hpbGUgKHVubGlrZWx5KGNoaWxkLT5kX2ZsYWdzICYgRENBQ0hFX0RFTlRSWV9LSUxMRUQpKSB7 CisJCQlpZiAobmV4dCA9PSAmdGhpc19wYXJlbnQtPmRfc3ViZGlycykKKwkJCQlnb3RvIGFzY2Vu ZDsKKwkJCWNoaWxkID0gbGlzdF9lbnRyeShuZXh0LCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsK KwkJCW5leHQgPSBuZXh0LT5uZXh0OworCQl9CisJCXJjdV9yZWFkX3VubG9jaygpOwogCQlnb3Rv IHJlc3VtZTsKIAl9Ci0Jc3Bpbl91bmxvY2soJnRoaXNfcGFyZW50LT5kX2xvY2spOwogCWlmICgh bG9ja2VkICYmIHJlYWRfc2VxcmV0cnkoJnJlbmFtZV9sb2NrLCBzZXEpKQogCQlnb3RvIHJlbmFt ZV9yZXRyeTsKKwlzcGluX3VubG9jaygmdGhpc19wYXJlbnQtPmRfbG9jayk7CisJcmN1X3JlYWRf dW5sb2NrKCk7CiAJaWYgKGxvY2tlZCkKIAkJd3JpdGVfc2VxdW5sb2NrKCZyZW5hbWVfbG9jayk7 CiAJcmV0dXJuIDA7IC8qIE5vIG1vdW50IHBvaW50cyBmb3VuZCBpbiB0cmVlICovCkBAIC0xMDU0 LDYgKzEwNDEsOCBAQCBwb3NpdGl2ZToKIAlyZXR1cm4gMTsKIAogcmVuYW1lX3JldHJ5OgorCXNw aW5fdW5sb2NrKCZ0aGlzX3BhcmVudC0+ZF9sb2NrKTsKKwlyY3VfcmVhZF91bmxvY2soKTsKIAlp ZiAobG9ja2VkKQogCQlnb3RvIGFnYWluOwogCWxvY2tlZCA9IDE7CkBAIC0xMDkzLDcgKzEwODIs NyBAQCByZXBlYXQ6CiByZXN1bWU6CiAJd2hpbGUgKG5leHQgIT0gJnRoaXNfcGFyZW50LT5kX3N1 YmRpcnMpIHsKIAkJc3RydWN0IGxpc3RfaGVhZCAqdG1wID0gbmV4dDsKLQkJc3RydWN0IGRlbnRy eSAqZGVudHJ5ID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxkKTsK KwkJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnks IGRfY2hpbGQpOwogCQluZXh0ID0gdG1wLT5uZXh0OwogCiAJCXNwaW5fbG9ja19uZXN0ZWQoJmRl bnRyeS0+ZF9sb2NrLCBERU5UUllfRF9MT0NLX05FU1RFRCk7CkBAIC0xMTM5LDIzICsxMTI4LDQw IEBAIHJlc3VtZToKIAkvKgogCSAqIEFsbCBkb25lIGF0IHRoaXMgbGV2ZWwgLi4uIGFzY2VuZCBh bmQgcmVzdW1lIHRoZSBzZWFyY2guCiAJICovCisJcmN1X3JlYWRfbG9jaygpOworYXNjZW5kOgog CWlmICh0aGlzX3BhcmVudCAhPSBwYXJlbnQpIHsKIAkJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSB0 aGlzX3BhcmVudDsKLQkJdGhpc19wYXJlbnQgPSB0cnlfdG9fYXNjZW5kKHRoaXNfcGFyZW50LCBs b2NrZWQsIHNlcSk7Ci0JCWlmICghdGhpc19wYXJlbnQpCisJCXRoaXNfcGFyZW50ID0gY2hpbGQt PmRfcGFyZW50OworCisJCXNwaW5fdW5sb2NrKCZjaGlsZC0+ZF9sb2NrKTsKKwkJc3Bpbl9sb2Nr KCZ0aGlzX3BhcmVudC0+ZF9sb2NrKTsKKworCQkvKiBtaWdodCBnbyBiYWNrIHVwIHRoZSB3cm9u ZyBwYXJlbnQgaWYgd2UgaGF2ZSBoYWQgYSByZW5hbWUgKi8KKwkJaWYgKCFsb2NrZWQgJiYgcmVh ZF9zZXFyZXRyeSgmcmVuYW1lX2xvY2ssIHNlcSkpCiAJCQlnb3RvIHJlbmFtZV9yZXRyeTsKLQkJ bmV4dCA9IGNoaWxkLT5kX3UuZF9jaGlsZC5uZXh0OworCQluZXh0ID0gY2hpbGQtPmRfY2hpbGQu bmV4dDsKKwkJd2hpbGUgKHVubGlrZWx5KGNoaWxkLT5kX2ZsYWdzICYgRENBQ0hFX0RFTlRSWV9L SUxMRUQpKSB7CisJCQlpZiAobmV4dCA9PSAmdGhpc19wYXJlbnQtPmRfc3ViZGlycykKKwkJCQln b3RvIGFzY2VuZDsKKwkJCWNoaWxkID0gbGlzdF9lbnRyeShuZXh0LCBzdHJ1Y3QgZGVudHJ5LCBk X2NoaWxkKTsKKwkJCW5leHQgPSBuZXh0LT5uZXh0OworCQl9CisJCXJjdV9yZWFkX3VubG9jaygp OwogCQlnb3RvIHJlc3VtZTsKIAl9CiBvdXQ6Ci0Jc3Bpbl91bmxvY2soJnRoaXNfcGFyZW50LT5k X2xvY2spOwogCWlmICghbG9ja2VkICYmIHJlYWRfc2VxcmV0cnkoJnJlbmFtZV9sb2NrLCBzZXEp KQogCQlnb3RvIHJlbmFtZV9yZXRyeTsKKwlzcGluX3VubG9jaygmdGhpc19wYXJlbnQtPmRfbG9j ayk7CisJcmN1X3JlYWRfdW5sb2NrKCk7CiAJaWYgKGxvY2tlZCkKIAkJd3JpdGVfc2VxdW5sb2Nr KCZyZW5hbWVfbG9jayk7CiAJcmV0dXJuIGZvdW5kOwogCiByZW5hbWVfcmV0cnk6CisJc3Bpbl91 bmxvY2soJnRoaXNfcGFyZW50LT5kX2xvY2spOworCXJjdV9yZWFkX3VubG9jaygpOwogCWlmIChm b3VuZCkKIAkJcmV0dXJuIGZvdW5kOwogCWlmIChsb2NrZWQpCkBAIC0xMjMwLDggKzEyMzYsOCBA QCBzdHJ1Y3QgZGVudHJ5ICpfX2RfYWxsb2Moc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgY29uc3Qg c3RydWN0IHFzdHIgKm5hbWUpCiAJSU5JVF9ITElTVF9CTF9OT0RFKCZkZW50cnktPmRfaGFzaCk7 CiAJSU5JVF9MSVNUX0hFQUQoJmRlbnRyeS0+ZF9scnUpOwogCUlOSVRfTElTVF9IRUFEKCZkZW50 cnktPmRfc3ViZGlycyk7Ci0JSU5JVF9MSVNUX0hFQUQoJmRlbnRyeS0+ZF9hbGlhcyk7Ci0JSU5J VF9MSVNUX0hFQUQoJmRlbnRyeS0+ZF91LmRfY2hpbGQpOworCUlOSVRfTElTVF9IRUFEKCZkZW50 cnktPmRfdS5kX2FsaWFzKTsKKwlJTklUX0xJU1RfSEVBRCgmZGVudHJ5LT5kX2NoaWxkKTsKIAlk X3NldF9kX29wKGRlbnRyeSwgZGVudHJ5LT5kX3NiLT5zX2Rfb3ApOwogCiAJdGhpc19jcHVfaW5j KG5yX2RlbnRyeSk7CkBAIC0xMjYxLDcgKzEyNjcsNyBAQCBzdHJ1Y3QgZGVudHJ5ICpkX2FsbG9j KHN0cnVjdCBkZW50cnkgKiBwYXJlbnQsIGNvbnN0IHN0cnVjdCBxc3RyICpuYW1lKQogCSAqLwog CV9fZGdldF9kbG9jayhwYXJlbnQpOwogCWRlbnRyeS0+ZF9wYXJlbnQgPSBwYXJlbnQ7Ci0JbGlz dF9hZGQoJmRlbnRyeS0+ZF91LmRfY2hpbGQsICZwYXJlbnQtPmRfc3ViZGlycyk7CisJbGlzdF9h ZGQoJmRlbnRyeS0+ZF9jaGlsZCwgJnBhcmVudC0+ZF9zdWJkaXJzKTsKIAlzcGluX3VubG9jaygm cGFyZW50LT5kX2xvY2spOwogCiAJcmV0dXJuIGRlbnRyeTsKQEAgLTEzMTgsNyArMTMyNCw3IEBA IHN0YXRpYyB2b2lkIF9fZF9pbnN0YW50aWF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVj dCBpbm9kZSAqaW5vZGUpCiAJaWYgKGlub2RlKSB7CiAJCWlmICh1bmxpa2VseShJU19BVVRPTU9V TlQoaW5vZGUpKSkKIAkJCWRlbnRyeS0+ZF9mbGFncyB8PSBEQ0FDSEVfTkVFRF9BVVRPTU9VTlQ7 Ci0JCWxpc3RfYWRkKCZkZW50cnktPmRfYWxpYXMsICZpbm9kZS0+aV9kZW50cnkpOworCQlsaXN0 X2FkZCgmZGVudHJ5LT5kX3UuZF9hbGlhcywgJmlub2RlLT5pX2RlbnRyeSk7CiAJfQogCWRlbnRy eS0+ZF9pbm9kZSA9IGlub2RlOwogCWRlbnRyeV9yY3V3YWxrX2JhcnJpZXIoZGVudHJ5KTsKQEAg LTEzNDMsNyArMTM0OSw3IEBAIHN0YXRpYyB2b2lkIF9fZF9pbnN0YW50aWF0ZShzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAgCiB2b2lkIGRfaW5zdGFudGlhdGUo c3RydWN0IGRlbnRyeSAqZW50cnksIHN0cnVjdCBpbm9kZSAqIGlub2RlKQogewotCUJVR19PTigh bGlzdF9lbXB0eSgmZW50cnktPmRfYWxpYXMpKTsKKwlCVUdfT04oIWxpc3RfZW1wdHkoJmVudHJ5 LT5kX3UuZF9hbGlhcykpOwogCWlmIChpbm9kZSkKIAkJc3Bpbl9sb2NrKCZpbm9kZS0+aV9sb2Nr KTsKIAlfX2RfaW5zdGFudGlhdGUoZW50cnksIGlub2RlKTsKQEAgLTEzODIsNyArMTM4OCw3IEBA IHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpfX2RfaW5zdGFudGlhdGVfdW5pcXVlKHN0cnVjdCBkZW50 cnkgKmVudHJ5LAogCQlyZXR1cm4gTlVMTDsKIAl9CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGFs aWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShh bGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF91LmRfYWxpYXMpIHsKIAkJc3RydWN0IHFzdHIgKnFz dHIgPSAmYWxpYXMtPmRfbmFtZTsKIAogCQkvKgpAQCAtMTQwOCw3ICsxNDE0LDcgQEAgc3RydWN0 IGRlbnRyeSAqZF9pbnN0YW50aWF0ZV91bmlxdWUoc3RydWN0IGRlbnRyeSAqZW50cnksIHN0cnVj dCBpbm9kZSAqaW5vZGUpCiB7CiAJc3RydWN0IGRlbnRyeSAqcmVzdWx0OwogCi0JQlVHX09OKCFs aXN0X2VtcHR5KCZlbnRyeS0+ZF9hbGlhcykpOworCUJVR19PTighbGlzdF9lbXB0eSgmZW50cnkt PmRfdS5kX2FsaWFzKSk7CiAKIAlpZiAoaW5vZGUpCiAJCXNwaW5fbG9jaygmaW5vZGUtPmlfbG9j ayk7CkBAIC0xNDU4LDcgKzE0NjQsNyBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqIF9fZF9maW5k X2FueV9hbGlhcyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCiAJaWYgKGxpc3RfZW1wdHkoJmlub2Rl LT5pX2RlbnRyeSkpCiAJCXJldHVybiBOVUxMOwotCWFsaWFzID0gbGlzdF9maXJzdF9lbnRyeSgm aW5vZGUtPmlfZGVudHJ5LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsKKwlhbGlhcyA9IGxpc3Rf Zmlyc3RfZW50cnkoJmlub2RlLT5pX2RlbnRyeSwgc3RydWN0IGRlbnRyeSwgZF91LmRfYWxpYXMp OwogCV9fZGdldChhbGlhcyk7CiAJcmV0dXJuIGFsaWFzOwogfQpAQCAtMTUyNSw3ICsxNTMxLDcg QEAgc3RydWN0IGRlbnRyeSAqZF9vYnRhaW5fYWxpYXMoc3RydWN0IGlub2RlICppbm9kZSkKIAlz cGluX2xvY2soJnRtcC0+ZF9sb2NrKTsKIAl0bXAtPmRfaW5vZGUgPSBpbm9kZTsKIAl0bXAtPmRf ZmxhZ3MgfD0gRENBQ0hFX0RJU0NPTk5FQ1RFRDsKLQlsaXN0X2FkZCgmdG1wLT5kX2FsaWFzLCAm aW5vZGUtPmlfZGVudHJ5KTsKKwlsaXN0X2FkZCgmdG1wLT5kX3UuZF9hbGlhcywgJmlub2RlLT5p X2RlbnRyeSk7CiAJaGxpc3RfYmxfbG9jaygmdG1wLT5kX3NiLT5zX2Fub24pOwogCWhsaXN0X2Js X2FkZF9oZWFkKCZ0bXAtPmRfaGFzaCwgJnRtcC0+ZF9zYi0+c19hbm9uKTsKIAlobGlzdF9ibF91 bmxvY2soJnRtcC0+ZF9zYi0+c19hbm9uKTsKQEAgLTE5MzEsNyArMTkzNyw3IEBAIGludCBkX3Zh bGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGRlbnRyeSAqZHBhcmVudCkKIAlz dHJ1Y3QgZGVudHJ5ICpjaGlsZDsKIAogCXNwaW5fbG9jaygmZHBhcmVudC0+ZF9sb2NrKTsKLQls aXN0X2Zvcl9lYWNoX2VudHJ5KGNoaWxkLCAmZHBhcmVudC0+ZF9zdWJkaXJzLCBkX3UuZF9jaGls ZCkgeworCWxpc3RfZm9yX2VhY2hfZW50cnkoY2hpbGQsICZkcGFyZW50LT5kX3N1YmRpcnMsIGRf Y2hpbGQpIHsKIAkJaWYgKGRlbnRyeSA9PSBjaGlsZCkgewogCQkJc3Bpbl9sb2NrX25lc3RlZCgm ZGVudHJ5LT5kX2xvY2ssIERFTlRSWV9EX0xPQ0tfTkVTVEVEKTsKIAkJCV9fZGdldF9kbG9jayhk ZW50cnkpOwpAQCAtMjE3OCw4ICsyMTg0LDggQEAgc3RhdGljIHZvaWQgX19kX21vdmUoc3RydWN0 IGRlbnRyeSAqIGRlbnRyeSwgc3RydWN0IGRlbnRyeSAqIHRhcmdldCkKIAkvKiBVbmhhc2ggdGhl IHRhcmdldDogZHB1dCgpIHdpbGwgdGhlbiBnZXQgcmlkIG9mIGl0ICovCiAJX19kX2Ryb3AodGFy Z2V0KTsKIAotCWxpc3RfZGVsKCZkZW50cnktPmRfdS5kX2NoaWxkKTsKLQlsaXN0X2RlbCgmdGFy Z2V0LT5kX3UuZF9jaGlsZCk7CisJbGlzdF9kZWwoJmRlbnRyeS0+ZF9jaGlsZCk7CisJbGlzdF9k ZWwoJnRhcmdldC0+ZF9jaGlsZCk7CiAKIAkvKiBTd2l0Y2ggdGhlIG5hbWVzLi4gKi8KIAlzd2l0 Y2hfbmFtZXMoZGVudHJ5LCB0YXJnZXQpOwpAQCAtMjE4OSwxNSArMjE5NSwxNSBAQCBzdGF0aWMg dm9pZCBfX2RfbW92ZShzdHJ1Y3QgZGVudHJ5ICogZGVudHJ5LCBzdHJ1Y3QgZGVudHJ5ICogdGFy Z2V0KQogCWlmIChJU19ST09UKGRlbnRyeSkpIHsKIAkJZGVudHJ5LT5kX3BhcmVudCA9IHRhcmdl dC0+ZF9wYXJlbnQ7CiAJCXRhcmdldC0+ZF9wYXJlbnQgPSB0YXJnZXQ7Ci0JCUlOSVRfTElTVF9I RUFEKCZ0YXJnZXQtPmRfdS5kX2NoaWxkKTsKKwkJSU5JVF9MSVNUX0hFQUQoJnRhcmdldC0+ZF9j aGlsZCk7CiAJfSBlbHNlIHsKIAkJc3dhcChkZW50cnktPmRfcGFyZW50LCB0YXJnZXQtPmRfcGFy ZW50KTsKIAogCQkvKiBBbmQgYWRkIHRoZW0gYmFjayB0byB0aGUgKG5ldykgcGFyZW50IGxpc3Rz ICovCi0JCWxpc3RfYWRkKCZ0YXJnZXQtPmRfdS5kX2NoaWxkLCAmdGFyZ2V0LT5kX3BhcmVudC0+ ZF9zdWJkaXJzKTsKKwkJbGlzdF9hZGQoJnRhcmdldC0+ZF9jaGlsZCwgJnRhcmdldC0+ZF9wYXJl bnQtPmRfc3ViZGlycyk7CiAJfQogCi0JbGlzdF9hZGQoJmRlbnRyeS0+ZF91LmRfY2hpbGQsICZk ZW50cnktPmRfcGFyZW50LT5kX3N1YmRpcnMpOworCWxpc3RfYWRkKCZkZW50cnktPmRfY2hpbGQs ICZkZW50cnktPmRfcGFyZW50LT5kX3N1YmRpcnMpOwogCiAJd3JpdGVfc2VxY291bnRfZW5kKCZ0 YXJnZXQtPmRfc2VxKTsKIAl3cml0ZV9zZXFjb3VudF9lbmQoJmRlbnRyeS0+ZF9zZXEpOwpAQCAt MjMwNCwxOCArMjMxMCwxOCBAQCBzdGF0aWMgdm9pZCBfX2RfbWF0ZXJpYWxpc2VfZGVudHJ5KHN0 cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGRlbnRyeSAqYW5vbikKIAlzd2FwKGRlbnRyeS0+ ZF9uYW1lLmhhc2gsIGFub24tPmRfbmFtZS5oYXNoKTsKIAogCWRlbnRyeS0+ZF9wYXJlbnQgPSAo YXBhcmVudCA9PSBhbm9uKSA/IGRlbnRyeSA6IGFwYXJlbnQ7Ci0JbGlzdF9kZWwoJmRlbnRyeS0+ ZF91LmRfY2hpbGQpOworCWxpc3RfZGVsKCZkZW50cnktPmRfY2hpbGQpOwogCWlmICghSVNfUk9P VChkZW50cnkpKQotCQlsaXN0X2FkZCgmZGVudHJ5LT5kX3UuZF9jaGlsZCwgJmRlbnRyeS0+ZF9w YXJlbnQtPmRfc3ViZGlycyk7CisJCWxpc3RfYWRkKCZkZW50cnktPmRfY2hpbGQsICZkZW50cnkt PmRfcGFyZW50LT5kX3N1YmRpcnMpOwogCWVsc2UKLQkJSU5JVF9MSVNUX0hFQUQoJmRlbnRyeS0+ ZF91LmRfY2hpbGQpOworCQlJTklUX0xJU1RfSEVBRCgmZGVudHJ5LT5kX2NoaWxkKTsKIAogCWFu b24tPmRfcGFyZW50ID0gKGRwYXJlbnQgPT0gZGVudHJ5KSA/IGFub24gOiBkcGFyZW50OwotCWxp c3RfZGVsKCZhbm9uLT5kX3UuZF9jaGlsZCk7CisJbGlzdF9kZWwoJmFub24tPmRfY2hpbGQpOwog CWlmICghSVNfUk9PVChhbm9uKSkKLQkJbGlzdF9hZGQoJmFub24tPmRfdS5kX2NoaWxkLCAmYW5v bi0+ZF9wYXJlbnQtPmRfc3ViZGlycyk7CisJCWxpc3RfYWRkKCZhbm9uLT5kX2NoaWxkLCAmYW5v bi0+ZF9wYXJlbnQtPmRfc3ViZGlycyk7CiAJZWxzZQotCQlJTklUX0xJU1RfSEVBRCgmYW5vbi0+ ZF91LmRfY2hpbGQpOworCQlJTklUX0xJU1RfSEVBRCgmYW5vbi0+ZF9jaGlsZCk7CiAKIAl3cml0 ZV9zZXFjb3VudF9lbmQoJmRlbnRyeS0+ZF9zZXEpOwogCXdyaXRlX3NlcWNvdW50X2VuZCgmYW5v bi0+ZF9zZXEpOwpAQCAtMjg5Myw3ICsyODk5LDcgQEAgcmVwZWF0OgogcmVzdW1lOgogCXdoaWxl IChuZXh0ICE9ICZ0aGlzX3BhcmVudC0+ZF9zdWJkaXJzKSB7CiAJCXN0cnVjdCBsaXN0X2hlYWQg KnRtcCA9IG5leHQ7Ci0JCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkodG1wLCBz dHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7CisJCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxp c3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsKIAkJbmV4dCA9IHRtcC0+bmV4 dDsKIAogCQlzcGluX2xvY2tfbmVzdGVkKCZkZW50cnktPmRfbG9jaywgREVOVFJZX0RfTE9DS19O RVNURUQpOwpAQCAtMjkxNCwyNiArMjkyMCw0MyBAQCByZXN1bWU6CiAJCX0KIAkJc3Bpbl91bmxv Y2soJmRlbnRyeS0+ZF9sb2NrKTsKIAl9CisJcmN1X3JlYWRfbG9jaygpOworYXNjZW5kOgogCWlm ICh0aGlzX3BhcmVudCAhPSByb290KSB7CiAJCXN0cnVjdCBkZW50cnkgKmNoaWxkID0gdGhpc19w YXJlbnQ7CiAJCWlmICghKHRoaXNfcGFyZW50LT5kX2ZsYWdzICYgRENBQ0hFX0dFTk9DSURFKSkg ewogCQkJdGhpc19wYXJlbnQtPmRfZmxhZ3MgfD0gRENBQ0hFX0dFTk9DSURFOwogCQkJdGhpc19w YXJlbnQtPmRfY291bnQtLTsKIAkJfQotCQl0aGlzX3BhcmVudCA9IHRyeV90b19hc2NlbmQodGhp c19wYXJlbnQsIGxvY2tlZCwgc2VxKTsKLQkJaWYgKCF0aGlzX3BhcmVudCkKKwkJdGhpc19wYXJl bnQgPSBjaGlsZC0+ZF9wYXJlbnQ7CisKKwkJc3Bpbl91bmxvY2soJmNoaWxkLT5kX2xvY2spOwor CQlzcGluX2xvY2soJnRoaXNfcGFyZW50LT5kX2xvY2spOworCisJCS8qIG1pZ2h0IGdvIGJhY2sg dXAgdGhlIHdyb25nIHBhcmVudCBpZiB3ZSBoYXZlIGhhZCBhIHJlbmFtZSAqLworCQlpZiAoIWxv Y2tlZCAmJiByZWFkX3NlcXJldHJ5KCZyZW5hbWVfbG9jaywgc2VxKSkKIAkJCWdvdG8gcmVuYW1l X3JldHJ5OwotCQluZXh0ID0gY2hpbGQtPmRfdS5kX2NoaWxkLm5leHQ7CisJCW5leHQgPSBjaGls ZC0+ZF9jaGlsZC5uZXh0OworCQl3aGlsZSAodW5saWtlbHkoY2hpbGQtPmRfZmxhZ3MgJiBEQ0FD SEVfREVOVFJZX0tJTExFRCkpIHsKKwkJCWlmIChuZXh0ID09ICZ0aGlzX3BhcmVudC0+ZF9zdWJk aXJzKQorCQkJCWdvdG8gYXNjZW5kOworCQkJY2hpbGQgPSBsaXN0X2VudHJ5KG5leHQsIHN0cnVj dCBkZW50cnksIGRfY2hpbGQpOworCQkJbmV4dCA9IG5leHQtPm5leHQ7CisJCX0KKwkJcmN1X3Jl YWRfdW5sb2NrKCk7CiAJCWdvdG8gcmVzdW1lOwogCX0KLQlzcGluX3VubG9jaygmdGhpc19wYXJl bnQtPmRfbG9jayk7CiAJaWYgKCFsb2NrZWQgJiYgcmVhZF9zZXFyZXRyeSgmcmVuYW1lX2xvY2ss IHNlcSkpCiAJCWdvdG8gcmVuYW1lX3JldHJ5OworCXNwaW5fdW5sb2NrKCZ0aGlzX3BhcmVudC0+ ZF9sb2NrKTsKKwlyY3VfcmVhZF91bmxvY2soKTsKIAlpZiAobG9ja2VkKQogCQl3cml0ZV9zZXF1 bmxvY2soJnJlbmFtZV9sb2NrKTsKIAlyZXR1cm47CiAKIHJlbmFtZV9yZXRyeToKKwlzcGluX3Vu bG9jaygmdGhpc19wYXJlbnQtPmRfbG9jayk7CisJcmN1X3JlYWRfdW5sb2NrKCk7CiAJaWYgKGxv Y2tlZCkKIAkJZ290byBhZ2FpbjsKIAlsb2NrZWQgPSAxOwpkaWZmIC0tZ2l0IGEvZnMvZGVidWdm cy9pbm9kZS5jIGIvZnMvZGVidWdmcy9pbm9kZS5jCmluZGV4IDAxOTUxYzZiLi42YWMwODkzIDEw MDY0NAotLS0gYS9mcy9kZWJ1Z2ZzL2lub2RlLmMKKysrIGIvZnMvZGVidWdmcy9pbm9kZS5jCkBA IC0zOTksNyArMzk5LDcgQEAgdm9pZCBkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoc3RydWN0IGRl bnRyeSAqZGVudHJ5KQogCSAqIHVzZSB0aGUgZF91LmRfY2hpbGQgYXMgdGhlIHJjdSBoZWFkIGFu ZCBjb3JydXB0IHRoaXMgbGlzdC4KIAkgKi8KIAlzcGluX2xvY2soJnBhcmVudC0+ZF9sb2NrKTsK LQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNoaWxkLCAmcGFyZW50LT5kX3N1YmRpcnMsIGRfdS5kX2No aWxkKSB7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShjaGlsZCwgJnBhcmVudC0+ZF9zdWJkaXJzLCBk X2NoaWxkKSB7CiAJCWlmICghZGVidWdmc19wb3NpdGl2ZShjaGlsZCkpCiAJCQljb250aW51ZTsK IApkaWZmIC0tZ2l0IGEvZnMvZXhwb3J0ZnMvZXhwZnMuYyBiL2ZzL2V4cG9ydGZzL2V4cGZzLmMK aW5kZXggYjA1YWNiNy4uM2JiZjVlNyAxMDA2NDQKLS0tIGEvZnMvZXhwb3J0ZnMvZXhwZnMuYwor KysgYi9mcy9leHBvcnRmcy9leHBmcy5jCkBAIC01MCw3ICs1MCw3IEBAIGZpbmRfYWNjZXB0YWJs ZV9hbGlhcyhzdHJ1Y3QgZGVudHJ5ICpyZXN1bHQsCiAKIAlpbm9kZSA9IHJlc3VsdC0+ZF9pbm9k ZTsKIAlzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOwotCWxpc3RfZm9yX2VhY2hfZW50cnkoZGVu dHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShk ZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7CiAJCWRnZXQoZGVudHJ5KTsK IAkJc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOwogCQlpZiAodG9wdXQpCmRpZmYgLS1naXQg YS9mcy9leHQ0L2ZzeW5jLmMgYi9mcy9leHQ0L2ZzeW5jLmMKaW5kZXggYThkMDNhNC4uMDE5YzI5 YyAxMDA2NDQKLS0tIGEvZnMvZXh0NC9mc3luYy5jCisrKyBiL2ZzL2V4dDQvZnN5bmMuYwpAQCAt MTM5LDcgKzEzOSw3IEBAIHN0YXRpYyBpbnQgZXh0NF9zeW5jX3BhcmVudChzdHJ1Y3QgaW5vZGUg Kmlub2RlKQogCQlzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOwogCQlpZiAoIWxpc3RfZW1wdHko Jmlub2RlLT5pX2RlbnRyeSkpIHsKIAkJCWRlbnRyeSA9IGxpc3RfZmlyc3RfZW50cnkoJmlub2Rl LT5pX2RlbnRyeSwKLQkJCQkJCSAgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7CisJCQkJCQkgIHN0 cnVjdCBkZW50cnksIGRfdS5kX2FsaWFzKTsKIAkJCWRnZXQoZGVudHJ5KTsKIAkJfQogCQlzcGlu X3VubG9jaygmaW5vZGUtPmlfbG9jayk7CmRpZmYgLS1naXQgYS9mcy9leHQ0L25hbWVpLmMgYi9m cy9leHQ0L25hbWVpLmMKaW5kZXggY2QzOWZhNy4uYzlmMmUzZCAxMDA2NDQKLS0tIGEvZnMvZXh0 NC9uYW1laS5jCisrKyBiL2ZzL2V4dDQvbmFtZWkuYwpAQCAtMTk4Niw3ICsxOTg2LDcgQEAgaW50 IGV4dDRfb3JwaGFuX2FkZChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQog CXN0cnVjdCBleHQ0X2lsb2MgaWxvYzsKIAlpbnQgZXJyID0gMCwgcmM7CiAKLQlpZiAoIWV4dDRf aGFuZGxlX3ZhbGlkKGhhbmRsZSkgfHwgaXNfYmFkX2lub2RlKGlub2RlKSkKKwlpZiAoIUVYVDRf U0Ioc2IpLT5zX2pvdXJuYWwgfHwgaXNfYmFkX2lub2RlKGlub2RlKSkKIAkJcmV0dXJuIDA7CiAK IAltdXRleF9sb2NrKCZFWFQ0X1NCKHNiKS0+c19vcnBoYW5fbG9jayk7CkBAIC0yMDYwLDggKzIw NjAsNyBAQCBpbnQgZXh0NF9vcnBoYW5fZGVsKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9k ZSAqaW5vZGUpCiAJc3RydWN0IGV4dDRfaWxvYyBpbG9jOwogCWludCBlcnIgPSAwOwogCi0JLyog ZXh0NF9oYW5kbGVfdmFsaWQoKSBhc3N1bWVzIGEgdmFsaWQgaGFuZGxlX3QgcG9pbnRlciAqLwot CWlmIChoYW5kbGUgJiYgIWV4dDRfaGFuZGxlX3ZhbGlkKGhhbmRsZSkgJiYKKwlpZiAoIUVYVDRf U0IoaW5vZGUtPmlfc2IpLT5zX2pvdXJuYWwgJiYKIAkgICAgIShFWFQ0X1NCKGlub2RlLT5pX3Ni KS0+c19tb3VudF9zdGF0ZSAmIEVYVDRfT1JQSEFOX0ZTKSkKIAkJcmV0dXJuIDA7CiAKQEAgLTIw ODEsNyArMjA4MCw3IEBAIGludCBleHQ0X29ycGhhbl9kZWwoaGFuZGxlX3QgKmhhbmRsZSwgc3Ry dWN0IGlub2RlICppbm9kZSkKIAkgKiB0cmFuc2FjdGlvbiBoYW5kbGUgd2l0aCB3aGljaCB0byB1 cGRhdGUgdGhlIG9ycGhhbiBsaXN0IG9uCiAJICogZGlzaywgYnV0IHdlIHN0aWxsIG5lZWQgdG8g cmVtb3ZlIHRoZSBpbm9kZSBmcm9tIHRoZSBsaW5rZWQKIAkgKiBsaXN0IGluIG1lbW9yeS4gKi8K LQlpZiAoc2JpLT5zX2pvdXJuYWwgJiYgIWhhbmRsZSkKKwlpZiAoIWhhbmRsZSkKIAkJZ290byBv dXQ7CiAKIAllcnIgPSBleHQ0X3Jlc2VydmVfaW5vZGVfd3JpdGUoaGFuZGxlLCBpbm9kZSwgJmls b2MpOwpkaWZmIC0tZ2l0IGEvZnMvbGliZnMuYyBiL2ZzL2xpYmZzLmMKaW5kZXggZjZkNDExZS4u Y2U4NWVkZiAxMDA2NDQKLS0tIGEvZnMvbGliZnMuYworKysgYi9mcy9saWJmcy5jCkBAIC0xMDQs MTggKzEwNCwxOCBAQCBsb2ZmX3QgZGNhY2hlX2Rpcl9sc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwg bG9mZl90IG9mZnNldCwgaW50IG9yaWdpbikKIAogCQkJc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9j ayk7CiAJCQkvKiBkX2xvY2sgbm90IHJlcXVpcmVkIGZvciBjdXJzb3IgKi8KLQkJCWxpc3RfZGVs KCZjdXJzb3ItPmRfdS5kX2NoaWxkKTsKKwkJCWxpc3RfZGVsKCZjdXJzb3ItPmRfY2hpbGQpOwog CQkJcCA9IGRlbnRyeS0+ZF9zdWJkaXJzLm5leHQ7CiAJCQl3aGlsZSAobiAmJiBwICE9ICZkZW50 cnktPmRfc3ViZGlycykgewogCQkJCXN0cnVjdCBkZW50cnkgKm5leHQ7Ci0JCQkJbmV4dCA9IGxp c3RfZW50cnkocCwgc3RydWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOworCQkJCW5leHQgPSBsaXN0 X2VudHJ5KHAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOwogCQkJCXNwaW5fbG9ja19uZXN0ZWQo Jm5leHQtPmRfbG9jaywgREVOVFJZX0RfTE9DS19ORVNURUQpOwogCQkJCWlmIChzaW1wbGVfcG9z aXRpdmUobmV4dCkpCiAJCQkJCW4tLTsKIAkJCQlzcGluX3VubG9jaygmbmV4dC0+ZF9sb2NrKTsK IAkJCQlwID0gcC0+bmV4dDsKIAkJCX0KLQkJCWxpc3RfYWRkX3RhaWwoJmN1cnNvci0+ZF91LmRf Y2hpbGQsIHApOworCQkJbGlzdF9hZGRfdGFpbCgmY3Vyc29yLT5kX2NoaWxkLCBwKTsKIAkJCXNw aW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7CiAJCX0KIAl9CkBAIC0xMzksNyArMTM5LDcgQEAg aW50IGRjYWNoZV9yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlscCwgdm9pZCAqIGRpcmVudCwgZmls bGRpcl90IGZpbGxkaXIpCiB7CiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gZmlscC0+Zl9wYXRo LmRlbnRyeTsKIAlzdHJ1Y3QgZGVudHJ5ICpjdXJzb3IgPSBmaWxwLT5wcml2YXRlX2RhdGE7Ci0J c3RydWN0IGxpc3RfaGVhZCAqcCwgKnEgPSAmY3Vyc29yLT5kX3UuZF9jaGlsZDsKKwlzdHJ1Y3Qg bGlzdF9oZWFkICpwLCAqcSA9ICZjdXJzb3ItPmRfY2hpbGQ7CiAJaW5vX3QgaW5vOwogCWludCBp ID0gZmlscC0+Zl9wb3M7CiAKQEAgLTE2NSw3ICsxNjUsNyBAQCBpbnQgZGNhY2hlX3JlYWRkaXIo c3RydWN0IGZpbGUgKiBmaWxwLCB2b2lkICogZGlyZW50LCBmaWxsZGlyX3QgZmlsbGRpcikKIAog CQkJZm9yIChwPXEtPm5leHQ7IHAgIT0gJmRlbnRyeS0+ZF9zdWJkaXJzOyBwPXAtPm5leHQpIHsK IAkJCQlzdHJ1Y3QgZGVudHJ5ICpuZXh0OwotCQkJCW5leHQgPSBsaXN0X2VudHJ5KHAsIHN0cnVj dCBkZW50cnksIGRfdS5kX2NoaWxkKTsKKwkJCQluZXh0ID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3Qg ZGVudHJ5LCBkX2NoaWxkKTsKIAkJCQlzcGluX2xvY2tfbmVzdGVkKCZuZXh0LT5kX2xvY2ssIERF TlRSWV9EX0xPQ0tfTkVTVEVEKTsKIAkJCQlpZiAoIXNpbXBsZV9wb3NpdGl2ZShuZXh0KSkgewog CQkJCQlzcGluX3VubG9jaygmbmV4dC0+ZF9sb2NrKTsKQEAgLTI4Miw3ICsyODIsNyBAQCBpbnQg c2ltcGxlX2VtcHR5KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAlpbnQgcmV0ID0gMDsKIAogCXNw aW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOwotCWxpc3RfZm9yX2VhY2hfZW50cnkoY2hpbGQsICZk ZW50cnktPmRfc3ViZGlycywgZF91LmRfY2hpbGQpIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNo aWxkLCAmZGVudHJ5LT5kX3N1YmRpcnMsIGRfY2hpbGQpIHsKIAkJc3Bpbl9sb2NrX25lc3RlZCgm Y2hpbGQtPmRfbG9jaywgREVOVFJZX0RfTE9DS19ORVNURUQpOwogCQlpZiAoc2ltcGxlX3Bvc2l0 aXZlKGNoaWxkKSkgewogCQkJc3Bpbl91bmxvY2soJmNoaWxkLT5kX2xvY2spOwpkaWZmIC0tZ2l0 IGEvZnMvbmNwZnMvZGlyLmMgYi9mcy9uY3Bmcy9kaXIuYwppbmRleCA4NDRiZDY0Li5lZmEzOGE5 IDEwMDY0NAotLS0gYS9mcy9uY3Bmcy9kaXIuYworKysgYi9mcy9uY3Bmcy9kaXIuYwpAQCAtMzkx LDcgKzM5MSw3IEBAIG5jcF9kZ2V0X2Zwb3Moc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3Qg ZGVudHJ5ICpwYXJlbnQsIHVuc2lnbmVkIGxvbmcgZnBvcykKIAlzcGluX2xvY2soJnBhcmVudC0+ ZF9sb2NrKTsKIAluZXh0ID0gcGFyZW50LT5kX3N1YmRpcnMubmV4dDsKIAl3aGlsZSAobmV4dCAh PSAmcGFyZW50LT5kX3N1YmRpcnMpIHsKLQkJZGVudCA9IGxpc3RfZW50cnkobmV4dCwgc3RydWN0 IGRlbnRyeSwgZF91LmRfY2hpbGQpOworCQlkZW50ID0gbGlzdF9lbnRyeShuZXh0LCBzdHJ1Y3Qg ZGVudHJ5LCBkX2NoaWxkKTsKIAkJaWYgKCh1bnNpZ25lZCBsb25nKWRlbnQtPmRfZnNkYXRhID09 IGZwb3MpIHsKIAkJCWlmIChkZW50LT5kX2lub2RlKQogCQkJCWRnZXQoZGVudCk7CmRpZmYgLS1n aXQgYS9mcy9uY3Bmcy9uY3BsaWJfa2VybmVsLmggYi9mcy9uY3Bmcy9uY3BsaWJfa2VybmVsLmgK aW5kZXggMDk4ODFlNi4uNjRhODE3YSAxMDA2NDQKLS0tIGEvZnMvbmNwZnMvbmNwbGliX2tlcm5l bC5oCisrKyBiL2ZzL25jcGZzL25jcGxpYl9rZXJuZWwuaApAQCAtMTk0LDcgKzE5NCw3IEBAIG5j cF9yZW5ld19kZW50cmllcyhzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQpCiAJc3Bpbl9sb2NrKCZwYXJl bnQtPmRfbG9jayk7CiAJbmV4dCA9IHBhcmVudC0+ZF9zdWJkaXJzLm5leHQ7CiAJd2hpbGUgKG5l eHQgIT0gJnBhcmVudC0+ZF9zdWJkaXJzKSB7Ci0JCWRlbnRyeSA9IGxpc3RfZW50cnkobmV4dCwg c3RydWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOworCQlkZW50cnkgPSBsaXN0X2VudHJ5KG5leHQs IHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOwogCiAJCWlmIChkZW50cnktPmRfZnNkYXRhID09IE5V TEwpCiAJCQluY3BfYWdlX2RlbnRyeShzZXJ2ZXIsIGRlbnRyeSk7CkBAIC0yMTYsNyArMjE2LDcg QEAgbmNwX2ludmFsaWRhdGVfZGlyY2FjaGVfZW50cmllcyhzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQp CiAJc3Bpbl9sb2NrKCZwYXJlbnQtPmRfbG9jayk7CiAJbmV4dCA9IHBhcmVudC0+ZF9zdWJkaXJz Lm5leHQ7CiAJd2hpbGUgKG5leHQgIT0gJnBhcmVudC0+ZF9zdWJkaXJzKSB7Ci0JCWRlbnRyeSA9 IGxpc3RfZW50cnkobmV4dCwgc3RydWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOworCQlkZW50cnkg PSBsaXN0X2VudHJ5KG5leHQsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOwogCQlkZW50cnktPmRf ZnNkYXRhID0gTlVMTDsKIAkJbmNwX2FnZV9kZW50cnkoc2VydmVyLCBkZW50cnkpOwogCQluZXh0 ID0gbmV4dC0+bmV4dDsKZGlmZiAtLWdpdCBhL2ZzL25mcy9nZXRyb290LmMgYi9mcy9uZnMvZ2V0 cm9vdC5jCmluZGV4IGRjYjYxNTQuLmQ3YWJmOWUgMTAwNjQ0Ci0tLSBhL2ZzL25mcy9nZXRyb290 LmMKKysrIGIvZnMvbmZzL2dldHJvb3QuYwpAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgaW50IG5m c19zdXBlcmJsb2NrX3NldF9kdW1teV9yb290KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVj dCBpbm9kZSAqaQogCQkgKi8KIAkJc3Bpbl9sb2NrKCZzYi0+c19yb290LT5kX2lub2RlLT5pX2xv Y2spOwogCQlzcGluX2xvY2soJnNiLT5zX3Jvb3QtPmRfbG9jayk7Ci0JCWxpc3RfZGVsX2luaXQo JnNiLT5zX3Jvb3QtPmRfYWxpYXMpOworCQlsaXN0X2RlbF9pbml0KCZzYi0+c19yb290LT5kX3Uu ZF9hbGlhcyk7CiAJCXNwaW5fdW5sb2NrKCZzYi0+c19yb290LT5kX2xvY2spOwogCQlzcGluX3Vu bG9jaygmc2ItPnNfcm9vdC0+ZF9pbm9kZS0+aV9sb2NrKTsKIAl9CmRpZmYgLS1naXQgYS9mcy9u b3RpZnkvZnNub3RpZnkuYyBiL2ZzL25vdGlmeS9mc25vdGlmeS5jCmluZGV4IDc5YjQ3Y2IuLmY4 ZWEyOGYgMTAwNjQ0Ci0tLSBhL2ZzL25vdGlmeS9mc25vdGlmeS5jCisrKyBiL2ZzL25vdGlmeS9m c25vdGlmeS5jCkBAIC02MiwxNCArNjIsMTQgQEAgdm9pZCBfX2Zzbm90aWZ5X3VwZGF0ZV9jaGls ZF9kZW50cnlfZmxhZ3Moc3RydWN0IGlub2RlICppbm9kZSkKIAlzcGluX2xvY2soJmlub2RlLT5p X2xvY2spOwogCS8qIHJ1biBhbGwgb2YgdGhlIGRlbnRyaWVzIGFzc29jaWF0ZWQgd2l0aCB0aGlz IGlub2RlLiAgU2luY2UgdGhpcyBpcyBhCiAJICogZGlyZWN0b3J5LCB0aGVyZSBkYW1uIHdlbGwg YmV0dGVyIG9ubHkgYmUgb25lIGl0ZW0gb24gdGhpcyBsaXN0ICovCi0JbGlzdF9mb3JfZWFjaF9l bnRyeShhbGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgeworCWxpc3RfZm9yX2VhY2hf ZW50cnkoYWxpYXMsICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7CiAJCXN0cnVjdCBk ZW50cnkgKmNoaWxkOwogCiAJCS8qIHJ1biBhbGwgb2YgdGhlIGNoaWxkcmVuIG9mIHRoZSBvcmln aW5hbCBpbm9kZSBhbmQgZml4IHRoZWlyCiAJCSAqIGRfZmxhZ3MgdG8gaW5kaWNhdGUgcGFyZW50 YWwgaW50ZXJlc3QgKHRoZWlyIHBhcmVudCBpcyB0aGUKIAkJICogb3JpZ2luYWwgaW5vZGUpICov CiAJCXNwaW5fbG9jaygmYWxpYXMtPmRfbG9jayk7Ci0JCWxpc3RfZm9yX2VhY2hfZW50cnkoY2hp bGQsICZhbGlhcy0+ZF9zdWJkaXJzLCBkX3UuZF9jaGlsZCkgeworCQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KGNoaWxkLCAmYWxpYXMtPmRfc3ViZGlycywgZF9jaGlsZCkgewogCQkJaWYgKCFjaGlsZC0+ ZF9pbm9kZSkKIAkJCQljb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGNhY2hlLmMg Yi9mcy9vY2ZzMi9kY2FjaGUuYwppbmRleCBlNWJhMzQ4Li4yNjk3N2NjIDEwMDY0NAotLS0gYS9m cy9vY2ZzMi9kY2FjaGUuYworKysgYi9mcy9vY2ZzMi9kY2FjaGUuYwpAQCAtMTc1LDcgKzE3NSw3 IEBAIHN0cnVjdCBkZW50cnkgKm9jZnMyX2ZpbmRfbG9jYWxfYWxpYXMoc3RydWN0IGlub2RlICpp bm9kZSwKIAogCXNwaW5fbG9jaygmaW5vZGUtPmlfbG9jayk7CiAJbGlzdF9mb3JfZWFjaChwLCAm aW5vZGUtPmlfZGVudHJ5KSB7Ci0JCWRlbnRyeSA9IGxpc3RfZW50cnkocCwgc3RydWN0IGRlbnRy eSwgZF9hbGlhcyk7CisJCWRlbnRyeSA9IGxpc3RfZW50cnkocCwgc3RydWN0IGRlbnRyeSwgZF91 LmRfYWxpYXMpOwogCiAJCXNwaW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOwogCQlpZiAob2NmczJf bWF0Y2hfZGVudHJ5KGRlbnRyeSwgcGFyZW50X2Jsa25vLCBza2lwX3VuaGFzaGVkKSkgewpkaWZm IC0tZ2l0IGEvZnMvdWRmL2lub2RlLmMgYi9mcy91ZGYvaW5vZGUuYwppbmRleCBhZjM3Y2UzLi5h MGY2ZGVkIDEwMDY0NAotLS0gYS9mcy91ZGYvaW5vZGUuYworKysgYi9mcy91ZGYvaW5vZGUuYwpA QCAtMTE3NiwxMyArMTE3NiwyMiBAQCB1cGRhdGVfdGltZToKIAlyZXR1cm4gMDsKIH0KIAorLyoK KyAqIE1heGltdW0gbGVuZ3RoIG9mIGxpbmtlZCBsaXN0IGZvcm1lZCBieSBJQ0IgaGllcmFyY2h5 LiBUaGUgY2hvc2VuIG51bWJlciBpcworICogYXJiaXRyYXJ5IC0ganVzdCB0aGF0IHdlIGhvcGVm dWxseSBkb24ndCBsaW1pdCBhbnkgcmVhbCB1c2Ugb2YgcmV3cml0dGVuCisgKiBpbm9kZSBvbiB3 cml0ZS1vbmNlIG1lZGlhIGJ1dCBhdm9pZCBsb29waW5nIGZvciB0b28gbG9uZyBvbiBjb3JydXB0 ZWQgbWVkaWEuCisgKi8KKyNkZWZpbmUgVURGX01BWF9JQ0JfTkVTVElORyAxMDI0CisKIHN0YXRp YyB2b2lkIF9fdWRmX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKIHsKIAlzdHJ1Y3Qg YnVmZmVyX2hlYWQgKmJoID0gTlVMTDsKIAlzdHJ1Y3QgZmlsZUVudHJ5ICpmZTsKIAl1aW50MTZf dCBpZGVudDsKIAlzdHJ1Y3QgdWRmX2lub2RlX2luZm8gKmlpbmZvID0gVURGX0koaW5vZGUpOwor CXVuc2lnbmVkIGludCBpbmRpcmVjdGlvbnMgPSAwOwogCityZXJlYWQ6CiAJLyoKIAkgKiBTZXQg ZGVmYXVsdHMsIGJ1dCB0aGUgaW5vZGUgaXMgc3RpbGwgaW5jb21wbGV0ZSEKIAkgKiBOb3RlOiBn ZXRfbmV3X2lub2RlKCkgc2V0cyB0aGUgZm9sbG93aW5nIG9uIGEgbmV3IGlub2RlOgpAQCAtMTIx OSwyOCArMTIyOCwyNiBAQCBzdGF0aWMgdm9pZCBfX3VkZl9yZWFkX2lub2RlKHN0cnVjdCBpbm9k ZSAqaW5vZGUpCiAJCWliaCA9IHVkZl9yZWFkX3B0YWdnZWQoaW5vZGUtPmlfc2IsICZpaW5mby0+ aV9sb2NhdGlvbiwgMSwKIAkJCQkJJmlkZW50KTsKIAkJaWYgKGlkZW50ID09IFRBR19JREVOVF9J RSAmJiBpYmgpIHsKLQkJCXN0cnVjdCBidWZmZXJfaGVhZCAqbmJoID0gTlVMTDsKIAkJCXN0cnVj dCBrZXJuZWxfbGJfYWRkciBsb2M7CiAJCQlzdHJ1Y3QgaW5kaXJlY3RFbnRyeSAqaWU7CiAKIAkJ CWllID0gKHN0cnVjdCBpbmRpcmVjdEVudHJ5ICopaWJoLT5iX2RhdGE7CiAJCQlsb2MgPSBsZWxi X3RvX2NwdShpZS0+aW5kaXJlY3RJQ0IuZXh0TG9jYXRpb24pOwogCi0JCQlpZiAoaWUtPmluZGly ZWN0SUNCLmV4dExlbmd0aCAmJgotCQkJCShuYmggPSB1ZGZfcmVhZF9wdGFnZ2VkKGlub2RlLT5p X3NiLCAmbG9jLCAwLAotCQkJCQkJCSZpZGVudCkpKSB7Ci0JCQkJaWYgKGlkZW50ID09IFRBR19J REVOVF9GRSB8fAotCQkJCQlpZGVudCA9PSBUQUdfSURFTlRfRUZFKSB7Ci0JCQkJCW1lbWNweSgm aWluZm8tPmlfbG9jYXRpb24sCi0JCQkJCQkmbG9jLAotCQkJCQkJc2l6ZW9mKHN0cnVjdCBrZXJu ZWxfbGJfYWRkcikpOwotCQkJCQlicmVsc2UoYmgpOwotCQkJCQlicmVsc2UoaWJoKTsKLQkJCQkJ YnJlbHNlKG5iaCk7Ci0JCQkJCV9fdWRmX3JlYWRfaW5vZGUoaW5vZGUpOworCQkJaWYgKGllLT5p bmRpcmVjdElDQi5leHRMZW5ndGgpIHsKKwkJCQlicmVsc2UoYmgpOworCQkJCWJyZWxzZShpYmgp OworCQkJCW1lbWNweSgmaWluZm8tPmlfbG9jYXRpb24sICZsb2MsCisJCQkJICAgICAgIHNpemVv ZihzdHJ1Y3Qga2VybmVsX2xiX2FkZHIpKTsKKwkJCQlpZiAoKytpbmRpcmVjdGlvbnMgPiBVREZf TUFYX0lDQl9ORVNUSU5HKSB7CisJCQkJCXVkZl9lcnIoaW5vZGUtPmlfc2IsCisJCQkJCQkidG9v IG1hbnkgSUNCcyBpbiBJQ0IgaGllcmFyY2h5IgorCQkJCQkJIiAobWF4ICVkIHN1cHBvcnRlZClc biIsCisJCQkJCQlVREZfTUFYX0lDQl9ORVNUSU5HKTsKKwkJCQkJbWFrZV9iYWRfaW5vZGUoaW5v ZGUpOwogCQkJCQlyZXR1cm47CiAJCQkJfQotCQkJCWJyZWxzZShuYmgpOworCQkJCWdvdG8gcmVy ZWFkOwogCQkJfQogCQl9CiAJCWJyZWxzZShpYmgpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9kY2FjaGUuaCBiL2luY2x1ZGUvbGludXgvZGNhY2hlLmgKaW5kZXggMWRmZTk3NC4uOTkzNzRk ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9kY2FjaGUuaAorKysgYi9pbmNsdWRlL2xpbnV4 L2RjYWNoZS5oCkBAIC0xMzMsMTUgKzEzMywxNSBAQCBzdHJ1Y3QgZGVudHJ5IHsKIAl2b2lkICpk X2ZzZGF0YTsJCQkvKiBmcy1zcGVjaWZpYyBkYXRhICovCiAKIAlzdHJ1Y3QgbGlzdF9oZWFkIGRf bHJ1OwkJLyogTFJVIGxpc3QgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGRfY2hpbGQ7CS8qIGNoaWxk IG9mIHBhcmVudCBsaXN0ICovCisJc3RydWN0IGxpc3RfaGVhZCBkX3N1YmRpcnM7CS8qIG91ciBj aGlsZHJlbiAqLwogCS8qCi0JICogZF9jaGlsZCBhbmQgZF9yY3UgY2FuIHNoYXJlIG1lbW9yeQor CSAqIGRfYWxpYXMgYW5kIGRfcmN1IGNhbiBzaGFyZSBtZW1vcnkKIAkgKi8KIAl1bmlvbiB7Ci0J CXN0cnVjdCBsaXN0X2hlYWQgZF9jaGlsZDsJLyogY2hpbGQgb2YgcGFyZW50IGxpc3QgKi8KKwkJ c3RydWN0IGxpc3RfaGVhZCBkX2FsaWFzOwkvKiBpbm9kZSBhbGlhcyBsaXN0ICovCiAJIAlzdHJ1 Y3QgcmN1X2hlYWQgZF9yY3U7CiAJfSBkX3U7Ci0Jc3RydWN0IGxpc3RfaGVhZCBkX3N1YmRpcnM7 CS8qIG91ciBjaGlsZHJlbiAqLwotCXN0cnVjdCBsaXN0X2hlYWQgZF9hbGlhczsJLyogaW5vZGUg YWxpYXMgbGlzdCAqLwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lwdjYuaCBi L2luY2x1ZGUvbmV0L2lwdjYuaAppbmRleCAwMGEyZWI2Li5hYjJlNmQ3IDEwMDY0NAotLS0gYS9p bmNsdWRlL25ldC9pcHY2LmgKKysrIGIvaW5jbHVkZS9uZXQvaXB2Ni5oCkBAIC00ODEsNiArNDgx LDcgQEAgc3RhdGljIGlubGluZSBpbnQgaXB2Nl9hZGRyX2RpZmYoY29uc3Qgc3RydWN0IGluNl9h ZGRyICphMSwgY29uc3Qgc3RydWN0IGluNl9hZGQKIH0KIAogZXh0ZXJuIHZvaWQgaXB2Nl9zZWxl Y3RfaWRlbnQoc3RydWN0IGZyYWdfaGRyICpmaGRyLCBzdHJ1Y3QgcnQ2X2luZm8gKnJ0KTsKK3Zv aWQgaXB2Nl9wcm94eV9zZWxlY3RfaWRlbnQoc3RydWN0IHNrX2J1ZmYgKnNrYik7CiAKIC8qCiAg KglQcm90b3R5cGVzIGV4cG9ydGVkIGJ5IGlwdjYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3Rj cC5oIGIvaW5jbHVkZS9uZXQvdGNwLmgKaW5kZXggMjM4MjU1Yi4uZTkwMjM1ZiAxMDA2NDQKLS0t IGEvaW5jbHVkZS9uZXQvdGNwLmgKKysrIGIvaW5jbHVkZS9uZXQvdGNwLmgKQEAgLTEyMTQsMTEg KzEyMTQsMTMgQEAgZXh0ZXJuIGludCB0Y3BfdjRfbWQ1X2RvX2RlbChzdHJ1Y3Qgc29jayAqc2ss IF9fYmUzMiBhZGRyKTsKICNkZWZpbmUgdGNwX3R3c2tfbWQ1X2tleSh0d3NrKQlOVUxMCiAjZW5k aWYKIAotZXh0ZXJuIHN0cnVjdCB0Y3BfbWQ1c2lnX3Bvb2wgX19wZXJjcHUgKnRjcF9hbGxvY19t ZDVzaWdfcG9vbChzdHJ1Y3Qgc29jayAqKTsKLWV4dGVybiB2b2lkIHRjcF9mcmVlX21kNXNpZ19w b29sKHZvaWQpOworZXh0ZXJuIGJvb2wgdGNwX2FsbG9jX21kNXNpZ19wb29sKHZvaWQpOwogCiBl eHRlcm4gc3RydWN0IHRjcF9tZDVzaWdfcG9vbAkqdGNwX2dldF9tZDVzaWdfcG9vbCh2b2lkKTsK LWV4dGVybiB2b2lkIHRjcF9wdXRfbWQ1c2lnX3Bvb2wodm9pZCk7CitzdGF0aWMgaW5saW5lIHZv aWQgdGNwX3B1dF9tZDVzaWdfcG9vbCh2b2lkKQoreworCWxvY2FsX2JoX2VuYWJsZSgpOworfQog CiBleHRlcm4gaW50IHRjcF9tZDVfaGFzaF9oZWFkZXIoc3RydWN0IHRjcF9tZDVzaWdfcG9vbCAq LCBjb25zdCBzdHJ1Y3QgdGNwaGRyICopOwogZXh0ZXJuIGludCB0Y3BfbWQ1X2hhc2hfc2tiX2Rh dGEoc3RydWN0IHRjcF9tZDVzaWdfcG9vbCAqLCBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqLApkaWZm IC0tZ2l0IGEva2VybmVsL2Nncm91cC5jIGIva2VybmVsL2Nncm91cC5jCmluZGV4IGZmY2Y4OTYu LmVhZmI2ZGQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9jZ3JvdXAuYworKysgYi9rZXJuZWwvY2dyb3Vw LmMKQEAgLTg4MSw3ICs4ODEsNyBAQCBzdGF0aWMgdm9pZCBjZ3JvdXBfY2xlYXJfZGlyZWN0b3J5 KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAlzcGluX2xvY2soJmRlbnRyeS0+ZF9sb2NrKTsKIAlu b2RlID0gZGVudHJ5LT5kX3N1YmRpcnMubmV4dDsKIAl3aGlsZSAobm9kZSAhPSAmZGVudHJ5LT5k X3N1YmRpcnMpIHsKLQkJc3RydWN0IGRlbnRyeSAqZCA9IGxpc3RfZW50cnkobm9kZSwgc3RydWN0 IGRlbnRyeSwgZF91LmRfY2hpbGQpOworCQlzdHJ1Y3QgZGVudHJ5ICpkID0gbGlzdF9lbnRyeShu b2RlLCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsKIAogCQlzcGluX2xvY2tfbmVzdGVkKCZkLT5k X2xvY2ssIERFTlRSWV9EX0xPQ0tfTkVTVEVEKTsKIAkJbGlzdF9kZWxfaW5pdChub2RlKTsKQEAg LTkxNSw3ICs5MTUsNyBAQCBzdGF0aWMgdm9pZCBjZ3JvdXBfZF9yZW1vdmVfZGlyKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSkKIAlwYXJlbnQgPSBkZW50cnktPmRfcGFyZW50OwogCXNwaW5fbG9jaygm cGFyZW50LT5kX2xvY2spOwogCXNwaW5fbG9ja19uZXN0ZWQoJmRlbnRyeS0+ZF9sb2NrLCBERU5U UllfRF9MT0NLX05FU1RFRCk7Ci0JbGlzdF9kZWxfaW5pdCgmZGVudHJ5LT5kX3UuZF9jaGlsZCk7 CisJbGlzdF9kZWxfaW5pdCgmZGVudHJ5LT5kX2NoaWxkKTsKIAlzcGluX3VubG9jaygmZGVudHJ5 LT5kX2xvY2spOwogCXNwaW5fdW5sb2NrKCZwYXJlbnQtPmRfbG9jayk7CiAJcmVtb3ZlX2Rpcihk ZW50cnkpOwpkaWZmIC0tZ2l0IGEvbW0vbWVtb3J5LmMgYi9tbS9tZW1vcnkuYwppbmRleCA1YTdm MzE0Li42MjhjYWRjIDEwMDY0NAotLS0gYS9tbS9tZW1vcnkuYworKysgYi9tbS9tZW1vcnkuYwpA QCAtODcwLDIwICs4NzAsMjAgQEAgY29weV9vbmVfcHRlKHN0cnVjdCBtbV9zdHJ1Y3QgKmRzdF9t bSwgc3RydWN0IG1tX3N0cnVjdCAqc3JjX21tLAogCQlpZiAoIXB0ZV9maWxlKHB0ZSkpIHsKIAkJ CXN3cF9lbnRyeV90IGVudHJ5ID0gcHRlX3RvX3N3cF9lbnRyeShwdGUpOwogCi0JCQlpZiAoc3dh cF9kdXBsaWNhdGUoZW50cnkpIDwgMCkKLQkJCQlyZXR1cm4gZW50cnkudmFsOwotCi0JCQkvKiBt YWtlIHN1cmUgZHN0X21tIGlzIG9uIHN3YXBvZmYncyBtbWxpc3QuICovCi0JCQlpZiAodW5saWtl bHkobGlzdF9lbXB0eSgmZHN0X21tLT5tbWxpc3QpKSkgewotCQkJCXNwaW5fbG9jaygmbW1saXN0 X2xvY2spOwotCQkJCWlmIChsaXN0X2VtcHR5KCZkc3RfbW0tPm1tbGlzdCkpCi0JCQkJCWxpc3Rf YWRkKCZkc3RfbW0tPm1tbGlzdCwKLQkJCQkJCSAmc3JjX21tLT5tbWxpc3QpOwotCQkJCXNwaW5f dW5sb2NrKCZtbWxpc3RfbG9jayk7Ci0JCQl9Ci0JCQlpZiAobGlrZWx5KCFub25fc3dhcF9lbnRy eShlbnRyeSkpKQorCQkJaWYgKGxpa2VseSghbm9uX3N3YXBfZW50cnkoZW50cnkpKSkgeworCQkJ CWlmIChzd2FwX2R1cGxpY2F0ZShlbnRyeSkgPCAwKQorCQkJCQlyZXR1cm4gZW50cnkudmFsOwor CisJCQkJLyogbWFrZSBzdXJlIGRzdF9tbSBpcyBvbiBzd2Fwb2ZmJ3MgbW1saXN0LiAqLworCQkJ CWlmICh1bmxpa2VseShsaXN0X2VtcHR5KCZkc3RfbW0tPm1tbGlzdCkpKSB7CisJCQkJCXNwaW5f bG9jaygmbW1saXN0X2xvY2spOworCQkJCQlpZiAobGlzdF9lbXB0eSgmZHN0X21tLT5tbWxpc3Qp KQorCQkJCQkJbGlzdF9hZGQoJmRzdF9tbS0+bW1saXN0LAorCQkJCQkJCSAmc3JjX21tLT5tbWxp c3QpOworCQkJCQlzcGluX3VubG9jaygmbW1saXN0X2xvY2spOworCQkJCX0KIAkJCQlyc3NbTU1f U1dBUEVOVFNdKys7Ci0JCQllbHNlIGlmIChpc193cml0ZV9taWdyYXRpb25fZW50cnkoZW50cnkp ICYmCisJCQl9IGVsc2UgaWYgKGlzX3dyaXRlX21pZ3JhdGlvbl9lbnRyeShlbnRyeSkgJiYKIAkJ CQkJaXNfY293X21hcHBpbmcodm1fZmxhZ3MpKSB7CiAJCQkJLyoKIAkJCQkgKiBDT1cgbWFwcGlu Z3MgcmVxdWlyZSBwYWdlcyBpbiBib3RoIHBhcmVudApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmli X3NlbWFudGljcy5jIGIvbmV0L2lwdjQvZmliX3NlbWFudGljcy5jCmluZGV4IDc2ZGE5NzkuLjFj ZGI0YTkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYworKysgYi9uZXQvaXB2 NC9maWJfc2VtYW50aWNzLmMKQEAgLTQ2Nyw3ICs0NjcsNyBAQCBpbnQgZmliX25oX21hdGNoKHN0 cnVjdCBmaWJfY29uZmlnICpjZmcsIHN0cnVjdCBmaWJfaW5mbyAqZmkpCiAJCQlyZXR1cm4gMTsK IAogCQlhdHRybGVuID0gcnRuaF9hdHRybGVuKHJ0bmgpOwotCQlpZiAoYXR0cmxlbiA8IDApIHsK KwkJaWYgKGF0dHJsZW4gPiAwKSB7CiAJCQlzdHJ1Y3QgbmxhdHRyICpubGEsICphdHRycyA9IHJ0 bmhfYXR0cnMocnRuaCk7CiAKIAkJCW5sYSA9IG5sYV9maW5kKGF0dHJzLCBhdHRybGVuLCBSVEFf R0FURVdBWSk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9vdXRwdXQuYyBiL25ldC9pcHY0L2lw X291dHB1dC5jCmluZGV4IDExNTE1N2IuLmJmMmU1NGIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lw X291dHB1dC5jCisrKyBiL25ldC9pcHY0L2lwX291dHB1dC5jCkBAIC0xNDcyLDYgKzE0NzIsNyBA QCB2b2lkIGlwX3NlbmRfcmVwbHkoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBfX2JlMzIgZGFkZHIsCiAJc3RydWN0IGlwY21fY29va2llIGlwYzsKIAlzdHJ1Y3QgZmxvd2k0 IGZsNDsKIAlzdHJ1Y3QgcnRhYmxlICpydCA9IHNrYl9ydGFibGUoc2tiKTsKKwlpbnQgZXJyOwog CiAJaWYgKGlwX29wdGlvbnNfZWNobygmcmVwbHlvcHRzLm9wdC5vcHQsIHNrYikpCiAJCXJldHVy bjsKQEAgLTE1MDksOCArMTUxMCwxMyBAQCB2b2lkIGlwX3NlbmRfcmVwbHkoc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgZGFkZHIsCiAJc2stPnNrX3ByaW9yaXR5 ID0gc2tiLT5wcmlvcml0eTsKIAlzay0+c2tfcHJvdG9jb2wgPSBpcF9oZHIoc2tiKS0+cHJvdG9j b2w7CiAJc2stPnNrX2JvdW5kX2Rldl9pZiA9IGFyZy0+Ym91bmRfZGV2X2lmOwotCWlwX2FwcGVu ZF9kYXRhKHNrLCAmZmw0LCBpcF9yZXBseV9nbHVlX2JpdHMsIGFyZy0+aW92LT5pb3ZfYmFzZSwg bGVuLCAwLAotCQkgICAgICAgJmlwYywgJnJ0LCBNU0dfRE9OVFdBSVQpOworCWVyciA9IGlwX2Fw cGVuZF9kYXRhKHNrLCAmZmw0LCBpcF9yZXBseV9nbHVlX2JpdHMsIGFyZy0+aW92LT5pb3ZfYmFz ZSwKKwkJCSAgICAgbGVuLCAwLCAmaXBjLCAmcnQsIE1TR19ET05UV0FJVCk7CisJaWYgKHVubGlr ZWx5KGVycikpIHsKKwkJaXBfZmx1c2hfcGVuZGluZ19mcmFtZXMoc2spOworCQlnb3RvIG91dDsK Kwl9CisKIAlpZiAoKHNrYiA9IHNrYl9wZWVrKCZzay0+c2tfd3JpdGVfcXVldWUpKSAhPSBOVUxM KSB7CiAJCWlmIChhcmctPmNzdW1vZmZzZXQgPj0gMCkKIAkJCSooKF9fc3VtMTYgKilza2JfdHJh bnNwb3J0X2hlYWRlcihza2IpICsKQEAgLTE1MTksNyArMTUyNSw3IEBAIHZvaWQgaXBfc2VuZF9y ZXBseShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBkYWRkciwK IAkJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NVTV9OT05FOwogCQlpcF9wdXNoX3BlbmRpbmdfZnJh bWVzKHNrLCAmZmw0KTsKIAl9Ci0KK291dDoKIAliaF91bmxvY2tfc29jayhzayk7CiAKIAlpcF9y dF9wdXQocnQpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwpp bmRleCBlYzhiNGI3ZS4uMzJjOWU4MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwLmMKKysrIGIv bmV0L2lwdjQvdGNwLmMKQEAgLTI4NjMsMTA0ICsyODYzLDQyIEBAIGludCB0Y3BfZ3JvX2NvbXBs ZXRlKHN0cnVjdCBza19idWZmICpza2IpCiBFWFBPUlRfU1lNQk9MKHRjcF9ncm9fY29tcGxldGUp OwogCiAjaWZkZWYgQ09ORklHX1RDUF9NRDVTSUcKLXN0YXRpYyB1bnNpZ25lZCBsb25nIHRjcF9t ZDVzaWdfdXNlcnM7Ci1zdGF0aWMgc3RydWN0IHRjcF9tZDVzaWdfcG9vbCBfX3BlcmNwdSAqdGNw X21kNXNpZ19wb29sOwotc3RhdGljIERFRklORV9TUElOTE9DSyh0Y3BfbWQ1c2lnX3Bvb2xfbG9j ayk7CitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHRjcF9tZDVzaWdfcG9vbCwgdGNwX21k NXNpZ19wb29sKTsKK3N0YXRpYyBERUZJTkVfTVVURVgodGNwX21kNXNpZ19tdXRleCk7CitzdGF0 aWMgYm9vbCB0Y3BfbWQ1c2lnX3Bvb2xfcG9wdWxhdGVkID0gZmFsc2U7CiAKLXN0YXRpYyB2b2lk IF9fdGNwX2ZyZWVfbWQ1c2lnX3Bvb2woc3RydWN0IHRjcF9tZDVzaWdfcG9vbCBfX3BlcmNwdSAq cG9vbCkKK3N0YXRpYyB2b2lkIF9fdGNwX2FsbG9jX21kNXNpZ19wb29sKHZvaWQpCiB7CiAJaW50 IGNwdTsKIAogCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKLQkJc3RydWN0IHRjcF9tZDVz aWdfcG9vbCAqcCA9IHBlcl9jcHVfcHRyKHBvb2wsIGNwdSk7CisJCWlmICghcGVyX2NwdSh0Y3Bf bWQ1c2lnX3Bvb2wsIGNwdSkubWQ1X2Rlc2MudGZtKSB7CisJCQlzdHJ1Y3QgY3J5cHRvX2hhc2gg Kmhhc2g7CiAKLQkJaWYgKHAtPm1kNV9kZXNjLnRmbSkKLQkJCWNyeXB0b19mcmVlX2hhc2gocC0+ bWQ1X2Rlc2MudGZtKTsKLQl9Ci0JZnJlZV9wZXJjcHUocG9vbCk7Ci19Ci0KLXZvaWQgdGNwX2Zy ZWVfbWQ1c2lnX3Bvb2wodm9pZCkKLXsKLQlzdHJ1Y3QgdGNwX21kNXNpZ19wb29sIF9fcGVyY3B1 ICpwb29sID0gTlVMTDsKLQotCXNwaW5fbG9ja19iaCgmdGNwX21kNXNpZ19wb29sX2xvY2spOwot CWlmICgtLXRjcF9tZDVzaWdfdXNlcnMgPT0gMCkgewotCQlwb29sID0gdGNwX21kNXNpZ19wb29s OwotCQl0Y3BfbWQ1c2lnX3Bvb2wgPSBOVUxMOworCQkJaGFzaCA9IGNyeXB0b19hbGxvY19oYXNo KCJtZDUiLCAwLCBDUllQVE9fQUxHX0FTWU5DKTsKKwkJCWlmIChJU19FUlJfT1JfTlVMTChoYXNo KSkKKwkJCQlyZXR1cm47CisJCQlwZXJfY3B1KHRjcF9tZDVzaWdfcG9vbCwgY3B1KS5tZDVfZGVz Yy50Zm0gPSBoYXNoOworCQl9CiAJfQotCXNwaW5fdW5sb2NrX2JoKCZ0Y3BfbWQ1c2lnX3Bvb2xf bG9jayk7Ci0JaWYgKHBvb2wpCi0JCV9fdGNwX2ZyZWVfbWQ1c2lnX3Bvb2wocG9vbCk7CisJLyog YmVmb3JlIHNldHRpbmcgdGNwX21kNXNpZ19wb29sX3BvcHVsYXRlZCwgd2UgbXVzdCBjb21taXQg YWxsIHdyaXRlcworCSAqIHRvIG1lbW9yeS4gU2VlIHNtcF9ybWIoKSBpbiB0Y3BfZ2V0X21kNXNp Z19wb29sKCkKKwkgKi8KKwlzbXBfd21iKCk7CisJdGNwX21kNXNpZ19wb29sX3BvcHVsYXRlZCA9 IHRydWU7CiB9Ci1FWFBPUlRfU1lNQk9MKHRjcF9mcmVlX21kNXNpZ19wb29sKTsKIAotc3RhdGlj IHN0cnVjdCB0Y3BfbWQ1c2lnX3Bvb2wgX19wZXJjcHUgKgotX190Y3BfYWxsb2NfbWQ1c2lnX3Bv b2woc3RydWN0IHNvY2sgKnNrKQorYm9vbCB0Y3BfYWxsb2NfbWQ1c2lnX3Bvb2wodm9pZCkKIHsK LQlpbnQgY3B1OwotCXN0cnVjdCB0Y3BfbWQ1c2lnX3Bvb2wgX19wZXJjcHUgKnBvb2w7Ci0KLQlw b29sID0gYWxsb2NfcGVyY3B1KHN0cnVjdCB0Y3BfbWQ1c2lnX3Bvb2wpOwotCWlmICghcG9vbCkK LQkJcmV0dXJuIE5VTEw7Ci0KLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7Ci0JCXN0cnVj dCBjcnlwdG9faGFzaCAqaGFzaDsKKwlpZiAodW5saWtlbHkoIXRjcF9tZDVzaWdfcG9vbF9wb3B1 bGF0ZWQpKSB7CisJCW11dGV4X2xvY2soJnRjcF9tZDVzaWdfbXV0ZXgpOwogCi0JCWhhc2ggPSBj cnlwdG9fYWxsb2NfaGFzaCgibWQ1IiwgMCwgQ1JZUFRPX0FMR19BU1lOQyk7Ci0JCWlmICghaGFz aCB8fCBJU19FUlIoaGFzaCkpCi0JCQlnb3RvIG91dF9mcmVlOworCQlpZiAoIXRjcF9tZDVzaWdf cG9vbF9wb3B1bGF0ZWQpCisJCQlfX3RjcF9hbGxvY19tZDVzaWdfcG9vbCgpOwogCi0JCXBlcl9j cHVfcHRyKHBvb2wsIGNwdSktPm1kNV9kZXNjLnRmbSA9IGhhc2g7CisJCW11dGV4X3VubG9jaygm dGNwX21kNXNpZ19tdXRleCk7CiAJfQotCXJldHVybiBwb29sOwotb3V0X2ZyZWU6Ci0JX190Y3Bf ZnJlZV9tZDVzaWdfcG9vbChwb29sKTsKLQlyZXR1cm4gTlVMTDsKLX0KLQotc3RydWN0IHRjcF9t ZDVzaWdfcG9vbCBfX3BlcmNwdSAqdGNwX2FsbG9jX21kNXNpZ19wb29sKHN0cnVjdCBzb2NrICpz aykKLXsKLQlzdHJ1Y3QgdGNwX21kNXNpZ19wb29sIF9fcGVyY3B1ICpwb29sOwotCWludCBhbGxv YyA9IDA7Ci0KLXJldHJ5OgotCXNwaW5fbG9ja19iaCgmdGNwX21kNXNpZ19wb29sX2xvY2spOwot CXBvb2wgPSB0Y3BfbWQ1c2lnX3Bvb2w7Ci0JaWYgKHRjcF9tZDVzaWdfdXNlcnMrKyA9PSAwKSB7 Ci0JCWFsbG9jID0gMTsKLQkJc3Bpbl91bmxvY2tfYmgoJnRjcF9tZDVzaWdfcG9vbF9sb2NrKTsK LQl9IGVsc2UgaWYgKCFwb29sKSB7Ci0JCXRjcF9tZDVzaWdfdXNlcnMtLTsKLQkJc3Bpbl91bmxv Y2tfYmgoJnRjcF9tZDVzaWdfcG9vbF9sb2NrKTsKLQkJY3B1X3JlbGF4KCk7Ci0JCWdvdG8gcmV0 cnk7Ci0JfSBlbHNlCi0JCXNwaW5fdW5sb2NrX2JoKCZ0Y3BfbWQ1c2lnX3Bvb2xfbG9jayk7Ci0K LQlpZiAoYWxsb2MpIHsKLQkJLyogd2UgY2Fubm90IGhvbGQgc3BpbmxvY2sgaGVyZSBiZWNhdXNl IHRoaXMgbWF5IHNsZWVwLiAqLwotCQlzdHJ1Y3QgdGNwX21kNXNpZ19wb29sIF9fcGVyY3B1ICpw OwotCi0JCXAgPSBfX3RjcF9hbGxvY19tZDVzaWdfcG9vbChzayk7Ci0JCXNwaW5fbG9ja19iaCgm dGNwX21kNXNpZ19wb29sX2xvY2spOwotCQlpZiAoIXApIHsKLQkJCXRjcF9tZDVzaWdfdXNlcnMt LTsKLQkJCXNwaW5fdW5sb2NrX2JoKCZ0Y3BfbWQ1c2lnX3Bvb2xfbG9jayk7Ci0JCQlyZXR1cm4g TlVMTDsKLQkJfQotCQlwb29sID0gdGNwX21kNXNpZ19wb29sOwotCQlpZiAocG9vbCkgewotCQkJ Lyogb29wcywgaXQgaGFzIGFscmVhZHkgYmVlbiBhc3NpZ25lZC4gKi8KLQkJCXNwaW5fdW5sb2Nr X2JoKCZ0Y3BfbWQ1c2lnX3Bvb2xfbG9jayk7Ci0JCQlfX3RjcF9mcmVlX21kNXNpZ19wb29sKHAp OwotCQl9IGVsc2UgewotCQkJdGNwX21kNXNpZ19wb29sID0gcG9vbCA9IHA7Ci0JCQlzcGluX3Vu bG9ja19iaCgmdGNwX21kNXNpZ19wb29sX2xvY2spOwotCQl9Ci0JfQotCXJldHVybiBwb29sOwor CXJldHVybiB0Y3BfbWQ1c2lnX3Bvb2xfcG9wdWxhdGVkOwogfQogRVhQT1JUX1NZTUJPTCh0Y3Bf YWxsb2NfbWQ1c2lnX3Bvb2wpOwogCkBAIC0yOTc0LDMxICsyOTEyLDE4IEBAIEVYUE9SVF9TWU1C T0wodGNwX2FsbG9jX21kNXNpZ19wb29sKTsKICAqLwogc3RydWN0IHRjcF9tZDVzaWdfcG9vbCAq dGNwX2dldF9tZDVzaWdfcG9vbCh2b2lkKQogewotCXN0cnVjdCB0Y3BfbWQ1c2lnX3Bvb2wgX19w ZXJjcHUgKnA7Ci0KIAlsb2NhbF9iaF9kaXNhYmxlKCk7CiAKLQlzcGluX2xvY2soJnRjcF9tZDVz aWdfcG9vbF9sb2NrKTsKLQlwID0gdGNwX21kNXNpZ19wb29sOwotCWlmIChwKQotCQl0Y3BfbWQ1 c2lnX3VzZXJzKys7Ci0Jc3Bpbl91bmxvY2soJnRjcF9tZDVzaWdfcG9vbF9sb2NrKTsKLQotCWlm IChwKQotCQlyZXR1cm4gdGhpc19jcHVfcHRyKHApOwotCisJaWYgKHRjcF9tZDVzaWdfcG9vbF9w b3B1bGF0ZWQpIHsKKwkJLyogY291cGxlZCB3aXRoIHNtcF93bWIoKSBpbiBfX3RjcF9hbGxvY19t ZDVzaWdfcG9vbCgpICovCisJCXNtcF9ybWIoKTsKKwkJcmV0dXJuIHRoaXNfY3B1X3B0cigmdGNw X21kNXNpZ19wb29sKTsKKwl9CiAJbG9jYWxfYmhfZW5hYmxlKCk7CiAJcmV0dXJuIE5VTEw7CiB9 CiBFWFBPUlRfU1lNQk9MKHRjcF9nZXRfbWQ1c2lnX3Bvb2wpOwogCi12b2lkIHRjcF9wdXRfbWQ1 c2lnX3Bvb2wodm9pZCkKLXsKLQlsb2NhbF9iaF9lbmFibGUoKTsKLQl0Y3BfZnJlZV9tZDVzaWdf cG9vbCgpOwotfQotRVhQT1JUX1NZTUJPTCh0Y3BfcHV0X21kNXNpZ19wb29sKTsKLQogaW50IHRj cF9tZDVfaGFzaF9oZWFkZXIoc3RydWN0IHRjcF9tZDVzaWdfcG9vbCAqaHAsCiAJCQljb25zdCBz dHJ1Y3QgdGNwaGRyICp0aCkKIHsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9pcHY0LmMgYi9u ZXQvaXB2NC90Y3BfaXB2NC5jCmluZGV4IDI2ZWI4ZTIuLmI0ZTBlYjQgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3RjcF9pcHY0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwpAQCAtOTM4LDggKzkz OCw3IEBAIGludCB0Y3BfdjRfbWQ1X2RvX2FkZChzdHJ1Y3Qgc29jayAqc2ssIF9fYmUzMiBhZGRy LAogCQl9CiAKIAkJbWQ1c2lnID0gdHAtPm1kNXNpZ19pbmZvOwotCQlpZiAobWQ1c2lnLT5lbnRy aWVzNCA9PSAwICYmCi0JCSAgICB0Y3BfYWxsb2NfbWQ1c2lnX3Bvb2woc2spID09IE5VTEwpIHsK KwkJaWYgKG1kNXNpZy0+ZW50cmllczQgPT0gMCAmJiAhdGNwX2FsbG9jX21kNXNpZ19wb29sKCkp IHsKIAkJCWtmcmVlKG5ld2tleSk7CiAJCQlyZXR1cm4gLUVOT01FTTsKIAkJfQpAQCAtOTQ5LDgg Kzk0OCw2IEBAIGludCB0Y3BfdjRfbWQ1X2RvX2FkZChzdHJ1Y3Qgc29jayAqc2ssIF9fYmUzMiBh ZGRyLAogCQkJCQkobWQ1c2lnLT5lbnRyaWVzNCArIDEpKSwgR0ZQX0FUT01JQyk7CiAJCQlpZiAo IWtleXMpIHsKIAkJCQlrZnJlZShuZXdrZXkpOwotCQkJCWlmIChtZDVzaWctPmVudHJpZXM0ID09 IDApCi0JCQkJCXRjcF9mcmVlX21kNXNpZ19wb29sKCk7CiAJCQkJcmV0dXJuIC1FTk9NRU07CiAJ CQl9CiAKQEAgLTk5NCw3ICs5OTEsNiBAQCBpbnQgdGNwX3Y0X21kNV9kb19kZWwoc3RydWN0IHNv Y2sgKnNrLCBfX2JlMzIgYWRkcikKIAkJCQlrZnJlZSh0cC0+bWQ1c2lnX2luZm8tPmtleXM0KTsK IAkJCQl0cC0+bWQ1c2lnX2luZm8tPmtleXM0ID0gTlVMTDsKIAkJCQl0cC0+bWQ1c2lnX2luZm8t PmFsbG9jZWQ0ID0gMDsKLQkJCQl0Y3BfZnJlZV9tZDVzaWdfcG9vbCgpOwogCQkJfSBlbHNlIGlm ICh0cC0+bWQ1c2lnX2luZm8tPmVudHJpZXM0ICE9IGkpIHsKIAkJCQkvKiBOZWVkIHRvIGRvIHNv bWUgbWFuaXB1bGF0aW9uICovCiAJCQkJbWVtbW92ZSgmdHAtPm1kNXNpZ19pbmZvLT5rZXlzNFtp XSwKQEAgLTEwMjIsNyArMTAxOCw2IEBAIHN0YXRpYyB2b2lkIHRjcF92NF9jbGVhcl9tZDVfbGlz dChzdHJ1Y3Qgc29jayAqc2spCiAJCWZvciAoaSA9IDA7IGkgPCB0cC0+bWQ1c2lnX2luZm8tPmVu dHJpZXM0OyBpKyspCiAJCQlrZnJlZSh0cC0+bWQ1c2lnX2luZm8tPmtleXM0W2ldLmJhc2Uua2V5 KTsKIAkJdHAtPm1kNXNpZ19pbmZvLT5lbnRyaWVzNCA9IDA7Ci0JCXRjcF9mcmVlX21kNXNpZ19w b29sKCk7CiAJfQogCWlmICh0cC0+bWQ1c2lnX2luZm8tPmtleXM0KSB7CiAJCWtmcmVlKHRwLT5t ZDVzaWdfaW5mby0+a2V5czQpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5j IGIvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jCmluZGV4IDY2MzYzYjYuLjAwZTE1MzAgMTAwNjQ0 Ci0tLSBhL25ldC9pcHY0L3RjcF9taW5pc29ja3MuYworKysgYi9uZXQvaXB2NC90Y3BfbWluaXNv Y2tzLmMKQEAgLTM2NSw3ICszNjUsNyBAQCB2b2lkIHRjcF90aW1lX3dhaXQoc3RydWN0IHNvY2sg KnNrLCBpbnQgc3RhdGUsIGludCB0aW1lbykKIAkJCWlmIChrZXkgIT0gTlVMTCkgewogCQkJCW1l bWNweSgmdGNwdHctPnR3X21kNV9rZXksIGtleS0+a2V5LCBrZXktPmtleWxlbik7CiAJCQkJdGNw dHctPnR3X21kNV9rZXlsZW4gPSBrZXktPmtleWxlbjsKLQkJCQlpZiAodGNwX2FsbG9jX21kNXNp Z19wb29sKHNrKSA9PSBOVUxMKQorCQkJCWlmICghdGNwX2FsbG9jX21kNXNpZ19wb29sKCkpCiAJ CQkJCUJVRygpOwogCQkJfQogCQl9IHdoaWxlICgwKTsKQEAgLTQwMywxMSArNDAzLDYgQEAgdm9p ZCB0Y3BfdGltZV93YWl0KHN0cnVjdCBzb2NrICpzaywgaW50IHN0YXRlLCBpbnQgdGltZW8pCiAK IHZvaWQgdGNwX3R3c2tfZGVzdHJ1Y3RvcihzdHJ1Y3Qgc29jayAqc2spCiB7Ci0jaWZkZWYgQ09O RklHX1RDUF9NRDVTSUcKLQlzdHJ1Y3QgdGNwX3RpbWV3YWl0X3NvY2sgKnR3c2sgPSB0Y3BfdHdz ayhzayk7Ci0JaWYgKHR3c2stPnR3X21kNV9rZXlsZW4pCi0JCXRjcF9mcmVlX21kNXNpZ19wb29s KCk7Ci0jZW5kaWYKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHRjcF90d3NrX2Rlc3RydWN0b3IpOwog CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9NYWtlZmlsZSBiL25ldC9pcHY2L01ha2VmaWxlCmluZGV4 IDY4NjkzNGEuLjRiMjBkNTYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L01ha2VmaWxlCisrKyBiL25l dC9pcHY2L01ha2VmaWxlCkBAIC0zNyw2ICszNyw2IEBAIG9iai0kKENPTkZJR19ORVRGSUxURVIp CSs9IG5ldGZpbHRlci8KIG9iai0kKENPTkZJR19JUFY2X1NJVCkgKz0gc2l0Lm8KIG9iai0kKENP TkZJR19JUFY2X1RVTk5FTCkgKz0gaXA2X3R1bm5lbC5vCiAKLW9iai15ICs9IGFkZHJjb25mX2Nv cmUubyBleHRoZHJzX2NvcmUubworb2JqLXkgKz0gYWRkcmNvbmZfY29yZS5vIGV4dGhkcnNfY29y ZS5vIG91dHB1dF9jb3JlLm8KIAogb2JqLSQoc3Vic3QgbSx5LCQoQ09ORklHX0lQVjYpKSArPSBp bmV0Nl9oYXNodGFibGVzLm8KZGlmZiAtLWdpdCBhL25ldC9pcHY2L291dHB1dF9jb3JlLmMgYi9u ZXQvaXB2Ni9vdXRwdXRfY29yZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmE2MTI2YzYKLS0tIC9kZXYvbnVsbAorKysgYi9uZXQvaXB2Ni9vdXRwdXRfY29yZS5jCkBAIC0w LDAgKzEsMzggQEAKKyNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9z a2J1ZmYuaD4KKyNpbmNsdWRlIDxuZXQvaXAuaD4KKyNpbmNsdWRlIDxuZXQvaXB2Ni5oPgorCisv KiBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBvbmx5IGZvciB0YXAgZHJpdmVycyB0aGF0IG11c3Qgc3Vw cG9ydCBicm9rZW4KKyAqIGNsaWVudHMgcmVxdWVzdGluZyBVRk8gd2l0aG91dCBzcGVjaWZ5aW5n IGFuIElQdjYgZnJhZ21lbnQgSUQuCisgKgorICogVGhpcyBpcyBzaW1pbGFyIHRvIGlwdjZfc2Vs ZWN0X2lkZW50KCkgYnV0IHdlIHVzZSBhbiBpbmRlcGVuZGVudCBoYXNoCisgKiBzZWVkIHRvIGxp bWl0IGluZm9ybWF0aW9uIGxlYWthZ2UuCisgKi8KK3ZvaWQgaXB2Nl9wcm94eV9zZWxlY3RfaWRl bnQoc3RydWN0IHNrX2J1ZmYgKnNrYikKK3sKKwlzdGF0aWMgdTMyIGlwNl9wcm94eV9pZGVudHNf aGFzaHJuZCBfX3JlYWRfbW9zdGx5OworCXN0YXRpYyBib29sIGhhc2hybmRfaW5pdGlhbGl6ZWQg PSBmYWxzZTsKKwlzdHJ1Y3QgaW42X2FkZHIgYnVmWzJdOworCXN0cnVjdCBpbjZfYWRkciAqYWRk cnM7CisJdTMyIGhhc2gsIGlkOworCisJYWRkcnMgPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLAor CQkJCSAgIHNrYl9uZXR3b3JrX29mZnNldChza2IpICsKKwkJCQkgICBvZmZzZXRvZihzdHJ1Y3Qg aXB2Nmhkciwgc2FkZHIpLAorCQkJCSAgIHNpemVvZihidWYpLCBidWYpOworCWlmICghYWRkcnMp CisJCXJldHVybjsKKworCWlmICh1bmxpa2VseSghaGFzaHJuZF9pbml0aWFsaXplZCkpIHsKKwkJ aGFzaHJuZF9pbml0aWFsaXplZCA9IHRydWU7CisJCWdldF9yYW5kb21fYnl0ZXMoJmlwNl9wcm94 eV9pZGVudHNfaGFzaHJuZCwKKwkJCQkgc2l6ZW9mKGlwNl9wcm94eV9pZGVudHNfaGFzaHJuZCkp OworCX0KKwloYXNoID0gX19pcHY2X2FkZHJfamhhc2goJmFkZHJzWzFdLCBpcDZfcHJveHlfaWRl bnRzX2hhc2hybmQpOworCWhhc2ggPSBfX2lwdjZfYWRkcl9qaGFzaCgmYWRkcnNbMF0sIGhhc2gp OworCisJaWQgPSBpcF9pZGVudHNfcmVzZXJ2ZShoYXNoLCAxKTsKKwlza2Jfc2hpbmZvKHNrYikt PmlwNl9mcmFnX2lkID0gaHRvbmwoaWQpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoaXB2Nl9wcm94 eV9zZWxlY3RfaWRlbnQpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYuYyBiL25ldC9p cHY2L3RjcF9pcHY2LmMKaW5kZXggMDU3YTlkMi4uNjU1Y2M2MCAxMDA2NDQKLS0tIGEvbmV0L2lw djYvdGNwX2lwdjYuYworKysgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCkBAIC01OTIsNyArNTkyLDcg QEAgc3RhdGljIGludCB0Y3BfdjZfbWQ1X2RvX2FkZChzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0IHN0 cnVjdCBpbjZfYWRkciAqcGVlciwKIAkJCXNrX25vY2Fwc19hZGQoc2ssIE5FVElGX0ZfR1NPX01B U0spOwogCQl9CiAJCWlmICh0cC0+bWQ1c2lnX2luZm8tPmVudHJpZXM2ID09IDAgJiYKLQkJCXRj cF9hbGxvY19tZDVzaWdfcG9vbChzaykgPT0gTlVMTCkgeworCQkgICAgIXRjcF9hbGxvY19tZDVz aWdfcG9vbCgpKSB7CiAJCQlrZnJlZShuZXdrZXkpOwogCQkJcmV0dXJuIC1FTk9NRU07CiAJCX0K QEAgLTYwMiw4ICs2MDIsNiBAQCBzdGF0aWMgaW50IHRjcF92Nl9tZDVfZG9fYWRkKHN0cnVjdCBz b2NrICpzaywgY29uc3Qgc3RydWN0IGluNl9hZGRyICpwZWVyLAogCiAJCQlpZiAoIWtleXMpIHsK IAkJCQlrZnJlZShuZXdrZXkpOwotCQkJCWlmICh0cC0+bWQ1c2lnX2luZm8tPmVudHJpZXM2ID09 IDApCi0JCQkJCXRjcF9mcmVlX21kNXNpZ19wb29sKCk7CiAJCQkJcmV0dXJuIC1FTk9NRU07CiAJ CQl9CiAKQEAgLTY0OSw3ICs2NDcsNiBAQCBzdGF0aWMgaW50IHRjcF92Nl9tZDVfZG9fZGVsKHN0 cnVjdCBzb2NrICpzaywgY29uc3Qgc3RydWN0IGluNl9hZGRyICpwZWVyKQogCQkJCWtmcmVlKHRw LT5tZDVzaWdfaW5mby0+a2V5czYpOwogCQkJCXRwLT5tZDVzaWdfaW5mby0+a2V5czYgPSBOVUxM OwogCQkJCXRwLT5tZDVzaWdfaW5mby0+YWxsb2NlZDYgPSAwOwotCQkJCXRjcF9mcmVlX21kNXNp Z19wb29sKCk7CiAJCQl9IGVsc2UgewogCQkJCS8qIHNocmluayB0aGUgZGF0YWJhc2UgKi8KIAkJ CQlpZiAodHAtPm1kNXNpZ19pbmZvLT5lbnRyaWVzNiAhPSBpKQpAQCAtNjczLDcgKzY3MCw2IEBA IHN0YXRpYyB2b2lkIHRjcF92Nl9jbGVhcl9tZDVfbGlzdCAoc3RydWN0IHNvY2sgKnNrKQogCQlm b3IgKGkgPSAwOyBpIDwgdHAtPm1kNXNpZ19pbmZvLT5lbnRyaWVzNjsgaSsrKQogCQkJa2ZyZWUo dHAtPm1kNXNpZ19pbmZvLT5rZXlzNltpXS5iYXNlLmtleSk7CiAJCXRwLT5tZDVzaWdfaW5mby0+ ZW50cmllczYgPSAwOwotCQl0Y3BfZnJlZV9tZDVzaWdfcG9vbCgpOwogCX0KIAogCWtmcmVlKHRw LT5tZDVzaWdfaW5mby0+a2V5czYpOwpAQCAtNjg0LDcgKzY4MCw2IEBAIHN0YXRpYyB2b2lkIHRj cF92Nl9jbGVhcl9tZDVfbGlzdCAoc3RydWN0IHNvY2sgKnNrKQogCQlmb3IgKGkgPSAwOyBpIDwg dHAtPm1kNXNpZ19pbmZvLT5lbnRyaWVzNDsgaSsrKQogCQkJa2ZyZWUodHAtPm1kNXNpZ19pbmZv LT5rZXlzNFtpXS5iYXNlLmtleSk7CiAJCXRwLT5tZDVzaWdfaW5mby0+ZW50cmllczQgPSAwOwot CQl0Y3BfZnJlZV9tZDVzaWdfcG9vbCgpOwogCX0KIAogCWtmcmVlKHRwLT5tZDVzaWdfaW5mby0+ a2V5czQpOwpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvYXV0aC5jIGIvbmV0L3NjdHAvYXV0aC5jCmlu ZGV4IDMzMzkyNmQuLjUzZDQ1NWMgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2F1dGguYworKysgYi9u ZXQvc2N0cC9hdXRoLmMKQEAgLTg2Niw4ICs4NjYsNiBAQCBpbnQgc2N0cF9hdXRoX3NldF9rZXko c3RydWN0IHNjdHBfZW5kcG9pbnQgKmVwLAogCQlsaXN0X2FkZCgmY3VyX2tleS0+a2V5X2xpc3Qs IHNoX2tleXMpOwogCiAJY3VyX2tleS0+a2V5ID0ga2V5OwotCXNjdHBfYXV0aF9rZXlfaG9sZChr ZXkpOwotCiAJcmV0dXJuIDA7CiBub21lbToKIAlpZiAoIXJlcGxhY2UpCmRpZmYgLS1naXQgYS9u ZXQvc2N0cC9vdXRwdXQuYyBiL25ldC9zY3RwL291dHB1dC5jCmluZGV4IDViZDlhYTkuLmMzYjg1 NDkgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL291dHB1dC5jCisrKyBiL25ldC9zY3RwL291dHB1dC5j CkBAIC0zODQsMTIgKzM4NCwxMiBAQCBpbnQgc2N0cF9wYWNrZXRfdHJhbnNtaXQoc3RydWN0IHNj dHBfcGFja2V0ICpwYWNrZXQpCiAJc2sgPSBjaHVuay0+c2tiLT5zazsKIAogCS8qIEFsbG9jYXRl IHRoZSBuZXcgc2tiLiAgKi8KLQluc2tiID0gYWxsb2Nfc2tiKHBhY2tldC0+c2l6ZSArIExMX01B WF9IRUFERVIsIEdGUF9BVE9NSUMpOworCW5za2IgPSBhbGxvY19za2IocGFja2V0LT5zaXplICsg TUFYX0hFQURFUiwgR0ZQX0FUT01JQyk7CiAJaWYgKCFuc2tiKQogCQlnb3RvIG5vbWVtOwogCiAJ LyogTWFrZSBzdXJlIHRoZSBvdXRib3VuZCBza2IgaGFzIGVub3VnaCBoZWFkZXIgcm9vbSByZXNl cnZlZC4gKi8KLQlza2JfcmVzZXJ2ZShuc2tiLCBwYWNrZXQtPm92ZXJoZWFkICsgTExfTUFYX0hF QURFUik7CisJc2tiX3Jlc2VydmUobnNrYiwgcGFja2V0LT5vdmVyaGVhZCArIE1BWF9IRUFERVIp OwogCiAJLyogU2V0IHRoZSBvd25pbmcgc29ja2V0IHNvIHRoYXQgd2Uga25vdyB3aGVyZSB0byBn ZXQgdGhlCiAJICogZGVzdGluYXRpb24gSVAgYWRkcmVzcy4KZGlmZiAtLWdpdCBhL25ldC9zY3Rw L3NtX21ha2VfY2h1bmsuYyBiL25ldC9zY3RwL3NtX21ha2VfY2h1bmsuYwppbmRleCBkOGQ0NzA0 Li5jNDA5NTJjIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zbV9tYWtlX2NodW5rLmMKKysrIGIvbmV0 L3NjdHAvc21fbWFrZV9jaHVuay5jCkBAIC0yNTcwLDYgKzI1NzAsOSBAQCBkb19hZGRyX3BhcmFt OgogCQlhZGRyX3BhcmFtID0gcGFyYW0udiArIHNpemVvZihzY3RwX2FkZGlwX3BhcmFtX3QpOwog CiAJCWFmID0gc2N0cF9nZXRfYWZfc3BlY2lmaWMocGFyYW1fdHlwZTJhZihwYXJhbS5wLT50eXBl KSk7CisJCWlmIChhZiA9PSBOVUxMKQorCQkJYnJlYWs7CisKIAkJYWYtPmZyb21fYWRkcl9wYXJh bSgmYWRkciwgYWRkcl9wYXJhbSwKIAkJCQkgICAgaHRvbnMoYXNvYy0+cGVlci5wb3J0KSwgMCk7 CiAKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvc2VsaW51eGZzLmMgYi9zZWN1cml0eS9z ZWxpbnV4L3NlbGludXhmcy5jCmluZGV4IGI0ZjgwMmQuLjRkZDhkY2YgMTAwNjQ0Ci0tLSBhL3Nl Y3VyaXR5L3NlbGludXgvc2VsaW51eGZzLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zZWxpbnV4 ZnMuYwpAQCAtMTE5Nyw3ICsxMTk3LDcgQEAgc3RhdGljIHZvaWQgc2VsX3JlbW92ZV9lbnRyaWVz KHN0cnVjdCBkZW50cnkgKmRlKQogCXNwaW5fbG9jaygmZGUtPmRfbG9jayk7CiAJbm9kZSA9IGRl LT5kX3N1YmRpcnMubmV4dDsKIAl3aGlsZSAobm9kZSAhPSAmZGUtPmRfc3ViZGlycykgewotCQlz dHJ1Y3QgZGVudHJ5ICpkID0gbGlzdF9lbnRyeShub2RlLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9j aGlsZCk7CisJCXN0cnVjdCBkZW50cnkgKmQgPSBsaXN0X2VudHJ5KG5vZGUsIHN0cnVjdCBkZW50 cnksIGRfY2hpbGQpOwogCiAJCXNwaW5fbG9ja19uZXN0ZWQoJmQtPmRfbG9jaywgREVOVFJZX0Rf TE9DS19ORVNURUQpOwogCQlsaXN0X2RlbF9pbml0KG5vZGUpOwpAQCAtMTcwNCwxMiArMTcwNCwx MiBAQCBzdGF0aWMgdm9pZCBzZWxfcmVtb3ZlX2NsYXNzZXModm9pZCkKIAogCWxpc3RfZm9yX2Vh Y2goY2xhc3Nfbm9kZSwgJmNsYXNzX2Rpci0+ZF9zdWJkaXJzKSB7CiAJCXN0cnVjdCBkZW50cnkg KmNsYXNzX3N1YmRpciA9IGxpc3RfZW50cnkoY2xhc3Nfbm9kZSwKLQkJCQkJc3RydWN0IGRlbnRy eSwgZF91LmRfY2hpbGQpOworCQkJCQlzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsKIAkJc3RydWN0 IGxpc3RfaGVhZCAqY2xhc3Nfc3ViZGlyX25vZGU7CiAKIAkJbGlzdF9mb3JfZWFjaChjbGFzc19z dWJkaXJfbm9kZSwgJmNsYXNzX3N1YmRpci0+ZF9zdWJkaXJzKSB7CiAJCQlzdHJ1Y3QgZGVudHJ5 ICpkID0gbGlzdF9lbnRyeShjbGFzc19zdWJkaXJfbm9kZSwKLQkJCQkJCXN0cnVjdCBkZW50cnks IGRfdS5kX2NoaWxkKTsKKwkJCQkJCXN0cnVjdCBkZW50cnksIGRfY2hpbGQpOwogCiAJCQlpZiAo ZC0+ZF9pbm9kZSkKIAkJCQlpZiAoZC0+ZF9pbm9kZS0+aV9tb2RlICYgU19JRkRJUikK --=-tIvY82XTxH7ybYT0Wcbb-- --=-ckmxQVbDF7Q4gmcQRohH Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIVAwUAVKCrDOe/yOyVhhEJAQp6Fw//XbJDVN98wLd9QBhSk9Zt5iR0Wwj43AW5 2emPQXVVW2FjT/Mu5dDk7114f6mJ9lsPyRtVeb1xb0Tmp2UlK5ymo3rC09rxoSWO zTcXa+b8p04Em6/ZbYEiRst7owf1SFAXrHrHivKXuiN7R4kOhxuy93xd9o0o68pT hKgpQvK/ZnaJ7WV1eocHgx/5hvVKyPCNRtq7/x7BDt5XskVnz8m56W/jKY/NyaEY h3dYE1KPl24mnXrZsRNw+Q75a3te3FLoaBPb2veZHyHrAvndZiJAUBkIMxU1ul20 lXUI9NmocVCZvO9Onu2cFkAMnla+jRXIQPaC5mhm+TQnzgShpz+z3Q4YAUu2kpF5 /wQaK1ajU6gExPSFqR30Atdz1pBny90jKLo+vev3QFb2/ZzUyndCnQ0MruLD9Au9 fu5sHvAnYqS2ty0f2Ba6cLJhcVR/RK+r2K0TCzifeAbfSCE6boRO0ZDXQE4L7inF bRo39lrKybH5vpMD39bB7kHbCchTxc3szvVQpVNzRaxhevFJaPj8sVQrfzBlmfLT pmD7pUbmAs8O4h/9unL78QrJspmg4GfUr2s3PhPHODrwSTnUwjxZFHnCko7j76Xy wjnAa0dwInMw3xe0nFu30+jOb0D9qjgbBLwuGJIIzK4p0lVt6kM8njLTbY4HRU13 x/OKLUXaUvM= =xEny -----END PGP SIGNATURE----- --=-ckmxQVbDF7Q4gmcQRohH-- -- 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/