From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH 49/59] drm/i915: Update intel_ring_begin() to take a request structure Date: Tue, 31 Mar 2015 18:04:27 +0100 Message-ID: <551AD39B.8020501@intel.com> References: <1426768264-16996-1-git-send-email-John.C.Harrison@Intel.com> <1426768264-16996-50-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id BD1026E17E for ; Tue, 31 Mar 2015 10:05:29 -0700 (PDT) In-Reply-To: <1426768264-16996-50-git-send-email-John.C.Harrison@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "John.C.Harrison@Intel.com" , "Intel-GFX@Lists.FreeDesktop.Org" List-Id: intel-gfx@lists.freedesktop.org T24gMTkvMDMvMjAxNSAxMjozMCwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gTm93IHRo YXQgZXZlcnl0aGluZyBhYm92ZSBoYXMgYmVlbiBjb252ZXJ0ZWQgdG8gdXNlIHJlcXVlc3RzLCBp bnRlbF9yaW5nX2JlZ2luKCkKPiBjYW4gYmUgdXBkYXRlZCB0byB0YWtlIGEgcmVxdWVzdCBpbnN0 ZWFkIG9mIGEgcmluZy4gVGhpcyBhbHNvIG1lYW5zIHRoYXQgaXQgbm8KPiBsb25nZXIgbmVlZHMg dG8gbGF6aWx5IGFsbG9jYXRlIGEgcmVxdWVzdCBpZiBuby1vbmUgaGFwcGVucyB0byBoYXZlIGRv bmUgaXQKPiBlYXJsaWVyLgo+Cj4gRm9yOiBWSVotNTExNQo+IFNpZ25lZC1vZmYtYnk6IEpvaG4g SGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgfCAgICAyICstCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgfCAgICAyICstCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAgICA4ICstLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgIHwgICAgNiArLS0KPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICB8ICAgMTAgKystLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jICAgICAgIHwgICAgOCArLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAgICB8ICAgNzQgKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oICAgIHwgICAgMiArLQo+ICAgOCBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCA1 NyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDczMDQyOTAu LmIwNDc2OTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtNDcxMSw3ICs0NzEx LDcgQEAgaW50IGk5MTVfZ2VtX2wzX3JlbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLCBpbnQgc2xpY2UpCj4gICAJaWYgKCFIQVNfTDNfRFBGKGRldikgfHwgIXJlbWFwX2luZm8p Cj4gICAJCXJldHVybiAwOwo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIEdFTjdf TDNMT0dfU0laRSAvIDQgKiAzKTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCBHRU43 X0wzTE9HX1NJWkUgLyA0ICogMyk7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCAyYzk0Yzg4Li4z NjllNThkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRl eHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IEBA IC01MDcsNyArNTA3LDcgQEAgbWlfc2V0X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsIHUzMiBod19mbGFncykKPiAgIAlpZiAoSU5URUxfSU5GTyhyaW5nLT5kZXYpLT5n ZW4gPj0gNykKPiAgIAkJbGVuICs9IDIgKyAobnVtX3JpbmdzID8gNCpudW1fcmluZ3MgKyAyIDog MCk7Cj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgbGVuKTsKPiArCXJldCA9IGlu dGVsX3JpbmdfYmVnaW4ocmVxLCBsZW4pOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7 Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gaW5kZXgg Y2IyNGNhNy4uOTM0NWRiOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9leGVjYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9l eGVjYnVmZmVyLmMKPiBAQCAtMTA3Niw3ICsxMDc2LDcgQEAgaTkxNV9yZXNldF9nZW43X3NvbF9v ZmZzZXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCXJldHVybiAtRUlOVkFMOwo+ICAg CX0KPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCA0ICogMyk7Cj4gKwlyZXQgPSBp bnRlbF9yaW5nX2JlZ2luKHJlcSwgNCAqIDMpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiBy ZXQ7Cj4KPiBAQCAtMTEwNyw3ICsxMTA3LDcgQEAgaTkxNV9lbWl0X2JveChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAl9Cj4KPiAgIAlpZiAoSU5URUxfSU5GTyhyaW5nLT5k ZXYpLT5nZW4gPj0gNCkgewo+IC0JCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgNCk7Cj4g KwkJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDQpOwo+ICAgCQlpZiAocmV0KQo+ICAgCQkJ cmV0dXJuIHJldDsKPgo+IEBAIC0xMTE2LDcgKzExMTYsNyBAQCBpOTE1X2VtaXRfYm94KHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQlpbnRlbF9yaW5nX2VtaXQocmluZywg KChib3gtPngyIC0gMSkgJiAweGZmZmYpIHwgKGJveC0+eTIgLSAxKSA8PCAxNik7Cj4gICAJCWlu dGVsX3JpbmdfZW1pdChyaW5nLCBEUjQpOwo+ICAgCX0gZWxzZSB7Cj4gLQkJcmV0ID0gaW50ZWxf cmluZ19iZWdpbihyaW5nLCA2KTsKPiArCQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNik7 Cj4gICAJCWlmIChyZXQpCj4gICAJCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTEyODcsNyArMTI4Nyw3 IEBAIGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVy X3BhcmFtcyAqcGFyYW1zLAo+Cj4gICAJaWYgKHJpbmcgPT0gJmRldl9wcml2LT5yaW5nW1JDU10g JiYKPiAgIAkJCWluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2Rl KSB7Cj4gLQkJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCA0KTsKPiArCQlyZXQgPSBpbnRl bF9yaW5nX2JlZ2luKHBhcmFtcy0+cmVxdWVzdCwgNCk7Cj4gICAJCWlmIChyZXQpCj4gICAJCQln b3RvIGVycm9yOwo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBpbmRleCA1ODIy NDI5Li43YjY1NmM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBAQCAt MzgyLDcgKzM4Miw3IEBAIHN0YXRpYyBpbnQgZ2VuOF93cml0ZV9wZHAoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEsIHVuc2lnbmVkIGVudHJ5LAo+Cj4gICAJQlVHX09OKGVudHJ5ID49 IDQpOwo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDYpOwo+ICsJcmV0ID0gaW50 ZWxfcmluZ19iZWdpbihyZXEsIDYpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4K PiBAQCAtODg5LDcgKzg4OSw3IEBAIHN0YXRpYyBpbnQgaHN3X21tX3N3aXRjaChzdHJ1Y3QgaTkx NV9od19wcGd0dCAqcHBndHQsCj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IC0J cmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCA2KTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVn aW4ocmVxLCA2KTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTkyNiw3 ICs5MjYsNyBAQCBzdGF0aWMgaW50IGdlbjdfbW1fc3dpdGNoKHN0cnVjdCBpOTE1X2h3X3BwZ3R0 ICpwcGd0dCwKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gLQlyZXQgPSBpbnRl bF9yaW5nX2JlZ2luKHJpbmcsIDYpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDYp Owo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gaW5kZXggMjc3YzczYS4uNjY1ZThjYyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtOTQyNiw3ICs5NDI2LDcgQEAgc3RhdGljIGludCBp bnRlbF9nZW4yX3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAl1MzIgZmxp cF9tYXNrOwo+ICAgCWludCByZXQ7Cj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywg Nik7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNik7Cj4gICAJaWYgKHJldCkKPiAg IAkJcmV0dXJuIHJldDsKPgo+IEBAIC05NDYxLDcgKzk0NjEsNyBAQCBzdGF0aWMgaW50IGludGVs X2dlbjNfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCXUzMiBmbGlwX21h c2s7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCA2KTsK PiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA2KTsKPiAgIAlpZiAocmV0KQo+ICAgCQly ZXR1cm4gcmV0Owo+Cj4gQEAgLTk0OTQsNyArOTQ5NCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2Vu NF9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJdWludDMyX3QgcGYsIHBp cGVzcmM7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCA0 KTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0KTsKPiAgIAlpZiAocmV0KQo+ICAg CQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTk1MzMsNyArOTUzMyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf Z2VuNl9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJdWludDMyX3QgcGYs IHBpcGVzcmM7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5n LCA0KTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0KTsKPiAgIAlpZiAocmV0KQo+ ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTk2MDksNyArOTYwOSw3IEBAIHN0YXRpYyBpbnQgaW50 ZWxfZ2VuN19xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJaWYgKHJldCkK PiAgIAkJcmV0dXJuIHJldDsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCBsZW4p Owo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIGxlbik7Cj4gICAJaWYgKHJldCkKPiAg IAkJcmV0dXJuIHJldDsKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9vdmVybGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKPiBpbmRl eCA5ZWVhMzA4Li4yZWQ0NDIyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX292ZXJsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXku Ywo+IEBAIC0yNDcsNyArMjQ3LDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X29uKHN0cnVj dCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7 Cj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgNCk7Cj4gKwlyZXQgPSBpbnRlbF9y aW5nX2JlZ2luKHJlcSwgNCk7Cj4gICAJaWYgKHJldCkgewo+ICAgCQlpOTE1X2dlbV9yZXF1ZXN0 X2NhbmNlbChyZXEpOwo+ICAgCQlyZXR1cm4gcmV0Owo+IEBAIC0yODgsNyArMjg4LDcgQEAgc3Rh dGljIGludCBpbnRlbF9vdmVybGF5X2NvbnRpbnVlKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVy bGF5LAo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiAtCXJldCA9IGludGVsX3Jp bmdfYmVnaW4ocmluZywgMik7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgMik7Cj4g ICAJaWYgKHJldCkgewo+ICAgCQlpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChyZXEpOwo+ICAgCQly ZXR1cm4gcmV0Owo+IEBAIC0zNTMsNyArMzUzLDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5 X29mZihzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKPiAgIAlpZiAocmV0KQo+ICAgCQly ZXR1cm4gcmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDYpOwo+ICsJcmV0 ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDYpOwo+ICAgCWlmIChyZXQpIHsKPiAgIAkJaTkxNV9n ZW1fcmVxdWVzdF9jYW5jZWwocmVxKTsKPiAgIAkJcmV0dXJuIHJldDsKPiBAQCAtNDI4LDcgKzQy OCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9yZWxlYXNlX29sZF92aWQoc3RydWN0IGlu dGVsX292ZXJsYXkgKm92ZXJsYXkpCj4gICAJCWlmIChyZXQpCj4gICAJCQlyZXR1cm4gcmV0Owo+ Cj4gLQkJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCAyKTsKPiArCQlyZXQgPSBpbnRlbF9y aW5nX2JlZ2luKHJlcSwgMik7Cj4gICAJCWlmIChyZXQpIHsKPiAgIAkJCWk5MTVfZ2VtX3JlcXVl c3RfY2FuY2VsKHJlcSk7Cj4gICAJCQlyZXR1cm4gcmV0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRleCA5Y2JjNGVmLi42ZjE5OGRmIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IEBAIC0xMDYsNyArMTA2LDcgQEAgZ2Vu Ml9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAg IAlpZiAoaW52YWxpZGF0ZV9kb21haW5zICYgSTkxNV9HRU1fRE9NQUlOX1NBTVBMRVIpCj4gICAJ CWNtZCB8PSBNSV9SRUFEX0ZMVVNIOwo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcs IDIpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDIpOwo+ICAgCWlmIChyZXQpCj4g ICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtMTY1LDcgKzE2NSw3IEBAIGdlbjRfcmVuZGVyX3Jpbmdf Zmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJICAgIChJU19HNFgo ZGV2KSB8fCBJU19HRU41KGRldikpKQo+ICAgCQljbWQgfD0gTUlfSU5WQUxJREFURV9JU1A7Cj4K PiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgMik7Cj4gKwlyZXQgPSBpbnRlbF9yaW5n X2JlZ2luKHJlcSwgMik7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IEBAIC0y MjAsOCArMjIwLDcgQEAgaW50ZWxfZW1pdF9wb3N0X3N5bmNfbm9uemVyb19mbHVzaChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIAl1MzIgc2NyYXRjaF9hZGRyID0gcmluZy0+ c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKPiAgIAlpbnQgcmV0Owo+ Cj4gLQo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCA2KTsKPiArCXJldCA9IGludGVs X3JpbmdfYmVnaW4ocmVxLCA2KTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4g QEAgLTIzNCw3ICsyMzMsNyBAQCBpbnRlbF9lbWl0X3Bvc3Rfc3luY19ub256ZXJvX2ZsdXNoKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgCWludGVsX3JpbmdfZW1pdChyaW5n LCBNSV9OT09QKTsKPiAgIAlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7Cj4KPiAtCXJldCA9IGlu dGVsX3JpbmdfYmVnaW4ocmluZywgNik7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwg Nik7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IEBAIC0yODksNyArMjg4LDcg QEAgZ2VuNl9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSwKPiAgIAkJZmxhZ3MgfD0gUElQRV9DT05UUk9MX1FXX1dSSVRFIHwgUElQRV9DT05UUk9MX0NT X1NUQUxMOwo+ICAgCX0KPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCA0KTsKPiAr CXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0KTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1 cm4gcmV0Owo+Cj4gQEAgLTMwOCw3ICszMDcsNyBAQCBnZW43X3JlbmRlcl9yaW5nX2NzX3N0YWxs X3dhKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaW50 ZWxfcmluZ19iZWdpbihyaW5nLCA0KTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0 KTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTM3MSw3ICszNzAsNyBA QCBnZW43X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LAo+ICAgCQlnZW43X3JlbmRlcl9yaW5nX2NzX3N0YWxsX3dhKHJlcSk7Cj4gICAJfQo+Cj4gLQly ZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDQpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdp bihyZXEsIDQpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtMzkxLDcg KzM5MCw3IEBAIGdlbjhfZW1pdF9waXBlX2NvbnRyb2woc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsK PiAgIAlpbnQgcmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDYpOwo+ICsJ cmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDYpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVy biByZXQ7Cj4KPiBAQCAtNzI2LDcgKzcyNSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcmluZ193b3Jr YXJvdW5kc19lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgCWlmIChy ZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywg KHctPmNvdW50ICogMiArIDIpKTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAody0+ Y291bnQgKiAyICsgMikpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBAQCAt MTEzNiw3ICsxMTM1LDcgQEAgc3RhdGljIGludCBnZW44X3Jjc19zaWduYWwoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAo+ICAgCW51bV9kd29yZHMgKz0gKG51bV9y aW5ncy0xKSAqIE1CT1hfVVBEQVRFX0RXT1JEUzsKPiAgICN1bmRlZiBNQk9YX1VQREFURV9EV09S RFMKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihzaWduYWxsZXIsIG51bV9kd29yZHMpOwo+ ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihzaWduYWxsZXJfcmVxLCBudW1fZHdvcmRzKTsKPiAg IAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTExNzcsNyArMTE3Niw3IEBAIHN0 YXRpYyBpbnQgZ2VuOF94Y3Nfc2lnbmFsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqc2ln bmFsbGVyX3JlcSwKPiAgIAludW1fZHdvcmRzICs9IChudW1fcmluZ3MtMSkgKiBNQk9YX1VQREFU RV9EV09SRFM7Cj4gICAjdW5kZWYgTUJPWF9VUERBVEVfRFdPUkRTCj4KPiAtCXJldCA9IGludGVs X3JpbmdfYmVnaW4oc2lnbmFsbGVyLCBudW1fZHdvcmRzKTsKPiArCXJldCA9IGludGVsX3Jpbmdf YmVnaW4oc2lnbmFsbGVyX3JlcSwgbnVtX2R3b3Jkcyk7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0 dXJuIHJldDsKPgo+IEBAIC0xMjE2LDcgKzEyMTUsNyBAQCBzdGF0aWMgaW50IGdlbjZfc2lnbmFs KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3JlcSwKPiAgIAludW1fZHdv cmRzICs9IHJvdW5kX3VwKChudW1fcmluZ3MtMSkgKiBNQk9YX1VQREFURV9EV09SRFMsIDIpOwo+ ICAgI3VuZGVmIE1CT1hfVVBEQVRFX0RXT1JEUwo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2lu KHNpZ25hbGxlciwgbnVtX2R3b3Jkcyk7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHNpZ25h bGxlcl9yZXEsIG51bV9kd29yZHMpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4K PiBAQCAtMTI1NCw3ICsxMjUzLDcgQEAgZ2VuNl9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSkKPiAgIAlpZiAocmluZy0+c2VtYXBob3JlLnNpZ25hbCkKPiAgIAkJ cmV0ID0gcmluZy0+c2VtYXBob3JlLnNpZ25hbChyZXEsIDQpOwo+ICAgCWVsc2UKPiAtCQlyZXQg PSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDQpOwo+ICsJCXJldCA9IGludGVsX3JpbmdfYmVnaW4o cmVxLCA0KTsKPgo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4gQEAgLTEyOTIsNyAr MTI5MSw3IEBAIGdlbjhfcmluZ19zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqd2Fp dGVyX3JlcSwKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB3YWl0ZXIt PmRldi0+ZGV2X3ByaXZhdGU7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19i ZWdpbih3YWl0ZXIsIDQpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbih3YWl0ZXJfcmVxLCA0 KTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTEzMjksNyArMTMyOCw3 IEBAIGdlbjZfcmluZ19zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqd2FpdGVyX3Jl cSwKPgo+ICAgCVdBUk5fT04od2FpdF9tYm94ID09IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFMSUQp Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHdhaXRlciwgNCk7Cj4gKwlyZXQgPSBpbnRl bF9yaW5nX2JlZ2luKHdhaXRlcl9yZXEsIDQpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiBy ZXQ7Cj4KPiBAQCAtMTM3NCw3ICsxMzczLDcgQEAgcGNfcmVuZGVyX2FkZF9yZXF1ZXN0KHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgCSAqIGluY29oZXJlbmNlIGJ5IGZsdXNo aW5nIHRoZSA2IFBJUEVfTk9USUZZIGJ1ZmZlcnMgb3V0IHRvCj4gICAJICogbWVtb3J5IGJlZm9y ZSByZXF1ZXN0aW5nIGFuIGludGVycnVwdC4KPiAgIAkgKi8KPiAtCXJldCA9IGludGVsX3Jpbmdf YmVnaW4ocmluZywgMzIpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDMyKTsKPiAg IAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTE1NTksNyArMTU1OCw3IEBAIGJz ZF9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJaW50IHJldDsKPgo+IC0J cmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCAyKTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVn aW4ocmVxLCAyKTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTE1NzUs NyArMTU3NCw3IEBAIGk5eHhfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEpCj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKPiAg IAlpbnQgcmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDQpOwo+ICsJcmV0 ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDQpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiBy ZXQ7Cj4KPiBAQCAtMTcyMCw3ICsxNzE5LDcgQEAgaTk2NV9kaXNwYXRjaF9leGVjYnVmZmVyKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaW50ZWxfcmlu Z19iZWdpbihyaW5nLCAyKTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAyKTsKPiAg IAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTE3NDgsNyArMTc0Nyw3IEBAIGk4 MzBfZGlzcGF0Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwK PiAgIAl1MzIgY3Nfb2Zmc2V0ID0gcmluZy0+c2NyYXRjaC5ndHRfb2Zmc2V0Owo+ICAgCWludCBy ZXQ7Cj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgNik7Cj4gKwlyZXQgPSBpbnRl bF9yaW5nX2JlZ2luKHJlcSwgNik7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+ IEBAIC0xNzY1LDcgKzE3NjQsNyBAQCBpODMwX2Rpc3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCWlmIChsZW4gPiBJODMwX0JBVENIX0xJTUlU KQo+ICAgCQkJcmV0dXJuIC1FTk9TUEM7Cj4KPiAtCQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJp bmcsIDYgKyAyKTsKPiArCQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNiArIDIpOwo+ICAg CQlpZiAocmV0KQo+ICAgCQkJcmV0dXJuIHJldDsKPgo+IEBAIC0xNzg4LDcgKzE3ODcsNyBAQCBp ODMwX2Rpc3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs Cj4gICAJCW9mZnNldCA9IGNzX29mZnNldDsKPiAgIAl9Cj4KPiAtCXJldCA9IGludGVsX3Jpbmdf YmVnaW4ocmluZywgNCk7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNCk7Cj4gICAJ aWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IEBAIC0xODEwLDcgKzE4MDksNyBAQCBpOTE1 X2Rpc3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4g ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlpbnQgcmV0 Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDIpOwo+ICsJcmV0ID0gaW50ZWxf cmluZ19iZWdpbihyZXEsIDIpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBA QCAtMjI2NCwxMyArMjI2MywxNyBAQCBzdGF0aWMgaW50IF9faW50ZWxfcmluZ19wcmVwYXJlKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGludCBieXRlcykKPiAgIAlyZXR1cm4gMDsKPiAg IH0KPgo+IC1pbnQgaW50ZWxfcmluZ19iZWdpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n LAo+ICtpbnQgaW50ZWxfcmluZ19iZWdpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSwKPiAgIAkJICAgICBpbnQgbnVtX2R3b3JkcykKPiAgIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxOwo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g cmluZy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXY7Cj4gICAJaW50IHJldDsKPgo+ ICsJV0FSTl9PTihyZXEgPT0gTlVMTCk7Cj4gKwlyaW5nID0gcmVxLT5yaW5nOwo+ICsJZGV2X3By aXYgPSByaW5nLT5kZXYtPmRldl9wcml2YXRlOwo+ICsKPiAgIAlyZXQgPSBpOTE1X2dlbV9jaGVj a193ZWRnZSgmZGV2X3ByaXYtPmdwdV9lcnJvciwKPiAgIAkJCQkgICBkZXZfcHJpdi0+bW0uaW50 ZXJydXB0aWJsZSk7Cj4gICAJaWYgKHJldCkKPiBAQCAtMjI4MCwxMSArMjI4Myw2IEBAIGludCBp bnRlbF9yaW5nX2JlZ2luKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJaWYgKHJl dCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IC0JLyogUHJlYWxsb2NhdGUgdGhlIG9sciBiZWZvcmUg dG91Y2hpbmcgdGhlIHJpbmcgKi8KPiAtCXJldCA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Mocmlu ZywgcmluZy0+ZGVmYXVsdF9jb250ZXh0LCAmcmVxKTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0dXJu IHJldDsKPiAtCj4gICAJcmluZy0+YnVmZmVyLT5zcGFjZSAtPSBudW1fZHdvcmRzICogc2l6ZW9m KHVpbnQzMl90KTsKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiBAQCAtMjMwMCw3ICsyMjk4LDcgQEAg aW50IGludGVsX3JpbmdfY2FjaGVsaW5lX2FsaWduKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQo+ICAgCQlyZXR1cm4gMDsKPgo+ICAgCW51bV9kd29yZHMgPSBDQUNIRUxJTkVfQllU RVMgLyBzaXplb2YodWludDMyX3QpIC0gbnVtX2R3b3JkczsKPiAtCXJldCA9IGludGVsX3Jpbmdf YmVnaW4ocmluZywgbnVtX2R3b3Jkcyk7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwg bnVtX2R3b3Jkcyk7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IEBAIC0yMzcw LDcgKzIzNjgsNyBAQCBzdGF0aWMgaW50IGdlbjZfYnNkX3JpbmdfZmx1c2goc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJdWludDMyX3QgY21kOwo+ICAgCWludCByZXQ7Cj4K PiAtCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgNCk7Cj4gKwlyZXQgPSBpbnRlbF9yaW5n X2JlZ2luKHJlcSwgNCk7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IEBAIC0y NDE3LDcgKzI0MTUsNyBAQCBnZW44X3JpbmdfZGlzcGF0Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCSEoZGlzcGF0Y2hfZmxhZ3MgJiBJOTE1X0RJ U1BBVENIX1NFQ1VSRSk7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaW50ZWxfcmluZ19iZWdp bihyaW5nLCA0KTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0KTsKPiAgIAlpZiAo cmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTI0MzksNyArMjQzNyw3IEBAIGhzd19yaW5n X2Rpc3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4g ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlpbnQgcmV0 Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDIpOwo+ICsJcmV0ID0gaW50ZWxf cmluZ19iZWdpbihyZXEsIDIpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBA QCAtMjQ2Miw3ICsyNDYwLDcgQEAgZ2VuNl9yaW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZyA9IHJlcS0+cmluZzsKPiAgIAlpbnQgcmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9yaW5nX2Jl Z2luKHJpbmcsIDIpOwo+ICsJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDIpOwo+ICAgCWlm IChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiBAQCAtMjQ4Nyw3ICsyNDg1LDcgQEAgc3RhdGlj IGludCBnZW42X3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4g ICAJdWludDMyX3QgY21kOwo+ICAgCWludCByZXQ7Cj4KPiAtCXJldCA9IGludGVsX3JpbmdfYmVn aW4ocmluZywgNCk7Cj4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNCk7Cj4gICAJaWYg KHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmgKPiBpbmRleCBlMzUzNTMxLi5mNmFiNmJiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IEBAIC0zOTEsNyArMzkxLDcgQEAgdm9pZCBpbnRlbF9j bGVhbnVwX3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+Cj4gICBp bnQgaW50ZWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcXVlc3QpOwo+Cj4gLWludCBfX211c3RfY2hlY2sgaW50ZWxfcmluZ19iZWdpbihz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBpbnQgbik7Cj4gK2ludCBfX211c3RfY2hlY2sg aW50ZWxfcmluZ19iZWdpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50IG4p Owo+ICAgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9yaW5nX2NhY2hlbGluZV9hbGlnbihzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gICBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxf cmluZ19lbWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCQkJICAgdTMyIGRh dGEpCj4KClJldmlld2VkLWJ5OiBUb21hcyBFbGYgPHRvbWFzLmVsZkBpbnRlbC5jb20+CgpUaGFu a3MsClRvbWFzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==