From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 17/23] drm/i915: Sanitize the shared DPLL find/reference interface Date: Thu, 20 Jun 2019 17:05:54 +0300 Message-ID: <20190620140600.11357-18-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 D65AF6E598 for ; Thu, 20 Jun 2019 14:06:35 +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 UGFzcyB0aGUgUExMIEhXIHN0YXRlIHRvIHRoZSBQTEwgZmluZC9yZWZlcmVuY2UgZnVuY3Rpb25z IG1ha2luZyBpdApjbGVhcmVyIHdoYXQgaXMgdGhlaXIgaW5wdXQuIEFsc28gcGFzcyB0byB0aGVz ZSB0aGUgYXRvbWljIHN0YXRlIGFuZCB0aGUKQ1JUQyBvYmplY3QgaW5zdGVhZCBvZiB0aGUgQ1JU QyBzdGF0ZSwgc2luY2UgdGhleSBkb24ndCByZXF1aXJlIHRoZQpsYXR0ZXIuCgpNb3ZlIHNldHRp bmcgdGhlIFBMTCBpbiB0aGUgY3J0Y19zdGF0ZSB0byB0aGUgZ2V0X2RwbGwoKSBob29rLCB3aGlj aAppcyB0aGUgbW9yZSBsb2dpY2FsIHBsYWNlIGZvciB0aGlzLCB3aGVyZSB0aGUgcmVsYXRlZCBQ TEwgSFcgc3RhdGUgd2FzIGFsc28Kc2V0LgoKVGhpcyByZWZhY3RvcmluZyBpcyBhbHNvIGEgcHJl cGFyYXRpb24gZm9yIGEgZm9sbG93LXVwIHBhdGNoIHRoYXQgd2lsbApoYXZlIHRvIGZpbmQvcmVm ZXJlbmNlIG11bHRpcGxlIFBMTHMuCgpObyBmdW5jdGlvbmFsIGNoYW5nZXMuCgpDYzogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0 ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRl bi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGlt cmUuZGVha0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kcGxsX21nci5jIHwgMTA3ICsrKysrKysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcw IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwppbmRleCAzZmJjOTc1ODUxZmEuLjE0YmJhYjQ1ODM2 ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21n ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwpA QCAtMjQ0LDE3ICsyNDQsMTggQEAgdm9pZCBpbnRlbF9kaXNhYmxlX3NoYXJlZF9kcGxsKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogfQogCiBzdGF0aWMgc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsICoKLWludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCitpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGMgKmNydGMsCisJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqcGxs X3N0YXRlLAogCQkgICAgICAgZW51bSBpbnRlbF9kcGxsX2lkIHJhbmdlX21pbiwKIAkJICAgICAg IGVudW0gaW50ZWxfZHBsbF9pZCByYW5nZV9tYXgpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsICpwbGwsICp1bnVzZWRfcGxsID0gTlVMTDsKIAlzdHJ1Y3QgaW50 ZWxfc2hhcmVkX2RwbGxfc3RhdGUgKnNoYXJlZF9kcGxsOwogCWVudW0gaW50ZWxfZHBsbF9pZCBp OwogCi0Jc2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRlKGNy dGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCXNoYXJlZF9kcGxsID0gaW50ZWxfYXRvbWljX2dldF9z aGFyZWRfZHBsbF9zdGF0ZSgmc3RhdGUtPmJhc2UpOwogCiAJZm9yIChpID0gcmFuZ2VfbWluOyBp IDw9IHJhbmdlX21heDsgaSsrKSB7CiAJCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ld OwpAQCAtMjY2LDkgKzI2Nyw5IEBAIGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQljb250aW51ZTsKIAkJfQogCi0JCWlmIChtZW1j bXAoJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsCisJCWlmIChtZW1jbXAocGxsX3N0YXRlLAog CQkJICAgJnNoYXJlZF9kcGxsW2ldLmh3X3N0YXRlLAotCQkJICAgc2l6ZW9mKGNydGNfc3RhdGUt PmRwbGxfaHdfc3RhdGUpKSA9PSAwKSB7CisJCQkgICBzaXplb2YoKnBsbF9zdGF0ZSkpID09IDAp IHsKIAkJCURSTV9ERUJVR19LTVMoIltDUlRDOiVkOiVzXSBzaGFyaW5nIGV4aXN0aW5nICVzIChj cnRjIG1hc2sgMHglMDh4LCBhY3RpdmUgJXgpXG4iLAogCQkJCSAgICAgIGNydGMtPmJhc2UuYmFz ZS5pZCwgY3J0Yy0+YmFzZS5uYW1lLAogCQkJCSAgICAgIHBsbC0+aW5mby0+bmFtZSwKQEAgLTI5 MCwyMCArMjkxLDE5IEBAIGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCiB9CiAKIHN0YXRpYyB2b2lkCi1pbnRlbF9yZWZlcmVuY2Vfc2hh cmVkX2RwbGwoc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwsCi0JCQkgICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCitpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwo c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgICAgY29uc3Qgc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCisJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpw bGwsCisJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSkK IHsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfc3RhdGUgKnNoYXJlZF9kcGxsOwotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OwogCWNvbnN0IGVudW0gaW50ZWxfZHBsbF9pZCBpZCA9IHBsbC0+aW5mby0+aWQ7CiAKLQlzaGFy ZWRfZHBsbCA9IGludGVsX2F0b21pY19nZXRfc2hhcmVkX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZS0+ YmFzZS5zdGF0ZSk7CisJc2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxs X3N0YXRlKCZzdGF0ZS0+YmFzZSk7CiAKIAlpZiAoc2hhcmVkX2RwbGxbaWRdLmNydGNfbWFzayA9 PSAwKQotCQlzaGFyZWRfZHBsbFtpZF0uaHdfc3RhdGUgPQotCQkJY3J0Y19zdGF0ZS0+ZHBsbF9o d19zdGF0ZTsKKwkJc2hhcmVkX2RwbGxbaWRdLmh3X3N0YXRlID0gKnBsbF9zdGF0ZTsKIAotCWNy dGNfc3RhdGUtPnNoYXJlZF9kcGxsID0gcGxsOwogCURSTV9ERUJVR19EUklWRVIoInVzaW5nICVz IGZvciBwaXBlICVjXG4iLCBwbGwtPmluZm8tPm5hbWUsCiAJCQkgcGlwZV9uYW1lKGNydGMtPnBp cGUpKTsKIApAQCAtNDYzLDcgKzQ2Myw4IEBAIHN0YXRpYyBib29sIGlieF9nZXRfZHBsbChzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCSAgICAgIGNydGMtPmJhc2UuYmFzZS5p ZCwgY3J0Yy0+YmFzZS5uYW1lLAogCQkJICAgICAgcGxsLT5pbmZvLT5uYW1lKTsKIAl9IGVsc2Ug ewotCQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGNfc3RhdGUsCisJCXBsbCA9IGlu dGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJCSAgICAgJmNydGNfc3RhdGUt PmRwbGxfaHdfc3RhdGUsCiAJCQkJCSAgICAgRFBMTF9JRF9QQ0hfUExMX0EsCiAJCQkJCSAgICAg RFBMTF9JRF9QQ0hfUExMX0IpOwogCX0KQEAgLTQ3Miw3ICs0NzMsMTAgQEAgc3RhdGljIGJvb2wg aWJ4X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQlyZXR1cm4g ZmFsc2U7CiAKIAkvKiByZWZlcmVuY2UgdGhlIHBsbCAqLwotCWludGVsX3JlZmVyZW5jZV9zaGFy ZWRfZHBsbChwbGwsIGNydGNfc3RhdGUpOworCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChz dGF0ZSwgY3J0YywKKwkJCQkgICAgcGxsLCAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7CisK KwljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IHBsbDsKIAogCXJldHVybiB0cnVlOwogfQpAQCAt NzkxLDggKzc5NSwxMiBAQCBoc3dfZGRpX2NhbGN1bGF0ZV93cnBsbChpbnQgY2xvY2sgLyogaW4g SHogKi8sCiAJKnIyX291dCA9IGJlc3QucjI7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGwgKmhzd19kZGlfaGRtaV9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgoraHN3X2RkaV9o ZG1pX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkgICAgICBz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIHsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSA9CisJCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMp OwogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwogCXUzMiB2YWw7CiAJdW5zaWduZWQg aW50IHAsIG4yLCByMjsKQEAgLTgwNSw3ICs4MTMsOCBAQCBzdGF0aWMgc3RydWN0IGludGVsX3No YXJlZF9kcGxsICpoc3dfZGRpX2hkbWlfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KgogCiAJY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS53cnBsbCA9IHZhbDsKIAotCXBsbCA9IGlu dGVsX2ZpbmRfc2hhcmVkX2RwbGwoY3J0Y19zdGF0ZSwKKwlwbGwgPSBpbnRlbF9maW5kX3NoYXJl ZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICAgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUs CiAJCQkJICAgICBEUExMX0lEX1dSUExMMSwgRFBMTF9JRF9XUlBMTDIpOwogCiAJaWYgKCFwbGwp CkBAIC04NTcsNyArODY2LDcgQEAgc3RhdGljIGJvb2wgaHN3X2dldF9kcGxsKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCSAgICAgICBzaXplb2YoY3J0Y19zdGF0ZS0+ZHBsbF9o d19zdGF0ZSkpOwogCiAJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxf T1VUUFVUX0hETUkpKSB7Ci0JCXBsbCA9IGhzd19kZGlfaGRtaV9nZXRfZHBsbChjcnRjX3N0YXRl KTsKKwkJcGxsID0gaHN3X2RkaV9oZG1pX2dldF9kcGxsKHN0YXRlLCBjcnRjKTsKIAl9IGVsc2Ug aWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIoY3J0Y19zdGF0ZSkpIHsKIAkJcGxsID0gaHN3 X2RkaV9kcF9nZXRfZHBsbChjcnRjX3N0YXRlKTsKIAl9IGVsc2UgaWYgKGludGVsX2NydGNfaGFz X3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0FOQUxPRykpIHsKQEAgLTg2Nyw3ICs4NzYs OCBAQCBzdGF0aWMgYm9vbCBoc3dfZ2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsCiAJCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUuc3BsbCA9CiAJCQlTUExMX1BMTF9F TkFCTEUgfCBTUExMX0ZSRVFfMTM1ME1IeiB8IFNQTExfUkVGX01VWEVEX1NTQzsKIAotCQlwbGwg PSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGNfc3RhdGUsCisJCXBsbCA9IGludGVsX2ZpbmRf c2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJCSAgICAgJmNydGNfc3RhdGUtPmRwbGxfaHdf c3RhdGUsCiAJCQkJCSAgICAgRFBMTF9JRF9TUExMLCBEUExMX0lEX1NQTEwpOwogCX0gZWxzZSB7 CiAJCXJldHVybiBmYWxzZTsKQEAgLTg3Niw3ICs4ODYsMTAgQEAgc3RhdGljIGJvb2wgaHN3X2dl dF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWlmICghcGxsKQogCQly ZXR1cm4gZmFsc2U7CiAKLQlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwocGxsLCBjcnRjX3N0 YXRlKTsKKwlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJICAg IHBsbCwgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpOworCisJY3J0Y19zdGF0ZS0+c2hhcmVk X2RwbGwgPSBwbGw7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTE0MzcsMTcgKzE0NTAsMjIgQEAg c3RhdGljIGJvb2wgc2tsX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl LAogCX0KIAogCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBV VF9FRFApKQotCQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGNfc3RhdGUsCisJCXBs bCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJCSAgICAgJmNydGNf c3RhdGUtPmRwbGxfaHdfc3RhdGUsCiAJCQkJCSAgICAgRFBMTF9JRF9TS0xfRFBMTDAsCiAJCQkJ CSAgICAgRFBMTF9JRF9TS0xfRFBMTDApOwogCWVsc2UKLQkJcGxsID0gaW50ZWxfZmluZF9zaGFy ZWRfZHBsbChjcnRjX3N0YXRlLAorCQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRl LCBjcnRjLAorCQkJCQkgICAgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAogCQkJCQkgICAg IERQTExfSURfU0tMX0RQTEwxLAogCQkJCQkgICAgIERQTExfSURfU0tMX0RQTEwzKTsKIAlpZiAo IXBsbCkKIAkJcmV0dXJuIGZhbHNlOwogCi0JaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBs bCwgY3J0Y19zdGF0ZSk7CisJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRj LAorCQkJCSAgICBwbGwsICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKTsKKworCWNydGNfc3Rh dGUtPnNoYXJlZF9kcGxsID0gcGxsOwogCiAJcmV0dXJuIHRydWU7CiB9CkBAIC0xODgwLDcgKzE4 OTgsMTAgQEAgc3RhdGljIGJvb2wgYnh0X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlLAogCURSTV9ERUJVR19LTVMoIltDUlRDOiVkOiVzXSB1c2luZyBwcmUtYWxsb2Nh dGVkICVzXG4iLAogCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIGNydGMtPmJhc2UubmFtZSwg cGxsLT5pbmZvLT5uYW1lKTsKIAotCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGwsIGNy dGNfc3RhdGUpOworCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKKwkJ CQkgICAgcGxsLCAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7CisKKwljcnRjX3N0YXRlLT5z aGFyZWRfZHBsbCA9IHBsbDsKIAogCXJldHVybiB0cnVlOwogfQpAQCAtMjM5NSw3ICsyNDE2LDgg QEAgc3RhdGljIGJvb2wgY25sX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlLAogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBs bChjcnRjX3N0YXRlLAorCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMs CisJCQkJICAgICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwKIAkJCQkgICAgIERQTExfSURf U0tMX0RQTEwwLAogCQkJCSAgICAgRFBMTF9JRF9TS0xfRFBMTDIpOwogCWlmICghcGxsKSB7CkBA IC0yNDAzLDcgKzI0MjUsMTAgQEAgc3RhdGljIGJvb2wgY25sX2dldF9kcGxsKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JaW50ZWxfcmVm ZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7CisJaW50ZWxfcmVmZXJlbmNlX3No YXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICBwbGwsICZjcnRjX3N0YXRlLT5kcGxsX2h3 X3N0YXRlKTsKKworCWNydGNfc3RhdGUtPnNoYXJlZF9kcGxsID0gcGxsOwogCiAJcmV0dXJuIHRy dWU7CiB9CkBAIC0yNTQ1LDcgKzI1NzAsOCBAQCBzdGF0aWMgYm9vbCBpY2xfY2FsY190YnRfcGxs KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogfQogCiBzdGF0aWMgYm9vbCBp Y2xfY2FsY19kcGxsX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAot CQkJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQorCQkJCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAorCQkJCXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpwbGxfc3RhdGUp CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0 YXRlLT5iYXNlLmNydGMtPmRldik7CiAJdTMyIGNmZ2NyMCwgY2ZnY3IxOwpAQCAtMjU3MiwxMSAr MjU5OCwxMCBAQCBzdGF0aWMgYm9vbCBpY2xfY2FsY19kcGxsX3N0YXRlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkgRFBMTF9DRkdDUjFfUERJVihwbGxfcGFyYW1zLnBk aXYpIHwKIAkJIERQTExfQ0ZHQ1IxX0NFTlRSQUxfRlJFUV84NDAwOwogCi0JbWVtc2V0KCZjcnRj X3N0YXRlLT5kcGxsX2h3X3N0YXRlLCAwLAotCSAgICAgICBzaXplb2YoY3J0Y19zdGF0ZS0+ZHBs bF9od19zdGF0ZSkpOworCW1lbXNldChwbGxfc3RhdGUsIDAsIHNpemVvZigqcGxsX3N0YXRlKSk7 CiAKLQljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLmNmZ2NyMCA9IGNmZ2NyMDsKLQljcnRjX3N0 YXRlLT5kcGxsX2h3X3N0YXRlLmNmZ2NyMSA9IGNmZ2NyMTsKKwlwbGxfc3RhdGUtPmNmZ2NyMCA9 IGNmZ2NyMDsKKwlwbGxfc3RhdGUtPmNmZ2NyMSA9IGNmZ2NyMTsKIAogCXJldHVybiB0cnVlOwog fQpAQCAtMjY2NiwxMCArMjY5MSwxMCBAQCBzdGF0aWMgYm9vbCBpY2xfbWdfcGxsX2ZpbmRfZGl2 aXNvcnMoaW50IGNsb2NrX2toeiwgYm9vbCBpc19kcCwgYm9vbCB1c2Vfc3NjLAogICogVGhlIHNw ZWNpZmljYXRpb24gZm9yIHRoaXMgZnVuY3Rpb24gdXNlcyByZWFsIG51bWJlcnMsIHNvIHRoZSBt YXRoIGhhZCB0byBiZQogICogYWRhcHRlZCB0byBpbnRlZ2VyLW9ubHkgY2FsY3VsYXRpb24sIHRo YXQncyB3aHkgaXQgbG9va3Mgc28gZGlmZmVyZW50LgogICovCi1zdGF0aWMgYm9vbCBpY2xfY2Fs Y19tZ19wbGxfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCitzdGF0 aWMgYm9vbCBpY2xfY2FsY19tZ19wbGxfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCisJCQkJICBzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqcGxsX3N0YXRlKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpwbGxfc3Rh dGUgPSAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZTsKIAlpbnQgcmVmY2xrX2toeiA9IGRldl9w cml2LT5jZGNsay5ody5yZWY7CiAJaW50IGNsb2NrID0gY3J0Y19zdGF0ZS0+cG9ydF9jbG9jazsK IAl1MzIgZGNvX2toeiwgbTFkaXYsIG0yZGl2X2ludCwgbTJkaXZfcmVtLCBtMmRpdl9mcmFjOwpA QCAtMjg0Nyw3ICsyODcyLDggQEAgc3RhdGljIGJvb2wgaWNsX2dldF9kcGxscyhzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlpZiAoaW50ZWxfcG9ydF9pc19jb21ib3BoeShkZXZf cHJpdiwgcG9ydCkpIHsKIAkJbWluID0gRFBMTF9JRF9JQ0xfRFBMTDA7CiAJCW1heCA9IERQTExf SURfSUNMX0RQTEwxOwotCQlyZXQgPSBpY2xfY2FsY19kcGxsX3N0YXRlKGNydGNfc3RhdGUsIGVu Y29kZXIpOworCQlyZXQgPSBpY2xfY2FsY19kcGxsX3N0YXRlKGNydGNfc3RhdGUsIGVuY29kZXIs CisJCQkJCSAgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpOwogCX0gZWxzZSBpZiAoaW50ZWxf cG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkpIHsKIAkJaWYgKGVuY29kZXItPnR5cGUgPT0gSU5U RUxfT1VUUFVUX0RQX01TVCkgewogCQkJc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICptc3Rf ZW5jb2RlcjsKQEAgLTI4NjEsMTQgKzI4ODcsMTYgQEAgc3RhdGljIGJvb2wgaWNsX2dldF9kcGxs cyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJaWYgKGludGVsX2RpZ19wb3J0 LT50Y19tb2RlID09IFRDX1BPUlRfVEJUX0FMVCkgewogCQkJbWluID0gRFBMTF9JRF9JQ0xfVEJU UExMOwogCQkJbWF4ID0gbWluOwotCQkJcmV0ID0gaWNsX2NhbGNfZHBsbF9zdGF0ZShjcnRjX3N0 YXRlLCBlbmNvZGVyKTsKKwkJCXJldCA9IGljbF9jYWxjX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZSwg ZW5jb2RlciwKKwkJCQkJCSAgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpOwogCQl9IGVsc2Ug ewogCQkJZW51bSB0Y19wb3J0IHRjX3BvcnQ7CiAKIAkJCXRjX3BvcnQgPSBpbnRlbF9wb3J0X3Rv X3RjKGRldl9wcml2LCBwb3J0KTsKIAkJCW1pbiA9IGljbF90Y19wb3J0X3RvX3BsbF9pZCh0Y19w b3J0KTsKIAkJCW1heCA9IG1pbjsKLQkJCXJldCA9IGljbF9jYWxjX21nX3BsbF9zdGF0ZShjcnRj X3N0YXRlKTsKKwkJCXJldCA9IGljbF9jYWxjX21nX3BsbF9zdGF0ZShjcnRjX3N0YXRlLAorCQkJ CQkJICAgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKTsKIAkJfQogCX0gZWxzZSB7CiAJCU1J U1NJTkdfQ0FTRShwb3J0KTsKQEAgLTI4ODEsMTMgKzI5MDksMTggQEAgc3RhdGljIGJvb2wgaWNs X2dldF9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAl9CiAKIAotCXBs bCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoY3J0Y19zdGF0ZSwgbWluLCBtYXgpOworCXBsbCA9 IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCisJCQkJICAgICAmY3J0Y19zdGF0 ZS0+ZHBsbF9od19zdGF0ZSwKKwkJCQkgICAgIG1pbiwgbWF4KTsKIAlpZiAoIXBsbCkgewogCQlE Uk1fREVCVUdfS01TKCJObyBQTEwgc2VsZWN0ZWRcbiIpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQog Ci0JaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7CisJaW50ZWxf cmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCSAgICBwbGwsICZjcnRjX3N0 YXRlLT5kcGxsX2h3X3N0YXRlKTsKKworCWNydGNfc3RhdGUtPnNoYXJlZF9kcGxsID0gcGxsOwog CiAJcmV0dXJuIHRydWU7CiB9Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeA==