From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH v8] drm/i915: Extend LRC pinning to cover GPU context writeback Date: Thu, 10 Dec 2015 18:22:35 +0200 Message-ID: <87si3axohg.fsf@gaia.fi.intel.com> References: <1449508238-27500-1-git-send-email-nicholas.hoath@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 ESMTP id 6BE9C6EAB9 for ; Thu, 10 Dec 2015 08:24:08 -0800 (PST) In-Reply-To: <1449508238-27500-1-git-send-email-nicholas.hoath@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Nick Hoath , intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org TmljayBIb2F0aCA8bmljaG9sYXMuaG9hdGhAaW50ZWwuY29tPiB3cml0ZXM6Cgo+IFVzZSB0aGUg Zmlyc3QgcmV0aXJlZCByZXF1ZXN0IG9uIGEgbmV3IGNvbnRleHQgdG8gdW5waW4KPiB0aGUgb2xk IGNvbnRleHQuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBodyBjb250ZXh0IHJlbWFpbnMKPiBib3Vu ZCB1bnRpbCBpdCBoYXMgYmVlbiB3cml0dGVuIGJhY2sgdG8gYnkgdGhlIEdQVS4KPiBOb3cgdGhh dCB0aGUgY29udGV4dCBpcyBwaW5uZWQgdW50aWwgbGF0ZXIgaW4gdGhlIHJlcXVlc3QvY29udGV4 dAo+IGxpZmVjeWNsZSwgaXQgbm8gbG9uZ2VyIG5lZWRzIHRvIGJlIHBpbm5lZCBmcm9tIGNvbnRl eHRfcXVldWUgdG8KPiByZXRpcmVfcmVxdWVzdHMuCj4gVGhpcyBmaXhlcyBhbiBpc3N1ZSB3aXRo IEd1QyBzdWJtaXNzaW9uIHdoZXJlIHRoZSBHUFUgbWlnaHQgbm90Cj4gaGF2ZSBmaW5pc2hlZCB3 cml0aW5nIGJhY2sgdGhlIGNvbnRleHQgYmVmb3JlIGl0IGlzIHVucGlubmVkLiBUaGlzCj4gcmVz dWx0cyBpbiBhIEdQVSBoYW5nLgo+Cj4gdjI6IE1vdmVkIHRoZSBuZXcgcGluIHRvIGNvdmVyIEd1 QyBzdWJtaXNzaW9uIChBbGV4IERhaSkKPiAgICAgTW92ZWQgdGhlIG5ldyB1bnBpbiB0byByZXF1 ZXN0X3JldGlyZSB0byBmaXggY292ZXJhZ2UgbGVhawo+IHYzOiBBZGRlZCBzd2l0Y2ggdG8gZGVm YXVsdCBjb250ZXh0IGlmIGZyZWVpbmcgYSBzdGlsbCBwaW5uZWQKPiAgICAgY29udGV4dCBqdXN0 IGluIGNhc2UgdGhlIGh3IHdhcyBhY3R1YWxseSBzdGlsbCB1c2luZyBpdAo+IHY0OiBVbndyYXBw ZWQgY29udGV4dCB1bnBpbiB0byBhbGxvdyBjYWxsaW5nIHdpdGhvdXQgYSByZXF1ZXN0Cj4gdjU6 IE9ubHkgY3JlYXRlIGEgc3dpdGNoIHRvIGlkbGUgY29udGV4dCBpZiB0aGUgcmluZyBkb2Vzbid0 Cj4gICAgIGFscmVhZHkgaGF2ZSBhIHJlcXVlc3QgcGVuZGluZyBvbiBpdCAoQWxleCBEYWkpCj4g ICAgIFJlbmFtZSB1bnNhdmVkIHRvIGRpcnR5IHRvIGF2b2lkIGRvdWJsZSBuZWdhdGl2ZXMgKERh dmUgR29yZG9uKQo+ICAgICBDaGFuZ2VkIF9ub19yZXEgcG9zdGZpeCB0byBfXyBwcmVmaXggZm9y IGNvbnNpc3RlbmN5IChEYXZlIEdvcmRvbikKPiAgICAgU3BsaXQgb3V0IHBlciBlbmdpbmUgY2xl YW51cCBmcm9tIGNvbnRleHRfZnJlZSBhcyBpdAo+ICAgICB3YXMgZ2V0dGluZyB1bndpZWxkeQo+ ICAgICBDb3JyZWN0ZWQgbG9ja2luZyAoRGF2ZSBHb3Jkb24pCj4gdjY6IFJlbW92ZWQgc29tZSBi aWtlc2hlZGRpbmcgKE1pa2EgS3VvcHBhbGEpCj4gICAgIEFkZGVkIGV4cGxhbmF0aW9uIG9mIHRo ZSBHdUMgaGFuZyB0aGF0IHRoaXMgZml4ZXMgKERhbmllbCBWZXR0ZXIpCj4gdjc6IFJlbW92ZWQg ZXh0cmEgcGVyIHJlcXVlc3QgcGlubmluZyBmcm9tIHJpbmcgcmVzZXQgY29kZSAoQWxleCBEYWkp Cj4gICAgIEFkZGVkIGZvcmNlZCByaW5nIHVucGluL2NsZWFuIGluIGVycm9yIGNhc2UgaW4gY29u dGV4dCBmcmVlIChBbGV4IERhaSkKPiB2ODogUmVuYW1lZCBscmMgc3BlY2lmaWMgbGFzdF9jb250 ZXh0IHRvIGxyY19sYXN0X2NvbnRleHQgYXMgdGhlcmUKPiAgICAgd2VyZSBzb21lIHJlc2V0IGNh c2VzIHdoZXJlIHRoZSBjb2RlcGF0aHMgbGVha2VkIChNaWthIEt1b3BwYWxhKQo+ICAgICBOVUxM J2QgbGFzdF9jb250ZXh0IGluIHJlc2V0IGNhc2UgLSB0aGVyZSB3YXMgYSBwb2ludGVyIGxlYWsK PiAgICAgaWYgc29tZW9uZSBkaWQgcmVzZXQtPmNsb3NlIGNvbnRleHQuCj4gU2lnbmVkLW9mZi1i eTogTmljayBIb2F0aCA8bmljaG9sYXMuaG9hdGhAaW50ZWwuY29tPgo+IElzc3VlOiBWSVotNDI3 Nwo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IENjOiBEYXZp ZCBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPiBDYzogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29t Pgo+IENjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KClRo ZXJlIGlzIGEgc3BsYXQgd2l0aCB0aGlzIHBhdGNoIGluY2x1ZGVkLiBCdXQgSSBoYXZlbid0IHll dCBjaGVja2VkCmlmIHBsYWluIGRpbiBoYXMgdGhpcyBhbHNvLgoKVGhlIHNjcmlwdCB0byByZXBy byBpczoKCmludGVsLWdwdS10b29scy90ZXN0cy9kcnZfbW9kdWxlX3JlbG9hZF9iYXNpYwppbnRl bC1ncHUtdG9vbHMvdGVzdHMvZHJ2X2hhbmdtYW4gLS1yIGVycm9yLXN0YXRlLWJhc2ljCmludGVs LWdwdS10b29scy90ZXN0cy9rbXNfYWRkZmJfYmFzaWMgLS1yIGFkZGZiMjUtZnJhbWVidWZmZXIt dnMtc2V0LXRpbGluZwppbnRlbC1ncHUtdG9vbHMvdGVzdHMvZ2VtX21tYXBfZ3R0IC0tciBiYXNp Yy13cml0ZS1ndHQtbm8tcHJlZmF1bHQKClRoYW5rcywKLU1pa2EKClsgIDQyMC40OTc2ODFdIENv bnNvbGU6IHN3aXRjaGluZyB0byBjb2xvdXIgZHVtbXkgZGV2aWNlIDgweDI1ClsgIDQyMS4xNzU3 NThdIEJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNl IGF0IDAwMDAwMDAwMDAwMDAwNjAKWyAgNDIxLjE3NTc2N10gSVA6IFs8ZmZmZmZmZmZhMDY0YTYz MT5dIGludGVsX2xyX2NvbnRleHRfZnJlZSsweDQxLzB4MjEwIFtpOTE1XQpbICA0MjEuMTc1Nzk4 XSBQR0QgMCAKWyAgNDIxLjE3NTgwM10gT29wczogMDAwMCBbIzFdIFNNUCBERUJVR19QQUdFQUxM T0MgClsgIDQyMS4xNzU4MTBdIE1vZHVsZXMgbGlua2VkIGluOiBzbmRfaGRhX2NvZGVjX2hkbWkg bmxzX2lzbzg4NTlfMSBpOTE1KC0pIGkyY19hbGdvX2JpdCB4ODZfcGtnX3RlbXBfdGhlcm1hbCBk cm1fa21zX2hlbHBlciBjb3JldGVtcCBzeXNjb3B5YXJlYSBzeXNmaWxscmVjdCBzeXNpbWdibHQg ZmJfc3lzX2ZvcHMga3ZtX2ludGVsIGRybSBrdm0gaXJxYnlwYXNzIGNyY3QxMGRpZl9wY2xtdWwg c25kX2hkYV9jb2RlYyBjcmMzMl9wY2xtdWwgc25kX2hkYV9jb3JlIHNuZF9wY20gYWVzbmlfaW50 ZWwgYWVzX3g4Nl82NCBnbHVlX2hlbHBlciBscncgc25kX2h3ZGVwIGdmMTI4bXVsIGFibGtfaGVs cGVyIGNyeXB0ZCBzbmRfc2VxX21pZGkgc25kX3NlcV9taWRpX2V2ZW50IHNuZF9yYXdtaWRpIHNu ZF9zZXEgc2VyaW9fcmF3IHNuZF90aW1lciBzbmRfc2VxX2RldmljZSBtZWlfbWUgc25kIG1laSBz b3VuZGNvcmUgbHBjX2ljaCB2aWRlbyBhY3BpX3BhZCBtYWNfaGlkIHBhcnBvcnRfcGMgcHBkZXYg bHAgcGFycG9ydCBoaWRfZ2VuZXJpYyB1c2JoaWQgaGlkIGUxMDAwZSBwdHAgYWhjaSBsaWJhaGNp IHBwc19jb3JlIHNkaGNpX2FjcGkgc2RoY2kgW2xhc3QgdW5sb2FkZWQ6IHNuZF9oZGFfaW50ZWxd ClsgIDQyMS4xNzU4OTJdIENQVTogMyBQSUQ6IDE4NzIgQ29tbTogcm1tb2QgTm90IHRhaW50ZWQg NC40LjAtcmM0KyAjMzQKWyAgNDIxLjE3NTg5OF0gSGFyZHdhcmUgbmFtZTogSW50ZWwgQ29ycG9y YXRpb24gQnJvYWR3ZWxsIENsaWVudCBwbGF0Zm9ybS9TYXdUb290aCBQZWFrLCBCSU9TIEJEVy1F MVIxLjg2Qy4wMTE1LlIwMC4xNTAyMTIyMTE5IDAyLzEyLzIwMTUKWyAgNDIxLjE3NTkwNl0gdGFz azogZmZmZjg4MDBhN2UxMjdjMCB0aTogZmZmZjg4MDE0NTcwNDAwMCB0YXNrLnRpOiBmZmZmODgw MTQ1NzA0MDAwClsgIDQyMS4xNzU5MTNdIFJJUDogMDAxMDpbPGZmZmZmZmZmYTA2NGE2MzE+XSAg WzxmZmZmZmZmZmEwNjRhNjMxPl0gaW50ZWxfbHJfY29udGV4dF9mcmVlKzB4NDEvMHgyMTAgW2k5 MTVdClsgIDQyMS4xNzU5MzddIFJTUDogMDAxODpmZmZmODgwMTQ1NzA3Y2U4ICBFRkxBR1M6IDAw MDEwMjg2ClsgIDQyMS4xNzU5NDFdIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmY4ODAw YTdhYjg3MzggUkNYOiAwMDAwMDAwMDAwMDAwMDBmClsgIDQyMS4xNzU5NDZdIFJEWDogMDAwMDAw MDAwMDAwMDAwMCBSU0k6IGZmZmZmZmZmODFlNWMyNDAgUkRJOiBmZmZmODgwMGE3YWI4NmQ4Clsg IDQyMS4xNzU5NTJdIFJCUDogZmZmZjg4MDE0NTcwN2QyMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDEg UjA5OiAwMDAwMDAwMDAwMDAwMDAwClsgIDQyMS4xNzU5NTddIFIxMDogMDAwMDAwMDAwMDAwMDAw MCBSMTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiBmZmZmODgwMGE5ZjczMWUwClsgIDQyMS4xNzU5 NjJdIFIxMzogZmZmZjg4MDBhOWMwODNjMCBSMTQ6IGZmZmY4ODAxNDgxZWIxYjAgUjE1OiBmZmZm ODgwMGE3YWI4NmQ4ClsgIDQyMS4xNzU5NjddIEZTOiAgMDAwMDdmY2Y5ZjUyMzcwMCgwMDAwKSBH UzpmZmZmODgwMTRlMmMwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgNDIxLjE3 NTk3NF0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpb ICA0MjEuMTc1OTc5XSBDUjI6IDAwMDAwMDAwMDAwMDAwNjAgQ1IzOiAwMDAwMDAwMTQzMTE5MDAw IENSNDogMDAwMDAwMDAwMDM0MDZlMApbICA0MjEuMTc1OTg0XSBTdGFjazoKWyAgNDIxLjE3NTk4 N10gIGZmZmY4ODAwYTdhYjg3YjAgZmZmZjg4MDE0NTcwN2QxMCBmZmZmODgwMGE5Zjc5MWYwIGZm ZmY4ODAwYTdhYjg2ZDgKWyAgNDIxLjE3NTk5Nl0gIGZmZmY4ODAwYTdhYjg2ZDggZmZmZmZmZmZh MDZmODBlMCAwMDAwNTU3ZjdmNWFkMDkwIGZmZmY4ODAxNDU3MDdkNDgKWyAgNDIxLjE3NjAwNF0g IGZmZmZmZmZmYTA2MjRiOGMgZmZmZjg4MDBhOWY3OTFmMCBmZmZmODgwMGE5Zjc5MWYwIGZmZmY4 ODAwYTdhYjg2ZDgKWyAgNDIxLjE3NjAxM10gQ2FsbCBUcmFjZToKWyAgNDIxLjE3NjAyOF0gIFs8 ZmZmZmZmZmZhMDYyNGI4Yz5dIGk5MTVfZ2VtX2NvbnRleHRfZnJlZSsweDFiYy8weDIyMCBbaTkx NV0KWyAgNDIxLjE3NjA0NF0gIFs8ZmZmZmZmZmZhMDYyNTNhMj5dIGk5MTVfZ2VtX2NvbnRleHRf ZmluaSsweGEyLzB4MTQwIFtpOTE1XQpbICA0MjEuMTc2MDY4XSAgWzxmZmZmZmZmZmEwNmJjOGYy Pl0gaTkxNV9kcml2ZXJfdW5sb2FkKzB4MTYyLzB4MjkwIFtpOTE1XQpbICA0MjEuMTc2MDgyXSAg WzxmZmZmZmZmZmEwNGE4ODc5Pl0gZHJtX2Rldl91bnJlZ2lzdGVyKzB4MjkvMHhiMCBbZHJtXQpb ICA0MjEuMTc2MDk0XSAgWzxmZmZmZmZmZmEwNGE4ZjMzPl0gZHJtX3B1dF9kZXYrMHgyMy8weDcw IFtkcm1dClsgIDQyMS4xNzYxMDVdICBbPGZmZmZmZmZmYTA1ZmIxYTU+XSBpOTE1X3BjaV9yZW1v dmUrMHgxNS8weDIwIFtpOTE1XQpbICA0MjEuMTc2MTEyXSAgWzxmZmZmZmZmZjgxNDVmZmQ5Pl0g cGNpX2RldmljZV9yZW1vdmUrMHgzOS8weGMwClsgIDQyMS4xNzYxMTldICBbPGZmZmZmZmZmODE1 NmQzYTY+XSBfX2RldmljZV9yZWxlYXNlX2RyaXZlcisweDk2LzB4MTMwClsgIDQyMS4xNzYxMjVd ICBbPGZmZmZmZmZmODE1NmQ1NTg+XSBkcml2ZXJfZGV0YWNoKzB4YjgvMHhjMApbICA0MjEuMTc2 MTMxXSAgWzxmZmZmZmZmZjgxNTZjNTM4Pl0gYnVzX3JlbW92ZV9kcml2ZXIrMHg1OC8weGQwClsg IDQyMS4xNzYxMzddICBbPGZmZmZmZmZmODE1NmRmM2M+XSBkcml2ZXJfdW5yZWdpc3RlcisweDJj LzB4NTAKWyAgNDIxLjE3NjE0Ml0gIFs8ZmZmZmZmZmY4MTQ1ZTZiYT5dIHBjaV91bnJlZ2lzdGVy X2RyaXZlcisweDJhLzB4NzAKWyAgNDIxLjE3NjE1NF0gIFs8ZmZmZmZmZmZhMDRhYTc2OT5dIGRy bV9wY2lfZXhpdCsweDc5LzB4YTAgW2RybV0KWyAgNDIxLjE3NjE3Nl0gIFs8ZmZmZmZmZmZhMDZi ZDA5NT5dIGk5MTVfZXhpdCsweDIwLzB4ZjhiIFtpOTE1XQpbICA0MjEuMTc2MTgzXSAgWzxmZmZm ZmZmZjgxMTI0NmJkPl0gU3lTX2RlbGV0ZV9tb2R1bGUrMHgxOWQvMHgxZjAKWyAgNDIxLjE3NjE5 MF0gIFs8ZmZmZmZmZmY4MTgyNWQzNj5dIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxNi8w eDdhClsgIDQyMS4xNzYxOTVdIENvZGU6IDQxIDU0IDQ5IDg5IGZmIDUzIDQ4IDhkIDVmIDYwIDQ4 IDgzIGVjIDEwIDQ4IDg5IDQ1IGM4IDRjIDhiIDJiIDRkIDg1IGVkIDBmIDg0IGE0IDAwIDAwIDAw IDRjIDhiIDczIDA4IDRkIDhiIDY2IDEwIDQ5IDhiIDQ0IDI0IDEwIDw4Yj4gNDAgNjAgODMgZjgg MDEgMGYgODQgMTEgMDEgMDAgMDAgNGQgM2IgYmMgMjQgNDggMDIgMDAgMDAgMGYgClsgIDQyMS4x NzYyNDNdIFJJUCAgWzxmZmZmZmZmZmEwNjRhNjMxPl0gaW50ZWxfbHJfY29udGV4dF9mcmVlKzB4 NDEvMHgyMTAgW2k5MTVdClsgIDQyMS4xNzYyNjRdICBSU1AgPGZmZmY4ODAxNDU3MDdjZTg+Clsg IDQyMS4xNzYyNjddIENSMjogMDAwMDAwMDAwMDAwMDA2MApbICA0MjEuMTc2MjcyXSAtLS1bIGVu ZCB0cmFjZSBjNDY1YmViZGJlYTNiNzEyIF0tLS0KWyAgNDIxLjE3NjI3OF0gQlVHOiBzbGVlcGlu ZyBmdW5jdGlvbiBjYWxsZWQgZnJvbSBpbnZhbGlkIGNvbnRleHQgYXQgaW5jbHVkZS9saW51eC9z Y2hlZC5oOjI3NzYKWyAgNDIxLjE3NjI4NV0gaW5fYXRvbWljKCk6IDAsIGlycXNfZGlzYWJsZWQo KTogMSwgcGlkOiAxODcyLCBuYW1lOiBybW1vZApbICA0MjEuMTc2Mjg5XSBJTkZPOiBsb2NrZGVw IGlzIHR1cm5lZCBvZmYuClsgIDQyMS4xNzYyOTNdIGlycSBldmVudCBzdGFtcDogODAzOTAKWyAg NDIxLjE3NjI5N10gaGFyZGlycXMgbGFzdCAgZW5hYmxlZCBhdCAoODAzODkpOiBbPGZmZmZmZmZm ODE4MjUzZjY+XSBfcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUrMHgzNi8weDYwClsgIDQyMS4x NzYzMDZdIGhhcmRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDgwMzkwKTogWzxmZmZmZmZmZjgxODI4 MjhlPl0gZXJyb3JfZW50cnkrMHg2ZS8weGMwClsgIDQyMS4xNzYzMTVdIHNvZnRpcnFzIGxhc3Qg IGVuYWJsZWQgYXQgKDc4ODYwKTogWzxmZmZmZmZmZjgxMDg3Y2M0Pl0gX19kb19zb2Z0aXJxKzB4 Mzc0LzB4NDcwClsgIDQyMS4xNzYzMjRdIHNvZnRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDc4ODQ3 KTogWzxmZmZmZmZmZjgxMDg3ZmRhPl0gaXJxX2V4aXQrMHhmYS8weDEzMApbICA0MjEuMTc2MzMz XSBDUFU6IDMgUElEOiAxODcyIENvbW06IHJtbW9kIFRhaW50ZWQ6IEcgICAgICBEICAgICAgICAg NC40LjAtcmM0KyAjMzQKWyAgNDIxLjE3NjMzOV0gSGFyZHdhcmUgbmFtZTogSW50ZWwgQ29ycG9y YXRpb24gQnJvYWR3ZWxsIENsaWVudCBwbGF0Zm9ybS9TYXdUb290aCBQZWFrLCBCSU9TIEJEVy1F MVIxLjg2Qy4wMTE1LlIwMC4xNTAyMTIyMTE5IDAyLzEyLzIwMTUKWyAgNDIxLjE3NjM0OF0gIGZm ZmZmZmZmODFjYTI2NzMgZmZmZjg4MDE0NTcwNzlmMCBmZmZmZmZmZjgxNDBjZjM5IGZmZmY4ODAw YTdlMTI3YzAKWyAgNDIxLjE3NjM1Nl0gIGZmZmY4ODAxNDU3MDdhMTggZmZmZmZmZmY4MTBhZDQw ZCBmZmZmZmZmZjgxY2EyNjczIDAwMDAwMDAwMDAwMDBhZDgKWyAgNDIxLjE3NjM2NF0gIDAwMDAw MDAwMDAwMDAwMDAgZmZmZjg4MDE0NTcwN2E0MCBmZmZmZmZmZjgxMGFkNTE5IGZmZmY4ODAwYTdl MTI3YzAKWyAgNDIxLjE3NjM3M10gQ2FsbCBUcmFjZToKWyAgNDIxLjE3NjM3OF0gIFs8ZmZmZmZm ZmY4MTQwY2YzOT5dIGR1bXBfc3RhY2srMHg0Yi8weDcyClsgIDQyMS4xNzYzODRdICBbPGZmZmZm ZmZmODEwYWQ0MGQ+XSBfX19taWdodF9zbGVlcCsweDE3ZC8weDI0MApbICA0MjEuMTc2MzkwXSAg WzxmZmZmZmZmZjgxMGFkNTE5Pl0gX19taWdodF9zbGVlcCsweDQ5LzB4ODAKWyAgNDIxLjE3NjM5 NV0gIFs8ZmZmZmZmZmY4MTA5NDkxND5dIGV4aXRfc2lnbmFscysweDI0LzB4MTMwClsgIDQyMS4x NzY0MDFdICBbPGZmZmZmZmZmODEwODU0NzQ+XSBkb19leGl0KzB4YjQvMHhiZDAKWyAgNDIxLjE3 NjQwN10gIFs8ZmZmZmZmZmY4MTBmMjdkMD5dID8ga21zZ19kdW1wKzB4MTIwLzB4MTkwClsgIDQy MS4xNzY0MTNdICBbPGZmZmZmZmZmODEwMWYzMzE+XSBvb3BzX2VuZCsweGExLzB4ZDAKWyAgNDIx LjE3NjQxOF0gIFs8ZmZmZmZmZmY4MTA2ZDRmZD5dIG5vX2NvbnRleHQrMHgxMGQvMHgzODAKWyAg NDIxLjE3NjQyNF0gIFs8ZmZmZmZmZmY4MTA2ZDdmNj5dIF9fYmFkX2FyZWFfbm9zZW1hcGhvcmUr MHg4Ni8weDIwMApbICA0MjEuMTc2NDI5XSAgWzxmZmZmZmZmZjgxMDZkOTgzPl0gYmFkX2FyZWFf bm9zZW1hcGhvcmUrMHgxMy8weDIwClsgIDQyMS4xNzY0MzRdICBbPGZmZmZmZmZmODEwNmRjMjk+ XSBfX2RvX3BhZ2VfZmF1bHQrMHg5OS8weDQ1MApbICA0MjEuMTc2NDQxXSAgWzxmZmZmZmZmZjgx NDJiM2ZkPl0gPyBkZWJ1Z19vYmplY3RfYWN0aXZhdGUrMHgxM2QvMHgxYzAKWyAgNDIxLjE3NjQ0 Nl0gIFs8ZmZmZmZmZmY4MTA2ZTAwZj5dIGRvX3BhZ2VfZmF1bHQrMHgyZi8weDgwClsgIDQyMS4x NzY0NTJdICBbPGZmZmZmZmZmODE4MjY5MDc+XSA/IG5hdGl2ZV9pcmV0KzB4Ny8weDcKWyAgNDIx LjE3NjQ1OF0gIFs8ZmZmZmZmZmY4MTgyODA3OD5dIHBhZ2VfZmF1bHQrMHgyOC8weDMwClsgIDQy MS4xNzY0NzZdICBbPGZmZmZmZmZmYTA2NGE2MzE+XSA/IGludGVsX2xyX2NvbnRleHRfZnJlZSsw eDQxLzB4MjEwIFtpOTE1XQpbICA0MjEuMTc2NDkyXSAgWzxmZmZmZmZmZmEwNjI0YjhjPl0gaTkx NV9nZW1fY29udGV4dF9mcmVlKzB4MWJjLzB4MjIwIFtpOTE1XQpbICA0MjEuMTc2NTA3XSAgWzxm ZmZmZmZmZmEwNjI1M2EyPl0gaTkxNV9nZW1fY29udGV4dF9maW5pKzB4YTIvMHgxNDAgW2k5MTVd ClsgIDQyMS4xNzY1MzFdICBbPGZmZmZmZmZmYTA2YmM4ZjI+XSBpOTE1X2RyaXZlcl91bmxvYWQr MHgxNjIvMHgyOTAgW2k5MTVdClsgIDQyMS4xNzY1NDNdICBbPGZmZmZmZmZmYTA0YTg4Nzk+XSBk cm1fZGV2X3VucmVnaXN0ZXIrMHgyOS8weGIwIFtkcm1dClsgIDQyMS4xNzY1NTVdICBbPGZmZmZm ZmZmYTA0YThmMzM+XSBkcm1fcHV0X2RldisweDIzLzB4NzAgW2RybV0KWyAgNDIxLjE3NjU2NV0g IFs8ZmZmZmZmZmZhMDVmYjFhNT5dIGk5MTVfcGNpX3JlbW92ZSsweDE1LzB4MjAgW2k5MTVdClsg IDQyMS4xNzY1NzFdICBbPGZmZmZmZmZmODE0NWZmZDk+XSBwY2lfZGV2aWNlX3JlbW92ZSsweDM5 LzB4YzAKWyAgNDIxLjE3NjU3N10gIFs8ZmZmZmZmZmY4MTU2ZDNhNj5dIF9fZGV2aWNlX3JlbGVh c2VfZHJpdmVyKzB4OTYvMHgxMzAKWyAgNDIxLjE3NjU4M10gIFs8ZmZmZmZmZmY4MTU2ZDU1OD5d IGRyaXZlcl9kZXRhY2grMHhiOC8weGMwClsgIDQyMS4xNzY1ODldICBbPGZmZmZmZmZmODE1NmM1 Mzg+XSBidXNfcmVtb3ZlX2RyaXZlcisweDU4LzB4ZDAKWyAgNDIxLjE3NjU5NV0gIFs8ZmZmZmZm ZmY4MTU2ZGYzYz5dIGRyaXZlcl91bnJlZ2lzdGVyKzB4MmMvMHg1MApbICA0MjEuMTc2NjAwXSAg WzxmZmZmZmZmZjgxNDVlNmJhPl0gcGNpX3VucmVnaXN0ZXJfZHJpdmVyKzB4MmEvMHg3MApbICA0 MjEuMTc2NjEyXSAgWzxmZmZmZmZmZmEwNGFhNzY5Pl0gZHJtX3BjaV9leGl0KzB4NzkvMHhhMCBb ZHJtXQpbICA0MjEuMTc2NjM0XSAgWzxmZmZmZmZmZmEwNmJkMDk1Pl0gaTkxNV9leGl0KzB4MjAv MHhmOGIgW2k5MTVdClsgIDQyMS4xNzY2NDBdICBbPGZmZmZmZmZmODExMjQ2YmQ+XSBTeVNfZGVs ZXRlX21vZHVsZSsweDE5ZC8weDFmMApbICA0MjEuMTc2NjQ2XSAgWzxmZmZmZmZmZjgxODI1ZDM2 Pl0gZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDE2LzB4N2EKWyAgNDIxLjIxOTE5MF0gZHJ2 X2hhbmdtYW46IGV4ZWN1dGluZwpbICA0MjEuMjE5Njg4XSBkcnZfaGFuZ21hbjogc3RhcnRpbmcg c3VidGVzdCBlcnJvci1zdGF0ZS1iYXNpYwpbICA0MjEuMjIxMTQzXSBkcnZfaGFuZ21hbjogZXhp dGluZywgcmV0PTAKWyAgNDIxLjIzNTc1NF0ga21zX2FkZGZiX2Jhc2ljOiBleGVjdXRpbmcKWyAg NDIxLjIzNzU0NV0ga21zX2FkZGZiX2Jhc2ljOiBleGl0aW5nLCByZXQ9MApbICA0MjEuMjQ2NzQ2 XSBnZW1fbW1hcF9ndHQ6IGV4ZWN1dGluZwpbICA0MjEuMjQ4NjUwXSBnZW1fbW1hcF9ndHQ6IGV4 aXRpbmcsIHJldD0wCgoKCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg ICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAg ICB8ICAgNyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAx MzggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmggICAgICAgIHwgICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oIHwgICAxICsKPiAgNSBmaWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9u cygrKSwgMjcgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA5 YWIzZTI1Li5hNTljYTEzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTg4NCw2 ICs4ODQsNyBAQCBzdHJ1Y3QgaW50ZWxfY29udGV4dCB7Cj4gIAlzdHJ1Y3Qgewo+ICAJCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpzdGF0ZTsKPiAgCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZjsKPiArCQlib29sIGRpcnR5Owo+ICAJCWludCBwaW5fY291bnQ7Cj4gIAl9IGVu Z2luZVtJOTE1X05VTV9SSU5HU107Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4 IGE2OTk3YTguLmNkMjdlY2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMTM2 Miw2ICsxMzYyLDkgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICB7Cj4gIAl0cmFjZV9pOTE1X2dlbV9y ZXF1ZXN0X3JldGlyZShyZXF1ZXN0KTsKPiAgCj4gKwlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3Rz KQo+ICsJCWludGVsX2xyX2NvbnRleHRfY29tcGxldGVfY2hlY2socmVxdWVzdCk7Cj4gKwo+ICAJ LyogV2Uga25vdyB0aGUgR1BVIG11c3QgaGF2ZSByZWFkIHRoZSByZXF1ZXN0IHRvIGhhdmUKPiAg CSAqIHNlbnQgdXMgdGhlIHNlcW5vICsgaW50ZXJydXB0LCBzbyB1c2UgdGhlIHBvc2l0aW9uCj4g IAkgKiBvZiB0YWlsIG9mIHRoZSByZXF1ZXN0IHRvIHVwZGF0ZSB0aGUgbGFzdCBrbm93biBwb3Np dGlvbgo+IEBAIC0yNzcyLDEwICsyNzc1LDYgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVzZXRf cmluZ19jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJCQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QsCj4gIAkJCQkJZXhlY2xpc3RfbGluayk7Cj4gIAkJ CWxpc3RfZGVsKCZzdWJtaXRfcmVxLT5leGVjbGlzdF9saW5rKTsKPiAtCj4gLQkJCWlmIChzdWJt aXRfcmVxLT5jdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KQo+IC0JCQkJaW50ZWxfbHJfY29u dGV4dF91bnBpbihzdWJtaXRfcmVxKTsKPiAtCj4gIAkJCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZl cmVuY2Uoc3VibWl0X3JlcSk7Cj4gIAkJfQo+ICAJCXNwaW5fdW5sb2NrX2lycSgmcmluZy0+ZXhl Y2xpc3RfbG9jayk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCA0ZWJhZmFiLi5m OTZmYjUxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtNTcxLDkgKzU3MSw2 IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2NvbnRleHRfcXVldWUoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpjdXJz b3I7Cj4gIAlpbnQgbnVtX2VsZW1lbnRzID0gMDsKPiAgCj4gLQlpZiAocmVxdWVzdC0+Y3R4ICE9 IHJpbmctPmRlZmF1bHRfY29udGV4dCkKPiAtCQlpbnRlbF9scl9jb250ZXh0X3BpbihyZXF1ZXN0 KTsKPiAtCj4gIAlpOTE1X2dlbV9yZXF1ZXN0X3JlZmVyZW5jZShyZXF1ZXN0KTsKPiAgCj4gIAlz cGluX2xvY2tfaXJxKCZyaW5nLT5leGVjbGlzdF9sb2NrKTsKPiBAQCAtNzM3LDYgKzczNCwxMyBA QCBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiAgCWlmIChpbnRlbF9yaW5nX3N0b3BwZWQocmluZykpCj4g IAkJcmV0dXJuOwo+ICAKPiArCWlmIChyZXF1ZXN0LT5jdHggIT0gcmluZy0+ZGVmYXVsdF9jb250 ZXh0KSB7Cj4gKwkJaWYgKCFyZXF1ZXN0LT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkpIHsK PiArCQkJaW50ZWxfbHJfY29udGV4dF9waW4ocmVxdWVzdCk7Cj4gKwkJCXJlcXVlc3QtPmN0eC0+ ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IHRydWU7Cj4gKwkJfQo+ICsJfQo+ICsKPiAgCWlmIChk ZXZfcHJpdi0+Z3VjLmV4ZWNidWZfY2xpZW50KQo+ICAJCWk5MTVfZ3VjX3N1Ym1pdChkZXZfcHJp di0+Z3VjLmV4ZWNidWZfY2xpZW50LCByZXF1ZXN0KTsKPiAgCWVsc2UKPiBAQCAtOTYzLDEyICs5 NjcsNiBAQCB2b2lkIGludGVsX2V4ZWNsaXN0c19yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZykKPiAgCXNwaW5fdW5sb2NrX2lycSgmcmluZy0+ZXhlY2xpc3RfbG9j ayk7Cj4gIAo+ICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJlcSwgdG1wLCAmcmV0aXJlZF9s aXN0LCBleGVjbGlzdF9saW5rKSB7Cj4gLQkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCA9IHJl cS0+Y3R4Owo+IC0JCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KPiAtCQkJ CWN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKPiAtCj4gLQkJaWYgKGN0eF9vYmogJiYgKGN0 eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpKQo+IC0JCQlpbnRlbF9scl9jb250ZXh0X3VucGlu KHJlcSk7Cj4gIAkJbGlzdF9kZWwoJnJlcS0+ZXhlY2xpc3RfbGluayk7Cj4gIAkJaTkxNV9nZW1f cmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOwo+ICAJfQo+IEBAIC0xMDYzLDIxICsxMDYxLDM5IEBA IHJlc2V0X3Bpbl9jb3VudDoKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLXZvaWQgaW50ZWxf bHJfY29udGV4dF91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQo+ICtzdGF0 aWMgdm9pZCBfX2ludGVsX2xyX2NvbnRleHRfdW5waW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZywKPiArCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQo+ICB7Cj4gLQlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nID0gcnEtPnJpbmc7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqY3R4X29iaiA9IHJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gLQlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJxLT5yaW5nYnVmOwo+IC0KPiArCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gY3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0 YXRlOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2luZVty aW5nLT5pZF0ucmluZ2J1ZjsKPiAgCWlmIChjdHhfb2JqKSB7Cj4gIAkJV0FSTl9PTighbXV0ZXhf aXNfbG9ja2VkKCZyaW5nLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+IC0JCWlmICgtLXJxLT5jdHgt PmVuZ2luZVtyaW5nLT5pZF0ucGluX2NvdW50ID09IDApIHsKPiArCQlpZiAoLS1jdHgtPmVuZ2lu ZVtyaW5nLT5pZF0ucGluX2NvdW50ID09IDApIHsKPiAgCQkJaW50ZWxfdW5waW5fcmluZ2J1ZmZl cl9vYmoocmluZ2J1Zik7Cj4gIAkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmop Owo+ICAJCX0KPiAgCX0KPiAgfQo+ICAKPiArdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGluKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4gK3sKPiArCV9faW50ZWxfbHJfY29udGV4 dF91bnBpbihycS0+cmluZywgcnEtPmN0eCk7Cj4gK30KPiArCj4gK3ZvaWQgaW50ZWxfbHJfY29u dGV4dF9jb21wbGV0ZV9jaGVjayhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAr ewo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKPiArCj4gKwlp ZiAocmluZy0+bHJjX2xhc3RfY29udGV4dCAmJiByaW5nLT5scmNfbGFzdF9jb250ZXh0ICE9IHJl cS0+Y3R4ICYmCj4gKwkJCXJpbmctPmxyY19sYXN0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5pZF0u ZGlydHkpIHsKPiArCQlfX2ludGVsX2xyX2NvbnRleHRfdW5waW4oCj4gKwkJCQlyaW5nLAo+ICsJ CQkJcmluZy0+bHJjX2xhc3RfY29udGV4dCk7Cj4gKwkJcmluZy0+bHJjX2xhc3RfY29udGV4dC0+ ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IGZhbHNlOwo+ICsJfQo+ICsJcmluZy0+bHJjX2xhc3Rf Y29udGV4dCA9IHJlcS0+Y3R4Owo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGludGVsX2xvZ2ljYWxf cmluZ193b3JrYXJvdW5kc19lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ ICB7Cj4gIAlpbnQgcmV0LCBpOwo+IEBAIC0yMzUyLDYgKzIzNjgsNzYgQEAgcG9wdWxhdGVfbHJf Y29udGV4dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqY3R4X28KPiAgfQo+ICAKPiAgLyoqCj4gKyAqIGludGVsX2xyX2NvbnRleHRfY2xlYW5f cmluZygpIC0gY2xlYW4gdGhlIHJpbmcgc3BlY2lmaWMgcGFydHMgb2YgYW4gTFJDCj4gKyAqIEBj dHg6IHRoZSBMUiBjb250ZXh0IGJlaW5nIGZyZWVkLgo+ICsgKiBAcmluZzogdGhlIGVuZ2luZSBi ZWluZyBjbGVhbmVkCj4gKyAqIEBjdHhfb2JqOiB0aGUgaHcgY29udGV4dCBiZWluZyB1bnJlZmVy ZW5jZWQKPiArICogQHJpbmdidWY6IHRoZSByaW5nYnVmIGJlaW5nIGZyZWVkCj4gKyAqCj4gKyAq IFRha2UgY2FyZSBvZiBjbGVhbmluZyB1cCB0aGUgcGVyLWVuZ2luZSBiYWNraW5nCj4gKyAqIG9i amVjdHMgYW5kIHRoZSBsb2dpY2FsIHJpbmdidWZmZXIuCj4gKyAqLwo+ICtzdGF0aWMgdm9pZAo+ ICtpbnRlbF9scl9jb250ZXh0X2NsZWFuX3Jpbmcoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwK PiArCQkJICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gKwkJCSAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiwKPiArCQkJICAgIHN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmKQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCVdBUk5fT04oIW11dGV4 X2lzX2xvY2tlZCgmcmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKPiArCj4gKwlpZiAoY3R4ID09 IHJpbmctPmRlZmF1bHRfY29udGV4dCkgewo+ICsJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2Jq KHJpbmdidWYpOwo+ICsJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ICsJ fQo+ICsKPiArCWlmIChjdHgtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkpIHsKPiArCQlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IE5VTEw7Cj4gKwo+ICsJCS8qKgo+ICsJCSAqIElm IHRoZXJlIGlzIGFscmVhZHkgYSByZXF1ZXN0IHBlbmRpbmcgb24KPiArCQkgKiB0aGlzIHJpbmcs IHdhaXQgZm9yIHRoYXQgdG8gY29tcGxldGUsCj4gKwkJICogb3RoZXJ3aXNlIGNyZWF0ZSBhIHN3 aXRjaCB0byBpZGxlIHJlcXVlc3QKPiArCQkgKi8KPiArCQlpZiAobGlzdF9lbXB0eSgmcmluZy0+ cmVxdWVzdF9saXN0KSkgewo+ICsJCQlpbnQgcmV0Owo+ICsKPiArCQkJcmV0ID0gaTkxNV9nZW1f cmVxdWVzdF9hbGxvYygKPiArCQkJCQlyaW5nLAo+ICsJCQkJCXJpbmctPmRlZmF1bHRfY29udGV4 dCwKPiArCQkJCQkmcmVxKTsKPiArCQkJaWYgKCFyZXQpCj4gKwkJCQlpOTE1X2FkZF9yZXF1ZXN0 KHJlcSk7Cj4gKwkJCWVsc2UKPiArCQkJCURSTV9ERUJVRygiRmFpbGVkIHRvIGVuc3VyZSBjb250 ZXh0IHNhdmVkIik7Cj4gKwkJfSBlbHNlIHsKPiArCQkJcmVxID0gbGlzdF9maXJzdF9lbnRyeSgK PiArCQkJCQkmcmluZy0+cmVxdWVzdF9saXN0LAo+ICsJCQkJCXR5cGVvZigqcmVxKSwgbGlzdCk7 Cj4gKwkJfQo+ICsJCWlmIChyZXEpIHsKPiArCQkJcmV0ID0gaTkxNV93YWl0X3JlcXVlc3QocmVx KTsKPiArCQkJaWYgKHJldCAhPSAwKSB7Cj4gKwkJCQkvKioKPiArCQkJCSAqIElmIHdlIGdldCBo ZXJlLCB0aGVyZSdzIHByb2JhYmx5IGJlZW4gYSByaW5nCj4gKwkJCQkgKiByZXNldCwgc28gd2Ug anVzdCBjbGVhbiB1cCB0aGUgZGlydHkgZmxhZy4mCj4gKwkJCQkgKiBwaW4gY291bnQuCj4gKwkJ CQkgKi8KPiArCQkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IGZhbHNlOwo+ICsJCQkJ X19pbnRlbF9scl9jb250ZXh0X3VucGluKAo+ICsJCQkJCXJpbmcsCj4gKwkJCQkJY3R4KTsKPiAr CQkJfQo+ICsJCX0KPiArCX0KPiArCj4gKwlXQVJOX09OKGN0eC0+ZW5naW5lW3JpbmctPmlkXS5w aW5fY291bnQpOwo+ICsJaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHJpbmdidWYpOwo+ICsJZHJtX2dl bV9vYmplY3RfdW5yZWZlcmVuY2UoJmN0eF9vYmotPmJhc2UpOwo+ICt9Cj4gKwo+ICsvKioKPiAg ICogaW50ZWxfbHJfY29udGV4dF9mcmVlKCkgLSBmcmVlIHRoZSBMUkMgc3BlY2lmaWMgYml0cyBv ZiBhIGNvbnRleHQKPiAgICogQGN0eDogdGhlIExSIGNvbnRleHQgdG8gZnJlZS4KPiAgICoKPiBA QCAtMjM2Myw3ICsyNDQ5LDcgQEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X2ZyZWUoc3RydWN0IGlu dGVsX2NvbnRleHQgKmN0eCkKPiAgewo+ICAJaW50IGk7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8 IEk5MTVfTlVNX1JJTkdTOyBpKyspIHsKPiArCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5H UzsgKytpKSB7Cj4gIAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBjdHgt PmVuZ2luZVtpXS5zdGF0ZTsKPiAgCj4gIAkJaWYgKGN0eF9vYmopIHsKPiBAQCAtMjM3MSwxMyAr MjQ1NywxMCBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfZnJlZShzdHJ1Y3QgaW50ZWxfY29udGV4 dCAqY3R4KQo+ICAJCQkJCWN0eC0+ZW5naW5lW2ldLnJpbmdidWY7Cj4gIAkJCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcgPSByaW5nYnVmLT5yaW5nOwo+ICAKPiAtCQkJaWYgKGN0eCA9PSBy aW5nLT5kZWZhdWx0X2NvbnRleHQpIHsKPiAtCQkJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2Jq KHJpbmdidWYpOwo+IC0JCQkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4g LQkJCX0KPiAtCQkJV0FSTl9PTihjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucGluX2NvdW50KTsKPiAt CQkJaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHJpbmdidWYpOwo+IC0JCQlkcm1fZ2VtX29iamVjdF91 bnJlZmVyZW5jZSgmY3R4X29iai0+YmFzZSk7Cj4gKwkJCWludGVsX2xyX2NvbnRleHRfY2xlYW5f cmluZyhjdHgsCj4gKwkJCQkJCSAgICByaW5nLAo+ICsJCQkJCQkgICAgY3R4X29iaiwKPiArCQkJ CQkJICAgIHJpbmdidWYpOwo+ICAJCX0KPiAgCX0KPiAgfQo+IEBAIC0yNTM5LDUgKzI2MjIsMTQg QEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g IAo+ICAJCXJpbmdidWYtPmhlYWQgPSAwOwo+ICAJCXJpbmdidWYtPnRhaWwgPSAwOwo+ICsKPiAr CQlpZiAoY3R4LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5KSB7Cj4gKwkJCV9faW50ZWxfbHJfY29u dGV4dF91bnBpbigKPiArCQkJCQlyaW5nLAo+ICsJCQkJCWN0eCk7Cj4gKwkJCWN0eC0+ZW5naW5l W3JpbmctPmlkXS5kaXJ0eSA9IGZhbHNlOwo+ICsJCQlpZiAocmluZy0+bHJjX2xhc3RfY29udGV4 dCA9PSBjdHgpCj4gKwkJCQlyaW5nLT5scmNfbGFzdF9jb250ZXh0ID0gTlVMTDsKPiArCQl9Cj4g IAl9Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+IGluZGV4IDBiODIxYjkuLmZkMWI2 YjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+IEBAIC05MSw2ICs5MSw3IEBAIHZv aWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KTsKPiAgdWludDY0X3QgaW50ZWxfbHJfY29udGV4dF9k ZXNjcmlwdG9yKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gIAkJCQkgICAgIHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ICt2b2lkIGludGVsX2xyX2NvbnRleHRfY29tcGxldGVf Y2hlY2soc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwo+ICAKPiAgLyogRXhlY2xp c3RzICovCj4gIGludCBpbnRlbF9zYW5pdGl6ZV9lbmFibGVfZXhlY2xpc3RzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIGludCBlbmFibGVfZXhlY2xpc3RzKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXggNWQxZWIyMC4uN2M5MTNlNyAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtMjc1LDYgKzI3NSw3IEBAIHN0 cnVjdCAgaW50ZWxfZW5naW5lX2NzIHsKPiAgCQkJCSAgICAgIHUzMiBmbHVzaF9kb21haW5zKTsK PiAgCWludAkJKCplbWl0X2JiX3N0YXJ0KShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSwKPiAgCQkJCQkgdTY0IG9mZnNldCwgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpOwo+ICsJc3Ry dWN0IGludGVsX2NvbnRleHQgKmxyY19sYXN0X2NvbnRleHQ7Cj4gIAo+ICAJLyoqCj4gIAkgKiBM aXN0IG9mIG9iamVjdHMgY3VycmVudGx5IGludm9sdmVkIGluIHJlbmRlcmluZyBmcm9tIHRoZQo+ IC0tIAo+IDEuOS4xCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==