From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH v2] drm/i915: Separate out reset flags from the reset counter Date: Tue, 30 Aug 2016 17:40:49 +0300 Message-ID: <87r3968glq.fsf@gaia.fi.intel.com> References: <20160828204624.21193-8-chris@chris-wilson.co.uk> <20160830142335.19762-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 510726E687 for ; Tue, 30 Aug 2016 14:42:40 +0000 (UTC) In-Reply-To: <20160830142335.19762-1-chris@chris-wilson.co.uk> 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 Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gSW4gcHJl cGFyYXRpb24gZm9yIGludHJvZHVjaW5nIGEgcGVyLWVuZ2luZSByZXNldCwgd2UgY2FuIGZpcnN0 IHNlcGFyYXRlCj4gdGhlIG1peGluZyBvZiB0aGUgcmVzZXQgc3RhdGUgZnJvbSB0aGUgZ2xvYmFs IHJlc2V0IGNvdW50ZXIuCj4KPiBUaGUgbG9zcyBvZiBhdG9taWNpdHkgaW4gdXBkYXRpbmcgdGhl IHJlc2V0IHN0YXRlIHBvc2VzIGEgc21hbGwgcHJvYmxlbQo+IGZvciBoYW5kbGluZyB0aGUgd2Fp dGVycy4gRm9yIHJlcXVlc3RzLCB0aGlzIGlzIHNvbHZlZCBieSBhZHZhbmNpbmcgdGhlCj4gc2Vx bm8gc28gdGhhdCBhIHdhaXRlciB3YWtpbmcgdXAgYWZ0ZXIgdGhlIHJlc2V0IGtub3dzIHRoZSBy ZXF1ZXN0IGlzCj4gY29tcGxldGUuIEZvciBwZW5kaW5nIGZsaXBzLCB3ZSBzdGlsbCByZWx5IG9u IHRoZSBpbmNyZW1lbnQgb2YgdGhlCj4gZ2xvYmFsIHJlc2V0IGVwb2NoIChhcyB3ZWxsIGFzIHRo ZSByZXNldC1pbi1wcm9ncmVzcyBmbGFnKSB0byBzaWduaWZ5Cj4gd2hlbiB0aGUgaGFyZHdhcmUg d2FzIHJlc2V0Lgo+Cj4gVGhlIGFkdmFudGFnZSwgbm93IHRoYXQgd2UgZG8gbm90IGluc3BlY3Qg dGhlIHJlc2V0IHN0YXRlIGR1cmluZyByZXNldAo+IGl0c2VsZiBpLmUuIHdlIG5vIGxvbmdlciBl bWl0IHJlcXVlc3RzIGR1cmluZyByZXNldCwgaXMgdGhhdCB3ZSBjYW4gdXNlCj4gdGhlIGF0b21p YyB1cGRhdGVzIG9mIHRoZSBzdGF0ZSBmbGFncyB0byBlbnN1cmUgdGhhdCBvbmx5IG9uZSByZXNl dAo+IHdvcmtlciBpcyBhY3RpdmUuCj4KPiB2MjogTWlrYSBzcG90dGVkIHRoYXQgSSB0cmFuc2Zv cm1lZCB0aGUgaTkxNV9nZW1fd2FpdF9mb3JfZXJyb3IoKSB3YWtldXAKPiBpbnRvIGEgd2FpdGVy IHdha2V1cC4KPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgoKVGhlIHdhaXRfZm9yX3JlcXVlc3QgZG9jcyBhcmUgaW5mZXN0ZWQgd2l0aCBy ZXNldF9jb3VudCB3aGljaAppcyBubyBtb3JlIGZvciB0aGVtLiBCdXQgbm90IGZhdWx0IG9mIHRo aXMgcGF0Y2guCgpSZXZpZXdlZC1ieTogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRl bC5jb20+Cgo+IENjOiBBcnVuIFNpbHV2ZXJ5IDxhcnVuLnNpbHV2ZXJ5QGxpbnV4LmludGVsLmNv bT4KPiBDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+Cj4gTGluazog aHR0cDovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvbXNnaWQvMTQ3MDQxNDYwNy0z MjQ1My02LWdpdC1zZW5kLWVtYWlsLWFydW4uc2lsdXZlcnlAbGludXguaW50ZWwuY29tCj4gLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICB8ICAxNiArKy0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgNDYgKysrKystLS0t LS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwgICAyICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYyB8ICAxMyArKy0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICB8IDEwMyArKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgICAgfCAgMjUgKysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgICAgIHwgICA0ICstCj4gIDcgZmlsZXMgY2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygrKSwg MTE3IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggNDdmZTA3 MjgzZDg4Li4wMWI1MThkY2JkN2EgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBAQCAt MTYwMiw3ICsxNjAyLDcgQEAgc3RhdGljIGludCBpOTE1X2RybV9yZXN1bWUoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPiAgCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAgCWlmIChp OTE1X2dlbV9pbml0X2h3KGRldikpIHsKPiAgCQlEUk1fRVJST1IoImZhaWxlZCB0byByZS1pbml0 aWFsaXplIEdQVSwgZGVjbGFyaW5nIHdlZGdlZCFcbiIpOwo+IC0JCWF0b21pY19vcihJOTE1X1dF REdFRCwgJmRldl9wcml2LT5ncHVfZXJyb3IucmVzZXRfY291bnRlcik7Cj4gKwkJc2V0X2JpdChJ OTE1X1dFREdFRCwgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpOwo+ICAJfQo+ICAJbXV0ZXhf dW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gIAo+IEBAIC0xNzY0LDIwICsxNzY0LDEzIEBA IGludCBpOTE1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgewo+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+ICAJc3RydWN0IGk5 MTVfZ3B1X2Vycm9yICplcnJvciA9ICZkZXZfcHJpdi0+Z3B1X2Vycm9yOwo+IC0JdW5zaWduZWQg cmVzZXRfY291bnRlcjsKPiAgCWludCByZXQ7Cj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1 Y3RfbXV0ZXgpOwo+ICAKPiAgCS8qIENsZWFyIGFueSBwcmV2aW91cyBmYWlsZWQgYXR0ZW1wdHMg YXQgcmVjb3ZlcnkuIFRpbWUgdG8gdHJ5IGFnYWluLiAqLwo+IC0JYXRvbWljX2FuZG5vdChJOTE1 X1dFREdFRCwgJmVycm9yLT5yZXNldF9jb3VudGVyKTsKPiAtCj4gLQkvKiBDbGVhciB0aGUgcmVz ZXQtaW4tcHJvZ3Jlc3MgZmxhZyBhbmQgaW5jcmVtZW50IHRoZSByZXNldCBlcG9jaC4gKi8KPiAt CXJlc2V0X2NvdW50ZXIgPSBhdG9taWNfaW5jX3JldHVybigmZXJyb3ItPnJlc2V0X2NvdW50ZXIp Owo+IC0JaWYgKFdBUk5fT04oX19pOTE1X3Jlc2V0X2luX3Byb2dyZXNzKHJlc2V0X2NvdW50ZXIp KSkgewo+IC0JCXJldCA9IC1FSU87Cj4gLQkJZ290byBlcnJvcjsKPiAtCX0KPiArCV9fY2xlYXJf Yml0KEk5MTVfV0VER0VELCAmZXJyb3ItPmZsYWdzKTsKPiArCWVycm9yLT5yZXNldF9jb3VudCsr Owo+ICAKPiAgCXByX25vdGljZSgiZHJtL2k5MTU6IFJlc2V0dGluZyBjaGlwIGFmdGVyIGdwdSBo YW5nXG4iKTsKPiAgCj4gQEAgLTE4MTQsNiArMTgwNyw3IEBAIGludCBpOTE1X3Jlc2V0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlnb3RvIGVycm9yOwo+ICAJfQo+ICAK PiArCWNsZWFyX2JpdChJOTE1X1JFU0VUX0lOX1BST0dSRVNTLCAmZXJyb3ItPmZsYWdzKTsKPiAg CW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICAKPiAgCS8qCj4gQEAgLTE4Mjgs NyArMTgyMiw3IEBAIGludCBpOTE1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgCXJldHVybiAwOwo+ICAKPiAgZXJyb3I6Cj4gLQlhdG9taWNfb3IoSTkxNV9XRURH RUQsICZlcnJvci0+cmVzZXRfY291bnRlcik7Cj4gKwlzZXRfYml0KEk5MTVfV0VER0VELCAmZXJy b3ItPmZsYWdzKTsKPiAgCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICAJcmV0 dXJuIHJldDsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGM0MTM1ODc4OTVj Zi4uZTU3NGVhYTY1YzRkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTEzODYs OSArMTM4NiwxMCBAQCBzdHJ1Y3QgaTkxNV9ncHVfZXJyb3Igewo+ICAJICogU3RhdGUgdmFyaWFi bGUgY29udHJvbGxpbmcgdGhlIHJlc2V0IGZsb3cgYW5kIGNvdW50Cj4gIAkgKgo+ICAJICogVGhp cyBpcyBhIGNvdW50ZXIgd2hpY2ggZ2V0cyBpbmNyZW1lbnRlZCB3aGVuIHJlc2V0IGlzIHRyaWdn ZXJlZCwKPiAtCSAqIGFuZCBhZ2FpbiB3aGVuIHJlc2V0IGhhcyBiZWVuIGhhbmRsZWQuIFNvIG9k ZCB2YWx1ZXMgKGxvd2VzdCBiaXQgc2V0KQo+IC0JICogbWVhbnMgdGhhdCByZXNldCBpcyBpbiBw cm9ncmVzcyBhbmQgZXZlbiB2YWx1ZXMgdGhhdAo+IC0JICogKHJlc2V0X2NvdW50ZXIgPj4gMSk6 dGggcmVzZXQgd2FzIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQuCj4gKwkgKgo+ICsJICogQmVmb3Jl IHRoZSByZXNldCBjb21tZW5jZXMsIHRoZSBJOTE1X1JFU0VUX0lOX1BST0dSRVNTIGJpdCBpcyBz ZXQKPiArCSAqIG1lYW5pbmcgdGhhdCBhbnkgd2FpdGVycyBob2xkaW5nIG9udG8gdGhlIHN0cnVj dF9tdXRleCBzaG91bGQKPiArCSAqIHJlbGlucXVpc2ggdGhlIGxvY2sgaW1tZWRpYXRlbHkgaW4g b3JkZXIgZm9yIHRoZSByZXNldCB0byBzdGFydC4KPiAgCSAqCj4gIAkgKiBJZiByZXNldCBpcyBu b3QgY29tcGxldGVkIHN1Y2Nlc2Z1bGx5LCB0aGUgSTkxNV9XRURHRSBiaXQgaXMKPiAgCSAqIHNl dCBtZWFuaW5nIHRoYXQgaGFyZHdhcmUgaXMgdGVybWluYWxseSBzb3VyIGFuZCB0aGVyZSBpcyBu bwo+IEBAIC0xNDAzLDEwICsxNDA0LDExIEBAIHN0cnVjdCBpOTE1X2dwdV9lcnJvciB7Cj4gIAkg KiBuYXR1cmFsbHkgZW5mb3JjZXMgdGhlIGNvcnJlY3Qgb3JkZXJpbmcgYmV0d2VlbiB0aGUgYmFp bC1vdXQgb2YgdGhlCj4gIAkgKiB3YWl0ZXIgYW5kIHRoZSBncHUgcmVzZXQgd29yayBjb2RlLgo+ ICAJICovCj4gLQlhdG9taWNfdCByZXNldF9jb3VudGVyOwo+ICsJdW5zaWduZWQgbG9uZyByZXNl dF9jb3VudDsKPiAgCj4gLSNkZWZpbmUgSTkxNV9SRVNFVF9JTl9QUk9HUkVTU19GTEFHCTEKPiAt I2RlZmluZSBJOTE1X1dFREdFRAkJCSgxIDw8IDMxKQo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsK PiArI2RlZmluZSBJOTE1X1JFU0VUX0lOX1BST0dSRVNTCTAKPiArI2RlZmluZSBJOTE1X1dFREdF RAkJKEJJVFNfUEVSX0xPTkcgLSAxKQo+ICAKPiAgCS8qKgo+ICAJICogV2FpdHF1ZXVlIHRvIHNp Z25hbCB3aGVuIGEgaGFuZyBpcyBkZXRlY3RlZC4gVXNlZCB0byBmb3Igd2FpdGVycwo+IEBAIC0z MjM0LDQ0ICszMjM2LDI0IEBAIGk5MTVfZ2VtX2ZpbmRfYWN0aXZlX3JlcXVlc3Qoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiAgCj4gIHZvaWQgaTkxNV9nZW1fcmV0aXJlX3JlcXVl c3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIAo+IC1zdGF0aWMgaW5s aW5lIHUzMiBpOTE1X3Jlc2V0X2NvdW50ZXIoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvcikK PiAtewo+IC0JcmV0dXJuIGF0b21pY19yZWFkKCZlcnJvci0+cmVzZXRfY291bnRlcik7Cj4gLX0K PiAtCj4gLXN0YXRpYyBpbmxpbmUgYm9vbCBfX2k5MTVfcmVzZXRfaW5fcHJvZ3Jlc3ModTMyIHJl c2V0KQo+IC17Cj4gLQlyZXR1cm4gdW5saWtlbHkocmVzZXQgJiBJOTE1X1JFU0VUX0lOX1BST0dS RVNTX0ZMQUcpOwo+IC19Cj4gLQo+IC1zdGF0aWMgaW5saW5lIGJvb2wgX19pOTE1X3Jlc2V0X2lu X3Byb2dyZXNzX29yX3dlZGdlZCh1MzIgcmVzZXQpCj4gLXsKPiAtCXJldHVybiB1bmxpa2VseShy ZXNldCAmIChJOTE1X1JFU0VUX0lOX1BST0dSRVNTX0ZMQUcgfCBJOTE1X1dFREdFRCkpOwo+IC19 Cj4gLQo+IC1zdGF0aWMgaW5saW5lIGJvb2wgX19pOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKHUzMiBy ZXNldCkKPiAtewo+IC0JcmV0dXJuIHVubGlrZWx5KHJlc2V0ICYgSTkxNV9XRURHRUQpOwo+IC19 Cj4gLQo+ICBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9yZXNldF9pbl9wcm9ncmVzcyhzdHJ1Y3Qg aTkxNV9ncHVfZXJyb3IgKmVycm9yKQo+ICB7Cj4gLQlyZXR1cm4gX19pOTE1X3Jlc2V0X2luX3By b2dyZXNzKGk5MTVfcmVzZXRfY291bnRlcihlcnJvcikpOwo+ICsJcmV0dXJuIHVubGlrZWx5KHRl c3RfYml0KEk5MTVfUkVTRVRfSU5fUFJPR1JFU1MsICZlcnJvci0+ZmxhZ3MpKTsKPiAgfQo+ICAK PiAtc3RhdGljIGlubGluZSBib29sIGk5MTVfcmVzZXRfaW5fcHJvZ3Jlc3Nfb3Jfd2VkZ2VkKHN0 cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3Rl cm1pbmFsbHlfd2VkZ2VkKHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpCj4gIHsKPiAtCXJl dHVybiBfX2k5MTVfcmVzZXRfaW5fcHJvZ3Jlc3Nfb3Jfd2VkZ2VkKGk5MTVfcmVzZXRfY291bnRl cihlcnJvcikpOwo+ICsJcmV0dXJuIHVubGlrZWx5KHRlc3RfYml0KEk5MTVfV0VER0VELCAmZXJy b3ItPmZsYWdzKSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3Rlcm1pbmFs bHlfd2VkZ2VkKHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpCj4gK3N0YXRpYyBpbmxpbmUg Ym9vbCBpOTE1X3Jlc2V0X2luX3Byb2dyZXNzX29yX3dlZGdlZChzdHJ1Y3QgaTkxNV9ncHVfZXJy b3IgKmVycm9yKQo+ICB7Cj4gLQlyZXR1cm4gX19pOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKGk5MTVf cmVzZXRfY291bnRlcihlcnJvcikpOwo+ICsJcmV0dXJuIGk5MTVfcmVzZXRfaW5fcHJvZ3Jlc3Mo ZXJyb3IpIHwgaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChlcnJvcik7Cj4gIH0KPiAgCj4gIHN0YXRp YyBpbmxpbmUgdTMyIGk5MTVfcmVzZXRfY291bnQoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJv cikKPiAgewo+IC0JcmV0dXJuICgoaTkxNV9yZXNldF9jb3VudGVyKGVycm9yKSAmIH5JOTE1X1dF REdFRCkgKyAxKSAvIDI7Cj4gKwlyZXR1cm4gUkVBRF9PTkNFKGVycm9yLT5yZXNldF9jb3VudCk7 Cj4gIH0KPiAgCj4gIHZvaWQgaTkxNV9nZW1fcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggODM4YTI3NWU3ZmFjLi5jMDZkYWNkYWU4 N2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtNDUyNSw3ICs0NTI1LDcgQEAg aW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkgKiBmb3IgYWxs IG90aGVyIGZhaWx1cmUsIHN1Y2ggYXMgYW4gYWxsb2NhdGlvbiBmYWlsdXJlLCBiYWlsLgo+ICAJ CSAqLwo+ICAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXRpYWxpemUgR1BVLCBkZWNsYXJpbmcg aXQgd2VkZ2VkXG4iKTsKPiAtCQlhdG9taWNfb3IoSTkxNV9XRURHRUQsICZkZXZfcHJpdi0+Z3B1 X2Vycm9yLnJlc2V0X2NvdW50ZXIpOwo+ICsJCXNldF9iaXQoSTkxNV9XRURHRUQsICZkZXZfcHJp di0+Z3B1X2Vycm9yLmZsYWdzKTsKPiAgCQlyZXQgPSAwOwo+ICAJfQo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCj4gaW5kZXggZWM2MTNmZDVlMDFjLi4yNGViNGIx Yjc1NDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVz dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCj4gQEAg LTIzMywxNiArMjMzLDE4IEBAIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmVfdXB0byhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgCX0gd2hpbGUgKHRtcCAhPSByZXEpOwo+ ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGk5MTVfZ2VtX2NoZWNrX3dlZGdlKHVuc2lnbmVkIGludCBy ZXNldF9jb3VudGVyLCBib29sIGludGVycnVwdGlibGUpCj4gK3N0YXRpYyBpbnQgaTkxNV9nZW1f Y2hlY2tfd2VkZ2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlp ZiAoX19pOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKHJlc2V0X2NvdW50ZXIpKQo+ICsJc3RydWN0IGk5 MTVfZ3B1X2Vycm9yICplcnJvciA9ICZkZXZfcHJpdi0+Z3B1X2Vycm9yOwo+ICsKPiArCWlmIChp OTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKGVycm9yKSkKPiAgCQlyZXR1cm4gLUVJTzsKPiAgCj4gLQlp ZiAoX19pOTE1X3Jlc2V0X2luX3Byb2dyZXNzKHJlc2V0X2NvdW50ZXIpKSB7Cj4gKwlpZiAoaTkx NV9yZXNldF9pbl9wcm9ncmVzcyhlcnJvcikpIHsKPiAgCQkvKiBOb24taW50ZXJydXB0aWJsZSBj YWxsZXJzIGNhbid0IGhhbmRsZSAtRUFHQUlOLCBoZW5jZSByZXR1cm4KPiAgCQkgKiAtRUlPIHVu Y29uZGl0aW9uYWxseSBmb3IgdGhlc2UuCj4gIAkJICovCj4gLQkJaWYgKCFpbnRlcnJ1cHRpYmxl KQo+ICsJCWlmICghZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGUpCj4gIAkJCXJldHVybiAtRUlP Owo+ICAKPiAgCQlyZXR1cm4gLUVBR0FJTjsKPiBAQCAtMzMxLDcgKzMzMyw2IEBAIGk5MTVfZ2Vt X3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICAJCSAgICAg ICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Cj4gLQl1bnNpZ25lZCBpbnQgcmVzZXRf Y291bnRlciA9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3ByaXYtPmdwdV9lcnJvcik7Cj4gIAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPiAgCXUzMiBzZXFubzsKPiAgCWludCBy ZXQ7Cj4gQEAgLTM0MCw3ICszNDEsNyBAQCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgCSAqIEVJTyBpZiB0aGUgR1BVIGlzIGFscmVhZHkg d2VkZ2VkLCBvciBFQUdBSU4gdG8gZHJvcCB0aGUgc3RydWN0X211dGV4Cj4gIAkgKiBhbmQgcmVz dGFydC4KPiAgCSAqLwo+IC0JcmV0ID0gaTkxNV9nZW1fY2hlY2tfd2VkZ2UocmVzZXRfY291bnRl ciwgZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGUpOwo+ICsJcmV0ID0gaTkxNV9nZW1fY2hlY2tf d2VkZ2UoZGV2X3ByaXYpOwo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBpbmRleCA4MjM1OGQ0ZTBjYzIuLmVkMTcyZDdi ZWVjYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC0yNTAxLDUzICsyNTAxLDQx IEBAIHN0YXRpYyB2b2lkIGk5MTVfcmVzZXRfYW5kX3dha2V1cChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICAJa29iamVjdF91ZXZlbnRfZW52KGtvYmosIEtPQkpfQ0hB TkdFLCBlcnJvcl9ldmVudCk7Cj4gIAo+ICsJRFJNX0RFQlVHX0RSSVZFUigicmVzZXR0aW5nIGNo aXBcbiIpOwo+ICsJa29iamVjdF91ZXZlbnRfZW52KGtvYmosIEtPQkpfQ0hBTkdFLCByZXNldF9l dmVudCk7Cj4gKwo+ICAJLyoKPiAtCSAqIE5vdGUgdGhhdCB0aGVyZSdzIG9ubHkgb25lIHdvcmsg aXRlbSB3aGljaCBkb2VzIGdwdSByZXNldHMsIHNvIHdlCj4gLQkgKiBuZWVkIG5vdCB3b3JyeSBh Ym91dCBjb25jdXJyZW50IGdwdSByZXNldHMgcG90ZW50aWFsbHkgaW5jcmVtZW50aW5nCj4gLQkg KiBlcnJvci0+cmVzZXRfY291bnRlciB0d2ljZS4gV2Ugb25seSBuZWVkIHRvIHRha2UgY2FyZSBv ZiBhbm90aGVyCj4gLQkgKiByYWNpbmcgaXJxL2hhbmdjaGVjayBkZWNsYXJpbmcgdGhlIGdwdSBk ZWFkIGZvciBhIHNlY29uZCB0aW1lLiBBCj4gLQkgKiBxdWljayBjaGVjayBmb3IgdGhhdCBpcyBn b29kIGVub3VnaDogc2NoZWR1bGVfd29yayBlbnN1cmVzIHRoZQo+IC0JICogY29ycmVjdCBvcmRl cmluZyBiZXR3ZWVuIGhhbmcgZGV0ZWN0aW9uIGFuZCB0aGlzIHdvcmsgaXRlbSwgYW5kIHNpbmNl Cj4gLQkgKiB0aGUgcmVzZXQgaW4tcHJvZ3Jlc3MgYml0IGlzIG9ubHkgZXZlciBzZXQgYnkgY29k ZSBvdXRzaWRlIG9mIHRoaXMKPiAtCSAqIHdvcmsgd2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91 dCBhbnkgb3RoZXIgcmFjZXMuCj4gKwkgKiBJbiBtb3N0IGNhc2VzIGl0J3MgZ3VhcmFudGVlZCB0 aGF0IHdlIGdldCBoZXJlIHdpdGggYW4gUlBNCj4gKwkgKiByZWZlcmVuY2UgaGVsZCwgZm9yIGV4 YW1wbGUgYmVjYXVzZSB0aGVyZSBpcyBhIHBlbmRpbmcgR1BVCj4gKwkgKiByZXF1ZXN0IHRoYXQg d29uJ3QgZmluaXNoIHVudGlsIHRoZSByZXNldCBpcyBkb25lLiBUaGlzCj4gKwkgKiBpc24ndCB0 aGUgY2FzZSBhdCBsZWFzdCB3aGVuIHdlIGdldCBoZXJlIGJ5IGRvaW5nIGEKPiArCSAqIHNpbXVs YXRlZCByZXNldCB2aWEgZGVidWdzLCBzbyBnZXQgYW4gUlBNIHJlZmVyZW5jZS4KPiAgCSAqLwo+ IC0JaWYgKGk5MTVfcmVzZXRfaW5fcHJvZ3Jlc3MoJmRldl9wcml2LT5ncHVfZXJyb3IpKSB7Cj4g LQkJRFJNX0RFQlVHX0RSSVZFUigicmVzZXR0aW5nIGNoaXBcbiIpOwo+IC0JCWtvYmplY3RfdWV2 ZW50X2Vudihrb2JqLCBLT0JKX0NIQU5HRSwgcmVzZXRfZXZlbnQpOwo+IC0KPiAtCQkvKgo+IC0J CSAqIEluIG1vc3QgY2FzZXMgaXQncyBndWFyYW50ZWVkIHRoYXQgd2UgZ2V0IGhlcmUgd2l0aCBh biBSUE0KPiAtCQkgKiByZWZlcmVuY2UgaGVsZCwgZm9yIGV4YW1wbGUgYmVjYXVzZSB0aGVyZSBp cyBhIHBlbmRpbmcgR1BVCj4gLQkJICogcmVxdWVzdCB0aGF0IHdvbid0IGZpbmlzaCB1bnRpbCB0 aGUgcmVzZXQgaXMgZG9uZS4gVGhpcwo+IC0JCSAqIGlzbid0IHRoZSBjYXNlIGF0IGxlYXN0IHdo ZW4gd2UgZ2V0IGhlcmUgYnkgZG9pbmcgYQo+IC0JCSAqIHNpbXVsYXRlZCByZXNldCB2aWEgZGVi dWdzLCBzbyBnZXQgYW4gUlBNIHJlZmVyZW5jZS4KPiAtCQkgKi8KPiAtCQlpbnRlbF9ydW50aW1l X3BtX2dldChkZXZfcHJpdik7Cj4gKwlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7Cj4g IAo+IC0JCWludGVsX3ByZXBhcmVfcmVzZXQoZGV2X3ByaXYpOwo+ICsJaW50ZWxfcHJlcGFyZV9y ZXNldChkZXZfcHJpdik7Cj4gIAo+IC0JCS8qCj4gLQkJICogQWxsIHN0YXRlIHJlc2V0IF9tdXN0 XyBiZSBjb21wbGV0ZWQgYmVmb3JlIHdlIHVwZGF0ZSB0aGUKPiAtCQkgKiByZXNldCBjb3VudGVy LCBmb3Igb3RoZXJ3aXNlIHdhaXRlcnMgbWlnaHQgbWlzcyB0aGUgcmVzZXQKPiAtCQkgKiBwZW5k aW5nIHN0YXRlIGFuZCBub3QgcHJvcGVybHkgZHJvcCBsb2NrcywgcmVzdWx0aW5nIGluCj4gLQkJ ICogZGVhZGxvY2tzIHdpdGggdGhlIHJlc2V0IHdvcmsuCj4gLQkJICovCj4gLQkJcmV0ID0gaTkx NV9yZXNldChkZXZfcHJpdik7Cj4gKwkvKgo+ICsJICogQWxsIHN0YXRlIHJlc2V0IF9tdXN0XyBi ZSBjb21wbGV0ZWQgYmVmb3JlIHdlIHVwZGF0ZSB0aGUKPiArCSAqIHJlc2V0IGNvdW50ZXIsIGZv ciBvdGhlcndpc2Ugd2FpdGVycyBtaWdodCBtaXNzIHRoZSByZXNldAo+ICsJICogcGVuZGluZyBz dGF0ZSBhbmQgbm90IHByb3Blcmx5IGRyb3AgbG9ja3MsIHJlc3VsdGluZyBpbgo+ICsJICogZGVh ZGxvY2tzIHdpdGggdGhlIHJlc2V0IHdvcmsuCj4gKwkgKi8KPiArCXJldCA9IGk5MTVfcmVzZXQo ZGV2X3ByaXYpOwo+ICAKPiAtCQlpbnRlbF9maW5pc2hfcmVzZXQoZGV2X3ByaXYpOwo+ICsJaW50 ZWxfZmluaXNoX3Jlc2V0KGRldl9wcml2KTsKPiAgCj4gLQkJaW50ZWxfcnVudGltZV9wbV9wdXQo ZGV2X3ByaXYpOwo+ICsJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwo+ICAKPiAtCQlp ZiAocmV0ID09IDApCj4gLQkJCWtvYmplY3RfdWV2ZW50X2Vudihrb2JqLAo+IC0JCQkJCSAgIEtP QkpfQ0hBTkdFLCByZXNldF9kb25lX2V2ZW50KTsKPiArCWlmIChyZXQgPT0gMCkKPiArCQlrb2Jq ZWN0X3VldmVudF9lbnYoa29iaiwKPiArCQkJCSAgIEtPQkpfQ0hBTkdFLCByZXNldF9kb25lX2V2 ZW50KTsKPiAgCj4gLQkJLyoKPiAtCQkgKiBOb3RlOiBUaGUgd2FrZV91cCBhbHNvIHNlcnZlcyBh cyBhIG1lbW9yeSBiYXJyaWVyIHNvIHRoYXQKPiAtCQkgKiB3YWl0ZXJzIHNlZSB0aGUgdXBkYXRl IHZhbHVlIG9mIHRoZSByZXNldCBjb3VudGVyIGF0b21pY190Lgo+IC0JCSAqLwo+IC0JCXdha2Vf dXBfYWxsKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJlc2V0X3F1ZXVlKTsKPiAtCX0KPiArCS8qCj4g KwkgKiBOb3RlOiBUaGUgd2FrZV91cCBhbHNvIHNlcnZlcyBhcyBhIG1lbW9yeSBiYXJyaWVyIHNv IHRoYXQKPiArCSAqIHdhaXRlcnMgc2VlIHRoZSB1cGRhdGVkIHZhbHVlIG9mIHRoZSBkZXZfcHJp di0+Z3B1X2Vycm9yLgo+ICsJICovCj4gKwl3YWtlX3VwX2FsbCgmZGV2X3ByaXYtPmdwdV9lcnJv ci5yZXNldF9xdWV1ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGk5MTVfcmVwb3J0X2FuZF9j bGVhcl9laXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IEBAIC0yNjY2LDI1 ICsyNjU0LDI2IEBAIHZvaWQgaTkxNV9oYW5kbGVfZXJyb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAJaTkxNV9jYXB0dXJlX2Vycm9yX3N0YXRlKGRldl9wcml2LCBlbmdp bmVfbWFzaywgZXJyb3JfbXNnKTsKPiAgCWk5MTVfcmVwb3J0X2FuZF9jbGVhcl9laXIoZGV2X3By aXYpOwo+ICAKPiAtCWlmIChlbmdpbmVfbWFzaykgewo+IC0JCWF0b21pY19vcihJOTE1X1JFU0VU X0lOX1BST0dSRVNTX0ZMQUcsCj4gLQkJCQkmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3Vu dGVyKTsKPiArCWlmICghZW5naW5lX21hc2spCj4gKwkJcmV0dXJuOwo+ICAKPiAtCQkvKgo+IC0J CSAqIFdha2V1cCB3YWl0aW5nIHByb2Nlc3NlcyBzbyB0aGF0IHRoZSByZXNldCBmdW5jdGlvbgo+ IC0JCSAqIGk5MTVfcmVzZXRfYW5kX3dha2V1cCBkb2Vzbid0IGRlYWRsb2NrIHRyeWluZyB0byBn cmFiCj4gLQkJICogdmFyaW91cyBsb2Nrcy4gQnkgYnVtcGluZyB0aGUgcmVzZXQgY291bnRlciBm aXJzdCwgdGhlIHdva2VuCj4gLQkJICogcHJvY2Vzc2VzIHdpbGwgc2VlIGEgcmVzZXQgaW4gcHJv Z3Jlc3MgYW5kIGJhY2sgb2ZmLAo+IC0JCSAqIHJlbGVhc2luZyB0aGVpciBsb2NrcyBhbmQgdGhl biB3YWl0IGZvciB0aGUgcmVzZXQgY29tcGxldGlvbi4KPiAtCQkgKiBXZSBtdXN0IGRvIHRoaXMg Zm9yIF9hbGxfIGdwdSB3YWl0ZXJzIHRoYXQgbWlnaHQgaG9sZCBsb2Nrcwo+IC0JCSAqIHRoYXQg dGhlIHJlc2V0IHdvcmsgbmVlZHMgdG8gYWNxdWlyZS4KPiAtCQkgKgo+IC0JCSAqIE5vdGU6IFRo ZSB3YWtlX3VwIHNlcnZlcyBhcyB0aGUgcmVxdWlyZWQgbWVtb3J5IGJhcnJpZXIgdG8KPiAtCQkg KiBlbnN1cmUgdGhhdCB0aGUgd2FpdGVycyBzZWUgdGhlIHVwZGF0ZWQgdmFsdWUgb2YgdGhlIHJl c2V0Cj4gLQkJICogY291bnRlciBhdG9taWNfdC4KPiAtCQkgKi8KPiAtCQlpOTE1X2Vycm9yX3dh a2VfdXAoZGV2X3ByaXYpOwo+IC0JfQo+ICsJaWYgKHRlc3RfYW5kX3NldF9iaXQoSTkxNV9SRVNF VF9JTl9QUk9HUkVTUywKPiArCQkJICAgICAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncykpCj4g KwkJcmV0dXJuOwo+ICsKPiArCS8qCj4gKwkgKiBXYWtldXAgd2FpdGluZyBwcm9jZXNzZXMgc28g dGhhdCB0aGUgcmVzZXQgZnVuY3Rpb24KPiArCSAqIGk5MTVfcmVzZXRfYW5kX3dha2V1cCBkb2Vz bid0IGRlYWRsb2NrIHRyeWluZyB0byBncmFiCj4gKwkgKiB2YXJpb3VzIGxvY2tzLiBCeSBidW1w aW5nIHRoZSByZXNldCBjb3VudGVyIGZpcnN0LCB0aGUgd29rZW4KPiArCSAqIHByb2Nlc3NlcyB3 aWxsIHNlZSBhIHJlc2V0IGluIHByb2dyZXNzIGFuZCBiYWNrIG9mZiwKPiArCSAqIHJlbGVhc2lu ZyB0aGVpciBsb2NrcyBhbmQgdGhlbiB3YWl0IGZvciB0aGUgcmVzZXQgY29tcGxldGlvbi4KPiAr CSAqIFdlIG11c3QgZG8gdGhpcyBmb3IgX2FsbF8gZ3B1IHdhaXRlcnMgdGhhdCBtaWdodCBob2xk IGxvY2tzCj4gKwkgKiB0aGF0IHRoZSByZXNldCB3b3JrIG5lZWRzIHRvIGFjcXVpcmUuCj4gKwkg Kgo+ICsJICogTm90ZTogVGhlIHdha2VfdXAgYWxzbyBwcm92aWRlcyBhIG1lbW9yeSBiYXJyaWVy IHRvIGVuc3VyZSB0aGF0IHRoZQo+ICsJICogd2FpdGVycyBzZWUgdGhlIHVwZGF0ZWQgdmFsdWUg b2YgdGhlIHJlc2V0IGZsYWdzLgo+ICsJICovCj4gKwlpOTE1X2Vycm9yX3dha2VfdXAoZGV2X3By aXYpOwo+ICAKPiAgCWk5MTVfcmVzZXRfYW5kX3dha2V1cChkZXZfcHJpdik7Cj4gIH0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggMTlmZmQwMjRkZGVjLi4yZTYzZTVj ZmE5OGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTM2NDMs MTUgKzM2NDMsMjYgQEAgdm9pZCBpbnRlbF9maW5pc2hfcmVzZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+ICAJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4 KTsKPiAgfQo+ICAKPiArc3RhdGljIGJvb2wgYWJvcnRfZmxpcF9vbl9yZXNldChzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YykKPiArewo+ICsJc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvciA9ICZ0 b19pOTE1KGNydGMtPmJhc2UuZGV2KS0+Z3B1X2Vycm9yOwo+ICsKPiArCWlmIChpOTE1X3Jlc2V0 X2luX3Byb2dyZXNzKGVycm9yKSkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gKwlpZiAoY3J0Yy0+ cmVzZXRfY291bnQgIT0gaTkxNV9yZXNldF9jb3VudChlcnJvcikpCj4gKwkJcmV0dXJuIHRydWU7 Cj4gKwo+ICsJcmV0dXJuIGZhbHNlOwo+ICt9Cj4gKwo+ICBzdGF0aWMgYm9vbCBpbnRlbF9jcnRj X2hhc19wZW5kaW5nX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IC0JdW5zaWduZWQgcmVzZXRfY291bnRlcjsK PiAgCWJvb2wgcGVuZGluZzsKPiAgCj4gLQlyZXNldF9jb3VudGVyID0gaTkxNV9yZXNldF9jb3Vu dGVyKCZ0b19pOTE1KGRldiktPmdwdV9lcnJvcik7Cj4gLQlpZiAoaW50ZWxfY3J0Yy0+cmVzZXRf Y291bnRlciAhPSByZXNldF9jb3VudGVyKQo+ICsJaWYgKGFib3J0X2ZsaXBfb25fcmVzZXQoaW50 ZWxfY3J0YykpCj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAKPiAgCXNwaW5fbG9ja19pcnEoJmRldi0+ ZXZlbnRfbG9jayk7Cj4gQEAgLTExNTQ5LDEwICsxMTU2MCw4IEBAIHN0YXRpYyBib29sIF9fcGFn ZWZsaXBfZmluaXNoZWRfY3Moc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIHsKPiAgCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXVuc2lnbmVkIHJlc2V0X2NvdW50 ZXI7Cj4gIAo+IC0JcmVzZXRfY291bnRlciA9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3ByaXYt PmdwdV9lcnJvcik7Cj4gLQlpZiAoY3J0Yy0+cmVzZXRfY291bnRlciAhPSByZXNldF9jb3VudGVy KQo+ICsJaWYgKGFib3J0X2ZsaXBfb25fcmVzZXQoY3J0YykpCj4gIAkJcmV0dXJuIHRydWU7Cj4g IAo+ICAJLyoKPiBAQCAtMTIyMTgsOCArMTIyMjcsOCBAQCBzdGF0aWMgaW50IGludGVsX2NydGNf cGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCWlmIChyZXQpCj4gIAkJZ290byBj bGVhbnVwOwo+ICAKPiAtCWludGVsX2NydGMtPnJlc2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2Nv dW50ZXIoJmRldl9wcml2LT5ncHVfZXJyb3IpOwo+IC0JaWYgKF9faTkxNV9yZXNldF9pbl9wcm9n cmVzc19vcl93ZWRnZWQoaW50ZWxfY3J0Yy0+cmVzZXRfY291bnRlcikpIHsKPiArCWludGVsX2Ny dGMtPnJlc2V0X2NvdW50ID0gaTkxNV9yZXNldF9jb3VudCgmZGV2X3ByaXYtPmdwdV9lcnJvcik7 Cj4gKwlpZiAoaTkxNV9yZXNldF9pbl9wcm9ncmVzc19vcl93ZWRnZWQoJmRldl9wcml2LT5ncHVf ZXJyb3IpKSB7Cj4gIAkJcmV0ID0gLUVJTzsKPiAgCQlnb3RvIGNsZWFudXA7Cj4gIAl9Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCA1NzBhN2NhNzk4M2YuLjYwZTFjZDkxNWI4NSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTcxMiw4ICs3MTIsOCBAQCBzdHJ1 Y3QgaW50ZWxfY3J0YyB7Cj4gIAo+ICAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNvbmZpZzsK PiAgCj4gLQkvKiByZXNldCBjb3VudGVyIHZhbHVlIHdoZW4gdGhlIGxhc3QgZmxpcCB3YXMgc3Vi bWl0dGVkICovCj4gLQl1bnNpZ25lZCBpbnQgcmVzZXRfY291bnRlcjsKPiArCS8qIGdsb2JhbCBy ZXNldCBjb3VudCB3aGVuIHRoZSBsYXN0IGZsaXAgd2FzIHN1Ym1pdHRlZCAqLwo+ICsJdW5zaWdu ZWQgaW50IHJlc2V0X2NvdW50Owo+ICAKPiAgCS8qIEFjY2VzcyB0byB0aGVzZSBzaG91bGQgYmUg cHJvdGVjdGVkIGJ5IGRldl9wcml2LT5pcnFfbG9jay4gKi8KPiAgCWJvb2wgY3B1X2ZpZm9fdW5k ZXJydW5fZGlzYWJsZWQ7Cj4gLS0gCj4gMi45LjMKPgo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK