From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 33/42] drm/i915: remove crtc->active tracking completely Date: Tue, 12 May 2015 11:55:13 +0200 Message-ID: <20150512095513.GO15256@phenom.ffwll.local> References: <1431354318-11995-1-git-send-email-maarten.lankhorst@linux.intel.com> <1431354318-11995-34-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f54.google.com (mail-wg0-f54.google.com [74.125.82.54]) by gabe.freedesktop.org (Postfix) with ESMTP id BBD536E18D for ; Tue, 12 May 2015 02:52:53 -0700 (PDT) Received: by wgin8 with SMTP id n8so2816082wgi.0 for ; Tue, 12 May 2015 02:52:52 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1431354318-11995-34-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: Ander Conselvan de Oliveira , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXkgMTEsIDIwMTUgYXQgMDQ6MjU6MDlQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gU21hbGwgYmVoYXZpb3JhbCBjaGFuZ2U6IERQTExfRFZPXzJYX01PREUgbWF5 IHN0YXkgZW5hYmxlZCBkdXJpbmcgbW9kZXNldAo+IGZvciBJODMwIGlmIG5ldyBzdGF0ZSByZXF1 aXJlcyBpdCwgaW5zdGVhZCBvZiBiZWluZyBkaXNhYmxlZCBhbmQgZW5hYmxlZAo+IGFnYWluLgoK SW1vIHRoaXMgc2hvdWxkIGJlIHNwbGl0IGluIHRoZSByZW1haW5nIGNoYW5nZXMgdG8gZ2V0IHJp ZCBvZiAtPmFjdGl2ZSBhbmQKdGhlbiB0aGUgYWN0dWFsIHJlbW92YWwuCgo+IFNpZ25lZC1vZmYt Ynk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDE0MCArKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCAgICAgfCAgIDYgLS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25z KCspLCAxMDYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+IGluZGV4IDdhNzk2NTlkY2EwMC4uMDA0MDY3YmQwYjZjIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xNjgwLDcgKzE2ODAsNyBAQCBzdGF0aWMgaW50IGlu dGVsX251bV9kdm9fcGlwZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCWludCBjb3VudCA9 IDA7Cj4gIAo+ICAJZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpCj4gLQkJY291bnQgKz0g Y3J0Yy0+YWN0aXZlICYmCj4gKwkJY291bnQgKz0gY3J0Yy0+YmFzZS5zdGF0ZS0+YWN0aXZlICYm Cj4gIAkJCWludGVsX3BpcGVfaGFzX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0RWTyk7Cj4gIAo+ ICAJcmV0dXJuIGNvdW50Owo+IEBAIC0xNzAzLDcgKzE3MDMsNyBAQCBzdGF0aWMgdm9pZCBpOXh4 X2VuYWJsZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaQo+ICAJCWFzc2VydF9wYW5lbF91bmxvY2tlZChkZXZfcHJpdiwgY3J0Yy0+cGlwZSk7 Cj4gIAo+ICAJLyogRW5hYmxlIERWTyAyeCBjbG9jayBvbiBib3RoIFBMTHMgaWYgbmVjZXNzYXJ5 ICovCj4gLQlpZiAoSVNfSTgzMChkZXYpICYmIGludGVsX251bV9kdm9fcGlwZXMoZGV2KSA+IDAp IHsKPiArCWlmIChJU19JODMwKGRldikgJiYgaW50ZWxfbnVtX2R2b19waXBlcyhkZXYpKSB7Cj4g IAkJLyoKPiAgCQkgKiBJdCBhcHBlYXJzIHRvIGJlIGltcG9ydGFudCB0aGF0IHdlIGRvbid0IGVu YWJsZSB0aGlzCj4gIAkJICogZm9yIHRoZSBjdXJyZW50IHBpcGUgYmVmb3JlIG90aGVyd2lzZSBj b25maWd1cmluZyB0aGUKPiBAQCAtMTc2Miw3ICsxNzYyLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9k aXNhYmxlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCS8qIERpc2FibGUgRFZPIDJ4 IGNsb2NrIG9uIGJvdGggUExMcyBpZiBuZWNlc3NhcnkgKi8KPiAgCWlmIChJU19JODMwKGRldikg JiYKPiAgCSAgICBpbnRlbF9waXBlX2hhc190eXBlKGNydGMsIElOVEVMX09VVFBVVF9EVk8pICYm Cj4gLQkgICAgaW50ZWxfbnVtX2R2b19waXBlcyhkZXYpID09IDEpIHsKPiArCSAgICAhaW50ZWxf bnVtX2R2b19waXBlcyhkZXYpKSB7CgpUaGUgc3VwZXItY29ycmVjdCBmaXggd291bGQgYmUgdG8g cGFzcyB0aGUgb2xkX3N0YXRlIGFyb3VuZCBhbmQgdXNlIHRob3NlCmNvbm5lY3RvcnMuIFByb2Jh Ymx5IG5vdCB3b3J0aCB0aGUgdHJvdWJsZS4KCj4gIAkJSTkxNV9XUklURShEUExMKFBJUEVfQiks Cj4gIAkJCSAgIEk5MTVfUkVBRChEUExMKFBJUEVfQikpICYgfkRQTExfRFZPXzJYX01PREUpOwo+ ICAJCUk5MTVfV1JJVEUoRFBMTChQSVBFX0EpLAo+IEBAIC0yNTgzLDcgKzI1ODMsNyBAQCBpbnRl bF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ ICAJCWlmIChjID09ICZpbnRlbF9jcnRjLT5iYXNlKQo+ICAJCQljb250aW51ZTsKPiAgCj4gLQkJ aWYgKCFpLT5hY3RpdmUpCj4gKwkJaWYgKCFjLT5zdGF0ZS0+YWN0aXZlKQo+ICAJCQljb250aW51 ZTsKPiAgCj4gIAkJZmIgPSBjLT5wcmltYXJ5LT5mYjsKPiBAQCAtMzE2NywxMSArMzE2Nyw5IEBA IHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9wcmltYXJ5X3BsYW5lcyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICAKPiAgCWZvcl9lYWNoX2NydGMo ZGV2LCBjcnRjKSB7Cj4gLQkJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNydGMpOwo+IC0KPiAgCQlkcm1fbW9kZXNldF9sb2NrKCZjcnRjLT5tdXRleCwgTlVM TCk7Cj4gIAo+IC0JCWlmIChpbnRlbF9jcnRjLT5hY3RpdmUpIHsKPiArCQlpZiAoY3J0Yy0+c3Rh dGUtPmFjdGl2ZSkgewo+ICAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRl ID0KPiAgCQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGNydGMtPnByaW1hcnktPnN0YXRlKTsKPiAg Cj4gQEAgLTQ2MTksNyArNDYxNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfbG9hZF9sdXQo c3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJYm9vbCByZWVuYWJsZV9pcHMgPSBmYWxzZTsKPiAg Cj4gIAkvKiBUaGUgY2xvY2tzIGhhdmUgdG8gYmUgb24gdG8gbG9hZCB0aGUgcGFsZXR0ZS4gKi8K PiAtCWlmICghY3J0Yy0+c3RhdGUtPmFjdGl2ZSB8fCAhaW50ZWxfY3J0Yy0+YWN0aXZlKQo+ICsJ aWYgKCFjcnRjLT5zdGF0ZS0+YWN0aXZlKQo+ICAJCXJldHVybjsKPiAgCj4gIAlpZiAoSEFTX0dN Q0hfRElTUExBWShkZXZfcHJpdi0+ZGV2KSkgewo+IEBAIC00Nzc4LDEwICs0Nzc2LDggQEAgc3Rh dGljIHZvaWQgaXJvbmxha2VfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJ aW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAJc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnOwo+ICAKPiAtCVdBUk5fT04oIWNydGMtPnN0YXRlLT5lbmFibGUpOwo+ICsJ V0FSTl9PTighY3J0Yy0+c3RhdGUtPmFjdGl2ZSk7Cj4gIAo+IC0JaWYgKFdBUk5fT04oaW50ZWxf Y3J0Yy0+YWN0aXZlKSkKPiAtCQlyZXR1cm47Cj4gIAlwaXBlX2NvbmZpZyA9IHRvX2ludGVsX2Ny dGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ICAKPiAgCWlmIChwaXBlX2NvbmZpZy0+aGFzX3BjaF9l bmNvZGVyKQo+IEBAIC00Nzk5LDggKzQ3OTUsNiBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRj X2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAo+ICAJaXJvbmxha2Vfc2V0X3BpcGVj b25mKGNydGMpOwo+ICAKPiAtCWludGVsX2NydGMtPmFjdGl2ZSA9IHRydWU7Cj4gLQo+ICAJaW50 ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgcGlwZSwgdHJ1ZSk7 Cj4gIAlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBwaXBl LCB0cnVlKTsKPiAgCj4gQEAgLTQ4MDgsNyArNDgwMiw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtl X2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCQlpZiAoZW5jb2Rlci0+cHJl X2VuYWJsZSkKPiAgCQkJZW5jb2Rlci0+cHJlX2VuYWJsZShlbmNvZGVyKTsKPiAgCj4gLQlpZiAo aW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpIHsKPiArCWlmIChwaXBlX2NvbmZp Zy0+aGFzX3BjaF9lbmNvZGVyKSB7CgpNaXNwbGFjZSBodW5rPwoKPiAgCQkvKiBOb3RlOiBGREkg UExMIGVuYWJsaW5nIF9tdXN0XyBiZSBkb25lIGJlZm9yZSB3ZSBlbmFibGUgdGhlCj4gIAkJICog Y3B1IHBpcGVzLCBoZW5jZSB0aGlzIGlzIHNlcGFyYXRlIGZyb20gYWxsIHRoZSBvdGhlciBmZGkv cGNoCj4gIAkJICogZW5hYmxpbmcuICovCj4gQEAgLTQ4NTksOSArNDg1Myw2IEBAIHN0YXRpYyB2 b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAKPiAgCVdB Uk5fT04oIWNydGMtPnN0YXRlLT5lbmFibGUpOwo+ICAKPiAtCWlmIChXQVJOX09OKGludGVsX2Ny dGMtPmFjdGl2ZSkpCj4gLQkJcmV0dXJuOwo+IC0KPiAgCXBpcGVfY29uZmlnID0gdG9faW50ZWxf Y3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gIAlpZiAoaW50ZWxfY3J0Y190b19zaGFyZWRfZHBs bChpbnRlbF9jcnRjKSkKPiAgCQlpbnRlbF9lbmFibGVfc2hhcmVkX2RwbGwoaW50ZWxfY3J0Yyk7 Cj4gQEAgLTQ4ODUsOCArNDg3Niw2IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUo c3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAKPiAgCWludGVsX3NldF9waXBlX2NzYyhjcnRjKTsK PiAgCj4gLQlpbnRlbF9jcnRjLT5hY3RpdmUgPSB0cnVlOwo+IC0KPiAgCWludGVsX3NldF9jcHVf Zmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRydWUpOwo+ICAJZm9yX2Vh Y2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKPiAgCQlpZiAoZW5jb2Rlci0+ cHJlX2VuYWJsZSkKPiBAQCAtNTc0Myw4ICs1NzMyLDYgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmll d19jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAo+ICAJV0FSTl9PTighY3J0 Yy0+c3RhdGUtPmFjdGl2ZSk7Cj4gIAo+IC0JaWYgKFdBUk5fT04oaW50ZWxfY3J0Yy0+YWN0aXZl KSkKPiAtCQlyZXR1cm47Cj4gIAlwaXBlX2NvbmZpZyA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0 Yy0+c3RhdGUpOwo+ICAKPiAgCWlzX2RzaSA9IGludGVsX3BpcGVfaGFzX3R5cGUoaW50ZWxfY3J0 YywgSU5URUxfT1VUUFVUX0RTSSk7Cj4gQEAgLTU3NzAsOCArNTc1Nyw2IEBAIHN0YXRpYyB2b2lk IHZhbGxleXZpZXdfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAKPiAgCWk5 eHhfc2V0X3BpcGVjb25mKGludGVsX2NydGMpOwo+ICAKPiAtCWludGVsX2NydGMtPmFjdGl2ZSA9 IHRydWU7Cj4gLQo+ICAJaW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZf cHJpdiwgcGlwZSwgdHJ1ZSk7Cj4gIAo+ICAJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwg Y3J0YywgZW5jb2RlcikKPiBAQCAtNTgyNCw5ICs1ODA5LDYgQEAgc3RhdGljIHZvaWQgaTl4eF9j cnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlwaXBlX2NvbmZpZyA9IHRvX2lu dGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ICAJV0FSTl9PTighcGlwZV9jb25maWctPmJh c2UuYWN0aXZlKTsKPiAgCj4gLQlpZiAoV0FSTl9PTihpbnRlbF9jcnRjLT5hY3RpdmUpKQo+IC0J CXJldHVybjsKPiAtCj4gIAlpOXh4X3NldF9wbGxfZGl2aWRlcnMoaW50ZWxfY3J0Yyk7Cj4gIAo+ ICAJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+aGFzX2RwX2VuY29kZXIpCj4gQEAgLTU4MzYsOCAr NTgxOCw2IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpj cnRjKQo+ICAKPiAgCWk5eHhfc2V0X3BpcGVjb25mKGludGVsX2NydGMpOwo+ICAKPiAtCWludGVs X2NydGMtPmFjdGl2ZSA9IHRydWU7Cj4gLQo+ICAJaWYgKCFJU19HRU4yKGRldikpCj4gIAkJaW50 ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgcGlwZSwgdHJ1ZSk7 Cj4gIAo+IEBAIC01OTMwLDcgKzU5MTAsNyBAQCB2b2lkIGludGVsX2NydGNfY29udHJvbChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgZW5hYmxlKQo+ICAJc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlOwo+ICAJaW50IHJldDsKPiAgCj4gLQlpZiAoZW5hYmxlID09IGludGVsX2NydGMt PmFjdGl2ZSkKPiArCWlmIChlbmFibGUgPT0gY3J0Yy0+c3RhdGUtPmFjdGl2ZSkKPiAgCQlyZXR1 cm47Cj4gIAo+ICAJaWYgKGVuYWJsZSAmJiAhY3J0Yy0+c3RhdGUtPmVuYWJsZSkKPiBAQCAtNjA0 NSw5ICs2MDI1LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfY29ubmVjdG9yX2NoZWNrX3N0YXRlKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCj4gIAkJCWNydGMgPSBlbmNvZGVy LT5iYXNlLmNydGM7Cj4gIAo+IC0JCQlJOTE1X1NUQVRFX1dBUk4oIWNydGMtPnN0YXRlLT5hY3Rp dmUsCj4gKwkJCUk5MTVfU1RBVEVfV0FSTighY3J0Yy0+c3RhdGUtPmVuYWJsZSwKPiAgCQkJCQki Y3J0YyBub3QgZW5hYmxlZFxuIik7Cj4gLQkJCUk5MTVfU1RBVEVfV0FSTighdG9faW50ZWxfY3J0 YyhjcnRjKS0+YWN0aXZlLCAiY3J0YyBub3QgYWN0aXZlXG4iKTsKPiArCQkJSTkxNV9TVEFURV9X QVJOKCFjcnRjLT5zdGF0ZS0+YWN0aXZlLCAiY3J0YyBub3QgYWN0aXZlXG4iKTsKPiAgCQkJSTkx NV9TVEFURV9XQVJOKHBpcGUgIT0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZSwKPiAgCQkJICAg ICAiZW5jb2RlciBhY3RpdmUgb24gdGhlIHdyb25nIHBpcGVcbiIpOwo+ICAJCX0KPiBAQCAtODc5 OCw3ICs4Nzc4LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2Nhbl9kaXNhYmxlX2xjcGxsKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj Owo+ICAKPiAgCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBjcnRjKQo+IC0JCUk5MTVfU1RBVEVf V0FSTihjcnRjLT5hY3RpdmUsICJDUlRDIGZvciBwaXBlICVjIGVuYWJsZWRcbiIsCj4gKwkJSTkx NV9TVEFURV9XQVJOKGNydGMtPmJhc2Uuc3RhdGUtPmFjdGl2ZSwgIkNSVEMgZm9yIHBpcGUgJWMg ZW5hYmxlZFxuIiwKPiAgCQkgICAgIHBpcGVfbmFtZShjcnRjLT5waXBlKSk7Cj4gIAo+ICAJSTkx NV9TVEFURV9XQVJOKEk5MTVfUkVBRChIU1dfUFdSX1dFTExfRFJJVkVSKSwgIlBvd2VyIHdlbGwg b25cbiIpOwo+IEBAIC0xMTczOCw3ICsxMTcxOCw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX3dtX3N0 YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJc3RydWN0IHNrbF9kZGJfZW50cnkgKmh3 X2VudHJ5LCAqc3dfZW50cnk7Cj4gIAkJY29uc3QgZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRj LT5waXBlOwo+ICAKPiAtCQlpZiAoIWludGVsX2NydGMtPmFjdGl2ZSkKPiArCQlpZiAoIWludGVs X2NydGMtPmJhc2Uuc3RhdGUtPmFjdGl2ZSkKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCS8qIHBs YW5lcyAqLwo+IEBAIC0xMTg3MSw5ICsxMTg1MSw2IEBAIGNoZWNrX2NydGNfc3RhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiAgCQlEUk1fREVCVUdfS01TKCJbQ1JUQzolZF1cbiIsCj4gIAkJ CSAgICAgIGNydGMtPmJhc2UuYmFzZS5pZCk7Cj4gIAo+IC0JCUk5MTVfU1RBVEVfV0FSTihjcnRj LT5hY3RpdmUgJiYgIWNydGMtPmJhc2Uuc3RhdGUtPmVuYWJsZSwKPiAtCQkgICAgICJhY3RpdmUg Y3J0YywgYnV0IG5vdCBlbmFibGVkIGluIHN3IHRyYWNraW5nXG4iKTsKPiAtCj4gIAkJZm9yX2Vh Y2hfaW50ZWxfZW5jb2RlcihkZXYsIGVuY29kZXIpIHsKPiAgCQkJaWYgKGVuY29kZXItPmJhc2Uu Y3J0YyAhPSAmY3J0Yy0+YmFzZSkKPiAgCQkJCWNvbnRpbnVlOwo+IEBAIC0xMTg4Miw5ICsxMTg1 OSw5IEBAIGNoZWNrX2NydGNfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJCWFj dGl2ZSA9IHRydWU7Cj4gIAkJfQo+ICAKPiAtCQlJOTE1X1NUQVRFX1dBUk4oYWN0aXZlICE9IGNy dGMtPmFjdGl2ZSwKPiArCQlJOTE1X1NUQVRFX1dBUk4oYWN0aXZlICE9IGNydGMtPmJhc2Uuc3Rh dGUtPmFjdGl2ZSwKPiAgCQkgICAgICJjcnRjJ3MgY29tcHV0ZWQgYWN0aXZlIHN0YXRlIGRvZXNu J3QgbWF0Y2ggdHJhY2tlZCBhY3RpdmUgc3RhdGUgIgo+IC0JCSAgICAgIihleHBlY3RlZCAlaSwg Zm91bmQgJWkpXG4iLCBhY3RpdmUsIGNydGMtPmFjdGl2ZSk7Cj4gKwkJICAgICAiKGV4cGVjdGVk ICVpLCBmb3VuZCAlaSlcbiIsIGFjdGl2ZSwgY3J0Yy0+YmFzZS5zdGF0ZS0+YWN0aXZlKTsKPiAg CQlJOTE1X1NUQVRFX1dBUk4oZW5hYmxlZCAhPSBjcnRjLT5iYXNlLnN0YXRlLT5lbmFibGUsCj4g IAkJICAgICAiY3J0YydzIGNvbXB1dGVkIGVuYWJsZWQgc3RhdGUgZG9lc24ndCBtYXRjaCB0cmFj a2VkIGVuYWJsZWQgc3RhdGUgIgo+ICAJCSAgICAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4i LCBlbmFibGVkLAo+IEBAIC0xMTg5Niw3ICsxMTg3Myw3IEBAIGNoZWNrX2NydGNfc3RhdGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkvKiBodyBzdGF0ZSBpcyBpbmNvbnNpc3RlbnQgd2l0 aCB0aGUgcGlwZSBxdWlyayAqLwo+ICAJCWlmICgoY3J0Yy0+cGlwZSA9PSBQSVBFX0EgJiYgZGV2 X3ByaXYtPnF1aXJrcyAmIFFVSVJLX1BJUEVBX0ZPUkNFKSB8fAo+ICAJCSAgICAoY3J0Yy0+cGlw ZSA9PSBQSVBFX0IgJiYgZGV2X3ByaXYtPnF1aXJrcyAmIFFVSVJLX1BJUEVCX0ZPUkNFKSkKPiAt CQkJYWN0aXZlID0gY3J0Yy0+YWN0aXZlOwo+ICsJCQlhY3RpdmUgPSBjcnRjLT5iYXNlLnN0YXRl LT5hY3RpdmU7Cj4gIAo+ICAJCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBlbmNvZGVyKSB7 Cj4gIAkJCWVudW0gcGlwZSBwaXBlOwo+IEBAIC0xMTkwNiw5ICsxMTg4Myw5IEBAIGNoZWNrX2Ny dGNfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJCWVuY29kZXItPmdldF9jb25m aWcoZW5jb2RlciwgJnBpcGVfY29uZmlnKTsKPiAgCQl9Cj4gIAo+IC0JCUk5MTVfU1RBVEVfV0FS TihjcnRjLT5hY3RpdmUgIT0gYWN0aXZlLAo+ICsJCUk5MTVfU1RBVEVfV0FSTihjcnRjLT5iYXNl LnN0YXRlLT5hY3RpdmUgIT0gYWN0aXZlLAo+ICAJCSAgICAgImNydGMgYWN0aXZlIHN0YXRlIGRv ZXNuJ3QgbWF0Y2ggd2l0aCBodyBzdGF0ZSAiCj4gLQkJICAgICAiKGV4cGVjdGVkICVpLCBmb3Vu ZCAlaSlcbiIsIGNydGMtPmFjdGl2ZSwgYWN0aXZlKTsKPiArCQkgICAgICIoZXhwZWN0ZWQgJWks IGZvdW5kICVpKVxuIiwgY3J0Yy0+YmFzZS5zdGF0ZS0+YWN0aXZlLCBhY3RpdmUpOwo+ICAKPiAg CQlpZiAoYWN0aXZlICYmCj4gIAkJICAgICFpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKGRldiwg Y3J0Yy0+Y29uZmlnLCAmcGlwZV9jb25maWcpKSB7Cj4gQEAgLTExOTMxLDcgKzExOTA4LDcgQEAg Y2hlY2tfc2hhcmVkX2RwbGxfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCj4gIAlm b3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbDsgaSsrKSB7Cj4gIAkJc3Ry dWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXTsK PiAtCQlpbnQgZW5hYmxlZF9jcnRjcyA9IDAsIGFjdGl2ZV9jcnRjcyA9IDA7Cj4gKwkJaW50IGFj dGl2ZV9jcnRjcyA9IDA7Cj4gIAkJYm9vbCBhY3RpdmU7Cj4gIAo+ICAJCW1lbXNldCgmZHBsbF9o d19zdGF0ZSwgMCwgc2l6ZW9mKGRwbGxfaHdfc3RhdGUpKTsKPiBAQCAtMTE5NTMsMTYgKzExOTMw LDE0IEBAIGNoZWNrX3NoYXJlZF9kcGxsX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g IAo+ICAJCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBjcnRjKSB7Cj4gIAkJCWlmIChjcnRjLT5i YXNlLnN0YXRlLT5hY3RpdmUgJiYgaW50ZWxfY3J0Y190b19zaGFyZWRfZHBsbChjcnRjKSA9PSBw bGwpCj4gLQkJCQllbmFibGVkX2NydGNzKys7Cj4gLQkJCWlmIChjcnRjLT5hY3RpdmUgJiYgaW50 ZWxfY3J0Y190b19zaGFyZWRfZHBsbChjcnRjKSA9PSBwbGwpCj4gIAkJCQlhY3RpdmVfY3J0Y3Mr KzsKPiAgCQl9Cj4gIAkJSTkxNV9TVEFURV9XQVJOKHBsbC0+YWN0aXZlICE9IGFjdGl2ZV9jcnRj cywKPiAgCQkgICAgICJwbGwgYWN0aXZlIGNydGNzIG1pc21hdGNoIChleHBlY3RlZCAlaSwgZm91 bmQgJWkpXG4iLAo+ICAJCSAgICAgcGxsLT5hY3RpdmUsIGFjdGl2ZV9jcnRjcyk7Cj4gLQkJSTkx NV9TVEFURV9XQVJOKGh3ZWlnaHQzMihwbGwtPmNvbmZpZy5jcnRjX21hc2spICE9IGVuYWJsZWRf Y3J0Y3MsCj4gKwkJSTkxNV9TVEFURV9XQVJOKGh3ZWlnaHQzMihwbGwtPmNvbmZpZy5jcnRjX21h c2spICE9IGFjdGl2ZV9jcnRjcywKPiAgCQkgICAgICJwbGwgZW5hYmxlZCBjcnRjcyBtaXNtYXRj aCAoZXhwZWN0ZWQgJWksIGZvdW5kICVpKVxuIiwKPiAtCQkgICAgIGh3ZWlnaHQzMihwbGwtPmNv bmZpZy5jcnRjX21hc2spLCBlbmFibGVkX2NydGNzKTsKPiArCQkgICAgIGh3ZWlnaHQzMihwbGwt PmNvbmZpZy5jcnRjX21hc2spLCBhY3RpdmVfY3J0Y3MpOwo+ICAKPiAgCQlJOTE1X1NUQVRFX1dB Uk4ocGxsLT5vbiAmJiBtZW1jbXAoJnBsbC0+Y29uZmlnLmh3X3N0YXRlLCAmZHBsbF9od19zdGF0 ZSwKPiAgCQkJCSAgICAgICBzaXplb2YoZHBsbF9od19zdGF0ZSkpLAo+IEBAIC0xMjI2NCwxMCAr MTIyMzksMTAgQEAgc3RhdGljIHZvaWQgX19pbnRlbF9zZXRfbW9kZV91cGRhdGVfcGxhbmVzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPnN0 YXRlKS0+aHdfZW5hYmxlZCA9IGZhbHNlOwo+ICAJCURSTV9ERUJVR19BVE9NSUMoIlBsYW5lICVp IGlzIHZpc2libGU6ICVpXG4iLCBpLCB2aXNpYmxlKTsKPiAgCj4gLQkJaWYgKCF2aXNpYmxlKQo+ ICsJCWlmIChjcnRjICYmIG5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpKQo+ICsJCQlpbnRlbF9w bGFuZS0+ZGlzYWJsZV9wbGFuZShwbGFuZSwgY3J0YywgIXZpc2libGUpOwo+ICsJCWVsc2UgaWYg KCF2aXNpYmxlKQo+ICAJCQlmdW5jcy0+YXRvbWljX3VwZGF0ZShwbGFuZSwgb2xkX3BsYW5lX3N0 YXRlKTsKPiAtCQllbHNlIGlmIChuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSkKPiAtCQkJaW50 ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUocGxhbmUsIGNydGMsIHRydWUpOwo+ICAJfQo+ICB9Cj4g IAo+IEBAIC0xMjM0OSw4ICsxMjMyNCw2IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZShz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkJaW50ZWxfY3J0Y19kcG1zX292ZXJs YXlfZGlzYWJsZSh0b19pbnRlbF9jcnRjKGNydGMpKTsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5j cnRjX2Rpc2FibGUoY3J0YywgcGlwZV9jb25maWcpOwo+ICAKPiAtCQlpbnRlbF9jcnRjLT5hY3Rp dmUgPSBmYWxzZTsKPiAtCj4gIAkJaWYgKGludGVsX2NydGNfdG9fc2hhcmVkX2RwbGwoaW50ZWxf Y3J0YykpCj4gIAkJCWludGVsX2Rpc2FibGVfc2hhcmVkX2RwbGwoaW50ZWxfY3J0Yyk7Cj4gIAl9 Cj4gQEAgLTEzMDM1LDExICsxMzAwOCw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNr X2NydGMoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJbWVtc2V0KCZpbnRlbF9jcnRjLT5hdG9t aWMsIDAsIHNpemVvZihpbnRlbF9jcnRjLT5hdG9taWMpKTsKPiAgCWludGVsX2NydGMtPmF0b21p Yy51cGRhdGVfd20gPSBtb2RlX2NoYW5nZWQ7Cj4gIAlpbnRlbF9jcnRjLT5hdG9taWMuZGlzYWJs ZV9mYmMgPSBtb2RlX2NoYW5nZWQ7Cj4gKwlpbnRlbF9jcnRjLT5hdG9taWMuZXZhZGUgPSAhbW9k ZV9jaGFuZ2VkICYmIHdhc19jcnRjX2VuYWJsZWQ7Cj4gIAo+ICAJaWR4ID0gY3J0Yy0+YmFzZS5p ZDsKPiAtCUk5MTVfU1RBVEVfV0FSTihjcnRjLT5zdGF0ZS0+YWN0aXZlICE9IGludGVsX2NydGMt PmFjdGl2ZSwKPiAtCQkiQ3J0YyAlaSBtaXNtYXRjaCBiZXR3ZWVuIHN0YXRlLT5hY3RpdmUoJWkp IGFuZCBjcnRjLT5hY3RpdmUgKCVpKVxuIiwKPiAtCQlpZHgsIGNydGMtPnN0YXRlLT5hY3RpdmUs IGludGVsX2NydGMtPmFjdGl2ZSk7Cj4gIAo+ICAJRFJNX0RFQlVHX0FUT01JQygiQ3J0YyAlaSB3 YXMgZW5hYmxlZCAlaSBub3cgZW5hYmxlZDogJWlcbiIsCj4gIAkJCSBpZHgsIHdhc19jcnRjX2Vu YWJsZWQsIGlzX2NydGNfZW5hYmxlZCk7Cj4gQEAgLTEzMjI5LDcgKzEzMjAwLDcgQEAgc3RhdGlj IHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJ aW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwo+ICAKPiAgCS8qIFBlcmZvcm0gdmJsYW5r IGV2YXNpb24gYXJvdW5kIGNvbW1pdCBvcGVyYXRpb24gKi8KPiAtCWlmIChpbnRlbF9jcnRjLT5h Y3RpdmUgJiYgIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpICYmCj4gKwlpZiAoaW50ZWxfY3J0 Yy0+YXRvbWljLmV2YWRlICYmCj4gIAkgICAgIWRldl9wcml2LT5wb3dlcl9kb21haW5zLmluaXRf cG93ZXJfb24pCj4gIAkJaW50ZWxfY3J0Yy0+YXRvbWljLmV2YWRlID0KPiAgCQkJaW50ZWxfcGlw ZV91cGRhdGVfc3RhcnQoaW50ZWxfY3J0YywKPiBAQCAtMTQ1MzcsNyArMTQ1MDgsNyBAQCB2b2lk IGludGVsX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJZHJtX21vZGVz ZXRfdW5sb2NrX2FsbChkZXYpOwo+ICAKPiAgCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBjcnRj KSB7Cj4gLQkJaWYgKCFjcnRjLT5hY3RpdmUpCj4gKwkJaWYgKCFjcnRjLT5iYXNlLnN0YXRlLT5h Y3RpdmUpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQkvKgo+IEBAIC0xNDYxNSw3ICsxNDU4Niw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nhbml0aXplX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNy dGMpCj4gIAo+ICAJLyogcmVzdG9yZSB2YmxhbmsgaW50ZXJydXB0cyB0byBjb3JyZWN0IHN0YXRl ICovCj4gIAlkcm1fY3J0Y192YmxhbmtfcmVzZXQoJmNydGMtPmJhc2UpOwo+IC0JaWYgKGNydGMt PmFjdGl2ZSkgewo+ICsJaWYgKGNydGMtPmJhc2Uuc3RhdGUtPmFjdGl2ZSkgewo+ICAJCXVwZGF0 ZV9zY2FubGluZV9vZmZzZXQoY3J0Yyk7Cj4gIAkJZHJtX2NydGNfdmJsYW5rX29uKCZjcnRjLT5i YXNlKTsKPiAgCX0KPiBAQCAtMTQ2NTUsMTQgKzE0NjI2LDE0IEBAIHN0YXRpYyB2b2lkIGludGVs X3Nhbml0aXplX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAkJCQljb25uZWN0b3It PmVuY29kZXItPmNvbm5lY3RvcnNfYWN0aXZlID0gZmFsc2U7Cj4gIAkJCX0KPiAgCj4gLQkJV0FS Tl9PTihjcnRjLT5hY3RpdmUpOwo+ICsJCVdBUk5fT04oY3J0Yy0+YmFzZS5zdGF0ZS0+YWN0aXZl KTsKPiAgCQljcnRjLT5iYXNlLnN0YXRlLT5lbmFibGUgPSBmYWxzZTsKPiAgCQljcnRjLT5iYXNl LnN0YXRlLT5hY3RpdmUgPSBmYWxzZTsKPiAgCQljcnRjLT5iYXNlLmVuYWJsZWQgPSBmYWxzZTsK PiAgCX0KPiAgCj4gIAlpZiAoZGV2X3ByaXYtPnF1aXJrcyAmIFFVSVJLX1BJUEVBX0ZPUkNFICYm Cj4gLQkgICAgY3J0Yy0+cGlwZSA9PSBQSVBFX0EgJiYgIWNydGMtPmFjdGl2ZSkgewo+ICsJICAg IGNydGMtPnBpcGUgPT0gUElQRV9BICYmICFjcnRjLT5iYXNlLnN0YXRlLT5hY3RpdmUpIHsKPiAg CQkvKiBCSU9TIGZvcmdvdCB0byBlbmFibGUgcGlwZSBBLCB0aGlzIG1vc3RseSBoYXBwZW5zIGFm dGVyCj4gIAkJICogcmVzdW1lLiBGb3JjZS1lbmFibGUgdGhlIHBpcGUgdG8gZml4IHRoaXMsIHRo ZSB1cGRhdGVfZHBtcwo+ICAJCSAqIGNhbGwgYmVsb3cgd2UgcmVzdG9yZSB0aGUgcGlwZSB0byB0 aGUgcmlnaHQgc3RhdGUsIGJ1dCBsZWF2ZQo+IEBAIC0xNDY3NCwzNSArMTQ2NDUsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9zYW5pdGl6ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICAJ ICogaGF2ZSBhY3RpdmUgY29ubmVjdG9ycy9lbmNvZGVycy4gKi8KPiAgCWludGVsX2NydGNfdXBk YXRlX2RwbXMoJmNydGMtPmJhc2UpOwo+ICAKPiAtCWlmIChjcnRjLT5hY3RpdmUgIT0gY3J0Yy0+ YmFzZS5zdGF0ZS0+YWN0aXZlKSB7Cj4gLQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7 Cj4gLQo+IC0JCS8qIFRoaXMgY2FuIGhhcHBlbiBlaXRoZXIgZHVlIHRvIGJ1Z3MgaW4gdGhlIGdl dF9od19zdGF0ZQo+IC0JCSAqIGZ1bmN0aW9ucyBvciBiZWNhdXNlIHRoZSBwaXBlIGlzIGZvcmNl LWVuYWJsZWQgZHVlIHRvIHRoZQo+IC0JCSAqIHBpcGUgQSBxdWlyay4gKi8KPiAtCQlEUk1fREVC VUdfS01TKCJbQ1JUQzolZF0gaHcgc3RhdGUgYWRqdXN0ZWQsIHdhcyAlcywgbm93ICVzXG4iLAo+ IC0JCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsCj4gLQkJCSAgICAgIGNydGMtPmJhc2Uuc3Rh dGUtPmVuYWJsZSA/ICJlbmFibGVkIiA6ICJkaXNhYmxlZCIsCj4gLQkJCSAgICAgIGNydGMtPmFj dGl2ZSA/ICJlbmFibGVkIiA6ICJkaXNhYmxlZCIpOwo+IC0KPiAtCQljcnRjLT5iYXNlLnN0YXRl LT5lbmFibGUgPSBjcnRjLT5hY3RpdmU7Cj4gLQkJY3J0Yy0+YmFzZS5zdGF0ZS0+YWN0aXZlID0g Y3J0Yy0+YWN0aXZlOwo+IC0JCWNydGMtPmJhc2UuZW5hYmxlZCA9IGNydGMtPmFjdGl2ZTsKPiAt Cj4gLQkJLyogQmVjYXVzZSB3ZSBvbmx5IGVzdGFibGlzaCB0aGUgY29ubmVjdG9yIC0+IGVuY29k ZXIgLT4KPiAtCQkgKiBjcnRjIGxpbmtzIGlmIHNvbWV0aGluZyBpcyBhY3RpdmUsIHRoaXMgbWVh bnMgdGhlCj4gLQkJICogY3J0YyBpcyBub3cgZGVhY3RpdmF0ZWQuIEJyZWFrIHRoZSBsaW5rcy4g Y29ubmVjdG9yCj4gLQkJICogLT4gZW5jb2RlciBsaW5rcyBhcmUgb25seSBlc3RhYmxpc2ggd2hl biB0aGluZ3MgYXJlCj4gLQkJICogIGFjdHVhbGx5IHVwLCBoZW5jZSBubyBuZWVkIHRvIGJyZWFr IHRoZW0uICovCj4gLQkJV0FSTl9PTihjcnRjLT5hY3RpdmUpOwo+IC0KPiAtCQlmb3JfZWFjaF9l bmNvZGVyX29uX2NydGMoZGV2LCAmY3J0Yy0+YmFzZSwgZW5jb2Rlcikgewo+IC0JCQlXQVJOX09O KGVuY29kZXItPmNvbm5lY3RvcnNfYWN0aXZlKTsKPiAtCQkJZW5jb2Rlci0+YmFzZS5jcnRjID0g TlVMTDsKPiAtCQl9Cj4gLQl9CgpJIGRvbid0IHRoaW5rIHlvdSBjYW4gbnVrZSB0aGlzLiBFc3Nl bnRpYWxseSB3ZSBoYXZlIHR3byBiaXRzIGhlcmU6Ci0gaXMgdGhlIHBpcGUgZW5hYmxlZCAoYml0 MzEgaW4gcGlwZWNvbmYpPwotIGlzIGFueSBlbmNvZGVyIHVzaW5nIHRoaXMgcGlwZSBhbmQgZW5h YmxlZD8KClRoZSBsYXRlciBpcyBjb21wdXRlZC91cGRhdGVkIGluIGludGVsX2NydGNfdXBkYXRl X2RwbXMuIEknbSBub3Qgc3VyZQp3aGVyZSBleGFjdGx5LCBidXQgc29tZXRoaW5nIGluIHRoZXNl IHBpbGUgb2YgY2hhbmdlcyBtaWdodCBoYXZlIGJyb2tlbgp0aGlzLgoKSWYgbm90IEkgdGhpbmsg aXQgc2hvdWxkIGJlIGV4dHJhY3RlZCBpbnRvIGEgc2VwYXJhdGUgcGF0Y2ggdG9nZXRoZXIgd2l0 aAp0aGUgb3RoZXIgY2hhbmdlcyAodG8gaW50ZWxfY3J0Y19jb250cm9sIG1heWJlPykgdG8gbWFr ZSBpdCBlYXNpZXIgdG8KZm9sbG93IHdoeSB0aGlzIGNvZGUgaXNuJ3QgbmVlZGVkIGFueSBtb3Jl LiBBdCBsZWFzdCBzaWxlbnRseSByZW1vdmluZwpjb2RlIHdpdGggc2NhcnkgY29tbWVudHMgd2l0 aG91dCBleHBsYWluaW5nIHdoeSBpdCdzIGRlYWQgbm93IChhbmQgd2l0aG91dAptb3ZpbmcgdGhl IGNvbW1lbnRzIHRvIHRoZSBuZXcgcGxhY2VzKSBpc24ndCBnb29kLgotRGFuaWVsCgo+IC0KPiAt CWlmIChjcnRjLT5hY3RpdmUgfHwgSEFTX0dNQ0hfRElTUExBWShkZXYpKSB7Cj4gKwlpZiAoY3J0 Yy0+YmFzZS5zdGF0ZS0+YWN0aXZlIHx8IEhBU19HTUNIX0RJU1BMQVkoZGV2KSkgewo+ICAJCS8q Cj4gIAkJICogV2Ugc3RhcnQgb3V0IHdpdGggdW5kZXJydW4gcmVwb3J0aW5nIGRpc2FibGVkIHRv IGF2b2lkIHJhY2VzLgo+ICAJCSAqIEZvciBjb3JyZWN0IGJvb2trZWVwaW5nIG1hcmsgdGhpcyBv biBhY3RpdmUgY3J0Y3MuCj4gQEAgLTE0NzMwLDcgKzE0NjczLDcgQEAgc3RhdGljIHZvaWQgaW50 ZWxfc2FuaXRpemVfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCS8q IFdlIG5lZWQgdG8gY2hlY2sgYm90aCBmb3IgYSBjcnRjIGxpbmsgKG1lYW5pbmcgdGhhdCB0aGUK PiAgCSAqIGVuY29kZXIgaXMgYWN0aXZlIGFuZCB0cnlpbmcgdG8gcmVhZCBmcm9tIGEgcGlwZSkg YW5kIHRoZQo+ICAJICogcGlwZSBpdHNlbGYgYmVpbmcgYWN0aXZlLiAqLwo+IC0JYm9vbCBoYXNf YWN0aXZlX2NydGMgPSBjcnRjICYmIHRvX2ludGVsX2NydGMoY3J0YyktPmFjdGl2ZTsKPiArCWJv b2wgaGFzX2FjdGl2ZV9jcnRjID0gY3J0YyAmJiBjcnRjLT5zdGF0ZS0+YWN0aXZlOwo+ICAKPiAg CWlmIChlbmNvZGVyLT5jb25uZWN0b3JzX2FjdGl2ZSAmJiAhaGFzX2FjdGl2ZV9jcnRjKSB7Cj4g IAkJRFJNX0RFQlVHX0tNUygiW0VOQ09ERVI6JWQ6JXNdIGhhcyBhY3RpdmUgY29ubmVjdG9ycyBi dXQgbm8gYWN0aXZlIHBpcGUhXG4iLAo+IEBAIC0xNDgwMCw3ICsxNDc0Myw3IEBAIHN0YXRpYyBi b29sIHByaW1hcnlfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0+ZGV2 X3ByaXZhdGU7Cj4gIAo+IC0JaWYgKCFjcnRjLT5hY3RpdmUpCj4gKwlpZiAoIWNydGMtPmJhc2Uu c3RhdGUtPmFjdGl2ZSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICAJcmV0dXJuIEk5MTVfUkVB RChEU1BDTlRSKGNydGMtPnBsYW5lKSkgJiBESVNQTEFZX1BMQU5FX0VOQUJMRTsKPiBAQCAtMTQ4 MjgsMTIgKzE0NzcxLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0 YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJaWYgKGNydGMtPmJhc2Uuc3RhdGUtPmFj dGl2ZSkKPiAgCQkJKmNydGNfbWFzayB8PSBkcm1fY3J0Y19pbmRleCgmY3J0Yy0+YmFzZSk7Cj4g IAo+IC0JCWNydGMtPmFjdGl2ZSA9IGRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZpZyhj cnRjLAo+IC0JCQkJCQkJCSBjcnRjLT5jb25maWcpOwo+IC0KPiAtCQljcnRjLT5iYXNlLnN0YXRl LT5lbmFibGUgPSBjcnRjLT5hY3RpdmU7Cj4gLQkJY3J0Yy0+YmFzZS5zdGF0ZS0+YWN0aXZlID0g Y3J0Yy0+YWN0aXZlOwo+IC0JCWNydGMtPmJhc2UuZW5hYmxlZCA9IGNydGMtPmFjdGl2ZTsKPiAr CQljcnRjLT5iYXNlLmVuYWJsZWQgPSBjcnRjLT5iYXNlLnN0YXRlLT5lbmFibGUgPQo+ICsJCWNy dGMtPmJhc2Uuc3RhdGUtPmFjdGl2ZSA9Cj4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmdldF9waXBl X2NvbmZpZyhjcnRjLCBjcnRjLT5jb25maWcpOwo+ICAKPiAgCQlwbGFuZV9zdGF0ZSA9IHRvX2lu dGVsX3BsYW5lX3N0YXRlKHByaW1hcnktPnN0YXRlKTsKPiAgCQlwbGFuZV9zdGF0ZS0+aHdfZW5h YmxlZCA9IHBsYW5lX3N0YXRlLT52aXNpYmxlID0KPiBAQCAtMTQ4NDcsNyArMTQ3ODcsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiAgCj4gIAkJRFJNX0RFQlVHX0tNUygiW0NSVEM6JWRdIGh3IHN0YXRlIHJlYWRv dXQ6ICVzXG4iLAo+ICAJCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsCj4gLQkJCSAgICAgIGNy dGMtPmFjdGl2ZSA/ICJlbmFibGVkIiA6ICJkaXNhYmxlZCIpOwo+ICsJCQkgICAgICBjcnRjLT5i YXNlLnN0YXRlLT5hY3RpdmUgPyAiZW5hYmxlZCIgOiAiZGlzYWJsZWQiKTsKPiAgCX0KPiAgCj4g IAlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbDsgaSsrKSB7Cj4gQEAg LTE0ODU4LDcgKzE0Nzk4LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3 X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJcGxsLT5hY3RpdmUgPSAwOwo+ICAJ CXBsbC0+Y29uZmlnLmNydGNfbWFzayA9IDA7Cj4gIAkJZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYs IGNydGMpIHsKPiAtCQkJaWYgKGNydGMtPmFjdGl2ZSAmJiBpbnRlbF9jcnRjX3RvX3NoYXJlZF9k cGxsKGNydGMpID09IHBsbCkgewo+ICsJCQlpZiAoY3J0Yy0+YmFzZS5zdGF0ZS0+YWN0aXZlICYm IGludGVsX2NydGNfdG9fc2hhcmVkX2RwbGwoY3J0YykgPT0gcGxsKSB7Cj4gIAkJCQlwbGwtPmFj dGl2ZSsrOwo+ICAJCQkJcGxsLT5jb25maWcuY3J0Y19tYXNrIHw9IDEgPDwgY3J0Yy0+cGlwZTsK PiAgCQkJfQo+IEBAIC0xNDkyNyw5ICsxNDg2Nyw5IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9zZXR1 cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJICogY2hlY2tpbmcgZXZlcnl3 aGVyZS4KPiAgCSAqLwo+ICAJZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpIHsKPiAtCQlp ZiAoY3J0Yy0+YWN0aXZlICYmIGk5MTUuZmFzdGJvb3QpIHsKPiArCQlpZiAoY3J0Yy0+YmFzZS5z dGF0ZS0+YWN0aXZlICYmIGk5MTUuZmFzdGJvb3QpIHsKPiAgCQkJaW50ZWxfbW9kZV9mcm9tX3Bp cGVfY29uZmlnKCZjcnRjLT5iYXNlLm1vZGUsCj4gLQkJCQkJCSAgICBjcnRjLT5jb25maWcpOwo+ ICsJCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5iYXNlLnN0YXRlKSk7Cj4gIAkJCURSTV9E RUJVR19LTVMoIltDUlRDOiVkXSBmb3VuZCBhY3RpdmUgbW9kZTogIiwKPiAgCQkJCSAgICAgIGNy dGMtPmJhc2UuYmFzZS5pZCk7Cj4gIAkJCWRybV9tb2RlX2RlYnVnX3ByaW50bW9kZWxpbmUoJmNy dGMtPmJhc2UubW9kZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCA2YzJiYTVk YmNkNzkuLjFhMGIwY2Q4NTdjMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAg LTQ5MiwxMiArNDkyLDYgQEAgc3RydWN0IGludGVsX2NydGMgewo+ICAJZW51bSBwaXBlIHBpcGU7 Cj4gIAllbnVtIHBsYW5lIHBsYW5lOwo+ICAJdTggbHV0X3JbMjU2XSwgbHV0X2dbMjU2XSwgbHV0 X2JbMjU2XTsKPiAtCS8qCj4gLQkgKiBXaGV0aGVyIHRoZSBjcnRjIGFuZCB0aGUgY29ubmVjdGVk IG91dHB1dCBwaXBlbGluZSBpcyBhY3RpdmUuIEltcGxpZXMKPiAtCSAqIHRoYXQgY3J0Yy0+ZW5h YmxlZCBpcyBzZXQsIGkuZS4gdGhlIGN1cnJlbnQgbW9kZSBjb25maWd1cmF0aW9uIGhhcwo+IC0J ICogc29tZSBvdXRwdXRzIGNvbm5lY3RlZCB0byB0aGlzIGNydGMuCj4gLQkgKi8KPiAtCWJvb2wg YWN0aXZlOwo+ICAJdW5zaWduZWQgbG9uZyBlbmFibGVkX3Bvd2VyX2RvbWFpbnM7Cj4gIAlib29s IGxvd2ZyZXFfYXZhaWw7Cj4gIAlzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheTsKPiAtLSAK PiAyLjEuMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9y YXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK