From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH] drm/i915/tgl: Extend MI_SEMAPHORE_WAIT Date: Tue, 17 Sep 2019 13:56:40 +0300 Message-ID: <87y2ynqjh3.fsf@gaia.fi.intel.com> References: <20190913174824.15906-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id BA4386EBC2 for ; Tue, 17 Sep 2019 10:57:01 +0000 (UTC) In-Reply-To: <20190913174824.15906-1-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 Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gT24gVGln ZXJsYWtlLCBNSV9TRU1BUEhPUkVfV0FJVCBncmV3IGFuIGV4dHJhIGR3b3JkLCBzbyBiZSBzdXJl IHRvCj4gdXBkYXRlIHRoZSBsZW5ndGggZmllbGQgYW5kIGVtaXQgdGhhdCBleHRyYSBwYXJhbWV0 ZXIgYW5kIGFueSBwYWRkaW5nCj4gbm9vcCBhcyByZXF1aXJlZC4KPgo+IHYyOiBEZWZpbmUgdGhl IHRva2VuIHNoaWZ0IHdoaWxlIHdlIGFyZSBhZGRpbmcgdGhlIHVwZGF0ZWQgTUlfU0VNQVBIT1JF X1dBSVQKPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29u LmNvLnVrPgo+IENjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNv bT4KPiBDYzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGlu dGVsLmNvbT4KPiBDYzogTWljaGFsIFdpbmlhcnNraSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5j b20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2dwdV9jb21tYW5kcy5o IHwgIDIgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYyAgICAgICAgICB8 IDcxICsrKysrKysrKysrKysrKysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNp LmMgICAgICAgICAgICAgIHwgIDEgLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVl c3QuYyAgICAgICAgICB8IDIxICsrKystLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDgzIGluc2VydGlv bnMoKyksIDEyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2dwdV9jb21tYW5kcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfZ3B1X2NvbW1hbmRzLmgKPiBpbmRleCBmYmFkNDAzYWI3YWMuLmRhMjAyNWJjMzMyYyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ncHVfY29tbWFuZHMuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2dwdV9jb21tYW5kcy5oCj4gQEAg LTExMiw2ICsxMTIsNyBAQAo+ICAjZGVmaW5lIE1JX1NFTUFQSE9SRV9TSUdOQUwJTUlfSU5TVFIo MHgxYiwgMCkgLyogR0VOOCsgKi8KPiAgI2RlZmluZSAgIE1JX1NFTUFQSE9SRV9UQVJHRVQoZW5n aW5lKQkoKGVuZ2luZSk8PDE1KQo+ICAjZGVmaW5lIE1JX1NFTUFQSE9SRV9XQUlUCU1JX0lOU1RS KDB4MWMsIDIpIC8qIEdFTjgrICovCj4gKyNkZWZpbmUgTUlfU0VNQVBIT1JFX1dBSVRfVE9LRU4J TUlfSU5TVFIoMHgxYywgMykgLyogR0VOMTIrICovCj4gICNkZWZpbmUgICBNSV9TRU1BUEhPUkVf UE9MTAkJKDEgPDwgMTUpCj4gICNkZWZpbmUgICBNSV9TRU1BUEhPUkVfU0FEX0dUX1NERAkoMCA8 PCAxMikKPiAgI2RlZmluZSAgIE1JX1NFTUFQSE9SRV9TQURfR1RFX1NERAkoMSA8PCAxMikKPiBA QCAtMTE5LDYgKzEyMCw3IEBACj4gICNkZWZpbmUgICBNSV9TRU1BUEhPUkVfU0FEX0xURV9TREQJ KDMgPDwgMTIpCj4gICNkZWZpbmUgICBNSV9TRU1BUEhPUkVfU0FEX0VRX1NERAkoNCA8PCAxMikK PiAgI2RlZmluZSAgIE1JX1NFTUFQSE9SRV9TQURfTkVRX1NERAkoNSA8PCAxMikKPiArI2RlZmlu ZSAgIE1JX1NFTUFQSE9SRV9UT0tFTl9TSElGVAk1CgpEbyB3ZSBuZWVkIGEgbWFzayB0b28/Cgo+ ICAjZGVmaW5lIE1JX1NUT1JFX0RXT1JEX0lNTQlNSV9JTlNUUigweDIwLCAxKQo+ICAjZGVmaW5l IE1JX1NUT1JFX0RXT1JEX0lNTV9HRU40CU1JX0lOU1RSKDB4MjAsIDIpCj4gICNkZWZpbmUgICBN SV9NRU1fVklSVFVBTAkoMSA8PCAyMikgLyogOTQ1LGczMyw5NjUgKi8KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9scmMuYwo+IGluZGV4IDY0ZmEyZGI1OTA1Zi4uYzc0ZmM3NWU0OTgwIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKPiBAQCAtMzIzNyw2ICszMjM3LDIyIEBA IHN0YXRpYyB1MzIgKmdlbjhfZW1pdF9maW5pX2JyZWFkY3J1bWJfcmNzKHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJlcXVlc3QsIHUzMiAqY3MpCj4gIAlyZXR1cm4gZ2VuOF9lbWl0X2ZpbmlfYnJlYWRj cnVtYl9mb290ZXIocmVxdWVzdCwgY3MpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdTMyICoKPiArZ2Vu MTFfZW1pdF9maW5pX2JyZWFkY3J1bWJfcmNzKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3Qs IHUzMiAqY3MpCj4gK3sKPiArCWNzID0gZ2VuOF9lbWl0X2dndHRfd3JpdGVfcmNzKGNzLAo+ICsJ CQkJICAgICAgcmVxdWVzdC0+ZmVuY2Uuc2Vxbm8sCj4gKwkJCQkgICAgICByZXF1ZXN0LT50aW1l bGluZS0+aHdzcF9vZmZzZXQsCj4gKwkJCQkgICAgICBQSVBFX0NPTlRST0xfQ1NfU1RBTEwgfAo+ ICsJCQkJICAgICAgUElQRV9DT05UUk9MX1RJTEVfQ0FDSEVfRkxVU0ggfAo+ICsJCQkJICAgICAg UElQRV9DT05UUk9MX1JFTkRFUl9UQVJHRVRfQ0FDSEVfRkxVU0ggfAo+ICsJCQkJICAgICAgUElQ RV9DT05UUk9MX0RFUFRIX0NBQ0hFX0ZMVVNIIHwKPiArCQkJCSAgICAgIFBJUEVfQ09OVFJPTF9E Q19GTFVTSF9FTkFCTEUgfAo+ICsJCQkJICAgICAgUElQRV9DT05UUk9MX0ZMVVNIX0VOQUJMRSk7 Cj4gKwo+ICsJcmV0dXJuIGdlbjhfZW1pdF9maW5pX2JyZWFkY3J1bWJfZm9vdGVyKHJlcXVlc3Qs IGNzKTsKPiArfQo+ICsKPiAgLyoKPiAgICogTm90ZSB0aGF0IHRoZSBDUyBpbnN0cnVjdGlvbiBw cmUtcGFyc2VyIHdpbGwgbm90IHN0YWxsIG9uIHRoZSBicmVhZGNydW1iCj4gICAqIGZsdXNoIGFu ZCB3aWxsIGNvbnRpbnVlIHByZS1mZXRjaGluZyB0aGUgaW5zdHJ1Y3Rpb25zIGFmdGVyIGl0IGJl Zm9yZSB0aGUKPiBAQCAtMzI1NSw4ICszMjcxLDQ5IEBAIHN0YXRpYyB1MzIgKmdlbjhfZW1pdF9m aW5pX2JyZWFkY3J1bWJfcmNzKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsIHUzMiAqY3Mp Cj4gICAqIEFsbCB0aGUgYWJvdmUgYXBwbGllcyBvbmx5IHRvIHRoZSBpbnN0cnVjdGlvbnMgdGhl bXNlbHZlcy4gTm9uLWlubGluZSBkYXRhCj4gICAqIHVzZWQgYnkgdGhlIGluc3RydWN0aW9ucyBp cyBub3QgcHJlLWZldGNoZWQuCj4gICAqLwo+IC1zdGF0aWMgdTMyICpnZW4xMV9lbWl0X2Zpbmlf YnJlYWRjcnVtYl9yY3Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCwKPiAtCQkJCQkgICB1 MzIgKmNzKQo+ICsKPiArc3RhdGljIHUzMiAqZ2VuMTJfZW1pdF9wcmVlbXB0X2J1c3l3YWl0KHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsIHUzMiAqY3MpCj4gK3sKPiArCSpjcysrID0gTUlf U0VNQVBIT1JFX1dBSVRfVE9LRU4gfAo+ICsJCU1JX1NFTUFQSE9SRV9HTE9CQUxfR1RUIHwKPiAr CQlNSV9TRU1BUEhPUkVfUE9MTCB8Cj4gKwkJTUlfU0VNQVBIT1JFX1NBRF9FUV9TREQ7Cj4gKwkq Y3MrKyA9IDA7Cj4gKwkqY3MrKyA9IGludGVsX2h3c19wcmVlbXB0X2FkZHJlc3MocmVxdWVzdC0+ ZW5naW5lKTsKClRoaXMgaXMgc3VwcG9zZWQgdG8gYmUgaW4gY2Fub25pY2FsIGZvcm0uCgo+ICsJ KmNzKysgPSAwOwo+ICsJKmNzKysgPSAwOwo+ICsJKmNzKysgPSBNSV9OT09QOwo+ICsKPiArCXJl dHVybiBjczsKPiArfQo+ICsKPiArc3RhdGljIF9fYWx3YXlzX2lubGluZSB1MzIqCj4gK2dlbjEy X2VtaXRfZmluaV9icmVhZGNydW1iX2Zvb3RlcihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0 LCB1MzIgKmNzKQo+ICt7Cj4gKwkqY3MrKyA9IE1JX1VTRVJfSU5URVJSVVBUOwo+ICsKPiArCSpj cysrID0gTUlfQVJCX09OX09GRiB8IE1JX0FSQl9FTkFCTEU7Cj4gKwlpZiAoaW50ZWxfZW5naW5l X2hhc19zZW1hcGhvcmVzKHJlcXVlc3QtPmVuZ2luZSkpCj4gKwkJY3MgPSBnZW4xMl9lbWl0X3By ZWVtcHRfYnVzeXdhaXQocmVxdWVzdCwgY3MpOwo+ICsKPiArCXJlcXVlc3QtPnRhaWwgPSBpbnRl bF9yaW5nX29mZnNldChyZXF1ZXN0LCBjcyk7Cj4gKwlhc3NlcnRfcmluZ190YWlsX3ZhbGlkKHJl cXVlc3QtPnJpbmcsIHJlcXVlc3QtPnRhaWwpOwo+ICsKPiArCXJldHVybiBnZW44X2VtaXRfd2Ff dGFpbChyZXF1ZXN0LCBjcyk7Cj4gK30KPiArCj4gK3N0YXRpYyB1MzIgKmdlbjEyX2VtaXRfZmlu aV9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsIHUzMiAqY3MpCj4gK3sK PiArCWNzID0gZ2VuOF9lbWl0X2dndHRfd3JpdGUoY3MsCj4gKwkJCQkgIHJlcXVlc3QtPmZlbmNl LnNlcW5vLAo+ICsJCQkJICByZXF1ZXN0LT50aW1lbGluZS0+aHdzcF9vZmZzZXQsCj4gKwkJCQkg IDApOwo+ICsKPiArCXJldHVybiBnZW4xMl9lbWl0X2ZpbmlfYnJlYWRjcnVtYl9mb290ZXIocmVx dWVzdCwgY3MpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdTMyICoKPiArZ2VuMTJfZW1pdF9maW5pX2Jy ZWFkY3J1bWJfcmNzKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsIHUzMiAqY3MpCj4gIHsK PiAgCWNzID0gZ2VuOF9lbWl0X2dndHRfd3JpdGVfcmNzKGNzLAo+ICAJCQkJICAgICAgcmVxdWVz dC0+ZmVuY2Uuc2Vxbm8sCj4gQEAgLTMyNjgsNyArMzMyNSw3IEBAIHN0YXRpYyB1MzIgKmdlbjEx X2VtaXRfZmluaV9icmVhZGNydW1iX3JjcyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ ICAJCQkJICAgICAgUElQRV9DT05UUk9MX0RDX0ZMVVNIX0VOQUJMRSB8Cj4gIAkJCQkgICAgICBQ SVBFX0NPTlRST0xfRkxVU0hfRU5BQkxFKTsKPiAgCj4gLQlyZXR1cm4gZ2VuOF9lbWl0X2Zpbmlf YnJlYWRjcnVtYl9mb290ZXIocmVxdWVzdCwgY3MpOwo+ICsJcmV0dXJuIGdlbjEyX2VtaXRfZmlu aV9icmVhZGNydW1iX2Zvb3RlcihyZXF1ZXN0LCBjcyk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lk IGV4ZWNsaXN0c19wYXJrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiBAQCAtMzI5 Nyw5ICszMzU0LDYgQEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfc2V0X2RlZmF1bHRfc3VibWlzc2lv bihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAkJCWVuZ2luZS0+ZmxhZ3MgfD0g STkxNV9FTkdJTkVfSEFTX1BSRUVNUFRJT047Cj4gIAl9Cj4gIAo+IC0JaWYgKElOVEVMX0dFTihl bmdpbmUtPmk5MTUpID49IDEyKSAvKiBYWFggZGlzYWJsZWQgZm9yIGRlYnVnZ2luZyAqLwo+IC0J CWVuZ2luZS0+ZmxhZ3MgJj0gfkk5MTVfRU5HSU5FX0hBU19TRU1BUEhPUkVTOwo+IC0KPiAgCWlm IChlbmdpbmUtPmNsYXNzICE9IENPUFlfRU5HSU5FX0NMQVNTICYmIElOVEVMX0dFTihlbmdpbmUt Pmk5MTUpID49IDExKQoKdGhpcyBpcyBub3QgYWdhaW5zdCB0aXAgOikKCj4gIAkJZW5naW5lLT5m bGFncyB8PSBJOTE1X0VOR0lORV9IQVNfUkVMQVRJVkVfTU1JTzsKPiAgfQo+IEBAIC0zMzI5LDYg KzMzODMsOCBAQCBsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3Moc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+ICAJZW5naW5lLT5lbWl0X2ZsdXNoID0gZ2VuOF9lbWl0X2ZsdXNoOwo+ ICAJZW5naW5lLT5lbWl0X2luaXRfYnJlYWRjcnVtYiA9IGdlbjhfZW1pdF9pbml0X2JyZWFkY3J1 bWI7Cj4gIAllbmdpbmUtPmVtaXRfZmluaV9icmVhZGNydW1iID0gZ2VuOF9lbWl0X2ZpbmlfYnJl YWRjcnVtYjsKPiArCWlmIChJTlRFTF9HRU4oZW5naW5lLT5pOTE1KSA+PSAxMikKPiArCQllbmdp bmUtPmVtaXRfZmluaV9icmVhZGNydW1iID0gZ2VuMTJfZW1pdF9maW5pX2JyZWFkY3J1bWI7Cj4g IAo+ICAJZW5naW5lLT5zZXRfZGVmYXVsdF9zdWJtaXNzaW9uID0gaW50ZWxfZXhlY2xpc3RzX3Nl dF9kZWZhdWx0X3N1Ym1pc3Npb247Cj4gIAo+IEBAIC0zMzc0LDYgKzM0MzAsOSBAQCBzdGF0aWMg dm9pZCByY3Nfc3VibWlzc2lvbl9vdmVycmlkZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCj4gIHsKPiAgCXN3aXRjaCAoSU5URUxfR0VOKGVuZ2luZS0+aTkxNSkpIHsKPiAgCWNhc2Ug MTI6Cj4gKwkJZW5naW5lLT5lbWl0X2ZsdXNoID0gZ2VuMTFfZW1pdF9mbHVzaF9yZW5kZXI7Cj4g KwkJZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRjcnVtYiA9IGdlbjEyX2VtaXRfZmluaV9icmVhZGNy dW1iX3JjczsKPiArCQlicmVhazsKPiAgCWNhc2UgMTE6Cj4gIAkJZW5naW5lLT5lbWl0X2ZsdXNo ID0gZ2VuMTFfZW1pdF9mbHVzaF9yZW5kZXI7Cj4gIAkJZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRj cnVtYiA9IGdlbjExX2VtaXRfZmluaV9icmVhZGNydW1iX3JjczsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cGNpLmMKPiBpbmRleCBlZTlhNzk1OTIwNGMuLmYwZTYxNzJjY2Q5NyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9wY2kuYwo+IEBAIC03OTgsNyArNzk4LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBp bnRlbF9kZXZpY2VfaW5mbyBpbnRlbF90aWdlcmxha2VfMTJfaW5mbyA9IHsKPiAgCS5lbmdpbmVf bWFzayA9Cj4gIAkJQklUKFJDUzApIHwgQklUKEJDUzApIHwgQklUKFZFQ1MwKSB8IEJJVChWQ1Mw KSB8IEJJVChWQ1MyKSwKPiAgCS5oYXNfcmM2ID0gZmFsc2UsIC8qIFhYWCBkaXNhYmxlZCBmb3Ig ZGVidWdnaW5nICovCj4gLQkuaGFzX2xvZ2ljYWxfcmluZ19wcmVlbXB0aW9uID0gZmFsc2UsIC8q IFhYWCBkaXNhYmxlZCBmb3IgZGVidWdnaW5nICovCj4gIAkuZW5naW5lX21hc2sgPSBCSVQoUkNT MCksIC8qIFhYWCByZWR1Y2VkIGZvciBkZWJ1Z2dpbmcgKi8KPiAgfTsKPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZXF1ZXN0LmMKPiBpbmRleCA3NTRhNzgzNjRhNjMuLmE5NjdhZmZmNWU1MSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gQEAgLTc4Myw3ICs3ODMsOSBA QCBlbWl0X3NlbWFwaG9yZV93YWl0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnRvLAo+ICAJCSAgICBz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpmcm9tLAo+ICAJCSAgICBnZnBfdCBnZnApCj4gIHsKPiArCWJv b2wgaGFzX3Rva2VuID0gSU5URUxfR0VOKHRvLT5pOTE1KSA+PSAxMjsKPiAgCXUzMiBod3NwX29m ZnNldDsKPiArCWludCBsZW47Cj4gIAl1MzIgKmNzOwo+ICAJaW50IGVycjsKPiAgCj4gQEAgLTgx MCw3ICs4MTIsMTEgQEAgZW1pdF9zZW1hcGhvcmVfd2FpdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICp0 bywKPiAgCWlmIChlcnIpCj4gIAkJcmV0dXJuIGVycjsKPiAgCj4gLQljcyA9IGludGVsX3Jpbmdf YmVnaW4odG8sIDQpOwo+ICsJbGVuID0gNDsKPiArCWlmIChoYXNfdG9rZW4pCj4gKwkJbGVuICs9 IDI7Cj4gKwo+ICsJY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHRvLCBsZW4pOwo+ICAJaWYgKElTX0VS UihjcykpCj4gIAkJcmV0dXJuIFBUUl9FUlIoY3MpOwo+ICAKPiBAQCAtODIyLDEzICs4MjgsMTgg QEAgZW1pdF9zZW1hcGhvcmVfd2FpdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICp0bywKPiAgCSAqIChw b3N0LXdyYXApIHZhbHVlcyB0aGFuIHRoZXkgd2VyZSBleHBlY3RpbmcgKGFuZCBzbyB3YWl0Cj4g IAkgKiBmb3JldmVyKS4KPiAgCSAqLwo+IC0JKmNzKysgPSBNSV9TRU1BUEhPUkVfV0FJVCB8Cj4g LQkJTUlfU0VNQVBIT1JFX0dMT0JBTF9HVFQgfAo+IC0JCU1JX1NFTUFQSE9SRV9QT0xMIHwKPiAt CQlNSV9TRU1BUEhPUkVfU0FEX0dURV9TREQ7Cj4gKwkqY3MrKyA9IChNSV9TRU1BUEhPUkVfV0FJ VCB8Cj4gKwkJIE1JX1NFTUFQSE9SRV9HTE9CQUxfR1RUIHwKPiArCQkgTUlfU0VNQVBIT1JFX1BP TEwgfAo+ICsJCSBNSV9TRU1BUEhPUkVfU0FEX0dURV9TREQpICsKPiArCQloYXNfdG9rZW47CgpQ bHMgY2hhbmdlIHRvIGludCA6TwoKQWxzbywgc2hvdWxkIHdlIGp1c3QgcGFzcyB0aGUgdG9rZW4g aW4gYW50aWNpcGF0aW9uIHRoYXQgaXQgd2lsbApiZSB1c2VkIGluIGZ1dHVyZT8KCi1NaWthCgo+ ICAJKmNzKysgPSBmcm9tLT5mZW5jZS5zZXFubzsKPiAgCSpjcysrID0gaHdzcF9vZmZzZXQ7Cj4g IAkqY3MrKyA9IDA7Cj4gKwlpZiAoaGFzX3Rva2VuKSB7Cj4gKwkJKmNzKysgPSAwOwo+ICsJCSpj cysrID0gTUlfTk9PUDsKPiArCX0KPiAgCj4gIAlpbnRlbF9yaW5nX2FkdmFuY2UodG8sIGNzKTsK PiAgCXRvLT5zY2hlZC5zZW1hcGhvcmVzIHw9IGZyb20tPmVuZ2luZS0+bWFzazsKPiAtLSAKPiAy LjIzLjAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4