From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [RFC, v2, 4/9] hyper_dmabuf: user private data attached to hyper_DMABUF Date: Tue, 10 Apr 2018 12:59:04 +0300 Message-ID: References: <20180214015008.9513-5-dongwon.kim@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1f5q3T-0001v5-59 for xen-devel@lists.xenproject.org; Tue, 10 Apr 2018 09:59:11 +0000 Received: by mail-lf0-x244.google.com with SMTP id g203-v6so10763115lfg.11 for ; Tue, 10 Apr 2018 02:59:08 -0700 (PDT) In-Reply-To: <20180214015008.9513-5-dongwon.kim@intel.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Dongwon Kim , linux-kernel@vger.kernel.org, linaro-mm-sig@lists.linaro.org, xen-devel@lists.xenproject.org Cc: mateuszx.potrola@intel.com, dri-devel@lists.freedesktop.org List-Id: xen-devel@lists.xenproject.org T24gMDIvMTQvMjAxOCAwMzo1MCBBTSwgRG9uZ3dvbiBLaW0gd3JvdGU6Cj4gRGVmaW5lIGEgcHJp dmF0ZSBkYXRhIChlLmcuIG1ldGEgZGF0YSBmb3IgdGhlIGJ1ZmZlcikgYXR0YWNoZWQgdG8KPiBl YWNoIGh5cGVyX0RNQUJVRiBzdHJ1Y3R1cmUuIFRoaXMgZGF0YSBpcyBwcm92aWRlZCBieSB1c2Vy YXBhY2UgdmlhCj4gZXhwb3J0X3JlbW90ZSBJT0NUTCBhbmQgaXRzIHNpemUgY2FuIGJlIHVwIHRv IDE5MiBieXRlcy4KPgo+IFNpZ25lZC1vZmYtYnk6IERvbmd3b24gS2ltIDxkb25nd29uLmtpbUBp bnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWF0ZXVzeiBQb2xyb2xhIDxtYXRldXN6eC5wb3Ry b2xhQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlw ZXJfZG1hYnVmX2lvY3RsLmMgIHwgODMgKysrKysrKysrKysrKysrKysrKystLQo+ICAgZHJpdmVy cy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfbXNnLmMgICAgfCAzNiArKysrKysr KystCj4gICBkcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9tc2cuaCAg ICB8ICAyICstCj4gICAuLi4vZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX3NnbF9w cm9jLmMgICB8ICAxICsKPiAgIGRyaXZlcnMvZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1h YnVmX3N0cnVjdC5oIHwgMTIgKysrKwo+ICAgaW5jbHVkZS91YXBpL2xpbnV4L2h5cGVyX2RtYWJ1 Zi5oICAgICAgICAgICAgICAgICAgfCAgNCArKwo+ICAgNiBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5z ZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1i dWYvaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9pb2N0bC5jIGIvZHJpdmVycy9kbWEtYnVmL2h5 cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfaW9jdGwuYwo+IGluZGV4IDAyMGE1NTkwYTI1NC4uMTY4 Y2NmOThmNzEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlw ZXJfZG1hYnVmX2lvY3RsLmMKPiArKysgYi9kcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL2h5 cGVyX2RtYWJ1Zl9pb2N0bC5jCj4gQEAgLTEwMyw2ICsxMDMsMTEgQEAgc3RhdGljIGludCBzZW5k X2V4cG9ydF9tc2coc3RydWN0IGV4cG9ydGVkX3NndF9pbmZvICpleHBvcnRlZCwKPiAgIAkJfQo+ ICAgCX0KPiAgIAo+ICsJb3BbOF0gPSBleHBvcnRlZC0+c3pfcHJpdjsKPiArCj4gKwkvKiBkcml2 ZXIvYXBwbGljYXRpb24gc3BlY2lmaWMgcHJpdmF0ZSBpbmZvICovCj4gKwltZW1jcHkoJm9wWzld LCBleHBvcnRlZC0+cHJpdiwgb3BbOF0pOwo+ICsKPiAgIAlyZXEgPSBrY2FsbG9jKDEsIHNpemVv ZigqcmVxKSwgR0ZQX0tFUk5FTCk7Cj4gICAKPiAgIAlpZiAoIXJlcSkKPiBAQCAtMTIwLDggKzEy NSw5IEBAIHN0YXRpYyBpbnQgc2VuZF9leHBvcnRfbXNnKHN0cnVjdCBleHBvcnRlZF9zZ3RfaW5m byAqZXhwb3J0ZWQsCj4gICAKPiAgIC8qIEZhc3QgcGF0aCBleHBvcnRpbmcgcm91dGluZSBpbiBj YXNlIHNhbWUgYnVmZmVyIGlzIGFscmVhZHkgZXhwb3J0ZWQuCj4gICAgKgo+IC0gKiBJZiBzYW1l IGJ1ZmZlciBpcyBzdGlsbCB2YWxpZCBhbmQgZXhpc3QgaW4gRVhQT1JUIExJU1QgaXQgcmV0dXJu cyAwIHNvCj4gLSAqIHRoYXQgcmVtYWluaW5nIG5vcm1hbCBleHBvcnQgcHJvY2VzcyBjYW4gYmUg c2tpcHBlZC4KPiArICogSWYgc2FtZSBidWZmZXIgaXMgc3RpbGwgdmFsaWQgYW5kIGV4aXN0IGlu IEVYUE9SVCBMSVNULCBpdCBvbmx5IHVwZGF0ZXMKPiArICogdXNlci1wcml2YXRlIGRhdGEgZm9y IHRoZSBidWZmZXIgYW5kIHJldHVybnMgMCBzbyB0aGF0IHRoYXQgaXQgY2FuIHNraXAKPiArICog bm9ybWFsIGV4cG9ydCBwcm9jZXNzLgo+ICAgICoKPiAgICAqIElmICJ1bmV4cG9ydCIgaXMgc2No ZWR1bGVkIGZvciB0aGUgYnVmZmVyLCBpdCBjYW5jZWxzIGl0IHNpbmNlIHRoZSBidWZmZXIKPiAg ICAqIGlzIGJlaW5nIHJlLWV4cG9ydGVkLgo+IEBAIC0xMjksNyArMTM1LDcgQEAgc3RhdGljIGlu dCBzZW5kX2V4cG9ydF9tc2coc3RydWN0IGV4cG9ydGVkX3NndF9pbmZvICpleHBvcnRlZCwKPiAg ICAqIHJldHVybiAnMScgaWYgcmVleHBvcnQgaXMgbmVlZGVkLCByZXR1cm4gJzAnIGlmIHN1Y2Nl ZWRzLCByZXR1cm4KPiAgICAqIEtlcm5lbCBlcnJvciBjb2RlIGlmIHNvbWV0aGluZyBnb2VzIHdy b25nCj4gICAgKi8KPiAtc3RhdGljIGludCBmYXN0cGF0aF9leHBvcnQoaHlwZXJfZG1hYnVmX2lk X3QgaGlkKQo+ICtzdGF0aWMgaW50IGZhc3RwYXRoX2V4cG9ydChoeXBlcl9kbWFidWZfaWRfdCBo aWQsIGludCBzel9wcml2LCBjaGFyICpwcml2KQo+ICAgewo+ICAgCWludCByZWV4cG9ydCA9IDE7 Cj4gICAJaW50IHJldCA9IDA7Cj4gQEAgLTE1NSw2ICsxNjEsNDYgQEAgc3RhdGljIGludCBmYXN0 cGF0aF9leHBvcnQoaHlwZXJfZG1hYnVmX2lkX3QgaGlkKQo+ICAgCQlleHBvcnRlZC0+dW5leHBv cnRfc2NoZWQgPSBmYWxzZTsKPiAgIAl9Cj4gICAKPiArCS8qIGlmIHRoZXJlJ3MgYW55IGNoYW5n ZSBpbiBzaXplIG9mIHByaXZhdGUgZGF0YS4KPiArCSAqIHdlIHJlYWxsb2NhdGUgc3BhY2UgZm9y IHByaXZhdGUgZGF0YSB3aXRoIG5ldyBzaXplCj4gKwkgKi8KPiArCWlmIChzel9wcml2ICE9IGV4 cG9ydGVkLT5zel9wcml2KSB7Cj4gKwkJa2ZyZWUoZXhwb3J0ZWQtPnByaXYpOwo+ICsKPiArCQkv KiB0cnVuY2F0aW5nIHNpemUgKi8KPiArCQlpZiAoc3pfcHJpdiA+IE1BWF9TSVpFX1BSSVZfREFU QSkKPiArCQkJZXhwb3J0ZWQtPnN6X3ByaXYgPSBNQVhfU0laRV9QUklWX0RBVEE7Cj4gKwkJZWxz ZQo+ICsJCQlleHBvcnRlZC0+c3pfcHJpdiA9IHN6X3ByaXY7Cj4gKwo+ICsJCWV4cG9ydGVkLT5w cml2ID0ga2NhbGxvYygxLCBleHBvcnRlZC0+c3pfcHJpdiwKPiArCQkJCQkgR0ZQX0tFUk5FTCk7 Cj4gKwo+ICsJCWlmICghZXhwb3J0ZWQtPnByaXYpIHsKPiArCQkJaHlwZXJfZG1hYnVmX3JlbW92 ZV9leHBvcnRlZChleHBvcnRlZC0+aGlkKTsKPiArCQkJaHlwZXJfZG1hYnVmX2NsZWFudXBfc2d0 X2luZm8oZXhwb3J0ZWQsIHRydWUpOwo+ICsJCQlrZnJlZShleHBvcnRlZCk7Cj4gKwkJCXJldHVy biAtRU5PTUVNOwo+ICsJCX0KPiArCX0KPiArCj4gKwkvKiB1cGRhdGUgcHJpdmF0ZSBkYXRhIGlu IHNndF9pbmZvIHdpdGggbmV3IG9uZXMgKi8KPiArCXJldCA9IGNvcHlfZnJvbV91c2VyKGV4cG9y dGVkLT5wcml2LCBwcml2LCBleHBvcnRlZC0+c3pfcHJpdik7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJ ZGV2X2VycihoeV9kcnZfcHJpdi0+ZGV2LAo+ICsJCQkiRmFpbGVkIHRvIGxvYWQgYSBuZXcgcHJp dmF0ZSBkYXRhXG4iKTsKPiArCQlyZXQgPSAtRUlOVkFMOwo+ICsJfSBlbHNlIHsKPiArCQkvKiBz ZW5kIGFuIGV4cG9ydCBtc2cgZm9yIHVwZGF0aW5nIHByaXYgaW4gaW1wb3J0ZXIgKi8KPiArCQly ZXQgPSBzZW5kX2V4cG9ydF9tc2coZXhwb3J0ZWQsIE5VTEwpOwo+ICsKPiArCQlpZiAocmV0IDwg MCkgewo+ICsJCQlkZXZfZXJyKGh5X2Rydl9wcml2LT5kZXYsCj4gKwkJCQkiRmFpbGVkIHRvIHNl bmQgYSBuZXcgcHJpdmF0ZSBkYXRhXG4iKTsKPiArCQkJcmV0ID0gLUVCVVNZOwo+ICsJCX0KPiAr CX0KPiArCj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiAgIAo+IEBAIC0xOTEsNyArMjM3LDggQEAg c3RhdGljIGludCBoeXBlcl9kbWFidWZfZXhwb3J0X3JlbW90ZV9pb2N0bChzdHJ1Y3QgZmlsZSAq ZmlscCwgdm9pZCAqZGF0YSkKPiAgIAkJCQkJICAgICBleHBvcnRfcmVtb3RlX2F0dHItPnJlbW90 ZV9kb21haW4pOwo+ICAgCj4gICAJaWYgKGhpZC5pZCAhPSAtMSkgewo+IC0JCXJldCA9IGZhc3Rw YXRoX2V4cG9ydChoaWQpOwo+ICsJCXJldCA9IGZhc3RwYXRoX2V4cG9ydChoaWQsIGV4cG9ydF9y ZW1vdGVfYXR0ci0+c3pfcHJpdiwKPiArCQkJCSAgICAgIGV4cG9ydF9yZW1vdGVfYXR0ci0+cHJp dik7Cj4gICAKPiAgIAkJLyogcmV0dXJuIGlmIGZhc3RwYXRoX2V4cG9ydCBzdWNjZWVkcyBvcgo+ ICAgCQkgKiBnZXRzIHNvbWUgZmF0YWwgZXJyb3IKPiBAQCAtMjI1LDYgKzI3MiwyNCBAQCBzdGF0 aWMgaW50IGh5cGVyX2RtYWJ1Zl9leHBvcnRfcmVtb3RlX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxw LCB2b2lkICpkYXRhKQo+ICAgCQlnb3RvIGZhaWxfc2d0X2luZm9fY3JlYXRpb247Cj4gICAJfQo+ ICAgCj4gKwkvKiBwb3NzaWJsZSB0cnVuY2F0aW9uICovCj4gKwlpZiAoZXhwb3J0X3JlbW90ZV9h dHRyLT5zel9wcml2ID4gTUFYX1NJWkVfUFJJVl9EQVRBKQo+ICsJCWV4cG9ydGVkLT5zel9wcml2 ID0gTUFYX1NJWkVfUFJJVl9EQVRBOwo+ICsJZWxzZQo+ICsJCWV4cG9ydGVkLT5zel9wcml2ID0g ZXhwb3J0X3JlbW90ZV9hdHRyLT5zel9wcml2Owo+ICsKPiArCS8qIGNyZWF0aW5nIGJ1ZmZlciBm b3IgcHJpdmF0ZSBkYXRhIG9mIGJ1ZmZlciAqLwo+ICsJaWYgKGV4cG9ydGVkLT5zel9wcml2ICE9 IDApIHsKPiArCQlleHBvcnRlZC0+cHJpdiA9IGtjYWxsb2MoMSwgZXhwb3J0ZWQtPnN6X3ByaXYs IEdGUF9LRVJORUwpOwo+ICsKPiArCQlpZiAoIWV4cG9ydGVkLT5wcml2KSB7Cj4gKwkJCXJldCA9 IC1FTk9NRU07Cj4gKwkJCWdvdG8gZmFpbF9wcml2X2NyZWF0aW9uOwo+ICsJCX0KPiArCX0gZWxz ZSB7Cj4gKwkJZGV2X2VycihoeV9kcnZfcHJpdi0+ZGV2LCAic2l6ZSBpcyAwXG4iKTsKPiArCX0K PiArCj4gICAJZXhwb3J0ZWQtPmhpZCA9IGh5cGVyX2RtYWJ1Zl9nZXRfaGlkKCk7Cj4gICAKPiAg IAkvKiBubyBtb3JlIGV4cG9ydGVkIGRtYWJ1ZiBhbGxvd2VkICovCj4gQEAgLTI3OSw2ICszNDQs MTAgQEAgc3RhdGljIGludCBoeXBlcl9kbWFidWZfZXhwb3J0X3JlbW90ZV9pb2N0bChzdHJ1Y3Qg ZmlsZSAqZmlscCwgdm9pZCAqZGF0YSkKPiAgIAlJTklUX0xJU1RfSEVBRCgmZXhwb3J0ZWQtPnZh X2ttYXBwZWQtPmxpc3QpOwo+ICAgCUlOSVRfTElTVF9IRUFEKCZleHBvcnRlZC0+dmFfdm1hcHBl ZC0+bGlzdCk7Cj4gICAKPiArCS8qIGNvcHkgcHJpdmF0ZSBkYXRhIHRvIHNndF9pbmZvICovCj4g KwlyZXQgPSBjb3B5X2Zyb21fdXNlcihleHBvcnRlZC0+cHJpdiwgZXhwb3J0X3JlbW90ZV9hdHRy LT5wcml2LAo+ICsJCQkgICAgIGV4cG9ydGVkLT5zel9wcml2KTsKPiArCj4gICAJaWYgKHJldCkg ewo+ICAgCQlkZXZfZXJyKGh5X2Rydl9wcml2LT5kZXYsCj4gICAJCQkiZmFpbGVkIHRvIGxvYWQg cHJpdmF0ZSBkYXRhXG4iKTsKPiBAQCAtMzM3LDYgKzQwNiw5IEBAIHN0YXRpYyBpbnQgaHlwZXJf ZG1hYnVmX2V4cG9ydF9yZW1vdGVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHZvaWQgKmRhdGEp Cj4gICAKPiAgIGZhaWxfbWFwX2FjdGl2ZV9hdHRhY2hlZDoKPiAgIAlrZnJlZShleHBvcnRlZC0+ YWN0aXZlX3NndHMpOwo+ICsJa2ZyZWUoZXhwb3J0ZWQtPnByaXYpOwo+ICsKPiArZmFpbF9wcml2 X2NyZWF0aW9uOgo+ICAgCWtmcmVlKGV4cG9ydGVkKTsKPiAgIAo+ICAgZmFpbF9tYXBfYWN0aXZl X3NndHM6Cj4gQEAgLTU2Nyw2ICs2MzksOSBAQCBzdGF0aWMgdm9pZCBkZWxheWVkX3VuZXhwb3J0 KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgIAkJLyogcmVnaXN0ZXIgaHlwZXJfZG1hYnVm X2lkIHRvIHRoZSBsaXN0IGZvciByZXVzZSAqLwo+ICAgCQloeXBlcl9kbWFidWZfc3RvcmVfaGlk KGV4cG9ydGVkLT5oaWQpOwo+ICAgCj4gKwkJaWYgKGV4cG9ydGVkLT5zel9wcml2ID4gMCAmJiAh ZXhwb3J0ZWQtPnByaXYpCj4gKwkJCWtmcmVlKGV4cG9ydGVkLT5wcml2KTsKPiArCj4gICAJCWtm cmVlKGV4cG9ydGVkKTsKPiAgIAl9Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1 Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX21zZy5jIGIvZHJpdmVycy9kbWEtYnVmL2h5cGVy X2RtYWJ1Zi9oeXBlcl9kbWFidWZfbXNnLmMKPiBpbmRleCAxMjliMmZmMmFmMmIuLjcxNzZmYThm YjEzOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL2h5cGVyX2Rt YWJ1Zl9tc2cuYwo+ICsrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1h YnVmX21zZy5jCj4gQEAgLTYwLDkgKzYwLDEyIEBAIHZvaWQgaHlwZXJfZG1hYnVmX2NyZWF0ZV9y ZXEoc3RydWN0IGh5cGVyX2RtYWJ1Zl9yZXEgKnJlcSwKPiAgIAkJICogb3A1IDogb2Zmc2V0IG9m IGRhdGEgaW4gdGhlIGZpcnN0IHBhZ2UKPiAgIAkJICogb3A2IDogbGVuZ3RoIG9mIGRhdGEgaW4g dGhlIGxhc3QgcGFnZQo+ICAgCQkgKiBvcDcgOiB0b3AtbGV2ZWwgcmVmZXJlbmNlIG51bWJlciBm b3Igc2hhcmVkIHBhZ2VzCj4gKwkJICogb3A4IDogc2l6ZSBvZiBwcml2YXRlIGRhdGEgKGZyb20g b3A5KQo+ICsJCSAqIG9wOSB+IDogRHJpdmVyLXNwZWNpZmljIHByaXZhdGUgZGF0YQo+ICsJCSAq CSAgIChlLmcuIGdyYXBoaWMgYnVmZmVyJ3MgbWV0YSBpbmZvKQo+ICAgCQkgKi8KPiAgIAo+IC0J CW1lbWNweSgmcmVxLT5vcFswXSwgJm9wWzBdLCA4ICogc2l6ZW9mKGludCkgKyBvcFs4XSk7Cj4g KwkJbWVtY3B5KCZyZXEtPm9wWzBdLCAmb3BbMF0sIDkgKiBzaXplb2YoaW50KSArIG9wWzhdKTsK PiAgIAkJYnJlYWs7Cj4gICAKPiAgIAljYXNlIEhZUEVSX0RNQUJVRl9OT1RJRllfVU5FWFBPUlQ6 Cj4gQEAgLTExNiw2ICsxMTksOSBAQCBzdGF0aWMgdm9pZCBjbWRfcHJvY2Vzc193b3JrKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKPiAgIAkJICogb3A1IDogb2Zmc2V0IG9mIGRhdGEgaW4gdGhl IGZpcnN0IHBhZ2UKPiAgIAkJICogb3A2IDogbGVuZ3RoIG9mIGRhdGEgaW4gdGhlIGxhc3QgcGFn ZQo+ICAgCQkgKiBvcDcgOiB0b3AtbGV2ZWwgcmVmZXJlbmNlIG51bWJlciBmb3Igc2hhcmVkIHBh Z2VzCj4gKwkJICogb3A4IDogc2l6ZSBvZiBwcml2YXRlIGRhdGEgKGZyb20gb3A5KQo+ICsJCSAq IG9wOSB+IDogRHJpdmVyLXNwZWNpZmljIHByaXZhdGUgZGF0YQo+ICsJCSAqICAgICAgICAgKGUu Zy4gZ3JhcGhpYyBidWZmZXIncyBtZXRhIGluZm8pCj4gICAJCSAqLwo+ICAgCj4gICAJCS8qIGlm IG5lbnRzID09IDAsIGl0IG1lYW5zIGl0IGlzIGEgbWVzc2FnZSBvbmx5IGZvcgo+IEBAIC0xMzUs NiArMTQxLDI0IEBAIHN0YXRpYyB2b2lkIGNtZF9wcm9jZXNzX3dvcmsoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQo+ICAgCQkJCWJyZWFrOwo+ICAgCQkJfQo+ICAgCj4gKwkJCS8qIGlmIHNpemUg b2YgbmV3IHByaXZhdGUgZGF0YSBpcyBkaWZmZXJlbnQsCj4gKwkJCSAqIHdlIHJlYWxsb2NhdGUg aXQuCj4gKwkJCSAqLwo+ICsJCQlpZiAoaW1wb3J0ZWQtPnN6X3ByaXYgIT0gcmVxLT5vcFs4XSkg ewo+ICsJCQkJa2ZyZWUoaW1wb3J0ZWQtPnByaXYpOwo+ICsJCQkJaW1wb3J0ZWQtPnN6X3ByaXYg PSByZXEtPm9wWzhdOwo+ICsJCQkJaW1wb3J0ZWQtPnByaXYgPSBrY2FsbG9jKDEsIHJlcS0+b3Bb OF0sCj4gKwkJCQkJCQkgR0ZQX0tFUk5FTCk7Cj4gKwkJCQlpZiAoIWltcG9ydGVkLT5wcml2KSB7 Cj4gKwkJCQkJLyogc2V0IGl0IGludmFsaWQgKi8KPiArCQkJCQlpbXBvcnRlZC0+dmFsaWQgPSAw Owo+ICsJCQkJCWJyZWFrOwo+ICsJCQkJfQo+ICsJCQl9Cj4gKwo+ICsJCQkvKiB1cGRhdGluZyBw cml2IGRhdGEgKi8KPiArCQkJbWVtY3B5KGltcG9ydGVkLT5wcml2LCAmcmVxLT5vcFs5XSwgcmVx LT5vcFs4XSk7Cj4gKwo+ICAgCQkJYnJlYWs7Cj4gICAJCX0KPiAgIAo+IEBAIC0xNDMsNiArMTY3 LDE0IEBAIHN0YXRpYyB2b2lkIGNtZF9wcm9jZXNzX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3 b3JrKQo+ICAgCQlpZiAoIWltcG9ydGVkKQo+ICAgCQkJYnJlYWs7Cj4gICAKPiArCQlpbXBvcnRl ZC0+c3pfcHJpdiA9IHJlcS0+b3BbOF07Cj4gKwkJaW1wb3J0ZWQtPnByaXYgPSBrY2FsbG9jKDEs IHJlcS0+b3BbOF0sIEdGUF9LRVJORUwpOwpCVFcsIHRoZXJlIGFyZSBwbGVudHkgb2YgdGhlIGNv ZGUgdXNpbmcga2NhbGxvYyB3aXRoIDEgZWxlbWVudApXaHkgbm90IHNpbXBseSBremFsbG9jPwo+ ICsKPiArCQlpZiAoIWltcG9ydGVkLT5wcml2KSB7Cj4gKwkJCWtmcmVlKGltcG9ydGVkKTsKPiAr CQkJYnJlYWs7Cj4gKwkJfQo+ICsKPiAgIAkJaW1wb3J0ZWQtPmhpZC5pZCA9IHJlcS0+b3BbMF07 Cj4gICAKPiAgIAkJZm9yIChpID0gMDsgaSA8IDM7IGkrKykKPiBAQCAtMTYyLDYgKzE5NCw4IEBA IHN0YXRpYyB2b2lkIGNtZF9wcm9jZXNzX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ ICAgCQlkZXZfZGJnKGh5X2Rydl9wcml2LT5kZXYsICJcdGxhc3QgbGVuICVkXG4iLCByZXEtPm9w WzZdKTsKPiAgIAkJZGV2X2RiZyhoeV9kcnZfcHJpdi0+ZGV2LCAiXHRncmVmaWQgJWRcbiIsIHJl cS0+b3BbN10pOwo+ICAgCj4gKwkJbWVtY3B5KGltcG9ydGVkLT5wcml2LCAmcmVxLT5vcFs5XSwg cmVxLT5vcFs4XSk7Cj4gKwo+ICAgCQlpbXBvcnRlZC0+dmFsaWQgPSB0cnVlOwo+ICAgCQloeXBl cl9kbWFidWZfcmVnaXN0ZXJfaW1wb3J0ZWQoaW1wb3J0ZWQpOwo+ICAgCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX21zZy5oIGIvZHJpdmVy cy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfbXNnLmgKPiBpbmRleCA1OWYxNTI4 ZTliMWUuLjYzYTM5ZDA2OGQ2OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2RtYS1idWYvaHlwZXJf ZG1hYnVmL2h5cGVyX2RtYWJ1Zl9tc2cuaAo+ICsrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9oeXBlcl9k bWFidWYvaHlwZXJfZG1hYnVmX21zZy5oCj4gQEAgLTI3LDcgKzI3LDcgQEAKPiAgICNpZm5kZWYg X19IWVBFUl9ETUFCVUZfTVNHX0hfXwo+ICAgI2RlZmluZSBfX0hZUEVSX0RNQUJVRl9NU0dfSF9f Cj4gICAKPiAtI2RlZmluZSBNQVhfTlVNQkVSX09GX09QRVJBTkRTIDgKPiArI2RlZmluZSBNQVhf TlVNQkVSX09GX09QRVJBTkRTIDY0Cj4gICAKU28gbm93IHRoZSByZXEvcmVzcCBiZWxvdyBiZWNv bWUgKDY0ICsgMykgaW50cyBsb25nLCAyNjggYnl0ZXMKNDA5NiAvIDI2OC4uLgoKPiAgIHN0cnVj dCBoeXBlcl9kbWFidWZfcmVxIHsKPiAgIAl1bnNpZ25lZCBpbnQgcmVxX2lkOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9zZ2xfcHJvYy5j IGIvZHJpdmVycy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfc2dsX3Byb2MuYwo+ IGluZGV4IGQ5MmFlMTNkOGEzMC4uOTAzMmY4OWUwY2QwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv ZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX3NnbF9wcm9jLmMKPiArKysgYi9kcml2 ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9zZ2xfcHJvYy5jCj4gQEAgLTI1 MSw2ICsyNTEsNyBAQCBpbnQgaHlwZXJfZG1hYnVmX2NsZWFudXBfc2d0X2luZm8oc3RydWN0IGV4 cG9ydGVkX3NndF9pbmZvICpleHBvcnRlZCwKPiAgIAlrZnJlZShleHBvcnRlZC0+YWN0aXZlX2F0 dGFjaGVkKTsKPiAgIAlrZnJlZShleHBvcnRlZC0+dmFfa21hcHBlZCk7Cj4gICAJa2ZyZWUoZXhw b3J0ZWQtPnZhX3ZtYXBwZWQpOwo+ICsJa2ZyZWUoZXhwb3J0ZWQtPnByaXYpOwo+ICAgCj4gICAJ cmV0dXJuIDA7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9oeXBlcl9kbWFi dWYvaHlwZXJfZG1hYnVmX3N0cnVjdC5oIGIvZHJpdmVycy9kbWEtYnVmL2h5cGVyX2RtYWJ1Zi9o eXBlcl9kbWFidWZfc3RydWN0LmgKPiBpbmRleCAxNDRlMzgyMWZiYzIuLmExMjIwYmJmOGQwYyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2RtYS1idWYvaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9z dHJ1Y3QuaAo+ICsrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVm X3N0cnVjdC5oCj4gQEAgLTEwMSw2ICsxMDEsMTIgQEAgc3RydWN0IGV4cG9ydGVkX3NndF9pbmZv IHsKPiAgIAkgKiB0aGUgYnVmZmVyIGNhbiBiZSBjb21wbGV0ZWx5IGZyZWVkLgo+ICAgCSAqLwo+ ICAgCXN0cnVjdCBmaWxlICpmaWxwOwo+ICsKPiArCS8qIHNpemUgb2YgcHJpdmF0ZSAqLwo+ICsJ c2l6ZV90IHN6X3ByaXY7Cj4gKwo+ICsJLyogcHJpdmF0ZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0 aGUgZXhwb3J0ZWQgYnVmZmVyICovCj4gKwljaGFyICpwcml2Owo+ICAgfTsKPiAgIAo+ICAgLyog aW1wb3J0ZWRfc2d0X2luZm8gY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgaW1wb3J0ZWQgRE1B X0JVRgo+IEBAIC0xMjYsNiArMTMyLDEyIEBAIHN0cnVjdCBpbXBvcnRlZF9zZ3RfaW5mbyB7Cj4g ICAJdm9pZCAqcmVmc19pbmZvOwo+ICAgCWJvb2wgdmFsaWQ7Cj4gICAJaW50IGltcG9ydGVyczsK PiArCj4gKwkvKiBzaXplIG9mIHByaXZhdGUgKi8KPiArCXNpemVfdCBzel9wcml2Owo+ICsKPiAr CS8qIHByaXZhdGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGV4cG9ydGVkIGJ1ZmZlciAqLwo+ ICsJY2hhciAqcHJpdjsKPiAgIH07Cj4gICAKPiAgICNlbmRpZiAvKiBfX0hZUEVSX0RNQUJVRl9T VFJVQ1RfSF9fICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9oeXBlcl9kbWFi dWYuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9oeXBlcl9kbWFidWYuaAo+IGluZGV4IGNhYWFlMmRh OWQ0ZC4uMzY3OTRhNGFmODExIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9oeXBl cl9kbWFidWYuaAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9oeXBlcl9kbWFidWYuaAo+IEBA IC0yNSw2ICsyNSw4IEBACj4gICAjaWZuZGVmIF9fTElOVVhfUFVCTElDX0hZUEVSX0RNQUJVRl9I X18KPiAgICNkZWZpbmUgX19MSU5VWF9QVUJMSUNfSFlQRVJfRE1BQlVGX0hfXwo+ICAgCj4gKyNk ZWZpbmUgTUFYX1NJWkVfUFJJVl9EQVRBIDE5Mgo+ICsKPiAgIHR5cGVkZWYgc3RydWN0IHsKPiAg IAlpbnQgaWQ7Cj4gICAJaW50IHJuZ19rZXlbM107IC8qIDEyYnl0ZXMgbG9uZyByYW5kb20gbnVt YmVyICovCj4gQEAgLTU2LDYgKzU4LDggQEAgc3RydWN0IGlvY3RsX2h5cGVyX2RtYWJ1Zl9leHBv cnRfcmVtb3RlIHsKPiAgIAlpbnQgcmVtb3RlX2RvbWFpbjsKPiAgIAkvKiBleHBvcnRlZCBkbWEg YnVmIGlkICovCj4gICAJaHlwZXJfZG1hYnVmX2lkX3QgaGlkOwo+ICsJaW50IHN6X3ByaXY7Cj4g KwljaGFyICpwcml2Owo+ICAgfTsKPiAgIAo+ICAgI2RlZmluZSBJT0NUTF9IWVBFUl9ETUFCVUZf RVhQT1JUX0ZEIFwKPgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw=