From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH v4 04/38] drm/i915: Split i915_dem_do_execbuffer() in half Date: Mon, 11 Jan 2016 18:42:33 +0000 Message-ID: <1452537788-32136-5-git-send-email-John.C.Harrison@Intel.com> References: <1448278774-31376-1-git-send-email-John.C.Harrison@Intel.com> <1452537788-32136-1-git-send-email-John.C.Harrison@Intel.com> 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 ESMTP id A8C3788FFA for ; Mon, 11 Jan 2016 10:43:14 -0800 (PST) In-Reply-To: <1452537788-32136-1-git-send-email-John.C.Harrison@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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClNwbGl0IHRo ZSBleGVjYnVmZmVyKCkgZnVuY3Rpb24gaW4gaGFsZi4gVGhlIGZpcnN0IGhhbGYgY29sbGVjdHMg YW5kCnZhbGlkYXRlcyBhbGwgdGhlIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIHByb2Nlc3MgdGhl IGJhdGNoIGJ1ZmZlci4gSXQKYWxzbyBkb2VzIGFsbCB0aGUgb2JqZWN0IHBpbm5pbmcsIHJlbG9j YXRpb25zLCBhY3RpdmUgbGlzdCBtYW5hZ2VtZW50LApldGMgLSBiYXNpY2FsbHkgYW55dGhpbmcg dGhhdCBtdXN0IGJlIGRvbmUgdXBmcm9udCBiZWZvcmUgdGhlIElPQ1RMCnJldHVybnMgYW5kIGFs bG93cyB0aGUgdXNlciBsYW5kIHNpZGUgdG8gc3RhcnQgY2hhbmdpbmcvZnJlZWluZwp0aGluZ3Mu IFRoZSBzZWNvbmQgaGFsZiBkb2VzIHRoZSBhY3R1YWwgcmluZyBzdWJtaXNzaW9uLgoKVGhpcyBj aGFuZ2UgaW1wbGVtZW50cyB0aGUgc3BsaXQgYnV0IGxlYXZlcyB0aGUgYmFjayBoYWxmIGJlaW5n IGNhbGxlZApkaXJlY3RseSBmcm9tIHRoZSBlbmQgb2YgdGhlIGZyb250IGhhbGYuCgp2MjogVXBk YXRlZCBkdWUgdG8gY2hhbmdlcyBpbiB1bmRlcmx5aW5nIHRyZWUgLSBhZGRpdGlvbiBvZiBzeW5j IGZlbmNlCnN1cHBvcnQgYW5kIHJlbW92YWwgb2YgY2xpcHJlY3RzLgoKdjM6IE1vdmVkIGxvY2Fs ICdyaW5nYnVmJyB2YXJpYWJsZSB0byBtYWtlIGxhdGVyIHBhdGNoZXMgaW4gdGhlCnNlcmllcyBh IGJpdCBuZWF0ZXIuCgp2NDogQ29ycmVjdGVkIGEgdHlwbyBpbiB0aGUgY29tbWl0IG1lc3NhZ2Ug YW5kIGRvd25ncmFkZWQgYSBCVUdfT04gdG8KYSBXQVJOX09OIGFzIHRoZSBsYXR0ZXIgaXMgcHJl ZmVycmVkLiBBbHNvIHJlbW92ZWQgYWxsIHRoZSBleHRlcm5hbApzeW5jL2ZlbmNlIHN1cHBvcnQg YXMgdGhhdCB3aWxsIG5vdyBiZSBhIHNlcGFyYXRlIHBhdGNoIHNlcmllcy4KCkZvcjogVklaLTE1 ODcKU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAgMTEg KysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgICAyICsK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8IDEwMSArKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMg ICAgICAgICAgIHwgIDU3ICsrKysrKysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5oICAgICAgICAgICB8ICAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDEzMCBpbnNlcnRp b25zKCspLCA0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBhY2Zl MjVmLi4yNTIwNDU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTE2NzksMTAgKzE2Nzks MTggQEAgc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgewogCXN0cnVjdCBkcm1fZGV2aWNl ICAgICAgICAgICAgICAgKmRldjsKIAlzdHJ1Y3QgZHJtX2ZpbGUgICAgICAgICAgICAgICAgICpm aWxlOwogCXVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hfZmxhZ3M7CisJ dWludDMyX3QgICAgICAgICAgICAgICAgICAgICAgICBhcmdzX2ZsYWdzOwogCXVpbnQzMl90ICAg ICAgICAgICAgICAgICAgICAgICAgYXJnc19iYXRjaF9zdGFydF9vZmZzZXQ7CisJdWludDMyX3Qg ICAgICAgICAgICAgICAgICAgICAgICBhcmdzX2JhdGNoX2xlbjsKKwl1aW50MzJfdCAgICAgICAg ICAgICAgICAgICAgICAgIGFyZ3NfbnVtX2NsaXByZWN0czsKKwl1aW50MzJfdCAgICAgICAgICAg ICAgICAgICAgICAgIGFyZ3NfRFIxOworCXVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAg YXJnc19EUjQ7CiAJdWludDY0X3QgICAgICAgICAgICAgICAgICAgICAgICBiYXRjaF9vYmpfdm1f b2Zmc2V0OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgICAgICAgICAgKnJpbmc7CiAJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgICAgICAqYmF0Y2hfb2JqOworCXN0cnVjdCBkcm1fY2xpcF9y ZWN0ICAgICAgICAgICAgKmNsaXByZWN0czsKKwl1aW50MzJfdCAgICAgICAgICAgICAgICAgICAg ICAgIGluc3RwX21hc2s7CisJaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0cF9t b2RlOwogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICAgICAgICAgICAgKmN0eDsKIAlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgICAgICpyZXF1ZXN0OwogfTsKQEAgLTE5NDQsNiArMTk1Miw3IEBA IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkJaW50ICgqZXhlY2J1Zl9zdWJtaXQpKHN0cnVj dCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCiAJCQkJICAgICAgc3RydWN0IGRybV9p OTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKIAkJCQkgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICp2 bWFzKTsKKwkJaW50ICgqZXhlY2J1Zl9maW5hbCkoc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJh bXMgKnBhcmFtcyk7CiAJCWludCAoKmluaXRfcmluZ3MpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp OwogCQl2b2lkICgqY2xlYW51cF9yaW5nKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsK IAkJdm9pZCAoKnN0b3BfcmluZykoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7CkBAIC0y NzkwLDkgKzI3OTksMTEgQEAgaW50IGk5MTVfZ2VtX3N3X2ZpbmlzaF9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogdm9pZCBpOTE1X2dlbV9leGVjYnVmZmVyX21vdmVf dG9fYWN0aXZlKHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMsCiAJCQkJCXN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxKTsKIHZvaWQgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXRpcmVfY29tbWFu ZHMoc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcyk7Cit2b2lkIGk5MTVfZ2Vt X2V4ZWNidWZmX3JlbGVhc2VfYmF0Y2hfb2JqKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpi YXRjaF9vYmopOwogaW50IGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbihzdHJ1Y3QgaTkx NV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCQkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY2J1ZmZlcjIgKmFyZ3MsCiAJCQkJICAgc3RydWN0IGxpc3RfaGVhZCAqdm1hcyk7CitpbnQg aTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uX2ZpbmFsKHN0cnVjdCBpOTE1X2V4ZWNidWZm ZXJfcGFyYW1zICpwYXJhbXMpOwogaW50IGk5MTVfZ2VtX2V4ZWNidWZmZXIoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsK IGludCBpOTE1X2dlbV9leGVjYnVmZmVyMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggZThlYzQ5ZS4uNWJmN2RhNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCkBAIC01MjIwLDExICs1MjIwLDEzIEBAIGludCBpOTE1X2dlbV9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlpZiAoIWk5MTUuZW5hYmxlX2V4ZWNsaXN0 cykgewogCQlkZXZfcHJpdi0+Z3QuZXhlY2J1Zl9zdWJtaXQgPSBpOTE1X2dlbV9yaW5nYnVmZmVy X3N1Ym1pc3Npb247CisJCWRldl9wcml2LT5ndC5leGVjYnVmX2ZpbmFsID0gaTkxNV9nZW1fcmlu Z2J1ZmZlcl9zdWJtaXNzaW9uX2ZpbmFsOwogCQlkZXZfcHJpdi0+Z3QuaW5pdF9yaW5ncyA9IGk5 MTVfZ2VtX2luaXRfcmluZ3M7CiAJCWRldl9wcml2LT5ndC5jbGVhbnVwX3JpbmcgPSBpbnRlbF9j bGVhbnVwX3JpbmdfYnVmZmVyOwogCQlkZXZfcHJpdi0+Z3Quc3RvcF9yaW5nID0gaW50ZWxfc3Rv cF9yaW5nX2J1ZmZlcjsKIAl9IGVsc2UgewogCQlkZXZfcHJpdi0+Z3QuZXhlY2J1Zl9zdWJtaXQg PSBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbjsKKwkJZGV2X3ByaXYtPmd0LmV4ZWNidWZfZmlu YWwgPSBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbl9maW5hbDsKIAkJZGV2X3ByaXYtPmd0Lmlu aXRfcmluZ3MgPSBpbnRlbF9sb2dpY2FsX3JpbmdzX2luaXQ7CiAJCWRldl9wcml2LT5ndC5jbGVh bnVwX3JpbmcgPSBpbnRlbF9sb2dpY2FsX3JpbmdfY2xlYW51cDsKIAkJZGV2X3ByaXYtPmd0LnN0 b3BfcmluZyA9IGludGVsX2xvZ2ljYWxfcmluZ19zdG9wOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZXhlY2J1ZmZlci5jCmluZGV4IDBlY2EyYjYuLmVmZjE3MWQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTExODEsNDEgKzExODEsMzgg QEAgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJf cGFyYW1zICpwYXJhbXMsCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBhcmFtcy0+ZGV2Owog CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSBwYXJhbXMtPnJpbmc7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1NjQgZXhlY19z dGFydCwgZXhlY19sZW47Ci0JaW50IGluc3RwX21vZGU7Ci0JdTMyIGluc3RwX21hc2s7CiAJaW50 IHJldDsKIAotCWluc3RwX21vZGUgPSBhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19DT05TVEFOVFNf TUFTSzsKLQlpbnN0cF9tYXNrID0gSTkxNV9FWEVDX0NPTlNUQU5UU19NQVNLOwotCXN3aXRjaCAo aW5zdHBfbW9kZSkgeworCXBhcmFtcy0+aW5zdHBfbW9kZSA9IGFyZ3MtPmZsYWdzICYgSTkxNV9F WEVDX0NPTlNUQU5UU19NQVNLOworCXBhcmFtcy0+aW5zdHBfbWFzayA9IEk5MTVfRVhFQ19DT05T VEFOVFNfTUFTSzsKKwlzd2l0Y2ggKHBhcmFtcy0+aW5zdHBfbW9kZSkgewogCWNhc2UgSTkxNV9F WEVDX0NPTlNUQU5UU19SRUxfR0VORVJBTDoKIAljYXNlIEk5MTVfRVhFQ19DT05TVEFOVFNfQUJT T0xVVEU6CiAJY2FzZSBJOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFOgotCQlpZiAoaW5z dHBfbW9kZSAhPSAwICYmIHJpbmcgIT0gJmRldl9wcml2LT5yaW5nW1JDU10pIHsKKwkJaWYgKHBh cmFtcy0+aW5zdHBfbW9kZSAhPSAwICYmIHJpbmcgIT0gJmRldl9wcml2LT5yaW5nW1JDU10pIHsK IAkJCURSTV9ERUJVRygibm9uLTAgcmVsIGNvbnN0YW50cyBtb2RlIG9uIG5vbi1SQ1NcbiIpOwog CQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAotCQlpZiAoaW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+ cmVsYXRpdmVfY29uc3RhbnRzX21vZGUpIHsKKwkJaWYgKHBhcmFtcy0+aW5zdHBfbW9kZSAhPSBk ZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUpIHsKIAkJCWlmIChJTlRFTF9JTkZPKGRl diktPmdlbiA8IDQpIHsKIAkJCQlEUk1fREVCVUcoIm5vIHJlbCBjb25zdGFudHMgb24gcHJlLWdl bjRcbiIpOwogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJfQogCiAJCQlpZiAoSU5URUxfSU5GTyhk ZXYpLT5nZW4gPiA1ICYmCi0JCQkgICAgaW5zdHBfbW9kZSA9PSBJOTE1X0VYRUNfQ09OU1RBTlRT X1JFTF9TVVJGQUNFKSB7CisJCQkgICAgcGFyYW1zLT5pbnN0cF9tb2RlID09IEk5MTVfRVhFQ19D T05TVEFOVFNfUkVMX1NVUkZBQ0UpIHsKIAkJCQlEUk1fREVCVUcoInJlbCBzdXJmYWNlIGNvbnN0 YW50cyBtb2RlIGludmFsaWQgb24gZ2VuNStcbiIpOwogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJ fQogCiAJCQkvKiBUaGUgSFcgY2hhbmdlZCB0aGUgbWVhbmluZyBvbiB0aGlzIGJpdCBvbiBnZW42 ICovCiAJCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNikKLQkJCQlpbnN0cF9tYXNrICY9 IH5JOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFOworCQkJCXBhcmFtcy0+aW5zdHBfbWFz ayAmPSB+STkxNV9FWEVDX0NPTlNUQU5UU19SRUxfU1VSRkFDRTsKIAkJfQogCQlicmVhazsKIAlk ZWZhdWx0OgotCQlEUk1fREVCVUcoImV4ZWNidWYgd2l0aCB1bmtub3duIGNvbnN0YW50czogJWRc biIsIGluc3RwX21vZGUpOworCQlEUk1fREVCVUcoImV4ZWNidWYgd2l0aCB1bmtub3duIGNvbnN0 YW50czogJWRcbiIsIHBhcmFtcy0+aW5zdHBfbW9kZSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0K IApAQCAtMTIyNSw3ICsxMjIyLDMzIEBAIGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbihz dHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCiAJaTkxNV9nZW1fZXhlY2J1 ZmZlcl9tb3ZlX3RvX2FjdGl2ZSh2bWFzLCBwYXJhbXMtPnJlcXVlc3QpOwogCi0JLyogVG8gYmUg c3BsaXQgaW50byB0d28gZnVuY3Rpb25zIGhlcmUuLi4gKi8KKwlyZXQgPSBkZXZfcHJpdi0+Z3Qu ZXhlY2J1Zl9maW5hbChwYXJhbXMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwkvKgor CSAqIEZyZWUgZXZlcnl0aGluZyB0aGF0IHdhcyBzdG9yZWQgaW4gdGhlIFFFIHN0cnVjdHVyZSAo dW50aWwgdGhlCisJICogc2NoZWR1bGVyIGFycml2ZXMgYW5kIGRvZXMgaXQgaW5zdGVhZCk6CisJ ICovCisJaWYgKHBhcmFtcy0+ZGlzcGF0Y2hfZmxhZ3MgJiBJOTE1X0RJU1BBVENIX1NFQ1VSRSkK KwkJaTkxNV9nZW1fZXhlY2J1ZmZfcmVsZWFzZV9iYXRjaF9vYmoocGFyYW1zLT5iYXRjaF9vYmop OworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBUaGlzIGlzIHRoZSBtYWluIGZ1bmN0aW9uIGZv ciBhZGRpbmcgYSBiYXRjaCB0byB0aGUgcmluZy4KKyAqIEl0IGlzIGNhbGxlZCBmcm9tIHRoZSBz Y2hlZHVsZXIsIHdpdGggdGhlIHN0cnVjdF9tdXRleCBhbHJlYWR5IGhlbGQuCisgKi8KK2ludCBp OTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb25fZmluYWwoc3RydWN0IGk5MTVfZXhlY2J1ZmZl cl9wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBwYXJhbXMtPmRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAgKnJp bmcgPSBwYXJhbXMtPnJpbmc7CisJdTY0IGV4ZWNfc3RhcnQsIGV4ZWNfbGVuOworCWludCByZXQ7 CisKKwkvKiBUaGUgbXV0ZXggbXVzdCBiZSBhY3F1aXJlZCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1 bmN0aW9uICovCisJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZwYXJhbXMtPmRldi0+c3RydWN0 X211dGV4KSk7CiAKIAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CiAKQEAgLTEyNDYs NyArMTI2OSw3IEBAIGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9l eGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCSAgICAgIiVzIGRpZG4ndCBjbGVhciByZWxvYWRc biIsIHJpbmctPm5hbWUpOwogCiAJaWYgKHJpbmcgPT0gJmRldl9wcml2LT5yaW5nW1JDU10gJiYK LQkgICAgaW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUpIHsK KwkgICAgcGFyYW1zLT5pbnN0cF9tb2RlICE9IGRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNf bW9kZSkgewogCQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHBhcmFtcy0+cmVxdWVzdCwgNCk7CiAJ CWlmIChyZXQpCiAJCQlnb3RvIGVycm9yOwpAQCAtMTI1NCwxOSArMTI3NywxOSBAQCBpOTE1X2dl bV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBh cmFtcywKIAkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOwogCQlpbnRlbF9yaW5nX2Vt aXQocmluZywgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOwogCQlpbnRlbF9yaW5nX2VtaXQocmlu ZywgSU5TVFBNKTsKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIGluc3RwX21hc2sgPDwgMTYgfCBp bnN0cF9tb2RlKTsKKwkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHBhcmFtcy0+aW5zdHBfbWFzayA8 PCAxNiB8IHBhcmFtcy0+aW5zdHBfbW9kZSk7CiAJCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsK IAotCQlkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUgPSBpbnN0cF9tb2RlOworCQlk ZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUgPSBwYXJhbXMtPmluc3RwX21vZGU7CiAJ fQogCi0JaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0dFTjdfU09MX1JFU0VUKSB7Ci0JCXJl dCA9IGk5MTVfcmVzZXRfZ2VuN19zb2xfb2Zmc2V0cyhkZXYsIHBhcmFtcy0+cmVxdWVzdCk7CisJ aWYgKHBhcmFtcy0+YXJnc19mbGFncyAmIEk5MTVfRVhFQ19HRU43X1NPTF9SRVNFVCkgeworCQly ZXQgPSBpOTE1X3Jlc2V0X2dlbjdfc29sX29mZnNldHMocGFyYW1zLT5kZXYsIHBhcmFtcy0+cmVx dWVzdCk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycm9yOwogCX0KIAotCWV4ZWNfbGVuICAgPSBh cmdzLT5iYXRjaF9sZW47CisJZXhlY19sZW4gICA9IHBhcmFtcy0+YXJnc19iYXRjaF9sZW47CiAJ ZXhlY19zdGFydCA9IHBhcmFtcy0+YmF0Y2hfb2JqX3ZtX29mZnNldCArCiAJCSAgICAgcGFyYW1z LT5hcmdzX2JhdGNoX3N0YXJ0X29mZnNldDsKIApAQCAtMTU4NCwyMyArMTYwNyw0MCBAQCBpOTE1 X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJ cGFyYW1zLT5maWxlICAgICAgICAgICAgICAgICAgICA9IGZpbGU7CiAJcGFyYW1zLT5yaW5nICAg ICAgICAgICAgICAgICAgICA9IHJpbmc7CiAJcGFyYW1zLT5kaXNwYXRjaF9mbGFncyAgICAgICAg ICA9IGRpc3BhdGNoX2ZsYWdzOworCXBhcmFtcy0+YXJnc19mbGFncyAgICAgICAgICAgICAgPSBh cmdzLT5mbGFnczsKKwlwYXJhbXMtPmFyZ3NfYmF0Y2hfbGVuICAgICAgICAgID0gYXJncy0+YmF0 Y2hfbGVuOworCXBhcmFtcy0+YXJnc19udW1fY2xpcHJlY3RzICAgICAgPSBhcmdzLT5udW1fY2xp cHJlY3RzOworCXBhcmFtcy0+YXJnc19EUjEgICAgICAgICAgICAgICAgPSBhcmdzLT5EUjE7CisJ cGFyYW1zLT5hcmdzX0RSNCAgICAgICAgICAgICAgICA9IGFyZ3MtPkRSNDsKIAlwYXJhbXMtPmJh dGNoX29iaiAgICAgICAgICAgICAgID0gYmF0Y2hfb2JqOwogCXBhcmFtcy0+Y3R4ICAgICAgICAg ICAgICAgICAgICAgPSBjdHg7CiAKIAlyZXQgPSBkZXZfcHJpdi0+Z3QuZXhlY2J1Zl9zdWJtaXQo cGFyYW1zLCBhcmdzLCAmZWItPnZtYXMpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX2JhdGNoX3Vu cGluOworCisJLyogdGhlIHJlcXVlc3Qgb3ducyB0aGUgcmVmIG5vdyAqLworCWk5MTVfZ2VtX2Nv bnRleHRfdW5yZWZlcmVuY2UoY3R4KTsKIAotZXJyX2JhdGNoX3VucGluOgogCS8qCi0JICogRklY TUU6IFdlIGNydWNpYWxseSByZWx5IHVwb24gdGhlIGFjdGl2ZSB0cmFja2luZyBmb3IgdGhlIChw cGd0dCkKLQkgKiBiYXRjaCB2bWEgZm9yIGNvcnJlY3RuZXNzLiBGb3IgbGVzcyB1Z2x5IGFuZCBs ZXNzIGZyYWdpbGl0eSB0aGlzCi0JICogbmVlZHMgdG8gYmUgYWRqdXN0ZWQgdG8gYWxzbyB0cmFj ayB0aGUgZ2d0dCBiYXRjaCB2bWEgcHJvcGVybHkgYXMKLQkgKiBhY3RpdmUuCisJICogVGhlIGVi IGxpc3QgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLiBUaGUgc2NoZWR1bGVyIGhhcyBleHRyYWN0ZWQg YWxsCisJICogdGhlIGluZm9ybWF0aW9uIHRoYW4gbmVlZHMgdG8gcGVyc2lzdC4KIAkgKi8KKwll Yl9kZXN0cm95KGViKTsKKworCS8qCisJICogRG9uJ3QgY2xlYW4gdXAgZXZlcnl0aGluZyB0aGF0 IGlzIG5vdyBzYXZlZCBhd2F5IGluIHRoZSBxdWV1ZS4KKwkgKiBKdXN0IHVubG9jayBhbmQgcmV0 dXJuIGltbWVkaWF0ZWx5LgorCSAqLworCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp OworCisJcmV0dXJuIDA7CisKK2Vycl9iYXRjaF91bnBpbjoKIAlpZiAoZGlzcGF0Y2hfZmxhZ3Mg JiBJOTE1X0RJU1BBVENIX1NFQ1VSRSkKLQkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oYmF0 Y2hfb2JqKTsKKwkJaTkxNV9nZW1fZXhlY2J1ZmZfcmVsZWFzZV9iYXRjaF9vYmooYmF0Y2hfb2Jq KTsKIAogZXJyOgotCS8qIHRoZSByZXF1ZXN0IG93bnMgdGhlIHJlZiBub3cgKi8KIAlpOTE1X2dl bV9jb250ZXh0X3VucmVmZXJlbmNlKGN0eCk7CiAJZWJfZGVzdHJveShlYik7CiAKQEAgLTE2MTgs NiArMTY1OCwxNyBAQCBwcmVfbXV0ZXhfZXJyOgogCXJldHVybiByZXQ7CiB9CiAKK3ZvaWQgaTkx NV9nZW1fZXhlY2J1ZmZfcmVsZWFzZV9iYXRjaF9vYmooc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKmJhdGNoX29iaikKK3sKKwkvKgorCSAqIEZJWE1FOiBXZSBjcnVjaWFsbHkgcmVseSB1cG9u IHRoZSBhY3RpdmUgdHJhY2tpbmcgZm9yIHRoZSAocHBndHQpCisJICogYmF0Y2ggdm1hIGZvciBj b3JyZWN0bmVzcy4gRm9yIGxlc3MgdWdseSBhbmQgbGVzcyBmcmFnaWxpdHkgdGhpcworCSAqIG5l ZWRzIHRvIGJlIGFkanVzdGVkIHRvIGFsc28gdHJhY2sgdGhlIGdndHQgYmF0Y2ggdm1hIHByb3Bl cmx5IGFzCisJICogYWN0aXZlLgorCSAqLworCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGJh dGNoX29iaik7Cit9CisKIC8qCiAgKiBMZWdhY3kgZXhlY2J1ZmZlciBqdXN0IGNyZWF0ZXMgYW4g ZXhlYzIgbGlzdCBmcm9tIHRoZSBvcmlnaW5hbCBleGVjIG9iamVjdAogICogbGlzdCBhcnJheSBh bmQgcGFzc2VzIGl0IHRvIHRoZSByZWFsIGZ1bmN0aW9uLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YwppbmRleCA0YmYwZWU2Li4wMTQxODBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAt ODY5LDM1ICs4NjksMzEgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBp OTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCiAJc3RydWN0IGRybV9kZXZpY2UgICAgICAg KmRldiA9IHBhcmFtcy0+ZGV2OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgICpyaW5nID0gcGFy YW1zLT5yaW5nOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBwYXJhbXMtPmN0 eC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmOwotCXU2NCBleGVjX3N0YXJ0OwotCWludCBpbnN0 cF9tb2RlOwotCXUzMiBpbnN0cF9tYXNrOwogCWludCByZXQ7CiAKLQlpbnN0cF9tb2RlID0gYXJn cy0+ZmxhZ3MgJiBJOTE1X0VYRUNfQ09OU1RBTlRTX01BU0s7Ci0JaW5zdHBfbWFzayA9IEk5MTVf RVhFQ19DT05TVEFOVFNfTUFTSzsKLQlzd2l0Y2ggKGluc3RwX21vZGUpIHsKKwlwYXJhbXMtPmlu c3RwX21vZGUgPSBhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19DT05TVEFOVFNfTUFTSzsKKwlwYXJh bXMtPmluc3RwX21hc2sgPSBJOTE1X0VYRUNfQ09OU1RBTlRTX01BU0s7CisJc3dpdGNoIChwYXJh bXMtPmluc3RwX21vZGUpIHsKIAljYXNlIEk5MTVfRVhFQ19DT05TVEFOVFNfUkVMX0dFTkVSQUw6 CiAJY2FzZSBJOTE1X0VYRUNfQ09OU1RBTlRTX0FCU09MVVRFOgogCWNhc2UgSTkxNV9FWEVDX0NP TlNUQU5UU19SRUxfU1VSRkFDRToKLQkJaWYgKGluc3RwX21vZGUgIT0gMCAmJiByaW5nICE9ICZk ZXZfcHJpdi0+cmluZ1tSQ1NdKSB7CisJCWlmIChwYXJhbXMtPmluc3RwX21vZGUgIT0gMCAmJiBy aW5nICE9ICZkZXZfcHJpdi0+cmluZ1tSQ1NdKSB7CiAJCQlEUk1fREVCVUcoIm5vbi0wIHJlbCBj b25zdGFudHMgbW9kZSBvbiBub24tUkNTXG4iKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAK LQkJaWYgKGluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlKSB7 Ci0JCQlpZiAoaW5zdHBfbW9kZSA9PSBJOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFKSB7 CisJCWlmIChwYXJhbXMtPmluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50 c19tb2RlKSB7CisJCQlpZiAocGFyYW1zLT5pbnN0cF9tb2RlID09IEk5MTVfRVhFQ19DT05TVEFO VFNfUkVMX1NVUkZBQ0UpIHsKIAkJCQlEUk1fREVCVUcoInJlbCBzdXJmYWNlIGNvbnN0YW50cyBt b2RlIGludmFsaWQgb24gZ2VuNStcbiIpOwogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJfQogCiAJ CQkvKiBUaGUgSFcgY2hhbmdlZCB0aGUgbWVhbmluZyBvbiB0aGlzIGJpdCBvbiBnZW42ICovCi0J CQlpbnN0cF9tYXNrICY9IH5JOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFOworCQkJcGFy YW1zLT5pbnN0cF9tYXNrICY9IH5JOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFOwogCQl9 CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCURSTV9ERUJVRygiZXhlY2J1ZiB3aXRoIHVua25vd24g Y29uc3RhbnRzOiAlZFxuIiwgaW5zdHBfbW9kZSk7CisJCURSTV9ERUJVRygiZXhlY2J1ZiB3aXRo IHVua25vd24gY29uc3RhbnRzOiAlZFxuIiwgcGFyYW1zLT5pbnN0cF9tb2RlKTsKIAkJcmV0dXJu IC1FSU5WQUw7CiAJfQogCkBAIC05MTIsNyArOTA4LDM0IEBAIGludCBpbnRlbF9leGVjbGlzdHNf c3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCiAJaTkx NV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZSh2bWFzLCBwYXJhbXMtPnJlcXVlc3QpOwog Ci0JLyogVG8gYmUgc3BsaXQgaW50byB0d28gZnVuY3Rpb25zIGhlcmUuLi4gKi8KKwlyZXQgPSBk ZXZfcHJpdi0+Z3QuZXhlY2J1Zl9maW5hbChwYXJhbXMpOworCWlmIChyZXQpCisJCXJldHVybiBy ZXQ7CisKKwkvKgorCSAqIEZyZWUgZXZlcnl0aGluZyB0aGF0IHdhcyBzdG9yZWQgaW4gdGhlIFFF IHN0cnVjdHVyZSAodW50aWwgdGhlCisJICogc2NoZWR1bGVyIGFycml2ZXMgYW5kIGRvZXMgaXQg aW5zdGVhZCk6CisJICovCisJaWYgKHBhcmFtcy0+ZGlzcGF0Y2hfZmxhZ3MgJiBJOTE1X0RJU1BB VENIX1NFQ1VSRSkKKwkJaTkxNV9nZW1fZXhlY2J1ZmZfcmVsZWFzZV9iYXRjaF9vYmoocGFyYW1z LT5iYXRjaF9vYmopOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBUaGlzIGlzIHRoZSBtYWlu IGZ1bmN0aW9uIGZvciBhZGRpbmcgYSBiYXRjaCB0byB0aGUgcmluZy4KKyAqIEl0IGlzIGNhbGxl ZCBmcm9tIHRoZSBzY2hlZHVsZXIsIHdpdGggdGhlIHN0cnVjdF9tdXRleCBhbHJlYWR5IGhlbGQu CisgKi8KK2ludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbl9maW5hbChzdHJ1Y3QgaTkxNV9l eGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHBhcmFtcy0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZiA9IHBhcmFtcy0+cmVxdWVzdC0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nID0gcGFyYW1zLT5yaW5nOworCXU2NCBleGVjX3N0YXJ0OworCWludCBy ZXQ7CisKKwkvKiBUaGUgbXV0ZXggbXVzdCBiZSBhY3F1aXJlZCBiZWZvcmUgY2FsbGluZyB0aGlz IGZ1bmN0aW9uICovCisJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZwYXJhbXMtPmRldi0+c3Ry dWN0X211dGV4KSk7CiAKIAkvKgogCSAqIFVuY29uZGl0aW9uYWxseSBpbnZhbGlkYXRlIGdwdSBj YWNoZXMgYW5kIGVuc3VyZSB0aGF0IHdlIGRvIGZsdXNoCkBAIC05MjMsNyArOTQ2LDcgQEAgaW50 IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1z ICpwYXJhbXMsCiAJCXJldHVybiByZXQ7CiAKIAlpZiAocmluZyA9PSAmZGV2X3ByaXYtPnJpbmdb UkNTXSAmJgotCSAgICBpbnN0cF9tb2RlICE9IGRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNf bW9kZSkgeworCSAgICBwYXJhbXMtPmluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2Nv bnN0YW50c19tb2RlKSB7CiAJCXJldCA9IGludGVsX2xvZ2ljYWxfcmluZ19iZWdpbihwYXJhbXMt PnJlcXVlc3QsIDQpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKQEAgLTkzMSwxNCArOTU0 LDE0IEBAIGludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVm ZmVyX3BhcmFtcyAqcGFyYW1zLAogCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBN SV9OT09QKTsKIAkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTE9BRF9SRUdJ U1RFUl9JTU0oMSkpOwogCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBJTlNUUE0p OwotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBpbnN0cF9tYXNrIDw8IDE2IHwg aW5zdHBfbW9kZSk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIHBhcmFtcy0+ aW5zdHBfbWFzayA8PCAxNiB8IHBhcmFtcy0+aW5zdHBfbW9kZSk7CiAJCWludGVsX2xvZ2ljYWxf cmluZ19hZHZhbmNlKHJpbmdidWYpOwogCi0JCWRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNf bW9kZSA9IGluc3RwX21vZGU7CisJCWRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNfbW9kZSA9 IHBhcmFtcy0+aW5zdHBfbW9kZTsKIAl9CiAKIAlleGVjX3N0YXJ0ID0gcGFyYW1zLT5iYXRjaF9v Ympfdm1fb2Zmc2V0ICsKLQkJICAgICBhcmdzLT5iYXRjaF9zdGFydF9vZmZzZXQ7CisJCSAgICAg cGFyYW1zLT5hcmdzX2JhdGNoX3N0YXJ0X29mZnNldDsKIAogCXJldCA9IHJpbmctPmVtaXRfYmJf c3RhcnQocGFyYW1zLT5yZXF1ZXN0LCBleGVjX3N0YXJ0LCBwYXJhbXMtPmRpc3BhdGNoX2ZsYWdz KTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAppbmRleCA0ZTYwZDU0Li44ZDli YWQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaApAQCAtOTMsNiArOTMsNyBAQCBzdHJ1Y3Qg aTkxNV9leGVjYnVmZmVyX3BhcmFtczsKIGludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbihz dHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCQkJICAgICAgIHN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmFyZ3MsCiAJCQkgICAgICAgc3RydWN0IGxpc3RfaGVh ZCAqdm1hcyk7CitpbnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb25fZmluYWwoc3RydWN0IGk5 MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcyk7CiB1MzIgaW50ZWxfZXhlY2xpc3RzX2N0eF9p ZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaik7CiAKIHZvaWQgaW50ZWxfbHJj X2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwotLSAKMS45LjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==