From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 15/18] drm/i915: alloc/free the FBC CFB during enable/disable Date: Thu, 22 Oct 2015 09:59:06 +0200 Message-ID: <20151022075906.GM16848@phenom.ffwll.local> 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> <1445452209.2522.77.camel@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 ESMTPS id 0B5D46E293 for ; Thu, 22 Oct 2015 00:59:11 -0700 (PDT) Received: by wicfx6 with SMTP id fx6so123587009wic.1 for ; Thu, 22 Oct 2015 00:59:09 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1445452209.2522.77.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Zanoni, Paulo R" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMjEsIDIwMTUgYXQgMDY6MzA6MDlQTSArMDAwMCwgWmFub25pLCBQYXVsbyBS IHdyb3RlOgo+IEVtIFF1YSwgMjAxNS0xMC0yMSDDoHMgMDk6MjQgKzAyMDAsIERhbmllbCBWZXR0 ZXIgZXNjcmV2ZXU6Cj4gPiBPbiBXZWQsIE9jdCAyMSwgMjAxNSBhdCAxMDoyMDo1NUFNICswMzAw LCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+IE9uIFdlZCwgT2N0IDIxLCAyMDE1IGF0IDA5 OjExOjA4QU0gKzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+ID4gT24gVHVlLCBPY3Qg MjAsIDIwMTUgYXQgMTE6NTA6MDFBTSAtMDIwMCwgUGF1bG8gWmFub25pIHdyb3RlOgo+ID4gPiA+ ID4gT25lIG9mIHRoZSBwcm9ibGVtcyB3aXRoIHRoZSBjdXJyZW50IGNvZGUgaXMgdGhhdCBpdCBm cmVlcyB0aGUKPiA+ID4gPiA+IENGQiBhbmQKPiA+ID4gPiA+IHJlbGVhc2VzIGl0cyBkcm1fbW0g bm9kZSBhcyBzb29uIGFzIHdlIGZsaXAgRkJDJ3MgZW5hYmxlIGJpdC4KPiA+ID4gPiA+IFRoaXMg aXMKPiA+ID4gPiA+IGJhZCBiZWNhdXNlIGFmdGVyIHdlIGRpc2JhbGUgRkJDIHRoZSBoYXJkd2Fy ZSBtYXkgc3RpbGwgdXNlIHRoZQo+ID4gPiA+ID4gQ0ZCCj4gPiA+ID4gPiBmb3IgdGhlIHJlc3Qg b2YgdGhlIGZyYW1lLCBzbyBpbiB0aGVvcnkgd2Ugc2hvdWxkIG9ubHkgcmVsZWFzZQo+ID4gPiA+ ID4gdGhlCj4gPiA+ID4gPiBkcm1fbW0gbm9kZSBvbmUgZnJhbWUgYWZ0ZXIgd2UgZGlzYWJsZSBG QkMuIE90aGVyd2lzZSwgYSBzdG9sZW4KPiA+ID4gPiA+IG1lbW9yeQo+ID4gPiA+ID4gYWxsb2Nh dGlvbiBkb25lIHJpZ2h0IGFmdGVyIGFuIEZCQyBkaXNhYmxlIG1heSByZXN1bHQgaW4gZWl0aGVy Cj4gPiA+ID4gPiBjb3JydXB0ZWQgbWVtb3J5IGZvciB0aGUgbmV3IG93bmVyIG9mIHRoYXQgbWVt b3J5IHJlZ2lvbiBvcgo+ID4gPiA+ID4gY29ycnVwdGVkCj4gPiA+ID4gPiBzY3JlZW4vdW5kZXJy dW5zIGluIGNhc2UgdGhlIG5ldyBvd25lciBjaGFuZ2VzIGl0IHdoaWxlIHRoZQo+ID4gPiA+ID4g aGFyZHdhcmUKPiA+ID4gPiA+IGlzIHN0aWxsIHJlYWRpbmcgaXQuIFRoaXMgY2FzZSBpcyBub3Qg ZXhhY3RseSBlYXN5IHRvIHJlcHJvZHVjZQo+ID4gPiA+ID4gc2luY2UKPiA+ID4gPiA+IHdlIGN1 cnJlbnRseSBkb24ndCBkbyBhIGxvdCBvZiBzdG9sZW4gbWVtb3J5IGFsbG9jYXRpb25zLCBidXQg SQo+ID4gPiA+ID4gc2VlCj4gPiA+ID4gPiBwYXRjaGVzIG9uIHRoZSBtYWlsaW5nIGxpc3QgdHJ5 aW5nIHRvIGV4cG9zZSBzdG9sZW4gbWVtb3J5IHRvCj4gPiA+ID4gPiB1c2VyCj4gPiA+ID4gPiBz cGFjZSwgc28gcmFjZXMgd2lsbCBiZSBwb3NzaWJsZS4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gSSB0 aG91Z2h0IGFib3V0IHRocmVlIGRpZmZlcmVudCBhcHByb2FjaGVzIHRvIHNvbHZlIHRoaXMsIGFu ZAo+ID4gPiA+ID4gdGhleSBhbGwKPiA+ID4gPiA+IGhhdmUgZG93bnNpZGVzLgo+ID4gPiA+ID4g Cj4gPiA+ID4gPiBUaGUgZmlyc3QgYXBwcm9hY2ggd291bGQgYmUgdG8gc2ltcGx5IHVzZSBtdWx0 aXBsZSBkcm1fbW0gbm9kZXMKPiA+ID4gPiA+IGFuZAo+ID4gPiA+ID4gZnJlZWluZyB0aGUgdW51 c2VkIG9uZXMgb25seSBhZnRlciBhIGZyYW1lIGhhcyBwYXNzZWQuIFRoZQo+ID4gPiA+ID4gcHJv YmxlbQo+ID4gPiA+ID4gd2l0aCB0aGlzIGFwcHJvYWNoIGlzIHRoYXQgc2luY2Ugc3RvbGVuIG1l bW9yeSBpcyByYXRoZXIgc21hbGwsCj4gPiA+ID4gPiB0aGVyZSdzIGEgcmlzayB3ZSBqdXN0IHdv bid0IGJlIGFibGUgdG8gYWxsb2NhdGUgYSBuZXcgQ0ZCIGZyb20KPiA+ID4gPiA+IHN0b2xlbgo+ ID4gPiA+ID4gaWYgdGhlIHByZXZpb3VzIG9uZSB3YXMgbm90IGZyZWVkIHlldC4gVGhpcyBjb3Vs ZCBoYXBwZW4gaW4KPiA+ID4gPiA+IGNhc2Ugd2UKPiA+ID4gPiA+IHF1aWNrbHkgZGlzYWJsZSBG QkMgZnJvbSBwaXBlIEEgYW5kIGRlY2lkZSB0byBlbmFibGUgaXQgb24gcGlwZQo+ID4gPiA+ID4g Qiwgb3IKPiA+ID4gPiA+IGp1c3QgaWYgd2UgY2hhbmdlIHBpcGUgQSdzIGZiIHN0cmlkZSB3aGls ZSBGQkMgaXMgZW5hYmxlZC4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gVGhlIHNlY29uZCBhcHByb2Fj aCB3b3VsZCBiZSBzaW1pbGFyIHRvIHRoZSBmaXJzdCBvbmUsIGJ1dAo+ID4gPiA+ID4gbWFpbnRh aW5pbmcKPiA+ID4gPiA+IGEgc2luZ2xlIGRybV9tbSBub2RlIGFuZCBrZWVwaW5nIHRyYWNrIG9m IHdoZW4gaXQgY2FuIGJlCj4gPiA+ID4gPiByZXVzZWQuIFRoaXMKPiA+ID4gPiA+IHdvdWxkIHJl bW92ZSB0aGUgZGlzYWR2YW50YWdlIG9mIG5vdCBoYXZpbmcgZW5vdWdoIHNwYWNlIGZvcgo+ID4g PiA+ID4gdHdvCj4gPiA+ID4gPiBub2RlcywgYnV0IHdvdWxkIGNyZWF0ZSB0aGUgbmV3IHByb2Js ZW0gd2hlcmUgd2UgbWF5IG5vdCBiZQo+ID4gPiA+ID4gYWJsZSB0bwo+ID4gPiA+ID4gZW5hYmxl IEZCQyBhdCB0aGUgcG9pbnQgaW50ZWxfZmJjX3VwZGF0ZSgpIGlzIGNhbGxlZCwgc28gd2UKPiA+ ID4gPiA+IHdvdWxkIGhhdmUKPiA+ID4gPiA+IHRvIGFkZCBtb3JlIGNvZGUgdG8gcmV0cnkgdXBk YXRpbmcgRkJDIGFmdGVyIHRoZSB0aW1lIGhhcwo+ID4gPiA+ID4gcGFzc2VkLiBBbmQKPiA+ID4g PiA+IHRoYXQgY2FuIHF1aWNrbHkgZ2V0IHRvbyBjb21wbGV4IHNpbmNlIHdlIGNhbiBnZXQgaW52 YWxpZGF0ZSwKPiA+ID4gPiA+IGZsdXNoLAo+ID4gPiA+ID4gZmxpcF9wcmVwYXJlLCBkaXNhYmxl IGFuZCBvdGhlciBjYWxscyBpbiB0aGUgbWlkZGxlIG9mIHRoZQo+ID4gPiA+ID4gd2FpdC4KPiA+ ID4gPiA+IAo+ID4gPiA+ID4gQm90aCBzb2x1dGlvbnMgYWJvdmUgLSBhbmQgYWxzbyB0aGUgY3Vy cmVudCBjb2RlIC0gaGF2ZSB0aGUKPiA+ID4gPiA+IHByb2JsZW0KPiA+ID4gPiA+IHRoYXQgd2Ug dW5uZWNlc3NhcmlseSBmcmVlK3JlYWxsb2MgRkJDIGR1cmluZyBpbnZhbGlkYXRlK2ZsdXNoCj4g PiA+ID4gPiBvcGVyYXRpb25zIGV2ZW4gaWYgdGhlIENGQiBzaXplIGRvZXNuJ3QgY2hhbmdlLgo+ ID4gPiA+ID4gCj4gPiA+ID4gPiBUaGUgdGhpcmQgb3B0aW9uIHdvdWxkIGJlIHRvIG1vdmUgdGhl IGFsbG9jYXRpb24vZGVhbGxvY2F0aW9uCj4gPiA+ID4gPiB0bwo+ID4gPiA+ID4gZW5hYmxlL2Rp c2FibGUuIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHRoZSBwaXBlIGlzIGFsd2F5cwo+ID4gPiA+ID4g ZGlzYWJsZWQgd2hlbgo+ID4gPiA+ID4gd2UgYWxsb2NhdGUvZGVhbGxvY2F0ZSB0aGUgQ0ZCLCBz byB0aGVyZSdzIG5vIHJpc2sgdGhhdCB0aGUgRkJDCj4gPiA+ID4gPiBoYXJkd2FyZSBtYXkgcmVh ZCBvciB3cml0ZSB0byB0aGUgbWVtb3J5IHJpZ2h0IGFmdGVyIGl0IGlzCj4gPiA+ID4gPiBmcmVl ZCBmcm9tCj4gPiA+ID4gPiBkcm1fbW0uIFRoZSBkb3duc2lkZSBpcyB0aGF0IGl0IGlzIHBvc3Np YmxlIGZvciB1c2VyIHNwYWNlIHRvCj4gPiA+ID4gPiBjaGFuZ2UKPiA+ID4gPiA+IHRoZSBidWZm ZXIgc3RyaWRlIHdpdGhvdXQgdHJpZ2dlcmluZyBhIGRpc2FibGUvZW5hYmxlIC0gb25seQo+ID4g PiA+ID4gZGVhY3RpdmF0ZS9hY3RpdmF0ZSAtLCBzbyB3ZSdsbCBoYXZlIHRvIGhhbmRsZSB0aGlz IGNhc2UKPiA+ID4gPiA+IHNvbWVob3csIGV2ZW4KPiA+ID4gPiA+IHRob3VnaCBpdCBpcyB1bmNv bW1vbiAtIHNlZSBpZ3QncyBrbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcKPiA+ID4gPiA+IHRlc3Qs Cj4gPiA+ID4gPiBmYmMtc3RyaWRlY2hhbmdlIHN1YnRlc3QuIEl0IGNvdWxkIGJlIHBvc3NpYmxl IHRvIGltcGxlbWVudCBhCj4gPiA+ID4gPiB3YXkgdG8KPiA+ID4gPiA+IGZyZWUrYWxsb2MgdGhl IENGQiBkdXJpbmcgc2FpZCBzdHJpZGUgY2hhbmdlLCBidXQgaXQgd291bGQKPiA+ID4gPiA+IGlu dm9sdmUgYQo+ID4gPiA+ID4gbG90IG9mIGJvb2sta2VlcGluZyAtIGV4YWN0bHkgYXMgbWVudGlv bmVkIGFib3ZlIC0ganVzdCBmb3IgYQo+ID4gPiA+ID4gcmFyZQo+ID4gPiA+ID4gY2FzZSwgc28g Zm9yIG5vdyBJJ2xsIGtlZXAgaXQgc2ltcGxlIGFuZCBqdXN0IGRlYWN0aXZhdGUgRkJDLgo+ID4g PiA+ID4gQmVzaWRlcywKPiA+ID4gPiA+IHdlIG1heSBub3QgZXZlbiBuZWVkIHRvIGRpc2FibGUg RkJDIHNpbmNlIHdlIGRvIENGQiBvdmVyLQo+ID4gPiA+ID4gYWxsb2NhdGlvbi4KPiA+ID4gPiA+ IAo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBp bnRlbC5jb20+Cj4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZmJjLmMgfCAxMzIgKysrKysrKysrKysrKysrKysrKystLS0KPiA+ID4gPiA+IC0tLS0t LS0tLS0tLS0tLS0KPiA+ID4gPiA+IMKgMSBmaWxlIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyks IDY0IGRlbGV0aW9ucygtKQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZmJjLmMKPiA+ID4gPiA+IGluZGV4IGJmODU1YjIuLjQ4ZDhjZmMgMTAwNjQ0Cj4g PiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4gPiA+IEBAIC01OSw2 ICs1OSw0NSBAQCBzdGF0aWMgdW5zaWduZWQgaW50Cj4gPiA+ID4gPiBnZXRfY3J0Y19mZW5jZV95 X29mZnNldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+ID4gPiA+IMKgCXJldHVybiBjcnRj LT5iYXNlLnkgLSBjcnRjLT5hZGp1c3RlZF95Owo+ID4gPiA+ID4gwqB9Cj4gPiA+ID4gPiDCoAo+ ID4gPiA+ID4gKy8qCj4gPiA+ID4gPiArICogRm9yIFNLTCssIHRoZSBwbGFuZSBzb3VyY2Ugc2l6 ZSB1c2VkIGJ5IHRoZSBoYXJkd2FyZSBpcwo+ID4gPiA+ID4gYmFzZWQgb24gdGhlIHZhbHVlIHdl Cj4gPiA+ID4gPiArICogd3JpdGUgdG8gdGhlIFBMQU5FX1NJWkUgcmVnaXN0ZXIuIEZvciBCRFct LCB0aGUgaGFyZHdhcmUKPiA+ID4gPiA+IGxvb2tzIGF0IHRoZSB2YWx1ZQo+ID4gPiA+ID4gKyAq IHdlIHdyb3RlIHRvIFBJUEVTUkMuCj4gPiA+ID4gPiArICovCj4gPiA+ID4gPiArc3RhdGljIHZv aWQgaW50ZWxfZmJjX2dldF9wbGFuZV9zb3VyY2Vfc2l6ZShzdHJ1Y3QgaW50ZWxfY3J0Ywo+ID4g PiA+ID4gKmNydGMsCj4gPiA+ID4gPiArCQkJCQnCoMKgwqDCoGludCAqd2lkdGgsIGludAo+ID4g PiA+ID4gKmhlaWdodCkKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPQo+ID4gPiA+ID4gKwkJCXRvX2ludGVsX3BsYW5lX3N0YXRl KGNydGMtCj4gPiA+ID4gPiA+YmFzZS5wcmltYXJ5LT5zdGF0ZSk7Cj4gPiA+ID4gPiArCWludCB3 LCBoOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlpZiAoaW50ZWxfcm90YXRpb25fOTBfb3JfMjcw KHBsYW5lX3N0YXRlLQo+ID4gPiA+ID4gPmJhc2Uucm90YXRpb24pKSB7Cj4gPiA+ID4gPiArCQl3 ID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAxNjsKPiA+ID4gPiA+ICsJ CWggPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7Cj4gPiA+ID4gPiAr CX0gZWxzZSB7Cj4gPiA+ID4gPiArCQl3ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5z cmMpID4+IDE2Owo+ID4gPiA+ID4gKwkJaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUt PnNyYykgPj4gMTY7Cj4gPiA+ID4gPiArCX0KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJaWYgKHdp ZHRoKQo+ID4gPiA+ID4gKwkJKndpZHRoID0gdzsKPiA+ID4gPiA+ICsJaWYgKGhlaWdodCkKPiA+ ID4gPiA+ICsJCSpoZWlnaHQgPSBoOwo+ID4gPiA+ID4gK30KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ICtzdGF0aWMgaW50IGludGVsX2ZiY19jYWxjdWxhdGVfY2ZiX3NpemUoc3RydWN0IGludGVsX2Ny dGMKPiA+ID4gPiA+ICpjcnRjLAo+ID4gPiA+ID4gKwkJCQkJc3RydWN0IGRybV9mcmFtZWJ1ZmZl cgo+ID4gPiA+ID4gKmZiKQo+ID4gPiA+ID4gK3sKPiA+ID4gPiA+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gY3J0Yy0+YmFzZS5kZXYtCj4gPiA+ID4gPiA+ZGV2X3ByaXZh dGU7Cj4gPiA+ID4gPiArCWludCBsaW5lczsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJaW50ZWxf ZmJjX2dldF9wbGFuZV9zb3VyY2Vfc2l6ZShjcnRjLCBOVUxMLCAmbGluZXMpOwo+ID4gPiA+ID4g KwlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA3KQo+ID4gPiA+ID4gKwkJbGluZXMg PSBtaW4obGluZXMsIDIwNDgpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlyZXR1cm4gbGluZXMg KiBmYi0+cGl0Y2hlc1swXTsKPiA+ID4gPiAKPiA+ID4gPiBXaHkgYXJlIHdlIGV2ZW4gbG9va2lu ZyBhdCBmYi0+cGl0Y2hlcyBoZXJlPyBJIHRob3VnaHQgdGhhdCBmb3IKPiA+ID4gPiBmYmMgd2UK PiA+ID4gPiBvbmx5IGNvbXByZXNzIHdoYXQgd2UgYWN0dWFsbHkgc2NhbiBvdXQsIGkuZS4gdGhl IHNvdXJjZQo+ID4gPiA+IHJlY3RhbmdsZSBvZiB0aGUKPiA+ID4gPiBwbGFuZSBpbiBwaXhlbHMu IE1heWJlIHNvbWUgcm91bmRpbmcgaW52b2x2ZWQgcGVyaGFwcy4KPiA+ID4gCj4gPiA+IElJUkMg dGhlIGRvY3MgZG8gc2F5IHRoZSBodyB1c2VzIHRoZSBwbGFuZSBzdHJpZGUgcmVnaXN0ZXIgZmln dXJlCj4gPiA+IHRoaXMKPiA+ID4gb3V0LiBJdCdzIHNvbWV0aGluZyBJJ3ZlIGJlZW4gd29uZGVy aW5nIGZvciBhIGZldyB5ZWFycyBub3csIGJ1dAo+ID4gPiBuZXZlcgo+ID4gPiBhY3R1YWxseSB0 ZXN0ZWQgdG8gc2VlIGlmIHdlIGNhbiBnZXQgYXdheSB3aXRoIGxlc3MuCj4gCj4gU28gd2UgaGF2 ZSBhIHZvbHVudGVlciB0byBpbXBsZW1lbnQgdGhlIHN0b2xlbiBtZW1vcnkgY2hlY2tlcj8gOikK PiAKPiAKPiA+IEluIHRoYXQgY2FzZSBhIGNvbW1lbnQgd291bGQgYmUgZ3JlYXQsIG1heWJlIGV2 ZW4gd2l0aCB0aGUgQnNwZWMKPiA+IGNpdGF0aW9uLgo+IAo+IFdlbGwsIHRoZSBkb2NzIHRhbGsg YWJvdXQgdGhlIHN0cmlkZSBhbmQgdGhlIEhXIGd1eXMgY29uZmlybWVkIGl0LCBzbwo+IGl0IGRp ZG4ndCBzZWVtIHRvIGJlIGFzIHNvbWV0aGluZyB0aGF0IG5lZWRlZCBhIGNvbW1lbnQuCj4gCj4g WW91IGNhbiBhbHNvIGdpdC1ibGFtZSBpdCA6KQo+IAo+IGh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9w Lm9yZy9kcm0taW50ZWwvY29tbWl0L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsCj4gX2ZiYy5j P2lkPWM0ZmZkNDA5MDhjMzBhMzMyOTEyMjc5MjBlOTIxZjZiNDViOWU4ZjcKCkluZGVlZCwgXG8v IGZvciBnb29kIGNvbW1pdCBtZXNzYWdlLiBTdGlsbCBzZWVtcyBmYWlybHkgc3VycHJpc2luZyB0 aGF0CnRoZSBodyBleHBlY3RzIHRoZSBzdHJpZGUgYW5kIG5vdCBqdXN0IHdoYXQgaXQgYWN0dWFs bHkgaGFzIHRvIHJlYWQuIEJ1dCBJCmd1ZXNzIEkndmUgbGVhcm5lZCB0aGF0IG5vdy4gQSBjb21t ZW50IGZvciB0aGUgbmV4dCBwZXJzb24gd291bGQgc3RpbGwgYmUKZ29vZCB0aG91Z2ggSSB0aGlu ay4gU29tZXRoaW5nIGxpa2U6CgoJLyogaHcgbmVlZHMgdGhlIGZ1bGwgYnVmZmVyIHN0cmlkZSwg bm90IGp1c3QgdGhlIGFjdGl2ZSBhcmVhICovCgpUbyBtYWtlIGl0IGNsZWFyIHRoaXMgaXMgMTAw JSBpbnRlbnRpb25hbCA7LSkKLURhbmllbAoKPiAKPiAKPiA+IC1EYW5pZWwKPiA+IAo+ID4gPiAK PiA+ID4gPiAKPiA+ID4gPiBPciBkaWQgSSBtaXNzIHNvbWV0aGluZz8KPiA+ID4gPiAtRGFuaWVs Cj4gPiA+ID4gCj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gwqBzdGF0aWMgdm9p ZCBpOHh4X2ZiY19kZWFjdGl2YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPiA+ID4gPiAq ZGV2X3ByaXYpCj4gPiA+ID4gPiDCoHsKPiA+ID4gPiA+IMKgCXUzMiBmYmNfY3RsOwo+ID4gPiA+ ID4gQEAgLTYwNCwxMSArNjQzLDE3IEBAIGFnYWluOgo+ID4gPiA+ID4gwqAJfQo+ID4gPiA+ID4g wqB9Cj4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gLXN0YXRpYyBpbnQgaW50ZWxfZmJjX2FsbG9jX2Nm YihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiA+ID4gKmRldl9wcml2LCBpbnQgc2l6ZSwK PiA+ID4gPiA+IC0JCQnCoMKgwqDCoMKgwqDCoGludCBmYl9jcHApCj4gPiA+ID4gPiArc3RhdGlj IGludCBpbnRlbF9mYmNfYWxsb2NfY2ZiKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ID4gPiA+ ID4gwqB7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNy dGMtPmJhc2UuZGV2LQo+ID4gPiA+ID4gPmRldl9wcml2YXRlOwo+ID4gPiA+ID4gKwlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGNydGMtPmJhc2UucHJpbWFyeS0KPiA+ID4gPiA+ID5zdGF0 ZS0+ZmI7Cj4gPiA+ID4gPiDCoAlzdHJ1Y3QgZHJtX21tX25vZGUgKnVuaW5pdGlhbGl6ZWRfdmFy KGNvbXByZXNzZWRfbGxiKTsKPiA+ID4gPiA+IC0JaW50IHJldDsKPiA+ID4gPiA+ICsJaW50IHNp emUsIGZiX2NwcCwgcmV0Owo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlXQVJOX09OKGRldl9wcml2 LT5mYmMuY29tcHJlc3NlZF9mYi5hbGxvY2F0ZWQpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlz aXplID0gaW50ZWxfZmJjX2NhbGN1bGF0ZV9jZmJfc2l6ZShjcnRjLCBmYik7Cj4gPiA+ID4gPiAr CWZiX2NwcCA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwo+ID4g PiA+ID4gwqAKPiA+ID4gPiA+IMKgCXJldCA9IGZpbmRfY29tcHJlc3Npb25fdGhyZXNob2xkKGRl dl9wcml2LCAmZGV2X3ByaXYtCj4gPiA+ID4gPiA+ZmJjLmNvbXByZXNzZWRfZmIsCj4gPiA+ID4g PiDCoAkJCQkJwqBzaXplLCBmYl9jcHApOwo+ID4gPiA+ID4gQEAgLTY4NSw2NCArNzMwLDYgQEAg dm9pZCBpbnRlbF9mYmNfY2xlYW51cF9jZmIoc3RydWN0Cj4gPiA+ID4gPiBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiA+ID4gPiA+IMKgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmZiYy5s b2NrKTsKPiA+ID4gPiA+IMKgfQo+ID4gPiA+ID4gwqAKPiA+ID4gPiA+IC0vKgo+ID4gPiA+ID4g LSAqIEZvciBTS0wrLCB0aGUgcGxhbmUgc291cmNlIHNpemUgdXNlZCBieSB0aGUgaGFyZHdhcmUg aXMKPiA+ID4gPiA+IGJhc2VkIG9uIHRoZSB2YWx1ZSB3ZQo+ID4gPiA+ID4gLSAqIHdyaXRlIHRv IHRoZSBQTEFORV9TSVpFIHJlZ2lzdGVyLiBGb3IgQkRXLSwgdGhlIGhhcmR3YXJlCj4gPiA+ID4g PiBsb29rcyBhdCB0aGUgdmFsdWUKPiA+ID4gPiA+IC0gKiB3ZSB3cm90ZSB0byBQSVBFU1JDLgo+ ID4gPiA+ID4gLSAqLwo+ID4gPiA+ID4gLXN0YXRpYyB2b2lkIGludGVsX2ZiY19nZXRfcGxhbmVf c291cmNlX3NpemUoc3RydWN0IGludGVsX2NydGMKPiA+ID4gPiA+ICpjcnRjLAo+ID4gPiA+ID4g LQkJCQkJwqDCoMKgwqBpbnQgKndpZHRoLCBpbnQKPiA+ID4gPiA+ICpoZWlnaHQpCj4gPiA+ID4g PiAtewo+ID4gPiA+ID4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0K PiA+ID4gPiA+IC0JCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShjcnRjLQo+ID4gPiA+ID4gPmJhc2Uu cHJpbWFyeS0+c3RhdGUpOwo+ID4gPiA+ID4gLQlpbnQgdywgaDsKPiA+ID4gPiA+IC0KPiA+ID4g PiA+IC0JaWYgKGludGVsX3JvdGF0aW9uXzkwX29yXzI3MChwbGFuZV9zdGF0ZS0KPiA+ID4gPiA+ ID5iYXNlLnJvdGF0aW9uKSkgewo+ID4gPiA+ID4gLQkJdyA9IGRybV9yZWN0X2hlaWdodCgmcGxh bmVfc3RhdGUtPnNyYykgPj4gMTY7Cj4gPiA+ID4gPiAtCQloID0gZHJtX3JlY3Rfd2lkdGgoJnBs YW5lX3N0YXRlLT5zcmMpID4+IDE2Owo+ID4gPiA+ID4gLQl9IGVsc2Ugewo+ID4gPiA+ID4gLQkJ dyA9IGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAxNjsKPiA+ID4gPiA+IC0J CWggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2Owo+ID4gPiA+ID4g LQl9Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtCWlmICh3aWR0aCkKPiA+ID4gPiA+IC0JCSp3aWR0 aCA9IHc7Cj4gPiA+ID4gPiAtCWlmIChoZWlnaHQpCj4gPiA+ID4gPiAtCQkqaGVpZ2h0ID0gaDsK PiA+ID4gPiA+IC19Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtc3RhdGljIGludCBpbnRlbF9mYmNf Y2FsY3VsYXRlX2NmYl9zaXplKHN0cnVjdCBpbnRlbF9jcnRjCj4gPiA+ID4gPiAqY3J0YykKPiA+ ID4gPiA+IC17Cj4gPiA+ID4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGNydGMtPmJhc2UuZGV2LQo+ID4gPiA+ID4gPmRldl9wcml2YXRlOwo+ID4gPiA+ID4gLQlzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGNydGMtPmJhc2UucHJpbWFyeS0+ZmI7Cj4gPiA+ID4g PiAtCWludCBsaW5lczsKPiA+ID4gPiA+IC0KPiA+ID4gPiA+IC0JaW50ZWxfZmJjX2dldF9wbGFu ZV9zb3VyY2Vfc2l6ZShjcnRjLCBOVUxMLCAmbGluZXMpOwo+ID4gPiA+ID4gLQlpZiAoSU5URUxf SU5GTyhkZXZfcHJpdiktPmdlbiA+PSA3KQo+ID4gPiA+ID4gLQkJbGluZXMgPSBtaW4obGluZXMs IDIwNDgpOwo+ID4gPiA+ID4gLQo+ID4gPiA+ID4gLQlyZXR1cm4gbGluZXMgKiBmYi0+cGl0Y2hl c1swXTsKPiA+ID4gPiA+IC19Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtc3RhdGljIGludCBpbnRl bF9mYmNfc2V0dXBfY2ZiKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ID4gPiA+ID4gLXsKPiA+ ID4gPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY3J0Yy0+YmFzZS5k ZXYtCj4gPiA+ID4gPiA+ZGV2X3ByaXZhdGU7Cj4gPiA+ID4gPiAtCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsKPiA+ID4gPiA+IC0JaW50IHNpemUs IGNwcDsKPiA+ID4gPiA+IC0KPiA+ID4gPiA+IC0Jc2l6ZSA9IGludGVsX2ZiY19jYWxjdWxhdGVf Y2ZiX3NpemUoY3J0Yyk7Cj4gPiA+ID4gPiAtCWNwcCA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZi LT5waXhlbF9mb3JtYXQsIDApOwo+ID4gPiA+ID4gLQo+ID4gPiA+ID4gLQlpZiAoZGV2X3ByaXYt PmZiYy5jb21wcmVzc2VkX2ZiLmFsbG9jYXRlZCAmJgo+ID4gPiA+ID4gLQnCoMKgwqDCoHNpemUg PD0gZGV2X3ByaXYtPmZiYy5jb21wcmVzc2VkX2ZiLnNpemUgKgo+ID4gPiA+ID4gZGV2X3ByaXYt PmZiYy50aHJlc2hvbGQpCj4gPiA+ID4gPiAtCQlyZXR1cm4gMDsKPiA+ID4gPiA+IC0KPiA+ID4g PiA+IC0JLyogUmVsZWFzZSBhbnkgY3VycmVudCBibG9jayAqLwo+ID4gPiA+ID4gLQlfX2ludGVs X2ZiY19jbGVhbnVwX2NmYihkZXZfcHJpdik7Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtCXJldHVy biBpbnRlbF9mYmNfYWxsb2NfY2ZiKGRldl9wcml2LCBzaXplLCBjcHApOwo+ID4gPiA+ID4gLX0K PiA+ID4gPiA+IC0KPiA+ID4gPiA+IMKgc3RhdGljIGJvb2wgc3RyaWRlX2lzX3ZhbGlkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiA+IMKgCQkJwqDCoMKgwqB1bnNp Z25lZCBpbnQgc3RyaWRlKQo+ID4gPiA+ID4gwqB7Cj4gPiA+ID4gPiBAQCAtOTA0LDggKzg5MSwx OSBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX2ZiY191cGRhdGUoc3RydWN0Cj4gPiA+ID4gPiBpbnRl bF9jcnRjICpjcnRjKQo+ID4gPiA+ID4gwqAJCWdvdG8gb3V0X2Rpc2FibGU7Cj4gPiA+ID4gPiDC oAl9Cj4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gLQlpZiAoaW50ZWxfZmJjX3NldHVwX2NmYihjcnRj KSkgewo+ID4gPiA+ID4gLQkJc2V0X25vX2ZiY19yZWFzb24oZGV2X3ByaXYsICJub3QgZW5vdWdo IHN0b2xlbgo+ID4gPiA+ID4gbWVtb3J5Iik7Cj4gPiA+ID4gPiArCS8qIEl0IGlzIHBvc3NpYmxl IGZvciB0aGUgcmVxdWlyZWQgQ0ZCIHNpemUgY2hhbmdlCj4gPiA+ID4gPiB3aXRob3V0IGEKPiA+ ID4gPiA+ICsJwqAqIGNydGMtPmRpc2FibGUgKyBjcnRjLT5lbmFibGUgc2luY2UgaXQgaXMgcG9z c2libGUKPiA+ID4gPiA+IHRvIGNoYW5nZSB0aGUKPiA+ID4gPiA+ICsJwqAqIHN0cmlkZSB3aXRo b3V0IHRyaWdnZXJpbmcgYSBmdWxsIG1vZGVzZXQuIFNpbmNlIHdlCj4gPiA+ID4gPiB0cnkgdG8K PiA+ID4gPiA+ICsJwqAqIG92ZXItYWxsb2NhdGUgdGhlIENGQiwgdGhlcmUncyBhIGNoYW5jZSB3 ZSBtYXkga2VlcAo+ID4gPiA+ID4gRkJDIGVuYWJsZWQgZXZlbgo+ID4gPiA+ID4gKwnCoCogaWYg dGhpcyBoYXBwZW5zLCBidXQgaWYgd2UgZXhjZWVkIHRoZSBjdXJyZW50IENGQgo+ID4gPiA+ID4g c2l6ZSB3ZSdsbCBoYXZlIHRvCj4gPiA+ID4gPiArCcKgKiBkaXNhYmxlIEZCQy4gTm90aWNlIHRo YXQgaXQgd291bGQgYmUgcG9zc2libGUgdG8KPiA+ID4gPiA+IGRpc2FibGUgRkJDLCB3YWl0Cj4g PiA+ID4gPiArCcKgKiBmb3IgYSBmcmFtZSwgZnJlZSB0aGUgc3RvbGVuIG5vZGUsIHRoZW4gdHJ5 IHRvCj4gPiA+ID4gPiByZWVuYWJsZSBGQkMgaW4gY2FzZQo+ID4gPiA+ID4gKwnCoCogd2UgZGlk bid0IGdldCBhbnkgaW52YWxpZGF0ZS9kZWFjdGl2YXRlIGNhbGxzLCBidXQKPiA+ID4gPiA+IHRo aXMgd291bGQgcmVxdWlyZQo+ID4gPiA+ID4gKwnCoCogYSBsb3Qgb2YgdHJhY2tpbmcganVzdCBm b3IgYSBjYXNlIHdlIGV4cGVjdCB0byBiZQo+ID4gPiA+ID4gdW5jb21tb24sIHNvIHdlCj4gPiA+ ID4gPiArCcKgKiBqdXN0IGRvbid0IGhhdmUgdGhpcyBjb2RlIGZvciBub3cuICovCj4gPiA+ID4g PiArCWlmIChpbnRlbF9mYmNfY2FsY3VsYXRlX2NmYl9zaXplKGNydGMsIGZiKSA+Cj4gPiA+ID4g PiArCcKgwqDCoMKgZGV2X3ByaXYtPmZiYy5jb21wcmVzc2VkX2ZiLnNpemUgKiBkZXZfcHJpdi0K PiA+ID4gPiA+ID5mYmMudGhyZXNob2xkKSB7Cj4gPiA+ID4gPiArCQlzZXRfbm9fZmJjX3JlYXNv bihkZXZfcHJpdiwgIkNGQiByZXF1aXJlbWVudHMKPiA+ID4gPiA+IGNoYW5nZWQiKTsKPiA+ID4g PiA+IMKgCQlnb3RvIG91dF9kaXNhYmxlOwo+ID4gPiA+ID4gwqAJfQo+ID4gPiA+ID4gwqAKPiA+ ID4gPiA+IEBAIC05NTgsNyArOTU2LDYgQEAgb3V0X2Rpc2FibGU6Cj4gPiA+ID4gPiDCoAkJRFJN X0RFQlVHX0tNUygidW5zdXBwb3J0ZWQgY29uZmlnLAo+ID4gPiA+ID4gZGVhY3RpdmF0aW5nIEZC Q1xuIik7Cj4gPiA+ID4gPiDCoAkJX19pbnRlbF9mYmNfZGVhY3RpdmF0ZShkZXZfcHJpdik7Cj4g PiA+ID4gPiDCoAl9Cj4gPiA+ID4gPiAtCV9faW50ZWxfZmJjX2NsZWFudXBfY2ZiKGRldl9wcml2 KTsKPiA+ID4gPiA+IMKgfQo+ID4gPiA+ID4gwqAKPiA+ID4gPiA+IMKgLyoKPiA+ID4gPiA+IEBA IC0xMTAyLDYgKzEwOTksMTEgQEAgdm9pZCBpbnRlbF9mYmNfZW5hYmxlKHN0cnVjdCBpbnRlbF9j cnRjCj4gPiA+ID4gPiAqY3J0YykKPiA+ID4gPiA+IMKgCQlnb3RvIG91dDsKPiA+ID4gPiA+IMKg CX0KPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiArCWlmIChpbnRlbF9mYmNfYWxsb2NfY2ZiKGNydGMp KSB7Cj4gPiA+ID4gPiArCQlzZXRfbm9fZmJjX3JlYXNvbihkZXZfcHJpdiwgIm5vdCBlbm91Z2gg c3RvbGVuCj4gPiA+ID4gPiBtZW1vcnkiKTsKPiA+ID4gPiA+ICsJCWdvdG8gb3V0Owo+ID4gPiA+ ID4gKwl9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiDCoAlEUk1fREVCVUdfS01TKCJFbmFibGluZyBG QkMgb24gcGlwZSAlY1xuIiwKPiA+ID4gPiA+IHBpcGVfbmFtZShjcnRjLT5waXBlKSk7Cj4gPiA+ ID4gPiDCoAlkZXZfcHJpdi0+ZmJjLm5vX2ZiY19yZWFzb24gPSAiRkJDIGVuYWJsZWQgYnV0IG5v dAo+ID4gPiA+ID4gYWN0aXZlIHlldFxuIjsKPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiBAQCAtMTEy OSw2ICsxMTMxLDggQEAgc3RhdGljIHZvaWQgX19pbnRlbF9mYmNfZGlzYWJsZShzdHJ1Y3QKPiA+ ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gPiA+ID4gwqAKPiA+ID4gPiA+ IMKgCURSTV9ERUJVR19LTVMoIkRpc2FibGluZyBGQkMgb24gcGlwZSAlY1xuIiwKPiA+ID4gPiA+ IHBpcGVfbmFtZShjcnRjLT5waXBlKSk7Cj4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gKwlfX2ludGVs X2ZiY19jbGVhbnVwX2NmYihkZXZfcHJpdik7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiDCoAlkZXZf cHJpdi0+ZmJjLmVuYWJsZWQgPSBmYWxzZTsKPiA+ID4gPiA+IMKgCWRldl9wcml2LT5mYmMuY3J0 YyA9IE5VTEw7Cj4gPiA+ID4gPiDCoH0KPiA+ID4gPiA+IC0tIAo+ID4gPiA+ID4gMi42LjEKPiA+ ID4gPiA+IAo+ID4gPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiA+ID4gPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+ID4gPiA+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiA+IGh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiA+ID4gPiAKPiA+ID4gPiAtLSAK PiA+ID4gPiBEYW5pZWwgVmV0dGVyCj4gPiA+ID4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENv cnBvcmF0aW9uCj4gPiA+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPiA+ID4gPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gPiA+IEludGVsLWdmeCBt YWlsaW5nIGxpc3QKPiA+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo+ID4gPiAKPiA+ID4gLS0gCj4gPiA+IFZpbGxlIFN5cmrDpGzDpAo+ID4gPiBJbnRlbCBPVEMK PiA+IAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0 aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==