From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: Re: [PATCH V5 4/6] mdev: introduce virtio device and its device ops Date: Thu, 24 Oct 2019 11:51:35 +0800 Message-ID: <1699cc4e-7d52-b2dc-8016-358a36a4f4ea__46756.8838548445$1571889156$gmane$org@redhat.com> References: <20191023130752.18980-1-jasowang@redhat.com> <20191023130752.18980-5-jasowang@redhat.com> <20191023155728.2a55bc71@x1.home> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191023155728.2a55bc71@x1.home> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Alex Williamson Cc: stefanha@redhat.com, christophe.de.dinechin@gmail.com, kvm@vger.kernel.org, mst@redhat.com, airlied@linux.ie, joonas.lahtinen@linux.intel.com, heiko.carstens@de.ibm.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, zhi.a.wang@intel.com, farman@linux.ibm.com, idos@mellanox.com, gor@linux.ibm.com, intel-gfx@lists.freedesktop.org, jani.nikula@linux.intel.com, rodrigo.vivi@intel.com, xiao.w.wang@intel.com, freude@linux.ibm.com, zhenyuw@linux.intel.com, parav@mellanox.com, zhihong.wang@intel.com, intel-gvt-dev@lists.freedesktop.org, akrowiak@linux.ibm.com, oberpar@linux.ibm.com, netdev@vger.kernel.org, cohuck@redhat.com, linux-kernel@vger.ke List-Id: virtualization@lists.linuxfoundation.org Ck9uIDIwMTkvMTAvMjQg5LiK5Y2INTo1NywgQWxleCBXaWxsaWFtc29uIHdyb3RlOgo+IE9uIFdl ZCwgMjMgT2N0IDIwMTkgMjE6MDc6NTAgKzA4MDAKPiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRo YXQuY29tPiB3cm90ZToKPgo+PiBUaGlzIHBhdGNoIGltcGxlbWVudHMgYmFzaWMgc3VwcG9ydCBm b3IgbWRldiBkcml2ZXIgdGhhdCBzdXBwb3J0cwo+PiB2aXJ0aW8gdHJhbnNwb3J0IGZvciBrZXJu ZWwgdmlydGlvIGRyaXZlci4KPj4KPj4gU2lnbmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dh bmdAcmVkaGF0LmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVycy92ZmlvL21kZXYvbWRldl9jb3JlLmMg ICAgfCAgMjAgKysrKwo+PiAgIGRyaXZlcnMvdmZpby9tZGV2L21kZXZfcHJpdmF0ZS5oIHwgICAy ICsKPj4gICBpbmNsdWRlL2xpbnV4L21kZXYuaCAgICAgICAgICAgICB8ICAgNiArKwo+PiAgIGlu Y2x1ZGUvbGludXgvdmlydGlvX21kZXZfb3BzLmggIHwgMTU5ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKPj4gICA0IGZpbGVzIGNoYW5nZWQsIDE4NyBpbnNlcnRpb25zKCspCj4+ICAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvdmlydGlvX21kZXZfb3BzLmgKPj4KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfY29yZS5jIGIvZHJpdmVycy92Zmlv L21kZXYvbWRldl9jb3JlLmMKPj4gaW5kZXggNTU1YmQ2MWQ4YzM4Li45YjAwYzM1MTMxMjAgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfY29yZS5jCj4+ICsrKyBiL2RyaXZl cnMvdmZpby9tZGV2L21kZXZfY29yZS5jCj4+IEBAIC03Niw2ICs3NiwyNiBAQCBjb25zdCBzdHJ1 Y3QgdmZpb19tZGV2X2RldmljZV9vcHMgKm1kZXZfZ2V0X3ZmaW9fb3BzKHN0cnVjdCBtZGV2X2Rl dmljZSAqbWRldikKPj4gICB9Cj4+ICAgRVhQT1JUX1NZTUJPTChtZGV2X2dldF92ZmlvX29wcyk7 Cj4+ICAgCj4+ICsvKiBTcGVjaWZ5IHRoZSB2aXJ0aW8gZGV2aWNlIG9wcyBmb3IgdGhlIG1kZXYg ZGV2aWNlLCB0aGlzCj4+ICsgKiBtdXN0IGJlIGNhbGxlZCBkdXJpbmcgY3JlYXRlKCkgY2FsbGJh Y2sgZm9yIHZpcnRpbyBtZGV2IGRldmljZS4KPj4gKyAqLwo+PiArdm9pZCBtZGV2X3NldF92aXJ0 aW9fb3BzKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwKPj4gKwkJCSBjb25zdCBzdHJ1Y3Qgdmly dGlvX21kZXZfZGV2aWNlX29wcyAqdmlydGlvX29wcykKPj4gK3sKPj4gKwltZGV2X3NldF9jbGFz cyhtZGV2LCBNREVWX0NMQVNTX0lEX1ZJUlRJTyk7Cj4+ICsJbWRldi0+dmlydGlvX29wcyA9IHZp cnRpb19vcHM7Cj4+ICt9Cj4+ICtFWFBPUlRfU1lNQk9MKG1kZXZfc2V0X3ZpcnRpb19vcHMpOwo+ PiArCj4+ICsvKiBHZXQgdGhlIHZpcnRpbyBkZXZpY2Ugb3BzIGZvciB0aGUgbWRldiBkZXZpY2Uu ICovCj4+ICtjb25zdCBzdHJ1Y3QgdmlydGlvX21kZXZfZGV2aWNlX29wcyAqCj4+ICttZGV2X2dl dF92aXJ0aW9fb3BzKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldikKPj4gK3sKPj4gKwlXQVJOX09O KG1kZXYtPmNsYXNzX2lkICE9IE1ERVZfQ0xBU1NfSURfVklSVElPKTsKPj4gKwlyZXR1cm4gbWRl di0+dmlydGlvX29wczsKPj4gK30KPj4gK0VYUE9SVF9TWU1CT0wobWRldl9nZXRfdmlydGlvX29w cyk7Cj4+ICsKPj4gICBzdHJ1Y3QgZGV2aWNlICptZGV2X2RldihzdHJ1Y3QgbWRldl9kZXZpY2Ug Km1kZXYpCj4+ICAgewo+PiAgIAlyZXR1cm4gJm1kZXYtPmRldjsKPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdmZpby9tZGV2L21kZXZfcHJpdmF0ZS5oIGIvZHJpdmVycy92ZmlvL21kZXYvbWRldl9w cml2YXRlLmgKPj4gaW5kZXggMDc3MDQxMGRlZDJhLi43YjQ3ODkwYzM0ZTcgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfcHJpdmF0ZS5oCj4+ICsrKyBiL2RyaXZlcnMvdmZp by9tZGV2L21kZXZfcHJpdmF0ZS5oCj4+IEBAIC0xMSw2ICsxMSw3IEBACj4+ICAgI2RlZmluZSBN REVWX1BSSVZBVEVfSAo+PiAgIAo+PiAgICNpbmNsdWRlIDxsaW51eC92ZmlvX21kZXZfb3BzLmg+ Cj4+ICsjaW5jbHVkZSA8bGludXgvdmlydGlvX21kZXZfb3BzLmg+Cj4+ICAgCj4+ICAgaW50ICBt ZGV2X2J1c19yZWdpc3Rlcih2b2lkKTsKPj4gICB2b2lkIG1kZXZfYnVzX3VucmVnaXN0ZXIodm9p ZCk7Cj4+IEBAIC0zOCw2ICszOSw3IEBAIHN0cnVjdCBtZGV2X2RldmljZSB7Cj4+ICAgCXUxNiBj bGFzc19pZDsKPj4gICAJdW5pb24gewo+PiAgIAkJY29uc3Qgc3RydWN0IHZmaW9fbWRldl9kZXZp Y2Vfb3BzICp2ZmlvX29wczsKPj4gKwkJY29uc3Qgc3RydWN0IHZpcnRpb19tZGV2X2RldmljZV9v cHMgKnZpcnRpb19vcHM7Cj4+ICAgCX07Cj4+ICAgfTsKPj4gICAKPj4gZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbGludXgvbWRldi5oIGIvaW5jbHVkZS9saW51eC9tZGV2LmgKPj4gaW5kZXggNDYyNWYx YTExMDE0Li45YjY5YjBiYmViZmQgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvbGludXgvbWRldi5o Cj4+ICsrKyBiL2luY2x1ZGUvbGludXgvbWRldi5oCj4+IEBAIC0xNyw2ICsxNyw3IEBACj4+ICAg Cj4+ICAgc3RydWN0IG1kZXZfZGV2aWNlOwo+PiAgIHN0cnVjdCB2ZmlvX21kZXZfZGV2aWNlX29w czsKPj4gK3N0cnVjdCB2aXJ0aW9fbWRldl9kZXZpY2Vfb3BzOwo+PiAgIAo+PiAgIC8qCj4+ICAg ICogQ2FsbGVkIGJ5IHRoZSBwYXJlbnQgZGV2aWNlIGRyaXZlciB0byBzZXQgdGhlIGRldmljZSB3 aGljaCByZXByZXNlbnRzCj4+IEBAIC0xMTIsNiArMTEzLDEwIEBAIHZvaWQgbWRldl9zZXRfY2xh c3Moc3RydWN0IG1kZXZfZGV2aWNlICptZGV2LCB1MTYgaWQpOwo+PiAgIHZvaWQgbWRldl9zZXRf dmZpb19vcHMoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2LAo+PiAgIAkJICAgICAgIGNvbnN0IHN0 cnVjdCB2ZmlvX21kZXZfZGV2aWNlX29wcyAqdmZpb19vcHMpOwo+PiAgIGNvbnN0IHN0cnVjdCB2 ZmlvX21kZXZfZGV2aWNlX29wcyAqbWRldl9nZXRfdmZpb19vcHMoc3RydWN0IG1kZXZfZGV2aWNl ICptZGV2KTsKPj4gK3ZvaWQgbWRldl9zZXRfdmlydGlvX29wcyhzdHJ1Y3QgbWRldl9kZXZpY2Ug Km1kZXYsCj4+ICsJCQkgY29uc3Qgc3RydWN0IHZpcnRpb19tZGV2X2RldmljZV9vcHMgKnZpcnRp b19vcHMpOwo+PiArY29uc3Qgc3RydWN0IHZpcnRpb19tZGV2X2RldmljZV9vcHMgKgo+PiArbWRl dl9nZXRfdmlydGlvX29wcyhzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpOwo+PiAgIAo+PiAgIGV4 dGVybiBzdHJ1Y3QgYnVzX3R5cGUgbWRldl9idXNfdHlwZTsKPj4gICAKPj4gQEAgLTEyNyw2ICsx MzIsNyBAQCBzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXZfZnJvbV9kZXYoc3RydWN0IGRldmljZSAq ZGV2KTsKPj4gICAKPj4gICBlbnVtIHsKPj4gICAJTURFVl9DTEFTU19JRF9WRklPID0gMSwKPj4g KwlNREVWX0NMQVNTX0lEX1ZJUlRJTyA9IDIsCj4+ICAgCS8qIE5ldyBlbnRyaWVzIG11c3QgYmUg YWRkZWQgaGVyZSAqLwo+PiAgIH07Cj4+ICAgCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L3ZpcnRpb19tZGV2X29wcy5oIGIvaW5jbHVkZS9saW51eC92aXJ0aW9fbWRldl9vcHMuaAo+PiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmQ0MTdiNDFmMjg0NQo+ PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2luY2x1ZGUvbGludXgvdmlydGlvX21kZXZfb3BzLmgK Pj4gQEAgLTAsMCArMSwxNTkgQEAKPj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wLW9ubHkgKi8KPj4gKy8qCj4+ICsgKiBWaXJ0aW8gbWVkaWF0ZWQgZGV2aWNlIGRyaXZlcgo+ PiArICoKPj4gKyAqIENvcHlyaWdodCAyMDE5LCBSZWQgSGF0IENvcnAuCj4+ICsgKiAgICAgQXV0 aG9yOiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgo+PiArICovCj4+ICsjaWZuZGVm IF9MSU5VWF9WSVJUSU9fTURFVl9ICj4+ICsjZGVmaW5lIF9MSU5VWF9WSVJUSU9fTURFVl9ICj4+ ICsKPj4gKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9t ZGV2Lmg+Cj4+ICsjaW5jbHVkZSA8dWFwaS9saW51eC92aG9zdC5oPgo+PiArCj4+ICsjZGVmaW5l IFZJUlRJT19NREVWX0RFVklDRV9BUElfU1RSSU5HCQkidmlydGlvLW1kZXYiCj4+ICsjZGVmaW5l IFZJUlRJT19NREVWX0ZfVkVSU0lPTl8xIDB4MQo+PiArCj4+ICtzdHJ1Y3QgdmlydGlvX21kZXZf Y2FsbGJhY2sgewo+PiArCWlycXJldHVybl90ICgqY2FsbGJhY2spKHZvaWQgKmRhdGEpOwo+PiAr CXZvaWQgKnByaXZhdGU7Cj4+ICt9Owo+PiArCj4+ICsvKioKPj4gKyAqIHN0cnVjdCB2ZmlvX21k ZXZfZGV2aWNlX29wcyAtIFN0cnVjdHVyZSB0byBiZSByZWdpc3RlcmVkIGZvciBlYWNoCj4+ICsg KiBtZGV2IGRldmljZSB0byByZWdpc3RlciB0aGUgZGV2aWNlIGZvciB2aXJ0aW8vdmhvc3QgZHJp dmVycy4KPj4gKyAqCj4+ICsgKiBUaGUgZGV2aWNlIG9wcyB0aGF0IGlzIHN1cHBvcnRlZCBieSBW SVJUSU9fTURFVl9GX1ZFUlNJT05fMSwgdGhlCj4+ICsgKiBjYWxsYmFja3MgYXJlIG1hbmRhdG9y eSB1bmxlc3MgZXhwbGljaXR5IG1lbnRpb25lZC4KPiBJZiB0aGUgdmVyc2lvbiBvZiB0aGUgY2Fs bGJhY2tzIGlzIHJldHVybmVkIGJ5IGEgY2FsbGJhY2sgd2l0aGluIHRoZQo+IHN0cnVjdHVyZSBk ZWZpbmVkIGJ5IHRoZSB2ZXJzaW9uLi4uIGlzbid0IHRoYXQgYSBiaXQgY2lyY3VsYXI/ICBUaGlz Cj4gc2VlbXMgcmVkdW5kYW50IHRvIG1lIHZlcnN1cyB0aGUgY2xhc3MgaWQuICBUaGUgZmFjdCB0 aGF0IHRoZSBwYXJlbnQKPiBkcml2ZXIgZGVmaW5lcyB0aGUgZGV2aWNlIGFzIE1ERVZfQ0xBU1Nf SURfVklSVElPIHNob3VsZCB0ZWxsIHVzIHRoaXMKPiBhbHJlYWR5LiAgSWYgaXQgd2FzIGluY3Jl bWVudGVkLCB3ZSdkIG5lZWQgYW4gTURFVl9DTEFTU19JRF9WSVJUSU92MiwKPiB3aGljaCB0aGUg dmlydGlvLW1kZXYgYnVzIGRyaXZlciBjb3VsZCBhZGQgdG8gaXRzIGlkIHRhYmxlIGFuZCBoYW5k bGUKPiBkaWZmZXJlbnRseS4KCgpNeSB1bmRlcnN0YW5kaW5nIGlzIHZlcnNpb25zIGFyZSBvbmx5 IGFsbG93ZWQgdG8gaW5jcmVhc2UgbW9ub3RvbmljYWxseSwgCnRoaXMgc2VlbXMgbGVzcyBmbGV4 aWJsZSB0aGFuIGZlYXR1cmVzLiBFLmcgd2UgaGF2ZSBmZWF0dXJlcyBBLCBCLCBDLCAKbWRldiBk ZXZpY2UgY2FuIGNob29zZSB0byBzdXBwb3J0IG9ubHkgYSBzdWJzZXQuIEUuZyB3aGVuIG1kZXYg ZGV2aWNlIApjYW4gc3VwcG9ydCBkaXJ0eSBwYWdlIGxvZ2dpbmcsIGl0IGNhbiBhZGQgYSBuZXcg ZmVhdHVyZSBiaXQgZm9yIGRyaXZlciAKdG8ga25vdyB0aGF0IGl0IHN1cHBvcnQgbmV3IGRldmlj ZSBvcHMuIE1ERVZfQ0xBU1NfSURfVklSVElPdjIgbWF5IG9ubHkgCmJlIHVzZWZ1bCB3aGVuIHdl IHdpbGwgaW52ZW50IGEgY29tcGxldGUgbmV3IEFQSS4KCgo+Cj4+ICsgKgo+PiArICogQHNldF92 cV9hZGRyZXNzOgkJU2V0IHRoZSBhZGRyZXNzIG9mIHZpcnRxdWV1ZQo+PiArICoJCQkJQG1kZXY6 IG1lZGlhdGVkIGRldmljZQo+PiArICoJCQkJQGlkeDogdmlydHF1ZXVlIGluZGV4Cj4+ICsgKgkJ CQlAZGVzY19hcmVhOiBhZGRyZXNzIG9mIGRlc2MgYXJlYQo+PiArICoJCQkJQGRyaXZlcl9hcmVh OiBhZGRyZXNzIG9mIGRyaXZlciBhcmVhCj4+ICsgKgkJCQlAZGV2aWNlX2FyZWE6IGFkZHJlc3Mg b2YgZGV2aWNlIGFyZWEKPj4gKyAqCQkJCVJldHVybnMgaW50ZWdlcjogc3VjY2VzcyAoMCkgb3Ig ZXJyb3IgKDwgMCkKPj4gKyAqIEBzZXRfdnFfbnVtOgkJCVNldCB0aGUgc2l6ZSBvZiB2aXJ0cXVl dWUKPj4gKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKPj4gKyAqCQkJCUBpZHg6IHZpcnRx dWV1ZSBpbmRleAo+PiArICoJCQkJQG51bTogdGhlIHNpemUgb2YgdmlydHF1ZXVlCj4+ICsgKiBA a2lja192cToJCQlLaWNrIHRoZSB2aXJ0cXVldWUKPj4gKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBk ZXZpY2UKPj4gKyAqCQkJCUBpZHg6IHZpcnRxdWV1ZSBpbmRleAo+PiArICogQHNldF92cV9jYjoJ CQlTZXQgdGhlIGludGVycnVwdCBjYWxsYmFjayBmdW5jdGlvbiBmb3IKPj4gKyAqCQkJCWEgdmly dHF1ZXVlCj4+ICsgKgkJCQlAbWRldjogbWVkaWF0ZWQgZGV2aWNlCj4+ICsgKgkJCQlAaWR4OiB2 aXJ0cXVldWUgaW5kZXgKPj4gKyAqCQkJCUBjYjogdmlydGlvLW1kZXYgaW50ZXJydXB0IGNhbGxi YWNrIHN0cnVjdHVyZQo+PiArICogQHNldF92cV9yZWFkeToJCVNldCByZWFkeSBzdGF0dXMgZm9y IGEgdmlydHF1ZXVlCj4+ICsgKgkJCQlAbWRldjogbWVkaWF0ZWQgZGV2aWNlCj4+ICsgKgkJCQlA aWR4OiB2aXJ0cXVldWUgaW5kZXgKPj4gKyAqCQkJCUByZWFkeTogcmVhZHkgKHRydWUpIG5vdCBy ZWFkeShmYWxzZSkKPj4gKyAqIEBnZXRfdnFfcmVhZHk6CQlHZXQgcmVhZHkgc3RhdHVzIGZvciBh IHZpcnRxdWV1ZQo+PiArICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRldmljZQo+PiArICoJCQkJQGlk eDogdmlydHF1ZXVlIGluZGV4Cj4+ICsgKgkJCQlSZXR1cm5zIGJvb2xlYW46IHJlYWR5ICh0cnVl KSBvciBub3QgKGZhbHNlKQo+PiArICogQHNldF92cV9zdGF0ZToJCVNldCB0aGUgc3RhdGUgZm9y IGEgdmlydHF1ZXVlCj4+ICsgKgkJCQlAbWRldjogbWVkaWF0ZWQgZGV2aWNlCj4+ICsgKgkJCQlA aWR4OiB2aXJ0cXVldWUgaW5kZXgKPj4gKyAqCQkJCUBzdGF0ZTogdmlydHF1ZXVlIHN0YXRlIChs YXN0X2F2YWlsX2lkeCkKPj4gKyAqCQkJCVJldHVybnMgaW50ZWdlcjogc3VjY2VzcyAoMCkgb3Ig ZXJyb3IgKDwgMCkKPj4gKyAqIEBnZXRfdnFfc3RhdGU6CQlHZXQgdGhlIHN0YXRlIGZvciBhIHZp cnRxdWV1ZQo+PiArICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRldmljZQo+PiArICoJCQkJQGlkeDog dmlydHF1ZXVlIGluZGV4Cj4+ICsgKgkJCQlSZXR1cm5zIHZpcnRxdWV1ZSBzdGF0ZSAobGFzdF9h dmFpbF9pZHgpCj4+ICsgKiBAZ2V0X3ZxX2FsaWduOgkJR2V0IHRoZSB2aXJ0cXVldWUgYWxpZ24g cmVxdWlyZW1lbnQKPj4gKyAqCQkJCWZvciB0aGUgZGV2aWNlCj4+ICsgKgkJCQlAbWRldjogbWVk aWF0ZWQgZGV2aWNlCj4+ICsgKgkJCQlSZXR1cm5zIHZpcnRxdWV1ZSBhbGdpbiByZXF1aXJlbWVu dAo+PiArICogQGdldF9mZWF0dXJlczoJCUdldCB2aXJ0aW8gZmVhdHVyZXMgc3VwcG9ydGVkIGJ5 IHRoZSBkZXZpY2UKPj4gKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKPj4gKyAqCQkJCVJl dHVybnMgdGhlIHZpcnRpbyBmZWF0dXJlcyBzdXBwb3J0IGJ5IHRoZQo+PiArICoJCQkJZGV2aWNl Cj4+ICsgKiBAZ2V0X2ZlYXR1cmVzOgkJU2V0IHZpcnRpbyBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkg dGhlIGRyaXZlcgo+ICAgICAgICAgXiBzL2cvcy8KPgo+IFRoYW5rcywKPiBBbGV4CgoKV2lsbCBm aXguCgpUaGFua3MKCgo+Cj4+ICsgKgkJCQlAbWRldjogbWVkaWF0ZWQgZGV2aWNlCj4+ICsgKgkJ CQlAZmVhdHVyZXM6IGZlYXR1cmUgc3VwcG9ydCBieSB0aGUgZHJpdmVyCj4+ICsgKgkJCQlSZXR1 cm5zIGludGVnZXI6IHN1Y2Nlc3MgKDApIG9yIGVycm9yICg8IDApCj4+ICsgKiBAc2V0X2NvbmZp Z19jYjoJCVNldCB0aGUgY29uZmlnIGludGVycnVwdCBjYWxsYmFjawo+PiArICoJCQkJQG1kZXY6 IG1lZGlhdGVkIGRldmljZQo+PiArICoJCQkJQGNiOiB2aXJ0aW8tbWRldiBpbnRlcnJ1cHQgY2Fs bGJhY2sgc3RydWN0dXJlCj4+ICsgKiBAZ2V0X3ZxX251bV9tYXg6CQlHZXQgdGhlIG1heCBzaXpl IG9mIHZpcnRxdWV1ZQo+PiArICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRldmljZQo+PiArICoJCQkJ UmV0dXJucyB1MTY6IG1heCBzaXplIG9mIHZpcnRxdWV1ZQo+PiArICogQGdldF9kZXZpY2VfaWQ6 CQlHZXQgdmlydGlvIGRldmljZSBpZAo+PiArICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRldmljZQo+ PiArICoJCQkJUmV0dXJucyB1MzI6IHZpcnRpbyBkZXZpY2UgaWQKPj4gKyAqIEBnZXRfdmVuZG9y X2lkOgkJR2V0IGlkIGZvciB0aGUgdmVuZG9yIHRoYXQgcHJvdmlkZXMgdGhpcyBkZXZpY2UKPj4g KyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKPj4gKyAqCQkJCVJldHVybnMgdTMyOiB2aXJ0 aW8gdmVuZG9yIGlkCj4+ICsgKiBAZ2V0X3N0YXR1czoJCQlHZXQgdGhlIGRldmljZSBzdGF0dXMK Pj4gKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKPj4gKyAqCQkJCVJldHVybnMgdTg6IHZp cnRpbyBkZXZpY2Ugc3RhdHVzCj4+ICsgKiBAc2V0X3N0YXR1czoJCQlTZXQgdGhlIGRldmljZSBz dGF0dXMKPj4gKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKPj4gKyAqCQkJCUBzdGF0dXM6 IHZpcnRpbyBkZXZpY2Ugc3RhdHVzCj4+ICsgKiBAZ2V0X2NvbmZpZzoJCQlSZWFkIGZyb20gZGV2 aWNlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gc3BhY2UKPj4gKyAqCQkJCUBtZGV2OiBtZWRpYXRl ZCBkZXZpY2UKPj4gKyAqCQkJCUBvZmZzZXQ6IG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YK Pj4gKyAqCQkJCWNvbmZpZ3VyYXRpb24gc3BhY2UKPj4gKyAqCQkJCUBidWY6IGJ1ZmZlciB1c2Vk IHRvIHJlYWQgdG8KPj4gKyAqCQkJCUBsZW46IHRoZSBsZW5ndGggdG8gcmVhZCBmcm9tCj4+ICsg KgkJCQljb25maWdyYXRpb24gc3BhY2UKPj4gKyAqIEBzZXRfY29uZmlnOgkJCVdyaXRlIHRvIGRl dmljZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHNwYWNlCj4+ICsgKgkJCQlAbWRldjogbWVkaWF0 ZWQgZGV2aWNlCj4+ICsgKgkJCQlAb2Zmc2V0OiBvZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9m Cj4+ICsgKgkJCQljb25maWd1cmF0aW9uIHNwYWNlCj4+ICsgKgkJCQlAYnVmOiBidWZmZXIgdXNl ZCB0byB3cml0ZSBmcm9tCj4+ICsgKgkJCQlAbGVuOiB0aGUgbGVuZ3RoIHRvIHdyaXRlIHRvCj4+ ICsgKgkJCQljb25maWdyYXRpb24gc3BhY2UKPj4gKyAqIEBnZXRfbWRldl9mZWF0dXJlczoJCUdl dCBhIHNldCBvZiBiaXRzIHRoYXQgZGVtb25zdHJhdGUKPj4gKyAqCQkJCXRoZWNhcGFiaWxpdHkg b2YgdGhlIG1kZXYgZGV2aWNlLiBOZXcKPj4gKyAqCQkJCWZlYXR1cmVzIGJpdHMgbXVzdCBiZSBh ZGRlZCB3aGVuCj4+ICsgKgkJCQlpbnRyb2R1Y2luZyBuZXcgZGV2aWNlIG9wcy4KPj4gKyAqCQkJ CUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKPj4gKyAqCQkJCVJldHVybnMgdGhlIG1kZXYgZmVhdHVy ZXMgKEFQSSkgc3VwcG9ydCBieQo+PiArICoJCQkJdGhlIGRldmljZS4KPj4gKyAqIEBnZXRfZ2Vu ZXJhdGlvbjoJCUdldCBkZXZpY2UgY29uZmlnIGdlbmVyYXRvbiAob3B0aW9uYWxseSkKPj4gKyAq CQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKPj4gKyAqCQkJCVJldHVybnMgdTMyOiBkZXZpY2Ug Z2VuZXJhdGlvbgo+PiArICovCj4+ICtzdHJ1Y3QgdmlydGlvX21kZXZfZGV2aWNlX29wcyB7Cj4+ ICsJLyogVmlydHF1ZXVlIG9wcyAqLwo+PiArCWludCAoKnNldF92cV9hZGRyZXNzKShzdHJ1Y3Qg bWRldl9kZXZpY2UgKm1kZXYsCj4+ICsJCQkgICAgICB1MTYgaWR4LCB1NjQgZGVzY19hcmVhLCB1 NjQgZHJpdmVyX2FyZWEsCj4+ICsJCQkgICAgICB1NjQgZGV2aWNlX2FyZWEpOwo+PiArCXZvaWQg KCpzZXRfdnFfbnVtKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsIHUxNiBpZHgsIHUzMiBudW0p Owo+PiArCXZvaWQgKCpraWNrX3ZxKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsIHUxNiBpZHgp Owo+PiArCXZvaWQgKCpzZXRfdnFfY2IpKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwgdTE2IGlk eCwKPj4gKwkJCSAgc3RydWN0IHZpcnRpb19tZGV2X2NhbGxiYWNrICpjYik7Cj4+ICsJdm9pZCAo KnNldF92cV9yZWFkeSkoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2LCB1MTYgaWR4LCBib29sIHJl YWR5KTsKPj4gKwlib29sICgqZ2V0X3ZxX3JlYWR5KShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYs IHUxNiBpZHgpOwo+PiArCWludCAoKnNldF92cV9zdGF0ZSkoc3RydWN0IG1kZXZfZGV2aWNlICpt ZGV2LCB1MTYgaWR4LCB1NjQgc3RhdGUpOwo+PiArCXU2NCAoKmdldF92cV9zdGF0ZSkoc3RydWN0 IG1kZXZfZGV2aWNlICptZGV2LCB1MTYgaWR4KTsKPj4gKwo+PiArCS8qIFZpcnRpbyBkZXZpY2Ug b3BzICovCj4+ICsJdTE2ICgqZ2V0X3ZxX2FsaWduKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYp Owo+PiArCXU2NCAoKmdldF9mZWF0dXJlcykoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KTsKPj4g KwlpbnQgKCpzZXRfZmVhdHVyZXMpKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwgdTY0IGZlYXR1 cmVzKTsKPj4gKwl2b2lkICgqc2V0X2NvbmZpZ19jYikoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2 LAo+PiArCQkJICAgICAgc3RydWN0IHZpcnRpb19tZGV2X2NhbGxiYWNrICpjYik7Cj4+ICsJdTE2 ICgqZ2V0X3ZxX251bV9tYXgpKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldik7Cj4+ICsJdTMyICgq Z2V0X2RldmljZV9pZCkoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KTsKPj4gKwl1MzIgKCpnZXRf dmVuZG9yX2lkKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpOwo+PiArCXU4ICgqZ2V0X3N0YXR1 cykoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KTsKPj4gKwl2b2lkICgqc2V0X3N0YXR1cykoc3Ry dWN0IG1kZXZfZGV2aWNlICptZGV2LCB1OCBzdGF0dXMpOwo+PiArCXZvaWQgKCpnZXRfY29uZmln KShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsIHVuc2lnbmVkIGludCBvZmZzZXQsCj4+ICsJCQkg ICB2b2lkICpidWYsIHVuc2lnbmVkIGludCBsZW4pOwo+PiArCXZvaWQgKCpzZXRfY29uZmlnKShz dHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsIHVuc2lnbmVkIGludCBvZmZzZXQsCj4+ICsJCQkgICBj b25zdCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBsZW4pOwo+PiArCXUzMiAoKmdldF9nZW5lcmF0 aW9uKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpOwo+PiArCj4+ICsJLyogTWRldiBkZXZpY2Ug b3BzICovCj4+ICsJdTY0ICgqZ2V0X21kZXZfZmVhdHVyZXMpKHN0cnVjdCBtZGV2X2RldmljZSAq bWRldik7Cj4+ICt9Owo+PiArCj4+ICt2b2lkIG1kZXZfc2V0X3ZpcnRpb19vcHMoc3RydWN0IG1k ZXZfZGV2aWNlICptZGV2LAo+PiArCQkJIGNvbnN0IHN0cnVjdCB2aXJ0aW9fbWRldl9kZXZpY2Vf b3BzICp2aXJ0aW9fb3BzKTsKPj4gKwo+PiArI2VuZGlmCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBtYWlsaW5nIGxpc3QKVmly dHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51 eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6YXRpb24=