From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/2] drm/prime: Update docs Date: Thu, 20 Jun 2019 14:44:19 +0200 Message-ID: <20190620124419.GT12905@phenom.ffwll.local> 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: Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by gabe.freedesktop.org (Postfix) with ESMTPS id 93C406E42D for ; Thu, 20 Jun 2019 12:44:26 +0000 (UTC) Received: by mail-ed1-x544.google.com with SMTP id k8so4516155eds.7 for ; Thu, 20 Jun 2019 05:44:26 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Noralf =?iso-8859-1?Q?Tr=F8nnes?= Cc: Daniel Vetter , Intel Graphics Development , DRI Development , Daniel Vetter , Sam Ravnborg List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdW4gMTksIDIwMTkgYXQgMDI6NDM6MjBQTSArMDIwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IAo+IAo+IERlbiAxOC4wNi4yMDE5IDExLjIwLCBza3JldiBEYW5pZWwgVmV0dGVy Ogo+ID4gWWVzIHRoaXMgaXMgYSBiaXQgYSBiaWcgcGF0Y2gsIGJ1dCBzaW5jZSBpdCdzIGVzc2Vu dGlhbGx5IGEgY29tcGxldGUKPiA+IHJld3JpdGUgb2YgYWxsIHRoZSBwcmltZSBkb2NzIEkgZGlk bid0IHNlZSBob3cgdG8gYmV0dGVyIHNwbGl0IGl0IHVwLgo+ID4gCj4gPiBDaGFuZ2VzOgo+ID4g LSBDb25zaXN0ZW50bHkgcG9pbnQgdG8gZHJtX2dlbV9vYmplY3RfZnVuY3MgYXMgdGhlIHByZWZl cnJlZCBob29rcywKPiA+ICAgd2hlcmUgYXBwbGljYWJsZS4KPiA+IAo+ID4gLSBEb2N1bWVudCBh bGwgdGhlIGhvb2tzIGluICZkcm1fZHJpdmVyIHRoYXQgbGFja2VkIGtlcm5lbGRvYy4KPiA+IAo+ ID4gLSBDb21wbGV0ZWx5IG5ldyBvdmVydmlldyBzZWN0aW9uLCB3aGljaCBub3cgYWxzbyBpbmNs dWRlcyB0aGUgY2xlYW5lZAo+ID4gICB1cCBsaWZldGltZS9yZWZlcmVuY2UgY291bnRpbmcgc3Vi Y2hhcHRlci4gSSBhbHNvIG1lbnRpb25lZCB0aGUgd2Vhawo+ID4gICByZWZlcmVuY2VzIGluIHRo ZXJlIGR1ZSB0byB0aGUgbG9va3VwIGNhY2hlcy4KPiA+IAo+ID4gLSBDb21wbGV0ZWx5IHJld3Jp dHRlbiBoZWxwZXIgaW50cm8gc2VjdGlvbiwgaGlnaGxpZ2h0IHRoZQo+ID4gICBpbXBvcnQvZXhw b3J0IHJlbGF0ZWQgZnVuY3Rpb25hbGl0eS4KPiA+IAo+ID4gLSBQb2xpc2ggZm9yIGFsbCB0aGUg ZnVuY3Rpb25zIGFuZCBtb3JlIGNyb3NzIHJlZmVyZW5jZXMuCj4gPiAKPiA+IEkgYWxzbyBzcHJp bmtsZWQgYSBidW5jaCBvZiB0b2RvcyBhbGwgb3Zlci4KPiA+IAo+ID4gTW9zdCBpbXBvcnRhbnQ6 IDAgY29kZSBjaGFuZ2VzIGluIGhlcmUuIFRoZSBjbGVhbnVwIG1vdGl2YXRlZCBieQo+ID4gcmVh ZGluZyBhbmQgaW1wcm92aW5nIGFsbCB0aGlzIHdpbGwgZm9sbG93IGxhdGVyIG9uLgo+ID4gCj4g PiB2MjogQWN0dWFsbHkgdXBkYXRlIHRoZSBwcmltZSBoZWxwZXIgZG9jcy4gUGx1cyBhZGQgYSBm ZXcgRklYTUVzIHRoYXQKPiA+IEkgd29uJ3QgYWRkcmVzcyByaWdodCBhd2F5IGluIHN1YnNlcXVl bnQgY2xlYW51cCBwYXRjaGVzLgo+ID4gCj4gPiB2MzoKPiA+IC0gU3BsaXQgb3V0IHRoZSBmdW5j dGlvbiBtb3ZpbmcuIFRoaXMgcGF0Y2ggaXMgbm93IGV4Y2x1c2l2ZWx5Cj4gPiAgIGRvY3VtZW50 YXRpb24gY2hhbmdlcy4KPiA+IC0gVHlwb3MgYW5kIG5pdHMgKFNhbSkuCj4gPiAKPiA+IENjOiBT YW0gUmF2bmJvcmcgPHNhbUByYXZuYm9yZy5vcmc+Cj4gPiBDYzogRXJpYyBBbmhvbHQgPGVyaWNA YW5ob2x0Lm5ldD4KPiA+IENjOiBFbWlsIFZlbGlrb3YgPGVtaWwubC52ZWxpa292QGdtYWlsLmNv bT4KPiA+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwu Y29tPgo+ID4gLS0tCj4gPiAgRG9jdW1lbnRhdGlvbi9ncHUvZHJtLW1tLnJzdCB8ICA0MCArLS0t LS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jICB8IDE5NyArKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLQo+ID4gIGluY2x1ZGUvZHJtL2RybV9kcnYuaCAgICAgICAg fCAxMDQgKysrKysrKysrKysrKysrLS0tCj4gPiAgaW5jbHVkZS9kcm0vZHJtX2dlbS5oICAgICAg ICB8ICAxOCArKy0tCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAyMjYgaW5zZXJ0aW9ucygrKSwgMTMz IGRlbGV0aW9ucygtKQo+ID4gCj4gCj4gPHNuaXA+Cj4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCj4gPiBp bmRleCA2OGI0ZGU4NTM3MGMuLjIyMzQyMDYyODhmYSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fcHJpbWUuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5j Cj4gPiBAQCAtMzgsNDcgKzM4LDUzIEBACj4gPiAgCj4gPiAgI2luY2x1ZGUgImRybV9pbnRlcm5h bC5oIgo+ID4gIAo+ID4gLS8qCj4gPiAtICogRE1BLUJVRi9HRU0gT2JqZWN0IHJlZmVyZW5jZXMg YW5kIGxpZmV0aW1lIG92ZXJ2aWV3Ogo+ID4gLSAqCj4gPiAtICogT24gdGhlIGV4cG9ydCB0aGUg ZG1hX2J1ZiBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgZXhwb3J0aW5nIEdFTQo+ID4gLSAqIG9i amVjdC4gSXQgdGFrZXMgdGhpcyByZWZlcmVuY2UgaW4gaGFuZGxlX3RvX2ZkX2lvY3RsLCB3aGVu IGl0Cj4gPiAtICogZmlyc3QgY2FsbHMgLnByaW1lX2V4cG9ydCBhbmQgc3RvcmVzIHRoZSBleHBv cnRpbmcgR0VNIG9iamVjdCBpbgo+ID4gLSAqIHRoZSBkbWFfYnVmIHByaXYuIFRoaXMgcmVmZXJl bmNlIG5lZWRzIHRvIGJlIHJlbGVhc2VkIHdoZW4gdGhlCj4gPiAtICogZmluYWwgcmVmZXJlbmNl IHRvIHRoZSAmZG1hX2J1ZiBpdHNlbGYgaXMgZHJvcHBlZCBhbmQgaXRzCj4gPiAtICogJmRtYV9i dWZfb3BzLnJlbGVhc2UgZnVuY3Rpb24gaXMgY2FsbGVkLiBGb3IgR0VNLWJhc2VkIGRyaXZlcnMs Cj4gPiAtICogdGhlIGRtYV9idWYgc2hvdWxkIGJlIGV4cG9ydGVkIHVzaW5nIGRybV9nZW1fZG1h YnVmX2V4cG9ydCgpIGFuZAo+ID4gLSAqIHRoZW4gcmVsZWFzZWQgYnkgZHJtX2dlbV9kbWFidWZf cmVsZWFzZSgpLgo+ID4gLSAqCj4gPiAtICogT24gdGhlIGltcG9ydCB0aGUgaW1wb3J0aW5nIEdF TSBvYmplY3QgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlCj4gPiAtICogZG1hX2J1ZiAod2hpY2gg aW4gdHVybiBob2xkcyBhIHJlZiB0byB0aGUgZXhwb3J0aW5nIEdFTSBvYmplY3QpLgo+ID4gLSAq IEl0IHRha2VzIHRoYXQgcmVmZXJlbmNlIGluIHRoZSBmZF90b19oYW5kbGUgaW9jdGwuCj4gPiAt ICogSXQgY2FsbHMgZG1hX2J1Zl9nZXQsIGNyZWF0ZXMgYW4gYXR0YWNobWVudCB0byBpdCBhbmQg c3RvcmVzIHRoZQo+ID4gLSAqIGF0dGFjaG1lbnQgaW4gdGhlIEdFTSBvYmplY3QuIFdoZW4gdGhp cyBhdHRhY2htZW50IGlzIGRlc3Ryb3llZAo+ID4gLSAqIHdoZW4gdGhlIGltcG9ydGVkIG9iamVj dCBpcyBkZXN0cm95ZWQsIHdlIHJlbW92ZSB0aGUgYXR0YWNobWVudAo+ID4gLSAqIGFuZCBkcm9w IHRoZSByZWZlcmVuY2UgdG8gdGhlIGRtYV9idWYuCj4gPiAtICoKPiA+IC0gKiBXaGVuIGFsbCB0 aGUgcmVmZXJlbmNlcyB0byB0aGUgJmRtYV9idWYgYXJlIGRyb3BwZWQsIGkuZS4gd2hlbgo+ID4g LSAqIHVzZXJzcGFjZSBoYXMgY2xvc2VkIGJvdGggaGFuZGxlcyB0byB0aGUgaW1wb3J0ZWQgR0VN IG9iamVjdCAodGhyb3VnaCB0aGUKPiA+IC0gKiBGRF9UT19IQU5ETEUgSU9DVEwpIGFuZCBjbG9z ZWQgdGhlIGZpbGUgZGVzY3JpcHRvciBvZiB0aGUgZXhwb3J0ZWQKPiA+IC0gKiAodGhyb3VnaCB0 aGUgSEFORExFX1RPX0ZEIElPQ1RMKSBkbWFfYnVmLCBhbmQgYWxsIGtlcm5lbC1pbnRlcm5hbCBy ZWZlcmVuY2VzCj4gPiAtICogYXJlIGFsc28gZ29uZSwgdGhlbiB0aGUgZG1hX2J1ZiBnZXRzIGRl c3Ryb3llZC4gIFRoaXMgY2FuIGFsc28gaGFwcGVuIGFzIGEKPiA+IC0gKiBwYXJ0IG9mIHRoZSBj bGVhbiB1cCBwcm9jZWR1cmUgaW4gdGhlIGRybV9yZWxlYXNlKCkgZnVuY3Rpb24gaWYgdXNlcnNw YWNlCj4gPiAtICogZmFpbHMgdG8gcHJvcGVybHkgY2xlYW4gdXAuICBOb3RlIHRoYXQgYm90aCB0 aGUga2VybmVsIGFuZCB1c2Vyc3BhY2UgKGJ5Cj4gPiAtICoga2VlZXBpbmcgdGhlIFBSSU1FIGZp bGUgZGVzY3JpcHRvcnMgb3BlbikgY2FuIGhvbGQgcmVmZXJlbmNlcyBvbnRvIGEKPiA+IC0gKiAm ZG1hX2J1Zi4KPiA+IC0gKgo+ID4gLSAqIFRodXMgdGhlIGNoYWluIG9mIHJlZmVyZW5jZXMgYWx3 YXlzIGZsb3dzIGluIG9uZSBkaXJlY3Rpb24KPiA+IC0gKiAoYXZvaWRpbmcgbG9vcHMpOiBpbXBv cnRpbmdfZ2VtIC0+IGRtYWJ1ZiAtPiBleHBvcnRpbmdfZ2VtCj4gPiAtICoKPiA+IC0gKiBTZWxm LWltcG9ydGluZzogaWYgdXNlcnNwYWNlIGlzIHVzaW5nIFBSSU1FIGFzIGEgcmVwbGFjZW1lbnQg Zm9yIGZsaW5rCj4gPiAtICogdGhlbiBpdCB3aWxsIGdldCBhIGZkLT5oYW5kbGUgcmVxdWVzdCBm b3IgYSBHRU0gb2JqZWN0IHRoYXQgaXQgY3JlYXRlZC4KPiA+IC0gKiBEcml2ZXJzIHNob3VsZCBk ZXRlY3QgdGhpcyBzaXR1YXRpb24gYW5kIHJldHVybiBiYWNrIHRoZSBnZW0gb2JqZWN0Cj4gPiAt ICogZnJvbSB0aGUgZG1hLWJ1ZiBwcml2YXRlLiAgUHJpbWUgd2lsbCBkbyB0aGlzIGF1dG9tYXRp Y2FsbHkgZm9yIGRyaXZlcnMgdGhhdAo+ID4gLSAqIHVzZSB0aGUgZHJtX2dlbV9wcmltZV97aW1w b3J0LGV4cG9ydH0gaGVscGVycy4KPiA+IC0gKgo+ID4gLSAqIEdFTSBzdHJ1Y3QgJmRtYV9idWZf b3BzIHN5bWJvbHMgYXJlIG5vdyBleHBvcnRlZC4gVGhleSBjYW4gYmUgcmVzdWVkIGJ5Cj4gPiAt ICogZHJpdmVycyB3aGljaCBpbXBsZW1lbnQgR0VNIGludGVyZmFjZS4KPiA+ICsvKioKPiA+ICsg KiBET0M6IG92ZXJ2aWV3IGFuZCBsaWZldGltZSBydWxlcwo+ID4gKyAqCj4gPiArICogU2ltaWxh ciB0byBHRU0gZ2xvYmFsIG5hbWVzLCBQUklNRSBmaWxlIGRlc2NyaXB0b3JzIGFyZSBhbHNvIHVz ZWQgdG8gc2hhcmUKPiA+ICsgKiBidWZmZXIgb2JqZWN0cyBhY3Jvc3MgcHJvY2Vzc2VzLiBUaGV5 IG9mZmVyIGFkZGl0aW9uYWwgc2VjdXJpdHk6IGFzIGZpbGUKPiA+ICsgKiBkZXNjcmlwdG9ycyBt dXN0IGJlIGV4cGxpY2l0bHkgc2VudCBvdmVyIFVOSVggZG9tYWluIHNvY2tldHMgdG8gYmUgc2hh cmVkCj4gPiArICogYmV0d2VlbiBhcHBsaWNhdGlvbnMsIHRoZXkgY2FuJ3QgYmUgZ3Vlc3NlZCBs aWtlIHRoZSBnbG9iYWxseSB1bmlxdWUgR0VNCj4gPiArICogbmFtZXMuCj4gPiArICoKPiA+ICsg KiBEcml2ZXJzIHRoYXQgc3VwcG9ydCB0aGUgUFJJTUUgQVBJIG11c3Qgc2V0IHRoZSBEUklWRVJf UFJJTUUgYml0IGluIHRoZQo+ID4gKyAqICZkcm1fZHJpdmVyLmRyaXZlcl9mZWF0dXJlcyBmaWVs ZCwgYW5kIGltcGxlbWVudCB0aGUKPiA+ICsgKiAmZHJtX2RyaXZlci5wcmltZV9oYW5kbGVfdG9f ZmQgYW5kICZkcm1fZHJpdmVyLnByaW1lX2ZkX3RvX2hhbmRsZSBvcGVyYXRpb25zLgo+ID4gKyAq IEdFTSBiYXNlZCBkcml2ZXJzIG11c3QgdXNlIGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKCkg YW5kCj4gPiArICogZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUoKSB0byBpbXBsZW1lbnQgdGhl c2UuIEZvciBHRU0gYmFzZWQgZHJpdmVycyB0aGUKPiA+ICsgKiBhY3R1YWwgZHJpdmVyIGludGVy ZmFjZXMgaXMgcHJvdmlkZWQgdGhyb3VnaCB0aGUgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLmV4cG9y dAo+ID4gKyAqIGFuZCAmZHJtX2RyaXZlci5nZW1fcHJpbWVfaW1wb3J0IGhvb2tzLgo+ID4gKyAq Cj4gPiArICogJmRtYV9idWZfb3BzIGltcGxlbWVudGF0aW9ucyBmb3IgR0VNIGRyaXZlcnMgYXJl IGFsbCBpbmRpdmlkdWFsbHkgZXhwb3J0ZWQKPiA+ICsgKiBmb3IgZHJpdmVycyB3aGljaCBuZWVk IHRvIG92ZXJ3cml0ZSBvciByZWltcGxlbWVudCBzb21lIG9mIHRoZW0uCj4gPiArICoKPiA+ICsg KiBSZWZlcmVuY2UgQ291bnRpbmcgZm9yIEdFTSBEcml2ZXJzCj4gPiArICogfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo+ID4gKyAqCj4gPiArICogT24gdGhlIGV4cG9ydCB0aGUg JmRtYV9idWYgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIGV4cG9ydGVkIGJ1ZmZlciBvYmplY3Qs Cj4gPiArICogdXN1YWxseSBhICZkcm1fZ2VtX29iamVjdC4gSXQgdGFrZXMgdGhpcyByZWZlcmVu Y2UgaW4gdGhlIFBSSU1FX0hBTkRMRV9UT19GRAo+ID4gKyAqIElPQ1RMLCB3aGVuIGl0IGZpcnN0 IGNhbGxzICZkcm1fZ2VtX29iamVjdF9mdW5jcy5leHBvcnQKPiA+ICsgKiBhbmQgc3RvcmVzIHRo ZSBleHBvcnRpbmcgR0VNIG9iamVjdCBpbiB0aGUgJmRtYV9idWYucHJpdiBmaWVsZC4gVGhpcwo+ ID4gKyAqIHJlZmVyZW5jZSBuZWVkcyB0byBiZSByZWxlYXNlZCB3aGVuIHRoZSBmaW5hbCByZWZl cmVuY2UgdG8gdGhlICZkbWFfYnVmCj4gPiArICogaXRzZWxmIGlzIGRyb3BwZWQgYW5kIGl0cyAm ZG1hX2J1Zl9vcHMucmVsZWFzZSBmdW5jdGlvbiBpcyBjYWxsZWQuICBGb3IKPiA+ICsgKiBHRU0t YmFzZWQgZHJpdmVycywgdGhlICZkbWFfYnVmIHNob3VsZCBiZSBleHBvcnRlZCB1c2luZwo+ID4g KyAqIGRybV9nZW1fZG1hYnVmX2V4cG9ydCgpIGFuZCB0aGVuIHJlbGVhc2VkIGJ5IGRybV9nZW1f ZG1hYnVmX3JlbGVhc2UoKS4KPiA+ICsgKgo+ID4gKyAqIFRodXMgdGhlIGNoYWluIG9mIHJlZmVy ZW5jZXMgYWx3YXlzIGZsb3dzIGluIG9uZSBkaXJlY3Rpb24sIGF2b2lkaW5nIGxvb3BzOgo+ID4g KyAqIGltcG9ydGluZyBHRU0gb2JqZWN0IC0+IGRtYS1idWYgLT4gZXhwb3J0ZWQgR0VNIGJvLiBB IGZ1cnRoZXIgY29tcGxpY2F0aW9uCj4gPiArICogYXJlIHRoZSBsb29rdXAgY2FjaGVzIGZvciBp bXBvcnQgYW5kIGV4cG9ydC4gVGhlc2UgYXJlIHJlcXVpcmVkIHRvIGd1YXJhbnRlZQo+ID4gKyAq IHRoYXQgYW55IGdpdmVuIG9iamVjdCB3aWxsIGFsd2F5cyBoYXZlIG9ubHkgb25lIHVuaXFlIHVz ZXJzcGFjZSBoYW5kbGUuIFRoaXMKPiA+ICsgKiBpcyByZXF1aXJlZCB0byBhbGxvdyB1c2Vyc3Bh Y2UgdG8gZGV0ZWN0IGR1cGxpY2F0ZWQgaW1wb3J0cywgc2luY2Ugc29tZSBHRU0KPiA+ICsgKiBk cml2ZXJzIGRvIGZhaWwgY29tbWFuZCBzdWJtaXNzaW9ucyBpZiBhIGdpdmVuIGJ1ZmZlciBvYmpl Y3QgaXMgbGlzdGVkIG1vcmUKPiA+ICsgKiB0aGFuIG9uY2UuIFRoZXNlIGltcG9ydCBhbmQgZXhw b3J0IGNhY2hlcyBpbiAmZHJtX3ByaW1lX2ZpbGVfcHJpdmF0ZSBvbmx5Cj4gPiArICogcmV0YWlu IGEgd2VhayByZWZlcmVuY2UsIHdoaWNoIGlzIGNsZWFuZWQgdXAgd2hlbiB0aGUgY29ycmVzcG9u ZGluZyBvYmplY3QgaXMKPiA+ICsgKiByZWxlYXNlZC4KPiA+ICsgKgo+ID4gKyAqIFNlbGYtaW1w b3J0aW5nOiBJZiB1c2Vyc3BhY2UgaXMgdXNpbmcgUFJJTUUgYXMgYSByZXBsYWNlbWVudCBmb3Ig ZmxpbmsgdGhlbgo+ID4gKyAqIGl0IHdpbGwgZ2V0IGEgZmQtPmhhbmRsZSByZXF1ZXN0IGZvciBh IEdFTSBvYmplY3QgdGhhdCBpdCBjcmVhdGVkLiAgRHJpdmVycwo+ID4gKyAqIHNob3VsZCBkZXRl Y3QgdGhpcyBzaXR1YXRpb24gYW5kIHJldHVybiBiYWNrIHRoZSB1bmRlcmx5aW5nIG9iamVjdCBm cm9tIHRoZQo+ID4gKyAqIGRtYS1idWYgcHJpdmF0ZS4gRm9yIEdFTSBiYXNlZCBkcml2ZXJzIHRo aXMgaXMgaGFuZGxlZCBpbgo+ID4gKyAqIGRybV9nZW1fcHJpbWVfaW1wb3J0KCkgYWxyZWFkeS4K PiA+ICAgKi8KPiA+ICAKPiA+ICBzdHJ1Y3QgZHJtX3ByaW1lX21lbWJlciB7Cj4gPiBAQCAtMjIw LDcgKzIyNiw3IEBAIHZvaWQgZHJtX3ByaW1lX2Rlc3Ryb3lfZmlsZV9wcml2YXRlKHN0cnVjdCBk cm1fcHJpbWVfZmlsZV9wcml2YXRlICpwcmltZV9mcHJpdikKPiA+ICB9Cj4gPiAgCj4gPiAgLyoq Cj4gPiAtICogZHJtX2dlbV9kbWFidWZfZXhwb3J0IC0gZG1hX2J1ZiBleHBvcnQgaW1wbGVtZW50 YXRpb24gZm9yIEdFTQo+ID4gKyAqIGRybV9nZW1fZG1hYnVmX2V4cG9ydCAtICZkbWFfYnVmIGV4 cG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCj4gPiAgICogQGRldjogcGFyZW50IGRldmljZSBm b3IgdGhlIGV4cG9ydGVkIGRtYWJ1Zgo+ID4gICAqIEBleHBfaW5mbzogdGhlIGV4cG9ydCBpbmZv cm1hdGlvbiB1c2VkIGJ5IGRtYV9idWZfZXhwb3J0KCkKPiA+ICAgKgo+ID4gQEAgLTI0OCwxMSAr MjU0LDExIEBAIHN0cnVjdCBkbWFfYnVmICpkcm1fZ2VtX2RtYWJ1Zl9leHBvcnQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiA+ICBFWFBPUlRfU1lNQk9MKGRybV9nZW1fZG1hYnVmX2V4cG9ydCk7 Cj4gPiAgCj4gPiAgLyoqCj4gPiAtICogZHJtX2dlbV9kbWFidWZfcmVsZWFzZSAtIGRtYV9idWYg cmVsZWFzZSBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCj4gPiArICogZHJtX2dlbV9kbWFidWZfcmVs ZWFzZSAtICZkbWFfYnVmIHJlbGVhc2UgaW1wbGVtZW50YXRpb24gZm9yIEdFTQo+ID4gICAqIEBk bWFfYnVmOiBidWZmZXIgdG8gYmUgcmVsZWFzZWQKPiA+ICAgKgo+ID4gICAqIEdlbmVyaWMgcmVs ZWFzZSBmdW5jdGlvbiBmb3IgZG1hX2J1ZnMgZXhwb3J0ZWQgYXMgUFJJTUUgYnVmZmVycy4gR0VN IGRyaXZlcnMKPiA+IC0gKiBtdXN0IHVzZSB0aGlzIGluIHRoZWlyIGRtYV9idWYgb3BzIHN0cnVj dHVyZSBhcyB0aGUgcmVsZWFzZSBjYWxsYmFjay4KPiA+ICsgKiBtdXN0IHVzZSB0aGlzIGluIHRo ZWlyICZkbWFfYnVmX29wcyBzdHJ1Y3R1cmUgYXMgdGhlIHJlbGVhc2UgY2FsbGJhY2suCj4gPiAg ICogZHJtX2dlbV9kbWFidWZfcmVsZWFzZSgpIHNob3VsZCBiZSB1c2VkIGluIGNvbmp1bmN0aW9u IHdpdGgKPiA+ICAgKiBkcm1fZ2VtX2RtYWJ1Zl9leHBvcnQoKS4KPiA+ICAgKi8KPiA+IEBAIC0y NzgsNyArMjg0LDkgQEAgRVhQT1JUX1NZTUJPTChkcm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlKTsKPiA+ ICAgKiBUaGlzIGlzIHRoZSBQUklNRSBpbXBvcnQgZnVuY3Rpb24gd2hpY2ggbXVzdCBiZSB1c2Vk IG1hbmRhdG9yaWx5IGJ5IEdFTQo+ID4gICAqIGRyaXZlcnMgdG8gZW5zdXJlIGNvcnJlY3QgbGlm ZXRpbWUgbWFuYWdlbWVudCBvZiB0aGUgdW5kZXJseWluZyBHRU0gb2JqZWN0Lgo+ID4gICAqIFRo ZSBhY3R1YWwgaW1wb3J0aW5nIG9mIEdFTSBvYmplY3QgZnJvbSB0aGUgZG1hLWJ1ZiBpcyBkb25l IHRocm91Z2ggdGhlCj4gPiAtICogZ2VtX2ltcG9ydF9leHBvcnQgZHJpdmVyIGNhbGxiYWNrLgo+ ID4gKyAqICZkcm1fZHJpdmVyLmdlbV9pbXBvcnRfZXhwb3J0IGRyaXZlciBjYWxsYmFjay4KPiAK PiBzL2dlbV9pbXBvcnRfZXhwb3J0L2dlbV9wcmltZV9pbXBvcnQvCj4gCj4gPiArICoKPiA+ICsg KiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVy ZS4KPiA+ICAgKi8KPiA+ICBpbnQgZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiA+ICAJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYs IGludCBwcmltZV9mZCwKPiA+IEBAIC00MTIsNyArNDIwLDcgQEAgc3RhdGljIHN0cnVjdCBkbWFf YnVmICpleHBvcnRfYW5kX3JlZ2lzdGVyX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ID4gICAqIFRoaXMgaXMgdGhlIFBSSU1FIGV4cG9ydCBmdW5jdGlvbiB3aGljaCBtdXN0IGJlIHVz ZWQgbWFuZGF0b3JpbHkgYnkgR0VNCj4gPiAgICogZHJpdmVycyB0byBlbnN1cmUgY29ycmVjdCBs aWZldGltZSBtYW5hZ2VtZW50IG9mIHRoZSB1bmRlcmx5aW5nIEdFTSBvYmplY3QuCj4gPiAgICog VGhlIGFjdHVhbCBleHBvcnRpbmcgZnJvbSBHRU0gb2JqZWN0IHRvIGEgZG1hLWJ1ZiBpcyBkb25l IHRocm91Z2ggdGhlCj4gPiAtICogZ2VtX3ByaW1lX2V4cG9ydCBkcml2ZXIgY2FsbGJhY2suCj4g PiArICogJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2V4cG9ydCBkcml2ZXIgY2FsbGJhY2suCj4gPiAg ICovCj4gPiAgaW50IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gPiAgCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LCB1aW50MzJf dCBoYW5kbGUsCj4gPiBAQCAtNTIzLDIzICs1MzEsMzkgQEAgaW50IGRybV9wcmltZV9oYW5kbGVf dG9fZmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiA+ICAvKioK PiA+ICAgKiBET0M6IFBSSU1FIEhlbHBlcnMKPiA+ICAgKgo+ID4gLSAqIERyaXZlcnMgY2FuIGlt cGxlbWVudCBAZ2VtX3ByaW1lX2V4cG9ydCBhbmQgQGdlbV9wcmltZV9pbXBvcnQgaW4gdGVybXMg b2YKPiA+IC0gKiBzaW1wbGVyIEFQSXMgYnkgdXNpbmcgdGhlIGhlbHBlciBmdW5jdGlvbnMgQGRy bV9nZW1fcHJpbWVfZXhwb3J0IGFuZAo+ID4gLSAqIEBkcm1fZ2VtX3ByaW1lX2ltcG9ydC4gIFRo ZXNlIGZ1bmN0aW9ucyBpbXBsZW1lbnQgZG1hLWJ1ZiBzdXBwb3J0IGluIHRlcm1zIG9mCj4gPiAt ICogc2l4IGxvd2VyLWxldmVsIGRyaXZlciBjYWxsYmFja3M6Cj4gPiArICogRHJpdmVycyBjYW4g aW1wbGVtZW50ICZkcm1fZ2VtX29iamVjdF9mdW5jcy5leHBvcnQgYW5kCj4gPiArICogJmRybV9k cml2ZXIuZ2VtX3ByaW1lX2ltcG9ydCBpbiB0ZXJtcyBvZiBzaW1wbGVyIEFQSXMgYnkgdXNpbmcg dGhlIGhlbHBlcgo+ID4gKyAqIGZ1bmN0aW9ucyBkcm1fZ2VtX3ByaW1lX2V4cG9ydCgpIGFuZCBk cm1fZ2VtX3ByaW1lX2ltcG9ydCgpLiAgVGhlc2UgZnVuY3Rpb25zCj4gCj4gTWF5YmUgeW91IHdh bnQgdG8gbWVudGlvbiB0aGF0IHRoZXNlIGZ1bmN0aW9ucyBhcmUgdGhlIGRlZmF1bHQgc28KPiBk cml2ZXJzIGRvbid0IGhhdmUgdG8gc2V0IHRoZW0uCgpJdCdzIGFscmVhZHkgbWVudGlvbmVkIGlu IHRoZSBrZXJuZWxkb2MgZm9yIHRoZSBjYWxsYmFjayBzdHJ1Y3R1cmVzIGluCmhlYWRlcnMsIGJ1 dCB3b3J0aCByZXBlYXRpbmcuIFRvIG5vdCB1cHNldCB0aGUgZmxvdyB0b28gbXVjaCBJIHB1dCB0 aGF0CmludG8gdGhlIGluZGl2aWR1YWwgZnVuY3Rpb24gY29tbWVudHMgLSBoZXJlIEkgY291bGRu J3QgY29tZSB1cCB3aXRoIGEKZ29vZCB3YXkgdG8gaW50ZWdyYXRlIHRoYXQgYml0IG9mIGluZm9y bWF0aW9uLgoKSSdsbCB0YWtlIGFsbCB5b3VyIG90aGVyIGZlZWRiYWNrIGFuZCByZXNlbmQsIHRo YW5rcyBhIGxvdCBmb3IgdGFraW5nIGEKbG9vay4KLURhbmllbAoKPiAKPiBEb3VibGUgc3BhY2Ug YmVmb3JlOiBUaGVzZSBmdW5jdGlvbnMKPiAKPiA+ICsgKiBpbXBsZW1lbnQgZG1hLWJ1ZiBzdXBw b3J0IGluIHRlcm1zIG9mIHNvbWUgbG93ZXItbGV2ZWwgaGVscGVycywgd2hpY2ggYXJlCj4gPiAr ICogYWdhaW4gZXhwb3J0ZWQgZm9yIGRyaXZlcnMgdG8gdXNlIGluZGl2aWR1YWxseToKPiA+ICsg Kgo+ID4gKyAqIEV4cG9ydGluZyBidWZmZXJzCj4gPiArICogfn5+fn5+fn5+fn5+fn5+fn4KPiA+ ICsgKgo+ID4gKyAqIE9wdGlvbmFsIHBpbm5pbmcgb2YgYnVmZmVycyBpcyBoYW5kbGVkIGF0IGRt YS1idWYgYXR0YWNoIGFuZCBkZXRhY2ggdGltZSBpbgo+ID4gKyAqIGRybV9nZW1fbWFwX2F0dGFj aCgpIGFuZCBkcm1fZ2VtX21hcF9kZXRhY2goKS4gQmFja2luZyBzdG9yYWdlIGl0c2VsZiBpcwo+ ID4gKyAqIGhhbmRsZWQgYnkgZHJtX2dlbV9tYXBfZG1hX2J1ZigpIGFuZCBkcm1fZ2VtX3VubWFw X2RtYV9idWYoKSwgd2hpY2ggcmVsaWVzIG9uCj4gPiArICogJmRybV9nZW1fb2JqZWN0X2Z1bmNz LmdldF9zZ190YWJsZS4KPiA+ICsgKgo+ID4gKyAqIEZvciBrZXJuZWwtaW50ZXJuYWwgYWNjZXNz IHRoZXJlJ3MgZHJtX2dlbV9kbWFidWZfdm1hcCgpIGFuZAo+ID4gKyAqIGRybV9nZW1fZG1hYnVm X3Z1bm1hcCgpLiBVc2Vyc3BhY2UgbW1hcCBzdXBwb3J0IGlzIHByb3ZpZGVkIGJ5Cj4gPiArICog ZHJtX2dlbV9kbWFidWZfbW1hcCgpLgo+ID4gKyAqCj4gPiArICogTm90ZSB0aGF0IHRoZXNlIGV4 cG9ydCBoZWxwZXJzIGNhbiBvbmx5IGJlIHVzZWQgaWYgdGhlIHVuZGVybHlpbmcgYmFja2luZwo+ ID4gKyAqIHN0b3JhZ2UgaXMgZnVsbHkgY29oZXJlbnQgYW5kIGVpdGhlciBwZXJtYW5lbnRseSBw aW5uZWQsIG9yIGl0IGlzIHNhZmUgdG8gcGluCj4gPiArICogaXQgaW5kZWZpbml0ZWx5Lgo+ID4g ICAqCj4gPiAtICogRXhwb3J0IGNhbGxiYWNrczoKPiA+ICsgKiBGSVhNRTogVGhlIHVuZGVybHlp bmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgbmFtZWQgcmF0aGVyIGluY29uc2lzdGVudGx5Lgo+ID4g ICAqCj4gPiAtICogICogQGdlbV9wcmltZV9waW4gKG9wdGlvbmFsKTogcHJlcGFyZSBhIEdFTSBv YmplY3QgZm9yIGV4cG9ydGluZwo+ID4gLSAqICAqIEBnZW1fcHJpbWVfZ2V0X3NnX3RhYmxlOiBw cm92aWRlIGEgc2NhdHRlci9nYXRoZXIgdGFibGUgb2YgcGlubmVkIHBhZ2VzCj4gPiAtICogICog QGdlbV9wcmltZV92bWFwOiB2bWFwIGEgYnVmZmVyIGV4cG9ydGVkIGJ5IHlvdXIgZHJpdmVyCj4g PiAtICogICogQGdlbV9wcmltZV92dW5tYXA6IHZ1bm1hcCBhIGJ1ZmZlciBleHBvcnRlZCBieSB5 b3VyIGRyaXZlcgo+ID4gLSAqICAqIEBnZW1fcHJpbWVfbW1hcCAob3B0aW9uYWwpOiBtbWFwIGEg YnVmZmVyIGV4cG9ydGVkIGJ5IHlvdXIgZHJpdmVyCj4gPiArICogRXhwb3J0aW5nIGJ1ZmZlcnMK PiA+ICsgKiB+fn5+fn5+fn5+fn5+fn5+fgo+ID4gICAqCj4gPiAtICogSW1wb3J0IGNhbGxiYWNr Ogo+ID4gKyAqIEltcG9ydGluZyBkbWEtYnVmcyB1c2luZyBkcm1fZ2VtX3ByaW1lX2ltcG9ydCgp IHJlbGllcyBvbgo+ID4gKyAqICZkcm1fZHJpdmVyLmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUu Cj4gPiAgICoKPiA+IC0gKiAgKiBAZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSAoaW1wb3J0KTog cHJvZHVjZSBhIEdFTSBvYmplY3QgZnJvbSBhbm90aGVyCj4gPiAtICogICAgZHJpdmVyJ3Mgc2Nh dHRlci9nYXRoZXIgdGFibGUKPiA+ICsgKiBOb3RlIHRoYXQgc2ltaWxhcmx5IHRvIHRoZSBleHBv cnQgaGVscGVycyB0aGlzIHBlcm1hbmVudGx5IHBpbnMgdGhlCj4gPiArICogdW5kZXJseWluZyBi YWNraW5nIHN0b3JhZ2UuIFdoaWNoIGlzIG9rIGZvciBzY2Fub3V0LCBidXQgaXMgbm90IHRoZSBi ZXN0Cj4gPiArICogb3B0aW9uIGZvciBzaGFyaW5nIGxvdHMgb2YgYnVmZmVycyBmb3IgcmVuZGVy aW5nLgo+ID4gICAqLwo+ID4gIAo+ID4gIC8qKgo+ID4gQEAgLTU0Nyw4ICs1NzEsOSBAQCBpbnQg ZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAo+ID4gICAqIEBkbWFfYnVmOiBidWZmZXIgdG8gYXR0YWNoIGRldmljZSB0bwo+ID4g ICAqIEBhdHRhY2g6IGJ1ZmZlciBhdHRhY2htZW50IGRhdGEKPiA+ICAgKgo+ID4gLSAqIENhbGxz ICZkcm1fZHJpdmVyLmdlbV9wcmltZV9waW4gZm9yIGRldmljZSBzcGVjaWZpYyBoYW5kbGluZy4g VGhpcyBjYW4gYmUKPiA+IC0gKiB1c2VkIGFzIHRoZSAmZG1hX2J1Zl9vcHMuYXR0YWNoIGNhbGxi YWNrLgo+ID4gKyAqIENhbGxzICZkcm1fZ2VtX29iamVjdF9mdW5jcy5waW4gZm9yIGRldmljZSBz cGVjaWZpYyBoYW5kbGluZy4gVGhpcyBjYW4gYmUKPiA+ICsgKiB1c2VkIGFzIHRoZSAmZG1hX2J1 Zl9vcHMuYXR0YWNoIGNhbGxiYWNrLiBNdXN0IGJlIHVzZWQgdG9nZXRoZXIgd2l0aAo+ID4gKyAq IGRybV9nZW1fbWFwX2RldGFjaCgpLgo+ID4gICAqCj4gPiAgICogUmV0dXJucyAwIG9uIHN1Y2Nl c3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiA+ICAgKi8KPiA+IEBAIC01NjYs OCArNTkxLDkgQEAgRVhQT1JUX1NZTUJPTChkcm1fZ2VtX21hcF9hdHRhY2gpOwo+ID4gICAqIEBk bWFfYnVmOiBidWZmZXIgdG8gZGV0YWNoIGZyb20KPiA+ICAgKiBAYXR0YWNoOiBhdHRhY2htZW50 IHRvIGJlIGRldGFjaGVkCj4gPiAgICoKPiA+IC0gKiBDbGVhbnMgdXAgJmRtYV9idWZfYXR0YWNo bWVudC4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUgJmRtYV9idWZfb3BzLmRldGFjaAo+ID4gLSAq IGNhbGxiYWNrLgo+ID4gKyAqIENhbGxzICZkcm1fZ2VtX29iamVjdF9mdW5jcy5waW4gZm9yIGRl dmljZSBzcGVjaWZpYyBoYW5kbGluZy4gIENsZWFucyB1cAo+ID4gKyAqICZkbWFfYnVmX2F0dGFj aG1lbnQgZnJvbSBkcm1fZ2VtX21hcF9hdHRhY2goKS4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUK PiA+ICsgKiAmZG1hX2J1Zl9vcHMuZGV0YWNoIGNhbGxiYWNrLgo+ID4gICAqLwo+ID4gIHZvaWQg ZHJtX2dlbV9tYXBfZGV0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLAo+ID4gIAkJCXN0cnVj dCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCkKPiA+IEBAIC01ODMsMTMgKzYwOSwxMyBAQCBF WFBPUlRfU1lNQk9MKGRybV9nZW1fbWFwX2RldGFjaCk7Cj4gPiAgICogQGF0dGFjaDogYXR0YWNo bWVudCB3aG9zZSBzY2F0dGVybGlzdCBpcyB0byBiZSByZXR1cm5lZAo+ID4gICAqIEBkaXI6IGRp cmVjdGlvbiBvZiBETUEgdHJhbnNmZXIKPiA+ICAgKgo+ID4gLSAqIENhbGxzICZkcm1fZHJpdmVy LmdlbV9wcmltZV9nZXRfc2dfdGFibGUgYW5kIHRoZW4gbWFwcyB0aGUgc2NhdHRlcmxpc3QuIFRo aXMKPiA+IC0gKiBjYW4gYmUgdXNlZCBhcyB0aGUgJmRtYV9idWZfb3BzLm1hcF9kbWFfYnVmIGNh bGxiYWNrLgo+ID4gKyAqIENhbGxzICZkcm1fZ2VtX29iamVjdF9mdW5jcy5nZXRfc2dfdGFibGUg YW5kIHRoZW4gbWFwcyB0aGUgc2NhdHRlcmxpc3QuIFRoaXMKPiA+ICsgKiBjYW4gYmUgdXNlZCBh cyB0aGUgJmRtYV9idWZfb3BzLm1hcF9kbWFfYnVmIGNhbGxiYWNrLiBTaG91bGQgYmUgdXNlZCB0 b2dldGhlcgo+ID4gKyAqIHdpdGggZHJtX2dlbV91bm1hcF9kbWFfYnVmKCkuCj4gPiAgICoKPiA+ IC0gKiBSZXR1cm5zIHNnX3RhYmxlIGNvbnRhaW5pbmcgdGhlIHNjYXR0ZXJsaXN0IHRvIGJlIHJl dHVybmVkOyByZXR1cm5zIEVSUl9QVFIKPiA+ICsgKiBSZXR1cm5zOnNnX3RhYmxlIGNvbnRhaW5p bmcgdGhlIHNjYXR0ZXJsaXN0IHRvIGJlIHJldHVybmVkOyByZXR1cm5zIEVSUl9QVFIKPiA+ICAg KiBvbiBlcnJvci4gTWF5IHJldHVybiAtRUlOVFIgaWYgaXQgaXMgaW50ZXJydXB0ZWQgYnkgYSBz aWduYWwuCj4gPiAgICovCj4gPiAtCj4gPiAgc3RydWN0IHNnX3RhYmxlICpkcm1fZ2VtX21hcF9k bWFfYnVmKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCwKPiA+ICAJCQkJICAgICBl bnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCj4gPiAgewo+ID4gQEAgLTY0Miw5ICs2NjgsOSBA QCBFWFBPUlRfU1lNQk9MKGRybV9nZW1fdW5tYXBfZG1hX2J1Zik7Cj4gPiAgICogQGRtYV9idWY6 IGJ1ZmZlciB0byBiZSBtYXBwZWQKPiA+ICAgKgo+ID4gICAqIFNldHMgdXAgYSBrZXJuZWwgdmly dHVhbCBtYXBwaW5nLiBUaGlzIGNhbiBiZSB1c2VkIGFzIHRoZSAmZG1hX2J1Zl9vcHMudm1hcAo+ ID4gLSAqIGNhbGxiYWNrLgo+ID4gKyAqIGNhbGxiYWNrLiBDYWxscyBpbnRvICZkcm1fZ2VtX29i amVjdF9mdW5jcy52bWFwIGZvciBkZXZpY2Ugc3BlY2lmaWMgaGFuZGxpbmcuCj4gPiAgICoKPiA+ IC0gKiBSZXR1cm5zIHRoZSBrZXJuZWwgdmlydHVhbCBhZGRyZXNzLgo+ID4gKyAqIFJldHVybnMg dGhlIGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3Mgb3IgTlVMTCBvbiBmYWlsdXJlLgo+ID4gICAqLwo+ ID4gIHZvaWQgKmRybV9nZW1fZG1hYnVmX3ZtYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYpCj4g PiAgewo+ID4gQEAgLTY2NSw3ICs2OTEsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9nZW1fZG1hYnVm X3ZtYXApOwo+ID4gICAqIEB2YWRkcjogdGhlIHZpcnR1YWwgYWRkcmVzcyBvZiB0aGUgYnVmZmVy Cj4gPiAgICoKPiA+ICAgKiBSZWxlYXNlcyBhIGtlcm5lbCB2aXJ0dWFsIG1hcHBpbmcuIFRoaXMg Y2FuIGJlIHVzZWQgYXMgdGhlCj4gPiAtICogJmRtYV9idWZfb3BzLnZ1bm1hcCBjYWxsYmFjay4K PiA+ICsgKiAmZG1hX2J1Zl9vcHMudnVubWFwIGNhbGxiYWNrLiBDYWxscyBpbnRvICZkcm1fZ2Vt X29iamVjdF9mdW5jcy52dW5tYXAgZm9yIGRldmljZSBzcGVjaWZpYyBoYW5kbGluZy4KPiA+ICAg Ki8KPiA+ICB2b2lkIGRybV9nZW1fZG1hYnVmX3Z1bm1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1 Ziwgdm9pZCAqdmFkZHIpCj4gPiAgewo+ID4gQEAgLTcyNyw3ICs3NTMsMTEgQEAgRVhQT1JUX1NZ TUJPTChkcm1fZ2VtX3ByaW1lX21tYXApOwo+ID4gICAqIEB2bWE6IHZpcnR1YWwgYWRkcmVzcyBy YW5nZQo+ID4gICAqCj4gPiAgICogUHJvdmlkZXMgbWVtb3J5IG1hcHBpbmcgZm9yIHRoZSBidWZm ZXIuIFRoaXMgY2FuIGJlIHVzZWQgYXMgdGhlCj4gPiAtICogJmRtYV9idWZfb3BzLm1tYXAgY2Fs bGJhY2suCj4gPiArICogJmRtYV9idWZfb3BzLm1tYXAgY2FsbGJhY2suIEl0IGp1c3QgZm9yd2Fy ZHMgdG8gJmRybV9kcml2ZXIuZ2VtX3ByaW1lX21tYXAsCj4gPiArICogd2hpY2ggc2hvdWxkIGJl IHNldCB0byBkcm1fZ2VtX3ByaW1lX21tYXAoKS4KPiA+ICsgKgo+ID4gKyAqIEZJWE1FOiBUaGVy ZSdzIHJlYWxseSBubyBwb2ludCB0byB0aGlzIHdyYXBwZXIsIGRyaXZlcnMgd2hpY2ggbmVlZCBh bnl0aGluZwo+ID4gKyAqIGVsc2UgYnV0IGRybV9nZW1fcHJpbWVfbW1hcCBjYW4gcm9sbCB0aGVp ciBvd24gJmRtYV9idWZfb3BzLm1tYXAgY2FsbGJhY2suCj4gPiAgICoKPiA+ICAgKiBSZXR1cm5z IDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiA+ICAg Ki8KPiA+IEBAIC03NjMsNiArNzkzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29w cyBkcm1fZ2VtX3ByaW1lX2RtYWJ1Zl9vcHMgPSAgewo+ID4gICAqIFRoaXMgaGVscGVyIGNyZWF0 ZXMgYW4gc2cgdGFibGUgb2JqZWN0IGZyb20gYSBzZXQgb2YgcGFnZXMKPiA+ICAgKiB0aGUgZHJp dmVyIGlzIHJlc3BvbnNpYmxlIGZvciBtYXBwaW5nIHRoZSBwYWdlcyBpbnRvIHRoZQo+ID4gICAq IGltcG9ydGVycyBhZGRyZXNzIHNwYWNlIGZvciB1c2Ugd2l0aCBkbWFfYnVmIGl0c2VsZi4KPiA+ ICsgKgo+ID4gKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgJmRybV9nZW1fb2Jq ZWN0X2Z1bmNzLmdldF9zZ190YWJsZS4KPiA+ICAgKi8KPiA+ICBzdHJ1Y3Qgc2dfdGFibGUgKmRy bV9wcmltZV9wYWdlc190b19zZyhzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCB1bnNpZ25lZCBpbnQgbnJf cGFnZXMpCj4gPiAgewo+ID4gQEAgLTc5Myw3ICs4MjUsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9w cmltZV9wYWdlc190b19zZyk7Cj4gPiAgICogQG9iajogR0VNIG9iamVjdCB0byBleHBvcnQKPiA+ ICAgKiBAZmxhZ3M6IGZsYWdzIGxpa2UgRFJNX0NMT0VYRUMgYW5kIERSTV9SRFdSCj4gPiAgICoK PiA+IC0gKiBUaGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZ2VtX3ByaW1lX2V4cG9y dCBmdW5jdGlvbnMgZm9yIEdFTSBkcml2ZXJzCj4gPiArICogVGhpcyBpcyB0aGUgaW1wbGVtZW50 YXRpb24gb2YgdGhlICZkcm1fZ2VtX29iamVjdF9mdW5jcy5leHBvcnQgZnVuY3Rpb25zIGZvciBH RU0gZHJpdmVycwo+ID4gICAqIHVzaW5nIHRoZSBQUklNRSBoZWxwZXJzLgo+ID4gICAqLwo+ID4g IHN0cnVjdCBkbWFfYnVmICpkcm1fZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ID4gQEAgLTgyMyw5ICs4NTUsMTMgQEAgRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ByaW1l X2V4cG9ydCk7Cj4gPiAgICogQGRtYV9idWY6IGRtYS1idWYgb2JqZWN0IHRvIGltcG9ydAo+ID4g ICAqIEBhdHRhY2hfZGV2OiBzdHJ1Y3QgZGV2aWNlIHRvIGRtYV9idWYgYXR0YWNoCj4gPiAgICoK PiA+IC0gKiBUaGlzIGlzIHRoZSBjb3JlIG9mIGRybV9nZW1fcHJpbWVfaW1wb3J0LiBJdCdzIGRl c2lnbmVkIHRvIGJlIGNhbGxlZCBieQo+ID4gLSAqIGRyaXZlcnMgd2hvIHdhbnQgdG8gdXNlIGEg ZGlmZmVyZW50IGRldmljZSBzdHJ1Y3R1cmUgdGhhbiBkZXYtPmRldiBmb3IKPiA+IC0gKiBhdHRh Y2hpbmcgdmlhIGRtYV9idWYuCj4gPiArICogVGhpcyBpcyB0aGUgY29yZSBvZiBkcm1fZ2VtX3By aW1lX2ltcG9ydCgpLiBJdCdzIGRlc2lnbmVkIHRvIGJlIGNhbGxlZCBieQo+ID4gKyAqIGRyaXZl cnMgd2hvIHdhbnQgdG8gdXNlIGEgZGlmZmVyZW50IGRldmljZSBzdHJ1Y3R1cmUgdGhhbiAmZHJt X2RldmljZS5kZXYgZm9yCj4gPiArICogYXR0YWNoaW5nIHZpYSBkbWFfYnVmLiBUaGlzIGZ1bmN0 aW9uIGNhbGxzCj4gPiArICogJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSBp bnRlcm5hbGx5Lgo+ID4gKyAqCj4gPiArICogRHJpdmVycyBtdXN0IGFycmFuZ2UgdG8gY2FsbCBk cm1fcHJpbWVfZ2VtX2Rlc3Ryb3koKSBmcm9tIHRoZWlyCj4gPiArICogJmRybV9nZW1fb2JqZWN0 X2Z1bmNzLmZyZWUgaG9vayB3aGVuIHVzaW5nIHRoaXMgZnVuY3Rpb24uCj4gPiAgICovCj4gPiAg c3RydWN0IGRybV9nZW1fb2JqZWN0ICpkcm1fZ2VtX3ByaW1lX2ltcG9ydF9kZXYoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiA+ICAJCQkJCSAgICBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPiA+ IEBAIC04ODksNyArOTI1LDExIEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9wcmltZV9pbXBvcnRf ZGV2KTsKPiA+ICAgKiBAZG1hX2J1ZjogZG1hLWJ1ZiBvYmplY3QgdG8gaW1wb3J0Cj4gPiAgICoK PiA+ICAgKiBUaGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZ2VtX3ByaW1lX2ltcG9y dCBmdW5jdGlvbnMgZm9yIEdFTSBkcml2ZXJzCj4gPiAtICogdXNpbmcgdGhlIFBSSU1FIGhlbHBl cnMuCj4gPiArICogdXNpbmcgdGhlIFBSSU1FIGhlbHBlcnMuIERyaXZlcnMgY2FuIHVzZSB0aGlz IGFzIHRoZWlyCj4gPiArICogJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2ltcG9ydCBpbXBsZW1lbnRh dGlvbi4KPiA+ICsgKgo+ID4gKyAqIERyaXZlcnMgbXVzdCBhcnJhbmdlIHRvIGNhbGwgZHJtX3By aW1lX2dlbV9kZXN0cm95KCkgZnJvbSB0aGVpcgo+ID4gKyAqICZkcm1fZ2VtX29iamVjdF9mdW5j cy5mcmVlIGhvb2sgd2hlbiB1c2luZyB0aGlzIGZ1bmN0aW9uLgo+ID4gICAqLwo+ID4gIHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqZHJtX2dlbV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiA+ICAJCQkJCSAgICBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZikKPiA+IEBAIC05MDcs NiArOTQ3LDkgQEAgRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ByaW1lX2ltcG9ydCk7Cj4gPiAgICoK PiA+ICAgKiBFeHBvcnRzIGFuIHNnIHRhYmxlIGludG8gYW4gYXJyYXkgb2YgcGFnZXMgYW5kIGFk ZHJlc3Nlcy4gVGhpcyBpcyBjdXJyZW50bHkKPiA+ICAgKiByZXF1aXJlZCBieSB0aGUgVFRNIGRy aXZlciBpbiBvcmRlciB0byBkbyBjb3JyZWN0IGZhdWx0IGhhbmRsaW5nLgo+ID4gKyAqCj4gPiAr ICogRHJpdmVycyBjYW4gdXNlIHRoaXMgaW4gdGhlaXIgJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2lt cG9ydF9zZ190YWJsZQo+ID4gKyAqIGltcGxlbWVudGF0aW9uLgo+ID4gICAqLwo+ID4gIGludCBk cm1fcHJpbWVfc2dfdG9fcGFnZV9hZGRyX2FycmF5cyhzdHJ1Y3Qgc2dfdGFibGUgKnNndCwgc3Ry dWN0IHBhZ2UgKipwYWdlcywKPiA+ICAJCQkJICAgICBkbWFfYWRkcl90ICphZGRycywgaW50IG1h eF9lbnRyaWVzKQo+ID4gQEAgLTk0Nyw3ICs5OTAsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9wcmlt ZV9zZ190b19wYWdlX2FkZHJfYXJyYXlzKTsKPiA+ICAgKiBAc2c6IHRoZSBzZy10YWJsZSB3aGlj aCB3YXMgcGlubmVkIGF0IGltcG9ydCB0aW1lCj4gPiAgICoKPiA+ICAgKiBUaGlzIGlzIHRoZSBj bGVhbnVwIGZ1bmN0aW9ucyB3aGljaCBHRU0gZHJpdmVycyBuZWVkIHRvIGNhbGwgd2hlbiB0aGV5 IHVzZQo+ID4gLSAqIEBkcm1fZ2VtX3ByaW1lX2ltcG9ydCB0byBpbXBvcnQgZG1hLWJ1ZnMuCj4g PiArICogZHJtX2dlbV9wcmltZV9pbXBvcnQoKSBvciBkcm1fZ2VtX3ByaW1lX2ltcG9ydF9kZXYo KSB0byBpbXBvcnQgZG1hLWJ1ZnMuCj4gPiAgICovCj4gPiAgdm9pZCBkcm1fcHJpbWVfZ2VtX2Rl c3Ryb3koc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBzZ190YWJsZSAqc2cpCj4g PiAgewo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcnYuaCBiL2luY2x1ZGUvZHJt L2RybV9kcnYuaAo+ID4gaW5kZXggNWM0ZmMwZGRjODYzLi5iYmIzYTZmZjQ0MTggMTAwNjQ0Cj4g PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZHJ2LmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9k cnYuaAo+ID4gQEAgLTUwNSwyMSArNTA1LDI1IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKPiA+ICAJ ICogQGdlbV9mcmVlX29iamVjdDogZGVjb25zdHJ1Y3RvciBmb3IgZHJtX2dlbV9vYmplY3RzCj4g PiAgCSAqCj4gPiAgCSAqIFRoaXMgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2Vk IGJ5IG5ldyBkcml2ZXJzLiBVc2UKPiA+IC0JICogQGdlbV9mcmVlX29iamVjdF91bmxvY2tlZCBp bnN0ZWFkLgo+ID4gKwkgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZnJlZSBpbnN0ZWFkLgo+ID4g IAkgKi8KPiA+ICAJdm9pZCAoKmdlbV9mcmVlX29iamVjdCkgKHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqKTsKPiA+ICAKPiA+ICAJLyoqCj4gPiAgCSAqIEBnZW1fZnJlZV9vYmplY3RfdW5sb2Nr ZWQ6IGRlY29uc3RydWN0b3IgZm9yIGRybV9nZW1fb2JqZWN0cwo+ID4gIAkgKgo+ID4gLQkgKiBU aGlzIGlzIGZvciBkcml2ZXJzIHdoaWNoIGFyZSBub3QgZW5jdW1iZXJlZCB3aXRoICZkcm1fZGV2 aWNlLnN0cnVjdF9tdXRleAo+ID4gLQkgKiBsZWdhY3kgbG9ja2luZyBzY2hlbWVzLiBVc2UgdGhp cyBob29rIGluc3RlYWQgb2YgQGdlbV9mcmVlX29iamVjdC4KPiA+ICsJICogVGhpcyBpcyBkZXBy ZWNhdGVkIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYnkgbmV3IGRyaXZlcnMuIFVzZQo+ID4gKwkg KiAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZnJlZSBpbnN0ZWFkLgo+ID4gKwkgKiBDb21wYXJlZCB0 byBAZ2VtX2ZyZWVfb2JqZWN0IHRoaXMgaXMgbm90IGVuY3VtYmVyZWQgd2l0aAo+ID4gKwkgKiAm ZHJtX2RldmljZS5zdHJ1Y3RfbXV0ZXggbGVnYWN5IGxvY2tpbmcgc2NoZW1lcy4KPiA+ICAJICov Cj4gPiAgCXZvaWQgKCpnZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQpIChzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iaik7Cj4gPiAgCj4gPiAgCS8qKgo+ID4gIAkgKiBAZ2VtX29wZW5fb2JqZWN0Ogo+ ID4gIAkgKgo+ID4gKwkgKiBUaGlzIGNhbGxiYWNrIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9m ICZkcm1fZ2VtX29iamVjdF9mdW5jcy5vcGVuLgo+ID4gKwkgKgo+ID4gIAkgKiBEcml2ZXIgaG9v ayBjYWxsZWQgdXBvbiBnZW0gaGFuZGxlIGNyZWF0aW9uCj4gPiAgCSAqLwo+ID4gIAlpbnQgKCpn ZW1fb3Blbl9vYmplY3QpIChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKiwgc3RydWN0IGRybV9maWxl ICopOwo+ID4gQEAgLTUyNyw2ICs1MzEsOCBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7Cj4gPiAgCS8q Kgo+ID4gIAkgKiBAZ2VtX2Nsb3NlX29iamVjdDoKPiA+ICAJICoKPiA+ICsJICogVGhpcyBjYWxs YmFjayBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiAmZHJtX2dlbV9vYmplY3RfZnVuY3MuY2xv c2UuCj4gPiArCSAqCj4gPiAgCSAqIERyaXZlciBob29rIGNhbGxlZCB1cG9uIGdlbSBoYW5kbGUg cmVsZWFzZQo+ID4gIAkgKi8KPiA+ICAJdm9pZCAoKmdlbV9jbG9zZV9vYmplY3QpIChzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKiwgc3RydWN0IGRybV9maWxlICopOwo+ID4gQEAgLTUzNCw2ICs1NDAs OSBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7Cj4gPiAgCS8qKgo+ID4gIAkgKiBAZ2VtX3ByaW50X2lu Zm86Cj4gPiAgCSAqCj4gPiArCSAqIFRoaXMgY2FsbGJhY2sgaXMgZGVwcmVjYXRlZCBpbiBmYXZv dXIgb2YKPiA+ICsJICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnByaW50X2luZm8uCj4gPiArCSAq Cj4gPiAgCSAqIElmIGRyaXZlciBzdWJjbGFzc2VzIHN0cnVjdCAmZHJtX2dlbV9vYmplY3QsIGl0 IGNhbiBpbXBsZW1lbnQgdGhpcwo+ID4gIAkgKiBvcHRpb25hbCBob29rIGZvciBwcmludGluZyBh ZGRpdGlvbmFsIGRyaXZlciBzcGVjaWZpYyBpbmZvLgo+ID4gIAkgKgo+ID4gQEAgLTU0OCw1NiAr NTU3LDEyMCBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7Cj4gPiAgCS8qKgo+ID4gIAkgKiBAZ2VtX2Ny ZWF0ZV9vYmplY3Q6IGNvbnN0cnVjdG9yIGZvciBnZW0gb2JqZWN0cwo+ID4gIAkgKgo+ID4gLQkg KiBIb29rIGZvciBhbGxvY2F0aW5nIHRoZSBHRU0gb2JqZWN0IHN0cnVjdCwgZm9yIHVzZSBieSBj b3JlCj4gPiAtCSAqIGhlbHBlcnMuCj4gPiArCSAqIEhvb2sgZm9yIGFsbG9jYXRpbmcgdGhlIEdF TSBvYmplY3Qgc3RydWN0LCBmb3IgdXNlIGJ5IHRoZSBDTUEgYW5kCj4gPiArCSAqIFNITUVNIEdF TSBoZWxwZXJzLgo+ID4gIAkgKi8KPiA+ICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICooKmdlbV9j cmVhdGVfb2JqZWN0KShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAkJCQkJCSAgICBzaXpl X3Qgc2l6ZSk7Cj4gPiAtCj4gPiAtCS8qIHByaW1lOiAqLwo+ID4gIAkvKioKPiA+ICAJICogQHBy aW1lX2hhbmRsZV90b19mZDoKPiA+ICAJICoKPiA+IC0JICogZXhwb3J0IGhhbmRsZSAtPiBmZCAo c2VlIGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKCkgaGVscGVyKQo+ID4gKwkgKiBNYWluIFBS SU1FIGV4cG9ydCBmdW5jdGlvbi4gU2hvdWxkIGJlIGltcGxlbWVudGVkIHdpdGgKPiA+ICsJICog ZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQoKSBmb3IgR0VNIGJhc2VkIGRyaXZlcnMuCj4gPiAr CSAqCj4gPiArCSAqIEZvciBhbiBpbi1kZXB0aCBkaXNjdXNzaW9uIHNlZSA6cmVmOmBQUklNRSBi dWZmZXIgc2hhcmluZwo+ID4gKwkgKiBkb2N1bWVudGF0aW9uIDxwcmltZV9idWZmZXJfc2hhcmlu Zz5gLgo+ID4gIAkgKi8KPiA+ICAJaW50ICgqcHJpbWVfaGFuZGxlX3RvX2ZkKShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiA+ICAJCQkJdWludDMy X3QgaGFuZGxlLCB1aW50MzJfdCBmbGFncywgaW50ICpwcmltZV9mZCk7Cj4gPiAgCS8qKgo+ID4g IAkgKiBAcHJpbWVfZmRfdG9faGFuZGxlOgo+ID4gIAkgKgo+ID4gLQkgKiBpbXBvcnQgZmQgLT4g aGFuZGxlIChzZWUgZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUoKSBoZWxwZXIpCj4gPiArCSAq IE1haW4gUFJJTUUgaW1wb3J0IGZ1bmN0aW9uLiBTaG91bGQgYmUgaW1wbGVtZW50ZWQgd2l0aAo+ ID4gKwkgKiBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSgpIGZvciBHRU0gYmFzZWQgZHJpdmVy cy4KPiA+ICsJICoKPiA+ICsJICogRm9yIGFuIGluLWRlcHRoIGRpc2N1c3Npb24gc2VlIDpyZWY6 YFBSSU1FIGJ1ZmZlciBzaGFyaW5nCj4gPiArCSAqIGRvY3VtZW50YXRpb24gPHByaW1lX2J1ZmZl cl9zaGFyaW5nPmAuCj4gPiAgCSAqLwo+ID4gIAlpbnQgKCpwcmltZV9mZF90b19oYW5kbGUpKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+ID4gIAkJ CQlpbnQgcHJpbWVfZmQsIHVpbnQzMl90ICpoYW5kbGUpOwo+ID4gIAkvKioKPiA+ICAJICogQGdl bV9wcmltZV9leHBvcnQ6Cj4gPiAgCSAqCj4gPiAtCSAqIGV4cG9ydCBHRU0gLT4gZG1hYnVmCj4g PiAtCSAqCj4gPiAtCSAqIFRoaXMgZGVmYXVsdHMgdG8gZHJtX2dlbV9wcmltZV9leHBvcnQoKSBp ZiBub3Qgc2V0Lgo+ID4gKwkgKiBFeHBvcnQgaG9vayBmb3IgR0VNIGRyaXZlcnMuIERlcHJlY2F0 ZWQgaW4gZmF2b3VyIG9mCj4gPiArCSAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy5leHBvcnQuCj4g PiAgCSAqLwo+ID4gIAlzdHJ1Y3QgZG1hX2J1ZiAqICgqZ2VtX3ByaW1lX2V4cG9ydCkoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJCQkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGlu dCBmbGFncyk7Cj4gPiAgCS8qKgo+ID4gIAkgKiBAZ2VtX3ByaW1lX2ltcG9ydDoKPiA+ICAJICoK PiA+IC0JICogaW1wb3J0IGRtYWJ1ZiAtPiBHRU0KPiA+ICsJICogSW1wb3J0IGhvb2sgZm9yIEdF TSBkcml2ZXJzLgo+ID4gIAkgKgo+ID4gIAkgKiBUaGlzIGRlZmF1bHRzIHRvIGRybV9nZW1fcHJp bWVfaW1wb3J0KCkgaWYgbm90IHNldC4KPiA+ICAJICovCj4gPiAgCXN0cnVjdCBkcm1fZ2VtX29i amVjdCAqICgqZ2VtX3ByaW1lX2ltcG9ydCkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJ CQkJc3RydWN0IGRtYV9idWYgKmRtYV9idWYpOwo+ID4gKwo+ID4gKwkvKioKPiA+ICsJICogQGdl bV9wcmltZV9waW46Cj4gPiArCSAqCj4gPiArCSAqIERlcHJlY2F0ZWQgaG9vayBpbiBmYXZvdXIg b2YgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnBpbi4KPiA+ICsJICovCj4gPiAgCWludCAoKmdlbV9w cmltZV9waW4pKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiA+ICsKPiA+ICsJLyoqCj4g PiArCSAqIEBnZW1fcHJpbWVfdW5waW46Cj4gPiArCSAqCj4gPiArCSAqIERlcHJlY2F0ZWQgaG9v ayBpbiBmYXZvdXIgb2YgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnVucGluLgo+ID4gKwkgKi8KPiA+ ICAJdm9pZCAoKmdlbV9wcmltZV91bnBpbikoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+ ID4gKwo+ID4gKwo+ID4gKwkvKioKPiA+ICsJICogQGdlbV9wcmltZV9nZXRfc2dfdGFibGU6Cj4g PiArCSAqCj4gPiArCSAqIERlcHJlY2F0ZWQgaG9vayBpbiBmYXZvdXIgb2YgJmRybV9nZW1fb2Jq ZWN0X2Z1bmNzLmdldF9zZ190YWJsZS4KPiA+ICsJICovCj4gPiArCXN0cnVjdCBzZ190YWJsZSAq KCpnZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4g PiArCj4gPiArCS8qKgo+ID4gKwkgKiBAZ2VtX3ByaW1lX3Jlc19vYmo6Cj4gPiArCSAqCj4gPiAr CSAqIE9wdGlvbmFsIGhvb2sgdG8gbG9vayB1cCB0aGUgJnJlc2VydmF0aW9uX29iamVjdCBmb3Ig YW4gYnVmZmVyIHdoZW4KPiA+ICsJICogZXhwb3J0aW5nIGl0Lgo+ID4gKwkgKgo+ID4gKwkgKiBG SVhNRTogVGhpcyBob29rIGlzIGRlcHJlY2F0ZWQuIFVzZXJzIG9mIHRoaXMgaG9vayBzaG91bGQg YmUgcmVwbGFjZWQKPiA+ICsJICogYnkgc2V0dGluZyAmZHJtX2dlbV9vYmplY3QucmVzdiBpbnN0 ZWFkLgo+ID4gKwkgKi8KPiA+ICAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqICgqZ2VtX3By aW1lX3Jlc19vYmopKAo+ID4gIAkJCQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4gPiAt CXN0cnVjdCBzZ190YWJsZSAqKCpnZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKShzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iaik7Cj4gPiArCj4gPiArCS8qKgo+ID4gKwkgKiBAZ2VtX3ByaW1lX2ltcG9y dF9zZ190YWJsZToKPiA+ICsJICoKPiA+ICsJICogT3B0aW9uYWwgaG9vayB1c2VkIGJ5IHRoZSBQ UklNRSBoZWxwZXIgZnVuY3Rpb25zCj4gPiArCSAqIGRybV9nZW1fcHJpbWVfaW1wb3J0KCkgcmVz cGVjdGl2ZWx5IGRybV9nZW1fcHJpbWVfaW1wb3J0X2RldigpLgo+ID4gKwkgKi8KPiA+ICAJc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICooKmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUpKAo+ID4gIAkJ CQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAkJCQlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2ht ZW50ICphdHRhY2gsCj4gPiAgCQkJCXN0cnVjdCBzZ190YWJsZSAqc2d0KTsKPiA+ICsJLyoqCj4g PiArCSAqIEBnZW1fcHJpbWVfdm1hcDoKPiA+ICsJICoKPiA+ICsJICogRGVwcmVjYXRlZCB2bWFw IGhvb2sgZm9yIEdFTSBkcml2ZXJzLiBQbGVhc2UgdXNlCj4gPiArCSAqICZkcm1fZ2VtX29iamVj dF9mdW5jcy52bWFwIGluc3RlYWQuCj4gPiArCSAqLwo+ID4gIAl2b2lkICooKmdlbV9wcmltZV92 bWFwKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4gPiArCj4gPiArCS8qKgo+ID4gKwkg KiBAZ2VtX3ByaW1lX3Z1bm1hcDoKPiA+ICsJICoKPiA+ICsJICogRGVwcmVjYXRlZCB2dW5tYXAg aG9vayBmb3IgR0VNIGRyaXZlcnMuIFBsZWFzZSB1c2UKPiA+ICsJICogJmRybV9nZW1fb2JqZWN0 X2Z1bmNzLnZ1bm1hcCBpbnN0ZWFkLgo+ID4gKwkgKi8KPiA+ICAJdm9pZCAoKmdlbV9wcmltZV92 dW5tYXApKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCB2b2lkICp2YWRkcik7Cj4gPiArCj4g PiArCS8qKgo+ID4gKwkgKiBAZ2VtX3ByaW1lX21tYXA6Cj4gPiArCSAqCj4gPiArCSAqIG1tYXAg aG9vayBmb3IgR0VNIGRyaXZlcnMsIHVzZWQgdG8gaW1wbGVtZW50IGRtYS1idWYgbW1hcCBpbiB0 aGUKPiA+ICsJICogUFJJTUUgaGVscGVycy4KPiA+ICsJICoKPiA+ICsJICogRklYTUU6IFRoZXJl J3Mgd2F5IHRvbyBtdWNoIGR1cGxpY2F0aW9uIGdvaW5nIG9uIGhlcmUsIGFuZCBhbHNvIG1vdmVk Cj4gPiArCSAqIHRvICZkcm1fZ2VtX29iamVjdF9mdW5jcy4KPiA+ICsJICovCj4gPiAgCWludCAo KmdlbV9wcmltZV9tbWFwKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKPiA+ICAJCQkJc3Ry dWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwo+ID4gIAo+ID4gQEAgLTY2NSw2ICs3MzgsOSBAQCBz dHJ1Y3QgZHJtX2RyaXZlciB7Cj4gPiAgCj4gPiAgCS8qKgo+ID4gIAkgKiBAZ2VtX3ZtX29wczog RHJpdmVyIHByaXZhdGUgb3BzIGZvciB0aGlzIG9iamVjdAo+ID4gKwkgKgo+ID4gKwkgKiBGb3Ig R0VNIGRyaXZlciB0aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mCj4gCj4gcy9kcml2ZXIv ZHJpdmVycy8KPiAKPiA+ICsJICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnZtX29wcy4KPiA+ICAJ ICovCj4gPiAgCWNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCAqZ2VtX3ZtX29wczsK PiA+ICAKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZ2VtLmggYi9pbmNsdWRlL2Ry bS9kcm1fZ2VtLmgKPiA+IGluZGV4IGE5MTIxZmU2NmVhMi4uOWFmODgyMzhlZTVjIDEwMDY0NAo+ ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2dlbS5oCj4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1f Z2VtLmgKPiA+IEBAIC0xMDEsNyArMTAxLDcgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1bmNz IHsKPiA+ICAJLyoqCj4gPiAgCSAqIEBwaW46Cj4gPiAgCSAqCj4gPiAtCSAqIFBpbiBiYWNraW5n IGJ1ZmZlciBpbiBtZW1vcnkuCj4gPiArCSAqIFBpbiBiYWNraW5nIGJ1ZmZlciBpbiBtZW1vcnku IFVzZWQgYnkgdGhlIGRybV9nZW1fbWFwX2F0dGFjaCBoZWxwZXIuCj4gCj4gcy9kcm1fZ2VtX21h cF9hdHRhY2gvZHJtX2dlbV9tYXBfYXR0YWNoKCkvCj4gCj4gTG9va3Mgc2FuZToKPiAKPiBBY2tl ZC1ieTogTm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Cj4gCj4gPiAgCSAqCj4g PiAgCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCj4gPiAgCSAqLwo+ID4gQEAgLTExMCw3 ICsxMTAsNyBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3Mgewo+ID4gIAkvKioKPiA+ICAJ ICogQHVucGluOgo+ID4gIAkgKgo+ID4gLQkgKiBVbnBpbiBiYWNraW5nIGJ1ZmZlci4KPiA+ICsJ ICogVW5waW4gYmFja2luZyBidWZmZXIuIFVzZWQgYnkgdGhlIGRybV9nZW1fbWFwX2RldGFjaCgp IGhlbHBlci4KPiA+ICAJICoKPiA+ICAJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4KPiA+ ICAJICovCj4gPiBAQCAtMTIwLDE2ICsxMjAsMjEgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0X2Z1 bmNzIHsKPiA+ICAJICogQGdldF9zZ190YWJsZToKPiA+ICAJICoKPiA+ICAJICogUmV0dXJucyBh IFNjYXR0ZXItR2F0aGVyIHRhYmxlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWZmZXIuCj4gPiAt CSAqIFVzZWQgd2hlbiBleHBvcnRpbmcgYSBidWZmZXIuCj4gPiArCSAqIFVzZWQgd2hlbiBleHBv cnRpbmcgYSBidWZmZXIgYnkgdGhlIGRybV9nZW1fbWFwX2RtYV9idWYoKSBoZWxwZXIuCj4gPiAr CSAqIFJlbGVhc2luZyBpcyBkb25lIGJ5IGNhbGxpbmcgZG1hX3VubWFwX3NnX2F0dHJzKCkgYW5k IHNnX2ZyZWVfdGFibGUoKQo+ID4gKwkgKiBpbiBkcm1fZ2VtX3VubWFwX2J1ZigpLCB0aGVyZWZv cmUgdGhlc2UgaGVscGVycyBhbmQgdGhpcyBjYWxsYmFjawo+ID4gKwkgKiBoZXJlIGNhbm5vdCBi ZSB1c2VkIGZvciBzZyB0YWJsZXMgcG9pbnRpbmcgYXQgZHJpdmVyIHByaXZhdGUgbWVtb3J5Cj4g PiArCSAqIHJhbmdlcy4KPiA+ICAJICoKPiA+IC0JICogVGhpcyBjYWxsYmFjayBpcyBtYW5kYXRv cnkgaWYgYnVmZmVyIGV4cG9ydCBpcyBzdXBwb3J0ZWQuCj4gPiArCSAqIFNlZSBhbHNvIGRybV9w cmltZV9wYWdlc190b19zZygpLgo+ID4gIAkgKi8KPiA+ICAJc3RydWN0IHNnX3RhYmxlICooKmdl dF9zZ190YWJsZSkoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+ID4gIAo+ID4gIAkvKioK PiA+ICAJICogQHZtYXA6Cj4gPiAgCSAqCj4gPiAtCSAqIFJldHVybnMgYSB2aXJ0dWFsIGFkZHJl c3MgZm9yIHRoZSBidWZmZXIuCj4gPiArCSAqIFJldHVybnMgYSB2aXJ0dWFsIGFkZHJlc3MgZm9y IHRoZSBidWZmZXIuIFVzZWQgYnkgdGhlCj4gPiArCSAqIGRybV9nZW1fZG1hYnVmX3ZtYXAoKSBo ZWxwZXIuCj4gPiAgCSAqCj4gPiAgCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCj4gPiAg CSAqLwo+ID4gQEAgLTEzOCw3ICsxNDMsOCBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3Mg ewo+ID4gIAkvKioKPiA+ICAJICogQHZ1bm1hcDoKPiA+ICAJICoKPiA+IC0JICogUmVsZWFzZXMg dGhlIHRoZSBhZGRyZXNzIHByZXZpb3VzbHkgcmV0dXJuZWQgYnkgQHZtYXAuCj4gPiArCSAqIFJl bGVhc2VzIHRoZSB0aGUgYWRkcmVzcyBwcmV2aW91c2x5IHJldHVybmVkIGJ5IEB2bWFwLiBVc2Vk IGJ5IHRoZQo+ID4gKwkgKiBkcm1fZ2VtX2RtYWJ1Zl92dW5tYXAoKSBoZWxwZXIuCj4gPiAgCSAq Cj4gPiAgCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCj4gPiAgCSAqLwo+ID4gCgotLSAK RGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDov L2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4