From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v2 10/20] drm/i915: Convert suspend/resume to atomic. Date: Tue, 07 Jul 2015 12:33:25 +0200 Message-ID: <559BAAF5.5060807@linux.intel.com> References: <1436252911-5703-1-git-send-email-maarten.lankhorst@linux.intel.com> <1436252911-5703-11-git-send-email-maarten.lankhorst@linux.intel.com> <20150707095708.GD7568@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 030766E8BB for ; Tue, 7 Jul 2015 03:33:27 -0700 (PDT) In-Reply-To: <20150707095708.GD7568@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMDctMDctMTUgb20gMTE6NTcgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIFR1ZSwgSnVs IDA3LCAyMDE1IGF0IDA5OjA4OjIxQU0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ PiBJbnN0ZWFkIG9mIGFsbCB0aGUgYWQtaG9jIHVwZGF0aW5nLCBkdXBsaWNhdGUgdGhlIG9sZCBz dGF0ZSBmaXJzdCBiZWZvcmUKPj4gcmVhZGluZyBvdXQgdGhlIGh3IHN0YXRlLCB0aGVuIHJlc3Rv cmUgaXQuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxh bmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYyAgICAgIHwgICAyICstCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICAgfCAgIDMgKy0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyB8IDE1MyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+PiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDEyIC0tLQo+PiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHZkcy5jICAgIHwgICAyICstCj4+ICA1IGZpbGVzIGNoYW5nZWQsIDc2IGlu c2VydGlvbnMoKyksIDk2IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK Pj4gaW5kZXggZTQ0ZGMwZDY2NTZmLi5kYjQ4YWVlN2YxNDAgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYwo+PiBAQCAtNzQxLDcgKzc0MSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fcmVz dW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJp di0+aXJxX2xvY2spOwo+PiAgCj4+ICAJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKPj4gLQlp bnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKGRldiwgdHJ1ZSk7Cj4+ICsJaW50ZWxfZGlzcGxh eV9yZXN1bWUoZGV2KTsKPj4gIAlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7Cj4+ICAKPj4g IAlpbnRlbF9kcF9tc3RfcmVzdW1lKGRldik7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBp bmRleCAwOTNkNjQyMWRkZGYuLjJhNzhhMGVlMGY5NyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4+IEBAIC0zMjc4LDggKzMyNzgsNyBAQCBleHRlcm4gdm9pZCBpbnRlbF9tb2Rlc2V0 X2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+PiAgZXh0ZXJuIHZvaWQgaW50ZWxf bW9kZXNldF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+PiAgZXh0ZXJuIHZvaWQg aW50ZWxfY29ubmVjdG9yX3VucmVnaXN0ZXIoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqKTsKPj4g IGV4dGVybiBpbnQgaW50ZWxfbW9kZXNldF92Z2Ffc2V0X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGJvb2wgc3RhdGUpOwo+PiAtZXh0ZXJuIHZvaWQgaW50ZWxfbW9kZXNldF9zZXR1cF9o d19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAtCQkJCQkgYm9vbCBmb3JjZV9yZXN0 b3JlKTsKPj4gK2V4dGVybiB2b2lkIGludGVsX2Rpc3BsYXlfcmVzdW1lKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwo+PiAgZXh0ZXJuIHZvaWQgaTkxNV9yZWRpc2FibGVfdmdhKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOwo+PiAgZXh0ZXJuIHZvaWQgaTkxNV9yZWRpc2FibGVfdmdhX3Bvd2VyX29u KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+PiAgZXh0ZXJuIGJvb2wgaXJvbmxha2Vfc2V0X2Ry cHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTggdmFsKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+PiBpbmRleCBkYzRiZGI5MWFkNGQuLjIyMmQ1ODdlZDRlYSAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBAQCAtMTEwLDYgKzExMCw3IEBA IHN0YXRpYyB2b2lkIHNrbF9pbml0X3NjYWxlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NyCj4+ICBzdGF0aWMgaW50IGk5eHhfZ2V0X3JlZmNsayhj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPj4gIAkJCSAgIGludCBu dW1fY29ubmVjdG9ycyk7Cj4+ICBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5 KHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4+ICtzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3Nl dHVwX2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+PiAgCj4+ICBzdGF0aWMgc3Ry dWN0IGludGVsX2VuY29kZXIgKmludGVsX2ZpbmRfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IsIGludCBwaXBlKQo+PiAgewo+PiBAQCAtMzI0Nyw3ICszMjQ4LDcgQEAg dm9pZCBpbnRlbF9maW5pc2hfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gIAkJZGV2 X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cChkZXYpOwo+PiAgCXNwaW5fdW5sb2NrX2lycSgm ZGV2X3ByaXYtPmlycV9sb2NrKTsKPj4gIAo+PiAtCWludGVsX21vZGVzZXRfc2V0dXBfaHdfc3Rh dGUoZGV2LCB0cnVlKTsKPj4gKwlpbnRlbF9kaXNwbGF5X3Jlc3VtZShkZXYpOwo+PiAgCj4+ICAJ aW50ZWxfaHBkX2luaXQoZGV2X3ByaXYpOwo+PiAgCj4+IEBAIC0xMDIzOSw3ICsxMDI0MCw3IEBA IGJvb2wgaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKPj4gIHJldHJ5Ogo+PiAgCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNvbmZpZy0+ Y29ubmVjdGlvbl9tdXRleCwgY3R4KTsKPj4gIAlpZiAocmV0KQo+PiAtCQlnb3RvIGZhaWxfdW5s b2NrOwo+PiArCQlnb3RvIGZhaWw7Cj4+ICAKPj4gIAkvKgo+PiAgCSAqIEFsZ29yaXRobSBnZXRz IGEgbGl0dGxlIG1lc3N5Ogo+PiBAQCAtMTAyNTcsMTAgKzEwMjU4LDEwIEBAIHJldHJ5Ogo+PiAg Cj4+ICAJCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMtPm11dGV4LCBjdHgpOwo+PiAgCQlp ZiAocmV0KQo+PiAtCQkJZ290byBmYWlsX3VubG9jazsKPj4gKwkJCWdvdG8gZmFpbDsKPj4gIAkJ cmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+cHJpbWFyeS0+bXV0ZXgsIGN0eCk7Cj4+ICAJ CWlmIChyZXQpCj4+IC0JCQlnb3RvIGZhaWxfdW5sb2NrOwo+PiArCQkJZ290byBmYWlsOwo+PiAg Cj4+ICAJCW9sZC0+ZHBtc19tb2RlID0gY29ubmVjdG9yLT5kcG1zOwo+PiAgCQlvbGQtPmxvYWRf ZGV0ZWN0X3RlbXAgPSBmYWxzZTsKPj4gQEAgLTEwMjc5LDkgKzEwMjgwLDYgQEAgcmV0cnk6Cj4+ ICAJCQljb250aW51ZTsKPj4gIAkJaWYgKHBvc3NpYmxlX2NydGMtPnN0YXRlLT5lbmFibGUpCj4+ ICAJCQljb250aW51ZTsKPj4gLQkJLyogVGhpcyBjYW4gb2NjdXIgd2hlbiBhcHBseWluZyB0aGUg cGlwZSBBIHF1aXJrIG9uIHJlc3VtZS4gKi8KPj4gLQkJaWYgKHRvX2ludGVsX2NydGMocG9zc2li bGVfY3J0YyktPm5ld19lbmFibGVkKQo+PiAtCQkJY29udGludWU7Cj4+ICAKPj4gIAkJY3J0YyA9 IHBvc3NpYmxlX2NydGM7Cj4+ICAJCWJyZWFrOwo+PiBAQCAtMTAyOTIsMjAgKzEwMjkwLDE3IEBA IHJldHJ5Ogo+PiAgCSAqLwo+PiAgCWlmICghY3J0Yykgewo+PiAgCQlEUk1fREVCVUdfS01TKCJu byBwaXBlIGF2YWlsYWJsZSBmb3IgbG9hZC1kZXRlY3RcbiIpOwo+PiAtCQlnb3RvIGZhaWxfdW5s b2NrOwo+PiArCQlnb3RvIGZhaWw7Cj4+ICAJfQo+PiAgCj4+ICAJcmV0ID0gZHJtX21vZGVzZXRf bG9jaygmY3J0Yy0+bXV0ZXgsIGN0eCk7Cj4+ICAJaWYgKHJldCkKPj4gLQkJZ290byBmYWlsX3Vu bG9jazsKPj4gKwkJZ290byBmYWlsOwo+PiAgCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMt PnByaW1hcnktPm11dGV4LCBjdHgpOwo+PiAgCWlmIChyZXQpCj4+IC0JCWdvdG8gZmFpbF91bmxv Y2s7Cj4+IC0JaW50ZWxfZW5jb2Rlci0+bmV3X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ PiAtCXRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpLT5uZXdfZW5jb2RlciA9IGludGVsX2Vu Y29kZXI7Cj4+ICsJCWdvdG8gZmFpbDsKPj4gIAo+PiAgCWludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGNydGMpOwo+PiAtCWludGVsX2NydGMtPm5ld19lbmFibGVkID0gdHJ1ZTsKPj4gIAlvbGQt PmRwbXNfbW9kZSA9IGNvbm5lY3Rvci0+ZHBtczsKPj4gIAlvbGQtPmxvYWRfZGV0ZWN0X3RlbXAg PSB0cnVlOwo+PiAgCW9sZC0+cmVsZWFzZV9mYiA9IE5VTEw7Cj4+IEBAIC0xMDM3Myw5ICsxMDM2 OCw3IEBAIHJldHJ5Ogo+PiAgCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXYsIGludGVsX2NydGMt PnBpcGUpOwo+PiAgCXJldHVybiB0cnVlOwo+PiAgCj4+IC0gZmFpbDoKPj4gLQlpbnRlbF9jcnRj LT5uZXdfZW5hYmxlZCA9IGNydGMtPnN0YXRlLT5lbmFibGU7Cj4+IC1mYWlsX3VubG9jazoKPj4g K2ZhaWw6Cj4+ICAJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPj4gIAlzdGF0ZSA9IE5V TEw7Cj4+ICAKPj4gQEAgLTEwNDIxLDEwICsxMDQxNCw2IEBAIHZvaWQgaW50ZWxfcmVsZWFzZV9s b2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4+ICAJCWlm IChJU19FUlIoY3J0Y19zdGF0ZSkpCj4+ICAJCQlnb3RvIGZhaWw7Cj4+ICAKPj4gLQkJdG9faW50 ZWxfY29ubmVjdG9yKGNvbm5lY3RvciktPm5ld19lbmNvZGVyID0gTlVMTDsKPj4gLQkJaW50ZWxf ZW5jb2Rlci0+bmV3X2NydGMgPSBOVUxMOwo+PiAtCQlpbnRlbF9jcnRjLT5uZXdfZW5hYmxlZCA9 IGZhbHNlOwo+IGxvYWRfZGV0ZWN0IGNoYW5nZXMgc2hvdWxkIGJlIGEgc2VwYXJhdGUgcGF0Y2gu IE9yIHRoZSBjb21taXQgbWVzc2FnZQo+IG5lZWRzIHRvIGV4cGxhaW4gd2h5IHRoaXMgbmVlZHMg dG8gYmUgb25lLgpUaGVzZSBtZW1iZXJzIG5vIGxvbmdlciBleGlzdC4gOy0pIGFsbCB0aGUgbmV3 XyBzdHVmZiB3YXMgdG8gcmVzdG9yZSB0aGluZ3MgcHJlLWF0b21pYywgdGhlIGF0b21pYyB1cGRh dGVzIGFyZSBnb29kIGVub3VnaCBoZXJlLgoKTWFraW5nIGl0IGEgc2VwYXJhdGUgcGF0Y2gncyBw cm9iYWJseSBvay4KPj4gLQo+PiAgCQljb25uZWN0b3Jfc3RhdGUtPmJlc3RfZW5jb2RlciA9IE5V TEw7Cj4+ICAJCWNvbm5lY3Rvcl9zdGF0ZS0+Y3J0YyA9IE5VTEw7Cj4+ICAKPj4gQEAgLTExODI3 LDM3ICsxMTgxNiw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNz IGludGVsX2hlbHBlcl9mdW5jcyA9IHsKPj4gIAkuYXRvbWljX2NoZWNrID0gaW50ZWxfY3J0Y19h dG9taWNfY2hlY2ssCj4+ICB9Owo+PiAgCj4+IC0vKioKPj4gLSAqIGludGVsX21vZGVzZXRfdXBk YXRlX3N0YWdlZF9vdXRwdXRfc3RhdGUKPj4gLSAqCj4+IC0gKiBVcGRhdGVzIHRoZSBzdGFnZWQg b3V0cHV0IGNvbmZpZ3VyYXRpb24gc3RhdGUsIGUuZy4gYWZ0ZXIgd2UndmUgcmVhZCBvdXQgdGhl Cj4+IC0gKiBjdXJyZW50IGh3IHN0YXRlLgo+PiAtICovCj4+IC1zdGF0aWMgdm9pZCBpbnRlbF9t b2Rlc2V0X3VwZGF0ZV9zdGFnZWRfb3V0cHV0X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4+IC17Cj4+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGM7Cj4+IC0Jc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXI7Cj4+IC0Jc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ PiAtCj4+IC0JZm9yX2VhY2hfaW50ZWxfY29ubmVjdG9yKGRldiwgY29ubmVjdG9yKSB7Cj4+IC0J CWNvbm5lY3Rvci0+bmV3X2VuY29kZXIgPQo+PiAtCQkJdG9faW50ZWxfZW5jb2Rlcihjb25uZWN0 b3ItPmJhc2UuZW5jb2Rlcik7Cj4+IC0JfQo+PiAtCj4+IC0JZm9yX2VhY2hfaW50ZWxfZW5jb2Rl cihkZXYsIGVuY29kZXIpIHsKPj4gLQkJZW5jb2Rlci0+bmV3X2NydGMgPQo+PiAtCQkJdG9faW50 ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwo+PiAtCX0KPj4gLQo+PiAtCWZvcl9lYWNoX2lu dGVsX2NydGMoZGV2LCBjcnRjKSB7Cj4+IC0JCWNydGMtPm5ld19lbmFibGVkID0gY3J0Yy0+YmFz ZS5zdGF0ZS0+ZW5hYmxlOwo+PiAtCX0KPj4gLX0KPiBIbSwgbW9yZSBzdHVmZiBzcXVhc2hlZCBp biB3aGljaCBjYW4gYmUgb25seSByZW1vdmVkIGFzIGEgY29uc2VxdWVuY2Ugb2YKPiB0aGUgcmVz dG9yZSBjb2RlIHJld29yay4gU2VwYXJhdGUgcGF0Y2ggYWdhaW4gaW1vLgo+Cj4+IC0KPj4gLS8q IFRyYW5zaXRpb25hbCBoZWxwZXIgdG8gY29weSBjdXJyZW50IGNvbm5lY3Rvci9lbmNvZGVyIHN0 YXRlIHRvCj4+IC0gKiBjb25uZWN0b3ItPnN0YXRlLiBUaGlzIGlzIG5lZWRlZCBzbyB0aGF0IGNv ZGUgdGhhdCBpcyBwYXJ0aWFsbHkKPj4gLSAqIGNvbnZlcnRlZCB0byBhdG9taWMgZG9lcyB0aGUg cmlnaHQgdGhpbmcuCj4+IC0gKi8KPj4gIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfdXBkYXRl X2Nvbm5lY3Rvcl9hdG9taWNfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gIHsKPj4g IAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Cj4+IEBAIC0xMjI5Nyw3ICsxMjI1 NSw2IEBAIGludGVsX21vZGVzZXRfdXBkYXRlX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKPj4gIAl9Cj4+ICAKPj4gIAlkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5 X21vZGVzZXRfc3RhdGUoc3RhdGUtPmRldiwgc3RhdGUpOwo+PiAtCWludGVsX21vZGVzZXRfdXBk YXRlX3N0YWdlZF9vdXRwdXRfc3RhdGUoc3RhdGUtPmRldik7Cj4+ICAKPj4gIAkvKiBEb3VibGUg Y2hlY2sgc3RhdGUuICovCj4+ICAJZm9yX2VhY2hfY3J0YyhkZXYsIGNydGMpIHsKPj4gQEAgLTEy Njg4LDExICsxMjY0NSwxNCBAQCBjaGVja19jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPj4gIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Cj4+ICAKPj4g IAlmb3JfZWFjaF9pbnRlbF9jb25uZWN0b3IoZGV2LCBjb25uZWN0b3IpIHsKPj4gKwkJc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyID0gY29ubmVjdG9yLT5iYXNlLmVuY29kZXI7Cj4+ICsJCXN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSA9IGNvbm5lY3Rvci0+YmFzZS5zdGF0ZTsK Pj4gKwo+PiAgCQkvKiBUaGlzIGFsc28gY2hlY2tzIHRoZSBlbmNvZGVyL2Nvbm5lY3RvciBodyBz dGF0ZSB3aXRoIHRoZQo+PiAgCQkgKiAtPmdldF9od19zdGF0ZSBjYWxsYmFja3MuICovCj4+ICAJ CWludGVsX2Nvbm5lY3Rvcl9jaGVja19zdGF0ZShjb25uZWN0b3IpOwo+PiAgCj4+IC0JCUk5MTVf U1RBVEVfV0FSTigmY29ubmVjdG9yLT5uZXdfZW5jb2Rlci0+YmFzZSAhPSBjb25uZWN0b3ItPmJh c2UuZW5jb2RlciwKPj4gKwkJSTkxNV9TVEFURV9XQVJOKHN0YXRlLT5iZXN0X2VuY29kZXIgIT0g ZW5jb2RlciwKPj4gIAkJICAgICAiY29ubmVjdG9yJ3Mgc3RhZ2VkIGVuY29kZXIgZG9lc24ndCBt YXRjaCBjdXJyZW50IGVuY29kZXJcbiIpOwo+PiAgCX0KPj4gIH0KPj4gQEAgLTEyNzEyLDggKzEy NjcyLDYgQEAgY2hlY2tfZW5jb2Rlcl9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAg CQkJICAgICAgZW5jb2Rlci0+YmFzZS5iYXNlLmlkLAo+PiAgCQkJICAgICAgZW5jb2Rlci0+YmFz ZS5uYW1lKTsKPj4gIAo+PiAtCQlJOTE1X1NUQVRFX1dBUk4oJmVuY29kZXItPm5ld19jcnRjLT5i YXNlICE9IGVuY29kZXItPmJhc2UuY3J0YywKPj4gLQkJICAgICAiZW5jb2RlcidzIHN0YWdlIGNy dGMgZG9lc24ndCBtYXRjaCBjdXJyZW50IGNydGNcbiIpOwo+PiAgCQlJOTE1X1NUQVRFX1dBUk4o ZW5jb2Rlci0+Y29ubmVjdG9yc19hY3RpdmUgJiYgIWVuY29kZXItPmJhc2UuY3J0YywKPj4gIAkJ ICAgICAiZW5jb2RlcidzIGFjdGl2ZV9jb25uZWN0b3JzIHNldCwgYnV0IG5vIGNydGNcbiIpOwo+ PiAgCj4+IEBAIC0xMjcyMyw2ICsxMjY4MSwxMCBAQCBjaGVja19lbmNvZGVyX3N0YXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4+ICAJCQllbmFibGVkID0gdHJ1ZTsKPj4gIAkJCWlmIChjb25u ZWN0b3ItPmJhc2UuZHBtcyAhPSBEUk1fTU9ERV9EUE1TX09GRikKPj4gIAkJCQlhY3RpdmUgPSB0 cnVlOwo+PiArCj4+ICsJCQlJOTE1X1NUQVRFX1dBUk4oY29ubmVjdG9yLT5iYXNlLnN0YXRlLT5j cnRjICE9Cj4+ICsJCQkJCWVuY29kZXItPmJhc2UuY3J0YywKPj4gKwkJCSAgICAgImVuY29kZXIn cyBzdGFnZSBjcnRjIGRvZXNuJ3QgbWF0Y2ggY3VycmVudCBjcnRjXG4iKTsKPj4gIAkJfQo+PiAg CQkvKgo+PiAgCQkgKiBmb3IgTVNUIGNvbm5lY3RvcnMgaWYgd2UgdW5wbHVnIHRoZSBjb25uZWN0 b3IgaXMgZ29uZQo+IFNhbWUgZm9yIGFkYXB0aW5nIHRoZSBjaGVjayBmdW5jdGlvbnMuIFByb2Jh Ymx5IG9rIGluIHRoZSByZW1vdmVhbCBvZiB0aGUKPiBsZWdhY3kgbmV3XyogcG9pbnRlcnMgdGhv dWdoLgo+Cj4+IEBAIC0xMzI4MiwxMSArMTMyNDQsMTIgQEAgdm9pZCBpbnRlbF9jcnRjX3Jlc3Rv cmVfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+ICAJICogbmVlZCB0byBjb3B5IHRoZSBz dGFnZWQgY29uZmlnIHRvIHRoZSBhdG9taWMgc3RhdGUsIG90aGVyd2lzZSB0aGUKPj4gIAkgKiBt b2RlIHNldCB3aWxsIGp1c3QgcmVhcHBseSB0aGUgc3RhdGUgdGhlIEhXIGlzIGFscmVhZHkgaW4u ICovCj4+ICAJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcihkZXYsIGVuY29kZXIpIHsKPj4gLQkJaWYg KCZlbmNvZGVyLT5uZXdfY3J0Yy0+YmFzZSAhPSBjcnRjKQo+PiArCQlpZiAoZW5jb2Rlci0+YmFz ZS5jcnRjICE9IGNydGMpCj4+ICAJCQljb250aW51ZTsKPj4gIAo+PiAgCQlmb3JfZWFjaF9pbnRl bF9jb25uZWN0b3IoZGV2LCBjb25uZWN0b3IpIHsKPj4gLQkJCWlmIChjb25uZWN0b3ItPm5ld19l bmNvZGVyICE9IGVuY29kZXIpCj4+ICsJCQlpZiAoY29ubmVjdG9yLT5iYXNlLnN0YXRlLT5iZXN0 X2VuY29kZXIgIT0KPj4gKwkJCSAgICAmZW5jb2Rlci0+YmFzZSkKPj4gIAkJCQljb250aW51ZTsK Pj4gIAo+PiAgCQkJY29ubmVjdG9yX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0 YXRlKHN0YXRlLCAmY29ubmVjdG9yLT5iYXNlKTsKPj4gQEAgLTEzMjk5LDcgKzEzMjYyLDYgQEAg dm9pZCBpbnRlbF9jcnRjX3Jlc3RvcmVfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+ICAJ CQl9Cj4+ICAKPj4gIAkJCWNvbm5lY3Rvcl9zdGF0ZS0+Y3J0YyA9IGNydGM7Cj4+IC0JCQljb25u ZWN0b3Jfc3RhdGUtPmJlc3RfZW5jb2RlciA9ICZlbmNvZGVyLT5iYXNlOwo+PiAgCQl9Cj4+ICAJ fQo+PiAgCj4+IEBAIC0xMzMxMSw5ICsxMzI3Myw2IEBAIHZvaWQgaW50ZWxfY3J0Y19yZXN0b3Jl X21vZGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+PiAgCQlyZXR1cm47Cj4+ICAJfQo+PiAgCj4+ IC0JY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgPSBjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSA9Cj4+ IC0JCXRvX2ludGVsX2NydGMoY3J0YyktPm5ld19lbmFibGVkOwo+PiAtCj4+ICAJZHJtX21vZGVf Y29weSgmY3J0Y19zdGF0ZS0+YmFzZS5tb2RlLCAmY3J0Yy0+bW9kZSk7Cj4+ICAKPj4gIAlpbnRl bF9tb2Rlc2V0X3NldHVwX3BsYW5lX3N0YXRlKHN0YXRlLCBjcnRjLCAmY3J0Yy0+bW9kZSwKPiBT YW1lIGFib3V0IHJlc3RvcmVfbW9kZSAmIG5ld18qIHN0YXRlLgpUaGV5IHdlcmUgZm9yIHRyYWNr aW5nIHB1cnBvc2VzIGFuZCBub3cgZ29uZS4KPj4gQEAgLTE1MTEyLDcgKzE1MDcxLDcgQEAgdm9p ZCBpbnRlbF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gIAlpbnRlbF9m YmNfZGlzYWJsZShkZXYpOwo+PiAgCj4+ICAJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKPj4g LQlpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKGRldiwgZmFsc2UpOwo+PiArCWludGVsX21v ZGVzZXRfc2V0dXBfaHdfc3RhdGUoZGV2KTsKPj4gIAlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRl dik7Cj4+ICAKPj4gIAlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0Yykgewo+PiBAQCAtMTU1 MDAsMTAgKzE1NDU5LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9od19z dGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgCX0KPj4gIH0KPj4gIAo+PiAtLyogU2Nh biBvdXQgdGhlIGN1cnJlbnQgaHcgbW9kZXNldCBzdGF0ZSwgc2FuaXRpemVzIGl0IGFuZCBtYXBz IGl0IGludG8gdGhlIGRybQo+PiAtICogYW5kIGk5MTUgc3RhdGUgdHJhY2tpbmcgc3RydWN0dXJl cy4gKi8KPj4gLXZvaWQgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+PiAtCQkJCSAgYm9vbCBmb3JjZV9yZXN0b3JlKQo+PiArLyogU2NhbiBvdXQg dGhlIGN1cnJlbnQgaHcgbW9kZXNldCBzdGF0ZSwKPj4gKyAqIGFuZCBzYW5pdGl6ZXMgaXQgdG8g dGhlIGN1cnJlbnQgc3RhdGUKPj4gKyAqLwo+PiArc3RhdGljIHZvaWQKPj4gK2ludGVsX21vZGVz ZXRfc2V0dXBfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gIHsKPj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiAgCWVu dW0gcGlwZSBwaXBlOwo+PiBAQCAtMTU1NDUsMjUgKzE1NTA1LDU4IEBAIHZvaWQgaW50ZWxfbW9k ZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgCQlza2xfd21f Z2V0X2h3X3N0YXRlKGRldik7Cj4+ICAJZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXYpKQo+PiAg CQlpbGtfd21fZ2V0X2h3X3N0YXRlKGRldik7Cj4+ICt9Cj4+ICAKPj4gLQlpZiAoZm9yY2VfcmVz dG9yZSkgewo+PiAtCQlpOTE1X3JlZGlzYWJsZV92Z2EoZGV2KTsKPj4gK3ZvaWQgaW50ZWxfZGlz cGxheV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7Cj4gUHV0 dGluZyByZWFsIGZ1bmN0aW9ucyBpbnRvIGluaXRpYWxpemVycyBpcyBhIGJpdCBzdXJwcmlzaW5n LCBpbW8gYmV0dGVyCj4gb24gaXQncyBvd24gbGluZSByaWdodCBiZWZvcmUgdGhlIGNoZWNrLgpP ay4KPj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uOwo+PiArCXN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmU7Cj4+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+PiArCWludCByZXQ7Cj4+ ICAKPj4gLQkJLyoKPj4gLQkJICogV2UgbmVlZCB0byB1c2UgcmF3IGludGVyZmFjZXMgZm9yIHJl c3RvcmluZyBzdGF0ZSB0byBhdm9pZAo+PiAtCQkgKiBjaGVja2luZyAoYm9ndXMpIGludGVybWVk aWF0ZSBzdGF0ZXMuCj4+IC0JCSAqLwo+PiAtCQlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBl KSB7Cj4+IC0JCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPQo+PiAtCQkJCWRldl9wcml2LT5waXBl X3RvX2NydGNfbWFwcGluZ1twaXBlXTsKPj4gKwlpZiAoIXN0YXRlKQo+IGRlYnVnIG91dHB1dCBt aXNzaW5nIHRoYXQgdGhlIHN0YXRlIGFsbG9jIGZhaWxlZC4gUGVyaGFwcyBqdXN0IGdvdG8gZmFp bDsKPiBzaW5jZSBzdGF0ZV9mcmVlIGNhbiBjb3BlIHdpdGggYSBOVUxMIHN0YXRlLgpJdCBjYW4g b25seSBmYWlsIGJlY2F1c2Ugb2Yga21hbGxvYywgd2hpY2ggcHJpbnRzIGl0cyBvd24gd2Fybmlu Z3MuCgo+PiArCQlyZXR1cm47Cj4+ICAKPj4gLQkJCWludGVsX2NydGNfcmVzdG9yZV9tb2RlKGNy dGMpOwo+PiAtCQl9Cj4+IC0JfSBlbHNlIHsKPj4gLQkJaW50ZWxfbW9kZXNldF91cGRhdGVfc3Rh Z2VkX291dHB1dF9zdGF0ZShkZXYpOwo+PiArCXN0YXRlLT5hY3F1aXJlX2N0eCA9IGRldi0+bW9k ZV9jb25maWcuYWNxdWlyZV9jdHg7Cj4+ICsKPj4gKwkvKiBwcmVzZXJ2ZSBjb21wbGV0ZSBvbGQg c3RhdGUsIGluY2x1ZGluZyBkcGxsICovCj4+ICsJaW50ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBs bF9zdGF0ZShzdGF0ZSk7Cj4+ICsKPj4gKwlmb3JfZWFjaF9jcnRjKGRldiwgY3J0Yykgewo+PiAr CQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQo+PiArCQkJZHJtX2F0b21pY19n ZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4+ICsKPj4gKwkJcmV0ID0gUFRSX0VSUl9PUl9a RVJPKGNydGNfc3RhdGUpOwo+PiArCQlpZiAocmV0KQo+PiArCQkJZ290byBlcnI7Cj4+ICsKPj4g KwkJLyogZm9yY2UgYSByZXN0b3JlICovCj4+ICsJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9 IHRydWU7Cj4+ICsJfQo+PiArCj4+ICsJZm9yX2VhY2hfaW50ZWxfcGxhbmUoZGV2LCBwbGFuZSkg ewo+PiArCQlyZXQgPSBQVFJfRVJSX09SX1pFUk8oZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUo c3RhdGUsICZwbGFuZS0+YmFzZSkpOwo+PiArCQlpZiAocmV0KQo+PiArCQkJZ290byBlcnI7Cj4+ ICsJfQo+PiArCj4+ICsJZm9yX2VhY2hfaW50ZWxfY29ubmVjdG9yKGRldiwgY29ubikgewo+PiAr CQlyZXQgPSBQVFJfRVJSX09SX1pFUk8oZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0 YXRlLCAmY29ubi0+YmFzZSkpOwo+PiArCQlpZiAocmV0KQo+PiArCQkJZ290byBlcnI7Cj4+ICAJ fQo+PiAgCj4+IC0JaW50ZWxfbW9kZXNldF9jaGVja19zdGF0ZShkZXYpOwo+PiArCWludGVsX21v ZGVzZXRfc2V0dXBfaHdfc3RhdGUoZGV2KTsKPj4gKwo+PiArCWk5MTVfcmVkaXNhYmxlX3ZnYShk ZXYpOwo+IFNpbmNlIHdlJ3ZlIG9ubHkgYmFkbHkgYnJ1aXNlZCBlc2NhcGUgdGhpcyB0cmFwIEkg dGhpbmsgdGhpcyBkZXNlcnZlcyBhCj4gY29tbWVudDoKPgo+IAkvKgo+IAkgKiBXQVJOSU5HOiBX ZSBjYW4ndCBkbyBhIGZ1bGwgYXRvbWljIG1vZGVzZXQgaW5jbHVkaW5nCj4gCSAqIGNvbXB1dGUv Y2hlY2sgcGhhc2UgaGVyZSBzaW5jZSBlc3BlY2lhbGx5IGVuY29kZXIKPiAJICogY29tcHV0ZV9j b25maWcgZnVuY3Rpb25zIGRlcGVuZCB1cG9uIG91dHB1dCBkZXRlY3Rpb24gc3RhdGUuCj4gCSAq IEFuZCB0aGF0J3MganVzdCBub3QgeWV0IGF2YWlsYWJsZSBhdCBkcml2ZXIgbG9hZC4gVGhlcmVm b3JlIHdlCj4gCSAqIG11c3QgcmVhZCBvdXQgdGhlIGVudGlyZSByZWxldmFudCBodyBzdGF0ZSAo aW5jbHVkaW5nIGFueQo+IAkgKiBkcml2ZXIgaW50ZXJuYWwgc3RhdGUpIGZhaXRoZnVsbHkgaGVy ZSBhbmQgb25seSBhcHBseSB0aGUKPiAJICogY29tbWl0IHNpZGUuCj4gCSAqLwo+Cj4gSG0sIG1h a2VzIG1lIHRoaW5rIC4uLiBzaG91bGQgd2UgZW5kIHVwIGNhbGxpbmcganVzdCBkZXYtPmF0b21p Y19jb21taXQoc3RhdGUpIGhlcmUKPiBvbmNlIGF0b21pYyBtb2Rlc2V0IGlzIGZ1bGx5IHdvcmtp bmc/Ck5vdCBmb3IgaW5pdGlhbCBodyByZWFkb3V0IHVubGVzcyB5b3Ugd2FudCB0byBjYWxsIGRl dGVjdCBpbiB0aGlzIGZ1bmN0aW9uIGZvciBhbGwgZW5jb2RlcnMuLiByZXN1bWUncyBmaW5lIHBy b2JhYmx5LgoKPj4gKwlyZXQgPSBpbnRlbF9zZXRfbW9kZShzdGF0ZSk7Cj4+ICsJaWYgKCFyZXQp Cj4+ICsJCXJldHVybjsKPj4gKwo+PiArZXJyOgo+PiArCURSTV9FUlJPUigiUmVzdG9yaW5nIG9s ZCBzdGF0ZSBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0KTsKPj4gKwlkcm1fYXRvbWljX3N0YXRlX2Zy ZWUoc3RhdGUpOwo+PiAgfQo+PiAgCj4+ICB2b2lkIGludGVsX21vZGVzZXRfZ2VtX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gaW5kZXgg YzNjZWExNzhjODA5Li45N2I2NTc0OWY0NzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4+IEBAIC0xMzAsMTEgKzEzMCw2IEBAIHN0cnVjdCBpbnRlbF9mYmRldiB7Cj4+ICAKPj4g IHN0cnVjdCBpbnRlbF9lbmNvZGVyIHsKPj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgYmFzZTsKPj4g LQkvKgo+PiAtCSAqIFRoZSBuZXcgY3J0YyB0aGlzIGVuY29kZXIgd2lsbCBiZSBkcml2ZW4gZnJv bS4gT25seSBkaWZmZXJzIGZyb20KPj4gLQkgKiBiYXNlLT5jcnRjIHdoaWxlIGEgbW9kZXNldCBp cyBpbiBwcm9ncmVzcy4KPj4gLQkgKi8KPj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqbmV3X2NydGM7 Cj4+ICAKPj4gIAllbnVtIGludGVsX291dHB1dF90eXBlIHR5cGU7Cj4+ICAJdW5zaWduZWQgaW50 IGNsb25lYWJsZTsKPj4gQEAgLTE5NSwxMiArMTkwLDYgQEAgc3RydWN0IGludGVsX2Nvbm5lY3Rv ciB7Cj4+ICAJICovCj4+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4+ICAKPj4g LQkvKgo+PiAtCSAqIFRoZSBuZXcgZW5jb2RlciB0aGlzIGNvbm5lY3RvciB3aWxsIGJlIGRyaXZl bi4gT25seSBkaWZmZXJzIGZyb20KPj4gLQkgKiBlbmNvZGVyIHdoaWxlIGEgbW9kZXNldCBpcyBp biBwcm9ncmVzcy4KPj4gLQkgKi8KPj4gLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqbmV3X2VuY29k ZXI7Cj4+IC0KPj4gIAkvKiBSZWFkcyBvdXQgdGhlIGN1cnJlbnQgaHcsIHJldHVybmluZyB0cnVl IGlmIHRoZSBjb25uZWN0b3IgaXMgZW5hYmxlZAo+PiAgCSAqIGFuZCBhY3RpdmUgKGkuZS4gZHBt cyBPTiBzdGF0ZSkuICovCj4+ICAJYm9vbCAoKmdldF9od19zdGF0ZSkoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqKTsKPj4gQEAgLTU1MCw3ICs1MzksNiBAQCBzdHJ1Y3QgaW50ZWxfY3J0YyB7Cj4+ ICAJdWludDMyX3QgY3Vyc29yX2Jhc2U7Cj4+ICAKPj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY29uZmlnOwo+PiAtCWJvb2wgbmV3X2VuYWJsZWQ7Cj4+ICAKPj4gIAkvKiByZXNldCBjb3Vu dGVyIHZhbHVlIHdoZW4gdGhlIGxhc3QgZmxpcCB3YXMgc3VibWl0dGVkICovCj4+ICAJdW5zaWdu ZWQgaW50IHJlc2V0X2NvdW50ZXI7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKPj4gaW5k ZXggZWE4NTU0NzYxMWE1Li5hNjNkMTg2ODA2MjMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2x2ZHMuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9sdmRzLmMKPj4gQEAgLTQ1Miw3ICs0NTIsNyBAQCBzdGF0aWMgaW50IGludGVsX2xpZF9ub3Rp Znkoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyB2YWwsCj4+ICAJICov Cj4+ICAJaWYgKCFIQVNfUENIX1NQTElUKGRldikpIHsKPj4gIAkJZHJtX21vZGVzZXRfbG9ja19h bGwoZGV2KTsKPj4gLQkJaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShkZXYsIHRydWUpOwo+ PiArCQlpbnRlbF9kaXNwbGF5X3Jlc3VtZShkZXYpOwo+IFdvdWxkIGltbyBiZSBuaWNlIHRvIG1l bnRpb24gdGhpcyBzbWFsbCByZWZhY3RvcmluZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2UuCj4KT2su Cgp+TWFhcnRlbgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=