From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Dai Subject: Re: [PATCH 11/13 v4] drm/i915: Integrate GuC-based command submission Date: Mon, 27 Jul 2015 12:33:31 -0700 Message-ID: <55B6878B.3030307@intel.com> References: <1436466554-24806-1-git-send-email-david.s.gordon@intel.com> <1436466554-24806-12-git-send-email-david.s.gordon@intel.com> <20150727155749.GA124515@torourke-desk1> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 E4DB46E323 for ; Mon, 27 Jul 2015 12:34:52 -0700 (PDT) In-Reply-To: <20150727155749.GA124515@torourke-desk1> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "O'Rourke, Tom" , Dave Gordon Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiAwNy8yNy8yMDE1IDA4OjU3IEFNLCBPJ1JvdXJrZSwgVG9tIHdyb3RlOgo+IE9uIFRodSwg SnVsIDA5LCAyMDE1IGF0IDA3OjI5OjEyUE0gKzAxMDAsIERhdmUgR29yZG9uIHdyb3RlOgo+ID4g RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+Cj4gPgo+ID4gR3VDLWJhc2VkIHN1Ym1p c3Npb24gaXMgbW9zdGx5IHRoZSBzYW1lIGFzIGV4ZWNsaXN0IG1vZGUsIHVwIHRvCj4gPiBpbnRl bF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KCksIHdoZXJlIHRoZSBjb250ZXh0IGJl aW5nCj4gPiBkaXNwYXRjaGVkIHdvdWxkIGJlIGFkZGVkIHRvIHRoZSBleGVjbGlzdCBxdWV1ZTsg YXQgdGhpcyBwb2ludAo+ID4gd2Ugc3VibWl0IHRoZSBjb250ZXh0IHRvIHRoZSBHdUMgYmFja2Vu ZCBpbnN0ZWFkLgo+ID4KPiA+IFRoZXJlIGFyZSwgaG93ZXZlciwgYSBmZXcgb3RoZXIgY2hhbmdl cyBhbHNvIHJlcXVpcmVkLCBub3RhYmx5Ogo+ID4gMS4gIENvbnRleHRzIG11c3QgYmUgcGlubmVk IGF0IEdHVFQgYWRkcmVzc2VzIGFjY2Vzc2libGUgYnkgdGhlIEd1Qwo+ID4gICAgIGkuZS4gTk9U IGluIHRoZSByYW5nZSBbMC4uV09QQ01fU0laRSksIHNvIHdlIGhhdmUgdG8gYWRkIHRoZQo+ID4g ICAgIFBJTl9PRkZTRVRfQklBUyBmbGFnIHRvIHRoZSByZWxldmFudCBHR1RULXBpbm5pbmcgY2Fs bHMuCj4gPgo+ID4gMi4gIFRoZSBHdUMncyBUTEIgbXVzdCBiZSBpbnZhbGlkYXRlZCBhZnRlciBh IGNvbnRleHQgaXMgcGlubmVkIGF0Cj4gPiAgICAgYSBuZXcgR0dUVCBhZGRyZXNzLgo+ID4KPiA+ IDMuICBHdUMgZmlybXdhcmUgdXNlcyB0aGUgb25lIHBhZ2UgYmVmb3JlIFJpbmcgQ29udGV4dCBh cyBzaGFyZWQgZGF0YS4KPiA+ICAgICBUaGVyZWZvcmUsIHdoZW5ldmVyIGRyaXZlciB3YW50cyB0 byBnZXQgYmFzZSBhZGRyZXNzIG9mIExSQywgd2UKPiA+ICAgICB3aWxsIG9mZnNldCBvbmUgcGFn ZSBmb3IgaXQuIExSQ19QUEhXU1BfUE4gaXMgZGVmaW5lZCBhcyB0aGUgcGFnZQo+ID4gICAgIG51 bWJlciBvZiBMUkNBLgo+ID4KPiA+IDQuICBJbiB0aGUgd29yayBxdWV1ZSB1c2VkIHRvIHBhc3Mg cmVxdWVzdHMgdG8gdGhlIEd1QywgdGhlIEd1Qwo+ID4gICAgIGZpcm13YXJlIHJlcXVpcmVzIHRo ZSByaW5nLXRhaWwtb2Zmc2V0IHRvIGJlIHJlcHJlc2VudGVkIGFzIGFuCj4gPiAgICAgMTEtYml0 IHZhbHVlLCBleHByZXNzZWQgaW4gUVdvcmRzLiBUaGVyZWZvcmUsIHRoZSByaW5nYnVmZmVyCj4g PiAgICAgc2l6ZSBtdXN0IGJlIHJlZHVjZWQgdG8gdGhlIHJlcHJlc2VudGFibGUgcmFuZ2UgKDQg cGFnZXMpLgo+ID4KPiA+IHYyOgo+ID4gICAgIERlZmVyIGFkZGluZyAjZGVmaW5lcyB1bnRpbCBu ZWVkZWQgW0NocmlzIFdpbHNvbl0KPiA+ICAgICBSYXRpb25hbGlzZSB0eXBlIGRlY2xhcmF0aW9u cyBbQ2hyaXMgV2lsc29uXQo+ID4KPiA+IHY0Ogo+ID4gICAgIFNxdWFzaGVkIGtlcm5lbGRvYyBw YXRjaCBpbnRvIGhlcmUgW0RhbmllbCBWZXR0ZXJdCj4gPgo+ID4gSXNzdWU6IFZJWi00ODg0Cj4g PiBTaWduZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KPiA+IFNpZ25lZC1v ZmYtYnk6IERhdmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+Cj4gPiAtLS0KPiA+ ICBEb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwgICAgICAgICAgICAgfCAxNCArKysrKysr Kwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICB8ICAyICst Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgNTIgKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjLmggICAgICAgICAgIHwgIDEgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jICAgICAgICAgICB8IDUxICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggICAgICAgICAgIHwgIDYgKysrKwo+ID4g IDYgZmlsZXMgY2hhbmdlZCwgMTA2IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQo+ID4K PiA+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwgYi9Eb2N1bWVu dGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwKPiA+IGluZGV4IDU5NmIxMWQuLjBmZjVmZDcgMTAwNjQ0 Cj4gPiAtLS0gYS9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwKPiA+ICsrKyBiL0RvY3Vt ZW50YXRpb24vRG9jQm9vay9kcm0udG1wbAo+ID4gQEAgLTQyMjMsNiArNDIyMywyMCBAQCBpbnQg bnVtX2lvY3Rsczs8L3N5bm9wc2lzPgo+ID4gICAgICAgIDwvc2VjdDI+Cj4gPiAgICAgIDwvc2Vj dDE+Cj4gPiAgICAgIDxzZWN0MT4KPiA+ICsgICAgICA8dGl0bGU+R3VDLWJhc2VkIENvbW1hbmQg U3VibWlzc2lvbjwvdGl0bGU+Cj4gPiArICAgICAgPHNlY3QyPgo+ID4gKyAgICAgICAgPHRpdGxl Pkd1QzwvdGl0bGU+Cj4gPiArIVBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVy LmMgR3VDLXNwZWNpZmljIGZpcm13YXJlIGxvYWRlcgo+ID4gKyFJZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gPiArICAgICAgPC9zZWN0Mj4KPiA+ICsgICAgICA8c2Vj dDI+Cj4gPiArICAgICAgICA8dGl0bGU+R3VDIENsaWVudDwvdGl0bGU+Cj4gPiArIVBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jIEd1Qy1iYXNlZCBjb21tYW5kIHN1 Ym1pc3Npc29uCj4gPiArIUlkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lv bi5jCj4gPiArICAgICAgPC9zZWN0Mj4KPiA+ICsgICAgPC9zZWN0MT4KPiA+ICsKPiA+ICsgICAg PHNlY3QxPgo+ID4gICAgICAgIDx0aXRsZT4gVHJhY2luZyA8L3RpdGxlPgo+ID4gICAgICAgIDxw YXJhPgo+ID4gICAgICBUaGlzIHNlY3Rpb25zIGNvdmVycyBhbGwgdGhpbmdzIHJlbGF0ZWQgdG8g dGhlIHRyYWNlcG9pbnRzIGltcGxlbWVudGVkIGluCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYwo+ID4gaW5kZXggMTNlMzdkMS4uZDkzNzMyYSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gQEAgLTE5ODIsNyArMTk4Miw3IEBAIHN0YXRpYyB2b2lk IGk5MTVfZHVtcF9scmNfb2JqKHN0cnVjdCBzZXFfZmlsZSAqbSwKPiA+ICAJCXJldHVybjsKPiA+ ICAJfQo+ID4KPiA+IC0JcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShjdHhfb2JqLCAx KTsKPiA+ICsJcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShjdHhfb2JqLCBMUkNfU1RB VEVfUE4pOwo+ID4gIAlpZiAoIVdBUk5fT04ocGFnZSA9PSBOVUxMKSkgewo+ID4gIAkJcmVnX3N0 YXRlID0ga21hcF9hdG9taWMocGFnZSk7Cj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3VjX3N1Ym1pc3Npb24uYwo+ID4gaW5kZXggMjVkODgwNy4uYzVjOWZiZiAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gPiBAQCAtMzQ2 LDE4ICszNDYsNTggQEAgc3RhdGljIHZvaWQgZ3VjX2luaXRfcHJvY19kZXNjKHN0cnVjdCBpbnRl bF9ndWMgKmd1YywKPiA+ICBzdGF0aWMgdm9pZCBndWNfaW5pdF9jdHhfZGVzYyhzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMsCj4gPiAgCQkJICAgICAgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqY2xpZW50 KQo+ID4gIHsKPiA+ICsJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCA9IGNsaWVudC0+b3duZXI7 Cj4gPiAgCXN0cnVjdCBndWNfY29udGV4dF9kZXNjIGRlc2M7Cj4gPiAgCXN0cnVjdCBzZ190YWJs ZSAqc2c7Cj4gPiArCWludCBpOwo+ID4KPiA+ICAJbWVtc2V0KCZkZXNjLCAwLCBzaXplb2YoZGVz YykpOwo+ID4KPiA+ICAJZGVzYy5hdHRyaWJ1dGUgPSBHVUNfQ1RYX0RFU0NfQVRUUl9BQ1RJVkUg fCBHVUNfQ1RYX0RFU0NfQVRUUl9LRVJORUw7Cj4gPiAgCWRlc2MuY29udGV4dF9pZCA9IGNsaWVu dC0+Y3R4X2luZGV4Owo+ID4gIAlkZXNjLnByaW9yaXR5ID0gY2xpZW50LT5wcmlvcml0eTsKPiA+ IC0JZGVzYy5lbmdpbmVzX3VzZWQgPSAoMSA8PCBSQ1MpIHwgKDEgPDwgVkNTKSB8ICgxIDw8IEJD UykgfAo+ID4gLQkJCSAgICAoMSA8PCBWRUNTKSB8ICgxIDw8IFZDUzIpOyAvKiBhbGwgZW5naW5l cyAqLwo+ID4gIAlkZXNjLmRiX2lkID0gY2xpZW50LT5kb29yYmVsbF9pZDsKPiA+Cj4gPiArCWZv ciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7Cj4gPiArCQlzdHJ1Y3QgZ3VjX2V4 ZWNsaXN0X2NvbnRleHQgKmxyYyA9ICZkZXNjLmxyY1tpXTsKPiA+ICsJCXN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nYnVmID0gY3R4LT5lbmdpbmVbaV0ucmluZ2J1ZjsKPiA+ICsJCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7Cj4gPiArCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqOwo+ID4gKwkJdWludDY0X3QgY3R4X2Rlc2M7Cj4gPiArCj4gPiArCQkvKiBUT0RPOiBX ZSBoYXZlIGEgZGVzaWduIGlzc3VlIHRvIGJlIHNvbHZlZCBoZXJlLiBPbmx5IHdoZW4gd2UKPiA+ ICsJCSAqIHJlY2VpdmUgdGhlIGZpcnN0IGJhdGNoLCB3ZSBrbm93IHdoaWNoIGVuZ2luZSBpcyB1 c2VkIGJ5IHRoZQo+ID4gKwkJICogdXNlci4gQnV0IGhlcmUgR3VDIGV4cGVjdHMgdGhlIGxyYyBh bmQgcmluZyB0byBiZSBwaW5uZWQuIEl0Cj4gPiArCQkgKiBpcyBub3QgYW4gaXNzdWUgZm9yIGRl ZmF1bHQgY29udGV4dCwgd2hpY2ggaXMgdGhlIG9ubHkgb25lCj4gPiArCQkgKiBmb3Igbm93IHdo byBvd25zIGEgR3VDIGNsaWVudC4gQnV0IGZvciBmdXR1cmUgb3duZXIgb2YgR3VDCj4gPiArCQkg KiBjbGllbnQsIG5lZWQgdG8gbWFrZSBzdXJlIGxyYyBpcyBwaW5uZWQgcHJpb3IgdG8gZW50ZXIg aGVyZS4KPiA+ICsJCSAqLwo+ID4gKwkJb2JqID0gY3R4LT5lbmdpbmVbaV0uc3RhdGU7Cj4gPiAr CQlpZiAoIW9iaikKPiA+ICsJCQlicmVhazsKPiA+ICsKPiA+ICsJCXJpbmcgPSByaW5nYnVmLT5y aW5nOwo+ID4gKwkJY3R4X2Rlc2MgPSBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3IoY3R4LCBy aW5nKTsKPiA+ICsJCWxyYy0+Y29udGV4dF9kZXNjID0gKHUzMiljdHhfZGVzYzsKPiA+ICsKPiA+ ICsJCS8qIFRoZSBzdGF0ZSBwYWdlIGlzIGFmdGVyIFBQSFdTUCAqLwo+ID4gKwkJbHJjLT5yaW5n X2xjcmEgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKSArCj4gPiArCQkJCUxSQ19TVEFU RV9QTiAqIFBBR0VfU0laRTsKPiA+ICsJCWxyYy0+Y29udGV4dF9pZCA9IChjbGllbnQtPmN0eF9p bmRleCA8PCBHVUNfRUxDX0NUWElEX09GRlNFVCkgfAo+ID4gKwkJCQkocmluZy0+aWQgPDwgR1VD X0VMQ19FTkdJTkVfT0ZGU0VUKTsKPiA+ICsKPiA+ICsJCW9iaiA9IHJpbmdidWYtPm9iajsKPiA+ ICsKPiA+ICsJCWxyYy0+cmluZ19iZWdpbiA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmop Owo+ID4gKwkJbHJjLT5yaW5nX2VuZCA9IGxyYy0+cmluZ19iZWdpbiArIG9iai0+YmFzZS5zaXpl IC0gMTsKPiA+ICsJCWxyYy0+cmluZ19uZXh0X2ZyZWVfbG9jYXRpb24gPSBscmMtPnJpbmdfYmVn aW47Cj4gPiArCQlscmMtPnJpbmdfY3VycmVudF90YWlsX3BvaW50ZXJfdmFsdWUgPSAwOwo+ID4g Kwo+ID4gKwkJZGVzYy5lbmdpbmVzX3VzZWQgfD0gKDEgPDwgcmluZy0+aWQpOwo+ID4gKwl9Cj4g PiArCj4gPiArCVdBUk5fT04oZGVzYy5lbmdpbmVzX3VzZWQgPT0gMCk7Cj4gPiArCj4gPiAgCS8q Cj4gPiAgCSAqIFRoZSBDUFUgYWRkcmVzcyBpcyBvbmx5IG5lZWRlZCBhdCBjZXJ0YWluIHBvaW50 cywgc28ga21hcF9hdG9taWMgb24KPiA+ICAJICogZGVtYW5kIGluc3RlYWQgb2Ygc3RvcmluZyBp dCBpbiB0aGUgY3R4IGRlc2NyaXB0b3IuCj4gPiBAQCAtNjIyLDExICs2NjIsMTMgQEAgc3RhdGlj IHZvaWQgZ3VjX2NsaWVudF9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiAgICogCQlU aGUga2VybmVsIGNsaWVudCB0byByZXBsYWNlIEV4ZWNMaXN0IHN1Ym1pc3Npb24gaXMgY3JlYXRl ZCB3aXRoCj4gPiAgICogCQlOT1JNQUwgcHJpb3JpdHkuIFByaW9yaXR5IG9mIGEgY2xpZW50IGZv ciBzY2hlZHVsZXIgY2FuIGJlIEhJR0gsCj4gPiAgICogCQl3aGlsZSBhIHByZWVtcHRpb24gY29u dGV4dCBjYW4gdXNlIENSSVRJQ0FMLgo+ID4gKyAqIEBjdHgJCXRoZSBjb250ZXh0IHRvIG93biB0 aGUgY2xpZW50ICh3ZSB1c2UgdGhlIGRlZmF1bHQgcmVuZGVyIGNvbnRleHQpCj4gPiAgICoKPiA+ ICAgKiBSZXR1cm46CUFuIGk5MTVfZ3VjX2NsaWVudCBvYmplY3QgaWYgc3VjY2Vzcy4KPiA+ICAg Ki8KPiA+ICBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gLQkJCQkJCXVpbnQzMl90IHByaW9yaXR5KQo+ID4g KwkJCQkJCXVpbnQzMl90IHByaW9yaXR5LAo+ID4gKwkJCQkJCXN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjdHgpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpjbGllbnQ7Cj4gPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g PiBAQCAtNjM5LDYgKzY4MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpndWNf Y2xpZW50X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPgo+ID4gIAljbGllbnQtPmRv b3JiZWxsX2lkID0gR1VDX0lOVkFMSURfRE9PUkJFTExfSUQ7Cj4gPiAgCWNsaWVudC0+cHJpb3Jp dHkgPSBwcmlvcml0eTsKPiA+ICsJY2xpZW50LT5vd25lciA9IGN0eDsKPiA+Cj4gPiAgCWNsaWVu dC0+Y3R4X2luZGV4ID0gKHVpbnQzMl90KWlkYV9zaW1wbGVfZ2V0KCZndWMtPmN0eF9pZHMsIDAs Cj4gPiAgCQkJR1VDX01BWF9HUFVfQ09OVEVYVFMsIEdGUF9LRVJORUwpOwo+ID4gQEAgLTc3Miwx MCArODE1LDExIEBAIGludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2VuYWJsZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICAJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9w cml2LT5ndWM7Cj4gPiArCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSBkZXZfcHJpdi0+cmlu Z1tSQ1NdLmRlZmF1bHRfY29udGV4dDsKPiA+ICAJc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqY2xp ZW50Owo+ID4KPiA+ICAJLyogY2xpZW50IGZvciBleGVjYnVmIHN1Ym1pc3Npb24gKi8KPiA+IC0J Y2xpZW50ID0gZ3VjX2NsaWVudF9hbGxvYyhkZXYsIEdVQ19DVFhfUFJJT1JJVFlfTk9STUFMKTsK PiA+ICsJY2xpZW50ID0gZ3VjX2NsaWVudF9hbGxvYyhkZXYsIEdVQ19DVFhfUFJJT1JJVFlfTk9S TUFMLCBjdHgpOwo+ID4gIAlpZiAoIWNsaWVudCkgewo+ID4gIAkJRFJNX0VSUk9SKCJGYWlsZWQg dG8gY3JlYXRlIGV4ZWNidWYgZ3VjX2NsaWVudFxuIik7Cj4gPiAgCQlyZXR1cm4gLUVOT01FTTsK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gPiBpbmRleCBkMjQ5MzI2Li45NTcxYjU2IDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gPiBAQCAtMjksNiArMjksNyBAQAo+ ID4KPiA+ICBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50IHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmNsaWVudF9vYmo7Cj4gPiArCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpvd25lcjsK PiA+ICAJdWludDMyX3QgcHJpb3JpdHk7Cj4gPiAgCXVpbnQzMl90IGN0eF9pbmRleDsKPiA+Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ID4gaW5kZXggOWUxMjFkMy4uODI5NDQ2MiAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ID4gQEAgLTI1NCw3ICsyNTQsOCBAQCBp bnQgaW50ZWxfc2FuaXRpemVfZW5hYmxlX2V4ZWNsaXN0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBpbnQgZW5hYmxlX2V4ZWNsaXN0cwo+ID4gICAqLwo+ID4gIHUzMiBpbnRlbF9leGVjbGlzdHNf Y3R4X2lkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqKQo+ID4gIHsKPiA+IC0J dTMyIGxyY2EgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoY3R4X29iaik7Cj4gPiArCXUzMiBs cmNhID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KGN0eF9vYmopICsKPiA+ICsJCQlMUkNfUFBI V1NQX1BOICogUEFHRV9TSVpFOwo+ID4KPiA+ICAJLyogTFJDQSBpcyByZXF1aXJlZCB0byBiZSA0 SyBhbGlnbmVkIHNvIHRoZSBtb3JlIHNpZ25pZmljYW50IDIwIGJpdHMKPiA+ICAJICogYXJlIGds b2JhbGx5IHVuaXF1ZSAqLwo+ID4gQEAgLTI2Nyw3ICsyNjgsOCBAQCB1aW50NjRfdCBpbnRlbF9s cl9jb250ZXh0X2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiA+ICAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IHJpbmctPmRldjsKPiA+ICAJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gPiAgCXVp bnQ2NF90IGRlc2M7Cj4gPiAtCXVpbnQ2NF90IGxyY2EgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZz ZXQoY3R4X29iaik7Cj4gPiArCXVpbnQ2NF90IGxyY2EgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZz ZXQoY3R4X29iaikgKwo+ID4gKwkJCUxSQ19QUEhXU1BfUE4gKiBQQUdFX1NJWkU7Cj4gPgo+ID4g IAlXQVJOX09OKGxyY2EgJiAweEZGRkZGRkZGMDAwMDBGRkZVTEwpOwo+ID4KPiA+IEBAIC0zNDIs NyArMzQ0LDcgQEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3VwZGF0ZShzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJxKQo+ID4gIAlXQVJOX09OKCFpOTE1X2dlbV9vYmpfaXNfcGlubmVkKGN0 eF9vYmopKTsKPiA+ICAJV0FSTl9PTighaTkxNV9nZW1fb2JqX2lzX3Bpbm5lZChyYl9vYmopKTsK PiA+Cj4gPiAtCXBhZ2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoY3R4X29iaiwgMSk7Cj4g PiArCXBhZ2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoY3R4X29iaiwgTFJDX1NUQVRFX1BO KTsKPiA+ICAJcmVnX3N0YXRlID0ga21hcF9hdG9taWMocGFnZSk7Cj4gPgo+ID4gIAlyZWdfc3Rh dGVbQ1RYX1JJTkdfVEFJTCsxXSA9IHJxLT50YWlsOwo+ID4gQEAgLTY4NywxMyArNjg5LDE3IEBA IHN0YXRpYyB2b2lkCj4gPiAgaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gPiAgewo+ID4gIAlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxdWVzdC0+cmluZzsKPiA+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmVxdWVzdC0+aTkxNTsKPiA+Cj4gPiAgCWludGVsX2xv Z2ljYWxfcmluZ19hZHZhbmNlKHJlcXVlc3QtPnJpbmdidWYpOwo+ID4KPiA+ICAJaWYgKGludGVs X3Jpbmdfc3RvcHBlZChyaW5nKSkKPiA+ICAJCXJldHVybjsKPiA+Cj4gPiAtCWV4ZWNsaXN0c19j b250ZXh0X3F1ZXVlKHJlcXVlc3QpOwo+ID4gKwlpZiAoZGV2X3ByaXYtPmd1Yy5leGVjYnVmX2Ns aWVudCkKPiA+ICsJCWk5MTVfZ3VjX3N1Ym1pdChkZXZfcHJpdi0+Z3VjLmV4ZWNidWZfY2xpZW50 LCByZXF1ZXN0KTsKPiA+ICsJZWxzZQo+ID4gKwkJZXhlY2xpc3RzX2NvbnRleHRfcXVldWUocmVx dWVzdCk7Cj4gPiAgfQo+ID4KPiA+ICBzdGF0aWMgdm9pZCBfX3dyYXBfcmluZ19idWZmZXIoc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gPiBAQCAtOTg0LDYgKzk5MCw3IEBAIGlu dCBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSkKPiA+Cj4gPiAgc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQo+ID4gIHsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gcnEtPmk5MTU7Cj4gPiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcgPSBycS0+cmluZzsKPiA+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9v YmogPSBycS0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlOwo+ID4gIAlzdHJ1Y3QgaW50ZWxf cmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJxLT5yaW5nYnVmOwo+ID4gQEAgLTk5MSwxNCArOTk4LDE4 IEBAIHN0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpycSkKPiA+Cj4gPiAgCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcmluZy0+ZGV2 LT5zdHJ1Y3RfbXV0ZXgpKTsKPiA+ICAJaWYgKHJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0ucGlu X2NvdW50KysgPT0gMCkgewo+ID4gLQkJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKGN0eF9v YmosCj4gPiAtCQkJCUdFTjhfTFJfQ09OVEVYVF9BTElHTiwgMCk7Cj4gPiArCQlyZXQgPSBpOTE1 X2dlbV9vYmpfZ2d0dF9waW4oY3R4X29iaiwgR0VOOF9MUl9DT05URVhUX0FMSUdOLAo+ID4gKwkJ CQlQSU5fT0ZGU0VUX0JJQVMgfCBHVUNfV09QQ01fU0laRV9WQUxVRSk7Cj4gPiAgCQlpZiAocmV0 KQo+ID4gIAkJCWdvdG8gcmVzZXRfcGluX2NvdW50Owo+ID4KPiA+ICAJCXJldCA9IGludGVsX3Bp bl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKHJpbmctPmRldiwgcmluZ2J1Zik7Cj4gPiAgCQlpZiAo cmV0KQo+ID4gIAkJCWdvdG8gdW5waW5fY3R4X29iajsKPiA+ICsKPiA+ICsJCS8qIEludmFsaWRh dGUgR3VDIFRMQi4gKi8KPiA+ICsJCWlmIChpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKPiA+ ICsJCQlJOTE1X1dSSVRFKEdFTjhfR1RDUiwgR0VOOF9HVENSX0lOVkFMSURBVEUpOwo+ID4gIAl9 Cj4gPgo+ID4gIAlyZXR1cm4gcmV0Owo+ID4gQEAgLTE2NjgsOCArMTY3OSwxMyBAQCBvdXQ6Cj4g Pgo+ID4gIHN0YXRpYyBpbnQgZ2VuOF9pbml0X3Jjc19jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxKQo+ID4gIHsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gcmVxLT5pOTE1Owo+ID4gIAlpbnQgcmV0Owo+ID4KPiA+ICsJLyogSW52YWxpZGF0 ZSBHdUMgVExCLiAqLwo+IFtUT1I6XSBUaGlzIGludmFsaWRhdGlvbiBpcyBpbiB0aGUgaW5pdF9j b250ZXh0IGZvciByZW5kZXIKPiByaW5nIGJ1dCBub3QgdGhlIG90aGVyIHJpbmdzLiAgSXMgdGhp cyBuZWVkZWQgZm9yIG90aGVyCj4gcmluZ3M/ICBPciwgc2hvdWxkIHRoaXMgaW52YWxpZGF0aW9u IGhhcHBlbiBhdCBhIGRpZmZlcmVudAo+IGxldmVsPyAgSXQgc2VlbXMgdGhpcyBtYXkgZGVwZW5k IG9uIHRoZSBvbiByZW5kZXIgcmluZyBiZWluZwo+IGluaXRpYWxpemVkIGZpcnN0LgoKV2hlbiBh IExSQyBpcyBuZXdseSBtYXBwZWQsIHdlIHNob3VsZCBpbnZhbGlkYXRlIEd1QyBUTEIgYmVmb3Jl IGFueSAKc3VibWlzc2lvbi4gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBnb2xkZW4gY29udGV4dCBp bml0LiBGb3Igb3RoZXIgcmluZ3MsIAppdCBjYW4gYmUgZGVmZXJyZWQgdW50aWwgYW4gdXNlciBM UkMgaXMgbWFwcGVkIGludG8gR0dUVC4KCkFsZXgKCj4gVGhhbmtzLAo+IFRvbQo+Cj4gPiArCWlm IChpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKPiA+ICsJCUk5MTVfV1JJVEUoR0VOOF9HVENS LCBHRU44X0dUQ1JfSU5WQUxJREFURSk7Cj4gPiArCj4gPiAgCXJldCA9IGludGVsX2xvZ2ljYWxf cmluZ193b3JrYXJvdW5kc19lbWl0KHJlcSk7Cj4gPiAgCWlmIChyZXQpCj4gPiAgCQlyZXR1cm4g cmV0Owo+ID4gQEAgLTIwMjYsNyArMjA0Miw3IEBAIHBvcHVsYXRlX2xyX2NvbnRleHQoc3RydWN0 IGludGVsX2NvbnRleHQgKmN0eCwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vCj4g Pgo+ID4gIAkvKiBUaGUgc2Vjb25kIHBhZ2Ugb2YgdGhlIGNvbnRleHQgb2JqZWN0IGNvbnRhaW5z IHNvbWUgZmllbGRzIHdoaWNoIG11c3QKPiA+ICAJICogYmUgc2V0IHVwIHByaW9yIHRvIHRoZSBm aXJzdCBleGVjdXRpb24uICovCj4gPiAtCXBhZ2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2Uo Y3R4X29iaiwgMSk7Cj4gPiArCXBhZ2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoY3R4X29i aiwgTFJDX1NUQVRFX1BOKTsKPiA+ICAJcmVnX3N0YXRlID0ga21hcF9hdG9taWMocGFnZSk7Cj4g Pgo+ID4gIAkvKiBBIGNvbnRleHQgaXMgYWN0dWFsbHkgYSBiaWcgYmF0Y2ggYnVmZmVyIHdpdGgg c2V2ZXJhbCBNSV9MT0FEX1JFR0lTVEVSX0lNTQo+ID4gQEAgLTIxODUsMTIgKzIyMDEsMTMgQEAg c3RhdGljIHZvaWQgbHJjX3NldHVwX2hhcmR3YXJlX3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcsCj4gPiAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZGVmYXVs dF9jdHhfb2JqKQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gcmluZy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICsJc3RydWN0IHBhZ2UgKnBhZ2U7Cj4gPgo+ ID4gLQkvKiBUaGUgc3RhdHVzIHBhZ2UgaXMgb2Zmc2V0IDAgZnJvbSB0aGUgZGVmYXVsdCBjb250 ZXh0IG9iamVjdAo+ID4gLQkgKiBpbiBMUkMgbW9kZS4gKi8KPiA+IC0JcmluZy0+c3RhdHVzX3Bh Z2UuZ2Z4X2FkZHIgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZGVmYXVsdF9jdHhfb2JqKTsK PiA+IC0JcmluZy0+c3RhdHVzX3BhZ2UucGFnZV9hZGRyID0KPiA+IC0JCQlrbWFwKHNnX3BhZ2Uo ZGVmYXVsdF9jdHhfb2JqLT5wYWdlcy0+c2dsKSk7Cj4gPiArCS8qIFRoZSBIV1NQIGlzIHBhcnQg b2YgdGhlIGRlZmF1bHQgY29udGV4dCBvYmplY3QgaW4gTFJDIG1vZGUuICovCj4gPiArCXJpbmct PnN0YXR1c19wYWdlLmdmeF9hZGRyID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KGRlZmF1bHRf Y3R4X29iaikKPiA+ICsJCQkrIExSQ19QUEhXU1BfUE4gKiBQQUdFX1NJWkU7Cj4gPiArCXBhZ2Ug PSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoZGVmYXVsdF9jdHhfb2JqLCBMUkNfUFBIV1NQX1BO KTsKPiA+ICsJcmluZy0+c3RhdHVzX3BhZ2UucGFnZV9hZGRyID0ga21hcChwYWdlKTsKPiA+ICAJ cmluZy0+c3RhdHVzX3BhZ2Uub2JqID0gZGVmYXVsdF9jdHhfb2JqOwo+ID4KPiA+ICAJSTkxNV9X UklURShSSU5HX0hXU19QR0EocmluZy0+bW1pb19iYXNlKSwKPiA+IEBAIC0yMjI2LDYgKzIyNDMs OSBAQCBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2Nv bnRleHQgKmN0eCwKPiA+Cj4gPiAgCWNvbnRleHRfc2l6ZSA9IHJvdW5kX3VwKGdldF9scl9jb250 ZXh0X3NpemUocmluZyksIDQwOTYpOwo+ID4KPiA+ICsJLyogT25lIGV4dHJhIHBhZ2UgYXMgdGhl IHNoYXJpbmcgZGF0YSBiZXR3ZWVuIGRyaXZlciBhbmQgR3VDICovCj4gPiArCWNvbnRleHRfc2l6 ZSArPSBQQUdFX1NJWkUgKiBMUkNfUFBIV1NQX1BOOwo+ID4gKwo+ID4gIAljdHhfb2JqID0gaTkx NV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgY29udGV4dF9zaXplKTsKPiA+ICAJaWYgKCFjdHhfb2Jq KSB7Cj4gPiAgCQlEUk1fREVCVUdfRFJJVkVSKCJBbGxvYyBMUkMgYmFja2luZyBvYmogZmFpbGVk LlxuIik7Cj4gPiBAQCAtMjIzMyw3ICsyMjUzLDggQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVm ZXJyZWRfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gPiAgCX0KPiA+Cj4gPiAg CWlmIChpc19nbG9iYWxfZGVmYXVsdF9jdHgpIHsKPiA+IC0JCXJldCA9IGk5MTVfZ2VtX29ial9n Z3R0X3BpbihjdHhfb2JqLCBHRU44X0xSX0NPTlRFWFRfQUxJR04sIDApOwo+ID4gKwkJcmV0ID0g aTkxNV9nZW1fb2JqX2dndHRfcGluKGN0eF9vYmosIEdFTjhfTFJfQ09OVEVYVF9BTElHTiwKPiA+ ICsJCQkJUElOX09GRlNFVF9CSUFTIHwgR1VDX1dPUENNX1NJWkVfVkFMVUUpOwo+ID4gIAkJaWYg KHJldCkgewo+ID4gIAkJCURSTV9ERUJVR19EUklWRVIoIlBpbiBMUkMgYmFja2luZyBvYmogZmFp bGVkOiAlZFxuIiwKPiA+ICAJCQkJCXJldCk7Cj4gPiBAQCAtMjI1Miw3ICsyMjczLDcgQEAgaW50 IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpj dHgsCj4gPgo+ID4gIAlyaW5nYnVmLT5yaW5nID0gcmluZzsKPiA+Cj4gPiAtCXJpbmdidWYtPnNp emUgPSAzMiAqIFBBR0VfU0laRTsKPiA+ICsJcmluZ2J1Zi0+c2l6ZSA9IDQgKiBQQUdFX1NJWkU7 Cj4gPiAgCXJpbmdidWYtPmVmZmVjdGl2ZV9zaXplID0gcmluZ2J1Zi0+c2l6ZTsKPiA+ICAJcmlu Z2J1Zi0+aGVhZCA9IDA7Cj4gPiAgCXJpbmdidWYtPnRhaWwgPSAwOwo+ID4gQEAgLTIzNTIsNyAr MjM3Myw3IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ID4gIAkJCVdBUk4oMSwgIkZhaWxlZCBnZXRfcGFnZXMgZm9yIGNvbnRleHQgb2JqXG4i KTsKPiA+ICAJCQljb250aW51ZTsKPiA+ICAJCX0KPiA+IC0JCXBhZ2UgPSBpOTE1X2dlbV9vYmpl Y3RfZ2V0X3BhZ2UoY3R4X29iaiwgMSk7Cj4gPiArCQlwYWdlID0gaTkxNV9nZW1fb2JqZWN0X2dl dF9wYWdlKGN0eF9vYmosIExSQ19TVEFURV9QTik7Cj4gPiAgCQlyZWdfc3RhdGUgPSBrbWFwX2F0 b21pYyhwYWdlKTsKPiA+Cj4gPiAgCQlyZWdfc3RhdGVbQ1RYX1JJTkdfSEVBRCsxXSA9IDA7Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+ID4gaW5kZXggNmVjYzBiMy4uZTA0YjVjMiAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+ID4gQEAgLTY3LDYgKzY3LDEyIEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZ2J1ZiwKPiA+ICB9Cj4gPgo+ID4gIC8qIExvZ2ljYWwgUmluZyBDb250ZXh0 cyAqLwo+ID4gKwo+ID4gKy8qIE9uZSBleHRyYSBwYWdlIGlzIGFkZGVkIGJlZm9yZSBMUkMgZm9y IEd1QyBhcyBzaGFyZWQgZGF0YSAqLwo+ID4gKyNkZWZpbmUgTFJDX0dVQ1NIUl9QTgkoMCkKPiA+ ICsjZGVmaW5lIExSQ19QUEhXU1BfUE4JKExSQ19HVUNTSFJfUE4gKyAxKQo+ID4gKyNkZWZpbmUg TFJDX1NUQVRFX1BOCShMUkNfUFBIV1NQX1BOICsgMSkKPiA+ICsKPiA+ICB2b2lkIGludGVsX2xy X2NvbnRleHRfZnJlZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KTsKPiA+ICBpbnQgaW50ZWxf bHJfY29udGV4dF9kZWZlcnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiA+ ICAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiA+IC0tCj4gPiAxLjku MQo+ID4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==