From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v2 10/37] drm/i915/blt: support copying objects Date: Thu, 27 Jun 2019 21:56:06 +0100 Message-ID: <20190627205633.1143-11-matthew.auld@intel.com> References: <20190627205633.1143-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 A4EC26E843 for ; Thu, 27 Jun 2019 20:56:48 +0000 (UTC) In-Reply-To: <20190627205633.1143-1-matthew.auld@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 List-Id: intel-gfx@lists.freedesktop.org V2UgY2FuIGFscmVhZHkgY2xlYXIgYW4gb2JqZWN0IHdpdGggdGhlIGJsdCwgc28gdHJ5IHRvIGRv IHRoZSBzYW1lIHRvCnN1cHBvcnQgY29weWluZyBmcm9tIG9uZSBvYmplY3QgYmFja2luZyBzdG9y ZSB0byBhbm90aGVyLiBSZWFsbHkgdGhpcyBpcwpqdXN0IG9iamVjdCAtPiBvYmplY3QsIHdoaWNo IGlzIG5vdCB0aGF0IHVzZWZ1bCB5ZXQsIHdoYXQgd2UgcmVhbGx5IHdhbnQKaXMgdHdvIGJhY2tp bmcgc3RvcmVzLCBidXQgdGhhdCB3aWxsIHJlcXVpcmUgc29tZSB2bWEgcmV3b3JrIGZpcnN0LApv dGhlcndpc2Ugd2UgYXJlIHN0dWNrIHdpdGggInRtcCIgb2JqZWN0cy4KClNpZ25lZC1vZmYtYnk6 IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5l biA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IEFiZGllbCBKYW51bGd1ZSA8 YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbQotLS0KIC4uLi9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX29iamVjdF9ibHQuYyAgICB8IDEzNSArKysrKysrKysrKysrKysrKysKIC4uLi9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuaCAgICB8ICAgOCArKwogLi4uL2k5 MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMgIHwgMTA1ICsrKysrKysrKysr KysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ncHVfY29tbWFuZHMuaCAgfCAgIDMg Ky0KIDQgZmlsZXMgY2hhbmdlZCwgMjUwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X2JsdC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuYwppbmRleCBj YjQyZTNhMzEyZTIuLmMyYjI4ZTA2YzM3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vaTkxNV9nZW1fb2JqZWN0X2JsdC5jCkBAIC0xMDIsNiArMTAyLDE0MSBAQCBpbnQgaTkxNV9n ZW1fb2JqZWN0X2ZpbGxfYmx0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJcmV0 dXJuIGVycjsKIH0KIAoraW50IGludGVsX2VtaXRfdm1hX2NvcHlfYmx0KHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxLAorCQkJICAgIHN0cnVjdCBpOTE1X3ZtYSAqc3JjLAorCQkJICAgIHN0cnVjdCBp OTE1X3ZtYSAqZHN0KQoreworCWNvbnN0IGludCBnZW4gPSBJTlRFTF9HRU4ocnEtPmk5MTUpOwor CXUzMiAqY3M7CisKKwlHRU1fQlVHX09OKHNyYy0+c2l6ZSAhPSBkc3QtPnNpemUpOworCisJY3Mg PSBpbnRlbF9yaW5nX2JlZ2luKHJxLCAxMCk7CisJaWYgKElTX0VSUihjcykpCisJCXJldHVybiBQ VFJfRVJSKGNzKTsKKworCWlmIChnZW4gPj0gOSkgeworCQkqY3MrKyA9IEdFTjlfWFlfRkFTVF9D T1BZX0JMVF9DTUQgfCAoMTAtMik7CisJCSpjcysrID0gQkxUX0RFUFRIXzMyIHwgUEFHRV9TSVpF OworCQkqY3MrKyA9IDA7CisJCSpjcysrID0gc3JjLT5zaXplID4+IFBBR0VfU0hJRlQgPDwgMTYg fCBQQUdFX1NJWkUgLyA0OworCQkqY3MrKyA9IGxvd2VyXzMyX2JpdHMoZHN0LT5ub2RlLnN0YXJ0 KTsKKwkJKmNzKysgPSB1cHBlcl8zMl9iaXRzKGRzdC0+bm9kZS5zdGFydCk7CisJCSpjcysrID0g MDsKKwkJKmNzKysgPSBQQUdFX1NJWkU7CisJCSpjcysrID0gbG93ZXJfMzJfYml0cyhzcmMtPm5v ZGUuc3RhcnQpOworCQkqY3MrKyA9IHVwcGVyXzMyX2JpdHMoc3JjLT5ub2RlLnN0YXJ0KTsKKwl9 IGVsc2UgaWYgKGdlbiA+PSA4KSB7CisJCSpjcysrID0gWFlfU1JDX0NPUFlfQkxUX0NNRCB8IEJM VF9XUklURV9SR0JBIHwgKDEwLTIpOworCQkqY3MrKyA9IEJMVF9ERVBUSF8zMiB8IEJMVF9ST1Bf U1JDX0NPUFkgfCBQQUdFX1NJWkU7CisJCSpjcysrID0gMDsKKwkJKmNzKysgPSBzcmMtPnNpemUg Pj4gUEFHRV9TSElGVCA8PCAxNiB8IFBBR0VfU0laRSAvIDQ7CisJCSpjcysrID0gbG93ZXJfMzJf Yml0cyhkc3QtPm5vZGUuc3RhcnQpOworCQkqY3MrKyA9IHVwcGVyXzMyX2JpdHMoZHN0LT5ub2Rl LnN0YXJ0KTsKKwkJKmNzKysgPSAwOworCQkqY3MrKyA9IFBBR0VfU0laRTsKKwkJKmNzKysgPSBs b3dlcl8zMl9iaXRzKHNyYy0+bm9kZS5zdGFydCk7CisJCSpjcysrID0gdXBwZXJfMzJfYml0cyhz cmMtPm5vZGUuc3RhcnQpOworCX0gZWxzZSB7CisJCSpjcysrID0gWFlfU1JDX0NPUFlfQkxUX0NN RCB8IEJMVF9XUklURV9SR0JBIHwgKDgtMik7CisJCSpjcysrID0gQkxUX0RFUFRIXzMyIHwgQkxU X1JPUF9TUkNfQ09QWSB8IFBBR0VfU0laRTsKKwkJKmNzKysgPSAwOworCQkqY3MrKyA9IHNyYy0+ c2l6ZSA+PiBQQUdFX1NISUZUIDw8IDE2IHwgUEFHRV9TSVpFIC8gNDsKKwkJKmNzKysgPSBkc3Qt Pm5vZGUuc3RhcnQ7CisJCSpjcysrID0gMDsKKwkJKmNzKysgPSBQQUdFX1NJWkU7CisJCSpjcysr ID0gc3JjLT5ub2RlLnN0YXJ0OworCQkqY3MrKyA9IE1JX05PT1A7CisJCSpjcysrID0gTUlfTk9P UDsKKwl9CisKKwlpbnRlbF9yaW5nX2FkdmFuY2UocnEsIGNzKTsKKworCXJldHVybiAwOworfQor CitpbnQgaTkxNV9nZW1fb2JqZWN0X2NvcHlfYmx0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpzcmMsCisJCQkgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpkc3QsCisJCQkgICAg IHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSA9IHRvX2k5MTUoc3JjLT5iYXNlLmRldik7CisJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQg KmN0eCA9IGNlLT5nZW1fY29udGV4dDsKKwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9 IGN0eC0+dm0gPzogJmk5MTUtPmdndHQudm07CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmpz W10gPSB7ICZzcmMtPmJhc2UsICZkc3QtPmJhc2UgfTsKKwlzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHgg YWNxdWlyZTsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYV9zcmMsICp2bWFfZHN0OworCXN0cnVjdCBp OTE1X3JlcXVlc3QgKnJxOworCWludCBlcnI7CisKKwl2bWFfc3JjID0gaTkxNV92bWFfaW5zdGFu Y2Uoc3JjLCB2bSwgTlVMTCk7CisJaWYgKElTX0VSUih2bWFfc3JjKSkKKwkJcmV0dXJuIFBUUl9F UlIodm1hX3NyYyk7CisKKwllcnIgPSBpOTE1X3ZtYV9waW4odm1hX3NyYywgMCwgMCwgUElOX1VT RVIpOworCWlmICh1bmxpa2VseShlcnIpKQorCQlyZXR1cm4gZXJyOworCisJdm1hX2RzdCA9IGk5 MTVfdm1hX2luc3RhbmNlKGRzdCwgdm0sIE5VTEwpOworCWlmIChJU19FUlIodm1hX2RzdCkpCisJ CWdvdG8gb3V0X3VucGluX3NyYzsKKworCWVyciA9IGk5MTVfdm1hX3Bpbih2bWFfZHN0LCAwLCAw LCBQSU5fVVNFUik7CisJaWYgKHVubGlrZWx5KGVycikpCisJCWdvdG8gb3V0X3VucGluX3NyYzsK KworCXJxID0gaTkxNV9yZXF1ZXN0X2NyZWF0ZShjZSk7CisJaWYgKElTX0VSUihycSkpIHsKKwkJ ZXJyID0gUFRSX0VSUihycSk7CisJCWdvdG8gb3V0X3VucGluX2RzdDsKKwl9CisKKwllcnIgPSBk cm1fZ2VtX2xvY2tfcmVzZXJ2YXRpb25zKG9ianMsIEFSUkFZX1NJWkUob2JqcyksICZhY3F1aXJl KTsKKwlpZiAodW5saWtlbHkoZXJyKSkKKwkJZ290byBvdXRfcmVxdWVzdDsKKworCWlmIChzcmMt PmNhY2hlX2RpcnR5ICYgfnNyYy0+Y2FjaGVfY29oZXJlbnQpCisJCWk5MTVfZ2VtX2NsZmx1c2hf b2JqZWN0KHNyYywgMCk7CisKKwlpZiAoZHN0LT5jYWNoZV9kaXJ0eSAmIH5kc3QtPmNhY2hlX2Nv aGVyZW50KQorCQlpOTE1X2dlbV9jbGZsdXNoX29iamVjdChkc3QsIDApOworCisJZXJyID0gaTkx NV9yZXF1ZXN0X2F3YWl0X29iamVjdChycSwgc3JjLCBmYWxzZSk7CisJaWYgKHVubGlrZWx5KGVy cikpCisJCWdvdG8gb3V0X3VubG9jazsKKworCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZl KHZtYV9zcmMsIHJxLCAwKTsKKwlpZiAodW5saWtlbHkoZXJyKSkKKwkJZ290byBvdXRfdW5sb2Nr OworCisJZXJyID0gaTkxNV9yZXF1ZXN0X2F3YWl0X29iamVjdChycSwgZHN0LCB0cnVlKTsKKwlp ZiAodW5saWtlbHkoZXJyKSkKKwkJZ290byBvdXRfdW5sb2NrOworCisJZXJyID0gaTkxNV92bWFf bW92ZV90b19hY3RpdmUodm1hX2RzdCwgcnEsIEVYRUNfT0JKRUNUX1dSSVRFKTsKKwlpZiAodW5s aWtlbHkoZXJyKSkKKwkJZ290byBvdXRfdW5sb2NrOworCisJaWYgKGNlLT5lbmdpbmUtPmVtaXRf aW5pdF9icmVhZGNydW1iKSB7CisJCWVyciA9IGNlLT5lbmdpbmUtPmVtaXRfaW5pdF9icmVhZGNy dW1iKHJxKTsKKwkJaWYgKHVubGlrZWx5KGVycikpCisJCQlnb3RvIG91dF91bmxvY2s7CisJfQor CisJZXJyID0gaW50ZWxfZW1pdF92bWFfY29weV9ibHQocnEsIHZtYV9zcmMsIHZtYV9kc3QpOwor b3V0X3VubG9jazoKKwlkcm1fZ2VtX3VubG9ja19yZXNlcnZhdGlvbnMob2JqcywgQVJSQVlfU0la RShvYmpzKSwgJmFjcXVpcmUpOworb3V0X3JlcXVlc3Q6CisJaWYgKHVubGlrZWx5KGVycikpCisJ CWk5MTVfcmVxdWVzdF9za2lwKHJxLCBlcnIpOworCisJaTkxNV9yZXF1ZXN0X2FkZChycSk7Citv dXRfdW5waW5fZHN0OgorCWk5MTVfdm1hX3VucGluKHZtYV9kc3QpOworb3V0X3VucGluX3NyYzoK KwlpOTE1X3ZtYV91bnBpbih2bWFfc3JjKTsKKwlyZXR1cm4gZXJyOworfQorCiAjaWYgSVNfRU5B QkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCiAjaW5jbHVkZSAic2VsZnRlc3RzL2k5MTVf Z2VtX29iamVjdF9ibHQuYyIKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9vYmplY3RfYmx0LmgKaW5kZXggN2VjN2RlNmFjMGMwLi4xN2ZhYzgzNWYzOTEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfYmx0LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuaApAQCAt MjEsNCArMjEsMTIgQEAgaW50IGk5MTVfZ2VtX29iamVjdF9maWxsX2JsdChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJ CQkgICAgIHUzMiB2YWx1ZSk7CiAKK2ludCBpbnRlbF9lbWl0X3ZtYV9jb3B5X2JsdChzdHJ1Y3Qg aTkxNV9yZXF1ZXN0ICpycSwKKwkJCSAgICBzdHJ1Y3QgaTkxNV92bWEgKnNyYywKKwkJCSAgICBz dHJ1Y3QgaTkxNV92bWEgKmRzdCk7CisKK2ludCBpOTE1X2dlbV9vYmplY3RfY29weV9ibHQoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnNyYywKKwkJCSAgICAgc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmRzdCwKKwkJCSAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmNlKTsKKwogI2Vu ZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVf Z2VtX29iamVjdF9ibHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkx NV9nZW1fb2JqZWN0X2JsdC5jCmluZGV4IGUyM2Q4YzllOTI5OC4uMWYyOGExMmY3YmI0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX29iamVj dF9ibHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2Vt X29iamVjdF9ibHQuYwpAQCAtOTQsMTAgKzk0LDExNSBAQCBzdGF0aWMgaW50IGlndF9maWxsX2Js dCh2b2lkICphcmcpCiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGludCBpZ3RfY29weV9ibHQo dm9pZCAqYXJnKQoreworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IGFyZzsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGNlLT5nZW1fY29udGV4dC0+aTkxNTsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqc3JjLCAqZHN0OworCXN0cnVjdCBybmRfc3RhdGUgcHJuZzsK KwlJR1RfVElNRU9VVChlbmQpOworCXUzMiAqdmFkZHI7CisJaW50IGVyciA9IDA7CisKKwlwcmFu ZG9tX3NlZWRfc3RhdGUoJnBybmcsIGk5MTVfc2VsZnRlc3QucmFuZG9tX3NlZWQpOworCisJZG8g eworCQl1MzIgc3ogPSBwcmFuZG9tX3UzMl9zdGF0ZSgmcHJuZykgJSBTWl8zMk07CisJCXUzMiB2 YWwgPSBwcmFuZG9tX3UzMl9zdGF0ZSgmcHJuZyk7CisJCXUzMiBpOworCisJCXN6ID0gcm91bmRf dXAoc3osIFBBR0VfU0laRSk7CisKKwkJcHJfZGVidWcoIiVzIHdpdGggc3o9JXgsIHZhbD0leFxu IiwgX19mdW5jX18sIHN6LCB2YWwpOworCisJCXNyYyA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVf aW50ZXJuYWwoaTkxNSwgc3opOworCQlpZiAoSVNfRVJSKHNyYykpIHsKKwkJCWVyciA9IFBUUl9F UlIodmFkZHIpOworCQkJZ290byBlcnJfZmx1c2g7CisJCX0KKworCQl2YWRkciA9IGk5MTVfZ2Vt X29iamVjdF9waW5fbWFwKHNyYywgSTkxNV9NQVBfV0IpOworCQlpZiAoSVNfRVJSKHZhZGRyKSkg eworCQkJZXJyID0gUFRSX0VSUih2YWRkcik7CisJCQlnb3RvIGVycl9wdXRfc3JjOworCQl9CisK KwkJbWVtc2V0MzIodmFkZHIsIHZhbCwgc3JjLT5iYXNlLnNpemUgLyBzaXplb2YodTMyKSk7CisK KwkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChzcmMpOworCisJCWlmICghKHNyYy0+Y2FjaGVf Y29oZXJlbnQgJiBJOTE1X0JPX0NBQ0hFX0NPSEVSRU5UX0ZPUl9SRUFEKSkKKwkJCXNyYy0+Y2Fj aGVfZGlydHkgPSB0cnVlOworCisJCWRzdCA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJu YWwoaTkxNSwgc3opOworCQlpZiAoSVNfRVJSKGRzdCkpIHsKKwkJCWVyciA9IFBUUl9FUlIodmFk ZHIpOworCQkJZ290byBlcnJfcHV0X3NyYzsKKwkJfQorCisJCXZhZGRyID0gaTkxNV9nZW1fb2Jq ZWN0X3Bpbl9tYXAoZHN0LCBJOTE1X01BUF9XQik7CisJCWlmIChJU19FUlIodmFkZHIpKSB7CisJ CQllcnIgPSBQVFJfRVJSKHZhZGRyKTsKKwkJCWdvdG8gZXJyX3B1dF9kc3Q7CisJCX0KKworCQlt ZW1zZXQzMih2YWRkciwgdmFsIF4gMHhkZWFkYmVhZiwgZHN0LT5iYXNlLnNpemUgLyBzaXplb2Yo dTMyKSk7CisKKwkJaWYgKCEoZHN0LT5jYWNoZV9jb2hlcmVudCAmIEk5MTVfQk9fQ0FDSEVfQ09I RVJFTlRfRk9SX1dSSVRFKSkKKwkJCWRzdC0+Y2FjaGVfZGlydHkgPSB0cnVlOworCisJCW11dGV4 X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCQllcnIgPSBpOTE1X2dlbV9vYmplY3Rf Y29weV9ibHQoc3JjLCBkc3QsIGNlKTsKKwkJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0 X211dGV4KTsKKwkJaWYgKGVycikKKwkJCWdvdG8gZXJyX3VucGluOworCisJCWk5MTVfZ2VtX29i amVjdF9sb2NrKGRzdCk7CisJCWVyciA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fY3B1X2RvbWFp bihkc3QsIGZhbHNlKTsKKwkJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhkc3QpOworCQlpZiAoZXJy KQorCQkJZ290byBlcnJfdW5waW47CisKKwkJZm9yIChpID0gMDsgaSA8IGRzdC0+YmFzZS5zaXpl IC8gc2l6ZW9mKHUzMik7ICsraSkgeworCQkJaWYgKHZhZGRyW2ldICE9IHZhbCkgeworCQkJCXBy X2VycigidmFkZHJbJXVdPSV4LCBleHBlY3RlZD0leFxuIiwgaSwKKwkJCQkgICAgICAgdmFkZHJb aV0sIHZhbCk7CisJCQkJZXJyID0gLUVJTlZBTDsKKwkJCQlnb3RvIGVycl91bnBpbjsKKwkJCX0K KwkJfQorCisJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoZHN0KTsKKworCQlpOTE1X2dlbV9v YmplY3RfcHV0KHNyYyk7CisJCWk5MTVfZ2VtX29iamVjdF9wdXQoZHN0KTsKKwl9IHdoaWxlICgh dGltZV9hZnRlcihqaWZmaWVzLCBlbmQpKTsKKworCWdvdG8gZXJyX2ZsdXNoOworCitlcnJfdW5w aW46CisJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChkc3QpOworZXJyX3B1dF9kc3Q6CisJaTkx NV9nZW1fb2JqZWN0X3B1dChkc3QpOworZXJyX3B1dF9zcmM6CisJaTkxNV9nZW1fb2JqZWN0X3B1 dChzcmMpOworZXJyX2ZsdXNoOgorCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgp OworCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkKKwkJZXJyID0g LUVJTzsKKwltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCisJaWYgKGVy ciA9PSAtRU5PTUVNKQorCQllcnIgPSAwOworCisJcmV0dXJuIGVycjsKK30KKwogaW50IGk5MTVf Z2VtX29iamVjdF9ibHRfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCiB7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKIAkJ U1VCVEVTVChpZ3RfZmlsbF9ibHQpLAorCQlTVUJURVNUKGlndF9jb3B5X2JsdCksCiAJfTsKIAog CWlmIChpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKGk5MTUpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9ncHVfY29tbWFuZHMuaAppbmRleCBlZWMzMWUzNmFjYTcuLmUzYjIzMzUxNjY5 YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRz LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmgKQEAg LTE4Miw3ICsxODIsOCBAQAogI2RlZmluZSBDT0xPUl9CTFRfQ01ECQkJKDI8PDI5IHwgMHg0MDw8 MjIgfCAoNS0yKSkKICNkZWZpbmUgWFlfQ09MT1JfQkxUX0NNRAkJKDIgPDwgMjkgfCAweDUwIDw8 IDIyKQogI2RlZmluZSBTUkNfQ09QWV9CTFRfQ01ECQkoKDI8PDI5KXwoMHg0Mzw8MjIpfDQpCi0j ZGVmaW5lIFhZX1NSQ19DT1BZX0JMVF9DTUQJCSgoMjw8MjkpfCgweDUzPDwyMil8NikKKyNkZWZp bmUgR0VOOV9YWV9GQVNUX0NPUFlfQkxUX0NNRAkoKDI8PDI5KXwoMHg0Mjw8MjIpKQorI2RlZmlu ZSBYWV9TUkNfQ09QWV9CTFRfQ01ECQkoKDI8PDI5KXwoMHg1Mzw8MjIpKQogI2RlZmluZSBYWV9N T05PX1NSQ19DT1BZX0lNTV9CTFQJKCgyPDwyOSl8KDB4NzE8PDIyKXw1KQogI2RlZmluZSAgIEJM VF9XUklURV9BCQkJKDI8PDIwKQogI2RlZmluZSAgIEJMVF9XUklURV9SR0IJCQkoMTw8MjApCi0t IAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==