From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pierre Morel Subject: Re: [PATCH 06/10] s390/cio: add basic protected virtualization support Date: Wed, 8 May 2019 16:23:53 +0200 Message-ID: References: <20190426183245.37939-1-pasic@linux.ibm.com> <20190426183245.37939-7-pasic@linux.ibm.com> Reply-To: pmorel@linux.ibm.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190426183245.37939-7-pasic@linux.ibm.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Halil Pasic , kvm@vger.kernel.org, linux-s390@vger.kernel.org, Cornelia Huck , Martin Schwidefsky , Sebastian Ott Cc: Thomas Huth , Viktor Mihajlovski , Janosch Frank , Vasily Gorbik , "Michael S. Tsirkin" , Farhan Ali , Eric Farman , virtualization@lists.linux-foundation.org, Christoph Hellwig , Claudio Imbrenda List-Id: virtualization@lists.linuxfoundation.org T24gMjYvMDQvMjAxOSAyMDozMiwgSGFsaWwgUGFzaWMgd3JvdGU6Cj4gQXMgdmlydGlvLWNjdyBk ZXZpY2VzIGFyZSBjaGFubmVsIGRldmljZXMsIHdlIG5lZWQgdG8gdXNlIHRoZSBkbWEgYXJlYQo+ IGZvciBhbnkgY29tbXVuaWNhdGlvbiB3aXRoIHRoZSBoeXBlcnZpc29yLgo+IAo+IFRoaXMgcGF0 Y2ggYWRkcmVzc2VzIHRoZSBtb3N0IGJhc2ljIHN0dWZmIChtb3N0bHkgd2hhdCBpcyByZXF1aXJl ZCBmb3IKPiB2aXJ0aW8tY2N3KSwgYW5kIGRvZXMgdGFrZSBjYXJlIG9mIFFESU8gb3IgYW55IGRl dmljZXMuCj4gCj4gQW4gaW50ZXJlc3Rpbmcgc2lkZSBlZmZlY3QgaXMgdGhhdCB2aXJ0aW8gc3Ry dWN0dXJlcyBhcmUgbm93IGdvaW5nIHRvCj4gZ2V0IGFsbG9jYXRlZCBpbiAzMSBiaXQgYWRkcmVz c2FibGUgc3RvcmFnZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBIYWxpbCBQYXNpYyA8cGFzaWNAbGlu dXguaWJtLmNvbT4KPiAtLS0KPiAgIGFyY2gvczM5MC9pbmNsdWRlL2FzbS9jY3dkZXYuaCAgIHwg IDQgKysrCj4gICBkcml2ZXJzL3MzOTAvY2lvL2Njd3JlcS5jICAgICAgICB8ICA4ICsrLS0tCj4g ICBkcml2ZXJzL3MzOTAvY2lvL2RldmljZS5jICAgICAgICB8IDY1ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0KPiAgIGRyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2ZzbS5j ICAgIHwgNDAgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9zMzkwL2Npby9k ZXZpY2VfaWQuYyAgICAgfCAxOCArKysrKy0tLS0tLQo+ICAgZHJpdmVycy9zMzkwL2Npby9kZXZp Y2Vfb3BzLmMgICAgfCAyMSArKysrKysrKysrKy0tCj4gICBkcml2ZXJzL3MzOTAvY2lvL2Rldmlj ZV9wZ2lkLmMgICB8IDIwICsrKysrKy0tLS0tLS0KPiAgIGRyaXZlcnMvczM5MC9jaW8vZGV2aWNl X3N0YXR1cy5jIHwgMjQgKysrKysrKy0tLS0tLS0tCj4gICBkcml2ZXJzL3MzOTAvY2lvL2lvX3Nj aC5oICAgICAgICB8IDIxICsrKysrKysrKy0tLS0KPiAgIGRyaXZlcnMvczM5MC92aXJ0aW8vdmly dGlvX2Njdy5jIHwgMTAgLS0tLS0tLQo+ICAgMTAgZmlsZXMgY2hhbmdlZCwgMTQ4IGluc2VydGlv bnMoKyksIDgzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVk ZS9hc20vY2N3ZGV2LmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vY2N3ZGV2LmgKPiBpbmRleCBh MjlkZDQzMGZiNDAuLjg2NWNlMWNiODZkNSAxMDA2NDQKPiAtLS0gYS9hcmNoL3MzOTAvaW5jbHVk ZS9hc20vY2N3ZGV2LmgKPiArKysgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vY2N3ZGV2LmgKPiBA QCAtMjI2LDYgKzIyNiwxMCBAQCBleHRlcm4gaW50IGNjd19kZXZpY2VfZW5hYmxlX2NvbnNvbGUo c3RydWN0IGNjd19kZXZpY2UgKik7Cj4gICBleHRlcm4gdm9pZCBjY3dfZGV2aWNlX3dhaXRfaWRs ZShzdHJ1Y3QgY2N3X2RldmljZSAqKTsKPiAgIGV4dGVybiBpbnQgY2N3X2RldmljZV9mb3JjZV9j b25zb2xlKHN0cnVjdCBjY3dfZGV2aWNlICopOwo+IAo+ICtleHRlcm4gdm9pZCAqY2N3X2Rldmlj ZV9kbWFfemFsbG9jKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBzaXplX3Qgc2l6ZSk7Cj4gK2V4 dGVybiB2b2lkIGNjd19kZXZpY2VfZG1hX2ZyZWUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsCj4g KwkJCQl2b2lkICpjcHVfYWRkciwgc2l6ZV90IHNpemUpOwo+ICsKPiAgIGludCBjY3dfZGV2aWNl X3Npb3NsKHN0cnVjdCBjY3dfZGV2aWNlICopOwo+IAo+ICAgZXh0ZXJuIHZvaWQgY2N3X2Rldmlj ZV9nZXRfc2NoaWQoc3RydWN0IGNjd19kZXZpY2UgKiwgc3RydWN0IHN1YmNoYW5uZWxfaWQgKik7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vY2N3cmVxLmMgYi9kcml2ZXJzL3MzOTAv Y2lvL2Njd3JlcS5jCj4gaW5kZXggNjAzMjY4YTMzZWExLi5kYWZiY2ViMzExYjMgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9zMzkwL2Npby9jY3dyZXEuYwo+ICsrKyBiL2RyaXZlcnMvczM5MC9jaW8v Y2N3cmVxLmMKPiBAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgdm9pZCBjY3dyZXFfc3RvcChzdHJ1 Y3QgY2N3X2RldmljZSAqY2RldiwgaW50IHJjKQo+ICAgCQlyZXR1cm47Cj4gICAJcmVxLT5kb25l ID0gMTsKPiAgIAljY3dfZGV2aWNlX3NldF90aW1lb3V0KGNkZXYsIDApOwo+IC0JbWVtc2V0KCZj ZGV2LT5wcml2YXRlLT5pcmIsIDAsIHNpemVvZihzdHJ1Y3QgaXJiKSk7Cj4gKwltZW1zZXQoJmNk ZXYtPnByaXZhdGUtPmRtYV9hcmVhLT5pcmIsIDAsIHNpemVvZihzdHJ1Y3QgaXJiKSk7Cj4gICAJ aWYgKHJjICYmIHJjICE9IC1FTk9ERVYgJiYgcmVxLT5kcmMpCj4gICAJCXJjID0gcmVxLT5kcmM7 Cj4gICAJcmVxLT5jYWxsYmFjayhjZGV2LCByZXEtPmRhdGEsIHJjKTsKPiBAQCAtODYsNyArODYs NyBAQCBzdGF0aWMgdm9pZCBjY3dyZXFfZG8oc3RydWN0IGNjd19kZXZpY2UgKmNkZXYpCj4gICAJ CQljb250aW51ZTsKPiAgIAkJfQo+ICAgCQkvKiBQZXJmb3JtIHN0YXJ0IGZ1bmN0aW9uLiAqLwo+ IC0JCW1lbXNldCgmY2Rldi0+cHJpdmF0ZS0+aXJiLCAwLCBzaXplb2Yoc3RydWN0IGlyYikpOwo+ ICsJCW1lbXNldCgmY2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEtPmlyYiwgMCwgc2l6ZW9mKHN0cnVj dCBpcmIpKTsKPiAgIAkJcmMgPSBjaW9fc3RhcnQoc2NoLCBjcCwgKHU4KSByZXEtPm1hc2spOwo+ ICAgCQlpZiAocmMgPT0gMCkgewo+ICAgCQkJLyogSS9PIHN0YXJ0ZWQgc3VjY2Vzc2Z1bGx5LiAq Lwo+IEBAIC0xNjksNyArMTY5LDcgQEAgaW50IGNjd19yZXF1ZXN0X2NhbmNlbChzdHJ1Y3QgY2N3 X2RldmljZSAqY2RldikKPiAgICAqLwo+ICAgc3RhdGljIGVudW0gaW9fc3RhdHVzIGNjd3JlcV9z dGF0dXMoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHN0cnVjdCBpcmIgKmxjaXJiKQo+ICAgewo+ IC0Jc3RydWN0IGlyYiAqaXJiID0gJmNkZXYtPnByaXZhdGUtPmlyYjsKPiArCXN0cnVjdCBpcmIg KmlyYiA9ICZjZGV2LT5wcml2YXRlLT5kbWFfYXJlYS0+aXJiOwo+ICAgCXN0cnVjdCBjbWRfc2Nz dyAqc2NzdyA9ICZpcmItPnNjc3cuY21kOwo+ICAgCWVudW0gdWNfdG9kbyB0b2RvOwo+IAo+IEBA IC0xODcsNyArMTg3LDcgQEAgc3RhdGljIGVudW0gaW9fc3RhdHVzIGNjd3JlcV9zdGF0dXMoc3Ry dWN0IGNjd19kZXZpY2UgKmNkZXYsIHN0cnVjdCBpcmIgKmxjaXJiKQo+ICAgCQlDSU9fVFJBQ0Vf RVZFTlQoMiwgInNlbnNlZGF0YSIpOwo+ICAgCQlDSU9fSEVYX0VWRU5UKDIsICZjZGV2LT5wcml2 YXRlLT5kZXZfaWQsCj4gICAJCQkgICAgICBzaXplb2Yoc3RydWN0IGNjd19kZXZfaWQpKTsKPiAt CQlDSU9fSEVYX0VWRU5UKDIsICZjZGV2LT5wcml2YXRlLT5pcmIuZWN3LCBTRU5TRV9NQVhfQ09V TlQpOwo+ICsJCUNJT19IRVhfRVZFTlQoMiwgJmNkZXYtPnByaXZhdGUtPmRtYV9hcmVhLT5pcmIu ZWN3LCBTRU5TRV9NQVhfQ09VTlQpOwo+ICAgCQkvKiBDaGVjayBmb3IgY29tbWFuZCByZWplY3Qu ICovCj4gICAJCWlmIChpcmItPmVjd1swXSAmIFNOUzBfQ01EX1JFSkVDVCkKPiAgIAkJCXJldHVy biBJT19SRUpFQ1RFRDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2UuYyBi L2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlLmMKPiBpbmRleCAxNTQwMjI5YTM3YmIuLmEzMzEwZWUx NGE0YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZS5jCj4gKysrIGIvZHJp dmVycy9zMzkwL2Npby9kZXZpY2UuYwo+IEBAIC0yNCw2ICsyNCw3IEBACj4gICAjaW5jbHVkZSA8 bGludXgvdGltZXIuaD4KPiAgICNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgo+ICAgI2lu Y2x1ZGUgPGxpbnV4L3NjaGVkL3NpZ25hbC5oPgo+ICsjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBp bmcuaD4KPiAKPiAgICNpbmNsdWRlIDxhc20vY2N3ZGV2Lmg+Cj4gICAjaW5jbHVkZSA8YXNtL2Np by5oPgo+IEBAIC02ODcsNiArNjg4LDkgQEAgY2N3X2RldmljZV9yZWxlYXNlKHN0cnVjdCBkZXZp Y2UgKmRldikKPiAgIAlzdHJ1Y3QgY2N3X2RldmljZSAqY2RldjsKPiAKPiAgIAljZGV2ID0gdG9f Y2N3ZGV2KGRldik7Cj4gKwljaW9fZ3BfZG1hX2ZyZWUoY2Rldi0+cHJpdmF0ZS0+ZG1hX3Bvb2ws IGNkZXYtPnByaXZhdGUtPmRtYV9hcmVhLAo+ICsJCQlzaXplb2YoKmNkZXYtPnByaXZhdGUtPmRt YV9hcmVhKSk7Cj4gKwljaW9fZ3BfZG1hX2Rlc3Ryb3koY2Rldi0+cHJpdmF0ZS0+ZG1hX3Bvb2ws ICZjZGV2LT5kZXYpOwo+ICAgCS8qIFJlbGVhc2UgcmVmZXJlbmNlIG9mIHBhcmVudCBzdWJjaGFu bmVsLiAqLwo+ICAgCXB1dF9kZXZpY2UoY2Rldi0+ZGV2LnBhcmVudCk7Cj4gICAJa2ZyZWUoY2Rl di0+cHJpdmF0ZSk7Cj4gQEAgLTY5NiwxNSArNzAwLDMxIEBAIGNjd19kZXZpY2VfcmVsZWFzZShz dHJ1Y3QgZGV2aWNlICpkZXYpCj4gICBzdGF0aWMgc3RydWN0IGNjd19kZXZpY2UgKiBpb19zdWJj aGFubmVsX2FsbG9jYXRlX2RldihzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQo+ICAgewo+ICAgCXN0 cnVjdCBjY3dfZGV2aWNlICpjZGV2Owo+ICsJc3RydWN0IGdlbl9wb29sICpkbWFfcG9vbDsKPiAK PiAgIAljZGV2ICA9IGt6YWxsb2Moc2l6ZW9mKCpjZGV2KSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAo Y2Rldikgewo+IC0JCWNkZXYtPnByaXZhdGUgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgY2N3X2Rl dmljZV9wcml2YXRlKSwKPiAtCQkJCQlHRlBfS0VSTkVMIHwgR0ZQX0RNQSk7Cj4gLQkJaWYgKGNk ZXYtPnByaXZhdGUpCj4gLQkJCXJldHVybiBjZGV2Owo+IC0JfQo+ICsJaWYgKCFjZGV2KQo+ICsJ CWdvdG8gZXJyX2NkZXY7Cj4gKwljZGV2LT5wcml2YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0 IGNjd19kZXZpY2VfcHJpdmF0ZSksCj4gKwkJCQlHRlBfS0VSTkVMIHwgR0ZQX0RNQSk7Cj4gKwlp ZiAoIWNkZXYtPnByaXZhdGUpCj4gKwkJZ290byBlcnJfcHJpdjsKPiArCWNkZXYtPmRldi5kbWFf bWFzayA9ICZjZGV2LT5wcml2YXRlLT5kbWFfbWFzazsKPiArCSpjZGV2LT5kZXYuZG1hX21hc2sg PSAqc2NoLT5kZXYuZG1hX21hc2s7Cj4gKwljZGV2LT5kZXYuY29oZXJlbnRfZG1hX21hc2sgPSBz Y2gtPmRldi5jb2hlcmVudF9kbWFfbWFzazsKPiArCWRtYV9wb29sID0gY2lvX2dwX2RtYV9jcmVh dGUoJmNkZXYtPmRldiwgMSk7Cj4gKwljZGV2LT5wcml2YXRlLT5kbWFfcG9vbCA9IGRtYV9wb29s Owo+ICsJY2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEgPSBjaW9fZ3BfZG1hX3phbGxvYyhkbWFfcG9v bCwgJmNkZXYtPmRldiwKPiArCQkJCQlzaXplb2YoKmNkZXYtPnByaXZhdGUtPmRtYV9hcmVhKSk7 Cj4gKwlpZiAoIWNkZXYtPnByaXZhdGUtPmRtYV9hcmVhKQo+ICsJCWdvdG8gZXJyX2RtYV9hcmVh Owo+ICsJcmV0dXJuIGNkZXY7Cj4gK2Vycl9kbWFfYXJlYToKPiArCWNpb19ncF9kbWFfZGVzdHJv eShkbWFfcG9vbCwgJmNkZXYtPmRldik7Cj4gKwlrZnJlZShjZGV2LT5wcml2YXRlKTsKPiArZXJy X3ByaXY6Cj4gICAJa2ZyZWUoY2Rldik7Cj4gK2Vycl9jZGV2Ogo+ICAgCXJldHVybiBFUlJfUFRS KC1FTk9NRU0pOwo+ICAgfQo+IAo+IEBAIC04ODQsNyArOTA0LDcgQEAgaW9fc3ViY2hhbm5lbF9y ZWNvZ19kb25lKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KQo+ICAgCQkJd2FrZV91cCgmY2N3X2Rl dmljZV9pbml0X3dxKTsKPiAgIAkJYnJlYWs7Cj4gICAJY2FzZSBERVZfU1RBVEVfT0ZGTElORToK PiAtCQkvKgo+ICsJCS8qCj4gICAJCSAqIFdlIGNhbid0IHJlZ2lzdGVyIHRoZSBkZXZpY2UgaW4g aW50ZXJydXB0IGNvbnRleHQgc28KPiAgIAkJICogd2Ugc2NoZWR1bGUgYSB3b3JrIGl0ZW0uCj4g ICAJCSAqLwo+IEBAIC0xMDYyLDYgKzEwODIsMTQgQEAgc3RhdGljIGludCBpb19zdWJjaGFubmVs X3Byb2JlKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCj4gICAJaWYgKCFpb19wcml2KQo+ICAgCQln b3RvIG91dF9zY2hlZHVsZTsKPiAKPiArCWlvX3ByaXYtPmRtYV9hcmVhID0gZG1hX2FsbG9jX2Nv aGVyZW50KCZzY2gtPmRldiwKPiArCQkJCXNpemVvZigqaW9fcHJpdi0+ZG1hX2FyZWEpLAo+ICsJ CQkJJmlvX3ByaXYtPmRtYV9hcmVhX2RtYSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWlvX3ByaXYt PmRtYV9hcmVhKSB7Cj4gKwkJa2ZyZWUoaW9fcHJpdik7Cj4gKwkJZ290byBvdXRfc2NoZWR1bGU7 Cj4gKwl9Cj4gKwo+ICAgCXNldF9pb19wcml2YXRlKHNjaCwgaW9fcHJpdik7Cj4gICAJY3NzX3Nj aGVkdWxlX2V2YWwoc2NoLT5zY2hpZCk7Cj4gICAJcmV0dXJuIDA7Cj4gQEAgLTEwODgsNiArMTEx Niw4IEBAIHN0YXRpYyBpbnQgaW9fc3ViY2hhbm5lbF9yZW1vdmUoc3RydWN0IHN1YmNoYW5uZWwg KnNjaCkKPiAgIAlzZXRfaW9fcHJpdmF0ZShzY2gsIE5VTEwpOwo+ICAgCXNwaW5fdW5sb2NrX2ly cShzY2gtPmxvY2spOwo+ICAgb3V0X2ZyZWU6Cj4gKwlkbWFfZnJlZV9jb2hlcmVudCgmc2NoLT5k ZXYsIHNpemVvZigqaW9fcHJpdi0+ZG1hX2FyZWEpLAo+ICsJCQkgIGlvX3ByaXYtPmRtYV9hcmVh LCBpb19wcml2LT5kbWFfYXJlYV9kbWEpOwo+ICAgCWtmcmVlKGlvX3ByaXYpOwo+ICAgCXN5c2Zz X3JlbW92ZV9ncm91cCgmc2NoLT5kZXYua29iaiwgJmlvX3N1YmNoYW5uZWxfYXR0cl9ncm91cCk7 Cj4gICAJcmV0dXJuIDA7Cj4gQEAgLTE1OTMsMjAgKzE2MjMsMzEgQEAgc3RydWN0IGNjd19kZXZp Y2UgKiBfX2luaXQgY2N3X2RldmljZV9jcmVhdGVfY29uc29sZShzdHJ1Y3QgY2N3X2RyaXZlciAq ZHJ2KQo+ICAgCQlyZXR1cm4gRVJSX0NBU1Qoc2NoKTsKPiAKPiAgIAlpb19wcml2ID0ga3phbGxv YyhzaXplb2YoKmlvX3ByaXYpLCBHRlBfS0VSTkVMIHwgR0ZQX0RNQSk7Cj4gLQlpZiAoIWlvX3By aXYpIHsKPiAtCQlwdXRfZGV2aWNlKCZzY2gtPmRldik7Cj4gLQkJcmV0dXJuIEVSUl9QVFIoLUVO T01FTSk7Cj4gLQl9Cj4gKwlpZiAoIWlvX3ByaXYpCj4gKwkJZ290byBlcnJfcHJpdjsKPiArCWlv X3ByaXYtPmRtYV9hcmVhID0gZG1hX2FsbG9jX2NvaGVyZW50KCZzY2gtPmRldiwKPiArCQkJCXNp emVvZigqaW9fcHJpdi0+ZG1hX2FyZWEpLAo+ICsJCQkJJmlvX3ByaXYtPmRtYV9hcmVhX2RtYSwg R0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWlvX3ByaXYtPmRtYV9hcmVhKQo+ICsJCWdvdG8gZXJyX2Rt YV9hcmVhOwo+ICAgCXNldF9pb19wcml2YXRlKHNjaCwgaW9fcHJpdik7Cj4gICAJY2RldiA9IGlv X3N1YmNoYW5uZWxfY3JlYXRlX2Njd2RldihzY2gpOwo+ICAgCWlmIChJU19FUlIoY2RldikpIHsK PiAgIAkJcHV0X2RldmljZSgmc2NoLT5kZXYpOwo+ICsJCWRtYV9mcmVlX2NvaGVyZW50KCZzY2gt PmRldiwgc2l6ZW9mKCppb19wcml2LT5kbWFfYXJlYSksCj4gKwkJCQkgIGlvX3ByaXYtPmRtYV9h cmVhLCBpb19wcml2LT5kbWFfYXJlYV9kbWEpOwo+ICAgCQlrZnJlZShpb19wcml2KTsKPiAgIAkJ cmV0dXJuIGNkZXY7Cj4gICAJfQo+ICAgCWNkZXYtPmRydiA9IGRydjsKPiAgIAljY3dfZGV2aWNl X3NldF9pbnRfY2xhc3MoY2Rldik7Cj4gICAJcmV0dXJuIGNkZXY7Cj4gKwo+ICtlcnJfZG1hX2Fy ZWE6Cj4gKwkJa2ZyZWUoaW9fcHJpdik7Cj4gK2Vycl9wcml2Ogo+ICsJcHV0X2RldmljZSgmc2No LT5kZXYpOwo+ICsJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gICB9Cj4gCj4gICB2b2lkIF9f aW5pdCBjY3dfZGV2aWNlX2Rlc3Ryb3lfY29uc29sZShzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikK PiBAQCAtMTYxNyw2ICsxNjU4LDggQEAgdm9pZCBfX2luaXQgY2N3X2RldmljZV9kZXN0cm95X2Nv bnNvbGUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYpCj4gICAJc2V0X2lvX3ByaXZhdGUoc2NoLCBO VUxMKTsKPiAgIAlwdXRfZGV2aWNlKCZzY2gtPmRldik7Cj4gICAJcHV0X2RldmljZSgmY2Rldi0+ ZGV2KTsKPiArCWRtYV9mcmVlX2NvaGVyZW50KCZzY2gtPmRldiwgc2l6ZW9mKCppb19wcml2LT5k bWFfYXJlYSksCj4gKwkJCSAgaW9fcHJpdi0+ZG1hX2FyZWEsIGlvX3ByaXYtPmRtYV9hcmVhX2Rt YSk7Cj4gICAJa2ZyZWUoaW9fcHJpdik7Cj4gICB9Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv czM5MC9jaW8vZGV2aWNlX2ZzbS5jIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfZnNtLmMKPiBp bmRleCA5MTY5YWY3ZGJiNDMuLmZlYTIzYjQ0Nzk1YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3Mz OTAvY2lvL2RldmljZV9mc20uYwo+ICsrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2ZzbS5j Cj4gQEAgLTY3LDggKzY3LDggQEAgc3RhdGljIHZvaWQgY2N3X3RpbWVvdXRfbG9nKHN0cnVjdCBj Y3dfZGV2aWNlICpjZGV2KQo+ICAgCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgdGN3KSwgMCk7Cj4g ICAJfSBlbHNlIHsKPiAgIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBvcmIgaW5kaWNhdGVz IGNvbW1hbmQgbW9kZVxuIik7Cj4gLQkJaWYgKCh2b2lkICopKGFkZHJfdClvcmItPmNtZC5jcGEg PT0gJnByaXZhdGUtPnNlbnNlX2NjdyB8fAo+IC0JCSAgICAodm9pZCAqKShhZGRyX3Qpb3JiLT5j bWQuY3BhID09IGNkZXYtPnByaXZhdGUtPmljY3dzKQo+ICsJCWlmICgodm9pZCAqKShhZGRyX3Qp b3JiLT5jbWQuY3BhID09ICZwcml2YXRlLT5kbWFfYXJlYS0+c2Vuc2VfY2N3IHx8Cj4gKwkJICAg ICh2b2lkICopKGFkZHJfdClvcmItPmNtZC5jcGEgPT0gY2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEt PmljY3dzKQo+ICAgCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBsYXN0IGNoYW5uZWwgcHJv Z3JhbSAiCj4gICAJCQkgICAgICAgIihpbnRlcm4pOlxuIik7Cj4gICAJCWVsc2UKPiBAQCAtMTQz LDE4ICsxNDMsMTggQEAgY2N3X2RldmljZV9jYW5jZWxfaGFsdF9jbGVhcihzdHJ1Y3QgY2N3X2Rl dmljZSAqY2RldikKPiAgIHZvaWQgY2N3X2RldmljZV91cGRhdGVfc2Vuc2VfZGF0YShzdHJ1Y3Qg Y2N3X2RldmljZSAqY2RldikKPiAgIHsKPiAgIAltZW1zZXQoJmNkZXYtPmlkLCAwLCBzaXplb2Yo Y2Rldi0+aWQpKTsKPiAtCWNkZXYtPmlkLmN1X3R5cGUgICA9IGNkZXYtPnByaXZhdGUtPnNlbnNl aWQuY3VfdHlwZTsKPiAtCWNkZXYtPmlkLmN1X21vZGVsICA9IGNkZXYtPnByaXZhdGUtPnNlbnNl aWQuY3VfbW9kZWw7Cj4gLQljZGV2LT5pZC5kZXZfdHlwZSAgPSBjZGV2LT5wcml2YXRlLT5zZW5z ZWlkLmRldl90eXBlOwo+IC0JY2Rldi0+aWQuZGV2X21vZGVsID0gY2Rldi0+cHJpdmF0ZS0+c2Vu c2VpZC5kZXZfbW9kZWw7Cj4gKwljZGV2LT5pZC5jdV90eXBlICAgPSBjZGV2LT5wcml2YXRlLT5k bWFfYXJlYS0+c2Vuc2VpZC5jdV90eXBlOwo+ICsJY2Rldi0+aWQuY3VfbW9kZWwgID0gY2Rldi0+ cHJpdmF0ZS0+ZG1hX2FyZWEtPnNlbnNlaWQuY3VfbW9kZWw7Cj4gKwljZGV2LT5pZC5kZXZfdHlw ZSAgPSBjZGV2LT5wcml2YXRlLT5kbWFfYXJlYS0+c2Vuc2VpZC5kZXZfdHlwZTsKPiArCWNkZXYt PmlkLmRldl9tb2RlbCA9IGNkZXYtPnByaXZhdGUtPmRtYV9hcmVhLT5zZW5zZWlkLmRldl9tb2Rl bDsKPiAgIH0KPiAKPiAgIGludCBjY3dfZGV2aWNlX3Rlc3Rfc2Vuc2VfZGF0YShzdHJ1Y3QgY2N3 X2RldmljZSAqY2RldikKPiAgIHsKPiAtCXJldHVybiBjZGV2LT5pZC5jdV90eXBlID09IGNkZXYt PnByaXZhdGUtPnNlbnNlaWQuY3VfdHlwZSAmJgo+IC0JCWNkZXYtPmlkLmN1X21vZGVsID09IGNk ZXYtPnByaXZhdGUtPnNlbnNlaWQuY3VfbW9kZWwgJiYKPiAtCQljZGV2LT5pZC5kZXZfdHlwZSA9 PSBjZGV2LT5wcml2YXRlLT5zZW5zZWlkLmRldl90eXBlICYmCj4gLQkJY2Rldi0+aWQuZGV2X21v ZGVsID09IGNkZXYtPnByaXZhdGUtPnNlbnNlaWQuZGV2X21vZGVsOwo+ICsJcmV0dXJuIGNkZXYt PmlkLmN1X3R5cGUgPT0gY2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEtPnNlbnNlaWQuY3VfdHlwZSAm Jgo+ICsJCWNkZXYtPmlkLmN1X21vZGVsID09IGNkZXYtPnByaXZhdGUtPmRtYV9hcmVhLT5zZW5z ZWlkLmN1X21vZGVsICYmCj4gKwkJY2Rldi0+aWQuZGV2X3R5cGUgPT0gY2Rldi0+cHJpdmF0ZS0+ ZG1hX2FyZWEtPnNlbnNlaWQuZGV2X3R5cGUgJiYKPiArCQljZGV2LT5pZC5kZXZfbW9kZWwgPT0g Y2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEtPnNlbnNlaWQuZGV2X21vZGVsOwo+ICAgfQo+IAo+ICAg LyoKPiBAQCAtMzQyLDcgKzM0Miw3IEBAIGNjd19kZXZpY2VfZG9uZShzdHJ1Y3QgY2N3X2Rldmlj ZSAqY2RldiwgaW50IHN0YXRlKQo+ICAgCQljaW9fZGlzYWJsZV9zdWJjaGFubmVsKHNjaCk7Cj4g Cj4gICAJLyogUmVzZXQgZGV2aWNlIHN0YXR1cy4gKi8KPiAtCW1lbXNldCgmY2Rldi0+cHJpdmF0 ZS0+aXJiLCAwLCBzaXplb2Yoc3RydWN0IGlyYikpOwo+ICsJbWVtc2V0KCZjZGV2LT5wcml2YXRl LT5kbWFfYXJlYS0+aXJiLCAwLCBzaXplb2Yoc3RydWN0IGlyYikpOwo+IAo+ICAgCWNkZXYtPnBy aXZhdGUtPnN0YXRlID0gc3RhdGU7Cj4gCj4gQEAgLTUwOSwxMyArNTA5LDEzIEBAIHZvaWQgY2N3 X2RldmljZV92ZXJpZnlfZG9uZShzdHJ1Y3QgY2N3X2RldmljZSAqY2RldiwgaW50IGVycikKPiAg IAkJY2N3X2RldmljZV9kb25lKGNkZXYsIERFVl9TVEFURV9PTkxJTkUpOwo+ICAgCQkvKiBEZWxp dmVyIGZha2UgaXJiIHRvIGRldmljZSBkcml2ZXIsIGlmIG5lZWRlZC4gKi8KPiAgIAkJaWYgKGNk ZXYtPnByaXZhdGUtPmZsYWdzLmZha2VfaXJiKSB7Cj4gLQkJCWNyZWF0ZV9mYWtlX2lyYigmY2Rl di0+cHJpdmF0ZS0+aXJiLAo+ICsJCQljcmVhdGVfZmFrZV9pcmIoJmNkZXYtPnByaXZhdGUtPmRt YV9hcmVhLT5pcmIsCj4gICAJCQkJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmZha2VfaXJiKTsKPiAg IAkJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmZha2VfaXJiID0gMDsKPiAgIAkJCWlmIChjZGV2LT5o YW5kbGVyKQo+ICAgCQkJCWNkZXYtPmhhbmRsZXIoY2RldiwgY2Rldi0+cHJpdmF0ZS0+aW50cGFy bSwKPiAtCQkJCQkgICAgICAmY2Rldi0+cHJpdmF0ZS0+aXJiKTsKPiAtCQkJbWVtc2V0KCZjZGV2 LT5wcml2YXRlLT5pcmIsIDAsIHNpemVvZihzdHJ1Y3QgaXJiKSk7Cj4gKwkJCQkJICAgICAgJmNk ZXYtPnByaXZhdGUtPmRtYV9hcmVhLT5pcmIpOwo+ICsJCQltZW1zZXQoJmNkZXYtPnByaXZhdGUt PmRtYV9hcmVhLT5pcmIsIDAsIHNpemVvZihzdHJ1Y3QgaXJiKSk7Cj4gICAJCX0KPiAgIAkJY2N3 X2RldmljZV9yZXBvcnRfcGF0aF9ldmVudHMoY2Rldik7Cj4gICAJCWNjd19kZXZpY2VfaGFuZGxl X2Jyb2tlbl9wYXRocyhjZGV2KTsKPiBAQCAtNjcyLDcgKzY3Miw3IEBAIGNjd19kZXZpY2Vfb25s aW5lX3ZlcmlmeShzdHJ1Y3QgY2N3X2RldmljZSAqY2RldiwgZW51bSBkZXZfZXZlbnQgZGV2X2V2 ZW50KQo+IAo+ICAgCWlmIChzY3N3X2FjdGwoJnNjaC0+c2NoaWIuc2NzdykgIT0gMCB8fAo+ICAg CSAgICAoc2Nzd19zdGN0bCgmc2NoLT5zY2hpYi5zY3N3KSAmIFNDU1dfU1RDVExfU1RBVFVTX1BF TkQpIHx8Cj4gLQkgICAgKHNjc3dfc3RjdGwoJmNkZXYtPnByaXZhdGUtPmlyYi5zY3N3KSAmIFND U1dfU1RDVExfU1RBVFVTX1BFTkQpKSB7Cj4gKwkgICAgKHNjc3dfc3RjdGwoJmNkZXYtPnByaXZh dGUtPmRtYV9hcmVhLT5pcmIuc2NzdykgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkgewo+ICAg CQkvKgo+ICAgCQkgKiBObyBmaW5hbCBzdGF0dXMgeWV0IG9yIGZpbmFsIHN0YXR1cyBub3QgeWV0 IGRlbGl2ZXJlZAo+ICAgCQkgKiB0byB0aGUgZGV2aWNlIGRyaXZlci4gQ2FuJ3QgZG8gcGF0aCB2 ZXJpZmljYXRpb24gbm93LAo+IEBAIC03MTksNyArNzE5LDcgQEAgc3RhdGljIGludCBjY3dfZGV2 aWNlX2NhbGxfaGFuZGxlcihzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikKPiAgIAkgKiAgLSBmYXN0 IG5vdGlmaWNhdGlvbiB3YXMgcmVxdWVzdGVkIChwcmltYXJ5IHN0YXR1cykKPiAgIAkgKiAgLSB1 bnNvbGljaXRlZCBpbnRlcnJ1cHRzCj4gICAJICovCj4gLQlzdGN0bCA9IHNjc3dfc3RjdGwoJmNk ZXYtPnByaXZhdGUtPmlyYi5zY3N3KTsKPiArCXN0Y3RsID0gc2Nzd19zdGN0bCgmY2Rldi0+cHJp dmF0ZS0+ZG1hX2FyZWEtPmlyYi5zY3N3KTsKPiAgIAllbmRpbmdfc3RhdHVzID0gKHN0Y3RsICYg U0NTV19TVENUTF9TRUNfU1RBVFVTKSB8fAo+ICAgCQkoc3RjdGwgPT0gKFNDU1dfU1RDVExfQUxF UlRfU1RBVFVTIHwgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpIHx8Cj4gICAJCShzdGN0bCA9PSBT Q1NXX1NUQ1RMX1NUQVRVU19QRU5EKTsKPiBAQCAtNzM1LDkgKzczNSw5IEBAIHN0YXRpYyBpbnQg Y2N3X2RldmljZV9jYWxsX2hhbmRsZXIoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYpCj4gCj4gICAJ aWYgKGNkZXYtPmhhbmRsZXIpCj4gICAJCWNkZXYtPmhhbmRsZXIoY2RldiwgY2Rldi0+cHJpdmF0 ZS0+aW50cGFybSwKPiAtCQkJICAgICAgJmNkZXYtPnByaXZhdGUtPmlyYik7Cj4gKwkJCSAgICAg ICZjZGV2LT5wcml2YXRlLT5kbWFfYXJlYS0+aXJiKTsKPiAKPiAtCW1lbXNldCgmY2Rldi0+cHJp dmF0ZS0+aXJiLCAwLCBzaXplb2Yoc3RydWN0IGlyYikpOwo+ICsJbWVtc2V0KCZjZGV2LT5wcml2 YXRlLT5kbWFfYXJlYS0+aXJiLCAwLCBzaXplb2Yoc3RydWN0IGlyYikpOwo+ICAgCXJldHVybiAx Owo+ICAgfQo+IAo+IEBAIC03NTksNyArNzU5LDcgQEAgY2N3X2RldmljZV9pcnEoc3RydWN0IGNj d19kZXZpY2UgKmNkZXYsIGVudW0gZGV2X2V2ZW50IGRldl9ldmVudCkKPiAgIAkJCS8qIFVuaXQg Y2hlY2sgYnV0IG5vIHNlbnNlIGRhdGEuIE5lZWQgYmFzaWMgc2Vuc2UuICovCj4gICAJCQlpZiAo Y2N3X2RldmljZV9kb19zZW5zZShjZGV2LCBpcmIpICE9IDApCj4gICAJCQkJZ290byBjYWxsX2hh bmRsZXJfdW5zb2w7Cj4gLQkJCW1lbWNweSgmY2Rldi0+cHJpdmF0ZS0+aXJiLCBpcmIsIHNpemVv ZihzdHJ1Y3QgaXJiKSk7Cj4gKwkJCW1lbWNweSgmY2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEtPmly YiwgaXJiLCBzaXplb2Yoc3RydWN0IGlyYikpOwo+ICAgCQkJY2Rldi0+cHJpdmF0ZS0+c3RhdGUg PSBERVZfU1RBVEVfVzRTRU5TRTsKPiAgIAkJCWNkZXYtPnByaXZhdGUtPmludHBhcm0gPSAwOwo+ ICAgCQkJcmV0dXJuOwo+IEBAIC04NDIsNyArODQyLDcgQEAgY2N3X2RldmljZV93NHNlbnNlKHN0 cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBlbnVtIGRldl9ldmVudCBkZXZfZXZlbnQpCj4gICAJaWYg KHNjc3dfZmN0bCgmaXJiLT5zY3N3KSAmCj4gICAJICAgIChTQ1NXX0ZDVExfQ0xFQVJfRlVOQyB8 IFNDU1dfRkNUTF9IQUxUX0ZVTkMpKSB7Cj4gICAJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmRvc2Vu c2UgPSAwOwo+IC0JCW1lbXNldCgmY2Rldi0+cHJpdmF0ZS0+aXJiLCAwLCBzaXplb2Yoc3RydWN0 IGlyYikpOwo+ICsJCW1lbXNldCgmY2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEtPmlyYiwgMCwgc2l6 ZW9mKHN0cnVjdCBpcmIpKTsKPiAgIAkJY2N3X2RldmljZV9hY2N1bXVsYXRlX2lyYihjZGV2LCBp cmIpOwo+ICAgCQlnb3RvIGNhbGxfaGFuZGxlcjsKPiAgIAl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvczM5MC9jaW8vZGV2aWNlX2lkLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9pZC5jCj4g aW5kZXggZjZkZjgzYTlkZmJiLi5lYThhMGZjNmMwYjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9z MzkwL2Npby9kZXZpY2VfaWQuYwo+ICsrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2lkLmMK PiBAQCAtOTksNyArOTksNyBAQCBzdGF0aWMgaW50IGRpYWcyMTBfdG9fc2Vuc2VpZChzdHJ1Y3Qg c2Vuc2VpZCAqc2Vuc2VpZCwgc3RydWN0IGRpYWcyMTAgKmRpYWcpCj4gICBzdGF0aWMgaW50IGRp YWcyMTBfZ2V0X2Rldl9pbmZvKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KQo+ICAgewo+ICAgCXN0 cnVjdCBjY3dfZGV2X2lkICpkZXZfaWQgPSAmY2Rldi0+cHJpdmF0ZS0+ZGV2X2lkOwo+IC0Jc3Ry dWN0IHNlbnNlaWQgKnNlbnNlaWQgPSAmY2Rldi0+cHJpdmF0ZS0+c2Vuc2VpZDsKPiArCXN0cnVj dCBzZW5zZWlkICpzZW5zZWlkID0gJmNkZXYtPnByaXZhdGUtPmRtYV9hcmVhLT5zZW5zZWlkOwo+ ICAgCXN0cnVjdCBkaWFnMjEwIGRpYWdfZGF0YTsKPiAgIAlpbnQgcmM7Cj4gCj4gQEAgLTEzNCw4 ICsxMzQsOCBAQCBzdGF0aWMgaW50IGRpYWcyMTBfZ2V0X2Rldl9pbmZvKHN0cnVjdCBjY3dfZGV2 aWNlICpjZGV2KQo+ICAgc3RhdGljIHZvaWQgc25zaWRfaW5pdChzdHJ1Y3QgY2N3X2RldmljZSAq Y2RldikKPiAgIHsKPiAgIAljZGV2LT5wcml2YXRlLT5mbGFncy5lc2lkID0gMDsKPiAtCW1lbXNl dCgmY2Rldi0+cHJpdmF0ZS0+c2Vuc2VpZCwgMCwgc2l6ZW9mKGNkZXYtPnByaXZhdGUtPnNlbnNl aWQpKTsKPiAtCWNkZXYtPnByaXZhdGUtPnNlbnNlaWQuY3VfdHlwZSA9IDB4ZmZmZjsKPiArCW1l bXNldCgmY2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEtPnNlbnNlaWQsIDAsIHNpemVvZihjZGV2LT5w cml2YXRlLT5kbWFfYXJlYS0+c2Vuc2VpZCkpOwo+ICsJY2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEt PnNlbnNlaWQuY3VfdHlwZSA9IDB4ZmZmZjsKPiAgIH0KPiAKPiAgIC8qCj4gQEAgLTE0MywxNiAr MTQzLDE2IEBAIHN0YXRpYyB2b2lkIHNuc2lkX2luaXQoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYp Cj4gICAgKi8KPiAgIHN0YXRpYyBpbnQgc25zaWRfY2hlY2soc3RydWN0IGNjd19kZXZpY2UgKmNk ZXYsIHZvaWQgKmRhdGEpCj4gICB7Cj4gLQlzdHJ1Y3QgY21kX3Njc3cgKnNjc3cgPSAmY2Rldi0+ cHJpdmF0ZS0+aXJiLnNjc3cuY21kOwo+ICsJc3RydWN0IGNtZF9zY3N3ICpzY3N3ID0gJmNkZXYt PnByaXZhdGUtPmRtYV9hcmVhLT5pcmIuc2Nzdy5jbWQ7Cj4gICAJaW50IGxlbiA9IHNpemVvZihz dHJ1Y3Qgc2Vuc2VpZCkgLSBzY3N3LT5jb3VudDsKPiAKPiAgIAkvKiBDaGVjayBmb3IgaW5jb21w bGV0ZSBTRU5TRSBJRCBkYXRhLiAqLwo+ICAgCWlmIChsZW4gPCBTRU5TRV9JRF9NSU5fTEVOKQo+ ICAgCQlnb3RvIG91dF9yZXN0YXJ0Owo+IC0JaWYgKGNkZXYtPnByaXZhdGUtPnNlbnNlaWQuY3Vf dHlwZSA9PSAweGZmZmYpCj4gKwlpZiAoY2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEtPnNlbnNlaWQu Y3VfdHlwZSA9PSAweGZmZmYpCj4gICAJCWdvdG8gb3V0X3Jlc3RhcnQ7Cj4gICAJLyogQ2hlY2sg Zm9yIGluY29tcGF0aWJsZSBTRU5TRSBJRCBkYXRhLiAqLwo+IC0JaWYgKGNkZXYtPnByaXZhdGUt PnNlbnNlaWQucmVzZXJ2ZWQgIT0gMHhmZikKPiArCWlmIChjZGV2LT5wcml2YXRlLT5kbWFfYXJl YS0+c2Vuc2VpZC5yZXNlcnZlZCAhPSAweGZmKQo+ICAgCQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4g ICAJLyogQ2hlY2sgZm9yIGV4dGVuZGVkLWlkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uLiAqLwo+ ICAgCWlmIChsZW4gPiBTRU5TRV9JRF9CQVNJQ19MRU4pCj4gQEAgLTE3MCw3ICsxNzAsNyBAQCBz dGF0aWMgaW50IHNuc2lkX2NoZWNrKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCB2b2lkICpkYXRh KQo+ICAgc3RhdGljIHZvaWQgc25zaWRfY2FsbGJhY2soc3RydWN0IGNjd19kZXZpY2UgKmNkZXYs IHZvaWQgKmRhdGEsIGludCByYykKPiAgIHsKPiAgIAlzdHJ1Y3QgY2N3X2Rldl9pZCAqaWQgPSAm Y2Rldi0+cHJpdmF0ZS0+ZGV2X2lkOwo+IC0Jc3RydWN0IHNlbnNlaWQgKnNlbnNlaWQgPSAmY2Rl di0+cHJpdmF0ZS0+c2Vuc2VpZDsKPiArCXN0cnVjdCBzZW5zZWlkICpzZW5zZWlkID0gJmNkZXYt PnByaXZhdGUtPmRtYV9hcmVhLT5zZW5zZWlkOwo+ICAgCWludCB2bSA9IDA7Cj4gCj4gICAJaWYg KHJjICYmIE1BQ0hJTkVfSVNfVk0pIHsKPiBAQCAtMjAwLDcgKzIwMCw3IEBAIHZvaWQgY2N3X2Rl dmljZV9zZW5zZV9pZF9zdGFydChzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikKPiAgIHsKPiAgIAlz dHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsK PiAgIAlzdHJ1Y3QgY2N3X3JlcXVlc3QgKnJlcSA9ICZjZGV2LT5wcml2YXRlLT5yZXE7Cj4gLQlz dHJ1Y3QgY2N3MSAqY3AgPSBjZGV2LT5wcml2YXRlLT5pY2N3czsKPiArCXN0cnVjdCBjY3cxICpj cCA9IGNkZXYtPnByaXZhdGUtPmRtYV9hcmVhLT5pY2N3czsKPiAKPiAgIAlDSU9fVFJBQ0VfRVZF TlQoNCwgInNuc2lkIik7Cj4gICAJQ0lPX0hFWF9FVkVOVCg0LCAmY2Rldi0+cHJpdmF0ZS0+ZGV2 X2lkLCBzaXplb2YoY2Rldi0+cHJpdmF0ZS0+ZGV2X2lkKSk7Cj4gQEAgLTIwOCw3ICsyMDgsNyBA QCB2b2lkIGNjd19kZXZpY2Vfc2Vuc2VfaWRfc3RhcnQoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYp Cj4gICAJc25zaWRfaW5pdChjZGV2KTsKPiAgIAkvKiBDaGFubmVsIHByb2dyYW0gc2V0dXAuICov Cj4gICAJY3AtPmNtZF9jb2RlCT0gQ0NXX0NNRF9TRU5TRV9JRDsKPiAtCWNwLT5jZGEJCT0gKHUz MikgKGFkZHJfdCkgJmNkZXYtPnByaXZhdGUtPnNlbnNlaWQ7Cj4gKwljcC0+Y2RhCQk9ICh1MzIp IChhZGRyX3QpICZjZGV2LT5wcml2YXRlLT5kbWFfYXJlYS0+c2Vuc2VpZDsKPiAgIAljcC0+Y291 bnQJPSBzaXplb2Yoc3RydWN0IHNlbnNlaWQpOwo+ICAgCWNwLT5mbGFncwk9IENDV19GTEFHX1NM STsKPiAgIAkvKiBSZXF1ZXN0IHNldHVwLiAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAv Y2lvL2RldmljZV9vcHMuYyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX29wcy5jCj4gaW5kZXgg NDQzNWFlMGIzMDI3Li5iZTRhY2ZhOTI2NWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9zMzkwL2Np by9kZXZpY2Vfb3BzLmMKPiArKysgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9vcHMuYwo+IEBA IC00MjksOCArNDI5LDggQEAgc3RydWN0IGNpdyAqY2N3X2RldmljZV9nZXRfY2l3KHN0cnVjdCBj Y3dfZGV2aWNlICpjZGV2LCBfX3UzMiBjdCkKPiAgIAlpZiAoY2Rldi0+cHJpdmF0ZS0+ZmxhZ3Mu ZXNpZCA9PSAwKQo+ICAgCQlyZXR1cm4gTlVMTDsKPiAgIAlmb3IgKGNpd19jbnQgPSAwOyBjaXdf Y250IDwgTUFYX0NJV1M7IGNpd19jbnQrKykKPiAtCQlpZiAoY2Rldi0+cHJpdmF0ZS0+c2Vuc2Vp ZC5jaXdbY2l3X2NudF0uY3QgPT0gY3QpCj4gLQkJCXJldHVybiBjZGV2LT5wcml2YXRlLT5zZW5z ZWlkLmNpdyArIGNpd19jbnQ7Cj4gKwkJaWYgKGNkZXYtPnByaXZhdGUtPmRtYV9hcmVhLT5zZW5z ZWlkLmNpd1tjaXdfY250XS5jdCA9PSBjdCkKPiArCQkJcmV0dXJuIGNkZXYtPnByaXZhdGUtPmRt YV9hcmVhLT5zZW5zZWlkLmNpdyArIGNpd19jbnQ7Cj4gICAJcmV0dXJuIE5VTEw7Cj4gICB9Cj4g Cj4gQEAgLTY5OSw2ICs2OTksMjMgQEAgdm9pZCBjY3dfZGV2aWNlX2dldF9zY2hpZChzdHJ1Y3Qg Y2N3X2RldmljZSAqY2Rldiwgc3RydWN0IHN1YmNoYW5uZWxfaWQgKnNjaGlkKQo+ICAgfQo+ICAg RVhQT1JUX1NZTUJPTF9HUEwoY2N3X2RldmljZV9nZXRfc2NoaWQpOwo+IAo+ICsvKioKPiArICog QWxsb2NhdGUgemVyb2VkIGRtYSBjb2hlcmVudCAzMSBiaXQgYWRkcmVzc2FibGUgbWVtb3J5IHVz aW5nCj4gKyAqIHRoZSBzdWJjaGFubmVscyBkbWEgcG9vbC4gTWF4aW1hbCBzaXplIG9mIGFsbG9j YXRpb24gc3VwcG9ydGVkCj4gKyAqIGlzIFBBR0VfU0laRS4KPiArICovCj4gK3ZvaWQgKmNjd19k ZXZpY2VfZG1hX3phbGxvYyhzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc2l6ZV90IHNpemUpCj4g K3sKPiArCXJldHVybiBjaW9fZ3BfZG1hX3phbGxvYyhjZGV2LT5wcml2YXRlLT5kbWFfcG9vbCwg JmNkZXYtPmRldiwgc2l6ZSk7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChjY3dfZGV2aWNlX2RtYV96 YWxsb2MpOwo+ICsKPiArdm9pZCBjY3dfZGV2aWNlX2RtYV9mcmVlKHN0cnVjdCBjY3dfZGV2aWNl ICpjZGV2LCB2b2lkICpjcHVfYWRkciwgc2l6ZV90IHNpemUpCj4gK3sKPiArCWNpb19ncF9kbWFf ZnJlZShjZGV2LT5wcml2YXRlLT5kbWFfcG9vbCwgY3B1X2FkZHIsIHNpemUpOwo+ICt9Cj4gK0VY UE9SVF9TWU1CT0woY2N3X2RldmljZV9kbWFfZnJlZSk7Cj4gKwo+ICAgRVhQT1JUX1NZTUJPTChj Y3dfZGV2aWNlX3NldF9vcHRpb25zX21hc2spOwo+ICAgRVhQT1JUX1NZTUJPTChjY3dfZGV2aWNl X3NldF9vcHRpb25zKTsKPiAgIEVYUE9SVF9TWU1CT0woY2N3X2RldmljZV9jbGVhcl9vcHRpb25z KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfcGdpZC5jIGIvZHJpdmVy cy9zMzkwL2Npby9kZXZpY2VfcGdpZC5jCj4gaW5kZXggZDMwYTNiYWJmMTc2Li5lOTdiYWE4OWNi ZjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfcGdpZC5jCj4gKysrIGIv ZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfcGdpZC5jCj4gQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGlj IHZvaWQgdmVyaWZ5X2RvbmUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIGludCByYykKPiAgIHN0 YXRpYyB2b2lkIG5vcF9idWlsZF9jcChzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikKPiAgIHsKPiAg IAlzdHJ1Y3QgY2N3X3JlcXVlc3QgKnJlcSA9ICZjZGV2LT5wcml2YXRlLT5yZXE7Cj4gLQlzdHJ1 Y3QgY2N3MSAqY3AgPSBjZGV2LT5wcml2YXRlLT5pY2N3czsKPiArCXN0cnVjdCBjY3cxICpjcCA9 IGNkZXYtPnByaXZhdGUtPmRtYV9hcmVhLT5pY2N3czsKPiAKPiAgIAljcC0+Y21kX2NvZGUJPSBD Q1dfQ01EX05PT1A7Cj4gICAJY3AtPmNkYQkJPSAwOwo+IEBAIC0xMzQsOSArMTM0LDkgQEAgc3Rh dGljIHZvaWQgbm9wX2NhbGxiYWNrKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCB2b2lkICpkYXRh LCBpbnQgcmMpCj4gICBzdGF0aWMgdm9pZCBzcGlkX2J1aWxkX2NwKHN0cnVjdCBjY3dfZGV2aWNl ICpjZGV2LCB1OCBmbikKPiAgIHsKPiAgIAlzdHJ1Y3QgY2N3X3JlcXVlc3QgKnJlcSA9ICZjZGV2 LT5wcml2YXRlLT5yZXE7Cj4gLQlzdHJ1Y3QgY2N3MSAqY3AgPSBjZGV2LT5wcml2YXRlLT5pY2N3 czsKPiArCXN0cnVjdCBjY3cxICpjcCA9IGNkZXYtPnByaXZhdGUtPmRtYV9hcmVhLT5pY2N3czsK PiAgIAlpbnQgaSA9IHBhdGhtYXNrX3RvX3BvcyhyZXEtPmxwbSk7Cj4gLQlzdHJ1Y3QgcGdpZCAq cGdpZCA9ICZjZGV2LT5wcml2YXRlLT5wZ2lkW2ldOwo+ICsJc3RydWN0IHBnaWQgKnBnaWQgPSAm Y2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEtPnBnaWRbaV07Cj4gCj4gICAJcGdpZC0+aW5mLmZjCT0g Zm47Cj4gICAJY3AtPmNtZF9jb2RlCT0gQ0NXX0NNRF9TRVRfUEdJRDsKPiBAQCAtMzAwLDcgKzMw MCw3IEBAIHN0YXRpYyBpbnQgcGdpZF9jbXAoc3RydWN0IHBnaWQgKnAxLCBzdHJ1Y3QgcGdpZCAq cDIpCj4gICBzdGF0aWMgdm9pZCBwZ2lkX2FuYWx5emUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYs IHN0cnVjdCBwZ2lkICoqcCwKPiAgIAkJCSBpbnQgKm1pc21hdGNoLCB1OCAqcmVzZXJ2ZWQsIHU4 ICpyZXNldCkKPiAgIHsKPiAtCXN0cnVjdCBwZ2lkICpwZ2lkID0gJmNkZXYtPnByaXZhdGUtPnBn aWRbMF07Cj4gKwlzdHJ1Y3QgcGdpZCAqcGdpZCA9ICZjZGV2LT5wcml2YXRlLT5kbWFfYXJlYS0+ cGdpZFswXTsKPiAgIAlzdHJ1Y3QgcGdpZCAqZmlyc3QgPSBOVUxMOwo+ICAgCWludCBscG07Cj4g ICAJaW50IGk7Cj4gQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0aWMgdTggcGdpZF90b19kb25lcG0o c3RydWN0IGNjd19kZXZpY2UgKmNkZXYpCj4gICAJCWxwbSA9IDB4ODAgPj4gaTsKPiAgIAkJaWYg KChjZGV2LT5wcml2YXRlLT5wZ2lkX3ZhbGlkX21hc2sgJiBscG0pID09IDApCj4gICAJCQljb250 aW51ZTsKPiAtCQlwZ2lkID0gJmNkZXYtPnByaXZhdGUtPnBnaWRbaV07Cj4gKwkJcGdpZCA9ICZj ZGV2LT5wcml2YXRlLT5kbWFfYXJlYS0+cGdpZFtpXTsKPiAgIAkJaWYgKHNjaC0+b3BtICYgbHBt KSB7Cj4gICAJCQlpZiAocGdpZC0+aW5mLnBzLnN0YXRlMSAhPSBTTklEX1NUQVRFMV9HUk9VUEVE KQo+ICAgCQkJCWNvbnRpbnVlOwo+IEBAIC0zNjgsNyArMzY4LDcgQEAgc3RhdGljIHZvaWQgcGdp ZF9maWxsKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBzdHJ1Y3QgcGdpZCAqcGdpZCkKPiAgIAlp bnQgaTsKPiAKPiAgIAlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQo+IC0JCW1lbWNweSgmY2Rldi0+ cHJpdmF0ZS0+cGdpZFtpXSwgcGdpZCwgc2l6ZW9mKHN0cnVjdCBwZ2lkKSk7Cj4gKwkJbWVtY3B5 KCZjZGV2LT5wcml2YXRlLT5kbWFfYXJlYS0+cGdpZFtpXSwgcGdpZCwgc2l6ZW9mKHN0cnVjdCBw Z2lkKSk7Cj4gICB9Cj4gCj4gICAvKgo+IEBAIC00MzUsMTIgKzQzNSwxMiBAQCBzdGF0aWMgdm9p ZCBzbmlkX2RvbmUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIGludCByYykKPiAgIHN0YXRpYyB2 b2lkIHNuaWRfYnVpbGRfY3Aoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYpCj4gICB7Cj4gICAJc3Ry dWN0IGNjd19yZXF1ZXN0ICpyZXEgPSAmY2Rldi0+cHJpdmF0ZS0+cmVxOwo+IC0Jc3RydWN0IGNj dzEgKmNwID0gY2Rldi0+cHJpdmF0ZS0+aWNjd3M7Cj4gKwlzdHJ1Y3QgY2N3MSAqY3AgPSBjZGV2 LT5wcml2YXRlLT5kbWFfYXJlYS0+aWNjd3M7Cj4gICAJaW50IGkgPSBwYXRobWFza190b19wb3Mo cmVxLT5scG0pOwo+IAo+ICAgCS8qIENoYW5uZWwgcHJvZ3JhbSBzZXR1cC4gKi8KPiAgIAljcC0+ Y21kX2NvZGUJPSBDQ1dfQ01EX1NFTlNFX1BHSUQ7Cj4gLQljcC0+Y2RhCQk9ICh1MzIpIChhZGRy X3QpICZjZGV2LT5wcml2YXRlLT5wZ2lkW2ldOwo+ICsJY3AtPmNkYQkJPSAodTMyKSAoYWRkcl90 KSAmY2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEtPnBnaWRbaV07Cj4gICAJY3AtPmNvdW50CT0gc2l6 ZW9mKHN0cnVjdCBwZ2lkKTsKPiAgIAljcC0+ZmxhZ3MJPSBDQ1dfRkxBR19TTEk7Cj4gICAJcmVx LT5jcAkJPSBjcDsKPiBAQCAtNTE2LDcgKzUxNiw3IEBAIHN0YXRpYyB2b2lkIHZlcmlmeV9zdGFy dChzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikKPiAgIAlzY2gtPmxwbSA9IHNjaC0+c2NoaWIucG1j dy5wYW07Cj4gCj4gICAJLyogSW5pdGlhbGl6ZSBQR0lEIGRhdGEuICovCj4gLQltZW1zZXQoY2Rl di0+cHJpdmF0ZS0+cGdpZCwgMCwgc2l6ZW9mKGNkZXYtPnByaXZhdGUtPnBnaWQpKTsKPiArCW1l bXNldChjZGV2LT5wcml2YXRlLT5kbWFfYXJlYS0+cGdpZCwgMCwgc2l6ZW9mKGNkZXYtPnByaXZh dGUtPmRtYV9hcmVhLT5wZ2lkKSk7Cj4gICAJY2Rldi0+cHJpdmF0ZS0+cGdpZF92YWxpZF9tYXNr ID0gMDsKPiAgIAljZGV2LT5wcml2YXRlLT5wZ2lkX3RvZG9fbWFzayA9IHNjaC0+c2NoaWIucG1j dy5wYW07Cj4gICAJY2Rldi0+cHJpdmF0ZS0+cGF0aF9ub3RvcGVyX21hc2sgPSAwOwo+IEBAIC02 MjYsNyArNjI2LDcgQEAgc3RydWN0IHN0bGNrX2RhdGEgewo+ICAgc3RhdGljIHZvaWQgc3RsY2tf YnVpbGRfY3Aoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHZvaWQgKmJ1ZjEsIHZvaWQgKmJ1ZjIp Cj4gICB7Cj4gICAJc3RydWN0IGNjd19yZXF1ZXN0ICpyZXEgPSAmY2Rldi0+cHJpdmF0ZS0+cmVx Owo+IC0Jc3RydWN0IGNjdzEgKmNwID0gY2Rldi0+cHJpdmF0ZS0+aWNjd3M7Cj4gKwlzdHJ1Y3Qg Y2N3MSAqY3AgPSBjZGV2LT5wcml2YXRlLT5kbWFfYXJlYS0+aWNjd3M7Cj4gCj4gICAJY3BbMF0u Y21kX2NvZGUgPSBDQ1dfQ01EX1NUTENLOwo+ICAgCWNwWzBdLmNkYSA9ICh1MzIpIChhZGRyX3Qp IGJ1ZjE7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3N0YXR1cy5jIGIv ZHJpdmVycy9zMzkwL2Npby9kZXZpY2Vfc3RhdHVzLmMKPiBpbmRleCA3ZDVjNzg5MmIyYzQuLmE5 YWFiZGU2MDRmNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9zdGF0dXMu Ywo+ICsrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3N0YXR1cy5jCj4gQEAgLTc5LDE1ICs3 OSwxNSBAQCBjY3dfZGV2aWNlX2FjY3VtdWxhdGVfZWN3KHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2 LCBzdHJ1Y3QgaXJiICppcmIpCj4gICAJICogYXJlIGNvbmRpdGlvbiB0aGF0IGhhdmUgdG8gYmUg bWV0IGZvciB0aGUgZXh0ZW5kZWQgY29udHJvbAo+ICAgCSAqIGJpdCB0byBoYXZlIG1lYW5pbmcu IFNpY2suCj4gICAJICovCj4gLQljZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuZWN0bCA9IDA7 Cj4gKwljZGV2LT5wcml2YXRlLT5kbWFfYXJlYS0+aXJiLnNjc3cuY21kLmVjdGwgPSAwOwo+ICAg CWlmICgoaXJiLT5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSAmJgo+ ICAgCSAgICAhKGlyYi0+c2Nzdy5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUykp Cj4gLQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY21kLmVjdGwgPSBpcmItPnNjc3cuY21kLmVj dGw7Cj4gKwkJY2Rldi0+cHJpdmF0ZS0+ZG1hX2FyZWEtPmlyYi5zY3N3LmNtZC5lY3RsID0gaXJi LT5zY3N3LmNtZC5lY3RsOwo+ICAgCS8qIENoZWNrIGlmIGV4dGVuZGVkIGNvbnRyb2wgd29yZCBp cyB2YWxpZC4gKi8KPiAtCWlmICghY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY21kLmVjdGwpCj4g KwlpZiAoIWNkZXYtPnByaXZhdGUtPmRtYV9hcmVhLT5pcmIuc2Nzdy5jbWQuZWN0bCkKPiAgIAkJ cmV0dXJuOwo+ICAgCS8qIENvcHkgY29uY3VycmVudCBzZW5zZSAvIG1vZGVsIGRlcGVuZGVudCBp bmZvcm1hdGlvbi4gKi8KPiAtCW1lbWNweSAoJmNkZXYtPnByaXZhdGUtPmlyYi5lY3csIGlyYi0+ ZWN3LCBzaXplb2YgKGlyYi0+ZWN3KSk7Cj4gKwltZW1jcHkgKCZjZGV2LT5wcml2YXRlLT5kbWFf YXJlYS0+aXJiLmVjdywgaXJiLT5lY3csIHNpemVvZiAoaXJiLT5lY3cpKTsKCgpOSVQsIG1heSBi ZSB5b3Ugc2hvdWxkIHRha2UgIHRoZSBvcHBvcnR1bml0eSB0byByZW1vdmUgdGhlIGJsYW5jIGJl Zm9yZSAKdGhlIHBhcmVudGhlc2lzLgoKTklUIGFnYWluLCBTb21lIGxpbmVzIG92ZXIgODAgY2hh cmFjdGVyIHRvby4KCmp1c3QgYSBmaXJzdCBjaGVjaywgSSB3aWxsIGdvIGRlZXBlciBsYXRlci4K ClJlZ2FyZHMsClBpZXJyZQoKLS0gClBpZXJyZSBNb3JlbApMaW51eC9LVk0vUUVNVSBpbiBCw7Zi bGluZ2VuIC0gR2VybWFueQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KVmlydHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3Rz LmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9t YWlsbWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u