From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH 2/2] drm/i915: rewrite FBC's atomic CRTC-choosing code Date: Fri, 23 Dec 2016 11:23:56 -0200 Message-ID: <1482499436.2641.82.camel@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> <20161223124346.GS31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id EAA866E015 for ; Fri, 23 Dec 2016 13:23:59 +0000 (UTC) In-Reply-To: <20161223124346.GS31595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RW0gU2V4LCAyMDE2LTEyLTIzIMOgcyAxNDo0MyArMDIwMCwgVmlsbGUgU3lyasOkbMOkIGVzY3Jl dmV1Ogo+IE9uIEZyaSwgRGVjIDIzLCAyMDE2IGF0IDEwOjIzOjU5QU0gLTAyMDAsIFBhdWxvIFph bm9uaSB3cm90ZToKPiA+IAo+ID4gVmlsbGUgcG9pbnRlZCBvdXQgdGhhdCBpbnRlbF9mYmNfY2hv b3NlX2NydGMoKSBpcyBpdGVyYXRpbmcgb3Zlcgo+ID4gYWxsCj4gPiBwbGFuZXMgaW5zdGVhZCBv ZiBqdXN0IHRoZSBwcmltYXJ5IHBsYW5lcy4gVGhlcmUgYXJlIG5vIHJlYWwKPiA+IGNvbnNlcXVl bmNlcyBvZiB0aGlzIHByb2JsZW0gZm9yIEhTVyssIGFuZCBmb3IgdGhlIG90aGVyIHBsYXRmb3Jt cwo+ID4gaXQKPiA+IGp1c3QgbWVhbnMgdGhhdCBpbiBzb21lIG9ic2N1cmUgbXVsdGktc2NyZWVu IGNhc2VzIHdlJ2xsIGtlZXAgRkJDCj4gPiBkaXNhYmxlZCB3aGVuIHdlIGNvdWxkIGhhdmUgZW5h YmxlZCBpdC4gU3RpbGwsIGl0ZXJhdGluZyBvdmVyIGFsbAo+ID4gcGxhbmVzIGRvZXNuJ3Qgc2Vl bSB0byBiZSB0aGUgYmVzdCB0aGluZyB0byBkby4KPiA+IAo+ID4gTXkgaW5pdGlhbCBpZGVhIHdh cyB0byBqdXN0IGFkZCBhIGNoZWNrIGZvciBwbGFuZS0+dHlwZSBhbmQgYmUKPiA+IGRvbmUsCj4g PiBidXQgdGhlbiBJIHJlYWxpemVkIHRoYXQgaW4gY29tbWl0cyBub3QgaW52b2x2aW5nIHRoZSBw cmltYXJ5IHBsYW5lCj4gPiB3ZQo+ID4gd291bGQgcmVzZXQgY3J0Y19zdGF0ZS0+ZW5hYmxlX2Zi YyBiYWNrIHRvIGZhbHNlIGV2ZW4gd2hlbiBGQkMgaXMKPiA+IGVuYWJsZWQuIFRoYXQgYWxzbyB3 b3VsZG4ndCByZXN1bHQgaW4gYSBidWcgZHVlIHRvIHRoZSB3YXkgdGhlCj4gPiBlbmFibGVfZmJj IHZhcmlhYmxlIGlzIGNoZWNrZWQsIGJ1dCwgc3RpbGwsIG91ciBjb2RlIGNhbiBiZSBiZXR0ZXIK PiA+IHRoYW4gdGhpcy4KPiA+IAo+ID4gU28gSSB3ZW50IGZvciB0aGUgc29sdXRpb24gdGhhdCBp bnZvbHZlcyB0cmFja2luZyBlbmFibGVfZmJjIGluIHRoZQo+ID4gcHJpbWFyeSBwbGFuZSBzdGF0 ZSBpbnN0ZWFkIG9mIHRoZSBDUlRDIHN0YXRlLiBUaGlzIHdheSwgaWYgYQo+ID4gY29tbWl0Cj4g PiBkb2Vzbid0IGludm9sdmUgdGhlIHByaW1hcnkgcGxhbmUgZm9yIHRoZSBDUlRDIHdlIHdvbid0 IGJlCj4gPiByZXNldHRpbmcKPiA+IGVuYWJsZV9mYmMgYmFjayB0byBmYWxzZSwgc28gdGhlIHZh cmlhYmxlIHdpbGwgYWx3YXlzIHJlZmxlY3QgdGhlCj4gPiByZWFsaXR5LiBBbmQgdGhpcyBjaGFu Z2UgYWxzbyBtYWtlcyBtb3JlIHNlbnNlIHNpbmNlIEZCQyBpcwo+ID4gYWN0dWFsbHkKPiA+IHRp ZWQgdG8gdGhlIHNpbmdsZSBwbGFuZSBhbmQgbm90IHRoZSBmdWxsIHBpcGUuIEFzIGEgYm9udXMs IHdlIG9ubHkKPiA+IGl0ZXJhdGUgb3ZlciB0aGUgQ1JUQ3MgaW5zdGVhZCBvZiBpdGVyYXRpbmcg b3ZlciBhbGwgcGxhbmVzLgo+ID4gCj4gPiB2MjoKPiA+IAo+ID4gQnV0IFZpbGxlIHBvaW50ZWQg dGhhdCB0aGlzIG9ubHkgd29ya3MgcHJvcGVybHkgaWYgd2UgaGF2ZSBhIHNpbmdsZQo+ID4gY29t bWl0IHdpdGggbXVsdGlwbGUgQ1JUQ3MuIElmIHdlIGhhdmUgbXVsdGlwbGUgcGFyYWxsZWwgY29t bWl0cywKPiA+IGVhY2gKPiA+IHdpdGggaXRzIG93biBDUlRDLCB3ZSdsbCBlbmQgd2l0aCBlbmFi bGVfZmJjIHNldCB0byB0cnVlIGluIG1vcmUKPiA+IHRoYW4KPiA+IG9uZSBwbGFuZS4KPiA+IAo+ ID4gU28gdGhlIHNvbHV0aW9uIHdhcyB0byByZW5hbWUgZW5hYmxlX2ZiYyB0byBjYW5fZW5hYmxl X2ZiYy4gSWYgd2UKPiA+IGp1c3QKPiA+IGRpZCB0aGUgcmVuYW1lIGFzIHRoZSBwYXRjaCB3YXMs IHdlJ2QgZW5kIHVwIHdpdGggYSBzaW5nbGUgcGxhbmUKPiA+IHdpdGgKPiA+IGNhbl9lbmFibGVf ZmJjIG9uIGNvbW1pdHMgaW52b2x2aW5nIG11bHRpcGxlIENSVENzOiB3ZSdkIGNob29zZSB0aGUK PiA+IGJlc3Qgb25lLCBidXQgd2UnZCBzdGlsbCBlbmQgdXAgd2l0aCBhIHZhcmlhYmxlIHRoYXQg ZG9lc24ndCAxMDAlCj4gPiByZWZsZWN0IHJlYWxpdHkuCj4gPiAKPiA+IFNvIGluIHRoZSBlbmQg SSBhZG9wdGVkIFZpbGxlJ3Mgc3VnZ2VzdGlvbiBvZiB0aGUgZmJjX3Njb3JlCj4gPiB2YXJpYWJs ZS4KPiA+IEFuZCB0aGVuLCBpbnN0ZWFkIG9mIGNoZWNraW5nIHRoZSBzY29yZSBhdCBpbnRlbF9m YmNfY2hvb3NlX2NydGMoKQo+ID4gaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGNoZWNrIGZvciB0 aGUgc2NvcmUgYXQgaW50ZWxfZmJjX2VuYWJsZSgpLgo+ID4gVGhpcyBhbGxvd3MgdXMgdG8gc2lt cGxpZnkgaW50ZWxfZmJjX2Nob29zZV9jcnRjKCkgdG8gdGhlIHBvaW50Cj4gPiB3aGVyZQo+ID4g aXQgb25seSBuZWVkcyB0byBsb29rIGF0IHRoZSBnaXZlbiBwbGFuZSBpbiBvcmRlciB0byBhc3Np Z24gaXRzCj4gPiBzY29yZQo+ID4gaW5zdGVhZCBvZiBsb29raW5nIGF0IGV2ZXJ5IHByaW1hcnkg cGxhbmUgb24gdGhlIHNhbWUgY29tbWl0Lgo+ID4gCj4gPiBXZSBzdGlsbCBvbmx5IHNldCBzY29y ZXMgb2YgMCBhbmQgMSBhbmQgd2UgZG9uJ3QgcmVhbGx5IGRvIHRoZQo+ID4gc2NvcmUtY2hlY2tp bmcgbG9vcC4KPiA+IAo+ID4gdjM6IFJlYmFzZS4KPiA+IAo+ID4gQ2M6IFZpbGxlIFN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiBSZXBvcnRlZC1ieTogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYt Ynk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiDC oGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8wqDCoDMgKy0KPiA+IMKgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmjCoMKgwqDCoMKgfMKgwqA4ICsrLS0KPiA+IMKg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmPCoMKgwqDCoMKgfCA4NSArKysrKysrKysr KystLS0tLS0tLS0tCj4gPiAtLS0tLS0tLS0tLS0tLQo+ID4gwqAzIGZpbGVzIGNoYW5nZWQsIDM1 IGluc2VydGlvbnMoKyksIDYxIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggZDhlZmZkNC4uOTI1MjdkNiAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBAQCAtMTQxOTEsNyArMTQxOTEs NiBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QKPiA+IGRybV9kZXZpY2Ug KmRldiwKPiA+IMKgCWlmIChyZXQpCj4gPiDCoAkJcmV0dXJuIHJldDsKPiA+IMKgCj4gPiAtCWlu dGVsX2ZiY19jaG9vc2VfY3J0YyhkZXZfcHJpdiwgc3RhdGUpOwo+ID4gwqAJcmV0dXJuIGNhbGNf d2F0ZXJtYXJrX2RhdGEoc3RhdGUpOwo+ID4gwqB9Cj4gPiDCoAo+ID4gQEAgLTE0OTY2LDYgKzE0 OTY1LDggQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lCj4gPiAq cGxhbmUsCj4gPiDCoAkJCXJldHVybiByZXQ7Cj4gPiDCoAl9Cj4gPiDCoAo+ID4gKwlpbnRlbF9m YmNfY2hlY2tfcGxhbmUoc3RhdGUpOwo+ID4gKwo+IAo+IFdlIGhhdmUgYW5vdGhlciAncmV0dXJu IDAnIGEgbGl0dGxlIGVhcmxpZXIgaW4gdGhlIGZ1bmN0aW9uIGZvciB0aGUKPiAicGxhbmUgZGlz YWJsZSBieSB0aGUgdXNlciIgY2FzZS4gUHJlc3VtYWJseSB3ZSdsbCB3YW50IHRvIHVwZGF0ZQo+ IHRoZSBzY29yZSBpbiB0aGF0IGNhc2UgYXMgd2VsbD8KCkkgYWx3YXlzIGFzc3VtZWQgdGhlIHN0 YXRlIHdhcyB6ZXJvLWFsbG9jYXRlZCwgbm90IGNvcGllZCwgYW5kIGludCBoaXMKY2FzZSB0aGlz IHdvdWxkbid0IGJlIGEgcHJvYmxlbS4uLiBUaGFua3MgZm9yIHBvaW50aW5nIHRoaXMgdG8gbWUu CgpJJ2xsIG1vdmUgaXQgdXAuIENhbid0IG1vdmUgdXAgZnVydGhlciBzaW5jZSB3ZSBuZWVkIHBs YW5lX3N0YXRlLQo+dmlzaWJsZSB0byBiZSBzZXQuCgoKPiAKPiA+IAo+ID4gwqAJcmV0dXJuIDA7 Cj4gPiDCoH0KPiA+IMKgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4 IDAyNWU0YzguLjc0MzAwODIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ IEBAIC00MDYsNiArNDA2LDkgQEAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlIHsKPiA+IMKgCcKg Ki8KPiA+IMKgCWludCBzY2FsZXJfaWQ7Cj4gPiDCoAo+ID4gKwkvKiAwOiBub3Qgc3VpdGFibGUg Zm9yIEZCQywgMSs6IHN1aXRhYmxlIGZvciBGQkMsIG1vcmUgaXMKPiA+IGJldHRlci4gKi8KPiA+ ICsJdW5zaWduZWQgaW50IGZiY19zY29yZTsKPiA+ICsKPiA+IMKgCXN0cnVjdCBkcm1faW50ZWxf c3ByaXRlX2NvbG9ya2V5IGNrZXk7Cj4gPiDCoH07Cj4gPiDCoAo+ID4gQEAgLTY1Miw4ICs2NTUs NiBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Cj4gPiDCoAo+ID4gwqAJYm9vbCBpcHNfZW5h YmxlZDsKPiA+IMKgCj4gPiAtCWJvb2wgZW5hYmxlX2ZiYzsKPiA+IC0KPiA+IMKgCWJvb2wgZG91 YmxlX3dpZGU7Cj4gPiDCoAo+ID4gwqAJaW50IHBibjsKPiA+IEBAIC0xNTM1LDggKzE1MzYsNyBA QCBzdGF0aWMgaW5saW5lIHZvaWQKPiA+IGludGVsX2ZiZGV2X3Jlc3RvcmVfbW9kZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ID4gwqAjZW5kaWYKPiA+IMKgCj4gPiDCoC8qIGludGVsX2ZiYy5j ICovCj4gPiAtdm9pZCBpbnRlbF9mYmNfY2hvb3NlX2NydGMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ID4gLQkJCcKgwqDCoHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSk7Cj4gPiArdm9pZCBpbnRlbF9mYmNfY2hlY2tfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpwbGFuZV9zdGF0ZSk7Cj4gPiDCoGJvb2wgaW50ZWxfZmJjX2lzX2FjdGl2ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gwqB2b2lkIGludGVsX2ZiY19wcmVfdXBk YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4gwqAJCQnCoMKgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZmJjLmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ IGluZGV4IDI2YTgxYTkuLmNlZGE2ZjQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJj LmMKPiA+IEBAIC0xMDQwLDY4ICsxMDQwLDMyIEBAIHZvaWQgaW50ZWxfZmJjX2ZsdXNoKHN0cnVj dAo+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiDCoH0KPiA+IMKgCj4gPiDCoC8q Kgo+ID4gLSAqIGludGVsX2ZiY19jaG9vc2VfY3J0YyAtIHNlbGVjdCBhIENSVEMgdG8gZW5hYmxl IEZCQyBvbgo+ID4gLSAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UgaW5zdGFuY2UKPiA+IC0gKiBA c3RhdGU6IHRoZSBhdG9taWMgc3RhdGUgc3RydWN0dXJlCj4gPiArICogaW50ZWxfZmJjX2NoZWNr X3BsYW5lIC0gY2hlY2sgcGxhbmUgZm9yIEZCQyBzdWl0YWJpbGl0eQo+ID4gKyAqIEBwbGFuZV9z dGF0ZTogdGhlIHBsYW5lIHN0YXRlCj4gPiDCoCAqCj4gPiAtICogVGhpcyBmdW5jdGlvbiBsb29r cyBhdCB0aGUgcHJvcG9zZWQgc3RhdGUgZm9yIENSVENzIGFuZCBwbGFuZXMsCj4gPiB0aGVuIGNo b29zZXMKPiA+IC0gKiB3aGljaCBwaXBlIGlzIGdvaW5nIHRvIGhhdmUgRkJDIGJ5IHNldHRpbmcg aW50ZWxfY3J0Y19zdGF0ZS0KPiA+ID5lbmFibGVfZmJjIHRvCj4gPiAtICogdHJ1ZS4KPiA+ICsg KiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBzZXQgZmJjX3Njb3JlIGJhc2VkIG9uIGhvdyBzdWl0YWJs ZSB0aGUKPiA+IHBsYW5lIGlzIGZvcgo+ID4gKyAqIEZCQy4gRm9yIG5vdyB0aGUgb25seSBzY29y ZXMgdXNlZCBhcmUgMCBhbmQgMS4KPiA+IMKgICoKPiA+IC0gKiBMYXRlciwgaW50ZWxfZmJjX2Vu YWJsZSBpcyBnb2luZyB0byBsb29rIGZvciBzdGF0ZS0+ZW5hYmxlX2ZiYwo+ID4gYW5kIHRoZW4g bWF5YmUKPiA+IC0gKiBlbmFibGUgRkJDIGZvciB0aGUgY2hvc2VuIENSVEMuIElmIGl0IGRvZXMs IGl0IHdpbGwgc2V0Cj4gPiBkZXZfcHJpdi0+ZmJjLmNydGMuCj4gPiArICogV2UncmUgbm90IGNo YW5naW5nIGRldl9wcml2LT5mYmMsIHNvIHRoZXJlJ3Mgbm8gbmVlZCBmb3IgdGhlCj4gPiBGQkMg bG9jay4KPiA+IMKgICovCj4gPiAtdm9pZCBpbnRlbF9mYmNfY2hvb3NlX2NydGMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gLQkJCcKgwqDCoHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKPiA+ICt2b2lkIGludGVsX2ZiY19jaGVja19wbGFuZShzdHJ1Y3QgaW50 ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ID4gwqB7Cj4gPiAtCXN0cnVjdCBpbnRlbF9m YmMgKmZiYyA9ICZkZXZfcHJpdi0+ZmJjOwo+ID4gLQlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsK PiA+IC0Jc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gPiAtCWJvb2wgY3J0 Y19jaG9zZW4gPSBmYWxzZTsKPiA+IC0JaW50IGk7Cj4gPiArCXN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lID0gcGxhbmVfc3RhdGUtPmJhc2UucGxhbmU7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmRldik7Cj4gPiArCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwbGFuZV9zdGF0ZS0KPiA+ID5iYXNlLmNydGMpOwo+ IAo+IFdoYXQgaGFwcGVucyBpZiB3ZSBkb24ndCBoYXZlIGEgY3J0Yz8KCkl0J3MgYmVlbiBjb25m aXJtZWQgdG8gbWUgbWFueSB0aW1lcyB0aGF0IGlmIGEgcGxhbmUgaXMgYmVpbmcKY29tbWl0dGVk LCBpdHMgQ1JUQyBpcyBpbmNsdWRlZCBpbiB0aGUgYXRvbWljIGNvbW1pdC4gV2FzIHRoaXMgd2hh dCB5b3UKd2VyZSB0YWxraW5nIGFib3VlPyBDYW4geW91IGdpdmUgbWUgYW4gZXhhbXBsZSB3aGVy ZSB3ZSB3b3VsZG4ndCBoYXZlIGEKQ1JUQz8KCgo+ID4gCj4gPiDCoAo+ID4gLQltdXRleF9sb2Nr KCZmYmMtPmxvY2spOwo+ID4gLQo+ID4gLQkvKiBEb2VzIHRoaXMgYXRvbWljIGNvbW1pdCBpbnZv bHZlIHRoZSBDUlRDIGN1cnJlbnRseSB0aWVkCj4gPiB0byBGQkM/ICovCj4gPiAtCWlmIChmYmMt PmNydGMgJiYKPiA+IC0JwqDCoMKgwqAhZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0 ZShzdGF0ZSwgJmZiYy0+Y3J0Yy0KPiA+ID5iYXNlKSkKPiA+IC0JCWdvdG8gb3V0Owo+ID4gKwlw bGFuZV9zdGF0ZS0+ZmJjX3Njb3JlID0gMDsKPiA+IMKgCj4gPiDCoAlpZiAoIWludGVsX2ZiY19j YW5fZW5hYmxlKGRldl9wcml2KSkKPiA+IC0JCWdvdG8gb3V0Owo+ID4gLQo+ID4gLQkvKiBTaW1w bHkgY2hvb3NlIHRoZSBmaXJzdCBDUlRDIHRoYXQgaXMgY29tcGF0aWJsZSBhbmQgaGFzCj4gPiBh IHZpc2libGUKPiA+IC0JwqAqIHBsYW5lLiBXZSBjb3VsZCBnbyBmb3IgZmFuY2llciBzY2hlbWVz IHN1Y2ggYXMgY2hlY2tpbmcKPiA+IHRoZSBwbGFuZQo+ID4gLQnCoCogc2l6ZSwgYnV0IHRoaXMg d291bGQganVzdCBhZmZlY3QgdGhlIGZldyBwbGF0Zm9ybXMgdGhhdAo+ID4gZG9uJ3QgdGllIEZC Qwo+ID4gLQnCoCogdG8gcGlwZSBvciBwbGFuZSBBLiAqLwo+ID4gLQlmb3JfZWFjaF9wbGFuZV9p bl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBsYW5lX3N0YXRlLCBpKSB7Cj4gPiAtCQlzdHJ1Y3QgaW50 ZWxfcGxhbmVfc3RhdGUgKmludGVsX3BsYW5lX3N0YXRlID0KPiA+IC0JCQl0b19pbnRlbF9wbGFu ZV9zdGF0ZShwbGFuZV9zdGF0ZSk7Cj4gPiAtCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50 ZWxfY3J0Y19zdGF0ZTsKPiA+IC0JCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0KPiA+IHRvX2lu dGVsX2NydGMocGxhbmVfc3RhdGUtPmNydGMpOwo+ID4gLQo+ID4gLQkJaWYgKCFpbnRlbF9wbGFu ZV9zdGF0ZS0+YmFzZS52aXNpYmxlKQo+ID4gLQkJCWNvbnRpbnVlOwo+ID4gLQo+ID4gLQkJaWYg KGZiY19vbl9waXBlX2Ffb25seShkZXZfcHJpdikgJiYgY3J0Yy0+cGlwZSAhPQo+ID4gUElQRV9B KQo+ID4gLQkJCWNvbnRpbnVlOwo+ID4gLQo+ID4gLQkJaWYgKGZiY19vbl9wbGFuZV9hX29ubHko ZGV2X3ByaXYpICYmIGNydGMtPnBsYW5lCj4gPiAhPSBQTEFORV9BKQo+ID4gLQkJCWNvbnRpbnVl Owo+ID4gLQo+ID4gLQkJaW50ZWxfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoCj4g PiAtCQkJZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0ZSwKPiA+ICZjcnRj LT5iYXNlKSk7Cj4gPiAtCj4gPiAtCQlpbnRlbF9jcnRjX3N0YXRlLT5lbmFibGVfZmJjID0gdHJ1 ZTsKPiA+IC0JCWNydGNfY2hvc2VuID0gdHJ1ZTsKPiA+IC0JCWJyZWFrOwo+ID4gLQl9Cj4gPiAt Cj4gPiAtCWlmICghY3J0Y19jaG9zZW4pCj4gPiAtCQlmYmMtPm5vX2ZiY19yZWFzb24gPSAibm8g c3VpdGFibGUgQ1JUQyBmb3IgRkJDIjsKPiA+ICsJCXJldHVybjsKPiA+ICsJaWYgKGZiY19vbl9w aXBlX2Ffb25seShkZXZfcHJpdikgJiYgY3J0Yy0+cGlwZSAhPSBQSVBFX0EpCj4gPiArCQlyZXR1 cm47Cj4gPiArCWlmIChmYmNfb25fcGxhbmVfYV9vbmx5KGRldl9wcml2KSAmJiBjcnRjLT5wbGFu ZSAhPQo+ID4gUExBTkVfQSkKPiA+ICsJCXJldHVybjsKPiA+ICsJaWYgKCFwbGFuZV9zdGF0ZS0+ YmFzZS52aXNpYmxlKQo+ID4gKwkJcmV0dXJuOwo+ID4gwqAKPiA+IC1vdXQ6Cj4gPiAtCW11dGV4 X3VubG9jaygmZmJjLT5sb2NrKTsKPiA+ICsJcGxhbmVfc3RhdGUtPmZiY19zY29yZSA9IDE7Cj4g PiDCoH0KPiA+IMKgCj4gPiDCoC8qKgo+ID4gQEAgLTExMTQsNiArMTA3OCwxMyBAQCB2b2lkIGlu dGVsX2ZiY19jaG9vc2VfY3J0YyhzdHJ1Y3QKPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gwqAgKiBwb3NzaWJsZS4gTm90aWNlIHRoYXQgaXQgZG9lc24ndCBhY3RpdmF0ZSBGQkMu IEl0IGlzIHZhbGlkIHRvCj4gPiBjYWxsCj4gPiDCoCAqIGludGVsX2ZiY19lbmFibGUgbXVsdGlw bGUgdGltZXMgZm9yIHRoZSBzYW1lIHBpcGUgd2l0aG91dCBhbgo+ID4gwqAgKiBpbnRlbF9mYmNf ZGlzYWJsZSBpbiB0aGUgbWlkZGxlLCBhcyBsb25nIGFzIGl0IGlzIGRlYWN0aXZhdGVkLgo+ID4g KyAqCj4gPiArICogSW4gdGhlIGZ1dHVyZSB0aGlzIGZ1bmN0aW9uIGNvdWxkIG1ha2UgYmV0dGVy IHVzZSBvZiB0aGUKPiA+IGZiY19zY29yZSB2YXJpYWJsZS4KPiA+ICsgKiBXZSBjb3VsZCwgZm9y IGV4YW1wbGUsIGxvb3AgdGhyb3VnaCBhbGwgdGhlIHByaW1hcnkgcGxhbmVzCj4gPiBpbnZvbHZl ZCBpbiB0aGUKPiA+ICsgKiBhdG9taWMgY29tbWl0IGFuZCBvbmx5IGVuYWJsZSBGQkMgZm9yIHRo ZSBwbGFuZSB3aXRoIHRoZSBiZXN0Cj4gPiBmYmNfc2NvcmUuIFdlCj4gPiArICogY291bGQgYWxz byB0cnkgdG8gZG8gc29tZSBzY2hlbWUgd2hlcmUgYSBwbGFuZSB3aXRoIGJldHRlcgo+ID4gc2Nv cmUgdGFrZXMgb3Zlcgo+ID4gKyAqIEZCQyBmcm9tIGFub3RoZXIgcGxhbmUsIGJ1dCBvdXIgZHJp dmVyIGN1cnJlbnRseSBjYW4ndCBoYW5kbGUKPiA+IHRoZSBjb21wbGV4aXR5Cj4gPiArICogb2Yg c3dpdGNoaW5nIHBsYW5lcyBvbiB0aGUgZmx5LiBUaGlzIHdvdWxkIG9ubHkgYWZmZWN0IGZyb20g R2VuCj4gPiA0IHVwIHRvIElWQi4KPiA+IMKgICovCj4gPiDCoHZvaWQgaW50ZWxfZmJjX2VuYWJs ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+IMKgCQnCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+IEBAIC0xMTMwLDE0ICsxMTAxLDE2IEBAIHZv aWQgaW50ZWxfZmJjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Ywo+ID4gKmNydGMsCj4gPiDCoAlp ZiAoZmJjLT5lbmFibGVkKSB7Cj4gPiDCoAkJV0FSTl9PTihmYmMtPmNydGMgPT0gTlVMTCk7Cj4g PiDCoAkJaWYgKGZiYy0+Y3J0YyA9PSBjcnRjKSB7Cj4gPiAtCQkJV0FSTl9PTighY3J0Y19zdGF0 ZS0+ZW5hYmxlX2ZiYyk7Cj4gPiArCQkJV0FSTl9PTihwbGFuZV9zdGF0ZS0+ZmJjX3Njb3JlID09 IDApOwo+ID4gwqAJCQlXQVJOX09OKGZiYy0+YWN0aXZlKTsKPiA+IMKgCQl9Cj4gPiDCoAkJZ290 byBvdXQ7Cj4gPiDCoAl9Cj4gPiDCoAo+ID4gLQlpZiAoIWNydGNfc3RhdGUtPmVuYWJsZV9mYmMp Cj4gPiArCWlmIChwbGFuZV9zdGF0ZS0+ZmJjX3Njb3JlID09IDApIHsKPiA+ICsJCWZiYy0+bm9f ZmJjX3JlYXNvbiA9ICJubyBzdWl0YWJsZSBDUlRDIGZvciBGQkMiOwo+ID4gwqAJCWdvdG8gb3V0 Owo+ID4gKwl9Cj4gPiDCoAo+ID4gwqAJV0FSTl9PTihmYmMtPmFjdGl2ZSk7Cj4gPiDCoAlXQVJO X09OKGZiYy0+Y3J0YyAhPSBOVUxMKTsKPiA+IC0twqAKPiA+IDIuNy40Cj4gCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=