From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: Re: [PATCH v4 08/13] drm/i915/guc: Implement response handling in send_ct() Date: Fri, 23 Mar 2018 15:55:18 -0700 Message-ID: References: <20180323144728.61548-1-michal.wajdeczko@intel.com> <20180323144728.61548-9-michal.wajdeczko@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 886836E288 for ; Fri, 23 Mar 2018 22:55:19 +0000 (UTC) In-Reply-To: <20180323144728.61548-9-michal.wajdeczko@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Michal Wajdeczko , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMy8yMy8yMDE4IDc6NDcgQU0sIE1pY2hhbCBXYWpkZWN6a28gd3JvdGU6Cj4gSW5zdGVhZCBv ZiByZXR1cm5pbmcgc21hbGwgZGF0YSBpbiByZXNwb25zZSBzdGF0dXMgZHdvcmQsCj4gR3VDIG1h eSBhcHBlbmQgbG9uZ2VyIGRhdGEgYXMgcmVzcG9uc2UgbWVzc2FnZSBwYXlsb2FkLgo+IElmIGNh bGxlciBwcm92aWRlcyByZXNwb25zZSBidWZmZXIsIHdlIHdpbGwgY29weSByZWNlaXZlZAo+IGRh dGEgYW5kIHVzZSBudW1iZXIgb2YgcmVjZWl2ZWQgZGF0YSBkd29yZHMgYXMgbmV3IHN1Y2Nlc3MK PiByZXR1cm4gdmFsdWUuIFdlIHdpbGwgV0FSTiBpZiByZXNwb25zZSBmcm9tIEd1QyBkb2VzIG5v dAo+IG1hdGNoIGNhbGxlciBleHBlY3RhdGlvbi4KPiAKPiB2MjogZml4IHRpbWVvdXQgYW5kIGNo ZWNrcGF0Y2ggd2FybmluZ3MgKE1pY2hhbCkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgV2Fq ZGVjemtvIDxtaWNoYWwud2FqZGVjemtvQGludGVsLmNvbT4KPiBDYzogT3NjYXIgTWF0ZW8gPG9z Y2FyLm1hdGVvQGludGVsLmNvbT4KPiBDYzogTWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5 QGludGVsLmNvbT4KPiBDYzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xv c3B1cmlvQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Y19jdC5jIHwgMTM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2N0LmggfCAgIDUgKysKPiAgIDIgZmlsZXMgY2hh bmdlZCwgMTI4IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Y19jdC5jCj4gaW5kZXggYjFhYjI4Zi4uNmE5YWFkMCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfY3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Y19jdC5jCj4gQEAgLTI0LDYgKzI0LDE0IEBACj4gICAjaW5jbHVk ZSAiaTkxNV9kcnYuaCIKPiAgICNpbmNsdWRlICJpbnRlbF9ndWNfY3QuaCIKPiAgIAo+ICtzdHJ1 Y3QgY3RfcmVxdWVzdCB7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7Cj4gKwl1MzIgZmVuY2U7 Cj4gKwl1MzIgc3RhdHVzOwo+ICsJdTMyIHJlc3BvbnNlX2xlbjsKPiArCXUzMiAqcmVzcG9uc2Vf YnVmOwo+ICt9Owo+ICsKPiAgIGVudW0geyBDVEJfU0VORCA9IDAsIENUQl9SRUNWID0gMSB9Owo+ ICAgCj4gICBlbnVtIHsgQ1RCX09XTkVSX0hPU1QgPSAwIH07Cj4gQEAgLTM2LDYgKzQ0LDkgQEAg dm9pZCBpbnRlbF9ndWNfY3RfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCkKPiAg IHsKPiAgIAkvKiB3ZSdyZSB1c2luZyBzdGF0aWMgY2hhbm5lbCBvd25lcnMgKi8KPiAgIAljdC0+ aG9zdF9jaGFubmVsLm93bmVyID0gQ1RCX09XTkVSX0hPU1Q7Cj4gKwo+ICsJc3Bpbl9sb2NrX2lu aXQoJmN0LT5sb2NrKTsKPiArCUlOSVRfTElTVF9IRUFEKCZjdC0+cGVuZGluZ19yZXF1ZXN0cyk7 Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2d1YyAqY3RfdG9fZ3Vj KHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0KQo+IEBAIC0yNzYsNyArMjg3LDggQEAgc3RhdGljIHUz MiBjdGNoX2dldF9uZXh0X2ZlbmNlKHN0cnVjdCBpbnRlbF9ndWNfY3RfY2hhbm5lbCAqY3RjaCkK PiAgIHN0YXRpYyBpbnQgY3RiX3dyaXRlKHN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyICpjdGIs Cj4gICAJCSAgICAgY29uc3QgdTMyICphY3Rpb24sCj4gICAJCSAgICAgdTMyIGxlbiAvKiBpbiBk d29yZHMgKi8sCj4gLQkJICAgICB1MzIgZmVuY2UpCj4gKwkJICAgICB1MzIgZmVuY2UsCj4gKwkJ ICAgICBib29sIHdhbnRfcmVzcG9uc2UpCj4gICB7Cj4gICAJc3RydWN0IGd1Y19jdF9idWZmZXJf ZGVzYyAqZGVzYyA9IGN0Yi0+ZGVzYzsKPiAgIAl1MzIgaGVhZCA9IGRlc2MtPmhlYWQgLyA0Owkv KiBpbiBkd29yZHMgKi8KPiBAQCAtMzEyLDYgKzMyNCw3IEBAIHN0YXRpYyBpbnQgY3RiX3dyaXRl KHN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyICpjdGIsCj4gICAJICovCj4gICAJaGVhZGVyID0g KGxlbiA8PCBHVUNfQ1RfTVNHX0xFTl9TSElGVCkgfAo+ICAgCQkgKEdVQ19DVF9NU0dfV1JJVEVf RkVOQ0VfVE9fREVTQykgfAo+ICsJCSAod2FudF9yZXNwb25zZSA/IEdVQ19DVF9NU0dfU0VORF9T VEFUVVMgOiAwKSB8Cj4gICAJCSAoYWN0aW9uWzBdIDw8IEdVQ19DVF9NU0dfQUNUSU9OX1NISUZU KTsKPiAgIAo+ICAgCWNtZHNbdGFpbF0gPSBoZWFkZXI7Cj4gQEAgLTM4MCwzNiArMzkzLDEwNCBA QCBzdGF0aWMgaW50IHdhaXRfZm9yX2Rlc2NfdXBkYXRlKHN0cnVjdCBndWNfY3RfYnVmZmVyX2Rl c2MgKmRlc2MsCj4gICAJcmV0dXJuIGVycjsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgaW50IGN0Y2hf c2VuZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCj4gKy8qKgo+ICsgKiB3YWl0X2Zvcl9yZXNwb25z ZV9tc2cgLSBXYWl0IGZvciB0aGUgR3VjIHJlc3BvbnNlLgo+ICsgKiBAcmVxOglwb2ludGVyIHRv IHBlbmRpbmcgcmVxdWVzdAo+ICsgKiBAc3RhdHVzOglwbGFjZWhvbGRlciBmb3Igc3RhdHVzCj4g KyAqCj4gKyAqIFdlIHdpbGwgdXBkYXRlIHJlcXVlc3Qgc3RhdHVzIGZyb20gdGhlIHJlc3BvbnNl IG1lc3NhZ2UgaGFuZGxlci4KPiArICogUmV0dXJuczoKPiArICogKgkwIHJlc3BvbnNlIHJlY2Vp dmVkIChzdGF0dXMgaXMgdmFsaWQpCj4gKyAqICoJLUVUSU1FRE9VVCBubyByZXNwb25zZSB3aXRo aW4gaGFyZGNvZGVkIHRpbWVvdXQKPiArICovCj4gK3N0YXRpYyBpbnQgd2FpdF9mb3JfcmVzcG9u c2VfbXNnKHN0cnVjdCBjdF9yZXF1ZXN0ICpyZXEsIHUzMiAqc3RhdHVzKQo+ICt7Cj4gKwlpbnQg ZXJyOwo+ICsKPiArCS8qCj4gKwkgKiBGYXN0IGNvbW1hbmRzIHNob3VsZCBjb21wbGV0ZSBpbiBs ZXNzIHRoYW4gMTB1cywgc28gc2FtcGxlIHF1aWNrbHkKPiArCSAqIHVwIHRvIHRoYXQgbGVuZ3Ro IG9mIHRpbWUsIHRoZW4gc3dpdGNoIHRvIGEgc2xvd2VyIHNsZWVwLXdhaXQgbG9vcC4KPiArCSAq IE5vIEd1QyBjb21tYW5kIHNob3VsZCBldmVyIHRha2UgbG9uZ2VyIHRoYW4gMTBtcy4KPiArCSAq Lwo+ICsjZGVmaW5lIGRvbmUgSU5URUxfR1VDX01TR19JU19SRVNQT05TRShSRUFEX09OQ0UocmVx LT5zdGF0dXMpKQo+ICsJZXJyID0gd2FpdF9mb3JfdXMoZG9uZSwgMTApOwo+ICsJaWYgKGVycikK PiArCQllcnIgPSB3YWl0X2Zvcihkb25lLCAxMCk7Cj4gKyN1bmRlZiBkb25lCj4gKwo+ICsJaWYg KHVubGlrZWx5KGVycikpCj4gKwkJRFJNX0VSUk9SKCJDVDogZmVuY2UgJXUgZXJyICVkXG4iLCBy ZXEtPmZlbmNlLCBlcnIpOwo+ICsKPiArCSpzdGF0dXMgPSByZXEtPnN0YXR1czsKPiArCXJldHVy biBlcnI7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgY3RjaF9zZW5kKHN0cnVjdCBpbnRlbF9ndWNf Y3QgKmN0LAo+ICAgCQkgICAgIHN0cnVjdCBpbnRlbF9ndWNfY3RfY2hhbm5lbCAqY3RjaCwKPiAg IAkJICAgICBjb25zdCB1MzIgKmFjdGlvbiwKPiAgIAkJICAgICB1MzIgbGVuLAo+ICsJCSAgICAg dTMyICpyZXNwb25zZV9idWYsCj4gKwkJICAgICB1MzIgcmVzcG9uc2VfYnVmX3NpemUsCj4gICAJ CSAgICAgdTMyICpzdGF0dXMpCj4gICB7Cj4gICAJc3RydWN0IGludGVsX2d1Y19jdF9idWZmZXIg KmN0YiA9ICZjdGNoLT5jdGJzW0NUQl9TRU5EXTsKPiAgIAlzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9k ZXNjICpkZXNjID0gY3RiLT5kZXNjOwo+ICsJc3RydWN0IGN0X3JlcXVlc3QgcmVxdWVzdDsKPiAr CXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gICAJdTMyIGZlbmNlOwo+ICAgCWludCBlcnI7Cj4gICAK PiAgIAlHRU1fQlVHX09OKCFjdGNoX2lzX29wZW4oY3RjaCkpOwo+ICAgCUdFTV9CVUdfT04oIWxl bik7Cj4gICAJR0VNX0JVR19PTihsZW4gJiB+R1VDX0NUX01TR19MRU5fTUFTSyk7Cj4gKwlHRU1f QlVHX09OKCFyZXNwb25zZV9idWYgJiYgcmVzcG9uc2VfYnVmX3NpemUpOwo+ICAgCj4gICAJZmVu Y2UgPSBjdGNoX2dldF9uZXh0X2ZlbmNlKGN0Y2gpOwo+IC0JZXJyID0gY3RiX3dyaXRlKGN0Yiwg YWN0aW9uLCBsZW4sIGZlbmNlKTsKPiArCXJlcXVlc3QuZmVuY2UgPSBmZW5jZTsKPiArCXJlcXVl c3Quc3RhdHVzID0gMDsKPiArCXJlcXVlc3QucmVzcG9uc2VfbGVuID0gcmVzcG9uc2VfYnVmX3Np emU7Cj4gKwlyZXF1ZXN0LnJlc3BvbnNlX2J1ZiA9IHJlc3BvbnNlX2J1ZjsKPiArCj4gKwlzcGlu X2xvY2tfaXJxc2F2ZSgmY3QtPmxvY2ssIGZsYWdzKTsKPiArCWxpc3RfYWRkX3RhaWwoJnJlcXVl c3QubGluaywgJmN0LT5wZW5kaW5nX3JlcXVlc3RzKTsKPiArCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmN0LT5sb2NrLCBmbGFncyk7Cj4gKwo+ICsJZXJyID0gY3RiX3dyaXRlKGN0YiwgYWN0aW9u LCBsZW4sIGZlbmNlLCAhIXJlc3BvbnNlX2J1Zik7Cj4gICAJaWYgKHVubGlrZWx5KGVycikpCj4g LQkJcmV0dXJuIGVycjsKPiArCQlnb3RvIHVubGluazsKPiAgIAo+IC0JaW50ZWxfZ3VjX25vdGlm eShndWMpOwo+ICsJaW50ZWxfZ3VjX25vdGlmeShjdF90b19ndWMoY3QpKTsKPiAgIAo+IC0JZXJy ID0gd2FpdF9mb3JfZGVzY191cGRhdGUoZGVzYywgZmVuY2UsIHN0YXR1cyk7Cj4gKwlpZiAocmVz cG9uc2VfYnVmKQo+ICsJCWVyciA9IHdhaXRfZm9yX3Jlc3BvbnNlX21zZygmcmVxdWVzdCwgc3Rh dHVzKTsKPiArCWVsc2UKPiArCQllcnIgPSB3YWl0X2Zvcl9kZXNjX3VwZGF0ZShkZXNjLCBmZW5j ZSwgc3RhdHVzKTsKPiAgIAlpZiAodW5saWtlbHkoZXJyKSkKPiAtCQlyZXR1cm4gZXJyOwo+IC0J aWYgKCFJTlRFTF9HVUNfTVNHX0lTX1JFU1BPTlNFX1NVQ0NFU1MoKnN0YXR1cykpCj4gLQkJcmV0 dXJuIC1FSU87Cj4gKwkJZ290byB1bmxpbms7Cj4gKwo+ICsJaWYgKCFJTlRFTF9HVUNfTVNHX0lT X1JFU1BPTlNFX1NVQ0NFU1MoKnN0YXR1cykpIHsKPiArCQllcnIgPSAtRUlPOwo+ICsJCWdvdG8g dW5saW5rOwo+ICsJfQo+ICsKPiArCWlmIChyZXNwb25zZV9idWYpIHsKPiArCQkvKiBUaGVyZSBz aGFsbCBiZSBubyBkYXRhIGluIHRoZSBzdGF0dXMgKi8KPiArCQlXQVJOX09OKElOVEVMX0dVQ19N U0dfVE9fREFUQShyZXF1ZXN0LnN0YXR1cykpOwo+ICsJCS8qIFJldHVybiBhY3R1YWwgcmVzcG9u c2UgbGVuICovCj4gKwkJZXJyID0gcmVxdWVzdC5yZXNwb25zZV9sZW47Cj4gKwl9IGVsc2Ugewo+ ICsJCS8qIFRoZXJlIHNoYWxsIGJlIG5vIHJlc3BvbnNlIHBheWxvYWQgKi8KPiArCQlXQVJOX09O KHJlcXVlc3QucmVzcG9uc2VfbGVuKTsKPiArCQkvKiBSZXR1cm4gZGF0YSBkZWNvZGVkIGZyb20g dGhlIHN0YXR1cyBkd29yZCAqLwo+ICsJCWVyciA9IElOVEVMX0dVQ19NU0dfVE9fREFUQSgqc3Rh dHVzKTsKPiArCX0KPiAgIAo+IC0JLyogVXNlIGRhdGEgZnJvbSB0aGUgR3VDIHN0YXR1cyBhcyBv dXIgcmV0dXJuIHZhbHVlICovCj4gLQlyZXR1cm4gSU5URUxfR1VDX01TR19UT19EQVRBKCpzdGF0 dXMpOwo+ICt1bmxpbms6Cj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmY3QtPmxvY2ssIGZsYWdzKTsK PiArCWxpc3RfZGVsKCZyZXF1ZXN0LmxpbmspOwo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm Y3QtPmxvY2ssIGZsYWdzKTsKPiArCj4gKwlyZXR1cm4gZXJyOwo+ICAgfQo+ICAgCj4gICAvKgo+ IEBAIC00MTgsMTMgKzQ5OSwxNSBAQCBzdGF0aWMgaW50IGN0Y2hfc2VuZChzdHJ1Y3QgaW50ZWxf Z3VjICpndWMsCj4gICBzdGF0aWMgaW50IGludGVsX2d1Y19zZW5kX2N0KHN0cnVjdCBpbnRlbF9n dWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4sCj4gICAJCQkgICAgIHUzMiAqcmVz cG9uc2VfYnVmLCB1MzIgcmVzcG9uc2VfYnVmX3NpemUpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxf Z3VjX2N0X2NoYW5uZWwgKmN0Y2ggPSAmZ3VjLT5jdC5ob3N0X2NoYW5uZWw7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZ3VjX2N0ICpjdCA9ICZndWMtPmN0Owo+ICsJc3RydWN0IGludGVsX2d1Y19jdF9jaGFu bmVsICpjdGNoID0gJmN0LT5ob3N0X2NoYW5uZWw7Cj4gICAJdTMyIHN0YXR1cyA9IH4wOyAvKiB1 bmRlZmluZWQgKi8KPiAgIAlpbnQgcmV0Owo+ICAgCj4gICAJbXV0ZXhfbG9jaygmZ3VjLT5zZW5k X211dGV4KTsKPiAgIAo+IC0JcmV0ID0gY3RjaF9zZW5kKGd1YywgY3RjaCwgYWN0aW9uLCBsZW4s ICZzdGF0dXMpOwo+ICsJcmV0ID0gY3RjaF9zZW5kKGN0LCBjdGNoLCBhY3Rpb24sIGxlbiwgcmVz cG9uc2VfYnVmLCByZXNwb25zZV9idWZfc2l6ZSwKPiArCQkJJnN0YXR1cyk7Cj4gICAJaWYgKHVu bGlrZWx5KHJldCA8IDApKSB7Cj4gICAJCURSTV9FUlJPUigiQ1Q6IHNlbmQgYWN0aW9uICUjWCBm YWlsZWQ7IGVycj0lZCBzdGF0dXM9JSNYXG4iLAo+ICAgCQkJICBhY3Rpb25bMF0sIHJldCwgc3Rh dHVzKTsKPiBAQCAtNTAzLDggKzU4NiwxMyBAQCBzdGF0aWMgaW50IGN0Yl9yZWFkKHN0cnVjdCBp bnRlbF9ndWNfY3RfYnVmZmVyICpjdGIsIHUzMiAqZGF0YSkKPiAgIHN0YXRpYyBpbnQgY3RfaGFu ZGxlX3Jlc3BvbnNlKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0LCBjb25zdCB1MzIgKm1zZykKPiAg IHsKPiAgIAl1MzIgaGVhZGVyID0gbXNnWzBdOwo+ICsJdTMyIGZlbmNlID0gbXNnWzFdOwo+ICAg CXUzMiBzdGF0dXMgPSBtc2dbMl07Cj4gICAJdTMyIGxlbiA9IGN0X2hlYWRlcl9nZXRfbGVuKGhl YWRlcikgKyAxOyAvKiB0b3RhbCBsZW4gd2l0aCBoZWFkZXIgKi8KPiArCXUzMiBwYXlsb2FkX2xl biA9IGxlbiAtIDM7IC8qIGxlbjwzIGlzIHRyZWF0ZWQgYXMgcHJvdG9jb2wgZXJyb3IgKi8KPiAr CXN0cnVjdCBjdF9yZXF1ZXN0ICpyZXE7Cj4gKwlib29sIGZvdW5kID0gZmFsc2U7Cj4gKwl1bnNp Z25lZCBsb25nIGZsYWdzOwo+ICAgCj4gICAJR0VNX0JVR19PTighY3RfaGVhZGVyX2lzX3Jlc3Bv bnNlKGhlYWRlcikpOwo+ICAgCj4gQEAgLTUxOCw4ICs2MDYsMjkgQEAgc3RhdGljIGludCBjdF9o YW5kbGVfcmVzcG9uc2Uoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsIGNvbnN0IHUzMiAqbXNnKQo+ ICAgCQlEUk1fRVJST1IoIkNUOiBjb3JydXB0ZWQgcmVzcG9uc2UgJSpwaG5cbiIsIDQqbGVuLCBt c2cpOwo+ICAgCQlyZXR1cm4gLUVQUk9UTzsKPiAgIAl9Cj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgm Y3QtPmxvY2ssIGZsYWdzKTsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnkocmVxLCAmY3QtPnBlbmRp bmdfcmVxdWVzdHMsIGxpbmspIHsKPiArCQlpZiAocmVxLT5mZW5jZSAhPSBmZW5jZSkgewo+ICsJ CQlEUk1fREVCVUdfRFJJVkVSKCJDVDogcmVxdWVzdCAldSBhd2FpdHMgcmVzcG9uc2VcbiIsCj4g KwkJCQkJIHJlcS0+ZmVuY2UpOwo+ICsJCQljb250aW51ZTsKPiArCQl9Cj4gKwkJaWYgKHVubGlr ZWx5KHBheWxvYWRfbGVuID4gcmVxLT5yZXNwb25zZV9sZW4pKSB7Cj4gKwkJCURSTV9FUlJPUigi Q1Q6IHJlc3BvbnNlICV1IHRvbyBsb25nICUqcGhuXG4iLAo+ICsJCQkJICByZXEtPmZlbmNlLCA0 KmxlbiwgbXNnKTsKPiArCQkJcGF5bG9hZF9sZW4gPSAwOwo+ICsJCX0KPiArCQlpZiAocGF5bG9h ZF9sZW4pCj4gKwkJCW1lbWNweShyZXEtPnJlc3BvbnNlX2J1ZiwgbXNnICsgMywgNCpwYXlsb2Fk X2xlbik7Cj4gKwkJcmVxLT5yZXNwb25zZV9sZW4gPSBwYXlsb2FkX2xlbjsKPiArCQlXUklURV9P TkNFKHJlcS0+c3RhdHVzLCBzdGF0dXMpOwo+ICsJCWZvdW5kID0gdHJ1ZTsKPiArCQlicmVhazsK PiArCX0KPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmN0LT5sb2NrLCBmbGFncyk7Cj4gICAK PiAtCS8qIFhYWCAqLwo+ICsJaWYgKCFmb3VuZCkKPiArCQlEUk1fRVJST1IoIkNUOiB1bnNvbGlj aXRlZCByZXNwb25zZSAlKnBoblxuIiwgNCpsZW4sIG1zZyk7Cj4gICAJcmV0dXJuIDA7Cj4gICB9 Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2N0Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfY3QuaAo+IGluZGV4IDU5NWM4YWQuLjkw NTU2NmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2N0LmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfY3QuaAo+IEBAIC03MSwxMCAr NzEsMTUgQEAgc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsIHsKPiAgIC8qKiBIb2xkcyBhbGwg Y29tbWFuZCB0cmFuc3BvcnQgY2hhbm5lbHMuCj4gICAgKgo+ICAgICogQGhvc3RfY2hhbm5lbDog bWFpbiBjaGFubmVsIHVzZWQgYnkgdGhlIGhvc3QKPiArICogQGxvY2s6IHNwaW4gbG9jayBmb3Ig cGVuZGluZyByZXF1ZXN0cyBsaXN0Cj4gKyAqIEBwZW5kaW5nX3JlcXVlc3RzOiBsaXN0IG9mIHBl bmRpbmcgcmVxdWVzdHMKPiAgICAqLwo+ICAgc3RydWN0IGludGVsX2d1Y19jdCB7Cj4gICAJc3Ry dWN0IGludGVsX2d1Y19jdF9jaGFubmVsIGhvc3RfY2hhbm5lbDsKPiAgIAkvKiBvdGhlciBjaGFu bmVscyBhcmUgdGJkICovCj4gKwo+ICsJc3BpbmxvY2tfdCBsb2NrOwoKSSBrbm93IHlvdSBkb2N1 bWVudGVkIHRoYXQgdGhpcyBsb2NrIGlzIGZvciBpbiB0aGUgaGVhZGVyLCBidXQgdGhlIApjaGVj a3BhdGNoLnBsIHdhbnRzIGl0IGluIHRoZSBsaW5lIGJlZm9yZSB0aGUgZGVmaW5pdGlvbiA6fAoK QW5kIHRoZXJlIGFyZSBhIGNvdXBsZSBvZiA0KmxlbiBhbmQgNCpwYXlsb2FkX2xlbgoKUmV2aWV3 ZWQtYnk6IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+Cgo+ICsJc3Ry dWN0IGxpc3RfaGVhZCBwZW5kaW5nX3JlcXVlc3RzOwo+ICAgfTsKPiAgIAo+ICAgdm9pZCBpbnRl bF9ndWNfY3RfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCk7Cj4gCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=