From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id D18378945A for ; Wed, 20 Mar 2019 09:47:50 +0000 (UTC) References: <20190319234441.1449-1-andi.shyti@intel.com> <20190319234441.1449-7-andi.shyti@intel.com> From: Tvrtko Ursulin Message-ID: <5d60fe4c-68cd-526e-eb97-cf58a1e1703f@linux.intel.com> Date: Wed, 20 Mar 2019 09:47:47 +0000 MIME-Version: 1.0 In-Reply-To: <20190319234441.1449-7-andi.shyti@intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH v13 6/9] lib/i915: add gem_engine_topology library List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Andi Shyti , IGT dev Cc: Andi Shyti List-ID: Ck9uIDE5LzAzLzIwMTkgMjM6NDQsIEFuZGkgU2h5dGkgd3JvdGU6Cj4gVGhlIGdlbV9lbmdpbmVf dG9wb2xvZ3kgbGlicmFyeSBpcyBhIHNldCBvZiBmdW5jdGlvbnMgdGhhdAo+IGludGVyZmFjZSB3 aXRoIHRoZSBxdWVyeSBhbmQgZ2V0cGFyYW0vc2V0cGFyYW0gaW9jdGxzLgo+IAo+IFRoZSBsaWJy YXJ5J3MgYWNjZXNzIHBvaW50IGlzIHRoZSAnaW50ZWxfaW5pdF9lbmdpbmVfbGlzdCgpJwo+IGZ1 bmN0aW9uIHRoYXQsIGV2ZXJ5dGltZSBpcyBjYWxsZWQsIGdlbmVyYXRlcyB0aGUgbGlzdCBvZiBh Y3RpdmUKPiBlbmdpbmVzIGFuZCByZXR1cm5zIHRoZW0gaW4gYSAnc3RydWN0IGludGVsX2VuZ2lu ZV9kYXRhJy4gVGhlCj4gc3RydWN0dXJlIGNvbnRhaW5zIG9ubHkgdGhlIGVuZ2luZXMgdGhhdCBh cmUgYWN0aXZlbHkgcHJlc2VudCBpbgo+IHRoZSBHUFUuCj4gCj4gVGhlIGZ1bmN0aW9uIGNhbiB3 b3JrIGluIGJvdGggdGhlIGNhc2VzIHRoYXQgdGhlIHF1ZXJ5IGFuZAo+IGdldHBhcmFtIGlvY3Rs cyBhcmUgaW1wbGVtZW50ZWQgb3Igbm90IGJ5IHRoZSBydW5uaW5nIGtlcm5lbC4gSW4KPiBjYXNl IHRoZXkgYXJlIGltcGxlbWVudGVkLCBhIHF1ZXJ5IGlzIG1hZGUgdG8gdGhlIGRyaXZlciB0byBm ZXRjaAo+IHRoZSBsaXN0IG9mIGFjdGl2ZSBlbmdpbmVzLiBJbiBjYXNlIHRoZXkgYXJlIG5vdCBp bXBsZW1lbnRlZCwgdGhlCj4gbGlzdCBpcyB0YWtlbiBmcm9tIHRoZSAnaW50ZWxfZXhlY3V0aW9u X2VuZ2luZXMyJyBhcnJheSBhbmQKPiBzdG9yZWQgb25seSBhZnRlciBjaGVja2luZyB0aGVpciBw cmVzZW5jZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBBbmRpIFNoeXRpIDxhbmRpLnNoeXRpQGludGVs LmNvbT4KPiAtLS0KPiAgIGxpYi9NYWtlZmlsZS5zb3VyY2VzICAgICAgICAgICB8ICAgMiArCj4g ICBsaWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmMgfCAxOTIgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCj4gICBsaWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmggfCAgNDEg KysrKysrKwo+ICAgbGliL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAxICsKPiAgIDQg ZmlsZXMgY2hhbmdlZCwgMjM2IGluc2VydGlvbnMoKykKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBs aWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmMKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIv aTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmgKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxl LnNvdXJjZXMgYi9saWIvTWFrZWZpbGUuc291cmNlcwo+IGluZGV4IGNmMjcyMDk4MTcwNy4uNzU3 YmQ3YTE3ZWJlIDEwMDY0NAo+IC0tLSBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzCj4gKysrIGIvbGli L01ha2VmaWxlLnNvdXJjZXMKPiBAQCAtMTMsNiArMTMsOCBAQCBsaWJfc291cmNlX2xpc3QgPQkg CVwKPiAgIAlpOTE1L2dlbV9yaW5nLmMJXAo+ICAgCWk5MTUvZ2VtX21tYW4uYwlcCj4gICAJaTkx NS9nZW1fbW1hbi5oCVwKPiArCWk5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jCVwKPiArCWk5MTUv Z2VtX2VuZ2luZV90b3BvbG9neS5oCVwKPiAgIAlpOTE1XzNkLmgJCVwKPiAgIAlpOTE1X3JlZy5o CQlcCj4gICAJaTkxNV9wY2lpZHMuaAkJXAo+IGRpZmYgLS1naXQgYS9saWIvaTkxNS9nZW1fZW5n aW5lX3RvcG9sb2d5LmMgYi9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmMKPiBuZXcgZmls ZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNGRkZDljYTk4YjQ5Cj4gLS0tIC9k ZXYvbnVsbAo+ICsrKyBiL2xpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYwo+IEBAIC0wLDAg KzEsMTkyIEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9u Cj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gKyAq IHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24KPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg bWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gKyAqIGFuZC9vciBzZWxs IGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo ZQo+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4gKyAqIHBh cmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw b3J0aW9ucyBvZiB0aGUKPiArICogU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPiArICogVEhF IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB TUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9S IElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM SU5HUwo+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImRybXRl c3QuaCIKPiArI2luY2x1ZGUgImlvY3RsX3dyYXBwZXJzLmgiCj4gKwo+ICsjaW5jbHVkZSAiaTkx NS9nZW1fZW5naW5lX3RvcG9sb2d5LmgiCj4gKwo+ICsjZGVmaW5lIFNJWkVPRl9DVFhfUEFSQU0J b2Zmc2V0b2Yoc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzLCBcCj4gKwkJCQkJY2xh c3NfaW5zdGFuY2VbSTkxNV9FWEVDX1JJTkdfTUFTSyArIDFdKQo+ICsjZGVmaW5lIFNJWkVPRl9R VUVSWQkJb2Zmc2V0b2Yoc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2VuZ2luZV9pbmZvLCBcCj4gKwkJ CQkJZW5naW5lc1tJOTE1X0VYRUNfUklOR19NQVNLICsgMV0pCj4gKwo+ICtzdGF0aWMgaW50IF9f Z2VtX3F1ZXJ5KGludCBmZCwgc3RydWN0IGRybV9pOTE1X3F1ZXJ5ICpxKQo+ICt7Cj4gKwlpbnQg ZXJyID0gMDsKPiArCj4gKwlpZiAoaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9RVUVSWSwg cSkpCj4gKwkJZXJyID0gLWVycm5vOwo+ICsKPiArCWVycm5vID0gMDsKPiArCXJldHVybiBlcnI7 Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGdlbV9xdWVyeShpbnQgZmQsIHN0cnVjdCBkcm1faTkx NV9xdWVyeSAqcSkKPiArewo+ICsJaWd0X2Fzc2VydF9lcShfX2dlbV9xdWVyeShmZCwgcSksIDAp Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBxdWVyeV9lbmdpbmVzKGludCBmZCwKPiArCQkJICBz dHJ1Y3QgZHJtX2k5MTVfcXVlcnlfZW5naW5lX2luZm8gKnF1ZXJ5X2VuZ2luZXMpCj4gK3sKPiAr CXN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtIGl0ZW0gPSB7IH07Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcXVlcnkgcXVlcnkgPSB7IH07Cj4gKwo+ICsJaXRlbS5xdWVyeV9pZCA9IERSTV9JOTE1X1FV RVJZX0VOR0lORV9JTkZPOwo+ICsJcXVlcnkuaXRlbXNfcHRyID0gdG9fdXNlcl9wb2ludGVyKCZp dGVtKTsKPiArCXF1ZXJ5Lm51bV9pdGVtcyA9IDE7Cj4gKwlpdGVtLmxlbmd0aCA9IFNJWkVPRl9R VUVSWTsKPiArCj4gKwlpdGVtLmRhdGFfcHRyID0gdG9fdXNlcl9wb2ludGVyKHF1ZXJ5X2VuZ2lu ZXMpOwo+ICsKPiArCWdlbV9xdWVyeShmZCwgJnF1ZXJ5KTsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgbWFwX2VuZ2luZV9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSAqZWQsCj4gKwkJ CSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gKmN0eF9wYXJhbSkKCldl IG5vcm1hbGx5IG5hbWUgZnVuY3Rpb25zIHNvIGl0IGlzIG1vcmUgb2J2aW91cyBvbiB3aGF0IHRo ZXkgb3BlcmF0ZS4gCkluIHRoaXMgY2FzZSBpdCBpcyBhIGNvbnRleHQgc28gSSdkIGNhbGwgaXQg Y29udGV4dC9jdHhfbWFwX2VuZ2luZXMoY3R4LCAKZW5naW5lcykuCgo+ICt7Cj4gKwlzdHJ1Y3Qg aTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMgKmN0eF9lbmdpbmUgPQo+ICsJCQkoc3RydWN0IGk5 MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzKikgY3R4X3BhcmFtLT52YWx1ZTsKPiArCWludCBpID0g MDsKPiArCj4gKwlmb3IgKHR5cGVvZihjdHhfZW5naW5lLT5jbGFzc19pbnN0YW5jZVswXSkgKnAg PQo+ICsJCQkJCSZjdHhfZW5naW5lLT5jbGFzc19pbnN0YW5jZVswXTsKPiArCQkJCQkJaSA8IGVk LT5uZW5naW5lczsgaSsrLCBwKyspIHsKPiArCQlwLT5lbmdpbmVfY2xhc3MgPSBlZC0+ZW5naW5l c1tpXS5jbGFzczsKPiArCQlwLT5lbmdpbmVfaW5zdGFuY2UgPSBlZC0+ZW5naW5lc1tpXS5pbnN0 YW5jZTsKPiArCX0KPiArCj4gKwljdHhfcGFyYW0tPnNpemUgPSBvZmZzZXRvZih0eXBlb2YoKmN0 eF9lbmdpbmUpLCBjbGFzc19pbnN0YW5jZVtpICsgMV0pOwo+ICsKPiArCWdlbV9jb250ZXh0X3Nl dF9wYXJhbShlZC0+ZmQsIGN0eF9wYXJhbSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGR1cF9l bmdpbmUoc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplMiwgY29uc3QgY2hhciAqbmFt ZSwKPiArCQkgICAgICAgdWludDE2X3QgY2xhc3MsIHVpbnQxNl90IGluc3RhbmNlLCB1aW50OF90 IGZsYWdzKQoKRnVuY3Rpb24gaXMgbm90IGR1cGxpY2F0aW5nIGFueXRoaW5nIHNvIG5hbWUgaXMg Y29uZnVzaW5nLiBpbml0X2VuZ2luZSAvIAplbmdpbmVfaW5pdCA/Cgo+ICt7Cj4gKwljb25zdCBj aGFyICpjbGFzc19uYW1lc1tdID0geyAicmNzIiwgImJjcyIsICJ2Y3MiLCAidmVjcyIgfTsKPiAr CWNoYXIgKl9fbmFtZTsKPiArCj4gKwkvKiBpZiB3ZSBkb24ndCByZWNvZ25pc2UgdGhlIGNsYXNz LCB0aGVuIHdlIG1hcmsgaXQgYXMgInVuayIgKi8KPiArCWlmIChuYW1lKSB7Cj4gKwkJZTItPm5h bWUgPSBuYW1lOwo+ICsJfSBlbHNlIHsKPiArCQlpZiAoY2xhc3MgPj0gQVJSQVlfU0laRShjbGFz c19uYW1lcykpCj4gKwkJCWlndF9hc3NlcnQoYXNwcmludGYoJl9fbmFtZSwgInVuay0lZDolZCIs Cj4gKwkJCQkJICAgIGNsYXNzLCBpbnN0YW5jZSkgPiAwKTsKPiArCQllbHNlCj4gKwkJCWlndF9h c3NlcnQoYXNwcmludGYoJl9fbmFtZSwgIiVzJWQiLAo+ICsJCQkJCSAgICBjbGFzc19uYW1lc1tj bGFzc10sIGluc3RhbmNlKSA+IDApOwo+ICsKPiArCQllMi0+bmFtZSA9IF9fbmFtZTsKCldlIGRp c2N1c3NlZCBvbiB0aGUgSVJDIGhvdyBuYW1lcyBjYW4gYmUgYm9ycm93ZWQgZnJvbSB0aGUgc3Rh dGljIGVuZ2luZSAKdGFibGUsIHdoaWNoIHdlIGhhdmUgdG8ga2VlcCBtYWludGFpbmluZyBkdWUg Q0kgbGltaXRhdGlvbnMgYW55d2F5LiBUaGF0IAp3YXkgYWxsIGxlYWtzIGFyZSBzb2x2ZWQuCgpT byB5b3Ugd291bGQganVzdCByZXBsYWNlIHRoZSBhYm92ZSB3aXRoIGEgbmFtZSBsb29rdXAgYWdh aW5zdCB0aGUgCnN0YXRpYyB0YWJsZSBhbmQgdXNlIHRoYXQgcG9pbnRlci4KCj4gKwl9Cj4gKwo+ ICsJZTItPmNsYXNzICAgID0gY2xhc3M7Cj4gKwllMi0+aW5zdGFuY2UgPSBpbnN0YW5jZTsKPiAr CWUyLT5mbGFncyAgICA9IGZsYWdzOwo+ICsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgcXVlcnlf ZW5naW5lX2xpc3Qoc3RydWN0IGludGVsX2VuZ2luZV9kYXRhICplZCkKPiArewo+ICsJdWludDhf dCBxdWVyeV9idWZmZXJbU0laRU9GX1FVRVJZXSA9IHsgfTsKPiArCXN0cnVjdCBkcm1faTkxNV9x dWVyeV9lbmdpbmVfaW5mbyAqcXVlcnlfZW5naW5lID0KPiArCQkJKHN0cnVjdCBkcm1faTkxNV9x dWVyeV9lbmdpbmVfaW5mbyAqKSBxdWVyeV9idWZmZXI7Cj4gKwlpbnQgaTsKPiArCj4gKwlxdWVy eV9lbmdpbmVzKGVkLT5mZCwgcXVlcnlfZW5naW5lKTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwg cXVlcnlfZW5naW5lLT5udW1fZW5naW5lczsgaSsrKQo+ICsJCWR1cF9lbmdpbmUoJmVkLT5lbmdp bmVzW2ldLCBOVUxMLAo+ICsJCQkgICBxdWVyeV9lbmdpbmUtPmVuZ2luZXNbaV0uZW5naW5lX2Ns YXNzLAo+ICsJCQkgICBxdWVyeV9lbmdpbmUtPmVuZ2luZXNbaV0uZW5naW5lX2luc3RhbmNlLCBp ICsgMSk7Cj4gKwo+ICsJZWQtPm5lbmdpbmVzID0gcXVlcnlfZW5naW5lLT5udW1fZW5naW5lczsK PiArfQo+ICsKPiArc3RydWN0IGludGVsX2VuZ2luZV9kYXRhIGludGVsX2luaXRfZW5naW5lX2xp c3QoaW50IGZkLCB1aW50MzJfdCBjdHhfaWQpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVf ZGF0YSBlbmdpbmVfZGF0YSA9IHsKPiArCQkuZmQgPSBmZCwKPiArCQkuY3R4ID0gY3R4X2lkLAo+ ICsJfTsKPiArCXVpbnQ4X3QgYnVmZltTSVpFT0ZfQ1RYX1BBUkFNXSA9IHsgfTsKPiArCXN0cnVj dCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5lcyAqY2VuZ2luZSA9Cj4gKwkJCQkoc3RydWN0IGk5 MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzICopIGJ1ZmY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X2NvbnRleHRfcGFyYW0gY3BhcmFtID0gewoKV2Ugbm9ybWFsbHkgY2FsbCB0aGlzIHBhcmFtIGlu IElHVCBzbyBtYXliZSBjaGVjayBhbmQgbWFrZSBpdCBjb25zaXN0ZW50IAppZiBzby4KCj4gKwkJ LnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVMsCj4gKwkJLmN0eF9pZCA9IGN0eF9p ZCwKPiArCQkuc2l6ZSA9IFNJWkVPRl9DVFhfUEFSQU0sCj4gKwkJLnZhbHVlID0gdG9fdXNlcl9w b2ludGVyKGNlbmdpbmUpLAo+ICsJfTsKPiArCWludCByZXQsIGk7Cj4gKwo+ICsJY3BhcmFtLnZh bHVlID0gdG9fdXNlcl9wb2ludGVyKGNlbmdpbmUpOwoKQWxyZWFkeSBpbml0aWFsaXplZCBhYm92 ZS4KCj4gKwo+ICsJcmV0ID0gX19nZW1fY29udGV4dF9nZXRfcGFyYW0oZmQsICZjcGFyYW0pOwo+ ICsKPiArCWlmIChyZXQpIHsKPiArCQkvKiBpZiBrZXJuZWwgZG9lcyBub3Qgc3VwcG9ydCBlbmdp bmUvY29udGV4dCBtYXBwaW5nICovCj4gKwkJY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9l bmdpbmUyICplMjsKPiArCj4gKwkJaWd0X2RlYnVnKCJ1c2luZyBwcmUtYWxsb2NhdGVkIGVuZ2lu ZSBsaXN0XG4iKTsKPiArCj4gKwkJX19mb3JfZWFjaF9lbmdpbmVfY2xhc3NfaW5zdGFuY2UoZTIp IHsKPiArCQkJdWludDY0X3QgZmxhZ3M7Cj4gKwo+ICsJCQlpZiAoIWdlbV9oYXNfZW5naW5lKGZk LCBlMi0+Y2xhc3MsIGUyLT5pbnN0YW5jZSkpCj4gKwkJCQljb250aW51ZTsKPiArCj4gKwkJCWZs YWdzID0gZ2VtX2NsYXNzX2luc3RhbmNlX3RvX2ViX2ZsYWdzKGZkLCBlMi0+Y2xhc3MsCj4gKwkJ CQkJCQkgICAgICAgZTItPmluc3RhbmNlKTsKPiArCj4gKwkJCWR1cF9lbmdpbmUoJmVuZ2luZV9k YXRhLmVuZ2luZXNbZW5naW5lX2RhdGEubmVuZ2luZXNdLAo+ICsJCQkJICAgZTItPm5hbWUsIGUy LT5jbGFzcywgZTItPmluc3RhbmNlLCBmbGFncyk7Cj4gKwo+ICsJCQllbmdpbmVfZGF0YS5uZW5n aW5lcysrOwo+ICsJCX0KPiArCj4gKwl9IGVsc2UgaWYgKGNwYXJhbS5zaXplID09IHNpemVvZihz dHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMpKSB7CgpUaGlzIHNob3VsZCBiZSAiPT0g MCIgc2luY2UgQ2hyaXMgaGFzIHNwZWNpYWwgcGxhbnMgZm9yIHRoZSBvdGhlci4KCj4gKwkJLyog ZWxzZSBpZiBjb250ZXh0IGRvZXNuJ3QgaGF2ZSBtYXBwZWQgZW5naW5lcyAqLwo+ICsJCXF1ZXJ5 X2VuZ2luZV9saXN0KCZlbmdpbmVfZGF0YSk7Cj4gKwkJbWFwX2VuZ2luZV9jb250ZXh0KCZlbmdp bmVfZGF0YSwgJmNwYXJhbSk7Cj4gKwo+ICsJfSBlbHNlIHsKPiArCQkvKiBjb250ZXh0IGhhcyBh IGxpc3Qgb2YgbWFwcGVkIGVuZ2luZXMgKi8KPiArCj4gKwkJdWludDhfdCBuZW5naW5lcyA9IChj cGFyYW0uc2l6ZSAtCj4gKwkJCQlzaXplb2Yoc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdp bmVzKSkgLwo+ICsJCQkJc2l6ZW9mKGNlbmdpbmUtPmNsYXNzX2luc3RhbmNlWzBdKTsKPiArCj4g KwkJZm9yIChpID0gMDsgaSA8IG5lbmdpbmVzIC0gMTsgaSsrKQoKbmVuZ2luZXMgLSAxIGlzIG5v dCByaWdodCBJIHRoaW5rLCBqdXN0IG5lbmdpbmVzLgoKPiArCQkJZHVwX2VuZ2luZSgmZW5naW5l X2RhdGEuZW5naW5lc1tpXSwgTlVMTCwKPiArCQkJCSAgIGNlbmdpbmUtPmNsYXNzX2luc3RhbmNl W2ldLmVuZ2luZV9jbGFzcywKPiArCQkJCSAgIGNlbmdpbmUtPmNsYXNzX2luc3RhbmNlW2ldLmVu Z2luZV9pbnN0YW5jZSwKPiArCQkJCSAgIGkgKyAxKTsKCkp1c3QgImkiIHNpbmNlIGluZGV4IHpl cm8gaXMgbm90IHNwZWNpYWwgYW55IGxvbmdlci4KCj4gKwo+ICsJCWVuZ2luZV9kYXRhLm5lbmdp bmVzID0gaTsKPiArCX0KPiArCj4gKwlyZXR1cm4gZW5naW5lX2RhdGE7Cj4gK30KPiBkaWZmIC0t Z2l0IGEvbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oIGIvbGliL2k5MTUvZ2VtX2VuZ2lu ZV90b3BvbG9neS5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAu LjU0NDYyMTY4M2UxNQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9saWIvaTkxNS9nZW1fZW5naW5l X3RvcG9sb2d5LmgKPiBAQCAtMCwwICsxLDQxIEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAy MDE5IEludGVsIENvcnBvcmF0aW9uCj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gKyAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUgIlNvZnR3YXJlIiksCj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVz dHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KPiArICogdGhlIHJpZ2h0cyB0 byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu c2UsCj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJt aXQgcGVyc29ucyB0byB3aG9tIHRoZQo+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8g c28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUg YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVk aW5nIHRoZSBuZXh0Cj4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNv cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKPiArICogU29mdHdhcmUuCj4gKyAq Cj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ IE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8g RVZFTlQgU0hBTEwKPiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB QkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVU SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcK PiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1Ig VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4gKyAqLwo+ ICsKPiArI2lmbmRlZiBHRU1fRU5HSU5FX1RPUE9MT0dZX0gKPiArI2RlZmluZSBHRU1fRU5HSU5F X1RPUE9MT0dZX0gKPiArCj4gKyNpbmNsdWRlICJpOTE1X2RybS5oIgo+ICsjaW5jbHVkZSAiaWd0 X2d0LmgiCj4gKwo+ICtzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgewo+ICsJaW50IGZkOwo+ICsJ dWludDMyX3QgY3R4Owo+ICsKPiArCXVpbnQzMl90IG5lbmdpbmVzOwo+ICsJdWludDMyX3QgbjsK PiArCXN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiBlbmdpbmVzW0k5MTVfRVhFQ19SSU5H X01BU0sgKyAxXTsKPiArfTsKPiArCj4gK3N0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSBpbnRlbF9p bml0X2VuZ2luZV9saXN0KGludCBmZCwgdWludDMyX3QgY3R4X2lkKTsKPiArCj4gKyNlbmRpZiAv KiBHRU1fRU5HSU5FX1RPUE9MT0dZX0ggKi8KPiBkaWZmIC0tZ2l0IGEvbGliL21lc29uLmJ1aWxk IGIvbGliL21lc29uLmJ1aWxkCj4gaW5kZXggMGViNTU4NWQ3MmI5Li4zY2M1MmY5N2M4YmYgMTAw NjQ0Cj4gLS0tIGEvbGliL21lc29uLmJ1aWxkCj4gKysrIGIvbGliL21lc29uLmJ1aWxkCj4gQEAg LTUsNiArNSw3IEBAIGxpYl9zb3VyY2VzID0gWwo+ICAgCSdpOTE1L2dlbV9zdWJtaXNzaW9uLmMn LAo+ICAgCSdpOTE1L2dlbV9yaW5nLmMnLAo+ICAgCSdpOTE1L2dlbV9tbWFuLmMnLAo+ICsJJ2k5 MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jJywKPiAgIAknaWd0X2NvbG9yX2VuY29kaW5nLmMnLAo+ ICAgCSdpZ3RfZGVidWdmcy5jJywKPiAgIAknaWd0X2RldmljZS5jJywKPiAKClJlZ2FyZHMsCgpU dnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0 LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2