From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH 17/23] drm/i915: Sanitize the shared DPLL find/reference interface Date: Tue, 4 Jun 2019 17:58:20 +0300 Message-ID: <20190604145826.16424-18-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 346A2899BB for ; Tue, 4 Jun 2019 14:59:43 +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 UGFzcyB0aGUgUExMIEhXIHN0YXRlIHRvIHRoZSBQTEwgZmluZC9yZWZlcmVuY2UgZnVuY3Rpb25z IG1ha2luZyBpdApjbGVhcmVyIHdoYXQgaXMgdGhlaXIgaW5wdXQuIEFsc28gcGFzcyB0byB0aGVz ZSB0aGUgYXRvbWljIHN0YXRlIGFuZCB0aGUKQ1JUQyBvYmplY3QgaW5zdGVhZCBvZiB0aGUgQ1JU QyBzdGF0ZSwgc2luY2UgdGhleSBkb24ndCByZXF1aXJlIHRoZQpsYXR0ZXIuCgpNb3ZlIHNldHRp bmcgdGhlIFBMTCBpbiB0aGUgY3J0Y19zdGF0ZSB0byB0aGUgZ2V0X2RwbGwoKSBob29rLCB3aGlj aAppcyB0aGUgbW9yZSBsb2dpY2FsIHBsYWNlIGZvciB0aGlzLCB3aGVyZSB0aGUgcmVsYXRlZCBQ TEwgSFcgc3RhdGUgd2FzIGFsc28Kc2V0LgoKVGhpcyByZWZhY3RvcmluZyBpcyBhbHNvIGEgcHJl cGFyYXRpb24gZm9yIGEgZm9sbG93LXVwIHBhdGNoIHRoYXQgd2lsbApoYXZlIHRvIGZpbmQvcmVm ZXJlbmNlIG11bHRpcGxlIFBMTHMuCgpObyBmdW5jdGlvbmFsIGNoYW5nZXMuCgpDYzogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0 ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRl bi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGlt cmUuZGVha0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9t Z3IuYyB8IDEwNyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcw IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cGxsX21nci5jCmluZGV4IDM0NjM4YTY4MWYzNy4uOWU4ZGMwMjVkOGY3IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKQEAgLTI0NCwxNyArMjQ0LDE4IEBAIHZvaWQgaW50ZWxf ZGlzYWJsZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIH0KIAogc3RhdGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCi1pbnRlbF9maW5k X3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAoraW50ZWxf ZmluZF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJICAg ICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkgICAgICAgY29uc3Qgc3RydWN0 IGludGVsX2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSwKIAkJICAgICAgIGVudW0gaW50ZWxfZHBs bF9pZCByYW5nZV9taW4sCiAJCSAgICAgICBlbnVtIGludGVsX2RwbGxfaWQgcmFuZ2VfbWF4KQog ewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsLCAqdW51c2Vk X3BsbCA9IE5VTEw7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX3N0YXRlICpzaGFyZWRfZHBs bDsKIAllbnVtIGludGVsX2RwbGxfaWQgaTsKIAotCXNoYXJlZF9kcGxsID0gaW50ZWxfYXRvbWlj X2dldF9zaGFyZWRfZHBsbF9zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwlzaGFyZWRf ZHBsbCA9IGludGVsX2F0b21pY19nZXRfc2hhcmVkX2RwbGxfc3RhdGUoJnN0YXRlLT5iYXNlKTsK IAogCWZvciAoaSA9IHJhbmdlX21pbjsgaSA8PSByYW5nZV9tYXg7IGkrKykgewogCQlwbGwgPSAm ZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXTsKQEAgLTI2Niw5ICsyNjcsOSBAQCBpbnRlbF9maW5k X3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJY29u dGludWU7CiAJCX0KIAotCQlpZiAobWVtY21wKCZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAor CQlpZiAobWVtY21wKHBsbF9zdGF0ZSwKIAkJCSAgICZzaGFyZWRfZHBsbFtpXS5od19zdGF0ZSwK LQkJCSAgIHNpemVvZihjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKSkgPT0gMCkgeworCQkJICAg c2l6ZW9mKCpwbGxfc3RhdGUpKSA9PSAwKSB7CiAJCQlEUk1fREVCVUdfS01TKCJbQ1JUQzolZDol c10gc2hhcmluZyBleGlzdGluZyAlcyAoY3J0YyBtYXNrIDB4JTA4eCwgYWN0aXZlICV4KVxuIiwK IAkJCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIGNydGMtPmJhc2UubmFtZSwKIAkJCQkgICAg ICBwbGwtPmluZm8tPm5hbWUsCkBAIC0yOTAsMjAgKzI5MSwxOSBAQCBpbnRlbF9maW5kX3NoYXJl ZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogfQogCiBzdGF0aWMg dm9pZAotaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBs bCAqcGxsLAotCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQoraW50 ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl LAorCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJICAgIGNvbnN0IHN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsLAorCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9k cGxsX2h3X3N0YXRlICpwbGxfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX3N0 YXRlICpzaGFyZWRfZHBsbDsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAljb25zdCBlbnVtIGludGVsX2RwbGxfaWQgaWQg PSBwbGwtPmluZm8tPmlkOwogCi0Jc2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJl ZF9kcGxsX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCXNoYXJlZF9kcGxsID0gaW50 ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0ZSgmc3RhdGUtPmJhc2UpOwogCiAJaWYgKHNo YXJlZF9kcGxsW2lkXS5jcnRjX21hc2sgPT0gMCkKLQkJc2hhcmVkX2RwbGxbaWRdLmh3X3N0YXRl ID0KLQkJCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGU7CisJCXNoYXJlZF9kcGxsW2lkXS5od19z dGF0ZSA9ICpwbGxfc3RhdGU7CiAKLQljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IHBsbDsKIAlE Uk1fREVCVUdfRFJJVkVSKCJ1c2luZyAlcyBmb3IgcGlwZSAlY1xuIiwgcGxsLT5pbmZvLT5uYW1l LAogCQkJIHBpcGVfbmFtZShjcnRjLT5waXBlKSk7CiAKQEAgLTQ2Myw3ICs0NjMsOCBAQCBzdGF0 aWMgYm9vbCBpYnhfZ2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJ CQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIGNydGMtPmJhc2UubmFtZSwKIAkJCSAgICAgIHBs bC0+aW5mby0+bmFtZSk7CiAJfSBlbHNlIHsKLQkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBs bChjcnRjX3N0YXRlLAorCQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRj LAorCQkJCQkgICAgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAogCQkJCQkgICAgIERQTExf SURfUENIX1BMTF9BLAogCQkJCQkgICAgIERQTExfSURfUENIX1BMTF9CKTsKIAl9CkBAIC00NzIs NyArNDczLDEwIEBAIHN0YXRpYyBib29sIGlieF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSwKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogcmVmZXJlbmNlIHRoZSBwbGwg Ki8KLQlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwocGxsLCBjcnRjX3N0YXRlKTsKKwlpbnRl bF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJICAgIHBsbCwgJmNydGNf c3RhdGUtPmRwbGxfaHdfc3RhdGUpOworCisJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7 CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTc5MSw4ICs3OTUsMTIgQEAgaHN3X2RkaV9jYWxjdWxh dGVfd3JwbGwoaW50IGNsb2NrIC8qIGluIEh6ICovLAogCSpyMl9vdXQgPSBiZXN0LnIyOwogfQog Ci1zdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpoc3dfZGRpX2hkbWlfZ2V0X2RwbGwo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCitzdGF0aWMgc3RydWN0IGludGVs X3NoYXJlZF9kcGxsICoKK2hzd19kZGlfaGRtaV9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSwKKwkJICAgICAgc3RydWN0IGludGVsX2NydGMgKmNydGMpCiB7CisJc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25l d19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBs bDsKIAl1MzIgdmFsOwogCXVuc2lnbmVkIGludCBwLCBuMiwgcjI7CkBAIC04MDUsNyArODEzLDgg QEAgc3RhdGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqaHN3X2RkaV9oZG1pX2dldF9kcGxs KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICoKIAogCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUu d3JwbGwgPSB2YWw7CiAKLQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGNfc3RhdGUs CisJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKKwkJCQkgICAgICZj cnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAogCQkJCSAgICAgRFBMTF9JRF9XUlBMTDEsIERQTExf SURfV1JQTEwyKTsKIAogCWlmICghcGxsKQpAQCAtODU3LDcgKzg2Niw3IEBAIHN0YXRpYyBib29s IGhzd19nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkgICAgICAg c2l6ZW9mKGNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpKTsKIAogCWlmIChpbnRlbF9jcnRjX2hh c190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1JKSkgewotCQlwbGwgPSBoc3dfZGRp X2hkbWlfZ2V0X2RwbGwoY3J0Y19zdGF0ZSk7CisJCXBsbCA9IGhzd19kZGlfaGRtaV9nZXRfZHBs bChzdGF0ZSwgY3J0Yyk7CiAJfSBlbHNlIGlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNy dGNfc3RhdGUpKSB7CiAJCXBsbCA9IGhzd19kZGlfZHBfZ2V0X2RwbGwoY3J0Y19zdGF0ZSk7CiAJ fSBlbHNlIGlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9B TkFMT0cpKSB7CkBAIC04NjcsNyArODc2LDggQEAgc3RhdGljIGJvb2wgaHN3X2dldF9kcGxsKHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQljcnRjX3N0YXRlLT5kcGxsX2h3X3N0 YXRlLnNwbGwgPQogCQkJU1BMTF9QTExfRU5BQkxFIHwgU1BMTF9QTExfRlJFUV8xMzUwTUh6IHwg U1BMTF9QTExfU1NDOwogCi0JCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoY3J0Y19zdGF0 ZSwKKwkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKKwkJCQkJICAg ICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwKIAkJCQkJICAgICBEUExMX0lEX1NQTEwsIERQ TExfSURfU1BMTCk7CiAJfSBlbHNlIHsKIAkJcmV0dXJuIGZhbHNlOwpAQCAtODc2LDcgKzg4Niwx MCBAQCBzdGF0aWMgYm9vbCBoc3dfZ2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsCiAJaWYgKCFwbGwpCiAJCXJldHVybiBmYWxzZTsKIAotCWludGVsX3JlZmVyZW5jZV9z aGFyZWRfZHBsbChwbGwsIGNydGNfc3RhdGUpOworCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBs bChzdGF0ZSwgY3J0YywKKwkJCQkgICAgcGxsLCAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7 CisKKwljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IHBsbDsKIAogCXJldHVybiB0cnVlOwogfQpA QCAtMTQzNywxNyArMTQ1MCwyMiBAQCBzdGF0aWMgYm9vbCBza2xfZ2V0X2RwbGwoc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJfQogCiAJaWYgKGludGVsX2NydGNfaGFzX3R5cGUo Y3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0VEUCkpCi0JCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVk X2RwbGwoY3J0Y19zdGF0ZSwKKwkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdGF0ZSwg Y3J0YywKKwkJCQkJICAgICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwKIAkJCQkJICAgICBE UExMX0lEX1NLTF9EUExMMCwKIAkJCQkJICAgICBEUExMX0lEX1NLTF9EUExMMCk7CiAJZWxzZQot CQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGNfc3RhdGUsCisJCXBsbCA9IGludGVs X2ZpbmRfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJCSAgICAgJmNydGNfc3RhdGUtPmRw bGxfaHdfc3RhdGUsCiAJCQkJCSAgICAgRFBMTF9JRF9TS0xfRFBMTDEsCiAJCQkJCSAgICAgRFBM TF9JRF9TS0xfRFBMTDMpOwogCWlmICghcGxsKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlpbnRlbF9y ZWZlcmVuY2Vfc2hhcmVkX2RwbGwocGxsLCBjcnRjX3N0YXRlKTsKKwlpbnRlbF9yZWZlcmVuY2Vf c2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJICAgIHBsbCwgJmNydGNfc3RhdGUtPmRwbGxf aHdfc3RhdGUpOworCisJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7CiAKIAlyZXR1cm4g dHJ1ZTsKIH0KQEAgLTE4ODAsNyArMTg5OCwxMCBAQCBzdGF0aWMgYm9vbCBieHRfZ2V0X2RwbGwo c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJRFJNX0RFQlVHX0tNUygiW0NSVEM6 JWQ6JXNdIHVzaW5nIHByZS1hbGxvY2F0ZWQgJXNcbiIsCiAJCSAgICAgIGNydGMtPmJhc2UuYmFz ZS5pZCwgY3J0Yy0+YmFzZS5uYW1lLCBwbGwtPmluZm8tPm5hbWUpOwogCi0JaW50ZWxfcmVmZXJl bmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7CisJaW50ZWxfcmVmZXJlbmNlX3NoYXJl ZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICBwbGwsICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0 YXRlKTsKKworCWNydGNfc3RhdGUtPnNoYXJlZF9kcGxsID0gcGxsOwogCiAJcmV0dXJuIHRydWU7 CiB9CkBAIC0yMzk1LDcgKzI0MTYsOCBAQCBzdGF0aWMgYm9vbCBjbmxfZ2V0X2RwbGwoc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCXJldHVybiBmYWxzZTsKIAl9CiAKLQlwbGwg PSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGNfc3RhdGUsCisJcGxsID0gaW50ZWxfZmluZF9z aGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKKwkJCQkgICAgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0 YXRlLAogCQkJCSAgICAgRFBMTF9JRF9TS0xfRFBMTDAsCiAJCQkJICAgICBEUExMX0lEX1NLTF9E UExMMik7CiAJaWYgKCFwbGwpIHsKQEAgLTI0MDMsNyArMjQyNSwxMCBAQCBzdGF0aWMgYm9vbCBj bmxfZ2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCXJldHVybiBm YWxzZTsKIAl9CiAKLQlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwocGxsLCBjcnRjX3N0YXRl KTsKKwlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJICAgIHBs bCwgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpOworCisJY3J0Y19zdGF0ZS0+c2hhcmVkX2Rw bGwgPSBwbGw7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTI1NDUsNyArMjU3MCw4IEBAIHN0YXRp YyBib29sIGljbF9jYWxjX3RidF9wbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiB9CiAKIHN0YXRpYyBib29sIGljbF9jYWxjX2RwbGxfc3RhdGUoc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCi0JCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIp CisJCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJc3RydWN0IGludGVsX2Rw bGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKIAl1MzIgY2ZnY3Iw LCBjZmdjcjE7CkBAIC0yNTcyLDExICsyNTk4LDEwIEBAIHN0YXRpYyBib29sIGljbF9jYWxjX2Rw bGxfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSBEUExMX0NG R0NSMV9QRElWKHBsbF9wYXJhbXMucGRpdikgfAogCQkgRFBMTF9DRkdDUjFfQ0VOVFJBTF9GUkVR Xzg0MDA7CiAKLQltZW1zZXQoJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsIDAsCi0JICAgICAg IHNpemVvZihjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKSk7CisJbWVtc2V0KHBsbF9zdGF0ZSwg MCwgc2l6ZW9mKCpwbGxfc3RhdGUpKTsKIAotCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUuY2Zn Y3IwID0gY2ZnY3IwOwotCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUuY2ZnY3IxID0gY2ZnY3Ix OworCXBsbF9zdGF0ZS0+Y2ZnY3IwID0gY2ZnY3IwOworCXBsbF9zdGF0ZS0+Y2ZnY3IxID0gY2Zn Y3IxOwogCiAJcmV0dXJuIHRydWU7CiB9CkBAIC0yNjY2LDEwICsyNjkxLDEwIEBAIHN0YXRpYyBi b29sIGljbF9tZ19wbGxfZmluZF9kaXZpc29ycyhpbnQgY2xvY2tfa2h6LCBib29sIGlzX2RwLCBi b29sIHVzZV9zc2MsCiAgKiBUaGUgc3BlY2lmaWNhdGlvbiBmb3IgdGhpcyBmdW5jdGlvbiB1c2Vz IHJlYWwgbnVtYmVycywgc28gdGhlIG1hdGggaGFkIHRvIGJlCiAgKiBhZGFwdGVkIHRvIGludGVn ZXItb25seSBjYWxjdWxhdGlvbiwgdGhhdCdzIHdoeSBpdCBsb29rcyBzbyBkaWZmZXJlbnQuCiAg Ki8KLXN0YXRpYyBib29sIGljbF9jYWxjX21nX3BsbF9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKK3N0YXRpYyBib29sIGljbF9jYWxjX21nX3BsbF9zdGF0ZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQkgIHN0cnVjdCBpbnRlbF9kcGxs X2h3X3N0YXRlICpwbGxfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Ci0Jc3RydWN0IGludGVs X2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSA9ICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlOwog CWludCByZWZjbGtfa2h6ID0gZGV2X3ByaXYtPmNkY2xrLmh3LnJlZjsKIAlpbnQgY2xvY2sgPSBj cnRjX3N0YXRlLT5wb3J0X2Nsb2NrOwogCXUzMiBkY29fa2h6LCBtMWRpdiwgbTJkaXZfaW50LCBt MmRpdl9yZW0sIG0yZGl2X2ZyYWM7CkBAIC0yODQ3LDcgKzI4NzIsOCBAQCBzdGF0aWMgYm9vbCBp Y2xfZ2V0X2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWlmIChpbnRl bF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkgewogCQltaW4gPSBEUExMX0lEX0lD TF9EUExMMDsKIAkJbWF4ID0gRFBMTF9JRF9JQ0xfRFBMTDE7Ci0JCXJldCA9IGljbF9jYWxjX2Rw bGxfc3RhdGUoY3J0Y19zdGF0ZSwgZW5jb2Rlcik7CisJCXJldCA9IGljbF9jYWxjX2RwbGxfc3Rh dGUoY3J0Y19zdGF0ZSwgZW5jb2RlciwKKwkJCQkJICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0 ZSk7CiAJfSBlbHNlIGlmIChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBwb3J0KSkgewogCQlp ZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKSB7CiAJCQlzdHJ1Y3QgaW50 ZWxfZHBfbXN0X2VuY29kZXIgKm1zdF9lbmNvZGVyOwpAQCAtMjg2MSwxNCArMjg4NywxNiBAQCBz dGF0aWMgYm9vbCBpY2xfZ2V0X2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl LAogCQlpZiAoaW50ZWxfZGlnX3BvcnQtPnRjX21vZGUgPT0gVENfUE9SVF9UQlRfQUxUKSB7CiAJ CQltaW4gPSBEUExMX0lEX0lDTF9UQlRQTEw7CiAJCQltYXggPSBtaW47Ci0JCQlyZXQgPSBpY2xf Y2FsY19kcGxsX3N0YXRlKGNydGNfc3RhdGUsIGVuY29kZXIpOworCQkJcmV0ID0gaWNsX2NhbGNf ZHBsbF9zdGF0ZShjcnRjX3N0YXRlLCBlbmNvZGVyLAorCQkJCQkJICAmY3J0Y19zdGF0ZS0+ZHBs bF9od19zdGF0ZSk7CiAJCX0gZWxzZSB7CiAJCQllbnVtIHRjX3BvcnQgdGNfcG9ydDsKIAogCQkJ dGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIHBvcnQpOwogCQkJbWluID0gaWNs X3RjX3BvcnRfdG9fcGxsX2lkKHRjX3BvcnQpOwogCQkJbWF4ID0gbWluOwotCQkJcmV0ID0gaWNs X2NhbGNfbWdfcGxsX3N0YXRlKGNydGNfc3RhdGUpOworCQkJcmV0ID0gaWNsX2NhbGNfbWdfcGxs X3N0YXRlKGNydGNfc3RhdGUsCisJCQkJCQkgICAgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUp OwogCQl9CiAJfSBlbHNlIHsKIAkJTUlTU0lOR19DQVNFKHBvcnQpOwpAQCAtMjg4MSwxMyArMjkw OSwxOCBAQCBzdGF0aWMgYm9vbCBpY2xfZ2V0X2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlLAogCX0KIAogCi0JcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjX3N0 YXRlLCBtaW4sIG1heCk7CisJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0 YywKKwkJCQkgICAgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAorCQkJCSAgICAgbWluLCBt YXgpOwogCWlmICghcGxsKSB7CiAJCURSTV9ERUJVR19LTVMoIk5vIFBMTCBzZWxlY3RlZFxuIik7 CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKLQlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwocGxs LCBjcnRjX3N0YXRlKTsKKwlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMs CisJCQkJICAgIHBsbCwgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpOworCisJY3J0Y19zdGF0 ZS0+c2hhcmVkX2RwbGwgPSBwbGw7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KLS0gCjIuMTcuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4