From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 1/6] drm/i915: start moving runtime device info to a separate struct Date: Wed, 2 Jan 2019 09:27:42 +0000 Message-ID: <0499c17a-7dc8-19a2-2533-ceaa53b3e3d1@linux.intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id C431689B8F for ; Wed, 2 Jan 2019 09:27:45 +0000 (UTC) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDMxLzEyLzIwMTggMTQ6NTYsIEphbmkgTmlrdWxhIHdyb3RlOgo+IEZpcnN0IG1vdmUgdGhl IGxvdyBoYW5naW5nIGZydWl0LCB0aGUgZmllbGRzIHRoYXQgYXJlIG9ubHkgaW5pdGlhbGl6ZWQK PiBydW50aW1lLiBVc2UgUlVOVElNRV9JTkZPKCkgZXhjbHVzaXZlbHkgdG8gYWNjZXNzIHRoZSBm aWVsZHMuCj4gCj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBsaW51eC5pbnRl bC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNv bT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICAg ICAgICAgfCAyNiArKysrKy0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j ICAgICAgICAgICAgICAgICAgIHwgMTYgKysrLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgICAgICAgICAgfCAgOSArKystCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oICAgICAgICAgICAgIHwgIDEgKwo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgICAgICAgICAgICAgICAgICB8ICA0ICstCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMgICAgICAgICAgICAgICAgIHwgIDIgKy0K PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgICAgICAgICAgfCA2 MCArKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGV2aWNlX2luZm8uaCAgICAgICAgICB8IDI1ICsrKysrKy0tLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICAgICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oICAgICAgICAgICAgICB8ICA2ICstLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgICAgICAgICAgICB8ICA0ICstCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgICAgICAgIHwgMTQg KysrLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAg ICAgICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oICAgICAgICAgICB8ICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNv cmUuYyAgICAgICAgICAgICAgIHwgIDQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3dvcmthcm91bmRzLmMgICAgICAgICAgfCAgNiArLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMgfCAgNiArLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9scmMuYyAgICAgICAgfCAgNCArLQo+ICAgMjAgZmlsZXMg Y2hhbmdlZCwgMTA3IGluc2VydGlvbnMoKyksIDk0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggYjg5YWJiYmE0NjA0Li4xOTM4MjMwNDhmOTYg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC00OCw3ICs0OCw3IEBA IHN0YXRpYyBpbnQgaTkxNV9jYXBhYmlsaXRpZXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpk YXRhKQo+ICAgCXNlcV9wcmludGYobSwgInBjaDogJWRcbiIsIElOVEVMX1BDSF9UWVBFKGRldl9w cml2KSk7Cj4gICAKPiAgIAlpbnRlbF9kZXZpY2VfaW5mb19kdW1wX2ZsYWdzKGluZm8sICZwKTsK PiAtCWludGVsX2RldmljZV9pbmZvX2R1bXBfcnVudGltZShpbmZvLCAmcCk7Cj4gKwlpbnRlbF9k ZXZpY2VfaW5mb19kdW1wX3J1bnRpbWUoUlVOVElNRV9JTkZPKGRldl9wcml2KSwgJnApOwo+ICAg CWludGVsX2RyaXZlcl9jYXBzX3ByaW50KCZkZXZfcHJpdi0+Y2FwcywgJnApOwo+ICAgCj4gICAJ a2VybmVsX3BhcmFtX2xvY2soVEhJU19NT0RVTEUpOwo+IEBAIC0zMTU3LDcgKzMxNTcsNyBAQCBz dGF0aWMgaW50IGk5MTVfZW5naW5lX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVz ZWQpCj4gICAJc2VxX3ByaW50ZihtLCAiR2xvYmFsIGFjdGl2ZSByZXF1ZXN0czogJWRcbiIsCj4g ICAJCSAgIGRldl9wcml2LT5ndC5hY3RpdmVfcmVxdWVzdHMpOwo+ICAgCXNlcV9wcmludGYobSwg IkNTIHRpbWVzdGFtcCBmcmVxdWVuY3k6ICV1IGtIelxuIiwKPiAtCQkgICBkZXZfcHJpdi0+aW5m by5jc190aW1lc3RhbXBfZnJlcXVlbmN5X2toeik7Cj4gKwkJICAgUlVOVElNRV9JTkZPKGRldl9w cml2KS0+Y3NfdGltZXN0YW1wX2ZyZXF1ZW5jeV9raHopOwo+ICAgCj4gICAJcCA9IGRybV9zZXFf ZmlsZV9wcmludGVyKG0pOwo+ICAgCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBp ZCkKPiBAQCAtMzE3Myw3ICszMTczLDcgQEAgc3RhdGljIGludCBpOTE1X3Jjc190b3BvbG9neShz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7Cj4gICAJc3RydWN0IGRy bV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRlcihtKTsKPiAgIAo+IC0JaW50ZWxfZGV2 aWNlX2luZm9fZHVtcF90b3BvbG9neSgmSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUsICZwKTsK PiArCWludGVsX2RldmljZV9pbmZvX2R1bXBfdG9wb2xvZ3koJlJVTlRJTUVfSU5GTyhkZXZfcHJp diktPnNzZXUsICZwKTsKPiAgIAo+ICAgCXJldHVybiAwOwo+ICAgfQo+IEBAIC00MjA5LDcgKzQy MDksNyBAQCBzdGF0aWMgdm9pZCBnZW4xMF9zc2V1X2RldmljZV9zdGF0dXMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCQkJCSAgICAgc3RydWN0IHNzZXVfZGV2X2luZm8g KnNzZXUpCj4gICB7Cj4gICAjZGVmaW5lIFNTX01BWCA2Cj4gLQljb25zdCBzdHJ1Y3QgaW50ZWxf ZGV2aWNlX2luZm8gKmluZm8gPSBJTlRFTF9JTkZPKGRldl9wcml2KTsKPiArCWNvbnN0IHN0cnVj dCBpbnRlbF9ydW50aW1lX2luZm8gKmluZm8gPSBSVU5USU1FX0lORk8oZGV2X3ByaXYpOwo+ICAg CXUzMiBzX3JlZ1tTU19NQVhdLCBldV9yZWdbMiAqIFNTX01BWF0sIGV1X21hc2tbMl07Cj4gICAJ aW50IHMsIHNzOwo+ICAgCj4gQEAgLTQyNjUsNyArNDI2NSw3IEBAIHN0YXRpYyB2b2lkIGdlbjlf c3NldV9kZXZpY2Vfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAg IAkJCQkgICAgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUpCj4gICB7Cj4gICAjZGVmaW5lIFNT X01BWCAzCj4gLQljb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8gPSBJTlRFTF9J TkZPKGRldl9wcml2KTsKPiArCWNvbnN0IHN0cnVjdCBpbnRlbF9ydW50aW1lX2luZm8gKmluZm8g PSBSVU5USU1FX0lORk8oZGV2X3ByaXYpOwo+ICAgCXUzMiBzX3JlZ1tTU19NQVhdLCBldV9yZWdb MiAqIFNTX01BWF0sIGV1X21hc2tbMl07Cj4gICAJaW50IHMsIHNzOwo+ICAgCj4gQEAgLTQyOTMs NyArNDI5Myw3IEBAIHN0YXRpYyB2b2lkIGdlbjlfc3NldV9kZXZpY2Vfc3RhdHVzKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAo+ICAgCQlpZiAoSVNfR0VOOV9CQyhkZXZf cHJpdikpCj4gICAJCQlzc2V1LT5zdWJzbGljZV9tYXNrW3NdID0KPiAtCQkJCUlOVEVMX0lORk8o ZGV2X3ByaXYpLT5zc2V1LnN1YnNsaWNlX21hc2tbc107Cj4gKwkJCQlSVU5USU1FX0lORk8oZGV2 X3ByaXYpLT5zc2V1LnN1YnNsaWNlX21hc2tbc107Cj4gICAKPiAgIAkJZm9yIChzcyA9IDA7IHNz IDwgaW5mby0+c3NldS5tYXhfc3Vic2xpY2VzOyBzcysrKSB7Cj4gICAJCQl1bnNpZ25lZCBpbnQg ZXVfY250Owo+IEBAIC00MzI3LDEwICs0MzI3LDEwIEBAIHN0YXRpYyB2b2lkIGJyb2Fkd2VsbF9z c2V1X2RldmljZV9zdGF0dXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAg Cj4gICAJaWYgKHNzZXUtPnNsaWNlX21hc2spIHsKPiAgIAkJc3NldS0+ZXVfcGVyX3N1YnNsaWNl ID0KPiAtCQkJCUlOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1LmV1X3Blcl9zdWJzbGljZTsKPiAr CQkJUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5ldV9wZXJfc3Vic2xpY2U7Cj4gICAJCWZv ciAocyA9IDA7IHMgPCBmbHMoc3NldS0+c2xpY2VfbWFzayk7IHMrKykgewo+ICAgCQkJc3NldS0+ c3Vic2xpY2VfbWFza1tzXSA9Cj4gLQkJCQlJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5zdWJz bGljZV9tYXNrW3NdOwo+ICsJCQkJUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5zdWJzbGlj ZV9tYXNrW3NdOwo+ICAgCQl9Cj4gICAJCXNzZXUtPmV1X3RvdGFsID0gc3NldS0+ZXVfcGVyX3N1 YnNsaWNlICoKPiAgIAkJCQkgc3NldV9zdWJzbGljZV90b3RhbChzc2V1KTsKPiBAQCAtNDMzOCw3 ICs0MzM4LDcgQEAgc3RhdGljIHZvaWQgYnJvYWR3ZWxsX3NzZXVfZGV2aWNlX3N0YXR1cyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCS8qIHN1YnRyYWN0IGZ1c2VkIG9m ZiBFVShzKSBmcm9tIGVuYWJsZWQgc2xpY2UocykgKi8KPiAgIAkJZm9yIChzID0gMDsgcyA8IGZs cyhzc2V1LT5zbGljZV9tYXNrKTsgcysrKSB7Cj4gICAJCQl1OCBzdWJzbGljZV83ZXUgPQo+IC0J CQkJSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUuc3Vic2xpY2VfN2V1W3NdOwo+ICsJCQkJUlVO VElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5zdWJzbGljZV83ZXVbc107Cj4gICAKPiAgIAkJCXNz ZXUtPmV1X3RvdGFsIC09IGh3ZWlnaHQ4KHN1YnNsaWNlXzdldSk7Cj4gICAJCX0KPiBAQCAtNDM5 MSwxNCArNDM5MSwxNCBAQCBzdGF0aWMgaW50IGk5MTVfc3NldV9zdGF0dXMoc3RydWN0IHNlcV9m aWxlICptLCB2b2lkICp1bnVzZWQpCj4gICAJCXJldHVybiAtRU5PREVWOwo+ICAgCj4gICAJc2Vx X3B1dHMobSwgIlNTRVUgRGV2aWNlIEluZm9cbiIpOwo+IC0JaTkxNV9wcmludF9zc2V1X2luZm8o bSwgdHJ1ZSwgJklOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1KTsKPiArCWk5MTVfcHJpbnRfc3Nl dV9pbmZvKG0sIHRydWUsICZSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1KTsKPiAgIAo+ICAg CXNlcV9wdXRzKG0sICJTU0VVIERldmljZSBTdGF0dXNcbiIpOwo+ICAgCW1lbXNldCgmc3NldSwg MCwgc2l6ZW9mKHNzZXUpKTsKPiAtCXNzZXUubWF4X3NsaWNlcyA9IElOVEVMX0lORk8oZGV2X3By aXYpLT5zc2V1Lm1heF9zbGljZXM7Cj4gLQlzc2V1Lm1heF9zdWJzbGljZXMgPSBJTlRFTF9JTkZP KGRldl9wcml2KS0+c3NldS5tYXhfc3Vic2xpY2VzOwo+ICsJc3NldS5tYXhfc2xpY2VzID0gUlVO VElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5tYXhfc2xpY2VzOwo+ICsJc3NldS5tYXhfc3Vic2xp Y2VzID0gUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5tYXhfc3Vic2xpY2VzOwo+ICAgCXNz ZXUubWF4X2V1c19wZXJfc3Vic2xpY2UgPQo+IC0JCUlOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1 Lm1heF9ldXNfcGVyX3N1YnNsaWNlOwo+ICsJCVJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXUu bWF4X2V1c19wZXJfc3Vic2xpY2U7Cj4gICAKPiAgIAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZf cHJpdik7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBpbmRleCBkY2I5MzUzMzhjNjMu LmY4ODRiOWExMzhjZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBAIC0zNTgsMTIg KzM1OCwxMiBAQCBzdGF0aWMgaW50IGk5MTVfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAkJdmFsdWUgPSBpOTE1X2NtZF9wYXJzZXJfZ2V0X3Zl cnNpb24oZGV2X3ByaXYpOwo+ICAgCQlicmVhazsKPiAgIAljYXNlIEk5MTVfUEFSQU1fU1VCU0xJ Q0VfVE9UQUw6Cj4gLQkJdmFsdWUgPSBzc2V1X3N1YnNsaWNlX3RvdGFsKCZJTlRFTF9JTkZPKGRl dl9wcml2KS0+c3NldSk7Cj4gKwkJdmFsdWUgPSBzc2V1X3N1YnNsaWNlX3RvdGFsKCZSVU5USU1F X0lORk8oZGV2X3ByaXYpLT5zc2V1KTsKPiAgIAkJaWYgKCF2YWx1ZSkKPiAgIAkJCXJldHVybiAt RU5PREVWOwo+ICAgCQlicmVhazsKPiAgIAljYXNlIEk5MTVfUEFSQU1fRVVfVE9UQUw6Cj4gLQkJ dmFsdWUgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5ldV90b3RhbDsKPiArCQl2YWx1ZSA9 IFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXUuZXVfdG90YWw7Cj4gICAJCWlmICghdmFsdWUp Cj4gICAJCQlyZXR1cm4gLUVOT0RFVjsKPiAgIAkJYnJlYWs7Cj4gQEAgLTM4MCw3ICszODAsNyBA QCBzdGF0aWMgaW50IGk5MTVfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKPiAgIAkJdmFsdWUgPSBIQVNfUE9PTEVEX0VVKGRldl9wcml2KTsKPiAgIAkJ YnJlYWs7Cj4gICAJY2FzZSBJOTE1X1BBUkFNX01JTl9FVV9JTl9QT09MOgo+IC0JCXZhbHVlID0g SU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUubWluX2V1X2luX3Bvb2w7Cj4gKwkJdmFsdWUgPSBS VU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1Lm1pbl9ldV9pbl9wb29sOwo+ICAgCQlicmVhazsK PiAgIAljYXNlIEk5MTVfUEFSQU1fSFVDX1NUQVRVUzoKPiAgIAkJdmFsdWUgPSBpbnRlbF9odWNf Y2hlY2tfc3RhdHVzKCZkZXZfcHJpdi0+aHVjKTsKPiBAQCAtNDMwLDE3ICs0MzAsMTcgQEAgc3Rh dGljIGludCBpOTE1X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCj4gICAJCXZhbHVlID0gaW50ZWxfZW5naW5lc19oYXNfY29udGV4dF9pc29sYXRpb24o ZGV2X3ByaXYpOwo+ICAgCQlicmVhazsKPiAgIAljYXNlIEk5MTVfUEFSQU1fU0xJQ0VfTUFTSzoK PiAtCQl2YWx1ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1LnNsaWNlX21hc2s7Cj4gKwkJ dmFsdWUgPSBSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1LnNsaWNlX21hc2s7Cj4gICAJCWlm ICghdmFsdWUpCj4gICAJCQlyZXR1cm4gLUVOT0RFVjsKPiAgIAkJYnJlYWs7Cj4gICAJY2FzZSBJ OTE1X1BBUkFNX1NVQlNMSUNFX01BU0s6Cj4gLQkJdmFsdWUgPSBJTlRFTF9JTkZPKGRldl9wcml2 KS0+c3NldS5zdWJzbGljZV9tYXNrWzBdOwo+ICsJCXZhbHVlID0gUlVOVElNRV9JTkZPKGRldl9w cml2KS0+c3NldS5zdWJzbGljZV9tYXNrWzBdOwo+ICAgCQlpZiAoIXZhbHVlKQo+ICAgCQkJcmV0 dXJuIC1FTk9ERVY7Cj4gICAJCWJyZWFrOwo+ICAgCWNhc2UgSTkxNV9QQVJBTV9DU19USU1FU1RB TVBfRlJFUVVFTkNZOgo+IC0JCXZhbHVlID0gMTAwMCAqIElOVEVMX0lORk8oZGV2X3ByaXYpLT5j c190aW1lc3RhbXBfZnJlcXVlbmN5X2toejsKPiArCQl2YWx1ZSA9IDEwMDAgKiBSVU5USU1FX0lO Rk8oZGV2X3ByaXYpLT5jc190aW1lc3RhbXBfZnJlcXVlbmN5X2toejsKPiAgIAkJYnJlYWs7Cj4g ICAJY2FzZSBJOTE1X1BBUkFNX01NQVBfR1RUX0NPSEVSRU5UOgo+ICAgCQl2YWx1ZSA9IElOVEVM X0lORk8oZGV2X3ByaXYpLT5oYXNfY29oZXJlbnRfZ2d0dDsKPiBAQCAtMTYzNyw3ICsxNjM3LDcg QEAgc3RhdGljIHZvaWQgaTkxNV93ZWxjb21lX21lc3NhZ2VzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiAgIAkJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fZGVidWdfcHJp bnRlcigiaTkxNSBkZXZpY2UgaW5mbzoiKTsKPiAgIAo+ICAgCQlpbnRlbF9kZXZpY2VfaW5mb19k dW1wKCZkZXZfcHJpdi0+aW5mbywgJnApOwo+IC0JCWludGVsX2RldmljZV9pbmZvX2R1bXBfcnVu dGltZSgmZGV2X3ByaXYtPmluZm8sICZwKTsKPiArCQlpbnRlbF9kZXZpY2VfaW5mb19kdW1wX3J1 bnRpbWUoUlVOVElNRV9JTkZPKGRldl9wcml2KSwgJnApOwo+ICAgCX0KPiAgIAo+ICAgCWlmIChJ U19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9ERUJVRykpCj4gQEAgLTE2NzQsNyArMTY3NCw3IEBA IGk5MTVfZHJpdmVyX2NyZWF0ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBj aV9kZXZpY2VfaWQgKmVudCkKPiAgIAkvKiBTZXR1cCB0aGUgd3JpdGUtb25jZSAiY29uc3RhbnQi IGRldmljZSBpbmZvICovCj4gICAJZGV2aWNlX2luZm8gPSBta3dyaXRlX2RldmljZV9pbmZvKGk5 MTUpOwo+ICAgCW1lbWNweShkZXZpY2VfaW5mbywgbWF0Y2hfaW5mbywgc2l6ZW9mKCpkZXZpY2Vf aW5mbykpOwo+IC0JZGV2aWNlX2luZm8tPmRldmljZV9pZCA9IHBkZXYtPmRldmljZTsKPiArCVJV TlRJTUVfSU5GTyhpOTE1KS0+ZGV2aWNlX2lkID0gcGRldi0+ZGV2aWNlOwo+ICAgCj4gICAJQlVJ TERfQlVHX09OKElOVEVMX01BWF9QTEFURk9STVMgPgo+ICAgCQkgICAgIEJJVFNfUEVSX1RZUEUo ZGV2aWNlX2luZm8tPnBsYXRmb3JtX21hc2spKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBp bmRleCAzMDUzYjA1MDVkZGUuLjQ1MzRiZWVlZDZmOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IEBAIC0xNDMyLDYgKzE0MzIsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4g ICAJc3RydWN0IGttZW1fY2FjaGUgKnByaW9yaXRpZXM7Cj4gICAKPiAgIAljb25zdCBzdHJ1Y3Qg aW50ZWxfZGV2aWNlX2luZm8gaW5mbzsKPiArCXN0cnVjdCBpbnRlbF9ydW50aW1lX2luZm8gX19y dW50aW1lOyAvKiBVc2UgUlVOVElNRV9JTkZPKCkgdG8gYWNjZXNzLiAqLwo+ICAgCXN0cnVjdCBp bnRlbF9kcml2ZXJfY2FwcyBjYXBzOwo+ICAgCj4gICAJLyoqCj4gQEAgLTIxOTgsMTAgKzIxOTks MTEgQEAgaW50ZWxfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gICB9Cj4gICAKPiAgICNkZWZpbmUgSU5URUxfSU5GTyhkZXZfcHJpdikJaW50ZWxfaW5mbygo ZGV2X3ByaXYpKQo+ICsjZGVmaW5lIFJVTlRJTUVfSU5GTyhkZXZfcHJpdikJKCYoZGV2X3ByaXYp LT5fX3J1bnRpbWUpCgpEbyB3ZSB3YW50IHRvIGtlZXAgdGhlIGNvbnN0IHRyaWNrIGxpa2Ugd2l0 aCBJTlRFTF9JTkZPIGluIG9yZGVyIHRvIG1ha2UgCmFjY2lkZW50YWwgbW9kaWZpY2F0aW9ucyBo YXJkZXI/IEFyZ3VtZW50IGlzIGRpZmZlcmVudCB0aGVyZSB0aGFuIHdpdGggCnN0YXRpYyBpbmZv LgoKPiAgICNkZWZpbmUgRFJJVkVSX0NBUFMoZGV2X3ByaXYpCSgmKGRldl9wcml2KS0+Y2FwcykK PiAgIAo+ICAgI2RlZmluZSBJTlRFTF9HRU4oZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmdl bikKPiAtI2RlZmluZSBJTlRFTF9ERVZJRChkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uZGV2 aWNlX2lkKQo+ICsjZGVmaW5lIElOVEVMX0RFVklEKGRldl9wcml2KQkoUlVOVElNRV9JTkZPKGRl dl9wcml2KS0+ZGV2aWNlX2lkKQo+ICAgCj4gICAjZGVmaW5lIFJFVklEX0ZPUkVWRVIJCTB4ZmYK PiAgICNkZWZpbmUgSU5URUxfUkVWSUQoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5kcm0ucGRldi0+ cmV2aXNpb24pCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vy cm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gaW5kZXggMmJk Nzk5MWVjOWFmLi42MjM4YTA2YjZkNGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ncHVfZXJyb3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1 X2Vycm9yLmMKPiBAQCAtNTk0LDEzICs1OTQsMTQgQEAgc3RhdGljIHZvaWQgcHJpbnRfZXJyb3Jf b2JqKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4gICAKPiAgIHN0YXRpYyB2 b2lkIGVycl9wcmludF9jYXBhYmlsaXRpZXMoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1 ZiAqbSwKPiAgIAkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8sCj4g KwkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcnVudGltZV9pbmZvICpydW50aW1lLAo+ICAgCQkJ CSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9kcml2ZXJfY2FwcyAqY2FwcykKPiAgIHsKPiAgIAlzdHJ1 Y3QgZHJtX3ByaW50ZXIgcCA9IGk5MTVfZXJyb3JfcHJpbnRlcihtKTsKPiAgIAo+ICAgCWludGVs X2RldmljZV9pbmZvX2R1bXBfZmxhZ3MoaW5mbywgJnApOwoKSWYgSSBhbSBub3QgbWlzc2luZyBz b21ldGhpbmcgaGVyZSB3ZSBub3cgbWlzcyB0aGUgcnVudGltZSBmbGFncyBiZWluZyAKZHVtcGVk LgoKQSBiaXQgbGF0ZXI6IEFoIG9rLCB5b3UgaGF2ZW4ndCB5ZXQgYWRkZWQgYW55IGZsYWdzIHRv IHJ1bnRpbWUgaW5mbyBpbiAKdGhpcyBwYXRjaC4KCj4gICAJaW50ZWxfZHJpdmVyX2NhcHNfcHJp bnQoY2FwcywgJnApOwo+IC0JaW50ZWxfZGV2aWNlX2luZm9fZHVtcF90b3BvbG9neSgmaW5mby0+ c3NldSwgJnApOwo+ICsJaW50ZWxfZGV2aWNlX2luZm9fZHVtcF90b3BvbG9neSgmcnVudGltZS0+ c3NldSwgJnApOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBlcnJfcHJpbnRfcGFyYW1zKHN0 cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4gQEAgLTg0NCw3ICs4NDUsOCBAQCBz dGF0aWMgdm9pZCBfX2Vycl9wcmludF90b19zZ2woc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRl X2J1ZiAqbSwKPiAgIAlpZiAoZXJyb3ItPmRpc3BsYXkpCj4gICAJCWludGVsX2Rpc3BsYXlfcHJp bnRfZXJyb3Jfc3RhdGUobSwgZXJyb3ItPmRpc3BsYXkpOwo+ICAgCj4gLQllcnJfcHJpbnRfY2Fw YWJpbGl0aWVzKG0sICZlcnJvci0+ZGV2aWNlX2luZm8sICZlcnJvci0+ZHJpdmVyX2NhcHMpOwo+ ICsJZXJyX3ByaW50X2NhcGFiaWxpdGllcyhtLCAmZXJyb3ItPmRldmljZV9pbmZvLCAmZXJyb3It PnJ1bnRpbWVfaW5mbywKPiArCQkJICAgICAgICZlcnJvci0+ZHJpdmVyX2NhcHMpOwo+ICAgCWVy cl9wcmludF9wYXJhbXMobSwgJmVycm9yLT5wYXJhbXMpOwo+ICAgCWVycl9wcmludF91YyhtLCAm ZXJyb3ItPnVjKTsKPiAgIH0KPiBAQCAtMTgyNCw2ICsxODI2LDkgQEAgc3RhdGljIHZvaWQgY2Fw dHVyZV9nZW5fc3RhdGUoc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvcikKPiAgIAltZW1jcHko JmVycm9yLT5kZXZpY2VfaW5mbywKPiAgIAkgICAgICAgSU5URUxfSU5GTyhpOTE1KSwKPiAgIAkg ICAgICAgc2l6ZW9mKGVycm9yLT5kZXZpY2VfaW5mbykpOwo+ICsJbWVtY3B5KCZlcnJvci0+cnVu dGltZV9pbmZvLAo+ICsJICAgICAgIFJVTlRJTUVfSU5GTyhpOTE1KSwKPiArCSAgICAgICBzaXpl b2YoZXJyb3ItPnJ1bnRpbWVfaW5mbykpOwo+ICAgCWVycm9yLT5kcml2ZXJfY2FwcyA9IGk5MTUt PmNhcHM7Cj4gICB9Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmgKPiBp bmRleCBmZjI2NTJiYmIwYjAuLjZkOWY0NTQ2OGFjMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ncHVfZXJyb3IuaAo+IEBAIC00NSw2ICs0NSw3IEBAIHN0cnVjdCBpOTE1X2dwdV9zdGF0 ZSB7Cj4gICAJdTMyIHJlc2V0X2NvdW50Owo+ICAgCXUzMiBzdXNwZW5kX2NvdW50Owo+ICAgCXN0 cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBkZXZpY2VfaW5mbzsKPiArCXN0cnVjdCBpbnRlbF9ydW50 aW1lX2luZm8gcnVudGltZV9pbmZvOwo+ICAgCXN0cnVjdCBpbnRlbF9kcml2ZXJfY2FwcyBkcml2 ZXJfY2FwczsKPiAgIAlzdHJ1Y3QgaTkxNV9wYXJhbXMgcGFyYW1zOwo+ICAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9wZXJmLmMKPiBpbmRleCA0Mjg4YzBlMDJmMGMuLjI4OWI5MDA2NWQyNyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCj4gQEAgLTI2NDYsNyArMjY0Niw3IEBAIGk5MTVfcGVy Zl9vcGVuX2lvY3RsX2xvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g ICBzdGF0aWMgdTY0IG9hX2V4cG9uZW50X3RvX25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgaW50IGV4cG9uZW50KQo+ICAgewo+ICAgCXJldHVybiBkaXY2NF91NjQoMTAwMDAw MDAwMFVMTCAqICgyVUxMIDw8IGV4cG9uZW50KSwKPiAtCQkJIDEwMDBVTEwgKiBJTlRFTF9JTkZP KGRldl9wcml2KS0+Y3NfdGltZXN0YW1wX2ZyZXF1ZW5jeV9raHopOwo+ICsJCQkgMTAwMFVMTCAq IFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lfa2h6KTsKPiAg IH0KPiAgIAo+ICAgLyoqCj4gQEAgLTM0NzEsNyArMzQ3MSw3IEBAIHZvaWQgaTkxNV9wZXJmX2lu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCQlzcGluX2xvY2tfaW5p dCgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrKTsKPiAgIAo+ICAgCQlvYV9z YW1wbGVfcmF0ZV9oYXJkX2xpbWl0ID0gMTAwMCAqCj4gLQkJCShJTlRFTF9JTkZPKGRldl9wcml2 KS0+Y3NfdGltZXN0YW1wX2ZyZXF1ZW5jeV9raHogLyAyKTsKPiArCQkJKFJVTlRJTUVfSU5GTyhk ZXZfcHJpdiktPmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lfa2h6IC8gMik7Cj4gICAJCWRldl9wcml2 LT5wZXJmLnN5c2N0bF9oZWFkZXIgPSByZWdpc3Rlcl9zeXNjdGxfdGFibGUoZGV2X3Jvb3QpOwo+ ICAgCj4gICAJCW11dGV4X2luaXQoJmRldl9wcml2LT5wZXJmLm1ldHJpY3NfbG9jayk7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcXVlcnkuYwo+IGluZGV4IDZmYzRiOGVlYWI0Mi4uOTVhMzQzOTM0Y2Jk IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYwo+IEBAIC0xMyw3ICsxMyw3IEBACj4g ICBzdGF0aWMgaW50IHF1ZXJ5X3RvcG9sb2d5X2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ICAgCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtICpxdWVy eV9pdGVtKQo+ICAgewo+IC0JY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmSU5U RUxfSU5GTyhkZXZfcHJpdiktPnNzZXU7Cj4gKwljb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAq c3NldSA9ICZSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1Owo+ICAgCXN0cnVjdCBkcm1faTkx NV9xdWVyeV90b3BvbG9neV9pbmZvIHRvcG87Cj4gICAJdTMyIHNsaWNlX2xlbmd0aCwgc3Vic2xp Y2VfbGVuZ3RoLCBldV9sZW5ndGgsIHRvdGFsX2xlbmd0aDsKPiAgIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwo+IGluZGV4IGExZGZiMDBhYTE2ZC4uZmZjNWQ3NWFh NjkwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZv LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jCj4gQEAg LTEwNCw3ICsxMDQsNyBAQCBzdGF0aWMgdm9pZCBzc2V1X2R1bXAoY29uc3Qgc3RydWN0IHNzZXVf ZGV2X2luZm8gKnNzZXUsIHN0cnVjdCBkcm1fcHJpbnRlciAqcCkKPiAgIAlkcm1fcHJpbnRmKHAs ICJoYXMgRVUgcG93ZXIgZ2F0aW5nOiAlc1xuIiwgeWVzbm8oc3NldS0+aGFzX2V1X3BnKSk7Cj4g ICB9Cj4gICAKPiAtdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19kdW1wX3J1bnRpbWUoY29uc3Qgc3Ry dWN0IGludGVsX2RldmljZV9pbmZvICppbmZvLAo+ICt2b2lkIGludGVsX2RldmljZV9pbmZvX2R1 bXBfcnVudGltZShjb25zdCBzdHJ1Y3QgaW50ZWxfcnVudGltZV9pbmZvICppbmZvLAo+ICAgCQkJ CSAgICBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApCj4gICB7Cj4gICAJc3NldV9kdW1wKCZpbmZvLT5z c2V1LCBwKTsKPiBAQCAtMTY0LDcgKzE2NCw3IEBAIHN0YXRpYyB1MTYgY29tcHV0ZV9ldV90b3Rh bChjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSkKPiAgIAo+ICAgc3RhdGljIHZvaWQg Z2VuMTFfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICAgewo+IC0Jc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmbWt3cml0ZV9kZXZpY2VfaW5m byhkZXZfcHJpdiktPnNzZXU7Cj4gKwlzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZSVU5U SU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1Owo+ICAgCXU4IHNfZW47Cj4gICAJdTMyIHNzX2VuLCBz c19lbl9tYXNrOwo+ICAgCXU4IGV1X2VuOwo+IEBAIC0yMDMsNyArMjAzLDcgQEAgc3RhdGljIHZv aWQgZ2VuMTFfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ICAgCj4gICBzdGF0aWMgdm9pZCBnZW4xMF9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICB7Cj4gLQlzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3Nl dSA9ICZta3dyaXRlX2RldmljZV9pbmZvKGRldl9wcml2KS0+c3NldTsKPiArCXN0cnVjdCBzc2V1 X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7Cj4gICAJY29u c3QgdTMyIGZ1c2UyID0gSTkxNV9SRUFEKEdFTjhfRlVTRTIpOwo+ICAgCWludCBzLCBzczsKPiAg IAljb25zdCBpbnQgZXVfbWFzayA9IDB4ZmY7Cj4gQEAgLTI4MCw3ICsyODAsNyBAQCBzdGF0aWMg dm9pZCBnZW4xMF9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gICAKPiAgIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc3NldV9pbmZvX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0Jc3RydWN0IHNzZXVfZGV2X2lu Zm8gKnNzZXUgPSAmbWt3cml0ZV9kZXZpY2VfaW5mbyhkZXZfcHJpdiktPnNzZXU7Cj4gKwlzdHJ1 Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1Owo+ ICAgCXUzMiBmdXNlOwo+ICAgCj4gICAJZnVzZSA9IEk5MTVfUkVBRChDSFZfRlVTRV9HVCk7Cj4g QEAgLTMzNCw3ICszMzQsNyBAQCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X3NzZXVfaW5mb19pbml0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIHN0YXRpYyB2b2lkIGdlbjlf c3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+ ICAgCXN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbyA9IG1rd3JpdGVfZGV2aWNlX2luZm8o ZGV2X3ByaXYpOwo+IC0Jc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmaW5mby0+c3NldTsK PiArCXN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdikt PnNzZXU7Cj4gICAJaW50IHMsIHNzOwo+ICAgCXUzMiBmdXNlMiwgZXVfZGlzYWJsZSwgc3Vic2xp Y2VfbWFzazsKPiAgIAljb25zdCB1OCBldV9tYXNrID0gMHhmZjsKPiBAQCAtNDM3LDcgKzQzNyw3 IEBAIHN0YXRpYyB2b2lkIGdlbjlfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ICAgCj4gICBzdGF0aWMgdm9pZCBicm9hZHdlbGxfc3NldV9pbmZvX2lu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0Jc3RydWN0IHNz ZXVfZGV2X2luZm8gKnNzZXUgPSAmbWt3cml0ZV9kZXZpY2VfaW5mbyhkZXZfcHJpdiktPnNzZXU7 Cj4gKwlzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZSVU5USU1FX0lORk8oZGV2X3ByaXYp LT5zc2V1Owo+ICAgCWludCBzLCBzczsKPiAgIAl1MzIgZnVzZTIsIHN1YnNsaWNlX21hc2ssIGV1 X2Rpc2FibGVbM107IC8qIHNfbWF4ICovCj4gICAKPiBAQCAtNTE5LDggKzUxOSw3IEBAIHN0YXRp YyB2b2lkIGJyb2Fkd2VsbF9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gICAKPiAgIHN0YXRpYyB2b2lkIGhhc3dlbGxfc3NldV9pbmZvX2luaXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2Rl dmljZV9pbmZvICppbmZvID0gbWt3cml0ZV9kZXZpY2VfaW5mbyhkZXZfcHJpdik7Cj4gLQlzdHJ1 Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZpbmZvLT5zc2V1Owo+ICsJc3RydWN0IHNzZXVfZGV2 X2luZm8gKnNzZXUgPSAmUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldTsKPiAgIAl1MzIgZnVz ZTE7Cj4gICAJaW50IHMsIHNzOwo+ICAgCj4gQEAgLTUyOCw5ICs1MjcsOSBAQCBzdGF0aWMgdm9p ZCBoYXN3ZWxsX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiAgIAkgKiBUaGVyZSBpc24ndCBhIHJlZ2lzdGVyIHRvIHRlbGwgdXMgaG93IG1hbnkgc2xp Y2VzL3N1YnNsaWNlcy4gV2UKPiAgIAkgKiB3b3JrIG9mZiB0aGUgUENJLWlkcyBoZXJlLgo+ICAg CSAqLwo+IC0Jc3dpdGNoIChpbmZvLT5ndCkgewo+ICsJc3dpdGNoIChJTlRFTF9JTkZPKGRldl9w cml2KS0+Z3QpIHsKPiAgIAlkZWZhdWx0Ogo+IC0JCU1JU1NJTkdfQ0FTRShpbmZvLT5ndCk7Cj4g KwkJTUlTU0lOR19DQVNFKElOVEVMX0lORk8oZGV2X3ByaXYpLT5ndCk7Cj4gICAJCS8qIGZhbGwg dGhyb3VnaCAqLwo+ICAgCWNhc2UgMToKPiAgIAkJc3NldS0+c2xpY2VfbWFzayA9IEJJVCgwKTsK PiBAQCAtNzQzLDI1ICs3NDIsMjYgQEAgdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2lu aXQoc3RydWN0IGludGVsX2RldmljZV9pbmZvICppbmZvKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gICAJCWNvbnRhaW5lcl9vZihpbmZvLCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSwgaW5mbyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfcnVudGltZV9pbmZvICpy dW50aW1lID0gUlVOVElNRV9JTkZPKGRldl9wcml2KTsKPiAgIAllbnVtIHBpcGUgcGlwZTsKPiAg IAo+ICAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwKSB7Cj4gICAJCWZvcl9lYWNoX3Bp cGUoZGV2X3ByaXYsIHBpcGUpCj4gLQkJCWluZm8tPm51bV9zY2FsZXJzW3BpcGVdID0gMjsKPiAr CQkJcnVudGltZS0+bnVtX3NjYWxlcnNbcGlwZV0gPSAyOwo+ICAgCX0gZWxzZSBpZiAoSVNfR0VO KGRldl9wcml2LCA5KSkgewo+IC0JCWluZm8tPm51bV9zY2FsZXJzW1BJUEVfQV0gPSAyOwo+IC0J CWluZm8tPm51bV9zY2FsZXJzW1BJUEVfQl0gPSAyOwo+IC0JCWluZm8tPm51bV9zY2FsZXJzW1BJ UEVfQ10gPSAxOwo+ICsJCXJ1bnRpbWUtPm51bV9zY2FsZXJzW1BJUEVfQV0gPSAyOwo+ICsJCXJ1 bnRpbWUtPm51bV9zY2FsZXJzW1BJUEVfQl0gPSAyOwo+ICsJCXJ1bnRpbWUtPm51bV9zY2FsZXJz W1BJUEVfQ10gPSAxOwo+ICAgCX0KPiAgIAo+ICAgCUJVSUxEX0JVR19PTihJOTE1X05VTV9FTkdJ TkVTID4gQklUU19QRVJfVFlQRShpbnRlbF9yaW5nX21hc2tfdCkpOwo+ICAgCj4gICAJaWYgKElT X0dFTihkZXZfcHJpdiwgMTEpKQo+ICAgCQlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKQo+ IC0JCQlpbmZvLT5udW1fc3ByaXRlc1twaXBlXSA9IDY7Cj4gKwkJCXJ1bnRpbWUtPm51bV9zcHJp dGVzW3BpcGVdID0gNjsKPiAgIAllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDEwKSB8fCBJU19H RU1JTklMQUtFKGRldl9wcml2KSkKPiAgIAkJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkK PiAtCQkJaW5mby0+bnVtX3Nwcml0ZXNbcGlwZV0gPSAzOwo+ICsJCQlydW50aW1lLT5udW1fc3By aXRlc1twaXBlXSA9IDM7Cj4gICAJZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPiAg IAkJLyoKPiAgIAkJICogU2t5bGFrZSBhbmQgQnJveHRvbiBjdXJyZW50bHkgZG9uJ3QgZXhwb3Nl IHRoZSB0b3Btb3N0IHBsYW5lIGFzIGl0cwo+IEBAIC03NzIsMTUgKzc3MiwxNSBAQCB2b2lkIGlu dGVsX2RldmljZV9pbmZvX3J1bnRpbWVfaW5pdChzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmlu Zm8pCj4gICAJCSAqIGRvd24gdGhlIGxpbmUuCj4gICAJCSAqLwo+ICAgCj4gLQkJaW5mby0+bnVt X3Nwcml0ZXNbUElQRV9BXSA9IDI7Cj4gLQkJaW5mby0+bnVtX3Nwcml0ZXNbUElQRV9CXSA9IDI7 Cj4gLQkJaW5mby0+bnVtX3Nwcml0ZXNbUElQRV9DXSA9IDE7Cj4gKwkJcnVudGltZS0+bnVtX3Nw cml0ZXNbUElQRV9BXSA9IDI7Cj4gKwkJcnVudGltZS0+bnVtX3Nwcml0ZXNbUElQRV9CXSA9IDI7 Cj4gKwkJcnVudGltZS0+bnVtX3Nwcml0ZXNbUElQRV9DXSA9IDE7Cj4gICAJfSBlbHNlIGlmIChJ U19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ICAg CQlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKQo+IC0JCQlpbmZvLT5udW1fc3ByaXRlc1tw aXBlXSA9IDI7Cj4gKwkJCXJ1bnRpbWUtPm51bV9zcHJpdGVzW3BpcGVdID0gMjsKPiAgIAl9IGVs c2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNSB8fCBJU19HNFgoZGV2X3ByaXYpKSB7Cj4g ICAJCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpCj4gLQkJCWluZm8tPm51bV9zcHJpdGVz W3BpcGVdID0gMTsKPiArCQkJcnVudGltZS0+bnVtX3Nwcml0ZXNbcGlwZV0gPSAxOwo+ICAgCX0K PiAgIAo+ICAgCWlmIChpOTE1X21vZHBhcmFtcy5kaXNhYmxlX2Rpc3BsYXkpIHsKPiBAQCAtODY0 LDcgKzg2NCw3IEBAIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9fcnVudGltZV9pbml0KHN0cnVjdCBp bnRlbF9kZXZpY2VfaW5mbyAqaW5mbykKPiAgIAl9Cj4gICAKPiAgIAkvKiBJbml0aWFsaXplIGNv bW1hbmQgc3RyZWFtIHRpbWVzdGFtcCBmcmVxdWVuY3kgKi8KPiAtCWluZm8tPmNzX3RpbWVzdGFt cF9mcmVxdWVuY3lfa2h6ID0gcmVhZF90aW1lc3RhbXBfZnJlcXVlbmN5KGRldl9wcml2KTsKPiAr CXJ1bnRpbWUtPmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lfa2h6ID0gcmVhZF90aW1lc3RhbXBfZnJl cXVlbmN5KGRldl9wcml2KTsKPiAgIH0KPiAgIAo+ICAgdm9pZCBpbnRlbF9kcml2ZXJfY2Fwc19w cmludChjb25zdCBzdHJ1Y3QgaW50ZWxfZHJpdmVyX2NhcHMgKmNhcHMsCj4gQEAgLTg5MywxNiAr ODkzLDE2IEBAIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9faW5pdF9tbWlvKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAo+ICAgCW1lZGlhX2Z1c2UgPSB+STkxNV9SRUFEKEdF TjExX0dUX1ZFQk9YX1ZEQk9YX0RJU0FCTEUpOwo+ICAgCj4gLQlpbmZvLT52ZGJveF9lbmFibGUg PSBtZWRpYV9mdXNlICYgR0VOMTFfR1RfVkRCT1hfRElTQUJMRV9NQVNLOwo+IC0JaW5mby0+dmVi b3hfZW5hYmxlID0gKG1lZGlhX2Z1c2UgJiBHRU4xMV9HVF9WRUJPWF9ESVNBQkxFX01BU0spID4+ Cj4gLQkJCSAgICAgR0VOMTFfR1RfVkVCT1hfRElTQUJMRV9TSElGVDsKPiArCVJVTlRJTUVfSU5G TyhkZXZfcHJpdiktPnZkYm94X2VuYWJsZSA9IG1lZGlhX2Z1c2UgJiBHRU4xMV9HVF9WREJPWF9E SVNBQkxFX01BU0s7Cj4gKwlSVU5USU1FX0lORk8oZGV2X3ByaXYpLT52ZWJveF9lbmFibGUgPSAo bWVkaWFfZnVzZSAmIEdFTjExX0dUX1ZFQk9YX0RJU0FCTEVfTUFTSykgPj4KPiArCQlHRU4xMV9H VF9WRUJPWF9ESVNBQkxFX1NISUZUOwo+ICAgCj4gLQlEUk1fREVCVUdfRFJJVkVSKCJ2ZGJveCBl bmFibGU6ICUwNHhcbiIsIGluZm8tPnZkYm94X2VuYWJsZSk7Cj4gKwlEUk1fREVCVUdfRFJJVkVS KCJ2ZGJveCBlbmFibGU6ICUwNHhcbiIsIFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnZkYm94X2Vu YWJsZSk7Cj4gICAJZm9yIChpID0gMDsgaSA8IEk5MTVfTUFYX1ZDUzsgaSsrKSB7Cj4gICAJCWlm ICghSEFTX0VOR0lORShkZXZfcHJpdiwgX1ZDUyhpKSkpCj4gICAJCQljb250aW51ZTsKPiAgIAo+ IC0JCWlmICghKEJJVChpKSAmIGluZm8tPnZkYm94X2VuYWJsZSkpIHsKPiArCQlpZiAoIShCSVQo aSkgJiBSVU5USU1FX0lORk8oZGV2X3ByaXYpLT52ZGJveF9lbmFibGUpKSB7Cj4gICAJCQlpbmZv LT5yaW5nX21hc2sgJj0gfkVOR0lORV9NQVNLKF9WQ1MoaSkpOwo+ICAgCQkJRFJNX0RFQlVHX0RS SVZFUigidmNzJXUgZnVzZWQgb2ZmXG4iLCBpKTsKPiAgIAkJCWNvbnRpbnVlOwo+IEBAIC05MTMs MTUgKzkxMywxNSBAQCB2b2lkIGludGVsX2RldmljZV9pbmZvX2luaXRfbW1pbyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJCSAqIGhvb2tlZCB1cCB0byBhbiBTRkMgKFNj YWxlciAmIEZvcm1hdCBDb252ZXJ0ZXIpIHVuaXQuCj4gICAJCSAqLwo+ICAgCQlpZiAobG9naWNh bF92ZGJveCsrICUgMiA9PSAwKQo+IC0JCQlpbmZvLT52ZGJveF9zZmNfYWNjZXNzIHw9IEJJVChp KTsKPiArCQkJUlVOVElNRV9JTkZPKGRldl9wcml2KS0+dmRib3hfc2ZjX2FjY2VzcyB8PSBCSVQo aSk7Cj4gICAJfQo+ICAgCj4gLQlEUk1fREVCVUdfRFJJVkVSKCJ2ZWJveCBlbmFibGU6ICUwNHhc biIsIGluZm8tPnZlYm94X2VuYWJsZSk7Cj4gKwlEUk1fREVCVUdfRFJJVkVSKCJ2ZWJveCBlbmFi bGU6ICUwNHhcbiIsIFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnZlYm94X2VuYWJsZSk7Cj4gICAJ Zm9yIChpID0gMDsgaSA8IEk5MTVfTUFYX1ZFQ1M7IGkrKykgewo+ICAgCQlpZiAoIUhBU19FTkdJ TkUoZGV2X3ByaXYsIF9WRUNTKGkpKSkKPiAgIAkJCWNvbnRpbnVlOwo+ICAgCj4gLQkJaWYgKCEo QklUKGkpICYgaW5mby0+dmVib3hfZW5hYmxlKSkgewo+ICsJCWlmICghKEJJVChpKSAmIFJVTlRJ TUVfSU5GTyhkZXZfcHJpdiktPnZlYm94X2VuYWJsZSkpIHsKPiAgIAkJCWluZm8tPnJpbmdfbWFz ayAmPSB+RU5HSU5FX01BU0soX1ZFQ1MoaSkpOwo+ICAgCQkJRFJNX0RFQlVHX0RSSVZFUigidmVj cyV1IGZ1c2VkIG9mZlxuIiwgaSk7Cj4gICAJCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RldmljZV9pbmZvLmgKPiBpbmRleCBkZDM0Zjk3NGE4NTcuLmZhODFlZTE1ZGZhMSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAo+IEBAIC0xNTIsMTIgKzE1 MiwxMCBAQCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyB7Cj4gICB0eXBlZGVmIHU4IGludGVsX3Jpbmdf bWFza190Owo+ICAgCj4gICBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gewo+IC0JdTE2IGRldmlj ZV9pZDsKPiAgIAl1MTYgZ2VuX21hc2s7Cj4gICAKPiAgIAl1OCBnZW47Cj4gICAJdTggZ3Q7IC8q IEdUIG51bWJlciwgMCBpZiB1bmRlZmluZWQgKi8KPiAtCXU4IG51bV9yaW5nczsKPiAgIAlpbnRl bF9yaW5nX21hc2tfdCByaW5nX21hc2s7IC8qIFJpbmdzIHN1cHBvcnRlZCBieSB0aGUgSFcgKi8K PiAgIAo+ICAgCWVudW0gaW50ZWxfcGxhdGZvcm0gcGxhdGZvcm07Cj4gQEAgLTE2OSw4ICsxNjcs NiBAQCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gewo+ICAgCXUzMiBkaXNwbGF5X21taW9fb2Zm c2V0Owo+ICAgCj4gICAJdTggbnVtX3BpcGVzOwo+IC0JdTggbnVtX3Nwcml0ZXNbSTkxNV9NQVhf UElQRVNdOwo+IC0JdTggbnVtX3NjYWxlcnNbSTkxNV9NQVhfUElQRVNdOwo+ICAgCj4gICAjZGVm aW5lIERFRklORV9GTEFHKG5hbWUpIHU4IG5hbWU6MQo+ICAgCURFVl9JTkZPX0ZPUl9FQUNIX0ZM QUcoREVGSU5FX0ZMQUcpOwo+IEBAIC0xODksNiArMTg1LDIwIEBAIHN0cnVjdCBpbnRlbF9kZXZp Y2VfaW5mbyB7Cj4gICAJaW50IHRyYW5zX29mZnNldHNbSTkxNV9NQVhfVFJBTlNDT0RFUlNdOwo+ ICAgCWludCBjdXJzb3Jfb2Zmc2V0c1tJOTE1X01BWF9QSVBFU107Cj4gICAKPiArCXN0cnVjdCBj b2xvcl9sdXRzIHsKPiArCQl1MTYgZGVnYW1tYV9sdXRfc2l6ZTsKPiArCQl1MTYgZ2FtbWFfbHV0 X3NpemU7Cj4gKwl9IGNvbG9yOwo+ICt9Owo+ICsKPiArc3RydWN0IGludGVsX3J1bnRpbWVfaW5m byB7Cj4gKwl1MTYgZGV2aWNlX2lkOwo+ICsKPiArCXU4IG51bV9zcHJpdGVzW0k5MTVfTUFYX1BJ UEVTXTsKPiArCXU4IG51bV9zY2FsZXJzW0k5MTVfTUFYX1BJUEVTXTsKPiArCj4gKwl1OCBudW1f cmluZ3M7Cj4gKwo+ICAgCS8qIFNsaWNlL3N1YnNsaWNlL0VVIGluZm8gKi8KPiAgIAlzdHJ1Y3Qg c3NldV9kZXZfaW5mbyBzc2V1Owo+ICAgCj4gQEAgLTIwMCwxMSArMjEwLDYgQEAgc3RydWN0IGlu dGVsX2RldmljZV9pbmZvIHsKPiAgIAo+ICAgCS8qIE1lZGlhIGVuZ2luZSBhY2Nlc3MgdG8gU0ZD IHBlciBpbnN0YW5jZSAqLwo+ICAgCXU4IHZkYm94X3NmY19hY2Nlc3M7Cj4gLQo+IC0Jc3RydWN0 IGNvbG9yX2x1dHMgewo+IC0JCXUxNiBkZWdhbW1hX2x1dF9zaXplOwo+IC0JCXUxNiBnYW1tYV9s dXRfc2l6ZTsKPiAtCX0gY29sb3I7Cj4gICB9Owo+ICAgCj4gICBzdHJ1Y3QgaW50ZWxfZHJpdmVy X2NhcHMgewo+IEBAIC0yNjYsNyArMjcxLDcgQEAgdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19kdW1w KGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbywKPiAgIAkJCSAgICBzdHJ1Y3Qg ZHJtX3ByaW50ZXIgKnApOwo+ICAgdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19kdW1wX2ZsYWdzKGNv bnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbywKPiAgIAkJCQkgIHN0cnVjdCBkcm1f cHJpbnRlciAqcCk7Cj4gLXZvaWQgaW50ZWxfZGV2aWNlX2luZm9fZHVtcF9ydW50aW1lKGNvbnN0 IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbywKPiArdm9pZCBpbnRlbF9kZXZpY2VfaW5m b19kdW1wX3J1bnRpbWUoY29uc3Qgc3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5mbywKPiAg IAkJCQkgICAgc3RydWN0IGRybV9wcmludGVyICpwKTsKPiAgIHZvaWQgaW50ZWxfZGV2aWNlX2lu Zm9fZHVtcF90b3BvbG9neShjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwKPiAgIAkJ CQkgICAgIHN0cnVjdCBkcm1fcHJpbnRlciAqcCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+IGluZGV4IGYwYjQ4MGZiYTk4MC4uM2RmN2RiNzA2ZDQ3IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xNDA2MCw3ICsxNDA2MCw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2NydGNfaW5pdF9zY2FsZXJzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwo+ICAgCWludCBpOwo+ICAgCj4gLQljcnRjLT5udW1fc2NhbGVycyA9IGRldl9wcml2 LT5pbmZvLm51bV9zY2FsZXJzW2NydGMtPnBpcGVdOwo+ICsJY3J0Yy0+bnVtX3NjYWxlcnMgPSBS VU5USU1FX0lORk8oZGV2X3ByaXYpLT5udW1fc2NhbGVyc1tjcnRjLT5waXBlXTsKPiAgIAlpZiAo IWNydGMtPm51bV9zY2FsZXJzKQo+ICAgCQlyZXR1cm47Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5oCj4gaW5kZXggNDI2MjQ1Mjk2M2IzLi5jN2MwNjg2NjIyODggMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCj4gQEAgLTEyMSw3ICsxMjEsNyBAQCBl bnVtIGk5eHhfcGxhbmVfaWQgewo+ICAgfTsKPiAgIAo+ICAgI2RlZmluZSBwbGFuZV9uYW1lKHAp ICgocCkgKyAnQScpCj4gLSNkZWZpbmUgc3ByaXRlX25hbWUocCwgcykgKChwKSAqIElOVEVMX0lO Rk8oZGV2X3ByaXYpLT5udW1fc3ByaXRlc1socCldICsgKHMpICsgJ0EnKQo+ICsjZGVmaW5lIHNw cml0ZV9uYW1lKHAsIHMpICgocCkgKiBSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5udW1fc3ByaXRl c1socCldICsgKHMpICsgJ0EnKQo+ICAgCj4gICAvKgo+ICAgICogUGVyLXBpcGUgcGxhbmUgaWRl bnRpZmllci4KPiBAQCAtMzExLDEyICszMTEsMTIgQEAgc3RydWN0IGludGVsX2xpbmtfbV9uIHsK PiAgIAo+ICAgI2RlZmluZSBmb3JfZWFjaF91bml2ZXJzYWxfcGxhbmUoX19kZXZfcHJpdiwgX19w aXBlLCBfX3ApCQlcCj4gICAJZm9yICgoX19wKSA9IDA7CQkJCQkJCVwKPiAtCSAgICAgKF9fcCkg PCBJTlRFTF9JTkZPKF9fZGV2X3ByaXYpLT5udW1fc3ByaXRlc1soX19waXBlKV0gKyAxOwlcCj4g KwkgICAgIChfX3ApIDwgUlVOVElNRV9JTkZPKF9fZGV2X3ByaXYpLT5udW1fc3ByaXRlc1soX19w aXBlKV0gKyAxOwlcCj4gICAJICAgICAoX19wKSsrKQo+ICAgCj4gICAjZGVmaW5lIGZvcl9lYWNo X3Nwcml0ZShfX2Rldl9wcml2LCBfX3AsIF9fcykJCQkJXAo+ICAgCWZvciAoKF9fcykgPSAwOwkJ CQkJCQlcCj4gLQkgICAgIChfX3MpIDwgSU5URUxfSU5GTyhfX2Rldl9wcml2KS0+bnVtX3Nwcml0 ZXNbKF9fcCldOwlcCj4gKwkgICAgIChfX3MpIDwgUlVOVElNRV9JTkZPKF9fZGV2X3ByaXYpLT5u dW1fc3ByaXRlc1soX19wKV07CVwKPiAgIAkgICAgIChfX3MpKyspCj4gICAKPiAgICNkZWZpbmUg Zm9yX2VhY2hfcG9ydF9tYXNrZWQoX19wb3J0LCBfX3BvcnRzX21hc2spIFwKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+IGluZGV4IDE0NjJiYjQ5ZjQyMC4uMDIwMGU1ZTIw MTY4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBAQCAtMzkz LDcgKzM5Myw3IEBAIGludCBpbnRlbF9lbmdpbmVzX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJCWdvdG8gY2xlYW51cDsKPiAgIAl9Cj4gICAKPiAtCWRl dmljZV9pbmZvLT5udW1fcmluZ3MgPSBod2VpZ2h0MzIobWFzayk7Cj4gKwlSVU5USU1FX0lORk8o ZGV2X3ByaXYpLT5udW1fcmluZ3MgPSBod2VpZ2h0MzIobWFzayk7Cj4gICAKPiAgIAlpOTE1X2No ZWNrX2FuZF9jbGVhcl9mYXVsdHMoZGV2X3ByaXYpOwo+ICAgCj4gQEAgLTc4Myw3ICs3ODMsNyBA QCBjb25zdCBjaGFyICppOTE1X2NhY2hlX2xldmVsX3N0cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSwgaW50IHR5cGUpCj4gICAKPiAgIHUzMiBpbnRlbF9jYWxjdWxhdGVfbWNyX3Nfc3Nf c2VsZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIHsKPiAtCWNvbnN0 IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJihJTlRFTF9JTkZPKGRldl9wcml2KS0+c3Nl dSk7Cj4gKwljb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZSVU5USU1FX0lORk8o ZGV2X3ByaXYpLT5zc2V1Owo+ICAgCXUzMiBtY3Jfc19zc19zZWxlY3Q7Cj4gICAJdTMyIHNsaWNl ID0gZmxzKHNzZXUtPnNsaWNlX21hc2spOwo+ICAgCXUzMiBzdWJzbGljZSA9IGZscyhzc2V1LT5z dWJzbGljZV9tYXNrW3NsaWNlXSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCBm ZjA4ZTVkNjAwZDQuLjZjOThmYjdjZWJmMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j Cj4gQEAgLTIzMTIsOSArMjMxMiw5IEBAIGludCBsb2dpY2FsX3hjc19yaW5nX2luaXQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgc3RhdGljIHUzMgo+ICAgbWFrZV9ycGNzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIHsKPiAtCWJvb2wgc3Vic2xpY2Vf cGcgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5oYXNfc3Vic2xpY2VfcGc7Cj4gLQl1OCBz bGljZXMgPSBod2VpZ2h0OChJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5zbGljZV9tYXNrKTsK PiAtCXU4IHN1YnNsaWNlcyA9IGh3ZWlnaHQ4KElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1LnN1 YnNsaWNlX21hc2tbMF0pOwo+ICsJYm9vbCBzdWJzbGljZV9wZyA9IFJVTlRJTUVfSU5GTyhkZXZf cHJpdiktPnNzZXUuaGFzX3N1YnNsaWNlX3BnOwo+ICsJdTggc2xpY2VzID0gaHdlaWdodDgoUlVO VElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5zbGljZV9tYXNrKTsKPiArCXU4IHN1YnNsaWNlcyA9 IGh3ZWlnaHQ4KFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXUuc3Vic2xpY2VfbWFza1swXSk7 Cj4gICAJdTMyIHJwY3MgPSAwOwo+ICAgCj4gICAJLyoKPiBAQCAtMjM2Miw3ICsyMzYyLDcgQEAg bWFrZV9ycGNzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAkgKiBtdXN0 IG1ha2UgYW4gZXhwbGljaXQgcmVxdWVzdCB0aHJvdWdoIFJQQ1MgZm9yIGZ1bGwKPiAgIAkgKiBl bmFibGVtZW50Lgo+ICAgCSovCj4gLQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUuaGFz X3NsaWNlX3BnKSB7Cj4gKwlpZiAoUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5oYXNfc2xp Y2VfcGcpIHsKPiAgIAkJdTMyIG1hc2ssIHZhbCA9IHNsaWNlczsKPiAgIAo+ICAgCQlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewo+IEBAIC0yMzkwLDE3ICsyMzkwLDE3IEBAIG1ha2Vf cnBjcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJCXJwY3MgfD0gR0VO OF9SUENTX0VOQUJMRSB8IEdFTjhfUlBDU19TU19DTlRfRU5BQkxFIHwgdmFsOwo+ICAgCX0KPiAg IAo+IC0JaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1Lmhhc19ldV9wZykgewo+ICsJaWYg KFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXUuaGFzX2V1X3BnKSB7Cj4gICAJCXUzMiB2YWw7 Cj4gICAKPiAtCQl2YWwgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5ldV9wZXJfc3Vic2xp Y2UgPDwKPiArCQl2YWwgPSBSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1LmV1X3Blcl9zdWJz bGljZSA8PAo+ICAgCQkgICAgICBHRU44X1JQQ1NfRVVfTUlOX1NISUZUOwo+ICAgCQlHRU1fQlVH X09OKHZhbCAmIH5HRU44X1JQQ1NfRVVfTUlOX01BU0spOwo+ICAgCQl2YWwgJj0gR0VOOF9SUENT X0VVX01JTl9NQVNLOwo+ICAgCj4gICAJCXJwY3MgfD0gdmFsOwo+ICAgCj4gLQkJdmFsID0gSU5U RUxfSU5GTyhkZXZfcHJpdiktPnNzZXUuZXVfcGVyX3N1YnNsaWNlIDw8Cj4gKwkJdmFsID0gUlVO VElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5ldV9wZXJfc3Vic2xpY2UgPDwKPiAgIAkJICAgICAg R0VOOF9SUENTX0VVX01BWF9TSElGVDsKPiAgIAkJR0VNX0JVR19PTih2YWwgJiB+R0VOOF9SUENT X0VVX01BWF9NQVNLKTsKPiAgIAkJdmFsICY9IEdFTjhfUlBDU19FVV9NQVhfTUFTSzsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCAyYTZmZmI4Yjk3NWEuLjgzYjAxY2RlODExMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBAIC03Mjc0LDcgKzcyNzQsNyBAQCBzdGF0aWMg aW50IGNoZXJyeXZpZXdfcnBzX21heF9mcmVxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgIAo+ICAgCXZhbCA9IHZsdl9wdW5pdF9yZWFkKGRldl9wcml2LCBGQl9HRlhfRk1B WF9BVF9WTUFYX0ZVU0UpOwo+ICAgCj4gLQlzd2l0Y2ggKElOVEVMX0lORk8oZGV2X3ByaXYpLT5z c2V1LmV1X3RvdGFsKSB7Cj4gKwlzd2l0Y2ggKFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXUu ZXVfdG90YWwpIHsKPiAgIAljYXNlIDg6Cj4gICAJCS8qICgyICogNCkgY29uZmlnICovCj4gICAJ CXJwMCA9ICh2YWwgPj4gRkJfR0ZYX0ZNQVhfQVRfVk1BWF8yU1M0RVVfRlVTRV9TSElGVCk7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IGluZGV4IGZjMWUyOTMwNTk1 MS4uODdkM2QzNjkwZDhhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYwo+IEBAIC0xNjA1LDcgKzE2MDUsNyBAQCBzdGF0aWMgaW5saW5lIGludCBtaV9zZXRfY29u dGV4dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyIGZsYWdzKQo+ICAgCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJxLT5lbmdpbmU7Cj4gICAJZW51bSBpbnRlbF9lbmdpbmVf aWQgaWQ7Cj4gICAJY29uc3QgaW50IG51bV9yaW5ncyA9Cj4gLQkJSVNfSFNXX0dUMShpOTE1KSA/ IElOVEVMX0lORk8oaTkxNSktPm51bV9yaW5ncyAtIDEgOiAwOwo+ICsJCUlTX0hTV19HVDEoaTkx NSkgPyBSVU5USU1FX0lORk8oaTkxNSktPm51bV9yaW5ncyAtIDEgOiAwOwo+ICAgCWJvb2wgZm9y Y2VfcmVzdG9yZSA9IGZhbHNlOwo+ICAgCWludCBsZW47Cj4gICAJdTMyICpjczsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXggMzI2MDZkNzk1YWYzLi5iNjkz OTg1NjA0NmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4g QEAgLTk1LDExICs5NSwxMSBAQCBoYW5nY2hlY2tfYWN0aW9uX3RvX3N0cihjb25zdCBlbnVtIGlu dGVsX2VuZ2luZV9oYW5nY2hlY2tfYWN0aW9uIGEpCj4gICAKPiAgICNkZWZpbmUgaW5zdGRvbmVf c2xpY2VfbWFzayhkZXZfcHJpdl9fKSBcCj4gICAJKElTX0dFTihkZXZfcHJpdl9fLCA3KSA/IFwK PiAtCSAxIDogSU5URUxfSU5GTyhkZXZfcHJpdl9fKS0+c3NldS5zbGljZV9tYXNrKQo+ICsJIDEg OiBSVU5USU1FX0lORk8oZGV2X3ByaXZfXyktPnNzZXUuc2xpY2VfbWFzaykKPiAgIAo+ICAgI2Rl ZmluZSBpbnN0ZG9uZV9zdWJzbGljZV9tYXNrKGRldl9wcml2X18pIFwKPiAgIAkoSVNfR0VOKGRl dl9wcml2X18sIDcpID8gXAo+IC0JIDEgOiBJTlRFTF9JTkZPKGRldl9wcml2X18pLT5zc2V1LnN1 YnNsaWNlX21hc2tbMF0pCj4gKwkgMSA6IFJVTlRJTUVfSU5GTyhkZXZfcHJpdl9fKS0+c3NldS5z dWJzbGljZV9tYXNrWzBdKQo+ICAgCj4gICAjZGVmaW5lIGZvcl9lYWNoX2luc3Rkb25lX3NsaWNl X3N1YnNsaWNlKGRldl9wcml2X18sIHNsaWNlX18sIHN1YnNsaWNlX18pIFwKPiAgIAlmb3IgKChz bGljZV9fKSA9IDAsIChzdWJzbGljZV9fKSA9IDA7IFwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91 bmNvcmUuYwo+IGluZGV4IDU4MDBmMGNlMmM1Ny4uZTVlNWM2ZTllZDI4IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPiBAQCAtMTkzNCw3ICsxOTM0LDcgQEAgc3RhdGljIGlu dCBnZW42X3Jlc2V0X2VuZ2luZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAgc3RhdGljIHUzMiBnZW4xMV9sb2NrX3NmYyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gICAJCQkgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAt CXU4IHZkYm94X3NmY19hY2Nlc3MgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+dmRib3hfc2ZjX2Fj Y2VzczsKPiArCXU4IHZkYm94X3NmY19hY2Nlc3MgPSBSVU5USU1FX0lORk8oZGV2X3ByaXYpLT52 ZGJveF9zZmNfYWNjZXNzOwo+ICAgCWk5MTVfcmVnX3Qgc2ZjX2ZvcmNlZF9sb2NrLCBzZmNfZm9y Y2VkX2xvY2tfYWNrOwo+ICAgCXUzMiBzZmNfZm9yY2VkX2xvY2tfYml0LCBzZmNfZm9yY2VkX2xv Y2tfYWNrX2JpdDsKPiAgIAlpOTE1X3JlZ190IHNmY191c2FnZTsKPiBAQCAtMjAwMiw3ICsyMDAy LDcgQEAgc3RhdGljIHUzMiBnZW4xMV9sb2NrX3NmYyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gICBzdGF0aWMgdm9pZCBnZW4xMV91bmxvY2tfc2ZjKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAkJCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQo+ICAgewo+IC0JdTggdmRib3hfc2ZjX2FjY2VzcyA9IElOVEVMX0lORk8oZGV2X3By aXYpLT52ZGJveF9zZmNfYWNjZXNzOwo+ICsJdTggdmRib3hfc2ZjX2FjY2VzcyA9IFJVTlRJTUVf SU5GTyhkZXZfcHJpdiktPnZkYm94X3NmY19hY2Nlc3M7Cj4gICAJaTkxNV9yZWdfdCBzZmNfZm9y Y2VkX2xvY2s7Cj4gICAJdTMyIHNmY19mb3JjZWRfbG9ja19iaXQ7Cj4gICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29ya2Fyb3VuZHMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMKPiBpbmRleCA3YTg2MTgwNjU0OTEuLjQ4MGM1 M2EyZWNiNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJv dW5kcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29ya2Fyb3VuZHMuYwo+ IEBAIC0zNjYsNyArMzY2LDcgQEAgc3RhdGljIHZvaWQgc2tsX3R1bmVfaXpfaGFzaGluZyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJCSAqIE9ubHkgY29uc2lkZXIgc2xpY2Vz IHdoZXJlIG9uZSwgYW5kIG9ubHkgb25lLCBzdWJzbGljZSBoYXMgNwo+ICAgCQkgKiBFVXMKPiAg IAkJICovCj4gLQkJaWYgKCFpc19wb3dlcl9vZl8yKElOVEVMX0lORk8oaTkxNSktPnNzZXUuc3Vi c2xpY2VfN2V1W2ldKSkKPiArCQlpZiAoIWlzX3Bvd2VyX29mXzIoUlVOVElNRV9JTkZPKGk5MTUp LT5zc2V1LnN1YnNsaWNlXzdldVtpXSkpCj4gICAJCQljb250aW51ZTsKPiAgIAo+ICAgCQkvKgo+ IEBAIC0zNzUsNyArMzc1LDcgQEAgc3RhdGljIHZvaWQgc2tsX3R1bmVfaXpfaGFzaGluZyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJCSAqCj4gICAJCSAqIC0+ICAgIDAgPD0g c3MgPD0gMzsKPiAgIAkJICovCj4gLQkJc3MgPSBmZnMoSU5URUxfSU5GTyhpOTE1KS0+c3NldS5z dWJzbGljZV83ZXVbaV0pIC0gMTsKPiArCQlzcyA9IGZmcyhSVU5USU1FX0lORk8oaTkxNSktPnNz ZXUuc3Vic2xpY2VfN2V1W2ldKSAtIDE7Cj4gICAJCXZhbHNbaV0gPSAzIC0gc3M7Cj4gICAJfQo+ ICAgCj4gQEAgLTc0Myw3ICs3NDMsNyBAQCBzdGF0aWMgdm9pZCBjZmxfZ3Rfd29ya2Fyb3VuZHNf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgIAo+ICAgc3RhdGljIHZvaWQg d2FfaW5pdF9tY3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0J Y29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmKElOVEVMX0lORk8oZGV2X3ByaXYp LT5zc2V1KTsKPiArCWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVf SU5GTyhkZXZfcHJpdiktPnNzZXU7Cj4gICAJc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmRl dl9wcml2LT5ndF93YV9saXN0Owo+ICAgCXUzMiBtY3Jfc2xpY2Vfc3Vic2xpY2VfbWFzazsKPiAg IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1f Y29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRl eHQuYwo+IGluZGV4IDdkODIwNDNhZmYxMC4uZDAwY2RmM2MyOTM5IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCj4gQEAgLTYy Nyw3ICs2MjcsNyBAQCBzdGF0aWMgaW50IGlndF9jdHhfZXhlYyh2b2lkICphcmcpCj4gICAJCW5j b250ZXh0cysrOwo+ICAgCX0KPiAgIAlwcl9pbmZvKCJTdWJtaXR0ZWQgJWx1IGNvbnRleHRzIChh Y3Jvc3MgJXUgZW5naW5lcyksIGZpbGxpbmcgJWx1IGR3b3Jkc1xuIiwKPiAtCQluY29udGV4dHMs IElOVEVMX0lORk8oaTkxNSktPm51bV9yaW5ncywgbmR3b3Jkcyk7Cj4gKwkJbmNvbnRleHRzLCBS VU5USU1FX0lORk8oaTkxNSktPm51bV9yaW5ncywgbmR3b3Jkcyk7Cj4gICAKPiAgIAlkdyA9IDA7 Cj4gICAJbGlzdF9mb3JfZWFjaF9lbnRyeShvYmosICZvYmplY3RzLCBzdF9saW5rKSB7Cj4gQEAg LTczMiw3ICs3MzIsNyBAQCBzdGF0aWMgaW50IGlndF9jdHhfcmVhZG9ubHkodm9pZCAqYXJnKQo+ ICAgCQl9Cj4gICAJfQo+ICAgCXByX2luZm8oIlN1Ym1pdHRlZCAlbHUgZHdvcmRzIChhY3Jvc3Mg JXUgZW5naW5lcylcbiIsCj4gLQkJbmR3b3JkcywgSU5URUxfSU5GTyhpOTE1KS0+bnVtX3Jpbmdz KTsKPiArCQluZHdvcmRzLCBSVU5USU1FX0lORk8oaTkxNSktPm51bV9yaW5ncyk7Cj4gICAKPiAg IAlkdyA9IDA7Cj4gICAJbGlzdF9mb3JfZWFjaF9lbnRyeShvYmosICZvYmplY3RzLCBzdF9saW5r KSB7Cj4gQEAgLTEwNjQsNyArMTA2NCw3IEBAIHN0YXRpYyBpbnQgaWd0X3ZtX2lzb2xhdGlvbih2 b2lkICphcmcpCj4gICAJCWNvdW50ICs9IHRoaXM7Cj4gICAJfQo+ICAgCXByX2luZm8oIkNoZWNr ZWQgJWx1IHNjcmF0Y2ggb2Zmc2V0cyBhY3Jvc3MgJWQgZW5naW5lc1xuIiwKPiAtCQljb3VudCwg SU5URUxfSU5GTyhpOTE1KS0+bnVtX3JpbmdzKTsKPiArCQljb3VudCwgUlVOVElNRV9JTkZPKGk5 MTUpLT5udW1fcmluZ3MpOwo+ICAgCj4gICBvdXRfcnBtOgo+ICAgCWludGVsX3J1bnRpbWVfcG1f cHV0KGk5MTUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbHJjLmMK PiBpbmRleCBjYTQ2MWUzYTVmMjcuLjAwY2FhYTAwZjAyZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbHJjLmMKPiBAQCAtNTIyLDcgKzUyMiw3IEBAIHN0YXRp YyBpbnQgc21va2VfY3Jlc2NlbmRvKHN0cnVjdCBwcmVlbXB0X3Ntb2tlICpzbW9rZSwgdW5zaWdu ZWQgaW50IGZsYWdzKQo+ICAgCj4gICAJcHJfaW5mbygiU3VibWl0dGVkICVsdSBjcmVzY2VuZG86 JXggcmVxdWVzdHMgYWNyb3NzICVkIGVuZ2luZXMgYW5kICVkIGNvbnRleHRzXG4iLAo+ICAgCQlj b3VudCwgZmxhZ3MsCj4gLQkJSU5URUxfSU5GTyhzbW9rZS0+aTkxNSktPm51bV9yaW5ncywgc21v a2UtPm5jb250ZXh0KTsKPiArCQlSVU5USU1FX0lORk8oc21va2UtPmk5MTUpLT5udW1fcmluZ3Ms IHNtb2tlLT5uY29udGV4dCk7Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiBAQCAtNTUwLDcg KzU1MCw3IEBAIHN0YXRpYyBpbnQgc21va2VfcmFuZG9tKHN0cnVjdCBwcmVlbXB0X3Ntb2tlICpz bW9rZSwgdW5zaWduZWQgaW50IGZsYWdzKQo+ICAgCj4gICAJcHJfaW5mbygiU3VibWl0dGVkICVs dSByYW5kb206JXggcmVxdWVzdHMgYWNyb3NzICVkIGVuZ2luZXMgYW5kICVkIGNvbnRleHRzXG4i LAo+ICAgCQljb3VudCwgZmxhZ3MsCj4gLQkJSU5URUxfSU5GTyhzbW9rZS0+aTkxNSktPm51bV9y aW5ncywgc21va2UtPm5jb250ZXh0KTsKPiArCQlSVU5USU1FX0lORk8oc21va2UtPmk5MTUpLT5u dW1fcmluZ3MsIHNtb2tlLT5uY29udGV4dCk7Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiAK Ckxvb2tzIG9rYXkgdG8gbWUuCgpUaGUgb25seSB0aGluZyB3aGljaCB3b3JyaWVzIG1lIGlzIHRo YXQgb25lIGRheSB3ZSBlbmQgdXAgd2l0aCB0b28gCmxpdHRsZSBpbiBzdGF0aWMgdnMgcnVudGlt ZSBhbmQgZGVjaWRlIGhhdmluZyB0d28gc2VwYXJhdGUgc291cmNlcyBvZiAKaW5mbyBpcyBvbmx5 IGEgaGFzc2xlLiAoTGlrZSBpZiB0aGUgRENFL0xUTyBwYXRoIGVpdGhlciBkb2VzIG5vdCBoYXBw ZW4sIApvciBlbmRzIHVwIG5vdCBuZWVkaW5nIHRoaXMgY29tcGxldGVseS4pCgpJIHN1cHBvc2Ug aXQgaXMgd29ydGggZXhwbG9yaW5nIGFuZCB3ZSBjYW4gYWx3YXlzIGdvIGJhY2sgZWFzaWx5IGlm IGFsbCAKZWxzZSBmYWlscy4gSSBhdCBsZWFzdCB3YW50IHRvIGhhdmUgYW5vdGhlciBnbyBhdCB0 aGUgc3VicGxhdGZvcm0vZGV2aWQgCmNlbnRyYWxpemF0aW9uLgoKUmV2aWV3ZWQtYnk6IFR2cnRr byBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CgpSZWdhcmRzLAoKVHZydGtvCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=