From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v2 4/4] drm/i915/skl: Update plane watermarks atomically during plane updates Date: Thu, 21 Jul 2016 13:57:20 -0700 Message-ID: <20160721205719.GH1579@intel.com> References: <1469129020-2680-1-git-send-email-cpaul@redhat.com> <1469129020-2680-5-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1469129020-2680-5-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lyude Cc: dri-devel@lists.freedesktop.org, Radhakrishna Sripada , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Hans de Goede , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdWwgMjEsIDIwMTYgYXQgMDM6MjM6NDBQTSAtMDQwMCwgTHl1ZGUgd3JvdGU6Cj4g VGhhbmtzIHRvIFZpbGxlIGZvciBzdWdnZXN0aW5nIHRoaXMgYXMgYSBwb3RlbnRpYWwgc29sdXRp b24gdG8gcGlwZQo+IHVuZGVycnVucyBvbiBTa3lsYWtlLgo+IAo+IE9uIFNreWxha2UgYWxsIG9m IHRoZSByZWdpc3RlcnMgZm9yIGNvbmZpZ3VyaW5nIHBsYW5lcywgaW5jbHVkaW5nIHRoZQo+IHJl Z2lzdGVycyBmb3IgY29uZmlndXJpbmcgdGhlaXIgd2F0ZXJtYXJrcywgYXJlIGRvdWJsZSBidWZm ZXJlZC4gTmV3Cj4gdmFsdWVzIHdyaXR0ZW4gdG8gdGhlbSB3b24ndCB0YWtlIGVmZmVjdCB1bnRp bCBzYWlkIHJlZ2lzdGVycyBhcmUKPiAiYXJtZWQiLCB3aGljaCBpcyBkb25lIGJ5IHdyaXRpbmcg dG8gdGhlIFBMQU5FX1NVUkYgKG9yIGluIHRoZSBjYXNlIG9mCj4gY3Vyc29yIHBsYW5lcywgdGhl IENVUkJBU0UgcmVnaXN0ZXIpIHJlZ2lzdGVyLgo+IAo+IFdpdGggdGhpcyBpbiBtaW5kLCB1cCB1 bnRpbCBub3cgd2UndmUgYmVlbiB1cGRhdGluZyB3YXRlcm1hcmtzIG9uIHNrbAo+IGxpa2UgdGhp czoKPiAKPiAgIG5vbi1tb2Rlc2V0IHsKPiAgICAtIGNhbGN1bGF0ZSAoZHVyaW5nIGF0b21pYyBj aGVjayBwaGFzZSkKPiAgICAtIGZpbmlzaF9hdG9taWNfY29tbWl0Ogo+ICAgICAgLSBpbnRlbF9w cmVfcGxhbmVfdXBkYXRlOgo+ICAgICAgICAgLSBpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcygpCj4g ICAgICAtIHt2YmxhbmsgaGFwcGVuczsgbmV3IHdhdGVybWFya3MgKyBvbGQgcGxhbmUgdmFsdWVz ID0+IHVuZGVycnVuIH0KPiAgICAgIC0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lc19v bl9jcnRjOgo+ICAgICAgICAgLSBzdGFydCB2YmxhbmsgZXZhc2lvbgo+ICAgICAgICAgLSB3cml0 ZSBuZXcgcGxhbmUgcmVnaXN0ZXJzCj4gICAgICAgICAtIGVuZCB2YmxhbmsgZXZhc2lvbgo+ICAg fQo+IAo+ICAgb3IKPiAKPiAgIG1vZGVzZXQgewo+ICAgIC0gY2FsY3VsYXRlIChkdXJpbmcgYXRv bWljIGNoZWNrIHBoYXNlKQo+ICAgIC0gZmluaXNoX2F0b21pY19jb21taXQ6Cj4gICAgICAtIGNy dGNfZW5hYmxlOgo+ICAgICAgICAgLSBpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcygpCj4gICAgICAt IHt2YmxhbmsgaGFwcGVuczsgbmV3IHdhdGVybWFya3MgKyBvbGQgcGxhbmUgdmFsdWVzID0+IHVu ZGVycnVuIH0KPiAgICAgIC0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lc19vbl9jcnRj Ogo+ICAgICAgICAgLSBzdGFydCB2YmxhbmsgZXZhc2lvbgo+ICAgICAgICAgLSB3cml0ZSBuZXcg cGxhbmUgcmVnaXN0ZXJzCj4gICAgICAgICAtIGVuZCB2YmxhbmsgZXZhc2lvbgo+ICAgfQo+IAo+ IE5vdyB3ZSB1cGRhdGUgd2F0ZXJtYXJrcyBhdG9taWNhbGx5IGxpa2UgdGhpczoKPiAKPiAgIG5v bi1tb2Rlc2V0IHsKPiAgICAtIGNhbGN1bGF0ZSAoZHVyaW5nIGF0b21pYyBjaGVjayBwaGFzZSkK PiAgICAtIGZpbmlzaF9hdG9taWNfY29tbWl0Ogo+ICAgICAgLSBpbnRlbF9wcmVfcGxhbmVfdXBk YXRlOgo+ICAgICAgICAgLSBpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcygpICh3bSB2YWx1ZXMgYXJl bid0IHdyaXR0ZW4geWV0KQo+ICAgICAgLSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVz X29uX2NydGM6Cj4gICAgICAgICAtIHN0YXJ0IHZibGFuayBldmFzaW9uCj4gICAgICAgICAtIHdy aXRlIG5ldyBwbGFuZSByZWdpc3RlcnMKPiAgICAgICAgIC0gd3JpdGUgbmV3IHdtIHZhbHVlcwo+ ICAgICAgICAgLSBlbmQgdmJsYW5rIGV2YXNpb24KPiAgIH0KPiAKPiAgIG1vZGVzZXQgewo+ICAg IC0gY2FsY3VsYXRlIChkdXJpbmcgYXRvbWljIGNoZWNrIHBoYXNlKQo+ICAgIC0gZmluaXNoX2F0 b21pY19jb21taXQ6Cj4gICAgICAtIGNydGNfZW5hYmxlOgo+ICAgICAgICAgLSBpbnRlbF91cGRh dGVfd2F0ZXJtYXJrcygpIChhY3R1YWwgd20gdmFsdWVzIGFyZW4ndCB3cml0dGVuCj4gICAgICAg ICAgIHlldCkKPiAgICAgIC0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lc19vbl9jcnRj Ogo+ICAgICAgICAgLSBzdGFydCB2YmxhbmsgZXZhc2lvbgo+ICAgICAgICAgLSB3cml0ZSBuZXcg cGxhbmUgcmVnaXN0ZXJzCj4gCS0gd3JpdGUgbmV3IHdtIHZhbHVlcwo+ICAgICAgICAgLSBlbmQg dmJsYW5rIGV2YXNpb24KPiAgIH0KPiAKPiBTbyB0aGlzIHBhdGNoIG1vdmVzIGFsbCBvZiB0aGUg d2F0ZXJtYXJrIHdyaXRlcyBpbnRvIHRoZSByaWdodCBwbGFjZTsKPiBpbnNpZGUgb2YgdGhlIHZi bGFuayBldmFzaW9uIHdoZXJlIHdlIHVwZGF0ZSBhbGwgb2YgdGhlIHJlZ2lzdGVycyBmb3IKPiBl YWNoIHBsYW5lLiBXaGlsZSB0aGlzIHBhdGNoIGRvZXNuJ3QgZml4IGV2ZXJ5dGhpbmcsIGl0IGRv ZXMgYWxsb3cgdXMgdG8KPiB1cGRhdGUgdGhlIHdhdGVybWFyayB2YWx1ZXMgaW4gdGhlIHdheSB0 aGUgaGFyZHdhcmUgZXhwZWN0cyB1cyB0by4KPiAKPiBDaGFuZ2VzIHNpbmNlIG9yaWdpbmFsIHBh dGNoIHNlcmllczoKPiAgLSBSZW1vdmUgbXV0ZXhfbG9jay9tdXRleF91bmxvY2sgc2luY2UgdGhl eSBkb24ndCBkbyBhbnl0aGluZyBhbmQgd2UncmUKPiAgICBub3QgdG91Y2hpbmcgZ2xvYmFsIHN0 YXRlCj4gIC0gTW92ZSBza2xfd3JpdGVfY3Vyc29yX3dtL3NrbF93cml0ZV9wbGFuZV93bSBmdW5j dGlvbnMgaW50bwo+ICAgIGludGVsX3BtLmMsIG1ha2UgZXh0ZXJuYWxseSB2aXNpYmxlCj4gIC0g QWRkIHNrbF93cml0ZV9wbGFuZV93bSBjYWxscyB0byBza2xfdXBkYXRlX3BsYW5lCj4gIC0gRml4 IGNvbmRpdGlvbmFsIGZvciBmb3IgbG9vcCBpbiBza2xfd3JpdGVfcGxhbmVfd20gKGxldmVsIDwg bWF4X2xldmVsCj4gICAgc2hvdWxkIGJlIGxldmVsIDw9IG1heF9sZXZlbCkKPiAgLSBNYWtlIGRp YWdyYW0gaW4gY29tbWl0IG1vcmUgYWNjdXJhdGUgdG8gd2hhdCdzIGFjdHVhbGx5IGhhcHBlbmlu Zwo+ICAtIEFkZCBGaXhlczoKPiAKPiBDaGFuZ2VzIHNpbmNlIHYxOgo+ICAtIFVzZSBJU19HRU45 KCkgaW5zdGVhZCBvZiBJU19TS1lMQUtFKCkgc2luY2UgdGhlc2UgZml4ZXMgYXBwbHkgdG8gbW9y ZQo+ICAgIHRoZW4ganVzdCBTa3lsYWtlCj4gIC0gVXBkYXRlIGRlc2NyaXB0aW9uIHRvIG1ha2Ug aXQgY2xlYXIgdGhpcyBwYXRjaCBkb2Vzbid0IGZpeCBldmVyeXRoaW5nCj4gIC0gQ2hlY2sgaWYg cGlwZXMgd2VyZSBhY3R1YWxseSBjaGFuZ2VkIGJlZm9yZSB3cml0aW5nIHdhdGVybWFya3MKPiAK PiBGaXhlczogMmQ0MWMwYjU5YWZjICgiZHJtL2k5MTUvc2tsOiBTS0wgV2F0ZXJtYXJrIENvbXB1 dGF0aW9uIikKPiBTaWduZWQtb2ZmLWJ5OiBMeXVkZSA8Y3BhdWxAcmVkaGF0LmNvbT4KPiBDYzog c3RhYmxlQHZnZXIua2VybmVsLm9yZwo+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGlu dGVsLmNvbT4KPiBDYzogUmFkaGFrcmlzaG5hIFNyaXBhZGEgPHJhZGhha3Jpc2huYS5zcmlwYWRh QGludGVsLmNvbT4KPiBDYzogSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KPiBD YzogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDUgKysrKwo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMiArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jICAgICAgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgIHwgIDIgKysKPiAgNCBmaWxl cyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggNzhiZWI3ZS4uZDkzZDAxNCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMzAzMSw2ICszMDMxLDggQEAg c3RhdGljIHZvaWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKPiAgCWludGVsX2NydGMtPmFkanVzdGVkX3ggPSB4X29mZnNldDsKPiAgCWludGVs X2NydGMtPmFkanVzdGVkX3kgPSB5X29mZnNldDsKPiAgCj4gKwlza2xfd3JpdGVfcGxhbmVfd20o aW50ZWxfY3J0YywgMCk7Cj4gKwo+ICAJSTkxNV9XUklURShQTEFORV9DVEwocGlwZSwgMCksIHBs YW5lX2N0bCk7Cj4gIAlJOTE1X1dSSVRFKFBMQU5FX09GRlNFVChwaXBlLCAwKSwgcGxhbmVfb2Zm c2V0KTsKPiAgCUk5MTVfV1JJVEUoUExBTkVfU0laRShwaXBlLCAwKSwgcGxhbmVfc2l6ZSk7Cj4g QEAgLTEwMjQyLDYgKzEwMjQ0LDkgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfY3Vyc29yKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UsCj4gIAlpbnQgcGlwZSA9IGludGVsX2NydGMt PnBpcGU7Cj4gIAl1aW50MzJfdCBjbnRsID0gMDsKPiAgCj4gKwlpZiAoSVNfR0VOOShkZXZfcHJp dikpCj4gKwkJc2tsX3dyaXRlX2N1cnNvcl93bShpbnRlbF9jcnRjKTsKPiArCj4gIAlpZiAocGxh bmVfc3RhdGUgJiYgcGxhbmVfc3RhdGUtPnZpc2libGUpIHsKPiAgCQljbnRsID0gTUNVUlNPUl9H QU1NQV9FTkFCTEU7Cj4gIAkJc3dpdGNoIChwbGFuZV9zdGF0ZS0+YmFzZS5jcnRjX3cpIHsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGU3NGQ4NTEuLmYxZjU0ZDkgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xNzA5LDYgKzE3MDksOCBAQCB2b2lkIGlsa193 bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIHZvaWQgc2tsX3dtX2dl dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgdm9pZCBza2xfZGRiX2dldF9o d19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgc3RydWN0 IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiIC8qIG91dCAqLyk7Cj4gK3ZvaWQgc2tsX3dyaXRlX2N1 cnNvcl93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0Yyk7Cj4gK3ZvaWQgc2tsX3dyaXRl X3BsYW5lX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLCBpbnQgcGxhbmUpOwo+ICB1 aW50MzJfdCBpbGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZyk7Cj4gIGJvb2wgaWxrX2Rpc2FibGVfbHBfd20oc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4gIGludCBzYW5pdGl6ZV9yYzZfb3B0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgaW50IGVuYWJsZV9yYzYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ IGluZGV4IDk0MjFkOTIuLjQxZjM3OWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBA QCAtMzY4MCw2ICszNjgwLDQ1IEBAIHN0YXRpYyB2b2lkIHNrbF9kZGJfZW50cnlfd3JpdGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCUk5MTVfV1JJVEUocmVnLCAwKTsK PiAgfQo+ICAKPiArdm9pZCBza2xfd3JpdGVfcGxhbmVfd20oc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMsCj4gKwkJCWludCBwbGFuZSkKPiArewo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gJmludGVsX2NydGMtPmJhc2U7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ ZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp Owo+ICsJc3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRldl9wcml2LT53bS5za2xfcmVzdWx0 czsKPiArCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOwo+ICsJ ZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICsKPiArCWlmICghKHdtLT5kaXJ0 eV9waXBlcyAmIGRybV9jcnRjX21hc2soY3J0YykpKQo+ICsJCXJldHVybjsKPiArCj4gKwlmb3Ig KGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4X2xldmVsOyBsZXZlbCsrKSB7Cj4gKwkJSTkxNV9XUklU RShQTEFORV9XTShwaXBlLCBwbGFuZSwgbGV2ZWwpLAo+ICsJCQkgICB3bS0+cGxhbmVbcGlwZV1b cGxhbmVdW2xldmVsXSk7Cj4gKwl9Cj4gKwlJOTE1X1dSSVRFKFBMQU5FX1dNX1RSQU5TKHBpcGUs IHBsYW5lKSwgd20tPnBsYW5lX3RyYW5zW3BpcGVdW3BsYW5lXSk7CgpJIHRoaW5rIHdlIG1pZ2h0 IGFzIHdlbGwgd3JpdGUgdGhlIEREQiBjaGFuZ2VzIGluIHRoaXMgZnVuY3Rpb24gdG9vLgpUaGUg RERCIGFuZCBXTSdzIHJlYWxseSBuZWVkIHRvIGJlIHdyaXR0ZW4gaW4gdGhlIHNhbWUgdmJsYW5r LCBhbmQgb3VyCnRocmVlLXN0ZXAgcGlwZSBmbHVzaGluZyBpc24ndCByZWFsbHkgZG9pbmcgdGhl IHJpZ2h0IHRoaW5nIHlldCBhbnl3YXkuCgpBZnRlciB0aGF0IHdlJ2QganVzdCBuZWVkIGEgZmlu YWwgcGF0Y2ggIzUgb2YgdGhpcyBzZXJpZXMgdG8gY2hhbmdlIG91cgpwaXBlIGl0ZXJhdGlvbiBv cmRlciAoYW5kIGluY2x1ZGUgdGhlIG5lY2Vzc2FyeSBwaXBlIHZibGFuayB3YWl0cykuCgo+ICt9 Cj4gKwo+ICt2b2lkIHNrbF93cml0ZV9jdXJzb3Jfd20oc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMpCj4gK3sKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNl Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiArCXN0cnVjdCBza2xfd21f dmFsdWVzICp3bSA9ICZkZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHM7Cj4gKwlpbnQgbGV2ZWwsIG1h eF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2KTsKPiArCWVudW0gcGlwZSBwaXBlID0gaW50 ZWxfY3J0Yy0+cGlwZTsKPiArCj4gKwlpZiAoISh3bS0+ZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19t YXNrKGNydGMpKSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9 IG1heF9sZXZlbDsgbGV2ZWwrKykgewo+ICsJCUk5MTVfV1JJVEUoQ1VSX1dNKHBpcGUsIGxldmVs KSwKPiArCQkJICAgd20tPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl1bbGV2ZWxdKTsKPiArCX0K PiArCUk5MTVfV1JJVEUoQ1VSX1dNX1RSQU5TKHBpcGUpLCB3bS0+cGxhbmVfdHJhbnNbcGlwZV1b UExBTkVfQ1VSU09SXSk7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIHNrbF93cml0ZV93bV92YWx1 ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJY29uc3Qgc3RydWN0 IHNrbF93bV92YWx1ZXMgKm5ldykKPiAgewo+IEBAIC0zNjg3LDcgKzM3MjYsNyBAQCBzdGF0aWMg dm9pZCBza2xfd3JpdGVfd21fdmFsdWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwo+ICAKPiAgCWZvcl9lYWNoX2ludGVsX2Ny dGMoZGV2LCBjcnRjKSB7Cj4gLQkJaW50IGksIGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4 X2xldmVsKGRldik7Cj4gKwkJaW50IGk7Cj4gIAkJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBl Owo+ICAKPiAgCQlpZiAoKG5ldy0+ZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNrKCZjcnRjLT5i YXNlKSkgPT0gMCkKPiBAQCAtMzY5NywxOSArMzczNiw2IEBAIHN0YXRpYyB2b2lkIHNrbF93cml0 ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAKPiAgCQlJ OTE1X1dSSVRFKFBJUEVfV01fTElORVRJTUUocGlwZSksIG5ldy0+d21fbGluZXRpbWVbcGlwZV0p OwoKVGhpcyBwcm9iYWJseSBuZWVkcyB0byBiZSBtb3ZlZCB1bmRlciB2YmxhbmsgZXZhc2lvbiBh cyB3ZWxsLCBvdGhlcndpc2UKaXQgY2FuIGdldCB1cGRhdGVkIHZibGFuayhzKSBlYXJsaWVyIHRo YW4gdGhlIHJlc3Qgb2YgdGhlIHJlZ2lzdGVycyBhcmUKdXBkYXRlZC4KCgpNYXR0Cgo+ICAKPiAt CQlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4X2xldmVsOyBsZXZlbCsrKSB7Cj4gLQkJCWZv ciAoaSA9IDA7IGkgPCBpbnRlbF9udW1fcGxhbmVzKGNydGMpOyBpKyspCj4gLQkJCQlJOTE1X1dS SVRFKFBMQU5FX1dNKHBpcGUsIGksIGxldmVsKSwKPiAtCQkJCQkgICBuZXctPnBsYW5lW3BpcGVd W2ldW2xldmVsXSk7Cj4gLQkJCUk5MTVfV1JJVEUoQ1VSX1dNKHBpcGUsIGxldmVsKSwKPiAtCQkJ CSAgIG5ldy0+cGxhbmVbcGlwZV1bUExBTkVfQ1VSU09SXVtsZXZlbF0pOwo+IC0JCX0KPiAtCQlm b3IgKGkgPSAwOyBpIDwgaW50ZWxfbnVtX3BsYW5lcyhjcnRjKTsgaSsrKQo+IC0JCQlJOTE1X1dS SVRFKFBMQU5FX1dNX1RSQU5TKHBpcGUsIGkpLAo+IC0JCQkJICAgbmV3LT5wbGFuZV90cmFuc1tw aXBlXVtpXSk7Cj4gLQkJSTkxNV9XUklURShDVVJfV01fVFJBTlMocGlwZSksCj4gLQkJCSAgIG5l dy0+cGxhbmVfdHJhbnNbcGlwZV1bUExBTkVfQ1VSU09SXSk7Cj4gLQo+ICAJCWZvciAoaSA9IDA7 IGkgPCBpbnRlbF9udW1fcGxhbmVzKGNydGMpOyBpKyspIHsKPiAgCQkJc2tsX2RkYl9lbnRyeV93 cml0ZShkZXZfcHJpdiwKPiAgCQkJCQkgICAgUExBTkVfQlVGX0NGRyhwaXBlLCBpKSwKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IDBkZTkzNWEuLjUwMDI2ZjEgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IEBAIC0yMzgsNiArMjM4LDggQEAgc2ts X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCj4gIAljcnRjX3ctLTsK PiAgCWNydGNfaC0tOwo+ICAKPiArCXNrbF93cml0ZV9wbGFuZV93bSh0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0YyksIHBsYW5lKTsKPiArCj4gIAlpZiAoa2V5LT5mbGFncykgewo+ ICAJCUk5MTVfV1JJVEUoUExBTkVfS0VZVkFMKHBpcGUsIHBsYW5lKSwga2V5LT5taW5fdmFsdWUp Owo+ICAJCUk5MTVfV1JJVEUoUExBTkVfS0VZTUFYKHBpcGUsIHBsYW5lKSwga2V5LT5tYXhfdmFs dWUpOwo+IC0tIAo+IDIuNy40Cj4gCgotLSAKTWF0dCBSb3BlcgpHcmFwaGljcyBTb2Z0d2FyZSBF bmdpbmVlcgpJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxvcG1lbnQKSW50ZWwgQ29ycG9y YXRpb24KKDkxNikgMzU2LTI3OTUKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==