From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v3 4/5] drm/i915: Delay disabling the user interrupt for breadcrumbs Date: Mon, 27 Feb 2017 10:31:36 +0000 Message-ID: <39a7ab88-2d0e-72b7-fee5-bd6d64a7c6c9@linux.intel.com> References: <20170224180149.8737-1-chris@chris-wilson.co.uk> <20170224180149.8737-4-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id E3DAD6E374 for ; Mon, 27 Feb 2017 10:31:58 +0000 (UTC) In-Reply-To: <20170224180149.8737-4-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 List-Id: intel-gfx@lists.freedesktop.org Ck9uIDI0LzAyLzIwMTcgMTg6MDEsIENocmlzIFdpbHNvbiB3cm90ZToKPiBBIHNpZ25pZmljYW50 IGNvc3QgaW4gc2V0dGluZyB1cCBhIHdhaXQgaXMgdGhlIG92ZXJoZWFkIG9mIGVuYWJsaW5nIHRo ZQo+IGludGVycnVwdC4gQXMgd2UgZGlzYWJsZSB0aGUgaW50ZXJydXB0IHdoZW5ldmVyIHRoZSBx dWV1ZSBvZiB3YWl0ZXJzIGlzCj4gZW1wdHksIGlmIHdlIGFyZSBmcmVxdWVudGx5IHdhaXRpbmcg b24gYWx0ZXJuYXRpbmcgYmF0Y2hlcywgd2UgZW5kIHVwCj4gcmUtZW5hYmxpbmcgdGhlIGludGVy cnVwdCBvbiBhIGZyZXF1ZW50IGJhc2lzLiBXZSBkbyB3YW50IHRvIGRpc2FibGUgdGhlCj4gaW50 ZXJydXB0IGR1cmluZyBub3JtYWwgb3BlcmF0aW9ucyBhcyB1bmRlciBoaWdoIGxvYWQgaXQgbWF5 IGFkZCBzZXZlcmFsCj4gdGhvdXNhbmQgaW50ZXJydXB0cy9zIC0gd2UgaGF2ZSBiZWVuIGtub3du IGluIHRoZSBwYXN0IHRvIG9jY3VweSB3aG9sZQo+IGNvcmVzIHdpdGggb3VyIGludGVycnVwdCBo YW5kbGVyIGFmdGVyIGFjY2lkZW50YWxseSBsZWF2aW5nIHVzZXIKPiBpbnRlcnJ1cHRzIGVuYWJs ZWQuIEFzIGEgY29tcHJvbWlzZSwgbGVhdmUgdGhlIGludGVycnVwdCBlbmFibGVkIHVudGlsCj4g dGhlIG5leHQgSVJRLCBvciB0aGUgc3lzdGVtIGlzIGlkbGUuIFRoaXMgZ2l2ZXMgYSBzbWFsbCB3 aW5kb3cgZm9yIGEKPiB3YWl0ZXIgdG8ga2VlcCB0aGUgaW50ZXJydXB0IGFjdGl2ZSBhbmQgbm90 IGJlIGRlbGF5ZWQgYnkgaGF2aW5nIHRvCj4gcmUtZW5hYmxlIHRoZSBpbnRlcnJ1cHQuCj4KPiB2 MjogUmVzdG9yZSBoYW5nY2hlY2svbWlzc2VkLWlycSBkZXRlY3Rpb24gZm9yIGNvbnRpbnVhdGlv bnMKPiB2MzogQmUgbW9yZSBjYXJlZnVsIHJlc3RvcmluZyB0aGUgaGFuZ2NoZWNrIHRpbWVyIGFm dGVyIHJlc2V0Cj4gdjQ6IEJlIG1vcmUgY2FyZWZ1bCByZXN0b3JpbmcgdGhlIGZha2UgaXJxIGFm dGVyIHJlc2V0IChpZiByZXF1aXJlZCEpCj4gdjU6IFJlZG8gY2hhbmdlcyB0byBpbnRlbF9lbmdp bmVfd2FrZXVwKCkKPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwu Y29tPgo+IENjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4K PiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICB8ICAgNCAr LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAgIHwgICAyICsKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYyB8IDEzNyArKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaCAgfCAgIDcgKy0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA5NyBpbnNlcnRpb25zKCspLCA1 MyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDAxZGJiYTM4 MTNjNy4uMGFkMDgwOTg0ODc3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTI5 ODgsOCArMjk4OCwxMCBAQCBpOTE1X2dlbV9pZGxlX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCj4gIAlpZiAod2FpdF9mb3IoaW50ZWxfZXhlY2xpc3RzX2lkbGUoZGV2X3By aXYpLCAxMCkpCj4gIAkJRFJNX0VSUk9SKCJUaW1lb3V0IHdhaXRpbmcgZm9yIGVuZ2luZXMgdG8g aWRsZVxuIik7Cj4KPiAtCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkKPiAr CWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgewo+ICsJCWludGVsX2VuZ2lu ZV9kaXNhcm1fYnJlYWRjcnVtYnMoZW5naW5lKTsKPiAgCQlpOTE1X2dlbV9iYXRjaF9wb29sX2Zp bmkoJmVuZ2luZS0+YmF0Y2hfcG9vbCk7Cj4gKwl9Cj4KPiAgCUdFTV9CVUdfT04oIWRldl9wcml2 LT5ndC5hd2FrZSk7Cj4gIAlkZXZfcHJpdi0+Z3QuYXdha2UgPSBmYWxzZTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfaXJxLmMKPiBpbmRleCA3NjA3YWJhMzVmMjYuLmJhMGJiMzNlMTJlZCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC0xMDU4LDYgKzEwNTgsOCBAQCBzdGF0aWMgdm9pZCBu b3RpZnlfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAkJCXJxID0gd2Fp dC0+cmVxdWVzdDsKPgo+ICAJCXdha2VfdXBfcHJvY2Vzcyh3YWl0LT50c2spOwo+ICsJfSBlbHNl IHsKPiArCQlfX2ludGVsX2VuZ2luZV9kaXNhcm1fYnJlYWRjcnVtYnMoZW5naW5lKTsKPiAgCX0K PiAgCXNwaW5fdW5sb2NrKCZlbmdpbmUtPmJyZWFkY3J1bWJzLmxvY2spOwo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCj4gaW5kZXggZDc1MTFlODljOGFiLi44ZTgz YmUzNDMwNTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRj cnVtYnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMK PiBAQCAtMzYsOCArMzYsOCBAQCB1bnNpZ25lZCBpbnQgaW50ZWxfZW5naW5lX3dha2V1cChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAl3YWl0ID0gZW5naW5lLT5icmVhZGNydW1i cy5maXJzdF93YWl0Owo+ICAJaWYgKHdhaXQpIHsKPiAgCQlyZXQgPSBFTkdJTkVfV0FLRVVQX1dB SVRFUjsKPiAtCQlpZiAoIXdha2VfdXBfcHJvY2Vzcyh3YWl0LT50c2spKQo+IC0JCQlyZXQgfD0g RU5HSU5FX1dBS0VVUF9BQ1RJVkU7Cj4gKwkJaWYgKHdha2VfdXBfcHJvY2Vzcyh3YWl0LT50c2sp KQo+ICsJCQlyZXQgfD0gRU5HSU5FX1dBS0VVUF9BU0xFRVA7CgpXaHkgZGlkIHlvdSB3YW50IHRv IHJldmVyc2UgdGhlIGJpdCBhbmQgYWxsPwoKPiAgCX0KPiAgCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmVuZ2luZS0+YnJlYWRjcnVtYnMubG9jaywgZmxhZ3MpOwo+Cj4gQEAgLTU0LDcgKzU0LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfYnJlYWRjcnVtYnNfaGFuZ2NoZWNrKHVuc2lnbmVkIGxvbmcg ZGF0YSkKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICopZGF0YTsKPiAgCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdp bmUtPmJyZWFkY3J1bWJzOwo+Cj4gLQlpZiAoIWItPmlycV9lbmFibGVkKQo+ICsJaWYgKCFiLT5p cnFfYXJtZWQpCj4gIAkJcmV0dXJuOwo+Cj4gIAlpZiAoYi0+aGFuZ2NoZWNrX2ludGVycnVwdHMg IT0gYXRvbWljX3JlYWQoJmVuZ2luZS0+aXJxX2NvdW50KSkgewo+IEBAIC02Nyw3ICs2Nyw3IEBA IHN0YXRpYyB2b2lkIGludGVsX2JyZWFkY3J1bWJzX2hhbmdjaGVjayh1bnNpZ25lZCBsb25nIGRh dGEpCj4gIAkgKiB0byBwcm9jZXNzIHRoZSBwZW5kaW5nIGludGVycnVwdCAoZS5nLCBsb3cgcHJp b3JpdHkgdGFzayBvbiBhIGxvYWRlZAo+ICAJICogc3lzdGVtKSBhbmQgd2FpdCB1bnRpbCBpdCBz bGVlcHMgYmVmb3JlIGRlY2xhcmluZyBhIG1pc3NlZCBpbnRlcnJ1cHQuCj4gIAkgKi8KPiAtCWlm IChpbnRlbF9lbmdpbmVfd2FrZXVwKGVuZ2luZSkgJiBFTkdJTkVfV0FLRVVQX0FDVElWRSkgewo+ ICsJaWYgKCEoaW50ZWxfZW5naW5lX3dha2V1cChlbmdpbmUpICYgRU5HSU5FX1dBS0VVUF9BU0xF RVApKSB7Cj4gIAkJbW9kX3RpbWVyKCZiLT5oYW5nY2hlY2ssIHdhaXRfdGltZW91dCgpKTsKPiAg CQlyZXR1cm47Cj4gIAl9Cj4gQEAgLTgwLDYgKzgwLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfYnJl YWRjcnVtYnNfaGFuZ2NoZWNrKHVuc2lnbmVkIGxvbmcgZGF0YSkKPiAgc3RhdGljIHZvaWQgaW50 ZWxfYnJlYWRjcnVtYnNfZmFrZV9pcnEodW5zaWduZWQgbG9uZyBkYXRhKQo+ICB7Cj4gIAlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqKWRh dGE7Cj4gKwlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIgPSAmZW5naW5lLT5icmVhZGNydW1i czsKPiArCXN0cnVjdCBpbnRlbF93YWl0ICp3YWl0Owo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsK Pgo+ICAJLyoKPiAgCSAqIFRoZSB0aW1lciBwZXJzaXN0cyBpbiBjYXNlIHdlIGNhbm5vdCBlbmFi bGUgaW50ZXJydXB0cywKPiBAQCAtODgsMTAgKzkxLDE4IEBAIHN0YXRpYyB2b2lkIGludGVsX2Jy ZWFkY3J1bWJzX2Zha2VfaXJxKHVuc2lnbmVkIGxvbmcgZGF0YSkKPiAgCSAqIGV2ZXJ5IGppZmZp ZSBpbiBvcmRlciB0byBraWNrIHRoZSBvbGRlc3Qgd2FpdGVyIHRvIGRvIHRoZQo+ICAJICogY29o ZXJlbnQgc2Vxbm8gY2hlY2suCj4gIAkgKi8KPiAtCWlmICghaW50ZWxfZW5naW5lX3dha2V1cChl bmdpbmUpKQo+ICsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZiLT5sb2NrLCBmbGFncyk7Cj4gKwl3 YWl0ID0gYi0+Zmlyc3Rfd2FpdDsKPiArCWlmICh3YWl0KQo+ICsJCXdha2VfdXBfcHJvY2Vzcyh3 YWl0LT50c2spOwo+ICsJZWxzZQo+ICsJCV9faW50ZWxfZW5naW5lX2Rpc2FybV9icmVhZGNydW1i cyhlbmdpbmUpOwo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYi0+bG9jaywgZmxhZ3MpOwoK V291bGQgaXQgYmUgd29ydGggcmVzdHJ1Y3R1cmluZyB0aGUgaW50ZWxfZW5naW5lX3dha2V1cCBp biB0aGUgdG9wIGxldmVsIApmdW50aW9uIHdoaWNoIHRha2VzIHRoZSBzcGlubG9jayBhbmQgY2Fs bHMgCl9faW50ZWxfZW5naW5lX3dha2V1cChfbG9ja2VkKSB3aGljaCBkb2VzIHRoZSByZXN0LCB3 aGljaCBjb3VsZCB0aGVuIGJlIAp1c2VkIGhlcmU/Cgo+ICsJaWYgKCFiLT5pcnFfYXJtZWQpCj4g IAkJcmV0dXJuOwo+Cj4gLQltb2RfdGltZXIoJmVuZ2luZS0+YnJlYWRjcnVtYnMuZmFrZV9pcnEs IGppZmZpZXMgKyAxKTsKPiArCW1vZF90aW1lcigmYi0+ZmFrZV9pcnEsIGppZmZpZXMgKyAxKTsK Pgo+ICAJLyogRW5zdXJlIHRoYXQgZXZlbiBpZiB0aGUgR1BVIGhhbmdzLCB3ZSBnZXQgd29rZW4g dXAuCj4gIAkgKgo+IEBAIC0xMjcsNiArMTM4LDQwIEBAIHN0YXRpYyB2b2lkIGlycV9kaXNhYmxl KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCXNwaW5fdW5sb2NrKCZlbmdpbmUt Pmk5MTUtPmlycV9sb2NrKTsKPiAgfQo+Cj4gK3ZvaWQgX19pbnRlbF9lbmdpbmVfZGlzYXJtX2Jy ZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArewo+ICsJc3RydWN0 IGludGVsX2JyZWFkY3J1bWJzICpiID0gJmVuZ2luZS0+YnJlYWRjcnVtYnM7Cj4gKwo+ICsJYXNz ZXJ0X3NwaW5fbG9ja2VkKCZiLT5sb2NrKTsKPiArCj4gKwlpZiAoYi0+aXJxX2VuYWJsZWQpIHsK PiArCQlpcnFfZGlzYWJsZShlbmdpbmUpOwo+ICsJCWItPmlycV9lbmFibGVkID0gZmFsc2U7Cj4g Kwl9Cj4gKwo+ICsJYi0+aXJxX2FybWVkID0gZmFsc2U7Cj4gK30KPiArCj4gK3ZvaWQgaW50ZWxf ZW5naW5lX2Rpc2FybV9icmVhZGNydW1icyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp Cj4gK3sKPiArCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1 bWJzOwo+ICsJc3RydWN0IGludGVsX3dhaXQgKndhaXQ7Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdz Owo+ICsKPiArCWlmICghYi0+aXJxX2FybWVkKQo+ICsJCXJldHVybjsKPiArCj4gKwlzcGluX2xv Y2tfaXJxc2F2ZSgmYi0+bG9jaywgZmxhZ3MpOwo+ICsKPiArCXdhaXQgPSBiLT5maXJzdF93YWl0 Owo+ICsJaWYgKHdhaXQgJiYgd2FrZV91cF9wcm9jZXNzKHdhaXQtPnRzaykpCj4gKwkJc2V0X2Jp dChlbmdpbmUtPmlkLCAmZW5naW5lLT5pOTE1LT5ncHVfZXJyb3IubWlzc2VkX2lycV9yaW5ncyk7 Cj4gKwo+ICsJX19pbnRlbF9lbmdpbmVfZGlzYXJtX2JyZWFkY3J1bWJzKGVuZ2luZSk7Cj4gKwo+ ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYi0+bG9jaywgZmxhZ3MpOwoKX19pbnRlbF9lbmdp bmVfd2FrZXVwIGNvdWxkIGJlIHVzZWQgaGVyZSBhcyB3ZWxsLgoKPiArfQo+ICsKPiAgc3RhdGlj IGJvb2wgdXNlX2Zha2VfaXJxKGNvbnN0IHN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYikKPiAg ewo+ICAJY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0KPiBAQCAtMTQ0LDYg KzE4OSwxNSBAQCBzdGF0aWMgYm9vbCB1c2VfZmFrZV9pcnEoY29uc3Qgc3RydWN0IGludGVsX2Jy ZWFkY3J1bWJzICpiKQo+ICAJcmV0dXJuIGF0b21pY19yZWFkKCZlbmdpbmUtPmlycV9jb3VudCkg PT0gYi0+aGFuZ2NoZWNrX2ludGVycnVwdHM7Cj4gIH0KPgo+ICtzdGF0aWMgdm9pZCBlbmFibGVf ZmFrZV9pcnEoc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiKQo+ICt7Cj4gKwkvKiBFbnN1cmUg d2UgbmV2ZXIgc2xlZXAgaW5kZWZpbml0ZWx5ICovCj4gKwlpZiAoIWItPmlycV9lbmFibGVkIHx8 IHVzZV9mYWtlX2lycShiKSkKPiArCQltb2RfdGltZXIoJmItPmZha2VfaXJxLCBqaWZmaWVzICsg MSk7Cj4gKwllbHNlCj4gKwkJbW9kX3RpbWVyKCZiLT5oYW5nY2hlY2ssIHdhaXRfdGltZW91dCgp KTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgX19pbnRlbF9icmVhZGNydW1ic19lbmFibGVfaXJx KHN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYikKPiAgewo+ICAJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lID0KPiBAQCAtMTUxLDkgKzIwNSwxNyBAQCBzdGF0aWMgdm9pZCBfX2ludGVs X2JyZWFkY3J1bWJzX2VuYWJsZV9pcnEoc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiKQo+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7Cj4KPiAgCWFzc2Vy dF9zcGluX2xvY2tlZCgmYi0+bG9jayk7Cj4gLQlpZiAoYi0+cnBtX3dha2Vsb2NrKQo+ICsJaWYg KGItPmlycV9hcm1lZCkKPiAgCQlyZXR1cm47Cj4KPiArCS8qIFRoZSBicmVhZGNydW1iIGlycSB3 aWxsIGJlIGRpc2FybWVkIG9uIHRoZSBpbnRlcnJ1cHQgYWZ0ZXIgdGhlCj4gKwkgKiB3YWl0ZXJz IGFyZSBzaWduYWxlZC4gVGhpcyBnaXZlcyB1cyBhIHNpbmdsZSBpbnRlcnJ1cHQgd2luZG93IGlu Cj4gKwkgKiB3aGljaCB3ZSBjYW4gYWRkIGEgbmV3IHdhaXRlciBhbmQgYXZvaWQgdGhlIGNvc3Qg b2YgcmUtZW5hYmxpbmcKPiArCSAqIHRoZSBpcnEuCj4gKwkgKi8KPiArCWItPmlycV9hcm1lZCA9 IHRydWU7Cj4gKwlHRU1fQlVHX09OKGItPmlycV9lbmFibGVkKTsKPiArCj4gIAlpZiAoSTkxNV9T RUxGVEVTVF9PTkxZKGItPm1vY2spKSB7Cj4gIAkJLyogRm9yIG91ciBtb2NrIG9iamVjdHMgd2Ug d2FudCB0byBhdm9pZCBpbnRlcmFjdGlvbgo+ICAJCSAqIHdpdGggdGhlIHJlYWwgaGFyZHdhcmUg KHdoaWNoIGlzIG5vdCBzZXQgdXApLiBTbwo+IEBAIC0xNjIsMTcgKzIyNCwxNSBAQCBzdGF0aWMg dm9pZCBfX2ludGVsX2JyZWFkY3J1bWJzX2VuYWJsZV9pcnEoc3RydWN0IGludGVsX2JyZWFkY3J1 bWJzICpiKQo+ICAJCSAqIGltcGxlbWVudGF0aW9uIHRvIGNhbGwgaW50ZWxfZW5naW5lX3dha2V1 cCgpCj4gIAkJICogaXRzZWxmIHdoZW4gaXQgd2FudHMgdG8gc2ltdWxhdGUgYSB1c2VyIGludGVy cnVwdCwKPiAgCQkgKi8KPiAtCQliLT5ycG1fd2FrZWxvY2sgPSB0cnVlOwo+ICAJCXJldHVybjsK PiAgCX0KPgo+ICAJLyogU2luY2Ugd2UgYXJlIHdhaXRpbmcgb24gYSByZXF1ZXN0LCB0aGUgR1BV IHNob3VsZCBiZSBidXN5Cj4gLQkgKiBhbmQgc2hvdWxkIGhhdmUgaXRzIG93biBycG0gcmVmZXJl bmNlLiBGb3IgY29tcGxldGVuZXNzLAo+IC0JICogcmVjb3JkIGFuIHJwbSByZWZlcmVuY2UgZm9y IG91cnNlbHZlcyB0byBjb3ZlciB0aGUKPiAtCSAqIGludGVycnVwdCB3ZSB1bm1hc2suCj4gKwkg KiBhbmQgc2hvdWxkIGhhdmUgaXRzIG93biBycG0gcmVmZXJlbmNlLiBUaGlzIGlzIHRyYWNrZWQK PiArCSAqIGJ5IGk5MTUtPmd0LmF3YWtlLCB3ZSBjYW4gZm9yZ28gaG9sZGluZyBvdXIgb3duIHdh a3JlZgo+ICsJICogZm9yIHRoZSBpbnRlcnJ1cHQgYXMgYmVmb3JlIGk5MTUtPmd0LmF3YWtlIGlz IHJlbGVhc2VkICh3aGVuCj4gKwkgKiB0aGUgZHJpdmVyIGlzIGlkbGUpIHdlIGRpc2FybSB0aGUg YnJlYWRjcnVtYnMuCj4gIAkgKi8KPiAtCWludGVsX3J1bnRpbWVfcG1fZ2V0X25vcmVzdW1lKGk5 MTUpOwo+IC0JYi0+cnBtX3dha2Vsb2NrID0gdHJ1ZTsKPgo+ICAJLyogTm8gaW50ZXJydXB0cz8g S2ljayB0aGUgd2FpdGVyIGV2ZXJ5IGppZmZpZSEgKi8KPiAgCWlmIChpbnRlbF9pcnFzX2VuYWJs ZWQoaTkxNSkpIHsKPiBAQCAtMTgxLDM0ICsyNDEsNyBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX2Jy ZWFkY3J1bWJzX2VuYWJsZV9pcnEoc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiKQo+ICAJCWIt PmlycV9lbmFibGVkID0gdHJ1ZTsKPiAgCX0KPgo+IC0JLyogRW5zdXJlIHdlIG5ldmVyIHNsZWVw IGluZGVmaW5pdGVseSAqLwo+IC0JaWYgKCFiLT5pcnFfZW5hYmxlZCB8fCB1c2VfZmFrZV9pcnEo YikpCj4gLQkJbW9kX3RpbWVyKCZiLT5mYWtlX2lycSwgamlmZmllcyArIDEpOwo+IC0JZWxzZQo+ IC0JCW1vZF90aW1lcigmYi0+aGFuZ2NoZWNrLCB3YWl0X3RpbWVvdXQoKSk7Cj4gLX0KPiAtCj4g LXN0YXRpYyB2b2lkIF9faW50ZWxfYnJlYWRjcnVtYnNfZGlzYWJsZV9pcnEoc3RydWN0IGludGVs X2JyZWFkY3J1bWJzICpiKQo+IC17Cj4gLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUg PQo+IC0JCWNvbnRhaW5lcl9vZihiLCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzLCBicmVhZGNydW1i cyk7Cj4gLQo+IC0JYXNzZXJ0X3NwaW5fbG9ja2VkKCZiLT5sb2NrKTsKPiAtCWlmICghYi0+cnBt X3dha2Vsb2NrKQo+IC0JCXJldHVybjsKPiAtCj4gLQlpZiAoSTkxNV9TRUxGVEVTVF9PTkxZKGIt Pm1vY2spKSB7Cj4gLQkJYi0+cnBtX3dha2Vsb2NrID0gZmFsc2U7Cj4gLQkJcmV0dXJuOwo+IC0J fQo+IC0KPiAtCWlmIChiLT5pcnFfZW5hYmxlZCkgewo+IC0JCWlycV9kaXNhYmxlKGVuZ2luZSk7 Cj4gLQkJYi0+aXJxX2VuYWJsZWQgPSBmYWxzZTsKPiAtCX0KPiAtCj4gLQlpbnRlbF9ydW50aW1l X3BtX3B1dChlbmdpbmUtPmk5MTUpOwo+IC0JYi0+cnBtX3dha2Vsb2NrID0gZmFsc2U7Cj4gKwll bmFibGVfZmFrZV9pcnEoYik7Cj4gIH0KPgo+ICBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF93 YWl0ICp0b193YWl0KHN0cnVjdCByYl9ub2RlICpub2RlKQo+IEBAIC00MzAsNyArNDYzLDYgQEAg c3RhdGljIHZvaWQgX19pbnRlbF9lbmdpbmVfcmVtb3ZlX3dhaXQoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLAo+ICAJCQl3YWtlX3VwX3Byb2Nlc3MoYi0+Zmlyc3Rfd2FpdC0+dHNrKTsK PiAgCQl9IGVsc2Ugewo+ICAJCQliLT5maXJzdF93YWl0ID0gTlVMTDsKPiAtCQkJX19pbnRlbF9i cmVhZGNydW1ic19kaXNhYmxlX2lycShiKTsKPiAgCQl9Cj4gIAl9IGVsc2Ugewo+ICAJCUdFTV9C VUdfT04ocmJfZmlyc3QoJmItPndhaXRlcnMpID09ICZ3YWl0LT5ub2RlKTsKPiBAQCAtNzIyLDE1 ICs3NTQsMjAgQEAgdm9pZCBpbnRlbF9lbmdpbmVfcmVzZXRfYnJlYWRjcnVtYnMoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJY2FuY2VsX2Zha2VfaXJxKGVuZ2luZSk7Cj4gIAlz cGluX2xvY2tfaXJxKCZiLT5sb2NrKTsKPgo+IC0JX19pbnRlbF9icmVhZGNydW1ic19kaXNhYmxl X2lycShiKTsKPiAtCWlmIChpbnRlbF9lbmdpbmVfaGFzX3dhaXRlcihlbmdpbmUpKSB7Cj4gLQkJ X19pbnRlbF9icmVhZGNydW1ic19lbmFibGVfaXJxKGIpOwo+IC0JCWlmICh0ZXN0X2JpdChFTkdJ TkVfSVJRX0JSRUFEQ1JVTUIsICZlbmdpbmUtPmlycV9wb3N0ZWQpKQo+IC0JCQl3YWtlX3VwX3By b2Nlc3MoYi0+Zmlyc3Rfd2FpdC0+dHNrKTsKPiAtCX0gZWxzZSB7Cj4gLQkJLyogc2FuaXRpemUg dGhlIElNUiBhbmQgdW5tYXNrIGFueSBhdXhpbGlhcnkgaW50ZXJydXB0cyAqLwo+ICsJaWYgKGIt PmlycV9lbmFibGVkKQo+ICsJCWlycV9lbmFibGUoZW5naW5lKTsKPiArCWVsc2UKPiAgCQlpcnFf ZGlzYWJsZShlbmdpbmUpOwo+IC0JfQo+ICsKPiArCS8qIFRoZSBlbmdpbmUgaXMgY3VycmVudGx5 IGlkbGUgKHdlIGhhdmVuJ3Qgc3RhcnRlZCBpdCB5ZXQpLCB0aGVyZQo+ICsJICogaXMgbm8gcG9z c2liaWxpdHkgZm9yIGEgbWlzc2VkIGludGVycnVwdCBhcyB3ZSBlbmFibGVkIHRoZSBpcnEKPiAr CSAqIGFuZCBzbyB3ZSBjYW4gY2xlYXIgdGhlIGltbWVkaWF0ZSB3YWtldXAgKHVudGlsIGEgcmVh bCBpbnRlcnJ1cHQKPiArCSAqIGFycml2ZXMgZm9yIHRoZSB3YWl0ZXIpLgo+ICsJICovCj4gKwlj bGVhcl9iaXQoRU5HSU5FX0lSUV9CUkVBRENSVU1CLCAmZW5naW5lLT5pcnFfcG9zdGVkKTsKCldo byBzZXQgdGhpcyBiaXQgY29taW5nIGhlcmUgYWZ0ZXIgYSByZXNldD8gU291bmRzIGxpa2UgaXQg d291bGQgYmUgCndvcnRoIGFkZGluZyB0byB0aGUgY29tbWVudC4KCj4gKwo+ICsJaWYgKGItPmly cV9hcm1lZCkKPiArCQllbmFibGVfZmFrZV9pcnEoYik7Cj4KPiAgCXNwaW5fdW5sb2NrX2lycSgm Yi0+bG9jayk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4g aW5kZXggOTc0ZWMxMWQyYjFkLi4zZGQ2ZWVlNGEwOGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gQEAgLTI0Niw4ICsyNDYsOCBAQCBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzIHsKPgo+ICAJCXVuc2lnbmVkIGludCBoYW5nY2hlY2tfaW50ZXJydXB0czsKPgo+ ICsJCWJvb2wgaXJxX2FybWVkIDogMTsKPiAgCQlib29sIGlycV9lbmFibGVkIDogMTsKPiAtCQli b29sIHJwbV93YWtlbG9jayA6IDE7Cj4gIAkJSTkxNV9TRUxGVEVTVF9ERUNMQVJFKGJvb2wgbW9j ayA6IDEpOwo+ICAJfSBicmVhZGNydW1iczsKPgo+IEBAIC02NDQsNyArNjQ0LDEwIEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBpbnRlbF9lbmdpbmVfaGFzX3dhaXRlcihjb25zdCBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCj4KPiAgdW5zaWduZWQgaW50IGludGVsX2VuZ2luZV93YWtldXAo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiAgI2RlZmluZSBFTkdJTkVfV0FLRVVQ X1dBSVRFUiBCSVQoMCkKPiAtI2RlZmluZSBFTkdJTkVfV0FLRVVQX0FDVElWRSBCSVQoMSkKPiAr I2RlZmluZSBFTkdJTkVfV0FLRVVQX0FTTEVFUCBCSVQoMSkKPiArCj4gK3ZvaWQgX19pbnRlbF9l bmdpbmVfZGlzYXJtX2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7 Cj4gK3ZvaWQgaW50ZWxfZW5naW5lX2Rpc2FybV9icmVhZGNydW1icyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpOwo+Cj4gIHZvaWQgaW50ZWxfZW5naW5lX3Jlc2V0X2JyZWFkY3J1bWJz KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4gIHZvaWQgaW50ZWxfZW5naW5lX2Zp bmlfYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPgoKTG9va3Mg b2theSwganVzdCBub3Qgc3VyZSB3aHkgeW91IGNvdWxkbid0IGhhdmUgbGVmdCAKRU5HSU5FX1dB S0VVUF9BQ1RJVkUgZm9yIGEgc21hbGxlciBkaWZmLiBBbmQgaWYgeW91IHdvdWxkIGFncmVlIG9y IG5vdCAKdGhlIGNvbnNvbGlkYXRpb24gb2YgaW50ZWxfZW5naW5lX3dha3VwIG9wZW4gY29kZWQg aW5zdGFuY2VzIG1ha2VzIHNlbnNlLgoKUmVnYXJkcywKClR2cnRrbwoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==