From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH 019/190] drm/i915: Separate out the seqno-barrier from engine->get_seqno Date: Mon, 11 Jan 2016 15:43:32 +0000 Message-ID: <5693CDA4.1060404@intel.com> References: <1452503961-14837-1-git-send-email-chris@chris-wilson.co.uk> <1452503961-14837-19-git-send-email-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 ESMTP id 1940D6E333 for ; Mon, 11 Jan 2016 07:43:37 -0800 (PST) In-Reply-To: <1452503961-14837-19-git-send-email-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 T24gMTEvMDEvMTYgMDk6MTYsIENocmlzIFdpbHNvbiB3cm90ZToKPiBJbiBvcmRlciB0byBzaW1w bGlmeSB0aGUgbmV4dCBjb3VwbGUgb2YgcGF0Y2hlcywgZXh0cmFjdCB0aGUKPiBsYXp5X2NvaGVy ZW5jeSBvcHRpbWlzYXRpb24gb3VyIG9mIHRoZSBlbmdpbmUtPmdldF9zZXFubygpIHZmdW5jIGlu dG8KPiBpdHMgb3duIGNhbGxiYWNrLgo+Cj4gdjI6IFJlbmFtZSB0aGUgYmFycmllciB0byBlbmdp bmUtPmlycV9zZXFub19iYXJyaWVyIHRvIHRyeSBhbmQgYmV0dGVyCj4gcmVmbGVjdCB0aGF0IHRo ZSBiYXJyaWVyIGlzIG9ubHkgcmVxdWlyZWQgYWZ0ZXIgdGhlIHVzZXIgaW50ZXJydXB0IGJlZm9y ZQo+IHJlYWRpbmcgdGhlIHNlcW5vICh0byBlbnN1cmUgdGhhdCB0aGUgc2Vxbm8gdXBkYXRlIGxh bmRzIGluIHRpbWUgYXMgd2UKPiBkbyBub3QgaGF2ZSBzdHJpY3Qgc2Vxbm8taXJxIG9yZGVyaW5n IG9uIGFsbCBwbGF0Zm9ybXMpLgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJp c0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYyAgICAgIHwgIDYgKystLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggICAgICAgICAgfCAxMiArKysrKystLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dwdV9lcnJvci5jICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMgICAgICAgICAgfCAgNCArKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Ry YWNlLmggICAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFk Y3J1bWJzLmMgfCAgNCArKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAg ICAgICAgIHwgMzkgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAgfCAzNiArKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICB8 ICA0ICsrLS0KPiAgIDkgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRp b25zKC0pCgpBbGwgbG9va3MgT0ssIHNvCgpSZXZpZXdlZC1ieTogRGF2ZSBHb3Jkb24gPGRhdmlk LnMuZ29yZG9uQGludGVsLmNvbT4KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBp bmRleCA5Mzk2NTk3YjEzNmQuLjE0OTllMjMzN2U1ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCj4gQEAgLTYwMCw3ICs2MDAsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3Bh Z2VmbGlwX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICAgCQkJCQkgICBy aW5nLT5uYW1lLAo+ICAgCQkJCQkgICBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyh3b3JrLT5m bGlwX3F1ZXVlZF9yZXEpLAo+ICAgCQkJCQkgICBkZXZfcHJpdi0+bmV4dF9zZXFubywKPiAtCQkJ CQkgICByaW5nLT5nZXRfc2Vxbm8ocmluZywgdHJ1ZSksCj4gKwkJCQkJICAgcmluZy0+Z2V0X3Nl cW5vKHJpbmcpLAo+ICAgCQkJCQkgICBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZCh3b3JrLT5m bGlwX3F1ZXVlZF9yZXEsIHRydWUpKTsKPiAgIAkJCX0gZWxzZQo+ICAgCQkJCXNlcV9wcmludGYo bSwgIkZsaXAgbm90IGFzc29jaWF0ZWQgd2l0aCBhbnkgcmluZ1xuIik7Cj4gQEAgLTczNCw3ICs3 MzQsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X3Jpbmdfc2Vxbm9faW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUg Km0sCj4KPiAgIAlpZiAocmluZy0+Z2V0X3NlcW5vKSB7Cj4gICAJCXNlcV9wcmludGYobSwgIkN1 cnJlbnQgc2VxdWVuY2UgKCVzKTogJXhcbiIsCj4gLQkJCSAgIHJpbmctPm5hbWUsIHJpbmctPmdl dF9zZXFubyhyaW5nLCBmYWxzZSkpOwo+ICsJCQkgICByaW5nLT5uYW1lLCByaW5nLT5nZXRfc2Vx bm8ocmluZykpOwo+ICAgCX0KPgo+ICAgCXNwaW5fbG9jaygmcmluZy0+YnJlYWRjcnVtYnMubG9j ayk7Cj4gQEAgLTEzNTQsNyArMTM1NCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5m byhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAgIAlpbnRlbF9ydW50aW1lX3Bt X2dldChkZXZfcHJpdik7Cj4KPiAgIAlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7 Cj4gLQkJc2Vxbm9baV0gPSByaW5nLT5nZXRfc2Vxbm8ocmluZywgZmFsc2UpOwo+ICsJCXNlcW5v W2ldID0gcmluZy0+Z2V0X3NlcW5vKHJpbmcpOwo+ICAgCQlhY3RoZFtpXSA9IGludGVsX3Jpbmdf Z2V0X2FjdGl2ZV9oZWFkKHJpbmcpOwo+ICAgCX0KPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ IGluZGV4IGE5ZThkZTU3ZTg0OC4uOTc2MmFhNzZiYjBhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4gQEAgLTI5NzIsMTUgKzI5NzIsMTkgQEAgaTkxNV9zZXFub19wYXNzZWQodWludDMy X3Qgc2VxMSwgdWludDMyX3Qgc2VxMikKPiAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9y ZXF1ZXN0X3N0YXJ0ZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCQkJ CSAgIGJvb2wgbGF6eV9jb2hlcmVuY3kpCj4gICB7Cj4gLQl1MzIgc2Vxbm8gPSByZXEtPnJpbmct PmdldF9zZXFubyhyZXEtPnJpbmcsIGxhenlfY29oZXJlbmN5KTsKPiAtCXJldHVybiBpOTE1X3Nl cW5vX3Bhc3NlZChzZXFubywgcmVxLT5wcmV2aW91c19zZXFubyk7Cj4gKwlpZiAoIWxhenlfY29o ZXJlbmN5ICYmIHJlcS0+cmluZy0+aXJxX3NlcW5vX2JhcnJpZXIpCj4gKwkJcmVxLT5yaW5nLT5p cnFfc2Vxbm9fYmFycmllcihyZXEtPnJpbmcpOwo+ICsJcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2Vk KHJlcS0+cmluZy0+Z2V0X3NlcW5vKHJlcS0+cmluZyksCj4gKwkJCQkgcmVxLT5wcmV2aW91c19z ZXFubyk7Cj4gICB9CgpXZSBoYXZlIGEgZGlmZmVyZW50IGltcGxlbWVudGF0aW9uIG9mIHJlcXVl c3Rfc3RhcnRlZCgpIHdpdGggdGhlIApzY2hlZHVsZXIsIGJ1dCB3ZSdsbCBqdXN0IHVwZGF0ZSB0 aGlzIHdoZW4gdGhlIHNjaGVkdWxlciBnb2VzIGluLgoKLkRhdmUuCgo+ICAgc3RhdGljIGlubGlu ZSBib29sIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxLAo+ICAgCQkJCQkgICAgICBib29sIGxhenlfY29oZXJlbmN5KQo+ICAgewo+IC0J dTMyIHNlcW5vID0gcmVxLT5yaW5nLT5nZXRfc2Vxbm8ocmVxLT5yaW5nLCBsYXp5X2NvaGVyZW5j eSk7Cj4gLQlyZXR1cm4gaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHJlcS0+c2Vxbm8pOwo+ICsJ aWYgKCFsYXp5X2NvaGVyZW5jeSAmJiByZXEtPnJpbmctPmlycV9zZXFub19iYXJyaWVyKQo+ICsJ CXJlcS0+cmluZy0+aXJxX3NlcW5vX2JhcnJpZXIocmVxLT5yaW5nKTsKPiArCXJldHVybiBpOTE1 X3NlcW5vX3Bhc3NlZChyZXEtPnJpbmctPmdldF9zZXFubyhyZXEtPnJpbmcpLAo+ICsJCQkJIHJl cS0+c2Vxbm8pOwo+ICAgfQo+Cj4gICBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX2dldF9zZXFu byhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgKnNlcW5vKTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3B1X2Vycm9yLmMKPiBpbmRleCBmODA1ZDExN2YzZDEuLjAxZDAyMDZjYTRkZCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+IEBAIC05MDIsOCArOTAyLDgg QEAgc3RhdGljIHZvaWQgaTkxNV9yZWNvcmRfcmluZ19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+Cj4gICAJZXJpbmctPndhaXRpbmcgPSBpbnRlbF9lbmdpbmVfaGFzX3dhaXRlcihyaW5n KTsKPiAgIAllcmluZy0+aW5zdHBtID0gSTkxNV9SRUFEKFJJTkdfSU5TVFBNKHJpbmctPm1taW9f YmFzZSkpOwo+IC0JZXJpbmctPnNlcW5vID0gcmluZy0+Z2V0X3NlcW5vKHJpbmcsIGZhbHNlKTsK PiAgIAllcmluZy0+YWN0aGQgPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChyaW5nKTsKPiAr CWVyaW5nLT5zZXFubyA9IHJpbmctPmdldF9zZXFubyhyaW5nKTsKPiAgIAllcmluZy0+c3RhcnQg PSBJOTE1X1JFQURfU1RBUlQocmluZyk7Cj4gICAJZXJpbmctPmhlYWQgPSBJOTE1X1JFQURfSEVB RChyaW5nKTsKPiAgIAllcmluZy0+dGFpbCA9IEk5MTVfUkVBRF9UQUlMKHJpbmcpOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4IDk1Yjk5N2E1N2RhOC4uZDczNjY5NzgzMDQ1IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gQEAgLTI5MDMsNyArMjkwMyw3IEBAIHN0YXRpYyBp bnQgc2VtYXBob3JlX3Bhc3NlZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAgCWlm IChzaWduYWxsZXItPmhhbmdjaGVjay5kZWFkbG9jayA+PSBJOTE1X05VTV9SSU5HUykKPiAgIAkJ cmV0dXJuIC0xOwo+Cj4gLQlpZiAoaTkxNV9zZXFub19wYXNzZWQoc2lnbmFsbGVyLT5nZXRfc2Vx bm8oc2lnbmFsbGVyLCBmYWxzZSksIHNlcW5vKSkKPiArCWlmIChpOTE1X3NlcW5vX3Bhc3NlZChz aWduYWxsZXItPmdldF9zZXFubyhzaWduYWxsZXIpLCBzZXFubykpCj4gICAJCXJldHVybiAxOwo+ Cj4gICAJLyogY3Vyc29yeSBjaGVjayBmb3IgYW4gdW5raWNrYWJsZSBkZWFkbG9jayAqLwo+IEBA IC0zMDY3LDggKzMwNjcsOCBAQCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPgo+ICAgCQlzZW1hcGhvcmVfY2xlYXJfZGVhZGxvY2tz KGRldl9wcml2KTsKPgo+IC0JCXNlcW5vID0gcmluZy0+Z2V0X3NlcW5vKHJpbmcsIGZhbHNlKTsK PiAgIAkJYWN0aGQgPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChyaW5nKTsKPiArCQlzZXFu byA9IHJpbmctPmdldF9zZXFubyhyaW5nKTsKPgo+ICAgCQlpZiAocmluZy0+aGFuZ2NoZWNrLnNl cW5vID09IHNlcW5vKSB7Cj4gICAJCQlpZiAocmluZ19pZGxlKHJpbmcsIHNlcW5vKSkgewo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3RyYWNlLmgKPiBpbmRleCA1MmIyZDQwOTk0NWQuLmNmYjVmNzhhNmU4 NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmgKPiBAQCAtNTczLDcgKzU3Myw3IEBA IFRSQUNFX0VWRU5UKGk5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5LAo+ICAgCSAgICBUUF9mYXN0X2Fz c2lnbigKPiAgIAkJCSAgIF9fZW50cnktPmRldiA9IHJpbmctPmRldi0+cHJpbWFyeS0+aW5kZXg7 Cj4gICAJCQkgICBfX2VudHJ5LT5yaW5nID0gcmluZy0+aWQ7Cj4gLQkJCSAgIF9fZW50cnktPnNl cW5vID0gcmluZy0+Z2V0X3NlcW5vKHJpbmcsIGZhbHNlKTsKPiArCQkJICAgX19lbnRyeS0+c2Vx bm8gPSByaW5nLT5nZXRfc2Vxbm8ocmluZyk7Cj4gICAJCQkgICApLAo+Cj4gICAJICAgIFRQX3By aW50aygiZGV2PSV1LCByaW5nPSV1LCBzZXFubz0ldSIsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9icmVhZGNydW1icy5jCj4gaW5kZXggOWY3NTY1ODNhNDRlLi4xMGIwYWRkNTRhY2YgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKPiBAQCAtMTI3LDcg KzEyNyw3IEBAIGJvb2wgaW50ZWxfZW5naW5lX2FkZF93YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSwKPiAgIAkJCSAgIHN0cnVjdCBpbnRlbF93YWl0ICp3YWl0KQo+ICAgewo+ICAg CXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1bWJzOwo+IC0J dTMyIHNlcW5vID0gZW5naW5lLT5nZXRfc2Vxbm8oZW5naW5lLCB0cnVlKTsKPiArCXUzMiBzZXFu byA9IGVuZ2luZS0+Z2V0X3NlcW5vKGVuZ2luZSk7Cj4gICAJc3RydWN0IHJiX25vZGUgKipwLCAq cGFyZW50LCAqY29tcGxldGVkOwo+ICAgCWJvb2wgZmlyc3Q7Cj4KPiBAQCAtMjY5LDcgKzI2OSw3 IEBAIHZvaWQgaW50ZWxfZW5naW5lX3JlbW92ZV93YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwKPiAgIAkJCSAqIHRoZSBmaXJzdF93YWl0ZXIuIFRoaXMgaXMgdW5kZXNpcmFibGUg aWYgdGhhdAo+ICAgCQkJICogd2FpdGVyIGlzIGEgaGlnaCBwcmlvcml0eSB0YXNrLgo+ICAgCQkJ ICovCj4gLQkJCXUzMiBzZXFubyA9IGVuZ2luZS0+Z2V0X3NlcW5vKGVuZ2luZSwgdHJ1ZSk7Cj4g KwkJCXUzMiBzZXFubyA9IGVuZ2luZS0+Z2V0X3NlcW5vKGVuZ2luZSk7Cj4gICAJCQl3aGlsZSAo aTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sCj4gICAJCQkJCQkgdG9fd2FpdChuZXh0KS0+c2Vxbm8p KSB7Cj4gICAJCQkJc3RydWN0IHJiX25vZGUgKm4gPSByYl9uZXh0KG5leHQpOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCj4gaW5kZXggMTZmYTU4YTBhOTMwLi4zMzNlOTViZGE3OGEgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0xNzc1LDcgKzE3NzUsNyBAQCBzdGF0aWMg aW50IGdlbjhfZW1pdF9mbHVzaF9yZW5kZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0LAo+ICAgCXJldHVybiAwOwo+ICAgfQo+Cj4gLXN0YXRpYyB1MzIgZ2VuOF9nZXRfc2Vx bm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgYm9vbCBsYXp5X2NvaGVyZW5jeSkKPiAr c3RhdGljIHUzMiBnZW44X2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ ICAgewo+ICAgCXJldHVybiBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfR0VNX0hX U19JTkRFWCk7Cj4gICB9Cj4gQEAgLTE3ODUsOSArMTc4NSw4IEBAIHN0YXRpYyB2b2lkIGdlbjhf c2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHUzMiBzZXFubykKPiAgIAlp bnRlbF93cml0ZV9zdGF0dXNfcGFnZShyaW5nLCBJOTE1X0dFTV9IV1NfSU5ERVgsIHNlcW5vKTsK PiAgIH0KPgo+IC1zdGF0aWMgdTMyIGJ4dF9hX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nLCBib29sIGxhenlfY29oZXJlbmN5KQo+ICtzdGF0aWMgdm9pZCBieHRfc2Vxbm9f YmFycmllcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAgewo+IC0KPiAgIAkvKgo+ ICAgCSAqIE9uIEJYVCBBIHN0ZXBwaW5ncyB0aGVyZSBpcyBhIEhXIGNvaGVyZW5jeSBpc3N1ZSB3 aGVyZWJ5IHRoZQo+ICAgCSAqIE1JX1NUT1JFX0RBVEFfSU1NIHN0b3JpbmcgdGhlIGNvbXBsZXRl ZCByZXF1ZXN0J3Mgc2Vxbm8KPiBAQCAtMTc5OCwxMSArMTc5Nyw3IEBAIHN0YXRpYyB1MzIgYnh0 X2FfZ2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGJvb2wgbGF6eV9jb2hl cmVuY3kpCj4gICAJICogYnh0X2Ffc2V0X3NlcW5vKCksIHdoZXJlIHdlIGFsc28gZG8gYSBjbGZs dXNoIGFmdGVyIHRoZSB3cml0ZS4gU28KPiAgIAkgKiB0aGlzIGNsZmx1c2ggaW4gcHJhY3RpY2Ug YmVjb21lcyBhbiBpbnZhbGlkYXRlIG9wZXJhdGlvbi4KPiAgIAkgKi8KPiAtCj4gLQlpZiAoIWxh enlfY29oZXJlbmN5KQo+IC0JCWludGVsX2ZsdXNoX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfR0VN X0hXU19JTkRFWCk7Cj4gLQo+IC0JcmV0dXJuIGludGVsX3JlYWRfc3RhdHVzX3BhZ2UocmluZywg STkxNV9HRU1fSFdTX0lOREVYKTsKPiArCWludGVsX2ZsdXNoX3N0YXR1c19wYWdlKHJpbmcsIEk5 MTVfR0VNX0hXU19JTkRFWCk7Cj4gICB9Cj4KPiAgIHN0YXRpYyB2b2lkIGJ4dF9hX3NldF9zZXFu byhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCB1MzIgc2Vxbm8pCj4gQEAgLTIwMDcsMTIg KzIwMDIsMTEgQEAgc3RhdGljIGludCBsb2dpY2FsX3JlbmRlcl9yaW5nX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgIAkJcmluZy0+aW5pdF9odyA9IGdlbjhfaW5pdF9yZW5kZXJfcmlu ZzsKPiAgIAlyaW5nLT5pbml0X2NvbnRleHQgPSBnZW44X2luaXRfcmNzX2NvbnRleHQ7Cj4gICAJ cmluZy0+Y2xlYW51cCA9IGludGVsX2ZpbmlfcGlwZV9jb250cm9sOwo+ICsJcmluZy0+Z2V0X3Nl cW5vID0gZ2VuOF9nZXRfc2Vxbm87Cj4gKwlyaW5nLT5zZXRfc2Vxbm8gPSBnZW44X3NldF9zZXFu bzsKPiAgIAlpZiAoSVNfQlhUX1JFVklEKGRldiwgMCwgQlhUX1JFVklEX0ExKSkgewo+IC0JCXJp bmctPmdldF9zZXFubyA9IGJ4dF9hX2dldF9zZXFubzsKPiArCQlyaW5nLT5pcnFfc2Vxbm9fYmFy cmllciA9IGJ4dF9zZXFub19iYXJyaWVyOwo+ICAgCQlyaW5nLT5zZXRfc2Vxbm8gPSBieHRfYV9z ZXRfc2Vxbm87Cj4gLQl9IGVsc2Ugewo+IC0JCXJpbmctPmdldF9zZXFubyA9IGdlbjhfZ2V0X3Nl cW5vOwo+IC0JCXJpbmctPnNldF9zZXFubyA9IGdlbjhfc2V0X3NlcW5vOwo+ICAgCX0KPiAgIAly aW5nLT5lbWl0X3JlcXVlc3QgPSBnZW44X2VtaXRfcmVxdWVzdDsKPiAgIAlyaW5nLT5lbWl0X2Zs dXNoID0gZ2VuOF9lbWl0X2ZsdXNoX3JlbmRlcjsKPiBAQCAtMjA1OSwxMiArMjA1MywxMSBAQCBz dGF0aWMgaW50IGxvZ2ljYWxfYnNkX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ICAgCQlHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVDsK Pgo+ICAgCXJpbmctPmluaXRfaHcgPSBnZW44X2luaXRfY29tbW9uX3Jpbmc7Cj4gKwlyaW5nLT5n ZXRfc2Vxbm8gPSBnZW44X2dldF9zZXFubzsKPiArCXJpbmctPnNldF9zZXFubyA9IGdlbjhfc2V0 X3NlcW5vOwo+ICAgCWlmIChJU19CWFRfUkVWSUQoZGV2LCAwLCBCWFRfUkVWSURfQTEpKSB7Cj4g LQkJcmluZy0+Z2V0X3NlcW5vID0gYnh0X2FfZ2V0X3NlcW5vOwo+ICsJCXJpbmctPmlycV9zZXFu b19iYXJyaWVyID0gYnh0X3NlcW5vX2JhcnJpZXI7Cj4gICAJCXJpbmctPnNldF9zZXFubyA9IGJ4 dF9hX3NldF9zZXFubzsKPiAtCX0gZWxzZSB7Cj4gLQkJcmluZy0+Z2V0X3NlcW5vID0gZ2VuOF9n ZXRfc2Vxbm87Cj4gLQkJcmluZy0+c2V0X3NlcW5vID0gZ2VuOF9zZXRfc2Vxbm87Cj4gICAJfQo+ ICAgCXJpbmctPmVtaXRfcmVxdWVzdCA9IGdlbjhfZW1pdF9yZXF1ZXN0Owo+ICAgCXJpbmctPmVt aXRfZmx1c2ggPSBnZW44X2VtaXRfZmx1c2g7Cj4gQEAgLTIxMTQsMTIgKzIxMDcsMTEgQEAgc3Rh dGljIGludCBsb2dpY2FsX2JsdF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg IAkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfQkNTX0lSUV9TSElGVDsKPgo+ ICAgCXJpbmctPmluaXRfaHcgPSBnZW44X2luaXRfY29tbW9uX3Jpbmc7Cj4gKwlyaW5nLT5nZXRf c2Vxbm8gPSBnZW44X2dldF9zZXFubzsKPiArCXJpbmctPnNldF9zZXFubyA9IGdlbjhfc2V0X3Nl cW5vOwo+ICAgCWlmIChJU19CWFRfUkVWSUQoZGV2LCAwLCBCWFRfUkVWSURfQTEpKSB7Cj4gLQkJ cmluZy0+Z2V0X3NlcW5vID0gYnh0X2FfZ2V0X3NlcW5vOwo+ICsJCXJpbmctPmlycV9zZXFub19i YXJyaWVyID0gYnh0X3NlcW5vX2JhcnJpZXI7Cj4gICAJCXJpbmctPnNldF9zZXFubyA9IGJ4dF9h X3NldF9zZXFubzsKPiAtCX0gZWxzZSB7Cj4gLQkJcmluZy0+Z2V0X3NlcW5vID0gZ2VuOF9nZXRf c2Vxbm87Cj4gLQkJcmluZy0+c2V0X3NlcW5vID0gZ2VuOF9zZXRfc2Vxbm87Cj4gICAJfQo+ICAg CXJpbmctPmVtaXRfcmVxdWVzdCA9IGdlbjhfZW1pdF9yZXF1ZXN0Owo+ICAgCXJpbmctPmVtaXRf Zmx1c2ggPSBnZW44X2VtaXRfZmx1c2g7Cj4gQEAgLTIxNDQsMTIgKzIxMzYsMTEgQEAgc3RhdGlj IGludCBsb2dpY2FsX3ZlYm94X3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAg CQlHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WRUNTX0lSUV9TSElGVDsKPgo+ ICAgCXJpbmctPmluaXRfaHcgPSBnZW44X2luaXRfY29tbW9uX3Jpbmc7Cj4gKwlyaW5nLT5nZXRf c2Vxbm8gPSBnZW44X2dldF9zZXFubzsKPiArCXJpbmctPnNldF9zZXFubyA9IGdlbjhfc2V0X3Nl cW5vOwo+ICAgCWlmIChJU19CWFRfUkVWSUQoZGV2LCAwLCBCWFRfUkVWSURfQTEpKSB7Cj4gLQkJ cmluZy0+Z2V0X3NlcW5vID0gYnh0X2FfZ2V0X3NlcW5vOwo+ICsJCXJpbmctPmlycV9zZXFub19i YXJyaWVyID0gYnh0X3NlcW5vX2JhcnJpZXI7Cj4gICAJCXJpbmctPnNldF9zZXFubyA9IGJ4dF9h X3NldF9zZXFubzsKPiAtCX0gZWxzZSB7Cj4gLQkJcmluZy0+Z2V0X3NlcW5vID0gZ2VuOF9nZXRf c2Vxbm87Cj4gLQkJcmluZy0+c2V0X3NlcW5vID0gZ2VuOF9zZXRfc2Vxbm87Cj4gICAJfQo+ICAg CXJpbmctPmVtaXRfcmVxdWVzdCA9IGdlbjhfZW1pdF9yZXF1ZXN0Owo+ICAgCXJpbmctPmVtaXRf Zmx1c2ggPSBnZW44X2VtaXRfZmx1c2g7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuYwo+IGluZGV4IDYwYjBkZjJjNTM5OS4uNTdlYzIxYzViMWFiIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IEBAIC0xNDg1LDggKzE0ODUsOCBAQCBw Y19yZW5kZXJfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4g ICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiAtc3RhdGljIHUzMgo+IC1nZW42X3JpbmdfZ2V0X3NlcW5v KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGJvb2wgbGF6eV9jb2hlcmVuY3kpCj4gK3N0 YXRpYyB2b2lkCj4gK2dlbjZfc2Vxbm9fYmFycmllcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKQo+ICAgewo+ICAgCS8qIFdvcmthcm91bmQgdG8gZm9yY2UgY29ycmVjdCBvcmRlcmluZyBi ZXR3ZWVuIGlycSBhbmQgc2Vxbm8gd3JpdGVzIG9uCj4gICAJICogaXZiIChhbmQgbWF5YmUgYWxz byBvbiBzbmIpIGJ5IHJlYWRpbmcgZnJvbSBhIENTIHJlZ2lzdGVyIChsaWtlCj4gQEAgLTE1MDAs MTggKzE1MDAsMTQgQEAgZ2VuNl9yaW5nX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nLCBib29sIGxhenlfY29oZXJlbmN5KQo+ICAgCSAqIGEgZGVsYXkgYWZ0ZXIgZXZlcnkg YmF0Y2ggaS5lLiBtdWNoIG1vcmUgZnJlcXVlbnQgdGhhbiBhIGRlbGF5Cj4gICAJICogd2hlbiB3 YWl0aW5nIGZvciB0aGUgaW50ZXJydXB0ICh3aXRoIHRoZSBzYW1lIG5ldCBsYXRlbmN5KS4KPiAg IAkgKi8KPiAtCWlmICghbGF6eV9jb2hlcmVuY3kpIHsKPiAtCQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2YXRlOwo+IC0JCVBPU1RJTkdfUkVB RF9GVyhSSU5HX0FDVEhEKHJpbmctPm1taW9fYmFzZSkpOwo+IC0KPiAtCQlpbnRlbF9mbHVzaF9z dGF0dXNfcGFnZShyaW5nLCBJOTE1X0dFTV9IV1NfSU5ERVgpOwo+IC0JfQo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmluZy0+aTkxNTsKPiArCVBPU1RJTkdfUkVBRF9G VyhSSU5HX0FDVEhEKHJpbmctPm1taW9fYmFzZSkpOwo+Cj4gLQlyZXR1cm4gaW50ZWxfcmVhZF9z dGF0dXNfcGFnZShyaW5nLCBJOTE1X0dFTV9IV1NfSU5ERVgpOwo+ICsJaW50ZWxfZmx1c2hfc3Rh dHVzX3BhZ2UocmluZywgSTkxNV9HRU1fSFdTX0lOREVYKTsKPiAgIH0KPgo+ICAgc3RhdGljIHUz Mgo+IC1yaW5nX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBib29sIGxh enlfY29oZXJlbmN5KQo+ICtyaW5nX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKQo+ICAgewo+ICAgCXJldHVybiBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVf R0VNX0hXU19JTkRFWCk7Cj4gICB9Cj4gQEAgLTE1MjMsNyArMTUxOSw3IEBAIHJpbmdfc2V0X3Nl cW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHUzMiBzZXFubykKPiAgIH0KPgo+ICAg c3RhdGljIHUzMgo+IC1wY19yZW5kZXJfZ2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsIGJvb2wgbGF6eV9jb2hlcmVuY3kpCj4gK3BjX3JlbmRlcl9nZXRfc2Vxbm8oc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIHsKPiAgIAlyZXR1cm4gcmluZy0+c2NyYXRjaC5j cHVfcGFnZVswXTsKPiAgIH0KPiBAQCAtMjY5OCw3ICsyNjk0LDggQEAgaW50IGludGVsX2luaXRf cmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJCXJpbmctPmly cV9nZXQgPSBnZW44X3JpbmdfZ2V0X2lycTsKPiAgIAkJcmluZy0+aXJxX3B1dCA9IGdlbjhfcmlu Z19wdXRfaXJxOwo+ICAgCQlyaW5nLT5pcnFfZW5hYmxlX21hc2sgPSBHVF9SRU5ERVJfVVNFUl9J TlRFUlJVUFQ7Cj4gLQkJcmluZy0+Z2V0X3NlcW5vID0gZ2VuNl9yaW5nX2dldF9zZXFubzsKPiAr CQlyaW5nLT5pcnFfc2Vxbm9fYmFycmllciA9IGdlbjZfc2Vxbm9fYmFycmllcjsKPiArCQlyaW5n LT5nZXRfc2Vxbm8gPSByaW5nX2dldF9zZXFubzsKPiAgIAkJcmluZy0+c2V0X3NlcW5vID0gcmlu Z19zZXRfc2Vxbm87Cj4gICAJCWlmIChpOTE1X3NlbWFwaG9yZV9pc19lbmFibGVkKGRldikpIHsK PiAgIAkJCVdBUk5fT04oIWRldl9wcml2LT5zZW1hcGhvcmVfb2JqKTsKPiBAQCAtMjcxNSw3ICsy NzEyLDggQEAgaW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gICAJCXJpbmctPmlycV9nZXQgPSBnZW42X3JpbmdfZ2V0X2lycTsKPiAgIAkJ cmluZy0+aXJxX3B1dCA9IGdlbjZfcmluZ19wdXRfaXJxOwo+ICAgCQlyaW5nLT5pcnFfZW5hYmxl X21hc2sgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQ7Cj4gLQkJcmluZy0+Z2V0X3NlcW5vID0g Z2VuNl9yaW5nX2dldF9zZXFubzsKPiArCQlyaW5nLT5pcnFfc2Vxbm9fYmFycmllciA9IGdlbjZf c2Vxbm9fYmFycmllcjsKPiArCQlyaW5nLT5nZXRfc2Vxbm8gPSByaW5nX2dldF9zZXFubzsKPiAg IAkJcmluZy0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87Cj4gICAJCWlmIChpOTE1X3NlbWFw aG9yZV9pc19lbmFibGVkKGRldikpIHsKPiAgIAkJCXJpbmctPnNlbWFwaG9yZS5zeW5jX3RvID0g Z2VuNl9yaW5nX3N5bmM7Cj4gQEAgLTI4MjksNyArMjgyNyw4IEBAIGludCBpbnRlbF9pbml0X2Jz ZF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCQkJcmluZy0+d3JpdGVf dGFpbCA9IGdlbjZfYnNkX3Jpbmdfd3JpdGVfdGFpbDsKPiAgIAkJcmluZy0+Zmx1c2ggPSBnZW42 X2JzZF9yaW5nX2ZsdXNoOwo+ICAgCQlyaW5nLT5hZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3JlcXVl c3Q7Cj4gLQkJcmluZy0+Z2V0X3NlcW5vID0gZ2VuNl9yaW5nX2dldF9zZXFubzsKPiArCQlyaW5n LT5pcnFfc2Vxbm9fYmFycmllciA9IGdlbjZfc2Vxbm9fYmFycmllcjsKPiArCQlyaW5nLT5nZXRf c2Vxbm8gPSByaW5nX2dldF9zZXFubzsKPiAgIAkJcmluZy0+c2V0X3NlcW5vID0gcmluZ19zZXRf c2Vxbm87Cj4gICAJCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KSB7Cj4gICAJCQlyaW5n LT5pcnFfZW5hYmxlX21hc2sgPQo+IEBAIC0yOTAxLDcgKzI5MDAsOCBAQCBpbnQgaW50ZWxfaW5p dF9ic2QyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJcmluZy0+bW1p b19iYXNlID0gR0VOOF9CU0QyX1JJTkdfQkFTRTsKPiAgIAlyaW5nLT5mbHVzaCA9IGdlbjZfYnNk X3JpbmdfZmx1c2g7Cj4gICAJcmluZy0+YWRkX3JlcXVlc3QgPSBnZW42X2FkZF9yZXF1ZXN0Owo+ IC0JcmluZy0+Z2V0X3NlcW5vID0gZ2VuNl9yaW5nX2dldF9zZXFubzsKPiArCXJpbmctPmlycV9z ZXFub19iYXJyaWVyID0gZ2VuNl9zZXFub19iYXJyaWVyOwo+ICsJcmluZy0+Z2V0X3NlcW5vID0g cmluZ19nZXRfc2Vxbm87Cj4gICAJcmluZy0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87Cj4g ICAJcmluZy0+aXJxX2VuYWJsZV9tYXNrID0KPiAgIAkJCUdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQ VCA8PCBHRU44X1ZDUzJfSVJRX1NISUZUOwo+IEBAIC0yOTMxLDcgKzI5MzEsOCBAQCBpbnQgaW50 ZWxfaW5pdF9ibHRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAlyaW5n LT53cml0ZV90YWlsID0gcmluZ193cml0ZV90YWlsOwo+ICAgCXJpbmctPmZsdXNoID0gZ2VuNl9y aW5nX2ZsdXNoOwo+ICAgCXJpbmctPmFkZF9yZXF1ZXN0ID0gZ2VuNl9hZGRfcmVxdWVzdDsKPiAt CXJpbmctPmdldF9zZXFubyA9IGdlbjZfcmluZ19nZXRfc2Vxbm87Cj4gKwlyaW5nLT5pcnFfc2Vx bm9fYmFycmllciA9IGdlbjZfc2Vxbm9fYmFycmllcjsKPiArCXJpbmctPmdldF9zZXFubyA9IHJp bmdfZ2V0X3NlcW5vOwo+ICAgCXJpbmctPnNldF9zZXFubyA9IHJpbmdfc2V0X3NlcW5vOwo+ICAg CWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KSB7Cj4gICAJCXJpbmctPmlycV9lbmFibGVf bWFzayA9Cj4gQEAgLTI5ODgsNyArMjk4OSw4IEBAIGludCBpbnRlbF9pbml0X3ZlYm94X3Jpbmdf YnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJcmluZy0+d3JpdGVfdGFpbCA9IHJp bmdfd3JpdGVfdGFpbDsKPiAgIAlyaW5nLT5mbHVzaCA9IGdlbjZfcmluZ19mbHVzaDsKPiAgIAly aW5nLT5hZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3JlcXVlc3Q7Cj4gLQlyaW5nLT5nZXRfc2Vxbm8g PSBnZW42X3JpbmdfZ2V0X3NlcW5vOwo+ICsJcmluZy0+aXJxX3NlcW5vX2JhcnJpZXIgPSBnZW42 X3NlcW5vX2JhcnJpZXI7Cj4gKwlyaW5nLT5nZXRfc2Vxbm8gPSByaW5nX2dldF9zZXFubzsKPiAg IAlyaW5nLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFubzsKPgo+ICAgCWlmIChJTlRFTF9JTkZP KGRldiktPmdlbiA+PSA4KSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aAo+IGluZGV4IDUxZmNiNjZiZmM0YS4uM2I0OTcyNmIxNzMyIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IEBAIC0yMTksOCArMjE5LDggQEAgc3RydWN0ICBp bnRlbF9lbmdpbmVfY3Mgewo+ICAgCSAqIHNlZW4gdmFsdWUgaXMgZ29vZCBlbm91Z2guIE5vdGUg dGhhdCB0aGUgc2Vxbm8gd2lsbCBhbHdheXMgYmUKPiAgIAkgKiBtb25vdG9uaWMsIGV2ZW4gaWYg bm90IGNvaGVyZW50Lgo+ICAgCSAqLwo+IC0JdTMyCQkoKmdldF9zZXFubykoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZywKPiAtCQkJCSAgICAgYm9vbCBsYXp5X2NvaGVyZW5jeSk7Cj4gKwl2 b2lkCQkoKmlycV9zZXFub19iYXJyaWVyKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsK PiArCXUzMgkJKCpnZXRfc2Vxbm8pKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ICAg CXZvaWQJCSgqc2V0X3NlcW5vKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgCQkJ CSAgICAgdTMyIHNlcW5vKTsKPiAgIAlpbnQJCSgqZGlzcGF0Y2hfZXhlY2J1ZmZlcikoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==