From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mxfz.ruijie.com.cn ([120.35.11.201]:47888 "EHLO mxfz.ruijie.com.cn" rhost-flags-OK-FAIL-OK-FAIL) by eddie.linux-mips.org with ESMTP id S23992998AbcGJNFOxUspJ (ORCPT ); Sun, 10 Jul 2016 15:05:14 +0200 From: Subject: MIPS: We need to clear MMU contexts of all other processes when asid_cache(cpu) wraps to 0. Date: Sun, 10 Jul 2016 13:04:47 +0000 Message-ID: <80B78A8B8FEE6145A87579E8435D78C30205D5F3@fzex.ruijie.com.cn> Content-Language: zh-CN Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Return-Path: Sender: linux-mips-bounce@linux-mips.org Errors-to: linux-mips-bounce@linux-mips.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-subscribe: List-owner: List-post: List-archive: To: ralf@linux-mips.org Cc: linux-mips@linux-mips.org Message-ID: <20160710130447.DGlW96STjnjd-yRH5-7AxEa3ZCYWq2boRo8S0WkwzgU@z> RnJvbSBjZDFlYjk1MWQ0YTdmMDFhYWEyNGQyZmI5MDJmMDZiNzNlZjRmNjA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogeWhiIDx5aGJAcnVpamllLmNvbS5jbj4NCkRhdGU6IFN1biwg MTAgSnVsIDIwMTYgMjA6NDM6MDUgKzA4MDANClN1YmplY3Q6IFtQQVRDSF0gTUlQUzogV2UgbmVl ZCB0byBjbGVhciBNTVUgY29udGV4dHMgb2YgYWxsIG90aGVyIHByb2Nlc3Nlcw0KIHdoZW4gYXNp ZF9jYWNoZShjcHUpIHdyYXBzIHRvIDAuDQoNClN1cHBvc2UgdGhhdCBhc2lkX2NhY2hlKGNwdSkg d3JhcHMgdG8gMCBldmVyeSBuIGRheXMuDQpjYXNlIDE6DQooMSlQcm9jZXNzIDEgZ290IEFTSUQg MHgxMDEuDQooMilQcm9jZXNzIDEgc2xlcHQgZm9yIG4gZGF5cy4NCigzKWFzaWRfY2FjaGUoY3B1 KSB3cmFwcGVkIHRvIDB4MTAxLCBhbmQgcHJvY2VzcyAyIGdvdCBBU0lEIDB4MTAxLg0KKDQpUHJv Y2VzcyAxIGlzIHdva2VuLGFuZCBBU0lEIG9mIHByb2Nlc3MgMSBpcyBzYW1lIGFzIEFTSUQgb2Yg cHJvY2VzcyAyLg0KDQpjYXNlIDI6DQooMSlQcm9jZXNzIDEgZ290IEFTSUQgMHgxMDEgb24gQ1BV IDEuDQooMilQcm9jZXNzIDEgbWlncmF0ZWQgdG8gQ1BVIDIuDQooMylQcm9jZXNzIDEgbWlncmF0 ZWQgdG8gQ1BVIDEgYWZ0ZXIgbiBkYXlzLg0KKDQpYXNpZF9jYWNoZSBvbiBDUFUgMSB3cmFwcGVk IHRvIDB4MTAxLCBhbmQgcHJvY2VzcyAyIGdvdCBBU0lEIDB4MTAxLg0KKDUpUHJvY2VzcyAxIGlz IHNjaGVkdWxlZCwgYW5kIEFTSUQgb2YgcHJvY2VzcyAxIGlzIHNhbWUgYXMgQVNJRCBvZiBwcm9j ZXNzIDIuDQoNClNvIHdlIG5lZWQgdG8gY2xlYXIgTU1VIGNvbnRleHRzIG9mIGFsbCBvdGhlciBw cm9jZXNzZXMgd2hlbiBhc2lkX2NhY2hlKGNwdSkgd3JhcHMgdG8gMC4NCg0KU2lnbmVkLW9mZi1i eTogeWhiIDx5aGJAcnVpamllLmNvbS5jbj4NCi0tLQ0KIGFyY2gvYmxhY2tmaW4va2VybmVsL3Ry YWNlLmMgICAgICAgICAgICAgICB8ICA3ICsrLS0NCiBhcmNoL2Zydi9tbS9tbXUtY29udGV4dC5j ICAgICAgICAgICAgICAgICAgfCAgNiArKy0tDQogYXJjaC9taXBzL2luY2x1ZGUvYXNtL21tdV9j b250ZXh0LmggICAgICAgIHwgNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tDQogYXJj aC91bS9rZXJuZWwvcmVib290LmMgICAgICAgICAgICAgICAgICAgIHwgIDUgKy0tDQogYmxvY2sv YmxrLWNncm91cC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKystLQ0KIGJsb2NrL2Js ay1pb2MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE3ICsrKysrKy0tLS0NCiBkcml2 ZXJzL3N0YWdpbmcvYW5kcm9pZC9pb24vaW9uLmMgICAgICAgICAgfCAgNSArLS0NCiBkcml2ZXJz L3N0YWdpbmcvYW5kcm9pZC9sb3dtZW1vcnlraWxsZXIuYyAgfCAxNSArKysrKy0tLS0NCiBkcml2 ZXJzL3N0YWdpbmcvbHVzdHJlL2x1c3RyZS9wdGxycGMvc2VjLmMgfCAgNSArLS0NCiBkcml2ZXJz L3R0eS90dHlfaW8uYyAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKy0tDQogZnMvY29yZWR1 bXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKy0tDQogZnMvZXhlYy5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTcgKysrKysrLS0tLQ0KIGZzL2ZpbGUu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2ICsrKysrLS0tLQ0KIGZzL2Zz X3N0cnVjdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2ICsrKysrLS0tLQ0KIGZz L2h1Z2V0bGJmcy9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrLS0NCiBmcy9u YW1lc3BhY2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArLS0NCiBmcy9wcm9j L2FycmF5LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArLS0NCiBmcy9wcm9jL2Jh c2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MCArKysrKysrKysrKysrLS0tLS0t LS0tDQogZnMvcHJvYy9pbnRlcm5hbC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKy0t DQogZnMvcHJvYy9wcm9jX25ldC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKystLQ0K IGZzL3Byb2MvdGFza19tbXUuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICstLQ0KIGZz L3Byb2NfbmFtZXNwYWNlLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA5ICsrLS0tDQogaW5j bHVkZS9saW51eC9jcHVzZXQuaCAgICAgICAgICAgICAgICAgICAgIHwgIDggKystLS0NCiBpbmNs dWRlL2xpbnV4L25zcHJveHkuaCAgICAgICAgICAgICAgICAgICAgfCAgNiArKy0tDQogaW5jbHVk ZS9saW51eC9vb20uaCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0NCiBpbmNsdWRlL2xp bnV4L3NjaGVkLmggICAgICAgICAgICAgICAgICAgICAgfCAgOCArKy0tLQ0KIGlwYy9uYW1lc3Bh Y2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICstLQ0KIGtlcm5lbC9jZ3JvdXAu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICstLQ0KIGtlcm5lbC9jcHUuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICstLQ0KIGtlcm5lbC9jcHVzZXQuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrLS0NCiBrZXJuZWwvZXhpdC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxOSArKysrKysrLS0tLQ0KIGtlcm5lbC9mb3JrLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyICsrKysrKysrKysrLS0tLS0tLQ0KIGtlcm5l bC9rY21wLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICstLQ0KIGtlcm5lbC9u c3Byb3h5LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICstLQ0KIGtlcm5lbC9wdHJh Y2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExICsrKystLS0NCiBrZXJuZWwvc2No ZWQvZGVidWcuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArLS0NCiBrZXJuZWwvc3lzLmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNiArKysrKy0tLS0NCiBrZXJuZWwvdXRz bmFtZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArLS0NCiBtbS9tZW1jb250cm9s LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArLS0NCiBtbS9tZW1wb2xpY3kuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0NiArKysrKysrKysrKysrKysrLS0tLS0tLS0t LQ0KIG1tL21tdV9jb250ZXh0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKy0t LQ0KIG1tL29vbV9raWxsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDM3ICsrKysr KysrKysrKy0tLS0tLS0tLQ0KIG5ldC9jb3JlL25ldF9uYW1lc3BhY2UuYyAgICAgICAgICAgICAg ICAgICB8IDExICsrKystLS0NCiBuZXQvY29yZS9uZXRjbGFzc2lkX2Nncm91cC5jICAgICAgICAg ICAgICAgfCAgNiArKy0tDQogbmV0L2NvcmUvbmV0cHJpb19jZ3JvdXAuYyAgICAgICAgICAgICAg ICAgIHwgIDUgKy0tDQogNDUgZmlsZXMgY2hhbmdlZCwgMzM3IGluc2VydGlvbnMoKyksIDE4OCBk ZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2FyY2gvYmxhY2tmaW4va2VybmVsL3RyYWNlLmMg Yi9hcmNoL2JsYWNrZmluL2tlcm5lbC90cmFjZS5jDQppbmRleCA3MTlkZDc5Li5hNzQ4NDNhIDEw MDY0NA0KLS0tIGEvYXJjaC9ibGFja2Zpbi9rZXJuZWwvdHJhY2UuYw0KKysrIGIvYXJjaC9ibGFj a2Zpbi9rZXJuZWwvdHJhY2UuYw0KQEAgLTExNiw4ICsxMTYsOSBAQCB2b2lkIGRlY29kZV9hZGRy ZXNzKGNoYXIgKmJ1ZiwgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQ0KIAlyZWFkX2xvY2soJnRhc2ts aXN0X2xvY2spOw0KIAlmb3JfZWFjaF9wcm9jZXNzKHApIHsNCiAJCXN0cnVjdCB0YXNrX3N0cnVj dCAqdDsNCisJCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQogDQotCQl0ID0gZmluZF9sb2NrX3Rh c2tfbW0ocCk7DQorCQl0ID0gZmluZF9sb2NrX3Rhc2tfbW0ocCwgJmlycWZsYWdzKTsNCiAJCWlm ICghdCkNCiAJCQljb250aW51ZTsNCiANCkBAIC0xNjUsNyArMTY2LDcgQEAgdm9pZCBkZWNvZGVf YWRkcmVzcyhjaGFyICpidWYsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykNCiAJCQkJCQluYW1lLCB2 bWEtPnZtX3N0YXJ0LCB2bWEtPnZtX2VuZCk7DQogDQogCQkJCXVwX3JlYWQoJm1tLT5tbWFwX3Nl bSk7DQotCQkJCXRhc2tfdW5sb2NrKHQpOw0KKwkJCQl0YXNrX3VubG9jayh0LCAmaXJxZmxhZ3Mp Ow0KIA0KIAkJCQlpZiAoYnVmWzBdID09ICdcMCcpDQogCQkJCQlzcHJpbnRmKGJ1ZiwgIlsgJXMg XSBkeW5hbWljIG1lbW9yeSIsIG5hbWUpOw0KQEAgLTE3Niw3ICsxNzcsNyBAQCB2b2lkIGRlY29k ZV9hZGRyZXNzKGNoYXIgKmJ1ZiwgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQ0KIA0KIAkJdXBfcmVh ZCgmbW0tPm1tYXBfc2VtKTsNCiBfX2NvbnRpbnVlOg0KLQkJdGFza191bmxvY2sodCk7DQorCQl0 YXNrX3VubG9jayh0LCAmaXJxZmxhZ3MpOw0KIAl9DQogDQogCS8qDQpkaWZmIC0tZ2l0IGEvYXJj aC9mcnYvbW0vbW11LWNvbnRleHQuYyBiL2FyY2gvZnJ2L21tL21tdS1jb250ZXh0LmMNCmluZGV4 IDgxNzU3ZDUuLmRjNTI1YmQgMTAwNjQ0DQotLS0gYS9hcmNoL2Zydi9tbS9tbXUtY29udGV4dC5j DQorKysgYi9hcmNoL2Zydi9tbS9tbXUtY29udGV4dC5jDQpAQCAtMTgzLDE1ICsxODMsMTcgQEAg aW50IGN4bl9waW5fYnlfcGlkKHBpZF90IHBpZCkNCiAJcmVhZF9sb2NrKCZ0YXNrbGlzdF9sb2Nr KTsNCiAJdHNrID0gZmluZF90YXNrX2J5X3ZwaWQocGlkKTsNCiAJaWYgKHRzaykgew0KKwkJdW5z aWduZWQgbG9uZyBpcnFmbGFnczsNCisNCiAJCXJldCA9IC1FSU5WQUw7DQogDQotCQl0YXNrX2xv Y2sodHNrKTsNCisJCXRhc2tfbG9jayh0c2ssICZpcnFmbGFncyk7DQogCQlpZiAodHNrLT5tbSkg ew0KIAkJCW1tID0gdHNrLT5tbTsNCiAJCQlhdG9taWNfaW5jKCZtbS0+bW1fdXNlcnMpOw0KIAkJ CXJldCA9IDA7DQogCQl9DQotCQl0YXNrX3VubG9jayh0c2spOw0KKwkJdGFza191bmxvY2sodHNr LCAmaXJxZmxhZ3MpOw0KIAl9DQogCXJlYWRfdW5sb2NrKCZ0YXNrbGlzdF9sb2NrKTsNCiANCmRp ZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbW11X2NvbnRleHQuaCBiL2FyY2gvbWlw cy9pbmNsdWRlL2FzbS9tbXVfY29udGV4dC5oDQppbmRleCA0NTkxNGI1Li42ODk2NmI1IDEwMDY0 NA0KLS0tIGEvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21tdV9jb250ZXh0LmgNCisrKyBiL2FyY2gv bWlwcy9pbmNsdWRlL2FzbS9tbXVfY29udGV4dC5oDQpAQCAtMTIsNiArMTIsNyBAQA0KICNkZWZp bmUgX0FTTV9NTVVfQ09OVEVYVF9IDQogDQogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+DQorI2lu Y2x1ZGUgPGxpbnV4L29vbS5oPi8qIGZpbmRfbG9ja190YXNrX21tICovDQogI2luY2x1ZGUgPGxp bnV4L3NjaGVkLmg+DQogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPg0KICNpbmNsdWRlIDxsaW51eC9z bGFiLmg+DQpAQCAtOTcsNiArOTgsNTIgQEAgc3RhdGljIGlubGluZSB2b2lkIGVudGVyX2xhenlf dGxiKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykNCiAjZGVm aW5lIEFTSURfVkVSU0lPTl9NQVNLICAoKHVuc2lnbmVkIGxvbmcpfihBU0lEX01BU0t8KEFTSURf TUFTSy0xKSkpDQogI2RlZmluZSBBU0lEX0ZJUlNUX1ZFUlNJT04gKCh1bnNpZ25lZCBsb25nKSh+ QVNJRF9WRVJTSU9OX01BU0spICsgMSkNCiANCisvKg0KKyAqIFl1IEh1YWJpbmcNCisgKiBTdXBw b3NlIHRoYXQgYXNpZF9jYWNoZShjcHUpIHdyYXBzIHRvIDAgZXZlcnkgbiBkYXlzLg0KKyAqIGNh c2UgMToNCisgKiAoMSlQcm9jZXNzIDEgZ290IEFTSUQgMHgxMDEuDQorICogKDIpUHJvY2VzcyAx IHNsZXB0IGZvciBuIGRheXMuDQorICogKDMpYXNpZF9jYWNoZShjcHUpIHdyYXBwZWQgdG8gMHgx MDEsIGFuZCBwcm9jZXNzIDIgZ290IEFTSUQgMHgxMDEuDQorICogKDQpUHJvY2VzcyAxIGlzIHdv a2VuLGFuZCBBU0lEIG9mIHByb2Nlc3MgMSBpcyBzYW1lIGFzIEFTSUQgb2YgcHJvY2VzcyAyLg0K KyAqDQorICogY2FzZSAyOg0KKyAqICgxKVByb2Nlc3MgMSBnb3QgQVNJRCAweDEwMSBvbiBDUFUg MS4NCisgKiAoMilQcm9jZXNzIDEgbWlncmF0ZWQgdG8gQ1BVIDIuDQorICogKDMpUHJvY2VzcyAx IG1pZ3JhdGVkIHRvIENQVSAxIGFmdGVyIG4gZGF5cy4NCisgKiAoNClhc2lkX2NhY2hlIG9uIENQ VSAxIHdyYXBwZWQgdG8gMHgxMDEsIGFuZCBwcm9jZXNzIDIgZ290IEFTSUQgMHgxMDEuDQorICog KDUpUHJvY2VzcyAxIGlzIHNjaGVkdWxlZCxhbmQgQVNJRCBvZiBwcm9jZXNzIDEgaXMgc2FtZSBh cyBBU0lEIG9mIHByb2Nlc3MgMi4NCisgKg0KKyAqIFNvIHdlIG5lZWQgdG8gY2xlYXIgTU1VIGNv bnRleHRzIG9mIGFsbCBvdGhlciBwcm9jZXNzZXMgd2hlbiBhc2lkX2NhY2hlKGNwdSkNCisgKiB3 cmFwcyB0byAwLg0KKyAqDQorICogVGhpcyBmdW5jdGlvbiBtaWdodCBiZSBjYWxsZWQgZnJvbSBo YXJkaXJxIGNvbnRleHQgb3IgcHJvY2VzcyBjb250ZXh0Lg0KKyAqLw0KK3N0YXRpYyBpbmxpbmUg dm9pZCBjbGVhcl9vdGhlcl9tbXVfY29udGV4dHMoc3RydWN0IG1tX3N0cnVjdCAqbW0sDQorCQkJ CQkJdW5zaWduZWQgbG9uZyBjcHUpDQorew0KKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnA7DQorCXVu c2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQorDQorCXJlYWRfbG9jaygmdGFza2xpc3RfbG9jayk7DQor CWZvcl9lYWNoX3Byb2Nlc3MocCkgew0KKwkJc3RydWN0IHRhc2tfc3RydWN0ICp0Ow0KKw0KKwkJ LyoNCisJCSAqIE1haW4gdGhyZWFkIG1pZ2h0IGV4aXQsIGJ1dCBvdGhlciB0aHJlYWRzIG1heSBz dGlsbCBoYXZlDQorCQkgKiBhIHZhbGlkIG1tLiBGaW5kIG9uZS4NCisJCSAqLw0KKwkJdCA9IGZp bmRfbG9ja190YXNrX21tKHAsICZpcnFmbGFncyk7DQorCQlpZiAoIXQpDQorCQkJY29udGludWU7 DQorDQorCQlpZiAodC0+bW0gIT0gbW0pDQorCQkJY3B1X2NvbnRleHQoY3B1LCB0LT5tbSkgPSAw Ow0KKwkJdGFza191bmxvY2sodCwgJmlycWZsYWdzKTsNCisJfQ0KKwlyZWFkX3VubG9jaygmdGFz a2xpc3RfbG9jayk7DQorfQ0KKw0KIC8qIE5vcm1hbCwgY2xhc3NpYyBNSVBTIGdldF9uZXdfbW11 X2NvbnRleHQgKi8NCiBzdGF0aWMgaW5saW5lIHZvaWQNCiBnZXRfbmV3X21tdV9jb250ZXh0KHN0 cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGNwdSkNCkBAIC0xMTIsOCArMTU5LDEw IEBAIGdldF9uZXdfbW11X2NvbnRleHQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxv bmcgY3B1KQ0KICNlbHNlDQogCQlsb2NhbF9mbHVzaF90bGJfYWxsKCk7CS8qIHN0YXJ0IG5ldyBh c2lkIGN5Y2xlICovDQogI2VuZGlmDQotCQlpZiAoIWFzaWQpCQkvKiBmaXggdmVyc2lvbiBpZiBu ZWVkZWQgKi8NCi0JCQlhc2lkID0gQVNJRF9GSVJTVF9WRVJTSU9OOw0KKwkJaWYgKCFhc2lkKSB7 DQorCQkJYXNpZCA9IEFTSURfRklSU1RfVkVSU0lPTjsgLyogZml4IHZlcnNpb24gaWYgbmVlZGVk ICovDQorCQkJY2xlYXJfb3RoZXJfbW11X2NvbnRleHRzKG1tLCBjcHUpOw0KKwkJfQ0KIAl9DQog DQogCWNwdV9jb250ZXh0KGNwdSwgbW0pID0gYXNpZF9jYWNoZShjcHUpID0gYXNpZDsNCmRpZmYg LS1naXQgYS9hcmNoL3VtL2tlcm5lbC9yZWJvb3QuYyBiL2FyY2gvdW0va2VybmVsL3JlYm9vdC5j DQppbmRleCBiNjBhOWY4Li40NTJiZDAxIDEwMDY0NA0KLS0tIGEvYXJjaC91bS9rZXJuZWwvcmVi b290LmMNCisrKyBiL2FyY2gvdW0va2VybmVsL3JlYm9vdC5jDQpAQCAtMjIsMTIgKzIyLDEzIEBA IHN0YXRpYyB2b2lkIGtpbGxfb2ZmX3Byb2Nlc3Nlcyh2b2lkKQ0KIAlyZWFkX2xvY2soJnRhc2ts aXN0X2xvY2spOw0KIAlmb3JfZWFjaF9wcm9jZXNzKHApIHsNCiAJCXN0cnVjdCB0YXNrX3N0cnVj dCAqdDsNCisJCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQogDQotCQl0ID0gZmluZF9sb2NrX3Rh c2tfbW0ocCk7DQorCQl0ID0gZmluZF9sb2NrX3Rhc2tfbW0ocCwgJmlycWZsYWdzKTsNCiAJCWlm ICghdCkNCiAJCQljb250aW51ZTsNCiAJCXBpZCA9IHQtPm1tLT5jb250ZXh0LmlkLnUucGlkOw0K LQkJdGFza191bmxvY2sodCk7DQorCQl0YXNrX3VubG9jayh0LCAmaXJxZmxhZ3MpOw0KIAkJb3Nf a2lsbF9wdHJhY2VkX3Byb2Nlc3MocGlkLCAxKTsNCiAJfQ0KIAlyZWFkX3VubG9jaygmdGFza2xp c3RfbG9jayk7DQpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLWNncm91cC5jIGIvYmxvY2svYmxrLWNn cm91cC5jDQppbmRleCA2NmU2ZjFhLi4zZmZlYjcwIDEwMDY0NA0KLS0tIGEvYmxvY2svYmxrLWNn cm91cC5jDQorKysgYi9ibG9jay9ibGstY2dyb3VwLmMNCkBAIC0xMTQ1LDExICsxMTQ1LDEzIEBA IHN0YXRpYyBpbnQgYmxrY2dfY2FuX2F0dGFjaChzdHJ1Y3QgY2dyb3VwX3Rhc2tzZXQgKnRzZXQp DQogDQogCS8qIHRhc2tfbG9jaygpIGlzIG5lZWRlZCB0byBhdm9pZCByYWNlcyB3aXRoIGV4aXRf aW9fY29udGV4dCgpICovDQogCWNncm91cF90YXNrc2V0X2Zvcl9lYWNoKHRhc2ssIGRzdF9jc3Ms IHRzZXQpIHsNCi0JCXRhc2tfbG9jayh0YXNrKTsNCisJCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7 DQorDQorCQl0YXNrX2xvY2sodGFzaywgJmlycWZsYWdzKTsNCiAJCWlvYyA9IHRhc2stPmlvX2Nv bnRleHQ7DQogCQlpZiAoaW9jICYmIGF0b21pY19yZWFkKCZpb2MtPm5yX3Rhc2tzKSA+IDEpDQog CQkJcmV0ID0gLUVJTlZBTDsNCi0JCXRhc2tfdW5sb2NrKHRhc2spOw0KKwkJdGFza191bmxvY2so dGFzaywgJmlycWZsYWdzKTsNCiAJCWlmIChyZXQpDQogCQkJYnJlYWs7DQogCX0NCmRpZmYgLS1n aXQgYS9ibG9jay9ibGstaW9jLmMgYi9ibG9jay9ibGstaW9jLmMNCmluZGV4IDM4MWNiNTAuLjRh ZGQxMDIgMTAwNjQ0DQotLS0gYS9ibG9jay9ibGstaW9jLmMNCisrKyBiL2Jsb2NrL2Jsay1pb2Mu Yw0KQEAgLTIwMCwxMSArMjAwLDEyIEBAIHJldHJ5Og0KIHZvaWQgZXhpdF9pb19jb250ZXh0KHN0 cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykNCiB7DQogCXN0cnVjdCBpb19jb250ZXh0ICppb2M7DQor CXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQogDQotCXRhc2tfbG9jayh0YXNrKTsNCisJdGFza19s b2NrKHRhc2ssICZpcnFmbGFncyk7DQogCWlvYyA9IHRhc2stPmlvX2NvbnRleHQ7DQogCXRhc2st PmlvX2NvbnRleHQgPSBOVUxMOw0KLQl0YXNrX3VubG9jayh0YXNrKTsNCisJdGFza191bmxvY2so dGFzaywgJmlycWZsYWdzKTsNCiANCiAJYXRvbWljX2RlYygmaW9jLT5ucl90YXNrcyk7DQogCXB1 dF9pb19jb250ZXh0X2FjdGl2ZShpb2MpOw0KQEAgLTIzNSw2ICsyMzYsNyBAQCBpbnQgY3JlYXRl X3Rhc2tfaW9fY29udGV4dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGdmcF90IGdmcF9mbGFn cywgaW50IG5vZGUpDQogew0KIAlzdHJ1Y3QgaW9fY29udGV4dCAqaW9jOw0KIAlpbnQgcmV0Ow0K Kwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIA0KIAlpb2MgPSBrbWVtX2NhY2hlX2FsbG9jX25v ZGUoaW9jb250ZXh0X2NhY2hlcCwgZ2ZwX2ZsYWdzIHwgX19HRlBfWkVSTywNCiAJCQkJICAgIG5v ZGUpOw0KQEAgLTI1Nyw3ICsyNTksNyBAQCBpbnQgY3JlYXRlX3Rhc2tfaW9fY29udGV4dChzdHJ1 Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGdmcF90IGdmcF9mbGFncywgaW50IG5vZGUpDQogCSAqIHBh dGggbWF5IGlzc3VlIElPcyBmcm9tIGUuZy4gZXhpdF9maWxlcygpLiAgVGhlIGV4aXQgcGF0aCBp cw0KIAkgKiByZXNwb25zaWJsZSBmb3Igbm90IGlzc3VpbmcgSU8gYWZ0ZXIgZXhpdF9pb19jb250 ZXh0KCkuDQogCSAqLw0KLQl0YXNrX2xvY2sodGFzayk7DQorCXRhc2tfbG9jayh0YXNrLCAmaXJx ZmxhZ3MpOw0KIAlpZiAoIXRhc2stPmlvX2NvbnRleHQgJiYNCiAJICAgICh0YXNrID09IGN1cnJl bnQgfHwgISh0YXNrLT5mbGFncyAmIFBGX0VYSVRJTkcpKSkNCiAJCXRhc2stPmlvX2NvbnRleHQg PSBpb2M7DQpAQCAtMjY2LDcgKzI2OCw3IEBAIGludCBjcmVhdGVfdGFza19pb19jb250ZXh0KHN0 cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgZ2ZwX3QgZ2ZwX2ZsYWdzLCBpbnQgbm9kZSkNCiANCiAJ cmV0ID0gdGFzay0+aW9fY29udGV4dCA/IDAgOiAtRUJVU1k7DQogDQotCXRhc2tfdW5sb2NrKHRh c2spOw0KKwl0YXNrX3VubG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIA0KIAlyZXR1cm4gcmV0Ow0K IH0NCkBAIC0yODgsMTggKzI5MCwxOSBAQCBzdHJ1Y3QgaW9fY29udGV4dCAqZ2V0X3Rhc2tfaW9f Y29udGV4dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssDQogCQkJCSAgICAgICBnZnBfdCBnZnBf ZmxhZ3MsIGludCBub2RlKQ0KIHsNCiAJc3RydWN0IGlvX2NvbnRleHQgKmlvYzsNCisJdW5zaWdu ZWQgbG9uZyBpcnFmbGFnczsNCiANCiAJbWlnaHRfc2xlZXBfaWYoZ2ZwZmxhZ3NfYWxsb3dfYmxv Y2tpbmcoZ2ZwX2ZsYWdzKSk7DQogDQogCWRvIHsNCi0JCXRhc2tfbG9jayh0YXNrKTsNCisJCXRh c2tfbG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIAkJaW9jID0gdGFzay0+aW9fY29udGV4dDsNCiAJ CWlmIChsaWtlbHkoaW9jKSkgew0KIAkJCWdldF9pb19jb250ZXh0KGlvYyk7DQotCQkJdGFza191 bmxvY2sodGFzayk7DQorCQkJdGFza191bmxvY2sodGFzaywgJmlycWZsYWdzKTsNCiAJCQlyZXR1 cm4gaW9jOw0KIAkJfQ0KLQkJdGFza191bmxvY2sodGFzayk7DQorCQl0YXNrX3VubG9jayh0YXNr LCAmaXJxZmxhZ3MpOw0KIAl9IHdoaWxlICghY3JlYXRlX3Rhc2tfaW9fY29udGV4dCh0YXNrLCBn ZnBfZmxhZ3MsIG5vZGUpKTsNCiANCiAJcmV0dXJuIE5VTEw7DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9zdGFnaW5nL2FuZHJvaWQvaW9uL2lvbi5jIGIvZHJpdmVycy9zdGFnaW5nL2FuZHJvaWQvaW9u L2lvbi5jDQppbmRleCA4NTM2NTY3Li43NTYwZjJmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFn aW5nL2FuZHJvaWQvaW9uL2lvbi5jDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvYW5kcm9pZC9pb24v aW9uLmMNCkBAIC04MDYsNiArODA2LDcgQEAgc3RydWN0IGlvbl9jbGllbnQgKmlvbl9jbGllbnRf Y3JlYXRlKHN0cnVjdCBpb25fZGV2aWNlICpkZXYsDQogCXN0cnVjdCByYl9ub2RlICpwYXJlbnQg PSBOVUxMOw0KIAlzdHJ1Y3QgaW9uX2NsaWVudCAqZW50cnk7DQogCXBpZF90IHBpZDsNCisJdW5z aWduZWQgbG9uZyBpcnFmbGFnczsNCiANCiAJaWYgKCFuYW1lKSB7DQogCQlwcl9lcnIoIiVzOiBO YW1lIGNhbm5vdCBiZSBudWxsXG4iLCBfX2Z1bmNfXyk7DQpAQCAtODEzLDcgKzgxNCw3IEBAIHN0 cnVjdCBpb25fY2xpZW50ICppb25fY2xpZW50X2NyZWF0ZShzdHJ1Y3QgaW9uX2RldmljZSAqZGV2 LA0KIAl9DQogDQogCWdldF90YXNrX3N0cnVjdChjdXJyZW50LT5ncm91cF9sZWFkZXIpOw0KLQl0 YXNrX2xvY2soY3VycmVudC0+Z3JvdXBfbGVhZGVyKTsNCisJdGFza19sb2NrKGN1cnJlbnQtPmdy b3VwX2xlYWRlciwgJmlycWZsYWdzKTsNCiAJcGlkID0gdGFza19waWRfbnIoY3VycmVudC0+Z3Jv dXBfbGVhZGVyKTsNCiAJLyoNCiAJICogZG9uJ3QgYm90aGVyIHRvIHN0b3JlIHRhc2sgc3RydWN0 IGZvciBrZXJuZWwgdGhyZWFkcywNCkBAIC04MjUsNyArODI2LDcgQEAgc3RydWN0IGlvbl9jbGll bnQgKmlvbl9jbGllbnRfY3JlYXRlKHN0cnVjdCBpb25fZGV2aWNlICpkZXYsDQogCX0gZWxzZSB7 DQogCQl0YXNrID0gY3VycmVudC0+Z3JvdXBfbGVhZGVyOw0KIAl9DQotCXRhc2tfdW5sb2NrKGN1 cnJlbnQtPmdyb3VwX2xlYWRlcik7DQorCXRhc2tfdW5sb2NrKGN1cnJlbnQtPmdyb3VwX2xlYWRl ciwgJmlycWZsYWdzKTsNCiANCiAJY2xpZW50ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGlvbl9j bGllbnQpLCBHRlBfS0VSTkVMKTsNCiAJaWYgKCFjbGllbnQpDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9zdGFnaW5nL2FuZHJvaWQvbG93bWVtb3J5a2lsbGVyLmMgYi9kcml2ZXJzL3N0YWdpbmcvYW5k cm9pZC9sb3dtZW1vcnlraWxsZXIuYw0KaW5kZXggMjUwOWU1ZC4uOTYzYWFiOSAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvc3RhZ2luZy9hbmRyb2lkL2xvd21lbW9yeWtpbGxlci5jDQorKysgYi9kcml2 ZXJzL3N0YWdpbmcvYW5kcm9pZC9sb3dtZW1vcnlraWxsZXIuYw0KQEAgLTEyMywyNyArMTIzLDI4 IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvd21lbV9zY2FuKHN0cnVjdCBzaHJpbmtlciAqcywg c3RydWN0IHNocmlua19jb250cm9sICpzYykNCiAJZm9yX2VhY2hfcHJvY2Vzcyh0c2spIHsNCiAJ CXN0cnVjdCB0YXNrX3N0cnVjdCAqcDsNCiAJCXNob3J0IG9vbV9zY29yZV9hZGo7DQorCQl1bnNp Z25lZCBsb25nIGlycWZsYWdzOw0KIA0KIAkJaWYgKHRzay0+ZmxhZ3MgJiBQRl9LVEhSRUFEKQ0K IAkJCWNvbnRpbnVlOw0KIA0KLQkJcCA9IGZpbmRfbG9ja190YXNrX21tKHRzayk7DQorCQlwID0g ZmluZF9sb2NrX3Rhc2tfbW0odHNrLCAmaXJxZmxhZ3MpOw0KIAkJaWYgKCFwKQ0KIAkJCWNvbnRp bnVlOw0KIA0KIAkJaWYgKHRlc3RfdHNrX3RocmVhZF9mbGFnKHAsIFRJRl9NRU1ESUUpICYmDQog CQkgICAgdGltZV9iZWZvcmVfZXEoamlmZmllcywgbG93bWVtX2RlYXRocGVuZGluZ190aW1lb3V0 KSkgew0KLQkJCXRhc2tfdW5sb2NrKHApOw0KKwkJCXRhc2tfdW5sb2NrKHAsICZpcnFmbGFncyk7 DQogCQkJcmN1X3JlYWRfdW5sb2NrKCk7DQogCQkJcmV0dXJuIDA7DQogCQl9DQogCQlvb21fc2Nv cmVfYWRqID0gcC0+c2lnbmFsLT5vb21fc2NvcmVfYWRqOw0KIAkJaWYgKG9vbV9zY29yZV9hZGog PCBtaW5fc2NvcmVfYWRqKSB7DQotCQkJdGFza191bmxvY2socCk7DQorCQkJdGFza191bmxvY2so cCwgJmlycWZsYWdzKTsNCiAJCQljb250aW51ZTsNCiAJCX0NCiAJCXRhc2tzaXplID0gZ2V0X21t X3JzcyhwLT5tbSk7DQotCQl0YXNrX3VubG9jayhwKTsNCisJCXRhc2tfdW5sb2NrKHAsICZpcnFm bGFncyk7DQogCQlpZiAodGFza3NpemUgPD0gMCkNCiAJCQljb250aW51ZTsNCiAJCWlmIChzZWxl Y3RlZCkgew0KQEAgLTE2MCw3ICsxNjEsOSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb3dtZW1f c2NhbihzdHJ1Y3Qgc2hyaW5rZXIgKnMsIHN0cnVjdCBzaHJpbmtfY29udHJvbCAqc2MpDQogCQkJ ICAgICBwLT5jb21tLCBwLT5waWQsIG9vbV9zY29yZV9hZGosIHRhc2tzaXplKTsNCiAJfQ0KIAlp ZiAoc2VsZWN0ZWQpIHsNCi0JCXRhc2tfbG9jayhzZWxlY3RlZCk7DQorCQl1bnNpZ25lZCBsb25n IGlycWZsYWdzOw0KKw0KKwkJdGFza19sb2NrKHNlbGVjdGVkLCAmaXJxZmxhZ3MpOw0KIAkJc2Vu ZF9zaWcoU0lHS0lMTCwgc2VsZWN0ZWQsIDApOw0KIAkJLyoNCiAJCSAqIEZJWE1FOiBsb3dtZW1v cnlraWxsZXIgc2hvdWxkbid0IGFidXNlIGdsb2JhbCBPT00ga2lsbGVyDQpAQCAtMTY5LDcgKzE3 Miw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvd21lbV9zY2FuKHN0cnVjdCBzaHJpbmtlciAq cywgc3RydWN0IHNocmlua19jb250cm9sICpzYykNCiAJCSAqLw0KIAkJaWYgKHNlbGVjdGVkLT5t bSkNCiAJCQltYXJrX29vbV92aWN0aW0oc2VsZWN0ZWQpOw0KLQkJdGFza191bmxvY2soc2VsZWN0 ZWQpOw0KKwkJdGFza191bmxvY2soc2VsZWN0ZWQsICZpcnFmbGFncyk7DQogCQlsb3dtZW1fcHJp bnQoMSwgIktpbGxpbmcgJyVzJyAoJWQpLCBhZGogJWhkLFxuIg0KIAkJCQkgIiAgIHRvIGZyZWUg JWxka0Igb24gYmVoYWxmIG9mICclcycgKCVkKSBiZWNhdXNlXG4iDQogCQkJCSAiICAgY2FjaGUg JWxka0IgaXMgYmVsb3cgbGltaXQgJWxka0IgZm9yIG9vbV9zY29yZV9hZGogJWhkXG4iDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2x1c3RyZS9sdXN0cmUvcHRscnBjL3NlYy5jIGIvZHJp dmVycy9zdGFnaW5nL2x1c3RyZS9sdXN0cmUvcHRscnBjL3NlYy5jDQppbmRleCAxODdmZDFkLi43 NDU0OWQzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL2x1c3RyZS9sdXN0cmUvcHRscnBj L3NlYy5jDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvbHVzdHJlL2x1c3RyZS9wdGxycGMvc2VjLmMN CkBAIC0yMTkzLDYgKzIxOTMsNyBAQCBFWFBPUlRfU1lNQk9MKHNwdGxycGNfY3VycmVudF91c2Vy X2Rlc2Nfc2l6ZSk7DQogaW50IHNwdGxycGNfcGFja191c2VyX2Rlc2Moc3RydWN0IGx1c3RyZV9t c2cgKm1zZywgaW50IG9mZnNldCkNCiB7DQogCXN0cnVjdCBwdGxycGNfdXNlcl9kZXNjICpwdWQ7 DQorCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQogDQogCXB1ZCA9IGx1c3RyZV9tc2dfYnVmKG1z Zywgb2Zmc2V0LCAwKTsNCiANCkBAIC0yMjAzLDEyICsyMjA0LDEyIEBAIGludCBzcHRscnBjX3Bh Y2tfdXNlcl9kZXNjKHN0cnVjdCBsdXN0cmVfbXNnICptc2csIGludCBvZmZzZXQpDQogCXB1ZC0+ cHVkX2NhcCA9IGNmc19jdXJwcm9jX2NhcF9wYWNrKCk7DQogCXB1ZC0+cHVkX25ncm91cHMgPSAo bXNnLT5sbV9idWZsZW5zW29mZnNldF0gLSBzaXplb2YoKnB1ZCkpIC8gNDsNCiANCi0JdGFza19s b2NrKGN1cnJlbnQpOw0KKwl0YXNrX2xvY2soY3VycmVudCwgJmlycWZsYWdzKTsNCiAJaWYgKHB1 ZC0+cHVkX25ncm91cHMgPiBjdXJyZW50X25ncm91cHMpDQogCQlwdWQtPnB1ZF9uZ3JvdXBzID0g Y3VycmVudF9uZ3JvdXBzOw0KIAltZW1jcHkocHVkLT5wdWRfZ3JvdXBzLCBjdXJyZW50X2NyZWQo KS0+Z3JvdXBfaW5mby0+YmxvY2tzWzBdLA0KIAkgICAgICAgcHVkLT5wdWRfbmdyb3VwcyAqIHNp emVvZihfX3UzMikpOw0KLQl0YXNrX3VubG9jayhjdXJyZW50KTsNCisJdGFza191bmxvY2soY3Vy cmVudCwgJmlycWZsYWdzKTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvdHR5L3R0eV9pby5jIGIvZHJpdmVycy90dHkvdHR5X2lvLmMNCmluZGV4IDI0ZDU0OTEuLmQx MDQ3NWIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3R0eS90dHlfaW8uYw0KKysrIGIvZHJpdmVycy90 dHkvdHR5X2lvLmMNCkBAIC0zMDg1LDIwICszMDg1LDIyIEBAIHZvaWQgX19kb19TQUsoc3RydWN0 IHR0eV9zdHJ1Y3QgKnR0eSkNCiANCiAJLyogTm93IGtpbGwgYW55IHByb2Nlc3NlcyB0aGF0IGhh cHBlbiB0byBoYXZlIHRoZSB0dHkgb3BlbiAqLw0KIAlkb19lYWNoX3RocmVhZChnLCBwKSB7DQor CQl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KKw0KIAkJaWYgKHAtPnNpZ25hbC0+dHR5ID09IHR0 eSkgew0KIAkJCXR0eV9ub3RpY2UodHR5LCAiU0FLOiBraWxsZWQgcHJvY2VzcyAlZCAoJXMpOiBi eSBjb250cm9sbGluZyB0dHlcbiIsDQogCQkJCSAgIHRhc2tfcGlkX25yKHApLCBwLT5jb21tKTsN CiAJCQlzZW5kX3NpZyhTSUdLSUxMLCBwLCAxKTsNCiAJCQljb250aW51ZTsNCiAJCX0NCi0JCXRh c2tfbG9jayhwKTsNCisJCXRhc2tfbG9jayhwLCAmaXJxZmxhZ3MpOw0KIAkJaSA9IGl0ZXJhdGVf ZmQocC0+ZmlsZXMsIDAsIHRoaXNfdHR5LCB0dHkpOw0KIAkJaWYgKGkgIT0gMCkgew0KIAkJCXR0 eV9ub3RpY2UodHR5LCAiU0FLOiBraWxsZWQgcHJvY2VzcyAlZCAoJXMpOiBieSBmZCMlZFxuIiwN CiAJCQkJICAgdGFza19waWRfbnIocCksIHAtPmNvbW0sIGkgLSAxKTsNCiAJCQlmb3JjZV9zaWco U0lHS0lMTCwgcCk7DQogCQl9DQotCQl0YXNrX3VubG9jayhwKTsNCisJCXRhc2tfdW5sb2NrKHAs ICZpcnFmbGFncyk7DQogCX0gd2hpbGVfZWFjaF90aHJlYWQoZywgcCk7DQogCXJlYWRfdW5sb2Nr KCZ0YXNrbGlzdF9sb2NrKTsNCiAjZW5kaWYNCmRpZmYgLS1naXQgYS9mcy9jb3JlZHVtcC5jIGIv ZnMvY29yZWR1bXAuYw0KaW5kZXggNDdjMzJjMy4uNTEyMmU2ZiAxMDA2NDQNCi0tLSBhL2ZzL2Nv cmVkdW1wLmMNCisrKyBiL2ZzL2NvcmVkdW1wLmMNCkBAIC03MDMsMTAgKzcwMywxMSBAQCB2b2lk IGRvX2NvcmVkdW1wKGNvbnN0IHNpZ2luZm9fdCAqc2lnaW5mbykNCiAJCQkgKiByb290IGRpcmVj dG9yeSBvZiBpbml0X3Rhc2suDQogCQkJICovDQogCQkJc3RydWN0IHBhdGggcm9vdDsNCisJCQl1 bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIA0KLQkJCXRhc2tfbG9jaygmaW5pdF90YXNrKTsNCisJ CQl0YXNrX2xvY2soJmluaXRfdGFzaywgJmlycWZsYWdzKTsNCiAJCQlnZXRfZnNfcm9vdChpbml0 X3Rhc2suZnMsICZyb290KTsNCi0JCQl0YXNrX3VubG9jaygmaW5pdF90YXNrKTsNCisJCQl0YXNr X3VubG9jaygmaW5pdF90YXNrLCAmaXJxZmxhZ3MpOw0KIAkJCWNwcm0uZmlsZSA9IGZpbGVfb3Bl bl9yb290KHJvb3QuZGVudHJ5LCByb290Lm1udCwNCiAJCQkJY24uY29yZW5hbWUsIG9wZW5fZmxh Z3MsIDA2MDApOw0KIAkJCXBhdGhfcHV0KCZyb290KTsNCmRpZmYgLS1naXQgYS9mcy9leGVjLmMg Yi9mcy9leGVjLmMNCmluZGV4IGM0MDEwYjguLjdlOTUyMTUgMTAwNjQ0DQotLS0gYS9mcy9leGVj LmMNCisrKyBiL2ZzL2V4ZWMuYw0KQEAgLTk0MCw2ICs5NDAsNyBAQCBzdGF0aWMgaW50IGV4ZWNf bW1hcChzdHJ1Y3QgbW1fc3RydWN0ICptbSkNCiB7DQogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNr Ow0KIAlzdHJ1Y3QgbW1fc3RydWN0ICpvbGRfbW0sICphY3RpdmVfbW07DQorCXVuc2lnbmVkIGxv bmcgaXJxZmxhZ3M7DQogDQogCS8qIE5vdGlmeSBwYXJlbnQgdGhhdCB3ZSdyZSBubyBsb25nZXIg aW50ZXJlc3RlZCBpbiB0aGUgb2xkIFZNICovDQogCXRzayA9IGN1cnJlbnQ7DQpAQCAtOTYwLDE0 ICs5NjEsMTQgQEAgc3RhdGljIGludCBleGVjX21tYXAoc3RydWN0IG1tX3N0cnVjdCAqbW0pDQog CQkJcmV0dXJuIC1FSU5UUjsNCiAJCX0NCiAJfQ0KLQl0YXNrX2xvY2sodHNrKTsNCisJdGFza19s b2NrKHRzaywgJmlycWZsYWdzKTsNCiAJYWN0aXZlX21tID0gdHNrLT5hY3RpdmVfbW07DQogCXRz ay0+bW0gPSBtbTsNCiAJdHNrLT5hY3RpdmVfbW0gPSBtbTsNCiAJYWN0aXZhdGVfbW0oYWN0aXZl X21tLCBtbSk7DQogCXRzay0+bW0tPnZtYWNhY2hlX3NlcW51bSA9IDA7DQogCXZtYWNhY2hlX2Zs dXNoKHRzayk7DQotCXRhc2tfdW5sb2NrKHRzayk7DQorCXRhc2tfdW5sb2NrKHRzaywgJmlycWZs YWdzKTsNCiAJaWYgKG9sZF9tbSkgew0KIAkJdXBfcmVhZCgmb2xkX21tLT5tbWFwX3NlbSk7DQog CQlCVUdfT04oYWN0aXZlX21tICE9IG9sZF9tbSk7DQpAQCAtMTE1MywxMCArMTE1NCwxMiBAQCBr aWxsZWQ6DQogDQogY2hhciAqZ2V0X3Rhc2tfY29tbShjaGFyICpidWYsIHN0cnVjdCB0YXNrX3N0 cnVjdCAqdHNrKQ0KIHsNCisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsNCisNCiAJLyogYnVmIG11 c3QgYmUgYXQgbGVhc3Qgc2l6ZW9mKHRzay0+Y29tbSkgaW4gc2l6ZSAqLw0KLQl0YXNrX2xvY2so dHNrKTsNCisJdGFza19sb2NrKHRzaywgJmlycWZsYWdzKTsNCiAJc3RybmNweShidWYsIHRzay0+ Y29tbSwgc2l6ZW9mKHRzay0+Y29tbSkpOw0KLQl0YXNrX3VubG9jayh0c2spOw0KKwl0YXNrX3Vu bG9jayh0c2ssICZpcnFmbGFncyk7DQogCXJldHVybiBidWY7DQogfQ0KIEVYUE9SVF9TWU1CT0xf R1BMKGdldF90YXNrX2NvbW0pOw0KQEAgLTExNjgsMTAgKzExNzEsMTIgQEAgRVhQT1JUX1NZTUJP TF9HUEwoZ2V0X3Rhc2tfY29tbSk7DQogDQogdm9pZCBfX3NldF90YXNrX2NvbW0oc3RydWN0IHRh c2tfc3RydWN0ICp0c2ssIGNvbnN0IGNoYXIgKmJ1ZiwgYm9vbCBleGVjKQ0KIHsNCi0JdGFza19s b2NrKHRzayk7DQorCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQorDQorCXRhc2tfbG9jayh0c2ss ICZpcnFmbGFncyk7DQogCXRyYWNlX3Rhc2tfcmVuYW1lKHRzaywgYnVmKTsNCiAJc3RybGNweSh0 c2stPmNvbW0sIGJ1Ziwgc2l6ZW9mKHRzay0+Y29tbSkpOw0KLQl0YXNrX3VubG9jayh0c2spOw0K Kwl0YXNrX3VubG9jayh0c2ssICZpcnFmbGFncyk7DQogCXBlcmZfZXZlbnRfY29tbSh0c2ssIGV4 ZWMpOw0KIH0NCiANCmRpZmYgLS1naXQgYS9mcy9maWxlLmMgYi9mcy9maWxlLmMNCmluZGV4IDFm YmM1YzAuLjE5Y2JmOWIgMTAwNjQ0DQotLS0gYS9mcy9maWxlLmMNCisrKyBiL2ZzL2ZpbGUuYw0K QEAgLTQxOCwxMiArNDE4LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgZmR0YWJsZSAqY2xvc2VfZmlsZXMo c3RydWN0IGZpbGVzX3N0cnVjdCAqIGZpbGVzKQ0KIHN0cnVjdCBmaWxlc19zdHJ1Y3QgKmdldF9m aWxlc19zdHJ1Y3Qoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQ0KIHsNCiAJc3RydWN0IGZpbGVz X3N0cnVjdCAqZmlsZXM7DQorCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQogDQotCXRhc2tfbG9j ayh0YXNrKTsNCisJdGFza19sb2NrKHRhc2ssICZpcnFmbGFncyk7DQogCWZpbGVzID0gdGFzay0+ ZmlsZXM7DQogCWlmIChmaWxlcykNCiAJCWF0b21pY19pbmMoJmZpbGVzLT5jb3VudCk7DQotCXRh c2tfdW5sb2NrKHRhc2spOw0KKwl0YXNrX3VubG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIA0KIAly ZXR1cm4gZmlsZXM7DQogfQ0KQEAgLTQ0NCwxMSArNDQ1LDEyIEBAIHZvaWQgcmVzZXRfZmlsZXNf c3RydWN0KHN0cnVjdCBmaWxlc19zdHJ1Y3QgKmZpbGVzKQ0KIHsNCiAJc3RydWN0IHRhc2tfc3Ry dWN0ICp0c2sgPSBjdXJyZW50Ow0KIAlzdHJ1Y3QgZmlsZXNfc3RydWN0ICpvbGQ7DQorCXVuc2ln bmVkIGxvbmcgaXJxZmxhZ3M7DQogDQogCW9sZCA9IHRzay0+ZmlsZXM7DQotCXRhc2tfbG9jayh0 c2spOw0KKwl0YXNrX2xvY2sodHNrLCAmaXJxZmxhZ3MpOw0KIAl0c2stPmZpbGVzID0gZmlsZXM7 DQotCXRhc2tfdW5sb2NrKHRzayk7DQorCXRhc2tfdW5sb2NrKHRzaywgJmlycWZsYWdzKTsNCiAJ cHV0X2ZpbGVzX3N0cnVjdChvbGQpOw0KIH0NCiANCkBAIC00NTcsOSArNDU5LDExIEBAIHZvaWQg ZXhpdF9maWxlcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykNCiAJc3RydWN0IGZpbGVzX3N0cnVj dCAqIGZpbGVzID0gdHNrLT5maWxlczsNCiANCiAJaWYgKGZpbGVzKSB7DQotCQl0YXNrX2xvY2so dHNrKTsNCisJCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQorDQorCQl0YXNrX2xvY2sodHNrLCAm aXJxZmxhZ3MpOw0KIAkJdHNrLT5maWxlcyA9IE5VTEw7DQotCQl0YXNrX3VubG9jayh0c2spOw0K KwkJdGFza191bmxvY2sodHNrLCAmaXJxZmxhZ3MpOw0KIAkJcHV0X2ZpbGVzX3N0cnVjdChmaWxl cyk7DQogCX0NCiB9DQpkaWZmIC0tZ2l0IGEvZnMvZnNfc3RydWN0LmMgYi9mcy9mc19zdHJ1Y3Qu Yw0KaW5kZXggN2RjYTc0My4uNDI2ZGFiNCAxMDA2NDQNCi0tLSBhL2ZzL2ZzX3N0cnVjdC5jDQor KysgYi9mcy9mc19zdHJ1Y3QuYw0KQEAgLTU4LDEwICs1OCwxMSBAQCB2b2lkIGNocm9vdF9mc19y ZWZzKGNvbnN0IHN0cnVjdCBwYXRoICpvbGRfcm9vdCwgY29uc3Qgc3RydWN0IHBhdGggKm5ld19y b290KQ0KIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKmcsICpwOw0KIAlzdHJ1Y3QgZnNfc3RydWN0ICpm czsNCiAJaW50IGNvdW50ID0gMDsNCisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsNCiANCiAJcmVh ZF9sb2NrKCZ0YXNrbGlzdF9sb2NrKTsNCiAJZG9fZWFjaF90aHJlYWQoZywgcCkgew0KLQkJdGFz a19sb2NrKHApOw0KKwkJdGFza19sb2NrKHAsICZpcnFmbGFncyk7DQogCQlmcyA9IHAtPmZzOw0K IAkJaWYgKGZzKSB7DQogCQkJaW50IGhpdHMgPSAwOw0KQEAgLTc2LDcgKzc3LDcgQEAgdm9pZCBj aHJvb3RfZnNfcmVmcyhjb25zdCBzdHJ1Y3QgcGF0aCAqb2xkX3Jvb3QsIGNvbnN0IHN0cnVjdCBw YXRoICpuZXdfcm9vdCkNCiAJCQl9DQogCQkJc3Bpbl91bmxvY2soJmZzLT5sb2NrKTsNCiAJCX0N Ci0JCXRhc2tfdW5sb2NrKHApOw0KKwkJdGFza191bmxvY2socCwgJmlycWZsYWdzKTsNCiAJfSB3 aGlsZV9lYWNoX3RocmVhZChnLCBwKTsNCiAJcmVhZF91bmxvY2soJnRhc2tsaXN0X2xvY2spOw0K IAl3aGlsZSAoY291bnQtLSkNCkBAIC05NSwxMyArOTYsMTUgQEAgdm9pZCBleGl0X2ZzKHN0cnVj dCB0YXNrX3N0cnVjdCAqdHNrKQ0KIAlzdHJ1Y3QgZnNfc3RydWN0ICpmcyA9IHRzay0+ZnM7DQog DQogCWlmIChmcykgew0KKwkJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsNCiAJCWludCBraWxsOw0K LQkJdGFza19sb2NrKHRzayk7DQorDQorCQl0YXNrX2xvY2sodHNrLCAmaXJxZmxhZ3MpOw0KIAkJ c3Bpbl9sb2NrKCZmcy0+bG9jayk7DQogCQl0c2stPmZzID0gTlVMTDsNCiAJCWtpbGwgPSAhLS1m cy0+dXNlcnM7DQogCQlzcGluX3VubG9jaygmZnMtPmxvY2spOw0KLQkJdGFza191bmxvY2sodHNr KTsNCisJCXRhc2tfdW5sb2NrKHRzaywgJmlycWZsYWdzKTsNCiAJCWlmIChraWxsKQ0KIAkJCWZy ZWVfZnNfc3RydWN0KGZzKTsNCiAJfQ0KQEAgLTEzMywxNiArMTM2LDE3IEBAIGludCB1bnNoYXJl X2ZzX3N0cnVjdCh2b2lkKQ0KIAlzdHJ1Y3QgZnNfc3RydWN0ICpmcyA9IGN1cnJlbnQtPmZzOw0K IAlzdHJ1Y3QgZnNfc3RydWN0ICpuZXdfZnMgPSBjb3B5X2ZzX3N0cnVjdChmcyk7DQogCWludCBr aWxsOw0KKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIA0KIAlpZiAoIW5ld19mcykNCiAJCXJl dHVybiAtRU5PTUVNOw0KIA0KLQl0YXNrX2xvY2soY3VycmVudCk7DQorCXRhc2tfbG9jayhjdXJy ZW50LCAmaXJxZmxhZ3MpOw0KIAlzcGluX2xvY2soJmZzLT5sb2NrKTsNCiAJa2lsbCA9ICEtLWZz LT51c2VyczsNCiAJY3VycmVudC0+ZnMgPSBuZXdfZnM7DQogCXNwaW5fdW5sb2NrKCZmcy0+bG9j ayk7DQotCXRhc2tfdW5sb2NrKGN1cnJlbnQpOw0KKwl0YXNrX3VubG9jayhjdXJyZW50LCAmaXJx ZmxhZ3MpOw0KIA0KIAlpZiAoa2lsbCkNCiAJCWZyZWVfZnNfc3RydWN0KGZzKTsNCmRpZmYgLS1n aXQgYS9mcy9odWdldGxiZnMvaW5vZGUuYyBiL2ZzL2h1Z2V0bGJmcy9pbm9kZS5jDQppbmRleCA0 ZWE3MWViLi43M2U3NTkxIDEwMDY0NA0KLS0tIGEvZnMvaHVnZXRsYmZzL2lub2RlLmMNCisrKyBi L2ZzL2h1Z2V0bGJmcy9pbm9kZS5jDQpAQCAtMTI2MCwxMCArMTI2MCwxMiBAQCBzdHJ1Y3QgZmls ZSAqaHVnZXRsYl9maWxlX3NldHVwKGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCBzaXplLA0KIAlp ZiAoY3JlYXRfZmxhZ3MgPT0gSFVHRVRMQl9TSE1GU19JTk9ERSAmJiAhY2FuX2RvX2h1Z2V0bGJf c2htKCkpIHsNCiAJCSp1c2VyID0gY3VycmVudF91c2VyKCk7DQogCQlpZiAodXNlcl9zaG1fbG9j ayhzaXplLCAqdXNlcikpIHsNCi0JCQl0YXNrX2xvY2soY3VycmVudCk7DQorCQkJdW5zaWduZWQg bG9uZyBpcnFmbGFnczsNCisNCisJCQl0YXNrX2xvY2soY3VycmVudCwgJmlycWZsYWdzKTsNCiAJ CQlwcl93YXJuX29uY2UoIiVzICglZCk6IFVzaW5nIG1sb2NrIHVsaW1pdHMgZm9yIFNITV9IVUdF VExCIGlzIGRlcHJlY2F0ZWRcbiIsDQogCQkJCWN1cnJlbnQtPmNvbW0sIGN1cnJlbnQtPnBpZCk7 DQotCQkJdGFza191bmxvY2soY3VycmVudCk7DQorCQkJdGFza191bmxvY2soY3VycmVudCwgJmly cWZsYWdzKTsNCiAJCX0gZWxzZSB7DQogCQkJKnVzZXIgPSBOVUxMOw0KIAkJCXJldHVybiBFUlJf UFRSKC1FUEVSTSk7DQpkaWZmIC0tZ2l0IGEvZnMvbmFtZXNwYWNlLmMgYi9mcy9uYW1lc3BhY2Uu Yw0KaW5kZXggNGZiMTY5MS4uNTA0NDA4ZCAxMDA2NDQNCi0tLSBhL2ZzL25hbWVzcGFjZS5jDQor KysgYi9mcy9uYW1lc3BhY2UuYw0KQEAgLTMyOTQsMTYgKzMyOTQsMTcgQEAgZm91bmQ6DQogDQog c3RhdGljIHN0cnVjdCBuc19jb21tb24gKm1udG5zX2dldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRh c2spDQogew0KKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIAlzdHJ1Y3QgbnNfY29tbW9uICpu cyA9IE5VTEw7DQogCXN0cnVjdCBuc3Byb3h5ICpuc3Byb3h5Ow0KIA0KLQl0YXNrX2xvY2sodGFz ayk7DQorCXRhc2tfbG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIAluc3Byb3h5ID0gdGFzay0+bnNw cm94eTsNCiAJaWYgKG5zcHJveHkpIHsNCiAJCW5zID0gJm5zcHJveHktPm1udF9ucy0+bnM7DQog CQlnZXRfbW50X25zKHRvX21udF9ucyhucykpOw0KIAl9DQotCXRhc2tfdW5sb2NrKHRhc2spOw0K Kwl0YXNrX3VubG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIA0KIAlyZXR1cm4gbnM7DQogfQ0KZGlm ZiAtLWdpdCBhL2ZzL3Byb2MvYXJyYXkuYyBiL2ZzL3Byb2MvYXJyYXkuYw0KaW5kZXggYjZjMDBj ZS4uMDc5MDdlNyAxMDA2NDQNCi0tLSBhL2ZzL3Byb2MvYXJyYXkuYw0KKysrIGIvZnMvcHJvYy9h cnJheS5jDQpAQCAtMTQ5LDYgKzE0OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0YXNrX3N0YXRl KHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHBpZF9uYW1lc3BhY2UgKm5zLA0KIAljb25zdCBz dHJ1Y3QgY3JlZCAqY3JlZDsNCiAJcGlkX3QgcHBpZCwgdHBpZCA9IDAsIHRnaWQsIG5naWQ7DQog CXVuc2lnbmVkIGludCBtYXhfZmRzID0gMDsNCisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsNCiAN CiAJcmN1X3JlYWRfbG9jaygpOw0KIAlwcGlkID0gcGlkX2FsaXZlKHApID8NCkBAIC0xNjIsMTAg KzE2MywxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdGFza19zdGF0ZShzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpucywNCiAJbmdpZCA9IHRhc2tfbnVtYV9ncm91cF9p ZChwKTsNCiAJY3JlZCA9IGdldF90YXNrX2NyZWQocCk7DQogDQotCXRhc2tfbG9jayhwKTsNCisJ dGFza19sb2NrKHAsICZpcnFmbGFncyk7DQogCWlmIChwLT5maWxlcykNCiAJCW1heF9mZHMgPSBm aWxlc19mZHRhYmxlKHAtPmZpbGVzKS0+bWF4X2ZkczsNCi0JdGFza191bmxvY2socCk7DQorCXRh c2tfdW5sb2NrKHAsICZpcnFmbGFncyk7DQogCXJjdV9yZWFkX3VubG9jaygpOw0KIA0KIAlzZXFf cHJpbnRmKG0sDQpkaWZmIC0tZ2l0IGEvZnMvcHJvYy9iYXNlLmMgYi9mcy9wcm9jL2Jhc2UuYw0K aW5kZXggMGQxNjNhOC4uZWVmN2Q0ZCAxMDA2NDQNCi0tLSBhL2ZzL3Byb2MvYmFzZS5jDQorKysg Yi9mcy9wcm9jL2Jhc2UuYw0KQEAgLTE1NywxMyArMTU3LDE0IEBAIHN0YXRpYyB1bnNpZ25lZCBp bnQgcGlkX2VudHJ5X2NvdW50X2RpcnMoY29uc3Qgc3RydWN0IHBpZF9lbnRyeSAqZW50cmllcywN CiBzdGF0aWMgaW50IGdldF90YXNrX3Jvb3Qoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBzdHJ1 Y3QgcGF0aCAqcm9vdCkNCiB7DQogCWludCByZXN1bHQgPSAtRU5PRU5UOw0KKwl1bnNpZ25lZCBs b25nIGlycWZsYWdzOw0KIA0KLQl0YXNrX2xvY2sodGFzayk7DQorCXRhc2tfbG9jayh0YXNrLCAm aXJxZmxhZ3MpOw0KIAlpZiAodGFzay0+ZnMpIHsNCiAJCWdldF9mc19yb290KHRhc2stPmZzLCBy b290KTsNCiAJCXJlc3VsdCA9IDA7DQogCX0NCi0JdGFza191bmxvY2sodGFzayk7DQorCXRhc2tf dW5sb2NrKHRhc2ssICZpcnFmbGFncyk7DQogCXJldHVybiByZXN1bHQ7DQogfQ0KIA0KQEAgLTE3 MywxMiArMTc0LDE0IEBAIHN0YXRpYyBpbnQgcHJvY19jd2RfbGluayhzdHJ1Y3QgZGVudHJ5ICpk ZW50cnksIHN0cnVjdCBwYXRoICpwYXRoKQ0KIAlpbnQgcmVzdWx0ID0gLUVOT0VOVDsNCiANCiAJ aWYgKHRhc2spIHsNCi0JCXRhc2tfbG9jayh0YXNrKTsNCisJCXVuc2lnbmVkIGxvbmcgaXJxZmxh Z3M7DQorDQorCQl0YXNrX2xvY2sodGFzaywgJmlycWZsYWdzKTsNCiAJCWlmICh0YXNrLT5mcykg ew0KIAkJCWdldF9mc19wd2QodGFzay0+ZnMsIHBhdGgpOw0KIAkJCXJlc3VsdCA9IDA7DQogCQl9 DQotCQl0YXNrX3VubG9jayh0YXNrKTsNCisJCXRhc2tfdW5sb2NrKHRhc2ssICZpcnFmbGFncyk7 DQogCQlwdXRfdGFza19zdHJ1Y3QodGFzayk7DQogCX0NCiAJcmV0dXJuIHJlc3VsdDsNCkBAIC0x MDU3LDcgKzEwNjAsNyBAQCBzdGF0aWMgc3NpemVfdCBvb21fYWRqX3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLA0KIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRh c2s7DQogCWNoYXIgYnVmZmVyW1BST0NfTlVNQlVGXTsNCiAJaW50IG9vbV9hZGo7DQotCXVuc2ln bmVkIGxvbmcgZmxhZ3M7DQorCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIGlycWZsYWdzOw0KIAlpbnQg ZXJyOw0KIA0KIAltZW1zZXQoYnVmZmVyLCAwLCBzaXplb2YoYnVmZmVyKSk7DQpAQCAtMTA4Myw3 ICsxMDg2LDcgQEAgc3RhdGljIHNzaXplX3Qgb29tX2Fkal93cml0ZShzdHJ1Y3QgZmlsZSAqZmls ZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwNCiAJCWdvdG8gb3V0Ow0KIAl9DQogDQotCXRhc2tf bG9jayh0YXNrKTsNCisJdGFza19sb2NrKHRhc2ssICZpcnFmbGFncyk7DQogCWlmICghdGFzay0+ bW0pIHsNCiAJCWVyciA9IC1FSU5WQUw7DQogCQlnb3RvIGVycl90YXNrX2xvY2s7DQpAQCAtMTEy Miw3ICsxMTI1LDcgQEAgc3RhdGljIHNzaXplX3Qgb29tX2Fkal93cml0ZShzdHJ1Y3QgZmlsZSAq ZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwNCiBlcnJfc2lnaGFuZDoNCiAJdW5sb2NrX3Rh c2tfc2lnaGFuZCh0YXNrLCAmZmxhZ3MpOw0KIGVycl90YXNrX2xvY2s6DQotCXRhc2tfdW5sb2Nr KHRhc2spOw0KKwl0YXNrX3VubG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIAlwdXRfdGFza19zdHJ1 Y3QodGFzayk7DQogb3V0Og0KIAlyZXR1cm4gZXJyIDwgMCA/IGVyciA6IGNvdW50Ow0KQEAgLTEx NTksNyArMTE2Miw3IEBAIHN0YXRpYyBzc2l6ZV90IG9vbV9zY29yZV9hZGpfd3JpdGUoc3RydWN0 IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWYsDQogew0KIAlzdHJ1Y3QgdGFza19z dHJ1Y3QgKnRhc2s7DQogCWNoYXIgYnVmZmVyW1BST0NfTlVNQlVGXTsNCi0JdW5zaWduZWQgbG9u ZyBmbGFnczsNCisJdW5zaWduZWQgbG9uZyBmbGFncywgaXJxZmxhZ3M7DQogCWludCBvb21fc2Nv cmVfYWRqOw0KIAlpbnQgZXJyOw0KIA0KQEAgLTExODYsNyArMTE4OSw3IEBAIHN0YXRpYyBzc2l6 ZV90IG9vbV9zY29yZV9hZGpfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191 c2VyICpidWYsDQogCQlnb3RvIG91dDsNCiAJfQ0KIA0KLQl0YXNrX2xvY2sodGFzayk7DQorCXRh c2tfbG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIAlpZiAoIXRhc2stPm1tKSB7DQogCQllcnIgPSAt RUlOVkFMOw0KIAkJZ290byBlcnJfdGFza19sb2NrOw0KQEAgLTEyMTEsNyArMTIxNCw3IEBAIHN0 YXRpYyBzc2l6ZV90IG9vbV9zY29yZV9hZGpfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0 IGNoYXIgX191c2VyICpidWYsDQogZXJyX3NpZ2hhbmQ6DQogCXVubG9ja190YXNrX3NpZ2hhbmQo dGFzaywgJmZsYWdzKTsNCiBlcnJfdGFza19sb2NrOg0KLQl0YXNrX3VubG9jayh0YXNrKTsNCisJ dGFza191bmxvY2sodGFzaywgJmlycWZsYWdzKTsNCiAJcHV0X3Rhc2tfc3RydWN0KHRhc2spOw0K IG91dDoNCiAJcmV0dXJuIGVyciA8IDAgPyBlcnIgOiBjb3VudDsNCkBAIC0xNTIyLDE0ICsxNTI1 LDE1IEBAIHN0YXRpYyBpbnQgY29tbV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikN CiB7DQogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtLT5wcml2YXRlOw0KIAlzdHJ1Y3QgdGFza19z dHJ1Y3QgKnA7DQorCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQogDQogCXAgPSBnZXRfcHJvY190 YXNrKGlub2RlKTsNCiAJaWYgKCFwKQ0KIAkJcmV0dXJuIC1FU1JDSDsNCiANCi0JdGFza19sb2Nr KHApOw0KKwl0YXNrX2xvY2socCwgJmlycWZsYWdzKTsNCiAJc2VxX3ByaW50ZihtLCAiJXNcbiIs IHAtPmNvbW0pOw0KLQl0YXNrX3VubG9jayhwKTsNCisJdGFza191bmxvY2socCwgJmlycWZsYWdz KTsNCiANCiAJcHV0X3Rhc2tfc3RydWN0KHApOw0KIA0KQEAgLTIyNzcsMTIgKzIyODEsMTQgQEAg c3RhdGljIHNzaXplX3QgdGltZXJzbGFja19uc193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29u c3QgY2hhciBfX3VzZXIgKmJ1ZiwNCiAJCXJldHVybiAtRVNSQ0g7DQogDQogCWlmIChwdHJhY2Vf bWF5X2FjY2VzcyhwLCBQVFJBQ0VfTU9ERV9BVFRBQ0hfRlNDUkVEUykpIHsNCi0JCXRhc2tfbG9j ayhwKTsNCisJCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQorDQorCQl0YXNrX2xvY2socCwgJmly cWZsYWdzKTsNCiAJCWlmIChzbGFja19ucyA9PSAwKQ0KIAkJCXAtPnRpbWVyX3NsYWNrX25zID0g cC0+ZGVmYXVsdF90aW1lcl9zbGFja19uczsNCiAJCWVsc2UNCiAJCQlwLT50aW1lcl9zbGFja19u cyA9IHNsYWNrX25zOw0KLQkJdGFza191bmxvY2socCk7DQorCQl0YXNrX3VubG9jayhwLCAmaXJx ZmxhZ3MpOw0KIAl9IGVsc2UNCiAJCWNvdW50ID0gLUVQRVJNOw0KIA0KQEAgLTIzMDIsOSArMjMw OCwxMSBAQCBzdGF0aWMgaW50IHRpbWVyc2xhY2tfbnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKnYpDQogCQlyZXR1cm4gLUVTUkNIOw0KIA0KIAlpZiAocHRyYWNlX21heV9hY2Nlc3Mo cCwgUFRSQUNFX01PREVfQVRUQUNIX0ZTQ1JFRFMpKSB7DQotCQl0YXNrX2xvY2socCk7DQorCQl1 bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KKw0KKwkJdGFza19sb2NrKHAsICZpcnFmbGFncyk7DQog CQlzZXFfcHJpbnRmKG0sICIlbGx1XG4iLCBwLT50aW1lcl9zbGFja19ucyk7DQotCQl0YXNrX3Vu bG9jayhwKTsNCisJCXRhc2tfdW5sb2NrKHAsICZpcnFmbGFncyk7DQogCX0gZWxzZQ0KIAkJZXJy ID0gLUVQRVJNOw0KIA0KZGlmZiAtLWdpdCBhL2ZzL3Byb2MvaW50ZXJuYWwuaCBiL2ZzL3Byb2Mv aW50ZXJuYWwuaA0KaW5kZXggYWEyNzgxMC4uMzNkYTE3MSAxMDA2NDQNCi0tLSBhL2ZzL3Byb2Mv aW50ZXJuYWwuaA0KKysrIGIvZnMvcHJvYy9pbnRlcm5hbC5oDQpAQCAtOTksMTQgKzk5LDE1IEBA IHN0YXRpYyBpbmxpbmUgc3RydWN0IHRhc2tfc3RydWN0ICpnZXRfcHJvY190YXNrKHN0cnVjdCBp bm9kZSAqaW5vZGUpDQogDQogc3RhdGljIGlubGluZSBpbnQgdGFza19kdW1wYWJsZShzdHJ1Y3Qg dGFza19zdHJ1Y3QgKnRhc2spDQogew0KKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIAlpbnQg ZHVtcGFibGUgPSAwOw0KIAlzdHJ1Y3QgbW1fc3RydWN0ICptbTsNCiANCi0JdGFza19sb2NrKHRh c2spOw0KKwl0YXNrX2xvY2sodGFzaywgJmlycWZsYWdzKTsNCiAJbW0gPSB0YXNrLT5tbTsNCiAJ aWYgKG1tKQ0KIAkJZHVtcGFibGUgPSBnZXRfZHVtcGFibGUobW0pOw0KLQl0YXNrX3VubG9jayh0 YXNrKTsNCisJdGFza191bmxvY2sodGFzaywgJmlycWZsYWdzKTsNCiAJaWYgKGR1bXBhYmxlID09 IFNVSURfRFVNUF9VU0VSKQ0KIAkJcmV0dXJuIDE7DQogCXJldHVybiAwOw0KZGlmZiAtLWdpdCBh L2ZzL3Byb2MvcHJvY19uZXQuYyBiL2ZzL3Byb2MvcHJvY19uZXQuYw0KaW5kZXggMzUwOTg0YS4u ZmZiOGM4ZiAxMDA2NDQNCi0tLSBhL2ZzL3Byb2MvcHJvY19uZXQuYw0KKysrIGIvZnMvcHJvYy9w cm9jX25ldC5jDQpAQCAtMTEzLDExICsxMTMsMTMgQEAgc3RhdGljIHN0cnVjdCBuZXQgKmdldF9w cm9jX3Rhc2tfbmV0KHN0cnVjdCBpbm9kZSAqZGlyKQ0KIAlyY3VfcmVhZF9sb2NrKCk7DQogCXRh c2sgPSBwaWRfdGFzayhwcm9jX3BpZChkaXIpLCBQSURUWVBFX1BJRCk7DQogCWlmICh0YXNrICE9 IE5VTEwpIHsNCi0JCXRhc2tfbG9jayh0YXNrKTsNCisJCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7 DQorDQorCQl0YXNrX2xvY2sodGFzaywgJmlycWZsYWdzKTsNCiAJCW5zID0gdGFzay0+bnNwcm94 eTsNCiAJCWlmIChucyAhPSBOVUxMKQ0KIAkJCW5ldCA9IGdldF9uZXQobnMtPm5ldF9ucyk7DQot CQl0YXNrX3VubG9jayh0YXNrKTsNCisJCXRhc2tfdW5sb2NrKHRhc2ssICZpcnFmbGFncyk7DQog CX0NCiAJcmN1X3JlYWRfdW5sb2NrKCk7DQogDQpkaWZmIC0tZ2l0IGEvZnMvcHJvYy90YXNrX21t dS5jIGIvZnMvcHJvYy90YXNrX21tdS5jDQppbmRleCA1NDE1ODM1Li5mODZmM2JiIDEwMDY0NA0K LS0tIGEvZnMvcHJvYy90YXNrX21tdS5jDQorKysgYi9mcy9wcm9jL3Rhc2tfbW11LmMNCkBAIC0x MDcsMTIgKzEwNywxMyBAQCB1bnNpZ25lZCBsb25nIHRhc2tfc3RhdG0oc3RydWN0IG1tX3N0cnVj dCAqbW0sDQogICovDQogc3RhdGljIHZvaWQgaG9sZF90YXNrX21lbXBvbGljeShzdHJ1Y3QgcHJv Y19tYXBzX3ByaXZhdGUgKnByaXYpDQogew0KKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIAlz dHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2sgPSBwcml2LT50YXNrOw0KIA0KLQl0YXNrX2xvY2sodGFz ayk7DQorCXRhc2tfbG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIAlwcml2LT50YXNrX21lbXBvbGlj eSA9IGdldF90YXNrX3BvbGljeSh0YXNrKTsNCiAJbXBvbF9nZXQocHJpdi0+dGFza19tZW1wb2xp Y3kpOw0KLQl0YXNrX3VubG9jayh0YXNrKTsNCisJdGFza191bmxvY2sodGFzaywgJmlycWZsYWdz KTsNCiB9DQogc3RhdGljIHZvaWQgcmVsZWFzZV90YXNrX21lbXBvbGljeShzdHJ1Y3QgcHJvY19t YXBzX3ByaXZhdGUgKnByaXYpDQogew0KZGlmZiAtLWdpdCBhL2ZzL3Byb2NfbmFtZXNwYWNlLmMg Yi9mcy9wcm9jX25hbWVzcGFjZS5jDQppbmRleCAzZjExOTBkLi5hM2NjNWNiIDEwMDY0NA0KLS0t IGEvZnMvcHJvY19uYW1lc3BhY2UuYw0KKysrIGIvZnMvcHJvY19uYW1lc3BhY2UuYw0KQEAgLTI0 MiwyNyArMjQyLDI4IEBAIHN0YXRpYyBpbnQgbW91bnRzX29wZW5fY29tbW9uKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAlzdHJ1Y3QgcHJvY19tb3VudHMgKnA7DQog CXN0cnVjdCBzZXFfZmlsZSAqbTsNCiAJaW50IHJldCA9IC1FSU5WQUw7DQorCXVuc2lnbmVkIGxv bmcgaXJxZmxhZ3M7DQogDQogCWlmICghdGFzaykNCiAJCWdvdG8gZXJyOw0KIA0KLQl0YXNrX2xv Y2sodGFzayk7DQorCXRhc2tfbG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIAluc3AgPSB0YXNrLT5u c3Byb3h5Ow0KIAlpZiAoIW5zcCB8fCAhbnNwLT5tbnRfbnMpIHsNCi0JCXRhc2tfdW5sb2NrKHRh c2spOw0KKwkJdGFza191bmxvY2sodGFzaywgJmlycWZsYWdzKTsNCiAJCXB1dF90YXNrX3N0cnVj dCh0YXNrKTsNCiAJCWdvdG8gZXJyOw0KIAl9DQogCW5zID0gbnNwLT5tbnRfbnM7DQogCWdldF9t bnRfbnMobnMpOw0KIAlpZiAoIXRhc2stPmZzKSB7DQotCQl0YXNrX3VubG9jayh0YXNrKTsNCisJ CXRhc2tfdW5sb2NrKHRhc2ssICZpcnFmbGFncyk7DQogCQlwdXRfdGFza19zdHJ1Y3QodGFzayk7 DQogCQlyZXQgPSAtRU5PRU5UOw0KIAkJZ290byBlcnJfcHV0X25zOw0KIAl9DQogCWdldF9mc19y b290KHRhc2stPmZzLCAmcm9vdCk7DQotCXRhc2tfdW5sb2NrKHRhc2spOw0KKwl0YXNrX3VubG9j ayh0YXNrLCAmaXJxZmxhZ3MpOw0KIAlwdXRfdGFza19zdHJ1Y3QodGFzayk7DQogDQogCXJldCA9 IHNlcV9vcGVuX3ByaXZhdGUoZmlsZSwgJm1vdW50c19vcCwgc2l6ZW9mKHN0cnVjdCBwcm9jX21v dW50cykpOw0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY3B1c2V0LmggYi9pbmNsdWRlL2xp bnV4L2NwdXNldC5oDQppbmRleCA4NWE4NjhjLi5lZDA5MWJhIDEwMDY0NA0KLS0tIGEvaW5jbHVk ZS9saW51eC9jcHVzZXQuaA0KKysrIGIvaW5jbHVkZS9saW51eC9jcHVzZXQuaA0KQEAgLTEyNiwx NSArMTI2LDEzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCByZWFkX21lbXNfYWxsb3dlZF9yZXRyeSh1 bnNpZ25lZCBpbnQgc2VxKQ0KIA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfbWVtc19hbGxvd2Vk KG5vZGVtYXNrX3Qgbm9kZW1hc2spDQogew0KLQl1bnNpZ25lZCBsb25nIGZsYWdzOw0KKwl1bnNp Z25lZCBsb25nIGlycWZsYWdzOw0KIA0KLQl0YXNrX2xvY2soY3VycmVudCk7DQotCWxvY2FsX2ly cV9zYXZlKGZsYWdzKTsNCisJdGFza19sb2NrKGN1cnJlbnQsICZpcnFmbGFncyk7DQogCXdyaXRl X3NlcWNvdW50X2JlZ2luKCZjdXJyZW50LT5tZW1zX2FsbG93ZWRfc2VxKTsNCiAJY3VycmVudC0+ bWVtc19hbGxvd2VkID0gbm9kZW1hc2s7DQogCXdyaXRlX3NlcWNvdW50X2VuZCgmY3VycmVudC0+ bWVtc19hbGxvd2VkX3NlcSk7DQotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsNCi0JdGFza191 bmxvY2soY3VycmVudCk7DQorCXRhc2tfdW5sb2NrKGN1cnJlbnQsICZpcnFmbGFncyk7DQogfQ0K IA0KICNlbHNlIC8qICFDT05GSUdfQ1BVU0VUUyAqLw0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvbnNwcm94eS5oIGIvaW5jbHVkZS9saW51eC9uc3Byb3h5LmgNCmluZGV4IGFjMGQ2NWIuLjMy YjgwZGMgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L25zcHJveHkuaA0KKysrIGIvaW5jbHVk ZS9saW51eC9uc3Byb3h5LmgNCkBAIC00OSw3ICs0OSw5IEBAIGV4dGVybiBzdHJ1Y3QgbnNwcm94 eSBpbml0X25zcHJveHk7DQogICogICAgIHByZWNhdXRpb25zIHNob3VsZCBiZSB0YWtlbiAtIGp1 c3QgZGVyZWZlcmVuY2UgdGhlIHBvaW50ZXJzDQogICoNCiAgKiAgMy4gdGhlIGFjY2VzcyB0byBv dGhlciB0YXNrIG5hbWVzcGFjZXMgaXMgcGVyZm9ybWVkIGxpa2UgdGhpcw0KLSAqICAgICB0YXNr X2xvY2sodGFzayk7DQorICogICAgIHVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQorICoNCisgKiAg ICAgdGFza19sb2NrKHRhc2ssICZpcnFmbGFncyk7DQogICogICAgIG5zcHJveHkgPSB0YXNrLT5u c3Byb3h5Ow0KICAqICAgICBpZiAobnNwcm94eSAhPSBOVUxMKSB7DQogICogICAgICAgICAgICAg LyAqDQpAQCAtNjAsNyArNjIsNyBAQCBleHRlcm4gc3RydWN0IG5zcHJveHkgaW5pdF9uc3Byb3h5 Ow0KICAqICAgICAgICAgKiBOVUxMIHRhc2stPm5zcHJveHkgbWVhbnMgdGhhdCB0aGlzIHRhc2sg aXMNCiAgKiAgICAgICAgICogYWxtb3N0IGRlYWQgKHpvbWJpZSkNCiAgKiAgICAgICAgICogLw0K LSAqICAgICB0YXNrX3VubG9jayh0YXNrKTsNCisgKiAgICAgdGFza191bmxvY2sodGFzaywgJmly cWZsYWdzKTsNCiAgKg0KICAqLw0KIA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvb29tLmgg Yi9pbmNsdWRlL2xpbnV4L29vbS5oDQppbmRleCA2MjhhNDMyLi44MDI1MWE4IDEwMDY0NA0KLS0t IGEvaW5jbHVkZS9saW51eC9vb20uaA0KKysrIGIvaW5jbHVkZS9saW51eC9vb20uaA0KQEAgLTk4 LDcgKzk4LDggQEAgZXh0ZXJuIGJvb2wgb29tX2tpbGxlcl9kaXNhYmxlZDsNCiBleHRlcm4gYm9v bCBvb21fa2lsbGVyX2Rpc2FibGUodm9pZCk7DQogZXh0ZXJuIHZvaWQgb29tX2tpbGxlcl9lbmFi bGUodm9pZCk7DQogDQotZXh0ZXJuIHN0cnVjdCB0YXNrX3N0cnVjdCAqZmluZF9sb2NrX3Rhc2tf bW0oc3RydWN0IHRhc2tfc3RydWN0ICpwKTsNCitleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICpm aW5kX2xvY2tfdGFza19tbShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsDQorCQkJCQkJCQl1bnNpZ25l ZCBsb25nICppcnFmbGFncyk7DQogDQogc3RhdGljIGlubGluZSBib29sIHRhc2tfd2lsbF9mcmVl X21lbShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spDQogew0KZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvc2NoZWQuaCBiL2luY2x1ZGUvbGludXgvc2NoZWQuaA0KaW5kZXggNTJjNDg0Ny4uOWU2 NDNmZCAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvc2NoZWQuaA0KKysrIGIvaW5jbHVkZS9s aW51eC9zY2hlZC5oDQpAQCAtMjc2OSwxNCArMjc2OSwxNCBAQCBzdGF0aWMgaW5saW5lIGludCB0 aHJlYWRfZ3JvdXBfZW1wdHkoc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KICAqIEl0IG11c3Qgbm90 IGJlIG5lc3RlZCB3aXRoIHdyaXRlX2xvY2tfaXJxKCZ0YXNrbGlzdF9sb2NrKSwNCiAgKiBuZWl0 aGVyIGluc2lkZSBub3Igb3V0c2lkZS4NCiAgKi8NCi1zdGF0aWMgaW5saW5lIHZvaWQgdGFza19s b2NrKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkNCitzdGF0aWMgaW5saW5lIHZvaWQgdGFza19sb2Nr KHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgdW5zaWduZWQgbG9uZyAqaXJxZmxhZ3MpDQogew0KLQlz cGluX2xvY2soJnAtPmFsbG9jX2xvY2spOw0KKwlzcGluX2xvY2tfaXJxc2F2ZSgmcC0+YWxsb2Nf bG9jaywgKmlycWZsYWdzKTsNCiB9DQogDQotc3RhdGljIGlubGluZSB2b2lkIHRhc2tfdW5sb2Nr KHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkNCitzdGF0aWMgaW5saW5lIHZvaWQgdGFza191bmxvY2so c3RydWN0IHRhc2tfc3RydWN0ICpwLCB1bnNpZ25lZCBsb25nICppcnFmbGFncykNCiB7DQotCXNw aW5fdW5sb2NrKCZwLT5hbGxvY19sb2NrKTsNCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcC0+ YWxsb2NfbG9jaywgKmlycWZsYWdzKTsNCiB9DQogDQogZXh0ZXJuIHN0cnVjdCBzaWdoYW5kX3N0 cnVjdCAqX19sb2NrX3Rhc2tfc2lnaGFuZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywNCmRpZmYg LS1naXQgYS9pcGMvbmFtZXNwYWNlLmMgYi9pcGMvbmFtZXNwYWNlLmMNCmluZGV4IDA2OGNhZjEu LjQ5OTQyOTkgMTAwNjQ0DQotLS0gYS9pcGMvbmFtZXNwYWNlLmMNCisrKyBiL2lwYy9uYW1lc3Bh Y2UuYw0KQEAgLTEzNSwxNCArMTM1LDE1IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGlwY19uYW1l c3BhY2UgKnRvX2lwY19ucyhzdHJ1Y3QgbnNfY29tbW9uICpucykNCiANCiBzdGF0aWMgc3RydWN0 IG5zX2NvbW1vbiAqaXBjbnNfZ2V0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykNCiB7DQorCXVu c2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQogCXN0cnVjdCBpcGNfbmFtZXNwYWNlICpucyA9IE5VTEw7 DQogCXN0cnVjdCBuc3Byb3h5ICpuc3Byb3h5Ow0KIA0KLQl0YXNrX2xvY2sodGFzayk7DQorCXRh c2tfbG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIAluc3Byb3h5ID0gdGFzay0+bnNwcm94eTsNCiAJ aWYgKG5zcHJveHkpDQogCQlucyA9IGdldF9pcGNfbnMobnNwcm94eS0+aXBjX25zKTsNCi0JdGFz a191bmxvY2sodGFzayk7DQorCXRhc2tfdW5sb2NrKHRhc2ssICZpcnFmbGFncyk7DQogDQogCXJl dHVybiBucyA/ICZucy0+bnMgOiBOVUxMOw0KIH0NCmRpZmYgLS1naXQgYS9rZXJuZWwvY2dyb3Vw LmMgYi9rZXJuZWwvY2dyb3VwLmMNCmluZGV4IDg2Y2I1YzYuLjY5M2I0NzQgMTAwNjQ0DQotLS0g YS9rZXJuZWwvY2dyb3VwLmMNCisrKyBiL2tlcm5lbC9jZ3JvdXAuYw0KQEAgLTYzNTQsMTQgKzYz NTQsMTUgQEAgc3RhdGljIHN0cnVjdCBuc19jb21tb24gKmNncm91cG5zX2dldChzdHJ1Y3QgdGFz a19zdHJ1Y3QgKnRhc2spDQogew0KIAlzdHJ1Y3QgY2dyb3VwX25hbWVzcGFjZSAqbnMgPSBOVUxM Ow0KIAlzdHJ1Y3QgbnNwcm94eSAqbnNwcm94eTsNCisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsN CiANCi0JdGFza19sb2NrKHRhc2spOw0KKwl0YXNrX2xvY2sodGFzaywgJmlycWZsYWdzKTsNCiAJ bnNwcm94eSA9IHRhc2stPm5zcHJveHk7DQogCWlmIChuc3Byb3h5KSB7DQogCQlucyA9IG5zcHJv eHktPmNncm91cF9uczsNCiAJCWdldF9jZ3JvdXBfbnMobnMpOw0KIAl9DQotCXRhc2tfdW5sb2Nr KHRhc2spOw0KKwl0YXNrX3VubG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIA0KIAlyZXR1cm4gbnMg PyAmbnMtPm5zIDogTlVMTDsNCiB9DQpkaWZmIC0tZ2l0IGEva2VybmVsL2NwdS5jIGIva2VybmVs L2NwdS5jDQppbmRleCAzZTNmNmU0Li4wMTA5Mjk5IDEwMDY0NA0KLS0tIGEva2VybmVsL2NwdS5j DQorKysgYi9rZXJuZWwvY3B1LmMNCkBAIC02MTUsMTYgKzYxNSwxNyBAQCB2b2lkIGNsZWFyX3Rh c2tzX21tX2NwdW1hc2soaW50IGNwdSkNCiAJcmN1X3JlYWRfbG9jaygpOw0KIAlmb3JfZWFjaF9w cm9jZXNzKHApIHsNCiAJCXN0cnVjdCB0YXNrX3N0cnVjdCAqdDsNCisJCXVuc2lnbmVkIGxvbmcg aXJxZmxhZ3M7DQogDQogCQkvKg0KIAkJICogTWFpbiB0aHJlYWQgbWlnaHQgZXhpdCwgYnV0IG90 aGVyIHRocmVhZHMgbWF5IHN0aWxsIGhhdmUNCiAJCSAqIGEgdmFsaWQgbW0uIEZpbmQgb25lLg0K IAkJICovDQotCQl0ID0gZmluZF9sb2NrX3Rhc2tfbW0ocCk7DQorCQl0ID0gZmluZF9sb2NrX3Rh c2tfbW0ocCwgJmlycWZsYWdzKTsNCiAJCWlmICghdCkNCiAJCQljb250aW51ZTsNCiAJCWNwdW1h c2tfY2xlYXJfY3B1KGNwdSwgbW1fY3B1bWFzayh0LT5tbSkpOw0KLQkJdGFza191bmxvY2sodCk7 DQorCQl0YXNrX3VubG9jayh0LCAmaXJxZmxhZ3MpOw0KIAl9DQogCXJjdV9yZWFkX3VubG9jaygp Ow0KIH0NCmRpZmYgLS1naXQgYS9rZXJuZWwvY3B1c2V0LmMgYi9rZXJuZWwvY3B1c2V0LmMNCmlu ZGV4IDE5MDI5NTZiLi44YmQ1NmNjIDEwMDY0NA0KLS0tIGEva2VybmVsL2NwdXNldC5jDQorKysg Yi9rZXJuZWwvY3B1c2V0LmMNCkBAIC0xMDMzLDYgKzEwMzMsNyBAQCBzdGF0aWMgdm9pZCBjcHVz ZXRfY2hhbmdlX3Rhc2tfbm9kZW1hc2soc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssDQogCQkJCQlu b2RlbWFza190ICpuZXdtZW1zKQ0KIHsNCiAJYm9vbCBuZWVkX2xvb3A7DQorCXVuc2lnbmVkIGxv bmcgaXJxZmxhZ3M7DQogDQogCS8qDQogCSAqIEFsbG93IHRhc2tzIHRoYXQgaGF2ZSBhY2Nlc3Mg dG8gbWVtb3J5IHJlc2VydmVzIGJlY2F1c2UgdGhleSBoYXZlDQpAQCAtMTA0Myw3ICsxMDQ0LDcg QEAgc3RhdGljIHZvaWQgY3B1c2V0X2NoYW5nZV90YXNrX25vZGVtYXNrKHN0cnVjdCB0YXNrX3N0 cnVjdCAqdHNrLA0KIAlpZiAoY3VycmVudC0+ZmxhZ3MgJiBQRl9FWElUSU5HKSAvKiBMZXQgZHlp bmcgdGFzayBoYXZlIG1lbW9yeSAqLw0KIAkJcmV0dXJuOw0KIA0KLQl0YXNrX2xvY2sodHNrKTsN CisJdGFza19sb2NrKHRzaywgJmlycWZsYWdzKTsNCiAJLyoNCiAJICogRGV0ZXJtaW5lIGlmIGEg bG9vcCBpcyBuZWNlc3NhcnkgaWYgYW5vdGhlciB0aHJlYWQgaXMgZG9pbmcNCiAJICogcmVhZF9t ZW1zX2FsbG93ZWRfYmVnaW4oKS4gIElmIGF0IGxlYXN0IG9uZSBub2RlIHJlbWFpbnMgdW5jaGFu Z2VkIGFuZA0KQEAgLTEwNTQsNyArMTA1NSw2IEBAIHN0YXRpYyB2b2lkIGNwdXNldF9jaGFuZ2Vf dGFza19ub2RlbWFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywNCiAJCQkhbm9kZXNfaW50ZXJz ZWN0cygqbmV3bWVtcywgdHNrLT5tZW1zX2FsbG93ZWQpOw0KIA0KIAlpZiAobmVlZF9sb29wKSB7 DQotCQlsb2NhbF9pcnFfZGlzYWJsZSgpOw0KIAkJd3JpdGVfc2VxY291bnRfYmVnaW4oJnRzay0+ bWVtc19hbGxvd2VkX3NlcSk7DQogCX0NCiANCkBAIC0xMDY2LDEwICsxMDY2LDkgQEAgc3RhdGlj IHZvaWQgY3B1c2V0X2NoYW5nZV90YXNrX25vZGVtYXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNr LA0KIA0KIAlpZiAobmVlZF9sb29wKSB7DQogCQl3cml0ZV9zZXFjb3VudF9lbmQoJnRzay0+bWVt c19hbGxvd2VkX3NlcSk7DQotCQlsb2NhbF9pcnFfZW5hYmxlKCk7DQogCX0NCiANCi0JdGFza191 bmxvY2sodHNrKTsNCisJdGFza191bmxvY2sodHNrLCAmaXJxZmxhZ3MpOw0KIH0NCiANCiBzdGF0 aWMgdm9pZCAqY3B1c2V0X2JlaW5nX3JlYm91bmQ7DQpkaWZmIC0tZ2l0IGEva2VybmVsL2V4aXQu YyBiL2tlcm5lbC9leGl0LmMNCmluZGV4IDc5YzdlMzguLmE0ZGU1ZWQgMTAwNjQ0DQotLS0gYS9r ZXJuZWwvZXhpdC5jDQorKysgYi9rZXJuZWwvZXhpdC5jDQpAQCAtMjk4LDYgKzI5OCw3IEBAIGtp bGxfb3JwaGFuZWRfcGdycChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IHRhc2tfc3Ry dWN0ICpwYXJlbnQpDQogdm9pZCBtbV91cGRhdGVfbmV4dF9vd25lcihzdHJ1Y3QgbW1fc3RydWN0 ICptbSkNCiB7DQogCXN0cnVjdCB0YXNrX3N0cnVjdCAqYywgKmcsICpwID0gY3VycmVudDsNCisJ dW5zaWduZWQgbG9uZyBpcnFmbGFnczsNCiANCiByZXRyeToNCiAJLyoNCkBAIC0zNjIsMTkgKzM2 MywxOSBAQCBhc3NpZ25fbmV3X293bmVyOg0KIAkgKiBUaGUgdGFza19sb2NrIHByb3RlY3RzIGMt Pm1tIGZyb20gY2hhbmdpbmcuDQogCSAqIFdlIGFsd2F5cyB3YW50IG1tLT5vd25lci0+bW0gPT0g bW0NCiAJICovDQotCXRhc2tfbG9jayhjKTsNCisJdGFza19sb2NrKGMsICZpcnFmbGFncyk7DQog CS8qDQogCSAqIERlbGF5IHJlYWRfdW5sb2NrKCkgdGlsbCB3ZSBoYXZlIHRoZSB0YXNrX2xvY2so KQ0KIAkgKiB0byBlbnN1cmUgdGhhdCBjIGRvZXMgbm90IHNsaXAgYXdheSB1bmRlcm5lYXRoIHVz DQogCSAqLw0KIAlyZWFkX3VubG9jaygmdGFza2xpc3RfbG9jayk7DQogCWlmIChjLT5tbSAhPSBt bSkgew0KLQkJdGFza191bmxvY2soYyk7DQorCQl0YXNrX3VubG9jayhjLCAmaXJxZmxhZ3MpOw0K IAkJcHV0X3Rhc2tfc3RydWN0KGMpOw0KIAkJZ290byByZXRyeTsNCiAJfQ0KIAltbS0+b3duZXIg PSBjOw0KLQl0YXNrX3VubG9jayhjKTsNCisJdGFza191bmxvY2soYywgJmlycWZsYWdzKTsNCiAJ cHV0X3Rhc2tfc3RydWN0KGMpOw0KIH0NCiAjZW5kaWYgLyogQ09ORklHX01FTUNHICovDQpAQCAt Mzg3LDYgKzM4OCw3IEBAIHN0YXRpYyB2b2lkIGV4aXRfbW0oc3RydWN0IHRhc2tfc3RydWN0ICp0 c2spDQogew0KIAlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IHRzay0+bW07DQogCXN0cnVjdCBjb3Jl X3N0YXRlICpjb3JlX3N0YXRlOw0KKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIA0KIAltbV9y ZWxlYXNlKHRzaywgbW0pOw0KIAlpZiAoIW1tKQ0KQEAgLTQyNywxMSArNDI5LDExIEBAIHN0YXRp YyB2b2lkIGV4aXRfbW0oc3RydWN0IHRhc2tfc3RydWN0ICp0c2spDQogCWF0b21pY19pbmMoJm1t LT5tbV9jb3VudCk7DQogCUJVR19PTihtbSAhPSB0c2stPmFjdGl2ZV9tbSk7DQogCS8qIG1vcmUg YSBtZW1vcnkgYmFycmllciB0aGFuIGEgcmVhbCBsb2NrICovDQotCXRhc2tfbG9jayh0c2spOw0K Kwl0YXNrX2xvY2sodHNrLCAmaXJxZmxhZ3MpOw0KIAl0c2stPm1tID0gTlVMTDsNCiAJdXBfcmVh ZCgmbW0tPm1tYXBfc2VtKTsNCiAJZW50ZXJfbGF6eV90bGIobW0sIGN1cnJlbnQpOw0KLQl0YXNr X3VubG9jayh0c2spOw0KKwl0YXNrX3VubG9jayh0c2ssICZpcnFmbGFncyk7DQogCW1tX3VwZGF0 ZV9uZXh0X293bmVyKG1tKTsNCiAJbW1wdXQobW0pOw0KIAlpZiAodGVzdF90aHJlYWRfZmxhZyhU SUZfTUVNRElFKSkNCkBAIC02NTQsNiArNjU2LDkgQEAgdm9pZCBkb19leGl0KGxvbmcgY29kZSkN CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSBjdXJyZW50Ow0KIAlpbnQgZ3JvdXBfZGVhZDsN CiAJVEFTS1NfUkNVKGludCB0YXNrc19yY3VfaSk7DQorI2lmZGVmIENPTkZJR19OVU1BDQorCXVu c2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQorI2VuZGlmDQogDQogCXByb2ZpbGVfdGFza19leGl0KHRz ayk7DQogCWtjb3ZfdGFza19leGl0KHRzayk7DQpAQCAtNzY5LDEwICs3NzQsMTAgQEAgdm9pZCBk b19leGl0KGxvbmcgY29kZSkNCiAJZXhpdF9ub3RpZnkodHNrLCBncm91cF9kZWFkKTsNCiAJcHJv Y19leGl0X2Nvbm5lY3Rvcih0c2spOw0KICNpZmRlZiBDT05GSUdfTlVNQQ0KLQl0YXNrX2xvY2so dHNrKTsNCisJdGFza19sb2NrKHRzaywgJmlycWZsYWdzKTsNCiAJbXBvbF9wdXQodHNrLT5tZW1w b2xpY3kpOw0KIAl0c2stPm1lbXBvbGljeSA9IE5VTEw7DQotCXRhc2tfdW5sb2NrKHRzayk7DQor CXRhc2tfdW5sb2NrKHRzaywgJmlycWZsYWdzKTsNCiAjZW5kaWYNCiAjaWZkZWYgQ09ORklHX0ZV VEVYDQogCWlmICh1bmxpa2VseShjdXJyZW50LT5waV9zdGF0ZV9jYWNoZSkpDQpkaWZmIC0tZ2l0 IGEva2VybmVsL2ZvcmsuYyBiL2tlcm5lbC9mb3JrLmMNCmluZGV4IGQyNzdlODMuLjM4OGJhM2Yg MTAwNjQ0DQotLS0gYS9rZXJuZWwvZm9yay5jDQorKysgYi9rZXJuZWwvZm9yay5jDQpAQCAtNzg1 LDggKzc4NSw5IEBAIEVYUE9SVF9TWU1CT0woZ2V0X21tX2V4ZV9maWxlKTsNCiBzdHJ1Y3QgbW1f c3RydWN0ICpnZXRfdGFza19tbShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spDQogew0KIAlzdHJ1 Y3QgbW1fc3RydWN0ICptbTsNCisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsNCiANCi0JdGFza19s b2NrKHRhc2spOw0KKwl0YXNrX2xvY2sodGFzaywgJmlycWZsYWdzKTsNCiAJbW0gPSB0YXNrLT5t bTsNCiAJaWYgKG1tKSB7DQogCQlpZiAodGFzay0+ZmxhZ3MgJiBQRl9LVEhSRUFEKQ0KQEAgLTc5 NCw3ICs3OTUsNyBAQCBzdHJ1Y3QgbW1fc3RydWN0ICpnZXRfdGFza19tbShzdHJ1Y3QgdGFza19z dHJ1Y3QgKnRhc2spDQogCQllbHNlDQogCQkJYXRvbWljX2luYygmbW0tPm1tX3VzZXJzKTsNCiAJ fQ0KLQl0YXNrX3VubG9jayh0YXNrKTsNCisJdGFza191bmxvY2sodGFzaywgJmlycWZsYWdzKTsN CiAJcmV0dXJuIG1tOw0KIH0NCiBFWFBPUlRfU1lNQk9MX0dQTChnZXRfdGFza19tbSk7DQpAQCAt ODIyLDE0ICs4MjMsMTUgQEAgc3RydWN0IG1tX3N0cnVjdCAqbW1fYWNjZXNzKHN0cnVjdCB0YXNr X3N0cnVjdCAqdGFzaywgdW5zaWduZWQgaW50IG1vZGUpDQogc3RhdGljIHZvaWQgY29tcGxldGVf dmZvcmtfZG9uZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykNCiB7DQogCXN0cnVjdCBjb21wbGV0 aW9uICp2Zm9yazsNCisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsNCiANCi0JdGFza19sb2NrKHRz ayk7DQorCXRhc2tfbG9jayh0c2ssICZpcnFmbGFncyk7DQogCXZmb3JrID0gdHNrLT52Zm9ya19k b25lOw0KIAlpZiAobGlrZWx5KHZmb3JrKSkgew0KIAkJdHNrLT52Zm9ya19kb25lID0gTlVMTDsN CiAJCWNvbXBsZXRlKHZmb3JrKTsNCiAJfQ0KLQl0YXNrX3VubG9jayh0c2spOw0KKwl0YXNrX3Vu bG9jayh0c2ssICZpcnFmbGFncyk7DQogfQ0KIA0KIHN0YXRpYyBpbnQgd2FpdF9mb3JfdmZvcmtf ZG9uZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLA0KQEAgLTg0Miw5ICs4NDQsMTEgQEAgc3Rh dGljIGludCB3YWl0X2Zvcl92Zm9ya19kb25lKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsDQog CWZyZWV6ZXJfY291bnQoKTsNCiANCiAJaWYgKGtpbGxlZCkgew0KLQkJdGFza19sb2NrKGNoaWxk KTsNCisJCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQorDQorCQl0YXNrX2xvY2soY2hpbGQsICZp cnFmbGFncyk7DQogCQljaGlsZC0+dmZvcmtfZG9uZSA9IE5VTEw7DQotCQl0YXNrX3VubG9jayhj aGlsZCk7DQorCQl0YXNrX3VubG9jayhjaGlsZCwgJmlycWZsYWdzKTsNCiAJfQ0KIA0KIAlwdXRf dGFza19zdHJ1Y3QoY2hpbGQpOw0KQEAgLTExMjYsNiArMTEzMCw3IEBAIHN0YXRpYyB2b2lkIHBv c2l4X2NwdV90aW1lcnNfaW5pdF9ncm91cChzdHJ1Y3Qgc2lnbmFsX3N0cnVjdCAqc2lnKQ0KIHN0 YXRpYyBpbnQgY29weV9zaWduYWwodW5zaWduZWQgbG9uZyBjbG9uZV9mbGFncywgc3RydWN0IHRh c2tfc3RydWN0ICp0c2spDQogew0KIAlzdHJ1Y3Qgc2lnbmFsX3N0cnVjdCAqc2lnOw0KKwl1bnNp Z25lZCBsb25nIGlycWZsYWdzOw0KIA0KIAlpZiAoY2xvbmVfZmxhZ3MgJiBDTE9ORV9USFJFQUQp DQogCQlyZXR1cm4gMDsNCkBAIC0xMTUzLDkgKzExNTgsOSBAQCBzdGF0aWMgaW50IGNvcHlfc2ln bmFsKHVuc2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MsIHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQ0K IAlocnRpbWVyX2luaXQoJnNpZy0+cmVhbF90aW1lciwgQ0xPQ0tfTU9OT1RPTklDLCBIUlRJTUVS X01PREVfUkVMKTsNCiAJc2lnLT5yZWFsX3RpbWVyLmZ1bmN0aW9uID0gaXRfcmVhbF9mbjsNCiAN Ci0JdGFza19sb2NrKGN1cnJlbnQtPmdyb3VwX2xlYWRlcik7DQorCXRhc2tfbG9jayhjdXJyZW50 LT5ncm91cF9sZWFkZXIsICZpcnFmbGFncyk7DQogCW1lbWNweShzaWctPnJsaW0sIGN1cnJlbnQt PnNpZ25hbC0+cmxpbSwgc2l6ZW9mIHNpZy0+cmxpbSk7DQotCXRhc2tfdW5sb2NrKGN1cnJlbnQt Pmdyb3VwX2xlYWRlcik7DQorCXRhc2tfdW5sb2NrKGN1cnJlbnQtPmdyb3VwX2xlYWRlciwgJmly cWZsYWdzKTsNCiANCiAJcG9zaXhfY3B1X3RpbWVyc19pbml0X2dyb3VwKHNpZyk7DQogDQpAQCAt MjAyMiw2ICsyMDI3LDggQEAgU1lTQ0FMTF9ERUZJTkUxKHVuc2hhcmUsIHVuc2lnbmVkIGxvbmcs IHVuc2hhcmVfZmxhZ3MpDQogCQlnb3RvIGJhZF91bnNoYXJlX2NsZWFudXBfY3JlZDsNCiANCiAJ aWYgKG5ld19mcyB8fCBuZXdfZmQgfHwgZG9fc3lzdnNlbSB8fCBuZXdfY3JlZCB8fCBuZXdfbnNw cm94eSkgew0KKwkJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsNCisNCiAJCWlmIChkb19zeXN2c2Vt KSB7DQogCQkJLyoNCiAJCQkgKiBDTE9ORV9TWVNWU0VNIGlzIGVxdWl2YWxlbnQgdG8gc3lzX2V4 aXQoKS4NCkBAIC0yMDM3LDcgKzIwNDQsNyBAQCBTWVNDQUxMX0RFRklORTEodW5zaGFyZSwgdW5z aWduZWQgbG9uZywgdW5zaGFyZV9mbGFncykNCiAJCWlmIChuZXdfbnNwcm94eSkNCiAJCQlzd2l0 Y2hfdGFza19uYW1lc3BhY2VzKGN1cnJlbnQsIG5ld19uc3Byb3h5KTsNCiANCi0JCXRhc2tfbG9j ayhjdXJyZW50KTsNCisJCXRhc2tfbG9jayhjdXJyZW50LCAmaXJxZmxhZ3MpOw0KIA0KIAkJaWYg KG5ld19mcykgew0KIAkJCWZzID0gY3VycmVudC0+ZnM7DQpAQCAtMjA1Niw3ICsyMDYzLDcgQEAg U1lTQ0FMTF9ERUZJTkUxKHVuc2hhcmUsIHVuc2lnbmVkIGxvbmcsIHVuc2hhcmVfZmxhZ3MpDQog CQkJbmV3X2ZkID0gZmQ7DQogCQl9DQogDQotCQl0YXNrX3VubG9jayhjdXJyZW50KTsNCisJCXRh c2tfdW5sb2NrKGN1cnJlbnQsICZpcnFmbGFncyk7DQogDQogCQlpZiAobmV3X2NyZWQpIHsNCiAJ CQkvKiBJbnN0YWxsIHRoZSBuZXcgdXNlciBuYW1lc3BhY2UgKi8NCkBAIC0yMDkxLDYgKzIwOTgs NyBAQCBpbnQgdW5zaGFyZV9maWxlcyhzdHJ1Y3QgZmlsZXNfc3RydWN0ICoqZGlzcGxhY2VkKQ0K IAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2sgPSBjdXJyZW50Ow0KIAlzdHJ1Y3QgZmlsZXNfc3Ry dWN0ICpjb3B5ID0gTlVMTDsNCiAJaW50IGVycm9yOw0KKwl1bnNpZ25lZCBsb25nIGlycWZsYWdz Ow0KIA0KIAllcnJvciA9IHVuc2hhcmVfZmQoQ0xPTkVfRklMRVMsICZjb3B5KTsNCiAJaWYgKGVy cm9yIHx8ICFjb3B5KSB7DQpAQCAtMjA5OCw5ICsyMTA2LDkgQEAgaW50IHVuc2hhcmVfZmlsZXMo c3RydWN0IGZpbGVzX3N0cnVjdCAqKmRpc3BsYWNlZCkNCiAJCXJldHVybiBlcnJvcjsNCiAJfQ0K IAkqZGlzcGxhY2VkID0gdGFzay0+ZmlsZXM7DQotCXRhc2tfbG9jayh0YXNrKTsNCisJdGFza19s b2NrKHRhc2ssICZpcnFmbGFncyk7DQogCXRhc2stPmZpbGVzID0gY29weTsNCi0JdGFza191bmxv Y2sodGFzayk7DQorCXRhc2tfdW5sb2NrKHRhc2ssICZpcnFmbGFncyk7DQogCXJldHVybiAwOw0K IH0NCiANCmRpZmYgLS1naXQgYS9rZXJuZWwva2NtcC5jIGIva2VybmVsL2tjbXAuYw0KaW5kZXgg M2E0N2ZhOS4uZTViNTQxMiAxMDA2NDQNCi0tLSBhL2tlcm5lbC9rY21wLmMNCisrKyBiL2tlcm5l bC9rY21wLmMNCkBAIC01NywxNSArNTcsMTYgQEAgc3RhdGljIHN0cnVjdCBmaWxlICoNCiBnZXRf ZmlsZV9yYXdfcHRyKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgdW5zaWduZWQgaW50IGlkeCkN CiB7DQogCXN0cnVjdCBmaWxlICpmaWxlID0gTlVMTDsNCisJdW5zaWduZWQgbG9uZyBpcnFmbGFn czsNCiANCi0JdGFza19sb2NrKHRhc2spOw0KKwl0YXNrX2xvY2sodGFzaywgJmlycWZsYWdzKTsN CiAJcmN1X3JlYWRfbG9jaygpOw0KIA0KIAlpZiAodGFzay0+ZmlsZXMpDQogCQlmaWxlID0gZmNo ZWNrX2ZpbGVzKHRhc2stPmZpbGVzLCBpZHgpOw0KIA0KIAlyY3VfcmVhZF91bmxvY2soKTsNCi0J dGFza191bmxvY2sodGFzayk7DQorCXRhc2tfdW5sb2NrKHRhc2ssICZpcnFmbGFncyk7DQogDQog CXJldHVybiBmaWxlOw0KIH0NCmRpZmYgLS1naXQgYS9rZXJuZWwvbnNwcm94eS5jIGIva2VybmVs L25zcHJveHkuYw0KaW5kZXggNzgyMTAyZS4uNjVmNDA3ZCAxMDA2NDQNCi0tLSBhL2tlcm5lbC9u c3Byb3h5LmMNCisrKyBiL2tlcm5lbC9uc3Byb3h5LmMNCkBAIC0yMTYsMTMgKzIxNiwxNCBAQCBv dXQ6DQogdm9pZCBzd2l0Y2hfdGFza19uYW1lc3BhY2VzKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwg c3RydWN0IG5zcHJveHkgKm5ldykNCiB7DQogCXN0cnVjdCBuc3Byb3h5ICpuczsNCisJdW5zaWdu ZWQgbG9uZyBpcnFmbGFnczsNCiANCiAJbWlnaHRfc2xlZXAoKTsNCiANCi0JdGFza19sb2NrKHAp Ow0KKwl0YXNrX2xvY2socCwgJmlycWZsYWdzKTsNCiAJbnMgPSBwLT5uc3Byb3h5Ow0KIAlwLT5u c3Byb3h5ID0gbmV3Ow0KLQl0YXNrX3VubG9jayhwKTsNCisJdGFza191bmxvY2socCwgJmlycWZs YWdzKTsNCiANCiAJaWYgKG5zICYmIGF0b21pY19kZWNfYW5kX3Rlc3QoJm5zLT5jb3VudCkpDQog CQlmcmVlX25zcHJveHkobnMpOw0KZGlmZiAtLWdpdCBhL2tlcm5lbC9wdHJhY2UuYyBiL2tlcm5l bC9wdHJhY2UuYw0KaW5kZXggZDQ5YmZhMS4uMmFiYTE0MiAxMDA2NDQNCi0tLSBhL2tlcm5lbC9w dHJhY2UuYw0KKysrIGIva2VybmVsL3B0cmFjZS5jDQpAQCAtMjg2LDkgKzI4NiwxMSBAQCBvazoN CiBib29sIHB0cmFjZV9tYXlfYWNjZXNzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgdW5zaWdu ZWQgaW50IG1vZGUpDQogew0KIAlpbnQgZXJyOw0KLQl0YXNrX2xvY2sodGFzayk7DQorCXVuc2ln bmVkIGxvbmcgaXJxZmxhZ3M7DQorDQorCXRhc2tfbG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIAll cnIgPSBfX3B0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIG1vZGUpOw0KLQl0YXNrX3VubG9jayh0YXNr KTsNCisJdGFza191bmxvY2sodGFzaywgJmlycWZsYWdzKTsNCiAJcmV0dXJuICFlcnI7DQogfQ0K IA0KQEAgLTI5OCw2ICszMDAsNyBAQCBzdGF0aWMgaW50IHB0cmFjZV9hdHRhY2goc3RydWN0IHRh c2tfc3RydWN0ICp0YXNrLCBsb25nIHJlcXVlc3QsDQogew0KIAlib29sIHNlaXplID0gKHJlcXVl c3QgPT0gUFRSQUNFX1NFSVpFKTsNCiAJaW50IHJldHZhbDsNCisJdW5zaWduZWQgbG9uZyBpcnFm bGFnczsNCiANCiAJcmV0dmFsID0gLUVJTzsNCiAJaWYgKHNlaXplKSB7DQpAQCAtMzI3LDkgKzMz MCw5IEBAIHN0YXRpYyBpbnQgcHRyYWNlX2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ss IGxvbmcgcmVxdWVzdCwNCiAJaWYgKG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmdGFzay0+c2ln bmFsLT5jcmVkX2d1YXJkX211dGV4KSkNCiAJCWdvdG8gb3V0Ow0KIA0KLQl0YXNrX2xvY2sodGFz ayk7DQorCXRhc2tfbG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIAlyZXR2YWwgPSBfX3B0cmFjZV9t YXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX0FUVEFDSF9SRUFMQ1JFRFMpOw0KLQl0YXNrX3Vu bG9jayh0YXNrKTsNCisJdGFza191bmxvY2sodGFzaywgJmlycWZsYWdzKTsNCiAJaWYgKHJldHZh bCkNCiAJCWdvdG8gdW5sb2NrX2NyZWRzOw0KIA0KZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9k ZWJ1Zy5jIGIva2VybmVsL3NjaGVkL2RlYnVnLmMNCmluZGV4IDRmYmMzYmQuLmE5NWY0NDUgMTAw NjQ0DQotLS0gYS9rZXJuZWwvc2NoZWQvZGVidWcuYw0KKysrIGIva2VybmVsL3NjaGVkL2RlYnVn LmMNCkBAIC04NDEsMTYgKzg0MSwxNyBAQCBzdGF0aWMgdm9pZCBzY2hlZF9zaG93X251bWEoc3Ry dWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pDQogew0KICNpZmRlZiBDT05G SUdfTlVNQV9CQUxBTkNJTkcNCiAJc3RydWN0IG1lbXBvbGljeSAqcG9sOw0KKwl1bnNpZ25lZCBs b25nIGlycWZsYWdzOw0KIA0KIAlpZiAocC0+bW0pDQogCQlQKG1tLT5udW1hX3NjYW5fc2VxKTsN CiANCi0JdGFza19sb2NrKHApOw0KKwl0YXNrX2xvY2socCwgJmlycWZsYWdzKTsNCiAJcG9sID0g cC0+bWVtcG9saWN5Ow0KIAlpZiAocG9sICYmICEocG9sLT5mbGFncyAmIE1QT0xfRl9NT1JPTikp DQogCQlwb2wgPSBOVUxMOw0KIAltcG9sX2dldChwb2wpOw0KLQl0YXNrX3VubG9jayhwKTsNCisJ dGFza191bmxvY2socCwgJmlycWZsYWdzKTsNCiANCiAJUChudW1hX3BhZ2VzX21pZ3JhdGVkKTsN CiAJUChudW1hX3ByZWZlcnJlZF9uaWQpOw0KZGlmZiAtLWdpdCBhL2tlcm5lbC9zeXMuYyBiL2tl cm5lbC9zeXMuYw0KaW5kZXggY2Y4YmE1NC4uZmIyZTZhOCAxMDA2NDQNCi0tLSBhL2tlcm5lbC9z eXMuYw0KKysrIGIva2VybmVsL3N5cy5jDQpAQCAtMTMwOCwxMiArMTMwOCwxNCBAQCBTWVNDQUxM X0RFRklORTIob2xkX2dldHJsaW1pdCwgdW5zaWduZWQgaW50LCByZXNvdXJjZSwNCiAJCXN0cnVj dCBybGltaXQgX191c2VyICosIHJsaW0pDQogew0KIAlzdHJ1Y3QgcmxpbWl0IHg7DQorCXVuc2ln bmVkIGxvbmcgaXJxZmxhZ3M7DQorDQogCWlmIChyZXNvdXJjZSA+PSBSTElNX05MSU1JVFMpDQog CQlyZXR1cm4gLUVJTlZBTDsNCiANCi0JdGFza19sb2NrKGN1cnJlbnQtPmdyb3VwX2xlYWRlcik7 DQorCXRhc2tfbG9jayhjdXJyZW50LT5ncm91cF9sZWFkZXIsICZpcnFmbGFncyk7DQogCXggPSBj dXJyZW50LT5zaWduYWwtPnJsaW1bcmVzb3VyY2VdOw0KLQl0YXNrX3VubG9jayhjdXJyZW50LT5n cm91cF9sZWFkZXIpOw0KKwl0YXNrX3VubG9jayhjdXJyZW50LT5ncm91cF9sZWFkZXIsICZpcnFm bGFncyk7DQogCWlmICh4LnJsaW1fY3VyID4gMHg3RkZGRkZGRikNCiAJCXgucmxpbV9jdXIgPSAw eDdGRkZGRkZGOw0KIAlpZiAoeC5ybGltX21heCA+IDB4N0ZGRkZGRkYpDQpAQCAtMTM2Miw2ICsx MzY0LDcgQEAgaW50IGRvX3BybGltaXQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHVuc2lnbmVk IGludCByZXNvdXJjZSwNCiB7DQogCXN0cnVjdCBybGltaXQgKnJsaW07DQogCWludCByZXR2YWwg PSAwOw0KKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIA0KIAlpZiAocmVzb3VyY2UgPj0gUkxJ TV9OTElNSVRTKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQpAQCAtMTM4MSw3ICsxMzg0LDcgQEAgaW50 IGRvX3BybGltaXQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHVuc2lnbmVkIGludCByZXNvdXJj ZSwNCiAJfQ0KIA0KIAlybGltID0gdHNrLT5zaWduYWwtPnJsaW0gKyByZXNvdXJjZTsNCi0JdGFz a19sb2NrKHRzay0+Z3JvdXBfbGVhZGVyKTsNCisJdGFza19sb2NrKHRzay0+Z3JvdXBfbGVhZGVy LCAmaXJxZmxhZ3MpOw0KIAlpZiAobmV3X3JsaW0pIHsNCiAJCS8qIEtlZXAgdGhlIGNhcGFibGUg Y2hlY2sgYWdhaW5zdCBpbml0X3VzZXJfbnMgdW50aWwNCiAJCSAgIGNncm91cHMgY2FuIGNvbnRh aW4gYWxsIGxpbWl0cyAqLw0KQEAgLTE0MDcsNyArMTQxMCw3IEBAIGludCBkb19wcmxpbWl0KHN0 cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCB1bnNpZ25lZCBpbnQgcmVzb3VyY2UsDQogCQlpZiAobmV3 X3JsaW0pDQogCQkJKnJsaW0gPSAqbmV3X3JsaW07DQogCX0NCi0JdGFza191bmxvY2sodHNrLT5n cm91cF9sZWFkZXIpOw0KKwl0YXNrX3VubG9jayh0c2stPmdyb3VwX2xlYWRlciwgJmlycWZsYWdz KTsNCiANCiAJLyoNCiAJICogUkxJTUlUX0NQVSBoYW5kbGluZy4gICBOb3RlIHRoYXQgdGhlIGtl cm5lbCBmYWlscyB0byByZXR1cm4gYW4gZXJyb3INCkBAIC0xOTExLDYgKzE5MTQsNyBAQCBzdGF0 aWMgaW50IHByY3RsX3NldF9hdXh2KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25n IGFkZHIsDQogCSAqIHRvb2xzIHdoaWNoIHVzZSB0aGlzIHZlY3RvciBtaWdodCBiZSB1bmhhcHB5 Lg0KIAkgKi8NCiAJdW5zaWduZWQgbG9uZyB1c2VyX2F1eHZbQVRfVkVDVE9SX1NJWkVdOw0KKwl1 bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIA0KIAlpZiAobGVuID4gc2l6ZW9mKHVzZXJfYXV4dikp DQogCQlyZXR1cm4gLUVJTlZBTDsNCkBAIC0xOTI0LDkgKzE5MjgsOSBAQCBzdGF0aWMgaW50IHBy Y3RsX3NldF9hdXh2KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsDQog DQogCUJVSUxEX0JVR19PTihzaXplb2YodXNlcl9hdXh2KSAhPSBzaXplb2YobW0tPnNhdmVkX2F1 eHYpKTsNCiANCi0JdGFza19sb2NrKGN1cnJlbnQpOw0KKwl0YXNrX2xvY2soY3VycmVudCwgJmly cWZsYWdzKTsNCiAJbWVtY3B5KG1tLT5zYXZlZF9hdXh2LCB1c2VyX2F1eHYsIGxlbik7DQotCXRh c2tfdW5sb2NrKGN1cnJlbnQpOw0KKwl0YXNrX3VubG9jayhjdXJyZW50LCAmaXJxZmxhZ3MpOw0K IA0KIAlyZXR1cm4gMDsNCiB9DQpkaWZmIC0tZ2l0IGEva2VybmVsL3V0c25hbWUuYyBiL2tlcm5l bC91dHNuYW1lLmMNCmluZGV4IDgzMWVhNzEuLjU3MzI3MTcgMTAwNjQ0DQotLS0gYS9rZXJuZWwv dXRzbmFtZS5jDQorKysgYi9rZXJuZWwvdXRzbmFtZS5jDQpAQCAtOTksMTQgKzk5LDE1IEBAIHN0 YXRpYyBzdHJ1Y3QgbnNfY29tbW9uICp1dHNuc19nZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNr KQ0KIHsNCiAJc3RydWN0IHV0c19uYW1lc3BhY2UgKm5zID0gTlVMTDsNCiAJc3RydWN0IG5zcHJv eHkgKm5zcHJveHk7DQorCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQogDQotCXRhc2tfbG9jayh0 YXNrKTsNCisJdGFza19sb2NrKHRhc2ssICZpcnFmbGFncyk7DQogCW5zcHJveHkgPSB0YXNrLT5u c3Byb3h5Ow0KIAlpZiAobnNwcm94eSkgew0KIAkJbnMgPSBuc3Byb3h5LT51dHNfbnM7DQogCQln ZXRfdXRzX25zKG5zKTsNCiAJfQ0KLQl0YXNrX3VubG9jayh0YXNrKTsNCisJdGFza191bmxvY2so dGFzaywgJmlycWZsYWdzKTsNCiANCiAJcmV0dXJuIG5zID8gJm5zLT5ucyA6IE5VTEw7DQogfQ0K ZGlmZiAtLWdpdCBhL21tL21lbWNvbnRyb2wuYyBiL21tL21lbWNvbnRyb2wuYw0KaW5kZXggYTJl NzliOC4uMjFkNTBmMCAxMDA2NDQNCi0tLSBhL21tL21lbWNvbnRyb2wuYw0KKysrIGIvbW0vbWVt Y29udHJvbC5jDQpAQCAtMTA0NiwxMSArMTA0NiwxMiBAQCBib29sIHRhc2tfaW5fbWVtX2Nncm91 cChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHN0cnVjdCBtZW1fY2dyb3VwICptZW1jZykNCiAJ c3RydWN0IG1lbV9jZ3JvdXAgKnRhc2tfbWVtY2c7DQogCXN0cnVjdCB0YXNrX3N0cnVjdCAqcDsN CiAJYm9vbCByZXQ7DQorCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQogDQotCXAgPSBmaW5kX2xv Y2tfdGFza19tbSh0YXNrKTsNCisJcCA9IGZpbmRfbG9ja190YXNrX21tKHRhc2ssICZpcnFmbGFn cyk7DQogCWlmIChwKSB7DQogCQl0YXNrX21lbWNnID0gZ2V0X21lbV9jZ3JvdXBfZnJvbV9tbShw LT5tbSk7DQotCQl0YXNrX3VubG9jayhwKTsNCisJCXRhc2tfdW5sb2NrKHAsICZpcnFmbGFncyk7 DQogCX0gZWxzZSB7DQogCQkvKg0KIAkJICogQWxsIHRocmVhZHMgbWF5IGhhdmUgYWxyZWFkeSBk ZXRhY2hlZCB0aGVpciBtbSdzLCBidXQgdGhlIG9vbQ0KZGlmZiAtLWdpdCBhL21tL21lbXBvbGlj eS5jIGIvbW0vbWVtcG9saWN5LmMNCmluZGV4IDM2Y2MwMWIuLjA1YWJiMjIgMTAwNjQ0DQotLS0g YS9tbS9tZW1wb2xpY3kuYw0KKysrIGIvbW0vbWVtcG9saWN5LmMNCkBAIC03ODksNiArNzg5LDcg QEAgc3RhdGljIGxvbmcgZG9fc2V0X21lbXBvbGljeSh1bnNpZ25lZCBzaG9ydCBtb2RlLCB1bnNp Z25lZCBzaG9ydCBmbGFncywNCiAJc3RydWN0IG1lbXBvbGljeSAqbmV3LCAqb2xkOw0KIAlOT0RF TUFTS19TQ1JBVENIKHNjcmF0Y2gpOw0KIAlpbnQgcmV0Ow0KKwl1bnNpZ25lZCBsb25nIGlycWZs YWdzOw0KIA0KIAlpZiAoIXNjcmF0Y2gpDQogCQlyZXR1cm4gLUVOT01FTTsNCkBAIC03OTksMTAg KzgwMCwxMCBAQCBzdGF0aWMgbG9uZyBkb19zZXRfbWVtcG9saWN5KHVuc2lnbmVkIHNob3J0IG1v ZGUsIHVuc2lnbmVkIHNob3J0IGZsYWdzLA0KIAkJZ290byBvdXQ7DQogCX0NCiANCi0JdGFza19s b2NrKGN1cnJlbnQpOw0KKwl0YXNrX2xvY2soY3VycmVudCwgJmlycWZsYWdzKTsNCiAJcmV0ID0g bXBvbF9zZXRfbm9kZW1hc2sobmV3LCBub2Rlcywgc2NyYXRjaCk7DQogCWlmIChyZXQpIHsNCi0J CXRhc2tfdW5sb2NrKGN1cnJlbnQpOw0KKwkJdGFza191bmxvY2soY3VycmVudCwgJmlycWZsYWdz KTsNCiAJCW1wb2xfcHV0KG5ldyk7DQogCQlnb3RvIG91dDsNCiAJfQ0KQEAgLTgxMSw3ICs4MTIs NyBAQCBzdGF0aWMgbG9uZyBkb19zZXRfbWVtcG9saWN5KHVuc2lnbmVkIHNob3J0IG1vZGUsIHVu c2lnbmVkIHNob3J0IGZsYWdzLA0KIAlpZiAobmV3ICYmIG5ldy0+bW9kZSA9PSBNUE9MX0lOVEVS TEVBVkUgJiYNCiAJICAgIG5vZGVzX3dlaWdodChuZXctPnYubm9kZXMpKQ0KIAkJY3VycmVudC0+ aWxfbmV4dCA9IGZpcnN0X25vZGUobmV3LT52Lm5vZGVzKTsNCi0JdGFza191bmxvY2soY3VycmVu dCk7DQorCXRhc2tfdW5sb2NrKGN1cnJlbnQsICZpcnFmbGFncyk7DQogCW1wb2xfcHV0KG9sZCk7 DQogCXJldCA9IDA7DQogb3V0Og0KQEAgLTg3MywxMiArODc0LDE0IEBAIHN0YXRpYyBsb25nIGRv X2dldF9tZW1wb2xpY3koaW50ICpwb2xpY3ksIG5vZGVtYXNrX3QgKm5tYXNrLA0KIAkJcmV0dXJu IC1FSU5WQUw7DQogDQogCWlmIChmbGFncyAmIE1QT0xfRl9NRU1TX0FMTE9XRUQpIHsNCisJCXVu c2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQorDQogCQlpZiAoZmxhZ3MgJiAoTVBPTF9GX05PREV8TVBP TF9GX0FERFIpKQ0KIAkJCXJldHVybiAtRUlOVkFMOw0KIAkJKnBvbGljeSA9IDA7CS8qIGp1c3Qg c28gaXQncyBpbml0aWFsaXplZCAqLw0KLQkJdGFza19sb2NrKGN1cnJlbnQpOw0KKwkJdGFza19s b2NrKGN1cnJlbnQsICZpcnFmbGFncyk7DQogCQkqbm1hc2sgID0gY3B1c2V0X2N1cnJlbnRfbWVt c19hbGxvd2VkOw0KLQkJdGFza191bmxvY2soY3VycmVudCk7DQorCQl0YXNrX3VubG9jayhjdXJy ZW50LCAmaXJxZmxhZ3MpOw0KIAkJcmV0dXJuIDA7DQogCX0NCiANCkBAIC05MzcsOSArOTQwLDEx IEBAIHN0YXRpYyBsb25nIGRvX2dldF9tZW1wb2xpY3koaW50ICpwb2xpY3ksIG5vZGVtYXNrX3Qg Km5tYXNrLA0KIAkJaWYgKG1wb2xfc3RvcmVfdXNlcl9ub2RlbWFzayhwb2wpKSB7DQogCQkJKm5t YXNrID0gcG9sLT53LnVzZXJfbm9kZW1hc2s7DQogCQl9IGVsc2Ugew0KLQkJCXRhc2tfbG9jayhj dXJyZW50KTsNCisJCQl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KKw0KKwkJCXRhc2tfbG9jayhj dXJyZW50LCAmaXJxZmxhZ3MpOw0KIAkJCWdldF9wb2xpY3lfbm9kZW1hc2socG9sLCBubWFzayk7 DQotCQkJdGFza191bmxvY2soY3VycmVudCk7DQorCQkJdGFza191bmxvY2soY3VycmVudCwgJmly cWZsYWdzKTsNCiAJCX0NCiAJfQ0KIA0KQEAgLTEyMjEsMTAgKzEyMjYsMTIgQEAgc3RhdGljIGxv bmcgZG9fbWJpbmQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBsZW4sDQogCXsN CiAJCU5PREVNQVNLX1NDUkFUQ0goc2NyYXRjaCk7DQogCQlpZiAoc2NyYXRjaCkgew0KKwkJCXVu c2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQorDQogCQkJZG93bl93cml0ZSgmbW0tPm1tYXBfc2VtKTsN Ci0JCQl0YXNrX2xvY2soY3VycmVudCk7DQorCQkJdGFza19sb2NrKGN1cnJlbnQsICZpcnFmbGFn cyk7DQogCQkJZXJyID0gbXBvbF9zZXRfbm9kZW1hc2sobmV3LCBubWFzaywgc2NyYXRjaCk7DQot CQkJdGFza191bmxvY2soY3VycmVudCk7DQorCQkJdGFza191bmxvY2soY3VycmVudCwgJmlycWZs YWdzKTsNCiAJCQlpZiAoZXJyKQ0KIAkJCQl1cF93cml0ZSgmbW0tPm1tYXBfc2VtKTsNCiAJCX0g ZWxzZQ0KQEAgLTE4NzYsMTEgKzE4ODMsMTIgQEAgYm9vbCBpbml0X25vZGVtYXNrX29mX21lbXBv bGljeShub2RlbWFza190ICptYXNrKQ0KIHsNCiAJc3RydWN0IG1lbXBvbGljeSAqbWVtcG9saWN5 Ow0KIAlpbnQgbmlkOw0KKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIA0KIAlpZiAoIShtYXNr ICYmIGN1cnJlbnQtPm1lbXBvbGljeSkpDQogCQlyZXR1cm4gZmFsc2U7DQogDQotCXRhc2tfbG9j ayhjdXJyZW50KTsNCisJdGFza19sb2NrKGN1cnJlbnQsICZpcnFmbGFncyk7DQogCW1lbXBvbGlj eSA9IGN1cnJlbnQtPm1lbXBvbGljeTsNCiAJc3dpdGNoIChtZW1wb2xpY3ktPm1vZGUpIHsNCiAJ Y2FzZSBNUE9MX1BSRUZFUlJFRDoNCkBAIC0xOTAwLDcgKzE5MDgsNyBAQCBib29sIGluaXRfbm9k ZW1hc2tfb2ZfbWVtcG9saWN5KG5vZGVtYXNrX3QgKm1hc2spDQogCWRlZmF1bHQ6DQogCQlCVUco KTsNCiAJfQ0KLQl0YXNrX3VubG9jayhjdXJyZW50KTsNCisJdGFza191bmxvY2soY3VycmVudCwg JmlycWZsYWdzKTsNCiANCiAJcmV0dXJuIHRydWU7DQogfQ0KQEAgLTE5MjEsMTAgKzE5MjksMTEg QEAgYm9vbCBtZW1wb2xpY3lfbm9kZW1hc2tfaW50ZXJzZWN0cyhzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnRzaywNCiB7DQogCXN0cnVjdCBtZW1wb2xpY3kgKm1lbXBvbGljeTsNCiAJYm9vbCByZXQgPSB0 cnVlOw0KKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIA0KIAlpZiAoIW1hc2spDQogCQlyZXR1 cm4gcmV0Ow0KLQl0YXNrX2xvY2sodHNrKTsNCisJdGFza19sb2NrKHRzaywgJmlycWZsYWdzKTsN CiAJbWVtcG9saWN5ID0gdHNrLT5tZW1wb2xpY3k7DQogCWlmICghbWVtcG9saWN5KQ0KIAkJZ290 byBvdXQ7DQpAQCAtMTk0Niw3ICsxOTU1LDcgQEAgYm9vbCBtZW1wb2xpY3lfbm9kZW1hc2tfaW50 ZXJzZWN0cyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywNCiAJCUJVRygpOw0KIAl9DQogb3V0Og0K LQl0YXNrX3VubG9jayh0c2spOw0KKwl0YXNrX3VubG9jayh0c2ssICZpcnFmbGFncyk7DQogCXJl dHVybiByZXQ7DQogfQ0KIA0KQEAgLTIxMjcsOSArMjEzNiwxMSBAQCBzdHJ1Y3QgbWVtcG9saWN5 ICpfX21wb2xfZHVwKHN0cnVjdCBtZW1wb2xpY3kgKm9sZCkNCiANCiAJLyogdGFzaydzIG1lbXBv bGljeSBpcyBwcm90ZWN0ZWQgYnkgYWxsb2NfbG9jayAqLw0KIAlpZiAob2xkID09IGN1cnJlbnQt Pm1lbXBvbGljeSkgew0KLQkJdGFza19sb2NrKGN1cnJlbnQpOw0KKwkJdW5zaWduZWQgbG9uZyBp cnFmbGFnczsNCisNCisJCXRhc2tfbG9jayhjdXJyZW50LCAmaXJxZmxhZ3MpOw0KIAkJKm5ldyA9 ICpvbGQ7DQotCQl0YXNrX3VubG9jayhjdXJyZW50KTsNCisJCXRhc2tfdW5sb2NrKGN1cnJlbnQs ICZpcnFmbGFncyk7DQogCX0gZWxzZQ0KIAkJKm5ldyA9ICpvbGQ7DQogDQpAQCAtMjQ3NCw2ICsy NDg1LDcgQEAgdm9pZCBtcG9sX3NoYXJlZF9wb2xpY3lfaW5pdChzdHJ1Y3Qgc2hhcmVkX3BvbGlj eSAqc3AsIHN0cnVjdCBtZW1wb2xpY3kgKm1wb2wpDQogCQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg cHZtYTsNCiAJCXN0cnVjdCBtZW1wb2xpY3kgKm5ldzsNCiAJCU5PREVNQVNLX1NDUkFUQ0goc2Ny YXRjaCk7DQorCQl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIA0KIAkJaWYgKCFzY3JhdGNoKQ0K IAkJCWdvdG8gcHV0X21wb2w7DQpAQCAtMjQ4Miw5ICsyNDk0LDkgQEAgdm9pZCBtcG9sX3NoYXJl ZF9wb2xpY3lfaW5pdChzdHJ1Y3Qgc2hhcmVkX3BvbGljeSAqc3AsIHN0cnVjdCBtZW1wb2xpY3kg Km1wb2wpDQogCQlpZiAoSVNfRVJSKG5ldykpDQogCQkJZ290byBmcmVlX3NjcmF0Y2g7IC8qIG5v IHZhbGlkIG5vZGVtYXNrIGludGVyc2VjdGlvbiAqLw0KIA0KLQkJdGFza19sb2NrKGN1cnJlbnQp Ow0KKwkJdGFza19sb2NrKGN1cnJlbnQsICZpcnFmbGFncyk7DQogCQlyZXQgPSBtcG9sX3NldF9u b2RlbWFzayhuZXcsICZtcG9sLT53LnVzZXJfbm9kZW1hc2ssIHNjcmF0Y2gpOw0KLQkJdGFza191 bmxvY2soY3VycmVudCk7DQorCQl0YXNrX3VubG9jayhjdXJyZW50LCAmaXJxZmxhZ3MpOw0KIAkJ aWYgKHJldCkNCiAJCQlnb3RvIHB1dF9uZXc7DQogDQpkaWZmIC0tZ2l0IGEvbW0vbW11X2NvbnRl eHQuYyBiL21tL21tdV9jb250ZXh0LmMNCmluZGV4IGY4MDJjMmQuLjA2NTFkMjEgMTAwNjQ0DQot LS0gYS9tbS9tbXVfY29udGV4dC5jDQorKysgYi9tbS9tbXVfY29udGV4dC5jDQpAQCAtMjEsOCAr MjEsOSBAQCB2b2lkIHVzZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICptbSkNCiB7DQogCXN0cnVjdCBt bV9zdHJ1Y3QgKmFjdGl2ZV9tbTsNCiAJc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSBjdXJyZW50 Ow0KKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIA0KLQl0YXNrX2xvY2sodHNrKTsNCisJdGFz a19sb2NrKHRzaywgJmlycWZsYWdzKTsNCiAJYWN0aXZlX21tID0gdHNrLT5hY3RpdmVfbW07DQog CWlmIChhY3RpdmVfbW0gIT0gbW0pIHsNCiAJCWF0b21pY19pbmMoJm1tLT5tbV9jb3VudCk7DQpA QCAtMzAsNyArMzEsNyBAQCB2b2lkIHVzZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICptbSkNCiAJfQ0K IAl0c2stPm1tID0gbW07DQogCXN3aXRjaF9tbShhY3RpdmVfbW0sIG1tLCB0c2spOw0KLQl0YXNr X3VubG9jayh0c2spOw0KKwl0YXNrX3VubG9jayh0c2ssICZpcnFmbGFncyk7DQogI2lmZGVmIGZp bmlzaF9hcmNoX3Bvc3RfbG9ja19zd2l0Y2gNCiAJZmluaXNoX2FyY2hfcG9zdF9sb2NrX3N3aXRj aCgpOw0KICNlbmRpZg0KQEAgLTUxLDEyICs1MiwxMyBAQCBFWFBPUlRfU1lNQk9MX0dQTCh1c2Vf bW0pOw0KIHZvaWQgdW51c2VfbW0oc3RydWN0IG1tX3N0cnVjdCAqbW0pDQogew0KIAlzdHJ1Y3Qg dGFza19zdHJ1Y3QgKnRzayA9IGN1cnJlbnQ7DQorCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQog DQotCXRhc2tfbG9jayh0c2spOw0KKwl0YXNrX2xvY2sodHNrLCAmaXJxZmxhZ3MpOw0KIAlzeW5j X21tX3JzcyhtbSk7DQogCXRzay0+bW0gPSBOVUxMOw0KIAkvKiBhY3RpdmVfbW0gaXMgc3RpbGwg J21tJyAqLw0KIAllbnRlcl9sYXp5X3RsYihtbSwgdHNrKTsNCi0JdGFza191bmxvY2sodHNrKTsN CisJdGFza191bmxvY2sodHNrLCAmaXJxZmxhZ3MpOw0KIH0NCiBFWFBPUlRfU1lNQk9MX0dQTCh1 bnVzZV9tbSk7DQpkaWZmIC0tZ2l0IGEvbW0vb29tX2tpbGwuYyBiL21tL29vbV9raWxsLmMNCmlu ZGV4IDg2MzQ5NTguLmU4MDM5Nzg0IDEwMDY0NA0KLS0tIGEvbW0vb29tX2tpbGwuYw0KKysrIGIv bW0vb29tX2tpbGwuYw0KQEAgLTEwNCwxNyArMTA0LDE4IEBAIHN0YXRpYyBib29sIGhhc19pbnRl cnNlY3RzX21lbXNfYWxsb3dlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywNCiAgKiBwb2ludGVy LiAgUmV0dXJuIHAsIG9yIGFueSBvZiBpdHMgc3VidGhyZWFkcyB3aXRoIGEgdmFsaWQgLT5tbSwg d2l0aA0KICAqIHRhc2tfbG9jaygpIGhlbGQuDQogICovDQotc3RydWN0IHRhc2tfc3RydWN0ICpm aW5kX2xvY2tfdGFza19tbShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQorc3RydWN0IHRhc2tfc3Ry dWN0ICpmaW5kX2xvY2tfdGFza19tbShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsDQorCQkJCQkJdW5z aWduZWQgbG9uZyAqaXJxZmxhZ3MpDQogew0KIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQ7DQogDQog CXJjdV9yZWFkX2xvY2soKTsNCiANCiAJZm9yX2VhY2hfdGhyZWFkKHAsIHQpIHsNCi0JCXRhc2tf bG9jayh0KTsNCisJCXRhc2tfbG9jayh0LCBpcnFmbGFncyk7DQogCQlpZiAobGlrZWx5KHQtPm1t KSkNCiAJCQlnb3RvIGZvdW5kOw0KLQkJdGFza191bmxvY2sodCk7DQorCQl0YXNrX3VubG9jayh0 LCBpcnFmbGFncyk7DQogCX0NCiAJdCA9IE5VTEw7DQogZm91bmQ6DQpAQCAtMTY2LDE3ICsxNjcs MTggQEAgdW5zaWduZWQgbG9uZyBvb21fYmFkbmVzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0 cnVjdCBtZW1fY2dyb3VwICptZW1jZywNCiB7DQogCWxvbmcgcG9pbnRzOw0KIAlsb25nIGFkajsN CisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsNCiANCiAJaWYgKG9vbV91bmtpbGxhYmxlX3Rhc2so cCwgbWVtY2csIG5vZGVtYXNrKSkNCiAJCXJldHVybiAwOw0KIA0KLQlwID0gZmluZF9sb2NrX3Rh c2tfbW0ocCk7DQorCXAgPSBmaW5kX2xvY2tfdGFza19tbShwLCAmaXJxZmxhZ3MpOw0KIAlpZiAo IXApDQogCQlyZXR1cm4gMDsNCiANCiAJYWRqID0gKGxvbmcpcC0+c2lnbmFsLT5vb21fc2NvcmVf YWRqOw0KIAlpZiAoYWRqID09IE9PTV9TQ09SRV9BREpfTUlOKSB7DQotCQl0YXNrX3VubG9jayhw KTsNCisJCXRhc2tfdW5sb2NrKHAsICZpcnFmbGFncyk7DQogCQlyZXR1cm4gMDsNCiAJfQ0KIA0K QEAgLTE4Niw3ICsxODgsNyBAQCB1bnNpZ25lZCBsb25nIG9vbV9iYWRuZXNzKHN0cnVjdCB0YXNr X3N0cnVjdCAqcCwgc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnLA0KIAkgKi8NCiAJcG9pbnRzID0g Z2V0X21tX3JzcyhwLT5tbSkgKyBnZXRfbW1fY291bnRlcihwLT5tbSwgTU1fU1dBUEVOVFMpICsN CiAJCWF0b21pY19sb25nX3JlYWQoJnAtPm1tLT5ucl9wdGVzKSArIG1tX25yX3BtZHMocC0+bW0p Ow0KLQl0YXNrX3VubG9jayhwKTsNCisJdGFza191bmxvY2socCwgJmlycWZsYWdzKTsNCiANCiAJ LyoNCiAJICogUm9vdCBwcm9jZXNzZXMgZ2V0IDMlIGJvbnVzLCBqdXN0IGxpa2UgdGhlIF9fdm1f ZW5vdWdoX21lbW9yeSgpDQpAQCAtMzU2LDYgKzM1OCw3IEBAIHN0YXRpYyB2b2lkIGR1bXBfdGFz a3Moc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnLCBjb25zdCBub2RlbWFza190ICpub2RlbWFzaykN CiB7DQogCXN0cnVjdCB0YXNrX3N0cnVjdCAqcDsNCiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNr Ow0KKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOw0KIA0KIAlwcl9pbmZvKCJbIHBpZCBdICAgdWlk ICB0Z2lkIHRvdGFsX3ZtICAgICAgcnNzIG5yX3B0ZXMgbnJfcG1kcyBzd2FwZW50cyBvb21fc2Nv cmVfYWRqIG5hbWVcbiIpOw0KIAlyY3VfcmVhZF9sb2NrKCk7DQpAQCAtMzYzLDcgKzM2Niw3IEBA IHN0YXRpYyB2b2lkIGR1bXBfdGFza3Moc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnLCBjb25zdCBu b2RlbWFza190ICpub2RlbWFzaykNCiAJCWlmIChvb21fdW5raWxsYWJsZV90YXNrKHAsIG1lbWNn LCBub2RlbWFzaykpDQogCQkJY29udGludWU7DQogDQotCQl0YXNrID0gZmluZF9sb2NrX3Rhc2tf bW0ocCk7DQorCQl0YXNrID0gZmluZF9sb2NrX3Rhc2tfbW0ocCwgJmlycWZsYWdzKTsNCiAJCWlm ICghdGFzaykgew0KIAkJCS8qDQogCQkJICogVGhpcyBpcyBhIGt0aHJlYWQgb3IgYWxsIG9mIHAn cyB0aHJlYWRzIGhhdmUgYWxyZWFkeQ0KQEAgLTM4MCw3ICszODMsNyBAQCBzdGF0aWMgdm9pZCBk dW1wX3Rhc2tzKHN0cnVjdCBtZW1fY2dyb3VwICptZW1jZywgY29uc3Qgbm9kZW1hc2tfdCAqbm9k ZW1hc2spDQogCQkJbW1fbnJfcG1kcyh0YXNrLT5tbSksDQogCQkJZ2V0X21tX2NvdW50ZXIodGFz ay0+bW0sIE1NX1NXQVBFTlRTKSwNCiAJCQl0YXNrLT5zaWduYWwtPm9vbV9zY29yZV9hZGosIHRh c2stPmNvbW0pOw0KLQkJdGFza191bmxvY2sodGFzayk7DQorCQl0YXNrX3VubG9jayh0YXNrLCAm aXJxZmxhZ3MpOw0KIAl9DQogCXJjdV9yZWFkX3VubG9jaygpOw0KIH0NCkBAIC00MzIsNiArNDM1 LDcgQEAgc3RhdGljIGJvb2wgX19vb21fcmVhcF90YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNr KQ0KIAlzdHJ1Y3QgemFwX2RldGFpbHMgZGV0YWlscyA9IHsuY2hlY2tfc3dhcF9lbnRyaWVzID0g dHJ1ZSwNCiAJCQkJICAgICAgLmlnbm9yZV9kaXJ0eSA9IHRydWV9Ow0KIAlib29sIHJldCA9IHRy dWU7DQorCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQogDQogCS8qDQogCSAqIE1ha2Ugc3VyZSB3 ZSBmaW5kIHRoZSBhc3NvY2lhdGVkIG1tX3N0cnVjdCBldmVuIHdoZW4gdGhlIHBhcnRpY3VsYXIN CkBAIC00MzksMTcgKzQ0MywxNyBAQCBzdGF0aWMgYm9vbCBfX29vbV9yZWFwX3Rhc2soc3RydWN0 IHRhc2tfc3RydWN0ICp0c2spDQogCSAqIFdlIG1pZ2h0IGhhdmUgcmFjZSB3aXRoIGV4aXQgcGF0 aCBzbyBjb25zaWRlciBvdXIgd29yayBkb25lIGlmIHRoZXJlDQogCSAqIGlzIG5vIG1tLg0KIAkg Ki8NCi0JcCA9IGZpbmRfbG9ja190YXNrX21tKHRzayk7DQorCXAgPSBmaW5kX2xvY2tfdGFza19t bSh0c2ssICZpcnFmbGFncyk7DQogCWlmICghcCkNCiAJCXJldHVybiB0cnVlOw0KIA0KIAltbSA9 IHAtPm1tOw0KIAlpZiAoIWF0b21pY19pbmNfbm90X3plcm8oJm1tLT5tbV91c2VycykpIHsNCi0J CXRhc2tfdW5sb2NrKHApOw0KKwkJdGFza191bmxvY2socCwgJmlycWZsYWdzKTsNCiAJCXJldHVy biB0cnVlOw0KIAl9DQogDQotCXRhc2tfdW5sb2NrKHApOw0KKwl0YXNrX3VubG9jayhwLCAmaXJx ZmxhZ3MpOw0KIA0KIAlpZiAoIWRvd25fcmVhZF90cnlsb2NrKCZtbS0+bW1hcF9zZW0pKSB7DQog CQlyZXQgPSBmYWxzZTsNCkBAIC02ODYsMTkgKzY5MCwyMCBAQCB2b2lkIG9vbV9raWxsX3Byb2Nl c3Moc3RydWN0IG9vbV9jb250cm9sICpvYywgc3RydWN0IHRhc2tfc3RydWN0ICpwLA0KIAlzdGF0 aWMgREVGSU5FX1JBVEVMSU1JVF9TVEFURShvb21fcnMsIERFRkFVTFRfUkFURUxJTUlUX0lOVEVS VkFMLA0KIAkJCQkJICAgICAgREVGQVVMVF9SQVRFTElNSVRfQlVSU1QpOw0KIAlib29sIGNhbl9v b21fcmVhcCA9IHRydWU7DQorCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQogDQogCS8qDQogCSAq IElmIHRoZSB0YXNrIGlzIGFscmVhZHkgZXhpdGluZywgZG9uJ3QgYWxhcm0gdGhlIHN5c2FkbWlu IG9yIGtpbGwNCiAJICogaXRzIGNoaWxkcmVuIG9yIHRocmVhZHMsIGp1c3Qgc2V0IFRJRl9NRU1E SUUgc28gaXQgY2FuIGRpZSBxdWlja2x5DQogCSAqLw0KLQl0YXNrX2xvY2socCk7DQorCXRhc2tf bG9jayhwLCAmaXJxZmxhZ3MpOw0KIAlpZiAocC0+bW0gJiYgdGFza193aWxsX2ZyZWVfbWVtKHAp KSB7DQogCQltYXJrX29vbV92aWN0aW0ocCk7DQotCQl0YXNrX3VubG9jayhwKTsNCisJCXRhc2tf dW5sb2NrKHAsICZpcnFmbGFncyk7DQogCQlwdXRfdGFza19zdHJ1Y3QocCk7DQogCQlyZXR1cm47 DQogCX0NCi0JdGFza191bmxvY2socCk7DQorCXRhc2tfdW5sb2NrKHAsICZpcnFmbGFncyk7DQog DQogCWlmIChfX3JhdGVsaW1pdCgmb29tX3JzKSkNCiAJCWR1bXBfaGVhZGVyKG9jLCBwLCBtZW1j Zyk7DQpAQCAtNzM0LDcgKzczOSw3IEBAIHZvaWQgb29tX2tpbGxfcHJvY2VzcyhzdHJ1Y3Qgb29t X2NvbnRyb2wgKm9jLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsDQogCX0NCiAJcmVhZF91bmxvY2so JnRhc2tsaXN0X2xvY2spOw0KIA0KLQlwID0gZmluZF9sb2NrX3Rhc2tfbW0odmljdGltKTsNCisJ cCA9IGZpbmRfbG9ja190YXNrX21tKHZpY3RpbSwgJmlycWZsYWdzKTsNCiAJaWYgKCFwKSB7DQog CQlwdXRfdGFza19zdHJ1Y3QodmljdGltKTsNCiAJCXJldHVybjsNCkBAIC03NTksNyArNzY0LDcg QEAgdm9pZCBvb21fa2lsbF9wcm9jZXNzKHN0cnVjdCBvb21fY29udHJvbCAqb2MsIHN0cnVjdCB0 YXNrX3N0cnVjdCAqcCwNCiAJCUsoZ2V0X21tX2NvdW50ZXIodmljdGltLT5tbSwgTU1fQU5PTlBB R0VTKSksDQogCQlLKGdldF9tbV9jb3VudGVyKHZpY3RpbS0+bW0sIE1NX0ZJTEVQQUdFUykpLA0K IAkJSyhnZXRfbW1fY291bnRlcih2aWN0aW0tPm1tLCBNTV9TSE1FTVBBR0VTKSkpOw0KLQl0YXNr X3VubG9jayh2aWN0aW0pOw0KKwl0YXNrX3VubG9jayh2aWN0aW0sICZpcnFmbGFncyk7DQogDQog CS8qDQogCSAqIEtpbGwgYWxsIHVzZXIgcHJvY2Vzc2VzIHNoYXJpbmcgdmljdGltLT5tbSBpbiBv dGhlciB0aHJlYWQgZ3JvdXBzLCBpZg0KZGlmZiAtLWdpdCBhL25ldC9jb3JlL25ldF9uYW1lc3Bh Y2UuYyBiL25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYw0KaW5kZXggMmMyZWIxYi4uNDIxZmNjZCAx MDA2NDQNCi0tLSBhL25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYw0KKysrIGIvbmV0L2NvcmUvbmV0 X25hbWVzcGFjZS5jDQpAQCAtNTAyLDExICs1MDIsMTMgQEAgc3RydWN0IG5ldCAqZ2V0X25ldF9u c19ieV9waWQocGlkX3QgcGlkKQ0KIAl0c2sgPSBmaW5kX3Rhc2tfYnlfdnBpZChwaWQpOw0KIAlp ZiAodHNrKSB7DQogCQlzdHJ1Y3QgbnNwcm94eSAqbnNwcm94eTsNCi0JCXRhc2tfbG9jayh0c2sp Ow0KKwkJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsNCisNCisJCXRhc2tfbG9jayh0c2ssICZpcnFm bGFncyk7DQogCQluc3Byb3h5ID0gdHNrLT5uc3Byb3h5Ow0KIAkJaWYgKG5zcHJveHkpDQogCQkJ bmV0ID0gZ2V0X25ldChuc3Byb3h5LT5uZXRfbnMpOw0KLQkJdGFza191bmxvY2sodHNrKTsNCisJ CXRhc2tfdW5sb2NrKHRzaywgJmlycWZsYWdzKTsNCiAJfQ0KIAlyY3VfcmVhZF91bmxvY2soKTsN CiAJcmV0dXJuIG5ldDsNCkBAIC05NjMsMTIgKzk2NSwxMyBAQCBzdGF0aWMgc3RydWN0IG5zX2Nv bW1vbiAqbmV0bnNfZ2V0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykNCiB7DQogCXN0cnVjdCBu ZXQgKm5ldCA9IE5VTEw7DQogCXN0cnVjdCBuc3Byb3h5ICpuc3Byb3h5Ow0KKwl1bnNpZ25lZCBs b25nIGlycWZsYWdzOw0KIA0KLQl0YXNrX2xvY2sodGFzayk7DQorCXRhc2tfbG9jayh0YXNrLCAm aXJxZmxhZ3MpOw0KIAluc3Byb3h5ID0gdGFzay0+bnNwcm94eTsNCiAJaWYgKG5zcHJveHkpDQog CQluZXQgPSBnZXRfbmV0KG5zcHJveHktPm5ldF9ucyk7DQotCXRhc2tfdW5sb2NrKHRhc2spOw0K Kwl0YXNrX3VubG9jayh0YXNrLCAmaXJxZmxhZ3MpOw0KIA0KIAlyZXR1cm4gbmV0ID8gJm5ldC0+ bnMgOiBOVUxMOw0KIH0NCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXRjbGFzc2lkX2Nncm91cC5j IGIvbmV0L2NvcmUvbmV0Y2xhc3NpZF9jZ3JvdXAuYw0KaW5kZXggMTFmY2UxNy4uMzI0ODJmZCAx MDA2NDQNCi0tLSBhL25ldC9jb3JlL25ldGNsYXNzaWRfY2dyb3VwLmMNCisrKyBiL25ldC9jb3Jl L25ldGNsYXNzaWRfY2dyb3VwLmMNCkBAIC03Niw5ICs3NiwxMSBAQCBzdGF0aWMgdm9pZCB1cGRh dGVfY2xhc3NpZChzdHJ1Y3QgY2dyb3VwX3N1YnN5c19zdGF0ZSAqY3NzLCB2b2lkICp2KQ0KIA0K IAljc3NfdGFza19pdGVyX3N0YXJ0KGNzcywgJml0KTsNCiAJd2hpbGUgKChwID0gY3NzX3Rhc2tf aXRlcl9uZXh0KCZpdCkpKSB7DQotCQl0YXNrX2xvY2socCk7DQorCQl1bnNpZ25lZCBsb25nIGly cWZsYWdzOw0KKw0KKwkJdGFza19sb2NrKHAsICZpcnFmbGFncyk7DQogCQlpdGVyYXRlX2ZkKHAt PmZpbGVzLCAwLCB1cGRhdGVfY2xhc3NpZF9zb2NrLCB2KTsNCi0JCXRhc2tfdW5sb2NrKHApOw0K KwkJdGFza191bmxvY2socCwgJmlycWZsYWdzKTsNCiAJfQ0KIAljc3NfdGFza19pdGVyX2VuZCgm aXQpOw0KIH0NCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXRwcmlvX2Nncm91cC5jIGIvbmV0L2Nv cmUvbmV0cHJpb19jZ3JvdXAuYw0KaW5kZXggMmVjODZmYy4uZTU3M2M0NiAxMDA2NDQNCi0tLSBh L25ldC9jb3JlL25ldHByaW9fY2dyb3VwLmMNCisrKyBiL25ldC9jb3JlL25ldHByaW9fY2dyb3Vw LmMNCkBAIC0yMzgsMTEgKzIzOCwxMiBAQCBzdGF0aWMgdm9pZCBuZXRfcHJpb19hdHRhY2goc3Ry dWN0IGNncm91cF90YXNrc2V0ICp0c2V0KQ0KIAlzdHJ1Y3QgY2dyb3VwX3N1YnN5c19zdGF0ZSAq Y3NzOw0KIA0KIAljZ3JvdXBfdGFza3NldF9mb3JfZWFjaChwLCBjc3MsIHRzZXQpIHsNCisJCXVu c2lnbmVkIGxvbmcgaXJxZmxhZ3M7DQogCQl2b2lkICp2ID0gKHZvaWQgKikodW5zaWduZWQgbG9u Zyljc3MtPmNncm91cC0+aWQ7DQogDQotCQl0YXNrX2xvY2socCk7DQorCQl0YXNrX2xvY2socCwg JmlycWZsYWdzKTsNCiAJCWl0ZXJhdGVfZmQocC0+ZmlsZXMsIDAsIHVwZGF0ZV9uZXRwcmlvLCB2 KTsNCi0JCXRhc2tfdW5sb2NrKHApOw0KKwkJdGFza191bmxvY2socCwgJmlycWZsYWdzKTsNCiAJ fQ0KIH0NCiANCi0tIA0KDQo=