From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Koenig, Christian" Subject: Re: [PATCH 1/2] drm: Add drm_gem_vram_{pin/unpin}_reserved() and convert mgag200 Date: Mon, 20 May 2019 19:24:46 +0000 Message-ID: <2192d545-47ef-ccd8-d0b9-44f42b55e8d2@amd.com> References: <20190516162746.11636-1-tzimmermann@suse.de> <20190516162746.11636-2-tzimmermann@suse.de> <20190520161900.GB21222@phenom.ffwll.local> <20190520162615.GD21222@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM04-CO1-obe.outbound.protection.outlook.com (mail-eopbgr690049.outbound.protection.outlook.com [40.107.69.49]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3FBDD8924C for ; Mon, 20 May 2019 19:24:52 +0000 (UTC) In-Reply-To: <20190520162615.GD21222@phenom.ffwll.local> Content-Language: en-US Content-ID: <9F5A729C26182843AFF671995E941236@namprd12.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , Thomas Zimmermann Cc: "airlied@linux.ie" , "puck.chen@hisilicon.com" , "dri-devel@lists.freedesktop.org" , "virtualization@lists.linux-foundation.org" , "z.liuxinliang@hisilicon.com" , "hdegoede@redhat.com" , "kong.kongxinwei@hisilicon.com" , "Huang, Ray" , "kraxel@redhat.com" , "zourongrong@gmail.com" , "sam@ravnborg.org" List-Id: dri-devel@lists.freedesktop.org QW0gMjAuMDUuMTkgdW0gMTg6MjYgc2NocmllYiBEYW5pZWwgVmV0dGVyOg0KPiBbQ0FVVElPTjog RXh0ZXJuYWwgRW1haWxdDQo+DQo+IE9uIE1vbiwgTWF5IDIwLCAyMDE5IGF0IDA2OjE5OjAwUE0g KzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6DQo+PiBPbiBUaHUsIE1heSAxNiwgMjAxOSBhdCAw NjoyNzo0NVBNICswMjAwLCBUaG9tYXMgWmltbWVybWFubiB3cm90ZToNCj4+PiBUaGUgbmV3IGlu dGVyZmFjZXMgZHJtX2dlbV92cmFtX3twaW4vdW5waW59X3Jlc2VydmVkKCkgYXJlIHZhcmlhbnRz IG9mIHRoZQ0KPj4+IEdFTSBWUkFNIHBpbi91bnBpbiBmdW5jdGlvbnMgdGhhdCBkbyBub3QgcmVz ZXJ2ZSB0aGUgQk8gZHVyaW5nIHZhbGlkYXRpb24uDQo+Pj4gVGhlIG1nYWcyMDAgZHJpdmVyIHJl cXVpcmVzIHRoaXMgYmVoYXZpb3IgZm9yIGl0cyBjdXJzb3IgaGFuZGxpbmcuIFRoZQ0KPj4+IHBh dGNoIGFsc28gY29udmVydHMgdGhlIGRyaXZlciB0byB1c2UgdGhlIG5ldyBpbnRlcmZhY2VzLg0K Pj4+DQo+Pj4gU2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1 c2UuZGU+DQo+Pj4gLS0tDQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBl ci5jICAgIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKysrDQo+Pj4gICBkcml2ZXJzL2dwdS9k cm0vbWdhZzIwMC9tZ2FnMjAwX2N1cnNvci5jIHwgMTggKysrLS0tDQo+Pj4gICBpbmNsdWRlL2Ry bS9kcm1fZ2VtX3ZyYW1faGVscGVyLmggICAgICAgIHwgIDMgKw0KPj4+ICAgMyBmaWxlcyBjaGFu Z2VkLCA4OCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQ0KPj4+DQo+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2dlbV92cmFtX2hlbHBlci5jDQo+Pj4gaW5kZXggOGYxNDJiODEwZWI0Li5hMDAyYzAz ZWFmNGMgMTAwNjQ0DQo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxw ZXIuYw0KPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMNCj4+ PiBAQCAtMjU0LDYgKzI1NCw0NyBAQCBpbnQgZHJtX2dlbV92cmFtX3BpbihzdHJ1Y3QgZHJtX2dl bV92cmFtX29iamVjdCAqZ2JvLCB1bnNpZ25lZCBsb25nIHBsX2ZsYWcpDQo+Pj4gICB9DQo+Pj4g ICBFWFBPUlRfU1lNQk9MKGRybV9nZW1fdnJhbV9waW4pOw0KPj4+DQo+Pj4gKy8qKg0KPj4+ICsg KiBkcm1fZ2VtX3ZyYW1fcGluX3Jlc2VydmVkKCkgLSBQaW5zIGEgR0VNIFZSQU0gb2JqZWN0IGlu IGEgcmVnaW9uLg0KPj4+ICsgKiBAZ2JvOiAgIHRoZSBHRU0gVlJBTSBvYmplY3QNCj4+PiArICog QHBsX2ZsYWc6ICAgICAgIGEgYml0bWFzayBvZiBwb3NzaWJsZSBtZW1vcnkgcmVnaW9ucw0KPj4+ ICsgKg0KPj4+ICsgKiBQaW5uaW5nIGEgYnVmZmVyIG9iamVjdCBlbnN1cmVzIHRoYXQgaXQgaXMg bm90IGV2aWN0ZWQgZnJvbQ0KPj4+ICsgKiBhIG1lbW9yeSByZWdpb24uIEEgcGlubmVkIGJ1ZmZl ciBvYmplY3QgaGFzIHRvIGJlIHVucGlubmVkIGJlZm9yZQ0KPj4+ICsgKiBpdCBjYW4gYmUgcGlu bmVkIHRvIGFub3RoZXIgcmVnaW9uLg0KPj4+ICsgKg0KPj4+ICsgKiBUaGlzIGZ1bmN0aW9uIHBp bnMgYSBHRU0gVlJBTSBvYmplY3QgdGhhdCBoYXMgYWxyZWFkeSBiZWVuDQo+Pj4gKyAqIHJlc2Vy dmVkLiBVc2UgZHJtX2dlbV92cmFtX3BpbigpIGlmIHBvc3NpYmxlLg0KPj4+ICsgKg0KPj4+ICsg KiBSZXR1cm5zOg0KPj4+ICsgKiAwIG9uIHN1Y2Nlc3MsIG9yDQo+Pj4gKyAqIGEgbmVnYXRpdmUg ZXJyb3IgY29kZSBvdGhlcndpc2UuDQo+Pj4gKyAqLw0KPj4+ICtpbnQgZHJtX2dlbV92cmFtX3Bp bl9yZXNlcnZlZChzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvLA0KPj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBwbF9mbGFnKQ0KPj4+ICt7DQo+Pj4gKyAg IGludCBpLCByZXQ7DQo+Pj4gKyAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGZh bHNlLCBmYWxzZSB9Ow0KPj4gSSB0aGluayB3b3VsZCBiZSBnb29kIHRvIGhhdmUgYSBsb2NrZGVw X2Fzc2VydF9oZWxkIGhlcmUgZm9yIHRoZSB3d19tdXRleC4NCj4+DQo+PiBBbHNvIGdlbmVyYWwg dGhpbmc6IF9yZXNlcnZlZCBpcyBraW5kYSB0dG0gbGluZ28sIGZvciBkbWEtYnVmIHJlc2VydmF0 aW9ucw0KPj4gd2UgY2FsbCB0aGUgc3RydWN0dXJlIHRyYWNraW5nIHRoZSBmZW5jZXMrbG9jayB0 aGUgInJlc2VydmF0aW9uIiwgYnV0IHRoZQ0KPj4gbmFtaW5nIHNjaGVtZSB1c2VkIGlzIF9sb2Nr L191bmxvY2suDQo+Pg0KPj4gSSB0aGluayB3b3VsZCBiZSBnb29kIHRvIGJlIGNvbnNpc3RlbnQg d2l0aCB0aGF0LCBhbmQgdXNlIF9sb2NrZWQgaGVyZS4NCj4+IEVzcGVjaWFsbHkgZm9yIGEgdmVy eSBzaW1wbGlmaWVkIHZyYW0gaGVscGVyIGxpa2UgdGhpcyBvbmUgSSBleHBlY3QgdGhhdCdzDQo+ PiBnb2luZyB0byBsZWFkIHRvIGxlc3Mgd3RmIG1vbWVudHMgYnkgZHJpdmVyIHdyaXRlcnMgOi0p DQo+Pg0KPj4gTWF5YmUgd2Ugc2hvdWxkIGFsc28gZG8gYSBsYXJnZS1zY2FsZSBzL3Jlc2VydmUv bG9jay8gd2l0aGluIHR0bSwgdG8gYWxpZ24NCj4+IG1vcmUgd2l0aCB3aGF0IHdlIG5vdyBoYXZl IGluIGRtYS1idWYuDQo+IE1vcmUgYXNpZGU6DQo+DQo+IENvdWxkIGJlIGEgZ29vZCBtb3ZlIHRv IGRlbWlkbGF5ZXIgdGhpcyBhbiBlc3NlbnRpYWxseSByZW1vdmUNCj4gdHRtX2JvX3Jlc2VydmUg YXMgYSB3cmFwcGVyIGFyb3VuZCB0aGUgbGludXgvcmVzZXJ2YXRpb24uaCBmdW5jdGlvbnMuIE5v dA0KPiBzdXJlIHdoZXRoZXIgdGhhdCBhbGlnbnMgd2l0aCBDaHJpc3RpYW4ncyBwbGFucy4gVE9E Ty5yc3QgcGF0Y2ggbWlnaHQgYmUgYQ0KPiBnb29kIHN0ZXAgdG8gZ2V0IHRoYXQgZGlzY3Vzc2lv biBzdGFydGVkLg0KDQpXZWxsIHdoYXQgdHRtX2JvX3Jlc2VydmUoKS9fdW5yZXNlcnZlKCkgZG9l cyBpcyBhKSBsb2NrL3VubG9jayB0aGUgDQpyZXNlcnZhdGlvbiBvYmplY3QgYW5kIGIpIHJlbW92 ZSB0aGUgQk8gZnJvbSB0aGUgTFJVLg0KDQpTaW5jZSBJJ20gZGVzcGVyYXRlbHkgdHJ5aW5nIHRv IGdldCByaWQgb2YgdGhlIExSVSByZW1vdmFsIHJpZ2h0IG5vdyB3ZSANCnNvb25lciBvciBsYXRl ciBzaG91bGQgYmUgYWJsZSB0byByZW1vdmUgdHRtb19ib19yZXNlcnZlKCkvX3VucmVzZXJ2ZSgp IA0KYXMgd2VsbCAob3IgYXQgbGVhc3QgcmVwbGFjZSB0aGVtIHdpdGggdGlueSB0dG1fYm9fbG9j aygpIHdyYXBwZXJzLg0KDQpDaHJpc3RpYW4uDQoNCj4gLURhbmllbA0KPg0KPj4gQ2hlZXJzLCBE YW5pZWwNCj4+DQo+Pj4gKw0KPj4+ICsgICBpZiAoZ2JvLT5waW5fY291bnQpIHsNCj4+PiArICAg ICAgICAgICArK2diby0+cGluX2NvdW50Ow0KPj4+ICsgICAgICAgICAgIHJldHVybiAwOw0KPj4+ ICsgICB9DQo+Pj4gKw0KPj4+ICsgICBkcm1fZ2VtX3ZyYW1fcGxhY2VtZW50KGdibywgcGxfZmxh Zyk7DQo+Pj4gKyAgIGZvciAoaSA9IDA7IGkgPCBnYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50 OyArK2kpDQo+Pj4gKyAgICAgICAgICAgZ2JvLT5wbGFjZW1lbnRzW2ldLmZsYWdzIHw9IFRUTV9Q TF9GTEFHX05PX0VWSUNUOw0KPj4+ICsNCj4+PiArICAgcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKCZn Ym8tPmJvLCAmZ2JvLT5wbGFjZW1lbnQsICZjdHgpOw0KPj4+ICsgICBpZiAocmV0IDwgMCkNCj4+ PiArICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4+ICsNCj4+PiArICAgZ2JvLT5waW5fY291bnQg PSAxOw0KPj4+ICsNCj4+PiArICAgcmV0dXJuIDA7DQo+Pj4gK30NCj4+PiArRVhQT1JUX1NZTUJP TChkcm1fZ2VtX3ZyYW1fcGluX3Jlc2VydmVkKTsNCj4+PiArDQo+Pj4gICAvKioNCj4+PiAgICAq IGRybV9nZW1fdnJhbV91bnBpbigpIC0gVW5waW5zIGEgR0VNIFZSQU0gb2JqZWN0DQo+Pj4gICAg KiBAZ2JvOiAgIHRoZSBHRU0gVlJBTSBvYmplY3QNCj4+PiBAQCAtMjg1LDYgKzMyNiw0MCBAQCBp bnQgZHJtX2dlbV92cmFtX3VucGluKHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8pDQo+ Pj4gICB9DQo+Pj4gICBFWFBPUlRfU1lNQk9MKGRybV9nZW1fdnJhbV91bnBpbik7DQo+Pj4NCj4+ PiArLyoqDQo+Pj4gKyAqIGRybV9nZW1fdnJhbV91bnBpbl9yZXNlcnZlZCgpIC0gVW5waW5zIGEg R0VNIFZSQU0gb2JqZWN0DQo+Pj4gKyAqIEBnYm86ICAgdGhlIEdFTSBWUkFNIG9iamVjdA0KPj4+ ICsgKg0KPj4+ICsgKiBUaGlzIGZ1bmN0aW9uIHVucGlucyBhIEdFTSBWUkFNIG9iamVjdCB0aGF0 IGhhcyBhbHJlYWR5IGJlZW4NCj4+PiArICogcmVzZXJ2ZWQuIFVzZSBkcm1fZ2VtX3ZyYW1fdW5w aW4oKSBpZiBwb3NzaWJsZS4NCj4+PiArICoNCj4+PiArICogUmV0dXJuczoNCj4+PiArICogMCBv biBzdWNjZXNzLCBvcg0KPj4+ICsgKiBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb3RoZXJ3aXNlLg0K Pj4+ICsgKi8NCj4+PiAraW50IGRybV9nZW1fdnJhbV91bnBpbl9yZXNlcnZlZChzdHJ1Y3QgZHJt X2dlbV92cmFtX29iamVjdCAqZ2JvKQ0KPj4+ICt7DQo+Pj4gKyAgIGludCBpLCByZXQ7DQo+Pj4g KyAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9Ow0KPj4+ ICsNCj4+PiArICAgaWYgKFdBUk5fT05fT05DRSghZ2JvLT5waW5fY291bnQpKQ0KPj4+ICsgICAg ICAgICAgIHJldHVybiAwOw0KPj4+ICsNCj4+PiArICAgLS1nYm8tPnBpbl9jb3VudDsNCj4+PiAr ICAgaWYgKGdiby0+cGluX2NvdW50KQ0KPj4+ICsgICAgICAgICAgIHJldHVybiAwOw0KPj4+ICsN Cj4+PiArICAgZm9yIChpID0gMDsgaSA8IGdiby0+cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgOyAr K2kpDQo+Pj4gKyAgICAgICAgICAgZ2JvLT5wbGFjZW1lbnRzW2ldLmZsYWdzICY9IH5UVE1fUExf RkxBR19OT19FVklDVDsNCj4+PiArDQo+Pj4gKyAgIHJldCA9IHR0bV9ib192YWxpZGF0ZSgmZ2Jv LT5ibywgJmdiby0+cGxhY2VtZW50LCAmY3R4KTsNCj4+PiArICAgaWYgKHJldCA8IDApDQo+Pj4g KyAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+PiArDQo+Pj4gKyAgIHJldHVybiAwOw0KPj4+ICt9 DQo+Pj4gK0VYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX3VucGluX3Jlc2VydmVkKTsNCj4+PiAr DQo+Pj4gICAvKioNCj4+PiAgICAqIGRybV9nZW1fdnJhbV9wdXNoX3RvX3N5c3RlbSgpIC0gXA0K Pj4+ICAgICAgVW5waW5zIGEgR0VNIFZSQU0gb2JqZWN0IGFuZCBtb3ZlcyBpdCB0byBzeXN0ZW0g bWVtb3J5DQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBf Y3Vyc29yLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2N1cnNvci5jDQo+Pj4g aW5kZXggNmMxYTlkNzI0ZDg1Li4xYzRmYzg1MzE1YTAgMTAwNjQ0DQo+Pj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9jdXJzb3IuYw0KPj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tZ2FnMjAwL21nYWcyMDBfY3Vyc29yLmMNCj4+PiBAQCAtMjMsOSArMjMsOSBAQCBzdGF0 aWMgdm9pZCBtZ2FfaGlkZV9jdXJzb3Ioc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYpDQo+Pj4gICAg ICBXUkVHOChNR0FfQ1VSUE9TWEwsIDApOw0KPj4+ICAgICAgV1JFRzgoTUdBX0NVUlBPU1hILCAw KTsNCj4+PiAgICAgIGlmIChtZGV2LT5jdXJzb3IucGl4ZWxzXzEtPnBpbl9jb3VudCkNCj4+PiAt ICAgICAgICAgICBkcm1fZ2VtX3ZyYW1fdW5waW4obWRldi0+Y3Vyc29yLnBpeGVsc18xKTsNCj4+ PiArICAgICAgICAgICBkcm1fZ2VtX3ZyYW1fdW5waW5fcmVzZXJ2ZWQobWRldi0+Y3Vyc29yLnBp eGVsc18xKTsNCj4+PiAgICAgIGlmIChtZGV2LT5jdXJzb3IucGl4ZWxzXzItPnBpbl9jb3VudCkN Cj4+PiAtICAgICAgICAgICBkcm1fZ2VtX3ZyYW1fdW5waW4obWRldi0+Y3Vyc29yLnBpeGVsc18y KTsNCj4+PiArICAgICAgICAgICBkcm1fZ2VtX3ZyYW1fdW5waW5fcmVzZXJ2ZWQobWRldi0+Y3Vy c29yLnBpeGVsc18yKTsNCj4+PiAgIH0NCj4+Pg0KPj4+ICAgaW50IG1nYV9jcnRjX2N1cnNvcl9z ZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLA0KPj4+IEBAIC05NiwyNiArOTYsMjggQEAgaW50IG1n YV9jcnRjX2N1cnNvcl9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLA0KPj4+DQo+Pj4gICAgICAv KiBNb3ZlIGN1cnNvciBidWZmZXJzIGludG8gVlJBTSBpZiB0aGV5IGFyZW4ndCBhbHJlYWR5ICov DQo+Pj4gICAgICBpZiAoIXBpeGVsc18xLT5waW5fY291bnQpIHsNCj4+PiAtICAgICAgICAgICBy ZXQgPSBkcm1fZ2VtX3ZyYW1fcGluKHBpeGVsc18xLCBEUk1fR0VNX1ZSQU1fUExfRkxBR19WUkFN KTsNCj4+PiArICAgICAgICAgICByZXQgPSBkcm1fZ2VtX3ZyYW1fcGluX3Jlc2VydmVkKHBpeGVs c18xLA0KPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJN X0dFTV9WUkFNX1BMX0ZMQUdfVlJBTSk7DQo+Pj4gICAgICAgICAgICAgIGlmIChyZXQpDQo+Pj4g ICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQxOw0KPj4+ICAgICAgICAgICAgICBncHVfYWRk ciA9IGRybV9nZW1fdnJhbV9vZmZzZXQocGl4ZWxzXzEpOw0KPj4+ICAgICAgICAgICAgICBpZiAo Z3B1X2FkZHIgPCAwKSB7DQo+Pj4gLSAgICAgICAgICAgICAgICAgICBkcm1fZ2VtX3ZyYW1fdW5w aW4ocGl4ZWxzXzEpOw0KPj4+ICsgICAgICAgICAgICAgICAgICAgZHJtX2dlbV92cmFtX3VucGlu X3Jlc2VydmVkKHBpeGVsc18xKTsNCj4+PiAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDE7 DQo+Pj4gICAgICAgICAgICAgIH0NCj4+PiAgICAgICAgICAgICAgbWRldi0+Y3Vyc29yLnBpeGVs c18xX2dwdV9hZGRyID0gZ3B1X2FkZHI7DQo+Pj4gICAgICB9DQo+Pj4gICAgICBpZiAoIXBpeGVs c18yLT5waW5fY291bnQpIHsNCj4+PiAtICAgICAgICAgICByZXQgPSBkcm1fZ2VtX3ZyYW1fcGlu KHBpeGVsc18yLCBEUk1fR0VNX1ZSQU1fUExfRkxBR19WUkFNKTsNCj4+PiArICAgICAgICAgICBy ZXQgPSBkcm1fZ2VtX3ZyYW1fcGluX3Jlc2VydmVkKHBpeGVsc18yLA0KPj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJNX0dFTV9WUkFNX1BMX0ZMQUdfVlJB TSk7DQo+Pj4gICAgICAgICAgICAgIGlmIChyZXQpIHsNCj4+PiAtICAgICAgICAgICAgICAgICAg IGRybV9nZW1fdnJhbV91bnBpbihwaXhlbHNfMSk7DQo+Pj4gKyAgICAgICAgICAgICAgICAgICBk cm1fZ2VtX3ZyYW1fdW5waW5fcmVzZXJ2ZWQocGl4ZWxzXzEpOw0KPj4+ICAgICAgICAgICAgICAg ICAgICAgIGdvdG8gb3V0MTsNCj4+PiAgICAgICAgICAgICAgfQ0KPj4+ICAgICAgICAgICAgICBn cHVfYWRkciA9IGRybV9nZW1fdnJhbV9vZmZzZXQocGl4ZWxzXzIpOw0KPj4+ICAgICAgICAgICAg ICBpZiAoZ3B1X2FkZHIgPCAwKSB7DQo+Pj4gLSAgICAgICAgICAgICAgICAgICBkcm1fZ2VtX3Zy YW1fdW5waW4ocGl4ZWxzXzEpOw0KPj4+IC0gICAgICAgICAgICAgICAgICAgZHJtX2dlbV92cmFt X3VucGluKHBpeGVsc18yKTsNCj4+PiArICAgICAgICAgICAgICAgICAgIGRybV9nZW1fdnJhbV91 bnBpbl9yZXNlcnZlZChwaXhlbHNfMSk7DQo+Pj4gKyAgICAgICAgICAgICAgICAgICBkcm1fZ2Vt X3ZyYW1fdW5waW5fcmVzZXJ2ZWQocGl4ZWxzXzIpOw0KPj4+ICAgICAgICAgICAgICAgICAgICAg IGdvdG8gb3V0MTsNCj4+PiAgICAgICAgICAgICAgfQ0KPj4+ICAgICAgICAgICAgICBtZGV2LT5j dXJzb3IucGl4ZWxzXzJfZ3B1X2FkZHIgPSBncHVfYWRkcjsNCj4+PiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2dlbV92cmFt X2hlbHBlci5oDQo+Pj4gaW5kZXggYjA1NmYxODliYTYyLi5mZjFhODE3NjE1NDMgMTAwNjQ0DQo+ Pj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oDQo+Pj4gKysrIGIvaW5j bHVkZS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oDQo+Pj4gQEAgLTgyLDcgKzgyLDEwIEBAIHZv aWQgZHJtX2dlbV92cmFtX3VucmVzZXJ2ZShzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2Jv KTsNCj4+PiAgIHU2NCBkcm1fZ2VtX3ZyYW1fbW1hcF9vZmZzZXQoc3RydWN0IGRybV9nZW1fdnJh bV9vYmplY3QgKmdibyk7DQo+Pj4gICBzNjQgZHJtX2dlbV92cmFtX29mZnNldChzdHJ1Y3QgZHJt X2dlbV92cmFtX29iamVjdCAqZ2JvKTsNCj4+PiAgIGludCBkcm1fZ2VtX3ZyYW1fcGluKHN0cnVj dCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8sIHVuc2lnbmVkIGxvbmcgcGxfZmxhZyk7DQo+Pj4g K2ludCBkcm1fZ2VtX3ZyYW1fcGluX3Jlc2VydmVkKHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0 ICpnYm8sDQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBsX2Zs YWcpOw0KPj4+ICAgaW50IGRybV9nZW1fdnJhbV91bnBpbihzdHJ1Y3QgZHJtX2dlbV92cmFtX29i amVjdCAqZ2JvKTsNCj4+PiAraW50IGRybV9nZW1fdnJhbV91bnBpbl9yZXNlcnZlZChzdHJ1Y3Qg ZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvKTsNCj4+PiAgIGludCBkcm1fZ2VtX3ZyYW1fcHVzaF90 b19zeXN0ZW0oc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibyk7DQo+Pj4gICB2b2lkICpk cm1fZ2VtX3ZyYW1fa21hcF9hdChzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvLCBib29s IG1hcCwNCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICBib29sICppc19pb21lbSwgc3RydWN0 IHR0bV9ib19rbWFwX29iaiAqa21hcCk7DQo+Pj4gLS0NCj4+PiAyLjIxLjANCj4+Pg0KPj4gLS0N Cj4+IERhbmllbCBWZXR0ZXINCj4+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bg0KPj4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gNCj4gLS0NCj4gRGFuaWVsIFZldHRlcg0KPiBTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24NCj4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gN Cg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs