From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Rui Subject: Re: [PATCH] drm/amdgpu: simplify Raven, Raven2, and Picasso handling Date: Fri, 14 Sep 2018 15:22:34 +0800 Message-ID: <20180914065234.GA3852@hr-amur2> References: <20180913204527.17965-1-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180913204527.17965-1-alexander.deucher-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Alex Deucher Cc: Alex Deucher , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org T24gVGh1LCBTZXAgMTMsIDIwMTggYXQgMDM6NDU6MjdQTSAtMDUwMCwgQWxleCBEZXVjaGVyIHdy b3RlOgo+IFRyZWF0IHRoZW0gYWxsIGFzIFJhdmVuIHJhdGhlciB0aGFuIGFkZGluZyBhIG5ldyBw aWNhc3NvCj4gYXNpYyB0eXBlLiAgVGhpcyBzaW1wbGlmaWVzIGEgbG90IG9mIGNvZGUgYW5kIGFs c28gaGFuZGxlcyB0aGUKPiBjYXNlIG9mIHJ2MiBjaGlwcyB3aXRoIHRoZSAweDE1ZDggcGNpIGlk LiAgSXQgYWxzbyBmaXhlcyBkbWN1Cj4gZncgaGFuZGxpbmcgZm9yIHBpY2Fzc28uCgpXZSBkcm9w IHRoZSBQaWNhc3NvIGFzaWMgdHlwZSwgYW5kIGtlZXAgdGhlIHNlcGFyYXRlIHVjb2RlLgpJdCdz IGZpbmUuIFdlIGNhbiBhbHNvIHN1cHBvcnQgdGhlIFJWMiBQQ08gcmVmcmVzaCB3aXRoIHRoZSBj aGFuZ2UuCgpBY2tlZC1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4KCj4gCj4gU2ln bmVkLW9mZi1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgo+IC0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgICAgICAgICB8 IDEwICstLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jICAgICAg ICAgICAgfCAgMyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHNwLmMg ICAgICAgICAgICB8ICAxIC0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Vj b2RlLmMgICAgICAgICAgfCAgMSAtCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV92Y24uYyAgICAgICAgICAgIHwgIDcgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV92bS5jICAgICAgICAgICAgIHwgIDQgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ2Z4X3Y5XzAuYyAgICAgICAgICAgICAgfCAzMiArKy0tLS0tLS0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jICAgICAgICAgICAgICB8ICA0IC0tCj4gIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3YxXzAuYyAgICAgICAgICAgIHwgMTEgKyst LQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9wc3BfdjEwXzAuYyAgICAgICAgICAgICB8 ICA1ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jICAgICAgICAg ICAgIHwgMTEgKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5jICAgICAg ICAgICAgICAgICB8IDY2ICsrKysrKysrKystLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYyAgfCAgOCArLS0KPiAgZHJpdmVycy9n cHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvaHdtZ3IuYyAgICAgICAgfCAgMSAtCj4gIC4uLi9n cHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvcHJvY2Vzc3BwdGFibGVzLmMgIHwgIDggKy0tCj4g IGluY2x1ZGUvZHJtL2FtZF9hc2ljX3R5cGUuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEg LQo+ICAxNiBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCAxMTMgZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZp Y2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+IGluZGV4 IDc2MmRjNWY4ODZjZC4uMzU0ZjA1NTdkNjk3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+IEBAIC05MSw3ICs5MSw2IEBAIHN0YXRpYyBjb25zdCBj aGFyICphbWRncHVfYXNpY19uYW1lW10gPSB7Cj4gIAkiVkVHQTEyIiwKPiAgCSJWRUdBMjAiLAo+ ICAJIlJBVkVOIiwKPiAtCSJQSUNBU1NPIiwKPiAgCSJMQVNUIiwKPiAgfTsKPiAgCj4gQEAgLTEz MzcsMTIgKzEzMzYsMTEgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX3BhcnNlX2dwdV9pbmZv X2Z3KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAJY2FzZSBDSElQX1JBVkVOOgo+ICAJ CWlmIChhZGV2LT5yZXZfaWQgPj0gOCkKPiAgCQkJY2hpcF9uYW1lID0gInJhdmVuMiI7Cj4gKwkJ ZWxzZSBpZiAoYWRldi0+cGRldi0+ZGV2aWNlID09IDB4MTVkOCkKPiArCQkJY2hpcF9uYW1lID0g InBpY2Fzc28iOwo+ICAJCWVsc2UKPiAgCQkJY2hpcF9uYW1lID0gInJhdmVuIjsKPiAgCQlicmVh azsKPiAtCWNhc2UgQ0hJUF9QSUNBU1NPOgo+IC0JCWNoaXBfbmFtZSA9ICJwaWNhc3NvIjsKPiAt CQlicmVhazsKPiAgCX0KPiAgCj4gIAlzbnByaW50Zihmd19uYW1lLCBzaXplb2YoZndfbmFtZSks ICJhbWRncHUvJXNfZ3B1X2luZm8uYmluIiwgY2hpcF9uYW1lKTsKPiBAQCAtMTQ2OCw4ICsxNDY2 LDcgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX2lwX2Vhcmx5X2luaXQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCj4gIAljYXNlIENISVBfVkVHQTEyOgo+ICAJY2FzZSBDSElQX1ZFR0Ey MDoKPiAgCWNhc2UgQ0hJUF9SQVZFTjoKPiAtCWNhc2UgQ0hJUF9QSUNBU1NPOgo+IC0JCWlmICgo YWRldi0+YXNpY190eXBlID09IENISVBfUkFWRU4pIHx8IChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJ UF9QSUNBU1NPKSkKPiArCQlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfUkFWRU4pCj4gIAkJ CWFkZXYtPmZhbWlseSA9IEFNREdQVV9GQU1JTFlfUlY7Cj4gIAkJZWxzZQo+ICAJCQlhZGV2LT5m YW1pbHkgPSBBTURHUFVfRkFNSUxZX0FJOwo+IEBAIC0yMTgzLDcgKzIxODAsNiBAQCBib29sIGFt ZGdwdV9kZXZpY2VfYXNpY19oYXNfZGNfc3VwcG9ydChlbnVtIGFtZF9hc2ljX3R5cGUgYXNpY190 eXBlKQo+ICAJY2FzZSBDSElQX1ZFR0EyMDoKPiAgI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURf RENfRENOMV8wKQo+ICAJY2FzZSBDSElQX1JBVkVOOgo+IC0JY2FzZSBDSElQX1BJQ0FTU086Cj4g ICNlbmRpZgo+ICAJCXJldHVybiBhbWRncHVfZGMgIT0gMDsKPiAgI2VuZGlmCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+IGluZGV4IDMzZTE4NTZmYjhjYy4uZmYxMGRm NGY1MGQzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9k cnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+IEBA IC04NzQsOCArODc0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHBjaWlk bGlzdFtdID0gewo+ICAJezB4MTAwMiwgMHg2NkFGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAw LCAwLCBDSElQX1ZFR0EyMH0sCj4gIAkvKiBSYXZlbiAqLwo+ICAJezB4MTAwMiwgMHgxNWRkLCBQ Q0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JBVkVOfEFNRF9JU19BUFV9LAo+IC0J LyogUGljYXNzbyAqLwo+IC0JezB4MTAwMiwgMHgxNWQ4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lE LCAwLCAwLCBDSElQX1BJQ0FTU098QU1EX0lTX0FQVX0sCj4gKwl7MHgxMDAyLCAweDE1ZDgsIFBD SV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUkFWRU58QU1EX0lTX0FQVX0sCj4gIAo+ ICAJezAsIDAsIDB9Cj4gIH07Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9wc3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wc3Au Ywo+IGluZGV4IDYxMWMwNmQzNjAwYS4uYmQzOTdkMjkxNmZiIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wc3AuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9wc3AuYwo+IEBAIC01Niw3ICs1Niw2IEBAIHN0YXRpYyBpbnQg cHNwX3N3X2luaXQodm9pZCAqaGFuZGxlKQo+ICAJCXBzcF92M18xX3NldF9wc3BfZnVuY3MocHNw KTsKPiAgCQlicmVhazsKPiAgCWNhc2UgQ0hJUF9SQVZFTjoKPiAtCWNhc2UgQ0hJUF9QSUNBU1NP Ogo+ICAJCXBzcF92MTBfMF9zZXRfcHNwX2Z1bmNzKHBzcCk7Cj4gIAkJYnJlYWs7Cj4gIAljYXNl IENISVBfVkVHQTIwOgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdWNvZGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91Y29kZS5j Cj4gaW5kZXggYWNiNGM2NmZlODliLi4xZmE4YmMzMzc4NTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Vjb2RlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdWNvZGUuYwo+IEBAIC0zMDMsNyArMzAzLDYgQEAgYW1kZ3B1 X3Vjb2RlX2dldF9sb2FkX3R5cGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBsb2Fk X3R5cGUpCj4gIAkJCXJldHVybiBBTURHUFVfRldfTE9BRF9TTVU7Cj4gIAljYXNlIENISVBfVkVH QTEwOgo+ICAJY2FzZSBDSElQX1JBVkVOOgo+IC0JY2FzZSBDSElQX1BJQ0FTU086Cj4gIAljYXNl IENISVBfVkVHQTEyOgo+ICAJY2FzZSBDSElQX1ZFR0EyMDoKPiAgCQlpZiAoIWxvYWRfdHlwZSkK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jCj4gaW5kZXggYTc0NDk4Y2U4 N2ZmLi5hNzM2NzRmOWEwZjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3Zjbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3Zjbi5jCj4gQEAgLTYzLDE0ICs2MywxMyBAQCBpbnQgYW1kZ3B1X3Zjbl9zd19pbml0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAKPiAgCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7 Cj4gIAljYXNlIENISVBfUkFWRU46Cj4gLSAgICAgICAgaWYgKGFkZXYtPnJldl9pZCA+PSA4KQo+ ICsJCWlmIChhZGV2LT5yZXZfaWQgPj0gOCkKPiAgCQkJZndfbmFtZSA9IEZJUk1XQVJFX1JBVkVO MjsKPiArCQllbHNlIGlmIChhZGV2LT5wZGV2LT5kZXZpY2UgPT0gMHgxNWQ4KQo+ICsJCQlmd19u YW1lID0gRklSTVdBUkVfUElDQVNTTzsKPiAgCQllbHNlCj4gIAkJCWZ3X25hbWUgPSBGSVJNV0FS RV9SQVZFTjsKPiAgCQlicmVhazsKPiAtCWNhc2UgQ0hJUF9QSUNBU1NPOgo+IC0JCWZ3X25hbWUg PSBGSVJNV0FSRV9QSUNBU1NPOwo+IC0JCWJyZWFrOwo+ICAJZGVmYXVsdDoKPiAgCQlyZXR1cm4g LUVJTlZBTDsKPiAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+IGlu ZGV4IDdhOWZmZTllYjhiYi4uYTdmOWFhYTQ3YzQ5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3ZtLmMKPiBAQCAtMjk4MSw3ICsyOTgxLDcgQEAgaW50IGFtZGdwdV92bV9p bml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPiAg CQl2bS0+dXNlX2NwdV9mb3JfdXBkYXRlID0gISEoYWRldi0+dm1fbWFuYWdlci52bV91cGRhdGVf bW9kZSAmCj4gIAkJCQkJCUFNREdQVV9WTV9VU0VfQ1BVX0ZPUl9DT01QVVRFKTsKPiAgCj4gLQkJ aWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOIHx8IGFkZXYtPmFzaWNfdHlwZSA9PSBD SElQX1BJQ0FTU08pCj4gKwkJaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOKQo+ICAJ CQl2bS0+cHRlX3N1cHBvcnRfYXRzID0gdHJ1ZTsKPiAgCX0gZWxzZSB7Cj4gIAkJdm0tPnVzZV9j cHVfZm9yX3VwZGF0ZSA9ICEhKGFkZXYtPnZtX21hbmFnZXIudm1fdXBkYXRlX21vZGUgJgo+IEBA IC0zMDczLDcgKzMwNzMsNyBAQCBpbnQgYW1kZ3B1X3ZtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLAo+ICAgKi8KPiAgaW50IGFtZGdwdV92bV9t YWtlX2NvbXB1dGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0g KnZtLCB1bnNpZ25lZCBpbnQgcGFzaWQpCj4gIHsKPiAtCWJvb2wgcHRlX3N1cHBvcnRfYXRzID0g KGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOIHx8IGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQ X1BJQ0FTU08pOwo+ICsJYm9vbCBwdGVfc3VwcG9ydF9hdHMgPSAoYWRldi0+YXNpY190eXBlID09 IENISVBfUkFWRU4pOwo+ICAJaW50IHI7Cj4gIAo+ICAJciA9IGFtZGdwdV9ib19yZXNlcnZlKHZt LT5yb290LmJhc2UuYm8sIHRydWUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nZnhfdjlfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAu Ywo+IGluZGV4IDQ5OTFhZTAwYTRjYS4uNzVhOTE2NjMwMTlmIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OV8wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nZnhfdjlfMC5jCj4gQEAgLTI3Nyw3ICsyNzcsNiBAQCBzdGF0aWMgY29uc3Qg dTMyIEdGWF9STENfU1JNX0lOREVYX0NOVExfREFUQV9PRkZTRVRTW10gPQo+ICAjZGVmaW5lIFZF R0ExMF9HQl9BRERSX0NPTkZJR19HT0xERU4gMHgyYTExNDA0Mgo+ICAjZGVmaW5lIFZFR0ExMl9H Ql9BRERSX0NPTkZJR19HT0xERU4gMHgyNDEwNDA0MQo+ICAjZGVmaW5lIFJBVkVOX0dCX0FERFJf Q09ORklHX0dPTERFTiAweDI0MDAwMDQyCj4gLSNkZWZpbmUgUElDQVNTT19HQl9BRERSX0NPTkZJ R19HT0xERU4gMHgyNDAwMDA0Mgo+ICAjZGVmaW5lIFJBVkVOMl9HQl9BRERSX0NPTkZJR19HT0xE RU4gMHgyNjAxMzA0MQo+ICAKPiAgc3RhdGljIHZvaWQgZ2Z4X3Y5XzBfc2V0X3JpbmdfZnVuY3Mo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+IEBAIC0zMjksMTQgKzMyOCw2IEBAIHN0YXRp YyB2b2lkIGdmeF92OV8wX2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKPiAgCQkJCQkJCWdvbGRlbl9zZXR0aW5nc19nY185XzFfcnYxLAo+ICAJCQkJCQkJ QVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3NfZ2NfOV8xX3J2MSkpOwo+ICAJCWJyZWFrOwo+IC0J Y2FzZSBDSElQX1BJQ0FTU086Cj4gLQkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShh ZGV2LAo+IC0JCQkJCQkgZ29sZGVuX3NldHRpbmdzX2djXzlfMSwKPiAtCQkJCQkJIEFSUkFZX1NJ WkUoZ29sZGVuX3NldHRpbmdzX2djXzlfMSkpOwo+IC0JCXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJf c2VxdWVuY2UoYWRldiwKPiAtCQkJCQkJIGdvbGRlbl9zZXR0aW5nc19nY185XzFfcnYxLAo+IC0J CQkJCQkgQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3NfZ2NfOV8xX3J2MSkpOwo+IC0JCWJyZWFr Owo+ICAJZGVmYXVsdDoKPiAgCQlicmVhazsKPiAgCX0KPiBAQCAtNjE3LDEyICs2MDgsMTEgQEAg c3RhdGljIGludCBnZnhfdjlfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKPiAgCWNhc2UgQ0hJUF9SQVZFTjoKPiAgCQlpZiAoYWRldi0+cmV2X2lkID49IDgpCj4g IAkJCWNoaXBfbmFtZSA9ICJyYXZlbjIiOwo+ICsJCWVsc2UgaWYgKGFkZXYtPnBkZXYtPmRldmlj ZSA9PSAweDE1ZDgpCj4gKwkJCWNoaXBfbmFtZSA9ICJwaWNhc3NvIjsKPiAgCQllbHNlCj4gIAkJ CWNoaXBfbmFtZSA9ICJyYXZlbiI7Cj4gIAkJYnJlYWs7Cj4gLQljYXNlIENISVBfUElDQVNTTzoK PiAtCQljaGlwX25hbWUgPSAicGljYXNzbyI7Cj4gLQkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+ICAJ CUJVRygpOwo+ICAJfQo+IEBAIC0xMDc2LDcgKzEwNjYsNyBAQCBzdGF0aWMgaW50IGdmeF92OV8w X3JsY19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAJCWFtZGdwdV9ib191bnJl c2VydmUoYWRldi0+Z2Z4LnJsYy5jbGVhcl9zdGF0ZV9vYmopOwo+ICAJfQo+ICAKPiAtCWlmIChh ZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9SQVZFTiB8fCBhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9Q SUNBU1NPKSB7Cj4gKwlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfUkFWRU4pIHsKPiAgCQkv KiBUT0RPOiBkb3VibGUgY2hlY2sgdGhlIGNwX3RhYmxlX3NpemUgZm9yIFJWICovCj4gIAkJYWRl di0+Z2Z4LnJsYy5jcF90YWJsZV9zaXplID0gQUxJR04oOTYgKiA1ICogNCwgMjA0OCkgKyAoNjQg KiAxMDI0KTsgLyogSlQgKyBHRFMgKi8KPiAgCQlyID0gYW1kZ3B1X2JvX2NyZWF0ZV9yZXNlcnZl ZChhZGV2LCBhZGV2LT5nZngucmxjLmNwX3RhYmxlX3NpemUsCj4gQEAgLTEzMjgsMTQgKzEzMTgs NiBAQCBzdGF0aWMgaW50IGdmeF92OV8wX2dwdV9lYXJseV9pbml0KHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQo+ICAJCWVsc2UKPiAgCQkJZ2JfYWRkcl9jb25maWcgPSBSQVZFTl9HQl9BRERS X0NPTkZJR19HT0xERU47Cj4gIAkJYnJlYWs7Cj4gLQljYXNlIENISVBfUElDQVNTTzoKPiAtCQlh ZGV2LT5nZnguY29uZmlnLm1heF9od19jb250ZXh0cyA9IDg7Cj4gLQkJYWRldi0+Z2Z4LmNvbmZp Zy5zY19wcmltX2ZpZm9fc2l6ZV9mcm9udGVuZCA9IDB4MjA7Cj4gLQkJYWRldi0+Z2Z4LmNvbmZp Zy5zY19wcmltX2ZpZm9fc2l6ZV9iYWNrZW5kID0gMHgxMDA7Cj4gLQkJYWRldi0+Z2Z4LmNvbmZp Zy5zY19oaXpfdGlsZV9maWZvX3NpemUgPSAweDMwOwo+IC0JCWFkZXYtPmdmeC5jb25maWcuc2Nf ZWFybHl6X3RpbGVfZmlmb19zaXplID0gMHg0QzA7Cj4gLQkJZ2JfYWRkcl9jb25maWcgPSBQSUNB U1NPX0dCX0FERFJfQ09ORklHX0dPTERFTjsKPiAtCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gIAkJ QlVHKCk7Cj4gIAkJYnJlYWs7Cj4gQEAgLTE2MTQsNyArMTU5Niw2IEBAIHN0YXRpYyBpbnQgZ2Z4 X3Y5XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCj4gIAljYXNlIENISVBfVkVHQTEyOgo+ICAJY2Fz ZSBDSElQX1ZFR0EyMDoKPiAgCWNhc2UgQ0hJUF9SQVZFTjoKPiAtCWNhc2UgQ0hJUF9QSUNBU1NP Ogo+ICAJCWFkZXYtPmdmeC5tZWMubnVtX21lYyA9IDI7Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0 Ogo+IEBAIC0xNzc2LDcgKzE3NTcsNyBAQCBzdGF0aWMgaW50IGdmeF92OV8wX3N3X2Zpbmkodm9p ZCAqaGFuZGxlKQo+ICAJYW1kZ3B1X2JvX2ZyZWVfa2VybmVsKCZhZGV2LT5nZngucmxjLmNsZWFy X3N0YXRlX29iaiwKPiAgCQkJCSZhZGV2LT5nZngucmxjLmNsZWFyX3N0YXRlX2dwdV9hZGRyLAo+ ICAJCQkJKHZvaWQgKiopJmFkZXYtPmdmeC5ybGMuY3NfcHRyKTsKPiAtCWlmICgoYWRldi0+YXNp Y190eXBlID09IENISVBfUkFWRU4pIHx8IChhZGV2LT5hc2ljX3R5cGUgPT0gQ0hJUF9QSUNBU1NP KSkgewo+ICsJaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOKSB7Cj4gIAkJYW1kZ3B1 X2JvX2ZyZWVfa2VybmVsKCZhZGV2LT5nZngucmxjLmNwX3RhYmxlX29iaiwKPiAgCQkJCSZhZGV2 LT5nZngucmxjLmNwX3RhYmxlX2dwdV9hZGRyLAo+ICAJCQkJKHZvaWQgKiopJmFkZXYtPmdmeC5y bGMuY3BfdGFibGVfcHRyKTsKPiBAQCAtMjQ0Miw3ICsyNDIzLDcgQEAgc3RhdGljIGludCBnZnhf djlfMF9ybGNfcmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAJCQlyZXR1cm4g cjsKPiAgCX0KPiAgCj4gLQlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfUkFWRU4gfHwgYWRl di0+YXNpY190eXBlID09IENISVBfUElDQVNTTykgewo+ICsJaWYgKGFkZXYtPmFzaWNfdHlwZSA9 PSBDSElQX1JBVkVOKSB7Cj4gIAkJaWYgKGFtZGdwdV9sYnB3ICE9IDApCj4gIAkJCWdmeF92OV8w X2VuYWJsZV9sYnB3KGFkZXYsIHRydWUpOwo+ICAJCWVsc2UKPiBAQCAtMzg0Niw3ICszODI3LDYg QEAgc3RhdGljIGludCBnZnhfdjlfMF9zZXRfcG93ZXJnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxl LAo+ICAKPiAgCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7Cj4gIAljYXNlIENISVBfUkFWRU46 Cj4gLQljYXNlIENISVBfUElDQVNTTzoKPiAgCQlpZiAoIWVuYWJsZSkgewo+ICAJCQlhbWRncHVf Z2Z4X29mZl9jdHJsKGFkZXYsIGZhbHNlKTsKPiAgCQkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5j KCZhZGV2LT5nZnguZ2Z4X29mZl9kZWxheV93b3JrKTsKPiBAQCAtMzkwMSw3ICszODgxLDYgQEAg c3RhdGljIGludCBnZnhfdjlfMF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAo+ ICAJY2FzZSBDSElQX1ZFR0ExMjoKPiAgCWNhc2UgQ0hJUF9WRUdBMjA6Cj4gIAljYXNlIENISVBf UkFWRU46Cj4gLQljYXNlIENISVBfUElDQVNTTzoKPiAgCQlnZnhfdjlfMF91cGRhdGVfZ2Z4X2Ns b2NrX2dhdGluZyhhZGV2LAo+ICAJCQkJCQkgc3RhdGUgPT0gQU1EX0NHX1NUQVRFX0dBVEUgPyB0 cnVlIDogZmFsc2UpOwo+ICAJCWJyZWFrOwo+IEBAIC00OTExLDcgKzQ4OTAsNiBAQCBzdGF0aWMg dm9pZCBnZnhfdjlfMF9zZXRfcmxjX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ ICAJY2FzZSBDSElQX1ZFR0ExMjoKPiAgCWNhc2UgQ0hJUF9WRUdBMjA6Cj4gIAljYXNlIENISVBf UkFWRU46Cj4gLQljYXNlIENISVBfUElDQVNTTzoKPiAgCQlhZGV2LT5nZngucmxjLmZ1bmNzID0g JmdmeF92OV8wX3JsY19mdW5jczsKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4gaW5kZXggMGFkMTU4NmMyOTNmLi5hYWQzYzdjNWZi M2EgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMKPiBAQCAtODQ2LDcg Kzg0Niw2IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfbWNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKPiAgCQkJYWRldi0+Z21jLmdhcnRfc2l6ZSA9IDUxMlVMTCA8PCAyMDsKPiAgCQkJ YnJlYWs7Cj4gIAkJY2FzZSBDSElQX1JBVkVOOiAgIC8qIERDRSBTRyBzdXBwb3J0ICovCj4gLQkJ Y2FzZSBDSElQX1BJQ0FTU086ICAgLyogRENFIFNHIHN1cHBvcnQgKi8KPiAgCQkJYWRldi0+Z21j LmdhcnRfc2l6ZSA9IDEwMjRVTEwgPDwgMjA7Cj4gIAkJCWJyZWFrOwo+ICAJCX0KPiBAQCAtOTM1 LDcgKzkzNCw2IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCj4g IAlhZGV2LT5nbWMudnJhbV90eXBlID0gYW1kZ3B1X2F0b21maXJtd2FyZV9nZXRfdnJhbV90eXBl KGFkZXYpOwo+ICAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKPiAgCWNhc2UgQ0hJUF9SQVZF TjoKPiAtCWNhc2UgQ0hJUF9QSUNBU1NPOgo+ICAJCWlmIChhZGV2LT5yZXZfaWQgPT0gMHgwIHx8 IGFkZXYtPnJldl9pZCA9PSAweDEpIHsKPiAgCQkJYW1kZ3B1X3ZtX2FkanVzdF9zaXplKGFkZXYs IDI1NiAqIDEwMjQsIDksIDMsIDQ4KTsKPiAgCQl9IGVsc2Ugewo+IEBAIC0xMDYyLDcgKzEwNjAs NiBAQCBzdGF0aWMgdm9pZCBnbWNfdjlfMF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCj4gIAljYXNlIENISVBfVkVHQTEyOgo+ICAJCWJyZWFrOwo+ICAJ Y2FzZSBDSElQX1JBVkVOOgo+IC0JY2FzZSBDSElQX1BJQ0FTU086Cj4gIAkJc29jMTVfcHJvZ3Jh bV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAo+ICAJCQkJCQlnb2xkZW5fc2V0dGluZ3NfYXRodWJf MV8wXzAsCj4gIAkJCQkJCUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX2F0aHViXzFfMF8wKSk7 Cj4gQEAgLTEwOTcsNyArMTA5NCw2IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfZ2FydF9lbmFibGUo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gIAo+ICAJc3dpdGNoIChhZGV2LT5hc2ljX3R5 cGUpIHsKPiAgCWNhc2UgQ0hJUF9SQVZFTjoKPiAtCWNhc2UgQ0hJUF9QSUNBU1NPOgo+ICAJCW1t aHViX3YxXzBfdXBkYXRlX3Bvd2VyX2dhdGluZyhhZGV2LCB0cnVlKTsKPiAgCQlicmVhazsKPiAg CWRlZmF1bHQ6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHVi X3YxXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3YxXzAuYwo+IGluZGV4 IDJhMTI2YzY5NTBjNy4uODA2OThiNWZmYTRhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L21taHViX3YxXzAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L21taHViX3YxXzAuYwo+IEBAIC00MTIsNyArNDEyLDcgQEAgc3RhdGljIHZvaWQgbW1odWJf djFfMF91cGRhdGVfbWVkaXVtX2dyYWluX2Nsb2NrX2dhdGluZyhzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWQKPiAgCj4gIAlkZWYgID0gZGF0YSAgPSBSUkVHMzJfU09DMTUoTU1IVUIsIDAsIG1tQVRD X0wyX01JU0NfQ0cpOwo+ICAKPiAtCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9SQVZFTiAm JiBhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9QSUNBU1NPKSB7Cj4gKwlpZiAoYWRldi0+YXNpY190 eXBlICE9IENISVBfUkFWRU4pIHsKPiAgCQlkZWYxID0gZGF0YTEgPSBSUkVHMzJfU09DMTUoTU1I VUIsIDAsIG1tREFHQjBfQ05UTF9NSVNDMik7Cj4gIAkJZGVmMiA9IGRhdGEyID0gUlJFRzMyX1NP QzE1KE1NSFVCLCAwLCBtbURBR0IxX0NOVExfTUlTQzIpOwo+ICAJfSBlbHNlCj4gQEAgLTQyOCw3 ICs0MjgsNyBAQCBzdGF0aWMgdm9pZCBtbWh1Yl92MV8wX3VwZGF0ZV9tZWRpdW1fZ3JhaW5fY2xv Y2tfZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZAo+ICAJCSAgICAgICAgICAgREFHQjBf Q05UTF9NSVNDMl9fRElTQUJMRV9UTEJXUl9DR19NQVNLIHwKPiAgCQkgICAgICAgICAgIERBR0Iw X0NOVExfTUlTQzJfX0RJU0FCTEVfVExCUkRfQ0dfTUFTSyk7Cj4gIAo+IC0JCWlmIChhZGV2LT5h c2ljX3R5cGUgIT0gQ0hJUF9SQVZFTiAmJiBhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9QSUNBU1NP KQo+ICsJCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9SQVZFTikKPiAgCQkJZGF0YTIgJj0g fihEQUdCMV9DTlRMX01JU0MyX19ESVNBQkxFX1dSUkVRX0NHX01BU0sgfAo+ICAJCQkgICAgICAg ICAgIERBR0IxX0NOVExfTUlTQzJfX0RJU0FCTEVfV1JSRVRfQ0dfTUFTSyB8Cj4gIAkJCSAgICAg ICAgICAgREFHQjFfQ05UTF9NSVNDMl9fRElTQUJMRV9SRFJFUV9DR19NQVNLIHwKPiBAQCAtNDQ1 LDcgKzQ0NSw3IEBAIHN0YXRpYyB2b2lkIG1taHViX3YxXzBfdXBkYXRlX21lZGl1bV9ncmFpbl9j bG9ja19nYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkCj4gIAkJCSAgREFHQjBfQ05UTF9N SVNDMl9fRElTQUJMRV9UTEJXUl9DR19NQVNLIHwKPiAgCQkJICBEQUdCMF9DTlRMX01JU0MyX19E SVNBQkxFX1RMQlJEX0NHX01BU0spOwo+ICAKPiAtCQlpZiAoYWRldi0+YXNpY190eXBlICE9IENI SVBfUkFWRU4gJiYgYWRldi0+YXNpY190eXBlICE9IENISVBfUElDQVNTTykKPiArCQlpZiAoYWRl di0+YXNpY190eXBlICE9IENISVBfUkFWRU4pCj4gIAkJCWRhdGEyIHw9IChEQUdCMV9DTlRMX01J U0MyX19ESVNBQkxFX1dSUkVRX0NHX01BU0sgfAo+ICAJCQkgICAgICAgICAgREFHQjFfQ05UTF9N SVNDMl9fRElTQUJMRV9XUlJFVF9DR19NQVNLIHwKPiAgCQkJICAgICAgICAgIERBR0IxX0NOVExf TUlTQzJfX0RJU0FCTEVfUkRSRVFfQ0dfTUFTSyB8Cj4gQEAgLTQ1OCwxMyArNDU4LDEzIEBAIHN0 YXRpYyB2b2lkIG1taHViX3YxXzBfdXBkYXRlX21lZGl1bV9ncmFpbl9jbG9ja19nYXRpbmcoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkCj4gIAkJV1JFRzMyX1NPQzE1KE1NSFVCLCAwLCBtbUFUQ19M Ml9NSVNDX0NHLCBkYXRhKTsKPiAgCj4gIAlpZiAoZGVmMSAhPSBkYXRhMSkgewo+IC0JCWlmIChh ZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9SQVZFTiAmJiBhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9Q SUNBU1NPKQo+ICsJCWlmIChhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9SQVZFTikKPiAgCQkJV1JF RzMyX1NPQzE1KE1NSFVCLCAwLCBtbURBR0IwX0NOVExfTUlTQzIsIGRhdGExKTsKPiAgCQllbHNl Cj4gIAkJCVdSRUczMl9TT0MxNShNTUhVQiwgMCwgbW1EQUdCMF9DTlRMX01JU0MyX1JWLCBkYXRh MSk7Cj4gIAl9Cj4gIAo+IC0JaWYgKGFkZXYtPmFzaWNfdHlwZSAhPSBDSElQX1JBVkVOICYmIGFk ZXYtPmFzaWNfdHlwZSAhPSBDSElQX1BJQ0FTU08gJiYgZGVmMiAhPSBkYXRhMikKPiArCWlmIChh ZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9SQVZFTiAmJiBkZWYyICE9IGRhdGEyKQo+ICAJCVdSRUcz Ml9TT0MxNShNTUhVQiwgMCwgbW1EQUdCMV9DTlRMX01JU0MyLCBkYXRhMik7Cj4gIH0KPiAgCj4g QEAgLTUyOCw3ICs1MjgsNiBAQCBpbnQgbW1odWJfdjFfMF9zZXRfY2xvY2tnYXRpbmcoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gIAljYXNlIENISVBfVkVHQTEyOgo+ICAJY2FzZSBDSElQ X1ZFR0EyMDoKPiAgCWNhc2UgQ0hJUF9SQVZFTjoKPiAtCWNhc2UgQ0hJUF9QSUNBU1NPOgo+ICAJ CW1taHViX3YxXzBfdXBkYXRlX21lZGl1bV9ncmFpbl9jbG9ja19nYXRpbmcoYWRldiwKPiAgCQkJ CXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKPiAgCQlhdGh1Yl91 cGRhdGVfbWVkaXVtX2dyYWluX2Nsb2NrX2dhdGluZyhhZGV2LAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9wc3BfdjEwXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3BzcF92MTBfMC5jCj4gaW5kZXggMmNmZDFiYjU1OWRkLi4yOTVjMjIwNTQ4NWEgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMF8wLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9wc3BfdjEwXzAuYwo+IEBAIC0xMjEsMTIgKzEy MSwxMSBAQCBzdGF0aWMgaW50IHBzcF92MTBfMF9pbml0X21pY3JvY29kZShzdHJ1Y3QgcHNwX2Nv bnRleHQgKnBzcCkKPiAgCWNhc2UgQ0hJUF9SQVZFTjoKPiAgCQlpZiAoYWRldi0+cmV2X2lkID49 IDB4OCkKPiAgCQkJY2hpcF9uYW1lID0gInJhdmVuMiI7Cj4gKwkJZWxzZSBpZiAoYWRldi0+cGRl di0+ZGV2aWNlID09IDB4MTVkOCkKPiArCQkJY2hpcF9uYW1lID0gInBpY2Fzc28iOwo+ICAJCWVs c2UKPiAgCQkJY2hpcF9uYW1lID0gInJhdmVuIjsKPiAgCQlicmVhazsKPiAtCWNhc2UgQ0hJUF9Q SUNBU1NPOgo+IC0JCWNoaXBfbmFtZSA9ICJwaWNhc3NvIjsKPiAtCQlicmVhazsKPiAgCWRlZmF1 bHQ6IEJVRygpOwo+ICAJfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvc2RtYV92NF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAu Ywo+IGluZGV4IDc1YmUwYjllZDJjMC4uMmVhMWYwZDhmNWJlIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvc2RtYV92NF8wLmMKPiBAQCAtMjI5LDcgKzIyOSw2IEBAIHN0YXRpYyB2b2lk IHNkbWFfdjRfMF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCj4gIAkJCQkJCUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX3NkbWExXzRfMikpOwo+ICAJ CWJyZWFrOwo+ICAJY2FzZSBDSElQX1JBVkVOOgo+IC0JY2FzZSBDSElQX1BJQ0FTU086Cj4gIAkJ c29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LAo+ICAJCQkJCQlnb2xkZW5fc2V0 dGluZ3Nfc2RtYV80XzEsCj4gIAkJCQkJCUFSUkFZX1NJWkUoZ29sZGVuX3NldHRpbmdzX3NkbWFf NF8xKSk7Cj4gQEAgLTI4MywxMiArMjgyLDExIEBAIHN0YXRpYyBpbnQgc2RtYV92NF8wX2luaXRf bWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAJY2FzZSBDSElQX1JBVkVO Ogo+ICAJCWlmIChhZGV2LT5yZXZfaWQgPj0gOCkKPiAgCQkJY2hpcF9uYW1lID0gInJhdmVuMiI7 Cj4gKwkJZWxzZSBpZiAoYWRldi0+cGRldi0+ZGV2aWNlID09IDB4MTVkOCkKPiArCQkJY2hpcF9u YW1lID0gInBpY2Fzc28iOwo+ICAJCWVsc2UKPiAgCQkJY2hpcF9uYW1lID0gInJhdmVuIjsKPiAg CQlicmVhazsKPiAtCWNhc2UgQ0hJUF9QSUNBU1NPOgo+IC0JCWNoaXBfbmFtZSA9ICJwaWNhc3Nv IjsKPiAtCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gIAkJQlVHKCk7Cj4gIAl9Cj4gQEAgLTg2OSw3 ICs4NjcsNiBAQCBzdGF0aWMgdm9pZCBzZG1hX3Y0XzBfaW5pdF9wZyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKPiAgCj4gIAlzd2l0Y2ggKGFkZXYtPmFzaWNfdHlwZSkgewo+ICAJY2FzZSBD SElQX1JBVkVOOgo+IC0JY2FzZSBDSElQX1BJQ0FTU086Cj4gIAkJc2RtYV92NF8xX2luaXRfcG93 ZXJfZ2F0aW5nKGFkZXYpOwo+ICAJCXNkbWFfdjRfMV91cGRhdGVfcG93ZXJfZ2F0aW5nKGFkZXYs IHRydWUpOwo+ICAJCWJyZWFrOwo+IEBAIC0xMjc3LDcgKzEyNzQsNyBAQCBzdGF0aWMgaW50IHNk bWFfdjRfMF9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKPiAgewo+ICAJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7Cj4gIAo+IC0JaWYg KGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOIHx8IGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQ X1BJQ0FTU08pCj4gKwlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfUkFWRU4pCj4gIAkJYWRl di0+c2RtYS5udW1faW5zdGFuY2VzID0gMTsKPiAgCWVsc2UKPiAgCQlhZGV2LT5zZG1hLm51bV9p bnN0YW5jZXMgPSAyOwo+IEBAIC0xNjIwLDcgKzE2MTcsNiBAQCBzdGF0aWMgaW50IHNkbWFfdjRf MF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAo+ICAJY2FzZSBDSElQX1ZFR0Ex MjoKPiAgCWNhc2UgQ0hJUF9WRUdBMjA6Cj4gIAljYXNlIENISVBfUkFWRU46Cj4gLQljYXNlIENI SVBfUElDQVNTTzoKPiAgCQlzZG1hX3Y0XzBfdXBkYXRlX21lZGl1bV9ncmFpbl9jbG9ja19nYXRp bmcoYWRldiwKPiAgCQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNl KTsKPiAgCQlzZG1hX3Y0XzBfdXBkYXRlX21lZGl1bV9ncmFpbl9saWdodF9zbGVlcChhZGV2LAo+ IEBAIC0xNjM5LDcgKzE2MzUsNiBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9zZXRfcG93ZXJnYXRp bmdfc3RhdGUodm9pZCAqaGFuZGxlLAo+ICAKPiAgCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7 Cj4gIAljYXNlIENISVBfUkFWRU46Cj4gLQljYXNlIENISVBfUElDQVNTTzoKPiAgCQlzZG1hX3Y0 XzFfdXBkYXRlX3Bvd2VyX2dhdGluZyhhZGV2LAo+ICAJCQkJc3RhdGUgPT0gQU1EX1BHX1NUQVRF X0dBVEUgPyB0cnVlIDogZmFsc2UpOwo+ICAJCWJyZWFrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv c29jMTUuYwo+IGluZGV4IGY5MzBlMDkwNzFkNC4uYzRkYWYxZjkzNDg2IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9zb2MxNS5jCj4gQEAgLTQ5MSw3ICs0OTEsNiBAQCBpbnQgc29jMTVfc2V0 X2lwX2Jsb2NrcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgCWNhc2UgQ0hJUF9WRUdB MTA6Cj4gIAljYXNlIENISVBfVkVHQTEyOgo+ICAJY2FzZSBDSElQX1JBVkVOOgo+IC0JY2FzZSBD SElQX1BJQ0FTU086Cj4gIAkJdmVnYTEwX3JlZ19iYXNlX2luaXQoYWRldik7Cj4gIAkJYnJlYWs7 Cj4gIAljYXNlIENISVBfVkVHQTIwOgo+IEBAIC01NDYsNyArNTQ1LDYgQEAgaW50IHNvYzE1X3Nl dF9pcF9ibG9ja3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gIAkJYW1kZ3B1X2Rldmlj ZV9pcF9ibG9ja19hZGQoYWRldiwgJnZjZV92NF8wX2lwX2Jsb2NrKTsKPiAgCQlicmVhazsKPiAg CWNhc2UgQ0hJUF9SQVZFTjoKPiAtCWNhc2UgQ0hJUF9QSUNBU1NPOgo+ICAJCWFtZGdwdV9kZXZp Y2VfaXBfYmxvY2tfYWRkKGFkZXYsICZ2ZWdhMTBfY29tbW9uX2lwX2Jsb2NrKTsKPiAgCQlhbWRn cHVfZGV2aWNlX2lwX2Jsb2NrX2FkZChhZGV2LCAmZ21jX3Y5XzBfaXBfYmxvY2spOwo+ICAJCWFt ZGdwdV9kZXZpY2VfaXBfYmxvY2tfYWRkKGFkZXYsICZ2ZWdhMTBfaWhfaXBfYmxvY2spOwo+IEBA IC02OTgsNiArNjk2LDEzIEBAIHN0YXRpYyBpbnQgc29jMTVfY29tbW9uX2Vhcmx5X2luaXQodm9p ZCAqaGFuZGxlKQo+ICAJCWJyZWFrOwo+ICAJY2FzZSBDSElQX1JBVkVOOgo+ICAJCWlmIChhZGV2 LT5yZXZfaWQgPj0gMHg4KQo+ICsJCQlhZGV2LT5leHRlcm5hbF9yZXZfaWQgPSBhZGV2LT5yZXZf aWQgKyAweDgxOwo+ICsJCWVsc2UgaWYgKGFkZXYtPnBkZXYtPmRldmljZSA9PSAweDE1ZDgpCj4g KwkJCWFkZXYtPmV4dGVybmFsX3Jldl9pZCA9IGFkZXYtPnJldl9pZCArIDB4NDE7Cj4gKwkJZWxz ZQo+ICsJCQlhZGV2LT5leHRlcm5hbF9yZXZfaWQgPSAweDE7Cj4gKwo+ICsJCWlmIChhZGV2LT5y ZXZfaWQgPj0gMHg4KSB7Cj4gIAkJCWFkZXYtPmNnX2ZsYWdzID0gQU1EX0NHX1NVUFBPUlRfR0ZY X01HQ0cgfAo+ICAJCQkJQU1EX0NHX1NVUFBPUlRfR0ZYX01HTFMgfAo+ICAJCQkJQU1EX0NHX1NV UFBPUlRfR0ZYX0NQX0xTIHwKPiBAQCAtNzEzLDcgKzcxOCwyNyBAQCBzdGF0aWMgaW50IHNvYzE1 X2NvbW1vbl9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKPiAgCQkJCUFNRF9DR19TVVBQT1JUX1NE TUFfTUdDRyB8Cj4gIAkJCQlBTURfQ0dfU1VQUE9SVF9TRE1BX0xTIHwKPiAgCQkJCUFNRF9DR19T VVBQT1JUX1ZDTl9NR0NHOwo+IC0JCWVsc2UKPiArCj4gKwkJCWFkZXYtPnBnX2ZsYWdzID0gQU1E X1BHX1NVUFBPUlRfU0RNQSB8IEFNRF9QR19TVVBQT1JUX1ZDTjsKPiArCQl9IGVsc2UgaWYgKGFk ZXYtPnBkZXYtPmRldmljZSA9PSAweDE1ZDgpIHsKPiArCQkJYWRldi0+Y2dfZmxhZ3MgPSBBTURf Q0dfU1VQUE9SVF9HRlhfTUdMUyB8Cj4gKwkJCQlBTURfQ0dfU1VQUE9SVF9HRlhfQ1BfTFMgfAo+ ICsJCQkJQU1EX0NHX1NVUFBPUlRfR0ZYXzNEX0NHQ0cgfAo+ICsJCQkJQU1EX0NHX1NVUFBPUlRf R0ZYXzNEX0NHTFMgfAo+ICsJCQkJQU1EX0NHX1NVUFBPUlRfR0ZYX0NHQ0cgfAo+ICsJCQkJQU1E X0NHX1NVUFBPUlRfR0ZYX0NHTFMgfAo+ICsJCQkJQU1EX0NHX1NVUFBPUlRfQklGX0xTIHwKPiAr CQkJCUFNRF9DR19TVVBQT1JUX0hEUF9MUyB8Cj4gKwkJCQlBTURfQ0dfU1VQUE9SVF9ST01fTUdD RyB8Cj4gKwkJCQlBTURfQ0dfU1VQUE9SVF9NQ19NR0NHIHwKPiArCQkJCUFNRF9DR19TVVBQT1JU X01DX0xTIHwKPiArCQkJCUFNRF9DR19TVVBQT1JUX1NETUFfTUdDRyB8Cj4gKwkJCQlBTURfQ0df U1VQUE9SVF9TRE1BX0xTOwo+ICsKPiArCQkJYWRldi0+cGdfZmxhZ3MgPSBBTURfUEdfU1VQUE9S VF9TRE1BIHwKPiArCQkJCUFNRF9QR19TVVBQT1JUX01NSFVCIHwKPiArCQkJCUFNRF9QR19TVVBQ T1JUX1ZDTjsKPiArCQl9IGVsc2Ugewo+ICAJCQlhZGV2LT5jZ19mbGFncyA9IEFNRF9DR19TVVBQ T1JUX0dGWF9NR0NHIHwKPiAgCQkJCUFNRF9DR19TVVBQT1JUX0dGWF9NR0xTIHwKPiAgCQkJCUFN RF9DR19TVVBQT1JUX0dGWF9STENfTFMgfAo+IEBAIC03MzUsNDMgKzc2MCwxMyBAQCBzdGF0aWMg aW50IHNvYzE1X2NvbW1vbl9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKPiAgCQkJCUFNRF9DR19T VVBQT1JUX1NETUFfTFMgfAo+ICAJCQkJQU1EX0NHX1NVUFBPUlRfVkNOX01HQ0c7Cj4gIAo+IC0J CWFkZXYtPnBnX2ZsYWdzID0gQU1EX1BHX1NVUFBPUlRfU0RNQSB8IEFNRF9QR19TVVBQT1JUX1ZD TjsKPiAtCj4gLQkJaWYgKGFkZXYtPnBvd2VycGxheS5wcF9mZWF0dXJlICYgUFBfR0ZYT0ZGX01B U0spCj4gLQkJCWFkZXYtPnBnX2ZsYWdzIHw9IEFNRF9QR19TVVBQT1JUX0dGWF9QRyB8Cj4gLQkJ CQlBTURfUEdfU1VQUE9SVF9DUCB8Cj4gLQkJCQlBTURfUEdfU1VQUE9SVF9STENfU01VX0hTOwo+ IC0KPiAtCQlpZiAoYWRldi0+cmV2X2lkID49IDB4OCkKPiAtCQkJYWRldi0+ZXh0ZXJuYWxfcmV2 X2lkID0gYWRldi0+cmV2X2lkICsgMHg4MTsKPiAtCQllbHNlCj4gLQkJCWFkZXYtPmV4dGVybmFs X3Jldl9pZCA9IDB4MTsKPiAtCQlicmVhazsKPiAtCWNhc2UgQ0hJUF9QSUNBU1NPOgo+IC0JCWFk ZXYtPmNnX2ZsYWdzID0gQU1EX0NHX1NVUFBPUlRfR0ZYX01HTFMgfAo+IC0JCQlBTURfQ0dfU1VQ UE9SVF9HRlhfQ1BfTFMgfAo+IC0JCQlBTURfQ0dfU1VQUE9SVF9HRlhfM0RfQ0dDRyB8Cj4gLQkJ CUFNRF9DR19TVVBQT1JUX0dGWF8zRF9DR0xTIHwKPiAtCQkJQU1EX0NHX1NVUFBPUlRfR0ZYX0NH Q0cgfAo+IC0JCQlBTURfQ0dfU1VQUE9SVF9HRlhfQ0dMUyB8Cj4gLQkJCUFNRF9DR19TVVBQT1JU X0JJRl9MUyB8Cj4gLQkJCUFNRF9DR19TVVBQT1JUX0hEUF9MUyB8Cj4gLQkJCUFNRF9DR19TVVBQ T1JUX1JPTV9NR0NHIHwKPiAtCQkJQU1EX0NHX1NVUFBPUlRfTUNfTUdDRyB8Cj4gLQkJCUFNRF9D R19TVVBQT1JUX01DX0xTIHwKPiAtCQkJQU1EX0NHX1NVUFBPUlRfU0RNQV9NR0NHIHwKPiAtCQkJ QU1EX0NHX1NVUFBPUlRfU0RNQV9MUzsKPiAtCj4gLQkJYWRldi0+cGdfZmxhZ3MgPSBBTURfUEdf U1VQUE9SVF9TRE1BIHwKPiAtCQkJCQkJQU1EX1BHX1NVUFBPUlRfTU1IVUIgfAo+IC0JCQkJCQlB TURfUEdfU1VQUE9SVF9WQ047Cj4gKwkJCWFkZXYtPnBnX2ZsYWdzID0gQU1EX1BHX1NVUFBPUlRf U0RNQSB8IEFNRF9QR19TVVBQT1JUX1ZDTjsKPiArCQl9Cj4gIAo+ICAJCWlmIChhZGV2LT5wb3dl cnBsYXkucHBfZmVhdHVyZSAmIFBQX0dGWE9GRl9NQVNLKQo+ICAJCQlhZGV2LT5wZ19mbGFncyB8 PSBBTURfUEdfU1VQUE9SVF9HRlhfUEcgfAo+ICAJCQkJQU1EX1BHX1NVUFBPUlRfQ1AgfAo+ICAJ CQkJQU1EX1BHX1NVUFBPUlRfUkxDX1NNVV9IUzsKPiAtCj4gLQkJYWRldi0+ZXh0ZXJuYWxfcmV2 X2lkID0gYWRldi0+cmV2X2lkICsgMHg0MTsKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gIAkJ LyogRklYTUU6IG5vdCBzdXBwb3J0ZWQgeWV0ICovCj4gQEAgLTk3Myw3ICs5NjgsNiBAQCBzdGF0 aWMgaW50IHNvYzE1X2NvbW1vbl9zZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAo+ ICAJCQkJc3RhdGUgPT0gQU1EX0NHX1NUQVRFX0dBVEUgPyB0cnVlIDogZmFsc2UpOwo+ICAJCWJy ZWFrOwo+ICAJY2FzZSBDSElQX1JBVkVOOgo+IC0JY2FzZSBDSElQX1BJQ0FTU086Cj4gIAkJYWRl di0+bmJpb19mdW5jcy0+dXBkYXRlX21lZGl1bV9ncmFpbl9jbG9ja19nYXRpbmcoYWRldiwKPiAg CQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKPiAgCQlhZGV2 LT5uYmlvX2Z1bmNzLT51cGRhdGVfbWVkaXVtX2dyYWluX2xpZ2h0X3NsZWVwKGFkZXYsCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2Rt LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCj4g aW5kZXggNDNjOWZmMmQ0OWZiLi5mMGFlMTE4MDJlOWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKPiBAQCAtMTIxMyw4ICsx MjEzLDcgQEAgc3RhdGljIGludCBkY2UxMTBfcmVnaXN0ZXJfaXJxX2hhbmRsZXJzKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQo+ICAJaWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1ZFR0Ex MCB8fAo+ICAJICAgIGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1ZFR0ExMiB8fAo+ICAJICAgIGFk ZXYtPmFzaWNfdHlwZSA9PSBDSElQX1ZFR0EyMCB8fAo+IC0JICAgIGFkZXYtPmFzaWNfdHlwZSA9 PSBDSElQX1JBVkVOICB8fAo+IC0JICAgIGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1BJQ0FTU08p Cj4gKwkgICAgYWRldi0+YXNpY190eXBlID09IENISVBfUkFWRU4pCj4gIAkJY2xpZW50X2lkID0g U09DMTVfSUhfQ0xJRU5USURfRENFOwo+ICAKPiAgCWludF9wYXJhbXMucmVxdWVzdGVkX3BvbGFy aXR5ID0gSU5URVJSVVBUX1BPTEFSSVRZX0RFRkFVTFQ7Cj4gQEAgLTE2MzMsNyArMTYzMiw2IEBA IHN0YXRpYyBpbnQgYW1kZ3B1X2RtX2luaXRpYWxpemVfZHJtX2RldmljZShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKPiAgCQlicmVhazsKPiAgI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURf RENfRENOMV8wKQo+ICAJY2FzZSBDSElQX1JBVkVOOgo+IC0JY2FzZSBDSElQX1BJQ0FTU086Cj4g IAkJaWYgKGRjbjEwX3JlZ2lzdGVyX2lycV9oYW5kbGVycyhkbS0+YWRldikpIHsKPiAgCQkJRFJN X0VSUk9SKCJETTogRmFpbGVkIHRvIGluaXRpYWxpemUgSVJRXG4iKTsKPiAgCQkJZ290byBmYWls Owo+IEBAIC0xODY0LDcgKzE4NjIsNiBAQCBzdGF0aWMgaW50IGRtX2Vhcmx5X2luaXQodm9pZCAq aGFuZGxlKQo+ICAJCWJyZWFrOwo+ICAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19EQ04x XzApCj4gIAljYXNlIENISVBfUkFWRU46Cj4gLQljYXNlIENISVBfUElDQVNTTzoKPiAgCQlhZGV2 LT5tb2RlX2luZm8ubnVtX2NydGMgPSA0Owo+ICAJCWFkZXYtPm1vZGVfaW5mby5udW1faHBkID0g NDsKPiAgCQlhZGV2LT5tb2RlX2luZm8ubnVtX2RpZyA9IDQ7Cj4gQEAgLTIxMTMsOCArMjExMCw3 IEBAIHN0YXRpYyBpbnQgZmlsbF9wbGFuZV9hdHRyaWJ1dGVzX2Zyb21fZmIoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCj4gIAlpZiAoYWRldi0+YXNpY190eXBlID09IENISVBfVkVHQTEwIHx8 Cj4gIAkgICAgYWRldi0+YXNpY190eXBlID09IENISVBfVkVHQTEyIHx8Cj4gIAkgICAgYWRldi0+ YXNpY190eXBlID09IENISVBfVkVHQTIwIHx8Cj4gLQkgICAgYWRldi0+YXNpY190eXBlID09IENI SVBfUkFWRU4gIHx8Cj4gLQkgICAgYWRldi0+YXNpY190eXBlID09IENISVBfUElDQVNTTykgewo+ ICsJICAgIGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1JBVkVOKSB7Cj4gIAkJLyogRmlsbCBHRlg5 IHBhcmFtcyAqLwo+ICAJCXBsYW5lX3N0YXRlLT50aWxpbmdfaW5mby5nZng5Lm51bV9waXBlcyA9 Cj4gIAkJCWFkZXYtPmdmeC5jb25maWcuZ2JfYWRkcl9jb25maWdfZmllbGRzLm51bV9waXBlczsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvaHdtZ3Iu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL2h3bWdyLmMKPiBpbmRleCBh NDU1NzhlNjUwNGEuLjc1MDBhM2U2MWRiYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL3Bvd2VycGxheS9od21nci9od21nci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9w b3dlcnBsYXkvaHdtZ3IvaHdtZ3IuYwo+IEBAIC0xNzEsNyArMTcxLDYgQEAgaW50IGh3bWdyX2Vh cmx5X2luaXQoc3RydWN0IHBwX2h3bWdyICpod21ncikKPiAgCWNhc2UgQU1ER1BVX0ZBTUlMWV9S VjoKPiAgCQlzd2l0Y2ggKGh3bWdyLT5jaGlwX2lkKSB7Cj4gIAkJY2FzZSBDSElQX1JBVkVOOgo+ IC0JCWNhc2UgQ0hJUF9QSUNBU1NPOgo+ICAJCQlod21nci0+b2RfZW5hYmxlZCA9IGZhbHNlOwo+ ICAJCQlod21nci0+c211bWdyX2Z1bmNzID0gJnNtdTEwX3NtdV9mdW5jczsKPiAgCQkJc211MTBf aW5pdF9mdW5jdGlvbl9wb2ludGVycyhod21ncik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3Byb2Nlc3NwcHRhYmxlcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvcHJvY2Vzc3BwdGFibGVzLmMKPiBpbmRleCBmNmZlOWNl NzkzYWQuLjc3YzE0NjcxODY2YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bv d2VycGxheS9od21nci9wcm9jZXNzcHB0YWJsZXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2h3bWdyL3Byb2Nlc3NwcHRhYmxlcy5jCj4gQEAgLTgzMiw3ICs4MzIsNyBA QCBzdGF0aWMgY29uc3QgQVRPTV9QUExJQl9QT1dFUlBMQVlUQUJMRSAqZ2V0X3Bvd2VycGxheV90 YWJsZSgKPiAgCXVpbnQxNl90IHNpemU7Cj4gIAo+ICAJaWYgKCF0YWJsZV9hZGRyKSB7Cj4gLQkJ aWYgKGh3bWdyLT5jaGlwX2lkID09IENISVBfUkFWRU4gfHwgaHdtZ3ItPmNoaXBfaWQgPT0gQ0hJ UF9QSUNBU1NPKSB7Cj4gKwkJaWYgKGh3bWdyLT5jaGlwX2lkID09IENISVBfUkFWRU4pIHsKPiAg CQkJdGFibGVfYWRkciA9ICZzb2Z0X2R1bW15X3BwX3RhYmxlWzBdOwo+ICAJCQlod21nci0+c29m dF9wcF90YWJsZSA9ICZzb2Z0X2R1bW15X3BwX3RhYmxlWzBdOwo+ICAJCQlod21nci0+c29mdF9w cF90YWJsZV9zaXplID0gc2l6ZW9mKHNvZnRfZHVtbXlfcHBfdGFibGUpOwo+IEBAIC0xMDU1LDcg KzEwNTUsNyBAQCBzdGF0aWMgaW50IGluaXRfb3ZlcmRyaXZlX2xpbWl0cyhzdHJ1Y3QgcHBfaHdt Z3IgKmh3bWdyLAo+ICAJaHdtZ3ItPnBsYXRmb3JtX2Rlc2NyaXB0b3IubWF4T3ZlcmRyaXZlVkRE QyA9IDA7Cj4gIAlod21nci0+cGxhdGZvcm1fZGVzY3JpcHRvci5vdmVyZHJpdmVWRERDU3RlcCA9 IDA7Cj4gIAo+IC0JaWYgKGh3bWdyLT5jaGlwX2lkID09IENISVBfUkFWRU4gfHwgaHdtZ3ItPmNo aXBfaWQgPT0gQ0hJUF9QSUNBU1NPKQo+ICsJaWYgKGh3bWdyLT5jaGlwX2lkID09IENISVBfUkFW RU4pCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJLyogV2UgYXNzdW1lIGhlcmUgdGhhdCBmd19pbmZv IGlzIHVuY2hhbmdlZCBpZiB0aGlzIGNhbGwgZmFpbHMuKi8KPiBAQCAtMTU5NSw3ICsxNTk1LDcg QEAgc3RhdGljIGludCBwcF90YWJsZXNfaW5pdGlhbGl6ZShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdy KQo+ICAJaW50IHJlc3VsdDsKPiAgCWNvbnN0IEFUT01fUFBMSUJfUE9XRVJQTEFZVEFCTEUgKnBv d2VycGxheV90YWJsZTsKPiAgCj4gLQlpZiAoaHdtZ3ItPmNoaXBfaWQgPT0gQ0hJUF9SQVZFTiB8 fCBod21nci0+Y2hpcF9pZCA9PSBDSElQX1BJQ0FTU08pCj4gKwlpZiAoaHdtZ3ItPmNoaXBfaWQg PT0gQ0hJUF9SQVZFTikKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAlod21nci0+bmVlZF9wcF90YWJs ZV91cGxvYWQgPSB0cnVlOwo+IEBAIC0xNjQ0LDcgKzE2NDQsNyBAQCBzdGF0aWMgaW50IHBwX3Rh Ymxlc19pbml0aWFsaXplKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4gIAo+ICBzdGF0aWMgaW50 IHBwX3RhYmxlc191bmluaXRpYWxpemUoc3RydWN0IHBwX2h3bWdyICpod21ncikKPiAgewo+IC0J aWYgKGh3bWdyLT5jaGlwX2lkID09IENISVBfUkFWRU4gfHwgaHdtZ3ItPmNoaXBfaWQgPT0gQ0hJ UF9QSUNBU1NPKQo+ICsJaWYgKGh3bWdyLT5jaGlwX2lkID09IENISVBfUkFWRU4pCj4gIAkJcmV0 dXJuIDA7Cj4gIAo+ICAJa2ZyZWUoaHdtZ3ItPmR5bl9zdGF0ZS52ZGRjX2RlcGVuZGVuY3lfb25f c2Nsayk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2FtZF9hc2ljX3R5cGUuaCBiL2luY2x1 ZGUvZHJtL2FtZF9hc2ljX3R5cGUuaAo+IGluZGV4IDU2NDRmYzY3OWQ2Zi4uZGQ2M2QwOGNjNTRl IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2FtZF9hc2ljX3R5cGUuaAo+ICsrKyBiL2luY2x1 ZGUvZHJtL2FtZF9hc2ljX3R5cGUuaAo+IEBAIC00OSw3ICs0OSw2IEBAIGVudW0gYW1kX2FzaWNf dHlwZSB7Cj4gIAlDSElQX1ZFR0ExMiwKPiAgCUNISVBfVkVHQTIwLAo+ICAJQ0hJUF9SQVZFTiwK PiAtCUNISVBfUElDQVNTTywKPiAgCUNISVBfTEFTVCwKPiAgfTsKPiAgCj4gLS0gCj4gMi4xMy42 Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBh bWQtZ2Z4IG1haWxpbmcgbGlzdAo+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGlu ZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=