From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH 18/18] drm/i915: Simplify calling engine->sync_to Date: Fri, 22 Jul 2016 11:59:27 +0300 Message-ID: <1469177967.5916.26.camel@linux.intel.com> References: <1469020330-1071-1-git-send-email-chris@chris-wilson.co.uk> <1469020330-1071-19-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id A66CA6EAD9 for ; Fri, 22 Jul 2016 08:59:30 +0000 (UTC) In-Reply-To: <1469020330-1071-19-git-send-email-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 T24ga2UsIDIwMTYtMDctMjAgYXQgMTQ6MTIgKzAxMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBT aW5jZSByZXF1ZXN0cyBjYW4gbm8gbG9uZ2VyIGJlIGdlbmVyYXRlZCBhcyBhIHNpZGUtZWZmZWN0 IG9mCj4gaW50ZWxfcmluZ19iZWdpbigpLCB3ZSBrbm93IHRoYXQgdGhlIHNlcW5vIHdpbGwgYmUg dW5jaGFuZ2VkIGR1cmluZwo+IHJpbmctZW1pc3Npb24uIFRoaXMgcHJlZGljYXRhYmxpdHkgdGhl biBtZWFucyB3ZSBkbyBub3QgaGF2ZSB0byBjaGVjawo+IGZvciB0aGUgc2Vxbm8gd3JhcHBpbmcg YXJvdW5kIHdoaWxzdCBlbWl0dGluZyB0aGUgc2VtYXBob3JlIGZvcgo+IGVuZ2luZS0+c3luY190 bygpLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29u LmNvLnVrPgo+IC0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaMKgwqDCoMKg wqDCoMKgwqDCoHzCoMKgMiArLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uY8Kg wqDCoMKgwqDCoMKgwqDCoHwgMTMgKystLS0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fcmVxdWVzdC5jIHzCoMKgOSArLS0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5jIHwgNjQgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4g wqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfMKgwqA1ICsrLQo+IMKg NSBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBmMTg4YzlhOWI3NDYuLmMzNzRiODY4N2Q4NyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0xNzU3LDcgKzE3NTcsNyBAQCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gwqAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmtlcm5l bF9jb250ZXh0Owo+IMKgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgZW5naW5lW0k5MTVfTlVNX0VO R0lORVNdOwo+IMKgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpzZW1hcGhvcmVfb2JqOwo+ IC0JdWludDMyX3QgbGFzdF9zZXFubywgbmV4dF9zZXFubzsKPiArCXUzMiBuZXh0X3NlcW5vOwo+ IMKgCj4gwqAJc3RydWN0IGRybV9kbWFfaGFuZGxlICpzdGF0dXNfcGFnZV9kbWFoOwo+IMKgCXN0 cnVjdCByZXNvdXJjZSBtY2hfcmVzOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDlm ZGVjZWYzNGZhOC4uMGI3YTBlNmY5ZGQxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4g QEAgLTI4NjQsMjIgKzI4NjQsMTUgQEAgX19pOTE1X2dlbV9vYmplY3Rfc3luYyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+IMKgCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX3JlcXVl c3Qob2JqLCBmcm9tKTsKPiDCoAl9IGVsc2Ugewo+IMKgCQlpbnQgaWR4ID0gaW50ZWxfZW5naW5l X3N5bmNfaW5kZXgoZnJvbS0+ZW5naW5lLCB0by0+ZW5naW5lKTsKPiAtCQl1MzIgc2Vxbm8gPSBp OTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhmcm9tKTsKPiAtCj4gLQkJaWYgKHNlcW5vIDw9IGZy b20tPmVuZ2luZS0+c2VtYXBob3JlLnN5bmNfc2Vxbm9baWR4XSkKPiArCQlpZiAoZnJvbS0+ZmVu Y2Uuc2Vxbm8gPD0gZnJvbS0+ZW5naW5lLT5zZW1hcGhvcmUuc3luY19zZXFub1tpZHhdKQo+IMKg CQkJcmV0dXJuIDA7Cj4gwqAKPiDCoAkJdHJhY2VfaTkxNV9nZW1fcmluZ19zeW5jX3RvKHRvLCBm cm9tKTsKPiAtCQlyZXQgPSB0by0+ZW5naW5lLT5zZW1hcGhvcmUuc3luY190byh0bywgZnJvbS0+ ZW5naW5lLCBzZXFubyk7Cj4gKwkJcmV0ID0gdG8tPmVuZ2luZS0+c2VtYXBob3JlLnN5bmNfdG8o dG8sIGZyb20pOwo+IMKgCQlpZiAocmV0KQo+IMKgCQkJcmV0dXJuIHJldDsKPiDCoAo+IC0JCS8q IFdlIHVzZSBsYXN0X3JlYWRfcmVxIGJlY2F1c2Ugc3luY190bygpCj4gLQkJwqAqIG1pZ2h0IGhh dmUganVzdCBjYXVzZWQgc2Vxbm8gd3JhcCB1bmRlcgo+IC0JCcKgKiB0aGUgcmFkYXIuCj4gLQkJ wqAqLwo+IC0JCWZyb20tPmVuZ2luZS0+c2VtYXBob3JlLnN5bmNfc2Vxbm9baWR4XSA9Cj4gLQkJ CWk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKG9iai0+bGFzdF9yZWFkX3JlcVtmcm9tLT5lbmdp bmUtPmlkXSk7Cj4gKwkJZnJvbS0+ZW5naW5lLT5zZW1hcGhvcmUuc3luY19zZXFub1tpZHhdID0g ZnJvbS0+ZmVuY2Uuc2Vxbm87Cj4gwqAJfQo+IMKgCj4gwqAJcmV0dXJuIDA7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+IGluZGV4IDNlNjMzYjQ3MjEzYy4uZGZkYjg2 YzhhNDMzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVl c3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+IEBA IC0yNjQsMTQgKzI2NCw3IEBAIGludCBpOTE1X2dlbV9zZXRfc2Vxbm8oc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdTMyIHNlcW5vKQo+IMKgCWlmIChyZXQpCj4gwqAJCXJldHVybiByZXQ7Cj4gwqAK PiAtCS8qIENhcmVmdWxseSBzZXQgdGhlIGxhc3Rfc2Vxbm8gdmFsdWUgc28gdGhhdCB3cmFwCj4g LQnCoCogZGV0ZWN0aW9uIHN0aWxsIHdvcmtzCj4gLQnCoCovCj4gwqAJZGV2X3ByaXYtPm5leHRf c2Vxbm8gPSBzZXFubzsKPiAtCWRldl9wcml2LT5sYXN0X3NlcW5vID0gc2Vxbm8gLSAxOwo+IC0J aWYgKGRldl9wcml2LT5sYXN0X3NlcW5vID09IDApCj4gLQkJZGV2X3ByaXYtPmxhc3Rfc2Vxbm8t LTsKPiAtCj4gwqAJcmV0dXJuIDA7Cj4gwqB9Cj4gwqAKPiBAQCAtMjg4LDcgKzI4MSw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9nZW1fZ2V0X3NlcW5vKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgdTMyICpzZXFubykKPiDCoAkJZGV2X3ByaXYtPm5leHRfc2Vxbm8gPSAxOwo+IMKgCX0K PiDCoAo+IC0JKnNlcW5vID0gZGV2X3ByaXYtPmxhc3Rfc2Vxbm8gPSBkZXZfcHJpdi0+bmV4dF9z ZXFubysrOwo+ICsJKnNlcW5vID0gZGV2X3ByaXYtPm5leHRfc2Vxbm8rKzsKPiDCoAlyZXR1cm4g MDsKPiDCoH0KPiDCoAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBp bmRleCA4YWUyNWJjYzg3NmUuLmJmZWIxNjAyNTMyNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMTQ5NCwxMiArMTQ5NCw2IEBAIHN0YXRpYyBpbnQg Z2VuOF9yZW5kZXJfZW1pdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQo+IMKgCXJldHVybiAwOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dl bV9oYXNfc2Vxbm9fd3JhcHBlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g LQkJCQkJwqDCoMKgwqDCoMKgdTMyIHNlcW5vKQo+IC17Cj4gLQlyZXR1cm4gZGV2X3ByaXYtPmxh c3Rfc2Vxbm8gPCBzZXFubzsKPiAtfQo+IC0KPiDCoC8qKgo+IMKgICogaW50ZWxfcmluZ19zeW5j IC0gc3luYyB0aGUgd2FpdGVyIHRvIHRoZSBzaWduYWxsZXIgb24gc2Vxbm8KPiDCoCAqCj4gQEAg LTE1MDksMjQgKzE1MDMsMjMgQEAgc3RhdGljIGlubGluZSBib29sIGk5MTVfZ2VtX2hhc19zZXFu b193cmFwcGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoCAqLwo+IMKg Cj4gwqBzdGF0aWMgaW50Cj4gLWdlbjhfcmluZ19zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqd2FpdGVyX3JlcSwKPiAtCcKgwqDCoMKgwqDCoMKgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqc2lnbmFsbGVyLAo+IC0JwqDCoMKgwqDCoMKgwqB1MzIgc2Vxbm8pCj4gK2dlbjhfcmluZ19z eW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqd2FpdCwKCldoeSBub3QgdG8sIGZyb20g aGVyZSB0b28gb3IgaW4gdGhlIGhlYWRlciB0aGVuLCB3aGVuIHRoZXkncmUgcmV2YW1wZWQKaW4g dGhlIHNlcmllcz8gVG8gYnJpbmcgc29tZSBjbGFyaXR5LiBNYXliZSB3YWl0IGFuZCBzaWduYWwg aW4gaGVhZGVyCnRvbyByYXRoZXIuCgo+ICsJwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnNpZ25hbCkKPiDCoHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nICp3YWl0ZXIg PSB3YWl0ZXJfcmVxLT5yaW5nOwo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gd2FpdGVyX3JlcS0+aTkxNTsKPiAtCXU2NCBvZmZzZXQgPSBHRU44X1dBSVRfT0ZGU0VUKHdh aXRlcl9yZXEtPmVuZ2luZSwgc2lnbmFsbGVyLT5pZCk7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAq d2FpdGVyID0gd2FpdC0+cmluZzsKCkp1c3QgY2FsbCB0aGlzICJyaW5nIiB0byByZWR1Y2UgY29u ZnVzaW9uIG9mIHJlbmFtaW5nIHRoZSBvdGhlcgp2YXJpYWJsZSwgdGhlbiB0aGUgcmluZ19iZWdp bih3YWl0KSByaW5nX2VtaXQoKSBjb252ZW50aW9uIG1ha2VzIG1vcmUKc2Vuc2UuCgo+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gd2FpdC0+aTkxNTsKPiArCXU2NCBvZmZz ZXQgPSBHRU44X1dBSVRfT0ZGU0VUKHdhaXQtPmVuZ2luZSwgc2lnbmFsLT5lbmdpbmUtPmlkKTsK PiDCoAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQ7Cj4gwqAJaW50IHJldDsKPiDCoAo+IC0J cmV0ID0gaW50ZWxfcmluZ19iZWdpbih3YWl0ZXJfcmVxLCA0KTsKPiArCXJldCA9IGludGVsX3Jp bmdfYmVnaW4od2FpdCwgNCk7Cj4gwqAJaWYgKHJldCkKPiDCoAkJcmV0dXJuIHJldDsKPiDCoAo+ IMKgCWludGVsX3JpbmdfZW1pdCh3YWl0ZXIsIE1JX1NFTUFQSE9SRV9XQUlUIHwKPiDCoAkJCQlN SV9TRU1BUEhPUkVfR0xPQkFMX0dUVCB8Cj4gwqAJCQkJTUlfU0VNQVBIT1JFX1NBRF9HVEVfU0RE KTsKPiAtCWludGVsX3JpbmdfZW1pdCh3YWl0ZXIsIHNlcW5vKTsKPiArCWludGVsX3JpbmdfZW1p dCh3YWl0ZXIsIHNpZ25hbC0+ZmVuY2Uuc2Vxbm8pOwo+IMKgCWludGVsX3JpbmdfZW1pdCh3YWl0 ZXIsIGxvd2VyXzMyX2JpdHMob2Zmc2V0KSk7Cj4gwqAJaW50ZWxfcmluZ19lbWl0KHdhaXRlciwg dXBwZXJfMzJfYml0cyhvZmZzZXQpKTsKPiDCoAlpbnRlbF9yaW5nX2FkdmFuY2Uod2FpdGVyKTsK PiBAQCAtMTUzNiw0OCArMTUyOSwzNyBAQCBnZW44X3Jpbmdfc3luYyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKndhaXRlcl9yZXEsCj4gwqAJwqAqIFdlIGRvIHRoaXMgb24gdGhlIGk5MTVf c3dpdGNoX2NvbnRleHQoKSBmb2xsb3dpbmcgdGhlIHdhaXQgYW5kCj4gwqAJwqAqIGJlZm9yZSB0 aGUgZGlzcGF0Y2guCj4gwqAJwqAqLwo+IC0JcHBndHQgPSB3YWl0ZXJfcmVxLT5jdHgtPnBwZ3R0 Owo+IC0JaWYgKHBwZ3R0ICYmIHdhaXRlcl9yZXEtPmVuZ2luZS0+aWQgIT0gUkNTKQo+IC0JCXBw Z3R0LT5wZF9kaXJ0eV9yaW5ncyB8PSBpbnRlbF9lbmdpbmVfZmxhZyh3YWl0ZXJfcmVxLT5lbmdp bmUpOwo+ICsJcHBndHQgPSB3YWl0LT5jdHgtPnBwZ3R0OwoKVGhpcyBjb3VsZCBiZSBtb3ZlZCB0 byBpbml0aWFsaXphdGlvbiBsaW5lLCBsaWtlIGVsc2V3aGVyZS4KCj4gKwlpZiAocHBndHQgJiYg d2FpdC0+ZW5naW5lLT5pZCAhPSBSQ1MpCj4gKwkJcHBndHQtPnBkX2RpcnR5X3JpbmdzIHw9IGlu dGVsX2VuZ2luZV9mbGFnKHdhaXQtPmVuZ2luZSk7Cj4gwqAJcmV0dXJuIDA7Cj4gwqB9Cj4gwqAK PiDCoHN0YXRpYyBpbnQKPiAtZ2VuNl9yaW5nX3N5bmMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICp3YWl0ZXJfcmVxLAo+IC0JwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpzaWduYWxsZXIsCj4gLQnCoMKgwqDCoMKgwqDCoHUzMiBzZXFubykKPiArZ2VuNl9yaW5nX3N5 bmMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICp3YWl0LAo+ICsJwqDCoMKgwqDCoMKgwqBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnNpZ25hbCkKPiDCoHsKPiAtCXN0cnVjdCBpbnRl bF9yaW5nICp3YWl0ZXIgPSB3YWl0ZXJfcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3Jpbmcg KndhaXRlciA9IHdhaXQtPnJpbmc7Cj4gwqAJdTMyIGR3MSA9IE1JX1NFTUFQSE9SRV9NQk9YIHwK PiDCoAkJwqDCoE1JX1NFTUFQSE9SRV9DT01QQVJFIHwKPiDCoAkJwqDCoE1JX1NFTUFQSE9SRV9S RUdJU1RFUjsKPiAtCXUzMiB3YWl0X21ib3ggPSBzaWduYWxsZXItPnNlbWFwaG9yZS5tYm94Lndh aXRbd2FpdGVyX3JlcS0+ZW5naW5lLT5pZF07Cj4gKwl1MzIgd2FpdF9tYm94ID0gc2lnbmFsLT5l bmdpbmUtPnNlbWFwaG9yZS5tYm94LndhaXRbd2FpdC0+ZW5naW5lLT5pZF07Cj4gwqAJaW50IHJl dDsKPiDCoAo+IC0JLyogVGhyb3VnaG91dCBhbGwgb2YgdGhlIEdFTSBjb2RlLCBzZXFubyBwYXNz ZWQgaW1wbGllcyBvdXIgY3VycmVudAo+IC0JwqAqIHNlcW5vIGlzID49IHRoZSBsYXN0IHNlcW5v IGV4ZWN1dGVkLiBIb3dldmVyIGZvciBoYXJkd2FyZSB0aGUKPiAtCcKgKiBjb21wYXJpc29uIGlz IHN0cmljdGx5IGdyZWF0ZXIgdGhhbi4KPiAtCcKgKi8KPiAtCXNlcW5vIC09IDE7Cj4gLQoKRmlu YWxseSB3ZSBnZXQgcmlkIG9mIHRoaXMgXG8vCgpSZXZpZXdlZC1ieTogSm9vbmFzIExhaHRpbmVu IDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgoKPiDCoAlXQVJOX09OKHdhaXRfbWJv eCA9PSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElEKTsKPiDCoAo+IC0JcmV0ID0gaW50ZWxfcmlu Z19iZWdpbih3YWl0ZXJfcmVxLCA0KTsKPiArCXJldCA9IGludGVsX3JpbmdfYmVnaW4od2FpdCwg NCk7Cj4gwqAJaWYgKHJldCkKPiDCoAkJcmV0dXJuIHJldDsKPiDCoAo+IC0JLyogSWYgc2Vxbm8g d3JhcCBoYXBwZW5lZCwgb21pdCB0aGUgd2FpdCB3aXRoIG5vLW9wcyAqLwo+IC0JaWYgKGxpa2Vs eSghaTkxNV9nZW1faGFzX3NlcW5vX3dyYXBwZWQod2FpdGVyX3JlcS0+aTkxNSwgc2Vxbm8pKSkg ewo+IC0JCWludGVsX3JpbmdfZW1pdCh3YWl0ZXIsIGR3MSB8IHdhaXRfbWJveCk7Cj4gLQkJaW50 ZWxfcmluZ19lbWl0KHdhaXRlciwgc2Vxbm8pOwo+IC0JCWludGVsX3JpbmdfZW1pdCh3YWl0ZXIs IDApOwo+IC0JCWludGVsX3JpbmdfZW1pdCh3YWl0ZXIsIE1JX05PT1ApOwo+IC0JfSBlbHNlIHsK PiAtCQlpbnRlbF9yaW5nX2VtaXQod2FpdGVyLCBNSV9OT09QKTsKPiAtCQlpbnRlbF9yaW5nX2Vt aXQod2FpdGVyLCBNSV9OT09QKTsKPiAtCQlpbnRlbF9yaW5nX2VtaXQod2FpdGVyLCBNSV9OT09Q KTsKPiAtCQlpbnRlbF9yaW5nX2VtaXQod2FpdGVyLCBNSV9OT09QKTsKPiAtCX0KPiArCWludGVs X3JpbmdfZW1pdCh3YWl0ZXIsIGR3MSB8IHdhaXRfbWJveCk7Cj4gKwkvKiBUaHJvdWdob3V0IGFs bCBvZiB0aGUgR0VNIGNvZGUsIHNlcW5vIHBhc3NlZCBpbXBsaWVzIG91ciBjdXJyZW50Cj4gKwnC oCogc2Vxbm8gaXMgPj0gdGhlIGxhc3Qgc2Vxbm8gZXhlY3V0ZWQuIEhvd2V2ZXIgZm9yIGhhcmR3 YXJlIHRoZQo+ICsJwqAqIGNvbXBhcmlzb24gaXMgc3RyaWN0bHkgZ3JlYXRlciB0aGFuLgo+ICsJ wqAqLwo+ICsJaW50ZWxfcmluZ19lbWl0KHdhaXRlciwgc2lnbmFsLT5mZW5jZS5zZXFubyAtIDEp Owo+ICsJaW50ZWxfcmluZ19lbWl0KHdhaXRlciwgMCk7Cj4gKwlpbnRlbF9yaW5nX2VtaXQod2Fp dGVyLCBNSV9OT09QKTsKPiDCoAlpbnRlbF9yaW5nX2FkdmFuY2Uod2FpdGVyKTsKPiDCoAo+IMKg CXJldHVybiAwOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRl eCAwOGU4NjIwNGEzZDUuLjY1Y2I2YWRmMjZjYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtMjc1LDkgKzI3NSw4IEBAIHN0cnVjdCBpbnRlbF9lbmdp bmVfY3Mgewo+IMKgCQl9Owo+IMKgCj4gwqAJCS8qIEFLQSB3YWl0KCkgKi8KPiAtCQlpbnQJKCpz eW5jX3RvKShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnRvX3JlcSwKPiAtCQkJCcKgwqDC oHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmZyb20sCj4gLQkJCQnCoMKgwqB1MzIgc2Vxbm8pOwo+ ICsJCWludAkoKnN5bmNfdG8pKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqdG8sCj4gKwkJ CQnCoMKgwqBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKmZyb20pOwo+IMKgCQlpbnQJKCpz aWduYWwpKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3JlcSk7Cj4gwqAJ fSBzZW1hcGhvcmU7Cj4gwqAKLS0gCkpvb25hcyBMYWh0aW5lbgpPcGVuIFNvdXJjZSBUZWNobm9s b2d5IENlbnRlcgpJbnRlbCBDb3Jwb3JhdGlvbgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK