From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v5 3/6] drm/i915/skl: Update plane watermarks atomically during plane updates Date: Wed, 3 Aug 2016 14:14:53 -0700 Message-ID: <20160803211453.GA871@intel.com> References: <1470163975-30467-1-git-send-email-cpaul@redhat.com> <1470163975-30467-4-git-send-email-cpaul@redhat.com> <20160802212033.GY32025@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20160802212033.GY32025@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lyude Cc: dri-devel@lists.freedesktop.org, David Airlie , 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 T24gVHVlLCBBdWcgMDIsIDIwMTYgYXQgMDI6MjA6MzNQTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90 ZToKPiBPbiBUdWUsIEF1ZyAwMiwgMjAxNiBhdCAwMjo1Mjo1MVBNIC0wNDAwLCBMeXVkZSB3cm90 ZToKPiA+IFRoYW5rcyB0byBWaWxsZSBmb3Igc3VnZ2VzdGluZyB0aGlzIGFzIGEgcG90ZW50aWFs IHNvbHV0aW9uIHRvIHBpcGUKPiA+IHVuZGVycnVucyBvbiBTa3lsYWtlLgo+ID4gCj4gPiBPbiBT a3lsYWtlIGFsbCBvZiB0aGUgcmVnaXN0ZXJzIGZvciBjb25maWd1cmluZyBwbGFuZXMsIGluY2x1 ZGluZyB0aGUKPiA+IHJlZ2lzdGVycyBmb3IgY29uZmlndXJpbmcgdGhlaXIgd2F0ZXJtYXJrcywg YXJlIGRvdWJsZSBidWZmZXJlZC4gTmV3Cj4gPiB2YWx1ZXMgd3JpdHRlbiB0byB0aGVtIHdvbid0 IHRha2UgZWZmZWN0IHVudGlsIHNhaWQgcmVnaXN0ZXJzIGFyZQo+ID4gImFybWVkIiwgd2hpY2gg aXMgZG9uZSBieSB3cml0aW5nIHRvIHRoZSBQTEFORV9TVVJGIChvciBpbiB0aGUgY2FzZSBvZgo+ ID4gY3Vyc29yIHBsYW5lcywgdGhlIENVUkJBU0UgcmVnaXN0ZXIpIHJlZ2lzdGVyLgo+ID4gCj4g PiBXaXRoIHRoaXMgaW4gbWluZCwgdXAgdW50aWwgbm93IHdlJ3ZlIGJlZW4gdXBkYXRpbmcgd2F0 ZXJtYXJrcyBvbiBza2wKPiA+IGxpa2UgdGhpczoKPiA+IAo+ID4gICBub24tbW9kZXNldCB7Cj4g PiAgICAtIGNhbGN1bGF0ZSAoZHVyaW5nIGF0b21pYyBjaGVjayBwaGFzZSkKPiA+ICAgIC0gZmlu aXNoX2F0b21pY19jb21taXQ6Cj4gPiAgICAgIC0gaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZToKPiA+ ICAgICAgICAgLSBpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcygpCj4gPiAgICAgIC0ge3ZibGFuayBo YXBwZW5zOyBuZXcgd2F0ZXJtYXJrcyArIG9sZCBwbGFuZSB2YWx1ZXMgPT4gdW5kZXJydW4gfQo+ ID4gICAgICAtIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXNfb25fY3J0YzoKPiA+ICAg ICAgICAgLSBzdGFydCB2YmxhbmsgZXZhc2lvbgo+ID4gICAgICAgICAtIHdyaXRlIG5ldyBwbGFu ZSByZWdpc3RlcnMKPiA+ICAgICAgICAgLSBlbmQgdmJsYW5rIGV2YXNpb24KPiA+ICAgfQo+ID4g Cj4gPiAgIG9yCj4gPiAKPiA+ICAgbW9kZXNldCB7Cj4gPiAgICAtIGNhbGN1bGF0ZSAoZHVyaW5n IGF0b21pYyBjaGVjayBwaGFzZSkKPiA+ICAgIC0gZmluaXNoX2F0b21pY19jb21taXQ6Cj4gPiAg ICAgIC0gY3J0Y19lbmFibGU6Cj4gPiAgICAgICAgIC0gaW50ZWxfdXBkYXRlX3dhdGVybWFya3Mo KQo+ID4gICAgICAtIHt2YmxhbmsgaGFwcGVuczsgbmV3IHdhdGVybWFya3MgKyBvbGQgcGxhbmUg dmFsdWVzID0+IHVuZGVycnVuIH0KPiA+ICAgICAgLSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRf cGxhbmVzX29uX2NydGM6Cj4gPiAgICAgICAgIC0gc3RhcnQgdmJsYW5rIGV2YXNpb24KPiA+ICAg ICAgICAgLSB3cml0ZSBuZXcgcGxhbmUgcmVnaXN0ZXJzCj4gPiAgICAgICAgIC0gZW5kIHZibGFu ayBldmFzaW9uCj4gPiAgIH0KPiA+IAo+ID4gTm93IHdlIHVwZGF0ZSB3YXRlcm1hcmtzIGF0b21p Y2FsbHkgbGlrZSB0aGlzOgo+ID4gCj4gPiAgIG5vbi1tb2Rlc2V0IHsKPiA+ICAgIC0gY2FsY3Vs YXRlIChkdXJpbmcgYXRvbWljIGNoZWNrIHBoYXNlKQo+ID4gICAgLSBmaW5pc2hfYXRvbWljX2Nv bW1pdDoKPiA+ICAgICAgLSBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlOgo+ID4gICAgICAgICAtIGlu dGVsX3VwZGF0ZV93YXRlcm1hcmtzKCkgKHdtIHZhbHVlcyBhcmVuJ3Qgd3JpdHRlbiB5ZXQpCj4g PiAgICAgIC0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lc19vbl9jcnRjOgo+ID4gICAg ICAgICAtIHN0YXJ0IHZibGFuayBldmFzaW9uCj4gPiAgICAgICAgIC0gd3JpdGUgbmV3IHBsYW5l IHJlZ2lzdGVycwo+ID4gICAgICAgICAtIHdyaXRlIG5ldyB3bSB2YWx1ZXMKPiA+ICAgICAgICAg LSBlbmQgdmJsYW5rIGV2YXNpb24KPiA+ICAgfQo+ID4gCj4gPiAgIG1vZGVzZXQgewo+ID4gICAg LSBjYWxjdWxhdGUgKGR1cmluZyBhdG9taWMgY2hlY2sgcGhhc2UpCj4gPiAgICAtIGZpbmlzaF9h dG9taWNfY29tbWl0Ogo+ID4gICAgICAtIGNydGNfZW5hYmxlOgo+ID4gICAgICAgICAtIGludGVs X3VwZGF0ZV93YXRlcm1hcmtzKCkgKGFjdHVhbCB3bSB2YWx1ZXMgYXJlbid0IHdyaXR0ZW4KPiA+ ICAgICAgICAgICB5ZXQpCj4gPiAgICAgIC0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5l c19vbl9jcnRjOgo+ID4gICAgICAgICAtIHN0YXJ0IHZibGFuayBldmFzaW9uCj4gPiAgICAgICAg IC0gd3JpdGUgbmV3IHBsYW5lIHJlZ2lzdGVycwo+ID4gCS0gd3JpdGUgbmV3IHdtIHZhbHVlcwo+ ID4gICAgICAgICAtIGVuZCB2YmxhbmsgZXZhc2lvbgo+ID4gICB9Cj4gPiAKPiA+IFNvIHRoaXMg cGF0Y2ggbW92ZXMgYWxsIG9mIHRoZSB3YXRlcm1hcmsgd3JpdGVzIGludG8gdGhlIHJpZ2h0IHBs YWNlOwo+ID4gaW5zaWRlIG9mIHRoZSB2YmxhbmsgZXZhc2lvbiB3aGVyZSB3ZSB1cGRhdGUgYWxs IG9mIHRoZSByZWdpc3RlcnMgZm9yCj4gPiBlYWNoIHBsYW5lLiBXaGlsZSB0aGlzIHBhdGNoIGRv ZXNuJ3QgZml4IGV2ZXJ5dGhpbmcsIGl0IGRvZXMgYWxsb3cgdXMgdG8KPiA+IHVwZGF0ZSB0aGUg d2F0ZXJtYXJrIHZhbHVlcyBpbiB0aGUgd2F5IHRoZSBoYXJkd2FyZSBleHBlY3RzIHVzIHRvLgo+ ID4gCj4gPiBDaGFuZ2VzIHNpbmNlIG9yaWdpbmFsIHBhdGNoIHNlcmllczoKPiA+ICAtIFJlbW92 ZSBtdXRleF9sb2NrL211dGV4X3VubG9jayBzaW5jZSB0aGV5IGRvbid0IGRvIGFueXRoaW5nIGFu ZCB3ZSdyZQo+ID4gICAgbm90IHRvdWNoaW5nIGdsb2JhbCBzdGF0ZQo+ID4gIC0gTW92ZSBza2xf d3JpdGVfY3Vyc29yX3dtL3NrbF93cml0ZV9wbGFuZV93bSBmdW5jdGlvbnMgaW50bwo+ID4gICAg aW50ZWxfcG0uYywgbWFrZSBleHRlcm5hbGx5IHZpc2libGUKPiA+ICAtIEFkZCBza2xfd3JpdGVf cGxhbmVfd20gY2FsbHMgdG8gc2tsX3VwZGF0ZV9wbGFuZQo+ID4gIC0gRml4IGNvbmRpdGlvbmFs IGZvciBmb3IgbG9vcCBpbiBza2xfd3JpdGVfcGxhbmVfd20gKGxldmVsIDwgbWF4X2xldmVsCj4g PiAgICBzaG91bGQgYmUgbGV2ZWwgPD0gbWF4X2xldmVsKQo+ID4gIC0gTWFrZSBkaWFncmFtIGlu IGNvbW1pdCBtb3JlIGFjY3VyYXRlIHRvIHdoYXQncyBhY3R1YWxseSBoYXBwZW5pbmcKPiA+ICAt IEFkZCBGaXhlczoKPiA+IAo+ID4gQ2hhbmdlcyBzaW5jZSB2MToKPiA+ICAtIFVzZSBJU19HRU45 KCkgaW5zdGVhZCBvZiBJU19TS1lMQUtFKCkgc2luY2UgdGhlc2UgZml4ZXMgYXBwbHkgdG8gbW9y ZQo+ID4gICAgdGhlbiBqdXN0IFNreWxha2UKPiA+ICAtIFVwZGF0ZSBkZXNjcmlwdGlvbiB0byBt YWtlIGl0IGNsZWFyIHRoaXMgcGF0Y2ggZG9lc24ndCBmaXggZXZlcnl0aGluZwo+ID4gIC0gQ2hl Y2sgaWYgcGlwZXMgd2VyZSBhY3R1YWxseSBjaGFuZ2VkIGJlZm9yZSB3cml0aW5nIHdhdGVybWFy a3MKPiA+IAo+ID4gQ2hhbmdlcyBzaW5jZSB2MjoKPiA+ICAtIFdyaXRlIFBJUEVfV01fTElORVRJ TUUgZHVyaW5nIHZibGFuayBldmFzaW9uCj4gPiAKPiA+IENoYW5nZXMgc2luY2UgdjM6Cj4gPiAg LSBSZWJhc2UgYWdhaW5zdCBuZXcgU0FHViBwYXRjaCBjaGFuZ2VzCj4gPiAKPiA+IENoYW5nZXMg c2luY2UgdjQ6Cj4gPiAgLSBBZGQgYSBwYXJhbWV0ZXIgdG8gY2hvb3NlIHdoYXQgc2tsX3dtX3Zh bHVlcyBzdHJ1Y3QgdG8gdXNlIHdoZW4KPiA+ICAgIHdyaXRpbmcgbmV3IHBsYW5lIHdhdGVybWFy a3MKPiA+IAo+ID4gRml4ZXM6IDJkNDFjMGI1OWFmYyAoImRybS9pOTE1L3NrbDogU0tMIFdhdGVy bWFyayBDb21wdXRhdGlvbiIpCj4gPiBTaWduZWQtb2ZmLWJ5OiBMeXVkZSA8Y3BhdWxAcmVkaGF0 LmNvbT4KPiA+IENjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnCj4gPiBDYzogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IENjOiBEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KPiA+IENjOiBSYWRoYWtyaXNobmEgU3JpcGFkYSA8 cmFkaGFrcmlzaG5hLnNyaXBhZGFAaW50ZWwuY29tPgo+ID4gQ2M6IEhhbnMgZGUgR29lZGUgPGhk ZWdvZWRlQHJlZGhhdC5jb20+Cj4gPiBDYzogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGlu dGVsLmNvbT4KCkkgaW1hZ2luZSB3ZSdsbCBldmVudHVhbGx5IHByb2JhYmx5IHdhbnQgdG8gY3Jl YXRlIGEgbmV3IGRpc3BsYXkgdmZ1bmMKdG8gaGFuZGxlIHBsYXRmb3JtLXNwZWNpZmljIHBpcGUt bGV2ZWwgc3R1ZmYgdGhhdCBuZWVkcyB0byBoYXBwZW4gdW5kZXIKdmJsYW5rIGV2YXNpb24gKGxp a2UgdGhlIHNjYWxlcnMgYW5kIGxpbmV0aW1lIFdNIHdlIGhhdmUgdG9kYXkpIHRvIGtlZXAKdGhl IGNvZGUgY2xlYW47IG1heWJlIGFkZCBhIFRPRE8gY29tbWVudCB0byB0aGF0IGVmZmVjdD8KCkFu eXdheSwgdGhpcyBsb29rcyBnb29kIGVub3VnaCBmb3Igbm93LCBzbwoKUmV2aWV3ZWQtYnk6IE1h dHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Cgo+ID4gLS0tCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDggKysrKysKPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgNSArKysrCj4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYyAgICAgIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgIHwgIDYgKysr Kwo+ID4gIDQgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0p Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IGluZGV4IDc2YmE3 OWYuLjc5ZDE0NmMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4gQEAgLTI5ODAsNiArMjk4MCw3IEBAIHN0YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1h cnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4g IAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwo+ID4g IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKPiA+ ICsJc3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRldl9wcml2LT53bS5za2xfcmVzdWx0czsK PiA+ICAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ID4gIAl1MzIgcGxhbmVfY3RsLCBz dHJpZGVfZGl2LCBzdHJpZGU7Cj4gPiAgCXUzMiB0aWxlX2hlaWdodCwgcGxhbmVfb2Zmc2V0LCBw bGFuZV9zaXplOwo+ID4gQEAgLTMwMzEsNiArMzAzMiw5IEBAIHN0YXRpYyB2b2lkIHNreWxha2Vf dXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiAgCWludGVs X2NydGMtPmFkanVzdGVkX3ggPSB4X29mZnNldDsKPiA+ICAJaW50ZWxfY3J0Yy0+YWRqdXN0ZWRf eSA9IHlfb2Zmc2V0Owo+ID4gIAo+ID4gKwlpZiAod20tPmRpcnR5X3BpcGVzICYgZHJtX2NydGNf bWFzaygmaW50ZWxfY3J0Yy0+YmFzZSkpCj4gPiArCSAgICBza2xfd3JpdGVfcGxhbmVfd20oaW50 ZWxfY3J0Yywgd20sIDApOwo+ID4gKwo+ID4gIAlJOTE1X1dSSVRFKFBMQU5FX0NUTChwaXBlLCAw KSwgcGxhbmVfY3RsKTsKPiA+ICAJSTkxNV9XUklURShQTEFORV9PRkZTRVQocGlwZSwgMCksIHBs YW5lX29mZnNldCk7Cj4gPiAgCUk5MTVfV1JJVEUoUExBTkVfU0laRShwaXBlLCAwKSwgcGxhbmVf c2l6ZSk7Cj4gPiBAQCAtMTAyNDMsOSArMTAyNDcsMTMgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRh dGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UsCj4gPiAgCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ID4gKwlzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAq d20gPSAmZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRzOwo+ID4gIAlpbnQgcGlwZSA9IGludGVsX2Ny dGMtPnBpcGU7Cj4gPiAgCXVpbnQzMl90IGNudGwgPSAwOwo+ID4gIAo+ID4gKwlpZiAoSVNfR0VO OShkZXZfcHJpdikgJiYgd20tPmRpcnR5X3BpcGVzICYgZHJtX2NydGNfbWFzayhjcnRjKSkKPiA+ ICsJCXNrbF93cml0ZV9jdXJzb3Jfd20oaW50ZWxfY3J0Yywgd20pOwo+ID4gKwo+ID4gIAlpZiAo cGxhbmVfc3RhdGUgJiYgcGxhbmVfc3RhdGUtPnZpc2libGUpIHsKPiA+ICAJCWNudGwgPSBNQ1VS U09SX0dBTU1BX0VOQUJMRTsKPiA+ICAJCXN3aXRjaCAocGxhbmVfc3RhdGUtPmJhc2UuY3J0Y193 KSB7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gaW5kZXggNmIwNTMyYS4uMWI0NDRk MyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTE3MTEsNiArMTcx MSwxMSBAQCB2b2lkIHNrbF9kZGJfZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiA+ICAJCQkgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAvKiBv dXQgKi8pOwo+ID4gIGludCBza2xfZW5hYmxlX3NhZ3Yoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KTsKPiA+ICBpbnQgc2tsX2Rpc2FibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOwo+ID4gK3ZvaWQgc2tsX3dyaXRlX2N1cnNvcl93bShzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiA+ICsJCQkgY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMg KndtKTsKPiA+ICt2b2lkIHNrbF93cml0ZV9wbGFuZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YywKPiA+ICsJCQljb25zdCBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20sCj4gPiArCQkJ aW50IHBsYW5lKTsKPiA+ICB1aW50MzJfdCBpbGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4gPiAgYm9vbCBpbGtfZGlzYWJsZV9s cF93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+ICBpbnQgc2FuaXRpemVfcmM2X29wdGlv bihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBlbmFibGVfcmM2KTsKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gaW5kZXggN2ZkMjk5ZS4uNTNhZGNiZiAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+IEBAIC0zNzk4LDYgKzM3OTgsNDcgQEAgc3Rh dGljIHZvaWQgc2tsX2RkYl9lbnRyeV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gPiAgCQlJOTE1X1dSSVRFKHJlZywgMCk7Cj4gPiAgfQo+ID4gIAo+ID4gK3ZvaWQg c2tsX3dyaXRlX3BsYW5lX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ID4gKwkJ CWNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSwKPiA+ICsJCQlpbnQgcGxhbmUpCj4gPiAr ewo+ID4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmaW50ZWxfY3J0Yy0+YmFzZTsKPiA+ICsJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiA+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gKwlpbnQgbGV2ZWwsIG1heF9s ZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2KTsKPiA+ICsJZW51bSBwaXBlIHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwo+ID4gKwo+ID4gKwlpZiAoISh3bS0+ZGlydHlfcGlwZXMgJiBkcm1fY3J0 Y19tYXNrKGNydGMpKSkKPiA+ICsJCXJldHVybjsKPiA+ICsKPiA+ICsJSTkxNV9XUklURShQSVBF X1dNX0xJTkVUSU1FKHBpcGUpLCB3bS0+d21fbGluZXRpbWVbcGlwZV0pOwo+IAo+IEkgdGhpbmsg SSBtZW50aW9uZWQgdGhpcyBvbiB0aGUgcHJldmlvdXMgdmVyc2lvbiwgYnV0IGlmIHdlIHByb2dy YW0gdGhpcwo+IGhlcmUgdGhlbiBpdCBvbmx5IGdldHMgcHJvZ3JhbW1lZCB3aGVuIGEgcGxhbmUg aXMgYmVpbmcgdXBkYXRlZC4gIEl0J3MKPiBwb3NzaWJsZSB0aGF0IHdlIGNvdWxkIGhhdmUgdGhl IGxpbmV0aW1lIHZhbHVlIGNoYW5nZSBkdWUgdG8gYSBzY2FsZXIKPiB1cGRhdGUgb3IgYSBtb2Rl c2V0LCBidXQgd2l0aG91dCBjb3JyZXNwb25kaW5nIHBsYW5lIHVwZGF0ZXMgKGUuZy4sCj4gbWF5 YmUgYWxsIHBsYW5lcyBhcmUgb2ZmKS4gIFNvIHdlIHByb2JhYmx5IG5lZWQgdG8gbWFrZSBzdXJl IHRoaXMgdmFsdWUKPiBnZXRzIHdyaXR0ZW4gb3V0c2lkZSB0aGUgcGxhbmUgdXBkYXRlcyAoYnV0 IHN0aWxsIHVuZGVyIHZibGFuayBldmFzaW9uKS4KPiAKPiA+ICsKPiA+ICsJZm9yIChsZXZlbCA9 IDA7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwrKykgewo+ID4gKwkJSTkxNV9XUklURShQTEFO RV9XTShwaXBlLCBwbGFuZSwgbGV2ZWwpLAo+ID4gKwkJCSAgIHdtLT5wbGFuZVtwaXBlXVtwbGFu ZV1bbGV2ZWxdKTsKPiA+ICsJfQo+ID4gKwlJOTE1X1dSSVRFKFBMQU5FX1dNX1RSQU5TKHBpcGUs IHBsYW5lKSwgd20tPnBsYW5lX3RyYW5zW3BpcGVdW3BsYW5lXSk7Cj4gCj4gSSBub3RpY2UgdGhh dCB5b3UgbW92ZWQgdGhlIEREQiB1cGRhdGUgaW50byBza2xfd3JpdGVfY3Vyc29yX3dtKCkgZG93 bgo+IGJlbG93LCBidXQgZGlkbid0IG1vdmUgdGhlIHBsYW5lIEREQiB1cGRhdGUgaW4gaGVyZS4g IEkgcmVhbGl6ZSB5b3UKPiByZW1lZHkgdGhhdCBpbiBwYXRjaCAjNiB3aGVyZSB5b3UgZmluYWxs eSBmaXggdXAgdGhlIGZsdXNoaW5nIG9yZGVyLCBidXQKPiB0aGUgaW5jb25zaXN0ZW5jeSBiZXR3 ZWVuIGhvdyBjdXJzb3IgdnMgIWN1cnNvciBwbGFuZXMgYXJlIGhhbmRsZWQgc2VlbXMKPiBjb25m dXNpbmcuICBDYW4gd2UgZWl0aGVyIG1vdmUgdGhlIHBsYW5lIEREQiB1cGRhdGUgaGVyZSBpbiB0 aGlzIHBhdGNoCj4gKHdlIGRvbid0IGZsdXNoIHByb3Blcmx5IHlldCwgYnV0IHdlJ3JlIHJlYWxs eSBubyB3b3JzZSBvZmYgdGhhbiB3ZQo+IGFscmVhZHkgYXJlKSwgb3IgY2FuIHdlIGRlZmVyIHRo ZSBtb3ZlIG9mIHRoZSBjdXJzb3IgRERCIHRvIHBhdGNoIDYgdG8KPiBrZWVwIHRoZW0gY29uc2lz dGVudD8KPiAKPiAKPiBNYXR0Cj4gCj4gPiArfQo+ID4gKwo+ID4gK3ZvaWQgc2tsX3dyaXRlX2N1 cnNvcl93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiA+ICsJCQkgY29uc3Qgc3Ry dWN0IHNrbF93bV92YWx1ZXMgKndtKQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gJmludGVsX2NydGMtPmJhc2U7Cj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj LT5kZXY7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGV2KTsKPiA+ICsJaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldik7 Cj4gPiArCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiA+ICsKPiA+ICsJZm9y IChsZXZlbCA9IDA7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwrKykgewo+ID4gKwkJSTkxNV9X UklURShDVVJfV00ocGlwZSwgbGV2ZWwpLAo+ID4gKwkJCSAgIHdtLT5wbGFuZVtwaXBlXVtQTEFO RV9DVVJTT1JdW2xldmVsXSk7Cj4gPiArCX0KPiA+ICsJSTkxNV9XUklURShDVVJfV01fVFJBTlMo cGlwZSksIHdtLT5wbGFuZV90cmFuc1twaXBlXVtQTEFORV9DVVJTT1JdKTsKPiA+ICsKPiA+ICsJ c2tsX2RkYl9lbnRyeV93cml0ZShkZXZfcHJpdiwgQ1VSX0JVRl9DRkcocGlwZSksCj4gPiArCQkJ ICAgICZ3bS0+ZGRiLnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl0pOwo+ID4gK30KPiA+ICsKPiA+ ICBzdGF0aWMgdm9pZCBza2xfd3JpdGVfd21fdmFsdWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiA+ICAJCQkJY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKm5ldykKPiA+ ICB7Cj4gPiBAQCAtMzgwNSw3ICszODQ2LDcgQEAgc3RhdGljIHZvaWQgc2tsX3dyaXRlX3dtX3Zh bHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjOwo+ID4gIAo+ID4gIAlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0Yykg ewo+ID4gLQkJaW50IGksIGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldik7 Cj4gPiArCQlpbnQgaTsKPiA+ICAJCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiA+ICAK PiA+ICAJCWlmICgobmV3LT5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2soJmNydGMtPmJhc2Up KSA9PSAwKQo+ID4gQEAgLTM4MTMsMjEgKzM4NTQsNiBAQCBzdGF0aWMgdm9pZCBza2xfd3JpdGVf d21fdmFsdWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJCWlmICgh Y3J0Yy0+YWN0aXZlKQo+ID4gIAkJCWNvbnRpbnVlOwo+ID4gIAo+ID4gLQkJSTkxNV9XUklURShQ SVBFX1dNX0xJTkVUSU1FKHBpcGUpLCBuZXctPndtX2xpbmV0aW1lW3BpcGVdKTsKPiA+IC0KPiA+ IC0JCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKPiA+IC0J CQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfbnVtX3BsYW5lcyhjcnRjKTsgaSsrKQo+ID4gLQkJCQlJ OTE1X1dSSVRFKFBMQU5FX1dNKHBpcGUsIGksIGxldmVsKSwKPiA+IC0JCQkJCSAgIG5ldy0+cGxh bmVbcGlwZV1baV1bbGV2ZWxdKTsKPiA+IC0JCQlJOTE1X1dSSVRFKENVUl9XTShwaXBlLCBsZXZl bCksCj4gPiAtCQkJCSAgIG5ldy0+cGxhbmVbcGlwZV1bUExBTkVfQ1VSU09SXVtsZXZlbF0pOwo+ ID4gLQkJfQo+ID4gLQkJZm9yIChpID0gMDsgaSA8IGludGVsX251bV9wbGFuZXMoY3J0Yyk7IGkr KykKPiA+IC0JCQlJOTE1X1dSSVRFKFBMQU5FX1dNX1RSQU5TKHBpcGUsIGkpLAo+ID4gLQkJCQkg ICBuZXctPnBsYW5lX3RyYW5zW3BpcGVdW2ldKTsKPiA+IC0JCUk5MTVfV1JJVEUoQ1VSX1dNX1RS QU5TKHBpcGUpLAo+ID4gLQkJCSAgIG5ldy0+cGxhbmVfdHJhbnNbcGlwZV1bUExBTkVfQ1VSU09S XSk7Cj4gPiAtCj4gPiAgCQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfbnVtX3BsYW5lcyhjcnRjKTsg aSsrKSB7Cj4gPiAgCQkJc2tsX2RkYl9lbnRyeV93cml0ZShkZXZfcHJpdiwKPiA+ICAJCQkJCSAg ICBQTEFORV9CVUZfQ0ZHKHBpcGUsIGkpLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMKPiA+IGluZGV4IDBkZTkzNWEuLjU1ZDE3M2YgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMKPiA+IEBAIC0yMDMsNiArMjAzLDkgQEAgc2tsX3VwZGF0ZV9wbGFuZShz dHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCj4gPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50 ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShkcm1fcGxhbmUpOwo+ID4gIAlzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwo+ID4gIAlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKPiA+ICsJc3RydWN0IHNrbF93 bV92YWx1ZXMgKndtID0gJmRldl9wcml2LT53bS5za2xfcmVzdWx0czsKPiA+ICsJc3RydWN0IGRy bV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjOwo+ID4gKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gPiAgCWNvbnN0IGludCBw aXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7Cj4gPiAgCWNvbnN0IGludCBwbGFuZSA9IGludGVsX3Bs YW5lLT5wbGFuZSArIDE7Cj4gPiAgCXUzMiBwbGFuZV9jdGwsIHN0cmlkZV9kaXYsIHN0cmlkZTsK PiA+IEBAIC0yMzgsNiArMjQxLDkgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpkcm1fcGxhbmUsCj4gPiAgCWNydGNfdy0tOwo+ID4gIAljcnRjX2gtLTsKPiA+ICAKPiA+ICsJ aWYgKHdtLT5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2soY3J0YykpCj4gPiArCSAgICBza2xf d3JpdGVfcGxhbmVfd20oaW50ZWxfY3J0Yywgd20sIHBsYW5lKTsKPiA+ICsKPiA+ICAJaWYgKGtl eS0+ZmxhZ3MpIHsKPiA+ICAJCUk5MTVfV1JJVEUoUExBTkVfS0VZVkFMKHBpcGUsIHBsYW5lKSwg a2V5LT5taW5fdmFsdWUpOwo+ID4gIAkJSTkxNV9XUklURShQTEFORV9LRVlNQVgocGlwZSwgcGxh bmUpLCBrZXktPm1heF92YWx1ZSk7Cj4gPiAtLSAKPiA+IDIuNy40Cj4gPiAKPiAKPiAtLSAKPiBN YXR0IFJvcGVyCj4gR3JhcGhpY3MgU29mdHdhcmUgRW5naW5lZXIKPiBJb1RHIFBsYXRmb3JtIEVu YWJsaW5nICYgRGV2ZWxvcG1lbnQKPiBJbnRlbCBDb3Jwb3JhdGlvbgo+ICg5MTYpIDM1Ni0yNzk1 CgotLSAKTWF0dCBSb3BlcgpHcmFwaGljcyBTb2Z0d2FyZSBFbmdpbmVlcgpJb1RHIFBsYXRmb3Jt IEVuYWJsaW5nICYgRGV2ZWxvcG1lbnQKSW50ZWwgQ29ycG9yYXRpb24KKDkxNikgMzU2LTI3OTUK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==