From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [RFC 05/39] drm/i915: Split i915_dem_do_execbuffer() in half Date: Fri, 17 Jul 2015 15:33:14 +0100 Message-ID: <1437143628-6329-6-git-send-email-John.C.Harrison@Intel.com> References: <1437143628-6329-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 753096E4E6 for ; Fri, 17 Jul 2015 07:33:56 -0700 (PDT) In-Reply-To: <1437143628-6329-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 YW5kIHZhbGlkYXRlcwphbGwgdGhlIGluZm9ybWF0aW9uIHJlcXVyaWVkIHRvIHByb2Nlc3MgdGhl IGJhdGNoIGJ1ZmZlci4gSXQgYWxzbyBkb2VzIGFsbCB0aGUKb2JqZWN0IHBpbm5pbmcsIHJlbG9j YXRpb25zLCBhY3RpdmUgbGlzdCBtYW5hZ2VtZW50LCBldGMgLSBiYXNpY2FsbHkgYW55dGhpbmcK dGhhdCBtdXN0IGJlIGRvbmUgdXBmcm9udCBiZWZvcmUgdGhlIElPQ1RMIHJldHVybnMgYW5kIGFs bG93cyB0aGUgdXNlciBsYW5kIHNpZGUKdG8gc3RhcnQgY2hhbmdpbmcvZnJlZWluZyB0aGluZ3Mu IFRoZSBzZWNvbmQgaGFsZiBkb2VzIHRoZSBhY3R1YWwgcmluZwpzdWJtaXNzaW9uLgoKVGhpcyBj aGFuZ2UgaW1wbGVtZW50cyB0aGUgc3BsaXQgYnV0IGxlYXZlcyB0aGUgYmFjayBoYWxmIGJlaW5n IGNhbGxlZCBkaXJlY3RseQpmcm9tIHRoZSBlbmQgb2YgdGhlIGZyb250IGhhbGYuCgpDaGFuZ2Ut SWQ6IEk1ZTFjNzc2MzljZTUyNmFiMjQwMWIwMzIzMTg2YzUxOGJmMTNkYTBhCkZvcjogVklaLTE1 ODcKU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAgMTEg KysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgfCAgIDIgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHwgMTMwICsrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAg ICAgICAgICAgfCAgNTggKysrKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmggICAgICAgICAgIHwgICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgMTQ3IGluc2VydGlvbnMo KyksIDU1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDI4OWRkZDYu LjI4ZDUxYWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTY4NCwxMCArMTY4NCwxOCBA QCBzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyB7CiAJc3RydWN0IGRybV9kZXZpY2UgICAg ICAgICAgICAgICAqZGV2OwogCXN0cnVjdCBkcm1fZmlsZSAgICAgICAgICAgICAgICAgKmZpbGU7 CiAJdWludDMyX3QgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaF9mbGFnczsKKwl1aW50 MzJfdCAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NfZmxhZ3M7CiAJdWludDMyX3QgICAgICAg ICAgICAgICAgICAgICAgICBhcmdzX2JhdGNoX3N0YXJ0X29mZnNldDsKKwl1aW50MzJfdCAgICAg ICAgICAgICAgICAgICAgICAgIGFyZ3NfYmF0Y2hfbGVuOworCXVpbnQzMl90ICAgICAgICAgICAg ICAgICAgICAgICAgYXJnc19udW1fY2xpcHJlY3RzOworCXVpbnQzMl90ICAgICAgICAgICAgICAg ICAgICAgICAgYXJnc19EUjE7CisJdWludDMyX3QgICAgICAgICAgICAgICAgICAgICAgICBhcmdz X0RSNDsKIAl1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgIGJhdGNoX29ial92bV9vZmZz ZXQ7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAgICAgICAgICAqcmluZzsKIAlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAgICAgICpiYXRjaF9vYmo7CisJc3RydWN0IGRybV9jbGlwX3JlY3Qg ICAgICAgICAgICAqY2xpcHJlY3RzOworCXVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAg aW5zdHBfbWFzazsKKwlpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RwX21vZGU7 CiAJc3RydWN0IGludGVsX2NvbnRleHQgICAgICAgICAgICAqY3R4OwogCXN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAgICAgKnJlcXVlc3Q7CiB9OwpAQCAtMTkyOSw2ICsxOTM3LDcgQEAgc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgewogCQlpbnQgKCpleGVjYnVmX3N1Ym1pdCkoc3RydWN0IGk5 MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKIAkJCQkgICAgICBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX2V4ZWNidWZmZXIyICphcmdzLAogCQkJCSAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMp OworCQlpbnQgKCpleGVjYnVmX2ZpbmFsKShzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAq cGFyYW1zKTsKIAkJaW50ICgqaW5pdF9yaW5ncykoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAJ CXZvaWQgKCpjbGVhbnVwX3JpbmcpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwogCQl2 b2lkICgqc3RvcF9yaW5nKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKQEAgLTI3NDMs OSArMjc1MiwxMSBAQCBpbnQgaTkxNV9nZW1fc3dfZmluaXNoX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiB2b2lkIGk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19h Y3RpdmUoc3RydWN0IGxpc3RfaGVhZCAqdm1hcywKIAkJCQkJc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEpOwogdm9pZCBpOTE1X2dlbV9leGVjYnVmZmVyX3JldGlyZV9jb21tYW5kcyhz dHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zKTsKK3ZvaWQgaTkxNV9nZW1fZXhl Y2J1ZmZfcmVsZWFzZV9iYXRjaF9vYmooc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmJhdGNo X29iaik7CiBpbnQgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4 ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCiAJCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVj YnVmZmVyMiAqYXJncywKIAkJCQkgICBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzKTsKK2ludCBpOTE1 X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb25fZmluYWwoc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9w YXJhbXMgKnBhcmFtcyk7CiBpbnQgaTkxNV9nZW1fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogaW50 IGk5MTVfZ2VtX2V4ZWNidWZmZXIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA4MTUwODIwLi4yYTU2NjdiIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKQEAgLTU0ODEsMTEgKzU0ODEsMTMgQEAgaW50IGk5MTVfZ2VtX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWlmICghaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7 CiAJCWRldl9wcml2LT5ndC5leGVjYnVmX3N1Ym1pdCA9IGk5MTVfZ2VtX3JpbmdidWZmZXJfc3Vi bWlzc2lvbjsKKwkJZGV2X3ByaXYtPmd0LmV4ZWNidWZfZmluYWwgPSBpOTE1X2dlbV9yaW5nYnVm ZmVyX3N1Ym1pc3Npb25fZmluYWw7CiAJCWRldl9wcml2LT5ndC5pbml0X3JpbmdzID0gaTkxNV9n ZW1faW5pdF9yaW5nczsKIAkJZGV2X3ByaXYtPmd0LmNsZWFudXBfcmluZyA9IGludGVsX2NsZWFu dXBfcmluZ19idWZmZXI7CiAJCWRldl9wcml2LT5ndC5zdG9wX3JpbmcgPSBpbnRlbF9zdG9wX3Jp bmdfYnVmZmVyOwogCX0gZWxzZSB7CiAJCWRldl9wcml2LT5ndC5leGVjYnVmX3N1Ym1pdCA9IGlu dGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uOworCQlkZXZfcHJpdi0+Z3QuZXhlY2J1Zl9maW5hbCA9 IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uX2ZpbmFsOwogCQlkZXZfcHJpdi0+Z3QuaW5pdF9y aW5ncyA9IGludGVsX2xvZ2ljYWxfcmluZ3NfaW5pdDsKIAkJZGV2X3ByaXYtPmd0LmNsZWFudXBf cmluZyA9IGludGVsX2xvZ2ljYWxfcmluZ19jbGVhbnVwOwogCQlkZXZfcHJpdi0+Z3Quc3RvcF9y aW5nID0gaW50ZWxfbG9naWNhbF9yaW5nX3N0b3A7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9leGVjYnVmZmVyLmMKaW5kZXggOTg4ZWNkNC4uYmE5ZDU5NSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtMTE5OCwxNCArMTE5OCwxMCBAQCBp OTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJh bXMgKnBhcmFtcywKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICph cmdzLAogCQkJICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMpCiB7Ci0Jc3RydWN0IGRybV9j bGlwX3JlY3QgKmNsaXByZWN0cyA9IE5VTEw7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBh cmFtcy0+ZGV2OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSBwYXJhbXMtPnJpbmc7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK LQl1NjQgZXhlY19zdGFydCwgZXhlY19sZW47Ci0JaW50IGluc3RwX21vZGU7Ci0JdTMyIGluc3Rw X21hc2s7Ci0JaW50IGksIHJldCA9IDA7CisJaW50IHJldCA9IDA7CiAKIAlpZiAoYXJncy0+bnVt X2NsaXByZWN0cyAhPSAwKSB7CiAJCWlmIChyaW5nICE9ICZkZXZfcHJpdi0+cmluZ1tSQ1NdKSB7 CkBAIC0xMjE4LDIzICsxMjE0LDIzIEBAIGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbihz dHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCQkJcmV0dXJuIC1FSU5WQUw7 CiAJCX0KIAotCQlpZiAoYXJncy0+bnVtX2NsaXByZWN0cyA+IFVJTlRfTUFYIC8gc2l6ZW9mKCpj bGlwcmVjdHMpKSB7CisJCWlmIChhcmdzLT5udW1fY2xpcHJlY3RzID4gVUlOVF9NQVggLyBzaXpl b2YoKnBhcmFtcy0+Y2xpcHJlY3RzKSkgewogCQkJRFJNX0RFQlVHKCJleGVjYnVmIHdpdGggJXUg Y2xpcHJlY3RzXG4iLAogCQkJCSAgYXJncy0+bnVtX2NsaXByZWN0cyk7CiAJCQlyZXR1cm4gLUVJ TlZBTDsKIAkJfQogCi0JCWNsaXByZWN0cyA9IGtjYWxsb2MoYXJncy0+bnVtX2NsaXByZWN0cywK LQkJCQkgICAgc2l6ZW9mKCpjbGlwcmVjdHMpLAorCQlwYXJhbXMtPmNsaXByZWN0cyA9IGtjYWxs b2MoYXJncy0+bnVtX2NsaXByZWN0cywKKwkJCQkgICAgc2l6ZW9mKCpwYXJhbXMtPmNsaXByZWN0 cyksCiAJCQkJICAgIEdGUF9LRVJORUwpOwotCQlpZiAoY2xpcHJlY3RzID09IE5VTEwpIHsKKwkJ aWYgKHBhcmFtcy0+Y2xpcHJlY3RzID09IE5VTEwpIHsKIAkJCXJldCA9IC1FTk9NRU07CiAJCQln b3RvIGVycm9yOwogCQl9CiAKLQkJaWYgKGNvcHlfZnJvbV91c2VyKGNsaXByZWN0cywKKwkJaWYg KGNvcHlfZnJvbV91c2VyKHBhcmFtcy0+Y2xpcHJlY3RzLAogCQkJCSAgIHRvX3VzZXJfcHRyKGFy Z3MtPmNsaXByZWN0c19wdHIpLAotCQkJCSAgIHNpemVvZigqY2xpcHJlY3RzKSphcmdzLT5udW1f Y2xpcHJlY3RzKSkgeworCQkJCSAgIHNpemVvZigqcGFyYW1zLT5jbGlwcmVjdHMpKmFyZ3MtPm51 bV9jbGlwcmVjdHMpKSB7CiAJCQlyZXQgPSAtRUZBVUxUOwogCQkJZ290byBlcnJvcjsKIAkJfQpA QCAtMTI1MCwxOSArMTI0NiwxOSBAQCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3Ry dWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKIAkJfQogCX0KIAotCWluc3RwX21v ZGUgPSBhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19DT05TVEFOVFNfTUFTSzsKLQlpbnN0cF9tYXNr ID0gSTkxNV9FWEVDX0NPTlNUQU5UU19NQVNLOwotCXN3aXRjaCAoaW5zdHBfbW9kZSkgeworCXBh cmFtcy0+aW5zdHBfbW9kZSA9IGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0NPTlNUQU5UU19NQVNL OworCXBhcmFtcy0+aW5zdHBfbWFzayA9IEk5MTVfRVhFQ19DT05TVEFOVFNfTUFTSzsKKwlzd2l0 Y2ggKHBhcmFtcy0+aW5zdHBfbW9kZSkgewogCWNhc2UgSTkxNV9FWEVDX0NPTlNUQU5UU19SRUxf R0VORVJBTDoKIAljYXNlIEk5MTVfRVhFQ19DT05TVEFOVFNfQUJTT0xVVEU6CiAJY2FzZSBJOTE1 X0VYRUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFOgotCQlpZiAoaW5zdHBfbW9kZSAhPSAwICYmIHJp bmcgIT0gJmRldl9wcml2LT5yaW5nW1JDU10pIHsKKwkJaWYgKHBhcmFtcy0+aW5zdHBfbW9kZSAh PSAwICYmIHJpbmcgIT0gJmRldl9wcml2LT5yaW5nW1JDU10pIHsKIAkJCURSTV9ERUJVRygibm9u LTAgcmVsIGNvbnN0YW50cyBtb2RlIG9uIG5vbi1SQ1NcbiIpOwogCQkJcmV0ID0gLUVJTlZBTDsK IAkJCWdvdG8gZXJyb3I7CiAJCX0KIAotCQlpZiAoaW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVs YXRpdmVfY29uc3RhbnRzX21vZGUpIHsKKwkJaWYgKHBhcmFtcy0+aW5zdHBfbW9kZSAhPSBkZXZf cHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUpIHsKIAkJCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA8IDQpIHsKIAkJCQlEUk1fREVCVUcoIm5vIHJlbCBjb25zdGFudHMgb24gcHJlLWdlbjRc biIpOwogCQkJCXJldCA9IC1FSU5WQUw7CkBAIC0xMjcwLDcgKzEyNjYsNyBAQCBpOTE1X2dlbV9y aW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFt cywKIAkJCX0KIAogCQkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID4gNSAmJgotCQkJICAgIGlu c3RwX21vZGUgPT0gSTkxNV9FWEVDX0NPTlNUQU5UU19SRUxfU1VSRkFDRSkgeworCQkJICAgIHBh cmFtcy0+aW5zdHBfbW9kZSA9PSBJOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFKSB7CiAJ CQkJRFJNX0RFQlVHKCJyZWwgc3VyZmFjZSBjb25zdGFudHMgbW9kZSBpbnZhbGlkIG9uIGdlbjUr XG4iKTsKIAkJCQlyZXQgPSAtRUlOVkFMOwogCQkJCWdvdG8gZXJyb3I7CkBAIC0xMjc4LDExICsx Mjc0LDExIEBAIGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVj YnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCiAJCQkvKiBUaGUgSFcgY2hhbmdlZCB0aGUgbWVhbmlu ZyBvbiB0aGlzIGJpdCBvbiBnZW42ICovCiAJCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g NikKLQkJCQlpbnN0cF9tYXNrICY9IH5JOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFOwor CQkJCXBhcmFtcy0+aW5zdHBfbWFzayAmPSB+STkxNV9FWEVDX0NPTlNUQU5UU19SRUxfU1VSRkFD RTsKIAkJfQogCQlicmVhazsKIAlkZWZhdWx0OgotCQlEUk1fREVCVUcoImV4ZWNidWYgd2l0aCB1 bmtub3duIGNvbnN0YW50czogJWRcbiIsIGluc3RwX21vZGUpOworCQlEUk1fREVCVUcoImV4ZWNi dWYgd2l0aCB1bmtub3duIGNvbnN0YW50czogJWRcbiIsIHBhcmFtcy0+aW5zdHBfbW9kZSk7CiAJ CXJldCA9IC1FSU5WQUw7CiAJCWdvdG8gZXJyb3I7CiAJfQpAQCAtMTI5Myw3ICsxMjg5LDM4IEBA IGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3Bh cmFtcyAqcGFyYW1zLAogCiAJaTkxNV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZSh2bWFz LCBwYXJhbXMtPnJlcXVlc3QpOwogCi0JLyogVG8gYmUgc3BsaXQgaW50byB0d28gZnVuY3Rpb25z IGhlcmUuLi4gKi8KKwlyZXQgPSBkZXZfcHJpdi0+Z3QuZXhlY2J1Zl9maW5hbChwYXJhbXMpOwor CWlmIChyZXQpCisJCWdvdG8gZXJyb3I7CisKKwkvKgorCSAqIEZyZWUgZXZlcnl0aGluZyB0aGF0 IHdhcyBzdG9yZWQgaW4gdGhlIFFFIHN0cnVjdHVyZSAodW50aWwgdGhlCisJICogc2NoZWR1bGVy IGFycml2ZXMgYW5kIGRvZXMgaXQgaW5zdGVhZCk6CisJICovCisJa2ZyZWUocGFyYW1zLT5jbGlw cmVjdHMpOworCWlmIChwYXJhbXMtPmRpc3BhdGNoX2ZsYWdzICYgSTkxNV9ESVNQQVRDSF9TRUNV UkUpCisJCWk5MTVfZ2VtX2V4ZWNidWZmX3JlbGVhc2VfYmF0Y2hfb2JqKHBhcmFtcy0+YmF0Y2hf b2JqKTsKKworCXJldHVybiAwOworCitlcnJvcjoKKwlrZnJlZShwYXJhbXMtPmNsaXByZWN0cyk7 CisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFRoaXMgaXMgdGhlIG1haW4gZnVuY3Rpb24gZm9y IGFkZGluZyBhIGJhdGNoIHRvIHRoZSByaW5nLgorICogSXQgaXMgY2FsbGVkIGZyb20gdGhlIHNj aGVkdWxlciwgd2l0aCB0aGUgc3RydWN0X211dGV4IGFscmVhZHkgaGVsZC4KKyAqLworaW50IGk5 MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbl9maW5hbChzdHJ1Y3QgaTkxNV9leGVjYnVmZmVy X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHBhcmFtcy0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICAqcmlu ZyA9IHBhcmFtcy0+cmluZzsKKwl1NjQgZXhlY19zdGFydCwgZXhlY19sZW47CisJaW50IHJldCwg aTsKKworCS8qIFRoZSBtdXRleCBtdXN0IGJlIGFjcXVpcmVkIGJlZm9yZSBjYWxsaW5nIHRoaXMg ZnVuY3Rpb24gKi8KKwlCVUdfT04oIW11dGV4X2lzX2xvY2tlZCgmcGFyYW1zLT5kZXYtPnN0cnVj dF9tdXRleCkpOwogCiAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwogCkBAIC0xMzE0 LDcgKzEzNDEsNyBAQCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVf ZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKIAkgICAgICIlcyBkaWRuJ3QgY2xlYXIgcmVsb2Fk XG4iLCByaW5nLT5uYW1lKTsKIAogCWlmIChyaW5nID09ICZkZXZfcHJpdi0+cmluZ1tSQ1NdICYm Ci0JCQlpbnN0cF9tb2RlICE9IGRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNfbW9kZSkgewor CQkJcGFyYW1zLT5pbnN0cF9tb2RlICE9IGRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNfbW9k ZSkgewogCQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHBhcmFtcy0+cmVxdWVzdCwgNCk7CiAJCWlm IChyZXQpCiAJCQlnb3RvIGVycm9yOwpAQCAtMTMyMiwyNiArMTM0OSwyNiBAQCBpOTE1X2dlbV9y aW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFt cywKIAkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOwogCQlpbnRlbF9yaW5nX2VtaXQo cmluZywgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOwogCQlpbnRlbF9yaW5nX2VtaXQocmluZywg SU5TVFBNKTsKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIGluc3RwX21hc2sgPDwgMTYgfCBpbnN0 cF9tb2RlKTsKKwkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHBhcmFtcy0+aW5zdHBfbWFzayA8PCAx NiB8IHBhcmFtcy0+aW5zdHBfbW9kZSk7CiAJCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKIAot CQlkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUgPSBpbnN0cF9tb2RlOworCQlkZXZf cHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUgPSBwYXJhbXMtPmluc3RwX21vZGU7CiAJfQog Ci0JaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0dFTjdfU09MX1JFU0VUKSB7Ci0JCXJldCA9 IGk5MTVfcmVzZXRfZ2VuN19zb2xfb2Zmc2V0cyhkZXYsIHBhcmFtcy0+cmVxdWVzdCk7CisJaWYg KHBhcmFtcy0+YXJnc19mbGFncyAmIEk5MTVfRVhFQ19HRU43X1NPTF9SRVNFVCkgeworCQlyZXQg PSBpOTE1X3Jlc2V0X2dlbjdfc29sX29mZnNldHMocGFyYW1zLT5kZXYsIHBhcmFtcy0+cmVxdWVz dCk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycm9yOwogCX0KIAotCWV4ZWNfbGVuICAgPSBhcmdz LT5iYXRjaF9sZW47CisJZXhlY19sZW4gICA9IHBhcmFtcy0+YXJnc19iYXRjaF9sZW47CiAJZXhl Y19zdGFydCA9IHBhcmFtcy0+YmF0Y2hfb2JqX3ZtX29mZnNldCArCiAJCSAgICAgcGFyYW1zLT5h cmdzX2JhdGNoX3N0YXJ0X29mZnNldDsKIAotCWlmIChjbGlwcmVjdHMpIHsKLQkJZm9yIChpID0g MDsgaSA8IGFyZ3MtPm51bV9jbGlwcmVjdHM7IGkrKykgewotCQkJcmV0ID0gaTkxNV9lbWl0X2Jv eChwYXJhbXMtPnJlcXVlc3QsICZjbGlwcmVjdHNbaV0sCi0JCQkJCSAgICBhcmdzLT5EUjEsIGFy Z3MtPkRSNCk7CisJaWYgKHBhcmFtcy0+Y2xpcHJlY3RzKSB7CisJCWZvciAoaSA9IDA7IGkgPCBw YXJhbXMtPmFyZ3NfbnVtX2NsaXByZWN0czsgaSsrKSB7CisJCQlyZXQgPSBpOTE1X2VtaXRfYm94 KHBhcmFtcy0+cmVxdWVzdCwgJnBhcmFtcy0+Y2xpcHJlY3RzW2ldLAorCQkJCQkgICAgcGFyYW1z LT5hcmdzX0RSMSwgcGFyYW1zLT5hcmdzX0RSNCk7CiAJCQlpZiAocmV0KQogCQkJCWdvdG8gZXJy b3I7CiAKQEAgLTEzNzAsNyArMTM5Nyw2IEBAIGVycm9yOgogCSAqLwogCWludGVsX3J1bnRpbWVf cG1fcHV0KGRldl9wcml2KTsKIAotCWtmcmVlKGNsaXByZWN0cyk7CiAJcmV0dXJuIHJldDsKIH0K IApAQCAtMTcyMiw2ICsxNzQ4LDExIEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlwYXJhbXMtPmZpbGUgICAgICAgICAgICAgICAg ICAgID0gZmlsZTsKIAlwYXJhbXMtPnJpbmcgICAgICAgICAgICAgICAgICAgID0gcmluZzsKIAlw YXJhbXMtPmRpc3BhdGNoX2ZsYWdzICAgICAgICAgID0gZGlzcGF0Y2hfZmxhZ3M7CisJcGFyYW1z LT5hcmdzX2ZsYWdzICAgICAgICAgICAgICA9IGFyZ3MtPmZsYWdzOworCXBhcmFtcy0+YXJnc19i YXRjaF9sZW4gICAgICAgICAgPSBhcmdzLT5iYXRjaF9sZW47CisJcGFyYW1zLT5hcmdzX251bV9j bGlwcmVjdHMgICAgICA9IGFyZ3MtPm51bV9jbGlwcmVjdHM7CisJcGFyYW1zLT5hcmdzX0RSMSAg ICAgICAgICAgICAgICA9IGFyZ3MtPkRSMTsKKwlwYXJhbXMtPmFyZ3NfRFI0ICAgICAgICAgICAg ICAgID0gYXJncy0+RFI0OwogCXBhcmFtcy0+YmF0Y2hfb2JqICAgICAgICAgICAgICAgPSBiYXRj aF9vYmo7CiAJcGFyYW1zLT5jdHggICAgICAgICAgICAgICAgICAgICA9IGN0eDsKIApAQCAtMTc0 NywxOSArMTc3OCwzMSBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCiAjZW5kaWYKIAogCXJldCA9IGRldl9wcml2LT5ndC5leGVjYnVm X3N1Ym1pdChwYXJhbXMsIGFyZ3MsICZlYi0+dm1hcyk7CisJaWYgKHJldCkKKwkJZ290byBlcnI7 CisKKwkvKiB0aGUgcmVxdWVzdCBvd25zIHRoZSByZWYgbm93ICovCisJaTkxNV9nZW1fY29udGV4 dF91bnJlZmVyZW5jZShjdHgpOwogCi1lcnJfYmF0Y2hfdW5waW46CiAJLyoKLQkgKiBGSVhNRTog V2UgY3J1Y2lhbGx5IHJlbHkgdXBvbiB0aGUgYWN0aXZlIHRyYWNraW5nIGZvciB0aGUgKHBwZ3R0 KQotCSAqIGJhdGNoIHZtYSBmb3IgY29ycmVjdG5lc3MuIEZvciBsZXNzIHVnbHkgYW5kIGxlc3Mg ZnJhZ2lsaXR5IHRoaXMKLQkgKiBuZWVkcyB0byBiZSBhZGp1c3RlZCB0byBhbHNvIHRyYWNrIHRo ZSBnZ3R0IGJhdGNoIHZtYSBwcm9wZXJseSBhcwotCSAqIGFjdGl2ZS4KKwkgKiBUaGUgZWIgbGlz dCBpcyBubyBsb25nZXIgcmVxdWlyZWQuIFRoZSBzY2hlZHVsZXIgaGFzIGV4dHJhY3RlZCBhbGwK KwkgKiB0aGUgaW5mb3JtYXRpb24gdGhhbiBuZWVkcyB0byBwZXJzaXN0LgorCSAqLworCWViX2Rl c3Ryb3koZWIpOworCisJLyoKKwkgKiBEb24ndCBjbGVhbiB1cCBldmVyeXRoaW5nIHRoYXQgaXMg bm93IHNhdmVkIGF3YXkgaW4gdGhlIHF1ZXVlLgorCSAqIEp1c3QgdW5sb2NrIGFuZCByZXR1cm4g aW1tZWRpYXRlbHkuCiAJICovCisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisK KwlyZXR1cm4gMDsKKworZXJyX2JhdGNoX3VucGluOgogCWlmIChkaXNwYXRjaF9mbGFncyAmIEk5 MTVfRElTUEFUQ0hfU0VDVVJFKQotCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihiYXRjaF9v YmopOworCQlpOTE1X2dlbV9leGVjYnVmZl9yZWxlYXNlX2JhdGNoX29iaihiYXRjaF9vYmopOwog CiBlcnI6Ci0JLyogdGhlIHJlcXVlc3Qgb3ducyB0aGUgcmVmIG5vdyAqLwogCWk5MTVfZ2VtX2Nv bnRleHRfdW5yZWZlcmVuY2UoY3R4KTsKIAllYl9kZXN0cm95KGViKTsKIApAQCAtMTc4Miw2ICsx ODI1LDE3IEBAIHByZV9tdXRleF9lcnI6CiAJcmV0dXJuIHJldDsKIH0KIAordm9pZCBpOTE1X2dl bV9leGVjYnVmZl9yZWxlYXNlX2JhdGNoX29iaihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq YmF0Y2hfb2JqKQoreworCS8qCisJICogRklYTUU6IFdlIGNydWNpYWxseSByZWx5IHVwb24gdGhl IGFjdGl2ZSB0cmFja2luZyBmb3IgdGhlIChwcGd0dCkKKwkgKiBiYXRjaCB2bWEgZm9yIGNvcnJl Y3RuZXNzLiBGb3IgbGVzcyB1Z2x5IGFuZCBsZXNzIGZyYWdpbGl0eSB0aGlzCisJICogbmVlZHMg dG8gYmUgYWRqdXN0ZWQgdG8gYWxzbyB0cmFjayB0aGUgZ2d0dCBiYXRjaCB2bWEgcHJvcGVybHkg YXMKKwkgKiBhY3RpdmUuCisJICovCisJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oYmF0Y2hf b2JqKTsKK30KKwogLyoKICAqIExlZ2FjeSBleGVjYnVmZmVyIGp1c3QgY3JlYXRlcyBhbiBleGVj MiBsaXN0IGZyb20gdGhlIG9yaWdpbmFsIGV4ZWMgb2JqZWN0CiAgKiBsaXN0IGFycmF5IGFuZCBw YXNzZXMgaXQgdG8gdGhlIHJlYWwgZnVuY3Rpb24uCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmlu ZGV4IDg5ZjNiY2QuLmJiYTExNTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC04MzAs MzUgKzgzMCwzMSBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVf ZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKIAlzdHJ1Y3QgZHJtX2RldmljZSAgICAgICAqZGV2 ID0gcGFyYW1zLT5kZXY7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAgKnJpbmcgPSBwYXJhbXMt PnJpbmc7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHBhcmFtcy0+Y3R4LT5l bmdpbmVbcmluZy0+aWRdLnJpbmdidWY7Ci0JdTY0IGV4ZWNfc3RhcnQ7Ci0JaW50IGluc3RwX21v ZGU7Ci0JdTMyIGluc3RwX21hc2s7CiAJaW50IHJldDsKIAotCWluc3RwX21vZGUgPSBhcmdzLT5m bGFncyAmIEk5MTVfRVhFQ19DT05TVEFOVFNfTUFTSzsKLQlpbnN0cF9tYXNrID0gSTkxNV9FWEVD X0NPTlNUQU5UU19NQVNLOwotCXN3aXRjaCAoaW5zdHBfbW9kZSkgeworCXBhcmFtcy0+aW5zdHBf bW9kZSA9IGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0NPTlNUQU5UU19NQVNLOworCXBhcmFtcy0+ aW5zdHBfbWFzayA9IEk5MTVfRVhFQ19DT05TVEFOVFNfTUFTSzsKKwlzd2l0Y2ggKHBhcmFtcy0+ aW5zdHBfbW9kZSkgewogCWNhc2UgSTkxNV9FWEVDX0NPTlNUQU5UU19SRUxfR0VORVJBTDoKIAlj YXNlIEk5MTVfRVhFQ19DT05TVEFOVFNfQUJTT0xVVEU6CiAJY2FzZSBJOTE1X0VYRUNfQ09OU1RB TlRTX1JFTF9TVVJGQUNFOgotCQlpZiAoaW5zdHBfbW9kZSAhPSAwICYmIHJpbmcgIT0gJmRldl9w cml2LT5yaW5nW1JDU10pIHsKKwkJaWYgKHBhcmFtcy0+aW5zdHBfbW9kZSAhPSAwICYmIHJpbmcg IT0gJmRldl9wcml2LT5yaW5nW1JDU10pIHsKIAkJCURSTV9ERUJVRygibm9uLTAgcmVsIGNvbnN0 YW50cyBtb2RlIG9uIG5vbi1SQ1NcbiIpOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAotCQlp ZiAoaW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUpIHsKLQkJ CWlmIChpbnN0cF9tb2RlID09IEk5MTVfRVhFQ19DT05TVEFOVFNfUkVMX1NVUkZBQ0UpIHsKKwkJ aWYgKHBhcmFtcy0+aW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21v ZGUpIHsKKwkJCWlmIChwYXJhbXMtPmluc3RwX21vZGUgPT0gSTkxNV9FWEVDX0NPTlNUQU5UU19S RUxfU1VSRkFDRSkgewogCQkJCURSTV9ERUJVRygicmVsIHN1cmZhY2UgY29uc3RhbnRzIG1vZGUg aW52YWxpZCBvbiBnZW41K1xuIik7CiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQl9CiAKIAkJCS8q IFRoZSBIVyBjaGFuZ2VkIHRoZSBtZWFuaW5nIG9uIHRoaXMgYml0IG9uIGdlbjYgKi8KLQkJCWlu c3RwX21hc2sgJj0gfkk5MTVfRVhFQ19DT05TVEFOVFNfUkVMX1NVUkZBQ0U7CisJCQlwYXJhbXMt Pmluc3RwX21hc2sgJj0gfkk5MTVfRVhFQ19DT05TVEFOVFNfUkVMX1NVUkZBQ0U7CiAJCX0KIAkJ YnJlYWs7CiAJZGVmYXVsdDoKLQkJRFJNX0RFQlVHKCJleGVjYnVmIHdpdGggdW5rbm93biBjb25z dGFudHM6ICVkXG4iLCBpbnN0cF9tb2RlKTsKKwkJRFJNX0RFQlVHKCJleGVjYnVmIHdpdGggdW5r bm93biBjb25zdGFudHM6ICVkXG4iLCBwYXJhbXMtPmluc3RwX21vZGUpOwogCQlyZXR1cm4gLUVJ TlZBTDsKIAl9CiAKQEAgLTg4OCw3ICs4ODQsMzMgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJt aXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCiAKIAlpOTE1X2dl bV9leGVjYnVmZmVyX21vdmVfdG9fYWN0aXZlKHZtYXMsIHBhcmFtcy0+cmVxdWVzdCk7CiAKLQkv KiBUbyBiZSBzcGxpdCBpbnRvIHR3byBmdW5jdGlvbnMgaGVyZS4uLiAqLworCXJldCA9IGRldl9w cml2LT5ndC5leGVjYnVmX2ZpbmFsKHBhcmFtcyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsK KworCS8qCisJICogRnJlZSBldmVyeXRoaW5nIHRoYXQgd2FzIHN0b3JlZCBpbiB0aGUgUUUgc3Ry dWN0dXJlICh1bnRpbCB0aGUKKwkgKiBzY2hlZHVsZXIgYXJyaXZlcyBhbmQgZG9lcyBpdCBpbnN0 ZWFkKToKKwkgKi8KKwlpZiAocGFyYW1zLT5kaXNwYXRjaF9mbGFncyAmIEk5MTVfRElTUEFUQ0hf U0VDVVJFKQorCQlpOTE1X2dlbV9leGVjYnVmZl9yZWxlYXNlX2JhdGNoX29iaihwYXJhbXMtPmJh dGNoX29iaik7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFRoaXMgaXMgdGhlIG1haW4gZnVu Y3Rpb24gZm9yIGFkZGluZyBhIGJhdGNoIHRvIHRoZSByaW5nLgorICogSXQgaXMgY2FsbGVkIGZy b20gdGhlIHNjaGVkdWxlciwgd2l0aCB0aGUgc3RydWN0X211dGV4IGFscmVhZHkgaGVsZC4KKyAq LworaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uX2ZpbmFsKHN0cnVjdCBpOTE1X2V4ZWNi dWZmZXJfcGFyYW1zICpwYXJhbXMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gcGFyYW1zLT5kZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg ICpyaW5nID0gcGFyYW1zLT5yaW5nOworCXU2NCBleGVjX3N0YXJ0OworCWludCByZXQ7CisKKwkv KiBUaGUgbXV0ZXggbXVzdCBiZSBhY3F1aXJlZCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9u ICovCisJQlVHX09OKCFtdXRleF9pc19sb2NrZWQoJnBhcmFtcy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgp KTsKIAogCS8qCiAJICogVW5jb25kaXRpb25hbGx5IGludmFsaWRhdGUgZ3B1IGNhY2hlcyBhbmQg ZW5zdXJlIHRoYXQgd2UgZG8gZmx1c2gKQEAgLTg5OSw3ICs5MjEsOSBAQCBpbnQgaW50ZWxfZXhl Y2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywK IAkJcmV0dXJuIHJldDsKIAogCWlmIChyaW5nID09ICZkZXZfcHJpdi0+cmluZ1tSQ1NdICYmCi0J ICAgIGluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlKSB7CisJ ICAgIHBhcmFtcy0+aW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21v ZGUpIHsKKwkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBwYXJhbXMtPnJlcXVl c3QtPnJpbmdidWY7CisKIAkJcmV0ID0gaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHBhcmFtcy0+ cmVxdWVzdCwgNCk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwpAQCAtOTA3LDE0ICs5MzEs MTQgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZm ZXJfcGFyYW1zICpwYXJhbXMsCiAJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1J X05PT1ApOwogCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9MT0FEX1JFR0lT VEVSX0lNTSgxKSk7CiAJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIElOU1RQTSk7 Ci0JCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIGluc3RwX21hc2sgPDwgMTYgfCBp bnN0cF9tb2RlKTsKKwkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgcGFyYW1zLT5p bnN0cF9tYXNrIDw8IDE2IHwgcGFyYW1zLT5pbnN0cF9tb2RlKTsKIAkJaW50ZWxfbG9naWNhbF9y aW5nX2FkdmFuY2UocmluZ2J1Zik7CiAKLQkJZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19t b2RlID0gaW5zdHBfbW9kZTsKKwkJZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlID0g cGFyYW1zLT5pbnN0cF9tb2RlOwogCX0KIAogCWV4ZWNfc3RhcnQgPSBwYXJhbXMtPmJhdGNoX29i al92bV9vZmZzZXQgKwotCQkgICAgIGFyZ3MtPmJhdGNoX3N0YXJ0X29mZnNldDsKKwkJICAgICBw YXJhbXMtPmFyZ3NfYmF0Y2hfc3RhcnRfb2Zmc2V0OwogCiAJcmV0ID0gcmluZy0+ZW1pdF9iYl9z dGFydChwYXJhbXMtPnJlcXVlc3QsIGV4ZWNfc3RhcnQsIHBhcmFtcy0+ZGlzcGF0Y2hfZmxhZ3Mp OwogCWlmIChyZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCmluZGV4IDY0Zjg5Zjk5Li4wN2Q0 MDJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaApAQCAtODEsNiArODEsNyBAQCBzdHJ1Y3Qg aTkxNV9leGVjYnVmZmVyX3BhcmFtczsKIGludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbihz dHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCQkJICAgICAgIHN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmFyZ3MsCiAJCQkgICAgICAgc3RydWN0IGxpc3RfaGVh ZCAqdm1hcyk7CitpbnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb25fZmluYWwoc3RydWN0IGk5 MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcyk7CiB1MzIgaW50ZWxfZXhlY2xpc3RzX2N0eF9p ZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaik7CiAKIHZvaWQgaW50ZWxfbHJj X2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwotLSAKMS45LjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==