From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 4/4] drm/i915: Remove begin/finish_crtc_commit, v2. Date: Wed, 25 Sep 2019 18:23:17 +0300 Message-ID: <20190925152317.GH1208@intel.com> References: <20190925145901.3943-1-maarten.lankhorst@linux.intel.com> <20190925145901.3943-4-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id DADD36EBE8 for ; Wed, 25 Sep 2019 15:23:20 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190925145901.3943-4-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBTZXAgMjUsIDIwMTkgYXQgMDQ6NTk6MDFQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVGhpcyBjYW4gYWxsIGJlIGRvbmUgZnJvbSB0aGUgaW50ZWxfdXBkYXRlX2Ny dGMgZnVuY3Rpb24uIFNwbGl0IG91dCB0aGUKPiBwaXBlIHVwZGF0ZSBpbnRvIGEgc2VwYXJhdGUg ZnVuY3Rpb24sIGp1c3QgbGlrZSBpcyBkb25lIGZvciB0aGUgcGxhbmVzLgo+IFB1bGwgaW4gYWxs IHRoZSBjaGFuZ2VzIGRvbmUgZHVyaW5nIGZhc3RzZXQgYXMgd2VsbC4gSXQgbWFrZXMgbm8gc2Vu c2UKPiBmb3IgaXQgdG8gc3RpbGwgZXhpc3QgYXMgYSBzZXBhcmF0ZSBmdW5jdGlvbi4KPiAKPiBD aGFuZ2VzIHNpbmNlIHYxOgo+IC0gSW5saW5lIGludGVsX3VwZGF0ZV9waXBlX2NvbmZpZygpCj4g Cj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5LmMgfCAxOTcgKysrKysrKystLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwg ODYgaW5zZXJ0aW9ucygrKSwgMTExIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggYjc3NTc0Y2RhNjQ4Li41YTlk MDZhZjlmMjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXkuYwo+IEBAIC0xMzYsOCArMTM2LDYgQEAgc3RhdGljIHZvaWQgdmx2X3ByZXBhcmVfcGxs KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKPiAgc3RhdGljIHZvaWQgY2h2X3ByZXBhcmVfcGxsKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnKTsKPiAtc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21t aXQoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqLCBzdHJ1Y3QgaW50ZWxfY3J0YyAqKTsKPiAt c3RhdGljIHZvaWQgaW50ZWxfZmluaXNoX2NydGNfY29tbWl0KHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKiwgc3RydWN0IGludGVsX2NydGMgKik7Cj4gIHN0YXRpYyB2b2lkIGludGVsX2NydGNf aW5pdF9zY2FsZXJzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkJICAgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAgc3RhdGljIHZvaWQgc2t5bGFrZV9wZml0 X2VuYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gQEAg LTQ0MDksNDUgKzQ0MDcsNiBAQCBzdGF0aWMgdm9pZCBpY2xfc2V0X3BpcGVfY2hpY2tlbihzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCUk5MTVfV1JJVEUoUElQRV9DSElDS0VOKHBpcGUpLCB0 bXApOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfcGlwZV9jb25maWcoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+IC0JCQkJICAgICBj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCj4gLXsKPiAtCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwo+IC0KPiAtCS8qIGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9sZWdh Y3lfbW9kZXNldF9zdGF0ZSBtaWdodCBub3QgYmUgY2FsbGVkLiAqLwo+IC0JY3J0Yy0+YmFzZS5t b2RlID0gbmV3X2NydGNfc3RhdGUtPnVhcGkubW9kZTsKPiAtCj4gLQkvKgo+IC0JICogVXBkYXRl IHBpcGUgc2l6ZSBhbmQgYWRqdXN0IGZpdHRlciBpZiBuZWVkZWQ6IHRoZSByZWFzb24gZm9yIHRo aXMgaXMKPiAtCSAqIHRoYXQgaW4gY29tcHV0ZV9tb2RlX2NoYW5nZXMgd2UgY2hlY2sgdGhlIG5h dGl2ZSBtb2RlIChub3QgdGhlIHBmaXQKPiAtCSAqIG1vZGUpIHRvIHNlZSBpZiB3ZSBjYW4gZmxp cCByYXRoZXIgdGhhbiBkbyBhIGZ1bGwgbW9kZSBzZXQuIEluIHRoZQo+IC0JICogZmFzdGJvb3Qg Y2FzZSwgd2UnbGwgZmxpcCwgYnV0IGlmIHdlIGRvbid0IHVwZGF0ZSB0aGUgcGlwZXNyYyBhbmQK PiAtCSAqIHBmaXQgc3RhdGUsIHdlJ2xsIGVuZCB1cCB3aXRoIGEgYmlnIGZiIHNjYW5uZWQgb3V0 IGludG8gdGhlIHdyb25nCj4gLQkgKiBzaXplZCBzdXJmYWNlLgo+IC0JICovCj4gLQo+IC0JSTkx NV9XUklURShQSVBFU1JDKGNydGMtPnBpcGUpLAo+IC0JCSAgICgobmV3X2NydGNfc3RhdGUtPnBp cGVfc3JjX3cgLSAxKSA8PCAxNikgfAo+IC0JCSAgIChuZXdfY3J0Y19zdGF0ZS0+cGlwZV9zcmNf aCAtIDEpKTsKPiAtCj4gLQkvKiBvbiBza3lsYWtlIHRoaXMgaXMgZG9uZSBieSBkZXRhY2hpbmcg c2NhbGVycyAqLwo+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+IC0JCXNrbF9k ZXRhY2hfc2NhbGVycyhuZXdfY3J0Y19zdGF0ZSk7Cj4gLQo+IC0JCWlmIChuZXdfY3J0Y19zdGF0 ZS0+cGNoX3BmaXQuZW5hYmxlZCkKPiAtCQkJc2t5bGFrZV9wZml0X2VuYWJsZShuZXdfY3J0Y19z dGF0ZSk7Cj4gLQl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKSB7Cj4gLQkJaWYg KG5ld19jcnRjX3N0YXRlLT5wY2hfcGZpdC5lbmFibGVkKQo+IC0JCQlpcm9ubGFrZV9wZml0X2Vu YWJsZShuZXdfY3J0Y19zdGF0ZSk7Cj4gLQkJZWxzZSBpZiAob2xkX2NydGNfc3RhdGUtPnBjaF9w Zml0LmVuYWJsZWQpCj4gLQkJCWlyb25sYWtlX3BmaXRfZGlzYWJsZShvbGRfY3J0Y19zdGF0ZSk7 Cj4gLQl9Cj4gLQo+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCj4gLQkJaWNsX3Nl dF9waXBlX2NoaWNrZW4oY3J0Yyk7Cj4gLX0KPiAtCj4gIHN0YXRpYyB2b2lkIGludGVsX2ZkaV9u b3JtYWxfdHJhaW4oc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIHsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiBAQCAtMTM3MzksMTMgKzEzNjk4LDg4IEBA IHUzMiBpbnRlbF9jcnRjX2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YykKPiAgCXJldHVybiBjcnRjLT5iYXNlLmZ1bmNzLT5nZXRfdmJsYW5rX2NvdW50ZXIoJmNydGMt PmJhc2UpOwo+ICB9Cj4gIAo+ICt2b2lkIGludGVsX2NydGNfYXJtX2ZpZm9fdW5kZXJydW4oc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCj4gKwkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiArCj4gKwlpZiAoIUlTX0dFTihkZXZfcHJpdiwgMikp Cj4gKwkJaW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgY3J0 Yy0+cGlwZSwgdHJ1ZSk7Cj4gKwo+ICsJaWYgKGNydGNfc3RhdGUtPmhhc19wY2hfZW5jb2Rlcikg ewo+ICsJCWVudW0gcGlwZSBwY2hfdHJhbnNjb2RlciA9Cj4gKwkJCWludGVsX2NydGNfcGNoX3Ry YW5zY29kZXIoY3J0Yyk7Cj4gKwo+ICsJCWludGVsX3NldF9wY2hfZmlmb191bmRlcnJ1bl9yZXBv cnRpbmcoZGV2X3ByaXYsIHBjaF90cmFuc2NvZGVyLCB0cnVlKTsKPiArCX0KPiArfQo+ICsKPiAr c3RhdGljIHZvaWQgY29tbWl0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlLAo+ICsJCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0 YXRlLAo+ICsJCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRl KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2Ny dGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7Cj4gKwlib29sIG1vZGVzZXQgPSBuZWVkc19t b2Rlc2V0KG5ld19jcnRjX3N0YXRlKTsKPiArCj4gKwlpZiAoIW1vZGVzZXQpIHsKPiArCQlpZiAo bmV3X2NydGNfc3RhdGUtPnVhcGkuY29sb3JfbWdtdF9jaGFuZ2VkIHx8Cj4gKwkJICAgIG5ld19j cnRjX3N0YXRlLT51cGRhdGVfcGlwZSkKPiArCQkJaW50ZWxfY29sb3JfY29tbWl0KG5ld19jcnRj X3N0YXRlKTsKPiArCj4gKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiArCQkJc2ts X2RldGFjaF9zY2FsZXJzKG5ld19jcnRjX3N0YXRlKTsKPiArCj4gKwkJaWYgKG5ld19jcnRjX3N0 YXRlLT51cGRhdGVfcGlwZSkgewo+ICsJCQkvKiBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVn YWN5X21vZGVzZXRfc3RhdGUgbWlnaHQgbm90IGJlIGNhbGxlZC4gKi8KPiArCQkJY3J0Yy0+YmFz ZS5tb2RlID0gbmV3X2NydGNfc3RhdGUtPnVhcGkubW9kZTsKPiArCj4gKwkJCS8qCj4gKwkJCSAq IFVwZGF0ZSBwaXBlIHNpemUgYW5kIGFkanVzdCBmaXR0ZXIgaWYgbmVlZGVkOiB0aGUgcmVhc29u IGZvciB0aGlzIGlzCj4gKwkJCSAqIHRoYXQgaW4gY29tcHV0ZV9tb2RlX2NoYW5nZXMgd2UgY2hl Y2sgdGhlIG5hdGl2ZSBtb2RlIChub3QgdGhlIHBmaXQKPiArCQkJICogbW9kZSkgdG8gc2VlIGlm IHdlIGNhbiBmbGlwIHJhdGhlciB0aGFuIGRvIGEgZnVsbCBtb2RlIHNldC4gSW4gdGhlCj4gKwkJ CSAqIGZhc3Rib290IGNhc2UsIHdlJ2xsIGZsaXAsIGJ1dCBpZiB3ZSBkb24ndCB1cGRhdGUgdGhl IHBpcGVzcmMgYW5kCj4gKwkJCSAqIHBmaXQgc3RhdGUsIHdlJ2xsIGVuZCB1cCB3aXRoIGEgYmln IGZiIHNjYW5uZWQgb3V0IGludG8gdGhlIHdyb25nCj4gKwkJCSAqIHNpemVkIHN1cmZhY2UuCj4g KwkJCSAqLwo+ICsKPiArCQkJSTkxNV9XUklURShQSVBFU1JDKGNydGMtPnBpcGUpLAo+ICsJCQkJ ICAoKG5ld19jcnRjX3N0YXRlLT5waXBlX3NyY193IC0gMSkgPDwgMTYpIHwKPiArCQkJCSAgKG5l d19jcnRjX3N0YXRlLT5waXBlX3NyY19oIC0gMSkpOwo+ICsKPiArCQkJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gOSkgewo+ICsJCQkJLyoKPiArCQkJCSAqIGVuYWJsZSBwaXBlIHNjYWxlciBo ZXJlIGlmIG5lZWRlZCwgaWYKPiArCQkJCSAqIGl0J3MgZGlzYWJsZWQsIHRoYXQncyBkb25lIGJ5 Cj4gKwkJCQkgKiBza2xfZGV0YWNoX3NjYWxlcnMoKSBhYm92ZS4KPiArCQkJCSAqLwo+ICsJCQkJ c2t5bGFrZV9wZml0X2VuYWJsZShuZXdfY3J0Y19zdGF0ZSk7Cj4gKwkJCX0gZWxzZSBpZiAoSEFT X1BDSF9TUExJVChkZXZfcHJpdikpIHsKPiArCQkJCWlmICghbmV3X2NydGNfc3RhdGUtPnBjaF9w Zml0LmVuYWJsZWQpCj4gKwkJCQkJaXJvbmxha2VfcGZpdF9kaXNhYmxlKG9sZF9jcnRjX3N0YXRl KTsKPiArCQkJCWVsc2UKPiArCQkJCQlpcm9ubGFrZV9wZml0X2VuYWJsZShuZXdfY3J0Y19zdGF0 ZSk7Cj4gKwkJCX0KPiArCj4gKwkJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQo+ICsJ CQkJaWNsX3NldF9waXBlX2NoaWNrZW4oY3J0Yyk7Cj4gKwkJfQo+ICsKPiArCQlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA+PSA5IHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gKwkJCWJkd19z ZXRfcGlwZW1pc2MobmV3X2NydGNfc3RhdGUpOwo+ICsJfQo+ICsKPiArCWlmIChkZXZfcHJpdi0+ ZGlzcGxheS5hdG9taWNfdXBkYXRlX3dhdGVybWFya3MpCj4gKwkJZGV2X3ByaXYtPmRpc3BsYXku YXRvbWljX3VwZGF0ZV93YXRlcm1hcmtzKHN0YXRlLAo+ICsJCQkJCQkJICAgbmV3X2NydGNfc3Rh dGUpOwoKRmVlbHMgbGlrZSBidW5jaCBvZiBwb2ludGxlc3MgbmVzdGluZy4gV2UgY291bGQganVz dCBkbwoKaWYgKCFtb2Rlc2V0KQoJY29tbWl0X3BpcGVfdGhpbmcoKTsKaWYgKHdtKQoJdXBkYXRl X3dtKCk7CgppbiB0aGUgY2FsbGVyLCBvciBzb21ldGhpbmcuCgo+ICt9Cj4gKwo+ICBzdGF0aWMg dm9pZCBpbnRlbF91cGRhdGVfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkJICAg ICAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJCSAgICAgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiAgCQkJICAgICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gc3RhdGUtPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwo+ICAJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9k ZXNldChuZXdfY3J0Y19zdGF0ZSk7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm5ld19w bGFuZV9zdGF0ZSA9Cj4gIAkJaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RhdGUs Cj4gQEAgLTEzNzY5LDE0ICsxMzgwMywyMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfY3J0 YyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCWVsc2UgaWYgKG5ld19wbGFuZV9zdGF0ZSkK PiAgCQlpbnRlbF9mYmNfZW5hYmxlKGNydGMsIG5ld19jcnRjX3N0YXRlLCBuZXdfcGxhbmVfc3Rh dGUpOwo+ICAKPiAtCWludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0YXRlLCBjcnRjKTsKPiArCS8q IFBlcmZvcm0gdmJsYW5rIGV2YXNpb24gYXJvdW5kIGNvbW1pdCBvcGVyYXRpb24gKi8KPiArCWlu dGVsX3BpcGVfdXBkYXRlX3N0YXJ0KG5ld19jcnRjX3N0YXRlKTsKPiArCj4gKwljb21taXRfcGlw ZV9jb25maWcoc3RhdGUsIG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gIAo+ICAJ aWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiAgCQlza2xfdXBkYXRlX3BsYW5lc19vbl9j cnRjKHN0YXRlLCBjcnRjKTsKPiAgCWVsc2UKPiAgCQlpOXh4X3VwZGF0ZV9wbGFuZXNfb25fY3J0 YyhzdGF0ZSwgY3J0Yyk7Cj4gIAo+IC0JaW50ZWxfZmluaXNoX2NydGNfY29tbWl0KHN0YXRlLCBj cnRjKTsKPiArCWludGVsX3BpcGVfdXBkYXRlX2VuZChuZXdfY3J0Y19zdGF0ZSk7Cj4gKwo+ICsJ aWYgKG5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSAmJiAhbW9kZXNldCAmJgo+ICsJICAgIG9s ZF9jcnRjX3N0YXRlLT5ody5tb2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVfRkxBR19JTkhF UklURUQpCj4gKwkJaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1bihjcnRjLCBuZXdfY3J0Y19z dGF0ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGludGVsX29sZF9jcnRjX3N0YXRlX2Rpc2Fi bGVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+IEBAIC0xNDU3Myw3MiArMTQ2 MTQsNiBAQCBza2xfbWF4X3NjYWxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAo+ICAJcmV0dXJuIG1heF9zY2FsZTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50 ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4g LQkJCQkgICAgc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gLXsKPiAtCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlID0KPiAtCQlpbnRlbF9hdG9taWNfZ2V0 X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpuZXdfY3J0Y19zdGF0ZSA9Cj4gLQkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShz dGF0ZSwgY3J0Yyk7Cj4gLQlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0 YXRlKTsKPiAtCj4gLQkvKiBQZXJmb3JtIHZibGFuayBldmFzaW9uIGFyb3VuZCBjb21taXQgb3Bl cmF0aW9uICovCj4gLQlpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChuZXdfY3J0Y19zdGF0ZSk7Cj4g LQo+IC0JaWYgKG1vZGVzZXQpCj4gLQkJZ290byBvdXQ7Cj4gLQo+IC0JaWYgKG5ld19jcnRjX3N0 YXRlLT51YXBpLmNvbG9yX21nbXRfY2hhbmdlZCB8fAo+IC0JICAgIG5ld19jcnRjX3N0YXRlLT51 cGRhdGVfcGlwZSkKPiAtCQlpbnRlbF9jb2xvcl9jb21taXQobmV3X2NydGNfc3RhdGUpOwo+IC0K PiAtCWlmIChuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpCj4gLQkJaW50ZWxfdXBkYXRlX3Bp cGVfY29uZmlnKG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gLQllbHNlIGlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCj4gLQkJc2tsX2RldGFjaF9zY2FsZXJzKG5ld19jcnRj X3N0YXRlKTsKPiAtCj4gLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5IHx8IElTX0JST0FE V0VMTChkZXZfcHJpdikpCj4gLQkJYmR3X3NldF9waXBlbWlzYyhuZXdfY3J0Y19zdGF0ZSk7Cj4g LQo+IC1vdXQ6Cj4gLQlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuYXRvbWljX3VwZGF0ZV93YXRlcm1h cmtzKQo+IC0JCWRldl9wcml2LT5kaXNwbGF5LmF0b21pY191cGRhdGVfd2F0ZXJtYXJrcyhzdGF0 ZSwKPiAtCQkJCQkJCSAgIG5ld19jcnRjX3N0YXRlKTsKPiAtfQo+IC0KPiAtdm9pZCBpbnRlbF9j cnRjX2FybV9maWZvX3VuZGVycnVuKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+IC0JCQkJICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAtewo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gLQo+IC0J aWYgKCFJU19HRU4oZGV2X3ByaXYsIDIpKQo+IC0JCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1 bl9yZXBvcnRpbmcoZGV2X3ByaXYsIGNydGMtPnBpcGUsIHRydWUpOwo+IC0KPiAtCWlmIChjcnRj X3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpIHsKPiAtCQllbnVtIHBpcGUgcGNoX3RyYW5zY29kZXIg PQo+IC0JCQlpbnRlbF9jcnRjX3BjaF90cmFuc2NvZGVyKGNydGMpOwo+IC0KPiAtCQlpbnRlbF9z ZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBwY2hfdHJhbnNjb2Rlciwg dHJ1ZSk7Cj4gLQl9Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9jcnRjX2Nv bW1pdChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAtCQkJCSAgICAgc3RydWN0 IGludGVsX2NydGMgKmNydGMpCj4gLXsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRf Y3J0Y19zdGF0ZSA9Cj4gLQkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShzdGF0ZSwg Y3J0Yyk7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUgPQo+IC0J CWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+IC0KPiAtCWlu dGVsX3BpcGVfdXBkYXRlX2VuZChuZXdfY3J0Y19zdGF0ZSk7Cj4gLQo+IC0JaWYgKG5ld19jcnRj X3N0YXRlLT51cGRhdGVfcGlwZSAmJgo+IC0JICAgICFuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0 YXRlKSAmJgo+IC0JICAgIG9sZF9jcnRjX3N0YXRlLT5ody5tb2RlLnByaXZhdGVfZmxhZ3MgJiBJ OTE1X01PREVfRkxBR19JTkhFUklURUQpCj4gLQkJaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1 bihjcnRjLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gLX0KPiAtCj4gIC8qKgo+ICAgKiBpbnRlbF9wbGFu ZV9kZXN0cm95IC0gZGVzdHJveSBhIHBsYW5lCj4gICAqIEBwbGFuZTogcGxhbmUgdG8gZGVzdHJv eQo+IC0tIAo+IDIuMjAuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=