From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v2 2/2] drm/i915: Delay disabling the user interrupt for breadcrumbs Date: Fri, 24 Feb 2017 10:34:07 +0000 Message-ID: References: <20170223154252.17540-1-chris@chris-wilson.co.uk> <20170223154252.17540-2-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 mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8B03B6EBFF for ; Fri, 24 Feb 2017 10:34:10 +0000 (UTC) In-Reply-To: <20170223154252.17540-2-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 Ck9uIDIzLzAyLzIwMTcgMTU6NDIsIENocmlzIFdpbHNvbiB3cm90ZToKPiBBIHNpZ25pZmljYW50 IGNvc3QgaW4gc2V0dGluZyB1cCBhIHdhaXQgaXMgdGhlIG92ZXJoZWFkIG9mIGVuYWJsaW5nIHRo ZQo+IGludGVycnVwdC4gQXMgd2UgZGlzYWJsZSB0aGUgaW50ZXJydXB0IHdoZW5ldmVyIHRoZSBx dWV1ZSBvZiB3YWl0ZXJzIGlzCj4gZW1wdHksIGlmIHdlIGFyZSBmcmVxdWVudGx5IHdhaXRpbmcg b24gYWx0ZXJuYXRpbmcgYmF0Y2hlcywgd2UgZW5kIHVwCj4gcmUtZW5hYmxpbmcgdGhlIGludGVy cnVwdCBvbiBhIGZyZXF1ZW50IGJhc2lzLiBXZSBkbyB3YW50IHRvIGRpc2FibGUgdGhlCj4gaW50 ZXJydXB0IGR1cmluZyBub3JtYWwgb3BlcmF0aW9ucyBhcyB1bmRlciBoaWdoIGxvYWQgaXQgbWF5 IGFkZCBzZXZlcmFsCj4gdGhvdXNhbmQgaW50ZXJydXB0cy9zIC0gd2UgaGF2ZSBiZWVuIGtub3du IGluIHRoZSBwYXN0IHRvIG9jY3VweSB3aG9sZQo+IGNvcmVzIHdpdGggb3VyIGludGVycnVwdCBo YW5kbGVyIGFmdGVyIGFjY2lkZW50YWxseSBsZWF2aW5nIHVzZXIKPiBpbnRlcnJ1cHRzIGVuYWJs ZWQuIEFzIGEgY29tcHJvbWlzZSwgbGVhdmUgdGhlIGludGVycnVwdCBlbmFibGVkIHVudGlsCj4g dGhlIG5leHQgSVJRLCBvciB0aGUgc3lzdGVtIGlzIGlkbGUuIFRoaXMgZ2l2ZXMgYSBzbWFsbCB3 aW5kb3cgZm9yIGEKPiB3YWl0ZXIgdG8ga2VlcCB0aGUgaW50ZXJydXB0IGFjdGl2ZSBhbmQgbm90 IGJlIGRlbGF5ZWQgYnkgaGF2aW5nIHRvCj4gcmUtZW5hYmxlIHRoZSBpbnRlcnJ1cHQuCj4KPiB2 MjogUmVzdG9yZSBoYW5nY2hlY2svbWlzc2VkLWlycSBkZXRlY3Rpb24gZm9yIGNvbnRpbnVhdGlv bnMKPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IENj OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICB8ICA0ICstCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICAgfCAgNSArLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jIHwgOTUgKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICB8 ICA0ICstCj4gIDQgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25z KC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBhODE2NzAwM2MxMGIuLjNlYzhj OTQ4ZmU0NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0yOTg4LDggKzI5ODgs MTAgQEAgaTkxNV9nZW1faWRsZV93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQo+ICAJaWYgKHdhaXRfZm9yKGludGVsX2V4ZWNsaXN0c19pZGxlKGRldl9wcml2KSwgMTApKQo+ ICAJCURSTV9FUlJPUigiVGltZW91dCB3YWl0aW5nIGZvciBlbmdpbmVzIHRvIGlkbGVcbiIpOwo+ Cj4gLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpCj4gKwlmb3JfZWFjaF9l bmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKPiArCQlpbnRlbF9lbmdpbmVfZGlzYXJtX2Jy ZWFkY3J1bWJzKGVuZ2luZSk7Cj4gIAkJaTkxNV9nZW1fYmF0Y2hfcG9vbF9maW5pKCZlbmdpbmUt PmJhdGNoX3Bvb2wpOwo+ICsJfQo+Cj4gIAlHRU1fQlVHX09OKCFkZXZfcHJpdi0+Z3QuYXdha2Up Owo+ICAJZGV2X3ByaXYtPmd0LmF3YWtlID0gZmFsc2U7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5j Cj4gaW5kZXggM2M3OTc1M2VkZjBlLi5iYTBiYjMzZTEyZWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKPiBAQCAtMTAzNiw5ICsxMDM2LDYgQEAgc3RhdGljIHZvaWQgbm90aWZ5X3Jpbmco c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpycSA9IE5VTEw7Cj4gIAlzdHJ1Y3QgaW50ZWxfd2FpdCAqd2FpdDsKPgo+IC0JaWYg KCFpbnRlbF9lbmdpbmVfaGFzX3dhaXRlcihlbmdpbmUpKQo+IC0JCXJldHVybjsKPiAtCj4gIAlh dG9taWNfaW5jKCZlbmdpbmUtPmlycV9jb3VudCk7Cj4gIAlzZXRfYml0KEVOR0lORV9JUlFfQlJF QURDUlVNQiwgJmVuZ2luZS0+aXJxX3Bvc3RlZCk7Cj4KPiBAQCAtMTA2MSw2ICsxMDU4LDggQEAg c3RhdGljIHZvaWQgbm90aWZ5X3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ ICAJCQlycSA9IHdhaXQtPnJlcXVlc3Q7Cj4KPiAgCQl3YWtlX3VwX3Byb2Nlc3Mod2FpdC0+dHNr KTsKPiArCX0gZWxzZSB7Cj4gKwkJX19pbnRlbF9lbmdpbmVfZGlzYXJtX2JyZWFkY3J1bWJzKGVu Z2luZSk7Cj4gIAl9Cj4gIAlzcGluX3VubG9jaygmZW5naW5lLT5icmVhZGNydW1icy5sb2NrKTsK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwo+IGluZGV4IDVmMjY2 NWFhODE3Yy4uYmYxNDAyMmY2YWRiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2JyZWFkY3J1bWJzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9i cmVhZGNydW1icy5jCj4gQEAgLTM1LDggKzM1LDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX2JyZWFk Y3J1bWJzX2hhbmdjaGVjayh1bnNpZ25lZCBsb25nIGRhdGEpCj4gIHsKPiAgCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSA9IChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICopZGF0YTsKPiAg CXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1bWJzOwo+ICsJ c3RydWN0IGludGVsX3dhaXQgKndhaXQ7Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+Cj4gLQlp ZiAoIWItPmlycV9lbmFibGVkKQo+ICsJaWYgKCFiLT5pcnFfYXJtZWQpCj4gIAkJcmV0dXJuOwo+ Cj4gIAlpZiAoYi0+aGFuZ2NoZWNrX2ludGVycnVwdHMgIT0gYXRvbWljX3JlYWQoJmVuZ2luZS0+ aXJxX2NvdW50KSkgewo+IEBAIC00OSwxMCArNTEsMTUgQEAgc3RhdGljIHZvaWQgaW50ZWxfYnJl YWRjcnVtYnNfaGFuZ2NoZWNrKHVuc2lnbmVkIGxvbmcgZGF0YSkKPiAgCSAqIHRvIHByb2Nlc3Mg dGhlIHBlbmRpbmcgaW50ZXJydXB0IChlLmcsIGxvdyBwcmlvcml0eSB0YXNrIG9uIGEgbG9hZGVk Cj4gIAkgKiBzeXN0ZW0pIGFuZCB3YWl0IHVudGlsIGl0IHNsZWVwcyBiZWZvcmUgZGVjbGFyaW5n IGEgbWlzc2VkIGludGVycnVwdC4KPiAgCSAqLwo+IC0JaWYgKCFpbnRlbF9lbmdpbmVfd2FrZXVw KGVuZ2luZSkpIHsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZiLT5sb2NrLCBmbGFncyk7Cj4gKwl3 YWl0ID0gYi0+Zmlyc3Rfd2FpdDsKPiArCWlmICghd2FpdCB8fCAhd2FrZV91cF9wcm9jZXNzKHdh aXQtPnRzaykpIHsKPiAgCQltb2RfdGltZXIoJmItPmhhbmdjaGVjaywgd2FpdF90aW1lb3V0KCkp Owo+IC0JCXJldHVybjsKPiArCQl3YWl0ID0gTlVMTDsKPiAgCX0KPiArCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmItPmxvY2ssIGZsYWdzKTsKPiArCWlmICghd2FpdCkKPiArCQlyZXR1cm47CgpJ IGRvbid0IHNlZSBhIGRpZmZlcmVuY2UgdmVyc3VzIHRoZSBvbGQgY29kZToKCmlmICghaW50ZWxf ZW5naW5lX3dha2V1cChlbmdpbmUpKSB7Cgltb2RfdGltZXIoLi4uKTsKCXJldHVybjsKfQoKVGhl cmUgaXMgb25seSBvbmUgaW5zdGFuY2Ugb2YgdGhlIHRpbWVyIGF0IGEgdGltZSBzbyB3ZSBkb24n dCBuZWVkIHRvIApleHRlbmQgdGhlIGxvY2sgdG8gbW9kX3RpbWVyLiBPciB5b3Ugd2VyZSB0aGlu a2luZyAKaW50ZWxfZW5naW5lX3Jlc2V0X2JyZWFkY3J1bWJzPyBCdXQgdGhlcmUgd2UgZG8gZGVs X3RpbWVyX3N5bmMgYmVmb3JlIApwcm9jZWVkaW5nIHRvIHRvdWNoIHRoZSB0aW1lci4KCj4KPiAg CURSTV9ERUJVRygiSGFuZ2NoZWNrIHRpbWVyIGVsYXBzZWQuLi4gJXMgaWRsZVxuIiwgZW5naW5l LT5uYW1lKTsKPiAgCXNldF9iaXQoZW5naW5lLT5pZCwgJmVuZ2luZS0+aTkxNS0+Z3B1X2Vycm9y Lm1pc3NlZF9pcnFfcmluZ3MpOwo+IEBAIC0xMTAsNiArMTE3LDM0IEBAIHN0YXRpYyB2b2lkIGly cV9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCXNwaW5fdW5sb2Nr KCZlbmdpbmUtPmk5MTUtPmlycV9sb2NrKTsKPiAgfQo+Cj4gK3ZvaWQgX19pbnRlbF9lbmdpbmVf ZGlzYXJtX2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArewo+ ICsJc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiID0gJmVuZ2luZS0+YnJlYWRjcnVtYnM7Cj4g Kwo+ICsJYXNzZXJ0X3NwaW5fbG9ja2VkKCZiLT5sb2NrKTsKPiArCj4gKwlpZiAoYi0+aXJxX2Vu YWJsZWQpIHsKPiArCQlpcnFfZGlzYWJsZShlbmdpbmUpOwo+ICsJCWItPmlycV9lbmFibGVkID0g ZmFsc2U7Cj4gKwl9Cj4gKwo+ICsJYi0+aXJxX2FybWVkID0gZmFsc2U7Cj4gK30KPiArCj4gK3Zv aWQgaW50ZWxfZW5naW5lX2Rpc2FybV9icmVhZGNydW1icyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUt PmJyZWFkY3J1bWJzOwo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPiArCj4gKwlpZiAoIWItPmly cV9hcm1lZCkKPiArCQlyZXR1cm47CgpTb3VuZHMgc2FmZXIgdG8gcHV0IHRoaXMgY2hlY2sgdW5k ZXIgdGhlIHNwaW5sb2NrIHNvIHJlYWRlciBjYW4gdGhpbmsgCmxlc3MuIDopIE9yIGluIGZhY3Qg ZG8gd2UgZXZlbiBuZWVkIHRoZSBjaGVjaz8gSXQncyBvbmx5IHRoZSBpZGxlIHdvcmsgCmhhbmRs ZXIgc28gY291bGQganVzdCBoYXZlIHRoZSBiZWxvdyBibG9jayBJIHRoaW5rLgoKPiArCj4gKwlz cGluX2xvY2tfaXJxc2F2ZSgmYi0+bG9jaywgZmxhZ3MpOwo+ICsJaWYgKCFpbnRlbF9lbmdpbmVf aGFzX3dhaXRlcihlbmdpbmUpKQo+ICsJCV9faW50ZWxfZW5naW5lX2Rpc2FybV9icmVhZGNydW1i cyhlbmdpbmUpOwo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYi0+bG9jaywgZmxhZ3MpOwo+ ICt9Cj4gKwo+ICBzdGF0aWMgYm9vbCB1c2VfZmFrZV9pcnEoY29uc3Qgc3RydWN0IGludGVsX2Jy ZWFkY3J1bWJzICpiKQo+ICB7Cj4gIAljb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPQo+IEBAIC0xMzQsOSArMTY5LDE3IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfYnJlYWRjcnVt YnNfZW5hYmxlX2lycShzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIpCj4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsKPgo+ICAJYXNzZXJ0X3NwaW5fbG9j a2VkKCZiLT5sb2NrKTsKPiAtCWlmIChiLT5ycG1fd2FrZWxvY2spCj4gKwlpZiAoYi0+aXJxX2Fy bWVkKQo+ICAJCXJldHVybjsKPgo+ICsJLyogVGhlIGJyZWFkY3J1bWIgaXJxIHdpbGwgYmUgZGlz YXJtZWQgb24gdGhlIGludGVycnVwdCBhZnRlciB0aGUKPiArCSAqIHdhaXRlcnMgYXJlIHNpZ25h bGVkLiBUaGlzIGdpdmVzIHVzIGEgc2luZ2xlIGludGVycnVwdCB3aW5kb3cgaW4KPiArCSAqIHdo aWNoIHdlIGNhbiBhZGQgYSBuZXcgd2FpdGVyIGFuZCBhdm9pZCB0aGUgY29zdCBvZiByZS1lbmFi bGluZwo+ICsJICogdGhlIGlycS4KPiArCSAqLwo+ICsJYi0+aXJxX2FybWVkID0gdHJ1ZTsKPiAr CUdFTV9CVUdfT04oYi0+aXJxX2VuYWJsZWQpOwo+ICsKPiAgCWlmIChJOTE1X1NFTEZURVNUX09O TFkoYi0+bW9jaykpIHsKPiAgCQkvKiBGb3Igb3VyIG1vY2sgb2JqZWN0cyB3ZSB3YW50IHRvIGF2 b2lkIGludGVyYWN0aW9uCj4gIAkJICogd2l0aCB0aGUgcmVhbCBoYXJkd2FyZSAod2hpY2ggaXMg bm90IHNldCB1cCkuIFNvCj4gQEAgLTE0NSwxNyArMTg4LDE1IEBAIHN0YXRpYyB2b2lkIF9faW50 ZWxfYnJlYWRjcnVtYnNfZW5hYmxlX2lycShzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIpCj4g IAkJICogaW1wbGVtZW50YXRpb24gdG8gY2FsbCBpbnRlbF9lbmdpbmVfd2FrZXVwKCkKPiAgCQkg KiBpdHNlbGYgd2hlbiBpdCB3YW50cyB0byBzaW11bGF0ZSBhIHVzZXIgaW50ZXJydXB0LAo+ICAJ CSAqLwo+IC0JCWItPnJwbV93YWtlbG9jayA9IHRydWU7Cj4gIAkJcmV0dXJuOwo+ICAJfQo+Cj4g IAkvKiBTaW5jZSB3ZSBhcmUgd2FpdGluZyBvbiBhIHJlcXVlc3QsIHRoZSBHUFUgc2hvdWxkIGJl IGJ1c3kKPiAtCSAqIGFuZCBzaG91bGQgaGF2ZSBpdHMgb3duIHJwbSByZWZlcmVuY2UuIEZvciBj b21wbGV0ZW5lc3MsCj4gLQkgKiByZWNvcmQgYW4gcnBtIHJlZmVyZW5jZSBmb3Igb3Vyc2VsdmVz IHRvIGNvdmVyIHRoZQo+IC0JICogaW50ZXJydXB0IHdlIHVubWFzay4KPiArCSAqIGFuZCBzaG91 bGQgaGF2ZSBpdHMgb3duIHJwbSByZWZlcmVuY2UuIFRoaXMgaXMgdHJhY2tlZAo+ICsJICogYnkg aTkxNS0+Z3QuYXdha2UsIHdlIGNhbiBmb3JnbyBob2xkaW5nIG91ciBvd24gd2FrcmVmCj4gKwkg KiBmb3IgdGhlIGludGVycnVwdCBhcyBiZWZvcmUgaTkxNS0+Z3QuYXdha2UgaXMgcmVsZWFzZWQg KHdoZW4KPiArCSAqIHRoZSBkcml2ZXIgaXMgaWRsZSkgd2UgZGlzYXJtIHRoZSBicmVhZGNydW1i cy4KPiAgCSAqLwo+IC0JaW50ZWxfcnVudGltZV9wbV9nZXRfbm9yZXN1bWUoaTkxNSk7Cj4gLQli LT5ycG1fd2FrZWxvY2sgPSB0cnVlOwo+Cj4gIAkvKiBObyBpbnRlcnJ1cHRzPyBLaWNrIHRoZSB3 YWl0ZXIgZXZlcnkgamlmZmllISAqLwo+ICAJaWYgKGludGVsX2lycXNfZW5hYmxlZChpOTE1KSkg ewo+IEBAIC0xNzMsMjkgKzIxNCw2IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfYnJlYWRjcnVtYnNf ZW5hYmxlX2lycShzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIpCj4gIAl9Cj4gIH0KPgo+IC1z dGF0aWMgdm9pZCBfX2ludGVsX2JyZWFkY3J1bWJzX2Rpc2FibGVfaXJxKHN0cnVjdCBpbnRlbF9i cmVhZGNydW1icyAqYikKPiAtewo+IC0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0K PiAtCQljb250YWluZXJfb2YoYiwgc3RydWN0IGludGVsX2VuZ2luZV9jcywgYnJlYWRjcnVtYnMp Owo+IC0KPiAtCWFzc2VydF9zcGluX2xvY2tlZCgmYi0+bG9jayk7Cj4gLQlpZiAoIWItPnJwbV93 YWtlbG9jaykKPiAtCQlyZXR1cm47Cj4gLQo+IC0JaWYgKEk5MTVfU0VMRlRFU1RfT05MWShiLT5t b2NrKSkgewo+IC0JCWItPnJwbV93YWtlbG9jayA9IGZhbHNlOwo+IC0JCXJldHVybjsKPiAtCX0K PiAtCj4gLQlpZiAoYi0+aXJxX2VuYWJsZWQpIHsKPiAtCQlpcnFfZGlzYWJsZShlbmdpbmUpOwo+ IC0JCWItPmlycV9lbmFibGVkID0gZmFsc2U7Cj4gLQl9Cj4gLQo+IC0JaW50ZWxfcnVudGltZV9w bV9wdXQoZW5naW5lLT5pOTE1KTsKPiAtCWItPnJwbV93YWtlbG9jayA9IGZhbHNlOwo+IC19Cj4g LQo+ICBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF93YWl0ICp0b193YWl0KHN0cnVjdCByYl9u b2RlICpub2RlKQo+ICB7Cj4gIAlyZXR1cm4gcmJfZW50cnkobm9kZSwgc3RydWN0IGludGVsX3dh aXQsIG5vZGUpOwo+IEBAIC00MTUsNyArNDMzLDYgQEAgc3RhdGljIHZvaWQgX19pbnRlbF9lbmdp bmVfcmVtb3ZlX3dhaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICAJCQl3YWtl X3VwX3Byb2Nlc3MoYi0+Zmlyc3Rfd2FpdC0+dHNrKTsKPiAgCQl9IGVsc2Ugewo+ICAJCQliLT5m aXJzdF93YWl0ID0gTlVMTDsKPiAtCQkJX19pbnRlbF9icmVhZGNydW1ic19kaXNhYmxlX2lycShi KTsKPiAgCQl9Cj4gIAl9IGVsc2Ugewo+ICAJCUdFTV9CVUdfT04ocmJfZmlyc3QoJmItPndhaXRl cnMpID09ICZ3YWl0LT5ub2RlKTsKPiBAQCAtNzA3LDE0ICs3MjQsMTYgQEAgdm9pZCBpbnRlbF9l bmdpbmVfcmVzZXRfYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ ICAJY2FuY2VsX2Zha2VfaXJxKGVuZ2luZSk7Cj4gIAlzcGluX2xvY2tfaXJxKCZiLT5sb2NrKTsK Pgo+IC0JX19pbnRlbF9icmVhZGNydW1ic19kaXNhYmxlX2lycShiKTsKPiArCWlmIChiLT5pcnFf ZW5hYmxlZCkKPiArCQlpcnFfZW5hYmxlKGVuZ2luZSk7Cj4gKwllbHNlCj4gKwkJaXJxX2Rpc2Fi bGUoZW5naW5lKTsKPiArCj4gIAlpZiAoaW50ZWxfZW5naW5lX2hhc193YWl0ZXIoZW5naW5lKSkg ewo+IC0JCV9faW50ZWxfYnJlYWRjcnVtYnNfZW5hYmxlX2lycShiKTsKPiAgCQlpZiAodGVzdF9i aXQoRU5HSU5FX0lSUV9CUkVBRENSVU1CLCAmZW5naW5lLT5pcnFfcG9zdGVkKSkKPiAgCQkJd2Fr ZV91cF9wcm9jZXNzKGItPmZpcnN0X3dhaXQtPnRzayk7Cj4gLQl9IGVsc2Ugewo+ICsJCW1vZF90 aW1lcigmYi0+aGFuZ2NoZWNrLCB3YWl0X3RpbWVvdXQoKSk7Cj4gIAkJLyogc2FuaXRpemUgdGhl IElNUiBhbmQgdW5tYXNrIGFueSBhdXhpbGlhcnkgaW50ZXJydXB0cyAqLwo+IC0JCWlycV9kaXNh YmxlKGVuZ2luZSk7Cj4gIAl9Cj4KPiAgCXNwaW5fdW5sb2NrX2lycSgmYi0+bG9jayk7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IGM5MGI2MGY0N2YyNS4u OWY4OTE2MGM3ZGU5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aAo+IEBAIC0yNDYsOCArMjQ2LDggQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7Cj4KPiAgCQl1 bnNpZ25lZCBpbnQgaGFuZ2NoZWNrX2ludGVycnVwdHM7Cj4KPiArCQlib29sIGlycV9hcm1lZCA6 IDE7Cj4gIAkJYm9vbCBpcnFfZW5hYmxlZCA6IDE7Cj4gLQkJYm9vbCBycG1fd2FrZWxvY2sgOiAx Owo+ICAJCUk5MTVfU0VMRlRFU1RfREVDTEFSRShib29sIG1vY2sgOiAxKTsKPiAgCX0gYnJlYWRj cnVtYnM7Cj4KPiBAQCAtNjU3LDYgKzY1Nyw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9l bmdpbmVfd2FrZXVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCXJldHVybiB3 YWtldXA7Cj4gIH0KPgo+ICt2b2lkIF9faW50ZWxfZW5naW5lX2Rpc2FybV9icmVhZGNydW1icyhz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwo+ICt2b2lkIGludGVsX2VuZ2luZV9kaXNh cm1fYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiAgdm9pZCBp bnRlbF9lbmdpbmVfcmVzZXRfYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKTsKPiAgdm9pZCBpbnRlbF9lbmdpbmVfZmluaV9icmVhZGNydW1icyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpOwo+ICBib29sIGludGVsX2JyZWFkY3J1bWJzX2J1c3koc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPgoKVGhlIHJlc3QgbG9va3MgT0ssIGJ1dCBJIHdv bmRlciBpZiBJIG1pc3NlZCBzb21ldGhpbmcgc2luY2UgdGhlIENJIAp3YXNuJ3QgaGFwcHkgd2l0 aCBpdD8KClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==