From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dongwon Kim Subject: [RFC PATCH 13/60] hyper_dmabuf: postponing cleanup of hyper_DMABUF Date: Tue, 19 Dec 2017 11:29:29 -0800 Message-ID: <1513711816-2618-13-git-send-email-dongwon.kim__44299.0365824246$1513712359$gmane$org@intel.com> References: <1513711816-2618-1-git-send-email-dongwon.kim@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eRNl4-0002fG-Nb for xen-devel@lists.xenproject.org; Tue, 19 Dec 2017 19:40:58 +0000 In-Reply-To: <1513711816-2618-1-git-send-email-dongwon.kim@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: linux-kernel@vger.kernel.org Cc: xen-devel@lists.xenproject.org, mateuszx.potrola@intel.com, dri-devel@lists.freedesktop.org, dongwon.kim@intel.com List-Id: xen-devel@lists.xenproject.org RnJvbTogTWF0ZXVzeiBQb2xyb2xhIDxtYXRldXN6eC5wb3Ryb2xhQGludGVsLmNvbT4KCkltbWVk aWF0ZSBjbGVhbiB1cCBvZiBidWZmZXIgaXMgbm90IHBvc3NpYmxlIGlmIHRoZSBidWZmZXIgaXMK YWN0aXZlbHkgdXNlZCBieSBpbXBvcnRlci4gSW4gdGhpcyBjYXNlLCB3ZSBuZWVkIHRvIHBvc3Rw b25lCmZyZWVpbmcgaHlwZXJfRE1BQlVGIHVudGlsIHRoZSBsYXN0IGNvbnN1bWVyIHVubWFwcyBh bmQgcmVsZWFzZXMKdGhlIGJ1ZmZlciBvbiBpbXBvdGVyIFZNLiBOZXcgcmVmZXJlbmNlIGNvdW50 IGlzIGFkZGVkIGZvciB0cmFja2luZwp1c2FnZSBieSBpbXBvcnRlcnMuCgpTaWduZWQtb2ZmLWJ5 OiBEb25nd29uIEtpbSA8ZG9uZ3dvbi5raW1AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMveGVuL2h5 cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfaW1wLmMgICAgICAgIHwgMzcgKysrKysrKysrKysrKyst LQogZHJpdmVycy94ZW4vaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9pb2N0bC5jICAgICAgfCAz NCArKysrKysrKysrKy0tLS0KIGRyaXZlcnMveGVuL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZf bXNnLmMgICAgICAgIHwgNDkgKysrKysrKy0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy94ZW4vaHlw ZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9tc2cuaCAgICAgICAgfCAgMSAtCiAuLi4veGVuL2h5cGVy X2RtYWJ1Zi9oeXBlcl9kbWFidWZfcmVtb3RlX3N5bmMuYyAgICB8IDE0ICsrKysrLS0KIGRyaXZl cnMveGVuL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfc3RydWN0LmggICAgIHwgIDkgKysrLQog NiBmaWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCA0OSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX2ltcC5jIGIvZHJp dmVycy94ZW4vaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9pbXAuYwppbmRleCAwNmJkOGU1Li5m MjU4OTgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVm X2ltcC5jCisrKyBiL2RyaXZlcnMveGVuL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfaW1wLmMK QEAgLTksNiArOSw3IEBACiAjaW5jbHVkZSAiaHlwZXJfZG1hYnVmX2ltcC5oIgogI2luY2x1ZGUg Inhlbi9oeXBlcl9kbWFidWZfeGVuX2NvbW0uaCIKICNpbmNsdWRlICJoeXBlcl9kbWFidWZfbXNn LmgiCisjaW5jbHVkZSAiaHlwZXJfZG1hYnVmX2xpc3QuaCIKIAogI2RlZmluZSBSRUZTX1BFUl9Q QUdFIChQQUdFX1NJWkUvc2l6ZW9mKGdyYW50X3JlZl90KSkKIApAQCAtMTA0LDcgKzEwNSw3IEBA IHN0cnVjdCBzZ190YWJsZSogaHlwZXJfZG1hYnVmX2NyZWF0ZV9zZ3Qoc3RydWN0IHBhZ2UgKipw YWdlcywKIAogCXJldCA9IHNnX2FsbG9jX3RhYmxlKHNndCwgbmVudHMsIEdGUF9LRVJORUwpOwog CWlmIChyZXQpIHsKLQkJc2dfZnJlZV90YWJsZShzZ3QpOworCQloeXBlcl9kbWFidWZfZnJlZV9z Z3Qoc2d0KTsKIAkJcmV0dXJuIE5VTEw7CiAJfQogCkBAIC0xMjksNiArMTMwLDcgQEAgc3RydWN0 IHNnX3RhYmxlKiBoeXBlcl9kbWFidWZfY3JlYXRlX3NndChzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAog dm9pZCBoeXBlcl9kbWFidWZfZnJlZV9zZ3Qoc3RydWN0IHNnX3RhYmxlKiBzZ3QpCiB7CiAJc2df ZnJlZV90YWJsZShzZ3QpOworCWtmcmVlKHNndCk7CiB9CiAKIC8qCkBAIC01ODMsNiArNTg1LDkg QEAgaW50IGh5cGVyX2RtYWJ1Zl9jbGVhbnVwX3NndF9pbmZvKHN0cnVjdCBoeXBlcl9kbWFidWZf c2d0X2luZm8gKnNndF9pbmZvLCBpbnQgZm8KIAkJa2ZyZWUoYXR0YWNobCk7CiAJfQogCisJLyog U3RhcnQgY2xlYW51cCBvZiBidWZmZXIgaW4gcmV2ZXJzZSBvcmRlciB0byBleHBvcnRpbmcgKi8K KwloeXBlcl9kbWFidWZfY2xlYW51cF9ncmVmX3RhYmxlKHNndF9pbmZvKTsKKwogCS8qIHVubWFw IGRtYS1idWYgKi8KIAlkbWFfYnVmX3VubWFwX2F0dGFjaG1lbnQoc2d0X2luZm8tPmFjdGl2ZV9h dHRhY2hlZC0+YXR0YWNoLAogCQkJCSBzZ3RfaW5mby0+YWN0aXZlX3NndHMtPnNndCwKQEAgLTU5 NCw4ICs1OTksNiBAQCBpbnQgaHlwZXJfZG1hYnVmX2NsZWFudXBfc2d0X2luZm8oc3RydWN0IGh5 cGVyX2RtYWJ1Zl9zZ3RfaW5mbyAqc2d0X2luZm8sIGludCBmbwogCS8qIGNsb3NlIGNvbm5lY3Rp b24gdG8gZG1hLWJ1ZiBjb21wbGV0ZWx5ICovCiAJZG1hX2J1Zl9wdXQoc2d0X2luZm8tPmRtYV9i dWYpOwogCi0JaHlwZXJfZG1hYnVmX2NsZWFudXBfZ3JlZl90YWJsZShzZ3RfaW5mbyk7Ci0KIAlr ZnJlZShzZ3RfaW5mby0+YWN0aXZlX3NndHMpOwogCWtmcmVlKHNndF9pbmZvLT5hY3RpdmVfYXR0 YWNoZWQpOwogCWtmcmVlKHNndF9pbmZvLT52YV9rbWFwcGVkKTsKQEAgLTY5NCw2ICs2OTcsOSBA QCBzdGF0aWMgc3RydWN0IHNnX3RhYmxlKiBoeXBlcl9kbWFidWZfb3BzX21hcChzdHJ1Y3QgZG1h X2J1Zl9hdHRhY2htZW50ICphdHRhY2htZQogCXJldCA9IGh5cGVyX2RtYWJ1Zl9zeW5jX3JlcXVl c3RfYW5kX3dhaXQoc2d0X2luZm8tPmh5cGVyX2RtYWJ1Zl9pZCwKIAkJCQkJCUhZUEVSX0RNQUJV Rl9PUFNfTUFQKTsKIAorCWtmcmVlKHBhZ2VfaW5mby0+cGFnZXMpOworCWtmcmVlKHBhZ2VfaW5m byk7CisKIAlpZiAocmV0IDwgMCkgewogCQlwcmludGsoImh5cGVyX2RtYWJ1Zjo6JXMgRXJyb3I6 c2VuZCBkbWFidWYgc3luYyByZXF1ZXN0IGZhaWxlZFxuIiwgX19mdW5jX18pOwogCX0KQEAgLTc0 MSwxMiArNzQ3LDM0IEBAIHN0YXRpYyB2b2lkIGh5cGVyX2RtYWJ1Zl9vcHNfcmVsZWFzZShzdHJ1 Y3QgZG1hX2J1ZiAqZG1hYnVmKQogCiAJc2d0X2luZm8gPSAoc3RydWN0IGh5cGVyX2RtYWJ1Zl9p bXBvcnRlZF9zZ3RfaW5mbyAqKWRtYWJ1Zi0+cHJpdjsKIAorCWlmIChzZ3RfaW5mbykgeworCQkv KiBkbWFidWYgZmQgaXMgYmVpbmcgcmVsZWFzZWQgLSBkZWNyZWFzZSByZWZjb3VudCAqLworCQlz Z3RfaW5mby0+cmVmX2NvdW50LS07CisKKwkJLyogaWYgbm8gb25lIGVsc2UgaW4gdGhhdCBkb21h aW4gaXMgdXNpbmcgdGhhdCBidWZmZXIsIHVubWFwIGl0IGZvciBub3cgKi8KKwkJaWYgKHNndF9p bmZvLT5yZWZfY291bnQgPT0gMCkgeworCQkJaHlwZXJfZG1hYnVmX2NsZWFudXBfaW1wb3J0ZWRf cGFnZXMoc2d0X2luZm8pOworCQkJaHlwZXJfZG1hYnVmX2ZyZWVfc2d0KHNndF9pbmZvLT5zZ3Qp OworCQkJc2d0X2luZm8tPnNndCA9IE5VTEw7CisJCX0KKwl9CisKIAlyZXQgPSBoeXBlcl9kbWFi dWZfc3luY19yZXF1ZXN0X2FuZF93YWl0KHNndF9pbmZvLT5oeXBlcl9kbWFidWZfaWQsCiAJCQkJ CQlIWVBFUl9ETUFCVUZfT1BTX1JFTEVBU0UpOwogCiAJaWYgKHJldCA8IDApIHsKIAkJcHJpbnRr KCJoeXBlcl9kbWFidWY6OiVzIEVycm9yOnNlbmQgZG1hYnVmIHN5bmMgcmVxdWVzdCBmYWlsZWRc biIsIF9fZnVuY19fKTsKIAl9CisKKwkvKgorCSAqIENoZWNrIGlmIGJ1ZmZlciBpcyBzdGlsbCB2 YWxpZCBhbmQgaWYgbm90IHJlbW92ZSBpdCBmcm9tIGltcG9ydGVkIGxpc3QuCisJICogVGhhdCBo YXMgdG8gYmUgZG9uZSBhZnRlciBzZW5kaW5nIHN5bmMgcmVxdWVzdAorCSAqLworCWlmIChzZ3Rf aW5mbyAmJiBzZ3RfaW5mby0+cmVmX2NvdW50ID09IDAgJiYKKwkgICAgc2d0X2luZm8tPmZsYWdz ID09IEhZUEVSX0RNQUJVRl9TR1RfSU5WQUxJRCkgeworCQloeXBlcl9kbWFidWZfcmVtb3ZlX2lt cG9ydGVkKHNndF9pbmZvLT5oeXBlcl9kbWFidWZfaWQpOworCQlrZnJlZShzZ3RfaW5mbyk7CisJ fQogfQogCiBzdGF0aWMgaW50IGh5cGVyX2RtYWJ1Zl9vcHNfYmVnaW5fY3B1X2FjY2VzcyhzdHJ1 Y3QgZG1hX2J1ZiAqZG1hYnVmLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCkBAIC05NDQs NiArOTcyLDkgQEAgaW50IGh5cGVyX2RtYWJ1Zl9leHBvcnRfZmQoc3RydWN0IGh5cGVyX2RtYWJ1 Zl9pbXBvcnRlZF9zZ3RfaW5mbyAqZGluZm8sIGludCBmbGEKIAogCWZkID0gZG1hX2J1Zl9mZChk bWFidWYsIGZsYWdzKTsKIAorCS8qIGRtYWJ1ZiBmZCBpcyBleHBvcnRlZCBmb3IgZ2l2ZW4gYnVm ZXIgLSBpbmNyZWFzZSBpdHMgcmVmIGNvdW50ICovCisJZGluZm8tPnJlZl9jb3VudCsrOworCiAJ cmV0dXJuIGZkOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYvaHlw ZXJfZG1hYnVmX2lvY3RsLmMgYi9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVm X2lvY3RsLmMKaW5kZXggYTIyMmMxYi4uYzU3YWNhZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVu L2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfaW9jdGwuYworKysgYi9kcml2ZXJzL3hlbi9oeXBl cl9kbWFidWYvaHlwZXJfZG1hYnVmX2lvY3RsLmMKQEAgLTEzNSw2ICsxMzUsNyBAQCBzdGF0aWMg aW50IGh5cGVyX2RtYWJ1Zl9leHBvcnRfcmVtb3RlKHZvaWQgKmRhdGEpCiAJLyogVE9ETzogV2Ug bWlnaHQgbmVlZCB0byBjb25zaWRlciB1c2luZyBwb3J0IG51bWJlciBvbiBldmVudCBjaGFubmVs PyAqLwogCXNndF9pbmZvLT5oeXBlcl9kbWFidWZfcmRvbWFpbiA9IGV4cG9ydF9yZW1vdGVfYXR0 ci0+cmVtb3RlX2RvbWFpbjsKIAlzZ3RfaW5mby0+ZG1hX2J1ZiA9IGRtYV9idWY7CisJc2d0X2lu Zm8tPmZsYWdzID0gMDsKIAogCXNndF9pbmZvLT5hY3RpdmVfc2d0cyA9IGtjYWxsb2MoMSwgc2l6 ZW9mKHN0cnVjdCBzZ3RfbGlzdCksIEdGUF9LRVJORUwpOwogCXNndF9pbmZvLT5hY3RpdmVfYXR0 YWNoZWQgPSBrY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgYXR0YWNobWVudF9saXN0KSwgR0ZQX0tF Uk5FTCk7CkBAIC0yMzMsNiArMjM0LDE1IEBAIHN0YXRpYyBpbnQgaHlwZXJfZG1hYnVmX2V4cG9y dF9mZF9pb2N0bCh2b2lkICpkYXRhKQogCWlmIChpbXBvcnRlZF9zZ3RfaW5mbyA9PSBOVUxMKSAv KiBjYW4ndCBmaW5kIHNndCBmcm9tIHRoZSB0YWJsZSAqLwogCQlyZXR1cm4gLTE7CiAKKwkvKgor CSAqIENoZWNrIGlmIGJ1ZmZlciB3YXMgbm90IHVuZXhwb3J0ZWQgYnkgZXhwb3J0ZXIuCisJICog SW4gc3VjaCBleHBvcnRlciBpcyB3YWl0aW5nIGZvciBpbXBvcnRlciB0byBmaW5pc2ggdXNpbmcg dGhhdCBidWZmZXIsCisJICogc28gZG8gbm90IGFsbG93IGV4cG9ydCBmZCBvZiBzdWNoIGJ1ZmZl ciBhbnltb3JlLgorCSAqLworCWlmIChpbXBvcnRlZF9zZ3RfaW5mby0+ZmxhZ3MgPT0gSFlQRVJf RE1BQlVGX1NHVF9JTlZBTElEKSB7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwogCXByaW50aygi JXMgRm91bmQgYnVmZmVyIGdyZWYgJWQgIG9mZiAlZCBsYXN0IGxlbiAlZCBuZW50cyAlZCBkb21h aW4gJWRcbiIsIF9fZnVuY19fLAogCQlpbXBvcnRlZF9zZ3RfaW5mby0+Z3JlZiwgaW1wb3J0ZWRf c2d0X2luZm8tPmZyc3Rfb2ZzdCwKIAkJaW1wb3J0ZWRfc2d0X2luZm8tPmxhc3RfbGVuLCBpbXBv cnRlZF9zZ3RfaW5mby0+bmVudHMsCkBAIC0yODksOSArMjk5LDcgQEAgc3RhdGljIGludCBoeXBl cl9kbWFidWZfdW5leHBvcnQodm9pZCAqZGF0YSkKIAogCWh5cGVyX2RtYWJ1Zl9jcmVhdGVfcmVx dWVzdChyZXEsIEhZUEVSX0RNQUJVRl9OT1RJRllfVU5FWFBPUlQsICZ1bmV4cG9ydF9hdHRyLT5o eXBlcl9kbWFidWZfaWQpOwogCi0JLyogbm93IHNlbmQgZGVzdHJveSByZXF1ZXN0IHRvIHJlbW90 ZSBkb21haW4KLQkgKiBjdXJyZW50bHkgYXNzdW1pbmcgdGhlcmUncyBvbmx5IG9uZSBpbXBvcnRl ciBleGlzdAotCSAqLworCS8qIE5vdyBzZW5kIHVuZXhwb3J0IHJlcXVlc3QgdG8gcmVtb3RlIGRv bWFpbiwgbWFya2luZyB0aGF0IGJ1ZmZlciBzaG91bGQgbm90IGJlIHVzZWQgYW55bW9yZSAqLwog CXJldCA9IGh5cGVyX2RtYWJ1Zl9zZW5kX3JlcXVlc3Qoc2d0X2luZm8tPmh5cGVyX2RtYWJ1Zl9y ZG9tYWluLCByZXEsIHRydWUpOwogCWlmIChyZXQgPCAwKSB7CiAJCWtmcmVlKHJlcSk7CkBAIC0z MDAsMTEgKzMwOCwyMyBAQCBzdGF0aWMgaW50IGh5cGVyX2RtYWJ1Zl91bmV4cG9ydCh2b2lkICpk YXRhKQogCiAJLyogZnJlZSBtc2cgKi8KIAlrZnJlZShyZXEpOwotCXVuZXhwb3J0X2F0dHItPnN0 YXR1cyA9IHJldDsKIAotCS8qIFJlc3Qgb2YgY2xlYW51cCB3aWxsIGZvbGxvdyB3aGVuIGltcG9y dGVyIHdpbGwgZnJlZSBpdCdzIGJ1ZmZlciwKLQkgKiBjdXJyZW50IGltcGxlbWVudGF0aW9uIGFz c3VtZXMgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBpbXBvcnRlcgotICAgICAgICAgKi8KKwkvKgor CSAqIENoZWNrIGlmIGFueSBpbXBvcnRlciBpcyBzdGlsbCB1c2luZyBidWZmZXIsIGlmIG5vdCBj bGVhbiBpdCB1cCBjb21wbGV0bHksCisJICogb3RoZXJ3aXNlIG1hcmsgYnVmZmVyIGFzIHVuZXhw b3J0ZWQgYW5kIHBvc3Rwb25lIGl0cyBjbGVhbnVwIHRvIHRpbWUgd2hlbgorCSAqIGltcG9ydGVy IHdpbGwgZmluaXNoIHVzaW5nIGl0LgorCSAqLworCWlmIChsaXN0X2VtcHR5KCZzZ3RfaW5mby0+ YWN0aXZlX3NndHMtPmxpc3QpICYmCisJICAgIGxpc3RfZW1wdHkoJnNndF9pbmZvLT5hY3RpdmVf YXR0YWNoZWQtPmxpc3QpKSB7CisJCWh5cGVyX2RtYWJ1Zl9jbGVhbnVwX3NndF9pbmZvKHNndF9p bmZvLCBmYWxzZSk7CisJCWh5cGVyX2RtYWJ1Zl9yZW1vdmVfZXhwb3J0ZWQodW5leHBvcnRfYXR0 ci0+aHlwZXJfZG1hYnVmX2lkKTsKKwkJa2ZyZWUoc2d0X2luZm8pOworCX0gZWxzZSB7CisJCXNn dF9pbmZvLT5mbGFncyA9IEhZUEVSX0RNQUJVRl9TR1RfVU5FWFBPUlRFRDsKKwl9CisKKwkvKiBU T0RPOiBzaG91bGQgd2UgbWFyayBoZXJlIHRoYXQgYnVmZmVyIHdhcyBkZXN0cm95ZWQgaW1taWVk ZXRhbHkgb3IgdGhhdCB3YXMgcG9zdHBvbmVkID8gKi8KKwl1bmV4cG9ydF9hdHRyLT5zdGF0dXMg PSByZXQ7CiAKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vaHlwZXJf ZG1hYnVmL2h5cGVyX2RtYWJ1Zl9tc2cuYyBiL2RyaXZlcnMveGVuL2h5cGVyX2RtYWJ1Zi9oeXBl cl9kbWFidWZfbXNnLmMKaW5kZXggZTc1MzJiNS4uOTdiNDJhNCAxMDA2NDQKLS0tIGEvZHJpdmVy cy94ZW4vaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9tc2cuYworKysgYi9kcml2ZXJzL3hlbi9o eXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX21zZy5jCkBAIC04MSwxMSArODEsMTAgQEAgdm9pZCBo eXBlcl9kbWFidWZfY3JlYXRlX3JlcXVlc3Qoc3RydWN0IGh5cGVyX2RtYWJ1Zl9yaW5nX3JxICpy ZXF1ZXN0LAogdm9pZCBjbWRfcHJvY2Vzc193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK IHsKIAlzdHJ1Y3QgaHlwZXJfZG1hYnVmX2ltcG9ydGVkX3NndF9pbmZvICppbXBvcnRlZF9zZ3Rf aW5mbzsKLSAgICAgICAgc3RydWN0IGh5cGVyX2RtYWJ1Zl9zZ3RfaW5mbyAqc2d0X2luZm87CiAJ c3RydWN0IGNtZF9wcm9jZXNzICpwcm9jID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBjbWRf cHJvY2Vzcywgd29yayk7CiAJc3RydWN0IGh5cGVyX2RtYWJ1Zl9yaW5nX3JxICpyZXE7CiAJaW50 IGRvbWlkOwotCWludCBpLCByZXQ7CisJaW50IGk7CiAKIAlyZXEgPSBwcm9jLT5ycTsKIAlkb21p ZCA9IHByb2MtPmRvbWlkOwpAQCAtMTE4LDMxICsxMTcsMTEgQEAgdm9pZCBjbWRfcHJvY2Vzc193 b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJZm9yIChpPTA7IGk8NDsgaSsrKQogCQkJ aW1wb3J0ZWRfc2d0X2luZm8tPnByaXZhdGVbaV0gPSByZXEtPm9wZXJhbmRzWzUraV07CiAKKwkJ aW1wb3J0ZWRfc2d0X2luZm8tPmZsYWdzID0gMDsKKwkJaW1wb3J0ZWRfc2d0X2luZm8tPnJlZl9j b3VudCA9IDA7CiAJCWh5cGVyX2RtYWJ1Zl9yZWdpc3Rlcl9pbXBvcnRlZChpbXBvcnRlZF9zZ3Rf aW5mbyk7CiAJCWJyZWFrOwogCi0JY2FzZSBIWVBFUl9ETUFCVUZfVU5FWFBPUlRfRklOSVNIOgot CQkvKiBkZXN0cm95IHNnX2xpc3QgZm9yIGh5cGVyX2RtYWJ1Zl9pZCBvbiBsb2NhbCBzaWRlICov Ci0JCS8qIGNvbW1hbmQgOiBETUFCVUZfREVTVFJPWV9GSU5JU0gsCi0JCSAqIG9wZXJhbmRzMCA6 IGh5cGVyX2RtYWJ1Zl9pZAotCQkgKi8KLQotCQkvKiBUT0RPOiB0aGF0IHNob3VsZCBiZSBkb25l IG9uIHdvcmtxdWV1ZSwgd2hlbiByZWNlaXZlZCBhY2sgZnJvbQotCQkgKiBhbGwgaW1wb3J0ZXJz IHRoYXQgYnVmZmVyIGlzIG5vIGxvbmdlciB1c2VkCi0JCSAqLwotCQlzZ3RfaW5mbyA9IGh5cGVy X2RtYWJ1Zl9maW5kX2V4cG9ydGVkKHJlcS0+b3BlcmFuZHNbMF0pOwotCQloeXBlcl9kbWFidWZf cmVtb3ZlX2V4cG9ydGVkKHJlcS0+b3BlcmFuZHNbMF0pOwotCQlpZiAoIXNndF9pbmZvKQotCQkJ cHJpbnRrKCJzZ3RfaW5mbyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbGlzdFxuIik7Ci0KLQkJcmV0 ID0gaHlwZXJfZG1hYnVmX2NsZWFudXBfc2d0X2luZm8oc2d0X2luZm8sIEZPUkNFRF9VTkVYUE9S VElORyk7Ci0JCWlmICghcmV0KQotCQkJa2ZyZWUoc2d0X2luZm8pOwotCQllbHNlCi0JCQlwcmlu dGsoImZhaWxlZCB0byBjbGVhbiB1cCBzZ3RfaW5mb1xuIik7Ci0KLQkJYnJlYWs7Ci0KIAljYXNl IEhZUEVSX0RNQUJVRl9PUFNfVE9fUkVNT1RFOgogCQkvKiBub3RpZnlpbmcgZG1hYnVmIG1hcC91 bm1hcCB0byBpbXBvcnRlciAocHJvYmFibHkgbm90IG5lZWRlZCkgKi8KIAkJLyogZm9yIGRtYWJ1 ZiBzeW5jaHJvbml6YXRpb24gKi8KQEAgLTE5MSwxNiArMTcwLDE4IEBAIGludCBoeXBlcl9kbWFi dWZfbXNnX3BhcnNlKGludCBkb21pZCwgc3RydWN0IGh5cGVyX2RtYWJ1Zl9yaW5nX3JxICpyZXEp CiAJCQloeXBlcl9kbWFidWZfZmluZF9pbXBvcnRlZChyZXEtPm9wZXJhbmRzWzBdKTsKIAogCQlp ZiAoaW1wb3J0ZWRfc2d0X2luZm8pIHsKLQkJCWh5cGVyX2RtYWJ1Zl9mcmVlX3NndChpbXBvcnRl ZF9zZ3RfaW5mby0+c2d0KTsKLQotCQkJaHlwZXJfZG1hYnVmX2NsZWFudXBfaW1wb3J0ZWRfcGFn ZXMoaW1wb3J0ZWRfc2d0X2luZm8pOwotCQkJaHlwZXJfZG1hYnVmX3JlbW92ZV9pbXBvcnRlZChy ZXEtPm9wZXJhbmRzWzBdKTsKLQotCQkJLyogTm90aWZ5IGV4cG9ydGVyIHRoYXQgYnVmZmVyIGlz IGZyZWVkIGFuZCBpdCBjYW4KLQkJCSAqIGNsZWFudXAgaXQKLQkJCSAqLwotCQkJcmVxLT5zdGF0 dXMgPSBIWVBFUl9ETUFCVUZfUkVRX05FRURTX0ZPTExPV19VUDsKLQkJCXJlcS0+Y29tbWFuZCA9 IEhZUEVSX0RNQUJVRl9VTkVYUE9SVF9GSU5JU0g7CisJCQkvKiBjaGVjayBpZiBidWZmZXIgaXMg c3RpbGwgbWFwcGVkIGFuZCBpbiB1c2UgKi8KKwkJCWlmIChpbXBvcnRlZF9zZ3RfaW5mby0+c2d0 KSB7CisJCQkJLyoKKwkJCQkgKiBCdWZmZXIgaXMgc3RpbGwgaW4gIHVzZSwganVzdCBtYXJrIHRo YXQgaXQgc2hvdWxkCisJCQkJICogbm90IGJlIGFsbG93ZWQgdG8gZXhwb3J0IGl0cyBmZCBhbnlt b3JlLgorCQkJCSAqLworCQkJCWltcG9ydGVkX3NndF9pbmZvLT5mbGFncyA9IEhZUEVSX0RNQUJV Rl9TR1RfSU5WQUxJRDsKKwkJCX0gZWxzZSB7CisJCQkJLyogTm8gb25lIGlzIHVzaW5nIGJ1ZmZl ciwgcmVtb3ZlIGl0IGZyb20gaW1wb3J0ZWQgbGlzdCAqLworCQkJCWh5cGVyX2RtYWJ1Zl9yZW1v dmVfaW1wb3J0ZWQocmVxLT5vcGVyYW5kc1swXSk7CisJCQkJa2ZyZWUoaW1wb3J0ZWRfc2d0X2lu Zm8pOworCQkJfQogCQl9IGVsc2UgewogCQkJcmVxLT5zdGF0dXMgPSBIWVBFUl9ETUFCVUZfUkVR X0VSUk9SOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYvaHlwZXJf ZG1hYnVmX21zZy5oIGIvZHJpdmVycy94ZW4vaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9tc2cu aAppbmRleCAzOWExMTRhLi5mYzEzNjViIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9oeXBlcl9k bWFidWYvaHlwZXJfZG1hYnVmX21zZy5oCisrKyBiL2RyaXZlcnMveGVuL2h5cGVyX2RtYWJ1Zi9o eXBlcl9kbWFidWZfbXNnLmgKQEAgLTQsNyArNCw2IEBACiBlbnVtIGh5cGVyX2RtYWJ1Zl9jb21t YW5kIHsKIAlIWVBFUl9ETUFCVUZfRVhQT1JUID0gMHgxMCwKIAlIWVBFUl9ETUFCVUZfTk9USUZZ X1VORVhQT1JULAotCUhZUEVSX0RNQUJVRl9VTkVYUE9SVF9GSU5JU0gsCiAJSFlQRVJfRE1BQlVG X09QU19UT19SRU1PVEUsCiAJSFlQRVJfRE1BQlVGX09QU19UT19TT1VSQ0UsCiB9OwpkaWZmIC0t Z2l0IGEvZHJpdmVycy94ZW4vaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9yZW1vdGVfc3luYy5j IGIvZHJpdmVycy94ZW4vaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9yZW1vdGVfc3luYy5jCmlu ZGV4IGZhMmZhMTEuLjYxYmE0ZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2h5cGVyX2RtYWJ1 Zi9oeXBlcl9kbWFidWZfcmVtb3RlX3N5bmMuYworKysgYi9kcml2ZXJzL3hlbi9oeXBlcl9kbWFi dWYvaHlwZXJfZG1hYnVmX3JlbW90ZV9zeW5jLmMKQEAgLTgsNiArOCw3IEBACiAjaW5jbHVkZSAi aHlwZXJfZG1hYnVmX2Rydi5oIgogI2luY2x1ZGUgInhlbi9oeXBlcl9kbWFidWZfeGVuX2NvbW0u aCIKICNpbmNsdWRlICJoeXBlcl9kbWFidWZfbXNnLmgiCisjaW5jbHVkZSAiaHlwZXJfZG1hYnVm X2ltcC5oIgogCiBleHRlcm4gc3RydWN0IGh5cGVyX2RtYWJ1Zl9wcml2YXRlIGh5cGVyX2RtYWJ1 Zl9wcml2YXRlOwogCkBAIC0xMTQsMTAgKzExNSwxNyBAQCBpbnQgaHlwZXJfZG1hYnVmX3JlbW90 ZV9zeW5jKGludCBpZCwgaW50IG9wcykKIAkJYnJlYWs7CiAKIAljYXNlIEhZUEVSX0RNQUJVRl9P UFNfUkVMRUFTRToKLQkJLyogcmVtb3RlIGltcG9ydGVyIHNob3VsZG4ndCByZWxlYXNlIGRtYV9i dWYgYmVjYXVzZQotCQkgKiBleHBvcnRlciB3aWxsIGhvbGQgaGFuZGxlIHRvIHRoZSBkbWFfYnVm IGFzCi0JCSAqIGZhciBhcyBkbWFfYnVmIGlzIHNoYXJlZCB3aXRoIG90aGVyIGRvbWFpbnMuCisJ CS8qCisJCSAqIEltcG9ydGVyIGp1c3QgcmVsZWFzZWQgYnVmZmVyIGZkLCBjaGVjayBpZiB0aGVy ZSBpcyBhbnkgb3RoZXIgaW1wb3J0ZXIgc3RpbGwgdXNpbmcgaXQuCisJCSAqIElmIG5vdCBhbmQg YnVmZmVyIHdhcyB1bmV4cG9ydGVkLCBjbGVhbiB1cCBzaGFyZWQgZGF0YSBhbmQgcmVtb3ZlIHRo YXQgYnVmZmVyLgogCQkgKi8KKwkJIGlmIChsaXN0X2VtcHR5KCZzZ3RfaW5mby0+YWN0aXZlX3Nn dHMtPmxpc3QpICYmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCSAgICBsaXN0X2VtcHR5KCZzZ3RfaW5mby0+YWN0aXZlX2F0 dGFjaGVkLT5saXN0KSAmJgorCQkgICAgIHNndF9pbmZvLT5mbGFncyA9PSBIWVBFUl9ETUFCVUZf U0dUX1VORVhQT1JURUQpIHsKKwkJCWh5cGVyX2RtYWJ1Zl9jbGVhbnVwX3NndF9pbmZvKHNndF9p bmZvLCBmYWxzZSk7CisJCQloeXBlcl9kbWFidWZfcmVtb3ZlX2V4cG9ydGVkKGlkKTsKKwkJCWtm cmVlKHNndF9pbmZvKTsKKwkJfQorCiAJCWJyZWFrOwogCiAJY2FzZSBIWVBFUl9ETUFCVUZfT1BT X0JFR0lOX0NQVV9BQ0NFU1M6CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYv aHlwZXJfZG1hYnVmX3N0cnVjdC5oIGIvZHJpdmVycy94ZW4vaHlwZXJfZG1hYnVmL2h5cGVyX2Rt YWJ1Zl9zdHJ1Y3QuaAppbmRleCBiZmU4MGVlLi4xMTk0Y2YyIDEwMDY0NAotLS0gYS9kcml2ZXJz L3hlbi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX3N0cnVjdC5oCisrKyBiL2RyaXZlcnMveGVu L2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfc3RydWN0LmgKQEAgLTE4LDYgKzE4LDExIEBACiAg KiBmcmFtZSBidWZmZXIpICovCiAjZGVmaW5lIE1BWF9BTExPV0VEX05VTV9QQUdFU19GT1JfR1JF Rl9OVU1fQVJSQVlTIDQKIAorZW51bSBoeXBlcl9kbWFidWZfc2d0X2ZsYWdzIHsKKyAgICAgICAg SFlQRVJfRE1BQlVGX1NHVF9JTlZBTElEID0gMHgxMCwKKyAgICAgICAgSFlQRVJfRE1BQlVGX1NH VF9VTkVYUE9SVEVELAorfTsKKwogLyogc3RhY2sgb2YgbWFwcGVkIHNndHMgKi8KIHN0cnVjdCBz Z3RfbGlzdCB7CiAJc3RydWN0IHNnX3RhYmxlICpzZ3Q7CkBAIC03Niw3ICs4MSw3IEBAIHN0cnVj dCBoeXBlcl9kbWFidWZfc2d0X2luZm8gewogCXN0cnVjdCBhdHRhY2htZW50X2xpc3QgKmFjdGl2 ZV9hdHRhY2hlZDsKIAlzdHJ1Y3Qga21hcF92YWRkcl9saXN0ICp2YV9rbWFwcGVkOwogCXN0cnVj dCB2bWFwX3ZhZGRyX2xpc3QgKnZhX3ZtYXBwZWQ7Ci0KKwlpbnQgZmxhZ3M7CiAJc3RydWN0IGh5 cGVyX2RtYWJ1Zl9zaGFyZWRfcGFnZXNfaW5mbyBzaGFyZWRfcGFnZXNfaW5mbzsKIAlpbnQgcHJp dmF0ZVs0XTsgLyogZGV2aWNlIHNwZWNpZmljIGluZm8gKGUuZy4gaW1hZ2UncyBtZXRhIGluZm8/ KSAqLwogfTsKQEAgLTkyLDYgKzk3LDggQEAgc3RydWN0IGh5cGVyX2RtYWJ1Zl9pbXBvcnRlZF9z Z3RfaW5mbyB7CiAJZ3JhbnRfcmVmX3QgZ3JlZjsgLyogcmVmZXJlbmNlIG51bWJlciBvZiB0b3Ag bGV2ZWwgYWRkcmVzc2luZyBwYWdlIG9mIHNoYXJlZCBwYWdlcyAqLwogCXN0cnVjdCBzZ190YWJs ZSAqc2d0OyAvKiBzZ3QgcG9pbnRlciBhZnRlciBpbXBvcnRpbmcgYnVmZmVyICovCiAJc3RydWN0 IGh5cGVyX2RtYWJ1Zl9zaGFyZWRfcGFnZXNfaW5mbyBzaGFyZWRfcGFnZXNfaW5mbzsKKwlpbnQg ZmxhZ3M7CisJaW50IHJlZl9jb3VudDsKIAlpbnQgcHJpdmF0ZVs0XTsgLyogZGV2aWNlIHNwZWNp ZmljIGluZm8gKGUuZy4gaW1hZ2UncyBtZXRhIGluZm8/KSAqLwogfTsKIAotLSAKMi43LjQKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs