From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v3 15/19] drm/i915: atomic plane updates in a nutshell Date: Thu, 18 Jun 2015 07:21:16 -0700 Message-ID: <20150618142116.GH3607@intel.com> References: <1434364436-6366-1-git-send-email-maarten.lankhorst@linux.intel.com> <1434364436-6366-16-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 4955B6ECE2 for ; Thu, 18 Jun 2015 07:21:18 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1434364436-6366-16-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 List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMTUsIDIwMTUgYXQgMTI6MzM6NTJQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gTm93IHRoYXQgYWxsIHBsYW5lcyBhcmUgYWRkZWQgZHVyaW5nIGEgbW9kZXNl dCB3ZSBjYW4gdXNlIHRoZQo+IGNhbGN1bGF0ZWQgY2hhbmdlcyBiZWZvcmUgZGlzYWJsaW5nIGEg cGxhbmUsIGFuZCB0aGVuIGVpdGhlciBjb21taXQKPiBvciBmb3JjZSBkaXNhYmxlIGEgcGxhbmUg YmVmb3JlIGRpc2FibGluZyB0aGUgY3J0Yy4KPiAKPiBUaGUgY29kZSBpcyBzaGFyZWQgd2l0aCBh dG9taWNfYmVnaW4vZmx1c2gsIGV4Y2VwdCB3YXRlcm1hcmsgdXBkYXRpbmcKPiBhbmQgdmJsYW5r IGV2YXNpb24gYXJlIG5vdCB1c2VkLgo+IAo+IFRoaXMgaXMgbmVlZGVkIGZvciBwcm9wZXIgYXRv bWljIHN1c3BlbmQvcmVzdW1lIHN1cHBvcnQuCj4gCj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5m cmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODY4Cj4gU2lnbmVkLW9mZi1ieTogTWFh cnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTAzICsrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nw cml0ZS5jICB8ICAgNCArLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDg0 IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRl eCBjYzRjYTQ5NzA3MTYuLmJlYjY5MjgxZjQ1YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiBAQCAtMjIxNywyOCArMjIxNyw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rp c2FibGVfcGlwZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCQlpbnRlbF93YWl0X2Zvcl9w aXBlX29mZihjcnRjKTsKPiAgfQo+ICAKPiAtLyoqCj4gLSAqIGludGVsX2VuYWJsZV9wcmltYXJ5 X2h3X3BsYW5lIC0gZW5hYmxlIHRoZSBwcmltYXJ5IHBsYW5lIG9uIGEgZ2l2ZW4gcGlwZQo+IC0g KiBAcGxhbmU6ICBwbGFuZSB0byBiZSBlbmFibGVkCj4gLSAqIEBjcnRjOiBjcnRjIGZvciB0aGUg cGxhbmUKPiAtICoKPiAtICogRW5hYmxlIEBwbGFuZSBvbiBAY3J0YywgbWFraW5nIHN1cmUgdGhh dCB0aGUgcGlwZSBpcyBydW5uaW5nIGZpcnN0Lgo+IC0gKi8KPiAtc3RhdGljIHZvaWQgaW50ZWxf ZW5hYmxlX3ByaW1hcnlfaHdfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gLQkJCQkJ ICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gLXsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBwbGFuZS0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjKTsKPiAtCj4gLQkvKiBJZiB0aGUgcGlwZSBpc24ndCBlbmFibGVkLCB3ZSBj YW4ndCBwdW1wIHBpeGVscyBhbmQgbWF5IGhhbmcgKi8KPiAtCWFzc2VydF9waXBlX2VuYWJsZWQo ZGV2X3ByaXYsIGludGVsX2NydGMtPnBpcGUpOwo+IC0JdG9faW50ZWxfcGxhbmVfc3RhdGUocGxh bmUtPnN0YXRlKS0+dmlzaWJsZSA9IHRydWU7Cj4gLQo+IC0JZGV2X3ByaXYtPmRpc3BsYXkudXBk YXRlX3ByaW1hcnlfcGxhbmUoY3J0YywgcGxhbmUtPmZiLAo+IC0JCQkJCSAgICAgICBjcnRjLT54 LCBjcnRjLT55KTsKPiAtfQo+IC0KPiAgc3RhdGljIGJvb2wgbmVlZF92dGRfd2Eoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgewo+ICAjaWZkZWYgQ09ORklHX0lOVEVMX0lPTU1VCj4gQEAgLTQ1 MDgsMjAgKzQ0ODYsNiBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2VuYWJsZShzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YykKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfZW5h YmxlX3Nwcml0ZV9wbGFuZXMoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+IC17Cj4gLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+IC0JZW51bSBwaXBlIHBpcGUgPSB0b19pbnRl bF9jcnRjKGNydGMpLT5waXBlOwo+IC0Jc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gLQlzdHJ1 Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lOwo+IC0KPiAtCWRybV9mb3JfZWFjaF9sZWdhY3lf cGxhbmUocGxhbmUsICZkZXYtPm1vZGVfY29uZmlnLnBsYW5lX2xpc3QpIHsKPiAtCQlpbnRlbF9w bGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPiAtCQlpZiAoaW50ZWxfcGxhbmUtPnBpcGUg PT0gcGlwZSkKPiAtCQkJaW50ZWxfcGxhbmVfcmVzdG9yZSgmaW50ZWxfcGxhbmUtPmJhc2UpOwo+ IC0JfQo+IC19Cj4gLQo+ICB2b2lkIGhzd19lbmFibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4g QEAgLTQ4MTcsMjcgKzQ3ODEsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRl KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICAJCWludGVsX3ByZV9kaXNhYmxlX3ByaW1hcnko JmNydGMtPmJhc2UpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2VuYWJsZV9w bGFuZXMoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+ZGV2Owo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGNydGMpOwo+IC0JaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+IC0KPiAt CWludGVsX2VuYWJsZV9wcmltYXJ5X2h3X3BsYW5lKGNydGMtPnByaW1hcnksIGNydGMpOwo+IC0J aW50ZWxfZW5hYmxlX3Nwcml0ZV9wbGFuZXMoY3J0Yyk7Cj4gLQlpZiAodG9faW50ZWxfcGxhbmVf c3RhdGUoY3J0Yy0+Y3Vyc29yLT5zdGF0ZSktPnZpc2libGUpCj4gLQkJaW50ZWxfY3J0Y191cGRh dGVfY3Vyc29yKGNydGMsIHRydWUpOwo+IC0KPiAtCWludGVsX3Bvc3RfZW5hYmxlX3ByaW1hcnko Y3J0Yyk7Cj4gLQo+IC0JLyoKPiAtCSAqIEZJWE1FOiBPbmNlIHdlIGdyb3cgcHJvcGVyIG51Y2xl YXIgZmxpcCBzdXBwb3J0IG91dCBvZiB0aGlzIHdlIG5lZWQKPiAtCSAqIHRvIGNvbXB1dGUgdGhl IG1hc2sgb2YgZmxpcCBwbGFuZXMgcHJlY2lzZWx5LiBGb3IgdGhlIHRpbWUgYmVpbmcKPiAtCSAq IGNvbnNpZGVyIHRoaXMgYSBmbGlwIHRvIGEgTlVMTCBwbGFuZS4KPiAtCSAqLwo+IC0JaW50ZWxf ZnJvbnRidWZmZXJfZmxpcChkZXYsIElOVEVMX0ZST05UQlVGRkVSX0FMTF9NQVNLKHBpcGUpKTsK PiAtfQo+IC0KPiAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19kaXNhYmxlX3BsYW5lcyhzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsIHVuc2lnbmVkIHBsYW5lX21hc2spCj4gIHsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gQEAgLTQ4NDUsMTAgKzQ3ODgsNiBAQCBzdGF0aWMg dm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfcGxhbmVzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdW5z aWduZWQgcGxhbmVfbWFzawo+ICAJc3RydWN0IGRybV9wbGFuZSAqcDsKPiAgCWludCBwaXBlID0g aW50ZWxfY3J0Yy0+cGlwZTsKPiAgCj4gLQlpbnRlbF9jcnRjX3dhaXRfZm9yX3BlbmRpbmdfZmxp cHMoY3J0Yyk7Cj4gLQo+IC0JaW50ZWxfcHJlX2Rpc2FibGVfcHJpbWFyeShjcnRjKTsKPiAtCj4g IAlpbnRlbF9jcnRjX2RwbXNfb3ZlcmxheV9kaXNhYmxlKGludGVsX2NydGMpOwo+ICAKPiAgCWRy bV9mb3JfZWFjaF9wbGFuZV9tYXNrKHAsIGRldiwgcGxhbmVfbWFzaykKPiBAQCAtNjI3MCw2ICs2 MjA5LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfZGlzYWJsZV9ub2F0b21pYyhzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCj4gIAlpZiAoIWludGVsX2NydGMtPmFjdGl2ZSkKPiAgCQlyZXR1cm47 Cj4gIAo+ICsJaWYgKHRvX2ludGVsX3BsYW5lX3N0YXRlKGNydGMtPnByaW1hcnktPnN0YXRlKS0+ dmlzaWJsZSkgewo+ICsJCWludGVsX2NydGNfd2FpdF9mb3JfcGVuZGluZ19mbGlwcyhjcnRjKTsK PiArCQlpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5KGNydGMpOwo+ICsJfQo+ICsKPiAgCWludGVs X2NydGNfZGlzYWJsZV9wbGFuZXMoY3J0YywgY3J0Yy0+c3RhdGUtPnBsYW5lX21hc2spOwo+ICAJ ZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19kaXNhYmxlKGNydGMpOwo+ICAKPiBAQCAtMTE3ODMsMTAg KzExNzI3LDYgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMoc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJaWYgKG9sZF9wbGFuZV9zdGF0ZS0+YmFzZS5m YiAmJiAhZmIpCj4gIAkJaW50ZWxfY3J0Yy0+YXRvbWljLmRpc2FibGVkX3BsYW5lcyB8PSAxIDw8 IGk7Cj4gIAo+IC0JLyogZG9uJ3QgcnVuIHJlc3QgZHVyaW5nIG1vZGVzZXQgeWV0ICovCj4gLQlp ZiAoIWludGVsX2NydGMtPmFjdGl2ZSB8fCBtb2RlX2NoYW5nZWQpCj4gLQkJcmV0dXJuIDA7Cj4g LQo+ICAJd2FzX3Zpc2libGUgPSBvbGRfcGxhbmVfc3RhdGUtPnZpc2libGU7Cj4gIAl2aXNpYmxl ID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpLT52aXNpYmxlOwo+ICAKPiBAQCAt MTMyNTUsMTUgKzEzMTk1LDE4IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZShzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAlkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRl KGRldiwgc3RhdGUpOwo+ICAKPiAgCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMs IGNydGNfc3RhdGUsIGkpIHsKPiArCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Yyk7Cj4gKwo+ICAJCWlmICghbmVlZHNfbW9kZXNldChjcnRjLT5zdGF0 ZSkpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlhbnlfbXMgPSB0cnVlOwo+IC0JCWlmICghY3J0 Y19zdGF0ZS0+YWN0aXZlKQo+IC0JCQljb250aW51ZTsKPiArCQlpbnRlbF9wcmVfcGxhbmVfdXBk YXRlKGludGVsX2NydGMpOwo+ICAKPiAtCQlpbnRlbF9jcnRjX2Rpc2FibGVfcGxhbmVzKGNydGMs IGNydGNfc3RhdGUtPnBsYW5lX21hc2spOwo+IC0JCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZGlz YWJsZShjcnRjKTsKPiArCQlpZiAoY3J0Y19zdGF0ZS0+YWN0aXZlKSB7Cj4gKwkJCWludGVsX2Ny dGNfZGlzYWJsZV9wbGFuZXMoY3J0YywgY3J0Y19zdGF0ZS0+cGxhbmVfbWFzayk7Cj4gKwkJCWRl dl9wcml2LT5kaXNwbGF5LmNydGNfZGlzYWJsZShjcnRjKTsKPiArCQl9Cj4gIAl9Cj4gIAo+ICAJ LyogT25seSBhZnRlciBkaXNhYmxpbmcgYWxsIG91dHB1dCBwaXBlbGluZXMgdGhhdCB3aWxsIGJl IGNoYW5nZWQgY2FuIHdlCj4gQEAgLTEzMjc3LDE1ICsxMzIyMCwxMiBAQCBzdGF0aWMgaW50IF9f aW50ZWxfc2V0X21vZGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAKPiAgCS8q IE5vdyBlbmFibGUgdGhlIGNsb2NrcywgcGxhbmUsIHBpcGUsIGFuZCBjb25uZWN0b3JzIHRoYXQg d2Ugc2V0IHVwLiAqLwo+ICAJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0 Y19zdGF0ZSwgaSkgewo+IC0JCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXNfb25fY3J0 YyhjcnRjX3N0YXRlKTsKPiAtCj4gLQkJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSB8 fCAhY3J0Yy0+c3RhdGUtPmFjdGl2ZSkKPiAtCQkJY29udGludWU7Cj4gLQo+IC0JCXVwZGF0ZV9z Y2FubGluZV9vZmZzZXQodG9faW50ZWxfY3J0YyhjcnRjKSk7Cj4gKwkJaWYgKG5lZWRzX21vZGVz ZXQoY3J0Yy0+c3RhdGUpICYmIGNydGMtPnN0YXRlLT5hY3RpdmUpIHsKPiArCQkJdXBkYXRlX3Nj YW5saW5lX29mZnNldCh0b19pbnRlbF9jcnRjKGNydGMpKTsKPiArCQkJZGV2X3ByaXYtPmRpc3Bs YXkuY3J0Y19lbmFibGUoY3J0Yyk7Cj4gKwkJfQo+ICAKPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5j cnRjX2VuYWJsZShjcnRjKTsKPiAtCQlpbnRlbF9jcnRjX2VuYWJsZV9wbGFuZXMoY3J0Yyk7Cj4g KwkJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lc19vbl9jcnRjKGNydGNfc3RhdGUpOwo+ ICAJfQo+ICAKPiAgCS8qIEZJWE1FOiBhZGQgc3VicGl4ZWwgb3JkZXIgKi8KPiBAQCAtMTM4NTgs NyArMTM3OTgsNyBAQCBpbnRlbF9jb21taXRfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKPiAgCWNydGMtPnggPSBzcmMtPngxID4+IDE2Owo+ICAJY3J0Yy0+eSA9IHNyYy0+ eTEgPj4gMTY7Cj4gIAo+IC0JaWYgKCFpbnRlbF9jcnRjLT5hY3RpdmUpCj4gKwlpZiAoIWNydGMt PnN0YXRlLT5hY3RpdmUpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCWlmIChzdGF0ZS0+dmlzaWJsZSkK PiBAQCAtMTM4ODUsNyArMTM4MjUsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRjX2Nv bW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICAKPiAtCWludGVsX3ByZV9wbGFuZV91cGRh dGUoaW50ZWxfY3J0Yyk7Cj4gKwlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpKQo+ICsJ CWludGVsX3ByZV9wbGFuZV91cGRhdGUoaW50ZWxfY3J0Yyk7CgpUbyBtYWtlIHN1cmUgSSdtIHVu ZGVyc3RhbmRpbmcuLi53ZSBtYWtlIHRoaXMgY2hhbmdlIGJlY2F1c2UKX19pbnRlbF9zZXRfbW9k ZSgpIGhhcyBhbHJlYWR5IGhhbmRsZWQgdGhlIGludGVsX3ByZV9wbGFuZV91cGRhdGUoKSBmb3IK dGhlIG1vZGVzZXQgY2FzZSwgc28gd2UncmUgb25seSB3b3JyaWVkIGFib3V0IGxlZ2FjeSBzZXRt b2RlJ3MgdGhhdApkb24ndCByZXN1bHQgaW4gYSBmdWxsIG1vZGVzZXQgKHNvIHdlIG5ldmVyIGNh bGxlZCB0aGlzIGZ1bmN0aW9uKSwgb3IKZW50cnkgdmlhIHRoZSBhdG9taWMgaW9jdGwgKHdoaWNo IGRvZXNuJ3Qgc3VwcG9ydCBmdWxsIG1vZGVzZXRzIHlldCksCnJpZ2h0PyAgQW5kIHByZXN1bWFi bHkgb25jZSB3ZSBkbyBhbGxvdyBmdWxsIG1vZGVzZXR0aW5nIHZpYSB0aGUgYXRvbWljCmlvY3Rs IGl0IHdpbGwgYWxzbyBiZSBjYWxsaW5nIGludGVsX3ByZV9wbGFuZV91cGRhdGUoKSBiZWZvcmUg Z2V0dGluZyB0bwp0aGlzIHBvaW50PwoKCk1hdHQKCj4gIAo+ICAJaWYgKGludGVsX2NydGMtPmF0 b21pYy51cGRhdGVfd20pCj4gIAkJaW50ZWxfdXBkYXRlX3dhdGVybWFya3MoY3J0Yyk7Cj4gQEAg LTEzODkzLDcgKzEzODM0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQo c3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYp Owo+ICAKPiAgCS8qIFBlcmZvcm0gdmJsYW5rIGV2YXNpb24gYXJvdW5kIGNvbW1pdCBvcGVyYXRp b24gKi8KPiAtCWlmIChjcnRjLT5zdGF0ZS0+YWN0aXZlICYmICFuZWVkc19tb2Rlc2V0KGNydGMt PnN0YXRlKSkKPiArCWlmIChjcnRjLT5zdGF0ZS0+YWN0aXZlKQo+ICAJCWludGVsX2NydGMtPmF0 b21pYy5ldmFkZSA9Cj4gIAkJCWludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KGludGVsX2NydGMsCj4g IAkJCQkJCSZpbnRlbF9jcnRjLT5hdG9taWMuc3RhcnRfdmJsX2NvdW50KTsKPiBAQCAtMTQxMDIs NyArMTQwNDMsNyBAQCBpbnRlbF9jb21taXRfY3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAo+ICAJaW50ZWxfY3J0Yy0+Y3Vyc29yX2JvID0gb2JqOwo+ICAKPiAgdXBkYXRlOgo+ IC0JaWYgKGludGVsX2NydGMtPmFjdGl2ZSkKPiArCWlmIChjcnRjLT5zdGF0ZS0+YWN0aXZlKQo+ ICAJCWludGVsX2NydGNfdXBkYXRlX2N1cnNvcihjcnRjLCBzdGF0ZS0+dmlzaWJsZSk7Cj4gIH0K PiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCBmN2ViM2JkMGE3Yzcu LjE2OGY5MGYzNDZjMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z cHJpdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gQEAg LTkyMSwxNiArOTIxLDE0IEBAIGludGVsX2NvbW1pdF9zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCj4gIAkJCSAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiAg ewo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmJhc2UuY3J0YzsKPiAtCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+ICAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9w bGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiID0gc3RhdGUtPmJhc2UuZmI7Cj4gIAo+ICAJY3J0YyA9IGNydGMgPyBjcnRjIDogcGxhbmUt PmNydGM7Cj4gLQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgCj4gIAlwbGFu ZS0+ZmIgPSBmYjsKPiAgCj4gLQlpZiAoIWludGVsX2NydGMtPmFjdGl2ZSkKPiArCWlmICghY3J0 Yy0+c3RhdGUtPmFjdGl2ZSkKPiAgCQlyZXR1cm47Cj4gIAo+ICAJaWYgKHN0YXRlLT52aXNpYmxl KSB7Cj4gLS0gCj4gMi4xLjAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAoKLS0gCk1hdHQgUm9wZXIKR3JhcGhpY3MgU29mdHdhcmUgRW5naW5l ZXIKSW9URyBQbGF0Zm9ybSBFbmFibGluZyAmIERldmVsb3BtZW50CkludGVsIENvcnBvcmF0aW9u Cig5MTYpIDM1Ni0yNzk1Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==