From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 01216C3F2C6 for ; Sat, 29 Feb 2020 20:38:20 +0000 (UTC) Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CAE6520880 for ; Sat, 29 Feb 2020 20:38:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CAE6520880 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvdimm-bounces@lists.01.org Received: from ml01.vlan13.01.org (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 6F26E10FC36EE; Sat, 29 Feb 2020 12:39:11 -0800 (PST) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=192.55.52.151; helo=mga17.intel.com; envelope-from=dan.j.williams@intel.com; receiver= Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 1D18410FC3593 for ; Sat, 29 Feb 2020 12:39:09 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Feb 2020 12:38:17 -0800 X-IronPort-AV: E=Sophos;i="5.70,501,1574150400"; d="scan'208";a="437787403" Received: from dwillia2-desk3.jf.intel.com (HELO dwillia2-desk3.amr.corp.intel.com) ([10.54.39.16]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Feb 2020 12:38:16 -0800 Subject: [ndctl PATCH 24/36] ndctl/dimm: Rework dimm command status reporting From: Dan Williams To: linux-nvdimm@lists.01.org Cc: vishal.l.verma@intel.com Date: Sat, 29 Feb 2020 12:22:12 -0800 Message-ID: <158300773196.2141307.16404460619761697075.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: <158300760415.2141307.14060353322051900501.stgit@dwillia2-desk3.amr.corp.intel.com> References: <158300760415.2141307.14060353322051900501.stgit@dwillia2-desk3.amr.corp.intel.com> User-Agent: StGit/0.18-3-g996c MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Message-ID-Hash: 3DPUFQ5Z2QCOC5QHPLDQSZ67RZWD2PDK X-Message-ID-Hash: 3DPUFQ5Z2QCOC5QHPLDQSZ67RZWD2PDK X-MailFrom: dan.j.williams@intel.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.1.1 Precedence: list List-Id: "Linux-nvdimm developer list." Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Transfer-Encoding: base64 VGhlIGJ1aWxkIGN1cnJlbnRseSBzcGV3cyBtYW55IGVycm9ycyBvZiB0aGUgZm9ybToNCg0KaHlw ZXJ2LmM6IEluIGZ1bmN0aW9uIOKAmGFsbG9jX2h5cGVydl9jbWTigJk6DQpoeXBlcnYuYzo2MToy NTogd2FybmluZzogdGFraW5nIGFkZHJlc3Mgb2YgcGFja2VkIG1lbWJlciBvZiDigJhzdHJ1Y3Qg bmRfaHlwZXJ2X2hlYWx0aF9pbmZv4oCZIG1heSByZXN1bHQgaW4gYW4gdW5hbGlnbmVkIHBvaW50 ZXIgdmFsdWUgWy1XYWRkcmVzcy1vZi1wYWNrZWQtbWVtYmVyXQ0KICAgNjEgfCAgY21kLT5maXJt d2FyZV9zdGF0dXMgPSAmaHlwZXJ2LT51LmhlYWx0aF9pbmZvLnN0YXR1czsNCg0KTW92ZSB0aGUg c3RhdHVzIHJlcG9ydGluZyBmcm9tIHBhc3NpbmcgYW4gdW5hbGlnbmVkIHBvaW50ZXIgdG8gYSBu ZXcNCi0+Z2V0X2Zpcm13YXJlX3N0YXR1cygpIG9wZXJhdGlvbi4NCg0KTGluazogaHR0cHM6Ly9n aXRodWIuY29tL3BtZW0vbmRjdGwvaXNzdWVzLzEzMQ0KU2lnbmVkLW9mZi1ieTogRGFuIFdpbGxp YW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+DQotLS0NCiBuZGN0bC9saWIvYXJzLmMgICAg ICAgfCAgIDI4ICsrKysrKysrKysrKysrKysrKystLS0tLS0NCiBuZGN0bC9saWIvaHBlMS5jICAg ICAgfCAgIDE3ICsrKysrKysrKysrLS0tLQ0KIG5kY3RsL2xpYi9oeXBlcnYuYyAgICB8ICAgIDcg KysrKystDQogbmRjdGwvbGliL2ludGVsLmMgICAgIHwgICA1NiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tDQogbmRjdGwvbGliL2xpYm5kY3RsLmMgIHwg ICAzOSArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tDQogbmRjdGwvbGliL21zZnQu YyAgICAgIHwgICAgOCArKysrKy0tDQogbmRjdGwvbGliL25maXQuYyAgICAgIHwgICAzNiArKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQ0KIG5kY3RsL2xpYi9wcml2YXRlLmggICB8ICAg IDcgKysrKy0tDQogbmRjdGwvbGlibmRjdGwtbmZpdC5oIHwgICAxMSArKysrKysrKysrDQogOSBm aWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pDQoNCmRpZmYg LS1naXQgYS9uZGN0bC9saWIvYXJzLmMgYi9uZGN0bC9saWIvYXJzLmMNCmluZGV4IGQ5MWE5OWQw MGQxMC4uNDQ4NzFiMmFmZGUyIDEwMDY0NA0KLS0tIGEvbmRjdGwvbGliL2Fycy5jDQorKysgYi9u ZGN0bC9saWIvYXJzLmMNCkBAIC0xNSw2ICsxNSwyMiBAQA0KICNpbmNsdWRlIDxuZGN0bC9saWJu ZGN0bC5oPg0KICNpbmNsdWRlICJwcml2YXRlLmgiDQogDQorc3RhdGljIHUzMiBnZXRfYXJzX2Nv bW1hbmRfc3RhdHVzKHN0cnVjdCBuZGN0bF9jbWQgKmNtZCkNCit7DQorCXN3aXRjaCAoY21kLT50 eXBlKSB7DQorCWNhc2UgTkRfQ01EX0FSU19DQVA6DQorCQlyZXR1cm4gY21kLT5hcnNfY2FwLT5z dGF0dXM7DQorCWNhc2UgTkRfQ01EX0FSU19TVEFSVDoNCisJCXJldHVybiBjbWQtPmFyc19zdGFy dC0+c3RhdHVzOw0KKwljYXNlIE5EX0NNRF9BUlNfU1RBVFVTOg0KKwkJcmV0dXJuIGNtZC0+YXJz X3N0YXR1cy0+c3RhdHVzOw0KKwljYXNlIE5EX0NNRF9DTEVBUl9FUlJPUjoNCisJCXJldHVybiBj bWQtPmNsZWFyX2Vyci0+c3RhdHVzOw0KKwl9DQorDQorCXJldHVybiAtMVU7DQorfQ0KKw0KIE5E Q1RMX0VYUE9SVCBzdHJ1Y3QgbmRjdGxfY21kICpuZGN0bF9idXNfY21kX25ld19hcnNfY2FwKHN0 cnVjdCBuZGN0bF9idXMgKmJ1cywNCiAJCXVuc2lnbmVkIGxvbmcgbG9uZyBhZGRyZXNzLCB1bnNp Z25lZCBsb25nIGxvbmcgbGVuKQ0KIHsNCkBAIC0zNSw5ICs1MSw5IEBAIE5EQ1RMX0VYUE9SVCBz dHJ1Y3QgbmRjdGxfY21kICpuZGN0bF9idXNfY21kX25ld19hcnNfY2FwKHN0cnVjdCBuZGN0bF9i dXMgKmJ1cywNCiAJY21kLT5idXMgPSBidXM7DQogCW5kY3RsX2NtZF9yZWYoY21kKTsNCiAJY21k LT50eXBlID0gTkRfQ01EX0FSU19DQVA7DQorCWNtZC0+Z2V0X2Zpcm13YXJlX3N0YXR1cyA9IGdl dF9hcnNfY29tbWFuZF9zdGF0dXM7DQogCWNtZC0+c2l6ZSA9IHNpemU7DQogCWNtZC0+c3RhdHVz ID0gMTsNCi0JY21kLT5maXJtd2FyZV9zdGF0dXMgPSAmY21kLT5hcnNfY2FwLT5zdGF0dXM7DQog CWNtZC0+YXJzX2NhcC0+YWRkcmVzcyA9IGFkZHJlc3M7DQogCWNtZC0+YXJzX2NhcC0+bGVuZ3Ro ID0gbGVuOw0KIA0KQEAgLTU1LDcgKzcxLDcgQEAgc3RhdGljIGJvb2wgX192YWxpZGF0ZV9hcnNf Y2FwKHN0cnVjdCBuZGN0bF9jbWQgKmFyc19jYXApDQogew0KIAlpZiAoYXJzX2NhcC0+dHlwZSAh PSBORF9DTURfQVJTX0NBUCB8fCBhcnNfY2FwLT5zdGF0dXMgIT0gMCkNCiAJCXJldHVybiBmYWxz ZTsNCi0JaWYgKCgqYXJzX2NhcC0+ZmlybXdhcmVfc3RhdHVzICYgQVJTX1NUQVRVU19NQVNLKSAh PSAwKQ0KKwlpZiAoKGFyc19jYXAtPmdldF9maXJtd2FyZV9zdGF0dXMoYXJzX2NhcCkgJiBBUlNf U1RBVFVTX01BU0spICE9IDApDQogCQlyZXR1cm4gZmFsc2U7DQogCXJldHVybiB2YWxpZGF0ZV9j bGVhcl9lcnJvcihhcnNfY2FwKTsNCiB9DQpAQCAtODQsNyArMTAwLDcgQEAgTkRDVExfRVhQT1JU IHN0cnVjdCBuZGN0bF9jbWQgKm5kY3RsX2J1c19jbWRfbmV3X2Fyc19zdGFydChzdHJ1Y3QgbmRj dGxfY21kICphcnMNCiAJaWYgKCF2YWxpZGF0ZV9hcnNfY2FwKGN0eCwgYXJzX2NhcCkpDQogCQly ZXR1cm4gTlVMTDsNCiANCi0JaWYgKCEoKmFyc19jYXAtPmZpcm13YXJlX3N0YXR1cyA+PiBBUlNf RVhUX1NUQVRVU19TSElGVCAmIHR5cGUpKSB7DQorCWlmICghKGFyc19jYXAtPmdldF9maXJtd2Fy ZV9zdGF0dXMoYXJzX2NhcCkgPj4gQVJTX0VYVF9TVEFUVVNfU0hJRlQgJiB0eXBlKSkgew0KIAkJ ZGJnKGN0eCwgImFyc19jYXAgZG9lcyBub3Qgc2hvdyByZXF1ZXN0ZWQgdHlwZSBhcyBzdXBwb3J0 ZWRcbiIpOw0KIAkJcmV0dXJuIE5VTEw7DQogCX0NCkBAIC05Nyw5ICsxMTMsOSBAQCBORENUTF9F WFBPUlQgc3RydWN0IG5kY3RsX2NtZCAqbmRjdGxfYnVzX2NtZF9uZXdfYXJzX3N0YXJ0KHN0cnVj dCBuZGN0bF9jbWQgKmFycw0KIAljbWQtPmJ1cyA9IGJ1czsNCiAJbmRjdGxfY21kX3JlZihjbWQp Ow0KIAljbWQtPnR5cGUgPSBORF9DTURfQVJTX1NUQVJUOw0KKwljbWQtPmdldF9maXJtd2FyZV9z dGF0dXMgPSBnZXRfYXJzX2NvbW1hbmRfc3RhdHVzOw0KIAljbWQtPnNpemUgPSBzaXplOw0KIAlj bWQtPnN0YXR1cyA9IDE7DQotCWNtZC0+ZmlybXdhcmVfc3RhdHVzID0gJmNtZC0+YXJzX3N0YXJ0 LT5zdGF0dXM7DQogCWNtZC0+YXJzX3N0YXJ0LT5hZGRyZXNzID0gYXJzX2NhcC0+YXJzX2NhcC0+ YWRkcmVzczsNCiAJY21kLT5hcnNfc3RhcnQtPmxlbmd0aCA9IGFyc19jYXAtPmFyc19jYXAtPmxl bmd0aDsNCiAJY21kLT5hcnNfc3RhcnQtPnR5cGUgPSB0eXBlOw0KQEAgLTE0NSw5ICsxNjEsOSBA QCBORENUTF9FWFBPUlQgc3RydWN0IG5kY3RsX2NtZCAqbmRjdGxfYnVzX2NtZF9uZXdfYXJzX3N0 YXR1cyhzdHJ1Y3QgbmRjdGxfY21kICphcg0KIAljbWQtPmJ1cyA9IGJ1czsNCiAJbmRjdGxfY21k X3JlZihjbWQpOw0KIAljbWQtPnR5cGUgPSBORF9DTURfQVJTX1NUQVRVUzsNCisJY21kLT5nZXRf ZmlybXdhcmVfc3RhdHVzID0gZ2V0X2Fyc19jb21tYW5kX3N0YXR1czsNCiAJY21kLT5zaXplID0g c2l6ZTsNCiAJY21kLT5zdGF0dXMgPSAxOw0KLQljbWQtPmZpcm13YXJlX3N0YXR1cyA9ICZjbWQt PmFyc19zdGF0dXMtPnN0YXR1czsNCiAJY21kLT5hcnNfc3RhdHVzLT5vdXRfbGVuZ3RoID0gYXJz X2NhcF9jbWQtPm1heF9hcnNfb3V0Ow0KIA0KIAlyZXR1cm4gY21kOw0KQEAgLTMyNSw5ICszNDEs OSBAQCBORENUTF9FWFBPUlQgc3RydWN0IG5kY3RsX2NtZCAqbmRjdGxfYnVzX2NtZF9uZXdfY2xl YXJfZXJyb3IoDQogCW5kY3RsX2NtZF9yZWYoY2xlYXJfZXJyKTsNCiAJY2xlYXJfZXJyLT5idXMg PSBidXM7DQogCWNsZWFyX2Vyci0+dHlwZSA9IE5EX0NNRF9DTEVBUl9FUlJPUjsNCisJY2xlYXJf ZXJyLT5nZXRfZmlybXdhcmVfc3RhdHVzID0gZ2V0X2Fyc19jb21tYW5kX3N0YXR1czsNCiAJY2xl YXJfZXJyLT5zaXplID0gc2l6ZTsNCiAJY2xlYXJfZXJyLT5zdGF0dXMgPSAxOw0KLQljbGVhcl9l cnItPmZpcm13YXJlX3N0YXR1cyA9ICZjbGVhcl9lcnItPmNsZWFyX2Vyci0+c3RhdHVzOw0KIAlj bGVhcl9lcnItPmNsZWFyX2Vyci0+YWRkcmVzcyA9IGFkZHJlc3M7DQogCWNsZWFyX2Vyci0+Y2xl YXJfZXJyLT5sZW5ndGggPSBsZW47DQogDQpkaWZmIC0tZ2l0IGEvbmRjdGwvbGliL2hwZTEuYyBi L25kY3RsL2xpYi9ocGUxLmMNCmluZGV4IGIyNjEyMGUxZDNlMC4uYjVlZTAyNjA4ZDMxIDEwMDY0 NA0KLS0tIGEvbmRjdGwvbGliL2hwZTEuYw0KKysrIGIvbmRjdGwvbGliL2hwZTEuYw0KQEAgLTIz LDYgKzIzLDE3IEBADQogI2RlZmluZSBDTURfSFBFMV9TTUFSVChfYykgKENNRF9IUEUxKF9jKS0+ dS5zbWFydC5kYXRhKQ0KICNkZWZpbmUgQ01EX0hQRTFfU01BUlRfVEhSRVNIKF9jKSAoQ01EX0hQ RTEoX2MpLT51LnRocmVzaC5kYXRhKQ0KIA0KK3N0YXRpYyB1MzIgaHBlMV9nZXRfZmlybXdhcmVf c3RhdHVzKHN0cnVjdCBuZGN0bF9jbWQgKmNtZCkNCit7DQorCXN3aXRjaCAoY21kLT5ocGUxLT5n ZW4ubmRfY29tbWFuZCkgew0KKwljYXNlIE5ETl9IUEUxX0NNRF9TTUFSVDoNCisJCXJldHVybiBj bWQtPmhwZTEtPnUuc21hcnQuc3RhdHVzOw0KKwljYXNlIE5ETl9IUEUxX0NNRF9TTUFSVF9USFJF U0hPTEQ6DQorCQlyZXR1cm4gY21kLT5ocGUxLT51LnRocmVzaC5zdGF0dXM7DQorCX0NCisJcmV0 dXJuIC0xVTsNCit9DQorDQogc3RhdGljIHN0cnVjdCBuZGN0bF9jbWQgKmhwZTFfZGltbV9jbWRf bmV3X3NtYXJ0KHN0cnVjdCBuZGN0bF9kaW1tICpkaW1tKQ0KIHsNCiAJc3RydWN0IG5kY3RsX2J1 cyAqYnVzID0gbmRjdGxfZGltbV9nZXRfYnVzKGRpbW0pOw0KQEAgLTYwLDYgKzcxLDcgQEAgc3Rh dGljIHN0cnVjdCBuZGN0bF9jbWQgKmhwZTFfZGltbV9jbWRfbmV3X3NtYXJ0KHN0cnVjdCBuZGN0 bF9kaW1tICpkaW1tKQ0KIAlocGUxLT5nZW4ubmRfc2l6ZV9pbiA9IG9mZnNldG9mKHN0cnVjdCBu ZG5faHBlMV9zbWFydCwgc3RhdHVzKTsNCiAJaHBlMS0+Z2VuLm5kX3NpemVfb3V0ID0gc2l6ZW9m KGhwZTEtPnUuc21hcnQpOw0KIAlocGUxLT51LnNtYXJ0LnN0YXR1cyA9IDM7DQorCWNtZC0+Z2V0 X2Zpcm13YXJlX3N0YXR1cyA9IGhwZTFfZ2V0X2Zpcm13YXJlX3N0YXR1czsNCiANCiAJaHBlMS0+ dS5zbWFydC5pbl92YWxpZF9mbGFncyA9IDA7DQogCWhwZTEtPnUuc21hcnQuaW5fdmFsaWRfZmxh Z3MgfD0gTkROX0hQRTFfU01BUlRfSEVBTFRIX1ZBTElEOw0KQEAgLTcwLDggKzgyLDYgQEAgc3Rh dGljIHN0cnVjdCBuZGN0bF9jbWQgKmhwZTFfZGltbV9jbWRfbmV3X3NtYXJ0KHN0cnVjdCBuZGN0 bF9kaW1tICpkaW1tKQ0KIAlocGUxLT51LnNtYXJ0LmluX3ZhbGlkX2ZsYWdzIHw9IE5ETl9IUEUx X1NNQVJUX1NIVVRET1dOX1ZBTElEOw0KIAlocGUxLT51LnNtYXJ0LmluX3ZhbGlkX2ZsYWdzIHw9 IE5ETl9IUEUxX1NNQVJUX1ZFTkRPUl9WQUxJRDsNCiANCi0JY21kLT5maXJtd2FyZV9zdGF0dXMg PSAmaHBlMS0+dS5zbWFydC5zdGF0dXM7DQotDQogCXJldHVybiBjbWQ7DQogfQ0KIA0KQEAgLTI4 NSw4ICsyOTUsNyBAQCBzdGF0aWMgc3RydWN0IG5kY3RsX2NtZCAqaHBlMV9kaW1tX2NtZF9uZXdf c21hcnRfdGhyZXNob2xkKHN0cnVjdCBuZGN0bF9kaW1tICpkaQ0KIAlocGUxLT5nZW4ubmRfc2l6 ZV9pbiA9IG9mZnNldG9mKHN0cnVjdCBuZG5faHBlMV9zbWFydF90aHJlc2hvbGQsIHN0YXR1cyk7 DQogCWhwZTEtPmdlbi5uZF9zaXplX291dCA9IHNpemVvZihocGUxLT51LnNtYXJ0KTsNCiAJaHBl MS0+dS50aHJlc2guc3RhdHVzID0gMzsNCi0NCi0JY21kLT5maXJtd2FyZV9zdGF0dXMgPSAmaHBl MS0+dS50aHJlc2guc3RhdHVzOw0KKwljbWQtPmdldF9maXJtd2FyZV9zdGF0dXMgPSBocGUxX2dl dF9maXJtd2FyZV9zdGF0dXM7DQogDQogCXJldHVybiBjbWQ7DQogfQ0KZGlmZiAtLWdpdCBhL25k Y3RsL2xpYi9oeXBlcnYuYyBiL25kY3RsL2xpYi9oeXBlcnYuYw0KaW5kZXggOWI0ZmUxMjJhZjJj Li5iYTFiMTIxMTE4MDQgMTAwNjQ0DQotLS0gYS9uZGN0bC9saWIvaHlwZXJ2LmMNCisrKyBiL25k Y3RsL2xpYi9oeXBlcnYuYw0KQEAgLTksNiArOSwxMSBAQA0KICNpbmNsdWRlICJwcml2YXRlLmgi DQogI2luY2x1ZGUgImh5cGVydi5oIg0KIA0KK3N0YXRpYyB1MzIgaHlwZXJ2X2dldF9maXJtd2Fy ZV9zdGF0dXMoc3RydWN0IG5kY3RsX2NtZCAqY21kKQ0KK3sNCisJcmV0dXJuIGNtZC0+aHlwZXJ2 LT51LnN0YXR1czsNCit9DQorDQogc3RhdGljIGJvb2wgaHlwZXJ2X2NtZF9pc19zdXBwb3J0ZWQo c3RydWN0IG5kY3RsX2RpbW0gKmRpbW0sIGludCBjbWQpDQogew0KIAkvKg0KQEAgLTUwLDYgKzU1 LDcgQEAgc3RhdGljIHN0cnVjdCBuZGN0bF9jbWQgKmFsbG9jX2h5cGVydl9jbWQoc3RydWN0IG5k Y3RsX2RpbW0gKmRpbW0sDQogDQogCWNtZC0+ZGltbSA9IGRpbW07DQogCWNtZC0+dHlwZSA9IE5E X0NNRF9DQUxMOw0KKwljbWQtPmdldF9maXJtd2FyZV9zdGF0dXMgPSBoeXBlcnZfZ2V0X2Zpcm13 YXJlX3N0YXR1czsNCiAJY21kLT5zaXplID0gc2l6ZTsNCiAJY21kLT5zdGF0dXMgPSAxOw0KIA0K QEAgLTU4LDcgKzY0LDYgQEAgc3RhdGljIHN0cnVjdCBuZGN0bF9jbWQgKmFsbG9jX2h5cGVydl9j bWQoc3RydWN0IG5kY3RsX2RpbW0gKmRpbW0sDQogCWh5cGVydi0+Z2VuLm5kX2NvbW1hbmQgPSBj b21tYW5kOw0KIAloeXBlcnYtPmdlbi5uZF9zaXplX291dCA9IHNpemVvZihoeXBlcnYtPnUuaGVh bHRoX2luZm8pOw0KIA0KLQljbWQtPmZpcm13YXJlX3N0YXR1cyA9ICZoeXBlcnYtPnUuaGVhbHRo X2luZm8uc3RhdHVzOw0KIAlyZXR1cm4gY21kOw0KIH0NCiANCmRpZmYgLS1naXQgYS9uZGN0bC9s aWIvaW50ZWwuYyBiL25kY3RsL2xpYi9pbnRlbC5jDQppbmRleCBkNjg0YmFjMDNmZWMuLmViY2Vm ZDhiNWFkMiAxMDA2NDQNCi0tLSBhL25kY3RsL2xpYi9pbnRlbC5jDQorKysgYi9uZGN0bC9saWIv aW50ZWwuYw0KQEAgLTE2LDEzICsxNiw0OSBAQA0KICNpbmNsdWRlIDxuZGN0bC9saWJuZGN0bC5o Pg0KICNpbmNsdWRlICJwcml2YXRlLmgiDQogDQorc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9j bWRfZ2V0X2Zpcm13YXJlX3N0YXR1cyhzdHJ1Y3QgbmRjdGxfY21kICpjbWQpDQorew0KKwlzdHJ1 Y3QgbmRfcGtnX2ludGVsICppbnRlbCA9IGNtZC0+aW50ZWw7DQorDQorCXN3aXRjaCAoaW50ZWwt Pmdlbi5uZF9jb21tYW5kKSB7DQorCWNhc2UgTkRfSU5URUxfU01BUlQ6DQorCQlyZXR1cm4gaW50 ZWwtPnNtYXJ0LnN0YXR1czsNCisJY2FzZSBORF9JTlRFTF9TTUFSVF9USFJFU0hPTEQ6DQorCQly ZXR1cm4gaW50ZWwtPnRocmVzaC5zdGF0dXM7DQorCWNhc2UgTkRfSU5URUxfU01BUlRfU0VUX1RI UkVTSE9MRDoNCisJCXJldHVybiBpbnRlbC0+c2V0X3RocmVzaC5zdGF0dXM7DQorCWNhc2UgTkRf SU5URUxfU01BUlRfSU5KRUNUOg0KKwkJcmV0dXJuIGludGVsLT5pbmplY3Quc3RhdHVzOw0KKwlj YXNlIE5EX0lOVEVMX0ZXX0dFVF9JTkZPOg0KKwkJcmV0dXJuIGludGVsLT5pbmZvLnN0YXR1czsN CisJY2FzZSBORF9JTlRFTF9GV19TVEFSVF9VUERBVEU6DQorCQlyZXR1cm4gaW50ZWwtPnN0YXJ0 LnN0YXR1czsNCisJY2FzZSBORF9JTlRFTF9GV19TRU5EX0RBVEE6IHsNCisJCSAgICBzdHJ1Y3Qg bmRfaW50ZWxfZndfc2VuZF9kYXRhICpzZW5kID0gJmludGVsLT5zZW5kOw0KKwkJICAgIHUzMiBz dGF0dXM7DQorDQorCQkgICAgLyogdGhlIGxhc3QgZHdvcmQgYWZ0ZXIgdGhlIHBheWxvYWQgaXMg cmVzZXJ2ZWQgZm9yIHN0YXR1cyAqLw0KKwkJICAgIG1lbWNweSgmc3RhdHVzLCAoKHZvaWQgKikg c2VuZCkgKyBzaXplb2YoKnNlbmQpICsgc2VuZC0+bGVuZ3RoLA0KKwkJCQkgICAgc2l6ZW9mKHN0 YXR1cykpOw0KKwkJICAgIHJldHVybiBzdGF0dXM7DQorCX0NCisJY2FzZSBORF9JTlRFTF9GV19G SU5JU0hfVVBEQVRFOg0KKwkJcmV0dXJuIGludGVsLT5maW5pc2guc3RhdHVzOw0KKwljYXNlIE5E X0lOVEVMX0ZXX0ZJTklTSF9TVEFUVVNfUVVFUlk6DQorCQlyZXR1cm4gaW50ZWwtPmZxdWVyeS5z dGF0dXM7DQorCWNhc2UgTkRfSU5URUxfRU5BQkxFX0xTU19TVEFUVVM6DQorCQlyZXR1cm4gaW50 ZWwtPmxzcy5zdGF0dXM7DQorCX0NCisJcmV0dXJuIC0xVTsNCit9DQorDQogc3RhdGljIGludCBp bnRlbF9jbWRfeGxhdF9maXJtd2FyZV9zdGF0dXMoc3RydWN0IG5kY3RsX2NtZCAqY21kKQ0KIHsN CiAJc3RydWN0IG5kX3BrZ19pbnRlbCAqcGtnID0gY21kLT5pbnRlbDsNCiAJdW5zaWduZWQgaW50 IHN0YXR1cywgZXh0X3N0YXR1czsNCiANCi0Jc3RhdHVzID0gKCpjbWQtPmZpcm13YXJlX3N0YXR1 cykgJiBORF9JTlRFTF9TVEFUVVNfTUFTSzsNCi0JZXh0X3N0YXR1cyA9ICgqY21kLT5maXJtd2Fy ZV9zdGF0dXMpICYgTkRfSU5URUxfU1RBVFVTX0VYVEVORF9NQVNLOw0KKwlzdGF0dXMgPSBjbWQt PmdldF9maXJtd2FyZV9zdGF0dXMoY21kKSAmIE5EX0lOVEVMX1NUQVRVU19NQVNLOw0KKwlleHRf c3RhdHVzID0gY21kLT5nZXRfZmlybXdhcmVfc3RhdHVzKGNtZCkgJiBORF9JTlRFTF9TVEFUVVNf RVhURU5EX01BU0s7DQogDQogCS8qIENvbW1vbiBzdGF0dXNlcyAqLw0KIAlzd2l0Y2ggKHN0YXR1 cykgew0KQEAgLTkxLDYgKzEyNyw3IEBAIHN0YXRpYyBzdHJ1Y3QgbmRjdGxfY21kICphbGxvY19p bnRlbF9jbWQoc3RydWN0IG5kY3RsX2RpbW0gKmRpbW0sDQogCWNtZC0+dHlwZSA9IE5EX0NNRF9D QUxMOw0KIAljbWQtPnNpemUgPSBzaXplOw0KIAljbWQtPnN0YXR1cyA9IDE7DQorCWNtZC0+Z2V0 X2Zpcm13YXJlX3N0YXR1cyA9IGludGVsX2NtZF9nZXRfZmlybXdhcmVfc3RhdHVzOw0KIA0KIAkq KGNtZC0+aW50ZWwpID0gKHN0cnVjdCBuZF9wa2dfaW50ZWwpIHsNCiAJCS5nZW4gPSB7DQpAQCAt MTE0LDcgKzE1MSw2IEBAIHN0YXRpYyBzdHJ1Y3QgbmRjdGxfY21kICppbnRlbF9kaW1tX2NtZF9u ZXdfc21hcnQoc3RydWN0IG5kY3RsX2RpbW0gKmRpbW0pDQogCQkJMCwgc2l6ZW9mKGNtZC0+aW50 ZWwtPnNtYXJ0KSk7DQogCWlmICghY21kKQ0KIAkJcmV0dXJuIE5VTEw7DQotCWNtZC0+ZmlybXdh cmVfc3RhdHVzID0gJmNtZC0+aW50ZWwtPnNtYXJ0LnN0YXR1czsNCiANCiAJcmV0dXJuIGNtZDsN CiB9DQpAQCAtMjY5LDcgKzMwNSw2IEBAIHN0YXRpYyBzdHJ1Y3QgbmRjdGxfY21kICppbnRlbF9k aW1tX2NtZF9uZXdfc21hcnRfdGhyZXNob2xkKA0KIAkJCTAsIHNpemVvZihjbWQtPmludGVsLT50 aHJlc2gpKTsNCiAJaWYgKCFjbWQpDQogCQlyZXR1cm4gTlVMTDsNCi0JY21kLT5maXJtd2FyZV9z dGF0dXMgPSAmY21kLT5pbnRlbC0+dGhyZXNoLnN0YXR1czsNCiANCiAJcmV0dXJuIGNtZDsNCiB9 DQpAQCAtMjk5LDcgKzMzNCw2IEBAIHN0YXRpYyBzdHJ1Y3QgbmRjdGxfY21kICppbnRlbF9kaW1t X2NtZF9uZXdfc21hcnRfc2V0X3RocmVzaG9sZCgNCiAJc2V0X3RocmVzaC0+c3BhcmVzID0gdGhy ZXNoLT5zcGFyZXM7DQogCXNldF90aHJlc2gtPm1lZGlhX3RlbXBlcmF0dXJlID0gdGhyZXNoLT5t ZWRpYV90ZW1wZXJhdHVyZTsNCiAJc2V0X3RocmVzaC0+Y3RybF90ZW1wZXJhdHVyZSA9IHRocmVz aC0+Y3RybF90ZW1wZXJhdHVyZTsNCi0JY21kLT5maXJtd2FyZV9zdGF0dXMgPSAmc2V0X3RocmVz aC0+c3RhdHVzOw0KIA0KIAlyZXR1cm4gY21kOw0KIH0NCkBAIC0zNjAsNyArMzk0LDYgQEAgc3Rh dGljIHN0cnVjdCBuZGN0bF9jbWQgKmludGVsX25ld19zbWFydF9pbmplY3Qoc3RydWN0IG5kY3Rs X2RpbW0gKmRpbW0pDQogCQkJb2Zmc2V0b2Yoc3RydWN0IG5kX2ludGVsX3NtYXJ0X2luamVjdCwg c3RhdHVzKSwgNCk7DQogCWlmICghY21kKQ0KIAkJcmV0dXJuIE5VTEw7DQotCWNtZC0+ZmlybXdh cmVfc3RhdHVzID0gJmNtZC0+aW50ZWwtPmluamVjdC5zdGF0dXM7DQogDQogCXJldHVybiBjbWQ7 DQogfQ0KQEAgLTQ2OCw3ICs1MDEsNiBAQCBzdGF0aWMgc3RydWN0IG5kY3RsX2NtZCAqaW50ZWxf ZGltbV9jbWRfbmV3X2Z3X2dldF9pbmZvKHN0cnVjdCBuZGN0bF9kaW1tICpkaW1tKQ0KIAlpZiAo IWNtZCkNCiAJCXJldHVybiBOVUxMOw0KIA0KLQljbWQtPmZpcm13YXJlX3N0YXR1cyA9ICZjbWQt PmludGVsLT5pbmZvLnN0YXR1czsNCiAJcmV0dXJuIGNtZDsNCiB9DQogDQpAQCAtNTQwLDcgKzU3 Miw2IEBAIHN0YXRpYyBzdHJ1Y3QgbmRjdGxfY21kICppbnRlbF9kaW1tX2NtZF9uZXdfZndfc3Rh cnQoc3RydWN0IG5kY3RsX2RpbW0gKmRpbW0pDQogCWlmICghY21kKQ0KIAkJcmV0dXJuIE5VTEw7 DQogDQotCWNtZC0+ZmlybXdhcmVfc3RhdHVzID0gJmNtZC0+aW50ZWwtPnN0YXJ0LnN0YXR1czsN CiAJcmV0dXJuIGNtZDsNCiB9DQogDQpAQCAtNTgzLDkgKzYxNCw2IEBAIHN0YXRpYyBzdHJ1Y3Qg bmRjdGxfY21kICppbnRlbF9kaW1tX2NtZF9uZXdfZndfc2VuZChzdHJ1Y3QgbmRjdGxfY21kICpz dGFydCwNCiAJY21kLT5pbnRlbC0+c2VuZC5vZmZzZXQgPSBvZmZzZXQ7DQogCWNtZC0+aW50ZWwt PnNlbmQubGVuZ3RoID0gbGVuOw0KIAltZW1jcHkoY21kLT5pbnRlbC0+c2VuZC5kYXRhLCBkYXRh LCBsZW4pOw0KLQkvKiB0aGUgbGFzdCBkd29yZCBpcyByZXNlcnZlZCBmb3Igc3RhdHVzICovDQot CWNtZC0+ZmlybXdhcmVfc3RhdHVzID0NCi0JCSh1bnNpZ25lZCBpbnQgKikoJmNtZC0+aW50ZWwt PnNlbmQuZGF0YVswXSArIGxlbik7DQogCXJldHVybiBjbWQ7DQogfQ0KIA0KQEAgLTYwMiw3ICs2 MzAsNiBAQCBzdGF0aWMgc3RydWN0IG5kY3RsX2NtZCAqaW50ZWxfZGltbV9jbWRfbmV3X2Z3X2Zp bmlzaChzdHJ1Y3QgbmRjdGxfY21kICpzdGFydCkNCiANCiAJY21kLT5pbnRlbC0+ZmluaXNoLmNv bnRleHQgPSBzdGFydC0+aW50ZWwtPnN0YXJ0LmNvbnRleHQ7DQogCWNtZC0+aW50ZWwtPmZpbmlz aC5jdHJsX2ZsYWdzID0gMDsNCi0JY21kLT5maXJtd2FyZV9zdGF0dXMgPSAmY21kLT5pbnRlbC0+ ZmluaXNoLnN0YXR1czsNCiAJcmV0dXJuIGNtZDsNCiB9DQogDQpAQCAtNjE5LDcgKzY0Niw2IEBA IHN0YXRpYyBzdHJ1Y3QgbmRjdGxfY21kICppbnRlbF9kaW1tX2NtZF9uZXdfZndfYWJvcnQoc3Ry dWN0IG5kY3RsX2NtZCAqc3RhcnQpDQogDQogCWNtZC0+aW50ZWwtPmZpbmlzaC5jb250ZXh0ID0g c3RhcnQtPmludGVsLT5zdGFydC5jb250ZXh0Ow0KIAljbWQtPmludGVsLT5maW5pc2guY3RybF9m bGFncyA9IDE7DQotCWNtZC0+ZmlybXdhcmVfc3RhdHVzID0gJmNtZC0+aW50ZWwtPmZpbmlzaC5z dGF0dXM7DQogCXJldHVybiBjbWQ7DQogfQ0KIA0KQEAgLTYzNiw3ICs2NjIsNiBAQCBpbnRlbF9k aW1tX2NtZF9uZXdfZndfZmluaXNoX3F1ZXJ5KHN0cnVjdCBuZGN0bF9jbWQgKnN0YXJ0KQ0KIAkJ cmV0dXJuIE5VTEw7DQogDQogCWNtZC0+aW50ZWwtPmZxdWVyeS5jb250ZXh0ID0gc3RhcnQtPmlu dGVsLT5zdGFydC5jb250ZXh0Ow0KLQljbWQtPmZpcm13YXJlX3N0YXR1cyA9ICZjbWQtPmludGVs LT5mcXVlcnkuc3RhdHVzOw0KIAlyZXR1cm4gY21kOw0KIH0NCiANCkBAIC03MDQsNyArNzI5LDcg QEAgaW50ZWxfY21kX2Z3X3hsYXRfZXh0ZW5kX2Zpcm13YXJlX3N0YXR1cyhzdHJ1Y3QgbmRjdGxf Y21kICpjbWQsDQogc3RhdGljIGVudW0gTkRfRldfU1RBVFVTDQogaW50ZWxfY21kX2Z3X3hsYXRf ZmlybXdhcmVfc3RhdHVzKHN0cnVjdCBuZGN0bF9jbWQgKmNtZCkNCiB7DQotCXVuc2lnbmVkIGlu dCBzdGF0dXMgPSAqY21kLT5maXJtd2FyZV9zdGF0dXM7DQorCXVuc2lnbmVkIGludCBzdGF0dXMg PSBpbnRlbF9jbWRfZ2V0X2Zpcm13YXJlX3N0YXR1cyhjbWQpOw0KIA0KIAlzd2l0Y2ggKHN0YXR1 cyAmIE5EX0lOVEVMX1NUQVRVU19NQVNLKSB7DQogCWNhc2UgTkRfSU5URUxfU1RBVFVTX1NVQ0NF U1M6DQpAQCAtNzQyLDcgKzc2Nyw2IEBAIGludGVsX2RpbW1fY21kX25ld19sc3Moc3RydWN0IG5k Y3RsX2RpbW0gKmRpbW0pDQogCQlyZXR1cm4gTlVMTDsNCiANCiAJY21kLT5pbnRlbC0+bHNzLmVu YWJsZSA9IDE7DQotCWNtZC0+ZmlybXdhcmVfc3RhdHVzID0gJmNtZC0+aW50ZWwtPmxzcy5zdGF0 dXM7DQogCXJldHVybiBjbWQ7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL25kY3RsL2xpYi9saWJuZGN0 bC5jIGIvbmRjdGwvbGliL2xpYm5kY3RsLmMNCmluZGV4IDlhZDFiNzA5MWRjMC4uOTdmZDk4NTQ1 NDQwIDEwMDY0NA0KLS0tIGEvbmRjdGwvbGliL2xpYm5kY3RsLmMNCisrKyBiL25kY3RsL2xpYi9s aWJuZGN0bC5jDQpAQCAtMjUwNiw2ICsyNTA2LDIzIEBAIHN0YXRpYyBzdHJ1Y3QgbmRfY21kX3Zl bmRvcl90YWlsICp0b192ZW5kb3JfdGFpbChzdHJ1Y3QgbmRjdGxfY21kICpjbWQpDQogCXJldHVy biB0YWlsOw0KIH0NCiANCitzdGF0aWMgdTMyIGNtZF9nZXRfZmlybXdhcmVfc3RhdHVzKHN0cnVj dCBuZGN0bF9jbWQgKmNtZCkNCit7DQorCXN3aXRjaCAoY21kLT50eXBlKSB7DQorCWNhc2UgTkRf Q01EX1ZFTkRPUjoNCisJCXJldHVybiB0b192ZW5kb3JfdGFpbChjbWQpLT5zdGF0dXM7DQorCWNh c2UgTkRfQ01EX0dFVF9DT05GSUdfU0laRToNCisJCXJldHVybiBjbWQtPmdldF9zaXplLT5zdGF0 dXM7DQorCWNhc2UgTkRfQ01EX0dFVF9DT05GSUdfREFUQToNCisJCXJldHVybiBjbWQtPmdldF9k YXRhLT5zdGF0dXM7DQorCWNhc2UgTkRfQ01EX1NFVF9DT05GSUdfREFUQToNCisJCXJldHVybiAq KHUzMiAqKSAoY21kLT5jbWRfYnVmDQorCQkJCSsgc2l6ZW9mKHN0cnVjdCBuZF9jbWRfc2V0X2Nv bmZpZ19oZHIpDQorCQkJCSsgY21kLT5pdGVyLm1heF94ZmVyKTsNCisJfQ0KKwlyZXR1cm4gLTFV Ow0KK30NCisNCiBORENUTF9FWFBPUlQgc3RydWN0IG5kY3RsX2NtZCAqbmRjdGxfZGltbV9jbWRf bmV3X3ZlbmRvcl9zcGVjaWZpYygNCiAJCXN0cnVjdCBuZGN0bF9kaW1tICpkaW1tLCB1bnNpZ25l ZCBpbnQgb3Bjb2RlLCBzaXplX3QgaW5wdXRfc2l6ZSwNCiAJCXNpemVfdCBvdXRwdXRfc2l6ZSkN CkBAIC0yNTM1LDcgKzI1NTIsNyBAQCBORENUTF9FWFBPUlQgc3RydWN0IG5kY3RsX2NtZCAqbmRj dGxfZGltbV9jbWRfbmV3X3ZlbmRvcl9zcGVjaWZpYygNCiAJY21kLT5zdGF0dXMgPSAxOw0KIAlj bWQtPnZlbmRvci0+b3Bjb2RlID0gb3Bjb2RlOw0KIAljbWQtPnZlbmRvci0+aW5fbGVuZ3RoID0g aW5wdXRfc2l6ZTsNCi0JY21kLT5maXJtd2FyZV9zdGF0dXMgPSAmdG9fdmVuZG9yX3RhaWwoY21k KS0+c3RhdHVzOw0KKwljbWQtPmdldF9maXJtd2FyZV9zdGF0dXMgPSBjbWRfZ2V0X2Zpcm13YXJl X3N0YXR1czsNCiAJdG9fdmVuZG9yX3RhaWwoY21kKS0+b3V0X2xlbmd0aCA9IG91dHB1dF9zaXpl Ow0KIA0KIAlyZXR1cm4gY21kOw0KQEAgLTI2MDAsNyArMjYxNyw3IEBAIE5EQ1RMX0VYUE9SVCBz dHJ1Y3QgbmRjdGxfY21kICpuZGN0bF9kaW1tX2NtZF9uZXdfY2ZnX3NpemUoc3RydWN0IG5kY3Rs X2RpbW0gKmRpDQogCWNtZC0+dHlwZSA9IE5EX0NNRF9HRVRfQ09ORklHX1NJWkU7DQogCWNtZC0+ c2l6ZSA9IHNpemU7DQogCWNtZC0+c3RhdHVzID0gMTsNCi0JY21kLT5maXJtd2FyZV9zdGF0dXMg PSAmY21kLT5nZXRfc2l6ZS0+c3RhdHVzOw0KKwljbWQtPmdldF9maXJtd2FyZV9zdGF0dXMgPSBj bWRfZ2V0X2Zpcm13YXJlX3N0YXR1czsNCiANCiAJcmV0dXJuIGNtZDsNCiB9DQpAQCAtMjY0MSw3 ICsyNjU4LDcgQEAgTkRDVExfRVhQT1JUIHN0cnVjdCBuZGN0bF9jbWQgKm5kY3RsX2RpbW1fY21k X25ld19jZmdfcmVhZChzdHJ1Y3QgbmRjdGxfY21kICpjZmcNCiAJY21kLT5zdGF0dXMgPSAxOw0K IAljbWQtPmdldF9kYXRhLT5pbl9vZmZzZXQgPSAwOw0KIAljbWQtPmdldF9kYXRhLT5pbl9sZW5n dGggPSBjZmdfc2l6ZS0+Z2V0X3NpemUtPm1heF94ZmVyOw0KLQljbWQtPmZpcm13YXJlX3N0YXR1 cyA9ICZjbWQtPmdldF9kYXRhLT5zdGF0dXM7DQorCWNtZC0+Z2V0X2Zpcm13YXJlX3N0YXR1cyA9 IGNtZF9nZXRfZmlybXdhcmVfc3RhdHVzOw0KIAljbWQtPml0ZXIuaW5pdF9vZmZzZXQgPSAwOw0K IAljbWQtPml0ZXIub2Zmc2V0ID0gJmNtZC0+Z2V0X2RhdGEtPmluX29mZnNldDsNCiAJY21kLT5p dGVyLnhmZXIgPSAmY21kLT5nZXRfZGF0YS0+aW5fbGVuZ3RoOw0KQEAgLTI3MjgsOCArMjc0NSw3 IEBAIE5EQ1RMX0VYUE9SVCBzdHJ1Y3QgbmRjdGxfY21kICpuZGN0bF9kaW1tX2NtZF9uZXdfY2Zn X3dyaXRlKHN0cnVjdCBuZGN0bF9jbWQgKmNmDQogCWNtZC0+c3RhdHVzID0gMTsNCiAJY21kLT5z ZXRfZGF0YS0+aW5fb2Zmc2V0ID0gY2ZnX3JlYWQtPml0ZXIuaW5pdF9vZmZzZXQ7DQogCWNtZC0+ c2V0X2RhdGEtPmluX2xlbmd0aCA9IGNmZ19yZWFkLT5pdGVyLm1heF94ZmVyOw0KLQljbWQtPmZp cm13YXJlX3N0YXR1cyA9ICh1MzIgKikgKGNtZC0+Y21kX2J1Zg0KLQkJKyBzaXplb2Yoc3RydWN0 IG5kX2NtZF9zZXRfY29uZmlnX2hkcikgKyBjZmdfcmVhZC0+aXRlci5tYXhfeGZlcik7DQorCWNt ZC0+Z2V0X2Zpcm13YXJlX3N0YXR1cyA9IGNtZF9nZXRfZmlybXdhcmVfc3RhdHVzOw0KIAljbWQt Pml0ZXIuaW5pdF9vZmZzZXQgPSBjZmdfcmVhZC0+aXRlci5pbml0X29mZnNldDsNCiAJY21kLT5p dGVyLm9mZnNldCA9ICZjbWQtPnNldF9kYXRhLT5pbl9vZmZzZXQ7DQogCWNtZC0+aXRlci54ZmVy ID0gJmNtZC0+c2V0X2RhdGEtPmluX2xlbmd0aDsNCkBAIC0yOTM2LDcgKzI5NTIsNyBAQCBzdGF0 aWMgaW50IGRvX2NtZChpbnQgZmQsIGludCBpb2N0bF9jbWQsIHN0cnVjdCBuZGN0bF9jbWQgKmNt ZCkNCiAJCWRiZyhjdHgsICJidXM6ICVkIGRpbW06ICUjeCBjbWQ6ICVzJXMlcyBzdGF0dXM6ICVk IGZ3OiAlZCAoJXMpXG4iLA0KIAkJCQlidXMtPmlkLCBkaW1tID8gbmRjdGxfZGltbV9nZXRfaGFu ZGxlKGRpbW0pIDogMCwNCiAJCQkJbmFtZSwgc3ViX25hbWUgPyAiOiIgOiAiIiwgc3ViX25hbWUg PyBzdWJfbmFtZSA6ICIiLA0KLQkJCQlyYywgKihjbWQtPmZpcm13YXJlX3N0YXR1cyksIHJjIDwg MCA/DQorCQkJCXJjLCBjbWQtPmdldF9maXJtd2FyZV9zdGF0dXMoY21kKSwgcmMgPCAwID8NCiAJ CQkJc3RyZXJyb3IoZXJybm8pIDogInN1Y2Nlc3MiKTsNCiAJCWlmIChyYyA8IDApDQogCQkJcmV0 dXJuIC1lcnJubzsNCkBAIC0yOTYwLDcgKzI5NzYsNyBAQCBzdGF0aWMgaW50IGRvX2NtZChpbnQg ZmQsIGludCBpb2N0bF9jbWQsIHN0cnVjdCBuZGN0bF9jbWQgKmNtZCkNCiAJCWlmIChpdGVyLT5k aXIgPT0gUkVBRCkNCiAJCQltZW1jcHkoaXRlci0+dG90YWxfYnVmICsgb2Zmc2V0LCBpdGVyLT5k YXRhLA0KIAkJCQkJKihjbWQtPml0ZXIueGZlcikgLSByYyk7DQotCQlpZiAoKihjbWQtPmZpcm13 YXJlX3N0YXR1cykgfHwgcmMpIHsNCisJCWlmIChjbWQtPmdldF9maXJtd2FyZV9zdGF0dXMoY21k KSB8fCByYykgew0KIAkJCXJjID0gb2Zmc2V0ICsgKihjbWQtPml0ZXIueGZlcikgLSByYzsNCiAJ CQlicmVhazsNCiAJCX0NCkBAIC0yOTcwLDcgKzI5ODYsNyBAQCBzdGF0aWMgaW50IGRvX2NtZChp bnQgZmQsIGludCBpb2N0bF9jbWQsIHN0cnVjdCBuZGN0bF9jbWQgKmNtZCkNCiAJCQlidXMtPmlk LCBkaW1tID8gbmRjdGxfZGltbV9nZXRfaGFuZGxlKGRpbW0pIDogMCwNCiAJCQluYW1lLCBzdWJf bmFtZSA/ICI6IiA6ICIiLCBzdWJfbmFtZSA/IHN1Yl9uYW1lIDogIiIsDQogCQkJaXRlci0+dG90 YWxfeGZlciwgaXRlci0+bWF4X3hmZXIsIHJjLA0KLQkJCSooY21kLT5maXJtd2FyZV9zdGF0dXMp LA0KKwkJCWNtZC0+Z2V0X2Zpcm13YXJlX3N0YXR1cyhjbWQpLA0KIAkJCXJjIDwgMCA/IHN0cmVy cm9yKGVycm5vKSA6ICJzdWNjZXNzIik7DQogDQogCXJldHVybiByYzsNCkBAIC0yOTg2LDYgKzMw MDIsMTEgQEAgTkRDVExfRVhQT1JUIGludCBuZGN0bF9jbWRfc3VibWl0KHN0cnVjdCBuZGN0bF9j bWQgKmNtZCkNCiAJc3RydWN0IG5kY3RsX2J1cyAqYnVzID0gY21kX3RvX2J1cyhjbWQpOw0KIAlz dHJ1Y3QgbmRjdGxfY3R4ICpjdHggPSBuZGN0bF9idXNfZ2V0X2N0eChidXMpOw0KIA0KKwlpZiAo IWNtZC0+Z2V0X2Zpcm13YXJlX3N0YXR1cykgew0KKwkJZXJyKGN0eCwgIm1pc3Npbmcgc3RhdHVz IHJldHJpZXZhbFxuIik7DQorCQlyZXR1cm4gLUVJTlZBTDsNCisJfQ0KKw0KIAlpZiAoaW9jdGxf Y21kID09IDApIHsNCiAJCXJjID0gLUVJTlZBTDsNCiAJCWdvdG8gb3V0Ow0KQEAgLTMwNTQsNyAr MzA3NSw3IEBAIE5EQ1RMX0VYUE9SVCBpbnQgbmRjdGxfY21kX2dldF9zdGF0dXMoc3RydWN0IG5k Y3RsX2NtZCAqY21kKQ0KIA0KIE5EQ1RMX0VYUE9SVCB1bnNpZ25lZCBpbnQgbmRjdGxfY21kX2dl dF9maXJtd2FyZV9zdGF0dXMoc3RydWN0IG5kY3RsX2NtZCAqY21kKQ0KIHsNCi0JcmV0dXJuICoo Y21kLT5maXJtd2FyZV9zdGF0dXMpOw0KKwlyZXR1cm4gY21kLT5nZXRfZmlybXdhcmVfc3RhdHVz KGNtZCk7DQogfQ0KIA0KIE5EQ1RMX0VYUE9SVCBjb25zdCBjaGFyICpuZGN0bF9yZWdpb25fZ2V0 X2Rldm5hbWUoc3RydWN0IG5kY3RsX3JlZ2lvbiAqcmVnaW9uKQ0KZGlmZiAtLWdpdCBhL25kY3Rs L2xpYi9tc2Z0LmMgYi9uZGN0bC9saWIvbXNmdC5jDQppbmRleCAxOTQ1M2NkODYxNDMuLmMwNjBi MWYyNjA5ZSAxMDA2NDQNCi0tLSBhL25kY3RsL2xpYi9tc2Z0LmMNCisrKyBiL25kY3RsL2xpYi9t c2Z0LmMNCkBAIC0yMiw2ICsyMiwxMSBAQA0KICNkZWZpbmUgQ01EX01TRlQoX2MpICgoX2MpLT5t c2Z0KQ0KICNkZWZpbmUgQ01EX01TRlRfU01BUlQoX2MpIChDTURfTVNGVChfYyktPnUuc21hcnQu ZGF0YSkNCiANCitzdGF0aWMgdTMyIG1zZnRfZ2V0X2Zpcm13YXJlX3N0YXR1cyhzdHJ1Y3QgbmRj dGxfY21kICpjbWQpDQorew0KKwlyZXR1cm4gY21kLT5tc2Z0LT51LnNtYXJ0LnN0YXR1czsNCit9 DQorDQogc3RhdGljIHN0cnVjdCBuZGN0bF9jbWQgKm1zZnRfZGltbV9jbWRfbmV3X3NtYXJ0KHN0 cnVjdCBuZGN0bF9kaW1tICpkaW1tKQ0KIHsNCiAJc3RydWN0IG5kY3RsX2J1cyAqYnVzID0gbmRj dGxfZGltbV9nZXRfYnVzKGRpbW0pOw0KQEAgLTU4LDggKzYzLDcgQEAgc3RhdGljIHN0cnVjdCBu ZGN0bF9jbWQgKm1zZnRfZGltbV9jbWRfbmV3X3NtYXJ0KHN0cnVjdCBuZGN0bF9kaW1tICpkaW1t KQ0KIAltc2Z0LT5nZW4ubmRfc2l6ZV9pbiA9IG9mZnNldG9mKHN0cnVjdCBuZG5fbXNmdF9zbWFy dCwgc3RhdHVzKTsNCiAJbXNmdC0+Z2VuLm5kX3NpemVfb3V0ID0gc2l6ZW9mKG1zZnQtPnUuc21h cnQpOw0KIAltc2Z0LT51LnNtYXJ0LnN0YXR1cyA9IDA7DQotDQotCWNtZC0+ZmlybXdhcmVfc3Rh dHVzID0gJm1zZnQtPnUuc21hcnQuc3RhdHVzOw0KKwljbWQtPmdldF9maXJtd2FyZV9zdGF0dXMg PSBtc2Z0X2dldF9maXJtd2FyZV9zdGF0dXM7DQogDQogCXJldHVybiBjbWQ7DQogfQ0KZGlmZiAt LWdpdCBhL25kY3RsL2xpYi9uZml0LmMgYi9uZGN0bC9saWIvbmZpdC5jDQppbmRleCBiMTBlZGIx OTQzZTguLmY5ZmJlNzNmNzQ0NiAxMDA2NDQNCi0tLSBhL25kY3RsL2xpYi9uZml0LmMNCisrKyBi L25kY3RsL2xpYi9uZml0LmMNCkBAIC0xNSw2ICsxNSwyNCBAQA0KICNpbmNsdWRlICJwcml2YXRl LmgiDQogI2luY2x1ZGUgPG5kY3RsL2xpYm5kY3RsLW5maXQuaD4NCiANCitzdGF0aWMgdTMyIGJ1 c19nZXRfZmlybXdhcmVfc3RhdHVzKHN0cnVjdCBuZGN0bF9jbWQgKmNtZCkNCit7DQorCXN0cnVj dCBuZF9jbWRfYnVzICpjbWRfYnVzID0gY21kLT5jbWRfYnVzOw0KKw0KKwlzd2l0Y2ggKGNtZF9i dXMtPmdlbi5uZF9jb21tYW5kKSB7DQorCWNhc2UgTkZJVF9DTURfVFJBTlNMQVRFX1NQQToNCisJ CXJldHVybiBjbWRfYnVzLT54bGF0X3NwYS5zdGF0dXM7DQorCWNhc2UgTkZJVF9DTURfQVJTX0lO SkVDVF9TRVQ6DQorCQlyZXR1cm4gY21kX2J1cy0+ZXJyX2luai5zdGF0dXM7DQorCWNhc2UgTkZJ VF9DTURfQVJTX0lOSkVDVF9DTEVBUjoNCisJCXJldHVybiBjbWRfYnVzLT5lcnJfaW5qX2Nsci5z dGF0dXM7DQorCWNhc2UgTkZJVF9DTURfQVJTX0lOSkVDVF9HRVQ6DQorCQlyZXR1cm4gY21kX2J1 cy0+ZXJyX2lual9zdGF0LnN0YXR1czsNCisJfQ0KKw0KKwlyZXR1cm4gLTFVOw0KK30NCisNCiAv KioNCiAgKiBuZGN0bF9idXNfaXNfbmZpdF9jbWRfc3VwcG9ydGVkIC0gYXNrIG5maXQgY29tbWFu ZCBpcyBzdXBwb3J0ZWQgb24gQGJ1cy4NCiAgKiBAYnVzOiBuZGN0bF9idXMgaW5zdGFuY2UNCkBA IC01NCwxNSArNzIsMTUgQEAgc3RhdGljIHN0cnVjdCBuZGN0bF9jbWQgKm5kY3RsX2J1c19jbWRf bmV3X3RyYW5zbGF0ZV9zcGEoc3RydWN0IG5kY3RsX2J1cyAqYnVzKQ0KIAljbWQtPmJ1cyA9IGJ1 czsNCiAJbmRjdGxfY21kX3JlZihjbWQpOw0KIAljbWQtPnR5cGUgPSBORF9DTURfQ0FMTDsNCisJ Y21kLT5nZXRfZmlybXdhcmVfc3RhdHVzID0gYnVzX2dldF9maXJtd2FyZV9zdGF0dXM7DQogCWNt ZC0+c2l6ZSA9IHNpemU7DQogCWNtZC0+c3RhdHVzID0gMTsNCi0JcGtnID0gKHN0cnVjdCBuZF9j bWRfcGtnICopJmNtZC0+Y21kX2J1ZlswXTsNCisJcGtnID0gJmNtZC0+Y21kX2J1cy0+Z2VuOw0K IAlwa2ctPm5kX2NvbW1hbmQgPSBORklUX0NNRF9UUkFOU0xBVEVfU1BBOw0KIAlwa2ctPm5kX3Np emVfaW4gPSBzaXplb2YodW5zaWduZWQgbG9uZyBsb25nKTsNCiAJcGtnLT5uZF9zaXplX291dCA9 IHNwYV9sZW5ndGg7DQogCXBrZy0+bmRfZndfc2l6ZSA9IHNwYV9sZW5ndGg7DQotCXRyYW5zbGF0 ZV9zcGEgPSAoc3RydWN0IG5kX2NtZF90cmFuc2xhdGVfc3BhICopJnBrZy0+bmRfcGF5bG9hZFsw XTsNCi0JY21kLT5maXJtd2FyZV9zdGF0dXMgPSAmdHJhbnNsYXRlX3NwYS0+c3RhdHVzOw0KKwl0 cmFuc2xhdGVfc3BhID0gJmNtZC0+Y21kX2J1cy0+eGxhdF9zcGE7DQogCXRyYW5zbGF0ZV9zcGEt PnRyYW5zbGF0ZV9sZW5ndGggPSBzcGFfbGVuZ3RoOw0KIA0KIAlyZXR1cm4gY21kOw0KQEAgLTE0 Niw3ICsxNjQsNiBAQCBpbnQgbmRjdGxfYnVzX25maXRfdHJhbnNsYXRlX3NwYShzdHJ1Y3QgbmRj dGxfYnVzICpidXMsDQogDQogc3RydWN0IG5kY3RsX2NtZCAqbmRjdGxfYnVzX2NtZF9uZXdfZXJy X2luaihzdHJ1Y3QgbmRjdGxfYnVzICpidXMpDQogew0KLQlzdHJ1Y3QgbmRfY21kX2Fyc19lcnJf aW5qICplcnJfaW5qOw0KIAlzaXplX3Qgc2l6ZSwgY21kX2xlbmd0aDsNCiAJc3RydWN0IG5kX2Nt ZF9wa2cgKnBrZzsNCiAJc3RydWN0IG5kY3RsX2NtZCAqY21kOw0KQEAgLTE2MCw2ICsxNzcsNyBA QCBzdHJ1Y3QgbmRjdGxfY21kICpuZGN0bF9idXNfY21kX25ld19lcnJfaW5qKHN0cnVjdCBuZGN0 bF9idXMgKmJ1cykNCiAJY21kLT5idXMgPSBidXM7DQogCW5kY3RsX2NtZF9yZWYoY21kKTsNCiAJ Y21kLT50eXBlID0gTkRfQ01EX0NBTEw7DQorCWNtZC0+Z2V0X2Zpcm13YXJlX3N0YXR1cyA9IGJ1 c19nZXRfZmlybXdhcmVfc3RhdHVzOw0KIAljbWQtPnNpemUgPSBzaXplOw0KIAljbWQtPnN0YXR1 cyA9IDE7DQogCXBrZyA9IChzdHJ1Y3QgbmRfY21kX3BrZyAqKSZjbWQtPmNtZF9idWZbMF07DQpA QCAtMTY3LDE1ICsxODUsMTIgQEAgc3RydWN0IG5kY3RsX2NtZCAqbmRjdGxfYnVzX2NtZF9uZXdf ZXJyX2luaihzdHJ1Y3QgbmRjdGxfYnVzICpidXMpDQogCXBrZy0+bmRfc2l6ZV9pbiA9IG9mZnNl dG9mKHN0cnVjdCBuZF9jbWRfYXJzX2Vycl9pbmosIHN0YXR1cyk7DQogCXBrZy0+bmRfc2l6ZV9v dXQgPSBjbWRfbGVuZ3RoIC0gcGtnLT5uZF9zaXplX2luOw0KIAlwa2ctPm5kX2Z3X3NpemUgPSBw a2ctPm5kX3NpemVfb3V0Ow0KLQllcnJfaW5qID0gKHN0cnVjdCBuZF9jbWRfYXJzX2Vycl9pbmog KikmcGtnLT5uZF9wYXlsb2FkWzBdOw0KLQljbWQtPmZpcm13YXJlX3N0YXR1cyA9ICZlcnJfaW5q LT5zdGF0dXM7DQogDQogCXJldHVybiBjbWQ7DQogfQ0KIA0KIHN0cnVjdCBuZGN0bF9jbWQgKm5k Y3RsX2J1c19jbWRfbmV3X2Vycl9pbmpfY2xyKHN0cnVjdCBuZGN0bF9idXMgKmJ1cykNCiB7DQot CXN0cnVjdCBuZF9jbWRfYXJzX2Vycl9pbmpfY2xyICplcnJfaW5qX2NscjsNCiAJc2l6ZV90IHNp emUsIGNtZF9sZW5ndGg7DQogCXN0cnVjdCBuZF9jbWRfcGtnICpwa2c7DQogCXN0cnVjdCBuZGN0 bF9jbWQgKmNtZDsNCkBAIC0xODksNiArMjA0LDcgQEAgc3RydWN0IG5kY3RsX2NtZCAqbmRjdGxf YnVzX2NtZF9uZXdfZXJyX2lual9jbHIoc3RydWN0IG5kY3RsX2J1cyAqYnVzKQ0KIAljbWQtPmJ1 cyA9IGJ1czsNCiAJbmRjdGxfY21kX3JlZihjbWQpOw0KIAljbWQtPnR5cGUgPSBORF9DTURfQ0FM TDsNCisJY21kLT5nZXRfZmlybXdhcmVfc3RhdHVzID0gYnVzX2dldF9maXJtd2FyZV9zdGF0dXM7 DQogCWNtZC0+c2l6ZSA9IHNpemU7DQogCWNtZC0+c3RhdHVzID0gMTsNCiAJcGtnID0gKHN0cnVj dCBuZF9jbWRfcGtnICopJmNtZC0+Y21kX2J1ZlswXTsNCkBAIC0xOTYsOCArMjEyLDYgQEAgc3Ry dWN0IG5kY3RsX2NtZCAqbmRjdGxfYnVzX2NtZF9uZXdfZXJyX2lual9jbHIoc3RydWN0IG5kY3Rs X2J1cyAqYnVzKQ0KIAlwa2ctPm5kX3NpemVfaW4gPSBvZmZzZXRvZihzdHJ1Y3QgbmRfY21kX2Fy c19lcnJfaW5qX2Nsciwgc3RhdHVzKTsNCiAJcGtnLT5uZF9zaXplX291dCA9IGNtZF9sZW5ndGgg LSBwa2ctPm5kX3NpemVfaW47DQogCXBrZy0+bmRfZndfc2l6ZSA9IHBrZy0+bmRfc2l6ZV9vdXQ7 DQotCWVycl9pbmpfY2xyID0gKHN0cnVjdCBuZF9jbWRfYXJzX2Vycl9pbmpfY2xyICopJnBrZy0+ bmRfcGF5bG9hZFswXTsNCi0JY21kLT5maXJtd2FyZV9zdGF0dXMgPSAmZXJyX2lual9jbHItPnN0 YXR1czsNCiANCiAJcmV0dXJuIGNtZDsNCiB9DQpAQCAtMjA1LDcgKzIxOSw2IEBAIHN0cnVjdCBu ZGN0bF9jbWQgKm5kY3RsX2J1c19jbWRfbmV3X2Vycl9pbmpfY2xyKHN0cnVjdCBuZGN0bF9idXMg KmJ1cykNCiBzdHJ1Y3QgbmRjdGxfY21kICpuZGN0bF9idXNfY21kX25ld19lcnJfaW5qX3N0YXQo c3RydWN0IG5kY3RsX2J1cyAqYnVzLA0KIAl1MzIgYnVmX3NpemUpDQogew0KLQlzdHJ1Y3QgbmRf Y21kX2Fyc19lcnJfaW5qX3N0YXQgKmVycl9pbmpfc3RhdDsNCiAJc2l6ZV90IHNpemUsIGNtZF9s ZW5ndGg7DQogCXN0cnVjdCBuZF9jbWRfcGtnICpwa2c7DQogCXN0cnVjdCBuZGN0bF9jbWQgKmNt ZDsNCkBAIC0yMjAsNiArMjMzLDcgQEAgc3RydWN0IG5kY3RsX2NtZCAqbmRjdGxfYnVzX2NtZF9u ZXdfZXJyX2lual9zdGF0KHN0cnVjdCBuZGN0bF9idXMgKmJ1cywNCiAJY21kLT5idXMgPSBidXM7 DQogCW5kY3RsX2NtZF9yZWYoY21kKTsNCiAJY21kLT50eXBlID0gTkRfQ01EX0NBTEw7DQorCWNt ZC0+Z2V0X2Zpcm13YXJlX3N0YXR1cyA9IGJ1c19nZXRfZmlybXdhcmVfc3RhdHVzOw0KIAljbWQt PnNpemUgPSBzaXplOw0KIAljbWQtPnN0YXR1cyA9IDE7DQogCXBrZyA9IChzdHJ1Y3QgbmRfY21k X3BrZyAqKSZjbWQtPmNtZF9idWZbMF07DQpAQCAtMjI3LDggKzI0MSw2IEBAIHN0cnVjdCBuZGN0 bF9jbWQgKm5kY3RsX2J1c19jbWRfbmV3X2Vycl9pbmpfc3RhdChzdHJ1Y3QgbmRjdGxfYnVzICpi dXMsDQogCXBrZy0+bmRfc2l6ZV9pbiA9IDA7DQogCXBrZy0+bmRfc2l6ZV9vdXQgPSBjbWRfbGVu Z3RoICsgYnVmX3NpemU7DQogCXBrZy0+bmRfZndfc2l6ZSA9IHBrZy0+bmRfc2l6ZV9vdXQ7DQot CWVycl9pbmpfc3RhdCA9IChzdHJ1Y3QgbmRfY21kX2Fyc19lcnJfaW5qX3N0YXQgKikmcGtnLT5u ZF9wYXlsb2FkWzBdOw0KLQljbWQtPmZpcm13YXJlX3N0YXR1cyA9ICZlcnJfaW5qX3N0YXQtPnN0 YXR1czsNCiANCiAJcmV0dXJuIGNtZDsNCiB9DQpkaWZmIC0tZ2l0IGEvbmRjdGwvbGliL3ByaXZh dGUuaCBiL25kY3RsL2xpYi9wcml2YXRlLmgNCmluZGV4IDE2YmY4Zjk1MzgyOC4uM2MxMjFiZDAw NDM3IDEwMDY0NA0KLS0tIGEvbmRjdGwvbGliL3ByaXZhdGUuaA0KKysrIGIvbmRjdGwvbGliL3By aXZhdGUuaA0KQEAgLTMyLDYgKzMyLDcgQEANCiAjaW5jbHVkZSAiaHBlMS5oIg0KICNpbmNsdWRl ICJtc2Z0LmgiDQogI2luY2x1ZGUgImh5cGVydi5oIg0KKyNpbmNsdWRlICJsaWJuZGN0bC1uZml0 LmgiDQogDQogc3RydWN0IG52ZGltbV9kYXRhIHsNCiAJc3RydWN0IG5kY3RsX2NtZCAqY21kX3Jl YWQ7DQpAQCAtMjMzLDcgKzIzNCw3IEBAIHN0cnVjdCBuZGN0bF9uYW1lc3BhY2Ugew0KICAqIEB0 eXBlOiBjbWQgbnVtYmVyDQogICogQHNpemU6IHRvdGFsIHNpemUgb2YgdGhlIG5kY3RsX2NtZCBh bGxvY2F0aW9uDQogICogQHN0YXR1czogbmVnYXRpdmUgaWYgZmFpbGVkLCAwIGlmIHN1Y2Nlc3Ms ID4gMCBpZiBuZXZlciBzdWJtaXR0ZWQNCi0gKiBAZmlybXdhcmVfc3RhdHVzOiBORklUIGNvbW1h bmQgb3V0cHV0IHN0YXR1cyBjb2RlDQorICogQGdldF9maXJtd2FyZV9zdGF0dXM6IHBlciBjb21t YW5kIGZpcm13YXJlIHN0YXR1cyBmaWVsZCByZXRyaWV2YWwNCiAgKiBAaXRlcjogaXRlcmF0b3Ig Zm9yIG11bHRpLXhmZXIgY29tbWFuZHMNCiAgKiBAc291cmNlOiBzb3VyY2UgY21kIG9mIGFuIGlu aGVyaXRlZCBpdGVyLnRvdGFsX2J1Zg0KICAqDQpAQCAtMjUwLDcgKzI1MSw3IEBAIHN0cnVjdCBu ZGN0bF9jbWQgew0KIAlpbnQgdHlwZTsNCiAJaW50IHNpemU7DQogCWludCBzdGF0dXM7DQotCXUz MiAqZmlybXdhcmVfc3RhdHVzOw0KKwl1MzIgKCpnZXRfZmlybXdhcmVfc3RhdHVzKShzdHJ1Y3Qg bmRjdGxfY21kICpjbWQpOw0KIAlzdHJ1Y3QgbmRjdGxfY21kX2l0ZXIgew0KIAkJdTMyIGluaXRf b2Zmc2V0Ow0KIAkJdTMyICpvZmZzZXQ7DQpAQCAtMjY4LDYgKzI2OSw3IEBAIHN0cnVjdCBuZGN0 bF9jbWQgew0KIAkJc3RydWN0IG5kX2NtZF9hcnNfc3RhdHVzIGFyc19zdGF0dXNbMF07DQogCQlz dHJ1Y3QgbmRfY21kX2NsZWFyX2Vycm9yIGNsZWFyX2VyclswXTsNCiAJCXN0cnVjdCBuZF9jbWRf cGtnIHBrZ1swXTsNCisJCXN0cnVjdCBuZF9jbWRfYnVzIGNtZF9idXNbMF07DQogCQlzdHJ1Y3Qg bmRuX3BrZ19ocGUxIGhwZTFbMF07DQogCQlzdHJ1Y3QgbmRuX3BrZ19tc2Z0IG1zZnRbMF07DQog CQlzdHJ1Y3QgbmRfcGtnX2h5cGVydiBoeXBlcnZbMF07DQpAQCAtMzQxLDYgKzM0Myw3IEBAIHN0 cnVjdCBuZGN0bF9kaW1tX29wcyB7DQogCXN0cnVjdCBuZGN0bF9jbWQgKigqbmV3X2Fja19zaHV0 ZG93bl9jb3VudCkoc3RydWN0IG5kY3RsX2RpbW0gKik7DQogCWludCAoKmZ3X3VwZGF0ZV9zdXBw b3J0ZWQpKHN0cnVjdCBuZGN0bF9kaW1tICopOw0KIAlpbnQgKCp4bGF0X2Zpcm13YXJlX3N0YXR1 cykoc3RydWN0IG5kY3RsX2NtZCAqKTsNCisJdTMyICgqZ2V0X2Zpcm13YXJlX3N0YXR1cykoc3Ry dWN0IG5kY3RsX2NtZCAqKTsNCiB9Ow0KIA0KIGV4dGVybiBzdHJ1Y3QgbmRjdGxfZGltbV9vcHMg KiBjb25zdCBpbnRlbF9kaW1tX29wczsNCmRpZmYgLS1naXQgYS9uZGN0bC9saWJuZGN0bC1uZml0 LmggYi9uZGN0bC9saWJuZGN0bC1uZml0LmgNCmluZGV4IGQ1MzM1YzIzZDI4Yi4uOGM0ZjcyZGZh N2VjIDEwMDY0NA0KLS0tIGEvbmRjdGwvbGlibmRjdGwtbmZpdC5oDQorKysgYi9uZGN0bC9saWJu ZGN0bC1uZml0LmgNCkBAIC0xNyw2ICsxNyw3IEBADQogI2RlZmluZSBfX0xJQk5EQ1RMX05GSVRf SF9fDQogDQogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+DQorI2luY2x1ZGUgPG5kY3RsL25kY3Rs Lmg+DQogDQogLyoNCiAgKiBsaWJuZGN0bC1uZml0LmggOiBkZWZpbml0aW9ucyBmb3IgTkZJVCBy ZWxhdGVkIGNvbW1hbmRzL2Z1bmN0aW9ucy4NCkBAIC04Nyw2ICs4OCwxNiBAQCBzdHJ1Y3QgbmRf Y21kX2Fyc19lcnJfaW5qX3N0YXQgew0KIAl9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIHJlY29y ZFswXTsNCiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOw0KIA0KK3N0cnVjdCBuZF9jbWRfYnVz IHsNCisJc3RydWN0IG5kX2NtZF9wa2cgZ2VuOw0KKwl1bmlvbiB7DQorCQlzdHJ1Y3QgbmRfY21k X2Fyc19lcnJfaW5qX3N0YXQgZXJyX2lual9zdGF0Ow0KKwkJc3RydWN0IG5kX2NtZF9hcnNfZXJy X2lual9jbHIgZXJyX2lual9jbHI7DQorCQlzdHJ1Y3QgbmRfY21kX2Fyc19lcnJfaW5qIGVycl9p bmo7DQorCQlzdHJ1Y3QgbmRfY21kX3RyYW5zbGF0ZV9zcGEgeGxhdF9zcGE7DQorCX07DQorfTsN CisNCiBpbnQgbmRjdGxfYnVzX2lzX25maXRfY21kX3N1cHBvcnRlZChzdHJ1Y3QgbmRjdGxfYnVz ICpidXMsIGludCBjbWQpOw0KIA0KICNlbmRpZiAvKiBfX0xJQk5EQ1RMX05GSVRfSF9fICovDQpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1udmRp bW0gbWFpbGluZyBsaXN0IC0tIGxpbnV4LW52ZGltbUBsaXN0cy4wMS5vcmcKVG8gdW5zdWJzY3Jp YmUgc2VuZCBhbiBlbWFpbCB0byBsaW51eC1udmRpbW0tbGVhdmVAbGlzdHMuMDEub3JnCg==