From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH 05/40] drm/i915: Split i915_dem_do_execbuffer() in half Date: Fri, 11 Dec 2015 13:15:30 +0000 Message-ID: <1449839730-22070-1-git-send-email-John.C.Harrison@Intel.com> References: <1448278774-31376-6-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id E07846EFB9 for ; Fri, 11 Dec 2015 05:15:36 -0800 (PST) In-Reply-To: <1448278774-31376-6-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 YW5kCnZhbGlkYXRlcyBhbGwgdGhlIGluZm9ybWF0aW9uIHJlcXVyaWVkIHRvIHByb2Nlc3MgdGhl IGJhdGNoIGJ1ZmZlci4gSXQKYWxzbyBkb2VzIGFsbCB0aGUgb2JqZWN0IHBpbm5pbmcsIHJlbG9j YXRpb25zLCBhY3RpdmUgbGlzdCBtYW5hZ2VtZW50LApldGMgLSBiYXNpY2FsbHkgYW55dGhpbmcg dGhhdCBtdXN0IGJlIGRvbmUgdXBmcm9udCBiZWZvcmUgdGhlIElPQ1RMCnJldHVybnMgYW5kIGFs bG93cyB0aGUgdXNlciBsYW5kIHNpZGUgdG8gc3RhcnQgY2hhbmdpbmcvZnJlZWluZwp0aGluZ3Mu IFRoZSBzZWNvbmQgaGFsZiBkb2VzIHRoZSBhY3R1YWwgcmluZyBzdWJtaXNzaW9uLgoKVGhpcyBj aGFuZ2UgaW1wbGVtZW50cyB0aGUgc3BsaXQgYnV0IGxlYXZlcyB0aGUgYmFjayBoYWxmIGJlaW5n IGNhbGxlZApkaXJlY3RseSBmcm9tIHRoZSBlbmQgb2YgdGhlIGZyb250IGhhbGYuCgp2MjogVXBk YXRlZCBkdWUgdG8gY2hhbmdlcyBpbiB1bmRlcmx5aW5nIHRyZWUgLSBhZGRpdGlvbiBvZiBzeW5j IGZlbmNlCnN1cHBvcnQgYW5kIHJlbW92YWwgb2YgY2xpcHJlY3RzLgoKdjM6IE1vdmVkIGxvY2Fs ICdyaW5nYnVmJyB2YXJpYWJsZSB0byBtYWtlIGxhdGVyIHBhdGNoZXMgaW4gdGhlCnNlcmllcyBh IGJpdCBuZWF0ZXIuCgpDaGFuZ2UtSWQ6IEk1ZTFjNzc2MzljZTUyNmFiMjQwMWIwMzIzMTg2YzUx OGJmMTNkYTBhCkZvcjogVklaLTE1ODcKU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9o bi5DLkhhcnJpc29uQEludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICAgICAgICAgfCAgMTEgKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j ICAgICAgICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1 ZmZlci5jIHwgMTMwICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgfCAgNTcgKysrKysrKysrLS0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggICAgICAgICAgIHwgICAxICsKIDUgZmlsZXMgY2hh bmdlZCwgMTQ1IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCmluZGV4IDE5NGJjYTAuLmViMDA0NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApA QCAtMTY3OSwxMCArMTY3OSwxOCBAQCBzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyB7CiAJ c3RydWN0IGRybV9kZXZpY2UgICAgICAgICAgICAgICAqZGV2OwogCXN0cnVjdCBkcm1fZmlsZSAg ICAgICAgICAgICAgICAgKmZpbGU7CiAJdWludDMyX3QgICAgICAgICAgICAgICAgICAgICAgICBk aXNwYXRjaF9mbGFnczsKKwl1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NfZmxh Z3M7CiAJdWludDMyX3QgICAgICAgICAgICAgICAgICAgICAgICBhcmdzX2JhdGNoX3N0YXJ0X29m ZnNldDsKKwl1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NfYmF0Y2hfbGVuOwor CXVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgYXJnc19udW1fY2xpcHJlY3RzOworCXVp bnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgYXJnc19EUjE7CisJdWludDMyX3QgICAgICAg ICAgICAgICAgICAgICAgICBhcmdzX0RSNDsKIAl1aW50NjRfdCAgICAgICAgICAgICAgICAgICAg ICAgIGJhdGNoX29ial92bV9vZmZzZXQ7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAgICAgICAg ICAqcmluZzsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAgICAgICpiYXRjaF9vYmo7CisJ c3RydWN0IGRybV9jbGlwX3JlY3QgICAgICAgICAgICAqY2xpcHJlY3RzOworCXVpbnQzMl90ICAg ICAgICAgICAgICAgICAgICAgICAgaW5zdHBfbWFzazsKKwlpbnQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGluc3RwX21vZGU7CiAJc3RydWN0IGludGVsX2NvbnRleHQgICAgICAgICAgICAq Y3R4OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAgICAgKnJlcXVlc3Q7CiB9OwpAQCAt MTk0NCw2ICsxOTUyLDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCQlpbnQgKCpleGVj YnVmX3N1Ym1pdCkoc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKIAkJCQkg ICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzLAogCQkJCSAgICAgIHN0 cnVjdCBsaXN0X2hlYWQgKnZtYXMpOworCQlpbnQgKCpleGVjYnVmX2ZpbmFsKShzdHJ1Y3QgaTkx NV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zKTsKIAkJaW50ICgqaW5pdF9yaW5ncykoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7CiAJCXZvaWQgKCpjbGVhbnVwX3JpbmcpKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcpOwogCQl2b2lkICgqc3RvcF9yaW5nKShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKTsKQEAgLTI3OTgsOSArMjgwNywxMSBAQCBpbnQgaTkxNV9nZW1fc3dfZmluaXNo X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiB2b2lkIGk5MTVfZ2Vt X2V4ZWNidWZmZXJfbW92ZV90b19hY3RpdmUoc3RydWN0IGxpc3RfaGVhZCAqdm1hcywKIAkJCQkJ c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwogdm9pZCBpOTE1X2dlbV9leGVjYnVm ZmVyX3JldGlyZV9jb21tYW5kcyhzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1z KTsKK3ZvaWQgaTkxNV9nZW1fZXhlY2J1ZmZfcmVsZWFzZV9iYXRjaF9vYmooc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKmJhdGNoX29iaik7CiBpbnQgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJt aXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCiAJCQkJICAgc3Ry dWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKIAkJCQkgICBzdHJ1Y3QgbGlzdF9o ZWFkICp2bWFzKTsKK2ludCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb25fZmluYWwoc3Ry dWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcyk7CiBpbnQgaTkxNV9nZW1fZXhlY2J1 ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXYpOwogaW50IGk5MTVfZ2VtX2V4ZWNidWZmZXIyKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCAzYzg4Njc4 Li5iOTUwMWNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTUyNTcsMTEgKzUyNTcsMTMg QEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWlmICghaTkx NS5lbmFibGVfZXhlY2xpc3RzKSB7CiAJCWRldl9wcml2LT5ndC5leGVjYnVmX3N1Ym1pdCA9IGk5 MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbjsKKwkJZGV2X3ByaXYtPmd0LmV4ZWNidWZfZmlu YWwgPSBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb25fZmluYWw7CiAJCWRldl9wcml2LT5n dC5pbml0X3JpbmdzID0gaTkxNV9nZW1faW5pdF9yaW5nczsKIAkJZGV2X3ByaXYtPmd0LmNsZWFu dXBfcmluZyA9IGludGVsX2NsZWFudXBfcmluZ19idWZmZXI7CiAJCWRldl9wcml2LT5ndC5zdG9w X3JpbmcgPSBpbnRlbF9zdG9wX3JpbmdfYnVmZmVyOwogCX0gZWxzZSB7CiAJCWRldl9wcml2LT5n dC5leGVjYnVmX3N1Ym1pdCA9IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uOworCQlkZXZfcHJp di0+Z3QuZXhlY2J1Zl9maW5hbCA9IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uX2ZpbmFsOwog CQlkZXZfcHJpdi0+Z3QuaW5pdF9yaW5ncyA9IGludGVsX2xvZ2ljYWxfcmluZ3NfaW5pdDsKIAkJ ZGV2X3ByaXYtPmd0LmNsZWFudXBfcmluZyA9IGludGVsX2xvZ2ljYWxfcmluZ19jbGVhbnVwOwog CQlkZXZfcHJpdi0+Z3Quc3RvcF9yaW5nID0gaW50ZWxfbG9naWNhbF9yaW5nX3N0b3A7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKaW5kZXggZjdmMTA1Ny4uMDVj OWRlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAt MTE4Myw0MSArMTE4MywzOCBAQCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0 IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gcGFyYW1zLT5kZXY7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHBhcmFtcy0+ cmluZzsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwotCXU2NCBleGVjX3N0YXJ0LCBleGVjX2xlbjsKLQlpbnQgaW5zdHBfbW9kZTsKLQl1MzIg aW5zdHBfbWFzazsKIAlpbnQgcmV0OwogCi0JaW5zdHBfbW9kZSA9IGFyZ3MtPmZsYWdzICYgSTkx NV9FWEVDX0NPTlNUQU5UU19NQVNLOwotCWluc3RwX21hc2sgPSBJOTE1X0VYRUNfQ09OU1RBTlRT X01BU0s7Ci0Jc3dpdGNoIChpbnN0cF9tb2RlKSB7CisJcGFyYW1zLT5pbnN0cF9tb2RlID0gYXJn cy0+ZmxhZ3MgJiBJOTE1X0VYRUNfQ09OU1RBTlRTX01BU0s7CisJcGFyYW1zLT5pbnN0cF9tYXNr ID0gSTkxNV9FWEVDX0NPTlNUQU5UU19NQVNLOworCXN3aXRjaCAocGFyYW1zLT5pbnN0cF9tb2Rl KSB7CiAJY2FzZSBJOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9HRU5FUkFMOgogCWNhc2UgSTkxNV9F WEVDX0NPTlNUQU5UU19BQlNPTFVURToKIAljYXNlIEk5MTVfRVhFQ19DT05TVEFOVFNfUkVMX1NV UkZBQ0U6Ci0JCWlmIChpbnN0cF9tb2RlICE9IDAgJiYgcmluZyAhPSAmZGV2X3ByaXYtPnJpbmdb UkNTXSkgeworCQlpZiAocGFyYW1zLT5pbnN0cF9tb2RlICE9IDAgJiYgcmluZyAhPSAmZGV2X3By aXYtPnJpbmdbUkNTXSkgewogCQkJRFJNX0RFQlVHKCJub24tMCByZWwgY29uc3RhbnRzIG1vZGUg b24gbm9uLVJDU1xuIik7CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCi0JCWlmIChpbnN0cF9t b2RlICE9IGRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNfbW9kZSkgeworCQlpZiAocGFyYW1z LT5pbnN0cF9tb2RlICE9IGRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNfbW9kZSkgewogCQkJ aWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNCkgewogCQkJCURSTV9ERUJVRygibm8gcmVsIGNv bnN0YW50cyBvbiBwcmUtZ2VuNFxuIik7CiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQl9CiAKIAkJ CWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+IDUgJiYKLQkJCSAgICBpbnN0cF9tb2RlID09IEk5 MTVfRVhFQ19DT05TVEFOVFNfUkVMX1NVUkZBQ0UpIHsKKwkJCSAgICBwYXJhbXMtPmluc3RwX21v ZGUgPT0gSTkxNV9FWEVDX0NPTlNUQU5UU19SRUxfU1VSRkFDRSkgewogCQkJCURSTV9ERUJVRygi cmVsIHN1cmZhY2UgY29uc3RhbnRzIG1vZGUgaW52YWxpZCBvbiBnZW41K1xuIik7CiAJCQkJcmV0 dXJuIC1FSU5WQUw7CiAJCQl9CiAKIAkJCS8qIFRoZSBIVyBjaGFuZ2VkIHRoZSBtZWFuaW5nIG9u IHRoaXMgYml0IG9uIGdlbjYgKi8KIAkJCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KQot CQkJCWluc3RwX21hc2sgJj0gfkk5MTVfRVhFQ19DT05TVEFOVFNfUkVMX1NVUkZBQ0U7CisJCQkJ cGFyYW1zLT5pbnN0cF9tYXNrICY9IH5JOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFOwog CQl9CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCURSTV9ERUJVRygiZXhlY2J1ZiB3aXRoIHVua25v d24gY29uc3RhbnRzOiAlZFxuIiwgaW5zdHBfbW9kZSk7CisJCURSTV9ERUJVRygiZXhlY2J1ZiB3 aXRoIHVua25vd24gY29uc3RhbnRzOiAlZFxuIiwgcGFyYW1zLT5pbnN0cF9tb2RlKTsKIAkJcmV0 dXJuIC1FSU5WQUw7CiAJfQogCkBAIC0xMjI3LDcgKzEyMjQsMzMgQEAgaTkxNV9nZW1fcmluZ2J1 ZmZlcl9zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCiAK IAlpOTE1X2dlbV9leGVjYnVmZmVyX21vdmVfdG9fYWN0aXZlKHZtYXMsIHBhcmFtcy0+cmVxdWVz dCk7CiAKLQkvKiBUbyBiZSBzcGxpdCBpbnRvIHR3byBmdW5jdGlvbnMgaGVyZS4uLiAqLworCXJl dCA9IGRldl9wcml2LT5ndC5leGVjYnVmX2ZpbmFsKHBhcmFtcyk7CisJaWYgKHJldCkKKwkJcmV0 dXJuIHJldDsKKworCS8qCisJICogRnJlZSBldmVyeXRoaW5nIHRoYXQgd2FzIHN0b3JlZCBpbiB0 aGUgUUUgc3RydWN0dXJlICh1bnRpbCB0aGUKKwkgKiBzY2hlZHVsZXIgYXJyaXZlcyBhbmQgZG9l cyBpdCBpbnN0ZWFkKToKKwkgKi8KKwlpZiAocGFyYW1zLT5kaXNwYXRjaF9mbGFncyAmIEk5MTVf RElTUEFUQ0hfU0VDVVJFKQorCQlpOTE1X2dlbV9leGVjYnVmZl9yZWxlYXNlX2JhdGNoX29iaihw YXJhbXMtPmJhdGNoX29iaik7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFRoaXMgaXMgdGhl IG1haW4gZnVuY3Rpb24gZm9yIGFkZGluZyBhIGJhdGNoIHRvIHRoZSByaW5nLgorICogSXQgaXMg Y2FsbGVkIGZyb20gdGhlIHNjaGVkdWxlciwgd2l0aCB0aGUgc3RydWN0X211dGV4IGFscmVhZHkg aGVsZC4KKyAqLworaW50IGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbl9maW5hbChzdHJ1 Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHBhcmFtcy0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICAqcmluZyA9IHBhcmFtcy0+cmluZzsKKwl1NjQgZXhlY19zdGFydCwgZXhl Y19sZW47CisJaW50IHJldDsKKworCS8qIFRoZSBtdXRleCBtdXN0IGJlIGFjcXVpcmVkIGJlZm9y ZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gKi8KKwlCVUdfT04oIW11dGV4X2lzX2xvY2tlZCgmcGFy YW1zLT5kZXYtPnN0cnVjdF9tdXRleCkpOwogCiAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3By aXYpOwogCkBAIC0xMjQ4LDcgKzEyNzEsNyBAQCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Np b24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKIAkgICAgICIlcyBkaWRu J3QgY2xlYXIgcmVsb2FkXG4iLCByaW5nLT5uYW1lKTsKIAogCWlmIChyaW5nID09ICZkZXZfcHJp di0+cmluZ1tSQ1NdICYmCi0JICAgIGluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2Nv bnN0YW50c19tb2RlKSB7CisJICAgIHBhcmFtcy0+aW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVs YXRpdmVfY29uc3RhbnRzX21vZGUpIHsKIAkJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihwYXJhbXMt PnJlcXVlc3QsIDQpOwogCQlpZiAocmV0KQogCQkJZ290byBlcnJvcjsKQEAgLTEyNTYsMTkgKzEy NzksMTkgQEAgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNi dWZmZXJfcGFyYW1zICpwYXJhbXMsCiAJCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsK IAkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0xPQURfUkVHSVNURVJfSU1NKDEpKTsKIAkJaW50 ZWxfcmluZ19lbWl0KHJpbmcsIElOU1RQTSk7Ci0JCWludGVsX3JpbmdfZW1pdChyaW5nLCBpbnN0 cF9tYXNrIDw8IDE2IHwgaW5zdHBfbW9kZSk7CisJCWludGVsX3JpbmdfZW1pdChyaW5nLCBwYXJh bXMtPmluc3RwX21hc2sgPDwgMTYgfCBwYXJhbXMtPmluc3RwX21vZGUpOwogCQlpbnRlbF9yaW5n X2FkdmFuY2UocmluZyk7CiAKLQkJZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlID0g aW5zdHBfbW9kZTsKKwkJZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlID0gcGFyYW1z LT5pbnN0cF9tb2RlOwogCX0KIAotCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19HRU43X1NP TF9SRVNFVCkgewotCQlyZXQgPSBpOTE1X3Jlc2V0X2dlbjdfc29sX29mZnNldHMoZGV2LCBwYXJh bXMtPnJlcXVlc3QpOworCWlmIChwYXJhbXMtPmFyZ3NfZmxhZ3MgJiBJOTE1X0VYRUNfR0VON19T T0xfUkVTRVQpIHsKKwkJcmV0ID0gaTkxNV9yZXNldF9nZW43X3NvbF9vZmZzZXRzKHBhcmFtcy0+ ZGV2LCBwYXJhbXMtPnJlcXVlc3QpOwogCQlpZiAocmV0KQogCQkJZ290byBlcnJvcjsKIAl9CiAK LQlleGVjX2xlbiAgID0gYXJncy0+YmF0Y2hfbGVuOworCWV4ZWNfbGVuICAgPSBwYXJhbXMtPmFy Z3NfYmF0Y2hfbGVuOwogCWV4ZWNfc3RhcnQgPSBwYXJhbXMtPmJhdGNoX29ial92bV9vZmZzZXQg KwogCQkgICAgIHBhcmFtcy0+YXJnc19iYXRjaF9zdGFydF9vZmZzZXQ7CiAKQEAgLTE2NDAsNiAr MTY2MywxMSBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCiAJcGFyYW1zLT5maWxlICAgICAgICAgICAgICAgICAgICA9IGZpbGU7CiAJ cGFyYW1zLT5yaW5nICAgICAgICAgICAgICAgICAgICA9IHJpbmc7CiAJcGFyYW1zLT5kaXNwYXRj aF9mbGFncyAgICAgICAgICA9IGRpc3BhdGNoX2ZsYWdzOworCXBhcmFtcy0+YXJnc19mbGFncyAg ICAgICAgICAgICAgPSBhcmdzLT5mbGFnczsKKwlwYXJhbXMtPmFyZ3NfYmF0Y2hfbGVuICAgICAg ICAgID0gYXJncy0+YmF0Y2hfbGVuOworCXBhcmFtcy0+YXJnc19udW1fY2xpcHJlY3RzICAgICAg PSBhcmdzLT5udW1fY2xpcHJlY3RzOworCXBhcmFtcy0+YXJnc19EUjEgICAgICAgICAgICAgICAg PSBhcmdzLT5EUjE7CisJcGFyYW1zLT5hcmdzX0RSNCAgICAgICAgICAgICAgICA9IGFyZ3MtPkRS NDsKIAlwYXJhbXMtPmJhdGNoX29iaiAgICAgICAgICAgICAgID0gYmF0Y2hfb2JqOwogCXBhcmFt cy0+Y3R4ICAgICAgICAgICAgICAgICAgICAgPSBjdHg7CiAKQEAgLTE2NTksMzcgKzE2ODcsNTAg QEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAogCX0KIAogCXJldCA9IGRldl9wcml2LT5ndC5leGVjYnVmX3N1Ym1pdChwYXJhbXMsIGFy Z3MsICZlYi0+dm1hcyk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfZmVuY2U7CisKKwkvKiB0aGUg cmVxdWVzdCBvd25zIHRoZSByZWYgbm93ICovCisJaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5j ZShjdHgpOwogCiAJaWYgKGZkX2ZlbmNlX2NvbXBsZXRlICE9IC0xKSB7Ci0JCWlmIChyZXQpIHsK LQkJCXN5bmNfZmVuY2VfcHV0KHN5bmNfZmVuY2UpOwotCQkJcHV0X3VudXNlZF9mZChmZF9mZW5j ZV9jb21wbGV0ZSk7Ci0JCX0gZWxzZSB7Ci0JCQkvKgotCQkJICogSW5zdGFsbCB0aGUgZmVuY2Ug aW50byB0aGUgcHJlLWFsbG9jYXRlZCBmaWxlCi0JCQkgKiBkZXNjcmlwdG9yIHRvIHRoZSBmZW5j ZSBvYmplY3Qgc28gdGhhdCB1c2VyIGxhbmQKLQkJCSAqIGNhbiB3YWl0IG9uIGl0Li4uCi0JCQkg Ki8KLQkJCWk5MTVfaW5zdGFsbF9zeW5jX2ZlbmNlX2ZkKHBhcmFtcy0+cmVxdWVzdCwKLQkJCQkJ CSAgIHN5bmNfZmVuY2UsIGZkX2ZlbmNlX2NvbXBsZXRlKTsKKwkJLyoKKwkJICogSW5zdGFsbCB0 aGUgZmVuY2UgaW50byB0aGUgcHJlLWFsbG9jYXRlZCBmaWxlCisJCSAqIGRlc2NyaXB0b3IgdG8g dGhlIGZlbmNlIG9iamVjdCBzbyB0aGF0IHVzZXIgbGFuZAorCQkgKiBjYW4gd2FpdCBvbiBpdC4u LgorCQkgKi8KKwkJaTkxNV9pbnN0YWxsX3N5bmNfZmVuY2VfZmQocGFyYW1zLT5yZXF1ZXN0LAor CQkJCQkgICBzeW5jX2ZlbmNlLCBmZF9mZW5jZV9jb21wbGV0ZSk7CiAKLQkJCS8qIFJldHVybiB0 aGUgZmVuY2UgdGhyb3VnaCB0aGUgcnN2ZDIgZmllbGQgKi8KLQkJCWFyZ3MtPnJzdmQyID0gKF9f dTY0KSBmZF9mZW5jZV9jb21wbGV0ZTsKLQkJfQorCQkvKiBSZXR1cm4gdGhlIGZlbmNlIHRocm91 Z2ggdGhlIHJzdmQyIGZpZWxkICovCisJCWFyZ3MtPnJzdmQyID0gKF9fdTY0KSBmZF9mZW5jZV9j b21wbGV0ZTsKIAl9CiAKLWVycl9iYXRjaF91bnBpbjoKIAkvKgotCSAqIEZJWE1FOiBXZSBjcnVj aWFsbHkgcmVseSB1cG9uIHRoZSBhY3RpdmUgdHJhY2tpbmcgZm9yIHRoZSAocHBndHQpCi0JICog YmF0Y2ggdm1hIGZvciBjb3JyZWN0bmVzcy4gRm9yIGxlc3MgdWdseSBhbmQgbGVzcyBmcmFnaWxp dHkgdGhpcwotCSAqIG5lZWRzIHRvIGJlIGFkanVzdGVkIHRvIGFsc28gdHJhY2sgdGhlIGdndHQg YmF0Y2ggdm1hIHByb3Blcmx5IGFzCi0JICogYWN0aXZlLgorCSAqIFRoZSBlYiBsaXN0IGlzIG5v IGxvbmdlciByZXF1aXJlZC4gVGhlIHNjaGVkdWxlciBoYXMgZXh0cmFjdGVkIGFsbAorCSAqIHRo ZSBpbmZvcm1hdGlvbiB0aGFuIG5lZWRzIHRvIHBlcnNpc3QuCisJICovCisJZWJfZGVzdHJveShl Yik7CisKKwkvKgorCSAqIERvbid0IGNsZWFuIHVwIGV2ZXJ5dGhpbmcgdGhhdCBpcyBub3cgc2F2 ZWQgYXdheSBpbiB0aGUgcXVldWUuCisJICogSnVzdCB1bmxvY2sgYW5kIHJldHVybiBpbW1lZGlh dGVseS4KIAkgKi8KKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKKworCXJldHVy biAwOworCitlcnJfZmVuY2U6CisJaWYgKGZkX2ZlbmNlX2NvbXBsZXRlICE9IC0xKSB7CisJCXN5 bmNfZmVuY2VfcHV0KHN5bmNfZmVuY2UpOworCQlwdXRfdW51c2VkX2ZkKGZkX2ZlbmNlX2NvbXBs ZXRlKTsKKwl9CisKK2Vycl9iYXRjaF91bnBpbjoKIAlpZiAoZGlzcGF0Y2hfZmxhZ3MgJiBJOTE1 X0RJU1BBVENIX1NFQ1VSRSkKLQkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oYmF0Y2hfb2Jq KTsKKwkJaTkxNV9nZW1fZXhlY2J1ZmZfcmVsZWFzZV9iYXRjaF9vYmooYmF0Y2hfb2JqKTsKIAog ZXJyOgotCS8qIHRoZSByZXF1ZXN0IG93bnMgdGhlIHJlZiBub3cgKi8KIAlpOTE1X2dlbV9jb250 ZXh0X3VucmVmZXJlbmNlKGN0eCk7CiAJZWJfZGVzdHJveShlYik7CiAKQEAgLTE3MDcsNiArMTc0 OCwxNyBAQCBwcmVfbXV0ZXhfZXJyOgogCXJldHVybiByZXQ7CiB9CiAKK3ZvaWQgaTkxNV9nZW1f ZXhlY2J1ZmZfcmVsZWFzZV9iYXRjaF9vYmooc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmJh dGNoX29iaikKK3sKKwkvKgorCSAqIEZJWE1FOiBXZSBjcnVjaWFsbHkgcmVseSB1cG9uIHRoZSBh Y3RpdmUgdHJhY2tpbmcgZm9yIHRoZSAocHBndHQpCisJICogYmF0Y2ggdm1hIGZvciBjb3JyZWN0 bmVzcy4gRm9yIGxlc3MgdWdseSBhbmQgbGVzcyBmcmFnaWxpdHkgdGhpcworCSAqIG5lZWRzIHRv IGJlIGFkanVzdGVkIHRvIGFsc28gdHJhY2sgdGhlIGdndHQgYmF0Y2ggdm1hIHByb3Blcmx5IGFz CisJICogYWN0aXZlLgorCSAqLworCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGJhdGNoX29i aik7Cit9CisKIC8qCiAgKiBMZWdhY3kgZXhlY2J1ZmZlciBqdXN0IGNyZWF0ZXMgYW4gZXhlYzIg bGlzdCBmcm9tIHRoZSBvcmlnaW5hbCBleGVjIG9iamVjdAogICogbGlzdCBhcnJheSBhbmQgcGFz c2VzIGl0IHRvIHRoZSByZWFsIGZ1bmN0aW9uLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRl eCA0YmYwZWU2Li44OGQ1N2I3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtODY5LDM1 ICs4NjksMzEgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4 ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCiAJc3RydWN0IGRybV9kZXZpY2UgICAgICAgKmRldiA9 IHBhcmFtcy0+ZGV2OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgICpyaW5nID0gcGFyYW1zLT5y aW5nOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Ci0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBwYXJhbXMtPmN0eC0+ZW5n aW5lW3JpbmctPmlkXS5yaW5nYnVmOwotCXU2NCBleGVjX3N0YXJ0OwotCWludCBpbnN0cF9tb2Rl OwotCXUzMiBpbnN0cF9tYXNrOwogCWludCByZXQ7CiAKLQlpbnN0cF9tb2RlID0gYXJncy0+Zmxh Z3MgJiBJOTE1X0VYRUNfQ09OU1RBTlRTX01BU0s7Ci0JaW5zdHBfbWFzayA9IEk5MTVfRVhFQ19D T05TVEFOVFNfTUFTSzsKLQlzd2l0Y2ggKGluc3RwX21vZGUpIHsKKwlwYXJhbXMtPmluc3RwX21v ZGUgPSBhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19DT05TVEFOVFNfTUFTSzsKKwlwYXJhbXMtPmlu c3RwX21hc2sgPSBJOTE1X0VYRUNfQ09OU1RBTlRTX01BU0s7CisJc3dpdGNoIChwYXJhbXMtPmlu c3RwX21vZGUpIHsKIAljYXNlIEk5MTVfRVhFQ19DT05TVEFOVFNfUkVMX0dFTkVSQUw6CiAJY2Fz ZSBJOTE1X0VYRUNfQ09OU1RBTlRTX0FCU09MVVRFOgogCWNhc2UgSTkxNV9FWEVDX0NPTlNUQU5U U19SRUxfU1VSRkFDRToKLQkJaWYgKGluc3RwX21vZGUgIT0gMCAmJiByaW5nICE9ICZkZXZfcHJp di0+cmluZ1tSQ1NdKSB7CisJCWlmIChwYXJhbXMtPmluc3RwX21vZGUgIT0gMCAmJiByaW5nICE9 ICZkZXZfcHJpdi0+cmluZ1tSQ1NdKSB7CiAJCQlEUk1fREVCVUcoIm5vbi0wIHJlbCBjb25zdGFu dHMgbW9kZSBvbiBub24tUkNTXG4iKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAKLQkJaWYg KGluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlKSB7Ci0JCQlp ZiAoaW5zdHBfbW9kZSA9PSBJOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFKSB7CisJCWlm IChwYXJhbXMtPmluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2Rl KSB7CisJCQlpZiAocGFyYW1zLT5pbnN0cF9tb2RlID09IEk5MTVfRVhFQ19DT05TVEFOVFNfUkVM X1NVUkZBQ0UpIHsKIAkJCQlEUk1fREVCVUcoInJlbCBzdXJmYWNlIGNvbnN0YW50cyBtb2RlIGlu dmFsaWQgb24gZ2VuNStcbiIpOwogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJfQogCiAJCQkvKiBU aGUgSFcgY2hhbmdlZCB0aGUgbWVhbmluZyBvbiB0aGlzIGJpdCBvbiBnZW42ICovCi0JCQlpbnN0 cF9tYXNrICY9IH5JOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFOworCQkJcGFyYW1zLT5p bnN0cF9tYXNrICY9IH5JOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9TVVJGQUNFOwogCQl9CiAJCWJy ZWFrOwogCWRlZmF1bHQ6Ci0JCURSTV9ERUJVRygiZXhlY2J1ZiB3aXRoIHVua25vd24gY29uc3Rh bnRzOiAlZFxuIiwgaW5zdHBfbW9kZSk7CisJCURSTV9ERUJVRygiZXhlY2J1ZiB3aXRoIHVua25v d24gY29uc3RhbnRzOiAlZFxuIiwgcGFyYW1zLT5pbnN0cF9tb2RlKTsKIAkJcmV0dXJuIC1FSU5W QUw7CiAJfQogCkBAIC05MTIsNyArOTA4LDM0IEBAIGludCBpbnRlbF9leGVjbGlzdHNfc3VibWlz c2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCiAJaTkxNV9nZW1f ZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZSh2bWFzLCBwYXJhbXMtPnJlcXVlc3QpOwogCi0JLyog VG8gYmUgc3BsaXQgaW50byB0d28gZnVuY3Rpb25zIGhlcmUuLi4gKi8KKwlyZXQgPSBkZXZfcHJp di0+Z3QuZXhlY2J1Zl9maW5hbChwYXJhbXMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisK KwkvKgorCSAqIEZyZWUgZXZlcnl0aGluZyB0aGF0IHdhcyBzdG9yZWQgaW4gdGhlIFFFIHN0cnVj dHVyZSAodW50aWwgdGhlCisJICogc2NoZWR1bGVyIGFycml2ZXMgYW5kIGRvZXMgaXQgaW5zdGVh ZCk6CisJICovCisJaWYgKHBhcmFtcy0+ZGlzcGF0Y2hfZmxhZ3MgJiBJOTE1X0RJU1BBVENIX1NF Q1VSRSkKKwkJaTkxNV9nZW1fZXhlY2J1ZmZfcmVsZWFzZV9iYXRjaF9vYmoocGFyYW1zLT5iYXRj aF9vYmopOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBUaGlzIGlzIHRoZSBtYWluIGZ1bmN0 aW9uIGZvciBhZGRpbmcgYSBiYXRjaCB0byB0aGUgcmluZy4KKyAqIEl0IGlzIGNhbGxlZCBmcm9t IHRoZSBzY2hlZHVsZXIsIHdpdGggdGhlIHN0cnVjdF9tdXRleCBhbHJlYWR5IGhlbGQuCisgKi8K K2ludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbl9maW5hbChzdHJ1Y3QgaTkxNV9leGVjYnVm ZmVyX3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHBhcmFtcy0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1ZiA9IHBhcmFtcy0+cmVxdWVzdC0+cmluZ2J1ZjsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nID0gcGFyYW1zLT5yaW5nOworCXU2NCBleGVjX3N0YXJ0OworCWludCByZXQ7CisK KwkvKiBUaGUgbXV0ZXggbXVzdCBiZSBhY3F1aXJlZCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0 aW9uICovCisJQlVHX09OKCFtdXRleF9pc19sb2NrZWQoJnBhcmFtcy0+ZGV2LT5zdHJ1Y3RfbXV0 ZXgpKTsKIAogCS8qCiAJICogVW5jb25kaXRpb25hbGx5IGludmFsaWRhdGUgZ3B1IGNhY2hlcyBh bmQgZW5zdXJlIHRoYXQgd2UgZG8gZmx1c2gKQEAgLTkyMyw3ICs5NDYsNyBAQCBpbnQgaW50ZWxf ZXhlY2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFt cywKIAkJcmV0dXJuIHJldDsKIAogCWlmIChyaW5nID09ICZkZXZfcHJpdi0+cmluZ1tSQ1NdICYm Ci0JICAgIGluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlKSB7 CisJICAgIHBhcmFtcy0+aW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRz X21vZGUpIHsKIAkJcmV0ID0gaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHBhcmFtcy0+cmVxdWVz dCwgNCk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwpAQCAtOTMxLDE0ICs5NTQsMTQgQEAg aW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFy YW1zICpwYXJhbXMsCiAJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX05PT1Ap OwogCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9MT0FEX1JFR0lTVEVSX0lN TSgxKSk7CiAJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIElOU1RQTSk7Ci0JCWlu dGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIGluc3RwX21hc2sgPDwgMTYgfCBpbnN0cF9t b2RlKTsKKwkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgcGFyYW1zLT5pbnN0cF9t YXNrIDw8IDE2IHwgcGFyYW1zLT5pbnN0cF9tb2RlKTsKIAkJaW50ZWxfbG9naWNhbF9yaW5nX2Fk dmFuY2UocmluZ2J1Zik7CiAKLQkJZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlID0g aW5zdHBfbW9kZTsKKwkJZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlID0gcGFyYW1z LT5pbnN0cF9tb2RlOwogCX0KIAogCWV4ZWNfc3RhcnQgPSBwYXJhbXMtPmJhdGNoX29ial92bV9v ZmZzZXQgKwotCQkgICAgIGFyZ3MtPmJhdGNoX3N0YXJ0X29mZnNldDsKKwkJICAgICBwYXJhbXMt PmFyZ3NfYmF0Y2hfc3RhcnRfb2Zmc2V0OwogCiAJcmV0ID0gcmluZy0+ZW1pdF9iYl9zdGFydChw YXJhbXMtPnJlcXVlc3QsIGV4ZWNfc3RhcnQsIHBhcmFtcy0+ZGlzcGF0Y2hfZmxhZ3MpOwogCWlm IChyZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCmluZGV4IDRlNjBkNTQuLjhkOWJhZDcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCkBAIC05Myw2ICs5Myw3IEBAIHN0cnVjdCBpOTE1X2V4 ZWNidWZmZXJfcGFyYW1zOwogaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBp OTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCiAJCQkgICAgICAgc3RydWN0IGRybV9pOTE1 X2dlbV9leGVjYnVmZmVyMiAqYXJncywKIAkJCSAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFz KTsKK2ludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbl9maW5hbChzdHJ1Y3QgaTkxNV9leGVj YnVmZmVyX3BhcmFtcyAqcGFyYW1zKTsKIHUzMiBpbnRlbF9leGVjbGlzdHNfY3R4X2lkKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqKTsKIAogdm9pZCBpbnRlbF9scmNfaXJxX2hh bmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Ci0tIAoxLjkuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK