From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/4] drm/i915: Make atomic use in-flight state for CRTC active value Date: Thu, 9 Apr 2015 16:18:56 +0300 Message-ID: <20150409131856.GT17410@intel.com> 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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 3588F6E79F for ; Thu, 9 Apr 2015 06:19:06 -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 X2NydGNfc3RhdGUtPnBpcGVfc3JjX2ggOiAwOwoKV2UgZGVwZW5kIG9uIHRoZSBjbGlwcGluZyB0 byBrZWVwIHBsYW5lcyBmcm9tIGdldHRpbmcgZW5hYmxlZCBvbiBhCmRpc2FibGVkIHBpcGUuIFNv IEkgdGhpbmsgdGhpcyBpcyBnb2luZyB0byBibG93IHVwLgoKPiAgCj4gIAkvKgo+ICAJICogRGlz YWJsaW5nIGEgcGxhbmUgaXMgYWx3YXlzIG9rYXk7IHdlIGp1c3QgbmVlZCB0byB1cGRhdGUKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggN2JmZTJhZi4uODhiMGY2OSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMTI1NjIsNiArMTI1 NjIsNTMgQEAgaW50ZWxfY2xlYW51cF9wbGFuZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK PiAgCX0KPiAgfQo+ICAKPiArLyoqCj4gKyAqIGludGVsX2NydGNfc3RhdGVfZm9yX3BsYW5lIC0g T2J0YWluIENSVEMgc3RhdGUgZm9yIGEgcGxhbmUKPiArICogQHBzdGF0ZTogcGxhbmUgc3RhdGUg dG8gbG9va3VwIGNvcnJlc3BvbmRpbmcgY3J0YyBzdGF0ZSBmb3IKPiArICoKPiArICogV2hlbiB3 b3JraW5nIHdpdGggYSB0b3AtbGV2ZWwgYXRvbWljIHRyYW5zYWN0aW9uIChkcm1fYXRvbWljX3N0 YXRlKSwKPiArICogYSBDUlRDIHN0YXRlIHNob3VsZCBiZSBwcmVzZW50IHRoYXQgY29ycmVzcG9u ZHMgdG8gdGhlIHByb3ZpZGVkCj4gKyAqIHBsYW5lIHN0YXRlOyB0aGlzIGZ1bmN0aW9uIHByb3Zp ZGVzIGEgcXVpY2sgd2F5IHRvIGZldGNoIHRoYXQKPiArICogQ1JUQyBzdGF0ZS4gIEluIGNhc2Vz IHdoZXJlIHdlIGhhdmUgYSBwbGFuZSBzdGF0ZSB1bmFzc29jaWF0ZWQgd2l0aCBhbnkKPiArICog dG9wLWxldmVsIGF0b21pYyB0cmFuc2FjdGlvbiAoZS5nLiwgd2hpbGUgdXNpbmcgdGhlIHRyYW5z aXRpb25hbCBhdG9taWMKPiArICogaGVscGVycyksIHRoZSBjdXJyZW50IENSVEMgc3RhdGUgZnJv bSBjcnRjLT5zdGF0ZSB3aWxsIGJlIHJldHVybmVkCj4gKyAqIGluc3RlYWQuCj4gKyAqLwo+ICtz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqCj4gK2ludGVsX2NydGNfc3RhdGVfZm9yX3BsYW5lKHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHN0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUgPSBwc3RhdGUtPmJhc2Uuc3RhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGxh bmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocHN0YXRlLT5iYXNlLnBsYW5lKTsKPiArCXN0cnVj dCBkcm1fY3J0YyAqY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9waXBlKHBzdGF0ZS0+YmFzZS5w bGFuZS0+ZGV2LAo+ICsJCQkJCQkJcGxhbmUtPnBpcGUpOwo+ICsJaW50IGk7Cj4gKwo+ICsJLyoK PiArCSAqIFdoaWxlIHVzaW5nIHRyYW5zaXRpb25hbCBwbGFuZSBoZWxwZXJzLCB3ZSBtYXkgbm90 IGhhdmUgYSB0b3AtbGV2ZWwKPiArCSAqIGF0b21pYyB0cmFuc2FjdGlvbi4gIE9mIGNvdXJzZSB0 aGF0IGFsc28gbWVhbnMgdGhhdCB3ZSdyZSBub3QKPiArCSAqIGFjdHVhbGx5IHRvdWNoaW5nIENS VEMgc3RhdGUsIHNvIGp1c3QgcmV0dXJuIHRoZSBjdXJyZW50bHkKPiArCSAqIGNvbW1pdHRlZCBz dGF0ZS4KPiArCSAqLwo+ICsJaWYgKCFzdGF0ZSkKPiArCQlyZXR1cm4gdG9faW50ZWxfY3J0Y19z dGF0ZShjcnRjLT5zdGF0ZSk7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IHN0YXRlLT5kZXYtPm1v ZGVfY29uZmlnLm51bV9jcnRjOyBpKyspIHsKPiArCQlpZiAoIXN0YXRlLT5jcnRjc1tpXSkKPiAr CQkJY29udGludWU7Cj4gKwo+ICsJCWlmICh0b19pbnRlbF9jcnRjKHN0YXRlLT5jcnRjc1tpXSkt PnBpcGUgPT0gcGxhbmUtPnBpcGUpCj4gKwkJCXJldHVybiB0b19pbnRlbF9jcnRjX3N0YXRlKHN0 YXRlLT5jcnRjX3N0YXRlc1tpXSk7Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIFdlIG1heSBoYXZl IGEgcGxhbmUgc3RhdGUgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgQ1JUQyBzdGF0ZSBpZgo+ICsJ ICogd2UncmUgdXBkYXRpbmcgYSBwcm9wZXJ0eSBvZiBhIGRpc2FibGVkIHBsYW5lLiAgQWdhaW4s IGp1c3QgdXNpbmcKPiArCSAqIHRoZSBhbHJlYWR5LWNvbW1pdHRlZCBzdGF0ZSBmb3IgdGhpcyBw bGFuZSdzIENSVEMgc2hvdWxkIGJlIGZpbmUKPiArCSAqIHNpbmNlIHdlJ3JlIG5vdCBhY3R1YWxs eSB0b3VjaGluZyB0aGUgQ1JUQyBoZXJlLgo+ICsJICovCj4gKwlyZXR1cm4gdG9faW50ZWxfY3J0 Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQKPiAgaW50ZWxfY2hl Y2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkJICBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQo+IEBAIC0xMjU3MCwxNSArMTI2MTcsMjAgQEAgaW50 ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1 Y3QgZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+YmFzZS5jcnRjOwo+ICAJc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGM7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19z dGF0ZTsKPiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmJhc2UuZmI7Cj4g IAlzdHJ1Y3QgZHJtX3JlY3QgKmRlc3QgPSAmc3RhdGUtPmRzdDsKPiAgCXN0cnVjdCBkcm1fcmVj dCAqc3JjID0gJnN0YXRlLT5zcmM7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAgPSAm c3RhdGUtPmNsaXA7Cj4gKwlib29sIGFjdGl2ZTsKPiAgCWludCByZXQ7Cj4gIAo+ICAJY3J0YyA9 IGNydGMgPyBjcnRjIDogcGxhbmUtPmNydGM7Cj4gIAlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjKTsKPiAgCj4gKwlpbnRlbF9jcnRjX3N0YXRlID0gaW50ZWxfY3J0Y19zdGF0ZV9mb3Jf cGxhbmUoc3RhdGUpOwo+ICsJYWN0aXZlID0gaW50ZWxfY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGU7 Cj4gKwo+ICAJcmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9jaGVja191cGRhdGUocGxhbmUsIGNydGMs IGZiLAo+ICAJCQkJCSAgICBzcmMsIGRlc3QsIGNsaXAsCj4gIAkJCQkJICAgIERSTV9QTEFORV9I RUxQRVJfTk9fU0NBTElORywKPiBAQCAtMTI1ODcsNyArMTI2MzksNyBAQCBpbnRlbF9jaGVja19w cmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJaWYgKHJldCkKPiAgCQly ZXR1cm4gcmV0Owo+ICAKPiAtCWlmIChpbnRlbF9jcnRjLT5hY3RpdmUpIHsKPiArCWlmIChhY3Rp dmUpIHsKPiAgCQlpbnRlbF9jcnRjLT5hdG9taWMud2FpdF9mb3JfZmxpcHMgPSB0cnVlOwo+ICAK PiAgCQkvKgo+IEBAIC0xMjYzOCwxMSArMTI2OTAsMTYgQEAgaW50ZWxfY29tbWl0X3ByaW1hcnlf cGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gcGxhbmUtPmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKPiArCXN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICppbnRlbF9jcnRjX3N0YXRlOwo+ICAJc3RydWN0IGRybV9y ZWN0ICpzcmMgPSAmc3RhdGUtPnNyYzsKPiArCWJvb2wgYWN0aXZlOwo+ICAKPiAgCWNydGMgPSBj cnRjID8gY3J0YyA6IHBsYW5lLT5jcnRjOwo+ICAJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Yyk7Cj4gIAo+ICsJaW50ZWxfY3J0Y19zdGF0ZSA9IGludGVsX2NydGNfc3RhdGVfZm9yX3Bs YW5lKHN0YXRlKTsKPiArCWFjdGl2ZSA9IGludGVsX2NydGNfc3RhdGUtPmJhc2UuZW5hYmxlOwo+ ICsKPiAgCXBsYW5lLT5mYiA9IGZiOwo+ICAJY3J0Yy0+eCA9IHNyYy0+eDEgPj4gMTY7Cj4gIAlj cnRjLT55ID0gc3JjLT55MSA+PiAxNjsKPiBAQCAtMTI4NTQsMTIgKzEyOTExLDE3IEBAIGludGVs X2NoZWNrX2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCWNvbnN0IHN0 cnVjdCBkcm1fcmVjdCAqY2xpcCA9ICZzdGF0ZS0+Y2xpcDsKPiAgCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ICAJc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGM7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19zdGF0 ZTsKPiAgCXVuc2lnbmVkIHN0cmlkZTsKPiArCWJvb2wgYWN0aXZlOwo+ICAJaW50IHJldDsKPiAg Cj4gIAljcnRjID0gY3J0YyA/IGNydGMgOiBwbGFuZS0+Y3J0YzsKPiAgCWludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOwo+ICAKPiArCWludGVsX2NydGNfc3RhdGUgPSBpbnRlbF9jcnRj X3N0YXRlX2Zvcl9wbGFuZShzdGF0ZSk7Cj4gKwlhY3RpdmUgPSBpbnRlbF9jcnRjX3N0YXRlLT5i YXNlLmVuYWJsZTsKPiArCj4gIAlyZXQgPSBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3VwZGF0ZShw bGFuZSwgY3J0YywgZmIsCj4gIAkJCQkJICAgIHNyYywgZGVzdCwgY2xpcCwKPiAgCQkJCQkgICAg RFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAo+IEBAIC0xMjg5Miw3ICsxMjk1NCw3IEBAIGlu dGVsX2NoZWNrX2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCX0KPiAg Cj4gIGZpbmlzaDoKPiAtCWlmIChpbnRlbF9jcnRjLT5hY3RpdmUpIHsKPiArCWlmIChhY3RpdmUp IHsKPiAgCQlpZiAocGxhbmUtPnN0YXRlLT5jcnRjX3cgIT0gc3RhdGUtPmJhc2UuY3J0Y193KQo+ ICAJCQlpbnRlbF9jcnRjLT5hdG9taWMudXBkYXRlX3dtID0gdHJ1ZTsKPiAgCj4gQEAgLTEyOTEw LDEyICsxMjk3MiwxNyBAQCBpbnRlbF9jb21taXRfY3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmJhc2UuY3J0YzsK PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2Owo+ICAJc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGM7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3J0 Y19zdGF0ZTsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9v Ymooc3RhdGUtPmJhc2UuZmIpOwo+ICAJdWludDMyX3QgYWRkcjsKPiArCWJvb2wgYWN0aXZlOwo+ ICAKPiAgCWNydGMgPSBjcnRjID8gY3J0YyA6IHBsYW5lLT5jcnRjOwo+ICAJaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gIAo+ICsJaW50ZWxfY3J0Y19zdGF0ZSA9IGludGVsX2Ny dGNfc3RhdGVfZm9yX3BsYW5lKHN0YXRlKTsKPiArCWFjdGl2ZSA9IGludGVsX2NydGNfc3RhdGUt PmJhc2UuZW5hYmxlOwo+ICsKPiAgCXBsYW5lLT5mYiA9IHN0YXRlLT5iYXNlLmZiOwo+ICAJY3J0 Yy0+Y3Vyc29yX3ggPSBzdGF0ZS0+YmFzZS5jcnRjX3g7Cj4gIAljcnRjLT5jdXJzb3JfeSA9IHN0 YXRlLT5iYXNlLmNydGNfeTsKPiBAQCAtMTI5MzQsNyArMTMwMDEsNyBAQCBpbnRlbF9jb21taXRf Y3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJaW50ZWxfY3J0Yy0+Y3Vy c29yX2JvID0gb2JqOwo+ICB1cGRhdGU6Cj4gIAo+IC0JaWYgKGludGVsX2NydGMtPmFjdGl2ZSkK PiArCWlmIChhY3RpdmUpCj4gIAkJaW50ZWxfY3J0Y191cGRhdGVfY3Vyc29yKGNydGMsIHN0YXRl LT52aXNpYmxlKTsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGVm YTUzZDUuLjcxZTAxNTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC05OTgs NiArOTk4LDkgQEAgaW50ZWxfcm90YXRpb25fOTBfb3JfMjcwKHVuc2lnbmVkIGludCByb3RhdGlv bikKPiAgCj4gIGJvb2wgaW50ZWxfd21fbmVlZF91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCj4gIAkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpOwo+ICtzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqCj4gK2ludGVsX2NydGNfc3RhdGVfZm9yX3BsYW5lKHN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSAqcHN0YXRlKTsKPiArCj4gIAo+ICAvKiBzaGFyZWQgZHBsbCBmdW5jdGlv bnMgKi8KPiAgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICppbnRlbF9jcnRjX3RvX3NoYXJlZF9k cGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYwo+IGluZGV4IGE0YzBhMDQuLjIwMTZlNzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYwo+IEBAIC04NjQsNiArODY0LDcgQEAgaW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5l KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCQkgc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpzdGF0ZSkKPiAgewo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKHN0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmlu dGVsX2NydGNfc3RhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9f aW50ZWxfcGxhbmUocGxhbmUpOwo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0 ZS0+YmFzZS5mYjsKPiAgCWludCBjcnRjX3gsIGNydGNfeTsKPiBAQCAtODc1LDkgKzg3NiwxMyBA QCBpbnRlbF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAlp bnQgaHNjYWxlLCB2c2NhbGU7Cj4gIAlpbnQgbWF4X3NjYWxlLCBtaW5fc2NhbGU7Cj4gIAlpbnQg cGl4ZWxfc2l6ZTsKPiArCWJvb2wgYWN0aXZlOwo+ICAKPiAgCWludGVsX2NydGMgPSBpbnRlbF9j cnRjID8gaW50ZWxfY3J0YyA6IHRvX2ludGVsX2NydGMocGxhbmUtPmNydGMpOwo+ICAKPiArCWlu dGVsX2NydGNfc3RhdGUgPSBpbnRlbF9jcnRjX3N0YXRlX2Zvcl9wbGFuZShzdGF0ZSk7Cj4gKwlh Y3RpdmUgPSBpbnRlbF9jcnRjX3N0YXRlLT5iYXNlLmVuYWJsZTsKPiArCj4gIAlpZiAoIWZiKSB7 Cj4gIAkJc3RhdGUtPnZpc2libGUgPSBmYWxzZTsKPiAgCQlnb3RvIGZpbmlzaDsKPiBAQCAtMTAy NCw5ICsxMDI5LDkgQEAgZmluaXNoOgo+ICAJICovCj4gIAlzdGF0ZS0+aGlkZXNfcHJpbWFyeSA9 IGZiICE9IE5VTEwgJiYgZHJtX3JlY3RfZXF1YWxzKGRzdCwgY2xpcCkgJiYKPiAgCQkhY29sb3Jr ZXlfZW5hYmxlZChpbnRlbF9wbGFuZSk7Cj4gLQlXQVJOX09OKHN0YXRlLT5oaWRlc19wcmltYXJ5 ICYmICFzdGF0ZS0+dmlzaWJsZSAmJiBpbnRlbF9jcnRjLT5hY3RpdmUpOwo+ICsJV0FSTl9PTihz dGF0ZS0+aGlkZXNfcHJpbWFyeSAmJiAhc3RhdGUtPnZpc2libGUgJiYgYWN0aXZlKTsKPiAgCj4g LQlpZiAoaW50ZWxfY3J0Yy0+YWN0aXZlKSB7Cj4gKwlpZiAoYWN0aXZlKSB7Cj4gIAkJaWYgKGlu dGVsX2NydGMtPnByaW1hcnlfZW5hYmxlZCA9PSBzdGF0ZS0+aGlkZXNfcHJpbWFyeSkKPiAgCQkJ aW50ZWxfY3J0Yy0+YXRvbWljLndhaXRfZm9yX2ZsaXBzID0gdHJ1ZTsKPiAgCj4gQEAgLTEwNjIs MTggKzEwNjcsMjMgQEAgaW50ZWxfY29tbWl0X3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKPiAgewo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmJhc2UuY3J0 YzsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+ICsJc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmludGVsX2NydGNfc3RhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVs X3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIgPSBzdGF0ZS0+YmFzZS5mYjsKPiAgCWludCBjcnRjX3gsIGNydGNfeTsKPiAgCXVuc2ln bmVkIGludCBjcnRjX3csIGNydGNfaDsKPiAgCXVpbnQzMl90IHNyY194LCBzcmNfeSwgc3JjX3cs IHNyY19oOwo+ICsJYm9vbCBhY3RpdmU7Cj4gIAo+ICAJY3J0YyA9IGNydGMgPyBjcnRjIDogcGxh bmUtPmNydGM7Cj4gIAlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgCj4gKwlp bnRlbF9jcnRjX3N0YXRlID0gaW50ZWxfY3J0Y19zdGF0ZV9mb3JfcGxhbmUoc3RhdGUpOwo+ICsJ YWN0aXZlID0gaW50ZWxfY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGU7Cj4gKwo+ICAJcGxhbmUtPmZi ID0gZmI7Cj4gIAo+IC0JaWYgKGludGVsX2NydGMtPmFjdGl2ZSkgewo+ICsJaWYgKGFjdGl2ZSkg ewo+ICAJCWludGVsX2NydGMtPnByaW1hcnlfZW5hYmxlZCA9ICFzdGF0ZS0+aGlkZXNfcHJpbWFy eTsKPiAgCj4gIAkJaWYgKHN0YXRlLT52aXNpYmxlKSB7Cj4gLS0gCj4gMS44LjUuMQo+IAo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmls bGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=