From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Subject: Re: [PATCH 2/2] drm/prime: Update docs Date: Wed, 19 Jun 2019 14:43:20 +0200 Message-ID: References: <20190614203615.12639-4-daniel.vetter@ffwll.ch> <20190618092038.17929-1-daniel.vetter@ffwll.ch> <20190618092038.17929-2-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190618092038.17929-2-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , DRI Development Cc: Daniel Vetter , Intel Graphics Development , Emil Velikov , Sam Ravnborg List-Id: dri-devel@lists.freedesktop.org CgpEZW4gMTguMDYuMjAxOSAxMS4yMCwgc2tyZXYgRGFuaWVsIFZldHRlcjoKPiBZZXMgdGhpcyBp cyBhIGJpdCBhIGJpZyBwYXRjaCwgYnV0IHNpbmNlIGl0J3MgZXNzZW50aWFsbHkgYSBjb21wbGV0 ZQo+IHJld3JpdGUgb2YgYWxsIHRoZSBwcmltZSBkb2NzIEkgZGlkbid0IHNlZSBob3cgdG8gYmV0 dGVyIHNwbGl0IGl0IHVwLgo+IAo+IENoYW5nZXM6Cj4gLSBDb25zaXN0ZW50bHkgcG9pbnQgdG8g ZHJtX2dlbV9vYmplY3RfZnVuY3MgYXMgdGhlIHByZWZlcnJlZCBob29rcywKPiAgIHdoZXJlIGFw cGxpY2FibGUuCj4gCj4gLSBEb2N1bWVudCBhbGwgdGhlIGhvb2tzIGluICZkcm1fZHJpdmVyIHRo YXQgbGFja2VkIGtlcm5lbGRvYy4KPiAKPiAtIENvbXBsZXRlbHkgbmV3IG92ZXJ2aWV3IHNlY3Rp b24sIHdoaWNoIG5vdyBhbHNvIGluY2x1ZGVzIHRoZSBjbGVhbmVkCj4gICB1cCBsaWZldGltZS9y ZWZlcmVuY2UgY291bnRpbmcgc3ViY2hhcHRlci4gSSBhbHNvIG1lbnRpb25lZCB0aGUgd2Vhawo+ ICAgcmVmZXJlbmNlcyBpbiB0aGVyZSBkdWUgdG8gdGhlIGxvb2t1cCBjYWNoZXMuCj4gCj4gLSBD b21wbGV0ZWx5IHJld3JpdHRlbiBoZWxwZXIgaW50cm8gc2VjdGlvbiwgaGlnaGxpZ2h0IHRoZQo+ ICAgaW1wb3J0L2V4cG9ydCByZWxhdGVkIGZ1bmN0aW9uYWxpdHkuCj4gCj4gLSBQb2xpc2ggZm9y IGFsbCB0aGUgZnVuY3Rpb25zIGFuZCBtb3JlIGNyb3NzIHJlZmVyZW5jZXMuCj4gCj4gSSBhbHNv IHNwcmlua2xlZCBhIGJ1bmNoIG9mIHRvZG9zIGFsbCBvdmVyLgo+IAo+IE1vc3QgaW1wb3J0YW50 OiAwIGNvZGUgY2hhbmdlcyBpbiBoZXJlLiBUaGUgY2xlYW51cCBtb3RpdmF0ZWQgYnkKPiByZWFk aW5nIGFuZCBpbXByb3ZpbmcgYWxsIHRoaXMgd2lsbCBmb2xsb3cgbGF0ZXIgb24uCj4gCj4gdjI6 IEFjdHVhbGx5IHVwZGF0ZSB0aGUgcHJpbWUgaGVscGVyIGRvY3MuIFBsdXMgYWRkIGEgZmV3IEZJ WE1FcyB0aGF0Cj4gSSB3b24ndCBhZGRyZXNzIHJpZ2h0IGF3YXkgaW4gc3Vic2VxdWVudCBjbGVh bnVwIHBhdGNoZXMuCj4gCj4gdjM6Cj4gLSBTcGxpdCBvdXQgdGhlIGZ1bmN0aW9uIG1vdmluZy4g VGhpcyBwYXRjaCBpcyBub3cgZXhjbHVzaXZlbHkKPiAgIGRvY3VtZW50YXRpb24gY2hhbmdlcy4K PiAtIFR5cG9zIGFuZCBuaXRzIChTYW0pLgo+IAo+IENjOiBTYW0gUmF2bmJvcmcgPHNhbUByYXZu Ym9yZy5vcmc+Cj4gQ2M6IEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+Cj4gQ2M6IEVtaWwg VmVsaWtvdiA8ZW1pbC5sLnZlbGlrb3ZAZ21haWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IERhbmll bCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+IC0tLQo+ICBEb2N1bWVudGF0aW9u L2dwdS9kcm0tbW0ucnN0IHwgIDQwICstLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9wcmlt ZS5jICB8IDE5NyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+ICBpbmNsdWRl L2RybS9kcm1fZHJ2LmggICAgICAgIHwgMTA0ICsrKysrKysrKysrKysrKy0tLQo+ICBpbmNsdWRl L2RybS9kcm1fZ2VtLmggICAgICAgIHwgIDE4ICsrLS0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAyMjYg aW5zZXJ0aW9ucygrKSwgMTMzIGRlbGV0aW9ucygtKQo+IAoKPHNuaXA+Cgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1l LmMKPiBpbmRleCA2OGI0ZGU4NTM3MGMuLjIyMzQyMDYyODhmYSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1l LmMKPiBAQCAtMzgsNDcgKzM4LDUzIEBACj4gIAo+ICAjaW5jbHVkZSAiZHJtX2ludGVybmFsLmgi Cj4gIAo+IC0vKgo+IC0gKiBETUEtQlVGL0dFTSBPYmplY3QgcmVmZXJlbmNlcyBhbmQgbGlmZXRp bWUgb3ZlcnZpZXc6Cj4gLSAqCj4gLSAqIE9uIHRoZSBleHBvcnQgdGhlIGRtYV9idWYgaG9sZHMg YSByZWZlcmVuY2UgdG8gdGhlIGV4cG9ydGluZyBHRU0KPiAtICogb2JqZWN0LiBJdCB0YWtlcyB0 aGlzIHJlZmVyZW5jZSBpbiBoYW5kbGVfdG9fZmRfaW9jdGwsIHdoZW4gaXQKPiAtICogZmlyc3Qg Y2FsbHMgLnByaW1lX2V4cG9ydCBhbmQgc3RvcmVzIHRoZSBleHBvcnRpbmcgR0VNIG9iamVjdCBp bgo+IC0gKiB0aGUgZG1hX2J1ZiBwcml2LiBUaGlzIHJlZmVyZW5jZSBuZWVkcyB0byBiZSByZWxl YXNlZCB3aGVuIHRoZQo+IC0gKiBmaW5hbCByZWZlcmVuY2UgdG8gdGhlICZkbWFfYnVmIGl0c2Vs ZiBpcyBkcm9wcGVkIGFuZCBpdHMKPiAtICogJmRtYV9idWZfb3BzLnJlbGVhc2UgZnVuY3Rpb24g aXMgY2FsbGVkLiBGb3IgR0VNLWJhc2VkIGRyaXZlcnMsCj4gLSAqIHRoZSBkbWFfYnVmIHNob3Vs ZCBiZSBleHBvcnRlZCB1c2luZyBkcm1fZ2VtX2RtYWJ1Zl9leHBvcnQoKSBhbmQKPiAtICogdGhl biByZWxlYXNlZCBieSBkcm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlKCkuCj4gLSAqCj4gLSAqIE9uIHRo ZSBpbXBvcnQgdGhlIGltcG9ydGluZyBHRU0gb2JqZWN0IGhvbGRzIGEgcmVmZXJlbmNlIHRvIHRo ZQo+IC0gKiBkbWFfYnVmICh3aGljaCBpbiB0dXJuIGhvbGRzIGEgcmVmIHRvIHRoZSBleHBvcnRp bmcgR0VNIG9iamVjdCkuCj4gLSAqIEl0IHRha2VzIHRoYXQgcmVmZXJlbmNlIGluIHRoZSBmZF90 b19oYW5kbGUgaW9jdGwuCj4gLSAqIEl0IGNhbGxzIGRtYV9idWZfZ2V0LCBjcmVhdGVzIGFuIGF0 dGFjaG1lbnQgdG8gaXQgYW5kIHN0b3JlcyB0aGUKPiAtICogYXR0YWNobWVudCBpbiB0aGUgR0VN IG9iamVjdC4gV2hlbiB0aGlzIGF0dGFjaG1lbnQgaXMgZGVzdHJveWVkCj4gLSAqIHdoZW4gdGhl IGltcG9ydGVkIG9iamVjdCBpcyBkZXN0cm95ZWQsIHdlIHJlbW92ZSB0aGUgYXR0YWNobWVudAo+ IC0gKiBhbmQgZHJvcCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBkbWFfYnVmLgo+IC0gKgo+IC0gKiBX aGVuIGFsbCB0aGUgcmVmZXJlbmNlcyB0byB0aGUgJmRtYV9idWYgYXJlIGRyb3BwZWQsIGkuZS4g d2hlbgo+IC0gKiB1c2Vyc3BhY2UgaGFzIGNsb3NlZCBib3RoIGhhbmRsZXMgdG8gdGhlIGltcG9y dGVkIEdFTSBvYmplY3QgKHRocm91Z2ggdGhlCj4gLSAqIEZEX1RPX0hBTkRMRSBJT0NUTCkgYW5k IGNsb3NlZCB0aGUgZmlsZSBkZXNjcmlwdG9yIG9mIHRoZSBleHBvcnRlZAo+IC0gKiAodGhyb3Vn aCB0aGUgSEFORExFX1RPX0ZEIElPQ1RMKSBkbWFfYnVmLCBhbmQgYWxsIGtlcm5lbC1pbnRlcm5h bCByZWZlcmVuY2VzCj4gLSAqIGFyZSBhbHNvIGdvbmUsIHRoZW4gdGhlIGRtYV9idWYgZ2V0cyBk ZXN0cm95ZWQuICBUaGlzIGNhbiBhbHNvIGhhcHBlbiBhcyBhCj4gLSAqIHBhcnQgb2YgdGhlIGNs ZWFuIHVwIHByb2NlZHVyZSBpbiB0aGUgZHJtX3JlbGVhc2UoKSBmdW5jdGlvbiBpZiB1c2Vyc3Bh Y2UKPiAtICogZmFpbHMgdG8gcHJvcGVybHkgY2xlYW4gdXAuICBOb3RlIHRoYXQgYm90aCB0aGUg a2VybmVsIGFuZCB1c2Vyc3BhY2UgKGJ5Cj4gLSAqIGtlZWVwaW5nIHRoZSBQUklNRSBmaWxlIGRl c2NyaXB0b3JzIG9wZW4pIGNhbiBob2xkIHJlZmVyZW5jZXMgb250byBhCj4gLSAqICZkbWFfYnVm Lgo+IC0gKgo+IC0gKiBUaHVzIHRoZSBjaGFpbiBvZiByZWZlcmVuY2VzIGFsd2F5cyBmbG93cyBp biBvbmUgZGlyZWN0aW9uCj4gLSAqIChhdm9pZGluZyBsb29wcyk6IGltcG9ydGluZ19nZW0gLT4g ZG1hYnVmIC0+IGV4cG9ydGluZ19nZW0KPiAtICoKPiAtICogU2VsZi1pbXBvcnRpbmc6IGlmIHVz ZXJzcGFjZSBpcyB1c2luZyBQUklNRSBhcyBhIHJlcGxhY2VtZW50IGZvciBmbGluawo+IC0gKiB0 aGVuIGl0IHdpbGwgZ2V0IGEgZmQtPmhhbmRsZSByZXF1ZXN0IGZvciBhIEdFTSBvYmplY3QgdGhh dCBpdCBjcmVhdGVkLgo+IC0gKiBEcml2ZXJzIHNob3VsZCBkZXRlY3QgdGhpcyBzaXR1YXRpb24g YW5kIHJldHVybiBiYWNrIHRoZSBnZW0gb2JqZWN0Cj4gLSAqIGZyb20gdGhlIGRtYS1idWYgcHJp dmF0ZS4gIFByaW1lIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5IGZvciBkcml2ZXJzIHRoYXQK PiAtICogdXNlIHRoZSBkcm1fZ2VtX3ByaW1lX3tpbXBvcnQsZXhwb3J0fSBoZWxwZXJzLgo+IC0g Kgo+IC0gKiBHRU0gc3RydWN0ICZkbWFfYnVmX29wcyBzeW1ib2xzIGFyZSBub3cgZXhwb3J0ZWQu IFRoZXkgY2FuIGJlIHJlc3VlZCBieQo+IC0gKiBkcml2ZXJzIHdoaWNoIGltcGxlbWVudCBHRU0g aW50ZXJmYWNlLgo+ICsvKioKPiArICogRE9DOiBvdmVydmlldyBhbmQgbGlmZXRpbWUgcnVsZXMK PiArICoKPiArICogU2ltaWxhciB0byBHRU0gZ2xvYmFsIG5hbWVzLCBQUklNRSBmaWxlIGRlc2Ny aXB0b3JzIGFyZSBhbHNvIHVzZWQgdG8gc2hhcmUKPiArICogYnVmZmVyIG9iamVjdHMgYWNyb3Nz IHByb2Nlc3Nlcy4gVGhleSBvZmZlciBhZGRpdGlvbmFsIHNlY3VyaXR5OiBhcyBmaWxlCj4gKyAq IGRlc2NyaXB0b3JzIG11c3QgYmUgZXhwbGljaXRseSBzZW50IG92ZXIgVU5JWCBkb21haW4gc29j a2V0cyB0byBiZSBzaGFyZWQKPiArICogYmV0d2VlbiBhcHBsaWNhdGlvbnMsIHRoZXkgY2FuJ3Qg YmUgZ3Vlc3NlZCBsaWtlIHRoZSBnbG9iYWxseSB1bmlxdWUgR0VNCj4gKyAqIG5hbWVzLgo+ICsg Kgo+ICsgKiBEcml2ZXJzIHRoYXQgc3VwcG9ydCB0aGUgUFJJTUUgQVBJIG11c3Qgc2V0IHRoZSBE UklWRVJfUFJJTUUgYml0IGluIHRoZQo+ICsgKiAmZHJtX2RyaXZlci5kcml2ZXJfZmVhdHVyZXMg ZmllbGQsIGFuZCBpbXBsZW1lbnQgdGhlCj4gKyAqICZkcm1fZHJpdmVyLnByaW1lX2hhbmRsZV90 b19mZCBhbmQgJmRybV9kcml2ZXIucHJpbWVfZmRfdG9faGFuZGxlIG9wZXJhdGlvbnMuCj4gKyAq IEdFTSBiYXNlZCBkcml2ZXJzIG11c3QgdXNlIGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKCkg YW5kCj4gKyAqIGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlKCkgdG8gaW1wbGVtZW50IHRoZXNl LiBGb3IgR0VNIGJhc2VkIGRyaXZlcnMgdGhlCj4gKyAqIGFjdHVhbCBkcml2ZXIgaW50ZXJmYWNl cyBpcyBwcm92aWRlZCB0aHJvdWdoIHRoZSAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZXhwb3J0Cj4g KyAqIGFuZCAmZHJtX2RyaXZlci5nZW1fcHJpbWVfaW1wb3J0IGhvb2tzLgo+ICsgKgo+ICsgKiAm ZG1hX2J1Zl9vcHMgaW1wbGVtZW50YXRpb25zIGZvciBHRU0gZHJpdmVycyBhcmUgYWxsIGluZGl2 aWR1YWxseSBleHBvcnRlZAo+ICsgKiBmb3IgZHJpdmVycyB3aGljaCBuZWVkIHRvIG92ZXJ3cml0 ZSBvciByZWltcGxlbWVudCBzb21lIG9mIHRoZW0uCj4gKyAqCj4gKyAqIFJlZmVyZW5jZSBDb3Vu dGluZyBmb3IgR0VNIERyaXZlcnMKPiArICogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgo+ICsgKgo+ICsgKiBPbiB0aGUgZXhwb3J0IHRoZSAmZG1hX2J1ZiBob2xkcyBhIHJlZmVy ZW5jZSB0byB0aGUgZXhwb3J0ZWQgYnVmZmVyIG9iamVjdCwKPiArICogdXN1YWxseSBhICZkcm1f Z2VtX29iamVjdC4gSXQgdGFrZXMgdGhpcyByZWZlcmVuY2UgaW4gdGhlIFBSSU1FX0hBTkRMRV9U T19GRAo+ICsgKiBJT0NUTCwgd2hlbiBpdCBmaXJzdCBjYWxscyAmZHJtX2dlbV9vYmplY3RfZnVu Y3MuZXhwb3J0Cj4gKyAqIGFuZCBzdG9yZXMgdGhlIGV4cG9ydGluZyBHRU0gb2JqZWN0IGluIHRo ZSAmZG1hX2J1Zi5wcml2IGZpZWxkLiBUaGlzCj4gKyAqIHJlZmVyZW5jZSBuZWVkcyB0byBiZSBy ZWxlYXNlZCB3aGVuIHRoZSBmaW5hbCByZWZlcmVuY2UgdG8gdGhlICZkbWFfYnVmCj4gKyAqIGl0 c2VsZiBpcyBkcm9wcGVkIGFuZCBpdHMgJmRtYV9idWZfb3BzLnJlbGVhc2UgZnVuY3Rpb24gaXMg Y2FsbGVkLiAgRm9yCj4gKyAqIEdFTS1iYXNlZCBkcml2ZXJzLCB0aGUgJmRtYV9idWYgc2hvdWxk IGJlIGV4cG9ydGVkIHVzaW5nCj4gKyAqIGRybV9nZW1fZG1hYnVmX2V4cG9ydCgpIGFuZCB0aGVu IHJlbGVhc2VkIGJ5IGRybV9nZW1fZG1hYnVmX3JlbGVhc2UoKS4KPiArICoKPiArICogVGh1cyB0 aGUgY2hhaW4gb2YgcmVmZXJlbmNlcyBhbHdheXMgZmxvd3MgaW4gb25lIGRpcmVjdGlvbiwgYXZv aWRpbmcgbG9vcHM6Cj4gKyAqIGltcG9ydGluZyBHRU0gb2JqZWN0IC0+IGRtYS1idWYgLT4gZXhw b3J0ZWQgR0VNIGJvLiBBIGZ1cnRoZXIgY29tcGxpY2F0aW9uCj4gKyAqIGFyZSB0aGUgbG9va3Vw IGNhY2hlcyBmb3IgaW1wb3J0IGFuZCBleHBvcnQuIFRoZXNlIGFyZSByZXF1aXJlZCB0byBndWFy YW50ZWUKPiArICogdGhhdCBhbnkgZ2l2ZW4gb2JqZWN0IHdpbGwgYWx3YXlzIGhhdmUgb25seSBv bmUgdW5pcWUgdXNlcnNwYWNlIGhhbmRsZS4gVGhpcwo+ICsgKiBpcyByZXF1aXJlZCB0byBhbGxv dyB1c2Vyc3BhY2UgdG8gZGV0ZWN0IGR1cGxpY2F0ZWQgaW1wb3J0cywgc2luY2Ugc29tZSBHRU0K PiArICogZHJpdmVycyBkbyBmYWlsIGNvbW1hbmQgc3VibWlzc2lvbnMgaWYgYSBnaXZlbiBidWZm ZXIgb2JqZWN0IGlzIGxpc3RlZCBtb3JlCj4gKyAqIHRoYW4gb25jZS4gVGhlc2UgaW1wb3J0IGFu ZCBleHBvcnQgY2FjaGVzIGluICZkcm1fcHJpbWVfZmlsZV9wcml2YXRlIG9ubHkKPiArICogcmV0 YWluIGEgd2VhayByZWZlcmVuY2UsIHdoaWNoIGlzIGNsZWFuZWQgdXAgd2hlbiB0aGUgY29ycmVz cG9uZGluZyBvYmplY3QgaXMKPiArICogcmVsZWFzZWQuCj4gKyAqCj4gKyAqIFNlbGYtaW1wb3J0 aW5nOiBJZiB1c2Vyc3BhY2UgaXMgdXNpbmcgUFJJTUUgYXMgYSByZXBsYWNlbWVudCBmb3IgZmxp bmsgdGhlbgo+ICsgKiBpdCB3aWxsIGdldCBhIGZkLT5oYW5kbGUgcmVxdWVzdCBmb3IgYSBHRU0g b2JqZWN0IHRoYXQgaXQgY3JlYXRlZC4gIERyaXZlcnMKPiArICogc2hvdWxkIGRldGVjdCB0aGlz IHNpdHVhdGlvbiBhbmQgcmV0dXJuIGJhY2sgdGhlIHVuZGVybHlpbmcgb2JqZWN0IGZyb20gdGhl Cj4gKyAqIGRtYS1idWYgcHJpdmF0ZS4gRm9yIEdFTSBiYXNlZCBkcml2ZXJzIHRoaXMgaXMgaGFu ZGxlZCBpbgo+ICsgKiBkcm1fZ2VtX3ByaW1lX2ltcG9ydCgpIGFscmVhZHkuCj4gICAqLwo+ICAK PiAgc3RydWN0IGRybV9wcmltZV9tZW1iZXIgewo+IEBAIC0yMjAsNyArMjI2LDcgQEAgdm9pZCBk cm1fcHJpbWVfZGVzdHJveV9maWxlX3ByaXZhdGUoc3RydWN0IGRybV9wcmltZV9maWxlX3ByaXZh dGUgKnByaW1lX2Zwcml2KQo+ICB9Cj4gIAo+ICAvKioKPiAtICogZHJtX2dlbV9kbWFidWZfZXhw b3J0IC0gZG1hX2J1ZiBleHBvcnQgaW1wbGVtZW50YXRpb24gZm9yIEdFTQo+ICsgKiBkcm1fZ2Vt X2RtYWJ1Zl9leHBvcnQgLSAmZG1hX2J1ZiBleHBvcnQgaW1wbGVtZW50YXRpb24gZm9yIEdFTQo+ ICAgKiBAZGV2OiBwYXJlbnQgZGV2aWNlIGZvciB0aGUgZXhwb3J0ZWQgZG1hYnVmCj4gICAqIEBl eHBfaW5mbzogdGhlIGV4cG9ydCBpbmZvcm1hdGlvbiB1c2VkIGJ5IGRtYV9idWZfZXhwb3J0KCkK PiAgICoKPiBAQCAtMjQ4LDExICsyNTQsMTEgQEAgc3RydWN0IGRtYV9idWYgKmRybV9nZW1fZG1h YnVmX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICBFWFBPUlRfU1lNQk9MKGRybV9n ZW1fZG1hYnVmX2V4cG9ydCk7Cj4gIAo+ICAvKioKPiAtICogZHJtX2dlbV9kbWFidWZfcmVsZWFz ZSAtIGRtYV9idWYgcmVsZWFzZSBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCj4gKyAqIGRybV9nZW1f ZG1hYnVmX3JlbGVhc2UgLSAmZG1hX2J1ZiByZWxlYXNlIGltcGxlbWVudGF0aW9uIGZvciBHRU0K PiAgICogQGRtYV9idWY6IGJ1ZmZlciB0byBiZSByZWxlYXNlZAo+ICAgKgo+ICAgKiBHZW5lcmlj IHJlbGVhc2UgZnVuY3Rpb24gZm9yIGRtYV9idWZzIGV4cG9ydGVkIGFzIFBSSU1FIGJ1ZmZlcnMu IEdFTSBkcml2ZXJzCj4gLSAqIG11c3QgdXNlIHRoaXMgaW4gdGhlaXIgZG1hX2J1ZiBvcHMgc3Ry dWN0dXJlIGFzIHRoZSByZWxlYXNlIGNhbGxiYWNrLgo+ICsgKiBtdXN0IHVzZSB0aGlzIGluIHRo ZWlyICZkbWFfYnVmX29wcyBzdHJ1Y3R1cmUgYXMgdGhlIHJlbGVhc2UgY2FsbGJhY2suCj4gICAq IGRybV9nZW1fZG1hYnVmX3JlbGVhc2UoKSBzaG91bGQgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3 aXRoCj4gICAqIGRybV9nZW1fZG1hYnVmX2V4cG9ydCgpLgo+ICAgKi8KPiBAQCAtMjc4LDcgKzI4 NCw5IEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9kbWFidWZfcmVsZWFzZSk7Cj4gICAqIFRoaXMg aXMgdGhlIFBSSU1FIGltcG9ydCBmdW5jdGlvbiB3aGljaCBtdXN0IGJlIHVzZWQgbWFuZGF0b3Jp bHkgYnkgR0VNCj4gICAqIGRyaXZlcnMgdG8gZW5zdXJlIGNvcnJlY3QgbGlmZXRpbWUgbWFuYWdl bWVudCBvZiB0aGUgdW5kZXJseWluZyBHRU0gb2JqZWN0Lgo+ICAgKiBUaGUgYWN0dWFsIGltcG9y dGluZyBvZiBHRU0gb2JqZWN0IGZyb20gdGhlIGRtYS1idWYgaXMgZG9uZSB0aHJvdWdoIHRoZQo+ IC0gKiBnZW1faW1wb3J0X2V4cG9ydCBkcml2ZXIgY2FsbGJhY2suCj4gKyAqICZkcm1fZHJpdmVy LmdlbV9pbXBvcnRfZXhwb3J0IGRyaXZlciBjYWxsYmFjay4KCnMvZ2VtX2ltcG9ydF9leHBvcnQv Z2VtX3ByaW1lX2ltcG9ydC8KCj4gKyAqCj4gKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGEg bmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICAgKi8KPiAgaW50IGRybV9nZW1fcHJp bWVfZmRfdG9faGFuZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCSAgICAgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgaW50IHByaW1lX2ZkLAo+IEBAIC00MTIsNyArNDIwLDcg QEAgc3RhdGljIHN0cnVjdCBkbWFfYnVmICpleHBvcnRfYW5kX3JlZ2lzdGVyX29iamVjdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgKiBUaGlzIGlzIHRoZSBQUklNRSBleHBvcnQgZnVuY3Rp b24gd2hpY2ggbXVzdCBiZSB1c2VkIG1hbmRhdG9yaWx5IGJ5IEdFTQo+ICAgKiBkcml2ZXJzIHRv IGVuc3VyZSBjb3JyZWN0IGxpZmV0aW1lIG1hbmFnZW1lbnQgb2YgdGhlIHVuZGVybHlpbmcgR0VN IG9iamVjdC4KPiAgICogVGhlIGFjdHVhbCBleHBvcnRpbmcgZnJvbSBHRU0gb2JqZWN0IHRvIGEg ZG1hLWJ1ZiBpcyBkb25lIHRocm91Z2ggdGhlCj4gLSAqIGdlbV9wcmltZV9leHBvcnQgZHJpdmVy IGNhbGxiYWNrLgo+ICsgKiAmZHJtX2RyaXZlci5nZW1fcHJpbWVfZXhwb3J0IGRyaXZlciBjYWxs YmFjay4KPiAgICovCj4gIGludCBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHVp bnQzMl90IGhhbmRsZSwKPiBAQCAtNTIzLDIzICs1MzEsMzkgQEAgaW50IGRybV9wcmltZV9oYW5k bGVfdG9fZmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgLyoq Cj4gICAqIERPQzogUFJJTUUgSGVscGVycwo+ICAgKgo+IC0gKiBEcml2ZXJzIGNhbiBpbXBsZW1l bnQgQGdlbV9wcmltZV9leHBvcnQgYW5kIEBnZW1fcHJpbWVfaW1wb3J0IGluIHRlcm1zIG9mCj4g LSAqIHNpbXBsZXIgQVBJcyBieSB1c2luZyB0aGUgaGVscGVyIGZ1bmN0aW9ucyBAZHJtX2dlbV9w cmltZV9leHBvcnQgYW5kCj4gLSAqIEBkcm1fZ2VtX3ByaW1lX2ltcG9ydC4gIFRoZXNlIGZ1bmN0 aW9ucyBpbXBsZW1lbnQgZG1hLWJ1ZiBzdXBwb3J0IGluIHRlcm1zIG9mCj4gLSAqIHNpeCBsb3dl ci1sZXZlbCBkcml2ZXIgY2FsbGJhY2tzOgo+ICsgKiBEcml2ZXJzIGNhbiBpbXBsZW1lbnQgJmRy bV9nZW1fb2JqZWN0X2Z1bmNzLmV4cG9ydCBhbmQKPiArICogJmRybV9kcml2ZXIuZ2VtX3ByaW1l X2ltcG9ydCBpbiB0ZXJtcyBvZiBzaW1wbGVyIEFQSXMgYnkgdXNpbmcgdGhlIGhlbHBlcgo+ICsg KiBmdW5jdGlvbnMgZHJtX2dlbV9wcmltZV9leHBvcnQoKSBhbmQgZHJtX2dlbV9wcmltZV9pbXBv cnQoKS4gIFRoZXNlIGZ1bmN0aW9ucwoKTWF5YmUgeW91IHdhbnQgdG8gbWVudGlvbiB0aGF0IHRo ZXNlIGZ1bmN0aW9ucyBhcmUgdGhlIGRlZmF1bHQgc28KZHJpdmVycyBkb24ndCBoYXZlIHRvIHNl dCB0aGVtLgoKRG91YmxlIHNwYWNlIGJlZm9yZTogVGhlc2UgZnVuY3Rpb25zCgo+ICsgKiBpbXBs ZW1lbnQgZG1hLWJ1ZiBzdXBwb3J0IGluIHRlcm1zIG9mIHNvbWUgbG93ZXItbGV2ZWwgaGVscGVy cywgd2hpY2ggYXJlCj4gKyAqIGFnYWluIGV4cG9ydGVkIGZvciBkcml2ZXJzIHRvIHVzZSBpbmRp dmlkdWFsbHk6Cj4gKyAqCj4gKyAqIEV4cG9ydGluZyBidWZmZXJzCj4gKyAqIH5+fn5+fn5+fn5+ fn5+fn5+Cj4gKyAqCj4gKyAqIE9wdGlvbmFsIHBpbm5pbmcgb2YgYnVmZmVycyBpcyBoYW5kbGVk IGF0IGRtYS1idWYgYXR0YWNoIGFuZCBkZXRhY2ggdGltZSBpbgo+ICsgKiBkcm1fZ2VtX21hcF9h dHRhY2goKSBhbmQgZHJtX2dlbV9tYXBfZGV0YWNoKCkuIEJhY2tpbmcgc3RvcmFnZSBpdHNlbGYg aXMKPiArICogaGFuZGxlZCBieSBkcm1fZ2VtX21hcF9kbWFfYnVmKCkgYW5kIGRybV9nZW1fdW5t YXBfZG1hX2J1ZigpLCB3aGljaCByZWxpZXMgb24KPiArICogJmRybV9nZW1fb2JqZWN0X2Z1bmNz LmdldF9zZ190YWJsZS4KPiArICoKPiArICogRm9yIGtlcm5lbC1pbnRlcm5hbCBhY2Nlc3MgdGhl cmUncyBkcm1fZ2VtX2RtYWJ1Zl92bWFwKCkgYW5kCj4gKyAqIGRybV9nZW1fZG1hYnVmX3Z1bm1h cCgpLiBVc2Vyc3BhY2UgbW1hcCBzdXBwb3J0IGlzIHByb3ZpZGVkIGJ5Cj4gKyAqIGRybV9nZW1f ZG1hYnVmX21tYXAoKS4KPiArICoKPiArICogTm90ZSB0aGF0IHRoZXNlIGV4cG9ydCBoZWxwZXJz IGNhbiBvbmx5IGJlIHVzZWQgaWYgdGhlIHVuZGVybHlpbmcgYmFja2luZwo+ICsgKiBzdG9yYWdl IGlzIGZ1bGx5IGNvaGVyZW50IGFuZCBlaXRoZXIgcGVybWFuZW50bHkgcGlubmVkLCBvciBpdCBp cyBzYWZlIHRvIHBpbgo+ICsgKiBpdCBpbmRlZmluaXRlbHkuCj4gICAqCj4gLSAqIEV4cG9ydCBj YWxsYmFja3M6Cj4gKyAqIEZJWE1FOiBUaGUgdW5kZXJseWluZyBoZWxwZXIgZnVuY3Rpb25zIGFy ZSBuYW1lZCByYXRoZXIgaW5jb25zaXN0ZW50bHkuCj4gICAqCj4gLSAqICAqIEBnZW1fcHJpbWVf cGluIChvcHRpb25hbCk6IHByZXBhcmUgYSBHRU0gb2JqZWN0IGZvciBleHBvcnRpbmcKPiAtICog ICogQGdlbV9wcmltZV9nZXRfc2dfdGFibGU6IHByb3ZpZGUgYSBzY2F0dGVyL2dhdGhlciB0YWJs ZSBvZiBwaW5uZWQgcGFnZXMKPiAtICogICogQGdlbV9wcmltZV92bWFwOiB2bWFwIGEgYnVmZmVy IGV4cG9ydGVkIGJ5IHlvdXIgZHJpdmVyCj4gLSAqICAqIEBnZW1fcHJpbWVfdnVubWFwOiB2dW5t YXAgYSBidWZmZXIgZXhwb3J0ZWQgYnkgeW91ciBkcml2ZXIKPiAtICogICogQGdlbV9wcmltZV9t bWFwIChvcHRpb25hbCk6IG1tYXAgYSBidWZmZXIgZXhwb3J0ZWQgYnkgeW91ciBkcml2ZXIKPiAr ICogRXhwb3J0aW5nIGJ1ZmZlcnMKPiArICogfn5+fn5+fn5+fn5+fn5+fn4KPiAgICoKPiAtICog SW1wb3J0IGNhbGxiYWNrOgo+ICsgKiBJbXBvcnRpbmcgZG1hLWJ1ZnMgdXNpbmcgZHJtX2dlbV9w cmltZV9pbXBvcnQoKSByZWxpZXMgb24KPiArICogJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2ltcG9y dF9zZ190YWJsZS4KPiAgICoKPiAtICogICogQGdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUgKGlt cG9ydCk6IHByb2R1Y2UgYSBHRU0gb2JqZWN0IGZyb20gYW5vdGhlcgo+IC0gKiAgICBkcml2ZXIn cyBzY2F0dGVyL2dhdGhlciB0YWJsZQo+ICsgKiBOb3RlIHRoYXQgc2ltaWxhcmx5IHRvIHRoZSBl eHBvcnQgaGVscGVycyB0aGlzIHBlcm1hbmVudGx5IHBpbnMgdGhlCj4gKyAqIHVuZGVybHlpbmcg YmFja2luZyBzdG9yYWdlLiBXaGljaCBpcyBvayBmb3Igc2Nhbm91dCwgYnV0IGlzIG5vdCB0aGUg YmVzdAo+ICsgKiBvcHRpb24gZm9yIHNoYXJpbmcgbG90cyBvZiBidWZmZXJzIGZvciByZW5kZXJp bmcuCj4gICAqLwo+ICAKPiAgLyoqCj4gQEAgLTU0Nyw4ICs1NzEsOSBAQCBpbnQgZHJtX3ByaW1l X2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ ICAgKiBAZG1hX2J1ZjogYnVmZmVyIHRvIGF0dGFjaCBkZXZpY2UgdG8KPiAgICogQGF0dGFjaDog YnVmZmVyIGF0dGFjaG1lbnQgZGF0YQo+ICAgKgo+IC0gKiBDYWxscyAmZHJtX2RyaXZlci5nZW1f cHJpbWVfcGluIGZvciBkZXZpY2Ugc3BlY2lmaWMgaGFuZGxpbmcuIFRoaXMgY2FuIGJlCj4gLSAq IHVzZWQgYXMgdGhlICZkbWFfYnVmX29wcy5hdHRhY2ggY2FsbGJhY2suCj4gKyAqIENhbGxzICZk cm1fZ2VtX29iamVjdF9mdW5jcy5waW4gZm9yIGRldmljZSBzcGVjaWZpYyBoYW5kbGluZy4gVGhp cyBjYW4gYmUKPiArICogdXNlZCBhcyB0aGUgJmRtYV9idWZfb3BzLmF0dGFjaCBjYWxsYmFjay4g TXVzdCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGgKPiArICogZHJtX2dlbV9tYXBfZGV0YWNoKCkuCj4g ICAqCj4gICAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZh aWx1cmUuCj4gICAqLwo+IEBAIC01NjYsOCArNTkxLDkgQEAgRVhQT1JUX1NZTUJPTChkcm1fZ2Vt X21hcF9hdHRhY2gpOwo+ICAgKiBAZG1hX2J1ZjogYnVmZmVyIHRvIGRldGFjaCBmcm9tCj4gICAq IEBhdHRhY2g6IGF0dGFjaG1lbnQgdG8gYmUgZGV0YWNoZWQKPiAgICoKPiAtICogQ2xlYW5zIHVw ICZkbWFfYnVmX2F0dGFjaG1lbnQuIFRoaXMgY2FuIGJlIHVzZWQgYXMgdGhlICZkbWFfYnVmX29w cy5kZXRhY2gKPiAtICogY2FsbGJhY2suCj4gKyAqIENhbGxzICZkcm1fZ2VtX29iamVjdF9mdW5j cy5waW4gZm9yIGRldmljZSBzcGVjaWZpYyBoYW5kbGluZy4gIENsZWFucyB1cAo+ICsgKiAmZG1h X2J1Zl9hdHRhY2htZW50IGZyb20gZHJtX2dlbV9tYXBfYXR0YWNoKCkuIFRoaXMgY2FuIGJlIHVz ZWQgYXMgdGhlCj4gKyAqICZkbWFfYnVmX29wcy5kZXRhY2ggY2FsbGJhY2suCj4gICAqLwo+ICB2 b2lkIGRybV9nZW1fbWFwX2RldGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPiAgCQkJc3Ry dWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQo+IEBAIC01ODMsMTMgKzYwOSwxMyBAQCBF WFBPUlRfU1lNQk9MKGRybV9nZW1fbWFwX2RldGFjaCk7Cj4gICAqIEBhdHRhY2g6IGF0dGFjaG1l bnQgd2hvc2Ugc2NhdHRlcmxpc3QgaXMgdG8gYmUgcmV0dXJuZWQKPiAgICogQGRpcjogZGlyZWN0 aW9uIG9mIERNQSB0cmFuc2Zlcgo+ICAgKgo+IC0gKiBDYWxscyAmZHJtX2RyaXZlci5nZW1fcHJp bWVfZ2V0X3NnX3RhYmxlIGFuZCB0aGVuIG1hcHMgdGhlIHNjYXR0ZXJsaXN0LiBUaGlzCj4gLSAq IGNhbiBiZSB1c2VkIGFzIHRoZSAmZG1hX2J1Zl9vcHMubWFwX2RtYV9idWYgY2FsbGJhY2suCj4g KyAqIENhbGxzICZkcm1fZ2VtX29iamVjdF9mdW5jcy5nZXRfc2dfdGFibGUgYW5kIHRoZW4gbWFw cyB0aGUgc2NhdHRlcmxpc3QuIFRoaXMKPiArICogY2FuIGJlIHVzZWQgYXMgdGhlICZkbWFfYnVm X29wcy5tYXBfZG1hX2J1ZiBjYWxsYmFjay4gU2hvdWxkIGJlIHVzZWQgdG9nZXRoZXIKPiArICog d2l0aCBkcm1fZ2VtX3VubWFwX2RtYV9idWYoKS4KPiAgICoKPiAtICogUmV0dXJucyBzZ190YWJs ZSBjb250YWluaW5nIHRoZSBzY2F0dGVybGlzdCB0byBiZSByZXR1cm5lZDsgcmV0dXJucyBFUlJf UFRSCj4gKyAqIFJldHVybnM6c2dfdGFibGUgY29udGFpbmluZyB0aGUgc2NhdHRlcmxpc3QgdG8g YmUgcmV0dXJuZWQ7IHJldHVybnMgRVJSX1BUUgo+ICAgKiBvbiBlcnJvci4gTWF5IHJldHVybiAt RUlOVFIgaWYgaXQgaXMgaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwuCj4gICAqLwo+IC0KPiAgc3Ry dWN0IHNnX3RhYmxlICpkcm1fZ2VtX21hcF9kbWFfYnVmKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1l bnQgKmF0dGFjaCwKPiAgCQkJCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQo+ICB7 Cj4gQEAgLTY0Miw5ICs2NjgsOSBAQCBFWFBPUlRfU1lNQk9MKGRybV9nZW1fdW5tYXBfZG1hX2J1 Zik7Cj4gICAqIEBkbWFfYnVmOiBidWZmZXIgdG8gYmUgbWFwcGVkCj4gICAqCj4gICAqIFNldHMg dXAgYSBrZXJuZWwgdmlydHVhbCBtYXBwaW5nLiBUaGlzIGNhbiBiZSB1c2VkIGFzIHRoZSAmZG1h X2J1Zl9vcHMudm1hcAo+IC0gKiBjYWxsYmFjay4KPiArICogY2FsbGJhY2suIENhbGxzIGludG8g JmRybV9nZW1fb2JqZWN0X2Z1bmNzLnZtYXAgZm9yIGRldmljZSBzcGVjaWZpYyBoYW5kbGluZy4K PiAgICoKPiAtICogUmV0dXJucyB0aGUga2VybmVsIHZpcnR1YWwgYWRkcmVzcy4KPiArICogUmV0 dXJucyB0aGUga2VybmVsIHZpcnR1YWwgYWRkcmVzcyBvciBOVUxMIG9uIGZhaWx1cmUuCj4gICAq Lwo+ICB2b2lkICpkcm1fZ2VtX2RtYWJ1Zl92bWFwKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQo+ ICB7Cj4gQEAgLTY2NSw3ICs2OTEsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9nZW1fZG1hYnVmX3Zt YXApOwo+ICAgKiBAdmFkZHI6IHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIGJ1ZmZlcgo+ICAg Kgo+ICAgKiBSZWxlYXNlcyBhIGtlcm5lbCB2aXJ0dWFsIG1hcHBpbmcuIFRoaXMgY2FuIGJlIHVz ZWQgYXMgdGhlCj4gLSAqICZkbWFfYnVmX29wcy52dW5tYXAgY2FsbGJhY2suCj4gKyAqICZkbWFf YnVmX29wcy52dW5tYXAgY2FsbGJhY2suIENhbGxzIGludG8gJmRybV9nZW1fb2JqZWN0X2Z1bmNz LnZ1bm1hcCBmb3IgZGV2aWNlIHNwZWNpZmljIGhhbmRsaW5nLgo+ICAgKi8KPiAgdm9pZCBkcm1f Z2VtX2RtYWJ1Zl92dW5tYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYsIHZvaWQgKnZhZGRyKQo+ ICB7Cj4gQEAgLTcyNyw3ICs3NTMsMTEgQEAgRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ByaW1lX21t YXApOwo+ICAgKiBAdm1hOiB2aXJ0dWFsIGFkZHJlc3MgcmFuZ2UKPiAgICoKPiAgICogUHJvdmlk ZXMgbWVtb3J5IG1hcHBpbmcgZm9yIHRoZSBidWZmZXIuIFRoaXMgY2FuIGJlIHVzZWQgYXMgdGhl Cj4gLSAqICZkbWFfYnVmX29wcy5tbWFwIGNhbGxiYWNrLgo+ICsgKiAmZG1hX2J1Zl9vcHMubW1h cCBjYWxsYmFjay4gSXQganVzdCBmb3J3YXJkcyB0byAmZHJtX2RyaXZlci5nZW1fcHJpbWVfbW1h cCwKPiArICogd2hpY2ggc2hvdWxkIGJlIHNldCB0byBkcm1fZ2VtX3ByaW1lX21tYXAoKS4KPiAr ICoKPiArICogRklYTUU6IFRoZXJlJ3MgcmVhbGx5IG5vIHBvaW50IHRvIHRoaXMgd3JhcHBlciwg ZHJpdmVycyB3aGljaCBuZWVkIGFueXRoaW5nCj4gKyAqIGVsc2UgYnV0IGRybV9nZW1fcHJpbWVf bW1hcCBjYW4gcm9sbCB0aGVpciBvd24gJmRtYV9idWZfb3BzLm1tYXAgY2FsbGJhY2suCj4gICAq Cj4gICAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBm YWlsdXJlLgo+ICAgKi8KPiBAQCAtNzYzLDYgKzc5Myw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZG1hX2J1Zl9vcHMgZHJtX2dlbV9wcmltZV9kbWFidWZfb3BzID0gIHsKPiAgICogVGhpcyBoZWxw ZXIgY3JlYXRlcyBhbiBzZyB0YWJsZSBvYmplY3QgZnJvbSBhIHNldCBvZiBwYWdlcwo+ICAgKiB0 aGUgZHJpdmVyIGlzIHJlc3BvbnNpYmxlIGZvciBtYXBwaW5nIHRoZSBwYWdlcyBpbnRvIHRoZQo+ ICAgKiBpbXBvcnRlcnMgYWRkcmVzcyBzcGFjZSBmb3IgdXNlIHdpdGggZG1hX2J1ZiBpdHNlbGYu Cj4gKyAqCj4gKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgJmRybV9nZW1fb2Jq ZWN0X2Z1bmNzLmdldF9zZ190YWJsZS4KPiAgICovCj4gIHN0cnVjdCBzZ190YWJsZSAqZHJtX3By aW1lX3BhZ2VzX3RvX3NnKHN0cnVjdCBwYWdlICoqcGFnZXMsIHVuc2lnbmVkIGludCBucl9wYWdl cykKPiAgewo+IEBAIC03OTMsNyArODI1LDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fcHJpbWVfcGFn ZXNfdG9fc2cpOwo+ICAgKiBAb2JqOiBHRU0gb2JqZWN0IHRvIGV4cG9ydAo+ICAgKiBAZmxhZ3M6 IGZsYWdzIGxpa2UgRFJNX0NMT0VYRUMgYW5kIERSTV9SRFdSCj4gICAqCj4gLSAqIFRoaXMgaXMg dGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBnZW1fcHJpbWVfZXhwb3J0IGZ1bmN0aW9ucyBmb3Ig R0VNIGRyaXZlcnMKPiArICogVGhpcyBpcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlICZkcm1f Z2VtX29iamVjdF9mdW5jcy5leHBvcnQgZnVuY3Rpb25zIGZvciBHRU0gZHJpdmVycwo+ICAgKiB1 c2luZyB0aGUgUFJJTUUgaGVscGVycy4KPiAgICovCj4gIHN0cnVjdCBkbWFfYnVmICpkcm1fZ2Vt X3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IEBAIC04MjMsOSArODU1LDEz IEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9wcmltZV9leHBvcnQpOwo+ICAgKiBAZG1hX2J1Zjog ZG1hLWJ1ZiBvYmplY3QgdG8gaW1wb3J0Cj4gICAqIEBhdHRhY2hfZGV2OiBzdHJ1Y3QgZGV2aWNl IHRvIGRtYV9idWYgYXR0YWNoCj4gICAqCj4gLSAqIFRoaXMgaXMgdGhlIGNvcmUgb2YgZHJtX2dl bV9wcmltZV9pbXBvcnQuIEl0J3MgZGVzaWduZWQgdG8gYmUgY2FsbGVkIGJ5Cj4gLSAqIGRyaXZl cnMgd2hvIHdhbnQgdG8gdXNlIGEgZGlmZmVyZW50IGRldmljZSBzdHJ1Y3R1cmUgdGhhbiBkZXYt PmRldiBmb3IKPiAtICogYXR0YWNoaW5nIHZpYSBkbWFfYnVmLgo+ICsgKiBUaGlzIGlzIHRoZSBj b3JlIG9mIGRybV9nZW1fcHJpbWVfaW1wb3J0KCkuIEl0J3MgZGVzaWduZWQgdG8gYmUgY2FsbGVk IGJ5Cj4gKyAqIGRyaXZlcnMgd2hvIHdhbnQgdG8gdXNlIGEgZGlmZmVyZW50IGRldmljZSBzdHJ1 Y3R1cmUgdGhhbiAmZHJtX2RldmljZS5kZXYgZm9yCj4gKyAqIGF0dGFjaGluZyB2aWEgZG1hX2J1 Zi4gVGhpcyBmdW5jdGlvbiBjYWxscwo+ICsgKiAmZHJtX2RyaXZlci5nZW1fcHJpbWVfaW1wb3J0 X3NnX3RhYmxlIGludGVybmFsbHkuCj4gKyAqCj4gKyAqIERyaXZlcnMgbXVzdCBhcnJhbmdlIHRv IGNhbGwgZHJtX3ByaW1lX2dlbV9kZXN0cm95KCkgZnJvbSB0aGVpcgo+ICsgKiAmZHJtX2dlbV9v YmplY3RfZnVuY3MuZnJlZSBob29rIHdoZW4gdXNpbmcgdGhpcyBmdW5jdGlvbi4KPiAgICovCj4g IHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZHJtX2dlbV9wcmltZV9pbXBvcnRfZGV2KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gIAkJCQkJICAgIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLAo+IEBA IC04ODksNyArOTI1LDExIEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9wcmltZV9pbXBvcnRfZGV2 KTsKPiAgICogQGRtYV9idWY6IGRtYS1idWYgb2JqZWN0IHRvIGltcG9ydAo+ICAgKgo+ICAgKiBU aGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZ2VtX3ByaW1lX2ltcG9ydCBmdW5jdGlv bnMgZm9yIEdFTSBkcml2ZXJzCj4gLSAqIHVzaW5nIHRoZSBQUklNRSBoZWxwZXJzLgo+ICsgKiB1 c2luZyB0aGUgUFJJTUUgaGVscGVycy4gRHJpdmVycyBjYW4gdXNlIHRoaXMgYXMgdGhlaXIKPiAr ICogJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2ltcG9ydCBpbXBsZW1lbnRhdGlvbi4KPiArICoKPiAr ICogRHJpdmVycyBtdXN0IGFycmFuZ2UgdG8gY2FsbCBkcm1fcHJpbWVfZ2VtX2Rlc3Ryb3koKSBm cm9tIHRoZWlyCj4gKyAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy5mcmVlIGhvb2sgd2hlbiB1c2lu ZyB0aGlzIGZ1bmN0aW9uLgo+ICAgKi8KPiAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpkcm1fZ2Vt X3ByaW1lX2ltcG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJCSAgICBzdHJ1Y3Qg ZG1hX2J1ZiAqZG1hX2J1ZikKPiBAQCAtOTA3LDYgKzk0Nyw5IEBAIEVYUE9SVF9TWU1CT0woZHJt X2dlbV9wcmltZV9pbXBvcnQpOwo+ICAgKgo+ICAgKiBFeHBvcnRzIGFuIHNnIHRhYmxlIGludG8g YW4gYXJyYXkgb2YgcGFnZXMgYW5kIGFkZHJlc3Nlcy4gVGhpcyBpcyBjdXJyZW50bHkKPiAgICog cmVxdWlyZWQgYnkgdGhlIFRUTSBkcml2ZXIgaW4gb3JkZXIgdG8gZG8gY29ycmVjdCBmYXVsdCBo YW5kbGluZy4KPiArICoKPiArICogRHJpdmVycyBjYW4gdXNlIHRoaXMgaW4gdGhlaXIgJmRybV9k cml2ZXIuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZQo+ICsgKiBpbXBsZW1lbnRhdGlvbi4KPiAg ICovCj4gIGludCBkcm1fcHJpbWVfc2dfdG9fcGFnZV9hZGRyX2FycmF5cyhzdHJ1Y3Qgc2dfdGFi bGUgKnNndCwgc3RydWN0IHBhZ2UgKipwYWdlcywKPiAgCQkJCSAgICAgZG1hX2FkZHJfdCAqYWRk cnMsIGludCBtYXhfZW50cmllcykKPiBAQCAtOTQ3LDcgKzk5MCw3IEBAIEVYUE9SVF9TWU1CT0wo ZHJtX3ByaW1lX3NnX3RvX3BhZ2VfYWRkcl9hcnJheXMpOwo+ICAgKiBAc2c6IHRoZSBzZy10YWJs ZSB3aGljaCB3YXMgcGlubmVkIGF0IGltcG9ydCB0aW1lCj4gICAqCj4gICAqIFRoaXMgaXMgdGhl IGNsZWFudXAgZnVuY3Rpb25zIHdoaWNoIEdFTSBkcml2ZXJzIG5lZWQgdG8gY2FsbCB3aGVuIHRo ZXkgdXNlCj4gLSAqIEBkcm1fZ2VtX3ByaW1lX2ltcG9ydCB0byBpbXBvcnQgZG1hLWJ1ZnMuCj4g KyAqIGRybV9nZW1fcHJpbWVfaW1wb3J0KCkgb3IgZHJtX2dlbV9wcmltZV9pbXBvcnRfZGV2KCkg dG8gaW1wb3J0IGRtYS1idWZzLgo+ICAgKi8KPiAgdm9pZCBkcm1fcHJpbWVfZ2VtX2Rlc3Ryb3ko c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBzZ190YWJsZSAqc2cpCj4gIHsKPiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Rydi5oIGIvaW5jbHVkZS9kcm0vZHJtX2Rydi5o Cj4gaW5kZXggNWM0ZmMwZGRjODYzLi5iYmIzYTZmZjQ0MTggMTAwNjQ0Cj4gLS0tIGEvaW5jbHVk ZS9kcm0vZHJtX2Rydi5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Rydi5oCj4gQEAgLTUwNSwy MSArNTA1LDI1IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKPiAgCSAqIEBnZW1fZnJlZV9vYmplY3Q6 IGRlY29uc3RydWN0b3IgZm9yIGRybV9nZW1fb2JqZWN0cwo+ICAJICoKPiAgCSAqIFRoaXMgaXMg ZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGJ5IG5ldyBkcml2ZXJzLiBVc2UKPiAt CSAqIEBnZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgaW5zdGVhZC4KPiArCSAqICZkcm1fZ2VtX29i amVjdF9mdW5jcy5mcmVlIGluc3RlYWQuCj4gIAkgKi8KPiAgCXZvaWQgKCpnZW1fZnJlZV9vYmpl Y3QpIChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4gIAo+ICAJLyoqCj4gIAkgKiBAZ2Vt X2ZyZWVfb2JqZWN0X3VubG9ja2VkOiBkZWNvbnN0cnVjdG9yIGZvciBkcm1fZ2VtX29iamVjdHMK PiAgCSAqCj4gLQkgKiBUaGlzIGlzIGZvciBkcml2ZXJzIHdoaWNoIGFyZSBub3QgZW5jdW1iZXJl ZCB3aXRoICZkcm1fZGV2aWNlLnN0cnVjdF9tdXRleAo+IC0JICogbGVnYWN5IGxvY2tpbmcgc2No ZW1lcy4gVXNlIHRoaXMgaG9vayBpbnN0ZWFkIG9mIEBnZW1fZnJlZV9vYmplY3QuCj4gKwkgKiBU aGlzIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBieSBuZXcgZHJpdmVycy4g VXNlCj4gKwkgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZnJlZSBpbnN0ZWFkLgo+ICsJICogQ29t cGFyZWQgdG8gQGdlbV9mcmVlX29iamVjdCB0aGlzIGlzIG5vdCBlbmN1bWJlcmVkIHdpdGgKPiAr CSAqICZkcm1fZGV2aWNlLnN0cnVjdF9tdXRleCBsZWdhY3kgbG9ja2luZyBzY2hlbWVzLgo+ICAJ ICovCj4gIAl2b2lkICgqZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkKSAoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmopOwo+ICAKPiAgCS8qKgo+ICAJICogQGdlbV9vcGVuX29iamVjdDoKPiAgCSAq Cj4gKwkgKiBUaGlzIGNhbGxiYWNrIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mICZkcm1fZ2Vt X29iamVjdF9mdW5jcy5vcGVuLgo+ICsJICoKPiAgCSAqIERyaXZlciBob29rIGNhbGxlZCB1cG9u IGdlbSBoYW5kbGUgY3JlYXRpb24KPiAgCSAqLwo+ICAJaW50ICgqZ2VtX29wZW5fb2JqZWN0KSAo c3RydWN0IGRybV9nZW1fb2JqZWN0ICosIHN0cnVjdCBkcm1fZmlsZSAqKTsKPiBAQCAtNTI3LDYg KzUzMSw4IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKPiAgCS8qKgo+ICAJICogQGdlbV9jbG9zZV9v YmplY3Q6Cj4gIAkgKgo+ICsJICogVGhpcyBjYWxsYmFjayBpcyBkZXByZWNhdGVkIGluIGZhdm91 ciBvZiAmZHJtX2dlbV9vYmplY3RfZnVuY3MuY2xvc2UuCj4gKwkgKgo+ICAJICogRHJpdmVyIGhv b2sgY2FsbGVkIHVwb24gZ2VtIGhhbmRsZSByZWxlYXNlCj4gIAkgKi8KPiAgCXZvaWQgKCpnZW1f Y2xvc2Vfb2JqZWN0KSAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICosIHN0cnVjdCBkcm1fZmlsZSAq KTsKPiBAQCAtNTM0LDYgKzU0MCw5IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKPiAgCS8qKgo+ICAJ ICogQGdlbV9wcmludF9pbmZvOgo+ICAJICoKPiArCSAqIFRoaXMgY2FsbGJhY2sgaXMgZGVwcmVj YXRlZCBpbiBmYXZvdXIgb2YKPiArCSAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy5wcmludF9pbmZv Lgo+ICsJICoKPiAgCSAqIElmIGRyaXZlciBzdWJjbGFzc2VzIHN0cnVjdCAmZHJtX2dlbV9vYmpl Y3QsIGl0IGNhbiBpbXBsZW1lbnQgdGhpcwo+ICAJICogb3B0aW9uYWwgaG9vayBmb3IgcHJpbnRp bmcgYWRkaXRpb25hbCBkcml2ZXIgc3BlY2lmaWMgaW5mby4KPiAgCSAqCj4gQEAgLTU0OCw1NiAr NTU3LDEyMCBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7Cj4gIAkvKioKPiAgCSAqIEBnZW1fY3JlYXRl X29iamVjdDogY29uc3RydWN0b3IgZm9yIGdlbSBvYmplY3RzCj4gIAkgKgo+IC0JICogSG9vayBm b3IgYWxsb2NhdGluZyB0aGUgR0VNIG9iamVjdCBzdHJ1Y3QsIGZvciB1c2UgYnkgY29yZQo+IC0J ICogaGVscGVycy4KPiArCSAqIEhvb2sgZm9yIGFsbG9jYXRpbmcgdGhlIEdFTSBvYmplY3Qgc3Ry dWN0LCBmb3IgdXNlIGJ5IHRoZSBDTUEgYW5kCj4gKwkgKiBTSE1FTSBHRU0gaGVscGVycy4KPiAg CSAqLwo+ICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICooKmdlbV9jcmVhdGVfb2JqZWN0KShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJCQkgICAgc2l6ZV90IHNpemUpOwo+IC0KPiAtCS8q IHByaW1lOiAqLwo+ICAJLyoqCj4gIAkgKiBAcHJpbWVfaGFuZGxlX3RvX2ZkOgo+ICAJICoKPiAt CSAqIGV4cG9ydCBoYW5kbGUgLT4gZmQgKHNlZSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCgp IGhlbHBlcikKPiArCSAqIE1haW4gUFJJTUUgZXhwb3J0IGZ1bmN0aW9uLiBTaG91bGQgYmUgaW1w bGVtZW50ZWQgd2l0aAo+ICsJICogZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQoKSBmb3IgR0VN IGJhc2VkIGRyaXZlcnMuCj4gKwkgKgo+ICsJICogRm9yIGFuIGluLWRlcHRoIGRpc2N1c3Npb24g c2VlIDpyZWY6YFBSSU1FIGJ1ZmZlciBzaGFyaW5nCj4gKwkgKiBkb2N1bWVudGF0aW9uIDxwcmlt ZV9idWZmZXJfc2hhcmluZz5gLgo+ICAJICovCj4gIAlpbnQgKCpwcmltZV9oYW5kbGVfdG9fZmQp KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+ICAJ CQkJdWludDMyX3QgaGFuZGxlLCB1aW50MzJfdCBmbGFncywgaW50ICpwcmltZV9mZCk7Cj4gIAkv KioKPiAgCSAqIEBwcmltZV9mZF90b19oYW5kbGU6Cj4gIAkgKgo+IC0JICogaW1wb3J0IGZkIC0+ IGhhbmRsZSAoc2VlIGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlKCkgaGVscGVyKQo+ICsJICog TWFpbiBQUklNRSBpbXBvcnQgZnVuY3Rpb24uIFNob3VsZCBiZSBpbXBsZW1lbnRlZCB3aXRoCj4g KwkgKiBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSgpIGZvciBHRU0gYmFzZWQgZHJpdmVycy4K PiArCSAqCj4gKwkgKiBGb3IgYW4gaW4tZGVwdGggZGlzY3Vzc2lvbiBzZWUgOnJlZjpgUFJJTUUg YnVmZmVyIHNoYXJpbmcKPiArCSAqIGRvY3VtZW50YXRpb24gPHByaW1lX2J1ZmZlcl9zaGFyaW5n PmAuCj4gIAkgKi8KPiAgCWludCAoKnByaW1lX2ZkX3RvX2hhbmRsZSkoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4gIAkJCQlpbnQgcHJpbWVfZmQs IHVpbnQzMl90ICpoYW5kbGUpOwo+ICAJLyoqCj4gIAkgKiBAZ2VtX3ByaW1lX2V4cG9ydDoKPiAg CSAqCj4gLQkgKiBleHBvcnQgR0VNIC0+IGRtYWJ1Zgo+IC0JICoKPiAtCSAqIFRoaXMgZGVmYXVs dHMgdG8gZHJtX2dlbV9wcmltZV9leHBvcnQoKSBpZiBub3Qgc2V0Lgo+ICsJICogRXhwb3J0IGhv b2sgZm9yIEdFTSBkcml2ZXJzLiBEZXByZWNhdGVkIGluIGZhdm91ciBvZgo+ICsJICogJmRybV9n ZW1fb2JqZWN0X2Z1bmNzLmV4cG9ydC4KPiAgCSAqLwo+ICAJc3RydWN0IGRtYV9idWYgKiAoKmdl bV9wcmltZV9leHBvcnQpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQlzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKm9iaiwgaW50IGZsYWdzKTsKPiAgCS8qKgo+ICAJICogQGdlbV9wcmltZV9p bXBvcnQ6Cj4gIAkgKgo+IC0JICogaW1wb3J0IGRtYWJ1ZiAtPiBHRU0KPiArCSAqIEltcG9ydCBo b29rIGZvciBHRU0gZHJpdmVycy4KPiAgCSAqCj4gIAkgKiBUaGlzIGRlZmF1bHRzIHRvIGRybV9n ZW1fcHJpbWVfaW1wb3J0KCkgaWYgbm90IHNldC4KPiAgCSAqLwo+ICAJc3RydWN0IGRybV9nZW1f b2JqZWN0ICogKCpnZW1fcHJpbWVfaW1wb3J0KShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJ CQkJc3RydWN0IGRtYV9idWYgKmRtYV9idWYpOwo+ICsKPiArCS8qKgo+ICsJICogQGdlbV9wcmlt ZV9waW46Cj4gKwkgKgo+ICsJICogRGVwcmVjYXRlZCBob29rIGluIGZhdm91ciBvZiAmZHJtX2dl bV9vYmplY3RfZnVuY3MucGluLgo+ICsJICovCj4gIAlpbnQgKCpnZW1fcHJpbWVfcGluKShzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAZ2VtX3ByaW1lX3Vu cGluOgo+ICsJICoKPiArCSAqIERlcHJlY2F0ZWQgaG9vayBpbiBmYXZvdXIgb2YgJmRybV9nZW1f b2JqZWN0X2Z1bmNzLnVucGluLgo+ICsJICovCj4gIAl2b2lkICgqZ2VtX3ByaW1lX3VucGluKShz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4gKwo+ICsKPiArCS8qKgo+ICsJICogQGdlbV9w cmltZV9nZXRfc2dfdGFibGU6Cj4gKwkgKgo+ICsJICogRGVwcmVjYXRlZCBob29rIGluIGZhdm91 ciBvZiAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZ2V0X3NnX3RhYmxlLgo+ICsJICovCj4gKwlzdHJ1 Y3Qgc2dfdGFibGUgKigqZ2VtX3ByaW1lX2dldF9zZ190YWJsZSkoc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpvYmopOwo+ICsKPiArCS8qKgo+ICsJICogQGdlbV9wcmltZV9yZXNfb2JqOgo+ICsJICoK PiArCSAqIE9wdGlvbmFsIGhvb2sgdG8gbG9vayB1cCB0aGUgJnJlc2VydmF0aW9uX29iamVjdCBm b3IgYW4gYnVmZmVyIHdoZW4KPiArCSAqIGV4cG9ydGluZyBpdC4KPiArCSAqCj4gKwkgKiBGSVhN RTogVGhpcyBob29rIGlzIGRlcHJlY2F0ZWQuIFVzZXJzIG9mIHRoaXMgaG9vayBzaG91bGQgYmUg cmVwbGFjZWQKPiArCSAqIGJ5IHNldHRpbmcgJmRybV9nZW1fb2JqZWN0LnJlc3YgaW5zdGVhZC4K PiArCSAqLwo+ICAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqICgqZ2VtX3ByaW1lX3Jlc19v YmopKAo+ICAJCQkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+IC0Jc3RydWN0IHNnX3Rh YmxlICooKmdlbV9wcmltZV9nZXRfc2dfdGFibGUpKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq KTsKPiArCj4gKwkvKioKPiArCSAqIEBnZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlOgo+ICsJICoK PiArCSAqIE9wdGlvbmFsIGhvb2sgdXNlZCBieSB0aGUgUFJJTUUgaGVscGVyIGZ1bmN0aW9ucwo+ ICsJICogZHJtX2dlbV9wcmltZV9pbXBvcnQoKSByZXNwZWN0aXZlbHkgZHJtX2dlbV9wcmltZV9p bXBvcnRfZGV2KCkuCj4gKwkgKi8KPiAgCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKCpnZW1fcHJp bWVfaW1wb3J0X3NnX3RhYmxlKSgKPiAgCQkJCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJ CQlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCj4gIAkJCQlzdHJ1Y3Qgc2dfdGFi bGUgKnNndCk7Cj4gKwkvKioKPiArCSAqIEBnZW1fcHJpbWVfdm1hcDoKPiArCSAqCj4gKwkgKiBE ZXByZWNhdGVkIHZtYXAgaG9vayBmb3IgR0VNIGRyaXZlcnMuIFBsZWFzZSB1c2UKPiArCSAqICZk cm1fZ2VtX29iamVjdF9mdW5jcy52bWFwIGluc3RlYWQuCj4gKwkgKi8KPiAgCXZvaWQgKigqZ2Vt X3ByaW1lX3ZtYXApKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiArCj4gKwkvKioKPiAr CSAqIEBnZW1fcHJpbWVfdnVubWFwOgo+ICsJICoKPiArCSAqIERlcHJlY2F0ZWQgdnVubWFwIGhv b2sgZm9yIEdFTSBkcml2ZXJzLiBQbGVhc2UgdXNlCj4gKwkgKiAmZHJtX2dlbV9vYmplY3RfZnVu Y3MudnVubWFwIGluc3RlYWQuCj4gKwkgKi8KPiAgCXZvaWQgKCpnZW1fcHJpbWVfdnVubWFwKShz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgdm9pZCAqdmFkZHIpOwo+ICsKPiArCS8qKgo+ICsJ ICogQGdlbV9wcmltZV9tbWFwOgo+ICsJICoKPiArCSAqIG1tYXAgaG9vayBmb3IgR0VNIGRyaXZl cnMsIHVzZWQgdG8gaW1wbGVtZW50IGRtYS1idWYgbW1hcCBpbiB0aGUKPiArCSAqIFBSSU1FIGhl bHBlcnMuCj4gKwkgKgo+ICsJICogRklYTUU6IFRoZXJlJ3Mgd2F5IHRvbyBtdWNoIGR1cGxpY2F0 aW9uIGdvaW5nIG9uIGhlcmUsIGFuZCBhbHNvIG1vdmVkCj4gKwkgKiB0byAmZHJtX2dlbV9vYmpl Y3RfZnVuY3MuCj4gKwkgKi8KPiAgCWludCAoKmdlbV9wcmltZV9tbWFwKShzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iaiwKPiAgCQkJCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKPiAgCj4g QEAgLTY2NSw2ICs3MzgsOSBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7Cj4gIAo+ICAJLyoqCj4gIAkg KiBAZ2VtX3ZtX29wczogRHJpdmVyIHByaXZhdGUgb3BzIGZvciB0aGlzIG9iamVjdAo+ICsJICoK PiArCSAqIEZvciBHRU0gZHJpdmVyIHRoaXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YKCnMv ZHJpdmVyL2RyaXZlcnMvCgo+ICsJICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnZtX29wcy4KPiAg CSAqLwo+ICAJY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0ICpnZW1fdm1fb3BzOwo+ ICAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2dlbS5oIGIvaW5jbHVkZS9kcm0vZHJt X2dlbS5oCj4gaW5kZXggYTkxMjFmZTY2ZWEyLi45YWY4ODIzOGVlNWMgMTAwNjQ0Cj4gLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2dlbS5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2dlbS5oCj4gQEAg LTEwMSw3ICsxMDEsNyBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3Mgewo+ICAJLyoqCj4g IAkgKiBAcGluOgo+ICAJICoKPiAtCSAqIFBpbiBiYWNraW5nIGJ1ZmZlciBpbiBtZW1vcnkuCj4g KwkgKiBQaW4gYmFja2luZyBidWZmZXIgaW4gbWVtb3J5LiBVc2VkIGJ5IHRoZSBkcm1fZ2VtX21h cF9hdHRhY2ggaGVscGVyLgoKcy9kcm1fZ2VtX21hcF9hdHRhY2gvZHJtX2dlbV9tYXBfYXR0YWNo KCkvCgpMb29rcyBzYW5lOgoKQWNrZWQtYnk6IE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxmQHRyb25u ZXMub3JnPgoKPiAgCSAqCj4gIAkgKiBUaGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgo+ICAJICov Cj4gQEAgLTExMCw3ICsxMTAsNyBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3Mgewo+ICAJ LyoqCj4gIAkgKiBAdW5waW46Cj4gIAkgKgo+IC0JICogVW5waW4gYmFja2luZyBidWZmZXIuCj4g KwkgKiBVbnBpbiBiYWNraW5nIGJ1ZmZlci4gVXNlZCBieSB0aGUgZHJtX2dlbV9tYXBfZGV0YWNo KCkgaGVscGVyLgo+ICAJICoKPiAgCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCj4gIAkg Ki8KPiBAQCAtMTIwLDE2ICsxMjAsMjEgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNzIHsK PiAgCSAqIEBnZXRfc2dfdGFibGU6Cj4gIAkgKgo+ICAJICogUmV0dXJucyBhIFNjYXR0ZXItR2F0 aGVyIHRhYmxlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWZmZXIuCj4gLQkgKiBVc2VkIHdoZW4g ZXhwb3J0aW5nIGEgYnVmZmVyLgo+ICsJICogVXNlZCB3aGVuIGV4cG9ydGluZyBhIGJ1ZmZlciBi eSB0aGUgZHJtX2dlbV9tYXBfZG1hX2J1ZigpIGhlbHBlci4KPiArCSAqIFJlbGVhc2luZyBpcyBk b25lIGJ5IGNhbGxpbmcgZG1hX3VubWFwX3NnX2F0dHJzKCkgYW5kIHNnX2ZyZWVfdGFibGUoKQo+ ICsJICogaW4gZHJtX2dlbV91bm1hcF9idWYoKSwgdGhlcmVmb3JlIHRoZXNlIGhlbHBlcnMgYW5k IHRoaXMgY2FsbGJhY2sKPiArCSAqIGhlcmUgY2Fubm90IGJlIHVzZWQgZm9yIHNnIHRhYmxlcyBw b2ludGluZyBhdCBkcml2ZXIgcHJpdmF0ZSBtZW1vcnkKPiArCSAqIHJhbmdlcy4KPiAgCSAqCj4g LQkgKiBUaGlzIGNhbGxiYWNrIGlzIG1hbmRhdG9yeSBpZiBidWZmZXIgZXhwb3J0IGlzIHN1cHBv cnRlZC4KPiArCSAqIFNlZSBhbHNvIGRybV9wcmltZV9wYWdlc190b19zZygpLgo+ICAJICovCj4g IAlzdHJ1Y3Qgc2dfdGFibGUgKigqZ2V0X3NnX3RhYmxlKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iaik7Cj4gIAo+ICAJLyoqCj4gIAkgKiBAdm1hcDoKPiAgCSAqCj4gLQkgKiBSZXR1cm5zIGEg dmlydHVhbCBhZGRyZXNzIGZvciB0aGUgYnVmZmVyLgo+ICsJICogUmV0dXJucyBhIHZpcnR1YWwg YWRkcmVzcyBmb3IgdGhlIGJ1ZmZlci4gVXNlZCBieSB0aGUKPiArCSAqIGRybV9nZW1fZG1hYnVm X3ZtYXAoKSBoZWxwZXIuCj4gIAkgKgo+ICAJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4K PiAgCSAqLwo+IEBAIC0xMzgsNyArMTQzLDggQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNz IHsKPiAgCS8qKgo+ICAJICogQHZ1bm1hcDoKPiAgCSAqCj4gLQkgKiBSZWxlYXNlcyB0aGUgdGhl IGFkZHJlc3MgcHJldmlvdXNseSByZXR1cm5lZCBieSBAdm1hcC4KPiArCSAqIFJlbGVhc2VzIHRo ZSB0aGUgYWRkcmVzcyBwcmV2aW91c2x5IHJldHVybmVkIGJ5IEB2bWFwLiBVc2VkIGJ5IHRoZQo+ ICsJICogZHJtX2dlbV9kbWFidWZfdnVubWFwKCkgaGVscGVyLgo+ICAJICoKPiAgCSAqIFRoaXMg Y2FsbGJhY2sgaXMgb3B0aW9uYWwuCj4gIAkgKi8KPiAKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVs