From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 17/23] drm/i915: Sanitize the shared DPLL find/reference interface Date: Tue, 25 Jun 2019 16:54:56 +0300 Message-ID: <20190625135456.GF5942@intel.com> References: <20190620140600.11357-1-imre.deak@intel.com> <20190620140600.11357-18-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 E3DBC8893B for ; Tue, 25 Jun 2019 13:55:02 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190620140600.11357-18-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: Imre Deak Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdW4gMjAsIDIwMTkgYXQgMDU6MDU6NTRQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IFBhc3MgdGhlIFBMTCBIVyBzdGF0ZSB0byB0aGUgUExMIGZpbmQvcmVmZXJlbmNlIGZ1bmN0 aW9ucyBtYWtpbmcgaXQKPiBjbGVhcmVyIHdoYXQgaXMgdGhlaXIgaW5wdXQuIEFsc28gcGFzcyB0 byB0aGVzZSB0aGUgYXRvbWljIHN0YXRlIGFuZCB0aGUKPiBDUlRDIG9iamVjdCBpbnN0ZWFkIG9m IHRoZSBDUlRDIHN0YXRlLCBzaW5jZSB0aGV5IGRvbid0IHJlcXVpcmUgdGhlCj4gbGF0dGVyLgo+ IAo+IE1vdmUgc2V0dGluZyB0aGUgUExMIGluIHRoZSBjcnRjX3N0YXRlIHRvIHRoZSBnZXRfZHBs bCgpIGhvb2ssIHdoaWNoCj4gaXMgdGhlIG1vcmUgbG9naWNhbCBwbGFjZSBmb3IgdGhpcywgd2hl cmUgdGhlIHJlbGF0ZWQgUExMIEhXIHN0YXRlIHdhcyBhbHNvCj4gc2V0Lgo+IAo+IFRoaXMgcmVm YWN0b3JpbmcgaXMgYWxzbyBhIHByZXBhcmF0aW9uIGZvciBhIGZvbGxvdy11cCBwYXRjaCB0aGF0 IHdpbGwKPiBoYXZlIHRvIGZpbmQvcmVmZXJlbmNlIG11bHRpcGxlIFBMTHMuCj4gCj4gTm8gZnVu Y3Rpb25hbCBjaGFuZ2VzLgo+IAo+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xs LmNoPgo+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50 ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4K ClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21n ci5jIHwgMTA3ICsrKysrKysrKysrKy0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgNzAgaW5zZXJ0 aW9ucygrKSwgMzcgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwo+IGluZGV4IDNmYmM5NzU4NTFmYS4uMTRiYmFiNDU4MzZk IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9t Z3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3Iu Ywo+IEBAIC0yNDQsMTcgKzI0NCwxOCBAQCB2b2lkIGludGVsX2Rpc2FibGVfc2hhcmVkX2RwbGwo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIH0KPiAgCj4gIHN0 YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgo+IC1pbnRlbF9maW5kX3NoYXJlZF9kcGxs KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICtpbnRlbF9maW5kX3NoYXJl ZF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICsJCSAgICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiArCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVs X2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSwKPiAgCQkgICAgICAgZW51bSBpbnRlbF9kcGxsX2lk IHJhbmdlX21pbiwKPiAgCQkgICAgICAgZW51bSBpbnRlbF9kcGxsX2lkIHJhbmdlX21heCkKPiAg ewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsLCAq dW51c2VkX3BsbCA9IE5VTEw7Cj4gIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfc3RhdGUgKnNo YXJlZF9kcGxsOwo+ICAJZW51bSBpbnRlbF9kcGxsX2lkIGk7Cj4gIAo+IC0Jc2hhcmVkX2RwbGwg PSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3Rh dGUpOwo+ICsJc2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRl KCZzdGF0ZS0+YmFzZSk7Cj4gIAo+ICAJZm9yIChpID0gcmFuZ2VfbWluOyBpIDw9IHJhbmdlX21h eDsgaSsrKSB7Cj4gIAkJcGxsID0gJmRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV07Cj4gQEAgLTI2 Niw5ICsyNjcsOSBAQCBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAo+ICAJCQljb250aW51ZTsKPiAgCQl9Cj4gIAo+IC0JCWlmIChtZW1j bXAoJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsCj4gKwkJaWYgKG1lbWNtcChwbGxfc3RhdGUs Cj4gIAkJCSAgICZzaGFyZWRfZHBsbFtpXS5od19zdGF0ZSwKPiAtCQkJICAgc2l6ZW9mKGNydGNf c3RhdGUtPmRwbGxfaHdfc3RhdGUpKSA9PSAwKSB7Cj4gKwkJCSAgIHNpemVvZigqcGxsX3N0YXRl KSkgPT0gMCkgewo+ICAJCQlEUk1fREVCVUdfS01TKCJbQ1JUQzolZDolc10gc2hhcmluZyBleGlz dGluZyAlcyAoY3J0YyBtYXNrIDB4JTA4eCwgYWN0aXZlICV4KVxuIiwKPiAgCQkJCSAgICAgIGNy dGMtPmJhc2UuYmFzZS5pZCwgY3J0Yy0+YmFzZS5uYW1lLAo+ICAJCQkJICAgICAgcGxsLT5pbmZv LT5uYW1lLAo+IEBAIC0yOTAsMjAgKzI5MSwxOSBAQCBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9p ZAo+IC1pbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX3NoYXJlZF9kcGxs ICpwbGwsCj4gLQkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAr aW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlLAo+ICsJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gKwkJCSAgICBj b25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCwKPiArCQkJICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9kcGxsX2h3X3N0YXRlICpwbGxfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9z aGFyZWRfZHBsbF9zdGF0ZSAqc2hhcmVkX2RwbGw7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiAgCWNvbnN0IGVudW0g aW50ZWxfZHBsbF9pZCBpZCA9IHBsbC0+aW5mby0+aWQ7Cj4gIAo+IC0Jc2hhcmVkX2RwbGwgPSBp bnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUp Owo+ICsJc2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRlKCZz dGF0ZS0+YmFzZSk7Cj4gIAo+ICAJaWYgKHNoYXJlZF9kcGxsW2lkXS5jcnRjX21hc2sgPT0gMCkK PiAtCQlzaGFyZWRfZHBsbFtpZF0uaHdfc3RhdGUgPQo+IC0JCQljcnRjX3N0YXRlLT5kcGxsX2h3 X3N0YXRlOwo+ICsJCXNoYXJlZF9kcGxsW2lkXS5od19zdGF0ZSA9ICpwbGxfc3RhdGU7Cj4gIAo+ IC0JY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7Cj4gIAlEUk1fREVCVUdfRFJJVkVSKCJ1 c2luZyAlcyBmb3IgcGlwZSAlY1xuIiwgcGxsLT5pbmZvLT5uYW1lLAo+ICAJCQkgcGlwZV9uYW1l KGNydGMtPnBpcGUpKTsKPiAgCj4gQEAgLTQ2Myw3ICs0NjMsOCBAQCBzdGF0aWMgYm9vbCBpYnhf Z2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJCSAgICAgIGNy dGMtPmJhc2UuYmFzZS5pZCwgY3J0Yy0+YmFzZS5uYW1lLAo+ICAJCQkgICAgICBwbGwtPmluZm8t Pm5hbWUpOwo+ICAJfSBlbHNlIHsKPiAtCQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNy dGNfc3RhdGUsCj4gKwkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywK PiArCQkJCQkgICAgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAo+ICAJCQkJCSAgICAgRFBM TF9JRF9QQ0hfUExMX0EsCj4gIAkJCQkJICAgICBEUExMX0lEX1BDSF9QTExfQik7Cj4gIAl9Cj4g QEAgLTQ3Miw3ICs0NzMsMTAgQEAgc3RhdGljIGJvb2wgaWJ4X2dldF9kcGxsKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gIAkvKiByZWZl cmVuY2UgdGhlIHBsbCAqLwo+IC0JaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0 Y19zdGF0ZSk7Cj4gKwlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCj4g KwkJCQkgICAgcGxsLCAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7Cj4gKwo+ICsJY3J0Y19z dGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7Cj4gIAo+ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiBAQCAt NzkxLDggKzc5NSwxMiBAQCBoc3dfZGRpX2NhbGN1bGF0ZV93cnBsbChpbnQgY2xvY2sgLyogaW4g SHogKi8sCj4gIAkqcjJfb3V0ID0gYmVzdC5yMjsKPiAgfQo+ICAKPiAtc3RhdGljIHN0cnVjdCBp bnRlbF9zaGFyZWRfZHBsbCAqaHN3X2RkaV9oZG1pX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQo+ICtzdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoK PiAraHN3X2RkaV9oZG1pX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl LAo+ICsJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICB7Cj4gKwlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9Cj4gKwkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0 Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsK PiAgCXUzMiB2YWw7Cj4gIAl1bnNpZ25lZCBpbnQgcCwgbjIsIHIyOwo+IEBAIC04MDUsNyArODEz LDggQEAgc3RhdGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqaHN3X2RkaV9oZG1pX2dldF9k cGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICoKPiAgCj4gIAljcnRjX3N0YXRlLT5kcGxsX2h3 X3N0YXRlLndycGxsID0gdmFsOwo+ICAKPiAtCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwo Y3J0Y19zdGF0ZSwKPiArCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMs Cj4gKwkJCQkgICAgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAo+ICAJCQkJICAgICBEUExM X0lEX1dSUExMMSwgRFBMTF9JRF9XUlBMTDIpOwo+ICAKPiAgCWlmICghcGxsKQo+IEBAIC04NTcs NyArODY2LDcgQEAgc3RhdGljIGJvb2wgaHN3X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlLAo+ICAJICAgICAgIHNpemVvZihjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRl KSk7Cj4gIAo+ICAJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VU UFVUX0hETUkpKSB7Cj4gLQkJcGxsID0gaHN3X2RkaV9oZG1pX2dldF9kcGxsKGNydGNfc3RhdGUp Owo+ICsJCXBsbCA9IGhzd19kZGlfaGRtaV9nZXRfZHBsbChzdGF0ZSwgY3J0Yyk7Cj4gIAl9IGVs c2UgaWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIoY3J0Y19zdGF0ZSkpIHsKPiAgCQlwbGwg PSBoc3dfZGRpX2RwX2dldF9kcGxsKGNydGNfc3RhdGUpOwo+ICAJfSBlbHNlIGlmIChpbnRlbF9j cnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9BTkFMT0cpKSB7Cj4gQEAgLTg2 Nyw3ICs4NzYsOCBAQCBzdGF0aWMgYm9vbCBoc3dfZ2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4gIAkJY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5zcGxsID0KPiAg CQkJU1BMTF9QTExfRU5BQkxFIHwgU1BMTF9GUkVRXzEzNTBNSHogfCBTUExMX1JFRl9NVVhFRF9T U0M7Cj4gIAo+IC0JCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoY3J0Y19zdGF0ZSwKPiAr CQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAo+ICsJCQkJCSAgICAg JmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsCj4gIAkJCQkJICAgICBEUExMX0lEX1NQTEwsIERQ TExfSURfU1BMTCk7Cj4gIAl9IGVsc2Ugewo+ICAJCXJldHVybiBmYWxzZTsKPiBAQCAtODc2LDcg Kzg4NiwxMCBAQCBzdGF0aWMgYm9vbCBoc3dfZ2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUsCj4gIAlpZiAoIXBsbCkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+IC0JaW50 ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7Cj4gKwlpbnRlbF9yZWZl cmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCj4gKwkJCQkgICAgcGxsLCAmY3J0Y19zdGF0 ZS0+ZHBsbF9od19zdGF0ZSk7Cj4gKwo+ICsJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7 Cj4gIAo+ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiBAQCAtMTQzNywxNyArMTQ1MCwyMiBAQCBzdGF0 aWMgYm9vbCBza2xfZ2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4g IAl9Cj4gIAo+ICAJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VU UFVUX0VEUCkpCj4gLQkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjX3N0YXRlLAo+ ICsJCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCj4gKwkJCQkJICAg ICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwKPiAgCQkJCQkgICAgIERQTExfSURfU0tMX0RQ TEwwLAo+ICAJCQkJCSAgICAgRFBMTF9JRF9TS0xfRFBMTDApOwo+ICAJZWxzZQo+IC0JCXBsbCA9 IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoY3J0Y19zdGF0ZSwKPiArCQlwbGwgPSBpbnRlbF9maW5k X3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAo+ICsJCQkJCSAgICAgJmNydGNfc3RhdGUtPmRwbGxf aHdfc3RhdGUsCj4gIAkJCQkJICAgICBEUExMX0lEX1NLTF9EUExMMSwKPiAgCQkJCQkgICAgIERQ TExfSURfU0tMX0RQTEwzKTsKPiAgCWlmICghcGxsKQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4g LQlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwocGxsLCBjcnRjX3N0YXRlKTsKPiArCWludGVs X3JlZmVyZW5jZV9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKPiArCQkJCSAgICBwbGwsICZjcnRj X3N0YXRlLT5kcGxsX2h3X3N0YXRlKTsKPiArCj4gKwljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9 IHBsbDsKPiAgCj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+IEBAIC0xODgwLDcgKzE4OTgsMTAgQEAg c3RhdGljIGJvb2wgYnh0X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl LAo+ICAJRFJNX0RFQlVHX0tNUygiW0NSVEM6JWQ6JXNdIHVzaW5nIHByZS1hbGxvY2F0ZWQgJXNc biIsCj4gIAkJICAgICAgY3J0Yy0+YmFzZS5iYXNlLmlkLCBjcnRjLT5iYXNlLm5hbWUsIHBsbC0+ aW5mby0+bmFtZSk7Cj4gIAo+IC0JaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0 Y19zdGF0ZSk7Cj4gKwlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCj4g KwkJCQkgICAgcGxsLCAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7Cj4gKwo+ICsJY3J0Y19z dGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7Cj4gIAo+ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiBAQCAt MjM5NSw3ICsyNDE2LDggQEAgc3RhdGljIGJvb2wgY25sX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCXJldHVybiBmYWxzZTsKPiAgCX0KPiAgCj4gLQlwbGwg PSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGNfc3RhdGUsCj4gKwlwbGwgPSBpbnRlbF9maW5k X3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAo+ICsJCQkJICAgICAmY3J0Y19zdGF0ZS0+ZHBsbF9o d19zdGF0ZSwKPiAgCQkJCSAgICAgRFBMTF9JRF9TS0xfRFBMTDAsCj4gIAkJCQkgICAgIERQTExf SURfU0tMX0RQTEwyKTsKPiAgCWlmICghcGxsKSB7Cj4gQEAgLTI0MDMsNyArMjQyNSwxMCBAQCBz dGF0aWMgYm9vbCBjbmxfZ2V0X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUs Cj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAJfQo+ICAKPiAtCWludGVsX3JlZmVyZW5jZV9zaGFyZWRf ZHBsbChwbGwsIGNydGNfc3RhdGUpOwo+ICsJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0 YXRlLCBjcnRjLAo+ICsJCQkJICAgIHBsbCwgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpOwo+ ICsKPiArCWNydGNfc3RhdGUtPnNoYXJlZF9kcGxsID0gcGxsOwo+ICAKPiAgCXJldHVybiB0cnVl Owo+ICB9Cj4gQEAgLTI1NDUsNyArMjU3MCw4IEBAIHN0YXRpYyBib29sIGljbF9jYWxjX3RidF9w bGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIH0KPiAgCj4gIHN0YXRp YyBib29sIGljbF9jYWxjX2RwbGxfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCj4gLQkJCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArCQkJCXN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJc3RydWN0IGludGVsX2RwbGxfaHdfc3Rh dGUgKnBsbF9zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4gIAl1MzIgY2ZnY3IwLCBj ZmdjcjE7Cj4gQEAgLTI1NzIsMTEgKzI1OTgsMTAgQEAgc3RhdGljIGJvb2wgaWNsX2NhbGNfZHBs bF9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkgRFBMTF9D RkdDUjFfUERJVihwbGxfcGFyYW1zLnBkaXYpIHwKPiAgCQkgRFBMTF9DRkdDUjFfQ0VOVFJBTF9G UkVRXzg0MDA7Cj4gIAo+IC0JbWVtc2V0KCZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLCAwLAo+ IC0JICAgICAgIHNpemVvZihjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKSk7Cj4gKwltZW1zZXQo cGxsX3N0YXRlLCAwLCBzaXplb2YoKnBsbF9zdGF0ZSkpOwo+ICAKPiAtCWNydGNfc3RhdGUtPmRw bGxfaHdfc3RhdGUuY2ZnY3IwID0gY2ZnY3IwOwo+IC0JY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0 ZS5jZmdjcjEgPSBjZmdjcjE7Cj4gKwlwbGxfc3RhdGUtPmNmZ2NyMCA9IGNmZ2NyMDsKPiArCXBs bF9zdGF0ZS0+Y2ZnY3IxID0gY2ZnY3IxOwo+ICAKPiAgCXJldHVybiB0cnVlOwo+ICB9Cj4gQEAg LTI2NjYsMTAgKzI2OTEsMTAgQEAgc3RhdGljIGJvb2wgaWNsX21nX3BsbF9maW5kX2Rpdmlzb3Jz KGludCBjbG9ja19raHosIGJvb2wgaXNfZHAsIGJvb2wgdXNlX3NzYywKPiAgICogVGhlIHNwZWNp ZmljYXRpb24gZm9yIHRoaXMgZnVuY3Rpb24gdXNlcyByZWFsIG51bWJlcnMsIHNvIHRoZSBtYXRo IGhhZCB0byBiZQo+ICAgKiBhZGFwdGVkIHRvIGludGVnZXItb25seSBjYWxjdWxhdGlvbiwgdGhh dCdzIHdoeSBpdCBsb29rcyBzbyBkaWZmZXJlbnQuCj4gICAqLwo+IC1zdGF0aWMgYm9vbCBpY2xf Y2FsY19tZ19wbGxfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4g K3N0YXRpYyBib29sIGljbF9jYWxjX21nX3BsbF9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiArCQkJCSAgc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKnBsbF9z dGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHBsbF9od19z dGF0ZSAqcGxsX3N0YXRlID0gJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGU7Cj4gIAlpbnQgcmVm Y2xrX2toeiA9IGRldl9wcml2LT5jZGNsay5ody5yZWY7Cj4gIAlpbnQgY2xvY2sgPSBjcnRjX3N0 YXRlLT5wb3J0X2Nsb2NrOwo+ICAJdTMyIGRjb19raHosIG0xZGl2LCBtMmRpdl9pbnQsIG0yZGl2 X3JlbSwgbTJkaXZfZnJhYzsKPiBAQCAtMjg0Nyw3ICsyODcyLDggQEAgc3RhdGljIGJvb2wgaWNs X2dldF9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCWlmIChpbnRl bF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkgewo+ICAJCW1pbiA9IERQTExfSURf SUNMX0RQTEwwOwo+ICAJCW1heCA9IERQTExfSURfSUNMX0RQTEwxOwo+IC0JCXJldCA9IGljbF9j YWxjX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZSwgZW5jb2Rlcik7Cj4gKwkJcmV0ID0gaWNsX2NhbGNf ZHBsbF9zdGF0ZShjcnRjX3N0YXRlLCBlbmNvZGVyLAo+ICsJCQkJCSAgJmNydGNfc3RhdGUtPmRw bGxfaHdfc3RhdGUpOwo+ICAJfSBlbHNlIGlmIChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBw b3J0KSkgewo+ICAJCWlmIChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9EUF9NU1QpIHsK PiAgCQkJc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICptc3RfZW5jb2RlcjsKPiBAQCAtMjg2 MSwxNCArMjg4NywxNiBAQCBzdGF0aWMgYm9vbCBpY2xfZ2V0X2RwbGxzKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCWlmIChpbnRlbF9kaWdfcG9ydC0+dGNfbW9kZSA9PSBU Q19QT1JUX1RCVF9BTFQpIHsKPiAgCQkJbWluID0gRFBMTF9JRF9JQ0xfVEJUUExMOwo+ICAJCQlt YXggPSBtaW47Cj4gLQkJCXJldCA9IGljbF9jYWxjX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZSwgZW5j b2Rlcik7Cj4gKwkJCXJldCA9IGljbF9jYWxjX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZSwgZW5jb2Rl ciwKPiArCQkJCQkJICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7Cj4gIAkJfSBlbHNlIHsK PiAgCQkJZW51bSB0Y19wb3J0IHRjX3BvcnQ7Cj4gIAo+ICAJCQl0Y19wb3J0ID0gaW50ZWxfcG9y dF90b190YyhkZXZfcHJpdiwgcG9ydCk7Cj4gIAkJCW1pbiA9IGljbF90Y19wb3J0X3RvX3BsbF9p ZCh0Y19wb3J0KTsKPiAgCQkJbWF4ID0gbWluOwo+IC0JCQlyZXQgPSBpY2xfY2FsY19tZ19wbGxf c3RhdGUoY3J0Y19zdGF0ZSk7Cj4gKwkJCXJldCA9IGljbF9jYWxjX21nX3BsbF9zdGF0ZShjcnRj X3N0YXRlLAo+ICsJCQkJCQkgICAgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpOwo+ICAJCX0K PiAgCX0gZWxzZSB7Cj4gIAkJTUlTU0lOR19DQVNFKHBvcnQpOwo+IEBAIC0yODgxLDEzICsyOTA5 LDE4IEBAIHN0YXRpYyBib29sIGljbF9nZXRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUsCj4gIAl9Cj4gIAo+ICAKPiAtCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwo Y3J0Y19zdGF0ZSwgbWluLCBtYXgpOwo+ICsJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChz dGF0ZSwgY3J0YywKPiArCQkJCSAgICAgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsCj4gKwkJ CQkgICAgIG1pbiwgbWF4KTsKPiAgCWlmICghcGxsKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygiTm8g UExMIHNlbGVjdGVkXG4iKTsKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+IC0JaW50ZWxf cmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7Cj4gKwlpbnRlbF9yZWZlcmVu Y2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCj4gKwkJCQkgICAgcGxsLCAmY3J0Y19zdGF0ZS0+ ZHBsbF9od19zdGF0ZSk7Cj4gKwo+ICsJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7Cj4g IAo+ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiAtLSAKPiAyLjE3LjEKCi0tIApWaWxsZSBTeXJqw6Rs w6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4