From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH v3 12/13] drm/i915/execlists: Preemption! Date: Fri, 29 Sep 2017 09:55:45 +0300 Message-ID: <877ewi3sem.fsf@gaia.fi.intel.com> References: <20170928193910.17988-1-chris@chris-wilson.co.uk> <20170928193910.17988-12-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 10EB76EA3D for ; Fri, 29 Sep 2017 06:58:47 +0000 (UTC) In-Reply-To: <20170928193910.17988-12-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gV2hlbiB3 ZSB3cml0ZSB0byBFTFNQLCBpdCB0cmlnZ2VycyBhIGNvbnRleHQgcHJlZW1wdGlvbiBhdCB0aGUg ZWFybGllc3QKPiBhcmJpdHJhdGlvbiBwb2ludCAoM0RQUklNSVRJVkUsIHNvbWUgUElQRUNPTlRS T0xzLCBhIGZldyBvdGhlcgo+IG9wZXJhdGlvbnMgYW5kIHRoZSBleHBsaWNpdCBNSV9BUkJfQ0hF Q0spLiBJZiB0aGlzIGlzIHRvIHRoZSBzYW1lCj4gY29udGV4dCwgaXQgdHJpZ2dlcnMgYSBMSVRF X1JFU1RPUkUgd2hlcmUgdGhlIFJJTkdfVEFJTCBpcyBtZXJlbHkKPiB1cGRhdGVkICh1c2VkIGN1 cnJlbnRseSB0byBjaGFpbiByZXF1ZXN0cyBmcm9tIHRoZSBzYW1lIGNvbnRleHQKPiB0b2dldGhl ciwgYXZvaWRpbmcgYnViYmxlcykuIEhvd2V2ZXIsIGlmIGl0IGlzIHRvIGEgZGlmZmVyZW50IGNv bnRleHQsIGEKPiBmdWxsIGNvbnRleHQtc3dpdGNoIGlzIHBlcmZvcm1lZCBhbmQgaXQgd2lsbCBz dGFydCB0byBleGVjdXRlIHRoZSBuZXcKPiBjb250ZXh0IHNhdmluZyB0aGUgaW1hZ2Ugb2YgdGhl IG9sZCBmb3IgbGF0ZXIgZXhlY3V0aW9uLgo+Cj4gUHJldmlvdXNseSB3ZSBhdm9pZGVkIHByZWVt cHRpb24gYnkgb25seSBzdWJtaXR0aW5nIGEgbmV3IGNvbnRleHQgd2hlbgo+IHRoZSBvbGQgd2Fz IGlkbGUuIEJ1dCBub3cgd2Ugd2lzaCBlbWJyYWNlIGl0LCBhbmQgaWYgdGhlIG5ldyByZXF1ZXN0 IGhhcwo+IGEgaGlnaGVyIHByaW9yaXR5IHRoYW4gdGhlIGN1cnJlbnRseSBleGVjdXRpbmcgcmVx dWVzdCwgd2Ugd3JpdGUgdG8gdGhlCj4gRUxTUCByZWdhcmRsZXNzLCB0aHVzIHRyaWdnZXJpbmcg cHJlZW1wdGlvbiwgYnV0IHdlIHRlbGwgdGhlIEdQVSB0bwo+IHN3aXRjaCB0byBvdXIgc3BlY2lh bCBwcmVlbXB0aW9uIGNvbnRleHQgKG5vdCB0aGUgdGFyZ2V0KS4gSW4gdGhlCj4gY29udGV4dC1z d2l0Y2ggaW50ZXJydXB0IGhhbmRsZXIsIHdlIGtub3cgdGhhdCB0aGUgcHJldmlvdXMgY29udGV4 dHMKPiBoYXZlIGZpbmlzaGVkIGV4ZWN1dGlvbiBhbmQgc28gY2FuIHVud2luZCBhbGwgdGhlIGlu Y29tcGxldGUgcmVxdWVzdHMKPiBhbmQgY29tcHV0ZSB0aGUgbmV3IGhpZ2hlc3QgcHJpb3JpdHkg cmVxdWVzdCB0byBleGVjdXRlLgo+Cj4gSXQgd291bGQgYmUgZmVhc2libGUgdG8gYXZvaWQgdGhl IHN3aXRjaC10by1pZGxlIGludGVybWVkaWF0ZSBieQo+IHByb2dyYW1taW5nIHRoZSBFTFNQIHdp dGggdGhlIHRhcmdldCBjb250ZXh0LiBUaGUgZGlmZmljdWx0eSBpcyBpbgo+IHRyYWNraW5nIHdo aWNoIHJlcXVlc3QgdGhhdCBzaG91bGQgYmUgd2hpbHN0IG1haW50YWluaW5nIHRoZSBkZXBlbmRl bmN5Cj4gY2hhbmdlLCB0aGUgZXJyb3IgY29tZXMgaW4gd2l0aCBjb2FsZXNjZWQgcmVxdWVzdHMu IEFzIHdlIG9ubHkgdHJhY2sgdGhlCj4gbW9zdCByZWNlbnQgcmVxdWVzdCBhbmQgaXRzIHByaW9y aXR5LCB3ZSBtYXkgcnVuIGludG8gdGhlIGlzc3VlIG9mIGJlaW5nCj4gdHJpY2tlZCBpbiBwcmVl bXB0aW5nIGEgaGlnaCBwcmlvcml0eSByZXF1ZXN0IHRoYXQgd2FzIGZvbGxvd2VkIGJ5IGEKPiBs b3cgcHJpb3JpdHkgcmVxdWVzdCBmcm9tIHRoZSBzYW1lIGNvbnRleHQgKGUuZy4gZm9yIFBJKTsg d29yc2Ugc3RpbGwKPiB0aGF0IGVhcmxpZXIgcmVxdWVzdCBtYXkgYmUgb3VyIG93biBkZXBlbmRl bmN5IGFuZCB0aGUgb3JkZXIgdGhlbiBicm9rZW4KPiBieSBwcmVlbXB0aW9uLiBCeSBpbmplY3Rp bmcgdGhlIHN3aXRjaC10by1pZGxlIGFuZCB0aGVuIHJlY29tcHV0aW5nIHRoZQo+IHByaW9yaXR5 IHF1ZXVlLCB3ZSBhdm9pZCB0aGUgaXNzdWUgd2l0aCB0cmFja2luZyBpbi1mbGlnaHQgY29hbGVz Y2VkCj4gcmVxdWVzdHMuIEhhdmluZyB0cmllZCB0aGUgcHJlZW1wdC10by1idXN5IGFwcHJvYWNo LCBhbmQgZmFpbGVkIHRvIGZpbmQKPiBhIHdheSBhcm91bmQgdGhlIGNvYWxlc2NlZCBwcmlvcml0 eSBpc3N1ZSwgTWljaGFsJ3Mgb3JpZ2luYWwgcHJvcG9zYWwgdG8KPiBpbmplY3QgYW4gaWRsZSBj b250ZXh0IChiYXNlZCBvbiBoYW5kbGluZyBHdUMgcHJlZW1wdGlvbikgc3VjY2VlZHMuCj4KPiBU aGUgY3VycmVudCBoZXVyaXN0aWMgZm9yIGRlY2lkaW5nIHdoZW4gdG8gcHJlZW1wdCBhcmUgb25s eSBpZiB0aGUgbmV3Cj4gcmVxdWVzdCBpcyBvZiBoaWdoZXIgcHJpb3JpdHksIGFuZCBoYXMgdGhl IHByaXZpbGVnZWQgcHJpb3JpdHkgb2YKPiBncmVhdGVyIHRoYW4gMC4gTm90ZSB0aGF0IHRoZSBz Y2hlZHVsZXIgcmVtYWlucyB1bmZhaXIhCj4KPiB2MjogRGlzYWJsZSBmb3IgZ2VuOCAoYmR3L2Jz dykgYXMgd2UgbmVlZCBhZGRpdGlvbmFsIHcvYSBmb3IgR1BHUFUuCj4gU2luY2UsIHRoZSBmZWF0 dXJlIGlzIG5vdyBjb25kaXRpb25hbCBhbmQgbm90IGFsd2F5cyBhdmFpbGFibGUgd2hlbiB3ZQo+ IGhhdmUgYSBzY2hlZHVsZXIsIG1ha2UgaXQga25vd24gdmlhIHRoZSBIQVNfU0NIRURVTEVSIEdF VFBBUkFNIChub3cgYQo+IGNhcGFiaWxpdHkgbWFzaykuCj4gdjM6IFN0eWxpc3RpYyB0d2Vha3Mu Cj4KPiBTdWdnZXN0ZWQtYnk6IE1pY2hhbCBXaW5pYXJza2kgPG1pY2hhbC53aW5pYXJza2lAaW50 ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29u LmNvLnVrPgo+IENjOiBNaWNoYWwgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNv bT4KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiBDYzog QXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJAaW50ZWwuY29tPgo+IENjOiBNaWthIEt1 b3BwYWxhIDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KPiBDYzogQmVuIFdpZGF3c2t5IDxiZW5q YW1pbi53aWRhd3NreUBpbnRlbC5jb20+Cj4gQ2M6IFpoZW55dSBXYW5nIDx6aGVueXV3QGxpbnV4 LmludGVsLmNvbT4KPiBDYzogWmhpIFdhbmcgPHpoaS5hLndhbmdAaW50ZWwuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgfCAgIDkgKystCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICB8ICAgNiArLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jICAgICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAxMzcgKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgICAy ICsKPiAgNSBmaWxlcyBjaGFuZ2VkLCAxMTkgaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0p Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBpbmRleCBjNTA3MGY4NTljNjYuLmEzYmIzNTJh NTgxYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBAIC0zNjgsOSArMzY4LDE2IEBA IHN0YXRpYyBpbnQgaTkxNV9nZXRwYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAo+ICAJCWJyZWFrOwo+ICAJY2FzZSBJOTE1X1BBUkFNX0hBU19TQ0hFRFVMRVI6Cj4gIAkJ dmFsdWUgPSAwOwo+IC0JCWlmIChkZXZfcHJpdi0+ZW5naW5lW1JDU10gJiYgZGV2X3ByaXYtPmVu Z2luZVtSQ1NdLT5zY2hlZHVsZSkKPiArCQlpZiAoZGV2X3ByaXYtPmVuZ2luZVtSQ1NdICYmIGRl dl9wcml2LT5lbmdpbmVbUkNTXS0+c2NoZWR1bGUpIHsKPiAgCQkJdmFsdWUgfD0gSTkxNV9TQ0hF RFVMRVJfQ0FQX0VOQUJMRUQ7Cj4gKwo+ICsJCQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmhh c19sb2dpY2FsX3JpbmdfcHJlZW1wdGlvbiAmJgo+ICsJCQkgICAgaTkxNV9tb2RwYXJhbXMuZW5h YmxlX2V4ZWNsaXN0cyAmJgo+ICsJCQkgICAgIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWNfc3Vi bWlzc2lvbikKPiArCQkJCXZhbHVlIHw9IEk5MTVfU0NIRURVTEVSX0NBUF9QUkVFTVBUSU9OOwo+ ICsJCX0KPiAgCQlicmVhazsKPiArCj4gIAljYXNlIEk5MTVfUEFSQU1fTU1BUF9WRVJTSU9OOgo+ ICAJCS8qIFJlbWVtYmVyIHRvIGJ1bXAgdGhpcyBpZiB0aGUgdmVyc2lvbiBjaGFuZ2VzISAqLwo+ ICAJY2FzZSBJOTE1X1BBUkFNX0hBU19HRU06Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gaW5k ZXggZWZkNzgyN2ZmMTgxLi44NjIwZmJkMjJjNTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKPiBAQCAtMTM4MiwxMCArMTM4Miw4IEBAIGdlbjhfY3NfaXJxX2hhbmRsZXIoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgaWlyLCBpbnQgdGVzdF9zaGlmdCkKPiAgCWJvb2wg dGFza2xldCA9IGZhbHNlOwo+ICAKPiAgCWlmIChpaXIgJiAoR1RfQ09OVEVYVF9TV0lUQ0hfSU5U RVJSVVBUIDw8IHRlc3Rfc2hpZnQpKSB7Cj4gLQkJaWYgKHBvcnRfY291bnQoJmV4ZWNsaXN0cy0+ cG9ydFswXSkpIHsKPiAtCQkJX19zZXRfYml0KEVOR0lORV9JUlFfRVhFQ0xJU1QsICZlbmdpbmUt PmlycV9wb3N0ZWQpOwo+IC0JCQl0YXNrbGV0ID0gdHJ1ZTsKPiAtCQl9Cj4gKwkJX19zZXRfYml0 KEVOR0lORV9JUlFfRVhFQ0xJU1QsICZlbmdpbmUtPmlycV9wb3N0ZWQpOwo+ICsJCXRhc2tsZXQg PSB0cnVlOwo+ICAJfQo+ICAKPiAgCWlmIChpaXIgJiAoR1RfUkVOREVSX1VTRVJfSU5URVJSVVBU IDw8IHRlc3Rfc2hpZnQpKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcGNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4gaW5kZXggMDFkNGI1 NjliMmNjLi5kMTFjMWY1ZjVhOTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9wY2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiBAQCAt NDcwLDYgKzQ3MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50 ZWxfc2t5bGFrZV9ndDRfaW5mbyBfX2luaXRjb25zdCA9IHsKPiAgCS5oYXNfcmM2ID0gMSwgXAo+ ICAJLmhhc19kcF9tc3QgPSAxLCBcCj4gIAkuaGFzX2xvZ2ljYWxfcmluZ19jb250ZXh0cyA9IDEs IFwKPiArCS5oYXNfbG9naWNhbF9yaW5nX3ByZWVtcHRpb24gPSAxLCBcCj4gIAkuaGFzX2d1YyA9 IDEsIFwKPiAgCS5oYXNfYWxpYXNpbmdfcHBndHQgPSAxLCBcCj4gIAkuaGFzX2Z1bGxfcHBndHQg PSAxLCBcCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCAwMmVhMWU0ZTA5OGIuLmJj M2ZjNGNkMDM5ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTIwOCw5ICsy MDgsOSBAQAo+ICAKPiAgLyogVHlwaWNhbCBzaXplIG9mIHRoZSBhdmVyYWdlIHJlcXVlc3QgKDIg cGlwZWNvbnRyb2xzIGFuZCBhIE1JX0JCKSAqLwo+ICAjZGVmaW5lIEVYRUNMSVNUU19SRVFVRVNU X1NJWkUgNjQgLyogYnl0ZXMgKi8KPiAtCj4gICNkZWZpbmUgV0FfVEFJTF9EV09SRFMgMgo+ICAj ZGVmaW5lIFdBX1RBSUxfQllURVMgKHNpemVvZih1MzIpICogV0FfVEFJTF9EV09SRFMpCj4gKyNk ZWZpbmUgUFJFRU1QVF9JRCAweDEKPiAgCj4gIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2NvbnRleHRf ZGVmZXJyZWRfYWxsb2Moc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAgCQkJCQkgICAg c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiBAQCAtNDMwLDYgKzQzMCwxMiBAQCBz dGF0aWMgdTY0IGV4ZWNsaXN0c191cGRhdGVfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJxKQo+ICAJcmV0dXJuIGNlLT5scmNfZGVzYzsKPiAgfQo+ICAKPiArc3RhdGljIGlu bGluZSB2b2lkIGVsc3Bfd3JpdGUodTY0IGRlc2MsIHUzMiBfX2lvbWVtICplbHNwKQo+ICt7Cj4g Kwl3cml0ZWwodXBwZXJfMzJfYml0cyhkZXNjKSwgZWxzcCk7Cj4gKwl3cml0ZWwobG93ZXJfMzJf Yml0cyhkZXNjKSwgZWxzcCk7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJt aXRfcG9ydHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICB7Cj4gIAlzdHJ1Y3Qg ZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGVuZ2luZS0+ZXhlY2xpc3RzLnBvcnQ7Cj4gQEAgLTQ1NSw4 ICs0NjEsNyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWl0X3BvcnRzKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCQkJZGVzYyA9IDA7Cj4gIAkJfQo+ICAKPiAtCQl3cml0 ZWwodXBwZXJfMzJfYml0cyhkZXNjKSwgZWxzcCk7Cj4gLQkJd3JpdGVsKGxvd2VyXzMyX2JpdHMo ZGVzYyksIGVsc3ApOwo+ICsJCWVsc3Bfd3JpdGUoZGVzYywgZWxzcCk7Cj4gIAl9Cj4gIH0KPiAg Cj4gQEAgLTQ4OSwyNiArNDk0LDQzIEBAIHN0YXRpYyB2b2lkIHBvcnRfYXNzaWduKHN0cnVjdCBl eGVjbGlzdF9wb3J0ICpwb3J0LAo+ICAJcG9ydF9zZXQocG9ydCwgcG9ydF9wYWNrKGk5MTVfZ2Vt X3JlcXVlc3RfZ2V0KHJxKSwgcG9ydF9jb3VudChwb3J0KSkpOwo+ICB9Cj4gIAo+ICtzdGF0aWMg dm9pZCBpbmplY3RfcHJlZW1wdF9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPiArewo+ICsJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0KPiArCQkmZW5naW5lLT5pOTE1 LT5wcmVlbXB0X2NvbnRleHQtPmVuZ2luZVtlbmdpbmUtPmlkXTsKPiArCXUzMiBfX2lvbWVtICpl bHNwID0KPiArCQllbmdpbmUtPmk5MTUtPnJlZ3MgKyBpOTE1X21taW9fcmVnX29mZnNldChSSU5H X0VMU1AoZW5naW5lKSk7Cj4gKwl1bnNpZ25lZCBpbnQgbjsKPiArCj4gKwlHRU1fQlVHX09OKGVu Z2luZS0+aTkxNS0+cHJlZW1wdF9jb250ZXh0LT5od19pZCAhPSBQUkVFTVBUX0lEKTsKPiArCUdF TV9CVUdfT04oIUlTX0FMSUdORUQoY2UtPnJpbmctPnNpemUsIFdBX1RBSUxfQllURVMpKTsKPiAr Cj4gKwltZW1zZXQoY2UtPnJpbmctPnZhZGRyICsgY2UtPnJpbmctPnRhaWwsIDAsIFdBX1RBSUxf QllURVMpOwo+ICsJY2UtPnJpbmctPnRhaWwgKz0gV0FfVEFJTF9CWVRFUzsKPiArCWNlLT5yaW5n LT50YWlsICY9IChjZS0+cmluZy0+c2l6ZSAtIDEpOwo+ICsJY2UtPmxyY19yZWdfc3RhdGVbQ1RY X1JJTkdfVEFJTCsxXSA9IGNlLT5yaW5nLT50YWlsOwo+ICsKPiArCWZvciAobiA9IGV4ZWNsaXN0 c19udW1fcG9ydHMoJmVuZ2luZS0+ZXhlY2xpc3RzKTsgLS1uOyApCj4gKwkJZWxzcF93cml0ZSgw LCBlbHNwKTsKPiArCj4gKwllbHNwX3dyaXRlKGNlLT5scmNfZGVzYywgZWxzcCk7Cj4gK30KPiAr Cj4gK3N0YXRpYyBib29sIGNhbl9wcmVlbXB0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPiArewo+ICsJcmV0dXJuIElOVEVMX0lORk8oZW5naW5lLT5pOTE1KS0+aGFzX2xvZ2ljYWxf cmluZ19wcmVlbXB0aW9uOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1 ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqbGFzdDsKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICog Y29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwo+ICAJc3RydWN0IGV4ZWNsaXN0 X3BvcnQgKnBvcnQgPSBleGVjbGlzdHMtPnBvcnQ7Cj4gIAljb25zdCBzdHJ1Y3QgZXhlY2xpc3Rf cG9ydCAqIGNvbnN0IGxhc3RfcG9ydCA9Cj4gIAkJJmV4ZWNsaXN0cy0+cG9ydFtleGVjbGlzdHMt PnBvcnRfbWFza107Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKmxhc3QgPSBwb3J0 X3JlcXVlc3QocG9ydCk7Cj4gIAlzdHJ1Y3QgcmJfbm9kZSAqcmI7Cj4gIAlib29sIHN1Ym1pdCA9 IGZhbHNlOwo+ICAKPiAtCWxhc3QgPSBwb3J0X3JlcXVlc3QocG9ydCk7Cj4gLQlpZiAobGFzdCkK PiAtCQkvKiBXYUlkbGVMaXRlUmVzdG9yZTpiZHcsc2tsCj4gLQkJICogQXBwbHkgdGhlIHdhIE5P T1BzIHRvIHByZXZlbnQgcmluZzpIRUFEID09IHJlcTpUQUlMCj4gLQkJICogYXMgd2UgcmVzdWJt aXQgdGhlIHJlcXVlc3QuIFNlZSBnZW44X2VtaXRfYnJlYWRjcnVtYigpCj4gLQkJICogZm9yIHdo ZXJlIHdlIHByZXBhcmUgdGhlIHBhZGRpbmcgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUKPiAtCQkgKiBy ZXF1ZXN0Lgo+IC0JCSAqLwo+IC0JCWxhc3QtPnRhaWwgPSBsYXN0LT53YV90YWlsOwo+IC0KPiAg CS8qIEhhcmR3YXJlIHN1Ym1pc3Npb24gaXMgdGhyb3VnaCAyIHBvcnRzLiBDb25jZXB0dWFsbHkg ZWFjaCBwb3J0Cj4gIAkgKiBoYXMgYSAoUklOR19TVEFSVCwgUklOR19IRUFELCBSSU5HX1RBSUwp IHR1cGxlLiBSSU5HX1NUQVJUIGlzCj4gIAkgKiBzdGF0aWMgZm9yIGEgY29udGV4dCwgYW5kIHVu aXF1ZSB0byBlYWNoLCBzbyB3ZSBvbmx5IGV4ZWN1dGUKPiBAQCAtNTMzLDcgKzU1NSw0NSBAQCBz dGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCj4gIAlzcGluX2xvY2tfaXJxKCZlbmdpbmUtPnRpbWVsaW5lLT5sb2NrKTsKPiAgCXJiID0g ZXhlY2xpc3RzLT5maXJzdDsKPiAgCUdFTV9CVUdfT04ocmJfZmlyc3QoJmV4ZWNsaXN0cy0+cXVl dWUpICE9IHJiKTsKPiAtCXdoaWxlIChyYikgewo+ICsJaWYgKCFyYikKPiArCQlnb3RvIHVubG9j azsKPiArCj4gKwlpZiAobGFzdCkgewo+ICsJCS8qCj4gKwkJICogRG9uJ3QgcmVzdWJtaXQgb3Ig c3dpdGNoIHVudGlsIGFsbCBvdXRzdGFuZGluZwo+ICsJCSAqIHByZWVtcHRpb25zIChsaXRlLXJl c3RvcmUpIGFyZSBzZWVuLiBUaGVuIHdlCj4gKwkJICoga25vdyB0aGUgbmV4dCBwcmVlbXB0aW9u IHN0YXR1cyB3ZSBzZWUgY29ycmVzcG9uZHMKPiArCQkgKiB0byB0aGlzIEVMU1AgdXBkYXRlLgo+ ICsJCSAqLwo+ICsJCWlmIChwb3J0X2NvdW50KCZwb3J0WzBdKSA+IDEpCj4gKwkJCWdvdG8gdW5s b2NrOwo+ICsKPiArCQlpZiAoY2FuX3ByZWVtcHQoZW5naW5lKSAmJgo+ICsJCSAgICByYl9lbnRy eShyYiwgc3RydWN0IGk5MTVfcHJpb2xpc3QsIG5vZGUpLT5wcmlvcml0eSA+Cj4gKwkJICAgIG1h eChsYXN0LT5wcmlvdHJlZS5wcmlvcml0eSwgMCkpIHsKPiArCQkJLyoKPiArCQkJICogU3dpdGNo IHRvIG91ciBlbXB0eSBwcmVlbXB0IGNvbnRleHQgc28KPiArCQkJICogdGhlIHN0YXRlIG9mIHRo ZSBHUFUgaXMga25vd24gKGlkbGUpLgo+ICsJCQkgKi8KPiArCQkJaW5qZWN0X3ByZWVtcHRfY29u dGV4dChlbmdpbmUpOwo+ICsJCQlleGVjbGlzdHMtPnByZWVtcHQgPSB0cnVlOwo+ICsJCQlnb3Rv IHVubG9jazsKPiArCQl9IGVsc2Ugewo+ICsJCQlpZiAocG9ydF9jb3VudCgmcG9ydFsxXSkpCj4g KwkJCQlnb3RvIHVubG9jazsKCkkgYW0gYXNzdW1pbmcgdGhhdCB0aGlzIGlzIGNoZWNrIGZvciBo dwphdmFpbGFiaWxpdHkgYW5kIG5vdGhpbmcgZWxzZT8gCgotIE1pa2EgKGJlaW5nIHBhcmFub2lk KQoKPiArCj4gKwkJCS8qIFdhSWRsZUxpdGVSZXN0b3JlOmJkdyxza2wKPiArCQkJICogQXBwbHkg dGhlIHdhIE5PT1BzIHRvIHByZXZlbnQKPiArCQkJICogcmluZzpIRUFEID09IHJlcTpUQUlMIGFz IHdlIHJlc3VibWl0IHRoZQo+ICsJCQkgKiByZXF1ZXN0LiBTZWUgZ2VuOF9lbWl0X2JyZWFkY3J1 bWIoKSBmb3IKPiArCQkJICogd2hlcmUgd2UgcHJlcGFyZSB0aGUgcGFkZGluZyBhZnRlciB0aGUK PiArCQkJICogZW5kIG9mIHRoZSByZXF1ZXN0Lgo+ICsJCQkgKi8KPiArCQkJbGFzdC0+dGFpbCA9 IGxhc3QtPndhX3RhaWw7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCWRvIHsKPiAgCQlzdHJ1Y3QgaTkx NV9wcmlvbGlzdCAqcCA9IHJiX2VudHJ5KHJiLCB0eXBlb2YoKnApLCBub2RlKTsKPiAgCQlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxLCAqcm47Cj4gIAo+IEBAIC01OTYsMTEgKzY1Niwx MiBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCj4gIAkJSU5JVF9MSVNUX0hFQUQoJnAtPnJlcXVlc3RzKTsKPiAgCQlpZiAocC0+ cHJpb3JpdHkgIT0gSTkxNV9QUklPUklUWV9OT1JNQUwpCj4gIAkJCWttZW1fY2FjaGVfZnJlZShl bmdpbmUtPmk5MTUtPnByaW9yaXRpZXMsIHApOwo+IC0JfQo+ICsJfSB3aGlsZSAocmIpOwo+ICBk b25lOgo+ICAJZXhlY2xpc3RzLT5maXJzdCA9IHJiOwo+ICAJaWYgKHN1Ym1pdCkKPiAgCQlwb3J0 X2Fzc2lnbihwb3J0LCBsYXN0KTsKPiArdW5sb2NrOgo+ICAJc3Bpbl91bmxvY2tfaXJxKCZlbmdp bmUtPnRpbWVsaW5lLT5sb2NrKTsKPiAgCj4gIAlpZiAoc3VibWl0KQo+IEBAIC02ODEsMTMgKzc0 Miw2IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jYW5jZWxfcmVxdWVzdHMoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50 aW1lbGluZS0+bG9jaywgZmxhZ3MpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgYm9vbCBleGVjbGlzdHNf ZWxzcF9yZWFkeShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gLXsKPiAt CWNvbnN0IHN0cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0ID0gZW5naW5lLT5leGVjbGlzdHMucG9y dDsKPiAtCj4gLQlyZXR1cm4gcG9ydF9jb3VudCgmcG9ydFswXSkgKyBwb3J0X2NvdW50KCZwb3J0 WzFdKSA8IDI7Cj4gLX0KPiAtCj4gIC8qCj4gICAqIENoZWNrIHRoZSB1bnJlYWQgQ29udGV4dCBT dGF0dXMgQnVmZmVycyBhbmQgbWFuYWdlIHRoZSBzdWJtaXNzaW9uIG9mIG5ldwo+ICAgKiBjb250 ZXh0cyB0byB0aGUgRUxTUCBhY2NvcmRpbmdseS4KPiBAQCAtNjk2LDcgKzc1MCw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2xyY19pcnFfaGFuZGxlcih1bnNpZ25lZCBsb25nIGRhdGEpCj4gIHsKPiAg CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKiBjb25zdCBlbmdpbmUgPSAoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqKWRhdGE7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0 IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKPiAtCXN0cnVjdCBleGVjbGlzdF9wb3J0 ICpwb3J0ID0gZXhlY2xpc3RzLT5wb3J0Owo+ICsJc3RydWN0IGV4ZWNsaXN0X3BvcnQgKiBjb25z dCBwb3J0ID0gZXhlY2xpc3RzLT5wb3J0Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZW5naW5lLT5pOTE1Owo+ICAKPiAgCS8qIFdlIGNhbiBza2lwIGFjcXVpcmluZyBp bnRlbF9ydW50aW1lX3BtX2dldCgpIGhlcmUgYXMgaXQgd2FzIHRha2VuCj4gQEAgLTc4MSw2ICs4 MzUsMjMgQEAgc3RhdGljIHZvaWQgaW50ZWxfbHJjX2lycV9oYW5kbGVyKHVuc2lnbmVkIGxvbmcg ZGF0YSkKPiAgCQkJaWYgKCEoc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX0NPTVBMRVRFRF9NQVNL KSkKPiAgCQkJCWNvbnRpbnVlOwo+ICAKPiArCQkJaWYgKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRV U19BQ1RJVkVfSURMRSAmJgo+ICsJCQkgICAgYnVmWzIqaGVhZCArIDFdID09IFBSRUVNUFRfSUQp IHsKPiArCQkJCWV4ZWNsaXN0X2NhbmNlbF9wb3J0X3JlcXVlc3RzKGV4ZWNsaXN0cyk7Cj4gKwo+ ICsJCQkJc3Bpbl9sb2NrX2lycSgmZW5naW5lLT50aW1lbGluZS0+bG9jayk7Cj4gKwkJCQl1bndp bmRfaW5jb21wbGV0ZV9yZXF1ZXN0cyhlbmdpbmUpOwo+ICsJCQkJc3Bpbl91bmxvY2tfaXJxKCZl bmdpbmUtPnRpbWVsaW5lLT5sb2NrKTsKPiArCj4gKwkJCQlHRU1fQlVHX09OKCFleGVjbGlzdHMt PnByZWVtcHQpOwo+ICsJCQkJZXhlY2xpc3RzLT5wcmVlbXB0ID0gZmFsc2U7Cj4gKwkJCQljb250 aW51ZTsKPiArCQkJfQo+ICsKPiArCQkJaWYgKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19QUkVF TVBURUQgJiYKPiArCQkJICAgIGV4ZWNsaXN0cy0+cHJlZW1wdCkKPiArCQkJCWNvbnRpbnVlOwo+ ICsKPiAgCQkJLyogQ2hlY2sgdGhlIGNvbnRleHQvZGVzYyBpZCBmb3IgdGhpcyBldmVudCBtYXRj aGVzICovCj4gIAkJCUdFTV9ERUJVR19CVUdfT04oYnVmWzIgKiBoZWFkICsgMV0gIT0gcG9ydC0+ Y29udGV4dF9pZCk7Cj4gIAo+IEBAIC04MTIsNyArODgzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf bHJjX2lycV9oYW5kbGVyKHVuc2lnbmVkIGxvbmcgZGF0YSkKPiAgCQl9Cj4gIAl9Cj4gIAo+IC0J aWYgKGV4ZWNsaXN0c19lbHNwX3JlYWR5KGVuZ2luZSkpCj4gKwlpZiAoIWV4ZWNsaXN0cy0+cHJl ZW1wdCkKPiAgCQlleGVjbGlzdHNfZGVxdWV1ZShlbmdpbmUpOwo+ICAKPiAgCWludGVsX3VuY29y ZV9mb3JjZXdha2VfcHV0KGRldl9wcml2LCBleGVjbGlzdHMtPmZ3X2RvbWFpbnMpOwo+IEBAIC04 MjUsNyArODk2LDcgQEAgc3RhdGljIHZvaWQgaW5zZXJ0X3JlcXVlc3Qoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lLAo+ICAJc3RydWN0IGk5MTVfcHJpb2xpc3QgKnAgPSBsb29rdXBfcHJp b2xpc3QoZW5naW5lLCBwdCwgcHJpbyk7Cj4gIAo+ICAJbGlzdF9hZGRfdGFpbCgmcHQtPmxpbmss ICZwdHJfbWFza19iaXRzKHAsIDEpLT5yZXF1ZXN0cyk7Cj4gLQlpZiAocHRyX3VubWFza19iaXRz KHAsIDEpICYmIGV4ZWNsaXN0c19lbHNwX3JlYWR5KGVuZ2luZSkpCj4gKwlpZiAocHRyX3VubWFz a19iaXRzKHAsIDEpKQo+ICAJCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmVuZ2luZS0+ZXhlY2xpc3Rz LmlycV90YXNrbGV0KTsKPiAgfQo+ICAKPiBAQCAtOTU1LDggKzEwMjYsNiBAQCBzdGF0aWMgdm9p ZCBleGVjbGlzdHNfc2NoZWR1bGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0 LCBpbnQgcHJpbykKPiAgCX0KPiAgCj4gIAlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+dGltZWxp bmUtPmxvY2spOwo+IC0KPiAtCS8qIFhYWCBEbyB3ZSBuZWVkIHRvIHByZWVtcHQgdG8gbWFrZSBy b29tIGZvciB1cyBhbmQgb3VyIGRlcHM/ICovCj4gIH0KPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgaW50 ZWxfcmluZyAqCj4gQEAgLTExNTIsNiArMTIyMSw4IEBAIHN0YXRpYyB1MzIgKmdlbjhfaW5pdF9p bmRpcmVjdGN0eF9iYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiAqYmF0Y2gp Cj4gIAkJCQkgICAgICAgaTkxNV9nZ3R0X29mZnNldChlbmdpbmUtPnNjcmF0Y2gpICsKPiAgCQkJ CSAgICAgICAyICogQ0FDSEVMSU5FX0JZVEVTKTsKPiAgCj4gKwkqYmF0Y2grKyA9IE1JX0FSQl9P Tl9PRkYgfCBNSV9BUkJfRU5BQkxFOwo+ICsKPiAgCS8qIFBhZCB0byBlbmQgb2YgY2FjaGVsaW5l ICovCj4gIAl3aGlsZSAoKHVuc2lnbmVkIGxvbmcpYmF0Y2ggJSBDQUNIRUxJTkVfQllURVMpCj4g IAkJKmJhdGNoKysgPSBNSV9OT09QOwo+IEBAIC0xMTY3LDYgKzEyMzgsOCBAQCBzdGF0aWMgdTMy ICpnZW44X2luaXRfaW5kaXJlY3RjdHhfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LCB1MzIgKmJhdGNoKQo+ICAKPiAgc3RhdGljIHUzMiAqZ2VuOV9pbml0X2luZGlyZWN0Y3R4X2Ji KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyICpiYXRjaCkKPiAgewo+ICsJKmJh dGNoKysgPSBNSV9BUkJfT05fT0ZGIHwgTUlfQVJCX0RJU0FCTEU7Cj4gKwo+ICAJLyogV2FGbHVz aENvaGVyZW50TDNDYWNoZUxpbmVzQXRDb250ZXh0U3dpdGNoOnNrbCxieHQsZ2xrICovCj4gIAli YXRjaCA9IGdlbjhfZW1pdF9mbHVzaF9jb2hlcmVudGwzX3dhKGVuZ2luZSwgYmF0Y2gpOwo+ICAK PiBAQCAtMTIxMiw2ICsxMjg1LDggQEAgc3RhdGljIHUzMiAqZ2VuOV9pbml0X2luZGlyZWN0Y3R4 X2JiKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyICpiYXRjaCkKPiAgCQkqYmF0 Y2grKyA9IDA7Cj4gIAl9Cj4gIAo+ICsJKmJhdGNoKysgPSBNSV9BUkJfT05fT0ZGIHwgTUlfQVJC X0VOQUJMRTsKPiArCj4gIAkvKiBQYWQgdG8gZW5kIG9mIGNhY2hlbGluZSAqLwo+ICAJd2hpbGUg KCh1bnNpZ25lZCBsb25nKWJhdGNoICUgQ0FDSEVMSU5FX0JZVEVTKQo+ICAJCSpiYXRjaCsrID0g TUlfTk9PUDsKPiBAQCAtMTM2NSw2ICsxNDQwLDcgQEAgc3RhdGljIGludCBnZW44X2luaXRfY29t bW9uX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJCSAgIEdUX0NPTlRF WFRfU1dJVENIX0lOVEVSUlVQVCA8PCBlbmdpbmUtPmlycV9zaGlmdCk7Cj4gIAljbGVhcl9iaXQo RU5HSU5FX0lSUV9FWEVDTElTVCwgJmVuZ2luZS0+aXJxX3Bvc3RlZCk7Cj4gIAlleGVjbGlzdHMt PmNzYl9oZWFkID0gLTE7Cj4gKwlleGVjbGlzdHMtPnByZWVtcHQgPSBmYWxzZTsKPiAgCj4gIAkv KiBBZnRlciBhIEdQVSByZXNldCwgd2UgbWF5IGhhdmUgcmVxdWVzdHMgdG8gcmVwbGF5ICovCj4g IAlpZiAoIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9ndWNfc3VibWlzc2lvbiAmJiBleGVjbGlzdHMt PmZpcnN0KQo+IEBAIC0xNjYwLDcgKzE3MzYsOCBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9mbHVz aF9yZW5kZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ICAgKi8KPiAg c3RhdGljIHZvaWQgZ2VuOF9lbWl0X3dhX3RhaWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXF1ZXN0LCB1MzIgKmNzKQo+ICB7Cj4gLQkqY3MrKyA9IE1JX05PT1A7Cj4gKwkvKiBFbnN1 cmUgdGhlcmUncyBhbHdheXMgYXQgbGVhc3Qgb25lIHByZWVtcHRpb24gcG9pbnQgcGVyLXJlcXVl c3QuICovCj4gKwkqY3MrKyA9IE1JX0FSQl9DSEVDSzsKPiAgCSpjcysrID0gTUlfTk9PUDsKPiAg CXJlcXVlc3QtPndhX3RhaWwgPSBpbnRlbF9yaW5nX29mZnNldChyZXF1ZXN0LCBjcyk7Cj4gIH0K PiBAQCAtMTY4MSw3ICsxNzU4LDYgQEAgc3RhdGljIHZvaWQgZ2VuOF9lbWl0X2JyZWFkY3J1bWIo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LCB1MzIgKmNzKQo+ICAKPiAgCWdl bjhfZW1pdF93YV90YWlsKHJlcXVlc3QsIGNzKTsKPiAgfQo+IC0KPiAgc3RhdGljIGNvbnN0IGlu dCBnZW44X2VtaXRfYnJlYWRjcnVtYl9zeiA9IDYgKyBXQV9UQUlMX0RXT1JEUzsKPiAgCj4gIHN0 YXRpYyB2b2lkIGdlbjhfZW1pdF9icmVhZGNydW1iX3JlbmRlcihzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcXVlc3QsCj4gQEAgLTE3MDksNyArMTc4NSw2IEBAIHN0YXRpYyB2b2lkIGdl bjhfZW1pdF9icmVhZGNydW1iX3JlbmRlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cXVlc3QsCj4gIAo+ICAJZ2VuOF9lbWl0X3dhX3RhaWwocmVxdWVzdCwgY3MpOwo+ICB9Cj4gLQo+ ICBzdGF0aWMgY29uc3QgaW50IGdlbjhfZW1pdF9icmVhZGNydW1iX3JlbmRlcl9zeiA9IDggKyBX QV9UQUlMX0RXT1JEUzsKPiAgCj4gIHN0YXRpYyBpbnQgZ2VuOF9pbml0X3Jjc19jb250ZXh0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKPiBpbmRleCA1NmQ3YWU5ZjI5OGIuLjg5MWQ5NTU1ZGNlNiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtMjM4LDYgKzIzOCw4 IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzIHsKPiAgI2RlZmluZSBFWEVDTElTVF9N QVhfUE9SVFMgMgo+ICAJfSBwb3J0W0VYRUNMSVNUX01BWF9QT1JUU107Cj4gIAo+ICsJYm9vbCBw cmVlbXB0Owo+ICsKPiAgCS8qKgo+ICAJICogQHBvcnRfbWFzazogbnVtYmVyIG9mIGV4ZWNsaXN0 IHBvcnRzIC0gMQo+ICAJICovCj4gLS0gCj4gMi4xNC4yCj4KPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==