From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH v2 5/5] drm: Move drm_plane_helper_check_state() into drm_atomic_helper.c Date: Wed, 1 Nov 2017 22:16:19 +0200 Message-ID: <20171101201619.6175-1-ville.syrjala@linux.intel.com> References: <20171101182920.14386-6-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171101182920.14386-6-ville.syrjala@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: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCmRy bV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKCkgaXNuJ3QgYSB0cmFuc2l0aW9uYWwgaGVscGVy LCBzbyBsZXQncwpyZW5hbWUgaXQgdG8gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3Rh dGUoKSBhbmQgbW92ZSBpdCBpbnRvCmRybV9hdG9taWNfaGVscGVyLmMuCgp2MjogRml4IHRoZSBX QVJOcyBhYm91dCBwbGFuZV9zdGF0ZS0+Y3J0YyBtYXRjaGluZyBjcnRjX3N0YXRlLT5jcnRjCgpD YzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPgpTdWdnZXN0ZWQtYnk6IERhbmllbCBW ZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYXJtL2hk bGNkX2NydGMuYyAgICAgICAgICAgIHwgICA4ICstLQogZHJpdmVycy9ncHUvZHJtL2FybS9tYWxp ZHBfcGxhbmVzLmMgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMgICAgICAgICB8ICA5NCArKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJz L2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jICAgICAgICAgIHwgMTAyICsrLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuYyAg ICAgfCAgIDkgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAg IHwgIDIyICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFuZS5jICAgICAgICAg ICB8ICAgOCArLS0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX3BsYW5lLmMgICAg fCAgIDggKy0tCiBkcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fcGxhbmUuYyAgICAgICAgIHwg ICA4ICstLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMgICB8ICAg NSArLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9kaXNwbGF5LmMgICAgICB8ICAyMCAr KystLS0KIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgfCAgIDYg Ky0KIGRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jICAgICAgICAgICAgICAgICAgfCAgIDQgKy0K IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jICAgICAgICAgfCAgIDggKy0tCiBk cml2ZXJzL2dwdS9kcm0venRlL3p4X3BsYW5lLmMgICAgICAgICAgICAgIHwgIDE1ICsrLS0KIGlu Y2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggICAgICAgICAgICAgfCAgIDcgKysKIGluY2x1 ZGUvZHJtL2RybV9wbGFuZV9oZWxwZXIuaCAgICAgICAgICAgICAgfCAgIDYgLS0KIDE3IGZpbGVz IGNoYW5nZWQsIDE2OSBpbnNlcnRpb25zKCspLCAxNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJt L2hkbGNkX2NydGMuYwppbmRleCAxNDcyMTcyM2ZhOGEuLjYzNTExYTNiYmY2YyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FybS9oZGxjZF9jcnRjLmMKQEAgLTI1MiwxMCArMjUyLDEwIEBAIHN0YXRpYyBpbnQgaGRsY2Rf cGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWNsaXAueDIgPSBj cnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlLmhkaXNwbGF5OwogCWNsaXAueTIgPSBjcnRjX3N0YXRl LT5hZGp1c3RlZF9tb2RlLnZkaXNwbGF5OwogCi0JcmV0dXJuIGRybV9wbGFuZV9oZWxwZXJfY2hl Y2tfc3RhdGUoc3RhdGUsIGNydGNfc3RhdGUsICZjbGlwLAotCQkJCQkgICAgRFJNX1BMQU5FX0hF TFBFUl9OT19TQ0FMSU5HLAotCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAot CQkJCQkgICAgZmFsc2UsIHRydWUpOworCXJldHVybiBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19w bGFuZV9zdGF0ZShzdGF0ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCisJCQkJCQkgICBEUk1fUExBTkVf SEVMUEVSX05PX1NDQUxJTkcsCisJCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcs CisJCQkJCQkgICBmYWxzZSwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGhkbGNkX3BsYW5lX2F0 b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRw X3BsYW5lcy5jCmluZGV4IDQ5MmQ5OWRkNTVkNC4uNzJhMDc5NTAxNjdlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v YXJtL21hbGlkcF9wbGFuZXMuYwpAQCAtMTUwLDggKzE1MCw4IEBAIHN0YXRpYyBpbnQgbWFsaWRw X3NlX2NoZWNrX3NjYWxpbmcoc3RydWN0IG1hbGlkcF9wbGFuZSAqbXAsCiAKIAljbGlwLngyID0g Y3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZS5oZGlzcGxheTsKIAljbGlwLnkyID0gY3J0Y19zdGF0 ZS0+YWRqdXN0ZWRfbW9kZS52ZGlzcGxheTsKLQlyZXQgPSBkcm1fcGxhbmVfaGVscGVyX2NoZWNr X3N0YXRlKHN0YXRlLCBjcnRjX3N0YXRlLCAmY2xpcCwKLQkJCQkJICAgMCwgSU5UX01BWCwgdHJ1 ZSwgdHJ1ZSk7CisJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoc3Rh dGUsIGNydGNfc3RhdGUsICZjbGlwLAorCQkJCQkJICAwLCBJTlRfTUFYLCB0cnVlLCB0cnVlKTsK IAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j CmluZGV4IDcxZDcxMmYxYjU2YS4uYTM4MTkxM2M4OTRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYwpAQCAtNjk2LDYgKzY5NiwxMDAgQEAgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tf bW9kZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWlj X2hlbHBlcl9jaGVja19tb2Rlc2V0KTsKIAogLyoqCisgKiBkcm1fYXRvbWljX2hlbHBlcl9jaGVj a19wbGFuZV9zdGF0ZSgpIC0gQ2hlY2sgcGxhbmUgc3RhdGUgZm9yIHZhbGlkaXR5CisgKiBAcGxh bmVfc3RhdGU6IHBsYW5lIHN0YXRlIHRvIGNoZWNrCisgKiBAY3J0Y19zdGF0ZTogY3J0YyBzdGF0 ZSB0byBjaGVjaworICogQGNsaXA6IGludGVnZXIgY2xpcHBpbmcgY29vcmRpbmF0ZXMKKyAqIEBt aW5fc2NhbGU6IG1pbmltdW0gQHNyYzpAZGVzdCBzY2FsaW5nIGZhY3RvciBpbiAxNi4xNiBmaXhl ZCBwb2ludAorICogQG1heF9zY2FsZTogbWF4aW11bSBAc3JjOkBkZXN0IHNjYWxpbmcgZmFjdG9y IGluIDE2LjE2IGZpeGVkIHBvaW50CisgKiBAY2FuX3Bvc2l0aW9uOiBpcyBpdCBsZWdhbCB0byBw b3NpdGlvbiB0aGUgcGxhbmUgc3VjaCB0aGF0IGl0CisgKiAgICAgICAgICAgICAgICBkb2Vzbid0 IGNvdmVyIHRoZSBlbnRpcmUgY3J0Yz8gIFRoaXMgd2lsbCBnZW5lcmFsbHkKKyAqICAgICAgICAg ICAgICAgIG9ubHkgYmUgZmFsc2UgZm9yIHByaW1hcnkgcGxhbmVzLgorICogQGNhbl91cGRhdGVf ZGlzYWJsZWQ6IGNhbiB0aGUgcGxhbmUgYmUgdXBkYXRlZCB3aGlsZSB0aGUgY3J0YworICogICAg ICAgICAgICAgICAgICAgICAgIGlzIGRpc2FibGVkPworICoKKyAqIENoZWNrcyB0aGF0IGEgZGVz aXJlZCBwbGFuZSB1cGRhdGUgaXMgdmFsaWQsIGFuZCB1cGRhdGVzIHZhcmlvdXMKKyAqIGJpdHMg b2YgZGVyaXZlZCBzdGF0ZSAoY2xpcHBlZCBjb29yZGluYXRlcyBldGMuKS4gRHJpdmVycyB0aGF0 IHByb3ZpZGUKKyAqIHRoZWlyIG93biBwbGFuZSBoYW5kbGluZyByYXRoZXIgdGhhbiBoZWxwZXIt cHJvdmlkZWQgaW1wbGVtZW50YXRpb25zIG1heQorICogc3RpbGwgd2lzaCB0byBjYWxsIHRoaXMg ZnVuY3Rpb24gdG8gYXZvaWQgZHVwbGljYXRpb24gb2YgZXJyb3IgY2hlY2tpbmcKKyAqIGNvZGUu CisgKgorICogUkVUVVJOUzoKKyAqIFplcm8gaWYgdXBkYXRlIGFwcGVhcnMgdmFsaWQsIGVycm9y IGNvZGUgb24gZmFpbHVyZQorICovCitpbnQgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVf c3RhdGUoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCisJCQkJCWNvbnN0IHN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQkJY29uc3Qgc3RydWN0IGRybV9y ZWN0ICpjbGlwLAorCQkJCQlpbnQgbWluX3NjYWxlLAorCQkJCQlpbnQgbWF4X3NjYWxlLAorCQkJ CQlib29sIGNhbl9wb3NpdGlvbiwKKwkJCQkJYm9vbCBjYW5fdXBkYXRlX2Rpc2FibGVkKQorewor CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmZiOworCXN0cnVjdCBk cm1fcmVjdCAqc3JjID0gJnBsYW5lX3N0YXRlLT5zcmM7CisJc3RydWN0IGRybV9yZWN0ICpkc3Qg PSAmcGxhbmVfc3RhdGUtPmRzdDsKKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0 ZS0+cm90YXRpb247CisJaW50IGhzY2FsZSwgdnNjYWxlOworCisJV0FSTl9PTihwbGFuZV9zdGF0 ZS0+Y3J0YyAmJiBwbGFuZV9zdGF0ZS0+Y3J0YyAhPSBjcnRjX3N0YXRlLT5jcnRjKTsKKworCSpz cmMgPSBkcm1fcGxhbmVfc3RhdGVfc3JjKHBsYW5lX3N0YXRlKTsKKwkqZHN0ID0gZHJtX3BsYW5l X3N0YXRlX2Rlc3QocGxhbmVfc3RhdGUpOworCisJaWYgKCFmYikgeworCQlwbGFuZV9zdGF0ZS0+ dmlzaWJsZSA9IGZhbHNlOworCQlyZXR1cm4gMDsKKwl9CisKKwkvKiBjcnRjIHNob3VsZCBvbmx5 IGJlIE5VTEwgd2hlbiBkaXNhYmxpbmcgKGkuZS4sICFmYikgKi8KKwlpZiAoV0FSTl9PTighcGxh bmVfc3RhdGUtPmNydGMpKSB7CisJCXBsYW5lX3N0YXRlLT52aXNpYmxlID0gZmFsc2U7CisJCXJl dHVybiAwOworCX0KKworCWlmICghY3J0Y19zdGF0ZS0+ZW5hYmxlICYmICFjYW5fdXBkYXRlX2Rp c2FibGVkKSB7CisJCURSTV9ERUJVR19LTVMoIkNhbm5vdCB1cGRhdGUgcGxhbmUgb2YgYSBkaXNh YmxlZCBDUlRDLlxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRybV9yZWN0X3JvdGF0 ZShzcmMsIGZiLT53aWR0aCA8PCAxNiwgZmItPmhlaWdodCA8PCAxNiwgcm90YXRpb24pOworCisJ LyogQ2hlY2sgc2NhbGluZyAqLworCWhzY2FsZSA9IGRybV9yZWN0X2NhbGNfaHNjYWxlKHNyYywg ZHN0LCBtaW5fc2NhbGUsIG1heF9zY2FsZSk7CisJdnNjYWxlID0gZHJtX3JlY3RfY2FsY192c2Nh bGUoc3JjLCBkc3QsIG1pbl9zY2FsZSwgbWF4X3NjYWxlKTsKKwlpZiAoaHNjYWxlIDwgMCB8fCB2 c2NhbGUgPCAwKSB7CisJCURSTV9ERUJVR19LTVMoIkludmFsaWQgc2NhbGluZyBvZiBwbGFuZVxu Iik7CisJCWRybV9yZWN0X2RlYnVnX3ByaW50KCJzcmM6ICIsICZwbGFuZV9zdGF0ZS0+c3JjLCB0 cnVlKTsKKwkJZHJtX3JlY3RfZGVidWdfcHJpbnQoImRzdDogIiwgJnBsYW5lX3N0YXRlLT5kc3Qs IGZhbHNlKTsKKwkJcmV0dXJuIC1FUkFOR0U7CisJfQorCisJcGxhbmVfc3RhdGUtPnZpc2libGUg PSBkcm1fcmVjdF9jbGlwX3NjYWxlZChzcmMsIGRzdCwgY2xpcCwgaHNjYWxlLCB2c2NhbGUpOwor CisJZHJtX3JlY3Rfcm90YXRlX2ludihzcmMsIGZiLT53aWR0aCA8PCAxNiwgZmItPmhlaWdodCA8 PCAxNiwgcm90YXRpb24pOworCisJaWYgKCFwbGFuZV9zdGF0ZS0+dmlzaWJsZSkKKwkJLyoKKwkJ ICogUGxhbmUgaXNuJ3QgdmlzaWJsZTsgc29tZSBkcml2ZXJzIGNhbiBoYW5kbGUgdGhpcworCQkg KiBzbyB3ZSBqdXN0IHJldHVybiBzdWNjZXNzIGhlcmUuICBEcml2ZXJzIHRoYXQgY2FuJ3QKKwkJ ICogKGluY2x1ZGluZyB0aG9zZSB0aGF0IHVzZSB0aGUgcHJpbWFyeSBwbGFuZSBoZWxwZXIncwor CQkgKiB1cGRhdGUgZnVuY3Rpb24pIHdpbGwgcmV0dXJuIGFuIGVycm9yIGZyb20gdGhlaXIKKwkJ ICogdXBkYXRlX3BsYW5lIGhhbmRsZXIuCisJCSAqLworCQlyZXR1cm4gMDsKKworCWlmICghY2Fu X3Bvc2l0aW9uICYmICFkcm1fcmVjdF9lcXVhbHMoZHN0LCBjbGlwKSkgeworCQlEUk1fREVCVUdf S01TKCJQbGFuZSBtdXN0IGNvdmVyIGVudGlyZSBDUlRDXG4iKTsKKwkJZHJtX3JlY3RfZGVidWdf cHJpbnQoImRzdDogIiwgZHN0LCBmYWxzZSk7CisJCWRybV9yZWN0X2RlYnVnX3ByaW50KCJjbGlw OiAiLCBjbGlwLCBmYWxzZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOwor fQorRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSk7CisK Ky8qKgogICogZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVzIC0gdmFsaWRhdGUgc3RhdGUg b2JqZWN0IGZvciBwbGFuZXMgY2hhbmdlcwogICogQGRldjogRFJNIGRldmljZQogICogQHN0YXRl OiB0aGUgZHJpdmVyIHN0YXRlIG9iamVjdApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9wbGFuZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKaW5k ZXggZWVmMGZmY2Q3ZWQ1Li5mMWJlOGNkNGUzODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fcGxhbmVfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZV9oZWxw ZXIuYwpAQCAtMTAwLDEwMCArMTAwLDYgQEAgc3RhdGljIGludCBnZXRfY29ubmVjdG9yc19mb3Jf Y3J0YyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiB9CiAKIC8qKgotICogZHJtX3BsYW5lX2hlbHBl cl9jaGVja19zdGF0ZSgpIC0gQ2hlY2sgcGxhbmUgc3RhdGUgZm9yIHZhbGlkaXR5Ci0gKiBAcGxh bmVfc3RhdGU6IHBsYW5lIHN0YXRlIHRvIGNoZWNrCi0gKiBAY3J0Y19zdGF0ZTogY3J0YyBzdGF0 ZSB0byBjaGVjawotICogQGNsaXA6IGludGVnZXIgY2xpcHBpbmcgY29vcmRpbmF0ZXMKLSAqIEBt aW5fc2NhbGU6IG1pbmltdW0gQHNyYzpAZGVzdCBzY2FsaW5nIGZhY3RvciBpbiAxNi4xNiBmaXhl ZCBwb2ludAotICogQG1heF9zY2FsZTogbWF4aW11bSBAc3JjOkBkZXN0IHNjYWxpbmcgZmFjdG9y IGluIDE2LjE2IGZpeGVkIHBvaW50Ci0gKiBAY2FuX3Bvc2l0aW9uOiBpcyBpdCBsZWdhbCB0byBw b3NpdGlvbiB0aGUgcGxhbmUgc3VjaCB0aGF0IGl0Ci0gKiAgICAgICAgICAgICAgICBkb2Vzbid0 IGNvdmVyIHRoZSBlbnRpcmUgY3J0Yz8gIFRoaXMgd2lsbCBnZW5lcmFsbHkKLSAqICAgICAgICAg ICAgICAgIG9ubHkgYmUgZmFsc2UgZm9yIHByaW1hcnkgcGxhbmVzLgotICogQGNhbl91cGRhdGVf ZGlzYWJsZWQ6IGNhbiB0aGUgcGxhbmUgYmUgdXBkYXRlZCB3aGlsZSB0aGUgY3J0YwotICogICAg ICAgICAgICAgICAgICAgICAgIGlzIGRpc2FibGVkPwotICoKLSAqIENoZWNrcyB0aGF0IGEgZGVz aXJlZCBwbGFuZSB1cGRhdGUgaXMgdmFsaWQsIGFuZCB1cGRhdGVzIHZhcmlvdXMKLSAqIGJpdHMg b2YgZGVyaXZlZCBzdGF0ZSAoY2xpcHBlZCBjb29yZGluYXRlcyBldGMuKS4gRHJpdmVycyB0aGF0 IHByb3ZpZGUKLSAqIHRoZWlyIG93biBwbGFuZSBoYW5kbGluZyByYXRoZXIgdGhhbiBoZWxwZXIt cHJvdmlkZWQgaW1wbGVtZW50YXRpb25zIG1heQotICogc3RpbGwgd2lzaCB0byBjYWxsIHRoaXMg ZnVuY3Rpb24gdG8gYXZvaWQgZHVwbGljYXRpb24gb2YgZXJyb3IgY2hlY2tpbmcKLSAqIGNvZGUu Ci0gKgotICogUkVUVVJOUzoKLSAqIFplcm8gaWYgdXBkYXRlIGFwcGVhcnMgdmFsaWQsIGVycm9y IGNvZGUgb24gZmFpbHVyZQotICovCi1pbnQgZHJtX3BsYW5lX2hlbHBlcl9jaGVja19zdGF0ZShz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKLQkJCQkgY29uc3Qgc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmNs aXAsCi0JCQkJIGludCBtaW5fc2NhbGUsCi0JCQkJIGludCBtYXhfc2NhbGUsCi0JCQkJIGJvb2wg Y2FuX3Bvc2l0aW9uLAotCQkJCSBib29sIGNhbl91cGRhdGVfZGlzYWJsZWQpCi17Ci0Jc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ZmI7Ci0Jc3RydWN0IGRybV9yZWN0 ICpzcmMgPSAmcGxhbmVfc3RhdGUtPnNyYzsKLQlzdHJ1Y3QgZHJtX3JlY3QgKmRzdCA9ICZwbGFu ZV9zdGF0ZS0+ZHN0OwotCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5yb3Rh dGlvbjsKLQlpbnQgaHNjYWxlLCB2c2NhbGU7Ci0KLQlXQVJOX09OKHBsYW5lX3N0YXRlLT5jcnRj ICYmIHBsYW5lX3N0YXRlLT5jcnRjICE9IGNydGNfc3RhdGUtPmNydGMpOwotCi0JKnNyYyA9IGRy bV9wbGFuZV9zdGF0ZV9zcmMocGxhbmVfc3RhdGUpOwotCSpkc3QgPSBkcm1fcGxhbmVfc3RhdGVf ZGVzdChwbGFuZV9zdGF0ZSk7Ci0KLQlpZiAoIWZiKSB7Ci0JCXBsYW5lX3N0YXRlLT52aXNpYmxl ID0gZmFsc2U7Ci0JCXJldHVybiAwOwotCX0KLQotCS8qIGNydGMgc2hvdWxkIG9ubHkgYmUgTlVM TCB3aGVuIGRpc2FibGluZyAoaS5lLiwgIWZiKSAqLwotCWlmIChXQVJOX09OKCFwbGFuZV9zdGF0 ZS0+Y3J0YykpIHsKLQkJcGxhbmVfc3RhdGUtPnZpc2libGUgPSBmYWxzZTsKLQkJcmV0dXJuIDA7 Ci0JfQotCi0JaWYgKCFjcnRjX3N0YXRlLT5lbmFibGUgJiYgIWNhbl91cGRhdGVfZGlzYWJsZWQp IHsKLQkJRFJNX0RFQlVHX0tNUygiQ2Fubm90IHVwZGF0ZSBwbGFuZSBvZiBhIGRpc2FibGVkIENS VEMuXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZHJtX3JlY3Rfcm90YXRlKHNyYywg ZmItPndpZHRoIDw8IDE2LCBmYi0+aGVpZ2h0IDw8IDE2LCByb3RhdGlvbik7Ci0KLQkvKiBDaGVj ayBzY2FsaW5nICovCi0JaHNjYWxlID0gZHJtX3JlY3RfY2FsY19oc2NhbGUoc3JjLCBkc3QsIG1p bl9zY2FsZSwgbWF4X3NjYWxlKTsKLQl2c2NhbGUgPSBkcm1fcmVjdF9jYWxjX3ZzY2FsZShzcmMs IGRzdCwgbWluX3NjYWxlLCBtYXhfc2NhbGUpOwotCWlmIChoc2NhbGUgPCAwIHx8IHZzY2FsZSA8 IDApIHsKLQkJRFJNX0RFQlVHX0tNUygiSW52YWxpZCBzY2FsaW5nIG9mIHBsYW5lXG4iKTsKLQkJ ZHJtX3JlY3RfZGVidWdfcHJpbnQoInNyYzogIiwgJnBsYW5lX3N0YXRlLT5zcmMsIHRydWUpOwot CQlkcm1fcmVjdF9kZWJ1Z19wcmludCgiZHN0OiAiLCAmcGxhbmVfc3RhdGUtPmRzdCwgZmFsc2Up OwotCQlyZXR1cm4gLUVSQU5HRTsKLQl9Ci0KLQlwbGFuZV9zdGF0ZS0+dmlzaWJsZSA9IGRybV9y ZWN0X2NsaXBfc2NhbGVkKHNyYywgZHN0LCBjbGlwLCBoc2NhbGUsIHZzY2FsZSk7Ci0KLQlkcm1f cmVjdF9yb3RhdGVfaW52KHNyYywgZmItPndpZHRoIDw8IDE2LCBmYi0+aGVpZ2h0IDw8IDE2LCBy b3RhdGlvbik7Ci0KLQlpZiAoIXBsYW5lX3N0YXRlLT52aXNpYmxlKQotCQkvKgotCQkgKiBQbGFu ZSBpc24ndCB2aXNpYmxlOyBzb21lIGRyaXZlcnMgY2FuIGhhbmRsZSB0aGlzCi0JCSAqIHNvIHdl IGp1c3QgcmV0dXJuIHN1Y2Nlc3MgaGVyZS4gIERyaXZlcnMgdGhhdCBjYW4ndAotCQkgKiAoaW5j bHVkaW5nIHRob3NlIHRoYXQgdXNlIHRoZSBwcmltYXJ5IHBsYW5lIGhlbHBlcidzCi0JCSAqIHVw ZGF0ZSBmdW5jdGlvbikgd2lsbCByZXR1cm4gYW4gZXJyb3IgZnJvbSB0aGVpcgotCQkgKiB1cGRh dGVfcGxhbmUgaGFuZGxlci4KLQkJICovCi0JCXJldHVybiAwOwotCi0JaWYgKCFjYW5fcG9zaXRp b24gJiYgIWRybV9yZWN0X2VxdWFscyhkc3QsIGNsaXApKSB7Ci0JCURSTV9ERUJVR19LTVMoIlBs YW5lIG11c3QgY292ZXIgZW50aXJlIENSVENcbiIpOwotCQlkcm1fcmVjdF9kZWJ1Z19wcmludCgi ZHN0OiAiLCBkc3QsIGZhbHNlKTsKLQkJZHJtX3JlY3RfZGVidWdfcHJpbnQoImNsaXA6ICIsIGNs aXAsIGZhbHNlKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci1FWFBP UlRfU1lNQk9MKGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUpOwotCi0vKioKICAqIGRybV9w bGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKCkgLSBDaGVjayBwbGFuZSB1cGRhdGUgZm9yIHZhbGlk aXR5CiAgKiBAcGxhbmU6IHBsYW5lIG9iamVjdCB0byB1cGRhdGUKICAqIEBjcnRjOiBvd25pbmcg Q1JUQyBvZiBvd25pbmcgcGxhbmUKQEAgLTI1NCwxMCArMTYwLDEwIEBAIGludCBkcm1fcGxhbmVf aGVscGVyX2NoZWNrX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAl9OwogCWludCBy ZXQ7CiAKLQlyZXQgPSBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3N0YXRlKCZwbGFuZV9zdGF0ZSwg JmNydGNfc3RhdGUsIGNsaXAsCi0JCQkJCSAgIG1pbl9zY2FsZSwgbWF4X3NjYWxlLAotCQkJCQkg ICBjYW5fcG9zaXRpb24sCi0JCQkJCSAgIGNhbl91cGRhdGVfZGlzYWJsZWQpOworCXJldCA9IGRy bV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0YXRlKCZwbGFuZV9zdGF0ZSwgJmNydGNfc3Rh dGUsCisJCQkJCQkgIGNsaXAsIG1pbl9zY2FsZSwgbWF4X3NjYWxlLAorCQkJCQkJICBjYW5fcG9z aXRpb24sCisJCQkJCQkgIGNhbl91cGRhdGVfZGlzYWJsZWQpOwogCWlmIChyZXQpCiAJCXJldHVy biByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxw ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuYwppbmRleCBkNDI4 YzgwNTAyNWMuLjlmM2IxYzk0ODAyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9z aW1wbGVfa21zX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19o ZWxwZXIuYwpAQCAtMTAzLDEwICsxMDMsMTEgQEAgc3RhdGljIGludCBkcm1fc2ltcGxlX2ttc19w bGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJY2xpcC54MiA9IGNy dGNfc3RhdGUtPmFkanVzdGVkX21vZGUuaGRpc3BsYXk7CiAJY2xpcC55MiA9IGNydGNfc3RhdGUt PmFkanVzdGVkX21vZGUudmRpc3BsYXk7CiAKLQlyZXQgPSBkcm1fcGxhbmVfaGVscGVyX2NoZWNr X3N0YXRlKHBsYW5lX3N0YXRlLCBjcnRjX3N0YXRlLCAmY2xpcCwKLQkJCQkJICAgRFJNX1BMQU5F X0hFTFBFUl9OT19TQ0FMSU5HLAotCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcs Ci0JCQkJCSAgIGZhbHNlLCB0cnVlKTsKKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19w bGFuZV9zdGF0ZShwbGFuZV9zdGF0ZSwgY3J0Y19zdGF0ZSwKKwkJCQkJCSAgJmNsaXAsCisJCQkJ CQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKKwkJCQkJCSAgRFJNX1BMQU5FX0hFTFBF Ul9OT19TQ0FMSU5HLAorCQkJCQkJICBmYWxzZSwgdHJ1ZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJu IHJldDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDRhNDU5NzI2YjM2 Yi4uZTBmZjU5OWQyMDkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC05 MzE2LDEyICs5MzE2LDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxfY2hlY2tfY3Vyc29yKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXUzMiBvZmZzZXQ7CiAJaW50IHJldDsKIAot CXJldCA9IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUoJnBsYW5lX3N0YXRlLT5iYXNlLAot CQkJCQkgICAmY3J0Y19zdGF0ZS0+YmFzZSwKLQkJCQkJICAgJnBsYW5lX3N0YXRlLT5jbGlwLAot CQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCi0JCQkJCSAgIERSTV9QTEFORV9I RUxQRVJfTk9fU0NBTElORywKLQkJCQkJICAgdHJ1ZSwgdHJ1ZSk7CisJcmV0ID0gZHJtX2F0b21p Y19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLT5iYXNlLAorCQkJCQkJICAm Y3J0Y19zdGF0ZS0+YmFzZSwKKwkJCQkJCSAgJnBsYW5lX3N0YXRlLT5jbGlwLAorCQkJCQkJICBE Uk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9f U0NBTElORywKKwkJCQkJCSAgdHJ1ZSwgdHJ1ZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsK IApAQCAtMTI4MDgsMTEgKzEyODA4LDExIEBAIGludGVsX2NoZWNrX3ByaW1hcnlfcGxhbmUoc3Ry dWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAkJY2FuX3Bvc2l0aW9uID0gdHJ1ZTsKIAl9CiAKLQly ZXQgPSBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3N0YXRlKCZzdGF0ZS0+YmFzZSwKLQkJCQkJICAg JmNydGNfc3RhdGUtPmJhc2UsCi0JCQkJCSAgICZzdGF0ZS0+Y2xpcCwKLQkJCQkJICAgbWluX3Nj YWxlLCBtYXhfc2NhbGUsCi0JCQkJCSAgIGNhbl9wb3NpdGlvbiwgdHJ1ZSk7CisJcmV0ID0gZHJt X2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnN0YXRlLT5iYXNlLAorCQkJCQkJICAm Y3J0Y19zdGF0ZS0+YmFzZSwKKwkJCQkJCSAgJnN0YXRlLT5jbGlwLAorCQkJCQkJICBtaW5fc2Nh bGUsIG1heF9zY2FsZSwKKwkJCQkJCSAgY2FuX3Bvc2l0aW9uLCB0cnVlKTsKIAlpZiAocmV0KQog CQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBs YW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMKaW5kZXggNTFiMjNhYzE3 NWUzLi41YTY3ZGFlZGNmNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMt cGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMKQEAgLTM0Miwx MCArMzQyLDEwIEBAIHN0YXRpYyBpbnQgaXB1X3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKIAljbGlwLnkxID0gMDsKIAljbGlwLngyID0gY3J0Y19zdGF0ZS0+YWRq dXN0ZWRfbW9kZS5oZGlzcGxheTsKIAljbGlwLnkyID0gY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9k ZS52ZGlzcGxheTsKLQlyZXQgPSBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3N0YXRlKHN0YXRlLCBj cnRjX3N0YXRlLCAmY2xpcCwKLQkJCQkJICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAot CQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCi0JCQkJCSAgIGNhbl9wb3NpdGlv biwgdHJ1ZSk7CisJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoc3Rh dGUsIGNydGNfc3RhdGUsICZjbGlwLAorCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJ TkcsCisJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKKwkJCQkJCSAgY2FuX3Bv c2l0aW9uLCB0cnVlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kcm1fcGxhbmUuYwppbmRleCA3ZWJiMzM2NTc3MDQuLjVlZjg5OGI5M2Q4 ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fcGxhbmUuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jCkBAIC0xMTEsMTAg KzExMSwxMCBAQCBzdGF0aWMgaW50IG10a19wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCiAJY2xpcC54MiA9IGNydGNfc3RhdGUtPm1vZGUuaGRpc3BsYXk7CiAJY2xp cC55MiA9IGNydGNfc3RhdGUtPm1vZGUudmRpc3BsYXk7CiAKLQlyZXR1cm4gZHJtX3BsYW5lX2hl bHBlcl9jaGVja19zdGF0ZShzdGF0ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCi0JCQkJCSAgICBEUk1f UExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCi0JCQkJCSAgICBEUk1fUExBTkVfSEVMUEVSX05PX1ND QUxJTkcsCi0JCQkJCSAgICB0cnVlLCB0cnVlKTsKKwlyZXR1cm4gZHJtX2F0b21pY19oZWxwZXJf Y2hlY2tfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGNfc3RhdGUsICZjbGlwLAorCQkJCQkJICAgRFJN X1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAorCQkJCQkJICAgRFJNX1BMQU5FX0hFTFBFUl9OT19T Q0FMSU5HLAorCQkJCQkJICAgdHJ1ZSwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIG10a19wbGFu ZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21lc29uL21lc29uX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24v bWVzb25fcGxhbmUuYwppbmRleCAyYTAwYjcyMGMzNzEuLmQwYTZhYzgzOTBmMyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL21lc29uL21lc29uX3BsYW5lLmMKQEAgLTYxLDEwICs2MSwxMCBAQCBzdGF0aWMgaW50IG1l c29uX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAljbGlwLngy ID0gY3J0Y19zdGF0ZS0+bW9kZS5oZGlzcGxheTsKIAljbGlwLnkyID0gY3J0Y19zdGF0ZS0+bW9k ZS52ZGlzcGxheTsKIAotCXJldHVybiBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3N0YXRlKHN0YXRl LCBjcnRjX3N0YXRlLCAmY2xpcCwKLQkJCQkJICAgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElO RywKLQkJCQkJICAgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKLQkJCQkJICAgIHRydWUs IHRydWUpOworCXJldHVybiBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZShzdGF0 ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCisJCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJ TkcsCisJCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJCQkJCQkgICB0cnVl LCB0cnVlKTsKIH0KIAogLyogVGFrZXMgYSBmaXhlZCAxNi4xNiBudW1iZXIgYW5kIGNvbnZlcnRz IGl0IHRvIGludGVnZXIuICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9t ZHA1L21kcDVfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFu ZS5jCmluZGV4IDFjMTk0YTk0NTNkOS4uZGYzMzYwYWNhY2NhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYwpAQCAtMzQ4LDggKzM0OCw5IEBAIHN0YXRpYyBpbnQg bWRwNV9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9zdGF0ZShzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJbWluX3NjYWxlID0gRlJBQ18xNl8xNigxLCA4KTsKIAltYXhfc2NhbGUg PSBGUkFDXzE2XzE2KDgsIDEpOwogCi0JcmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9jaGVja19zdGF0 ZShzdGF0ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCi0JCQkJCSAgIG1pbl9zY2FsZSwgbWF4X3NjYWxl LCB0cnVlLCB0cnVlKTsKKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0 ZShzdGF0ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCisJCQkJCQkgIG1pbl9zY2FsZSwgbWF4X3NjYWxl LAorCQkJCQkJICB0cnVlLCB0cnVlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L252NTBfZGlzcGxheS5jCmluZGV4IDdmMTFhODhkMDU5My4uOGFiMGZh YzM1NDRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYwpAQCAtMTE0Mywx MSArMTE0MywxMSBAQCBudjUwX2N1cnNfYWNxdWlyZShzdHJ1Y3QgbnY1MF93bmR3ICp3bmR3LCBz dHJ1Y3QgbnY1MF93bmR3X2F0b20gKmFzeXcsCiB7CiAJaW50IHJldDsKIAotCXJldCA9IGRybV9w bGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUoJmFzeXctPnN0YXRlLCAmYXN5aC0+c3RhdGUsCi0JCQkJ CSAgICZhc3l3LT5jbGlwLAotCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCi0J CQkJCSAgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKLQkJCQkJICAgdHJ1ZSwgdHJ1ZSk7 CisJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJmFzeXctPnN0YXRl LCAmYXN5aC0+c3RhdGUsCisJCQkJCQkgICZhc3l3LT5jbGlwLAorCQkJCQkJICBEUk1fUExBTkVf SEVMUEVSX05PX1NDQUxJTkcsCisJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywK KwkJCQkJCSAgdHJ1ZSwgdHJ1ZSk7CiAJYXN5aC0+Y3Vycy52aXNpYmxlID0gYXN5dy0+c3RhdGUu dmlzaWJsZTsKIAlpZiAocmV0IHx8ICFhc3loLT5jdXJzLnZpc2libGUpCiAJCXJldHVybiByZXQ7 CkBAIC0xNDMzLDExICsxNDMzLDExIEBAIG52NTBfYmFzZV9hY3F1aXJlKHN0cnVjdCBudjUwX3du ZHcgKnduZHcsIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dywKIAlpZiAoIWZiLT5mb3JtYXQt PmRlcHRoKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXJldCA9IGRybV9wbGFuZV9oZWxwZXJfY2hl Y2tfc3RhdGUoJmFzeXctPnN0YXRlLCAmYXN5aC0+c3RhdGUsCi0JCQkJCSAgICZhc3l3LT5jbGlw LAotCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCi0JCQkJCSAgIERSTV9QTEFO RV9IRUxQRVJfTk9fU0NBTElORywKLQkJCQkJICAgZmFsc2UsIHRydWUpOworCXJldCA9IGRybV9h dG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0YXRlKCZhc3l3LT5zdGF0ZSwgJmFzeWgtPnN0YXRl LAorCQkJCQkJICAmYXN5dy0+Y2xpcCwKKwkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FM SU5HLAorCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJCQkJCQkgIGZhbHNl LCB0cnVlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jIGIvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYwppbmRleCAzNmQwZjEwMWUzMGQuLmJhNzUwNTI5MmI3 OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3Au YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCkBAIC02 NTksOSArNjU5LDkgQEAgc3RhdGljIGludCB2b3BfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAogCWNsaXAueDIgPSBjcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlLmhk aXNwbGF5OwogCWNsaXAueTIgPSBjcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlLnZkaXNwbGF5Owog Ci0JcmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9jaGVja19zdGF0ZShzdGF0ZSwgY3J0Y19zdGF0ZSwg JmNsaXAsCi0JCQkJCSAgIG1pbl9zY2FsZSwgbWF4X3NjYWxlLAotCQkJCQkgICB0cnVlLCB0cnVl KTsKKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZShzdGF0ZSwgY3J0 Y19zdGF0ZSwgJmNsaXAsCisJCQkJCQkgIG1pbl9zY2FsZSwgbWF4X3NjYWxlLAorCQkJCQkJICB0 cnVlLCB0cnVlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdGVncmEvZGMuYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jCmluZGV4 IGU5NWQ5ZTJhN2Y2Yy4uZmM3MDM1MWI5MDE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v dGVncmEvZGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYwpAQCAtNDkxLDggKzQ5 MSw4IEBAIHN0YXRpYyBpbnQgdGVncmFfcGxhbmVfc3RhdGVfYWRkKHN0cnVjdCB0ZWdyYV9wbGFu ZSAqcGxhbmUsCiAJY2xpcC55MiA9IGNydGNfc3RhdGUtPm1vZGUudmRpc3BsYXk7CiAKIAkvKiBD aGVjayBwbGFuZSBzdGF0ZSBmb3IgdmlzaWJpbGl0eSBhbmQgY2FsY3VsYXRlIGNsaXBwaW5nIGJv dW5kcyAqLwotCWVyciA9IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUoc3RhdGUsIGNydGNf c3RhdGUsICZjbGlwLAotCQkJCQkgICAwLCBJTlRfTUFYLCB0cnVlLCB0cnVlKTsKKwllcnIgPSBk cm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZShzdGF0ZSwgY3J0Y19zdGF0ZSwgJmNs aXAsCisJCQkJCQkgIDAsIElOVF9NQVgsIHRydWUsIHRydWUpOwogCWlmIChlcnIgPCAwKQogCQly ZXR1cm4gZXJyOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9r bXMuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCmluZGV4IGQ5NWU3YjFj M2IxMS4uYTJhOTNkN2UyYTA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwpAQCAt NDU0LDEwICs0NTQsMTAgQEAgaW50IHZtd19kdV9wcmltYXJ5X3BsYW5lX2F0b21pY19jaGVjayhz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJY2xpcC55MiA9IGNydGNfc3RhdGUtPmFkanVzdGVk X21vZGUudmRpc3BsYXk7CiAJfQogCi0JcmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9jaGVja19zdGF0 ZShzdGF0ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCi0JCQkJCSAgIERSTV9QTEFORV9IRUxQRVJfTk9f U0NBTElORywKLQkJCQkJICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAotCQkJCQkgICBm YWxzZSwgdHJ1ZSk7CisJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUo c3RhdGUsIGNydGNfc3RhdGUsICZjbGlwLAorCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1ND QUxJTkcsCisJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKKwkJCQkJCSAgZmFs c2UsIHRydWUpOwogCiAJaWYgKCFyZXQgJiYgbmV3X2ZiKSB7CiAJCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YyA9IHN0YXRlLT5jcnRjOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9w bGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jCmluZGV4IGVlMDAwMjUyOWI4 Zi4uNjhmZDJlMmRjNzhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0venRlL3p4X3BsYW5l LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jCkBAIC04MCw5ICs4MCw5IEBA IHN0YXRpYyBpbnQgenhfdmxfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAogCWNsaXAueDIgPSBjcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlLmhkaXNwbGF5OwogCWNs aXAueTIgPSBjcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlLnZkaXNwbGF5OwogCi0JcmV0dXJuIGRy bV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUocGxhbmVfc3RhdGUsIGNydGNfc3RhdGUsICZjbGlw LAotCQkJCQkgICAgbWluX3NjYWxlLCBtYXhfc2NhbGUsCi0JCQkJCSAgICB0cnVlLCB0cnVlKTsK KwlyZXR1cm4gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUs IGNydGNfc3RhdGUsCisJCQkJCQkgICAmY2xpcCwgbWluX3NjYWxlLCBtYXhfc2NhbGUsCisJCQkJ CQkgICB0cnVlLCB0cnVlKTsKIH0KIAogc3RhdGljIGludCB6eF92bF9nZXRfZm10KHVpbnQzMl90 IGZvcm1hdCkKQEAgLTMxNSwxMCArMzE1LDExIEBAIHN0YXRpYyBpbnQgenhfZ2xfcGxhbmVfYXRv bWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWNsaXAueDIgPSBjcnRjX3N0YXRl LT5hZGp1c3RlZF9tb2RlLmhkaXNwbGF5OwogCWNsaXAueTIgPSBjcnRjX3N0YXRlLT5hZGp1c3Rl ZF9tb2RlLnZkaXNwbGF5OwogCi0JcmV0dXJuIGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUo cGxhbmVfc3RhdGUsIGNydGNfc3RhdGUsICZjbGlwLAotCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBF Ul9OT19TQ0FMSU5HLAotCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAotCQkJ CQkgICAgZmFsc2UsIHRydWUpOworCXJldHVybiBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFu ZV9zdGF0ZShwbGFuZV9zdGF0ZSwgY3J0Y19zdGF0ZSwKKwkJCQkJCSAgICZjbGlwLAorCQkJCQkJ ICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAorCQkJCQkJICAgRFJNX1BMQU5FX0hFTFBF Ul9OT19TQ0FMSU5HLAorCQkJCQkJICAgZmFsc2UsIHRydWUpOwogfQogCiBzdGF0aWMgaW50IHp4 X2dsX2dldF9mbXQodWludDMyX3QgZm9ybWF0KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJt X2F0b21pY19oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKaW5kZXgg ZDJiNTZjYzY1N2U5Li40ODQyZWU5NDg1Y2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9h dG9taWNfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaApAQCAt MzgsNiArMzgsMTMgQEAgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlOwogCiBpbnQgZHJtX2F0b21p Y19oZWxwZXJfY2hlY2tfbW9kZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCXN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CitpbnQgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tf cGxhbmVfc3RhdGUoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCisJCQkJCWNv bnN0IHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQkJY29uc3Qgc3RydWN0 IGRybV9yZWN0ICpjbGlwLAorCQkJCQlpbnQgbWluX3NjYWxlLAorCQkJCQlpbnQgbWF4X3NjYWxl LAorCQkJCQlib29sIGNhbl9wb3NpdGlvbiwKKwkJCQkJYm9vbCBjYW5fdXBkYXRlX2Rpc2FibGVk KTsKIGludCBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZXMoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogaW50IGRy bV9hdG9taWNfaGVscGVyX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCmRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9kcm1fcGxhbmVfaGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmVf aGVscGVyLmgKaW5kZXggNDFiODMwOWIwYTU3Li44YWE0OWMwZWNkNGQgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvZHJtL2RybV9wbGFuZV9oZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fcGxhbmVf aGVscGVyLmgKQEAgLTM4LDEyICszOCw2IEBACiAgKi8KICNkZWZpbmUgRFJNX1BMQU5FX0hFTFBF Ul9OT19TQ0FMSU5HICgxPDwxNikKIAotaW50IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUo c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCi0JCQkJIGNvbnN0IHN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkJCQkgY29uc3Qgc3RydWN0IGRybV9yZWN0ICpj bGlwLAotCQkJCSBpbnQgbWluX3NjYWxlLCBpbnQgbWF4X3NjYWxlLAotCQkJCSBib29sIGNhbl9w b3NpdGlvbiwKLQkJCQkgYm9vbCBjYW5fdXBkYXRlX2Rpc2FibGVkKTsKIGludCBkcm1fcGxhbmVf aGVscGVyX2NoZWNrX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCQkgIHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAotLSAK Mi4xMy42CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK