From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 3/8] drm/doc: Add GEM/CMA helpers to kerneldoc Date: Thu, 6 Nov 2014 21:05:42 +0100 Message-ID: <20141106200542.GI26941@phenom.ffwll.local> References: <1415193919-1687-1-git-send-email-thierry.reding@gmail.com> <1415288961-14464-1-git-send-email-thierry.reding@gmail.com> <1415288961-14464-4-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f177.google.com (mail-wi0-f177.google.com [209.85.212.177]) by gabe.freedesktop.org (Postfix) with ESMTP id 5EF6C6E331 for ; Thu, 6 Nov 2014 12:05:28 -0800 (PST) Received: by mail-wi0-f177.google.com with SMTP id ex7so2606478wid.16 for ; Thu, 06 Nov 2014 12:05:27 -0800 (PST) Content-Disposition: inline In-Reply-To: <1415288961-14464-4-git-send-email-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: Benjamin Gaignard , Daniel Vetter , dri-devel@lists.freedesktop.org, Tomi Valkeinen , Laurent Pinchart , Russell King , Dave Airlie List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBOb3YgMDYsIDIwMTQgYXQgMDQ6NDk6MTZQTSArMDEwMCwgVGhpZXJyeSBSZWRpbmcg d3JvdGU6Cj4gRnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiAKPiBN b3N0IG9mIHRoZSBmdW5jdGlvbnMgYWxyZWFkeSBoYXZlIHRoZSBiZWdpbm5pbmdzIG9mIGtlcm5l bGRvYyBjb21tZW50cwo+IGJ1dCBhcmUgdXNpbmcgdGhlIHdyb25nIG9wZW5pbmcgbWFya2VyLiBV c2UgdGhlIGNvcnJlY3Qgb3BlbmluZyBtYXJrZXIKPiBhbmQgZmxlc2ggb3V0IHRoZSBjb21tZW50 cyBzbyB0aGF0IHRoZXkgY2FuIGJlIGludGVncmF0ZWQgd2l0aCB0aGUgRFJNCj4gRG9jQm9vayBk b2N1bWVudC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0Budmlk aWEuY29tPgoKTG9va3MgcmVhbGx5IGdvb2QuIFJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IC0tLQo+IENoYW5nZXMgaW4gdjI6Cj4gLSBkb2N1bWVu dCByZXR1cm4gdmFsdWUgY29uc2lzdGVudGx5IHdpdGggb3RoZXIgc291cmNlIGZpbGVzCj4gLSBw cm92aWRlIGJldHRlciBkb2N1bWVudGF0aW9uIGFuZCB1c2UtY2FzZXMgZm9yIGhlbHBlcnMKPiAt LS0KPiAgRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBsICAgICAgIHwgICA2ICsKPiAgZHJp dmVycy9ncHUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5jIHwgMjIwICsrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tCj4gIGluY2x1ZGUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5oICAg ICB8ICAyNSArKy0tCj4gIDMgZmlsZXMgY2hhbmdlZCwgMjAzIGluc2VydGlvbnMoKyksIDQ4IGRl bGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRt cGwgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwKPiBpbmRleCA2ZTMyZWY5Yzc1ZmQu LjZhMTRlYWI0YTNkOCAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRt cGwKPiArKysgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwKPiBAQCAtOTYzLDYgKzk2 MywxMiBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKiAoKmdlbV9wcmltZV9pbXBvcnQpKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gICFFZHJpdmVycy9ncHUvZHJtL2RybV9tbS5jCj4gICFJaW5j bHVkZS9kcm0vZHJtX21tLmgKPiAgICAgIDwvc2VjdDI+Cj4gKyAgICA8c2VjdDI+Cj4gKyAgICAg IDx0aXRsZT5DTUEgSGVscGVyIEZ1bmN0aW9ucyBSZWZlcmVuY2U8L3RpdGxlPgo+ICshUGRyaXZl cnMvZ3B1L2RybS9kcm1fZ2VtX2NtYV9oZWxwZXIuYyBjbWEgaGVscGVycwo+ICshRWRyaXZlcnMv Z3B1L2RybS9kcm1fZ2VtX2NtYV9oZWxwZXIuYwo+ICshSWluY2x1ZGUvZHJtL2RybV9nZW1fY21h X2hlbHBlci5oCj4gKyAgICA8L3NlY3QyPgo+ICAgIDwvc2VjdDE+Cj4gIAo+ICAgIDwhLS0gSW50 ZXJuYWxzOiBtb2RlIHNldHRpbmcgLS0+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fZ2VtX2NtYV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX2NtYV9oZWxwZXIu Ywo+IGluZGV4IDAzMTYzMTBlMmNjNC4uN2Y5ODZkN2I4ZTIyIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fZ2VtX2NtYV9oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZ2VtX2NtYV9oZWxwZXIuYwo+IEBAIC0yOSwxOCArMjksMzEgQEAKPiAgI2luY2x1ZGUgPGRy bS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fdm1hX21hbmFnZXIu aD4KPiAgCj4gLS8qCj4gKy8qKgo+ICsgKiBET0M6IGNtYSBoZWxwZXJzCj4gKyAqCj4gKyAqIFRo ZSBDb250aWd1b3VzIE1lbW9yeSBBbGxvY2F0b3IgcmVzZXJ2ZXMgYSBwb29sIG9mIG1lbW9yeSBh dCBlYXJseSBib290Cj4gKyAqIHRoYXQgaXMgdXNlZCB0byBzZXJ2aWNlIHJlcXVlc3RzIGZvciBs YXJnZSBibG9ja3Mgb2YgY29udGlndW91cyBtZW1vcnkuCj4gKyAqCj4gKyAqIFRoZSBEUk0gR0VN L0NNQSBoZWxwZXJzIHVzZSB0aGlzIGFsbG9jYXRvciBhcyBhIG1lYW5zIHRvIHByb3ZpZGUgYnVm ZmVyCj4gKyAqIG9iamVjdHMgdGhhdCBhcmUgcGh5c2ljYWxseSBjb250aWd1b3VzIGluIG1lbW9y eS4gVGhpcyBpcyB1c2VmdWwgZm9yCj4gKyAqIGRpc3BsYXkgZHJpdmVycyB0aGF0IGFyZSB1bmFi bGUgdG8gbWFwIHNjYXR0ZXJlZCBidWZmZXJzIHZpYSBhbiBJT01NVS4KPiArICovCj4gKwo+ICsv KioKPiAgICogX19kcm1fZ2VtX2NtYV9jcmVhdGUgLSBDcmVhdGUgYSBHRU0gQ01BIG9iamVjdCB3 aXRob3V0IGFsbG9jYXRpbmcgbWVtb3J5Cj4gLSAqIEBkcm06IFRoZSBkcm0gZGV2aWNlCj4gLSAq IEBzaXplOiBUaGUgR0VNIG9iamVjdCBzaXplCj4gKyAqIEBkcm06IERSTSBkZXZpY2UKPiArICog QHNpemU6IHNpemUgb2YgdGhlIG9iamVjdCB0byBhbGxvY2F0ZQo+ICAgKgo+IC0gKiBUaGlzIGZ1 bmN0aW9uIGNyZWF0ZXMgYW5kIGluaXRpYWxpemVzIGEgR0VNIENNQSBvYmplY3Qgb2YgdGhlIGdp dmVuIHNpemUsIGJ1dAo+IC0gKiBkb2Vzbid0IGFsbG9jYXRlIGFueSBtZW1vcnkgdG8gYmFjayB0 aGUgb2JqZWN0Lgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYW5kIGluaXRpYWxpemVzIGEg R0VNIENNQSBvYmplY3Qgb2YgdGhlIGdpdmVuIHNpemUsCj4gKyAqIGJ1dCBkb2Vzbid0IGFsbG9j YXRlIGFueSBtZW1vcnkgdG8gYmFjayB0aGUgb2JqZWN0Lgo+ICAgKgo+IC0gKiBSZXR1cm4gYSBz dHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0KiBvbiBzdWNjZXNzIG9yIEVSUl9QVFIgdmFsdWVzIG9u IGZhaWx1cmUuCj4gKyAqIFJldHVybnM6Cj4gKyAqIEEgc3RydWN0IGRybV9nZW1fY21hX29iamVj dCAqIG9uIHN1Y2Nlc3Mgb3IgYW4gRVJSX1BUUigpLWVuY29kZWQgbmVnYXRpdmUKPiArICogZXJy b3IgY29kZSBvbiBmYWlsdXJlLgo+ICAgKi8KPiAgc3RhdGljIHN0cnVjdCBkcm1fZ2VtX2NtYV9v YmplY3QgKgo+IC1fX2RybV9nZW1fY21hX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCB1 bnNpZ25lZCBpbnQgc2l6ZSkKPiArX19kcm1fZ2VtX2NtYV9jcmVhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRybSwgc2l6ZV90IHNpemUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3Qg KmNtYV9vYmo7Cj4gIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmo7Cj4gQEAgLTY5LDE0 ICs4MiwyMSBAQCBlcnJvcjoKPiAgCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gIH0KPiAgCj4gLS8q Cj4gKy8qKgo+ICAgKiBkcm1fZ2VtX2NtYV9jcmVhdGUgLSBhbGxvY2F0ZSBhbiBvYmplY3Qgd2l0 aCB0aGUgZ2l2ZW4gc2l6ZQo+ICsgKiBAZHJtOiBEUk0gZGV2aWNlCj4gKyAqIEBzaXplOiBzaXpl IG9mIHRoZSBvYmplY3QgdG8gYWxsb2NhdGUKPiArICoKPiArICogVGhpcyBmdW5jdGlvbiBjcmVh dGVzIGEgQ01BIEdFTSBvYmplY3QgYW5kIGFsbG9jYXRlcyBhIGNvbnRpZ3VvdXMgY2h1bmsgb2YK PiArICogbWVtb3J5IGFzIGJhY2tpbmcgc3RvcmUuIFRoZSBiYWNraW5nIG1lbW9yeSBoYXMgdGhl IHdyaXRlY29tYmluZSBhdHRyaWJ1dGUKPiArICogc2V0Lgo+ICAgKgo+IC0gKiByZXR1cm5zIGEg c3RydWN0IGRybV9nZW1fY21hX29iamVjdCogb24gc3VjY2VzcyBvciBFUlJfUFRSIHZhbHVlcwo+ IC0gKiBvbiBmYWlsdXJlLgo+ICsgKiBSZXR1cm5zOgo+ICsgKiBBIHN0cnVjdCBkcm1fZ2VtX2Nt YV9vYmplY3QgKiBvbiBzdWNjZXNzIG9yIGFuIEVSUl9QVFIoKS1lbmNvZGVkIG5lZ2F0aXZlCj4g KyAqIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiAgICovCj4gIHN0cnVjdCBkcm1fZ2VtX2NtYV9v YmplY3QgKmRybV9nZW1fY21hX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+IC0JCXVu c2lnbmVkIGludCBzaXplKQo+ICsJCQkJCSAgICAgIHNpemVfdCBzaXplKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpjbWFfb2JqOwo+ICAJaW50IHJldDsKPiBAQCAtMTA0LDE3 ICsxMjQsMjYgQEAgZXJyb3I6Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2dlbV9jbWFf Y3JlYXRlKTsKPiAgCj4gLS8qCj4gLSAqIGRybV9nZW1fY21hX2NyZWF0ZV93aXRoX2hhbmRsZSAt IGFsbG9jYXRlIGFuIG9iamVjdCB3aXRoIHRoZSBnaXZlbgo+IC0gKiBzaXplIGFuZCBjcmVhdGUg YSBnZW0gaGFuZGxlIG9uIGl0Cj4gKy8qKgo+ICsgKiBkcm1fZ2VtX2NtYV9jcmVhdGVfd2l0aF9o YW5kbGUgLSBhbGxvY2F0ZSBhbiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gc2l6ZSBhbmQKPiArICog ICAgIHJldHVybiBhIEdFTSBoYW5kbGUgdG8gaXQKPiArICogQGZpbGVfcHJpdjogRFJNIGZpbGUt cHJpdmF0ZSBzdHJ1Y3R1cmUgdG8gcmVnaXN0ZXIgdGhlIGhhbmRsZSBmb3IKPiArICogQGRybTog RFJNIGRldmljZQo+ICsgKiBAc2l6ZTogc2l6ZSBvZiB0aGUgb2JqZWN0IHRvIGFsbG9jYXRlCj4g KyAqIEBoYW5kbGU6IHJldHVybiBsb2NhdGlvbiBmb3IgdGhlIEdFTSBoYW5kbGUKPiArICoKPiAr ICogVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgQ01BIEdFTSBvYmplY3QsIGFsbG9jYXRpbmcgYSBw aHlzaWNhbGx5IGNvbnRpZ3VvdXMKPiArICogY2h1bmsgb2YgbWVtb3J5IGFzIGJhY2tpbmcgc3Rv cmUuIFRoZSBHRU0gb2JqZWN0IGlzIHRoZW4gYWRkZWQgdG8gdGhlIGxpc3QKPiArICogb2Ygb2Jq ZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gZmlsZSBhbmQgYSBoYW5kbGUgdG8gaXQgaXMg cmV0dXJuZWQuCj4gICAqCj4gLSAqIHJldHVybnMgYSBzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0 KiBvbiBzdWNjZXNzIG9yIEVSUl9QVFIgdmFsdWVzCj4gLSAqIG9uIGZhaWx1cmUuCj4gKyAqIFJl dHVybnM6Cj4gKyAqIEEgc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqIG9uIHN1Y2Nlc3Mgb3Ig YW4gRVJSX1BUUigpLWVuY29kZWQgbmVnYXRpdmUKPiArICogZXJyb3IgY29kZSBvbiBmYWlsdXJl Lgo+ICAgKi8KPiAtc3RhdGljIHN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmRybV9nZW1fY21h X2NyZWF0ZV93aXRoX2hhbmRsZSgKPiAtCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAt CQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCB1bnNpZ25lZCBpbnQgc2l6ZSwKPiAtCQl1bnNpZ25l ZCBpbnQgKmhhbmRsZSkKPiArc3RhdGljIHN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKgo+ICtk cm1fZ2VtX2NtYV9jcmVhdGVfd2l0aF9oYW5kbGUoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYs Cj4gKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzaXplX3Qgc2l6ZSwKPiArCQkJ ICAgICAgIHVpbnQzMl90ICpoYW5kbGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmpl Y3QgKmNtYV9vYmo7Cj4gIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmo7Cj4gQEAgLTE0 NSw5ICsxNzQsMTQgQEAgZXJyX2hhbmRsZV9jcmVhdGU6Cj4gIAlyZXR1cm4gRVJSX1BUUihyZXQp Owo+ICB9Cj4gIAo+IC0vKgo+IC0gKiBkcm1fZ2VtX2NtYV9mcmVlX29iamVjdCAtIChzdHJ1Y3Qg ZHJtX2RyaXZlciktPmdlbV9mcmVlX29iamVjdCBjYWxsYmFjawo+IC0gKiBmdW5jdGlvbgo+ICsv KioKPiArICogZHJtX2dlbV9jbWFfZnJlZV9vYmplY3QgLSBmcmVlIHJlc291cmNlcyBhc3NvY2lh dGVkIHdpdGggYSBDTUEgR0VNIG9iamVjdAo+ICsgKiBAZ2VtX29iajogR0VNIG9iamVjdCB0byBm cmVlCj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gZnJlZXMgdGhlIGJhY2tpbmcgbWVtb3J5IG9m IHRoZSBDTUEgR0VNIG9iamVjdCwgY2xlYW5zIHVwIHRoZQo+ICsgKiBHRU0gb2JqZWN0IHN0YXRl IGFuZCBmcmVlcyB0aGUgbWVtb3J5IHVzZWQgdG8gc3RvcmUgdGhlIG9iamVjdCBpdHNlbGYuCj4g KyAqIERyaXZlcnMgdXNpbmcgdGhlIENNQSBoZWxwZXJzIHNob3VsZCBzZXQgdGhpcyBhcyB0aGVp ciBEUk0gZHJpdmVyJ3MKPiArICogLT5nZW1fZnJlZV9vYmplY3QoKSBjYWxsYmFjay4KPiAgICov Cj4gIHZvaWQgZHJtX2dlbV9jbWFfZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpn ZW1fb2JqKQo+ICB7Cj4gQEAgLTE3MCwxNSArMjA0LDIzIEBAIHZvaWQgZHJtX2dlbV9jbWFfZnJl ZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqKQo+ICB9Cj4gIEVYUE9SVF9T WU1CT0xfR1BMKGRybV9nZW1fY21hX2ZyZWVfb2JqZWN0KTsKPiAgCj4gLS8qCj4gLSAqIGRybV9n ZW1fY21hX2R1bWJfY3JlYXRlIC0gKHN0cnVjdCBkcm1fZHJpdmVyKS0+ZHVtYl9jcmVhdGUgY2Fs bGJhY2sKPiAtICogZnVuY3Rpb24KPiArLyoqCj4gKyAqIGRybV9nZW1fY21hX2R1bWJfY3JlYXRl IC0gY3JlYXRlIGEgZHVtYiBidWZmZXIgb2JqZWN0Cj4gKyAqIEBmaWxlX3ByaXY6IERSTSBmaWxl LXByaXZhdGUgc3RydWN0dXJlIHRvIGNyZWF0ZSB0aGUgZHVtYiBidWZmZXIgZm9yCj4gKyAqIEBk cm06IERSTSBkZXZpY2UKPiArICogQGFyZ3M6IElPQ1RMIGRhdGEKPiArICoKPiArICogVGhpcyBm dW5jdGlvbiBjb21wdXRlcyB0aGUgcGl0Y2ggb2YgdGhlIGR1bWIgYnVmZmVyIGFuZCByb3VuZHMg aXQgdXAgdG8gYW4KPiArICogaW50ZWdlciBudW1iZXIgb2YgYnl0ZXMgcGVyIHBpeGVsLiBEcml2 ZXJzIGZvciBoYXJkd2FyZSB0aGF0IGRvZXNuJ3QgaGF2ZQo+ICsgKiBhbnkgYWRkaXRpb25hbCBy ZXN0cmljdGlvbnMgb24gdGhlIHBpdGNoIGNhbiBkaXJlY3RseSB1c2UgdGhpcyBmdW5jdGlvbiBh cwo+ICsgKiB0aGVpciAtPmR1bWJfY3JlYXRlKCkgY2FsbGJhY2suCj4gICAqCj4gLSAqIFRoaXMg YWxpZ25zIHRoZSBwaXRjaCBhbmQgc2l6ZSBhcmd1bWVudHMgdG8gdGhlIG1pbmltdW0gcmVxdWly ZWQuIHdyYXAKPiAtICogdGhpcyBpbnRvIHlvdXIgb3duIGZ1bmN0aW9uIGlmIHlvdSBuZWVkIGJp Z2dlciBhbGlnbm1lbnQuCj4gKyAqIFJldHVybnM6Cj4gKyAqIDAgb24gc3VjY2VzcyBvciBhIG5l Z2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiAgICovCj4gIGludCBkcm1fZ2VtX2NtYV9k dW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAtCQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFyZ3MpCj4gKwkJCSAgICBz dHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+ICsJCQkgICAgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9k dW1iICphcmdzKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpjbWFfb2JqOwo+ ICAJaW50IG1pbl9waXRjaCA9IERJVl9ST1VORF9VUChhcmdzLT53aWR0aCAqIGFyZ3MtPmJwcCwg OCk7Cj4gQEAgLTE4OSwxOCArMjMxLDMwIEBAIGludCBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZShz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAgCWlmIChhcmdzLT5zaXplIDwgYXJncy0+cGl0 Y2ggKiBhcmdzLT5oZWlnaHQpCj4gIAkJYXJncy0+c2l6ZSA9IGFyZ3MtPnBpdGNoICogYXJncy0+ aGVpZ2h0Owo+ICAKPiAtCWNtYV9vYmogPSBkcm1fZ2VtX2NtYV9jcmVhdGVfd2l0aF9oYW5kbGUo ZmlsZV9wcml2LCBkZXYsCj4gLQkJCWFyZ3MtPnNpemUsICZhcmdzLT5oYW5kbGUpOwo+ICsJY21h X29iaiA9IGRybV9nZW1fY21hX2NyZWF0ZV93aXRoX2hhbmRsZShmaWxlX3ByaXYsIGRybSwgYXJn cy0+c2l6ZSwKPiArCQkJCQkJICZhcmdzLT5oYW5kbGUpOwo+ICAJcmV0dXJuIFBUUl9FUlJfT1Jf WkVSTyhjbWFfb2JqKTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChkcm1fZ2VtX2NtYV9kdW1i X2NyZWF0ZSk7Cj4gIAo+IC0vKgo+IC0gKiBkcm1fZ2VtX2NtYV9kdW1iX21hcF9vZmZzZXQgLSAo c3RydWN0IGRybV9kcml2ZXIpLT5kdW1iX21hcF9vZmZzZXQgY2FsbGJhY2sKPiAtICogZnVuY3Rp b24KPiArLyoqCj4gKyAqIGRybV9nZW1fY21hX2R1bWJfbWFwX29mZnNldCAtIHJldHVybiB0aGUg ZmFrZSBtbWFwIG9mZnNldCBmb3IgYSBDTUEgR0VNCj4gKyAqICAgICBvYmplY3QKPiArICogQGZp bGVfcHJpdjogRFJNIGZpbGUtcHJpdmF0ZSBzdHJ1Y3R1cmUgY29udGFpbmluZyB0aGUgR0VNIG9i amVjdAo+ICsgKiBAZHJtOiBEUk0gZGV2aWNlCj4gKyAqIEBoYW5kbGU6IEdFTSBvYmplY3QgaGFu ZGxlCj4gKyAqIEBvZmZzZXQ6IHJldHVybiBsb2NhdGlvbiBmb3IgdGhlIGZha2UgbW1hcCBvZmZz ZXQKPiArICoKPiArICogVGhpcyBmdW5jdGlvbiBsb29rIHVwIGFuIG9iamVjdCBieSBpdHMgaGFu ZGxlIGFuZCByZXR1cm5zIHRoZSBmYWtlIG1tYXAKPiArICogb2Zmc2V0IGFzc29jaWF0ZWQgd2l0 aCBpdC4gRHJpdmVycyB1c2luZyB0aGUgQ01BIGhlbHBlcnMgc2hvdWxkIHNldCB0aGlzCj4gKyAq IGFzIHRoZWlyIERSTSBkcml2ZXIncyAtPmR1bWJfbWFwX29mZnNldCgpIGNhbGxiYWNrLgo+ICsg Kgo+ICsgKiBSZXR1cm5zOgo+ICsgKiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBj b2RlIG9uIGZhaWx1cmUuCj4gICAqLwo+ICBpbnQgZHJtX2dlbV9jbWFfZHVtYl9tYXBfb2Zmc2V0 KHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+IC0JCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0s IHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3QgKm9mZnNldCkKPiArCQkJCXN0cnVjdCBkcm1fZGV2 aWNlICpkcm0sIHUzMiBoYW5kbGUsCj4gKwkJCQl1NjQgKm9mZnNldCkKPiAgewo+ICAJc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqOwo+ICAKPiBAQCAtMjA4LDcgKzI2Miw3IEBAIGludCBk cm1fZ2VtX2NtYV9kdW1iX21hcF9vZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4g IAo+ICAJZ2VtX29iaiA9IGRybV9nZW1fb2JqZWN0X2xvb2t1cChkcm0sIGZpbGVfcHJpdiwgaGFu ZGxlKTsKPiAgCWlmICghZ2VtX29iaikgewo+IC0JCWRldl9lcnIoZHJtLT5kZXYsICJmYWlsZWQg dG8gbG9va3VwIGdlbSBvYmplY3RcbiIpOwo+ICsJCWRldl9lcnIoZHJtLT5kZXYsICJmYWlsZWQg dG8gbG9va3VwIEdFTSBvYmplY3RcbiIpOwo+ICAJCW11dGV4X3VubG9jaygmZHJtLT5zdHJ1Y3Rf bXV0ZXgpOwo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+IEBAIC0yNTEsOCArMzA1LDIwIEBA IHN0YXRpYyBpbnQgZHJtX2dlbV9jbWFfbW1hcF9vYmooc3RydWN0IGRybV9nZW1fY21hX29iamVj dCAqY21hX29iaiwKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLS8qCj4gLSAqIGRybV9nZW1f Y21hX21tYXAgLSAoc3RydWN0IGZpbGVfb3BlcmF0aW9uKS0+bW1hcCBjYWxsYmFjayBmdW5jdGlv bgo+ICsvKioKPiArICogZHJtX2dlbV9jbWFfbW1hcCAtIG1lbW9yeS1tYXAgYSBDTUEgR0VNIG9i amVjdAo+ICsgKiBAZmlscDogZmlsZSBvYmplY3QKPiArICogQHZtYTogVk1BIGZvciB0aGUgYXJl YSB0byBiZSBtYXBwZWQKPiArICoKPiArICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIGFuIGF1 Z21lbnRlZCB2ZXJzaW9uIG9mIHRoZSBHRU0gRFJNIGZpbGUgbW1hcAo+ICsgKiBvcGVyYXRpb24g Zm9yIENNQSBvYmplY3RzOiBJbiBhZGRpdGlvbiB0byB0aGUgdXN1YWwgR0VNIFZNQSBzZXR1cCBp dAo+ICsgKiBpbW1lZGlhdGVseSBmYXVsdHMgaW4gdGhlIGVudGlyZSBvYmplY3QgaW5zdGVhZCBv ZiB1c2luZyBvbi1kZW1haW5kCj4gKyAqIGZhdWx0aW5nLiBEcml2ZXJzIHdoaWNoIGVtcGxveSB0 aGUgQ01BIGhlbHBlcnMgc2hvdWxkIHVzZSB0aGlzIGZ1bmN0aW9uCj4gKyAqIGFzIHRoZWlyIC0+ bW1hcCgpIGhhbmRsZXIgaW4gdGhlIERSTSBkZXZpY2UgZmlsZSdzIGZpbGVfb3BlcmF0aW9ucwo+ ICsgKiBzdHJ1Y3R1cmUuCj4gKyAqCj4gKyAqIFJldHVybnM6Cj4gKyAqIDAgb24gc3VjY2VzcyBv ciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiAgICovCj4gIGludCBkcm1fZ2Vt X2NtYV9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkK PiAgewo+IEBAIC0yNzIsNyArMzM4LDE2IEBAIGludCBkcm1fZ2VtX2NtYV9tbWFwKHN0cnVjdCBm aWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKPiAgRVhQT1JUX1NZTUJPTF9H UEwoZHJtX2dlbV9jbWFfbW1hcCk7Cj4gIAo+ICAjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCj4gLXZv aWQgZHJtX2dlbV9jbWFfZGVzY3JpYmUoc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqY21hX29i aiwgc3RydWN0IHNlcV9maWxlICptKQo+ICsvKioKPiArICogZHJtX2dlbV9jbWFfZGVzY3JpYmUg LSBkZXNjcmliZSBhIENNQSBHRU0gb2JqZWN0IGZvciBkZWJ1Z2ZzCj4gKyAqIEBjbWFfb2JqOiBD TUEgR0VNIG9iamVjdAo+ICsgKiBAbTogZGVidWdmcyBmaWxlIGhhbmRsZQo+ICsgKgo+ICsgKiBU aGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGR1bXAgYSBodW1hbi1yZWFkYWJsZSByZXByZXNl bnRhdGlvbiBvZiB0aGUKPiArICogQ01BIEdFTSBvYmplY3QgaW50byBhIHN5bnRoZXRpYyBmaWxl Lgo+ICsgKi8KPiArdm9pZCBkcm1fZ2VtX2NtYV9kZXNjcmliZShzdHJ1Y3QgZHJtX2dlbV9jbWFf b2JqZWN0ICpjbWFfb2JqLAo+ICsJCQkgIHN0cnVjdCBzZXFfZmlsZSAqbSkKPiAgewo+ICAJc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSAmY21hX29iai0+YmFzZTsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBvYmotPmRldjsKPiBAQCAtMjkxLDcgKzM2NiwxOCBAQCB2b2lkIGRybV9n ZW1fY21hX2Rlc2NyaWJlKHN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmosIHN0cnVj dCBzZXFfZmlsZSAqbQo+ICBFWFBPUlRfU1lNQk9MX0dQTChkcm1fZ2VtX2NtYV9kZXNjcmliZSk7 Cj4gICNlbmRpZgo+ICAKPiAtLyogbG93LWxldmVsIGludGVyZmFjZSBwcmltZSBoZWxwZXJzICov Cj4gKy8qKgo+ICsgKiBkcm1fZ2VtX2NtYV9wcmltZV9nZXRfc2dfdGFibGUgLSBwcm92aWRlIGEg c2NhdHRlci9nYXRoZXIgdGFibGUgb2YgcGlubmVkCj4gKyAqICAgICBwYWdlcyBmb3IgYSBDTUEg R0VNIG9iamVjdAo+ICsgKiBAb2JqOiBHRU0gb2JqZWN0Cj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rp b24gZXhwb3J0cyBhIHNjYXR0ZXIvZ2F0aGVyIHRhYmxlIHN1aXRhYmxlIGZvciBQUklNRSB1c2Fn ZSBieQo+ICsgKiBjYWxsaW5nIHRoZSBzdGFuZGFyZCBETUEgbWFwcGluZyBBUEkuIERyaXZlcnMg dXNpbmcgdGhlIENNQSBoZWxwZXJzIHNob3VsZAo+ICsgKiBzZXQgdGhpcyBhcyB0aGVpciBEUk0g ZHJpdmVyJ3MgLT5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKCkgY2FsbGJhY2suCj4gKyAqCj4gKyAq IFJldHVybnM6Cj4gKyAqIEEgcG9pbnRlciB0byB0aGUgc2NhdHRlci9nYXRoZXIgdGFibGUgb2Yg cGlubmVkIHBhZ2VzIG9yIE5VTEwgb24gZmFpbHVyZS4KPiArICovCj4gIHN0cnVjdCBzZ190YWJs ZSAqZHJtX2dlbV9jbWFfcHJpbWVfZ2V0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpjbWFfb2JqID0gdG9fZHJt X2dlbV9jbWFfb2JqKG9iaik7Cj4gQEAgLTMxNSw2ICs0MDEsMjMgQEAgb3V0Ogo+ICB9Cj4gIEVY UE9SVF9TWU1CT0xfR1BMKGRybV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSk7Cj4gIAo+ICsv KioKPiArICogZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlIC0gcHJvZHVjZSBhIENN QSBHRU0gb2JqZWN0IGZyb20gYW5vdGhlcgo+ICsgKiAgICAgZHJpdmVyJ3Mgc2NhdHRlci9nYXRo ZXIgdGFibGUgb2YgcGlubmVkIHBhZ2VzCj4gKyAqIEBkZXY6IGRldmljZSB0byBpbXBvcnQgaW50 bwo+ICsgKiBAYXR0YWNoOiBETUEtQlVGIGF0dGFjaG1lbnQKPiArICogQHNndDogc2NhdHRlci9n YXRoZXIgdGFibGUgb2YgcGlubmVkIHBhZ2VzCj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gaW1w b3J0cyBhIHNjYXR0ZXIvZ2F0aGVyIHRhYmxlIGV4cG9ydGVkIHZpYSBETUEtQlVGIGJ5Cj4gKyAq IGFub3RoZXIgZHJpdmVyLiBJbXBvcnRlZCBidWZmZXJzIG11c3QgYmUgcGh5c2ljYWxseSBjb250 aWd1b3VzIGluIG1lbW9yeQo+ICsgKiAoaS5lLiB0aGUgc2NhdHRlci9nYXRoZXIgdGFibGUgbXVz dCBjb250YWluIGEgc2luZ2xlIGVudHJ5KS4gRHJpdmVycyB0aGF0Cj4gKyAqIHVzZSB0aGUgQ01B IGhlbHBlcnMgc2hvdWxkIHNldCB0aGlzIGFzIHRoZWlyIERSTSBkcml2ZXIncwo+ICsgKiAtPmdl bV9wcmltZV9pbXBvcnRfc2dfdGFibGUoKSBjYWxsYmFjay4KPiArICoKPiArICogUmV0dXJuczoK PiArICogQSBwb2ludGVyIHRvIGEgbmV3bHkgY3JlYXRlZCBHRU0gb2JqZWN0IG9yIGFuIEVSUl9Q VFItZW5jb2RlZCBuZWdhdGl2ZQo+ICsgKiBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gKyAqLwo+ ICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKgo+ICBkcm1fZ2VtX2NtYV9wcmltZV9pbXBvcnRfc2df dGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCSAgc3RydWN0IGRtYV9idWZfYXR0 YWNobWVudCAqYXR0YWNoLAo+IEBAIC0zMzksNiArNDQyLDE4IEBAIGRybV9nZW1fY21hX3ByaW1l X2ltcG9ydF9zZ190YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICB9Cj4gIEVYUE9SVF9T WU1CT0xfR1BMKGRybV9nZW1fY21hX3ByaW1lX2ltcG9ydF9zZ190YWJsZSk7Cj4gIAo+ICsvKioK PiArICogZHJtX2dlbV9jbWFfcHJpbWVfbW1hcCAtIG1lbW9yeS1tYXAgYW4gZXhwb3J0ZWQgQ01B IEdFTSBvYmplY3QKPiArICogQG9iajogR0VNIG9iamVjdAo+ICsgKiBAdm1hOiBWTUEgZm9yIHRo ZSBhcmVhIHRvIGJlIG1hcHBlZAo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIG1hcHMgYSBidWZm ZXIgaW1wb3J0ZWQgdmlhIERSTSBQUklNRSBpbnRvIGEgdXNlcnNwYWNlCj4gKyAqIHByb2Nlc3Mn cyBhZGRyZXNzIHNwYWNlLiBEcml2ZXJzIHRoYXQgdXNlIHRoZSBDTUEgaGVscGVycyBzaG91bGQg c2V0IHRoaXMKPiArICogYXMgdGhlaXIgRFJNIGRyaXZlcidzIC0+Z2VtX3ByaW1lX21tYXAoKSBj YWxsYmFjay4KPiArICoKPiArICogUmV0dXJuczoKPiArICogMCBvbiBzdWNjZXNzIG9yIGEgbmVn YXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICsgKi8KPiAgaW50IGRybV9nZW1fY21hX3By aW1lX21tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCj4gIAkJCSAgIHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hKQo+ICB7Cj4gQEAgLTM1Nyw2ICs0NzIsMjAgQEAgaW50IGRybV9nZW1f Y21hX3ByaW1lX21tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCj4gIH0KPiAgRVhQT1JU X1NZTUJPTF9HUEwoZHJtX2dlbV9jbWFfcHJpbWVfbW1hcCk7Cj4gIAo+ICsvKioKPiArICogZHJt X2dlbV9jbWFfcHJpbWVfdm1hcCAtIG1hcCBhIENNQSBHRU0gb2JqZWN0IGludG8gdGhlIGtlcm5l bCdzIHZpcnR1YWwKPiArICogICAgIGFkZHJlc3Mgc3BhY2UKPiArICogQG9iajogR0VNIG9iamVj dAo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIG1hcHMgYSBidWZmZXIgZXhwb3J0ZWQgdmlhIERS TSBQUklNRSBpbnRvIHRoZSBrZXJuZWwncwo+ICsgKiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UuIFNp bmNlIHRoZSBDTUEgYnVmZmVycyBhcmUgYWxyZWFkeSBtYXBwZWQgaW50byB0aGUKPiArICoga2Vy bmVsIHZpcnR1YWwgYWRkcmVzcyBzcGFjZSB0aGlzIHNpbXBseSByZXR1cm5zIHRoZSBjYWNoZWQg dmlydHVhbAo+ICsgKiBhZGRyZXNzLiBEcml2ZXJzIHVzaW5nIHRoZSBDTUEgaGVscGVycyBzaG91 bGQgc2V0IHRoaXMgYXMgdGhlaXIgRFJNCj4gKyAqIGRyaXZlcidzIC0+Z2VtX3ByaW1lX3ZtYXAo KSBjYWxsYmFjay4KPiArICoKPiArICogUmV0dXJuczoKPiArICogVGhlIGtlcm5lbCB2aXJ0dWFs IGFkZHJlc3Mgb2YgdGhlIENNQSBHRU0gb2JqZWN0J3MgYmFja2luZyBzdG9yZS4KPiArICovCj4g IHZvaWQgKmRybV9nZW1fY21hX3ByaW1lX3ZtYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmop Cj4gIHsKPiAgCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmogPSB0b19kcm1fZ2Vt X2NtYV9vYmoob2JqKTsKPiBAQCAtMzY1LDYgKzQ5NCwxNyBAQCB2b2lkICpkcm1fZ2VtX2NtYV9w cmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQo+ICB9Cj4gIEVYUE9SVF9TWU1C T0xfR1BMKGRybV9nZW1fY21hX3ByaW1lX3ZtYXApOwo+ICAKPiArLyoqCj4gKyAqIGRybV9nZW1f Y21hX3ByaW1lX3Z1bm1hcCAtIHVubWFwIGEgQ01BIEdFTSBvYmplY3QgZnJvbSB0aGUga2VybmVs J3MgdmlydHVhbAo+ICsgKiAgICAgYWRkcmVzcyBzcGFjZQo+ICsgKiBAb2JqOiBHRU0gb2JqZWN0 Cj4gKyAqIEB2YWRkcjoga2VybmVsIHZpcnR1YWwgYWRkcmVzcyB3aGVyZSB0aGUgQ01BIEdFTSBv YmplY3Qgd2FzIG1hcHBlZAo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgYSBidWZm ZXIgZXhwb3J0ZWQgdmlhIERSTSBQUklNRSBmcm9tIHRoZSBrZXJuZWwncwo+ICsgKiB2aXJ0dWFs IGFkZHJlc3Mgc3BhY2UuIFRoaXMgaXMgYSBuby1vcCBiZWNhdXNlIENNQSBidWZmZXJzIGNhbm5v dCBiZQo+ICsgKiB1bm1hcHBlZCBmcm9tIGtlcm5lbCBzcGFjZS4gRHJpdmVycyB1c2luZyB0aGUg Q01BIGhlbHBlcnMgc2hvdWxkIHNldCB0aGlzCj4gKyAqIGFzIHRoZWlyIERSTSBkcml2ZXIncyAt PmdlbV9wcmltZV92dW5tYXAoKSBjYWxsYmFjay4KPiArICovCj4gIHZvaWQgZHJtX2dlbV9jbWFf cHJpbWVfdnVubWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCB2b2lkICp2YWRkcikKPiAg ewo+ICAJLyogTm90aGluZyB0byBkbyAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f Z2VtX2NtYV9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5oCj4gaW5k ZXggMmZmMzVmM2RlOWM1Li44NzNkNGViN2YxMjUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0v ZHJtX2dlbV9jbWFfaGVscGVyLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZ2VtX2NtYV9oZWxw ZXIuaAo+IEBAIC00LDYgKzQsMTMgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gICNpbmNs dWRlIDxkcm0vZHJtX2dlbS5oPgo+ICAKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1fZ2VtX2NtYV9v YmplY3QgLSBHRU0gb2JqZWN0IGJhY2tlZCBieSBDTUEgbWVtb3J5IGFsbG9jYXRpb25zCj4gKyAq IEBiYXNlOiBiYXNlIEdFTSBvYmplY3QKPiArICogQHBhZGRyOiBwaHlzaWNhbCBhZGRyZXNzIG9m IHRoZSBiYWNraW5nIG1lbW9yeQo+ICsgKiBAc2d0OiBzY2F0dGVyL2dhdGhlciB0YWJsZSBmb3Ig aW1wb3J0ZWQgUFJJTUUgYnVmZmVycwo+ICsgKiBAdmFkZHI6IGtlcm5lbCB2aXJ0dWFsIGFkZHJl c3Mgb2YgdGhlIGJhY2tpbmcgbWVtb3J5Cj4gKyAqLwo+ICBzdHJ1Y3QgZHJtX2dlbV9jbWFfb2Jq ZWN0IHsKPiAgCXN0cnVjdCBkcm1fZ2VtX29iamVjdCBiYXNlOwo+ICAJZG1hX2FkZHJfdCBwYWRk cjsKPiBAQCAtMTksMjMgKzI2LDI1IEBAIHRvX2RybV9nZW1fY21hX29iaihzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKmdlbV9vYmopCj4gIAlyZXR1cm4gY29udGFpbmVyX29mKGdlbV9vYmosIHN0cnVj dCBkcm1fZ2VtX2NtYV9vYmplY3QsIGJhc2UpOwo+ICB9Cj4gIAo+IC0vKiBmcmVlIGdlbSBvYmpl Y3QuICovCj4gKy8qIGZyZWUgR0VNIG9iamVjdCAqLwo+ICB2b2lkIGRybV9nZW1fY21hX2ZyZWVf b2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iaik7Cj4gIAo+IC0vKiBjcmVhdGUg bWVtb3J5IHJlZ2lvbiBmb3IgZHJtIGZyYW1lYnVmZmVyLiAqLwo+ICsvKiBjcmVhdGUgbWVtb3J5 IHJlZ2lvbiBmb3IgRFJNIGZyYW1lYnVmZmVyICovCj4gIGludCBkcm1fZ2VtX2NtYV9kdW1iX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAtCQlzdHJ1Y3QgZHJtX2RldmljZSAq ZHJtLCBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFyZ3MpOwo+ICsJCQkgICAgc3RydWN0 IGRybV9kZXZpY2UgKmRybSwKPiArCQkJICAgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAq YXJncyk7Cj4gIAo+IC0vKiBtYXAgbWVtb3J5IHJlZ2lvbiBmb3IgZHJtIGZyYW1lYnVmZmVyIHRv IHVzZXIgc3BhY2UuICovCj4gKy8qIG1hcCBtZW1vcnkgcmVnaW9uIGZvciBEUk0gZnJhbWVidWZm ZXIgdG8gdXNlciBzcGFjZSAqLwo+ICBpbnQgZHJtX2dlbV9jbWFfZHVtYl9tYXBfb2Zmc2V0KHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+IC0JCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHVp bnQzMl90IGhhbmRsZSwgdWludDY0X3QgKm9mZnNldCk7Cj4gKwkJCQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZHJtLCB1MzIgaGFuZGxlLAo+ICsJCQkJdTY0ICpvZmZzZXQpOwo+ICAKPiAtLyogc2V0IHZt X2ZsYWdzIGFuZCB3ZSBjYW4gY2hhbmdlIHRoZSB2bSBhdHRyaWJ1dGUgdG8gb3RoZXIgb25lIGF0 IGhlcmUuICovCj4gKy8qIHNldCB2bV9mbGFncyBhbmQgd2UgY2FuIGNoYW5nZSB0aGUgVk0gYXR0 cmlidXRlIHRvIG90aGVyIG9uZSBhdCBoZXJlICovCj4gIGludCBkcm1fZ2VtX2NtYV9tbWFwKHN0 cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7Cj4gIAo+IC0vKiBh bGxvY2F0ZSBwaHlzaWNhbCBtZW1vcnkuICovCj4gKy8qIGFsbG9jYXRlIHBoeXNpY2FsIG1lbW9y eSAqLwo+ICBzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpkcm1fZ2VtX2NtYV9jcmVhdGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRybSwKPiAtCQl1bnNpZ25lZCBpbnQgc2l6ZSk7Cj4gKwkJCQkJICAg ICAgc2l6ZV90IHNpemUpOwo+ICAKPiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25z X3N0cnVjdCBkcm1fZ2VtX2NtYV92bV9vcHM7Cj4gIAo+IC0tIAo+IDIuMS4zCj4gCgotLSAKRGFu aWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KKzQxICgwKSA3 OSAzNjUgNTcgNDggLSBodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=