From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v3 17/23] drm/i915: Sanitize the shared DPLL find/reference interface Date: Fri, 28 Jun 2019 17:36:29 +0300 Message-ID: <20190628143635.22066-18-imre.deak@intel.com> References: <20190628143635.22066-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 84BB86E940 for ; Fri, 28 Jun 2019 14:37:16 +0000 (UTC) In-Reply-To: <20190628143635.22066-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 UGFzcyB0aGUgUExMIEhXIHN0YXRlIHRvIHRoZSBQTEwgZmluZC9yZWZlcmVuY2UgZnVuY3Rpb25z IG1ha2luZyBpdApjbGVhcmVyIHdoYXQgaXMgdGhlaXIgaW5wdXQuIEFsc28gcGFzcyB0byB0aGVz ZSB0aGUgYXRvbWljIHN0YXRlIGFuZCB0aGUKQ1JUQyBvYmplY3QgaW5zdGVhZCBvZiB0aGUgQ1JU QyBzdGF0ZSwgc2luY2UgdGhleSBkb24ndCByZXF1aXJlIHRoZQpsYXR0ZXIuCgpNb3ZlIHNldHRp bmcgdGhlIFBMTCBpbiB0aGUgY3J0Y19zdGF0ZSB0byB0aGUgZ2V0X2RwbGwoKSBob29rLCB3aGlj aAppcyB0aGUgbW9yZSBsb2dpY2FsIHBsYWNlIGZvciB0aGlzLCB3aGVyZSB0aGUgcmVsYXRlZCBQ TEwgSFcgc3RhdGUgd2FzIGFsc28Kc2V0LgoKVGhpcyByZWZhY3RvcmluZyBpcyBhbHNvIGEgcHJl cGFyYXRpb24gZm9yIGEgZm9sbG93LXVwIHBhdGNoIHRoYXQgd2lsbApoYXZlIHRvIGZpbmQvcmVm ZXJlbmNlIG11bHRpcGxlIFBMTHMuCgpObyBmdW5jdGlvbmFsIGNoYW5nZXMuCgpDYzogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0 ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRl bi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGlt cmUuZGVha0BpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZHBsbF9tZ3IuYyB8IDEwNyArKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA3MCBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMKaW5kZXggM2ZiYzk3NTg1MWZhLi4xNGJiYWI0 NTgzNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBs bF9tZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdy LmMKQEAgLTI0NCwxNyArMjQ0LDE4IEBAIHZvaWQgaW50ZWxfZGlzYWJsZV9zaGFyZWRfZHBsbChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIH0KIAogc3RhdGljIHN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCi1pbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAoraW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAorCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUg KnBsbF9zdGF0ZSwKIAkJICAgICAgIGVudW0gaW50ZWxfZHBsbF9pZCByYW5nZV9taW4sCiAJCSAg ICAgICBlbnVtIGludGVsX2RwbGxfaWQgcmFuZ2VfbWF4KQogewotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsLCAqdW51c2VkX3BsbCA9IE5VTEw7CiAJc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsX3N0YXRlICpzaGFyZWRfZHBsbDsKIAllbnVtIGludGVsX2RwbGxf aWQgaTsKIAotCXNoYXJlZF9kcGxsID0gaW50ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0 ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwlzaGFyZWRfZHBsbCA9IGludGVsX2F0b21pY19n ZXRfc2hhcmVkX2RwbGxfc3RhdGUoJnN0YXRlLT5iYXNlKTsKIAogCWZvciAoaSA9IHJhbmdlX21p bjsgaSA8PSByYW5nZV9tYXg7IGkrKykgewogCQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9kcGxs c1tpXTsKQEAgLTI2Niw5ICsyNjcsOSBAQCBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJY29udGludWU7CiAJCX0KIAotCQlpZiAo bWVtY21wKCZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAorCQlpZiAobWVtY21wKHBsbF9zdGF0 ZSwKIAkJCSAgICZzaGFyZWRfZHBsbFtpXS5od19zdGF0ZSwKLQkJCSAgIHNpemVvZihjcnRjX3N0 YXRlLT5kcGxsX2h3X3N0YXRlKSkgPT0gMCkgeworCQkJICAgc2l6ZW9mKCpwbGxfc3RhdGUpKSA9 PSAwKSB7CiAJCQlEUk1fREVCVUdfS01TKCJbQ1JUQzolZDolc10gc2hhcmluZyBleGlzdGluZyAl cyAoY3J0YyBtYXNrIDB4JTA4eCwgYWN0aXZlICV4KVxuIiwKIAkJCQkgICAgICBjcnRjLT5iYXNl LmJhc2UuaWQsIGNydGMtPmJhc2UubmFtZSwKIAkJCQkgICAgICBwbGwtPmluZm8tPm5hbWUsCkBA IC0yOTAsMjAgKzI5MSwxOSBAQCBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogfQogCiBzdGF0aWMgdm9pZAotaW50ZWxfcmVmZXJlbmNl X3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsLAotCQkJICAgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQoraW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9k cGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAorCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBs bCAqcGxsLAorCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpwbGxfc3Rh dGUpCiB7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX3N0YXRlICpzaGFyZWRfZHBsbDsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKIAljb25zdCBlbnVtIGludGVsX2RwbGxfaWQgaWQgPSBwbGwtPmluZm8tPmlkOwogCi0J c2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRlKGNydGNfc3Rh dGUtPmJhc2Uuc3RhdGUpOworCXNoYXJlZF9kcGxsID0gaW50ZWxfYXRvbWljX2dldF9zaGFyZWRf ZHBsbF9zdGF0ZSgmc3RhdGUtPmJhc2UpOwogCiAJaWYgKHNoYXJlZF9kcGxsW2lkXS5jcnRjX21h c2sgPT0gMCkKLQkJc2hhcmVkX2RwbGxbaWRdLmh3X3N0YXRlID0KLQkJCWNydGNfc3RhdGUtPmRw bGxfaHdfc3RhdGU7CisJCXNoYXJlZF9kcGxsW2lkXS5od19zdGF0ZSA9ICpwbGxfc3RhdGU7CiAK LQljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IHBsbDsKIAlEUk1fREVCVUdfRFJJVkVSKCJ1c2lu ZyAlcyBmb3IgcGlwZSAlY1xuIiwgcGxsLT5pbmZvLT5uYW1lLAogCQkJIHBpcGVfbmFtZShjcnRj LT5waXBlKSk7CiAKQEAgLTQ2Myw3ICs0NjMsOCBAQCBzdGF0aWMgYm9vbCBpYnhfZ2V0X2RwbGwo c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkgICAgICBjcnRjLT5iYXNlLmJh c2UuaWQsIGNydGMtPmJhc2UubmFtZSwKIAkJCSAgICAgIHBsbC0+aW5mby0+bmFtZSk7CiAJfSBl bHNlIHsKLQkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLAorCQlwbGwg PSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCQkgICAgICZjcnRjX3N0 YXRlLT5kcGxsX2h3X3N0YXRlLAogCQkJCQkgICAgIERQTExfSURfUENIX1BMTF9BLAogCQkJCQkg ICAgIERQTExfSURfUENIX1BMTF9CKTsKIAl9CkBAIC00NzIsNyArNDczLDEwIEBAIHN0YXRpYyBi b29sIGlieF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJcmV0 dXJuIGZhbHNlOwogCiAJLyogcmVmZXJlbmNlIHRoZSBwbGwgKi8KLQlpbnRlbF9yZWZlcmVuY2Vf c2hhcmVkX2RwbGwocGxsLCBjcnRjX3N0YXRlKTsKKwlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2Rw bGwoc3RhdGUsIGNydGMsCisJCQkJICAgIHBsbCwgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUp OworCisJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0K QEAgLTc5MSw4ICs3OTUsMTIgQEAgaHN3X2RkaV9jYWxjdWxhdGVfd3JwbGwoaW50IGNsb2NrIC8q IGluIEh6ICovLAogCSpyMl9vdXQgPSBiZXN0LnIyOwogfQogCi1zdGF0aWMgc3RydWN0IGludGVs X3NoYXJlZF9kcGxsICpoc3dfZGRpX2hkbWlfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCitzdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoKK2hzd19k ZGlfaGRtaV9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJICAg ICAgc3RydWN0IGludGVsX2NydGMgKmNydGMpCiB7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBj cnRjKTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKIAl1MzIgdmFsOwogCXVuc2ln bmVkIGludCBwLCBuMiwgcjI7CkBAIC04MDUsNyArODEzLDggQEAgc3RhdGljIHN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbCAqaHN3X2RkaV9oZG1pX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICoKIAogCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUud3JwbGwgPSB2YWw7CiAKLQlwbGwg PSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGNfc3RhdGUsCisJcGxsID0gaW50ZWxfZmluZF9z aGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKKwkJCQkgICAgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0 YXRlLAogCQkJCSAgICAgRFBMTF9JRF9XUlBMTDEsIERQTExfSURfV1JQTEwyKTsKIAogCWlmICgh cGxsKQpAQCAtODU3LDcgKzg2Niw3IEBAIHN0YXRpYyBib29sIGhzd19nZXRfZHBsbChzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkgICAgICAgc2l6ZW9mKGNydGNfc3RhdGUtPmRw bGxfaHdfc3RhdGUpKTsKIAogCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElO VEVMX09VVFBVVF9IRE1JKSkgewotCQlwbGwgPSBoc3dfZGRpX2hkbWlfZ2V0X2RwbGwoY3J0Y19z dGF0ZSk7CisJCXBsbCA9IGhzd19kZGlfaGRtaV9nZXRfZHBsbChzdGF0ZSwgY3J0Yyk7CiAJfSBl bHNlIGlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpKSB7CiAJCXBsbCA9 IGhzd19kZGlfZHBfZ2V0X2RwbGwoY3J0Y19zdGF0ZSk7CiAJfSBlbHNlIGlmIChpbnRlbF9jcnRj X2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9BTkFMT0cpKSB7CkBAIC04NjcsNyAr ODc2LDggQEAgc3RhdGljIGJvb2wgaHN3X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlLAogCQljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLnNwbGwgPQogCQkJU1BMTF9Q TExfRU5BQkxFIHwgU1BMTF9GUkVRXzEzNTBNSHogfCBTUExMX1JFRl9NVVhFRF9TU0M7CiAKLQkJ cGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLAorCQlwbGwgPSBpbnRlbF9m aW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCQkgICAgICZjcnRjX3N0YXRlLT5kcGxs X2h3X3N0YXRlLAogCQkJCQkgICAgIERQTExfSURfU1BMTCwgRFBMTF9JRF9TUExMKTsKIAl9IGVs c2UgewogCQlyZXR1cm4gZmFsc2U7CkBAIC04NzYsNyArODg2LDEwIEBAIHN0YXRpYyBib29sIGhz d19nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlpZiAoIXBsbCkK IAkJcmV0dXJuIGZhbHNlOwogCi0JaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0 Y19zdGF0ZSk7CisJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJ CSAgICBwbGwsICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKTsKKworCWNydGNfc3RhdGUtPnNo YXJlZF9kcGxsID0gcGxsOwogCiAJcmV0dXJuIHRydWU7CiB9CkBAIC0xNDM3LDE3ICsxNDUwLDIy IEBAIHN0YXRpYyBib29sIHNrbF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSwKIAl9CiAKIAlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9P VVRQVVRfRURQKSkKLQkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLAor CQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCQkgICAgICZj cnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAogCQkJCQkgICAgIERQTExfSURfU0tMX0RQTEwwLAog CQkJCQkgICAgIERQTExfSURfU0tMX0RQTEwwKTsKIAllbHNlCi0JCXBsbCA9IGludGVsX2ZpbmRf c2hhcmVkX2RwbGwoY3J0Y19zdGF0ZSwKKwkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChz dGF0ZSwgY3J0YywKKwkJCQkJICAgICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwKIAkJCQkJ ICAgICBEUExMX0lEX1NLTF9EUExMMSwKIAkJCQkJICAgICBEUExMX0lEX1NLTF9EUExMMyk7CiAJ aWYgKCFwbGwpCiAJCXJldHVybiBmYWxzZTsKIAotCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBs bChwbGwsIGNydGNfc3RhdGUpOworCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChzdGF0ZSwg Y3J0YywKKwkJCQkgICAgcGxsLCAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7CisKKwljcnRj X3N0YXRlLT5zaGFyZWRfZHBsbCA9IHBsbDsKIAogCXJldHVybiB0cnVlOwogfQpAQCAtMTg4MCw3 ICsxODk4LDEwIEBAIHN0YXRpYyBib29sIGJ4dF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSwKIAlEUk1fREVCVUdfS01TKCJbQ1JUQzolZDolc10gdXNpbmcgcHJlLWFs bG9jYXRlZCAlc1xuIiwKIAkJICAgICAgY3J0Yy0+YmFzZS5iYXNlLmlkLCBjcnRjLT5iYXNlLm5h bWUsIHBsbC0+aW5mby0+bmFtZSk7CiAKLQlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwocGxs LCBjcnRjX3N0YXRlKTsKKwlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMs CisJCQkJICAgIHBsbCwgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpOworCisJY3J0Y19zdGF0 ZS0+c2hhcmVkX2RwbGwgPSBwbGw7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTIzOTUsNyArMjQx Niw4IEBAIHN0YXRpYyBib29sIGNubF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSwKIAkJcmV0dXJuIGZhbHNlOwogCX0KIAotCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVk X2RwbGwoY3J0Y19zdGF0ZSwKKwlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBj cnRjLAorCQkJCSAgICAgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsCiAJCQkJICAgICBEUExM X0lEX1NLTF9EUExMMCwKIAkJCQkgICAgIERQTExfSURfU0tMX0RQTEwyKTsKIAlpZiAoIXBsbCkg ewpAQCAtMjQwMyw3ICsyNDI1LDEwIEBAIHN0YXRpYyBib29sIGNubF9nZXRfZHBsbChzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJcmV0dXJuIGZhbHNlOwogCX0KIAotCWludGVs X3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGwsIGNydGNfc3RhdGUpOworCWludGVsX3JlZmVyZW5j ZV9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKKwkJCQkgICAgcGxsLCAmY3J0Y19zdGF0ZS0+ZHBs bF9od19zdGF0ZSk7CisKKwljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IHBsbDsKIAogCXJldHVy biB0cnVlOwogfQpAQCAtMjU0NSw3ICsyNTcwLDggQEAgc3RhdGljIGJvb2wgaWNsX2NhbGNfdGJ0 X3BsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIH0KIAogc3RhdGljIGJv b2wgaWNsX2NhbGNfZHBsbF9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKLQkJCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKKwkJCQlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKKwkJCQlzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqcGxsX3N0 YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwogCXUzMiBjZmdjcjAsIGNmZ2NyMTsKQEAgLTI1NzIs MTEgKzI1OTgsMTAgQEAgc3RhdGljIGJvb2wgaWNsX2NhbGNfZHBsbF9zdGF0ZShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJIERQTExfQ0ZHQ1IxX1BESVYocGxsX3BhcmFt cy5wZGl2KSB8CiAJCSBEUExMX0NGR0NSMV9DRU5UUkFMX0ZSRVFfODQwMDsKIAotCW1lbXNldCgm Y3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwgMCwKLQkgICAgICAgc2l6ZW9mKGNydGNfc3RhdGUt PmRwbGxfaHdfc3RhdGUpKTsKKwltZW1zZXQocGxsX3N0YXRlLCAwLCBzaXplb2YoKnBsbF9zdGF0 ZSkpOwogCi0JY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5jZmdjcjAgPSBjZmdjcjA7Ci0JY3J0 Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5jZmdjcjEgPSBjZmdjcjE7CisJcGxsX3N0YXRlLT5jZmdj cjAgPSBjZmdjcjA7CisJcGxsX3N0YXRlLT5jZmdjcjEgPSBjZmdjcjE7CiAKIAlyZXR1cm4gdHJ1 ZTsKIH0KQEAgLTI2NjYsMTAgKzI2OTEsMTAgQEAgc3RhdGljIGJvb2wgaWNsX21nX3BsbF9maW5k X2Rpdmlzb3JzKGludCBjbG9ja19raHosIGJvb2wgaXNfZHAsIGJvb2wgdXNlX3NzYywKICAqIFRo ZSBzcGVjaWZpY2F0aW9uIGZvciB0aGlzIGZ1bmN0aW9uIHVzZXMgcmVhbCBudW1iZXJzLCBzbyB0 aGUgbWF0aCBoYWQgdG8gYmUKICAqIGFkYXB0ZWQgdG8gaW50ZWdlci1vbmx5IGNhbGN1bGF0aW9u LCB0aGF0J3Mgd2h5IGl0IGxvb2tzIHNvIGRpZmZlcmVudC4KICAqLwotc3RhdGljIGJvb2wgaWNs X2NhbGNfbWdfcGxsX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQor c3RhdGljIGJvb2wgaWNsX2NhbGNfbWdfcGxsX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAorCQkJCSAgc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0 ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqcGxs X3N0YXRlID0gJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGU7CiAJaW50IHJlZmNsa19raHogPSBk ZXZfcHJpdi0+Y2RjbGsuaHcucmVmOwogCWludCBjbG9jayA9IGNydGNfc3RhdGUtPnBvcnRfY2xv Y2s7CiAJdTMyIGRjb19raHosIG0xZGl2LCBtMmRpdl9pbnQsIG0yZGl2X3JlbSwgbTJkaXZfZnJh YzsKQEAgLTI4NDcsNyArMjg3Miw4IEBAIHN0YXRpYyBib29sIGljbF9nZXRfZHBsbHMoc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJaWYgKGludGVsX3BvcnRfaXNfY29tYm9waHko ZGV2X3ByaXYsIHBvcnQpKSB7CiAJCW1pbiA9IERQTExfSURfSUNMX0RQTEwwOwogCQltYXggPSBE UExMX0lEX0lDTF9EUExMMTsKLQkJcmV0ID0gaWNsX2NhbGNfZHBsbF9zdGF0ZShjcnRjX3N0YXRl LCBlbmNvZGVyKTsKKwkJcmV0ID0gaWNsX2NhbGNfZHBsbF9zdGF0ZShjcnRjX3N0YXRlLCBlbmNv ZGVyLAorCQkJCQkgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKTsKIAl9IGVsc2UgaWYgKGlu dGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQpKSB7CiAJCWlmIChlbmNvZGVyLT50eXBlID09 IElOVEVMX09VVFBVVF9EUF9NU1QpIHsKIAkJCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2RlciAq bXN0X2VuY29kZXI7CkBAIC0yODYxLDE0ICsyODg3LDE2IEBAIHN0YXRpYyBib29sIGljbF9nZXRf ZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCWlmIChpbnRlbF9kaWdf cG9ydC0+dGNfbW9kZSA9PSBUQ19QT1JUX1RCVF9BTFQpIHsKIAkJCW1pbiA9IERQTExfSURfSUNM X1RCVFBMTDsKIAkJCW1heCA9IG1pbjsKLQkJCXJldCA9IGljbF9jYWxjX2RwbGxfc3RhdGUoY3J0 Y19zdGF0ZSwgZW5jb2Rlcik7CisJCQlyZXQgPSBpY2xfY2FsY19kcGxsX3N0YXRlKGNydGNfc3Rh dGUsIGVuY29kZXIsCisJCQkJCQkgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKTsKIAkJfSBl bHNlIHsKIAkJCWVudW0gdGNfcG9ydCB0Y19wb3J0OwogCiAJCQl0Y19wb3J0ID0gaW50ZWxfcG9y dF90b190YyhkZXZfcHJpdiwgcG9ydCk7CiAJCQltaW4gPSBpY2xfdGNfcG9ydF90b19wbGxfaWQo dGNfcG9ydCk7CiAJCQltYXggPSBtaW47Ci0JCQlyZXQgPSBpY2xfY2FsY19tZ19wbGxfc3RhdGUo Y3J0Y19zdGF0ZSk7CisJCQlyZXQgPSBpY2xfY2FsY19tZ19wbGxfc3RhdGUoY3J0Y19zdGF0ZSwK KwkJCQkJCSAgICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7CiAJCX0KIAl9IGVsc2Ugewog CQlNSVNTSU5HX0NBU0UocG9ydCk7CkBAIC0yODgxLDEzICsyOTA5LDE4IEBAIHN0YXRpYyBib29s IGljbF9nZXRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJfQogCiAK LQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGNfc3RhdGUsIG1pbiwgbWF4KTsKKwlw bGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICAgJmNydGNf c3RhdGUtPmRwbGxfaHdfc3RhdGUsCisJCQkJICAgICBtaW4sIG1heCk7CiAJaWYgKCFwbGwpIHsK IAkJRFJNX0RFQlVHX0tNUygiTm8gUExMIHNlbGVjdGVkXG4iKTsKIAkJcmV0dXJuIGZhbHNlOwog CX0KIAotCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGwsIGNydGNfc3RhdGUpOworCWlu dGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKKwkJCQkgICAgcGxsLCAmY3J0 Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7CisKKwljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IHBs bDsKIAogCXJldHVybiB0cnVlOwogfQotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=