From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: Re: [RFC] drm/i915/guc: Smurf the GuC context Date: Fri, 24 Feb 2017 16:30:01 -0800 Message-ID: <1599f0c4-55c9-e2d0-18d8-2dae033c0125@intel.com> References: <1487946835-32238-1-git-send-email-oscar.mateo@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id DD7C06ED36 for ; Sat, 25 Feb 2017 00:30:01 +0000 (UTC) In-Reply-To: <1487946835-32238-1-git-send-email-oscar.mateo@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Oscar Mateo , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiAyNC8wMi8xNyAwNjozMywgT3NjYXIgTWF0ZW8gd3JvdGU6Cj4gV2hpbGUgdHJ5aW5nIHRv IGdldCB1cCB0byBzcGVlZCB3aXRoIHRoZSBHdUMsIHRoZSB0aGluZyB0aGF0IGJvdGhlcnMgbWUg dGhlCj4gbW9zdCBpcyB0aGF0IHdlIGhhdmUgc28gbWFueSB0aGluZ3MgY2FsbGVkICJjb250ZXh0 IiBpbiB0aGUgZHJpdmVyLCB0aGF0IHdoZW4KPiBJIHRhbGsgd2l0aCBzb21lb25lIGFib3V0IGl0 IHdlIGludmFyaWFibHkgZW5kIHVwIHNvdW5kaW5nIGxpa2UgVGhlIFNtdXJmcwo+ICh1cGRhdGUg dGhlIGNvbnRleHQgSUQgaW4gdGhlIEd1QyBjb250ZXh0IHNvIHRoYXQgdGhlIEhXIGNvbnRleHQg Z2V0cyBzdWJtaXR0ZWQKPiBjb3JyZWN0bHkhIikuCj4KPiBDdXJyZW50bHksIHdlIGhhdmUgdGhl IGZvbGxvd2luZyBzdHJ1Y3RzIGluIG91ciBkcml2ZXI6Cj4KPiBHRU0gY29udGV4dHMgKGk5MTVf Z2VtX2NvbnRleHQpCj4gSFcgY29udGV4dHMgKGludGVsX2NvbnRleHQpCj4gR3VDIGV4ZWNsaXN0 IGNvbnRleHRzIChndWNfZXhlY2xpc3RfY29udGV4dCkKPiBHdUMgY29udGV4dHMgKGd1Y19jdHhf ZGVzYykKPgo+IFRoZSBmaXJzdCB0aHJlZSBhcmUgYWxsIHNvbWVob3cgcmVsYXRlZCwgd2hpbGUg dGhlIGZvdXJ0aCBvbmUgaXMgYSBjb21wbGV0ZWx5Cj4gZGlmZmVyZW50IHRoaW5nIChyZWxhdGVk IHRvIEd1QyBzdGF0ZSwgaW5zdGVhZCBvZiBIVyBzdGF0ZSkuCj4KPiBUaGlzIHBhdGNoIHRyaWVz IHRvIGF2b2lkIHRoaXMgc2l0dWF0aW9uIGJ5IHJlbmFtaW5nIHRoZSBHdUMgY29udGV4dCAoYW5k IGFsbAo+IHJlbGF0ZWQgZmllbGRzKSB3aXRoIHNvbWV0aGluZyBkaWZmZXJlbnQuIE9idmlvdXNs eSwgInNtdXJmIiBpcyBqdXN0IGFuIGF0dGVtcHQKPiB0byBzcGFyayB0aGUgZGljdXNzaW9uLCBz byB0aGF0IHdlIGNhbiBmaW5kIHRoZSByaWdodCBuYW1lICgic3VibWl0dGVyIj8gInN0YXRlIj8K PiAiaW50ZXJmYWNlIik/CgpXaGF0IGFib3V0ICJyZWdpc3RyYXRpb24iPyBUaGUgZ3VjX2N0eF9k ZXNjIGlzIGEgc2V0IG9mIGlkZW50aXR5LXJlbGF0ZWQgCmluZm8gdGhhdCBtdXN0IGJlIGZpbGxl ZCBiZWZvcmUgYSB1c2VyIGNhbiB1c2UgR3VDLCBzbyBpdCBpcyBzaW1pbGFyIHRvIAphIHJlZ2lz dHJhdGlvbiB0byBhIHNlcnZpY2UuCldlIGNvdWxkIHRoZW4gaGF2ZSBhICJyZWdpc3RyYXRpb25f aWQiLCAicmVnaXN0cmF0aW9uX3Bvb2wiLCAgZXRjLgoKV2hhdGV2ZXIgbmFtZSB3ZSBkZWNpZGUg dG8gZ28gd2l0aCwgaWYgaXQgZGlmZmVycyBmcm9tIHdoYXRldmVyIGlzIGluIAp0aGUgZG9jdW1l bnRhdGlvbiBJIHN1Z2dlc3QgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHJlbGF0aW9uIGlzIHByb3Bl cmx5IApkb2N1bWVudGVkIGluIHRoZSBjb2RlIHRvIGF2b2lkIGNvbmZ1c2lvbiBpbiB0aGUgZnV0 dXJlLgoKQ2hlZXJzLApEYW5pZWxlCgo+Cj4gQ2M6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRh bmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogT3NjYXIgTWF0 ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMgICAgICAgIHwgICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3VjX3N1Ym1pc3Npb24uYyB8IDExMCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oICAgICAgfCAgMzQgKysrKy0t LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyAgICB8ICAgNCAr LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oICAgICAgICAgICAgfCAgIDYgKy0K PiAgNSBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCA3NCBkZWxldGlvbnMoLSkKPgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggNjU1ZTYwZC4uZTZjODUzZiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTI0OTUsOCArMjQ5NSw4 IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2NsaWVudF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwK PiAgCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+ICAJdWludDY0X3QgdG90ID0gMDsKPgo+IC0J c2VxX3ByaW50ZihtLCAiXHRQcmlvcml0eSAlZCwgR3VDIGN0eCBpbmRleDogJXUsIFBEIG9mZnNl dCAweCV4XG4iLAo+IC0JCWNsaWVudC0+cHJpb3JpdHksIGNsaWVudC0+Y3R4X2luZGV4LCBjbGll bnQtPnByb2NfZGVzY19vZmZzZXQpOwo+ICsJc2VxX3ByaW50ZihtLCAiXHRQcmlvcml0eSAlZCwg R3VDIHNtdXJmIGluZGV4OiAldSwgUEQgb2Zmc2V0IDB4JXhcbiIsCj4gKwkJY2xpZW50LT5wcmlv cml0eSwgY2xpZW50LT5zbXVyZl9pbmRleCwgY2xpZW50LT5wcm9jX2Rlc2Nfb2Zmc2V0KTsKPiAg CXNlcV9wcmludGYobSwgIlx0RG9vcmJlbGwgaWQgJWQsIG9mZnNldDogMHgleCwgY29va2llIDB4 JXhcbiIsCj4gIAkJY2xpZW50LT5kb29yYmVsbF9pZCwgY2xpZW50LT5kb29yYmVsbF9vZmZzZXQs IGNsaWVudC0+ZG9vcmJlbGxfY29va2llKTsKPiAgCXNlcV9wcmludGYobSwgIlx0V1Egc2l6ZSAl ZCwgb2Zmc2V0OiAweCV4LCB0YWlsICVkXG4iLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2d1Y19zdWJtaXNzaW9uLmMKPiBpbmRleCBiZWVjODhhLi5mOWI1ZWY5IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IEBAIC0yOCwxNiArMjgsMjcg QEAKPiAgLyoqCj4gICAqIERPQzogR3VDLWJhc2VkIGNvbW1hbmQgc3VibWlzc2lvbgo+ICAgKgo+ IC0gKiBpOTE1X2d1Y19jbGllbnQ6Cj4gLSAqIFdlIHVzZSB0aGUgdGVybSBjbGllbnQgdG8gYXZv aWQgY29uZnVzaW9uIHdpdGggY29udGV4dHMuIEEgaTkxNV9ndWNfY2xpZW50IGlzCj4gLSAqIGVx dWl2YWxlbnQgdG8gR3VDIG9iamVjdCBndWNfY29udGV4dF9kZXNjLiBUaGlzIGNvbnRleHQgZGVz Y3JpcHRvciBpcwo+IC0gKiBhbGxvY2F0ZWQgZnJvbSBhIHBvb2wgb2YgMTAyNCBlbnRyaWVzLiBL ZXJuZWwgZHJpdmVyIHdpbGwgYWxsb2NhdGUgZG9vcmJlbGwKPiAtICogYW5kIHdvcmtxdWV1ZSBm b3IgaXQuIEFsc28gdGhlIHByb2Nlc3MgZGVzY3JpcHRvciAoZ3VjX3Byb2Nlc3NfZGVzYyksIHdo aWNoCj4gLSAqIGlzIG1hcHBlZCB0byBjbGllbnQgc3BhY2UuIFNvIHRoZSBjbGllbnQgY2FuIHdy aXRlIFdvcmsgSXRlbSB0aGVuIHJpbmcgdGhlCj4gLSAqIGRvb3JiZWxsLgo+ICsgKiBHdUMgY2xp ZW50Ogo+ICsgKiBBIGk5MTVfZ3VjX2NsaWVudCByZWZlcnMgdG8gYSB1bmlxdWUgdXNlciBvZiB0 aGUgR3VDLiBDdXJyZW50bHksIHRoZXJlIGlzCj4gKyAqIG9ubHkgb25lIG9mIHRoZXNlICh0aGUg ZXhlY2J1Zl9jbGllbnQpIGFuZCB0aGlzIG9uZSBpcyBjaGFyZ2VkIHdpdGggYWxsCj4gKyAqIHN1 Ym1pc3Npb25zIHRvIHRoZSBHdUMuIFRoaXMgc3RydWN0IGlzIHRoZSBvd25lciBvZiBhIGRvb3Ji ZWxsLCBhIHByb2Nlc3MKPiArICogZGVzY3JpcHRvciBhbmQgYSB3b3JrcXVldWUgKGFsbCBvZiB0 aGVtIGluc2lkZSBhIHNpbmdsZSBnZW0gb2JqZWN0IHRoYXQKPiArICogY29udGFpbnMgYWxsIHJl cXVpcmVkIHBhZ2VzIGZvciB0aGVzZSBlbGVtZW50cykuCj4gICAqCj4gLSAqIFRvIHNpbXBsaWZ5 IHRoZSBpbXBsZW1lbnRhdGlvbiwgd2UgYWxsb2NhdGUgb25lIGdlbSBvYmplY3QgdGhhdCBjb250 YWlucyBhbGwKPiAtICogcGFnZXMgZm9yIGRvb3JiZWxsLCBwcm9jZXNzIGRlc2NyaXB0b3IgYW5k IHdvcmtxdWV1ZS4KPiArICogU211cmYgZGVzY3JpcHRvcjoKPiArICogVGVjaG5pY2FsbHksIHRo aXMgaXMga25vd24gYXMgYSAiR3VDIENvbnRleHQiIGRlc2NyaXB0b3IgaW4gdGhlIHNwZWNzLCBi dXQgd2UKPiArICogdXNlIHRoZSB0ZXJtIHNtdXJmIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIGFs bCB0aGUgb3RoZXIgdGhpbmdzIGFscmVhZHkKPiArICogbmFtZWQgImNvbnRleHQiIGluIHRoZSBk cml2ZXIuIER1cmluZyBpbml0aWFsaXphdGlvbiwgdGhlIGRyaXZlciBhbGxvY2F0ZXMgYQo+ICsg KiBzdGF0aWMgcG9vbCBvZiAxMDI0IHN1Y2ggZGVzY3JpcHRvcnMsIGFuZCBzaGFyZXMgdGhlbSB3 aXRoIHRoZSBHdUMuCj4gKyAqIEN1cnJlbnRseSwgdGhlcmUgZXhpc3RzIGEgMToxIG1hcHBpbmcg YmV0d2VlbiBhIGk5MTVfZ3VjX2NsaWVudCBhbmQgYQo+ICsgKiBndWNfc211cmZfZGVzYyAodmlh IHRoZSBjbGllbnQncyBzbXVyZl9pbmRleCksIHNvIGVmZmVjdGl2ZWx5IG9ubHkKPiArICogb25l IGd1Y19zbXVyZl9kZXNjIGdldHMgdXNlZCAoc2luY2Ugd2Ugb25seSBoYXZlIG9uZSBjbGllbnQg YXQgdGhlCj4gKyAqIG1vbWVudCkuIFRoaXMgc211cmYgZGVzY3JpcHRvciBsZXRzIHRoZSBHdUMg a25vdyBhYm91dCB0aGUgZG9vcmJlbGwgYW5kCj4gKyAqIHdvcmtxdWV1ZS4gVGhlb3JldGljYWxs eSwgaXQgYWxzbyBsZXRzIHRoZSBHdUMga25vdyBhYm91dCB0aGUgTFJDLCBidXQgd2UKPiArICog ZW1wbG95IGEga2luZCBvZiBwcm94eSBzdWJtaXNzaW9uIHdoZXJlIHRoZSBMUkMgb2YgdGhlIHdv cmtsb2FkIHRvIGJlCj4gKyAqIHN1Ym1pdHRlZCBpcyBzZW50IHZpYSB0aGUgd29yayBpdGVtIGlu c3RlYWQgKHRoZSBzaW5nbGUgZ3VjX3NtdXJmX2Rlc2MKPiArICogYXNzb2NpYXRlZCB0byBleGVj YnVmIGNsaWVudCBjb250YWlucyB0aGUgTFJDcyBvZiB0aGUgZGVmYXVsdCBrZXJuZWwgY29udGV4 dCwKPiArICogYnV0IHRoZXNlIGFyZSBlc3NlbnRpYWxseSB1bnVzZWQpLgo+ICAgKgo+ICAgKiBU aGUgU2NyYXRjaCByZWdpc3RlcnM6Cj4gICAqIFRoZXJlIGFyZSAxNiBNTUlPLWJhc2VkIHJlZ2lz dGVycyBzdGFydCBmcm9tIDB4QzE4MC4gVGhlIGtlcm5lbCBkcml2ZXIgd3JpdGVzCj4gQEAgLTUy LDcgKzYzLDcgQEAKPiAgICogRG9vcmJlbGxzIGFyZSBpbnRlcnJ1cHRzIHRvIHVLZXJuZWwuIEEg ZG9vcmJlbGwgaXMgYSBzaW5nbGUgY2FjaGUgbGluZSAoUVcpCj4gICAqIG1hcHBlZCBpbnRvIHBy b2Nlc3Mgc3BhY2UuCj4gICAqCj4gLSAqIFdvcmsgSXRlbXM6Cj4gKyAqIFdvcmtxdWV1ZToKPiAg ICogVGhlcmUgYXJlIHNldmVyYWwgdHlwZXMgb2Ygd29yayBpdGVtcyB0aGF0IHRoZSBob3N0IG1h eSBwbGFjZSBpbnRvIGEKPiAgICogd29ya3F1ZXVlLCBlYWNoIHdpdGggaXRzIG93biByZXF1aXJl bWVudHMgYW5kIGxpbWl0YXRpb25zLiBDdXJyZW50bHkgb25seQo+ICAgKiBXUV9UWVBFX0lOT1JE RVIgaXMgbmVlZGVkIHRvIHN1cHBvcnQgbGVnYWN5IHN1Ym1pc3Npb24gdmlhIEd1Qywgd2hpY2gK PiBAQCAtNzEsNyArODIsNyBAQCBzdGF0aWMgaW50IGd1Y19hbGxvY2F0ZV9kb29yYmVsbChzdHJ1 Y3QgaW50ZWxfZ3VjICpndWMsCj4gIHsKPiAgCXUzMiBhY3Rpb25bXSA9IHsKPiAgCQlJTlRFTF9H VUNfQUNUSU9OX0FMTE9DQVRFX0RPT1JCRUxMLAo+IC0JCWNsaWVudC0+Y3R4X2luZGV4Cj4gKwkJ Y2xpZW50LT5zbXVyZl9pbmRleAo+ICAJfTsKPgo+ICAJcmV0dXJuIGludGVsX2d1Y19zZW5kKGd1 YywgYWN0aW9uLCBBUlJBWV9TSVpFKGFjdGlvbikpOwo+IEBAIC04Miw3ICs5Myw3IEBAIHN0YXRp YyBpbnQgZ3VjX3JlbGVhc2VfZG9vcmJlbGwoc3RydWN0IGludGVsX2d1YyAqZ3VjLAo+ICB7Cj4g IAl1MzIgYWN0aW9uW10gPSB7Cj4gIAkJSU5URUxfR1VDX0FDVElPTl9ERUFMTE9DQVRFX0RPT1JC RUxMLAo+IC0JCWNsaWVudC0+Y3R4X2luZGV4Cj4gKwkJY2xpZW50LT5zbXVyZl9pbmRleAo+ICAJ fTsKPgo+ICAJcmV0dXJuIGludGVsX2d1Y19zZW5kKGd1YywgYWN0aW9uLCBBUlJBWV9TSVpFKGFj dGlvbikpOwo+IEBAIC05OSwxMCArMTEwLDEwIEBAIHN0YXRpYyBpbnQgZ3VjX3VwZGF0ZV9kb29y YmVsbF9pZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCj4gIAkJCQkgIHN0cnVjdCBpOTE1X2d1Y19j bGllbnQgKmNsaWVudCwKPiAgCQkJCSAgdTE2IG5ld19pZCkKPiAgewo+IC0Jc3RydWN0IHNnX3Rh YmxlICpzZyA9IGd1Yy0+Y3R4X3Bvb2xfdm1hLT5wYWdlczsKPiArCXN0cnVjdCBzZ190YWJsZSAq c2cgPSBndWMtPnNtdXJmX3Bvb2xfdm1hLT5wYWdlczsKPiAgCXZvaWQgKmRvb3JiZWxsX2JpdG1h cCA9IGd1Yy0+ZG9vcmJlbGxfYml0bWFwOwo+ICAJc3RydWN0IGd1Y19kb29yYmVsbF9pbmZvICpk b29yYmVsbDsKPiAtCXN0cnVjdCBndWNfY29udGV4dF9kZXNjIGRlc2M7Cj4gKwlzdHJ1Y3QgZ3Vj X3NtdXJmX2Rlc2MgZGVzYzsKPiAgCXNpemVfdCBsZW47Cj4KPiAgCWRvb3JiZWxsID0gY2xpZW50 LT52YWRkciArIGNsaWVudC0+ZG9vcmJlbGxfb2Zmc2V0Owo+IEBAIC0xMTcsMTIgKzEyOCwxMiBA QCBzdGF0aWMgaW50IGd1Y191cGRhdGVfZG9vcmJlbGxfaWQoc3RydWN0IGludGVsX2d1YyAqZ3Vj LAo+Cj4gIAkvKiBVcGRhdGUgdGhlIEd1QydzIGlkZWEgb2YgdGhlIGRvb3JiZWxsIElEICovCj4g IAlsZW4gPSBzZ19wY29weV90b19idWZmZXIoc2ctPnNnbCwgc2ctPm5lbnRzLCAmZGVzYywgc2l6 ZW9mKGRlc2MpLAo+IC0JCQkgICAgIHNpemVvZihkZXNjKSAqIGNsaWVudC0+Y3R4X2luZGV4KTsK PiArCQkJICAgICBzaXplb2YoZGVzYykgKiBjbGllbnQtPnNtdXJmX2luZGV4KTsKPiAgCWlmIChs ZW4gIT0gc2l6ZW9mKGRlc2MpKQo+ICAJCXJldHVybiAtRUZBVUxUOwo+ICAJZGVzYy5kYl9pZCA9 IG5ld19pZDsKPiAgCWxlbiA9IHNnX3Bjb3B5X2Zyb21fYnVmZmVyKHNnLT5zZ2wsIHNnLT5uZW50 cywgJmRlc2MsIHNpemVvZihkZXNjKSwKPiAtCQkJICAgICBzaXplb2YoZGVzYykgKiBjbGllbnQt PmN0eF9pbmRleCk7Cj4gKwkJCSAgICAgc2l6ZW9mKGRlc2MpICogY2xpZW50LT5zbXVyZl9pbmRl eCk7Cj4gIAlpZiAobGVuICE9IHNpemVvZihkZXNjKSkKPiAgCQlyZXR1cm4gLUVGQVVMVDsKPgo+ IEBAIC0yMTcsNyArMjI4LDcgQEAgc3RhdGljIHZvaWQgZ3VjX3Byb2NfZGVzY19pbml0KHN0cnVj dCBpbnRlbF9ndWMgKmd1YywKPiAgCWRlc2MtPndxX2Jhc2VfYWRkciA9IDA7Cj4gIAlkZXNjLT5k Yl9iYXNlX2FkZHIgPSAwOwo+Cj4gLQlkZXNjLT5jb250ZXh0X2lkID0gY2xpZW50LT5jdHhfaW5k ZXg7Cj4gKwlkZXNjLT5zbXVyZl9pZCA9IGNsaWVudC0+c211cmZfaW5kZXg7Cj4gIAlkZXNjLT53 cV9zaXplX2J5dGVzID0gY2xpZW50LT53cV9zaXplOwo+ICAJZGVzYy0+d3Ffc3RhdHVzID0gV1Ff U1RBVFVTX0FDVElWRTsKPiAgCWRlc2MtPnByaW9yaXR5ID0gY2xpZW50LT5wcmlvcml0eTsKPiBA QCAtMjMxLDIxICsyNDIsMjEgQEAgc3RhdGljIHZvaWQgZ3VjX3Byb2NfZGVzY19pbml0KHN0cnVj dCBpbnRlbF9ndWMgKmd1YywKPiAgICogd3JpdGUgcXVldWUsIGV0YykuCj4gICAqLwo+Cj4gLXN0 YXRpYyB2b2lkIGd1Y19jdHhfZGVzY19pbml0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKPiArc3Rh dGljIHZvaWQgZ3VjX3NtdXJmX2Rlc2NfaW5pdChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCj4gIAkJ CSAgICAgIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCkKPiAgewo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKPiAgCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiAgCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgg PSBjbGllbnQtPm93bmVyOwo+IC0Jc3RydWN0IGd1Y19jb250ZXh0X2Rlc2MgZGVzYzsKPiArCXN0 cnVjdCBndWNfc211cmZfZGVzYyBkZXNjOwo+ICAJc3RydWN0IHNnX3RhYmxlICpzZzsKPiAgCXVu c2lnbmVkIGludCB0bXA7Cj4gIAl1MzIgZ2Z4X2FkZHI7Cj4KPiAgCW1lbXNldCgmZGVzYywgMCwg c2l6ZW9mKGRlc2MpKTsKPgo+IC0JZGVzYy5hdHRyaWJ1dGUgPSBHVUNfQ1RYX0RFU0NfQVRUUl9B Q1RJVkUgfCBHVUNfQ1RYX0RFU0NfQVRUUl9LRVJORUw7Cj4gLQlkZXNjLmNvbnRleHRfaWQgPSBj bGllbnQtPmN0eF9pbmRleDsKPiArCWRlc2MuYXR0cmlidXRlID0gR1VDX1NNVVJGX0RFU0NfQVRU Ul9BQ1RJVkUgfCBHVUNfU01VUkZfREVTQ19BVFRSX0tFUk5FTDsKPiArCWRlc2Muc211cmZfaWQg PSBjbGllbnQtPnNtdXJmX2luZGV4Owo+ICAJZGVzYy5wcmlvcml0eSA9IGNsaWVudC0+cHJpb3Jp dHk7Cj4gIAlkZXNjLmRiX2lkID0gY2xpZW50LT5kb29yYmVsbF9pZDsKPgo+IEBAIC0yNjcsMTAg KzI3OCwxMSBAQCBzdGF0aWMgdm9pZCBndWNfY3R4X2Rlc2NfaW5pdChzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMsCj4gIAkJbHJjLT5jb250ZXh0X2Rlc2MgPSBsb3dlcl8zMl9iaXRzKGNlLT5scmNfZGVz Yyk7Cj4KPiAgCQkvKiBUaGUgc3RhdGUgcGFnZSBpcyBhZnRlciBQUEhXU1AgKi8KPiAtCQlscmMt PnJpbmdfbGNyYSA9Cj4gKwkJbHJjLT5yaW5nX2xyY2EgPQo+ICAJCQlndWNfZ2d0dF9vZmZzZXQo Y2UtPnN0YXRlKSArIExSQ19TVEFURV9QTiAqIFBBR0VfU0laRTsKPiAtCQlscmMtPmNvbnRleHRf aWQgPSAoY2xpZW50LT5jdHhfaW5kZXggPDwgR1VDX0VMQ19DVFhJRF9PRkZTRVQpIHwKPiAtCQkJ CShndWNfZW5naW5lX2lkIDw8IEdVQ19FTENfRU5HSU5FX09GRlNFVCk7Cj4gKwkJbHJjLT5zbXVy Zl9hbmRfZW5naW5lX2lkID0KPiArCQkJKGNsaWVudC0+c211cmZfaW5kZXggPDwgR1VDX0VMQ19T TVVSRl9JRF9PRkZTRVQpIHwKPiArCQkJKGd1Y19lbmdpbmVfaWQgPDwgR1VDX0VMQ19FTkdJTkVf T0ZGU0VUKTsKPgo+ICAJCWxyYy0+cmluZ19iZWdpbiA9IGd1Y19nZ3R0X29mZnNldChjZS0+cmlu Zy0+dm1hKTsKPiAgCQlscmMtPnJpbmdfZW5kID0gbHJjLT5yaW5nX2JlZ2luICsgY2UtPnJpbmct PnNpemUgLSAxOwo+IEBAIC0zMDUsMjIgKzMxNywyMiBAQCBzdGF0aWMgdm9pZCBndWNfY3R4X2Rl c2NfaW5pdChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCj4gIAlkZXNjLmRlc2NfcHJpdmF0ZSA9ICh1 aW50cHRyX3QpY2xpZW50Owo+Cj4gIAkvKiBQb29sIGNvbnRleHQgaXMgcGlubmVkIGFscmVhZHkg Ki8KPiAtCXNnID0gZ3VjLT5jdHhfcG9vbF92bWEtPnBhZ2VzOwo+ICsJc2cgPSBndWMtPnNtdXJm X3Bvb2xfdm1hLT5wYWdlczsKPiAgCXNnX3Bjb3B5X2Zyb21fYnVmZmVyKHNnLT5zZ2wsIHNnLT5u ZW50cywgJmRlc2MsIHNpemVvZihkZXNjKSwKPiAtCQkJICAgICBzaXplb2YoZGVzYykgKiBjbGll bnQtPmN0eF9pbmRleCk7Cj4gKwkJCSAgICAgc2l6ZW9mKGRlc2MpICogY2xpZW50LT5zbXVyZl9p bmRleCk7Cj4gIH0KPgo+IC1zdGF0aWMgdm9pZCBndWNfY3R4X2Rlc2NfZmluaShzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMsCj4gK3N0YXRpYyB2b2lkIGd1Y19zbXVyZl9kZXNjX2Zpbmkoc3RydWN0IGlu dGVsX2d1YyAqZ3VjLAo+ICAJCQkgICAgICBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpjbGllbnQp Cj4gIHsKPiAtCXN0cnVjdCBndWNfY29udGV4dF9kZXNjIGRlc2M7Cj4gKwlzdHJ1Y3QgZ3VjX3Nt dXJmX2Rlc2MgZGVzYzsKPiAgCXN0cnVjdCBzZ190YWJsZSAqc2c7Cj4KPiAgCW1lbXNldCgmZGVz YywgMCwgc2l6ZW9mKGRlc2MpKTsKPgo+IC0Jc2cgPSBndWMtPmN0eF9wb29sX3ZtYS0+cGFnZXM7 Cj4gKwlzZyA9IGd1Yy0+c211cmZfcG9vbF92bWEtPnBhZ2VzOwo+ICAJc2dfcGNvcHlfZnJvbV9i dWZmZXIoc2ctPnNnbCwgc2ctPm5lbnRzLCAmZGVzYywgc2l6ZW9mKGRlc2MpLAo+IC0JCQkgICAg IHNpemVvZihkZXNjKSAqIGNsaWVudC0+Y3R4X2luZGV4KTsKPiArCQkJICAgICBzaXplb2YoZGVz YykgKiBjbGllbnQtPnNtdXJmX2luZGV4KTsKPiAgfQo+Cj4gIC8qKgo+IEBAIC02MTIsOSArNjI0 LDkgQEAgc3RydWN0IGk5MTVfdm1hICppbnRlbF9ndWNfYWxsb2NhdGVfdm1hKHN0cnVjdCBpbnRl bF9ndWMgKmd1YywgdTMyIHNpemUpCj4KPiAgCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZj bGllbnQtPnZtYSk7Cj4KPiAtCWlmIChjbGllbnQtPmN0eF9pbmRleCAhPSBHVUNfSU5WQUxJRF9D VFhfSUQpIHsKPiAtCQlndWNfY3R4X2Rlc2NfZmluaShndWMsIGNsaWVudCk7Cj4gLQkJaWRhX3Np bXBsZV9yZW1vdmUoJmd1Yy0+Y3R4X2lkcywgY2xpZW50LT5jdHhfaW5kZXgpOwo+ICsJaWYgKGNs aWVudC0+c211cmZfaW5kZXggIT0gR1VDX0lOVkFMSURfU01VUkZfSUQpIHsKPiArCQlndWNfc211 cmZfZGVzY19maW5pKGd1YywgY2xpZW50KTsKPiArCQlpZGFfc2ltcGxlX3JlbW92ZSgmZ3VjLT5z bXVyZl9pZHMsIGNsaWVudC0+c211cmZfaW5kZXgpOwo+ICAJfQo+Cj4gIAlrZnJlZShjbGllbnQp Owo+IEBAIC03MTAsMTAgKzcyMiwxMCBAQCBzdGF0aWMgdm9pZCBndWNfaW5pdF9kb29yYmVsbF9o dyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gIAljbGllbnQtPnByaW9yaXR5ID0gcHJpb3JpdHk7 Cj4gIAljbGllbnQtPmRvb3JiZWxsX2lkID0gR1VDX0lOVkFMSURfRE9PUkJFTExfSUQ7Cj4KPiAt CWNsaWVudC0+Y3R4X2luZGV4ID0gKHVpbnQzMl90KWlkYV9zaW1wbGVfZ2V0KCZndWMtPmN0eF9p ZHMsIDAsCj4gLQkJCUdVQ19NQVhfR1BVX0NPTlRFWFRTLCBHRlBfS0VSTkVMKTsKPiAtCWlmIChj bGllbnQtPmN0eF9pbmRleCA+PSBHVUNfTUFYX0dQVV9DT05URVhUUykgewo+IC0JCWNsaWVudC0+ Y3R4X2luZGV4ID0gR1VDX0lOVkFMSURfQ1RYX0lEOwo+ICsJY2xpZW50LT5zbXVyZl9pbmRleCA9 ICh1aW50MzJfdClpZGFfc2ltcGxlX2dldCgmZ3VjLT5zbXVyZl9pZHMsIDAsCj4gKwkJCUdVQ19N QVhfR1BVX1NNVVJGUywgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoY2xpZW50LT5zbXVyZl9pbmRleCA+ PSBHVUNfTUFYX0dQVV9TTVVSRlMpIHsKPiArCQljbGllbnQtPnNtdXJmX2luZGV4ID0gR1VDX0lO VkFMSURfU01VUkZfSUQ7Cj4gIAkJZ290byBlcnI7Cj4gIAl9Cj4KPiBAQCAtNzUzLDcgKzc2NSw3 IEBAIHN0YXRpYyB2b2lkIGd1Y19pbml0X2Rvb3JiZWxsX2h3KHN0cnVjdCBpbnRlbF9ndWMgKmd1 YykKPiAgCQljbGllbnQtPnByb2NfZGVzY19vZmZzZXQgPSAoR1VDX0RCX1NJWkUgLyAyKTsKPgo+ ICAJZ3VjX3Byb2NfZGVzY19pbml0KGd1YywgY2xpZW50KTsKPiAtCWd1Y19jdHhfZGVzY19pbml0 KGd1YywgY2xpZW50KTsKPiArCWd1Y19zbXVyZl9kZXNjX2luaXQoZ3VjLCBjbGllbnQpOwo+Cj4g IAkvKiBGb3IgcnVudGltZSBjbGllbnQgYWxsb2NhdGlvbiB3ZSBuZWVkIHRvIGVuYWJsZSB0aGUg ZG9vcmJlbGwuIE5vdAo+ICAJICogcmVxdWlyZWQgeWV0IGZvciB0aGUgc3RhdGljIGV4ZWNidWZf Y2xpZW50IGFzIHRoaXMgc3BlY2lhbCBrZXJuZWwKPiBAQCAtNzYyLDggKzc3NCw4IEBAIHN0YXRp YyB2b2lkIGd1Y19pbml0X2Rvb3JiZWxsX2h3KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiAgCSAq IGd1Y191cGRhdGVfZG9vcmJlbGxfaWQoZ3VjLCBjbGllbnQsIGRiX2lkKTsKPiAgCSAqLwo+Cj4g LQlEUk1fREVCVUdfRFJJVkVSKCJuZXcgcHJpb3JpdHkgJXUgY2xpZW50ICVwIGZvciBlbmdpbmUo cykgMHgleDogY3R4X2luZGV4ICV1XG4iLAo+IC0JCXByaW9yaXR5LCBjbGllbnQsIGNsaWVudC0+ ZW5naW5lcywgY2xpZW50LT5jdHhfaW5kZXgpOwo+ICsJRFJNX0RFQlVHX0RSSVZFUigibmV3IHBy aW9yaXR5ICV1IGNsaWVudCAlcCBmb3IgZW5naW5lKHMpIDB4JXg6IHNtdXJmX2luZGV4ICV1XG4i LAo+ICsJCXByaW9yaXR5LCBjbGllbnQsIGNsaWVudC0+ZW5naW5lcywgY2xpZW50LT5zbXVyZl9p bmRleCk7Cj4gIAlEUk1fREVCVUdfRFJJVkVSKCJkb29yYmVsbCBpZCAldSwgY2FjaGVsaW5lIG9m ZnNldCAweCV4XG4iLAo+ICAJCWNsaWVudC0+ZG9vcmJlbGxfaWQsIGNsaWVudC0+ZG9vcmJlbGxf b2Zmc2V0KTsKPgo+IEBAIC04NzMsOCArODg1LDggQEAgc3RhdGljIHZvaWQgZ3VjX2FkZG9uX2Ny ZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gICAqLwo+ICBpbnQgaTkxNV9ndWNfc3VibWlz c2lvbl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgewo+IC0JY29u c3Qgc2l6ZV90IGN0eHNpemUgPSBzaXplb2Yoc3RydWN0IGd1Y19jb250ZXh0X2Rlc2MpOwo+IC0J Y29uc3Qgc2l6ZV90IHBvb2xzaXplID0gR1VDX01BWF9HUFVfQ09OVEVYVFMgKiBjdHhzaXplOwo+ ICsJY29uc3Qgc2l6ZV90IGN0eHNpemUgPSBzaXplb2Yoc3RydWN0IGd1Y19zbXVyZl9kZXNjKTsK PiArCWNvbnN0IHNpemVfdCBwb29sc2l6ZSA9IEdVQ19NQVhfR1BVX1NNVVJGUyAqIGN0eHNpemU7 Cj4gIAljb25zdCBzaXplX3QgZ2Vtc2l6ZSA9IHJvdW5kX3VwKHBvb2xzaXplLCBQQUdFX1NJWkUp Owo+ICAJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7Cj4gIAlzdHJ1Y3Qg aTkxNV92bWEgKnZtYTsKPiBAQCAtODg5LDE1ICs5MDEsMTUgQEAgaW50IGk5MTVfZ3VjX3N1Ym1p c3Npb25faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlpZiAoIWk5 MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQo+ICAJCXJldHVybiAwOyAvKiBub3QgZW5hYmxlZCAg Ki8KPgo+IC0JaWYgKGd1Yy0+Y3R4X3Bvb2xfdm1hKQo+ICsJaWYgKGd1Yy0+c211cmZfcG9vbF92 bWEpCj4gIAkJcmV0dXJuIDA7IC8qIGFscmVhZHkgYWxsb2NhdGVkICovCj4KPiAgCXZtYSA9IGlu dGVsX2d1Y19hbGxvY2F0ZV92bWEoZ3VjLCBnZW1zaXplKTsKPiAgCWlmIChJU19FUlIodm1hKSkK PiAgCQlyZXR1cm4gUFRSX0VSUih2bWEpOwo+Cj4gLQlndWMtPmN0eF9wb29sX3ZtYSA9IHZtYTsK PiAtCWlkYV9pbml0KCZndWMtPmN0eF9pZHMpOwo+ICsJZ3VjLT5zbXVyZl9wb29sX3ZtYSA9IHZt YTsKPiArCWlkYV9pbml0KCZndWMtPnNtdXJmX2lkcyk7Cj4gIAlpbnRlbF9ndWNfbG9nX2NyZWF0 ZShndWMpOwo+ICAJZ3VjX2FkZG9uX2NyZWF0ZShndWMpOwo+Cj4gQEAgLTk4NSw5ICs5OTcsOSBA QCB2b2lkIGk5MTVfZ3VjX3N1Ym1pc3Npb25fZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gIAlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmZ3VjLT5hZHNfdm1hKTsK PiAgCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndWMtPmxvZy52bWEpOwo+Cj4gLQlpZiAo Z3VjLT5jdHhfcG9vbF92bWEpCj4gLQkJaWRhX2Rlc3Ryb3koJmd1Yy0+Y3R4X2lkcyk7Cj4gLQlp OTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmZ3VjLT5jdHhfcG9vbF92bWEpOwo+ICsJaWYgKGd1 Yy0+c211cmZfcG9vbF92bWEpCj4gKwkJaWRhX2Rlc3Ryb3koJmd1Yy0+c211cmZfaWRzKTsKPiAr CWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndWMtPnNtdXJmX3Bvb2xfdm1hKTsKPiAgfQo+ Cj4gIC8qKgo+IEBAIC0xMDQyLDUgKzEwNTQsMyBAQCBpbnQgaW50ZWxfZ3VjX3Jlc3VtZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4KPiAgCXJldHVybiBpbnRlbF9ndWNfc2Vu ZChndWMsIGRhdGEsIEFSUkFZX1NJWkUoZGF0YSkpOwo+ICB9Cj4gLQo+IC0KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3aWYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2d1Y19md2lmLmgKPiBpbmRleCAyNTY5MWYwLi5lMmE4YTdiIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oCj4gQEAgLTMyLDggKzMyLDggQEAKPiAg I2RlZmluZSBHVUNfQ1RYX1BSSU9SSVRZX05PUk1BTAkJMwo+ICAjZGVmaW5lIEdVQ19DVFhfUFJJ T1JJVFlfTlVNCQk0Cj4KPiAtI2RlZmluZSBHVUNfTUFYX0dQVV9DT05URVhUUwkJMTAyNAo+IC0j ZGVmaW5lCUdVQ19JTlZBTElEX0NUWF9JRAkJR1VDX01BWF9HUFVfQ09OVEVYVFMKPiArI2RlZmlu ZSBHVUNfTUFYX0dQVV9TTVVSRlMJCTEwMjQKPiArI2RlZmluZQlHVUNfSU5WQUxJRF9TTVVSRl9J RAlHVUNfTUFYX0dQVV9TTVVSRlMKPgo+ICAjZGVmaW5lIEdVQ19SRU5ERVJfRU5HSU5FCQkwCj4g ICNkZWZpbmUgR1VDX1ZJREVPX0VOR0lORQkJMQo+IEBAIC02OCwxNCArNjgsMTQgQEAKPiAgI2Rl ZmluZSBHVUNfRE9PUkJFTExfRU5BQkxFRAkJMQo+ICAjZGVmaW5lIEdVQ19ET09SQkVMTF9ESVNB QkxFRAkJMAo+Cj4gLSNkZWZpbmUgR1VDX0NUWF9ERVNDX0FUVFJfQUNUSVZFCSgxIDw8IDApCj4g LSNkZWZpbmUgR1VDX0NUWF9ERVNDX0FUVFJfUEVORElOR19EQgkoMSA8PCAxKQo+IC0jZGVmaW5l IEdVQ19DVFhfREVTQ19BVFRSX0tFUk5FTAkoMSA8PCAyKQo+IC0jZGVmaW5lIEdVQ19DVFhfREVT Q19BVFRSX1BSRUVNUFQJKDEgPDwgMykKPiAtI2RlZmluZSBHVUNfQ1RYX0RFU0NfQVRUUl9SRVNF VAkJKDEgPDwgNCkKPiAtI2RlZmluZSBHVUNfQ1RYX0RFU0NfQVRUUl9XUUxPQ0tFRAkoMSA8PCA1 KQo+IC0jZGVmaW5lIEdVQ19DVFhfREVTQ19BVFRSX1BDSAkJKDEgPDwgNikKPiAtI2RlZmluZSBH VUNfQ1RYX0RFU0NfQVRUUl9URVJNSU5BVEVECSgxIDw8IDcpCj4gKyNkZWZpbmUgR1VDX1NNVVJG X0RFU0NfQVRUUl9BQ1RJVkUJKDEgPDwgMCkKPiArI2RlZmluZSBHVUNfU01VUkZfREVTQ19BVFRS X1BFTkRJTkdfREIJKDEgPDwgMSkKPiArI2RlZmluZSBHVUNfU01VUkZfREVTQ19BVFRSX0tFUk5F TAkoMSA8PCAyKQo+ICsjZGVmaW5lIEdVQ19TTVVSRl9ERVNDX0FUVFJfUFJFRU1QVAkoMSA8PCAz KQo+ICsjZGVmaW5lIEdVQ19TTVVSRl9ERVNDX0FUVFJfUkVTRVQJCSgxIDw8IDQpCj4gKyNkZWZp bmUgR1VDX1NNVVJGX0RFU0NfQVRUUl9XUUxPQ0tFRAkoMSA8PCA1KQo+ICsjZGVmaW5lIEdVQ19T TVVSRl9ERVNDX0FUVFJfUENICQkoMSA8PCA2KQo+ICsjZGVmaW5lIEdVQ19TTVVSRl9ERVNDX0FU VFJfVEVSTUlOQVRFRAkoMSA8PCA3KQo+Cj4gIC8qIFRoZSBndWMgY29udHJvbCBkYXRhIGlzIDEw IERXT1JEcyAqLwo+ICAjZGVmaW5lIEdVQ19DVExfQ1RYSU5GTwkJCTAKPiBAQCAtMjU2LDcgKzI1 Niw3IEBAIHN0cnVjdCBndWNfd3FfaXRlbSB7Cj4gIH0gX19wYWNrZWQ7Cj4KPiAgc3RydWN0IGd1 Y19wcm9jZXNzX2Rlc2Mgewo+IC0JdTMyIGNvbnRleHRfaWQ7Cj4gKwl1MzIgc211cmZfaWQ7Cj4g IAl1NjQgZGJfYmFzZV9hZGRyOwo+ICAJdTMyIGhlYWQ7Cj4gIAl1MzIgdGFpbDsKPiBAQCAtMjcw LDE1ICsyNzAsMTUgQEAgc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2Mgewo+ICB9IF9fcGFja2VkOwo+ Cj4gIC8qIGVuZ2luZSBpZCBhbmQgY29udGV4dCBpZCBpcyBwYWNrZWQgaW50byBndWNfZXhlY2xp c3RfY29udGV4dC5jb250ZXh0X2lkKi8KPiAtI2RlZmluZSBHVUNfRUxDX0NUWElEX09GRlNFVAkJ MAo+ICsjZGVmaW5lIEdVQ19FTENfU01VUkZfSURfT0ZGU0VUCTAKPiAgI2RlZmluZSBHVUNfRUxD X0VOR0lORV9PRkZTRVQJCTI5Cj4KPiAgLyogVGhlIGV4ZWNsaXN0IGNvbnRleHQgaW5jbHVkaW5n IHNvZnR3YXJlIGFuZCBIVyBpbmZvcm1hdGlvbiAqLwo+ICBzdHJ1Y3QgZ3VjX2V4ZWNsaXN0X2Nv bnRleHQgewo+ICAJdTMyIGNvbnRleHRfZGVzYzsKPiAtCXUzMiBjb250ZXh0X2lkOwo+ICsJdTMy IHNtdXJmX2FuZF9lbmdpbmVfaWQ7Cj4gIAl1MzIgcmluZ19zdGF0dXM7Cj4gLQl1MzIgcmluZ19s Y3JhOwo+ICsJdTMyIHJpbmdfbHJjYTsKPiAgCXUzMiByaW5nX2JlZ2luOwo+ICAJdTMyIHJpbmdf ZW5kOwo+ICAJdTMyIHJpbmdfbmV4dF9mcmVlX2xvY2F0aW9uOwo+IEBAIC0yODksMTAgKzI4OSwx MCBAQCBzdHJ1Y3QgZ3VjX2V4ZWNsaXN0X2NvbnRleHQgewo+ICAJdTE2IGVuZ2luZV9zdWJtaXRf cXVldWVfY291bnQ7Cj4gIH0gX19wYWNrZWQ7Cj4KPiAtLypDb250ZXh0IGRlc2NyaXB0b3IgZm9y IGNvbW11bmljYXRpbmcgYmV0d2VlbiB1S2VybmVsIGFuZCBEcml2ZXIqLwo+IC1zdHJ1Y3QgZ3Vj X2NvbnRleHRfZGVzYyB7Cj4gKy8qIFNtdXJmIGRlc2NyaXB0b3IgZm9yIGNvbW11bmljYXRpbmcg YmV0d2VlbiB1S2VybmVsIGFuZCBEcml2ZXIgKi8KPiArc3RydWN0IGd1Y19zbXVyZl9kZXNjIHsK PiAgCXUzMiBzY2hlZF9jb21tb25fYXJlYTsKPiAtCXUzMiBjb250ZXh0X2lkOwo+ICsJdTMyIHNt dXJmX2lkOwo+ICAJdTMyIHBhc19pZDsKPiAgCXU4IGVuZ2luZXNfdXNlZDsKPiAgCXU2NCBkYl90 cmlnZ2VyX2NwdTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj X2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gaW5k ZXggOTg4NWY3Ni4uZTBlZWU3ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWNfbG9hZGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNf bG9hZGVyLmMKPiBAQCAtMjIxLDggKzIyMSw4IEBAIHN0YXRpYyB2b2lkIGd1Y19wYXJhbXNfaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4KPiAgCS8qIElmIEd1QyBzdWJt aXNzaW9uIGlzIGVuYWJsZWQsIHNldCB1cCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgaGVyZSAqLwo+ ICAJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKSB7Cj4gLQkJdTMyIHBncyA9IGd1Y19n Z3R0X29mZnNldChkZXZfcHJpdi0+Z3VjLmN0eF9wb29sX3ZtYSk7Cj4gLQkJdTMyIGN0eF9pbl8x NiA9IEdVQ19NQVhfR1BVX0NPTlRFWFRTIC8gMTY7Cj4gKwkJdTMyIHBncyA9IGd1Y19nZ3R0X29m ZnNldChkZXZfcHJpdi0+Z3VjLnNtdXJmX3Bvb2xfdm1hKTsKPiArCQl1MzIgY3R4X2luXzE2ID0g R1VDX01BWF9HUFVfU01VUkZTIC8gMTY7Cj4KPiAgCQlwZ3MgPj49IFBBR0VfU0hJRlQ7Cj4gIAkJ cGFyYW1zW0dVQ19DVExfQ1RYSU5GT10gPSAocGdzIDw8IEdVQ19DVExfQkFTRV9BRERSX1NISUZU KSB8Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oCj4gaW5kZXggZDc0ZjRkMy4uMDMwNmIxMSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaAo+IEBAIC03Miw3ICs3Miw3IEBAIHN0cnVjdCBpOTE1 X2d1Y19jbGllbnQgewo+Cj4gIAl1aW50MzJfdCBlbmdpbmVzOwkJLyogYml0bWFwIG9mIChob3N0 KSBlbmdpbmUgaWRzCSovCj4gIAl1aW50MzJfdCBwcmlvcml0eTsKPiAtCXVpbnQzMl90IGN0eF9p bmRleDsKPiArCXVpbnQzMl90IHNtdXJmX2luZGV4Owo+ICAJdWludDMyX3QgcHJvY19kZXNjX29m ZnNldDsKPgo+ICAJdWludDMyX3QgZG9vcmJlbGxfb2Zmc2V0Owo+IEBAIC0xNTQsOCArMTU0LDgg QEAgc3RydWN0IGludGVsX2d1YyB7Cj4gIAlib29sIGludGVycnVwdHNfZW5hYmxlZDsKPgo+ICAJ c3RydWN0IGk5MTVfdm1hICphZHNfdm1hOwo+IC0Jc3RydWN0IGk5MTVfdm1hICpjdHhfcG9vbF92 bWE7Cj4gLQlzdHJ1Y3QgaWRhIGN0eF9pZHM7Cj4gKwlzdHJ1Y3QgaTkxNV92bWEgKnNtdXJmX3Bv b2xfdm1hOwo+ICsJc3RydWN0IGlkYSBzbXVyZl9pZHM7Cj4KPiAgCXN0cnVjdCBpOTE1X2d1Y19j bGllbnQgKmV4ZWNidWZfY2xpZW50Owo+Cj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==