From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: [PATCH V4 4/6] mdev: introduce virtio device and its device ops Date: Thu, 17 Oct 2019 18:48:34 +0800 Message-ID: <20191017104836.32464-5-jasowang@redhat.com> References: <20191017104836.32464-1-jasowang@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191017104836.32464-1-jasowang@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: kvm@vger.kernel.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org, kwankhede@nvidia.com, alex.williamson@redhat.com, mst@redhat.com, tiwei.bie@intel.com Cc: christophe.de.dinechin@gmail.com, sebott@linux.ibm.com, airlied@linux.ie, Jason Wang , heiko.carstens@de.ibm.com, virtualization@lists.linux-foundation.org, rob.miller@broadcom.com, lulu@redhat.com, eperezma@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, haotian.wang@sifive.com, farman@linux.ibm.com, idos@mellanox.com, gor@linux.ibm.com, cunming.liang@intel.com, xiao.w.wang@intel.com, freude@linux.ibm.com, parav@mellanox.com, zhihong.wang@intel.com, stefanha@redhat.com, akrowiak@linux.ibm.com, netdev@vger.kernel.org, cohuck@redhat.com, oberpar@linux.ibm.com, maxime.coquelin@redhat.com, lingshan.zhu@intel.com List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIGJhc2ljIHN1cHBvcnQgZm9yIG1kZXYgZHJpdmVyIHRoYXQg c3VwcG9ydHMKdmlydGlvIHRyYW5zcG9ydCBmb3Iga2VybmVsIHZpcnRpbyBkcml2ZXIuCgpTaWdu ZWQtb2ZmLWJ5OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgotLS0KIGRyaXZlcnMv dmZpby9tZGV2L21kZXZfY29yZS5jIHwgIDEyICsrKwogaW5jbHVkZS9saW51eC9tZGV2LmggICAg ICAgICAgfCAgIDQgKwogaW5jbHVkZS9saW51eC92aXJ0aW9fbWRldi5oICAgfCAxNTEgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNjcgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvdmlydGlvX21kZXYuaAoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfY29yZS5jIGIvZHJpdmVycy92Zmlv L21kZXYvbWRldl9jb3JlLmMKaW5kZXggZDBmMzExM2M4MDcxLi41ODM0ZjZiN2M3YTUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfY29yZS5jCisrKyBiL2RyaXZlcnMvdmZpby9t ZGV2L21kZXZfY29yZS5jCkBAIC01Nyw2ICs1NywxOCBAQCB2b2lkIG1kZXZfc2V0X3ZmaW9fb3Bz KHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwKIH0KIEVYUE9SVF9TWU1CT0wobWRldl9zZXRfdmZp b19vcHMpOwogCisvKiBTcGVjaWZ5IHRoZSB2aXJ0aW8gZGV2aWNlIG9wcyBmb3IgdGhlIG1kZXYg ZGV2aWNlLCB0aGlzCisgKiBtdXN0IGJlIGNhbGxlZCBkdXJpbmcgY3JlYXRlKCkgY2FsbGJhY2sg Zm9yIHZpcnRpbyBtZGV2IGRldmljZS4KKyAqLwordm9pZCBtZGV2X3NldF92aXJ0aW9fb3BzKHN0 cnVjdCBtZGV2X2RldmljZSAqbWRldiwKKwkJCSBjb25zdCBzdHJ1Y3QgdmlydGlvX21kZXZfZGV2 aWNlX29wcyAqdmlydGlvX29wcykKK3sKKwlCVUdfT04obWRldi0+Y2xhc3NfaWQpOworCW1kZXYt PmNsYXNzX2lkID0gTURFVl9DTEFTU19JRF9WSVJUSU87CisJbWRldi0+ZGV2aWNlX29wcyA9IHZp cnRpb19vcHM7Cit9CitFWFBPUlRfU1lNQk9MKG1kZXZfc2V0X3ZpcnRpb19vcHMpOworCiBjb25z dCB2b2lkICptZGV2X2dldF9kZXZfb3BzKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldikKIHsKIAly ZXR1cm4gbWRldi0+ZGV2aWNlX29wczsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWRldi5o IGIvaW5jbHVkZS9saW51eC9tZGV2LmgKaW5kZXggM2QyOWUwOWUyMGM5Li4xM2UwNDVlMDlkM2Ig MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWRldi5oCisrKyBiL2luY2x1ZGUvbGludXgvbWRl di5oCkBAIC0xNyw2ICsxNyw3IEBACiAKIHN0cnVjdCBtZGV2X2RldmljZTsKIHN0cnVjdCB2Zmlv X21kZXZfZGV2aWNlX29wczsKK3N0cnVjdCB2aXJ0aW9fbWRldl9kZXZpY2Vfb3BzOwogCiAvKgog ICogQ2FsbGVkIGJ5IHRoZSBwYXJlbnQgZGV2aWNlIGRyaXZlciB0byBzZXQgdGhlIGRldmljZSB3 aGljaCByZXByZXNlbnRzCkBAIC0xMTEsNiArMTEyLDggQEAgdm9pZCBtZGV2X3NldF9kcnZkYXRh KHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwgdm9pZCAqZGF0YSk7CiBjb25zdCBndWlkX3QgKm1k ZXZfdXVpZChzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpOwogdm9pZCBtZGV2X3NldF92ZmlvX29w cyhzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsCiAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmZpb19t ZGV2X2RldmljZV9vcHMgKnZmaW9fb3BzKTsKK3ZvaWQgbWRldl9zZXRfdmlydGlvX29wcyhzdHJ1 Y3QgbWRldl9kZXZpY2UgKm1kZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Ry dWN0IHZpcnRpb19tZGV2X2RldmljZV9vcHMgKnZpcnRpb19vcHMpOwogY29uc3Qgdm9pZCAqbWRl dl9nZXRfZGV2X29wcyhzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpOwogCiBleHRlcm4gc3RydWN0 IGJ1c190eXBlIG1kZXZfYnVzX3R5cGU7CkBAIC0xMjcsNiArMTMwLDcgQEAgc3RydWN0IG1kZXZf ZGV2aWNlICptZGV2X2Zyb21fZGV2KHN0cnVjdCBkZXZpY2UgKmRldik7CiAKIGVudW0gewogCU1E RVZfQ0xBU1NfSURfVkZJTyA9IDEsCisJTURFVl9DTEFTU19JRF9WSVJUSU8gPSAyLAogCS8qIE5l dyBlbnRyaWVzIG11c3QgYmUgYWRkZWQgaGVyZSAqLwogfTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC92aXJ0aW9fbWRldi5oIGIvaW5jbHVkZS9saW51eC92aXJ0aW9fbWRldi5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjk2NWI1MGY5YjI0Ci0tLSAvZGV2 L251bGwKKysrIGIvaW5jbHVkZS9saW51eC92aXJ0aW9fbWRldi5oCkBAIC0wLDAgKzEsMTUxIEBA CisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCisvKgorICogVmly dGlvIG1lZGlhdGVkIGRldmljZSBkcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgMjAxOSwgUmVkIEhh dCBDb3JwLgorICogICAgIEF1dGhvcjogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4K KyAqLworI2lmbmRlZiBfTElOVVhfVklSVElPX01ERVZfSAorI2RlZmluZSBfTElOVVhfVklSVElP X01ERVZfSAorCisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgv bWRldi5oPgorI2luY2x1ZGUgPHVhcGkvbGludXgvdmhvc3QuaD4KKworI2RlZmluZSBWSVJUSU9f TURFVl9ERVZJQ0VfQVBJX1NUUklORwkJInZpcnRpby1tZGV2IgorI2RlZmluZSBWSVJUSU9fTURF Vl9GX1ZFUlNJT05fMSAweDEKKworc3RydWN0IHZpcnRpb19tZGV2X2NhbGxiYWNrIHsKKwlpcnFy ZXR1cm5fdCAoKmNhbGxiYWNrKSh2b2lkICpkYXRhKTsKKwl2b2lkICpwcml2YXRlOworfTsKKwor LyoqCisgKiBzdHJ1Y3QgdmZpb19tZGV2X2RldmljZV9vcHMgLSBTdHJ1Y3R1cmUgdG8gYmUgcmVn aXN0ZXJlZCBmb3IgZWFjaAorICogbWRldiBkZXZpY2UgdG8gcmVnaXN0ZXIgdGhlIGRldmljZSB0 byB2aXJ0aW8tbWRldiBtb2R1bGUuCisgKgorICogQHNldF92cV9hZGRyZXNzOgkJU2V0IHRoZSBh ZGRyZXNzIG9mIHZpcnRxdWV1ZQorICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRldmljZQorICoJCQkJ QGlkeDogdmlydHF1ZXVlIGluZGV4CisgKgkJCQlAZGVzY19hcmVhOiBhZGRyZXNzIG9mIGRlc2Mg YXJlYQorICoJCQkJQGRyaXZlcl9hcmVhOiBhZGRyZXNzIG9mIGRyaXZlciBhcmVhCisgKgkJCQlA ZGV2aWNlX2FyZWE6IGFkZHJlc3Mgb2YgZGV2aWNlIGFyZWEKKyAqCQkJCVJldHVybnMgaW50ZWdl cjogc3VjY2VzcyAoMCkgb3IgZXJyb3IgKDwgMCkKKyAqIEBzZXRfdnFfbnVtOgkJU2V0IHRoZSBz aXplIG9mIHZpcnRxdWV1ZQorICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRldmljZQorICoJCQkJQGlk eDogdmlydHF1ZXVlIGluZGV4CisgKgkJCQlAbnVtOiB0aGUgc2l6ZSBvZiB2aXJ0cXVldWUKKyAq IEBraWNrX3ZxOgkJCUtpY2sgdGhlIHZpcnRxdWV1ZQorICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRl dmljZQorICoJCQkJQGlkeDogdmlydHF1ZXVlIGluZGV4CisgKiBAc2V0X3ZxX2NiOgkJCVNldCB0 aGUgaW50ZXJydXB0IGNhbGxiYWNrIGZ1bmN0aW9uIGZvcgorICoJCQkJYSB2aXJ0cXVldWUKKyAq CQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJCUBpZHg6IHZpcnRxdWV1ZSBpbmRleAor ICoJCQkJQGNiOiB2aXJ0aW8tbWRldiBpbnRlcnJ1cHQgY2FsbGJhY2sgc3RydWN0dXJlCisgKiBA c2V0X3ZxX3JlYWR5OgkJU2V0IHJlYWR5IHN0YXR1cyBmb3IgYSB2aXJ0cXVldWUKKyAqCQkJCUBt ZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJCUBpZHg6IHZpcnRxdWV1ZSBpbmRleAorICoJCQkJ QHJlYWR5OiByZWFkeSAodHJ1ZSkgbm90IHJlYWR5KGZhbHNlKQorICogQGdldF92cV9yZWFkeToJ CUdldCByZWFkeSBzdGF0dXMgZm9yIGEgdmlydHF1ZXVlCisgKgkJCQlAbWRldjogbWVkaWF0ZWQg ZGV2aWNlCisgKgkJCQlAaWR4OiB2aXJ0cXVldWUgaW5kZXgKKyAqCQkJCVJldHVybnMgYm9vbGVh bjogcmVhZHkgKHRydWUpIG9yIG5vdCAoZmFsc2UpCisgKiBAc2V0X3ZxX3N0YXRlOgkJU2V0IHRo ZSBzdGF0ZSBmb3IgYSB2aXJ0cXVldWUKKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAq CQkJCUBpZHg6IHZpcnRxdWV1ZSBpbmRleAorICoJCQkJQHN0YXRlOiB2aXJ0cXVldWUgc3RhdGUg KGxhc3RfYXZhaWxfaWR4KQorICoJCQkJUmV0dXJucyBpbnRlZ2VyOiBzdWNjZXNzICgwKSBvciBl cnJvciAoPCAwKQorICogQGdldF92cV9zdGF0ZToJCUdldCB0aGUgc3RhdGUgZm9yIGEgdmlydHF1 ZXVlCisgKgkJCQlAbWRldjogbWVkaWF0ZWQgZGV2aWNlCisgKgkJCQlAaWR4OiB2aXJ0cXVldWUg aW5kZXgKKyAqCQkJCVJldHVybnMgdmlydHF1ZXVlIHN0YXRlIChsYXN0X2F2YWlsX2lkeCkKKyAq IEBnZXRfdnFfYWxpZ246CQlHZXQgdGhlIHZpcnRxdWV1ZSBhbGlnbiByZXF1aXJlbWVudAorICoJ CQkJZm9yIHRoZSBkZXZpY2UKKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJCVJl dHVybnMgdmlydHF1ZXVlIGFsZ2luIHJlcXVpcmVtZW50CisgKiBAZ2V0X2ZlYXR1cmVzOgkJR2V0 IHZpcnRpbyBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZQorICoJCQkJQG1kZXY6IG1l ZGlhdGVkIGRldmljZQorICoJCQkJUmV0dXJucyB0aGUgdmlydGlvIGZlYXR1cmVzIHN1cHBvcnQg YnkgdGhlCisgKgkJCQlkZXZpY2UKKyAqIEBnZXRfZmVhdHVyZXM6CQlTZXQgdmlydGlvIGZlYXR1 cmVzIHN1cHBvcnRlZCBieSB0aGUgZHJpdmVyCisgKgkJCQlAbWRldjogbWVkaWF0ZWQgZGV2aWNl CisgKgkJCQlAZmVhdHVyZXM6IGZlYXR1cmUgc3VwcG9ydCBieSB0aGUgZHJpdmVyCisgKgkJCQlS ZXR1cm5zIGludGVnZXI6IHN1Y2Nlc3MgKDApIG9yIGVycm9yICg8IDApCisgKiBAc2V0X2NvbmZp Z19jYjoJCVNldCB0aGUgY29uZmlnIGludGVycnVwdCBjYWxsYmFjaworICoJCQkJQG1kZXY6IG1l ZGlhdGVkIGRldmljZQorICoJCQkJQGNiOiB2aXJ0aW8tbWRldiBpbnRlcnJ1cHQgY2FsbGJhY2sg c3RydWN0dXJlCisgKiBAZ2V0X3ZxX251bV9tYXg6CQlHZXQgdGhlIG1heCBzaXplIG9mIHZpcnRx dWV1ZQorICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRldmljZQorICoJCQkJUmV0dXJucyB1MTY6IG1h eCBzaXplIG9mIHZpcnRxdWV1ZQorICogQGdldF9kZXZpY2VfaWQ6CQlHZXQgdmlydGlvIGRldmlj ZSBpZAorICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRldmljZQorICoJCQkJUmV0dXJucyB1MzI6IHZp cnRpbyBkZXZpY2UgaWQKKyAqIEBnZXRfdmVuZG9yX2lkOgkJR2V0IHZpcnRpbyB2ZW5kb3IgaWQK KyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJCVJldHVybnMgdTMyOiB2aXJ0aW8g dmVuZG9yIGlkCisgKiBAZ2V0X3N0YXR1czogCQlHZXQgdGhlIGRldmljZSBzdGF0dXMKKyAqCQkJ CUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJCVJldHVybnMgdTg6IHZpcnRpbyBkZXZpY2Ug c3RhdHVzCisgKiBAc2V0X3N0YXR1czogCQlTZXQgdGhlIGRldmljZSBzdGF0dXMKKyAqCQkJCUBt ZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJCUBzdGF0dXM6IHZpcnRpbyBkZXZpY2Ugc3RhdHVz CisgKiBAZ2V0X2NvbmZpZzogCQlSZWFkIGZyb20gZGV2aWNlIHNwZWNpZmljIGNvbmZpZ3VyYXRp b24gc3BhY2UKKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJCUBvZmZzZXQ6IG9m ZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YKKyAqCQkJCWNvbmZpZ3VyYXRpb24gc3BhY2UKKyAq CQkJCUBidWY6IGJ1ZmZlciB1c2VkIHRvIHJlYWQgdG8KKyAqCQkJCUBsZW46IHRoZSBsZW5ndGgg dG8gcmVhZCBmcm9tCisgKgkJCQljb25maWdyYXRpb24gc3BhY2UKKyAqIEBzZXRfY29uZmlnOiAJ CVdyaXRlIHRvIGRldmljZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHNwYWNlCisgKgkJCQlAbWRl djogbWVkaWF0ZWQgZGV2aWNlCisgKgkJCQlAb2Zmc2V0OiBvZmZzZXQgZnJvbSB0aGUgYmVnaW5u aW5nIG9mCisgKgkJCQljb25maWd1cmF0aW9uIHNwYWNlCisgKgkJCQlAYnVmOiBidWZmZXIgdXNl ZCB0byB3cml0ZSBmcm9tCisgKgkJCQlAbGVuOiB0aGUgbGVuZ3RoIHRvIHdyaXRlIHRvCisgKgkJ CQljb25maWdyYXRpb24gc3BhY2UKKyAqIEBnZXRfbWRldl9mZWF0dXJlczoJCUdldCB0aGUgZmVh dHVyZSBvZiB2aXJ0aW8gbWRldiBkZXZpY2UKKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UK KyAqCQkJCVJldHVybnMgdGhlIG1kZXYgZmVhdHVyZXMgKEFQSSkgc3VwcG9ydCBieQorICoJCQkJ dGhlIGRldmljZS4KKyAqIEBnZXRfZ2VuZXJhdGlvbjoJCUdldCBkZXZpY2UgZ2VuZXJhdG9uCisg KgkJCQlAbWRldjogbWVkaWF0ZWQgZGV2aWNlCisgKgkJCQlSZXR1cm5zIHUzMjogZGV2aWNlIGdl bmVyYXRpb24KKyAqLworc3RydWN0IHZpcnRpb19tZGV2X2RldmljZV9vcHMgeworCS8qIFZpcnRx dWV1ZSBvcHMgKi8KKwlpbnQgKCpzZXRfdnFfYWRkcmVzcykoc3RydWN0IG1kZXZfZGV2aWNlICpt ZGV2LAorCQkJICAgICAgdTE2IGlkeCwgdTY0IGRlc2NfYXJlYSwgdTY0IGRyaXZlcl9hcmVhLAor CQkJICAgICAgdTY0IGRldmljZV9hcmVhKTsKKwl2b2lkICgqc2V0X3ZxX251bSkoc3RydWN0IG1k ZXZfZGV2aWNlICptZGV2LCB1MTYgaWR4LCB1MzIgbnVtKTsKKwl2b2lkICgqa2lja192cSkoc3Ry dWN0IG1kZXZfZGV2aWNlICptZGV2LCB1MTYgaWR4KTsKKwl2b2lkICgqc2V0X3ZxX2NiKShzdHJ1 Y3QgbWRldl9kZXZpY2UgKm1kZXYsIHUxNiBpZHgsCisJCQkgIHN0cnVjdCB2aXJ0aW9fbWRldl9j YWxsYmFjayAqY2IpOworCXZvaWQgKCpzZXRfdnFfcmVhZHkpKHN0cnVjdCBtZGV2X2RldmljZSAq bWRldiwgdTE2IGlkeCwgYm9vbCByZWFkeSk7CisJYm9vbCAoKmdldF92cV9yZWFkeSkoc3RydWN0 IG1kZXZfZGV2aWNlICptZGV2LCB1MTYgaWR4KTsKKwlpbnQgKCpzZXRfdnFfc3RhdGUpKHN0cnVj dCBtZGV2X2RldmljZSAqbWRldiwgdTE2IGlkeCwgdTY0IHN0YXRlKTsKKwl1NjQgKCpnZXRfdnFf c3RhdGUpKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwgdTE2IGlkeCk7CisKKwkvKiBEZXZpY2Ug b3BzICovCisJdTE2ICgqZ2V0X3ZxX2FsaWduKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpOwor CXU2NCAoKmdldF9mZWF0dXJlcykoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KTsKKwlpbnQgKCpz ZXRfZmVhdHVyZXMpKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwgdTY0IGZlYXR1cmVzKTsKKwl2 b2lkICgqc2V0X2NvbmZpZ19jYikoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2LAorCQkJICAgICAg c3RydWN0IHZpcnRpb19tZGV2X2NhbGxiYWNrICpjYik7CisJdTE2ICgqZ2V0X3ZxX251bV9tYXgp KHN0cnVjdCBtZGV2X2RldmljZSAqbWRldik7CisJdTMyICgqZ2V0X2RldmljZV9pZCkoc3RydWN0 IG1kZXZfZGV2aWNlICptZGV2KTsKKwl1MzIgKCpnZXRfdmVuZG9yX2lkKShzdHJ1Y3QgbWRldl9k ZXZpY2UgKm1kZXYpOworCXU4ICgqZ2V0X3N0YXR1cykoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2 KTsKKwl2b2lkICgqc2V0X3N0YXR1cykoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2LCB1OCBzdGF0 dXMpOworCXZvaWQgKCpnZXRfY29uZmlnKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsIHVuc2ln bmVkIGludCBvZmZzZXQsCisJCQkgICB2b2lkICpidWYsIHVuc2lnbmVkIGludCBsZW4pOworCXZv aWQgKCpzZXRfY29uZmlnKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsIHVuc2lnbmVkIGludCBv ZmZzZXQsCisJCQkgICBjb25zdCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBsZW4pOworCXU2NCAo KmdldF9tZGV2X2ZlYXR1cmVzKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpOworCXUzMiAoKmdl dF9nZW5lcmF0aW9uKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpOworfTsKKwordm9pZCBtZGV2 X3NldF92aXJ0aW9fb3BzKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwKKwkJCSBjb25zdCBzdHJ1 Y3QgdmlydGlvX21kZXZfZGV2aWNlX29wcyAqdmlydGlvX29wcyk7CisKKyNlbmRpZgotLSAKMi4x OS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=