From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/9] drm/i915: Convert hw state verifier to take more intel state Date: Mon, 24 Jun 2019 18:56:10 +0300 Message-ID: <20190624155610.GT5942@intel.com> References: <20190620214613.14481-1-maarten.lankhorst@linux.intel.com> <20190620214613.14481-4-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id CA6AC89CAD for ; Mon, 24 Jun 2019 15:56:13 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190620214613.14481-4-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdW4gMjAsIDIwMTkgYXQgMTE6NDY6MDdQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFu a2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5LmMgfCAxNTQgKysrKysrKysrLS0tLS0tLS0tLQo+ICAxIGZpbGUg Y2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgODAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA4NTVmOTBhODEz OTYuLmE1MThkNzRmODk4ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheS5jCj4gQEAgLTY5NzcsNyArNjk3Nyw3IEBAIHZvaWQgaW50ZWxfZW5jb2Rl cl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiAgCj4gIC8qIENyb3NzIGNo ZWNrIHRoZSBhY3R1YWwgaHcgc3RhdGUgd2l0aCBvdXIgb3duIG1vZGVzZXQgc3RhdGUgdHJhY2tp bmcgKGFuZCBpdCdzCj4gICAqIGludGVybmFsIGNvbnNpc3RlbmN5KS4gKi8KPiAtc3RhdGljIHZv aWQgaW50ZWxfY29ubmVjdG9yX3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCj4gK3N0YXRpYyB2b2lkIGludGVsX2Nvbm5lY3Rvcl92ZXJpZnlfc3RhdGUoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCQkJIHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsK PiBAQCAtNjk5NSw3ICs2OTk1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY29ubmVjdG9yX3Zlcmlm eV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJaWYgKCFjcnRj X3N0YXRlKQo+ICAJCQlyZXR1cm47Cj4gIAo+IC0JCUk5MTVfU1RBVEVfV0FSTighY3J0Y19zdGF0 ZS0+YWN0aXZlLAo+ICsJCUk5MTVfU1RBVEVfV0FSTighY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUs Cj4gIAkJICAgICAgImNvbm5lY3RvciBpcyBhY3RpdmUsIGJ1dCBhdHRhY2hlZCBjcnRjIGlzbid0 XG4iKTsKPiAgCj4gIAkJaWYgKCFlbmNvZGVyIHx8IGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VU UFVUX0RQX01TVCkKPiBAQCAtNzAwNyw3ICs3MDA3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY29u bmVjdG9yX3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4g IAkJSTkxNV9TVEFURV9XQVJOKGNvbm5fc3RhdGUtPmNydGMgIT0gZW5jb2Rlci0+YmFzZS5jcnRj LAo+ICAJCQkiYXR0YWNoZWQgZW5jb2RlciBjcnRjIGRpZmZlcnMgZnJvbSBjb25uZWN0b3IgY3J0 Y1xuIik7Cj4gIAl9IGVsc2Ugewo+IC0JCUk5MTVfU1RBVEVfV0FSTihjcnRjX3N0YXRlICYmIGNy dGNfc3RhdGUtPmFjdGl2ZSwKPiArCQlJOTE1X1NUQVRFX1dBUk4oY3J0Y19zdGF0ZSAmJiBjcnRj X3N0YXRlLT5iYXNlLmFjdGl2ZSwKPiAgCQkJImF0dGFjaGVkIGNydGMgaXMgYWN0aXZlLCBidXQg Y29ubmVjdG9yIGlzbid0XG4iKTsKPiAgCQlJOTE1X1NUQVRFX1dBUk4oIWNydGNfc3RhdGUgJiYg Y29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyLAo+ICAJCQkiYmVzdCBlbmNvZGVyIHNldCB3aXRob3V0 IGNydGMhXG4iKTsKPiBAQCAtMTI2OTUsMTAgKzEyNjk1LDEwIEBAIHN0YXRpYyB2b2lkIGludGVs X3BpcGVfY29uZmlnX3Nhbml0eV9jaGVjayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIHZlcmlmeV93bV9zdGF0ZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4gLQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19zdGF0 ZSkKPiArc3RhdGljIHZvaWQgdmVyaWZ5X3dtX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAo+ICsJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19zdGF0ZSkKCnMvbmV3X3N0 YXRlL25ld19jcnRjX3N0YXRlLyBldGMuIG1pZ2h0IGJlIG5pY2UgdG8gZG8gYXMgd2VsbC4KCj4g IHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ ZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IHNrbF9od19zdGF0ZSB7Cj4gIAkJc3RydWN0IHNrbF9k ZGJfZW50cnkgZGRiX3lbSTkxNV9NQVhfUExBTkVTXTsKPiAgCQlzdHJ1Y3Qgc2tsX2RkYl9lbnRy eSBkZGJfdXZbSTkxNV9NQVhfUExBTkVTXTsKPiBAQCAtMTI3MDgsMjEgKzEyNzA4LDIwIEBAIHN0 YXRpYyB2b2lkIHZlcmlmeV93bV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAlzdHJ1 Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpzd19kZGI7Cj4gIAlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnN3 X3dtOwo+ICAJc3RydWN0IHNrbF9kZGJfZW50cnkgKmh3X2RkYl9lbnRyeSwgKnN3X2RkYl9lbnRy eTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj KTsKPiAtCWNvbnN0IGVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiArCWNvbnN0 IGVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiAgCWludCBwbGFuZSwgbGV2ZWwsIG1heF9s ZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2X3ByaXYpOwo+ICAKPiAtCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpIDwgOSB8fCAhbmV3X3N0YXRlLT5hY3RpdmUpCj4gKwlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA8IDkgfHwgIW5ld19zdGF0ZS0+YmFzZS5hY3RpdmUpCj4gIAkJcmV0dXJuOwo+ICAK PiAgCWh3ID0ga3phbGxvYyhzaXplb2YoKmh3KSwgR0ZQX0tFUk5FTCk7Cj4gIAlpZiAoIWh3KQo+ ICAJCXJldHVybjsKPiAgCj4gLQlza2xfcGlwZV93bV9nZXRfaHdfc3RhdGUoaW50ZWxfY3J0Yywg Jmh3LT53bSk7Cj4gLQlzd193bSA9ICZ0b19pbnRlbF9jcnRjX3N0YXRlKG5ld19zdGF0ZSktPndt LnNrbC5vcHRpbWFsOwo+ICsJc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKGNydGMsICZody0+d20p Owo+ICsJc3dfd20gPSAmbmV3X3N0YXRlLT53bS5za2wub3B0aW1hbDsKPiAgCj4gLQlza2xfcGlw ZV9kZGJfZ2V0X2h3X3N0YXRlKGludGVsX2NydGMsIGh3LT5kZGJfeSwgaHctPmRkYl91dik7Cj4g Kwlza2xfcGlwZV9kZGJfZ2V0X2h3X3N0YXRlKGNydGMsIGh3LT5kZGJfeSwgaHctPmRkYl91dik7 Cj4gIAo+ICAJc2tsX2RkYl9nZXRfaHdfc3RhdGUoZGV2X3ByaXYsICZody0+ZGRiKTsKPiAgCXN3 X2RkYiA9ICZkZXZfcHJpdi0+d20uc2tsX2h3LmRkYjsKPiBAQCAtMTI3NzAsNyArMTI3NjksNyBA QCBzdGF0aWMgdm9pZCB2ZXJpZnlfd21fc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAK PiAgCQkvKiBEREIgKi8KPiAgCQlod19kZGJfZW50cnkgPSAmaHctPmRkYl95W3BsYW5lXTsKPiAt CQlzd19kZGJfZW50cnkgPSAmdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfc3RhdGUpLT53bS5za2wu cGxhbmVfZGRiX3lbcGxhbmVdOwo+ICsJCXN3X2RkYl9lbnRyeSA9ICZuZXdfc3RhdGUtPndtLnNr bC5wbGFuZV9kZGJfeVtwbGFuZV07Cj4gIAo+ICAJCWlmICghc2tsX2RkYl9lbnRyeV9lcXVhbCho d19kZGJfZW50cnksIHN3X2RkYl9lbnRyeSkpIHsKPiAgCQkJRFJNX0VSUk9SKCJtaXNtYXRjaCBp biBEREIgc3RhdGUgcGlwZSAlYyBwbGFuZSAlZCAoZXhwZWN0ZWQgKCV1LCV1KSwgZm91bmQgKCV1 LCV1KSlcbiIsCj4gQEAgLTEyODIyLDcgKzEyODIxLDcgQEAgc3RhdGljIHZvaWQgdmVyaWZ5X3dt X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCj4gIAkJLyogRERCICovCj4gIAkJaHdf ZGRiX2VudHJ5ID0gJmh3LT5kZGJfeVtQTEFORV9DVVJTT1JdOwo+IC0JCXN3X2RkYl9lbnRyeSA9 ICZ0b19pbnRlbF9jcnRjX3N0YXRlKG5ld19zdGF0ZSktPndtLnNrbC5wbGFuZV9kZGJfeVtQTEFO RV9DVVJTT1JdOwo+ICsJCXN3X2RkYl9lbnRyeSA9ICZuZXdfc3RhdGUtPndtLnNrbC5wbGFuZV9k ZGJfeVtQTEFORV9DVVJTT1JdOwo+ICAKPiAgCQlpZiAoIXNrbF9kZGJfZW50cnlfZXF1YWwoaHdf ZGRiX2VudHJ5LCBzd19kZGJfZW50cnkpKSB7Cj4gIAkJCURSTV9FUlJPUigibWlzbWF0Y2ggaW4g RERCIHN0YXRlIHBpcGUgJWMgY3Vyc29yIChleHBlY3RlZCAoJXUsJXUpLCBmb3VuZCAoJXUsJXUp KVxuIiwKPiBAQCAtMTI4MzYsMjMgKzEyODM1LDIyIEBAIHN0YXRpYyB2b2lkIHZlcmlmeV93bV9z dGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gLXZl cmlmeV9jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkgICAgICAg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+IC0JCSAgICAgICBzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCj4gK3ZlcmlmeV9jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUsCj4gKwkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOwo+ICAJaW50IGk7Cj4gIAo+IC0JZm9yX2VhY2hfbmV3 X2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBuZXdfY29ubl9zdGF0ZSwgaSkg ewo+ICsJZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm5l Y3RvciwgbmV3X2Nvbm5fc3RhdGUsIGkpIHsKPiAgCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7Cj4gLQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlID0gTlVMTDsKPiArCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9 IE5VTEw7Cj4gIAo+IC0JCWlmIChuZXdfY29ubl9zdGF0ZS0+Y3J0YyAhPSBjcnRjKQo+ICsJCWlm IChuZXdfY29ubl9zdGF0ZS0+Y3J0YyAhPSAmY3J0Yy0+YmFzZSkKPiAgCQkJY29udGludWU7Cj4g IAo+ICAJCWlmIChjcnRjKQo+IC0JCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2Ny dGNfc3RhdGUoc3RhdGUsIG5ld19jb25uX3N0YXRlLT5jcnRjKTsKPiArCQkJY3J0Y19zdGF0ZSA9 IGludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ICAKPiAgCQlp bnRlbF9jb25uZWN0b3JfdmVyaWZ5X3N0YXRlKGNydGNfc3RhdGUsIG5ld19jb25uX3N0YXRlKTsK PiAgCj4gQEAgLTEyODYyLDE0ICsxMjg2MCwxNCBAQCB2ZXJpZnlfY29ubmVjdG9yX3N0YXRlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gLXZlcmlmeV9l bmNvZGVyX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSkKPiArdmVyaWZ5X2VuY29kZXJfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJ c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yOwo+ICAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRl LCAqbmV3X2Nvbm5fc3RhdGU7Cj4gIAlpbnQgaTsKPiAgCj4gLQlmb3JfZWFjaF9pbnRlbF9lbmNv ZGVyKGRldiwgZW5jb2Rlcikgewo+ICsJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcigmZGV2X3ByaXYt PmRybSwgZW5jb2Rlcikgewo+ICAJCWJvb2wgZW5hYmxlZCA9IGZhbHNlLCBmb3VuZCA9IGZhbHNl Owo+ICAJCWVudW0gcGlwZSBwaXBlOwo+ICAKPiBAQCAtMTI4NzcsNyArMTI4NzUsNyBAQCB2ZXJp ZnlfZW5jb2Rlcl9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpCj4gIAkJCSAgICAgIGVuY29kZXItPmJhc2UuYmFzZS5pZCwKPiAgCQkJ ICAgICAgZW5jb2Rlci0+YmFzZS5uYW1lKTsKPiAgCj4gLQkJZm9yX2VhY2hfb2xkbmV3X2Nvbm5l Y3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBvbGRfY29ubl9zdGF0ZSwKPiArCQlmb3Jf ZWFjaF9vbGRuZXdfY29ubmVjdG9yX2luX3N0YXRlKCZzdGF0ZS0+YmFzZSwgY29ubmVjdG9yLCBv bGRfY29ubl9zdGF0ZSwKPiAgCQkJCQkJICAgbmV3X2Nvbm5fc3RhdGUsIGkpIHsKPiAgCQkJaWYg KG9sZF9jb25uX3N0YXRlLT5iZXN0X2VuY29kZXIgPT0gJmVuY29kZXItPmJhc2UpCj4gIAkJCQlm b3VuZCA9IHRydWU7Cj4gQEAgLTEyOTExLDUwICsxMjkwOSw0OSBAQCB2ZXJpZnlfZW5jb2Rlcl9z dGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gLXZlcmlmeV9jcnRjX3N0YXRlKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKPiAtCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3Rh dGUsCj4gLQkJICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQo+ICt2ZXJp ZnlfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiArCQkgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiArCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpuZXdfY3J0Y19zdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNy dGMtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IC0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnLCAqc3dfY29uZmlnOwo+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnOwo+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZTsKPiAgCWJv b2wgYWN0aXZlOwo+ICAKPiAtCW9sZF9zdGF0ZSA9IG9sZF9jcnRjX3N0YXRlLT5zdGF0ZTsKPiAt CV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKG9sZF9jcnRjX3N0YXRlKTsK PiAtCXBpcGVfY29uZmlnID0gdG9faW50ZWxfY3J0Y19zdGF0ZShvbGRfY3J0Y19zdGF0ZSk7Cj4g KwlvbGRfc3RhdGUgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKPiArCV9fZHJtX2F0b21p Y19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKCZvbGRfY3J0Y19zdGF0ZS0+YmFzZSk7Cj4gKwlw aXBlX2NvbmZpZyA9IG9sZF9jcnRjX3N0YXRlOwoKVGhpcyBhbGlhcyBpcyBzb21ld2hhdCBwb2lu dGxlc3MsIGV4Y2VwdCB3ZSBkbyBvdmVyd3JpdGUgdGhlIG9sZCBzdGF0ZQpoZXJlIHNvIG1heWJl IGl0J3MgYSBnb29kIHRoaW5nIHRvIGtlZXAgdGhpcyBmb3Igbm93LiBFdmVudHVhbGx5IHdlIApt aWdodCB3YW50IHRvIGF2b2lkIHRoaXMgb3ZlcndyaXRpbmcgZW50aXJlbHkuIElJUkMgaXQgZXZl ciBjYXVzZWQKcHJvYmxlbXMgZm9yIG1lIHdoZW4gSSB3YXMgbGFzdCBwb2tpbmcgYXQgdmJsYW5r IHdvcmtlcnMuIFNvIHdoZW4gSQpnZXQgYmFjayB0byB0aG9zZSBJIG1pZ2h0IGhhdmUgdG8gZG8g c29tZXRoaW5nIGFib3V0IHRoaXMuCgpQYXRjaCBsb29rcyBhbGwgcmlnaHQuClJldmlld2VkLWJ5 OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoKPiAgCW1l bXNldChwaXBlX2NvbmZpZywgMCwgc2l6ZW9mKCpwaXBlX2NvbmZpZykpOwo+IC0JcGlwZV9jb25m aWctPmJhc2UuY3J0YyA9IGNydGM7Cj4gKwlwaXBlX2NvbmZpZy0+YmFzZS5jcnRjID0gJmNydGMt PmJhc2U7Cj4gIAlwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZSA9IG9sZF9zdGF0ZTsKPiAgCj4gLQlE Uk1fREVCVUdfS01TKCJbQ1JUQzolZDolc11cbiIsIGNydGMtPmJhc2UuaWQsIGNydGMtPm5hbWUp Owo+ICsJRFJNX0RFQlVHX0tNUygiW0NSVEM6JWQ6JXNdXG4iLCBjcnRjLT5iYXNlLmJhc2UuaWQs IGNydGMtPmJhc2UubmFtZSk7Cj4gIAo+IC0JYWN0aXZlID0gZGV2X3ByaXYtPmRpc3BsYXkuZ2V0 X3BpcGVfY29uZmlnKGludGVsX2NydGMsIHBpcGVfY29uZmlnKTsKPiArCWFjdGl2ZSA9IGRldl9w cml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZpZyhjcnRjLCBwaXBlX2NvbmZpZyk7Cj4gIAo+ICAJ Lyogd2Uga2VlcCBib3RoIHBpcGVzIGVuYWJsZWQgb24gODMwICovCj4gIAlpZiAoSVNfSTgzMChk ZXZfcHJpdikpCj4gLQkJYWN0aXZlID0gbmV3X2NydGNfc3RhdGUtPmFjdGl2ZTsKPiArCQlhY3Rp dmUgPSBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmU7Cj4gIAo+IC0JSTkxNV9TVEFURV9XQVJO KG5ld19jcnRjX3N0YXRlLT5hY3RpdmUgIT0gYWN0aXZlLAo+ICsJSTkxNV9TVEFURV9XQVJOKG5l d19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAhPSBhY3RpdmUsCj4gIAkgICAgICJjcnRjIGFjdGl2 ZSBzdGF0ZSBkb2Vzbid0IG1hdGNoIHdpdGggaHcgc3RhdGUgIgo+IC0JICAgICAiKGV4cGVjdGVk ICVpLCBmb3VuZCAlaSlcbiIsIG5ld19jcnRjX3N0YXRlLT5hY3RpdmUsIGFjdGl2ZSk7Cj4gKwkg ICAgICIoZXhwZWN0ZWQgJWksIGZvdW5kICVpKVxuIiwgbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0 aXZlLCBhY3RpdmUpOwo+ICAKPiAtCUk5MTVfU1RBVEVfV0FSTihpbnRlbF9jcnRjLT5hY3RpdmUg IT0gbmV3X2NydGNfc3RhdGUtPmFjdGl2ZSwKPiArCUk5MTVfU1RBVEVfV0FSTihjcnRjLT5hY3Rp dmUgIT0gbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlLAo+ICAJICAgICAidHJhbnNpdGlvbmFs IGFjdGl2ZSBzdGF0ZSBkb2VzIG5vdCBtYXRjaCBhdG9taWMgaHcgc3RhdGUgIgo+IC0JICAgICAi KGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsIG5ld19jcnRjX3N0YXRlLT5hY3RpdmUsIGludGVs X2NydGMtPmFjdGl2ZSk7Cj4gKwkgICAgICIoZXhwZWN0ZWQgJWksIGZvdW5kICVpKVxuIiwgbmV3 X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlLCBjcnRjLT5hY3RpdmUpOwo+ICAKPiAtCWZvcl9lYWNo X2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpIHsKPiArCWZvcl9lYWNoX2VuY29k ZXJfb25fY3J0YyhkZXYsICZjcnRjLT5iYXNlLCBlbmNvZGVyKSB7Cj4gIAkJZW51bSBwaXBlIHBp cGU7Cj4gIAo+ICAJCWFjdGl2ZSA9IGVuY29kZXItPmdldF9od19zdGF0ZShlbmNvZGVyLCAmcGlw ZSk7Cj4gLQkJSTkxNV9TVEFURV9XQVJOKGFjdGl2ZSAhPSBuZXdfY3J0Y19zdGF0ZS0+YWN0aXZl LAo+ICsJCUk5MTVfU1RBVEVfV0FSTihhY3RpdmUgIT0gbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0 aXZlLAo+ICAJCQkiW0VOQ09ERVI6JWldIGFjdGl2ZSAlaSB3aXRoIGNydGMgYWN0aXZlICVpXG4i LAo+IC0JCQllbmNvZGVyLT5iYXNlLmJhc2UuaWQsIGFjdGl2ZSwgbmV3X2NydGNfc3RhdGUtPmFj dGl2ZSk7Cj4gKwkJCWVuY29kZXItPmJhc2UuYmFzZS5pZCwgYWN0aXZlLCBuZXdfY3J0Y19zdGF0 ZS0+YmFzZS5hY3RpdmUpOwo+ICAKPiAtCQlJOTE1X1NUQVRFX1dBUk4oYWN0aXZlICYmIGludGVs X2NydGMtPnBpcGUgIT0gcGlwZSwKPiArCQlJOTE1X1NUQVRFX1dBUk4oYWN0aXZlICYmIGNydGMt PnBpcGUgIT0gcGlwZSwKPiAgCQkJCSJFbmNvZGVyIGNvbm5lY3RlZCB0byB3cm9uZyBwaXBlICVj XG4iLAo+ICAJCQkJcGlwZV9uYW1lKHBpcGUpKTsKPiAgCj4gQEAgLTEyOTY0LDE2ICsxMjk2MSwx NiBAQCB2ZXJpZnlfY3J0Y19zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAo+ICAJaW50 ZWxfY3J0Y19jb21wdXRlX3BpeGVsX3JhdGUocGlwZV9jb25maWcpOwo+ICAKPiAtCWlmICghbmV3 X2NydGNfc3RhdGUtPmFjdGl2ZSkKPiArCWlmICghbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZl KQo+ICAJCXJldHVybjsKPiAgCj4gIAlpbnRlbF9waXBlX2NvbmZpZ19zYW5pdHlfY2hlY2soZGV2 X3ByaXYsIHBpcGVfY29uZmlnKTsKPiAgCj4gLQlzd19jb25maWcgPSB0b19pbnRlbF9jcnRjX3N0 YXRlKG5ld19jcnRjX3N0YXRlKTsKPiAtCWlmICghaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShz d19jb25maWcsIHBpcGVfY29uZmlnLCBmYWxzZSkpIHsKPiArCWlmICghaW50ZWxfcGlwZV9jb25m aWdfY29tcGFyZShuZXdfY3J0Y19zdGF0ZSwKPiArCQkJCSAgICAgICBwaXBlX2NvbmZpZywgZmFs c2UpKSB7Cj4gIAkJSTkxNV9TVEFURV9XQVJOKDEsICJwaXBlIHN0YXRlIGRvZXNuJ3QgbWF0Y2gh XG4iKTsKPiAgCQlpbnRlbF9kdW1wX3BpcGVfY29uZmlnKHBpcGVfY29uZmlnLCBOVUxMLCAiW2h3 IHN0YXRlXSIpOwo+IC0JCWludGVsX2R1bXBfcGlwZV9jb25maWcoc3dfY29uZmlnLCBOVUxMLCAi W3N3IHN0YXRlXSIpOwo+ICsJCWludGVsX2R1bXBfcGlwZV9jb25maWcobmV3X2NydGNfc3RhdGUs IE5VTEwsICJbc3cgc3RhdGVdIik7Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTEyOTkzLDggKzEyOTkw LDggQEAgaW50ZWxfdmVyaWZ5X3BsYW5lcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSkKPiAgc3RhdGljIHZvaWQKPiAgdmVyaWZ5X3NpbmdsZV9kcGxsX3N0YXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAq cGxsLAo+IC0JCQkgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+IC0JCQkgc3RydWN0IGRybV9jcnRj X3N0YXRlICpuZXdfc3RhdGUpCj4gKwkJCSBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiArCQkJ IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBpbnRl bF9kcGxsX2h3X3N0YXRlIGRwbGxfaHdfc3RhdGU7Cj4gIAl1bnNpZ25lZCBpbnQgY3J0Y19tYXNr Owo+IEBAIC0xMzAyNCwxNiArMTMwMjEsMTYgQEAgdmVyaWZ5X3NpbmdsZV9kcGxsX3N0YXRlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQlyZXR1cm47Cj4gIAl9Cj4gIAo+ IC0JY3J0Y19tYXNrID0gZHJtX2NydGNfbWFzayhjcnRjKTsKPiArCWNydGNfbWFzayA9IGRybV9j cnRjX21hc2soJmNydGMtPmJhc2UpOwo+ICAKPiAtCWlmIChuZXdfc3RhdGUtPmFjdGl2ZSkKPiAr CWlmIChuZXdfc3RhdGUtPmJhc2UuYWN0aXZlKQo+ICAJCUk5MTVfU1RBVEVfV0FSTighKHBsbC0+ YWN0aXZlX21hc2sgJiBjcnRjX21hc2spLAo+ICAJCQkJInBsbCBhY3RpdmUgbWlzbWF0Y2ggKGV4 cGVjdGVkIHBpcGUgJWMgaW4gYWN0aXZlIG1hc2sgMHglMDJ4KVxuIiwKPiAtCQkJCXBpcGVfbmFt ZShkcm1fY3J0Y19pbmRleChjcnRjKSksIHBsbC0+YWN0aXZlX21hc2spOwo+ICsJCQkJcGlwZV9u YW1lKGRybV9jcnRjX2luZGV4KCZjcnRjLT5iYXNlKSksIHBsbC0+YWN0aXZlX21hc2spOwo+ICAJ ZWxzZQo+ICAJCUk5MTVfU1RBVEVfV0FSTihwbGwtPmFjdGl2ZV9tYXNrICYgY3J0Y19tYXNrLAo+ ICAJCQkJInBsbCBhY3RpdmUgbWlzbWF0Y2ggKGRpZG4ndCBleHBlY3QgcGlwZSAlYyBpbiBhY3Rp dmUgbWFzayAweCUwMngpXG4iLAo+IC0JCQkJcGlwZV9uYW1lKGRybV9jcnRjX2luZGV4KGNydGMp KSwgcGxsLT5hY3RpdmVfbWFzayk7Cj4gKwkJCQlwaXBlX25hbWUoZHJtX2NydGNfaW5kZXgoJmNy dGMtPmJhc2UpKSwgcGxsLT5hY3RpdmVfbWFzayk7Cj4gIAo+ICAJSTkxNV9TVEFURV9XQVJOKCEo cGxsLT5zdGF0ZS5jcnRjX21hc2sgJiBjcnRjX21hc2spLAo+ICAJCQkicGxsIGVuYWJsZWQgY3J0 Y3MgbWlzbWF0Y2ggKGV4cGVjdGVkIDB4JXggaW4gMHglMDJ4KVxuIiwKPiBAQCAtMTMwNDYsMjgg KzEzMDQzLDI2IEBAIHZlcmlmeV9zaW5nbGVfZHBsbF9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gLXZlcmlmeV9zaGFyZWRf ZHBsbF9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMs Cj4gLQkJCSBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+IC0JCQkgc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKPiArdmVyaWZ5X3NoYXJlZF9kcGxs X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICsJCQkgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICsJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5l d19jcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX3N0YXRlID0g dG9faW50ZWxfY3J0Y19zdGF0ZShvbGRfY3J0Y19zdGF0ZSk7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqbmV3X3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSk7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJh c2UuZGV2KTsKPiAgCj4gLQlpZiAobmV3X3N0YXRlLT5zaGFyZWRfZHBsbCkKPiAtCQl2ZXJpZnlf c2luZ2xlX2RwbGxfc3RhdGUoZGV2X3ByaXYsIG5ld19zdGF0ZS0+c2hhcmVkX2RwbGwsIGNydGMs IG5ld19jcnRjX3N0YXRlKTsKPiArCWlmIChuZXdfY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwpCj4g KwkJdmVyaWZ5X3NpbmdsZV9kcGxsX3N0YXRlKGRldl9wcml2LCBuZXdfY3J0Y19zdGF0ZS0+c2hh cmVkX2RwbGwsIGNydGMsIG5ld19jcnRjX3N0YXRlKTsKPiAgCj4gLQlpZiAob2xkX3N0YXRlLT5z aGFyZWRfZHBsbCAmJgo+IC0JICAgIG9sZF9zdGF0ZS0+c2hhcmVkX2RwbGwgIT0gbmV3X3N0YXRl LT5zaGFyZWRfZHBsbCkgewo+IC0JCXVuc2lnbmVkIGludCBjcnRjX21hc2sgPSBkcm1fY3J0Y19t YXNrKGNydGMpOwo+IC0JCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0gb2xkX3N0YXRl LT5zaGFyZWRfZHBsbDsKPiArCWlmIChvbGRfY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgJiYKPiAr CSAgICBvbGRfY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgIT0gbmV3X2NydGNfc3RhdGUtPnNoYXJl ZF9kcGxsKSB7Cj4gKwkJdW5zaWduZWQgaW50IGNydGNfbWFzayA9IGRybV9jcnRjX21hc2soJmNy dGMtPmJhc2UpOwo+ICsJCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0gb2xkX2NydGNf c3RhdGUtPnNoYXJlZF9kcGxsOwo+ICAKPiAgCQlJOTE1X1NUQVRFX1dBUk4ocGxsLT5hY3RpdmVf bWFzayAmIGNydGNfbWFzaywKPiAgCQkJCSJwbGwgYWN0aXZlIG1pc21hdGNoIChkaWRuJ3QgZXhw ZWN0IHBpcGUgJWMgaW4gYWN0aXZlIG1hc2spXG4iLAo+IC0JCQkJcGlwZV9uYW1lKGRybV9jcnRj X2luZGV4KGNydGMpKSk7Cj4gKwkJCQlwaXBlX25hbWUoZHJtX2NydGNfaW5kZXgoJmNydGMtPmJh c2UpKSk7Cj4gIAkJSTkxNV9TVEFURV9XQVJOKHBsbC0+c3RhdGUuY3J0Y19tYXNrICYgY3J0Y19t YXNrLAo+ICAJCQkJInBsbCBlbmFibGVkIGNydGNzIG1pc21hdGNoIChmb3VuZCAleCBpbiBlbmFi bGVkIG1hc2spXG4iLAo+IC0JCQkJcGlwZV9uYW1lKGRybV9jcnRjX2luZGV4KGNydGMpKSk7Cj4g KwkJCQlwaXBlX25hbWUoZHJtX2NydGNfaW5kZXgoJmNydGMtPmJhc2UpKSk7Cj4gIAl9Cj4gIH0K PiAgCj4gQEAgLTEzMDgwLDE2ICsxMzA3NSwxNSBAQCBpbnRlbF9tb2Rlc2V0X3ZlcmlmeV9jcnRj KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJaWYgKCFuZWVkc19tb2Rlc2V0KG5ld19zdGF0 ZSkgJiYgIW5ld19zdGF0ZS0+dXBkYXRlX3BpcGUpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCXZlcmlm eV93bV9zdGF0ZSgmY3J0Yy0+YmFzZSwgJm5ld19zdGF0ZS0+YmFzZSk7Cj4gLQl2ZXJpZnlfY29u bmVjdG9yX3N0YXRlKGNydGMtPmJhc2UuZGV2LCAmc3RhdGUtPmJhc2UsICZjcnRjLT5iYXNlKTsK PiAtCXZlcmlmeV9jcnRjX3N0YXRlKCZjcnRjLT5iYXNlLCAmb2xkX3N0YXRlLT5iYXNlLCAmbmV3 X3N0YXRlLT5iYXNlKTsKPiAtCXZlcmlmeV9zaGFyZWRfZHBsbF9zdGF0ZShjcnRjLT5iYXNlLmRl diwgJmNydGMtPmJhc2UsICZvbGRfc3RhdGUtPmJhc2UsICZuZXdfc3RhdGUtPmJhc2UpOwo+ICsJ dmVyaWZ5X3dtX3N0YXRlKGNydGMsIG5ld19zdGF0ZSk7Cj4gKwl2ZXJpZnlfY29ubmVjdG9yX3N0 YXRlKHN0YXRlLCBjcnRjKTsKPiArCXZlcmlmeV9jcnRjX3N0YXRlKGNydGMsIG9sZF9zdGF0ZSwg bmV3X3N0YXRlKTsKPiArCXZlcmlmeV9zaGFyZWRfZHBsbF9zdGF0ZShjcnRjLCBvbGRfc3RhdGUs IG5ld19zdGF0ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gLXZlcmlmeV9kaXNhYmxlZF9k cGxsX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3ZlcmlmeV9kaXNhYmxlZF9kcGxs X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgewo+IC0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAJaW50IGk7Cj4g IAo+ICAJZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT5udW1fc2hhcmVkX2RwbGw7IGkrKykKPiBA QCAtMTMwOTcsMTIgKzEzMDkxLDEyIEBAIHZlcmlmeV9kaXNhYmxlZF9kcGxsX3N0YXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gLWludGVsX21vZGVz ZXRfdmVyaWZ5X2Rpc2FibGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gK2ludGVsX21vZGVz ZXRfdmVyaWZ5X2Rpc2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAg CQkJICAgICAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAtCXZlcmlm eV9lbmNvZGVyX3N0YXRlKGRldiwgJnN0YXRlLT5iYXNlKTsKPiAtCXZlcmlmeV9jb25uZWN0b3Jf c3RhdGUoZGV2LCAmc3RhdGUtPmJhc2UsIE5VTEwpOwo+IC0JdmVyaWZ5X2Rpc2FibGVkX2RwbGxf c3RhdGUoZGV2KTsKPiArCXZlcmlmeV9lbmNvZGVyX3N0YXRlKGRldl9wcml2LCBzdGF0ZSk7Cj4g Kwl2ZXJpZnlfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBOVUxMKTsKPiArCXZlcmlmeV9kaXNhYmxl ZF9kcGxsX3N0YXRlKGRldl9wcml2KTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgdXBkYXRlX3Nj YW5saW5lX29mZnNldChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK PiBAQCAtMTM4MjMsNyArMTM4MTcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0 X3RhaWwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkJaWYgKCFpbnRlbF9j YW5fZW5hYmxlX3NhZ3Yoc3RhdGUpKQo+ICAJCQlpbnRlbF9kaXNhYmxlX3NhZ3YoZGV2X3ByaXYp Owo+ICAKPiAtCQlpbnRlbF9tb2Rlc2V0X3ZlcmlmeV9kaXNhYmxlZChkZXYsIHN0YXRlKTsKPiAr CQlpbnRlbF9tb2Rlc2V0X3ZlcmlmeV9kaXNhYmxlZChkZXZfcHJpdiwgc3RhdGUpOwo+ICAJfQo+ ICAKPiAgCS8qIENvbXBsZXRlIHRoZSBldmVudHMgZm9yIHBpcGVzIHRoYXQgaGF2ZSBub3cgYmVl biBkaXNhYmxlZCAqLwo+IC0tIAo+IDIuMjAuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=