From mboxrd@z Thu Jan 1 00:00:00 1970 From: Inki Dae Subject: Re: [PATCH] exynos: Put a stop to the userptr heresy. Date: Tue, 01 Jul 2014 17:55:25 +0900 Message-ID: <53B2777D.4050204@samsung.com> References: <1404164773-14759-1-git-send-email-j.glisse@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 714916E512 for ; Tue, 1 Jul 2014 01:55:28 -0700 (PDT) Received: from epcpsbgr3.samsung.com (u143.gpu120.samsung.co.kr [203.254.230.143]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N8000GBBZGF54E0@mailout1.samsung.com> for dri-devel@lists.freedesktop.org; Tue, 01 Jul 2014 17:55:27 +0900 (KST) In-reply-to: <1404164773-14759-1-git-send-email-j.glisse@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: j.glisse@gmail.com Cc: kyungmin.park@samsung.com, Jerome Glisse , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org CkhpIEplcm9tZSwKCgpPbiAyMDE064WEIDA37JuUIDAx7J28IDA2OjQ2LCBqLmdsaXNzZUBnbWFp bC5jb20gd3JvdGU6Cj4gRnJvbTogSmVyb21lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgo+ IAo+IGdldF91c2VyX3BhZ2VzIGdpdmVzIG5vIGdhcmFudHkgdGhhdCBwYWdlIGl0IHJldHVybnMg YXJlIHN0aWxsCj4gdGhlIG9uZSBiYWNraW5nIHRoZSB2bWEgYnkgdGhlIHRpbWUgaXQgcmV0dXJu cy4gVGh1cyBhbnkgaW9jdGwKCk9uZSBvZiBwYWdlcyBmcm9tIGdldF91c2VyX3BhZ2VzKCkgY291 bGQgYmUgbWlncmF0ZWQ/IEkgdGhpbmsgYWxsIHRoZQpwYWdlcyBhcmUgcGlubmVkIHNvIHRoYXQg dGhleSBjYW5ub3QgYmUgbWlncmF0ZWQuIElmIG5vdCBzdWNoIGNhc2UsIGlzCnRoZXJlIG90aGVy IGNhc2UgSSBtaXNzZWQ/CgpPbmUgbW9yZSB0aGluZywgZG8geW91IHRoaW5rIHRoaXMgaXNzdWUg Y2Fubm90IGJlIHJlc29sdmVkIHNvIHlvdSBhcmUKdHJ5aW5nIHRvIHJlbW92ZSB1c2VycHRyIGZl YXR1cmUgZnJvbSBnMmQgZHJpdmVyPwoKVGhhbmtzLApJbmtpIERhZQoKPiB0aGF0IHJlbHkgb24g dGhpcyBiZWhhdmlvciBpcyBicm9rZW4gYW5kIHJlbHkgb24gcHVyZSBsdWNrLiBUbwo+IGF2b2lk IGFueSBmYWxzZSBob3BlIGZyb20gdXNlcnNwYWNlIHN0b3Agc3VjaCB1c2VhZ2UgYnkgc2ltcGx5 Cj4gZmxhdCBvdXQgcmV0dXJuaW5nIC1FRkFVTFQuIEJldHRlciB0byBoYXZlIGEgcmVsaWFibGUg YmVoYXZpb3IKPiB0aGFuIHRvIGRlcGVuZCBvbiBwdXJlIGx1Y2sgYW5kIGN1cnJlbnRseSBvYnNl cnZlZCBiZWhhdmlvciBvZgo+IG1tIGNvZGUuCj4gCj4gTm90ZSB0aGlzIHdhcyBub3QgZXZlbiBj b21waWxlIHRlc3RlZCBidXQgaSB0aGluayBpIGRpZCB1cGRhdGUKPiBhbGwgcGxhY2VzLgo+IAo+ IFNpZ25lZC1vZmYtYnk6IErDqXLDtG1lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgo+IC0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmggfCAgIDEgLQo+ICBk cml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZzJkLmMgfCAyNzcgKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJt X2dlbS5jIHwgIDYwIC0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJt X2dlbS5oIHwgIDIwIC0tLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMzU1 IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19kcm1fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmgK PiBpbmRleCAzNjUzNWYzLi43YjU1ZTg5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zX2RybV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RybV9kcnYuaAo+IEBAIC0yMzMsNyArMjMzLDYgQEAgc3RydWN0IGV4eW5vc19kcm1fZzJk X3ByaXZhdGUgewo+ICAJc3RydWN0IGRldmljZQkJKmRldjsKPiAgCXN0cnVjdCBsaXN0X2hlYWQJ aW51c2VfY21kbGlzdDsKPiAgCXN0cnVjdCBsaXN0X2hlYWQJZXZlbnRfbGlzdDsKPiAtCXN0cnVj dCBsaXN0X2hlYWQJdXNlcnB0cl9saXN0Owo+ICB9Owo+ICAKPiAgc3RydWN0IGV4eW5vc19kcm1f aXBwX3ByaXZhdGUgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5v c19kcm1fZzJkLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZzJkLmMKPiBp bmRleCA4MDAxNTg3Li5kMGJlNmRjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RybV9nMmQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X2RybV9nMmQuYwo+IEBAIC0xMTgsOSArMTE4LDYgQEAKPiAgI2RlZmluZSBHMkRfQ01ETElTVF9Q T09MX1NJWkUJCShHMkRfQ01ETElTVF9TSVpFICogRzJEX0NNRExJU1RfTlVNKQo+ICAjZGVmaW5l IEcyRF9DTURMSVNUX0RBVEFfTlVNCQkoRzJEX0NNRExJU1RfU0laRSAvIHNpemVvZih1MzIpIC0g MikKPiAgCj4gLS8qIG1heGltdW0gYnVmZmVyIHBvb2wgc2l6ZSBvZiB1c2VycHRyIGlzIDY0TUIg YXMgZGVmYXVsdCAqLwo+IC0jZGVmaW5lIE1BWF9QT09MCQkoNjQgKiAxMDI0ICogMTAyNCkKPiAt Cj4gIGVudW0gewo+ICAJQlVGX1RZUEVfR0VNID0gMSwKPiAgCUJVRl9UWVBFX1VTRVJQVFIsCj4g QEAgLTE4NSwxOSArMTgyLDYgQEAgc3RydWN0IGRybV9leHlub3NfcGVuZGluZ19nMmRfZXZlbnQg ewo+ICAJc3RydWN0IGRybV9leHlub3NfZzJkX2V2ZW50CWV2ZW50Owo+ICB9Owo+ICAKPiAtc3Ry dWN0IGcyZF9jbWRsaXN0X3VzZXJwdHIgewo+IC0Jc3RydWN0IGxpc3RfaGVhZAlsaXN0Owo+IC0J ZG1hX2FkZHJfdAkJZG1hX2FkZHI7Cj4gLQl1bnNpZ25lZCBsb25nCQl1c2VycHRyOwo+IC0JdW5z aWduZWQgbG9uZwkJc2l6ZTsKPiAtCXN0cnVjdCBwYWdlCQkqKnBhZ2VzOwo+IC0JdW5zaWduZWQg aW50CQlucGFnZXM7Cj4gLQlzdHJ1Y3Qgc2dfdGFibGUJCSpzZ3Q7Cj4gLQlzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QJKnZtYTsKPiAtCWF0b21pY190CQlyZWZjb3VudDsKPiAtCWJvb2wJCQlpbl9wb29s Owo+IC0JYm9vbAkJCW91dF9vZl9saXN0Owo+IC19Owo+ICBzdHJ1Y3QgZzJkX2NtZGxpc3Rfbm9k ZSB7Cj4gIAlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7Cj4gIAlzdHJ1Y3QgZzJkX2NtZGxpc3QJKmNt ZGxpc3Q7Cj4gQEAgLTI0Miw3ICsyMjYsNiBAQCBzdHJ1Y3QgZzJkX2RhdGEgewo+ICAJc3RydWN0 IGttZW1fY2FjaGUJCSpydW5xdWV1ZV9zbGFiOwo+ICAKPiAgCXVuc2lnbmVkIGxvbmcJCQljdXJy ZW50X3Bvb2w7Cj4gLQl1bnNpZ25lZCBsb25nCQkJbWF4X3Bvb2w7Cj4gIH07Cj4gIAo+ICBzdGF0 aWMgaW50IGcyZF9pbml0X2NtZGxpc3Qoc3RydWN0IGcyZF9kYXRhICpnMmQpCj4gQEAgLTM1NCwy MzIgKzMzNyw2IEBAIGFkZF90b19saXN0Ogo+ICAJCWxpc3RfYWRkX3RhaWwoJm5vZGUtPmV2ZW50 LT5iYXNlLmxpbmssICZnMmRfcHJpdi0+ZXZlbnRfbGlzdCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2 b2lkIGcyZF91c2VycHRyX3B1dF9kbWFfYWRkcihzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwK PiAtCQkJCQl1bnNpZ25lZCBsb25nIG9iaiwKPiAtCQkJCQlib29sIGZvcmNlKQo+IC17Cj4gLQlz dHJ1Y3QgZzJkX2NtZGxpc3RfdXNlcnB0ciAqZzJkX3VzZXJwdHIgPQo+IC0JCQkJCShzdHJ1Y3Qg ZzJkX2NtZGxpc3RfdXNlcnB0ciAqKW9iajsKPiAtCj4gLQlpZiAoIW9iaikKPiAtCQlyZXR1cm47 Cj4gLQo+IC0JaWYgKGZvcmNlKQo+IC0JCWdvdG8gb3V0Owo+IC0KPiAtCWF0b21pY19kZWMoJmcy ZF91c2VycHRyLT5yZWZjb3VudCk7Cj4gLQo+IC0JaWYgKGF0b21pY19yZWFkKCZnMmRfdXNlcnB0 ci0+cmVmY291bnQpID4gMCkKPiAtCQlyZXR1cm47Cj4gLQo+IC0JaWYgKGcyZF91c2VycHRyLT5p bl9wb29sKQo+IC0JCXJldHVybjsKPiAtCj4gLW91dDoKPiAtCWV4eW5vc19nZW1fdW5tYXBfc2d0 X2Zyb21fZG1hKGRybV9kZXYsIGcyZF91c2VycHRyLT5zZ3QsCj4gLQkJCQkJRE1BX0JJRElSRUNU SU9OQUwpOwo+IC0KPiAtCWV4eW5vc19nZW1fcHV0X3BhZ2VzX3RvX3VzZXJwdHIoZzJkX3VzZXJw dHItPnBhZ2VzLAo+IC0JCQkJCWcyZF91c2VycHRyLT5ucGFnZXMsCj4gLQkJCQkJZzJkX3VzZXJw dHItPnZtYSk7Cj4gLQo+IC0JZXh5bm9zX2dlbV9wdXRfdm1hKGcyZF91c2VycHRyLT52bWEpOwo+ IC0KPiAtCWlmICghZzJkX3VzZXJwdHItPm91dF9vZl9saXN0KQo+IC0JCWxpc3RfZGVsX2luaXQo JmcyZF91c2VycHRyLT5saXN0KTsKPiAtCj4gLQlzZ19mcmVlX3RhYmxlKGcyZF91c2VycHRyLT5z Z3QpOwo+IC0Ja2ZyZWUoZzJkX3VzZXJwdHItPnNndCk7Cj4gLQo+IC0JZHJtX2ZyZWVfbGFyZ2Uo ZzJkX3VzZXJwdHItPnBhZ2VzKTsKPiAtCWtmcmVlKGcyZF91c2VycHRyKTsKPiAtfQo+IC0KPiAt c3RhdGljIGRtYV9hZGRyX3QgKmcyZF91c2VycHRyX2dldF9kbWFfYWRkcihzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtX2RldiwKPiAtCQkJCQl1bnNpZ25lZCBsb25nIHVzZXJwdHIsCj4gLQkJCQkJdW5z aWduZWQgbG9uZyBzaXplLAo+IC0JCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlscCwKPiAtCQkJCQl1 bnNpZ25lZCBsb25nICpvYmopCj4gLXsKPiAtCXN0cnVjdCBkcm1fZXh5bm9zX2ZpbGVfcHJpdmF0 ZSAqZmlsZV9wcml2ID0gZmlscC0+ZHJpdmVyX3ByaXY7Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9n MmRfcHJpdmF0ZSAqZzJkX3ByaXYgPSBmaWxlX3ByaXYtPmcyZF9wcml2Owo+IC0Jc3RydWN0IGcy ZF9jbWRsaXN0X3VzZXJwdHIgKmcyZF91c2VycHRyOwo+IC0Jc3RydWN0IGcyZF9kYXRhICpnMmQ7 Cj4gLQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwo+IC0Jc3RydWN0IHNnX3RhYmxlCSpzZ3Q7Cj4gLQlz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYTsKPiAtCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZDsK PiAtCXVuc2lnbmVkIGludCBucGFnZXMsIG9mZnNldDsKPiAtCWludCByZXQ7Cj4gLQo+IC0JaWYg KCFzaXplKSB7Cj4gLQkJRFJNX0VSUk9SKCJpbnZhbGlkIHVzZXJwdHIgc2l6ZS5cbiIpOwo+IC0J CXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+IC0JfQo+IC0KPiAtCWcyZCA9IGRldl9nZXRfZHJ2 ZGF0YShnMmRfcHJpdi0+ZGV2KTsKPiAtCj4gLQkvKiBjaGVjayBpZiB1c2VycHRyIGFscmVhZHkg ZXhpc3RzIGluIHVzZXJwdHJfbGlzdC4gKi8KPiAtCWxpc3RfZm9yX2VhY2hfZW50cnkoZzJkX3Vz ZXJwdHIsICZnMmRfcHJpdi0+dXNlcnB0cl9saXN0LCBsaXN0KSB7Cj4gLQkJaWYgKGcyZF91c2Vy cHRyLT51c2VycHRyID09IHVzZXJwdHIpIHsKPiAtCQkJLyoKPiAtCQkJICogYWxzbyBjaGVjayBz aXplIGJlY2F1c2UgdGhlcmUgY291bGQgYmUgc2FtZSBhZGRyZXNzCj4gLQkJCSAqIGFuZCBkaWZm ZXJlbnQgc2l6ZS4KPiAtCQkJICovCj4gLQkJCWlmIChnMmRfdXNlcnB0ci0+c2l6ZSA9PSBzaXpl KSB7Cj4gLQkJCQlhdG9taWNfaW5jKCZnMmRfdXNlcnB0ci0+cmVmY291bnQpOwo+IC0JCQkJKm9i aiA9ICh1bnNpZ25lZCBsb25nKWcyZF91c2VycHRyOwo+IC0KPiAtCQkJCXJldHVybiAmZzJkX3Vz ZXJwdHItPmRtYV9hZGRyOwo+IC0JCQl9Cj4gLQo+IC0JCQkvKgo+IC0JCQkgKiBhdCB0aGlzIG1v bWVudCwgbWF5YmUgZzJkIGRtYSBpcyBhY2Nlc3NpbmcgdGhpcwo+IC0JCQkgKiBnMmRfdXNlcnB0 ciBtZW1vcnkgcmVnaW9uIHNvIGp1c3QgcmVtb3ZlIHRoaXMKPiAtCQkJICogZzJkX3VzZXJwdHIg b2JqZWN0IGZyb20gdXNlcnB0cl9saXN0IG5vdCB0byBiZQo+IC0JCQkgKiByZWZlcnJlZCBhZ2Fp biBhbmQgYWxzbyBleGNlcHQgaXQgdGhlIHVzZXJwdHIKPiAtCQkJICogcG9vbCB0byBiZSByZWxl YXNlZCBhZnRlciB0aGUgZG1hIGFjY2VzcyBjb21wbGV0aW9uLgo+IC0JCQkgKi8KPiAtCQkJZzJk X3VzZXJwdHItPm91dF9vZl9saXN0ID0gdHJ1ZTsKPiAtCQkJZzJkX3VzZXJwdHItPmluX3Bvb2wg PSBmYWxzZTsKPiAtCQkJbGlzdF9kZWxfaW5pdCgmZzJkX3VzZXJwdHItPmxpc3QpOwo+IC0KPiAt CQkJYnJlYWs7Cj4gLQkJfQo+IC0JfQo+IC0KPiAtCWcyZF91c2VycHRyID0ga3phbGxvYyhzaXpl b2YoKmcyZF91c2VycHRyKSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIWcyZF91c2VycHRyKQo+IC0J CXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+IC0KPiAtCWF0b21pY19zZXQoJmcyZF91c2VycHRy LT5yZWZjb3VudCwgMSk7Cj4gLQo+IC0Jc3RhcnQgPSB1c2VycHRyICYgUEFHRV9NQVNLOwo+IC0J b2Zmc2V0ID0gdXNlcnB0ciAmIH5QQUdFX01BU0s7Cj4gLQllbmQgPSBQQUdFX0FMSUdOKHVzZXJw dHIgKyBzaXplKTsKPiAtCW5wYWdlcyA9IChlbmQgLSBzdGFydCkgPj4gUEFHRV9TSElGVDsKPiAt CWcyZF91c2VycHRyLT5ucGFnZXMgPSBucGFnZXM7Cj4gLQo+IC0JcGFnZXMgPSBkcm1fY2FsbG9j X2xhcmdlKG5wYWdlcywgc2l6ZW9mKHN0cnVjdCBwYWdlICopKTsKPiAtCWlmICghcGFnZXMpIHsK PiAtCQlEUk1fRVJST1IoImZhaWxlZCB0byBhbGxvY2F0ZSBwYWdlcy5cbiIpOwo+IC0JCXJldCA9 IC1FTk9NRU07Cj4gLQkJZ290byBlcnJfZnJlZTsKPiAtCX0KPiAtCj4gLQlkb3duX3JlYWQoJmN1 cnJlbnQtPm1tLT5tbWFwX3NlbSk7Cj4gLQl2bWEgPSBmaW5kX3ZtYShjdXJyZW50LT5tbSwgdXNl cnB0cik7Cj4gLQlpZiAoIXZtYSkgewo+IC0JCXVwX3JlYWQoJmN1cnJlbnQtPm1tLT5tbWFwX3Nl bSk7Cj4gLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZ2V0IHZtIHJlZ2lvbi5cbiIpOwo+IC0JCXJl dCA9IC1FRkFVTFQ7Cj4gLQkJZ290byBlcnJfZnJlZV9wYWdlczsKPiAtCX0KPiAtCj4gLQlpZiAo dm1hLT52bV9lbmQgPCB1c2VycHRyICsgc2l6ZSkgewo+IC0JCXVwX3JlYWQoJmN1cnJlbnQtPm1t LT5tbWFwX3NlbSk7Cj4gLQkJRFJNX0VSUk9SKCJ2bWEgaXMgdG9vIHNtYWxsLlxuIik7Cj4gLQkJ cmV0ID0gLUVGQVVMVDsKPiAtCQlnb3RvIGVycl9mcmVlX3BhZ2VzOwo+IC0JfQo+IC0KPiAtCWcy ZF91c2VycHRyLT52bWEgPSBleHlub3NfZ2VtX2dldF92bWEodm1hKTsKPiAtCWlmICghZzJkX3Vz ZXJwdHItPnZtYSkgewo+IC0JCXVwX3JlYWQoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7Cj4gLQkJ RFJNX0VSUk9SKCJmYWlsZWQgdG8gY29weSB2bWEuXG4iKTsKPiAtCQlyZXQgPSAtRU5PTUVNOwo+ IC0JCWdvdG8gZXJyX2ZyZWVfcGFnZXM7Cj4gLQl9Cj4gLQo+IC0JZzJkX3VzZXJwdHItPnNpemUg PSBzaXplOwo+IC0KPiAtCXJldCA9IGV4eW5vc19nZW1fZ2V0X3BhZ2VzX2Zyb21fdXNlcnB0cihz dGFydCAmIFBBR0VfTUFTSywKPiAtCQkJCQkJbnBhZ2VzLCBwYWdlcywgdm1hKTsKPiAtCWlmIChy ZXQgPCAwKSB7Cj4gLQkJdXBfcmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKPiAtCQlEUk1f RVJST1IoImZhaWxlZCB0byBnZXQgdXNlciBwYWdlcyBmcm9tIHVzZXJwdHIuXG4iKTsKPiAtCQln b3RvIGVycl9wdXRfdm1hOwo+IC0JfQo+IC0KPiAtCXVwX3JlYWQoJmN1cnJlbnQtPm1tLT5tbWFw X3NlbSk7Cj4gLQlnMmRfdXNlcnB0ci0+cGFnZXMgPSBwYWdlczsKPiAtCj4gLQlzZ3QgPSBremFs bG9jKHNpemVvZigqc2d0KSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIXNndCkgewo+IC0JCXJldCA9 IC1FTk9NRU07Cj4gLQkJZ290byBlcnJfZnJlZV91c2VycHRyOwo+IC0JfQo+IC0KPiAtCXJldCA9 IHNnX2FsbG9jX3RhYmxlX2Zyb21fcGFnZXMoc2d0LCBwYWdlcywgbnBhZ2VzLCBvZmZzZXQsCj4g LQkJCQkJc2l6ZSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAocmV0IDwgMCkgewo+IC0JCURSTV9FUlJP UigiZmFpbGVkIHRvIGdldCBzZ3QgZnJvbSBwYWdlcy5cbiIpOwo+IC0JCWdvdG8gZXJyX2ZyZWVf c2d0Owo+IC0JfQo+IC0KPiAtCWcyZF91c2VycHRyLT5zZ3QgPSBzZ3Q7Cj4gLQo+IC0JcmV0ID0g ZXh5bm9zX2dlbV9tYXBfc2d0X3dpdGhfZG1hKGRybV9kZXYsIGcyZF91c2VycHRyLT5zZ3QsCj4g LQkJCQkJCURNQV9CSURJUkVDVElPTkFMKTsKPiAtCWlmIChyZXQgPCAwKSB7Cj4gLQkJRFJNX0VS Uk9SKCJmYWlsZWQgdG8gbWFwIHNndCB3aXRoIGRtYSByZWdpb24uXG4iKTsKPiAtCQlnb3RvIGVy cl9zZ19mcmVlX3RhYmxlOwo+IC0JfQo+IC0KPiAtCWcyZF91c2VycHRyLT5kbWFfYWRkciA9IHNn dC0+c2dsWzBdLmRtYV9hZGRyZXNzOwo+IC0JZzJkX3VzZXJwdHItPnVzZXJwdHIgPSB1c2VycHRy Owo+IC0KPiAtCWxpc3RfYWRkX3RhaWwoJmcyZF91c2VycHRyLT5saXN0LCAmZzJkX3ByaXYtPnVz ZXJwdHJfbGlzdCk7Cj4gLQo+IC0JaWYgKGcyZC0+Y3VycmVudF9wb29sICsgKG5wYWdlcyA8PCBQ QUdFX1NISUZUKSA8IGcyZC0+bWF4X3Bvb2wpIHsKPiAtCQlnMmQtPmN1cnJlbnRfcG9vbCArPSBu cGFnZXMgPDwgUEFHRV9TSElGVDsKPiAtCQlnMmRfdXNlcnB0ci0+aW5fcG9vbCA9IHRydWU7Cj4g LQl9Cj4gLQo+IC0JKm9iaiA9ICh1bnNpZ25lZCBsb25nKWcyZF91c2VycHRyOwo+IC0KPiAtCXJl dHVybiAmZzJkX3VzZXJwdHItPmRtYV9hZGRyOwo+IC0KPiAtZXJyX3NnX2ZyZWVfdGFibGU6Cj4g LQlzZ19mcmVlX3RhYmxlKHNndCk7Cj4gLQo+IC1lcnJfZnJlZV9zZ3Q6Cj4gLQlrZnJlZShzZ3Qp Owo+IC0KPiAtZXJyX2ZyZWVfdXNlcnB0cjoKPiAtCWV4eW5vc19nZW1fcHV0X3BhZ2VzX3RvX3Vz ZXJwdHIoZzJkX3VzZXJwdHItPnBhZ2VzLAo+IC0JCQkJCWcyZF91c2VycHRyLT5ucGFnZXMsCj4g LQkJCQkJZzJkX3VzZXJwdHItPnZtYSk7Cj4gLQo+IC1lcnJfcHV0X3ZtYToKPiAtCWV4eW5vc19n ZW1fcHV0X3ZtYShnMmRfdXNlcnB0ci0+dm1hKTsKPiAtCj4gLWVycl9mcmVlX3BhZ2VzOgo+IC0J ZHJtX2ZyZWVfbGFyZ2UocGFnZXMpOwo+IC0KPiAtZXJyX2ZyZWU6Cj4gLQlrZnJlZShnMmRfdXNl cnB0cik7Cj4gLQo+IC0JcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAtfQo+IC0KPiAtc3RhdGljIHZv aWQgZzJkX3VzZXJwdHJfZnJlZV9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCj4gLQkJ CQkJc3RydWN0IGcyZF9kYXRhICpnMmQsCj4gLQkJCQkJc3RydWN0IGRybV9maWxlICpmaWxwKQo+ IC17Cj4gLQlzdHJ1Y3QgZHJtX2V4eW5vc19maWxlX3ByaXZhdGUgKmZpbGVfcHJpdiA9IGZpbHAt PmRyaXZlcl9wcml2Owo+IC0Jc3RydWN0IGV4eW5vc19kcm1fZzJkX3ByaXZhdGUgKmcyZF9wcml2 ID0gZmlsZV9wcml2LT5nMmRfcHJpdjsKPiAtCXN0cnVjdCBnMmRfY21kbGlzdF91c2VycHRyICpn MmRfdXNlcnB0ciwgKm47Cj4gLQo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGcyZF91c2Vy cHRyLCBuLCAmZzJkX3ByaXYtPnVzZXJwdHJfbGlzdCwgbGlzdCkKPiAtCQlpZiAoZzJkX3VzZXJw dHItPmluX3Bvb2wpCj4gLQkJCWcyZF91c2VycHRyX3B1dF9kbWFfYWRkcihkcm1fZGV2LAo+IC0J CQkJCQkodW5zaWduZWQgbG9uZylnMmRfdXNlcnB0ciwKPiAtCQkJCQkJdHJ1ZSk7Cj4gLQo+IC0J ZzJkLT5jdXJyZW50X3Bvb2wgPSAwOwo+IC19Cj4gLQo+ICBzdGF0aWMgZW51bSBnMmRfcmVnX3R5 cGUgZzJkX2dldF9yZWdfdHlwZShpbnQgcmVnX29mZnNldCkKPiAgewo+ICAJZW51bSBnMmRfcmVn X3R5cGUgcmVnX3R5cGU7Cj4gQEAgLTczNCwyOSArNDkxLDggQEAgc3RhdGljIGludCBnMmRfbWFw X2NtZGxpc3RfZ2VtKHN0cnVjdCBnMmRfZGF0YSAqZzJkLAo+ICAJCQkJZ290byBlcnI7Cj4gIAkJ CX0KPiAgCQl9IGVsc2Ugewo+IC0JCQlzdHJ1Y3QgZHJtX2V4eW5vc19nMmRfdXNlcnB0ciBnMmRf dXNlcnB0cjsKPiAtCj4gLQkJCWlmIChjb3B5X2Zyb21fdXNlcigmZzJkX3VzZXJwdHIsICh2b2lk IF9fdXNlciAqKWhhbmRsZSwKPiAtCQkJCXNpemVvZihzdHJ1Y3QgZHJtX2V4eW5vc19nMmRfdXNl cnB0cikpKSB7Cj4gLQkJCQlyZXQgPSAtRUZBVUxUOwo+IC0JCQkJZ290byBlcnI7Cj4gLQkJCX0K PiAtCj4gLQkJCWlmICghZzJkX2NoZWNrX2J1Zl9kZXNjX2lzX3ZhbGlkKGJ1Zl9kZXNjLCByZWdf dHlwZSwKPiAtCQkJCQkJCWcyZF91c2VycHRyLnNpemUpKSB7Cj4gLQkJCQlyZXQgPSAtRUZBVUxU Owo+IC0JCQkJZ290byBlcnI7Cj4gLQkJCX0KPiAtCj4gLQkJCWFkZHIgPSBnMmRfdXNlcnB0cl9n ZXRfZG1hX2FkZHIoZHJtX2RldiwKPiAtCQkJCQkJCWcyZF91c2VycHRyLnVzZXJwdHIsCj4gLQkJ CQkJCQlnMmRfdXNlcnB0ci5zaXplLAo+IC0JCQkJCQkJZmlsZSwKPiAtCQkJCQkJCSZoYW5kbGUp Owo+IC0JCQlpZiAoSVNfRVJSKGFkZHIpKSB7Cj4gLQkJCQlyZXQgPSAtRUZBVUxUOwo+IC0JCQkJ Z290byBlcnI7Cj4gLQkJCX0KPiArCQkJcmV0ID0gLUVGQVVMVDsKPiArCQkJZ290byBlcnI7Cj4g IAkJfQo+ICAKPiAgCQljbWRsaXN0LT5kYXRhW3JlZ19wb3MgKyAxXSA9ICphZGRyOwo+IEBAIC03 OTMsOCArNTI5LDcgQEAgc3RhdGljIHZvaWQgZzJkX3VubWFwX2NtZGxpc3RfZ2VtKHN0cnVjdCBn MmRfZGF0YSAqZzJkLAo+ICAJCQlleHlub3NfZHJtX2dlbV9wdXRfZG1hX2FkZHIoc3ViZHJ2LT5k cm1fZGV2LCBoYW5kbGUsCj4gIAkJCQkJCQlmaWxwKTsKPiAgCQllbHNlCj4gLQkJCWcyZF91c2Vy cHRyX3B1dF9kbWFfYWRkcihzdWJkcnYtPmRybV9kZXYsIGhhbmRsZSwKPiAtCQkJCQkJCWZhbHNl KTsKPiArCQkJQlVHKCk7Cj4gIAo+ICAJCWJ1Zl9pbmZvLT5yZWdfdHlwZXNbaV0gPSBSRUdfVFlQ RV9OT05FOwo+ICAJCWJ1Zl9pbmZvLT5oYW5kbGVzW3JlZ190eXBlXSA9IDA7Cj4gQEAgLTEzMjks NyArMTA2NCw2IEBAIHN0YXRpYyBpbnQgZzJkX29wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRybV9k ZXYsIHN0cnVjdCBkZXZpY2UgKmRldiwKPiAgCj4gIAlJTklUX0xJU1RfSEVBRCgmZzJkX3ByaXYt PmludXNlX2NtZGxpc3QpOwo+ICAJSU5JVF9MSVNUX0hFQUQoJmcyZF9wcml2LT5ldmVudF9saXN0 KTsKPiAtCUlOSVRfTElTVF9IRUFEKCZnMmRfcHJpdi0+dXNlcnB0cl9saXN0KTsKPiAgCj4gIAly ZXR1cm4gMDsKPiAgfQo+IEBAIC0xMzYzLDkgKzEwOTcsNiBAQCBzdGF0aWMgdm9pZCBnMmRfY2xv c2Uoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsIHN0cnVjdCBkZXZpY2UgKmRldiwKPiAgCX0K PiAgCW11dGV4X3VubG9jaygmZzJkLT5jbWRsaXN0X211dGV4KTsKPiAgCj4gLQkvKiByZWxlYXNl IGFsbCBnMmRfdXNlcnB0ciBpbiBwb29sLiAqLwo+IC0JZzJkX3VzZXJwdHJfZnJlZV9hbGwoZHJt X2RldiwgZzJkLCBmaWxlKTsKPiAtCj4gIAlrZnJlZShmaWxlX3ByaXYtPmcyZF9wcml2KTsKPiAg fQo+ICAKPiBAQCAtMTQzMyw4ICsxMTY0LDYgQEAgc3RhdGljIGludCBnMmRfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCQlnb3RvIGVycl9wdXRfY2xrOwo+ICAJfQo+ICAK PiAtCWcyZC0+bWF4X3Bvb2wgPSBNQVhfUE9PTDsKPiAtCj4gIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0 YShwZGV2LCBnMmQpOwo+ICAKPiAgCXN1YmRydiA9ICZnMmQtPnN1YmRydjsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2dlbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfZHJtX2dlbS5jCj4gaW5kZXggMTYzYTA1NC4uY2I2MjRkOSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZ2VtLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZ2VtLmMKPiBAQCAtNDk2LDY2ICs0 OTYsNiBAQCB2b2lkIGV4eW5vc19nZW1fcHV0X3ZtYShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZt YSkKPiAgCWtmcmVlKHZtYSk7Cj4gIH0KPiAgCj4gLWludCBleHlub3NfZ2VtX2dldF9wYWdlc19m cm9tX3VzZXJwdHIodW5zaWduZWQgbG9uZyBzdGFydCwKPiAtCQkJCQkJdW5zaWduZWQgaW50IG5w YWdlcywKPiAtCQkJCQkJc3RydWN0IHBhZ2UgKipwYWdlcywKPiAtCQkJCQkJc3RydWN0IHZtX2Fy ZWFfc3RydWN0ICp2bWEpCj4gLXsKPiAtCWludCBnZXRfbnBhZ2VzOwo+IC0KPiAtCS8qIHRoZSBt ZW1vcnkgcmVnaW9uIG1tYXBlZCB3aXRoIFZNX1BGTk1BUC4gKi8KPiAtCWlmICh2bWFfaXNfaW8o dm1hKSkgewo+IC0JCXVuc2lnbmVkIGludCBpOwo+IC0KPiAtCQlmb3IgKGkgPSAwOyBpIDwgbnBh Z2VzOyArK2ksIHN0YXJ0ICs9IFBBR0VfU0laRSkgewo+IC0JCQl1bnNpZ25lZCBsb25nIHBmbjsK PiAtCQkJaW50IHJldCA9IGZvbGxvd19wZm4odm1hLCBzdGFydCwgJnBmbik7Cj4gLQkJCWlmIChy ZXQpCj4gLQkJCQlyZXR1cm4gcmV0Owo+IC0KPiAtCQkJcGFnZXNbaV0gPSBwZm5fdG9fcGFnZShw Zm4pOwo+IC0JCX0KPiAtCj4gLQkJaWYgKGkgIT0gbnBhZ2VzKSB7Cj4gLQkJCURSTV9FUlJPUigi ZmFpbGVkIHRvIGdldCB1c2VyX3BhZ2VzLlxuIik7Cj4gLQkJCXJldHVybiAtRUlOVkFMOwo+IC0J CX0KPiAtCj4gLQkJcmV0dXJuIDA7Cj4gLQl9Cj4gLQo+IC0JZ2V0X25wYWdlcyA9IGdldF91c2Vy X3BhZ2VzKGN1cnJlbnQsIGN1cnJlbnQtPm1tLCBzdGFydCwKPiAtCQkJCQlucGFnZXMsIDEsIDEs IHBhZ2VzLCBOVUxMKTsKPiAtCWdldF9ucGFnZXMgPSBtYXgoZ2V0X25wYWdlcywgMCk7Cj4gLQlp ZiAoZ2V0X25wYWdlcyAhPSBucGFnZXMpIHsKPiAtCQlEUk1fRVJST1IoImZhaWxlZCB0byBnZXQg dXNlcl9wYWdlcy5cbiIpOwo+IC0JCXdoaWxlIChnZXRfbnBhZ2VzKQo+IC0JCQlwdXRfcGFnZShw YWdlc1stLWdldF9ucGFnZXNdKTsKPiAtCQlyZXR1cm4gLUVGQVVMVDsKPiAtCX0KPiAtCj4gLQly ZXR1cm4gMDsKPiAtfQo+IC0KPiAtdm9pZCBleHlub3NfZ2VtX3B1dF9wYWdlc190b191c2VycHRy KHN0cnVjdCBwYWdlICoqcGFnZXMsCj4gLQkJCQkJdW5zaWduZWQgaW50IG5wYWdlcywKPiAtCQkJ CQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKPiAtewo+IC0JaWYgKCF2bWFfaXNfaW8odm1h KSkgewo+IC0JCXVuc2lnbmVkIGludCBpOwo+IC0KPiAtCQlmb3IgKGkgPSAwOyBpIDwgbnBhZ2Vz OyBpKyspIHsKPiAtCQkJc2V0X3BhZ2VfZGlydHlfbG9jayhwYWdlc1tpXSk7Cj4gLQo+IC0JCQkv Kgo+IC0JCQkgKiB1bmRvIHRoZSByZWZlcmVuY2Ugd2UgdG9vayB3aGVuIHBvcHVsYXRpbmcKPiAt CQkJICogdGhlIHRhYmxlLgo+IC0JCQkgKi8KPiAtCQkJcHV0X3BhZ2UocGFnZXNbaV0pOwo+IC0J CX0KPiAtCX0KPiAtfQo+IC0KPiAgaW50IGV4eW5vc19nZW1fbWFwX3NndF93aXRoX2RtYShzdHJ1 Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKPiAgCQkJCXN0cnVjdCBzZ190YWJsZSAqc2d0LAo+ICAJ CQkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZ2VtLmggYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19kcm1fZ2VtLmgKPiBpbmRleCAxNTkyYzBiLi4wN2MwMGEzIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9nZW0uaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zX2RybV9nZW0uaAo+IEBAIC0yMSw3ICsyMSw2IEBACj4gICAqIGV4 eW5vcyBkcm0gZ2VtIGJ1ZmZlciBzdHJ1Y3R1cmUuCj4gICAqCj4gICAqIEBrdmFkZHI6IGtlcm5l bCB2aXJ0dWFsIGFkZHJlc3MgdG8gYWxsb2NhdGVkIG1lbW9yeSByZWdpb24uCj4gLSAqICp1c2Vy cHRyOiB1c2VyIHNwYWNlIGFkZHJlc3MuCj4gICAqIEBkbWFfYWRkcjogYnVzIGFkZHJlc3MoYWNj ZXNzZWQgYnkgZG1hKSB0byBhbGxvY2F0ZWQgbWVtb3J5IHJlZ2lvbi4KPiAgICoJLSB0aGlzIGFk ZHJlc3MgY291bGQgYmUgcGh5c2ljYWwgYWRkcmVzcyB3aXRob3V0IElPTU1VIGFuZAo+ICAgKglk ZXZpY2UgYWRkcmVzcyB3aXRoIElPTU1VLgo+IEBAIC0yOSwxOSArMjgsMTUgQEAKPiAgICogQHBh Z2VzOiBBcnJheSBvZiBiYWNraW5nIHBhZ2VzLgo+ICAgKiBAc2d0OiBzZyB0YWJsZSB0byB0cmFu c2ZlciBwYWdlIGRhdGEuCj4gICAqIEBzaXplOiBzaXplIG9mIGFsbG9jYXRlZCBtZW1vcnkgcmVn aW9uLgo+IC0gKiBAcGZubWFwOiBpbmRpY2F0ZSB3aGV0aGVyIG1lbW9yeSByZWdpb24gZnJvbSB1 c2VycHRyIGlzIG1tYXBlZCB3aXRoCj4gLSAqCVZNX1BGTk1BUCBvciBub3QuCj4gICAqLwo+ICBz dHJ1Y3QgZXh5bm9zX2RybV9nZW1fYnVmIHsKPiAgCXZvaWQgX19pb21lbQkJKmt2YWRkcjsKPiAt CXVuc2lnbmVkIGxvbmcJCXVzZXJwdHI7Cj4gIAlkbWFfYWRkcl90CQlkbWFfYWRkcjsKPiAgCXN0 cnVjdCBkbWFfYXR0cnMJZG1hX2F0dHJzOwo+ICAJdW5zaWduZWQgaW50CQl3cml0ZTsKPiAgCXN0 cnVjdCBwYWdlCQkqKnBhZ2VzOwo+ICAJc3RydWN0IHNnX3RhYmxlCQkqc2d0Owo+ICAJdW5zaWdu ZWQgbG9uZwkJc2l6ZTsKPiAtCWJvb2wJCQlwZm5tYXA7Cj4gIH07Cj4gIAo+ICAvKgo+IEBAIC0x MjUsMTAgKzEyMCw2IEBAIGludCBleHlub3NfZHJtX2dlbV9tbWFwX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIGludCBleHlub3NfZHJtX2dlbV9tbWFwX2J1ZmZl cihzdHJ1Y3QgZmlsZSAqZmlscCwKPiAgCQkJCSAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hKTsKPiAgCj4gLS8qIG1hcCB1c2VyIHNwYWNlIGFsbG9jYXRlZCBieSBtYWxsb2MgdG8gcGFn ZXMuICovCj4gLWludCBleHlub3NfZHJtX2dlbV91c2VycHRyX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gLQkJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdik7Cj4gLQo+ICAvKiBnZXQgYnVmZmVyIGluZm9ybWF0aW9uIHRvIG1lbW9yeSByZWdpb24g YWxsb2NhdGVkIGJ5IGdlbS4gKi8KPiAgaW50IGV4eW5vc19kcm1fZ2VtX2dldF9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJCQkJICAgICAgc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXYpOwo+IEBAIC0xNjgsMTcgKzE1OSw2IEBAIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqZXh5bm9zX2dlbV9nZXRfdm1hKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKPiAg LyogcmVsZWFzZSBhIHVzZXJzcGFjZSB2aXJ0dWFsIG1lbW9yeSBhcmVhLiAqLwo+ICB2b2lkIGV4 eW5vc19nZW1fcHV0X3ZtYShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7Cj4gIAo+IC0vKiBn ZXQgcGFnZXMgZnJvbSB1c2VyIHNwYWNlLiAqLwo+IC1pbnQgZXh5bm9zX2dlbV9nZXRfcGFnZXNf ZnJvbV91c2VycHRyKHVuc2lnbmVkIGxvbmcgc3RhcnQsCj4gLQkJCQkJCXVuc2lnbmVkIGludCBu cGFnZXMsCj4gLQkJCQkJCXN0cnVjdCBwYWdlICoqcGFnZXMsCj4gLQkJCQkJCXN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hKTsKPiAtCj4gLS8qIGRyb3AgdGhlIHJlZmVyZW5jZSB0byBwYWdlcy4g Ki8KPiAtdm9pZCBleHlub3NfZ2VtX3B1dF9wYWdlc190b191c2VycHRyKHN0cnVjdCBwYWdlICoq cGFnZXMsCj4gLQkJCQkJdW5zaWduZWQgaW50IG5wYWdlcywKPiAtCQkJCQlzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnZtYSk7Cj4gLQo+ICAvKiBtYXAgc2d0IHdpdGggZG1hIHJlZ2lvbi4gKi8KPiAg aW50IGV4eW5vc19nZW1fbWFwX3NndF93aXRoX2RtYShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2Rl diwKPiAgCQkJCXN0cnVjdCBzZ190YWJsZSAqc2d0LAo+IAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK