From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 3/6] dma-buf: add is_write to reservation_object_add_shared_fence Date: Thu, 9 Aug 2018 13:37:10 +0200 Message-ID: <20180809113713.48024-4-christian.koenig@amd.com> References: <20180809113713.48024-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180809113713.48024-1-christian.koenig@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org Tm90ZSBpZiB0aGUgYWRkZWQgZmVuY2UgaXMgYSB3cml0ZSBieSB1c2luZyB0aGUgbHNiIGluIHRo ZSBmZW5jIHBvaW50ZXIuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3Rp YW4ua29lbmlnQGFtZC5jb20+Ci0tLQogZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyAgICAgICAg ICAgICAgICAgICAgfCAgOCArKystCiBkcml2ZXJzL2RtYS1idWYvcmVzZXJ2YXRpb24uYyAgICAg ICAgICAgICAgICB8IDU5ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9ldG5hdml2L2V0bmF2aXZfZ2VtX3N1Ym1pdC5jIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgIHwgIDYgKystCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9nZW0uYyAgICAgICAgICAgICAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X2JvLmMgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxl YXNlLmMgICAgICAgICAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9v YmplY3QuYyAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jICAgICAg ICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwu YyAgICAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9nZW0uYyAgICAgICAgICAg ICAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2ZlbmNlLmMgICAgICAgICAg ICB8ICAyICstCiBpbmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9uLmggICAgICAgICAgICAgICAgICB8 IDIwICsrKysrKystLS0KIDE1IGZpbGVzIGNoYW5nZWQsIDc2IGluc2VydGlvbnMoKyksIDQ0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMgYi9kcml2 ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCmluZGV4IDEzODg0NDc0ZDE1OC4uNmI4MTZjZDUwNWQ2IDEw MDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCisrKyBiL2RyaXZlcnMvZG1hLWJ1 Zi9kbWEtYnVmLmMKQEAgLTI0NCw3ICsyNDQsMTAgQEAgc3RhdGljIF9fcG9sbF90IGRtYV9idWZf cG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgcG9sbF90YWJsZSAqcG9sbCkKIAkJCWdvdG8gb3V0Owog CiAJCWZvciAoaSA9IDA7IGkgPCBzaGFyZWRfY291bnQ7ICsraSkgewotCQkJc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2UgPSByY3VfZGVyZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKTsKKwkJCXN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlOworCisJCQlmZW5jZSA9IHJlc2VydmF0aW9uX29iamVjdF9zaGFy ZWRfZmVuY2UoCisJCQkJcmN1X2RlcmVmZXJlbmNlKGZvYmotPnNoYXJlZFtpXSkpOwogCiAJCQlp ZiAoIWRtYV9mZW5jZV9nZXRfcmN1KGZlbmNlKSkgewogCQkJCS8qCkBAIC0xMDYyLDcgKzEwNjUs OCBAQCBzdGF0aWMgaW50IGRtYV9idWZfZGVidWdfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZv aWQgKnVudXNlZCkKIAkJCQkgICBmZW5jZS0+b3BzLT5nZXRfdGltZWxpbmVfbmFtZShmZW5jZSks CiAJCQkJICAgZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSA/ICIiIDogInVuIik7CiAJCWZv ciAoaSA9IDA7IGkgPCBzaGFyZWRfY291bnQ7IGkrKykgewotCQkJZmVuY2UgPSByY3VfZGVyZWZl cmVuY2UoZm9iai0+c2hhcmVkW2ldKTsKKwkJCWZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X3No YXJlZF9mZW5jZSgKKwkJCQlyY3VfZGVyZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKSk7CiAJCQlp ZiAoIWRtYV9mZW5jZV9nZXRfcmN1KGZlbmNlKSkKIAkJCQljb250aW51ZTsKIAkJCXNlcV9wcmlu dGYocywgIlx0U2hhcmVkIGZlbmNlOiAlcyAlcyAlc3NpZ25hbGxlZFxuIiwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlvbi5jIGIvZHJpdmVycy9kbWEtYnVmL3Jlc2VydmF0 aW9uLmMKaW5kZXggMWYwYzYxYjU0MGJhLi4wZjk4Mzg0Yjg2ZDQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZG1hLWJ1Zi9yZXNlcnZhdGlvbi5jCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlv bi5jCkBAIC05MywxNCArOTMsMTQgQEAgaW50IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3No YXJlZChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCiAJICogdGhlIG5ldy4KIAkgKi8K IAlmb3IgKGkgPSAwLCBqID0gMCwgayA9IG1heDsgaSA8IChvbGQgPyBvbGQtPnNoYXJlZF9jb3Vu dCA6IDApOyArK2kpIHsKLQkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CisJCXZvaWQgKmU7CiAK LQkJZmVuY2UgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9sZC0+c2hhcmVkW2ldLAotCQkJ CQkJICByZXNlcnZhdGlvbl9vYmplY3RfaGVsZChvYmopKTsKLQkJaWYgKGRtYV9mZW5jZV9pc19z aWduYWxlZChmZW5jZSkpCi0JCQlSQ1VfSU5JVF9QT0lOVEVSKG5ldy0+c2hhcmVkWy0ta10sIGZl bmNlKTsKKwkJZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQob2xkLT5zaGFyZWRbaV0sCisJ CQkJCSAgICAgIHJlc2VydmF0aW9uX29iamVjdF9oZWxkKG9iaikpOworCQlpZiAoZG1hX2ZlbmNl X2lzX3NpZ25hbGVkKHJlc2VydmF0aW9uX29iamVjdF9zaGFyZWRfZmVuY2UoZSkpKQorCQkJUkNV X0lOSVRfUE9JTlRFUihuZXctPnNoYXJlZFstLWtdLCBlKTsKIAkJZWxzZQotCQkJUkNVX0lOSVRf UE9JTlRFUihuZXctPnNoYXJlZFtqKytdLCBmZW5jZSk7CisJCQlSQ1VfSU5JVF9QT0lOVEVSKG5l dy0+c2hhcmVkW2orK10sIGUpOwogCX0KIAluZXctPnNoYXJlZF9jb3VudCA9IGo7CiAJbmV3LT5z aGFyZWRfbWF4ID0gbWF4OwpAQCAtMTIwLDExICsxMjAsMTEgQEAgaW50IHJlc2VydmF0aW9uX29i amVjdF9yZXNlcnZlX3NoYXJlZChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCiAKIAkv KiBEcm9wIHRoZSByZWZlcmVuY2VzIHRvIHRoZSBzaWduYWxlZCBmZW5jZXMgKi8KIAlmb3IgKGkg PSBrOyBpIDwgbmV3LT5zaGFyZWRfbWF4OyArK2kpIHsKLQkJc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2U7CisJCXZvaWQgKmU7CiAKLQkJZmVuY2UgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG5l dy0+c2hhcmVkW2ldLAotCQkJCQkJICByZXNlcnZhdGlvbl9vYmplY3RfaGVsZChvYmopKTsKLQkJ ZG1hX2ZlbmNlX3B1dChmZW5jZSk7CisJCWUgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG5l dy0+c2hhcmVkW2ldLAorCQkJCQkgICAgICByZXNlcnZhdGlvbl9vYmplY3RfaGVsZChvYmopKTsK KwkJZG1hX2ZlbmNlX3B1dChyZXNlcnZhdGlvbl9vYmplY3Rfc2hhcmVkX2ZlbmNlKGUpKTsKIAl9 CiAJa2ZyZWVfcmN1KG9sZCwgcmN1KTsKIApAQCAtMTQxLDcgKzE0MSw4IEBAIEVYUE9SVF9TWU1C T0wocmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKTsKICAqIHJlc2VydmF0aW9uX29i amVjdF9yZXNlcnZlX3NoYXJlZCgpIGhhcyBiZWVuIGNhbGxlZC4KICAqLwogdm9pZCByZXNlcnZh dGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpv YmosCi0JCQkJCSBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKKwkJCQkJIHN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlLAorCQkJCQkgYm9vbCBpc193cml0ZSkKIHsKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25f b2JqZWN0X2xpc3QgKmZvYmo7CiAJdW5zaWduZWQgaW50IGk7CkBAIC0xNTUsMTMgKzE1NiwxNyBA QCB2b2lkIHJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKHN0cnVjdCByZXNlcnZh dGlvbl9vYmplY3QgKm9iaiwKIAogCWZvciAoaSA9IDA7IGkgPCBmb2JqLT5zaGFyZWRfY291bnQ7 ICsraSkgewogCQlzdHJ1Y3QgZG1hX2ZlbmNlICpvbGRfZmVuY2U7CisJCXZvaWQgKmU7CiAKLQkJ b2xkX2ZlbmNlID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChmb2JqLT5zaGFyZWRbaV0sCi0J CQkJCQkgICAgICByZXNlcnZhdGlvbl9vYmplY3RfaGVsZChvYmopKTsKLQkJaWYgKG9sZF9mZW5j ZS0+Y29udGV4dCA9PSBmZW5jZS0+Y29udGV4dCB8fAorCQllID0gcmN1X2RlcmVmZXJlbmNlX3By b3RlY3RlZChmb2JqLT5zaGFyZWRbaV0sCisJCQkJCSAgICAgIHJlc2VydmF0aW9uX29iamVjdF9o ZWxkKG9iaikpOworCQlvbGRfZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3Rfc2hhcmVkX2ZlbmNl KGUpOworCQlpZiAoKG9sZF9mZW5jZS0+Y29udGV4dCA9PSBmZW5jZS0+Y29udGV4dCAmJgorCQkg ICAgcmVzZXJ2YXRpb25fb2JqZWN0X3NoYXJlZF9pc193cml0ZShlKSA9PSBpc193cml0ZSkgfHwK IAkJICAgIGRtYV9mZW5jZV9pc19zaWduYWxlZChvbGRfZmVuY2UpKSB7CiAJCQkvKiBtZW1vcnkg YmFycmllciBpcyBhZGRlZCBieSB3cml0ZV9zZXFjb3VudF9iZWdpbiAqLwotCQkJUkNVX0lOSVRf UE9JTlRFUihmb2JqLT5zaGFyZWRbaV0sIGZlbmNlKTsKKwkJCVJDVV9JTklUX1BPSU5URVIoZm9i ai0+c2hhcmVkW2ldLAorCQkJCQkgKHZvaWQgKikoaXNfd3JpdGUgfCAobG9uZylmZW5jZSkpOwog CQkJd3JpdGVfc2VxY291bnRfZW5kKCZvYmotPnNlcSk7CiAJCQlwcmVlbXB0X2VuYWJsZSgpOwog CQkJZG1hX2ZlbmNlX3B1dChvbGRfZmVuY2UpOwpAQCAtMTczLDcgKzE3OCw4IEBAIHZvaWQgcmVz ZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVj dCAqb2JqLAogCSAqIG1lbW9yeSBiYXJyaWVyIGlzIGFkZGVkIGJ5IHdyaXRlX3NlcWNvdW50X2Jl Z2luLAogCSAqIGZvYmotPnNoYXJlZF9jb3VudCBpcyBwcm90ZWN0ZWQgYnkgdGhpcyBsb2NrIHRv bwogCSAqLwotCVJDVV9JTklUX1BPSU5URVIoZm9iai0+c2hhcmVkW2ZvYmotPnNoYXJlZF9jb3Vu dF0sIGZlbmNlKTsKKwlSQ1VfSU5JVF9QT0lOVEVSKGZvYmotPnNoYXJlZFtmb2JqLT5zaGFyZWRf Y291bnRdLAorCQkJICh2b2lkICopKGlzX3dyaXRlIHwgKGxvbmcpZmVuY2UpKTsKIAlmb2JqLT5z aGFyZWRfY291bnQrKzsKIAogCXdyaXRlX3NlcWNvdW50X2VuZCgmb2JqLT5zZXEpOwpAQCAtMjEz LDggKzIxOSw3IEBAIHZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHN0cnVj dCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKIAogCS8qIGlucGxhY2UgdXBkYXRlLCBubyBzaGFy ZWQgZmVuY2VzICovCiAJd2hpbGUgKGktLSkKLQkJZG1hX2ZlbmNlX3B1dChyY3VfZGVyZWZlcmVu Y2VfcHJvdGVjdGVkKG9sZC0+c2hhcmVkW2ldLAotCQkJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2hl bGQob2JqKSkpOworCQlkbWFfZmVuY2VfcHV0KHJlc2VydmF0aW9uX29iamVjdF9nZXRfc2hhcmVk X2ZlbmNlKG9iaiwgb2xkLCBpKSk7CiAKIAlkbWFfZmVuY2VfcHV0KG9sZF9mZW5jZSk7CiB9CkBA IC0yNjAsOCArMjY1LDEwIEBAIGludCByZXNlcnZhdGlvbl9vYmplY3RfY29weV9mZW5jZXMoc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqZHN0LAogCQlkc3RfbGlzdC0+c2hhcmVkX21heCA9IHNo YXJlZF9jb3VudDsKIAkJZm9yIChpID0gMDsgaSA8IHNyY19saXN0LT5zaGFyZWRfY291bnQ7ICsr aSkgewogCQkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CisJCQl2b2lkICplOwogCi0JCQlmZW5j ZSA9IHJjdV9kZXJlZmVyZW5jZShzcmNfbGlzdC0+c2hhcmVkW2ldKTsKKwkJCWUgPSByY3VfZGVy ZWZlcmVuY2Uoc3JjX2xpc3QtPnNoYXJlZFtpXSk7CisJCQlmZW5jZSA9IHJlc2VydmF0aW9uX29i amVjdF9zaGFyZWRfZmVuY2UoZSk7CiAJCQlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdfU0lH TkFMRURfQklULAogCQkJCSAgICAgJmZlbmNlLT5mbGFncykpCiAJCQkJY29udGludWU7CkBAIC0y NzcsNyArMjg0LDcgQEAgaW50IHJlc2VydmF0aW9uX29iamVjdF9jb3B5X2ZlbmNlcyhzdHJ1Y3Qg cmVzZXJ2YXRpb25fb2JqZWN0ICpkc3QsCiAJCQkJY29udGludWU7CiAJCQl9CiAKLQkJCXJjdV9h c3NpZ25fcG9pbnRlcihkc3RfbGlzdC0+c2hhcmVkW2RzdF9saXN0LT5zaGFyZWRfY291bnQrK10s IGZlbmNlKTsKKwkJCXJjdV9hc3NpZ25fcG9pbnRlcihkc3RfbGlzdC0+c2hhcmVkW2RzdF9saXN0 LT5zaGFyZWRfY291bnQrK10sIGUpOwogCQl9CiAJfSBlbHNlIHsKIAkJZHN0X2xpc3QgPSBOVUxM OwpAQCAtMzY4LDcgKzM3NSw5IEBAIGludCByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2ZlbmNlc19y Y3Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAogCQkJc2hhcmVkID0gbnNoYXJlZDsK IAkJCXNoYXJlZF9jb3VudCA9IGZvYmogPyBmb2JqLT5zaGFyZWRfY291bnQgOiAwOwogCQkJZm9y IChpID0gMDsgaSA8IHNoYXJlZF9jb3VudDsgKytpKSB7Ci0JCQkJc2hhcmVkW2ldID0gcmN1X2Rl cmVmZXJlbmNlKGZvYmotPnNoYXJlZFtpXSk7CisJCQkJdm9pZCAqZSA9IHJjdV9kZXJlZmVyZW5j ZShmb2JqLT5zaGFyZWRbaV0pOworCisJCQkJc2hhcmVkW2ldID0gcmVzZXJ2YXRpb25fb2JqZWN0 X3NoYXJlZF9mZW5jZShlKTsKIAkJCQlpZiAoIWRtYV9mZW5jZV9nZXRfcmN1KHNoYXJlZFtpXSkp CiAJCQkJCWJyZWFrOwogCQkJfQpAQCAtNDU2LDggKzQ2NSwxMCBAQCBsb25nIHJlc2VydmF0aW9u X29iamVjdF93YWl0X3RpbWVvdXRfcmN1KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwK IAkJCXNoYXJlZF9jb3VudCA9IGZvYmotPnNoYXJlZF9jb3VudDsKIAogCQlmb3IgKGkgPSAwOyAh ZmVuY2UgJiYgaSA8IHNoYXJlZF9jb3VudDsgKytpKSB7Ci0JCQlzdHJ1Y3QgZG1hX2ZlbmNlICps ZmVuY2UgPSByY3VfZGVyZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKTsKKwkJCXZvaWQgKmUgPSBy Y3VfZGVyZWZlcmVuY2UoZm9iai0+c2hhcmVkW2ldKTsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmxm ZW5jZTsKIAorCQkJbGZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X3NoYXJlZF9mZW5jZShlKTsK IAkJCWlmICh0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsCiAJCQkJICAgICAm bGZlbmNlLT5mbGFncykpCiAJCQkJY29udGludWU7CkBAIC01NDUsOCArNTU2LDEwIEBAIGJvb2wg cmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfcmN1KHN0cnVjdCByZXNlcnZhdGlvbl9v YmplY3QgKm9iaiwKIAkJCXNoYXJlZF9jb3VudCA9IGZvYmotPnNoYXJlZF9jb3VudDsKIAogCQlm b3IgKGkgPSAwOyBpIDwgc2hhcmVkX2NvdW50OyArK2kpIHsKLQkJCXN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlID0gcmN1X2RlcmVmZXJlbmNlKGZvYmotPnNoYXJlZFtpXSk7CisJCQl2b2lkICplID0g cmN1X2RlcmVmZXJlbmNlKGZvYmotPnNoYXJlZFtpXSk7CisJCQlzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZTsKIAorCQkJZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3Rfc2hhcmVkX2ZlbmNlKGUpOwog CQkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Rlc3Rfc2lnbmFsZWRfc2luZ2xlKGZlbmNlKTsK IAkJCWlmIChyZXQgPCAwKQogCQkJCWdvdG8gcmV0cnk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfb2JqZWN0LmMKaW5kZXggYjBlMTRhM2Q1NGVmLi4zMDMxNDNiODkyNzUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKQEAgLTEzNDIsNyAr MTM0Miw3IEBAIHZvaWQgYW1kZ3B1X2JvX2ZlbmNlKHN0cnVjdCBhbWRncHVfYm8gKmJvLCBzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZSwKIAlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2ID0g Ym8tPnRiby5yZXN2OwogCiAJaWYgKHNoYXJlZCkKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9z aGFyZWRfZmVuY2UocmVzdiwgZmVuY2UpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJl ZF9mZW5jZShyZXN2LCBmZW5jZSwgdHJ1ZSk7CiAJZWxzZQogCQlyZXNlcnZhdGlvbl9vYmplY3Rf YWRkX2V4Y2xfZmVuY2UocmVzdiwgZmVuY2UpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZp di9ldG5hdml2X2dlbV9zdWJtaXQuYwppbmRleCA0NmVjZDNlNjZhYzkuLjVmNGE4NzJhODhkZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0LmMKQEAgLTIx NCw3ICsyMTQsOCBAQCBzdGF0aWMgdm9pZCBzdWJtaXRfYXR0YWNoX29iamVjdF9mZW5jZXMoc3Ry dWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdCAqc3VibWl0KQogCQkJCQkJCSAgc3VibWl0LT5vdXRfZmVu Y2UpOwogCQllbHNlCiAJCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShldG5h dml2X29iai0+cmVzdiwKLQkJCQkJCQkgICAgc3VibWl0LT5vdXRfZmVuY2UpOworCQkJCQkJCSAg ICBzdWJtaXQtPm91dF9mZW5jZSwKKwkJCQkJCQkgICAgZmFsc2UpOwogCiAJCXN1Ym1pdF91bmxv Y2tfb2JqZWN0KHN1Ym1pdCwgaSk7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggODZm MWY5YWFhMTE5Li4wNDE1NDIwZTFjZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtNDU1 Miw4ICs0NTUyLDEwIEBAIGk5MTVfZ2VtX2J1c3lfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKIAkJdW5zaWduZWQgaW50IHNoYXJlZF9jb3VudCA9IGxpc3QtPnNoYXJl ZF9jb3VudCwgaTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgc2hhcmVkX2NvdW50OyArK2kpIHsKLQkJ CXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0KLQkJCQlyY3VfZGVyZWZlcmVuY2UobGlzdC0+c2hh cmVkW2ldKTsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOworCisJCQlmZW5jZSA9IHJlc2Vy dmF0aW9uX29iamVjdF9zaGFyZWRfZmVuY2UoCisJCQkJcmN1X2RlcmVmZXJlbmNlKGxpc3QtPnNo YXJlZFtpXSkpOwogCiAJCQlhcmdzLT5idXN5IHw9IGJ1c3lfY2hlY2tfcmVhZGVyKGZlbmNlKTsK IAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCmluZGV4IGVl ZmQ0NDk1MDJlMi4uODVlM2Y5MmU4N2Y4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXhlY2J1ZmZlci5jCkBAIC0xNzcxLDcgKzE3NzEsNyBAQCBzdGF0aWMgdm9pZCBlYl9leHBv cnRfZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJaWYgKGZsYWdzICYgRVhFQ19PQkpFQ1Rf V1JJVEUpCiAJCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShyZXN2LCAmcnEtPmZl bmNlKTsKIAllbHNlIGlmIChyZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQocmVzdikg PT0gMCkKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UocmVzdiwgJnJxLT5m ZW5jZSk7CisJCXJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKHJlc3YsICZycS0+ ZmVuY2UsIGZhbHNlKTsKIAlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKHJlc3YpOwogfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2dlbS5jCmluZGV4IDk1ZDI1ZGJmZGUyYi4uZmRlZTc3NjI3YTBmIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9nZW0uYwpAQCAtNjcyLDcgKzY3Miw4IEBAIHZvaWQgbXNtX2dlbV9tb3ZlX3RvX2Fj dGl2ZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIAlpZiAoZXhjbHVzaXZlKQogCQlyZXNl cnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UobXNtX29iai0+cmVzdiwgZmVuY2UpOwogCWVs c2UKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UobXNtX29iai0+cmVzdiwg ZmVuY2UpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShtc21fb2JqLT5y ZXN2LCBmZW5jZSwKKwkJCQkJCSAgICBmYWxzZSk7CiAJbGlzdF9kZWxfaW5pdCgmbXNtX29iai0+ bW1fbGlzdCk7CiAJbGlzdF9hZGRfdGFpbCgmbXNtX29iai0+bW1fbGlzdCwgJmdwdS0+YWN0aXZl X2xpc3QpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9i by5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCmluZGV4IDcyMTQwMjJk ZmI5MS4uNzQxZmFlYWQ0YzdmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X2JvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCkBA IC0xNjU3LDcgKzE2NTcsNyBAQCBub3V2ZWF1X2JvX2ZlbmNlKHN0cnVjdCBub3V2ZWF1X2JvICpu dmJvLCBzdHJ1Y3Qgbm91dmVhdV9mZW5jZSAqZmVuY2UsIGJvb2wgZXhjbAogCWlmIChleGNsdXNp dmUpCiAJCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShyZXN2LCAmZmVuY2UtPmJh c2UpOwogCWVsc2UgaWYgKGZlbmNlKQotCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9m ZW5jZShyZXN2LCAmZmVuY2UtPmJhc2UpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJl ZF9mZW5jZShyZXN2LCAmZmVuY2UtPmJhc2UsIGZhbHNlKTsKIH0KIAogc3RydWN0IHR0bV9ib19k cml2ZXIgbm91dmVhdV9ib19kcml2ZXIgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cXhsL3F4bF9yZWxlYXNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKaW5k ZXggN2NiMjE0NTc3Mjc1Li5lNjhhYjFlZmQ4MDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9xeGwvcXhsX3JlbGVhc2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNl LmMKQEAgLTQ2Niw3ICs0NjYsOCBAQCB2b2lkIHF4bF9yZWxlYXNlX2ZlbmNlX2J1ZmZlcl9vYmpl Y3RzKHN0cnVjdCBxeGxfcmVsZWFzZSAqcmVsZWFzZSkKIAkJYm8gPSBlbnRyeS0+Ym87CiAJCXFi byA9IHRvX3F4bF9ibyhibyk7CiAKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVu Y2UoYm8tPnJlc3YsICZyZWxlYXNlLT5iYXNlKTsKKwkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9z aGFyZWRfZmVuY2UoYm8tPnJlc3YsICZyZWxlYXNlLT5iYXNlLAorCQkJCQkJICAgIGZhbHNlKTsK IAkJdHRtX2JvX2FkZF90b19scnUoYm8pOwogCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJv LT5yZXN2KTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9v YmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCmluZGV4IGJh MmZkMjk1Njk3Zi4uMTExMTRmZmI3NDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9v YmplY3QuYwpAQCAtODcwLDcgKzg3MCw3IEBAIHZvaWQgcmFkZW9uX2JvX2ZlbmNlKHN0cnVjdCBy YWRlb25fYm8gKmJvLCBzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSwKIAlzdHJ1Y3QgcmVzZXJ2 YXRpb25fb2JqZWN0ICpyZXN2ID0gYm8tPnRiby5yZXN2OwogCiAJaWYgKHNoYXJlZCkKLQkJcmVz ZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UocmVzdiwgJmZlbmNlLT5iYXNlKTsKKwkJ cmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UocmVzdiwgJmZlbmNlLT5iYXNlLCBm YWxzZSk7CiAJZWxzZQogCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVuY2UocmVzdiwg JmZlbmNlLT5iYXNlKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2Jv LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCmluZGV4IDgyMGQ5N2QzZThiOS4uOWU5 OGQ4OTc3Y2QwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKQEAgLTc5NCw3ICs3OTQsNyBAQCBzdGF0aWMg aW50IHR0bV9ib19hZGRfbW92ZV9mZW5jZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAog CXNwaW5fdW5sb2NrKCZtYW4tPm1vdmVfbG9jayk7CiAKIAlpZiAoZmVuY2UpIHsKLQkJcmVzZXJ2 YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UoYm8tPnJlc3YsIGZlbmNlKTsKKwkJcmVzZXJ2 YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UoYm8tPnJlc3YsIGZlbmNlLCB0cnVlKTsKIAog CQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoYm8tPnJlc3YpOwogCQlp ZiAodW5saWtlbHkocmV0KSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4 ZWNidWZfdXRpbC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMKaW5k ZXggZTczYWUwZDIyODk3Li5mODJhNDYwZDEwNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4 ZWNidWZfdXRpbC5jCkBAIC0yMDIsNyArMjAyLDggQEAgdm9pZCB0dG1fZXVfZmVuY2VfYnVmZmVy X29iamVjdHMoc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCiAJbGlzdF9mb3JfZWFjaF9l bnRyeShlbnRyeSwgbGlzdCwgaGVhZCkgewogCQlibyA9IGVudHJ5LT5ibzsKIAkJaWYgKGVudHJ5 LT5zaGFyZWQpCi0JCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShiby0+cmVz diwgZmVuY2UpOworCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UoYm8tPnJl c3YsIGZlbmNlLAorCQkJCQkJCSAgICB0cnVlKTsKIAkJZWxzZQogCQkJcmVzZXJ2YXRpb25fb2Jq ZWN0X2FkZF9leGNsX2ZlbmNlKGJvLT5yZXN2LCBmZW5jZSk7CiAJCXR0bV9ib19hZGRfdG9fbHJ1 KGJvKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2dlbS5jIGIvZHJpdmVy cy9ncHUvZHJtL3ZjNC92YzRfZ2VtLmMKaW5kZXggNzkxMGI5YWNlZGQ2Li45ZGIxNWE3NmMyNWYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2dlbS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS92YzQvdmM0X2dlbS5jCkBAIC01MzYsNyArNTM2LDggQEAgdmM0X3VwZGF0ZV9ib19z ZXFub3Moc3RydWN0IHZjNF9leGVjX2luZm8gKmV4ZWMsIHVpbnQ2NF90IHNlcW5vKQogCQlibyA9 IHRvX3ZjNF9ibygmZXhlYy0+Ym9baV0tPmJhc2UpOwogCQliby0+c2Vxbm8gPSBzZXFubzsKIAot CQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShiby0+cmVzdiwgZXhlYy0+ZmVu Y2UpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShiby0+cmVzdiwgZXhl Yy0+ZmVuY2UsCisJCQkJCQkgICAgZmFsc2UpOwogCX0KIAogCWxpc3RfZm9yX2VhY2hfZW50cnko Ym8sICZleGVjLT51bnJlZl9saXN0LCB1bnJlZl9oZWFkKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdmdlbS92Z2VtX2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2Zl bmNlLmMKaW5kZXggYjI4ODc2YzIyMmI0Li41ZDhiNDcwNTZiZTYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS92Z2VtL3ZnZW1fZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmdlbS92 Z2VtX2ZlbmNlLmMKQEAgLTE5NCw3ICsxOTQsNyBAQCBpbnQgdmdlbV9mZW5jZV9hdHRhY2hfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoYXJnLT5mbGFncyAmIFZHRU1fRkVOQ0Vf V1JJVEUpCiAJCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShyZXN2LCBmZW5jZSk7 CiAJZWxzZSBpZiAoKHJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChyZXN2 KSkgPT0gMCkKLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UocmVzdiwgZmVu Y2UpOworCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShyZXN2LCBmZW5jZSwg ZmFsc2UpOwogCXJlc2VydmF0aW9uX29iamVjdF91bmxvY2socmVzdik7CiAKIAkvKiBSZWNvcmQg dGhlIGZlbmNlIGluIG91ciBpZHIgZm9yIGxhdGVyIHNpZ25hbGluZyAqLwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9saW51eC9yZXNlcnZhdGlvbi5oIGIvaW5jbHVkZS9saW51eC9yZXNlcnZhdGlvbi5o CmluZGV4IDhhMzI5ODU3NGJmNS4uZDczYmYwMjVkZjRiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xp bnV4L3Jlc2VydmF0aW9uLmgKKysrIGIvaW5jbHVkZS9saW51eC9yZXNlcnZhdGlvbi5oCkBAIC01 OSw3ICs1OSw3IEBAIGV4dGVybiBjb25zdCBjaGFyIHJlc2VydmF0aW9uX3NlcWNvdW50X3N0cmlu Z1tdOwogc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0IHsKIAlzdHJ1Y3QgcmN1X2hlYWQg cmN1OwogCXUzMiBzaGFyZWRfY291bnQsIHNoYXJlZF9tYXg7Ci0Jc3RydWN0IGRtYV9mZW5jZSBf X3JjdSAqc2hhcmVkW107CisJdm9pZCAqIF9fcmN1ICpzaGFyZWRbXTsKIH07CiAKIC8qKgpAQCAt ODAsNiArODAsOCBAQCBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0IHsKICNkZWZpbmUgcmVzZXJ2 YXRpb25fb2JqZWN0X2hlbGQob2JqKSBsb2NrZGVwX2lzX2hlbGQoJihvYmopLT5sb2NrLmJhc2Up CiAjZGVmaW5lIHJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChvYmopIFwKIAlsb2NrZGVw X2Fzc2VydF9oZWxkKCYob2JqKS0+bG9jay5iYXNlKQorI2RlZmluZSByZXNlcnZhdGlvbl9vYmpl Y3Rfc2hhcmVkX2ZlbmNlKGUpICgoc3RydWN0IGRtYV9mZW5jZSAqKSgobG9uZyllICYgfjF1bCkp CisjZGVmaW5lIHJlc2VydmF0aW9uX29iamVjdF9zaGFyZWRfaXNfd3JpdGUoZSkgKChsb25nKWUg JiAxKQogCiAvKioKICAqIHJlc2VydmF0aW9uX29iamVjdF9pbml0IC0gaW5pdGlhbGl6ZSBhIHJl c2VydmF0aW9uIG9iamVjdApAQCAtMTE2LDggKzExOCwxMSBAQCByZXNlcnZhdGlvbl9vYmplY3Rf ZmluaShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCiAKIAlmb2JqID0gcmN1X2RlcmVm ZXJlbmNlX3Byb3RlY3RlZChvYmotPmZlbmNlLCAxKTsKIAlpZiAoZm9iaikgewotCQlmb3IgKGkg PSAwOyBpIDwgZm9iai0+c2hhcmVkX2NvdW50OyArK2kpCi0JCQlkbWFfZmVuY2VfcHV0KHJjdV9k ZXJlZmVyZW5jZV9wcm90ZWN0ZWQoZm9iai0+c2hhcmVkW2ldLCAxKSk7CisJCWZvciAoaSA9IDA7 IGkgPCBmb2JqLT5zaGFyZWRfY291bnQ7ICsraSkgeworCQkJdm9pZCAqZSA9IHJjdV9kZXJlZmVy ZW5jZV9wcm90ZWN0ZWQoZm9iai0+c2hhcmVkW2ldLCAxKTsKKworCQkJZG1hX2ZlbmNlX3B1dChy ZXNlcnZhdGlvbl9vYmplY3Rfc2hhcmVkX2ZlbmNlKGUpKTsKKwkJfQogCiAJCWtmcmVlKGZvYmop OwogCX0KQEAgLTE1NSw4ICsxNjAsMTAgQEAgcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9zaGFyZWRf ZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAogCQkJCSAgICBzdHJ1Y3QgcmVz ZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmxpc3QsCiAJCQkJICAgIHVuc2lnbmVkIGludCBpZHgpCiB7 Ci0JcmV0dXJuIHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQobGlzdC0+c2hhcmVkW2lkeF0sCi0J CQkJCSByZXNlcnZhdGlvbl9vYmplY3RfaGVsZChvYmopKTsKKwl2b2lkICplID0gcmN1X2RlcmVm ZXJlbmNlX3Byb3RlY3RlZChsaXN0LT5zaGFyZWRbaWR4XSwKKwkJCQkJICAgIHJlc2VydmF0aW9u X29iamVjdF9oZWxkKG9iaikpOworCisJcmV0dXJuIHJlc2VydmF0aW9uX29iamVjdF9zaGFyZWRf ZmVuY2UoZSk7CiB9CiAKIC8qKgpAQCAtMjgyLDcgKzI4OSw4IEBAIHJlc2VydmF0aW9uX29iamVj dF9nZXRfZXhjbF9yY3Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqKQogCiBpbnQgcmVz ZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3Qg Km9iaik7CiB2b2lkIHJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKHN0cnVjdCBy ZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKLQkJCQkJIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsK KwkJCQkJIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAorCQkJCQkgYm9vbCBhc193cml0ZSk7CiAK IHZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3QgKm9iaiwKIAkJCQkgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOwotLSAK Mi4xNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK