From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id B7AC76E394 for ; Thu, 24 Oct 2019 12:31:31 +0000 (UTC) From: Arkadiusz Hiler Date: Thu, 24 Oct 2019 15:31:14 +0300 Message-ID: <20191024123114.30474-1-arkadiusz.hiler@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t] 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 Cc: Petri Latvala List-ID: T3VyIGxpc3Qgd2FzIHNvbWV0aGluZyBiZXR3ZWVuIFdheWxhbmQgYW5kIExpbnV4IEtlcm5lbCBs aXN0CmltcGxlbWVudGF0aW9ucywgcmlnaHQgaW4gdGhlIHVuY2FubnkgdmFsbGV5LgoKT24gdG9w IG9mIHRoYXQgaXQgZmFsc2VseSBjbGFpbWVkIHRoYXQgaXQncyBhIHN0cmFpZ2h0IGNvcHkgZnJv bSB0aGUKV2F5bGFuZCBwcm9qZWN0LgoKTGV0J3MgbWFrZSBvdXIgaW1wbCBtb3JlIGFraW4gdG8g dGhlIGtlcm5lbCBvbmUgdG8gZWFzZSB0aGUgY29nbml0aXZlCmRpc3NvbmFuY2UgZm9yIHRoZSBk ZXZlbG9wZXJzIHdvcmtpbmcgb24gYWxsIHRob3NlIHByb2plY3RzLgoKVGhpcyBwYXRjaDoKICog bWltaWNzIHRoZSBjdXJyZW50IGtlcm5lbCBsaXN0IGludGVyZmFjZQogKiBzZXBhcmF0ZXMgSUdU IGhlbHBlcnMgaW4gdGhlIHNvdXJjZSBmaWxlcwogKiBhZGRzIGJyaWVmIGV4cGxhbmF0aW9uIGFu ZCBjb2RlIGV4YW1wbGUgZm9yIGlndC1kb2MKICogaW50cm9kdWNlcyBpZ3RfbGlzdC5jIGFzIHN0 YXRpYyBpbmxpbmVzIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUgZG9jcwoKdjI6IG1pbWljIHRoZSBr ZXJuZWwgaW5zdGVhZCBvZiB3YXlsYW5kIChDaHJpcykKICAgIC0gX2hlYWQgc3VmZml4IGZvciB0 aGUgc2VudGluZWwvbGluayBzdHJ1Y3QKICAgIC0gX2VudHJ5XyBpbiBpdGVyYXRvciBuYW1lcyB0 aGF0IGdvIG92ZXIgdGhlIGVsZW1lbnRzCgpDYzogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFs YUBpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4K U2lnbmVkLW9mZi1ieTogQXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJAaW50ZWwuY29t PgotLS0KIGJlbmNobWFya3MvZ2VtX3dzaW0uYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg NiArLQogLi4uL2lndC1ncHUtdG9vbHMvaWd0LWdwdS10b29scy1kb2NzLnhtbCAgICAgIHwgICAx ICsKIGxpYi9NYWtlZmlsZS5zb3VyY2VzICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr CiBsaWIvaWd0X2NoYW1lbGl1bS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0K IGxpYi9pZ3RfY29yZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQog bGliL2lndF9kdW1teWxvYWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICstCiBs aWIvaWd0X2R1bW15bG9hZC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGxp Yi9pZ3Rfa21vZC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogbGli L2lndF9rbW9kLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBsaWIv aWd0X2xpc3QuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjYgKysrKysrKwog bGliL2lndF9saXN0LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTY0ICsrKysr KysrKy0tLS0tLS0tLQogbGliL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAxICsKIHRlc3RzL3ZjNF9wdXJnZWFibGVfYm8uYyAgICAgICAgICAgICAgICAgICAg ICB8ICAyOCArLS0KIDEzIGZpbGVzIGNoYW5nZWQsIDE4OSBpbnNlcnRpb25zKCspLCAxMjEgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2lndF9saXN0LmMKCmRpZmYgLS1naXQg YS9iZW5jaG1hcmtzL2dlbV93c2ltLmMgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMKaW5kZXggODdm ODczYjAuLmQzYzg4NjE1IDEwMDY0NAotLS0gYS9iZW5jaG1hcmtzL2dlbV93c2ltLmMKKysrIGIv YmVuY2htYXJrcy9nZW1fd3NpbS5jCkBAIC0xNDIsNyArMTQyLDcgQEAgc3RydWN0IHdfc3RlcAog CiAJLyogSW1wbGVtZW50YXRpb24gZGV0YWlscyAqLwogCXVuc2lnbmVkIGludCBpZHg7Ci0Jc3Ry dWN0IGlndF9saXN0IHJxX2xpbms7CisJc3RydWN0IGlndF9saXN0X2hlYWQgcnFfbGluazsKIAl1 bnNpZ25lZCBpbnQgcmVxdWVzdDsKIAl1bnNpZ25lZCBpbnQgcHJlZW1wdF91czsKIApAQCAtMjEz LDcgKzIxMyw3IEBAIHN0cnVjdCB3b3JrbG9hZAogCXVuc2lnbmVkIGxvbmcgcWRfc3VtW05VTV9F TkdJTkVTXTsKIAl1bnNpZ25lZCBsb25nIG5yX2JiW05VTV9FTkdJTkVTXTsKIAotCXN0cnVjdCBp Z3RfbGlzdCByZXF1ZXN0c1tOVU1fRU5HSU5FU107CisJc3RydWN0IGlndF9saXN0X2hlYWQgcmVx dWVzdHNbTlVNX0VOR0lORVNdOwogCXVuc2lnbmVkIGludCBucmVxdWVzdFtOVU1fRU5HSU5FU107 CiAKIAlzdHJ1Y3Qgd29ya2xvYWQgKmdsb2JhbF93cms7CkBAIC0xMDYxLDcgKzEwNjEsNyBAQCBj bG9uZV93b3JrbG9hZChzdHJ1Y3Qgd29ya2xvYWQgKl93cmspCiAJfQogCiAJZm9yIChpID0gMDsg aSA8IE5VTV9FTkdJTkVTOyBpKyspCi0JCWlndF9saXN0X2luaXQoJndyay0+cmVxdWVzdHNbaV0p OworCQlJR1RfSU5JVF9MSVNUX0hFQUQoJndyay0+cmVxdWVzdHNbaV0pOwogCiAJcmV0dXJuIHdy azsKIH0KZGlmZiAtLWdpdCBhL2RvY3MvcmVmZXJlbmNlL2lndC1ncHUtdG9vbHMvaWd0LWdwdS10 b29scy1kb2NzLnhtbCBiL2RvY3MvcmVmZXJlbmNlL2lndC1ncHUtdG9vbHMvaWd0LWdwdS10b29s cy1kb2NzLnhtbAppbmRleCBhYzgzMjcyZi4uM2YxNGQ3YmUgMTAwNjQ0Ci0tLSBhL2RvY3MvcmVm ZXJlbmNlL2lndC1ncHUtdG9vbHMvaWd0LWdwdS10b29scy1kb2NzLnhtbAorKysgYi9kb2NzL3Jl ZmVyZW5jZS9pZ3QtZ3B1LXRvb2xzL2lndC1ncHUtdG9vbHMtZG9jcy54bWwKQEAgLTMxLDYgKzMx LDcgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvaWd0X2d2dC54bWwiLz4KICAgICA8eGk6 aW5jbHVkZSBocmVmPSJ4bWwvaWd0X2ttb2QueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0i eG1sL2lndF9rbXMueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2lndF9saXN0Lnht bCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9pZ3RfcG0ueG1sIi8+CiAgICAgPHhpOmlu Y2x1ZGUgaHJlZj0ieG1sL2lndF9wcmltZXMueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0i eG1sL2lndF9yYW5kLnhtbCIvPgpkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxlLnNvdXJjZXMgYi9s aWIvTWFrZWZpbGUuc291cmNlcwppbmRleCAzNGUwYzAxMi4uMWI1OGI2ZDAgMTAwNjQ0Ci0tLSBh L2xpYi9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL2xpYi9NYWtlZmlsZS5zb3VyY2VzCkBAIC00MSw2 ICs0MSw4IEBAIGxpYl9zb3VyY2VfbGlzdCA9CSAJXAogCWlndF9oYWxmZmxvYXQuaAkJXAogCWln dF9pbmZvZnJhbWUuYwkJXAogCWlndF9pbmZvZnJhbWUuaAkJXAorCWlndF9saXN0LmMJCVwKKwlp Z3RfbGlzdC5oCQlcCiAJaWd0X21hdHJpeC5jCQlcCiAJaWd0X21hdHJpeC5oCQlcCiAJaWd0X3By aW1lcy5jCQlcCmRpZmYgLS1naXQgYS9saWIvaWd0X2NoYW1lbGl1bS5jIGIvbGliL2lndF9jaGFt ZWxpdW0uYwppbmRleCAxYjAzYTEwMy4uOTk3MWY1MWQgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfY2hh bWVsaXVtLmMKKysrIGIvbGliL2lndF9jaGFtZWxpdW0uYwpAQCAtODcsNyArODcsNyBAQCBzdHJ1 Y3QgY2hhbWVsaXVtX2VkaWQgewogCXN0cnVjdCBlZGlkICpiYXNlOwogCXN0cnVjdCBlZGlkICpy YXdbQ0hBTUVMSVVNX01BWF9QT1JUU107CiAJaW50IGlkc1tDSEFNRUxJVU1fTUFYX1BPUlRTXTsK LQlzdHJ1Y3QgaWd0X2xpc3QgbGluazsKKwlzdHJ1Y3QgaWd0X2xpc3RfaGVhZCBsaW5rOwogfTsK IAogc3RydWN0IGNoYW1lbGl1bV9wb3J0IHsKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdHJ1Y3QgY2hh bWVsaXVtIHsKIAogCWludCBkcm1fZmQ7CiAKLQlzdHJ1Y3QgaWd0X2xpc3QgZWRpZHM7CisJc3Ry dWN0IGlndF9saXN0X2hlYWQgZWRpZHM7CiAJc3RydWN0IGNoYW1lbGl1bV9wb3J0IHBvcnRzW0NI QU1FTElVTV9NQVhfUE9SVFNdOwogCWludCBwb3J0X2NvdW50OwogfTsKQEAgLTIzMzYsNyArMjMz Niw3IEBAIHN0cnVjdCBjaGFtZWxpdW0gKmNoYW1lbGl1bV9pbml0KGludCBkcm1fZmQpCiAKIAlt ZW1zZXQoY2hhbWVsaXVtLCAwLCBzaXplb2YoKmNoYW1lbGl1bSkpOwogCWNoYW1lbGl1bS0+ZHJt X2ZkID0gZHJtX2ZkOwotCWlndF9saXN0X2luaXQoJmNoYW1lbGl1bS0+ZWRpZHMpOworCUlHVF9J TklUX0xJU1RfSEVBRCgmY2hhbWVsaXVtLT5lZGlkcyk7CiAKIAkvKiBTZXR1cCB0aGUgbGlieG1s cnBjIGNvbnRleHQgKi8KIAl4bWxycGNfZW52X2luaXQoJmNoYW1lbGl1bS0+ZW52KTsKQEAgLTIz ODgsNyArMjM4OCw3IEBAIHZvaWQgY2hhbWVsaXVtX2RlaW5pdChzdHJ1Y3QgY2hhbWVsaXVtICpj aGFtZWxpdW0pCiAJCWNoYW1lbGl1bV9wbHVnKGNoYW1lbGl1bSwgJmNoYW1lbGl1bS0+cG9ydHNb aV0pOwogCiAJLyogRGVzdHJveSBhbnkgRURJRHMgd2UgY3JlYXRlZCB0byBtYWtlIHN1cmUgd2Ug ZG9uJ3QgbGVhayB0aGVtICovCi0JaWd0X2xpc3RfZm9yX2VhY2hfc2FmZShwb3MsIHRtcCwgJmNo YW1lbGl1bS0+ZWRpZHMsIGxpbmspIHsKKwlpZ3RfbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBv cywgdG1wLCAmY2hhbWVsaXVtLT5lZGlkcywgbGluaykgewogCQlmb3IgKGkgPSAwOyBpIDwgQ0hB TUVMSVVNX01BWF9QT1JUUzsgaSsrKSB7CiAJCQlpZiAocG9zLT5pZHNbaV0pCiAJCQkJY2hhbWVs aXVtX2Rlc3Ryb3lfZWRpZChjaGFtZWxpdW0sIHBvcy0+aWRzW2ldKTsKZGlmZiAtLWdpdCBhL2xp Yi9pZ3RfY29yZS5jIGIvbGliL2lndF9jb3JlLmMKaW5kZXggN2JkNWFmYTUuLjg2Y2U4YWY5IDEw MDY0NAotLS0gYS9saWIvaWd0X2NvcmUuYworKysgYi9saWIvaWd0X2NvcmUuYwpAQCAtMjc4LDEw ICsyNzgsMTAgQEAgc3RhdGljIGNoYXIgX19jdXJyZW50X2Rlc2NyaXB0aW9uWzUxMl07CiAKIHN0 cnVjdCBkZXNjcmlwdGlvbl9ub2RlIHsKIAljaGFyIGRlc2Nbc2l6ZW9mKF9fY3VycmVudF9kZXNj cmlwdGlvbildOwotCXN0cnVjdCBpZ3RfbGlzdCBsaW5rOworCXN0cnVjdCBpZ3RfbGlzdF9oZWFk IGxpbms7CiB9OwogCi1zdGF0aWMgc3RydWN0IGlndF9saXN0IHN1Ymdyb3VwX2Rlc2NyaXB0aW9u czsKK3N0YXRpYyBzdHJ1Y3QgaWd0X2xpc3RfaGVhZCBzdWJncm91cF9kZXNjcmlwdGlvbnM7CiAK IAogYm9vbCBfX2lndF9wbGFpbl9vdXRwdXQgPSBmYWxzZTsKQEAgLTc5Nyw3ICs3OTcsNyBAQCBz dGF0aWMgaW50IGNvbW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCiAJaW50IHJldCA9 IDA7CiAKIAljb21tb25faW5pdF9lbnYoKTsKLQlpZ3RfbGlzdF9pbml0KCZzdWJncm91cF9kZXNj cmlwdGlvbnMpOworCUlHVF9JTklUX0xJU1RfSEVBRCgmc3ViZ3JvdXBfZGVzY3JpcHRpb25zKTsK IAogCWNvbW1hbmRfc3RyID0gYXJndlswXTsKIAlpZiAoc3RycmNocihjb21tYW5kX3N0ciwgJy8n KSkKQEAgLTEwNjgsNyArMTA2OCw3IEBAIHN0YXRpYyB2b2lkIF9faWd0X3ByaW50X2Rlc2NyaXB0 aW9uKGNvbnN0IGNoYXIgKnN1YnRlc3RfbmFtZSwgY29uc3QgY2hhciAqZmlsZSwKIAogCXByaW50 ZigiU1VCICVzICVzOiVkOlxuIiwgc3VidGVzdF9uYW1lLCBmaWxlLCBsaW5lKTsKIAotCWlndF9s aXN0X2Zvcl9lYWNoKGRlc2MsICZzdWJncm91cF9kZXNjcmlwdGlvbnMsIGxpbmspIHsKKwlpZ3Rf bGlzdF9mb3JfZWFjaF9lbnRyeShkZXNjLCAmc3ViZ3JvdXBfZGVzY3JpcHRpb25zLCBsaW5rKSB7 CiAJCXByaW50X2xpbmVfd3JhcHBpbmcoaW5kZW50LCBkZXNjLT5kZXNjKTsKIAkJcHJpbnRmKCJc biIpOwogCQloYXNfZG9jID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZHVtbXlsb2FkLmMg Yi9saWIvaWd0X2R1bW15bG9hZC5jCmluZGV4IDYwNjA4NzhkLi5iOWUyMzlkYiAxMDA2NDQKLS0t IGEvbGliL2lndF9kdW1teWxvYWQuYworKysgYi9saWIvaWd0X2R1bW15bG9hZC5jCkBAIC02NSw3 ICs2NSw3IEBACiBzdGF0aWMgY29uc3QgaW50IEJBVENIX1NJWkUgPSA0MDk2Owogc3RhdGljIGNv bnN0IGludCBMT09QX1NUQVJUX09GRlNFVCA9IDY0OwogCi1zdGF0aWMgSUdUX0xJU1Qoc3Bpbl9s aXN0KTsKK3N0YXRpYyBJR1RfTElTVF9IRUFEKHNwaW5fbGlzdCk7CiBzdGF0aWMgcHRocmVhZF9t dXRleF90IGxpc3RfbG9jayA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CiAKIHN0YXRpYyBp bnQKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIGlndF90ZXJtaW5hdGVfc3BpbnModm9pZCkKIAlz dHJ1Y3QgaWd0X3NwaW4gKml0ZXI7CiAKIAlwdGhyZWFkX211dGV4X2xvY2soJmxpc3RfbG9jayk7 Ci0JaWd0X2xpc3RfZm9yX2VhY2goaXRlciwgJnNwaW5fbGlzdCwgbGluaykKKwlpZ3RfbGlzdF9m b3JfZWFjaF9lbnRyeShpdGVyLCAmc3Bpbl9saXN0LCBsaW5rKQogCQlpZ3Rfc3Bpbl9lbmQoaXRl cik7CiAJcHRocmVhZF9tdXRleF91bmxvY2soJmxpc3RfbG9jayk7CiB9CkBAIC00NzQsOSArNDc0 LDkgQEAgdm9pZCBpZ3RfdW5zaGFyZV9zcGlucyh2b2lkKQogCXN0cnVjdCBpZ3Rfc3BpbiAqaXQs ICpuOwogCiAJLyogRGlzYWJsZSB0aGUgYXV0b21hdGljIHRlcm1pbmF0aW9uIG9uIGluaGVyaXRl ZCBzcGlubmVycyAqLwotCWlndF9saXN0X2Zvcl9lYWNoX3NhZmUoaXQsIG4sICZzcGluX2xpc3Qs IGxpbmspCi0JCWlndF9saXN0X2luaXQoJml0LT5saW5rKTsKLQlpZ3RfbGlzdF9pbml0KCZzcGlu X2xpc3QpOworCWlndF9saXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoaXQsIG4sICZzcGluX2xpc3Qs IGxpbmspCisJCUlHVF9JTklUX0xJU1RfSEVBRCgmaXQtPmxpbmspOworCUlHVF9JTklUX0xJU1Rf SEVBRCgmc3Bpbl9saXN0KTsKIH0KIAogc3RhdGljIHVpbnQzMl90IHBsdWdfdmdlbV9oYW5kbGUo c3RydWN0IGlndF9jb3JrICpjb3JrLCBpbnQgZmQpCmRpZmYgLS1naXQgYS9saWIvaWd0X2R1bW15 bG9hZC5oIGIvbGliL2lndF9kdW1teWxvYWQuaAppbmRleCA2NjgzNzA1Ny4uNDIxY2ExODMgMTAw NjQ0Ci0tLSBhL2xpYi9pZ3RfZHVtbXlsb2FkLmgKKysrIGIvbGliL2lndF9kdW1teWxvYWQuaApA QCAtMzUsNyArMzUsNyBAQAogdHlwZWRlZiBzdHJ1Y3QgaWd0X3NwaW4gewogCXVuc2lnbmVkIGlu dCBoYW5kbGU7CiAJdGltZXJfdCB0aW1lcjsKLQlzdHJ1Y3QgaWd0X2xpc3QgbGluazsKKwlzdHJ1 Y3QgaWd0X2xpc3RfaGVhZCBsaW5rOwogCiAJdWludDMyX3QgKmNvbmRpdGlvbjsKIAl1aW50MzJf dCBjbWRfcHJlY29uZGl0aW9uOwpkaWZmIC0tZ2l0IGEvbGliL2lndF9rbW9kLmMgYi9saWIvaWd0 X2ttb2QuYwppbmRleCBjM2RhNDY2Ny4uZjc1NmY4MGUgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21v ZC5jCisrKyBiL2xpYi9pZ3Rfa21vZC5jCkBAIC00MTIsMTEgKzQxMiwxMSBAQCBzdGF0aWMgdm9p ZCBrbXNnX2R1bXAoaW50IGZkKQogCX0KIH0KIAotc3RhdGljIHZvaWQgdGVzdHNfYWRkKHN0cnVj dCBpZ3Rfa3NlbGZ0ZXN0X2xpc3QgKnRsLCBzdHJ1Y3QgaWd0X2xpc3QgKmxpc3QpCitzdGF0aWMg dm9pZCB0ZXN0c19hZGQoc3RydWN0IGlndF9rc2VsZnRlc3RfbGlzdCAqdGwsIHN0cnVjdCBpZ3Rf bGlzdF9oZWFkICpsaXN0KQogewogCXN0cnVjdCBpZ3Rfa3NlbGZ0ZXN0X2xpc3QgKnBvczsKIAot CWlndF9saXN0X2Zvcl9lYWNoKHBvcywgbGlzdCwgbGluaykKKwlpZ3RfbGlzdF9mb3JfZWFjaF9l bnRyeShwb3MsIGxpc3QsIGxpbmspCiAJCWlmIChwb3MtPm51bWJlciA+IHRsLT5udW1iZXIpCiAJ CQlicmVhazsKIApAQCAtNDI1LDcgKzQyNSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RzX2FkZChzdHJ1 Y3QgaWd0X2tzZWxmdGVzdF9saXN0ICp0bCwgc3RydWN0IGlndF9saXN0ICpsaXN0KQogCiB2b2lk IGlndF9rc2VsZnRlc3RfZ2V0X3Rlc3RzKHN0cnVjdCBrbW9kX21vZHVsZSAqa21vZCwKIAkJCSAg ICAgY29uc3QgY2hhciAqZmlsdGVyLAotCQkJICAgICBzdHJ1Y3QgaWd0X2xpc3QgKnRlc3RzKQor CQkJICAgICBzdHJ1Y3QgaWd0X2xpc3RfaGVhZCAqdGVzdHMpCiB7CiAJY29uc3QgY2hhciAqcGFy YW1fcHJlZml4ID0gImlndF9fIjsKIAljb25zdCBpbnQgcHJlZml4X2xlbiA9IHN0cmxlbihwYXJh bV9wcmVmaXgpOwpAQCAtNTY4LDcgKzU2OCw3IEBAIHZvaWQgaWd0X2tzZWxmdGVzdHMoY29uc3Qg Y2hhciAqbW9kdWxlX25hbWUsCiAJCSAgICBjb25zdCBjaGFyICpmaWx0ZXIpCiB7CiAJc3RydWN0 IGlndF9rc2VsZnRlc3QgdHN0OwotCUlHVF9MSVNUKHRlc3RzKTsKKwlJR1RfTElTVF9IRUFEKHRl c3RzKTsKIAlzdHJ1Y3QgaWd0X2tzZWxmdGVzdF9saXN0ICp0bCwgKnRuOwogCiAJaWYgKGlndF9r c2VsZnRlc3RfaW5pdCgmdHN0LCBtb2R1bGVfbmFtZSkgIT0gMCkKQEAgLTU3OCw3ICs1NzgsNyBA QCB2b2lkIGlndF9rc2VsZnRlc3RzKGNvbnN0IGNoYXIgKm1vZHVsZV9uYW1lLAogCQlpZ3RfcmVx dWlyZShpZ3Rfa3NlbGZ0ZXN0X2JlZ2luKCZ0c3QpID09IDApOwogCiAJaWd0X2tzZWxmdGVzdF9n ZXRfdGVzdHModHN0Lmttb2QsIGZpbHRlciwgJnRlc3RzKTsKLQlpZ3RfbGlzdF9mb3JfZWFjaF9z YWZlKHRsLCB0biwgJnRlc3RzLCBsaW5rKSB7CisJaWd0X2xpc3RfZm9yX2VhY2hfZW50cnlfc2Fm ZSh0bCwgdG4sICZ0ZXN0cywgbGluaykgewogCQlpZ3Rfc3VidGVzdF9mKCIlcyIsIHRsLT5uYW1l KQogCQkJaWd0X2tzZWxmdGVzdF9leGVjdXRlKCZ0c3QsIHRsLCBvcHRpb25zLCByZXN1bHQpOwog CQlmcmVlKHRsKTsKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21vZC5oIGIvbGliL2lndF9rbW9kLmgK aW5kZXggODdkMzZkNDAuLmIxNWNkZTQ2IDEwMDY0NAotLS0gYS9saWIvaWd0X2ttb2QuaAorKysg Yi9saWIvaWd0X2ttb2QuaApAQCAtNDksNyArNDksNyBAQCBzdHJ1Y3QgaWd0X2tzZWxmdGVzdCB7 CiB9OwogCiBzdHJ1Y3QgaWd0X2tzZWxmdGVzdF9saXN0IHsKLQlzdHJ1Y3QgaWd0X2xpc3QgbGlu azsKKwlzdHJ1Y3QgaWd0X2xpc3RfaGVhZCBsaW5rOwogCXVuc2lnbmVkIGludCBudW1iZXI7CiAJ Y2hhciAqbmFtZTsKIAljaGFyIHBhcmFtW107CkBAIC02MSw3ICs2MSw3IEBAIGludCBpZ3Rfa3Nl bGZ0ZXN0X2JlZ2luKHN0cnVjdCBpZ3Rfa3NlbGZ0ZXN0ICp0c3QpOwogCiB2b2lkIGlndF9rc2Vs ZnRlc3RfZ2V0X3Rlc3RzKHN0cnVjdCBrbW9kX21vZHVsZSAqa21vZCwKIAkJCSAgICAgY29uc3Qg Y2hhciAqZmlsdGVyLAotCQkJICAgICBzdHJ1Y3QgaWd0X2xpc3QgKnRlc3RzKTsKKwkJCSAgICAg c3RydWN0IGlndF9saXN0X2hlYWQgKnRlc3RzKTsKIGludCBpZ3Rfa3NlbGZ0ZXN0X2V4ZWN1dGUo c3RydWN0IGlndF9rc2VsZnRlc3QgKnRzdCwKIAkJCSAgc3RydWN0IGlndF9rc2VsZnRlc3RfbGlz dCAqdGwsCiAJCQkgIGNvbnN0IGNoYXIgKm1vZHVsZV9vcHRpb25zLApkaWZmIC0tZ2l0IGEvbGli L2lndF9saXN0LmMgYi9saWIvaWd0X2xpc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMC4uNWU0NTE2MWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvaWd0X2xpc3QuYwpAQCAt MCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24K KyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5j bHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNv ZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg TElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hF VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H CisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisK KyNpbmNsdWRlICJpZ3RfbGlzdC5oIgorCit2b2lkIElHVF9JTklUX0xJU1RfSEVBRChzdHJ1Y3Qg aWd0X2xpc3RfaGVhZCAqbGlzdCkKK3sKKwlsaXN0LT5wcmV2ID0gbGlzdDsKKwlsaXN0LT5uZXh0 ID0gbGlzdDsKK30KKwordm9pZCBpZ3RfbGlzdF9hZGQoc3RydWN0IGlndF9saXN0X2hlYWQgKmVs ZW0sIHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpoZWFkKQoreworCWVsZW0tPnByZXYgPSBoZWFkOwor CWVsZW0tPm5leHQgPSBoZWFkLT5uZXh0OworCWhlYWQtPm5leHQgPSBlbGVtOworCWVsZW0tPm5l eHQtPnByZXYgPSBlbGVtOworfQorCisKK3ZvaWQgaWd0X2xpc3RfZGVsKHN0cnVjdCBpZ3RfbGlz dF9oZWFkICplbGVtKQoreworCWVsZW0tPnByZXYtPm5leHQgPSBlbGVtLT5uZXh0OworCWVsZW0t Pm5leHQtPnByZXYgPSBlbGVtLT5wcmV2OworCWVsZW0tPm5leHQgPSBOVUxMOworCWVsZW0tPnBy ZXYgPSBOVUxMOworfQorCitpbnQgaWd0X2xpc3RfbGVuZ3RoKGNvbnN0IHN0cnVjdCBpZ3RfbGlz dF9oZWFkICpoZWFkKQoreworCXN0cnVjdCAgaWd0X2xpc3RfaGVhZCAqZSA9IGhlYWQtPm5leHQ7 CisJaW50IGNvdW50ID0gMDsKKworCXdoaWxlIChlICE9IGhlYWQpIHsKKwkJZSA9IGUtPm5leHQ7 CisJCWNvdW50Kys7CisJfQorCisJcmV0dXJuIGNvdW50OworfQorCitib29sIGlndF9saXN0X2Vt cHR5KGNvbnN0IHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpoZWFkKQoreworCXJldHVybiBoZWFkLT5u ZXh0ID09IGhlYWQ7Cit9CmRpZmYgLS1naXQgYS9saWIvaWd0X2xpc3QuaCBiL2xpYi9pZ3RfbGlz dC5oCmluZGV4IGNhZGY5ZGQzLi4zZTEzOWI4YSAxMDA2NDQKLS0tIGEvbGliL2lndF9saXN0LmgK KysrIGIvbGliL2lndF9saXN0LmgKQEAgLTI4LDEwMiArMjgsMTAwIEBACiAjaW5jbHVkZSA8c3Rk Ym9vbC5oPgogI2luY2x1ZGUgPHN0ZGRlZi5oPgogCi0vKgotICogVGhpcyBsaXN0IGRhdGEgc3Ry dWN0dXJlIGlzIGEgdmVyYmF0aW0gY29weSBmcm9tIHdheWxhbmQtdXRpbC5oIGZyb20gdGhlCi0g KiBXYXlsYW5kIHByb2plY3Q7IGV4Y2VwdCB0aGF0IHdsXyBwcmVmaXggaGFzIGJlZW4gcmVtb3Zl ZC4KKy8qKgorICogU0VDVElPTjppZ3RfbGlzdAorICogQHNob3J0X2Rlc2NyaXB0aW9uOiBhIGxp c3QgaW1wbGVtZW50YXRpb24gaW5zcGlyZWQgYnkgdGhlIGtlcm5lbAorICogQHRpdGxlOiBJR1Qg TGlzdAorICogQGluY2x1ZGU6IGlndF9saXN0LmgKKyAqCisgKiBUaGlzIGxpc3QgZGF0YSBzdHJ1 Y3R1cmUgbWltaWNzIHRoZSBvbmUgd2UgY2FuIGZpbmQgaW4gdGhlIGtlcm5lbC4gQSBmZXcKKyAq IGJvbnVzIGhlbHBlcnMgYXJlIHByb3ZpZGVkLgorICoKKyAqIGlndF9saXN0IGlzIGEgZG91Ymx5 LWxpbmtlZCBsaXN0IHdoZXJlIGFuIGluc3RhbmNlIG9mIGlndF9saXN0X2hlYWQgaXMgYQorICog aGVhZCBzZW50aW5lbCBhbmQgaGFzIHRvIGJlIGluaXRpYWxpemVkLgorICoKKyAqIEV4YW1wbGUg dXNhZ2U6CisgKgorICogfFs8IS0tIGxhbmd1YWdlPSJDIiAtLT4KKyAqIHN0cnVjdCBpZ3RfbGlz dF9oZWFkIGZvb19oZWFkOworICoKKyAqIHN0cnVjdCBlbGVtZW50IHsKKyAqICAgICAgICAgaW50 IGZvbzsKKyAqICAgICAgICAgc3RydWN0IGlndF9saXN0X2hlYWQgbGluazsKKyAqIH07CisgKgor ICogc3RydWN0IGVsZW1lbnQgZTEsIGUyLCBlMzsKKyAqCisgKiBJR1RfSU5JVF9MSVNUX0hFQUQo JmZvb19oZWFkKTsKKyAqIGlndF9saXN0X2FkZCgmZTEubGluaywgJmZvb19oZWFkKTsgICAvLyBl MSBpcyB0aGUgZmlyc3QgZWxlbWVudAorICogaWd0X2xpc3RfYWRkKCZlMi5saW5rLCAmZm9vX2hl YWQpOyAgIC8vIGUyIGlzIG5vdyB0aGUgZmlyc3QgZWxlbWVudAorICogaWd0X2xpc3RfYWRkKCZl My5saW5rLCAmZTIubGluayk7ICAgIC8vIGluc2VydCBlMyBhZnRlciBlMgorICoKKyAqIHByaW50 ZigibGlzdCBsZW5ndGg6ICVkXG4iLCBpZ3RfbGlzdF9sZW5ndGgoJmZvb19oZWFkKSk7CisgKgor ICogc3RydWN0IGVsZW1lbnQgKml0ZXI7CisgKiBpZ3RfbGlzdF9mb3JfZWFjaF9lbnRyeShpdGVy LCAmZm9vX2hlYWQsIGxpbmspIHsKKyAqIAlwcmludGYoIiAgJWRcbiIsIGl0ZXItPmZvbyk7Cisg KiB9CisgKiBdfAogICovCiAKLXN0cnVjdCBpZ3RfbGlzdCB7Ci0Jc3RydWN0IGlndF9saXN0ICpw cmV2OwotCXN0cnVjdCBpZ3RfbGlzdCAqbmV4dDsKK3N0cnVjdCBpZ3RfbGlzdF9oZWFkIHsKKwlz dHJ1Y3QgaWd0X2xpc3RfaGVhZCAqcHJldjsKKwlzdHJ1Y3QgaWd0X2xpc3RfaGVhZCAqbmV4dDsK IH07CiAKLSNkZWZpbmUgX19JR1RfSU5JVF9MSVNUKG5hbWUpIHsgJihuYW1lKSwgJihuYW1lKSB9 Ci0jZGVmaW5lIElHVF9MSVNUKG5hbWUpIHN0cnVjdCBpZ3RfbGlzdCBuYW1lID0gX19JR1RfSU5J VF9MSVNUKG5hbWUpCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBpZ3RfbGlzdF9pbml0KHN0cnVjdCBp Z3RfbGlzdCAqbGlzdCkKLXsKLQlsaXN0LT5wcmV2ID0gbGlzdDsKLQlsaXN0LT5uZXh0ID0gbGlz dDsKLX0KK3ZvaWQgSUdUX0lOSVRfTElTVF9IRUFEKHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpoZWFk KTsKK3ZvaWQgaWd0X2xpc3RfYWRkKHN0cnVjdCBpZ3RfbGlzdF9oZWFkICplbGVtLCBzdHJ1Y3Qg aWd0X2xpc3RfaGVhZCAqaGVhZCk7Cit2b2lkIGlndF9saXN0X2RlbChzdHJ1Y3QgaWd0X2xpc3Rf aGVhZCAqZWxlbSk7CitpbnQgaWd0X2xpc3RfbGVuZ3RoKGNvbnN0IHN0cnVjdCBpZ3RfbGlzdF9o ZWFkICpoZWFkKTsKK2Jvb2wgaWd0X2xpc3RfZW1wdHkoY29uc3Qgc3RydWN0IGlndF9saXN0X2hl YWQgKmhlYWQpOwogCi1zdGF0aWMgaW5saW5lIHZvaWQgX19pZ3RfbGlzdF9hZGQoc3RydWN0IGln dF9saXN0ICpsaXN0LAotCQkJCSAgc3RydWN0IGlndF9saXN0ICpwcmV2LAotCQkJCSAgc3RydWN0 IGlndF9saXN0ICpuZXh0KQotewotCW5leHQtPnByZXYgPSBsaXN0OwotCWxpc3QtPm5leHQgPSBu ZXh0OwotCWxpc3QtPnByZXYgPSBwcmV2OwotCXByZXYtPm5leHQgPSBsaXN0OwotfQorI2RlZmlu ZSBpZ3RfY29udGFpbmVyX29mKHB0ciwgc2FtcGxlLCBtZW1iZXIpCQkJCVwKKwkoX190eXBlb2Zf XyhzYW1wbGUpKSgoY2hhciAqKShwdHIpIC0JCQkJXAorCQkJCW9mZnNldG9mKF9fdHlwZW9mX18o KnNhbXBsZSksIG1lbWJlcikpCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBpZ3RfbGlzdF9hZGQoc3Ry dWN0IGlndF9saXN0ICplbG0sIHN0cnVjdCBpZ3RfbGlzdCAqbGlzdCkKLXsKLQlfX2lndF9saXN0 X2FkZChlbG0sIGxpc3QsIGxpc3QtPm5leHQpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgaWd0 X2xpc3RfYWRkX3RhaWwoc3RydWN0IGlndF9saXN0ICplbG0sCi0JCQkJICAgICBzdHJ1Y3QgaWd0 X2xpc3QgKmxpc3QpCi17Ci0JX19pZ3RfbGlzdF9hZGQoZWxtLCBsaXN0LT5wcmV2LCBsaXN0KTsK LX0KLQotc3RhdGljIGlubGluZSB2b2lkIF9faWd0X2xpc3RfZGVsKHN0cnVjdCBpZ3RfbGlzdCAq cHJldiwgc3RydWN0IGlndF9saXN0ICpuZXh0KQotewotCW5leHQtPnByZXYgPSBwcmV2OwotCXBy ZXYtPm5leHQgPSBuZXh0OwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgaWd0X2xpc3RfZGVsKHN0 cnVjdCBpZ3RfbGlzdCAqZWxtKQotewotCV9faWd0X2xpc3RfZGVsKGVsbS0+cHJldiwgZWxtLT5u ZXh0KTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGlndF9saXN0X21vdmUoc3RydWN0IGlndF9s aXN0ICplbG0sIHN0cnVjdCBpZ3RfbGlzdCAqbGlzdCkKLXsKLQlpZ3RfbGlzdF9kZWwoZWxtKTsK LQlpZ3RfbGlzdF9hZGQoZWxtLCBsaXN0KTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGlndF9s aXN0X21vdmVfdGFpbChzdHJ1Y3QgaWd0X2xpc3QgKmVsbSwKLQkJCQkgICAgICBzdHJ1Y3QgaWd0 X2xpc3QgKmxpc3QpCi17Ci0JaWd0X2xpc3RfZGVsKGVsbSk7Ci0JaWd0X2xpc3RfYWRkX3RhaWwo ZWxtLCBsaXN0KTsKLX0KKyNkZWZpbmUgaWd0X2xpc3RfZm9yX2VhY2hfZW50cnkocG9zLCBoZWFk LCBtZW1iZXIpCQkJXAorCWZvciAocG9zID0gaWd0X2NvbnRhaW5lcl9vZigoaGVhZCktPm5leHQs IHBvcywgbWVtYmVyKTsJCVwKKwkgICAgICZwb3MtPm1lbWJlciAhPSAoaGVhZCk7CQkJCQlcCisJ ICAgICBwb3MgPSBpZ3RfY29udGFpbmVyX29mKChwb3MpLT5tZW1iZXIubmV4dCwgcG9zLCBtZW1i ZXIpKQorCisvKioKKyAqIGlndF9saXN0X2Zvcl9lYWNoX3NhZmUKKyAqCisgKiBTYWZlIGFnYWlu c3QgcmVtb3ZlbCBvZiB0aGUgKmN1cnJlbnQqIGxpc3QgZWxlbWVudC4gVG8gYWNoaXZlIHRoaXMg aXQKKyAqIHJlcXVpcmVzIGFuIGV4dHJhIGhlbHBlciB2YXJpYWJsZSBgdG1wYCB3aXRoIHRoZSBz YW1lIHR5cGUgYXMgYHBvc2AuCisgKi8KKyNkZWZpbmUgaWd0X2xpc3RfZm9yX2VhY2hfZW50cnlf c2FmZShwb3MsIHRtcCwgaGVhZCwgbWVtYmVyKQkJCVwKKwlmb3IgKHBvcyA9IGlndF9jb250YWlu ZXJfb2YoKGhlYWQpLT5uZXh0LCBwb3MsIG1lbWJlciksCQlcCisJICAgICB0bXAgPSBpZ3RfY29u dGFpbmVyX29mKChwb3MpLT5tZW1iZXIubmV4dCwgdG1wLCBtZW1iZXIpOyAJXAorCSAgICAgJnBv cy0+bWVtYmVyICE9IChoZWFkKTsJCQkJCVwKKwkgICAgIHBvcyA9IHRtcCwJCQkJCQkJXAorCSAg ICAgdG1wID0gaWd0X2NvbnRhaW5lcl9vZigocG9zKS0+bWVtYmVyLm5leHQsIHRtcCwgbWVtYmVy KSkKIAotc3RhdGljIGlubGluZSBib29sIGlndF9saXN0X2VtcHR5KGNvbnN0IHN0cnVjdCBpZ3Rf bGlzdCAqbGlzdCkKLXsKLQlyZXR1cm4gbGlzdC0+bmV4dCA9PSBsaXN0OwotfQorI2RlZmluZSBp Z3RfbGlzdF9mb3JfZWFjaF9lbnRyeV9yZXZlcnNlKHBvcywgaGVhZCwgbWVtYmVyKQkJXAorCWZv ciAocG9zID0gaWd0X2NvbnRhaW5lcl9vZigoaGVhZCktPnByZXYsIHBvcywgbWVtYmVyKTsJCVwK KwkgICAgICZwb3MtPm1lbWJlciAhPSAoaGVhZCk7CQkJCQlcCisJICAgICBwb3MgPSBpZ3RfY29u dGFpbmVyX29mKChwb3MpLT5tZW1iZXIucHJldiwgcG9zLCBtZW1iZXIpKQogCi0jZGVmaW5lIGNv bnRhaW5lcl9vZihwdHIsIHNhbXBsZSwgbWVtYmVyKQkJCQlcCi0JKHR5cGVvZihzYW1wbGUpKSgo Y2hhciAqKShwdHIpIC0gb2Zmc2V0b2YodHlwZW9mKCpzYW1wbGUpLCBtZW1iZXIpKQogCi0jZGVm aW5lIGlndF9saXN0X2ZpcnN0X2VudHJ5KGhlYWQsIHBvcywgbWVtYmVyKSBcCi0JY29udGFpbmVy X29mKChoZWFkKS0+bmV4dCwgKHBvcyksIG1lbWJlcikKLSNkZWZpbmUgaWd0X2xpc3RfbGFzdF9l bnRyeShoZWFkLCBwb3MsIG1lbWJlcikgXAotCWNvbnRhaW5lcl9vZigoaGVhZCktPnByZXYsIChw b3MpLCBtZW1iZXIpCisvKiBJR1QgY3VzdG9tIGhlbHBlcnMgKi8KIAotI2RlZmluZSBpZ3RfbGlz dF9uZXh0X2VudHJ5KHBvcywgbWVtYmVyKSBcCi0JY29udGFpbmVyX29mKChwb3MpLT5tZW1iZXIu bmV4dCwgKHBvcyksIG1lbWJlcikKLSNkZWZpbmUgaWd0X2xpc3RfcHJldl9lbnRyeShwb3MsIG1l bWJlcikgXAotCWNvbnRhaW5lcl9vZigocG9zKS0+bWVtYmVyLnByZXYsIChwb3MpLCBtZW1iZXIp CisvKioKKyAqIElHVF9MSVNUX0hFQUQKKyAqCisgKiBJbnN0ZWFkIG9mIGhhdmluZyB0byB1c2Ug YElHVF9JTklUX0xJU1RfSEVBRCgpYCBsaXN0IGNhbiBiZSBkZWZpbmVkIHVzaW5nCisgKiB0aGlz IGhlbHBlciwgZS5nLiBgc3RhdGljIElHVF9MSVNUX0hFQUQobGlzdCk7YAorICovCisjZGVmaW5l IElHVF9MSVNUX0hFQUQobmFtZSkgc3RydWN0IGlndF9saXN0X2hlYWQgbmFtZSA9IHsgJihuYW1l KSwgJihuYW1lKSB9CiAKLSNkZWZpbmUgaWd0X2xpc3RfZm9yX2VhY2gocG9zLCBoZWFkLCBtZW1i ZXIpCQkJCVwKLQlmb3IgKHBvcyA9IGlndF9saXN0X2ZpcnN0X2VudHJ5KGhlYWQsIHBvcywgbWVt YmVyKTsJCVwKLQkgICAgICZwb3MtPm1lbWJlciAhPSAoaGVhZCk7CQkJCQlcCi0JICAgICBwb3Mg PSBpZ3RfbGlzdF9uZXh0X2VudHJ5KHBvcywgbWVtYmVyKSkKKyNkZWZpbmUgaWd0X2xpc3RfYWRk X3RhaWwoZWxlbSwgaGVhZCkgaWd0X2xpc3RfYWRkKGVsZW0sIChoZWFkKS0+cHJldikKIAotI2Rl ZmluZSBpZ3RfbGlzdF9mb3JfZWFjaF9yZXZlcnNlKHBvcywgaGVhZCwgbWVtYmVyKQkJCVwKLQlm b3IgKHBvcyA9IGlndF9saXN0X2xhc3RfZW50cnkoaGVhZCwgcG9zLCBtZW1iZXIpOwkJXAotCSAg ICAgJnBvcy0+bWVtYmVyICE9IChoZWFkKTsJCQkJCVwKLQkgICAgIHBvcyA9IGlndF9saXN0X3By ZXZfZW50cnkocG9zLCBtZW1iZXIpKQorI2RlZmluZSBpZ3RfbGlzdF9maXJzdF9lbnRyeShoZWFk LCB0eXBlLCBtZW1iZXIpIFwKKwlpZ3RfY29udGFpbmVyX29mKChoZWFkKS0+bmV4dCwgKHR5cGUp LCBtZW1iZXIpCiAKLSNkZWZpbmUgaWd0X2xpc3RfZm9yX2VhY2hfc2FmZShwb3MsIHRtcCwgaGVh ZCwgbWVtYmVyKQkJCVwKLQlmb3IgKHBvcyA9IGlndF9saXN0X2ZpcnN0X2VudHJ5KGhlYWQsIHBv cywgbWVtYmVyKSwJCVwKLQkgICAgIHRtcCA9IGlndF9saXN0X25leHRfZW50cnkocG9zLCBtZW1i ZXIpOwkJCVwKLQkgICAgICZwb3MtPm1lbWJlciAhPSAoaGVhZCk7CQkJCQlcCi0JICAgICBwb3Mg PSB0bXAsIHRtcCA9IGlndF9saXN0X25leHRfZW50cnkocG9zLCBtZW1iZXIpKQorI2RlZmluZSBp Z3RfbGlzdF9sYXN0X2VudHJ5KGhlYWQsIHR5cGUsIG1lbWJlcikgXAorCWlndF9jb250YWluZXJf b2YoKGhlYWQpLT5wcmV2LCAodHlwZSksIG1lbWJlcikKIAogI2VuZGlmIC8qIElHVF9MSVNUX0gg Ki8KZGlmZiAtLWdpdCBhL2xpYi9tZXNvbi5idWlsZCBiL2xpYi9tZXNvbi5idWlsZAppbmRleCBm YmMwYzhkMS4uMTljYjYyNTUgMTAwNjQ0Ci0tLSBhL2xpYi9tZXNvbi5idWlsZAorKysgYi9saWIv bWVzb24uYnVpbGQKQEAgLTUwLDYgKzUwLDcgQEAgbGliX3NvdXJjZXMgPSBbCiAJJ2lndF9mYi5j JywKIAknaWd0X2NvcmUuYycsCiAJJ2lndF9kcmF3LmMnLAorCSdpZ3RfbGlzdC5jJywKIAknaWd0 X3BtLmMnLAogCSdpZ3RfZHVtbXlsb2FkLmMnLAogCSd1d2lsZG1hdC91d2lsZG1hdC5jJywKZGlm ZiAtLWdpdCBhL3Rlc3RzL3ZjNF9wdXJnZWFibGVfYm8uYyBiL3Rlc3RzL3ZjNF9wdXJnZWFibGVf Ym8uYwppbmRleCBjZmUxNGU3MC4uZWU4OWUxNTMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3ZjNF9wdXJn ZWFibGVfYm8uYworKysgYi90ZXN0cy92YzRfcHVyZ2VhYmxlX2JvLmMKQEAgLTM2LDcgKzM2LDcg QEAKICNpbmNsdWRlICJ2YzRfZHJtLmgiCiAKIHN0cnVjdCBpZ3RfdmM0X2JvIHsKLQlzdHJ1Y3Qg aWd0X2xpc3Qgbm9kZTsKKwlzdHJ1Y3QgaWd0X2xpc3RfaGVhZCBub2RlOwogCWludCBoYW5kbGU7 CiAJdm9pZCAqbWFwOwogCXNpemVfdCBzaXplOwpAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgdm9p ZCBfX2F0dHJpYnV0ZV9fKChub3JldHVybikpIHNpZ3RyYXAoaW50IHNpZykKIAlsb25nam1wKGpt cCwgc2lnKTsKIH0KIAotc3RhdGljIHZvaWQgaWd0X3ZjNF9hbGxvY19tbWFwX21heF9ibyhpbnQg ZmQsIHN0cnVjdCBpZ3RfbGlzdCAqbGlzdCwKK3N0YXRpYyB2b2lkIGlndF92YzRfYWxsb2NfbW1h cF9tYXhfYm8oaW50IGZkLCBzdHJ1Y3QgaWd0X2xpc3RfaGVhZCAqbGlzdCwKIAkJCQkgICAgICBz aXplX3Qgc2l6ZSkKIHsKIAlzdHJ1Y3QgaWd0X3ZjNF9ibyAqYm87CkBAIC03MSw3ICs3MSw3IEBA IHN0YXRpYyB2b2lkIGlndF92YzRfYWxsb2NfbW1hcF9tYXhfYm8oaW50IGZkLCBzdHJ1Y3QgaWd0 X2xpc3QgKmxpc3QsCiAJfQogfQogCi1zdGF0aWMgdm9pZCBpZ3RfdmM0X3VubWFwX2ZyZWVfYm9f cG9vbChpbnQgZmQsIHN0cnVjdCBpZ3RfbGlzdCAqbGlzdCkKK3N0YXRpYyB2b2lkIGlndF92YzRf dW5tYXBfZnJlZV9ib19wb29sKGludCBmZCwgc3RydWN0IGlndF9saXN0X2hlYWQgKmxpc3QpCiB7 CiAJc3RydWN0IGlndF92YzRfYm8gKmJvOwogCkBAIC04Nyw5ICs4Nyw5IEBAIHN0YXRpYyB2b2lk IGlndF92YzRfdW5tYXBfZnJlZV9ib19wb29sKGludCBmZCwgc3RydWN0IGlndF9saXN0ICpsaXN0 KQogCiBzdGF0aWMgdm9pZCBpZ3RfdmM0X3RyaWdnZXJfcHVyZ2UoaW50IGZkKQogewotCXN0cnVj dCBpZ3RfbGlzdCBsaXN0OworCXN0cnVjdCBpZ3RfbGlzdF9oZWFkIGxpc3Q7CiAKLQlpZ3RfbGlz dF9pbml0KCZsaXN0KTsKKwlJR1RfSU5JVF9MSVNUX0hFQUQoJmxpc3QpOwogCiAJLyogVHJ5IHRv IGFsbG9jYXRlIGFzIG11Y2ggYXMgd2UgY2FuIHRvIHRyaWdnZXIgYSBwdXJnZS4gKi8KIAlpZ3Rf dmM0X2FsbG9jX21tYXBfbWF4X2JvKGZkLCAmbGlzdCwgNjQgKiAxMDI0KTsKQEAgLTk3LDcgKzk3 LDcgQEAgc3RhdGljIHZvaWQgaWd0X3ZjNF90cmlnZ2VyX3B1cmdlKGludCBmZCkKIAlpZ3RfdmM0 X3VubWFwX2ZyZWVfYm9fcG9vbChmZCwgJmxpc3QpOwogfQogCi1zdGF0aWMgdm9pZCBpZ3RfdmM0 X3B1cmdlYWJsZV9zdWJ0ZXN0X3ByZXBhcmUoaW50IGZkLCBzdHJ1Y3QgaWd0X2xpc3QgKmxpc3Qp CitzdGF0aWMgdm9pZCBpZ3RfdmM0X3B1cmdlYWJsZV9zdWJ0ZXN0X3ByZXBhcmUoaW50IGZkLCBz dHJ1Y3QgaWd0X2xpc3RfaGVhZCAqbGlzdCkKIHsKIAlpZ3RfdmM0X3VubWFwX2ZyZWVfYm9fcG9v bChmZCwgbGlzdCk7CiAJaWd0X3ZjNF9hbGxvY19tbWFwX21heF9ibyhmZCwgbGlzdCwgNjQgKiAx MDI0KTsKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgdm9pZCBpZ3RfdmM0X3B1cmdlYWJsZV9z dWJ0ZXN0X3ByZXBhcmUoaW50IGZkLCBzdHJ1Y3QgaWd0X2xpc3QgKmxpc3QpCiBpZ3RfbWFpbgog ewogCXN0cnVjdCBpZ3RfdmM0X2JvICpibzsKLQlzdHJ1Y3QgaWd0X2xpc3QgbGlzdDsKKwlzdHJ1 Y3QgaWd0X2xpc3RfaGVhZCBsaXN0OwogCXVpbnQzMl90ICptYXA7CiAJaW50IGZkLCByZXQ7CiAK QEAgLTExNywyMiArMTE3LDIyIEBAIGlndF9tYWluCiAJCWZkID0gZHJtX29wZW5fZHJpdmVyKERS SVZFUl9WQzQpOwogCQlpZ3RfdmM0X2dldF9wYXJhbShmZCwgRFJNX1ZDNF9QQVJBTV9TVVBQT1JU U19NQURWSVNFLCAmdmFsKTsKIAkJaWd0X3JlcXVpcmUodmFsKTsKLQkJaWd0X2xpc3RfaW5pdCgm bGlzdCk7CisJCUlHVF9JTklUX0xJU1RfSEVBRCgmbGlzdCk7CiAJfQogCiAJaWd0X3N1YnRlc3Qo Im1hcmstd2lsbG5lZWQiKSB7CiAJCWlndF92YzRfcHVyZ2VhYmxlX3N1YnRlc3RfcHJlcGFyZShm ZCwgJmxpc3QpOwotCQlpZ3RfbGlzdF9mb3JfZWFjaChibywgJmxpc3QsIG5vZGUpCisJCWlndF9s aXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmbGlzdCwgbm9kZSkKIAkJCWlndF9hc3NlcnQoaWd0X3Zj NF9wdXJnZWFibGVfYm8oZmQsIGJvLT5oYW5kbGUsCiAJCQkJCQkJZmFsc2UpKTsKIAl9CiAKIAlp Z3Rfc3VidGVzdCgibWFyay1wdXJnZWFibGUiKSB7CiAJCWlndF92YzRfcHVyZ2VhYmxlX3N1YnRl c3RfcHJlcGFyZShmZCwgJmxpc3QpOwotCQlpZ3RfbGlzdF9mb3JfZWFjaChibywgJmxpc3QsIG5v ZGUpCisJCWlndF9saXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmbGlzdCwgbm9kZSkKIAkJCWlndF92 YzRfcHVyZ2VhYmxlX2JvKGZkLCBiby0+aGFuZGxlLCB0cnVlKTsKIAotCQlpZ3RfbGlzdF9mb3Jf ZWFjaChibywgJmxpc3QsIG5vZGUpCisJCWlndF9saXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmbGlz dCwgbm9kZSkKIAkJCWlndF92YzRfcHVyZ2VhYmxlX2JvKGZkLCBiby0+aGFuZGxlLCBmYWxzZSk7 CiAJfQogCkBAIC0yMDUsMTMgKzIwNSwxMyBAQCBpZ3RfbWFpbgogCiAJaWd0X3N1YnRlc3QoIm1h cmstdW5wdXJnZWFibGUtY2hlY2stcmV0YWluZWQiKSB7CiAJCWlndF92YzRfcHVyZ2VhYmxlX3N1 YnRlc3RfcHJlcGFyZShmZCwgJmxpc3QpOwotCQlpZ3RfbGlzdF9mb3JfZWFjaChibywgJmxpc3Qs IG5vZGUpIHsKKwkJaWd0X2xpc3RfZm9yX2VhY2hfZW50cnkoYm8sICZsaXN0LCBub2RlKSB7CiAJ CQltYXAgPSAodWludDMyX3QgKiliby0+bWFwOwogCQkJKm1hcCA9IDB4ZGVhZGJlZWY7CiAJCQlp Z3RfdmM0X3B1cmdlYWJsZV9ibyhmZCwgYm8tPmhhbmRsZSwgdHJ1ZSk7CiAJCX0KIAotCQlpZ3Rf bGlzdF9mb3JfZWFjaChibywgJmxpc3QsIG5vZGUpIHsKKwkJaWd0X2xpc3RfZm9yX2VhY2hfZW50 cnkoYm8sICZsaXN0LCBub2RlKSB7CiAJCQltYXAgPSAodWludDMyX3QgKiliby0+bWFwOwogCQkJ aWYgKGlndF92YzRfcHVyZ2VhYmxlX2JvKGZkLCBiby0+aGFuZGxlLCBmYWxzZSkpCiAJCQkJaWd0 X2Fzc2VydCgqbWFwID09IDB4ZGVhZGJlZWYpOwpAQCAtMjIxLDcgKzIyMSw3IEBAIGlndF9tYWlu CiAJaWd0X3N1YnRlc3QoIm1hcmstdW5wdXJnZWFibGUtcHVyZ2VkIikgewogCQlpZ3RfdmM0X3B1 cmdlYWJsZV9zdWJ0ZXN0X3ByZXBhcmUoZmQsICZsaXN0KTsKIAotCQlpZ3RfbGlzdF9mb3JfZWFj aChibywgJmxpc3QsIG5vZGUpCisJCWlndF9saXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmbGlzdCwg bm9kZSkKIAkJCWlndF92YzRfcHVyZ2VhYmxlX2JvKGZkLCBiby0+aGFuZGxlLCB0cnVlKTsKIAog CQkvKiBUcmlnZ2VyIGEgcHVyZ2UuICovCi0tIAoyLjIxLjAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaWd0LWRldg==