From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 05/13] drm/i915: Cache LRCA in the context Date: Mon, 11 Jan 2016 09:38:59 +0100 Message-ID: <20160111083859.GO8076@phenom.ffwll.local> References: <1452252592-24803-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1452252592-24803-6-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by gabe.freedesktop.org (Postfix) with ESMTPS id 80CF76E212 for ; Mon, 11 Jan 2016 00:38:59 -0800 (PST) Received: by mail-wm0-f68.google.com with SMTP id f206so25186463wmf.2 for ; Mon, 11 Jan 2016 00:38:59 -0800 (PST) Content-Disposition: inline In-Reply-To: <1452252592-24803-6-git-send-email-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKYW4gMDgsIDIwMTYgYXQgMTE6Mjk6NDRBTSArMDAwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gRnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4K PiAKPiBXZSBhcmUgbm90IGFsbG93ZWQgdG8gY2FsbCBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQg ZnJvbSBpcnEKPiBjb250ZXh0IHdpdGhvdXQgdGhlIGJpZyBrZXJuZWwgbG9jayBoZWxkLgo+IAo+ IExSQ0EgbGlmZXRpbWUgaXMgd2VsbCBkZWZpbmVkIHNvIGNhY2hlIGl0IHNvIGl0IGNhbiBiZSBs b29rZWQgdXAKPiBjaGVhcGx5IGZyb20gdGhlIGludGVycnVwdCBjb250ZXh0IGFuZCBhdCBjb21t YW5kIHN1Ym1pc3Npb24KPiB0aW1lLgo+IAo+IHYyOiBBZGRlZCBpcnEgY29udGV4dCByZWFzb25p bmcgdG8gdGhlIGNvbW1pdCBtZXNzYWdlLiAoRGFuaWVsIFZldHRlcikKPiAKPiBTaWduZWQtb2Zm LWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgoKQSBpOTE1X29i al9mb3JfZWFjaF92bWEgbWFjcm8gd2l0aCBhCldBUk5fT04oIW11dGV4X2lzX2xvY2tlZChkZXYt PnN0cnVjdF9tdXRleCkpIHdvdWxkIGJlIGF3ZXNvbWUgdG8gdmFsaWRhdGUKdGhpcy4gRXNwZWNp YWxseSBzaW5jZSB0aGlzIGlzIGJ5IGZhciBub3QgdGhlIG9ubHkgdGltZSBJJ3ZlIHNlZW4gdGhp cwpidWcuIE5lZWRzIHRvIGJlIGEgZm9sbG93LXVwIHRob3VnaCB0byBhdm9pZCBzdGFsbGluZyB0 aGlzIGZpeC4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIHwg MTUgKysrKysrLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAg fCAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgIHwgNDAgKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuaCAgICB8ICAzICsrLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDI2IGluc2VydGlvbnMo KyksIDMzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4g aW5kZXggM2IwNWJkMTg5ZWFiLi43MTRhNDVjZjhhNTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwo+IEBAIC0xOTc2LDEyICsxOTc2LDEzIEBAIHN0YXRpYyBpbnQgaTkxNV9j b250ZXh0X3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAgfQo+ICAK PiAgc3RhdGljIHZvaWQgaTkxNV9kdW1wX2xyY19vYmooc3RydWN0IHNlcV9maWxlICptLAo+IC0J CQkgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+IC0JCQkgICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaikKPiArCQkJICAgICAgc3RydWN0IGludGVsX2Nv bnRleHQgKmN0eCwKPiArCQkJICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAg ewo+ICAJc3RydWN0IHBhZ2UgKnBhZ2U7Cj4gIAl1aW50MzJfdCAqcmVnX3N0YXRlOwo+ICAJaW50 IGo7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5l W3JpbmctPmlkXS5zdGF0ZTsKPiAgCXVuc2lnbmVkIGxvbmcgZ2d0dF9vZmZzZXQgPSAwOwo+ICAK PiAgCWlmIChjdHhfb2JqID09IE5VTEwpIHsKPiBAQCAtMTk5MSw3ICsxOTkyLDcgQEAgc3RhdGlj IHZvaWQgaTkxNV9kdW1wX2xyY19vYmooc3RydWN0IHNlcV9maWxlICptLAo+ICAJfQo+ICAKPiAg CXNlcV9wcmludGYobSwgIkNPTlRFWFQ6ICVzICV1XG4iLCByaW5nLT5uYW1lLAo+IC0JCSAgIGlu dGVsX2V4ZWNsaXN0c19jdHhfaWQoY3R4X29iaikpOwo+ICsJCSAgIGludGVsX2V4ZWNsaXN0c19j dHhfaWQoY3R4LCByaW5nKSk7Cj4gIAo+ICAJaWYgKCFpOTE1X2dlbV9vYmpfZ2d0dF9ib3VuZChj dHhfb2JqKSkKPiAgCQlzZXFfcHV0cyhtLCAiXHROb3QgYm91bmQgaW4gR0dUVFxuIik7Cj4gQEAg LTIwNDAsOCArMjA0MSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kdW1wX2xyYyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHZvaWQgKnVudXNlZCkKPiAgCWxpc3RfZm9yX2VhY2hfZW50cnkoY3R4LCAmZGV2X3By aXYtPmNvbnRleHRfbGlzdCwgbGluaykgewo+ICAJCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3By aXYsIGkpIHsKPiAgCQkJaWYgKHJpbmctPmRlZmF1bHRfY29udGV4dCAhPSBjdHgpCj4gLQkJCQlp OTE1X2R1bXBfbHJjX29iaihtLCByaW5nLAo+IC0JCQkJCQkgIGN0eC0+ZW5naW5lW2ldLnN0YXRl KTsKPiArCQkJCWk5MTVfZHVtcF9scmNfb2JqKG0sIGN0eCwgcmluZyk7Cj4gIAkJfQo+ICAJfQo+ ICAKPiBAQCAtMjExNSwxMSArMjExNSw4IEBAIHN0YXRpYyBpbnQgaTkxNV9leGVjbGlzdHMoc3Ry dWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICAKPiAgCQlzZXFfcHJpbnRmKG0sICJcdCVk IHJlcXVlc3RzIGluIHF1ZXVlXG4iLCBjb3VudCk7Cj4gIAkJaWYgKGhlYWRfcmVxKSB7Cj4gLQkJ CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqOwo+IC0KPiAtCQkJY3R4X29iaiA9 IGhlYWRfcmVxLT5jdHgtPmVuZ2luZVtyaW5nX2lkXS5zdGF0ZTsKPiAgCQkJc2VxX3ByaW50Ziht LCAiXHRIZWFkIHJlcXVlc3QgaWQ6ICV1XG4iLAo+IC0JCQkJICAgaW50ZWxfZXhlY2xpc3RzX2N0 eF9pZChjdHhfb2JqKSk7Cj4gKwkJCQkgICBpbnRlbF9leGVjbGlzdHNfY3R4X2lkKGhlYWRfcmVx LT5jdHgsIHJpbmcpKTsKPiAgCQkJc2VxX3ByaW50ZihtLCAiXHRIZWFkIHJlcXVlc3QgdGFpbDog JXVcbiIsCj4gIAkJCQkgICBoZWFkX3JlcS0+dGFpbCk7Cj4gIAkJfQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+IGluZGV4IDhjZjY1NWM2ZmMwMy4uYjc3YTVkODRlYWMyIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gQEAgLTg4MSw2ICs4ODEsNyBAQCBzdHJ1Y3QgaW50ZWxfY29udGV4 dCB7Cj4gIAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnN0YXRlOwo+ICAJCXN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmOwo+ICAJCWludCBwaW5fY291bnQ7Cj4gKwkJdTMyIGxy Y2E7CgpscmNfb2Zmc2V0IGltby4gQ29uc2lzdGVudCB3aXRoIG91ciBvdGhlciB1c2FnZSBpbiB0 aGUgZHJpdmVyLCBhbmQKYWN0dWFsbHkgcmVhZGFibGUuIFBsZWFzZSBhcHBseSBsaWJlcmFsbHkg ZXZlcnl3aGVyZSBlbHNlIChJIGtub3cgdGhhdApic2VwYyBjYWxscyBpdCBscmNhLCBidXQgd2Ug ZG9uJ3QgbmVlZCB0byBmb2xsb3cgYmFkIG5hbWluZyBzdHlsZXMKYmxpbmRseSkuCgpXaXRoIHRo YXQgUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cgo+ ICAJfSBlbmdpbmVbSTkxNV9OVU1fUklOR1NdOwo+ICAKPiAgCXN0cnVjdCBsaXN0X2hlYWQgbGlu azsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IGluZGV4IGZmMTQ2YTE1ZDM5NS4uZmZlMDA0 ZGUyMmIwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtMjY1LDcgKzI2NSw4 IEBAIGludCBpbnRlbF9zYW5pdGl6ZV9lbmFibGVfZXhlY2xpc3RzKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGludCBlbmFibGVfZXhlY2xpc3RzCj4gIAo+ICAvKioKPiAgICogaW50ZWxfZXhlY2xp c3RzX2N0eF9pZCgpIC0gZ2V0IHRoZSBFeGVjbGlzdHMgQ29udGV4dCBJRAo+IC0gKiBAY3R4X29i ajogTG9naWNhbCBSaW5nIENvbnRleHQgYmFja2luZyBvYmplY3QuCj4gKyAqIEBjdHg6IENvbnRl eHQgdG8gZ2V0IHRoZSBJRCBmb3IKPiArICogQHJpbmc6IEVuZ2luZSB0byBnZXQgdGhlIElEIGZv cgo+ICAgKgo+ICAgKiBEbyBub3QgY29uZnVzZSB3aXRoIGN0eC0+aWQhIFVuZm9ydHVuYXRlbHkg d2UgaGF2ZSBhIG5hbWUgb3ZlcmxvYWQKPiAgICogaGVyZTogdGhlIG9sZCBjb250ZXh0IElEIHdl IHBhc3MgdG8gdXNlcnNwYWNlIGFzIGEgaGFuZGxlciBzbyB0aGF0Cj4gQEAgLTI3NSwxNCArMjc2 LDEyIEBAIGludCBpbnRlbF9zYW5pdGl6ZV9lbmFibGVfZXhlY2xpc3RzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGludCBlbmFibGVfZXhlY2xpc3RzCj4gICAqCj4gICAqIFJldHVybjogMjAtYml0 cyBnbG9iYWxseSB1bmlxdWUgY29udGV4dCBJRC4KPiAgICovCj4gLXUzMiBpbnRlbF9leGVjbGlz dHNfY3R4X2lkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqKQo+ICt1MzIgaW50 ZWxfZXhlY2xpc3RzX2N0eF9pZChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICsJCQkgICBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICB7Cj4gLQl1MzIgbHJjYSA9IGk5MTVfZ2Vt X29ial9nZ3R0X29mZnNldChjdHhfb2JqKSArCj4gLQkJCUxSQ19QUEhXU1BfUE4gKiBQQUdFX1NJ WkU7Cj4gLQo+ICAJLyogTFJDQSBpcyByZXF1aXJlZCB0byBiZSA0SyBhbGlnbmVkIHNvIHRoZSBt b3JlIHNpZ25pZmljYW50IDIwIGJpdHMKPiAgCSAqIGFyZSBnbG9iYWxseSB1bmlxdWUgKi8KPiAt CXJldHVybiBscmNhID4+IDEyOwo+ICsJcmV0dXJuIGN0eC0+ZW5naW5lW3JpbmctPmlkXS5scmNh ID4+IDEyOwo+ICB9Cj4gIAo+ICBzdGF0aWMgYm9vbCBkaXNhYmxlX2xpdGVfcmVzdG9yZV93YShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+IEBAIC0yOTcsMTMgKzI5NiwxMSBAQCBzdGF0 aWMgYm9vbCBkaXNhYmxlX2xpdGVfcmVzdG9yZV93YShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKQo+ICB1aW50NjRfdCBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3Ioc3RydWN0IGludGVs X2NvbnRleHQgKmN0eCwKPiAgCQkJCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykK PiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2lu ZVtyaW5nLT5pZF0uc3RhdGU7Cj4gKwl1aW50NjRfdCBscmNhID0gY3R4LT5lbmdpbmVbcmluZy0+ aWRdLmxyY2E7Cj4gIAl1aW50NjRfdCBkZXNjID0gcmluZy0+Y3R4X2Rlc2NfdGVtcGxhdGU7Cj4g LQl1aW50NjRfdCBscmNhID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KGN0eF9vYmopICsKPiAt CQkJTFJDX1BQSFdTUF9QTiAqIFBBR0VfU0laRTsKPiAgCj4gIAlkZXNjIHw9IGxyY2E7Cj4gLQlk ZXNjIHw9ICh1NjQpaW50ZWxfZXhlY2xpc3RzX2N0eF9pZChjdHhfb2JqKSA8PCBHRU44X0NUWF9J RF9TSElGVDsKPiArCWRlc2MgfD0gKHU2NClpbnRlbF9leGVjbGlzdHNfY3R4X2lkKGN0eCwgcmlu ZykgPDwgR0VOOF9DVFhfSURfU0hJRlQ7Cj4gIAo+ICAJcmV0dXJuIGRlc2M7Cj4gIH0KPiBAQCAt NDYxLDkgKzQ1OCw3IEBAIHN0YXRpYyBib29sIGV4ZWNsaXN0c19jaGVja19yZW1vdmVfcmVxdWVz dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAJCQkJCSAgICBleGVjbGlzdF9saW5r KTsKPiAgCj4gIAlpZiAoaGVhZF9yZXEgIT0gTlVMTCkgewo+IC0JCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpjdHhfb2JqID0KPiAtCQkJCWhlYWRfcmVxLT5jdHgtPmVuZ2luZVtyaW5nLT5p ZF0uc3RhdGU7Cj4gLQkJaWYgKGludGVsX2V4ZWNsaXN0c19jdHhfaWQoY3R4X29iaikgPT0gcmVx dWVzdF9pZCkgewo+ICsJCWlmIChpbnRlbF9leGVjbGlzdHNfY3R4X2lkKGhlYWRfcmVxLT5jdHgs IHJpbmcpID09IHJlcXVlc3RfaWQpIHsKPiAgCQkJV0FSTihoZWFkX3JlcS0+ZWxzcF9zdWJtaXR0 ZWQgPT0gMCwKPiAgCQkJICAgICAiTmV2ZXIgc3VibWl0dGVkIGhlYWQgcmVxdWVzdFxuIik7Cj4g IAo+IEBAIC0xMDIzLDE1ICsxMDE4LDE3IEBAIGludCBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2Nh Y2hlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgfQo+ICAKPiAgc3RhdGlj IGludCBpbnRlbF9scl9jb250ZXh0X2RvX3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n LAo+IC0JCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqLAo+IC0JCXN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ICsJCQkJICAgc3RydWN0IGludGVsX2NvbnRleHQg KmN0eCkKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHJpbmctPmRldjsKPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW3JpbmctPmlk XS5zdGF0ZTsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gY3R4LT5lbmdp bmVbcmluZy0+aWRdLnJpbmdidWY7Cj4gIAl1NjQgbHJjYTsKPiAtCWludCByZXQgPSAwOwo+ICsJ aW50IHJldDsKPiAgCj4gIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJpbmctPmRldi0+c3Ry dWN0X211dGV4KSk7Cj4gKwo+ICAJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKGN0eF9vYmos IEdFTjhfTFJfQ09OVEVYVF9BTElHTiwKPiAgCQkJUElOX09GRlNFVF9CSUFTIHwgR1VDX1dPUENN X1RPUCk7Cj4gIAlpZiAocmV0KQo+IEBAIC0xMDQ3LDYgKzEwNDQsNyBAQCBzdGF0aWMgaW50IGlu dGVsX2xyX2NvbnRleHRfZG9fcGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gIAlp ZiAocmV0KQo+ICAJCWdvdG8gdW5waW5fY3R4X29iajsKPiAgCj4gKwljdHgtPmVuZ2luZVtyaW5n LT5pZF0ubHJjYSA9IGxyY2E7Cj4gIAljdHhfb2JqLT5kaXJ0eSA9IHRydWU7Cj4gIAo+ICAJLyog SW52YWxpZGF0ZSBHdUMgVExCLiAqLwo+IEBAIC0xMDY1LDExICsxMDYzLDkgQEAgc3RhdGljIGlu dCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQo+ ICB7Cj4gIAlpbnQgcmV0ID0gMDsKPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSBy cS0+cmluZzsKPiAtCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gcnEtPmN0 eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nYnVmID0gcnEtPnJpbmdidWY7Cj4gIAo+ICAJaWYgKHJxLT5jdHgtPmVuZ2luZVtyaW5nLT5p ZF0ucGluX2NvdW50KysgPT0gMCkgewo+IC0JCXJldCA9IGludGVsX2xyX2NvbnRleHRfZG9fcGlu KHJpbmcsIGN0eF9vYmosIHJpbmdidWYpOwo+ICsJCXJldCA9IGludGVsX2xyX2NvbnRleHRfZG9f cGluKHJpbmcsIHJxLT5jdHgpOwo+ICAJCWlmIChyZXQpCj4gIAkJCWdvdG8gcmVzZXRfcGluX2Nv dW50Owo+ICAJfQo+IEBAIC0xMDkxLDYgKzEwODcsNyBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRf dW5waW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKPiAgCQlpZiAoLS1ycS0+Y3R4 LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCA9PSAwKSB7Cj4gIAkJCWludGVsX3VucGluX3Jp bmdidWZmZXJfb2JqKHJpbmdidWYpOwo+ICAJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihj dHhfb2JqKTsKPiArCQkJcnEtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5scmNhID0gMDsKPiAgCQl9 Cj4gIAl9Cj4gIH0KPiBAQCAtMTk2MCwxMCArMTk1Nyw3IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9y aW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluCj4gIAkJZ290byBlcnJvcjsKPiAgCj4gIAkvKiBBcyB0aGlzIGlzIHRoZSBkZWZhdWx0IGNv bnRleHQsIGFsd2F5cyBwaW4gaXQgKi8KPiAtCXJldCA9IGludGVsX2xyX2NvbnRleHRfZG9fcGlu KAo+IC0JCQlyaW5nLAo+IC0JCQlyaW5nLT5kZWZhdWx0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5p ZF0uc3RhdGUsCj4gLQkJCXJpbmctPmRlZmF1bHRfY29udGV4dC0+ZW5naW5lW3JpbmctPmlkXS5y aW5nYnVmKTsKPiArCXJldCA9IGludGVsX2xyX2NvbnRleHRfZG9fcGluKHJpbmcsIHJpbmctPmRl ZmF1bHRfY29udGV4dCk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFJNX0VSUk9SKAo+ICAJCQkiRmFp bGVkIHRvIHBpbiBhbmQgbWFwIHJpbmdidWZmZXIgJXM6ICVkXG4iLAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5oCj4gaW5kZXggZGU0MWFkNmNkNjNkLi5mOWRiNWYxODdkNzcgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuaAo+IEBAIC0xMDYsNiArMTA2LDggQEAgdm9pZCBpbnRlbF9scl9j b250ZXh0X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCXN0cnVjdCBpbnRlbF9j b250ZXh0ICpjdHgpOwo+ICB1aW50NjRfdCBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3Ioc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAgCQkJCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZyk7Cj4gK3UzMiBpbnRlbF9leGVjbGlzdHNfY3R4X2lkKHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHgsCj4gKwkJCSAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ICAKPiAg LyogRXhlY2xpc3RzICovCj4gIGludCBpbnRlbF9zYW5pdGl6ZV9lbmFibGVfZXhlY2xpc3RzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBlbmFibGVfZXhlY2xpc3RzKTsKPiBAQCAtMTEzLDcg KzExNSw2IEBAIHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zOwo+ICBpbnQgaW50ZWxfZXhl Y2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywK PiAgCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmFyZ3MsCj4gIAkJ CSAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzKTsKPiAtdTMyIGludGVsX2V4ZWNsaXN0c19j dHhfaWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmopOwo+ICAKPiAgdm9pZCBp bnRlbF9scmNfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4gIHZv aWQgaW50ZWxfZXhlY2xpc3RzX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nKTsKPiAtLSAKPiAxLjkuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVl ciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK