From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [CI 10/17] drm/i915/gen9: Drop re-allocation of DDB at atomic commit (v2) Date: Thu, 12 May 2016 07:06:04 -0700 Message-ID: <1463061971-19638-11-git-send-email-matthew.d.roper@intel.com> References: <1463061971-19638-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 607D86E8C7 for ; Thu, 12 May 2016 14:07:15 +0000 (UTC) In-Reply-To: <1463061971-19638-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 Tm93IHRoYXQgd2UncmUgcHJvcGVybHkgcHJlLWFsbG9jYXRpbmcgdGhlIEREQiBkdXJpbmcgdGhl IGF0b21pYyBjaGVjawpwaGFzZSBhbmQgd2UgdHJ1c3QgdGhhdCB0aGUgYWxsb2NhdGlvbiBpcyBh cHByb3ByaWF0ZSwgbGV0J3MgYWN0dWFsbHkKdXNlIHRoZSBhbGxvY2F0aW9uIGNvbXB1dGVkIGFu ZCBub3QgZHVwbGljYXRlIHRoYXQgd29yayBkdXJpbmcgdGhlCmNvbW1pdCBwaGFzZS4KCnYyOgog LSBTaWduaWZpY2FudCByZWJhc2luZyBub3cgdGhhdCB3ZSBjYW4gdXNlIGNhY2hlZCBkYXRhIHJh dGVzIGFuZAogICBtaW5pbXVtIGJsb2NrIGFsbG9jYXRpb25zIHRvIGF2b2lkIGdyYWJiaW5nIGFk ZGl0aW9uYWwgcGxhbmUgc3RhdGVzLgoKU2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhl dy5kLnJvcGVyQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFy dGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIHwgIDE0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u YyAgICAgIHwgMjI0ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDE3MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggZWJiYjg4NWUuLjI5NDM1OGMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTEzNjAxLDYgKzEzNjAxLDcgQEAgc3RhdGljIGlu dCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJZHJtX2F0b21p Y19oZWxwZXJfc3dhcF9zdGF0ZShkZXYsIHN0YXRlKTsKIAlkZXZfcHJpdi0+d20uY29uZmlnID0g aW50ZWxfc3RhdGUtPndtX2NvbmZpZzsKIAlkZXZfcHJpdi0+d20uZGlzdHJ1c3RfYmlvc193bSA9 IGZhbHNlOworCWRldl9wcml2LT53bS5za2xfcmVzdWx0cy5kZGIgPSBpbnRlbF9zdGF0ZS0+ZGRi OwogCWludGVsX3NoYXJlZF9kcGxsX2NvbW1pdChzdGF0ZSk7CiAKIAlpZiAoaW50ZWxfc3RhdGUt Pm1vZGVzZXQpIHsKQEAgLTEzNzE4LDE5ICsxMzcxOSw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRv bWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlpbnRlbF9tb2Rlc2V0X3Zlcmlm eV9jcnRjKGNydGMsIG9sZF9jcnRjX3N0YXRlLCBjcnRjLT5zdGF0ZSk7CiAJfQogCi0JLyoKLQkg KiBUZW1wb3Jhcnkgc2FuaXR5IGNoZWNrOiBtYWtlIHN1cmUgb3VyIHByZS1jb21wdXRlZCBEREIg bWF0Y2hlcyB0aGUKLQkgKiBvbmUgd2UgYWN0dWFsbHkgd2luZCB1cCBwcm9ncmFtbWluZy4KLQkg KgotCSAqIE5vdCBhIGdyZWF0IHBsYWNlIHRvIHB1dCB0aGlzLCBidXQgdGhlIGVhc2llc3QgcGxh Y2Ugd2UgaGF2ZSBhY2Nlc3MKLQkgKiB0byBib3RoIHRoZSBwcmUtY29tcHV0ZWQgYW5kIGZpbmFs IEREQidzOyB3ZSdsbCBiZSByZW1vdmluZyB0aGlzCi0JICogY2hlY2sgaW4gdGhlIG5leHQgcGF0 Y2ggYW55d2F5LgotCSAqLwotCVdBUk4oSVNfR0VOOShkZXYpICYmCi0JICAgICBtZW1jbXAoJmlu dGVsX3N0YXRlLT5kZGIsICZkZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHMuZGRiLAotCQkgICAgc2l6 ZW9mKGludGVsX3N0YXRlLT5kZGIpKSwKLQkgICAgICJQcmUtY29tcHV0ZWQgRERCIGRvZXMgbm90 IG1hdGNoIGZpbmFsIEREQiFcbiIpOwotCiAJaWYgKGludGVsX3N0YXRlLT5tb2Rlc2V0KQogCQlp bnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX01PREVTRVQpOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCA3YjI1NDVjLi5jMTkyMDI4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKQEAgLTI4NDksNyArMjg0OSw2IEBAIHNrbF93bV9wbGFuZV9pZChjb25z dCBzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQogc3RhdGljIHZvaWQKIHNrbF9kZGJfZ2V0X3Bp cGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAotCQkJCSAgIHN0cnVjdCBpbnRlbF93 bV9jb25maWcgKmNvbmZpZywKIAkJCQkgICBzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAqYWxsb2MsIC8q IG91dCAqLwogCQkJCSAgIGludCAqbnVtX2FjdGl2ZSAvKiBvdXQgKi8pCiB7CkBAIC0yODU3LDI0 ICsyODU2LDIyIEBAIHNrbF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9 IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBkcm1fY3J0YyAqZm9yX2NydGMgPSBj c3RhdGUtPmJhc2UuY3J0YzsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAJdW5zaWduZWQgaW50 IHBpcGVfc2l6ZSwgZGRiX3NpemU7CiAJaW50IG50aF9hY3RpdmVfcGlwZTsKIAlpbnQgcGlwZSA9 IHRvX2ludGVsX2NydGMoZm9yX2NydGMpLT5waXBlOwogCi0JaWYgKGludGVsX3N0YXRlICYmIGlu dGVsX3N0YXRlLT5hY3RpdmVfcGlwZV9jaGFuZ2VzKQotCQkqbnVtX2FjdGl2ZSA9IGh3ZWlnaHQz MihpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzKTsKLQllbHNlIGlmIChpbnRlbF9zdGF0ZSkKLQkJ Km51bV9hY3RpdmUgPSBod2VpZ2h0MzIoZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcyk7Ci0JZWxzZQot CQkqbnVtX2FjdGl2ZSA9IGNvbmZpZy0+bnVtX3BpcGVzX2FjdGl2ZTsKLQotCWlmICghY3N0YXRl LT5iYXNlLmFjdGl2ZSkgeworCWlmIChXQVJOX09OKCFzdGF0ZSkgfHwgIWNzdGF0ZS0+YmFzZS5h Y3RpdmUpIHsKIAkJYWxsb2MtPnN0YXJ0ID0gMDsKIAkJYWxsb2MtPmVuZCA9IDA7CisJCSpudW1f YWN0aXZlID0gaHdlaWdodDMyKGRldl9wcml2LT5hY3RpdmVfY3J0Y3MpOwogCQlyZXR1cm47CiAJ fQogCisJaWYgKGludGVsX3N0YXRlLT5hY3RpdmVfcGlwZV9jaGFuZ2VzKQorCQkqbnVtX2FjdGl2 ZSA9IGh3ZWlnaHQzMihpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzKTsKKwllbHNlCisJCSpudW1f YWN0aXZlID0gaHdlaWdodDMyKGRldl9wcml2LT5hY3RpdmVfY3J0Y3MpOworCiAJaWYgKElTX0JS T1hUT04oZGV2KSkKIAkJZGRiX3NpemUgPSBCWFRfRERCX1NJWkU7CiAJZWxzZQpAQCAtMjg4Myw1 MCArMjg4MCwyMyBAQCBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJZGRiX3NpemUgLT0gNDsgLyogNCBibG9ja3MgZm9yIGJ5cGFzcyBw YXRoIGFsbG9jYXRpb24gKi8KIAogCS8qCi0JICogRklYTUU6IEF0IHRoZSBtb21lbnQgd2UgbWF5 IGJlIGNhbGxlZCBvbiBlaXRoZXIgaW4tZmxpZ2h0IG9yIGZ1bGx5Ci0JICogY29tbWl0dGVkIGNz dGF0ZSdzLiAgT25jZSB3ZSBmdWxseSBtb3ZlIEREQiBhbGxvY2F0aW9uIGluIHRoZSBjaGVjawot CSAqIHBoYXNlLCB3ZSdsbCBvbmx5IGJlIGNhbGxlZCBvbiBpbi1mbGlnaHQgc3RhdGVzIGFuZCB0 aGUgJ2Vsc2UnCi0JICogYnJhbmNoIGhlcmUgd2lsbCBnbyBhd2F5LgotCSAqCi0JICogVGhlICdl bHNlJyBicmFuY2ggaXMgc2xpZ2h0bHkgcmFjeSBoZXJlLCBidXQgaXQgd2FzIHJhY3kgdG8gYmVn aW4KLQkgKiB3aXRoOyBzaW5jZSBpdCdzIGdvaW5nIGF3YXkgc29vbiwgbm8gZWZmb3J0IGlzIG1h ZGUgdG8gYWRkcmVzcyB0aGF0LgorCSAqIElmIHRoZSBzdGF0ZSBkb2Vzbid0IGNoYW5nZSB0aGUg YWN0aXZlIENSVEMncywgdGhlbiB0aGVyZSdzCisJICogbm8gbmVlZCB0byByZWNhbGN1bGF0ZTsg dGhlIGV4aXN0aW5nIHBpcGUgYWxsb2NhdGlvbiBsaW1pdHMKKwkgKiBzaG91bGQgcmVtYWluIHVu Y2hhbmdlZC4gIE5vdGUgdGhhdCB3ZSdyZSBzYWZlIGZyb20gcmFjaW5nCisJICogY29tbWl0cyBz aW5jZSBhbnkgcmFjaW5nIGNvbW1pdCB0aGF0IGNoYW5nZXMgdGhlIGFjdGl2ZSBDUlRDCisJICog bGlzdCB3b3VsZCBuZWVkIHRvIGdyYWIgX2FsbF8gY3J0YyBsb2NrcywgaW5jbHVkaW5nIHRoZSBv bmUKKwkgKiB3ZSBjdXJyZW50bHkgaG9sZC4KIAkgKi8KLQlpZiAoc3RhdGUpIHsKLQkJLyoKLQkJ ICogSWYgdGhlIHN0YXRlIGRvZXNuJ3QgY2hhbmdlIHRoZSBhY3RpdmUgQ1JUQydzLCB0aGVuIHRo ZXJlJ3MKLQkJICogbm8gbmVlZCB0byByZWNhbGN1bGF0ZTsgdGhlIGV4aXN0aW5nIHBpcGUgYWxs b2NhdGlvbiBsaW1pdHMKLQkJICogc2hvdWxkIHJlbWFpbiB1bmNoYW5nZWQuICBOb3RlIHRoYXQg d2UncmUgc2FmZSBmcm9tIHJhY2luZwotCQkgKiBjb21taXRzIHNpbmNlIGFueSByYWNpbmcgY29t bWl0IHRoYXQgY2hhbmdlcyB0aGUgYWN0aXZlIENSVEMKLQkJICogbGlzdCB3b3VsZCBuZWVkIHRv IGdyYWIgX2FsbF8gY3J0YyBsb2NrcywgaW5jbHVkaW5nIHRoZSBvbmUKLQkJICogd2UgY3VycmVu dGx5IGhvbGQuCi0JCSAqLwotCQlpZiAoIWludGVsX3N0YXRlLT5hY3RpdmVfcGlwZV9jaGFuZ2Vz KSB7Ci0JCQkqYWxsb2MgPSBkZXZfcHJpdi0+d20uc2tsX2h3LmRkYi5waXBlW3BpcGVdOwotCQkJ cmV0dXJuOwotCQl9Ci0KLQkJbnRoX2FjdGl2ZV9waXBlID0gaHdlaWdodDMyKGludGVsX3N0YXRl LT5hY3RpdmVfY3J0Y3MgJgotCQkJCQkgICAgKGRybV9jcnRjX21hc2soZm9yX2NydGMpIC0gMSkp OwotCQlwaXBlX3NpemUgPSBkZGJfc2l6ZSAvIGh3ZWlnaHQzMihpbnRlbF9zdGF0ZS0+YWN0aXZl X2NydGNzKTsKLQkJYWxsb2MtPnN0YXJ0ID0gbnRoX2FjdGl2ZV9waXBlICogZGRiX3NpemUgLyAq bnVtX2FjdGl2ZTsKLQkJYWxsb2MtPmVuZCA9IGFsbG9jLT5zdGFydCArIHBpcGVfc2l6ZTsKLQl9 IGVsc2UgewotCQludGhfYWN0aXZlX3BpcGUgPSAwOwotCQlmb3JfZWFjaF9jcnRjKGRldiwgY3J0 YykgewotCQkJaWYgKCF0b19pbnRlbF9jcnRjKGNydGMpLT5hY3RpdmUpCi0JCQkJY29udGludWU7 Ci0KLQkJCWlmIChjcnRjID09IGZvcl9jcnRjKQotCQkJCWJyZWFrOwotCi0JCQludGhfYWN0aXZl X3BpcGUrKzsKLQkJfQotCi0JCXBpcGVfc2l6ZSA9IGRkYl9zaXplIC8gY29uZmlnLT5udW1fcGlw ZXNfYWN0aXZlOwotCQlhbGxvYy0+c3RhcnQgPSBudGhfYWN0aXZlX3BpcGUgKiBkZGJfc2l6ZSAv Ci0JCQljb25maWctPm51bV9waXBlc19hY3RpdmU7Ci0JCWFsbG9jLT5lbmQgPSBhbGxvYy0+c3Rh cnQgKyBwaXBlX3NpemU7CisJaWYgKCFpbnRlbF9zdGF0ZS0+YWN0aXZlX3BpcGVfY2hhbmdlcykg eworCQkqYWxsb2MgPSBkZXZfcHJpdi0+d20uc2tsX2h3LmRkYi5waXBlW3BpcGVdOworCQlyZXR1 cm47CiAJfQorCisJbnRoX2FjdGl2ZV9waXBlID0gaHdlaWdodDMyKGludGVsX3N0YXRlLT5hY3Rp dmVfY3J0Y3MgJgorCQkJCSAgICAoZHJtX2NydGNfbWFzayhmb3JfY3J0YykgLSAxKSk7CisJcGlw ZV9zaXplID0gZGRiX3NpemUgLyBod2VpZ2h0MzIoaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcyk7 CisJYWxsb2MtPnN0YXJ0ID0gbnRoX2FjdGl2ZV9waXBlICogZGRiX3NpemUgLyAqbnVtX2FjdGl2 ZTsKKwlhbGxvYy0+ZW5kID0gYWxsb2MtPnN0YXJ0ICsgcGlwZV9zaXplOwogfQogCiBzdGF0aWMg dW5zaWduZWQgaW50IHNrbF9jdXJzb3JfYWxsb2NhdGlvbihpbnQgbnVtX2FjdGl2ZSkKQEAgLTMw MjUsNjIgKzI5OTUsMzMgQEAgc2tsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NzdGF0ZSkKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMg PSBjc3RhdGUtPmNydGM7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CisJY29u c3Qgc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lICpp bnRlbF9wbGFuZTsKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGU7CiAJdW5zaWduZWQg aW50IHJhdGUsIHRvdGFsX2RhdGFfcmF0ZSA9IDA7CiAJaW50IGlkOworCWludCBpOworCisJaWYg KFdBUk5fT04oIXN0YXRlKSkKKwkJcmV0dXJuIDA7CiAKIAkvKiBDYWxjdWxhdGUgYW5kIGNhY2hl IGRhdGEgcmF0ZSBmb3IgZWFjaCBwbGFuZSAqLwotCS8qCi0JICogRklYTUU6IEF0IHRoZSBtb21l bnQgdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIG9uIGVpdGhlciBhbgotCSAqIGluLWZsaWdo dCBvciBhIGNvbW1pdHRlZCBzdGF0ZSBvYmplY3QuICBJZiBpdCdzIGluLWZsaWdodCB0aGVuIHdl Ci0JICogb25seSB3YW50IHRvIHJlLWNhbGN1bGF0ZSB0aGUgcGxhbmUgZGF0YSByYXRlIGZvciBw bGFuZXMgdGhhdCBhcmUKLQkgKiBwYXJ0IG9mIHRoZSB0cmFuc2FjdGlvbiAoaS5lLiwgd2UgZG9u J3Qgd2FudCB0byBncmFiIGFueSBhZGRpdGlvbmFsCi0JICogcGxhbmUgc3RhdGVzIGlmIHdlIGRv bid0IGhhdmUgdG8pLiAgSWYgd2UncmUgb3BlcmF0aW5nIG9uIGNvbW1pdHRlZAotCSAqIHN0YXRl LCB3ZSdsbCBqdXN0IGdvIGFoZWFkIGFuZCByZWNhbGN1bGF0ZSB0aGUgcGxhbmUgZGF0YSByYXRl IGZvcgotCSAqIGFsbCBwbGFuZXMuCi0JICoKLQkgKiBPbmNlIHdlIGZpbmlzaCBtb3Zpbmcgb3Vy IEREQiBhbGxvY2F0aW9uIHRvIHRoZSBhdG9taWMgY2hlY2sgcGhhc2UsCi0JICogd2UnbGwgb25s eSBiZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gb24gaW4tZmxpZ2h0IHN0YXRlIG9iamVjdHMsIHNv Ci0JICogdGhlICdlbHNlJyBicmFuY2ggaGVyZSB3aWxsIGdvIGF3YXkuCi0JICovCi0JaWYgKHN0 YXRlKSB7Ci0JCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwotCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0 YXRlICpwc3RhdGU7Ci0JCWludCBpOwotCi0JCWZvcl9lYWNoX3BsYW5lX2luX3N0YXRlKHN0YXRl LCBwbGFuZSwgcHN0YXRlLCBpKSB7Ci0JCQlpbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBs YW5lKTsKLQkJCWlkID0gc2tsX3dtX3BsYW5lX2lkKGludGVsX3BsYW5lKTsKLQotCQkJaWYgKGlu dGVsX3BsYW5lLT5waXBlICE9IGludGVsX2NydGMtPnBpcGUpCi0JCQkJY29udGludWU7Ci0KLQkJ CS8qIHBhY2tlZC91diAqLwotCQkJcmF0ZSA9IHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUo aW50ZWxfY3N0YXRlLAotCQkJCQkJCSAgICBwc3RhdGUsIDApOwotCQkJaW50ZWxfY3N0YXRlLT53 bS5za2wucGxhbmVfZGF0YV9yYXRlW2lkXSA9IHJhdGU7Ci0KLQkJCS8qIHktcGxhbmUgKi8KLQkJ CXJhdGUgPSBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGludGVsX2NzdGF0ZSwKLQkJCQkJ CQkgICAgcHN0YXRlLCAxKTsKLQkJCWludGVsX2NzdGF0ZS0+d20uc2tsLnBsYW5lX3lfZGF0YV9y YXRlW2lkXSA9IHJhdGU7Ci0JCX0KLQl9IGVsc2UgewotCQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9v bl9jcnRjKGRldiwgaW50ZWxfY3J0YywgaW50ZWxfcGxhbmUpIHsKLQkJCWNvbnN0IHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnBzdGF0ZSA9Ci0JCQkJaW50ZWxfcGxhbmUtPmJhc2Uuc3RhdGU7Ci0J CQlpbnQgaWQgPSBza2xfd21fcGxhbmVfaWQoaW50ZWxfcGxhbmUpOworCWZvcl9lYWNoX3BsYW5l X2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcHN0YXRlLCBpKSB7CisJCWlkID0gc2tsX3dtX3BsYW5l X2lkKHRvX2ludGVsX3BsYW5lKHBsYW5lKSk7CisJCWludGVsX3BsYW5lID0gdG9faW50ZWxfcGxh bmUocGxhbmUpOwogCi0JCQkvKiBwYWNrZWQvdXYgKi8KLQkJCXJhdGUgPSBza2xfcGxhbmVfcmVs YXRpdmVfZGF0YV9yYXRlKGludGVsX2NzdGF0ZSwKLQkJCQkJCQkgICAgcHN0YXRlLCAwKTsKLQkJ CWludGVsX2NzdGF0ZS0+d20uc2tsLnBsYW5lX2RhdGFfcmF0ZVtpZF0gPSByYXRlOworCQlpZiAo aW50ZWxfcGxhbmUtPnBpcGUgIT0gaW50ZWxfY3J0Yy0+cGlwZSkKKwkJCWNvbnRpbnVlOwogCi0J CQkvKiB5LXBsYW5lICovCi0JCQlyYXRlID0gc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShp bnRlbF9jc3RhdGUsCi0JCQkJCQkJICAgIHBzdGF0ZSwgMSk7Ci0JCQlpbnRlbF9jc3RhdGUtPndt LnNrbC5wbGFuZV95X2RhdGFfcmF0ZVtpZF0gPSByYXRlOwotCQl9CisJCS8qIHBhY2tlZC91diAq LworCQlyYXRlID0gc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShpbnRlbF9jc3RhdGUsCisJ CQkJCQkgICAgcHN0YXRlLCAwKTsKKwkJaW50ZWxfY3N0YXRlLT53bS5za2wucGxhbmVfZGF0YV9y YXRlW2lkXSA9IHJhdGU7CisKKwkJLyogeS1wbGFuZSAqLworCQlyYXRlID0gc2tsX3BsYW5lX3Jl bGF0aXZlX2RhdGFfcmF0ZShpbnRlbF9jc3RhdGUsCisJCQkJCQkgICAgcHN0YXRlLCAxKTsKKwkJ aW50ZWxfY3N0YXRlLT53bS5za2wucGxhbmVfeV9kYXRhX3JhdGVbaWRdID0gcmF0ZTsKIAl9CiAK IAkvKiBDYWxjdWxhdGUgQ1JUQydzIHRvdGFsIGRhdGEgcmF0ZSBmcm9tIGNhY2hlZCB2YWx1ZXMg Ki8KQEAgLTMxMDQsOCArMzA0NSw2IEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9 IGNzdGF0ZS0+YmFzZS5zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjc3RhdGUtPmJh c2UuY3J0YzsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwotCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxf d21fY29uZmlnICpjb25maWcgPSAmZGV2X3ByaXYtPndtLmNvbmZpZzsKIAlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJc3RydWN0IGludGVsX3Bs YW5lICppbnRlbF9wbGFuZTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKQEAgLTMxMTksNiAr MzA1OCw5IEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3N0YXRlLAogCWludCBudW1fYWN0aXZlOwogCWludCBpZCwgaTsKIAorCWlmIChXQVJOX09OKCFz dGF0ZSkpCisJCXJldHVybiAwOworCiAJaWYgKCFjc3RhdGUtPmJhc2UuYWN0aXZlKSB7CiAJCWRk Yi0+cGlwZVtwaXBlXS5zdGFydCA9IGRkYi0+cGlwZVtwaXBlXS5lbmQgPSAwOwogCQltZW1zZXQo ZGRiLT5wbGFuZVtwaXBlXSwgMCwgc2l6ZW9mKGRkYi0+cGxhbmVbcGlwZV0pKTsKQEAgLTMxMjYs OCArMzA2OCw3IEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3N0YXRlLAogCQlyZXR1cm4gMDsKIAl9CiAKLQlza2xfZGRiX2dldF9waXBlX2FsbG9jYXRp b25fbGltaXRzKGRldiwgY3N0YXRlLCBjb25maWcsIGFsbG9jLAotCQkJCQkgICAmbnVtX2FjdGl2 ZSk7CisJc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhkZXYsIGNzdGF0ZSwgYWxs b2MsICZudW1fYWN0aXZlKTsKIAlhbGxvY19zaXplID0gc2tsX2RkYl9lbnRyeV9zaXplKGFsbG9j KTsKIAlpZiAoYWxsb2Nfc2l6ZSA9PSAwKSB7CiAJCW1lbXNldChkZGItPnBsYW5lW3BpcGVdLCAw LCBzaXplb2YoZGRiLT5wbGFuZVtwaXBlXSkpOwpAQCAtMzEzOSw1MyArMzA4MCwzMSBAQCBza2xf YWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKIAlkZGIt PnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl0uZW5kID0gYWxsb2MtPmVuZDsKIAogCWFsbG9jX3Np emUgLT0gY3Vyc29yX2Jsb2NrczsKLQlhbGxvYy0+ZW5kIC09IGN1cnNvcl9ibG9ja3M7CiAKIAkv KiAxLiBBbGxvY2F0ZSB0aGUgbWluaW51bSByZXF1aXJlZCBibG9ja3MgZm9yIGVhY2ggYWN0aXZl IHBsYW5lICovCi0JLyoKLQkgKiBUT0RPOiBSZW1vdmUgc3VwcG9ydCBmb3IgYWxyZWFkeS1jb21t aXR0ZWQgc3RhdGUgb25jZSB3ZQotCSAqIG9ubHkgYWxsb2NhdGUgRERCIG9uIGluLWZsaWdodCBz dGF0ZXMuCi0JICovCi0JaWYgKHN0YXRlKSB7Ci0JCWZvcl9lYWNoX3BsYW5lX2luX3N0YXRlKHN0 YXRlLCBwbGFuZSwgcHN0YXRlLCBpKSB7Ci0JCQlpbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5l KHBsYW5lKTsKLQkJCWlkID0gc2tsX3dtX3BsYW5lX2lkKGludGVsX3BsYW5lKTsKLQotCQkJaWYg KGludGVsX3BsYW5lLT5waXBlICE9IHBpcGUpCi0JCQkJY29udGludWU7Ci0KLQkJCWlmICghdG9f aW50ZWxfcGxhbmVfc3RhdGUocHN0YXRlKS0+dmlzaWJsZSkgewotCQkJCW1pbmltdW1baWRdID0g MDsKLQkJCQl5X21pbmltdW1baWRdID0gMDsKLQkJCQljb250aW51ZTsKLQkJCX0KLQkJCWlmIChw bGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpIHsKLQkJCQltaW5pbXVtW2lkXSA9 IDA7Ci0JCQkJeV9taW5pbXVtW2lkXSA9IDA7Ci0JCQkJY29udGludWU7Ci0JCQl9Ci0KLQkJCW1p bmltdW1baWRdID0gODsKLQkJCWlmIChwc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZP Uk1BVF9OVjEyKQotCQkJCXlfbWluaW11bVtpZF0gPSA4OwotCQkJZWxzZQotCQkJCXlfbWluaW11 bVtpZF0gPSAwOwotCQl9Ci0JfSBlbHNlIHsKLQkJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0 YyhkZXYsIGludGVsX2NydGMsIGludGVsX3BsYW5lKSB7Ci0JCQlzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSA9ICZpbnRlbF9wbGFuZS0+YmFzZTsKLQkJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi ID0gcGxhbmUtPnN0YXRlLT5mYjsKLQkJCWludCBpZCA9IHNrbF93bV9wbGFuZV9pZChpbnRlbF9w bGFuZSk7Ci0KLQkJCWlmICghdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKS0+dmlz aWJsZSkKLQkJCQljb250aW51ZTsKKwlmb3JfZWFjaF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxh bmUsIHBzdGF0ZSwgaSkgeworCQlpbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsK KwkJaWQgPSBza2xfd21fcGxhbmVfaWQoaW50ZWxfcGxhbmUpOwogCi0JCQlpZiAocGxhbmUtPnR5 cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQotCQkJCWNvbnRpbnVlOworCQlpZiAoaW50ZWxf cGxhbmUtPnBpcGUgIT0gcGlwZSkKKwkJCWNvbnRpbnVlOwogCi0JCQltaW5pbXVtW2lkXSA9IDg7 Ci0JCQl5X21pbmltdW1baWRdID0gKGZiLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEy KSA/IDggOiAwOworCQlpZiAoIXRvX2ludGVsX3BsYW5lX3N0YXRlKHBzdGF0ZSktPnZpc2libGUp IHsKKwkJCW1pbmltdW1baWRdID0gMDsKKwkJCXlfbWluaW11bVtpZF0gPSAwOworCQkJY29udGlu dWU7CisJCX0KKwkJaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikgewor CQkJbWluaW11bVtpZF0gPSAwOworCQkJeV9taW5pbXVtW2lkXSA9IDA7CisJCQljb250aW51ZTsK IAkJfQorCisJCW1pbmltdW1baWRdID0gODsKKwkJaWYgKHBzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1h dCA9PSBEUk1fRk9STUFUX05WMTIpCisJCQl5X21pbmltdW1baWRdID0gODsKKwkJZWxzZQorCQkJ eV9taW5pbXVtW2lkXSA9IDA7CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IFBMQU5FX0NVUlNPUjsg aSsrKSB7CkBAIC0zNzM2LDcgKzM2NTUsNiBAQCBzdGF0aWMgYm9vbCBza2xfdXBkYXRlX3BpcGVf d20oc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRl ID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAKLQlXQVJOX09OKHNrbF9hbGxv Y2F0ZV9waXBlX2RkYihjc3RhdGUsIGRkYikgIT0gMCk7CiAJc2tsX2J1aWxkX3BpcGVfd20oY3N0 YXRlLCBkZGIsIHBpcGVfd20pOwogCiAJaWYgKCFtZW1jbXAoJmludGVsX2NydGMtPndtLmFjdGl2 ZS5za2wsIHBpcGVfd20sIHNpemVvZigqcGlwZV93bSkpKQpAQCAtMzgwMCwxNiArMzcxOCw2IEBA IHN0YXRpYyB2b2lkIHNrbF9jbGVhcl93bShzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd2F0ZXJtYXJr cywgZW51bSBwaXBlIHBpcGUpCiAJbWVtc2V0KHdhdGVybWFya3MtPnBsYW5lX3RyYW5zW3BpcGVd LAogCSAgICAgICAwLCBzaXplb2YodWludDMyX3QpICogSTkxNV9NQVhfUExBTkVTKTsKIAl3YXRl cm1hcmtzLT5wbGFuZV90cmFuc1twaXBlXVtQTEFORV9DVVJTT1JdID0gMDsKLQotCS8qIENsZWFy IGRkYiBlbnRyaWVzIGZvciBwaXBlICovCi0JbWVtc2V0KCZ3YXRlcm1hcmtzLT5kZGIucGlwZVtw aXBlXSwgMCwgc2l6ZW9mKHN0cnVjdCBza2xfZGRiX2VudHJ5KSk7Ci0JbWVtc2V0KCZ3YXRlcm1h cmtzLT5kZGIucGxhbmVbcGlwZV0sIDAsCi0JICAgICAgIHNpemVvZihzdHJ1Y3Qgc2tsX2RkYl9l bnRyeSkgKiBJOTE1X01BWF9QTEFORVMpOwotCW1lbXNldCgmd2F0ZXJtYXJrcy0+ZGRiLnlfcGxh bmVbcGlwZV0sIDAsCi0JICAgICAgIHNpemVvZihzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSkgKiBJOTE1 X01BWF9QTEFORVMpOwotCW1lbXNldCgmd2F0ZXJtYXJrcy0+ZGRiLnBsYW5lW3BpcGVdW1BMQU5F X0NVUlNPUl0sIDAsCi0JICAgICAgIHNpemVvZihzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSkpOwotCiB9 CiAKIHN0YXRpYyBpbnQKLS0gCjIuMS40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK