From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH v2 09/16] drm/i915/gen9: Drop re-allocation of DDB at atomic commit (v2) Date: Tue, 19 Apr 2016 19:26:16 -0700 Message-ID: <1461119183-14267-10-git-send-email-matthew.d.roper@intel.com> References: <1461119183-14267-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 2A99B6E8B4 for ; Wed, 20 Apr 2016 02:27:19 +0000 (UTC) In-Reply-To: <1461119183-14267-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 dy5kLnJvcGVyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgfCAgMTQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgfCAy MTkgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwg NjUgaW5zZXJ0aW9ucygrKSwgMTY4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwppbmRleCBjOTcwZTNlLi44MGQ4Zjc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCkBAIC0xMzU5OSw2ICsxMzU5OSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRv bWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJZHJtX2F0b21pY19oZWxwZXJf c3dhcF9zdGF0ZShkZXYsIHN0YXRlKTsKIAlkZXZfcHJpdi0+d20uY29uZmlnID0gaW50ZWxfc3Rh dGUtPndtX2NvbmZpZzsKKwlkZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHMuZGRiID0gaW50ZWxfc3Rh dGUtPmRkYjsKIAlpbnRlbF9zaGFyZWRfZHBsbF9jb21taXQoc3RhdGUpOwogCiAJaWYgKGludGVs X3N0YXRlLT5tb2Rlc2V0KSB7CkBAIC0xMzcxNiwxOSArMTM3MTcsNiBAQCBzdGF0aWMgaW50IGlu dGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJaW50ZWxfbW9kZXNl dF92ZXJpZnlfY3J0YyhjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgY3J0Yy0+c3RhdGUpOwogCX0KIAot CS8qCi0JICogVGVtcG9yYXJ5IHNhbml0eSBjaGVjazogbWFrZSBzdXJlIG91ciBwcmUtY29tcHV0 ZWQgRERCIG1hdGNoZXMgdGhlCi0JICogb25lIHdlIGFjdHVhbGx5IHdpbmQgdXAgcHJvZ3JhbW1p bmcuCi0JICoKLQkgKiBOb3QgYSBncmVhdCBwbGFjZSB0byBwdXQgdGhpcywgYnV0IHRoZSBlYXNp ZXN0IHBsYWNlIHdlIGhhdmUgYWNjZXNzCi0JICogdG8gYm90aCB0aGUgcHJlLWNvbXB1dGVkIGFu ZCBmaW5hbCBEREInczsgd2UnbGwgYmUgcmVtb3ZpbmcgdGhpcwotCSAqIGNoZWNrIGluIHRoZSBu ZXh0IHBhdGNoIGFueXdheS4KLQkgKi8KLQlXQVJOKElTX0dFTjkoZGV2KSAmJgotCSAgICAgbWVt Y21wKCZpbnRlbF9zdGF0ZS0+ZGRiLCAmZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRzLmRkYiwKLQkJ ICAgIHNpemVvZihpbnRlbF9zdGF0ZS0+ZGRiKSksCi0JICAgICAiUHJlLWNvbXB1dGVkIEREQiBk b2VzIG5vdCBtYXRjaCBmaW5hbCBEREIhXG4iKTsKLQogCWlmIChpbnRlbF9zdGF0ZS0+bW9kZXNl dCkKIAkJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9NT0RF U0VUKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggMGNjMzQ0My4uYTU0ZDNjMSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC0yODQ5LDcgKzI4NDksNiBAQCBza2xfd21fcGxhbmVf aWQoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKIHN0YXRpYyB2b2lkCiBza2xfZGRi X2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJ ICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKLQkJCQkgICBzdHJ1Y3Qg aW50ZWxfd21fY29uZmlnICpjb25maWcsCiAJCQkJICAgc3RydWN0IHNrbF9kZGJfZW50cnkgKmFs bG9jLCAvKiBvdXQgKi8KIAkJCQkgICBpbnQgKm51bV9hY3RpdmUgLyogb3V0ICovKQogewpAQCAt Mjg1NywxMSArMjg1NiwxMyBAQCBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxf c3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgZHJtX2NydGMgKmZvcl9j cnRjID0gY3N0YXRlLT5iYXNlLmNydGM7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwogCXVuc2ln bmVkIGludCBwaXBlX3NpemUsIGRkYl9zaXplOwogCWludCBudGhfYWN0aXZlX3BpcGU7CiAJaW50 IHBpcGUgPSB0b19pbnRlbF9jcnRjKGZvcl9jcnRjKS0+cGlwZTsKIAorCWlmIChXQVJOX09OKCFz dGF0ZSkpCisJCXJldHVybjsKKwogCWlmICghY3N0YXRlLT5iYXNlLmFjdGl2ZSkgewogCQlhbGxv Yy0+c3RhcnQgPSAwOwogCQlhbGxvYy0+ZW5kID0gMDsKQEAgLTI4NzYsNTMgKzI4NzcsMjUgQEAg c2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCWRkYl9zaXplIC09IDQ7IC8qIDQgYmxvY2tzIGZvciBieXBhc3MgcGF0aCBhbGxvY2F0aW9u ICovCiAKIAkvKgotCSAqIEZJWE1FOiBBdCB0aGUgbW9tZW50IHdlIG1heSBiZSBjYWxsZWQgb24g ZWl0aGVyIGluLWZsaWdodCBvciBmdWxseQotCSAqIGNvbW1pdHRlZCBjc3RhdGUncy4gIE9uY2Ug d2UgZnVsbHkgbW92ZSBEREIgYWxsb2NhdGlvbiBpbiB0aGUgY2hlY2sKLQkgKiBwaGFzZSwgd2Un bGwgb25seSBiZSBjYWxsZWQgb24gaW4tZmxpZ2h0IHN0YXRlcyBhbmQgdGhlICdlbHNlJwotCSAq IGJyYW5jaCBoZXJlIHdpbGwgZ28gYXdheS4KLQkgKgotCSAqIFRoZSAnZWxzZScgYnJhbmNoIGlz IHNsaWdodGx5IHJhY3kgaGVyZSwgYnV0IGl0IHdhcyByYWN5IHRvIGJlZ2luCi0JICogd2l0aDsg c2luY2UgaXQncyBnb2luZyBhd2F5IHNvb24sIG5vIGVmZm9ydCBpcyBtYWRlIHRvIGFkZHJlc3Mg dGhhdC4KKwkgKiBJZiB0aGUgc3RhdGUgZG9lc24ndCBjaGFuZ2UgdGhlIGFjdGl2ZSBDUlRDJ3Ms IHRoZW4gdGhlcmUncworCSAqIG5vIG5lZWQgdG8gcmVjYWxjdWxhdGU7IHRoZSBleGlzdGluZyBw aXBlIGFsbG9jYXRpb24gbGltaXRzCisJICogc2hvdWxkIHJlbWFpbiB1bmNoYW5nZWQuICBOb3Rl IHRoYXQgd2UncmUgc2FmZSBmcm9tIHJhY2luZworCSAqIGNvbW1pdHMgc2luY2UgYW55IHJhY2lu ZyBjb21taXQgdGhhdCBjaGFuZ2VzIHRoZSBhY3RpdmUgQ1JUQworCSAqIGxpc3Qgd291bGQgbmVl ZCB0byBncmFiIF9hbGxfIGNydGMgbG9ja3MsIGluY2x1ZGluZyB0aGUgb25lCisJICogd2UgY3Vy cmVudGx5IGhvbGQuCiAJICovCi0JaWYgKHN0YXRlKSB7Ci0JCS8qCi0JCSAqIElmIHRoZSBzdGF0 ZSBkb2Vzbid0IGNoYW5nZSB0aGUgYWN0aXZlIENSVEMncywgdGhlbiB0aGVyZSdzCi0JCSAqIG5v IG5lZWQgdG8gcmVjYWxjdWxhdGU7IHRoZSBleGlzdGluZyBwaXBlIGFsbG9jYXRpb24gbGltaXRz Ci0JCSAqIHNob3VsZCByZW1haW4gdW5jaGFuZ2VkLiAgTm90ZSB0aGF0IHdlJ3JlIHNhZmUgZnJv bSByYWNpbmcKLQkJICogY29tbWl0cyBzaW5jZSBhbnkgcmFjaW5nIGNvbW1pdCB0aGF0IGNoYW5n ZXMgdGhlIGFjdGl2ZSBDUlRDCi0JCSAqIGxpc3Qgd291bGQgbmVlZCB0byBncmFiIF9hbGxfIGNy dGMgbG9ja3MsIGluY2x1ZGluZyB0aGUgb25lCi0JCSAqIHdlIGN1cnJlbnRseSBob2xkLgotCQkg Ki8KLQkJaWYgKCFpbnRlbF9zdGF0ZS0+YWN0aXZlX3BpcGVfY2hhbmdlcykgewotCQkJKmFsbG9j ID0gZGV2X3ByaXYtPndtLnNrbF9ody5kZGIucGlwZVtwaXBlXTsKLQkJCSpudW1fYWN0aXZlID0g aHdlaWdodDMyKGRldl9wcml2LT5hY3RpdmVfY3J0Y3MpOwotCQkJcmV0dXJuOwotCQl9Ci0KLQkJ Km51bV9hY3RpdmUgPSBod2VpZ2h0MzIoaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcyk7Ci0JCW50 aF9hY3RpdmVfcGlwZSA9IGh3ZWlnaHQzMihpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzICYKLQkJ CQkJICAgIChkcm1fY3J0Y19tYXNrKGZvcl9jcnRjKSAtIDEpKTsKLQkJcGlwZV9zaXplID0gZGRi X3NpemUgLyBod2VpZ2h0MzIoaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcyk7Ci0JCWFsbG9jLT5z dGFydCA9IG50aF9hY3RpdmVfcGlwZSAqIGRkYl9zaXplIC8gKm51bV9hY3RpdmU7Ci0JCWFsbG9j LT5lbmQgPSBhbGxvYy0+c3RhcnQgKyBwaXBlX3NpemU7Ci0JfSBlbHNlIHsKLQkJbnRoX2FjdGl2 ZV9waXBlID0gMDsKLQkJZm9yX2VhY2hfY3J0YyhkZXYsIGNydGMpIHsKLQkJCWlmICghdG9faW50 ZWxfY3J0YyhjcnRjKS0+YWN0aXZlKQotCQkJCWNvbnRpbnVlOwotCi0JCQlpZiAoY3J0YyA9PSBm b3JfY3J0YykKLQkJCQlicmVhazsKLQotCQkJbnRoX2FjdGl2ZV9waXBlKys7Ci0JCX0KLQotCQlw aXBlX3NpemUgPSBkZGJfc2l6ZSAvIGNvbmZpZy0+bnVtX3BpcGVzX2FjdGl2ZTsKLQkJYWxsb2Mt PnN0YXJ0ID0gbnRoX2FjdGl2ZV9waXBlICogZGRiX3NpemUgLwotCQkJY29uZmlnLT5udW1fcGlw ZXNfYWN0aXZlOwotCQlhbGxvYy0+ZW5kID0gYWxsb2MtPnN0YXJ0ICsgcGlwZV9zaXplOwotCQkq bnVtX2FjdGl2ZSA9IGNvbmZpZy0+bnVtX3BpcGVzX2FjdGl2ZTsKKwlpZiAoIWludGVsX3N0YXRl LT5hY3RpdmVfcGlwZV9jaGFuZ2VzKSB7CisJCSphbGxvYyA9IGRldl9wcml2LT53bS5za2xfaHcu ZGRiLnBpcGVbcGlwZV07CisJCSpudW1fYWN0aXZlID0gaHdlaWdodDMyKGRldl9wcml2LT5hY3Rp dmVfY3J0Y3MpOworCQlyZXR1cm47CiAJfQorCisJKm51bV9hY3RpdmUgPSBod2VpZ2h0MzIoaW50 ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcyk7CisJbnRoX2FjdGl2ZV9waXBlID0gaHdlaWdodDMyKGlu dGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MgJgorCQkJCSAgICAoZHJtX2NydGNfbWFzayhmb3JfY3J0 YykgLSAxKSk7CisJcGlwZV9zaXplID0gZGRiX3NpemUgLyBod2VpZ2h0MzIoaW50ZWxfc3RhdGUt PmFjdGl2ZV9jcnRjcyk7CisJYWxsb2MtPnN0YXJ0ID0gbnRoX2FjdGl2ZV9waXBlICogZGRiX3Np emUgLyAqbnVtX2FjdGl2ZTsKKwlhbGxvYy0+ZW5kID0gYWxsb2MtPnN0YXJ0ICsgcGlwZV9zaXpl OwogfQogCiBzdGF0aWMgdW5zaWduZWQgaW50IHNrbF9jdXJzb3JfYWxsb2NhdGlvbihpbnQgbnVt X2FjdGl2ZSkKQEAgLTMwMjEsNjIgKzI5OTQsMzMgQEAgc2tsX2dldF90b3RhbF9yZWxhdGl2ZV9k YXRhX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NzdGF0ZSkKIAlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSBjc3RhdGUtPmNydGM7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmRldjsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJY29uc3Qgc3RydWN0 IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3Rh dGU7CiAJdW5zaWduZWQgaW50IHJhdGUsIHRvdGFsX2RhdGFfcmF0ZSA9IDA7CiAJaW50IGlkOwor CWludCBpOworCisJaWYgKFdBUk5fT04oIXN0YXRlKSkKKwkJcmV0dXJuIDA7CiAKIAkvKiBDYWxj dWxhdGUgYW5kIGNhY2hlIGRhdGEgcmF0ZSBmb3IgZWFjaCBwbGFuZSAqLwotCS8qCi0JICogRklY TUU6IEF0IHRoZSBtb21lbnQgdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIG9uIGVpdGhlciBh bgotCSAqIGluLWZsaWdodCBvciBhIGNvbW1pdHRlZCBzdGF0ZSBvYmplY3QuICBJZiBpdCdzIGlu LWZsaWdodCB0aGVuIHdlCi0JICogb25seSB3YW50IHRvIHJlLWNhbGN1bGF0ZSB0aGUgcGxhbmUg ZGF0YSByYXRlIGZvciBwbGFuZXMgdGhhdCBhcmUKLQkgKiBwYXJ0IG9mIHRoZSB0cmFuc2FjdGlv biAoaS5lLiwgd2UgZG9uJ3Qgd2FudCB0byBncmFiIGFueSBhZGRpdGlvbmFsCi0JICogcGxhbmUg c3RhdGVzIGlmIHdlIGRvbid0IGhhdmUgdG8pLiAgSWYgd2UncmUgb3BlcmF0aW5nIG9uIGNvbW1p dHRlZAotCSAqIHN0YXRlLCB3ZSdsbCBqdXN0IGdvIGFoZWFkIGFuZCByZWNhbGN1bGF0ZSB0aGUg cGxhbmUgZGF0YSByYXRlIGZvcgotCSAqIGFsbCBwbGFuZXMuCi0JICoKLQkgKiBPbmNlIHdlIGZp bmlzaCBtb3Zpbmcgb3VyIEREQiBhbGxvY2F0aW9uIHRvIHRoZSBhdG9taWMgY2hlY2sgcGhhc2Us Ci0JICogd2UnbGwgb25seSBiZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gb24gaW4tZmxpZ2h0IHN0 YXRlIG9iamVjdHMsIHNvCi0JICogdGhlICdlbHNlJyBicmFuY2ggaGVyZSB3aWxsIGdvIGF3YXku Ci0JICovCi0JaWYgKHN0YXRlKSB7Ci0JCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwotCQlzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGU7Ci0JCWludCBpOwotCi0JCWZvcl9lYWNoX3BsYW5l X2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcHN0YXRlLCBpKSB7Ci0JCQlpbnRlbF9wbGFuZSA9IHRv X2ludGVsX3BsYW5lKHBsYW5lKTsKLQkJCWlkID0gc2tsX3dtX3BsYW5lX2lkKGludGVsX3BsYW5l KTsKLQotCQkJaWYgKGludGVsX3BsYW5lLT5waXBlICE9IGludGVsX2NydGMtPnBpcGUpCi0JCQkJ Y29udGludWU7Ci0KLQkJCS8qIHBhY2tlZC91diAqLwotCQkJcmF0ZSA9IHNrbF9wbGFuZV9yZWxh dGl2ZV9kYXRhX3JhdGUoaW50ZWxfY3N0YXRlLAotCQkJCQkJCSAgICBwc3RhdGUsIDApOwotCQkJ aW50ZWxfY3N0YXRlLT53bS5za2wucGxhbmVfZGF0YV9yYXRlW2lkXSA9IHJhdGU7Ci0KLQkJCS8q IHktcGxhbmUgKi8KLQkJCXJhdGUgPSBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGludGVs X2NzdGF0ZSwKLQkJCQkJCQkgICAgcHN0YXRlLCAxKTsKLQkJCWludGVsX2NzdGF0ZS0+d20uc2ts LnBsYW5lX3lfZGF0YV9yYXRlW2lkXSA9IHJhdGU7Ci0JCX0KLQl9IGVsc2UgewotCQlmb3JfZWFj aF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgaW50ZWxfY3J0YywgaW50ZWxfcGxhbmUpIHsKLQkJ CWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZSA9Ci0JCQkJaW50ZWxfcGxhbmUt PmJhc2Uuc3RhdGU7Ci0JCQlpbnQgaWQgPSBza2xfd21fcGxhbmVfaWQoaW50ZWxfcGxhbmUpOwor CWZvcl9lYWNoX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcHN0YXRlLCBpKSB7CisJCWlk ID0gc2tsX3dtX3BsYW5lX2lkKHRvX2ludGVsX3BsYW5lKHBsYW5lKSk7CisJCWludGVsX3BsYW5l ID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwogCi0JCQkvKiBwYWNrZWQvdXYgKi8KLQkJCXJhdGUg PSBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGludGVsX2NzdGF0ZSwKLQkJCQkJCQkgICAg cHN0YXRlLCAwKTsKLQkJCWludGVsX2NzdGF0ZS0+d20uc2tsLnBsYW5lX2RhdGFfcmF0ZVtpZF0g PSByYXRlOworCQlpZiAoaW50ZWxfcGxhbmUtPnBpcGUgIT0gaW50ZWxfY3J0Yy0+cGlwZSkKKwkJ CWNvbnRpbnVlOwogCi0JCQkvKiB5LXBsYW5lICovCi0JCQlyYXRlID0gc2tsX3BsYW5lX3JlbGF0 aXZlX2RhdGFfcmF0ZShpbnRlbF9jc3RhdGUsCi0JCQkJCQkJICAgIHBzdGF0ZSwgMSk7Ci0JCQlp bnRlbF9jc3RhdGUtPndtLnNrbC5wbGFuZV95X2RhdGFfcmF0ZVtpZF0gPSByYXRlOwotCQl9CisJ CS8qIHBhY2tlZC91diAqLworCQlyYXRlID0gc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShp bnRlbF9jc3RhdGUsCisJCQkJCQkgICAgcHN0YXRlLCAwKTsKKwkJaW50ZWxfY3N0YXRlLT53bS5z a2wucGxhbmVfZGF0YV9yYXRlW2lkXSA9IHJhdGU7CisKKwkJLyogeS1wbGFuZSAqLworCQlyYXRl ID0gc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShpbnRlbF9jc3RhdGUsCisJCQkJCQkgICAg cHN0YXRlLCAxKTsKKwkJaW50ZWxfY3N0YXRlLT53bS5za2wucGxhbmVfeV9kYXRhX3JhdGVbaWRd ID0gcmF0ZTsKIAl9CiAKIAkvKiBDYWxjdWxhdGUgQ1JUQydzIHRvdGFsIGRhdGEgcmF0ZSBmcm9t IGNhY2hlZCB2YWx1ZXMgKi8KQEAgLTMxMDAsOCArMzA0NCw2IEBAIHNrbF9hbGxvY2F0ZV9waXBl X2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCXN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSA9IGNzdGF0ZS0+YmFzZS5zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNy dGMgPSBjc3RhdGUtPmJhc2UuY3J0YzsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK LQlzdHJ1Y3QgaW50ZWxfd21fY29uZmlnICpjb25maWcgPSAmZGV2X3ByaXYtPndtLmNvbmZpZzsK IAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJ c3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZTsKQEAgLTMxMTUsNiArMzA1Nyw5IEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCWludCBudW1fYWN0aXZlOwogCWludCBpZCwgaTsKIAor CWlmIChXQVJOX09OKCFzdGF0ZSkpCisJCXJldHVybiAwOworCiAJaWYgKCFjc3RhdGUtPmJhc2Uu YWN0aXZlKSB7CiAJCWRkYi0+cGlwZVtwaXBlXS5zdGFydCA9IGRkYi0+cGlwZVtwaXBlXS5lbmQg PSAwOwogCQltZW1zZXQoZGRiLT5wbGFuZVtwaXBlXSwgMCwKQEAgLTMxMjQsOCArMzA2OSw3IEBA IHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAog CQlyZXR1cm4gMDsKIAl9CiAKLQlza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKGRl diwgY3N0YXRlLCBjb25maWcsIGFsbG9jLAotCQkJCQkgICAmbnVtX2FjdGl2ZSk7CisJc2tsX2Rk Yl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhkZXYsIGNzdGF0ZSwgYWxsb2MsICZudW1fYWN0 aXZlKTsKIAlhbGxvY19zaXplID0gc2tsX2RkYl9lbnRyeV9zaXplKGFsbG9jKTsKIAlpZiAoYWxs b2Nfc2l6ZSA9PSAwKSB7CiAJCW1lbXNldChkZGItPnBsYW5lW3BpcGVdLCAwLCBzaXplb2YoZGRi LT5wbGFuZVtwaXBlXSkpOwpAQCAtMzEzOSw1NSArMzA4MywzMSBAQCBza2xfYWxsb2NhdGVfcGlw ZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKIAlkZGItPnBsYW5lW3BpcGVd W1BMQU5FX0NVUlNPUl0uZW5kID0gYWxsb2MtPmVuZDsKIAogCWFsbG9jX3NpemUgLT0gY3Vyc29y X2Jsb2NrczsKLQlhbGxvYy0+ZW5kIC09IGN1cnNvcl9ibG9ja3M7CiAKIAkvKiAxLiBBbGxvY2F0 ZSB0aGUgbWluaW51bSByZXF1aXJlZCBibG9ja3MgZm9yIGVhY2ggYWN0aXZlIHBsYW5lICovCi0J LyoKLQkgKiBUT0RPOiBSZW1vdmUgc3VwcG9ydCBmb3IgYWxyZWFkeS1jb21taXR0ZWQgc3RhdGUg b25jZSB3ZQotCSAqIG9ubHkgYWxsb2NhdGUgRERCIG9uIGluLWZsaWdodCBzdGF0ZXMuCi0JICov Ci0JaWYgKHN0YXRlKSB7Ci0JCWZvcl9lYWNoX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwg cHN0YXRlLCBpKSB7Ci0JCQlpbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKLQkJ CWlkID0gc2tsX3dtX3BsYW5lX2lkKGludGVsX3BsYW5lKTsKLQotCQkJaWYgKGludGVsX3BsYW5l LT5waXBlICE9IHBpcGUpCi0JCQkJY29udGludWU7Ci0KLQkJCWlmICghdG9faW50ZWxfcGxhbmVf c3RhdGUocHN0YXRlKS0+dmlzaWJsZSkgewotCQkJCW1pbmltdW1baWRdID0gMDsKLQkJCQl5X21p bmltdW1baWRdID0gMDsKLQkJCQljb250aW51ZTsKLQkJCX0KLQkJCWlmIChwbGFuZS0+dHlwZSA9 PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpIHsKLQkJCQltaW5pbXVtW2lkXSA9IDA7Ci0JCQkJeV9t aW5pbXVtW2lkXSA9IDA7Ci0JCQkJY29udGludWU7Ci0JCQl9Ci0KLQkJCW1pbmltdW1baWRdID0g ODsKLQkJCWlmIChwc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyKQot CQkJCXlfbWluaW11bVtpZF0gPSA4OwotCQkJZWxzZQotCQkJCXlfbWluaW11bVtpZF0gPSAwOwot CQl9Ci0JfSBlbHNlIHsKLQkJbWVtc2V0KG1pbmltdW0sIDAsIHNpemVvZih1aW50MTZfdCkgKiBJ OTE1X01BWF9QTEFORVMpOwotCQltZW1zZXQoeV9taW5pbXVtLCAwLCBzaXplb2YodWludDE2X3Qp ICogSTkxNV9NQVhfUExBTkVTKTsKLQkJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YyhkZXYs IGludGVsX2NydGMsIGludGVsX3BsYW5lKSB7Ci0JCQlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9 ICZpbnRlbF9wbGFuZS0+YmFzZTsKLQkJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxh bmUtPnN0YXRlLT5mYjsKLQkJCWludCBpZCA9IHNrbF93bV9wbGFuZV9pZChpbnRlbF9wbGFuZSk7 Ci0KLQkJCWlmICghdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKS0+dmlzaWJsZSkK LQkJCQljb250aW51ZTsKKwlmb3JfZWFjaF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBz dGF0ZSwgaSkgeworCQlpbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKKwkJaWQg PSBza2xfd21fcGxhbmVfaWQoaW50ZWxfcGxhbmUpOwogCi0JCQlpZiAocGxhbmUtPnR5cGUgPT0g RFJNX1BMQU5FX1RZUEVfQ1VSU09SKQotCQkJCWNvbnRpbnVlOworCQlpZiAoaW50ZWxfcGxhbmUt PnBpcGUgIT0gcGlwZSkKKwkJCWNvbnRpbnVlOwogCi0JCQltaW5pbXVtW2lkXSA9IDg7Ci0JCQl5 X21pbmltdW1baWRdID0gKGZiLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyKSA/IDgg OiAwOworCQlpZiAoIXRvX2ludGVsX3BsYW5lX3N0YXRlKHBzdGF0ZSktPnZpc2libGUpIHsKKwkJ CW1pbmltdW1baWRdID0gMDsKKwkJCXlfbWluaW11bVtpZF0gPSAwOworCQkJY29udGludWU7CisJ CX0KKwkJaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikgeworCQkJbWlu aW11bVtpZF0gPSAwOworCQkJeV9taW5pbXVtW2lkXSA9IDA7CisJCQljb250aW51ZTsKIAkJfQor CisJCW1pbmltdW1baWRdID0gODsKKwkJaWYgKHBzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCA9PSBE Uk1fRk9STUFUX05WMTIpCisJCQl5X21pbmltdW1baWRdID0gODsKKwkJZWxzZQorCQkJeV9taW5p bXVtW2lkXSA9IDA7CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IFBMQU5FX0NVUlNPUjsgaSsrKSB7 CkBAIC0zNzM4LDcgKzM2NTgsNiBAQCBzdGF0aWMgYm9vbCBza2xfdXBkYXRlX3BpcGVfd20oc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlID0gdG9f aW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAKLQlXQVJOX09OKHNrbF9hbGxvY2F0ZV9w aXBlX2RkYihjc3RhdGUsIGRkYikgIT0gMCk7CiAJc2tsX2J1aWxkX3BpcGVfd20oY3N0YXRlLCBk ZGIsIHBpcGVfd20pOwogCiAJaWYgKCFtZW1jbXAoJmludGVsX2NydGMtPndtLmFjdGl2ZS5za2ws IHBpcGVfd20sIHNpemVvZigqcGlwZV93bSkpKQpAQCAtMzgwMiwxNiArMzcyMSw2IEBAIHN0YXRp YyB2b2lkIHNrbF9jbGVhcl93bShzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd2F0ZXJtYXJrcywgZW51 bSBwaXBlIHBpcGUpCiAJbWVtc2V0KHdhdGVybWFya3MtPnBsYW5lX3RyYW5zW3BpcGVdLAogCSAg ICAgICAwLCBzaXplb2YodWludDMyX3QpICogSTkxNV9NQVhfUExBTkVTKTsKIAl3YXRlcm1hcmtz LT5wbGFuZV90cmFuc1twaXBlXVtQTEFORV9DVVJTT1JdID0gMDsKLQotCS8qIENsZWFyIGRkYiBl bnRyaWVzIGZvciBwaXBlICovCi0JbWVtc2V0KCZ3YXRlcm1hcmtzLT5kZGIucGlwZVtwaXBlXSwg MCwgc2l6ZW9mKHN0cnVjdCBza2xfZGRiX2VudHJ5KSk7Ci0JbWVtc2V0KCZ3YXRlcm1hcmtzLT5k ZGIucGxhbmVbcGlwZV0sIDAsCi0JICAgICAgIHNpemVvZihzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSkg KiBJOTE1X01BWF9QTEFORVMpOwotCW1lbXNldCgmd2F0ZXJtYXJrcy0+ZGRiLnlfcGxhbmVbcGlw ZV0sIDAsCi0JICAgICAgIHNpemVvZihzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSkgKiBJOTE1X01BWF9Q TEFORVMpOwotCW1lbXNldCgmd2F0ZXJtYXJrcy0+ZGRiLnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNP Ul0sIDAsCi0JICAgICAgIHNpemVvZihzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSkpOwotCiB9CiAKIHN0 YXRpYyBpbnQKLS0gCjIuMS40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK