From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/2] drm/i915: rewrite FBC's atomic CRTC-choosing code Date: Fri, 23 Dec 2016 14:43:46 +0200 Message-ID: <20161223124346.GS31595@intel.com> References: <1482495839-27041-1-git-send-email-paulo.r.zanoni@intel.com> <1482495839-27041-2-git-send-email-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8EA968933D for ; Fri, 23 Dec 2016 12:43:50 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1482495839-27041-2-git-send-email-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBEZWMgMjMsIDIwMTYgYXQgMTA6MjM6NTlBTSAtMDIwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IFZpbGxlIHBvaW50ZWQgb3V0IHRoYXQgaW50ZWxfZmJjX2Nob29zZV9jcnRjKCkgaXMg aXRlcmF0aW5nIG92ZXIgYWxsCj4gcGxhbmVzIGluc3RlYWQgb2YganVzdCB0aGUgcHJpbWFyeSBw bGFuZXMuIFRoZXJlIGFyZSBubyByZWFsCj4gY29uc2VxdWVuY2VzIG9mIHRoaXMgcHJvYmxlbSBm b3IgSFNXKywgYW5kIGZvciB0aGUgb3RoZXIgcGxhdGZvcm1zIGl0Cj4ganVzdCBtZWFucyB0aGF0 IGluIHNvbWUgb2JzY3VyZSBtdWx0aS1zY3JlZW4gY2FzZXMgd2UnbGwga2VlcCBGQkMKPiBkaXNh YmxlZCB3aGVuIHdlIGNvdWxkIGhhdmUgZW5hYmxlZCBpdC4gU3RpbGwsIGl0ZXJhdGluZyBvdmVy IGFsbAo+IHBsYW5lcyBkb2Vzbid0IHNlZW0gdG8gYmUgdGhlIGJlc3QgdGhpbmcgdG8gZG8uCj4g Cj4gTXkgaW5pdGlhbCBpZGVhIHdhcyB0byBqdXN0IGFkZCBhIGNoZWNrIGZvciBwbGFuZS0+dHlw ZSBhbmQgYmUgZG9uZSwKPiBidXQgdGhlbiBJIHJlYWxpemVkIHRoYXQgaW4gY29tbWl0cyBub3Qg aW52b2x2aW5nIHRoZSBwcmltYXJ5IHBsYW5lIHdlCj4gd291bGQgcmVzZXQgY3J0Y19zdGF0ZS0+ ZW5hYmxlX2ZiYyBiYWNrIHRvIGZhbHNlIGV2ZW4gd2hlbiBGQkMgaXMKPiBlbmFibGVkLiBUaGF0 IGFsc28gd291bGRuJ3QgcmVzdWx0IGluIGEgYnVnIGR1ZSB0byB0aGUgd2F5IHRoZQo+IGVuYWJs ZV9mYmMgdmFyaWFibGUgaXMgY2hlY2tlZCwgYnV0LCBzdGlsbCwgb3VyIGNvZGUgY2FuIGJlIGJl dHRlcgo+IHRoYW4gdGhpcy4KPiAKPiBTbyBJIHdlbnQgZm9yIHRoZSBzb2x1dGlvbiB0aGF0IGlu dm9sdmVzIHRyYWNraW5nIGVuYWJsZV9mYmMgaW4gdGhlCj4gcHJpbWFyeSBwbGFuZSBzdGF0ZSBp bnN0ZWFkIG9mIHRoZSBDUlRDIHN0YXRlLiBUaGlzIHdheSwgaWYgYSBjb21taXQKPiBkb2Vzbid0 IGludm9sdmUgdGhlIHByaW1hcnkgcGxhbmUgZm9yIHRoZSBDUlRDIHdlIHdvbid0IGJlIHJlc2V0 dGluZwo+IGVuYWJsZV9mYmMgYmFjayB0byBmYWxzZSwgc28gdGhlIHZhcmlhYmxlIHdpbGwgYWx3 YXlzIHJlZmxlY3QgdGhlCj4gcmVhbGl0eS4gQW5kIHRoaXMgY2hhbmdlIGFsc28gbWFrZXMgbW9y ZSBzZW5zZSBzaW5jZSBGQkMgaXMgYWN0dWFsbHkKPiB0aWVkIHRvIHRoZSBzaW5nbGUgcGxhbmUg YW5kIG5vdCB0aGUgZnVsbCBwaXBlLiBBcyBhIGJvbnVzLCB3ZSBvbmx5Cj4gaXRlcmF0ZSBvdmVy IHRoZSBDUlRDcyBpbnN0ZWFkIG9mIGl0ZXJhdGluZyBvdmVyIGFsbCBwbGFuZXMuCj4gCj4gdjI6 Cj4gCj4gQnV0IFZpbGxlIHBvaW50ZWQgdGhhdCB0aGlzIG9ubHkgd29ya3MgcHJvcGVybHkgaWYg d2UgaGF2ZSBhIHNpbmdsZQo+IGNvbW1pdCB3aXRoIG11bHRpcGxlIENSVENzLiBJZiB3ZSBoYXZl IG11bHRpcGxlIHBhcmFsbGVsIGNvbW1pdHMsIGVhY2gKPiB3aXRoIGl0cyBvd24gQ1JUQywgd2Un bGwgZW5kIHdpdGggZW5hYmxlX2ZiYyBzZXQgdG8gdHJ1ZSBpbiBtb3JlIHRoYW4KPiBvbmUgcGxh bmUuCj4gCj4gU28gdGhlIHNvbHV0aW9uIHdhcyB0byByZW5hbWUgZW5hYmxlX2ZiYyB0byBjYW5f ZW5hYmxlX2ZiYy4gSWYgd2UganVzdAo+IGRpZCB0aGUgcmVuYW1lIGFzIHRoZSBwYXRjaCB3YXMs IHdlJ2QgZW5kIHVwIHdpdGggYSBzaW5nbGUgcGxhbmUgd2l0aAo+IGNhbl9lbmFibGVfZmJjIG9u IGNvbW1pdHMgaW52b2x2aW5nIG11bHRpcGxlIENSVENzOiB3ZSdkIGNob29zZSB0aGUKPiBiZXN0 IG9uZSwgYnV0IHdlJ2Qgc3RpbGwgZW5kIHVwIHdpdGggYSB2YXJpYWJsZSB0aGF0IGRvZXNuJ3Qg MTAwJQo+IHJlZmxlY3QgcmVhbGl0eS4KPiAKPiBTbyBpbiB0aGUgZW5kIEkgYWRvcHRlZCBWaWxs ZSdzIHN1Z2dlc3Rpb24gb2YgdGhlIGZiY19zY29yZSB2YXJpYWJsZS4KPiBBbmQgdGhlbiwgaW5z dGVhZCBvZiBjaGVja2luZyB0aGUgc2NvcmUgYXQgaW50ZWxfZmJjX2Nob29zZV9jcnRjKCkKPiBp dCBzaG91bGQgYmUgcG9zc2libGUgdG8gY2hlY2sgZm9yIHRoZSBzY29yZSBhdCBpbnRlbF9mYmNf ZW5hYmxlKCkuCj4gVGhpcyBhbGxvd3MgdXMgdG8gc2ltcGxpZnkgaW50ZWxfZmJjX2Nob29zZV9j cnRjKCkgdG8gdGhlIHBvaW50IHdoZXJlCj4gaXQgb25seSBuZWVkcyB0byBsb29rIGF0IHRoZSBn aXZlbiBwbGFuZSBpbiBvcmRlciB0byBhc3NpZ24gaXRzIHNjb3JlCj4gaW5zdGVhZCBvZiBsb29r aW5nIGF0IGV2ZXJ5IHByaW1hcnkgcGxhbmUgb24gdGhlIHNhbWUgY29tbWl0Lgo+IAo+IFdlIHN0 aWxsIG9ubHkgc2V0IHNjb3JlcyBvZiAwIGFuZCAxIGFuZCB3ZSBkb24ndCByZWFsbHkgZG8gdGhl Cj4gc2NvcmUtY2hlY2tpbmcgbG9vcC4KPiAKPiB2MzogUmViYXNlLgo+IAo+IENjOiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IFJlcG9ydGVkLWJ5OiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+IC0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgMyArLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgOCArKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2ZiYy5jICAgICB8IDg1ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDYxIGRlbGV0aW9ucygt KQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBkOGVmZmQ0Li45 MjUyN2Q2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xNDE5 MSw3ICsxNDE5MSw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IC0JaW50ZWxf ZmJjX2Nob29zZV9jcnRjKGRldl9wcml2LCBzdGF0ZSk7Cj4gIAlyZXR1cm4gY2FsY193YXRlcm1h cmtfZGF0YShzdGF0ZSk7Cj4gIH0KPiAgCj4gQEAgLTE0OTY2LDYgKzE0OTY1LDggQEAgaW50ZWxf Y2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkJcmV0dXJu IHJldDsKPiAgCX0KPiAgCj4gKwlpbnRlbF9mYmNfY2hlY2tfcGxhbmUoc3RhdGUpOwo+ICsKCldl IGhhdmUgYW5vdGhlciAncmV0dXJuIDAnIGEgbGl0dGxlIGVhcmxpZXIgaW4gdGhlIGZ1bmN0aW9u IGZvciB0aGUKInBsYW5lIGRpc2FibGUgYnkgdGhlIHVzZXIiIGNhc2UuIFByZXN1bWFibHkgd2Un bGwgd2FudCB0byB1cGRhdGUKdGhlIHNjb3JlIGluIHRoYXQgY2FzZSBhcyB3ZWxsPwoKPiAgCXJl dHVybiAwOwo+ICB9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMDI1ZTRj OC4uNzQzMDA4MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTQwNiw2ICs0 MDYsOSBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgewo+ICAJICovCj4gIAlpbnQgc2NhbGVy X2lkOwo+ICAKPiArCS8qIDA6IG5vdCBzdWl0YWJsZSBmb3IgRkJDLCAxKzogc3VpdGFibGUgZm9y IEZCQywgbW9yZSBpcyBiZXR0ZXIuICovCj4gKwl1bnNpZ25lZCBpbnQgZmJjX3Njb3JlOwo+ICsK PiAgCXN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5IGNrZXk7Cj4gIH07Cj4gIAo+IEBA IC02NTIsOCArNjU1LDYgQEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewo+ICAKPiAgCWJvb2wg aXBzX2VuYWJsZWQ7Cj4gIAo+IC0JYm9vbCBlbmFibGVfZmJjOwo+IC0KPiAgCWJvb2wgZG91Ymxl X3dpZGU7Cj4gIAo+ICAJaW50IHBibjsKPiBAQCAtMTUzNSw4ICsxNTM2LDcgQEAgc3RhdGljIGlu bGluZSB2b2lkIGludGVsX2ZiZGV2X3Jlc3RvcmVfbW9kZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAjZW5kaWYKPiAgCj4gIC8qIGludGVsX2ZiYy5jICovCj4gLXZvaWQgaW50ZWxfZmJjX2No b29zZV9jcnRjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJICAgc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiArdm9pZCBpbnRlbF9mYmNfY2hlY2tfcGxh bmUoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cj4gIGJvb2wgaW50ZWxf ZmJjX2lzX2FjdGl2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lk IGludGVsX2ZiY19wcmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zi Yy5jCj4gaW5kZXggMjZhODFhOS4uY2VkYTZmNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9mYmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zi Yy5jCj4gQEAgLTEwNDAsNjggKzEwNDAsMzIgQEAgdm9pZCBpbnRlbF9mYmNfZmx1c2goc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICB9Cj4gIAo+ICAvKioKPiAtICogaW50ZWxf ZmJjX2Nob29zZV9jcnRjIC0gc2VsZWN0IGEgQ1JUQyB0byBlbmFibGUgRkJDIG9uCj4gLSAqIEBk ZXZfcHJpdjogaTkxNSBkZXZpY2UgaW5zdGFuY2UKPiAtICogQHN0YXRlOiB0aGUgYXRvbWljIHN0 YXRlIHN0cnVjdHVyZQo+ICsgKiBpbnRlbF9mYmNfY2hlY2tfcGxhbmUgLSBjaGVjayBwbGFuZSBm b3IgRkJDIHN1aXRhYmlsaXR5Cj4gKyAqIEBwbGFuZV9zdGF0ZTogdGhlIHBsYW5lIHN0YXRlCj4g ICAqCj4gLSAqIFRoaXMgZnVuY3Rpb24gbG9va3MgYXQgdGhlIHByb3Bvc2VkIHN0YXRlIGZvciBD UlRDcyBhbmQgcGxhbmVzLCB0aGVuIGNob29zZXMKPiAtICogd2hpY2ggcGlwZSBpcyBnb2luZyB0 byBoYXZlIEZCQyBieSBzZXR0aW5nIGludGVsX2NydGNfc3RhdGUtPmVuYWJsZV9mYmMgdG8KPiAt ICogdHJ1ZS4KPiArICogVGhpcyBmdW5jdGlvbiBzaG91bGQgc2V0IGZiY19zY29yZSBiYXNlZCBv biBob3cgc3VpdGFibGUgdGhlIHBsYW5lIGlzIGZvcgo+ICsgKiBGQkMuIEZvciBub3cgdGhlIG9u bHkgc2NvcmVzIHVzZWQgYXJlIDAgYW5kIDEuCj4gICAqCj4gLSAqIExhdGVyLCBpbnRlbF9mYmNf ZW5hYmxlIGlzIGdvaW5nIHRvIGxvb2sgZm9yIHN0YXRlLT5lbmFibGVfZmJjIGFuZCB0aGVuIG1h eWJlCj4gLSAqIGVuYWJsZSBGQkMgZm9yIHRoZSBjaG9zZW4gQ1JUQy4gSWYgaXQgZG9lcywgaXQg d2lsbCBzZXQgZGV2X3ByaXYtPmZiYy5jcnRjLgo+ICsgKiBXZSdyZSBub3QgY2hhbmdpbmcgZGV2 X3ByaXYtPmZiYywgc28gdGhlcmUncyBubyBuZWVkIGZvciB0aGUgRkJDIGxvY2suCj4gICAqLwo+ IC12b2lkIGludGVsX2ZiY19jaG9vc2VfY3J0YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gLQkJCSAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArdm9pZCBp bnRlbF9mYmNfY2hlY2tfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZSkKPiAgewo+IC0Jc3RydWN0IGludGVsX2ZiYyAqZmJjID0gJmRldl9wcml2LT5mYmM7Cj4gLQlz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiAtCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlOwo+IC0JYm9vbCBjcnRjX2Nob3NlbiA9IGZhbHNlOwo+IC0JaW50IGk7Cj4gKwlzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSA9IHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lOwo+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+ZGV2KTsKPiArCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwbGFuZV9zdGF0ZS0+YmFzZS5j cnRjKTsKCldoYXQgaGFwcGVucyBpZiB3ZSBkb24ndCBoYXZlIGEgY3J0Yz8KCj4gIAo+IC0JbXV0 ZXhfbG9jaygmZmJjLT5sb2NrKTsKPiAtCj4gLQkvKiBEb2VzIHRoaXMgYXRvbWljIGNvbW1pdCBp bnZvbHZlIHRoZSBDUlRDIGN1cnJlbnRseSB0aWVkIHRvIEZCQz8gKi8KPiAtCWlmIChmYmMtPmNy dGMgJiYKPiAtCSAgICAhZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0ZSwg JmZiYy0+Y3J0Yy0+YmFzZSkpCj4gLQkJZ290byBvdXQ7Cj4gKwlwbGFuZV9zdGF0ZS0+ZmJjX3Nj b3JlID0gMDsKPiAgCj4gIAlpZiAoIWludGVsX2ZiY19jYW5fZW5hYmxlKGRldl9wcml2KSkKPiAt CQlnb3RvIG91dDsKPiAtCj4gLQkvKiBTaW1wbHkgY2hvb3NlIHRoZSBmaXJzdCBDUlRDIHRoYXQg aXMgY29tcGF0aWJsZSBhbmQgaGFzIGEgdmlzaWJsZQo+IC0JICogcGxhbmUuIFdlIGNvdWxkIGdv IGZvciBmYW5jaWVyIHNjaGVtZXMgc3VjaCBhcyBjaGVja2luZyB0aGUgcGxhbmUKPiAtCSAqIHNp emUsIGJ1dCB0aGlzIHdvdWxkIGp1c3QgYWZmZWN0IHRoZSBmZXcgcGxhdGZvcm1zIHRoYXQgZG9u J3QgdGllIEZCQwo+IC0JICogdG8gcGlwZSBvciBwbGFuZSBBLiAqLwo+IC0JZm9yX2VhY2hfcGxh bmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwgaSkgewo+IC0JCXN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfcGxhbmVfc3RhdGUgPQo+IC0JCQl0b19pbnRlbF9wbGFu ZV9zdGF0ZShwbGFuZV9zdGF0ZSk7Cj4gLQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVs X2NydGNfc3RhdGU7Cj4gLQkJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KHBsYW5lX3N0YXRlLT5jcnRjKTsKPiAtCj4gLQkJaWYgKCFpbnRlbF9wbGFuZV9zdGF0ZS0+YmFz ZS52aXNpYmxlKQo+IC0JCQljb250aW51ZTsKPiAtCj4gLQkJaWYgKGZiY19vbl9waXBlX2Ffb25s eShkZXZfcHJpdikgJiYgY3J0Yy0+cGlwZSAhPSBQSVBFX0EpCj4gLQkJCWNvbnRpbnVlOwo+IC0K PiAtCQlpZiAoZmJjX29uX3BsYW5lX2Ffb25seShkZXZfcHJpdikgJiYgY3J0Yy0+cGxhbmUgIT0g UExBTkVfQSkKPiAtCQkJY29udGludWU7Cj4gLQo+IC0JCWludGVsX2NydGNfc3RhdGUgPSB0b19p bnRlbF9jcnRjX3N0YXRlKAo+IC0JCQlkcm1fYXRvbWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRl KHN0YXRlLCAmY3J0Yy0+YmFzZSkpOwo+IC0KPiAtCQlpbnRlbF9jcnRjX3N0YXRlLT5lbmFibGVf ZmJjID0gdHJ1ZTsKPiAtCQljcnRjX2Nob3NlbiA9IHRydWU7Cj4gLQkJYnJlYWs7Cj4gLQl9Cj4g LQo+IC0JaWYgKCFjcnRjX2Nob3NlbikKPiAtCQlmYmMtPm5vX2ZiY19yZWFzb24gPSAibm8gc3Vp dGFibGUgQ1JUQyBmb3IgRkJDIjsKPiArCQlyZXR1cm47Cj4gKwlpZiAoZmJjX29uX3BpcGVfYV9v bmx5KGRldl9wcml2KSAmJiBjcnRjLT5waXBlICE9IFBJUEVfQSkKPiArCQlyZXR1cm47Cj4gKwlp ZiAoZmJjX29uX3BsYW5lX2Ffb25seShkZXZfcHJpdikgJiYgY3J0Yy0+cGxhbmUgIT0gUExBTkVf QSkKPiArCQlyZXR1cm47Cj4gKwlpZiAoIXBsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUpCj4gKwkJ cmV0dXJuOwo+ICAKPiAtb3V0Ogo+IC0JbXV0ZXhfdW5sb2NrKCZmYmMtPmxvY2spOwo+ICsJcGxh bmVfc3RhdGUtPmZiY19zY29yZSA9IDE7Cj4gIH0KPiAgCj4gIC8qKgo+IEBAIC0xMTE0LDYgKzEw NzgsMTMgQEAgdm9pZCBpbnRlbF9mYmNfY2hvb3NlX2NydGMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAgKiBwb3NzaWJsZS4gTm90aWNlIHRoYXQgaXQgZG9lc24ndCBhY3Rp dmF0ZSBGQkMuIEl0IGlzIHZhbGlkIHRvIGNhbGwKPiAgICogaW50ZWxfZmJjX2VuYWJsZSBtdWx0 aXBsZSB0aW1lcyBmb3IgdGhlIHNhbWUgcGlwZSB3aXRob3V0IGFuCj4gICAqIGludGVsX2ZiY19k aXNhYmxlIGluIHRoZSBtaWRkbGUsIGFzIGxvbmcgYXMgaXQgaXMgZGVhY3RpdmF0ZWQuCj4gKyAq Cj4gKyAqIEluIHRoZSBmdXR1cmUgdGhpcyBmdW5jdGlvbiBjb3VsZCBtYWtlIGJldHRlciB1c2Ug b2YgdGhlIGZiY19zY29yZSB2YXJpYWJsZS4KPiArICogV2UgY291bGQsIGZvciBleGFtcGxlLCBs b29wIHRocm91Z2ggYWxsIHRoZSBwcmltYXJ5IHBsYW5lcyBpbnZvbHZlZCBpbiB0aGUKPiArICog YXRvbWljIGNvbW1pdCBhbmQgb25seSBlbmFibGUgRkJDIGZvciB0aGUgcGxhbmUgd2l0aCB0aGUg YmVzdCBmYmNfc2NvcmUuIFdlCj4gKyAqIGNvdWxkIGFsc28gdHJ5IHRvIGRvIHNvbWUgc2NoZW1l IHdoZXJlIGEgcGxhbmUgd2l0aCBiZXR0ZXIgc2NvcmUgdGFrZXMgb3Zlcgo+ICsgKiBGQkMgZnJv bSBhbm90aGVyIHBsYW5lLCBidXQgb3VyIGRyaXZlciBjdXJyZW50bHkgY2FuJ3QgaGFuZGxlIHRo ZSBjb21wbGV4aXR5Cj4gKyAqIG9mIHN3aXRjaGluZyBwbGFuZXMgb24gdGhlIGZseS4gVGhpcyB3 b3VsZCBvbmx5IGFmZmVjdCBmcm9tIEdlbiA0IHVwIHRvIElWQi4KPiAgICovCj4gIHZvaWQgaW50 ZWxfZmJjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkgICAgICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiBAQCAtMTEzMCwxNCArMTEwMSwxNiBAQCB2 b2lkIGludGVsX2ZiY19lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAlpZiAoZmJj LT5lbmFibGVkKSB7Cj4gIAkJV0FSTl9PTihmYmMtPmNydGMgPT0gTlVMTCk7Cj4gIAkJaWYgKGZi Yy0+Y3J0YyA9PSBjcnRjKSB7Cj4gLQkJCVdBUk5fT04oIWNydGNfc3RhdGUtPmVuYWJsZV9mYmMp Owo+ICsJCQlXQVJOX09OKHBsYW5lX3N0YXRlLT5mYmNfc2NvcmUgPT0gMCk7Cj4gIAkJCVdBUk5f T04oZmJjLT5hY3RpdmUpOwo+ICAJCX0KPiAgCQlnb3RvIG91dDsKPiAgCX0KPiAgCj4gLQlpZiAo IWNydGNfc3RhdGUtPmVuYWJsZV9mYmMpCj4gKwlpZiAocGxhbmVfc3RhdGUtPmZiY19zY29yZSA9 PSAwKSB7Cj4gKwkJZmJjLT5ub19mYmNfcmVhc29uID0gIm5vIHN1aXRhYmxlIENSVEMgZm9yIEZC QyI7Cj4gIAkJZ290byBvdXQ7Cj4gKwl9Cj4gIAo+ICAJV0FSTl9PTihmYmMtPmFjdGl2ZSk7Cj4g IAlXQVJOX09OKGZiYy0+Y3J0YyAhPSBOVUxMKTsKPiAtLSAKPiAyLjcuNAoKLS0gClZpbGxlIFN5 cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==