From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH 5/5] drm: Move drm_plane_helper_check_state() into drm_atomic_helper.c Date: Wed, 1 Nov 2017 20:29:20 +0200 Message-ID: <20171101182920.14386-6-ville.syrjala@linux.intel.com> References: <20171101182920.14386-1-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-1-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCmRy bV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKCkgaXNuJ3QgYSB0cmFuc2l0aW9uYWwgaGVscGVy LCBzbyBsZXQncwpyZW5hbWUgaXQgdG8gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3Rh dGUoKSBhbmQgbW92ZSBpdCBpbnRvCmRybV9hdG9taWNfaGVscGVyLmMuCgpDYzogRGFuaWVsIFZl dHRlciA8ZGFuaWVsQGZmd2xsLmNoPgpTdWdnZXN0ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmll bEBmZndsbC5jaD4KU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYXJtL2hkbGNkX2NydGMuYyAg ICAgICAgICAgIHwgICA4ICstLQogZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMg ICAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgICAg ICAgICB8ICA5NSArKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJt X3BsYW5lX2hlbHBlci5jICAgICAgICAgIHwgMTAzICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuYyAgICAgfCAgIDkgKy0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAgIHwgIDIyICsrKy0t LQogZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFuZS5jICAgICAgICAgICB8ICAgOCArLS0K IGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX3BsYW5lLmMgICAgfCAgIDggKy0tCiBk cml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fcGxhbmUuYyAgICAgICAgIHwgICA4ICstLQogZHJp dmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMgICB8ICAgNSArLQogZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbnY1MF9kaXNwbGF5LmMgICAgICB8ICAyMCArKystLS0KIGRyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgfCAgIDYgKy0KIGRyaXZlcnMv Z3B1L2RybS90ZWdyYS9kYy5jICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jICAgICAgICAgfCAgIDggKy0tCiBkcml2ZXJzL2dwdS9k cm0venRlL3p4X3BsYW5lLmMgICAgICAgICAgICAgIHwgIDE1ICsrLS0KIGluY2x1ZGUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmggICAgICAgICAgICAgfCAgIDcgKysKIGluY2x1ZGUvZHJtL2RybV9w bGFuZV9oZWxwZXIuaCAgICAgICAgICAgICAgfCAgIDYgLS0KIDE3IGZpbGVzIGNoYW5nZWQsIDE3 MCBpbnNlcnRpb25zKCspLCAxNjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FybS9oZGxjZF9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2hkbGNkX2NydGMu YwppbmRleCAxNDcyMTcyM2ZhOGEuLjYzNTExYTNiYmY2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FybS9oZGxjZF9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9j cnRjLmMKQEAgLTI1MiwxMCArMjUyLDEwIEBAIHN0YXRpYyBpbnQgaGRsY2RfcGxhbmVfYXRvbWlj X2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWNsaXAueDIgPSBjcnRjX3N0YXRlLT5h ZGp1c3RlZF9tb2RlLmhkaXNwbGF5OwogCWNsaXAueTIgPSBjcnRjX3N0YXRlLT5hZGp1c3RlZF9t b2RlLnZkaXNwbGF5OwogCi0JcmV0dXJuIGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUoc3Rh dGUsIGNydGNfc3RhdGUsICZjbGlwLAotCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FM SU5HLAotCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAotCQkJCQkgICAgZmFs c2UsIHRydWUpOworCXJldHVybiBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZShz dGF0ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCisJCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1ND QUxJTkcsCisJCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJCQkJCQkgICBm YWxzZSwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGhkbGNkX3BsYW5lX2F0b21pY191cGRhdGUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJt L21hbGlkcF9wbGFuZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCmlu ZGV4IDQ5MmQ5OWRkNTVkNC4uNzJhMDc5NTAxNjdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYXJtL21hbGlkcF9wbGFuZXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9w bGFuZXMuYwpAQCAtMTUwLDggKzE1MCw4IEBAIHN0YXRpYyBpbnQgbWFsaWRwX3NlX2NoZWNrX3Nj YWxpbmcoc3RydWN0IG1hbGlkcF9wbGFuZSAqbXAsCiAKIAljbGlwLngyID0gY3J0Y19zdGF0ZS0+ YWRqdXN0ZWRfbW9kZS5oZGlzcGxheTsKIAljbGlwLnkyID0gY3J0Y19zdGF0ZS0+YWRqdXN0ZWRf bW9kZS52ZGlzcGxheTsKLQlyZXQgPSBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3N0YXRlKHN0YXRl LCBjcnRjX3N0YXRlLCAmY2xpcCwKLQkJCQkJICAgMCwgSU5UX01BWCwgdHJ1ZSwgdHJ1ZSk7CisJ cmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGNfc3Rh dGUsICZjbGlwLAorCQkJCQkJICAwLCBJTlRfTUFYLCB0cnVlLCB0cnVlKTsKIAlpZiAocmV0KQog CQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IDcxZDcx MmYxYjU2YS4uNzU5NWFkOGFkMmYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpA QCAtNjk2LDYgKzY5NiwxMDEgQEAgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfbW9kZXNldChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jaGVj a19tb2Rlc2V0KTsKIAogLyoqCisgKiBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0 ZSgpIC0gQ2hlY2sgcGxhbmUgc3RhdGUgZm9yIHZhbGlkaXR5CisgKiBAcGxhbmVfc3RhdGU6IHBs YW5lIHN0YXRlIHRvIGNoZWNrCisgKiBAY3J0Y19zdGF0ZTogY3J0YyBzdGF0ZSB0byBjaGVjawor ICogQGNsaXA6IGludGVnZXIgY2xpcHBpbmcgY29vcmRpbmF0ZXMKKyAqIEBtaW5fc2NhbGU6IG1p bmltdW0gQHNyYzpAZGVzdCBzY2FsaW5nIGZhY3RvciBpbiAxNi4xNiBmaXhlZCBwb2ludAorICog QG1heF9zY2FsZTogbWF4aW11bSBAc3JjOkBkZXN0IHNjYWxpbmcgZmFjdG9yIGluIDE2LjE2IGZp eGVkIHBvaW50CisgKiBAY2FuX3Bvc2l0aW9uOiBpcyBpdCBsZWdhbCB0byBwb3NpdGlvbiB0aGUg cGxhbmUgc3VjaCB0aGF0IGl0CisgKiAgICAgICAgICAgICAgICBkb2Vzbid0IGNvdmVyIHRoZSBl bnRpcmUgY3J0Yz8gIFRoaXMgd2lsbCBnZW5lcmFsbHkKKyAqICAgICAgICAgICAgICAgIG9ubHkg YmUgZmFsc2UgZm9yIHByaW1hcnkgcGxhbmVzLgorICogQGNhbl91cGRhdGVfZGlzYWJsZWQ6IGNh biB0aGUgcGxhbmUgYmUgdXBkYXRlZCB3aGlsZSB0aGUgY3J0YworICogICAgICAgICAgICAgICAg ICAgICAgIGlzIGRpc2FibGVkPworICoKKyAqIENoZWNrcyB0aGF0IGEgZGVzaXJlZCBwbGFuZSB1 cGRhdGUgaXMgdmFsaWQsIGFuZCB1cGRhdGVzIHZhcmlvdXMKKyAqIGJpdHMgb2YgZGVyaXZlZCBz dGF0ZSAoY2xpcHBlZCBjb29yZGluYXRlcyBldGMuKS4gRHJpdmVycyB0aGF0IHByb3ZpZGUKKyAq IHRoZWlyIG93biBwbGFuZSBoYW5kbGluZyByYXRoZXIgdGhhbiBoZWxwZXItcHJvdmlkZWQgaW1w bGVtZW50YXRpb25zIG1heQorICogc3RpbGwgd2lzaCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gdG8g YXZvaWQgZHVwbGljYXRpb24gb2YgZXJyb3IgY2hlY2tpbmcKKyAqIGNvZGUuCisgKgorICogUkVU VVJOUzoKKyAqIFplcm8gaWYgdXBkYXRlIGFwcGVhcnMgdmFsaWQsIGVycm9yIGNvZGUgb24gZmFp bHVyZQorICovCitpbnQgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCisJCQkJCWNvbnN0IHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQkJY29uc3Qgc3RydWN0IGRybV9yZWN0ICpjbGlwLAor CQkJCQlpbnQgbWluX3NjYWxlLAorCQkJCQlpbnQgbWF4X3NjYWxlLAorCQkJCQlib29sIGNhbl9w b3NpdGlvbiwKKwkJCQkJYm9vbCBjYW5fdXBkYXRlX2Rpc2FibGVkKQoreworCXN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmZiOworCXN0cnVjdCBkcm1fcmVjdCAqc3Jj ID0gJnBsYW5lX3N0YXRlLT5zcmM7CisJc3RydWN0IGRybV9yZWN0ICpkc3QgPSAmcGxhbmVfc3Rh dGUtPmRzdDsKKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+cm90YXRpb247 CisJaW50IGhzY2FsZSwgdnNjYWxlOworCisJV0FSTl9PTighY3J0Y19zdGF0ZSAhPSAhcGxhbmVf c3RhdGUtPmNydGMpOworCVdBUk5fT04oY3J0Y19zdGF0ZSAmJiBjcnRjX3N0YXRlLT5jcnRjICE9 IHBsYW5lX3N0YXRlLT5jcnRjKTsKKworCSpzcmMgPSBkcm1fcGxhbmVfc3RhdGVfc3JjKHBsYW5l X3N0YXRlKTsKKwkqZHN0ID0gZHJtX3BsYW5lX3N0YXRlX2Rlc3QocGxhbmVfc3RhdGUpOworCisJ aWYgKCFmYikgeworCQlwbGFuZV9zdGF0ZS0+dmlzaWJsZSA9IGZhbHNlOworCQlyZXR1cm4gMDsK Kwl9CisKKwkvKiBjcnRjIHNob3VsZCBvbmx5IGJlIE5VTEwgd2hlbiBkaXNhYmxpbmcgKGkuZS4s ICFmYikgKi8KKwlpZiAoV0FSTl9PTighcGxhbmVfc3RhdGUtPmNydGMpKSB7CisJCXBsYW5lX3N0 YXRlLT52aXNpYmxlID0gZmFsc2U7CisJCXJldHVybiAwOworCX0KKworCWlmICghY3J0Y19zdGF0 ZS0+ZW5hYmxlICYmICFjYW5fdXBkYXRlX2Rpc2FibGVkKSB7CisJCURSTV9ERUJVR19LTVMoIkNh bm5vdCB1cGRhdGUgcGxhbmUgb2YgYSBkaXNhYmxlZCBDUlRDLlxuIik7CisJCXJldHVybiAtRUlO VkFMOworCX0KKworCWRybV9yZWN0X3JvdGF0ZShzcmMsIGZiLT53aWR0aCA8PCAxNiwgZmItPmhl aWdodCA8PCAxNiwgcm90YXRpb24pOworCisJLyogQ2hlY2sgc2NhbGluZyAqLworCWhzY2FsZSA9 IGRybV9yZWN0X2NhbGNfaHNjYWxlKHNyYywgZHN0LCBtaW5fc2NhbGUsIG1heF9zY2FsZSk7CisJ dnNjYWxlID0gZHJtX3JlY3RfY2FsY192c2NhbGUoc3JjLCBkc3QsIG1pbl9zY2FsZSwgbWF4X3Nj YWxlKTsKKwlpZiAoaHNjYWxlIDwgMCB8fCB2c2NhbGUgPCAwKSB7CisJCURSTV9ERUJVR19LTVMo IkludmFsaWQgc2NhbGluZyBvZiBwbGFuZVxuIik7CisJCWRybV9yZWN0X2RlYnVnX3ByaW50KCJz cmM6ICIsICZwbGFuZV9zdGF0ZS0+c3JjLCB0cnVlKTsKKwkJZHJtX3JlY3RfZGVidWdfcHJpbnQo ImRzdDogIiwgJnBsYW5lX3N0YXRlLT5kc3QsIGZhbHNlKTsKKwkJcmV0dXJuIC1FUkFOR0U7CisJ fQorCisJcGxhbmVfc3RhdGUtPnZpc2libGUgPSBkcm1fcmVjdF9jbGlwX3NjYWxlZChzcmMsIGRz dCwgY2xpcCwgaHNjYWxlLCB2c2NhbGUpOworCisJZHJtX3JlY3Rfcm90YXRlX2ludihzcmMsIGZi LT53aWR0aCA8PCAxNiwgZmItPmhlaWdodCA8PCAxNiwgcm90YXRpb24pOworCisJaWYgKCFwbGFu ZV9zdGF0ZS0+dmlzaWJsZSkKKwkJLyoKKwkJICogUGxhbmUgaXNuJ3QgdmlzaWJsZTsgc29tZSBk cml2ZXJzIGNhbiBoYW5kbGUgdGhpcworCQkgKiBzbyB3ZSBqdXN0IHJldHVybiBzdWNjZXNzIGhl cmUuICBEcml2ZXJzIHRoYXQgY2FuJ3QKKwkJICogKGluY2x1ZGluZyB0aG9zZSB0aGF0IHVzZSB0 aGUgcHJpbWFyeSBwbGFuZSBoZWxwZXIncworCQkgKiB1cGRhdGUgZnVuY3Rpb24pIHdpbGwgcmV0 dXJuIGFuIGVycm9yIGZyb20gdGhlaXIKKwkJICogdXBkYXRlX3BsYW5lIGhhbmRsZXIuCisJCSAq LworCQlyZXR1cm4gMDsKKworCWlmICghY2FuX3Bvc2l0aW9uICYmICFkcm1fcmVjdF9lcXVhbHMo ZHN0LCBjbGlwKSkgeworCQlEUk1fREVCVUdfS01TKCJQbGFuZSBtdXN0IGNvdmVyIGVudGlyZSBD UlRDXG4iKTsKKwkJZHJtX3JlY3RfZGVidWdfcHJpbnQoImRzdDogIiwgZHN0LCBmYWxzZSk7CisJ CWRybV9yZWN0X2RlYnVnX3ByaW50KCJjbGlwOiAiLCBjbGlwLCBmYWxzZSk7CisJCXJldHVybiAt RUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hl bHBlcl9jaGVja19wbGFuZV9zdGF0ZSk7CisKKy8qKgogICogZHJtX2F0b21pY19oZWxwZXJfY2hl Y2tfcGxhbmVzIC0gdmFsaWRhdGUgc3RhdGUgb2JqZWN0IGZvciBwbGFuZXMgY2hhbmdlcwogICog QGRldjogRFJNIGRldmljZQogICogQHN0YXRlOiB0aGUgZHJpdmVyIHN0YXRlIG9iamVjdApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKaW5kZXggYWRiOGQ5NDQ4NGYyLi5mMWJlOGNkNGUzODcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9wbGFuZV9oZWxwZXIuYwpAQCAtMTAwLDEwMSArMTAwLDYgQEAgc3Rh dGljIGludCBnZXRfY29ubmVjdG9yc19mb3JfY3J0YyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiB9 CiAKIC8qKgotICogZHJtX3BsYW5lX2hlbHBlcl9jaGVja19zdGF0ZSgpIC0gQ2hlY2sgcGxhbmUg c3RhdGUgZm9yIHZhbGlkaXR5Ci0gKiBAcGxhbmVfc3RhdGU6IHBsYW5lIHN0YXRlIHRvIGNoZWNr Ci0gKiBAY3J0Y19zdGF0ZTogY3J0YyBzdGF0ZSB0byBjaGVjawotICogQGNsaXA6IGludGVnZXIg Y2xpcHBpbmcgY29vcmRpbmF0ZXMKLSAqIEBtaW5fc2NhbGU6IG1pbmltdW0gQHNyYzpAZGVzdCBz Y2FsaW5nIGZhY3RvciBpbiAxNi4xNiBmaXhlZCBwb2ludAotICogQG1heF9zY2FsZTogbWF4aW11 bSBAc3JjOkBkZXN0IHNjYWxpbmcgZmFjdG9yIGluIDE2LjE2IGZpeGVkIHBvaW50Ci0gKiBAY2Fu X3Bvc2l0aW9uOiBpcyBpdCBsZWdhbCB0byBwb3NpdGlvbiB0aGUgcGxhbmUgc3VjaCB0aGF0IGl0 Ci0gKiAgICAgICAgICAgICAgICBkb2Vzbid0IGNvdmVyIHRoZSBlbnRpcmUgY3J0Yz8gIFRoaXMg d2lsbCBnZW5lcmFsbHkKLSAqICAgICAgICAgICAgICAgIG9ubHkgYmUgZmFsc2UgZm9yIHByaW1h cnkgcGxhbmVzLgotICogQGNhbl91cGRhdGVfZGlzYWJsZWQ6IGNhbiB0aGUgcGxhbmUgYmUgdXBk YXRlZCB3aGlsZSB0aGUgY3J0YwotICogICAgICAgICAgICAgICAgICAgICAgIGlzIGRpc2FibGVk PwotICoKLSAqIENoZWNrcyB0aGF0IGEgZGVzaXJlZCBwbGFuZSB1cGRhdGUgaXMgdmFsaWQsIGFu ZCB1cGRhdGVzIHZhcmlvdXMKLSAqIGJpdHMgb2YgZGVyaXZlZCBzdGF0ZSAoY2xpcHBlZCBjb29y ZGluYXRlcyBldGMuKS4gRHJpdmVycyB0aGF0IHByb3ZpZGUKLSAqIHRoZWlyIG93biBwbGFuZSBo YW5kbGluZyByYXRoZXIgdGhhbiBoZWxwZXItcHJvdmlkZWQgaW1wbGVtZW50YXRpb25zIG1heQot ICogc3RpbGwgd2lzaCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gYXZvaWQgZHVwbGljYXRpb24g b2YgZXJyb3IgY2hlY2tpbmcKLSAqIGNvZGUuCi0gKgotICogUkVUVVJOUzoKLSAqIFplcm8gaWYg dXBkYXRlIGFwcGVhcnMgdmFsaWQsIGVycm9yIGNvZGUgb24gZmFpbHVyZQotICovCi1pbnQgZHJt X3BsYW5lX2hlbHBlcl9jaGVja19zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSwKLQkJCQkgY29uc3Qgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJ CSBjb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAsCi0JCQkJIGludCBtaW5fc2NhbGUsCi0JCQkJ IGludCBtYXhfc2NhbGUsCi0JCQkJIGJvb2wgY2FuX3Bvc2l0aW9uLAotCQkJCSBib29sIGNhbl91 cGRhdGVfZGlzYWJsZWQpCi17Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+ZmI7Ci0Jc3RydWN0IGRybV9yZWN0ICpzcmMgPSAmcGxhbmVfc3RhdGUtPnNyYzsKLQlz dHJ1Y3QgZHJtX3JlY3QgKmRzdCA9ICZwbGFuZV9zdGF0ZS0+ZHN0OwotCXVuc2lnbmVkIGludCBy b3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5yb3RhdGlvbjsKLQlpbnQgaHNjYWxlLCB2c2NhbGU7Ci0K LQlXQVJOX09OKCFjcnRjX3N0YXRlICE9ICFwbGFuZV9zdGF0ZS0+Y3J0Yyk7Ci0JV0FSTl9PTihj cnRjX3N0YXRlICYmIGNydGNfc3RhdGUtPmNydGMgIT0gcGxhbmVfc3RhdGUtPmNydGMpOwotCi0J KnNyYyA9IGRybV9wbGFuZV9zdGF0ZV9zcmMocGxhbmVfc3RhdGUpOwotCSpkc3QgPSBkcm1fcGxh bmVfc3RhdGVfZGVzdChwbGFuZV9zdGF0ZSk7Ci0KLQlpZiAoIWZiKSB7Ci0JCXBsYW5lX3N0YXRl LT52aXNpYmxlID0gZmFsc2U7Ci0JCXJldHVybiAwOwotCX0KLQotCS8qIGNydGMgc2hvdWxkIG9u bHkgYmUgTlVMTCB3aGVuIGRpc2FibGluZyAoaS5lLiwgIWZiKSAqLwotCWlmIChXQVJOX09OKCFw bGFuZV9zdGF0ZS0+Y3J0YykpIHsKLQkJcGxhbmVfc3RhdGUtPnZpc2libGUgPSBmYWxzZTsKLQkJ cmV0dXJuIDA7Ci0JfQotCi0JaWYgKCFjcnRjX3N0YXRlLT5lbmFibGUgJiYgIWNhbl91cGRhdGVf ZGlzYWJsZWQpIHsKLQkJRFJNX0RFQlVHX0tNUygiQ2Fubm90IHVwZGF0ZSBwbGFuZSBvZiBhIGRp c2FibGVkIENSVEMuXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZHJtX3JlY3Rfcm90 YXRlKHNyYywgZmItPndpZHRoIDw8IDE2LCBmYi0+aGVpZ2h0IDw8IDE2LCByb3RhdGlvbik7Ci0K LQkvKiBDaGVjayBzY2FsaW5nICovCi0JaHNjYWxlID0gZHJtX3JlY3RfY2FsY19oc2NhbGUoc3Jj LCBkc3QsIG1pbl9zY2FsZSwgbWF4X3NjYWxlKTsKLQl2c2NhbGUgPSBkcm1fcmVjdF9jYWxjX3Zz Y2FsZShzcmMsIGRzdCwgbWluX3NjYWxlLCBtYXhfc2NhbGUpOwotCWlmIChoc2NhbGUgPCAwIHx8 IHZzY2FsZSA8IDApIHsKLQkJRFJNX0RFQlVHX0tNUygiSW52YWxpZCBzY2FsaW5nIG9mIHBsYW5l XG4iKTsKLQkJZHJtX3JlY3RfZGVidWdfcHJpbnQoInNyYzogIiwgJnBsYW5lX3N0YXRlLT5zcmMs IHRydWUpOwotCQlkcm1fcmVjdF9kZWJ1Z19wcmludCgiZHN0OiAiLCAmcGxhbmVfc3RhdGUtPmRz dCwgZmFsc2UpOwotCQlyZXR1cm4gLUVSQU5HRTsKLQl9Ci0KLQlwbGFuZV9zdGF0ZS0+dmlzaWJs ZSA9IGRybV9yZWN0X2NsaXBfc2NhbGVkKHNyYywgZHN0LCBjbGlwLCBoc2NhbGUsIHZzY2FsZSk7 Ci0KLQlkcm1fcmVjdF9yb3RhdGVfaW52KHNyYywgZmItPndpZHRoIDw8IDE2LCBmYi0+aGVpZ2h0 IDw8IDE2LCByb3RhdGlvbik7Ci0KLQlpZiAoIXBsYW5lX3N0YXRlLT52aXNpYmxlKQotCQkvKgot CQkgKiBQbGFuZSBpc24ndCB2aXNpYmxlOyBzb21lIGRyaXZlcnMgY2FuIGhhbmRsZSB0aGlzCi0J CSAqIHNvIHdlIGp1c3QgcmV0dXJuIHN1Y2Nlc3MgaGVyZS4gIERyaXZlcnMgdGhhdCBjYW4ndAot CQkgKiAoaW5jbHVkaW5nIHRob3NlIHRoYXQgdXNlIHRoZSBwcmltYXJ5IHBsYW5lIGhlbHBlcidz Ci0JCSAqIHVwZGF0ZSBmdW5jdGlvbikgd2lsbCByZXR1cm4gYW4gZXJyb3IgZnJvbSB0aGVpcgot CQkgKiB1cGRhdGVfcGxhbmUgaGFuZGxlci4KLQkJICovCi0JCXJldHVybiAwOwotCi0JaWYgKCFj YW5fcG9zaXRpb24gJiYgIWRybV9yZWN0X2VxdWFscyhkc3QsIGNsaXApKSB7Ci0JCURSTV9ERUJV R19LTVMoIlBsYW5lIG11c3QgY292ZXIgZW50aXJlIENSVENcbiIpOwotCQlkcm1fcmVjdF9kZWJ1 Z19wcmludCgiZHN0OiAiLCBkc3QsIGZhbHNlKTsKLQkJZHJtX3JlY3RfZGVidWdfcHJpbnQoImNs aXA6ICIsIGNsaXAsIGZhbHNlKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcmV0dXJuIDA7 Ci19Ci1FWFBPUlRfU1lNQk9MKGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUpOwotCi0vKioK ICAqIGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKCkgLSBDaGVjayBwbGFuZSB1cGRhdGUg Zm9yIHZhbGlkaXR5CiAgKiBAcGxhbmU6IHBsYW5lIG9iamVjdCB0byB1cGRhdGUKICAqIEBjcnRj OiBvd25pbmcgQ1JUQyBvZiBvd25pbmcgcGxhbmUKQEAgLTI1NSwxMCArMTYwLDEwIEBAIGludCBk cm1fcGxhbmVfaGVscGVyX2NoZWNrX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAl9 OwogCWludCByZXQ7CiAKLQlyZXQgPSBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3N0YXRlKCZwbGFu ZV9zdGF0ZSwgJmNydGNfc3RhdGUsIGNsaXAsCi0JCQkJCSAgIG1pbl9zY2FsZSwgbWF4X3NjYWxl LAotCQkJCQkgICBjYW5fcG9zaXRpb24sCi0JCQkJCSAgIGNhbl91cGRhdGVfZGlzYWJsZWQpOwor CXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0YXRlKCZwbGFuZV9zdGF0ZSwg JmNydGNfc3RhdGUsCisJCQkJCQkgIGNsaXAsIG1pbl9zY2FsZSwgbWF4X3NjYWxlLAorCQkJCQkJ ICBjYW5fcG9zaXRpb24sCisJCQkJCQkgIGNhbl91cGRhdGVfZGlzYWJsZWQpOwogCWlmIChyZXQp CiAJCXJldHVybiByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxl X2ttc19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuYwpp bmRleCBkNDI4YzgwNTAyNWMuLjlmM2IxYzk0ODAyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2lt cGxlX2ttc19oZWxwZXIuYwpAQCAtMTAzLDEwICsxMDMsMTEgQEAgc3RhdGljIGludCBkcm1fc2lt cGxlX2ttc19wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJY2xp cC54MiA9IGNydGNfc3RhdGUtPmFkanVzdGVkX21vZGUuaGRpc3BsYXk7CiAJY2xpcC55MiA9IGNy dGNfc3RhdGUtPmFkanVzdGVkX21vZGUudmRpc3BsYXk7CiAKLQlyZXQgPSBkcm1fcGxhbmVfaGVs cGVyX2NoZWNrX3N0YXRlKHBsYW5lX3N0YXRlLCBjcnRjX3N0YXRlLCAmY2xpcCwKLQkJCQkJICAg RFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAotCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05P X1NDQUxJTkcsCi0JCQkJCSAgIGZhbHNlLCB0cnVlKTsKKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBl cl9jaGVja19wbGFuZV9zdGF0ZShwbGFuZV9zdGF0ZSwgY3J0Y19zdGF0ZSwKKwkJCQkJCSAgJmNs aXAsCisJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKKwkJCQkJCSAgRFJNX1BM QU5FX0hFTFBFUl9OT19TQ0FMSU5HLAorCQkJCQkJICBmYWxzZSwgdHJ1ZSk7CiAJaWYgKHJldCkK IAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDRh NDU5NzI2YjM2Yi4uZTBmZjU5OWQyMDkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCkBAIC05MzE2LDEyICs5MzE2LDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxfY2hlY2tfY3Vyc29y KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXUzMiBvZmZzZXQ7CiAJaW50 IHJldDsKIAotCXJldCA9IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUoJnBsYW5lX3N0YXRl LT5iYXNlLAotCQkJCQkgICAmY3J0Y19zdGF0ZS0+YmFzZSwKLQkJCQkJICAgJnBsYW5lX3N0YXRl LT5jbGlwLAotCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCi0JCQkJCSAgIERS TV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKLQkJCQkJICAgdHJ1ZSwgdHJ1ZSk7CisJcmV0ID0g ZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLT5iYXNlLAor CQkJCQkJICAmY3J0Y19zdGF0ZS0+YmFzZSwKKwkJCQkJCSAgJnBsYW5lX3N0YXRlLT5jbGlwLAor CQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJCQkJCQkgIERSTV9QTEFORV9I RUxQRVJfTk9fU0NBTElORywKKwkJCQkJCSAgdHJ1ZSwgdHJ1ZSk7CiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIApAQCAtMTI4MDgsMTEgKzEyODA4LDExIEBAIGludGVsX2NoZWNrX3ByaW1hcnlf cGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAkJY2FuX3Bvc2l0aW9uID0gdHJ1ZTsK IAl9CiAKLQlyZXQgPSBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3N0YXRlKCZzdGF0ZS0+YmFzZSwK LQkJCQkJICAgJmNydGNfc3RhdGUtPmJhc2UsCi0JCQkJCSAgICZzdGF0ZS0+Y2xpcCwKLQkJCQkJ ICAgbWluX3NjYWxlLCBtYXhfc2NhbGUsCi0JCQkJCSAgIGNhbl9wb3NpdGlvbiwgdHJ1ZSk7CisJ cmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnN0YXRlLT5iYXNlLAor CQkJCQkJICAmY3J0Y19zdGF0ZS0+YmFzZSwKKwkJCQkJCSAgJnN0YXRlLT5jbGlwLAorCQkJCQkJ ICBtaW5fc2NhbGUsIG1heF9zY2FsZSwKKwkJCQkJCSAgY2FuX3Bvc2l0aW9uLCB0cnVlKTsKIAlp ZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14 L2lwdXYzLXBsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMKaW5kZXgg NTFiMjNhYzE3NWUzLi41YTY3ZGFlZGNmNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p bXgvaXB1djMtcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMK QEAgLTM0MiwxMCArMzQyLDEwIEBAIHN0YXRpYyBpbnQgaXB1X3BsYW5lX2F0b21pY19jaGVjayhz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAljbGlwLnkxID0gMDsKIAljbGlwLngyID0gY3J0Y19z dGF0ZS0+YWRqdXN0ZWRfbW9kZS5oZGlzcGxheTsKIAljbGlwLnkyID0gY3J0Y19zdGF0ZS0+YWRq dXN0ZWRfbW9kZS52ZGlzcGxheTsKLQlyZXQgPSBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3N0YXRl KHN0YXRlLCBjcnRjX3N0YXRlLCAmY2xpcCwKLQkJCQkJICAgRFJNX1BMQU5FX0hFTFBFUl9OT19T Q0FMSU5HLAotCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCi0JCQkJCSAgIGNh bl9wb3NpdGlvbiwgdHJ1ZSk7CisJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVf c3RhdGUoc3RhdGUsIGNydGNfc3RhdGUsICZjbGlwLAorCQkJCQkJICBEUk1fUExBTkVfSEVMUEVS X05PX1NDQUxJTkcsCisJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKKwkJCQkJ CSAgY2FuX3Bvc2l0aW9uLCB0cnVlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fcGxhbmUuYwppbmRleCA3ZWJiMzM2NTc3MDQuLjVl Zjg5OGI5M2Q4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f cGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jCkBA IC0xMTEsMTAgKzExMSwxMCBAQCBzdGF0aWMgaW50IG10a19wbGFuZV9hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJY2xpcC54MiA9IGNydGNfc3RhdGUtPm1vZGUuaGRpc3Bs YXk7CiAJY2xpcC55MiA9IGNydGNfc3RhdGUtPm1vZGUudmRpc3BsYXk7CiAKLQlyZXR1cm4gZHJt X3BsYW5lX2hlbHBlcl9jaGVja19zdGF0ZShzdGF0ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCi0JCQkJ CSAgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCi0JCQkJCSAgICBEUk1fUExBTkVfSEVM UEVSX05PX1NDQUxJTkcsCi0JCQkJCSAgICB0cnVlLCB0cnVlKTsKKwlyZXR1cm4gZHJtX2F0b21p Y19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGNfc3RhdGUsICZjbGlwLAorCQkJ CQkJICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAorCQkJCQkJICAgRFJNX1BMQU5FX0hF TFBFUl9OT19TQ0FMSU5HLAorCQkJCQkJICAgdHJ1ZSwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyB2b2lk IG10a19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9k cm0vbWVzb24vbWVzb25fcGxhbmUuYwppbmRleCAyYTAwYjcyMGMzNzEuLmQwYTZhYzgzOTBmMyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3BsYW5lLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL21lc29uL21lc29uX3BsYW5lLmMKQEAgLTYxLDEwICs2MSwxMCBAQCBzdGF0 aWMgaW50IG1lc29uX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAljbGlwLngyID0gY3J0Y19zdGF0ZS0+bW9kZS5oZGlzcGxheTsKIAljbGlwLnkyID0gY3J0Y19z dGF0ZS0+bW9kZS52ZGlzcGxheTsKIAotCXJldHVybiBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3N0 YXRlKHN0YXRlLCBjcnRjX3N0YXRlLCAmY2xpcCwKLQkJCQkJICAgIERSTV9QTEFORV9IRUxQRVJf Tk9fU0NBTElORywKLQkJCQkJICAgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKLQkJCQkJ ICAgIHRydWUsIHRydWUpOworCXJldHVybiBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9z dGF0ZShzdGF0ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCisJCQkJCQkgICBEUk1fUExBTkVfSEVMUEVS X05PX1NDQUxJTkcsCisJCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJCQkJ CQkgICB0cnVlLCB0cnVlKTsKIH0KIAogLyogVGFrZXMgYSBmaXhlZCAxNi4xNiBudW1iZXIgYW5k IGNvbnZlcnRzIGl0IHRvIGludGVnZXIuICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUv bWRwNV9wbGFuZS5jCmluZGV4IDFjMTk0YTk0NTNkOS4uZGYzMzYwYWNhY2NhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYwpAQCAtMzQ4LDggKzM0OCw5IEBAIHN0 YXRpYyBpbnQgbWRwNV9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9zdGF0ZShzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJbWluX3NjYWxlID0gRlJBQ18xNl8xNigxLCA4KTsKIAlt YXhfc2NhbGUgPSBGUkFDXzE2XzE2KDgsIDEpOwogCi0JcmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9j aGVja19zdGF0ZShzdGF0ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCi0JCQkJCSAgIG1pbl9zY2FsZSwg bWF4X3NjYWxlLCB0cnVlLCB0cnVlKTsKKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19w bGFuZV9zdGF0ZShzdGF0ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCisJCQkJCQkgIG1pbl9zY2FsZSwg bWF4X3NjYWxlLAorCQkJCQkJICB0cnVlLCB0cnVlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0 OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZGlzcGxheS5jCmluZGV4IDdmMTFhODhkMDU5 My4uOGFiMGZhYzM1NDRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUw X2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYwpA QCAtMTE0MywxMSArMTE0MywxMSBAQCBudjUwX2N1cnNfYWNxdWlyZShzdHJ1Y3QgbnY1MF93bmR3 ICp3bmR3LCBzdHJ1Y3QgbnY1MF93bmR3X2F0b20gKmFzeXcsCiB7CiAJaW50IHJldDsKIAotCXJl dCA9IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUoJmFzeXctPnN0YXRlLCAmYXN5aC0+c3Rh dGUsCi0JCQkJCSAgICZhc3l3LT5jbGlwLAotCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1ND QUxJTkcsCi0JCQkJCSAgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKLQkJCQkJICAgdHJ1 ZSwgdHJ1ZSk7CisJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJmFz eXctPnN0YXRlLCAmYXN5aC0+c3RhdGUsCisJCQkJCQkgICZhc3l3LT5jbGlwLAorCQkJCQkJICBE Uk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9f U0NBTElORywKKwkJCQkJCSAgdHJ1ZSwgdHJ1ZSk7CiAJYXN5aC0+Y3Vycy52aXNpYmxlID0gYXN5 dy0+c3RhdGUudmlzaWJsZTsKIAlpZiAocmV0IHx8ICFhc3loLT5jdXJzLnZpc2libGUpCiAJCXJl dHVybiByZXQ7CkBAIC0xNDMzLDExICsxNDMzLDExIEBAIG52NTBfYmFzZV9hY3F1aXJlKHN0cnVj dCBudjUwX3duZHcgKnduZHcsIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dywKIAlpZiAoIWZi LT5mb3JtYXQtPmRlcHRoKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXJldCA9IGRybV9wbGFuZV9o ZWxwZXJfY2hlY2tfc3RhdGUoJmFzeXctPnN0YXRlLCAmYXN5aC0+c3RhdGUsCi0JCQkJCSAgICZh c3l3LT5jbGlwLAotCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCi0JCQkJCSAg IERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKLQkJCQkJICAgZmFsc2UsIHRydWUpOworCXJl dCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0YXRlKCZhc3l3LT5zdGF0ZSwgJmFz eWgtPnN0YXRlLAorCQkJCQkJICAmYXN5dy0+Y2xpcCwKKwkJCQkJCSAgRFJNX1BMQU5FX0hFTFBF Ul9OT19TQ0FMSU5HLAorCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJCQkJ CQkgIGZhbHNlLCB0cnVlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jIGIvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYwppbmRleCAzNmQwZjEwMWUzMGQuLmJh NzUwNTI5MmI3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlw X2RybV92b3AuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3Zv cC5jCkBAIC02NTksOSArNjU5LDkgQEAgc3RhdGljIGludCB2b3BfcGxhbmVfYXRvbWljX2NoZWNr KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWNsaXAueDIgPSBjcnRjX3N0YXRlLT5hZGp1c3Rl ZF9tb2RlLmhkaXNwbGF5OwogCWNsaXAueTIgPSBjcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlLnZk aXNwbGF5OwogCi0JcmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9jaGVja19zdGF0ZShzdGF0ZSwgY3J0 Y19zdGF0ZSwgJmNsaXAsCi0JCQkJCSAgIG1pbl9zY2FsZSwgbWF4X3NjYWxlLAotCQkJCQkgICB0 cnVlLCB0cnVlKTsKKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZShz dGF0ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCisJCQkJCQkgIG1pbl9zY2FsZSwgbWF4X3NjYWxlLAor CQkJCQkJICB0cnVlLCB0cnVlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9k Yy5jCmluZGV4IGU5NWQ5ZTJhN2Y2Yy4uZmM3MDM1MWI5MDE3IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vdGVncmEvZGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYwpAQCAt NDkxLDggKzQ5MSw4IEBAIHN0YXRpYyBpbnQgdGVncmFfcGxhbmVfc3RhdGVfYWRkKHN0cnVjdCB0 ZWdyYV9wbGFuZSAqcGxhbmUsCiAJY2xpcC55MiA9IGNydGNfc3RhdGUtPm1vZGUudmRpc3BsYXk7 CiAKIAkvKiBDaGVjayBwbGFuZSBzdGF0ZSBmb3IgdmlzaWJpbGl0eSBhbmQgY2FsY3VsYXRlIGNs aXBwaW5nIGJvdW5kcyAqLwotCWVyciA9IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUoc3Rh dGUsIGNydGNfc3RhdGUsICZjbGlwLAotCQkJCQkgICAwLCBJTlRfTUFYLCB0cnVlLCB0cnVlKTsK KwllcnIgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZShzdGF0ZSwgY3J0Y19z dGF0ZSwgJmNsaXAsCisJCQkJCQkgIDAsIElOVF9NQVgsIHRydWUsIHRydWUpOwogCWlmIChlcnIg PCAwKQogCQlyZXR1cm4gZXJyOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCmluZGV4 IGQ5NWU3YjFjM2IxMS4uYTJhOTNkN2UyYTA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9r bXMuYwpAQCAtNDU0LDEwICs0NTQsMTAgQEAgaW50IHZtd19kdV9wcmltYXJ5X3BsYW5lX2F0b21p Y19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJY2xpcC55MiA9IGNydGNfc3RhdGUt PmFkanVzdGVkX21vZGUudmRpc3BsYXk7CiAJfQogCi0JcmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9j aGVja19zdGF0ZShzdGF0ZSwgY3J0Y19zdGF0ZSwgJmNsaXAsCi0JCQkJCSAgIERSTV9QTEFORV9I RUxQRVJfTk9fU0NBTElORywKLQkJCQkJICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAot CQkJCQkgICBmYWxzZSwgdHJ1ZSk7CisJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxh bmVfc3RhdGUoc3RhdGUsIGNydGNfc3RhdGUsICZjbGlwLAorCQkJCQkJICBEUk1fUExBTkVfSEVM UEVSX05PX1NDQUxJTkcsCisJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKKwkJ CQkJCSAgZmFsc2UsIHRydWUpOwogCiAJaWYgKCFyZXQgJiYgbmV3X2ZiKSB7CiAJCXN0cnVjdCBk cm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5jcnRjOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3p0ZS96eF9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jCmluZGV4IGVl MDAwMjUyOWI4Zi4uNjhmZDJlMmRjNzhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0venRl L3p4X3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jCkBAIC04MCw5 ICs4MCw5IEBAIHN0YXRpYyBpbnQgenhfdmxfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAogCWNsaXAueDIgPSBjcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlLmhkaXNw bGF5OwogCWNsaXAueTIgPSBjcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlLnZkaXNwbGF5OwogCi0J cmV0dXJuIGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUocGxhbmVfc3RhdGUsIGNydGNfc3Rh dGUsICZjbGlwLAotCQkJCQkgICAgbWluX3NjYWxlLCBtYXhfc2NhbGUsCi0JCQkJCSAgICB0cnVl LCB0cnVlKTsKKwlyZXR1cm4gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUocGxh bmVfc3RhdGUsIGNydGNfc3RhdGUsCisJCQkJCQkgICAmY2xpcCwgbWluX3NjYWxlLCBtYXhfc2Nh bGUsCisJCQkJCQkgICB0cnVlLCB0cnVlKTsKIH0KIAogc3RhdGljIGludCB6eF92bF9nZXRfZm10 KHVpbnQzMl90IGZvcm1hdCkKQEAgLTMxNSwxMCArMzE1LDExIEBAIHN0YXRpYyBpbnQgenhfZ2xf cGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWNsaXAueDIgPSBj cnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlLmhkaXNwbGF5OwogCWNsaXAueTIgPSBjcnRjX3N0YXRl LT5hZGp1c3RlZF9tb2RlLnZkaXNwbGF5OwogCi0JcmV0dXJuIGRybV9wbGFuZV9oZWxwZXJfY2hl Y2tfc3RhdGUocGxhbmVfc3RhdGUsIGNydGNfc3RhdGUsICZjbGlwLAotCQkJCQkgICAgRFJNX1BM QU5FX0hFTFBFUl9OT19TQ0FMSU5HLAotCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FM SU5HLAotCQkJCQkgICAgZmFsc2UsIHRydWUpOworCXJldHVybiBkcm1fYXRvbWljX2hlbHBlcl9j aGVja19wbGFuZV9zdGF0ZShwbGFuZV9zdGF0ZSwgY3J0Y19zdGF0ZSwKKwkJCQkJCSAgICZjbGlw LAorCQkJCQkJICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAorCQkJCQkJICAgRFJNX1BM QU5FX0hFTFBFUl9OT19TQ0FMSU5HLAorCQkJCQkJICAgZmFsc2UsIHRydWUpOwogfQogCiBzdGF0 aWMgaW50IHp4X2dsX2dldF9mbXQodWludDMyX3QgZm9ybWF0KQpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVy LmgKaW5kZXggZDJiNTZjYzY1N2U5Li40ODQyZWU5NDg1Y2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuaApAQCAtMzgsNiArMzgsMTMgQEAgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlOwogCiBpbnQg ZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfbW9kZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CQkJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CitpbnQgZHJtX2F0b21pY19oZWxw ZXJfY2hlY2tfcGxhbmVfc3RhdGUoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUs CisJCQkJCWNvbnN0IHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQkJY29u c3Qgc3RydWN0IGRybV9yZWN0ICpjbGlwLAorCQkJCQlpbnQgbWluX3NjYWxlLAorCQkJCQlpbnQg bWF4X3NjYWxlLAorCQkJCQlib29sIGNhbl9wb3NpdGlvbiwKKwkJCQkJYm9vbCBjYW5fdXBkYXRl X2Rpc2FibGVkKTsKIGludCBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZXMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp OwogaW50IGRybV9hdG9taWNfaGVscGVyX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcGxhbmVfaGVscGVyLmggYi9pbmNsdWRlL2RybS9k cm1fcGxhbmVfaGVscGVyLmgKaW5kZXggNDFiODMwOWIwYTU3Li44YWE0OWMwZWNkNGQgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZV9oZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9k cm1fcGxhbmVfaGVscGVyLmgKQEAgLTM4LDEyICszOCw2IEBACiAgKi8KICNkZWZpbmUgRFJNX1BM QU5FX0hFTFBFUl9OT19TQ0FMSU5HICgxPDwxNikKIAotaW50IGRybV9wbGFuZV9oZWxwZXJfY2hl Y2tfc3RhdGUoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCi0JCQkJIGNvbnN0 IHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkJCQkgY29uc3Qgc3RydWN0IGRy bV9yZWN0ICpjbGlwLAotCQkJCSBpbnQgbWluX3NjYWxlLCBpbnQgbWF4X3NjYWxlLAotCQkJCSBi b29sIGNhbl9wb3NpdGlvbiwKLQkJCQkgYm9vbCBjYW5fdXBkYXRlX2Rpc2FibGVkKTsKIGludCBk cm1fcGxhbmVfaGVscGVyX2NoZWNrX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJ CQkgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiLAotLSAKMi4xMy42CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK