From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/4] drm/i915: Make atomic use in-flight state for CRTC active value Date: Thu, 9 Apr 2015 14:42:36 +0200 Message-ID: <20150409124236.GI12038@phenom.ffwll.local> References: <1428544614-28082-1-git-send-email-matthew.d.roper@intel.com> <1428544614-28082-2-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by gabe.freedesktop.org (Postfix) with ESMTP id A69E46E78E for ; Thu, 9 Apr 2015 05:40:39 -0700 (PDT) Received: by wiaa2 with SMTP id a2so96624332wia.0 for ; Thu, 09 Apr 2015 05:40:38 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1428544614-28082-2-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBcHIgMDgsIDIwMTUgYXQgMDY6NTY6NTFQTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90 ZToKPiBPdXIgYXRvbWljIHBsYW5lIGNvZGUgY3VycmVudGx5IHVzZXMgaW50ZWxfY3J0Yy0+YWN0 aXZlIHRvIGRldGVybWluZQo+IGhvdy93aGVuIHRvIHVwZGF0ZSBzb21lIGRlcml2ZWQgc3RhdGUg dmFsdWVzLiAgVGhpcyB3b3JrcyBmaW5lIGZvciBwdXJlCj4gcGxhbmUgdXBkYXRlcyBhdCB0aGUg bW9tZW50IHNpbmNlIHRoZSBDUlRDIHN0YXRlIGl0c2VsZiBpc24ndCBjaGFuZ2VkIGFzCj4gcGFy dCBvZiB0aGUgb3BlcmF0aW9uLiAgSG93ZXZlciBhcyB3ZSBjb252ZXJ0IG1vcmUgb2Ygb3VyIGRy aXZlcgo+IGludGVybmFscyBvdmVyIHRvIGF0b21pYyBtb2Rlc2V0dGluZywgd2UgbmVlZCB0byBs b29rIGF0IHdoZXRoZXIgdGhlCj4gQ1JUQyB3aWxsIGJlIGFjdGl2ZSBhdCB0aGUgKmVuZCogb2Yg dGhlIGF0b21pYyB0cmFuc2FjdGlvbiAod2hpY2ggbWF5Cj4gbm90IG1hdGNoIHRoZSBjdXJyZW50 bHkgY29tbWl0dGVkIHN0YXRlKS4KPiAKPiBUaGUgaW4tZmxpZ2h0IHZhbHVlIHdlIHdhbnQgdG8g dXNlIGlzIGdlbmVyYWxseSBpbiBhIGNydGNfc3RhdGUgb2JqZWN0Cj4gYXNzb2NpYXRlZCB3aXRo IG91ciB0b3AtbGV2ZWwgYXRvbWljIHRyYW5zYWN0aW9uLiAgSG93ZXZlciB0aGVyZSBhcmUgYQo+ IGZldyBjYXNlcyB3aGVyZSB0aGlzIGlzbid0IHRoZSBjYXNlOgo+IAo+ICAqIFdoaWxlIHVzaW5n IHRyYW5zaXRpb25hbCBhdG9taWMgaGVscGVycyAoYXMgd2UgYXJlIGF0IHRoZSBtb21lbnQpLAo+ ICAgIFNldFBsYW5lKCkgY2FsbHMgd2lsbCBvcGVyYXRlIG9uIG9ycGhhbmVkIHBsYW5lIHN0YXRl cyB0aGF0IGFyZW4ndAo+ICAgIHBhcnQgb2YgYSB0b3AtbGV2ZWwgYXRvbWljIHRyYW5zYWN0aW9u LiAgSW4gdGhpcyBjYXNlLCB3ZSdyZSBub3QKPiAgICB0b3VjaGluZyB0aGUgQ1JUQyBzdGF0ZSwg c28gaXQncyBmaW5lIHRvIHVzZSB0aGUgYWxyZWFkeS1jb21taXR0ZWQKPiAgICB2YWx1ZSBmcm9t IGNydGMtPnN0YXRlLgo+IAo+ICAqIFdoaWxlIHVwZGF0aW5nIHByb3BlcnRpZXMgb2YgYSBkaXNh YmxlZCBwbGFuZSwgd2UnbGwgaGF2ZSBhIHRvcC1sZXZlbAo+ICAgIGF0b21pYyBzdGF0ZSwgYnV0 IGl0IG1heSBub3QgY29udGFpbiB0aGUgQ1JUQyBzdGF0ZSB3ZSdyZSBsb29raW5nCj4gICAgZm9y LiAgT25jZSBhZ2FpbiwgdGhpcyBtZWFucyB3ZSdyZSBub3QgYWN0dWFsbHkgdG91Y2hpbmcgYW55 IENSVEMKPiAgICBzdGF0ZSBzbyBpdCdzIHNhZmUgdG8gdXNlIHRoZSB2YWx1ZSBmcm9tIGNydGMt PnN0YXRlIGRpcmVjdGx5Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcu ZC5yb3BlckBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0 b21pY19wbGFuZS5jIHwgMTEgKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jICAgICAgfCA3MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgIHwgIDMgKysKPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgICAgICAgfCAxNiArKysrKy0tCj4gIDQgZmlsZXMg Y2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiBpbmRleCA5NzZiODkxLi45MGM0YTgy IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiBAQCAt MTExLDEyICsxMTEsMTcgQEAgc3RhdGljIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIHsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0 YXRlLT5jcnRjOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7Cj4gKwlzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19zdGF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9wbGFu ZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gIAlzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUoc3RhdGUpOwo+ ICsJYm9vbCBhY3RpdmU7Cj4gIAo+ICAJY3J0YyA9IGNydGMgPyBjcnRjIDogcGxhbmUtPmNydGM7 Cj4gIAlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgCj4gKwlpbnRlbF9jcnRj X3N0YXRlID0gaW50ZWxfY3J0Y19zdGF0ZV9mb3JfcGxhbmUoaW50ZWxfc3RhdGUpOwo+ICsJYWN0 aXZlID0gaW50ZWxfY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGU7Cj4gKwo+ICAJLyoKPiAgCSAqIEJv dGggY3J0YyBhbmQgcGxhbmUtPmNydGMgY291bGQgYmUgTlVMTCBpZiB3ZSdyZSB1cGRhdGluZyBh Cj4gIAkgKiBwcm9wZXJ0eSB3aGlsZSB0aGUgcGxhbmUgaXMgZGlzYWJsZWQuICBXZSBkb24ndCBh Y3R1YWxseSBoYXZlCj4gQEAgLTE0MywxMCArMTQ4LDggQEAgc3RhdGljIGludCBpbnRlbF9wbGFu ZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkvKiBDbGlwIGFsbCBw bGFuZXMgdG8gQ1JUQyBzaXplLCBvciAweDAgaWYgQ1JUQyBpcyBkaXNhYmxlZCAqLwo+ICAJaW50 ZWxfc3RhdGUtPmNsaXAueDEgPSAwOwo+ICAJaW50ZWxfc3RhdGUtPmNsaXAueTEgPSAwOwo+IC0J aW50ZWxfc3RhdGUtPmNsaXAueDIgPQo+IC0JCWludGVsX2NydGMtPmFjdGl2ZSA/IGludGVsX2Ny dGMtPmNvbmZpZy0+cGlwZV9zcmNfdyA6IDA7Cj4gLQlpbnRlbF9zdGF0ZS0+Y2xpcC55MiA9Cj4g LQkJaW50ZWxfY3J0Yy0+YWN0aXZlID8gaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oIDog MDsKPiArCWludGVsX3N0YXRlLT5jbGlwLngyID0gYWN0aXZlID8gaW50ZWxfY3J0Y19zdGF0ZS0+ cGlwZV9zcmNfdyA6IDA7Cj4gKwlpbnRlbF9zdGF0ZS0+Y2xpcC55MiA9IGFjdGl2ZSA/IGludGVs X2NydGNfc3RhdGUtPnBpcGVfc3JjX2ggOiAwOwo+ICAKPiAgCS8qCj4gIAkgKiBEaXNhYmxpbmcg YSBwbGFuZSBpcyBhbHdheXMgb2theTsgd2UganVzdCBuZWVkIHRvIHVwZGF0ZQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA3YmZlMmFmLi44OGIwZjY5IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMjU2Miw2ICsxMjU2Miw1MyBA QCBpbnRlbF9jbGVhbnVwX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJfQo+ ICB9Cj4gIAo+ICsvKioKPiArICogaW50ZWxfY3J0Y19zdGF0ZV9mb3JfcGxhbmUgLSBPYnRhaW4g Q1JUQyBzdGF0ZSBmb3IgYSBwbGFuZQo+ICsgKiBAcHN0YXRlOiBwbGFuZSBzdGF0ZSB0byBsb29r dXAgY29ycmVzcG9uZGluZyBjcnRjIHN0YXRlIGZvcgo+ICsgKgo+ICsgKiBXaGVuIHdvcmtpbmcg d2l0aCBhIHRvcC1sZXZlbCBhdG9taWMgdHJhbnNhY3Rpb24gKGRybV9hdG9taWNfc3RhdGUpLAo+ ICsgKiBhIENSVEMgc3RhdGUgc2hvdWxkIGJlIHByZXNlbnQgdGhhdCBjb3JyZXNwb25kcyB0byB0 aGUgcHJvdmlkZWQKPiArICogcGxhbmUgc3RhdGU7IHRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgYSBx dWljayB3YXkgdG8gZmV0Y2ggdGhhdAo+ICsgKiBDUlRDIHN0YXRlLiAgSW4gY2FzZXMgd2hlcmUg d2UgaGF2ZSBhIHBsYW5lIHN0YXRlIHVuYXNzb2NpYXRlZCB3aXRoIGFueQo+ICsgKiB0b3AtbGV2 ZWwgYXRvbWljIHRyYW5zYWN0aW9uIChlLmcuLCB3aGlsZSB1c2luZyB0aGUgdHJhbnNpdGlvbmFs IGF0b21pYwo+ICsgKiBoZWxwZXJzKSwgdGhlIGN1cnJlbnQgQ1JUQyBzdGF0ZSBmcm9tIGNydGMt PnN0YXRlIHdpbGwgYmUgcmV0dXJuZWQKPiArICogaW5zdGVhZC4KPiArICovCj4gK3N0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICoKPiAraW50ZWxfY3J0Y19zdGF0ZV9mb3JfcGxhbmUoc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpwc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSA9IHBzdGF0ZS0+YmFzZS5zdGF0ZTsKPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxh bmUgPSB0b19pbnRlbF9wbGFuZShwc3RhdGUtPmJhc2UucGxhbmUpOwo+ICsJc3RydWN0IGRybV9j cnRjICpjcnRjID0gaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUocHN0YXRlLT5iYXNlLnBsYW5lLT5k ZXYsCj4gKwkJCQkJCQlwbGFuZS0+cGlwZSk7Cj4gKwlpbnQgaTsKPiArCj4gKwkvKgo+ICsJICog V2hpbGUgdXNpbmcgdHJhbnNpdGlvbmFsIHBsYW5lIGhlbHBlcnMsIHdlIG1heSBub3QgaGF2ZSBh IHRvcC1sZXZlbAo+ICsJICogYXRvbWljIHRyYW5zYWN0aW9uLiAgT2YgY291cnNlIHRoYXQgYWxz byBtZWFucyB0aGF0IHdlJ3JlIG5vdAo+ICsJICogYWN0dWFsbHkgdG91Y2hpbmcgQ1JUQyBzdGF0 ZSwgc28ganVzdCByZXR1cm4gdGhlIGN1cnJlbnRseQo+ICsJICogY29tbWl0dGVkIHN0YXRlLgo+ ICsJICovCgpJbW8gdGhpcyBuZWVkcyBhIGJpZyBGSVhNRSBhdCB0aGUgdG9wIG9mIHRoZSBjb21t ZW50IDstKQoKPiArCWlmICghc3RhdGUpCj4gKwkJcmV0dXJuIHRvX2ludGVsX2NydGNfc3RhdGUo Y3J0Yy0+c3RhdGUpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+ZGV2LT5tb2RlX2Nv bmZpZy5udW1fY3J0YzsgaSsrKSB7Cj4gKwkJaWYgKCFzdGF0ZS0+Y3J0Y3NbaV0pCj4gKwkJCWNv bnRpbnVlOwo+ICsKPiArCQlpZiAodG9faW50ZWxfY3J0YyhzdGF0ZS0+Y3J0Y3NbaV0pLT5waXBl ID09IHBsYW5lLT5waXBlKQo+ICsJCQlyZXR1cm4gdG9faW50ZWxfY3J0Y19zdGF0ZShzdGF0ZS0+ Y3J0Y19zdGF0ZXNbaV0pOwo+ICsJfQo+ICsKPiArCS8qCj4gKwkgKiBXZSBtYXkgaGF2ZSBhIHBs YW5lIHN0YXRlIHdpdGhvdXQgYSBjb3JyZXNwb25kaW5nIENSVEMgc3RhdGUgaWYKPiArCSAqIHdl J3JlIHVwZGF0aW5nIGEgcHJvcGVydHkgb2YgYSBkaXNhYmxlZCBwbGFuZS4gIEFnYWluLCBqdXN0 IHVzaW5nCj4gKwkgKiB0aGUgYWxyZWFkeS1jb21taXR0ZWQgc3RhdGUgZm9yIHRoaXMgcGxhbmUn cyBDUlRDIHNob3VsZCBiZSBmaW5lCj4gKwkgKiBzaW5jZSB3ZSdyZSBub3QgYWN0dWFsbHkgdG91 Y2hpbmcgdGhlIENSVEMgaGVyZS4KPiArCSAqLwoKSXMgdGhpcyByZWFsbHkgc3RpbGwgdHJ1ZSB3 aXRoIEFuZGVyJ3MgcGF0Y2hlcz8gSWYgdGhlIHVkcGF0ZSBpcyBwYXJ0IG9mIGEKZHJtX2F0b21p Y19zdGF0ZSBzdHJ1Y3R1cmUsIHRoZW4gd2Ugc2hvdWxkIGFsd2F5cyBoYXZlIHRoZSBjb3JyZXNw b25kaW5nCmNydGMgc3RhdGUgaGFuZHkgSSB0aGluay4gV2hpY2ggY2FzZXMgc3RpbGwgZmFpbCB0 aGlzIGFzc3VtcHRpb24/Cgo+ICsJcmV0dXJuIHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3Rh dGUpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50Cj4gIGludGVsX2NoZWNrX3ByaW1hcnlfcGxhbmUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJCSAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpzdGF0ZSkKPiBAQCAtMTI1NzAsMTUgKzEyNjE3LDIwIEBAIGludGVsX2NoZWNrX3ByaW1hcnlf cGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gc3RhdGUtPmJhc2UuY3J0YzsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+ ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NydGNfc3RhdGU7Cj4gIAlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOwo+ICAJc3RydWN0IGRybV9yZWN0 ICpkZXN0ID0gJnN0YXRlLT5kc3Q7Cj4gIAlzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9ICZzdGF0ZS0+ c3JjOwo+ICAJY29uc3Qgc3RydWN0IGRybV9yZWN0ICpjbGlwID0gJnN0YXRlLT5jbGlwOwo+ICsJ Ym9vbCBhY3RpdmU7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCWNydGMgPSBjcnRjID8gY3J0YyA6IHBs YW5lLT5jcnRjOwo+ICAJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gIAo+ICsJ aW50ZWxfY3J0Y19zdGF0ZSA9IGludGVsX2NydGNfc3RhdGVfZm9yX3BsYW5lKHN0YXRlKTsKPiAr CWFjdGl2ZSA9IGludGVsX2NydGNfc3RhdGUtPmJhc2UuZW5hYmxlOwoKVGhpcyBpcyB0aGUgd3Jv bmcgb25lIEkgdGhpbmsuIGRybV9jcnRjX3N0YXRlLT5lbmFibGUgaXMgdGhlIGxvZ2ljYWwKZW5h Ymxpbmcgc3RhdGUsIGkuZS4gd2hldGhlciB0aGVyZSdzIGNvbm5lY3RvcnMgY29ubmVjdGVkIHRv IHRoZSBjcnRjIGFuZAphIG1vZGUgc2V0LiBzdGF0ZS0+YWN0aXZlIGlzIHRoZSBkZXNpcmVkIGh3 IHN0YXRlLCBpLmUuIHRha2luZyBkcG1zIGFuZAphbGwgdGhhdCBpbnRvIGFjY291bnQsIGFuZCBo ZW5jZSByZWZsZWN0aW5nIG91ciBpbnRlbF9jcnRjLT5hY3RpdmUgaHcKdHJhY2tpbmcgYm9vbGVh biAodGhleSBtYXRjaCBuYW1lcyBpbnRlbnRpb25hbGx5KS4KCkRvIHdlIHN0aWxsIG1pc3MgY2Fz ZXMgd2hlcmUgd2UgdXBkYXRlIGNydGNfc3RhdGUtPmFjdGl2ZSBvciB3aGF0J3MgdGhlCnJlYXNv biBmb3IgcGlja2luZyAtPmVuYWJsZSBoZXJlPwotRGFuaWVsCgo+ICsKPiAgCXJldCA9IGRybV9w bGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKHBsYW5lLCBjcnRjLCBmYiwKPiAgCQkJCQkgICAgc3Jj LCBkZXN0LCBjbGlwLAo+ICAJCQkJCSAgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCj4g QEAgLTEyNTg3LDcgKzEyNjM5LDcgQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gLQlp ZiAoaW50ZWxfY3J0Yy0+YWN0aXZlKSB7Cj4gKwlpZiAoYWN0aXZlKSB7Cj4gIAkJaW50ZWxfY3J0 Yy0+YXRvbWljLndhaXRfZm9yX2ZsaXBzID0gdHJ1ZTsKPiAgCj4gIAkJLyoKPiBAQCAtMTI2Mzgs MTEgKzEyNjkwLDE2IEBAIGludGVsX2NvbW1pdF9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7Cj4gIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJ c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqaW50ZWxfY3J0Y19zdGF0ZTsKPiAgCXN0cnVjdCBkcm1fcmVjdCAqc3JjID0gJnN0YXRlLT5z cmM7Cj4gKwlib29sIGFjdGl2ZTsKPiAgCj4gIAljcnRjID0gY3J0YyA/IGNydGMgOiBwbGFuZS0+ Y3J0YzsKPiAgCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICAKPiArCWludGVs X2NydGNfc3RhdGUgPSBpbnRlbF9jcnRjX3N0YXRlX2Zvcl9wbGFuZShzdGF0ZSk7Cj4gKwlhY3Rp dmUgPSBpbnRlbF9jcnRjX3N0YXRlLT5iYXNlLmVuYWJsZTsKPiArCj4gIAlwbGFuZS0+ZmIgPSBm YjsKPiAgCWNydGMtPnggPSBzcmMtPngxID4+IDE2Owo+ICAJY3J0Yy0+eSA9IHNyYy0+eTEgPj4g MTY7Cj4gQEAgLTEyODU0LDEyICsxMjkxMSwxNyBAQCBpbnRlbF9jaGVja19jdXJzb3JfcGxhbmUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAg PSAmc3RhdGUtPmNsaXA7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50 ZWxfZmJfb2JqKGZiKTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+ICsJc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NydGNfc3RhdGU7Cj4gIAl1bnNpZ25lZCBzdHJp ZGU7Cj4gKwlib29sIGFjdGl2ZTsKPiAgCWludCByZXQ7Cj4gIAo+ICAJY3J0YyA9IGNydGMgPyBj cnRjIDogcGxhbmUtPmNydGM7Cj4gIAlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsK PiAgCj4gKwlpbnRlbF9jcnRjX3N0YXRlID0gaW50ZWxfY3J0Y19zdGF0ZV9mb3JfcGxhbmUoc3Rh dGUpOwo+ICsJYWN0aXZlID0gaW50ZWxfY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGU7Cj4gKwo+ICAJ cmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9jaGVja191cGRhdGUocGxhbmUsIGNydGMsIGZiLAo+ICAJ CQkJCSAgICBzcmMsIGRlc3QsIGNsaXAsCj4gIAkJCQkJICAgIERSTV9QTEFORV9IRUxQRVJfTk9f U0NBTElORywKPiBAQCAtMTI4OTIsNyArMTI5NTQsNyBAQCBpbnRlbF9jaGVja19jdXJzb3JfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAl9Cj4gIAo+ICBmaW5pc2g6Cj4gLQlpZiAo aW50ZWxfY3J0Yy0+YWN0aXZlKSB7Cj4gKwlpZiAoYWN0aXZlKSB7Cj4gIAkJaWYgKHBsYW5lLT5z dGF0ZS0+Y3J0Y193ICE9IHN0YXRlLT5iYXNlLmNydGNfdykKPiAgCQkJaW50ZWxfY3J0Yy0+YXRv bWljLnVwZGF0ZV93bSA9IHRydWU7Cj4gIAo+IEBAIC0xMjkxMCwxMiArMTI5NzIsMTcgQEAgaW50 ZWxfY29tbWl0X2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCXN0cnVj dCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNydGM7Cj4gIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gcGxhbmUtPmRldjsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+ ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NydGNfc3RhdGU7Cj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKHN0YXRlLT5iYXNlLmZiKTsK PiAgCXVpbnQzMl90IGFkZHI7Cj4gKwlib29sIGFjdGl2ZTsKPiAgCj4gIAljcnRjID0gY3J0YyA/ IGNydGMgOiBwbGFuZS0+Y3J0YzsKPiAgCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMp Owo+ICAKPiArCWludGVsX2NydGNfc3RhdGUgPSBpbnRlbF9jcnRjX3N0YXRlX2Zvcl9wbGFuZShz dGF0ZSk7Cj4gKwlhY3RpdmUgPSBpbnRlbF9jcnRjX3N0YXRlLT5iYXNlLmVuYWJsZTsKPiArCj4g IAlwbGFuZS0+ZmIgPSBzdGF0ZS0+YmFzZS5mYjsKPiAgCWNydGMtPmN1cnNvcl94ID0gc3RhdGUt PmJhc2UuY3J0Y194Owo+ICAJY3J0Yy0+Y3Vyc29yX3kgPSBzdGF0ZS0+YmFzZS5jcnRjX3k7Cj4g QEAgLTEyOTM0LDcgKzEzMDAxLDcgQEAgaW50ZWxfY29tbWl0X2N1cnNvcl9wbGFuZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKPiAgCWludGVsX2NydGMtPmN1cnNvcl9ibyA9IG9iajsKPiAgdXBk YXRlOgo+ICAKPiAtCWlmIChpbnRlbF9jcnRjLT5hY3RpdmUpCj4gKwlpZiAoYWN0aXZlKQo+ICAJ CWludGVsX2NydGNfdXBkYXRlX2N1cnNvcihjcnRjLCBzdGF0ZS0+dmlzaWJsZSk7Cj4gIH0KPiAg Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBlZmE1M2Q1Li43MWUwMTUyIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtOTk4LDYgKzk5OCw5IEBAIGludGVsX3Jv dGF0aW9uXzkwX29yXzI3MCh1bnNpZ25lZCBpbnQgcm90YXRpb24pCj4gIAo+ICBib29sIGludGVs X3dtX25lZWRfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCQkgIHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnN0YXRlKTsKPiArc3RydWN0IGludGVsX2NydGNfc3RhdGUgKgo+ICtp bnRlbF9jcnRjX3N0YXRlX2Zvcl9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBzdGF0 ZSk7Cj4gKwo+ICAKPiAgLyogc2hhcmVkIGRwbGwgZnVuY3Rpb25zICovCj4gIHN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbCAqaW50ZWxfY3J0Y190b19zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0Yyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCBhNGMwYTA0 Li4yMDE2ZTc4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBAQCAtODY0 LDYgKzg2NCw3IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPiAgCQkJIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4gIHsKPiAgCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhzdGF0ZS0+YmFzZS5j cnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICppbnRlbF9jcnRjX3N0YXRlOwo+ICAJ c3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsK PiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmJhc2UuZmI7Cj4gIAlpbnQg Y3J0Y194LCBjcnRjX3k7Cj4gQEAgLTg3NSw5ICs4NzYsMTMgQEAgaW50ZWxfY2hlY2tfc3ByaXRl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJaW50IGhzY2FsZSwgdnNjYWxlOwo+ ICAJaW50IG1heF9zY2FsZSwgbWluX3NjYWxlOwo+ICAJaW50IHBpeGVsX3NpemU7Cj4gKwlib29s IGFjdGl2ZTsKPiAgCj4gIAlpbnRlbF9jcnRjID0gaW50ZWxfY3J0YyA/IGludGVsX2NydGMgOiB0 b19pbnRlbF9jcnRjKHBsYW5lLT5jcnRjKTsKPiAgCj4gKwlpbnRlbF9jcnRjX3N0YXRlID0gaW50 ZWxfY3J0Y19zdGF0ZV9mb3JfcGxhbmUoc3RhdGUpOwo+ICsJYWN0aXZlID0gaW50ZWxfY3J0Y19z dGF0ZS0+YmFzZS5lbmFibGU7Cj4gKwo+ICAJaWYgKCFmYikgewo+ICAJCXN0YXRlLT52aXNpYmxl ID0gZmFsc2U7Cj4gIAkJZ290byBmaW5pc2g7Cj4gQEAgLTEwMjQsOSArMTAyOSw5IEBAIGZpbmlz aDoKPiAgCSAqLwo+ICAJc3RhdGUtPmhpZGVzX3ByaW1hcnkgPSBmYiAhPSBOVUxMICYmIGRybV9y ZWN0X2VxdWFscyhkc3QsIGNsaXApICYmCj4gIAkJIWNvbG9ya2V5X2VuYWJsZWQoaW50ZWxfcGxh bmUpOwo+IC0JV0FSTl9PTihzdGF0ZS0+aGlkZXNfcHJpbWFyeSAmJiAhc3RhdGUtPnZpc2libGUg JiYgaW50ZWxfY3J0Yy0+YWN0aXZlKTsKPiArCVdBUk5fT04oc3RhdGUtPmhpZGVzX3ByaW1hcnkg JiYgIXN0YXRlLT52aXNpYmxlICYmIGFjdGl2ZSk7Cj4gIAo+IC0JaWYgKGludGVsX2NydGMtPmFj dGl2ZSkgewo+ICsJaWYgKGFjdGl2ZSkgewo+ICAJCWlmIChpbnRlbF9jcnRjLT5wcmltYXJ5X2Vu YWJsZWQgPT0gc3RhdGUtPmhpZGVzX3ByaW1hcnkpCj4gIAkJCWludGVsX2NydGMtPmF0b21pYy53 YWl0X2Zvcl9mbGlwcyA9IHRydWU7Cj4gIAo+IEBAIC0xMDYyLDE4ICsxMDY3LDIzIEBAIGludGVs X2NvbW1pdF9zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIHsKPiAgCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNydGM7Cj4gIAlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YzsKPiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICppbnRlbF9jcnRj X3N0YXRlOwo+ICAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3Bs YW5lKHBsYW5lKTsKPiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmJhc2Uu ZmI7Cj4gIAlpbnQgY3J0Y194LCBjcnRjX3k7Cj4gIAl1bnNpZ25lZCBpbnQgY3J0Y193LCBjcnRj X2g7Cj4gIAl1aW50MzJfdCBzcmNfeCwgc3JjX3ksIHNyY193LCBzcmNfaDsKPiArCWJvb2wgYWN0 aXZlOwo+ICAKPiAgCWNydGMgPSBjcnRjID8gY3J0YyA6IHBsYW5lLT5jcnRjOwo+ICAJaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gIAo+ICsJaW50ZWxfY3J0Y19zdGF0ZSA9IGlu dGVsX2NydGNfc3RhdGVfZm9yX3BsYW5lKHN0YXRlKTsKPiArCWFjdGl2ZSA9IGludGVsX2NydGNf c3RhdGUtPmJhc2UuZW5hYmxlOwo+ICsKPiAgCXBsYW5lLT5mYiA9IGZiOwo+ICAKPiAtCWlmIChp bnRlbF9jcnRjLT5hY3RpdmUpIHsKPiArCWlmIChhY3RpdmUpIHsKPiAgCQlpbnRlbF9jcnRjLT5w cmltYXJ5X2VuYWJsZWQgPSAhc3RhdGUtPmhpZGVzX3ByaW1hcnk7Cj4gIAo+ICAJCWlmIChzdGF0 ZS0+dmlzaWJsZSkgewo+IC0tIAo+IDEuOC41LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUg RW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==