From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [PATCH 1/3] drm: Add new DRM_IOCTL_MODE_GETPLANE2 Date: Thu, 12 Jan 2017 12:23:16 +0200 Message-ID: <20170112102316.GT31595@intel.com> References: <20170112005118.19146-1-ben@bwidawsk.net> <20170112005118.19146-2-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170112005118.19146-2-ben@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ben Widawsky Cc: Intel GFX , DRI Development List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKYW4gMTEsIDIwMTcgYXQgMDQ6NTE6MTZQTSAtMDgwMCwgQmVuIFdpZGF3c2t5IHdy b3RlOgo+IE9yaWdpbmFsbHkgYmFzZWQgb2ZmIG9mIGEgcGF0Y2ggYnkgS3Jpc3RpYW4uCj4gCj4g VGhpcyBuZXcgaW9jdGwgZXh0ZW5kcyBEUk1fSU9DVExfTU9ERV9HRVRQTEFORSwgYnkgcmV0dXJu aW5nIGluZm9ybWF0aW9uCj4gYWJvdXQgdGhlIG1vZGlmaWVycyB0aGF0IHdpbGwgd29yayB3aXRo IGVhY2ggZm9ybWF0Lgo+IAo+IEl0J3MgbW9kaWZpZWQgZnJvbSBLcmlzdGlhbidzIHBhdGNoIGlu IHRoYXQgdGhlIG1vZGlmaWVycyBhbmQgZm9ybWF0cwo+IGFyZSBzZXR1cCBieSB0aGUgZHJpdmVy LCBhbmQgdGhlbiBhIGNhbGxiYWNrIGlzIHVzZWQgdG8gY3JlYXRlIHRoZQo+IGZvcm1hdCBsaXN0 LiBUaGUgTE9DIHdhcyBlbm91Z2ggZGlmZmVyZW5jZSB0aGF0IEkgZG9uJ3QgdGhpbmsgaXQgbWFk ZQo+IHNlbnNlIHRvIGxlYXZlIGhpcyBhdXRob3JzaGlwLCBidXQgdGhlIG5ldyBVQUJJIHdhcyBw cmltYXJpbHkgaGlzIGlkZWEuCj4gCj4gQWRkaXRpb25hbGx5LCBJIGhpdCBhIGNvdXBsZSBvZiBk cml2ZXJzIHdoaWNoIEtyaXN0aWFuIG1pc3NlZCB1cGRhdGluZy4KPiAKPiBJdCBhbHNvIGNvbnRh aW5zIGEgY2hhbmdlIHJlcXVlc3RlZCBieSBEYW5pZWwgdG8gbWFrZSB0aGUgbW9kaWZpZXJzCj4g YXJyYXkgYSBzZW50aW5lbCBiYXNlZCBzdHJ1Y3R1cmUgaW5zdGVhZCBvZiBhIHNpemVkIG9uZS4g VXBvbiBkaXNjdXNzaW9uCj4gb24gSVJDLCBpdCB3YXMgZGV0ZXJtaW5lZCB0aGF0IGhhdmluZyBh biBpbnZhbGlkIG1vZGlmaWVyIG1pZ2h0IG1ha2UKPiBzZW5zZSBpbiBnZW5lcmFsIGFzIHdlbGwu Cj4gCj4gUmVmZXJlbmNlczogaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wYXRjaC85NDgy MzkzLwo+IFNpZ25lZC1vZmYtYnk6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KPiAt LS0KPHNuaXA+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNldF9oZWxw ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNldF9oZWxwZXIuYwo+IGluZGV4IDJiMzM4 MjVmMmY5My4uOWNiMWVlZGUwYjRkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f bW9kZXNldF9oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNldF9oZWxw ZXIuYwo+IEBAIC0xMjQsNiArMTI0LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmNyZWF0 ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJCQkgICAgICAgJmRy bV9wcmltYXJ5X2hlbHBlcl9mdW5jcywKPiAgCQkJCSAgICAgICBzYWZlX21vZGVzZXRfZm9ybWF0 cywKPiAgCQkJCSAgICAgICBBUlJBWV9TSVpFKHNhZmVfbW9kZXNldF9mb3JtYXRzKSwKPiArCQkJ CSAgICAgICBOVUxMLAo+ICAJCQkJICAgICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlksIE5VTEwp Owo+ICAJaWYgKHJldCkgewo+ICAJCWtmcmVlKHByaW1hcnkpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKPiBp bmRleCA3YjcyNzVmMGMyZGYuLjJkNGZhZDVkYjhlZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKPiBA QCAtNzAsNiArNzAsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGRybV9udW1fcGxhbmVzKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gICAqIEBmdW5jczogY2FsbGJhY2tzIGZvciB0aGUgbmV3IHBs YW5lCj4gICAqIEBmb3JtYXRzOiBhcnJheSBvZiBzdXBwb3J0ZWQgZm9ybWF0cyAoRFJNX0ZPUk1B VFxfXCopCj4gICAqIEBmb3JtYXRfY291bnQ6IG51bWJlciBvZiBlbGVtZW50cyBpbiBAZm9ybWF0 cwo+ICsgKiBAZm9ybWF0X21vZGlmaWVyczogYXJyYXkgb2Ygc3RydWN0IGRybV9mb3JtYXQgbW9k aWZpZXJzIHRlcm1pbmF0ZWQgYnkgSU5WQUxJRAo+ICAgKiBAdHlwZTogdHlwZSBvZiBwbGFuZSAo b3ZlcmxheSwgcHJpbWFyeSwgY3Vyc29yKQo+ICAgKiBAbmFtZTogcHJpbnRmIHN0eWxlIGZvcm1h dCBzdHJpbmcgZm9yIHRoZSBwbGFuZSBuYW1lLCBvciBOVUxMIGZvciBkZWZhdWx0IG5hbWUKPiAg ICoKPiBAQCAtODIsMTAgKzgzLDEyIEBAIGludCBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJCSAgICAg dWludDMyX3QgcG9zc2libGVfY3J0Y3MsCj4gIAkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9wbGFu ZV9mdW5jcyAqZnVuY3MsCj4gIAkJCSAgICAgY29uc3QgdWludDMyX3QgKmZvcm1hdHMsIHVuc2ln bmVkIGludCBmb3JtYXRfY291bnQsCj4gKwkJCSAgICAgY29uc3QgdWludDY0X3QgKmZvcm1hdF9t b2RpZmllcnMsCj4gIAkJCSAgICAgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlLAo+ICAJCQkgICAg IGNvbnN0IGNoYXIgKm5hbWUsIC4uLikKPiAgewo+ICAJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAq Y29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7Cj4gKwl1bnNpZ25lZCBpbnQgZm9ybWF0X21vZGlm aWVyX2NvdW50ID0gMDsKPiAgCWludCByZXQ7Cj4gIAo+ICAJcmV0ID0gZHJtX21vZGVfb2JqZWN0 X2dldChkZXYsICZwbGFuZS0+YmFzZSwgRFJNX01PREVfT0JKRUNUX1BMQU5FKTsKPiBAQCAtMTA1 LDYgKzEwOCwyOCBAQCBpbnQgZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCXJldHVybiAtRU5PTUVNOwo+ ICAJfQo+ICAKPiArCWlmIChmb3JtYXRfbW9kaWZpZXJzKSB7Cj4gKwkJY29uc3QgdWludDY0X3Qg KnRlbXBfbW9kaWZpZXJzID0gZm9ybWF0X21vZGlmaWVyczsKPiArCQl3aGlsZSAoKnRlbXBfbW9k aWZpZXJzKysgIT0gRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRCkKPiArCQkJZm9ybWF0X21vZGlmaWVy X2NvdW50Kys7Cj4gKwl9Cj4gKwo+ICsJaWYgKGZvcm1hdF9tb2RpZmllcl9jb3VudCkKPiArCQlE Uk1fREVCVUdfS01TKCIlZCBmb3JtYXQgbW9kaWZpZXJzIGFkZGVkIHRvIGxpc3RcbiIsCj4gKwkJ CSAgICAgIGZvcm1hdF9tb2RpZmllcl9jb3VudCk7CgpuaXQ6IE5vdCBzdXJlIHRoaXMgaXMgcHJp bnRrIHdvcnRoeS4KCj4gKwo+ICsJcGxhbmUtPm1vZGlmaWVyX2NvdW50ID0gZm9ybWF0X21vZGlm aWVyX2NvdW50Owo+ICsJcGxhbmUtPm1vZGlmaWVycyA9IGttYWxsb2NfYXJyYXkoZm9ybWF0X21v ZGlmaWVyX2NvdW50LAo+ICsJCQkJCSBzaXplb2YoZm9ybWF0X21vZGlmaWVyc1swXSksCj4gKwkJ CQkJIEdGUF9LRVJORUwpOwo+ICsKPiArCWlmIChmb3JtYXRfbW9kaWZpZXJfY291bnQgJiYgIXBs YW5lLT5tb2RpZmllcnMpIHsKPiArCQlEUk1fREVCVUdfS01TKCJvdXQgb2YgbWVtb3J5IHdoZW4g YWxsb2NhdGluZyBwbGFuZVxuIik7Cj4gKwkJa2ZyZWUocGxhbmUtPmZvcm1hdF90eXBlcyk7Cj4g KwkJZHJtX21vZGVfb2JqZWN0X3VucmVnaXN0ZXIoZGV2LCAmcGxhbmUtPmJhc2UpOwo+ICsJCXJl dHVybiAtRU5PTUVNOwo+ICsJfQo+ICsKPiAgCWlmIChuYW1lKSB7Cj4gIAkJdmFfbGlzdCBhcDsK PiAgCj4gQEAgLTExNywxMiArMTQyLDE1IEBAIGludCBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAl9Cj4g IAlpZiAoIXBsYW5lLT5uYW1lKSB7Cj4gIAkJa2ZyZWUocGxhbmUtPmZvcm1hdF90eXBlcyk7Cj4g KwkJa2ZyZWUocGxhbmUtPm1vZGlmaWVycyk7Cj4gIAkJZHJtX21vZGVfb2JqZWN0X3VucmVnaXN0 ZXIoZGV2LCAmcGxhbmUtPmJhc2UpOwo+ICAJCXJldHVybiAtRU5PTUVNOwo+ICAJfQo+ICAKPiAg CW1lbWNweShwbGFuZS0+Zm9ybWF0X3R5cGVzLCBmb3JtYXRzLCBmb3JtYXRfY291bnQgKiBzaXpl b2YodWludDMyX3QpKTsKPiAgCXBsYW5lLT5mb3JtYXRfY291bnQgPSBmb3JtYXRfY291bnQ7Cj4g KwltZW1jcHkocGxhbmUtPm1vZGlmaWVycywgZm9ybWF0X21vZGlmaWVycywKPiArCSAgICAgICBm b3JtYXRfbW9kaWZpZXJfY291bnQgKiBzaXplb2YoZm9ybWF0X21vZGlmaWVyc1swXSkpOwoKTG9v a3MgYWxsIHJpZ2h0IHNpbmNlIHdlIGRvIHRoZSBzYW1lIGZvciBmb3JtYXRzIGFueXdheS4gQnV0 IGl0IGRpZApvY2N1ciB0byBtZSAodHdpY2UgYXQgbGVhc3QpIHRoYXQgYSBrbWVtZHVwX2FycmF5 KCkgbWlnaHQgYSBuaWNlIHRoaW5nCnRvIGhhdmUgZm9yIHRoaW5ncyBsaWtlIHRoaXMuIEJ1dCB0 aGF0J3MgYSBzZXBhcmF0ZSB0b3BpYy4KCj4gIAlwbGFuZS0+cG9zc2libGVfY3J0Y3MgPSBwb3Nz aWJsZV9jcnRjczsKPiAgCXBsYW5lLT50eXBlID0gdHlwZTsKPiAgCj4gQEAgLTIwNSw3ICsyMzMs OCBAQCBpbnQgZHJtX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCj4gIAo+ICAJdHlwZSA9IGlzX3ByaW1hcnkgPyBEUk1fUExBTkVfVFlQ RV9QUklNQVJZIDogRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWTsKPiAgCXJldHVybiBkcm1fdW5pdmVy c2FsX3BsYW5lX2luaXQoZGV2LCBwbGFuZSwgcG9zc2libGVfY3J0Y3MsIGZ1bmNzLAo+IC0JCQkJ CWZvcm1hdHMsIGZvcm1hdF9jb3VudCwgdHlwZSwgTlVMTCk7Cj4gKwkJCQkJZm9ybWF0cywgZm9y bWF0X2NvdW50LAo+ICsJCQkJCU5VTEwsIHR5cGUsIE5VTEwpOwo+ICB9Cj4gIEVYUE9SVF9TWU1C T0woZHJtX3BsYW5lX2luaXQpOwo+ICAKPiBAQCAtMjI0LDYgKzI1Myw3IEBAIHZvaWQgZHJtX3Bs YW5lX2NsZWFudXAoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gIAlkcm1fbW9kZXNldF9sb2Nr X2ZpbmkoJnBsYW5lLT5tdXRleCk7Cj4gIAo+ICAJa2ZyZWUocGxhbmUtPmZvcm1hdF90eXBlcyk7 Cj4gKwlrZnJlZShwbGFuZS0+bW9kaWZpZXJzKTsKPiAgCWRybV9tb2RlX29iamVjdF91bnJlZ2lz dGVyKGRldiwgJnBsYW5lLT5iYXNlKTsKPiAgCj4gIAlCVUdfT04obGlzdF9lbXB0eSgmcGxhbmUt PmhlYWQpKTsKPiBAQCAtMzgwLDEyICs0MTAsMTUgQEAgaW50IGRybV9tb2RlX2dldHBsYW5lX3Jl cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICBpbnQgZHJtX21vZGVfZ2V0 cGxhbmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCQkgICAgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAgewo+IC0Jc3RydWN0IGRybV9tb2RlX2dldF9wbGFu ZSAqcGxhbmVfcmVzcCA9IGRhdGE7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfZ2V0X3BsYW5lMiAqcGxh bmVfcmVzcCA9IGRhdGE7Cj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiAgCXVpbnQzMl90 IF9fdXNlciAqZm9ybWF0X3B0cjsKPiArCXN0cnVjdCBkcm1fZm9ybWF0X21vZGlmaWVyIF9fdXNl ciAqbW9kaWZpZXJfcHRyOwo+ICAKPiAgCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYs IERSSVZFUl9NT0RFU0VUKSkKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiArCWlmIChwbGFuZV9yZXNw LT5mbGFncykKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gIAlwbGFuZSA9IGRybV9wbGFuZV9m aW5kKGRldiwgcGxhbmVfcmVzcC0+cGxhbmVfaWQpOwo+ICAJaWYgKCFwbGFuZSkKPiBAQCAtNDI2 LDYgKzQ1OSwzNiBAQCBpbnQgZHJtX21vZGVfZ2V0cGxhbmUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKPiAgCX0KPiAgCXBsYW5lX3Jlc3AtPmNvdW50X2Zvcm1hdF90eXBlcyA9 IHBsYW5lLT5mb3JtYXRfY291bnQ7Cj4gIAo+ICsJaWYgKHBsYW5lLT5tb2RpZmllcl9jb3VudCAm Jgo+ICsJICAgIHBsYW5lX3Jlc3AtPmNvdW50X2Zvcm1hdF9tb2RpZmllcnMgPj0gcGxhbmUtPm1v ZGlmaWVyX2NvdW50KSB7Cj4gKwkJc3RydWN0IGRybV9mb3JtYXRfbW9kaWZpZXIgbW9kOwo+ICsJ CWludCBpOwo+ICsKPiArCQltb2RpZmllcl9wdHIgPSAoc3RydWN0IGRybV9mb3JtYXRfbW9kaWZp ZXIgX191c2VyICopCj4gKwkJCSh1bnNpZ25lZCBsb25nKXBsYW5lX3Jlc3AtPmZvcm1hdF9tb2Rp Zmllcl9wdHI7CgpEaWRuJ3Qgd2UgaGF2ZSBzb21lIHNvbWV0aGluZ191c2VyX3B0cigpIHRoaW5n PyBIbW0sIEkgZ3Vlc3MgaXQncyBpbiBpOTE1IG9ubHkuCgo+ICsKPiArCQkvKiBCdWlsZCB0aGUg bWFzayBmb3IgZWFjaCBtb2RpZmllciAqLwo+ICsJCWZvciAoaSA9IDA7IGkgPCBwbGFuZS0+bW9k aWZpZXJfY291bnQ7IGkrKykgewo+ICsJCQlpbnQgajsKPiArCQkJbW9kLm1vZGlmaWVyID0gcGxh bmUtPm1vZGlmaWVyc1tpXTsKPiArCQkJZm9yIChqID0gMDsgaiA8IHBsYW5lLT5mb3JtYXRfY291 bnQ7IGorKykgewoKSWYgd2UgZG9uJ3Qgd2FudCB0byB0cnkgYW5kIGRlYWwgd2l0aCBtb3JlIHRo YW4gNjQgZm9ybWF0cywgSSB0aGluayB3ZQpuZWVkIHRvIG1ha2UgZHJtX3VuaXZlcnNhbF9wbGFu ZV9pbml0KCkgV0FSTitiYWlsIGlmIHRoZSBkcml2ZXIKcGFzc2VzIGluIG1vcmUgdGhhbiB0aGF0 LgoKPiArCQkJCWlmIChwbGFuZS0+ZnVuY3MtPmZvcm1hdF9tb2Rfc3VwcG9ydGVkICYmCj4gKwkJ CQkgICAgcGxhbmUtPmZ1bmNzLT5mb3JtYXRfbW9kX3N1cHBvcnRlZChwbGFuZSwKPiArCQkJCQkJ CQkgICAgICAgcGxhbmUtPmZvcm1hdF90eXBlc1tqXSwKPiArCQkJCQkJCQkgICAgICAgcGxhbmUt Pm1vZGlmaWVyc1tpXSkpIHsKPiArCQkJCQltb2QuZm9ybWF0cyB8PSAxIDw8IGo7Cj4gKwkJCQl9 Cj4gKwkJCX0KPiArCj4gKwkJCWlmIChjb3B5X3RvX3VzZXIobW9kaWZpZXJfcHRyLCAmbW9kLCBz aXplb2YobW9kKSkpCj4gKwkJCQlyZXR1cm4gLUVGQVVMVDsKPiArCj4gKwkJCW1vZGlmaWVyX3B0 cisrOwo+ICsJCX0KPiArCX0KPiArCj4gKwlwbGFuZV9yZXNwLT5jb3VudF9mb3JtYXRfbW9kaWZp ZXJzID0gcGxhbmUtPm1vZGlmaWVyX2NvdW50Owo+ICsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmMKPiBpbmRleCAzNWM1ZDk5Mjk2 YjkuLjA0MDZlNzFiMzhlOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3NpbXBs ZV9rbXNfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVs cGVyLmMKPiBAQCAtMTkzLDYgKzE5Myw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX3NpbXBsZV9kaXNw bGF5X3BpcGVfYXR0YWNoX2JyaWRnZSk7Cj4gICAqIEBmdW5jczogY2FsbGJhY2tzIGZvciB0aGUg ZGlzcGxheSBwaXBlIChvcHRpb25hbCkKPiAgICogQGZvcm1hdHM6IGFycmF5IG9mIHN1cHBvcnRl ZCBmb3JtYXRzIChEUk1fRk9STUFUXF9cKikKPiAgICogQGZvcm1hdF9jb3VudDogbnVtYmVyIG9m IGVsZW1lbnRzIGluIEBmb3JtYXRzCj4gKyAqIEBtb2RpZmllcnM6IGFycmF5IG9mIGZvcm1hdHMg bW9kaWZpZXJzCgpAZm9ybWF0X21vZGlmaWVycwoKPiAgICogQGNvbm5lY3RvcjogY29ubmVjdG9y IHRvIGF0dGFjaCBhbmQgcmVnaXN0ZXIgKG9wdGlvbmFsKQo+ICAgKgo+ICAgKiBTZXRzIHVwIGEg ZGlzcGxheSBwaXBlbGluZSB3aGljaCBjb25zaXN0IG9mIGEgcmVhbGx5IHNpbXBsZQo+IEBAIC0y MTMsNiArMjE0LDcgQEAgaW50IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiAgCQkJc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBl LAo+ICAJCQljb25zdCBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3MgKmZ1bmNz LAo+ICAJCQljb25zdCB1aW50MzJfdCAqZm9ybWF0cywgdW5zaWduZWQgaW50IGZvcm1hdF9jb3Vu dCwKPiArCQkJY29uc3QgdWludDY0X3QgKmZvcm1hdF9tb2RpZmllcnMsCj4gIAkJCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciA9ICZwaXBlLT5lbmNvZGVyOwo+IEBAIC0yMjcsNiArMjI5LDcgQEAgaW50IGRybV9zaW1w bGVfZGlzcGxheV9waXBlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXJldCA9IGRy bV91bml2ZXJzYWxfcGxhbmVfaW5pdChkZXYsIHBsYW5lLCAwLAo+ICAJCQkJICAgICAgICZkcm1f c2ltcGxlX2ttc19wbGFuZV9mdW5jcywKPiAgCQkJCSAgICAgICBmb3JtYXRzLCBmb3JtYXRfY291 bnQsCj4gKwkJCQkgICAgICAgZm9ybWF0X21vZGlmaWVycywKPiAgCQkJCSAgICAgICBEUk1fUExB TkVfVFlQRV9QUklNQVJZLCBOVUxMKTsKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPHNu aXA+Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCBiL2luY2x1ZGUv dWFwaS9kcm0vZHJtX21vZGUuaAo+IGluZGV4IGNlN2VmZTJlOGE1ZS4uY2VhM2RlM2FhMzAxIDEw MDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+ICsrKyBiL2luY2x1ZGUv dWFwaS9kcm0vZHJtX21vZGUuaAo+IEBAIC0yMDksNiArMjA5LDMzIEBAIHN0cnVjdCBkcm1fbW9k ZV9nZXRfcGxhbmUgewo+ICAJX191NjQgZm9ybWF0X3R5cGVfcHRyOwo+ICB9Owo+ICAKPiArc3Ry dWN0IGRybV9mb3JtYXRfbW9kaWZpZXIgewo+ICsJLyogQml0bWFzayBvZiBmb3JtYXRzIGluIGdl dF9wbGFuZSBmb3JtYXQgbGlzdCB0aGlzIGluZm8KPiArCSAqIGFwcGxpZXMgdG8uICovCj4gKwl1 aW50NjRfdCBmb3JtYXRzOwo+ICsKPiArCS8qIFRoaXMgbW9kaWZpZXIgY2FuIGJlIHVzZWQgd2l0 aCB0aGUgZm9ybWF0IGZvciB0aGlzIHBsYW5lLiAqLwo+ICsJdWludDY0X3QgbW9kaWZpZXI7Cj4g K307Cj4gKwo+ICtzdHJ1Y3QgZHJtX21vZGVfZ2V0X3BsYW5lMiB7Cj4gKwlfX3UzMiBwbGFuZV9p ZDsKPiArCj4gKwlfX3UzMiBjcnRjX2lkOwo+ICsJX191MzIgZmJfaWQ7Cj4gKwo+ICsJX191MzIg cG9zc2libGVfY3J0Y3M7Cj4gKwlfX3UzMiBnYW1tYV9zaXplOwo+ICsKPiArCV9fdTMyIGNvdW50 X2Zvcm1hdF90eXBlczsKPiArCV9fdTY0IGZvcm1hdF90eXBlX3B0cjsKPiArCj4gKwkvKiBOZXcg aW4gdjIgKi8KPiArCV9fdTMyIGNvdW50X2Zvcm1hdF9tb2RpZmllcnM7Cj4gKwlfX3UzMiBmbGFn czsKCm9jZCBpbmR1Y2VkIGlkZWE6IE1heWJlIHB1dCBmbGFncyBiZWZvcmUgdGhlIGNvdW50PwoK PiArCV9fdTY0IGZvcm1hdF9tb2RpZmllcl9wdHI7Cj4gK307Cj4gKwo+ICBzdHJ1Y3QgZHJtX21v ZGVfZ2V0X3BsYW5lX3JlcyB7Cj4gIAlfX3U2NCBwbGFuZV9pZF9wdHI7Cj4gIAlfX3UzMiBjb3Vu dF9wbGFuZXM7CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK