From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 2/4] drm/i915: Consolidate get_fence with pin_fence Date: Tue, 4 Jul 2017 15:47:13 +0100 Message-ID: <8037ec64-7121-7ab8-ca10-fa31bf2f61ab@linux.intel.com> References: <20170703101412.30820-1-chris@chris-wilson.co.uk> <20170703101412.30820-2-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7413A89B83 for ; Tue, 4 Jul 2017 14:47:16 +0000 (UTC) In-Reply-To: <20170703101412.30820-2-chris@chris-wilson.co.uk> Content-Language: en-GB 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 Ck9uIDAzLzA3LzIwMTcgMTE6MTQsIENocmlzIFdpbHNvbiB3cm90ZToKPiBGb2xsb3dpbmcgdGhl IHBhdHRlcm4gbm93IHVzZWQgZm9yIG9iai0+bW0ucGFnZXMsIHVzZSBqdXN0IHBpbl9mZW5jZSBh bmQKPiB1bnBpbl9mZW5jZSB0byBjb250cm9sIGFjY2VzcyB0byB0aGUgZmVuY2UgcmVnaXN0ZXJz LiBJLmUuIGluc3RlYWQgb2YKPiBjYWxsaW5nIGdldF9mZW5jZSgpOyBwaW5fZmVuY2UoKSwgd2Ug bm93IGp1c3QgbmVlZCB0byBjYWxsIHBpbl9mZW5jZSgpLgo+IFRoaXMgd2lsbCBtYWtlIGl0IGVh c2llciB0byByZWR1Y2UgdGhlIGxvY2tpbmcgcmVxdWlyZW1lbnRzIGFyb3VuZAo+IGZlbmNlIHJl Z2lzdGVycy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdp bHNvbi5jby51az4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAg ICAgICAgICB8ICA0IC0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAg ICAgICAgICB8ICAzICsrLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1 ZmZlci5jIHwgMTAgKysrKystLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZmVuY2VfcmVnLmMgIHwgMjcgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgICAgICAgfCAgMyArLS0KPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdm1hLmggICAgICAgICAgICB8IDIwICsrKysrKysrLS0tLS0tLS0t LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAgfCAgMyAr LS0KPiAgIDcgZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMDAyOWJiOTQ5ZTkwLi5iMDhiNTZh MmU2ODAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMzU0NSwxMCArMzU0NSw2 IEBAIGk5MTVfdm1fdG9fcHBndHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCj4gICAJ cmV0dXJuIGNvbnRhaW5lcl9vZih2bSwgc3RydWN0IGk5MTVfaHdfcHBndHQsIGJhc2UpOwo+ICAg fQo+ICAgCj4gLS8qIGk5MTVfZ2VtX2ZlbmNlX3JlZy5jICovCj4gLWludCBfX211c3RfY2hlY2sg aTkxNV92bWFfZ2V0X2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKPiAtaW50IF9fbXVzdF9j aGVjayBpOTE1X3ZtYV9wdXRfZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpOwo+IC0KPiAgIHZv aWQgaTkxNV9nZW1fcmV2b2tlX2ZlbmNlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+ICAgdm9pZCBpOTE1X2dlbV9yZXN0b3JlX2ZlbmNlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggMWIy ZGZhOGJkZWVmLi45MzlhMjk5MjYwZTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBA QCAtMTk0MSw3ICsxOTQxLDcgQEAgaW50IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAq dm1mKQo+ICAgCWlmIChyZXQpCj4gICAJCWdvdG8gZXJyX3VucGluOwo+ICAgCj4gLQlyZXQgPSBp OTE1X3ZtYV9nZXRfZmVuY2Uodm1hKTsKPiArCXJldCA9IGk5MTVfdm1hX3Bpbl9mZW5jZSh2bWEp OwoKSG0sIEkgdGhpbmsgZmVuY2Ugc3RlYWxpbmcgc3RvcHMgd29ya2luZyB3aXRoIHRoaXMgY2hh bmdlPwoKUmVnYXJkcywKClR2cnRrbwoKPiAgIAlpZiAocmV0KQo+ICAgCQlnb3RvIGVycl91bnBp bjsKPiAgIAo+IEBAIC0xOTU3LDYgKzE5NTcsNyBAQCBpbnQgaTkxNV9nZW1fZmF1bHQoc3RydWN0 IHZtX2ZhdWx0ICp2bWYpCj4gICAJCQkgICAgICAgbWluX3QodTY0LCB2bWEtPnNpemUsIGFyZWEt PnZtX2VuZCAtIGFyZWEtPnZtX3N0YXJ0KSwKPiAgIAkJCSAgICAgICAmZ2d0dC0+bWFwcGFibGUp Owo+ICAgCj4gKwlpOTE1X3ZtYV91bnBpbl9mZW5jZSh2bWEpOwo+ICAgZXJyX3VucGluOgo+ICAg CV9faTkxNV92bWFfdW5waW4odm1hKTsKPiAgIGVycl91bmxvY2s6Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IGluZGV4IDkyOWYyNzVlNjdhYS4uMjJhOWY1 MzU4MzIyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNi dWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIu Ywo+IEBAIC0zNjUsMTIgKzM2NSwxMiBAQCBlYl9waW5fdm1hKHN0cnVjdCBpOTE1X2V4ZWNidWZm ZXIgKmViLAo+ICAgCQlyZXR1cm47Cj4gICAKPiAgIAlpZiAodW5saWtlbHkoZW50cnktPmZsYWdz ICYgRVhFQ19PQkpFQ1RfTkVFRFNfRkVOQ0UpKSB7Cj4gLQkJaWYgKHVubGlrZWx5KGk5MTVfdm1h X2dldF9mZW5jZSh2bWEpKSkgewo+ICsJCWlmICh1bmxpa2VseShpOTE1X3ZtYV9waW5fZmVuY2Uo dm1hKSkpIHsKPiAgIAkJCWk5MTVfdm1hX3VucGluKHZtYSk7Cj4gICAJCQlyZXR1cm47Cj4gICAJ CX0KPiAgIAo+IC0JCWlmIChpOTE1X3ZtYV9waW5fZmVuY2Uodm1hKSkKPiArCQlpZiAodm1hLT5m ZW5jZSkKPiAgIAkJCWVudHJ5LT5mbGFncyB8PSBfX0VYRUNfT0JKRUNUX0hBU19GRU5DRTsKPiAg IAl9Cj4gICAKPiBAQCAtMzg0LDcgKzM4NCw3IEBAIF9fZWJfdW5yZXNlcnZlX3ZtYShzdHJ1Y3Qg aTkxNV92bWEgKnZtYSwKPiAgIAlHRU1fQlVHX09OKCEoZW50cnktPmZsYWdzICYgX19FWEVDX09C SkVDVF9IQVNfUElOKSk7Cj4gICAKPiAgIAlpZiAodW5saWtlbHkoZW50cnktPmZsYWdzICYgX19F WEVDX09CSkVDVF9IQVNfRkVOQ0UpKQo+IC0JCWk5MTVfdm1hX3VucGluX2ZlbmNlKHZtYSk7Cj4g KwkJX19pOTE1X3ZtYV91bnBpbl9mZW5jZSh2bWEpOwo+ICAgCj4gICAJX19pOTE1X3ZtYV91bnBp bih2bWEpOwo+ICAgfQo+IEBAIC01NjQsMTMgKzU2NCwxMyBAQCBzdGF0aWMgaW50IGViX3Jlc2Vy dmVfdm1hKGNvbnN0IHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAo+ICAgCUdFTV9CVUdfT04o ZWJfdm1hX21pc3BsYWNlZChlbnRyeSwgdm1hKSk7Cj4gICAKPiAgIAlpZiAodW5saWtlbHkoZW50 cnktPmZsYWdzICYgRVhFQ19PQkpFQ1RfTkVFRFNfRkVOQ0UpKSB7Cj4gLQkJZXJyID0gaTkxNV92 bWFfZ2V0X2ZlbmNlKHZtYSk7Cj4gKwkJZXJyID0gaTkxNV92bWFfcGluX2ZlbmNlKHZtYSk7Cj4g ICAJCWlmICh1bmxpa2VseShlcnIpKSB7Cj4gICAJCQlpOTE1X3ZtYV91bnBpbih2bWEpOwo+ICAg CQkJcmV0dXJuIGVycjsKPiAgIAkJfQo+ICAgCj4gLQkJaWYgKGk5MTVfdm1hX3Bpbl9mZW5jZSh2 bWEpKQo+ICsJCWlmICh2bWEtPmZlbmNlKQo+ICAgCQkJZW50cnktPmZsYWdzIHw9IF9fRVhFQ19P QkpFQ1RfSEFTX0ZFTkNFOwo+ICAgCX0KPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2ZlbmNlX3JlZy5jCj4gaW5kZXggNWZlMmNkOGM4ZjI4Li41NWFjN2JjMTRmY2UgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2VfcmVnLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuYwo+IEBAIC0yODAsOCAr MjgwLDcgQEAgc3RhdGljIGludCBmZW5jZV91cGRhdGUoc3RydWN0IGRybV9pOTE1X2ZlbmNlX3Jl ZyAqZmVuY2UsCj4gICAgKgo+ICAgICogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2Rl IG9uIGZhaWx1cmUuCj4gICAgKi8KPiAtaW50Cj4gLWk5MTVfdm1hX3B1dF9mZW5jZShzdHJ1Y3Qg aTkxNV92bWEgKnZtYSkKPiAraW50IGk5MTVfdm1hX3B1dF9mZW5jZShzdHJ1Y3QgaTkxNV92bWEg KnZtYSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZmVuY2VfcmVnICpmZW5jZSA9IHZtYS0+ ZmVuY2U7Cj4gICAKPiBAQCAtMjk5LDYgKzI5OCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVf ZmVuY2VfcmVnICpmZW5jZV9maW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZmVuY2VfcmVnICpmZW5jZTsKPiAgIAo+ICAgCWxpc3RfZm9y X2VhY2hfZW50cnkoZmVuY2UsICZkZXZfcHJpdi0+bW0uZmVuY2VfbGlzdCwgbGluaykgewo+ICsJ CUdFTV9CVUdfT04oZmVuY2UtPnZtYSAmJiBmZW5jZS0+dm1hLT5mZW5jZSAhPSBmZW5jZSk7Cj4g Kwo+ICAgCQlpZiAoZmVuY2UtPnBpbl9jb3VudCkKPiAgIAkJCWNvbnRpbnVlOwo+ICAgCj4gQEAg LTMxMyw3ICszMTQsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAqZmVuY2Vf ZmluZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICB9Cj4gICAKPiAgIC8q Kgo+IC0gKiBpOTE1X3ZtYV9nZXRfZmVuY2UgLSBzZXQgdXAgZmVuY2luZyBmb3IgYSB2bWEKPiAr ICogaTkxNV92bWFfcGluX2ZlbmNlIC0gc2V0IHVwIGZlbmNpbmcgZm9yIGEgdm1hCj4gICAgKiBA dm1hOiB2bWEgdG8gbWFwIHRocm91Z2ggYSBmZW5jZSByZWcKPiAgICAqCj4gICAgKiBXaGVuIG1h cHBpbmcgb2JqZWN0cyB0aHJvdWdoIHRoZSBHVFQsIHVzZXJzcGFjZSB3YW50cyB0byBiZSBhYmxl IHRvIHdyaXRlCj4gQEAgLTMzMSwxMCArMzMyLDExIEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVf ZmVuY2VfcmVnICpmZW5jZV9maW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgICAqIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICAg ICovCj4gICBpbnQKPiAtaTkxNV92bWFfZ2V0X2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ ICtpOTE1X3ZtYV9waW5fZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gICB7Cj4gICAJc3Ry dWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAqZmVuY2U7Cj4gICAJc3RydWN0IGk5MTVfdm1hICpzZXQg PSBpOTE1X2dlbV9vYmplY3RfaXNfdGlsZWQodm1hLT5vYmopID8gdm1hIDogTlVMTDsKPiArCWlu dCBlcnI7Cj4gICAKPiAgIAkvKiBOb3RlIHRoYXQgd2UgcmV2b2tlIGZlbmNlcyBvbiBydW50aW1l IHN1c3BlbmQuIFRoZXJlZm9yZSB0aGUgdXNlcgo+ICAgCSAqIG11c3Qga2VlcCB0aGUgZGV2aWNl IGF3YWtlIHdoaWxzdCB1c2luZyB0aGUgZmVuY2UuCj4gQEAgLTM0NCw2ICszNDYsOCBAQCBpOTE1 X3ZtYV9nZXRfZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gICAJLyogSnVzdCB1cGRhdGUg b3VyIHBsYWNlIGluIHRoZSBMUlUgaWYgb3VyIGZlbmNlIGlzIGdldHRpbmcgcmV1c2VkLiAqLwo+ ICAgCWlmICh2bWEtPmZlbmNlKSB7Cj4gICAJCWZlbmNlID0gdm1hLT5mZW5jZTsKPiArCQlHRU1f QlVHX09OKGZlbmNlLT52bWEgIT0gdm1hKTsKPiArCQlmZW5jZS0+cGluX2NvdW50Kys7Cj4gICAJ CWlmICghZmVuY2UtPmRpcnR5KSB7Cj4gICAJCQlsaXN0X21vdmVfdGFpbCgmZmVuY2UtPmxpbmss Cj4gICAJCQkJICAgICAgICZmZW5jZS0+aTkxNS0+bW0uZmVuY2VfbGlzdCk7Cj4gQEAgLTM1Mywx MCArMzU3LDE5IEBAIGk5MTVfdm1hX2dldF9mZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAg IAkJZmVuY2UgPSBmZW5jZV9maW5kKHZtYS0+dm0tPmk5MTUpOwo+ICAgCQlpZiAoSVNfRVJSKGZl bmNlKSkKPiAgIAkJCXJldHVybiBQVFJfRVJSKGZlbmNlKTsKPiArCQlmZW5jZS0+cGluX2NvdW50 Kys7Cj4gICAJfSBlbHNlCj4gICAJCXJldHVybiAwOwo+ICAgCj4gLQlyZXR1cm4gZmVuY2VfdXBk YXRlKGZlbmNlLCBzZXQpOwo+ICsJZXJyID0gZmVuY2VfdXBkYXRlKGZlbmNlLCBzZXQpOwo+ICsJ aWYgKGVycikKPiArCQlnb3RvIGVycl91bnBpbjsKPiArCj4gKwlyZXR1cm4gMDsKPiArCj4gK2Vy cl91bnBpbjoKPiArCWZlbmNlLT5waW5fY291bnQtLTsKPiArCXJldHVybiBlcnI7Cj4gICB9Cj4g ICAKPiAgIC8qKgo+IEBAIC0zNzgsNiArMzkxLDggQEAgdm9pZCBpOTE1X2dlbV9yZXZva2VfZmVu Y2VzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlmb3IgKGkgPSAwOyBp IDwgZGV2X3ByaXYtPm51bV9mZW5jZV9yZWdzOyBpKyspIHsKPiAgIAkJc3RydWN0IGRybV9pOTE1 X2ZlbmNlX3JlZyAqZmVuY2UgPSAmZGV2X3ByaXYtPmZlbmNlX3JlZ3NbaV07Cj4gICAKPiArCQlH RU1fQlVHX09OKGZlbmNlLT52bWEgJiYgZmVuY2UtPnZtYS0+ZmVuY2UgIT0gZmVuY2UpOwo+ICsK PiAgIAkJaWYgKGZlbmNlLT52bWEpCj4gICAJCQlpOTE1X2dlbV9yZWxlYXNlX21tYXAoZmVuY2Ut PnZtYS0+b2JqKTsKPiAgIAl9Cj4gQEAgLTM5OSw2ICs0MTQsOCBAQCB2b2lkIGk5MTVfZ2VtX3Jl c3RvcmVfZmVuY2VzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAkJc3Ry dWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAqcmVnID0gJmRldl9wcml2LT5mZW5jZV9yZWdzW2ldOwo+ ICAgCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYSA9IHJlZy0+dm1hOwo+ICAgCj4gKwkJR0VNX0JVR19P Tih2bWEgJiYgdm1hLT5mZW5jZSAhPSByZWcpOwo+ICsKPiAgIAkJLyoKPiAgIAkJICogQ29tbWl0 IGRlbGF5ZWQgdGlsaW5nIGNoYW5nZXMgaWYgd2UgaGF2ZSBhbiBvYmplY3Qgc3RpbGwKPiAgIAkJ ICogYXR0YWNoZWQgdG8gdGhlIGZlbmNlLCBvdGhlcndpc2UganVzdCBjbGVhciB0aGUgZmVuY2Uu Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCj4gaW5kZXggZDczMzBkM2VlYWI2Li5lZmJmZWU4ZWFj OTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKPiBAQCAtMzAzLDEyICszMDMsMTEgQEAg dm9pZCBfX2lvbWVtICppOTE1X3ZtYV9waW5faW9tYXAoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4g ICAKPiAgIAlfX2k5MTVfdm1hX3Bpbih2bWEpOwo+ICAgCj4gLQlyZXQgPSBpOTE1X3ZtYV9nZXRf ZmVuY2Uodm1hKTsKPiArCXJldCA9IGk5MTVfdm1hX3Bpbl9mZW5jZSh2bWEpOwo+ICAgCWlmIChy ZXQpIHsKPiAgIAkJX19pOTE1X3ZtYV91bnBpbih2bWEpOwo+ICAgCQlyZXR1cm4gSU9fRVJSX1BU UihyZXQpOwo+ICAgCX0KPiAtCWk5MTVfdm1hX3Bpbl9mZW5jZSh2bWEpOwo+ICAgCj4gICAJcmV0 dXJuIHB0cjsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92 bWEuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgKPiBpbmRleCAxNWU4NmU1MGE4 MjUuLjE5ZjU4YWY0ZjFiZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAo+IEBAIC0zNDIs MTUgKzM0MiwxMyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlICppOTE1X3ZtYV9maXJzdF9w YWdlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICAgICoKPiAgICAqIFRydWUgaWYgdGhlIHZtYSBo YXMgYSBmZW5jZSwgZmFsc2Ugb3RoZXJ3aXNlLgo+ICAgICovCj4gLXN0YXRpYyBpbmxpbmUgYm9v bAo+IC1pOTE1X3ZtYV9waW5fZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gK2ludCBpOTE1 X3ZtYV9waW5fZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpOwo+ICtpbnQgX19tdXN0X2NoZWNr IGk5MTVfdm1hX3B1dF9mZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7Cj4gKwo+ICtzdGF0aWMg aW5saW5lIHZvaWQgX19pOTE1X3ZtYV91bnBpbl9mZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkK PiAgIHsKPiAtCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnZtYS0+b2JqLT5iYXNlLmRldi0+c3RydWN0 X211dGV4KTsKPiAtCWlmICh2bWEtPmZlbmNlKSB7Cj4gLQkJdm1hLT5mZW5jZS0+cGluX2NvdW50 Kys7Cj4gLQkJcmV0dXJuIHRydWU7Cj4gLQl9IGVsc2UKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gKwlH RU1fQlVHX09OKHZtYS0+ZmVuY2UtPnBpbl9jb3VudCA8PSAwKTsKPiArCXZtYS0+ZmVuY2UtPnBp bl9jb3VudC0tOwo+ICAgfQo+ICAgCj4gICAvKioKPiBAQCAtMzY1LDEwICszNjMsOCBAQCBzdGF0 aWMgaW5saW5lIHZvaWQKPiAgIGk5MTVfdm1hX3VucGluX2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAq dm1hKQo+ICAgewo+ICAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnZtYS0+b2JqLT5iYXNlLmRldi0+ c3RydWN0X211dGV4KTsKPiAtCWlmICh2bWEtPmZlbmNlKSB7Cj4gLQkJR0VNX0JVR19PTih2bWEt PmZlbmNlLT5waW5fY291bnQgPD0gMCk7Cj4gLQkJdm1hLT5mZW5jZS0+cGluX2NvdW50LS07Cj4g LQl9Cj4gKwlpZiAodm1hLT5mZW5jZSkKPiArCQlfX2k5MTVfdm1hX3VucGluX2ZlbmNlKHZtYSk7 Cj4gICB9Cj4gICAKPiAgICNlbmRpZgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiBpbmRleCA0ZTAzY2E2Yzk0NmYuLjQzMmJiYWY0NjBiNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMjE4Myw4ICsyMTgzLDcgQEAgaW50ZWxfcGluX2FuZF9m ZW5jZV9mYl9vYmooc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIHVuc2lnbmVkIGludCByb3Rh dGlvbikKPiAgIAkJICogc29tZXRoaW5nIGFuZCB0cnkgdG8gcnVuIHRoZSBzeXN0ZW0gaW4gYSAi bGVzcyB0aGFuIG9wdGltYWwiCj4gICAJCSAqIG1vZGUgdGhhdCBtYXRjaGVzIHRoZSB1c2VyIGNv bmZpZ3VyYXRpb24uCj4gICAJCSAqLwo+IC0JCWlmIChpOTE1X3ZtYV9nZXRfZmVuY2Uodm1hKSA9 PSAwKQo+IC0JCQlpOTE1X3ZtYV9waW5fZmVuY2Uodm1hKTsKPiArCQlpOTE1X3ZtYV9waW5fZmVu Y2Uodm1hKTsKPiAgIAl9Cj4gICAKPiAgIAlpOTE1X3ZtYV9nZXQodm1hKTsKPiAKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==