From mboxrd@z Thu Jan 1 00:00:00 1970 From: Parav Pandit Subject: RE: [PATCH V3 4/7] mdev: introduce device specific ops Date: Wed, 16 Oct 2019 05:50:08 +0000 Message-ID: References: <20191011081557.28302-1-jasowang@redhat.com> <20191011081557.28302-5-jasowang@redhat.com> <20191015124137.4f948bd2.cohuck@redhat.com> <20191015112646.3776dc29@x1.home> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191015112646.3776dc29@x1.home> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alex Williamson , Jason Wang Cc: "christophe.de.dinechin@gmail.com" , "kvm@vger.kernel.org" , "mst@redhat.com" , "airlied@linux.ie" , "heiko.carstens@de.ibm.com" , "kevin.tian@intel.com" , "dri-devel@lists.freedesktop.org" , "virtualization@lists.linux-foundation.org" , "kwankhede@nvidia.com" , "rob.miller@broadcom.com" , "linux-s390@vger.kernel.org" , "sebott@linux.ibm.com" , "lulu@redhat.com" , "eperezma@redhat.com" , "pasic@linux.ibm.com" , "borntraeger@de.ibm.com" , "haotian.wang@sifive.com" List-Id: dri-devel@lists.freedesktop.org SGkgQWxleCwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBbGV4IFdp bGxpYW1zb24gPGFsZXgud2lsbGlhbXNvbkByZWRoYXQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBP Y3RvYmVyIDE1LCAyMDE5IDEyOjI3IFBNDQo+IFRvOiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRo YXQuY29tPg0KPiBDYzogQ29ybmVsaWEgSHVjayA8Y29odWNrQHJlZGhhdC5jb20+OyBrdm1Admdl ci5rZXJuZWwub3JnOyBsaW51eC0NCj4gczM5MEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWtlcm5l bEB2Z2VyLmtlcm5lbC5vcmc7IGRyaS0NCj4gZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBp bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBpbnRlbC1ndnQtDQo+IGRldkBsaXN0cy5m cmVlZGVza3RvcC5vcmc7IGt3YW5raGVkZUBudmlkaWEuY29tOyBtc3RAcmVkaGF0LmNvbTsNCj4g dGl3ZWkuYmllQGludGVsLmNvbTsgdmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlv bi5vcmc7DQo+IG5ldGRldkB2Z2VyLmtlcm5lbC5vcmc7IG1heGltZS5jb3F1ZWxpbkByZWRoYXQu Y29tOw0KPiBjdW5taW5nLmxpYW5nQGludGVsLmNvbTsgemhpaG9uZy53YW5nQGludGVsLmNvbTsN Cj4gcm9iLm1pbGxlckBicm9hZGNvbS5jb207IHhpYW8udy53YW5nQGludGVsLmNvbTsNCj4gaGFv dGlhbi53YW5nQHNpZml2ZS5jb207IHpoZW55dXdAbGludXguaW50ZWwuY29tOyB6aGkuYS53YW5n QGludGVsLmNvbTsNCj4gamFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tOyBqb29uYXMubGFodGlu ZW5AbGludXguaW50ZWwuY29tOw0KPiByb2RyaWdvLnZpdmlAaW50ZWwuY29tOyBhaXJsaWVkQGxp bnV4LmllOyBkYW5pZWxAZmZ3bGwuY2g7DQo+IGZhcm1hbkBsaW51eC5pYm0uY29tOyBwYXNpY0Bs aW51eC5pYm0uY29tOyBzZWJvdHRAbGludXguaWJtLmNvbTsNCj4gb2JlcnBhckBsaW51eC5pYm0u Y29tOyBoZWlrby5jYXJzdGVuc0BkZS5pYm0uY29tOyBnb3JAbGludXguaWJtLmNvbTsNCj4gYm9y bnRyYWVnZXJAZGUuaWJtLmNvbTsgYWtyb3dpYWtAbGludXguaWJtLmNvbTsgZnJldWRlQGxpbnV4 LmlibS5jb207DQo+IGxpbmdzaGFuLnpodUBpbnRlbC5jb207IElkbyBTaGFtYXkgPGlkb3NAbWVs bGFub3guY29tPjsNCj4gZXBlcmV6bWFAcmVkaGF0LmNvbTsgbHVsdUByZWRoYXQuY29tOyBQYXJh diBQYW5kaXQNCj4gPHBhcmF2QG1lbGxhbm94LmNvbT47IGNocmlzdG9waGUuZGUuZGluZWNoaW5A Z21haWwuY29tOw0KPiBrZXZpbi50aWFuQGludGVsLmNvbQ0KPiBTdWJqZWN0OiBSZTogW1BBVENI IFYzIDQvN10gbWRldjogaW50cm9kdWNlIGRldmljZSBzcGVjaWZpYyBvcHMNCj4gDQo+IE9uIFR1 ZSwgMTUgT2N0IDIwMTkgMjA6MTc6MDEgKzA4MDANCj4gSmFzb24gV2FuZyA8amFzb3dhbmdAcmVk aGF0LmNvbT4gd3JvdGU6DQo+IA0KPiA+IE9uIDIwMTkvMTAvMTUg5LiL5Y2INjo0MSwgQ29ybmVs aWEgSHVjayB3cm90ZToNCj4gPiA+IE9uIEZyaSwgMTEgT2N0IDIwMTkgMTY6MTU6NTQgKzA4MDAN Cj4gPiA+IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+IHdyb3RlOg0KPiA+ID4NCj4g PiA+PiBDdXJyZW50bHksIGV4Y2VwdCBmb3IgdGhlIGNyZWF0ZSBhbmQgcmVtb3ZlLCB0aGUgcmVz dCBvZg0KPiA+ID4+IG1kZXZfcGFyZW50X29wcyBpcyBkZXNpZ25lZCBmb3IgdmZpby1tZGV2IGRy aXZlciBvbmx5IGFuZCBtYXkgbm90DQo+ID4gPj4gaGVscCBmb3Iga2VybmVsIG1kZXYgZHJpdmVy LiBXaXRoIHRoZSBoZWxwIG9mIGNsYXNzIGlkLCB0aGlzIHBhdGNoDQo+ID4gPj4gaW50cm9kdWNl cyBkZXZpY2Ugc3BlY2lmaWMgY2FsbGJhY2tzIGluc2lkZSBtZGV2X2RldmljZSBzdHJ1Y3R1cmUu DQo+ID4gPj4gVGhpcyBhbGxvd3MgZGlmZmVyZW50IHNldCBvZiBjYWxsYmFjayB0byBiZSB1c2Vk IGJ5IHZmaW8tbWRldiBhbmQNCj4gPiA+PiB2aXJ0aW8tbWRldi4NCj4gPiA+Pg0KPiA+ID4+IFNp Z25lZC1vZmYtYnk6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+DQo+ID4gPj4gLS0t DQo+ID4gPj4gICAuLi4vZHJpdmVyLWFwaS92ZmlvLW1lZGlhdGVkLWRldmljZS5yc3QgICAgICAg fCAyMiArKysrKy0tLQ0KPiA+ID4+ICAgTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDEgKw0KPiA+ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2 bWd0LmMgICAgICAgICAgICAgIHwgMTggKysrKy0tLQ0KPiA+ID4+ICAgZHJpdmVycy9zMzkwL2Np by92ZmlvX2Njd19vcHMuYyAgICAgICAgICAgICAgIHwgMTggKysrKy0tLQ0KPiA+ID4+ICAgZHJp dmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX29wcy5jICAgICAgICAgICAgIHwgMTQgKysrLS0NCj4g PiA+PiAgIGRyaXZlcnMvdmZpby9tZGV2L21kZXZfY29yZS5jICAgICAgICAgICAgICAgICB8ICA5 ICsrKy0NCj4gPiA+PiAgIGRyaXZlcnMvdmZpby9tZGV2L21kZXZfcHJpdmF0ZS5oICAgICAgICAg ICAgICB8ICAxICsNCj4gPiA+PiAgIGRyaXZlcnMvdmZpby9tZGV2L3ZmaW9fbWRldi5jICAgICAg ICAgICAgICAgICB8IDM3ICsrKysrKy0tLS0tLS0NCj4gPiA+PiAgIGluY2x1ZGUvbGludXgvbWRl di5oICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQyICsrKy0tLS0tLS0tLS0tLQ0KPiA+ID4+ ICAgaW5jbHVkZS9saW51eC92ZmlvX21kZXYuaCAgICAgICAgICAgICAgICAgICAgIHwgNTIgKysr KysrKysrKysrKysrKysrKw0KPiA+ID4+ICAgc2FtcGxlcy92ZmlvLW1kZXYvbWJvY2hzLmMgICAg ICAgICAgICAgICAgICAgIHwgMjAgKysrKy0tLQ0KPiA+ID4+ICAgc2FtcGxlcy92ZmlvLW1kZXYv bWRweS5jICAgICAgICAgICAgICAgICAgICAgIHwgMjEgKysrKystLS0NCj4gPiA+PiAgIHNhbXBs ZXMvdmZpby1tZGV2L210dHkuYyAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsrKystLS0NCj4g PiA+PiAgIDEzIGZpbGVzIGNoYW5nZWQsIDE3NyBpbnNlcnRpb25zKCspLCA5NiBkZWxldGlvbnMo LSkNCj4gPiA+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L3ZmaW9fbWRldi5o DQo+ID4gPj4NCj4gPiA+PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL3Zm aW8tbWVkaWF0ZWQtZGV2aWNlLnJzdA0KPiA+ID4+IGIvRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBp L3ZmaW8tbWVkaWF0ZWQtZGV2aWNlLnJzdA0KPiA+ID4+IGluZGV4IDIwMzVlNDhkYTdiMi4uNTUz NTc0ZWJiYTczIDEwMDY0NA0KPiA+ID4+IC0tLSBhL0RvY3VtZW50YXRpb24vZHJpdmVyLWFwaS92 ZmlvLW1lZGlhdGVkLWRldmljZS5yc3QNCj4gPiA+PiArKysgYi9Eb2N1bWVudGF0aW9uL2RyaXZl ci1hcGkvdmZpby1tZWRpYXRlZC1kZXZpY2UucnN0DQo+ID4gPj4gQEAgLTE1MiwxMSArMTUyLDIw IEBAIGNhbGxiYWNrcyBwZXIgbWRldiBwYXJlbnQgZGV2aWNlLCBwZXIgbWRldg0KPiB0eXBlLCBv ciBhbnkgb3RoZXIgY2F0ZWdvcml6YXRpb24uDQo+ID4gPj4gICBWZW5kb3IgZHJpdmVycyBhcmUg ZXhwZWN0ZWQgdG8gYmUgZnVsbHkgYXN5bmNocm9ub3VzIGluIHRoaXMgcmVzcGVjdCBvcg0KPiA+ ID4+ICAgcHJvdmlkZSB0aGVpciBvd24gaW50ZXJuYWwgcmVzb3VyY2UgcHJvdGVjdGlvbi4pDQo+ ID4gPj4NCj4gPiA+PiAtVGhlIGNhbGxiYWNrcyBpbiB0aGUgbWRldl9wYXJlbnRfb3BzIHN0cnVj dHVyZSBhcmUgYXMgZm9sbG93czoNCj4gPiA+PiArSW4gb3JkZXIgdG8gc3VwcG9ydCBtdWx0aXBs ZSB0eXBlcyBvZiBkZXZpY2UvZHJpdmVyLCBkZXZpY2UgbmVlZHMNCj4gPiA+PiArdG8gcHJvdmlk ZSBib3RoIGNsYXNzX2lkIGFuZCBkZXZpY2Vfb3BzIHRocm91Z2g6DQo+ID4gPiAiQXMgbXVsdGlw bGUgdHlwZXMgb2YgbWVkaWF0ZWQgZGV2aWNlcyBtYXkgYmUgc3VwcG9ydGVkLCB0aGUgZGV2aWNl DQo+ID4gPiBuZWVkcyB0byBzZXQgdXAgdGhlIGNsYXNzIGlkIGFuZCB0aGUgZGV2aWNlIHNwZWNp ZmljIGNhbGxiYWNrcyB2aWE6Ig0KPiA+ID4NCj4gPiA+ID8NCj4gPiA+DQo+ID4gPj4NCj4gPiA+ PiAtKiBvcGVuOiBvcGVuIGNhbGxiYWNrIG9mIG1lZGlhdGVkIGRldmljZQ0KPiA+ID4+IC0qIGNs b3NlOiBjbG9zZSBjYWxsYmFjayBvZiBtZWRpYXRlZCBkZXZpY2UNCj4gPiA+PiAtKiBpb2N0bDog aW9jdGwgY2FsbGJhY2sgb2YgbWVkaWF0ZWQgZGV2aWNlDQo+ID4gPj4gKyAgICB2b2lkIG1kZXZf c2V0X2NsYXNzKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwgdTE2IGlkLCBjb25zdA0KPiA+ID4+ ICsgdm9pZCAqb3BzKTsNCj4gPiA+PiArDQo+ID4gPj4gK1RoZSBjbGFzc19pZCBpcyB1c2VkIHRv IGJlIHBhaXJlZCB3aXRoIGlkcyBpbiBpZF90YWJsZSBpbg0KPiA+ID4+ICttZGV2X2RyaXZlciBz dHJ1Y3R1cmUgZm9yIHByb2JpbmcgdGhlIGNvcnJlY3QgZHJpdmVyLg0KPiA+ID4gIlRoZSBjbGFz cyBpZCAgKHNwZWNpZmllZCBpbiBpZCkgaXMgdXNlZCB0byBtYXRjaCBhIGRldmljZSB3aXRoIGFu DQo+ID4gPiBtZGV2IGRyaXZlciB2aWEgaXRzIGlkIHRhYmxlLiINCj4gPiA+DQo+ID4gPiA/DQo+ ID4gPg0KPiA+ID4+IFRoZSBkZXZpY2Vfb3BzIGlzIGRldmljZQ0KPiA+ID4+ICtzcGVjaWZpYyBj YWxsYmFja3Mgd2hpY2ggY2FuIGJlIGdldCB0aHJvdWdoIG1kZXZfZ2V0X2Rldl9vcHMoKQ0KPiA+ ID4+ICtmdW5jdGlvbiBieSBtZGV2IGJ1cyBkcml2ZXIuDQo+ID4gPiAiVGhlIGRldmljZSBzcGVj aWZpYyBjYWxsYmFja3MgKHNwZWNpZmllZCBpbiAqb3BzKSBhcmUgb2J0YWluYWJsZQ0KPiA+ID4g dmlhDQo+ID4gPiBtZGV2X2dldF9kZXZfb3BzKCkgKGZvciB1c2UgYnkgdGhlIG1kZXYgYnVzIGRy aXZlci4pIg0KPiA+ID4NCj4gPiA+ID8NCj4gPiA+DQo+ID4gPj4gRm9yIHZmaW8tbWRldiBkZXZp Y2UsIGl0cyBkZXZpY2Ugc3BlY2lmaWMNCj4gPiA+PiArb3BzIGFyZSBhcyBmb2xsb3dzOg0KPiA+ ID4gIkEgdmZpby1tZGV2IGRldmljZSAoY2xhc3MgaWQgTURFVl9JRF9WRklPKSB1c2VzIHRoZSBm b2xsb3dpbmcNCj4gPiA+IGRldmljZS1zcGVjaWZpYyBvcHM6Ig0KPiA+ID4NCj4gPiA+ID8NCj4g Pg0KPiA+DQo+ID4gQWxsIHlvdSBwcm9wb3NlIGlzIGJldHRlciB0aGFuIHdoYXQgSSB3cm90ZSwg d2lsbCBjaGFuZ2UgdGhlIGRvY3MuDQo+ID4NCj4gPg0KPiA+ID4NCj4gPiA+PiArDQo+ID4gPj4g Kyogb3Blbjogb3BlbiBjYWxsYmFjayBvZiB2ZmlvIG1lZGlhdGVkIGRldmljZQ0KPiA+ID4+ICsq IGNsb3NlOiBjbG9zZSBjYWxsYmFjayBvZiB2ZmlvIG1lZGlhdGVkIGRldmljZQ0KPiA+ID4+ICsq IGlvY3RsOiBpb2N0bCBjYWxsYmFjayBvZiB2ZmlvIG1lZGlhdGVkIGRldmljZQ0KPiA+ID4+ICAg KiByZWFkIDogcmVhZCBlbXVsYXRpb24gY2FsbGJhY2sNCj4gPiA+PiAgICogd3JpdGU6IHdyaXRl IGVtdWxhdGlvbiBjYWxsYmFjaw0KPiA+ID4+ICAgKiBtbWFwOiBtbWFwIGVtdWxhdGlvbiBjYWxs YmFjaw0KPiA+ID4+IEBAIC0xNjcsOSArMTc2LDEwIEBAIHJlZ2lzdGVyIGl0c2VsZiB3aXRoIHRo ZSBtZGV2IGNvcmUgZHJpdmVyOjoNCj4gPiA+PiAgIAlleHRlcm4gaW50ICBtZGV2X3JlZ2lzdGVy X2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+ID4gPj4gICAJICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IG1kZXZfcGFyZW50X29wcw0KPiA+ID4+ICpvcHMp Ow0KPiA+ID4+DQo+ID4gPj4gLUl0IGlzIGFsc28gcmVxdWlyZWQgdG8gc3BlY2lmeSB0aGUgY2xh c3NfaWQgdGhyb3VnaDo6DQo+ID4gPj4gK0l0IGlzIGFsc28gcmVxdWlyZWQgdG8gc3BlY2lmeSB0 aGUgY2xhc3NfaWQgYW5kIGRldmljZSBzcGVjaWZpYyBvcHMNCj4gdGhyb3VnaDo6DQo+ID4gPj4N Cj4gPiA+PiAtCWV4dGVybiBpbnQgbWRldl9zZXRfY2xhc3Moc3RydWN0IGRldmljZSAqZGV2LCB1 MTYgaWQpOw0KPiA+ID4+ICsJZXh0ZXJuIGludCBtZGV2X3NldF9jbGFzcyhzdHJ1Y3QgZGV2aWNl ICpkZXYsIHUxNiBpZCwNCj4gPiA+PiArCSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg dm9pZCAqb3BzKTsNCj4gPiA+IEFwb2xvZ2llcyBpZiB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gZGlz Y3Vzc2VkLCBidXQgZG8gd2Ugd2FudCBhIDE6MQ0KPiA+ID4gcmVsYXRpb25zaGlwIGJldHdlZW4g aWQgYW5kIG9wcywgb3IgY2FuIGRpZmZlcmVudCBkZXZpY2VzIHdpdGggdGhlDQo+ID4gPiBzYW1l IGlkIHJlZ2lzdGVyIGRpZmZlcmVudCBvcHM/DQo+ID4NCj4gPg0KPiA+IEkgdGhpbmsgd2UgaGF2 ZSBhIE46MSBtYXBwaW5nIGJldHdlZW4gaWQgYW5kIG9wcywgZS5nIHdlIHdhbnQgYm90aA0KPiA+ IHZpcnRpby1tZGV2IGFuZCB2aG9zdC1tZGV2IHVzZSBhIHNpbmdsZSBzZXQgb2YgZGV2aWNlIG9w cy4NCj4gDQo+IFRoZSBjb250ZW50cyBvZiB0aGUgb3BzIHN0cnVjdHVyZSBpcyBlc3NlbnRpYWxs eSBkZWZpbmVkIGJ5IHRoZSBpZCwgd2hpY2ggaXMNCj4gd2h5IEkgd2FzIGxlYW5pbmcgdG93YXJk cyB0aGVtIGJlaW5nIGRlZmluZWQgdG9nZXRoZXIuICBUaGV5IGFyZSBlZmZlY3RpdmVseQ0KPiBp bnRlcmxvY2tlZCwgdGhlIGlkIGRlZmluZXMgd2hpY2ggbWRldiAiZW5kcG9pbnQiDQo+IGRyaXZl ciBpcyBsb2FkZWQgYW5kIHRoYXQgZHJpdmVyIHJlcXVpcmVzIG1kZXZfZ2V0X2Rldl9vcHMoKSB0 byByZXR1cm4gdGhlDQo+IHN0cnVjdHVyZSByZXF1aXJlZCBieSB0aGUgZHJpdmVyLiAgSSB3aXNo IHRoZXJlIHdhcyBhIHdheSB3ZSBjb3VsZA0KPiBpbmNvcnBvcmF0ZSB0eXBlIGNoZWNraW5nIGhl cmUuICBXZSB0b3llZCB3aXRoIHRoZSBpZGVhIG9mIGhhdmluZyB0aGUgY2xhc3MNCj4gaW4gdGhl IHNhbWUgc3RydWN0dXJlIGFzIHRoZSBvcHMsIGJ1dCBJIHRoaW5rIHRoaXMgYXBwcm9hY2ggd2Fz IGNob3NlbiBmb3INCj4gc2ltcGxpY2l0eS4gIFdlIGNvdWxkIHN0aWxsIGRvIHNvbWV0aGluZyBs aWtlOg0KPiANCj4gaW50IG1kZXZfc2V0X2NsYXNzX3N0cnVjdChzdHJ1Y3QgZGV2aWNlICpkZXYs IGNvbnN0IHN0cnVjdCBtZGV2X2NsYXNzX3N0cnVjdA0KPiAqY2xhc3MpOw0KPiANCj4gc3RydWN0 IG1kZXZfY2xhc3Nfc3RydWN0IHsNCj4gCXUxNglpZDsNCj4gCXVuaW9uIHsNCj4gCQlzdHJ1Y3Qg dmZpb19tZGV2X29wcyB2ZmlvX29wczsNCj4gCQlzdHJ1Y3QgdmlydGlvX21kZXZfb3BzIHZpcnRp b19vcHM7DQo+IAl9Ow0KPiB9Ow0KPiANCj4gTWF5YmUgZXZlbjoNCj4gDQo+IHN0cnVjdCB2Zmlv X21kZXZfb3BzICptZGV2X2dldF92ZmlvX29wcyhzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpIHsN Cj4gCUJVR19PTihtZGV2LT5jbGFzcy5pZCAhPSBNREVWX0lEX1ZGSU8pOw0KPiAJcmV0dXJuICZt ZGV2LT5jbGFzcy52ZmlvX29wczsNCj4gfQ0KPiANCj4gVGhlIG1hdGNoIGNhbGxiYWNrIHdvdWxk IG9mIGNvdXJzZSBqdXN0IHVzZSB0aGUgbWRldi0+Y2xhc3MuaWQgdmFsdWUuDQo+IEZ1bmN0aW9u YWxseSBlcXVpdmFsZW50LCBidXQgbWF5YmUgYmV0dGVyIHR5cGUgY2hhcmFjdGVyaXN0aWNzLiAg VGhhbmtzLA0KPiANCj4gQWxleA0KDQpXZSBoYXZlIDMgdXNlIGNhc2VzIG9mIG1kZXYuDQoxLiBj dXJyZW50IG1kZXYgYmluZGluZyB0byB2ZmlvX21kZXYNCjIuIG1kZXYgYmluZGluZyB0byB2aXJ0 aW8NCjMuIG1kZXYgYmluZGluZyB0byBtbHg1X2NvcmUgd2l0aG91dCBkZXZfb3BzDQoNCkFsc28g DQooYSkgYSBnaXZlbiBwYXJlbnQgbWF5IHNlcnZlIG11bHRpcGxlIHR5cGVzIG9mIGNsYXNzZXMg aW4gZnV0dXJlLg0KKGIpIG51bWJlciBvZiBjbGFzc2VzIG1heSBub3QgbGlrZWx5IGV4cGxvZGUs IHRoZXkgd2lsbCBiZSBoYW5kZnVsIG9mIHRoZW0uICh2ZmlvX21kZXYsIHZpcnRpbykNCg0KU28s IGluc3RlYWQgb2YgbWFraW5nIGNvcGllcyBvZiB0aGlzIGRldl9vcHMgcG9pbnRlciBpbiBlYWNo IG1kZXYsIGl0IGlzIGJldHRlciB0byBrZWVwIGNvbnN0IG11bHRpcGxlIG9wcyBpbiB0aGVpciBw YXJlbnQgZGV2aWNlLg0KU29tZXRoaW5nIGxpa2UgYmVsb3csDQoNCnN0cnVjdCBtZGV2X3BhcmVu dCB7DQoJWy4uXQ0KCXN0cnVjdCBtZGV2X3BhcmVudF9vcHMgKnBhcmVudF9vcHM7IC8qIGNyZWF0 ZSwgcmVtb3ZlICovDQoJc3RydWN0IHZmaW9fbWRldl9vcHMgKnZmaW9fb3BzOyAvKiByZWFkLHdy aXRlLCBpb2N0bCBldGMgKi8NCglzdHJ1Y3QgdmlydGlvX21kZXZfb3BzICp2aXJ0aW9fb3BzOyAv KiB2aXJ0aW8gb3BzICovDQp9Ow0KDQpjb25zdCBzdHJ1Y3QgdmZpb19tZGV2X29wcyAqbWRldl9n ZXRfdmZpb19vcHMoc3RydWN0IG1kZXZfcGFyZW50ICpwYXJlbnQpOw0KY29uc3Qgc3RydWN0IHZp cnRpb19tZGV2X29wcyAqbWRldl9nZXRfdmlydGlvX29wcyhzdHJ1Y3QgbWRldl9wYXJlbnQgKnBh cmVudCk7DQoNClRoaXMgd2F5LCANCihhKSB3ZSBoYXZlIHN0cm9uZyB0eXBlIGNoZWNrIHN1cHBv cnQNCihiKSBvcHMgcG9pbnRlciBpcyBub3QgZHVwbGljYXRlZCBhY3Jvc3Mgc2V2ZXJhbCBodW5k cmVkIG1kZXYgZGV2aWNlcywgYW5kIGRvbid0IGhhdmUgdG8gc2V0IG9uIGV2ZXJ5IG1kZXYgY3Jl YXRpb24NCihjKSBhbGwgMyBjbGFzc2VzIG9mIG1kZXYgYXJlIHN1cHBvcnRlZA0KKGQpIG9uZSBl eHRyYSBzeW1ib2wgdGFibGUgZW50cnkgdXNlZCBwZXIgb3BzIHR5cGUsIGJ1dCB0aGVyZSBhcmUg bm90IGV4cGVjdGVkIHRvIGdyb3cgYSBsb3QuDQooZSkgbXVsdGlwbGUgY2xhc3NlcyBwZXIgc2lu Z2xlIHBhcmVudCBpcyBzdGlsbCBzdXBwb3J0ZWQNCihmKSBzdGlsbCBleHRlbmRpYmxlIGZvciBt dWx0aXBsZSBjbGFzc2VzICh3ZWxsIGRlZmluZWQgY2xhc3NlcyA9IHZmaW8sIHZpcnRpbywgYW5k IHZlbmRvciBjbGFzcykNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVs