From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v4 6/9] xen/gntdev: Make private routines/structures accessible Date: Fri, 15 Jun 2018 09:27:50 +0300 Message-ID: <20180615062753.9229-7-andr2000@gmail.com> References: <20180615062753.9229-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-x241.google.com (mail-lf0-x241.google.com [IPv6:2a00:1450:4010:c07::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9F94E6E987 for ; Fri, 15 Jun 2018 06:28:13 +0000 (UTC) Received: by mail-lf0-x241.google.com with SMTP id v135-v6so12977440lfa.9 for ; Thu, 14 Jun 2018 23:28:13 -0700 (PDT) In-Reply-To: <20180615062753.9229-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 b0BlcGFtLmNvbT4KUmV2aWV3ZWQtYnk6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5 QG9yYWNsZS5jb20+Ci0tLQogZHJpdmVycy94ZW4vZ250ZGV2LWNvbW1vbi5oIHwgIDg4ICsrKysr KysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL3hlbi9nbnRkZXYuYyAgICAgICAgfCAxMzQgKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzMSBp bnNlcnRpb25zKCspLCA5MSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L3hlbi9nbnRkZXYtY29tbW9uLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9nbnRkZXYtY29t bW9uLmggYi9kcml2ZXJzL3hlbi9nbnRkZXYtY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi4yMzQ2YzE5OGY3MmUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2 ZXJzL3hlbi9nbnRkZXYtY29tbW9uLmgKQEAgLTAsMCArMSw4OCBAQAorLyogU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKworLyoKKyAqIENvbW1vbiBmdW5jdGlvbmFsaXR5IG9m IGdyYW50IGRldmljZS4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwNywgRCBHIE11cnJh eS4KKyAqICAgICAgICAgICAoYykgMjAwOSBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNv bT4KKyAqICAgICAgICAgICAoYykgMjAxOCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbywgRVBBTSBT eXN0ZW1zIEluYy4KKyAqLworCisjaWZuZGVmIF9HTlRERVZfQ09NTU9OX0gKKyNkZWZpbmUgX0dO VERFVl9DT01NT05fSAorCisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9t bWFuLmg+CisjaW5jbHVkZSA8bGludXgvbW11X25vdGlmaWVyLmg+CisjaW5jbHVkZSA8bGludXgv dHlwZXMuaD4KKworc3RydWN0IGdudGRldl9wcml2IHsKKwkvKiBNYXBzIHdpdGggdmlzaWJsZSBv ZmZzZXRzIGluIHRoZSBmaWxlIGRlc2NyaXB0b3IuICovCisJc3RydWN0IGxpc3RfaGVhZCBtYXBz OworCS8qCisJICogTWFwcyB0aGF0IGFyZSBub3QgdmlzaWJsZTsgd2lsbCBiZSBmcmVlZCBvbiBt dW5tYXAuCisJICogT25seSBwb3B1bGF0ZWQgaWYgcG9wdWxhdGVfZnJlZWFibGVfbWFwcyA9PSAx CisJICovCisJc3RydWN0IGxpc3RfaGVhZCBmcmVlYWJsZV9tYXBzOworCS8qIGxvY2sgcHJvdGVj dHMgbWFwcyBhbmQgZnJlZWFibGVfbWFwcy4gKi8KKwlzdHJ1Y3QgbXV0ZXggbG9jazsKKwlzdHJ1 Y3QgbW1fc3RydWN0ICptbTsKKwlzdHJ1Y3QgbW11X25vdGlmaWVyIG1uOworCisjaWZkZWYgQ09O RklHX1hFTl9HUkFOVF9ETUFfQUxMT0MKKwkvKiBEZXZpY2UgZm9yIHdoaWNoIERNQSBtZW1vcnkg aXMgYWxsb2NhdGVkLiAqLworCXN0cnVjdCBkZXZpY2UgKmRtYV9kZXY7CisjZW5kaWYKK307CisK K3N0cnVjdCBnbnRkZXZfdW5tYXBfbm90aWZ5IHsKKwlpbnQgZmxhZ3M7CisJLyogQWRkcmVzcyBy ZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIGdudGRldl9ncmFudF9tYXAuICovCisJaW50IGFk ZHI7CisJaW50IGV2ZW50OworfTsKKworc3RydWN0IGdudGRldl9ncmFudF9tYXAgeworCXN0cnVj dCBsaXN0X2hlYWQgbmV4dDsKKwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYTsKKwlpbnQgaW5k ZXg7CisJaW50IGNvdW50OworCWludCBmbGFnczsKKwlyZWZjb3VudF90IHVzZXJzOworCXN0cnVj dCBnbnRkZXZfdW5tYXBfbm90aWZ5IG5vdGlmeTsKKwlzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50 X3JlZiAqZ3JhbnRzOworCXN0cnVjdCBnbnR0YWJfbWFwX2dyYW50X3JlZiAgICptYXBfb3BzOwor CXN0cnVjdCBnbnR0YWJfdW5tYXBfZ3JhbnRfcmVmICp1bm1hcF9vcHM7CisJc3RydWN0IGdudHRh Yl9tYXBfZ3JhbnRfcmVmICAgKmttYXBfb3BzOworCXN0cnVjdCBnbnR0YWJfdW5tYXBfZ3JhbnRf cmVmICprdW5tYXBfb3BzOworCXN0cnVjdCBwYWdlICoqcGFnZXM7CisJdW5zaWduZWQgbG9uZyBw YWdlc192bV9zdGFydDsKKworI2lmZGVmIENPTkZJR19YRU5fR1JBTlRfRE1BX0FMTE9DCisJLyoK KwkgKiBJZiBkbWFidWZfdmFkZHIgaXMgbm90IE5VTEwgdGhlbiB0aGlzIG1hcHBpbmcgaXMgYmFj a2VkIGJ5IERNQQorCSAqIGNhcGFibGUgbWVtb3J5LgorCSAqLworCisJc3RydWN0IGRldmljZSAq ZG1hX2RldjsKKwkvKiBGbGFncyB1c2VkIHRvIGNyZWF0ZSB0aGlzIERNQSBidWZmZXI6IEdOVERF Vl9ETUFfRkxBR19YWFguICovCisJaW50IGRtYV9mbGFnczsKKwl2b2lkICpkbWFfdmFkZHI7CisJ ZG1hX2FkZHJfdCBkbWFfYnVzX2FkZHI7CisJLyogTmVlZGVkIHRvIGF2b2lkIGFsbG9jYXRpb24g aW4gZ250dGFiX2RtYV9mcmVlX3BhZ2VzKCkuICovCisJeGVuX3Bmbl90ICpmcmFtZXM7CisjZW5k aWYKK307CisKK3N0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICpnbnRkZXZfYWxsb2NfbWFwKHN0cnVj dCBnbnRkZXZfcHJpdiAqcHJpdiwgaW50IGNvdW50LAorCQkJCQkgIGludCBkbWFfZmxhZ3MpOwor Cit2b2lkIGdudGRldl9hZGRfbWFwKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgc3RydWN0IGdu dGRldl9ncmFudF9tYXAgKmFkZCk7CisKK3ZvaWQgZ250ZGV2X3B1dF9tYXAoc3RydWN0IGdudGRl dl9wcml2ICpwcml2LCBzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwKTsKKworYm9vbCBnbnRk ZXZfYWNjb3VudF9tYXBwZWRfcGFnZXMoaW50IGNvdW50KTsKKworaW50IGdudGRldl9tYXBfZ3Jh bnRfcGFnZXMoc3RydWN0IGdudGRldl9ncmFudF9tYXAgKm1hcCk7CisKKyNlbmRpZgpkaWZmIC0t Z2l0IGEvZHJpdmVycy94ZW4vZ250ZGV2LmMgYi9kcml2ZXJzL3hlbi9nbnRkZXYuYwppbmRleCAw ZWM2NzBkMWQ0ZTcuLjMzODVmYzRlZDM4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vZ250ZGV2 LmMKKysrIGIvZHJpdmVycy94ZW4vZ250ZGV2LmMKQEAgLTYsNiArNiw3IEBACiAgKgogICogQ29w eXJpZ2h0IChjKSAyMDA2LTIwMDcsIEQgRyBNdXJyYXkuCiAgKiAgICAgICAgICAgKGMpIDIwMDkg R2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+CisgKiAgICAgICAgICAgKGMpIDIwMTgg T2xla3NhbmRyIEFuZHJ1c2hjaGVua28sIEVQQU0gU3lzdGVtcyBJbmMuCiAgKgogICogVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CiAgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgpAQCAtMjYsMTAgKzI3LDYgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAj aW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+Ci0jaW5j bHVkZSA8bGludXgvbW0uaD4KLSNpbmNsdWRlIDxsaW51eC9tbWFuLmg+Ci0jaW5jbHVkZSA8bGlu dXgvbW11X25vdGlmaWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxs aW51eC91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51 eC9zY2hlZC9tbS5oPgpAQCAtNTAsNiArNDcsOCBAQAogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJ2 aXNvci5oPgogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJjYWxsLmg+CiAKKyNpbmNsdWRlICJnbnRk ZXYtY29tbW9uLmgiCisKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9BVVRIT1IoIkRl cmVrIEcuIE11cnJheSA8RGVyZWsuTXVycmF5QGNsLmNhbS5hYy51az4sICIKIAkgICAgICAiR2Vy ZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+Iik7CkBAIC02NSw3MyArNjQsMjMgQEAgc3Rh dGljIGF0b21pY190IHBhZ2VzX21hcHBlZCA9IEFUT01JQ19JTklUKDApOwogc3RhdGljIGludCB1 c2VfcHRlbW9kOwogI2RlZmluZSBwb3B1bGF0ZV9mcmVlYWJsZV9tYXBzIHVzZV9wdGVtb2QKIAot c3RydWN0IGdudGRldl9wcml2IHsKLQkvKiBtYXBzIHdpdGggdmlzaWJsZSBvZmZzZXRzIGluIHRo ZSBmaWxlIGRlc2NyaXB0b3IgKi8KLQlzdHJ1Y3QgbGlzdF9oZWFkIG1hcHM7Ci0JLyogbWFwcyB0 aGF0IGFyZSBub3QgdmlzaWJsZTsgd2lsbCBiZSBmcmVlZCBvbiBtdW5tYXAuCi0JICogT25seSBw b3B1bGF0ZWQgaWYgcG9wdWxhdGVfZnJlZWFibGVfbWFwcyA9PSAxICovCi0Jc3RydWN0IGxpc3Rf aGVhZCBmcmVlYWJsZV9tYXBzOwotCS8qIGxvY2sgcHJvdGVjdHMgbWFwcyBhbmQgZnJlZWFibGVf bWFwcyAqLwotCXN0cnVjdCBtdXRleCBsb2NrOwotCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOwotCXN0 cnVjdCBtbXVfbm90aWZpZXIgbW47Ci0KLSNpZmRlZiBDT05GSUdfWEVOX0dSQU5UX0RNQV9BTExP QwotCS8qIERldmljZSBmb3Igd2hpY2ggRE1BIG1lbW9yeSBpcyBhbGxvY2F0ZWQuICovCi0Jc3Ry dWN0IGRldmljZSAqZG1hX2RldjsKLSNlbmRpZgotfTsKLQotc3RydWN0IHVubWFwX25vdGlmeSB7 Ci0JaW50IGZsYWdzOwotCS8qIEFkZHJlc3MgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBn cmFudF9tYXAgKi8KLQlpbnQgYWRkcjsKLQlpbnQgZXZlbnQ7Ci19OwotCi1zdHJ1Y3QgZ3JhbnRf bWFwIHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIG5leHQ7Ci0Jc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWE7Ci0JaW50IGluZGV4OwotCWludCBjb3VudDsKLQlpbnQgZmxhZ3M7Ci0JcmVmY291bnRfdCB1 c2VyczsKLQlzdHJ1Y3QgdW5tYXBfbm90aWZ5IG5vdGlmeTsKLQlzdHJ1Y3QgaW9jdGxfZ250ZGV2 X2dyYW50X3JlZiAqZ3JhbnRzOwotCXN0cnVjdCBnbnR0YWJfbWFwX2dyYW50X3JlZiAgICptYXBf b3BzOwotCXN0cnVjdCBnbnR0YWJfdW5tYXBfZ3JhbnRfcmVmICp1bm1hcF9vcHM7Ci0Jc3RydWN0 IGdudHRhYl9tYXBfZ3JhbnRfcmVmICAgKmttYXBfb3BzOwotCXN0cnVjdCBnbnR0YWJfdW5tYXBf Z3JhbnRfcmVmICprdW5tYXBfb3BzOwotCXN0cnVjdCBwYWdlICoqcGFnZXM7Ci0JdW5zaWduZWQg bG9uZyBwYWdlc192bV9zdGFydDsKLQotI2lmZGVmIENPTkZJR19YRU5fR1JBTlRfRE1BX0FMTE9D Ci0JLyoKLQkgKiBJZiBkbWFidWZfdmFkZHIgaXMgbm90IE5VTEwgdGhlbiB0aGlzIG1hcHBpbmcg aXMgYmFja2VkIGJ5IERNQQotCSAqIGNhcGFibGUgbWVtb3J5LgotCSAqLwotCi0Jc3RydWN0IGRl dmljZSAqZG1hX2RldjsKLQkvKiBGbGFncyB1c2VkIHRvIGNyZWF0ZSB0aGlzIERNQSBidWZmZXI6 IEdOVERFVl9ETUFfRkxBR19YWFguICovCi0JaW50IGRtYV9mbGFnczsKLQl2b2lkICpkbWFfdmFk ZHI7Ci0JZG1hX2FkZHJfdCBkbWFfYnVzX2FkZHI7Ci0JLyogTmVlZGVkIHRvIGF2b2lkIGFsbG9j YXRpb24gaW4gZ250dGFiX2RtYV9mcmVlX3BhZ2VzKCkuICovCi0JeGVuX3Bmbl90ICpmcmFtZXM7 Ci0jZW5kaWYKLX07Ci0KLXN0YXRpYyBpbnQgdW5tYXBfZ3JhbnRfcGFnZXMoc3RydWN0IGdyYW50 X21hcCAqbWFwLCBpbnQgb2Zmc2V0LCBpbnQgcGFnZXMpOworc3RhdGljIGludCB1bm1hcF9ncmFu dF9wYWdlcyhzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwLAorCQkJICAgICBpbnQgb2Zmc2V0 LCBpbnQgcGFnZXMpOwogCiBzdGF0aWMgc3RydWN0IG1pc2NkZXZpY2UgZ250ZGV2X21pc2NkZXY7 CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSAqLwogCitib29sIGdudGRldl9hY2NvdW50X21hcHBlZF9wYWdlcyhp bnQgY291bnQpCit7CisJcmV0dXJuIGF0b21pY19hZGRfcmV0dXJuKGNvdW50LCAmcGFnZXNfbWFw cGVkKSA+IGxpbWl0OworfQorCiBzdGF0aWMgdm9pZCBnbnRkZXZfcHJpbnRfbWFwcyhzdHJ1Y3Qg Z250ZGV2X3ByaXYgKnByaXYsCiAJCQkgICAgICBjaGFyICp0ZXh0LCBpbnQgdGV4dF9pbmRleCkK IHsKICNpZmRlZiBERUJVRwotCXN0cnVjdCBncmFudF9tYXAgKm1hcDsKKwlzdHJ1Y3QgZ250ZGV2 X2dyYW50X21hcCAqbWFwOwogCiAJcHJfZGVidWcoIiVzOiBtYXBzIGxpc3QgKHByaXYgJXApXG4i LCBfX2Z1bmNfXywgcHJpdik7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShtYXAsICZwcml2LT5tYXBz LCBuZXh0KQpAQCAtMTQxLDcgKzkwLDcgQEAgc3RhdGljIHZvaWQgZ250ZGV2X3ByaW50X21hcHMo c3RydWN0IGdudGRldl9wcml2ICpwcml2LAogI2VuZGlmCiB9CiAKLXN0YXRpYyB2b2lkIGdudGRl dl9mcmVlX21hcChzdHJ1Y3QgZ3JhbnRfbWFwICptYXApCitzdGF0aWMgdm9pZCBnbnRkZXZfZnJl ZV9tYXAoc3RydWN0IGdudGRldl9ncmFudF9tYXAgKm1hcCkKIHsKIAlpZiAobWFwID09IE5VTEwp CiAJCXJldHVybjsKQEAgLTE3NiwxMyArMTI1LDEzIEBAIHN0YXRpYyB2b2lkIGdudGRldl9mcmVl X21hcChzdHJ1Y3QgZ3JhbnRfbWFwICptYXApCiAJa2ZyZWUobWFwKTsKIH0KIAotc3RhdGljIHN0 cnVjdCBncmFudF9tYXAgKmdudGRldl9hbGxvY19tYXAoc3RydWN0IGdudGRldl9wcml2ICpwcml2 LCBpbnQgY291bnQsCitzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqZ250ZGV2X2FsbG9jX21hcChz dHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIGludCBjb3VudCwKIAkJCQkJICBpbnQgZG1hX2ZsYWdz KQogewotCXN0cnVjdCBncmFudF9tYXAgKmFkZDsKKwlzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAq YWRkOwogCWludCBpOwogCi0JYWRkID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGdyYW50X21hcCks IEdGUF9LRVJORUwpOworCWFkZCA9IGt6YWxsb2Moc2l6ZW9mKCphZGQpLCBHRlBfS0VSTkVMKTsK IAlpZiAoTlVMTCA9PSBhZGQpCiAJCXJldHVybiBOVUxMOwogCkBAIC0yNTIsOSArMjAxLDkgQEAg c3RhdGljIHN0cnVjdCBncmFudF9tYXAgKmdudGRldl9hbGxvY19tYXAoc3RydWN0IGdudGRldl9w cml2ICpwcml2LCBpbnQgY291bnQsCiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyB2b2lkIGdu dGRldl9hZGRfbWFwKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgc3RydWN0IGdyYW50X21hcCAq YWRkKQordm9pZCBnbnRkZXZfYWRkX21hcChzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIHN0cnVj dCBnbnRkZXZfZ3JhbnRfbWFwICphZGQpCiB7Ci0Jc3RydWN0IGdyYW50X21hcCAqbWFwOworCXN0 cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXA7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1hcCwg JnByaXYtPm1hcHMsIG5leHQpIHsKIAkJaWYgKGFkZC0+aW5kZXggKyBhZGQtPmNvdW50IDwgbWFw LT5pbmRleCkgewpAQCAtMjY5LDEwICsyMTgsMTAgQEAgc3RhdGljIHZvaWQgZ250ZGV2X2FkZF9t YXAoc3RydWN0IGdudGRldl9wcml2ICpwcml2LCBzdHJ1Y3QgZ3JhbnRfbWFwICphZGQpCiAJZ250 ZGV2X3ByaW50X21hcHMocHJpdiwgIltuZXddIiwgYWRkLT5pbmRleCk7CiB9CiAKLXN0YXRpYyBz dHJ1Y3QgZ3JhbnRfbWFwICpnbnRkZXZfZmluZF9tYXBfaW5kZXgoc3RydWN0IGdudGRldl9wcml2 ICpwcml2LAotCQlpbnQgaW5kZXgsIGludCBjb3VudCkKK3N0YXRpYyBzdHJ1Y3QgZ250ZGV2X2dy YW50X21hcCAqZ250ZGV2X2ZpbmRfbWFwX2luZGV4KHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwK KwkJCQkJCSAgICAgIGludCBpbmRleCwgaW50IGNvdW50KQogewotCXN0cnVjdCBncmFudF9tYXAg Km1hcDsKKwlzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwOwogCiAJbGlzdF9mb3JfZWFjaF9l bnRyeShtYXAsICZwcml2LT5tYXBzLCBuZXh0KSB7CiAJCWlmIChtYXAtPmluZGV4ICE9IGluZGV4 KQpAQCAtMjg0LDcgKzIzMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZ3JhbnRfbWFwICpnbnRkZXZfZmlu ZF9tYXBfaW5kZXgoc3RydWN0IGdudGRldl9wcml2ICpwcml2LAogCXJldHVybiBOVUxMOwogfQog Ci1zdGF0aWMgdm9pZCBnbnRkZXZfcHV0X21hcChzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYsIHN0 cnVjdCBncmFudF9tYXAgKm1hcCkKK3ZvaWQgZ250ZGV2X3B1dF9tYXAoc3RydWN0IGdudGRldl9w cml2ICpwcml2LCBzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwKQogewogCWlmICghbWFwKQog CQlyZXR1cm47CkBAIC0zMTUsNyArMjY0LDcgQEAgc3RhdGljIHZvaWQgZ250ZGV2X3B1dF9tYXAo c3RydWN0IGdudGRldl9wcml2ICpwcml2LCBzdHJ1Y3QgZ3JhbnRfbWFwICptYXApCiBzdGF0aWMg aW50IGZpbmRfZ3JhbnRfcHRlcyhwdGVfdCAqcHRlLCBwZ3RhYmxlX3QgdG9rZW4sCiAJCXVuc2ln bmVkIGxvbmcgYWRkciwgdm9pZCAqZGF0YSkKIHsKLQlzdHJ1Y3QgZ3JhbnRfbWFwICptYXAgPSBk YXRhOworCXN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXAgPSBkYXRhOwogCXVuc2lnbmVkIGlu dCBwZ25yID0gKGFkZHIgLSBtYXAtPnZtYS0+dm1fc3RhcnQpID4+IFBBR0VfU0hJRlQ7CiAJaW50 IGZsYWdzID0gbWFwLT5mbGFncyB8IEdOVE1BUF9hcHBsaWNhdGlvbl9tYXAgfCBHTlRNQVBfY29u dGFpbnNfcHRlOwogCXU2NCBwdGVfbWFkZHI7CkBAIC0zNDgsNyArMjk3LDcgQEAgc3RhdGljIGlu dCBzZXRfZ3JhbnRfcHRlc19hc19zcGVjaWFsKHB0ZV90ICpwdGUsIHBndGFibGVfdCB0b2tlbiwK IH0KICNlbmRpZgogCi1zdGF0aWMgaW50IG1hcF9ncmFudF9wYWdlcyhzdHJ1Y3QgZ3JhbnRfbWFw ICptYXApCitpbnQgZ250ZGV2X21hcF9ncmFudF9wYWdlcyhzdHJ1Y3QgZ250ZGV2X2dyYW50X21h cCAqbWFwKQogewogCWludCBpLCBlcnIgPSAwOwogCkBAIC00MTMsNyArMzYyLDggQEAgc3RhdGlj IGludCBtYXBfZ3JhbnRfcGFnZXMoc3RydWN0IGdyYW50X21hcCAqbWFwKQogCXJldHVybiBlcnI7 CiB9CiAKLXN0YXRpYyBpbnQgX191bm1hcF9ncmFudF9wYWdlcyhzdHJ1Y3QgZ3JhbnRfbWFwICpt YXAsIGludCBvZmZzZXQsIGludCBwYWdlcykKK3N0YXRpYyBpbnQgX191bm1hcF9ncmFudF9wYWdl cyhzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwLCBpbnQgb2Zmc2V0LAorCQkJICAgICAgIGlu dCBwYWdlcykKIHsKIAlpbnQgaSwgZXJyID0gMDsKIAlzdHJ1Y3QgZ250YWJfdW5tYXBfcXVldWVf ZGF0YSB1bm1hcF9kYXRhOwpAQCAtNDQ4LDcgKzM5OCw4IEBAIHN0YXRpYyBpbnQgX191bm1hcF9n cmFudF9wYWdlcyhzdHJ1Y3QgZ3JhbnRfbWFwICptYXAsIGludCBvZmZzZXQsIGludCBwYWdlcykK IAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgaW50IHVubWFwX2dyYW50X3BhZ2VzKHN0cnVjdCBn cmFudF9tYXAgKm1hcCwgaW50IG9mZnNldCwgaW50IHBhZ2VzKQorc3RhdGljIGludCB1bm1hcF9n cmFudF9wYWdlcyhzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwLCBpbnQgb2Zmc2V0LAorCQkJ ICAgICBpbnQgcGFnZXMpCiB7CiAJaW50IHJhbmdlLCBlcnIgPSAwOwogCkBAIC00ODAsNyArNDMx LDcgQEAgc3RhdGljIGludCB1bm1hcF9ncmFudF9wYWdlcyhzdHJ1Y3QgZ3JhbnRfbWFwICptYXAs IGludCBvZmZzZXQsIGludCBwYWdlcykKIAogc3RhdGljIHZvaWQgZ250ZGV2X3ZtYV9vcGVuKHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogewotCXN0cnVjdCBncmFudF9tYXAgKm1hcCA9IHZt YS0+dm1fcHJpdmF0ZV9kYXRhOworCXN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXAgPSB2bWEt PnZtX3ByaXZhdGVfZGF0YTsKIAogCXByX2RlYnVnKCJnbnRkZXZfdm1hX29wZW4gJXBcbiIsIHZt YSk7CiAJcmVmY291bnRfaW5jKCZtYXAtPnVzZXJzKTsKQEAgLTQ4OCw3ICs0MzksNyBAQCBzdGF0 aWMgdm9pZCBnbnRkZXZfdm1hX29wZW4oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAKIHN0 YXRpYyB2b2lkIGdudGRldl92bWFfY2xvc2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiB7 Ci0Jc3RydWN0IGdyYW50X21hcCAqbWFwID0gdm1hLT52bV9wcml2YXRlX2RhdGE7CisJc3RydWN0 IGdudGRldl9ncmFudF9tYXAgKm1hcCA9IHZtYS0+dm1fcHJpdmF0ZV9kYXRhOwogCXN0cnVjdCBm aWxlICpmaWxlID0gdm1hLT52bV9maWxlOwogCXN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiA9IGZp bGUtPnByaXZhdGVfZGF0YTsKIApAQCAtNTEyLDcgKzQ2Myw3IEBAIHN0YXRpYyB2b2lkIGdudGRl dl92bWFfY2xvc2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiBzdGF0aWMgc3RydWN0IHBh Z2UgKmdudGRldl92bWFfZmluZF9zcGVjaWFsX3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEsCiAJCQkJCQkgdW5zaWduZWQgbG9uZyBhZGRyKQogewotCXN0cnVjdCBncmFudF9tYXAgKm1h cCA9IHZtYS0+dm1fcHJpdmF0ZV9kYXRhOworCXN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXAg PSB2bWEtPnZtX3ByaXZhdGVfZGF0YTsKIAogCXJldHVybiBtYXAtPnBhZ2VzWyhhZGRyIC0gbWFw LT5wYWdlc192bV9zdGFydCkgPj4gUEFHRV9TSElGVF07CiB9CkBAIC01MjUsNyArNDc2LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCBnbnRkZXZfdm1vcHMgPSB7 CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSAqLwogCi1zdGF0aWMgdm9pZCB1bm1hcF9pZl9pbl9yYW5nZShzdHJ1 Y3QgZ3JhbnRfbWFwICptYXAsCitzdGF0aWMgdm9pZCB1bm1hcF9pZl9pbl9yYW5nZShzdHJ1Y3Qg Z250ZGV2X2dyYW50X21hcCAqbWFwLAogCQkJICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5z aWduZWQgbG9uZyBlbmQpCiB7CiAJdW5zaWduZWQgbG9uZyBtc3RhcnQsIG1lbmQ7CkBAIC01NTQs NyArNTA1LDcgQEAgc3RhdGljIHZvaWQgbW5faW52bF9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25v dGlmaWVyICptbiwKIAkJCQl1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkK IHsKIAlzdHJ1Y3QgZ250ZGV2X3ByaXYgKnByaXYgPSBjb250YWluZXJfb2YobW4sIHN0cnVjdCBn bnRkZXZfcHJpdiwgbW4pOwotCXN0cnVjdCBncmFudF9tYXAgKm1hcDsKKwlzdHJ1Y3QgZ250ZGV2 X2dyYW50X21hcCAqbWFwOwogCiAJbXV0ZXhfbG9jaygmcHJpdi0+bG9jayk7CiAJbGlzdF9mb3Jf ZWFjaF9lbnRyeShtYXAsICZwcml2LT5tYXBzLCBuZXh0KSB7CkBAIC01NzAsNyArNTIxLDcgQEAg c3RhdGljIHZvaWQgbW5fcmVsZWFzZShzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKIAkJICAgICAg IHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogewogCXN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiA9IGNv bnRhaW5lcl9vZihtbiwgc3RydWN0IGdudGRldl9wcml2LCBtbik7Ci0Jc3RydWN0IGdyYW50X21h cCAqbWFwOworCXN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXA7CiAJaW50IGVycjsKIAogCW11 dGV4X2xvY2soJnByaXYtPmxvY2spOwpAQCAtNjUxLDEzICs2MDIsMTQgQEAgc3RhdGljIGludCBn bnRkZXZfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmxpcCkKIHN0YXRp YyBpbnQgZ250ZGV2X3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZs aXApCiB7CiAJc3RydWN0IGdudGRldl9wcml2ICpwcml2ID0gZmxpcC0+cHJpdmF0ZV9kYXRhOwot CXN0cnVjdCBncmFudF9tYXAgKm1hcDsKKwlzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwOwog CiAJcHJfZGVidWcoInByaXYgJXBcbiIsIHByaXYpOwogCiAJbXV0ZXhfbG9jaygmcHJpdi0+bG9j ayk7CiAJd2hpbGUgKCFsaXN0X2VtcHR5KCZwcml2LT5tYXBzKSkgewotCQltYXAgPSBsaXN0X2Vu dHJ5KHByaXYtPm1hcHMubmV4dCwgc3RydWN0IGdyYW50X21hcCwgbmV4dCk7CisJCW1hcCA9IGxp c3RfZW50cnkocHJpdi0+bWFwcy5uZXh0LAorCQkJCSBzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCwg bmV4dCk7CiAJCWxpc3RfZGVsKCZtYXAtPm5leHQpOwogCQlnbnRkZXZfcHV0X21hcChOVUxMIC8q IGFscmVhZHkgcmVtb3ZlZCAqLywgbWFwKTsKIAl9CkBAIC02NzQsNyArNjI2LDcgQEAgc3RhdGlj IGxvbmcgZ250ZGV2X2lvY3RsX21hcF9ncmFudF9yZWYoc3RydWN0IGdudGRldl9wcml2ICpwcml2 LAogCQkJCSAgICAgICBzdHJ1Y3QgaW9jdGxfZ250ZGV2X21hcF9ncmFudF9yZWYgX191c2VyICp1 KQogewogCXN0cnVjdCBpb2N0bF9nbnRkZXZfbWFwX2dyYW50X3JlZiBvcDsKLQlzdHJ1Y3QgZ3Jh bnRfbWFwICptYXA7CisJc3RydWN0IGdudGRldl9ncmFudF9tYXAgKm1hcDsKIAlpbnQgZXJyOwog CiAJaWYgKGNvcHlfZnJvbV91c2VyKCZvcCwgdSwgc2l6ZW9mKG9wKSkgIT0gMCkKQEAgLTY4OCw3 ICs2NDAsNyBAQCBzdGF0aWMgbG9uZyBnbnRkZXZfaW9jdGxfbWFwX2dyYW50X3JlZihzdHJ1Y3Qg Z250ZGV2X3ByaXYgKnByaXYsCiAJaWYgKCFtYXApCiAJCXJldHVybiBlcnI7CiAKLQlpZiAodW5s aWtlbHkoYXRvbWljX2FkZF9yZXR1cm4ob3AuY291bnQsICZwYWdlc19tYXBwZWQpID4gbGltaXQp KSB7CisJaWYgKHVubGlrZWx5KGdudGRldl9hY2NvdW50X21hcHBlZF9wYWdlcyhvcC5jb3VudCkp KSB7CiAJCXByX2RlYnVnKCJjYW4ndCBtYXA6IG92ZXIgbGltaXRcbiIpOwogCQlnbnRkZXZfcHV0 X21hcChOVUxMLCBtYXApOwogCQlyZXR1cm4gZXJyOwpAQCAtNzE1LDcgKzY2Nyw3IEBAIHN0YXRp YyBsb25nIGdudGRldl9pb2N0bF91bm1hcF9ncmFudF9yZWYoc3RydWN0IGdudGRldl9wcml2ICpw cml2LAogCQkJCQkgc3RydWN0IGlvY3RsX2dudGRldl91bm1hcF9ncmFudF9yZWYgX191c2VyICp1 KQogewogCXN0cnVjdCBpb2N0bF9nbnRkZXZfdW5tYXBfZ3JhbnRfcmVmIG9wOwotCXN0cnVjdCBn cmFudF9tYXAgKm1hcDsKKwlzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwOwogCWludCBlcnIg PSAtRU5PRU5UOwogCiAJaWYgKGNvcHlfZnJvbV91c2VyKCZvcCwgdSwgc2l6ZW9mKG9wKSkgIT0g MCkKQEAgLTc0MSw3ICs2OTMsNyBAQCBzdGF0aWMgbG9uZyBnbnRkZXZfaW9jdGxfZ2V0X29mZnNl dF9mb3JfdmFkZHIoc3RydWN0IGdudGRldl9wcml2ICpwcml2LAogewogCXN0cnVjdCBpb2N0bF9n bnRkZXZfZ2V0X29mZnNldF9mb3JfdmFkZHIgb3A7CiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWE7Ci0Jc3RydWN0IGdyYW50X21hcCAqbWFwOworCXN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICpt YXA7CiAJaW50IHJ2ID0gLUVJTlZBTDsKIAogCWlmIChjb3B5X2Zyb21fdXNlcigmb3AsIHUsIHNp emVvZihvcCkpICE9IDApCkBAIC03NzIsNyArNzI0LDcgQEAgc3RhdGljIGxvbmcgZ250ZGV2X2lv Y3RsX2dldF9vZmZzZXRfZm9yX3ZhZGRyKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwKIHN0YXRp YyBsb25nIGdudGRldl9pb2N0bF9ub3RpZnkoc3RydWN0IGdudGRldl9wcml2ICpwcml2LCB2b2lk IF9fdXNlciAqdSkKIHsKIAlzdHJ1Y3QgaW9jdGxfZ250ZGV2X3VubWFwX25vdGlmeSBvcDsKLQlz dHJ1Y3QgZ3JhbnRfbWFwICptYXA7CisJc3RydWN0IGdudGRldl9ncmFudF9tYXAgKm1hcDsKIAlp bnQgcmM7CiAJaW50IG91dF9mbGFnczsKIAl1bnNpZ25lZCBpbnQgb3V0X2V2ZW50OwpAQCAtMTA3 MCw3ICsxMDIyLDcgQEAgc3RhdGljIGludCBnbnRkZXZfbW1hcChzdHJ1Y3QgZmlsZSAqZmxpcCwg c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJc3RydWN0IGdudGRldl9wcml2ICpwcml2ID0g ZmxpcC0+cHJpdmF0ZV9kYXRhOwogCWludCBpbmRleCA9IHZtYS0+dm1fcGdvZmY7CiAJaW50IGNv dW50ID0gdm1hX3BhZ2VzKHZtYSk7Ci0Jc3RydWN0IGdyYW50X21hcCAqbWFwOworCXN0cnVjdCBn bnRkZXZfZ3JhbnRfbWFwICptYXA7CiAJaW50IGksIGVyciA9IC1FSU5WQUw7CiAKIAlpZiAoKHZt YS0+dm1fZmxhZ3MgJiBWTV9XUklURSkgJiYgISh2bWEtPnZtX2ZsYWdzICYgVk1fU0hBUkVEKSkK QEAgLTExMjcsNyArMTA3OSw3IEBAIHN0YXRpYyBpbnQgZ250ZGV2X21tYXAoc3RydWN0IGZpbGUg KmZsaXAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogCQl9CiAJfQogCi0JZXJyID0gbWFw X2dyYW50X3BhZ2VzKG1hcCk7CisJZXJyID0gZ250ZGV2X21hcF9ncmFudF9wYWdlcyhtYXApOwog CWlmIChlcnIpCiAJCWdvdG8gb3V0X3B1dF9tYXA7CiAKLS0gCjIuMTcuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==