From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 11/27] drm/i915: Merge wait_for_timelines with retire_request Date: Wed, 25 Sep 2019 11:47:35 +0100 Message-ID: <82f02941-20c4-d4fa-8b54-0885817de398@linux.intel.com> References: <20190925100137.17956-1-chris@chris-wilson.co.uk> <20190925100137.17956-12-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 mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id E26A36E823 for ; Wed, 25 Sep 2019 10:47:38 +0000 (UTC) In-Reply-To: <20190925100137.17956-12-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 Ck9uIDI1LzA5LzIwMTkgMTE6MDEsIENocmlzIFdpbHNvbiB3cm90ZToKPiB3YWl0X2Zvcl90aW1l bGluZXMgaXMgZXNzZW50aWFsbHkgdGhlIHNhbWUgbG9vcCBhcyByZXRpcmluZyByZXF1ZXN0cwo+ ICh3aXRoIGFuIGV4dHJhIHRpbWVvdXQpLCBzbyBtZXJnZSB0aGUgdHdvIGludG8gb25lIHJvdXRp bmUuCj4gCj4gdjI6IGk5MTVfcmV0aXJlX3JlcXVlc3RzX3RpbWVvdXQgYW5kIGtlZXAgVlQnZCB3 L2EgYXMgIWludGVycnVwdGlibGUKPiAKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9tbWFuLmMgICAgICB8ICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vaTkxNV9nZW1fcG0uYyAgICAgICAgfCAgNCArLQo+ICAgLi4uL2RybS9pOTE1L2dlbS9zZWxm dGVzdHMvaTkxNV9nZW1fY29udGV4dC5jIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jICAgICAgICAgICB8ICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgfCAgMyArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAgIHwgNjcgKystLS0tLS0tLS0tLS0tLS0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyAgICAgICAgIHwgMTIgKystLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgICAgIHwgIDQgKy0K PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jICAgICAgICAgICB8IDI2ICsr KysrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oICAgICAgICAgICB8 ICA3ICstCj4gICAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5jICAg fCAgNCArLQo+ICAgLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2xpdmVfdGVzdC5jICAg IHwgIDQgKy0KPiAgIC4uLi9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5j ICB8ICAyICstCj4gICAxMyBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA5NCBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX21tYW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMKPiBp bmRleCBjNDQ2MTQ4OTU0ODcuLjljYjU5ZmUxYTczNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYwo+IEBAIC00MzEsOSArNDMxLDcgQEAgc3RhdGljIGludCBj cmVhdGVfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAgIAo+ ICAgCS8qIEF0dGVtcHQgdG8gcmVhcCBzb21lIG1tYXAgc3BhY2UgZnJvbSBkZWFkIG9iamVjdHMg Ki8KPiAgIAlkbyB7Cj4gLQkJZXJyID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShpOTE1LAo+IC0J CQkJCSAgICAgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUsCj4gLQkJCQkJICAgICBNQVhfU0NIRURV TEVfVElNRU9VVCk7Cj4gKwkJZXJyID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShpOTE1LCBNQVhf U0NIRURVTEVfVElNRU9VVCk7Cj4gICAJCWlmIChlcnIpCj4gICAJCQlicmVhazsKPiAgIAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcG0uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wbS5jCj4gaW5kZXggYzljOWU0OTM5MWZhLi4w NGE5YTI3ZDY1OWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX3BtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcG0uYwo+ IEBAIC01OSw5ICs1OSw3IEBAIHN0YXRpYyBib29sIHN3aXRjaF90b19rZXJuZWxfY29udGV4dF9z eW5jKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCj4gICB7Cj4gICAJYm9vbCByZXN1bHQgPSAhaW50ZWxf Z3RfaXNfd2VkZ2VkKGd0KTsKPiAgIAo+IC0JaWYgKGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZ3Qt Pmk5MTUsCj4gLQkJCQkgICBJOTE1X1dBSVRfRk9SX0lETEVfQk9PU1QsCj4gLQkJCQkgICBJOTE1 X0dFTV9JRExFX1RJTUVPVVQpID09IC1FVElNRSkgewo+ICsJaWYgKGk5MTVfZ2VtX3dhaXRfZm9y X2lkbGUoZ3QtPmk5MTUsIEk5MTVfR0VNX0lETEVfVElNRU9VVCkgPT0gLUVUSU1FKSB7Cj4gICAJ CS8qIFhYWCBoaWRlIHdhcm5pbmcgZnJvbSBnZW1fZWlvICovCj4gICAJCWlmIChpOTE1X21vZHBh cmFtcy5yZXNldCkgewo+ICAgCQkJZGV2X2VycihndC0+aTkxNS0+ZHJtLmRldiwKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQu Ywo+IGluZGV4IDgyZjU0ZTgxOWViMC4uYjI2ZjU1MGY4NDMwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKPiBA QCAtOTIzLDcgKzkyMyw3IEBAIF9fc3NldV9maW5pc2goY29uc3QgY2hhciAqbmFtZSwKPiAgIAo+ ICAgCWlmICgoZmxhZ3MgJiBURVNUX0lETEUpICYmIHJldCA9PSAwKSB7Cj4gICAJCXJldCA9IGk5 MTVfZ2VtX3dhaXRfZm9yX2lkbGUoY2UtPmVuZ2luZS0+aTkxNSwKPiAtCQkJCQkgICAgIDAsIE1B WF9TQ0hFRFVMRV9USU1FT1VUKTsKPiArCQkJCQkgICAgIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsK PiAgIAkJaWYgKHJldCkKPiAgIAkJCXJldHVybiByZXQ7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwo+IGluZGV4IDdiYmM5ZWRhOGViZS4uMDMzNzY0MzI2NjAxIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMzYzMiw5ICszNjMyLDcgQEAgaTkx NV9kcm9wX2NhY2hlc19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKPiAgIAkJaTkxNV9yZXRpcmVf cmVxdWVzdHMoaTkxNSk7Cj4gICAKPiAgIAlpZiAodmFsICYgKERST1BfSURMRSB8IERST1BfQUNU SVZFKSkgewo+IC0JCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwKPiAtCQkJCQkg ICAgIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFLAo+IC0JCQkJCSAgICAgTUFYX1NDSEVEVUxFX1RJ TUVPVVQpOwo+ICsJCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwgTUFYX1NDSEVE VUxFX1RJTUVPVVQpOwo+ICAgCQlpZiAocmV0KQo+ICAgCQkJcmV0dXJuIHJldDsKPiAgIAl9Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMzYxMWZkNTQ0NmYzLi42ZTVkNWU0Y2E5MWQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjMyOCw4ICsyMzI4LDcgQEAgdm9p ZCBpOTE1X2dlbV9kcml2ZXJfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp Owo+ICAgdm9pZCBpOTE1X2dlbV9kcml2ZXJfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSk7Cj4gICB2b2lkIGk5MTVfZ2VtX2RyaXZlcl9yZW1vdmUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgIHZvaWQgaTkxNV9nZW1fZHJpdmVyX3JlbGVhc2Uo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAtaW50IGk5MTVfZ2VtX3dhaXRf Zm9yX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkgICB1bnNp Z25lZCBpbnQgZmxhZ3MsIGxvbmcgdGltZW91dCk7Cj4gK2ludCBpOTE1X2dlbV93YWl0X2Zvcl9p ZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgbG9uZyB0aW1lb3V0KTsKPiAg IHZvaWQgaTkxNV9nZW1fc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Owo+ICAgdm9pZCBpOTE1X2dlbV9zdXNwZW5kX2xhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KTsKPiAgIHZvaWQgaTkxNV9nZW1fcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggNDdjNTNiYjll Yjg5Li5hYjIzOTQ0NTcxZmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtODgz LDYxICs4ODMsNyBAQCB2b2lkIGk5MTVfZ2VtX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKPiAgIAl9Cj4gICB9Cj4gICAKPiAtc3RhdGljIGxvbmcKPiAtd2Fp dF9mb3JfdGltZWxpbmVzKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIHVuc2lnbmVkIGludCB3YWl0LCBs b25nIHRpbWVvdXQpCj4gLXsKPiAtCXN0cnVjdCBpbnRlbF9ndF90aW1lbGluZXMgKnRpbWVsaW5l cyA9ICZndC0+dGltZWxpbmVzOwo+IC0Jc3RydWN0IGludGVsX3RpbWVsaW5lICp0bDsKPiAtCXVu c2lnbmVkIGxvbmcgZmxhZ3M7Cj4gLQo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJnRpbWVsaW5lcy0+ bG9jaywgZmxhZ3MpOwo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeSh0bCwgJnRpbWVsaW5lcy0+YWN0 aXZlX2xpc3QsIGxpbmspIHsKPiAtCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKPiAtCj4gLQkJ ZmVuY2UgPSBpOTE1X2FjdGl2ZV9mZW5jZV9nZXQoJnRsLT5sYXN0X3JlcXVlc3QpOwo+IC0JCWlm ICghZmVuY2UpCj4gLQkJCWNvbnRpbnVlOwo+IC0KPiAtCQlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZ0aW1lbGluZXMtPmxvY2ssIGZsYWdzKTsKPiAtCj4gLQkJaWYgKCFkbWFfZmVuY2VfaXNfaTkx NShmZW5jZSkpIHsKPiAtCQkJdGltZW91dCA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZmVuY2Us Cj4gLQkJCQkJCQkgZmxhZ3MgJiBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSwKPiAtCQkJCQkJCSB0 aW1lb3V0KTsKPiAtCQl9IGVsc2Ugewo+IC0JCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSA9IHRv X3JlcXVlc3QoZmVuY2UpOwo+IC0KPiAtCQkJLyoKPiAtCQkJICogIlJhY2UtdG8taWRsZSIuCj4g LQkJCSAqCj4gLQkJCSAqIFN3aXRjaGluZyB0byB0aGUga2VybmVsIGNvbnRleHQgaXMgb2Z0ZW4g dXNlZCBhcwo+IC0JCQkgKiBhIHN5bmNocm9ub3VzIHN0ZXAgcHJpb3IgdG8gaWRsaW5nLCBlLmcu IGluIHN1c3BlbmQKPiAtCQkJICogZm9yIGZsdXNoaW5nIGFsbCBjdXJyZW50IG9wZXJhdGlvbnMg dG8gbWVtb3J5IGJlZm9yZQo+IC0JCQkgKiBzbGVlcGluZy4gVGhlc2Ugd2Ugd2FudCB0byBjb21w bGV0ZSBhcyBxdWlja2x5IGFzCj4gLQkJCSAqIHBvc3NpYmxlIHRvIGF2b2lkIHByb2xvbmdlZCBz dGFsbHMsIHNvIGFsbG93IHRoZSBncHUKPiAtCQkJICogdG8gYm9vc3QgdG8gbWF4aW11bSBjbG9j a3MuCj4gLQkJCSAqLwo+IC0JCQlpZiAoZmxhZ3MgJiBJOTE1X1dBSVRfRk9SX0lETEVfQk9PU1Qp Cj4gLQkJCQlnZW42X3Jwc19ib29zdChycSk7Cj4gLQo+IC0JCQl0aW1lb3V0ID0gaTkxNV9yZXF1 ZXN0X3dhaXQocnEsIGZsYWdzLCB0aW1lb3V0KTsKPiAtCQl9Cj4gLQo+IC0JCWRtYV9mZW5jZV9w dXQoZmVuY2UpOwo+IC0JCWlmICh0aW1lb3V0IDwgMCkKPiAtCQkJcmV0dXJuIHRpbWVvdXQ7Cj4g LQo+IC0JCS8qIHJlc3RhcnQgYWZ0ZXIgcmVhY3F1aXJpbmcgdGhlIGxvY2sgKi8KPiAtCQlzcGlu X2xvY2tfaXJxc2F2ZSgmdGltZWxpbmVzLT5sb2NrLCBmbGFncyk7Cj4gLQkJdGwgPSBsaXN0X2Vu dHJ5KCZ0aW1lbGluZXMtPmFjdGl2ZV9saXN0LCB0eXBlb2YoKnRsKSwgbGluayk7Cj4gLQl9Cj4g LQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0aW1lbGluZXMtPmxvY2ssIGZsYWdzKTsKPiAtCj4g LQlyZXR1cm4gdGltZW91dDsKPiAtfQo+IC0KPiAtaW50IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gLQkJCSAgIHVuc2lnbmVkIGludCBmbGFn cywgbG9uZyB0aW1lb3V0KQo+ICtpbnQgaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSwgbG9uZyB0aW1lb3V0KQo+ICAgewo+ICAgCXN0cnVjdCBpbnRl bF9ndCAqZ3QgPSAmaTkxNS0+Z3Q7Cj4gICAKPiBAQCAtOTQ1LDE4ICs4OTEsMTMgQEAgaW50IGk5 MTVfZ2VtX3dhaXRfZm9yX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gICAJ aWYgKCFpbnRlbF9ndF9wbV9pc19hd2FrZShndCkpCj4gICAJCXJldHVybiAwOwo+ICAgCj4gLQlk byB7Cj4gLQkJdGltZW91dCA9IHdhaXRfZm9yX3RpbWVsaW5lcyhndCwgZmxhZ3MsIHRpbWVvdXQp Owo+IC0JCWlmICh0aW1lb3V0IDwgMCkKPiAtCQkJcmV0dXJuIHRpbWVvdXQ7Cj4gLQo+ICsJd2hp bGUgKCh0aW1lb3V0ID0gaTkxNV9yZXRpcmVfcmVxdWVzdHNfdGltZW91dChpOTE1LCB0aW1lb3V0 KSkgPiAwKSB7Cj4gICAJCWNvbmRfcmVzY2hlZCgpOwo+ICAgCQlpZiAoc2lnbmFsX3BlbmRpbmco Y3VycmVudCkpCj4gICAJCQlyZXR1cm4gLUVJTlRSOwo+ICsJfQo+ICAgCj4gLQl9IHdoaWxlIChp OTE1X3JldGlyZV9yZXF1ZXN0cyhpOTE1KSk7Cj4gLQo+IC0JcmV0dXJuIDA7Cj4gKwlyZXR1cm4g dGltZW91dDsKPiAgIH0KPiAgIAo+ICAgc3RydWN0IGk5MTVfdm1hICoKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2V2aWN0LmMKPiBpbmRleCAwNTUyYmY5M2VlYTMuLjBhNDEyZjZkMDFkNyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYwo+IEBAIC00Niw5ICs0Niw3 IEBAIHN0YXRpYyBpbnQgZ2d0dF9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK PiAgIAkgKiB0aGUgaG9wZXMgdGhhdCB3ZSBjYW4gdGhlbiByZW1vdmUgY29udGV4dHMgYW5kIHRo ZSBsaWtlIG9ubHkKPiAgIAkgKiBib3VuZCBieSB0aGVpciBhY3RpdmUgcmVmZXJlbmNlLgo+ICAg CSAqLwo+IC0JcmV0dXJuIGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwKPiAtCQkJCSAgICAg IEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFLAo+IC0JCQkJICAgICAgTUFYX1NDSEVEVUxFX1RJTUVP VVQpOwo+ICsJcmV0dXJuIGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwgTUFYX1NDSEVEVUxF X1RJTUVPVVQpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgYm9vbAo+IEBAIC0xMjYsNiArMTI0LDgg QEAgaTkxNV9nZW1fZXZpY3Rfc29tZXRoaW5nKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt LAo+ICAgCQkJCSAgICBtaW5fc2l6ZSwgYWxpZ25tZW50LCBjb2xvciwKPiAgIAkJCQkgICAgc3Rh cnQsIGVuZCwgbW9kZSk7Cj4gICAKPiArCWk5MTVfcmV0aXJlX3JlcXVlc3RzKHZtLT5pOTE1KTsK PiArCj4gICBzZWFyY2hfYWdhaW46Cj4gICAJYWN0aXZlID0gTlVMTDsKPiAgIAlJTklUX0xJU1Rf SEVBRCgmZXZpY3Rpb25fbGlzdCk7Cj4gQEAgLTI2NCwxMyArMjY0LDEzIEBAIGludCBpOTE1X2dl bV9ldmljdF9mb3Jfbm9kZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIAo+ICAg CXRyYWNlX2k5MTVfZ2VtX2V2aWN0X25vZGUodm0sIHRhcmdldCwgZmxhZ3MpOwo+ICAgCj4gLQkv KiBSZXRpcmUgYmVmb3JlIHdlIHNlYXJjaCB0aGUgYWN0aXZlIGxpc3QuIEFsdGhvdWdoIHdlIGhh dmUKPiArCS8qCj4gKwkgKiBSZXRpcmUgYmVmb3JlIHdlIHNlYXJjaCB0aGUgYWN0aXZlIGxpc3Qu IEFsdGhvdWdoIHdlIGhhdmUKPiAgIAkgKiByZWFzb25hYmxlIGFjY3VyYWN5IGluIG91ciByZXRp cmVtZW50IGxpc3RzLCB3ZSBtYXkgaGF2ZQo+ICAgCSAqIGEgc3RyYXkgcGluIChwcmV2ZW50aW5n IGV2aWN0aW9uKSB0aGF0IGNhbiBvbmx5IGJlIHJlc29sdmVkIGJ5Cj4gICAJICogcmV0aXJpbmcu Cj4gICAJICovCj4gLQlpZiAoIShmbGFncyAmIFBJTl9OT05CTE9DSykpCj4gLQkJaTkxNV9yZXRp cmVfcmVxdWVzdHModm0tPmk5MTUpOwo+ICsJaTkxNV9yZXRpcmVfcmVxdWVzdHModm0tPmk5MTUp Owo+ICAgCj4gICAJaWYgKGk5MTVfdm1faGFzX2NhY2hlX2NvbG9yaW5nKHZtKSkgewo+ICAgCQkv KiBFeHBhbmQgc2VhcmNoIHRvIGNvdmVyIG5laWdoYm91cmluZyBndWFyZCBwYWdlcyAob3IgbGFj ayEpICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBpbmRleCBiZjU3YzQxZmEx ZmIuLjMwZWUwMTZhYzJiYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4g QEAgLTI1MjgsNyArMjUyOCw5IEBAIHZvaWQgaTkxNV9nZW1fZ3R0X2ZpbmlzaF9wYWdlcyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCXN0cnVjdCBpOTE1X2dndHQgKmdndHQg PSAmZGV2X3ByaXYtPmdndHQ7Cj4gICAKPiAgIAlpZiAodW5saWtlbHkoZ2d0dC0+ZG9faWRsZV9t YXBzKSkgewo+IC0JCWlmIChpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGRldl9wcml2LCAwLCBNQVhf U0NIRURVTEVfVElNRU9VVCkpIHsKPiArCQkvKiBYWFggVGhpcyBkb2VzIG5vdCBwcmV2ZW50IG1v cmUgcmVxdWVzdHMgYmVpbmcgc3VibWl0dGVkISAqLwo+ICsJCWlmIChpOTE1X3JldGlyZV9yZXF1 ZXN0c190aW1lb3V0KGRldl9wcml2LAo+ICsJCQkJCQkgLU1BWF9TQ0hFRFVMRV9USU1FT1VUKSkg ewo+ICAgCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gd2FpdCBmb3IgaWRsZTsgVlQnZCBtYXkgaGFu Zy5cbiIpOwo+ICAgCQkJLyogV2FpdCBhIGJpdCwgaW4gaG9wZXMgaXQgYXZvaWRzIHRoZSBoYW5n ICovCj4gICAJCQl1ZGVsYXkoMTApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4g aW5kZXggNGZmZTYyYTQyMTg2Li41MmY3YzRlNWI2NDQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlcXVlc3QuYwo+IEBAIC0xNTA4LDEzICsxNTA4LDE5IEBAIGxvbmcgaTkxNV9yZXF1ZXN0 X3dhaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCj4gICAJcmV0dXJuIHRpbWVvdXQ7Cj4gICB9 Cj4gICAKPiAtYm9vbCBpOTE1X3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKPiArbG9uZyBpOTE1X3JldGlyZV9yZXF1ZXN0c190aW1lb3V0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1LCBsb25nIHRpbWVvdXQpCj4gICB7Cj4gICAJc3RydWN0IGludGVs X2d0X3RpbWVsaW5lcyAqdGltZWxpbmVzID0gJmk5MTUtPmd0LnRpbWVsaW5lczsKPiAgIAlzdHJ1 Y3QgaW50ZWxfdGltZWxpbmUgKnRsLCAqdG47Cj4gKwl1bnNpZ25lZCBsb25nIGFjdGl2ZV9jb3Vu dCA9IDA7Cj4gICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiArCWJvb2wgaW50ZXJydXB0aWJsZTsK PiAgIAlMSVNUX0hFQUQoZnJlZSk7Cj4gICAKPiArCWludGVycnVwdGlibGUgPSB0cnVlOwo+ICsJ aWYgKHRpbWVvdXQgPCAwKQo+ICsJCXRpbWVvdXQgPSAtdGltZW91dCwgaW50ZXJydXB0aWJsZSA9 IGZhbHNlOwoKU2xpZ2h0bHkgdW5lYXN5IGFib3V0IHRoZSBuZWdhdGl2ZSB0cmljayBidXQgYWx0 ZXJuYXRpdmVzIHdoaWNoIGNhbWUgdG8gCm1pbmQgb2Ygb3ItaW5nIHRoZSBuZWdhdGl2ZSBiaXQg b3Igd3JhcHBlciBmb3IgcGFzc2luZyBpbiB0aGUgCihub24tKWludGVycnVwdGlibGUodGltZW91 dCkgZG8gbm90IHNvdW5kIHNvIGhvdCBlaXRoZXIuCgo+ICsKPiAgIAlzcGluX2xvY2tfaXJxc2F2 ZSgmdGltZWxpbmVzLT5sb2NrLCBmbGFncyk7Cj4gICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZl KHRsLCB0biwgJnRpbWVsaW5lcy0+YWN0aXZlX2xpc3QsIGxpbmspIHsKPiAgIAkJaWYgKCFtdXRl eF90cnlsb2NrKCZ0bC0+bXV0ZXgpKQo+IEBAIC0xNTI1LDEzICsxNTMxLDI3IEBAIGJvb2wgaTkx NV9yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAJCXRs LT5hY3RpdmVfY291bnQrKzsgLyogcGluIHRoZSBsaXN0IGVsZW1lbnQgKi8KPiAgIAkJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmdGltZWxpbmVzLT5sb2NrLCBmbGFncyk7Cj4gICAKPiArCQlpZiAo dGltZW91dCA+IDApIHsKPiArCQkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4gKwo+ICsJCQlm ZW5jZSA9IGk5MTVfYWN0aXZlX2ZlbmNlX2dldCgmdGwtPmxhc3RfcmVxdWVzdCk7Cj4gKwkJCWlm IChmZW5jZSkgewo+ICsJCQkJdGltZW91dCA9IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZmVuY2Us Cj4gKwkJCQkJCQkJIGludGVycnVwdGlibGUsCj4gKwkJCQkJCQkJIHRpbWVvdXQpOwo+ICsJCQkJ ZG1hX2ZlbmNlX3B1dChmZW5jZSk7Cj4gKwkJCX0KPiArCQl9Cj4gKwo+ICAgCQlyZXRpcmVfcmVx dWVzdHModGwpOwo+ICAgCj4gICAJCXNwaW5fbG9ja19pcnFzYXZlKCZ0aW1lbGluZXMtPmxvY2ss IGZsYWdzKTsKPiAgIAo+ICAgCQkvKiBSZXN1bWUgaXRlcmF0aW9uIGFmdGVyIGRyb3BwaW5nIGxv Y2sgKi8KPiAgIAkJbGlzdF9zYWZlX3Jlc2V0X25leHQodGwsIHRuLCBsaW5rKTsKPiAtCQlpZiAo IS0tdGwtPmFjdGl2ZV9jb3VudCkKPiArCQlpZiAoLS10bC0+YWN0aXZlX2NvdW50KQo+ICsJCQlh Y3RpdmVfY291bnQgKz0gISFyY3VfYWNjZXNzX3BvaW50ZXIodGwtPmxhc3RfcmVxdWVzdC5mZW5j ZSk7Cj4gKwkJZWxzZQo+ICAgCQkJbGlzdF9kZWwoJnRsLT5saW5rKTsKPiAgIAo+ICAgCQltdXRl eF91bmxvY2soJnRsLT5tdXRleCk7Cj4gQEAgLTE1NDcsNyArMTU2Nyw3IEBAIGJvb2wgaTkxNV9y ZXRpcmVfcmVxdWVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAJbGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKHRsLCB0biwgJmZyZWUsIGxpbmspCj4gICAJCV9faW50ZWxfdGlt ZWxpbmVfZnJlZSgmdGwtPmtyZWYpOwo+ICAgCj4gLQlyZXR1cm4gIWxpc3RfZW1wdHkoJnRpbWVs aW5lcy0+YWN0aXZlX2xpc3QpOwo+ICsJcmV0dXJuIGFjdGl2ZV9jb3VudCA/IHRpbWVvdXQgOiAw Owo+ICAgfQo+ICAgCj4gICAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1Qp Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgKPiBpbmRleCA2MjFmYjMzY2RhMzAuLjI1 NmIwNzE1MTgwZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVl c3QuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCj4gQEAgLTMx MCw3ICszMTAsNiBAQCBsb25nIGk5MTVfcmVxdWVzdF93YWl0KHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJxLAo+ICAgI2RlZmluZSBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRQlCSVQoMCkKPiAgICNkZWZp bmUgSTkxNV9XQUlUX1BSSU9SSVRZCUJJVCgxKSAvKiBzbWFsbCBwcmlvcml0eSBidW1wIGZvciB0 aGUgcmVxdWVzdCAqLwo+ICAgI2RlZmluZSBJOTE1X1dBSVRfQUxMCQlCSVQoMikgLyogdXNlZCBi eSBpOTE1X2dlbV9vYmplY3Rfd2FpdCgpICovCj4gLSNkZWZpbmUgSTkxNV9XQUlUX0ZPUl9JRExF X0JPT1NUIEJJVCgzKQo+ICAgCj4gICBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9yZXF1ZXN0X3Np Z25hbGVkKGNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAgewo+IEBAIC00NjAsNiAr NDU5LDEwIEBAIGk5MTVfcmVxdWVzdF9hY3RpdmVfdGltZWxpbmUoc3RydWN0IGk5MTVfcmVxdWVz dCAqcnEpCj4gICAJCQkJCSBsb2NrZGVwX2lzX2hlbGQoJnJxLT5lbmdpbmUtPmFjdGl2ZS5sb2Nr KSk7Cj4gICB9Cj4gICAKPiAtYm9vbCBpOTE1X3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gK2xvbmcgaTkxNV9yZXRpcmVfcmVxdWVzdHNfdGltZW91dChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgbG9uZyB0aW1lb3V0KTsKPiArc3RhdGljIGlu bGluZSB2b2lkIGk5MTVfcmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQo+ICt7Cj4gKwlpOTE1X3JldGlyZV9yZXF1ZXN0c190aW1lb3V0KGk5MTUsIDApOwo+ICt9 Cj4gICAKPiAgICNlbmRpZiAvKiBJOTE1X1JFUVVFU1RfSCAqLwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2ZsdXNoX3Rlc3QuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5jCj4gaW5kZXggMmE1ZmJlNDZlYTlm Li5lZDQ5NmJkNmQ4NGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2lndF9mbHVzaF90ZXN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvaWd0X2ZsdXNoX3Rlc3QuYwo+IEBAIC0xOCw4ICsxOCw3IEBAIGludCBpZ3RfZmx1c2hfdGVz dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgIAo+ICAgCWNvbmRfcmVzY2hlZCgp Owo+ICAgCj4gLQlpOTE1X3JldGlyZV9yZXF1ZXN0cyhpOTE1KTsKPiAtCWlmIChpOTE1X2dlbV93 YWl0X2Zvcl9pZGxlKGk5MTUsIDAsIEhaIC8gNSkgPT0gLUVUSU1FKSB7Cj4gKwlpZiAoaTkxNV9n ZW1fd2FpdF9mb3JfaWRsZShpOTE1LCBIWiAvIDUpID09IC1FVElNRSkgewo+ICAgCQlwcl9lcnIo IiVwUyB0aW1lZCBvdXQsIGNhbmNlbGxpbmcgYWxsIGZ1cnRoZXIgdGVzdGluZy5cbiIsCj4gICAJ CSAgICAgICBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpOwo+ICAgCj4gQEAgLTMwLDcgKzI5 LDYgQEAgaW50IGlndF9mbHVzaF90ZXN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ ICAgCQlpbnRlbF9ndF9zZXRfd2VkZ2VkKCZpOTE1LT5ndCk7Cj4gICAJCXJldCA9IC1FSU87Cj4g ICAJfQo+IC0JaTkxNV9yZXRpcmVfcmVxdWVzdHMoaTkxNSk7Cj4gICAKPiAgIAlyZXR1cm4gcmV0 Owo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0 X2xpdmVfdGVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9saXZlX3Rl c3QuYwo+IGluZGV4IDA0YTZmODhmZGY2NC4uZWFlOTBmOTdkZjZjIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfbGl2ZV90ZXN0LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2xpdmVfdGVzdC5jCj4gQEAgLTIzLDkgKzIz LDcgQEAgaW50IGlndF9saXZlX3Rlc3RfYmVnaW4oc3RydWN0IGlndF9saXZlX3Rlc3QgKnQsCj4g ICAJdC0+ZnVuYyA9IGZ1bmM7Cj4gICAJdC0+bmFtZSA9IG5hbWU7Cj4gICAKPiAtCWVyciA9IGk5 MTVfZ2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwKPiAtCQkJCSAgICAgSTkxNV9XQUlUX0lOVEVSUlVQ VElCTEUsCj4gLQkJCQkgICAgIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPiArCWVyciA9IGk5MTVf Z2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+ICAgCWlmIChl cnIpIHsKPiAgIAkJcHJfZXJyKCIlcyglcyk6IGZhaWxlZCB0byBpZGxlIGJlZm9yZSwgd2l0aCBl cnI9JWQhIiwKPiAgIAkJICAgICAgIGZ1bmMsIG5hbWUsIGVycik7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYwo+IGluZGV4IDkxZjYyNTM5 MzlhZC4uODdkMzQxNjdiZjg5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYwo+IEBAIC00NCw3ICs0NCw3IEBAIHZvaWQgbW9ja19k ZXZpY2VfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAJZG8gewo+ICAg CQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkKPiAgIAkJCW1vY2tfZW5naW5lX2Zs dXNoKGVuZ2luZSk7Cj4gLQl9IHdoaWxlIChpOTE1X3JldGlyZV9yZXF1ZXN0cyhpOTE1KSk7Cj4g Kwl9IHdoaWxlIChpOTE1X3JldGlyZV9yZXF1ZXN0c190aW1lb3V0KGk5MTUsIE1BWF9TQ0hFRFVM RV9USU1FT1VUKSk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkIG1vY2tfZGV2aWNlX3JlbGVh c2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAKClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxp biA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=