From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v3 6/9] xen/gntdev: Make private routines/structures accessible Date: Tue, 12 Jun 2018 16:41:57 +0300 Message-ID: <20180612134200.17456-7-andr2000@gmail.com> References: <20180612134200.17456-1-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x244.google.com (mail-lf0-x244.google.com [IPv6:2a00:1450:4010:c07::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 416B36E4E0 for ; Tue, 12 Jun 2018 13:42:20 +0000 (UTC) Received: by mail-lf0-x244.google.com with SMTP id y20-v6so36138304lfy.0 for ; Tue, 12 Jun 2018 06:42:20 -0700 (PDT) In-Reply-To: <20180612134200.17456-1-andr2000@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Cc: andr2000@gmail.com, daniel.vetter@intel.com, dongwon.kim@intel.com, Oleksandr Andrushchenko List-Id: dri-devel@lists.freedesktop.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgYWRkaW5nIHN1cHBvcnQgb2YgRE1B IGJ1ZmZlcgpmdW5jdGlvbmFsaXR5OiBtYWtlIG1hcC91bm1hcCByZWxhdGVkIGNvZGUgYW5kIHN0 cnVjdHVyZXMsIHVzZWQKcHJpdmF0ZWx5IGJ5IGdudGRldiwgcmVhZHkgZm9yIGRtYS1idWYgZXh0 ZW5zaW9uLCB3aGljaCB3aWxsIHJlLXVzZQp0aGVzZS4gUmVuYW1lIGNvcnJlc3BvbmRpbmcgc3Ry dWN0dXJlcyBhcyB0aG9zZSBiZWNvbWUgbm9uLXByaXZhdGUKdG8gZ250ZGV2IG5vdy4KClNpZ25l ZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5r b0BlcGFtLmNvbT4KLS0tCiBkcml2ZXJzL3hlbi9nbnRkZXYtY29tbW9uLmggfCAgODYgKysrKysr KysrKysrKysrKysrKysrKysKIGRyaXZlcnMveGVuL2dudGRldi5jICAgICAgICB8IDEzMiArKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTI4IGlu c2VydGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv eGVuL2dudGRldi1jb21tb24uaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL2dudGRldi1jb21t b24uaCBiL2RyaXZlcnMveGVuL2dudGRldi1jb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjdhOTg0NWE2YmVlOQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZl cnMveGVuL2dudGRldi1jb21tb24uaApAQCAtMCwwICsxLDg2IEBACisvKiBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogR1BMLTIuMCAqLworCisvKgorICogQ29tbW9uIGZ1bmN0aW9uYWxpdHkgb2Yg Z3JhbnQgZGV2aWNlLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNi0yMDA3LCBEIEcgTXVycmF5 LgorICogICAgICAgICAgIChjKSAyMDA5IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29t PgorICogICAgICAgICAgIChjKSAyMDE4IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvLCBFUEFNIFN5 c3RlbXMgSW5jLgorICovCisKKyNpZm5kZWYgX0dOVERFVl9DT01NT05fSAorI2RlZmluZSBfR05U REVWX0NPTU1PTl9ICisKKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L21t YW4uaD4KKyNpbmNsdWRlIDxsaW51eC9tbXVfbm90aWZpZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90 eXBlcy5oPgorCitzdHJ1Y3QgZ250ZGV2X3ByaXYgeworCS8qIG1hcHMgd2l0aCB2aXNpYmxlIG9m ZnNldHMgaW4gdGhlIGZpbGUgZGVzY3JpcHRvciAqLworCXN0cnVjdCBsaXN0X2hlYWQgbWFwczsK KwkvKiBtYXBzIHRoYXQgYXJlIG5vdCB2aXNpYmxlOyB3aWxsIGJlIGZyZWVkIG9uIG11bm1hcC4K KwkgKiBPbmx5IHBvcHVsYXRlZCBpZiBwb3B1bGF0ZV9mcmVlYWJsZV9tYXBzID09IDEgKi8KKwlz dHJ1Y3QgbGlzdF9oZWFkIGZyZWVhYmxlX21hcHM7CisJLyogbG9jayBwcm90ZWN0cyBtYXBzIGFu ZCBmcmVlYWJsZV9tYXBzICovCisJc3RydWN0IG11dGV4IGxvY2s7CisJc3RydWN0IG1tX3N0cnVj dCAqbW07CisJc3RydWN0IG1tdV9ub3RpZmllciBtbjsKKworI2lmZGVmIENPTkZJR19YRU5fR1JB TlRfRE1BX0FMTE9DCisJLyogRGV2aWNlIGZvciB3aGljaCBETUEgbWVtb3J5IGlzIGFsbG9jYXRl ZC4gKi8KKwlzdHJ1Y3QgZGV2aWNlICpkbWFfZGV2OworI2VuZGlmCit9OworCitzdHJ1Y3QgZ250 ZGV2X3VubWFwX25vdGlmeSB7CisJaW50IGZsYWdzOworCS8qIEFkZHJlc3MgcmVsYXRpdmUgdG8g dGhlIHN0YXJ0IG9mIHRoZSBnbnRkZXZfZ3JhbnRfbWFwICovCisJaW50IGFkZHI7CisJaW50IGV2 ZW50OworfTsKKworc3RydWN0IGdudGRldl9ncmFudF9tYXAgeworCXN0cnVjdCBsaXN0X2hlYWQg bmV4dDsKKwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYTsKKwlpbnQgaW5kZXg7CisJaW50IGNv dW50OworCWludCBmbGFnczsKKwlyZWZjb3VudF90IHVzZXJzOworCXN0cnVjdCBnbnRkZXZfdW5t YXBfbm90aWZ5IG5vdGlmeTsKKwlzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X3JlZiAqZ3JhbnRz OworCXN0cnVjdCBnbnR0YWJfbWFwX2dyYW50X3JlZiAgICptYXBfb3BzOworCXN0cnVjdCBnbnR0 YWJfdW5tYXBfZ3JhbnRfcmVmICp1bm1hcF9vcHM7CisJc3RydWN0IGdudHRhYl9tYXBfZ3JhbnRf cmVmICAgKmttYXBfb3BzOworCXN0cnVjdCBnbnR0YWJfdW5tYXBfZ3JhbnRfcmVmICprdW5tYXBf b3BzOworCXN0cnVjdCBwYWdlICoqcGFnZXM7CisJdW5zaWduZWQgbG9uZyBwYWdlc192bV9zdGFy dDsKKworI2lmZGVmIENPTkZJR19YRU5fR1JBTlRfRE1BX0FMTE9DCisJLyoKKwkgKiBJZiBkbWFi dWZfdmFkZHIgaXMgbm90IE5VTEwgdGhlbiB0aGlzIG1hcHBpbmcgaXMgYmFja2VkIGJ5IERNQQor CSAqIGNhcGFibGUgbWVtb3J5LgorCSAqLworCisJc3RydWN0IGRldmljZSAqZG1hX2RldjsKKwkv KiBGbGFncyB1c2VkIHRvIGNyZWF0ZSB0aGlzIERNQSBidWZmZXI6IEdOVERFVl9ETUFfRkxBR19Y WFguICovCisJaW50IGRtYV9mbGFnczsKKwl2b2lkICpkbWFfdmFkZHI7CisJZG1hX2FkZHJfdCBk bWFfYnVzX2FkZHI7CisJLyogTmVlZGVkIHRvIGF2b2lkIGFsbG9jYXRpb24gaW4gZ250dGFiX2Rt YV9mcmVlX3BhZ2VzKCkuICovCisJeGVuX3Bmbl90ICpmcmFtZXM7CisjZW5kaWYKK307CisKK3N0 cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICpnbnRkZXZfYWxsb2NfbWFwKHN0cnVjdCBnbnRkZXZfcHJp diAqcHJpdiwgaW50IGNvdW50LAorCQkJCQkgIGludCBkbWFfZmxhZ3MpOworCit2b2lkIGdudGRl dl9hZGRfbWFwKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgc3RydWN0IGdudGRldl9ncmFudF9t YXAgKmFkZCk7CisKK3ZvaWQgZ250ZGV2X3B1dF9tYXAoc3RydWN0IGdudGRldl9wcml2ICpwcml2 LCBzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwKTsKKworYm9vbCBnbnRkZXZfYWNjb3VudF9t YXBwZWRfcGFnZXMoaW50IGNvdW50KTsKKworaW50IGdudGRldl9tYXBfZ3JhbnRfcGFnZXMoc3Ry dWN0IGdudGRldl9ncmFudF9tYXAgKm1hcCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy94ZW4vZ250ZGV2LmMgYi9kcml2ZXJzL3hlbi9nbnRkZXYuYwppbmRleCBkNmI3OWFkMWNkNmYu LmEwOWRiMjNlOTY2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vZ250ZGV2LmMKKysrIGIvZHJp dmVycy94ZW4vZ250ZGV2LmMKQEAgLTYsNiArNiw3IEBACiAgKgogICogQ29weXJpZ2h0IChjKSAy MDA2LTIwMDcsIEQgRyBNdXJyYXkuCiAgKiAgICAgICAgICAgKGMpIDIwMDkgR2VyZCBIb2ZmbWFu biA8a3JheGVsQHJlZGhhdC5jb20+CisgKiAgICAgICAgICAgKGMpIDIwMTggT2xla3NhbmRyIEFu ZHJ1c2hjaGVua28sIEVQQU0gU3lzdGVtcyBJbmMuCiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpA QCAtMjYsMTAgKzI3LDYgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGlu dXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgv bW0uaD4KLSNpbmNsdWRlIDxsaW51eC9tbWFuLmg+Ci0jaW5jbHVkZSA8bGludXgvbW11X25vdGlm aWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNz Lmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC9tbS5o PgpAQCAtNTAsNiArNDcsOCBAQAogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJ2aXNvci5oPgogI2lu Y2x1ZGUgPGFzbS94ZW4vaHlwZXJjYWxsLmg+CiAKKyNpbmNsdWRlICJnbnRkZXYtY29tbW9uLmgi CisKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9BVVRIT1IoIkRlcmVrIEcuIE11cnJh eSA8RGVyZWsuTXVycmF5QGNsLmNhbS5hYy51az4sICIKIAkgICAgICAiR2VyZCBIb2ZmbWFubiA8 a3JheGVsQHJlZGhhdC5jb20+Iik7CkBAIC02NSw3MyArNjQsMjMgQEAgc3RhdGljIGF0b21pY190 IHBhZ2VzX21hcHBlZCA9IEFUT01JQ19JTklUKDApOwogc3RhdGljIGludCB1c2VfcHRlbW9kOwog I2RlZmluZSBwb3B1bGF0ZV9mcmVlYWJsZV9tYXBzIHVzZV9wdGVtb2QKIAotc3RydWN0IGdudGRl dl9wcml2IHsKLQkvKiBtYXBzIHdpdGggdmlzaWJsZSBvZmZzZXRzIGluIHRoZSBmaWxlIGRlc2Ny aXB0b3IgKi8KLQlzdHJ1Y3QgbGlzdF9oZWFkIG1hcHM7Ci0JLyogbWFwcyB0aGF0IGFyZSBub3Qg dmlzaWJsZTsgd2lsbCBiZSBmcmVlZCBvbiBtdW5tYXAuCi0JICogT25seSBwb3B1bGF0ZWQgaWYg cG9wdWxhdGVfZnJlZWFibGVfbWFwcyA9PSAxICovCi0Jc3RydWN0IGxpc3RfaGVhZCBmcmVlYWJs ZV9tYXBzOwotCS8qIGxvY2sgcHJvdGVjdHMgbWFwcyBhbmQgZnJlZWFibGVfbWFwcyAqLwotCXN0 cnVjdCBtdXRleCBsb2NrOwotCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOwotCXN0cnVjdCBtbXVfbm90 aWZpZXIgbW47Ci0KLSNpZmRlZiBDT05GSUdfWEVOX0dSQU5UX0RNQV9BTExPQwotCS8qIERldmlj ZSBmb3Igd2hpY2ggRE1BIG1lbW9yeSBpcyBhbGxvY2F0ZWQuICovCi0Jc3RydWN0IGRldmljZSAq ZG1hX2RldjsKLSNlbmRpZgotfTsKLQotc3RydWN0IHVubWFwX25vdGlmeSB7Ci0JaW50IGZsYWdz OwotCS8qIEFkZHJlc3MgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBncmFudF9tYXAgKi8K LQlpbnQgYWRkcjsKLQlpbnQgZXZlbnQ7Ci19OwotCi1zdHJ1Y3QgZ3JhbnRfbWFwIHsKLQlzdHJ1 Y3QgbGlzdF9oZWFkIG5leHQ7Ci0Jc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7Ci0JaW50IGlu ZGV4OwotCWludCBjb3VudDsKLQlpbnQgZmxhZ3M7Ci0JcmVmY291bnRfdCB1c2VyczsKLQlzdHJ1 Y3QgdW5tYXBfbm90aWZ5IG5vdGlmeTsKLQlzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X3JlZiAq Z3JhbnRzOwotCXN0cnVjdCBnbnR0YWJfbWFwX2dyYW50X3JlZiAgICptYXBfb3BzOwotCXN0cnVj dCBnbnR0YWJfdW5tYXBfZ3JhbnRfcmVmICp1bm1hcF9vcHM7Ci0Jc3RydWN0IGdudHRhYl9tYXBf Z3JhbnRfcmVmICAgKmttYXBfb3BzOwotCXN0cnVjdCBnbnR0YWJfdW5tYXBfZ3JhbnRfcmVmICpr dW5tYXBfb3BzOwotCXN0cnVjdCBwYWdlICoqcGFnZXM7Ci0JdW5zaWduZWQgbG9uZyBwYWdlc192 bV9zdGFydDsKLQotI2lmZGVmIENPTkZJR19YRU5fR1JBTlRfRE1BX0FMTE9DCi0JLyoKLQkgKiBJ ZiBkbWFidWZfdmFkZHIgaXMgbm90IE5VTEwgdGhlbiB0aGlzIG1hcHBpbmcgaXMgYmFja2VkIGJ5 IERNQQotCSAqIGNhcGFibGUgbWVtb3J5LgotCSAqLwotCi0Jc3RydWN0IGRldmljZSAqZG1hX2Rl djsKLQkvKiBGbGFncyB1c2VkIHRvIGNyZWF0ZSB0aGlzIERNQSBidWZmZXI6IEdOVERFVl9ETUFf RkxBR19YWFguICovCi0JaW50IGRtYV9mbGFnczsKLQl2b2lkICpkbWFfdmFkZHI7Ci0JZG1hX2Fk ZHJfdCBkbWFfYnVzX2FkZHI7Ci0JLyogTmVlZGVkIHRvIGF2b2lkIGFsbG9jYXRpb24gaW4gZ250 dGFiX2RtYV9mcmVlX3BhZ2VzKCkuICovCi0JeGVuX3Bmbl90ICpmcmFtZXM7Ci0jZW5kaWYKLX07 Ci0KLXN0YXRpYyBpbnQgdW5tYXBfZ3JhbnRfcGFnZXMoc3RydWN0IGdyYW50X21hcCAqbWFwLCBp bnQgb2Zmc2V0LCBpbnQgcGFnZXMpOworc3RhdGljIGludCB1bm1hcF9ncmFudF9wYWdlcyhzdHJ1 Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwLAorCQkJICAgICBpbnQgb2Zmc2V0LCBpbnQgcGFnZXMp OwogCiBzdGF0aWMgc3RydWN0IG1pc2NkZXZpY2UgZ250ZGV2X21pc2NkZXY7CiAKIC8qIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAqLwogCitib29sIGdudGRldl9hY2NvdW50X21hcHBlZF9wYWdlcyhpbnQgY291bnQpCit7 CisJcmV0dXJuIGF0b21pY19hZGRfcmV0dXJuKGNvdW50LCAmcGFnZXNfbWFwcGVkKSA+IGxpbWl0 OworfQorCiBzdGF0aWMgdm9pZCBnbnRkZXZfcHJpbnRfbWFwcyhzdHJ1Y3QgZ250ZGV2X3ByaXYg KnByaXYsCiAJCQkgICAgICBjaGFyICp0ZXh0LCBpbnQgdGV4dF9pbmRleCkKIHsKICNpZmRlZiBE RUJVRwotCXN0cnVjdCBncmFudF9tYXAgKm1hcDsKKwlzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAq bWFwOwogCiAJcHJfZGVidWcoIiVzOiBtYXBzIGxpc3QgKHByaXYgJXApXG4iLCBfX2Z1bmNfXywg cHJpdik7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShtYXAsICZwcml2LT5tYXBzLCBuZXh0KQpAQCAt MTQxLDcgKzkwLDcgQEAgc3RhdGljIHZvaWQgZ250ZGV2X3ByaW50X21hcHMoc3RydWN0IGdudGRl dl9wcml2ICpwcml2LAogI2VuZGlmCiB9CiAKLXN0YXRpYyB2b2lkIGdudGRldl9mcmVlX21hcChz dHJ1Y3QgZ3JhbnRfbWFwICptYXApCitzdGF0aWMgdm9pZCBnbnRkZXZfZnJlZV9tYXAoc3RydWN0 IGdudGRldl9ncmFudF9tYXAgKm1hcCkKIHsKIAlpZiAobWFwID09IE5VTEwpCiAJCXJldHVybjsK QEAgLTE3NiwxMyArMTI1LDEzIEBAIHN0YXRpYyB2b2lkIGdudGRldl9mcmVlX21hcChzdHJ1Y3Qg Z3JhbnRfbWFwICptYXApCiAJa2ZyZWUobWFwKTsKIH0KIAotc3RhdGljIHN0cnVjdCBncmFudF9t YXAgKmdudGRldl9hbGxvY19tYXAoc3RydWN0IGdudGRldl9wcml2ICpwcml2LCBpbnQgY291bnQs CitzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqZ250ZGV2X2FsbG9jX21hcChzdHJ1Y3QgZ250ZGV2 X3ByaXYgKnByaXYsIGludCBjb3VudCwKIAkJCQkJICBpbnQgZG1hX2ZsYWdzKQogewotCXN0cnVj dCBncmFudF9tYXAgKmFkZDsKKwlzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqYWRkOwogCWludCBp OwogCi0JYWRkID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGdyYW50X21hcCksIEdGUF9LRVJORUwp OworCWFkZCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwKSwgR0ZQX0tF Uk5FTCk7CiAJaWYgKE5VTEwgPT0gYWRkKQogCQlyZXR1cm4gTlVMTDsKIApAQCAtMjUyLDkgKzIw MSw5IEBAIHN0YXRpYyBzdHJ1Y3QgZ3JhbnRfbWFwICpnbnRkZXZfYWxsb2NfbWFwKHN0cnVjdCBn bnRkZXZfcHJpdiAqcHJpdiwgaW50IGNvdW50LAogCXJldHVybiBOVUxMOwogfQogCi1zdGF0aWMg dm9pZCBnbnRkZXZfYWRkX21hcChzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIHN0cnVjdCBncmFu dF9tYXAgKmFkZCkKK3ZvaWQgZ250ZGV2X2FkZF9tYXAoc3RydWN0IGdudGRldl9wcml2ICpwcml2 LCBzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqYWRkKQogewotCXN0cnVjdCBncmFudF9tYXAgKm1h cDsKKwlzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRy eShtYXAsICZwcml2LT5tYXBzLCBuZXh0KSB7CiAJCWlmIChhZGQtPmluZGV4ICsgYWRkLT5jb3Vu dCA8IG1hcC0+aW5kZXgpIHsKQEAgLTI2OSwxMCArMjE4LDEwIEBAIHN0YXRpYyB2b2lkIGdudGRl dl9hZGRfbWFwKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgc3RydWN0IGdyYW50X21hcCAqYWRk KQogCWdudGRldl9wcmludF9tYXBzKHByaXYsICJbbmV3XSIsIGFkZC0+aW5kZXgpOwogfQogCi1z dGF0aWMgc3RydWN0IGdyYW50X21hcCAqZ250ZGV2X2ZpbmRfbWFwX2luZGV4KHN0cnVjdCBnbnRk ZXZfcHJpdiAqcHJpdiwKK3N0YXRpYyBzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqZ250ZGV2X2Zp bmRfbWFwX2luZGV4KHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwKIAkJaW50IGluZGV4LCBpbnQg Y291bnQpCiB7Ci0Jc3RydWN0IGdyYW50X21hcCAqbWFwOworCXN0cnVjdCBnbnRkZXZfZ3JhbnRf bWFwICptYXA7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1hcCwgJnByaXYtPm1hcHMsIG5leHQp IHsKIAkJaWYgKG1hcC0+aW5kZXggIT0gaW5kZXgpCkBAIC0yODQsNyArMjMzLDcgQEAgc3RhdGlj IHN0cnVjdCBncmFudF9tYXAgKmdudGRldl9maW5kX21hcF9pbmRleChzdHJ1Y3QgZ250ZGV2X3By aXYgKnByaXYsCiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyB2b2lkIGdudGRldl9wdXRfbWFw KHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgc3RydWN0IGdyYW50X21hcCAqbWFwKQordm9pZCBn bnRkZXZfcHV0X21hcChzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIHN0cnVjdCBnbnRkZXZfZ3Jh bnRfbWFwICptYXApCiB7CiAJaWYgKCFtYXApCiAJCXJldHVybjsKQEAgLTMxNSw3ICsyNjQsNyBA QCBzdGF0aWMgdm9pZCBnbnRkZXZfcHV0X21hcChzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIHN0 cnVjdCBncmFudF9tYXAgKm1hcCkKIHN0YXRpYyBpbnQgZmluZF9ncmFudF9wdGVzKHB0ZV90ICpw dGUsIHBndGFibGVfdCB0b2tlbiwKIAkJdW5zaWduZWQgbG9uZyBhZGRyLCB2b2lkICpkYXRhKQog ewotCXN0cnVjdCBncmFudF9tYXAgKm1hcCA9IGRhdGE7CisJc3RydWN0IGdudGRldl9ncmFudF9t YXAgKm1hcCA9IGRhdGE7CiAJdW5zaWduZWQgaW50IHBnbnIgPSAoYWRkciAtIG1hcC0+dm1hLT52 bV9zdGFydCkgPj4gUEFHRV9TSElGVDsKIAlpbnQgZmxhZ3MgPSBtYXAtPmZsYWdzIHwgR05UTUFQ X2FwcGxpY2F0aW9uX21hcCB8IEdOVE1BUF9jb250YWluc19wdGU7CiAJdTY0IHB0ZV9tYWRkcjsK QEAgLTM0OCw3ICsyOTcsNyBAQCBzdGF0aWMgaW50IHNldF9ncmFudF9wdGVzX2FzX3NwZWNpYWwo cHRlX3QgKnB0ZSwgcGd0YWJsZV90IHRva2VuLAogfQogI2VuZGlmCiAKLXN0YXRpYyBpbnQgbWFw X2dyYW50X3BhZ2VzKHN0cnVjdCBncmFudF9tYXAgKm1hcCkKK2ludCBnbnRkZXZfbWFwX2dyYW50 X3BhZ2VzKHN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXApCiB7CiAJaW50IGksIGVyciA9IDA7 CiAKQEAgLTQxMyw3ICszNjIsOCBAQCBzdGF0aWMgaW50IG1hcF9ncmFudF9wYWdlcyhzdHJ1Y3Qg Z3JhbnRfbWFwICptYXApCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCBfX3VubWFwX2dy YW50X3BhZ2VzKHN0cnVjdCBncmFudF9tYXAgKm1hcCwgaW50IG9mZnNldCwgaW50IHBhZ2VzKQor c3RhdGljIGludCBfX3VubWFwX2dyYW50X3BhZ2VzKHN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICpt YXAsIGludCBvZmZzZXQsCisJCQkgICAgICAgaW50IHBhZ2VzKQogewogCWludCBpLCBlcnIgPSAw OwogCXN0cnVjdCBnbnRhYl91bm1hcF9xdWV1ZV9kYXRhIHVubWFwX2RhdGE7CkBAIC00NDgsNyAr Mzk4LDggQEAgc3RhdGljIGludCBfX3VubWFwX2dyYW50X3BhZ2VzKHN0cnVjdCBncmFudF9tYXAg Km1hcCwgaW50IG9mZnNldCwgaW50IHBhZ2VzKQogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyBp bnQgdW5tYXBfZ3JhbnRfcGFnZXMoc3RydWN0IGdyYW50X21hcCAqbWFwLCBpbnQgb2Zmc2V0LCBp bnQgcGFnZXMpCitzdGF0aWMgaW50IHVubWFwX2dyYW50X3BhZ2VzKHN0cnVjdCBnbnRkZXZfZ3Jh bnRfbWFwICptYXAsIGludCBvZmZzZXQsCisJCQkgICAgIGludCBwYWdlcykKIHsKIAlpbnQgcmFu Z2UsIGVyciA9IDA7CiAKQEAgLTQ4MCw3ICs0MzEsNyBAQCBzdGF0aWMgaW50IHVubWFwX2dyYW50 X3BhZ2VzKHN0cnVjdCBncmFudF9tYXAgKm1hcCwgaW50IG9mZnNldCwgaW50IHBhZ2VzKQogCiBz dGF0aWMgdm9pZCBnbnRkZXZfdm1hX29wZW4oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiB7 Ci0Jc3RydWN0IGdyYW50X21hcCAqbWFwID0gdm1hLT52bV9wcml2YXRlX2RhdGE7CisJc3RydWN0 IGdudGRldl9ncmFudF9tYXAgKm1hcCA9IHZtYS0+dm1fcHJpdmF0ZV9kYXRhOwogCiAJcHJfZGVi dWcoImdudGRldl92bWFfb3BlbiAlcFxuIiwgdm1hKTsKIAlyZWZjb3VudF9pbmMoJm1hcC0+dXNl cnMpOwpAQCAtNDg4LDcgKzQzOSw3IEBAIHN0YXRpYyB2b2lkIGdudGRldl92bWFfb3BlbihzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAogc3RhdGljIHZvaWQgZ250ZGV2X3ZtYV9jbG9zZShz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIHsKLQlzdHJ1Y3QgZ3JhbnRfbWFwICptYXAgPSB2 bWEtPnZtX3ByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwID0gdm1h LT52bV9wcml2YXRlX2RhdGE7CiAJc3RydWN0IGZpbGUgKmZpbGUgPSB2bWEtPnZtX2ZpbGU7CiAJ c3RydWN0IGdudGRldl9wcml2ICpwcml2ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCkBAIC01MTIs NyArNDYzLDcgQEAgc3RhdGljIHZvaWQgZ250ZGV2X3ZtYV9jbG9zZShzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYSkKIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqZ250ZGV2X3ZtYV9maW5kX3NwZWNpYWxf cGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJCQkJCSB1bnNpZ25lZCBsb25nIGFk ZHIpCiB7Ci0Jc3RydWN0IGdyYW50X21hcCAqbWFwID0gdm1hLT52bV9wcml2YXRlX2RhdGE7CisJ c3RydWN0IGdudGRldl9ncmFudF9tYXAgKm1hcCA9IHZtYS0+dm1fcHJpdmF0ZV9kYXRhOwogCiAJ cmV0dXJuIG1hcC0+cGFnZXNbKGFkZHIgLSBtYXAtPnBhZ2VzX3ZtX3N0YXJ0KSA+PiBQQUdFX1NI SUZUXTsKIH0KQEAgLTUyNSw3ICs0NzYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJh dGlvbnNfc3RydWN0IGdudGRldl92bW9wcyA9IHsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLXN0YXRp YyB2b2lkIHVubWFwX2lmX2luX3JhbmdlKHN0cnVjdCBncmFudF9tYXAgKm1hcCwKK3N0YXRpYyB2 b2lkIHVubWFwX2lmX2luX3JhbmdlKHN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXAsCiAJCQkg ICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKIHsKIAl1bnNpZ25l ZCBsb25nIG1zdGFydCwgbWVuZDsKQEAgLTU1NCw3ICs1MDUsNyBAQCBzdGF0aWMgdm9pZCBtbl9p bnZsX3JhbmdlX3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAogCQkJCXVuc2lnbmVkIGxv bmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQogewogCXN0cnVjdCBnbnRkZXZfcHJpdiAqcHJp diA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGdudGRldl9wcml2LCBtbik7Ci0Jc3RydWN0IGdy YW50X21hcCAqbWFwOworCXN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXA7CiAKIAltdXRleF9s b2NrKCZwcml2LT5sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1hcCwgJnByaXYtPm1hcHMs IG5leHQpIHsKQEAgLTU3MCw3ICs1MjEsNyBAQCBzdGF0aWMgdm9pZCBtbl9yZWxlYXNlKHN0cnVj dCBtbXVfbm90aWZpZXIgKm1uLAogCQkgICAgICAgc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7CiAJ c3RydWN0IGdudGRldl9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKG1uLCBzdHJ1Y3QgZ250ZGV2 X3ByaXYsIG1uKTsKLQlzdHJ1Y3QgZ3JhbnRfbWFwICptYXA7CisJc3RydWN0IGdudGRldl9ncmFu dF9tYXAgKm1hcDsKIAlpbnQgZXJyOwogCiAJbXV0ZXhfbG9jaygmcHJpdi0+bG9jayk7CkBAIC02 NTEsMTMgKzYwMiwxNCBAQCBzdGF0aWMgaW50IGdudGRldl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIHN0cnVjdCBmaWxlICpmbGlwKQogc3RhdGljIGludCBnbnRkZXZfcmVsZWFzZShzdHJ1Y3Qg aW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmxpcCkKIHsKIAlzdHJ1Y3QgZ250ZGV2X3ByaXYg KnByaXYgPSBmbGlwLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IGdyYW50X21hcCAqbWFwOworCXN0 cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXA7CiAKIAlwcl9kZWJ1ZygicHJpdiAlcFxuIiwgcHJp dik7CiAKIAltdXRleF9sb2NrKCZwcml2LT5sb2NrKTsKIAl3aGlsZSAoIWxpc3RfZW1wdHkoJnBy aXYtPm1hcHMpKSB7Ci0JCW1hcCA9IGxpc3RfZW50cnkocHJpdi0+bWFwcy5uZXh0LCBzdHJ1Y3Qg Z3JhbnRfbWFwLCBuZXh0KTsKKwkJbWFwID0gbGlzdF9lbnRyeShwcml2LT5tYXBzLm5leHQsCisJ CQkJIHN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwLCBuZXh0KTsKIAkJbGlzdF9kZWwoJm1hcC0+bmV4 dCk7CiAJCWdudGRldl9wdXRfbWFwKE5VTEwgLyogYWxyZWFkeSByZW1vdmVkICovLCBtYXApOwog CX0KQEAgLTY3NCw3ICs2MjYsNyBAQCBzdGF0aWMgbG9uZyBnbnRkZXZfaW9jdGxfbWFwX2dyYW50 X3JlZihzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsCiAJCQkJICAgICAgIHN0cnVjdCBpb2N0bF9n bnRkZXZfbWFwX2dyYW50X3JlZiBfX3VzZXIgKnUpCiB7CiAJc3RydWN0IGlvY3RsX2dudGRldl9t YXBfZ3JhbnRfcmVmIG9wOwotCXN0cnVjdCBncmFudF9tYXAgKm1hcDsKKwlzdHJ1Y3QgZ250ZGV2 X2dyYW50X21hcCAqbWFwOwogCWludCBlcnI7CiAKIAlpZiAoY29weV9mcm9tX3VzZXIoJm9wLCB1 LCBzaXplb2Yob3ApKSAhPSAwKQpAQCAtNjg4LDcgKzY0MCw3IEBAIHN0YXRpYyBsb25nIGdudGRl dl9pb2N0bF9tYXBfZ3JhbnRfcmVmKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwKIAlpZiAoIW1h cCkKIAkJcmV0dXJuIGVycjsKIAotCWlmICh1bmxpa2VseShhdG9taWNfYWRkX3JldHVybihvcC5j b3VudCwgJnBhZ2VzX21hcHBlZCkgPiBsaW1pdCkpIHsKKwlpZiAodW5saWtlbHkoZ250ZGV2X2Fj Y291bnRfbWFwcGVkX3BhZ2VzKG9wLmNvdW50KSkpIHsKIAkJcHJfZGVidWcoImNhbid0IG1hcDog b3ZlciBsaW1pdFxuIik7CiAJCWdudGRldl9wdXRfbWFwKE5VTEwsIG1hcCk7CiAJCXJldHVybiBl cnI7CkBAIC03MTUsNyArNjY3LDcgQEAgc3RhdGljIGxvbmcgZ250ZGV2X2lvY3RsX3VubWFwX2dy YW50X3JlZihzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsCiAJCQkJCSBzdHJ1Y3QgaW9jdGxfZ250 ZGV2X3VubWFwX2dyYW50X3JlZiBfX3VzZXIgKnUpCiB7CiAJc3RydWN0IGlvY3RsX2dudGRldl91 bm1hcF9ncmFudF9yZWYgb3A7Ci0Jc3RydWN0IGdyYW50X21hcCAqbWFwOworCXN0cnVjdCBnbnRk ZXZfZ3JhbnRfbWFwICptYXA7CiAJaW50IGVyciA9IC1FTk9FTlQ7CiAKIAlpZiAoY29weV9mcm9t X3VzZXIoJm9wLCB1LCBzaXplb2Yob3ApKSAhPSAwKQpAQCAtNzQxLDcgKzY5Myw3IEBAIHN0YXRp YyBsb25nIGdudGRldl9pb2N0bF9nZXRfb2Zmc2V0X2Zvcl92YWRkcihzdHJ1Y3QgZ250ZGV2X3By aXYgKnByaXYsCiB7CiAJc3RydWN0IGlvY3RsX2dudGRldl9nZXRfb2Zmc2V0X2Zvcl92YWRkciBv cDsKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYTsKLQlzdHJ1Y3QgZ3JhbnRfbWFwICptYXA7 CisJc3RydWN0IGdudGRldl9ncmFudF9tYXAgKm1hcDsKIAlpbnQgcnYgPSAtRUlOVkFMOwogCiAJ aWYgKGNvcHlfZnJvbV91c2VyKCZvcCwgdSwgc2l6ZW9mKG9wKSkgIT0gMCkKQEAgLTc3Miw3ICs3 MjQsNyBAQCBzdGF0aWMgbG9uZyBnbnRkZXZfaW9jdGxfZ2V0X29mZnNldF9mb3JfdmFkZHIoc3Ry dWN0IGdudGRldl9wcml2ICpwcml2LAogc3RhdGljIGxvbmcgZ250ZGV2X2lvY3RsX25vdGlmeShz dHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIHZvaWQgX191c2VyICp1KQogewogCXN0cnVjdCBpb2N0 bF9nbnRkZXZfdW5tYXBfbm90aWZ5IG9wOwotCXN0cnVjdCBncmFudF9tYXAgKm1hcDsKKwlzdHJ1 Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwOwogCWludCByYzsKIAlpbnQgb3V0X2ZsYWdzOwogCXVu c2lnbmVkIGludCBvdXRfZXZlbnQ7CkBAIC0xMDcwLDcgKzEwMjIsNyBAQCBzdGF0aWMgaW50IGdu dGRldl9tbWFwKHN0cnVjdCBmaWxlICpmbGlwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkK IAlzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYgPSBmbGlwLT5wcml2YXRlX2RhdGE7CiAJaW50IGlu ZGV4ID0gdm1hLT52bV9wZ29mZjsKIAlpbnQgY291bnQgPSB2bWFfcGFnZXModm1hKTsKLQlzdHJ1 Y3QgZ3JhbnRfbWFwICptYXA7CisJc3RydWN0IGdudGRldl9ncmFudF9tYXAgKm1hcDsKIAlpbnQg aSwgZXJyID0gLUVJTlZBTDsKIAogCWlmICgodm1hLT52bV9mbGFncyAmIFZNX1dSSVRFKSAmJiAh KHZtYS0+dm1fZmxhZ3MgJiBWTV9TSEFSRUQpKQpAQCAtMTEyNyw3ICsxMDc5LDcgQEAgc3RhdGlj IGludCBnbnRkZXZfbW1hcChzdHJ1Y3QgZmlsZSAqZmxpcCwgc3RydWN0IHZtX2FyZWFfc3RydWN0 ICp2bWEpCiAJCX0KIAl9CiAKLQllcnIgPSBtYXBfZ3JhbnRfcGFnZXMobWFwKTsKKwllcnIgPSBn bnRkZXZfbWFwX2dyYW50X3BhZ2VzKG1hcCk7CiAJaWYgKGVycikKIAkJZ290byBvdXRfcHV0X21h cDsKIAotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK