From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 6/7] drm/i915: Switch plane handling to atomic helpers (v5) Date: Tue, 9 Dec 2014 11:53:42 -0800 Message-ID: <1418154823-10819-7-git-send-email-matthew.d.roper@intel.com> References: <1418154823-10819-1-git-send-email-matthew.d.roper@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 5BE476E298 for ; Tue, 9 Dec 2014 11:54:15 -0800 (PST) In-Reply-To: <1418154823-10819-1-git-send-email-matthew.d.roper@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 Tm93IHRoYXQgd2UgaGF2ZSBob29rcyB0byBlbmFibGUgdGhlIGF0b21pYyBwbGFuZSBoZWxwZXJz LCB3ZSBjYW4gdXNlCnRoZSBwbGFuZSBoZWxwZXJzIGZvciBvdXIgLnVwZGF0ZV9wbGFuZSgpIGFu ZCAuZGlzYWJsZV9wbGFuZSgpCmVudHJ5cG9pbnRzLgoKTm90ZSB0aGF0IHdlIHN0aWxsIG5lZWQg dG8gbWFrZSBhIGZldyBzbWFsbCBiZWhhdmlvcmFsIGNoYW5nZXMgdG8gdGhlCmRyaXZlciBlbnRy eXBvaW50cyBoZXJlIGFzIHdlIG1ha2UgdGhlIHRyYW5zaXRpb24sIGR1ZSB0byBkaWZmZXJlbmNl cwpiZXR3ZWVuIGhvdyB0aGUgYXRvbWljIGhlbHBlcnMgc2V0IHRoaW5ncyB1cCBmb3IgdXMgdnMg aG93IG91ciBpbnRlcm5hbApmdW5jdGlvbnMgd2VyZSBzZXR0aW5nIHRoaW5ncyB1cC4KCnYyOiBG aXggY29tbWl0IG1lc3NhZ2UgdHlwbyAoQm9iKQoKdjM6IFJlYmFzZWQgb24gdG9wIG9mIEd1c3Rh dm8gUGFkb3ZhbidzIHBhdGNoZXMgdG8ga2lsbCBvZmYKICAgIGludGVsX2NydGNfY3Vyc29yX3Nl dF9vYmooKSBhbmQgaW50ZWxfcGlwZV9zZXRfYmFzZSgpLgoKdjQ6IFJlYmFzZSBhZ2FpbiBvbiBs YXRlc3QgZGlzcGxheSByZWZhY3RvciBzZXJpZXMuICBOb3cgdGhhdCBwcmV2aW91cwogICAgcGF0 Y2hlcyBoYXZlIHNtb290aGVkIHRoZSByb3VnaCBlZGdlcyBvZiB0aGUgZXhpc3RpbmcgZGlzcGxh eSBjb2RlLAogICAgdGhlIHRyYW5zaXRpb24gaGVyZSBpcyBtdWNoIGxlc3MgcGFpbmZ1bC4KCnY1 OiBQbGFuZSBoZWxwZXJzIHdpbGwgcmUtcHJlcGFyZSB0aGUgc2FtZSBmYiBmb3IgYSBwbGFuZS4g IERyb3AgdGhlCiAgICBXQVJOIG9uIHRoaXMgY29uZGl0aW9uLgoKVGVzdGNhc2U6IGlndC9rbXNf cGxhbmUKVGVzdGNhc2U6IGlndC9rbXNfdW5pdmVyc2FsX3BsYW5lClRlc3RjYXNlOiBpZ3Qva21z X2N1cnNvcl9jcmMKU2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAyMjIg KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oICAgICB8ICAgMiAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYyAgfCAgMzggKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDk4IGluc2VydGlvbnMoKyksIDE2 NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggZWE0 NzkyMy4uMmY4MDIzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTE2 NzgsNyArMTE2NzgsNyBAQCBpbnRlbF9wcmVwYXJlX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAogCXVuc2lnbmVkIGZyb250YnVmZmVyX2JpdHMgPSAwOwogCWludCByZXQgPSAwOwog Ci0JaWYgKFdBUk5fT04oZmIgPT0gcGxhbmUtPmZiIHx8ICFvYmopKQorCWlmICghb2JqKQogCQly ZXR1cm4gMDsKIAogCXN3aXRjaCAocGxhbmUtPnR5cGUpIHsKQEAgLTExNzQ1LDcgKzExNzQ1LDcg QEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YyA9IHN0YXRlLT5iYXNlLmNydGM7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwogCXN0 cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CiAJ c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+YmFzZS5mYjsKIAlzdHJ1Y3QgZHJt X3JlY3QgKmRlc3QgPSAmc3RhdGUtPmRzdDsKQEAgLTExNzUzLDYgKzExNzUzLDkgQEAgaW50ZWxf Y2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAljb25zdCBzdHJ1 Y3QgZHJtX3JlY3QgKmNsaXAgPSAmc3RhdGUtPmNsaXA7CiAJaW50IHJldDsKIAorCWNydGMgPSBj cnRjID8gY3J0YyA6IHBsYW5lLT5jcnRjOworCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNy dGMpOworCiAJcmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9jaGVja191cGRhdGUocGxhbmUsIGNydGMs IGZiLAogCQkJCQkgICAgc3JjLCBkZXN0LCBjbGlwLAogCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBF Ul9OT19TQ0FMSU5HLApAQCAtMTE4MTIsMjMgKzExODE1LDI2IEBAIGludGVsX2NvbW1pdF9wcmlt YXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gc3RhdGUtPmJhc2UuZmI7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5l LT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7CiAJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7CiAJc3RydWN0IGludGVsX3BsYW5lICpp bnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKIAlzdHJ1Y3QgZHJtX3JlY3QgKnNy YyA9ICZzdGF0ZS0+c3JjOwogCisJY3J0YyA9IGNydGMgPyBjcnRjIDogcGxhbmUtPmNydGM7CisJ aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CisKIAlwbGFuZS0+ZmIgPSBmYjsKIAlj cnRjLT54ID0gc3JjLT54MSA+PiAxNjsKIAljcnRjLT55ID0gc3JjLT55MSA+PiAxNjsKIAotCWlu dGVsX3BsYW5lLT5jcnRjX3ggPSBzdGF0ZS0+b3JpZ19kc3QueDE7Ci0JaW50ZWxfcGxhbmUtPmNy dGNfeSA9IHN0YXRlLT5vcmlnX2RzdC55MTsKLQlpbnRlbF9wbGFuZS0+Y3J0Y193ID0gZHJtX3Jl Y3Rfd2lkdGgoJnN0YXRlLT5vcmlnX2RzdCk7Ci0JaW50ZWxfcGxhbmUtPmNydGNfaCA9IGRybV9y ZWN0X2hlaWdodCgmc3RhdGUtPm9yaWdfZHN0KTsKLQlpbnRlbF9wbGFuZS0+c3JjX3ggPSBzdGF0 ZS0+b3JpZ19zcmMueDE7Ci0JaW50ZWxfcGxhbmUtPnNyY195ID0gc3RhdGUtPm9yaWdfc3JjLnkx OwotCWludGVsX3BsYW5lLT5zcmNfdyA9IGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+b3JpZ19zcmMp OwotCWludGVsX3BsYW5lLT5zcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmc3RhdGUtPm9yaWdfc3Jj KTsKKwlpbnRlbF9wbGFuZS0+Y3J0Y194ID0gc3RhdGUtPmJhc2UuY3J0Y194OworCWludGVsX3Bs YW5lLT5jcnRjX3kgPSBzdGF0ZS0+YmFzZS5jcnRjX3k7CisJaW50ZWxfcGxhbmUtPmNydGNfdyA9 IHN0YXRlLT5iYXNlLmNydGNfdzsKKwlpbnRlbF9wbGFuZS0+Y3J0Y19oID0gc3RhdGUtPmJhc2Uu Y3J0Y19oOworCWludGVsX3BsYW5lLT5zcmNfeCA9IHN0YXRlLT5iYXNlLnNyY194OworCWludGVs X3BsYW5lLT5zcmNfeSA9IHN0YXRlLT5iYXNlLnNyY195OworCWludGVsX3BsYW5lLT5zcmNfdyA9 IHN0YXRlLT5iYXNlLnNyY193OworCWludGVsX3BsYW5lLT5zcmNfaCA9IHN0YXRlLT5iYXNlLnNy Y19oOwogCWludGVsX3BsYW5lLT5vYmogPSBvYmo7CiAKIAlpZiAoaW50ZWxfY3J0Yy0+YWN0aXZl KSB7CkBAIC0xMTg1Nyw2ICsxMTg2MywzMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRj X2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Yyk7CisJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKKwlzdHJ1Y3Qg ZHJtX3BsYW5lICpwOworCXVuc2lnbmVkIGZiX2JpdHMgPSAwOworCisJLyogVHJhY2sgZmIncyBm b3IgYW55IHBsYW5lcyBiZWluZyBkaXNhYmxlZCAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkocCwg JmRldi0+bW9kZV9jb25maWcucGxhbmVfbGlzdCwgaGVhZCkgeworCQlpbnRlbF9wbGFuZSA9IHRv X2ludGVsX3BsYW5lKHApOworCisJCWlmIChpbnRlbF9jcnRjLT5hdG9taWMudHJhY2tfZmJzICYg KDEgPDwgZHJtX3BsYW5lX2luZGV4KHApKSkgeworCQkJc3dpdGNoIChwLT50eXBlKSB7CisJCQlj YXNlIERSTV9QTEFORV9UWVBFX1BSSU1BUlk6CisJCQkJZmJfYml0cyA9IElOVEVMX0ZST05UQlVG RkVSX1BSSU1BUlkoaW50ZWxfcGxhbmUtPnBpcGUpOworCQkJCWJyZWFrOworCQkJY2FzZSBEUk1f UExBTkVfVFlQRV9DVVJTT1I6CisJCQkJZmJfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX0NVUlNP UihpbnRlbF9wbGFuZS0+cGlwZSk7CisJCQkJYnJlYWs7CisJCQljYXNlIERSTV9QTEFORV9UWVBF X09WRVJMQVk6CisJCQkJZmJfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1NQUklURShpbnRlbF9w bGFuZS0+cGlwZSk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJCW11dGV4X2xvY2soJmRldi0+c3Ry dWN0X211dGV4KTsKKwkJCWk5MTVfZ2VtX3RyYWNrX2ZiKGludGVsX2ZiX29iaihwLT5mYiksIE5V TEwsIGZiX2JpdHMpOworCQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJCX0K Kwl9CiAKIAlpZiAoaW50ZWxfY3J0Yy0+YXRvbWljLmRpc2FibGVfZmJjKQogCQlpbnRlbF9kaXNh YmxlX2ZiYyhkZXYpOwpAQCAtMTE5MDAsMTExICsxMTkzMiw2IEBAIHN0YXRpYyB2b2lkIGludGVs X2ZpbmlzaF9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJbWVtc2V0KCZpbnRl bF9jcnRjLT5hdG9taWMsIDAsIHNpemVvZihpbnRlbF9jcnRjLT5hdG9taWMpKTsKIH0KIAotaW50 Ci1pbnRlbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKLQkJICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBjcnRjX3gs IGludCBjcnRjX3ksCi0JCSAgIHVuc2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRj X2gsCi0JCSAgIHVpbnQzMl90IHNyY194LCB1aW50MzJfdCBzcmNfeSwKLQkJICAgdWludDMyX3Qg c3JjX3csIHVpbnQzMl90IHNyY19oKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFu ZS0+ZGV2OwotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9sZF9mYiA9IHBsYW5lLT5mYjsKLQlz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgc3RhdGUgPSB7eyAwIH19OwotCXN0cnVjdCBpbnRlbF9w bGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Ci0Jc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwotCWludCByZXQ7Ci0KLQlz dGF0ZS5iYXNlLmNydGMgPSBjcnRjID8gY3J0YyA6IHBsYW5lLT5jcnRjOwotCXN0YXRlLmJhc2Uu ZmIgPSBmYjsKLQotCS8qIHNhbXBsZSBjb29yZGluYXRlcyBpbiAxNi4xNiBmaXhlZCBwb2ludCAq LwotCXN0YXRlLnNyYy54MSA9IHNyY194OwotCXN0YXRlLnNyYy54MiA9IHNyY194ICsgc3JjX3c7 Ci0Jc3RhdGUuc3JjLnkxID0gc3JjX3k7Ci0Jc3RhdGUuc3JjLnkyID0gc3JjX3kgKyBzcmNfaDsK LQotCS8qIGludGVnZXIgcGl4ZWxzICovCi0Jc3RhdGUuZHN0LngxID0gY3J0Y194OwotCXN0YXRl LmRzdC54MiA9IGNydGNfeCArIGNydGNfdzsKLQlzdGF0ZS5kc3QueTEgPSBjcnRjX3k7Ci0Jc3Rh dGUuZHN0LnkyID0gY3J0Y195ICsgY3J0Y19oOwotCi0Jc3RhdGUuY2xpcC54MSA9IDA7Ci0Jc3Rh dGUuY2xpcC55MSA9IDA7Ci0Jc3RhdGUuY2xpcC54MiA9IGludGVsX2NydGMtPmFjdGl2ZSA/IGlu dGVsX2NydGMtPmNvbmZpZy5waXBlX3NyY193IDogMDsKLQlzdGF0ZS5jbGlwLnkyID0gaW50ZWxf Y3J0Yy0+YWN0aXZlID8gaW50ZWxfY3J0Yy0+Y29uZmlnLnBpcGVfc3JjX2ggOiAwOwotCi0Jc3Rh dGUub3JpZ19zcmMgPSBzdGF0ZS5zcmM7Ci0Jc3RhdGUub3JpZ19kc3QgPSBzdGF0ZS5kc3Q7Ci0K LQlyZXQgPSBpbnRlbF9wbGFuZS0+Y2hlY2tfcGxhbmUocGxhbmUsICZzdGF0ZSk7Ci0JaWYgKHJl dCkKLQkJcmV0dXJuIHJldDsKLQotCWlmIChmYiAhPSBvbGRfZmIgJiYgZmIpIHsKLQkJcmV0ID0g aW50ZWxfcHJlcGFyZV9wbGFuZV9mYihwbGFuZSwgZmIpOwotCQlpZiAocmV0KQotCQkJcmV0dXJu IHJldDsKLQl9Ci0KLQlpZiAoIXN0YXRlLmJhc2UuZmIpIHsKLQkJdW5zaWduZWQgZmJfYml0cyA9 IDA7Ci0KLQkJc3dpdGNoIChwbGFuZS0+dHlwZSkgewotCQljYXNlIERSTV9QTEFORV9UWVBFX1BS SU1BUlk6Ci0JCQlmYl9iaXRzID0gSU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWShpbnRlbF9wbGFu ZS0+cGlwZSk7Ci0JCQlicmVhazsKLQkJY2FzZSBEUk1fUExBTkVfVFlQRV9DVVJTT1I6Ci0JCQlm Yl9iaXRzID0gSU5URUxfRlJPTlRCVUZGRVJfQ1VSU09SKGludGVsX3BsYW5lLT5waXBlKTsKLQkJ CWJyZWFrOwotCQljYXNlIERSTV9QTEFORV9UWVBFX09WRVJMQVk6Ci0JCQlmYl9iaXRzID0gSU5U RUxfRlJPTlRCVUZGRVJfU1BSSVRFKGludGVsX3BsYW5lLT5waXBlKTsKLQkJCWJyZWFrOwotCQl9 Ci0KLQkJLyoKLQkJICogJ3ByZXBhcmUnIGlzIG5ldmVyIGNhbGxlZCB3aGVuIHBsYW5lIGlzIGJl aW5nIGRpc2FibGVkLCBzbwotCQkgKiB3ZSBuZWVkIHRvIGhhbmRsZSBmcm9udGJ1ZmZlciB0cmFj a2luZyBoZXJlCi0JCSAqLwotCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JCWk5 MTVfZ2VtX3RyYWNrX2ZiKGludGVsX2ZiX29iaihwbGFuZS0+ZmIpLCBOVUxMLCBmYl9iaXRzKTsK LQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JfQotCi0JaW50ZWxfYmVnaW5f Y3J0Y19jb21taXQoY3J0Yyk7Ci0JaW50ZWxfcGxhbmUtPmNvbW1pdF9wbGFuZShwbGFuZSwgJnN0 YXRlKTsKLQlpbnRlbF9maW5pc2hfY3J0Y19jb21taXQoY3J0Yyk7Ci0KLQlpZiAoZmIgIT0gb2xk X2ZiICYmIG9sZF9mYikgewotCQlpZiAoaW50ZWxfY3J0Yy0+YWN0aXZlKQotCQkJaW50ZWxfd2Fp dF9mb3JfdmJsYW5rKGRldiwgaW50ZWxfY3J0Yy0+cGlwZSk7Ci0JCWludGVsX2NsZWFudXBfcGxh bmVfZmIocGxhbmUsIG9sZF9mYik7Ci0JfQotCi0JcGxhbmUtPmZiID0gZmI7Ci0KLQlyZXR1cm4g MDsKLX0KLQotLyoqCi0gKiBpbnRlbF9kaXNhYmxlX3BsYW5lIC0gZGlzYWJsZSBhIHBsYW5lCi0g KiBAcGxhbmU6IHBsYW5lIHRvIGRpc2FibGUKLSAqCi0gKiBHZW5lcmFsIGRpc2FibGUgaGFuZGxl ciBmb3IgYWxsIHBsYW5lIHR5cGVzLgotICovCi1pbnQKLWludGVsX2Rpc2FibGVfcGxhbmUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUpCi17Ci0JaWYgKCFwbGFuZS0+ZmIpCi0JCXJldHVybiAwOwot Ci0JaWYgKFdBUk5fT04oIXBsYW5lLT5jcnRjKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlyZXR1 cm4gcGxhbmUtPmZ1bmNzLT51cGRhdGVfcGxhbmUocGxhbmUsIHBsYW5lLT5jcnRjLCBOVUxMLAot CQkJCQkgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApOwotfQotCiAvKiBDb21tb24gZGVzdHJ1Y3Rp b24gZnVuY3Rpb24gZm9yIGJvdGggcHJpbWFyeSBhbmQgY3Vyc29yIHBsYW5lcyAqLwogdm9pZCBp bnRlbF9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogewpAQCAtMTIwMTUs OCArMTE5NDIsOCBAQCB2b2lkIGludGVsX3BsYW5lX2Rlc3Ryb3koc3RydWN0IGRybV9wbGFuZSAq cGxhbmUpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVsX3By aW1hcnlfcGxhbmVfZnVuY3MgPSB7Ci0JLnVwZGF0ZV9wbGFuZSA9IGludGVsX3VwZGF0ZV9wbGFu ZSwKLQkuZGlzYWJsZV9wbGFuZSA9IGludGVsX2Rpc2FibGVfcGxhbmUsCisJLnVwZGF0ZV9wbGFu ZSA9IGRybV9wbGFuZV9oZWxwZXJfdXBkYXRlLAorCS5kaXNhYmxlX3BsYW5lID0gZHJtX3BsYW5l X2hlbHBlcl9kaXNhYmxlLAogCS5kZXN0cm95ID0gaW50ZWxfcGxhbmVfZGVzdHJveSwKIAkuc2V0 X3Byb3BlcnR5ID0gaW50ZWxfcGxhbmVfc2V0X3Byb3BlcnR5LAogCS5hdG9taWNfZHVwbGljYXRl X3N0YXRlID0gaW50ZWxfcGxhbmVfZHVwbGljYXRlX3N0YXRlLApAQCAtMTIwODMsMTcgKzEyMDEw LDE5IEBAIGludGVsX2NoZWNrX2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAkJCSBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNydGM7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNy dGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKIAlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOwogCXN0cnVjdCBkcm1fcmVjdCAq ZGVzdCA9ICZzdGF0ZS0+ZHN0OwogCXN0cnVjdCBkcm1fcmVjdCAqc3JjID0gJnN0YXRlLT5zcmM7 CiAJY29uc3Qgc3RydWN0IGRybV9yZWN0ICpjbGlwID0gJnN0YXRlLT5jbGlwOwogCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwotCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQlpbnQgY3J0Y193LCBj cnRjX2g7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7CiAJdW5zaWduZWQgc3RyaWRl OwogCWludCByZXQ7CiAKKwljcnRjID0gY3J0YyA/IGNydGMgOiBwbGFuZS0+Y3J0YzsKKwlpbnRl bF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKwogCXJldCA9IGRybV9wbGFuZV9oZWxwZXJf Y2hlY2tfdXBkYXRlKHBsYW5lLCBjcnRjLCBmYiwKIAkJCQkJICAgIHNyYywgZGVzdCwgY2xpcCwK IAkJCQkJICAgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKQEAgLTEyMTA4LDE1ICsxMjAz NywxNCBAQCBpbnRlbF9jaGVja19jdXJzb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs CiAJCWdvdG8gZmluaXNoOwogCiAJLyogQ2hlY2sgZm9yIHdoaWNoIGN1cnNvciB0eXBlcyB3ZSBz dXBwb3J0ICovCi0JY3J0Y193ID0gZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5vcmlnX2RzdCk7Ci0J Y3J0Y19oID0gZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+b3JpZ19kc3QpOwotCWlmICghY3Vyc29y X3NpemVfb2soZGV2LCBjcnRjX3csIGNydGNfaCkpIHsKLQkJRFJNX0RFQlVHKCJDdXJzb3IgZGlt ZW5zaW9uIG5vdCBzdXBwb3J0ZWRcbiIpOworCWlmICghY3Vyc29yX3NpemVfb2soZGV2LCBzdGF0 ZS0+YmFzZS5jcnRjX3csIHN0YXRlLT5iYXNlLmNydGNfaCkpIHsKKwkJRFJNX0RFQlVHKCJDdXJz b3IgZGltZW5zaW9uICVkeCVkIG5vdCBzdXBwb3J0ZWRcbiIsCisJCQkgIHN0YXRlLT5iYXNlLmNy dGNfdywgc3RhdGUtPmJhc2UuY3J0Y19oKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0Jc3Ry aWRlID0gcm91bmR1cF9wb3dfb2ZfdHdvKGNydGNfdykgKiA0OwotCWlmIChvYmotPmJhc2Uuc2l6 ZSA8IHN0cmlkZSAqIGNydGNfaCkgeworCXN0cmlkZSA9IHJvdW5kdXBfcG93X29mX3R3byhzdGF0 ZS0+YmFzZS5jcnRjX3cpICogNDsKKwlpZiAob2JqLT5iYXNlLnNpemUgPCBzdHJpZGUgKiBzdGF0 ZS0+YmFzZS5jcnRjX2gpIHsKIAkJRFJNX0RFQlVHX0tNUygiYnVmZmVyIGlzIHRvbyBzbWFsbFxu Iik7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KQEAgLTEyMTM0LDggKzEyMDYyLDcgQEAgaW50ZWxf Y2hlY2tfY3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCiBmaW5pc2g6CiAJ aWYgKGludGVsX2NydGMtPmFjdGl2ZSkgewotCQlpZiAoaW50ZWxfY3J0Yy0+Y3Vyc29yX3dpZHRo ICE9Ci0JCSAgICBkcm1fcmVjdF93aWR0aCgmc3RhdGUtPm9yaWdfZHN0KSkKKwkJaWYgKGludGVs X2NydGMtPmN1cnNvcl93aWR0aCAhPSBzdGF0ZS0+YmFzZS5jcnRjX3cpCiAJCQlpbnRlbF9jcnRj LT5hdG9taWMudXBkYXRlX3dtID0gdHJ1ZTsKIAogCQlpbnRlbF9jcnRjLT5hdG9taWMuZmJfYml0 cyB8PQpAQCAtMTIxNTAsMjQgKzEyMDc3LDI3IEBAIGludGVsX2NvbW1pdF9jdXJzb3JfcGxhbmUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAq c3RhdGUpCiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmJhc2UuY3J0YzsKLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwotCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gcGxhbmUtPmRldjsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKIAlzdHJ1Y3Qg aW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwogCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooc3RhdGUtPmJhc2UuZmIp OwogCXVpbnQzMl90IGFkZHI7CiAKKwljcnRjID0gY3J0YyA/IGNydGMgOiBwbGFuZS0+Y3J0YzsK KwlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKwogCXBsYW5lLT5mYiA9IHN0YXRl LT5iYXNlLmZiOwotCWNydGMtPmN1cnNvcl94ID0gc3RhdGUtPm9yaWdfZHN0LngxOwotCWNydGMt PmN1cnNvcl95ID0gc3RhdGUtPm9yaWdfZHN0LnkxOwotCi0JaW50ZWxfcGxhbmUtPmNydGNfeCA9 IHN0YXRlLT5vcmlnX2RzdC54MTsKLQlpbnRlbF9wbGFuZS0+Y3J0Y195ID0gc3RhdGUtPm9yaWdf ZHN0LnkxOwotCWludGVsX3BsYW5lLT5jcnRjX3cgPSBkcm1fcmVjdF93aWR0aCgmc3RhdGUtPm9y aWdfZHN0KTsKLQlpbnRlbF9wbGFuZS0+Y3J0Y19oID0gZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+ b3JpZ19kc3QpOwotCWludGVsX3BsYW5lLT5zcmNfeCA9IHN0YXRlLT5vcmlnX3NyYy54MTsKLQlp bnRlbF9wbGFuZS0+c3JjX3kgPSBzdGF0ZS0+b3JpZ19zcmMueTE7Ci0JaW50ZWxfcGxhbmUtPnNy Y193ID0gZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5vcmlnX3NyYyk7Ci0JaW50ZWxfcGxhbmUtPnNy Y19oID0gZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+b3JpZ19zcmMpOworCWNydGMtPmN1cnNvcl94 ID0gc3RhdGUtPmJhc2UuY3J0Y194OworCWNydGMtPmN1cnNvcl95ID0gc3RhdGUtPmJhc2UuY3J0 Y195OworCisJaW50ZWxfcGxhbmUtPmNydGNfeCA9IHN0YXRlLT5iYXNlLmNydGNfeDsKKwlpbnRl bF9wbGFuZS0+Y3J0Y195ID0gc3RhdGUtPmJhc2UuY3J0Y195OworCWludGVsX3BsYW5lLT5jcnRj X3cgPSBzdGF0ZS0+YmFzZS5jcnRjX3c7CisJaW50ZWxfcGxhbmUtPmNydGNfaCA9IHN0YXRlLT5i YXNlLmNydGNfaDsKKwlpbnRlbF9wbGFuZS0+c3JjX3ggPSBzdGF0ZS0+YmFzZS5zcmNfeDsKKwlp bnRlbF9wbGFuZS0+c3JjX3kgPSBzdGF0ZS0+YmFzZS5zcmNfeTsKKwlpbnRlbF9wbGFuZS0+c3Jj X3cgPSBzdGF0ZS0+YmFzZS5zcmNfdzsKKwlpbnRlbF9wbGFuZS0+c3JjX2ggPSBzdGF0ZS0+YmFz ZS5zcmNfaDsKIAlpbnRlbF9wbGFuZS0+b2JqID0gb2JqOwogCiAJaWYgKGludGVsX2NydGMtPmN1 cnNvcl9ibyA9PSBvYmopCkBAIC0xMjE4MywxNiArMTIxMTMsMTYgQEAgaW50ZWxfY29tbWl0X2N1 cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlpbnRlbF9jcnRjLT5jdXJzb3Jf YWRkciA9IGFkZHI7CiAJaW50ZWxfY3J0Yy0+Y3Vyc29yX2JvID0gb2JqOwogdXBkYXRlOgotCWlu dGVsX2NydGMtPmN1cnNvcl93aWR0aCA9IGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+b3JpZ19kc3Qp OwotCWludGVsX2NydGMtPmN1cnNvcl9oZWlnaHQgPSBkcm1fcmVjdF9oZWlnaHQoJnN0YXRlLT5v cmlnX2RzdCk7CisJaW50ZWxfY3J0Yy0+Y3Vyc29yX3dpZHRoID0gc3RhdGUtPmJhc2UuY3J0Y193 OworCWludGVsX2NydGMtPmN1cnNvcl9oZWlnaHQgPSBzdGF0ZS0+YmFzZS5jcnRjX2g7CiAKIAlp ZiAoaW50ZWxfY3J0Yy0+YWN0aXZlKQogCQlpbnRlbF9jcnRjX3VwZGF0ZV9jdXJzb3IoY3J0Yywg c3RhdGUtPnZpc2libGUpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5j cyBpbnRlbF9jdXJzb3JfcGxhbmVfZnVuY3MgPSB7Ci0JLnVwZGF0ZV9wbGFuZSA9IGludGVsX3Vw ZGF0ZV9wbGFuZSwKLQkuZGlzYWJsZV9wbGFuZSA9IGludGVsX2Rpc2FibGVfcGxhbmUsCisJLnVw ZGF0ZV9wbGFuZSA9IGRybV9wbGFuZV9oZWxwZXJfdXBkYXRlLAorCS5kaXNhYmxlX3BsYW5lID0g ZHJtX3BsYW5lX2hlbHBlcl9kaXNhYmxlLAogCS5kZXN0cm95ID0gaW50ZWxfcGxhbmVfZGVzdHJv eSwKIAkuc2V0X3Byb3BlcnR5ID0gaW50ZWxfcGxhbmVfc2V0X3Byb3BlcnR5LAogCS5hdG9taWNf ZHVwbGljYXRlX3N0YXRlID0gaW50ZWxfcGxhbmVfZHVwbGljYXRlX3N0YXRlLApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAppbmRleCBhYmI4MGUxLi5kOGE2ZDZjIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaApAQCAtMjQ4LDggKzI0OCw2IEBAIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7CiAJ c3RydWN0IGRybV9yZWN0IHNyYzsKIAlzdHJ1Y3QgZHJtX3JlY3QgZHN0OwogCXN0cnVjdCBkcm1f cmVjdCBjbGlwOwotCXN0cnVjdCBkcm1fcmVjdCBvcmlnX3NyYzsKLQlzdHJ1Y3QgZHJtX3JlY3Qg b3JpZ19kc3Q7CiAJYm9vbCB2aXNpYmxlOwogCiAJLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMKaW5kZXggOTQ2ZmYxMC4uN2I3YWNiMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc3ByaXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMKQEAgLTEwNjQsMTIgKzEwNjQsMTMgQEAgaW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXVpbnQzMl90IHNyY194LCBzcmNfeSwgc3JjX3csIHNy Y19oOwogCXN0cnVjdCBkcm1fcmVjdCAqc3JjID0gJnN0YXRlLT5zcmM7CiAJc3RydWN0IGRybV9y ZWN0ICpkc3QgPSAmc3RhdGUtPmRzdDsKLQlzdHJ1Y3QgZHJtX3JlY3QgKm9yaWdfc3JjID0gJnN0 YXRlLT5vcmlnX3NyYzsKIAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAgPSAmc3RhdGUtPmNs aXA7CiAJaW50IGhzY2FsZSwgdnNjYWxlOwogCWludCBtYXhfc2NhbGUsIG1pbl9zY2FsZTsKIAlp bnQgcGl4ZWxfc2l6ZTsKIAorCWludGVsX2NydGMgPSBpbnRlbF9jcnRjID8gaW50ZWxfY3J0YyA6 IHRvX2ludGVsX2NydGMocGxhbmUtPmNydGMpOworCiAJaWYgKCFmYikgewogCQlzdGF0ZS0+dmlz aWJsZSA9IGZhbHNlOwogCQlnb3RvIGZpbmlzaDsKQEAgLTExNTAsMTAgKzExNTEsMTAgQEAgaW50 ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCSAgICBp bnRlbF9wbGFuZS0+cm90YXRpb24pOwogCiAJCS8qIHNhbml0eSBjaGVjayB0byBtYWtlIHN1cmUg dGhlIHNyYyB2aWV3cG9ydCB3YXNuJ3QgZW5sYXJnZWQgKi8KLQkJV0FSTl9PTihzcmMtPngxIDwg KGludCkgb3JpZ19zcmMtPngxIHx8Ci0JCQlzcmMtPnkxIDwgKGludCkgb3JpZ19zcmMtPnkxIHx8 Ci0JCQlzcmMtPngyID4gKGludCkgb3JpZ19zcmMtPngyIHx8Ci0JCQlzcmMtPnkyID4gKGludCkg b3JpZ19zcmMtPnkyKTsKKwkJV0FSTl9PTihzcmMtPngxIDwgKGludCkgc3RhdGUtPmJhc2Uuc3Jj X3ggfHwKKwkJCXNyYy0+eTEgPCAoaW50KSBzdGF0ZS0+YmFzZS5zcmNfeSB8fAorCQkJc3JjLT54 MiA+IChpbnQpIHN0YXRlLT5iYXNlLnNyY194ICsgc3RhdGUtPmJhc2Uuc3JjX3cgfHwKKwkJCXNy Yy0+eTIgPiAoaW50KSBzdGF0ZS0+YmFzZS5zcmNfeSArIHN0YXRlLT5iYXNlLnNyY19oKTsKIAog CQkvKgogCQkgKiBIYXJkd2FyZSBkb2Vzbid0IGhhbmRsZSBzdWJwaXhlbCBjb29yZGluYXRlcy4K QEAgLTEyNTAsNyArMTI1MSw3IEBAIGludGVsX2NvbW1pdF9zcHJpdGVfcGxhbmUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCiAJCQkgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCiB7 CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmJhc2UuY3J0YzsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGM7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRv X2ludGVsX3BsYW5lKHBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRl LT5iYXNlLmZiOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9v YmooZmIpOwpAQCAtMTI1OCwxNCArMTI1OSwxOSBAQCBpbnRlbF9jb21taXRfc3ByaXRlX3BsYW5l KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXVuc2lnbmVkIGludCBjcnRjX3csIGNydGNfaDsK IAl1aW50MzJfdCBzcmNfeCwgc3JjX3ksIHNyY193LCBzcmNfaDsKIAotCWludGVsX3BsYW5lLT5j cnRjX3ggPSBzdGF0ZS0+b3JpZ19kc3QueDE7Ci0JaW50ZWxfcGxhbmUtPmNydGNfeSA9IHN0YXRl LT5vcmlnX2RzdC55MTsKLQlpbnRlbF9wbGFuZS0+Y3J0Y193ID0gZHJtX3JlY3Rfd2lkdGgoJnN0 YXRlLT5vcmlnX2RzdCk7Ci0JaW50ZWxfcGxhbmUtPmNydGNfaCA9IGRybV9yZWN0X2hlaWdodCgm c3RhdGUtPm9yaWdfZHN0KTsKLQlpbnRlbF9wbGFuZS0+c3JjX3ggPSBzdGF0ZS0+b3JpZ19zcmMu eDE7Ci0JaW50ZWxfcGxhbmUtPnNyY195ID0gc3RhdGUtPm9yaWdfc3JjLnkxOwotCWludGVsX3Bs YW5lLT5zcmNfdyA9IGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+b3JpZ19zcmMpOwotCWludGVsX3Bs YW5lLT5zcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmc3RhdGUtPm9yaWdfc3JjKTsKKwlpbnRlbF9w bGFuZS0+Y3J0Y194ID0gc3RhdGUtPmJhc2UuY3J0Y194OworCWludGVsX3BsYW5lLT5jcnRjX3kg PSBzdGF0ZS0+YmFzZS5jcnRjX3k7CisJaW50ZWxfcGxhbmUtPmNydGNfdyA9IHN0YXRlLT5iYXNl LmNydGNfdzsKKwlpbnRlbF9wbGFuZS0+Y3J0Y19oID0gc3RhdGUtPmJhc2UuY3J0Y19oOworCWlu dGVsX3BsYW5lLT5zcmNfeCA9IHN0YXRlLT5iYXNlLnNyY194OworCWludGVsX3BsYW5lLT5zcmNf eSA9IHN0YXRlLT5iYXNlLnNyY195OworCWludGVsX3BsYW5lLT5zcmNfdyA9IHN0YXRlLT5iYXNl LnNyY193OworCWludGVsX3BsYW5lLT5zcmNfaCA9IHN0YXRlLT5iYXNlLnNyY19oOworCisJY3J0 YyA9IGNydGMgPyBjcnRjIDogcGxhbmUtPmNydGM7CisJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Yyk7CisKKwlwbGFuZS0+ZmIgPSBzdGF0ZS0+YmFzZS5mYjsKIAlpbnRlbF9wbGFuZS0+ b2JqID0gb2JqOwogCiAJaWYgKGludGVsX2NydGMtPmFjdGl2ZSkgewpAQCAtMTM4OSw4ICsxMzk1 LDggQEAgaW50IGludGVsX3BsYW5lX3Jlc3RvcmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiB9 CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVsX3BsYW5lX2Z1bmNz ID0gewotCS51cGRhdGVfcGxhbmUgPSBpbnRlbF91cGRhdGVfcGxhbmUsCi0JLmRpc2FibGVfcGxh bmUgPSBpbnRlbF9kaXNhYmxlX3BsYW5lLAorCS51cGRhdGVfcGxhbmUgPSBkcm1fcGxhbmVfaGVs cGVyX3VwZGF0ZSwKKwkuZGlzYWJsZV9wbGFuZSA9IGRybV9wbGFuZV9oZWxwZXJfZGlzYWJsZSwK IAkuZGVzdHJveSA9IGludGVsX3BsYW5lX2Rlc3Ryb3ksCiAJLnNldF9wcm9wZXJ0eSA9IGludGVs X3BsYW5lX3NldF9wcm9wZXJ0eSwKIAkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGludGVsX3Bs YW5lX2R1cGxpY2F0ZV9zdGF0ZSwKLS0gCjEuOC41LjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==