From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH v2 2/6] drm/i915/guc: Add GuC css header parser Date: Thu, 24 Sep 2015 15:23:52 +0100 Message-ID: <56040778.6050103@intel.com> References: <1441929372-26140-1-git-send-email-yu.dai@intel.com> <1442954925-4022-1-git-send-email-yu.dai@intel.com> <1442954925-4022-3-git-send-email-yu.dai@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id E730B6E7F7 for ; Thu, 24 Sep 2015 07:24:31 -0700 (PDT) In-Reply-To: <1442954925-4022-3-git-send-email-yu.dai@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: yu.dai@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMjIvMDkvMTUgMjE6NDgsIHl1LmRhaUBpbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogQWxleCBE YWkgPHl1LmRhaUBpbnRlbC5jb20+Cj4KPiBCeSB1c2luZyBpbmZvcm1hdGlvbiBmcm9tIEd1QyBj c3MgaGVhZGVyLCB3ZSBjYW4gZWxpbWluYXRlIHNvbWUKPiBoYXJkIGNvZGUgdy5yLnQgc2l6ZSBv ZiBzb21lIGNvbXBvbmVudHMgb2YgZmlybXdhcmUuCj4KPiB2MjogQWRkIGluZGVudCBpbnRvIERP QyB0byBtYWtlIGZpeGVkLXdpZHRoIGZvcm1hdCByYXRoZXIgdGhhbgo+IGNoYW5nZSB0aGUgdG1w bC4KPgo+IHYxOiAxKSBndWNfY3NzX2hlYWRlciBpcyBkZWZpbmVkIGFzIF9fcGFja2VkIG5vdwo+ ICAgICAgMikgQWRkIGFuZCBjb3JyZWN0IEd1QyByZWxhdGVkIHRvcGljcyBpbiBrZXJuZWwvRG9j Cj4KPiBTaWduZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KPiAtLS0KPiAg IERvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbCAgICAgICAgICB8ICAgOSArKy0KPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oICAgICAgICB8ICAgMiArLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3aWYuaCAgIHwgIDM2ICsrKysrKysrKysrCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgfCAxMDcgKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0KPiAgIDQgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlvbnMo KyksIDM3IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vRG9jQm9v ay9kcm0udG1wbCBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbAo+IGluZGV4IDY2YmM2 NDYuLjExNjMzMmYgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBs Cj4gKysrIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBsCj4gQEAgLTQxNTUsMTQgKzQx NTUsMTkgQEAgaW50IG51bV9pb2N0bHM7PC9zeW5vcHNpcz4KPiAgICAgICAgIDx0aXRsZT5HdUMt YmFzZWQgQ29tbWFuZCBTdWJtaXNzaW9uPC90aXRsZT4KPiAgICAgICAgIDxzZWN0Mj4KPiAgICAg ICAgICAgPHRpdGxlPkd1QzwvdGl0bGU+Cj4gLSFQZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjX2xvYWRlci5jIEd1Qy1zcGVjaWZpYyBmaXJtd2FyZSBsb2FkZXIKPiArIVBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgR3VDCj4gICAhSWRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+ICAgICAgICAgPC9zZWN0Mj4KPiAgICAgICAgIDxzZWN0 Mj4KPiAgICAgICAgICAgPHRpdGxlPkd1QyBDbGllbnQ8L3RpdGxlPgo+IC0hUGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBHdUMtYmFzZWQgY29tbWFuZCBzdWJtaXNz aXNvbgo+ICshUGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBHdUMg Q2xpZW50Cj4gICAhSWRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+ ICAgICAgICAgPC9zZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5HdUMg RmlybXdhcmUgTGF5b3V0PC90aXRsZT4KPiArIVBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWNfbG9hZGVyLmMgR3VDIEZpcm13YXJlIExheW91dAo+ICshSWRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2d1Y19sb2FkZXIuYwo+ICsgICAgICA8L3NlY3QyPgo+ICAgICAgIDwvc2VjdDE+Cj4K PiAgICAgICA8c2VjdDE+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2d1Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiBpbmRleCA0ZWMyZDI3 Li5lMTM4OWZjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiBAQCAtNzEsNiArNzEs NyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqCWd1Y19md19vYmo7Cj4gICAJZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzCWd1Y19md19mZXRj aF9zdGF0dXM7Cj4gICAJZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzCWd1Y19md19sb2FkX3N0YXR1 czsKPiArCXN0cnVjdCBndWNfY3NzX2hlYWRlcgkJZ3VjX2Z3X2hlYWRlcjsKPgo+ICAgCXVpbnQx Nl90CQkJZ3VjX2Z3X21ham9yX3dhbnRlZDsKPiAgIAl1aW50MTZfdAkJCWd1Y19md19taW5vcl93 YW50ZWQ7Cj4gQEAgLTgwLDcgKzgxLDYgQEAgc3RydWN0IGludGVsX2d1Y19mdyB7Cj4KPiAgIHN0 cnVjdCBpbnRlbF9ndWMgewo+ICAgCXN0cnVjdCBpbnRlbF9ndWNfZncgZ3VjX2Z3Owo+IC0KPiAg IAl1aW50MzJfdCBsb2dfZmxhZ3M7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmxv Z19vYmo7Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3 aWYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmgKPiBpbmRleCBlMWY0 N2JhLi4wMDZkYzBkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Y19md2lmLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oCj4g QEAgLTEyMiw2ICsxMjIsNDIgQEAKPgo+ICAgI2RlZmluZSBHVUNfQ1RMX01BWF9EV09SRFMJCShH VUNfQ1RMX1JTUlZEICsgMSkKPgo+ICtzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIgewo+ICsJdWludDMy X3QgbW9kdWxlX3R5cGU7Cj4gKwl1aW50MzJfdCBoZWFkZXJfbGVuOyAvKiBoZWFkZXIgbGVuZ3Ro IHBsdXMgc2l6ZSBvZiBhbGwgb3RoZXIga2V5cyAqLwo+ICsJdWludDMyX3QgaGVhZGVyX3ZlcnNp b247Cj4gKwl1aW50MzJfdCBtb2R1bGVfaWQ7Cj4gKwl1aW50MzJfdCBtb2R1bGVfdmVuZG9yOwo+ ICsJdW5pb24gewo+ICsJCXN0cnVjdCB7Cj4gKwkJCXVpbnQ4X3QgZGF5Owo+ICsJCQl1aW50OF90 IG1vbnRoOwo+ICsJCQl1aW50MTZfdCB5ZWFyOwo+ICsJCX07Cj4gKwkJdWludDMyX3QgZGF0ZTsK PiArCX07Cj4gKwl1aW50MzJfdCBzaXplOyAvKiB1Q29kZSBzaXplIHBsdXMgaGVhZGVyX2xlbiAq Lwo+ICsJdWludDMyX3Qga2V5X3NpemU7Cj4gKwl1aW50MzJfdCBtb2R1bHVzX3NpemU7Cj4gKwl1 aW50MzJfdCBleHBvbmVudF9zaXplOwo+ICsJdW5pb24gewo+ICsJCXN0cnVjdCB7Cj4gKwkJCXVp bnQ4X3QgaG91cjsKPiArCQkJdWludDhfdCBtaW47Cj4gKwkJCXVpbnQxNl90IHNlYzsKPiArCQl9 Owo+ICsJCXVpbnQzMl90IHRpbWU7Cj4gKwl9Owo+ICsKPiArCWNoYXIgdXNlcm5hbWVbOF07Cj4g KwljaGFyIGJ1aWxkbnVtYmVyWzEyXTsKPiArCXVpbnQzMl90IGRldmljZV9pZDsKPiArCXVpbnQz Ml90IGd1Y19zd192ZXJzaW9uOwo+ICsJdWludDMyX3QgcHJvZF9wcmVwcm9kX2Z3Owo+ICsJdWlu dDMyX3QgcmVzZXJ2ZWRbMTJdOwo+ICsJdWludDMyX3QgaGVhZGVyX2luZm87Cj4gK30gX19wYWNr ZWQ7Cj4gKwo+ICAgc3RydWN0IGd1Y19kb29yYmVsbF9pbmZvIHsKPiAgIAl1MzIgZGJfc3RhdHVz Owo+ICAgCXUzMiBjb29raWU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Y19sb2FkZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIu Ywo+IGluZGV4IDQwMjQxZjMuLmE2NzAzYjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjX2xvYWRlci5jCj4gQEAgLTIxNSwxOCArMjE1LDI5IEBAIHN0YXRpYyBpbmxpbmUgYm9v bCBndWNfdWNvZGVfcmVzcG9uc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAgCQkoKHZhbCAmIEdTX01JQV9DT1JFX1NUQVRFKSAmJiB1a192YWwgPT0gR1NfVUtFUk5FTF9M QVBJQ19ET05FKSk7Cj4gICB9Cj4KPiAtLyoKPiAtICogVHJhbnNmZXIgdGhlIGZpcm13YXJlIGlt YWdlIHRvIFJBTSBmb3IgZXhlY3V0aW9uIGJ5IHRoZSBtaWNyb2NvbnRyb2xsZXIuCj4gKy8qKgo+ ICsgKiBET0M6IEd1QyBGaXJtd2FyZSBMYXlvdXQKPiAgICAqCj4gLSAqIEd1QyBGaXJtd2FyZSBs YXlvdXQ6Cj4gLSAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgLS0tLQo+IC0g KiB8ICAgICAgICAgIENTUyBoZWFkZXIgICAgICAgICAgIHwgIDEyOEIKPiAtICogfCBjb250YWlu cyBtYWpvci9taW5vciB2ZXJzaW9uICB8Cj4gLSAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKyAgLS0tLQo+IC0gKiB8ICAgICAgICAgICAgIHVDb2RlICAgICAgICAgICAgIHwKPiAt ICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAtLS0tCj4gLSAqIHwgICAgICAg ICBSU0Egc2lnbmF0dXJlICAgICAgICAgfCAgMjU2Qgo+IC0gKiArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsgIC0tLS0KPiArICogVGhlIEd1QyBmaXJtd2FyZSBsYXlvdXQgbG9va3Mg bGlrZSB0aGlzOgo+ICsgKgo+ICsgKiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rCj4gKyAqICAgICB8ICAgICAgICBndWNfY3NzX2hlYWRlciAgICAgICAgIHwKPiArICogICAg IHwgY29udGFpbnMgbWFqb3IvbWlub3IgdmVyc2lvbiAgfAo+ICsgKiAgICAgKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqICAgICB8ICAgICAgICAgICAgIHVDb2RlICAgICAg ICAgICAgIHwKPiArICogICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ICsg KiAgICAgfCAgICAgICAgIFJTQSBzaWduYXR1cmUgICAgICAgICB8Cj4gKyAqICAgICArLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiArICogICAgIHwgICAgICAgICAgbW9kdWx1cyBr ZXkgICAgICAgICAgfAo+ICsgKiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r Cj4gKyAqICAgICB8ICAgICAgICAgIGV4cG9uZW50IHZhbCAgICAgICAgIHwKPiArICogICAgICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ICsgKgo+ICsgKiBUaGUgZmlybXdhcmUg bWF5IG9yIG1heSBub3QgaGF2ZSBtb2R1bHVzIGtleSBhbmQgZXhwb25lbnQgZGF0YS4gVGhlIGhl YWRlciwKPiArICogdUNvZGUgYW5kIFJTQSBzaWduYXR1cmUgYXJlIG11c3QtaGF2ZSBjb21wb25l bnRzIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IGRyaXZlci4KPiArICogU2l6ZSBvZiBlYWNoIGNvbXBv bmVudHMgKGluIGR3b3JkcykgY2FuIGJlIGZvdW5kIGluIGhlYWRlci4gSW4gdGhlIGNhc2UgdGhh dAo+ICsgKiBtb2R1bHVzIGFuZCBleHBvbmVudCBhcmUgbm90IHByZXNlbnQgaW4gZncsIHRoZSBz aXplIHZhbHVlIHN0aWxsIGFwcGVhcnMgaW4KPiArICogaGVhZGVyLgoKSSB0aGluayB0aGlzIHBp Y3R1cmUgJiBjb21tZW50YXJ5IGJlbG9uZ3MganVzdCBhaGVhZCBvZiB0aGUgc3RydWN0dXJlIApk ZWZpbml0aW9uIGluIGludGVsX2d1Y19md2lmLmgsIHJhdGhlciB0aGFuIHdpdGggdGhlIGNvZGUg aGVyZS4gQWxzbywgCnBlcmhhcHMgd2UgbmVkZSBhIGJpdCBtb3JlIGV4cGxhbmF0aW9uIG9mIHRo ZSAnKnNpemUnIGZpZWxkcywgc2luY2UgdGhleSAKaGF2ZSBiZWVuIGRlZmluZWQgaW4gc3VjaCBh IGNvdW50ZXItaW50dWl0aXZlIHdheSA6KCAgSSBzdWdnZXN0OgoKICAqIEFsbCB0aGUgJ3NpemVz JyBpbiB0aGUgQ1NTIGhlYWRlciBhcmUgZXhwcmVzc2VkIGFzIG51bWJlcnMgb2YKICAqICJkd29y ZHMiLCBhbmQgdGhlcmVmb3JlIGhhdmUgdG8gYmUgbXVsdGlwbGllZCBieSBzaXplb2YgKHUzMikg dG8KICAqIGdldCBhY3R1YWwgc2l6ZXMgKGluIHRoZSBub3JtYWwgc2Vuc2Ugb2YgYnl0ZSBjb3Vu dHMpLgogICoKICAqIFRoZSAnc2l6ZScgZmllbGQgaXMgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGRh dGEgaW4gdGhlIHBpY3R1cmUKICAqIGFib3ZlLCBhbmQgc2hvdWxkIG1hdGNoIHRoZSBzaXplIG9m IHRoZSBmaWxlIGFzIHByb3ZpZGVkIGJ5IHRoZQogICogbG9hZGVyOyB0aGUgZmlsZSBpcyBpbnZh bGlkIGlmIHRoaXMgc2l6ZSBmaWVsZCBpcyBncmVhdGVyIHRoYW4KICAqIHRoZSBhY3R1YWwgZmls ZXNpemUuCiAgKgogICogVGhlICdoZWFkZXJfbGVuJyBmaWVsZCBjb250YWlucyB0aGUgdG90YWwg c2l6ZSBvZiB0aGUgbm9uLXVDb2RlCiAgKiBzZWN0aW9ucyBvZiB0aGUgZmlsZSAoaS5lLiB0aGUg c3VtIG9mIHRoZSBzaXplcyBvZiB0aGUgQ1NTIGhlYWRlciwKICAqIHRoZSBSU0Egc2lnbmF0dXJl LCB0aGUgbW9kdWx1cyBrZXkgYW5kIHRoZSBleHBvbmVudCkuIFRodXMsIHRvIGZpbmQKICAqIHRo ZSBzaXplIG9mIHRoZSB1Q29kZSB3ZSBzdWJ0cmFjdCB0aGlzIHRvdGFsIGZyb20gJ3NpemUnLCBi dXQgdG8KICAqIGZpbmQgdGhlIHNpemUgb2YgdGhlIENTUyBoZWFkZXIgKHdoaWNoIGFsc28gZGVm aW5lcyB0aGUgc3RhcnQgb2YKICAqIHRoZSB1Q29kZSksIHdlIHN1YnRyYWN0IHRoZSBvdGhlciB0 aHJlZSBzaXplcyBmcm9tIHRoaXMgdG90YWwuIFRoZQogICogc2l6ZSBvZiB0aGUgQ1NTIGhlYWRl ciB0aHVzIGNhbGN1bGF0ZWQgc2hvdWxkIG1hdGNoIHNpemVvZihzdHJ1Y3QKICAqIGd1Y19jc3Nf aGVhZGVyKSAob3IgZXhjZWVkIGl0OyBhbGxvd2luZyBpdCB0byBiZSBsYXJnZXIgcGVybWl0cwog ICogZnV0dXJlIGV4cGFuc2lvbiBvZiB0aGUgQ1NTIGhlYWRlciBvciBpbnNlcnRpb24gb2YgZXh0 cmEgc2VjdGlvbnMKICAqIGhlcmUpLiBUaGUgZmlsZSBpcyBpbnZhbGlkIGlmIHRoaXMgY2FsY3Vs YXRlZCBzaXplIGlzIGxlc3MgdGhhbgogICogc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlciku CiAgKgogICogVGhlIHNpemUgb2YgdGhlIFJTQSBzaWduYXR1cmUgbXVzdCBub3QgZXhjZWVkIHRo YXQgZXhwZWN0ZWQgYnkgdGhlCiAgKiBoYXJkd2FyZS4gVGhlIGZpbGUgaXMgaW52YWxpZCBpZiB0 aGUgdmFsdWUgb2YgdGhpcyBmaWVsZCBpcyBtb3JlCiAgKiB0aGFuIHRoZSBzaXplIG9mIHRoZSBz aWduYXR1cmUgYXJlYSBpbiB0aGUgR3VDIHJlZ2lzdGVyIHNwYWNlLAogICogY3VycmVudGx5IDB4 MTAwIGJ5dGVzLgogICoKICAqIER1ZSB0byB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBETUEgZW5n aW5lLCB0aGUgdG90YWwgc2l6ZSBvZiB0aGUKICAqIHNlY3Rpb25zIHRoYXQgYXJlIERNQSdkIGlu dG8gdGhlIEd1QydzIG1lbW9yeSAoQ1NTIGhlYWRlciBwbHVzCiAgKiB1Q29kZSkgbXVzdCBiZSBh IG11bHRpcGxlIG9mIHRoZSBjYWNoZSBsaW5lIHNpemUuIFRoZSBmaWxlIGlzCiAgKiBpbnZhbGlk IGlmIHRoaXMgcmVxdWlyZW1lbnQgaXMgbm90IG1ldC4KClRoZSByZXN0IG9mIHRoaXMgY29tbWVu dCBjYW4gc3RheSB3aXRoIHRoZSBjb2RlIC4uLgoKPiAgICAqCj4gICAgKiBBcmNoaXRlY3R1cmFs bHksIHRoZSBETUEgZW5naW5lIGlzIGJpZGlyZWN0aW9uYWwsIGFuZCBjYW4gcG90ZW50aWFsbHkg ZXZlbgo+ICAgICogdHJhbnNmZXIgYmV0d2VlbiBHVFQgbG9jYXRpb25zLiBUaGlzIGZ1bmN0aW9u YWxpdHkgaXMgbGVmdCBvdXQgb2YgdGhlIEFQSQo+IEBAIC0yMzYsMzAgKzI0Nyw0MiBAQCBzdGF0 aWMgaW5saW5lIGJvb2wgZ3VjX3Vjb2RlX3Jlc3BvbnNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgICAqIERNQSBlbmdpbmUgaW4gb25lIG9wZXJhdGlvbiwgd2hlcmVhcyB0 aGUgUlNBIHNpZ25hdHVyZSBpcyBsb2FkZWQgdmlhIE1NSU8uCj4gICAgKi8KPgo+IC0jZGVmaW5l IFVPU19DU1NfSEVBREVSX09GRlNFVAkJMAo+IC0jZGVmaW5lIFVPU19WRVJfTUlOT1JfT0ZGU0VU CQkweDQ0Cj4gLSNkZWZpbmUgVU9TX1ZFUl9NQUpPUl9PRkZTRVQJCTB4NDYKPiAtI2RlZmluZSBV T1NfQ1NTX0hFQURFUl9TSVpFCQkweDgwCj4gLSNkZWZpbmUgVU9TX1JTQV9TSUdfU0laRQkJMHgx MDAKPiAtCj4gKy8qCj4gKyAqIFRyYW5zZmVyIHRoZSBmaXJtd2FyZSBpbWFnZSB0byBSQU0gZm9y IGV4ZWN1dGlvbiBieSB0aGUgbWljcm9jb250cm9sbGVyLgo+ICsgKi8KPiAgIHN0YXRpYyBpbnQg Z3VjX3Vjb2RlX3hmZXJfZG1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAg IHsKPiAgIAlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNf Znc7Cj4gKwlzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIgKmhlYWRlciA9ICZndWNfZnctPmd1Y19md19o ZWFkZXI7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmZ3X29iaiA9IGd1Y19mdy0+ Z3VjX2Z3X29iajsKPiAgIAl1bnNpZ25lZCBsb25nIG9mZnNldDsKPiAgIAlzdHJ1Y3Qgc2dfdGFi bGUgKnNnID0gZndfb2JqLT5wYWdlczsKPiAtCXUzMiBzdGF0dXMsIHVjb2RlX3NpemUsIHJzYVtV T1NfUlNBX1NJR19TSVpFIC8gc2l6ZW9mKHUzMildOwo+ICsJdTMyIHN0YXR1cywgaGVhZGVyX3Np emUsIHJzYV9zaXplLCB1Y29kZV9zaXplLCAqcnNhOwo+ICAgCWludCBpLCByZXQgPSAwOwoKSSBk b24ndCBsaWtlIGRvaW5nIHRoZSBjb21wbGljYXRlZCBzaXplLWJhc2VkIGNhbGN1bGF0aW9ucyBp biB0aGUgRE1BIApyb3V0aW5lOyBJJ2QgcmF0aGVyIHRoZSBpbXBvcnRhbnQgdmFsdWVzIChSU0Eg c3RhcnQvc2l6ZSwgQ1NTK3VDb2RlIApzdGFydC9zaXplKSB3ZXJlIHByZWNhbGN1bGF0ZWQgZHVy aW5nIGxvYWRpbmcgYW5kIHNhdmVkIGluIHRoZSBzdHJ1Y3QgCmludGVsX2d1Y19mdyBvciBhIG1l bWJlciB0aGVyZW9mIHNvIHRoYXQgdGhpcyBjb2RlIGFscmVhZHkgaGFzIHRoZSBleGFjdCAKbnVt YmVycyBpdCBuZWVkcyB3aXRob3V0IGFueSBmdXJ0aGVyIGNvbXB1dGF0aW9uLgoKPiAtCS8qIHVD b2RlIHNpemUsIGFsc28gaXMgd2hlcmUgUlNBIHNpZ25hdHVyZSBzdGFydHMgKi8KPiAtCW9mZnNl dCA9IHVjb2RlX3NpemUgPSBndWNfZnctPmd1Y19md19zaXplIC0gVU9TX1JTQV9TSUdfU0laRTsK PiAtCUk5MTVfV1JJVEUoRE1BX0NPUFlfU0laRSwgdWNvZGVfc2l6ZSk7Cj4gKwkvKiBUaGUgaGVh ZGVyIHBsdXMgdUNvZGUgd2lsbCBiZSBjb3BpZWQgdG8gV09QQ00gdmlhIERNQSwgZXhjbHVkaW5n IGFueQo+ICsJICogb3RoZXIgY29tcG9uZW50cyAqLwo+ICsJaGVhZGVyX3NpemUgPSAoaGVhZGVy LT5oZWFkZXJfbGVuIC0gaGVhZGVyLT5rZXlfc2l6ZSAtCj4gKwkJaGVhZGVyLT5tb2R1bHVzX3Np emUgLSBoZWFkZXItPmV4cG9uZW50X3NpemUpICogc2l6ZW9mKHUzMik7Cj4gKwl1Y29kZV9zaXpl ID0gKGhlYWRlci0+c2l6ZSAtIGhlYWRlci0+aGVhZGVyX2xlbikgKiBzaXplb2YodTMyKTsKPiAr Cj4gKwlJOTE1X1dSSVRFKERNQV9DT1BZX1NJWkUsIGhlYWRlcl9zaXplICsgdWNvZGVfc2l6ZSk7 Cj4gKwo+ICsJLyogd2hlcmUgUlNBIHNpZ25hdHVyZSBzdGFydHMgKi8KPiArCW9mZnNldCA9IGhl YWRlcl9zaXplICsgdWNvZGVfc2l6ZTsKPiArCj4gKwlyc2Ffc2l6ZSA9IGhlYWRlci0+a2V5X3Np emUgKiBzaXplb2YodTMyKTsKPiArCXJzYSA9IGttYWxsb2MocnNhX3NpemUsIEdGUF9LRVJORUwp Owo+ICsJaWYgKCFyc2EpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4KPiAgIAkvKiBDb3B5IFJTQSBz aWduYXR1cmUgZnJvbSB0aGUgZncgaW1hZ2UgdG8gSFcgZm9yIHZlcmlmaWNhdGlvbiAqLwo+IC0J c2dfcGNvcHlfdG9fYnVmZmVyKHNnLT5zZ2wsIHNnLT5uZW50cywgcnNhLCBVT1NfUlNBX1NJR19T SVpFLCBvZmZzZXQpOwo+IC0JZm9yIChpID0gMDsgaSA8IFVPU19SU0FfU0lHX1NJWkUgLyBzaXpl b2YodTMyKTsgaSsrKQo+ICsJc2dfcGNvcHlfdG9fYnVmZmVyKHNnLT5zZ2wsIHNnLT5uZW50cywg cnNhLCByc2Ffc2l6ZSwgb2Zmc2V0KTsKPiArCWZvciAoaSA9IDA7IGkgPCByc2Ffc2l6ZSAvIHNp emVvZih1MzIpOyBpKyspCj4gICAJCUk5MTVfV1JJVEUoVU9TX1JTQV9TQ1JBVENIXzAgKyBpICog c2l6ZW9mKHUzMiksIHJzYVtpXSk7Cj4KPiArCWtmcmVlKHJzYSk7Cj4gKwo+ICAgCS8qIFNldCB0 aGUgc291cmNlIGFkZHJlc3MgZm9yIHRoZSBuZXcgYmxvYiAqLwo+ICAgCW9mZnNldCA9IGk5MTVf Z2VtX29ial9nZ3R0X29mZnNldChmd19vYmopOwo+ICAgCUk5MTVfV1JJVEUoRE1BX0FERFJfMF9M T1csIGxvd2VyXzMyX2JpdHMob2Zmc2V0KSk7Cj4gQEAgLTQ2NSwxMCArNDg4LDggQEAgc3RhdGlj IHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9n dWNfZncgKmd1Y19mdykKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq Owo+ICAgCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7Cj4gLQljb25zdCB1OCAqY3NzX2hlYWRl cjsKPiAtCWNvbnN0IHNpemVfdCBtaW5zaXplID0gVU9TX0NTU19IRUFERVJfU0laRSArIFVPU19S U0FfU0lHX1NJWkU7Cj4gLQljb25zdCBzaXplX3QgbWF4c2l6ZSA9IEdVQ19XT1BDTV9TSVpFX1ZB TFVFICsgVU9TX1JTQV9TSUdfU0laRQo+IC0JCQktIDB4ODAwMDsgLyogMzJrIHJlc2VydmVkICg4 SyBzdGFjayArIDI0ayBjb250ZXh0KSAqLwo+ICsJc3RydWN0IGd1Y19jc3NfaGVhZGVyICpjc3Nf aGVhZGVyID0gJmd1Y19mdy0+Z3VjX2Z3X2hlYWRlcjsKPiArCXNpemVfdCBzaXplOwo+ICAgCWlu dCBlcnI7Cj4KPiAgIAlEUk1fREVCVUdfRFJJVkVSKCJiZWZvcmUgcmVxdWVzdGluZyBmaXJtd2Fy ZTogR3VDIGZ3IGZldGNoIHN0YXR1cyAlc1xuIiwKPiBAQCAtNDgyLDEyICs1MDMsMzEgQEAgc3Rh dGljIHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRl bF9ndWNfZncgKmd1Y19mdykKPgo+ICAgCURSTV9ERUJVR19EUklWRVIoImZldGNoIEd1QyBmdyBm cm9tICVzIHN1Y2NlZWRlZCwgZncgJXBcbiIsCj4gICAJCWd1Y19mdy0+Z3VjX2Z3X3BhdGgsIGZ3 KTsKPiAtCURSTV9ERUJVR19EUklWRVIoImZpcm13YXJlIGZpbGUgc2l6ZSAlenUgKG1pbmltdW0g JXp1LCBtYXhpbXVtICV6dSlcbiIsCj4gLQkJZnctPnNpemUsIG1pbnNpemUsIG1heHNpemUpOwo+ Cj4gLQkvKiBDaGVjayB0aGUgc2l6ZSBvZiB0aGUgYmxvYiBiZWZvZSBleGFtaW5pbmcgYnVmZmVy IGNvbnRlbnRzICovCj4gLQlpZiAoZnctPnNpemUgPCBtaW5zaXplIHx8IGZ3LT5zaXplID4gbWF4 c2l6ZSkKPiArCS8qIENoZWNrIHRoZSBzaXplIG9mIHRoZSBibG9iIGJlZm9yZSBleGFtaW5pbmcg YnVmZmVyIGNvbnRlbnRzICovCj4gKwlpZiAoZnctPnNpemUgPCBzaXplb2Yoc3RydWN0IGd1Y19j c3NfaGVhZGVyKSkgewo+ICsJCURSTV9FUlJPUigiRmlybXdhcmUgaGVhZGVyIGlzIG1pc3Npbmdc biIpOwo+ICsJCWdvdG8gZmFpbDsKPiArCX0KPiArCj4gKwltZW1jcHkoY3NzX2hlYWRlciwgZnct PmRhdGEsIHNpemVvZihzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIpKTsKPiArCj4gKwkvKiBBdCBsZWFz dCwgaXQgc2hvdWxkIGhhdmUgaGVhZGVyLCB1Q29kZSBhbmQgUlNBLiBTaXplIG9mIGFsbCB0aHJl ZS4gKi8KPiArCXNpemUgPSAoY3NzX2hlYWRlci0+c2l6ZSAtIGNzc19oZWFkZXItPm1vZHVsdXNf c2l6ZSAtCj4gKwkJCWNzc19oZWFkZXItPmV4cG9uZW50X3NpemUpICogc2l6ZW9mKHUzMik7Cj4g KwlpZiAoZnctPnNpemUgPCBzaXplKSB7Cj4gKwkJRFJNX0VSUk9SKCJNaXNzaW5nIGZpcm13YXJl IGNvbXBvbmVudHNcbiIpOwo+ICAgCQlnb3RvIGZhaWw7Cj4gKwl9Cj4gKwo+ICsJLyogSGVhZGVy IGFuZCB1Q29kZSB3aWxsIGJlIGxvYWRlZCB0byBXT1BDTS4gU2l6ZSBvZiB0aGUgdHdvLiAqLwo+ ICsJc2l6ZSAtPSBjc3NfaGVhZGVyLT5rZXlfc2l6ZSAqIHNpemVvZih1MzIpOwo+ICsKPiArCS8q IFRvcCAzMmsgb2YgV09QQ00gaXMgcmVzZXJ2ZWQgKDhLIHN0YWNrICsgMjRrIFJDNiBjb250ZXh0 KS4gKi8KPiArCWlmIChzaXplID4gR1VDX1dPUENNX1NJWkVfVkFMVUUgLSAweDgwMDApIHsKPiAr CQlEUk1fRVJST1IoIkZpcm13YXJlIGlzIHRvbyBsYXJnZSB0byBmaXQgaW4gV09QQ01cbiIpOwo+ ICsJCWdvdG8gZmFpbDsKPiArCX0KPgo+ICAgCS8qCj4gICAJICogVGhlIEd1QyBmaXJtd2FyZSBp bWFnZSBoYXMgdGhlIHZlcnNpb24gbnVtYmVyIGVtYmVkZGVkIGF0IGEgd2VsbC1rbm93bgo+IEBA IC00OTUsOSArNTM1LDggQEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdykKPiAgIAkgKiBUV08gYnl0ZXMg ZWFjaCAoaS5lLiB1MTYpLCBhbHRob3VnaCBhbGwgcG9pbnRlcnMgYW5kIG9mZnNldHMgYXJlIGRl ZmluZWQKPiAgIAkgKiBpbiB0ZXJtcyBvZiBieXRlcyAodTgpLgo+ICAgCSAqLwo+IC0JY3NzX2hl YWRlciA9IGZ3LT5kYXRhICsgVU9TX0NTU19IRUFERVJfT0ZGU0VUOwo+IC0JZ3VjX2Z3LT5ndWNf ZndfbWFqb3JfZm91bmQgPSAqKHUxNiAqKShjc3NfaGVhZGVyICsgVU9TX1ZFUl9NQUpPUl9PRkZT RVQpOwo+IC0JZ3VjX2Z3LT5ndWNfZndfbWlub3JfZm91bmQgPSAqKHUxNiAqKShjc3NfaGVhZGVy ICsgVU9TX1ZFUl9NSU5PUl9PRkZTRVQpOwo+ICsJZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQg PSBjc3NfaGVhZGVyLT5ndWNfc3dfdmVyc2lvbiA+PiAxNjsKPiArCWd1Y19mdy0+Z3VjX2Z3X21p bm9yX2ZvdW5kID0gY3NzX2hlYWRlci0+Z3VjX3N3X3ZlcnNpb24gJiAweEZGRkY7Cj4KPiAgIAlp ZiAoZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQgIT0gZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2Fu dGVkIHx8Cj4gICAJICAgIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kIDwgZ3VjX2Z3LT5ndWNf ZndfbWlub3Jfd2FudGVkKSB7Cj4KCldlIG5lZWQgdG8gdmFsaWRhdGUgZWFjaCBvZiB0aGUgc2l6 ZXMgcmVhZCBmcm9tIHRoZSBiaW5hcnkgYmxvYiBiZWZvcmUgCnVzaW5nIHRoZW0gaW4gY2FsY3Vs YXRpb25zLCBhbmQgd2UgdGhlbiBhbHNvIG5lZWQgdG8gdmFsaWRhdGUgdGhlIApyZXN1bHRzIG9m IHRoZSBjYWxjdWxhdGlvbnMsIHRvIHByZXZlbnQgYW55b25lIHNwb29maW5nIHRoZSBsb2FkZXIg aW50byAKd3JpdGluZyB3aGVyZSBpdCBzaG91bGRuJ3QuCgpJbiBwYXJ0aWN1bGFyLCB3ZSBuZWVk IHRvIGNoZWNrOgoKCWZ3LT5zaXplCQkJPj0gc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlcikK CWNzc19oZWFkZXItPnNpemUgKCo0KQkJPD0gZnctPnNpemUKCWNzc19oZWFkZXItPmhlYWRlcl9s ZW4JCTw9IGNzc19oZWFkZXItPnNpemUKCT0+ICh1Q29kZV9zaXplID0gY3NzX2hlYWRlci0+c2l6 ZSAtIGNzc19oZWFkZXJfbGVuKSA+PSAwCgljc3NfaGVhZGVyLT5rZXlfc2l6ZSAoKjQpCTw9IEhX X1NJR19TSVpFICgweDEwMCkKCWNzc19oZWFkZXItPmtleV9zaXplCQk8PSBjc3NfaGVhZGVyLT5o ZWFkZXJfbGVuCgljc3NfaGVhZGVyLT5tb2R1bHVzX3NpemUJPD0gY3NzX2hlYWRlci0+aGVhZGVy X2xlbgoJY3NzX2hlYWRlci0+ZXhwb25lbnRfc2l6ZQk8PSBjc3NfaGVhZGVyLT5oZWFkZXJfbGVu Cgljc3NfaGVhZGVyLT5oZWFkZXJfbGVuCQk+PSBjc3NfaGVhZGVyLT5rZXlfc2l6ZSArCgkJCQkJ ICAgY3NzX2hlYWRlci0+bW9kdWx1c19zaXplICsKCQkJCQkgICBjc3NfaGVhZGVyLT5leHBvbmVu dF9zaXplOwoJPT4gKGNzc19oZWFkZXJfc2l6ZSA9IGNzc19oZWFkZXItPmhlYWRlcl9sZW4KCQkJ CS0gY3NzX2hlYWRlci0+a2V5X3NpemUKCQkJCS0gY3NzX2hlYWRlci0+bW9kdWx1c19zaXplCgkJ CQktIGNzc19oZWFkZXItPmV4cG9uZW50X3NpemUpID49IDAKCWNzc19oZWFkZXJfc2l6ZSArIHVD b2RlX3NpemUJPT0gMCBtb2QgY2FjaGVsaW5lc2l6ZQoKKFNpbmNlIGFsbCB0aGVzZSBzaXplcyBh cmUgdW5zaWduZWQsIHdlIGNhbid0IChhbmQgZG9uJ3QgbmVlZCB0bykgY2hlY2sgCmZvciBuZWdh dGl2ZSByZXN1bHRzIGZyb20gdGhlIHN1YnRyYWN0aW9ucywgYnV0IHdlIGNhbiBjaGVjayB0aGF0 IGVhY2ggCnZhbHVlIHRoYXQncyBkZWZpbmVkIGFzIGluY2x1ZGluZyB0aGUgc3VtIG9mIG90aGVy IHZhbHVlcyBpcyBhY3R1YWxseSAKbGFyZ2UgZW5vdWdoIHNvIHRoYXQgdGhlIHN1YnRyYWN0aW9u cyBnaXZlIG1lYW5pbmdmdWwgcmVzdWx0cykuCgpTb21lIG9mIHRoZXNlIGNoZWNrcyBhcmUgYWxy ZWFkeSB0aGVyZSwgYnV0IEkgdGhpbmsgd2Ugc2hvdWxkIGNvbXBsZXRlIAphbGwgb2YgdGhlbSB0 byBjYXRjaCBhbnkgb3RoZXIgaW52YWxpZCBjb21iaW5hdGlvbnMgb2YgdmFsdWVzLiBBbmQgdGhl biAKc2F2ZSB0aGUgY29tcHV0ZWQgc3RhcnQvc2l6ZSB2YWx1ZXMgc28gdGhlIERNQSBjb2RlIGNh biBqdXN0IHJldHJpZXZlIAp0aGUgcHJlY2FsY3VsYXRlZCB2YWx1ZXMuCgouRGF2ZS4KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==