From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 08/20] drm/i915: Use HWS for seqno tracking everywhere Date: Fri, 1 Jul 2016 15:09:16 +0100 Message-ID: <5776798C.5040104@linux.intel.com> References: <1467372140-30422-1-git-send-email-chris@chris-wilson.co.uk> <1467372140-30422-9-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 82BE46EA8F for ; Fri, 1 Jul 2016 14:10:19 +0000 (UTC) In-Reply-To: <1467372140-30422-9-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 Ck9uIDAxLzA3LzE2IDEyOjIyLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gQnkgdXNpbmcgdGhlIHNh bWUgYWRkcmVzcyBmb3Igc3RvcmluZyB0aGUgSFdTIG9uIGV2ZXJ5IHBsYXRmb3JtLCB3ZSBjYW4K PiByZW1vdmUgdGhlIHBsYXRmb3JtIHNwZWNpZmljIHZmdW5jcyBhbmQgcmVkdWNlIHRoZSBnZXQt c2Vxbm8gcm91dGluZSB0bwo+IGEgc2luZ2xlIHJlYWQgb2YgYSBjYWNoZWQgbWVtb3J5IGxvY2F0 aW9uLgo+Cj4gdjI6IEZpeCBzZW1hcGhvcmVfcGFzc2VkKCkgdG8gbG9vayBhdCB0aGUgc2lnbmFs aW5nIGVuZ2luZSAobm90IHRoZQo+IHdhaXRlcidzKQo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgIHwgIDYgKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oICAgICAgICAgIHwgIDQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3B1X2Vycm9yLmMgICAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYyAgICAgICAgICB8ICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Ry YWNlLmggICAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFk Y3J1bWJzLmMgfCAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAg ICAgICB8IDI2ICstLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYyAgfCA2NSArKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICB8ICA3ICsrLS0KPiAgIDkgZmls ZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgODYgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IDMzZTU1NDBlNzIyOS4uNTg2Y2Q4YzY1MTQ2 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtNjYyLDcgKzY2Miw3 IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fcGFnZWZsaXBfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKmRhdGEpCj4gICAJCQkJCSAgIGVuZ2luZS0+bmFtZSwKPiAgIAkJCQkJICAgaTkxNV9n ZW1fcmVxdWVzdF9nZXRfc2Vxbm8od29yay0+ZmxpcF9xdWV1ZWRfcmVxKSwKPiAgIAkJCQkJICAg ZGV2X3ByaXYtPm5leHRfc2Vxbm8sCj4gLQkJCQkJICAgZW5naW5lLT5nZXRfc2Vxbm8oZW5naW5l KSwKPiArCQkJCQkgICBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSksCj4gICAJCQkJCSAg IGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHdvcmstPmZsaXBfcXVldWVkX3JlcSkpOwo+ICAg CQkJfSBlbHNlCj4gICAJCQkJc2VxX3ByaW50ZihtLCAiRmxpcCBub3QgYXNzb2NpYXRlZCB3aXRo IGFueSByaW5nXG4iKTsKPiBAQCAtNzkyLDcgKzc5Miw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfcmlu Z19zZXFub19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKPiAgIAlzdHJ1Y3QgcmJfbm9kZSAqcmI7 Cj4KPiAgIAlzZXFfcHJpbnRmKG0sICJDdXJyZW50IHNlcXVlbmNlICglcyk6ICV4XG4iLAo+IC0J CSAgIGVuZ2luZS0+bmFtZSwgZW5naW5lLT5nZXRfc2Vxbm8oZW5naW5lKSk7Cj4gKwkJICAgZW5n aW5lLT5uYW1lLCBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSkpOwo+ICAgCXNlcV9wcmlu dGYobSwgIkN1cnJlbnQgdXNlciBpbnRlcnJ1cHRzICglcyk6ICV4XG4iLAo+ICAgCQkgICBlbmdp bmUtPm5hbWUsIFJFQURfT05DRShlbmdpbmUtPnVzZXJfaW50ZXJydXB0cykpOwo+Cj4gQEAgLTE0 MjAsNyArMTQyMCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPgo+ICAgCWZvcl9lYWNoX2VuZ2luZV9pZChlbmdpbmUs IGRldl9wcml2LCBpZCkgewo+ICAgCQlhY3RoZFtpZF0gPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVf aGVhZChlbmdpbmUpOwo+IC0JCXNlcW5vW2lkXSA9IGVuZ2luZS0+Z2V0X3NlcW5vKGVuZ2luZSk7 Cj4gKwkJc2Vxbm9baWRdID0gaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwo+ICAgCX0K Pgo+ICAgCWk5MTVfZ2V0X2V4dHJhX2luc3Rkb25lKGRldl9wcml2LCBpbnN0ZG9uZSk7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMGVhNjljNWVjYzhiLi41YTFlOGUwNTZlZTUgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMzI4OSwxMyArMzI4OSwxMyBAQCBpOTE1 X3NlcW5vX3Bhc3NlZCh1aW50MzJfdCBzZXExLCB1aW50MzJfdCBzZXEyKQo+Cj4gICBzdGF0aWMg aW5saW5lIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9zdGFydGVkKGNvbnN0IHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgewo+IC0JcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKHJl cS0+ZW5naW5lLT5nZXRfc2Vxbm8ocmVxLT5lbmdpbmUpLAo+ICsJcmV0dXJuIGk5MTVfc2Vxbm9f cGFzc2VkKGludGVsX2VuZ2luZV9nZXRfc2Vxbm8ocmVxLT5lbmdpbmUpLAo+ICAgCQkJCSByZXEt PnByZXZpb3VzX3NlcW5vKTsKPiAgIH0KPgo+ICAgc3RhdGljIGlubGluZSBib29sIGk5MTVfZ2Vt X3JlcXVlc3RfY29tcGxldGVkKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQo+ICAgewo+IC0JcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKHJlcS0+ZW5naW5lLT5nZXRfc2Vx bm8ocmVxLT5lbmdpbmUpLAo+ICsJcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKGludGVsX2VuZ2lu ZV9nZXRfc2Vxbm8ocmVxLT5lbmdpbmUpLAo+ICAgCQkJCSByZXEtPnNlcW5vKTsKPiAgIH0KPgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+IGluZGV4IGZjYzc2MDZmYzAwOC4u OTVmOGQ0ZDJkNmM5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1 X2Vycm9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4g QEAgLTk4NCw3ICs5ODQsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X3JlY29yZF9yaW5nX3N0YXRlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAllcmluZy0+d2FpdGluZyA9IGlu dGVsX2VuZ2luZV9oYXNfd2FpdGVyKGVuZ2luZSk7Cj4gICAJZXJpbmctPmluc3RwbSA9IEk5MTVf UkVBRChSSU5HX0lOU1RQTShlbmdpbmUtPm1taW9fYmFzZSkpOwo+ICAgCWVyaW5nLT5hY3RoZCA9 IGludGVsX3JpbmdfZ2V0X2FjdGl2ZV9oZWFkKGVuZ2luZSk7Cj4gLQllcmluZy0+c2Vxbm8gPSBl bmdpbmUtPmdldF9zZXFubyhlbmdpbmUpOwo+ICsJZXJpbmctPnNlcW5vID0gaW50ZWxfZW5naW5l X2dldF9zZXFubyhlbmdpbmUpOwo+ICAgCWVyaW5nLT5sYXN0X3NlcW5vID0gZW5naW5lLT5sYXN0 X3N1Ym1pdHRlZF9zZXFubzsKPiAgIAllcmluZy0+c3RhcnQgPSBJOTE1X1JFQURfU1RBUlQoZW5n aW5lKTsKPiAgIAllcmluZy0+aGVhZCA9IEk5MTVfUkVBRF9IRUFEKGVuZ2luZSk7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2lycS5jCj4gaW5kZXggYTExYWIwMGNkZWUwLi43YzM3OWFmY2ZmMmYgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBAQCAtMjk1Miw3ICsyOTUyLDcgQEAgc3RhdGljIGlu dCBzZW1hcGhvcmVfcGFzc2VkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAlp ZiAoc2lnbmFsbGVyLT5oYW5nY2hlY2suZGVhZGxvY2sgPj0gSTkxNV9OVU1fRU5HSU5FUykKPiAg IAkJcmV0dXJuIC0xOwo+Cj4gLQlpZiAoaTkxNV9zZXFub19wYXNzZWQoc2lnbmFsbGVyLT5nZXRf c2Vxbm8oc2lnbmFsbGVyKSwgc2Vxbm8pKQo+ICsJaWYgKGk5MTVfc2Vxbm9fcGFzc2VkKGludGVs X2VuZ2luZV9nZXRfc2Vxbm8oc2lnbmFsbGVyKSwgc2Vxbm8pKQo+ICAgCQlyZXR1cm4gMTsKPgo+ ICAgCS8qIGN1cnNvcnkgY2hlY2sgZm9yIGFuIHVua2lja2FibGUgZGVhZGxvY2sgKi8KPiBAQCAt MzE0MCw3ICszMTQwLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gICAJCQllbmdpbmUtPmlycV9zZXFub19iYXJyaWVyKGVu Z2luZSk7Cj4KPiAgIAkJYWN0aGQgPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChlbmdpbmUp Owo+IC0JCXNlcW5vID0gZW5naW5lLT5nZXRfc2Vxbm8oZW5naW5lKTsKPiArCQlzZXFubyA9IGlu dGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsKPgo+ICAgCQkvKiBSZXNldCBzdHVjayBpbnRl cnJ1cHRzIGJldHdlZW4gYmF0Y2ggYWR2YW5jZXMgKi8KPiAgIAkJdXNlcl9pbnRlcnJ1cHRzID0g MDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oCj4gaW5kZXggNjc2OGRiMDMyZjg0Li4zZDEz ZmRlOTVmZGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oCj4gQEAgLTU1OCw3ICs1 NTgsNyBAQCBUUkFDRV9FVkVOVChpOTE1X2dlbV9yZXF1ZXN0X25vdGlmeSwKPiAgIAkgICAgVFBf ZmFzdF9hc3NpZ24oCj4gICAJCQkgICBfX2VudHJ5LT5kZXYgPSBlbmdpbmUtPmk5MTUtPmRldi0+ cHJpbWFyeS0+aW5kZXg7Cj4gICAJCQkgICBfX2VudHJ5LT5yaW5nID0gZW5naW5lLT5pZDsKPiAt CQkJICAgX19lbnRyeS0+c2Vxbm8gPSBlbmdpbmUtPmdldF9zZXFubyhlbmdpbmUpOwo+ICsJCQkg ICBfX2VudHJ5LT5zZXFubyA9IGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsKPiAgIAkJ CSAgICksCj4KPiAgIAkgICAgVFBfcHJpbnRrKCJkZXY9JXUsIHJpbmc9JXUsIHNlcW5vPSV1IiwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKPiBpbmRleCAwZmQ2OGYy YjdjNzkuLmY3ZmE5OWEwMGRhOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9icmVhZGNydW1icy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJl YWRjcnVtYnMuYwo+IEBAIC0xNDYsNyArMTQ2LDcgQEAgc3RhdGljIGJvb2wgX19pbnRlbF9lbmdp bmVfYWRkX3dhaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICAgCWZpcnN0ID0g dHJ1ZTsKPiAgIAlwYXJlbnQgPSBOVUxMOwo+ICAgCWNvbXBsZXRlZCA9IE5VTEw7Cj4gLQlzZXFu byA9IGVuZ2luZS0+Z2V0X3NlcW5vKGVuZ2luZSk7Cj4gKwlzZXFubyA9IGludGVsX2VuZ2luZV9n ZXRfc2Vxbm8oZW5naW5lKTsKPgo+ICAgCSAvKiBJZiB0aGUgcmVxdWVzdCBjb21wbGV0ZWQgYmVm b3JlIHdlIG1hbmFnZWQgdG8gZ3JhYiB0aGUgc3BpbmxvY2ssCj4gICAJICAqIHJldHVybiBub3cg YmVmb3JlIGFkZGluZyBvdXJzZWx2ZXMgdG8gdGhlIHJidHJlZS4gV2UgbGV0IHRoZQo+IEBAIC0y OTQsNyArMjk0LDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVfcmVtb3ZlX3dhaXQoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLAo+ICAgCQkJICogdGhlIGZpcnN0X3dhaXRlci4gVGhpcyBpcyB1 bmRlc2lyYWJsZSBpZiB0aGF0Cj4gICAJCQkgKiB3YWl0ZXIgaXMgYSBoaWdoIHByaW9yaXR5IHRh c2suCj4gICAJCQkgKi8KPiAtCQkJdTMyIHNlcW5vID0gZW5naW5lLT5nZXRfc2Vxbm8oZW5naW5l KTsKPiArCQkJdTMyIHNlcW5vID0gaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwo+Cj4g ICAJCQl3aGlsZSAoaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHRvX3dhaXQobmV4dCktPnNlcW5v KSkgewo+ICAgCQkJCXN0cnVjdCByYl9ub2RlICpuID0gcmJfbmV4dChuZXh0KTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYwo+IGluZGV4IDIyNmJiYTIyZTRiNC4uYzg0MTFmOGJiNGFjIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtMTc4MywxNiArMTc4Myw2IEBAIHN0YXRp YyBpbnQgZ2VuOF9lbWl0X2ZsdXNoX3JlbmRlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3QsCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiAtc3RhdGljIHUzMiBnZW44X2dldF9z ZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gLXsKPiAtCXJldHVybiBpbnRl bF9yZWFkX3N0YXR1c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1fSFdTX0lOREVYKTsKPiAtfQo+IC0K PiAtc3RhdGljIHZvaWQgZ2VuOF9zZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLCB1MzIgc2Vxbm8pCj4gLXsKPiAtCWludGVsX3dyaXRlX3N0YXR1c19wYWdlKGVuZ2luZSwg STkxNV9HRU1fSFdTX0lOREVYLCBzZXFubyk7Cj4gLX0KPiAtCj4gICBzdGF0aWMgdm9pZCBieHRf YV9zZXFub19iYXJyaWVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAg IAkvKgo+IEBAIC0xODA4LDE0ICsxNzk4LDYgQEAgc3RhdGljIHZvaWQgYnh0X2Ffc2Vxbm9fYmFy cmllcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJaW50ZWxfZmx1c2hfc3Rh dHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9IV1NfSU5ERVgpOwo+ICAgfQo+Cj4gLXN0YXRpYyB2 b2lkIGJ4dF9hX3NldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBz ZXFubykKPiAtewo+IC0JaW50ZWxfd3JpdGVfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9I V1NfSU5ERVgsIHNlcW5vKTsKPiAtCj4gLQkvKiBTZWUgYnh0X2FfZ2V0X3NlcW5vKCkgZXhwbGFp bmluZyB0aGUgcmVhc29uIGZvciB0aGUgY2xmbHVzaC4gKi8KPiAtCWludGVsX2ZsdXNoX3N0YXR1 c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1fSFdTX0lOREVYKTsKPiAtfQo+IC0KPiAgIC8qCj4gICAg KiBSZXNlcnZlIHNwYWNlIGZvciAyIE5PT1BzIGF0IHRoZSBlbmQgb2YgZWFjaCByZXF1ZXN0IHRv IGJlCj4gICAgKiB1c2VkIGFzIGEgd29ya2Fyb3VuZCBmb3Igbm90IGJlaW5nIGFsbG93ZWQgdG8g ZG8gbGl0ZQo+IEBAIC0xODQxLDcgKzE4MjMsNyBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9yZXF1 ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiAgIAkJCQlpbnRlbF9o d3Nfc2Vxbm9fYWRkcmVzcyhyZXF1ZXN0LT5lbmdpbmUpIHwKPiAgIAkJCQlNSV9GTFVTSF9EV19V U0VfR1RUKTsKPiAgIAlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCAwKTsKPiAtCWlu dGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5v KHJlcXVlc3QpKTsKPiArCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIHJlcXVlc3Qt PnNlcW5vKTsKPiAgIAlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9VU0VSX0lO VEVSUlVQVCk7Cj4gICAJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7 Cj4gICAJcmV0dXJuIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQocmVxdWVz dCk7Cj4gQEAgLTE5ODcsMTIgKzE5NjksOCBAQCBsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3Mo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCWVuZ2luZS0+aXJxX2dldCA9IGdl bjhfbG9naWNhbF9yaW5nX2dldF9pcnE7Cj4gICAJZW5naW5lLT5pcnFfcHV0ID0gZ2VuOF9sb2dp Y2FsX3JpbmdfcHV0X2lycTsKPiAgIAllbmdpbmUtPmVtaXRfYmJfc3RhcnQgPSBnZW44X2VtaXRf YmJfc3RhcnQ7Cj4gLQllbmdpbmUtPmdldF9zZXFubyA9IGdlbjhfZ2V0X3NlcW5vOwo+IC0JZW5n aW5lLT5zZXRfc2Vxbm8gPSBnZW44X3NldF9zZXFubzsKPiAtCWlmIChJU19CWFRfUkVWSUQoZW5n aW5lLT5pOTE1LCAwLCBCWFRfUkVWSURfQTEpKSB7Cj4gKwlpZiAoSVNfQlhUX1JFVklEKGVuZ2lu ZS0+aTkxNSwgMCwgQlhUX1JFVklEX0ExKSkKPiAgIAkJZW5naW5lLT5pcnFfc2Vxbm9fYmFycmll ciA9IGJ4dF9hX3NlcW5vX2JhcnJpZXI7Cj4gLQkJZW5naW5lLT5zZXRfc2Vxbm8gPSBieHRfYV9z ZXRfc2Vxbm87Cj4gLQl9Cj4gICB9Cj4KPiAgIHN0YXRpYyBpbmxpbmUgdm9pZAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRleCBhZjUwYWEwMWJjZDkuLjAyMTA0 ZmJmOTA0NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBA QCAtMTM2NywxOSArMTM2NywxNyBAQCBzdGF0aWMgaW50IGdlbjhfcmNzX3NpZ25hbChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnNpZ25hbGxlcl9yZXEsCj4gICAJCXJldHVybiByZXQ7Cj4K PiAgIAlmb3JfZWFjaF9lbmdpbmVfaWQod2FpdGVyLCBkZXZfcHJpdiwgaWQpIHsKPiAtCQl1MzIg c2Vxbm87Cj4gICAJCXU2NCBndHRfb2Zmc2V0ID0gc2lnbmFsbGVyLT5zZW1hcGhvcmUuc2lnbmFs X2dndHRbaWRdOwo+ICAgCQlpZiAoZ3R0X29mZnNldCA9PSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZB TElEKQo+ICAgCQkJY29udGludWU7Cj4KPiAtCQlzZXFubyA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0 X3NlcW5vKHNpZ25hbGxlcl9yZXEpOwo+ICAgCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBH RlhfT1BfUElQRV9DT05UUk9MKDYpKTsKPiAgIAkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwg UElQRV9DT05UUk9MX0dMT0JBTF9HVFRfSVZCIHwKPiAgIAkJCQkJICAgUElQRV9DT05UUk9MX1FX X1dSSVRFIHwKPiAgIAkJCQkJICAgUElQRV9DT05UUk9MX0NTX1NUQUxMKTsKPiAgIAkJaW50ZWxf cmluZ19lbWl0KHNpZ25hbGxlciwgbG93ZXJfMzJfYml0cyhndHRfb2Zmc2V0KSk7Cj4gICAJCWlu dGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIHVwcGVyXzMyX2JpdHMoZ3R0X29mZnNldCkpOwo+IC0J CWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIHNlcW5vKTsKPiArCQlpbnRlbF9yaW5nX2VtaXQo c2lnbmFsbGVyLCBzaWduYWxsZXJfcmVxLT5zZXFubyk7Cj4gICAJCWludGVsX3JpbmdfZW1pdChz aWduYWxsZXIsIDApOwo+ICAgCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBNSV9TRU1BUEhP UkVfU0lHTkFMIHwKPiAgIAkJCQkJICAgTUlfU0VNQVBIT1JFX1RBUkdFVCh3YWl0ZXItPmh3X2lk KSk7Cj4gQEAgLTE0MDgsMTggKzE0MDYsMTYgQEAgc3RhdGljIGludCBnZW44X3hjc19zaWduYWwo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAo+ICAgCQlyZXR1cm4g cmV0Owo+Cj4gICAJZm9yX2VhY2hfZW5naW5lX2lkKHdhaXRlciwgZGV2X3ByaXYsIGlkKSB7Cj4g LQkJdTMyIHNlcW5vOwo+ICAgCQl1NjQgZ3R0X29mZnNldCA9IHNpZ25hbGxlci0+c2VtYXBob3Jl LnNpZ25hbF9nZ3R0W2lkXTsKPiAgIAkJaWYgKGd0dF9vZmZzZXQgPT0gTUlfU0VNQVBIT1JFX1NZ TkNfSU5WQUxJRCkKPiAgIAkJCWNvbnRpbnVlOwo+Cj4gLQkJc2Vxbm8gPSBpOTE1X2dlbV9yZXF1 ZXN0X2dldF9zZXFubyhzaWduYWxsZXJfcmVxKTsKPiAgIAkJaW50ZWxfcmluZ19lbWl0KHNpZ25h bGxlciwgKE1JX0ZMVVNIX0RXICsgMSkgfAo+ICAgCQkJCQkgICBNSV9GTFVTSF9EV19PUF9TVE9S RURXKTsKPiAgIAkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgbG93ZXJfMzJfYml0cyhndHRf b2Zmc2V0KSB8Cj4gICAJCQkJCSAgIE1JX0ZMVVNIX0RXX1VTRV9HVFQpOwo+ICAgCQlpbnRlbF9y aW5nX2VtaXQoc2lnbmFsbGVyLCB1cHBlcl8zMl9iaXRzKGd0dF9vZmZzZXQpKTsKPiAtCQlpbnRl bF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBzZXFubyk7Cj4gKwkJaW50ZWxfcmluZ19lbWl0KHNpZ25h bGxlciwgc2lnbmFsbGVyX3JlcS0+c2Vxbm8pOwo+ICAgCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFs bGVyLCBNSV9TRU1BUEhPUkVfU0lHTkFMIHwKPiAgIAkJCQkJICAgTUlfU0VNQVBIT1JFX1RBUkdF VCh3YWl0ZXItPmh3X2lkKSk7Cj4gICAJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIDApOwo+ IEBAIC0xNDUwLDExICsxNDQ2LDkgQEAgc3RhdGljIGludCBnZW42X3NpZ25hbChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnNpZ25hbGxlcl9yZXEsCj4gICAJCWk5MTVfcmVnX3QgbWJveF9y ZWcgPSBzaWduYWxsZXItPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtpZF07Cj4KPiAgIAkJaWYgKGk5 MTVfbW1pb19yZWdfdmFsaWQobWJveF9yZWcpKSB7Cj4gLQkJCXUzMiBzZXFubyA9IGk5MTVfZ2Vt X3JlcXVlc3RfZ2V0X3NlcW5vKHNpZ25hbGxlcl9yZXEpOwo+IC0KPiAgIAkJCWludGVsX3Jpbmdf ZW1pdChzaWduYWxsZXIsIE1JX0xPQURfUkVHSVNURVJfSU1NKDEpKTsKPiAgIAkJCWludGVsX3Jp bmdfZW1pdF9yZWcoc2lnbmFsbGVyLCBtYm94X3JlZyk7Cj4gLQkJCWludGVsX3JpbmdfZW1pdChz aWduYWxsZXIsIHNlcW5vKTsKPiArCQkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgc2lnbmFs bGVyX3JlcS0+c2Vxbm8pOwo+ICAgCQl9Cj4gICAJfQo+Cj4gQEAgLTE0OTAsNyArMTQ4NCw3IEBA IGdlbjZfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICAJ aW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfU1RPUkVfRFdPUkRfSU5ERVgpOwo+ICAgCWludGVs X3JpbmdfZW1pdChlbmdpbmUsCj4gICAJCQlJOTE1X0dFTV9IV1NfSU5ERVggPDwgTUlfU1RPUkVf RFdPUkRfSU5ERVhfU0hJRlQpOwo+IC0JaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgaTkxNV9nZW1f cmVxdWVzdF9nZXRfc2Vxbm8ocmVxKSk7Cj4gKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCByZXEt PnNlcW5vKTsKPiAgIAlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9VU0VSX0lOVEVSUlVQVCk7 Cj4gICAJX19pbnRlbF9yaW5nX2FkdmFuY2UoZW5naW5lKTsKPgo+IEBAIC0xNjI4LDcgKzE2MjIs OSBAQCBzdGF0aWMgaW50Cj4gICBwY19yZW5kZXJfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICB7Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lID0gcmVxLT5lbmdpbmU7Cj4gLQl1MzIgc2NyYXRjaF9hZGRyID0gZW5naW5lLT5zY3JhdGNo Lmd0dF9vZmZzZXQgKyAyICogQ0FDSEVMSU5FX0JZVEVTOwo+ICsJdTMyIGFkZHIgPSBlbmdpbmUt PnN0YXR1c19wYWdlLmdmeF9hZGRyICsKPiArCQkoSTkxNV9HRU1fSFdTX0lOREVYIDw8IE1JX1NU T1JFX0RXT1JEX0lOREVYX1NISUZUKTsKPiArCXUzMiBzY3JhdGNoX2FkZHIgPSBhZGRyOwo+ICAg CWludCByZXQ7Cj4KPiAgIAkvKiBGb3IgSXJvbmxha2UsIE1JX1VTRVJfSU5URVJSVVBUIHdhcyBk ZXByZWNhdGVkIGFuZCBhcHBhcmVudGx5Cj4gQEAgLTE2NDQsMTIgKzE2NDAsMTIgQEAgcGNfcmVu ZGVyX2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgCQly ZXR1cm4gcmV0Owo+Cj4gICAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwKPiAtCQkJR0ZYX09QX1BJ UEVfQ09OVFJPTCg0KSB8IFBJUEVfQ09OVFJPTF9RV19XUklURSB8Cj4gKwkJCUdGWF9PUF9QSVBF X0NPTlRST0woNCkgfAo+ICsJCQlQSVBFX0NPTlRST0xfUVdfV1JJVEUgfAo+ICAgCQkJUElQRV9D T05UUk9MX1dSSVRFX0ZMVVNIIHwKPiAgIAkJCVBJUEVfQ09OVFJPTF9URVhUVVJFX0NBQ0hFX0lO VkFMSURBVEUpOwo+IC0JaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwKPiAtCQkJZW5naW5lLT5zY3Jh dGNoLmd0dF9vZmZzZXQgfCBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVCk7Cj4gLQlpbnRlbF9yaW5n X2VtaXQoZW5naW5lLCBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhyZXEpKTsKPiArCWludGVs X3JpbmdfZW1pdChlbmdpbmUsIGFkZHIgfCBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVCk7Cj4gKwlp bnRlbF9yaW5nX2VtaXQoZW5naW5lLCByZXEtPnNlcW5vKTsKPiAgIAlpbnRlbF9yaW5nX2VtaXQo ZW5naW5lLCAwKTsKPiAgIAlQSVBFX0NPTlRST0xfRkxVU0goZW5naW5lLCBzY3JhdGNoX2FkZHIp Owo+ICAgCXNjcmF0Y2hfYWRkciArPSAyICogQ0FDSEVMSU5FX0JZVEVTOyAvKiB3cml0ZSB0byBz ZXBhcmF0ZSBjYWNoZWxpbmVzICovCj4gQEAgLTE2NjgsOSArMTY2NCw4IEBAIHBjX3JlbmRlcl9h ZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIAkJCVBJUEVf Q09OVFJPTF9XUklURV9GTFVTSCB8Cj4gICAJCQlQSVBFX0NPTlRST0xfVEVYVFVSRV9DQUNIRV9J TlZBTElEQVRFIHwKPiAgIAkJCVBJUEVfQ09OVFJPTF9OT1RJRlkpOwo+IC0JaW50ZWxfcmluZ19l bWl0KGVuZ2luZSwKPiAtCQkJZW5naW5lLT5zY3JhdGNoLmd0dF9vZmZzZXQgfCBQSVBFX0NPTlRS T0xfR0xPQkFMX0dUVCk7Cj4gLQlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBpOTE1X2dlbV9yZXF1 ZXN0X2dldF9zZXFubyhyZXEpKTsKPiArCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGFkZHIgfCBQ SVBFX0NPTlRST0xfR0xPQkFMX0dUVCk7Cj4gKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCByZXEt PnNlcW5vKTsKPiAgIAlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCAwKTsKPiAgIAlfX2ludGVsX3Jp bmdfYWR2YW5jZShlbmdpbmUpOwo+Cj4gQEAgLTE3MDIsMzAgKzE2OTcsNiBAQCBnZW42X3NlcW5v X2JhcnJpZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCXNwaW5fdW5sb2Nr X2lycSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrKTsKPiAgIH0KPgo+IC1zdGF0aWMgdTMyCj4gLXJp bmdfZ2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAtewo+IC0JcmV0 dXJuIGludGVsX3JlYWRfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9IV1NfSU5ERVgpOwo+ IC19Cj4gLQo+IC1zdGF0aWMgdm9pZAo+IC1yaW5nX3NldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsIHUzMiBzZXFubykKPiAtewo+IC0JaW50ZWxfd3JpdGVfc3RhdHVzX3Bh Z2UoZW5naW5lLCBJOTE1X0dFTV9IV1NfSU5ERVgsIHNlcW5vKTsKPiAtfQo+IC0KPiAtc3RhdGlj IHUzMgo+IC1wY19yZW5kZXJfZ2V0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPiAtewo+IC0JcmV0dXJuIGVuZ2luZS0+c2NyYXRjaC5jcHVfcGFnZVswXTsKPiAtfQo+IC0K PiAtc3RhdGljIHZvaWQKPiAtcGNfcmVuZGVyX3NldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUsIHUzMiBzZXFubykKPiAtewo+IC0JZW5naW5lLT5zY3JhdGNoLmNwdV9wYWdl WzBdID0gc2Vxbm87Cj4gLX0KPiAtCj4gICBzdGF0aWMgYm9vbAo+ICAgZ2VuNV9yaW5nX2dldF9p cnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgewo+IEBAIC0xODU2LDcgKzE4 MjcsNyBAQCBpOXh4X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQo+ICAgCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX1NUT1JFX0RXT1JEX0lOREVYKTsKPiAg IAlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLAo+ICAgCQkJSTkxNV9HRU1fSFdTX0lOREVYIDw8IE1J X1NUT1JFX0RXT1JEX0lOREVYX1NISUZUKTsKPiAtCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGk5 MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHJlcSkpOwo+ICsJaW50ZWxfcmluZ19lbWl0KGVuZ2lu ZSwgcmVxLT5zZXFubyk7Cj4gICAJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfVVNFUl9JTlRF UlJVUFQpOwo+ICAgCV9faW50ZWxfcmluZ19hZHZhbmNlKGVuZ2luZSk7Cj4KPiBAQCAtMjY3NSw3 ICsyNjQ2LDkgQEAgdm9pZCBpbnRlbF9yaW5nX2luaXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLCB1MzIgc2Vxbm8pCj4gICAJbWVtc2V0KGVuZ2luZS0+c2VtYXBob3JlLnN5 bmNfc2Vxbm8sIDAsCj4gICAJICAgICAgIHNpemVvZihlbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3Nl cW5vKSk7Cj4KPiAtCWVuZ2luZS0+c2V0X3NlcW5vKGVuZ2luZSwgc2Vxbm8pOwo+ICsJaW50ZWxf d3JpdGVfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9IV1NfSU5ERVgsIHNlcW5vKTsKPiAr CWlmIChlbmdpbmUtPmlycV9zZXFub19iYXJyaWVyKQo+ICsJCWVuZ2luZS0+aXJxX3NlcW5vX2Jh cnJpZXIoZW5naW5lKTsKPiAgIAllbmdpbmUtPmxhc3Rfc3VibWl0dGVkX3NlcW5vID0gc2Vxbm87 Cj4KPiAgIAllbmdpbmUtPmhhbmdjaGVjay5zZXFubyA9IHNlcW5vOwo+IEBAIC0zMDIxLDggKzI5 OTQsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIHsKPiAgIAllbmdpbmUtPmluaXRfaHcgPSBpbml0 X3JpbmdfY29tbW9uOwo+ICAgCWVuZ2luZS0+d3JpdGVfdGFpbCA9IHJpbmdfd3JpdGVfdGFpbDsK PiAtCWVuZ2luZS0+Z2V0X3NlcW5vID0gcmluZ19nZXRfc2Vxbm87Cj4gLQllbmdpbmUtPnNldF9z ZXFubyA9IHJpbmdfc2V0X3NlcW5vOwo+Cj4gICAJZW5naW5lLT5hZGRfcmVxdWVzdCA9IGk5eHhf YWRkX3JlcXVlc3Q7Cj4gICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikKPiBAQCAtMzA3 NCw4ICszMDQ1LDYgQEAgaW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gICAJfSBlbHNlIGlmIChJU19HRU41KGRldl9wcml2KSkgewo+ICAg CQllbmdpbmUtPmFkZF9yZXF1ZXN0ID0gcGNfcmVuZGVyX2FkZF9yZXF1ZXN0Owo+ICAgCQllbmdp bmUtPmZsdXNoID0gZ2VuNF9yZW5kZXJfcmluZ19mbHVzaDsKPiAtCQllbmdpbmUtPmdldF9zZXFu byA9IHBjX3JlbmRlcl9nZXRfc2Vxbm87Cj4gLQkJZW5naW5lLT5zZXRfc2Vxbm8gPSBwY19yZW5k ZXJfc2V0X3NlcW5vOwo+ICAgCQllbmdpbmUtPmlycV9lbmFibGVfbWFzayA9IEdUX1JFTkRFUl9V U0VSX0lOVEVSUlVQVCB8Cj4gICAJCQkJCUdUX1JFTkRFUl9QSVBFQ1RMX05PVElGWV9JTlRFUlJV UFQ7Cj4gICAJfSBlbHNlIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5o Cj4gaW5kZXggNDQ2MDJmOGU3NGU1Li5hMmNiOTU4N2NhMGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gQEAgLTIwNyw5ICsyMDcsNiBAQCBzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzIHsKPiAgIAkgKiBtb25vdG9uaWMsIGV2ZW4gaWYgbm90IGNvaGVyZW50Lgo+ ICAgCSAqLwo+ICAgCXZvaWQJCSgqaXJxX3NlcW5vX2JhcnJpZXIpKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcpOwo+IC0JdTMyCQkoKmdldF9zZXFubykoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZyk7Cj4gLQl2b2lkCQkoKnNldF9zZXFubykoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZywKPiAtCQkJCSAgICAgdTMyIHNlcW5vKTsKPiAgIAlpbnQJCSgqZGlzcGF0Y2hfZXhlY2J1 ZmZlcikoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCQkJCSAgICAgICB1 NjQgb2Zmc2V0LCB1MzIgbGVuZ3RoLAo+ICAgCQkJCQkgICAgICAgdW5zaWduZWQgZGlzcGF0Y2hf ZmxhZ3MpOwo+IEBAIC00ODUsNiArNDgyLDEwIEBAIGludCBpbnRlbF9pbml0X2JsdF9yaW5nX2J1 ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgIGludCBpbnRlbF9pbml0X3ZlYm94X3Jp bmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+Cj4gICB1NjQgaW50ZWxfcmluZ19n ZXRfYWN0aXZlX2hlYWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiArc3RhdGlj IGlubGluZSB1MzIgaW50ZWxfZW5naW5lX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCj4gK3sKPiArCXJldHVybiBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKGVuZ2luZSwg STkxNV9HRU1fSFdTX0lOREVYKTsKPiArfQo+Cj4gICBpbnQgaW5pdF93b3JrYXJvdW5kc19yaW5n KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4KPgoKTG9va3MgT0sgaWYgR2VuNSBp cyBoYXBweSBhYm91dCBpdC4KClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVy c3VsaW5AaW50ZWwuY29tPgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK