From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 16/23] drm/i915: Sanitize the shared DPLL reserve/release interface Date: Thu, 20 Jun 2019 17:05:53 +0300 Message-ID: <20190620140600.11357-17-imre.deak@intel.com> References: <20190620140600.11357-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5C3546E598 for ; Thu, 20 Jun 2019 14:06:34 +0000 (UTC) In-Reply-To: <20190620140600.11357-1-imre.deak@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: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org Rm9yIGNvbnNpc3RlbmN5IHMvaW50ZWxfZ2V0X3NoYXJlZF9kcGxsKCkvaW50ZWxfcmVzZXJ2ZV9z aGFyZWRfZHBsbHMoKS8KdG8gYmV0dGVyIG1hdGNoIGludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGxz KCkuIEFsc28sIHBhc3MgdG8gdGhlCnJlc2VydmUvcmVsZWFzZSBhbmQgZ2V0X2RwbGxzL3B1dF9k cGxscyBob29rcyB0aGUgaW50ZWxfYXRvbWljX3N0YXRlIGFuZApDUlRDIG9iamVjdCwgdGhhdCB3 YXkgdGhlc2UgZnVuY3Rpb25zIGNhbiBsb29rIHVwIHRoZSBvbGQgb3IgbmV3IHN0YXRlCmFzIG5l ZWRlZC4KCkFsc28gcmVsZWFzZSB0aGUgUExMcyBmcm9tIHRoZSBhdG9taWMgc3RhdGUgdmlhIGEg bmV3CnB1dF9kcGxscy0+aW50ZWxfdW5yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoKSBjYWxsIGNoYWlu IGZvciBiZXR0ZXIKc3ltbWV0cnkgd2l0aCB0aGUgcmVzZXJ2YXRpb24gdmlhIHRoZQpnZXRfZHBs bHMtPmludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbCgpIGNhbGwgY2hhaW4uCgpTaW5jZSBub3Ro aW5nIHVzZXMgdGhlIFBMTCByZXR1cm5lZCBieSBpbnRlbF9yZXNlcnZlX3NoYXJlZF9kcGxscygp LAptYWtlIGl0IHJldHVybiBvbmx5IGEgYm9vbC4KCldoaWxlIGF0IGl0IGFsc28gY2xhcmlmeSB0 aGUgcmVzZXJ2ZS9yZWxlYXNlIGZ1bmN0aW9uIGRvY2Jvb2sgaGVhZGVycwptYWtpbmcgaXQgY2xl YXIgdGhhdCBtdWx0aXBsZSBEUExMcyB3aWxsIGJlIHJlc2VydmVkL3JlbGVhc2VkIGFuZAp3aGV0 aGVyIHRoZSBuZXcgb3Igb2xkIGF0b21pYyBDUlRDIHN0YXRlIGlzIGFmZmVjdGVkLgoKVGhpcyBy ZWZhY3RvcmluZyBpcyBhbHNvIGEgcHJlcGFyYXRpb24gZm9yIGEgZm9sbG93LXVwIGNoYW5nZSB0 aGF0IG5lZWRzCnRvIHJlc2VydmUgbXVsdGlwbGUgRFBMTHMuCgpLdWRvcyB0byBWaWxsZSBmb3Ig dGhlIGlkZWEgdG8gcGFzcyBpbnRlbF9hdG9taWNfc3RhdGUgYXJvdW5kLCB0byBtYWtlCnRoaW5n cyBjbGVhcmVyIGxvY2FsbHkgd2hlcmUgYW4gb2JqZWN0J3Mgb2xkL25ldyBhdG9taWMgc3RhdGUg aXMKcmVxdWlyZWQuCgpObyBmdW5jdGlvbmFsIGNoYW5nZXMuCgp2MjoKLSBGaXggY2hlY2twYXRj aCBpc3N1ZTogdHlwbyBpbiBjb2RlIGNvbW1lbnQuCgpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0 ZXJAZmZ3bGwuY2g+CkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGlu dXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5j b20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgIHwg IDE5ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMgfCAy MjEgKysrKysrKysrKystLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2RwbGxfbWdyLmggfCAgMTMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTUzIGluc2VydGlvbnMoKyks IDEwMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheS5jCmluZGV4IDQ2OGNhNmQ4NGJkOC4uNjg4MTM3NTI0MTc5IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtOTUwNCw2ICs5NTA0LDgg QEAgc3RhdGljIGludCBpcm9ubGFrZV9jcnRjX2NvbXB1dGVfY2xvY2soc3RydWN0IGludGVsX2Ny dGMgKmNydGMsCiAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KKwkJdG9faW50 ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOwogCWNvbnN0IHN0cnVjdCBp bnRlbF9saW1pdCAqbGltaXQ7CiAJaW50IHJlZmNsayA9IDEyMDAwMDsKIApAQCAtOTU0NSw3ICs5 NTQ3LDcgQEAgc3RhdGljIGludCBpcm9ubGFrZV9jcnRjX2NvbXB1dGVfY2xvY2soc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCiAKIAlpcm9ubGFrZV9jb21wdXRlX2RwbGwoY3J0YywgY3J0Y19zdGF0 ZSwgTlVMTCk7CiAKLQlpZiAoIWludGVsX2dldF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLCBOVUxM KSkgeworCWlmICghaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoc3RhdGUsIGNydGMsIE5VTEwp KSB7CiAJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBmaW5kIFBMTCBmb3IgcGlwZSAlY1xuIiwK IAkJCSAgICAgIHBpcGVfbmFtZShjcnRjLT5waXBlKSk7CiAJCXJldHVybiAtRUlOVkFMOwpAQCAt OTkyNiw3ICs5OTI4LDcgQEAgc3RhdGljIGludCBoYXN3ZWxsX2NydGNfY29tcHV0ZV9jbG9jayhz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIg PQogCQkJaW50ZWxfZ2V0X2NydGNfbmV3X2VuY29kZXIoc3RhdGUsIGNydGNfc3RhdGUpOwogCi0J CWlmICghaW50ZWxfZ2V0X3NoYXJlZF9kcGxsKGNydGNfc3RhdGUsIGVuY29kZXIpKSB7CisJCWlm ICghaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoc3RhdGUsIGNydGMsIGVuY29kZXIpKSB7CiAJ CQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gZmluZCBQTEwgZm9yIHBpcGUgJWNcbiIsCiAJCQkJ ICAgICAgcGlwZV9uYW1lKGNydGMtPnBpcGUpKTsKIAkJCXJldHVybiAtRUlOVkFMOwpAQCAtMTMx OTUsMjcgKzEzMTk3LDIwIEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9zY2FubGluZV9vZmZzZXQoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMgdm9pZCBpbnRl bF9tb2Rlc2V0X2NsZWFyX3BsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFz ZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19j cnRjX3N0YXRlOworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAlpbnQgaTsKIAogCWlmICghZGV2X3ByaXYtPmRpc3Bs YXkuY3J0Y19jb21wdXRlX2Nsb2NrKQogCQlyZXR1cm47CiAKLQlmb3JfZWFjaF9vbGRuZXdfaW50 ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsCi0JCQkJCSAgICBu ZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKm9sZF9kcGxs ID0KLQkJCW9sZF9jcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsKLQorCWZvcl9lYWNoX25ld19pbnRl bF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewogCQlpZiAo IW5lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSkKIAkJCWNvbnRpbnVlOwogCiAJ CW5ld19jcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IE5VTEw7CiAKLQkJaWYgKCFvbGRfZHBsbCkK LQkJCWNvbnRpbnVlOwotCi0JCWludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGwob2xkX2RwbGwsIGNy dGMsICZzdGF0ZS0+YmFzZSk7CisJCWludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGxzKHN0YXRlLCBj cnRjKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBs bF9tZ3IuYwppbmRleCBiZjY2MjYxYzhiZjAuLjNmYmM5NzU4NTFmYSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwpAQCAtMzYsOSArMzYsMTAgQEAK ICAqIFRoaXMgZmlsZSBwcm92aWRlcyBhbiBhYnN0cmFjdGlvbiBvdmVyIGRpc3BsYXkgUExMcy4g VGhlIGZ1bmN0aW9uCiAgKiBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KCkgaW5pdGlhbGl6ZXMgdGhl IFBMTHMgZm9yIHRoZSBnaXZlbiBwbGF0Zm9ybS4gIFRoZQogICogdXNlcnMgb2YgYSBQTEwgYXJl IHRyYWNrZWQgYW5kIHRoYXQgdHJhY2tpbmcgaXMgaW50ZWdyYXRlZCB3aXRoIHRoZSBhdG9taWMK LSAqIG1vZGVzdCBpbnRlcmZhY2UuIER1cmluZyBhbiBhdG9taWMgb3BlcmF0aW9uLCBhIFBMTCBj YW4gYmUgcmVxdWVzdGVkIGZvciBhCi0gKiBnaXZlbiBDUlRDIGFuZCBlbmNvZGVyIGNvbmZpZ3Vy YXRpb24gYnkgY2FsbGluZyBpbnRlbF9nZXRfc2hhcmVkX2RwbGwoKSBhbmQKLSAqIGEgcHJldmlv dXNseSB1c2VkIFBMTCBjYW4gYmUgcmVsZWFzZWQgd2l0aCBpbnRlbF9yZWxlYXNlX3NoYXJlZF9k cGxsKCkuCisgKiBtb2RzZXQgaW50ZXJmYWNlLiBEdXJpbmcgYW4gYXRvbWljIG9wZXJhdGlvbiwg cmVxdWlyZWQgUExMcyBjYW4gYmUgcmVzZXJ2ZWQKKyAqIGZvciBhIGdpdmVuIENSVEMgYW5kIGVu Y29kZXIgY29uZmlndXJhdGlvbiBieSBjYWxsaW5nCisgKiBpbnRlbF9yZXNlcnZlX3NoYXJlZF9k cGxscygpIGFuZCBwcmV2aW91c2x5IHJlc2VydmVkIFBMTHMgY2FuIGJlIHJlbGVhc2VkCisgKiB3 aXRoIGludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGxzKCkuCiAgKiBDaGFuZ2VzIHRvIHRoZSB1c2Vy cyBhcmUgZmlyc3Qgc3RhZ2VkIGluIHRoZSBhdG9taWMgc3RhdGUsIGFuZCB0aGVuIG1hZGUKICAq IGVmZmVjdGl2ZSBieSBjYWxsaW5nIGludGVsX3NoYXJlZF9kcGxsX3N3YXBfc3RhdGUoKSBkdXJp bmcgdGhlIGF0b21pYwogICogY29tbWl0IHBoYXNlLgpAQCAtMzA5LDYgKzMxMCwyOCBAQCBpbnRl bF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwsCiAJ c2hhcmVkX2RwbGxbaWRdLmNydGNfbWFzayB8PSAxIDw8IGNydGMtPnBpcGU7CiB9CiAKK3N0YXRp YyB2b2lkIGludGVsX3VucmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlLAorCQkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJ CQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQoreworCXN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbF9zdGF0ZSAqc2hhcmVkX2RwbGw7CisKKwlzaGFyZWRfZHBsbCA9IGludGVs X2F0b21pY19nZXRfc2hhcmVkX2RwbGxfc3RhdGUoJnN0YXRlLT5iYXNlKTsKKwlzaGFyZWRfZHBs bFtwbGwtPmluZm8tPmlkXS5jcnRjX21hc2sgJj0gfigxIDw8IGNydGMtPnBpcGUpOworfQorCitz dGF0aWMgdm9pZCBpbnRlbF9wdXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSwKKwkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQoreworCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlID0KKwkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShz dGF0ZSwgY3J0Yyk7CisKKwlpZiAoIWNydGNfc3RhdGUtPnNoYXJlZF9kcGxsKQorCQlyZXR1cm47 CisKKwlpbnRlbF91bnJlZmVyZW5jZV9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywgY3J0Y19zdGF0 ZS0+c2hhcmVkX2RwbGwpOworfQorCiAvKioKICAqIGludGVsX3NoYXJlZF9kcGxsX3N3YXBfc3Rh dGUgLSBtYWtlIGF0b21pYyBEUExMIGNvbmZpZ3VyYXRpb24gZWZmZWN0aXZlCiAgKiBAc3RhdGU6 IGF0b21pYyBzdGF0ZQpAQCAtNDIxLDExICs0NDQsMTIgQEAgc3RhdGljIHZvaWQgaWJ4X3BjaF9k cGxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXVkZWxheSgy MDApOwogfQogCi1zdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoKLWlieF9nZXRfZHBs bChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkgICAgIHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKQorc3RhdGljIGJvb2wgaWJ4X2dldF9kcGxsKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJ IHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KKwkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19z dGF0ZShzdGF0ZSwgY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7 CiAJZW51bSBpbnRlbF9kcGxsX2lkIGk7CkBAIC00NDUsMTIgKzQ2OSwxMiBAQCBpYnhfZ2V0X2Rw bGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJfQogCiAJaWYgKCFwbGwp Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiByZWZlcmVuY2UgdGhlIHBs bCAqLwogCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGwsIGNydGNfc3RhdGUpOwogCi0J cmV0dXJuIHBsbDsKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQgaWJ4X2R1bXBfaHdf c3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtODIxLDEwICs4NDUs MTIgQEAgaHN3X2RkaV9kcF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIAlyZXR1cm4gcGxsOwogfQogCi1zdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxs ICoKLWhzd19nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkg ICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQorc3RhdGljIGJvb2wgaHN3X2dldF9k cGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJIHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAorCQkJIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogeworCXN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KKwkJaW50ZWxfYXRvbWljX2dldF9uZXdf Y3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7 CiAKIAltZW1zZXQoJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsIDAsCkBAIC04MzYsNyArODYy LDcgQEAgaHN3X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CQlwbGwgPSBoc3dfZGRpX2RwX2dldF9kcGxsKGNydGNfc3RhdGUpOwogCX0gZWxzZSBpZiAoaW50 ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfQU5BTE9HKSkgewogCQlp ZiAoV0FSTl9PTihjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrIC8gMiAhPSAxMzUwMDApKQotCQkJcmV0 dXJuIE5VTEw7CisJCQlyZXR1cm4gZmFsc2U7CiAKIAkJY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0 ZS5zcGxsID0KIAkJCVNQTExfUExMX0VOQUJMRSB8IFNQTExfRlJFUV8xMzUwTUh6IHwgU1BMTF9S RUZfTVVYRURfU1NDOwpAQCAtODQ0LDE1ICs4NzAsMTUgQEAgaHN3X2dldF9kcGxsKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9k cGxsKGNydGNfc3RhdGUsCiAJCQkJCSAgICAgRFBMTF9JRF9TUExMLCBEUExMX0lEX1NQTEwpOwog CX0gZWxzZSB7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gZmFsc2U7CiAJfQogCiAJaWYgKCFw bGwpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gZmFsc2U7CiAKIAlpbnRlbF9yZWZlcmVuY2Vf c2hhcmVkX2RwbGwocGxsLCBjcnRjX3N0YXRlKTsKIAotCXJldHVybiBwbGw7CisJcmV0dXJuIHRy dWU7CiB9CiAKIHN0YXRpYyB2b2lkIGhzd19kdW1wX2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKQEAgLTEzODUsMTAgKzE0MTEsMTIgQEAgc2tsX2RkaV9kcF9zZXRf ZHBsbF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlyZXR1 cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCi1za2xfZ2V0 X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JICAgICBzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyBib29sIHNrbF9nZXRfZHBsbChzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK KwkJCSBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKKwlzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CisJCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUo c3RhdGUsIGNydGMpOwogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwogCWJvb2wgYnJl dDsKIApAQCAtMTM5NiwxNiArMTQyNCwxNiBAQCBza2xfZ2V0X2RwbGwoc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCWJyZXQgPSBza2xfZGRpX2hkbWlfcGxsX2RpdmlkZXJz KGNydGNfc3RhdGUpOwogCQlpZiAoIWJyZXQpIHsKIAkJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5v dCBnZXQgSERNSSBwbGwgZGl2aWRlcnMuXG4iKTsKLQkJCXJldHVybiBOVUxMOworCQkJcmV0dXJu IGZhbHNlOwogCQl9CiAJfSBlbHNlIGlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNf c3RhdGUpKSB7CiAJCWJyZXQgPSBza2xfZGRpX2RwX3NldF9kcGxsX2h3X3N0YXRlKGNydGNfc3Rh dGUpOwogCQlpZiAoIWJyZXQpIHsKIAkJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBzZXQgRFAg ZHBsbCBIVyBzdGF0ZS5cbiIpOwotCQkJcmV0dXJuIE5VTEw7CisJCQlyZXR1cm4gZmFsc2U7CiAJ CX0KIAl9IGVsc2UgewotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGZhbHNlOwogCX0KIAogCWlm IChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9FRFApKQpAQCAt MTQxNywxMSArMTQ0NSwxMSBAQCBza2xfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJCQkJCSAgICAgRFBMTF9JRF9TS0xfRFBMTDEsCiAJCQkJCSAgICAgRFBM TF9JRF9TS0xfRFBMTDMpOwogCWlmICghcGxsKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGZh bHNlOwogCiAJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7CiAK LQlyZXR1cm4gcGxsOworCXJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgdm9pZCBza2xfZHVtcF9o d19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC0xODI3LDIyICsx ODU1LDIzIEBAIGJ4dF9kZGlfaGRtaV9zZXRfZHBsbF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlyZXR1cm4gYnh0X2RkaV9zZXRfZHBsbF9od19zdGF0ZShj cnRjX3N0YXRlLCAmY2xrX2Rpdik7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2Rw bGwgKgotYnh0X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAot CSAgICAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMgYm9vbCBieHRfZ2V0 X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgc3RydWN0IGludGVs X2NydGMgKmNydGMsCisJCQkgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9t aWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxf c2hhcmVkX2RwbGwgKnBsbDsKIAllbnVtIGludGVsX2RwbGxfaWQgaWQ7CiAKIAlpZiAoaW50ZWxf Y3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkgJiYKIAkgICAgIWJ4 dF9kZGlfaGRtaV9zZXRfZHBsbF9od19zdGF0ZShjcnRjX3N0YXRlKSkKLQkJcmV0dXJuIE5VTEw7 CisJCXJldHVybiBmYWxzZTsKIAogCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNf c3RhdGUpICYmCiAJICAgICFieHRfZGRpX2RwX3NldF9kcGxsX2h3X3N0YXRlKGNydGNfc3RhdGUp KQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGZhbHNlOwogCiAJLyogMToxIG1hcHBpbmcgYmV0 d2VlbiBwb3J0cyBhbmQgUExMcyAqLwogCWlkID0gKGVudW0gaW50ZWxfZHBsbF9pZCkgZW5jb2Rl ci0+cG9ydDsKQEAgLTE4NTMsNyArMTg4Miw3IEBAIGJ4dF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAogCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChw bGwsIGNydGNfc3RhdGUpOwogCi0JcmV0dXJuIHBsbDsKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogc3Rh dGljIHZvaWQgYnh0X2R1bXBfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LApAQCAtMTg4NCw4ICsxOTEzLDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGxfZnVuY3MgYnh0X2RkaV9wbGxfZnVuY3MgPSB7CiBzdHJ1Y3QgaW50ZWxfZHBsbF9t Z3IgewogCWNvbnN0IHN0cnVjdCBkcGxsX2luZm8gKmRwbGxfaW5mbzsKIAotCXN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbCAqKCpnZXRfZHBsbCkoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCi0JCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKKwlib29s ICgqZ2V0X2RwbGxzKShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSAgc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KTsKKwl2b2lkICgqcHV0X2RwbGxzKShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwK KwkJCSAgc3RydWN0IGludGVsX2NydGMgKmNydGMpOwogCiAJdm9pZCAoKmR1bXBfaHdfc3RhdGUp KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9kcGxsX2h3X3N0YXRlICpod19zdGF0ZSk7CkBAIC0xODk5LDcgKzE5MzEsOCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBwY2hfcGxsc1tdID0gewogCiBzdGF0aWMgY29u c3Qgc3RydWN0IGludGVsX2RwbGxfbWdyIHBjaF9wbGxfbWdyID0gewogCS5kcGxsX2luZm8gPSBw Y2hfcGxscywKLQkuZ2V0X2RwbGwgPSBpYnhfZ2V0X2RwbGwsCisJLmdldF9kcGxscyA9IGlieF9n ZXRfZHBsbCwKKwkucHV0X2RwbGxzID0gaW50ZWxfcHV0X2RwbGwsCiAJLmR1bXBfaHdfc3RhdGUg PSBpYnhfZHVtcF9od19zdGF0ZSwKIH07CiAKQEAgLTE5MTUsNyArMTk0OCw4IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHBsbF9pbmZvIGhzd19wbGxzW10gPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgaW50ZWxfZHBsbF9tZ3IgaHN3X3BsbF9tZ3IgPSB7CiAJLmRwbGxfaW5mbyA9IGhzd19wbGxz LAotCS5nZXRfZHBsbCA9IGhzd19nZXRfZHBsbCwKKwkuZ2V0X2RwbGxzID0gaHN3X2dldF9kcGxs LAorCS5wdXRfZHBsbHMgPSBpbnRlbF9wdXRfZHBsbCwKIAkuZHVtcF9od19zdGF0ZSA9IGhzd19k dW1wX2h3X3N0YXRlLAogfTsKIApAQCAtMTkyOSw3ICsxOTYzLDggQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBkcGxsX2luZm8gc2tsX3BsbHNbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRl bF9kcGxsX21nciBza2xfcGxsX21nciA9IHsKIAkuZHBsbF9pbmZvID0gc2tsX3BsbHMsCi0JLmdl dF9kcGxsID0gc2tsX2dldF9kcGxsLAorCS5nZXRfZHBsbHMgPSBza2xfZ2V0X2RwbGwsCisJLnB1 dF9kcGxscyA9IGludGVsX3B1dF9kcGxsLAogCS5kdW1wX2h3X3N0YXRlID0gc2tsX2R1bXBfaHdf c3RhdGUsCiB9OwogCkBAIC0xOTQyLDcgKzE5NzcsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRw bGxfaW5mbyBieHRfcGxsc1tdID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RwbGxf bWdyIGJ4dF9wbGxfbWdyID0gewogCS5kcGxsX2luZm8gPSBieHRfcGxscywKLQkuZ2V0X2RwbGwg PSBieHRfZ2V0X2RwbGwsCisJLmdldF9kcGxscyA9IGJ4dF9nZXRfZHBsbCwKKwkucHV0X2RwbGxz ID0gaW50ZWxfcHV0X2RwbGwsCiAJLmR1bXBfaHdfc3RhdGUgPSBieHRfZHVtcF9od19zdGF0ZSwK IH07CiAKQEAgLTIzMzIsMTAgKzIzNjgsMTIgQEAgY25sX2RkaV9kcF9zZXRfZHBsbF9od19zdGF0 ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlyZXR1cm4gdHJ1ZTsKIH0K IAotc3RhdGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCi1jbmxfZ2V0X2RwbGwoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKK3N0YXRpYyBib29sIGNubF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSwKKwkJCSBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCSBzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSA9CisJCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMp OwogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwogCWJvb2wgYnJldDsKIApAQCAtMjM0 MywxOCArMjM4MSwxOCBAQCBjbmxfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCiAJCWJyZXQgPSBjbmxfZGRpX2hkbWlfcGxsX2RpdmlkZXJzKGNydGNfc3RhdGUp OwogCQlpZiAoIWJyZXQpIHsKIAkJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBnZXQgSERNSSBw bGwgZGl2aWRlcnMuXG4iKTsKLQkJCXJldHVybiBOVUxMOworCQkJcmV0dXJuIGZhbHNlOwogCQl9 CiAJfSBlbHNlIGlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpKSB7CiAJ CWJyZXQgPSBjbmxfZGRpX2RwX3NldF9kcGxsX2h3X3N0YXRlKGNydGNfc3RhdGUpOwogCQlpZiAo IWJyZXQpIHsKIAkJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBzZXQgRFAgZHBsbCBIVyBzdGF0 ZS5cbiIpOwotCQkJcmV0dXJuIE5VTEw7CisJCQlyZXR1cm4gZmFsc2U7CiAJCX0KIAl9IGVsc2Ug ewogCQlEUk1fREVCVUdfS01TKCJTa2lwIERQTEwgc2V0dXAgZm9yIG91dHB1dF90eXBlcyAweCV4 XG4iLAogCQkJICAgICAgY3J0Y19zdGF0ZS0+b3V0cHV0X3R5cGVzKTsKLQkJcmV0dXJuIE5VTEw7 CisJCXJldHVybiBmYWxzZTsKIAl9CiAKIAlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNy dGNfc3RhdGUsCkBAIC0yMzYyLDEyICsyNDAwLDEyIEBAIGNubF9nZXRfZHBsbChzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgICAgIERQTExfSURfU0tMX0RQTEwyKTsK IAlpZiAoIXBsbCkgewogCQlEUk1fREVCVUdfS01TKCJObyBQTEwgc2VsZWN0ZWRcbiIpOwotCQly ZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGZhbHNlOwogCX0KIAogCWludGVsX3JlZmVyZW5jZV9zaGFy ZWRfZHBsbChwbGwsIGNydGNfc3RhdGUpOwogCi0JcmV0dXJuIHBsbDsKKwlyZXR1cm4gdHJ1ZTsK IH0KIAogc3RhdGljIHZvaWQgY25sX2R1bXBfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LApAQCAtMjM5NCw3ICsyNDMyLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBk cGxsX2luZm8gY25sX3BsbHNbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxs X21nciBjbmxfcGxsX21nciA9IHsKIAkuZHBsbF9pbmZvID0gY25sX3BsbHMsCi0JLmdldF9kcGxs ID0gY25sX2dldF9kcGxsLAorCS5nZXRfZHBsbHMgPSBjbmxfZ2V0X2RwbGwsCisJLnB1dF9kcGxs cyA9IGludGVsX3B1dF9kcGxsLAogCS5kdW1wX2h3X3N0YXRlID0gY25sX2R1bXBfaHdfc3RhdGUs CiB9OwogCkBAIC0yNzkyLDExICsyODMxLDEzIEBAIHN0YXRpYyBib29sIGljbF9jYWxjX21nX3Bs bF9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlyZXR1cm4gdHJ1 ZTsKIH0KIAotc3RhdGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCi1pY2xfZ2V0X2RwbGwo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JICAgICBzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyBib29sIGljbF9nZXRfZHBsbHMoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJ ICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRl dik7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9t aWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydDsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsK IAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CkBAIC0yODMxLDI0ICsyODcyLDI0IEBA IGljbF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJfQog CX0gZWxzZSB7CiAJCU1JU1NJTkdfQ0FTRShwb3J0KTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVy biBmYWxzZTsKIAl9CiAKIAlpZiAoIXJldCkgewogCQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3Qg Y2FsY3VsYXRlIFBMTCBzdGF0ZS5cbiIpOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGZhbHNl OwogCX0KIAogCiAJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLCBtaW4s IG1heCk7CiAJaWYgKCFwbGwpIHsKIAkJRFJNX0RFQlVHX0tNUygiTm8gUExMIHNlbGVjdGVkXG4i KTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBmYWxzZTsKIAl9CiAKIAlpbnRlbF9yZWZlcmVu Y2Vfc2hhcmVkX2RwbGwocGxsLCBjcnRjX3N0YXRlKTsKIAotCXJldHVybiBwbGw7CisJcmV0dXJu IHRydWU7CiB9CiAKIHN0YXRpYyBib29sIG1nX3BsbF9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMzIyMyw3ICszMjY0LDggQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcGxsX2luZm8gaWNsX3BsbHNbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBp bnRlbF9kcGxsX21nciBpY2xfcGxsX21nciA9IHsKIAkuZHBsbF9pbmZvID0gaWNsX3BsbHMsCi0J LmdldF9kcGxsID0gaWNsX2dldF9kcGxsLAorCS5nZXRfZHBsbHMgPSBpY2xfZ2V0X2RwbGxzLAor CS5wdXRfZHBsbHMgPSBpbnRlbF9wdXRfZHBsbCwKIAkuZHVtcF9od19zdGF0ZSA9IGljbF9kdW1w X2h3X3N0YXRlLAogfTsKIApAQCAtMzIzNSw3ICszMjc3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBkcGxsX2luZm8gZWhsX3BsbHNbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9k cGxsX21nciBlaGxfcGxsX21nciA9IHsKIAkuZHBsbF9pbmZvID0gZWhsX3BsbHMsCi0JLmdldF9k cGxsID0gaWNsX2dldF9kcGxsLAorCS5nZXRfZHBsbHMgPSBpY2xfZ2V0X2RwbGxzLAorCS5wdXRf ZHBsbHMgPSBpbnRlbF9wdXRfZHBsbCwKIAkuZHVtcF9od19zdGF0ZSA9IGljbF9kdW1wX2h3X3N0 YXRlLAogfTsKIApAQCAtMzI4Nyw1MCArMzMzMCw2NCBAQCB2b2lkIGludGVsX3NoYXJlZF9kcGxs X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIH0KIAogLyoqCi0gKiBpbnRlbF9nZXRfc2hh cmVkX2RwbGwgLSBnZXQgYSBzaGFyZWQgRFBMTCBmb3IgQ1JUQyBhbmQgZW5jb2RlciBjb21iaW5h dGlvbgotICogQGNydGNfc3RhdGU6IGF0b21pYyBzdGF0ZSBmb3IgdGhlIGNydGMKKyAqIGludGVs X3Jlc2VydmVfc2hhcmVkX2RwbGxzIC0gcmVzZXJ2ZSBEUExMcyBmb3IgQ1JUQyBhbmQgZW5jb2Rl ciBjb21iaW5hdGlvbgorICogQHN0YXRlOiBhdG9taWMgc3RhdGUKKyAqIEBjcnRjOiBDUlRDIHRv IHJlc2VydmUgRFBMTHMgZm9yCiAgKiBAZW5jb2RlcjogZW5jb2RlcgogICoKLSAqIEZpbmQgYW4g YXBwcm9wcmlhdGUgRFBMTCBmb3IgdGhlIGdpdmVuIENSVEMgYW5kIGVuY29kZXIgY29tYmluYXRp b24uIEEKLSAqIHJlZmVyZW5jZSBmcm9tIHRoZSBAY3J0Y19zdGF0ZSB0byB0aGUgcmV0dXJuZWQg cGxsIGlzIHJlZ2lzdGVyZWQgaW4gdGhlCi0gKiBhdG9taWMgc3RhdGUuIFRoYXQgY29uZmlndXJh dGlvbiBpcyBtYWRlIGVmZmVjdGl2ZSBieSBjYWxsaW5nCi0gKiBpbnRlbF9zaGFyZWRfZHBsbF9z d2FwX3N0YXRlKCkuIFRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIHJlbGVhc2VkIGJ5IGNhbGxpbmcK LSAqIGludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGwoKS4KKyAqIFRoaXMgZnVuY3Rpb24gcmVzZXJ2 ZXMgYWxsIHJlcXVpcmVkIERQTExzIGZvciB0aGUgZ2l2ZW4gQ1JUQyBhbmQgZW5jb2RlcgorICog Y29tYmluYXRpb24gaW4gdGhlIGN1cnJlbnQgYXRvbWljIGNvbW1pdCBAc3RhdGUgYW5kIHRoZSBu ZXcgQGNydGMgYXRvbWljCisgKiBzdGF0ZS4KKyAqCisgKiBUaGUgbmV3IGNvbmZpZ3VyYXRpb24g aW4gdGhlIGF0b21pYyBjb21taXQgQHN0YXRlIGlzIG1hZGUgZWZmZWN0aXZlIGJ5CisgKiBjYWxs aW5nIGludGVsX3NoYXJlZF9kcGxsX3N3YXBfc3RhdGUoKS4KKyAqCisgKiBUaGUgcmVzZXJ2ZWQg RFBMTHMgc2hvdWxkIGJlIHJlbGVhc2VkIGJ5IGNhbGxpbmcKKyAqIGludGVsX3JlbGVhc2Vfc2hh cmVkX2RwbGxzKCkuCiAgKgogICogUmV0dXJuczoKLSAqIEEgc2hhcmVkIERQTEwgdG8gYmUgdXNl ZCBieSBAY3J0Y19zdGF0ZSBhbmQgQGVuY29kZXIuCisgKiBUcnVlIGlmIGFsbCByZXF1aXJlZCBE UExMcyB3ZXJlIHN1Y2Nlc3NmdWxseSByZXNlcnZlZC4KICAqLwotc3RydWN0IGludGVsX3NoYXJl ZF9kcGxsICoKLWludGVsX2dldF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKLQkJICAgICAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCitib29s IGludGVsX3Jlc2VydmVfc2hhcmVkX2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlLAorCQkJCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKIAljb25zdCBzdHJ1Y3Qg aW50ZWxfZHBsbF9tZ3IgKmRwbGxfbWdyID0gZGV2X3ByaXYtPmRwbGxfbWdyOwogCiAJaWYgKFdB Uk5fT04oIWRwbGxfbWdyKSkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBmYWxzZTsKIAotCXJl dHVybiBkcGxsX21nci0+Z2V0X2RwbGwoY3J0Y19zdGF0ZSwgZW5jb2Rlcik7CisJcmV0dXJuIGRw bGxfbWdyLT5nZXRfZHBsbHMoc3RhdGUsIGNydGMsIGVuY29kZXIpOwogfQogCiAvKioKLSAqIGlu dGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGwgLSBlbmQgdXNlIG9mIERQTEwgYnkgQ1JUQyBpbiBhdG9t aWMgc3RhdGUKLSAqIEBkcGxsOiBkcGxsIGluIHVzZSBieSBAY3J0YwotICogQGNydGM6IGNydGMK KyAqIGludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGxzIC0gZW5kIHVzZSBvZiBEUExMcyBieSBDUlRD IGluIGF0b21pYyBzdGF0ZQogICogQHN0YXRlOiBhdG9taWMgc3RhdGUKKyAqIEBjcnRjOiBjcnRj IGZyb20gd2hpY2ggdGhlIERQTExzIGFyZSB0byBiZSByZWxlYXNlZAogICoKLSAqIFRoaXMgZnVu Y3Rpb24gcmVsZWFzZXMgdGhlIHJlZmVyZW5jZSBmcm9tIEBjcnRjIHRvIEBkcGxsIGZyb20gdGhl Ci0gKiBhdG9taWMgQHN0YXRlLiBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaXMgbWFkZSBlZmZlY3Rp dmUgYnkgY2FsbGluZwotICogaW50ZWxfc2hhcmVkX2RwbGxfc3dhcF9zdGF0ZSgpLgorICogVGhp cyBmdW5jdGlvbiByZWxlYXNlcyBhbGwgRFBMTHMgcmVzZXJ2ZWQgYnkgaW50ZWxfcmVzZXJ2ZV9z aGFyZWRfZHBsbHMoKQorICogZnJvbSB0aGUgY3VycmVudCBhdG9taWMgY29tbWl0IEBzdGF0ZSBh bmQgdGhlIG9sZCBAY3J0YyBhdG9taWMgc3RhdGUuCisgKgorICogVGhlIG5ldyBjb25maWd1cmF0 aW9uIGluIHRoZSBhdG9taWMgY29tbWl0IEBzdGF0ZSBpcyBtYWRlIGVmZmVjdGl2ZSBieQorICog Y2FsbGluZyBpbnRlbF9zaGFyZWRfZHBsbF9zd2FwX3N0YXRlKCkuCiAgKi8KLXZvaWQgaW50ZWxf cmVsZWFzZV9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmRwbGwsCi0JCQkg ICAgICAgc3RydWN0IGludGVsX2NydGMgKmNydGMsCi0JCQkgICAgICAgc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQordm9pZCBpbnRlbF9yZWxlYXNlX3NoYXJlZF9kcGxscyhzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykK IHsKLQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfc3RhdGUgKnNoYXJlZF9kcGxsX3N0YXRlOwor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2Uu ZGV2KTsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgKmRwbGxfbWdyID0gZGV2X3ByaXYt PmRwbGxfbWdyOworCisJLyoKKwkgKiBGSVhNRTogdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9y IGV2ZXJ5IHBsYXRmb3JtIGhhdmluZyBhCisJICogY29tcHV0ZV9jbG9jayBob29rLCBldmVuIHRo b3VnaCB0aGUgcGxhdGZvcm0gZG9lc24ndCB5ZXQgc3VwcG9ydAorCSAqIHRoZSBzaGFyZWQgRFBM TCBmcmFtZXdvcmsgYW5kIGludGVsX3Jlc2VydmVfc2hhcmVkX2RwbGxzKCkgaXMgbm90CisJICog Y2FsbGVkIG9uIHRob3NlLgorCSAqLworCWlmICghZHBsbF9tZ3IpCisJCXJldHVybjsKIAotCXNo YXJlZF9kcGxsX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0ZShzdGF0 ZSk7Ci0Jc2hhcmVkX2RwbGxfc3RhdGVbZHBsbC0+aW5mby0+aWRdLmNydGNfbWFzayAmPSB+KDEg PDwgY3J0Yy0+cGlwZSk7CisJZHBsbF9tZ3ItPnB1dF9kcGxscyhzdGF0ZSwgY3J0Yyk7CiB9CiAK IC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxs X21nci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5oCmlu ZGV4IGQwNTcwNDE0ZjNkMS4uMTZkZGFiMTM4NTc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5oCkBAIC0zOSw2ICszOSw3IEBACiBzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZTsKIHN0cnVjdCBkcm1fZGV2aWNlOwogc3RydWN0IGRybV9pOTE1X3ByaXZh dGU7CitzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlOwogc3RydWN0IGludGVsX2NydGM7CiBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZTsKIHN0cnVjdCBpbnRlbF9lbmNvZGVyOwpAQCAtMTk1LDcgKzE5 Niw3IEBAIHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIHsKICAqIGZ1dHVyZSBzdGF0ZSB3aGlj aCB3b3VsZCBiZSBhcHBsaWVkIGJ5IGFuIGF0b21pYyBtb2RlIHNldCAoc3RvcmVkIGluCiAgKiBh IHN0cnVjdCAmaW50ZWxfYXRvbWljX3N0YXRlKS4KICAqCi0gKiBTZWUgYWxzbyBpbnRlbF9nZXRf c2hhcmVkX2RwbGwoKSBhbmQgaW50ZWxfcmVsZWFzZV9zaGFyZWRfZHBsbCgpLgorICogU2VlIGFs c28gaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoKSBhbmQgaW50ZWxfcmVsZWFzZV9zaGFyZWRf ZHBsbHMoKS4KICAqLwogc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX3N0YXRlIHsKIAkvKioKQEAg LTMzMSwxMSArMzMyLDExIEBAIHZvaWQgYXNzZXJ0X3NoYXJlZF9kcGxsKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCWJvb2wgc3RhdGUpOwogI2RlZmluZSBhc3NlcnRfc2hh cmVkX2RwbGxfZW5hYmxlZChkLCBwKSBhc3NlcnRfc2hhcmVkX2RwbGwoZCwgcCwgdHJ1ZSkKICNk ZWZpbmUgYXNzZXJ0X3NoYXJlZF9kcGxsX2Rpc2FibGVkKGQsIHApIGFzc2VydF9zaGFyZWRfZHBs bChkLCBwLCBmYWxzZSkKLXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqaW50ZWxfZ2V0X3NoYXJl ZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSwKLQkJCQkJCXN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKTsKLXZvaWQgaW50ZWxfcmVsZWFzZV9zaGFyZWRfZHBsbChzdHJ1 Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmRwbGwsCi0JCQkgICAgICAgc3RydWN0IGludGVsX2NydGMg KmNydGMsCi0JCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKK2Jvb2wg aW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUsCisJCQkJc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkJc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpOwordm9pZCBpbnRlbF9yZWxlYXNlX3NoYXJlZF9kcGxscyhzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7CiB2 b2lkIGludGVsX3ByZXBhcmVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpOwogdm9pZCBpbnRlbF9lbmFibGVfc2hhcmVkX2RwbGwoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwogdm9pZCBpbnRlbF9kaXNhYmxlX3No YXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKLS0g CjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4