From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9098A6E1A8 for ; Mon, 11 Nov 2019 08:31:43 +0000 (UTC) From: Arkadiusz Hiler Date: Mon, 11 Nov 2019 10:30:54 +0200 Message-ID: <20191111083054.365353-1-arkadiusz.hiler@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3] lib/igt_list: Update, clean-up and document igt_list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: T3VyIGxpc3Qgd2FzIHNvbWV0aGluZyBiZXR3ZWVuIFdheWxhbmQgYW5kIExpbnV4IEtlcm5lbCBs aXN0CmltcGxlbWVudGF0aW9ucywgcmlnaHQgaW4gdGhlIHVuY2FubnkgdmFsbGV5LgoKT24gdG9w IG9mIHRoYXQgaXQgZmFsc2VseSBjbGFpbWVkIHRoYXQgaXQncyBhIHN0cmFpZ2h0IGNvcHkgZnJv bSB0aGUKV2F5bGFuZCBwcm9qZWN0LgoKTGV0J3MgbWFrZSBvdXIgaW1wbCBtb3JlIGFraW4gdG8g dGhlIGtlcm5lbCBvbmUgdG8gZWFzZSB0aGUgY29nbml0aXZlCmRpc3NvbmFuY2UgZm9yIHRoZSBk ZXZlbG9wZXJzIHdvcmtpbmcgb24gYWxsIHRob3NlIHByb2plY3RzLgoKVGhpcyBwYXRjaDoKICog bWltaWNzIHRoZSBjdXJyZW50IGtlcm5lbCBsaXN0IGludGVyZmFjZQogKiBzZXBhcmF0ZXMgSUdU IGhlbHBlcnMgaW4gdGhlIHNvdXJjZSBmaWxlcwogKiBhZGRzIGJyaWVmIGV4cGxhbmF0aW9uIGFu ZCBjb2RlIGV4YW1wbGUgZm9yIGlndC1kb2MKICogaW50cm9kdWNlcyBpZ3RfbGlzdC5jIGFzIHN0 YXRpYyBpbmxpbmVzIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUgZG9jcwoKdjI6IG1pbWljIHRoZSBr ZXJuZWwgaW5zdGVhZCBvZiB3YXlsYW5kIChDaHJpcykKICAgIC0gX2hlYWQgc3VmZml4IGZvciB0 aGUgc2VudGluZWwvbGluayBzdHJ1Y3QKICAgIC0gX2VudHJ5XyBpbiBpdGVyYXRvciBuYW1lcyB0 aGF0IGdvIG92ZXIgdGhlIGVsZW1lbnRzCnYzOiBJIGZvcmdvdCB0byBtZXJnZSB0aGlzIGluIHRp bWUgYW5kIHRoZXJlIHdhcyBhbm90aGVyIGNhbGwgc2l0ZQogICAgdGhhdCBoYWQgdG8gYmUgY29u dmVydGVkIGluIGdlbV9zcGluX2JhdGNoLmMKCkNjOiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2 YWxhQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr PgpTaWduZWQtb2ZmLWJ5OiBBcmthZGl1c3ogSGlsZXIgPGFya2FkaXVzei5oaWxlckBpbnRlbC5j b20+CkFja2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KUmV2 aWV3ZWQtYnk6IFBldHJpIExhdHZhbGEgPHBldHJpLmxhdHZhbGFAaW50ZWwuY29tPgotLS0KIGJl bmNobWFya3MvZ2VtX3dzaW0uYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogLi4u L2lndC1ncHUtdG9vbHMvaWd0LWdwdS10b29scy1kb2NzLnhtbCAgICAgIHwgICAxICsKIGxpYi9N YWtlZmlsZS5zb3VyY2VzICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBsaWIvaWd0 X2NoYW1lbGl1bS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIGxpYi9pZ3Rf Y29yZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogbGliL2lndF9k dW1teWxvYWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICstCiBsaWIvaWd0X2R1 bW15bG9hZC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGxpYi9pZ3Rfa21v ZC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogbGliL2lndF9rbW9k LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBsaWIvaWd0X2xpc3Qu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzcgKysrKysrKysKIGxpYi9pZ3Rf bGlzdC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE3NiArKysrKysrKystLS0t LS0tLS0KIGxpYi9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MSArCiB0ZXN0cy9pOTE1L2dlbV9zcGluX2JhdGNoLmMgICAgICAgICAgICAgICAgICAgfCAgIDQg Ky0KIHRlc3RzL3ZjNF9wdXJnZWFibGVfYm8uYyAgICAgICAgICAgICAgICAgICAgICB8ICAyOCAr LS0KIDE0IGZpbGVzIGNoYW5nZWQsIDIwOSBpbnNlcnRpb25zKCspLCAxMjggZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2lndF9saXN0LmMKCmRpZmYgLS1naXQgYS9iZW5jaG1h cmtzL2dlbV93c2ltLmMgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMKaW5kZXggMzM3ZTEzZjkuLjYz MDVlMGQ3IDEwMDY0NAotLS0gYS9iZW5jaG1hcmtzL2dlbV93c2ltLmMKKysrIGIvYmVuY2htYXJr cy9nZW1fd3NpbS5jCkBAIC0xNDIsNyArMTQyLDcgQEAgc3RydWN0IHdfc3RlcAogCiAJLyogSW1w bGVtZW50YXRpb24gZGV0YWlscyAqLwogCXVuc2lnbmVkIGludCBpZHg7Ci0Jc3RydWN0IGlndF9s aXN0IHJxX2xpbms7CisJc3RydWN0IGlndF9saXN0X2hlYWQgcnFfbGluazsKIAl1bnNpZ25lZCBp bnQgcmVxdWVzdDsKIAl1bnNpZ25lZCBpbnQgcHJlZW1wdF91czsKIApAQCAtMjEzLDcgKzIxMyw3 IEBAIHN0cnVjdCB3b3JrbG9hZAogCXVuc2lnbmVkIGxvbmcgcWRfc3VtW05VTV9FTkdJTkVTXTsK IAl1bnNpZ25lZCBsb25nIG5yX2JiW05VTV9FTkdJTkVTXTsKIAotCXN0cnVjdCBpZ3RfbGlzdCBy ZXF1ZXN0c1tOVU1fRU5HSU5FU107CisJc3RydWN0IGlndF9saXN0X2hlYWQgcmVxdWVzdHNbTlVN X0VOR0lORVNdOwogCXVuc2lnbmVkIGludCBucmVxdWVzdFtOVU1fRU5HSU5FU107CiAKIAlzdHJ1 Y3Qgd29ya2xvYWQgKmdsb2JhbF93cms7CkBAIC0xMDYxLDcgKzEwNjEsNyBAQCBjbG9uZV93b3Jr bG9hZChzdHJ1Y3Qgd29ya2xvYWQgKl93cmspCiAJfQogCiAJZm9yIChpID0gMDsgaSA8IE5VTV9F TkdJTkVTOyBpKyspCi0JCWlndF9saXN0X2luaXQoJndyay0+cmVxdWVzdHNbaV0pOworCQlJR1Rf SU5JVF9MSVNUX0hFQUQoJndyay0+cmVxdWVzdHNbaV0pOwogCiAJcmV0dXJuIHdyazsKIH0KZGlm ZiAtLWdpdCBhL2RvY3MvcmVmZXJlbmNlL2lndC1ncHUtdG9vbHMvaWd0LWdwdS10b29scy1kb2Nz LnhtbCBiL2RvY3MvcmVmZXJlbmNlL2lndC1ncHUtdG9vbHMvaWd0LWdwdS10b29scy1kb2NzLnht bAppbmRleCBhYzgzMjcyZi4uM2YxNGQ3YmUgMTAwNjQ0Ci0tLSBhL2RvY3MvcmVmZXJlbmNlL2ln dC1ncHUtdG9vbHMvaWd0LWdwdS10b29scy1kb2NzLnhtbAorKysgYi9kb2NzL3JlZmVyZW5jZS9p Z3QtZ3B1LXRvb2xzL2lndC1ncHUtdG9vbHMtZG9jcy54bWwKQEAgLTMxLDYgKzMxLDcgQEAKICAg ICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvaWd0X2d2dC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBo cmVmPSJ4bWwvaWd0X2ttb2QueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2lndF9r bXMueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2lndF9saXN0LnhtbCIvPgogICAg IDx4aTppbmNsdWRlIGhyZWY9InhtbC9pZ3RfcG0ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJl Zj0ieG1sL2lndF9wcmltZXMueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2lndF9y YW5kLnhtbCIvPgpkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxlLnNvdXJjZXMgYi9saWIvTWFrZWZp bGUuc291cmNlcwppbmRleCAzNGUwYzAxMi4uMWI1OGI2ZDAgMTAwNjQ0Ci0tLSBhL2xpYi9NYWtl ZmlsZS5zb3VyY2VzCisrKyBiL2xpYi9NYWtlZmlsZS5zb3VyY2VzCkBAIC00MSw2ICs0MSw4IEBA IGxpYl9zb3VyY2VfbGlzdCA9CSAJXAogCWlndF9oYWxmZmxvYXQuaAkJXAogCWlndF9pbmZvZnJh bWUuYwkJXAogCWlndF9pbmZvZnJhbWUuaAkJXAorCWlndF9saXN0LmMJCVwKKwlpZ3RfbGlzdC5o CQlcCiAJaWd0X21hdHJpeC5jCQlcCiAJaWd0X21hdHJpeC5oCQlcCiAJaWd0X3ByaW1lcy5jCQlc CmRpZmYgLS1naXQgYS9saWIvaWd0X2NoYW1lbGl1bS5jIGIvbGliL2lndF9jaGFtZWxpdW0uYwpp bmRleCAxYjAzYTEwMy4uOTk3MWY1MWQgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfY2hhbWVsaXVtLmMK KysrIGIvbGliL2lndF9jaGFtZWxpdW0uYwpAQCAtODcsNyArODcsNyBAQCBzdHJ1Y3QgY2hhbWVs aXVtX2VkaWQgewogCXN0cnVjdCBlZGlkICpiYXNlOwogCXN0cnVjdCBlZGlkICpyYXdbQ0hBTUVM SVVNX01BWF9QT1JUU107CiAJaW50IGlkc1tDSEFNRUxJVU1fTUFYX1BPUlRTXTsKLQlzdHJ1Y3Qg aWd0X2xpc3QgbGluazsKKwlzdHJ1Y3QgaWd0X2xpc3RfaGVhZCBsaW5rOwogfTsKIAogc3RydWN0 IGNoYW1lbGl1bV9wb3J0IHsKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdHJ1Y3QgY2hhbWVsaXVtIHsK IAogCWludCBkcm1fZmQ7CiAKLQlzdHJ1Y3QgaWd0X2xpc3QgZWRpZHM7CisJc3RydWN0IGlndF9s aXN0X2hlYWQgZWRpZHM7CiAJc3RydWN0IGNoYW1lbGl1bV9wb3J0IHBvcnRzW0NIQU1FTElVTV9N QVhfUE9SVFNdOwogCWludCBwb3J0X2NvdW50OwogfTsKQEAgLTIzMzYsNyArMjMzNiw3IEBAIHN0 cnVjdCBjaGFtZWxpdW0gKmNoYW1lbGl1bV9pbml0KGludCBkcm1fZmQpCiAKIAltZW1zZXQoY2hh bWVsaXVtLCAwLCBzaXplb2YoKmNoYW1lbGl1bSkpOwogCWNoYW1lbGl1bS0+ZHJtX2ZkID0gZHJt X2ZkOwotCWlndF9saXN0X2luaXQoJmNoYW1lbGl1bS0+ZWRpZHMpOworCUlHVF9JTklUX0xJU1Rf SEVBRCgmY2hhbWVsaXVtLT5lZGlkcyk7CiAKIAkvKiBTZXR1cCB0aGUgbGlieG1scnBjIGNvbnRl eHQgKi8KIAl4bWxycGNfZW52X2luaXQoJmNoYW1lbGl1bS0+ZW52KTsKQEAgLTIzODgsNyArMjM4 OCw3IEBAIHZvaWQgY2hhbWVsaXVtX2RlaW5pdChzdHJ1Y3QgY2hhbWVsaXVtICpjaGFtZWxpdW0p CiAJCWNoYW1lbGl1bV9wbHVnKGNoYW1lbGl1bSwgJmNoYW1lbGl1bS0+cG9ydHNbaV0pOwogCiAJ LyogRGVzdHJveSBhbnkgRURJRHMgd2UgY3JlYXRlZCB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgbGVh ayB0aGVtICovCi0JaWd0X2xpc3RfZm9yX2VhY2hfc2FmZShwb3MsIHRtcCwgJmNoYW1lbGl1bS0+ ZWRpZHMsIGxpbmspIHsKKwlpZ3RfbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBvcywgdG1wLCAm Y2hhbWVsaXVtLT5lZGlkcywgbGluaykgewogCQlmb3IgKGkgPSAwOyBpIDwgQ0hBTUVMSVVNX01B WF9QT1JUUzsgaSsrKSB7CiAJCQlpZiAocG9zLT5pZHNbaV0pCiAJCQkJY2hhbWVsaXVtX2Rlc3Ry b3lfZWRpZChjaGFtZWxpdW0sIHBvcy0+aWRzW2ldKTsKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY29y ZS5jIGIvbGliL2lndF9jb3JlLmMKaW5kZXggN2JkNWFmYTUuLjg2Y2U4YWY5IDEwMDY0NAotLS0g YS9saWIvaWd0X2NvcmUuYworKysgYi9saWIvaWd0X2NvcmUuYwpAQCAtMjc4LDEwICsyNzgsMTAg QEAgc3RhdGljIGNoYXIgX19jdXJyZW50X2Rlc2NyaXB0aW9uWzUxMl07CiAKIHN0cnVjdCBkZXNj cmlwdGlvbl9ub2RlIHsKIAljaGFyIGRlc2Nbc2l6ZW9mKF9fY3VycmVudF9kZXNjcmlwdGlvbild OwotCXN0cnVjdCBpZ3RfbGlzdCBsaW5rOworCXN0cnVjdCBpZ3RfbGlzdF9oZWFkIGxpbms7CiB9 OwogCi1zdGF0aWMgc3RydWN0IGlndF9saXN0IHN1Ymdyb3VwX2Rlc2NyaXB0aW9uczsKK3N0YXRp YyBzdHJ1Y3QgaWd0X2xpc3RfaGVhZCBzdWJncm91cF9kZXNjcmlwdGlvbnM7CiAKIAogYm9vbCBf X2lndF9wbGFpbl9vdXRwdXQgPSBmYWxzZTsKQEAgLTc5Nyw3ICs3OTcsNyBAQCBzdGF0aWMgaW50 IGNvbW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCiAJaW50IHJldCA9IDA7CiAKIAlj b21tb25faW5pdF9lbnYoKTsKLQlpZ3RfbGlzdF9pbml0KCZzdWJncm91cF9kZXNjcmlwdGlvbnMp OworCUlHVF9JTklUX0xJU1RfSEVBRCgmc3ViZ3JvdXBfZGVzY3JpcHRpb25zKTsKIAogCWNvbW1h bmRfc3RyID0gYXJndlswXTsKIAlpZiAoc3RycmNocihjb21tYW5kX3N0ciwgJy8nKSkKQEAgLTEw NjgsNyArMTA2OCw3IEBAIHN0YXRpYyB2b2lkIF9faWd0X3ByaW50X2Rlc2NyaXB0aW9uKGNvbnN0 IGNoYXIgKnN1YnRlc3RfbmFtZSwgY29uc3QgY2hhciAqZmlsZSwKIAogCXByaW50ZigiU1VCICVz ICVzOiVkOlxuIiwgc3VidGVzdF9uYW1lLCBmaWxlLCBsaW5lKTsKIAotCWlndF9saXN0X2Zvcl9l YWNoKGRlc2MsICZzdWJncm91cF9kZXNjcmlwdGlvbnMsIGxpbmspIHsKKwlpZ3RfbGlzdF9mb3Jf ZWFjaF9lbnRyeShkZXNjLCAmc3ViZ3JvdXBfZGVzY3JpcHRpb25zLCBsaW5rKSB7CiAJCXByaW50 X2xpbmVfd3JhcHBpbmcoaW5kZW50LCBkZXNjLT5kZXNjKTsKIAkJcHJpbnRmKCJcbiIpOwogCQlo YXNfZG9jID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZHVtbXlsb2FkLmMgYi9saWIvaWd0 X2R1bW15bG9hZC5jCmluZGV4IDYwNjA4NzhkLi5iOWUyMzlkYiAxMDA2NDQKLS0tIGEvbGliL2ln dF9kdW1teWxvYWQuYworKysgYi9saWIvaWd0X2R1bW15bG9hZC5jCkBAIC02NSw3ICs2NSw3IEBA CiBzdGF0aWMgY29uc3QgaW50IEJBVENIX1NJWkUgPSA0MDk2Owogc3RhdGljIGNvbnN0IGludCBM T09QX1NUQVJUX09GRlNFVCA9IDY0OwogCi1zdGF0aWMgSUdUX0xJU1Qoc3Bpbl9saXN0KTsKK3N0 YXRpYyBJR1RfTElTVF9IRUFEKHNwaW5fbGlzdCk7CiBzdGF0aWMgcHRocmVhZF9tdXRleF90IGxp c3RfbG9jayA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CiAKIHN0YXRpYyBpbnQKQEAgLTQ2 NCw3ICs0NjQsNyBAQCB2b2lkIGlndF90ZXJtaW5hdGVfc3BpbnModm9pZCkKIAlzdHJ1Y3QgaWd0 X3NwaW4gKml0ZXI7CiAKIAlwdGhyZWFkX211dGV4X2xvY2soJmxpc3RfbG9jayk7Ci0JaWd0X2xp c3RfZm9yX2VhY2goaXRlciwgJnNwaW5fbGlzdCwgbGluaykKKwlpZ3RfbGlzdF9mb3JfZWFjaF9l bnRyeShpdGVyLCAmc3Bpbl9saXN0LCBsaW5rKQogCQlpZ3Rfc3Bpbl9lbmQoaXRlcik7CiAJcHRo cmVhZF9tdXRleF91bmxvY2soJmxpc3RfbG9jayk7CiB9CkBAIC00NzQsOSArNDc0LDkgQEAgdm9p ZCBpZ3RfdW5zaGFyZV9zcGlucyh2b2lkKQogCXN0cnVjdCBpZ3Rfc3BpbiAqaXQsICpuOwogCiAJ LyogRGlzYWJsZSB0aGUgYXV0b21hdGljIHRlcm1pbmF0aW9uIG9uIGluaGVyaXRlZCBzcGlubmVy cyAqLwotCWlndF9saXN0X2Zvcl9lYWNoX3NhZmUoaXQsIG4sICZzcGluX2xpc3QsIGxpbmspCi0J CWlndF9saXN0X2luaXQoJml0LT5saW5rKTsKLQlpZ3RfbGlzdF9pbml0KCZzcGluX2xpc3QpOwor CWlndF9saXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoaXQsIG4sICZzcGluX2xpc3QsIGxpbmspCisJ CUlHVF9JTklUX0xJU1RfSEVBRCgmaXQtPmxpbmspOworCUlHVF9JTklUX0xJU1RfSEVBRCgmc3Bp bl9saXN0KTsKIH0KIAogc3RhdGljIHVpbnQzMl90IHBsdWdfdmdlbV9oYW5kbGUoc3RydWN0IGln dF9jb3JrICpjb3JrLCBpbnQgZmQpCmRpZmYgLS1naXQgYS9saWIvaWd0X2R1bW15bG9hZC5oIGIv bGliL2lndF9kdW1teWxvYWQuaAppbmRleCA2NjgzNzA1Ny4uNDIxY2ExODMgMTAwNjQ0Ci0tLSBh L2xpYi9pZ3RfZHVtbXlsb2FkLmgKKysrIGIvbGliL2lndF9kdW1teWxvYWQuaApAQCAtMzUsNyAr MzUsNyBAQAogdHlwZWRlZiBzdHJ1Y3QgaWd0X3NwaW4gewogCXVuc2lnbmVkIGludCBoYW5kbGU7 CiAJdGltZXJfdCB0aW1lcjsKLQlzdHJ1Y3QgaWd0X2xpc3QgbGluazsKKwlzdHJ1Y3QgaWd0X2xp c3RfaGVhZCBsaW5rOwogCiAJdWludDMyX3QgKmNvbmRpdGlvbjsKIAl1aW50MzJfdCBjbWRfcHJl Y29uZGl0aW9uOwpkaWZmIC0tZ2l0IGEvbGliL2lndF9rbW9kLmMgYi9saWIvaWd0X2ttb2QuYwpp bmRleCA3ZmY4ZDRmYy4uMDUwMTljMjQgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21vZC5jCisrKyBi L2xpYi9pZ3Rfa21vZC5jCkBAIC00NTIsMTEgKzQ1MiwxMSBAQCBzdGF0aWMgdm9pZCBrbXNnX2R1 bXAoaW50IGZkKQogCX0KIH0KIAotc3RhdGljIHZvaWQgdGVzdHNfYWRkKHN0cnVjdCBpZ3Rfa3Nl bGZ0ZXN0X2xpc3QgKnRsLCBzdHJ1Y3QgaWd0X2xpc3QgKmxpc3QpCitzdGF0aWMgdm9pZCB0ZXN0 c19hZGQoc3RydWN0IGlndF9rc2VsZnRlc3RfbGlzdCAqdGwsIHN0cnVjdCBpZ3RfbGlzdF9oZWFk ICpsaXN0KQogewogCXN0cnVjdCBpZ3Rfa3NlbGZ0ZXN0X2xpc3QgKnBvczsKIAotCWlndF9saXN0 X2Zvcl9lYWNoKHBvcywgbGlzdCwgbGluaykKKwlpZ3RfbGlzdF9mb3JfZWFjaF9lbnRyeShwb3Ms IGxpc3QsIGxpbmspCiAJCWlmIChwb3MtPm51bWJlciA+IHRsLT5udW1iZXIpCiAJCQlicmVhazsK IApAQCAtNDY1LDcgKzQ2NSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RzX2FkZChzdHJ1Y3QgaWd0X2tz ZWxmdGVzdF9saXN0ICp0bCwgc3RydWN0IGlndF9saXN0ICpsaXN0KQogCiB2b2lkIGlndF9rc2Vs ZnRlc3RfZ2V0X3Rlc3RzKHN0cnVjdCBrbW9kX21vZHVsZSAqa21vZCwKIAkJCSAgICAgY29uc3Qg Y2hhciAqZmlsdGVyLAotCQkJICAgICBzdHJ1Y3QgaWd0X2xpc3QgKnRlc3RzKQorCQkJICAgICBz dHJ1Y3QgaWd0X2xpc3RfaGVhZCAqdGVzdHMpCiB7CiAJY29uc3QgY2hhciAqcGFyYW1fcHJlZml4 ID0gImlndF9fIjsKIAljb25zdCBpbnQgcHJlZml4X2xlbiA9IHN0cmxlbihwYXJhbV9wcmVmaXgp OwpAQCAtNjA4LDcgKzYwOCw3IEBAIHZvaWQgaWd0X2tzZWxmdGVzdHMoY29uc3QgY2hhciAqbW9k dWxlX25hbWUsCiAJCSAgICBjb25zdCBjaGFyICpmaWx0ZXIpCiB7CiAJc3RydWN0IGlndF9rc2Vs ZnRlc3QgdHN0OwotCUlHVF9MSVNUKHRlc3RzKTsKKwlJR1RfTElTVF9IRUFEKHRlc3RzKTsKIAlz dHJ1Y3QgaWd0X2tzZWxmdGVzdF9saXN0ICp0bCwgKnRuOwogCiAJaWYgKGlndF9rc2VsZnRlc3Rf aW5pdCgmdHN0LCBtb2R1bGVfbmFtZSkgIT0gMCkKQEAgLTYxOCw3ICs2MTgsNyBAQCB2b2lkIGln dF9rc2VsZnRlc3RzKGNvbnN0IGNoYXIgKm1vZHVsZV9uYW1lLAogCQlpZ3RfcmVxdWlyZShpZ3Rf a3NlbGZ0ZXN0X2JlZ2luKCZ0c3QpID09IDApOwogCiAJaWd0X2tzZWxmdGVzdF9nZXRfdGVzdHMo dHN0Lmttb2QsIGZpbHRlciwgJnRlc3RzKTsKLQlpZ3RfbGlzdF9mb3JfZWFjaF9zYWZlKHRsLCB0 biwgJnRlc3RzLCBsaW5rKSB7CisJaWd0X2xpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh0bCwgdG4s ICZ0ZXN0cywgbGluaykgewogCQlpZ3Rfc3VidGVzdF9mKCIlcyIsIHRsLT5uYW1lKQogCQkJaWd0 X2tzZWxmdGVzdF9leGVjdXRlKCZ0c3QsIHRsLCBvcHRpb25zLCByZXN1bHQpOwogCQlmcmVlKHRs KTsKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21vZC5oIGIvbGliL2lndF9rbW9kLmgKaW5kZXggZTQ3 ZmYyZGYuLmM3MWVjMTQ3IDEwMDY0NAotLS0gYS9saWIvaWd0X2ttb2QuaAorKysgYi9saWIvaWd0 X2ttb2QuaApAQCAtNTEsNyArNTEsNyBAQCBzdHJ1Y3QgaWd0X2tzZWxmdGVzdCB7CiB9OwogCiBz dHJ1Y3QgaWd0X2tzZWxmdGVzdF9saXN0IHsKLQlzdHJ1Y3QgaWd0X2xpc3QgbGluazsKKwlzdHJ1 Y3QgaWd0X2xpc3RfaGVhZCBsaW5rOwogCXVuc2lnbmVkIGludCBudW1iZXI7CiAJY2hhciAqbmFt ZTsKIAljaGFyIHBhcmFtW107CkBAIC02Myw3ICs2Myw3IEBAIGludCBpZ3Rfa3NlbGZ0ZXN0X2Jl Z2luKHN0cnVjdCBpZ3Rfa3NlbGZ0ZXN0ICp0c3QpOwogCiB2b2lkIGlndF9rc2VsZnRlc3RfZ2V0 X3Rlc3RzKHN0cnVjdCBrbW9kX21vZHVsZSAqa21vZCwKIAkJCSAgICAgY29uc3QgY2hhciAqZmls dGVyLAotCQkJICAgICBzdHJ1Y3QgaWd0X2xpc3QgKnRlc3RzKTsKKwkJCSAgICAgc3RydWN0IGln dF9saXN0X2hlYWQgKnRlc3RzKTsKIGludCBpZ3Rfa3NlbGZ0ZXN0X2V4ZWN1dGUoc3RydWN0IGln dF9rc2VsZnRlc3QgKnRzdCwKIAkJCSAgc3RydWN0IGlndF9rc2VsZnRlc3RfbGlzdCAqdGwsCiAJ CQkgIGNvbnN0IGNoYXIgKm1vZHVsZV9vcHRpb25zLApkaWZmIC0tZ2l0IGEvbGliL2lndF9saXN0 LmMgYi9saWIvaWd0X2xpc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4u NWUzMGIxOWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvaWd0X2xpc3QuYwpAQCAtMCwwICsxLDc3 IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQ ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv biBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv Y3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNv ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24K KyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0 cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJu aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoK KyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4g YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgor ICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ IE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVO VCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9N LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9S IE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisKKyNpbmNsdWRl ICJpZ3RfbGlzdC5oIgorCit2b2lkIElHVF9JTklUX0xJU1RfSEVBRChzdHJ1Y3QgaWd0X2xpc3Rf aGVhZCAqbGlzdCkKK3sKKwlsaXN0LT5wcmV2ID0gbGlzdDsKKwlsaXN0LT5uZXh0ID0gbGlzdDsK K30KKwordm9pZCBpZ3RfbGlzdF9hZGQoc3RydWN0IGlndF9saXN0X2hlYWQgKmVsZW0sIHN0cnVj dCBpZ3RfbGlzdF9oZWFkICpoZWFkKQoreworCWVsZW0tPnByZXYgPSBoZWFkOworCWVsZW0tPm5l eHQgPSBoZWFkLT5uZXh0OworCWhlYWQtPm5leHQgPSBlbGVtOworCWVsZW0tPm5leHQtPnByZXYg PSBlbGVtOworfQorCit2b2lkIGlndF9saXN0X2RlbChzdHJ1Y3QgaWd0X2xpc3RfaGVhZCAqZWxl bSkKK3sKKwllbGVtLT5wcmV2LT5uZXh0ID0gZWxlbS0+bmV4dDsKKwllbGVtLT5uZXh0LT5wcmV2 ID0gZWxlbS0+cHJldjsKKwllbGVtLT5uZXh0ID0gTlVMTDsKKwllbGVtLT5wcmV2ID0gTlVMTDsK K30KKwordm9pZCBpZ3RfbGlzdF9tb3ZlKHN0cnVjdCBpZ3RfbGlzdF9oZWFkICplbGVtLCBzdHJ1 Y3QgaWd0X2xpc3RfaGVhZCAqbGlzdCkKK3sKKwlpZ3RfbGlzdF9kZWwoZWxlbSk7CisJaWd0X2xp c3RfYWRkKGVsZW0sIGxpc3QpOworfQorCit2b2lkIGlndF9saXN0X21vdmVfdGFpbChzdHJ1Y3Qg aWd0X2xpc3RfaGVhZCAqZWxlbSwgc3RydWN0IGlndF9saXN0X2hlYWQgKmxpc3QpCit7CisJaWd0 X2xpc3RfZGVsKGVsZW0pOworCWlndF9saXN0X2FkZF90YWlsKGVsZW0sIGxpc3QpOworfQorCitp bnQgaWd0X2xpc3RfbGVuZ3RoKGNvbnN0IHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpoZWFkKQorewor CXN0cnVjdCAgaWd0X2xpc3RfaGVhZCAqZSA9IGhlYWQtPm5leHQ7CisJaW50IGNvdW50ID0gMDsK KworCXdoaWxlIChlICE9IGhlYWQpIHsKKwkJZSA9IGUtPm5leHQ7CisJCWNvdW50Kys7CisJfQor CisJcmV0dXJuIGNvdW50OworfQorCitib29sIGlndF9saXN0X2VtcHR5KGNvbnN0IHN0cnVjdCBp Z3RfbGlzdF9oZWFkICpoZWFkKQoreworCXJldHVybiBoZWFkLT5uZXh0ID09IGhlYWQ7Cit9CmRp ZmYgLS1naXQgYS9saWIvaWd0X2xpc3QuaCBiL2xpYi9pZ3RfbGlzdC5oCmluZGV4IGNhZGY5ZGQz Li5kYmY1ZjgwMiAxMDA2NDQKLS0tIGEvbGliL2lndF9saXN0LmgKKysrIGIvbGliL2lndF9saXN0 LmgKQEAgLTI4LDEwMiArMjgsMTAyIEBACiAjaW5jbHVkZSA8c3RkYm9vbC5oPgogI2luY2x1ZGUg PHN0ZGRlZi5oPgogCi0vKgotICogVGhpcyBsaXN0IGRhdGEgc3RydWN0dXJlIGlzIGEgdmVyYmF0 aW0gY29weSBmcm9tIHdheWxhbmQtdXRpbC5oIGZyb20gdGhlCi0gKiBXYXlsYW5kIHByb2plY3Q7 IGV4Y2VwdCB0aGF0IHdsXyBwcmVmaXggaGFzIGJlZW4gcmVtb3ZlZC4KKy8qKgorICogU0VDVElP TjppZ3RfbGlzdAorICogQHNob3J0X2Rlc2NyaXB0aW9uOiBhIGxpc3QgaW1wbGVtZW50YXRpb24g aW5zcGlyZWQgYnkgdGhlIGtlcm5lbAorICogQHRpdGxlOiBJR1QgTGlzdAorICogQGluY2x1ZGU6 IGlndF9saXN0LmgKKyAqCisgKiBUaGlzIGxpc3QgZGF0YSBzdHJ1Y3R1cmUgbWltaWNzIHRoZSBv bmUgd2UgY2FuIGZpbmQgaW4gdGhlIGtlcm5lbC4gQSBmZXcKKyAqIGJvbnVzIGhlbHBlcnMgYXJl IHByb3ZpZGVkLgorICoKKyAqIGlndF9saXN0IGlzIGEgZG91Ymx5LWxpbmtlZCBsaXN0IHdoZXJl IGFuIGluc3RhbmNlIG9mIGlndF9saXN0X2hlYWQgaXMgYQorICogaGVhZCBzZW50aW5lbCBhbmQg aGFzIHRvIGJlIGluaXRpYWxpemVkLgorICoKKyAqIEV4YW1wbGUgdXNhZ2U6CisgKgorICogfFs8 IS0tIGxhbmd1YWdlPSJDIiAtLT4KKyAqIHN0cnVjdCBpZ3RfbGlzdF9oZWFkIGZvb19oZWFkOwor ICoKKyAqIHN0cnVjdCBlbGVtZW50IHsKKyAqICAgICAgICAgaW50IGZvbzsKKyAqICAgICAgICAg c3RydWN0IGlndF9saXN0X2hlYWQgbGluazsKKyAqIH07CisgKgorICogc3RydWN0IGVsZW1lbnQg ZTEsIGUyLCBlMzsKKyAqCisgKiBJR1RfSU5JVF9MSVNUX0hFQUQoJmZvb19oZWFkKTsKKyAqIGln dF9saXN0X2FkZCgmZTEubGluaywgJmZvb19oZWFkKTsgICAvLyBlMSBpcyB0aGUgZmlyc3QgZWxl bWVudAorICogaWd0X2xpc3RfYWRkKCZlMi5saW5rLCAmZm9vX2hlYWQpOyAgIC8vIGUyIGlzIG5v dyB0aGUgZmlyc3QgZWxlbWVudAorICogaWd0X2xpc3RfYWRkKCZlMy5saW5rLCAmZTIubGluayk7 ICAgIC8vIGluc2VydCBlMyBhZnRlciBlMgorICoKKyAqIHByaW50ZigibGlzdCBsZW5ndGg6ICVk XG4iLCBpZ3RfbGlzdF9sZW5ndGgoJmZvb19oZWFkKSk7CisgKgorICogc3RydWN0IGVsZW1lbnQg Kml0ZXI7CisgKiBpZ3RfbGlzdF9mb3JfZWFjaF9lbnRyeShpdGVyLCAmZm9vX2hlYWQsIGxpbmsp IHsKKyAqIAlwcmludGYoIiAgJWRcbiIsIGl0ZXItPmZvbyk7CisgKiB9CisgKiBdfAogICovCiAK LXN0cnVjdCBpZ3RfbGlzdCB7Ci0Jc3RydWN0IGlndF9saXN0ICpwcmV2OwotCXN0cnVjdCBpZ3Rf bGlzdCAqbmV4dDsKK3N0cnVjdCBpZ3RfbGlzdF9oZWFkIHsKKwlzdHJ1Y3QgaWd0X2xpc3RfaGVh ZCAqcHJldjsKKwlzdHJ1Y3QgaWd0X2xpc3RfaGVhZCAqbmV4dDsKIH07CiAKLSNkZWZpbmUgX19J R1RfSU5JVF9MSVNUKG5hbWUpIHsgJihuYW1lKSwgJihuYW1lKSB9Ci0jZGVmaW5lIElHVF9MSVNU KG5hbWUpIHN0cnVjdCBpZ3RfbGlzdCBuYW1lID0gX19JR1RfSU5JVF9MSVNUKG5hbWUpCi0KLXN0 YXRpYyBpbmxpbmUgdm9pZCBpZ3RfbGlzdF9pbml0KHN0cnVjdCBpZ3RfbGlzdCAqbGlzdCkKLXsK LQlsaXN0LT5wcmV2ID0gbGlzdDsKLQlsaXN0LT5uZXh0ID0gbGlzdDsKLX0KLQotc3RhdGljIGlu bGluZSB2b2lkIF9faWd0X2xpc3RfYWRkKHN0cnVjdCBpZ3RfbGlzdCAqbGlzdCwKLQkJCQkgIHN0 cnVjdCBpZ3RfbGlzdCAqcHJldiwKLQkJCQkgIHN0cnVjdCBpZ3RfbGlzdCAqbmV4dCkKLXsKLQlu ZXh0LT5wcmV2ID0gbGlzdDsKLQlsaXN0LT5uZXh0ID0gbmV4dDsKLQlsaXN0LT5wcmV2ID0gcHJl djsKLQlwcmV2LT5uZXh0ID0gbGlzdDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGlndF9saXN0 X2FkZChzdHJ1Y3QgaWd0X2xpc3QgKmVsbSwgc3RydWN0IGlndF9saXN0ICpsaXN0KQotewotCV9f aWd0X2xpc3RfYWRkKGVsbSwgbGlzdCwgbGlzdC0+bmV4dCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUg dm9pZCBpZ3RfbGlzdF9hZGRfdGFpbChzdHJ1Y3QgaWd0X2xpc3QgKmVsbSwKLQkJCQkgICAgIHN0 cnVjdCBpZ3RfbGlzdCAqbGlzdCkKLXsKLQlfX2lndF9saXN0X2FkZChlbG0sIGxpc3QtPnByZXYs IGxpc3QpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgX19pZ3RfbGlzdF9kZWwoc3RydWN0IGln dF9saXN0ICpwcmV2LCBzdHJ1Y3QgaWd0X2xpc3QgKm5leHQpCi17Ci0JbmV4dC0+cHJldiA9IHBy ZXY7Ci0JcHJldi0+bmV4dCA9IG5leHQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBpZ3RfbGlz dF9kZWwoc3RydWN0IGlndF9saXN0ICplbG0pCi17Ci0JX19pZ3RfbGlzdF9kZWwoZWxtLT5wcmV2 LCBlbG0tPm5leHQpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgaWd0X2xpc3RfbW92ZShzdHJ1 Y3QgaWd0X2xpc3QgKmVsbSwgc3RydWN0IGlndF9saXN0ICpsaXN0KQotewotCWlndF9saXN0X2Rl bChlbG0pOwotCWlndF9saXN0X2FkZChlbG0sIGxpc3QpOwotfQotCi1zdGF0aWMgaW5saW5lIHZv aWQgaWd0X2xpc3RfbW92ZV90YWlsKHN0cnVjdCBpZ3RfbGlzdCAqZWxtLAotCQkJCSAgICAgIHN0 cnVjdCBpZ3RfbGlzdCAqbGlzdCkKLXsKLQlpZ3RfbGlzdF9kZWwoZWxtKTsKLQlpZ3RfbGlzdF9h ZGRfdGFpbChlbG0sIGxpc3QpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaWd0X2xpc3RfZW1w dHkoY29uc3Qgc3RydWN0IGlndF9saXN0ICpsaXN0KQotewotCXJldHVybiBsaXN0LT5uZXh0ID09 IGxpc3Q7Ci19Ci0KLSNkZWZpbmUgY29udGFpbmVyX29mKHB0ciwgc2FtcGxlLCBtZW1iZXIpCQkJ CVwKLQkodHlwZW9mKHNhbXBsZSkpKChjaGFyICopKHB0cikgLSBvZmZzZXRvZih0eXBlb2YoKnNh bXBsZSksIG1lbWJlcikpCi0KLSNkZWZpbmUgaWd0X2xpc3RfZmlyc3RfZW50cnkoaGVhZCwgcG9z LCBtZW1iZXIpIFwKLQljb250YWluZXJfb2YoKGhlYWQpLT5uZXh0LCAocG9zKSwgbWVtYmVyKQot I2RlZmluZSBpZ3RfbGlzdF9sYXN0X2VudHJ5KGhlYWQsIHBvcywgbWVtYmVyKSBcCi0JY29udGFp bmVyX29mKChoZWFkKS0+cHJldiwgKHBvcyksIG1lbWJlcikKLQotI2RlZmluZSBpZ3RfbGlzdF9u ZXh0X2VudHJ5KHBvcywgbWVtYmVyKSBcCi0JY29udGFpbmVyX29mKChwb3MpLT5tZW1iZXIubmV4 dCwgKHBvcyksIG1lbWJlcikKLSNkZWZpbmUgaWd0X2xpc3RfcHJldl9lbnRyeShwb3MsIG1lbWJl cikgXAotCWNvbnRhaW5lcl9vZigocG9zKS0+bWVtYmVyLnByZXYsIChwb3MpLCBtZW1iZXIpCi0K LSNkZWZpbmUgaWd0X2xpc3RfZm9yX2VhY2gocG9zLCBoZWFkLCBtZW1iZXIpCQkJCVwKLQlmb3Ig KHBvcyA9IGlndF9saXN0X2ZpcnN0X2VudHJ5KGhlYWQsIHBvcywgbWVtYmVyKTsJCVwKKwordm9p ZCBJR1RfSU5JVF9MSVNUX0hFQUQoc3RydWN0IGlndF9saXN0X2hlYWQgKmhlYWQpOwordm9pZCBp Z3RfbGlzdF9hZGQoc3RydWN0IGlndF9saXN0X2hlYWQgKmVsZW0sIHN0cnVjdCBpZ3RfbGlzdF9o ZWFkICpoZWFkKTsKK3ZvaWQgaWd0X2xpc3RfZGVsKHN0cnVjdCBpZ3RfbGlzdF9oZWFkICplbGVt KTsKK3ZvaWQgaWd0X2xpc3RfbW92ZShzdHJ1Y3QgaWd0X2xpc3RfaGVhZCAqZWxlbSwgc3RydWN0 IGlndF9saXN0X2hlYWQgKmxpc3QpOwordm9pZCBpZ3RfbGlzdF9tb3ZlX3RhaWwoc3RydWN0IGln dF9saXN0X2hlYWQgKmVsZW0sIHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpsaXN0KTsKK2ludCBpZ3Rf bGlzdF9sZW5ndGgoY29uc3Qgc3RydWN0IGlndF9saXN0X2hlYWQgKmhlYWQpOworYm9vbCBpZ3Rf bGlzdF9lbXB0eShjb25zdCBzdHJ1Y3QgaWd0X2xpc3RfaGVhZCAqaGVhZCk7CisKKyNkZWZpbmUg aWd0X2NvbnRhaW5lcl9vZihwdHIsIHNhbXBsZSwgbWVtYmVyKQkJCQlcCisJKF9fdHlwZW9mX18o c2FtcGxlKSkoKGNoYXIgKikocHRyKSAtCQkJCVwKKwkJCQlvZmZzZXRvZihfX3R5cGVvZl9fKCpz YW1wbGUpLCBtZW1iZXIpKQorCisjZGVmaW5lIGlndF9saXN0X2Zvcl9lYWNoX2VudHJ5KHBvcywg aGVhZCwgbWVtYmVyKQkJCVwKKwlmb3IgKHBvcyA9IGlndF9jb250YWluZXJfb2YoKGhlYWQpLT5u ZXh0LCBwb3MsIG1lbWJlcik7CQlcCiAJICAgICAmcG9zLT5tZW1iZXIgIT0gKGhlYWQpOwkJCQkJ XAotCSAgICAgcG9zID0gaWd0X2xpc3RfbmV4dF9lbnRyeShwb3MsIG1lbWJlcikpCisJICAgICBw b3MgPSBpZ3RfY29udGFpbmVyX29mKChwb3MpLT5tZW1iZXIubmV4dCwgcG9zLCBtZW1iZXIpKQog Ci0jZGVmaW5lIGlndF9saXN0X2Zvcl9lYWNoX3JldmVyc2UocG9zLCBoZWFkLCBtZW1iZXIpCQkJ XAotCWZvciAocG9zID0gaWd0X2xpc3RfbGFzdF9lbnRyeShoZWFkLCBwb3MsIG1lbWJlcik7CQlc CisvKioKKyAqIGlndF9saXN0X2Zvcl9lYWNoX3NhZmUKKyAqCisgKiBTYWZlIGFnYWluc3QgcmVt b3ZlbCBvZiB0aGUgKmN1cnJlbnQqIGxpc3QgZWxlbWVudC4gVG8gYWNoaXZlIHRoaXMgaXQKKyAq IHJlcXVpcmVzIGFuIGV4dHJhIGhlbHBlciB2YXJpYWJsZSBgdG1wYCB3aXRoIHRoZSBzYW1lIHR5 cGUgYXMgYHBvc2AuCisgKi8KKyNkZWZpbmUgaWd0X2xpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShw b3MsIHRtcCwgaGVhZCwgbWVtYmVyKQkJCVwKKwlmb3IgKHBvcyA9IGlndF9jb250YWluZXJfb2Yo KGhlYWQpLT5uZXh0LCBwb3MsIG1lbWJlciksCQlcCisJICAgICB0bXAgPSBpZ3RfY29udGFpbmVy X29mKChwb3MpLT5tZW1iZXIubmV4dCwgdG1wLCBtZW1iZXIpOyAJXAogCSAgICAgJnBvcy0+bWVt YmVyICE9IChoZWFkKTsJCQkJCVwKLQkgICAgIHBvcyA9IGlndF9saXN0X3ByZXZfZW50cnkocG9z LCBtZW1iZXIpKQorCSAgICAgcG9zID0gdG1wLAkJCQkJCQlcCisJICAgICB0bXAgPSBpZ3RfY29u dGFpbmVyX29mKChwb3MpLT5tZW1iZXIubmV4dCwgdG1wLCBtZW1iZXIpKQogCi0jZGVmaW5lIGln dF9saXN0X2Zvcl9lYWNoX3NhZmUocG9zLCB0bXAsIGhlYWQsIG1lbWJlcikJCQlcCi0JZm9yIChw b3MgPSBpZ3RfbGlzdF9maXJzdF9lbnRyeShoZWFkLCBwb3MsIG1lbWJlciksCQlcCi0JICAgICB0 bXAgPSBpZ3RfbGlzdF9uZXh0X2VudHJ5KHBvcywgbWVtYmVyKTsJCQlcCisjZGVmaW5lIGlndF9s aXN0X2Zvcl9lYWNoX2VudHJ5X3JldmVyc2UocG9zLCBoZWFkLCBtZW1iZXIpCQlcCisJZm9yIChw b3MgPSBpZ3RfY29udGFpbmVyX29mKChoZWFkKS0+cHJldiwgcG9zLCBtZW1iZXIpOwkJXAogCSAg ICAgJnBvcy0+bWVtYmVyICE9IChoZWFkKTsJCQkJCVwKLQkgICAgIHBvcyA9IHRtcCwgdG1wID0g aWd0X2xpc3RfbmV4dF9lbnRyeShwb3MsIG1lbWJlcikpCisJICAgICBwb3MgPSBpZ3RfY29udGFp bmVyX29mKChwb3MpLT5tZW1iZXIucHJldiwgcG9zLCBtZW1iZXIpKQorCisKKy8qIElHVCBjdXN0 b20gaGVscGVycyAqLworCisvKioKKyAqIElHVF9MSVNUX0hFQUQKKyAqCisgKiBJbnN0ZWFkIG9m IGhhdmluZyB0byB1c2UgYElHVF9JTklUX0xJU1RfSEVBRCgpYCBsaXN0IGNhbiBiZSBkZWZpbmVk IHVzaW5nCisgKiB0aGlzIGhlbHBlciwgZS5nLiBgc3RhdGljIElHVF9MSVNUX0hFQUQobGlzdCk7 YAorICovCisjZGVmaW5lIElHVF9MSVNUX0hFQUQobmFtZSkgc3RydWN0IGlndF9saXN0X2hlYWQg bmFtZSA9IHsgJihuYW1lKSwgJihuYW1lKSB9CisKKyNkZWZpbmUgaWd0X2xpc3RfYWRkX3RhaWwo ZWxlbSwgaGVhZCkgaWd0X2xpc3RfYWRkKGVsZW0sIChoZWFkKS0+cHJldikKKworI2RlZmluZSBp Z3RfbGlzdF9maXJzdF9lbnRyeShoZWFkLCB0eXBlLCBtZW1iZXIpIFwKKwlpZ3RfY29udGFpbmVy X29mKChoZWFkKS0+bmV4dCwgKHR5cGUpLCBtZW1iZXIpCisKKyNkZWZpbmUgaWd0X2xpc3RfbGFz dF9lbnRyeShoZWFkLCB0eXBlLCBtZW1iZXIpIFwKKwlpZ3RfY29udGFpbmVyX29mKChoZWFkKS0+ cHJldiwgKHR5cGUpLCBtZW1iZXIpCiAKICNlbmRpZiAvKiBJR1RfTElTVF9IICovCmRpZmYgLS1n aXQgYS9saWIvbWVzb24uYnVpbGQgYi9saWIvbWVzb24uYnVpbGQKaW5kZXggZmJjMGM4ZDEuLjE5 Y2I2MjU1IDEwMDY0NAotLS0gYS9saWIvbWVzb24uYnVpbGQKKysrIGIvbGliL21lc29uLmJ1aWxk CkBAIC01MCw2ICs1MCw3IEBAIGxpYl9zb3VyY2VzID0gWwogCSdpZ3RfZmIuYycsCiAJJ2lndF9j b3JlLmMnLAogCSdpZ3RfZHJhdy5jJywKKwknaWd0X2xpc3QuYycsCiAJJ2lndF9wbS5jJywKIAkn aWd0X2R1bW15bG9hZC5jJywKIAkndXdpbGRtYXQvdXdpbGRtYXQuYycsCmRpZmYgLS1naXQgYS90 ZXN0cy9pOTE1L2dlbV9zcGluX2JhdGNoLmMgYi90ZXN0cy9pOTE1L2dlbV9zcGluX2JhdGNoLmMK aW5kZXggYTE3MmE2YjQuLmM2N2YwMTVmIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9zcGlu X2JhdGNoLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fc3Bpbl9iYXRjaC5jCkBAIC0xNDAsNyArMTQw LDcgQEAgc3RhdGljIHZvaWQgc3Bpbl9hbGwoaW50IGk5MTUsIHVuc2lnbmVkIGludCBmbGFncykK ICNkZWZpbmUgUEFSQUxMRUxfU1BJTl9ORVdfQ1RYIEJJVCgwKQogewogCXN0cnVjdCBpZ3Rfc3Bp biAqc3BpbiwgKm47Ci0JSUdUX0xJU1QobGlzdCk7CisJSUdUX0xJU1RfSEVBRChsaXN0KTsKIAog CWZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShlLCBpOTE1KSB7CiAJCXVpbnQzMl90IGN0eDsKQEAg LTE2Miw3ICsxNjIsNyBAQCBzdGF0aWMgdm9pZCBzcGluX2FsbChpbnQgaTkxNSwgdW5zaWduZWQg aW50IGZsYWdzKQogCQlpZ3RfbGlzdF9tb3ZlKCZzcGluLT5saW5rLCAmbGlzdCk7CiAJfQogCi0J aWd0X2xpc3RfZm9yX2VhY2hfc2FmZShzcGluLCBuLCAmbGlzdCwgbGluaykgeworCWlndF9saXN0 X2Zvcl9lYWNoX2VudHJ5X3NhZmUoc3BpbiwgbiwgJmxpc3QsIGxpbmspIHsKIAkJaWd0X2Fzc2Vy dChnZW1fYm9fYnVzeShpOTE1LCBzcGluLT5oYW5kbGUpKTsKIAkJaWd0X3NwaW5fZnJlZShpOTE1 LCBzcGluKTsKIAl9CmRpZmYgLS1naXQgYS90ZXN0cy92YzRfcHVyZ2VhYmxlX2JvLmMgYi90ZXN0 cy92YzRfcHVyZ2VhYmxlX2JvLmMKaW5kZXggY2ZlMTRlNzAuLmVlODllMTUzIDEwMDY0NAotLS0g YS90ZXN0cy92YzRfcHVyZ2VhYmxlX2JvLmMKKysrIGIvdGVzdHMvdmM0X3B1cmdlYWJsZV9iby5j CkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAidmM0X2RybS5oIgogCiBzdHJ1Y3QgaWd0X3Zj NF9ibyB7Ci0Jc3RydWN0IGlndF9saXN0IG5vZGU7CisJc3RydWN0IGlndF9saXN0X2hlYWQgbm9k ZTsKIAlpbnQgaGFuZGxlOwogCXZvaWQgKm1hcDsKIAlzaXplX3Qgc2l6ZTsKQEAgLTQ5LDcgKzQ5 LDcgQEAgc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKSBzaWd0cmFwKGludCBz aWcpCiAJbG9uZ2ptcChqbXAsIHNpZyk7CiB9CiAKLXN0YXRpYyB2b2lkIGlndF92YzRfYWxsb2Nf bW1hcF9tYXhfYm8oaW50IGZkLCBzdHJ1Y3QgaWd0X2xpc3QgKmxpc3QsCitzdGF0aWMgdm9pZCBp Z3RfdmM0X2FsbG9jX21tYXBfbWF4X2JvKGludCBmZCwgc3RydWN0IGlndF9saXN0X2hlYWQgKmxp c3QsCiAJCQkJICAgICAgc2l6ZV90IHNpemUpCiB7CiAJc3RydWN0IGlndF92YzRfYm8gKmJvOwpA QCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgdm9pZCBpZ3RfdmM0X2FsbG9jX21tYXBfbWF4X2JvKGlu dCBmZCwgc3RydWN0IGlndF9saXN0ICpsaXN0LAogCX0KIH0KIAotc3RhdGljIHZvaWQgaWd0X3Zj NF91bm1hcF9mcmVlX2JvX3Bvb2woaW50IGZkLCBzdHJ1Y3QgaWd0X2xpc3QgKmxpc3QpCitzdGF0 aWMgdm9pZCBpZ3RfdmM0X3VubWFwX2ZyZWVfYm9fcG9vbChpbnQgZmQsIHN0cnVjdCBpZ3RfbGlz dF9oZWFkICpsaXN0KQogewogCXN0cnVjdCBpZ3RfdmM0X2JvICpibzsKIApAQCAtODcsOSArODcs OSBAQCBzdGF0aWMgdm9pZCBpZ3RfdmM0X3VubWFwX2ZyZWVfYm9fcG9vbChpbnQgZmQsIHN0cnVj dCBpZ3RfbGlzdCAqbGlzdCkKIAogc3RhdGljIHZvaWQgaWd0X3ZjNF90cmlnZ2VyX3B1cmdlKGlu dCBmZCkKIHsKLQlzdHJ1Y3QgaWd0X2xpc3QgbGlzdDsKKwlzdHJ1Y3QgaWd0X2xpc3RfaGVhZCBs aXN0OwogCi0JaWd0X2xpc3RfaW5pdCgmbGlzdCk7CisJSUdUX0lOSVRfTElTVF9IRUFEKCZsaXN0 KTsKIAogCS8qIFRyeSB0byBhbGxvY2F0ZSBhcyBtdWNoIGFzIHdlIGNhbiB0byB0cmlnZ2VyIGEg cHVyZ2UuICovCiAJaWd0X3ZjNF9hbGxvY19tbWFwX21heF9ibyhmZCwgJmxpc3QsIDY0ICogMTAy NCk7CkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyB2b2lkIGlndF92YzRfdHJpZ2dlcl9wdXJnZShp bnQgZmQpCiAJaWd0X3ZjNF91bm1hcF9mcmVlX2JvX3Bvb2woZmQsICZsaXN0KTsKIH0KIAotc3Rh dGljIHZvaWQgaWd0X3ZjNF9wdXJnZWFibGVfc3VidGVzdF9wcmVwYXJlKGludCBmZCwgc3RydWN0 IGlndF9saXN0ICpsaXN0KQorc3RhdGljIHZvaWQgaWd0X3ZjNF9wdXJnZWFibGVfc3VidGVzdF9w cmVwYXJlKGludCBmZCwgc3RydWN0IGlndF9saXN0X2hlYWQgKmxpc3QpCiB7CiAJaWd0X3ZjNF91 bm1hcF9mcmVlX2JvX3Bvb2woZmQsIGxpc3QpOwogCWlndF92YzRfYWxsb2NfbW1hcF9tYXhfYm8o ZmQsIGxpc3QsIDY0ICogMTAyNCk7CkBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIHZvaWQgaWd0 X3ZjNF9wdXJnZWFibGVfc3VidGVzdF9wcmVwYXJlKGludCBmZCwgc3RydWN0IGlndF9saXN0ICps aXN0KQogaWd0X21haW4KIHsKIAlzdHJ1Y3QgaWd0X3ZjNF9ibyAqYm87Ci0Jc3RydWN0IGlndF9s aXN0IGxpc3Q7CisJc3RydWN0IGlndF9saXN0X2hlYWQgbGlzdDsKIAl1aW50MzJfdCAqbWFwOwog CWludCBmZCwgcmV0OwogCkBAIC0xMTcsMjIgKzExNywyMiBAQCBpZ3RfbWFpbgogCQlmZCA9IGRy bV9vcGVuX2RyaXZlcihEUklWRVJfVkM0KTsKIAkJaWd0X3ZjNF9nZXRfcGFyYW0oZmQsIERSTV9W QzRfUEFSQU1fU1VQUE9SVFNfTUFEVklTRSwgJnZhbCk7CiAJCWlndF9yZXF1aXJlKHZhbCk7Ci0J CWlndF9saXN0X2luaXQoJmxpc3QpOworCQlJR1RfSU5JVF9MSVNUX0hFQUQoJmxpc3QpOwogCX0K IAogCWlndF9zdWJ0ZXN0KCJtYXJrLXdpbGxuZWVkIikgewogCQlpZ3RfdmM0X3B1cmdlYWJsZV9z dWJ0ZXN0X3ByZXBhcmUoZmQsICZsaXN0KTsKLQkJaWd0X2xpc3RfZm9yX2VhY2goYm8sICZsaXN0 LCBub2RlKQorCQlpZ3RfbGlzdF9mb3JfZWFjaF9lbnRyeShibywgJmxpc3QsIG5vZGUpCiAJCQlp Z3RfYXNzZXJ0KGlndF92YzRfcHVyZ2VhYmxlX2JvKGZkLCBiby0+aGFuZGxlLAogCQkJCQkJCWZh bHNlKSk7CiAJfQogCiAJaWd0X3N1YnRlc3QoIm1hcmstcHVyZ2VhYmxlIikgewogCQlpZ3RfdmM0 X3B1cmdlYWJsZV9zdWJ0ZXN0X3ByZXBhcmUoZmQsICZsaXN0KTsKLQkJaWd0X2xpc3RfZm9yX2Vh Y2goYm8sICZsaXN0LCBub2RlKQorCQlpZ3RfbGlzdF9mb3JfZWFjaF9lbnRyeShibywgJmxpc3Qs IG5vZGUpCiAJCQlpZ3RfdmM0X3B1cmdlYWJsZV9ibyhmZCwgYm8tPmhhbmRsZSwgdHJ1ZSk7CiAK LQkJaWd0X2xpc3RfZm9yX2VhY2goYm8sICZsaXN0LCBub2RlKQorCQlpZ3RfbGlzdF9mb3JfZWFj aF9lbnRyeShibywgJmxpc3QsIG5vZGUpCiAJCQlpZ3RfdmM0X3B1cmdlYWJsZV9ibyhmZCwgYm8t PmhhbmRsZSwgZmFsc2UpOwogCX0KIApAQCAtMjA1LDEzICsyMDUsMTMgQEAgaWd0X21haW4KIAog CWlndF9zdWJ0ZXN0KCJtYXJrLXVucHVyZ2VhYmxlLWNoZWNrLXJldGFpbmVkIikgewogCQlpZ3Rf dmM0X3B1cmdlYWJsZV9zdWJ0ZXN0X3ByZXBhcmUoZmQsICZsaXN0KTsKLQkJaWd0X2xpc3RfZm9y X2VhY2goYm8sICZsaXN0LCBub2RlKSB7CisJCWlndF9saXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAm bGlzdCwgbm9kZSkgewogCQkJbWFwID0gKHVpbnQzMl90ICopYm8tPm1hcDsKIAkJCSptYXAgPSAw eGRlYWRiZWVmOwogCQkJaWd0X3ZjNF9wdXJnZWFibGVfYm8oZmQsIGJvLT5oYW5kbGUsIHRydWUp OwogCQl9CiAKLQkJaWd0X2xpc3RfZm9yX2VhY2goYm8sICZsaXN0LCBub2RlKSB7CisJCWlndF9s aXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmbGlzdCwgbm9kZSkgewogCQkJbWFwID0gKHVpbnQzMl90 ICopYm8tPm1hcDsKIAkJCWlmIChpZ3RfdmM0X3B1cmdlYWJsZV9ibyhmZCwgYm8tPmhhbmRsZSwg ZmFsc2UpKQogCQkJCWlndF9hc3NlcnQoKm1hcCA9PSAweGRlYWRiZWVmKTsKQEAgLTIyMSw3ICsy MjEsNyBAQCBpZ3RfbWFpbgogCWlndF9zdWJ0ZXN0KCJtYXJrLXVucHVyZ2VhYmxlLXB1cmdlZCIp IHsKIAkJaWd0X3ZjNF9wdXJnZWFibGVfc3VidGVzdF9wcmVwYXJlKGZkLCAmbGlzdCk7CiAKLQkJ aWd0X2xpc3RfZm9yX2VhY2goYm8sICZsaXN0LCBub2RlKQorCQlpZ3RfbGlzdF9mb3JfZWFjaF9l bnRyeShibywgJmxpc3QsIG5vZGUpCiAJCQlpZ3RfdmM0X3B1cmdlYWJsZV9ibyhmZCwgYm8tPmhh bmRsZSwgdHJ1ZSk7CiAKIAkJLyogVHJpZ2dlciBhIHB1cmdlLiAqLwotLSAKMi4yMy4wCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxp bmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=