From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michal Wajdeczko" Subject: Re: [PATCH v3 05/12] drm/i915/guc: Add a second client, to be used for preemption Date: Thu, 26 Oct 2017 14:50:58 +0200 Message-ID: References: <20171025200020.16636-1-michal.winiarski@intel.com> <20171025200020.16636-6-michal.winiarski@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed"; DelSp="yes" 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 A5B136E7A4 for ; Thu, 26 Oct 2017 12:51:02 +0000 (UTC) In-Reply-To: <20171025200020.16636-6-michal.winiarski@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, =?utf-8?B?TWljaGHFgiBXaW5pYXJza2k=?= Cc: Dave Gordon List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyNSBPY3QgMjAxNyAyMjowMDoxMyArMDIwMCwgTWljaGHFgiBXaW5pYXJza2kgIAo8 bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+IHdyb3RlOgoKPiBGcm9tOiBEYXZlIEdvcmRvbiA8 ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgo+Cj4gVGhpcyBzZWNvbmQgY2xpZW50IGlzIGNyZWF0 ZWQgd2l0aCBwcmlvcml0eSBLTURfSElHSCwgYW5kIG1hcmtlZAo+IGFzIHByZWVtcHRpdmUuIFRo aXMgd2lsbCBhbGxvdyB1cyB0byByZXF1ZXN0IHByZWVtcHRpb24gdXNpbmcgR3VDICAKPiBhY3Rp b25zLgo+Cj4gdjI6IEV4dHJhY3QgY2xpZW50cyBjcmVhdGlvbiBpbnRvIGEgaGVscGVyLCBkZWJ1 Z2ZzIGZpeHVwcy4gKE1pY2hhxYIpCj4gUmVjcmVhdGUgZG9vcmJlbGwgb24gaW5pdC4gKERhbmll bGUpCj4gTW92ZSBjbGllbnRzIGludG8gYW4gYXJyYXkuCj4KPiB2MzogQW5kIG1vdmUgY2xpZW50 cyBiYWNrIGZyb20gYW4gYXJyYXksIHRvIGdldCByaWQgb2YgdGhlIGVudW0gKE1pY2hhxYIpCj4K PiBTaWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgo+ IFNpZ25lZC1vZmYtYnk6IE1pY2hhxYIgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVs LmNvbT4KPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6 IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+ Cj4gQ2M6IEplZmYgTWNHZWUgPGplZmYubWNnZWVAaW50ZWwuY29tPgo+IENjOiBNaWNoYWwgV2Fq ZGVjemtvIDxtaWNoYWwud2FqZGVjemtvQGludGVsLmNvbT4KPiBDYzogT3NjYXIgTWF0ZW8gPG9z Y2FyLm1hdGVvQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgICAgICAgIHwgICAyICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNf c3VibWlzc2lvbi5jIHwgMTEyICAKPiArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgIDEgKwo+ICAzIGZp bGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAKPiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggYzY1ZTM4MWI4NWYzLi42ZTE3OGQ3 NWJiMTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0yNDg0LDYg KzI0ODQsOCBAQCBzdGF0aWMgaW50IGk5MTVfZ3VjX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2 b2lkICAKPiAqZGF0YSkKPiAJc2VxX3ByaW50ZihtLCAiXG5HdUMgZXhlY2J1ZiBjbGllbnQgQCAl cDpcbiIsIGd1Yy0+ZXhlY2J1Zl9jbGllbnQpOwo+ICAJaTkxNV9ndWNfY2xpZW50X2luZm8obSwg ZGV2X3ByaXYsIGd1Yy0+ZXhlY2J1Zl9jbGllbnQpOwo+ICsJc2VxX3ByaW50ZihtLCAiXG5HdUMg cHJlZW1wdCBjbGllbnQgQCAlcDpcbiIsIGd1Yy0+cHJlZW1wdF9jbGllbnQpOwo+ICsJaTkxNV9n dWNfY2xpZW50X2luZm8obSwgZGV2X3ByaXYsIGd1Yy0+cHJlZW1wdF9jbGllbnQpOwo+IAlpOTE1 X2d1Y19sb2dfaW5mbyhtLCBkZXZfcHJpdik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyAgCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2d1Y19zdWJtaXNzaW9uLmMKPiBpbmRleCBkMWE1NjEzZGEyNGMuLjFkMzEyM2U3NGJjNCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiBAQCAt MzMsMTAgKzMzLDExIEBACj4gICAqCj4gICAqIEd1QyBjbGllbnQ6Cj4gICAqIEEgaTkxNV9ndWNf Y2xpZW50IHJlZmVycyB0byBhIHN1Ym1pc3Npb24gcGF0aCB0aHJvdWdoIEd1Qy4gIAo+IEN1cnJl bnRseSwgdGhlcmUKPiAtICogaXMgb25seSBvbmUgb2YgdGhlc2UgKHRoZSBleGVjYnVmX2NsaWVu dCkgYW5kIHRoaXMgb25lIGlzIGNoYXJnZWQgIAo+IHdpdGggYWxsCj4gLSAqIHN1Ym1pc3Npb25z IHRvIHRoZSBHdUMuIFRoaXMgc3RydWN0IGlzIHRoZSBvd25lciBvZiBhIGRvb3JiZWxsLCBhICAK PiBwcm9jZXNzCj4gLSAqIGRlc2NyaXB0b3IgYW5kIGEgd29ya3F1ZXVlIChhbGwgb2YgdGhlbSBp bnNpZGUgYSBzaW5nbGUgZ2VtIG9iamVjdCAgCj4gdGhhdAo+IC0gKiBjb250YWlucyBhbGwgcmVx dWlyZWQgcGFnZXMgZm9yIHRoZXNlIGVsZW1lbnRzKS4KPiArICogYXJlIHR3byBjbGllbnRzLiBP bmUgb2YgdGhlbSAodGhlIGV4ZWNidWZfY2xpZW50KSBpcyBjaGFyZ2VkIHdpdGggYWxsCj4gKyAq IHN1Ym1pc3Npb25zIHRvIHRoZSBHdUMsIHRoZSBvdGhlciBvbmUgKHByZWVtcHRfY2xpZW50KSBp cyAgCj4gcmVzcG9uc2libGUgZm9yCj4gKyAqIHByZWVtcHRpbmcgdGhlIGV4ZWNidWZfY2xpZW50 LiBUaGlzIHN0cnVjdCBpcyB0aGUgb3duZXIgb2YgYSAgCj4gZG9vcmJlbGwsIGEKPiArICogcHJv Y2VzcyBkZXNjcmlwdG9yIGFuZCBhIHdvcmtxdWV1ZSAoYWxsIG9mIHRoZW0gaW5zaWRlIGEgc2lu Z2xlIGdlbSAgCj4gb2JqZWN0Cj4gKyAqIHRoYXQgY29udGFpbnMgYWxsIHJlcXVpcmVkIHBhZ2Vz IGZvciB0aGVzZSBlbGVtZW50cykuCj4gICAqCj4gICAqIEd1QyBzdGFnZSBkZXNjcmlwdG9yOgo+ ICAgKiBEdXJpbmcgaW5pdGlhbGl6YXRpb24sIHRoZSBkcml2ZXIgYWxsb2NhdGVzIGEgc3RhdGlj IHBvb2wgb2YgMTAyNCAgCj4gc3VjaAo+IEBAIC0zNjMsNiArMzY0LDggQEAgc3RhdGljIHZvaWQg Z3VjX3N0YWdlX2Rlc2NfaW5pdChzdHJ1Y3QgaW50ZWxfZ3VjICAKPiAqZ3VjLAo+ICAJbWVtc2V0 KGRlc2MsIDAsIHNpemVvZigqZGVzYykpOwo+IAlkZXNjLT5hdHRyaWJ1dGUgPSBHVUNfU1RBR0Vf REVTQ19BVFRSX0FDVElWRSB8ICAKPiBHVUNfU1RBR0VfREVTQ19BVFRSX0tFUk5FTDsKPiArCWlm IChjbGllbnQtPnByaW9yaXR5IDw9IEdVQ19DTElFTlRfUFJJT1JJVFlfSElHSCkKCkNhbiB3ZSB1 c2UKCglpZiAoY2xpZW50LT5wcmlvcml0eSA9PSBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9ISUdI IHx8CgkgICAgY2xpZW50LT5wcmlvcml0eSA9PSBHVUNfQ0xJRU5UX1BSSU9SSVRZX0hJR0gpCgpJ IGFzc3VtZSBjb21waWxlciB3aWxsIG9wdGltaXplIGl0IHRvIHRoZSBzYW1lIGFzbSwgYnV0IHRo ZW4gd2UgY2FuCmF2b2lkIGNvbmRpdGlvbiB0aGF0IG1heSBiZSByZWFkIHdyb25nIChwcmlvcml0 eSBsZXNzIHRoZW4gaGlnaCkKCgo+ICsJCWRlc2MtPmF0dHJpYnV0ZSB8PSBHVUNfU1RBR0VfREVT Q19BVFRSX1BSRUVNUFQ7Cj4gIAlkZXNjLT5zdGFnZV9pZCA9IGNsaWVudC0+c3RhZ2VfaWQ7Cj4g IAlkZXNjLT5wcmlvcml0eSA9IGNsaWVudC0+cHJpb3JpdHk7Cj4gIAlkZXNjLT5kYl9pZCA9IGNs aWVudC0+ZG9vcmJlbGxfaWQ7Cj4gQEAgLTc2MywxNCArNzY2LDE4IEBAIHN0YXRpYyBpbnQgZ3Vj X2luaXRfZG9vcmJlbGxfaHcoc3RydWN0IGludGVsX2d1YyAgCj4gKmd1YykKPiAJLyogTm93IGZv ciBldmVyeSBjbGllbnQgKGFuZCBub3Qgb25seSBleGVjYnVmX2NsaWVudCkgbWFrZSBzdXJlIHRo ZWlyCj4gIAkgKiBkb29yYmVsbHMgYXJlIGtub3duIGJ5IHRoZSBHdUMgKi8KPiAtCS8vZm9yIChj bGllbnQgPSBjbGllbnRfbGlzdDsgY2xpZW50ICE9IE5VTEw7IGNsaWVudCA9IGNsaWVudC0+bmV4 dCkKPiAtCXsKPiAtCQlyZXQgPSBfX2NyZWF0ZV9kb29yYmVsbChjbGllbnQpOwo+IC0JCWlmIChy ZXQpIHsKPiAtCQkJRFJNX0VSUk9SKCJDb3VsZG4ndCByZWNyZWF0ZSBjbGllbnQgJXUgZG9vcmJl bGw6ICVkXG4iLAo+IC0JCQkJY2xpZW50LT5zdGFnZV9pZCwgcmV0KTsKPiAtCQkJcmV0dXJuIHJl dDsKPiAtCQl9Cj4gKwlyZXQgPSBfX2NyZWF0ZV9kb29yYmVsbChndWMtPmV4ZWNidWZfY2xpZW50 KTsKPiArCWlmIChyZXQpIHsKPiArCQlEUk1fRVJST1IoIkNvdWxkbid0IHJlY3JlYXRlIGNsaWVu dCAldSBkb29yYmVsbDogJWRcbiIsCj4gKwkJCSAgZ3VjLT5leGVjYnVmX2NsaWVudC0+c3RhZ2Vf aWQsIHJldCk7CgpUaGlzCgo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gX19j cmVhdGVfZG9vcmJlbGwoZ3VjLT5wcmVlbXB0X2NsaWVudCk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJ RFJNX0VSUk9SKCJDb3VsZG4ndCByZWNyZWF0ZSBjbGllbnQgJXUgZG9vcmJlbGw6ICVkXG4iLAo+ ICsJCQkgIGd1Yy0+cHJlZW1wdF9jbGllbnQtPnN0YWdlX2lkLCByZXQpOwoKQW5kIHRoaXMgZXJy b3IgY2FuIGJlIG1vdmVkIHRvIF9fY3JlYXRlX2Rvb3JiZWxsIHRvIGF2b2lkIGR1cGxpY2F0aW9u Cgo+ICsJCXJldHVybiByZXQ7Cj4gIAl9Cj4gCS8qIFJlYWQgYmFjayAmIHZlcmlmeSBhbGwgKHVz ZWQgJiB1bnVzZWQpIGRvb3JiZWxsIHJlZ2lzdGVycyAqLwo+IEBAIC04OTUsNiArOTAyLDQ3IEBA IHN0YXRpYyB2b2lkIGd1Y19jbGllbnRfZnJlZShzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICAKPiAq Y2xpZW50KQo+ICAJa2ZyZWUoY2xpZW50KTsKPiAgfQo+ICtzdGF0aWMgaW50IGd1Y19jbGllbnRz X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Cj4gKwlzdHJ1Y3QgaTkxNV9ndWNf Y2xpZW50ICpjbGllbnQ7Cj4gKwo+ICsJY2xpZW50ID0gZ3VjX2NsaWVudF9hbGxvYyhkZXZfcHJp diwKPiArCQkJCSAgSU5URUxfSU5GTyhkZXZfcHJpdiktPnJpbmdfbWFzaywKPiArCQkJCSAgR1VD X0NMSUVOVF9QUklPUklUWV9LTURfTk9STUFMLAo+ICsJCQkJICBkZXZfcHJpdi0+a2VybmVsX2Nv bnRleHQpOwo+ICsJaWYgKElTX0VSUihjbGllbnQpKSB7Cj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQg dG8gY3JlYXRlIEd1QyBjbGllbnQgZm9yIHN1Ym1pc3Npb24hXG4iKTsKPiArCQlyZXR1cm4gUFRS X0VSUihjbGllbnQpOwo+ICsJfQo+ICsJZ3VjLT5leGVjYnVmX2NsaWVudCA9IGNsaWVudDsKPiAr Cj4gKwljbGllbnQgPSBndWNfY2xpZW50X2FsbG9jKGRldl9wcml2LAo+ICsJCQkJICBJTlRFTF9J TkZPKGRldl9wcml2KS0+cmluZ19tYXNrLAo+ICsJCQkJICBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tN RF9ISUdILAo+ICsJCQkJICBkZXZfcHJpdi0+cHJlZW1wdF9jb250ZXh0KTsKPiArCWlmIChJU19F UlIoY2xpZW50KSkgewo+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBHdUMgY2xpZW50 IGZvciBwcmVlbXB0aW9uIVxuIik7Cj4gKwkJZ3VjX2NsaWVudF9mcmVlKGd1Yy0+ZXhlY2J1Zl9j bGllbnQpOwo+ICsJCWd1Yy0+ZXhlY2J1Zl9jbGllbnQgPSBOVUxMOwo+ICsJCXJldHVybiBQVFJf RVJSKGNsaWVudCk7Cj4gKwl9Cj4gKwlndWMtPnByZWVtcHRfY2xpZW50ID0gY2xpZW50Owo+ICsK PiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBndWNfY2xpZW50c19kZXN0cm95 KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiArewo+ICsJc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAq Y2xpZW50Owo+ICsKPiArCWNsaWVudCA9IGZldGNoX2FuZF96ZXJvKCZndWMtPmV4ZWNidWZfY2xp ZW50KTsKPiArCWd1Y19jbGllbnRfZnJlZShjbGllbnQpOwo+ICsKPiArCWNsaWVudCA9IGZldGNo X2FuZF96ZXJvKCZndWMtPnByZWVtcHRfY2xpZW50KTsKPiArCWd1Y19jbGllbnRfZnJlZShjbGll bnQpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBndWNfcG9saWN5X2luaXQoc3RydWN0IGd1Y19w b2xpY3kgKnBvbGljeSkKPiAgewo+ICAJcG9saWN5LT5leGVjdXRpb25fcXVhbnR1bSA9IFBPTElD WV9ERUZBVUxUX0VYRUNVVElPTl9RVUFOVFVNX1VTOwo+IEBAIC0xMTM0LDcgKzExODIsNiBAQCBz dGF0aWMgdm9pZCBpOTE1X2d1Y19zdWJtaXNzaW9uX3VucGFyayhzdHJ1Y3QgIAo+IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQo+ICBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZ3VjICpn dWMgPSAmZGV2X3ByaXYtPmd1YzsKPiAtCXN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCA9 IGd1Yy0+ZXhlY2J1Zl9jbGllbnQ7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7 Cj4gIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKPiAgCWludCBlcnI7Cj4gQEAgLTExNTIsMjgg KzExOTksMjkgQEAgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKHN0cnVjdCAgCj4gZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkJICAgICBzaXplb2Yoc3RydWN0IGd1Y193cV9p dGVtKSAqCj4gIAkJICAgICBJOTE1X05VTV9FTkdJTkVTID4gR1VDX1dRX1NJWkUpOwo+IC0JaWYg KCFjbGllbnQpIHsKPiAtCQljbGllbnQgPSBndWNfY2xpZW50X2FsbG9jKGRldl9wcml2LAo+IC0J CQkJCSAgSU5URUxfSU5GTyhkZXZfcHJpdiktPnJpbmdfbWFzaywKPiAtCQkJCQkgIEdVQ19DTElF TlRfUFJJT1JJVFlfS01EX05PUk1BTCwKPiAtCQkJCQkgIGRldl9wcml2LT5rZXJuZWxfY29udGV4 dCk7Cj4gLQkJaWYgKElTX0VSUihjbGllbnQpKSB7Cj4gLQkJCURSTV9FUlJPUigiRmFpbGVkIHRv IGNyZWF0ZSBHdUMgY2xpZW50IGZvciBleGVjYnVmIVxuIik7Cj4gLQkJCXJldHVybiBQVFJfRVJS KGNsaWVudCk7Cj4gLQkJfQo+IC0KPiAtCQlndWMtPmV4ZWNidWZfY2xpZW50ID0gY2xpZW50Owo+ ICsJLyoKPiArCSAqIFdlJ3JlIGJlaW5nIGNhbGxlZCBvbiBib3RoIG1vZHVsZSBpbml0aWFsaXph dGlvbiBhbmQgb24gcmVzZXQsCj4gKwkgKiB1bnRpbCB0aGlzIGZsb3cgaXMgY2hhbmdlZCwgd2Un cmUgdXNpbmcgcmVndWxhciBjbGllbnQgcHJlc2VuY2UgdG8KPiArCSAqIGRldGVybWluZSB3aGlj aCBjYXNlIGFyZSB3ZSBpbiwgYW5kIHdoZXRoZXIgd2Ugc2hvdWxkIGFsbG9jYXRlIG5ldwo+ICsJ ICogY2xpZW50cyBvciBqdXN0IHJlc2V0IHRoZWlyIHdvcmtxdWV1ZXMuCj4gKwkgKi8KPiArCWlm ICghZ3VjLT5leGVjYnVmX2NsaWVudCkgewo+ICsJCUdFTV9CVUdfT04oZ3VjLT5wcmVlbXB0X2Ns aWVudCk7CgpZb3UgY2FuIG1vdmUgdGhpcyBHRU1fQlVHX09OIHRvIGd1Y19jbGllbnRzX2NyZWF0 ZSBhbmQgY2hlY2sgYm90aAoKPiArCQllcnIgPSBndWNfY2xpZW50c19jcmVhdGUoZ3VjKTsKPiAr CQlpZiAoZXJyKQo+ICsJCQlyZXR1cm4gZXJyOwo+ICsJfSBlbHNlIHsKPiArCQlndWNfcmVzZXRf d3EoZ3VjLT5leGVjYnVmX2NsaWVudCk7Cj4gKwkJZ3VjX3Jlc2V0X3dxKGd1Yy0+cHJlZW1wdF9j bGllbnQpOwo+ICAJfQo+IAllcnIgPSBpbnRlbF9ndWNfc2FtcGxlX2ZvcmNld2FrZShndWMpOwo+ ICAJaWYgKGVycikKPiAtCQlnb3RvIGVycl9leGVjYnVmX2NsaWVudDsKPiAtCj4gLQlndWNfcmVz ZXRfd3EoY2xpZW50KTsKPiArCQlnb3RvIGVycl9mcmVlX2NsaWVudHM7Cj4gCWVyciA9IGd1Y19p bml0X2Rvb3JiZWxsX2h3KGd1Yyk7Cj4gIAlpZiAoZXJyKQo+IC0JCWdvdG8gZXJyX2V4ZWNidWZf Y2xpZW50Owo+ICsJCWdvdG8gZXJyX2ZyZWVfY2xpZW50czsKPiAJLyogVGFrZSBvdmVyIGZyb20g bWFudWFsIGNvbnRyb2wgb2YgRUxTUCAoZXhlY2xpc3RzKSAqLwo+ICAJZ3VjX2ludGVycnVwdHNf Y2FwdHVyZShkZXZfcHJpdik7Cj4gQEAgLTExODcsOSArMTIzNSw4IEBAIGludCBpOTE1X2d1Y19z dWJtaXNzaW9uX2VuYWJsZShzdHJ1Y3QgIAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ IAlyZXR1cm4gMDsKPiAtZXJyX2V4ZWNidWZfY2xpZW50Ogo+IC0JZ3VjX2NsaWVudF9mcmVlKGd1 Yy0+ZXhlY2J1Zl9jbGllbnQpOwo+IC0JZ3VjLT5leGVjYnVmX2NsaWVudCA9IE5VTEw7Cj4gK2Vy cl9mcmVlX2NsaWVudHM6Cj4gKwlndWNfY2xpZW50c19kZXN0cm95KGd1Yyk7Cj4gIAlyZXR1cm4g ZXJyOwo+ICB9Cj4gQEAgLTEyMDQsNiArMTI1MSw1IEBAIHZvaWQgaTkxNV9ndWNfc3VibWlzc2lv bl9kaXNhYmxlKHN0cnVjdCAgCj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkvKiBS ZXZlcnQgYmFjayB0byBtYW51YWwgRUxTUCBzdWJtaXNzaW9uICovCj4gIAlpbnRlbF9lbmdpbmVz X3Jlc2V0X2RlZmF1bHRfc3VibWlzc2lvbihkZXZfcHJpdik7Cj4gLQlndWNfY2xpZW50X2ZyZWUo Z3VjLT5leGVjYnVmX2NsaWVudCk7Cj4gLQlndWMtPmV4ZWNidWZfY2xpZW50ID0gTlVMTDsKPiAr CWd1Y19jbGllbnRzX2Rlc3Ryb3koZ3VjKTsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWMuaAo+IGluZGV4IGFhMTU4MzE2N2IwYS4uNmNhNTVjNWJlZDNjIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjLmgKPiBAQCAtNTgsNiArNTgsNyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjIHsKPiAg CXZvaWQgKnNoYXJlZF9kYXRhX3ZhZGRyOwo+IAlzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpleGVj YnVmX2NsaWVudDsKPiArCXN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKnByZWVtcHRfY2xpZW50Owo+ IAlERUNMQVJFX0JJVE1BUChkb29yYmVsbF9iaXRtYXAsIEdVQ19OVU1fRE9PUkJFTExTKTsKPiAg CS8qIEN5Y2xpYyBjb3VudGVyIG1vZCBwYWdlc2l6ZQkqLwpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK