From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Remove begin/finish_crtc_commit, v3. Date: Thu, 26 Sep 2019 19:22:59 +0300 Message-ID: <20190926162259.GO1208@intel.com> References: <20190925214212.GT1869@mdroper-desk1.amr.corp.intel.com> <20190926094725.5231-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9CAB56EDD3 for ; Thu, 26 Sep 2019 16:23:03 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190926094725.5231-1-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 T24gVGh1LCBTZXAgMjYsIDIwMTkgYXQgMTE6NDc6MjVBTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVGhpcyBjYW4gYWxsIGJlIGRvbmUgZnJvbSB0aGUgaW50ZWxfdXBkYXRlX2Ny dGMgZnVuY3Rpb24uIFNwbGl0IG91dCB0aGUKPiBwaXBlIHVwZGF0ZSBpbnRvIGEgc2VwYXJhdGUg ZnVuY3Rpb24sIGp1c3QgbGlrZSBpcyBkb25lIGZvciB0aGUgcGxhbmVzLgo+IFB1bGwgaW4gYWxs IHRoZSBjaGFuZ2VzIGRvbmUgZHVyaW5nIGZhc3RzZXQgYXMgd2VsbC4gSXQgbWFrZXMgbm8gc2Vu c2UKPiBmb3IgaXQgdG8gc3RpbGwgZXhpc3QgYXMgYSBzZXBhcmF0ZSBmdW5jdGlvbi4KPiAKPiBD aGFuZ2VzIHNpbmNlIHYxOgo+IC0gSW5saW5lIGludGVsX3VwZGF0ZV9waXBlX2NvbmZpZygpCj4g Q2hhbmdlcyBzaW5jZSB2MjoKPiAtIEFkZCBjb21tZW50cyBzdWdnZXN0ZWQgYnkgbWF0dC4KPiAt IFJlb3JkZXIgY29tbWl0X3BpcGVfY29uZmlnKCkgdG8gcmVtb3ZlIGFsbCBuZXN0aW5nLiAoVmls bGUsIE1hdHQpCj4gLSBVc2UgaW50ZWxfc2V0X3BpcGVfc3JjX3NpemUoKCkuIChNYXR0KQo+IAo+ IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51 eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheS5jIHwgMjA2ICsrKysrKysrKy0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDk1 IGluc2VydGlvbnMoKyksIDExMSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGI3NzU3NGNkYTY0OC4uMjM5ZTBj YTNlM2VjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5LmMKPiBAQCAtMTM2LDggKzEzNiw2IEBAIHN0YXRpYyB2b2lkIHZsdl9wcmVwYXJlX3BsbChz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4gIHN0YXRpYyB2b2lkIGNodl9wcmVwYXJlX3BsbChzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZyk7Cj4gLXN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0 KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKiwgc3RydWN0IGludGVsX2NydGMgKik7Cj4gLXN0 YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9jcnRjX2NvbW1pdChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICosIHN0cnVjdCBpbnRlbF9jcnRjICopOwo+ICBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2lu aXRfc2NhbGVycyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkJCSAgICBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gIHN0YXRpYyB2b2lkIHNreWxha2VfcGZpdF9l bmFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+IEBAIC00 NDA5LDQ1ICs0NDA3LDYgQEAgc3RhdGljIHZvaWQgaWNsX3NldF9waXBlX2NoaWNrZW4oc3RydWN0 IGludGVsX2NydGMgKmNydGMpCj4gIAlJOTE1X1dSSVRFKFBJUEVfQ0hJQ0tFTihwaXBlKSwgdG1w KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX3BpcGVfY29uZmlnKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiAtCQkJCSAgICAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQo+IC17Cj4gLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGku Y3J0Yyk7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGMtPmJhc2UuZGV2KTsKPiAtCj4gLQkvKiBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5 X21vZGVzZXRfc3RhdGUgbWlnaHQgbm90IGJlIGNhbGxlZC4gKi8KPiAtCWNydGMtPmJhc2UubW9k ZSA9IG5ld19jcnRjX3N0YXRlLT51YXBpLm1vZGU7Cj4gLQo+IC0JLyoKPiAtCSAqIFVwZGF0ZSBw aXBlIHNpemUgYW5kIGFkanVzdCBmaXR0ZXIgaWYgbmVlZGVkOiB0aGUgcmVhc29uIGZvciB0aGlz IGlzCj4gLQkgKiB0aGF0IGluIGNvbXB1dGVfbW9kZV9jaGFuZ2VzIHdlIGNoZWNrIHRoZSBuYXRp dmUgbW9kZSAobm90IHRoZSBwZml0Cj4gLQkgKiBtb2RlKSB0byBzZWUgaWYgd2UgY2FuIGZsaXAg cmF0aGVyIHRoYW4gZG8gYSBmdWxsIG1vZGUgc2V0LiBJbiB0aGUKPiAtCSAqIGZhc3Rib290IGNh c2UsIHdlJ2xsIGZsaXAsIGJ1dCBpZiB3ZSBkb24ndCB1cGRhdGUgdGhlIHBpcGVzcmMgYW5kCj4g LQkgKiBwZml0IHN0YXRlLCB3ZSdsbCBlbmQgdXAgd2l0aCBhIGJpZyBmYiBzY2FubmVkIG91dCBp bnRvIHRoZSB3cm9uZwo+IC0JICogc2l6ZWQgc3VyZmFjZS4KPiAtCSAqLwo+IC0KPiAtCUk5MTVf V1JJVEUoUElQRVNSQyhjcnRjLT5waXBlKSwKPiAtCQkgICAoKG5ld19jcnRjX3N0YXRlLT5waXBl X3NyY193IC0gMSkgPDwgMTYpIHwKPiAtCQkgICAobmV3X2NydGNfc3RhdGUtPnBpcGVfc3JjX2gg LSAxKSk7Cj4gLQo+IC0JLyogb24gc2t5bGFrZSB0aGlzIGlzIGRvbmUgYnkgZGV0YWNoaW5nIHNj YWxlcnMgKi8KPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPiAtCQlza2xfZGV0 YWNoX3NjYWxlcnMobmV3X2NydGNfc3RhdGUpOwo+IC0KPiAtCQlpZiAobmV3X2NydGNfc3RhdGUt PnBjaF9wZml0LmVuYWJsZWQpCj4gLQkJCXNreWxha2VfcGZpdF9lbmFibGUobmV3X2NydGNfc3Rh dGUpOwo+IC0JfSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkgewo+IC0JCWlmIChu ZXdfY3J0Y19zdGF0ZS0+cGNoX3BmaXQuZW5hYmxlZCkKPiAtCQkJaXJvbmxha2VfcGZpdF9lbmFi bGUobmV3X2NydGNfc3RhdGUpOwo+IC0JCWVsc2UgaWYgKG9sZF9jcnRjX3N0YXRlLT5wY2hfcGZp dC5lbmFibGVkKQo+IC0JCQlpcm9ubGFrZV9wZml0X2Rpc2FibGUob2xkX2NydGNfc3RhdGUpOwo+ IC0JfQo+IC0KPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQo+IC0JCWljbF9zZXRf cGlwZV9jaGlja2VuKGNydGMpOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBpbnRlbF9mZGlfbm9y bWFsX3RyYWluKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gQEAgLTEzNzM5LDEzICsxMzY5OCw5MSBAQCB1 MzIgaW50ZWxfY3J0Y19nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGludGVsX2NydGMgKmNydGMp Cj4gIAlyZXR1cm4gY3J0Yy0+YmFzZS5mdW5jcy0+Z2V0X3ZibGFua19jb3VudGVyKCZjcnRjLT5i YXNlKTsKPiAgfQo+ICAKPiArdm9pZCBpbnRlbF9jcnRjX2FybV9maWZvX3VuZGVycnVuKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAo+ICsJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjLT5iYXNlLmRldik7Cj4gKwo+ICsJaWYgKCFJU19HRU4oZGV2X3ByaXYsIDIpKQo+ ICsJCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIGNydGMt PnBpcGUsIHRydWUpOwo+ICsKPiArCWlmIChjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpIHsK PiArCQllbnVtIHBpcGUgcGNoX3RyYW5zY29kZXIgPQo+ICsJCQlpbnRlbF9jcnRjX3BjaF90cmFu c2NvZGVyKGNydGMpOwo+ICsKPiArCQlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0 aW5nKGRldl9wcml2LCBwY2hfdHJhbnNjb2RlciwgdHJ1ZSk7Cj4gKwl9Cj4gK30KPiArCj4gK3N0 YXRpYyB2b2lkIGNvbW1pdF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSwKPiArCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0 ZSwKPiArCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkK PiArewo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRj X3N0YXRlLT51YXBpLmNydGMpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwo+ICsJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9k ZXNldChuZXdfY3J0Y19zdGF0ZSk7Cj4gKwo+ICsJaWYgKGRldl9wcml2LT5kaXNwbGF5LmF0b21p Y191cGRhdGVfd2F0ZXJtYXJrcykKPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5hdG9taWNfdXBkYXRl X3dhdGVybWFya3Moc3RhdGUsCj4gKwkJCQkJCQkgICBuZXdfY3J0Y19zdGF0ZSk7CgpNb3Zpbmcg dGhpcyBoZXJlIHdpZGVucyB0aGUgZ2FwIGJldHdlZW4gcHJvZ3JhbW1pbmcgdGhlIEZJRk8gc3Bs aXQgYW5kCnByb2dyYW1taW5nIHRoZSBwbGFuZXMgb24gVkxWL0NIVi4gSSdkIHByZWZlciB0byBr ZWVwIHRoaXMgYXQgdGhlIGVuZAp0byBrZWVwIGl0IGFzIGNsb3NlIHRvIHRoZSBwbGFuZSBwcm9n cmFtbWluZyBhcyBwb3NzaWJsZS4KCj4gKwo+ICsJLyoKPiArCSAqIER1cmluZyBtb2Rlc2V0cyBw aXBlIGNvbmZpZ3VyYXRpb24gd2FzIHByb2dyYW1tZWQgYXMgdGhlCj4gKwkgKiBDUlRDIHdhcyBl bmFibGVkLgo+ICsJICovCj4gKwlpZiAobW9kZXNldCkKPiArCQlyZXR1cm47Cj4gKwo+ICsJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiArCQlza2xfZGV0YWNoX3NjYWxlcnMobmV3X2Ny dGNfc3RhdGUpOwoKU2ltaWxhcmx5IEknZCBtb3ZlIHRoaXMgZG93bndhcmRzIHBhc3QgdGhlIG5l eHQgdHdvIHRoaW5ncyB0byBnZXQKaXQgYSBiaXQgY2xvc2VyIHRvIHRoZSBwZml0L3BsYW5lIHBy b2dyYW1taW5nLgoKPiArCj4gKwlpZiAobmV3X2NydGNfc3RhdGUtPnVhcGkuY29sb3JfbWdtdF9j aGFuZ2VkIHx8Cj4gKwkgICAgbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKQo+ICsJCWludGVs X2NvbG9yX2NvbW1pdChuZXdfY3J0Y19zdGF0ZSk7Cj4gKwo+ICsJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gOSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ICsJCWJkd19zZXRfcGlwZW1p c2MobmV3X2NydGNfc3RhdGUpOwo+ICsKPiArCWlmICghbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9w aXBlKQo+ICsJCXJldHVybjsKPiArCj4gKwkvKiBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVn YWN5X21vZGVzZXRfc3RhdGUgbWlnaHQgbm90IGJlIGNhbGxlZC4gKi8KPiArCWNydGMtPmJhc2Uu bW9kZSA9IG5ld19jcnRjX3N0YXRlLT51YXBpLm1vZGU7Cj4gKwo+ICsJLyoKPiArCSAqIFVwZGF0 ZSBwaXBlIHNpemUgYW5kIGFkanVzdCBmaXR0ZXIgaWYgbmVlZGVkOiB0aGUgcmVhc29uIGZvciB0 aGlzIGlzCj4gKwkgKiB0aGF0IGluIGNvbXB1dGVfbW9kZV9jaGFuZ2VzIHdlIGNoZWNrIHRoZSBu YXRpdmUgbW9kZSAobm90IHRoZSBwZml0Cj4gKwkgKiBtb2RlKSB0byBzZWUgaWYgd2UgY2FuIGZs aXAgcmF0aGVyIHRoYW4gZG8gYSBmdWxsIG1vZGUgc2V0LiBJbiB0aGUKPiArCSAqIGZhc3Rib290 IGNhc2UsIHdlJ2xsIGZsaXAsIGJ1dCBpZiB3ZSBkb24ndCB1cGRhdGUgdGhlIHBpcGVzcmMgYW5k Cj4gKwkgKiBwZml0IHN0YXRlLCB3ZSdsbCBlbmQgdXAgd2l0aCBhIGJpZyBmYiBzY2FubmVkIG91 dCBpbnRvIHRoZSB3cm9uZwo+ICsJICogc2l6ZWQgc3VyZmFjZS4KPiArCSAqLwo+ICsJaW50ZWxf c2V0X3BpcGVfc3JjX3NpemUobmV3X2NydGNfc3RhdGUpOwo+ICsKPiArCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDkpIHsKPiArCQkvKgo+ICsJCSAqIGVuYWJsZSBwaXBlIHNjYWxlciBoZXJl IGlmIG5lZWRlZCwgaWYKPiArCQkgKiBpdCdzIGRpc2FibGVkLCB0aGF0J3MgZG9uZSBieQo+ICsJ CSAqIHNrbF9kZXRhY2hfc2NhbGVycygpIGFib3ZlLgo+ICsJCSAqLwo+ICsJCXNreWxha2VfcGZp dF9lbmFibGUobmV3X2NydGNfc3RhdGUpOwo+ICsJfSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRl dl9wcml2KSkgewo+ICsJCWlmICghbmV3X2NydGNfc3RhdGUtPnBjaF9wZml0LmVuYWJsZWQpCj4g KwkJCWlyb25sYWtlX3BmaXRfZGlzYWJsZShvbGRfY3J0Y19zdGF0ZSk7Cj4gKwkJZWxzZQo+ICsJ CQlpcm9ubGFrZV9wZml0X2VuYWJsZShuZXdfY3J0Y19zdGF0ZSk7Cj4gKwl9Cj4gKwo+ICsJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCj4gKwkJaWNsX3NldF9waXBlX2NoaWNrZW4oY3J0 Yyk7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9jcnRjKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAo+ICAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSwKPiAgCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ ICAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCj4gIHsK PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7Cj4gIAli b29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKTsKPiAgCXN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlID0KPiAgCQlpbnRlbF9hdG9taWNfZ2V0 X25ld19wbGFuZV9zdGF0ZShzdGF0ZSwKPiBAQCAtMTM3NjksMTQgKzEzODA2LDI3IEBAIHN0YXRp YyB2b2lkIGludGVsX3VwZGF0ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJZWxz ZSBpZiAobmV3X3BsYW5lX3N0YXRlKQo+ICAJCWludGVsX2ZiY19lbmFibGUoY3J0YywgbmV3X2Ny dGNfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSk7Cj4gIAo+IC0JaW50ZWxfYmVnaW5fY3J0Y19jb21t aXQoc3RhdGUsIGNydGMpOwo+ICsJLyogUGVyZm9ybSB2YmxhbmsgZXZhc2lvbiBhcm91bmQgY29t bWl0IG9wZXJhdGlvbiAqLwo+ICsJaW50ZWxfcGlwZV91cGRhdGVfc3RhcnQobmV3X2NydGNfc3Rh dGUpOwo+ICsKPiArCWNvbW1pdF9waXBlX2NvbmZpZyhzdGF0ZSwgb2xkX2NydGNfc3RhdGUsIG5l d19jcnRjX3N0YXRlKTsKPiAgCj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+ICAJ CXNrbF91cGRhdGVfcGxhbmVzX29uX2NydGMoc3RhdGUsIGNydGMpOwo+ICAJZWxzZQo+ICAJCWk5 eHhfdXBkYXRlX3BsYW5lc19vbl9jcnRjKHN0YXRlLCBjcnRjKTsKPiAgCj4gLQlpbnRlbF9maW5p c2hfY3J0Y19jb21taXQoc3RhdGUsIGNydGMpOwo+ICsJaW50ZWxfcGlwZV91cGRhdGVfZW5kKG5l d19jcnRjX3N0YXRlKTsKPiArCj4gKyAgICAgICAgLyoKPiArICAgICAgICAgKiBXZSB1c3VhbGx5 IGVuYWJsZSBGSUZPIHVuZGVycnVuIGludGVycnVwdHMgYXMgcGFydCBvZiB0aGUKPiArICAgICAg ICAgKiBDUlRDIGVuYWJsZSBzZXF1ZW5jZSBkdXJpbmcgbW9kZXNldHMuICBCdXQgd2hlbiB3ZSBp bmhlcml0IGEKPiArICAgICAgICAgKiB2YWxpZCBwaXBlIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUg QklPUyB3ZSBuZWVkIHRvIHRha2UgY2FyZQo+ICsgICAgICAgICAqIG9mIGVuYWJsaW5nIHRoZW0g b24gdGhlIENSVEMncyBmaXJzdCBmYXN0c2V0Lgo+ICsgICAgICAgICAqLwo+ICsJaWYgKG5ld19j cnRjX3N0YXRlLT51cGRhdGVfcGlwZSAmJiAhbW9kZXNldCAmJgo+ICsJICAgIG9sZF9jcnRjX3N0 YXRlLT5ody5tb2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVfRkxBR19JTkhFUklURUQpCj4g KwkJaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1bihjcnRjLCBuZXdfY3J0Y19zdGF0ZSk7Cj4g IH0KPiAgCj4gIHN0YXRpYyB2b2lkIGludGVsX29sZF9jcnRjX3N0YXRlX2Rpc2FibGVzKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+IEBAIC0xNDU3Myw3MiArMTQ2MjMsNiBAQCBz a2xfbWF4X3NjYWxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ ICAJcmV0dXJuIG1heF9zY2FsZTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5f Y3J0Y19jb21taXQoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gLQkJCQkgICAg c3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlID0KPiAtCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRj X3N0YXRlKHN0YXRlLCBjcnRjKTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0 Y19zdGF0ZSA9Cj4gLQkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0 Yyk7Cj4gLQlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKTsKPiAt Cj4gLQkvKiBQZXJmb3JtIHZibGFuayBldmFzaW9uIGFyb3VuZCBjb21taXQgb3BlcmF0aW9uICov Cj4gLQlpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChuZXdfY3J0Y19zdGF0ZSk7Cj4gLQo+IC0JaWYg KG1vZGVzZXQpCj4gLQkJZ290byBvdXQ7Cj4gLQo+IC0JaWYgKG5ld19jcnRjX3N0YXRlLT51YXBp LmNvbG9yX21nbXRfY2hhbmdlZCB8fAo+IC0JICAgIG5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlw ZSkKPiAtCQlpbnRlbF9jb2xvcl9jb21taXQobmV3X2NydGNfc3RhdGUpOwo+IC0KPiAtCWlmIChu ZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpCj4gLQkJaW50ZWxfdXBkYXRlX3BpcGVfY29uZmln KG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gLQllbHNlIGlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDkpCj4gLQkJc2tsX2RldGFjaF9zY2FsZXJzKG5ld19jcnRjX3N0YXRlKTsK PiAtCj4gLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5IHx8IElTX0JST0FEV0VMTChkZXZf cHJpdikpCj4gLQkJYmR3X3NldF9waXBlbWlzYyhuZXdfY3J0Y19zdGF0ZSk7Cj4gLQo+IC1vdXQ6 Cj4gLQlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuYXRvbWljX3VwZGF0ZV93YXRlcm1hcmtzKQo+IC0J CWRldl9wcml2LT5kaXNwbGF5LmF0b21pY191cGRhdGVfd2F0ZXJtYXJrcyhzdGF0ZSwKPiAtCQkJ CQkJCSAgIG5ld19jcnRjX3N0YXRlKTsKPiAtfQo+IC0KPiAtdm9pZCBpbnRlbF9jcnRjX2FybV9m aWZvX3VuZGVycnVuKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+IC0JCQkJICBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAtewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gLQo+IC0JaWYgKCFJU19H RU4oZGV2X3ByaXYsIDIpKQo+IC0JCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRp bmcoZGV2X3ByaXYsIGNydGMtPnBpcGUsIHRydWUpOwo+IC0KPiAtCWlmIChjcnRjX3N0YXRlLT5o YXNfcGNoX2VuY29kZXIpIHsKPiAtCQllbnVtIHBpcGUgcGNoX3RyYW5zY29kZXIgPQo+IC0JCQlp bnRlbF9jcnRjX3BjaF90cmFuc2NvZGVyKGNydGMpOwo+IC0KPiAtCQlpbnRlbF9zZXRfcGNoX2Zp Zm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBwY2hfdHJhbnNjb2RlciwgdHJ1ZSk7Cj4g LQl9Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9jcnRjX2NvbW1pdChzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAtCQkJCSAgICAgc3RydWN0IGludGVsX2Ny dGMgKmNydGMpCj4gLXsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0 ZSA9Cj4gLQkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4g LQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUgPQo+IC0JCWludGVsX2F0 b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+IC0KPiAtCWludGVsX3BpcGVf dXBkYXRlX2VuZChuZXdfY3J0Y19zdGF0ZSk7Cj4gLQo+IC0JaWYgKG5ld19jcnRjX3N0YXRlLT51 cGRhdGVfcGlwZSAmJgo+IC0JICAgICFuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSAmJgo+ IC0JICAgIG9sZF9jcnRjX3N0YXRlLT5ody5tb2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVf RkxBR19JTkhFUklURUQpCj4gLQkJaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1bihjcnRjLCBu ZXdfY3J0Y19zdGF0ZSk7Cj4gLX0KPiAtCj4gIC8qKgo+ICAgKiBpbnRlbF9wbGFuZV9kZXN0cm95 IC0gZGVzdHJveSBhIHBsYW5lCj4gICAqIEBwbGFuZTogcGxhbmUgdG8gZGVzdHJveQo+IC0tIAo+ IDIuMjAuMQoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=