From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 25/38] drm: Add reference counting to drm_atomic_state Date: Wed, 21 Sep 2016 10:24:24 +0300 Message-ID: References: <20160920083012.2754-1-chris@chris-wilson.co.uk> <20160920083012.2754-26-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160920083012.2754-26-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 Cc: Daniel Vetter , "intel-gfx@lists.freedesktop.org" , DRI mailing list , mika.kuoppala@intel.com List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBTZXAgMjAsIDIwMTYgYXQgMTE6MjkgQU0sIENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPiB3cm90ZToKPiBkcm1fYXRvbWljX3N0YXRlIGhhcyBhIGNvbXBsaWNh dGVkIHNpbmdsZSBvd25lciBtb2RlbCB0aGF0IHRyYWNrcyB0aGUKPiBzaW5nbGUgcmVmZXJlbmNl IGZyb20gYWxsb2NhdGlvbiB0aHJvdWdoIHRvIGRlc3RydWN0aW9uIG9uIGFub3RoZXIKPiB0aHJl YWQgLSBvciBwZXJoYXBzIG9uIGEgbG9jYWwgZXJyb3IgcGF0aC4gV2UgY2FuIHNpbXBsaWZ5IHRo aXMgdHJhY2tpbmcKPiBieSB1c2luZyByZWZlcmVuY2UgY291bnRpbmcgKGF0IGEgY29zdCBvZiBh IGZldyBtb3JlIGF0b21pY3MpLiBUaGlzIGlzCj4gZXZlbiBtb3JlIGJlbmVmaWNpYWwgd2hlbiB0 aGUgbGlmZXRpbWUgb2YgdGhlIHN0YXRlIGJlY29tZXMgbW9yZQo+IGNvbnZvbHV0ZWQgdGhhbiBi ZWluZyBwYXNzZWQgdG8gYSBzaW5nbGUgd29ya2VyIHRocmVhZCBmb3IgdGhlIGNvbW1pdC4KPgo+ IHYyOiBEb3VibGUgY2hlY2sgIWludGVsIGF0b21pY19jb21taXQgZnVuY3Rpb25zIGZvciBtaXNz aW5nIGdldHMKPiB2MzogVXBkYXRlIGtlcm5lbGRvY3MKPgo+IFNpZ25lZC1vZmYtYnk6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IENjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gUmV2aWV3ZWQtYnk6IEVyaWMgRW5nZXN0cm9tIDxlcmljLmVuZ2VzdHJvbUBpbWd0ZWMu Y29tPgoKVGhpcyBsb29rcyBnb29kIHRvIG1lLCBpdCdsbCBob3BlZnVsbHkgZ2l2ZSBkcml2ZXJz IGEgYml0IG1vcmUKZmxleGliaWxpdHkgd2l0aCByZXNwZWN0IHRvIGtlZXBpbmcgc3RhdGUgYXJv dW5kIGR1cmluZy9kaXJlY3RseSBhZnRlcgpjb21taXQuCgpSZXZpZXdlZC1ieTogU2VhbiBQYXVs IDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYXRtZWwt aGxjZGMvYXRtZWxfaGxjZGNfZGMuYyB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljLmMgICAgICAgICAgICAgICAgIHwgMjUgKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY19oZWxwZXIuYyAgICAgICAgICB8IDk4ICsrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyAgICAgICAgICAgICAgfCAgOSAr LS0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rydi5jICAgICAgfCAgMyAr LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgICB8ICAzICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICAgIHwgMzEgKysr KystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICAgICAgICAgIHwg IDQgKy0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMgICAgICAgfCAg MyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYyAgICAgICAgICAgICB8ICAz ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmMgICAgICAgICAgIHwgIDMg Ky0KPiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9rbXMuYyAgICAgICAgfCAgMyAr LQo+ICBkcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9kcnYuYyAgICAgICAgICAgICAgICB8ICAzICst Cj4gIGRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kcm0uYyAgICAgICAgICAgICAgICAgIHwgIDMgKy0K PiAgZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZHJ2LmMgICAgICAgICAgfCAgMiAtCj4g IGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2ttcy5jICAgICAgICAgICAgICAgIHwgIDMgKy0KPiAg aW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oICAgICAgICAgICAgICAgICAgICAgfCAyOCArKysrKysr LQo+ICBpbmNsdWRlL2RybS9kcm1fY3J0Yy5oICAgICAgICAgICAgICAgICAgICAgICB8ICAzICsK PiAgMTggZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDEyOSBkZWxldGlvbnMoLSkK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNf ZGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19kYy5jCj4gaW5k ZXggOGU3NDgzZDkwYzQ3Li5jOWU2NDVmYTEyMzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2RjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfZGMuYwo+IEBAIC00NjQsNyArNDY0LDcgQEAgYXRtZWxf aGxjZGNfZGNfYXRvbWljX2NvbXBsZXRlKHN0cnVjdCBhdG1lbF9obGNkY19kY19jb21taXQgKmNv bW1pdCkKPgo+ICAgICAgICAgZHJtX2F0b21pY19oZWxwZXJfY2xlYW51cF9wbGFuZXMoZGV2LCBv bGRfc3RhdGUpOwo+Cj4gLSAgICAgICBkcm1fYXRvbWljX3N0YXRlX2ZyZWUob2xkX3N0YXRlKTsK PiArICAgICAgIGRybV9hdG9taWNfc3RhdGVfcHV0KG9sZF9zdGF0ZSk7Cj4KPiAgICAgICAgIC8q IENvbXBsZXRlIHRoZSBjb21taXQsIHdha2UgdXAgYW55IHdhaXRlci4gKi8KPiAgICAgICAgIHNw aW5fbG9jaygmZGMtPmNvbW1pdC53YWl0LmxvY2spOwo+IEBAIC01MjEsNiArNTIxLDcgQEAgc3Rh dGljIGludCBhdG1lbF9obGNkY19kY19hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gICAgICAgICAvKiBTd2FwIHRoZSBzdGF0ZSwgdGhpcyBpcyB0aGUgcG9pbnQgb2Ygbm8g cmV0dXJuLiAqLwo+ICAgICAgICAgZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdGF0ZSwg dHJ1ZSk7Cj4KPiArICAgICAgIGRybV9hdG9taWNfc3RhdGVfZ2V0KHN0YXRlKTsKPiAgICAgICAg IGlmIChhc3luYykKPiAgICAgICAgICAgICAgICAgcXVldWVfd29yayhkYy0+d3EsICZjb21taXQt PndvcmspOwo+ICAgICAgICAgZWxzZQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IGluZGV4IDIzNzM5NjA5 NDI3ZC4uNWRkNzA1NDAyMTljIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gQEAgLTc0LDYgKzc0 LDggQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfcmVsZWFzZSk7Cj4g IGludAo+ICBkcm1fYXRvbWljX3N0YXRlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gKyAgICAgICBrcmVmX2luaXQoJnN0 YXRlLT5yZWYpOwo+ICsKPiAgICAgICAgIC8qIFRPRE8gbGVnYWN5IHBhdGhzIHNob3VsZCBtYXli ZSBkbyBhIGJldHRlciBqb2IgYWJvdXQKPiAgICAgICAgICAqIHNldHRpbmcgdGhpcyBhcHByb3By aWF0ZWx5Pwo+ICAgICAgICAgICovCj4gQEAgLTIxNSwyMiArMjE3LDE2IEBAIHZvaWQgZHJtX2F0 b21pY19zdGF0ZV9jbGVhcihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIEVYUE9S VF9TWU1CT0woZHJtX2F0b21pY19zdGF0ZV9jbGVhcik7Cj4KPiAgLyoqCj4gLSAqIGRybV9hdG9t aWNfc3RhdGVfZnJlZSAtIGZyZWUgYWxsIG1lbW9yeSBmb3IgYW4gYXRvbWljIHN0YXRlCj4gLSAq IEBzdGF0ZTogYXRvbWljIHN0YXRlIHRvIGRlYWxsb2NhdGUKPiArICogX19kcm1fYXRvbWljX3N0 YXRlX2ZyZWUgLSBmcmVlIGFsbCBtZW1vcnkgZm9yIGFuIGF0b21pYyBzdGF0ZQo+ICsgKiBAcmVm OiBUaGlzIGF0b21pYyBzdGF0ZSB0byBkZWFsbG9jYXRlCj4gICAqCj4gICAqIFRoaXMgZnJlZXMg YWxsIG1lbW9yeSBhc3NvY2lhdGVkIHdpdGggYW4gYXRvbWljIHN0YXRlLCBpbmNsdWRpbmcgYWxs IHRoZQo+ICAgKiBwZXItb2JqZWN0IHN0YXRlIGZvciBwbGFuZXMsIGNydGNzIGFuZCBjb25uZWN0 b3JzLgo+ICAgKi8KPiAtdm9pZCBkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQo+ICt2b2lkIF9fZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0cnVjdCBr cmVmICpyZWYpCj4gIHsKPiAtICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXY7Cj4gLSAgICAg ICBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWc7Cj4gLQo+IC0gICAgICAgaWYgKCFzdGF0 ZSkKPiAtICAgICAgICAgICAgICAgcmV0dXJuOwo+IC0KPiAtICAgICAgIGRldiA9IHN0YXRlLT5k ZXY7Cj4gLSAgICAgICBjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKPiArICAgICAgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNvbnRhaW5lcl9vZihyZWYsIHR5cGVvZigqc3Rh dGUpLCByZWYpOwo+ICsgICAgICAgc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0gJnN0 YXRlLT5kZXYtPm1vZGVfY29uZmlnOwo+Cj4gICAgICAgICBkcm1fYXRvbWljX3N0YXRlX2NsZWFy KHN0YXRlKTsKPgo+IEBAIC0yNDMsNyArMjM5LDcgQEAgdm9pZCBkcm1fYXRvbWljX3N0YXRlX2Zy ZWUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAgICAgICAgICAgICAgICBrZnJl ZShzdGF0ZSk7Cj4gICAgICAgICB9Cj4gIH0KPiAtRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX3N0 YXRlX2ZyZWUpOwo+ICtFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21pY19zdGF0ZV9mcmVlKTsKPgo+ ICAvKioKPiAgICogZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZSAtIGdldCBjcnRjIHN0YXRlCj4g QEAgLTE3NDIsNyArMTczOCw3IEBAIHJldHJ5Ogo+ICAgICAgICAgaWYgKGFyZy0+ZmxhZ3MgJiBE Uk1fTU9ERV9BVE9NSUNfVEVTVF9PTkxZKSB7Cj4gICAgICAgICAgICAgICAgIC8qCj4gICAgICAg ICAgICAgICAgICAqIFVubGlrZSBjb21taXQsIGNoZWNrX29ubHkgZG9lcyBub3QgY2xlYW4gdXAg c3RhdGUuCj4gLSAgICAgICAgICAgICAgICAqIEJlbG93IHdlIGNhbGwgZHJtX2F0b21pY19zdGF0 ZV9mcmVlIGZvciBpdC4KPiArICAgICAgICAgICAgICAgICogQmVsb3cgd2UgY2FsbCBkcm1fYXRv bWljX3N0YXRlX3B1dCBmb3IgaXQuCj4gICAgICAgICAgICAgICAgICAqLwo+ICAgICAgICAgICAg ICAgICByZXQgPSBkcm1fYXRvbWljX2NoZWNrX29ubHkoc3RhdGUpOwo+ICAgICAgICAgfSBlbHNl IGlmIChhcmctPmZsYWdzICYgRFJNX01PREVfQVRPTUlDX05PTkJMT0NLKSB7Cj4gQEAgLTE3NzUs OCArMTc3MSw3IEBAIG91dDoKPiAgICAgICAgICAgICAgICAgZ290byByZXRyeTsKPiAgICAgICAg IH0KPgo+IC0gICAgICAgaWYgKHJldCB8fCBhcmctPmZsYWdzICYgRFJNX01PREVfQVRPTUlDX1RF U1RfT05MWSkKPiAtICAgICAgICAgICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsK PiArICAgICAgIGRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPgo+ICAgICAgICAgZHJtX21v ZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKPiAgICAgICAgIGRybV9tb2Rlc2V0X2FjcXVpcmVfZmlu aSgmY3R4KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+IGluZGV4IGMzZjgzNDc2 Zjk5Ni4uZGY2ZTliN2MzNzdjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMK PiBAQCAtMTIwNyw3ICsxMjA3LDcgQEAgc3RhdGljIHZvaWQgY29tbWl0X3RhaWwoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+Cj4gICAgICAgICBkcm1fYXRvbWljX2hlbHBlcl9jb21t aXRfY2xlYW51cF9kb25lKHN0YXRlKTsKPgo+IC0gICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVl KHN0YXRlKTsKPiArICAgICAgIGRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPiAgfQo+Cj4g IHN0YXRpYyB2b2lkIGNvbW1pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiBAQCAt MTI4OSw2ICsxMjg5LDcgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAgICAgICAgICogbWFrZSBzdXJlIHdvcmsgaXRlbXMgZG9uJ3QgYXJ0 aWZpY2FsbHkgc3RhbGwgb24gZWFjaCBhbm90aGVyLgo+ICAgICAgICAgICovCj4KPiArICAgICAg IGRybV9hdG9taWNfc3RhdGVfZ2V0KHN0YXRlKTsKPiAgICAgICAgIGlmIChub25ibG9jaykKPiAg ICAgICAgICAgICAgICAgcXVldWVfd29yayhzeXN0ZW1fdW5ib3VuZF93cSwgJnN0YXRlLT5jb21t aXRfd29yayk7Cj4gICAgICAgICBlbHNlCj4gQEAgLTE1OTAsNyArMTU5MSw3IEBAIEVYUE9SVF9T WU1CT0woZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUpOwo+ICAgKgo+ICAgKiBUaGlz IHNpZ25hbHMgY29tcGxldGlvbiBvZiB0aGUgYXRvbWljIHVwZGF0ZSBAc3RhdGUsIGluY2x1ZGlu ZyBhbnkgY2xlYW51cAo+ICAgKiB3b3JrLiBJZiB1c2VkLCBpdCBtdXN0IGJlIGNhbGxlZCByaWdo dCBiZWZvcmUgY2FsbGluZwo+IC0gKiBkcm1fYXRvbWljX3N0YXRlX2ZyZWUoKS4KPiArICogZHJt X2F0b21pY19zdGF0ZV9wdXQoKS4KPiAgICoKPiAgICogVGhpcyBpcyBwYXJ0IG9mIHRoZSBhdG9t aWMgaGVscGVyIHN1cHBvcnQgZm9yIG5vbmJsb2NraW5nIGNvbW1pdHMsIHNlZQo+ICAgKiBkcm1f YXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQoKSBmb3IgYW4gb3ZlcnZpZXcuCj4gQEAgLTIxMTMs MTggKzIxMTQsMTMgQEAgcmV0cnk6Cj4gICAgICAgICAgICAgICAgIHN0YXRlLT5sZWdhY3lfY3Vy c29yX3VwZGF0ZSA9IHRydWU7Cj4KPiAgICAgICAgIHJldCA9IGRybV9hdG9taWNfY29tbWl0KHN0 YXRlKTsKPiAtICAgICAgIGlmIChyZXQgIT0gMCkKPiAtICAgICAgICAgICAgICAgZ290byBmYWls Owo+IC0KPiAtICAgICAgIC8qIERyaXZlciB0YWtlcyBvd25lcnNoaXAgb2Ygc3RhdGUgb24gc3Vj Y2Vzc2Z1bCBjb21taXQuICovCj4gLSAgICAgICByZXR1cm4gMDsKPiAgZmFpbDoKPiAgICAgICAg IGlmIChyZXQgPT0gLUVERUFETEspCj4gICAgICAgICAgICAgICAgIGdvdG8gYmFja29mZjsKPgo+ IC0gICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPiAtCj4gKyAgICAgICBkcm1f YXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4gICAgICAgICByZXR1cm4gcmV0Owo+ICsKPiAgYmFj a29mZjoKPiAgICAgICAgIGRybV9hdG9taWNfc3RhdGVfY2xlYXIoc3RhdGUpOwo+ICAgICAgICAg ZHJtX2F0b21pY19sZWdhY3lfYmFja29mZihzdGF0ZSk7Cj4gQEAgLTIxODYsMTggKzIxODIsMTMg QEAgcmV0cnk6Cj4gICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPgo+ICAgICAgICAgcmV0ID0g ZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwo+IC0gICAgICAgaWYgKHJldCAhPSAwKQo+IC0gICAg ICAgICAgICAgICBnb3RvIGZhaWw7Cj4gLQo+IC0gICAgICAgLyogRHJpdmVyIHRha2VzIG93bmVy c2hpcCBvZiBzdGF0ZSBvbiBzdWNjZXNzZnVsIGNvbW1pdC4gKi8KPiAtICAgICAgIHJldHVybiAw Owo+ICBmYWlsOgo+ICAgICAgICAgaWYgKHJldCA9PSAtRURFQURMSykKPiAgICAgICAgICAgICAg ICAgZ290byBiYWNrb2ZmOwo+Cj4gLSAgICAgICBkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUp Owo+IC0KPiArICAgICAgIGRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPiAgICAgICAgIHJl dHVybiByZXQ7Cj4gKwo+ICBiYWNrb2ZmOgo+ICAgICAgICAgZHJtX2F0b21pY19zdGF0ZV9jbGVh cihzdGF0ZSk7Cj4gICAgICAgICBkcm1fYXRvbWljX2xlZ2FjeV9iYWNrb2ZmKHN0YXRlKTsKPiBA QCAtMjMyNiwxOCArMjMxNywxMyBAQCByZXRyeToKPiAgICAgICAgICAgICAgICAgZ290byBmYWls Owo+Cj4gICAgICAgICByZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Cj4gLSAgICAgICBp ZiAocmV0ICE9IDApCj4gLSAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPiAtCj4gLSAgICAgICAv KiBEcml2ZXIgdGFrZXMgb3duZXJzaGlwIG9mIHN0YXRlIG9uIHN1Y2Nlc3NmdWwgY29tbWl0LiAq Lwo+IC0gICAgICAgcmV0dXJuIDA7Cj4gIGZhaWw6Cj4gICAgICAgICBpZiAocmV0ID09IC1FREVB RExLKQo+ICAgICAgICAgICAgICAgICBnb3RvIGJhY2tvZmY7Cj4KPiAtICAgICAgIGRybV9hdG9t aWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4gLQo+ICsgICAgICAgZHJtX2F0b21pY19zdGF0ZV9wdXQo c3RhdGUpOwo+ICAgICAgICAgcmV0dXJuIHJldDsKPiArCj4gIGJhY2tvZmY6Cj4gICAgICAgICBk cm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRlKTsKPiAgICAgICAgIGRybV9hdG9taWNfbGVnYWN5 X2JhY2tvZmYoc3RhdGUpOwo+IEBAIC0yNDc5LDExICsyNDY1LDggQEAgaW50IGRybV9hdG9taWNf aGVscGVyX2Rpc2FibGVfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAgICAgICB9Cj4K PiAgICAgICAgIGVyciA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKPiAtCj4gIGZyZWU6Cj4g LSAgICAgICBpZiAoZXJyIDwgMCkKPiAtICAgICAgICAgICAgICAgZHJtX2F0b21pY19zdGF0ZV9m cmVlKHN0YXRlKTsKPiAtCj4gKyAgICAgICBkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4g ICAgICAgICByZXR1cm4gZXJyOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxw ZXJfZGlzYWJsZV9hbGwpOwo+IEBAIC0yNTM0LDcgKzI1MTcsNyBAQCByZXRyeToKPgo+ICAgICAg ICAgZXJyID0gZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9hbGwoZGV2LCAmY3R4KTsKPiAgICAg ICAgIGlmIChlcnIgPCAwKSB7Cj4gLSAgICAgICAgICAgICAgIGRybV9hdG9taWNfc3RhdGVfZnJl ZShzdGF0ZSk7Cj4gKyAgICAgICAgICAgICAgIGRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsK PiAgICAgICAgICAgICAgICAgc3RhdGUgPSBFUlJfUFRSKGVycik7Cj4gICAgICAgICAgICAgICAg IGdvdG8gdW5sb2NrOwo+ICAgICAgICAgfQo+IEBAIC0yNjIzLDE4ICsyNjA2LDEzIEBAIHJldHJ5 Ogo+ICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Cj4KPiAgICAgICAgIHJldCA9IGRybV9hdG9t aWNfY29tbWl0KHN0YXRlKTsKPiAtICAgICAgIGlmIChyZXQgIT0gMCkKPiAtICAgICAgICAgICAg ICAgZ290byBmYWlsOwo+IC0KPiAtICAgICAgIC8qIERyaXZlciB0YWtlcyBvd25lcnNoaXAgb2Yg c3RhdGUgb24gc3VjY2Vzc2Z1bCBjb21taXQuICovCj4gLSAgICAgICByZXR1cm4gMDsKPiAgZmFp bDoKPiAgICAgICAgIGlmIChyZXQgPT0gLUVERUFETEspCj4gICAgICAgICAgICAgICAgIGdvdG8g YmFja29mZjsKPgo+IC0gICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPiAtCj4g KyAgICAgICBkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4gICAgICAgICByZXR1cm4gcmV0 Owo+ICsKPiAgYmFja29mZjoKPiAgICAgICAgIGRybV9hdG9taWNfc3RhdGVfY2xlYXIoc3RhdGUp Owo+ICAgICAgICAgZHJtX2F0b21pY19sZWdhY3lfYmFja29mZihzdGF0ZSk7Cj4gQEAgLTI2ODMs MTggKzI2NjEsMTMgQEAgcmV0cnk6Cj4gICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPgo+ICAg ICAgICAgcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwo+IC0gICAgICAgaWYgKHJldCAh PSAwKQo+IC0gICAgICAgICAgICAgICBnb3RvIGZhaWw7Cj4gLQo+IC0gICAgICAgLyogRHJpdmVy IHRha2VzIG93bmVyc2hpcCBvZiBzdGF0ZSBvbiBzdWNjZXNzZnVsIGNvbW1pdC4gKi8KPiAtICAg ICAgIHJldHVybiAwOwo+ICBmYWlsOgo+ICAgICAgICAgaWYgKHJldCA9PSAtRURFQURMSykKPiAg ICAgICAgICAgICAgICAgZ290byBiYWNrb2ZmOwo+Cj4gLSAgICAgICBkcm1fYXRvbWljX3N0YXRl X2ZyZWUoc3RhdGUpOwo+IC0KPiArICAgICAgIGRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsK PiAgICAgICAgIHJldHVybiByZXQ7Cj4gKwo+ICBiYWNrb2ZmOgo+ICAgICAgICAgZHJtX2F0b21p Y19zdGF0ZV9jbGVhcihzdGF0ZSk7Cj4gICAgICAgICBkcm1fYXRvbWljX2xlZ2FjeV9iYWNrb2Zm KHN0YXRlKTsKPiBAQCAtMjc0MywxOCArMjcxNiwxMyBAQCByZXRyeToKPiAgICAgICAgICAgICAg ICAgZ290byBmYWlsOwo+Cj4gICAgICAgICByZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7 Cj4gLSAgICAgICBpZiAocmV0ICE9IDApCj4gLSAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPiAt Cj4gLSAgICAgICAvKiBEcml2ZXIgdGFrZXMgb3duZXJzaGlwIG9mIHN0YXRlIG9uIHN1Y2Nlc3Nm dWwgY29tbWl0LiAqLwo+IC0gICAgICAgcmV0dXJuIDA7Cj4gIGZhaWw6Cj4gICAgICAgICBpZiAo cmV0ID09IC1FREVBRExLKQo+ICAgICAgICAgICAgICAgICBnb3RvIGJhY2tvZmY7Cj4KPiAtICAg ICAgIGRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4gLQo+ICsgICAgICAgZHJtX2F0b21p Y19zdGF0ZV9wdXQoc3RhdGUpOwo+ICAgICAgICAgcmV0dXJuIHJldDsKPiArCj4gIGJhY2tvZmY6 Cj4gICAgICAgICBkcm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRlKTsKPiAgICAgICAgIGRybV9h dG9taWNfbGVnYWN5X2JhY2tvZmYoc3RhdGUpOwo+IEBAIC0yODI3LDE4ICsyNzk1LDEzIEBAIHJl dHJ5Ogo+ICAgICAgICAgfQo+Cj4gICAgICAgICByZXQgPSBkcm1fYXRvbWljX25vbmJsb2NraW5n X2NvbW1pdChzdGF0ZSk7Cj4gLSAgICAgICBpZiAocmV0ICE9IDApCj4gLSAgICAgICAgICAgICAg IGdvdG8gZmFpbDsKPiAtCj4gLSAgICAgICAvKiBEcml2ZXIgdGFrZXMgb3duZXJzaGlwIG9mIHN0 YXRlIG9uIHN1Y2Nlc3NmdWwgY29tbWl0LiAqLwo+IC0gICAgICAgcmV0dXJuIDA7Cj4gIGZhaWw6 Cj4gICAgICAgICBpZiAocmV0ID09IC1FREVBRExLKQo+ICAgICAgICAgICAgICAgICBnb3RvIGJh Y2tvZmY7Cj4KPiAtICAgICAgIGRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4gLQo+ICsg ICAgICAgZHJtX2F0b21pY19zdGF0ZV9wdXQoc3RhdGUpOwo+ICAgICAgICAgcmV0dXJuIHJldDsK PiArCj4gIGJhY2tvZmY6Cj4gICAgICAgICBkcm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRlKTsK PiAgICAgICAgIGRybV9hdG9taWNfbGVnYWN5X2JhY2tvZmYoc3RhdGUpOwo+IEBAIC0yOTE0LDE5 ICsyODc3LDE0IEBAIHJldHJ5Ogo+ICAgICAgICAgY3J0Y19zdGF0ZS0+YWN0aXZlID0gYWN0aXZl Owo+Cj4gICAgICAgICByZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Cj4gLSAgICAgICBp ZiAocmV0ICE9IDApCj4gLSAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPiAtCj4gLSAgICAgICAv KiBEcml2ZXIgdGFrZXMgb3duZXJzaGlwIG9mIHN0YXRlIG9uIHN1Y2Nlc3NmdWwgY29tbWl0LiAq Lwo+IC0gICAgICAgcmV0dXJuIDA7Cj4gIGZhaWw6Cj4gICAgICAgICBpZiAocmV0ID09IC1FREVB RExLKQo+ICAgICAgICAgICAgICAgICBnb3RvIGJhY2tvZmY7Cj4KPiAgICAgICAgIGNvbm5lY3Rv ci0+ZHBtcyA9IG9sZF9tb2RlOwo+IC0gICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRl KTsKPiAtCj4gKyAgICAgICBkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4gICAgICAgICBy ZXR1cm4gcmV0Owo+ICsKPiAgYmFja29mZjoKPiAgICAgICAgIGRybV9hdG9taWNfc3RhdGVfY2xl YXIoc3RhdGUpOwo+ICAgICAgICAgZHJtX2F0b21pY19sZWdhY3lfYmFja29mZihzdGF0ZSk7Cj4g QEAgLTMzMzMsNyArMzI5MSw3IEBAIGRybV9hdG9taWNfaGVscGVyX2R1cGxpY2F0ZV9zdGF0ZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+Cj4gIGZyZWU6Cj4gICAgICAgICBpZiAoZXJyIDwgMCkg ewo+IC0gICAgICAgICAgICAgICBkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+ICsgICAg ICAgICAgICAgICBkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4gICAgICAgICAgICAgICAg IHN0YXRlID0gRVJSX1BUUihlcnIpOwo+ICAgICAgICAgfQo+Cj4gQEAgLTM0NDgsMjIgKzM0MDYs MTQgQEAgcmV0cnk6Cj4gICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPgo+ICAgICAgICAgcmV0 ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwo+IC0gICAgICAgaWYgKHJldCkKPiAtICAgICAg ICAgICAgICAgZ290byBmYWlsOwo+IC0KPiAtICAgICAgIC8qIERyaXZlciB0YWtlcyBvd25lcnNo aXAgb2Ygc3RhdGUgb24gc3VjY2Vzc2Z1bCBjb21taXQuICovCj4gLQo+IC0gICAgICAgZHJtX3By b3BlcnR5X3VucmVmZXJlbmNlX2Jsb2IoYmxvYik7Cj4gLQo+IC0gICAgICAgcmV0dXJuIDA7Cj4g IGZhaWw6Cj4gICAgICAgICBpZiAocmV0ID09IC1FREVBRExLKQo+ICAgICAgICAgICAgICAgICBn b3RvIGJhY2tvZmY7Cj4KPiAtICAgICAgIGRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4g KyAgICAgICBkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4gICAgICAgICBkcm1fcHJvcGVy dHlfdW5yZWZlcmVuY2VfYmxvYihibG9iKTsKPiAtCj4gICAgICAgICByZXR1cm4gcmV0Owo+ICsK PiAgYmFja29mZjoKPiAgICAgICAgIGRybV9hdG9taWNfc3RhdGVfY2xlYXIoc3RhdGUpOwo+ICAg ICAgICAgZHJtX2F0b21pY19sZWdhY3lfYmFja29mZihzdGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hl bHBlci5jCj4gaW5kZXggMDM0MTRiZGUxZjE1Li4yMmQ0ZjBlMjIxMDEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZmJfaGVscGVyLmMKPiBAQCAtMzY3LDkgKzM2Nyw3IEBAIGZhaWw6Cj4gICAgICAgICBpZiAo cmV0ID09IC1FREVBRExLKQo+ICAgICAgICAgICAgICAgICBnb3RvIGJhY2tvZmY7Cj4KPiAtICAg ICAgIGlmIChyZXQgIT0gMCkKPiAtICAgICAgICAgICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVl KHN0YXRlKTsKPiAtCj4gKyAgICAgICBkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4gICAg ICAgICByZXR1cm4gcmV0Owo+Cj4gIGJhY2tvZmY6Cj4gQEAgLTEzNjEsMTYgKzEzNTksMTMgQEAg cmV0cnk6Cj4gICAgICAgICBpbmZvLT52YXIueG9mZnNldCA9IHZhci0+eG9mZnNldDsKPiAgICAg ICAgIGluZm8tPnZhci55b2Zmc2V0ID0gdmFyLT55b2Zmc2V0Owo+Cj4gLQo+ICBmYWlsOgo+ICAg ICAgICAgZHJtX2F0b21pY19jbGVhbl9vbGRfZmIoZGV2LCBwbGFuZV9tYXNrLCByZXQpOwo+Cj4g ICAgICAgICBpZiAocmV0ID09IC1FREVBRExLKQo+ICAgICAgICAgICAgICAgICBnb3RvIGJhY2tv ZmY7Cj4KPiAtICAgICAgIGlmIChyZXQgIT0gMCkKPiAtICAgICAgICAgICAgICAgZHJtX2F0b21p Y19zdGF0ZV9mcmVlKHN0YXRlKTsKPiAtCj4gKyAgICAgICBkcm1fYXRvbWljX3N0YXRlX3B1dChz dGF0ZSk7Cj4gICAgICAgICByZXR1cm4gcmV0Owo+Cj4gIGJhY2tvZmY6Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2RybV9kcnYuYwo+IGluZGV4IDQ4Njk0M2U3MGY3MC4uZjExYmEyMDc4 MWNlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuYwo+IEBAIC0x MTEsNyArMTExLDcgQEAgc3RhdGljIHZvaWQgZXh5bm9zX2F0b21pY19jb21taXRfY29tcGxldGUo c3RydWN0IGV4eW5vc19hdG9taWNfY29tbWl0ICpjb21taXQpCj4KPiAgICAgICAgIGRybV9hdG9t aWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgc3RhdGUpOwo+Cj4gLSAgICAgICBkcm1fYXRv bWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+ICsgICAgICAgZHJtX2F0b21pY19zdGF0ZV9wdXQoc3Rh dGUpOwo+Cj4gICAgICAgICBzcGluX2xvY2soJnByaXYtPmxvY2spOwo+ICAgICAgICAgcHJpdi0+ cGVuZGluZyAmPSB+Y29tbWl0LT5jcnRjczsKPiBAQCAtMjk2LDYgKzI5Niw3IEBAIGludCBleHlu b3NfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4KPiAgICAgICAgIGRybV9hdG9taWNfaGVscGVyX3N3YXBfc3RhdGUo c3RhdGUsIHRydWUpOwo+Cj4gKyAgICAgICBkcm1fYXRvbWljX3N0YXRlX2dldChzdGF0ZSk7Cj4g ICAgICAgICBpZiAobm9uYmxvY2spCj4gICAgICAgICAgICAgICAgIHNjaGVkdWxlX3dvcmsoJmNv bW1pdC0+d29yayk7Cj4gICAgICAgICBlbHNlCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKPiBpbmRleCA3ZWNkZDVjYzI3ZGQuLjg2MTRiZjRlNDc5YSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTM5NTYsOCArMzk1Niw3IEBAIHN0YXRpYyB2b2lkIGhz d190cmFuc19lZHBfcGlwZV9BX2NyY193YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gIG91dDoKPiAgICAgICAgIGRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKPiAgICAg ICAgIFdBUk4ocmV0LCAiVG9nZ2xpbmcgd29ya2Fyb3VuZCB0byAlaSByZXR1cm5zICVpXG4iLCBl bmFibGUsIHJldCk7Cj4gLSAgICAgICBpZiAocmV0KQo+IC0gICAgICAgICAgICAgICBkcm1fYXRv bWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+ICsgICAgICAgZHJtX2F0b21pY19zdGF0ZV9wdXQoc3Rh dGUpOwo+ICB9Cj4KPiAgc3RhdGljIGludCBpdmJfcGlwZV9jcmNfY3RsX3JlZyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+IGluZGV4IGVhNjk3MTYwNTkxYS4uYzRiMjhhMzBiMjgyIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0zNTgxLDcgKzM1ODEsNyBAQCB2b2lkIGludGVsX3By ZXBhcmVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgICAgICAg cmV0dXJuOwo+Cj4gIGVycjoKPiAtICAgICAgIGRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7 Cj4gKyAgICAgICBkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4gIH0KPgo+ICB2b2lkIGlu dGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gQEAg LTM2NDAsNiArMzY0MCw4IEBAIHZvaWQgaW50ZWxfZmluaXNoX3Jlc2V0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAgICAgICAgICAgICAgICAgaW50ZWxfaHBkX2luaXQoZGV2 X3ByaXYpOwo+ICAgICAgICAgfQo+Cj4gKyAgICAgICBpZiAoc3RhdGUpCj4gKyAgICAgICAgICAg ICAgIGRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPiAgICAgICAgIGRybV9tb2Rlc2V0X2Ry b3BfbG9ja3MoY3R4KTsKPiAgICAgICAgIGRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaShjdHgpOwo+ ICAgICAgICAgbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiBAQCAtNjg3 OSw3ICs2ODgxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19kaXNhYmxlX25vYXRvbWljKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKPgo+ICAgICAgICAgZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19k aXNhYmxlKGNydGNfc3RhdGUsIHN0YXRlKTsKPgo+IC0gICAgICAgZHJtX2F0b21pY19zdGF0ZV9m cmVlKHN0YXRlKTsKPiArICAgICAgIGRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPgo+ICAg ICAgICAgRFJNX0RFQlVHX0tNUygiW0NSVEM6JWQ6JXNdIGh3IHN0YXRlIGFkanVzdGVkLCB3YXMg ZW5hYmxlZCwgbm93IGRpc2FibGVkXG4iLAo+ICAgICAgICAgICAgICAgICAgICAgICBjcnRjLT5i YXNlLmlkLCBjcnRjLT5uYW1lKTsKPiBAQCAtMTEyNDYsOCArMTEyNDgsOCBAQCBmb3VuZDoKPiAg ICAgICAgIHJldHVybiB0cnVlOwo+Cj4gIGZhaWw6Cj4gLSAgICAgICBkcm1fYXRvbWljX3N0YXRl X2ZyZWUoc3RhdGUpOwo+IC0gICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVlKHJlc3RvcmVfc3Rh dGUpOwo+ICsgICAgICAgZHJtX2F0b21pY19zdGF0ZV9wdXQoc3RhdGUpOwo+ICsgICAgICAgZHJt X2F0b21pY19zdGF0ZV9wdXQocmVzdG9yZV9zdGF0ZSk7Cj4gICAgICAgICByZXN0b3JlX3N0YXRl ID0gc3RhdGUgPSBOVUxMOwo+Cj4gICAgICAgICBpZiAocmV0ID09IC1FREVBRExLKSB7Cj4gQEAg LTExMjc2LDEwICsxMTI3OCw5IEBAIHZvaWQgaW50ZWxfcmVsZWFzZV9sb2FkX2RldGVjdF9waXBl KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gICAgICAgICAgICAgICAgIHJldHVy bjsKPgo+ICAgICAgICAgcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwo+IC0gICAgICAg aWYgKHJldCkgewo+ICsgICAgICAgaWYgKHJldCkKPiAgICAgICAgICAgICAgICAgRFJNX0RFQlVH X0tNUygiQ291bGRuJ3QgcmVsZWFzZSBsb2FkIGRldGVjdCBwaXBlOiAlaVxuIiwgcmV0KTsKPiAt ICAgICAgICAgICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPiAtICAgICAgIH0K PiArICAgICAgIGRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPiAgfQo+Cj4gIHN0YXRpYyBp bnQgaTl4eF9wbGxfcmVmY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gQEAgLTEyMzQ0LDgg KzEyMzQ1LDcgQEAgcmV0cnk6Cj4gICAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXRyeTsK PiAgICAgICAgICAgICAgICAgfQo+Cj4gLSAgICAgICAgICAgICAgIGlmIChyZXQpCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPiArICAgICAg ICAgICAgICAgZHJtX2F0b21pY19zdGF0ZV9wdXQoc3RhdGUpOwo+Cj4gICAgICAgICAgICAgICAg IGlmIChyZXQgPT0gMCAmJiBldmVudCkgewo+ICAgICAgICAgICAgICAgICAgICAgICAgIHNwaW5f bG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7Cj4gQEAgLTE0MzkwLDcgKzE0MzkwLDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKPgo+ICAgICAgICAgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2NsZWFudXBfZG9u ZShzdGF0ZSk7Cj4KPiAtICAgICAgIGRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4gKyAg ICAgICBkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4KPiAgICAgICAgIC8qIEFzIG9uZSBv ZiB0aGUgcHJpbWFyeSBtbWlvIGFjY2Vzc29ycywgS01TIGhhcyBhIGhpZ2ggbGlrZWxpaG9vZAo+ ICAgICAgICAgICogb2YgdHJpZ2dlcmluZyBidWdzIGluIHVuY2xhaW1lZCBhY2Nlc3MuIEFmdGVy IHdlIGZpbmlzaAo+IEBAIC0xNDQ3Myw2ICsxNDQ3Myw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRv bWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgICAgICAgaW50ZWxfc2hhcmVk X2RwbGxfY29tbWl0KHN0YXRlKTsKPiAgICAgICAgIGludGVsX2F0b21pY190cmFja19mYnMoc3Rh dGUpOwo+Cj4gKyAgICAgICBkcm1fYXRvbWljX3N0YXRlX2dldChzdGF0ZSk7Cj4gICAgICAgICBp ZiAobm9uYmxvY2spCj4gICAgICAgICAgICAgICAgIHF1ZXVlX3dvcmsoc3lzdGVtX3VuYm91bmRf d3EsICZzdGF0ZS0+Y29tbWl0X3dvcmspOwo+ICAgICAgICAgZWxzZQo+IEBAIC0xNDUxNCw5ICsx NDUxNSw4IEBAIHJldHJ5Ogo+ICAgICAgICAgICAgICAgICBnb3RvIHJldHJ5Owo+ICAgICAgICAg fQo+Cj4gLSAgICAgICBpZiAocmV0KQo+ICBvdXQ6Cj4gLSAgICAgICAgICAgICAgIGRybV9hdG9t aWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4gKyAgICAgICBkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0 ZSk7Cj4gIH0KPgo+ICAvKgo+IEBAIC0xNjI1NCw4ICsxNjI1NCw4IEBAIHJldHJ5Ogo+ICAgICAg ICAgICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5vcHRpbWl6ZV93YXRlcm1hcmtzKGNzKTsKPiAg ICAgICAgIH0KPgo+IC0gICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPiAgZmFp bDoKPiArICAgICAgIGRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPiAgICAgICAgIGRybV9t b2Rlc2V0X2Ryb3BfbG9ja3MoJmN0eCk7Cj4gICAgICAgICBkcm1fbW9kZXNldF9hY3F1aXJlX2Zp bmkoJmN0eCk7Cj4gIH0KPiBAQCAtMTY4OTIsMTAgKzE2ODkyLDkgQEAgdm9pZCBpbnRlbF9kaXNw bGF5X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgICAgICAgZHJtX21vZGVzZXRf YWNxdWlyZV9maW5pKCZjdHgpOwo+ICAgICAgICAgbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29u ZmlnLm11dGV4KTsKPgo+IC0gICAgICAgaWYgKHJldCkgewo+ICsgICAgICAgaWYgKHJldCkKPiAg ICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJSZXN0b3Jpbmcgb2xkIHN0YXRlIGZhaWxlZCB3aXRo ICVpXG4iLCByZXQpOwo+IC0gICAgICAgICAgICAgICBkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3Rh dGUpOwo+IC0gICAgICAgfQo+ICsgICAgICAgZHJtX2F0b21pY19zdGF0ZV9wdXQoc3RhdGUpOwo+ ICB9Cj4KPiAgdm9pZCBpbnRlbF9tb2Rlc2V0X2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCA3M2E1MjFmZGYxYmQu LmJlM2UwNDYyM2UyYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z cHJpdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gQEAg LTk4Nyw5ICs5ODcsNyBAQCBpbnQgaW50ZWxfc3ByaXRlX3NldF9jb2xvcmtleShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgICAgICAgICAgICAgICBkcm1fbW9kZXNldF9i YWNrb2ZmKCZjdHgpOwo+ICAgICAgICAgfQo+Cj4gLSAgICAgICBpZiAocmV0KQo+IC0gICAgICAg ICAgICAgICBkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+IC0KPiArICAgICAgIGRybV9h dG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPiAgb3V0Ogo+ICAgICAgICAgZHJtX21vZGVzZXRfZHJv cF9sb2NrcygmY3R4KTsKPiAgICAgICAgIGRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMgYi9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYwo+IGluZGV4IDcyYzFhZTRlMDJk NC4uNWFiNjAxNzU3NWVhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHJtX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2 LmMKPiBAQCAtODMsNyArODMsNyBAQCBzdGF0aWMgdm9pZCBtdGtfYXRvbWljX2NvbXBsZXRlKHN0 cnVjdCBtdGtfZHJtX3ByaXZhdGUgKnByaXZhdGUsCj4gICAgICAgICBkcm1fYXRvbWljX2hlbHBl cl93YWl0X2Zvcl92YmxhbmtzKGRybSwgc3RhdGUpOwo+Cj4gICAgICAgICBkcm1fYXRvbWljX2hl bHBlcl9jbGVhbnVwX3BsYW5lcyhkcm0sIHN0YXRlKTsKPiAtICAgICAgIGRybV9hdG9taWNfc3Rh dGVfZnJlZShzdGF0ZSk7Cj4gKyAgICAgICBkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4g IH0KPgo+ICBzdGF0aWMgdm9pZCBtdGtfYXRvbWljX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3 b3JrKQo+IEBAIC0xMTAsNiArMTEwLDcgQEAgc3RhdGljIGludCBtdGtfYXRvbWljX2NvbW1pdChz dHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+Cj4gICAgICAgICBkcm1fYXRvbWljX2hlbHBlcl9zd2Fw X3N0YXRlKHN0YXRlLCB0cnVlKTsKPgo+ICsgICAgICAgZHJtX2F0b21pY19zdGF0ZV9nZXQoc3Rh dGUpOwo+ICAgICAgICAgaWYgKGFzeW5jKQo+ICAgICAgICAgICAgICAgICBtdGtfYXRvbWljX3Nj aGVkdWxlKHByaXZhdGUsIHN0YXRlKTsKPiAgICAgICAgIGVsc2UKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9h dG9taWMuYwo+IGluZGV4IDczYmFlMzgyZWFjMy4uZGIxOTNmODM1Mjk4IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9tc21fYXRvbWljLmMKPiBAQCAtMTQxLDcgKzE0MSw3IEBAIHN0YXRpYyB2b2lkIGNvbXBs ZXRlX2NvbW1pdChzdHJ1Y3QgbXNtX2NvbW1pdCAqYywgYm9vbCBhc3luYykKPgo+ICAgICAgICAg a21zLT5mdW5jcy0+Y29tcGxldGVfY29tbWl0KGttcywgc3RhdGUpOwo+Cj4gLSAgICAgICBkcm1f YXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+ICsgICAgICAgZHJtX2F0b21pY19zdGF0ZV9wdXQo c3RhdGUpOwo+Cj4gICAgICAgICBjb21taXRfZGVzdHJveShjKTsKPiAgfQo+IEBAIC0yNTYsNiAr MjU2LDcgQEAgaW50IG1zbV9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g ICAgICAgICAgKiBjdXJyZW50IGxheW91dC4KPiAgICAgICAgICAqLwo+Cj4gKyAgICAgICBkcm1f YXRvbWljX3N0YXRlX2dldChzdGF0ZSk7Cj4gICAgICAgICBpZiAobm9uYmxvY2spIHsKPiAgICAg ICAgICAgICAgICAgcXVldWVfd29yayhwcml2LT5hdG9taWNfd3EsICZjLT53b3JrKTsKPiAgICAg ICAgICAgICAgICAgcmV0dXJuIDA7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFw ZHJtL29tYXBfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Rydi5jCj4gaW5k ZXggZTFjZmJhNTFjZmY2Li4xNzM1YzdhY2NmNzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL29tYXBkcm0vb21hcF9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29t YXBfZHJ2LmMKPiBAQCAtMTA1LDcgKzEwNSw3IEBAIHN0YXRpYyB2b2lkIG9tYXBfYXRvbWljX2Nv bXBsZXRlKHN0cnVjdCBvbWFwX2F0b21pY19zdGF0ZV9jb21taXQgKmNvbW1pdCkKPgo+ICAgICAg ICAgZGlzcGNfcnVudGltZV9wdXQoKTsKPgo+IC0gICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVl KG9sZF9zdGF0ZSk7Cj4gKyAgICAgICBkcm1fYXRvbWljX3N0YXRlX3B1dChvbGRfc3RhdGUpOwo+ Cj4gICAgICAgICAvKiBDb21wbGV0ZSB0aGUgY29tbWl0LCB3YWtlIHVwIGFueSB3YWl0ZXIuICov Cj4gICAgICAgICBzcGluX2xvY2soJnByaXYtPmNvbW1pdC5sb2NrKTsKPiBAQCAtMTc2LDYgKzE3 Niw3IEBAIHN0YXRpYyBpbnQgb21hcF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gICAgICAgICAvKiBTd2FwIHRoZSBzdGF0ZSwgdGhpcyBpcyB0aGUgcG9pbnQgb2Ygbm8g cmV0dXJuLiAqLwo+ICAgICAgICAgZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdGF0ZSwg dHJ1ZSk7Cj4KPiArICAgICAgIGRybV9hdG9taWNfc3RhdGVfZ2V0KHN0YXRlKTsKPiAgICAgICAg IGlmIChub25ibG9jaykKPiAgICAgICAgICAgICAgICAgc2NoZWR1bGVfd29yaygmY29tbWl0LT53 b3JrKTsKPiAgICAgICAgIGVsc2UKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JjYXIt ZHUvcmNhcl9kdV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfa21zLmMK PiBpbmRleCBiZDljM2JiOTI1MmMuLmM3NmVkOWVlNmEwMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2ttcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jj YXItZHUvcmNhcl9kdV9rbXMuYwo+IEBAIC0yNjQsNyArMjY0LDcgQEAgc3RhdGljIHZvaWQgcmNh cl9kdV9hdG9taWNfY29tcGxldGUoc3RydWN0IHJjYXJfZHVfY29tbWl0ICpjb21taXQpCj4KPiAg ICAgICAgIGRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgb2xkX3N0YXRlKTsK Pgo+IC0gICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVlKG9sZF9zdGF0ZSk7Cj4gKyAgICAgICBk cm1fYXRvbWljX3N0YXRlX3B1dChvbGRfc3RhdGUpOwo+Cj4gICAgICAgICAvKiBDb21wbGV0ZSB0 aGUgY29tbWl0LCB3YWtlIHVwIGFueSB3YWl0ZXIuICovCj4gICAgICAgICBzcGluX2xvY2soJnJj ZHUtPmNvbW1pdC53YWl0LmxvY2spOwo+IEBAIC0zMzAsNiArMzMwLDcgQEAgc3RhdGljIGludCBy Y2FyX2R1X2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgICAgICAgIC8q IFN3YXAgdGhlIHN0YXRlLCB0aGlzIGlzIHRoZSBwb2ludCBvZiBubyByZXR1cm4uICovCj4gICAg ICAgICBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKHN0YXRlLCB0cnVlKTsKPgo+ICsgICAg ICAgZHJtX2F0b21pY19zdGF0ZV9nZXQoc3RhdGUpOwo+ICAgICAgICAgaWYgKG5vbmJsb2NrKQo+ ICAgICAgICAgICAgICAgICBzY2hlZHVsZV93b3JrKCZjb21taXQtPndvcmspOwo+ICAgICAgICAg ZWxzZQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9kcnYuYyBiL2RyaXZl cnMvZ3B1L2RybS9zdGkvc3RpX2Rydi5jCj4gaW5kZXggN2NkMzgwNGM2ZGVlLi43YWQ4ZDQyZGJh MjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHJ2LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9kcnYuYwo+IEBAIC0xODQsNyArMTg0LDcgQEAgc3RhdGlj IHZvaWQgc3RpX2F0b21pY19jb21wbGV0ZShzdHJ1Y3Qgc3RpX3ByaXZhdGUgKnByaXZhdGUsCj4g ICAgICAgICBkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl92YmxhbmtzKGRybSwgc3RhdGUpOwo+ Cj4gICAgICAgICBkcm1fYXRvbWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkcm0sIHN0YXRlKTsK PiAtICAgICAgIGRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4gKyAgICAgICBkcm1fYXRv bWljX3N0YXRlX3B1dChzdGF0ZSk7Cj4gIH0KPgo+ICBzdGF0aWMgdm9pZCBzdGlfYXRvbWljX3dv cmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+IEBAIC0yMTcsNiArMjE3LDcgQEAgc3RhdGlj IGludCBzdGlfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+Cj4gICAgICAg ICBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKHN0YXRlLCB0cnVlKTsKPgo+ICsgICAgICAg ZHJtX2F0b21pY19zdGF0ZV9nZXQoc3RhdGUpOwo+ICAgICAgICAgaWYgKG5vbmJsb2NrKQo+ICAg ICAgICAgICAgICAgICBzdGlfYXRvbWljX3NjaGVkdWxlKHByaXZhdGUsIHN0YXRlKTsKPiAgICAg ICAgIGVsc2UKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5jIGIvZHJp dmVycy9ncHUvZHJtL3RlZ3JhL2RybS5jCj4gaW5kZXggNGI5ZjFjNzljZDdiLi40Y2E4ZjJmM2M0 NmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3RlZ3JhL2RybS5jCj4gQEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIHZvaWQg dGVncmFfYXRvbWljX2NvbXBsZXRlKHN0cnVjdCB0ZWdyYV9kcm0gKnRlZ3JhLAo+ICAgICAgICAg ZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfdmJsYW5rcyhkcm0sIHN0YXRlKTsKPgo+ICAgICAg ICAgZHJtX2F0b21pY19oZWxwZXJfY2xlYW51cF9wbGFuZXMoZHJtLCBzdGF0ZSk7Cj4gLSAgICAg ICBkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+ICsgICAgICAgZHJtX2F0b21pY19zdGF0 ZV9wdXQoc3RhdGUpOwo+ICB9Cj4KPiAgc3RhdGljIHZvaWQgdGVncmFfYXRvbWljX3dvcmsoc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+IEBAIC05Niw2ICs5Niw3IEBAIHN0YXRpYyBpbnQgdGVn cmFfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+Cj4gICAgICAgICBkcm1f YXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKHN0YXRlLCB0cnVlKTsKPgo+ICsgICAgICAgZHJtX2F0 b21pY19zdGF0ZV9nZXQoc3RhdGUpOwo+ICAgICAgICAgaWYgKG5vbmJsb2NrKQo+ICAgICAgICAg ICAgICAgICB0ZWdyYV9hdG9taWNfc2NoZWR1bGUodGVncmEsIHN0YXRlKTsKPiAgICAgICAgIGVs c2UKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZHJ2LmMgYi9k cml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19kcnYuYwo+IGluZGV4IGY4ODkyZTlhZDE2OS4u MTlhYmY2NWYwZmYzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2Rj X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZHJ2LmMKPiBAQCAt MTQzLDggKzE0Myw2IEBAIHN0YXRpYyBpbnQgdGlsY2RjX2NvbW1pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+Cj4gICAgICAgICBkcm1fYXRvbWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYs IHN0YXRlKTsKPgo+IC0gICAgICAgZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPiAtCj4g ICAgICAgICByZXR1cm4gMDsKPiAgfQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 YzQvdmM0X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfa21zLmMKPiBpbmRleCBjMWY2 NWM2YzhlNjAuLmYzMWY3MmFmODU1MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0 L3ZjNF9rbXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2ttcy5jCj4gQEAgLTYx LDcgKzYxLDcgQEAgdmM0X2F0b21pY19jb21wbGV0ZV9jb21taXQoc3RydWN0IHZjNF9jb21taXQg KmMpCj4KPiAgICAgICAgIGRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgc3Rh dGUpOwo+Cj4gLSAgICAgICBkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+ICsgICAgICAg ZHJtX2F0b21pY19zdGF0ZV9wdXQoc3RhdGUpOwo+Cj4gICAgICAgICB1cCgmdmM0LT5hc3luY19t b2Rlc2V0KTsKPgo+IEBAIC0xNzMsNiArMTczLDcgQEAgc3RhdGljIGludCB2YzRfYXRvbWljX2Nv bW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgICAgICAgICogY3VycmVudCBsYXlvdXQu Cj4gICAgICAgICAgKi8KPgo+ICsgICAgICAgZHJtX2F0b21pY19zdGF0ZV9nZXQoc3RhdGUpOwo+ ICAgICAgICAgaWYgKG5vbmJsb2NrKSB7Cj4gICAgICAgICAgICAgICAgIHZjNF9xdWV1ZV9zZXFu b19jYihkZXYsICZjLT5jYiwgd2FpdF9zZXFubywKPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZjNF9hdG9taWNfY29tcGxldGVfY29tbWl0X3NlcW5vX2NiKTsKPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5o Cj4gaW5kZXggODU2YTljODVhODM4Li4xYzYyMTBlN2E3OTEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVk ZS9kcm0vZHJtX2F0b21pYy5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4gQEAg LTM5LDcgKzM5LDMzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkcm1fY3J0Y19jb21taXRfZ2V0KHN0 cnVjdCBkcm1fY3J0Y19jb21taXQgKmNvbW1pdCkKPiAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KiBfX211c3RfY2hlY2sKPiAgZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKPiAgdm9pZCBkcm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSk7Cj4gLXZvaWQgZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gKwo+ICsvKioKPiArICogZHJtX2F0b21pY19zdGF0ZV9n ZXQgLSBhY3F1aXJlIGEgcmVmZXJlbmNlIHRvIHRoZSBhdG9taWMgc3RhdGUKPiArICogQHN0YXRl OiBUaGUgYXRvbWljIHN0YXRlCj4gKyAqCj4gKyAqIFJldHVybnMgYSBuZXcgcmVmZXJlbmNlIHRv IHRoZSBAc3RhdGUKPiArICovCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKgo+ICtkcm1fYXRvbWljX3N0YXRlX2dldChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpCj4gK3sKPiArICAgICAgIGtyZWZfZ2V0KCZzdGF0ZS0+cmVmKTsKPiArICAgICAgIHJldHVy biBzdGF0ZTsKPiArfQo+ICsKPiArdm9pZCBfX2RybV9hdG9taWNfc3RhdGVfZnJlZShzdHJ1Y3Qg a3JlZiAqcmVmKTsKPiArCj4gKy8qKgo+ICsgKiBkcm1fYXRvbWljX3N0YXRlX3B1dCAtIHJlbGVh c2UgYSByZWZlcmVuY2UgdG8gdGhlIGF0b21pYyBzdGF0ZQo+ICsgKiBAc3RhdGU6IFRoZSBhdG9t aWMgc3RhdGUKPiArICoKPiArICogVGhpcyByZWxlYXNlcyBhIHJlZmVyZW5jZSB0byBAc3RhdGUg d2hpY2ggaXMgZnJlZWQgYWZ0ZXIgcmVtb3ZpbmcgdGhlCj4gKyAqIGZpbmFsIHJlZmVyZW5jZS4g Tm8gbG9ja2luZyByZXF1aXJlZCBhbmQgY2FsbGFibGUgZnJvbSBhbnkgY29udGV4dC4KPiArICov Cj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBkcm1fYXRvbWljX3N0YXRlX3B1dChzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpCj4gK3sKPiArICAgICAgIGtyZWZfcHV0KCZzdGF0ZS0+cmVmLCBf X2RybV9hdG9taWNfc3RhdGVfZnJlZSk7Cj4gK30KPgo+ICBpbnQgIF9fbXVzdF9jaGVjawo+ICBk cm1fYXRvbWljX3N0YXRlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMu aCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBpbmRleCAzNWIxM2ZjNmJiYzEuLjgyZWQ4MGU5 N2U4YiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gKysrIGIvaW5jbHVk ZS9kcm0vZHJtX2NydGMuaAo+IEBAIC0xMTQzLDYgKzExNDMsNyBAQCBzdHJ1Y3QgX19kcm1fY29u bm5lY3RvcnNfc3RhdGUgewo+Cj4gIC8qKgo+ICAgKiBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAt IHRoZSBnbG9iYWwgc3RhdGUgb2JqZWN0IGZvciBhdG9taWMgdXBkYXRlcwo+ICsgKiBAcmVmOiBj b3VudCBvZiBhbGwgcmVmZXJlbmNlcyB0byB0aGlzIHN0YXRlCj4gICAqIEBkZXY6IHBhcmVudCBE Uk0gZGV2aWNlCj4gICAqIEBhbGxvd19tb2Rlc2V0OiBhbGxvdyBmdWxsIG1vZGVzZXQKPiAgICog QGxlZ2FjeV9jdXJzb3JfdXBkYXRlOiBoaW50IHRvIGVuZm9yY2UgbGVnYWN5IGN1cnNvciBJT0NU TCBzZW1hbnRpY3MKPiBAQCAtMTE1NCw2ICsxMTU1LDggQEAgc3RydWN0IF9fZHJtX2Nvbm5uZWN0 b3JzX3N0YXRlIHsKPiAgICogQGFjcXVpcmVfY3R4OiBhY3F1aXJlIGNvbnRleHQgZm9yIHRoaXMg YXRvbWljIG1vZGVzZXQgc3RhdGUgdXBkYXRlCj4gICAqLwo+ICBzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSB7Cj4gKyAgICAgICBzdHJ1Y3Qga3JlZiByZWY7Cj4gKwo+ICAgICAgICAgc3RydWN0IGRy bV9kZXZpY2UgKmRldjsKPiAgICAgICAgIGJvb2wgYWxsb3dfbW9kZXNldCA6IDE7Cj4gICAgICAg ICBib29sIGxlZ2FjeV9jdXJzb3JfdXBkYXRlIDogMTsKPiAtLQo+IDIuOS4zCj4KPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWls aW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==