From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v2 07/11] drm/i915: Add a atomic evasion step to watermark programming, v2. Date: Wed, 26 Oct 2016 16:10:26 -0700 Message-ID: <20161026231026.GB5924@intel.com> References: <1477489299-25777-1-git-send-email-maarten.lankhorst@linux.intel.com> <1477489299-25777-8-git-send-email-maarten.lankhorst@linux.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 9FF1D6E95D for ; Wed, 26 Oct 2016 23:10:27 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1477489299-25777-8-git-send-email-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, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org TWlub3IgZ3JhbW1hciBmaXggaW4gdGhlIGhlYWRsaW5lLi4uaXQgc2hvdWxkIGJlICJhbiBhdG9t aWMiIHJhdGhlciB0aGFuCiJhIGF0b21pYy4iICBTb3JyeSBJIG1pc3NlZCB0aGF0IHRoZSBmaXJz dCB0aW1lIGFyb3VuZC4KCkkga25vdyBpOTE1IHRlbmRzIHRvIGJlIHNvbWV3aGF0IGxheCBhYm91 dCBhZGhlcmluZyB0byB0aGUgODAtY2hhcmFjdGVyCmxpbmUgbGltaXQsIGJ1dCB0aGUgbGluZXMg dGhhdCBhZGQgdGhlIGV4dHJhIHBhcmFtZXRlciBhcmUgc3RhcnRpbmcgdG8KZ2V0IF9yZWFsbHlf IGxvbmcgbm93LCBzbyBpdCB3b3VsZCBiZSBnb29kIHRvIHdyYXAgdGhlbSBpZiBwb3NzaWJsZS4K Ck90aGVyd2lzZSB0aGUgY2hhbmdlIGhlcmUgbG9vayBnb29kIHRvIG1lLCBzbyB3aXRoIHRoZSBt aW5vciBjb3NtZXRpYwpzdHVmZiBmaXhlZCwKClJldmlld2VkLWJ5OiBNYXR0IFJvcGVyIDxtYXR0 aGV3LmQucm9wZXJAaW50ZWwuY29tPgoKCk1hdHQKCk9uIFdlZCwgT2N0IDI2LCAyMDE2IGF0IDAz OjQxOjM1UE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+IEFsbG93IHRoZSBkcml2 ZXIgdG8gd3JpdGUgd2F0ZXJtYXJrcyBkdXJpbmcgYXRvbWljIGV2YXNpb24uCj4gVGhpcyB3aWxs IG1ha2UgaXQgcG9zc2libGUgdG8gd3JpdGUgdGhlIHdhdGVybWFya3MgaW4gYSBjbGVhbmVyCj4g d2F5IG9uIGdlbjkrLgo+IAo+IGludGVsX2F0b21pY19zdGF0ZSBpcyBub3QgdXNlZCBoZXJlIHll dCwgYnV0IHdpbGwgYmUgdXNlZCB3aGVuCj4gd2UgcHJvZ3JhbSBhbGwgd2F0ZXJtYXJrcyBhcyBh IHNlcGFyYXRlIHN0ZXAgZHVyaW5nIGV2YXNpb24uCj4gCj4gVGhpcyBhbHNvIHdyaXRlcyBsaW5l dGltZSBhbGwgdGhlIHRpbWUsIHdoaWxlIGJlZm9yZSBpdCB3YXMgb25seQo+IGRvbmUgZHVyaW5n IHBsYW5lIHVwZGF0ZXMuIFRoaXMgbG9va3MgbGlrZSB0aGlzIGNvdWxkIGJlIGEgYnVnZml4LAo+ IGJ1dCBJJ20gbm90IHN1cmUgd2hhdCBpdCBhZmZlY3RzLgo+IAo+IENoYW5nZXMgc2luY2UgdjE6 Cj4gLSBBZGQgY29tbWVudCBhYm91dCBhdG9taWMgZXZhc2lvbiB0byBjb21taXQgbWVzc2FnZS4K PiAtIFVud3JhcCBJOTE1X1dSSVRFIGNhbGwuIChMeXVkZSkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBN YWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IENj OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+IENjOiBQYXVsbyBaYW5v bmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCAgICAgIHwgIDYgKysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyB8IDIwICsrKysrKysrKy0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgICAgICB8IDE4ICsrKysrKysrKysrKysrKystLQo+ICAzIGZpbGVz IGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+IGluZGV4IDdhNjIxYzc0MjU0ZS4uN2E0NzdkNmE0ODZlIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTQ4NSw2ICs0ODUsNyBAQCBzdHJ1Y3Qgc2R2b19k ZXZpY2VfbWFwcGluZyB7Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yOwo+ICBzdHJ1Y3Qg aW50ZWxfZW5jb2RlcjsKPiArc3RydWN0IGludGVsX2F0b21pY19zdGF0ZTsKPiAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGU7Cj4gIHN0cnVjdCBpbnRlbF9pbml0aWFsX3BsYW5lX2NvbmZpZzsKPiAg c3RydWN0IGludGVsX2NydGM7Cj4gQEAgLTQ5OCw4ICs0OTksOSBAQCBzdHJ1Y3QgZHJtX2k5MTVf ZGlzcGxheV9mdW5jcyB7Cj4gIAlpbnQgKCpjb21wdXRlX2ludGVybWVkaWF0ZV93bSkoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YywKPiAgCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3c3RhdGUpOwo+ IC0Jdm9pZCAoKmluaXRpYWxfd2F0ZXJtYXJrcykoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNz dGF0ZSk7Cj4gLQl2b2lkICgqb3B0aW1pemVfd2F0ZXJtYXJrcykoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNzdGF0ZSk7Cj4gKwl2b2lkICgqaW5pdGlhbF93YXRlcm1hcmtzKShzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSk7 Cj4gKwl2b2lkICgqYXRvbWljX2V2YWRlX3dhdGVybWFya3MpKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlLCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKTsKPiArCXZvaWQg KCpvcHRpbWl6ZV93YXRlcm1hcmtzKShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSk7Cj4gIAlpbnQgKCpjb21wdXRlX2dsb2Jh bF93YXRlcm1hcmtzKShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ICAJdm9pZCAo KnVwZGF0ZV93bSkoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiAgCWludCAoKm1vZGVzZXRfY2Fs Y19jZGNsaykoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggOWVhOWEzYmMwYmMwLi40OGViMDYzNWVjMGYgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTUxNzAsNyArNTE3MCw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+ICAJICogdXMgdG8uCj4gIAkgKi8KPiAgCWlmIChkZXZf cHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3MgIT0gTlVMTCkKPiAtCQlkZXZfcHJpdi0+ ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3MocGlwZV9jb25maWcpOwo+ICsJCWRldl9wcml2LT5k aXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyh0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRl KSwgcGlwZV9jb25maWcpOwo+ICAJZWxzZSBpZiAocGlwZV9jb25maWctPnVwZGF0ZV93bV9wcmUp Cj4gIAkJaW50ZWxfdXBkYXRlX3dhdGVybWFya3MoJmNydGMtPmJhc2UpOwo+ICB9Cj4gQEAgLTUz ODQsNyArNTM4NCw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZW5hYmxlKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCWludGVsX2NvbG9yX2xvYWRfbHV0cygm cGlwZV9jb25maWctPmJhc2UpOwo+ICAKPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFs X3dhdGVybWFya3MgIT0gTlVMTCkKPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVy bWFya3MoaW50ZWxfY3J0Yy0+Y29uZmlnKTsKPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFs X3dhdGVybWFya3ModG9faW50ZWxfYXRvbWljX3N0YXRlKG9sZF9zdGF0ZSksIGludGVsX2NydGMt PmNvbmZpZyk7Cj4gIAlpbnRlbF9lbmFibGVfcGlwZShpbnRlbF9jcnRjKTsKPiAgCj4gIAlpZiAo aW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpCj4gQEAgLTU0OTAsNyArNTQ5MCw3 IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnLAo+ICAJCWludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKGNy dGMpOwo+ICAKPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3MgIT0g TlVMTCkKPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3MocGlwZV9jb25m aWcpOwo+ICsJCWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyh0b19pbnRlbF9h dG9taWNfc3RhdGUob2xkX3N0YXRlKSwgcGlwZV9jb25maWcpOwo+ICAJZWxzZQo+ICAJCWludGVs X3VwZGF0ZV93YXRlcm1hcmtzKGNydGMpOwo+ICAKPiBAQCAtMTQ1MjYsNyArMTQ1MjYsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKQo+ICAJCWludGVsX2NzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+ c3RhdGUpOwo+ICAKPiAgCQlpZiAoZGV2X3ByaXYtPmRpc3BsYXkub3B0aW1pemVfd2F0ZXJtYXJr cykKPiAtCQkJZGV2X3ByaXYtPmRpc3BsYXkub3B0aW1pemVfd2F0ZXJtYXJrcyhpbnRlbF9jc3Rh dGUpOwo+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5vcHRpbWl6ZV93YXRlcm1hcmtzKGludGVsX3N0 YXRlLCBpbnRlbF9jc3RhdGUpOwo+ICAJfQo+ICAKPiAgCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUo c3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBpKSB7Cj4gQEAgLTE0OTM0LDcgKzE0OTM0LDYg QEAgc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpj cnRjLAo+ICAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9pbnRlbF9zdGF0ZSA9Cj4gIAkJ dG9faW50ZWxfY3J0Y19zdGF0ZShvbGRfY3J0Y19zdGF0ZSk7Cj4gIAlib29sIG1vZGVzZXQgPSBu ZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKTsKPiAtCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0 Yy0+cGlwZTsKPiAgCj4gIAkvKiBQZXJmb3JtIHZibGFuayBldmFzaW9uIGFyb3VuZCBjb21taXQg b3BlcmF0aW9uICovCj4gIAlpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChpbnRlbF9jcnRjKTsKPiBA QCAtMTQ5NDcsMTQgKzE0OTQ2LDEzIEBAIHN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29t bWl0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQlpbnRlbF9jb2xvcl9sb2FkX2x1dHMoY3J0 Yy0+c3RhdGUpOwo+ICAJfQo+ICAKPiAtCWlmIChpbnRlbF9jc3RhdGUtPnVwZGF0ZV9waXBlKSB7 Cj4gKwlpZiAoaW50ZWxfY3N0YXRlLT51cGRhdGVfcGlwZSkKPiAgCQlpbnRlbF91cGRhdGVfcGlw ZV9jb25maWcoaW50ZWxfY3J0Yywgb2xkX2ludGVsX3N0YXRlKTsKPiAtCX0gZWxzZSBpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSA5KSB7Cj4gKwllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDkpCj4gIAkJc2tsX2RldGFjaF9zY2FsZXJzKGludGVsX2NydGMpOwo+ICAKPiAtCQlJOTE1 X1dSSVRFKFBJUEVfV01fTElORVRJTUUocGlwZSksCm1hPiAtCQkJICAgaW50ZWxfY3N0YXRlLT53 bS5za2wub3B0aW1hbC5saW5ldGltZSk7Cj4gLQl9Cj4gKwlpZiAoZGV2X3ByaXYtPmRpc3BsYXku YXRvbWljX2V2YWRlX3dhdGVybWFya3MpCj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuYXRvbWljX2V2 YWRlX3dhdGVybWFya3ModG9faW50ZWxfYXRvbWljX3N0YXRlKG9sZF9jcnRjX3N0YXRlLT5zdGF0 ZSksIGludGVsX2NzdGF0ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9j cnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gQEAgLTE2NDA4LDcgKzE2NDA2LDcg QEAgc3RhdGljIHZvaWQgc2FuaXRpemVfd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcyA9IHRvX2ludGVsX2NydGNfc3RhdGUo Y3N0YXRlKTsKPiAgCj4gIAkJY3MtPndtLm5lZWRfcG9zdHZibF91cGRhdGUgPSB0cnVlOwo+IC0J CWRldl9wcml2LT5kaXNwbGF5Lm9wdGltaXplX3dhdGVybWFya3MoY3MpOwo+ICsJCWRldl9wcml2 LT5kaXNwbGF5Lm9wdGltaXplX3dhdGVybWFya3ModG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRl KSwgY3MpOwo+ICAJfQo+ICAKPiAgcHV0X3N0YXRlOgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ IGluZGV4IDQxOTUzY2M0MTgwOS4uNWZmMzU4MzNiMjU4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCj4gQEAgLTQxOTksNiArNDE5OSwxNyBAQCBza2xfY29tcHV0ZV93bShzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiArc3RhdGljIHZv aWQgc2tsX2V2YWRlX2NydGNfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4g KwkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCj4gK3sKPiArCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhjc3RhdGUtPmJhc2UuY3J0Yyk7Cj4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNl LmRldik7Cj4gKwlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gPSAmY3N0YXRlLT53bS5za2wu b3B0aW1hbDsKPiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiArCj4gKwlJOTE1X1dS SVRFKFBJUEVfV01fTElORVRJTUUocGlwZSksIHBpcGVfd20tPmxpbmV0aW1lKTsKPiArfQo+ICsK PiAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsK PiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsK PiBAQCAtNDI5Miw3ICs0MzAzLDggQEAgc3RhdGljIHZvaWQgaWxrX3Byb2dyYW1fd2F0ZXJtYXJr cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlpbGtfd3JpdGVfd21fdmFs dWVzKGRldl9wcml2LCAmcmVzdWx0cyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGlsa19pbml0 aWFsX3dhdGVybWFya3Moc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKPiArc3RhdGlj IHZvaWQgaWxrX2luaXRpYWxfd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSwKPiArCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCj4gIHsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3N0YXRlLT5iYXNl LmNydGMtPmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY3N0YXRlLT5iYXNlLmNydGMpOwo+IEBAIC00MzAzLDcgKzQzMTUsOCBAQCBzdGF0aWMg dm9pZCBpbGtfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3Rh dGUpCj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT53bS53bV9tdXRleCk7Cj4gIH0KPiAgCj4g LXN0YXRpYyB2b2lkIGlsa19vcHRpbWl6ZV93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjc3RhdGUpCj4gK3N0YXRpYyB2b2lkIGlsa19vcHRpbWl6ZV93YXRlcm1hcmtzKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICsJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3N0YXRlLT5iYXNlLmNydGMpOwo+IEBAIC03 NzQxLDYgKzc3NTQsNyBAQCB2b2lkIGludGVsX2luaXRfcG0oc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7Cj4gIAkJc2tsX3NldHVwX3dt X2xhdGVuY3koZGV2KTsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfd20gPSBza2xfdXBk YXRlX3dtOwo+ICsJCWRldl9wcml2LT5kaXNwbGF5LmF0b21pY19ldmFkZV93YXRlcm1hcmtzID0g c2tsX2V2YWRlX2NydGNfd207Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9nbG9iYWxf d2F0ZXJtYXJrcyA9IHNrbF9jb21wdXRlX3dtOwo+ICAJfSBlbHNlIGlmIChIQVNfUENIX1NQTElU KGRldl9wcml2KSkgewo+ICAJCWlsa19zZXR1cF93bV9sYXRlbmN5KGRldik7Cj4gLS0gCj4gMi43 LjQKPiAKCi0tIApNYXR0IFJvcGVyCkdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCklvVEcgUGxh dGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudApJbnRlbCBDb3Jwb3JhdGlvbgooOTE2KSAzNTYt Mjc5NQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK