From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 20/46] drm/i915: Remove access to global seqno in the HWSP Date: Mon, 11 Feb 2019 18:22:34 +0000 Message-ID: <8553d4a5-df80-5c91-0aa6-d4c817af9a5a@linux.intel.com> References: <20190206130356.18771-1-chris@chris-wilson.co.uk> <20190206130356.18771-21-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 mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 649A16E512 for ; Mon, 11 Feb 2019 18:22:25 +0000 (UTC) In-Reply-To: <20190206130356.18771-21-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 Ck9uIDA2LzAyLzIwMTkgMTM6MDMsIENocmlzIFdpbHNvbiB3cm90ZToKPiBTdG9wIGFjY2Vzc2lu ZyB0aGUgSFdTUCB0byByZWFkIHRoZSBnbG9iYWwgc2Vxbm8sIGFuZCBzdG9wIHRyYWNraW5nIHRo ZQo+IG1pcnJvciBpbiB0aGUgZW5naW5lJ3MgZXhlY3V0aW9uIHRpbWVsaW5lIC0tIGl0IGlzIHVu dXNlZC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNv bi5jby51az4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMg ICAgICAgICB8ICA0IC0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5o ICAgICAgICAgfCAgMyAtLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMg ICAgICAgICAgIHwgMjcgKysrKystLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZXNldC5jICAgICAgICAgICAgIHwgIDEgLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZW5naW5lX2NzLmMgICAgICAgIHwgMTQgKy0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMgICAgICAgICAgICAgIHwgMjEgKysrLS0tLS0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgICAgIHwgIDcgKy0tLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICAgICAgIHwgNDAgLS0tLS0tLS0tLS0t LS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfcmVxdWVzdC5j IHwgIDMgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5j ICB8ICAyIC0KPiAgIDEwIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDEwMyBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVf ZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiBpbmRleCA5 YTY1MzQxZmVjMDkuLmE2NzRjNzhjYTFmOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n cHVfZXJyb3IuYwo+IEBAIC01MzMsOCArNTMzLDYgQEAgc3RhdGljIHZvaWQgZXJyb3JfcHJpbnRf ZW5naW5lKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4gICAJCQkJICAgZWUt PnZtX2luZm8ucHBfZGlyX2Jhc2UpOwo+ICAgCQl9Cj4gICAJfQo+IC0JZXJyX3ByaW50ZihtLCAi ICBzZXFubzogMHglMDh4XG4iLCBlZS0+c2Vxbm8pOwo+IC0JZXJyX3ByaW50ZihtLCAiICBsYXN0 X3NlcW5vOiAweCUwOHhcbiIsIGVlLT5sYXN0X3NlcW5vKTsKPiAgIAllcnJfcHJpbnRmKG0sICIg IHJpbmctPmhlYWQ6IDB4JTA4eFxuIiwgZWUtPmNwdV9yaW5nX2hlYWQpOwo+ICAgCWVycl9wcmlu dGYobSwgIiAgcmluZy0+dGFpbDogMHglMDh4XG4iLCBlZS0+Y3B1X3JpbmdfdGFpbCk7Cj4gICAJ ZXJyX3ByaW50ZihtLCAiICBoYW5nY2hlY2sgdGltZXN0YW1wOiAlZG1zICglbHUlcylcbiIsCj4g QEAgLTEyMjcsOCArMTIyNSw2IEBAIHN0YXRpYyB2b2lkIGVycm9yX3JlY29yZF9lbmdpbmVfcmVn aXN0ZXJzKHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IsCj4gICAKPiAgIAllZS0+aW5zdHBt ID0gSTkxNV9SRUFEKFJJTkdfSU5TVFBNKGVuZ2luZS0+bW1pb19iYXNlKSk7Cj4gICAJZWUtPmFj dGhkID0gaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwo+IC0JZWUtPnNlcW5v ID0gaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwo+IC0JZWUtPmxhc3Rfc2Vxbm8gPSBp bnRlbF9lbmdpbmVfbGFzdF9zdWJtaXQoZW5naW5lKTsKPiAgIAllZS0+c3RhcnQgPSBJOTE1X1JF QURfU1RBUlQoZW5naW5lKTsKPiAgIAllZS0+aGVhZCA9IEk5MTVfUkVBRF9IRUFEKGVuZ2luZSk7 Cj4gICAJZWUtPnRhaWwgPSBJOTE1X1JFQURfVEFJTChlbmdpbmUpOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ncHVfZXJyb3IuaAo+IGluZGV4IGQ1YzU4ZTgyNTA4Yi4uNGRiYmQwZjAyZWRiIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oCj4gQEAgLTk0LDggKzk0LDYg QEAgc3RydWN0IGk5MTVfZ3B1X3N0YXRlIHsKPiAgIAkJdTMyIGNwdV9yaW5nX2hlYWQ7Cj4gICAJ CXUzMiBjcHVfcmluZ190YWlsOwo+ICAgCj4gLQkJdTMyIGxhc3Rfc2Vxbm87Cj4gLQo+ICAgCQkv KiBSZWdpc3RlciBzdGF0ZSAqLwo+ICAgCQl1MzIgc3RhcnQ7Cj4gICAJCXUzMiB0YWlsOwo+IEBA IC0xMDgsNyArMTA2LDYgQEAgc3RydWN0IGk5MTVfZ3B1X3N0YXRlIHsKPiAgIAkJdTMyIGJic3Rh dGU7Cj4gICAJCXUzMiBpbnN0cG07Cj4gICAJCXUzMiBpbnN0cHM7Cj4gLQkJdTMyIHNlcW5vOwo+ ICAgCQl1NjQgYmJhZGRyOwo+ICAgCQl1NjQgYWN0aGQ7Cj4gICAJCXUzMiBmYXVsdF9yZWc7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPiBpbmRleCBlZWQ2NmQzNjA2ZDkuLjg1Y2Y1 Y2ZiYzdlZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3Qu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gQEAgLTE5Miwx MiArMTkyLDExIEBAIHN0YXRpYyB2b2lkIGZyZWVfY2FwdHVyZV9saXN0KHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJlcXVlc3QpCj4gICBzdGF0aWMgdm9pZCBfX3JldGlyZV9lbmdpbmVfcmVxdWVzdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICAJCQkJICAgIHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxKQo+ICAgewo+IC0JR0VNX1RSQUNFKCIlcyglcykgZmVuY2UgJWxseDolbGxkLCBn bG9iYWw9JWQsIGN1cnJlbnQgJWQ6JWRcbiIsCj4gKwlHRU1fVFJBQ0UoIiVzKCVzKSBmZW5jZSAl bGx4OiVsbGQsIGdsb2JhbD0lZCwgY3VycmVudCAlZFxuIiwKPiAgIAkJICBfX2Z1bmNfXywgZW5n aW5lLT5uYW1lLAo+ICAgCQkgIHJxLT5mZW5jZS5jb250ZXh0LCBycS0+ZmVuY2Uuc2Vxbm8sCj4g ICAJCSAgcnEtPmdsb2JhbF9zZXFubywKPiAtCQkgIGh3c3Bfc2Vxbm8ocnEpLAo+IC0JCSAgaW50 ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpKTsKPiArCQkgIGh3c3Bfc2Vxbm8ocnEpKTsKPiAg IAo+ICAgCUdFTV9CVUdfT04oIWk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocnEpKTsKPiAgIAo+IEBA IC0yNTYsMTIgKzI1NSwxMSBAQCBzdGF0aWMgdm9pZCBpOTE1X3JlcXVlc3RfcmV0aXJlKHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCj4gICB7Cj4gICAJc3RydWN0IGk5MTVfYWN0aXZlX3Jl cXVlc3QgKmFjdGl2ZSwgKm5leHQ7Cj4gICAKPiAtCUdFTV9UUkFDRSgiJXMgZmVuY2UgJWxseDol bGxkLCBnbG9iYWw9JWQsIGN1cnJlbnQgJWQ6JWRcbiIsCj4gKwlHRU1fVFJBQ0UoIiVzIGZlbmNl ICVsbHg6JWxsZCwgZ2xvYmFsPSVkLCBjdXJyZW50ICVkXG4iLAo+ICAgCQkgIHJlcXVlc3QtPmVu Z2luZS0+bmFtZSwKPiAgIAkJICByZXF1ZXN0LT5mZW5jZS5jb250ZXh0LCByZXF1ZXN0LT5mZW5j ZS5zZXFubywKPiAgIAkJICByZXF1ZXN0LT5nbG9iYWxfc2Vxbm8sCj4gLQkJICBod3NwX3NlcW5v KHJlcXVlc3QpLAo+IC0JCSAgaW50ZWxfZW5naW5lX2dldF9zZXFubyhyZXF1ZXN0LT5lbmdpbmUp KTsKPiArCQkgIGh3c3Bfc2Vxbm8ocmVxdWVzdCkpOwo+ICAgCj4gICAJbG9ja2RlcF9hc3NlcnRf aGVsZCgmcmVxdWVzdC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gICAJR0VNX0JVR19PTigh aTkxNV9zd19mZW5jZV9zaWduYWxlZCgmcmVxdWVzdC0+c3VibWl0KSk7Cj4gQEAgLTMyMCwxMiAr MzE4LDExIEBAIHZvaWQgaTkxNV9yZXF1ZXN0X3JldGlyZV91cHRvKHN0cnVjdCBpOTE1X3JlcXVl c3QgKnJxKQo+ICAgCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcnEtPnJpbmc7Cj4gICAJc3Ry dWN0IGk5MTVfcmVxdWVzdCAqdG1wOwo+ICAgCj4gLQlHRU1fVFJBQ0UoIiVzIGZlbmNlICVsbHg6 JWxsZCwgZ2xvYmFsPSVkLCBjdXJyZW50ICVkOiVkXG4iLAo+ICsJR0VNX1RSQUNFKCIlcyBmZW5j ZSAlbGx4OiVsbGQsIGdsb2JhbD0lZCwgY3VycmVudCAlZFxuIiwKPiAgIAkJICBycS0+ZW5naW5l LT5uYW1lLAo+ICAgCQkgIHJxLT5mZW5jZS5jb250ZXh0LCBycS0+ZmVuY2Uuc2Vxbm8sCj4gICAJ CSAgcnEtPmdsb2JhbF9zZXFubywKPiAtCQkgIGh3c3Bfc2Vxbm8ocnEpLAo+IC0JCSAgaW50ZWxf ZW5naW5lX2dldF9zZXFubyhycS0+ZW5naW5lKSk7Cj4gKwkJICBod3NwX3NlcW5vKHJxKSk7Cj4g ICAKPiAgIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZycS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7 Cj4gICAJR0VNX0JVR19PTighaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpOwo+IEBAIC00Mjcs MTIgKzQyNCwxMSBAQCB2b2lkIF9faTkxNV9yZXF1ZXN0X3N1Ym1pdChzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpyZXF1ZXN0KQo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVl c3QtPmVuZ2luZTsKPiAgIAl1MzIgc2Vxbm87Cj4gICAKPiAtCUdFTV9UUkFDRSgiJXMgZmVuY2Ug JWxseDolbGxkIC0+IGdsb2JhbD0lZCwgY3VycmVudCAlZDolZFxuIiwKPiArCUdFTV9UUkFDRSgi JXMgZmVuY2UgJWxseDolbGxkIC0+IGdsb2JhbD0lZCwgY3VycmVudCAlZFxuIiwKPiAgIAkJICBl bmdpbmUtPm5hbWUsCj4gICAJCSAgcmVxdWVzdC0+ZmVuY2UuY29udGV4dCwgcmVxdWVzdC0+ZmVu Y2Uuc2Vxbm8sCj4gICAJCSAgZW5naW5lLT50aW1lbGluZS5zZXFubyArIDEsCj4gLQkJICBod3Nw X3NlcW5vKHJlcXVlc3QpLAo+IC0JCSAgaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpKTsK PiArCQkgIGh3c3Bfc2Vxbm8ocmVxdWVzdCkpOwo+ICAgCj4gICAJR0VNX0JVR19PTighaXJxc19k aXNhYmxlZCgpKTsKPiAgIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPnRpbWVsaW5lLmxv Y2spOwo+IEBAIC00NDEsNyArNDM3LDYgQEAgdm9pZCBfX2k5MTVfcmVxdWVzdF9zdWJtaXQoc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAgIAo+ICAgCXNlcW5vID0gbmV4dF9nbG9iYWxf c2Vxbm8oJmVuZ2luZS0+dGltZWxpbmUpOwo+ICAgCUdFTV9CVUdfT04oIXNlcW5vKTsKPiAtCUdF TV9CVUdfT04oaW50ZWxfZW5naW5lX3NpZ25hbGVkKGVuZ2luZSwgc2Vxbm8pKTsKPiAgIAo+ICAg CS8qIFdlIG1heSBiZSByZWN1cnNpbmcgZnJvbSB0aGUgc2lnbmFsIGNhbGxiYWNrIG9mIGFub3Ro ZXIgaTkxNSBmZW5jZSAqLwo+ICAgCXNwaW5fbG9ja19uZXN0ZWQoJnJlcXVlc3QtPmxvY2ssIFNJ TkdMRV9ERVBUSF9ORVNUSU5HKTsKPiBAQCAtNDkyLDEyICs0ODcsMTEgQEAgdm9pZCBfX2k5MTVf cmVxdWVzdF91bnN1Ym1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgewo+ICAg CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVuZ2luZTsKPiAgIAo+ IC0JR0VNX1RSQUNFKCIlcyBmZW5jZSAlbGx4OiVsbGQgPC0gZ2xvYmFsPSVkLCBjdXJyZW50ICVk OiVkXG4iLAo+ICsJR0VNX1RSQUNFKCIlcyBmZW5jZSAlbGx4OiVsbGQgPC0gZ2xvYmFsPSVkLCBj dXJyZW50ICVkXG4iLAo+ICAgCQkgIGVuZ2luZS0+bmFtZSwKPiAgIAkJICByZXF1ZXN0LT5mZW5j ZS5jb250ZXh0LCByZXF1ZXN0LT5mZW5jZS5zZXFubywKPiAgIAkJICByZXF1ZXN0LT5nbG9iYWxf c2Vxbm8sCj4gLQkJICBod3NwX3NlcW5vKHJlcXVlc3QpLAo+IC0JCSAgaW50ZWxfZW5naW5lX2dl dF9zZXFubyhlbmdpbmUpKTsKPiArCQkgIGh3c3Bfc2Vxbm8ocmVxdWVzdCkpOwo+ICAgCj4gICAJ R0VNX0JVR19PTighaXJxc19kaXNhYmxlZCgpKTsKPiAgIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZl bmdpbmUtPnRpbWVsaW5lLmxvY2spOwo+IEBAIC01MDgsNyArNTAyLDYgQEAgdm9pZCBfX2k5MTVf cmVxdWVzdF91bnN1Ym1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgCSAqLwo+ ICAgCUdFTV9CVUdfT04oIXJlcXVlc3QtPmdsb2JhbF9zZXFubyk7Cj4gICAJR0VNX0JVR19PTihy ZXF1ZXN0LT5nbG9iYWxfc2Vxbm8gIT0gZW5naW5lLT50aW1lbGluZS5zZXFubyk7Cj4gLQlHRU1f QlVHX09OKGludGVsX2VuZ2luZV9oYXNfY29tcGxldGVkKGVuZ2luZSwgcmVxdWVzdC0+Z2xvYmFs X3NlcW5vKSk7Cj4gICAJZW5naW5lLT50aW1lbGluZS5zZXFuby0tOwo+ICAgCj4gICAJLyogV2Ug bWF5IGJlIHJlY3Vyc2luZyBmcm9tIHRoZSBzaWduYWwgY2FsbGJhY2sgb2YgYW5vdGhlciBpOTE1 IGZlbmNlICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVzZXQu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVzZXQuYwo+IGluZGV4IGI2MjlmMjVhODFm MC4uNzA1MWMwYTQzOTQxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVzZXQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVzZXQuYwo+IEBAIC03 ODcsNyArNzg3LDYgQEAgc3RhdGljIHZvaWQgbm9wX3N1Ym1pdF9yZXF1ZXN0KHN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJlcXVlc3QpCj4gICAJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxp bmUubG9jaywgZmxhZ3MpOwo+ICAgCV9faTkxNV9yZXF1ZXN0X3N1Ym1pdChyZXF1ZXN0KTsKPiAg IAlpOTE1X3JlcXVlc3RfbWFya19jb21wbGV0ZShyZXF1ZXN0KTsKPiAtCWludGVsX2VuZ2luZV93 cml0ZV9nbG9iYWxfc2Vxbm8oZW5naW5lLCByZXF1ZXN0LT5nbG9iYWxfc2Vxbm8pOwo+ICAgCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICAg Cj4gICAJaW50ZWxfZW5naW5lX3F1ZXVlX2JyZWFkY3J1bWJzKGVuZ2luZSk7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCBlMWU1NGI3NDQ4YjQuLmVhMzcwZWQw OTRhNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3Mu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gQEAgLTQ1 NSwxMiArNDU1LDYgQEAgaW50IGludGVsX2VuZ2luZXNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4gICAJcmV0dXJuIGVycjsKPiAgIH0KPiAgIAo+IC12b2lkIGludGVs X2VuZ2luZV93cml0ZV9nbG9iYWxfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LCB1MzIgc2Vxbm8pCj4gLXsKPiAtCWludGVsX3dyaXRlX3N0YXR1c19wYWdlKGVuZ2luZSwgSTkx NV9HRU1fSFdTX0lOREVYLCBzZXFubyk7Cj4gLQlHRU1fQlVHX09OKGludGVsX2VuZ2luZV9nZXRf c2Vxbm8oZW5naW5lKSAhPSBzZXFubyk7Cj4gLX0KPiAtCj4gICBzdGF0aWMgdm9pZCBpbnRlbF9l bmdpbmVfaW5pdF9iYXRjaF9wb29sKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAg IHsKPiAgIAlpOTE1X2dlbV9iYXRjaF9wb29sX2luaXQoJmVuZ2luZS0+YmF0Y2hfcG9vbCwgZW5n aW5lKTsKPiBAQCAtMTA1MywxMCArMTA0Nyw2IEBAIGJvb2wgaW50ZWxfZW5naW5lX2lzX2lkbGUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCWlmIChpOTE1X3Rlcm1pbmFsbHlf d2VkZ2VkKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKSkKPiAgIAkJcmV0dXJuIHRydWU7Cj4gICAKPiAt CS8qIEFueSBpbmZsaWdodC9pbmNvbXBsZXRlIHJlcXVlc3RzPyAqLwo+IC0JaWYgKCFpbnRlbF9l bmdpbmVfc2lnbmFsZWQoZW5naW5lLCBpbnRlbF9lbmdpbmVfbGFzdF9zdWJtaXQoZW5naW5lKSkp Cj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0KPiAgIAkvKiBXYWl0aW5nIHRvIGRyYWluIEVMU1A/ICov Cj4gICAJaWYgKFJFQURfT05DRShlbmdpbmUtPmV4ZWNsaXN0cy5hY3RpdmUpKSB7Cj4gICAJCXN0 cnVjdCB0YXNrbGV0X3N0cnVjdCAqdCA9ICZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0Owo+IEBA IC0xNTM4LDkgKzE1MjgsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9kdW1wKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwKPiAgIAlpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZCgmZW5naW5l LT5pOTE1LT5ncHVfZXJyb3IpKQo+ICAgCQlkcm1fcHJpbnRmKG0sICIqKiogV0VER0VEICoqKlxu Iik7Cj4gICAKPiAtCWRybV9wcmludGYobSwgIlx0Y3VycmVudCBzZXFubyAleCwgbGFzdCAleCwg aGFuZ2NoZWNrICV4LyV4IFslZCBtc11cbiIsCj4gLQkJICAgaW50ZWxfZW5naW5lX2dldF9zZXFu byhlbmdpbmUpLAo+IC0JCSAgIGludGVsX2VuZ2luZV9sYXN0X3N1Ym1pdChlbmdpbmUpLAo+ICsJ ZHJtX3ByaW50ZihtLCAiXHRIYW5nY2hlY2sgJXg6JXggWyVkIG1zXVxuIiwKPiAgIAkJICAgZW5n aW5lLT5oYW5nY2hlY2subGFzdF9zZXFubywKPiAgIAkJICAgZW5naW5lLT5oYW5nY2hlY2submV4 dF9zZXFubywKPiAgIAkJICAgamlmZmllc190b19tc2VjcyhqaWZmaWVzIC0gZW5naW5lLT5oYW5n Y2hlY2suYWN0aW9uX3RpbWVzdGFtcCkpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5k ZXggMzQyZDNhOTFiZTAzLi4yZjJjMjdlNmFlNmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYwo+IEBAIC01NjUsMTMgKzU2NSwxMiBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfc3VibWl0 X3BvcnRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAkJCWRlc2MgPSBleGVj bGlzdHNfdXBkYXRlX2NvbnRleHQocnEpOwo+ICAgCQkJR0VNX0RFQlVHX0VYRUMocG9ydFtuXS5j b250ZXh0X2lkID0gdXBwZXJfMzJfYml0cyhkZXNjKSk7Cj4gICAKPiAtCQkJR0VNX1RSQUNFKCIl cyBpblslZF06ICBjdHg9JWQuJWQsIGdsb2JhbD0lZCAoZmVuY2UgJWxseDolbGxkKSAoY3VycmVu dCAlZDolZCksIHByaW89JWRcbiIsCj4gKwkJCUdFTV9UUkFDRSgiJXMgaW5bJWRdOiAgY3R4PSVk LiVkLCBnbG9iYWw9JWQgKGZlbmNlICVsbHg6JWxsZCkgKGN1cnJlbnQgJWQpLCBwcmlvPSVkXG4i LAo+ICAgCQkJCSAgZW5naW5lLT5uYW1lLCBuLAo+ICAgCQkJCSAgcG9ydFtuXS5jb250ZXh0X2lk LCBjb3VudCwKPiAgIAkJCQkgIHJxLT5nbG9iYWxfc2Vxbm8sCj4gICAJCQkJICBycS0+ZmVuY2Uu Y29udGV4dCwgcnEtPmZlbmNlLnNlcW5vLAo+ICAgCQkJCSAgaHdzcF9zZXFubyhycSksCj4gLQkJ CQkgIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKSwKPiAgIAkJCQkgIHJxX3ByaW8ocnEp KTsKPiAgIAkJfSBlbHNlIHsKPiAgIAkJCUdFTV9CVUdfT04oIW4pOwo+IEBAIC04NzYsMTMgKzg3 NSwxMiBAQCBleGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2lu ZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMpCj4gICAJd2hpbGUgKG51bV9wb3J0cy0tICYm IHBvcnRfaXNzZXQocG9ydCkpIHsKPiAgIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEgPSBwb3J0 X3JlcXVlc3QocG9ydCk7Cj4gICAKPiAtCQlHRU1fVFJBQ0UoIiVzOnBvcnQldSBnbG9iYWw9JWQg KGZlbmNlICVsbHg6JWxsZCksIChjdXJyZW50ICVkOiVkKVxuIiwKPiArCQlHRU1fVFJBQ0UoIiVz OnBvcnQldSBnbG9iYWw9JWQgKGZlbmNlICVsbHg6JWxsZCksIChjdXJyZW50ICVkKVxuIiwKPiAg IAkJCSAgcnEtPmVuZ2luZS0+bmFtZSwKPiAgIAkJCSAgKHVuc2lnbmVkIGludCkocG9ydCAtIGV4 ZWNsaXN0cy0+cG9ydCksCj4gICAJCQkgIHJxLT5nbG9iYWxfc2Vxbm8sCj4gICAJCQkgIHJxLT5m ZW5jZS5jb250ZXh0LCBycS0+ZmVuY2Uuc2Vxbm8sCj4gLQkJCSAgaHdzcF9zZXFubyhycSksCj4g LQkJCSAgaW50ZWxfZW5naW5lX2dldF9zZXFubyhycS0+ZW5naW5lKSk7Cj4gKwkJCSAgaHdzcF9z ZXFubyhycSkpOwo+ICAgCj4gICAJCUdFTV9CVUdfT04oIWV4ZWNsaXN0cy0+YWN0aXZlKTsKPiAg IAkJZXhlY2xpc3RzX2NvbnRleHRfc2NoZWR1bGVfb3V0KHJxLAo+IEBAIC05MzgsOCArOTM2LDcg QEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCj4gICAJc3RydWN0IHJiX25vZGUgKnJiOwo+ICAgCXVuc2lnbmVkIGxv bmcgZmxhZ3M7Cj4gICAKPiAtCUdFTV9UUkFDRSgiJXMgY3VycmVudCAlZFxuIiwKPiAtCQkgIGVu Z2luZS0+bmFtZSwgaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpKTsKPiArCUdFTV9UUkFD RSgiJXNcbiIsIGVuZ2luZS0+bmFtZSk7Cj4gICAKPiAgIAkvKgo+ICAgCSAqIEJlZm9yZSB3ZSBj YWxsIGVuZ2luZS0+Y2FuY2VsX3JlcXVlc3RzKCksIHdlIHNob3VsZCBoYXZlIGV4Y2x1c2l2ZQo+ IEBAIC05ODcsMTAgKzk4NCw2IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jYW5jZWxfcmVxdWVz dHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCQlpOTE1X3ByaW9saXN0X2Zy ZWUocCk7Cj4gICAJfQo+ICAgCj4gLQlpbnRlbF93cml0ZV9zdGF0dXNfcGFnZShlbmdpbmUsCj4g LQkJCQlJOTE1X0dFTV9IV1NfSU5ERVgsCj4gLQkJCQlpbnRlbF9lbmdpbmVfbGFzdF9zdWJtaXQo ZW5naW5lKSk7Cj4gLQo+ICAgCS8qIFJlbWFpbmluZyBfdW5yZWFkeV8gcmVxdWVzdHMgd2lsbCBi ZSBub3AnZWQgd2hlbiBzdWJtaXR0ZWQgKi8KPiAgIAo+ICAgCWV4ZWNsaXN0cy0+cXVldWVfcHJp b3JpdHlfaGludCA9IElOVF9NSU47Cj4gQEAgLTExMDYsMTQgKzEwOTksMTMgQEAgc3RhdGljIHZv aWQgcHJvY2Vzc19jc2Ioc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCQkJCQkJ RVhFQ0xJU1RTX0FDVElWRV9VU0VSKSk7Cj4gICAKPiAgIAkJcnEgPSBwb3J0X3VucGFjayhwb3J0 LCAmY291bnQpOwo+IC0JCUdFTV9UUkFDRSgiJXMgb3V0WzBdOiBjdHg9JWQuJWQsIGdsb2JhbD0l ZCAoZmVuY2UgJWxseDolbGxkKSAoY3VycmVudCAlZDolZCksIHByaW89JWRcbiIsCj4gKwkJR0VN X1RSQUNFKCIlcyBvdXRbMF06IGN0eD0lZC4lZCwgZ2xvYmFsPSVkIChmZW5jZSAlbGx4OiVsbGQp IChjdXJyZW50ICVkKSwgcHJpbz0lZFxuIiwKPiAgIAkJCSAgZW5naW5lLT5uYW1lLAo+ICAgCQkJ ICBwb3J0LT5jb250ZXh0X2lkLCBjb3VudCwKPiAgIAkJCSAgcnEgPyBycS0+Z2xvYmFsX3NlcW5v IDogMCwKPiAgIAkJCSAgcnEgPyBycS0+ZmVuY2UuY29udGV4dCA6IDAsCj4gICAJCQkgIHJxID8g cnEtPmZlbmNlLnNlcW5vIDogMCwKPiAgIAkJCSAgcnEgPyBod3NwX3NlcW5vKHJxKSA6IDAsCj4g LQkJCSAgaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpLAo+ICAgCQkJICBycSA/IHJxX3By aW8ocnEpIDogMCk7Cj4gICAKPiAgIAkJLyogQ2hlY2sgdGhlIGNvbnRleHQvZGVzYyBpZCBmb3Ig dGhpcyBldmVudCBtYXRjaGVzICovCj4gQEAgLTE5NzUsMTAgKzE5NjcsOSBAQCBzdGF0aWMgdm9p ZCBleGVjbGlzdHNfcmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBib29sIHN0 YWxsZWQpCj4gICAJLyogRm9sbG93aW5nIHRoZSByZXNldCwgd2UgbmVlZCB0byByZWxvYWQgdGhl IENTQiByZWFkL3dyaXRlIHBvaW50ZXJzICovCj4gICAJcmVzZXRfY3NiX3BvaW50ZXJzKCZlbmdp bmUtPmV4ZWNsaXN0cyk7Cj4gICAKPiAtCUdFTV9UUkFDRSgiJXMgc2Vxbm89JWQsIGN1cnJlbnQ9 JWQsIHN0YWxsZWQ/ICVzXG4iLAo+ICsJR0VNX1RSQUNFKCIlcyBzZXFubz0lZCwgc3RhbGxlZD8g JXNcbiIsCj4gICAJCSAgZW5naW5lLT5uYW1lLAo+ICAgCQkgIHJxID8gcnEtPmdsb2JhbF9zZXFu byA6IDAsCj4gLQkJICBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSksCj4gICAJCSAgeWVz bm8oc3RhbGxlZCkpOwo+ICAgCWlmICghcnEpCj4gICAJCWdvdG8gb3V0X3VubG9jazsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXggODcwMTg0YmJkMTY5Li4y ZDU5ZTI5OTA0NDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j Cj4gQEAgLTc4MiwxMCArNzgyLDkgQEAgc3RhdGljIHZvaWQgcmVzZXRfcmluZyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUsIGJvb2wgc3RhbGxlZCkKPiAgIAkJfQo+ICAgCX0KPiAgIAo+ IC0JR0VNX1RSQUNFKCIlcyBzZXFubz0lZCwgY3VycmVudD0lZCwgc3RhbGxlZD8gJXNcbiIsCj4g KwlHRU1fVFJBQ0UoIiVzIHNlcW5vPSVkLCBzdGFsbGVkPyAlc1xuIiwKPiAgIAkJICBlbmdpbmUt Pm5hbWUsCj4gICAJCSAgcnEgPyBycS0+Z2xvYmFsX3NlcW5vIDogMCwKPiAtCQkgIGludGVsX2Vu Z2luZV9nZXRfc2Vxbm8oZW5naW5lKSwKPiAgIAkJICB5ZXNubyhzdGFsbGVkKSk7Cj4gICAJLyoK PiAgIAkgKiBUaGUgZ3VpbHR5IHJlcXVlc3Qgd2lsbCBnZXQgc2tpcHBlZCBvbiBhIGh1bmcgZW5n aW5lLgo+IEBAIC05MjQsMTAgKzkyMyw2IEBAIHN0YXRpYyB2b2lkIGNhbmNlbF9yZXF1ZXN0cyhz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJCWk5MTVfcmVxdWVzdF9tYXJrX2Nv bXBsZXRlKHJlcXVlc3QpOwo+ICAgCX0KPiAgIAo+IC0JaW50ZWxfd3JpdGVfc3RhdHVzX3BhZ2Uo ZW5naW5lLAo+IC0JCQkJSTkxNV9HRU1fSFdTX0lOREVYLAo+IC0JCQkJaW50ZWxfZW5naW5lX2xh c3Rfc3VibWl0KGVuZ2luZSkpOwo+IC0KPiAgIAkvKiBSZW1haW5pbmcgX3VucmVhZHlfIHJlcXVl c3RzIHdpbGwgYmUgbm9wJ2VkIHdoZW4gc3VibWl0dGVkICovCj4gICAKPiAgIAlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXggYjMwYzM3YWM1NWEzLi4yNmJhZTc3 NzIyMDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gQEAg LTg0MCw4ICs4NDAsNiBAQCBfX2ludGVsX3Jpbmdfc3BhY2UodW5zaWduZWQgaW50IGhlYWQsIHVu c2lnbmVkIGludCB0YWlsLCB1bnNpZ25lZCBpbnQgc2l6ZSkKPiAgIAlyZXR1cm4gKGhlYWQgLSB0 YWlsIC0gQ0FDSEVMSU5FX0JZVEVTKSAmIChzaXplIC0gMSk7Cj4gICB9Cj4gICAKPiAtdm9pZCBp bnRlbF9lbmdpbmVfd3JpdGVfZ2xvYmFsX3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwgdTMyIHNlcW5vKTsKPiAtCj4gICBpbnQgaW50ZWxfZW5naW5lX3NldHVwX2NvbW1vbihz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwo+ICAgaW50IGludGVsX2VuZ2luZV9pbml0 X2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwo+ICAgdm9pZCBpbnRlbF9l bmdpbmVfY2xlYW51cF9jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiBA QCAtODU5LDQ0ICs4NTcsNiBAQCB2b2lkIGludGVsX2VuZ2luZV9zZXRfaHdzcF93cml0ZW1hc2so c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgbWFzayk7Cj4gICB1NjQgaW50ZWxf ZW5naW5lX2dldF9hY3RpdmVfaGVhZChjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpOwo+ICAgdTY0IGludGVsX2VuZ2luZV9nZXRfbGFzdF9iYXRjaF9oZWFkKGNvbnN0IHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4gICAKPiAtc3RhdGljIGlubGluZSB1MzIgaW50 ZWxfZW5naW5lX2xhc3Rfc3VibWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAt ewo+IC0JLyoKPiAtCSAqIFdlIGFyZSBvbmx5IHBlZWtpbmcgYXQgdGhlIHRhaWwgb2YgdGhlIHN1 Ym1pdCBxdWV1ZSAoYW5kIG5vdCB0aGUKPiAtCSAqIHF1ZXVlIGl0c2VsZikgaW4gb3JkZXIgdG8g Z2FpbiBhIGhpbnQgYXMgdG8gdGhlIGN1cnJlbnQgYWN0aXZlCj4gLQkgKiBzdGF0ZSBvZiB0aGUg ZW5naW5lLiBDYWxsZXJzIGFyZSBub3QgZXhwZWN0ZWQgdG8gYmUgdGFraW5nCj4gLQkgKiBlbmdp bmUtPnRpbWVsaW5lLT5sb2NrLCBub3IgYXJlIHRoZXkgZXhwZWN0ZWQgdG8gYmUgY29uY2VybmVk Cj4gLQkgKiB3dGloIHNlcmlhbGlzaW5nIHRoaXMgaGludCB3aXRoIGFueXRoaW5nLCBzbyBkb2N1 bWVudCBpdCBhcwo+IC0JICogYSBoaW50IGFuZCBub3RoaW5nIG1vcmUuCj4gLQkgKi8KPiAtCXJl dHVybiBSRUFEX09OQ0UoZW5naW5lLT50aW1lbGluZS5zZXFubyk7Cj4gLX0KPiAtCj4gLXN0YXRp YyBpbmxpbmUgdTMyIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQo+IC17Cj4gLQlyZXR1cm4gaW50ZWxfcmVhZF9zdGF0dXNfcGFnZShlbmdpbmUs IEk5MTVfR0VNX0hXU19JTkRFWCk7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbmxpbmUgYm9vbCBpbnRl bF9lbmdpbmVfc2lnbmFsZWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+IC0JCQkJ CSB1MzIgc2Vxbm8pCj4gLXsKPiAtCXJldHVybiBpOTE1X3NlcW5vX3Bhc3NlZChpbnRlbF9lbmdp bmVfZ2V0X3NlcW5vKGVuZ2luZSksIHNlcW5vKTsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGluZSBi b29sIGludGVsX2VuZ2luZV9oYXNfY29tcGxldGVkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwKPiAtCQkJCQkgICAgICB1MzIgc2Vxbm8pCj4gLXsKPiAtCUdFTV9CVUdfT04oIXNlcW5v KTsKPiAtCXJldHVybiBpbnRlbF9lbmdpbmVfc2lnbmFsZWQoZW5naW5lLCBzZXFubyk7Cj4gLX0K PiAtCj4gLXN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9lbmdpbmVfaGFzX3N0YXJ0ZWQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+IC0JCQkJCSAgICB1MzIgc2Vxbm8pCj4gLXsKPiAt CUdFTV9CVUdfT04oIXNlcW5vKTsKPiAtCXJldHVybiBpbnRlbF9lbmdpbmVfc2lnbmFsZWQoZW5n aW5lLCBzZXFubyAtIDEpOwo+IC19Cj4gLQo+ICAgdm9pZCBpbnRlbF9lbmdpbmVfZ2V0X2luc3Rk b25lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgIAkJCSAgICAgICBzdHJ1Y3Qg aW50ZWxfaW5zdGRvbmUgKmluc3Rkb25lKTsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaTkxNV9yZXF1ZXN0LmMKPiBpbmRleCA2NzMzZGM1YjZiNGMuLjA3NGQzOTNm NGEwMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9y ZXF1ZXN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9yZXF1 ZXN0LmMKPiBAQCAtMjI2LDggKzIyNiw3IEBAIHN0YXRpYyBpbnQgaWd0X3JlcXVlc3RfcmV3aW5k KHZvaWQgKmFyZykKPiAgIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ ICAgCj4gICAJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHZpcCwgMCwgSFopID09IC1FVElNRSkgewo+ IC0JCXByX2VycigidGltZWQgb3V0IHdhaXRpbmcgZm9yIGhpZ2ggcHJpb3JpdHkgcmVxdWVzdCwg dmlwLnNlcW5vPSVkLCBjdXJyZW50IHNlcW5vPSVkXG4iLAo+IC0JCSAgICAgICB2aXAtPmdsb2Jh bF9zZXFubywgaW50ZWxfZW5naW5lX2dldF9zZXFubyhpOTE1LT5lbmdpbmVbUkNTXSkpOwo+ICsJ CXByX2VycigidGltZWQgb3V0IHdhaXRpbmcgZm9yIGhpZ2ggcHJpb3JpdHkgcmVxdWVzdFxuIik7 Cj4gICAJCWdvdG8gZXJyOwo+ICAgCX0KPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvbW9ja19lbmdpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9tb2NrX2VuZ2luZS5jCj4gaW5kZXggMGQzNWFmMDc4NjdiLi5mMDU1ZGEwMWNlZDkg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZW5naW5l LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19lbmdpbmUuYwo+ IEBAIC04Niw3ICs4Niw2IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpmaXJzdF9yZXF1 ZXN0KHN0cnVjdCBtb2NrX2VuZ2luZSAqZW5naW5lKQo+ICAgc3RhdGljIHZvaWQgYWR2YW5jZShz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgewo+ICAgCWxpc3RfZGVsX2luaXQoJnJl cXVlc3QtPm1vY2subGluayk7Cj4gLQlpbnRlbF9lbmdpbmVfd3JpdGVfZ2xvYmFsX3NlcW5vKHJl cXVlc3QtPmVuZ2luZSwgcmVxdWVzdC0+Z2xvYmFsX3NlcW5vKTsKPiAgIAlpOTE1X3JlcXVlc3Rf bWFya19jb21wbGV0ZShyZXF1ZXN0KTsKPiAgIAlHRU1fQlVHX09OKCFpOTE1X3JlcXVlc3RfY29t cGxldGVkKHJlcXVlc3QpKTsKPiAgIAo+IEBAIC0yNzYsNyArMjc1LDYgQEAgdm9pZCBtb2NrX2Vu Z2luZV9mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAKPiAgIHZvaWQg bW9ja19lbmdpbmVfcmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgewo+ IC0JaW50ZWxfZW5naW5lX3dyaXRlX2dsb2JhbF9zZXFubyhlbmdpbmUsIDApOwo+ICAgfQo+ICAg Cj4gICB2b2lkIG1vY2tfZW5naW5lX2ZyZWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQo+IAoKUmV2aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5j b20+CgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=