From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 1/7] drm/atomic: Add new iterators over all state Date: Tue, 10 Jan 2017 11:21:32 +0100 Message-ID: <1484043698-6703-2-git-send-email-maarten.lankhorst@linux.intel.com> References: <1484043698-6703-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1484043698-6703-1-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QWRkIGZvcl9lYWNoXyhvbGQpKG5ldylfKHBsYW5lLGNvbm5lY3RvcixjcnRjKV9pbl9zdGF0ZSBp dGVyYXRvcnMgdG8KcmVwbGFjZSB0aGUgb2xkIGZvcl9lYWNoX3h4eF9pbl9zdGF0ZSBvbmVzLiBU aGlzIGlzIHVzZWZ1bCBmb3IgPjEgZmxpcApkZXB0aCBhbmQgZ2V0dGluZyByaWQgb2YgYWxsIHh4 eC0+c3RhdGUgZGVyZWZlcmVuY2VzLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pYy5jICAgICAgICAgfCAgNiArKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jICB8IDUyICsrKysrKysrKysrKysrKysrKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxMSArKy0tLQogaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5o ICAgICAgICAgICAgIHwgODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBp bmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oICAgICAgfCAgMyArKwogNSBmaWxlcyBjaGFu Z2VkLCAxNDIgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMK aW5kZXggNjQxNGJjZjdmNDFiLi4xYzFjYmY0MzY3MTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAt Mjc1LDYgKzI3NSw4IEBAIGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlLAogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCXN0YXRlLT5j cnRjc1tpbmRleF0uc3RhdGUgPSBjcnRjX3N0YXRlOworCXN0YXRlLT5jcnRjc1tpbmRleF0ub2xk X3N0YXRlID0gY3J0Yy0+c3RhdGU7CisJc3RhdGUtPmNydGNzW2luZGV4XS5uZXdfc3RhdGUgPSBj cnRjX3N0YXRlOwogCXN0YXRlLT5jcnRjc1tpbmRleF0ucHRyID0gY3J0YzsKIAljcnRjX3N0YXRl LT5zdGF0ZSA9IHN0YXRlOwogCkBAIC02OTEsNiArNjkzLDggQEAgZHJtX2F0b21pY19nZXRfcGxh bmVfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCiAJc3RhdGUtPnBsYW5l c1tpbmRleF0uc3RhdGUgPSBwbGFuZV9zdGF0ZTsKIAlzdGF0ZS0+cGxhbmVzW2luZGV4XS5wdHIg PSBwbGFuZTsKKwlzdGF0ZS0+cGxhbmVzW2luZGV4XS5vbGRfc3RhdGUgPSBwbGFuZS0+c3RhdGU7 CisJc3RhdGUtPnBsYW5lc1tpbmRleF0ubmV3X3N0YXRlID0gcGxhbmVfc3RhdGU7CiAJcGxhbmVf c3RhdGUtPnN0YXRlID0gc3RhdGU7CiAKIAlEUk1fREVCVUdfQVRPTUlDKCJBZGRlZCBbUExBTkU6 JWQ6JXNdICVwIHN0YXRlIHRvICVwXG4iLApAQCAtMTAzMSw2ICsxMDM1LDggQEAgZHJtX2F0b21p Y19nZXRfY29ubmVjdG9yX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAog CWRybV9jb25uZWN0b3JfcmVmZXJlbmNlKGNvbm5lY3Rvcik7CiAJc3RhdGUtPmNvbm5lY3RvcnNb aW5kZXhdLnN0YXRlID0gY29ubmVjdG9yX3N0YXRlOworCXN0YXRlLT5jb25uZWN0b3JzW2luZGV4 XS5vbGRfc3RhdGUgPSBjb25uZWN0b3ItPnN0YXRlOworCXN0YXRlLT5jb25uZWN0b3JzW2luZGV4 XS5uZXdfc3RhdGUgPSBjb25uZWN0b3Jfc3RhdGU7CiAJc3RhdGUtPmNvbm5lY3RvcnNbaW5kZXhd LnB0ciA9IGNvbm5lY3RvcjsKIAljb25uZWN0b3Jfc3RhdGUtPnN0YXRlID0gc3RhdGU7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggN2I3MWFjNDhiOGE0Li5jNDY4MTk0OTM0 YTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC0yNDcxLDcgKzI0NzEsNyBA QCBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfYWxsKTsKICAqCiAgKiBT ZWUgYWxzbzoKICAqIGRybV9hdG9taWNfaGVscGVyX2R1cGxpY2F0ZV9zdGF0ZSgpLCBkcm1fYXRv bWljX2hlbHBlcl9kaXNhYmxlX2FsbCgpLAotICogZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKCkK KyAqIGRybV9hdG9taWNfaGVscGVyX3Jlc3VtZSgpLCBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRf ZHVwbGljYXRlZF9zdGF0ZSgpCiAgKi8KIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpkcm1fYXRv bWljX2hlbHBlcl9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CkBAIC0yNTEyLDYg KzI1MTIsNTIgQEAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKmRybV9hdG9taWNfaGVscGVyX3N1 c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19o ZWxwZXJfc3VzcGVuZCk7CiAKIC8qKgorICogZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2R1cGxp Y2F0ZWRfc3RhdGUgLSBjb21taXQgZHVwbGljYXRlZCBzdGF0ZQorICogQHN0YXRlOiBkdXBsaWNh dGVkIGF0b21pYyBzdGF0ZSB0byBjb21taXQKKyAqIEBjdHg6IHBvaW50ZXIgdG8gYWNxdWlyZV9j dHggdG8gdXNlIGZvciBjb21taXQuCisgKiBAbm9uYmxvY2s6IGNvbW1pdCB0aGUgc3RhdGUgbm9u LWJsb2NraW5nLgorICoKKyAqIFRoZSBzdGF0ZSByZXR1cm5lZCBieSBkcm1fYXRvbWljX2hlbHBl cl9kdXBsaWNhdGVfc3RhdGUoKSBhbmQKKyAqIGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoKSBp cyBwYXJ0aWFsbHkgaW52YWxpZCwgYW5kIG5lZWRzIHRvCisgKiBiZSBmaXhlZCB1cCBiZWZvcmUg Y29tbWl0LgorICoKKyAqIFJldHVybnM6CisgKiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBl cnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKgorICogU2VlIGFsc286CisgKiBkcm1fYXRvbWljX2hl bHBlcl9zdXNwZW5kKCkKKyAqLworaW50IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9kdXBsaWNh dGVkX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkJICAgICAgc3Ry dWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgsCisJCQkJCSAgICAgIGJvb2wgbm9uYmxv Y2spCit7CisJaW50IGk7CisJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CisJc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKKwlzdHJ1Y3QgZHJt X2NydGMgKmNydGM7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCisJc3Rh dGUtPmFjcXVpcmVfY3R4ID0gY3R4OworCisJZm9yX2VhY2hfbmV3X3BsYW5lX2luX3N0YXRlKHN0 YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIGkpCisJCXN0YXRlLT5wbGFuZXNbaV0ub2xkX3N0YXRl ID0gcGxhbmUtPnN0YXRlOworCisJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNy dGMsIGNydGNfc3RhdGUsIGkpCisJCXN0YXRlLT5jcnRjc1tpXS5vbGRfc3RhdGUgPSBjcnRjLT5z dGF0ZTsKKworCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3Rv ciwgY29ubl9zdGF0ZSwgaSkKKwkJc3RhdGUtPmNvbm5lY3RvcnNbaV0ub2xkX3N0YXRlID0gY29u bmVjdG9yLT5zdGF0ZTsKKworCWlmIChub25ibG9jaykKKwkJcmV0dXJuIGRybV9hdG9taWNfbm9u YmxvY2tpbmdfY29tbWl0KHN0YXRlKTsKKwllbHNlCisJCXJldHVybiBkcm1fYXRvbWljX2NvbW1p dChzdGF0ZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9kdXBs aWNhdGVkX3N0YXRlKTsKKworLyoqCiAgKiBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUgLSBzdWJz eXN0ZW0tbGV2ZWwgcmVzdW1lIGhlbHBlcgogICogQGRldjogRFJNIGRldmljZQogICogQHN0YXRl OiBhdG9taWMgc3RhdGUgdG8gcmVzdW1lIHRvCkBAIC0yNTM0LDkgKzI1ODAsOSBAQCBpbnQgZHJt X2F0b21pY19oZWxwZXJfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaW50IGVycjsK IAogCWRybV9tb2RlX2NvbmZpZ19yZXNldChkZXYpOworCiAJZHJtX21vZGVzZXRfbG9ja19hbGwo ZGV2KTsKLQlzdGF0ZS0+YWNxdWlyZV9jdHggPSBjb25maWctPmFjcXVpcmVfY3R4OwotCWVyciA9 IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKKwllcnIgPSBkcm1fYXRvbWljX2hlbHBlcl9jb21t aXRfZHVwbGljYXRlZF9zdGF0ZShzdGF0ZSwgY29uZmlnLT5hY3F1aXJlX2N0eCwgZmFsc2UpOwog CWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKIAogCXJldHVybiBlcnI7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggZTIxNTBhNjQ4NjBjLi4wYzE0OTlmMTgwNDEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTM0ODksNyArMzQ4OSw4IEBAIHN0 YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9wcmltYXJ5X3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCiBzdGF0aWMgaW50CiBfX2ludGVsX2Rpc3BsYXlfcmVzdW1lKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCi0JCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCisJCSAg ICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCSAgICAgICBzdHJ1Y3QgZHJt X21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkKIHsKIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGU7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwpAQCAtMzUxMyw3ICszNTE0LDcgQEAg X19pbnRlbF9kaXNwbGF5X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCS8qIGlnbm9y ZSBhbnkgcmVzZXQgdmFsdWVzL0JJT1MgbGVmdG92ZXJzIGluIHRoZSBXTSByZWdpc3RlcnMgKi8K IAl0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT5za2lwX2ludGVybWVkaWF0ZV93bSA9IHRy dWU7CiAKLQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7CisJcmV0ID0gZHJtX2F0b21p Y19oZWxwZXJfY29tbWl0X2R1cGxpY2F0ZWRfc3RhdGUoc3RhdGUsIGN0eCwgZmFsc2UpOwogCiAJ V0FSTl9PTihyZXQgPT0gLUVERUFETEspOwogCXJldHVybiByZXQ7CkBAIC0zNjA3LDcgKzM2MDgs NyBAQCB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAJCQkgKi8KIAkJCWludGVsX3VwZGF0ZV9wcmltYXJ5X3BsYW5lcyhkZXYpOwogCQl9 IGVsc2UgewotCQkJcmV0ID0gX19pbnRlbF9kaXNwbGF5X3Jlc3VtZShkZXYsIHN0YXRlKTsKKwkJ CXJldCA9IF9faW50ZWxfZGlzcGxheV9yZXN1bWUoZGV2LCBzdGF0ZSwgY3R4KTsKIAkJCWlmIChy ZXQpCiAJCQkJRFJNX0VSUk9SKCJSZXN0b3Jpbmcgb2xkIHN0YXRlIGZhaWxlZCB3aXRoICVpXG4i LCByZXQpOwogCQl9CkBAIC0zNjI3LDcgKzM2MjgsNyBAQCB2b2lkIGludGVsX2ZpbmlzaF9yZXNl dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQlkZXZfcHJpdi0+ZGlzcGxh eS5ocGRfaXJxX3NldHVwKGRldl9wcml2KTsKIAkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+ aXJxX2xvY2spOwogCi0JCXJldCA9IF9faW50ZWxfZGlzcGxheV9yZXN1bWUoZGV2LCBzdGF0ZSk7 CisJCXJldCA9IF9faW50ZWxfZGlzcGxheV9yZXN1bWUoZGV2LCBzdGF0ZSwgY3R4KTsKIAkJaWYg KHJldCkKIAkJCURSTV9FUlJPUigiUmVzdG9yaW5nIG9sZCBzdGF0ZSBmYWlsZWQgd2l0aCAlaVxu IiwgcmV0KTsKIApAQCAtMTcyMTAsNyArMTcyMTEsNyBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcmVz dW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJfQogCiAJaWYgKCFyZXQpCi0JCXJldCA9IF9f aW50ZWxfZGlzcGxheV9yZXN1bWUoZGV2LCBzdGF0ZSk7CisJCXJldCA9IF9faW50ZWxfZGlzcGxh eV9yZXN1bWUoZGV2LCBzdGF0ZSwgJmN0eCk7CiAKIAlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZj dHgpOwogCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9hdG9taWMuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaAppbmRleCBmOTYy MjBlZDQwMDQuLjYwNjJlN2YyNzMyNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21p Yy5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaApAQCAtMTM3LDEyICsxMzcsMTIgQEAg c3RydWN0IGRybV9jcnRjX2NvbW1pdCB7CiAKIHN0cnVjdCBfX2RybV9wbGFuZXNfc3RhdGUgewog CXN0cnVjdCBkcm1fcGxhbmUgKnB0cjsKLQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZTsK KwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwgKm9sZF9zdGF0ZSwgKm5ld19zdGF0ZTsK IH07CiAKIHN0cnVjdCBfX2RybV9jcnRjc19zdGF0ZSB7CiAJc3RydWN0IGRybV9jcnRjICpwdHI7 Ci0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZTsKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KnN0YXRlLCAqb2xkX3N0YXRlLCAqbmV3X3N0YXRlOwogCXN0cnVjdCBkcm1fY3J0Y19jb21taXQg KmNvbW1pdDsKIAlzNjQgX191c2VyICpvdXRfZmVuY2VfcHRyOwogCXVuc2lnbmVkIGxhc3RfdmJs YW5rX2NvdW50OwpAQCAtMTUwLDcgKzE1MCw3IEBAIHN0cnVjdCBfX2RybV9jcnRjc19zdGF0ZSB7 CiAKIHN0cnVjdCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSB7CiAJc3RydWN0IGRybV9jb25uZWN0 b3IgKnB0cjsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGU7CisJc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlLCAqb2xkX3N0YXRlLCAqbmV3X3N0YXRlOwogfTsKIAog LyoqCkBAIC0zOTcsNiArMzk3LDMxIEBAIHZvaWQgZHJtX3N0YXRlX2R1bXAoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc3RydWN0IGRybV9wcmludGVyICpwKTsKIAkgICAgIChfX2kpKyspCQkJCQkJ CVwKIAkJZm9yX2VhY2hfaWYgKGNvbm5lY3RvcikKIAorI2RlZmluZSBmb3JfZWFjaF9vbGRuZXdf Y29ubmVjdG9yX2luX3N0YXRlKF9fc3RhdGUsIGNvbm5lY3Rvciwgb2xkX2Nvbm5lY3Rvcl9zdGF0 ZSwgbmV3X2Nvbm5lY3Rvcl9zdGF0ZSwgX19pKSBcCisJZm9yICgoX19pKSA9IDA7CQkJCQkJCQlc CisJICAgICAoX19pKSA8IChfX3N0YXRlKS0+bnVtX2Nvbm5lY3RvciAmJgkJCQlcCisJICAgICAo KGNvbm5lY3RvcikgPSAoX19zdGF0ZSktPmNvbm5lY3RvcnNbX19pXS5wdHIsCQkJXAorCSAgICAg KG9sZF9jb25uZWN0b3Jfc3RhdGUpID0gKF9fc3RhdGUpLT5jb25uZWN0b3JzW19faV0ub2xkX3N0 YXRlLAlcCisJICAgICAobmV3X2Nvbm5lY3Rvcl9zdGF0ZSkgPSAoX19zdGF0ZSktPmNvbm5lY3Rv cnNbX19pXS5uZXdfc3RhdGUsIDEpOyAJXAorCSAgICAgKF9faSkrKykJCQkJCQkJXAorCQlmb3Jf ZWFjaF9pZiAoY29ubmVjdG9yKQorCisjZGVmaW5lIGZvcl9lYWNoX29sZF9jb25uZWN0b3JfaW5f c3RhdGUoX19zdGF0ZSwgY29ubmVjdG9yLCBvbGRfY29ubmVjdG9yX3N0YXRlLCBfX2kpIFwKKwlm b3IgKChfX2kpID0gMDsJCQkJCQkJCVwKKwkgICAgIChfX2kpIDwgKF9fc3RhdGUpLT5udW1fY29u bmVjdG9yICYmCQkJCVwKKwkgICAgICgoY29ubmVjdG9yKSA9IChfX3N0YXRlKS0+Y29ubmVjdG9y c1tfX2ldLnB0ciwJCQlcCisJICAgICAob2xkX2Nvbm5lY3Rvcl9zdGF0ZSkgPSAoX19zdGF0ZSkt PmNvbm5lY3RvcnNbX19pXS5vbGRfc3RhdGUsIDEpOyAJXAorCSAgICAgKF9faSkrKykJCQkJCQkJ XAorCQlmb3JfZWFjaF9pZiAoY29ubmVjdG9yKQorCisjZGVmaW5lIGZvcl9lYWNoX25ld19jb25u ZWN0b3JfaW5fc3RhdGUoX19zdGF0ZSwgY29ubmVjdG9yLCBuZXdfY29ubmVjdG9yX3N0YXRlLCBf X2kpIFwKKwlmb3IgKChfX2kpID0gMDsJCQkJCQkJCVwKKwkgICAgIChfX2kpIDwgKF9fc3RhdGUp LT5udW1fY29ubmVjdG9yICYmCQkJCVwKKwkgICAgICgoY29ubmVjdG9yKSA9IChfX3N0YXRlKS0+ Y29ubmVjdG9yc1tfX2ldLnB0ciwJCQlcCisJICAgICAobmV3X2Nvbm5lY3Rvcl9zdGF0ZSkgPSAo X19zdGF0ZSktPmNvbm5lY3RvcnNbX19pXS5uZXdfc3RhdGUsIDEpOyAJXAorCSAgICAgKF9faSkr KykJCQkJCQkJXAorCQlmb3JfZWFjaF9pZiAoY29ubmVjdG9yKQorCiAjZGVmaW5lIGZvcl9lYWNo X2NydGNfaW5fc3RhdGUoX19zdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgX19pKQlcCiAJZm9yICgo X19pKSA9IDA7CQkJCQkJXAogCSAgICAgKF9faSkgPCAoX19zdGF0ZSktPmRldi0+bW9kZV9jb25m aWcubnVtX2NydGMgJiYJXApAQCAtNDA1LDYgKzQzMCwzMSBAQCB2b2lkIGRybV9zdGF0ZV9kdW1w KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fcHJpbnRlciAqcCk7CiAJICAgICAo X19pKSsrKQkJCQkJCVwKIAkJZm9yX2VhY2hfaWYgKGNydGNfc3RhdGUpCiAKKyNkZWZpbmUgZm9y X2VhY2hfb2xkbmV3X2NydGNfaW5fc3RhdGUoX19zdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUs IG5ld19jcnRjX3N0YXRlLCBfX2kpIFwKKwlmb3IgKChfX2kpID0gMDsJCQkJCQkJXAorCSAgICAg KF9faSkgPCAoX19zdGF0ZSktPmRldi0+bW9kZV9jb25maWcubnVtX2NydGMgJiYJCVwKKwkgICAg ICgoY3J0YykgPSAoX19zdGF0ZSktPmNydGNzW19faV0ucHRyLAkJCVwKKwkgICAgIChvbGRfY3J0 Y19zdGF0ZSkgPSAoX19zdGF0ZSktPmNydGNzW19faV0ub2xkX3N0YXRlLAlcCisJICAgICAobmV3 X2NydGNfc3RhdGUpID0gKF9fc3RhdGUpLT5jcnRjc1tfX2ldLm5ld19zdGF0ZSwgMSk7CVwKKwkg ICAgIChfX2kpKyspCQkJCQkJCVwKKwkJZm9yX2VhY2hfaWYgKGNydGMpCisKKyNkZWZpbmUgZm9y X2VhY2hfb2xkX2NydGNfaW5fc3RhdGUoX19zdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIF9f aSkJXAorCWZvciAoKF9faSkgPSAwOwkJCQkJCQlcCisJICAgICAoX19pKSA8IChfX3N0YXRlKS0+ ZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YyAmJgkJXAorCSAgICAgKChjcnRjKSA9IChfX3N0YXRl KS0+Y3J0Y3NbX19pXS5wdHIsCQkJXAorCSAgICAgKG9sZF9jcnRjX3N0YXRlKSA9IChfX3N0YXRl KS0+Y3J0Y3NbX19pXS5vbGRfc3RhdGUsIDEpOwlcCisJICAgICAoX19pKSsrKQkJCQkJCQlcCisJ CWZvcl9lYWNoX2lmIChjcnRjKQorCisjZGVmaW5lIGZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRl KF9fc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBfX2kpCVwKKwlmb3IgKChfX2kpID0gMDsJ CQkJCQkJXAorCSAgICAgKF9faSkgPCAoX19zdGF0ZSktPmRldi0+bW9kZV9jb25maWcubnVtX2Ny dGMgJiYJCVwKKwkgICAgICgoY3J0YykgPSAoX19zdGF0ZSktPmNydGNzW19faV0ucHRyLAkJCVwK KwkgICAgIChuZXdfY3J0Y19zdGF0ZSkgPSAoX19zdGF0ZSktPmNydGNzW19faV0ubmV3X3N0YXRl LCAxKTsJXAorCSAgICAgKF9faSkrKykJCQkJCQkJXAorCQlmb3JfZWFjaF9pZiAoY3J0YykKKwog I2RlZmluZSBmb3JfZWFjaF9wbGFuZV9pbl9zdGF0ZShfX3N0YXRlLCBwbGFuZSwgcGxhbmVfc3Rh dGUsIF9faSkJCVwKIAlmb3IgKChfX2kpID0gMDsJCQkJCQkJXAogCSAgICAgKF9faSkgPCAoX19z dGF0ZSktPmRldi0+bW9kZV9jb25maWcubnVtX3RvdGFsX3BsYW5lICYmCVwKQEAgLTQxMyw2ICs0 NjMsMzEgQEAgdm9pZCBkcm1fc3RhdGVfZHVtcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1 Y3QgZHJtX3ByaW50ZXIgKnApOwogCSAgICAgKF9faSkrKykJCQkJCQkJXAogCQlmb3JfZWFjaF9p ZiAocGxhbmVfc3RhdGUpCiAKKyNkZWZpbmUgZm9yX2VhY2hfb2xkbmV3X3BsYW5lX2luX3N0YXRl KF9fc3RhdGUsIHBsYW5lLCBvbGRfcGxhbmVfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSwgX19pKSBc CisJZm9yICgoX19pKSA9IDA7CQkJCQkJCVwKKwkgICAgIChfX2kpIDwgKF9fc3RhdGUpLT5kZXYt Pm1vZGVfY29uZmlnLm51bV90b3RhbF9wbGFuZSAmJglcCisJICAgICAoKHBsYW5lKSA9IChfX3N0 YXRlKS0+cGxhbmVzW19faV0ucHRyLAkJCVwKKwkgICAgIChvbGRfcGxhbmVfc3RhdGUpID0gKF9f c3RhdGUpLT5wbGFuZXNbX19pXS5vbGRfc3RhdGUsCVwKKwkgICAgIChuZXdfcGxhbmVfc3RhdGUp ID0gKF9fc3RhdGUpLT5wbGFuZXNbX19pXS5uZXdfc3RhdGUsIDEpOwlcCisJICAgICAoX19pKSsr KQkJCQkJCQlcCisJCWZvcl9lYWNoX2lmIChwbGFuZSkKKworI2RlZmluZSBmb3JfZWFjaF9vbGRf cGxhbmVfaW5fc3RhdGUoX19zdGF0ZSwgcGxhbmUsIG9sZF9wbGFuZV9zdGF0ZSwgX19pKSBcCisJ Zm9yICgoX19pKSA9IDA7CQkJCQkJCVwKKwkgICAgIChfX2kpIDwgKF9fc3RhdGUpLT5kZXYtPm1v ZGVfY29uZmlnLm51bV90b3RhbF9wbGFuZSAmJglcCisJICAgICAoKHBsYW5lKSA9IChfX3N0YXRl KS0+cGxhbmVzW19faV0ucHRyLAkJCVwKKwkgICAgIChvbGRfcGxhbmVfc3RhdGUpID0gKF9fc3Rh dGUpLT5wbGFuZXNbX19pXS5vbGRfc3RhdGUsIDEpOwlcCisJICAgICAoX19pKSsrKQkJCQkJCQlc CisJCWZvcl9lYWNoX2lmIChwbGFuZSkKKworI2RlZmluZSBmb3JfZWFjaF9uZXdfcGxhbmVfaW5f c3RhdGUoX19zdGF0ZSwgcGxhbmUsIG5ld19wbGFuZV9zdGF0ZSwgX19pKSBcCisJZm9yICgoX19p KSA9IDA7CQkJCQkJCVwKKwkgICAgIChfX2kpIDwgKF9fc3RhdGUpLT5kZXYtPm1vZGVfY29uZmln Lm51bV90b3RhbF9wbGFuZSAmJglcCisJICAgICAoKHBsYW5lKSA9IChfX3N0YXRlKS0+cGxhbmVz W19faV0ucHRyLAkJCVwKKwkgICAgIChuZXdfcGxhbmVfc3RhdGUpID0gKF9fc3RhdGUpLT5wbGFu ZXNbX19pXS5uZXdfc3RhdGUsIDEpOwlcCisJICAgICAoX19pKSsrKQkJCQkJCQlcCisJCWZvcl9l YWNoX2lmIChwbGFuZSkKKwogLyoqCiAgKiBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCAt IGNvbXB1dGUgY29tYmluZWQgbW9kZXNldCBuZWVkCiAgKiBAc3RhdGU6ICZkcm1fY3J0Y19zdGF0 ZSBmb3IgdGhlIENSVEMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVy LmggYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCmluZGV4IDRiMjM1M2RjMzRiYS4u YzZhOTQzNjU5OGY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5o CisrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKQEAgLTEwNSw2ICsxMDUsOSBA QCBpbnQgX19kcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQg KnNldCwKIGludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCQkJCSAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwogc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKmRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoc3RydWN0IGRy bV9kZXZpY2UgKmRldik7CitpbnQgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2R1cGxpY2F0ZWRf c3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCQkgICAgICBzdHJ1Y3Qg ZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCwKKwkJCQkJICAgICAgYm9vbCBub25ibG9jayk7 CiBpbnQgZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CQkgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiAKLS0gCjIuNy40CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK