From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915/breadcrumbs: Drop request reference for the signaler thread Date: Wed, 31 Jan 2018 17:18:55 +0000 Message-ID: <3e00c71f-3df0-b8db-1318-7c4917d530ca@linux.intel.com> References: <20180122154106.5448-1-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 mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9196D6E3E6 for ; Wed, 31 Jan 2018 17:18:58 +0000 (UTC) In-Reply-To: <20180122154106.5448-1-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 Ck9uIDIyLzAxLzIwMTggMTU6NDEsIENocmlzIFdpbHNvbiB3cm90ZToKPiBJZiB3ZSByZW1lbWJl ciB0byBjYW5jZWwgdGhlIHNpZ25hbGVyIG9uIGEgcmVxdWVzdCB3aGVuIHJldGlyaW5nIGl0Cj4g KGFmdGVyIHdlIGtub3cgdGhhdCB0aGUgcmVxdWVzdCBoYXMgYmVlbiBzaWduYWxlZCksIHdlIGRv IG5vdCBuZWVkIHRvCj4gY2FycnkgYW4gYWRkaXRpb25hbCByZXF1ZXN0IGluIHRoZSBzaWduYWxl ciBpdHNlbGYuIFRoaXMgcHJldmVudHMgYW4KPiBpc3N1ZSB3aGVyZWJ5IHRoZSBzaWduYWxlciB0 aHJlYWRzIG1heSBiZSBkZWxheWVkIGFuZCBob2xkIG9uIHRvCj4gdGhvdXNhbmRzIG9mIHJlcXVl c3QgcmVmZXJlbmNlcywgY2F1c2luZyBzZXZlcmUgbWVtb3J5IGZyYWdtZW50YXRpb24gYW5kCj4g cHJlbWF0dXJlIG9vbSAobW9zdCBub3RpY2VhYmxlIG9uIDMyYiBzbmIgZHVlIHRvIHRoZSBsaW1p dGVkIEdGUF9LRVJORUwKPiBhbmQgZnJlcXVlbnQgdXNlIG9mIGludGVyLWVuZ2luZSBmZW5jZXMp Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IC0t LQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jICB8ICAgNiArLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYyB8IDE0OSArKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gICAyIGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlv bnMoKyksIDcwIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9y ZXF1ZXN0LmMKPiBpbmRleCBhMGY0NTFiNGE0ZTguLmU0ZWNhNmJhMGQwNSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKPiBAQCAtNDQxLDcgKzQ0MSwxMCBAQCBz dGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3JldGlyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcXVlc3QpCj4gICAJc3Bpbl9sb2NrX2lycSgmcmVxdWVzdC0+bG9jayk7Cj4gICAJ aWYgKHJlcXVlc3QtPndhaXRib29zdCkKPiAgIAkJYXRvbWljX2RlYygmcmVxdWVzdC0+aTkxNS0+ Z3RfcG0ucnBzLm51bV93YWl0ZXJzKTsKPiAtCWRtYV9mZW5jZV9zaWduYWxfbG9ja2VkKCZyZXF1 ZXN0LT5mZW5jZSk7Cj4gKwlpZiAoIXRlc3RfYml0KERNQV9GRU5DRV9GTEFHX1NJR05BTEVEX0JJ VCwgJnJlcXVlc3QtPmZlbmNlLmZsYWdzKSkKPiArCQlkbWFfZmVuY2Vfc2lnbmFsX2xvY2tlZCgm cmVxdWVzdC0+ZmVuY2UpOwo+ICsJaWYgKHRlc3RfYml0KERNQV9GRU5DRV9GTEFHX0VOQUJMRV9T SUdOQUxfQklULCAmcmVxdWVzdC0+ZmVuY2UuZmxhZ3MpKQo+ICsJCWludGVsX2VuZ2luZV9jYW5j ZWxfc2lnbmFsaW5nKHJlcXVlc3QpOwo+ICAgCXNwaW5fdW5sb2NrX2lycSgmcmVxdWVzdC0+bG9j ayk7Cj4gICAKPiAgIAlpOTE1X3ByaW90cmVlX2ZpbmkocmVxdWVzdC0+aTkxNSwgJnJlcXVlc3Qt PnByaW90cmVlKTsKPiBAQCAtNzM4LDYgKzc0MSw3IEBAIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Mo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICAgCj4gICAJLyogTm8gemFsbG9jLCBt dXN0IGNsZWFyIHdoYXQgd2UgbmVlZCBieSBoYW5kICovCj4gICAJcmVxLT5nbG9iYWxfc2Vxbm8g PSAwOwo+ICsJcmVxLT5zaWduYWxpbmcud2FpdC5zZXFubyA9IDA7Cj4gICAJcmVxLT5maWxlX3By aXYgPSBOVUxMOwo+ICAgCXJlcS0+YmF0Y2ggPSBOVUxMOwo+ICAgCXJlcS0+Y2FwdHVyZV9saXN0 ID0gTlVMTDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRj cnVtYnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKPiBpbmRl eCA4NmFjYWMwMTBiYjguLmUzNjY3ZGMxZTk2ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYnJlYWRjcnVtYnMuYwo+IEBAIC0yMzUsNyArMjM1LDcgQEAgdm9pZCBpbnRlbF9lbmdp bmVfZGlzYXJtX2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAg IAlzdHJ1Y3QgaW50ZWxfd2FpdCAqd2FpdCwgKm47Cj4gICAKPiAgIAlpZiAoIWItPmlycV9hcm1l ZCkKPiAtCQlnb3RvIHdha2V1cF9zaWduYWxlcjsKPiArCQlyZXR1cm47Cj4gICAKPiAgIAkvKgo+ ICAgCSAqIFdlIG9ubHkgZGlzYXJtIHRoZSBpcnEgd2hlbiB3ZSBhcmUgaWRsZSAoYWxsIHJlcXVl c3RzIGNvbXBsZXRlZCksCj4gQEAgLTI2MCwxNCArMjYwLDYgQEAgdm9pZCBpbnRlbF9lbmdpbmVf ZGlzYXJtX2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAli LT53YWl0ZXJzID0gUkJfUk9PVDsKPiAgIAo+ICAgCXNwaW5fdW5sb2NrX2lycSgmYi0+cmJfbG9j ayk7Cj4gLQo+IC0JLyoKPiAtCSAqIFRoZSBzaWduYWxpbmcgdGhyZWFkIG1heSBiZSBhc2xlZXAg aG9sZGluZyBhIHJlZmVyZW5jZSB0byBhIHJlcXVlc3QsCj4gLQkgKiB0aGF0IGhhZCBpdHMgc2ln bmFsaW5nIGNhbmNlbGxlZCBwcmlvciB0byBiZWluZyBwcmVlbXB0ZWQuIFdlIG5lZWQKPiAtCSAq IHRvIGtpY2sgdGhlIHNpZ25hbGVyLCBqdXN0IGluIGNhc2UsIHRvIHJlbGVhc2UgYW55IHN1Y2gg cmVmZXJlbmNlLgo+IC0JICovCj4gLXdha2V1cF9zaWduYWxlcjoKPiAtCXdha2VfdXBfcHJvY2Vz cyhiLT5zaWduYWxlcik7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBib29sIHVzZV9mYWtlX2lycShj b25zdCBzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIpCj4gQEAgLTY0NCw2ICs2MzYsNjIgQEAg c3RhdGljIHZvaWQgc2lnbmFsZXJfc2V0X3J0cHJpb3JpdHkodm9pZCkKPiAgIAkgc2NoZWRfc2V0 c2NoZWR1bGVyX25vY2hlY2soY3VycmVudCwgU0NIRURfRklGTywgJnBhcmFtKTsKPiAgIH0KPiAg IAo+ICtzdGF0aWMgdm9pZCBfX2ludGVsX2VuZ2luZV9yZW1vdmVfc2lnbmFsKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSwKPiArCQkJCQkgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXF1ZXN0KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIgPSAmZW5naW5l LT5icmVhZGNydW1iczsKPiArCj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZiLT5yYl9sb2NrKTsK PiArCj4gKwkvKgo+ICsJICogV2FrZSB1cCBhbGwgb3RoZXIgY29tcGxldGVkIHdhaXRlcnMgYW5k IHNlbGVjdCB0aGUKPiArCSAqIG5leHQgYm90dG9tLWhhbGYgZm9yIHRoZSBuZXh0IHVzZXIgaW50 ZXJydXB0Lgo+ICsJICovCj4gKwlfX2ludGVsX2VuZ2luZV9yZW1vdmVfd2FpdChlbmdpbmUsICZy ZXF1ZXN0LT5zaWduYWxpbmcud2FpdCk7Cj4gKwo+ICsJLyoKPiArCSAqIEZpbmQgdGhlIG5leHQg b2xkZXN0IHNpZ25hbC4gTm90ZSB0aGF0IGFzIHdlIGhhdmUKPiArCSAqIG5vdCBiZWVuIGhvbGRp bmcgdGhlIGxvY2ssIGFub3RoZXIgY2xpZW50IG1heQoKV2hpY2ggbG9jaywgcmVxdWVzdC1sb2Nr PyBiLT5maXJzdF9zaWduYWwgc2VlbXMgdG8gYWx3YXlzIGJlIHVwZGF0ZWQgCnVuZGVyIHRoZSBi LT5yYl9sb2NrLCBzbyBJIGFtIG5vdCBzdXJlIG9mIHRoZSAKcmVxdWVzdC0+c2lnbmFsaW5nLndh aXQuc2Vxbm8gY2hlY2suCgp3YWl0LnNlcW5vIGlzIGFsc28gdXBkYXRlZCB3aXRob3V0IHRoZSBy ZXF1ZXN0LT5sb2NrIGJlbG93LCBzbyBtYXliZSB5b3UgCndlcmUgdGFsa2luZyBhYm91dCB0aGUg cmJfbG9jayBhZnRlciBhbGw/CgpIb3cgZG9lcyB3YWl0LnNlcW5vIGJlY29tZXMgMCBvdXRzaWRl IHRoZSByYl9sb2NrPyBJcyBpdCBkdWUgUkNVIApidXNpbmVzcyB0aGlzIHBhdGNoIGFkZHM/IExp a2UgaXQgaXMgcmV0aXJlZCBiZWZvcmUgdGhlIHNpZ25hbGVyIHJ1bnM/Cgo+ICsJICogaGF2ZSBp bnN0YWxsZWQgYW4gZXZlbiBvbGRlciBzaWduYWwgdGhhbiB0aGUgb25lCj4gKwkgKiB3ZSBqdXN0 IGNvbXBsZXRlZCAtIHNvIGRvdWJsZSBjaGVjayB3ZSBhcmUgc3RpbGwKPiArCSAqIHRoZSBvbGRl c3QgYmVmb3JlIHBpY2tpbmcgdGhlIG5leHQgb25lLgo+ICsJICovCj4gKwlpZiAocmVxdWVzdC0+ c2lnbmFsaW5nLndhaXQuc2Vxbm8pIHsKPiArCQlpZiAocmVxdWVzdCA9PSByY3VfYWNjZXNzX3Bv aW50ZXIoYi0+Zmlyc3Rfc2lnbmFsKSkgewo+ICsJCQlzdHJ1Y3QgcmJfbm9kZSAqcmIgPSByYl9u ZXh0KCZyZXF1ZXN0LT5zaWduYWxpbmcubm9kZSk7Cj4gKwkJCXJjdV9hc3NpZ25fcG9pbnRlcihi LT5maXJzdF9zaWduYWwsCj4gKwkJCQkJICAgcmIgPyB0b19zaWduYWxlcihyYikgOiBOVUxMKTsK PiArCQl9Cj4gKwo+ICsJCXJiX2VyYXNlKCZyZXF1ZXN0LT5zaWduYWxpbmcubm9kZSwgJmItPnNp Z25hbHMpOwo+ICsJCXJlcXVlc3QtPnNpZ25hbGluZy53YWl0LnNlcW5vID0gMDsKPiArCX0KPiAr fQo+ICsKPiArc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqZmlyc3Rfc2lnbmFs KHN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYikKPiArewo+ICsJLyoKPiArCSAqIFNlZSB0aGUg YmlnIHdhcm5pbmdzIGZvciBpOTE1X2dlbV9hY3RpdmVfZ2V0X3JjdSgpIGFuZCBzaW1pbGFybHkK PiArCSAqIGZvciBkbWFfZmVuY2VfZ2V0X3JjdV9zYWZlKCkgdGhhdCBleHBsYWluIHRoZSBpbnRy aWNhY2llcyBpbnZvbHZlZAo+ICsJICogaGVyZSB3aXRoIGRlZmVhdGluZyBDUFUvY29tcGlsZXIg c3BlY3VsYXRpb24gYW5kIGVuZm9yY2luZwo+ICsJICogdGhlIHJlcXVpcmVkIG1lbW9yeSBiYXJy aWVycy4KPiArCSAqLwo+ICsJZG8gewo+ICsJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxdWVzdDsKPiArCj4gKwkJcmVxdWVzdCA9IHJjdV9kZXJlZmVyZW5jZShiLT5maXJzdF9zaWdu YWwpOwo+ICsJCWlmIChyZXF1ZXN0KQo+ICsJCQlyZXF1ZXN0ID0gaTkxNV9nZW1fcmVxdWVzdF9n ZXRfcmN1KHJlcXVlc3QpOwo+ICsKPiArCQliYXJyaWVyKCk7Cj4gKwo+ICsJCWlmICghcmVxdWVz dCB8fCByZXF1ZXN0ID09IHJjdV9hY2Nlc3NfcG9pbnRlcihiLT5maXJzdF9zaWduYWwpKQo+ICsJ CQlyZXR1cm4gcmN1X3BvaW50ZXJfaGFuZG9mZihyZXF1ZXN0KTsKPiArCj4gKwkJaTkxNV9nZW1f cmVxdWVzdF9wdXQocmVxdWVzdCk7Cj4gKwl9IHdoaWxlICgxKTsKPiArfQo+ICsKPiAgIHN0YXRp YyBpbnQgaW50ZWxfYnJlYWRjcnVtYnNfc2lnbmFsZXIodm9pZCAqYXJnKQo+ICAgewo+ICAgCXN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGFyZzsKPiBAQCAtNjY3LDQxICs3MTUsMjEg QEAgc3RhdGljIGludCBpbnRlbF9icmVhZGNydW1ic19zaWduYWxlcih2b2lkICphcmcpCj4gICAJ CSAqIGEgbmV3IGNsaWVudC4KPiAgIAkJICovCj4gICAJCXJjdV9yZWFkX2xvY2soKTsKPiAtCQly ZXF1ZXN0ID0gcmN1X2RlcmVmZXJlbmNlKGItPmZpcnN0X3NpZ25hbCk7Cj4gLQkJaWYgKHJlcXVl c3QpCj4gLQkJCXJlcXVlc3QgPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9yY3UocmVxdWVzdCk7Cj4g KwkJcmVxdWVzdCA9IGZpcnN0X3NpZ25hbChiKTsKCmdldF8gcHJlZml4IHdvdWxkIGJlIGdvb2Qg dG8gc2lnbmlmeSBhIGdldCB2cyBwZWVrLiBNYXliZSBldmVuIF9yY3Ugc3VmZml4LgoKPiAgIAkJ cmN1X3JlYWRfdW5sb2NrKCk7Cj4gICAJCWlmIChzaWduYWxfY29tcGxldGUocmVxdWVzdCkpIHsK PiAtCQkJbG9jYWxfYmhfZGlzYWJsZSgpOwo+IC0JCQlkbWFfZmVuY2Vfc2lnbmFsKCZyZXF1ZXN0 LT5mZW5jZSk7Cj4gLQkJCWxvY2FsX2JoX2VuYWJsZSgpOyAvKiBraWNrIHN0YXJ0IHRoZSB0YXNr bGV0cyAqLwo+IC0KPiAtCQkJc3Bpbl9sb2NrX2lycSgmYi0+cmJfbG9jayk7Cj4gLQo+IC0JCQkv KiBXYWtlIHVwIGFsbCBvdGhlciBjb21wbGV0ZWQgd2FpdGVycyBhbmQgc2VsZWN0IHRoZQo+IC0J CQkgKiBuZXh0IGJvdHRvbS1oYWxmIGZvciB0aGUgbmV4dCB1c2VyIGludGVycnVwdC4KPiAtCQkJ ICovCj4gLQkJCV9faW50ZWxfZW5naW5lX3JlbW92ZV93YWl0KGVuZ2luZSwKPiAtCQkJCQkJICAg JnJlcXVlc3QtPnNpZ25hbGluZy53YWl0KTsKPiAtCj4gLQkJCS8qIEZpbmQgdGhlIG5leHQgb2xk ZXN0IHNpZ25hbC4gTm90ZSB0aGF0IGFzIHdlIGhhdmUKPiAtCQkJICogbm90IGJlZW4gaG9sZGlu ZyB0aGUgbG9jaywgYW5vdGhlciBjbGllbnQgbWF5Cj4gLQkJCSAqIGhhdmUgaW5zdGFsbGVkIGFu IGV2ZW4gb2xkZXIgc2lnbmFsIHRoYW4gdGhlIG9uZQo+IC0JCQkgKiB3ZSBqdXN0IGNvbXBsZXRl ZCAtIHNvIGRvdWJsZSBjaGVjayB3ZSBhcmUgc3RpbGwKPiAtCQkJICogdGhlIG9sZGVzdCBiZWZv cmUgcGlja2luZyB0aGUgbmV4dCBvbmUuCj4gLQkJCSAqLwo+IC0JCQlpZiAocmVxdWVzdCA9PSBy Y3VfYWNjZXNzX3BvaW50ZXIoYi0+Zmlyc3Rfc2lnbmFsKSkgewo+IC0JCQkJc3RydWN0IHJiX25v ZGUgKnJiID0KPiAtCQkJCQlyYl9uZXh0KCZyZXF1ZXN0LT5zaWduYWxpbmcubm9kZSk7Cj4gLQkJ CQlyY3VfYXNzaWduX3BvaW50ZXIoYi0+Zmlyc3Rfc2lnbmFsLAo+IC0JCQkJCQkgICByYiA/IHRv X3NpZ25hbGVyKHJiKSA6IE5VTEwpOwo+ICsJCQlpZiAoIXRlc3RfYml0KERNQV9GRU5DRV9GTEFH X1NJR05BTEVEX0JJVCwKPiArCQkJCSAgICAgICZyZXF1ZXN0LT5mZW5jZS5mbGFncykpIHsKPiAr CQkJCWxvY2FsX2JoX2Rpc2FibGUoKTsKPiArCQkJCWRtYV9mZW5jZV9zaWduYWwoJnJlcXVlc3Qt PmZlbmNlKTsKPiArCQkJCWxvY2FsX2JoX2VuYWJsZSgpOyAvKiBraWNrIHN0YXJ0IHRoZSB0YXNr bGV0cyAqLwo+ICAgCQkJfQo+IC0JCQlyYl9lcmFzZSgmcmVxdWVzdC0+c2lnbmFsaW5nLm5vZGUs ICZiLT5zaWduYWxzKTsKPiAtCQkJUkJfQ0xFQVJfTk9ERSgmcmVxdWVzdC0+c2lnbmFsaW5nLm5v ZGUpOwo+IC0KPiAtCQkJc3Bpbl91bmxvY2tfaXJxKCZiLT5yYl9sb2NrKTsKPiAgIAo+IC0JCQlp OTE1X2dlbV9yZXF1ZXN0X3B1dChyZXF1ZXN0KTsKPiArCQkJaWYgKHJlcXVlc3QtPnNpZ25hbGlu Zy53YWl0LnNlcW5vKSB7Cj4gKwkJCQlzcGluX2xvY2tfaXJxKCZiLT5yYl9sb2NrKTsKPiArCQkJ CV9faW50ZWxfZW5naW5lX3JlbW92ZV9zaWduYWwoZW5naW5lLCByZXF1ZXN0KTsKPiArCQkJCXNw aW5fdW5sb2NrX2lycSgmYi0+cmJfbG9jayk7CgpUaGlzIGlzIHNhZmUgYWdhaW5zdCBkb3VibGUg aW52b2NhdGlvbiBvbiBhIHNpbmdsZSByZXF1ZXN0IChyYWNlIGJldHdlZW4gCnJldGlyZSBhbmQg c2lnbmFsZXIpIGJlY2F1c2Ugb2YgUkJfRU1QVFlfTk9ERSBndWFyZCBpbiAKX19pbnRlbF9lbmdp bmVfcmVtb3ZlX3dhaXQ/Cgo+ICsJCQl9Cj4gICAKPiAgIAkJCS8qIElmIHRoZSBlbmdpbmUgaXMg c2F0dXJhdGVkIHdlIG1heSBiZSBjb250aW51YWxseQo+ICAgCQkJICogcHJvY2Vzc2luZyBjb21w bGV0ZWQgcmVxdWVzdHMuIFRoaXMgYW5nZXJzIHRoZQo+IEBAIC03MTIsMTkgKzc0MCwxNyBAQCBz dGF0aWMgaW50IGludGVsX2JyZWFkY3J1bWJzX3NpZ25hbGVyKHZvaWQgKmFyZykKPiAgIAkJCSAq Lwo+ICAgCQkJZG9fc2NoZWR1bGUgPSBuZWVkX3Jlc2NoZWQoKTsKPiAgIAkJfQo+ICsJCWk5MTVf Z2VtX3JlcXVlc3RfcHV0KHJlcXVlc3QpOwo+ICAgCj4gICAJCWlmICh1bmxpa2VseShkb19zY2hl ZHVsZSkpIHsKPiAgIAkJCWlmIChrdGhyZWFkX3Nob3VsZF9wYXJrKCkpCj4gICAJCQkJa3RocmVh ZF9wYXJrbWUoKTsKPiAgIAo+IC0JCQlpZiAodW5saWtlbHkoa3RocmVhZF9zaG91bGRfc3RvcCgp KSkgewo+IC0JCQkJaTkxNV9nZW1fcmVxdWVzdF9wdXQocmVxdWVzdCk7Cj4gKwkJCWlmICh1bmxp a2VseShrdGhyZWFkX3Nob3VsZF9zdG9wKCkpKQo+ICAgCQkJCWJyZWFrOwo+IC0JCQl9Cj4gICAK PiAgIAkJCXNjaGVkdWxlKCk7Cj4gICAJCX0KPiAtCQlpOTE1X2dlbV9yZXF1ZXN0X3B1dChyZXF1 ZXN0KTsKPiAgIAl9IHdoaWxlICgxKTsKPiAgIAlfX3NldF9jdXJyZW50X3N0YXRlKFRBU0tfUlVO TklORyk7Cj4gICAKPiBAQCAtNzUzLDEyICs3NzksMTIgQEAgdm9pZCBpbnRlbF9lbmdpbmVfZW5h YmxlX3NpZ25hbGluZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4gICAJ aWYgKCFzZXFubykKPiAgIAkJcmV0dXJuOwo+ICAgCj4gKwlzcGluX2xvY2soJmItPnJiX2xvY2sp Owo+ICsKPiArCUdFTV9CVUdfT04ocmVxdWVzdC0+c2lnbmFsaW5nLndhaXQuc2Vxbm8pOwo+ICAg CXJlcXVlc3QtPnNpZ25hbGluZy53YWl0LnRzayA9IGItPnNpZ25hbGVyOwo+ICAgCXJlcXVlc3Qt PnNpZ25hbGluZy53YWl0LnJlcXVlc3QgPSByZXF1ZXN0Owo+ICAgCXJlcXVlc3QtPnNpZ25hbGlu Zy53YWl0LnNlcW5vID0gc2Vxbm87Cj4gLQlpOTE1X2dlbV9yZXF1ZXN0X2dldChyZXF1ZXN0KTsK PiAtCj4gLQlzcGluX2xvY2soJmItPnJiX2xvY2spOwo+ICAgCj4gICAJLyogRmlyc3QgYWRkIG91 cnNlbHZlcyBpbnRvIHRoZSBsaXN0IG9mIHdhaXRlcnMsIGJ1dCByZWdpc3RlciBvdXIKPiAgIAkg KiBib3R0b20taGFsZiBhcyB0aGUgc2lnbmFsbGVyIHRocmVhZC4gQXMgcGVyIHVzdWFsLCBvbmx5 IHRoZSBvbGRlc3QKPiBAQCAtNzk3LDcgKzgyMyw3IEBAIHZvaWQgaW50ZWxfZW5naW5lX2VuYWJs ZV9zaWduYWxpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ICAgCQkJ cmN1X2Fzc2lnbl9wb2ludGVyKGItPmZpcnN0X3NpZ25hbCwgcmVxdWVzdCk7Cj4gICAJfSBlbHNl IHsKPiAgIAkJX19pbnRlbF9lbmdpbmVfcmVtb3ZlX3dhaXQoZW5naW5lLCAmcmVxdWVzdC0+c2ln bmFsaW5nLndhaXQpOwo+IC0JCWk5MTVfZ2VtX3JlcXVlc3RfcHV0KHJlcXVlc3QpOwo+ICsJCXJl cXVlc3QtPnNpZ25hbGluZy53YWl0LnNlcW5vID0gMDsKPiAgIAkJd2FrZXVwID0gZmFsc2U7Cj4g ICAJfQo+ICAgCj4gQEAgLTgwOSwzMiArODM1LDE3IEBAIHZvaWQgaW50ZWxfZW5naW5lX2VuYWJs ZV9zaWduYWxpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ICAgCj4g ICB2b2lkIGludGVsX2VuZ2luZV9jYW5jZWxfc2lnbmFsaW5nKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxdWVzdCkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSA9IHJlcXVlc3QtPmVuZ2luZTsKPiAtCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZl bmdpbmUtPmJyZWFkY3J1bWJzOwo+IC0KPiAgIAlHRU1fQlVHX09OKCFpcnFzX2Rpc2FibGVkKCkp Owo+ICAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnJlcXVlc3QtPmxvY2spOwo+IC0JR0VNX0JVR19P TighcmVxdWVzdC0+c2lnbmFsaW5nLndhaXQuc2Vxbm8pOwo+ICAgCj4gLQlzcGluX2xvY2soJmIt PnJiX2xvY2spOwo+ICsJaWYgKHJlcXVlc3QtPnNpZ25hbGluZy53YWl0LnNlcW5vKSB7CgpEbyB5 b3UgbmVlZCBzb21lIHNwZWNpYWwgYW5ub3RhdGlvbiBsaWtlIFJFQURfT05DRSBvbiB3YWl0LnNl cW5vIGV2ZXJ5IAp0aW1lIGl0IGlzIHVzZWQgZm9yIGRlY2lzaW9ucyBsaWtlIHRoaXMgb25lPwoK PiArCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXF1ZXN0LT5lbmdpbmU7Cj4g KwkJc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiID0gJmVuZ2luZS0+YnJlYWRjcnVtYnM7Cj4g ICAKPiAtCWlmICghUkJfRU1QVFlfTk9ERSgmcmVxdWVzdC0+c2lnbmFsaW5nLm5vZGUpKSB7Cj4g LQkJaWYgKHJlcXVlc3QgPT0gcmN1X2FjY2Vzc19wb2ludGVyKGItPmZpcnN0X3NpZ25hbCkpIHsK PiAtCQkJc3RydWN0IHJiX25vZGUgKnJiID0KPiAtCQkJCXJiX25leHQoJnJlcXVlc3QtPnNpZ25h bGluZy5ub2RlKTsKPiAtCQkJcmN1X2Fzc2lnbl9wb2ludGVyKGItPmZpcnN0X3NpZ25hbCwKPiAt CQkJCQkgICByYiA/IHRvX3NpZ25hbGVyKHJiKSA6IE5VTEwpOwo+IC0JCX0KPiAtCQlyYl9lcmFz ZSgmcmVxdWVzdC0+c2lnbmFsaW5nLm5vZGUsICZiLT5zaWduYWxzKTsKPiAtCQlSQl9DTEVBUl9O T0RFKCZyZXF1ZXN0LT5zaWduYWxpbmcubm9kZSk7Cj4gLQkJaTkxNV9nZW1fcmVxdWVzdF9wdXQo cmVxdWVzdCk7Cj4gKwkJc3Bpbl9sb2NrKCZiLT5yYl9sb2NrKTsKPiArCQlfX2ludGVsX2VuZ2lu ZV9yZW1vdmVfc2lnbmFsKGVuZ2luZSwgcmVxdWVzdCk7Cj4gKwkJc3Bpbl91bmxvY2soJmItPnJi X2xvY2spOwo+ICAgCX0KPiAtCj4gLQlfX2ludGVsX2VuZ2luZV9yZW1vdmVfd2FpdChlbmdpbmUs ICZyZXF1ZXN0LT5zaWduYWxpbmcud2FpdCk7Cj4gLQo+IC0Jc3Bpbl91bmxvY2soJmItPnJiX2xv Y2spOwo+IC0KPiAtCXJlcXVlc3QtPnNpZ25hbGluZy53YWl0LnNlcW5vID0gMDsKPiAgIH0KPiAg IAo+ICAgaW50IGludGVsX2VuZ2luZV9pbml0X2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKPiAKCk5vdCBzdXJlIHlldCwgYmVjYXVzZSBJIGRyZWFkIGFkZGluZyBt b3JlIGNvbXBsZXggUkNVIHJ1bGVzLiBJIHN0aWxsIApjYW4ndCB1bmRlcnN0YW5kIGhvdyBzdWJt aXNzaW9uIGNhbiBvdmVydGFrZSBpbnRlcnJ1cHQgcHJvY2Vzc2luZyBhbmQgCnNpZ25hbGluZy4g SSB3b3VsZCBoYXZlIGd1ZXNzZWQgc3VibWlzc2lvbiBwYXRoIGlzIG11Y2ggbW9yZSBDUFUgaGVh dnkgCmFuZCBhbHNvIGxvd2VyIHByaW9yaXR5LgoKQXQgbWluaW11bSBJIG5lZWQgYW5vdGhlciBw YXNzIG92ZXIgaXQuIEJ1dCBhbnl3YXksIGp1c3Qgc28geW91IGtub3cgSSAKc3RhcnRlZCBsb29r aW5nIGF0IGl0LgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK