From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 09/39] drm/i915: Markup paired operations on wakerefs Date: Thu, 03 Jan 2019 11:38:56 +0200 Message-ID: <87a7kikrm7.fsf@intel.com> References: <20190102094139.24014-1-chris@chris-wilson.co.uk> <20190102094139.24014-9-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 171D46E080 for ; Thu, 3 Jan 2019 09:38:54 +0000 (UTC) In-Reply-To: <20190102094139.24014-9-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 T24gV2VkLCAwMiBKYW4gMjAxOSwgQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+IHdyb3RlOgo+IFRoZSBtYWpvcml0eSBvZiBydW50aW1lLXBtIG9wZXJhdGlvbnMgYXJlIGJv dW5kZWQgYW5kIHNjb3BlZCB3aXRoaW4gYQo+IGZ1bmN0aW9uOyB0aGVzZSBhcmUgZWFzeSB0byB2 ZXJpZnkgdGhhdCB0aGUgd2FrZXJlZiBhcmUgaGFuZGxlZAo+IGNvcnJlY3RseS4gV2UgY2FuIGVt cGxveSB0aGUgY29tcGlsZXIgdG8gaGVscCB1cywgYW5kIHJlZHVjZSB0aGUgbnVtYmVyCj4gb2Yg d2FrZXJlZnMgdHJhY2tlZCB3aGVuIGRlYnVnZ2luZywgYnkgcGFzc2luZyBhcm91bmQgY29va2ll cyBwcm92aWRlZAo+IGJ5IHRoZSB2YXJpb3VzIHJwbV9nZXQgZnVuY3Rpb25zIHRvIHRoZWlyIHJw bV9wdXQgY291bnRlcnBhcnQuIFRoaXMKPiBtYWtlcyB0aGUgcGFpcmluZyBleHBsaWNpdCwgYW5k IGdpdmVuIHRoZSByZXF1aXJlZCB3YWtlcmVmIGNvb2tpZSB0aGUKPiBjb21waWxlciBjYW4gdmVy aWZ5IHRoYXQgd2UgcGFzcyBhbiBpbml0aWFsaXNlZCB2YWx1ZSB0byB0aGUgcnBtX3B1dAo+IChx dWl0ZSBoYW5keSBmb3IgZG91YmxlIGNoZWNraW5nIGVycm9yIHBhdGhzKS4KCldoYXQgYSBtb25z dGVyIHBhdGNoISA6byBDYW4ndCBzYXkgSSByZXZpZXdlZCBpdCBhbGwsIGJ1dCBhY2sgb24gdGhl CmFwcHJvYWNoLgoKVGhlIHNlcmllcyBjb3VsZCB1c2UgYSBjb3ZlciBsZXR0ZXIuLi4gc2VlbXMg bGlrZSB0aGlzIHNob3VsZCBiZSBjaG9wcGVkCnVwIHRvIHNtYWxsZXIgc2VyaWVzIHBlcmhhcHMu IE9yIHRvbyBtYW55IGNvbmZsaWN0cyB0aGF0IHdheT8KClNvbWUgbWlub3Igbml0cyBpbmxpbmUu CgpCUiwKSmFuaS4KCj4KPiBGb3IgcmVndWxhciBidWlsZHMsIHRoZSBjb21waWxlciBzaG91bGQg YmUgYWJsZSB0byBlbGltaW5hdGUgdGhlIHVudXNlZAo+IGxvY2FsIHZhcmlhYmxlcyBhbmQgdGhl IHByb2dyYW0gZ3Jvd3RoIHNob3VsZCBiZSBtaW5pbWFsLiBGd2l3LCBpdCBjYW1lCj4gb3V0IGFz IGEgbmV0IGltcHJvdmVtZW50IGFzIGdjYyB3YXMgYWJsZSB0byByZWZhY3RvciBycG1fZ2V0IGFu ZAo+IHJwbV9nZXRfaWZfaW5fdXNlIHRvZ2V0aGVyLAo+Cj4gYWRkL3JlbW92ZTogMS8xIGdyb3cv c2hyaW5rOiAyMC85IHVwL2Rvd246IDE5MS8tMjY4ICgtNzcpCj4gRnVuY3Rpb24gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkICAgICBuZXcgICBkZWx0YQo+IGludGVsX3J1 bnRpbWVfcG1fcHV0X3VuY2hlY2tlZCAgICAgICAgICAgICAgICAgLSAgICAgMTM2ICAgICsxMzYK PiBpOTE1X2dlbV91bnBhcmsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzOTYgICAgIDQw NiAgICAgKzEwCj4gaW50ZWxfcnVudGltZV9wbV9nZXQgICAgICAgICAgICAgICAgICAgICAgICAg MTM1ICAgICAxNDEgICAgICArNgo+IGludGVsX3J1bnRpbWVfcG1fZ2V0X25vcmVzdW1lICAgICAg ICAgICAgICAgIDEzNiAgICAgMTQxICAgICAgKzUKPiBpOTE1X3BlcmZfb3Blbl9pb2N0bCAgICAg ICAgICAgICAgICAgICAgICAgIDQzNzUgICAgNDM3OSAgICAgICs0Cj4gaTkxNV9ncHVfYnVzeSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcyICAgICAgNzYgICAgICArNAo+IGk5MTVf Z2VtX2lkbGVfd29ya19oYW5kbGVyICAgICAgICAgICAgICAgICAgIDk1NCAgICAgOTU4ICAgICAg KzQKPiBjYXB0dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY4MTQgICAg NjgxOCAgICAgICs0Cj4gbW9ja19nZW1fZGV2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAxNDMzICAgIDE0MzYgICAgICArMwo+IF9fZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFza2xldCAg ICAgICAgICAgICAgMjU3MyAgICAyNTc2ICAgICAgKzMKPiBpOTE1X3NhbXBsZSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA3NTYgICAgIDc1OCAgICAgICsyCj4gaW50ZWxfZ3VjX3N1 Ym1pc3Npb25fZGlzYWJsZSAgICAgICAgICAgICAgICAgMzY0ICAgICAzNjUgICAgICArMQo+IGln dF9tbWFwX29mZnNldF9leGhhdXN0aW9uICAgICAgICAgICAgICAgICAgMTAzNSAgICAxMDM2ICAg ICAgKzEKPiBpOTE1X3J1bnRpbWVfcG1fc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAyNTcg ICAgIDI1OCAgICAgICsxCj4gaTkxNV9ycHNfYm9vc3RfaW5mbyAgICAgICAgICAgICAgICAgICAg ICAgICAxMzU4ICAgIDEzNTkgICAgICArMQo+IGk5MTVfaGFuZ2NoZWNrX2luZm8gICAgICAgICAg ICAgICAgICAgICAgICAgMTIyOSAgICAxMjMwICAgICAgKzEKPiBpOTE1X2dlbV9zd2l0Y2hfdG9f a2VybmVsX2NvbnRleHQgICAgICAgICAgICA2ODIgICAgIDY4MyAgICAgICsxCj4gaTkxNV9nZW1f c3VzcGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDEwICAgICA0MTEgICAgICArMQo+ IGk5MTVfZ2VtX3Jlc3VtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NCAgICAgMjU1 ICAgICAgKzEKPiBpOTE1X2dlbV9wYXJrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx OTAgICAgIDE5MSAgICAgICsxCj4gaTkxNV9lbmdpbmVfaW5mbyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMjc5ICAgICAyODAgICAgICArMQo+IGludGVsX3Jwc19tYXJrX2ludGVyYWN0aXZl ICAgICAgICAgICAgICAgICAgIDE5NCAgICAgMTkzICAgICAgLTEKPiBpOTE1X2hhbmdjaGVja19l bGFwc2VkICAgICAgICAgICAgICAgICAgICAgIDE1MjYgICAgMTUyNSAgICAgIC0xCj4gaTkxNV9n ZW1fd2FpdF9mb3JfaWRsZSAgICAgICAgICAgICAgICAgICAgICAgMjk4ICAgICAyOTcgICAgICAt MQo+IGk5MTVfZHJvcF9jYWNoZXNfc2V0ICAgICAgICAgICAgICAgICAgICAgICAgIDU1NSAgICAg NTU0ICAgICAgLTEKPiBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0ICAgICAgICAgICAgICAg ICAxMjYgICAgIDEyNSAgICAgIC0xCj4gYWxpYXNpbmdfZ3R0X2JpbmRfdm1hICAgICAgICAgICAg ICAgICAgICAgICAgMjM1ICAgICAyMzQgICAgICAtMQo+IGk5MTVfZ2VtX3JldGlyZV93b3JrX2hh bmRsZXIgICAgICAgICAgICAgICAgIDE0NCAgICAgMTQyICAgICAgLTIKPiBpZ3RfZXZpY3RfY29u dGV4dHMucGFydCAgICAgICAgICAgICAgICAgICAgICA5MTYgICAgIDkxMCAgICAgIC02Cj4gaW50 ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlICAgICAgICAgICAgICAgMTQxICAgICAgMjMgICAg LTExOAo+IGludGVsX3J1bnRpbWVfcG1fcHV0ICAgICAgICAgICAgICAgICAgICAgICAgIDEzNiAg ICAgICAtICAgIC0xMzYKCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDBlYmRlMTM2 MjBjYi4uNDFkMjUzZThjMDllIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTEz OSw2ICsxMzksOCBAQCBpbnQgaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgCj4gIHN0YXRpYyB1MzIgX19pOTE1X2dlbV9wYXJrKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1KQo+ICB7Cj4gKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsK PiArCj4gIAlHRU1fVFJBQ0UoIlxuIik7Cj4gIAo+ICAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmaTkx NS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gQEAgLTE2OSwxNCArMTcxLDE1IEBAIHN0YXRpYyB1MzIg X19pOTE1X2dlbV9wYXJrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAJaTkxNV9w bXVfZ3RfcGFya2VkKGk5MTUpOwo+ICAJaTkxNV92bWFfcGFya2VkKGk5MTUpOwo+ICAKPiAtCWk5 MTUtPmd0LmF3YWtlID0gZmFsc2U7Cj4gKwl3YWtlcmVmID0gZmV0Y2hfYW5kX3plcm8oJmk5MTUt Pmd0LmF3YWtlKTsKPiArCUdFTV9CVUdfT04oIXdha2VyZWYpOwoKTW1oLCBJIHdvbmRlciBpZiB0 aGlzIHNob3VsZCB3YXJyYW50IGEgc2VwYXJhdGUgcGF0Y2guCgo+ICAKPiAgCWlmIChJTlRFTF9H RU4oaTkxNSkgPj0gNikKPiAgCQlnZW42X3Jwc19pZGxlKGk5MTUpOwo+ICAKPiAgCWludGVsX2Rp c3BsYXlfcG93ZXJfcHV0KGk5MTUsIFBPV0VSX0RPTUFJTl9HVF9JUlEpOwo+ICAKPiAtCWludGVs X3J1bnRpbWVfcG1fcHV0KGk5MTUpOwo+ICsJaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2Fr ZXJlZik7Cj4gIAo+ICAJcmV0dXJuIGk5MTUtPmd0LmVwb2NoOwo+ICB9Cj4gQEAgLTIwNSw3ICsy MDgsOCBAQCB2b2lkIGk5MTVfZ2VtX3VucGFyayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKPiAgCWlmIChpOTE1LT5ndC5hd2FrZSkKPiAgCQlyZXR1cm47Cj4gIAo+IC0JaW50ZWxfcnVu dGltZV9wbV9nZXRfbm9yZXN1bWUoaTkxNSk7Cj4gKwlpOTE1LT5ndC5hd2FrZSA9IGludGVsX3J1 bnRpbWVfcG1fZ2V0X25vcmVzdW1lKGk5MTUpOwo+ICsJR0VNX0JVR19PTighaTkxNS0+Z3QuYXdh a2UpOwoKRGl0dG8uCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bl cmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCj4gaW5kZXggNDI4OGMwZTAy ZjBjLi40NDU2NmRjMmY5Y2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9wZXJmLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+IEBAIC0x MzY0LDE0ICsxMzY0LDE0IEBAIHN0YXRpYyB2b2lkIGk5MTVfb2Ffc3RyZWFtX2Rlc3Ryb3koc3Ry dWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgCj4gIAlmcmVlX29hX2J1ZmZlcihkZXZf cHJpdik7Cj4gIAo+ICsJcHV0X29hX2NvbmZpZyhkZXZfcHJpdiwgc3RyZWFtLT5vYV9jb25maWcp Owo+ICsKPiAgCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGRldl9wcml2LCBGT1JDRVdBS0Vf QUxMKTsKPiAtCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKPiArCWludGVsX3J1bnRp bWVfcG1fcHV0KGRldl9wcml2LCBzdHJlYW0tPndha2VyZWYpOwo+ICAKPiAgCWlmIChzdHJlYW0t PmN0eCkKPiAgCQlvYV9wdXRfcmVuZGVyX2N0eF9pZChzdHJlYW0pOwo+ICAKPiAtCXB1dF9vYV9j b25maWcoZGV2X3ByaXYsIHN0cmVhbS0+b2FfY29uZmlnKTsKPiAtCgpDYW4gd2UgZXh0cmFjdCB0 aGlzIG9yZGVyaW5nIGNoYW5nZSB0byBhIHNlcGFyYXRlIHBhdGNoPwoKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+IGluZGV4IGFjNTEzZmQ3MDMxNS4uYTFlNGUxMDMzMjg5IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMjksNiArMjksNyBAQAo+ICAjaW5jbHVkZSA8bGlu dXgvaTJjLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9oZG1pLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9z Y2hlZC9jbG9jay5oPgo+ICsjaW5jbHVkZSA8bGludXgvc3RhY2tkZXBvdC5oPgo+ICAjaW5jbHVk ZSA8ZHJtL2k5MTVfZHJtLmg+Cj4gICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICAjaW5jbHVkZSA8 ZHJtL2RybV9jcnRjLmg+Cj4gQEAgLTIxODIsMTAgKzIxODMsMTYgQEAgZW5hYmxlX3JwbV93YWtl cmVmX2Fzc2VydHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gIAlhdG9taWNfZGVj KCZpOTE1LT5ydW50aW1lX3BtLndha2VyZWZfY291bnQpOwo+ICB9Cj4gIAo+IC12b2lkIGludGVs X3J1bnRpbWVfcG1fZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKPiAtYm9vbCBp bnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpOwo+IC12b2lkIGludGVsX3J1bnRpbWVfcG1fZ2V0X25vcmVzdW1lKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KTsKPiAtdm9pZCBpbnRlbF9ydW50aW1lX3BtX3B1dChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gK2ludGVsX3dha2VyZWZfdCBpbnRlbF9ydW50aW1lX3Bt X2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gK2ludGVsX3dha2VyZWZfdCBp bnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpOwo+ICtpbnRlbF93YWtlcmVmX3QgaW50ZWxfcnVudGltZV9wbV9nZXRfbm9yZXN1bWUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwoKX19tdXN0X2NoZWNrIHdvdWxkIGJlIGFuIGlu dGVyZXN0aW5nIGFubm90YXRpb24gZm9yIHRoZXNlLiBJdCB3b3VsZCBoZWxwCmNhdGNoIHRoZSBi bHVuZGVycyB3aXRoIERFQlVHX1JVTlRJTUVfUE09biBieSBlbnN1cmluZyB5b3UgYXNzaWduIHRo ZQpyZXR1cm4gdmFsdWUgc29tZXdoZXJlLiBJdCdzIGp1c3QgdGhhdCBub3QgYXNzaWduaW5nIGlz IHZhbGlkIGZvciB0aGUKcHV0X3VuY2hlY2tlZCBjYXNlcy4gKnNocnVnKgoKPiArCj4gK3ZvaWQg aW50ZWxfcnVudGltZV9wbV9wdXRfdW5jaGVja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KTsKPiArI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHX1JVTlRJTUVfUE0p Cj4gK3ZvaWQgaW50ZWxfcnVudGltZV9wbV9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsIGludGVsX3dha2VyZWZfdCB3cmVmKTsKPiArI2Vsc2UKPiArI2RlZmluZSBpbnRlbF9ydW50 aW1lX3BtX3B1dChpOTE1LCB3cmVmKSBpbnRlbF9ydW50aW1lX3BtX3B1dF91bmNoZWNrZWQoaTkx NSkKPiArI2VuZGlmCgpOb3JtYWxseSBJJ2QgcHJvYmFibHkgbGlrZSB0byBzZWUgYW4gYWN0dWFs IGZ1bmN0aW9uIGhlcmUsIGp1c3QgdG8gZ2V0CnRoZSB3cmVmIHR5cGUgY2hlY2tlZCwgYnV0IEkg cHJlc3VtZSB0aGlzIGhlbHBzIHRoZSBjb21waWxlciB0b3NzIGF3YXkKdGhlIGxvY2FsIHZhcmlh YmxlLgoKPiBAQCAtOTQsOCArOTQsNTUgQEAgdHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVm KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAJaWYgKHN0YWNrcykgewo+ICAJCXN0 YWNrc1tycG0tPmRlYnVnX2NvdW50KytdID0gc3RhY2s7Cj4gIAkJcnBtLT5kZWJ1Z19vd25lcnMg PSBzdGFja3M7Cj4gKwl9IGVsc2Ugewo+ICsJCXN0YWNrID0gLTE7Cj4gIAl9Cj4gIAlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZycG0tPmRlYnVnX2xvY2ssIGZsYWdzKTsKPiArCj4gKwlyZXR1cm4g c3RhY2s7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGNhbmNlbF9pbnRlbF9ydW50aW1lX3BtX3dh a2VyZWYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gKwkJCQkJICAgIGRlcG90X3N0 YWNrX2hhbmRsZV90IHN0YWNrKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0g PSAmaTkxNS0+cnVudGltZV9wbTsKPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIG47Cj4gKwlib29s IGZvdW5kID0gZmFsc2U7Cj4gKwo+ICsJaWYgKHVubGlrZWx5KHN0YWNrID09IC0xKSkKPiArCQly ZXR1cm47CgpVbmxpa2VseSBvZiB0aGUgc2hvdWxkIG5vdCBoYXBwZW4gbWFnbml0dWRlPyBXQVJO X09OPwoKPiBAQCAtMzc5LDYgKzM4Myw3IEBAIGxpdmVfZW5naW5lX3Jlc2V0X2d0X2VuZ2luZV93 b3JrYXJvdW5kcyh2b2lkICphcmcpCj4gIAlzdHJ1Y3QgaWd0X3NwaW5uZXIgc3BpbjsKPiAgCWVu dW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+ICAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Cj4gKwlp bnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKPiAgCWludCByZXQgPSAwOwo+ICAKPiAgCWlmICghaW50 ZWxfaGFzX3Jlc2V0X2VuZ2luZShpOTE1KSkKPiBAQCAtMzg5LDcgKzM5NCw3IEBAIGxpdmVfZW5n aW5lX3Jlc2V0X2d0X2VuZ2luZV93b3JrYXJvdW5kcyh2b2lkICphcmcpCj4gIAkJcmV0dXJuIFBU Ul9FUlIoY3R4KTsKPiAgCj4gIAlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7Cj4gLQlpbnRl bF9ydW50aW1lX3BtX2dldChpOTE1KTsKPiArCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dl dChpOTE1KTsKPiAgCj4gIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgewo+ICAJ CWJvb2wgb2s7Cj4gQEAgLTQxNyw2ICs0MjIsNyBAQCBsaXZlX2VuZ2luZV9yZXNldF9ndF9lbmdp bmVfd29ya2Fyb3VuZHModm9pZCAqYXJnKQo+ICAJCXJxID0gaWd0X3NwaW5uZXJfY3JlYXRlX3Jl cXVlc3QoJnNwaW4sIGN0eCwgZW5naW5lLCBNSV9OT09QKTsKPiAgCQlpZiAoSVNfRVJSKHJxKSkg ewo+ICAJCQlyZXQgPSBQVFJfRVJSKHJxKTsKPiArCQkJaW50ZWxfcnVudGltZV9wbV9wdXQoaTkx NSwgd2FrZXJlZik7CgpUaGlzIGxvb2tzIHN1c3BlY3QuCgo+ICAJCQlpZ3Rfc3Bpbm5lcl9maW5p KCZzcGluKTsKPiAgCQkJZ290byBlcnI7Cj4gIAkJfQo+IEBAIC00MjUsNiArNDMxLDcgQEAgbGl2 ZV9lbmdpbmVfcmVzZXRfZ3RfZW5naW5lX3dvcmthcm91bmRzKHZvaWQgKmFyZykKPiAgCj4gIAkJ aWYgKCFpZ3Rfd2FpdF9mb3Jfc3Bpbm5lcigmc3BpbiwgcnEpKSB7Cj4gIAkJCXByX2VycigiU3Bp bm5lciBmYWlsZWQgdG8gc3RhcnRcbiIpOwo+ICsJCQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1 LCB3YWtlcmVmKTsKCkRpdHRvLgoKPiAgCQkJaWd0X3NwaW5uZXJfZmluaSgmc3Bpbik7Cj4gIAkJ CXJldCA9IC1FVElNRURPVVQ7Cj4gIAkJCWdvdG8gZXJyOwo+IEBAIC00NDMsNyArNDUwLDcgQEAg bGl2ZV9lbmdpbmVfcmVzZXRfZ3RfZW5naW5lX3dvcmthcm91bmRzKHZvaWQgKmFyZykKPiAgCX0K PiAgCj4gIGVycjoKPiAtCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUpOwo+ICsJaW50ZWxfcnVu dGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7Cj4gIAlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhp OTE1KTsKPiAgCWtlcm5lbF9jb250ZXh0X2Nsb3NlKGN0eCk7CgotLSAKSmFuaSBOaWt1bGEsIElu dGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK