From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 1/2] drm/i915/opregion: Convert to using native drm_i915_private Date: Mon, 23 May 2016 17:35:15 +0300 Message-ID: <87y470deqk.fsf@intel.com> References: <1464012490-30961-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id F29026E5F3 for ; Mon, 23 May 2016 14:35:17 +0000 (UTC) In-Reply-To: <1464012490-30961-1-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMyBNYXkgMjAxNiwgQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+IHdyb3RlOgo+IFByZWZlciBwYXNzaW5nIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHRvIGlu dGVybmFsIGludGVyZmFjZXMgYXMgdGhpcwo+IHNhdmVzIHVzIGhhdmluZyB0byBkYW5jZSBiZXR3 ZWVuIGRybV9kZXZpY2UgYW5kIG91ciBuYXRpdmUgc3RydWN0LiBUaGUKPiBzYXZpbmdzIGhhcmUg YXJlIHNtYWxsIChvbmx5IDcwIGJ5dGVzIG9mIHVucmVxdWlyZWQgZGFuY2luZyksIGJ1dAo+IHBy b2dyZXNzaXZlIQo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+Cj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5j b20+CgpIbW0sIEkndmUgd3JpdHRlbiB0aGlzIHBhdGNoISBCdXQgYWxhcyBJJ3ZlIG5ldmVyIGFj dHVhbGx5IHNlbnQgaXQgdG8KdGhlIGxpc3QuIEkgZ3Vlc3MgaXQgY29uZmxpY3RlZCB3aXRoIHNv bWUgb2YgdGhlIGRpZGwgc3R1ZmYgSSB3YXMKcGxheWluZyB3aXRoIGF0IHRoZSB0aW1lLgoKUmV2 aWV3ZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cgo+IC0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jICAgICAgIHwgICA2ICstCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgfCAgMTggKysrLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgfCAgMjAgKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9iaW9zLmMgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX29wcmVnaW9uLmMgfCAxMDUgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LQo+ICA1IGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDc3IGRlbGV0aW9ucygtKQo+ Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCj4gaW5kZXggMzFlODU5YmM3NGIxLi4zNjNiZDU4ODRh NTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPiBAQCAtMTMwNyw3ICsxMzA3LDcgQEAg c3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAgCj4gIAlpbnRlbF91bmNvcmVfc2FuaXRpemUoZGV2X3ByaXYpOwo+ICAKPiAt CWludGVsX29wcmVnaW9uX3NldHVwKGRldik7Cj4gKwlpbnRlbF9vcHJlZ2lvbl9zZXR1cChkZXZf cHJpdik7Cj4gIAo+ICAJaTkxNV9nZW1fbG9hZF9pbml0X2ZlbmNlcyhkZXZfcHJpdik7Cj4gIAo+ IEBAIC0xMzc2LDcgKzEzNzYsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9yZWdpc3Rlcihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICAJaWYgKElOVEVMX0lORk8o ZGV2X3ByaXYpLT5udW1fcGlwZXMpIHsKPiAgCQkvKiBNdXN0IGJlIGRvbmUgYWZ0ZXIgcHJvYmlu ZyBvdXRwdXRzICovCj4gLQkJaW50ZWxfb3ByZWdpb25faW5pdChkZXYpOwo+ICsJCWludGVsX29w cmVnaW9uX2luaXQoZGV2X3ByaXYpOwo+ICAJCWFjcGlfdmlkZW9fcmVnaXN0ZXIoKTsKPiAgCX0K PiAgCj4gQEAgLTEzOTUsNyArMTM5NSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX3VucmVn aXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJaTkxNV9hdWRpb19j b21wb25lbnRfY2xlYW51cChkZXZfcHJpdik7Cj4gIAlpbnRlbF9ncHVfaXBzX3RlYXJkb3duKCk7 Cj4gIAlhY3BpX3ZpZGVvX3VucmVnaXN0ZXIoKTsKPiAtCWludGVsX29wcmVnaW9uX2ZpbmkoZGV2 X3ByaXYtPmRldik7Cj4gKwlpbnRlbF9vcHJlZ2lvbl9maW5pKGRldl9wcml2KTsKPiAgCWk5MTVf dGVhcmRvd25fc3lzZnMoZGV2X3ByaXYtPmRldik7Cj4gIAlpOTE1X2dlbV9zaHJpbmtlcl9jbGVh bnVwKGRldl9wcml2KTsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IGluZGV4IGRiYTAz YzAyNjE1MS4uNzYyN2JiZWM4ZTM3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAg LTYyOCwxMCArNjI4LDEwIEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fc3VzcGVuZChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+ICAJaTkxNV9zYXZlX3N0YXRlKGRldik7Cj4gIAo+ICAJb3ByZWdpb25f dGFyZ2V0X3N0YXRlID0gc3VzcGVuZF90b19pZGxlKGRldl9wcml2KSA/IFBDSV9EMSA6IFBDSV9E M2NvbGQ7Cj4gLQlpbnRlbF9vcHJlZ2lvbl9ub3RpZnlfYWRhcHRlcihkZXYsIG9wcmVnaW9uX3Rh cmdldF9zdGF0ZSk7Cj4gKwlpbnRlbF9vcHJlZ2lvbl9ub3RpZnlfYWRhcHRlcihkZXZfcHJpdiwg b3ByZWdpb25fdGFyZ2V0X3N0YXRlKTsKPiAgCj4gIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3Jl c2V0KGRldl9wcml2LCBmYWxzZSk7Cj4gLQlpbnRlbF9vcHJlZ2lvbl9maW5pKGRldik7Cj4gKwlp bnRlbF9vcHJlZ2lvbl9maW5pKGRldl9wcml2KTsKPiAgCj4gIAlpbnRlbF9mYmRldl9zZXRfc3Vz cGVuZChkZXYsIEZCSU5GT19TVEFURV9TVVNQRU5ERUQsIHRydWUpOwo+ICAKPiBAQCAtNzQ5LDcg Kzc0OSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAgCj4gIAlpOTE1X3Jl c3RvcmVfc3RhdGUoZGV2KTsKPiAtCWludGVsX29wcmVnaW9uX3NldHVwKGRldik7Cj4gKwlpbnRl bF9vcHJlZ2lvbl9zZXR1cChkZXZfcHJpdik7Cj4gIAo+ICAJaW50ZWxfaW5pdF9wY2hfcmVmY2xr KGRldik7Cj4gIAlkcm1fbW9kZV9jb25maWdfcmVzZXQoZGV2KTsKPiBAQCAtNzk0LDcgKzc5NCw3 IEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g IAkvKiBDb25maWcgbWF5IGhhdmUgY2hhbmdlZCBiZXR3ZWVuIHN1c3BlbmQgYW5kIHJlc3VtZSAq Lwo+ICAJZHJtX2hlbHBlcl9ocGRfaXJxX2V2ZW50KGRldik7Cj4gIAo+IC0JaW50ZWxfb3ByZWdp b25faW5pdChkZXYpOwo+ICsJaW50ZWxfb3ByZWdpb25faW5pdChkZXZfcHJpdik7Cj4gIAo+ICAJ aW50ZWxfZmJkZXZfc2V0X3N1c3BlbmQoZGV2LCBGQklORk9fU1RBVEVfUlVOTklORywgZmFsc2Up Owo+ICAKPiBAQCAtODAyLDcgKzgwMiw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fcmVzdW1lKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlID0gTU9E RVNFVF9ET05FOwo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlX2xv Y2spOwo+ICAKPiAtCWludGVsX29wcmVnaW9uX25vdGlmeV9hZGFwdGVyKGRldiwgUENJX0QwKTsK PiArCWludGVsX29wcmVnaW9uX25vdGlmeV9hZGFwdGVyKGRldl9wcml2LCBQQ0lfRDApOwo+ICAK PiAgCWRybV9rbXNfaGVscGVyX3BvbGxfZW5hYmxlKGRldik7Cj4gIAo+IEBAIC0xNTk2LDE0ICsx NTk2LDE0IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2Ug KmRldmljZSkKPiAgCSAqIEZJWE1FOiBXZSByZWFsbHkgc2hvdWxkIGZpbmQgYSBkb2N1bWVudCB0 aGF0IHJlZmVyZW5jZXMgdGhlIGFyZ3VtZW50cwo+ICAJICogdXNlZCBiZWxvdyEKPiAgCSAqLwo+ IC0JaWYgKElTX0JST0FEV0VMTChkZXYpKSB7Cj4gKwlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2 KSkgewo+ICAJCS8qCj4gIAkJICogT24gQnJvYWR3ZWxsLCBpZiB3ZSB1c2UgUENJX0QxIHRoZSBQ Q0ggRERJIHBvcnRzIHdpbGwgc3RvcAo+ICAJCSAqIGJlaW5nIGRldGVjdGVkLCBhbmQgdGhlIGNh bGwgd2UgZG8gYXQgaW50ZWxfcnVudGltZV9yZXN1bWUoKQo+ICAJCSAqIHdvbid0IGJlIGFibGUg dG8gcmVzdG9yZSB0aGVtLiBTaW5jZSBQQ0lfRDNob3QgbWF0Y2hlcyB0aGUKPiAgCQkgKiBhY3R1 YWwgc3BlY2lmaWNhdGlvbiBhbmQgYXBwZWFycyB0byBiZSB3b3JraW5nLCB1c2UgaXQuCj4gIAkJ ICovCj4gLQkJaW50ZWxfb3ByZWdpb25fbm90aWZ5X2FkYXB0ZXIoZGV2LCBQQ0lfRDNob3QpOwo+ ICsJCWludGVsX29wcmVnaW9uX25vdGlmeV9hZGFwdGVyKGRldl9wcml2LCBQQ0lfRDNob3QpOwo+ ICAJfSBlbHNlIHsKPiAgCQkvKgo+ICAJCSAqIGN1cnJlbnQgdmVyc2lvbnMgb2YgZmlybXdhcmUg d2hpY2ggZGVwZW5kIG9uIHRoaXMgb3ByZWdpb24KPiBAQCAtMTYxMiw3ICsxNjEyLDcgQEAgc3Rh dGljIGludCBpbnRlbF9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2aWNlKQo+ICAJ CSAqIHRvIGRpc3Rpbmd1aXNoIGl0IGZyb20gbm90aWZpY2F0aW9ucyB0aGF0IG1pZ2h0IGJlIHNl bnQgdmlhCj4gIAkJICogdGhlIHN1c3BlbmQgcGF0aC4KPiAgCQkgKi8KPiAtCQlpbnRlbF9vcHJl Z2lvbl9ub3RpZnlfYWRhcHRlcihkZXYsIFBDSV9EMSk7Cj4gKwkJaW50ZWxfb3ByZWdpb25fbm90 aWZ5X2FkYXB0ZXIoZGV2X3ByaXYsIFBDSV9EMSk7Cj4gIAl9Cj4gIAo+ICAJYXNzZXJ0X2ZvcmNl d2FrZXNfaW5hY3RpdmUoZGV2X3ByaXYpOwo+IEBAIC0xNjM2LDcgKzE2MzYsNyBAQCBzdGF0aWMg aW50IGludGVsX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldmljZSkKPiAgCVdBUk5f T05fT05DRShhdG9taWNfcmVhZCgmZGV2X3ByaXYtPnBtLndha2VyZWZfY291bnQpKTsKPiAgCWRp c2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7Cj4gIAo+IC0JaW50ZWxfb3ByZWdp b25fbm90aWZ5X2FkYXB0ZXIoZGV2LCBQQ0lfRDApOwo+ICsJaW50ZWxfb3ByZWdpb25fbm90aWZ5 X2FkYXB0ZXIoZGV2X3ByaXYsIFBDSV9EMCk7Cj4gIAlkZXZfcHJpdi0+cG0uc3VzcGVuZGVkID0g ZmFsc2U7Cj4gIAlpZiAoaW50ZWxfdW5jb3JlX3VuY2xhaW1lZF9tbWlvKGRldl9wcml2KSkKPiAg CQlEUk1fREVCVUdfRFJJVkVSKCJVbmNsYWltZWQgYWNjZXNzIGR1cmluZyBzdXNwZW5kLCBiaW9z P1xuIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNWFkYTVjOWQyNzQ3Li5jYWY3 ZTQ1YWU2NjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMzYwOCwxOSArMzYw OCwxOSBAQCBib29sIGludGVsX2Jpb3NfaXNfcG9ydF9ocGRfaW52ZXJ0ZWQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAKPiAgLyogaW50ZWxfb3ByZWdpb24uYyAqLwo+ICAj aWZkZWYgQ09ORklHX0FDUEkKPiAtZXh0ZXJuIGludCBpbnRlbF9vcHJlZ2lvbl9zZXR1cChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAtZXh0ZXJuIHZvaWQgaW50ZWxfb3ByZWdpb25faW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAtZXh0ZXJuIHZvaWQgaW50ZWxfb3ByZWdpb25fZmlu aShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiArZXh0ZXJuIGludCBpbnRlbF9vcHJlZ2lvbl9z ZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICtleHRlcm4gdm9pZCBp bnRlbF9vcHJlZ2lvbl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4g K2V4dGVybiB2b2lkIGludGVsX29wcmVnaW9uX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KTsKPiAgZXh0ZXJuIHZvaWQgaW50ZWxfb3ByZWdpb25fYXNsZV9pbnRyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIGV4dGVybiBpbnQgaW50ZWxfb3ByZWdp b25fbm90aWZ5X2VuY29kZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4g IAkJCQkJIGJvb2wgZW5hYmxlKTsKPiAtZXh0ZXJuIGludCBpbnRlbF9vcHJlZ2lvbl9ub3RpZnlf YWRhcHRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICtleHRlcm4gaW50IGludGVsX29wcmVn aW9uX25vdGlmeV9hZGFwdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAg CQkJCQkgcGNpX3Bvd2VyX3Qgc3RhdGUpOwo+IC1leHRlcm4gaW50IGludGVsX29wcmVnaW9uX2dl dF9wYW5lbF90eXBlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICtleHRlcm4gaW50IGludGVs X29wcmVnaW9uX2dldF9wYW5lbF90eXBlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7Cj4gICNlbHNlCj4gLXN0YXRpYyBpbmxpbmUgaW50IGludGVsX29wcmVnaW9uX3NldHVwKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpIHsgcmV0dXJuIDA7IH0KPiAtc3RhdGljIGlubGluZSB2b2lk IGludGVsX29wcmVnaW9uX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikgeyByZXR1cm47IH0K PiAtc3RhdGljIGlubGluZSB2b2lkIGludGVsX29wcmVnaW9uX2Zpbmkoc3RydWN0IGRybV9kZXZp Y2UgKmRldikgeyByZXR1cm47IH0KPiArc3RhdGljIGlubGluZSBpbnQgaW50ZWxfb3ByZWdpb25f c2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldikgeyByZXR1cm4gMDsgfQo+ICtzdGF0 aWMgaW5saW5lIHZvaWQgaW50ZWxfb3ByZWdpb25faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2KSB7IH0KPiArc3RhdGljIGlubGluZSB2b2lkIGludGVsX29wcmVnaW9uX2Zpbmkoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldikgeyB9Cj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRl bF9vcHJlZ2lvbl9hc2xlX2ludHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICB7Cj4gIH0KPiBAQCAtMzYzMCwxMSArMzYzMCwxMSBAQCBpbnRlbF9vcHJlZ2lvbl9ub3RpZnlf ZW5jb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwgYm9vbCBlbmFibGUp Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICBzdGF0aWMgaW5saW5lIGludAo+IC1pbnRlbF9vcHJlZ2lv bl9ub3RpZnlfYWRhcHRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBwY2lfcG93ZXJfdCBzdGF0 ZSkKPiAraW50ZWxfb3ByZWdpb25fbm90aWZ5X2FkYXB0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldiwgcGNpX3Bvd2VyX3Qgc3RhdGUpCj4gIHsKPiAgCXJldHVybiAwOwo+ICB9Cj4gLXN0 YXRpYyBpbmxpbmUgaW50IGludGVsX29wcmVnaW9uX2dldF9wYW5lbF90eXBlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gK3N0YXRpYyBpbmxpbmUgaW50IGludGVsX29wcmVnaW9uX2dldF9wYW5l bF90eXBlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXYpCj4gIHsKPiAgCXJldHVybiAtRU5P REVWOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3Mu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYwo+IGluZGV4IDhiNjhjNDg4MmZi YS4uNjI0ZTc1NWU0NTFmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Jpb3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYwo+IEBAIC0y MTMsNyArMjEzLDcgQEAgcGFyc2VfbGZwX3BhbmVsX2RhdGEoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAKPiAgCWRldl9wcml2LT52YnQubHZkc19kaXRoZXIgPSBsdmRzX29w dGlvbnMtPnBpeGVsX2RpdGhlcjsKPiAgCj4gLQlyZXQgPSBpbnRlbF9vcHJlZ2lvbl9nZXRfcGFu ZWxfdHlwZShkZXZfcHJpdi0+ZGV2KTsKPiArCXJldCA9IGludGVsX29wcmVnaW9uX2dldF9wYW5l bF90eXBlKGRldl9wcml2KTsKPiAgCWlmIChyZXQgPj0gMCkgewo+ICAJCVdBUk5fT04ocmV0ID4g MHhmKTsKPiAgCQlwYW5lbF90eXBlID0gcmV0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3By ZWdpb24uYwo+IGluZGV4IDgzNDdmZDhhZjhlNC4uZjljZGVjODY2ZTQ5IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9uLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jCj4gQEAgLTI0MCwxMCArMjQwLDExIEBAIHN0cnVj dCBvcHJlZ2lvbl9hc2xlX2V4dCB7Cj4gIAo+ICAjZGVmaW5lIE1BWF9EU0xQCTE1MDAKPiAgCj4g LXN0YXRpYyBpbnQgc3dzY2koc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGZ1bmN0aW9uLCB1 MzIgcGFybSwgdTMyICpwYXJtX291dCkKPiArc3RhdGljIGludCBzd3NjaShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJIHUzMiBmdW5jdGlvbiwgdTMyIHBhcm0sIHUzMiAq cGFybV9vdXQpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1Y3Qgb3ByZWdpb25fc3dzY2kgKnN3c2NpID0gZGV2X3By aXYtPm9wcmVnaW9uLnN3c2NpOwo+ICsJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ ZGV2LT5wZGV2Owo+ICAJdTMyIG1haW5fZnVuY3Rpb24sIHN1Yl9mdW5jdGlvbiwgc2NpYzsKPiAg CXUxNiBzd3NjaV92YWw7Cj4gIAl1MzIgZHNscDsKPiBAQCAtMjkzLDE2ICsyOTQsMTYgQEAgc3Rh dGljIGludCBzd3NjaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgZnVuY3Rpb24sIHUzMiBw YXJtLCB1MzIgKnBhcm1fb3V0KQo+ICAJc3dzY2ktPnNjaWMgPSBzY2ljOwo+ICAKPiAgCS8qIEVu c3VyZSBTQ0kgZXZlbnQgaXMgc2VsZWN0ZWQgYW5kIGV2ZW50IHRyaWdnZXIgaXMgY2xlYXJlZC4g Ki8KPiAtCXBjaV9yZWFkX2NvbmZpZ193b3JkKGRldi0+cGRldiwgU1dTQ0ksICZzd3NjaV92YWwp Owo+ICsJcGNpX3JlYWRfY29uZmlnX3dvcmQocGRldiwgU1dTQ0ksICZzd3NjaV92YWwpOwo+ICAJ aWYgKCEoc3dzY2lfdmFsICYgU1dTQ0lfU0NJU0VMKSB8fCAoc3dzY2lfdmFsICYgU1dTQ0lfR1NT Q0lFKSkgewo+ICAJCXN3c2NpX3ZhbCB8PSBTV1NDSV9TQ0lTRUw7Cj4gIAkJc3dzY2lfdmFsICY9 IH5TV1NDSV9HU1NDSUU7Cj4gLQkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKGRldi0+cGRldiwgU1dT Q0ksIHN3c2NpX3ZhbCk7Cj4gKwkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKHBkZXYsIFNXU0NJLCBz d3NjaV92YWwpOwo+ICAJfQo+ICAKPiAgCS8qIFVzZSBldmVudCB0cmlnZ2VyIHRvIHRlbGwgYmlv cyB0byBjaGVjayB0aGUgbWFpbC4gKi8KPiAgCXN3c2NpX3ZhbCB8PSBTV1NDSV9HU1NDSUU7Cj4g LQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoZGV2LT5wZGV2LCBTV1NDSSwgc3dzY2lfdmFsKTsKPiAr CXBjaV93cml0ZV9jb25maWdfd29yZChwZGV2LCBTV1NDSSwgc3dzY2lfdmFsKTsKPiAgCj4gIAkv KiBQb2xsIGZvciB0aGUgcmVzdWx0LiAqLwo+ICAjZGVmaW5lIEMgKCgoc2NpYyA9IHN3c2NpLT5z Y2ljKSAmIFNXU0NJX1NDSUNfSU5ESUNBVE9SKSA9PSAwKQo+IEBAIC0zMzYsMTMgKzMzNywxMyBA QCBzdGF0aWMgaW50IHN3c2NpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBmdW5jdGlvbiwg dTMyIHBhcm0sIHUzMiAqcGFybV9vdXQpCj4gIGludCBpbnRlbF9vcHJlZ2lvbl9ub3RpZnlfZW5j b2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiAgCQkJCSAgYm9vbCBl bmFibGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9lbmNvZGVyLT5i YXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo aW50ZWxfZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJdTMyIHBhcm0gPSAwOwo+ICAJdTMyIHR5cGUg PSAwOwo+ICAJdTMyIHBvcnQ7Cj4gIAo+ICAJLyogZG9uJ3QgY2FyZSBhYm91dCBvbGQgc3R1ZmYg Zm9yIG5vdyAqLwo+IC0JaWYgKCFIQVNfRERJKGRldikpCj4gKwlpZiAoIUhBU19EREkoZGV2X3By aXYpKQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlID09IElO VEVMX09VVFBVVF9EU0kpCj4gQEAgLTM4Miw3ICszODMsNyBAQCBpbnQgaW50ZWxfb3ByZWdpb25f bm90aWZ5X2VuY29kZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gIAo+ ICAJcGFybSB8PSB0eXBlIDw8ICgxNiArIHBvcnQgKiAzKTsKPiAgCj4gLQlyZXR1cm4gc3dzY2ko ZGV2LCBTV1NDSV9TQkNCX0RJU1BMQVlfUE9XRVJfU1RBVEUsIHBhcm0sIE5VTEwpOwo+ICsJcmV0 dXJuIHN3c2NpKGRldl9wcml2LCBTV1NDSV9TQkNCX0RJU1BMQVlfUE9XRVJfU1RBVEUsIHBhcm0s IE5VTEwpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHsKPiBAQCAtMzk2LDI3ICsz OTcsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7Cj4gIAl7IFBDSV9EM2NvbGQsCTB4MDQgfSwK PiAgfTsKPiAgCj4gLWludCBpbnRlbF9vcHJlZ2lvbl9ub3RpZnlfYWRhcHRlcihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBwY2lfcG93ZXJfdCBzdGF0ZSkKPiAraW50IGludGVsX29wcmVnaW9uX25v dGlmeV9hZGFwdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCSAg cGNpX3Bvd2VyX3Qgc3RhdGUpCj4gIHsKPiAgCWludCBpOwo+ICAKPiAtCWlmICghSEFTX0RESShk ZXYpKQo+ICsJaWYgKCFIQVNfRERJKGRldl9wcml2KSkKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAlm b3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwb3dlcl9zdGF0ZV9tYXApOyBpKyspIHsKPiAgCQlp ZiAoc3RhdGUgPT0gcG93ZXJfc3RhdGVfbWFwW2ldLnBjaV9wb3dlcl9zdGF0ZSkKPiAtCQkJcmV0 dXJuIHN3c2NpKGRldiwgU1dTQ0lfU0JDQl9BREFQVEVSX1BPV0VSX1NUQVRFLAo+ICsJCQlyZXR1 cm4gc3dzY2koZGV2X3ByaXYsIFNXU0NJX1NCQ0JfQURBUFRFUl9QT1dFUl9TVEFURSwKPiAgCQkJ CSAgICAgcG93ZXJfc3RhdGVfbWFwW2ldLnBhcm0sIE5VTEwpOwo+ICAJfQo+ICAKPiAgCXJldHVy biAtRUlOVkFMOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdTMyIGFzbGVfc2V0X2JhY2tsaWdodChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgYmNscCkKPiArc3RhdGljIHUzMiBhc2xlX3NldF9iYWNr bGlnaHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYmNscCkKPiAgewo+ IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK PiAgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiAgCXN0cnVjdCBvcHJlZ2lv bl9hc2xlICphc2xlID0gZGV2X3ByaXYtPm9wcmVnaW9uLmFzbGU7Cj4gKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiAgCj4gIAlEUk1fREVCVUdfRFJJVkVSKCJiY2xw ID0gMHglMDh4XG4iLCBiY2xwKTsKPiAgCj4gQEAgLTQ0OSw3ICs0NTEsNyBAQCBzdGF0aWMgdTMy IGFzbGVfc2V0X2JhY2tsaWdodChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgYmNscCkKPiAg CXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdTMyIGFzbGVfc2V0X2Fsc19pbGx1bShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgYWxzaSkKPiArc3RhdGljIHUzMiBhc2xlX3NldF9hbHNf aWxsdW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYWxzaSkKPiAgewo+ ICAJLyogYWxzaSBpcyB0aGUgY3VycmVudCBBTFMgcmVhZGluZyBpbiBsdXguIDAgaW5kaWNhdGVz IGJlbG93IHNlbnNvcgo+ICAJICAgcmFuZ2UsIDB4ZmZmZiBpbmRpY2F0ZXMgYWJvdmUgc2Vuc29y IHJhbmdlLiAxLTB4ZmZmZSBhcmUgdmFsaWQgKi8KPiBAQCAtNDU3LDEzICs0NTksMTMgQEAgc3Rh dGljIHUzMiBhc2xlX3NldF9hbHNfaWxsdW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGFs c2kpCj4gIAlyZXR1cm4gQVNMQ19BTFNfSUxMVU1fRkFJTEVEOwo+ICB9Cj4gIAo+IC1zdGF0aWMg dTMyIGFzbGVfc2V0X3B3bV9mcmVxKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBwZm1iKQo+ ICtzdGF0aWMgdTMyIGFzbGVfc2V0X3B3bV9mcmVxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgdTMyIHBmbWIpCj4gIHsKPiAgCURSTV9ERUJVR19EUklWRVIoIlBXTSBmcmVxIGlz IG5vdCBzdXBwb3J0ZWRcbiIpOwo+ICAJcmV0dXJuIEFTTENfUFdNX0ZSRVFfRkFJTEVEOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgdTMyIGFzbGVfc2V0X3BmaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dTMyIHBmaXQpCj4gK3N0YXRpYyB1MzIgYXNsZV9zZXRfcGZpdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIHUzMiBwZml0KQo+ICB7Cj4gIAkvKiBQYW5lbCBmaXR0aW5nIGlzIGN1 cnJlbnRseSBjb250cm9sbGVkIGJ5IHRoZSBYIGNvZGUsIHNvIHRoaXMgaXMgYQo+ICAJICAgbm9v cCB1bnRpbCBtb2Rlc2V0dGluZyBzdXBwb3J0IHdvcmtzIGZ1bGx5ICovCj4gQEAgLTQ3MSwxMyAr NDczLDEzIEBAIHN0YXRpYyB1MzIgYXNsZV9zZXRfcGZpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB1MzIgcGZpdCkKPiAgCXJldHVybiBBU0xDX1BGSVRfRkFJTEVEOwo+ICB9Cj4gIAo+IC1zdGF0 aWMgdTMyIGFzbGVfc2V0X3N1cHBvcnRlZF9yb3RhdGlvbl9hbmdsZXMoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdTMyIHNyb3QpCj4gK3N0YXRpYyB1MzIgYXNsZV9zZXRfc3VwcG9ydGVkX3JvdGF0 aW9uX2FuZ2xlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBzcm90KQo+ ICB7Cj4gIAlEUk1fREVCVUdfRFJJVkVSKCJTUk9UIGlzIG5vdCBzdXBwb3J0ZWRcbiIpOwo+ICAJ cmV0dXJuIEFTTENfUk9UQVRJT05fQU5HTEVTX0ZBSUxFRDsKPiAgfQo+ICAKPiAtc3RhdGljIHUz MiBhc2xlX3NldF9idXR0b25fYXJyYXkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGl1ZXIp Cj4gK3N0YXRpYyB1MzIgYXNsZV9zZXRfYnV0dG9uX2FycmF5KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgdTMyIGl1ZXIpCj4gIHsKPiAgCWlmICghaXVlcikKPiAgCQlEUk1fREVC VUdfRFJJVkVSKCJCdXR0b24gYXJyYXkgZXZlbnQgaXMgbm90IHN1cHBvcnRlZCAobm90aGluZylc biIpOwo+IEBAIC00OTUsNyArNDk3LDcgQEAgc3RhdGljIHUzMiBhc2xlX3NldF9idXR0b25fYXJy YXkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGl1ZXIpCj4gIAlyZXR1cm4gQVNMQ19CVVRU T05fQVJSQVlfRkFJTEVEOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdTMyIGFzbGVfc2V0X2NvbnZlcnRp YmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBpdWVyKQo+ICtzdGF0aWMgdTMyIGFzbGVf c2V0X2NvbnZlcnRpYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGl1 ZXIpCj4gIHsKPiAgCWlmIChpdWVyICYgQVNMRV9JVUVSX0NPTlZFUlRJQkxFKQo+ICAJCURSTV9E RUJVR19EUklWRVIoIkNvbnZlcnRpYmxlIGlzIG5vdCBzdXBwb3J0ZWQgKGNsYW1zaGVsbClcbiIp Owo+IEBAIC01MDUsNyArNTA3LDcgQEAgc3RhdGljIHUzMiBhc2xlX3NldF9jb252ZXJ0aWJsZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgaXVlcikKPiAgCXJldHVybiBBU0xDX0NPTlZFUlRJ QkxFX0ZBSUxFRDsKPiAgfQo+ICAKPiAtc3RhdGljIHUzMiBhc2xlX3NldF9kb2NraW5nKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHUzMiBpdWVyKQo+ICtzdGF0aWMgdTMyIGFzbGVfc2V0X2RvY2tp bmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgaXVlcikKPiAgewo+ICAJ aWYgKGl1ZXIgJiBBU0xFX0lVRVJfRE9DS0lORykKPiAgCQlEUk1fREVCVUdfRFJJVkVSKCJEb2Nr aW5nIGlzIG5vdCBzdXBwb3J0ZWQgKGRvY2tlZClcbiIpOwo+IEBAIC01MTUsNyArNTE3LDcgQEAg c3RhdGljIHUzMiBhc2xlX3NldF9kb2NraW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBp dWVyKQo+ICAJcmV0dXJuIEFTTENfRE9DS0lOR19GQUlMRUQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyB1 MzIgYXNsZV9pc2N0X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3N0YXRpYyB1MzIg YXNsZV9pc2N0X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgewo+ ICAJRFJNX0RFQlVHX0RSSVZFUigiSVNDVCBpcyBub3Qgc3VwcG9ydGVkXG4iKTsKPiAgCXJldHVy biBBU0xDX0lTQ1RfU1RBVEVfRkFJTEVEOwo+IEBAIC01MjcsNyArNTI5LDYgQEAgc3RhdGljIHZv aWQgYXNsZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgCQljb250YWluZXJfb2Yo d29yaywgc3RydWN0IGludGVsX29wcmVnaW9uLCBhc2xlX3dvcmspOwo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiAgCQljb250YWluZXJfb2Yob3ByZWdpb24sIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlLCBvcHJlZ2lvbik7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZGV2X3ByaXYtPmRldjsKPiAgCXN0cnVjdCBvcHJlZ2lvbl9hc2xlICphc2xlID0gZGV2X3By aXYtPm9wcmVnaW9uLmFzbGU7Cj4gIAl1MzIgYXNsY19zdGF0ID0gMDsKPiAgCXUzMiBhc2xjX3Jl cTsKPiBAQCAtNTQ0LDMyICs1NDUsMzIgQEAgc3RhdGljIHZvaWQgYXNsZV93b3JrKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKPiAgCX0KPiAgCj4gIAlpZiAoYXNsY19yZXEgJiBBU0xDX1NFVF9B TFNfSUxMVU0pCj4gLQkJYXNsY19zdGF0IHw9IGFzbGVfc2V0X2Fsc19pbGx1bShkZXYsIGFzbGUt PmFsc2kpOwo+ICsJCWFzbGNfc3RhdCB8PSBhc2xlX3NldF9hbHNfaWxsdW0oZGV2X3ByaXYsIGFz bGUtPmFsc2kpOwo+ICAKPiAgCWlmIChhc2xjX3JlcSAmIEFTTENfU0VUX0JBQ0tMSUdIVCkKPiAt CQlhc2xjX3N0YXQgfD0gYXNsZV9zZXRfYmFja2xpZ2h0KGRldiwgYXNsZS0+YmNscCk7Cj4gKwkJ YXNsY19zdGF0IHw9IGFzbGVfc2V0X2JhY2tsaWdodChkZXZfcHJpdiwgYXNsZS0+YmNscCk7Cj4g IAo+ICAJaWYgKGFzbGNfcmVxICYgQVNMQ19TRVRfUEZJVCkKPiAtCQlhc2xjX3N0YXQgfD0gYXNs ZV9zZXRfcGZpdChkZXYsIGFzbGUtPnBmaXQpOwo+ICsJCWFzbGNfc3RhdCB8PSBhc2xlX3NldF9w Zml0KGRldl9wcml2LCBhc2xlLT5wZml0KTsKPiAgCj4gIAlpZiAoYXNsY19yZXEgJiBBU0xDX1NF VF9QV01fRlJFUSkKPiAtCQlhc2xjX3N0YXQgfD0gYXNsZV9zZXRfcHdtX2ZyZXEoZGV2LCBhc2xl LT5wZm1iKTsKPiArCQlhc2xjX3N0YXQgfD0gYXNsZV9zZXRfcHdtX2ZyZXEoZGV2X3ByaXYsIGFz bGUtPnBmbWIpOwo+ICAKPiAgCWlmIChhc2xjX3JlcSAmIEFTTENfU1VQUE9SVEVEX1JPVEFUSU9O X0FOR0xFUykKPiAtCQlhc2xjX3N0YXQgfD0gYXNsZV9zZXRfc3VwcG9ydGVkX3JvdGF0aW9uX2Fu Z2xlcyhkZXYsCj4gKwkJYXNsY19zdGF0IHw9IGFzbGVfc2V0X3N1cHBvcnRlZF9yb3RhdGlvbl9h bmdsZXMoZGV2X3ByaXYsCj4gIAkJCQkJCQlhc2xlLT5zcm90KTsKPiAgCj4gIAlpZiAoYXNsY19y ZXEgJiBBU0xDX0JVVFRPTl9BUlJBWSkKPiAtCQlhc2xjX3N0YXQgfD0gYXNsZV9zZXRfYnV0dG9u X2FycmF5KGRldiwgYXNsZS0+aXVlcik7Cj4gKwkJYXNsY19zdGF0IHw9IGFzbGVfc2V0X2J1dHRv bl9hcnJheShkZXZfcHJpdiwgYXNsZS0+aXVlcik7Cj4gIAo+ICAJaWYgKGFzbGNfcmVxICYgQVNM Q19DT05WRVJUSUJMRV9JTkRJQ0FUT1IpCj4gLQkJYXNsY19zdGF0IHw9IGFzbGVfc2V0X2NvbnZl cnRpYmxlKGRldiwgYXNsZS0+aXVlcik7Cj4gKwkJYXNsY19zdGF0IHw9IGFzbGVfc2V0X2NvbnZl cnRpYmxlKGRldl9wcml2LCBhc2xlLT5pdWVyKTsKPiAgCj4gIAlpZiAoYXNsY19yZXEgJiBBU0xD X0RPQ0tJTkdfSU5ESUNBVE9SKQo+IC0JCWFzbGNfc3RhdCB8PSBhc2xlX3NldF9kb2NraW5nKGRl diwgYXNsZS0+aXVlcik7Cj4gKwkJYXNsY19zdGF0IHw9IGFzbGVfc2V0X2RvY2tpbmcoZGV2X3By aXYsIGFzbGUtPml1ZXIpOwo+ICAKPiAgCWlmIChhc2xjX3JlcSAmIEFTTENfSVNDVF9TVEFURV9D SEFOR0UpCj4gLQkJYXNsY19zdGF0IHw9IGFzbGVfaXNjdF9zdGF0ZShkZXYpOwo+ICsJCWFzbGNf c3RhdCB8PSBhc2xlX2lzY3Rfc3RhdGUoZGV2X3ByaXYpOwo+ICAKPiAgCWFzbGUtPmFzbGMgPSBh c2xjX3N0YXQ7Cj4gIH0KPiBAQCAtNjU2LDEwICs2NTcsMTAgQEAgc3RhdGljIHZvaWQgc2V0X2Rp ZChzdHJ1Y3QgaW50ZWxfb3ByZWdpb24gKm9wcmVnaW9uLCBpbnQgaSwgdTMyIHZhbCkKPiAgCX0K PiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfZGlkbF9vdXRwdXRzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gK3N0YXRpYyB2b2lkIGludGVsX2RpZGxfb3V0cHV0cyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfb3ByZWdpb24gKm9w cmVnaW9uID0gJmRldl9wcml2LT5vcHJlZ2lvbjsKPiArCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0g ZGV2X3ByaXYtPmRldi0+cGRldjsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7 Cj4gIAlhY3BpX2hhbmRsZSBoYW5kbGU7Cj4gIAlzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFjcGlfZGV2 LCAqYWNwaV9jZGV2LCAqYWNwaV92aWRlb19idXMgPSBOVUxMOwo+IEBAIC02NjgsNyArNjY5LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfZGlkbF9vdXRwdXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gIAl1MzIgdGVtcCwgbWF4X291dHB1dHM7Cj4gIAlpbnQgaSA9IDA7Cj4gIAo+IC0JaGFuZGxl ID0gQUNQSV9IQU5ETEUoJmRldi0+cGRldi0+ZGV2KTsKPiArCWhhbmRsZSA9IEFDUElfSEFORExF KCZwZGV2LT5kZXYpOwo+ICAJaWYgKCFoYW5kbGUgfHwgYWNwaV9idXNfZ2V0X2RldmljZShoYW5k bGUsICZhY3BpX2RldikpCj4gIAkJcmV0dXJuOwo+ICAKPiBAQCAtNzIzLDcgKzcyNCw3IEBAIGVu ZDoKPiAgCj4gIGJsaW5kX3NldDoKPiAgCWkgPSAwOwo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShj b25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7Cj4gKwls aXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRldl9wcml2LT5kZXYtPm1vZGVfY29uZmln LmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7Cj4gIAkJaW50IG91dHB1dF90eXBlID0gQUNQSV9PVEhF Ul9PVVRQVVQ7Cj4gIAkJaWYgKGkgPj0gbWF4X291dHB1dHMpIHsKPiAgCQkJRFJNX0RFQlVHX0tN UygiTW9yZSB0aGFuICV1IG91dHB1dHMgaW4gY29ubmVjdG9yIGxpc3RcbiIsCj4gQEAgLTc1OSw5 ICs3NjAsOCBAQCBibGluZF9zZXQ6Cj4gIAlnb3RvIGVuZDsKPiAgfQo+ICAKPiAtc3RhdGljIHZv aWQgaW50ZWxfc2V0dXBfY2FkbHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArc3RhdGljIHZv aWQgaW50ZWxfc2V0dXBfY2FkbHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICAJc3RydWN0IGludGVsX29wcmVnaW9uICpvcHJlZ2lvbiA9ICZkZXZfcHJpdi0+b3By ZWdpb247Cj4gIAlpbnQgaSA9IDA7Cj4gIAl1MzIgZGlzcF9pZDsKPiBAQCAtNzc4LDE3ICs3Nzgs MTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0dXBfY2FkbHMoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiAgCX0gd2hpbGUgKCsraSA8IDggJiYgZGlzcF9pZCAhPSAwKTsKPiAgfQo+ICAKPiAtdm9p ZCBpbnRlbF9vcHJlZ2lvbl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3ZvaWQgaW50 ZWxfb3ByZWdpb25faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsK PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gIAlzdHJ1Y3QgaW50ZWxfb3ByZWdpb24gKm9wcmVnaW9uID0gJmRldl9wcml2LT5vcHJlZ2lv bjsKPiAgCj4gIAlpZiAoIW9wcmVnaW9uLT5oZWFkZXIpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCWlm IChvcHJlZ2lvbi0+YWNwaSkgewo+IC0JCWludGVsX2RpZGxfb3V0cHV0cyhkZXYpOwo+IC0JCWlu dGVsX3NldHVwX2NhZGxzKGRldik7Cj4gKwkJaW50ZWxfZGlkbF9vdXRwdXRzKGRldl9wcml2KTsK PiArCQlpbnRlbF9zZXR1cF9jYWRscyhkZXZfcHJpdik7Cj4gIAo+ICAJCS8qIE5vdGlmeSBCSU9T IHdlIGFyZSByZWFkeSB0byBoYW5kbGUgQUNQSSB2aWRlbyBleHQgbm90aWZzLgo+ICAJCSAqIFJp Z2h0IG5vdywgYWxsIHRoZSBldmVudHMgYXJlIGhhbmRsZWQgYnkgdGhlIEFDUEkgdmlkZW8gbW9k dWxlLgo+IEBAIC04MDYsOSArODA1LDggQEAgdm9pZCBpbnRlbF9vcHJlZ2lvbl9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gIAl9Cj4gIH0KPiAgCj4gLXZvaWQgaW50ZWxfb3ByZWdpb25f ZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICt2b2lkIGludGVsX29wcmVnaW9uX2Zpbmko c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVs X29wcmVnaW9uICpvcHJlZ2lvbiA9ICZkZXZfcHJpdi0+b3ByZWdpb247Cj4gIAo+ICAJaWYgKCFv cHJlZ2lvbi0+aGVhZGVyKQo+IEBAIC04NDAsOSArODM4LDggQEAgdm9pZCBpbnRlbF9vcHJlZ2lv bl9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlvcHJlZ2lvbi0+bGlkX3N0YXRlID0g TlVMTDsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgc3dzY2lfc2V0dXAoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiArc3RhdGljIHZvaWQgc3dzY2lfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVsX29wcmVnaW9uICpvcHJlZ2lvbiA9 ICZkZXZfcHJpdi0+b3ByZWdpb247Cj4gIAlib29sIHJlcXVlc3RlZF9jYWxsYmFja3MgPSBmYWxz ZTsKPiAgCXUzMiB0bXA7Cj4gQEAgLTg1Miw3ICs4NDksNyBAQCBzdGF0aWMgdm9pZCBzd3NjaV9z ZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJb3ByZWdpb24tPnN3c2NpX3NiY2Jfc3Vi X2Z1bmN0aW9ucyA9IDE7Cj4gIAo+ICAJLyogV2UgdXNlIEdCREEgdG8gYXNrIGZvciBzdXBwb3J0 ZWQgR0JEQSBjYWxscy4gKi8KPiAtCWlmIChzd3NjaShkZXYsIFNXU0NJX0dCREFfU1VQUE9SVEVE X0NBTExTLCAwLCAmdG1wKSA9PSAwKSB7Cj4gKwlpZiAoc3dzY2koZGV2X3ByaXYsIFNXU0NJX0dC REFfU1VQUE9SVEVEX0NBTExTLCAwLCAmdG1wKSA9PSAwKSB7Cj4gIAkJLyogbWFrZSB0aGUgYml0 cyBtYXRjaCB0aGUgc3ViLWZ1bmN0aW9uIGNvZGVzICovCj4gIAkJdG1wIDw8PSAxOwo+ICAJCW9w cmVnaW9uLT5zd3NjaV9nYmRhX3N1Yl9mdW5jdGlvbnMgfD0gdG1wOwo+IEBAIC04NjMsNyArODYw LDcgQEAgc3RhdGljIHZvaWQgc3dzY2lfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg CSAqIG11c3Qgbm90IGNhbGwgaW50ZXJmYWNlcyB0aGF0IGFyZSBub3Qgc3BlY2lmaWNhbGx5IHJl cXVlc3RlZCBieSB0aGUKPiAgCSAqIGJpb3MuCj4gIAkgKi8KPiAtCWlmIChzd3NjaShkZXYsIFNX U0NJX0dCREFfUkVRVUVTVEVEX0NBTExCQUNLUywgMCwgJnRtcCkgPT0gMCkgewo+ICsJaWYgKHN3 c2NpKGRldl9wcml2LCBTV1NDSV9HQkRBX1JFUVVFU1RFRF9DQUxMQkFDS1MsIDAsICZ0bXApID09 IDApIHsKPiAgCQkvKiBoZXJlLCB0aGUgYml0cyBhbHJlYWR5IG1hdGNoIHN1Yi1mdW5jdGlvbiBj b2RlcyAqLwo+ICAJCW9wcmVnaW9uLT5zd3NjaV9zYmNiX3N1Yl9mdW5jdGlvbnMgfD0gdG1wOwo+ ICAJCXJlcXVlc3RlZF9jYWxsYmFja3MgPSB0cnVlOwo+IEBAIC04NzQsNyArODcxLDcgQEAgc3Rh dGljIHZvaWQgc3dzY2lfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCSAqIHRoZSBj YWxsYmFjayBpcyBfcmVxdWVzdGVkXy4gQnV0IHdlIHN0aWxsIGNhbid0IGNhbGwgaW50ZXJmYWNl cyB0aGF0Cj4gIAkgKiBhcmUgbm90IHJlcXVlc3RlZC4KPiAgCSAqLwo+IC0JaWYgKHN3c2NpKGRl diwgU1dTQ0lfU0JDQl9TVVBQT1JURURfQ0FMTEJBQ0tTLCAwLCAmdG1wKSA9PSAwKSB7Cj4gKwlp ZiAoc3dzY2koZGV2X3ByaXYsIFNXU0NJX1NCQ0JfU1VQUE9SVEVEX0NBTExCQUNLUywgMCwgJnRt cCkgPT0gMCkgewo+ICAJCS8qIG1ha2UgdGhlIGJpdHMgbWF0Y2ggdGhlIHN1Yi1mdW5jdGlvbiBj b2RlcyAqLwo+ICAJCXUzMiBsb3cgPSB0bXAgJiAweDdmZjsKPiAgCQl1MzIgaGlnaCA9IHRtcCAm IH4weGZmZjsgLyogYml0IDExIGlzIHJlc2VydmVkICovCj4gQEAgLTkxNiwxMCArOTEzLDEwIEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBpbnRlbF9ub19vcHJlZ2lvbl92YnRb XSA9IHsKPiAgCXsgfQo+ICB9Owo+ICAKPiAtaW50IGludGVsX29wcmVnaW9uX3NldHVwKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gK2ludCBpbnRlbF9vcHJlZ2lvbl9zZXR1cChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfb3ByZWdpb24g Km9wcmVnaW9uID0gJmRldl9wcml2LT5vcHJlZ2lvbjsKPiArCXN0cnVjdCBwY2lfZGV2ICpwZGV2 ID0gZGV2X3ByaXYtPmRldi0+cGRldjsKPiAgCXUzMiBhc2xzLCBtYm94ZXM7Cj4gIAljaGFyIGJ1 ZltzaXplb2YoT1BSRUdJT05fU0lHTkFUVVJFKV07Cj4gIAlpbnQgZXJyID0gMDsKPiBAQCAtOTMx LDcgKzkyOCw3IEBAIGludCBpbnRlbF9vcHJlZ2lvbl9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3Qgb3ByZWdpb25fYXNsZSkgIT0gMHgx MDApOwo+ICAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3Qgb3ByZWdpb25fYXNsZV9leHQpICE9 IDB4NDAwKTsKPiAgCj4gLQlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LT5wZGV2LCBBU0xTLCAm YXNscyk7Cj4gKwlwY2lfcmVhZF9jb25maWdfZHdvcmQocGRldiwgQVNMUywgJmFzbHMpOwo+ICAJ RFJNX0RFQlVHX0RSSVZFUigiZ3JhcGhpYyBvcHJlZ2lvbiBwaHlzaWNhbCBhZGRyOiAweCV4XG4i LCBhc2xzKTsKPiAgCWlmIChhc2xzID09IDApIHsKPiAgCQlEUk1fREVCVUdfRFJJVkVSKCJBQ1BJ IE9wUmVnaW9uIG5vdCBzdXBwb3J0ZWQhXG4iKTsKPiBAQCAtOTYzLDcgKzk2MCw3IEBAIGludCBp bnRlbF9vcHJlZ2lvbl9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJaWYgKG1ib3hl cyAmIE1CT1hfU1dTQ0kpIHsKPiAgCQlEUk1fREVCVUdfRFJJVkVSKCJTV1NDSSBzdXBwb3J0ZWRc biIpOwo+ICAJCW9wcmVnaW9uLT5zd3NjaSA9IGJhc2UgKyBPUFJFR0lPTl9TV1NDSV9PRkZTRVQ7 Cj4gLQkJc3dzY2lfc2V0dXAoZGV2KTsKPiArCQlzd3NjaV9zZXR1cChkZXZfcHJpdik7Cj4gIAl9 Cj4gIAo+ICAJaWYgKG1ib3hlcyAmIE1CT1hfQVNMRSkgewo+IEBAIC0xMDEyLDEyICsxMDA5LDEy IEBAIGVycl9vdXQ6Cj4gIH0KPiAgCj4gIGludAo+IC1pbnRlbF9vcHJlZ2lvbl9nZXRfcGFuZWxf dHlwZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICtpbnRlbF9vcHJlZ2lvbl9nZXRfcGFuZWxf dHlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCXUzMiBwYW5l bF9kZXRhaWxzOwo+ICAJaW50IHJldDsKPiAgCj4gLQlyZXQgPSBzd3NjaShkZXYsIFNXU0NJX0dC REFfUEFORUxfREVUQUlMUywgMHgwLCAmcGFuZWxfZGV0YWlscyk7Cj4gKwlyZXQgPSBzd3NjaShk ZXZfcHJpdiwgU1dTQ0lfR0JEQV9QQU5FTF9ERVRBSUxTLCAweDAsICZwYW5lbF9kZXRhaWxzKTsK PiAgCWlmIChyZXQpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gZ2V0IHBhbmVsIGRl dGFpbHMgZnJvbSBPcFJlZ2lvbiAoJWQpXG4iLAo+ICAJCQkgICAgICByZXQpOwoKLS0gCkphbmkg TmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK