From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 3/7] drm/i915: Retire requests along rings Date: Fri, 27 Apr 2018 13:50:44 +0100 Message-ID: <404bc552-4088-afb9-d30a-337dd2e4277d@linux.intel.com> References: <20180426174932.23127-1-chris@chris-wilson.co.uk> <20180426174932.23127-3-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 D931B6E8F3 for ; Fri, 27 Apr 2018 12:50:48 +0000 (UTC) In-Reply-To: <20180426174932.23127-3-chris@chris-wilson.co.uk> Content-Language: en-GB 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 List-Id: intel-gfx@lists.freedesktop.org Ck9uIDI2LzA0LzIwMTggMTg6NDksIENocmlzIFdpbHNvbiB3cm90ZToKPiBJbiB0aGUgbmV4dCBw YXRjaCwgcmluZ3MgYXJlIHRoZSBjZW50cmFsIHRpbWVsaW5lIGFzIHJlcXVlc3RzIG1heSBqdW1w Cj4gYmV0d2VlbiBlbmdpbmVzLiBUaGVyZWZvcmUgaW4gdGhlIGZ1dHVyZSBhcyB3ZSByZXRpcmUg aW4gb3JkZXIgYWxvbmcgdGhlCj4gZW5naW5lIHRpbWVsaW5lLCB3ZSBtYXkgcmV0aXJlIG91dC1v Zi1vcmRlciB3aXRoaW4gYSByaW5nIChhcyB0aGUgcmluZyBub3cKPiBvY2N1cnMgYWxvbmcgbXVs dGlwbGUgZW5naW5lcyksIGxlYWRpbmcgdG8gbXVjaCBoaWxhcml0eSBpbiBtaXNjb21wdXRpbmcK PiB0aGUgcG9zaXRpb24gb2YgcmluZy0+aGVhZC4KPiAKPiBBcyBhbiBhZGRlZCBib251cywgcmV0 aXJpbmcgYWxvbmcgdGhlIHJpbmcgcmVkdWNlcyB0aGUgcGVuYWx0eSBvZiBoYXZpbmcKPiBvbmUg ZXhlY2xpc3RzIGNsaWVudCBkbyBjbGVhbnVwIGZvciBhbm90aGVyIChvbGQgbGVnYWN5IHN1Ym1p c3Npb24KPiBzaGFyZXMgYSByaW5nIGJldHdlZW4gYWxsIGNsaWVudHMpLiBUaGUgZG93bnNpZGUg aXMgdGhhdCBzbG93IGFuZAo+IGlycmVndWxhciAob2ZmIHRoZSBjcml0aWNhbCBwYXRoKSBwcm9j ZXNzIG9mIGNsZWFuaW5nIHVwIHN0YWxlIHJlcXVlc3RzCj4gYWZ0ZXIgdXNlcnNwYWNlIGJlY29t ZXMgYSBtb2RpY3VtIGxlc3MgZWZmaWNpZW50Lgo+IAo+IEluIHRoZSBsb25nIHJ1biwgaXQgd2ls bCBiZWNvbWUgYXBwYXJlbnQgdGhhdCB0aGUgb3JkZXJlZAo+IHJpbmctPnJlcXVlc3RfbGlzdCBt YXRjaGVzIHRoZSByaW5nLT50aW1lbGluZSwgYSBmdW4gY2hhbGxlbmdlIGZvciB0aGUKPiBmdXR1 cmUgd2lsbCBiZSB1bmlmeWluZyB0aGUgdHdvIGxpc3RzIHRvIGF2b2lkIGR1cGxpY2F0aW9uIQo+ IAo+IHYyOiBXZSBuZWVkIGJvdGggZW5naW5lLW9yZGVyIGFuZCByaW5nLW9yZGVyIHByb2Nlc3Np bmcgdG8gbWFpbnRhaW4gb3VyCj4ga25vd2xlZGdlIG9mIHdoZXJlIGluZGl2aWR1YWwgcmluZ3Mg aGF2ZSBjb21wbGV0ZWQgdXB0byBhcyB3ZWxsIGFzCj4ga25vd2luZyB3aGF0IHdhcyBsYXN0IGV4 ZWN1dGluZyBvbiBhbnkgZW5naW5lLiBBbmQgZmluYWxseSBieSBkZWNvdXBsaW5nCj4gcmV0aXJp bmcgdGhlIGNvbnRleHRzIG9uIHRoZSBlbmdpbmUgYW5kIHRoZSB0aW1lbGluZXMgYWxvbmcgdGhl IHJpbmdzLAo+IHdlIGRvIGhhdmUgdG8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dCBv biBlYWNoIHJlcXVlc3QKPiAocHJldmlvdXNseSBpdCB3YXMgZ3VhcmFudGVlZCBieSB0aGUgY29u dGV4dCBiZWluZyBwaW5uZWQpLgo+IAo+IHYzOiBOb3QganVzdCBhIHJlZmVyZW5jZSB0byB0aGUg Y29udGV4dCwgYnV0IHdlIG5lZWQgdG8ga2VlcCBpdCBwaW5uZWQKPiBhcyB3ZSBtYW5pcHVsYXRl IHRoZSByaW5nczsgaS5lLiB3ZSBuZWVkIGEgcGluIGZvciBib3RoIHRoZSBtYW5pcHVsYXRpb24K PiBvZiB0aGUgZW5naW5lIHN0YXRlIGR1cmluZyBpdHMgcmV0aXJlbWVudHMsIGFuZCBhIHNlcGFy YXRlIHBpbiBmb3IgdGhlCj4gbWFuaXB1bGF0aW9uIG9mIHRoZSByaW5nIHN0YXRlLgo+IAo+IFNp Z25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENj OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwgICAzICstCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgICAgfCAgIDEgKwo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgICAgICAgICAgIHwgMTUwICsrKysr KysrKysrLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV91dGlscy5oICAgICAg ICAgICAgIHwgICA2ICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu YyAgICAgICB8ICAgNiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oICAgICAgIHwgICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2Nr X2VuZ2luZS5jICB8ICAyNyArKystCj4gICAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2Nr X2dlbV9kZXZpY2UuYyAgfCAgIDIgKwo+ICAgOCBmaWxlcyBjaGFuZ2VkLCAxMzEgaW5zZXJ0aW9u cygrKSwgNjUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXgg OGZkOWZiNmVmYmE1Li4xODM3YzAxZDQ0ZDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiBAQCAtMjA1OCw4ICsyMDU4LDkgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ICAgCQl2 b2lkICgqcmVzdW1lKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqKTsKPiAgIAkJdm9pZCAoKmNs ZWFudXBfZW5naW5lKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwo+ICAgCj4gLQkJ c3RydWN0IGxpc3RfaGVhZCB0aW1lbGluZXM7Cj4gICAJCXN0cnVjdCBpOTE1X2dlbV90aW1lbGlu ZSBnbG9iYWxfdGltZWxpbmU7Cj4gKwkJc3RydWN0IGxpc3RfaGVhZCB0aW1lbGluZXM7Cj4gKwkJ c3RydWN0IGxpc3RfaGVhZCByaW5nczsKPiAgIAkJdTMyIGFjdGl2ZV9yZXF1ZXN0czsKPiAgIAkJ dTMyIHJlcXVlc3Rfc2VyaWFsOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXgg NDA5MGJmZGRhMzQwLi5mMDY0NGQxZmJkNzUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMK PiBAQCAtNTYwMCw2ICs1NjAwLDcgQEAgaW50IGk5MTVfZ2VtX2luaXRfZWFybHkoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCQlnb3RvIGVycl9kZXBlbmRlbmNpZXM7Cj4g ICAKPiAgIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwlJTklU X0xJU1RfSEVBRCgmZGV2X3ByaXYtPmd0LnJpbmdzKTsKPiAgIAlJTklUX0xJU1RfSEVBRCgmZGV2 X3ByaXYtPmd0LnRpbWVsaW5lcyk7Cj4gICAJZXJyID0gaTkxNV9nZW1fdGltZWxpbmVfaW5pdF9f Z2xvYmFsKGRldl9wcml2KTsKPiAgIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0 X211dGV4KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+IGluZGV4IDkzNThmMmNm MGMzMi4uZTY1MzUyNTVkNDQ1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVxdWVzdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMK PiBAQCAtMjg2LDYgKzI4Niw3IEBAIHN0YXRpYyBpbnQgcmVzZXJ2ZV9ndChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKPiAgIAo+ICAgc3RhdGljIHZvaWQgdW5yZXNlcnZlX2d0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAgewo+ICsJR0VNX0JVR19PTighaTkxNS0+Z3Qu YWN0aXZlX3JlcXVlc3RzKTsKPiAgIAlpZiAoIS0taTkxNS0+Z3QuYWN0aXZlX3JlcXVlc3RzKQo+ ICAgCQlpOTE1X2dlbV9wYXJrKGk5MTUpOwo+ICAgfQo+IEBAIC0yOTgsNiArMjk5LDcgQEAgdm9p ZCBpOTE1X2dlbV9yZXRpcmVfbm9vcChzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUsCj4g ICAKPiAgIHN0YXRpYyB2b2lkIGFkdmFuY2VfcmluZyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1 ZXN0KQo+ICAgewo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXF1ZXN0LT5yaW5nOwo+ ICAgCXVuc2lnbmVkIGludCB0YWlsOwo+ICAgCj4gICAJLyoKPiBAQCAtMzA5LDcgKzMxMSw4IEBA IHN0YXRpYyB2b2lkIGFkdmFuY2VfcmluZyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ ICAgCSAqIE5vdGUgdGhpcyByZXF1aXJlcyB0aGF0IHdlIGFyZSBhbHdheXMgY2FsbGVkIGluIHJl cXVlc3QKPiAgIAkgKiBjb21wbGV0aW9uIG9yZGVyLgo+ICAgCSAqLwo+IC0JaWYgKGxpc3RfaXNf bGFzdCgmcmVxdWVzdC0+cmluZ19saW5rLCAmcmVxdWVzdC0+cmluZy0+cmVxdWVzdF9saXN0KSkg ewo+ICsJR0VNX0JVR19PTighbGlzdF9pc19maXJzdCgmcmVxdWVzdC0+cmluZ19saW5rLCAmcmlu Zy0+cmVxdWVzdF9saXN0KSk7Cj4gKwlpZiAobGlzdF9pc19sYXN0KCZyZXF1ZXN0LT5yaW5nX2xp bmssICZyaW5nLT5yZXF1ZXN0X2xpc3QpKSB7Cj4gICAJCS8qCj4gICAJCSAqIFdlIG1heSByYWNl IGhlcmUgd2l0aCBleGVjbGlzdHMgcmVzdWJtaXR0aW5nIHRoaXMgcmVxdWVzdAo+ICAgCQkgKiBh cyB3ZSByZXRpcmUgaXQuIFRoZSByZXN1Ym1pc3Npb24gd2lsbCBtb3ZlIHRoZSByaW5nLT50YWls Cj4gQEAgLTMyMiw5ICszMjUsOSBAQCBzdGF0aWMgdm9pZCBhZHZhbmNlX3Jpbmcoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAgIAl9IGVsc2Ugewo+ICAgCQl0YWlsID0gcmVxdWVzdC0+ cG9zdGZpeDsKPiAgIAl9Cj4gLQlsaXN0X2RlbCgmcmVxdWVzdC0+cmluZ19saW5rKTsKPiArCWxp c3RfZGVsX2luaXQoJnJlcXVlc3QtPnJpbmdfbGluayk7Cj4gICAKPiAtCXJlcXVlc3QtPnJpbmct PmhlYWQgPSB0YWlsOwo+ICsJcmluZy0+aGVhZCA9IHRhaWw7Cj4gICB9Cj4gICAKPiAgIHN0YXRp YyB2b2lkIGZyZWVfY2FwdHVyZV9saXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCj4g QEAgLTM0MCwzMCArMzQzLDg0IEBAIHN0YXRpYyB2b2lkIGZyZWVfY2FwdHVyZV9saXN0KHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCj4gICAJfQo+ICAgfQo+ICAgCj4gK3N0YXRpYyB2b2lk IF9fcmV0aXJlX2VuZ2luZV9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwK PiArCQkJCSAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiArewo+ICsJR0VNX1RSQUNFKCIl cyglcykgZmVuY2UgJWxseDolZCwgZ2xvYmFsPSVkLCBjdXJyZW50ICVkXG4iLAo+ICsJCSAgX19m dW5jX18sIGVuZ2luZS0+bmFtZSwKPiArCQkgIHJxLT5mZW5jZS5jb250ZXh0LCBycS0+ZmVuY2Uu c2Vxbm8sCj4gKwkJICBycS0+Z2xvYmFsX3NlcW5vLAo+ICsJCSAgaW50ZWxfZW5naW5lX2dldF9z ZXFubyhlbmdpbmUpKTsKPiArCj4gKwlHRU1fQlVHX09OKCFpOTE1X3JlcXVlc3RfY29tcGxldGVk KHJxKSk7Cj4gKwo+ICsJbG9jYWxfaXJxX2Rpc2FibGUoKTsKPiArCj4gKwlzcGluX2xvY2soJmVu Z2luZS0+dGltZWxpbmUtPmxvY2spOwo+ICsJR0VNX0JVR19PTighbGlzdF9pc19maXJzdCgmcnEt PmxpbmssICZlbmdpbmUtPnRpbWVsaW5lLT5yZXF1ZXN0cykpOwoKQXNzZXJ0IG5vdCBzdHJpY3Rs eSBuZWVkZWQgYmVjYXVzZSBob3cgdGhlIHNpbmdsZSBjYWxsZXIgcG9wcyB0aGUgCmVsZW1lbnRz IG9mZiwgYnV0IG1heWJlIGluIHRoZSBmdXR1cmUgc29tZXRoaW5nIGNoYW5nZXMuCgo+ICsJbGlz dF9kZWxfaW5pdCgmcnEtPmxpbmspOwo+ICsJc3Bpbl91bmxvY2soJmVuZ2luZS0+dGltZWxpbmUt PmxvY2spOwo+ICsKPiArCXNwaW5fbG9jaygmcnEtPmxvY2spOwo+ICsJaWYgKCF0ZXN0X2JpdChE TUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZycS0+ZmVuY2UuZmxhZ3MpKQo+ICsJCWRtYV9m ZW5jZV9zaWduYWxfbG9ja2VkKCZycS0+ZmVuY2UpOwo+ICsJaWYgKHRlc3RfYml0KERNQV9GRU5D RV9GTEFHX0VOQUJMRV9TSUdOQUxfQklULCAmcnEtPmZlbmNlLmZsYWdzKSkKPiArCQlpbnRlbF9l bmdpbmVfY2FuY2VsX3NpZ25hbGluZyhycSk7Cj4gKwlpZiAocnEtPndhaXRib29zdCkgewo+ICsJ CUdFTV9CVUdfT04oIWF0b21pY19yZWFkKCZycS0+aTkxNS0+Z3RfcG0ucnBzLm51bV93YWl0ZXJz KSk7Cj4gKwkJYXRvbWljX2RlYygmcnEtPmk5MTUtPmd0X3BtLnJwcy5udW1fd2FpdGVycyk7Cj4g Kwl9Cj4gKwlzcGluX3VubG9jaygmcnEtPmxvY2spOwo+ICsKPiArCWxvY2FsX2lycV9lbmFibGUo KTsKPiArCj4gKwkvKgo+ICsJICogVGhlIGJhY2tpbmcgb2JqZWN0IGZvciB0aGUgY29udGV4dCBp cyBkb25lIGFmdGVyIHN3aXRjaGluZyB0byB0aGUKPiArCSAqICpuZXh0KiBjb250ZXh0LiBUaGVy ZWZvcmUgd2UgY2Fubm90IHJldGlyZSB0aGUgcHJldmlvdXMgY29udGV4dCB1bnRpbAo+ICsJICog dGhlIG5leHQgY29udGV4dCBoYXMgYWxyZWFkeSBzdGFydGVkIHJ1bm5pbmcuIEhvd2V2ZXIsIHNp bmNlIHdlCj4gKwkgKiBjYW5ub3QgdGFrZSB0aGUgcmVxdWlyZWQgbG9ja3MgYXQgaTkxNV9yZXF1 ZXN0X3N1Ym1pdCgpIHdlCj4gKwkgKiBkZWZlciB0aGUgdW5waW5uaW5nIG9mIHRoZSBhY3RpdmUg Y29udGV4dCB0byBub3csIHJldGlyZW1lbnQgb2YKPiArCSAqIHRoZSBzdWJzZXF1ZW50IHJlcXVl c3QuCj4gKwkgKi8KPiArCWlmIChlbmdpbmUtPmxhc3RfcmV0aXJlZF9jb250ZXh0KQo+ICsJCWlu dGVsX2NvbnRleHRfdW5waW4oZW5naW5lLT5sYXN0X3JldGlyZWRfY29udGV4dCwgZW5naW5lKTsK PiArCWVuZ2luZS0+bGFzdF9yZXRpcmVkX2NvbnRleHQgPSBycS0+Y3R4Owo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBfX3JldGlyZV9lbmdpbmVfdXB0byhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsCj4gKwkJCQkgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gK3sKPiArCXN0cnVjdCBp OTE1X3JlcXVlc3QgKnRtcDsKPiArCj4gKwlpZiAobGlzdF9lbXB0eSgmcnEtPmxpbmspKQo+ICsJ CXJldHVybjsKPiArCj4gKwlkbyB7Cj4gKwkJdG1wID0gbGlzdF9maXJzdF9lbnRyeSgmZW5naW5l LT50aW1lbGluZS0+cmVxdWVzdHMsCj4gKwkJCQkgICAgICAgdHlwZW9mKCp0bXApLCBsaW5rKTsK PiArCj4gKwkJR0VNX0JVR19PTih0bXAtPmVuZ2luZSAhPSBlbmdpbmUpOwoKVmVyeSBtaW5vciAt IG1vdmUgdGhpcyBhc3NlcnQgdG8gb3V0c2lkZSB0aGUgbG9vcCBhcyBycS0+ZW5naW5lICE9IGVu Z2luZT8KCj4gKwkJX19yZXRpcmVfZW5naW5lX3JlcXVlc3QoZW5naW5lLCB0bXApOwo+ICsJfSB3 aGlsZSAodG1wICE9IHJxKTsKPiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkIGk5MTVfcmVxdWVzdF9y ZXRpcmUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAgIHsKPiAtCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVuZ2luZTsKPiAgIAlzdHJ1Y3QgaTkxNV9n ZW1fYWN0aXZlICphY3RpdmUsICpuZXh0Owo+ICAgCj4gICAJR0VNX1RSQUNFKCIlcyBmZW5jZSAl bGx4OiVkLCBnbG9iYWw9JWQsIGN1cnJlbnQgJWRcbiIsCj4gLQkJICBlbmdpbmUtPm5hbWUsCj4g KwkJICByZXF1ZXN0LT5lbmdpbmUtPm5hbWUsCj4gICAJCSAgcmVxdWVzdC0+ZmVuY2UuY29udGV4 dCwgcmVxdWVzdC0+ZmVuY2Uuc2Vxbm8sCj4gICAJCSAgcmVxdWVzdC0+Z2xvYmFsX3NlcW5vLAo+ IC0JCSAgaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpKTsKPiArCQkgIGludGVsX2VuZ2lu ZV9nZXRfc2Vxbm8ocmVxdWVzdC0+ZW5naW5lKSk7Cj4gICAKPiAgIAlsb2NrZGVwX2Fzc2VydF9o ZWxkKCZyZXF1ZXN0LT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiAgIAlHRU1fQlVHX09OKCFp OTE1X3N3X2ZlbmNlX3NpZ25hbGVkKCZyZXF1ZXN0LT5zdWJtaXQpKTsKPiAgIAlHRU1fQlVHX09O KCFpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJlcXVlc3QpKTsKPiAtCUdFTV9CVUdfT04oIXJlcXVl c3QtPmk5MTUtPmd0LmFjdGl2ZV9yZXF1ZXN0cyk7Cj4gICAKPiAgIAl0cmFjZV9pOTE1X3JlcXVl c3RfcmV0aXJlKHJlcXVlc3QpOwo+ICAgCj4gLQlzcGluX2xvY2tfaXJxKCZlbmdpbmUtPnRpbWVs aW5lLT5sb2NrKTsKPiAtCWxpc3RfZGVsX2luaXQoJnJlcXVlc3QtPmxpbmspOwo+IC0Jc3Bpbl91 bmxvY2tfaXJxKCZlbmdpbmUtPnRpbWVsaW5lLT5sb2NrKTsKPiAtCj4gICAJYWR2YW5jZV9yaW5n KHJlcXVlc3QpOwo+IC0KPiAgIAlmcmVlX2NhcHR1cmVfbGlzdChyZXF1ZXN0KTsKPiAgIAo+ICAg CS8qCj4gQEAgLTM5OSwyOSArNDU2LDkgQEAgc3RhdGljIHZvaWQgaTkxNV9yZXF1ZXN0X3JldGly ZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgCj4gICAJLyogUmV0aXJlbWVudCBk ZWNheXMgdGhlIGJhbiBzY29yZSBhcyBpdCBpcyBhIHNpZ24gb2YgY3R4IHByb2dyZXNzICovCj4g ICAJYXRvbWljX2RlY19pZl9wb3NpdGl2ZSgmcmVxdWVzdC0+Y3R4LT5iYW5fc2NvcmUpOwo+ICsJ aW50ZWxfY29udGV4dF91bnBpbihyZXF1ZXN0LT5jdHgsIHJlcXVlc3QtPmVuZ2luZSk7Cj4gICAK PiAtCS8qCj4gLQkgKiBUaGUgYmFja2luZyBvYmplY3QgZm9yIHRoZSBjb250ZXh0IGlzIGRvbmUg YWZ0ZXIgc3dpdGNoaW5nIHRvIHRoZQo+IC0JICogKm5leHQqIGNvbnRleHQuIFRoZXJlZm9yZSB3 ZSBjYW5ub3QgcmV0aXJlIHRoZSBwcmV2aW91cyBjb250ZXh0IHVudGlsCj4gLQkgKiB0aGUgbmV4 dCBjb250ZXh0IGhhcyBhbHJlYWR5IHN0YXJ0ZWQgcnVubmluZy4gSG93ZXZlciwgc2luY2Ugd2UK PiAtCSAqIGNhbm5vdCB0YWtlIHRoZSByZXF1aXJlZCBsb2NrcyBhdCBpOTE1X3JlcXVlc3Rfc3Vi bWl0KCkgd2UKPiAtCSAqIGRlZmVyIHRoZSB1bnBpbm5pbmcgb2YgdGhlIGFjdGl2ZSBjb250ZXh0 IHRvIG5vdywgcmV0aXJlbWVudCBvZgo+IC0JICogdGhlIHN1YnNlcXVlbnQgcmVxdWVzdC4KPiAt CSAqLwo+IC0JaWYgKGVuZ2luZS0+bGFzdF9yZXRpcmVkX2NvbnRleHQpCj4gLQkJaW50ZWxfY29u dGV4dF91bnBpbihlbmdpbmUtPmxhc3RfcmV0aXJlZF9jb250ZXh0LCBlbmdpbmUpOwo+IC0JZW5n aW5lLT5sYXN0X3JldGlyZWRfY29udGV4dCA9IHJlcXVlc3QtPmN0eDsKPiAtCj4gLQlzcGluX2xv Y2tfaXJxKCZyZXF1ZXN0LT5sb2NrKTsKPiAtCWlmICghdGVzdF9iaXQoRE1BX0ZFTkNFX0ZMQUdf U0lHTkFMRURfQklULCAmcmVxdWVzdC0+ZmVuY2UuZmxhZ3MpKQo+IC0JCWRtYV9mZW5jZV9zaWdu YWxfbG9ja2VkKCZyZXF1ZXN0LT5mZW5jZSk7Cj4gLQlpZiAodGVzdF9iaXQoRE1BX0ZFTkNFX0ZM QUdfRU5BQkxFX1NJR05BTF9CSVQsICZyZXF1ZXN0LT5mZW5jZS5mbGFncykpCj4gLQkJaW50ZWxf ZW5naW5lX2NhbmNlbF9zaWduYWxpbmcocmVxdWVzdCk7Cj4gLQlpZiAocmVxdWVzdC0+d2FpdGJv b3N0KSB7Cj4gLQkJR0VNX0JVR19PTighYXRvbWljX3JlYWQoJnJlcXVlc3QtPmk5MTUtPmd0X3Bt LnJwcy5udW1fd2FpdGVycykpOwo+IC0JCWF0b21pY19kZWMoJnJlcXVlc3QtPmk5MTUtPmd0X3Bt LnJwcy5udW1fd2FpdGVycyk7Cj4gLQl9Cj4gLQlzcGluX3VubG9ja19pcnEoJnJlcXVlc3QtPmxv Y2spOwo+ICsJX19yZXRpcmVfZW5naW5lX3VwdG8ocmVxdWVzdC0+ZW5naW5lLCByZXF1ZXN0KTsK PiAgIAo+ICAgCXVucmVzZXJ2ZV9ndChyZXF1ZXN0LT5pOTE1KTsKPiAgIAo+IEBAIC00MzEsMTgg KzQ2OCwyNCBAQCBzdGF0aWMgdm9pZCBpOTE1X3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJlcXVlc3QpCj4gICAKPiAgIHZvaWQgaTkxNV9yZXF1ZXN0X3JldGlyZV91cHRvKHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lID0gcnEtPmVuZ2luZTsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcnEtPnJp bmc7Cj4gICAJc3RydWN0IGk5MTVfcmVxdWVzdCAqdG1wOwo+ICAgCj4gKwlHRU1fVFJBQ0UoIiVz IGZlbmNlICVsbHg6JWQsIGdsb2JhbD0lZCwgY3VycmVudCAlZFxuIiwKPiArCQkgIHJxLT5lbmdp bmUtPm5hbWUsCj4gKwkJICBycS0+ZmVuY2UuY29udGV4dCwgcnEtPmZlbmNlLnNlcW5vLAo+ICsJ CSAgcnEtPmdsb2JhbF9zZXFubywKPiArCQkgIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8ocnEtPmVu Z2luZSkpOwoKTWF5YmUgd2UgY291bGQgY29uc29saWRhdGUgdGhlc2Ugd2l0aCBHRU1fVFJBQ0Vf UlEocnEsICJwcmVmaXgiKSBvciAKc29tZXRoaW5nLgoKPiArCj4gICAJbG9ja2RlcF9hc3NlcnRf aGVsZCgmcnEtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICAgCUdFTV9CVUdfT04oIWk5MTVf cmVxdWVzdF9jb21wbGV0ZWQocnEpKTsKPiAgIAo+IC0JaWYgKGxpc3RfZW1wdHkoJnJxLT5saW5r KSkKPiArCWlmIChsaXN0X2VtcHR5KCZycS0+cmluZ19saW5rKSkKPiAgIAkJcmV0dXJuOwo+ICAg Cj4gICAJZG8gewo+IC0JCXRtcCA9IGxpc3RfZmlyc3RfZW50cnkoJmVuZ2luZS0+dGltZWxpbmUt PnJlcXVlc3RzLAo+IC0JCQkJICAgICAgIHR5cGVvZigqdG1wKSwgbGluayk7Cj4gKwkJdG1wID0g bGlzdF9maXJzdF9lbnRyeSgmcmluZy0+cmVxdWVzdF9saXN0LAo+ICsJCQkJICAgICAgIHR5cGVv ZigqdG1wKSwgcmluZ19saW5rKTsKPiAgIAo+ICAgCQlpOTE1X3JlcXVlc3RfcmV0aXJlKHRtcCk7 Cj4gICAJfSB3aGlsZSAodG1wICE9IHJxKTsKPiBAQCAtNjUxLDkgKzY5NCw5IEBAIGk5MTVfcmVx dWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHN0cnVjdCBpOTE1X2dl bV9jb250ZXh0ICpjdHgpCj4gICAJaWYgKHJldCkKPiAgIAkJZ290byBlcnJfdW5yZXNlcnZlOwo+ ICAgCj4gLQkvKiBNb3ZlIHRoZSBvbGRlc3QgcmVxdWVzdCB0byB0aGUgc2xhYi1jYWNoZSAoaWYg bm90IGluIHVzZSEpICovCj4gLQlycSA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmZW5naW5l LT50aW1lbGluZS0+cmVxdWVzdHMsCj4gLQkJCQkgICAgICB0eXBlb2YoKnJxKSwgbGluayk7Cj4g KwkvKiBNb3ZlIG91ciBvbGRlc3QgcmVxdWVzdCB0byB0aGUgc2xhYi1jYWNoZSAoaWYgbm90IGlu IHVzZSEpICovCj4gKwlycSA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmcmluZy0+cmVxdWVz dF9saXN0LAo+ICsJCQkJICAgICAgdHlwZW9mKCpycSksIHJpbmdfbGluayk7CgpUaGlzIG9uZSBJ IHN0aWxsIHRoaW5rIGl0IHdpbGwgcmVkdWNlIHRoZSByZWN5Y2xpbmcgZWZmZWN0aXZlbmVzcy4g QnV0IApPSywgY2FuIGxlYXZlIGl0IGZvciBsYXRlciBpZiBpdCB3aWxsIGJlY29tZSBub3RpY2Vh YmxlLgoKPiAgIAlpZiAocnEgJiYgaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpCj4gICAJCWk5 MTVfcmVxdWVzdF9yZXRpcmUocnEpOwo+ICAgCj4gQEAgLTc3MSw2ICs4MTQsOSBAQCBpOTE1X3Jl cXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV9n ZW1fY29udGV4dCAqY3R4KQo+ICAgCWlmIChyZXQpCj4gICAJCWdvdG8gZXJyX3Vud2luZDsKPiAg IAo+ICsJLyogS2VlcCBhIHNlY29uZCBwaW4gZm9yIHRoZSBkdWFsIHJldGlyZW1lbnQgYWxvbmcg ZW5naW5lIGFuZCByaW5nICovCj4gKwlfX2ludGVsX2NvbnRleHRfcGluKHJxLT5jdHgsIGVuZ2lu ZSk7Cj4gKwo+ICAgCS8qIENoZWNrIHRoYXQgd2UgZGlkbid0IGludGVycnVwdCBvdXJzZWx2ZXMg d2l0aCBhIG5ldyByZXF1ZXN0ICovCj4gICAJR0VNX0JVR19PTihycS0+dGltZWxpbmUtPnNlcW5v ICE9IHJxLT5mZW5jZS5zZXFubyk7Cj4gICAJcmV0dXJuIHJxOwo+IEBAIC0xMzU3LDM4ICsxNDAz LDMwIEBAIGxvbmcgaTkxNV9yZXF1ZXN0X3dhaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCj4g ICAJcmV0dXJuIHRpbWVvdXQ7Cj4gICB9Cj4gICAKPiAtc3RhdGljIHZvaWQgZW5naW5lX3JldGly ZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3N0YXRpYyB2b2lk IHJpbmdfcmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nKQo+ICAgewo+ICAg CXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsICpuZXh0Owo+IC0JdTMyIHNlcW5vID0gaW50 ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwo+IC0JTElTVF9IRUFEKHJldGlyZSk7Cj4gICAK PiAtCXNwaW5fbG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2spOwo+ICAgCWxpc3RfZm9y X2VhY2hfZW50cnlfc2FmZShyZXF1ZXN0LCBuZXh0LAo+IC0JCQkJICZlbmdpbmUtPnRpbWVsaW5l LT5yZXF1ZXN0cywgbGluaykgewo+IC0JCWlmICghaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHJl cXVlc3QtPmdsb2JhbF9zZXFubykpCj4gKwkJCQkgJnJpbmctPnJlcXVlc3RfbGlzdCwgcmluZ19s aW5rKSB7Cj4gKwkJaWYgKCFpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJlcXVlc3QpKQo+ICAgCQkJ YnJlYWs7Cj4gICAKPiAtCQlsaXN0X21vdmVfdGFpbCgmcmVxdWVzdC0+bGluaywgJnJldGlyZSk7 Cj4gLQl9Cj4gLQlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2spOwo+IC0K PiAtCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZXF1ZXN0LCBuZXh0LCAmcmV0aXJlLCBsaW5r KQo+ICAgCQlpOTE1X3JlcXVlc3RfcmV0aXJlKHJlcXVlc3QpOwo+ICsJfQo+ICAgfQo+ICAgCj4g ICB2b2lkIGk5MTVfcmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+IC0JZW51bSBpbnRl bF9lbmdpbmVfaWQgaWQ7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZywgKm5leHQ7Cj4gICAK PiAgIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiAgIAo+ ICAgCWlmICghaTkxNS0+Z3QuYWN0aXZlX3JlcXVlc3RzKQo+ICAgCQlyZXR1cm47Cj4gICAKPiAt CWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKQo+IC0JCWVuZ2luZV9yZXRpcmVfcmVx dWVzdHMoZW5naW5lKTsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyaW5nLCBuZXh0LCAm aTkxNS0+Z3QucmluZ3MsIGxpbmspCj4gKwkJcmluZ19yZXRpcmVfcmVxdWVzdHMocmluZyk7Cj4g ICB9Cj4gICAKPiAgICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVCkKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV91dGlscy5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV91dGlscy5oCj4gaW5kZXggMDY5NTcxNzUyMmVhLi4wMDE2NWFkNTVm YjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV91dGlscy5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV91dGlscy5oCj4gQEAgLTEyMCw2ICsxMjAsMTIg QEAgc3RhdGljIGlubGluZSB1NjQgcHRyX3RvX3U2NChjb25zdCB2b2lkICpwdHIpCj4gICAKPiAg ICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+Cj4gICAKPiArc3RhdGljIGlubGluZSBpbnQgbGlzdF9p c19maXJzdChjb25zdCBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAo+ICsJCQkJY29uc3Qgc3RydWN0 IGxpc3RfaGVhZCAqaGVhZCkKPiArewo+ICsJcmV0dXJuIGhlYWQtPm5leHQgPT0gbGlzdDsKPiAr fQo+ICsKPiAgIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2xpc3RfZGVsX21hbnkoc3RydWN0IGxpc3Rf aGVhZCAqaGVhZCwKPiAgIAkJCQkgICBzdHJ1Y3QgbGlzdF9oZWFkICpmaXJzdCkKPiAgIHsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXggNjlmZmMwZGZlOTJi Li5hZTg5NTgwMDdkZjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jCj4gQEAgLTEwNjYsNyArMTA2Niw2IEBAIGludCBpbnRlbF9yaW5nX3BpbihzdHJ1Y3QgaW50 ZWxfcmluZyAqcmluZywKPiAgIAo+ICAgdm9pZCBpbnRlbF9yaW5nX3Jlc2V0KHN0cnVjdCBpbnRl bF9yaW5nICpyaW5nLCB1MzIgdGFpbCkKPiAgIHsKPiAtCUdFTV9CVUdfT04oIWxpc3RfZW1wdHko JnJpbmctPnJlcXVlc3RfbGlzdCkpOwo+ICAgCXJpbmctPnRhaWwgPSB0YWlsOwo+ICAgCXJpbmct PmhlYWQgPSB0YWlsOwo+ICAgCXJpbmctPmVtaXQgPSB0YWlsOwo+IEBAIC0xMTI1LDYgKzExMjQs NyBAQCBpbnRlbF9lbmdpbmVfY3JlYXRlX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLCBpbnQgc2l6ZSkKPiAgIAo+ICAgCUdFTV9CVUdfT04oIWlzX3Bvd2VyX29mXzIoc2l6ZSkp Owo+ICAgCUdFTV9CVUdfT04oUklOR19DVExfU0laRShzaXplKSAmIH5SSU5HX05SX1BBR0VTKTsK PiArCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7 Cj4gICAKPiAgIAlyaW5nID0ga3phbGxvYyhzaXplb2YoKnJpbmcpLCBHRlBfS0VSTkVMKTsKPiAg IAlpZiAoIXJpbmcpCj4gQEAgLTExNTAsNiArMTE1MCw4IEBAIGludGVsX2VuZ2luZV9jcmVhdGVf cmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBzaXplKQo+ICAgCX0KPiAg IAlyaW5nLT52bWEgPSB2bWE7Cj4gICAKPiArCWxpc3RfYWRkKCZyaW5nLT5saW5rLCAmZW5naW5l LT5pOTE1LT5ndC5yaW5ncyk7Cj4gKwo+ICAgCXJldHVybiByaW5nOwo+ICAgfQo+ICAgCj4gQEAg LTExNjEsNiArMTE2Myw4IEBAIGludGVsX3JpbmdfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZyAqcmlu ZykKPiAgIAlpOTE1X3ZtYV9jbG9zZShyaW5nLT52bWEpOwo+ICAgCV9faTkxNV9nZW1fb2JqZWN0 X3JlbGVhc2VfdW5sZXNzX2FjdGl2ZShvYmopOwo+ICAgCj4gKwlsaXN0X2RlbCgmcmluZy0+bGlu ayk7Cj4gKwo+ICAgCWtmcmVlKHJpbmcpOwo+ICAgfQo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IDI0YWYzZjEwODhiYS4uZGViODBkMDFlMGJkIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IEBAIC0xMzAsNiAr MTMwLDcgQEAgc3RydWN0IGludGVsX3Jpbmcgewo+ICAgCXZvaWQgKnZhZGRyOwo+ICAgCj4gICAJ c3RydWN0IGxpc3RfaGVhZCByZXF1ZXN0X2xpc3Q7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7 Cj4gICAKPiAgIAl1MzIgaGVhZDsKPiAgIAl1MzIgdGFpbDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZW5naW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvbW9ja19lbmdpbmUuYwo+IGluZGV4IDNlZDA1NTczMTZkNC4uNDI5Njdm YzA5ZWIwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2Nr X2VuZ2luZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZW5n aW5lLmMKPiBAQCAtMTQwLDkgKzE0MCwxOCBAQCBzdGF0aWMgc3RydWN0IGludGVsX3JpbmcgKm1v Y2tfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJSU5JVF9MSVNUX0hF QUQoJnJpbmctPnJlcXVlc3RfbGlzdCk7Cj4gICAJaW50ZWxfcmluZ191cGRhdGVfc3BhY2Uocmlu Zyk7Cj4gICAKPiArCWxpc3RfYWRkKCZyaW5nLT5saW5rLCAmZW5naW5lLT5pOTE1LT5ndC5yaW5n cyk7Cj4gKwo+ICAgCXJldHVybiByaW5nOwo+ICAgfQo+ICAgCj4gK3N0YXRpYyB2b2lkIG1vY2tf cmluZ19mcmVlKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nKQo+ICt7Cj4gKwlsaXN0X2RlbCgmcmlu Zy0+bGluayk7Cj4gKwo+ICsJa2ZyZWUocmluZyk7Cj4gK30KPiArCj4gICBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICptb2NrX2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAg IAkJCQkgICAgY29uc3QgY2hhciAqbmFtZSwKPiAgIAkJCQkgICAgaW50IGlkKQo+IEBAIC0xNTUs MTIgKzE2NCw2IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKm1vY2tfZW5naW5lKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LAo+ICAgCWlmICghZW5naW5lKQo+ICAgCQlyZXR1cm4gTlVM TDsKPiAgIAo+IC0JZW5naW5lLT5iYXNlLmJ1ZmZlciA9IG1vY2tfcmluZygmZW5naW5lLT5iYXNl KTsKPiAtCWlmICghZW5naW5lLT5iYXNlLmJ1ZmZlcikgewo+IC0JCWtmcmVlKGVuZ2luZSk7Cj4g LQkJcmV0dXJuIE5VTEw7Cj4gLQl9Cj4gLQo+ICAgCS8qIG1pbmltYWwgZW5naW5lIHNldHVwIGZv ciByZXF1ZXN0cyAqLwo+ICAgCWVuZ2luZS0+YmFzZS5pOTE1ID0gaTkxNTsKPiAgIAlzbnByaW50 ZihlbmdpbmUtPmJhc2UubmFtZSwgc2l6ZW9mKGVuZ2luZS0+YmFzZS5uYW1lKSwgIiVzIiwgbmFt ZSk7Cj4gQEAgLTE4NSw3ICsxODgsMTYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqbW9ja19l bmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gICAJdGltZXJfc2V0dXAoJmVu Z2luZS0+aHdfZGVsYXksIGh3X2RlbGF5X2NvbXBsZXRlLCAwKTsKPiAgIAlJTklUX0xJU1RfSEVB RCgmZW5naW5lLT5od19xdWV1ZSk7Cj4gICAKPiArCWVuZ2luZS0+YmFzZS5idWZmZXIgPSBtb2Nr X3JpbmcoJmVuZ2luZS0+YmFzZSk7Cj4gKwlpZiAoIWVuZ2luZS0+YmFzZS5idWZmZXIpCj4gKwkJ Z290byBlcnJfYnJlYWRjcnVtYnM7Cj4gKwo+ICAgCXJldHVybiAmZW5naW5lLT5iYXNlOwo+ICsK PiArZXJyX2JyZWFkY3J1bWJzOgo+ICsJaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMoJmVu Z2luZS0+YmFzZSk7Cj4gKwlrZnJlZShlbmdpbmUpOwo+ICsJcmV0dXJuIE5VTEw7Cj4gICB9Cj4g ICAKPiAgIHZvaWQgbW9ja19lbmdpbmVfZmx1c2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+IEBAIC0yMTksOCArMjMxLDkgQEAgdm9pZCBtb2NrX2VuZ2luZV9mcmVlKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAlpZiAoZW5naW5lLT5sYXN0X3JldGlyZWRfY29u dGV4dCkKPiAgIAkJaW50ZWxfY29udGV4dF91bnBpbihlbmdpbmUtPmxhc3RfcmV0aXJlZF9jb250 ZXh0LCBlbmdpbmUpOwo+ICAgCj4gKwltb2NrX3JpbmdfZnJlZShlbmdpbmUtPmJ1ZmZlcik7Cj4g Kwo+ICAgCWludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJzKGVuZ2luZSk7Cj4gICAKPiAtCWtm cmVlKGVuZ2luZS0+YnVmZmVyKTsKPiAgIAlrZnJlZShlbmdpbmUpOwo+ICAgfQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKPiBpbmRleCBl NmQ0Yjg4MjU5OWEuLmFjNGJhY2Y4YjViOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKPiBAQCAtNDQsNiArNDQsNyBAQCB2b2lk IG1vY2tfZGV2aWNlX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAgCQlt b2NrX2VuZ2luZV9mbHVzaChlbmdpbmUpOwo+ICAgCj4gICAJaTkxNV9yZXRpcmVfcmVxdWVzdHMo aTkxNSk7Cj4gKwlHRU1fQlVHX09OKGk5MTUtPmd0LmFjdGl2ZV9yZXF1ZXN0cyk7Cj4gICB9Cj4g ICAKPiAgIHN0YXRpYyB2b2lkIG1vY2tfZGV2aWNlX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiBAQCAtMjI0LDYgKzIyNSw3IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICptb2Nr X2dlbV9kZXZpY2Uodm9pZCkKPiAgIAkJZ290byBlcnJfZGVwZW5kZW5jaWVzOwo+ICAgCj4gICAJ bXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwlJTklUX0xJU1RfSEVBRCgm aTkxNS0+Z3QucmluZ3MpOwo+ICAgCUlOSVRfTElTVF9IRUFEKCZpOTE1LT5ndC50aW1lbGluZXMp Owo+ICAgCWVyciA9IGk5MTVfZ2VtX3RpbWVsaW5lX2luaXRfX2dsb2JhbChpOTE1KTsKPiAgIAlp ZiAoZXJyKSB7Cj4gCgpSZXZpZXdlZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGlu QGludGVsLmNvbT4KClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==