From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 10/42] drm/i915: Defer active reference until required Date: Fri, 7 Oct 2016 17:35:38 +0100 Message-ID: <3820e608-0508-ac0c-19d4-dccd00e55fdd@linux.intel.com> References: <20161007094635.28319-1-chris@chris-wilson.co.uk> <20161007094635.28319-11-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 85B7E6EBEB for ; Fri, 7 Oct 2016 16:35:41 +0000 (UTC) In-Reply-To: <20161007094635.28319-11-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 Ck9uIDA3LzEwLzIwMTYgMTA6NDYsIENocmlzIFdpbHNvbiB3cm90ZToKPiBXZSBvbmx5IG5lZWQg dGhlIGFjdGl2ZSByZWZlcmVuY2UgdG8ga2VlcCB0aGUgb2JqZWN0IGFsaXZlIGFmdGVyIHRoZQo+ IGhhbmRsZSBoYXMgYmVlbiBkZWxldGVkIChzbyBhcyB0byBwcmV2ZW50IGEgc3luY2hyb25vdXMg Z2VtX2Nsb3NlKS4gV2h5Cj4gdGhlbiBwYXkgdGhlIHByaWNlIG9mIGEga3JlZiBvbiBldmVyeSBl eGVjYnVmIHdoZW4gd2UgY2FuIGluc2VydCB0aGF0Cj4gZmluYWwgYWN0aXZlIHJlZiBqdXN0IGlu IHRpbWUgZm9yIHRoZSBoYW5kbGUgZGVsZXRpb24/CgpJIHJlYWxseSBkaXNsaWtlIHRoaXMuICBX aGVyZSB0aGVyZSB3YXMgZWxlZ2FuY2Ugd2l0aCBvYmovdm1hX3B1dCwgaXQgaXMgCm5vdyByZXBs YWNlZCB3aXRoIG91dCBvZiBwbGFjZSBsb29raW5nIApfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNl X3VubGVzc19hY3RpdmUuIEkgZG9uJ3Qgc2VlIHdoeSB3b3VsZCBoaWdoZXIgCmxldmVsIGxheWVy cyBoYXZlIHRvIGNvbmNlcm4gdGhlbXNlbHZlcyB3aXRoIGNhbGxpbmcgc29tZXRoaW5nIHdpdGgg c3VjaCAKYSBsb3ctbGV2ZWwgc291bmRpbmcgbmFtZS4KCkhvdyBtdWNoIGRvZXMgdGhpcyBpbmZs dWVuY2UgcGVyZm9ybWFuY2UgYW5kIGluIHdoYXQgY2FzZXM/IElmIApzaWduaWZpY2FudCwgY291 bGQgd2UgdHJ5IHRvIGNvbWUgdXAgd2l0aCBzb21ldGhpbmcgc2ltaWxhciBidXQgbW9yZSAKZWxl Z2FudD8KClJlZ2FyZHMsCgpUdnJ0a28KCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gUmV2aWV3ZWQtYnk6IEpvb25hcyBMYWh0aW5lbiA8 am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgIHwgMjggKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAg fCAyMiArKysrKysrKysrKysrKysrKysrKystCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9iYXRjaF9wb29sLmMgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9jb250ZXh0LmMgICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9leGVjYnVmZmVyLmMgICB8ICAyIC0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYyAgICAgICAgICB8ICA3ICsrKysrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jIHwgIDMgKystCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMgICAgICB8IDE1ICsrKysrKysrKysrKy0tLQo+ICAgOCBmaWxl cyBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+IGluZGV4IGVlMjVlMjY1NDE2Zi4uZmVlNWNjOTJlMmYyIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIyMzIsNiArMjIzMiwxMiBAQCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCB7Cj4gICAJKChSRUFEX09OQ0UoKGJvKS0+ZmxhZ3MpID4+IEk5MTVf Qk9fQUNUSVZFX1NISUZUKSAmIEk5MTVfQk9fQUNUSVZFX01BU0spCj4gICAKPiAgIAkvKioKPiAr CSAqIEhhdmUgd2UgdGFrZW4gYSByZWZlcmVuY2UgZm9yIHRoZSBvYmplY3QgZm9yIGluY29tcGxl dGUgR1BVCj4gKwkgKiBhY3Rpdml0eT8KPiArCSAqLwo+ICsjZGVmaW5lIEk5MTVfQk9fQUNUSVZF X1JFRiAoSTkxNV9CT19BQ1RJVkVfU0hJRlQgKyBJOTE1X05VTV9FTkdJTkVTKQo+ICsKPiArCS8q Kgo+ICAgCSAqIFRoaXMgaXMgc2V0IGlmIHRoZSBvYmplY3QgaGFzIGJlZW4gd3JpdHRlbiB0byBz aW5jZSBsYXN0IGJvdW5kCj4gICAJICogdG8gdGhlIEdUVAo+ICAgCSAqLwo+IEBAIC0yMzk5LDYg KzI0MDUsMjggQEAgaTkxNV9nZW1fb2JqZWN0X2hhc19hY3RpdmVfZW5naW5lKGNvbnN0IHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJcmV0dXJuIG9iai0+ZmxhZ3MgJiBCSVQo ZW5naW5lICsgSTkxNV9CT19BQ1RJVkVfU0hJRlQpOwo+ICAgfQo+ICAgCj4gK3N0YXRpYyBpbmxp bmUgYm9vbAo+ICtpOTE1X2dlbV9vYmplY3RfaGFzX2FjdGl2ZV9yZWZlcmVuY2UoY29uc3Qgc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiArewo+ICsJcmV0dXJuIHRlc3RfYml0KEk5 MTVfQk9fQUNUSVZFX1JFRiwgJm9iai0+ZmxhZ3MpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5l IHZvaWQKPiAraTkxNV9nZW1fb2JqZWN0X3NldF9hY3RpdmVfcmVmZXJlbmNlKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gK3sKPiArCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJm9iai0+ YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwlfX3NldF9iaXQoSTkxNV9CT19BQ1RJVkVfUkVG LCAmb2JqLT5mbGFncyk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgdm9pZAo+ICtpOTE1X2dl bV9vYmplY3RfY2xlYXJfYWN0aXZlX3JlZmVyZW5jZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQo+ICt7Cj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZvYmotPmJhc2UuZGV2LT5zdHJ1 Y3RfbXV0ZXgpOwo+ICsJX19jbGVhcl9iaXQoSTkxNV9CT19BQ1RJVkVfUkVGLCAmb2JqLT5mbGFn cyk7Cj4gK30KPiArCj4gK3ZvaWQgX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV91bmxlc3NfYWN0 aXZlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwo+ICsKPiAgIHN0YXRpYyBpbmxp bmUgdW5zaWduZWQgaW50Cj4gICBpOTE1X2dlbV9vYmplY3RfZ2V0X3RpbGluZyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGlu ZGV4IDdmYTVjYjc2NDczOS4uYjU2MDI2M2JmNDQ2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCj4gQEAgLTI2MTgsNyArMjYxOCwxMCBAQCBpOTE1X2dlbV9vYmplY3RfcmV0aXJlX19yZWFk KHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSwKPiAgIAkJbGlzdF9tb3ZlX3RhaWwoJm9i ai0+Z2xvYmFsX2xpc3QsCj4gICAJCQkgICAgICAgJnJlcXVlc3QtPmk5MTUtPm1tLmJvdW5kX2xp c3QpOwo+ICAgCj4gLQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7Cj4gKwlpZiAoaTkxNV9nZW1f b2JqZWN0X2hhc19hY3RpdmVfcmVmZXJlbmNlKG9iaikpIHsKPiArCQlpOTE1X2dlbV9vYmplY3Rf Y2xlYXJfYWN0aXZlX3JlZmVyZW5jZShvYmopOwo+ICsJCWk5MTVfZ2VtX29iamVjdF9wdXQob2Jq KTsKPiArCX0KPiAgIH0KPiAgIAo+ICAgc3RhdGljIGJvb2wgaTkxNV9jb250ZXh0X2lzX2Jhbm5l ZChjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQo+IEBAIC0yODg5LDYgKzI4OTIs MTIgQEAgdm9pZCBpOTE1X2dlbV9jbG9zZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpn ZW0sIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUo dm1hLCB2biwgJm9iai0+dm1hX2xpc3QsIG9ial9saW5rKQo+ICAgCQlpZiAodm1hLT52bS0+Zmls ZSA9PSBmcHJpdikKPiAgIAkJCWk5MTVfdm1hX2Nsb3NlKHZtYSk7Cj4gKwo+ICsJaWYgKGk5MTVf Z2VtX29iamVjdF9pc19hY3RpdmUob2JqKSAmJgo+ICsJICAgICFpOTE1X2dlbV9vYmplY3RfaGFz X2FjdGl2ZV9yZWZlcmVuY2Uob2JqKSkgewo+ICsJCWk5MTVfZ2VtX29iamVjdF9zZXRfYWN0aXZl X3JlZmVyZW5jZShvYmopOwo+ICsJCWk5MTVfZ2VtX29iamVjdF9nZXQob2JqKTsKPiArCX0KPiAg IAltdXRleF91bmxvY2soJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7Cj4gICB9Cj4gICAK PiBAQCAtNDM2NSw2ICs0Mzc0LDE3IEBAIHZvaWQgaTkxNV9nZW1fZnJlZV9vYmplY3Qoc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqKQo+ICAgCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9w cml2KTsKPiAgIH0KPiAgIAo+ICt2b2lkIF9faTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfdW5sZXNz X2FjdGl2ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICt7Cj4gKwlsb2NrZGVw X2Fzc2VydF9oZWxkKCZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsKPiArCUdFTV9C VUdfT04oaTkxNV9nZW1fb2JqZWN0X2hhc19hY3RpdmVfcmVmZXJlbmNlKG9iaikpOwo+ICsJaWYg KGk5MTVfZ2VtX29iamVjdF9pc19hY3RpdmUob2JqKSkKPiArCQlpOTE1X2dlbV9vYmplY3Rfc2V0 X2FjdGl2ZV9yZWZlcmVuY2Uob2JqKTsKPiArCWVsc2UKPiArCQlpOTE1X2dlbV9vYmplY3RfcHV0 KG9iaik7Cj4gK30KPiArCj4gICBpbnQgaTkxNV9nZW1fc3VzcGVuZChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f YmF0Y2hfcG9vbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5j Cj4gaW5kZXggZWQ5ODk1OTZkOWEzLi5jYjI1Y2FkMzMxOGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jCj4gQEAgLTczLDcgKzczLDcgQEAgdm9pZCBp OTE1X2dlbV9iYXRjaF9wb29sX2Zpbmkoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2wp Cj4gICAJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShvYmosIG5leHQsCj4gICAJCQkJCSAmcG9v bC0+Y2FjaGVfbGlzdFtuXSwKPiAgIAkJCQkJIGJhdGNoX3Bvb2xfbGluaykKPiAtCQkJaTkxNV9n ZW1fb2JqZWN0X3B1dChvYmopOwo+ICsJCQlfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX3VubGVz c19hY3RpdmUob2JqKTsKPiAgIAo+ICAgCQlJTklUX0xJU1RfSEVBRCgmcG9vbC0+Y2FjaGVfbGlz dFtuXSk7Cj4gICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBp bmRleCBkZjEwZjRlOTU3MzYuLjFkMmFiNzNhOGY0MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9jb250ZXh0LmMKPiBAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgaTkxNV9nZW1f Y29udGV4dF9mcmVlKHN0cnVjdCBrcmVmICpjdHhfcmVmKQo+ICAgCQlpZiAoY2UtPnJpbmcpCj4g ICAJCQlpbnRlbF9yaW5nX2ZyZWUoY2UtPnJpbmcpOwo+ICAgCj4gLQkJaTkxNV92bWFfcHV0KGNl LT5zdGF0ZSk7Cj4gKwkJX19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV91bmxlc3NfYWN0aXZlKGNl LT5zdGF0ZS0+b2JqKTsKPiAgIAl9Cj4gICAKPiAgIAlwdXRfcGlkKGN0eC0+cGlkKTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gaW5kZXggNzJjN2MxODU1 ZTcwLi4wZGVlY2Q0ZTNiNmMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZXhlY2J1ZmZlci5jCj4gQEAgLTEyOTksOCArMTI5OSw2IEBAIHZvaWQgaTkxNV92bWFfbW92ZV90 b19hY3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gICAJICogYWRkIHRoZSBhY3RpdmUgcmVm ZXJlbmNlIGZpcnN0IGFuZCBxdWV1ZSBmb3IgaXQgdG8gYmUgZHJvcHBlZAo+ICAgCSAqICpsYXN0 Ki4KPiAgIAkgKi8KPiAtCWlmICghaTkxNV9nZW1fb2JqZWN0X2lzX2FjdGl2ZShvYmopKQo+IC0J CWk5MTVfZ2VtX29iamVjdF9nZXQob2JqKTsKPiAgIAlpOTE1X2dlbV9vYmplY3Rfc2V0X2FjdGl2 ZShvYmosIGlkeCk7Cj4gICAJaTkxNV9nZW1fYWN0aXZlX3NldCgmb2JqLT5sYXN0X3JlYWRbaWR4 XSwgcmVxKTsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggMmQ4 NDZhYTM5Y2E1Li4xYzk1ZGE4NDI0Y2IgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuYwo+IEBAIC0zNzEyLDExICszNzEyLDE2IEBAIHZvaWQgX19pb21lbSAqaTkxNV92bWFfcGlu X2lvbWFwKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICAgdm9pZCBpOTE1X3ZtYV91bnBpbl9hbmRf cmVsZWFzZShzdHJ1Y3QgaTkxNV92bWEgKipwX3ZtYSkKPiAgIHsKPiAgIAlzdHJ1Y3QgaTkxNV92 bWEgKnZtYTsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gICAKPiAgIAl2 bWEgPSBmZXRjaF9hbmRfemVybyhwX3ZtYSk7Cj4gICAJaWYgKCF2bWEpCj4gICAJCXJldHVybjsK PiAgIAo+ICsJb2JqID0gdm1hLT5vYmo7Cj4gKwo+ICAgCWk5MTVfdm1hX3VucGluKHZtYSk7Cj4g LQlpOTE1X3ZtYV9wdXQodm1hKTsKPiArCWk5MTVfdm1hX2Nsb3NlKHZtYSk7Cj4gKwo+ICsJX19p OTE1X2dlbV9vYmplY3RfcmVsZWFzZV91bmxlc3NfYWN0aXZlKG9iaik7Cj4gICB9Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKPiBpbmRleCA5NWI3ZTlh ZmQ1ZjguLjA5Y2Y0ODc0YzQ1ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9yZW5kZXJfc3RhdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3JlbmRlcl9zdGF0ZS5jCj4gQEAgLTIyNCw3ICsyMjQsOCBAQCBpbnQgaTkxNV9nZW1fcmVu ZGVyX3N0YXRlX2luaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICAJaTkx NV92bWFfbW92ZV90b19hY3RpdmUoc28udm1hLCByZXEsIDApOwo+ICAgZXJyX3VucGluOgo+ICAg CWk5MTVfdm1hX3VucGluKHNvLnZtYSk7Cj4gKwlpOTE1X3ZtYV9jbG9zZShzby52bWEpOwo+ICAg ZXJyX29iajoKPiAtCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKPiArCV9faTkxNV9nZW1fb2Jq ZWN0X3JlbGVhc2VfdW5sZXNzX2FjdGl2ZShvYmopOwo+ICAgCXJldHVybiByZXQ7Cj4gICB9Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IGluZGV4IGI2MGM2ZjA5ZmJm ZC4uZjNkZmI3Y2E2MjVkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYwo+IEBAIC0xNzYzLDE0ICsxNzYzLDE5IEBAIHN0YXRpYyB2b2lkIGNsZWFudXBfcGh5c19z dGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICBzdGF0aWMgdm9p ZCBjbGVhbnVwX3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAg IHsKPiAgIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmo7Cj4gICAKPiAgIAl2bWEgPSBmZXRjaF9hbmRfemVybygmZW5naW5lLT5zdGF0dXNf cGFnZS52bWEpOwo+ICAgCWlmICghdm1hKQo+ICAgCQlyZXR1cm47Cj4gICAKPiArCW9iaiA9IHZt YS0+b2JqOwo+ICsKPiAgIAlpOTE1X3ZtYV91bnBpbih2bWEpOwo+IC0JaTkxNV9nZW1fb2JqZWN0 X3VucGluX21hcCh2bWEtPm9iaik7Cj4gLQlpOTE1X3ZtYV9wdXQodm1hKTsKPiArCWk5MTVfdm1h X2Nsb3NlKHZtYSk7Cj4gKwo+ICsJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChvYmopOwo+ICsJ X19pOTE1X2dlbV9vYmplY3RfcmVsZWFzZV91bmxlc3NfYWN0aXZlKG9iaik7Cj4gICB9Cj4gICAK PiAgIHN0YXRpYyBpbnQgaW5pdF9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gQEAgLTE5NjgsNyArMTk3MywxMSBAQCBpbnRlbF9lbmdpbmVfY3JlYXRlX3Jpbmco c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgc2l6ZSkKPiAgIHZvaWQKPiAgIGlu dGVsX3JpbmdfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZykKPiAgIHsKPiAtCWk5MTVfdm1h X3B1dChyaW5nLT52bWEpOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHJp bmctPnZtYS0+b2JqOwo+ICsKPiArCWk5MTVfdm1hX2Nsb3NlKHJpbmctPnZtYSk7Cj4gKwlfX2k5 MTVfZ2VtX29iamVjdF9yZWxlYXNlX3VubGVzc19hY3RpdmUob2JqKTsKPiArCj4gICAJa2ZyZWUo cmluZyk7Cj4gICB9Cj4gICAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=