From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 19/21] drm/i915: Merge wait_for_timelines with retire_request Date: Tue, 24 Sep 2019 16:57:12 +0100 Message-ID: <27f80034-a5c3-2ec9-9b63-3d4bf93cd254@linux.intel.com> References: <20190902040303.14195-1-chris@chris-wilson.co.uk> <20190902040303.14195-19-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7F7A96EA46 for ; Tue, 24 Sep 2019 15:57:16 +0000 (UTC) In-Reply-To: <20190902040303.14195-19-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 Ck9uIDAyLzA5LzIwMTkgMDU6MDMsIENocmlzIFdpbHNvbiB3cm90ZToKPiB3YWl0X2Zvcl90aW1l bGluZXMgaXMgZXNzZW50aWFsbHkgdGhlIHNhbWUgbG9vcCBhcyByZXRpcmluZyByZXF1ZXN0cwo+ ICh3aXRoIGFuIGV4dHJhKSwgc28gbWVyZ2UgdGhlIHR3byBpbnRvIG9uZSByb3V0aW5lLgoKRXh0 cmEgc3VzcGVuc2UhIDopCgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNA Y2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX21tYW4uYyAgICAgIHwgIDQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9wbS5jICAgICAgICB8ICA2ICstCj4gICAuLi4vZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0 cy9pOTE1X2dlbV9jb250ZXh0LmMgfCAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv c2VsZnRlc3RfdGltZWxpbmUuYyAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jICAgICAgICAgICB8ICA2ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oICAgICAgICAgICAgICAgfCAgMyArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYyAgICAgICAgICAgICAgIHwgNjggKystLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyAgICAgICAgIHwgMTIgKystLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgICAgIHwgIDIgKy0KPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jICAgICAgICAgICB8IDIxICsrKysr LQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmggICAgICAgICAgIHwgIDMg Ky0KPiAgIC4uLi9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmMgICB8ICA0 ICstCj4gICAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfbGl2ZV90ZXN0LmMgICAgfCAg NCArLQo+ICAgLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgIHwg IDIgKy0KPiAgIDE0IGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDk5IGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f bW1hbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYwo+IGluZGV4 IDlhOGMzMDdjNWFlYi4uNzYxYWIwMDc2YTZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vaTkxNV9nZW1fbW1hbi5jCj4gQEAgLTQyOSw5ICs0MjksNyBAQCBzdGF0aWMgaW50IGNyZWF0 ZV9tbWFwX29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgCj4gICAJ LyogQXR0ZW1wdCB0byByZWFwIHNvbWUgbW1hcCBzcGFjZSBmcm9tIGRlYWQgb2JqZWN0cyAqLwo+ ICAgCWRvIHsKPiAtCQllcnIgPSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGk5MTUsCj4gLQkJCQkJ ICAgICBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSwKPiAtCQkJCQkgICAgIE1BWF9TQ0hFRFVMRV9U SU1FT1VUKTsKPiArCQllcnIgPSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGk5MTUsIE1BWF9TQ0hF RFVMRV9USU1FT1VUKTsKPiAgIAkJaWYgKGVycikKPiAgIAkJCWJyZWFrOwo+ICAgCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BtLmMKPiBpbmRleCBlODNlZWQ4ZmE0NTIuLmFmYmNm OTIxOTI2NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f cG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wbS5jCj4gQEAg LTI1LDcgKzI1LDcgQEAgc3RhdGljIHZvaWQgcmV0aXJlX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29y a19zdHJ1Y3QgKndvcmspCj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPQo+ICAg CQljb250YWluZXJfb2Yod29yaywgdHlwZW9mKCppOTE1KSwgZ2VtLnJldGlyZV93b3JrLndvcmsp Owo+ICAgCj4gLQlpOTE1X3JldGlyZV9yZXF1ZXN0cyhpOTE1KTsKPiArCWk5MTVfcmV0aXJlX3Jl cXVlc3RzKGk5MTUsIDApOwoKTWFqb3JpdHkgb2YgY2FsbGVycyBlbmQgdXAgd2l0aCAiLCAwIiB3 aGljaCBsb29rcyBhIGJpdCBhZXN0aGV0aWNhbGx5IApub3QgcGxlYXNpbmcuIEhvdyBhYm91dCB5 b3UgYWRkIF9faTkxNV9yZXRpcmVfcmVxdWVzdHMoaTkxNSwgdGltZW91dCkgCmluc3RlYWQgZm9y IHRob3NlIGZldyBjYWxsZXJzIHdoaWNoIG5lZWQgaXQ/IE9yIAppOTE1X3JldGlyZV9yZXF1ZXN0 c193YWl0L3N5bmMvdGltZW91dD8KCj4gICAKPiAgIAlxdWV1ZV9kZWxheWVkX3dvcmsoaTkxNS0+ d3EsCj4gICAJCQkgICAmaTkxNS0+Z2VtLnJldGlyZV93b3JrLAo+IEBAIC01OSw5ICs1OSw3IEBA IHN0YXRpYyBib29sIHN3aXRjaF90b19rZXJuZWxfY29udGV4dF9zeW5jKHN0cnVjdCBpbnRlbF9n dCAqZ3QpCj4gICB7Cj4gICAJYm9vbCByZXN1bHQgPSAhaW50ZWxfZ3RfaXNfd2VkZ2VkKGd0KTsK PiAgIAo+IC0JaWYgKGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZ3QtPmk5MTUsCj4gLQkJCQkgICBJ OTE1X1dBSVRfRk9SX0lETEVfQk9PU1QsCj4gLQkJCQkgICBJOTE1X0dFTV9JRExFX1RJTUVPVVQp ID09IC1FVElNRSkgewo+ICsJaWYgKGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZ3QtPmk5MTUsIEk5 MTVfR0VNX0lETEVfVElNRU9VVCkgPT0gLUVUSU1FKSB7CgpUaGlzIG5vdyBlbmRzIHVwIGludGVy cnVwdGlibGUgc2xlZXAgb24gYSBkcml2ZXIgbG9hZCBwYXRoIChhbmQgcHJvYmFibHkgCm90aGVy cykgYW5kIEkgYW0gbm90IHN1cmUgaWYgdGhhdCBpcyBva2F5LiBIb3cgYWJvdXQgd2Uga2VlcCB0 aGUgCmludGVycnVwdGlibGUgYW5ub3RhdGlvbj8KCj4gICAJCS8qIFhYWCBoaWRlIHdhcm5pbmcg ZnJvbSBnZW1fZWlvICovCj4gICAJCWlmIChpOTE1X21vZHBhcmFtcy5yZXNldCkgewo+ICAgCQkJ ZGV2X2VycihndC0+aTkxNS0+ZHJtLmRldiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYwo+IGluZGV4IGI4N2UzNWE3MTNi OC4uYmM0YzhkNzYzMDI0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9z ZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKPiBAQCAtMzA0LDcgKzMwNCw3IEBAIGNy ZWF0ZV90ZXN0X29iamVjdChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIAlpbnQg ZXJyOwo+ICAgCj4gICAJLyogS2VlcCBpbiBHRU0ncyBnb29kIGdyYWNlcyAqLwo+IC0JaTkxNV9y ZXRpcmVfcmVxdWVzdHModm0tPmk5MTUpOwo+ICsJaTkxNV9yZXRpcmVfcmVxdWVzdHModm0tPmk5 MTUsIDApOwo+ICAgCj4gICAJc2l6ZSA9IG1pbih2bS0+dG90YWwgLyAyLCAxMDI0dWxsICogRFdf UEVSX1BBR0UgKiBQQUdFX1NJWkUpOwo+ICAgCXNpemUgPSByb3VuZF9kb3duKHNpemUsIERXX1BF Ul9QQUdFICogUEFHRV9TSVpFKTsKPiBAQCAtOTIzLDcgKzkyMyw3IEBAIF9fc3NldV9maW5pc2go Y29uc3QgY2hhciAqbmFtZSwKPiAgIAo+ICAgCWlmICgoZmxhZ3MgJiBURVNUX0lETEUpICYmIHJl dCA9PSAwKSB7Cj4gICAJCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoY2UtPmVuZ2luZS0+ aTkxNSwKPiAtCQkJCQkgICAgIDAsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPiArCQkJCQkgICAg IE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPiAgIAkJaWYgKHJldCkKPiAgIAkJCXJldHVybiByZXQ7 Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfdGlt ZWxpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3RpbWVsaW5lLmMKPiBp bmRleCAxNmFiZmFiZjA4YzcuLmIwYjBmYTVmOTFkZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9zZWxmdGVzdF90aW1lbGluZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Qvc2VsZnRlc3RfdGltZWxpbmUuYwo+IEBAIC03MzQsNyArNzM0LDcgQEAgc3RhdGlj IGludCBsaXZlX2h3c3Bfd3JhcCh2b2lkICphcmcpCj4gICAJCQlnb3RvIG91dDsKPiAgIAkJfQo+ ICAgCj4gLQkJaTkxNV9yZXRpcmVfcmVxdWVzdHMoaTkxNSk7IC8qIHJlY3ljbGUgSFdTUCAqLwo+ ICsJCWk5MTVfcmV0aXJlX3JlcXVlc3RzKGk5MTUsIDApOyAvKiByZWN5Y2xlIEhXU1AgKi8KPiAg IAl9Cj4gICAKPiAgIG91dDoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4 IDA5YzZjNDg1YTczMi4uZDc0MTBmM2Y1NzZmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMKPiBAQCAtMzYxMiwxMiArMzYxMiwxMCBAQCBpOTE1X2Ryb3BfY2FjaGVzX3NldCh2 b2lkICpkYXRhLCB1NjQgdmFsKQo+ICAgCQlpbnRlbF9ndF9zZXRfd2VkZ2VkKCZpOTE1LT5ndCk7 Cj4gICAKPiAgIAlpZiAodmFsICYgRFJPUF9SRVRJUkUpCj4gLQkJaTkxNV9yZXRpcmVfcmVxdWVz dHMoaTkxNSk7Cj4gKwkJaTkxNV9yZXRpcmVfcmVxdWVzdHMoaTkxNSwgMCk7Cj4gICAKPiAgIAlp ZiAodmFsICYgKERST1BfSURMRSB8IERST1BfQUNUSVZFKSkgewo+IC0JCXJldCA9IGk5MTVfZ2Vt X3dhaXRfZm9yX2lkbGUoaTkxNSwKPiAtCQkJCQkgICAgIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxF LAo+IC0JCQkJCSAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+ICsJCXJldCA9IGk5MTVfZ2Vt X3dhaXRfZm9yX2lkbGUoaTkxNSwgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+ICAgCQlpZiAocmV0 KQo+ICAgCQkJcmV0dXJuIHJldDsKPiAgIAl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5k ZXggYjMzZmM3OTcyZTZiLi4zZDFkNjUyNDMxYmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBAQCAtMjMxNCw4ICsyMzE0LDcgQEAgdm9pZCBpOTE1X2dlbV9kcml2ZXJfcmVnaXN0ZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwo+ICAgdm9pZCBpOTE1X2dlbV9kcml2ZXJf dW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gICB2b2lkIGk5MTVf Z2VtX2RyaXZlcl9yZW1vdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAg IHZvaWQgaTkxNV9nZW1fZHJpdmVyX3JlbGVhc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKPiAtaW50IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+IC0JCQkgICB1bnNpZ25lZCBpbnQgZmxhZ3MsIGxvbmcgdGltZW91 dCk7Cj4gK2ludCBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgbG9uZyB0aW1lb3V0KTsKPiAgIHZvaWQgaTkxNV9nZW1fc3VzcGVuZChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAgdm9pZCBpOTE1X2dlbV9zdXNwZW5k X2xhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgIHZvaWQgaTkxNV9n ZW1fcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gaW5kZXggMjI1ZmQyMmFmODU4Li5jNWYxYzIwNDNmOTcgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtODkwLDc5ICs4OTAsMTkgQEAgdm9pZCBpOTE1X2dl bV9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAJfQo+ ICAgfQo+ICAgCj4gLXN0YXRpYyBsb25nCj4gLXdhaXRfZm9yX3RpbWVsaW5lcyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAtCQkgICB1bnNpZ25lZCBpbnQgd2FpdCwgbG9uZyB0aW1l b3V0KQo+IC17Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3RfdGltZWxpbmVzICp0aW1lbGluZXMgPSAmaTkx NS0+Z3QudGltZWxpbmVzOwo+IC0Jc3RydWN0IGludGVsX3RpbWVsaW5lICp0bDsKPiAtCXVuc2ln bmVkIGxvbmcgZmxhZ3M7Cj4gLQo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJnRpbWVsaW5lcy0+bG9j aywgZmxhZ3MpOwo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeSh0bCwgJnRpbWVsaW5lcy0+YWN0aXZl X2xpc3QsIGxpbmspIHsKPiAtCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKPiAtCj4gLQkJZmVu Y2UgPSBpOTE1X2FjdGl2ZV9mZW5jZV9nZXQoJnRsLT5sYXN0X3JlcXVlc3QpOwo+IC0JCWlmICgh ZmVuY2UpCj4gLQkJCWNvbnRpbnVlOwo+IC0KPiAtCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0 aW1lbGluZXMtPmxvY2ssIGZsYWdzKTsKPiAtCj4gLQkJaWYgKCFkbWFfZmVuY2VfaXNfaTkxNShm ZW5jZSkpIHsKPiAtCQkJdGltZW91dCA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZmVuY2UsCj4g LQkJCQkJCQkgZmxhZ3MgJiBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSwKPiAtCQkJCQkJCSB0aW1l b3V0KTsKPiAtCQl9IGVsc2Ugewo+IC0JCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSA9IHRvX3Jl cXVlc3QoZmVuY2UpOwo+IC0KPiAtCQkJLyoKPiAtCQkJICogIlJhY2UtdG8taWRsZSIuCj4gLQkJ CSAqCj4gLQkJCSAqIFN3aXRjaGluZyB0byB0aGUga2VybmVsIGNvbnRleHQgaXMgb2Z0ZW4gdXNl ZCBhcwo+IC0JCQkgKiBhIHN5bmNocm9ub3VzIHN0ZXAgcHJpb3IgdG8gaWRsaW5nLCBlLmcuIGlu IHN1c3BlbmQKPiAtCQkJICogZm9yIGZsdXNoaW5nIGFsbCBjdXJyZW50IG9wZXJhdGlvbnMgdG8g bWVtb3J5IGJlZm9yZQo+IC0JCQkgKiBzbGVlcGluZy4gVGhlc2Ugd2Ugd2FudCB0byBjb21wbGV0 ZSBhcyBxdWlja2x5IGFzCj4gLQkJCSAqIHBvc3NpYmxlIHRvIGF2b2lkIHByb2xvbmdlZCBzdGFs bHMsIHNvIGFsbG93IHRoZSBncHUKPiAtCQkJICogdG8gYm9vc3QgdG8gbWF4aW11bSBjbG9ja3Mu Cj4gLQkJCSAqLwo+IC0JCQlpZiAoZmxhZ3MgJiBJOTE1X1dBSVRfRk9SX0lETEVfQk9PU1QpCj4g LQkJCQlnZW42X3Jwc19ib29zdChycSk7Cj4gLQo+IC0JCQl0aW1lb3V0ID0gaTkxNV9yZXF1ZXN0 X3dhaXQocnEsIGZsYWdzLCB0aW1lb3V0KTsKPiAtCQl9Cj4gLQo+IC0JCWRtYV9mZW5jZV9wdXQo ZmVuY2UpOwo+IC0JCWlmICh0aW1lb3V0IDwgMCkKPiAtCQkJcmV0dXJuIHRpbWVvdXQ7Cj4gLQo+ IC0JCS8qIHJlc3RhcnQgYWZ0ZXIgcmVhY3F1aXJpbmcgdGhlIGxvY2sgKi8KPiAtCQlzcGluX2xv Y2tfaXJxc2F2ZSgmdGltZWxpbmVzLT5sb2NrLCBmbGFncyk7Cj4gLQkJdGwgPSBsaXN0X2VudHJ5 KCZ0aW1lbGluZXMtPmFjdGl2ZV9saXN0LCB0eXBlb2YoKnRsKSwgbGluayk7Cj4gLQl9Cj4gLQlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZ0aW1lbGluZXMtPmxvY2ssIGZsYWdzKTsKPiAtCj4gLQly ZXR1cm4gdGltZW91dDsKPiAtfQo+IC0KPiAtaW50IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gLQkJCSAgIHVuc2lnbmVkIGludCBmbGFncywg bG9uZyB0aW1lb3V0KQo+ICtpbnQgaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSwgbG9uZyB0aW1lb3V0KQo+ICAgewo+ICAgCS8qIElmIHRoZSBkZXZp Y2UgaXMgYXNsZWVwLCB3ZSBoYXZlIG5vIHJlcXVlc3RzIG91dHN0YW5kaW5nICovCj4gICAJaWYg KCFpbnRlbF9ndF9wbV9pc19hd2FrZSgmaTkxNS0+Z3QpKQo+ICAgCQlyZXR1cm4gMDsKPiAgIAo+ IC0JZG8gewo+IC0JCXRpbWVvdXQgPSB3YWl0X2Zvcl90aW1lbGluZXMoaTkxNSwgZmxhZ3MsIHRp bWVvdXQpOwo+IC0JCWlmICh0aW1lb3V0IDwgMCkKPiAtCQkJcmV0dXJuIHRpbWVvdXQ7Cj4gLQo+ ICsJd2hpbGUgKCh0aW1lb3V0ID0gaTkxNV9yZXRpcmVfcmVxdWVzdHMoaTkxNSwgdGltZW91dCkp ID4gMCkgewo+ICAgCQljb25kX3Jlc2NoZWQoKTsKPiAgIAkJaWYgKHNpZ25hbF9wZW5kaW5nKGN1 cnJlbnQpKQo+ICAgCQkJcmV0dXJuIC1FSU5UUjsKPiArCX0KPiAgIAo+IC0JfSB3aGlsZSAoaTkx NV9yZXRpcmVfcmVxdWVzdHMoaTkxNSkpOwo+IC0KPiAtCXJldHVybiAwOwo+ICsJcmV0dXJuIHRp bWVvdXQ7Cj4gICB9Cj4gICAKPiAgIHN0cnVjdCBpOTE1X3ZtYSAqCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ldmljdC5jCj4gaW5kZXggNDRmNWI2MzhmYTQzLi43MDgwNTVhMzg4N2UgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKPiBAQCAtNDYsOSArNDYsNyBA QCBzdGF0aWMgaW50IGdndHRfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4g ICAJICogdGhlIGhvcGVzIHRoYXQgd2UgY2FuIHRoZW4gcmVtb3ZlIGNvbnRleHRzIGFuZCB0aGUg bGlrZSBvbmx5Cj4gICAJICogYm91bmQgYnkgdGhlaXIgYWN0aXZlIHJlZmVyZW5jZS4KPiAgIAkg Ki8KPiAtCXJldHVybiBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGk5MTUsCj4gLQkJCQkgICAgICBJ OTE1X1dBSVRfSU5URVJSVVBUSUJMRSwKPiAtCQkJCSAgICAgIE1BWF9TQ0hFRFVMRV9USU1FT1VU KTsKPiArCXJldHVybiBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGk5MTUsIE1BWF9TQ0hFRFVMRV9U SU1FT1VUKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIGJvb2wKPiBAQCAtMTI2LDYgKzEyNCw4IEBA IGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwK PiAgIAkJCQkgICAgbWluX3NpemUsIGFsaWdubWVudCwgY2FjaGVfbGV2ZWwsCj4gICAJCQkJICAg IHN0YXJ0LCBlbmQsIG1vZGUpOwo+ICAgCj4gKwlpOTE1X3JldGlyZV9yZXF1ZXN0cyh2bS0+aTkx NSwgMCk7Cj4gKwo+ICAgc2VhcmNoX2FnYWluOgo+ICAgCWFjdGl2ZSA9IE5VTEw7Cj4gICAJSU5J VF9MSVNUX0hFQUQoJmV2aWN0aW9uX2xpc3QpOwo+IEBAIC0yNjUsMTMgKzI2NSwxMyBAQCBpbnQg aTkxNV9nZW1fZXZpY3RfZm9yX25vZGUoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4g ICAKPiAgIAl0cmFjZV9pOTE1X2dlbV9ldmljdF9ub2RlKHZtLCB0YXJnZXQsIGZsYWdzKTsKPiAg IAo+IC0JLyogUmV0aXJlIGJlZm9yZSB3ZSBzZWFyY2ggdGhlIGFjdGl2ZSBsaXN0LiBBbHRob3Vn aCB3ZSBoYXZlCj4gKwkvKgo+ICsJICogUmV0aXJlIGJlZm9yZSB3ZSBzZWFyY2ggdGhlIGFjdGl2 ZSBsaXN0LiBBbHRob3VnaCB3ZSBoYXZlCj4gICAJICogcmVhc29uYWJsZSBhY2N1cmFjeSBpbiBv dXIgcmV0aXJlbWVudCBsaXN0cywgd2UgbWF5IGhhdmUKPiAgIAkgKiBhIHN0cmF5IHBpbiAocHJl dmVudGluZyBldmljdGlvbikgdGhhdCBjYW4gb25seSBiZSByZXNvbHZlZCBieQo+ICAgCSAqIHJl dGlyaW5nLgo+ICAgCSAqLwo+IC0JaWYgKCEoZmxhZ3MgJiBQSU5fTk9OQkxPQ0spKQo+IC0JCWk5 MTVfcmV0aXJlX3JlcXVlc3RzKHZtLT5pOTE1KTsKPiArCWk5MTVfcmV0aXJlX3JlcXVlc3RzKHZt LT5pOTE1LCAwKTsKPiAgIAo+ICAgCWNoZWNrX2NvbG9yID0gdm0tPm1tLmNvbG9yX2FkanVzdDsK PiAgIAlpZiAoY2hlY2tfY29sb3IpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ IGluZGV4IDYwNjc2ZGUwNTlhNy4uMmI3YTRkNDliMmU2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKPiBAQCAtMjUyNCw3ICsyNTI0LDcgQEAgdm9pZCBpOTE1X2dlbV9ndHRf ZmluaXNoX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJc3RydWN0 IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKPiAgIAo+ICAgCWlmICh1bmxpa2Vs eShnZ3R0LT5kb19pZGxlX21hcHMpKSB7Cj4gLQkJaWYgKGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUo ZGV2X3ByaXYsIDAsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKSkgewo+ICsJCWlmIChpOTE1X3JldGly ZV9yZXF1ZXN0cyhkZXZfcHJpdiwgTUFYX1NDSEVEVUxFX1RJTUVPVVQpKSB7CgpXaHkgdGhpcyBj b3VsZG4ndCBzdGF0ZSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlPwoKPiAgIAkJCURSTV9FUlJPUigi RmFpbGVkIHRvIHdhaXQgZm9yIGlkbGU7IFZUJ2QgbWF5IGhhbmcuXG4iKTsKPiAgIAkJCS8qIFdh aXQgYSBiaXQsIGluIGhvcGVzIGl0IGF2b2lkcyB0aGUgaGFuZyAqLwo+ICAgCQkJdWRlbGF5KDEw KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+IGluZGV4IDRlY2ZhZTE0MzI3Ni4u MWM1ZTgwNGM5Y2EyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVx dWVzdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPiBAQCAt MTQyOSwxMCArMTQyOSwxMSBAQCBsb25nIGk5MTVfcmVxdWVzdF93YWl0KHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxLAo+ICAgCXJldHVybiB0aW1lb3V0Owo+ICAgfQo+ICAgCj4gLWJvb2wgaTkxNV9y ZXRpcmVfcmVxdWVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gK2xvbmcgaTkx NV9yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGxvbmcgdGlt ZW91dCkKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfZ3RfdGltZWxpbmVzICp0aW1lbGluZXMgPSAm aTkxNS0+Z3QudGltZWxpbmVzOwo+ICAgCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwsICp0bjsK PiArCXVuc2lnbmVkIGxvbmcgYWN0aXZlX2NvdW50ID0gMDsKPiAgIAl1bnNpZ25lZCBsb25nIGZs YWdzOwo+ICAgCUxJU1RfSEVBRChmcmVlKTsKPiAgIAo+IEBAIC0xNDQ2LDEzICsxNDQ3LDI3IEBA IGJvb2wgaTkxNV9yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp Cj4gICAJCXRsLT5hY3RpdmVfY291bnQrKzsgLyogcGluIHRoZSBsaXN0IGVsZW1lbnQgKi8KPiAg IAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdGltZWxpbmVzLT5sb2NrLCBmbGFncyk7Cj4gICAK PiArCQlpZiAodGltZW91dCA+IDApIHsKPiArCQkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4g Kwo+ICsJCQlmZW5jZSA9IGk5MTVfYWN0aXZlX2ZlbmNlX2dldCgmdGwtPmxhc3RfcmVxdWVzdCk7 Cj4gKwkJCWlmIChmZW5jZSkgewo+ICsJCQkJdGltZW91dCA9IGRtYV9mZW5jZV93YWl0X3RpbWVv dXQoZmVuY2UsCj4gKwkJCQkJCQkJIHRydWUsCj4gKwkJCQkJCQkJIHRpbWVvdXQpOwo+ICsJCQkJ ZG1hX2ZlbmNlX3B1dChmZW5jZSk7Cj4gKwkJCX0KPiArCQl9Cj4gKwo+ICAgCQlyZXRpcmVfcmVx dWVzdHModGwpOwo+ICAgCj4gICAJCXNwaW5fbG9ja19pcnFzYXZlKCZ0aW1lbGluZXMtPmxvY2ss IGZsYWdzKTsKPiAgIAo+ICAgCQkvKiBSZXN1bWUgaXRlcmF0aW9uIGFmdGVyIGRyb3BwaW5nIGxv Y2sgKi8KPiAgIAkJbGlzdF9zYWZlX3Jlc2V0X25leHQodGwsIHRuLCBsaW5rKTsKPiAtCQlpZiAo IS0tdGwtPmFjdGl2ZV9jb3VudCkKPiArCQlpZiAoLS10bC0+YWN0aXZlX2NvdW50KQo+ICsJCQlh Y3RpdmVfY291bnQgKz0gISFyY3VfYWNjZXNzX3BvaW50ZXIodGwtPmxhc3RfcmVxdWVzdC5mZW5j ZSk7Cj4gKwkJZWxzZQo+ICAgCQkJbGlzdF9kZWwoJnRsLT5saW5rKTsKPiAgIAo+ICAgCQltdXRl eF91bmxvY2soJnRsLT5tdXRleCk7Cj4gQEAgLTE0NjgsNyArMTQ4Myw3IEBAIGJvb2wgaTkxNV9y ZXRpcmVfcmVxdWVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAJbGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKHRsLCB0biwgJmZyZWUsIGxpbmspCj4gICAJCV9faW50ZWxfdGlt ZWxpbmVfZnJlZSgmdGwtPmtyZWYpOwo+ICAgCj4gLQlyZXR1cm4gIWxpc3RfZW1wdHkoJnRpbWVs aW5lcy0+YWN0aXZlX2xpc3QpOwo+ICsJcmV0dXJuIGFjdGl2ZV9jb3VudCA/IHRpbWVvdXQgOiAw Owo+ICAgfQo+ICAgCj4gICAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1Qp Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgKPiBpbmRleCA1N2EyMTkzYzY0ZDEuLjJh NWQ2ODJhYTZiMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVl c3QuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCj4gQEAgLTMx MCw3ICszMTAsNiBAQCBsb25nIGk5MTVfcmVxdWVzdF93YWl0KHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJxLAo+ICAgI2RlZmluZSBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRQlCSVQoMCkKPiAgICNkZWZp bmUgSTkxNV9XQUlUX1BSSU9SSVRZCUJJVCgxKSAvKiBzbWFsbCBwcmlvcml0eSBidW1wIGZvciB0 aGUgcmVxdWVzdCAqLwo+ICAgI2RlZmluZSBJOTE1X1dBSVRfQUxMCQlCSVQoMikgLyogdXNlZCBi eSBpOTE1X2dlbV9vYmplY3Rfd2FpdCgpICovCj4gLSNkZWZpbmUgSTkxNV9XQUlUX0ZPUl9JRExF X0JPT1NUIEJJVCgzKQo+ICAgCj4gICBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9yZXF1ZXN0X3Np Z25hbGVkKGNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAgewo+IEBAIC00NDAsNiAr NDM5LDYgQEAgc3RhdGljIGlubGluZSBib29sIGk5MTVfcmVxdWVzdF9oYXNfbm9wcmVlbXB0KGNv bnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAgCXJldHVybiB1bmxpa2VseShycS0+Zmxh Z3MgJiBJOTE1X1JFUVVFU1RfTk9QUkVFTVBUKTsKPiAgIH0KPiAgIAo+IC1ib29sIGk5MTVfcmV0 aXJlX3JlcXVlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKPiArbG9uZyBpOTE1 X3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgbG9uZyB0aW1l b3V0KTsKPiAgIAo+ICAgI2VuZGlmIC8qIEk5MTVfUkVRVUVTVF9IICovCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmMKPiBpbmRleCAyYTVmYmU0 NmVhOWYuLmVkNDk2YmQ2ZDg0ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvaWd0X2ZsdXNoX3Rlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5jCj4gQEAgLTE4LDggKzE4LDcgQEAgaW50IGlndF9mbHVz aF90ZXN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAgCj4gICAJY29uZF9yZXNj aGVkKCk7Cj4gICAKPiAtCWk5MTVfcmV0aXJlX3JlcXVlc3RzKGk5MTUpOwo+IC0JaWYgKGk5MTVf Z2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwgMCwgSFogLyA1KSA9PSAtRVRJTUUpIHsKPiArCWlmIChp OTE1X2dlbV93YWl0X2Zvcl9pZGxlKGk5MTUsIEhaIC8gNSkgPT0gLUVUSU1FKSB7Cj4gICAJCXBy X2VycigiJXBTIHRpbWVkIG91dCwgY2FuY2VsbGluZyBhbGwgZnVydGhlciB0ZXN0aW5nLlxuIiwK PiAgIAkJICAgICAgIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7Cj4gICAKPiBAQCAtMzAs NyArMjksNiBAQCBpbnQgaWd0X2ZsdXNoX3Rlc3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCj4gICAJCWludGVsX2d0X3NldF93ZWRnZWQoJmk5MTUtPmd0KTsKPiAgIAkJcmV0ID0gLUVJ TzsKPiAgIAl9Cj4gLQlpOTE1X3JldGlyZV9yZXF1ZXN0cyhpOTE1KTsKPiAgIAo+ICAgCXJldHVy biByZXQ7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9pZ3RfbGl2ZV90ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2xp dmVfdGVzdC5jCj4gaW5kZXggMDRhNmY4OGZkZjY0Li5lYWU5MGY5N2RmNmMgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9saXZlX3Rlc3QuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfbGl2ZV90ZXN0LmMKPiBAQCAtMjMs OSArMjMsNyBAQCBpbnQgaWd0X2xpdmVfdGVzdF9iZWdpbihzdHJ1Y3QgaWd0X2xpdmVfdGVzdCAq dCwKPiAgIAl0LT5mdW5jID0gZnVuYzsKPiAgIAl0LT5uYW1lID0gbmFtZTsKPiAgIAo+IC0JZXJy ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShpOTE1LAo+IC0JCQkJICAgICBJOTE1X1dBSVRfSU5U RVJSVVBUSUJMRSwKPiAtCQkJCSAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+ICsJZXJyID0g aTkxNV9nZW1fd2FpdF9mb3JfaWRsZShpOTE1LCBNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4gICAJ aWYgKGVycikgewo+ICAgCQlwcl9lcnIoIiVzKCVzKTogZmFpbGVkIHRvIGlkbGUgYmVmb3JlLCB3 aXRoIGVycj0lZCEiLAo+ICAgCQkgICAgICAgZnVuYywgbmFtZSwgZXJyKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCj4gaW5kZXggZjNl OWI1ZDdkMDk4Li42NmNjNTYzNGRiMWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCj4gQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBt b2NrX2RldmljZV9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgIAlkbyB7 Cj4gICAJCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKQo+ICAgCQkJbW9ja19lbmdp bmVfZmx1c2goZW5naW5lKTsKPiAtCX0gd2hpbGUgKGk5MTVfcmV0aXJlX3JlcXVlc3RzKGk5MTUp KTsKPiArCX0gd2hpbGUgKGk5MTVfcmV0aXJlX3JlcXVlc3RzKGk5MTUsIE1BWF9TQ0hFRFVMRV9U SU1FT1VUKSk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkIG1vY2tfZGV2aWNlX3JlbGVhc2Uo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=