From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/3] [v2] drm: Add new DRM_IOCTL_MODE_GETPLANE2 Date: Wed, 25 Jan 2017 17:28:41 +0200 Message-ID: <20170125152841.GV31595@intel.com> References: <20170112005118.19146-2-ben@bwidawsk.net> <20170125052049.10369-1-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170125052049.10369-1-ben@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ben Widawsky Cc: Intel GFX , "Kristian H. Kristensen" , DRI Development List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKYW4gMjQsIDIwMTcgYXQgMDk6MjA6NDlQTSAtMDgwMCwgQmVuIFdpZGF3c2t5IHdy b3RlOgo+IE9yaWdpbmFsbHkgYmFzZWQgb2ZmIG9mIGEgcGF0Y2ggYnkgS3Jpc3RpYW4uCj4gCj4g VGhpcyBuZXcgaW9jdGwgZXh0ZW5kcyBEUk1fSU9DVExfTU9ERV9HRVRQTEFORSwgYnkgcmV0dXJu aW5nIGluZm9ybWF0aW9uCj4gYWJvdXQgdGhlIG1vZGlmaWVycyB0aGF0IHdpbGwgd29yayB3aXRo IGVhY2ggZm9ybWF0Lgo+IAo+IEl0J3MgbW9kaWZpZWQgZnJvbSBLcmlzdGlhbidzIHBhdGNoIGlu IHRoYXQgdGhlIG1vZGlmaWVycyBhbmQgZm9ybWF0cwo+IGFyZSBzZXR1cCBieSB0aGUgZHJpdmVy LCBhbmQgdGhlbiBhIGNhbGxiYWNrIGlzIHVzZWQgdG8gY3JlYXRlIHRoZQo+IGZvcm1hdCBsaXN0 LiBUaGUgTE9DIHdhcyBlbm91Z2ggZGlmZmVyZW5jZSB0aGF0IEkgZG9uJ3QgdGhpbmsgaXQgbWFk ZQo+IHNlbnNlIHRvIGxlYXZlIGhpcyBhdXRob3JzaGlwLCBidXQgdGhlIG5ldyBVQUJJIHdhcyBw cmltYXJpbHkgaGlzIGlkZWEuCj4gCj4gQWRkaXRpb25hbGx5LCBJIGhpdCBhIGNvdXBsZSBvZiBk cml2ZXJzIHdoaWNoIEtyaXN0aWFuIG1pc3NlZCB1cGRhdGluZy4KPiAKPiBJdCBhbHNvIGNvbnRh aW5zIGEgY2hhbmdlIHJlcXVlc3RlZCBieSBEYW5pZWwgdG8gbWFrZSB0aGUgbW9kaWZpZXJzCj4g YXJyYXkgYSBzZW50aW5lbCBiYXNlZCBzdHJ1Y3R1cmUgaW5zdGVhZCBvZiBhIHNpemVkIG9uZS4g VXBvbiBkaXNjdXNzaW9uCj4gb24gSVJDLCBpdCB3YXMgZGV0ZXJtaW5lZCB0aGF0IGhhdmluZyBh biBpbnZhbGlkIG1vZGlmaWVyIG1pZ2h0IG1ha2UKPiBzZW5zZSBpbiBnZW5lcmFsIGFzIHdlbGwu Cj4gCj4gdjI6Cj4gICAtIE1ha2UgZm9ybWF0cyB1aW50MzJfdCwgYW5kIHVzZSBhbiBvZmZzZXQs IHNlZSB0aGUgY29tbWVudCBpbiB0aGUKPiAgIHBhdGNoLiBBZGQgYSBXQVJOX09OIGFuZCBlYXJs eSBiYWlsIGZvciB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gMzIKPiAgIGZvcm1hdHMuIChSb2Ip Cj4gICAtIE5hbWUgZm9ybWF0X21vZGlmaWVycyBhbm5vdGF0aW9uIHByb3Blcmx5IChWaWxsZSkK PiAgIC0gUmVtb3ZlIERSTV9ERUJVR19LTVMgKFZpbGxlKQo+ICAgLSBtYWtlIGZsYWdzIGNvbWUg YmVmb3JlIGNvdW50IGluIHN0cnVjdCAoVmlsbGUpCj4gCj4gQ2M6IFJvYiBDbGFyayA8cm9iZGNs YXJrQGdtYWlsLmNvbT4KPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiBDYzogRGFuaWVsIFN0b25lIDxkYW5pZWxAZm9vaXNoYmFyLm9yZz4KPiBD YzogIktyaXN0aWFuIEguIEtyaXN0ZW5zZW4iIDxob2Vnc2JlcmdAZ21haWwuY29tPgo+IFJlZmVy ZW5jZXM6IGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcGF0Y2gvOTQ4MjM5My8KPiBTaWdu ZWQtb2ZmLWJ5OiBCZW4gV2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+Cj4gLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9hcmMvYXJjcGd1X2NydGMuYyAgICAgICAgICAgICAgIHwgIDEgKwo+ICBkcml2 ZXJzL2dwdS9kcm0vYXJtL2hkbGNkX2NydGMuYyAgICAgICAgICAgICAgICB8ICAxICsKPiAgZHJp dmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMgICAgICAgICAgICAgfCAgMiArLQo+ICBk cml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9jcnRjLmMgICAgICAgICAgICB8ICAxICsKPiAg ZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfb3ZlcmxheS5jICAgICAgICAgfCAgMSArCj4g IGRyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19wbGFuZS5jIHwgIDQgKy0K PiAgZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzZXRfaGVscGVyLmMgICAgICAgICAgICB8ICAx ICsKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jICAgICAgICAgICAgICAgICAgICAgfCA2 NSArKysrKysrKysrKysrKysrKysrKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxl X2ttc19oZWxwZXIuYyAgICAgICAgIHwgIDMgKysKPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX3BsYW5lLmMgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vZnNsLWRj dS9mc2xfZGN1X2RybV9wbGFuZS5jICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9oaXNp bGljb24vaGlibWMvaGlibWNfZHJtX2RlLmMgIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaGlz aWxpY29uL2tpcmluL2tpcmluX2RybV9hZGUuYyB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICAgICAgIHwgIDcgKystCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nwcml0ZS5jICAgICAgICAgICAgIHwgIDQgKy0KPiAgZHJpdmVycy9ncHUv ZHJtL2lteC9pcHV2My1wbGFuZS5jICAgICAgICAgICAgICAgfCAgNCArLQo+ICBkcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMv Z3B1L2RybS9tZXNvbi9tZXNvbl9wbGFuZS5jICAgICAgICAgICAgIHwgIDEgKwo+ICBkcml2ZXJz L2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfcGxhbmUuYyAgICAgICB8ICAyICstCj4gIGRyaXZl cnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jICAgICAgIHwgIDIgKy0KPiAgZHJp dmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Rydi5jICAgICAgICAgICAgICAgfCAgMiArLQo+ICBk cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYyAgICAgICAgICB8ICA1ICstCj4g IGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfcGxhbmUuYyAgICAgICAgICAgIHwgIDMgKy0K PiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9wbGFuZS5jICAgICAgICAgfCAgNCAr LQo+ICBkcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3ZzcC5jICAgICAgICAgICB8ICA1 ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgICAgIHwg IDQgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3Vyc29yLmMgICAgICAgICAgICAgICAg fCAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2dkcC5jICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaHF2ZHAuYyAgICAgICAgICAgICAg ICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfbGF5ZXIuYyAgICAgICAg ICAgICB8ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMgICAgICAgICAgICAgICAg ICAgICAgfCAxMiArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5jICAgICAg ICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9wbGFu ZS5jICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jICAg ICAgICAgICAgICAgICAgfCAgMiArLQo+ICBpbmNsdWRlL2RybS9kcm1fcGxhbmUuaCAgICAgICAg ICAgICAgICAgICAgICAgICB8IDIxICsrKysrKystCj4gIGluY2x1ZGUvZHJtL2RybV9zaW1wbGVf a21zX2hlbHBlci5oICAgICAgICAgICAgIHwgIDEgKwo+ICBpbmNsdWRlL3VhcGkvZHJtL2RybS5o ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKPiAgaW5jbHVkZS91YXBpL2RybS9kcm1f Zm91cmNjLmggICAgICAgICAgICAgICAgICAgfCAxMSArKysrKwo+ICBpbmNsdWRlL3VhcGkvZHJt L2RybV9tb2RlLmggICAgICAgICAgICAgICAgICAgICB8IDM2ICsrKysrKysrKysrKysrCj4gIDQw IGZpbGVzIGNoYW5nZWQsIDE4OSBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FyYy9hcmNwZ3VfY3J0Yy5jIGIvZHJpdmVycy9n cHUvZHJtL2FyYy9hcmNwZ3VfY3J0Yy5jCj4gaW5kZXggYWQ5YTk1OTE2ZjFmLi5jZDhhMjRjN2M2 N2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FyYy9hcmNwZ3VfY3J0Yy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FyYy9hcmNwZ3VfY3J0Yy5jCj4gQEAgLTIxOCw2ICsyMTgsNyBA QCBzdGF0aWMgc3RydWN0IGRybV9wbGFuZSAqYXJjX3BndV9wbGFuZV9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkcm0pCj4gIAo+ICAJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRybSwg cGxhbmUsIDB4ZmYsICZhcmNfcGd1X3BsYW5lX2Z1bmNzLAo+ICAJCQkJICAgICAgIGZvcm1hdHMs IEFSUkFZX1NJWkUoZm9ybWF0cyksCj4gKwkJCQkgICAgICAgTlVMTCwKPiAgCQkJCSAgICAgICBE Uk1fUExBTkVfVFlQRV9QUklNQVJZLCBOVUxMKTsKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIEVS Ul9QVFIocmV0KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9jcnRj LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2hkbGNkX2NydGMuYwo+IGluZGV4IDIwZWJmYjRmYmRm YS4uODlmZGVkODgwODA3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vaGRsY2Rf Y3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9jcnRjLmMKPiBAQCAtMjgz LDYgKzI4Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX3BsYW5lICpoZGxjZF9wbGFuZV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkcm0pCj4gIAo+ICAJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9p bml0KGRybSwgcGxhbmUsIDB4ZmYsICZoZGxjZF9wbGFuZV9mdW5jcywKPiAgCQkJCSAgICAgICBm b3JtYXRzLCBBUlJBWV9TSVpFKGZvcm1hdHMpLAo+ICsJCQkJICAgICAgIE5VTEwsCj4gIAkJCQkg ICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwgTlVMTCk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJ ZGV2bV9rZnJlZShkcm0tPmRldiwgcGxhbmUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYXJtL21hbGlkcF9wbGFuZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5l cy5jCj4gaW5kZXggZWZmMmZlNDdlMjZhLi45NGRiY2JjOWFkOGYgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YXJtL21hbGlkcF9wbGFuZXMuYwo+IEBAIC0yODMsNyArMjgzLDcgQEAgaW50IG1hbGlkcF9kZV9w bGFuZXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQo+ICAJCQkJCURSTV9QTEFORV9UWVBF X09WRVJMQVk7Cj4gIAkJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRybSwgJnBsYW5l LT5iYXNlLCBjcnRjcywKPiAgCQkJCQkgICAgICAgJm1hbGlkcF9kZV9wbGFuZV9mdW5jcywgZm9y bWF0cywKPiAtCQkJCQkgICAgICAgbiwgcGxhbmVfdHlwZSwgTlVMTCk7Cj4gKwkJCQkJICAgICAg IG4sIE5VTEwsIHBsYW5lX3R5cGUsIE5VTEwpOwo+ICAJCWlmIChyZXQgPCAwKQo+ICAJCQlnb3Rv IGNsZWFudXA7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFk YV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9jcnRjLmMKPiBpbmRleCBl NjJlZTQ0OThjZTQuLjM5MzMwMTQ1YmEyYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YXJtYWRhL2FybWFkYV9jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFk YV9jcnRjLmMKPiBAQCAtMTI1MCw2ICsxMjUwLDcgQEAgc3RhdGljIGludCBhcm1hZGFfZHJtX2Ny dGNfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCBkZXZpY2UgKmRldiwKPiAg CQkJCSAgICAgICAmYXJtYWRhX3ByaW1hcnlfcGxhbmVfZnVuY3MsCj4gIAkJCQkgICAgICAgYXJt YWRhX3ByaW1hcnlfZm9ybWF0cywKPiAgCQkJCSAgICAgICBBUlJBWV9TSVpFKGFybWFkYV9wcmlt YXJ5X2Zvcm1hdHMpLAo+ICsJCQkJICAgICAgIE5VTEwsCj4gIAkJCQkgICAgICAgRFJNX1BMQU5F X1RZUEVfUFJJTUFSWSwgTlVMTCk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJa2ZyZWUocHJpbWFyeSk7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX292ZXJsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX292ZXJsYXkuYwo+IGluZGV4IDM0Y2I3M2Qw ZGI3Ny4uNmExY2E4YWE4ZTE2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEv YXJtYWRhX292ZXJsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX292 ZXJsYXkuYwo+IEBAIC00NTgsNiArNDU4LDcgQEAgaW50IGFybWFkYV9vdmVybGF5X3BsYW5lX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGNydGNzKQo+ICAJCQkJ ICAgICAgICZhcm1hZGFfb3ZsX3BsYW5lX2Z1bmNzLAo+ICAJCQkJICAgICAgIGFybWFkYV9vdmxf Zm9ybWF0cywKPiAgCQkJCSAgICAgICBBUlJBWV9TSVpFKGFybWFkYV9vdmxfZm9ybWF0cyksCj4g KwkJCQkgICAgICAgTlVMTCwKPiAgCQkJCSAgICAgICBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLCBO VUxMKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlrZnJlZShkcGxhbmUpOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfcGxhbmUuYyBiL2RyaXZlcnMv Z3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19wbGFuZS5jCj4gaW5kZXggYmQyNzkxYzRi MDAyLi5mMTJjZWMwYmM1OGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhs Y2RjL2F0bWVsX2hsY2RjX3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxj ZGMvYXRtZWxfaGxjZGNfcGxhbmUuYwo+IEBAIC0xMDM4LDcgKzEwMzgsOSBAQCBhdG1lbF9obGNk Y19wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXJldCA9IGRybV91bml2 ZXJzYWxfcGxhbmVfaW5pdChkZXYsICZwbGFuZS0+YmFzZSwgMCwKPiAgCQkJCSAgICAgICAmbGF5 ZXJfcGxhbmVfZnVuY3MsCj4gIAkJCQkgICAgICAgZGVzYy0+Zm9ybWF0cy0+Zm9ybWF0cywKPiAt CQkJCSAgICAgICBkZXNjLT5mb3JtYXRzLT5uZm9ybWF0cywgdHlwZSwgTlVMTCk7Cj4gKwkJCQkg ICAgICAgZGVzYy0+Zm9ybWF0cy0+bmZvcm1hdHMsCj4gKwkJCQkgICAgICAgTlVMTCwKPiArCQkJ CSAgICAgICB0eXBlLCBOVUxMKTsKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIEVSUl9QVFIocmV0 KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1faW9jdGwuYwo+IGluZGV4IGE3YzYxYzIzNjg1YS4uYzgyMGQ5OWQ5MjMx IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1faW9jdGwuYwo+IEBAIC02MTQsNyArNjE0LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBkcm1faW9jdGxzW10gPSB7Cj4gIAlEUk1fSU9DVExfREVG KERSTV9JT0NUTF9NT0RFX0dFVFBMQU5FUkVTT1VSQ0VTLCBkcm1fbW9kZV9nZXRwbGFuZV9yZXMs IERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCj4gIAlEUk1fSU9DVExfREVGKERSTV9J T0NUTF9NT0RFX0dFVENSVEMsIGRybV9tb2RlX2dldGNydGMsIERSTV9DT05UUk9MX0FMTE9XfERS TV9VTkxPQ0tFRCksCj4gIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX1NFVENSVEMsIGRy bV9tb2RlX3NldGNydGMsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VE KSwKPiAtCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUUExBTkUsIGRybV9tb2RlX2dl dHBsYW5lLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+ICsJRFJNX0lPQ1RMX0RF RihEUk1fSU9DVExfTU9ERV9HRVRQTEFORTIsIGRybV9tb2RlX2dldHBsYW5lLCBEUk1fQ09OVFJP TF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+ICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9T RVRQTEFORSwgZHJtX21vZGVfc2V0cGxhbmUsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8 RFJNX1VOTE9DS0VEKSwKPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQ1VSU09SLCBk cm1fbW9kZV9jdXJzb3JfaW9jdGwsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VO TE9DS0VEKSwKPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUR0FNTUEsIGRybV9t b2RlX2dhbW1hX2dldF9pb2N0bCwgRFJNX1VOTE9DS0VEKSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rl c2V0X2hlbHBlci5jCj4gaW5kZXggMmIzMzgyNWYyZjkzLi45Y2IxZWVkZTBiNGQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5jCj4gQEAgLTEyNCw2ICsxMjQsNyBAQCBzdGF0 aWMgc3RydWN0IGRybV9wbGFuZSAqY3JlYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgCQkJCSAgICAgICAmZHJtX3ByaW1hcnlfaGVscGVyX2Z1bmNzLAo+ICAJCQkJ ICAgICAgIHNhZmVfbW9kZXNldF9mb3JtYXRzLAo+ICAJCQkJICAgICAgIEFSUkFZX1NJWkUoc2Fm ZV9tb2Rlc2V0X2Zvcm1hdHMpLAo+ICsJCQkJICAgICAgIE5VTEwsCj4gIAkJCQkgICAgICAgRFJN X1BMQU5FX1RZUEVfUFJJTUFSWSwgTlVMTCk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJa2ZyZWUocHJp bWFyeSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+IGluZGV4IDdiNzI3NWYwYzJkZi4uMTg4ZTc0MjhiODA3 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+IEBAIC03MCw2ICs3MCw3IEBAIHN0YXRpYyB1bnNpZ25l ZCBpbnQgZHJtX251bV9wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgICogQGZ1bmNz OiBjYWxsYmFja3MgZm9yIHRoZSBuZXcgcGxhbmUKPiAgICogQGZvcm1hdHM6IGFycmF5IG9mIHN1 cHBvcnRlZCBmb3JtYXRzIChEUk1fRk9STUFUXF9cKikKPiAgICogQGZvcm1hdF9jb3VudDogbnVt YmVyIG9mIGVsZW1lbnRzIGluIEBmb3JtYXRzCj4gKyAqIEBmb3JtYXRfbW9kaWZpZXJzOiBhcnJh eSBvZiBzdHJ1Y3QgZHJtX2Zvcm1hdCBtb2RpZmllcnMgdGVybWluYXRlZCBieSBJTlZBTElECj4g ICAqIEB0eXBlOiB0eXBlIG9mIHBsYW5lIChvdmVybGF5LCBwcmltYXJ5LCBjdXJzb3IpCj4gICAq IEBuYW1lOiBwcmludGYgc3R5bGUgZm9ybWF0IHN0cmluZyBmb3IgdGhlIHBsYW5lIG5hbWUsIG9y IE5VTEwgZm9yIGRlZmF1bHQgbmFtZQo+ICAgKgo+IEBAIC04MiwxMCArODMsMTIgQEAgaW50IGRy bV91bml2ZXJzYWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKPiAgCQkJICAgICB1aW50MzJfdCBwb3NzaWJsZV9jcnRjcywKPiAgCQkJ ICAgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzICpmdW5jcywKPiAgCQkJICAgICBjb25z dCB1aW50MzJfdCAqZm9ybWF0cywgdW5zaWduZWQgaW50IGZvcm1hdF9jb3VudCwKPiArCQkJICAg ICBjb25zdCB1aW50NjRfdCAqZm9ybWF0X21vZGlmaWVycywKPiAgCQkJICAgICBlbnVtIGRybV9w bGFuZV90eXBlIHR5cGUsCj4gIAkJCSAgICAgY29uc3QgY2hhciAqbmFtZSwgLi4uKQo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKPiAr CXVuc2lnbmVkIGludCBmb3JtYXRfbW9kaWZpZXJfY291bnQgPSAwOwo+ICAJaW50IHJldDsKPiAg Cj4gIAlyZXQgPSBkcm1fbW9kZV9vYmplY3RfZ2V0KGRldiwgJnBsYW5lLT5iYXNlLCBEUk1fTU9E RV9PQkpFQ1RfUExBTkUpOwo+IEBAIC0xMDUsNiArMTA4LDI0IEBAIGludCBkcm1fdW5pdmVyc2Fs X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4gIAl9Cj4gIAo+ICsJaWYgKGZvcm1hdF9tb2RpZmll cnMpIHsKPiArCQljb25zdCB1aW50NjRfdCAqdGVtcF9tb2RpZmllcnMgPSBmb3JtYXRfbW9kaWZp ZXJzOwo+ICsJCXdoaWxlICgqdGVtcF9tb2RpZmllcnMrKyAhPSBEUk1fRk9STUFUX01PRF9JTlZB TElEKQo+ICsJCQlmb3JtYXRfbW9kaWZpZXJfY291bnQrKzsKPiArCX0KPiArCj4gKwlwbGFuZS0+ bW9kaWZpZXJfY291bnQgPSBmb3JtYXRfbW9kaWZpZXJfY291bnQ7Cj4gKwlwbGFuZS0+bW9kaWZp ZXJzID0ga21hbGxvY19hcnJheShmb3JtYXRfbW9kaWZpZXJfY291bnQsCj4gKwkJCQkJIHNpemVv Zihmb3JtYXRfbW9kaWZpZXJzWzBdKSwKPiArCQkJCQkgR0ZQX0tFUk5FTCk7Cj4gKwo+ICsJaWYg KGZvcm1hdF9tb2RpZmllcl9jb3VudCAmJiAhcGxhbmUtPm1vZGlmaWVycykgewo+ICsJCURSTV9E RUJVR19LTVMoIm91dCBvZiBtZW1vcnkgd2hlbiBhbGxvY2F0aW5nIHBsYW5lXG4iKTsKPiArCQlr ZnJlZShwbGFuZS0+Zm9ybWF0X3R5cGVzKTsKPiArCQlkcm1fbW9kZV9vYmplY3RfdW5yZWdpc3Rl cihkZXYsICZwbGFuZS0+YmFzZSk7Cj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwl9Cj4gKwo+ICAJ aWYgKG5hbWUpIHsKPiAgCQl2YV9saXN0IGFwOwo+ICAKPiBAQCAtMTE3LDEyICsxMzgsMTUgQEAg aW50IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCX0KPiAgCWlmICghcGxhbmUtPm5hbWUpIHsKPiAgCQlr ZnJlZShwbGFuZS0+Zm9ybWF0X3R5cGVzKTsKPiArCQlrZnJlZShwbGFuZS0+bW9kaWZpZXJzKTsK PiAgCQlkcm1fbW9kZV9vYmplY3RfdW5yZWdpc3RlcihkZXYsICZwbGFuZS0+YmFzZSk7Cj4gIAkJ cmV0dXJuIC1FTk9NRU07Cj4gIAl9Cj4gIAo+ICAJbWVtY3B5KHBsYW5lLT5mb3JtYXRfdHlwZXMs IGZvcm1hdHMsIGZvcm1hdF9jb3VudCAqIHNpemVvZih1aW50MzJfdCkpOwo+ICAJcGxhbmUtPmZv cm1hdF9jb3VudCA9IGZvcm1hdF9jb3VudDsKPiArCW1lbWNweShwbGFuZS0+bW9kaWZpZXJzLCBm b3JtYXRfbW9kaWZpZXJzLAo+ICsJICAgICAgIGZvcm1hdF9tb2RpZmllcl9jb3VudCAqIHNpemVv Zihmb3JtYXRfbW9kaWZpZXJzWzBdKSk7Cj4gIAlwbGFuZS0+cG9zc2libGVfY3J0Y3MgPSBwb3Nz aWJsZV9jcnRjczsKPiAgCXBsYW5lLT50eXBlID0gdHlwZTsKPiAgCj4gQEAgLTIwNSw3ICsyMjks OCBAQCBpbnQgZHJtX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCj4gIAo+ICAJdHlwZSA9IGlzX3ByaW1hcnkgPyBEUk1fUExBTkVfVFlQ RV9QUklNQVJZIDogRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWTsKPiAgCXJldHVybiBkcm1fdW5pdmVy c2FsX3BsYW5lX2luaXQoZGV2LCBwbGFuZSwgcG9zc2libGVfY3J0Y3MsIGZ1bmNzLAo+IC0JCQkJ CWZvcm1hdHMsIGZvcm1hdF9jb3VudCwgdHlwZSwgTlVMTCk7Cj4gKwkJCQkJZm9ybWF0cywgZm9y bWF0X2NvdW50LAo+ICsJCQkJCU5VTEwsIHR5cGUsIE5VTEwpOwo+ICB9Cj4gIEVYUE9SVF9TWU1C T0woZHJtX3BsYW5lX2luaXQpOwo+ICAKPiBAQCAtMjI0LDYgKzI0OSw3IEBAIHZvaWQgZHJtX3Bs YW5lX2NsZWFudXAoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gIAlkcm1fbW9kZXNldF9sb2Nr X2ZpbmkoJnBsYW5lLT5tdXRleCk7Cj4gIAo+ICAJa2ZyZWUocGxhbmUtPmZvcm1hdF90eXBlcyk7 Cj4gKwlrZnJlZShwbGFuZS0+bW9kaWZpZXJzKTsKPiAgCWRybV9tb2RlX29iamVjdF91bnJlZ2lz dGVyKGRldiwgJnBsYW5lLT5iYXNlKTsKPiAgCj4gIAlCVUdfT04obGlzdF9lbXB0eSgmcGxhbmUt PmhlYWQpKTsKPiBAQCAtMzgwLDEyICs0MDYsMTUgQEAgaW50IGRybV9tb2RlX2dldHBsYW5lX3Jl cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICBpbnQgZHJtX21vZGVfZ2V0 cGxhbmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCQkgICAgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAgewo+IC0Jc3RydWN0IGRybV9tb2RlX2dldF9wbGFu ZSAqcGxhbmVfcmVzcCA9IGRhdGE7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfZ2V0X3BsYW5lMiAqcGxh bmVfcmVzcCA9IGRhdGE7Cj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiAgCXVpbnQzMl90 IF9fdXNlciAqZm9ybWF0X3B0cjsKPiArCXN0cnVjdCBkcm1fZm9ybWF0X21vZGlmaWVyIF9fdXNl ciAqbW9kaWZpZXJfcHRyOwo+ICAKPiAgCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYs IERSSVZFUl9NT0RFU0VUKSkKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiArCWlmIChwbGFuZV9yZXNw LT5mbGFncykKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gIAlwbGFuZSA9IGRybV9wbGFuZV9m aW5kKGRldiwgcGxhbmVfcmVzcC0+cGxhbmVfaWQpOwo+ICAJaWYgKCFwbGFuZSkKPiBAQCAtNDI2 LDYgKzQ1NSwzOCBAQCBpbnQgZHJtX21vZGVfZ2V0cGxhbmUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKPiAgCX0KPiAgCXBsYW5lX3Jlc3AtPmNvdW50X2Zvcm1hdF90eXBlcyA9 IHBsYW5lLT5mb3JtYXRfY291bnQ7Cj4gIAo+ICsJaWYgKHBsYW5lLT5tb2RpZmllcl9jb3VudCAm Jgo+ICsJICAgIHBsYW5lX3Jlc3AtPmNvdW50X2Zvcm1hdF9tb2RpZmllcnMgPj0gcGxhbmUtPm1v ZGlmaWVyX2NvdW50KSB7Cj4gKwkJc3RydWN0IGRybV9mb3JtYXRfbW9kaWZpZXIgbW9kOwo+ICsJ CWludCBpOwo+ICsKPiArCQltb2RpZmllcl9wdHIgPSAoc3RydWN0IGRybV9mb3JtYXRfbW9kaWZp ZXIgX191c2VyICopCj4gKwkJCSh1bnNpZ25lZCBsb25nKXBsYW5lX3Jlc3AtPmZvcm1hdF9tb2Rp Zmllcl9wdHI7Cj4gKwo+ICsJCS8qIEJ1aWxkIHRoZSBtYXNrIGZvciBlYWNoIG1vZGlmaWVyICov Cj4gKwkJZm9yIChpID0gMDsgaSA8IHBsYW5lLT5tb2RpZmllcl9jb3VudDsgaSsrKSB7Cj4gKwkJ CWludCBqOwo+ICsJCQltb2QubW9kaWZpZXIgPSBwbGFuZS0+bW9kaWZpZXJzW2ldOwo+ICsJCQlm b3IgKGogPSAwOyBqIDwgcGxhbmUtPmZvcm1hdF9jb3VudDsgaisrKSB7Cj4gKwkJCQlpZiAocGxh bmUtPmZ1bmNzLT5mb3JtYXRfbW9kX3N1cHBvcnRlZCAmJgo+ICsJCQkJICAgIHBsYW5lLT5mdW5j cy0+Zm9ybWF0X21vZF9zdXBwb3J0ZWQocGxhbmUsCj4gKwkJCQkJCQkJICAgICAgIHBsYW5lLT5m b3JtYXRfdHlwZXNbal0sCj4gKwkJCQkJCQkJICAgICAgIHBsYW5lLT5tb2RpZmllcnNbaV0pKSB7 Cj4gKwkJCQkJaWYgKFdBUk5fT04oaiA+IDMxKSkKPiArCQkJCQkJYnJlYWs7CgpJIHdvdWxkIHBy ZWZlciB0byBzZWUgdGhpcyBoYW5kbGVkIGluIHRoZSBwbGFuZSBpbml0IGZ1bmN0aW9uIGluc3Rl YWQuCgo+ICsJCQkJCW1vZC5mb3JtYXRzIHw9IDEgPDwgajsKPiArCQkJCX0KPiArCQkJfQo+ICsK PiArCQkJaWYgKGNvcHlfdG9fdXNlcihtb2RpZmllcl9wdHIsICZtb2QsIHNpemVvZihtb2QpKSkK PiArCQkJCXJldHVybiAtRUZBVUxUOwo+ICsKPiArCQkJbW9kaWZpZXJfcHRyKys7Cj4gKwkJfQo+ ICsJfQo+ICsKPiArCXBsYW5lX3Jlc3AtPmNvdW50X2Zvcm1hdF9tb2RpZmllcnMgPSBwbGFuZS0+ bW9kaWZpZXJfY291bnQ7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuYwo+IGluZGV4IDM1YzVkOTkyOTZiOS4uNmMwOTk2OTRm Y2NiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuYwo+IEBAIC0x OTMsNiArMTkzLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9hdHRh Y2hfYnJpZGdlKTsKPiAgICogQGZ1bmNzOiBjYWxsYmFja3MgZm9yIHRoZSBkaXNwbGF5IHBpcGUg KG9wdGlvbmFsKQo+ICAgKiBAZm9ybWF0czogYXJyYXkgb2Ygc3VwcG9ydGVkIGZvcm1hdHMgKERS TV9GT1JNQVRcX1wqKQo+ICAgKiBAZm9ybWF0X2NvdW50OiBudW1iZXIgb2YgZWxlbWVudHMgaW4g QGZvcm1hdHMKPiArICogQGZvcm1hdF9tb2RpZmllcnM6IGFycmF5IG9mIGZvcm1hdHMgbW9kaWZp ZXJzCj4gICAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciB0byBhdHRhY2ggYW5kIHJlZ2lzdGVyIChv cHRpb25hbCkKPiAgICoKPiAgICogU2V0cyB1cCBhIGRpc3BsYXkgcGlwZWxpbmUgd2hpY2ggY29u c2lzdCBvZiBhIHJlYWxseSBzaW1wbGUKPiBAQCAtMjEzLDYgKzIxNCw3IEBAIGludCBkcm1fc2lt cGxlX2Rpc3BsYXlfcGlwZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCXN0cnVj dCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKPiAgCQkJY29uc3Qgc3RydWN0IGRybV9z aW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzICpmdW5jcywKPiAgCQkJY29uc3QgdWludDMyX3QgKmZv cm1hdHMsIHVuc2lnbmVkIGludCBmb3JtYXRfY291bnQsCj4gKwkJCWNvbnN0IHVpbnQ2NF90ICpm b3JtYXRfbW9kaWZpZXJzLAo+ICAJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ICB7Cj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmcGlwZS0+ZW5jb2RlcjsKPiBA QCAtMjI3LDYgKzIyOSw3IEBAIGludCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gIAlyZXQgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoZGV2 LCBwbGFuZSwgMCwKPiAgCQkJCSAgICAgICAmZHJtX3NpbXBsZV9rbXNfcGxhbmVfZnVuY3MsCj4g IAkJCQkgICAgICAgZm9ybWF0cywgZm9ybWF0X2NvdW50LAo+ICsJCQkJICAgICAgIGZvcm1hdF9t b2RpZmllcnMsCj4gIAkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwgTlVMTCk7Cj4g IAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfZHJtX3BsYW5lLmMKPiBpbmRleCBjMmYxN2YzMGFmYWIuLjc1ZDQ5MjhkZDE5NiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fcGxhbmUuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9wbGFuZS5jCj4gQEAgLTI4NCw3ICsy ODQsNyBAQCBpbnQgZXh5bm9zX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg CQkJCSAgICAgICAmZXh5bm9zX3BsYW5lX2Z1bmNzLAo+ICAJCQkJICAgICAgIGNvbmZpZy0+cGl4 ZWxfZm9ybWF0cywKPiAgCQkJCSAgICAgICBjb25maWctPm51bV9waXhlbF9mb3JtYXRzLAo+IC0J CQkJICAgICAgIGNvbmZpZy0+dHlwZSwgTlVMTCk7Cj4gKwkJCQkgICAgICAgTlVMTCwgY29uZmln LT50eXBlLCBOVUxMKTsKPiAgCWlmIChlcnIpIHsKPiAgCQlEUk1fRVJST1IoImZhaWxlZCB0byBp bml0aWFsaXplIHBsYW5lXG4iKTsKPiAgCQlyZXR1cm4gZXJyOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJt L2ZzbC1kY3UvZnNsX2RjdV9kcm1fcGxhbmUuYwo+IGluZGV4IDBhMjA3MjNhYTZlMS4uOTU1NGIy NDU3NDZlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJt X3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9wbGFu ZS5jCj4gQEAgLTIyNCw3ICsyMjQsNyBAQCBzdHJ1Y3QgZHJtX3BsYW5lICpmc2xfZGN1X2RybV9w cmltYXJ5X2NyZWF0ZV9wbGFuZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCQkJICAgICAg ICZmc2xfZGN1X2RybV9wbGFuZV9mdW5jcywKPiAgCQkJCSAgICAgICBmc2xfZGN1X2RybV9wbGFu ZV9mb3JtYXRzLAo+ICAJCQkJICAgICAgIEFSUkFZX1NJWkUoZnNsX2RjdV9kcm1fcGxhbmVfZm9y bWF0cyksCj4gLQkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwgTlVMTCk7Cj4gKwkJ CQkgICAgICAgTlVMTCwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwgTlVMTCk7Cj4gIAlpZiAocmV0 KSB7Cj4gIAkJa2ZyZWUocHJpbWFyeSk7Cj4gIAkJcHJpbWFyeSA9IE5VTEw7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2RlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kZS5jCj4gaW5kZXggYzY1NTg4 M2QzNjEzLi45MTljYzgwNzgwOWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2hpc2ls aWNvbi9oaWJtYy9oaWJtY19kcm1fZGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGlj b24vaGlibWMvaGlibWNfZHJtX2RlLmMKPiBAQCAtMTgxLDYgKzE4MSw3IEBAIHN0YXRpYyBzdHJ1 Y3QgZHJtX3BsYW5lICpoaWJtY19wbGFuZV9pbml0KHN0cnVjdCBoaWJtY19kcm1fcHJpdmF0ZSAq cHJpdikKPiAgCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChkZXYsIHBsYW5lLCAxLCAm aGlibWNfcGxhbmVfZnVuY3MsCj4gIAkJCQkgICAgICAgY2hhbm5lbF9mb3JtYXRzMSwKPiAgCQkJ CSAgICAgICBBUlJBWV9TSVpFKGNoYW5uZWxfZm9ybWF0czEpLAo+ICsJCQkJICAgICAgIE5VTEws Cj4gIAkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwKPiAgCQkJCSAgICAgICBOVUxM KTsKPiAgCWlmIChyZXQpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNv bi9raXJpbi9raXJpbl9kcm1fYWRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmlu L2tpcmluX2RybV9hZGUuYwo+IGluZGV4IDMwN2Q0NjBhYjY4NC4uYjQzM2I4ZTdjOWNkIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2FkZS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1fYWRlLmMK PiBAQCAtOTExLDcgKzkxMSw3IEBAIHN0YXRpYyBpbnQgYWRlX3BsYW5lX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgc3RydWN0IGFkZV9wbGFuZSAqYXBsYW5lLAo+ICAJCXJldHVybiByZXQ7 Cj4gIAo+ICAJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwgJmFwbGFuZS0+YmFz ZSwgMSwgJmFkZV9wbGFuZV9mdW5jcywKPiAtCQkJCSAgICAgICBmbXRzLCBmbXRzX2NudCwgdHlw ZSwgTlVMTCk7Cj4gKwkJCQkgICAgICAgZm10cywgZm10c19jbnQsIE5VTEwsIHR5cGUsIE5VTEwp Owo+ICAJaWYgKHJldCkgewo+ICAJCURSTV9FUlJPUigiZmFpbCB0byBpbml0IHBsYW5lLCBjaD0l ZFxuIiwgYXBsYW5lLT5jaCk7Cj4gIAkJcmV0dXJuIHJldDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gaW5kZXggYjU0NzMzMmVlZGExLi44NzE1YjEwODNkMWQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTE1MzAzLDYgKzE1MzAzLDggQEAg aW50ZWxfbGVnYWN5X2N1cnNvcl91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJ CQkJICAgICAgc3JjX3gsIHNyY195LCBzcmNfdywgc3JjX2gpOwo+ICB9Cj4gIAo+ICsKPiArCj4g IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVsX2N1cnNvcl9wbGFuZV9m dW5jcyA9IHsKPiAgCS51cGRhdGVfcGxhbmUgPSBpbnRlbF9sZWdhY3lfY3Vyc29yX3VwZGF0ZSwK PiAgCS5kaXNhYmxlX3BsYW5lID0gZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZSwKPiBA QCAtMTUzODcsMTggKzE1Mzg5LDIxIEBAIGludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCj4gIAkJcmV0ID0g ZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KCZkZXZfcHJpdi0+ZHJtLCAmcHJpbWFyeS0+YmFzZSwK PiAgCQkJCQkgICAgICAgMCwgJmludGVsX3BsYW5lX2Z1bmNzLAo+ICAJCQkJCSAgICAgICBpbnRl bF9wcmltYXJ5X2Zvcm1hdHMsIG51bV9mb3JtYXRzLAo+ICsJCQkJCSAgICAgICBOVUxMLAo+ICAJ CQkJCSAgICAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZLAo+ICAJCQkJCSAgICAgICAicGxhbmUg MSVjIiwgcGlwZV9uYW1lKHBpcGUpKTsKPiAgCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikg Pj0gNSB8fCBJU19HNFgoZGV2X3ByaXYpKQo+ICAJCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVf aW5pdCgmZGV2X3ByaXYtPmRybSwgJnByaW1hcnktPmJhc2UsCj4gIAkJCQkJICAgICAgIDAsICZp bnRlbF9wbGFuZV9mdW5jcywKPiAgCQkJCQkgICAgICAgaW50ZWxfcHJpbWFyeV9mb3JtYXRzLCBu dW1fZm9ybWF0cywKPiArCQkJCQkgICAgICAgTlVMTCwKPiAgCQkJCQkgICAgICAgRFJNX1BMQU5F X1RZUEVfUFJJTUFSWSwKPiAgCQkJCQkgICAgICAgInByaW1hcnkgJWMiLCBwaXBlX25hbWUocGlw ZSkpOwo+ICAJZWxzZQo+ICAJCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdCgmZGV2X3By aXYtPmRybSwgJnByaW1hcnktPmJhc2UsCj4gIAkJCQkJICAgICAgIDAsICZpbnRlbF9wbGFuZV9m dW5jcywKPiAgCQkJCQkgICAgICAgaW50ZWxfcHJpbWFyeV9mb3JtYXRzLCBudW1fZm9ybWF0cywK PiArCQkJCQkgICAgICAgTlVMTCwKPiAgCQkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFS WSwKPiAgCQkJCQkgICAgICAgInBsYW5lICVjIiwgcGxhbmVfbmFtZShwcmltYXJ5LT5wbGFuZSkp Owo+ICAJaWYgKHJldCkKPiBAQCAtMTU1NjMsNyArMTU1NjgsNyBAQCBpbnRlbF9jdXJzb3JfcGxh bmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBp cGUpCj4gIAkJCQkgICAgICAgMCwgJmludGVsX2N1cnNvcl9wbGFuZV9mdW5jcywKPiAgCQkJCSAg ICAgICBpbnRlbF9jdXJzb3JfZm9ybWF0cywKPiAgCQkJCSAgICAgICBBUlJBWV9TSVpFKGludGVs X2N1cnNvcl9mb3JtYXRzKSwKPiAtCQkJCSAgICAgICBEUk1fUExBTkVfVFlQRV9DVVJTT1IsCj4g KwkJCQkgICAgICAgTlVMTCwgRFJNX1BMQU5FX1RZUEVfQ1VSU09SLAo+ICAJCQkJICAgICAgICJj dXJzb3IgJWMiLCBwaXBlX25hbWUocGlwZSkpOwo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIGZhaWw7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCAwNjNhOTk0ODE1ZDAuLjFj MmYyNmQ4NmY3NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gQEAgLTEx MjcsMTMgKzExMjcsMTMgQEAgaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0 KCZkZXZfcHJpdi0+ZHJtLCAmaW50ZWxfcGxhbmUtPmJhc2UsCj4gIAkJCQkJICAgICAgIHBvc3Np YmxlX2NydGNzLCAmaW50ZWxfcGxhbmVfZnVuY3MsCj4gIAkJCQkJICAgICAgIHBsYW5lX2Zvcm1h dHMsIG51bV9wbGFuZV9mb3JtYXRzLAo+IC0JCQkJCSAgICAgICBEUk1fUExBTkVfVFlQRV9PVkVS TEFZLAo+ICsJCQkJCSAgICAgICBOVUxMLCBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLAo+ICAJCQkJ CSAgICAgICAicGxhbmUgJWQlYyIsIHBsYW5lICsgMiwgcGlwZV9uYW1lKHBpcGUpKTsKPiAgCWVs c2UKPiAgCQlyZXQgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoJmRldl9wcml2LT5kcm0sICZp bnRlbF9wbGFuZS0+YmFzZSwKPiAgCQkJCQkgICAgICAgcG9zc2libGVfY3J0Y3MsICZpbnRlbF9w bGFuZV9mdW5jcywKPiAgCQkJCQkgICAgICAgcGxhbmVfZm9ybWF0cywgbnVtX3BsYW5lX2Zvcm1h dHMsCj4gLQkJCQkJICAgICAgIERSTV9QTEFORV9UWVBFX09WRVJMQVksCj4gKwkJCQkJICAgICAg IE5VTEwsIERSTV9QTEFORV9UWVBFX09WRVJMQVksCj4gIAkJCQkJICAgICAgICJzcHJpdGUgJWMi LCBzcHJpdGVfbmFtZShwaXBlLCBwbGFuZSkpOwo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIGZhaWw7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMtcGxhbmUuYyBiL2RyaXZl cnMvZ3B1L2RybS9pbXgvaXB1djMtcGxhbmUuYwo+IGluZGV4IDhiNTI5NGQ0N2NlZS4uZWY5ZTEx Yjk4YjNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMtcGxhbmUuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMtcGxhbmUuYwo+IEBAIC00OTYsOCArNDk2 LDggQEAgc3RydWN0IGlwdV9wbGFuZSAqaXB1X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGlwdV9zb2MgKmlwdSwKPiAgCj4gIAlyZXQgPSBkcm1fdW5pdmVyc2FsX3Bs YW5lX2luaXQoZGV2LCAmaXB1X3BsYW5lLT5iYXNlLCBwb3NzaWJsZV9jcnRjcywKPiAgCQkJCSAg ICAgICAmaXB1X3BsYW5lX2Z1bmNzLCBpcHVfcGxhbmVfZm9ybWF0cywKPiAtCQkJCSAgICAgICBB UlJBWV9TSVpFKGlwdV9wbGFuZV9mb3JtYXRzKSwgdHlwZSwKPiAtCQkJCSAgICAgICBOVUxMKTsK PiArCQkJCSAgICAgICBBUlJBWV9TSVpFKGlwdV9wbGFuZV9mb3JtYXRzKSwKPiArCQkJCSAgICAg ICBOVUxMLCB0eXBlLCBOVUxMKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlEUk1fRVJST1IoImZhaWxl ZCB0byBpbml0aWFsaXplIHBsYW5lXG4iKTsKPiAgCQlrZnJlZShpcHVfcGxhbmUpOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fcGxhbmUuYwo+IGluZGV4IGU0MDVlODllZDVlNS4u YmVjNmQxNGRkMDcwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtf ZHJtX3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFu ZS5jCj4gQEAgLTE3Myw3ICsxNzMsNyBAQCBpbnQgbXRrX3BsYW5lX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAo+ICAJZXJyID0gZHJtX3Vu aXZlcnNhbF9wbGFuZV9pbml0KGRldiwgcGxhbmUsIHBvc3NpYmxlX2NydGNzLAo+ICAJCQkJICAg ICAgICZtdGtfcGxhbmVfZnVuY3MsIGZvcm1hdHMsCj4gLQkJCQkgICAgICAgQVJSQVlfU0laRShm b3JtYXRzKSwgdHlwZSwgTlVMTCk7Cj4gKwkJCQkgICAgICAgQVJSQVlfU0laRShmb3JtYXRzKSwg TlVMTCwgdHlwZSwgTlVMTCk7Cj4gIAlpZiAoZXJyKSB7Cj4gIAkJRFJNX0VSUk9SKCJmYWlsZWQg dG8gaW5pdGlhbGl6ZSBwbGFuZVxuIik7Cj4gIAkJcmV0dXJuIGVycjsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVz b24vbWVzb25fcGxhbmUuYwo+IGluZGV4IDY0MmIyZmFiNDJmZi4uMTNjN2MyYzFkNGNjIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9wbGFuZS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL21lc29uL21lc29uX3BsYW5lLmMKPiBAQCAtMjIwLDYgKzIyMCw3IEBAIGlu dCBtZXNvbl9wbGFuZV9jcmVhdGUoc3RydWN0IG1lc29uX2RybSAqcHJpdikKPiAgCQkJCSAmbWVz b25fcGxhbmVfZnVuY3MsCj4gIAkJCQkgc3VwcG9ydGVkX2RybV9mb3JtYXRzLAo+ICAJCQkJIEFS UkFZX1NJWkUoc3VwcG9ydGVkX2RybV9mb3JtYXRzKSwKPiArCQkJCSBOVUxMLAo+ICAJCQkJIERS TV9QTEFORV9UWVBFX1BSSU1BUlksICJtZXNvbl9wcmltYXJ5X3BsYW5lIik7Cj4gIAo+ICAJZHJt X3BsYW5lX2hlbHBlcl9hZGQocGxhbmUsICZtZXNvbl9wbGFuZV9oZWxwZXJfZnVuY3MpOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfcGxhbmUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jCj4gaW5kZXggNTM2MTlkMDc2 NzdlLi44ZjM0MTdlNDVkNGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAv bWRwNC9tZHA0X3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21k cDRfcGxhbmUuYwo+IEBAIC0zOTgsNyArMzk4LDcgQEAgc3RydWN0IGRybV9wbGFuZSAqbWRwNF9w bGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAl0eXBlID0gcHJpdmF0ZV9wbGFu ZSA/IERSTV9QTEFORV9UWVBFX1BSSU1BUlkgOiBEUk1fUExBTkVfVFlQRV9PVkVSTEFZOwo+ICAJ cmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwgcGxhbmUsIDB4ZmYsICZtZHA0X3Bs YW5lX2Z1bmNzLAo+ICAJCQkJIG1kcDRfcGxhbmUtPmZvcm1hdHMsIG1kcDRfcGxhbmUtPm5mb3Jt YXRzLAo+IC0JCQkJIHR5cGUsIE5VTEwpOwo+ICsJCQkJIE5VTEwsIHR5cGUsIE5VTEwpOwo+ICAJ aWYgKHJldCkKPiAgCQlnb3RvIGZhaWw7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21k cDUvbWRwNV9wbGFuZS5jCj4gaW5kZXggNzUyNDdlYTQzMzViLi5jMjA2OGMzMGNhNzMgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYwo+IEBAIC04ODIsNyAr ODgyLDcgQEAgc3RydWN0IGRybV9wbGFuZSAqbWRwNV9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGJvb2wgcHJpbWFyeSkKPiAgCXR5cGUgPSBwcmltYXJ5ID8gRFJNX1BMQU5FX1RZ UEVfUFJJTUFSWSA6IERSTV9QTEFORV9UWVBFX09WRVJMQVk7Cj4gIAlyZXQgPSBkcm1fdW5pdmVy c2FsX3BsYW5lX2luaXQoZGV2LCBwbGFuZSwgMHhmZiwgJm1kcDVfcGxhbmVfZnVuY3MsCj4gIAkJ CQkgbWRwNV9wbGFuZS0+Zm9ybWF0cywgbWRwNV9wbGFuZS0+bmZvcm1hdHMsCj4gLQkJCQkgdHlw ZSwgTlVMTCk7Cj4gKwkJCQkgTlVMTCwgdHlwZSwgTlVMTCk7Cj4gIAlpZiAocmV0KQo+ICAJCWdv dG8gZmFpbDsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9k cnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9kcnYuYwo+IGluZGV4IDk1NTQ0MWY3 MTUwMC4uZjI5ZDQ2M2UwM2E0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9t eHNmYl9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9kcnYuYwo+IEBA IC0xODYsNyArMTg2LDcgQEAgc3RhdGljIGludCBteHNmYl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNl ICpkcm0sIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCj4gIAl9Cj4gIAo+ICAJcmV0ID0gZHJtX3NpbXBs ZV9kaXNwbGF5X3BpcGVfaW5pdChkcm0sICZteHNmYi0+cGlwZSwgJm14c2ZiX2Z1bmNzLAo+IC0J CQlteHNmYl9mb3JtYXRzLCBBUlJBWV9TSVpFKG14c2ZiX2Zvcm1hdHMpLAo+ICsJCQlteHNmYl9m b3JtYXRzLCBBUlJBWV9TSVpFKG14c2ZiX2Zvcm1hdHMpLCBOVUxMLCAwLAo+ICAJCQkmbXhzZmIt PmNvbm5lY3Rvcik7Cj4gIAlpZiAocmV0IDwgMCkgewo+ICAJCWRldl9lcnIoZHJtLT5kZXYsICJD YW5ub3Qgc2V0dXAgc2ltcGxlIGRpc3BsYXkgcGlwZVxuIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbnY1MF9kaXNwbGF5LmMKPiBpbmRleCBjYjg1Y2I3MmRjMWMuLmNmNWVkOThjYWVkNCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZGlzcGxheS5jCj4gQEAgLTEwNzksOCArMTA3 OSw5IEBAIG52NTBfd25kd19jdG9yKGNvbnN0IHN0cnVjdCBudjUwX3duZHdfZnVuYyAqZnVuYywg c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXduZHctPmZ1bmMgPSBmdW5jOwo+ICAJd25kdy0+ ZG1hYyA9IGRtYWM7Cj4gIAo+IC0JcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwg JnduZHctPnBsYW5lLCAwLCAmbnY1MF93bmR3LCBmb3JtYXQsCj4gLQkJCQkgICAgICAgbmZvcm1h dCwgdHlwZSwgIiVzLSVkIiwgbmFtZSwgaW5kZXgpOwo+ICsJcmV0ID0gZHJtX3VuaXZlcnNhbF9w bGFuZV9pbml0KGRldiwgJnduZHctPnBsYW5lLCAwLCAmbnY1MF93bmR3LAo+ICsJCQkJICAgICAg IGZvcm1hdCwgbmZvcm1hdCwgTlVMTCwKPiArCQkJCSAgICAgICB0eXBlLCAiJXMtJWQiLCBuYW1l LCBpbmRleCk7Cj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0v b21hcGRybS9vbWFwX3BsYW5lLmMKPiBpbmRleCA4MmIyYzIzZDY3NjkuLmI0YTU3NWNmN2U3MSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMKPiBAQCAtMzgzLDcgKzM4Myw4 IEBAIHN0cnVjdCBkcm1fcGxhbmUgKm9tYXBfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ICAKPiAgCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChkZXYsIHBsYW5lLCBw b3NzaWJsZV9jcnRjcywKPiAgCQkJCSAgICAgICAmb21hcF9wbGFuZV9mdW5jcywgb21hcF9wbGFu ZS0+Zm9ybWF0cywKPiAtCQkJCSAgICAgICBvbWFwX3BsYW5lLT5uZm9ybWF0cywgdHlwZSwgTlVM TCk7Cj4gKwkJCQkgICAgICAgb21hcF9wbGFuZS0+bmZvcm1hdHMsCj4gKwkJCQkgICAgICAgTlVM TCwgdHlwZSwgTlVMTCk7Cj4gIAlpZiAocmV0IDwgMCkKPiAgCQlnb3RvIGVycm9yOwo+ICAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9wbGFuZS5jIGIvZHJp dmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9wbGFuZS5jCj4gaW5kZXggZGNkZTYyODhkYTZj Li4yYjAyZWNjYmZiNzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNh cl9kdV9wbGFuZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9wbGFu ZS5jCj4gQEAgLTc0Myw4ICs3NDMsOCBAQCBpbnQgcmNhcl9kdV9wbGFuZXNfaW5pdChzdHJ1Y3Qg cmNhcl9kdV9ncm91cCAqcmdycCkKPiAgCj4gIAkJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9p bml0KHJjZHUtPmRkZXYsICZwbGFuZS0+cGxhbmUsIGNydGNzLAo+ICAJCQkJCSAgICAgICAmcmNh cl9kdV9wbGFuZV9mdW5jcywgZm9ybWF0cywKPiAtCQkJCQkgICAgICAgQVJSQVlfU0laRShmb3Jt YXRzKSwgdHlwZSwKPiAtCQkJCQkgICAgICAgTlVMTCk7Cj4gKwkJCQkJICAgICAgIEFSUkFZX1NJ WkUoZm9ybWF0cyksCj4gKwkJCQkJICAgICAgIE5VTEwsIHR5cGUsIE5VTEwpOwo+ICAJCWlmIChy ZXQgPCAwKQo+ICAJCQlyZXR1cm4gcmV0Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JjYXItZHUvcmNhcl9kdV92c3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJf ZHVfdnNwLmMKPiBpbmRleCBiNWJmYmU1MGJkODcuLjc0NGJlMDI5NDM2YiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3ZzcC5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3JjYXItZHUvcmNhcl9kdV92c3AuYwo+IEBAIC0zNjQsOCArMzY0LDkgQEAgaW50IHJj YXJfZHVfdnNwX2luaXQoc3RydWN0IHJjYXJfZHVfdnNwICp2c3ApCj4gIAkJCQkJICAgICAgIDEg PDwgdnNwLT5pbmRleCwKPiAgCQkJCQkgICAgICAgJnJjYXJfZHVfdnNwX3BsYW5lX2Z1bmNzLAo+ ICAJCQkJCSAgICAgICBmb3JtYXRzX2ttcywKPiAtCQkJCQkgICAgICAgQVJSQVlfU0laRShmb3Jt YXRzX2ttcyksIHR5cGUsCj4gLQkJCQkJICAgICAgIE5VTEwpOwo+ICsJCQkJCSAgICAgICBBUlJB WV9TSVpFKGZvcm1hdHNfa21zKSwKPiArCQkJCQkgICAgICAgTlVMTCwKPiArCQkJCQkgICAgICAg dHlwZSwgTlVMTCk7Cj4gIAkJaWYgKHJldCA8IDApCj4gIAkJCXJldHVybiByZXQ7Cj4gIAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jIGIv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYwo+IGluZGV4IGZiNWYw MDFmNTFjMy4uODI2YjM3NjExNGY2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv cm9ja2NoaXBfZHJtX3ZvcC5jCj4gQEAgLTEyMjEsNyArMTIyMSw3IEBAIHN0YXRpYyBpbnQgdm9w X2NyZWF0ZV9jcnRjKHN0cnVjdCB2b3AgKnZvcCkKPiAgCQkJCQkgICAgICAgMCwgJnZvcF9wbGFu ZV9mdW5jcywKPiAgCQkJCQkgICAgICAgd2luX2RhdGEtPnBoeS0+ZGF0YV9mb3JtYXRzLAo+ICAJ CQkJCSAgICAgICB3aW5fZGF0YS0+cGh5LT5uZm9ybWF0cywKPiAtCQkJCQkgICAgICAgd2luX2Rh dGEtPnR5cGUsIE5VTEwpOwo+ICsJCQkJCSAgICAgICBOVUxMLCB3aW5fZGF0YS0+dHlwZSwgTlVM TCk7Cj4gIAkJaWYgKHJldCkgewo+ICAJCQlEUk1fREVWX0VSUk9SKHZvcC0+ZGV2LCAiZmFpbGVk IHRvIGluaXQgcGxhbmUgJWRcbiIsCj4gIAkJCQkgICAgICByZXQpOwo+IEBAIC0xMjYwLDcgKzEy NjAsNyBAQCBzdGF0aWMgaW50IHZvcF9jcmVhdGVfY3J0YyhzdHJ1Y3Qgdm9wICp2b3ApCj4gIAkJ CQkJICAgICAgICZ2b3BfcGxhbmVfZnVuY3MsCj4gIAkJCQkJICAgICAgIHdpbl9kYXRhLT5waHkt PmRhdGFfZm9ybWF0cywKPiAgCQkJCQkgICAgICAgd2luX2RhdGEtPnBoeS0+bmZvcm1hdHMsCj4g LQkJCQkJICAgICAgIHdpbl9kYXRhLT50eXBlLCBOVUxMKTsKPiArCQkJCQkgICAgICAgTlVMTCwg d2luX2RhdGEtPnR5cGUsIE5VTEwpOwo+ICAJCWlmIChyZXQpIHsKPiAgCQkJRFJNX0RFVl9FUlJP Uih2b3AtPmRldiwgImZhaWxlZCB0byBpbml0IG92ZXJsYXkgJWRcbiIsCj4gIAkJCQkgICAgICBy ZXQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9jdXJzb3IuYyBiL2Ry aXZlcnMvZ3B1L2RybS9zdGkvc3RpX2N1cnNvci5jCj4gaW5kZXggY2NhNzViZGRiOWFkLi5mNjE4 MDhiNDE5YTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3Vyc29yLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9jdXJzb3IuYwo+IEBAIC0zOTMsNiArMzkz LDcgQEAgc3RydWN0IGRybV9wbGFuZSAqc3RpX2N1cnNvcl9jcmVhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRybV9kZXYsCj4gIAkJCQkgICAgICAgJnN0aV9jdXJzb3JfcGxhbmVfaGVscGVyc19mdW5j cywKPiAgCQkJCSAgICAgICBjdXJzb3Jfc3VwcG9ydGVkX2Zvcm1hdHMsCj4gIAkJCQkgICAgICAg QVJSQVlfU0laRShjdXJzb3Jfc3VwcG9ydGVkX2Zvcm1hdHMpLAo+ICsJCQkJICAgICAgIE5VTEws Cj4gIAkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfQ1VSU09SLCBOVUxMKTsKPiAgCWlmIChyZXMp IHsKPiAgCQlEUk1fRVJST1IoIkZhaWxlZCB0byBpbml0aWFsaXplIHVuaXZlcnNhbCBwbGFuZVxu Iik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2dkcC5jIGIvZHJpdmVy cy9ncHUvZHJtL3N0aS9zdGlfZ2RwLmMKPiBpbmRleCA4NzdkMDUzZDg2ZjQuLjZiZjFhNTkyY2Vl NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9nZHAuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9zdGkvc3RpX2dkcC5jCj4gQEAgLTkyMSw3ICs5MjEsNyBAQCBzdHJ1Y3Qg ZHJtX3BsYW5lICpzdGlfZ2RwX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKPiAg CQkJCSAgICAgICAmc3RpX2dkcF9wbGFuZV9oZWxwZXJzX2Z1bmNzLAo+ICAJCQkJICAgICAgIGdk cF9zdXBwb3J0ZWRfZm9ybWF0cywKPiAgCQkJCSAgICAgICBBUlJBWV9TSVpFKGdkcF9zdXBwb3J0 ZWRfZm9ybWF0cyksCj4gLQkJCQkgICAgICAgdHlwZSwgTlVMTCk7Cj4gKwkJCQkgICAgICAgTlVM TCwgdHlwZSwgTlVMTCk7Cj4gIAlpZiAocmVzKSB7Cj4gIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8g aW5pdGlhbGl6ZSB1bml2ZXJzYWwgcGxhbmVcbiIpOwo+ICAJCWdvdG8gZXJyOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9ocXZkcC5jIGIvZHJpdmVycy9ncHUvZHJtL3N0 aS9zdGlfaHF2ZHAuYwo+IGluZGV4IGJlY2YxMGQyNTVjNC4uOTExZThmMGY2OWE2IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hxdmRwLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vc3RpL3N0aV9ocXZkcC5jCj4gQEAgLTEyNzcsNyArMTI3Nyw3IEBAIHN0YXRpYyBzdHJ1 Y3QgZHJtX3BsYW5lICpzdGlfaHF2ZHBfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2 LAo+ICAJCQkJICAgICAgICZzdGlfaHF2ZHBfcGxhbmVfaGVscGVyc19mdW5jcywKPiAgCQkJCSAg ICAgICBocXZkcF9zdXBwb3J0ZWRfZm9ybWF0cywKPiAgCQkJCSAgICAgICBBUlJBWV9TSVpFKGhx dmRwX3N1cHBvcnRlZF9mb3JtYXRzKSwKPiAtCQkJCSAgICAgICBEUk1fUExBTkVfVFlQRV9PVkVS TEFZLCBOVUxMKTsKPiArCQkJCSAgICAgICBOVUxMLCBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLCBO VUxMKTsKPiAgCWlmIChyZXMpIHsKPiAgCQlEUk1fRVJST1IoIkZhaWxlZCB0byBpbml0aWFsaXpl IHVuaXZlcnNhbCBwbGFuZVxuIik7Cj4gIAkJcmV0dXJuIE5VTEw7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9sYXllci5jIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRp L3N1bjRpX2xheWVyLmMKPiBpbmRleCA1ZDUzYzk3N2JjYTUuLjgyN2Y0NTM2NDY1NCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfbGF5ZXIuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9zdW40aS9zdW40aV9sYXllci5jCj4gQEAgLTExNyw2ICsxMTcsNyBAQCBzdGF0 aWMgc3RydWN0IHN1bjRpX2xheWVyICpzdW40aV9sYXllcl9pbml0X29uZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtLAo+ICAJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRybSwgJmxheWVy LT5wbGFuZSwgQklUKDApLAo+ICAJCQkJICAgICAgICZzdW40aV9iYWNrZW5kX2xheWVyX2Z1bmNz LAo+ICAJCQkJICAgICAgIHBsYW5lLT5mb3JtYXRzLCBwbGFuZS0+bmZvcm1hdHMsCj4gKwkJCQkg ICAgICAgTlVMTCwKPiAgCQkJCSAgICAgICBwbGFuZS0+dHlwZSwgTlVMTCk7Cj4gIAlpZiAocmV0 KSB7Cj4gIAkJZGV2X2Vycihkcm0tPmRldiwgIkNvdWxkbid0IGluaXRpYWxpemUgbGF5ZXJcbiIp Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYyBiL2RyaXZlcnMvZ3B1 L2RybS90ZWdyYS9kYy5jCj4gaW5kZXggNzU2MWE5NWE1NGUzLi45ZGRlYTg0MjA4YzQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vdGVncmEvZGMuYwo+IEBAIC02NTUsOCArNjU1LDggQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxh bmUgKnRlZ3JhX2RjX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0s Cj4gIAo+ICAJZXJyID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRybSwgJnBsYW5lLT5iYXNl LCBwb3NzaWJsZV9jcnRjcywKPiAgCQkJCSAgICAgICAmdGVncmFfcHJpbWFyeV9wbGFuZV9mdW5j cywgZm9ybWF0cywKPiAtCQkJCSAgICAgICBudW1fZm9ybWF0cywgRFJNX1BMQU5FX1RZUEVfUFJJ TUFSWSwKPiAtCQkJCSAgICAgICBOVUxMKTsKPiArCQkJCSAgICAgICBudW1fZm9ybWF0cywgTlVM TCwKPiArCQkJCSAgICAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZLCBOVUxMKTsKPiAgCWlmIChl cnIgPCAwKSB7Cj4gIAkJa2ZyZWUocGxhbmUpOwo+ICAJCXJldHVybiBFUlJfUFRSKGVycik7Cj4g QEAgLTgyMSw4ICs4MjEsOCBAQCBzdGF0aWMgc3RydWN0IGRybV9wbGFuZSAqdGVncmFfZGNfY3Vy c29yX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+ICAKPiAgCWVyciA9IGRy bV91bml2ZXJzYWxfcGxhbmVfaW5pdChkcm0sICZwbGFuZS0+YmFzZSwgMSA8PCBkYy0+cGlwZSwK PiAgCQkJCSAgICAgICAmdGVncmFfY3Vyc29yX3BsYW5lX2Z1bmNzLCBmb3JtYXRzLAo+IC0JCQkJ ICAgICAgIG51bV9mb3JtYXRzLCBEUk1fUExBTkVfVFlQRV9DVVJTT1IsCj4gLQkJCQkgICAgICAg TlVMTCk7Cj4gKwkJCQkgICAgICAgbnVtX2Zvcm1hdHMsIE5VTEwsCj4gKwkJCQkgICAgICAgRFJN X1BMQU5FX1RZUEVfQ1VSU09SLCBOVUxMKTsKPiAgCWlmIChlcnIgPCAwKSB7Cj4gIAkJa2ZyZWUo cGxhbmUpOwo+ICAJCXJldHVybiBFUlJfUFRSKGVycik7Cj4gQEAgLTg4Myw4ICs4ODMsOCBAQCBz dGF0aWMgc3RydWN0IGRybV9wbGFuZSAqdGVncmFfZGNfb3ZlcmxheV9wbGFuZV9jcmVhdGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRybSwKPiAgCj4gIAllcnIgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2lu aXQoZHJtLCAmcGxhbmUtPmJhc2UsIDEgPDwgZGMtPnBpcGUsCj4gIAkJCQkgICAgICAgJnRlZ3Jh X292ZXJsYXlfcGxhbmVfZnVuY3MsIGZvcm1hdHMsCj4gLQkJCQkgICAgICAgbnVtX2Zvcm1hdHMs IERSTV9QTEFORV9UWVBFX09WRVJMQVksCj4gLQkJCQkgICAgICAgTlVMTCk7Cj4gKwkJCQkgICAg ICAgbnVtX2Zvcm1hdHMsIE5VTEwsCj4gKwkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfT1ZFUkxB WSwgTlVMTCk7Cj4gIAlpZiAoZXJyIDwgMCkgewo+ICAJCWtmcmVlKHBsYW5lKTsKPiAgCQlyZXR1 cm4gRVJSX1BUUihlcnIpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9w bGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxhbmUuYwo+IGluZGV4IDExMGQxNTE4 ZjVkNS4uNDg3YmI0MGUwZTRlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0 X3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5jCj4gQEAgLTg2 MSw3ICs4NjEsNyBAQCBzdHJ1Y3QgZHJtX3BsYW5lICp2YzRfcGxhbmVfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwgcGxh bmUsIDB4ZmYsCj4gIAkJCQkgICAgICAgJnZjNF9wbGFuZV9mdW5jcywKPiAgCQkJCSAgICAgICBm b3JtYXRzLCBudW1fZm9ybWF0cywKPiAtCQkJCSAgICAgICB0eXBlLCBOVUxMKTsKPiArCQkJCSAg ICAgICBOVUxMLCB0eXBlLCBOVUxMKTsKPiAgCj4gIAlkcm1fcGxhbmVfaGVscGVyX2FkZChwbGFu ZSwgJnZjNF9wbGFuZV9oZWxwZXJfZnVuY3MpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3Zp cnRncHVfcGxhbmUuYwo+IGluZGV4IDExMjg4ZmZhNGFmNi4uMDBmMzY4Y2RlMGI4IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9wbGFuZS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3BsYW5lLmMKPiBAQCAtMjI1LDcgKzIyNSw3IEBA IHN0cnVjdCBkcm1fcGxhbmUgKnZpcnRpb19ncHVfcGxhbmVfaW5pdChzdHJ1Y3QgdmlydGlvX2dw dV9kZXZpY2UgKnZnZGV2LAo+ICAJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwg cGxhbmUsIDEgPDwgaW5kZXgsCj4gIAkJCQkgICAgICAgJnZpcnRpb19ncHVfcGxhbmVfZnVuY3Ms Cj4gIAkJCQkgICAgICAgZm9ybWF0cywgbmZvcm1hdHMsCj4gLQkJCQkgICAgICAgdHlwZSwgTlVM TCk7Cj4gKwkJCQkgICAgICAgTlVMTCwgdHlwZSwgTlVMTCk7Cj4gIAlpZiAocmV0KQo+ICAJCWdv dG8gZXJyX3BsYW5lX2luaXQ7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0venRl L3p4X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0venRlL3p4X3BsYW5lLmMKPiBpbmRleCBiNjM0 YjA5MGNkYzEuLmM1N2Q0ZmU1ZGExOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0venRl L3p4X3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0venRlL3p4X3BsYW5lLmMKPiBAQCAt Mjg3LDcgKzI4Nyw3IEBAIHN0cnVjdCBkcm1fcGxhbmUgKnp4X3BsYW5lX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRybSwgc3RydWN0IGRldmljZSAqZGV2LAo+ICAKPiAgCXJldCA9IGRybV91bml2 ZXJzYWxfcGxhbmVfaW5pdChkcm0sIHBsYW5lLCBWT1VfQ1JUQ19NQVNLLAo+ICAJCQkJICAgICAg ICZ6eF9wbGFuZV9mdW5jcywgZm9ybWF0cywgZm9ybWF0X2NvdW50LAo+IC0JCQkJICAgICAgIHR5 cGUsIE5VTEwpOwo+ICsJCQkJICAgICAgIE5VTEwsIHR5cGUsIE5VTEwpOwo+ICAJaWYgKHJldCkg ewo+ICAJCURSTV9ERVZfRVJST1IoZGV2LCAiZmFpbGVkIHRvIGluaXQgdW5pdmVyc2FsIHBsYW5l OiAlZFxuIiwgcmV0KTsKPiAgCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+IGRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS9kcm1fcGxhbmUuaCBiL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCj4gaW5kZXgg ZTA0OWJjNTJmYjA3Li4xMDhhOTU1NDM4ZTUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJt X3BsYW5lLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+IEBAIC0zODksNiArMzg5 LDIwIEBAIHN0cnVjdCBkcm1fcGxhbmVfZnVuY3Mgewo+ICAJICovCj4gIAl2b2lkICgqYXRvbWlj X3ByaW50X3N0YXRlKShzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsCj4gIAkJCQkgICBjb25zdCBzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSk7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAZm9ybWF0X21v ZF9zdXBwb3J0ZWQ6Cj4gKwkgKgo+ICsJICogVGhpcyBvcHRpb25hbCBob29rIGlzIHVzZWQgZm9y IHRoZSBEUk0gdG8gZGV0ZXJtaW5lIGlmIHRoZSBnaXZlbgo+ICsJICogZm9ybWF0L21vZGlmaWVy IGNvbWJpbmF0aW9uIGlzIHZhbGlkIGZvciB0aGUgcGxhbmUuIFRoaXMgYWxsb3dzIHRoZQo+ICsJ ICogRFJNIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IGZvcm1hdCBiaXRtYXNrICh3aGljaCBmb3Jt YXRzIGFwcGx5IHRvCj4gKwkgKiB3aGljaCBtb2RpZmllcikuCj4gKwkgKgo+ICsJICogVHJ1ZSBp ZiB0aGUgZ2l2ZW4gbW9kaWZpZXIgaXMgdmFsaWQgZm9yIHRoYXQgZm9ybWF0IG9uIHRoZSBwbGFu ZS4KPiArCSAqIEZhbHNlIG90aGVyd2lzZS4KPiArCSAqLwo+ICsJYm9vbCAoKmZvcm1hdF9tb2Rf c3VwcG9ydGVkKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgdWludDMyX3QgZm9ybWF0LAo+ICsJ CQkJICAgICB1aW50NjRfdCBtb2RpZmllcik7Cj4gIH07Cj4gIAo+ICAvKioKPiBAQCAtNDgzLDYg KzQ5NywxMCBAQCBzdHJ1Y3QgZHJtX3BsYW5lIHsKPiAgCXVuc2lnbmVkIGludCBmb3JtYXRfY291 bnQ7Cj4gIAlib29sIGZvcm1hdF9kZWZhdWx0Owo+ICAKPiArCXVpbnQzMl90ICpmb3JtYXRzOwo+ ICsJdWludDY0X3QgKm1vZGlmaWVyczsKPiArCXVuc2lnbmVkIGludCBtb2RpZmllcl9jb3VudDsK PiArCj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYjsKPiAgCj4gQEAgLTUxMCwxMyArNTI4LDE0IEBAIHN0cnVjdCBkcm1fcGxhbmUgewo+ICAK PiAgI2RlZmluZSBvYmpfdG9fcGxhbmUoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBkcm1fcGxh bmUsIGJhc2UpCj4gIAo+IC1leHRlcm4gX19wcmludGYoOCwgOSkKPiArZXh0ZXJuIF9fcHJpbnRm KDksIDEwKQo+ICBpbnQgZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gIAkJCSAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJCSAgICAgdWlu dDMyX3QgcG9zc2libGVfY3J0Y3MsCj4gIAkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9m dW5jcyAqZnVuY3MsCj4gIAkJCSAgICAgY29uc3QgdWludDMyX3QgKmZvcm1hdHMsCj4gIAkJCSAg ICAgdW5zaWduZWQgaW50IGZvcm1hdF9jb3VudCwKPiArCQkJICAgICBjb25zdCB1aW50NjRfdCAq Zm9ybWF0X21vZGlmaWVycywKPiAgCQkJICAgICBlbnVtIGRybV9wbGFuZV90eXBlIHR5cGUsCj4g IAkJCSAgICAgY29uc3QgY2hhciAqbmFtZSwgLi4uKTsKPiAgZXh0ZXJuIGludCBkcm1fcGxhbmVf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fc2ltcGxlX2ttc19oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9zaW1wbGVfa21zX2hlbHBl ci5oCj4gaW5kZXggZmU4YzRiYTkwNWFjLi4wNTljZDU5MmExMjcgMTAwNjQ0Cj4gLS0tIGEvaW5j bHVkZS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1f c2ltcGxlX2ttc19oZWxwZXIuaAo+IEBAIC0xMTgsNiArMTE4LDcgQEAgaW50IGRybV9zaW1wbGVf ZGlzcGxheV9waXBlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJc3RydWN0IGRy bV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAo+ICAJCQljb25zdCBzdHJ1Y3QgZHJtX3NpbXBs ZV9kaXNwbGF5X3BpcGVfZnVuY3MgKmZ1bmNzLAo+ICAJCQljb25zdCB1aW50MzJfdCAqZm9ybWF0 cywgdW5zaWduZWQgaW50IGZvcm1hdF9jb3VudCwKPiArCQkJY29uc3QgdWludDY0X3QgKmZvcm1h dF9tb2RpZmllcnMsCj4gIAkJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICAK PiAgI2VuZGlmIC8qIF9fTElOVVhfRFJNX1NJTVBMRV9LTVNfSEVMUEVSX0ggKi8KPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKPiBp bmRleCBiMmM1Mjg0M2JjNzAuLjQ4N2UwZjE3MTEzZiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3Vh cGkvZHJtL2RybS5oCj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaAo+IEBAIC04MDUsNiAr ODA1LDcgQEAgZXh0ZXJuICJDIiB7Cj4gICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfREVTVFJPWV9E VU1CICAgIERSTV9JT1dSKDB4QjQsIHN0cnVjdCBkcm1fbW9kZV9kZXN0cm95X2R1bWIpCj4gICNk ZWZpbmUgRFJNX0lPQ1RMX01PREVfR0VUUExBTkVSRVNPVVJDRVMgRFJNX0lPV1IoMHhCNSwgc3Ry dWN0IGRybV9tb2RlX2dldF9wbGFuZV9yZXMpCj4gICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfR0VU UExBTkUJRFJNX0lPV1IoMHhCNiwgc3RydWN0IGRybV9tb2RlX2dldF9wbGFuZSkKPiArI2RlZmlu ZSBEUk1fSU9DVExfTU9ERV9HRVRQTEFORTIJRFJNX0lPV1IoMHhCNiwgc3RydWN0IGRybV9tb2Rl X2dldF9wbGFuZTIpCj4gICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfU0VUUExBTkUJRFJNX0lPV1Io MHhCNywgc3RydWN0IGRybV9tb2RlX3NldF9wbGFuZSkKPiAgI2RlZmluZSBEUk1fSU9DVExfTU9E RV9BRERGQjIJCURSTV9JT1dSKDB4QjgsIHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyKQo+ICAjZGVm aW5lIERSTV9JT0NUTF9NT0RFX09CSl9HRVRQUk9QRVJUSUVTCURSTV9JT1dSKDB4QjksIHN0cnVj dCBkcm1fbW9kZV9vYmpfZ2V0X3Byb3BlcnRpZXMpCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9kcm0vZHJtX2ZvdXJjYy5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fZm91cmNjLmgKPiBpbmRl eCA0NTgxZTNkNDFlNWMuLjU4NTkwMTRkOTNjNyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkv ZHJtL2RybV9mb3VyY2MuaAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oCj4g QEAgLTE2Miw2ICsxNjIsOCBAQCBleHRlcm4gIkMiIHsKPiAgI2RlZmluZSBEUk1fRk9STUFUX01P RF9WRU5ET1JfUUNPTSAgICAweDA1Cj4gIC8qIGFkZCBtb3JlIHRvIHRoZSBlbmQgYXMgbmVlZGVk ICovCj4gIAo+ICsjZGVmaW5lIERSTV9GT1JNQVRfUkVTRVJWRUQJICAgICAgKCgxVUxMIDw8IDU2 KSAtIDEpCj4gKwo+ICAjZGVmaW5lIGZvdXJjY19tb2RfY29kZSh2ZW5kb3IsIHZhbCkgXAo+ICAJ KCgoKF9fdTY0KURSTV9GT1JNQVRfTU9EX1ZFTkRPUl8jIyB2ZW5kb3IpIDw8IDU2KSB8ICh2YWwg JiAweDAwZmZmZmZmZmZmZmZmZmZVTEwpKQo+ICAKPiBAQCAtMTc0LDYgKzE3NiwxNSBAQCBleHRl cm4gIkMiIHsKPiAgICovCj4gIAo+ICAvKgo+ICsgKiBJbnZhbGlkIE1vZGlmaWVyCj4gKyAqCj4g KyAqIFRoaXMgbW9kaWZpZXIgY2FuIGJlIHVzZWQgYXMgYSBzZW50aW5lbCB0byB0ZXJtaW5hdGUg bGlzdCwgb3IgdG8gaW5pdGlhbGl6ZSBhCj4gKyAqIHZhcmlhYmxlIHdpdGggYW4gaW52YWxpZCBt b2RpZmllci4gSXQgbWlnaHQgYWxzbyBiZSB1c2VkIHRvIHJlcG9ydCBhbiBlcnJvcgo+ICsgKiBi YWNrIHRvIHVzZXJzcGFjZSBmb3IgY2VydGFpbiBBUElzLgo+ICsgKi8KPiArI2RlZmluZSBEUk1f Rk9STUFUX01PRF9JTlZBTElECWZvdXJjY19tb2RfY29kZShOT05FLCBEUk1fRk9STUFUX1JFU0VS VkVEKQo+ICsKPiArLyoKPiAgICogTGluZWFyIExheW91dAo+ICAgKgo+ICAgKiBKdXN0IHBsYWlu IGxpbmVhciBsYXlvdXQuIE5vdGUgdGhhdCB0aGlzIGlzIGRpZmZlcmVudCBmcm9tIG5vIHNwZWNp ZnlpbmcgYW55Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCBiL2lu Y2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+IGluZGV4IGNlN2VmZTJlOGE1ZS4uNjM5MzJiMjhk ZGQwIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+ICsrKyBiL2lu Y2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+IEBAIC0yMDksNiArMjA5LDQyIEBAIHN0cnVjdCBk cm1fbW9kZV9nZXRfcGxhbmUgewo+ICAJX191NjQgZm9ybWF0X3R5cGVfcHRyOwo+ICB9Owo+ICAK PiArc3RydWN0IGRybV9mb3JtYXRfbW9kaWZpZXIgewo+ICsJLyogQml0bWFzayBvZiBmb3JtYXRz IGluIGdldF9wbGFuZSBmb3JtYXQgbGlzdCB0aGlzIGluZm8gYXBwbGllcyB0by4gVGhlCj4gKwkg KiBvZmZzZXQgYWxsb3dzIGEgc2xpZGluZyB3aW5kb3cgb2Ygd2hpY2ggMzIgZm9ybWF0cyAoYml0 cykuCj4gKwkgKgo+ICsJICogRm9yIGV4YW1wbGUsIGlmIHRoZSBmb3JtYXRzIGdyZXcgdG8gMTI4 LCBhbmQgdGhlIGxhc3QgZm9ybWF0cyB3ZXJlCj4gKwkgKiBzdXBwb3J0ZWQgd2l0aCB0aGUgbW9k aWZpZXI6Cj4gKwkgKgo+ICsJICogMHhGRkZGRkZGRiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAw MAo+ICsJICogICAgICAgICAgXgo+ICsJICogICAgICAgICAgfF9fb2Zmc2V0ID0gOTYsIGZvcm1h dHMgPSAweGZmZmZmZmZmCj4gKwkgKi8KCkkgZG9uJ3QgcXVpdGUgdW5kZXJzdGFuZCB3aGF0IHRo aXMgaXMgdHJ5aW5nIHRvIHNheS4KCkhtbS4gSXMgdGhhdCAweEZGRkYuLi4gdGhpbmcgdGhlIGZ1 bGwgMTI4IGJpdCBtYXNrIG9mIGZvcm1hdHM/IFRoZSBhbGwKMXMgYW5kIGFsbCAwcyBwYXR0ZXJu cyBhcmUgbWF5YmUgYSBiaXQgdG9vIG1hZ2ljIGxvb2tpbmcuIE1pZ2h0IGJlIGJldHRlcgp0byBo YXZlIHNvbWUgbW9yZSByYW5kb21pc2ggbG9va2luZyBiaXQgcGF0dGVybnMgaW4gdGhlIGV4YW1w bGUgc28gdGhhdAp0aGUgcmVkZXJzIGRvZXNuJ3QgbWFrZSB0aGUgYXNzdW1wdGlvbiB0aGF0IHRo ZSB2YWx1ZXMgYXJlIHNvbWVob3cKc3BlY2lhbC4gQW5kIGFjdHVhbGx5IHNob3dpbmcgdGhlIG9m ZnNldCtmb3JtYXRzIHBhaXIgZm9yIGVhY2ggZHdvcmQKaW4gdGhlIGV4YW1wbGUgYml0bWFzayBt aWdodCBtYWtlIGl0IGV2ZW4gbW9yZSBjbGVhci4KCj4gKwl1aW50MzJfdCBmb3JtYXRzOwo+ICsJ dWludDMyX3Qgb2Zmc2V0Owo+ICsKPiArCS8qIFRoaXMgbW9kaWZpZXIgY2FuIGJlIHVzZWQgd2l0 aCB0aGUgZm9ybWF0IGZvciB0aGlzIHBsYW5lLiAqLwo+ICsJdWludDY0X3QgbW9kaWZpZXI7Cj4g K307Cj4gKwo+ICtzdHJ1Y3QgZHJtX21vZGVfZ2V0X3BsYW5lMiB7Cj4gKwlfX3UzMiBwbGFuZV9p ZDsKPiArCj4gKwlfX3UzMiBjcnRjX2lkOwo+ICsJX191MzIgZmJfaWQ7Cj4gKwo+ICsJX191MzIg cG9zc2libGVfY3J0Y3M7Cj4gKwlfX3UzMiBnYW1tYV9zaXplOwo+ICsKPiArCV9fdTMyIGNvdW50 X2Zvcm1hdF90eXBlczsKPiArCV9fdTY0IGZvcm1hdF90eXBlX3B0cjsKPiArCj4gKwkvKiBOZXcg aW4gdjIgKi8KPiArCV9fdTMyIGZsYWdzOwo+ICsJX191MzIgY291bnRfZm9ybWF0X21vZGlmaWVy czsKPiArCV9fdTY0IGZvcm1hdF9tb2RpZmllcl9wdHI7Cj4gK307Cj4gKwo+ICBzdHJ1Y3QgZHJt X21vZGVfZ2V0X3BsYW5lX3JlcyB7Cj4gIAlfX3U2NCBwbGFuZV9pZF9wdHI7Cj4gIAlfX3UzMiBj b3VudF9wbGFuZXM7Cj4gLS0gCj4gMi4xMS4wCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9U QwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK