From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH 16/23] drm/i915: Sanitize the shared DPLL reserve/release interface Date: Tue, 4 Jun 2019 17:58:19 +0300 Message-ID: <20190604145826.16424-17-imre.deak@intel.com> References: <20190604145826.16424-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 970688999C for ; Tue, 4 Jun 2019 14:59:41 +0000 (UTC) In-Reply-To: <20190604145826.16424-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 aXMKcmVxdWlyZWQuCgpObyBmdW5jdGlvbmFsIGNoYW5nZXMuCgpDYzogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmll bC52ZXR0ZXJAZmZ3bGwuY2g+CkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9y c3RAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0Bp bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICB8ICAx OSArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMgfCAyMjEgKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdy LmggfCAgMTMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTUzIGluc2VydGlvbnMoKyksIDEwMCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggOTFkMThjZDAz NzFjLi5kODZmY2VhY2YxOTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAg LTk0MjUsNiArOTQyNSw4IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfY3J0Y19jb21wdXRlX2Nsb2Nr KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSA9CisJCXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsK IAljb25zdCBzdHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0OwogCWludCByZWZjbGsgPSAxMjAwMDA7 CiAKQEAgLTk0NjYsNyArOTQ2OCw3IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfY3J0Y19jb21wdXRl X2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiAJaXJvbmxha2VfY29tcHV0ZV9kcGxs KGNydGMsIGNydGNfc3RhdGUsIE5VTEwpOwogCi0JaWYgKCFpbnRlbF9nZXRfc2hhcmVkX2RwbGwo Y3J0Y19zdGF0ZSwgTlVMTCkpIHsKKwlpZiAoIWludGVsX3Jlc2VydmVfc2hhcmVkX2RwbGxzKHN0 YXRlLCBjcnRjLCBOVUxMKSkgewogCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gZmluZCBQTEwg Zm9yIHBpcGUgJWNcbiIsCiAJCQkgICAgICBwaXBlX25hbWUoY3J0Yy0+cGlwZSkpOwogCQlyZXR1 cm4gLUVJTlZBTDsKQEAgLTk4NDYsNyArOTg0OCw3IEBAIHN0YXRpYyBpbnQgaGFzd2VsbF9jcnRj X2NvbXB1dGVfY2xvY2soc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCXN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyID0KIAkJCWludGVsX2dldF9jcnRjX25ld19lbmNvZGVyKHN0YXRlLCBj cnRjX3N0YXRlKTsKIAotCQlpZiAoIWludGVsX2dldF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLCBl bmNvZGVyKSkgeworCQlpZiAoIWludGVsX3Jlc2VydmVfc2hhcmVkX2RwbGxzKHN0YXRlLCBjcnRj LCBlbmNvZGVyKSkgewogCQkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIGZpbmQgUExMIGZvciBw aXBlICVjXG4iLAogCQkJCSAgICAgIHBpcGVfbmFtZShjcnRjLT5waXBlKSk7CiAJCQlyZXR1cm4g LUVJTlZBTDsKQEAgLTEzMTIxLDI3ICsxMzEyMywyMCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfc2Nh bmxpbmVfb2Zmc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog c3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9jbGVhcl9wbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2Ny dGNfc3RhdGUsICpuZXdfY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3 X2NydGNfc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGM7CiAJaW50IGk7CiAKIAlpZiAo IWRldl9wcml2LT5kaXNwbGF5LmNydGNfY29tcHV0ZV9jbG9jaykKIAkJcmV0dXJuOwogCi0JZm9y X2VhY2hfb2xkbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0 YXRlLAotCQkJCQkgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKLQkJc3RydWN0IGludGVsX3NoYXJl ZF9kcGxsICpvbGRfZHBsbCA9Ci0JCQlvbGRfY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7Ci0KKwlm b3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgbmV3X2NydGNfc3Rh dGUsIGkpIHsKIAkJaWYgKCFuZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkpCiAJ CQljb250aW51ZTsKIAogCQluZXdfY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBOVUxMOwogCi0J CWlmICghb2xkX2RwbGwpCi0JCQljb250aW51ZTsKLQotCQlpbnRlbF9yZWxlYXNlX3NoYXJlZF9k cGxsKG9sZF9kcGxsLCBjcnRjLCAmc3RhdGUtPmJhc2UpOworCQlpbnRlbF9yZWxlYXNlX3NoYXJl ZF9kcGxscyhzdGF0ZSwgY3J0Yyk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBs bF9tZ3IuYwppbmRleCBmNDc4NzY1MGEwZDMuLjM0NjM4YTY4MWYzNyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcGxsX21nci5jCkBAIC0zNiw5ICszNiwxMCBAQAogICogVGhpcyBmaWxlIHBy b3ZpZGVzIGFuIGFic3RyYWN0aW9uIG92ZXIgZGlzcGxheSBQTExzLiBUaGUgZnVuY3Rpb24KICAq IGludGVsX3NoYXJlZF9kcGxsX2luaXQoKSBpbml0aWFsaXplcyB0aGUgUExMcyBmb3IgdGhlIGdp dmVuIHBsYXRmb3JtLiAgVGhlCiAgKiB1c2VycyBvZiBhIFBMTCBhcmUgdHJhY2tlZCBhbmQgdGhh dCB0cmFja2luZyBpcyBpbnRlZ3JhdGVkIHdpdGggdGhlIGF0b21pYwotICogbW9kZXN0IGludGVy ZmFjZS4gRHVyaW5nIGFuIGF0b21pYyBvcGVyYXRpb24sIGEgUExMIGNhbiBiZSByZXF1ZXN0ZWQg Zm9yIGEKLSAqIGdpdmVuIENSVEMgYW5kIGVuY29kZXIgY29uZmlndXJhdGlvbiBieSBjYWxsaW5n IGludGVsX2dldF9zaGFyZWRfZHBsbCgpIGFuZAotICogYSBwcmV2aW91c2x5IHVzZWQgUExMIGNh biBiZSByZWxlYXNlZCB3aXRoIGludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGwoKS4KKyAqIG1vZHNl dCBpbnRlcmZhY2UuIER1cmluZyBhbiBhdG9taWMgb3BlcmF0aW9uLCByZXF1aXJlZCBQTExzIGNh biBiZSByZXNlcnZlZAorICogZm9yIGEgZ2l2ZW4gQ1JUQyBhbmQgZW5jb2RlciBjb25maWd1cmF0 aW9uIGJ5IGNhbGxpbmcKKyAqIGludGVsX3Jlc2VydmVfc2hhcmVkX2RwbGxzKCkgYW5kIHByZXZp b3VzbHkgcmVzZXJ2ZWQgUExMcyBjYW4gYmUgcmVsZWFzZWQKKyAqIHdpdGggaW50ZWxfcmVsZWFz ZV9zaGFyZWRfZHBsbHMoKS4KICAqIENoYW5nZXMgdG8gdGhlIHVzZXJzIGFyZSBmaXJzdCBzdGFn ZWQgaW4gdGhlIGF0b21pYyBzdGF0ZSwgYW5kIHRoZW4gbWFkZQogICogZWZmZWN0aXZlIGJ5IGNh bGxpbmcgaW50ZWxfc2hhcmVkX2RwbGxfc3dhcF9zdGF0ZSgpIGR1cmluZyB0aGUgYXRvbWljCiAg KiBjb21taXQgcGhhc2UuCkBAIC0zMDksNiArMzEwLDI4IEBAIGludGVsX3JlZmVyZW5jZV9zaGFy ZWRfZHBsbChzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCwKIAlzaGFyZWRfZHBsbFtpZF0u Y3J0Y19tYXNrIHw9IDEgPDwgY3J0Yy0+cGlwZTsKIH0KIAorc3RhdGljIHZvaWQgaW50ZWxfdW5y ZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJ CQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkJCSAgY29uc3Qgc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsICpwbGwpCit7CisJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX3N0 YXRlICpzaGFyZWRfZHBsbDsKKworCXNoYXJlZF9kcGxsID0gaW50ZWxfYXRvbWljX2dldF9zaGFy ZWRfZHBsbF9zdGF0ZSgmc3RhdGUtPmJhc2UpOworCXNoYXJlZF9kcGxsW3BsbC0+aW5mby0+aWRd LmNydGNfbWFzayAmPSB+KDEgPDwgY3J0Yy0+cGlwZSk7Cit9CisKK3N0YXRpYyB2b2lkIGludGVs X3B1dF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJICAgc3RydWN0 IGludGVsX2NydGMgKmNydGMpCit7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwor CWlmICghY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwpCisJCXJldHVybjsKKworCWludGVsX3VucmVm ZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCk7 Cit9CisKIC8qKgogICogaW50ZWxfc2hhcmVkX2RwbGxfc3dhcF9zdGF0ZSAtIG1ha2UgYXRvbWlj IERQTEwgY29uZmlndXJhdGlvbiBlZmZlY3RpdmUKICAqIEBzdGF0ZTogYXRvbWljIHN0YXRlCkBA IC00MjEsMTEgKzQ0NCwxMiBAQCBzdGF0aWMgdm9pZCBpYnhfcGNoX2RwbGxfZGlzYWJsZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJdWRlbGF5KDIwMCk7CiB9CiAKLXN0YXRp YyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgotaWJ4X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCSAgICAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCitzdGF0aWMgYm9vbCBpYnhfZ2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsCisJCQkgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRj KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJh c2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKIAllbnVtIGludGVsX2Rw bGxfaWQgaTsKQEAgLTQ0NSwxMiArNDY5LDEyIEBAIGlieF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAl9CiAKIAlpZiAoIXBsbCkKLQkJcmV0dXJuIE5VTEw7 CisJCXJldHVybiBmYWxzZTsKIAogCS8qIHJlZmVyZW5jZSB0aGUgcGxsICovCiAJaW50ZWxfcmVm ZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7CiAKLQlyZXR1cm4gcGxsOworCXJl dHVybiB0cnVlOwogfQogCiBzdGF0aWMgdm9pZCBpYnhfZHVtcF9od19zdGF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC04MjEsMTAgKzg0NSwxMiBAQCBoc3dfZGRpX2Rw X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCXJldHVybiBw bGw7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgotaHN3X2dldF9kcGxs KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCSAgICAgc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMgYm9vbCBoc3dfZ2V0X2RwbGwoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkg c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7CisJc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRl LCBjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKIAogCW1lbXNldCgmY3J0 Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwgMCwKQEAgLTgzNiw3ICs4NjIsNyBAQCBoc3dfZ2V0X2Rw bGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXBsbCA9IGhzd19kZGlf ZHBfZ2V0X2RwbGwoY3J0Y19zdGF0ZSk7CiAJfSBlbHNlIGlmIChpbnRlbF9jcnRjX2hhc190eXBl KGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9BTkFMT0cpKSB7CiAJCWlmIChXQVJOX09OKGNydGNf c3RhdGUtPnBvcnRfY2xvY2sgLyAyICE9IDEzNTAwMCkpCi0JCQlyZXR1cm4gTlVMTDsKKwkJCXJl dHVybiBmYWxzZTsKIAogCQljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLnNwbGwgPQogCQkJU1BM TF9QTExfRU5BQkxFIHwgU1BMTF9QTExfRlJFUV8xMzUwTUh6IHwgU1BMTF9QTExfU1NDOwpAQCAt ODQ0LDE1ICs4NzAsMTUgQEAgaHN3X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogCQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGNfc3RhdGUsCiAJ CQkJCSAgICAgRFBMTF9JRF9TUExMLCBEUExMX0lEX1NQTEwpOwogCX0gZWxzZSB7Ci0JCXJldHVy biBOVUxMOworCQlyZXR1cm4gZmFsc2U7CiAJfQogCiAJaWYgKCFwbGwpCi0JCXJldHVybiBOVUxM OworCQlyZXR1cm4gZmFsc2U7CiAKIAlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwocGxsLCBj cnRjX3N0YXRlKTsKIAotCXJldHVybiBwbGw7CisJcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyB2 b2lkIGhzd19kdW1wX2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK QEAgLTEzODUsMTAgKzE0MTEsMTIgQEAgc2tsX2RkaV9kcF9zZXRfZHBsbF9od19zdGF0ZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3Rh dGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCi1za2xfZ2V0X2RwbGwoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKK3N0YXRpYyBib29sIHNrbF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSwKKwkJCSBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCSBzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcikKIHsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSA9CisJCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwogCXN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwogCWJvb2wgYnJldDsKIApAQCAtMTM5NiwxNiAr MTQyNCwxNiBAQCBza2xfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiAJCWJyZXQgPSBza2xfZGRpX2hkbWlfcGxsX2RpdmlkZXJzKGNydGNfc3RhdGUpOwogCQlp ZiAoIWJyZXQpIHsKIAkJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBnZXQgSERNSSBwbGwgZGl2 aWRlcnMuXG4iKTsKLQkJCXJldHVybiBOVUxMOworCQkJcmV0dXJuIGZhbHNlOwogCQl9CiAJfSBl bHNlIGlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpKSB7CiAJCWJyZXQg PSBza2xfZGRpX2RwX3NldF9kcGxsX2h3X3N0YXRlKGNydGNfc3RhdGUpOwogCQlpZiAoIWJyZXQp IHsKIAkJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBzZXQgRFAgZHBsbCBIVyBzdGF0ZS5cbiIp OwotCQkJcmV0dXJuIE5VTEw7CisJCQlyZXR1cm4gZmFsc2U7CiAJCX0KIAl9IGVsc2UgewotCQly ZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGZhbHNlOwogCX0KIAogCWlmIChpbnRlbF9jcnRjX2hhc190 eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9FRFApKQpAQCAtMTQxNywxMSArMTQ0NSwxMSBA QCBza2xfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJ CSAgICAgRFBMTF9JRF9TS0xfRFBMTDEsCiAJCQkJCSAgICAgRFBMTF9JRF9TS0xfRFBMTDMpOwog CWlmICghcGxsKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGZhbHNlOwogCiAJaW50ZWxfcmVm ZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7CiAKLQlyZXR1cm4gcGxsOworCXJl dHVybiB0cnVlOwogfQogCiBzdGF0aWMgdm9pZCBza2xfZHVtcF9od19zdGF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC0xODI3LDIyICsxODU1LDIzIEBAIGJ4dF9kZGlf aGRtaV9zZXRfZHBsbF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIAlyZXR1cm4gYnh0X2RkaV9zZXRfZHBsbF9od19zdGF0ZShjcnRjX3N0YXRlLCAmY2xrX2Rp dik7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgotYnh0X2dldF9kcGxs KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCSAgICAgc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMgYm9vbCBieHRfZ2V0X2RwbGwoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkg c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0 YXRlKHN0YXRlLCBjcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsK IAllbnVtIGludGVsX2RwbGxfaWQgaWQ7CiAKIAlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRj X3N0YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkgJiYKIAkgICAgIWJ4dF9kZGlfaGRtaV9zZXRfZHBs bF9od19zdGF0ZShjcnRjX3N0YXRlKSkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBmYWxzZTsK IAogCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpICYmCiAJICAgICFi eHRfZGRpX2RwX3NldF9kcGxsX2h3X3N0YXRlKGNydGNfc3RhdGUpKQotCQlyZXR1cm4gTlVMTDsK KwkJcmV0dXJuIGZhbHNlOwogCiAJLyogMToxIG1hcHBpbmcgYmV0d2VlbiBwb3J0cyBhbmQgUExM cyAqLwogCWlkID0gKGVudW0gaW50ZWxfZHBsbF9pZCkgZW5jb2Rlci0+cG9ydDsKQEAgLTE4NTMs NyArMTg4Miw3IEBAIGJ4dF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAogCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGwsIGNydGNfc3RhdGUpOwog Ci0JcmV0dXJuIHBsbDsKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQgYnh0X2R1bXBf aHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMTg4NCw4ICsx OTEzLDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfZnVuY3MgYnh0 X2RkaV9wbGxfZnVuY3MgPSB7CiBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgewogCWNvbnN0IHN0cnVj dCBkcGxsX2luZm8gKmRwbGxfaW5mbzsKIAotCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqKCpn ZXRfZHBsbCkoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCQkJCSAgICAg IHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKKwlib29sICgqZ2V0X2RwbGxzKShzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSAgc3RydWN0IGludGVsX2NydGMgKmNy dGMsCisJCQkgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKKwl2b2lkICgqcHV0X2Rw bGxzKShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSAgc3RydWN0IGludGVs X2NydGMgKmNydGMpOwogCiAJdm9pZCAoKmR1bXBfaHdfc3RhdGUpKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0 YXRlICpod19zdGF0ZSk7CkBAIC0xODk5LDcgKzE5MzEsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGRwbGxfaW5mbyBwY2hfcGxsc1tdID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rw bGxfbWdyIHBjaF9wbGxfbWdyID0gewogCS5kcGxsX2luZm8gPSBwY2hfcGxscywKLQkuZ2V0X2Rw bGwgPSBpYnhfZ2V0X2RwbGwsCisJLmdldF9kcGxscyA9IGlieF9nZXRfZHBsbCwKKwkucHV0X2Rw bGxzID0gaW50ZWxfcHV0X2RwbGwsCiAJLmR1bXBfaHdfc3RhdGUgPSBpYnhfZHVtcF9od19zdGF0 ZSwKIH07CiAKQEAgLTE5MTUsNyArMTk0OCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9p bmZvIGhzd19wbGxzW10gPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3Ig aHN3X3BsbF9tZ3IgPSB7CiAJLmRwbGxfaW5mbyA9IGhzd19wbGxzLAotCS5nZXRfZHBsbCA9IGhz d19nZXRfZHBsbCwKKwkuZ2V0X2RwbGxzID0gaHN3X2dldF9kcGxsLAorCS5wdXRfZHBsbHMgPSBp bnRlbF9wdXRfZHBsbCwKIAkuZHVtcF9od19zdGF0ZSA9IGhzd19kdW1wX2h3X3N0YXRlLAogfTsK IApAQCAtMTkyOSw3ICsxOTYzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gc2ts X3BsbHNbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBza2xfcGxs X21nciA9IHsKIAkuZHBsbF9pbmZvID0gc2tsX3BsbHMsCi0JLmdldF9kcGxsID0gc2tsX2dldF9k cGxsLAorCS5nZXRfZHBsbHMgPSBza2xfZ2V0X2RwbGwsCisJLnB1dF9kcGxscyA9IGludGVsX3B1 dF9kcGxsLAogCS5kdW1wX2h3X3N0YXRlID0gc2tsX2R1bXBfaHdfc3RhdGUsCiB9OwogCkBAIC0x OTQyLDcgKzE5NzcsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBieHRfcGxsc1td ID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyIGJ4dF9wbGxfbWdyID0g ewogCS5kcGxsX2luZm8gPSBieHRfcGxscywKLQkuZ2V0X2RwbGwgPSBieHRfZ2V0X2RwbGwsCisJ LmdldF9kcGxscyA9IGJ4dF9nZXRfZHBsbCwKKwkucHV0X2RwbGxzID0gaW50ZWxfcHV0X2RwbGws CiAJLmR1bXBfaHdfc3RhdGUgPSBieHRfZHVtcF9od19zdGF0ZSwKIH07CiAKQEAgLTIzMzIsMTAg KzIzNjgsMTIgQEAgY25sX2RkaV9kcF9zZXRfZHBsbF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHN0cnVjdCBp bnRlbF9zaGFyZWRfZHBsbCAqCi1jbmxfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCi0JICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3N0YXRp YyBib29sIGNubF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJ CSBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCSBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKIHsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CisJCWludGVs X2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwogCXN0cnVjdCBpbnRlbF9z aGFyZWRfZHBsbCAqcGxsOwogCWJvb2wgYnJldDsKIApAQCAtMjM0MywxOCArMjM4MSwxOCBAQCBj bmxfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCWJyZXQg PSBjbmxfZGRpX2hkbWlfcGxsX2RpdmlkZXJzKGNydGNfc3RhdGUpOwogCQlpZiAoIWJyZXQpIHsK IAkJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBnZXQgSERNSSBwbGwgZGl2aWRlcnMuXG4iKTsK LQkJCXJldHVybiBOVUxMOworCQkJcmV0dXJuIGZhbHNlOwogCQl9CiAJfSBlbHNlIGlmIChpbnRl bF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpKSB7CiAJCWJyZXQgPSBjbmxfZGRpX2Rw X3NldF9kcGxsX2h3X3N0YXRlKGNydGNfc3RhdGUpOwogCQlpZiAoIWJyZXQpIHsKIAkJCURSTV9E RUJVR19LTVMoIkNvdWxkIG5vdCBzZXQgRFAgZHBsbCBIVyBzdGF0ZS5cbiIpOwotCQkJcmV0dXJu IE5VTEw7CisJCQlyZXR1cm4gZmFsc2U7CiAJCX0KIAl9IGVsc2UgewogCQlEUk1fREVCVUdfS01T KCJTa2lwIERQTEwgc2V0dXAgZm9yIG91dHB1dF90eXBlcyAweCV4XG4iLAogCQkJICAgICAgY3J0 Y19zdGF0ZS0+b3V0cHV0X3R5cGVzKTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBmYWxzZTsK IAl9CiAKIAlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGNfc3RhdGUsCkBAIC0yMzYy LDEyICsyNDAwLDEyIEBAIGNubF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIAkJCQkgICAgIERQTExfSURfU0tMX0RQTEwyKTsKIAlpZiAoIXBsbCkgewogCQlE Uk1fREVCVUdfS01TKCJObyBQTEwgc2VsZWN0ZWRcbiIpOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0 dXJuIGZhbHNlOwogCX0KIAogCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGwsIGNydGNf c3RhdGUpOwogCi0JcmV0dXJuIHBsbDsKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQg Y25sX2R1bXBfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAt MjM5NCw3ICsyNDMyLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gY25sX3BsbHNb XSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBjbmxfcGxsX21nciA9 IHsKIAkuZHBsbF9pbmZvID0gY25sX3BsbHMsCi0JLmdldF9kcGxsID0gY25sX2dldF9kcGxsLAor CS5nZXRfZHBsbHMgPSBjbmxfZ2V0X2RwbGwsCisJLnB1dF9kcGxscyA9IGludGVsX3B1dF9kcGxs LAogCS5kdW1wX2h3X3N0YXRlID0gY25sX2R1bXBfaHdfc3RhdGUsCiB9OwogCkBAIC0yNzkyLDEx ICsyODMxLDEzIEBAIHN0YXRpYyBib29sIGljbF9jYWxjX21nX3BsbF9zdGF0ZShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCi1pY2xfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCi0JICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikK K3N0YXRpYyBib29sIGljbF9nZXRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUsCisJCQkgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJICBzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CisJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0 YXRlKHN0YXRlLCBjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydDsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKIAllbnVtIHBvcnQgcG9ydCA9 IGVuY29kZXItPnBvcnQ7CkBAIC0yODMxLDI0ICsyODcyLDI0IEBAIGljbF9nZXRfZHBsbChzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJfQogCX0gZWxzZSB7CiAJCU1JU1NJ TkdfQ0FTRShwb3J0KTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBmYWxzZTsKIAl9CiAKIAlp ZiAoIXJldCkgewogCQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3QgY2FsY3VsYXRlIFBMTCBzdGF0 ZS5cbiIpOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGZhbHNlOwogCX0KIAogCiAJcGxsID0g aW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLCBtaW4sIG1heCk7CiAJaWYgKCFwbGwp IHsKIAkJRFJNX0RFQlVHX0tNUygiTm8gUExMIHNlbGVjdGVkXG4iKTsKLQkJcmV0dXJuIE5VTEw7 CisJCXJldHVybiBmYWxzZTsKIAl9CiAKIAlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwocGxs LCBjcnRjX3N0YXRlKTsKIAotCXJldHVybiBwbGw7CisJcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRp YyBib29sIG1nX3BsbF9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LApAQCAtMzIyMyw3ICszMjY0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8g aWNsX3BsbHNbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBpY2xf cGxsX21nciA9IHsKIAkuZHBsbF9pbmZvID0gaWNsX3BsbHMsCi0JLmdldF9kcGxsID0gaWNsX2dl dF9kcGxsLAorCS5nZXRfZHBsbHMgPSBpY2xfZ2V0X2RwbGxzLAorCS5wdXRfZHBsbHMgPSBpbnRl bF9wdXRfZHBsbCwKIAkuZHVtcF9od19zdGF0ZSA9IGljbF9kdW1wX2h3X3N0YXRlLAogfTsKIApA QCAtMzIzNSw3ICszMjc3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gZWhsX3Bs bHNbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBlaGxfcGxsX21n ciA9IHsKIAkuZHBsbF9pbmZvID0gZWhsX3BsbHMsCi0JLmdldF9kcGxsID0gaWNsX2dldF9kcGxs LAorCS5nZXRfZHBsbHMgPSBpY2xfZ2V0X2RwbGxzLAorCS5wdXRfZHBsbHMgPSBpbnRlbF9wdXRf ZHBsbCwKIAkuZHVtcF9od19zdGF0ZSA9IGljbF9kdW1wX2h3X3N0YXRlLAogfTsKIApAQCAtMzI4 Nyw1MCArMzMzMCw2NCBAQCB2b2lkIGludGVsX3NoYXJlZF9kcGxsX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIH0KIAogLyoqCi0gKiBpbnRlbF9nZXRfc2hhcmVkX2RwbGwgLSBnZXQgYSBz aGFyZWQgRFBMTCBmb3IgQ1JUQyBhbmQgZW5jb2RlciBjb21iaW5hdGlvbgotICogQGNydGNfc3Rh dGU6IGF0b21pYyBzdGF0ZSBmb3IgdGhlIGNydGMKKyAqIGludGVsX3Jlc2VydmVfc2hhcmVkX2Rw bGxzIC0gcmVzZXJ2ZSBEUExMcyBmb3IgQ1JUQyBhbmQgZW5jb2RlciBjb21iaW5hdGlvbgorICog QHN0YXRlOiBhdG9taWMgc3RhdGUKKyAqIEBjcnRjOiBDUlRDIHRvIHJlc2VydmUgRFBMTHMgZm9y CiAgKiBAZW5jb2RlcjogZW5jb2RlcgogICoKLSAqIEZpbmQgYW4gYXBwcm9wcmlhdGUgRFBMTCBm b3IgdGhlIGdpdmVuIENSVEMgYW5kIGVuY29kZXIgY29tYmluYXRpb24uIEEKLSAqIHJlZmVyZW5j ZSBmcm9tIHRoZSBAY3J0Y19zdGF0ZSB0byB0aGUgcmV0dXJuZWQgcGxsIGlzIHJlZ2lzdGVyZWQg aW4gdGhlCi0gKiBhdG9taWMgc3RhdGUuIFRoYXQgY29uZmlndXJhdGlvbiBpcyBtYWRlIGVmZmVj dGl2ZSBieSBjYWxsaW5nCi0gKiBpbnRlbF9zaGFyZWRfZHBsbF9zd2FwX3N0YXRlKCkuIFRoZSBy ZWZlcmVuY2Ugc2hvdWxkIGJlIHJlbGVhc2VkIGJ5IGNhbGxpbmcKLSAqIGludGVsX3JlbGVhc2Vf c2hhcmVkX2RwbGwoKS4KKyAqIFRoaXMgZnVuY3Rpb24gcmVzZXJ2ZXMgYWxsIHJlcXVpcmVkIERQ TExzIGZvciB0aGUgZ2l2ZW4gQ1JUQyBhbmQgZW5jb2RlcgorICogY29tYmluYXRpb24gaW4gdGhl IGN1cnJlbnQgYXRvbWljIGNvbW1pdCBAc3RhdGUgYW5kIHRoZSBuZXcgQGNydGMgYXRvbWljCisg KiBzdGF0ZS4KKyAqCisgKiBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW4gdGhlIGF0b21pYyBjb21t aXQgQHN0YXRlIGlzIG1hZGUgZWZmZWN0aXZlIGJ5CisgKiBjYWxsaW5nIGludGVsX3NoYXJlZF9k cGxsX3N3YXBfc3RhdGUoKS4KKyAqCisgKiBUaGUgcmVzZXJ2ZWQgRFBMTHMgc2hvdWxkIGJlIHJl bGVhc2VkIGJ5IGNhbGxpbmcKKyAqIGludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGxzKCkuCiAgKgog ICogUmV0dXJuczoKLSAqIEEgc2hhcmVkIERQTEwgdG8gYmUgdXNlZCBieSBAY3J0Y19zdGF0ZSBh bmQgQGVuY29kZXIuCisgKiBUcnVlIGlmIGFsbCByZXF1aXJlZCBEUExMcyB3ZXJlIHN1Y2Nlc2Z1 bGx5IHJlc2VydmVkLgogICovCi1zdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgotaW50ZWxfZ2V0 X3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkgICAg ICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK2Jvb2wgaW50ZWxfcmVzZXJ2ZV9zaGFy ZWRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCisJCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5i YXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShzdGF0ZS0+YmFzZS5kZXYpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciAqZHBs bF9tZ3IgPSBkZXZfcHJpdi0+ZHBsbF9tZ3I7CiAKIAlpZiAoV0FSTl9PTighZHBsbF9tZ3IpKQot CQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGZhbHNlOwogCi0JcmV0dXJuIGRwbGxfbWdyLT5nZXRf ZHBsbChjcnRjX3N0YXRlLCBlbmNvZGVyKTsKKwlyZXR1cm4gZHBsbF9tZ3ItPmdldF9kcGxscyhz dGF0ZSwgY3J0YywgZW5jb2Rlcik7CiB9CiAKIC8qKgotICogaW50ZWxfcmVsZWFzZV9zaGFyZWRf ZHBsbCAtIGVuZCB1c2Ugb2YgRFBMTCBieSBDUlRDIGluIGF0b21pYyBzdGF0ZQotICogQGRwbGw6 IGRwbGwgaW4gdXNlIGJ5IEBjcnRjCi0gKiBAY3J0YzogY3J0YworICogaW50ZWxfcmVsZWFzZV9z aGFyZWRfZHBsbHMgLSBlbmQgdXNlIG9mIERQTExzIGJ5IENSVEMgaW4gYXRvbWljIHN0YXRlCiAg KiBAc3RhdGU6IGF0b21pYyBzdGF0ZQorICogQGNydGM6IGNydGMgZnJvbSB3aGljaCB0aGUgRFBM THMgYXJlIHRvIGJlIHJlbGVhc2VkCiAgKgotICogVGhpcyBmdW5jdGlvbiByZWxlYXNlcyB0aGUg cmVmZXJlbmNlIGZyb20gQGNydGMgdG8gQGRwbGwgZnJvbSB0aGUKLSAqIGF0b21pYyBAc3RhdGUu IFRoZSBuZXcgY29uZmlndXJhdGlvbiBpcyBtYWRlIGVmZmVjdGl2ZSBieSBjYWxsaW5nCi0gKiBp bnRlbF9zaGFyZWRfZHBsbF9zd2FwX3N0YXRlKCkuCisgKiBUaGlzIGZ1bmN0aW9uIHJlbGVhc2Vz IGFsbCBEUExMcyByZXNlcnZlZCBieSBpbnRlbF9yZXNlcnZlX3NoYXJlZF9kcGxscygpCisgKiBm cm9tIHRoZSBjdXJyZW50IGF0b21pYyBjb21taXQgQHN0YXRlIGFuZCB0aGUgb2xkIEBjcnRjIGF0 b21pYyBzdGF0ZS4KKyAqCisgKiBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW4gdGhlIGF0b21pYyBj b21taXQgQHN0YXRlIGlzIG1hZGUgZWZmZWN0aXZlIGJ5CisgKiBjYWxsaW5nIGludGVsX3NoYXJl ZF9kcGxsX3N3YXBfc3RhdGUoKS4KICAqLwotdm9pZCBpbnRlbF9yZWxlYXNlX3NoYXJlZF9kcGxs KHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqZHBsbCwKLQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKLQkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCit2 b2lkIGludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlLAorCQkJCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogewotCXN0cnVjdCBpbnRlbF9z aGFyZWRfZHBsbF9zdGF0ZSAqc2hhcmVkX2RwbGxfc3RhdGU7CisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOworCWNvbnN0IHN0cnVj dCBpbnRlbF9kcGxsX21nciAqZHBsbF9tZ3IgPSBkZXZfcHJpdi0+ZHBsbF9tZ3I7CisKKwkvKgor CSAqIEZJWE1FOiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgZXZlcnkgcGxhdGZvcm0gaGF2 aW5nIGEKKwkgKiBjb21wdXRlX2Nsb2NrIGhvb2ssIGV2ZW4gdGhvdWdoIHRoZSBwbGF0Zm9ybSBk b2Vzbid0IHlldCBzdXBwb3J0CisJICogdGhlIHNoYXJlZCBEUExMIGZyYW1ld29yayBhbmQgaW50 ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoKSBpcyBub3QKKwkgKiBjYWxsZWQgb24gdGhvc2UuCisJ ICovCisJaWYgKCFkcGxsX21ncikKKwkJcmV0dXJuOwogCi0Jc2hhcmVkX2RwbGxfc3RhdGUgPSBp bnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRlKHN0YXRlKTsKLQlzaGFyZWRfZHBsbF9z dGF0ZVtkcGxsLT5pbmZvLT5pZF0uY3J0Y19tYXNrICY9IH4oMSA8PCBjcnRjLT5waXBlKTsKKwlk cGxsX21nci0+cHV0X2RwbGxzKHN0YXRlLCBjcnRjKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBsbF9tZ3IuaAppbmRleCBiNWRkOWM3YWQ3NzIuLjZmZmRjYzA2YWQyMyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oCkBAIC0zOSw2ICszOSw3IEBACiBzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZTsKIHN0cnVjdCBkcm1fZGV2aWNlOwogc3RydWN0IGRybV9pOTE1 X3ByaXZhdGU7CitzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlOwogc3RydWN0IGludGVsX2NydGM7 CiBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZTsKIHN0cnVjdCBpbnRlbF9lbmNvZGVyOwpAQCAtMTk1 LDcgKzE5Niw3IEBAIHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIHsKICAqIGZ1dHVyZSBzdGF0 ZSB3aGljaCB3b3VsZCBiZSBhcHBsaWVkIGJ5IGFuIGF0b21pYyBtb2RlIHNldCAoc3RvcmVkIGlu CiAgKiBhIHN0cnVjdCAmaW50ZWxfYXRvbWljX3N0YXRlKS4KICAqCi0gKiBTZWUgYWxzbyBpbnRl bF9nZXRfc2hhcmVkX2RwbGwoKSBhbmQgaW50ZWxfcmVsZWFzZV9zaGFyZWRfZHBsbCgpLgorICog U2VlIGFsc28gaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoKSBhbmQgaW50ZWxfcmVsZWFzZV9z aGFyZWRfZHBsbHMoKS4KICAqLwogc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX3N0YXRlIHsKIAkv KioKQEAgLTMzMSwxMSArMzMyLDExIEBAIHZvaWQgYXNzZXJ0X3NoYXJlZF9kcGxsKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCWJvb2wgc3RhdGUpOwogI2RlZmluZSBhc3Nl cnRfc2hhcmVkX2RwbGxfZW5hYmxlZChkLCBwKSBhc3NlcnRfc2hhcmVkX2RwbGwoZCwgcCwgdHJ1 ZSkKICNkZWZpbmUgYXNzZXJ0X3NoYXJlZF9kcGxsX2Rpc2FibGVkKGQsIHApIGFzc2VydF9zaGFy ZWRfZHBsbChkLCBwLCBmYWxzZSkKLXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqaW50ZWxfZ2V0 X3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSwKLQkJCQkJCXN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKLXZvaWQgaW50ZWxfcmVsZWFzZV9zaGFyZWRfZHBs bChzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmRwbGwsCi0JCQkgICAgICAgc3RydWN0IGludGVs X2NydGMgKmNydGMsCi0JCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsK K2Jvb2wgaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUsCisJCQkJc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkJc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpOwordm9pZCBpbnRlbF9yZWxlYXNlX3NoYXJlZF9kcGxscyhzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 Yyk7CiB2b2lkIGludGVsX3ByZXBhcmVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpOwogdm9pZCBpbnRlbF9lbmFibGVfc2hhcmVkX2RwbGwoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwogdm9pZCBpbnRlbF9kaXNh YmxlX3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KTsKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4