From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 063/190] drm/i915: Rename struct intel_ringbuffer to intel_ring Date: Thu, 28 Jan 2016 11:54:08 +0000 Message-ID: <56AA0160.9010901@linux.intel.com> References: <1452503961-14837-1-git-send-email-chris@chris-wilson.co.uk> <1452503961-14837-63-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 CCB326E850 for ; Thu, 28 Jan 2016 03:54:12 -0800 (PST) In-Reply-To: <1452503961-14837-63-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 Ck9oIHJpZ2h0LCBJIHN1cHBvc2UgcGF0Y2ggNTkgaXMgT0sgdGhlbiBpZiBpdCBnb2VzIHRvZ2V0 aGVyIHdpdGggdGhpcyBvbmUuCgpSZWdhcmRzLAoKVHZydGtvCgpPbiAxMS8wMS8xNiAwOToxNywg Q2hyaXMgV2lsc29uIHdyb3RlOgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNA Y2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgICAgICAgIHwgIDIxICsrKy0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgICAgICAgIHwgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jICAgICAgICAgICAgfCAgNDMgKysrKysrLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgIHwgICA2ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9yZXF1ZXN0LmMgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3JlcXVlc3QuaCAgICB8ICAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ncHVfZXJyb3IuYyAgICAgIHwgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2d1Y19zdWJtaXNzaW9uLmMgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyAgICAgICB8ICAxMCArLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jICAgICAgICAgICB8ICA0MCArKysrKystLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX21vY3MuYyAgICAgICAgICB8ICAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgIHwgMTAxICsrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggICAgfCAg NDUgKysrKysrLS0tLS0tLQo+ICAgMTUgZmlsZXMgY2hhbmdlZCwgMTM4IGluc2VydGlvbnMoKyks IDE0OCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5k ZXggZGVjMTA3ODRjMmJjLi44ZGU5NDRlZDMzNjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYwo+IEBAIC0xOTQ4LDEyICsxOTQ4LDExIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1f ZnJhbWVidWZmZXJfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gICAJcmV0 dXJuIDA7Cj4gICB9Cj4KPiAtc3RhdGljIHZvaWQgZGVzY3JpYmVfY3R4X3JpbmdidWYoc3RydWN0 IHNlcV9maWxlICptLAo+IC0JCQkJIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ ICtzdGF0aWMgdm9pZCBkZXNjcmliZV9jdHhfcmluZyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVj dCBpbnRlbF9yaW5nICpyaW5nKQo+ICAgewo+ICAgCXNlcV9wcmludGYobSwgIiAocmluZ2J1ZmZl ciwgc3BhY2U6ICVkLCBoZWFkOiAldSwgdGFpbDogJXUsIGxhc3QgaGVhZDogJWQpIiwKPiAtCQkg ICByaW5nYnVmLT5zcGFjZSwgcmluZ2J1Zi0+aGVhZCwgcmluZ2J1Zi0+dGFpbCwKPiAtCQkgICBy aW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZCk7Cj4gKwkJICAgcmluZy0+c3BhY2UsIHJpbmctPmhl YWQsIHJpbmctPnRhaWwsCj4gKwkJICAgcmluZy0+bGFzdF9yZXRpcmVkX2hlYWQpOwo+ICAgfQo+ Cj4gICBzdGF0aWMgaW50IGk5MTVfY29udGV4dF9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2 b2lkICp1bnVzZWQpCj4gQEAgLTE5ODUsMTYgKzE5ODQsMTIgQEAgc3RhdGljIGludCBpOTE1X2Nv bnRleHRfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+ICAgCQlpZiAo aTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7Cj4gICAJCQlzZXFfcHV0YyhtLCAnXG4nKTsKPiAgIAkJ CWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKPiAtCQkJCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KPiAtCQkJCQljdHgtPmVuZ2luZVtpXS5zdGF0ZTsKPiAt CQkJCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0KPiAtCQkJCQljdHgtPmVuZ2lu ZVtpXS5yaW5nOwo+IC0KPiAgIAkJCQlzZXFfcHJpbnRmKG0sICIlczogIiwgcmluZy0+bmFtZSk7 Cj4gLQkJCQlpZiAoY3R4X29iaikKPiAtCQkJCQlkZXNjcmliZV9vYmoobSwgY3R4X29iaik7Cj4g LQkJCQlpZiAocmluZ2J1ZikKPiAtCQkJCQlkZXNjcmliZV9jdHhfcmluZ2J1ZihtLCByaW5nYnVm KTsKPiArCQkJCWlmIChjdHgtPmVuZ2luZVtpXS5zdGF0ZSkKPiArCQkJCQlkZXNjcmliZV9vYmoo bSwgY3R4LT5lbmdpbmVbaV0uc3RhdGUpOwo+ICsJCQkJaWYgKGN0eC0+ZW5naW5lW2ldLnJpbmcp Cj4gKwkJCQkJZGVzY3JpYmVfY3R4X3JpbmcobSwKPiArCQkJCQkJCSAgY3R4LT5lbmdpbmVbaV0u cmluZyk7Cj4gICAJCQkJc2VxX3B1dGMobSwgJ1xuJyk7Cj4gICAJCQl9Cj4gICAJCX0gZWxzZSB7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNDY2YWRjNjYxN2YwLi40NGU4NzM4YzUz MTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtODg1LDcgKzg4NSw3IEBAIHN0 cnVjdCBpbnRlbF9jb250ZXh0IHsKPiAgIAkvKiBFeGVjbGlzdHMgKi8KPiAgIAlzdHJ1Y3Qgewo+ ICAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqc3RhdGU7Cj4gLQkJc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmc7Cj4gKwkJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7Cj4gICAJCWlu dCBwaW5fY291bnQ7Cj4gICAJfSBlbmdpbmVbSTkxNV9OVU1fUklOR1NdOwo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gaW5kZXggYTgxY2FkNjY2ZDNhLi4xYzZiZWIxNTRkMDcgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMjE5Myw5ICsyMTkzLDkgQEAgaTkxNV9nZW1fZmlu ZF9hY3RpdmVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAgCXJldHVy biBOVUxMOwo+ICAgfQo+Cj4gLXN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X3Jpbmdfc3RhdHVz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJCSAgICAgICBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICtzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9yaW5n X3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAgewo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmluZy0+aTkxNTsKPiAgIAlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7Cj4gICAJYm9vbCByaW5nX2h1bmc7Cj4KPiBAQCAtMjIx MiwxOSArMjIxMiwxOCBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9yaW5nX3N0YXR1cyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCWk5MTVfc2V0X3Jlc2V0X3N0 YXR1cyhkZXZfcHJpdiwgcmVxdWVzdC0+Y3R4LCBmYWxzZSk7Cj4gICB9Cj4KPiAtc3RhdGljIHZv aWQgaTkxNV9nZW1fcmVzZXRfcmluZ19jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAtCQkJCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICtzdGF0aWMg dm9pZCBpOTE1X2dlbV9yZXNldF9yaW5nX2NsZWFudXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKmJ1ZmZlcjsKPiArCXN0 cnVjdCBpbnRlbF9yaW5nICpyaW5nOwo+Cj4gLQl3aGlsZSAoIWxpc3RfZW1wdHkoJnJpbmctPmFj dGl2ZV9saXN0KSkgewo+ICsJd2hpbGUgKCFsaXN0X2VtcHR5KCZlbmdpbmUtPmFjdGl2ZV9saXN0 KSkgewo+ICAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwo+Cj4gLQkJb2JqID0g bGlzdF9maXJzdF9lbnRyeSgmcmluZy0+YWN0aXZlX2xpc3QsCj4gKwkJb2JqID0gbGlzdF9maXJz dF9lbnRyeSgmZW5naW5lLT5hY3RpdmVfbGlzdCwKPiAgIAkJCQkgICAgICAgc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QsCj4gLQkJCQkgICAgICAgcmluZ19saXN0W3JpbmctPmlkXSk7Cj4gKwkJ CQkgICAgICAgcmluZ19saXN0W2VuZ2luZS0+aWRdKTsKPgo+IC0JCWk5MTVfZ2VtX29iamVjdF9y ZXRpcmVfX3JlYWQob2JqLCByaW5nLT5pZCk7Cj4gKwkJaTkxNV9nZW1fb2JqZWN0X3JldGlyZV9f cmVhZChvYmosIGVuZ2luZS0+aWQpOwo+ICAgCX0KPgo+ICAgCS8qCj4gQEAgLTIyMzQsMTQgKzIy MzMsMTQgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVzZXRfcmluZ19jbGVhbnVwKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAkgKi8KPgo+ICAgCWlmIChpOTE1LmVuYWJs ZV9leGVjbGlzdHMpIHsKPiAtCQlzcGluX2xvY2tfaXJxKCZyaW5nLT5leGVjbGlzdF9sb2NrKTsK PiArCQlzcGluX2xvY2tfaXJxKCZlbmdpbmUtPmV4ZWNsaXN0X2xvY2spOwo+Cj4gICAJCS8qIGxp c3Rfc3BsaWNlX3RhaWxfaW5pdCBjaGVja3MgZm9yIGVtcHR5IGxpc3RzICovCj4gLQkJbGlzdF9z cGxpY2VfdGFpbF9pbml0KCZyaW5nLT5leGVjbGlzdF9xdWV1ZSwKPiAtCQkJCSAgICAgICZyaW5n LT5leGVjbGlzdF9yZXRpcmVkX3JlcV9saXN0KTsKPiArCQlsaXN0X3NwbGljZV90YWlsX2luaXQo JmVuZ2luZS0+ZXhlY2xpc3RfcXVldWUsCj4gKwkJCQkgICAgICAmZW5naW5lLT5leGVjbGlzdF9y ZXRpcmVkX3JlcV9saXN0KTsKPgo+IC0JCXNwaW5fdW5sb2NrX2lycSgmcmluZy0+ZXhlY2xpc3Rf bG9jayk7Cj4gLQkJaW50ZWxfZXhlY2xpc3RzX3JldGlyZV9yZXF1ZXN0cyhyaW5nKTsKPiArCQlz cGluX3VubG9ja19pcnEoJmVuZ2luZS0+ZXhlY2xpc3RfbG9jayk7Cj4gKwkJaW50ZWxfZXhlY2xp c3RzX3JldGlyZV9yZXF1ZXN0cyhlbmdpbmUpOwo+ICAgCX0KPgo+ICAgCS8qCj4gQEAgLTIyNTEs MTAgKzIyNTAsMTAgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVzZXRfcmluZ19jbGVhbnVwKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAkgKiBpbXBsaWNpdCByZWZlcmVu Y2VzIG9uIHRoaW5ncyBsaWtlIGUuZy4gcHBndHQgYWRkcmVzcyBzcGFjZXMgdGhyb3VnaAo+ICAg CSAqIHRoZSByZXF1ZXN0Lgo+ICAgCSAqLwo+IC0JaWYgKCFsaXN0X2VtcHR5KCZyaW5nLT5yZXF1 ZXN0X2xpc3QpKSB7Cj4gKwlpZiAoIWxpc3RfZW1wdHkoJmVuZ2luZS0+cmVxdWVzdF9saXN0KSkg ewo+ICAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7Cj4KPiAtCQlyZXF1 ZXN0ID0gbGlzdF9sYXN0X2VudHJ5KCZyaW5nLT5yZXF1ZXN0X2xpc3QsCj4gKwkJcmVxdWVzdCA9 IGxpc3RfbGFzdF9lbnRyeSgmZW5naW5lLT5yZXF1ZXN0X2xpc3QsCj4gICAJCQkJCSAgc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0LAo+ICAgCQkJCQkgIGxpc3QpOwo+Cj4gQEAgLTIyNjgsMTIg KzIyNjcsMTIgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVzZXRfcmluZ19jbGVhbnVwKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAkgKiB1cG9uIHJlc2V0IGlzIGxlc3Mg dGhhbiB3aGVuIHdlIHN0YXJ0LiBEbyBvbmUgbW9yZSBwYXNzIG92ZXIKPiAgIAkgKiBhbGwgdGhl IHJpbmdidWZmZXJzIHRvIHJlc2V0IGxhc3RfcmV0aXJlZF9oZWFkLgo+ICAgCSAqLwo+IC0JbGlz dF9mb3JfZWFjaF9lbnRyeShidWZmZXIsICZyaW5nLT5idWZmZXJzLCBsaW5rKSB7Cj4gLQkJYnVm ZmVyLT5sYXN0X3JldGlyZWRfaGVhZCA9IGJ1ZmZlci0+dGFpbDsKPiAtCQlpbnRlbF9yaW5nX3Vw ZGF0ZV9zcGFjZShidWZmZXIpOwo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShyaW5nLCAmZW5naW5l LT5idWZmZXJzLCBsaW5rKSB7Cj4gKwkJcmluZy0+bGFzdF9yZXRpcmVkX2hlYWQgPSByaW5nLT50 YWlsOwo+ICsJCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmcpOwo+ICAgCX0KPgo+IC0JaW50 ZWxfZW5naW5lX2luaXRfc2Vxbm8ocmluZywgcmluZy0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm8pOwo+ ICsJaW50ZWxfZW5naW5lX2luaXRfc2Vxbm8oZW5naW5lLCBlbmdpbmUtPmxhc3Rfc3VibWl0dGVk X3NlcW5vKTsKPiAgIH0KPgo+ICAgdm9pZCBpOTE1X2dlbV9yZXNldChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+IEBAIC0yMjg4LDEwICsyMjg3LDEwIEBAIHZvaWQgaTkxNV9nZW1fcmVzZXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAkgKiB0aGVpciByZWZlcmVuY2UgdG8gdGhlIG9iamVj dHMsIHRoZSBpbnNwZWN0aW9uIG11c3QgYmUgZG9uZSBmaXJzdC4KPiAgIAkgKi8KPiAgIAlmb3Jf ZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKQo+IC0JCWk5MTVfZ2VtX3Jlc2V0X3Jpbmdfc3Rh dHVzKGRldl9wcml2LCByaW5nKTsKPiArCQlpOTE1X2dlbV9yZXNldF9yaW5nX3N0YXR1cyhyaW5n KTsKPgo+ICAgCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpCj4gLQkJaTkxNV9nZW1f cmVzZXRfcmluZ19jbGVhbnVwKGRldl9wcml2LCByaW5nKTsKPiArCQlpOTE1X2dlbV9yZXNldF9y aW5nX2NsZWFudXAocmluZyk7Cj4KPiAgIAlpOTE1X2dlbV9jb250ZXh0X3Jlc2V0KGRldik7Cj4K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gaW5kZXggYWMyZTIwNWZl M2I0Li4xN2ZlOGVkOTkxZDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jCj4gQEAgLTUxOSw3ICs1MTksNyBAQCBpOTE1X2dlbV9jb250ZXh0X2dldChzdHJ1Y3Qg ZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYsIHUzMiBpZCkKPiAgIHN0YXRpYyBpbmxp bmUgaW50Cj4gICBtaV9zZXRfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSwgdTMyIGh3X2ZsYWdzKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcg PSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiAg IAl1MzIgZmxhZ3MgPSBod19mbGFncyB8IE1JX01NX1NQQUNFX0dUVDsKPiAgIAljb25zdCBpbnQg bnVtX3JpbmdzID0KPiAgIAkJLyogVXNlIGFuIGV4dGVuZGVkIHcvYSBvbiBpdmIrIGlmIHNpZ25h bGxpbmcgZnJvbSBvdGhlciByaW5ncyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9leGVjYnVmZmVyLmMKPiBpbmRleCBiN2M5MDA3MmY3ZDQuLjczMWNlMTNkYmRiYyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBAQCAtMTE0OCw3 ICsxMTQ4LDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXRpcmVfY29tbWFuZHMoc3RydWN0IGk5 MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcykKPiAgIHN0YXRpYyBpbnQKPiAgIGk5MTVfcmVz ZXRfZ2VuN19zb2xfb2Zmc2V0cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAg IHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICsJc3Ry dWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJaW50IHJldCwgaTsKPgo+ICAg CWlmICghSVNfR0VONyhyZXEtPmk5MTUpIHx8IHJlcS0+ZW5naW5lLT5pZCAhPSBSQ1MpIHsKPiBA QCAtMTIyOSw3ICsxMjI5LDcgQEAgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVj dCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCj4gICAJCQkgICAgICAgc3RydWN0IGRy bV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKPiAgIAkJCSAgICAgICBzdHJ1Y3QgbGlzdF9o ZWFkICp2bWFzKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBwYXJh bXMtPnJlcXVlc3QtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHBhcmFtcy0+ cmVxdWVzdC0+cmluZzsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBw YXJhbXMtPnJlcXVlc3QtPmk5MTU7Cj4gICAJdTY0IGV4ZWNfc3RhcnQsIGV4ZWNfbGVuOwo+ICAg CWludCBpbnN0cF9tb2RlOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXgg MzhjMTA5Y2RhOTA0Li45YTkxNDUxZDY2YWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYwo+IEBAIC02NTYsNyArNjU2LDcgQEAgc3RhdGljIGludCBnZW44X3dyaXRlX3BkcChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCSAgdW5zaWduZWQgZW50cnks Cj4gICAJCQkgIGRtYV9hZGRyX3QgYWRkcikKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEt PnJpbmc7Cj4gICAJaW50IHJldDsKPgo+ICAgCUJVR19PTihlbnRyeSA+PSA0KTsKPiBAQCAtMTY0 OCw3ICsxNjQ4LDcgQEAgc3RhdGljIHVpbnQzMl90IGdldF9wZF9vZmZzZXQoc3RydWN0IGk5MTVf aHdfcHBndHQgKnBwZ3R0KQo+ICAgc3RhdGljIGludCBoc3dfbW1fc3dpdGNoKHN0cnVjdCBpOTE1 X2h3X3BwZ3R0ICpwcGd0dCwKPiAgIAkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJaW50IHJldDsKPgo+ ICAgCS8qIE5COiBUTEJzIG11c3QgYmUgZmx1c2hlZCBhbmQgaW52YWxpZGF0ZWQgYmVmb3JlIGEg c3dpdGNoICovCj4gQEAgLTE2ODYsNyArMTY4Niw3IEBAIHN0YXRpYyBpbnQgdmdwdV9tbV9zd2l0 Y2goc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAo+ICAgc3RhdGljIGludCBnZW43X21tX3N3 aXRjaChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCj4gICAJCQkgIHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsK PiAgIAlpbnQgcmV0Owo+Cj4gICAJLyogTkI6IFRMQnMgbXVzdCBiZSBmbHVzaGVkIGFuZCBpbnZh bGlkYXRlZCBiZWZvcmUgYSBzd2l0Y2ggKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f cmVxdWVzdC5jCj4gaW5kZXggNTQ4MzRhZDFiZjVlLi5lMWYyYWYwNDZiNmMgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCj4gQEAgLTQwMSw3ICs0MDEsNyBAQCB2 b2lkIF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVl c3QsCj4gICAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCQkJYm9vbCBm bHVzaF9jYWNoZXMpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZzsKPiAr CXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOwo+ICAgCXUzMiByZXF1ZXN0X3N0YXJ0Owo+ICAgCWlu dCByZXQ7Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVx dWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCj4gaW5kZXgg Y2Q0NDEyZjZlN2UzLi4wODY5NTA1NjdkYjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fcmVxdWVzdC5oCj4gQEAgLTc5LDcgKzc5LDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0IHsKPiAgIAkgKiBjb250ZXh0Lgo+ICAgCSAqLwo+ICAgCXN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHg7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZzsKPiArCXN0cnVjdCBp bnRlbF9yaW5nICpyaW5nOwo+Cj4gICAJLyoqIEJhdGNoIGJ1ZmZlciByZWxhdGVkIHRvIHRoaXMg cmVxdWVzdCBpZiBhbnkgKHVzZWQgZm9yCj4gICAJICAgIGVycm9yIHN0YXRlIGR1bXAgb25seSkg Ki8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiBpbmRleCBmMjdkNmQxYjY0 ZDYuLjI3ODVmMmQxZjA3MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dwdV9lcnJvci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3Iu Ywo+IEBAIC0xMDA3LDcgKzEwMDcsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZWNvcmRfcmlu Z3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJcmVxdWVzdCA9IGk5MTVfZ2VtX2ZpbmRf YWN0aXZlX3JlcXVlc3QoZW5naW5lKTsKPiAgIAkJaWYgKHJlcXVlc3QpIHsKPiAgIAkJCXN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtOwo+IC0JCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZzsKPiArCQkJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7Cj4KPiAgIAkJCXZtID0gcmVxdWVz dC0+Y3R4ICYmIHJlcXVlc3QtPmN0eC0+cHBndHQgPwo+ICAgCQkJCSZyZXF1ZXN0LT5jdHgtPnBw Z3R0LT5iYXNlIDoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNf c3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5j Cj4gaW5kZXggMzljY2ZhODkzNGUzLi41YTYyNTE5MjYzNjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gQEAgLTM5MCw3ICszOTAsNyBAQCBzdGF0 aWMgdm9pZCBndWNfaW5pdF9jdHhfZGVzYyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCj4KPiAgIAlm b3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkrKykgewo+ICAgCQlzdHJ1Y3QgZ3VjX2V4 ZWNsaXN0X2NvbnRleHQgKmxyYyA9ICZkZXNjLmxyY1tpXTsKPiAtCQlzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZyA9IGN0eC0+ZW5naW5lW2ldLnJpbmc7Cj4gKwkJc3RydWN0IGludGVsX3Jp bmcgKnJpbmcgPSBjdHgtPmVuZ2luZVtpXS5yaW5nOwo+ICAgCQlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmU7Cj4gICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gICAJ CXVpbnQ2NF90IGN0eF9kZXNjOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBp bmRleCAwZDQyMzU2ZjE1YjQuLmY4NzE3YzU2MjdkZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBAQCAtMTEwNTIsNyArMTEwNTIsNyBAQCBzdGF0aWMgaW50IGludGVs X2dlbjJfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQkJCSBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCQkgdWludDMyX3QgZmxhZ3MpCj4gICB7 Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVj dCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgIAl1MzIgZmxpcF9tYXNrOwo+ICAg CWludCByZXQ7Cj4gQEAgLTExMDg3LDcgKzExMDg3LDcgQEAgc3RhdGljIGludCBpbnRlbF9nZW4z X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJCQkgc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCQkJIHVpbnQzMl90IGZsYWdzKQo+ICAgewo+IC0J c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50 ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gICAJdTMyIGZsaXBfbWFzazsKPiAgIAlpbnQg cmV0Owo+IEBAIC0xMTExOSw3ICsxMTExOSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuNF9xdWV1 ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkJIHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkJCSB1aW50MzJfdCBmbGFncykKPiAgIHsKPiAtCXN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3Jp bmcgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gcmVxLT5pOTE1Owo+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjKTsKPiAgIAl1aW50MzJfdCBwZiwgcGlwZXNyYzsKPiBAQCAtMTExNTgs NyArMTExNTgsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjZfcXVldWVfZmxpcChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAgCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwK PiAgIAkJCQkgdWludDMyX3QgZmxhZ3MpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5y aW5nOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJlcS0+aTkxNTsK PiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7 Cj4gICAJdWludDMyX3QgcGYsIHBpcGVzcmM7Cj4gQEAgLTExMTk0LDcgKzExMTk0LDcgQEAgc3Rh dGljIGludCBpbnRlbF9nZW43X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg IAkJCQkgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCQkJIHVpbnQzMl90 IGZsYWdzKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJp bmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gICAJdWludDMy X3QgcGxhbmVfYml0ID0gMDsKPiAgIAlpbnQgbGVuLCByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKPiBpbmRleCA5MmFlN2JjNTMyZWQuLmZhNGMwYzBkYjk5NCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCj4gQEAgLTQ0OSw3ICs0NDksNyBAQCBzdGF0aWMgdm9pZCBleGVjbGlz dHNfY29udGV4dF91bnF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAkJ CSAqIGZvciB3aGVyZSB3ZSBwcmVwYXJlIHRoZSBwYWRkaW5nIGFmdGVyIHRoZSBlbmQgb2YgdGhl Cj4gICAJCQkgKiByZXF1ZXN0Lgo+ICAgCQkJICovCj4gLQkJCXN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nOwo+ICsJCQlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsKPgo+ICAgCQkJcmluZyA9 IHJlcTAtPmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnJpbmc7Cj4gICAJCQlyZXEwLT50YWlsICs9 IDg7Cj4gQEAgLTc0Miw3ICs3NDIsNyBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24o c3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKPiAgIAlzdHJ1Y3QgZHJtX2Rl dmljZSAgICAgICAqZGV2ID0gcGFyYW1zLT5kZXY7Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9j cyAgKmVuZ2luZSA9IHBhcmFtcy0+cmluZzsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcgPSBwYXJhbXMtPnJlcXVlc3QtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmlu ZyA9IHBhcmFtcy0+cmVxdWVzdC0+cmluZzsKPiAgIAl1NjQgZXhlY19zdGFydDsKPiAgIAlpbnQg aW5zdHBfbW9kZTsKPiAgIAl1MzIgaW5zdHBfbWFzazsKPiBAQCAtODc4LDcgKzg3OCw3IEBAIGlu dCBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSkKPgo+ICAgc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X2RvX3BpbihzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq Y3R4X29iaiwKPiAtCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiArCQlzdHJ1 Y3QgaW50ZWxfcmluZyAqcmluZ2J1ZikKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSByaW5nLT5pOTE1Owo+ICAgCWludCByZXQgPSAwOwo+IEBAIC04ODksNyAr ODg5LDcgQEAgc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X2RvX3BpbihzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nLAo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiAtCXJl dCA9IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKHJpbmctPmRldiwgcmluZ2J1Zik7 Cj4gKwlyZXQgPSBpbnRlbF9waW5fYW5kX21hcF9yaW5nKHJpbmctPmRldiwgcmluZ2J1Zik7Cj4g ICAJaWYgKHJldCkKPiAgIAkJZ290byB1bnBpbl9jdHhfb2JqOwo+Cj4gQEAgLTkzMSwxMiArOTMx LDEyIEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJxKQo+ICAgewo+ICAgCWludCBlbmdpbmUgPSBycS0+ZW5naW5lLT5pZDsKPiAgIAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IHJxLT5jdHgtPmVuZ2luZVtlbmdp bmVdLnN0YXRlOwo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBycS0+cmluZzsK PiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcnEtPnJpbmc7Cj4KPiAgIAlpZiAoY3R4X29i aikgewo+ICAgCQlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJxLT5pOTE1LT5kZXYtPnN0cnVj dF9tdXRleCkpOwo+ICAgCQlpZiAoLS1ycS0+Y3R4LT5lbmdpbmVbZW5naW5lXS5waW5fY291bnQg PT0gMCkgewo+IC0JCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nKTsKPiArCQkJaW50 ZWxfdW5waW5fcmluZyhyaW5nKTsKPiAgIAkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0 eF9vYmopOwo+ICAgCQkJaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShycS0+Y3R4KTsKPiAg IAkJfQo+IEBAIC05NDcsNyArOTQ3LDcgQEAgc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3Jpbmdf d29ya2Fyb3VuZHNfZW1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIHsK PiAgIAlpbnQgcmV0LCBpOwo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJl cS0+ZW5naW5lOwo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7 Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByZXEtPmk5MTU7Cj4gICAJc3RydWN0IGk5MTVfd29y a2Fyb3VuZHMgKncgPSAmZGV2X3ByaXYtPndvcmthcm91bmRzOwo+Cj4gQEAgLTE0MTcsNyArMTQx Nyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcGRwcyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIHsKPiAgIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAq cHBndHQgPSByZXEtPmN0eC0+cHBndHQ7Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lID0gcmVxLT5lbmdpbmU7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJl cS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCWNv bnN0IGludCBudW1fbHJpX2NtZHMgPSBHRU44X0xFR0FDWV9QRFBFUyAqIDI7Cj4gICAJaW50IGks IHJldDsKPgo+IEBAIC0xNDQ0LDcgKzE0NDQsNyBAQCBzdGF0aWMgaW50IGludGVsX2xvZ2ljYWxf cmluZ19lbWl0X3BkcHMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICBzdGF0 aWMgaW50IGdlbjhfZW1pdF9iYl9zdGFydChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSwKPiAgIAkJCSAgICAgIHU2NCBvZmZzZXQsIHVuc2lnbmVkIGRpc3BhdGNoX2ZsYWdzKQo+ICAg ewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1 Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlib29sIHBwZ3R0ID0gIShkaXNw YXRjaF9mbGFncyAmIEk5MTVfRElTUEFUQ0hfU0VDVVJFKTsKPiAgIAlpbnQgcmV0Owo+Cj4gQEAg LTE1MDMsNyArMTUwMyw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2ZsdXNoKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKPiAgIAkJCSAgIHUzMiBpbnZhbGlkYXRlX2RvbWFp bnMsCj4gICAJCQkgICB1MzIgdW51c2VkKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKnJpbmcgPSByZXF1ZXN0LT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSBy ZXF1ZXN0LT5yaW5nOwo+ICAgCXVpbnQzMl90IGNtZDsKPiAgIAlpbnQgcmV0Owo+Cj4gQEAgLTE1 NDEsNyArMTU0MSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2ZsdXNoX3JlbmRlcihzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4gICAJCQkJICB1MzIgaW52YWxpZGF0ZV9k b21haW5zLAo+ICAgCQkJCSAgdTMyIGZsdXNoX2RvbWFpbnMpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcXVlc3QtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmlu ZyAqcmluZyA9IHJlcXVlc3QtPnJpbmc7Cj4gICAJdTMyIHNjcmF0Y2hfYWRkciA9IHJlcXVlc3Qt PmVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKPiAgIAli b29sIHZmX2ZsdXNoX3dhID0gZmFsc2U7Cj4gICAJdTMyIGZsYWdzID0gMDsKPiBAQCAtMTYyMCw3 ICsxNjIwLDcgQEAgZ2VuNl9zZXFub19iYXJyaWVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcpCj4KPiAgIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmcgPSByZXF1ZXN0LT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXF1ZXN0 LT5yaW5nOwo+ICAgCXUzMiBjbWQ7Cj4gICAJaW50IHJldDsKPgo+IEBAIC0yMDM5LDcgKzIwMzks NyBAQCBtYWtlX3JwY3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKPgo+ICAgc3RhdGljIGludAo+ ICAgcG9wdWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LCBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiwKPiAtCQkgICAgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZywgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gKwkJICAgIHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nYnVmKQo+ ICAgewo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7Cj4gICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtMjE3 NCwxNSArMjE3NCwxNSBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfZnJlZShzdHJ1Y3QgaW50ZWxf Y29udGV4dCAqY3R4KQo+ICAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9 IGN0eC0+ZW5naW5lW2ldLnN0YXRlOwo+Cj4gICAJCWlmIChjdHhfb2JqKSB7Cj4gLQkJCXN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gY3R4LT5lbmdpbmVbaV0ucmluZzsKPiArCQkJc3Ry dWN0IGludGVsX3JpbmcgKnJpbmcgPSBjdHgtPmVuZ2luZVtpXS5yaW5nOwo+ICAgCQkJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmluZy0+ZW5naW5lOwo+Cj4gICAJCQlpZiAoY3R4 ID09IGVuZ2luZS0+ZGVmYXVsdF9jb250ZXh0KSB7Cj4gLQkJCQlpbnRlbF91bnBpbl9yaW5nYnVm ZmVyX29iaihyaW5nKTsKPiArCQkJCWludGVsX3VucGluX3JpbmcocmluZyk7Cj4gICAJCQkJaTkx NV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4gICAJCQl9Cj4gICAJCQlXQVJOX09O KGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnBpbl9jb3VudCk7Cj4gLQkJCWludGVsX3JpbmdidWZm ZXJfZnJlZShyaW5nKTsKPiArCQkJaW50ZWxfcmluZ19mcmVlKHJpbmcpOwo+ICAgCQkJZHJtX2dl bV9vYmplY3RfdW5yZWZlcmVuY2UoJmN0eF9vYmotPmJhc2UpOwo+ICAgCQl9Cj4gICAJfQo+IEBA IC0yMjYyLDcgKzIyNjIsNyBAQCBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9hbGxvYyhz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpjdHhfb2JqOwo+ICAgCXVpbnQzMl90IGNvbnRleHRfc2l6ZTsKPiAtCXN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7Cj4gICAJ aW50IHJldDsKPgo+ICAgCVdBUk5fT04oY3R4LT5sZWdhY3lfaHdfY3R4LnJjc19zdGF0ZSAhPSBO VUxMKTsKPiBAQCAtMjI3OSw3ICsyMjc5LDcgQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJy ZWRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAgIAkJcmV0dXJuIC1FTk9NRU07 Cj4gICAJfQo+Cj4gLQlyaW5nID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKGVuZ2lu ZSwgNCAqIFBBR0VfU0laRSk7Cj4gKwlyaW5nID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKGVu Z2luZSwgNCAqIFBBR0VfU0laRSk7Cj4gICAJaWYgKElTX0VSUihyaW5nKSkgewo+ICAgCQlyZXQg PSBQVFJfRVJSKHJpbmcpOwo+ICAgCQlnb3RvIGVycm9yX2RlcmVmX29iajsKPiBAQCAtMjMxNiw3 ICsyMzE2LDcgQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfYWxsb2Moc3RydWN0IGlu dGVsX2NvbnRleHQgKmN0eCwKPiAgIAlyZXR1cm4gMDsKPgo+ICAgZXJyb3JfcmluZ2J1ZjoKPiAt CWludGVsX3JpbmdidWZmZXJfZnJlZShyaW5nKTsKPiArCWludGVsX3JpbmdfZnJlZShyaW5nKTsK PiAgIGVycm9yX2RlcmVmX29iajoKPiAgIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmY3R4 X29iai0+YmFzZSk7Cj4gICAJY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZyA9IE5VTEw7Cj4g QEAgLTIzMzMsNyArMjMzMyw3IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+Cj4gICAJZm9yX2VhY2hfcmluZyh1bnVzZWQsIGRldl9wcml2LCBp KSB7Cj4gICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gY3R4LT5lbmdp bmVbaV0uc3RhdGU7Cj4gLQkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSBjdHgtPmVu Z2luZVtpXS5yaW5nOwo+ICsJCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gY3R4LT5lbmdpbmVb aV0ucmluZzsKPiAgIAkJdWludDMyX3QgKnJlZ19zdGF0ZTsKPiAgIAkJc3RydWN0IHBhZ2UgKnBh Z2U7Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jCj4gaW5kZXggNjFlMTcwNGQ3MzEzLi4x YjcyNGMwYTcxMWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9j cy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jCj4gQEAgLTE5Myw3 ICsxOTMsNyBAQCBzdGF0aWMgaW50IGVtaXRfbW9jc19jb250cm9sX3RhYmxlKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9t b2NzX3RhYmxlICp0YWJsZSwKPiAgIAkJCQkgICBlbnVtIGludGVsX2VuZ2luZV9pZCBpZCkKPiAg IHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICsJc3Ry dWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJdW5zaWduZWQgaW50IGluZGV4 Owo+ICAgCWludCByZXQ7Cj4KPiBAQCAtMjQ0LDcgKzI0NCw3IEBAIHN0YXRpYyBpbnQgZW1pdF9t b2NzX2NvbnRyb2xfdGFibGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICBz dGF0aWMgaW50IGVtaXRfbW9jc19sM2NjX3RhYmxlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxLAo+ICAgCQkJCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSkK PiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICsJ c3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJdW5zaWduZWQgaW50IGNv dW50Owo+ICAgCXVuc2lnbmVkIGludCBpOwo+ICAgCXUzMiB2YWx1ZTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXggMWJiOWYzNzZhYTBiLi45NTk3NDE1NmEx ZDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gQEAgLTQy LDcgKzQyLDcgQEAgaW50IF9faW50ZWxfcmluZ19zcGFjZShpbnQgaGVhZCwgaW50IHRhaWwsIGlu dCBzaXplKQo+ICAgCXJldHVybiBzcGFjZSAtIEk5MTVfUklOR19GUkVFX1NQQUNFOwo+ICAgfQo+ Cj4gLXZvaWQgaW50ZWxfcmluZ191cGRhdGVfc3BhY2Uoc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYpCj4gK3ZvaWQgaW50ZWxfcmluZ191cGRhdGVfc3BhY2Uoc3RydWN0IGludGVsX3Jp bmcgKnJpbmdidWYpCj4gICB7Cj4gICAJaWYgKHJpbmdidWYtPmxhc3RfcmV0aXJlZF9oZWFkICE9 IC0xKSB7Cj4gICAJCXJpbmdidWYtPmhlYWQgPSByaW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZDsK PiBAQCAtNTMsNyArNTMsNyBAQCB2b2lkIGludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ICAgCQkJCQkgICAgcmluZ2J1Zi0+dGFpbCwgcmlu Z2J1Zi0+c2l6ZSk7Cj4gICB9Cj4KPiAtaW50IGludGVsX3Jpbmdfc3BhY2Uoc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmdidWYpCj4gK2ludCBpbnRlbF9yaW5nX3NwYWNlKHN0cnVjdCBpbnRl bF9yaW5nICpyaW5nYnVmKQo+ICAgewo+ICAgCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmdi dWYpOwo+ICAgCXJldHVybiByaW5nYnVmLT5zcGFjZTsKPiBAQCAtNjEsNyArNjEsNyBAQCBpbnQg aW50ZWxfcmluZ19zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPgo+ICAg c3RhdGljIHZvaWQgX19pbnRlbF9yaW5nX2FkdmFuY2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmluZy0+ YnVmZmVyOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmdidWYgPSByaW5nLT5idWZmZXI7Cj4g ICAJcmluZ2J1Zi0+dGFpbCAmPSByaW5nYnVmLT5zaXplIC0gMTsKPiAgIAlyaW5nLT53cml0ZV90 YWlsKHJpbmcsIHJpbmdidWYtPnRhaWwpOwo+ICAgfQo+IEBAIC03MSw3ICs3MSw3IEBAIGdlbjJf cmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJ CSAgICAgICB1MzIJaW52YWxpZGF0ZV9kb21haW5zLAo+ICAgCQkgICAgICAgdTMyCWZsdXNoX2Rv bWFpbnMpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmlu ZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXUzMiBjbWQ7 Cj4gICAJaW50IHJldDsKPgo+IEBAIC05OCw3ICs5OCw3IEBAIGdlbjRfcmVuZGVyX3JpbmdfZmx1 c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCSAgICAgICB1MzIJaW52 YWxpZGF0ZV9kb21haW5zLAo+ICAgCQkgICAgICAgdTMyCWZsdXNoX2RvbWFpbnMpCj4gICB7Cj4g LQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBp bnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXUzMiBjbWQ7Cj4gICAJaW50IHJldDsK Pgo+IEBAIC0xOTEsNyArMTkxLDcgQEAgZ2VuNF9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIHN0YXRpYyBpbnQKPiAgIGludGVsX2VtaXRfcG9z dF9zeW5jX25vbnplcm9fZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4g ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0 cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXUzMiBzY3JhdGNoX2FkZHIg PSByZXEtPmVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsK PiAgIAlpbnQgcmV0Owo+Cj4gQEAgLTIyNyw3ICsyMjcsNyBAQCBzdGF0aWMgaW50Cj4gICBnZW42 X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAg CQkgICAgICAgdTMyIGludmFsaWRhdGVfZG9tYWlucywgdTMyIGZsdXNoX2RvbWFpbnMpCj4gICB7 Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVj dCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXUzMiBmbGFncyA9IDA7Cj4gICAJ dTMyIHNjcmF0Y2hfYWRkciA9IHJlcS0+ZW5naW5lLT5zY3JhdGNoLmd0dF9vZmZzZXQgKyAyICog Q0FDSEVMSU5FX0JZVEVTOwo+ICAgCWludCByZXQ7Cj4gQEAgLTI3OSw3ICsyNzksNyBAQCBnZW42 X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAg c3RhdGljIGludAo+ICAgZ2VuN19yZW5kZXJfcmluZ19jc19zdGFsbF93YShzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7 Cj4gICAJaW50IHJldDsKPgo+ICAgCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0KTsKPiBA QCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBpbnQKPiAgIGdlbjdfcmVuZGVyX3JpbmdfZmx1c2go c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCSAgICAgICB1MzIgaW52YWxp ZGF0ZV9kb21haW5zLCB1MzIgZmx1c2hfZG9tYWlucykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcg PSByZXEtPnJpbmc7Cj4gICAJdTMyIGZsYWdzID0gMDsKPiAgIAl1MzIgc2NyYXRjaF9hZGRyID0g cmVxLT5lbmdpbmUtPnNjcmF0Y2guZ3R0X29mZnNldCArIDIgKiBDQUNIRUxJTkVfQllURVM7Cj4g ICAJaW50IHJldDsKPiBAQCAtMzYzLDcgKzM2Myw3IEBAIHN0YXRpYyBpbnQKPiAgIGdlbjhfZW1p dF9waXBlX2NvbnRyb2woc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCSAg ICAgICB1MzIgZmxhZ3MsIHUzMiBzY3JhdGNoX2FkZHIpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxf cmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5n ID0gcmVxLT5yaW5nOwo+ICAgCWludCByZXQ7Cj4KPiAgIAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2lu KHJlcSwgNik7Cj4gQEAgLTU0Nyw3ICs1NDcsNyBAQCBzdGF0aWMgaW50IGluaXRfcmluZ19jb21t b24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gcmluZy0+ZGV2Owo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu Z2J1ZiA9IHJpbmctPmJ1ZmZlcjsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nYnVmID0gcmlu Zy0+YnVmZmVyOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSByaW5nYnVm LT5vYmo7Cj4gICAJaW50IHJldCA9IDA7Cj4KPiBAQCAtNjg4LDcgKzY4OCw3IEBAIGVycjoKPgo+ ICAgc3RhdGljIGludCBpbnRlbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu ZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwo+ ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJlcS0+aTkxNTsKPiAgIAlz dHJ1Y3QgaTkxNV93b3JrYXJvdW5kcyAqdyA9ICZkZXZfcHJpdi0+d29ya2Fyb3VuZHM7Cj4gICAJ aW50IHJldCwgaTsKPiBAQCAtMTE5MSw3ICsxMTkxLDcgQEAgc3RhdGljIGludCBnZW44X3Jjc19z aWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAo+ICAgCQkJ ICAgdW5zaWduZWQgaW50IG51bV9kd29yZHMpCj4gICB7Cj4gICAjZGVmaW5lIE1CT1hfVVBEQVRF X0RXT1JEUyA4Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqc2lnbmFsbGVyID0gc2lnbmFs bGVyX3JlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpzaWduYWxsZXIgPSBzaWduYWxs ZXJfcmVxLT5yaW5nOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHNp Z25hbGxlcl9yZXEtPmk5MTU7Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqd2FpdGVyOwo+ ICAgCWludCBpLCByZXQsIG51bV9yaW5nczsKPiBAQCAtMTIyOSw3ICsxMjI5LDcgQEAgc3RhdGlj IGludCBnZW44X3hjc19zaWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpzaWduYWxs ZXJfcmVxLAo+ICAgCQkJICAgdW5zaWduZWQgaW50IG51bV9kd29yZHMpCj4gICB7Cj4gICAjZGVm aW5lIE1CT1hfVVBEQVRFX0RXT1JEUyA2Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqc2ln bmFsbGVyID0gc2lnbmFsbGVyX3JlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpzaWdu YWxsZXIgPSBzaWduYWxsZXJfcmVxLT5yaW5nOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHNpZ25hbGxlcl9yZXEtPmk5MTU7Cj4gICAJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqd2FpdGVyOwo+ICAgCWludCBpLCByZXQsIG51bV9yaW5nczsKPiBAQCAtMTI2NCw3ICsx MjY0LDcgQEAgc3RhdGljIGludCBnZW44X3hjc19zaWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAo+ICAgc3RhdGljIGludCBnZW42X3NpZ25hbChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnNpZ25hbGxlcl9yZXEsCj4gICAJCSAgICAgICB1bnNpZ25l ZCBpbnQgbnVtX2R3b3JkcykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpzaWdu YWxsZXIgPSBzaWduYWxsZXJfcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnNpZ25h bGxlciA9IHNpZ25hbGxlcl9yZXEtPnJpbmc7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gc2lnbmFsbGVyX3JlcS0+aTkxNTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICp1c2VsZXNzOwo+ICAgCWludCBpLCByZXQsIG51bV9yaW5nczsKPiBAQCAtMTMwNiw3ICsx MzA2LDcgQEAgc3RhdGljIGludCBnZW42X3NpZ25hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnNpZ25hbGxlcl9yZXEsCj4gICBzdGF0aWMgaW50Cj4gICBnZW42X2FkZF9yZXF1ZXN0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9 IHJlcS0+cmluZzsKPiAgIAlpbnQgcmV0Owo+Cj4gICAJaWYgKHJlcS0+ZW5naW5lLT5zZW1hcGhv cmUuc2lnbmFsKQo+IEBAIC0xMzQ1LDcgKzEzNDUsNyBAQCBnZW44X3Jpbmdfc3luYyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKndhaXRlcl9yZXEsCj4gICAJICAgICAgIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnNpZ25hbGxlciwKPiAgIAkgICAgICAgdTMyIHNlcW5vKQo+ICAgewo+IC0J c3RydWN0IGludGVsX3JpbmdidWZmZXIgKndhaXRlciA9IHdhaXRlcl9yZXEtPnJpbmc7Cj4gKwlz dHJ1Y3QgaW50ZWxfcmluZyAqd2FpdGVyID0gd2FpdGVyX3JlcS0+cmluZzsKPiAgIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB3YWl0ZXJfcmVxLT5pOTE1Owo+ICAgCWludCBy ZXQ7Cj4KPiBAQCAtMTM3Myw3ICsxMzczLDcgQEAgZ2VuNl9yaW5nX3N5bmMoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICp3YWl0ZXJfcmVxLAo+ICAgCSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpzaWduYWxsZXIsCj4gICAJICAgICAgIHUzMiBzZXFubykKPiAgIHsKPiAtCXN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICp3YWl0ZXIgPSB3YWl0ZXJfcmVxLT5yaW5nOwo+ICsJc3RydWN0 IGludGVsX3JpbmcgKndhaXRlciA9IHdhaXRlcl9yZXEtPnJpbmc7Cj4gICAJdTMyIGR3MSA9IE1J X1NFTUFQSE9SRV9NQk9YIHwKPiAgIAkJICBNSV9TRU1BUEhPUkVfQ09NUEFSRSB8Cj4gICAJCSAg TUlfU0VNQVBIT1JFX1JFR0lTVEVSOwo+IEBAIC0xNDIxLDcgKzE0MjEsNyBAQCBkbyB7CQkJCQkJ CQkJXAo+ICAgc3RhdGljIGludAo+ICAgcGNfcmVuZGVyX2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmlu ZzsKPiAgIAl1MzIgYWRkciA9IHJlcS0+ZW5naW5lLT5zdGF0dXNfcGFnZS5nZnhfYWRkciArCj4g ICAJCShJOTE1X0dFTV9IV1NfSU5ERVggPDwgTUlfU1RPUkVfRFdPUkRfSU5ERVhfU0hJRlQpOwo+ ICAgCXUzMiBzY3JhdGNoX2FkZHIgPSBhZGRyOwo+IEBAIC0xNTQ4LDcgKzE1NDgsNyBAQCBic2Rf cmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkgICAgICAg dTMyICAgICBpbnZhbGlkYXRlX2RvbWFpbnMsCj4gICAJICAgICAgIHUzMiAgICAgZmx1c2hfZG9t YWlucykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVxLT5yaW5n Owo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJaW50IHJldDsK Pgo+ICAgCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAyKTsKPiBAQCAtMTU2NCw3ICsxNTY0 LDcgQEAgYnNkX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4g ICBzdGF0aWMgaW50Cj4gICBpOXh4X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEt PnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlpbnQg cmV0Owo+Cj4gICAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDQpOwo+IEBAIC0xNjU4LDcg KzE2NTgsNyBAQCBpOTY1X2Rpc3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEsCj4gICAJCQkgdTY0IG9mZnNldCwgdTMyIGxlbmd0aCwKPiAgIAkJCSB1bnNp Z25lZCBkaXNwYXRjaF9mbGFncykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7 Cj4gICAJaW50IHJldDsKPgo+ICAgCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAyKTsKPiBA QCAtMTY4NSw3ICsxNjg1LDcgQEAgaTgzMF9kaXNwYXRjaF9leGVjYnVmZmVyKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkJIHU2NCBvZmZzZXQsIHUzMiBsZW4sCj4gICAJ CQkgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVx LT5yaW5nOwo+ICAgCXUzMiBjc19vZmZzZXQgPSByZXEtPmVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zm c2V0Owo+ICAgCWludCByZXQ7Cj4KPiBAQCAtMTc0OCw3ICsxNzQ4LDcgQEAgaTkxNV9kaXNwYXRj aF9leGVjYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkJIHU2 NCBvZmZzZXQsIHUzMiBsZW4sCj4gICAJCQkgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpCj4gICB7 Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVj dCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCWludCByZXQ7Cj4KPiAgIAlyZXQg PSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgMik7Cj4gQEAgLTE4NDUsNyArMTg0NSw3IEBAIHN0YXRp YyBpbnQgaW5pdF9waHlzX3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcp Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiAtdm9pZCBpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29i aihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiArdm9pZCBpbnRlbF91bnBpbl9y aW5nKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nYnVmKQo+ICAgewo+ICAgCWlmIChIQVNfTExDKHJp bmdidWYtPm9iai0+YmFzZS5kZXYpICYmICFyaW5nYnVmLT5vYmotPnN0b2xlbikKPiAgIAkJaTkx NV9nZW1fb2JqZWN0X3VucGluX3ZtYXAocmluZ2J1Zi0+b2JqKTsKPiBAQCAtMTg1NCw4ICsxODU0 LDcgQEAgdm9pZCBpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZikKPiAgIAlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihyaW5nYnVmLT5v YmopOwo+ICAgfQo+Cj4gLWludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkJICAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1ZikKPiAraW50IGludGVsX3Bpbl9hbmRfbWFwX3Jpbmcoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGludGVsX3JpbmcgKnJpbmdidWYpCj4gICB7Cj4gICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAgCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmogPSByaW5nYnVmLT5vYmo7Cj4gQEAgLTE5MDAsMTQgKzE4OTksMTQg QEAgdW5waW46Cj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPgo+IC1zdGF0aWMgdm9pZCBpbnRlbF9k ZXN0cm95X3JpbmdidWZmZXJfb2JqKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ ICtzdGF0aWMgdm9pZCBpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2JqKHN0cnVjdCBpbnRlbF9y aW5nICpyaW5nYnVmKQo+ICAgewo+ICAgCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZyaW5n YnVmLT5vYmotPmJhc2UpOwo+ICAgCXJpbmdidWYtPm9iaiA9IE5VTEw7Cj4gICB9Cj4KPiAgIHN0 YXRpYyBpbnQgaW50ZWxfYWxsb2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiAtCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ICsJCQkJ ICAgICAgc3RydWN0IGludGVsX3JpbmcgKnJpbmdidWYpCj4gICB7Cj4gICAJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iajsKPgo+IEBAIC0xOTI3LDEwICsxOTI2LDEwIEBAIHN0YXRpYyBp bnQgaW50ZWxfYWxsb2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg IAlyZXR1cm4gMDsKPiAgIH0KPgo+IC1zdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqCj4gLWludGVs X2VuZ2luZV9jcmVhdGVfcmluZ2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs IGludCBzaXplKQo+ICtzdHJ1Y3QgaW50ZWxfcmluZyAqCj4gK2ludGVsX2VuZ2luZV9jcmVhdGVf cmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBzaXplKQo+ICAgewo+IC0J c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmlu ZzsKPiAgIAlpbnQgcmV0Owo+Cj4gICAJcmluZyA9IGt6YWxsb2Moc2l6ZW9mKCpyaW5nKSwgR0ZQ X0tFUk5FTCk7Cj4gQEAgLTE5NjgsNyArMTk2Nyw3IEBAIGludGVsX2VuZ2luZV9jcmVhdGVfcmlu Z2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBzaXplKQo+ICAgfQo+ Cj4gICB2b2lkCj4gLWludGVsX3JpbmdidWZmZXJfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZykKPiAraW50ZWxfcmluZ19mcmVlKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nKQo+ICAg ewo+ICAgCWludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmoocmluZyk7Cj4gICAJbGlzdF9kZWwo JnJpbmctPmxpbmspOwo+IEBAIC0xOTc4LDcgKzE5NzcsNyBAQCBpbnRlbF9yaW5nYnVmZmVyX2Zy ZWUoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcpCj4gICBzdGF0aWMgaW50IGludGVsX2lu aXRfZW5naW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkgICAgIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpy aW5nYnVmOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmdidWY7Cj4gICAJaW50IHJldDsKPgo+ ICAgCVdBUk5fT04oZW5naW5lLT5idWZmZXIpOwo+IEBAIC0xOTk1LDcgKzE5OTQsNyBAQCBzdGF0 aWMgaW50IGludGVsX2luaXRfZW5naW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4KPiAgIAlp bnRlbF9lbmdpbmVfaW5pdF9icmVhZGNydW1icyhlbmdpbmUpOwo+Cj4gLQlyaW5nYnVmID0gaW50 ZWxfZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKGVuZ2luZSwgMzIgKiBQQUdFX1NJWkUpOwo+ICsJ cmluZ2J1ZiA9IGludGVsX2VuZ2luZV9jcmVhdGVfcmluZyhlbmdpbmUsIDMyICogUEFHRV9TSVpF KTsKPiAgIAlpZiAoSVNfRVJSKHJpbmdidWYpKSB7Cj4gICAJCXJldCA9IFBUUl9FUlIocmluZ2J1 Zik7Cj4gICAJCWdvdG8gZXJyb3I7Cj4gQEAgLTIwMTMsNyArMjAxMiw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfaW5pdF9lbmdpbmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJCWdvdG8gZXJy b3I7Cj4gICAJfQo+Cj4gLQlyZXQgPSBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihk ZXYsIHJpbmdidWYpOwo+ICsJcmV0ID0gaW50ZWxfcGluX2FuZF9tYXBfcmluZyhkZXYsIHJpbmdi dWYpOwo+ICAgCWlmIChyZXQpIHsKPiAgIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcGluIGFuZCBt YXAgcmluZ2J1ZmZlciAlczogJWRcbiIsCj4gICAJCQkJZW5naW5lLT5uYW1lLCByZXQpOwo+IEBA IC0yMDQzLDggKzIwNDIsOCBAQCB2b2lkIGludGVsX2VuZ2luZV9jbGVhbnVwKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcpCj4gICAJCWludGVsX2VuZ2luZV9zdG9wKHJpbmcpOwo+ICAgCQlX QVJOX09OKCFJU19HRU4yKHJpbmctPmRldikgJiYgKEk5MTVfUkVBRF9NT0RFKHJpbmcpICYgTU9E RV9JRExFKSA9PSAwKTsKPgo+IC0JCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmctPmJ1 ZmZlcik7Cj4gLQkJaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHJpbmctPmJ1ZmZlcik7Cj4gKwkJaW50 ZWxfdW5waW5fcmluZyhyaW5nLT5idWZmZXIpOwo+ICsJCWludGVsX3JpbmdfZnJlZShyaW5nLT5i dWZmZXIpOwo+ICAgCQlyaW5nLT5idWZmZXIgPSBOVUxMOwo+ICAgCX0KPgo+IEBAIC0yMDg0LDcg KzIwODMsNyBAQCBpbnQgaW50ZWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiAtdm9p ZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jlc2VydmUoc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKnJpbmdidWYsIGludCBzaXplKQo+ICt2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2Vf cmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZ2J1ZiwgaW50IHNpemUpCj4gICB7Cj4gICAJ V0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9zaXplKTsKPiAgIAlXQVJOX09OKHJpbmdidWYtPnJl c2VydmVkX2luX3VzZSk7Cj4gQEAgLTIwOTIsNyArMjA5MSw3IEBAIHZvaWQgaW50ZWxfcmluZ19y ZXNlcnZlZF9zcGFjZV9yZXNlcnZlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLCBp bnQgc2l6Cj4gICAJcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSA9IHNpemU7Cj4gICB9Cj4KPiAtdm9p ZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2NhbmNlbChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZikKPiArdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2NhbmNlbChzdHJ1 Y3QgaW50ZWxfcmluZyAqcmluZ2J1ZikKPiAgIHsKPiAgIAlXQVJOX09OKHJpbmdidWYtPnJlc2Vy dmVkX2luX3VzZSk7Cj4KPiBAQCAtMjEwMCw3ICsyMDk5LDcgQEAgdm9pZCBpbnRlbF9yaW5nX3Jl c2VydmVkX3NwYWNlX2NhbmNlbChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiAg IAlyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UgPSBmYWxzZTsKPiAgIH0KPgo+IC12b2lkIGludGVs X3JpbmdfcmVzZXJ2ZWRfc3BhY2VfdXNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm KQo+ICt2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfdXNlKHN0cnVjdCBpbnRlbF9yaW5n ICpyaW5nYnVmKQo+ICAgewo+ICAgCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsK Pgo+IEBAIC0yMTA4LDcgKzIxMDcsNyBAQCB2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2Vf dXNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ICAgCXJpbmdidWYtPnJlc2Vy dmVkX3RhaWwgICA9IHJpbmdidWYtPnRhaWw7Cj4gICB9Cj4KPiAtdm9pZCBpbnRlbF9yaW5nX3Jl c2VydmVkX3NwYWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiArdm9p ZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZ2J1 ZikKPiAgIHsKPiAgIAlXQVJOX09OKCFyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+ICAgCWlm IChyaW5nYnVmLT50YWlsID4gcmluZ2J1Zi0+cmVzZXJ2ZWRfdGFpbCkgewo+IEBAIC0yMTMzLDcg KzIxMzIsNyBAQCB2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfZW5kKHN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+Cj4gICBzdGF0aWMgaW50IHdhaXRfZm9yX3NwYWNlKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgYnl0ZXMpCj4gICB7Cj4gLQlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBpbnRlbF9y aW5nICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSA9IHJlcS0+ZW5naW5lOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqdGFyZ2V0 Owo+ICAgCXVuc2lnbmVkIHNwYWNlOwo+IEBAIC0yMTcyLDcgKzIxNzEsNyBAQCBzdGF0aWMgaW50 IHdhaXRfZm9yX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgYnl0 ZXMpCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiAtc3RhdGljIHZvaWQgcmluZ193cmFwKHN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ICtzdGF0aWMgdm9pZCByaW5nX3dyYXAoc3Ry dWN0IGludGVsX3JpbmcgKnJpbmdidWYpCj4gICB7Cj4gICAJaW50IHJlbSA9IHJpbmdidWYtPnNp emUgLSByaW5nYnVmLT50YWlsOwo+ICAgCW1lbXNldChyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ICsg cmluZ2J1Zi0+dGFpbCwgMCwgcmVtKTsKPiBAQCAtMjE4Myw3ICsyMTgyLDcgQEAgc3RhdGljIHZv aWQgcmluZ193cmFwKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+Cj4gICBzdGF0 aWMgaW50IHJpbmdfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50 IGJ5dGVzKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJp bmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlpbnQgcmVt YWluX3VzYWJsZSA9IHJpbmctPmVmZmVjdGl2ZV9zaXplIC0gcmluZy0+dGFpbDsKPiAgIAlpbnQg cmVtYWluX2FjdHVhbCA9IHJpbmctPnNpemUgLSByaW5nLT50YWlsOwo+ICAgCWludCByZXQsIHRv dGFsX2J5dGVzLCB3YWl0X2J5dGVzID0gMDsKPiBAQCAtMjI0Myw3ICsyMjQyLDcgQEAgaW50IGlu dGVsX3JpbmdfYmVnaW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBudW1f ZHdvcmRzKQo+ICAgLyogQWxpZ24gdGhlIHJpbmcgdGFpbCB0byBhIGNhY2hlbGluZSBib3VuZGFy eSAqLwo+ICAgaW50IGludGVsX3JpbmdfY2FjaGVsaW5lX2FsaWduKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcg PSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiAg IAlpbnQgbnVtX2R3b3JkcyA9IChyaW5nLT50YWlsICYgKENBQ0hFTElORV9CWVRFUyAtIDEpKSAv IHNpemVvZih1aW50MzJfdCk7Cj4gICAJaW50IHJldDsKPgo+IEBAIC0yMzE4LDcgKzIzMTcsNyBA QCBzdGF0aWMgdm9pZCBnZW42X2JzZF9yaW5nX3dyaXRlX3RhaWwoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZywKPiAgIHN0YXRpYyBpbnQgZ2VuNl9ic2RfcmluZ19mbHVzaChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCSAgICAgICB1MzIgaW52YWxpZGF0ZSwgdTMy IGZsdXNoKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJp bmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAl1aW50MzJf dCBjbWQ7Cj4gICAJaW50IHJldDsKPgo+IEBAIC0yMzY0LDcgKzIzNjMsNyBAQCBnZW44X3Jpbmdf ZGlzcGF0Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAg IAkJCSAgICAgIHU2NCBvZmZzZXQsIHUzMiBsZW4sCj4gICAJCQkgICAgICB1bnNpZ25lZCBkaXNw YXRjaF9mbGFncykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nID0gcmVx LT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJYm9v bCBwcGd0dCA9IFVTRVNfUFBHVFQocmVxLT5pOTE1KSAmJgo+ICAgCQkJIShkaXNwYXRjaF9mbGFn cyAmIEk5MTVfRElTUEFUQ0hfU0VDVVJFKTsKPiAgIAlpbnQgcmV0Owo+IEBAIC0yMzkwLDcgKzIz ODksNyBAQCBoc3dfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxLAo+ICAgCQkJICAgICB1NjQgb2Zmc2V0LCB1MzIgbGVuLAo+ICAgCQkJICAg ICB1bnNpZ25lZCBkaXNwYXRjaF9mbGFncykKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nID0gcmVxLT5yaW5nOwo+ICsJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEt PnJpbmc7Cj4gICAJaW50IHJldDsKPgo+ICAgCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCAy KTsKPiBAQCAtMjQxNSw3ICsyNDE0LDcgQEAgZ2VuNl9yaW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXIo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCQkgICAgICB1NjQgb2Zmc2V0 LCB1MzIgbGVuLAo+ICAgCQkJICAgICAgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpCj4gICB7Cj4g LQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyA9IHJlcS0+cmluZzsKPiArCXN0cnVjdCBp bnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCWludCByZXQ7Cj4KPiAgIAlyZXQgPSBp bnRlbF9yaW5nX2JlZ2luKHJlcSwgMik7Cj4gQEAgLTI0MzgsNyArMjQzNyw3IEBAIGdlbjZfcmlu Z19kaXNwYXRjaF9leGVjYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ ICAgc3RhdGljIGludCBnZW42X3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEsCj4gICAJCQkgICB1MzIgaW52YWxpZGF0ZSwgdTMyIGZsdXNoKQo+ICAgewo+IC0Jc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcgPSByZXEtPnJpbmc7Cj4gKwlzdHJ1Y3QgaW50ZWxf cmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAl1aW50MzJfdCBjbWQ7Cj4gICAJaW50IHJldDsK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCA2ODAzZTQ4 MjA2ODguLjcxOTQxYWYxMzU2MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmgKPiBAQCAtOTcsNyArOTcsNyBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2hhbmdjaGVj ayB7Cj4gICAJdTMyIGluc3Rkb25lW0k5MTVfTlVNX0lOU1RET05FX1JFR107Cj4gICB9Owo+Cj4g LXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyIHsKPiArc3RydWN0IGludGVsX3Jpbmcgewo+ICAgCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gICAJdm9pZCAqdmlydHVhbF9zdGFydDsK Pgo+IEBAIC0xNjMsNyArMTYzLDcgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7Cj4gICAJdTMy CQltbWlvX2Jhc2U7Cj4gICAJc3RydWN0CQlkcm1fZGV2aWNlICpkZXY7Cj4gICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTU7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqYnVmZmVy Owo+ICsJc3RydWN0IGludGVsX3JpbmcgKmJ1ZmZlcjsKPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIGJ1 ZmZlcnM7Cj4KPiAgIAkvKiBSYXRoZXIgdGhhbiBoYXZlIGV2ZXJ5IGNsaWVudCB3YWl0IHVwb24g YWxsIHVzZXIgaW50ZXJydXB0cywKPiBAQCAtNDU0LDEyICs0NTQsMTEgQEAgaW50ZWxfd3JpdGVf c3RhdHVzX3BhZ2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgICNkZWZpbmUgSTkx NV9HRU1fSFdTX1NDUkFUQ0hfSU5ERVgJMHg0MAo+ICAgI2RlZmluZSBJOTE1X0dFTV9IV1NfU0NS QVRDSF9BRERSIChJOTE1X0dFTV9IV1NfU0NSQVRDSF9JTkRFWCA8PCBNSV9TVE9SRV9EV09SRF9J TkRFWF9TSElGVCkKPgo+IC1zdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqCj4gLWludGVsX2VuZ2lu ZV9jcmVhdGVfcmluZ2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBz aXplKTsKPiAtaW50IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gLQkJCQkgICAgIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm KTsKPiAtdm9pZCBpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1Zik7Cj4gLXZvaWQgaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nKTsKPiArc3RydWN0IGludGVsX3JpbmcgKgo+ICtpbnRlbF9lbmdp bmVfY3JlYXRlX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgc2l6ZSk7 Cj4gK2ludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0 cnVjdCBpbnRlbF9yaW5nICpyaW5nKTsKPiArdm9pZCBpbnRlbF91bnBpbl9yaW5nKHN0cnVjdCBp bnRlbF9yaW5nICpyaW5nKTsKPiArdm9pZCBpbnRlbF9yaW5nX2ZyZWUoc3RydWN0IGludGVsX3Jp bmcgKnJpbmcpOwo+Cj4gICB2b2lkIGludGVsX2VuZ2luZV9zdG9wKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcpOwo+ICAgdm9pZCBpbnRlbF9lbmdpbmVfY2xlYW51cChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nKTsKPiBAQCAtNDY4LDI0ICs0NjcsMjIgQEAgaW50IGludGVsX3Jpbmdf YWxsb2NfcmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0 KTsKPgo+ICAgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9yaW5nX2JlZ2luKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgbik7Cj4gICBpbnQgX19tdXN0X2NoZWNrIGludGVsX3Jp bmdfY2FjaGVsaW5lX2FsaWduKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKPiAt c3RhdGljIGlubGluZSB2b2lkIGludGVsX3JpbmdfZW1pdChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmIsCj4gLQkJCQkgICB1MzIgZGF0YSkKPiArc3RhdGljIGlubGluZSB2b2lkIGludGVsX3Jp bmdfZW1pdChzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZywgdTMyIGRhdGEpCj4gICB7Cj4gLQkqKHVp bnQzMl90ICopKHJiLT52aXJ0dWFsX3N0YXJ0ICsgcmItPnRhaWwpID0gZGF0YTsKPiAtCXJiLT50 YWlsICs9IDQ7Cj4gKwkqKHVpbnQzMl90ICopKHJpbmctPnZpcnR1YWxfc3RhcnQgKyByaW5nLT50 YWlsKSA9IGRhdGE7Cj4gKwlyaW5nLT50YWlsICs9IDQ7Cj4gICB9Cj4gLXN0YXRpYyBpbmxpbmUg dm9pZCBpbnRlbF9yaW5nX2VtaXRfcmVnKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyYiwKPiAt CQkJCSAgICAgICBpOTE1X3JlZ190IHJlZykKPiArc3RhdGljIGlubGluZSB2b2lkIGludGVsX3Jp bmdfZW1pdF9yZWcoc3RydWN0IGludGVsX3JpbmcgKnJpbmcsIGk5MTVfcmVnX3QgcmVnKQo+ICAg ewo+IC0JaW50ZWxfcmluZ19lbWl0KHJiLCBpOTE1X21taW9fcmVnX29mZnNldChyZWcpKTsKPiAr CWludGVsX3JpbmdfZW1pdChyaW5nLCBpOTE1X21taW9fcmVnX29mZnNldChyZWcpKTsKPiAgIH0K PiAtc3RhdGljIGlubGluZSB2b2lkIGludGVsX3JpbmdfYWR2YW5jZShzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmIpCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9yaW5nX2FkdmFuY2Uoc3Ry dWN0IGludGVsX3JpbmcgKnJpbmcpCj4gICB7Cj4gLQlyYi0+dGFpbCAmPSByYi0+c2l6ZSAtIDE7 Cj4gKwlyaW5nLT50YWlsICY9IHJpbmctPnNpemUgLSAxOwo+ICAgfQo+ICAgaW50IF9faW50ZWxf cmluZ19zcGFjZShpbnQgaGVhZCwgaW50IHRhaWwsIGludCBzaXplKTsKPiAtdm9pZCBpbnRlbF9y aW5nX3VwZGF0ZV9zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4gLWlu dCBpbnRlbF9yaW5nX3NwYWNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKPiAr dm9pZCBpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZ2J1Zik7 Cj4gK2ludCBpbnRlbF9yaW5nX3NwYWNlKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nYnVmKTsKPgo+ ICAgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9lbmdpbmVfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKTsKPiAgIHZvaWQgaW50ZWxfZW5naW5lX2luaXRfc2Vxbm8oc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZywgdTMyIHNlcW5vKTsKPiBAQCAtNTA5LDcgKzUwNiw3IEBAIHN0YXRp YyBpbmxpbmUgdTMyIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZykKPgo+ICAgaW50IGluaXRfd29ya2Fyb3VuZHNfcmluZyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nKTsKPgo+IC1zdGF0aWMgaW5saW5lIHUzMiBpbnRlbF9yaW5nX2dldF90YWls KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ICtzdGF0aWMgaW5saW5lIHUzMiBp bnRlbF9yaW5nX2dldF90YWlsKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nYnVmKQo+ICAgewo+ICAg CXJldHVybiByaW5nYnVmLT50YWlsOwo+ICAgfQo+IEBAIC01MjgsMTMgKzUyNSwxMyBAQCBzdGF0 aWMgaW5saW5lIHUzMiBpbnRlbF9yaW5nX2dldF90YWlsKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nYnVmKQo+ICAgICogd2lsbCBhbHdheXMgaGF2ZSBzdWZmaWNpZW50IHJvb20gdG8gZG8g aXRzIHN0dWZmLiBUaGUgcmVxdWVzdCBjcmVhdGlvbgo+ICAgICogY29kZSBjYWxscyB0aGlzIGF1 dG9tYXRpY2FsbHkuCj4gICAgKi8KPiAtdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jl c2VydmUoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYsIGludCBzaXplKTsKPiArdm9p ZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jlc2VydmUoc3RydWN0IGludGVsX3JpbmcgKnJp bmdidWYsIGludCBzaXplKTsKPiAgIC8qIENhbmNlbCB0aGUgcmVzZXJ2YXRpb24sIGUuZy4gYmVj YXVzZSB0aGUgcmVxdWVzdCBpcyBiZWluZyBkaXNjYXJkZWQuICovCj4gLXZvaWQgaW50ZWxfcmlu Z19yZXNlcnZlZF9zcGFjZV9jYW5jZWwoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYp Owo+ICt2b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHN0cnVjdCBpbnRlbF9y aW5nICpyaW5nYnVmKTsKPiAgIC8qIFVzZSB0aGUgcmVzZXJ2ZWQgc3BhY2UgLSBmb3IgdXNlIGJ5 IGk5MTVfYWRkX3JlcXVlc3QoKSBvbmx5LiAqLwo+IC12b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRf c3BhY2VfdXNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKPiArdm9pZCBpbnRl bF9yaW5nX3Jlc2VydmVkX3NwYWNlX3VzZShzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZ2J1Zik7Cj4g ICAvKiBGaW5pc2ggd2l0aCB0aGUgcmVzZXJ2ZWQgc3BhY2UgLSBmb3IgdXNlIGJ5IGk5MTVfYWRk X3JlcXVlc3QoKSBvbmx5LiAqLwo+IC12b2lkIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfZW5k KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKPiArdm9pZCBpbnRlbF9yaW5nX3Jl c2VydmVkX3NwYWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZ2J1Zik7Cj4KPiAgIC8qIGlu dGVsX2JyZWFkY3J1bWJzLmMgLS0gdXNlciBpbnRlcnJ1cHQgYm90dG9tLWhhbGYgZm9yIHdhaXRl cnMgKi8KPiAgIHN0cnVjdCBpbnRlbF93YWl0IHsKPgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=