From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH 15/35] drm/i915: Remove all *_pipes flags from modeset Date: Tue, 21 Apr 2015 17:13:04 +0300 Message-ID: <1429625604-22252-16-git-send-email-ander.conselvan.de.oliveira@intel.com> References: <1429625604-22252-1-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 1CD796E5D8 for ; Tue, 21 Apr 2015 07:13:54 -0700 (PDT) In-Reply-To: <1429625604-22252-1-git-send-email-ander.conselvan.de.oliveira@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 Cc: Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org U2V0IHRoZSBtb2RlX2NoYW5nZWQgZmllbGQgb24gdGhlIGNydGNfc3RhdGVzIGFuZCB1c2UgdGhh dCBpbnN0ZWFkLgoKTm90ZSB0aGF0IGV2ZW4gdGhvdWdoIHRoaXMgcGF0Y2ggZG9lc24ndCBjb21w bGV0ZWx5IHJlcGxhY2UgdGhlIGxvZ2ljIGluCmludGVsX21vZGVzZXRfYWZmZWN0ZWRfcGlwZXMo KSwgdGhhdCBsb2dpYyB3YXMgbmV2ZXIgZnVsbHkgdXNlZCB0byBpdHMKZnVsbCBleHRlbnQuIFNp bmNlIHRoZSBjb21taXQgbWVudGlvbmVkIGJlbG93LCBtb2Rlc2V0X3BpcGVzIGFuZApwcmVwYXJl X3BpcGVzIHdvdWxkIG9ubHkgY29udGFpbiBhdCBtb3N0IHRoZSBwaXBlIGZvciB3aGljaCB0aGUg c2V0X2NydGMKaW9jdGwgd2FzIGNhbGxlZC4gV2UgY2FuIGdyb3cgYmFjayB0aGF0IGxvZ2ljIHdo ZW4gdGhlIHRpbWUgY29tZXMuCgpjb21taXQgYjZjNTE2NGQ3YmY2MjRmM2UxYjc1MDc4N2RkYjk4 MzE1MGM1MTE3YwpBdXRob3I6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+ CkRhdGU6ICAgRnJpIEFwciAxMiAxODo0ODo0MyAyMDEzICswMjAwCgogICAgZHJtL2k5MTU6IEZp eHVwIE9vcHMgaW4gdGhlIHBpcGUgY29uZmlnIGNvbXB1dGF0aW9uCgp2MjogRG9uJ3Qgc2V0IG1v ZGVfY2hhbmdlZCB1bmNvbmRpdGlvbmFsbHkgZm9yIG1vZGVzZXRfY3J0Yy4gKEFuZGVyKQogICAg Q2hlY2sgZm9yIG5lZWRzX21vZGVzZXQoKSBiZWZvcmUgdHJ5aW5nIHRvIGFsbG9jYXRlIGEgUExM LiAoQW5kZXIpCiAgICBPbmx5IGNhbGwgLmNydGNfZW5hYmxlKCkgZm9yIHBpcGVzIHRoYXQgd2Vy ZSBkaXNhYmxlZC4gKE1hYXJ0ZW4pCgpTaWduZWQtb2ZmLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUg T2xpdmVpcmEgPGFuZGVyLmNvbnNlbHZhbi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMzExICsrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMyIGluc2VydGlvbnMoKyksIDE3 OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggYjA3 NTVlYi4uZGM2MDRjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNTY2 NCwxMyArNTY2NCwxMyBAQCBzdGF0aWMgaW50IGludGVsX21vZGVfbWF4X3BpeGNsayhzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJcmV0dXJuIG1heF9waXhjbGs7CiB9CiAKLXN0YXRp YyBpbnQgdmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9waXBlcyhzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUsCi0JCQkJCSAgICB1bnNpZ25lZCAqcHJlcGFyZV9waXBlcykKK3N0YXRpYyBp bnQgdmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9waXBlcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShzdGF0ZS0+ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKKwlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGM7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwogCWlu dCBtYXhfcGl4Y2xrID0gaW50ZWxfbW9kZV9tYXhfcGl4Y2xrKHN0YXRlKTsKLQlpbnQgY2RjbGs7 CisJaW50IGNkY2xrLCBpOwogCiAJaWYgKG1heF9waXhjbGsgPCAwKQogCQlyZXR1cm4gbWF4X3Bp eGNsazsKQEAgLTU2ODMsMTAgKzU2ODMsMjAgQEAgc3RhdGljIGludCB2YWxsZXl2aWV3X21vZGVz ZXRfZ2xvYmFsX3BpcGVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlpZiAoY2Rj bGsgPT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEpCiAJCXJldHVybiAwOwogCisJLyogYWRkIGFsbCBh Y3RpdmUgcGlwZXMgdG8gdGhlIHN0YXRlICovCisJZm9yX2VhY2hfY3J0YyhzdGF0ZS0+ZGV2LCBj cnRjKSB7CisJCWlmICghY3J0Yy0+c3RhdGUtPmVuYWJsZSkKKwkJCWNvbnRpbnVlOworCisJCWNy dGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwkJaWYg KElTX0VSUihjcnRjX3N0YXRlKSkKKwkJCXJldHVybiBQVFJfRVJSKGNydGNfc3RhdGUpOworCX0K KwogCS8qIGRpc2FibGUvZW5hYmxlIGFsbCBjdXJyZW50bHkgYWN0aXZlIHBpcGVzIHdoaWxlIHdl IGNoYW5nZSBjZGNsayAqLwotCWZvcl9lYWNoX2ludGVsX2NydGMoc3RhdGUtPmRldiwgaW50ZWxf Y3J0YykKLQkJaWYgKGludGVsX2NydGMtPmJhc2Uuc3RhdGUtPmVuYWJsZSkKLQkJCSpwcmVwYXJl X3BpcGVzIHw9ICgxIDw8IGludGVsX2NydGMtPnBpcGUpOworCWZvcl9lYWNoX2NydGNfaW5fc3Rh dGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpCisJCWlmIChjcnRjX3N0YXRlLT5lbmFibGUp CisJCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwogCiAJcmV0dXJuIDA7CiB9CkBA IC0xMTQzNCw5NCArMTE0NDQsNiBAQCBmYWlsOgogCXJldHVybiByZXQ7CiB9CiAKLS8qIENvbXB1 dGVzIHdoaWNoIGNydGNzIGFyZSBhZmZlY3RlZCBhbmQgc2V0cyB0aGUgcmVsZXZhbnQgYml0cyBp biB0aGUgbWFzay4gRm9yCi0gKiBzaW1wbGljaXR5IHdlIHVzZSB0aGUgY3J0YydzIHBpcGUgbnVt YmVyIChiZWNhdXNlIGl0J3MgZWFzaWVyIHRvIG9idGFpbikuICovCi1zdGF0aWMgdm9pZAotaW50 ZWxfbW9kZXNldF9hZmZlY3RlZF9waXBlcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHVuc2lnbmVk ICptb2Rlc2V0X3BpcGVzLAotCQkJICAgICB1bnNpZ25lZCAqcHJlcGFyZV9waXBlcywgdW5zaWdu ZWQgKmRpc2FibGVfcGlwZXMpCi17Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7Ci0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKLQlzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcjsKLQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Ci0Jc3RydWN0 IGRybV9jcnRjICp0bXBfY3J0YzsKLQotCSpkaXNhYmxlX3BpcGVzID0gKm1vZGVzZXRfcGlwZXMg PSAqcHJlcGFyZV9waXBlcyA9IDA7Ci0KLQkvKiBDaGVjayB3aGljaCBjcnRjcyBoYXZlIGNoYW5n ZWQgb3V0cHV0cyBjb25uZWN0ZWQgdG8gdGhlbSwgdGhlc2UgbmVlZAotCSAqIHRvIGJlIHBhcnQg b2YgdGhlIHByZXBhcmVfcGlwZXMgbWFzay4gV2UgZG9uJ3QgKHlldCkgc3VwcG9ydCBnbG9iYWwK LQkgKiBtb2Rlc2V0IGFjcm9zcyBtdWx0aXBsZSBjcnRjcywgc28gbW9kZXNldF9waXBlcyB3aWxs IG9ubHkgaGF2ZSBvbmUKLQkgKiBiaXQgc2V0IGF0IG1vc3QuICovCi0JZm9yX2VhY2hfaW50ZWxf Y29ubmVjdG9yKGRldiwgY29ubmVjdG9yKSB7Ci0JCWlmIChjb25uZWN0b3ItPmJhc2UuZW5jb2Rl ciA9PSAmY29ubmVjdG9yLT5uZXdfZW5jb2Rlci0+YmFzZSkKLQkJCWNvbnRpbnVlOwotCi0JCWlm IChjb25uZWN0b3ItPmJhc2UuZW5jb2RlcikgewotCQkJdG1wX2NydGMgPSBjb25uZWN0b3ItPmJh c2UuZW5jb2Rlci0+Y3J0YzsKLQotCQkJKnByZXBhcmVfcGlwZXMgfD0gMSA8PCB0b19pbnRlbF9j cnRjKHRtcF9jcnRjKS0+cGlwZTsKLQkJfQotCi0JCWlmIChjb25uZWN0b3ItPm5ld19lbmNvZGVy KQotCQkJKnByZXBhcmVfcGlwZXMgfD0KLQkJCQkxIDw8IGNvbm5lY3Rvci0+bmV3X2VuY29kZXIt Pm5ld19jcnRjLT5waXBlOwotCX0KLQotCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBlbmNv ZGVyKSB7Ci0JCWlmIChlbmNvZGVyLT5iYXNlLmNydGMgPT0gJmVuY29kZXItPm5ld19jcnRjLT5i YXNlKQotCQkJY29udGludWU7Ci0KLQkJaWYgKGVuY29kZXItPmJhc2UuY3J0YykgewotCQkJdG1w X2NydGMgPSBlbmNvZGVyLT5iYXNlLmNydGM7Ci0KLQkJCSpwcmVwYXJlX3BpcGVzIHw9IDEgPDwg dG9faW50ZWxfY3J0Yyh0bXBfY3J0YyktPnBpcGU7Ci0JCX0KLQotCQlpZiAoZW5jb2Rlci0+bmV3 X2NydGMpCi0JCQkqcHJlcGFyZV9waXBlcyB8PSAxIDw8IGVuY29kZXItPm5ld19jcnRjLT5waXBl OwotCX0KLQotCS8qIENoZWNrIGZvciBwaXBlcyB0aGF0IHdpbGwgYmUgZW5hYmxlZC9kaXNhYmxl ZCAuLi4gKi8KLQlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgaW50ZWxfY3J0YykgewotCQlpZiAo aW50ZWxfY3J0Yy0+YmFzZS5zdGF0ZS0+ZW5hYmxlID09IGludGVsX2NydGMtPm5ld19lbmFibGVk KQotCQkJY29udGludWU7Ci0KLQkJaWYgKCFpbnRlbF9jcnRjLT5uZXdfZW5hYmxlZCkKLQkJCSpk aXNhYmxlX3BpcGVzIHw9IDEgPDwgaW50ZWxfY3J0Yy0+cGlwZTsKLQkJZWxzZQotCQkJKnByZXBh cmVfcGlwZXMgfD0gMSA8PCBpbnRlbF9jcnRjLT5waXBlOwotCX0KLQotCi0JLyogc2V0X21vZGUg aXMgYWxzbyB1c2VkIHRvIHVwZGF0ZSBwcm9wZXJ0aWVzIG9uIGxpZmUgZGlzcGxheSBwaXBlcy4g Ki8KLQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQlpZiAoaW50ZWxfY3J0Yy0+ bmV3X2VuYWJsZWQpCi0JCSpwcmVwYXJlX3BpcGVzIHw9IDEgPDwgaW50ZWxfY3J0Yy0+cGlwZTsK LQotCS8qCi0JICogRm9yIHNpbXBsaWNpdHkgZG8gYSBmdWxsIG1vZGVzZXQgb24gYW55IHBpcGUg d2hlcmUgdGhlIG91dHB1dCByb3V0aW5nCi0JICogY2hhbmdlZC4gV2UgY291bGQgYmUgbW9yZSBj bGV2ZXIsIGJ1dCB0aGF0IHdvdWxkIHJlcXVpcmUgdXMgdG8gYmUKLQkgKiBtb3JlIGNhcmVmdWwg d2l0aCBjYWxsaW5nIHRoZSByZWxldmFudCBlbmNvZGVyLT5tb2RlX3NldCBmdW5jdGlvbnMuCi0J ICovCi0JaWYgKCpwcmVwYXJlX3BpcGVzKQotCQkqbW9kZXNldF9waXBlcyA9ICpwcmVwYXJlX3Bp cGVzOwotCi0JLyogLi4uIGFuZCBtYXNrIHRoZXNlIG91dC4gKi8KLQkqbW9kZXNldF9waXBlcyAm PSB+KCpkaXNhYmxlX3BpcGVzKTsKLQkqcHJlcGFyZV9waXBlcyAmPSB+KCpkaXNhYmxlX3BpcGVz KTsKLQotCS8qCi0JICogSEFDSzogV2UgZG9uJ3QgKHlldCkgZnVsbHkgc3VwcG9ydCBnbG9iYWwg bW9kZXNldHMuIGludGVsX3NldF9jb25maWcKLQkgKiBvYmllcyB0aGlzIHJ1bGUsIGJ1dCB0aGUg bW9kZXNldCByZXN0b3JlIG1vZGUgb2YKLQkgKiBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRl IGRvZXMgbm90LgotCSAqLwotCSptb2Rlc2V0X3BpcGVzICY9IDEgPDwgaW50ZWxfY3J0Yy0+cGlw ZTsKLQkqcHJlcGFyZV9waXBlcyAmPSAxIDw8IGludGVsX2NydGMtPnBpcGU7Ci0KLQlEUk1fREVC VUdfS01TKCJzZXQgbW9kZSBwaXBlIG1hc2tzOiBtb2Rlc2V0OiAleCwgcHJlcGFyZTogJXgsIGRp c2FibGU6ICV4XG4iLAotCQkgICAgICAqbW9kZXNldF9waXBlcywgKnByZXBhcmVfcGlwZXMsICpk aXNhYmxlX3BpcGVzKTsKLX0KLQogc3RhdGljIGJvb2wgaW50ZWxfY3J0Y19pbl91c2Uoc3RydWN0 IGRybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKQEAgLTEx NTM0LDEzICsxMTQ1NiwyMiBAQCBzdGF0aWMgYm9vbCBpbnRlbF9jcnRjX2luX3VzZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCiAJcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgYm9vbAorbmVlZHNf bW9kZXNldChzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQoreworCXJldHVybiBzdGF0ZS0+ bW9kZV9jaGFuZ2VkIHx8IHN0YXRlLT5hY3RpdmVfY2hhbmdlZDsKK30KKwogc3RhdGljIHZvaWQK LWludGVsX21vZGVzZXRfdXBkYXRlX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2ln bmVkIHByZXBhcmVfcGlwZXMpCitpbnRlbF9tb2Rlc2V0X3VwZGF0ZV9zdGF0ZShzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRl LT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcjsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3I7CisJaW50IGk7CiAKIAlpbnRlbF9zaGFyZWRfZHBsbF9jb21taXQoZGV2X3ByaXYpOwogCkBA IC0xMTU0OCwyNiArMTE0NzksMzYgQEAgaW50ZWxfbW9kZXNldF91cGRhdGVfc3RhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgcHJlcGFyZV9waXBlcykKIAkJaWYgKCFpbnRlbF9l bmNvZGVyLT5iYXNlLmNydGMpCiAJCQljb250aW51ZTsKIAotCQlpbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMpOworCQlmb3JfZWFjaF9jcnRjX2luX3N0 YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKQorCQkJaWYgKGNydGMgPT0gaW50ZWxfZW5j b2Rlci0+YmFzZS5jcnRjKQorCQkJCWJyZWFrOwogCi0JCWlmIChwcmVwYXJlX3BpcGVzICYgKDEg PDwgaW50ZWxfY3J0Yy0+cGlwZSkpCisJCWlmIChjcnRjICE9IGludGVsX2VuY29kZXItPmJhc2Uu Y3J0YykKKwkJCWNvbnRpbnVlOworCisJCWlmIChjcnRjX3N0YXRlLT5lbmFibGUgJiYgbmVlZHNf bW9kZXNldChjcnRjX3N0YXRlKSkKIAkJCWludGVsX2VuY29kZXItPmNvbm5lY3RvcnNfYWN0aXZl ID0gZmFsc2U7CiAJfQogCiAJaW50ZWxfbW9kZXNldF9jb21taXRfb3V0cHV0X3N0YXRlKGRldik7 CiAKIAkvKiBEb3VibGUgY2hlY2sgc3RhdGUuICovCi0JZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYs IGludGVsX2NydGMpIHsKLQkJV0FSTl9PTihpbnRlbF9jcnRjLT5iYXNlLnN0YXRlLT5lbmFibGUg IT0gaW50ZWxfY3J0Y19pbl91c2UoJmludGVsX2NydGMtPmJhc2UpKTsKKwlmb3JfZWFjaF9jcnRj KGRldiwgY3J0YykgeworCQlXQVJOX09OKGNydGMtPnN0YXRlLT5lbmFibGUgIT0gaW50ZWxfY3J0 Y19pbl91c2UoY3J0YykpOwogCX0KIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAm ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgewogCQlpZiAoIWNvbm5lY3Rv ci0+ZW5jb2RlciB8fCAhY29ubmVjdG9yLT5lbmNvZGVyLT5jcnRjKQogCQkJY29udGludWU7CiAK LQkJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY29ubmVjdG9yLT5lbmNvZGVyLT5jcnRjKTsK KwkJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkKKwkJ CWlmIChjcnRjID09IGNvbm5lY3Rvci0+ZW5jb2Rlci0+Y3J0YykKKwkJCQlicmVhazsKKworCQlp ZiAoY3J0YyAhPSBjb25uZWN0b3ItPmVuY29kZXItPmNydGMpCisJCQljb250aW51ZTsKIAotCQlp ZiAocHJlcGFyZV9waXBlcyAmICgxIDw8IGludGVsX2NydGMtPnBpcGUpKSB7CisJCWlmIChjcnRj X3N0YXRlLT5lbmFibGUgJiYgbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSkgewogCQkJc3RydWN0 IGRybV9wcm9wZXJ0eSAqZHBtc19wcm9wZXJ0eSA9CiAJCQkJZGV2LT5tb2RlX2NvbmZpZy5kcG1z X3Byb3BlcnR5OwogCkBAIC0xMjEwNCwxMyArMTIwNDUsMjggQEAgc3RhdGljIHZvaWQgdXBkYXRl X3NjYW5saW5lX29mZnNldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAkJY3J0Yy0+c2Nhbmxp bmVfb2Zmc2V0ID0gMTsKIH0KIAorc3RhdGljIHZvaWQKK2ludGVsX2F0b21pY19tb2Rlc2V0X2Nv bXB1dGVfY2hhbmdlZF9mbGFncyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJ CSAgIHN0cnVjdCBkcm1fY3J0YyAqbW9kZXNldF9jcnRjKQoreworCXN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJaW50IGk7CisKKwlm b3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7CisJCWlm IChjcnRjX3N0YXRlLT5lbmFibGUgIT0gY3J0Yy0+c3RhdGUtPmVuYWJsZSkKKwkJCWNydGNfc3Rh dGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7CisKKwkJLyogRklYTUU6IERvIHdlIG5lZWQgdG8gYWx3 YXlzIHNldCBtb2RlX2NoYW5nZWQgZm9yCisJCSAqIG1vZGVzZXRfY3J0YyBpZiBpdCBpcyBlbmFi bGVkPyBtb2Rlc2V0X2FmZmVjdF9waXBlcygpCisJCSAqIGRpZCB0aGF0LiAqLworCX0KK30KKwog c3RhdGljIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICoKIGludGVsX21vZGVzZXRfY29tcHV0ZV9j b25maWcoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSwKLQkJCSAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAotCQkJ ICAgICB1bnNpZ25lZCAqbW9kZXNldF9waXBlcywKLQkJCSAgICAgdW5zaWduZWQgKnByZXBhcmVf cGlwZXMsCi0JCQkgICAgIHVuc2lnbmVkICpkaXNhYmxlX3BpcGVzKQorCQkJICAgICBzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnOwogCWludCByZXQgPSAwOwpAQCAtMTIxMTksOCArMTIwNzUsNyBAQCBpbnRlbF9t b2Rlc2V0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlpZiAocmV0KQog CQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCi0JaW50ZWxfbW9kZXNldF9hZmZlY3RlZF9waXBlcyhj cnRjLCBtb2Rlc2V0X3BpcGVzLAotCQkJCSAgICAgcHJlcGFyZV9waXBlcywgZGlzYWJsZV9waXBl cyk7CisJaW50ZWxfYXRvbWljX21vZGVzZXRfY29tcHV0ZV9jaGFuZ2VkX2ZsYWdzKHN0YXRlLCBj cnRjKTsKIAogCS8qCiAJICogTm90ZSB0aGlzIG5lZWRzIGNoYW5nZXMgd2hlbiB3ZSBzdGFydCB0 cmFja2luZyBtdWx0aXBsZSBtb2RlcwpAQCAtMTIxNDQsMzMgKzEyMDk5LDQxIEBAIGludGVsX21v ZGVzZXRfY29tcHV0ZV9jb25maWcoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXJldHVybiBwaXBl X2NvbmZpZzsKIH0KIAotc3RhdGljIGludCBfX2ludGVsX3NldF9tb2RlX3NldHVwX3BsbHMoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAotCQkJCSAgICAgICB1bnNpZ25lZCBtb2Rlc2V0 X3BpcGVzLAotCQkJCSAgICAgICB1bnNpZ25lZCBkaXNhYmxlX3BpcGVzKQorc3RhdGljIGludCBf X2ludGVsX3NldF9tb2RlX3NldHVwX3BsbHMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2OwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQl1bnNpZ25lZCBjbGVhcl9w aXBlcyA9IG1vZGVzZXRfcGlwZXMgfCBkaXNhYmxlX3BpcGVzOworCXVuc2lnbmVkIGNsZWFyX3Bp cGVzID0gMDsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKKwlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJ c3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwogCWludCByZXQgPSAwOworCWludCBp OwogCiAJaWYgKCFkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2NvbXB1dGVfY2xvY2spCiAJCXJldHVy biAwOwogCisJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwg aSkgeworCQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKworCQlpZiAobmVlZHNf bW9kZXNldChjcnRjX3N0YXRlKSkKKwkJCWNsZWFyX3BpcGVzIHw9IDEgPDwgaW50ZWxfY3J0Yy0+ cGlwZTsKKwl9CisKIAlyZXQgPSBpbnRlbF9zaGFyZWRfZHBsbF9zdGFydF9jb25maWcoZGV2X3By aXYsIGNsZWFyX3BpcGVzKTsKIAlpZiAocmV0KQogCQlnb3RvIGRvbmU7CiAKLQlmb3JfZWFjaF9p bnRlbF9jcnRjX21hc2tlZChkZXYsIG1vZGVzZXRfcGlwZXMsIGludGVsX2NydGMpIHsKLQkJc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQotCQkJaW50ZWxfYXRvbWljX2dldF9j cnRjX3N0YXRlKHN0YXRlLCBpbnRlbF9jcnRjKTsKLQotCQkvKiBNb2Rlc2V0IHBpcGVzIHNob3Vs ZCBoYXZlIGEgbmV3IHN0YXRlIGJ5IG5vdyAqLwotCQlpZiAoV0FSTl9PTihJU19FUlIoY3J0Y19z dGF0ZSkpKQorCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUs IGkpIHsKKwkJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpIHx8ICFjcnRjX3N0YXRlLT5l bmFibGUpCiAJCQljb250aW51ZTsKIAorCQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj KTsKKwkJaW50ZWxfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7 CisKIAkJcmV0ID0gZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19jb21wdXRlX2Nsb2NrKGludGVsX2Ny dGMsCi0JCQkJCQkJICAgY3J0Y19zdGF0ZSk7CisJCQkJCQkJICAgaW50ZWxfY3J0Y19zdGF0ZSk7 CiAJCWlmIChyZXQpIHsKIAkJCWludGVsX3NoYXJlZF9kcGxsX2Fib3J0X2NvbmZpZyhkZXZfcHJp dik7CiAJCQlnb3RvIGRvbmU7CkBAIC0xMjE4MSwyMSArMTIxNDQsMjEgQEAgZG9uZToKIAlyZXR1 cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IF9faW50ZWxfc2V0X21vZGUoc3RydWN0IGRybV9jcnRj ICpjcnRjLAorc3RhdGljIGludCBfX2ludGVsX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqbW9k ZXNldF9jcnRjLAogCQkJICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAogCQkJICAg IGludCB4LCBpbnQgeSwgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0JCQkgICAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAotCQkJICAgIHVuc2lnbmVkIG1vZGVzZXRf cGlwZXMsCi0JCQkgICAgdW5zaWduZWQgcHJlcGFyZV9waXBlcywKLQkJCSAgICB1bnNpZ25lZCBk aXNhYmxlX3BpcGVzKQorCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OworCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBtb2Rlc2V0X2NydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICpzYXZlZF9tb2RlOwogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IHBpcGVfY29u ZmlnLT5iYXNlLnN0YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlX2Nv cHkgPSBOVUxMOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOworCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CiAJaW50IHJl dCA9IDA7CisJaW50IGk7CiAKIAlzYXZlZF9tb2RlID0ga21hbGxvYyhzaXplb2YoKnNhdmVkX21v ZGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXNhdmVkX21vZGUpCkBAIC0xMjIwNyw3ICsxMjE3MCw3 IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJ CWdvdG8gZG9uZTsKIAl9CiAKLQkqc2F2ZWRfbW9kZSA9IGNydGMtPm1vZGU7CisJKnNhdmVkX21v ZGUgPSBtb2Rlc2V0X2NydGMtPm1vZGU7CiAKIAkvKgogCSAqIFNlZSBpZiB0aGUgY29uZmlnIHJl cXVpcmVzIGFueSBhZGRpdGlvbmFsIHByZXBhcmF0aW9uLCBlLmcuCkBAIC0xMjIxNywyNSArMTIx ODAsMjQgQEAgc3RhdGljIGludCBfX2ludGVsX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAkgKiBhZGp1c3RlZF9tb2RlIGJpdHMgaW4gdGhlIGNydGMgZGlyZWN0bHkuCiAJICovCiAJ aWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikpIHsKLQkJcmV0ID0gdmFs bGV5dmlld19tb2Rlc2V0X2dsb2JhbF9waXBlcyhzdGF0ZSwgJnByZXBhcmVfcGlwZXMpOworCQly ZXQgPSB2YWxsZXl2aWV3X21vZGVzZXRfZ2xvYmFsX3BpcGVzKHN0YXRlKTsKIAkJaWYgKHJldCkK IAkJCWdvdG8gZG9uZTsKLQotCQkvKiBtYXkgaGF2ZSBhZGRlZCBtb3JlIHRvIHByZXBhcmVfcGlw ZXMgdGhhbiB3ZSBzaG91bGQgKi8KLQkJcHJlcGFyZV9waXBlcyAmPSB+ZGlzYWJsZV9waXBlczsK IAl9CiAKLQlyZXQgPSBfX2ludGVsX3NldF9tb2RlX3NldHVwX3BsbHMoc3RhdGUsIG1vZGVzZXRf cGlwZXMsIGRpc2FibGVfcGlwZXMpOworCXJldCA9IF9faW50ZWxfc2V0X21vZGVfc2V0dXBfcGxs cyhzdGF0ZSk7CiAJaWYgKHJldCkKIAkJZ290byBkb25lOwogCi0JZm9yX2VhY2hfaW50ZWxfY3J0 Y19tYXNrZWQoZGV2LCBkaXNhYmxlX3BpcGVzLCBpbnRlbF9jcnRjKQotCQlpbnRlbF9jcnRjX2Rp c2FibGUoJmludGVsX2NydGMtPmJhc2UpOworCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUs IGNydGMsIGNydGNfc3RhdGUsIGkpIHsKKwkJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUp KQorCQkJY29udGludWU7CiAKLQlmb3JfZWFjaF9pbnRlbF9jcnRjX21hc2tlZChkZXYsIHByZXBh cmVfcGlwZXMsIGludGVsX2NydGMpIHsKLQkJaWYgKGludGVsX2NydGMtPmJhc2Uuc3RhdGUtPmVu YWJsZSkgewotCQkJaW50ZWxfY3J0Y19kaXNhYmxlX3BsYW5lcygmaW50ZWxfY3J0Yy0+YmFzZSk7 Ci0JCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2Rpc2FibGUoJmludGVsX2NydGMtPmJhc2UpOwor CQlpZiAoIWNydGNfc3RhdGUtPmVuYWJsZSkgeworCQkJaW50ZWxfY3J0Y19kaXNhYmxlKGNydGMp OworCQl9IGVsc2UgaWYgKGNydGMtPnN0YXRlLT5lbmFibGUpIHsKKwkJCWludGVsX2NydGNfZGlz YWJsZV9wbGFuZXMoY3J0Yyk7CisJCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2Rpc2FibGUoY3J0 Yyk7CiAJCX0KIAl9CiAKQEAgLTEyMjQ2LDMyICsxMjIwOCwzNiBAQCBzdGF0aWMgaW50IF9faW50 ZWxfc2V0X21vZGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCSAqIHBpcGVzOyBoZXJlIHdlIGFz c3VtZSBhIHNpbmdsZSBtb2Rlc2V0X3BpcGUgYW5kIG9ubHkgdHJhY2sgdGhlCiAJICogc2luZ2xl IGNydGMgYW5kIG1vZGUuCiAJICovCi0JaWYgKG1vZGVzZXRfcGlwZXMpIHsKLQkJY3J0Yy0+bW9k ZSA9ICptb2RlOworCWlmIChwaXBlX2NvbmZpZy0+YmFzZS5lbmFibGUgJiYgbmVlZHNfbW9kZXNl dCgmcGlwZV9jb25maWctPmJhc2UpKSB7CisJCW1vZGVzZXRfY3J0Yy0+bW9kZSA9ICptb2RlOwog CQkvKiBtb2RlX3NldC9lbmFibGUvZGlzYWJsZSBmdW5jdGlvbnMgcmVseSBvbiBhIGNvcnJlY3Qg cGlwZQogCQkgKiBjb25maWcuICovCi0JCWludGVsX2NydGNfc2V0X3N0YXRlKHRvX2ludGVsX2Ny dGMoY3J0YyksIHBpcGVfY29uZmlnKTsKKwkJaW50ZWxfY3J0Y19zZXRfc3RhdGUodG9faW50ZWxf Y3J0Yyhtb2Rlc2V0X2NydGMpLCBwaXBlX2NvbmZpZyk7CiAKIAkJLyoKIAkJICogQ2FsY3VsYXRl IGFuZCBzdG9yZSB2YXJpb3VzIGNvbnN0YW50cyB3aGljaAogCQkgKiBhcmUgbGF0ZXIgbmVlZGVk IGJ5IHZibGFuayBhbmQgc3dhcC1jb21wbGV0aW9uCiAJCSAqIHRpbWVzdGFtcGluZy4gVGhleSBh cmUgZGVyaXZlZCBmcm9tIHRydWUgaHdtb2RlLgogCQkgKi8KLQkJZHJtX2NhbGNfdGltZXN0YW1w aW5nX2NvbnN0YW50cyhjcnRjLAorCQlkcm1fY2FsY190aW1lc3RhbXBpbmdfY29uc3RhbnRzKG1v ZGVzZXRfY3J0YywKIAkJCQkJCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlKTsKIAl9 CiAKIAkvKiBPbmx5IGFmdGVyIGRpc2FibGluZyBhbGwgb3V0cHV0IHBpcGVsaW5lcyB0aGF0IHdp bGwgYmUgY2hhbmdlZCBjYW4gd2UKIAkgKiB1cGRhdGUgdGhlIHRoZSBvdXRwdXQgY29uZmlndXJh dGlvbi4gKi8KLQlpbnRlbF9tb2Rlc2V0X3VwZGF0ZV9zdGF0ZShkZXYsIHByZXBhcmVfcGlwZXMp OworCWludGVsX21vZGVzZXRfdXBkYXRlX3N0YXRlKHN0YXRlKTsKIAogCW1vZGVzZXRfdXBkYXRl X2NydGNfcG93ZXJfZG9tYWlucyhzdGF0ZSk7CiAKLQlmb3JfZWFjaF9pbnRlbF9jcnRjX21hc2tl ZChkZXYsIG1vZGVzZXRfcGlwZXMsIGludGVsX2NydGMpIHsKLQkJc3RydWN0IGRybV9wbGFuZSAq cHJpbWFyeSA9IGludGVsX2NydGMtPmJhc2UucHJpbWFyeTsKKwlpZiAocGlwZV9jb25maWctPmJh c2UuZW5hYmxlICYmIG5lZWRzX21vZGVzZXQoJnBpcGVfY29uZmlnLT5iYXNlKSkgeworCQlzdHJ1 Y3QgZHJtX3BsYW5lICpwcmltYXJ5OwogCQlpbnQgdmRpc3BsYXksIGhkaXNwbGF5OwogCisJCWlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKG1vZGVzZXRfY3J0Yyk7CisJCXByaW1hcnkgPSBpbnRl bF9jcnRjLT5iYXNlLnByaW1hcnk7CisKIAkJZHJtX2NydGNfZ2V0X2h2X3RpbWluZyhtb2RlLCAm aGRpc3BsYXksICZ2ZGlzcGxheSk7CisKIAkJcmV0ID0gZHJtX3BsYW5lX2hlbHBlcl91cGRhdGUo cHJpbWFyeSwgJmludGVsX2NydGMtPmJhc2UsCiAJCQkJCSAgICAgIGZiLCAwLCAwLAogCQkJCQkg ICAgICBoZGlzcGxheSwgdmRpc3BsYXksCkBAIC0xMjI4MCwyMCArMTIyNDYsMjMgQEAgc3RhdGlj IGludCBfX2ludGVsX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl9CiAKIAkvKiBO b3cgZW5hYmxlIHRoZSBjbG9ja3MsIHBsYW5lLCBwaXBlLCBhbmQgY29ubmVjdG9ycyB0aGF0IHdl IHNldCB1cC4gKi8KLQlmb3JfZWFjaF9pbnRlbF9jcnRjX21hc2tlZChkZXYsIHByZXBhcmVfcGlw ZXMsIGludGVsX2NydGMpIHsKLQkJdXBkYXRlX3NjYW5saW5lX29mZnNldChpbnRlbF9jcnRjKTsK Kwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7CisJ CWlmICghbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSB8fCAhY3J0Y19zdGF0ZS0+ZW5hYmxlKQor CQkJY29udGludWU7CisKKwkJdXBkYXRlX3NjYW5saW5lX29mZnNldCh0b19pbnRlbF9jcnRjKGNy dGMpKTsKIAotCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2VuYWJsZSgmaW50ZWxfY3J0Yy0+YmFz ZSk7Ci0JCWludGVsX2NydGNfZW5hYmxlX3BsYW5lcygmaW50ZWxfY3J0Yy0+YmFzZSk7CisJCWRl dl9wcml2LT5kaXNwbGF5LmNydGNfZW5hYmxlKGNydGMpOworCQlpbnRlbF9jcnRjX2VuYWJsZV9w bGFuZXMoY3J0Yyk7CiAJfQogCiAJLyogRklYTUU6IGFkZCBzdWJwaXhlbCBvcmRlciAqLwogZG9u ZToKLQlpZiAocmV0ICYmIGNydGMtPnN0YXRlLT5lbmFibGUpCi0JCWNydGMtPm1vZGUgPSAqc2F2 ZWRfbW9kZTsKKwlpZiAocmV0ICYmIG1vZGVzZXRfY3J0Yy0+c3RhdGUtPmVuYWJsZSkKKwkJbW9k ZXNldF9jcnRjLT5tb2RlID0gKnNhdmVkX21vZGU7CiAKIAlpZiAocmV0ID09IDAgJiYgcGlwZV9j b25maWcpIHsKLQkJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGNydGMpOworCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMo bW9kZXNldF9jcnRjKTsKIAogCQkvKiBUaGUgcGlwZV9jb25maWcgd2lsbCBiZSBmcmVlZCB3aXRo IHRoZSBhdG9taWMgc3RhdGUsIHNvCiAJCSAqIG1ha2UgYSBjb3B5LiAqLwpAQCAtMTIzMDksMTgg KzEyMjc4LDE0IEBAIGRvbmU6CiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBpbnRlbF9z ZXRfbW9kZV9waXBlcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKm1vZGUsCi0JCQkJaW50IHgsIGludCB5LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYiwKLQkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCi0JCQkJdW5z aWduZWQgbW9kZXNldF9waXBlcywKLQkJCQl1bnNpZ25lZCBwcmVwYXJlX3BpcGVzLAotCQkJCXVu c2lnbmVkIGRpc2FibGVfcGlwZXMpCitzdGF0aWMgaW50IGludGVsX3NldF9tb2RlX3dpdGhfY29u ZmlnKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSwKKwkJCQkgICAgICBpbnQgeCwgaW50IHksIHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiLAorCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykK IHsKIAlpbnQgcmV0OwogCi0JcmV0ID0gX19pbnRlbF9zZXRfbW9kZShjcnRjLCBtb2RlLCB4LCB5 LCBmYiwgcGlwZV9jb25maWcsIG1vZGVzZXRfcGlwZXMsCi0JCQkgICAgICAgcHJlcGFyZV9waXBl cywgZGlzYWJsZV9waXBlcyk7CisJcmV0ID0gX19pbnRlbF9zZXRfbW9kZShjcnRjLCBtb2RlLCB4 LCB5LCBmYiwgcGlwZV9jb25maWcpOwogCiAJaWYgKHJldCA9PSAwKQogCQlpbnRlbF9tb2Rlc2V0 X2NoZWNrX3N0YXRlKGNydGMtPmRldik7CkBAIC0xMjMzNCwyMiArMTIyOTksMTUgQEAgc3RhdGlj IGludCBpbnRlbF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkgIHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWc7Ci0JdW5zaWduZWQgbW9kZXNldF9waXBlcywgcHJlcGFyZV9waXBlcywgZGlzYWJs ZV9waXBlczsKIAlpbnQgcmV0ID0gMDsKIAotCXBpcGVfY29uZmlnID0gaW50ZWxfbW9kZXNldF9j b21wdXRlX2NvbmZpZyhjcnRjLCBtb2RlLCBzdGF0ZSwKLQkJCQkJCSAgICZtb2Rlc2V0X3BpcGVz LAotCQkJCQkJICAgJnByZXBhcmVfcGlwZXMsCi0JCQkJCQkgICAmZGlzYWJsZV9waXBlcyk7Ci0K KwlwaXBlX2NvbmZpZyA9IGludGVsX21vZGVzZXRfY29tcHV0ZV9jb25maWcoY3J0YywgbW9kZSwg c3RhdGUpOwogCWlmIChJU19FUlIocGlwZV9jb25maWcpKSB7CiAJCXJldCA9IFBUUl9FUlIocGlw ZV9jb25maWcpOwogCQlnb3RvIG91dDsKIAl9CiAKLQlyZXQgPSBpbnRlbF9zZXRfbW9kZV9waXBl cyhjcnRjLCBtb2RlLCB4LCB5LCBmYiwgcGlwZV9jb25maWcsCi0JCQkJICAgbW9kZXNldF9waXBl cywgcHJlcGFyZV9waXBlcywKLQkJCQkgICBkaXNhYmxlX3BpcGVzKTsKKwlyZXQgPSBpbnRlbF9z ZXRfbW9kZV93aXRoX2NvbmZpZyhjcnRjLCBtb2RlLCB4LCB5LCBmYiwgcGlwZV9jb25maWcpOwog CWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCkBAIC0xMjc3NSw3ICsxMjczMyw2IEBAIHN0YXRpYyBp bnQgaW50ZWxfY3J0Y19zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKIAlzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBOVUxMOwogCXN0cnVjdCBpbnRlbF9zZXRfY29u ZmlnICpjb25maWc7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnOwotCXVu c2lnbmVkIG1vZGVzZXRfcGlwZXMsIHByZXBhcmVfcGlwZXMsIGRpc2FibGVfcGlwZXM7CiAJaW50 IHJldDsKIAogCUJVR19PTighc2V0KTsKQEAgLTEyODMwLDEwICsxMjc4Nyw3IEBAIHN0YXRpYyBp bnQgaW50ZWxfY3J0Y19zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKIAlpbnRl bF9zZXRfY29uZmlnX2NvbXB1dGVfbW9kZV9jaGFuZ2VzKHNldCwgY29uZmlnKTsKIAogCXBpcGVf Y29uZmlnID0gaW50ZWxfbW9kZXNldF9jb21wdXRlX2NvbmZpZyhzZXQtPmNydGMsIHNldC0+bW9k ZSwKLQkJCQkJCSAgIHN0YXRlLAotCQkJCQkJICAgJm1vZGVzZXRfcGlwZXMsCi0JCQkJCQkgICAm cHJlcGFyZV9waXBlcywKLQkJCQkJCSAgICZkaXNhYmxlX3BpcGVzKTsKKwkJCQkJCSAgIHN0YXRl KTsKIAlpZiAoSVNfRVJSKHBpcGVfY29uZmlnKSkgewogCQlyZXQgPSBQVFJfRVJSKHBpcGVfY29u ZmlnKTsKIAkJZ290byBmYWlsOwpAQCAtMTI4NTMsMTAgKzEyODA3LDkgQEAgc3RhdGljIGludCBp bnRlbF9jcnRjX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0KQogCWludGVsX3Vw ZGF0ZV9waXBlX3NpemUodG9faW50ZWxfY3J0YyhzZXQtPmNydGMpKTsKIAogCWlmIChjb25maWct Pm1vZGVfY2hhbmdlZCkgewotCQlyZXQgPSBpbnRlbF9zZXRfbW9kZV9waXBlcyhzZXQtPmNydGMs IHNldC0+bW9kZSwKLQkJCQkJICAgc2V0LT54LCBzZXQtPnksIHNldC0+ZmIsIHBpcGVfY29uZmln LAotCQkJCQkgICBtb2Rlc2V0X3BpcGVzLCBwcmVwYXJlX3BpcGVzLAotCQkJCQkgICBkaXNhYmxl X3BpcGVzKTsKKwkJcmV0ID0gaW50ZWxfc2V0X21vZGVfd2l0aF9jb25maWcoc2V0LT5jcnRjLCBz ZXQtPm1vZGUsCisJCQkJCQkgc2V0LT54LCBzZXQtPnksIHNldC0+ZmIsCisJCQkJCQkgcGlwZV9j b25maWcpOwogCX0gZWxzZSBpZiAoY29uZmlnLT5mYl9jaGFuZ2VkKSB7CiAJCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhzZXQtPmNydGMpOwogCQlzdHJ1Y3Qg ZHJtX3BsYW5lICpwcmltYXJ5ID0gc2V0LT5jcnRjLT5wcmltYXJ5OwotLSAKMi4xLjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==