From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 07/23] drm/i915/gt: Move the [class][inst] lookup for engines onto the GT Date: Fri, 26 Jul 2019 10:22:08 +0100 Message-ID: References: <20190723183842.20372-1-chris@chris-wilson.co.uk> <20190723183842.20372-7-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id C166C6ECC8 for ; Fri, 26 Jul 2019 09:22:11 +0000 (UTC) In-Reply-To: <20190723183842.20372-7-chris@chris-wilson.co.uk> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIzLzA3LzIwMTkgMTk6MzgsIENocmlzIFdpbHNvbiB3cm90ZToKPiBUbyBtYWludGFpbiBh IGZhc3QgbG9va3VwIGZyb20gYSBHVCBjZW50cmljIGlycSBoYW5kbGVyLCB3ZSB3YW50IHRoZQo+ IGVuZ2luZSBsb29rdXAgdGFibGVzIG9uIHRoZSBpbnRlbF9ndC4gVG8gYXZvaWQgaGF2aW5nIG11 bHRpcGxlIGNvcGllcyBvZgo+IHRoZSBzYW1lIG11bHRpLWRpbWVuc2lvbiBsb29rdXAgdGFibGUs IG1vdmUgdGhlIGdlbmVyaWMgdXNlciBlbmdpbmUKPiBsb29rdXAgaW50byBhbiByYnRyZWUgKGZv ciBmYXN0IGFuZCBmbGV4aWJsZSBpbmRleGluZykuCj4gCj4gdjI6IFNwbGl0IHVhYmlfaW5zdGFu Y2UgY2YgdWFiaV9jbGFzcwo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNA Y2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5A aW50ZWwuY29tPgo+IENjOiBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9z cHVyaW9AaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUg ICAgICAgICAgICAgICAgfCAgMSArCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fY29udGV4dC5jICB8ICAzICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9l bmdpbmUuaCAgICAgICB8ICAzIC0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2Vu Z2luZV9jcy5jICAgIHwgNTMgKysrKystLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmggfCAgOSArKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2VuZ2luZV91c2VyLmMgIHwgNjYgKysrKysrKysrKysrKysrKysrKysKPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV91c2VyLmggIHwgMjAgKysrKysr Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF90eXBlcy5oICAgICB8ICA0ICsr Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYyAgICAgICB8IDE1ICsr Ky0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICB8ICA3 ICsrLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgICAgICAgfCAg MiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYyAgICAgICAgICAgICAgfCAg MyArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5jICAgICAgICAgICAgfCAg MiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oICAgICAgICAgICAgfCAx MCArLS0KPiAgIDE0IGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25zKCspLCA2MCBkZWxldGlv bnMoLSkKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9lbmdpbmVfdXNlci5jCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfZW5naW5lX3VzZXIuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gaW5kZXgg NTI0NTE2MjUxYTQwLi5mYWZjMzc2M2RjMmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+IEBA IC03NCw2ICs3NCw3IEBAIGd0LXkgKz0gXAo+ICAgCWd0L2ludGVsX2NvbnRleHQubyBcCj4gICAJ Z3QvaW50ZWxfZW5naW5lX2NzLm8gXAo+ICAgCWd0L2ludGVsX2VuZ2luZV9wbS5vIFwKPiArCWd0 L2ludGVsX2VuZ2luZV91c2VyLm8gXAo+ICAgCWd0L2ludGVsX2d0Lm8gXAo+ICAgCWd0L2ludGVs X2d0X3BtLm8gXAo+ICAgCWd0L2ludGVsX2hhbmdjaGVjay5vIFwKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCAxOGIyMjZiYzVlM2EuLmUzMTQz MWZhMTQxZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f Y29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRl eHQuYwo+IEBAIC03MCw2ICs3MCw3IEBACj4gICAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+Cj4g ICAKPiAgICNpbmNsdWRlICJndC9pbnRlbF9scmNfcmVnLmgiCj4gKyNpbmNsdWRlICJndC9pbnRl bF9lbmdpbmVfdXNlci5oIgo+ICAgCj4gICAjaW5jbHVkZSAiaTkxNV9nZW1fY29udGV4dC5oIgo+ ICAgI2luY2x1ZGUgImk5MTVfZ2xvYmFscy5oIgo+IEBAIC0xNzQwLDcgKzE3NDEsNyBAQCBnZXRf ZW5naW5lcyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICAgCj4gICAJCWlmIChlLT5l bmdpbmVzW25dKSB7Cj4gICAJCQljaS5lbmdpbmVfY2xhc3MgPSBlLT5lbmdpbmVzW25dLT5lbmdp bmUtPnVhYmlfY2xhc3M7Cj4gLQkJCWNpLmVuZ2luZV9pbnN0YW5jZSA9IGUtPmVuZ2luZXNbbl0t PmVuZ2luZS0+aW5zdGFuY2U7Cj4gKwkJCWNpLmVuZ2luZV9pbnN0YW5jZSA9IGUtPmVuZ2luZXNb bl0tPmVuZ2luZS0+dWFiaV9pbnN0YW5jZTsKPiAgIAkJfQo+ICAgCj4gICAJCWlmIChjb3B5X3Rv X3VzZXIoJnVzZXItPmVuZ2luZXNbbl0sICZjaSwgc2l6ZW9mKGNpKSkpIHsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaAo+IGluZGV4IGRiNWM3M2NlODZlZS4uMzA4NTYzODNl NGM1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmgKPiBAQCAtNDMy LDkgKzQzMiw2IEBAIHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAo+ICAgCQkgICAgICAgc3RydWN0IGRybV9wcmludGVyICptLAo+ICAgCQkgICAg ICAgY29uc3QgY2hhciAqaGVhZGVyLCAuLi4pOwo+ICAgCj4gLXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKgo+IC1pbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsIHU4IGNsYXNzLCB1OCBpbnN0YW5jZSk7Cj4gLQo+ICAgc3RhdGljIGlubGluZSB2b2lk IGludGVsX2VuZ2luZV9jb250ZXh0X2luKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK PiAgIHsKPiAgIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2VuZ2luZV9jcy5jCj4gaW5kZXggNjVjYmYxZDkxMThkLi5lZDVjNGUxNjFlNmUgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwo+IEBAIC0zMiw2 ICszMiw3IEBACj4gICAKPiAgICNpbmNsdWRlICJpbnRlbF9lbmdpbmUuaCIKPiAgICNpbmNsdWRl ICJpbnRlbF9lbmdpbmVfcG0uaCIKPiArI2luY2x1ZGUgImludGVsX2VuZ2luZV91c2VyLmgiCj4g ICAjaW5jbHVkZSAiaW50ZWxfY29udGV4dC5oIgo+ICAgI2luY2x1ZGUgImludGVsX2xyYy5oIgo+ ICAgI2luY2x1ZGUgImludGVsX3Jlc2V0LmgiCj4gQEAgLTI4NSw5ICsyODYsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9lbmdpbmVfc2FuaXRpemVfbW1pbyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gICAJaW50ZWxfZW5naW5lX3NldF9od3NwX3dyaXRlbWFzayhlbmdpbmUsIH4wdSk7 Cj4gICB9Cj4gICAKPiAtc3RhdGljIGludAo+IC1pbnRlbF9lbmdpbmVfc2V0dXAoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCSAgIGVudW0gaW50ZWxfZW5naW5lX2lkIGlk KQo+ICtzdGF0aWMgaW50IGludGVsX2VuZ2luZV9zZXR1cChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBl bnVtIGludGVsX2VuZ2luZV9pZCBpZCkKPiAgIHsKPiAgIAljb25zdCBzdHJ1Y3QgZW5naW5lX2lu Zm8gKmluZm8gPSAmaW50ZWxfZW5naW5lc1tpZF07Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lOwo+IEBAIC0zMDMsMTAgKzMwMiw5IEBAIGludGVsX2VuZ2luZV9zZXR1cChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJaWYgKEdFTV9ERUJVR19XQVJOX09O KGluZm8tPmluc3RhbmNlID4gTUFYX0VOR0lORV9JTlNUQU5DRSkpCj4gICAJCXJldHVybiAtRUlO VkFMOwo+ICAgCj4gLQlpZiAoR0VNX0RFQlVHX1dBUk5fT04oZGV2X3ByaXYtPmVuZ2luZV9jbGFz c1tpbmZvLT5jbGFzc11baW5mby0+aW5zdGFuY2VdKSkKPiArCWlmIChHRU1fREVCVUdfV0FSTl9P TihndC0+ZW5naW5lX2NsYXNzW2luZm8tPmNsYXNzXVtpbmZvLT5pbnN0YW5jZV0pKQo+ICAgCQly ZXR1cm4gLUVJTlZBTDsKPiAgIAo+IC0JR0VNX0JVR19PTihkZXZfcHJpdi0+ZW5naW5lW2lkXSk7 Cj4gICAJZW5naW5lID0ga3phbGxvYyhzaXplb2YoKmVuZ2luZSksIEdGUF9LRVJORUwpOwo+ICAg CWlmICghZW5naW5lKQo+ICAgCQlyZXR1cm4gLUVOT01FTTsKPiBAQCAtMzE1LDEyICszMTMsMTIg QEAgaW50ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAgIAo+ICAgCWVuZ2luZS0+aWQgPSBpZDsKPiAgIAllbmdpbmUtPm1hc2sgPSBCSVQoaWQpOwo+ IC0JZW5naW5lLT5pOTE1ID0gZGV2X3ByaXY7Cj4gLQllbmdpbmUtPmd0ID0gJmRldl9wcml2LT5n dDsKPiAtCWVuZ2luZS0+dW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7Cj4gKwllbmdpbmUtPmk5 MTUgPSBndC0+aTkxNTsKPiArCWVuZ2luZS0+Z3QgPSBndDsKPiArCWVuZ2luZS0+dW5jb3JlID0g Z3QtPnVuY29yZTsKPiAgIAlfX3NwcmludF9lbmdpbmVfbmFtZShlbmdpbmUtPm5hbWUsIGluZm8p Owo+ICAgCWVuZ2luZS0+aHdfaWQgPSBlbmdpbmUtPmd1Y19pZCA9IGluZm8tPmh3X2lkOwo+IC0J ZW5naW5lLT5tbWlvX2Jhc2UgPSBfX2VuZ2luZV9tbWlvX2Jhc2UoZGV2X3ByaXYsIGluZm8tPm1t aW9fYmFzZXMpOwo+ICsJZW5naW5lLT5tbWlvX2Jhc2UgPSBfX2VuZ2luZV9tbWlvX2Jhc2UoZ3Qt Pmk5MTUsIGluZm8tPm1taW9fYmFzZXMpOwo+ICAgCWVuZ2luZS0+Y2xhc3MgPSBpbmZvLT5jbGFz czsKPiAgIAllbmdpbmUtPmluc3RhbmNlID0gaW5mby0+aW5zdGFuY2U7Cj4gICAKPiBAQCAtMzMx LDEzICszMjksMTQgQEAgaW50ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgIAllbmdpbmUtPmRlc3Ryb3kgPSAodHlwZW9mKGVuZ2luZS0+ZGVzdHJv eSkpa2ZyZWU7Cj4gICAKPiAgIAllbmdpbmUtPnVhYmlfY2xhc3MgPSBpbnRlbF9lbmdpbmVfY2xh c3Nlc1tpbmZvLT5jbGFzc10udWFiaV9jbGFzczsKPiArCWVuZ2luZS0+dWFiaV9pbnN0YW5jZSA9 IGluZm8tPmluc3RhbmNlOwo+ICAgCj4gLQllbmdpbmUtPmNvbnRleHRfc2l6ZSA9IGludGVsX2Vu Z2luZV9jb250ZXh0X3NpemUoZGV2X3ByaXYsCj4gKwllbmdpbmUtPmNvbnRleHRfc2l6ZSA9IGlu dGVsX2VuZ2luZV9jb250ZXh0X3NpemUoZ3QtPmk5MTUsCj4gICAJCQkJCQkJIGVuZ2luZS0+Y2xh c3MpOwo+ICAgCWlmIChXQVJOX09OKGVuZ2luZS0+Y29udGV4dF9zaXplID4gQklUKDIwKSkpCj4g ICAJCWVuZ2luZS0+Y29udGV4dF9zaXplID0gMDsKPiAgIAlpZiAoZW5naW5lLT5jb250ZXh0X3Np emUpCj4gLQkJRFJJVkVSX0NBUFMoZGV2X3ByaXYpLT5oYXNfbG9naWNhbF9jb250ZXh0cyA9IHRy dWU7Cj4gKwkJRFJJVkVSX0NBUFMoZ3QtPmk5MTUpLT5oYXNfbG9naWNhbF9jb250ZXh0cyA9IHRy dWU7Cj4gICAKPiAgIAkvKiBOb3RoaW5nIHRvIGRvIGhlcmUsIGV4ZWN1dGUgaW4gb3JkZXIgb2Yg ZGVwZW5kZW5jaWVzICovCj4gICAJZW5naW5lLT5zY2hlZHVsZSA9IE5VTEw7Cj4gQEAgLTM0OSw4 ICszNDgsMTEgQEAgaW50ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgIAkvKiBTY3J1YiBtbWlvIHN0YXRlIG9uIHRha2VvdmVyICovCj4gICAJaW50 ZWxfZW5naW5lX3Nhbml0aXplX21taW8oZW5naW5lKTsKPiAgIAo+IC0JZGV2X3ByaXYtPmVuZ2lu ZV9jbGFzc1tpbmZvLT5jbGFzc11baW5mby0+aW5zdGFuY2VdID0gZW5naW5lOwo+IC0JZGV2X3By aXYtPmVuZ2luZVtpZF0gPSBlbmdpbmU7Cj4gKwllbmdpbmUtPmd0LT5lbmdpbmVfY2xhc3NbaW5m by0+Y2xhc3NdW2luZm8tPmluc3RhbmNlXSA9IGVuZ2luZTsKCk5vIG5lZWQgdG8gZ28gdGhyb3Vn aCBlbmdpbmUgdG8gZ3QgaGVyZS4KCj4gKwo+ICsJaW50ZWxfZW5naW5lX2FkZF91c2VyKGVuZ2lu ZSk7Cj4gKwlndC0+aTkxNS0+ZW5naW5lW2lkXSA9IGVuZ2luZTsKPiArCj4gICAJcmV0dXJuIDA7 Cj4gICB9Cj4gICAKPiBAQCAtNDMzLDcgKzQzNSw3IEBAIGludCBpbnRlbF9lbmdpbmVzX2luaXRf bW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgIAkJaWYgKCFIQVNfRU5HSU5F KGk5MTUsIGkpKQo+ICAgCQkJY29udGludWU7Cj4gICAKPiAtCQllcnIgPSBpbnRlbF9lbmdpbmVf c2V0dXAoaTkxNSwgaSk7Cj4gKwkJZXJyID0gaW50ZWxfZW5naW5lX3NldHVwKCZpOTE1LT5ndCwg aSk7Cj4gICAJCWlmIChlcnIpCj4gICAJCQlnb3RvIGNsZWFudXA7Cj4gICAKPiBAQCAtMTUwMSwy OSArMTUwMyw2IEBAIHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAo+ICAgCWludGVsX2VuZ2luZV9wcmludF9icmVhZGNydW1icyhlbmdpbmUsIG0p Owo+ICAgfQo+ICAgCj4gLXN0YXRpYyB1OCB1c2VyX2NsYXNzX21hcFtdID0gewo+IC0JW0k5MTVf RU5HSU5FX0NMQVNTX1JFTkRFUl0gPSBSRU5ERVJfQ0xBU1MsCj4gLQlbSTkxNV9FTkdJTkVfQ0xB U1NfQ09QWV0gPSBDT1BZX0VOR0lORV9DTEFTUywKPiAtCVtJOTE1X0VOR0lORV9DTEFTU19WSURF T10gPSBWSURFT19ERUNPREVfQ0xBU1MsCj4gLQlbSTkxNV9FTkdJTkVfQ0xBU1NfVklERU9fRU5I QU5DRV0gPSBWSURFT19FTkhBTkNFTUVOVF9DTEFTUywKPiAtfTsKPiAtCj4gLXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKgo+IC1pbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsIHU4IGNsYXNzLCB1OCBpbnN0YW5jZSkKPiAtewo+IC0JaWYgKGNsYXNz ID49IEFSUkFZX1NJWkUodXNlcl9jbGFzc19tYXApKQo+IC0JCXJldHVybiBOVUxMOwo+IC0KPiAt CWNsYXNzID0gdXNlcl9jbGFzc19tYXBbY2xhc3NdOwo+IC0KPiAtCUdFTV9CVUdfT04oY2xhc3Mg PiBNQVhfRU5HSU5FX0NMQVNTKTsKPiAtCj4gLQlpZiAoaW5zdGFuY2UgPiBNQVhfRU5HSU5FX0lO U1RBTkNFKQo+IC0JCXJldHVybiBOVUxMOwo+IC0KPiAtCXJldHVybiBpOTE1LT5lbmdpbmVfY2xh c3NbY2xhc3NdW2luc3RhbmNlXTsKPiAtfQo+IC0KPiAgIC8qKgo+ICAgICogaW50ZWxfZW5hYmxl X2VuZ2luZV9zdGF0cygpIC0gRW5hYmxlIGVuZ2luZSBidXN5IHRyYWNraW5nIG9uIGVuZ2luZQo+ ICAgICogQGVuZ2luZTogZW5naW5lIHRvIGVuYWJsZSBzdGF0cyBjb2xsZWN0aW9uCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKPiBpbmRleCA4YmU2MzAx OWQ3MDcuLjljOTI3ZmE0MDhhYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9lbmdpbmVfdHlwZXMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2VuZ2luZV90eXBlcy5oCj4gQEAgLTEyLDYgKzEyLDcgQEAKPiAgICNpbmNsdWRlIDxsaW51 eC9rcmVmLmg+Cj4gICAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4 L2xsaXN0Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9yYnRyZWUuaD4KPiAgICNpbmNsdWRlIDxsaW51 eC90aW1lci5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gICAKPiBAQCAtMjY3LDE1 ICsyNjgsMTkgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7Cj4gICAJdW5zaWduZWQgaW50IGd1 Y19pZDsKPiAgIAlpbnRlbF9lbmdpbmVfbWFza190IG1hc2s7Cj4gICAKPiAtCXU4IHVhYmlfY2xh c3M7Cj4gLQo+ICAgCXU4IGNsYXNzOwo+ICAgCXU4IGluc3RhbmNlOwo+ICsKPiArCXU4IHVhYmlf Y2xhc3M7Cj4gKwl1OCB1YWJpX2luc3RhbmNlOwo+ICsKPiAgIAl1MzIgY29udGV4dF9zaXplOwo+ ICAgCXUzMiBtbWlvX2Jhc2U7Cj4gICAKPiAgIAl1MzIgdWFiaV9jYXBhYmlsaXRpZXM7Cj4gICAK PiArCXN0cnVjdCByYl9ub2RlIHVhYmlfbm9kZTsKPiArCj4gICAJc3RydWN0IGludGVsX3NzZXUg c3NldTsKPiAgIAo+ICAgCXN0cnVjdCBpbnRlbF9yaW5nICpidWZmZXI7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV91c2VyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdXNlci5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiBpbmRleCAwMDAwMDAwMDAwMDAuLmY3NGZiNGQyZmEwZAo+IC0tLSAvZGV2L251bGwKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdXNlci5jCj4gQEAgLTAsMCAr MSw2NiBAQAo+ICsvKgo+ICsgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4gKyAqCj4g KyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCj4gKyAqLwo+ICsKPiArI2lu Y2x1ZGUgImk5MTVfZHJ2LmgiCj4gKyNpbmNsdWRlICJpbnRlbF9lbmdpbmUuaCIKPiArI2luY2x1 ZGUgImludGVsX2VuZ2luZV91c2VyLmgiCj4gKwo+ICtzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoK PiAraW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LCB1OCBjbGFzcywgdTggaW5zdGFuY2UpCj4gK3sKPiArCXN0cnVjdCByYl9ub2RlICpwID0gaTkx NS0+dWFiaV9lbmdpbmVzLnJiX25vZGU7Cj4gKwo+ICsJd2hpbGUgKHApIHsKPiArCQlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICppdCA9Cj4gKwkJCXJiX2VudHJ5KHAsIHR5cGVvZigqaXQpLCB1YWJp X25vZGUpOwo+ICsKPiArCQlpZiAoY2xhc3MgPCBpdC0+dWFiaV9jbGFzcykKPiArCQkJcCA9IHAt PnJiX2xlZnQ7Cj4gKwkJZWxzZSBpZiAoY2xhc3MgPiBpdC0+dWFiaV9jbGFzcyB8fAo+ICsJCQkg aW5zdGFuY2UgPiBpdC0+dWFiaV9pbnN0YW5jZSkKPiArCQkJcCA9IHAtPnJiX3JpZ2h0Owo+ICsJ CWVsc2UgaWYgKGluc3RhbmNlIDwgaXQtPnVhYmlfaW5zdGFuY2UpCj4gKwkJCXAgPSBwLT5yYl9s ZWZ0Owo+ICsJCWVsc2UKPiArCQkJcmV0dXJuIGl0Owo+ICsJfQo+ICsKPiArCXJldHVybiBOVUxM Owo+ICt9Cj4gKwo+ICt2b2lkIGludGVsX2VuZ2luZV9hZGRfdXNlcihzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCj4gK3sKPiArCXN0cnVjdCByYl9yb290ICpyb290ID0gJmVuZ2luZS0+ aTkxNS0+dWFiaV9lbmdpbmVzOwo+ICsJc3RydWN0IHJiX25vZGUgKipwLCAqcGFyZW50Owo+ICsK PiArCXBhcmVudCA9IE5VTEw7Cj4gKwlwID0gJnJvb3QtPnJiX25vZGU7Cj4gKwl3aGlsZSAoKnAp IHsKPiArCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICppdDsKPiArCj4gKwkJcGFyZW50ID0gKnA7 Cj4gKwkJaXQgPSByYl9lbnRyeShwYXJlbnQsIHR5cGVvZigqaXQpLCB1YWJpX25vZGUpOwo+ICsK PiArCQkvKiBBbGwgdXNlciBjbGFzczppbnN0YW5jZSBpZGVudGlmaWVycyBtdXN0IGJlIHVuaXF1 ZSAqLwo+ICsJCUdFTV9CVUdfT04oaXQtPnVhYmlfY2xhc3MgPT0gZW5naW5lLT51YWJpX2NsYXNz ICYmCj4gKwkJCSAgIGl0LT51YWJpX2luc3RhbmNlID09IGVuZ2luZS0+dWFiaV9pbnN0YW5jZSk7 Cj4gKwo+ICsJCWlmIChlbmdpbmUtPnVhYmlfY2xhc3MgPCBpdC0+dWFiaV9jbGFzcykKPiArCQkJ cCA9ICZwYXJlbnQtPnJiX2xlZnQ7Cj4gKwkJZWxzZSBpZiAoZW5naW5lLT51YWJpX2NsYXNzID4g aXQtPnVhYmlfY2xhc3MgfHwKPiArCQkJIGVuZ2luZS0+dWFiaV9pbnN0YW5jZSA+IGl0LT51YWJp X2luc3RhbmNlKQo+ICsJCQlwID0gJnBhcmVudC0+cmJfcmlnaHQ7Cj4gKwkJZWxzZQo+ICsJCQlw ID0gJnBhcmVudC0+cmJfbGVmdDsKPiArCX0KPiArCj4gKwlyYl9saW5rX25vZGUoJmVuZ2luZS0+ dWFiaV9ub2RlLCBwYXJlbnQsIHApOwo+ICsJcmJfaW5zZXJ0X2NvbG9yKCZlbmdpbmUtPnVhYmlf bm9kZSwgcm9vdCk7Cj4gKwo+ICsJR0VNX0JVR19PTihpbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIo ZW5naW5lLT5pOTE1LAo+ICsJCQkJCSAgICBlbmdpbmUtPnVhYmlfY2xhc3MsCj4gKwkJCQkJICAg IGVuZ2luZS0+dWFiaV9pbnN0YW5jZSkgIT0gZW5naW5lKTsKPiArfQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdXNlci5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3VzZXIuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4g aW5kZXggMDAwMDAwMDAwMDAwLi4wOTFkYzhhNGEzOWYKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3VzZXIuaAo+IEBAIC0wLDAgKzEs MjAgQEAKPiArLyoKPiArICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ICsgKgo+ICsg KiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKi8KPiArCj4gKyNpZm5k ZWYgSU5URUxfRU5HSU5FX1VTRVJfSAo+ICsjZGVmaW5lIElOVEVMX0VOR0lORV9VU0VSX0gKPiAr Cj4gKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ICsKPiArc3RydWN0IGRybV9pOTE1X3ByaXZh dGU7Cj4gK3N0cnVjdCBpbnRlbF9lbmdpbmVfY3M7Cj4gKwo+ICtzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICoKPiAraW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LCB1OCBjbGFzcywgdTggaW5zdGFuY2UpOwo+ICsKPiArdm9pZCBpbnRlbF9lbmdpbmVf YWRkX3VzZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiArCj4gKyNlbmRpZiAv KiBJTlRFTF9FTkdJTkVfVVNFUl9IICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2d0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9n dF90eXBlcy5oCj4gaW5kZXggMzRkNGE4NjhlNGYxLi41ZmQxMWUzNjFkMDMgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfdHlwZXMuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3R5cGVzLmgKPiBAQCAtMjEsNiArMjEsNyBAQAo+ ICAgCj4gICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKPiAgIHN0cnVjdCBpOTE1X2dndHQ7Cj4g K3N0cnVjdCBpbnRlbF9lbmdpbmVfY3M7Cj4gICBzdHJ1Y3QgaW50ZWxfdW5jb3JlOwo+ICAgCj4g ICBzdHJ1Y3QgaW50ZWxfaGFuZ2NoZWNrIHsKPiBAQCAtNzYsNiArNzcsOSBAQCBzdHJ1Y3QgaW50 ZWxfZ3Qgewo+ICAgCXUzMiBwbV9pZXI7Cj4gICAKPiAgIAl1MzIgcG1fZ3VjX2V2ZW50czsKPiAr Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmVfY2xhc3NbTUFYX0VOR0lORV9DTEFT UyArIDFdCj4gKwkJCQkJICAgIFtNQVhfRU5HSU5FX0lOU1RBTkNFICsgMV07Cj4gICB9Owo+ICAg Cj4gICBlbnVtIGludGVsX2d0X3NjcmF0Y2hfZmllbGQgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3NlbGZ0ZXN0X2xyYy5jCj4gaW5kZXggNjBmMjdlNTJkMjY3Li5lYjQwYTU4NjY1YmUgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYwo+IEBAIC0xNzczLDYgKzE3NzMs NyBAQCBzdGF0aWMgaW50IGxpdmVfdmlydHVhbF9lbmdpbmUodm9pZCAqYXJnKQo+ICAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnNpYmxpbmdzW01BWF9FTkdJTkVfSU5TVEFOQ0UgKyAxXTsKPiAgIAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gJmk5MTUtPmd0Owo+ ICAgCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+ICAgCXVuc2lnbmVkIGludCBjbGFzcywgaW5z dDsKPiAgIAlpbnQgZXJyID0gLUVOT0RFVjsKPiBAQCAtMTc5NiwxMCArMTc5NywxMCBAQCBzdGF0 aWMgaW50IGxpdmVfdmlydHVhbF9lbmdpbmUodm9pZCAqYXJnKQo+ICAgCj4gICAJCW5zaWJsaW5n ID0gMDsKPiAgIAkJZm9yIChpbnN0ID0gMDsgaW5zdCA8PSBNQVhfRU5HSU5FX0lOU1RBTkNFOyBp bnN0KyspIHsKPiAtCQkJaWYgKCFpOTE1LT5lbmdpbmVfY2xhc3NbY2xhc3NdW2luc3RdKQo+ICsJ CQlpZiAoIWd0LT5lbmdpbmVfY2xhc3NbY2xhc3NdW2luc3RdKQo+ICAgCQkJCWNvbnRpbnVlOwo+ ICAgCj4gLQkJCXNpYmxpbmdzW25zaWJsaW5nKytdID0gaTkxNS0+ZW5naW5lX2NsYXNzW2NsYXNz XVtpbnN0XTsKPiArCQkJc2libGluZ3NbbnNpYmxpbmcrK10gPSBndC0+ZW5naW5lX2NsYXNzW2Ns YXNzXVtpbnN0XTsKPiAgIAkJfQo+ICAgCQlpZiAobnNpYmxpbmcgPCAyKQo+ICAgCQkJY29udGlu dWU7Cj4gQEAgLTE5MjAsNiArMTkyMSw3IEBAIHN0YXRpYyBpbnQgbGl2ZV92aXJ0dWFsX21hc2so dm9pZCAqYXJnKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJn Owo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnNpYmxpbmdzW01BWF9FTkdJTkVfSU5TVEFO Q0UgKyAxXTsKPiArCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSAmaTkxNS0+Z3Q7Cj4gICAJdW5zaWdu ZWQgaW50IGNsYXNzLCBpbnN0Owo+ICAgCWludCBlcnIgPSAwOwo+ICAgCj4gQEAgLTE5MzMsMTAg KzE5MzUsMTAgQEAgc3RhdGljIGludCBsaXZlX3ZpcnR1YWxfbWFzayh2b2lkICphcmcpCj4gICAK PiAgIAkJbnNpYmxpbmcgPSAwOwo+ICAgCQlmb3IgKGluc3QgPSAwOyBpbnN0IDw9IE1BWF9FTkdJ TkVfSU5TVEFOQ0U7IGluc3QrKykgewo+IC0JCQlpZiAoIWk5MTUtPmVuZ2luZV9jbGFzc1tjbGFz c11baW5zdF0pCj4gKwkJCWlmICghZ3QtPmVuZ2luZV9jbGFzc1tjbGFzc11baW5zdF0pCj4gICAJ CQkJYnJlYWs7Cj4gICAKPiAtCQkJc2libGluZ3NbbnNpYmxpbmcrK10gPSBpOTE1LT5lbmdpbmVf Y2xhc3NbY2xhc3NdW2luc3RdOwo+ICsJCQlzaWJsaW5nc1tuc2libGluZysrXSA9IGd0LT5lbmdp bmVfY2xhc3NbY2xhc3NdW2luc3RdOwo+ICAgCQl9Cj4gICAJCWlmIChuc2libGluZyA8IDIpCj4g ICAJCQljb250aW51ZTsKPiBAQCAtMjA5Nyw2ICsyMDk5LDcgQEAgc3RhdGljIGludCBsaXZlX3Zp cnR1YWxfYm9uZCh2b2lkICphcmcpCj4gICAJfTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSA9IGFyZzsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpzaWJsaW5nc1tNQVhf RU5HSU5FX0lOU1RBTkNFICsgMV07Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gJmk5MTUtPmd0 Owo+ICAgCXVuc2lnbmVkIGludCBjbGFzcywgaW5zdDsKPiAgIAlpbnQgZXJyID0gMDsKPiAgIAo+ IEBAIC0yMTExLDExICsyMTE0LDExIEBAIHN0YXRpYyBpbnQgbGl2ZV92aXJ0dWFsX2JvbmQodm9p ZCAqYXJnKQo+ICAgCj4gICAJCW5zaWJsaW5nID0gMDsKPiAgIAkJZm9yIChpbnN0ID0gMDsgaW5z dCA8PSBNQVhfRU5HSU5FX0lOU1RBTkNFOyBpbnN0KyspIHsKPiAtCQkJaWYgKCFpOTE1LT5lbmdp bmVfY2xhc3NbY2xhc3NdW2luc3RdKQo+ICsJCQlpZiAoIWd0LT5lbmdpbmVfY2xhc3NbY2xhc3Nd W2luc3RdKQo+ICAgCQkJCWJyZWFrOwo+ICAgCj4gICAJCQlHRU1fQlVHX09OKG5zaWJsaW5nID09 IEFSUkFZX1NJWkUoc2libGluZ3MpKTsKPiAtCQkJc2libGluZ3NbbnNpYmxpbmcrK10gPSBpOTE1 LT5lbmdpbmVfY2xhc3NbY2xhc3NdW2luc3RdOwo+ICsJCQlzaWJsaW5nc1tuc2libGluZysrXSA9 IGd0LT5lbmdpbmVfY2xhc3NbY2xhc3NdW2luc3RdOwo+ICAgCQl9Cj4gICAJCWlmIChuc2libGlu ZyA8IDIpCj4gICAJCQljb250aW51ZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCAy NjlhMWIzMmI0OGIuLjEyYTdmZGFiYzJmMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ IEBAIC0xMzcxLDExICsxMzcxLDEyIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiAgIAl3 YWl0X3F1ZXVlX2hlYWRfdCBnbWJ1c193YWl0X3F1ZXVlOwo+ICAgCj4gICAJc3RydWN0IHBjaV9k ZXYgKmJyaWRnZV9kZXY7Cj4gLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmVbSTkxNV9O VU1fRU5HSU5FU107Cj4gKwo+ICAgCS8qIENvbnRleHQgdXNlZCBpbnRlcm5hbGx5IHRvIGlkbGUg dGhlIEdQVSBhbmQgc2V0dXAgaW5pdGlhbCBzdGF0ZSAqLwo+ICAgCXN0cnVjdCBpOTE1X2dlbV9j b250ZXh0ICprZXJuZWxfY29udGV4dDsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZV9jbGFzc1tNQVhfRU5HSU5FX0NMQVNTICsgMV0KPiAtCQkJCQkgICAgW01BWF9FTkdJTkVfSU5T VEFOQ0UgKyAxXTsKPiArCj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmVbSTkxNV9O VU1fRU5HSU5FU107Cj4gKwlzdHJ1Y3QgcmJfcm9vdCB1YWJpX2VuZ2luZXM7Cj4gICAKPiAgIAlz dHJ1Y3QgcmVzb3VyY2UgbWNoX3JlczsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGlu ZGV4IDExYzczYWY5MjU5Ny4uNGQ5OGU4NTk3NjM3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jCj4gQEAgLTMxMDksNyArMzEwOSw3IEBAIGdlbjExX2VuZ2luZV9pcnFfaGFuZGxlcihzdHJ1 Y3QgaW50ZWxfZ3QgKmd0LCBjb25zdCB1OCBjbGFzcywKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmU7Cj4gICAKPiAgIAlpZiAoaW5zdGFuY2UgPD0gTUFYX0VOR0lORV9JTlNUQU5D RSkKPiAtCQllbmdpbmUgPSBndC0+aTkxNS0+ZW5naW5lX2NsYXNzW2NsYXNzXVtpbnN0YW5jZV07 Cj4gKwkJZW5naW5lID0gZ3QtPmVuZ2luZV9jbGFzc1tjbGFzc11baW5zdGFuY2VdOwo+ICAgCWVs c2UKPiAgIAkJZW5naW5lID0gTlVMTDsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BtdS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYwo+IGlu ZGV4IGVmZjg2NDgzYmVjMC4uYmRmNzk2M2EwNDNiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcG11LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bt dS5jCj4gQEAgLTgsNiArOCw3IEBACj4gICAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgo+ ICAgCj4gICAjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lLmgiCj4gKyNpbmNsdWRlICJndC9pbnRl bF9lbmdpbmVfdXNlci5oIgo+ICAgCj4gICAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiAgICNpbmNs dWRlICJpOTE1X3BtdS5oIgo+IEBAIC05MjYsNyArOTI3LDcgQEAgY3JlYXRlX2V2ZW50X2F0dHJp YnV0ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAJCQlpOTE1X2l0ZXIgPQo+ ICAgCQkJCWFkZF9pOTE1X2F0dHIoaTkxNV9pdGVyLCBzdHIsCj4gICAJCQkJCSAgICAgIF9fSTkx NV9QTVVfRU5HSU5FKGVuZ2luZS0+dWFiaV9jbGFzcywKPiAtCQkJCQkJCQllbmdpbmUtPmluc3Rh bmNlLAo+ICsJCQkJCQkJCWVuZ2luZS0+dWFiaV9pbnN0YW5jZSwKPiAgIAkJCQkJCQkJZW5naW5l X2V2ZW50c1tpXS5zYW1wbGUpKTsKPiAgIAo+ICAgCQkJc3RyID0ga2FzcHJpbnRmKEdGUF9LRVJO RUwsICIlcy0lcy51bml0IiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9xdWVyeS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5jCj4gaW5kZXggN2I3 MDE2MTcxMDU3Li43MGIxYWQzOGU2MTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9xdWVyeS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5j Cj4gQEAgLTEyNyw3ICsxMjcsNyBAQCBxdWVyeV9lbmdpbmVfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwKPiAgIAo+ICAgCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlk KSB7Cj4gICAJCWluZm8uZW5naW5lLmVuZ2luZV9jbGFzcyA9IGVuZ2luZS0+dWFiaV9jbGFzczsK PiAtCQlpbmZvLmVuZ2luZS5lbmdpbmVfaW5zdGFuY2UgPSBlbmdpbmUtPmluc3RhbmNlOwo+ICsJ CWluZm8uZW5naW5lLmVuZ2luZV9pbnN0YW5jZSA9IGVuZ2luZS0+dWFiaV9pbnN0YW5jZTsKPiAg IAkJaW5mby5jYXBhYmlsaXRpZXMgPSBlbmdpbmUtPnVhYmlfY2FwYWJpbGl0aWVzOwo+ICAgCj4g ICAJCWlmIChfX2NvcHlfdG9fdXNlcihpbmZvX3B0ciwgJmluZm8sIHNpemVvZihpbmZvKSkpCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaAo+IGluZGV4IGRhMThiOGQ2YjgwYy4uMWQxMTI0NWM0 Yzg3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaAo+IEBAIC02NzcsNyArNjc3LDcg QEAgVFJBQ0VfRVZFTlQoaTkxNV9yZXF1ZXN0X3F1ZXVlLAo+ICAgCQkJICAgX19lbnRyeS0+ZGV2 ID0gcnEtPmk5MTUtPmRybS5wcmltYXJ5LT5pbmRleDsKPiAgIAkJCSAgIF9fZW50cnktPmh3X2lk ID0gcnEtPmdlbV9jb250ZXh0LT5od19pZDsKPiAgIAkJCSAgIF9fZW50cnktPmNsYXNzID0gcnEt PmVuZ2luZS0+dWFiaV9jbGFzczsKPiAtCQkJICAgX19lbnRyeS0+aW5zdGFuY2UgPSBycS0+ZW5n aW5lLT5pbnN0YW5jZTsKPiArCQkJICAgX19lbnRyeS0+aW5zdGFuY2UgPSBycS0+ZW5naW5lLT51 YWJpX2luc3RhbmNlOwo+ICAgCQkJICAgX19lbnRyeS0+Y3R4ID0gcnEtPmZlbmNlLmNvbnRleHQ7 Cj4gICAJCQkgICBfX2VudHJ5LT5zZXFubyA9IHJxLT5mZW5jZS5zZXFubzsKPiAgIAkJCSAgIF9f ZW50cnktPmZsYWdzID0gZmxhZ3M7Cj4gQEAgLTcwNiw3ICs3MDYsNyBAQCBERUNMQVJFX0VWRU5U X0NMQVNTKGk5MTVfcmVxdWVzdCwKPiAgIAkJCSAgIF9fZW50cnktPmRldiA9IHJxLT5pOTE1LT5k cm0ucHJpbWFyeS0+aW5kZXg7Cj4gICAJCQkgICBfX2VudHJ5LT5od19pZCA9IHJxLT5nZW1fY29u dGV4dC0+aHdfaWQ7Cj4gICAJCQkgICBfX2VudHJ5LT5jbGFzcyA9IHJxLT5lbmdpbmUtPnVhYmlf Y2xhc3M7Cj4gLQkJCSAgIF9fZW50cnktPmluc3RhbmNlID0gcnEtPmVuZ2luZS0+aW5zdGFuY2U7 Cj4gKwkJCSAgIF9fZW50cnktPmluc3RhbmNlID0gcnEtPmVuZ2luZS0+dWFiaV9pbnN0YW5jZTsK PiAgIAkJCSAgIF9fZW50cnktPmN0eCA9IHJxLT5mZW5jZS5jb250ZXh0Owo+ICAgCQkJICAgX19l bnRyeS0+c2Vxbm8gPSBycS0+ZmVuY2Uuc2Vxbm87Cj4gICAJCQkgICApLAo+IEBAIC03NTEsNyAr NzUxLDcgQEAgVFJBQ0VfRVZFTlQoaTkxNV9yZXF1ZXN0X2luLAo+ICAgCQkJICAgX19lbnRyeS0+ ZGV2ID0gcnEtPmk5MTUtPmRybS5wcmltYXJ5LT5pbmRleDsKPiAgIAkJCSAgIF9fZW50cnktPmh3 X2lkID0gcnEtPmdlbV9jb250ZXh0LT5od19pZDsKPiAgIAkJCSAgIF9fZW50cnktPmNsYXNzID0g cnEtPmVuZ2luZS0+dWFiaV9jbGFzczsKPiAtCQkJICAgX19lbnRyeS0+aW5zdGFuY2UgPSBycS0+ ZW5naW5lLT5pbnN0YW5jZTsKPiArCQkJICAgX19lbnRyeS0+aW5zdGFuY2UgPSBycS0+ZW5naW5l LT51YWJpX2luc3RhbmNlOwo+ICAgCQkJICAgX19lbnRyeS0+Y3R4ID0gcnEtPmZlbmNlLmNvbnRl eHQ7Cj4gICAJCQkgICBfX2VudHJ5LT5zZXFubyA9IHJxLT5mZW5jZS5zZXFubzsKPiAgIAkJCSAg IF9fZW50cnktPnByaW8gPSBycS0+c2NoZWQuYXR0ci5wcmlvcml0eTsKPiBAQCAtNzgyLDcgKzc4 Miw3IEBAIFRSQUNFX0VWRU5UKGk5MTVfcmVxdWVzdF9vdXQsCj4gICAJCQkgICBfX2VudHJ5LT5k ZXYgPSBycS0+aTkxNS0+ZHJtLnByaW1hcnktPmluZGV4Owo+ICAgCQkJICAgX19lbnRyeS0+aHdf aWQgPSBycS0+Z2VtX2NvbnRleHQtPmh3X2lkOwo+ICAgCQkJICAgX19lbnRyeS0+Y2xhc3MgPSBy cS0+ZW5naW5lLT51YWJpX2NsYXNzOwo+IC0JCQkgICBfX2VudHJ5LT5pbnN0YW5jZSA9IHJxLT5l bmdpbmUtPmluc3RhbmNlOwo+ICsJCQkgICBfX2VudHJ5LT5pbnN0YW5jZSA9IHJxLT5lbmdpbmUt PnVhYmlfaW5zdGFuY2U7Cj4gICAJCQkgICBfX2VudHJ5LT5jdHggPSBycS0+ZmVuY2UuY29udGV4 dDsKPiAgIAkJCSAgIF9fZW50cnktPnNlcW5vID0gcnEtPmZlbmNlLnNlcW5vOwo+ICAgCQkJICAg X19lbnRyeS0+Y29tcGxldGVkID0gaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSk7Cj4gQEAgLTg0 Nyw3ICs4NDcsNyBAQCBUUkFDRV9FVkVOVChpOTE1X3JlcXVlc3Rfd2FpdF9iZWdpbiwKPiAgIAkJ CSAgIF9fZW50cnktPmRldiA9IHJxLT5pOTE1LT5kcm0ucHJpbWFyeS0+aW5kZXg7Cj4gICAJCQkg ICBfX2VudHJ5LT5od19pZCA9IHJxLT5nZW1fY29udGV4dC0+aHdfaWQ7Cj4gICAJCQkgICBfX2Vu dHJ5LT5jbGFzcyA9IHJxLT5lbmdpbmUtPnVhYmlfY2xhc3M7Cj4gLQkJCSAgIF9fZW50cnktPmlu c3RhbmNlID0gcnEtPmVuZ2luZS0+aW5zdGFuY2U7Cj4gKwkJCSAgIF9fZW50cnktPmluc3RhbmNl ID0gcnEtPmVuZ2luZS0+dWFiaV9pbnN0YW5jZTsKPiAgIAkJCSAgIF9fZW50cnktPmN0eCA9IHJx LT5mZW5jZS5jb250ZXh0Owo+ICAgCQkJICAgX19lbnRyeS0+c2Vxbm8gPSBycS0+ZmVuY2Uuc2Vx bm87Cj4gICAJCQkgICBfX2VudHJ5LT5mbGFncyA9IGZsYWdzOwo+IAoKSSByZWFkIGl0LCByZWxh dGl2ZWx5IHJ1c2hlZCwgc2luY2UgcHJlc3N1cmUga2VlcHMgZ2V0dGluZyBhcHBsaWVkISA6LwoK VGhlcmUgYXJlIHNvbWUgZ29vZCBwYXJ0cyBhbmQgaW1wbGVtZW50YXRpb24gbG9va3Mgb2theSwg YnV0IEkgYW0gbm90IApzdXJlIHdlIG5lZWQgYSB0cmVlLiBOb2RlcyBhcmUgYmlnZ2VyIHRoYW4g cG9pbnRlcnMsIG1hbmFnZW1lbnQgY29kZSBpcyAKYmlnZ2VyLCBsb29rdXAgaXMgc2xvd2VyLi4g aXMgaXQgYSB3aW4gYWxsIHRoaW5ncyBjb25zaWRlcmVkPwoKUmVnYXJkcywKClR2cnRrbwpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=