From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 10/38] drm/i915: Store the BIT(engine->id) as the engine's mask Date: Fri, 1 Mar 2019 15:25:29 +0000 Message-ID: <172484d4-52fb-65fa-14e3-4f62f4b43a3f@linux.intel.com> References: <20190301140404.26690-1-chris@chris-wilson.co.uk> <20190301140404.26690-10-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 mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 45F8A6E2F3 for ; Fri, 1 Mar 2019 15:25:31 +0000 (UTC) In-Reply-To: <20190301140404.26690-10-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 Ck9uIDAxLzAzLzIwMTkgMTQ6MDMsIENocmlzIFdpbHNvbiB3cm90ZToKPiBJbiB0aGUgbmV4dCBw YXRjaCwgd2UgYXJlIGludHJvZHVjaW5nIGEgYnJvYWQgdmlydHVhbCBlbmdpbmUgdG8gZW5jb21w YXNzCj4gbXVsdGlwbGUgcGh5c2ljYWwgZW5naW5lcywgbG9zaW5nIHRoZSAxOjEgbmF0dXJlIG9m IEJJVChlbmdpbmUtPmlkKS4gVG8KPiByZWZsZWN0IHRoZSBicm9hZGVyIHNldCBvZiBlbmdpbmVz IGltcGxpZWQgYnkgdGhlIHZpcnR1YWwgaW5zdGFuY2UsIGxldHMKPiBzdG9yZSB0aGUgZnVsbCBi aXRtYXNrLgo+IAo+IHYyOiBVc2UgaW50ZWxfZW5naW5lX21hc2tfdCAocy9yaW5nX21hc2svZW5n aW5lX21hc2svKQo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwu Y29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAg ICAgIHwgIDQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAg ICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jICAgICAgICAg ICAgICAgfCAzOSArKysrKysrKysrKy0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3Jlc2V0LmMgICAgICAgICAgICAgfCAgOCArKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZXZpY2VfaW5mby5jICAgICAgfCAgNiArLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RldmljZV9pbmZvLmggICAgICB8ICA2ICstLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgICAgICAgIHwgMTUgKysrKy0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyAgIHwgIDQgKy0KPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5jICAgICAgICB8ICA4ICsrLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAgICAgICB8IDE4ICsrKystLS0tLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICAgICAgIHwgMTEgKyst LS0tCj4gICAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMgfCAg NiArLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3JlcXVlc3QuYyB8 ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfZ3VjLmMgICAg fCAgNCArLQo+ICAgLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfaGFuZ2NoZWNrLmMg IHwgIDQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9scmMuYyAg ICB8ICA0ICstCj4gICAuLi4vZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX3dvcmthcm91bmRzLmMg ICAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZW5naW5l LmMgIHwgIDEgKwo+ICAgLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNl LmMgIHwgIDIgKy0KPiAgIDE5IGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyksIDcxIGRl bGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGNmMzI1YTAwZDE0 My4uMGRkNjgwY2RiOWNlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIwOTks NyArMjA5OSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmh1Y190 b19pOTE1KHN0cnVjdCBpbnRlbF9odWMgKmh1YykKPiAgIAo+ICAgLyogSXRlcmF0b3Igb3ZlciBz dWJzZXQgb2YgZW5naW5lcyBzZWxlY3RlZCBieSBtYXNrICovCj4gICAjZGVmaW5lIGZvcl9lYWNo X2VuZ2luZV9tYXNrZWQoZW5naW5lX18sIGRldl9wcml2X18sIG1hc2tfXywgdG1wX18pIFwKPiAt CWZvciAoKHRtcF9fKSA9IChtYXNrX18pICYgSU5URUxfSU5GTyhkZXZfcHJpdl9fKS0+cmluZ19t YXNrOyBcCj4gKwlmb3IgKCh0bXBfXykgPSAobWFza19fKSAmIElOVEVMX0lORk8oZGV2X3ByaXZf XyktPmVuZ2luZV9tYXNrOyBcCj4gICAJICAgICAodG1wX18pID8gXAo+ICAgCSAgICAgKChlbmdp bmVfXykgPSAoZGV2X3ByaXZfXyktPmVuZ2luZVtfX21hc2tfbmV4dF9iaXQodG1wX18pXSksIDEg OiBcCj4gICAJICAgICAwOykKPiBAQCAtMjQzMiw3ICsyNDMyLDcgQEAgc3RhdGljIGlubGluZSB1 bnNpZ25lZCBpbnQgaTkxNV9zZ19zZWdtZW50X3NpemUodm9pZCkKPiAgICNkZWZpbmUgQUxMX0VO R0lORVMJKH4wKQo+ICAgCj4gICAjZGVmaW5lIEhBU19FTkdJTkUoZGV2X3ByaXYsIGlkKSBcCj4g LQkoISEoSU5URUxfSU5GTyhkZXZfcHJpdiktPnJpbmdfbWFzayAmIEVOR0lORV9NQVNLKGlkKSkp Cj4gKwkoISEoSU5URUxfSU5GTyhkZXZfcHJpdiktPmVuZ2luZV9tYXNrICYgRU5HSU5FX01BU0so aWQpKSkKPiAgIAo+ICAgI2RlZmluZSBIQVNfQlNEKGRldl9wcml2KQlIQVNfRU5HSU5FKGRldl9w cml2LCBWQ1MpCj4gICAjZGVmaW5lIEhBU19CU0QyKGRldl9wcml2KQlIQVNfRU5HSU5FKGRldl9w cml2LCBWQ1MyKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggN2U3OTY5 MTY2NGU1Li45OTAyMjczOGNjODkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu Ywo+IEBAIC03OTgsNyArNzk4LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0aWFsaXplX3BtbDQo c3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAgKi8KPiAgIHN0YXRpYyB2b2lkIG1h cmtfdGxic19kaXJ0eShzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCj4gICB7Cj4gLQlwcGd0 dC0+cGRfZGlydHlfcmluZ3MgPSBJTlRFTF9JTkZPKHBwZ3R0LT52bS5pOTE1KS0+cmluZ19tYXNr Owo+ICsJcHBndHQtPnBkX2RpcnR5X3JpbmdzID0gSU5URUxfSU5GTyhwcGd0dC0+dm0uaTkxNSkt PmVuZ2luZV9tYXNrOwoKQ291bGQgcmVuYW1lIHBkX2RpcnR5X3JpbmdzIGFzIHdlbGwuCgo+ICAg fQo+ICAgCj4gICAvKiBSZW1vdmVzIGVudHJpZXMgZnJvbSBhIHNpbmdsZSBwYWdlIHRhYmxlLCBy ZWxlYXNpbmcgaXQgaWYgaXQncyBlbXB0eS4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9wY2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiBpbmRl eCBhOTIxMWMzNzBjZDEuLjUyNGY1NTc3MWYyMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BjaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2ku Ywo+IEBAIC05NCw3ICs5NCw3IEBACj4gICAJLmdwdV9yZXNldF9jbG9iYmVyc19kaXNwbGF5ID0g dHJ1ZSwgXAo+ICAgCS5od3NfbmVlZHNfcGh5c2ljYWwgPSAxLCBcCj4gICAJLnVuZmVuY2VkX25l ZWRzX2FsaWdubWVudCA9IDEsIFwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORywgXAo+ICsJ LmVuZ2luZV9tYXNrID0gUkVOREVSX1JJTkcsIFwKCldoYXQgUkVOREVSXypSSU5HKiAmIGNvLCB3 aGlsZSB3ZSBhcmUgY2h1cm5pbmc/CgpDb3VsZCB3ZSB1c2UgdGhlIG5vdC1tdWNoLXJlbWFpbmlu Zy11c2VkIEVOR0lORV9NQVNLIGluIGhlcmU/IExpa2U6CgogICAuZW5naW5lX21hc2sgPSBFTkdJ TkUoUkNTKSB8IC4uIDsKCj4gICAJLmhhc19zbm9vcCA9IHRydWUsIFwKPiAgIAkuaGFzX2NvaGVy ZW50X2dndHQgPSBmYWxzZSwgXAo+ICAgCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLCBcCj4gQEAg LTEzMyw3ICsxMzMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGlu dGVsX2k4NjVnX2luZm8gPSB7Cj4gICAJLm51bV9waXBlcyA9IDIsIFwKPiAgIAkuZGlzcGxheS5o YXNfZ21jaCA9IDEsIFwKPiAgIAkuZ3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkgPSB0cnVlLCBc Cj4gLQkucmluZ19tYXNrID0gUkVOREVSX1JJTkcsIFwKPiArCS5lbmdpbmVfbWFzayA9IFJFTkRF Ul9SSU5HLCBcCj4gICAJLmhhc19zbm9vcCA9IHRydWUsIFwKPiAgIAkuaGFzX2NvaGVyZW50X2dn dHQgPSB0cnVlLCBcCj4gICAJR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsIFwKPiBAQCAtMjEwLDcg KzIxMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfcGlu ZXZpZXdfaW5mbyA9IHsKPiAgIAkuZGlzcGxheS5oYXNfaG90cGx1ZyA9IDEsIFwKPiAgIAkuZGlz cGxheS5oYXNfZ21jaCA9IDEsIFwKPiAgIAkuZ3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkgPSB0 cnVlLCBcCj4gLQkucmluZ19tYXNrID0gUkVOREVSX1JJTkcsIFwKPiArCS5lbmdpbmVfbWFzayA9 IFJFTkRFUl9SSU5HLCBcCj4gICAJLmhhc19zbm9vcCA9IHRydWUsIFwKPiAgIAkuaGFzX2NvaGVy ZW50X2dndHQgPSB0cnVlLCBcCj4gICAJR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsIFwKPiBAQCAt MjM5LDcgKzIzOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50 ZWxfaTk2NWdtX2luZm8gPSB7Cj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9p bmZvIGludGVsX2c0NV9pbmZvID0gewo+ICAgCUdFTjRfRkVBVFVSRVMsCj4gICAJUExBVEZPUk0o SU5URUxfRzQ1KSwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HLAo+ICsJ LmVuZ2luZV9tYXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORywKPiAgIAkuZ3B1X3Jlc2V0X2Ns b2JiZXJzX2Rpc3BsYXkgPSBmYWxzZSwKPiAgIH07Cj4gICAKPiBAQCAtMjQ5LDcgKzI0OSw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfZ200NV9pbmZvID0g ewo+ICAgCS5pc19tb2JpbGUgPSAxLAo+ICAgCS5kaXNwbGF5Lmhhc19mYmMgPSAxLAo+ICAgCS5k aXNwbGF5LnN1cHBvcnRzX3R2ID0gMSwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJT RF9SSU5HLAo+ICsJLmVuZ2luZV9tYXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORywKPiAgIAku Z3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkgPSBmYWxzZSwKPiAgIH07Cj4gICAKPiBAQCAtMjU3 LDcgKzI1Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxf Z200NV9pbmZvID0gewo+ICAgCUdFTig1KSwgXAo+ICAgCS5udW1fcGlwZXMgPSAyLCBcCj4gICAJ LmRpc3BsYXkuaGFzX2hvdHBsdWcgPSAxLCBcCj4gLQkucmluZ19tYXNrID0gUkVOREVSX1JJTkcg fCBCU0RfUklORywgXAo+ICsJLmVuZ2luZV9tYXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORywg XAo+ICAgCS5oYXNfc25vb3AgPSB0cnVlLCBcCj4gICAJLmhhc19jb2hlcmVudF9nZ3R0ID0gdHJ1 ZSwgXAo+ICAgCS8qIGlsayBkb2VzIHN1cHBvcnQgcmM2LCBidXQgd2UgZG8gbm90IGltcGxlbWVu dCBbcG93ZXJdIGNvbnRleHRzICovIFwKPiBAQCAtMjgzLDcgKzI4Myw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaXJvbmxha2VfbV9pbmZvID0gewo+ICAg CS5udW1fcGlwZXMgPSAyLCBcCj4gICAJLmRpc3BsYXkuaGFzX2hvdHBsdWcgPSAxLCBcCj4gICAJ LmRpc3BsYXkuaGFzX2ZiYyA9IDEsIFwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJT RF9SSU5HIHwgQkxUX1JJTkcsIFwKPiArCS5lbmdpbmVfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNE X1JJTkcgfCBCTFRfUklORywgXAo+ICAgCS5oYXNfY29oZXJlbnRfZ2d0dCA9IHRydWUsIFwKPiAg IAkuaGFzX2xsYyA9IDEsIFwKPiAgIAkuaGFzX3JjNiA9IDEsIFwKPiBAQCAtMzI4LDcgKzMyOCw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfc2FuZHlicmlk Z2VfbV9ndDJfaW5mbyA9IHsKPiAgIAkubnVtX3BpcGVzID0gMywgXAo+ICAgCS5kaXNwbGF5Lmhh c19ob3RwbHVnID0gMSwgXAo+ICAgCS5kaXNwbGF5Lmhhc19mYmMgPSAxLCBcCj4gLQkucmluZ19t YXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HLCBcCj4gKwkuZW5naW5lX21h c2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcsIFwKPiAgIAkuaGFzX2NvaGVy ZW50X2dndHQgPSB0cnVlLCBcCj4gICAJLmhhc19sbGMgPSAxLCBcCj4gICAJLmhhc19yYzYgPSAx LCBcCj4gQEAgLTM4OSw3ICszODksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rldmlj ZV9pbmZvIGludGVsX3ZhbGxleXZpZXdfaW5mbyA9IHsKPiAgIAkucHBndHQgPSBJTlRFTF9QUEdU VF9GVUxMLAo+ICAgCS5oYXNfc25vb3AgPSB0cnVlLAo+ICAgCS5oYXNfY29oZXJlbnRfZ2d0dCA9 IGZhbHNlLAo+IC0JLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklO RywKPiArCS5lbmdpbmVfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklORywK PiAgIAkuZGlzcGxheV9tbWlvX29mZnNldCA9IFZMVl9ESVNQTEFZX0JBU0UsCj4gICAJR0VOX0RF RkFVTFRfUEFHRV9TSVpFUywKPiAgIAlHRU5fREVGQVVMVF9QSVBFT0ZGU0VUUywKPiBAQCAtMzk4 LDcgKzM5OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxf dmFsbGV5dmlld19pbmZvID0gewo+ICAgCj4gICAjZGVmaW5lIEc3NV9GRUFUVVJFUyAgXAo+ICAg CUdFTjdfRkVBVFVSRVMsIFwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5H IHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HLCBcCj4gKwkuZW5naW5lX21hc2sgPSBSRU5ERVJfUklO RyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HLCBcCj4gICAJLmRpc3BsYXkuaGFz X2RkaSA9IDEsIFwKPiAgIAkuaGFzX2ZwZ2FfZGJnID0gMSwgXAo+ICAgCS5kaXNwbGF5Lmhhc19w c3IgPSAxLCBcCj4gQEAgLTQ2Miw3ICs0NjIsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2RldmljZV9pbmZvIGludGVsX2Jyb2Fkd2VsbF9yc3ZkX2luZm8gPSB7Cj4gICBzdGF0aWMgY29u c3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2Jyb2Fkd2VsbF9ndDNfaW5mbyA9IHsK PiAgIAlCRFdfUExBVEZPUk0sCj4gICAJLmd0ID0gMywKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJf UklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HIHwgQlNEMl9SSU5HLAo+ICsJ LmVuZ2luZV9tYXNrID0KPiArCQlSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcgfCBW RUJPWF9SSU5HIHwgQlNEMl9SSU5HLAo+ICAgfTsKPiAgIAo+ICAgc3RhdGljIGNvbnN0IHN0cnVj dCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9jaGVycnl2aWV3X2luZm8gPSB7Cj4gQEAgLTQ3MSw3 ICs0NzIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2No ZXJyeXZpZXdfaW5mbyA9IHsKPiAgIAkubnVtX3BpcGVzID0gMywKPiAgIAkuZGlzcGxheS5oYXNf aG90cGx1ZyA9IDEsCj4gICAJLmlzX2xwID0gMSwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklO RyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HLAo+ICsJLmVuZ2luZV9tYXNrID0g UkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORywKPiAgIAkuaGFz XzY0Yml0X3JlbG9jID0gMSwKPiAgIAkuaGFzX3J1bnRpbWVfcG0gPSAxLAo+ICAgCS5oYXNfcmM2 ID0gMSwKPiBAQCAtNTIxLDcgKzUyMiw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2 aWNlX2luZm8gaW50ZWxfc2t5bGFrZV9ndDJfaW5mbyA9IHsKPiAgIAo+ICAgI2RlZmluZSBTS0xf R1QzX1BMVVNfUExBVEZPUk0gXAo+ICAgCVNLTF9QTEFURk9STSwgXAo+IC0JLnJpbmdfbWFzayA9 IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklORyB8IFZFQk9YX1JJTkcgfCBCU0QyX1JJ TkcKPiArCS5lbmdpbmVfbWFzayA9IFwKPiArCQlSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxU X1JJTkcgfCBWRUJPWF9SSU5HIHwgQlNEMl9SSU5HCj4gICAKPiAgIAo+ICAgc3RhdGljIGNvbnN0 IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9za3lsYWtlX2d0M19pbmZvID0gewo+IEBA IC01MzgsNyArNTQwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBp bnRlbF9za3lsYWtlX2d0NF9pbmZvID0gewo+ICAgCUdFTig5KSwgXAo+ICAgCS5pc19scCA9IDEs IFwKPiAgIAkuZGlzcGxheS5oYXNfaG90cGx1ZyA9IDEsIFwKPiAtCS5yaW5nX21hc2sgPSBSRU5E RVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HLCBcCj4gKwkuZW5naW5l X21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HLCBc Cj4gICAJLm51bV9waXBlcyA9IDMsIFwKPiAgIAkuaGFzXzY0Yml0X3JlbG9jID0gMSwgXAo+ICAg CS5kaXNwbGF5Lmhhc19kZGkgPSAxLCBcCj4gQEAgLTU5Miw3ICs1OTQsOCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2thYnlsYWtlX2d0Ml9pbmZvID0gewo+ ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9rYWJ5bGFrZV9n dDNfaW5mbyA9IHsKPiAgIAlLQkxfUExBVEZPUk0sCj4gICAJLmd0ID0gMywKPiAtCS5yaW5nX21h c2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HIHwgQlNE Ml9SSU5HLAo+ICsJLmVuZ2luZV9tYXNrID0KPiArCQlSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwg QkxUX1JJTkcgfCBWRUJPWF9SSU5HIHwgQlNEMl9SSU5HLAo+ICAgfTsKPiAgIAo+ICAgI2RlZmlu ZSBDRkxfUExBVEZPUk0gXAo+IEBAIC02MTIsNyArNjE1LDggQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9jb2ZmZWVsYWtlX2d0Ml9pbmZvID0gewo+ICAgc3Rh dGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9jb2ZmZWVsYWtlX2d0M19p bmZvID0gewo+ICAgCUNGTF9QTEFURk9STSwKPiAgIAkuZ3QgPSAzLAo+IC0JLnJpbmdfbWFzayA9 IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklORyB8IFZFQk9YX1JJTkcgfCBCU0QyX1JJ TkcsCj4gKwkuZW5naW5lX21hc2sgPQo+ICsJCVJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRf UklORyB8IFZFQk9YX1JJTkcgfCBCU0QyX1JJTkcsCj4gICB9Owo+ICAgCj4gICAjZGVmaW5lIEdF TjEwX0ZFQVRVUkVTIFwKPiBAQCAtNjU1LDcgKzY1OSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg aW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaWNlbGFrZV8xMV9pbmZvID0gewo+ICAgCUdFTjExX0ZF QVRVUkVTLAo+ICAgCVBMQVRGT1JNKElOVEVMX0lDRUxBS0UpLAo+ICAgCS5pc19hbHBoYV9zdXBw b3J0ID0gMSwKPiAtCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hf UklORyB8IEJTRF9SSU5HIHwgQlNEM19SSU5HLAo+ICsJLmVuZ2luZV9tYXNrID0KPiArCQlSRU5E RVJfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORyB8IEJTRF9SSU5HIHwgQlNEM19SSU5HLAo+ ICAgfTsKPiAgIAo+ICAgI3VuZGVmIEdFTgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3Jlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jlc2V0LmMKPiBp bmRleCA1NWQ2MTIzZGJiYTQuLmZjNWM1YTdlNGRmYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3Jlc2V0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3Jlc2V0LmMKPiBAQCAtNjkyLDcgKzY5Miw3IEBAIHN0YXRpYyBpbnQgZ3RfcmVzZXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHVuc2lnbmVkIGludCBzdGFsbGVkX21hc2spCj4gICAJ CXJldHVybiBlcnI7Cj4gICAKPiAgIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkK PiAtCQlpbnRlbF9lbmdpbmVfcmVzZXQoZW5naW5lLCBzdGFsbGVkX21hc2sgJiBFTkdJTkVfTUFT SyhpZCkpOwo+ICsJCWludGVsX2VuZ2luZV9yZXNldChlbmdpbmUsIHN0YWxsZWRfbWFzayAmIGVu Z2luZS0+bWFzayk7Cj4gICAKPiAgIAlpOTE1X2dlbV9yZXN0b3JlX2ZlbmNlcyhpOTE1KTsKPiAg IAo+IEBAIC0xMDU3LDcgKzEwNTcsNyBAQCB2b2lkIGk5MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsCj4gICBzdGF0aWMgaW5saW5lIGludCBpbnRlbF9ndF9yZXNldF9lbmdp bmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gICAJCQkJCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAtCXJldHVybiBpbnRlbF9ncHVfcmVzZXQoaTkxNSwg aW50ZWxfZW5naW5lX2ZsYWcoZW5naW5lKSk7Cj4gKwlyZXR1cm4gaW50ZWxfZ3B1X3Jlc2V0KGk5 MTUsIGVuZ2luZS0+bWFzayk7Cj4gICB9Cj4gICAKPiAgIC8qKgo+IEBAIC0xMjQxLDcgKzEyNDEs NyBAQCB2b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LAo+ICAgCSAqLwo+ICAgCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKPiAg IAo+IC0JZW5naW5lX21hc2sgJj0gSU5URUxfSU5GTyhpOTE1KS0+cmluZ19tYXNrOwo+ICsJZW5n aW5lX21hc2sgJj0gSU5URUxfSU5GTyhpOTE1KS0+ZW5naW5lX21hc2s7Cj4gICAKPiAgIAlpZiAo ZmxhZ3MgJiBJOTE1X0VSUk9SX0NBUFRVUkUpIHsKPiAgIAkJaTkxNV9jYXB0dXJlX2Vycm9yX3N0 YXRlKGk5MTUsIGVuZ2luZV9tYXNrLCBtc2cpOwo+IEBAIC0xMjYwLDcgKzEyNjAsNyBAQCB2b2lk IGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICAgCQkJ CWNvbnRpbnVlOwo+ICAgCj4gICAJCQlpZiAoaTkxNV9yZXNldF9lbmdpbmUoZW5naW5lLCBtc2cp ID09IDApCj4gLQkJCQllbmdpbmVfbWFzayAmPSB+aW50ZWxfZW5naW5lX2ZsYWcoZW5naW5lKTsK PiArCQkJCWVuZ2luZV9tYXNrICY9IH5lbmdpbmUtPm1hc2s7Cj4gICAKPiAgIAkJCWNsZWFyX2Jp dChJOTE1X1JFU0VUX0VOR0lORSArIGVuZ2luZS0+aWQsCj4gICAJCQkJICAmZXJyb3ItPmZsYWdz KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKPiBpbmRleCA4NTVh NTA3NGFkNzcuLjYyODM1MDZlODliNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZXZpY2VfaW5mby5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGV2aWNlX2luZm8uYwo+IEBAIC03MzgsNyArNzM4LDcgQEAgdm9pZCBpbnRlbF9kZXZpY2VfaW5m b19ydW50aW1lX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCQly dW50aW1lLT5udW1fc2NhbGVyc1tQSVBFX0NdID0gMTsKPiAgIAl9Cj4gICAKPiAtCUJVSUxEX0JV R19PTihJOTE1X05VTV9FTkdJTkVTID4gQklUU19QRVJfVFlQRShpbnRlbF9yaW5nX21hc2tfdCkp Owo+ICsJQlVJTERfQlVHX09OKEJJVFNfUEVSX1RZUEUoaW50ZWxfZW5naW5lX21hc2tfdCkgPCBJ OTE1X05VTV9FTkdJTkVTKTsKPiAgIAo+ICAgCWlmIChJU19HRU4oZGV2X3ByaXYsIDExKSkKPiAg IAkJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkKPiBAQCAtODg3LDcgKzg4Nyw3IEBAIHZv aWQgaW50ZWxfZGV2aWNlX2luZm9faW5pdF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAgIAkJCWNvbnRpbnVlOwo+ICAgCj4gICAJCWlmICghKEJJVChpKSAmIFJVTlRJ TUVfSU5GTyhkZXZfcHJpdiktPnZkYm94X2VuYWJsZSkpIHsKPiAtCQkJaW5mby0+cmluZ19tYXNr ICY9IH5FTkdJTkVfTUFTSyhfVkNTKGkpKTsKPiArCQkJaW5mby0+ZW5naW5lX21hc2sgJj0gfkVO R0lORV9NQVNLKF9WQ1MoaSkpOwo+ICAgCQkJRFJNX0RFQlVHX0RSSVZFUigidmNzJXUgZnVzZWQg b2ZmXG4iLCBpKTsKPiAgIAkJCWNvbnRpbnVlOwo+ICAgCQl9Cj4gQEAgLTkwNiw3ICs5MDYsNyBA QCB2b2lkIGludGVsX2RldmljZV9pbmZvX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gICAJCQljb250aW51ZTsKPiAgIAo+ICAgCQlpZiAoIShCSVQoaSkgJiBS VU5USU1FX0lORk8oZGV2X3ByaXYpLT52ZWJveF9lbmFibGUpKSB7Cj4gLQkJCWluZm8tPnJpbmdf bWFzayAmPSB+RU5HSU5FX01BU0soX1ZFQ1MoaSkpOwo+ICsJCQlpbmZvLT5lbmdpbmVfbWFzayAm PSB+RU5HSU5FX01BU0soX1ZFQ1MoaSkpOwo+ICAgCQkJRFJNX0RFQlVHX0RSSVZFUigidmVjcyV1 IGZ1c2VkIG9mZlxuIiwgaSk7Cj4gICAJCX0KPiAgIAl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZXZpY2VfaW5mby5oCj4gaW5kZXggZThiODY2MWRmNzQ2Li4wNDdkMTBiZGQ0NTUgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKPiBAQCAtMTUwLDE0 ICsxNTAsMTQgQEAgc3RydWN0IHNzZXVfZGV2X2luZm8gewo+ICAgCXU4IGV1X21hc2tbR0VOX01B WF9TTElDRVMgKiBHRU5fTUFYX1NVQlNMSUNFU107Cj4gICB9Owo+ICAgCj4gLXR5cGVkZWYgdTgg aW50ZWxfcmluZ19tYXNrX3Q7Cj4gK3R5cGVkZWYgdTggaW50ZWxfZW5naW5lX21hc2tfdDsKPiAg IAo+ICAgc3RydWN0IGludGVsX2RldmljZV9pbmZvIHsKPiAgIAl1MTYgZ2VuX21hc2s7Cj4gICAK PiAgIAl1OCBnZW47Cj4gICAJdTggZ3Q7IC8qIEdUIG51bWJlciwgMCBpZiB1bmRlZmluZWQgKi8K PiAtCWludGVsX3JpbmdfbWFza190IHJpbmdfbWFzazsgLyogUmluZ3Mgc3VwcG9ydGVkIGJ5IHRo ZSBIVyAqLwo+ICsJaW50ZWxfZW5naW5lX21hc2tfdCBlbmdpbmVfbWFzazsgLyogRW5naW5lcyBz dXBwb3J0ZWQgYnkgdGhlIEhXICovCj4gICAKPiAgIAllbnVtIGludGVsX3BsYXRmb3JtIHBsYXRm b3JtOwo+ICAgCXUzMiBwbGF0Zm9ybV9tYXNrOwo+IEBAIC0yMDAsNyArMjAwLDcgQEAgc3RydWN0 IGludGVsX3J1bnRpbWVfaW5mbyB7Cj4gICAJdTggbnVtX3Nwcml0ZXNbSTkxNV9NQVhfUElQRVNd Owo+ICAgCXU4IG51bV9zY2FsZXJzW0k5MTVfTUFYX1BJUEVTXTsKPiAgIAo+IC0JdTggbnVtX3Jp bmdzOwo+ICsJdTggbnVtX2VuZ2luZXM7Cj4gICAKPiAgIAkvKiBTbGljZS9zdWJzbGljZS9FVSBp bmZvICovCj4gICAJc3RydWN0IHNzZXVfZGV2X2luZm8gc3NldTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9lbmdpbmVfY3MuYwo+IGluZGV4IDRmYzdlMmFjNjI3OC4uODIyNjg3MWM3NzgxIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBAQCAtMzEzLDcgKzMx MywxMCBAQCBpbnRlbF9lbmdpbmVfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICAgCWlmICghZW5naW5lKQo+ICAgCQlyZXR1cm4gLUVOT01FTTsKPiAgIAo+ICsJQlVJ TERfQlVHX09OKEJJVFNfUEVSX1RZUEUoZW5naW5lLT5tYXNrKSA8IEk5MTVfTlVNX0VOR0lORVMp Owo+ICsKPiAgIAllbmdpbmUtPmlkID0gaWQ7Cj4gKwllbmdpbmUtPm1hc2sgPSBCSVQoaWQpOwoK Q291bGQgdXNlIEVOR0lORV9NQVNLIGp1c3QgYmVjYXVzZSB3ZSBjYW4/Cgo+ICAgCWVuZ2luZS0+ aTkxNSA9IGRldl9wcml2Owo+ICAgCV9fc3ByaW50X2VuZ2luZV9uYW1lKGVuZ2luZS0+bmFtZSwg aW5mbyk7Cj4gICAJZW5naW5lLT5od19pZCA9IGVuZ2luZS0+Z3VjX2lkID0gaW5mby0+aHdfaWQ7 Cj4gQEAgLTM1NSwxNSArMzU4LDE1IEBAIGludGVsX2VuZ2luZV9zZXR1cChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICBpbnQgaW50ZWxfZW5naW5lc19pbml0X21taW8oc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF9k ZXZpY2VfaW5mbyAqZGV2aWNlX2luZm8gPSBta3dyaXRlX2RldmljZV9pbmZvKGRldl9wcml2KTsK PiAtCWNvbnN0IHVuc2lnbmVkIGludCByaW5nX21hc2sgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+ cmluZ19tYXNrOwo+ICsJY29uc3QgdW5zaWduZWQgaW50IGVuZ2luZV9tYXNrID0gSU5URUxfSU5G TyhkZXZfcHJpdiktPmVuZ2luZV9tYXNrOwo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKPiAgIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKPiAgIAl1bnNpZ25lZCBpbnQgbWFz ayA9IDA7Cj4gICAJdW5zaWduZWQgaW50IGk7Cj4gICAJaW50IGVycjsKPiAgIAo+IC0JV0FSTl9P TihyaW5nX21hc2sgPT0gMCk7Cj4gLQlXQVJOX09OKHJpbmdfbWFzayAmCj4gKwlXQVJOX09OKGVu Z2luZV9tYXNrID09IDApOwo+ICsJV0FSTl9PTihlbmdpbmVfbWFzayAmCj4gICAJCUdFTk1BU0so QklUU19QRVJfVFlQRShtYXNrKSAtIDEsIEk5MTVfTlVNX0VOR0lORVMpKTsKPiAgIAo+ICAgCWlm IChpOTE1X2luamVjdF9sb2FkX2ZhaWx1cmUoKSkKPiBAQCAtMzg1LDggKzM4OCw4IEBAIGludCBp bnRlbF9lbmdpbmVzX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gICAJICogYXJlIGFkZGVkIHRvIHRoZSBkcml2ZXIgYnkgYSB3YXJuaW5nIGFuZCBkaXNhYmxp bmcgdGhlIGZvcmdvdHRlbgo+ICAgCSAqIGVuZ2luZXMuCj4gICAJICovCj4gLQlpZiAoV0FSTl9P TihtYXNrICE9IHJpbmdfbWFzaykpCj4gLQkJZGV2aWNlX2luZm8tPnJpbmdfbWFzayA9IG1hc2s7 Cj4gKwlpZiAoV0FSTl9PTihtYXNrICE9IGVuZ2luZV9tYXNrKSkKPiArCQlkZXZpY2VfaW5mby0+ ZW5naW5lX21hc2sgPSBtYXNrOwo+ICAgCj4gICAJLyogV2UgYWx3YXlzIHByZXN1bWUgd2UgaGF2 ZSBhdCBsZWFzdCBSQ1MgYXZhaWxhYmxlIGZvciBsYXRlciBwcm9iaW5nICovCj4gICAJaWYgKFdB Uk5fT04oIUhBU19FTkdJTkUoZGV2X3ByaXYsIFJDUykpKSB7Cj4gQEAgLTM5NCw3ICszOTcsNyBA QCBpbnQgaW50ZWxfZW5naW5lc19pbml0X21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICAgCQlnb3RvIGNsZWFudXA7Cj4gICAJfQo+ICAgCj4gLQlSVU5USU1FX0lORk8o ZGV2X3ByaXYpLT5udW1fcmluZ3MgPSBod2VpZ2h0MzIobWFzayk7Cj4gKwlSVU5USU1FX0lORk8o ZGV2X3ByaXYpLT5udW1fZW5naW5lcyA9IGh3ZWlnaHQzMihtYXNrKTsKPiAgIAo+ICAgCWk5MTVf Y2hlY2tfYW5kX2NsZWFyX2ZhdWx0cyhkZXZfcHJpdik7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKPiBpbmRleCA1NmJhMmZjYmFiZTYuLjExOWQz MzI2YmI1ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3Vi bWlzc2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Np b24uYwo+IEBAIC0xMDMwLDcgKzEwMzAsNyBAQCBzdGF0aWMgaW50IGd1Y19jbGllbnRzX2NyZWF0 ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gICAJR0VNX0JVR19PTihndWMtPnByZWVtcHRfY2xp ZW50KTsKPiAgIAo+ICAgCWNsaWVudCA9IGd1Y19jbGllbnRfYWxsb2MoZGV2X3ByaXYsCj4gLQkJ CQkgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5yaW5nX21hc2ssCj4gKwkJCQkgIElOVEVMX0lORk8o ZGV2X3ByaXYpLT5lbmdpbmVfbWFzaywKPiAgIAkJCQkgIEdVQ19DTElFTlRfUFJJT1JJVFlfS01E X05PUk1BTCwKPiAgIAkJCQkgIGRldl9wcml2LT5rZXJuZWxfY29udGV4dCk7Cj4gICAJaWYgKElT X0VSUihjbGllbnQpKSB7Cj4gQEAgLTEwNDEsNyArMTA0MSw3IEBAIHN0YXRpYyBpbnQgZ3VjX2Ns aWVudHNfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiAgIAo+ICAgCWlmIChkZXZfcHJp di0+cHJlZW1wdF9jb250ZXh0KSB7Cj4gICAJCWNsaWVudCA9IGd1Y19jbGllbnRfYWxsb2MoZGV2 X3ByaXYsCj4gLQkJCQkJICBJTlRFTF9JTkZPKGRldl9wcml2KS0+cmluZ19tYXNrLAo+ICsJCQkJ CSAgSU5URUxfSU5GTyhkZXZfcHJpdiktPmVuZ2luZV9tYXNrLAo+ICAgCQkJCQkgIEdVQ19DTElF TlRfUFJJT1JJVFlfS01EX0hJR0gsCj4gICAJCQkJCSAgZGV2X3ByaXYtPnByZWVtcHRfY29udGV4 dCk7Cj4gICAJCWlmIChJU19FUlIoY2xpZW50KSkgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hhbmdjaGVjay5jCj4gaW5kZXggZjFkOGRmYzU4MDQ5Li5jNTA4ODc1ZDUyMzYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYwo+IEBAIC0xMjAsNyArMTIwLDcgQEAg ZW5naW5lX3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTY0IGFjdGhkKQo+ ICAgCSAqLwo+ICAgCXRtcCA9IEk5MTVfUkVBRF9DVEwoZW5naW5lKTsKPiAgIAlpZiAodG1wICYg UklOR19XQUlUKSB7Cj4gLQkJaTkxNV9oYW5kbGVfZXJyb3IoZGV2X3ByaXYsIEJJVChlbmdpbmUt PmlkKSwgMCwKPiArCQlpOTE1X2hhbmRsZV9lcnJvcihkZXZfcHJpdiwgZW5naW5lLT5tYXNrLCAw LAo+ICAgCQkJCSAgInN0dWNrIHdhaXQgb24gJXMiLCBlbmdpbmUtPm5hbWUpOwo+ICAgCQlJOTE1 X1dSSVRFX0NUTChlbmdpbmUsIHRtcCk7Cj4gICAJCXJldHVybiBFTkdJTkVfV0FJVF9LSUNLOwo+ IEBAIC0yODIsMTMgKzI4MiwxMyBAQCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2Vk KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgIAkJaGFuZ2NoZWNrX3N0b3JlX3NhbXBsZShl bmdpbmUsICZoYyk7Cj4gICAKPiAgIAkJaWYgKGhjLnN0YWxsZWQpIHsKPiAtCQkJaHVuZyB8PSBp bnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpOwo+ICsJCQlodW5nIHw9IGVuZ2luZS0+bWFzazsKPiAg IAkJCWlmIChoYy5hY3Rpb24gIT0gRU5HSU5FX0RFQUQpCj4gLQkJCQlzdHVjayB8PSBpbnRlbF9l bmdpbmVfZmxhZyhlbmdpbmUpOwo+ICsJCQkJc3R1Y2sgfD0gZW5naW5lLT5tYXNrOwo+ICAgCQl9 Cj4gICAKPiAgIAkJaWYgKGhjLndlZGdlZCkKPiAtCQkJd2VkZ2VkIHw9IGludGVsX2VuZ2luZV9m bGFnKGVuZ2luZSk7Cj4gKwkJCXdlZGdlZCB8PSBlbmdpbmUtPm1hc2s7Cj4gICAJfQo+ICAgCj4g ICAJaWYgKEdFTV9TSE9XX0RFQlVHKCkgJiYgKGh1bmcgfCBzdHVjaykpIHsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXggMWI5NmIwOTYwYWRjLi5lNzg1OTRl Y2JhNmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gQEAg LTE2OTIsOCArMTY5Miw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IG1pX3NldF9jb250ZXh0KHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgZmxhZ3MpCj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUgPSBycS0+aTkxNTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUg PSBycS0+ZW5naW5lOwo+ICAgCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+IC0JY29uc3QgaW50 IG51bV9yaW5ncyA9Cj4gLQkJSVNfSFNXX0dUMShpOTE1KSA/IFJVTlRJTUVfSU5GTyhpOTE1KS0+ bnVtX3JpbmdzIC0gMSA6IDA7Cj4gKwljb25zdCBpbnQgbnVtX2VuZ2luZXMgPQo+ICsJCUlTX0hT V19HVDEoaTkxNSkgPyBSVU5USU1FX0lORk8oaTkxNSktPm51bV9lbmdpbmVzIC0gMSA6IDA7Cj4g ICAJYm9vbCBmb3JjZV9yZXN0b3JlID0gZmFsc2U7Cj4gICAJaW50IGxlbjsKPiAgIAl1MzIgKmNz Owo+IEBAIC0xNzA3LDcgKzE3MDcsNyBAQCBzdGF0aWMgaW5saW5lIGludCBtaV9zZXRfY29udGV4 dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyIGZsYWdzKQo+ICAgCj4gICAJbGVuID0gNDsK PiAgIAlpZiAoSVNfR0VOKGk5MTUsIDcpKQo+IC0JCWxlbiArPSAyICsgKG51bV9yaW5ncyA/IDQq bnVtX3JpbmdzICsgNiA6IDApOwo+ICsJCWxlbiArPSAyICsgKG51bV9lbmdpbmVzID8gNCAqIG51 bV9lbmdpbmVzICsgNiA6IDApOwo+ICAgCWlmIChmbGFncyAmIE1JX0ZPUkNFX1JFU1RPUkUpIHsK PiAgIAkJR0VNX0JVR19PTihmbGFncyAmIE1JX1JFU1RPUkVfSU5ISUJJVCk7Cj4gICAJCWZsYWdz ICY9IH5NSV9GT1JDRV9SRVNUT1JFOwo+IEBAIC0xNzIyLDEwICsxNzIyLDEwIEBAIHN0YXRpYyBp bmxpbmUgaW50IG1pX3NldF9jb250ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgZmxh Z3MpCj4gICAJLyogV2FQcm9ncmFtTWlBcmJPbk9mZkFyb3VuZE1pU2V0Q29udGV4dDppdmIsdmx2 LGhzdyxiZHcsY2h2ICovCj4gICAJaWYgKElTX0dFTihpOTE1LCA3KSkgewo+ICAgCQkqY3MrKyA9 IE1JX0FSQl9PTl9PRkYgfCBNSV9BUkJfRElTQUJMRTsKPiAtCQlpZiAobnVtX3JpbmdzKSB7Cj4g KwkJaWYgKG51bV9lbmdpbmVzKSB7Cj4gICAJCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpzaWdu YWxsZXI7Cj4gICAKPiAtCQkJKmNzKysgPSBNSV9MT0FEX1JFR0lTVEVSX0lNTShudW1fcmluZ3Mp Owo+ICsJCQkqY3MrKyA9IE1JX0xPQURfUkVHSVNURVJfSU1NKG51bV9lbmdpbmVzKTsKPiAgIAkJ CWZvcl9lYWNoX2VuZ2luZShzaWduYWxsZXIsIGk5MTUsIGlkKSB7Cj4gICAJCQkJaWYgKHNpZ25h bGxlciA9PSBlbmdpbmUpCj4gICAJCQkJCWNvbnRpbnVlOwo+IEBAIC0xNzY4LDExICsxNzY4LDEx IEBAIHN0YXRpYyBpbmxpbmUgaW50IG1pX3NldF9jb250ZXh0KHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJxLCB1MzIgZmxhZ3MpCj4gICAJKmNzKysgPSBNSV9OT09QOwo+ICAgCj4gICAJaWYgKElTX0dF TihpOTE1LCA3KSkgewo+IC0JCWlmIChudW1fcmluZ3MpIHsKPiArCQlpZiAobnVtX2VuZ2luZXMp IHsKPiAgIAkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnNpZ25hbGxlcjsKPiAgIAkJCWk5MTVf cmVnX3QgbGFzdF9yZWcgPSB7fTsgLyoga2VlcCBnY2MgcXVpZXQgKi8KPiAgIAo+IC0JCQkqY3Mr KyA9IE1JX0xPQURfUkVHSVNURVJfSU1NKG51bV9yaW5ncyk7Cj4gKwkJCSpjcysrID0gTUlfTE9B RF9SRUdJU1RFUl9JTU0obnVtX2VuZ2luZXMpOwo+ICAgCQkJZm9yX2VhY2hfZW5naW5lKHNpZ25h bGxlciwgaTkxNSwgaWQpIHsKPiAgIAkJCQlpZiAoc2lnbmFsbGVyID09IGVuZ2luZSkKPiAgIAkJ CQkJY29udGludWU7Cj4gQEAgLTE4NTksOCArMTg1OSw4IEBAIHN0YXRpYyBpbnQgc3dpdGNoX2Nv bnRleHQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gICAJCQkJZ290byBlcnI7Cj4gICAJCX0g d2hpbGUgKC0tbG9vcHMpOwo+ICAgCj4gLQkJaWYgKGludGVsX2VuZ2luZV9mbGFnKGVuZ2luZSkg JiBwcGd0dC0+cGRfZGlydHlfcmluZ3MpIHsKPiAtCQkJdW53aW5kX21tID0gaW50ZWxfZW5naW5l X2ZsYWcoZW5naW5lKTsKPiArCQlpZiAocHBndHQtPnBkX2RpcnR5X3JpbmdzICYgZW5naW5lLT5t YXNrKSB7Cj4gKwkJCXVud2luZF9tbSA9IGVuZ2luZS0+bWFzazsKPiAgIAkJCXBwZ3R0LT5wZF9k aXJ0eV9yaW5ncyAmPSB+dW53aW5kX21tOwo+ICAgCQkJaHdfZmxhZ3MgPSBNSV9GT1JDRV9SRVNU T1JFOwo+ICAgCQl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGlu ZGV4IDJlNzI2NDExOWVjNC4uODUwYWQ4OTI4MzZjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaAo+IEBAIC0xMCwxMiArMTAsMTIgQEAKPiAgICNpbmNsdWRlIDxs aW51eC9zZXFsb2NrLmg+Cj4gICAKPiAgICNpbmNsdWRlICJpOTE1X2dlbV9iYXRjaF9wb29sLmgi Cj4gLQo+IC0jaW5jbHVkZSAiaTkxNV9yZWcuaCIKPiAgICNpbmNsdWRlICJpOTE1X3BtdS5oIgo+ ICsjaW5jbHVkZSAiaTkxNV9yZWcuaCIKPiAgICNpbmNsdWRlICJpOTE1X3JlcXVlc3QuaCIKPiAg ICNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCj4gICAjaW5jbHVkZSAiaTkxNV90aW1lbGluZS5o Igo+ICsjaW5jbHVkZSAiaW50ZWxfZGV2aWNlX2luZm8uaCIKPiAgICNpbmNsdWRlICJpbnRlbF9n cHVfY29tbWFuZHMuaCIKPiAgICNpbmNsdWRlICJpbnRlbF93b3JrYXJvdW5kcy5oIgo+ICAgCj4g QEAgLTMzNCw2ICszMzQsNyBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKPiAgIAllbnVtIGlu dGVsX2VuZ2luZV9pZCBpZDsKPiAgIAl1bnNpZ25lZCBpbnQgaHdfaWQ7Cj4gICAJdW5zaWduZWQg aW50IGd1Y19pZDsKPiArCWludGVsX2VuZ2luZV9tYXNrX3QgbWFzazsKPiAgIAo+ICAgCXU4IHVh YmlfaWQ7Cj4gICAJdTggdWFiaV9jbGFzczsKPiBAQCAtNjY4LDEyICs2NjksNiBAQCBleGVjbGlz dHNfcG9ydF9jb21wbGV0ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4 ZWNsaXN0cywKPiAgIAlyZXR1cm4gcG9ydDsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgaW5saW5lIHVu c2lnbmVkIGludAo+IC1pbnRlbF9lbmdpbmVfZmxhZyhjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCj4gLXsKPiAtCXJldHVybiBCSVQoZW5naW5lLT5pZCk7Cj4gLX0KPiAtCj4g ICBzdGF0aWMgaW5saW5lIHUzMgo+ICAgaW50ZWxfcmVhZF9zdGF0dXNfcGFnZShjb25zdCBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCByZWcpCj4gICB7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCj4gaW5kZXggYzdl YTM1MzUyNjRhLi4xYzYwOGI2MGM1NWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKPiBAQCAtNTU2LDcgKzU1Niw3IEBAIHN0 YXRpYyBpbnQgaWd0X2N0eF9leGVjKHZvaWQgKmFyZykKPiAgIAkJbmNvbnRleHRzKys7Cj4gICAJ fQo+ICAgCXByX2luZm8oIlN1Ym1pdHRlZCAlbHUgY29udGV4dHMgKGFjcm9zcyAldSBlbmdpbmVz KSwgZmlsbGluZyAlbHUgZHdvcmRzXG4iLAo+IC0JCW5jb250ZXh0cywgUlVOVElNRV9JTkZPKGk5 MTUpLT5udW1fcmluZ3MsIG5kd29yZHMpOwo+ICsJCW5jb250ZXh0cywgUlVOVElNRV9JTkZPKGk5 MTUpLT5udW1fZW5naW5lcywgbmR3b3Jkcyk7Cj4gICAKPiAgIAlkdyA9IDA7Cj4gICAJbGlzdF9m b3JfZWFjaF9lbnRyeShvYmosICZvYmplY3RzLCBzdF9saW5rKSB7Cj4gQEAgLTExMjYsNyArMTEy Niw3IEBAIHN0YXRpYyBpbnQgaWd0X2N0eF9yZWFkb25seSh2b2lkICphcmcpCj4gICAJCX0KPiAg IAl9Cj4gICAJcHJfaW5mbygiU3VibWl0dGVkICVsdSBkd29yZHMgKGFjcm9zcyAldSBlbmdpbmVz KVxuIiwKPiAtCQluZHdvcmRzLCBSVU5USU1FX0lORk8oaTkxNSktPm51bV9yaW5ncyk7Cj4gKwkJ bmR3b3JkcywgUlVOVElNRV9JTkZPKGk5MTUpLT5udW1fZW5naW5lcyk7Cj4gICAKPiAgIAlkdyA9 IDA7Cj4gICAJbGlzdF9mb3JfZWFjaF9lbnRyeShvYmosICZvYmplY3RzLCBzdF9saW5rKSB7Cj4g QEAgLTE0NTksNyArMTQ1OSw3IEBAIHN0YXRpYyBpbnQgaWd0X3ZtX2lzb2xhdGlvbih2b2lkICph cmcpCj4gICAJCWNvdW50ICs9IHRoaXM7Cj4gICAJfQo+ICAgCXByX2luZm8oIkNoZWNrZWQgJWx1 IHNjcmF0Y2ggb2Zmc2V0cyBhY3Jvc3MgJWQgZW5naW5lc1xuIiwKPiAtCQljb3VudCwgUlVOVElN RV9JTkZPKGk5MTUpLT5udW1fcmluZ3MpOwo+ICsJCWNvdW50LCBSVU5USU1FX0lORk8oaTkxNSkt Pm51bV9lbmdpbmVzKTsKPiAgIAo+ICAgb3V0X3JwbToKPiAgIAlpbnRlbF9ydW50aW1lX3BtX3B1 dChpOTE1LCB3YWtlcmVmKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5 MTVfcmVxdWVzdC5jCj4gaW5kZXggN2UxYjY1YjhlYjE5Li4yOTg3NWMyOGE1NDQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfcmVxdWVzdC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfcmVxdWVzdC5jCj4gQEAgLTEy MTYsNyArMTIxNiw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9icmVhZGNydW1ic19zbW9rZXRlc3Qodm9p ZCAqYXJnKQo+ICAgCQludW1fZmVuY2VzICs9IGF0b21pY19sb25nX3JlYWQoJnRbaWRdLm51bV9m ZW5jZXMpOwo+ICAgCX0KPiAgIAlwcl9pbmZvKCJDb21wbGV0ZWQgJWx1IHdhaXRzIGZvciAlbHUg ZmVuY2VzIGFjcm9zcyAlZCBlbmdpbmVzIGFuZCAlZCBjcHVzXG4iLAo+IC0JCW51bV93YWl0cywg bnVtX2ZlbmNlcywgUlVOVElNRV9JTkZPKGk5MTUpLT5udW1fcmluZ3MsIG5jcHVzKTsKPiArCQlu dW1fd2FpdHMsIG51bV9mZW5jZXMsIFJVTlRJTUVfSU5GTyhpOTE1KS0+bnVtX2VuZ2luZXMsIG5j cHVzKTsKPiAgIAo+ICAgCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICAg CXJldCA9IGlndF9saXZlX3Rlc3RfZW5kKCZsaXZlKSA/OiByZXQ7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9ndWMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9ndWMuYwo+IGluZGV4IGM1ZTBhMGU5OGZjYi4uYjA1YTIx ZWFhOGY0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRl bF9ndWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9ndWMu Ywo+IEBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIGludCB2YWxpZGF0ZV9jbGllbnQoc3RydWN0 IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCwKPiAgIAkJCWRldl9wcml2LT5wcmVlbXB0X2NvbnRl eHQgOiBkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQ7Cj4gICAKPiAgIAlpZiAoY2xpZW50LT5vd25l ciAhPSBjdHhfb3duZXIgfHwKPiAtCSAgICBjbGllbnQtPmVuZ2luZXMgIT0gSU5URUxfSU5GTyhk ZXZfcHJpdiktPnJpbmdfbWFzayB8fAo+ICsJICAgIGNsaWVudC0+ZW5naW5lcyAhPSBJTlRFTF9J TkZPKGRldl9wcml2KS0+ZW5naW5lX21hc2sgfHwKPiAgIAkgICAgY2xpZW50LT5wcmlvcml0eSAh PSBjbGllbnRfcHJpb3JpdHkgfHwKPiAgIAkgICAgY2xpZW50LT5kb29yYmVsbF9pZCA9PSBHVUNf RE9PUkJFTExfSU5WQUxJRCkKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4gQEAgLTI2MSw3ICsyNjEs NyBAQCBzdGF0aWMgaW50IGlndF9ndWNfZG9vcmJlbGxzKHZvaWQgKmFyZykKPiAgIAo+ICAgCWZv ciAoaSA9IDA7IGkgPCBBVFRFTVBUUzsgaSsrKSB7Cj4gICAJCWNsaWVudHNbaV0gPSBndWNfY2xp ZW50X2FsbG9jKGRldl9wcml2LAo+IC0JCQkJCSAgICAgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5y aW5nX21hc2ssCj4gKwkJCQkJICAgICAgSU5URUxfSU5GTyhkZXZfcHJpdiktPmVuZ2luZV9tYXNr LAo+ICAgCQkJCQkgICAgICBpICUgR1VDX0NMSUVOVF9QUklPUklUWV9OVU0sCj4gICAJCQkJCSAg ICAgIGRldl9wcml2LT5rZXJuZWxfY29udGV4dCk7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jCj4gaW5kZXggMTJlMDQ3MzI4YWI4 Li41NjI0YTIzODI0NGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2ludGVsX2hhbmdjaGVjay5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2ludGVsX2hhbmdjaGVjay5jCj4gQEAgLTEzNTgsNyArMTM1OCw3IEBAIHN0YXRpYyBpbnQg X19pZ3RfcmVzZXRfZXZpY3Rfdm1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICAg Cj4gICBvdXRfcmVzZXQ6Cj4gICAJaWd0X2dsb2JhbF9yZXNldF9sb2NrKGk5MTUpOwo+IC0JZmFr ZV9oYW5nY2hlY2socnEtPmk5MTUsIGludGVsX2VuZ2luZV9mbGFnKHJxLT5lbmdpbmUpKTsKPiAr CWZha2VfaGFuZ2NoZWNrKHJxLT5pOTE1LCBycS0+ZW5naW5lLT5tYXNrKTsKPiAgIAlpZ3RfZ2xv YmFsX3Jlc2V0X3VubG9jayhpOTE1KTsKPiAgIAo+ICAgCWlmICh0c2spIHsKPiBAQCAtMTY0Myw3 ICsxNjQzLDcgQEAgc3RhdGljIGludCBpZ3RfaGFuZGxlX2Vycm9yKHZvaWQgKmFyZykKPiAgIAkv KiBUZW1wb3JhcmlseSBkaXNhYmxlIGVycm9yIGNhcHR1cmUgKi8KPiAgIAllcnJvciA9IHhjaGco Jmk5MTUtPmdwdV9lcnJvci5maXJzdF9lcnJvciwgKHZvaWQgKiktMSk7Cj4gICAKPiAtCWk5MTVf aGFuZGxlX2Vycm9yKGk5MTUsIEVOR0lORV9NQVNLKGVuZ2luZS0+aWQpLCAwLCBOVUxMKTsKPiAr CWk5MTVfaGFuZGxlX2Vycm9yKGk5MTUsIGVuZ2luZS0+bWFzaywgMCwgTlVMTCk7Cj4gICAKPiAg IAl4Y2hnKCZpOTE1LT5ncHVfZXJyb3IuZmlyc3RfZXJyb3IsIGVycm9yKTsKPiAgIAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbHJjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbHJjLmMKPiBpbmRleCAwNjc3MDM4YTU0 NjYuLjU2NWU5NDlhNDcyMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aW50ZWxfbHJjLmMKPiBAQCAtOTI5LDcgKzkyOSw3IEBAIHN0YXRpYyBpbnQgc21va2VfY3Jlc2Nl bmRvKHN0cnVjdCBwcmVlbXB0X3Ntb2tlICpzbW9rZSwgdW5zaWduZWQgaW50IGZsYWdzKQo+ICAg Cj4gICAJcHJfaW5mbygiU3VibWl0dGVkICVsdSBjcmVzY2VuZG86JXggcmVxdWVzdHMgYWNyb3Nz ICVkIGVuZ2luZXMgYW5kICVkIGNvbnRleHRzXG4iLAo+ICAgCQljb3VudCwgZmxhZ3MsCj4gLQkJ UlVOVElNRV9JTkZPKHNtb2tlLT5pOTE1KS0+bnVtX3JpbmdzLCBzbW9rZS0+bmNvbnRleHQpOwo+ ICsJCVJVTlRJTUVfSU5GTyhzbW9rZS0+aTkxNSktPm51bV9lbmdpbmVzLCBzbW9rZS0+bmNvbnRl eHQpOwo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAgCj4gQEAgLTk1Nyw3ICs5NTcsNyBAQCBzdGF0 aWMgaW50IHNtb2tlX3JhbmRvbShzdHJ1Y3QgcHJlZW1wdF9zbW9rZSAqc21va2UsIHVuc2lnbmVk IGludCBmbGFncykKPiAgIAo+ICAgCXByX2luZm8oIlN1Ym1pdHRlZCAlbHUgcmFuZG9tOiV4IHJl cXVlc3RzIGFjcm9zcyAlZCBlbmdpbmVzIGFuZCAlZCBjb250ZXh0c1xuIiwKPiAgIAkJY291bnQs IGZsYWdzLAo+IC0JCVJVTlRJTUVfSU5GTyhzbW9rZS0+aTkxNSktPm51bV9yaW5ncywgc21va2Ut Pm5jb250ZXh0KTsKPiArCQlSVU5USU1FX0lORk8oc21va2UtPmk5MTUpLT5udW1fZW5naW5lcywg c21va2UtPm5jb250ZXh0KTsKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfd29ya2Fyb3VuZHMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF93b3JrYXJvdW5kcy5jCj4gaW5kZXgg MzNiM2NlZDgzZmRlLi43OWE4MzZkMjFhYmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL2ludGVsX3dvcmthcm91bmRzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfd29ya2Fyb3VuZHMuYwo+IEBAIC0yMjIsNyArMjIyLDcg QEAgc3RhdGljIGludCBjaGVja193aGl0ZWxpc3Qoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0 eCwKPiAgIAo+ICAgc3RhdGljIGludCBkb19kZXZpY2VfcmVzZXQoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+ICAgewo+IC0JaTkxNV9yZXNldChlbmdpbmUtPmk5MTUsIEVOR0lORV9N QVNLKGVuZ2luZS0+aWQpLCAibGl2ZV93b3JrYXJvdW5kcyIpOwo+ICsJaTkxNV9yZXNldChlbmdp bmUtPmk5MTUsIGVuZ2luZS0+bWFzaywgImxpdmVfd29ya2Fyb3VuZHMiKTsKPiAgIAlyZXR1cm4g MDsKPiAgIH0KPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvbW9ja19lbmdpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2Vu Z2luZS5jCj4gaW5kZXggZWMxYWU5NDg5NTRjLi5jMmM5NTRmNjQyMjYgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZW5naW5lLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19lbmdpbmUuYwo+IEBAIC0yMjMsNiArMjIz LDcgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqbW9ja19lbmdpbmUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsCj4gICAJZW5naW5lLT5iYXNlLmk5MTUgPSBpOTE1Owo+ICAgCXNucHJp bnRmKGVuZ2luZS0+YmFzZS5uYW1lLCBzaXplb2YoZW5naW5lLT5iYXNlLm5hbWUpLCAiJXMiLCBu YW1lKTsKPiAgIAllbmdpbmUtPmJhc2UuaWQgPSBpZDsKPiArCWVuZ2luZS0+YmFzZS5tYXNrID0g QklUKGlkKTsKPiAgIAllbmdpbmUtPmJhc2Uuc3RhdHVzX3BhZ2UuYWRkciA9ICh2b2lkICopKGVu Z2luZSArIDEpOwo+ICAgCj4gICAJZW5naW5lLT5iYXNlLmNvbnRleHRfcGluID0gbW9ja19jb250 ZXh0X3BpbjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21v Y2tfZ2VtX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2Vt X2RldmljZS5jCj4gaW5kZXggYzI3NjE2ZWZjNGY4Li44NTgxY2Y1ZTBlOGMgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCj4gQEAg LTIwNiw3ICsyMDYsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqbW9ja19nZW1fZGV2aWNl KHZvaWQpCj4gICAKPiAgIAltb2NrX2luaXRfZ2d0dChpOTE1LCAmaTkxNS0+Z2d0dCk7Cj4gICAK PiAtCW1rd3JpdGVfZGV2aWNlX2luZm8oaTkxNSktPnJpbmdfbWFzayA9IEJJVCgwKTsKPiArCW1r d3JpdGVfZGV2aWNlX2luZm8oaTkxNSktPmVuZ2luZV9tYXNrID0gQklUKDApOwo+ICAgCWk5MTUt Pmtlcm5lbF9jb250ZXh0ID0gbW9ja19jb250ZXh0KGk5MTUsIE5VTEwpOwo+ICAgCWlmICghaTkx NS0+a2VybmVsX2NvbnRleHQpCj4gICAJCWdvdG8gZXJyX3VubG9jazsKPiAKCkxvb2tzIGdvb2Qu IEkgd291bGQgY29uc2lkZXIgbWFraW5nIHRoZSBwYXRjaCBiaWdnZXIgc2luY2Ugb25lIG1lcmdl IApjb25mbGljdCBpcyBiZXR0ZXIgdGhhbiB0d28uCgpSZWdhcmRzLAoKVHZydGtvCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=