From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [PATCH 15/18] drm/i915: alloc/free the FBC CFB during enable/disable Date: Wed, 21 Oct 2015 18:30:09 +0000 Message-ID: <1445452209.2522.77.camel@intel.com> References: <1445349004-16409-1-git-send-email-paulo.r.zanoni@intel.com> <1445349004-16409-16-git-send-email-paulo.r.zanoni@intel.com> <20151021071108.GK13786@phenom.ffwll.local> <20151021072055.GT26517@intel.com> <20151021072429.GN13786@phenom.ffwll.local> 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 ESMTP id B5D4B6EC83 for ; Wed, 21 Oct 2015 11:30:11 -0700 (PDT) In-Reply-To: <20151021072429.GN13786@phenom.ffwll.local> Content-Language: en-US Content-ID: <6C5E708B7A014446A01EF0316362078B@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "daniel@ffwll.ch" , "ville.syrjala@linux.intel.com" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org RW0gUXVhLCAyMDE1LTEwLTIxIMOgcyAwOToyNCArMDIwMCwgRGFuaWVsIFZldHRlciBlc2NyZXZl dToNCj4gT24gV2VkLCBPY3QgMjEsIDIwMTUgYXQgMTA6MjA6NTVBTSArMDMwMCwgVmlsbGUgU3ly asOkbMOkIHdyb3RlOg0KPiA+IE9uIFdlZCwgT2N0IDIxLCAyMDE1IGF0IDA5OjExOjA4QU0gKzAy MDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6DQo+ID4gPiBPbiBUdWUsIE9jdCAyMCwgMjAxNSBhdCAx MTo1MDowMUFNIC0wMjAwLCBQYXVsbyBaYW5vbmkgd3JvdGU6DQo+ID4gPiA+IE9uZSBvZiB0aGUg cHJvYmxlbXMgd2l0aCB0aGUgY3VycmVudCBjb2RlIGlzIHRoYXQgaXQgZnJlZXMgdGhlDQo+ID4g PiA+IENGQiBhbmQNCj4gPiA+ID4gcmVsZWFzZXMgaXRzIGRybV9tbSBub2RlIGFzIHNvb24gYXMg d2UgZmxpcCBGQkMncyBlbmFibGUgYml0Lg0KPiA+ID4gPiBUaGlzIGlzDQo+ID4gPiA+IGJhZCBi ZWNhdXNlIGFmdGVyIHdlIGRpc2JhbGUgRkJDIHRoZSBoYXJkd2FyZSBtYXkgc3RpbGwgdXNlIHRo ZQ0KPiA+ID4gPiBDRkINCj4gPiA+ID4gZm9yIHRoZSByZXN0IG9mIHRoZSBmcmFtZSwgc28gaW4g dGhlb3J5IHdlIHNob3VsZCBvbmx5IHJlbGVhc2UNCj4gPiA+ID4gdGhlDQo+ID4gPiA+IGRybV9t bSBub2RlIG9uZSBmcmFtZSBhZnRlciB3ZSBkaXNhYmxlIEZCQy4gT3RoZXJ3aXNlLCBhIHN0b2xl bg0KPiA+ID4gPiBtZW1vcnkNCj4gPiA+ID4gYWxsb2NhdGlvbiBkb25lIHJpZ2h0IGFmdGVyIGFu IEZCQyBkaXNhYmxlIG1heSByZXN1bHQgaW4gZWl0aGVyDQo+ID4gPiA+IGNvcnJ1cHRlZCBtZW1v cnkgZm9yIHRoZSBuZXcgb3duZXIgb2YgdGhhdCBtZW1vcnkgcmVnaW9uIG9yDQo+ID4gPiA+IGNv cnJ1cHRlZA0KPiA+ID4gPiBzY3JlZW4vdW5kZXJydW5zIGluIGNhc2UgdGhlIG5ldyBvd25lciBj aGFuZ2VzIGl0IHdoaWxlIHRoZQ0KPiA+ID4gPiBoYXJkd2FyZQ0KPiA+ID4gPiBpcyBzdGlsbCBy ZWFkaW5nIGl0LiBUaGlzIGNhc2UgaXMgbm90IGV4YWN0bHkgZWFzeSB0byByZXByb2R1Y2UNCj4g PiA+ID4gc2luY2UNCj4gPiA+ID4gd2UgY3VycmVudGx5IGRvbid0IGRvIGEgbG90IG9mIHN0b2xl biBtZW1vcnkgYWxsb2NhdGlvbnMsIGJ1dCBJDQo+ID4gPiA+IHNlZQ0KPiA+ID4gPiBwYXRjaGVz IG9uIHRoZSBtYWlsaW5nIGxpc3QgdHJ5aW5nIHRvIGV4cG9zZSBzdG9sZW4gbWVtb3J5IHRvDQo+ ID4gPiA+IHVzZXINCj4gPiA+ID4gc3BhY2UsIHNvIHJhY2VzIHdpbGwgYmUgcG9zc2libGUuDQo+ ID4gPiA+IA0KPiA+ID4gPiBJIHRob3VnaHQgYWJvdXQgdGhyZWUgZGlmZmVyZW50IGFwcHJvYWNo ZXMgdG8gc29sdmUgdGhpcywgYW5kDQo+ID4gPiA+IHRoZXkgYWxsDQo+ID4gPiA+IGhhdmUgZG93 bnNpZGVzLg0KPiA+ID4gPiANCj4gPiA+ID4gVGhlIGZpcnN0IGFwcHJvYWNoIHdvdWxkIGJlIHRv IHNpbXBseSB1c2UgbXVsdGlwbGUgZHJtX21tIG5vZGVzDQo+ID4gPiA+IGFuZA0KPiA+ID4gPiBm cmVlaW5nIHRoZSB1bnVzZWQgb25lcyBvbmx5IGFmdGVyIGEgZnJhbWUgaGFzIHBhc3NlZC4gVGhl DQo+ID4gPiA+IHByb2JsZW0NCj4gPiA+ID4gd2l0aCB0aGlzIGFwcHJvYWNoIGlzIHRoYXQgc2lu Y2Ugc3RvbGVuIG1lbW9yeSBpcyByYXRoZXIgc21hbGwsDQo+ID4gPiA+IHRoZXJlJ3MgYSByaXNr IHdlIGp1c3Qgd29uJ3QgYmUgYWJsZSB0byBhbGxvY2F0ZSBhIG5ldyBDRkIgZnJvbQ0KPiA+ID4g PiBzdG9sZW4NCj4gPiA+ID4gaWYgdGhlIHByZXZpb3VzIG9uZSB3YXMgbm90IGZyZWVkIHlldC4g VGhpcyBjb3VsZCBoYXBwZW4gaW4NCj4gPiA+ID4gY2FzZSB3ZQ0KPiA+ID4gPiBxdWlja2x5IGRp c2FibGUgRkJDIGZyb20gcGlwZSBBIGFuZCBkZWNpZGUgdG8gZW5hYmxlIGl0IG9uIHBpcGUNCj4g PiA+ID4gQiwgb3INCj4gPiA+ID4ganVzdCBpZiB3ZSBjaGFuZ2UgcGlwZSBBJ3MgZmIgc3RyaWRl IHdoaWxlIEZCQyBpcyBlbmFibGVkLg0KPiA+ID4gPiANCj4gPiA+ID4gVGhlIHNlY29uZCBhcHBy b2FjaCB3b3VsZCBiZSBzaW1pbGFyIHRvIHRoZSBmaXJzdCBvbmUsIGJ1dA0KPiA+ID4gPiBtYWlu dGFpbmluZw0KPiA+ID4gPiBhIHNpbmdsZSBkcm1fbW0gbm9kZSBhbmQga2VlcGluZyB0cmFjayBv ZiB3aGVuIGl0IGNhbiBiZQ0KPiA+ID4gPiByZXVzZWQuIFRoaXMNCj4gPiA+ID4gd291bGQgcmVt b3ZlIHRoZSBkaXNhZHZhbnRhZ2Ugb2Ygbm90IGhhdmluZyBlbm91Z2ggc3BhY2UgZm9yDQo+ID4g PiA+IHR3bw0KPiA+ID4gPiBub2RlcywgYnV0IHdvdWxkIGNyZWF0ZSB0aGUgbmV3IHByb2JsZW0g d2hlcmUgd2UgbWF5IG5vdCBiZQ0KPiA+ID4gPiBhYmxlIHRvDQo+ID4gPiA+IGVuYWJsZSBGQkMg YXQgdGhlIHBvaW50IGludGVsX2ZiY191cGRhdGUoKSBpcyBjYWxsZWQsIHNvIHdlDQo+ID4gPiA+ IHdvdWxkIGhhdmUNCj4gPiA+ID4gdG8gYWRkIG1vcmUgY29kZSB0byByZXRyeSB1cGRhdGluZyBG QkMgYWZ0ZXIgdGhlIHRpbWUgaGFzDQo+ID4gPiA+IHBhc3NlZC4gQW5kDQo+ID4gPiA+IHRoYXQg Y2FuIHF1aWNrbHkgZ2V0IHRvbyBjb21wbGV4IHNpbmNlIHdlIGNhbiBnZXQgaW52YWxpZGF0ZSwN Cj4gPiA+ID4gZmx1c2gsDQo+ID4gPiA+IGZsaXBfcHJlcGFyZSwgZGlzYWJsZSBhbmQgb3RoZXIg Y2FsbHMgaW4gdGhlIG1pZGRsZSBvZiB0aGUNCj4gPiA+ID4gd2FpdC4NCj4gPiA+ID4gDQo+ID4g PiA+IEJvdGggc29sdXRpb25zIGFib3ZlIC0gYW5kIGFsc28gdGhlIGN1cnJlbnQgY29kZSAtIGhh dmUgdGhlDQo+ID4gPiA+IHByb2JsZW0NCj4gPiA+ID4gdGhhdCB3ZSB1bm5lY2Vzc2FyaWx5IGZy ZWUrcmVhbGxvYyBGQkMgZHVyaW5nIGludmFsaWRhdGUrZmx1c2gNCj4gPiA+ID4gb3BlcmF0aW9u cyBldmVuIGlmIHRoZSBDRkIgc2l6ZSBkb2Vzbid0IGNoYW5nZS4NCj4gPiA+ID4gDQo+ID4gPiA+ IFRoZSB0aGlyZCBvcHRpb24gd291bGQgYmUgdG8gbW92ZSB0aGUgYWxsb2NhdGlvbi9kZWFsbG9j YXRpb24NCj4gPiA+ID4gdG8NCj4gPiA+ID4gZW5hYmxlL2Rpc2FibGUuIFRoaXMgbWFrZXMgc3Vy ZSB0aGF0IHRoZSBwaXBlIGlzIGFsd2F5cw0KPiA+ID4gPiBkaXNhYmxlZCB3aGVuDQo+ID4gPiA+ IHdlIGFsbG9jYXRlL2RlYWxsb2NhdGUgdGhlIENGQiwgc28gdGhlcmUncyBubyByaXNrIHRoYXQg dGhlIEZCQw0KPiA+ID4gPiBoYXJkd2FyZSBtYXkgcmVhZCBvciB3cml0ZSB0byB0aGUgbWVtb3J5 IHJpZ2h0IGFmdGVyIGl0IGlzDQo+ID4gPiA+IGZyZWVkIGZyb20NCj4gPiA+ID4gZHJtX21tLiBU aGUgZG93bnNpZGUgaXMgdGhhdCBpdCBpcyBwb3NzaWJsZSBmb3IgdXNlciBzcGFjZSB0bw0KPiA+ ID4gPiBjaGFuZ2UNCj4gPiA+ID4gdGhlIGJ1ZmZlciBzdHJpZGUgd2l0aG91dCB0cmlnZ2VyaW5n IGEgZGlzYWJsZS9lbmFibGUgLSBvbmx5DQo+ID4gPiA+IGRlYWN0aXZhdGUvYWN0aXZhdGUgLSwg c28gd2UnbGwgaGF2ZSB0byBoYW5kbGUgdGhpcyBjYXNlDQo+ID4gPiA+IHNvbWVob3csIGV2ZW4N Cj4gPiA+ID4gdGhvdWdoIGl0IGlzIHVuY29tbW9uIC0gc2VlIGlndCdzIGttc19mcm9udGJ1ZmZl cl90cmFja2luZw0KPiA+ID4gPiB0ZXN0LA0KPiA+ID4gPiBmYmMtc3RyaWRlY2hhbmdlIHN1YnRl c3QuIEl0IGNvdWxkIGJlIHBvc3NpYmxlIHRvIGltcGxlbWVudCBhDQo+ID4gPiA+IHdheSB0bw0K PiA+ID4gPiBmcmVlK2FsbG9jIHRoZSBDRkIgZHVyaW5nIHNhaWQgc3RyaWRlIGNoYW5nZSwgYnV0 IGl0IHdvdWxkDQo+ID4gPiA+IGludm9sdmUgYQ0KPiA+ID4gPiBsb3Qgb2YgYm9vay1rZWVwaW5n IC0gZXhhY3RseSBhcyBtZW50aW9uZWQgYWJvdmUgLSBqdXN0IGZvciBhDQo+ID4gPiA+IHJhcmUN Cj4gPiA+ID4gY2FzZSwgc28gZm9yIG5vdyBJJ2xsIGtlZXAgaXQgc2ltcGxlIGFuZCBqdXN0IGRl YWN0aXZhdGUgRkJDLg0KPiA+ID4gPiBCZXNpZGVzLA0KPiA+ID4gPiB3ZSBtYXkgbm90IGV2ZW4g bmVlZCB0byBkaXNhYmxlIEZCQyBzaW5jZSB3ZSBkbyBDRkIgb3Zlci0NCj4gPiA+ID4gYWxsb2Nh dGlvbi4NCj4gPiA+ID4gDQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1 bG8uci56YW5vbmlAaW50ZWwuY29tPg0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gwqBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mYmMuYyB8IDEzMiArKysrKysrKysrKysrKysrKysrKy0tLQ0KPiA+ ID4gPiAtLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiA+IMKgMSBmaWxlIGNoYW5nZWQsIDY4IGluc2Vy dGlvbnMoKyksIDY0IGRlbGV0aW9ucygtKQ0KPiA+ID4gPiANCj4gPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jDQo+ID4gPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJjLmMNCj4gPiA+ID4gaW5kZXggYmY4NTViMi4uNDhkOGNmYyAxMDA2 NDQNCj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMNCj4gPiA+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMNCj4gPiA+ID4gQEAgLTU5 LDYgKzU5LDQ1IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQNCj4gPiA+ID4gZ2V0X2NydGNfZmVuY2Vf eV9vZmZzZXQoc3RydWN0IGludGVsX2NydGMgKmNydGMpDQo+ID4gPiA+IMKgCXJldHVybiBjcnRj LT5iYXNlLnkgLSBjcnRjLT5hZGp1c3RlZF95Ow0KPiA+ID4gPiDCoH0NCj4gPiA+ID4gwqANCj4g PiA+ID4gKy8qDQo+ID4gPiA+ICsgKiBGb3IgU0tMKywgdGhlIHBsYW5lIHNvdXJjZSBzaXplIHVz ZWQgYnkgdGhlIGhhcmR3YXJlIGlzDQo+ID4gPiA+IGJhc2VkIG9uIHRoZSB2YWx1ZSB3ZQ0KPiA+ ID4gPiArICogd3JpdGUgdG8gdGhlIFBMQU5FX1NJWkUgcmVnaXN0ZXIuIEZvciBCRFctLCB0aGUg aGFyZHdhcmUNCj4gPiA+ID4gbG9va3MgYXQgdGhlIHZhbHVlDQo+ID4gPiA+ICsgKiB3ZSB3cm90 ZSB0byBQSVBFU1JDLg0KPiA+ID4gPiArICovDQo+ID4gPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9m YmNfZ2V0X3BsYW5lX3NvdXJjZV9zaXplKHN0cnVjdCBpbnRlbF9jcnRjDQo+ID4gPiA+ICpjcnRj LA0KPiA+ID4gPiArCQkJCQnCoMKgwqDCoGludCAqd2lkdGgsIGludA0KPiA+ID4gPiAqaGVpZ2h0 KQ0KPiA+ID4gPiArew0KPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUgPQ0KPiA+ID4gPiArCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUoY3J0Yy0NCj4gPiA+ID4g PmJhc2UucHJpbWFyeS0+c3RhdGUpOw0KPiA+ID4gPiArCWludCB3LCBoOw0KPiA+ID4gPiArDQo+ ID4gPiA+ICsJaWYgKGludGVsX3JvdGF0aW9uXzkwX29yXzI3MChwbGFuZV9zdGF0ZS0NCj4gPiA+ ID4gPmJhc2Uucm90YXRpb24pKSB7DQo+ID4gPiA+ICsJCXcgPSBkcm1fcmVjdF9oZWlnaHQoJnBs YW5lX3N0YXRlLT5zcmMpID4+IDE2Ow0KPiA+ID4gPiArCQloID0gZHJtX3JlY3Rfd2lkdGgoJnBs YW5lX3N0YXRlLT5zcmMpID4+IDE2Ow0KPiA+ID4gPiArCX0gZWxzZSB7DQo+ID4gPiA+ICsJCXcg PSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7DQo+ID4gPiA+ICsJCWgg PSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2Ow0KPiA+ID4gPiArCX0N Cj4gPiA+ID4gKw0KPiA+ID4gPiArCWlmICh3aWR0aCkNCj4gPiA+ID4gKwkJKndpZHRoID0gdzsN Cj4gPiA+ID4gKwlpZiAoaGVpZ2h0KQ0KPiA+ID4gPiArCQkqaGVpZ2h0ID0gaDsNCj4gPiA+ID4g K30NCj4gPiA+ID4gKw0KPiA+ID4gPiArc3RhdGljIGludCBpbnRlbF9mYmNfY2FsY3VsYXRlX2Nm Yl9zaXplKHN0cnVjdCBpbnRlbF9jcnRjDQo+ID4gPiA+ICpjcnRjLA0KPiA+ID4gPiArCQkJCQlz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyDQo+ID4gPiA+ICpmYikNCj4gPiA+ID4gK3sNCj4gPiA+ID4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0NCj4g PiA+ID4gPmRldl9wcml2YXRlOw0KPiA+ID4gPiArCWludCBsaW5lczsNCj4gPiA+ID4gKw0KPiA+ ID4gPiArCWludGVsX2ZiY19nZXRfcGxhbmVfc291cmNlX3NpemUoY3J0YywgTlVMTCwgJmxpbmVz KTsNCj4gPiA+ID4gKwlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA3KQ0KPiA+ID4g PiArCQlsaW5lcyA9IG1pbihsaW5lcywgMjA0OCk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwlyZXR1 cm4gbGluZXMgKiBmYi0+cGl0Y2hlc1swXTsNCj4gPiA+IA0KPiA+ID4gV2h5IGFyZSB3ZSBldmVu IGxvb2tpbmcgYXQgZmItPnBpdGNoZXMgaGVyZT8gSSB0aG91Z2h0IHRoYXQgZm9yDQo+ID4gPiBm YmMgd2UNCj4gPiA+IG9ubHkgY29tcHJlc3Mgd2hhdCB3ZSBhY3R1YWxseSBzY2FuIG91dCwgaS5l LiB0aGUgc291cmNlDQo+ID4gPiByZWN0YW5nbGUgb2YgdGhlDQo+ID4gPiBwbGFuZSBpbiBwaXhl bHMuIE1heWJlIHNvbWUgcm91bmRpbmcgaW52b2x2ZWQgcGVyaGFwcy4NCj4gPiANCj4gPiBJSVJD IHRoZSBkb2NzIGRvIHNheSB0aGUgaHcgdXNlcyB0aGUgcGxhbmUgc3RyaWRlIHJlZ2lzdGVyIGZp Z3VyZQ0KPiA+IHRoaXMNCj4gPiBvdXQuIEl0J3Mgc29tZXRoaW5nIEkndmUgYmVlbiB3b25kZXJp bmcgZm9yIGEgZmV3IHllYXJzIG5vdywgYnV0DQo+ID4gbmV2ZXINCj4gPiBhY3R1YWxseSB0ZXN0 ZWQgdG8gc2VlIGlmIHdlIGNhbiBnZXQgYXdheSB3aXRoIGxlc3MuDQoNClNvIHdlIGhhdmUgYSB2 b2x1bnRlZXIgdG8gaW1wbGVtZW50IHRoZSBzdG9sZW4gbWVtb3J5IGNoZWNrZXI/IDopDQoNCg0K PiBJbiB0aGF0IGNhc2UgYSBjb21tZW50IHdvdWxkIGJlIGdyZWF0LCBtYXliZSBldmVuIHdpdGgg dGhlIEJzcGVjDQo+IGNpdGF0aW9uLg0KDQpXZWxsLCB0aGUgZG9jcyB0YWxrIGFib3V0IHRoZSBz dHJpZGUgYW5kIHRoZSBIVyBndXlzIGNvbmZpcm1lZCBpdCwgc28NCml0IGRpZG4ndCBzZWVtIHRv IGJlIGFzIHNvbWV0aGluZyB0aGF0IG5lZWRlZCBhIGNvbW1lbnQuDQoNCllvdSBjYW4gYWxzbyBn aXQtYmxhbWUgaXQgOikNCg0KaHR0cDovL2NnaXQuZnJlZWRlc2t0b3Aub3JnL2RybS1pbnRlbC9j b21taXQvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWwNCl9mYmMuYz9pZD1jNGZmZDQwOTA4YzMw YTMzMjkxMjI3OTIwZTkyMWY2YjQ1YjllOGY3DQoNCg0KPiAtRGFuaWVsDQo+IA0KPiA+IA0KPiA+ ID4gDQo+ID4gPiBPciBkaWQgSSBtaXNzIHNvbWV0aGluZz8NCj4gPiA+IC1EYW5pZWwNCj4gPiA+ IA0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+IMKgc3RhdGljIHZvaWQgaTh4eF9mYmNf ZGVhY3RpdmF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQ0KPiA+ID4gPiAqZGV2X3ByaXYpDQo+ ID4gPiA+IMKgew0KPiA+ID4gPiDCoAl1MzIgZmJjX2N0bDsNCj4gPiA+ID4gQEAgLTYwNCwxMSAr NjQzLDE3IEBAIGFnYWluOg0KPiA+ID4gPiDCoAl9DQo+ID4gPiA+IMKgfQ0KPiA+ID4gPiDCoA0K PiA+ID4gPiAtc3RhdGljIGludCBpbnRlbF9mYmNfYWxsb2NfY2ZiKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlDQo+ID4gPiA+ICpkZXZfcHJpdiwgaW50IHNpemUsDQo+ID4gPiA+IC0JCQnCoMKgwqDC oMKgwqDCoGludCBmYl9jcHApDQo+ID4gPiA+ICtzdGF0aWMgaW50IGludGVsX2ZiY19hbGxvY19j ZmIoc3RydWN0IGludGVsX2NydGMgKmNydGMpDQo+ID4gPiA+IMKgew0KPiA+ID4gPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNydGMtPmJhc2UuZGV2LQ0KPiA+ID4gPiA+ ZGV2X3ByaXZhdGU7DQo+ID4gPiA+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRj LT5iYXNlLnByaW1hcnktDQo+ID4gPiA+ID5zdGF0ZS0+ZmI7DQo+ID4gPiA+IMKgCXN0cnVjdCBk cm1fbW1fbm9kZSAqdW5pbml0aWFsaXplZF92YXIoY29tcHJlc3NlZF9sbGIpOw0KPiA+ID4gPiAt CWludCByZXQ7DQo+ID4gPiA+ICsJaW50IHNpemUsIGZiX2NwcCwgcmV0Ow0KPiA+ID4gPiArDQo+ ID4gPiA+ICsJV0FSTl9PTihkZXZfcHJpdi0+ZmJjLmNvbXByZXNzZWRfZmIuYWxsb2NhdGVkKTsN Cj4gPiA+ID4gKw0KPiA+ID4gPiArCXNpemUgPSBpbnRlbF9mYmNfY2FsY3VsYXRlX2NmYl9zaXpl KGNydGMsIGZiKTsNCj4gPiA+ID4gKwlmYl9jcHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+ cGl4ZWxfZm9ybWF0LCAwKTsNCj4gPiA+ID4gwqANCj4gPiA+ID4gwqAJcmV0ID0gZmluZF9jb21w cmVzc2lvbl90aHJlc2hvbGQoZGV2X3ByaXYsICZkZXZfcHJpdi0NCj4gPiA+ID4gPmZiYy5jb21w cmVzc2VkX2ZiLA0KPiA+ID4gPiDCoAkJCQkJwqBzaXplLCBmYl9jcHApOw0KPiA+ID4gPiBAQCAt Njg1LDY0ICs3MzAsNiBAQCB2b2lkIGludGVsX2ZiY19jbGVhbnVwX2NmYihzdHJ1Y3QNCj4gPiA+ ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4gPiA+IMKgCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPmZiYy5sb2NrKTsNCj4gPiA+ID4gwqB9DQo+ID4gPiA+IMKgDQo+ID4gPiA+IC0v Kg0KPiA+ID4gPiAtICogRm9yIFNLTCssIHRoZSBwbGFuZSBzb3VyY2Ugc2l6ZSB1c2VkIGJ5IHRo ZSBoYXJkd2FyZSBpcw0KPiA+ID4gPiBiYXNlZCBvbiB0aGUgdmFsdWUgd2UNCj4gPiA+ID4gLSAq IHdyaXRlIHRvIHRoZSBQTEFORV9TSVpFIHJlZ2lzdGVyLiBGb3IgQkRXLSwgdGhlIGhhcmR3YXJl DQo+ID4gPiA+IGxvb2tzIGF0IHRoZSB2YWx1ZQ0KPiA+ID4gPiAtICogd2Ugd3JvdGUgdG8gUElQ RVNSQy4NCj4gPiA+ID4gLSAqLw0KPiA+ID4gPiAtc3RhdGljIHZvaWQgaW50ZWxfZmJjX2dldF9w bGFuZV9zb3VyY2Vfc2l6ZShzdHJ1Y3QgaW50ZWxfY3J0Yw0KPiA+ID4gPiAqY3J0YywNCj4gPiA+ ID4gLQkJCQkJwqDCoMKgwqBpbnQgKndpZHRoLCBpbnQNCj4gPiA+ID4gKmhlaWdodCkNCj4gPiA+ ID4gLXsNCj4gPiA+ID4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0N Cj4gPiA+ID4gLQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGNydGMtDQo+ID4gPiA+ID5iYXNlLnBy aW1hcnktPnN0YXRlKTsNCj4gPiA+ID4gLQlpbnQgdywgaDsNCj4gPiA+ID4gLQ0KPiA+ID4gPiAt CWlmIChpbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAocGxhbmVfc3RhdGUtDQo+ID4gPiA+ID5iYXNl LnJvdGF0aW9uKSkgew0KPiA+ID4gPiAtCQl3ID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0 ZS0+c3JjKSA+PiAxNjsNCj4gPiA+ID4gLQkJaCA9IGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0 ZS0+c3JjKSA+PiAxNjsNCj4gPiA+ID4gLQl9IGVsc2Ugew0KPiA+ID4gPiAtCQl3ID0gZHJtX3Jl Y3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2Ow0KPiA+ID4gPiAtCQloID0gZHJtX3Jl Y3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAxNjsNCj4gPiA+ID4gLQl9DQo+ID4gPiA+ IC0NCj4gPiA+ID4gLQlpZiAod2lkdGgpDQo+ID4gPiA+IC0JCSp3aWR0aCA9IHc7DQo+ID4gPiA+ IC0JaWYgKGhlaWdodCkNCj4gPiA+ID4gLQkJKmhlaWdodCA9IGg7DQo+ID4gPiA+IC19DQo+ID4g PiA+IC0NCj4gPiA+ID4gLXN0YXRpYyBpbnQgaW50ZWxfZmJjX2NhbGN1bGF0ZV9jZmJfc2l6ZShz dHJ1Y3QgaW50ZWxfY3J0Yw0KPiA+ID4gPiAqY3J0YykNCj4gPiA+ID4gLXsNCj4gPiA+ID4gLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0NCj4gPiA+ ID4gPmRldl9wcml2YXRlOw0KPiA+ID4gPiAtCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0g Y3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsNCj4gPiA+ID4gLQlpbnQgbGluZXM7DQo+ID4gPiA+IC0N Cj4gPiA+ID4gLQlpbnRlbF9mYmNfZ2V0X3BsYW5lX3NvdXJjZV9zaXplKGNydGMsIE5VTEwsICZs aW5lcyk7DQo+ID4gPiA+IC0JaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPj0gNykNCj4g PiA+ID4gLQkJbGluZXMgPSBtaW4obGluZXMsIDIwNDgpOw0KPiA+ID4gPiAtDQo+ID4gPiA+IC0J cmV0dXJuIGxpbmVzICogZmItPnBpdGNoZXNbMF07DQo+ID4gPiA+IC19DQo+ID4gPiA+IC0NCj4g PiA+ID4gLXN0YXRpYyBpbnQgaW50ZWxfZmJjX3NldHVwX2NmYihzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YykNCj4gPiA+ID4gLXsNCj4gPiA+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0NCj4gPiA+ID4gPmRldl9wcml2YXRlOw0KPiA+ID4gPiAt CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsNCj4g PiA+ID4gLQlpbnQgc2l6ZSwgY3BwOw0KPiA+ID4gPiAtDQo+ID4gPiA+IC0Jc2l6ZSA9IGludGVs X2ZiY19jYWxjdWxhdGVfY2ZiX3NpemUoY3J0Yyk7DQo+ID4gPiA+IC0JY3BwID0gZHJtX2Zvcm1h dF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7DQo+ID4gPiA+IC0NCj4gPiA+ID4gLQlp ZiAoZGV2X3ByaXYtPmZiYy5jb21wcmVzc2VkX2ZiLmFsbG9jYXRlZCAmJg0KPiA+ID4gPiAtCcKg wqDCoMKgc2l6ZSA8PSBkZXZfcHJpdi0+ZmJjLmNvbXByZXNzZWRfZmIuc2l6ZSAqDQo+ID4gPiA+ IGRldl9wcml2LT5mYmMudGhyZXNob2xkKQ0KPiA+ID4gPiAtCQlyZXR1cm4gMDsNCj4gPiA+ID4g LQ0KPiA+ID4gPiAtCS8qIFJlbGVhc2UgYW55IGN1cnJlbnQgYmxvY2sgKi8NCj4gPiA+ID4gLQlf X2ludGVsX2ZiY19jbGVhbnVwX2NmYihkZXZfcHJpdik7DQo+ID4gPiA+IC0NCj4gPiA+ID4gLQly ZXR1cm4gaW50ZWxfZmJjX2FsbG9jX2NmYihkZXZfcHJpdiwgc2l6ZSwgY3BwKTsNCj4gPiA+ID4g LX0NCj4gPiA+ID4gLQ0KPiA+ID4gPiDCoHN0YXRpYyBib29sIHN0cmlkZV9pc192YWxpZChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ID4gPiA+IMKgCQkJwqDCoMKgwqB1bnNp Z25lZCBpbnQgc3RyaWRlKQ0KPiA+ID4gPiDCoHsNCj4gPiA+ID4gQEAgLTkwNCw4ICs4OTEsMTkg QEAgc3RhdGljIHZvaWQgX19pbnRlbF9mYmNfdXBkYXRlKHN0cnVjdA0KPiA+ID4gPiBpbnRlbF9j cnRjICpjcnRjKQ0KPiA+ID4gPiDCoAkJZ290byBvdXRfZGlzYWJsZTsNCj4gPiA+ID4gwqAJfQ0K PiA+ID4gPiDCoA0KPiA+ID4gPiAtCWlmIChpbnRlbF9mYmNfc2V0dXBfY2ZiKGNydGMpKSB7DQo+ ID4gPiA+IC0JCXNldF9ub19mYmNfcmVhc29uKGRldl9wcml2LCAibm90IGVub3VnaCBzdG9sZW4N Cj4gPiA+ID4gbWVtb3J5Iik7DQo+ID4gPiA+ICsJLyogSXQgaXMgcG9zc2libGUgZm9yIHRoZSBy ZXF1aXJlZCBDRkIgc2l6ZSBjaGFuZ2UNCj4gPiA+ID4gd2l0aG91dCBhDQo+ID4gPiA+ICsJwqAq IGNydGMtPmRpc2FibGUgKyBjcnRjLT5lbmFibGUgc2luY2UgaXQgaXMgcG9zc2libGUNCj4gPiA+ ID4gdG8gY2hhbmdlIHRoZQ0KPiA+ID4gPiArCcKgKiBzdHJpZGUgd2l0aG91dCB0cmlnZ2VyaW5n IGEgZnVsbCBtb2Rlc2V0LiBTaW5jZSB3ZQ0KPiA+ID4gPiB0cnkgdG8NCj4gPiA+ID4gKwnCoCog b3Zlci1hbGxvY2F0ZSB0aGUgQ0ZCLCB0aGVyZSdzIGEgY2hhbmNlIHdlIG1heSBrZWVwDQo+ID4g PiA+IEZCQyBlbmFibGVkIGV2ZW4NCj4gPiA+ID4gKwnCoCogaWYgdGhpcyBoYXBwZW5zLCBidXQg aWYgd2UgZXhjZWVkIHRoZSBjdXJyZW50IENGQg0KPiA+ID4gPiBzaXplIHdlJ2xsIGhhdmUgdG8N Cj4gPiA+ID4gKwnCoCogZGlzYWJsZSBGQkMuIE5vdGljZSB0aGF0IGl0IHdvdWxkIGJlIHBvc3Np YmxlIHRvDQo+ID4gPiA+IGRpc2FibGUgRkJDLCB3YWl0DQo+ID4gPiA+ICsJwqAqIGZvciBhIGZy YW1lLCBmcmVlIHRoZSBzdG9sZW4gbm9kZSwgdGhlbiB0cnkgdG8NCj4gPiA+ID4gcmVlbmFibGUg RkJDIGluIGNhc2UNCj4gPiA+ID4gKwnCoCogd2UgZGlkbid0IGdldCBhbnkgaW52YWxpZGF0ZS9k ZWFjdGl2YXRlIGNhbGxzLCBidXQNCj4gPiA+ID4gdGhpcyB3b3VsZCByZXF1aXJlDQo+ID4gPiA+ ICsJwqAqIGEgbG90IG9mIHRyYWNraW5nIGp1c3QgZm9yIGEgY2FzZSB3ZSBleHBlY3QgdG8gYmUN Cj4gPiA+ID4gdW5jb21tb24sIHNvIHdlDQo+ID4gPiA+ICsJwqAqIGp1c3QgZG9uJ3QgaGF2ZSB0 aGlzIGNvZGUgZm9yIG5vdy4gKi8NCj4gPiA+ID4gKwlpZiAoaW50ZWxfZmJjX2NhbGN1bGF0ZV9j ZmJfc2l6ZShjcnRjLCBmYikgPg0KPiA+ID4gPiArCcKgwqDCoMKgZGV2X3ByaXYtPmZiYy5jb21w cmVzc2VkX2ZiLnNpemUgKiBkZXZfcHJpdi0NCj4gPiA+ID4gPmZiYy50aHJlc2hvbGQpIHsNCj4g PiA+ID4gKwkJc2V0X25vX2ZiY19yZWFzb24oZGV2X3ByaXYsICJDRkIgcmVxdWlyZW1lbnRzDQo+ ID4gPiA+IGNoYW5nZWQiKTsNCj4gPiA+ID4gwqAJCWdvdG8gb3V0X2Rpc2FibGU7DQo+ID4gPiA+ IMKgCX0NCj4gPiA+ID4gwqANCj4gPiA+ID4gQEAgLTk1OCw3ICs5NTYsNiBAQCBvdXRfZGlzYWJs ZToNCj4gPiA+ID4gwqAJCURSTV9ERUJVR19LTVMoInVuc3VwcG9ydGVkIGNvbmZpZywNCj4gPiA+ ID4gZGVhY3RpdmF0aW5nIEZCQ1xuIik7DQo+ID4gPiA+IMKgCQlfX2ludGVsX2ZiY19kZWFjdGl2 YXRlKGRldl9wcml2KTsNCj4gPiA+ID4gwqAJfQ0KPiA+ID4gPiAtCV9faW50ZWxfZmJjX2NsZWFu dXBfY2ZiKGRldl9wcml2KTsNCj4gPiA+ID4gwqB9DQo+ID4gPiA+IMKgDQo+ID4gPiA+IMKgLyoN Cj4gPiA+ID4gQEAgLTExMDIsNiArMTA5OSwxMSBAQCB2b2lkIGludGVsX2ZiY19lbmFibGUoc3Ry dWN0IGludGVsX2NydGMNCj4gPiA+ID4gKmNydGMpDQo+ID4gPiA+IMKgCQlnb3RvIG91dDsNCj4g PiA+ID4gwqAJfQ0KPiA+ID4gPiDCoA0KPiA+ID4gPiArCWlmIChpbnRlbF9mYmNfYWxsb2NfY2Zi KGNydGMpKSB7DQo+ID4gPiA+ICsJCXNldF9ub19mYmNfcmVhc29uKGRldl9wcml2LCAibm90IGVu b3VnaCBzdG9sZW4NCj4gPiA+ID4gbWVtb3J5Iik7DQo+ID4gPiA+ICsJCWdvdG8gb3V0Ow0KPiA+ ID4gPiArCX0NCj4gPiA+ID4gKw0KPiA+ID4gPiDCoAlEUk1fREVCVUdfS01TKCJFbmFibGluZyBG QkMgb24gcGlwZSAlY1xuIiwNCj4gPiA+ID4gcGlwZV9uYW1lKGNydGMtPnBpcGUpKTsNCj4gPiA+ ID4gwqAJZGV2X3ByaXYtPmZiYy5ub19mYmNfcmVhc29uID0gIkZCQyBlbmFibGVkIGJ1dCBub3QN Cj4gPiA+ID4gYWN0aXZlIHlldFxuIjsNCj4gPiA+ID4gwqANCj4gPiA+ID4gQEAgLTExMjksNiAr MTEzMSw4IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfZmJjX2Rpc2FibGUoc3RydWN0DQo+ID4gPiA+ IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+ID4gPiDCoA0KPiA+ID4gPiDCoAlEUk1f REVCVUdfS01TKCJEaXNhYmxpbmcgRkJDIG9uIHBpcGUgJWNcbiIsDQo+ID4gPiA+IHBpcGVfbmFt ZShjcnRjLT5waXBlKSk7DQo+ID4gPiA+IMKgDQo+ID4gPiA+ICsJX19pbnRlbF9mYmNfY2xlYW51 cF9jZmIoZGV2X3ByaXYpOw0KPiA+ID4gPiArDQo+ID4gPiA+IMKgCWRldl9wcml2LT5mYmMuZW5h YmxlZCA9IGZhbHNlOw0KPiA+ID4gPiDCoAlkZXZfcHJpdi0+ZmJjLmNydGMgPSBOVUxMOw0KPiA+ ID4gPiDCoH0NCj4gPiA+ID4gLS0gDQo+ID4gPiA+IDIuNi4xDQo+ID4gPiA+IA0KPiA+ID4gPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ID4gPiBJ bnRlbC1nZnggbWFpbGluZyBsaXN0DQo+ID4gPiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcNCj4gPiA+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeA0KPiA+ID4gDQo+ID4gPiAtLSANCj4gPiA+IERhbmllbCBWZXR0ZXINCj4g PiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbg0KPiA+ID4gaHR0cDovL2Js b2cuZmZ3bGwuY2gNCj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQo+ID4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0DQo+ID4gPiBJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+ID4gPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4DQo+ID4gDQo+ID4gLS0gDQo+ID4gVmlsbGUgU3ly asOkbMOkDQo+ID4gSW50ZWwgT1RDDQo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=