From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH 8/8] xen/gntdev: Expose gntdev's dma-buf API for in-kernel use Date: Wed, 30 May 2018 11:32:00 +0300 Message-ID: <94c6bc22-da2e-6543-0f13-7c6c1752533d__29779.1985948153$1527669047$gmane$org@gmail.com> References: <20180525153331.31188-1-andr2000@gmail.com> <20180525153331.31188-9-andr2000@gmail.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 1fNwWb-0002ur-BQ for xen-devel@lists.xenproject.org; Wed, 30 May 2018 08:32:05 +0000 Received: by mail-lf0-x241.google.com with SMTP id q11-v6so2949988lfc.7 for ; Wed, 30 May 2018 01:32:03 -0700 (PDT) In-Reply-To: <20180525153331.31188-9-andr2000@gmail.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: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Cc: daniel.vetter@intel.com, matthew.d.roper@intel.com, dongwon.kim@intel.com, Oleksandr Andrushchenko List-Id: xen-devel@lists.xenproject.org T24gMDUvMjUvMjAxOCAwNjozMyBQTSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6Cj4g RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgo+Cj4gQWxsb3cgY3JlYXRpbmcgZ3JhbnQgZGV2aWNlIGNvbnRleHQgZm9yIHVzZSBi eSBrZXJuZWwgbW9kdWxlcyB3aGljaAo+IHJlcXVpcmUgZnVuY3Rpb25hbGl0eSwgcHJvdmlkZWQg YnkgZ250ZGV2LiBFeHBvcnQgc3ltYm9scyBmb3IgZG1hLWJ1Zgo+IEFQSSBwcm92aWRlZCBieSB0 aGUgbW9kdWxlLgo+Cj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9s ZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+IC0tLQo+ICAgZHJpdmVycy94ZW4vZ250 ZGV2LmMgICAgfCAxMTYgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+ ICAgaW5jbHVkZS94ZW4vZ3JhbnRfZGV2LmggfCAgMzcgKysrKysrKysrKysrKwo+ICAgMiBmaWxl cyBjaGFuZ2VkLCAxMTMgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCj4gICBjcmVhdGUg bW9kZSAxMDA2NDQgaW5jbHVkZS94ZW4vZ3JhbnRfZGV2LmgKPgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL3hlbi9nbnRkZXYuYyBiL2RyaXZlcnMveGVuL2dudGRldi5jCj4gaW5kZXggZDhiNjE2OGYy Y2Q5Li45MTIwNTZmM2U5MDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy94ZW4vZ250ZGV2LmMKPiAr KysgYi9kcml2ZXJzL3hlbi9nbnRkZXYuYwo+IEBAIC02ODQsMTQgKzY4NCwzMyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9vcHMgZ250ZGV2X21tdV9vcHMgPSB7Cj4gICAKPiAg IC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSAqLwo+ICAgCj4gLXN0YXRpYyBpbnQgZ250ZGV2X29wZW4oc3RydWN0IGlu b2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZsaXApCj4gK3ZvaWQgZ250ZGV2X2ZyZWVfY29udGV4 dChzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYpCj4gK3sKPiArCXN0cnVjdCBncmFudF9tYXAgKm1h cDsKPiArCj4gKwlwcl9kZWJ1ZygicHJpdiAlcFxuIiwgcHJpdik7Cj4gKwo+ICsJbXV0ZXhfbG9j aygmcHJpdi0+bG9jayk7Cj4gKwl3aGlsZSAoIWxpc3RfZW1wdHkoJnByaXYtPm1hcHMpKSB7Cj4g KwkJbWFwID0gbGlzdF9lbnRyeShwcml2LT5tYXBzLm5leHQsIHN0cnVjdCBncmFudF9tYXAsIG5l eHQpOwo+ICsJCWxpc3RfZGVsKCZtYXAtPm5leHQpOwo+ICsJCWdudGRldl9wdXRfbWFwKE5VTEwg LyogYWxyZWFkeSByZW1vdmVkICovLCBtYXApOwo+ICsJfQo+ICsJV0FSTl9PTighbGlzdF9lbXB0 eSgmcHJpdi0+ZnJlZWFibGVfbWFwcykpOwo+ICsKPiArCW11dGV4X3VubG9jaygmcHJpdi0+bG9j ayk7Cj4gKwo+ICsJa2ZyZWUocHJpdik7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChnbnRkZXZfZnJl ZV9jb250ZXh0KTsKSSB3aWxsIGNvbnZlcnQgRVhQT1JUX1NZTUJPTCB0byBFWFBPUlRfU1lNQk9M X0dQTCBoZXJlIGFuZCBiZWxvdwo+ICsKPiArc3RydWN0IGdudGRldl9wcml2ICpnbnRkZXZfYWxs b2NfY29udGV4dChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gICB7Cj4gICAJc3RydWN0IGdudGRldl9w cml2ICpwcml2Owo+IC0JaW50IHJldCA9IDA7Cj4gICAKPiAgIAlwcml2ID0ga3phbGxvYyhzaXpl b2YoKnByaXYpLCBHRlBfS0VSTkVMKTsKPiAgIAlpZiAoIXByaXYpCj4gLQkJcmV0dXJuIC1FTk9N RU07Cj4gKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gICAKPiAgIAlJTklUX0xJU1RfSEVB RCgmcHJpdi0+bWFwcyk7Cj4gICAJSU5JVF9MSVNUX0hFQUQoJnByaXYtPmZyZWVhYmxlX21hcHMp Owo+IEBAIC03MDQsNiArNzIzLDMyIEBAIHN0YXRpYyBpbnQgZ250ZGV2X29wZW4oc3RydWN0IGlu b2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZsaXApCj4gICAJSU5JVF9MSVNUX0hFQUQoJnByaXYt PmRtYWJ1Zl9pbXBfbGlzdCk7Cj4gICAjZW5kaWYKPiAgIAo+ICsjaWZkZWYgQ09ORklHX1hFTl9H UkFOVF9ETUFfQUxMT0MKPiArCXByaXYtPmRtYV9kZXYgPSBkZXY7Cj4gKwo+ICsJLyoKPiArCSAq IFRoZSBkZXZpY2UgaXMgbm90IHNwYXduIGZyb20gYSBkZXZpY2UgdHJlZSwgc28gYXJjaF9zZXR1 cF9kbWFfb3BzCj4gKwkgKiBpcyBub3QgY2FsbGVkLCB0aHVzIGxlYXZpbmcgdGhlIGRldmljZSB3 aXRoIGR1bW15IERNQSBvcHMuCj4gKwkgKiBGaXggdGhpcyBjYWxsIG9mX2RtYV9jb25maWd1cmUo KSB3aXRoIGEgTlVMTCBub2RlIHRvIHNldAo+ICsJICogZGVmYXVsdCBETUEgb3BzLgo+ICsJICov Cj4gKwlvZl9kbWFfY29uZmlndXJlKHByaXYtPmRtYV9kZXYsIE5VTEwpOwo+ICsjZW5kaWYKPiAr CXByX2RlYnVnKCJwcml2ICVwXG4iLCBwcml2KTsKPiArCj4gKwlyZXR1cm4gcHJpdjsKPiArfQo+ ICtFWFBPUlRfU1lNQk9MKGdudGRldl9hbGxvY19jb250ZXh0KTsKPiArCj4gK3N0YXRpYyBpbnQg Z250ZGV2X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZsaXApCj4gK3sK PiArCXN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdjsKPiArCWludCByZXQgPSAwOwo+ICsKPiArCXBy aXYgPSBnbnRkZXZfYWxsb2NfY29udGV4dChnbnRkZXZfbWlzY2Rldi50aGlzX2RldmljZSk7Cj4g KwlpZiAoSVNfRVJSKHByaXYpKQo+ICsJCXJldHVybiBQVFJfRVJSKHByaXYpOwo+ICsKPiAgIAlp ZiAodXNlX3B0ZW1vZCkgewo+ICAgCQlwcml2LT5tbSA9IGdldF90YXNrX21tKGN1cnJlbnQpOwo+ ICAgCQlpZiAoIXByaXYtPm1tKSB7Cj4gQEAgLTcxNiwyMyArNzYxLDExIEBAIHN0YXRpYyBpbnQg Z250ZGV2X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZsaXApCj4gICAJ fQo+ICAgCj4gICAJaWYgKHJldCkgewo+IC0JCWtmcmVlKHByaXYpOwo+ICsJCWdudGRldl9mcmVl X2NvbnRleHQocHJpdik7Cj4gICAJCXJldHVybiByZXQ7Cj4gICAJfQo+ICAgCj4gICAJZmxpcC0+ cHJpdmF0ZV9kYXRhID0gcHJpdjsKPiAtI2lmZGVmIENPTkZJR19YRU5fR1JBTlRfRE1BX0FMTE9D Cj4gLQlwcml2LT5kbWFfZGV2ID0gZ250ZGV2X21pc2NkZXYudGhpc19kZXZpY2U7Cj4gLQo+IC0J LyoKPiAtCSAqIFRoZSBkZXZpY2UgaXMgbm90IHNwYXduIGZyb20gYSBkZXZpY2UgdHJlZSwgc28g YXJjaF9zZXR1cF9kbWFfb3BzCj4gLQkgKiBpcyBub3QgY2FsbGVkLCB0aHVzIGxlYXZpbmcgdGhl IGRldmljZSB3aXRoIGR1bW15IERNQSBvcHMuCj4gLQkgKiBGaXggdGhpcyBjYWxsIG9mX2RtYV9j b25maWd1cmUoKSB3aXRoIGEgTlVMTCBub2RlIHRvIHNldAo+IC0JICogZGVmYXVsdCBETUEgb3Bz Lgo+IC0JICovCj4gLQlvZl9kbWFfY29uZmlndXJlKHByaXYtPmRtYV9kZXYsIE5VTEwpOwo+IC0j ZW5kaWYKPiAtCXByX2RlYnVnKCJwcml2ICVwXG4iLCBwcml2KTsKPiAgIAo+ICAgCXJldHVybiAw Owo+ICAgfQo+IEBAIC03NDAsMjIgKzc3MywxMSBAQCBzdGF0aWMgaW50IGdudGRldl9vcGVuKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmbGlwKQo+ICAgc3RhdGljIGludCBnbnRk ZXZfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmxpcCkKPiAgIHsK PiAgIAlzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYgPSBmbGlwLT5wcml2YXRlX2RhdGE7Cj4gLQlz dHJ1Y3QgZ3JhbnRfbWFwICptYXA7Cj4gLQo+IC0JcHJfZGVidWcoInByaXYgJXBcbiIsIHByaXYp Owo+IC0KPiAtCW11dGV4X2xvY2soJnByaXYtPmxvY2spOwo+IC0Jd2hpbGUgKCFsaXN0X2VtcHR5 KCZwcml2LT5tYXBzKSkgewo+IC0JCW1hcCA9IGxpc3RfZW50cnkocHJpdi0+bWFwcy5uZXh0LCBz dHJ1Y3QgZ3JhbnRfbWFwLCBuZXh0KTsKPiAtCQlsaXN0X2RlbCgmbWFwLT5uZXh0KTsKPiAtCQln bnRkZXZfcHV0X21hcChOVUxMIC8qIGFscmVhZHkgcmVtb3ZlZCAqLywgbWFwKTsKPiAtCX0KPiAt CVdBUk5fT04oIWxpc3RfZW1wdHkoJnByaXYtPmZyZWVhYmxlX21hcHMpKTsKPiAtCW11dGV4X3Vu bG9jaygmcHJpdi0+bG9jayk7Cj4gICAKPiAgIAlpZiAodXNlX3B0ZW1vZCkKPiAgIAkJbW11X25v dGlmaWVyX3VucmVnaXN0ZXIoJnByaXYtPm1uLCBwcml2LT5tbSk7Cj4gLQlrZnJlZShwcml2KTsK PiArCj4gKwlnbnRkZXZfZnJlZV9jb250ZXh0KHByaXYpOwo+ICAgCXJldHVybiAwOwo+ICAgfQo+ ICAgCj4gQEAgLTEyMTAsNyArMTIzMiw3IEBAIGRtYWJ1Zl9leHBfd2FpdF9vYmpfZ2V0X2J5X2Zk KHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgaW50IGZkKQo+ICAgCXJldHVybiByZXQ7Cj4gICB9 Cj4gICAKPiAtc3RhdGljIGludCBkbWFidWZfZXhwX3dhaXRfcmVsZWFzZWQoc3RydWN0IGdudGRl dl9wcml2ICpwcml2LCBpbnQgZmQsCj4gK2ludCBnbnRkZXZfZG1hYnVmX2V4cF93YWl0X3JlbGVh c2VkKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgaW50IGZkLAo+ICAgCQkJCSAgICBpbnQgd2Fp dF90b19tcykKPiAgIHsKPiAgIAlzdHJ1Y3QgeGVuX2RtYWJ1ZiAqeGVuX2RtYWJ1ZjsKPiBAQCAt MTI0Miw2ICsxMjY0LDcgQEAgc3RhdGljIGludCBkbWFidWZfZXhwX3dhaXRfcmVsZWFzZWQoc3Ry dWN0IGdudGRldl9wcml2ICpwcml2LCBpbnQgZmQsCj4gICAJZG1hYnVmX2V4cF93YWl0X29ial9m cmVlKHByaXYsIG9iaik7Cj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiArRVhQT1JUX1NZTUJPTChn bnRkZXZfZG1hYnVmX2V4cF93YWl0X3JlbGVhc2VkKTsKPiAgIAo+ICAgLyogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICov Cj4gICAvKiBETUEgYnVmZmVyIGV4cG9ydCBzdXBwb3J0LiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKi8KPiBAQCAtMTUxMSw3ICsxNTM0LDcgQEAgZG1hYnVmX2V4cF9h bGxvY19iYWNraW5nX3N0b3JhZ2Uoc3RydWN0IGdudGRldl9wcml2ICpwcml2LCBpbnQgZG1hYnVm X2ZsYWdzLAo+ICAgCXJldHVybiBtYXA7Cj4gICB9Cj4gICAKPiAtc3RhdGljIGludCBkbWFidWZf ZXhwX2Zyb21fcmVmcyhzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIGludCBmbGFncywKPiAraW50 IGdudGRldl9kbWFidWZfZXhwX2Zyb21fcmVmcyhzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIGlu dCBmbGFncywKPiAgIAkJCQlpbnQgY291bnQsIHUzMiBkb21pZCwgdTMyICpyZWZzLCB1MzIgKmZk KQo+ICAgewo+ICAgCXN0cnVjdCBncmFudF9tYXAgKm1hcDsKPiBAQCAtMTU1Nyw2ICsxNTgwLDcg QEAgc3RhdGljIGludCBkbWFidWZfZXhwX2Zyb21fcmVmcyhzdHJ1Y3QgZ250ZGV2X3ByaXYgKnBy aXYsIGludCBmbGFncywKPiAgIAlnbnRkZXZfcmVtb3ZlX21hcChwcml2LCBtYXApOwo+ICAgCXJl dHVybiByZXQ7Cj4gICB9Cj4gK0VYUE9SVF9TWU1CT0woZ250ZGV2X2RtYWJ1Zl9leHBfZnJvbV9y ZWZzKTsKPiAgIAo+ICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCj4gICAvKiBETUEgYnVmZmVyIGltcG9ydCBz dXBwb3J0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KPiBAQCAt MTY0Niw4ICsxNjcwLDkgQEAgc3RhdGljIHN0cnVjdCB4ZW5fZG1hYnVmICpkbWFidWZfaW1wX2Fs bG9jX3N0b3JhZ2UoaW50IGNvdW50KQo+ICAgCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICAg fQo+ICAgCj4gLXN0YXRpYyBzdHJ1Y3QgeGVuX2RtYWJ1ZiAqCj4gLWRtYWJ1Zl9pbXBfdG9fcmVm cyhzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIGludCBmZCwgaW50IGNvdW50LCBpbnQgZG9taWQp Cj4gK3N0cnVjdCB4ZW5fZG1hYnVmICoKPiArZ250ZGV2X2RtYWJ1Zl9pbXBfdG9fcmVmcyhzdHJ1 Y3QgZ250ZGV2X3ByaXYgKnByaXYsIGludCBmZCwKPiArCQkJICBpbnQgY291bnQsIGludCBkb21p ZCkKPiAgIHsKPiAgIAlzdHJ1Y3QgeGVuX2RtYWJ1ZiAqeGVuX2RtYWJ1ZiwgKnJldDsKPiAgIAlz dHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZjsKPiBAQCAtMTczNiw2ICsxNzYxLDE2IEBAIGRtYWJ1Zl9p bXBfdG9fcmVmcyhzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIGludCBmZCwgaW50IGNvdW50LCBp bnQgZG9taWQpCj4gICAJZG1hX2J1Zl9wdXQoZG1hX2J1Zik7Cj4gICAJcmV0dXJuIHJldDsKPiAg IH0KPiArRVhQT1JUX1NZTUJPTChnbnRkZXZfZG1hYnVmX2ltcF90b19yZWZzKTsKPiArCj4gK3Uz MiAqZ250ZGV2X2RtYWJ1Zl9pbXBfZ2V0X3JlZnMoc3RydWN0IHhlbl9kbWFidWYgKnhlbl9kbWFi dWYpCj4gK3sKPiArCWlmICh4ZW5fZG1hYnVmKQo+ICsJCXJldHVybiB4ZW5fZG1hYnVmLT51Lmlt cC5yZWZzOwo+ICsKPiArCXJldHVybiBOVUxMOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZ250ZGV2 X2RtYWJ1Zl9pbXBfZ2V0X3JlZnMpOwo+ICAgCj4gICAvKgo+ICAgICogRmluZCB0aGUgaHlwZXIg ZG1hLWJ1ZiBieSBpdHMgZmlsZSBkZXNjcmlwdG9yIGFuZCByZW1vdmUKPiBAQCAtMTc1OSw3ICsx Nzk0LDcgQEAgZG1hYnVmX2ltcF9maW5kX3VubGluayhzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYs IGludCBmZCkKPiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+ICAgCj4gLXN0YXRpYyBpbnQgZG1hYnVm X2ltcF9yZWxlYXNlKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgdTMyIGZkKQo+ICtpbnQgZ250 ZGV2X2RtYWJ1Zl9pbXBfcmVsZWFzZShzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIHUzMiBmZCkK PiAgIHsKPiAgIAlzdHJ1Y3QgeGVuX2RtYWJ1ZiAqeGVuX2RtYWJ1ZjsKPiAgIAlzdHJ1Y3QgZG1h X2J1Zl9hdHRhY2htZW50ICphdHRhY2g7Cj4gQEAgLTE3ODUsNiArMTgyMCw3IEBAIHN0YXRpYyBp bnQgZG1hYnVmX2ltcF9yZWxlYXNlKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgdTMyIGZkKQo+ ICAgCWRtYWJ1Zl9pbXBfZnJlZV9zdG9yYWdlKHhlbl9kbWFidWYpOwo+ICAgCXJldHVybiAwOwo+ ICAgfQo+ICtFWFBPUlRfU1lNQk9MKGdudGRldl9kbWFidWZfaW1wX3JlbGVhc2UpOwo+ICAgCj4g ICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gKi8KPiAgIC8qIERNQSBidWZmZXIgSU9DVEwgc3VwcG9ydC4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwo+IEBAIC0xODEwLDggKzE4NDYs OCBAQCBnbnRkZXZfaW9jdGxfZG1hYnVmX2V4cF9mcm9tX3JlZnMoc3RydWN0IGdudGRldl9wcml2 ICpwcml2LAo+ICAgCQlnb3RvIG91dDsKPiAgIAl9Cj4gICAKPiAtCXJldCA9IGRtYWJ1Zl9leHBf ZnJvbV9yZWZzKHByaXYsIG9wLmZsYWdzLCBvcC5jb3VudCwKPiAtCQkJCSAgIG9wLmRvbWlkLCBy ZWZzLCAmb3AuZmQpOwo+ICsJcmV0ID0gZ250ZGV2X2RtYWJ1Zl9leHBfZnJvbV9yZWZzKHByaXYs IG9wLmZsYWdzLCBvcC5jb3VudCwKPiArCQkJCQkgIG9wLmRvbWlkLCByZWZzLCAmb3AuZmQpOwo+ ICAgCWlmIChyZXQpCj4gICAJCWdvdG8gb3V0Owo+ICAgCj4gQEAgLTE4MzIsNyArMTg2OCw3IEBA IGdudGRldl9pb2N0bF9kbWFidWZfZXhwX3dhaXRfcmVsZWFzZWQoc3RydWN0IGdudGRldl9wcml2 ICpwcml2LAo+ICAgCWlmIChjb3B5X2Zyb21fdXNlcigmb3AsIHUsIHNpemVvZihvcCkpICE9IDAp Cj4gICAJCXJldHVybiAtRUZBVUxUOwo+ICAgCj4gLQlyZXR1cm4gZG1hYnVmX2V4cF93YWl0X3Jl bGVhc2VkKHByaXYsIG9wLmZkLCBvcC53YWl0X3RvX21zKTsKPiArCXJldHVybiBnbnRkZXZfZG1h YnVmX2V4cF93YWl0X3JlbGVhc2VkKHByaXYsIG9wLmZkLCBvcC53YWl0X3RvX21zKTsKPiAgIH0K PiAgIAo+ICAgc3RhdGljIGxvbmcKPiBAQCAtMTg0Niw3ICsxODgyLDcgQEAgZ250ZGV2X2lvY3Rs X2RtYWJ1Zl9pbXBfdG9fcmVmcyhzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsCj4gICAJaWYgKGNv cHlfZnJvbV91c2VyKCZvcCwgdSwgc2l6ZW9mKG9wKSkgIT0gMCkKPiAgIAkJcmV0dXJuIC1FRkFV TFQ7Cj4gICAKPiAtCXhlbl9kbWFidWYgPSBkbWFidWZfaW1wX3RvX3JlZnMocHJpdiwgb3AuZmQs IG9wLmNvdW50LCBvcC5kb21pZCk7Cj4gKwl4ZW5fZG1hYnVmID0gZ250ZGV2X2RtYWJ1Zl9pbXBf dG9fcmVmcyhwcml2LCBvcC5mZCwgb3AuY291bnQsIG9wLmRvbWlkKTsKPiAgIAlpZiAoSVNfRVJS KHhlbl9kbWFidWYpKQo+ICAgCQlyZXR1cm4gUFRSX0VSUih4ZW5fZG1hYnVmKTsKPiAgIAo+IEBA IC0xODU4LDcgKzE4OTQsNyBAQCBnbnRkZXZfaW9jdGxfZG1hYnVmX2ltcF90b19yZWZzKHN0cnVj dCBnbnRkZXZfcHJpdiAqcHJpdiwKPiAgIAlyZXR1cm4gMDsKPiAgIAo+ICAgb3V0X3JlbGVhc2U6 Cj4gLQlkbWFidWZfaW1wX3JlbGVhc2UocHJpdiwgb3AuZmQpOwo+ICsJZ250ZGV2X2RtYWJ1Zl9p bXBfcmVsZWFzZShwcml2LCBvcC5mZCk7Cj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiAgIAo+IEBA IC0xODcxLDcgKzE5MDcsNyBAQCBnbnRkZXZfaW9jdGxfZG1hYnVmX2ltcF9yZWxlYXNlKHN0cnVj dCBnbnRkZXZfcHJpdiAqcHJpdiwKPiAgIAlpZiAoY29weV9mcm9tX3VzZXIoJm9wLCB1LCBzaXpl b2Yob3ApKSAhPSAwKQo+ICAgCQlyZXR1cm4gLUVGQVVMVDsKPiAgIAo+IC0JcmV0dXJuIGRtYWJ1 Zl9pbXBfcmVsZWFzZShwcml2LCBvcC5mZCk7Cj4gKwlyZXR1cm4gZ250ZGV2X2RtYWJ1Zl9pbXBf cmVsZWFzZShwcml2LCBvcC5mZCk7Cj4gICB9Cj4gICAjZW5kaWYKPiAgIAo+IGRpZmYgLS1naXQg YS9pbmNsdWRlL3hlbi9ncmFudF9kZXYuaCBiL2luY2x1ZGUveGVuL2dyYW50X2Rldi5oCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLmZhY2NjOTE3MDE3NAo+IC0t LSAvZGV2L251bGwKPiArKysgYi9pbmNsdWRlL3hlbi9ncmFudF9kZXYuaAo+IEBAIC0wLDAgKzEs MzcgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUICovCj4g Kwo+ICsvKgo+ICsgKiBHcmFudCBkZXZpY2Uga2VybmVsIEFQSQo+ICsgKgo+ICsgKiBDb3B5cmln aHQgKEMpIDIwMTggRVBBTSBTeXN0ZW1zIEluYy4KPiArICoKPiArICogQXV0aG9yOiBPbGVrc2Fu ZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+Cj4gKyAq Lwo+ICsKPiArI2lmbmRlZiBfR1JBTlRfREVWX0gKPiArI2RlZmluZSBfR1JBTlRfREVWX0gKPiAr Cj4gKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ICsKPiArc3RydWN0IGRldmljZTsKPiArc3Ry dWN0IGdudGRldl9wcml2Owo+ICsjaWZkZWYgQ09ORklHX1hFTl9HTlRERVZfRE1BQlVGCj4gK3N0 cnVjdCB4ZW5fZG1hYnVmOwo+ICsjZW5kaWYKPiArCj4gK3N0cnVjdCBnbnRkZXZfcHJpdiAqZ250 ZGV2X2FsbG9jX2NvbnRleHQoc3RydWN0IGRldmljZSAqZGV2KTsKPiArdm9pZCBnbnRkZXZfZnJl ZV9jb250ZXh0KHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdik7Cj4gKwo+ICsjaWZkZWYgQ09ORklH X1hFTl9HTlRERVZfRE1BQlVGCj4gK2ludCBnbnRkZXZfZG1hYnVmX2V4cF9mcm9tX3JlZnMoc3Ry dWN0IGdudGRldl9wcml2ICpwcml2LCBpbnQgZmxhZ3MsCj4gKwkJCQlpbnQgY291bnQsIHUzMiBk b21pZCwgdTMyICpyZWZzLCB1MzIgKmZkKTsKPiAraW50IGdudGRldl9kbWFidWZfZXhwX3dhaXRf cmVsZWFzZWQoc3RydWN0IGdudGRldl9wcml2ICpwcml2LCBpbnQgZmQsCj4gKwkJCQkgICAgaW50 IHdhaXRfdG9fbXMpOwo+ICsKPiArc3RydWN0IHhlbl9kbWFidWYgKmdudGRldl9kbWFidWZfaW1w X3RvX3JlZnMoc3RydWN0IGdudGRldl9wcml2ICpwcml2LAo+ICsJCQkJCSAgICAgaW50IGZkLCBp bnQgY291bnQsIGludCBkb21pZCk7Cj4gK3UzMiAqZ250ZGV2X2RtYWJ1Zl9pbXBfZ2V0X3JlZnMo c3RydWN0IHhlbl9kbWFidWYgKnhlbl9kbWFidWYpOwo+ICtpbnQgZ250ZGV2X2RtYWJ1Zl9pbXBf cmVsZWFzZShzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIHUzMiBmZCk7Cj4gKyNlbmRpZgo+ICsK PiArI2VuZGlmCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==