From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v2 3/3] ALSA: xen-front: Use Xen common shared buffer implementation Date: Fri, 30 Nov 2018 09:42:05 +0200 Message-ID: <20181130074205.20496-3-andr2000__46382.3489881635$1543563667$gmane$org@gmail.com> References: <20181130074205.20496-1-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gSdRK-000379-FD for xen-devel@lists.xenproject.org; Fri, 30 Nov 2018 07:42:18 +0000 Received: by mail-lf1-x142.google.com with SMTP id e26so3418710lfc.2 for ; Thu, 29 Nov 2018 23:42:16 -0800 (PST) In-Reply-To: <20181130074205.20496-1-andr2000@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, alsa-devel@alsa-project.org, jgross@suse.com, boris.ostrovsky@oracle.com Cc: andr2000@gmail.com, Oleksandr Andrushchenko List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKVXNlIHBhZ2UgZGlyZWN0b3J5IGJhc2VkIHNoYXJlZCBidWZmZXIgaW1wbGVtZW50 YXRpb24Kbm93IGF2YWlsYWJsZSBhcyBjb21tb24gY29kZSBmb3IgWGVuIGZyb250ZW5kIGRyaXZl cnMuCgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2Fu ZHJ1c2hjaGVua29AZXBhbS5jb20+Ci0tLQogc291bmQveGVuL0tjb25maWcgICAgICAgICAgICAg ICB8ICAgMSArCiBzb3VuZC94ZW4vTWFrZWZpbGUgICAgICAgICAgICAgIHwgICAxIC0KIHNvdW5k L3hlbi94ZW5fc25kX2Zyb250LmMgICAgICAgfCAgIDcgKy0KIHNvdW5kL3hlbi94ZW5fc25kX2Zy b250LmggICAgICAgfCAgIDQgKy0KIHNvdW5kL3hlbi94ZW5fc25kX2Zyb250X2Fsc2EuYyAgfCAx MDIgKysrKysrKysrKysrKy0tLS0KIHNvdW5kL3hlbi94ZW5fc25kX2Zyb250X3NoYnVmLmMgfCAx OTQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNvdW5kL3hlbi94ZW5fc25kX2Zy b250X3NoYnVmLmggfCAgMzYgLS0tLS0tCiA3IGZpbGVzIGNoYW5nZWQsIDg0IGluc2VydGlvbnMo KyksIDI2MSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzb3VuZC94ZW4veGVuX3Nu ZF9mcm9udF9zaGJ1Zi5jCiBkZWxldGUgbW9kZSAxMDA2NDQgc291bmQveGVuL3hlbl9zbmRfZnJv bnRfc2hidWYuaAoKZGlmZiAtLWdpdCBhL3NvdW5kL3hlbi9LY29uZmlnIGIvc291bmQveGVuL0tj b25maWcKaW5kZXggNGYxZmNlZWE4MmQyLi5lNGQ3YmViNGRmMWMgMTAwNjQ0Ci0tLSBhL3NvdW5k L3hlbi9LY29uZmlnCisrKyBiL3NvdW5kL3hlbi9LY29uZmlnCkBAIC01LDYgKzUsNyBAQCBjb25m aWcgU05EX1hFTl9GUk9OVEVORAogCWRlcGVuZHMgb24gWEVOCiAJc2VsZWN0IFNORF9QQ00KIAlz ZWxlY3QgWEVOX1hFTkJVU19GUk9OVEVORAorCXNlbGVjdCBYRU5fRlJPTlRfUEdESVJfU0hCVUYK IAloZWxwCiAJICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG8gZW5hYmxlIGEgcGFy YS12aXJ0dWFsaXplZAogCSAgZnJvbnRlbmQgc291bmQgZHJpdmVyIGZvciBYZW4gZ3Vlc3QgT1Nl cy4KZGlmZiAtLWdpdCBhL3NvdW5kL3hlbi9NYWtlZmlsZSBiL3NvdW5kL3hlbi9NYWtlZmlsZQpp bmRleCAxZTY0NzBlY2MyZjIuLjI0MDMxNzc1YjcxNSAxMDA2NDQKLS0tIGEvc291bmQveGVuL01h a2VmaWxlCisrKyBiL3NvdW5kL3hlbi9NYWtlZmlsZQpAQCAtMyw3ICszLDYgQEAKIHNuZF94ZW5f ZnJvbnQtb2JqcyA6PSB4ZW5fc25kX2Zyb250Lm8gXAogCQkgICAgICB4ZW5fc25kX2Zyb250X2Nm Zy5vIFwKIAkJICAgICAgeGVuX3NuZF9mcm9udF9ldnRjaG5sLm8gXAotCQkgICAgICB4ZW5fc25k X2Zyb250X3NoYnVmLm8gXAogCQkgICAgICB4ZW5fc25kX2Zyb250X2Fsc2EubwogCiBvYmotJChD T05GSUdfU05EX1hFTl9GUk9OVEVORCkgKz0gc25kX3hlbl9mcm9udC5vCmRpZmYgLS1naXQgYS9z b3VuZC94ZW4veGVuX3NuZF9mcm9udC5jIGIvc291bmQveGVuL3hlbl9zbmRfZnJvbnQuYwppbmRl eCBiMDg5YjEzYjUxNjAuLmE5ZTVjMmNkNzY5OCAxMDA2NDQKLS0tIGEvc291bmQveGVuL3hlbl9z bmRfZnJvbnQuYworKysgYi9zb3VuZC94ZW4veGVuX3NuZF9mcm9udC5jCkBAIC0xNiwxMiArMTYs MTIgQEAKICNpbmNsdWRlIDx4ZW4veGVuLmg+CiAjaW5jbHVkZSA8eGVuL3hlbmJ1cy5oPgogCisj aW5jbHVkZSA8eGVuL3hlbi1mcm9udC1wZ2Rpci1zaGJ1Zi5oPgogI2luY2x1ZGUgPHhlbi9pbnRl cmZhY2UvaW8vc25kaWYuaD4KIAogI2luY2x1ZGUgInhlbl9zbmRfZnJvbnQuaCIKICNpbmNsdWRl ICJ4ZW5fc25kX2Zyb250X2Fsc2EuaCIKICNpbmNsdWRlICJ4ZW5fc25kX2Zyb250X2V2dGNobmwu aCIKLSNpbmNsdWRlICJ4ZW5fc25kX2Zyb250X3NoYnVmLmgiCiAKIHN0YXRpYyBzdHJ1Y3QgeGVu c25kX3JlcSAqCiBiZV9zdHJlYW1fcHJlcGFyZV9yZXEoc3RydWN0IHhlbl9zbmRfZnJvbnRfZXZ0 Y2hubCAqZXZ0Y2hubCwgdTggb3BlcmF0aW9uKQpAQCAtODIsNyArODIsNyBAQCBpbnQgeGVuX3Nu ZF9mcm9udF9zdHJlYW1fcXVlcnlfaHdfcGFyYW0oc3RydWN0IHhlbl9zbmRfZnJvbnRfZXZ0Y2hu bCAqZXZ0Y2hubCwKIH0KIAogaW50IHhlbl9zbmRfZnJvbnRfc3RyZWFtX3ByZXBhcmUoc3RydWN0 IHhlbl9zbmRfZnJvbnRfZXZ0Y2hubCAqZXZ0Y2hubCwKLQkJCQkgc3RydWN0IHhlbl9zbmRfZnJv bnRfc2hidWYgKnNoX2J1ZiwKKwkJCQkgc3RydWN0IHhlbl9mcm9udF9wZ2Rpcl9zaGJ1ZiAqc2hi dWYsCiAJCQkJIHU4IGZvcm1hdCwgdW5zaWduZWQgaW50IGNoYW5uZWxzLAogCQkJCSB1bnNpZ25l ZCBpbnQgcmF0ZSwgdTMyIGJ1ZmZlcl9zeiwKIAkJCQkgdTMyIHBlcmlvZF9zeikKQEAgLTk5LDcg Kzk5LDggQEAgaW50IHhlbl9zbmRfZnJvbnRfc3RyZWFtX3ByZXBhcmUoc3RydWN0IHhlbl9zbmRf ZnJvbnRfZXZ0Y2hubCAqZXZ0Y2hubCwKIAlyZXEtPm9wLm9wZW4ucGNtX3JhdGUgPSByYXRlOwog CXJlcS0+b3Aub3Blbi5idWZmZXJfc3ogPSBidWZmZXJfc3o7CiAJcmVxLT5vcC5vcGVuLnBlcmlv ZF9zeiA9IHBlcmlvZF9zejsKLQlyZXEtPm9wLm9wZW4uZ3JlZl9kaXJlY3RvcnkgPSB4ZW5fc25k X2Zyb250X3NoYnVmX2dldF9kaXJfc3RhcnQoc2hfYnVmKTsKKwlyZXEtPm9wLm9wZW4uZ3JlZl9k aXJlY3RvcnkgPQorCQl4ZW5fZnJvbnRfcGdkaXJfc2hidWZfZ2V0X2Rpcl9zdGFydChzaGJ1Zik7 CiAJbXV0ZXhfdW5sb2NrKCZldnRjaG5sLT5yaW5nX2lvX2xvY2spOwogCiAJcmV0ID0gYmVfc3Ry ZWFtX2RvX2lvKGV2dGNobmwpOwpkaWZmIC0tZ2l0IGEvc291bmQveGVuL3hlbl9zbmRfZnJvbnQu aCBiL3NvdW5kL3hlbi94ZW5fc25kX2Zyb250LmgKaW5kZXggYTJlYTI0NjNiY2M1Li4wNTYxMWYx MTNiOTQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3hlbi94ZW5fc25kX2Zyb250LmgKKysrIGIvc291bmQv eGVuL3hlbl9zbmRfZnJvbnQuaApAQCAtMTYsNyArMTYsNyBAQAogc3RydWN0IHhlbl9zbmRfZnJv bnRfY2FyZF9pbmZvOwogc3RydWN0IHhlbl9zbmRfZnJvbnRfZXZ0Y2hubDsKIHN0cnVjdCB4ZW5f c25kX2Zyb250X2V2dGNobmxfcGFpcjsKLXN0cnVjdCB4ZW5fc25kX2Zyb250X3NoYnVmOworc3Ry dWN0IHhlbl9mcm9udF9wZ2Rpcl9zaGJ1ZjsKIHN0cnVjdCB4ZW5zbmRfcXVlcnlfaHdfcGFyYW07 CiAKIHN0cnVjdCB4ZW5fc25kX2Zyb250X2luZm8gewpAQCAtMzUsNyArMzUsNyBAQCBpbnQgeGVu X3NuZF9mcm9udF9zdHJlYW1fcXVlcnlfaHdfcGFyYW0oc3RydWN0IHhlbl9zbmRfZnJvbnRfZXZ0 Y2hubCAqZXZ0Y2hubCwKIAkJCQkJc3RydWN0IHhlbnNuZF9xdWVyeV9od19wYXJhbSAqaHdfcGFy YW1fcmVzcCk7CiAKIGludCB4ZW5fc25kX2Zyb250X3N0cmVhbV9wcmVwYXJlKHN0cnVjdCB4ZW5f c25kX2Zyb250X2V2dGNobmwgKmV2dGNobmwsCi0JCQkJIHN0cnVjdCB4ZW5fc25kX2Zyb250X3No YnVmICpzaF9idWYsCisJCQkJIHN0cnVjdCB4ZW5fZnJvbnRfcGdkaXJfc2hidWYgKnNoYnVmLAog CQkJCSB1OCBmb3JtYXQsIHVuc2lnbmVkIGludCBjaGFubmVscywKIAkJCQkgdW5zaWduZWQgaW50 IHJhdGUsIHUzMiBidWZmZXJfc3osCiAJCQkJIHUzMiBwZXJpb2Rfc3opOwpkaWZmIC0tZ2l0IGEv c291bmQveGVuL3hlbl9zbmRfZnJvbnRfYWxzYS5jIGIvc291bmQveGVuL3hlbl9zbmRfZnJvbnRf YWxzYS5jCmluZGV4IDEyOTE4MGUxN2RiMS4uYTE3YWU0NWVjNjM0IDEwMDY0NAotLS0gYS9zb3Vu ZC94ZW4veGVuX3NuZF9mcm9udF9hbHNhLmMKKysrIGIvc291bmQveGVuL3hlbl9zbmRfZnJvbnRf YWxzYS5jCkBAIC0xNSwxNyArMTUsMjQgQEAKICNpbmNsdWRlIDxzb3VuZC9wY21fcGFyYW1zLmg+ CiAKICNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+CisjaW5jbHVkZSA8eGVuL3hlbi1mcm9udC1wZ2Rp ci1zaGJ1Zi5oPgogCiAjaW5jbHVkZSAieGVuX3NuZF9mcm9udC5oIgogI2luY2x1ZGUgInhlbl9z bmRfZnJvbnRfYWxzYS5oIgogI2luY2x1ZGUgInhlbl9zbmRfZnJvbnRfY2ZnLmgiCiAjaW5jbHVk ZSAieGVuX3NuZF9mcm9udF9ldnRjaG5sLmgiCi0jaW5jbHVkZSAieGVuX3NuZF9mcm9udF9zaGJ1 Zi5oIgogCiBzdHJ1Y3QgeGVuX3NuZF9mcm9udF9wY21fc3RyZWFtX2luZm8gewogCXN0cnVjdCB4 ZW5fc25kX2Zyb250X2luZm8gKmZyb250X2luZm87CiAJc3RydWN0IHhlbl9zbmRfZnJvbnRfZXZ0 Y2hubF9wYWlyICpldnRfcGFpcjsKLQlzdHJ1Y3QgeGVuX3NuZF9mcm9udF9zaGJ1ZiBzaF9idWY7 CisKKwkvKiBUaGlzIGlzIHRoZSBzaGFyZWQgYnVmZmVyIHdpdGggaXRzIGJhY2tpbmcgc3RvcmFn ZS4gKi8KKwlzdHJ1Y3QgeGVuX2Zyb250X3BnZGlyX3NoYnVmIHNoYnVmOworCXU4ICpidWZmZXI7 CisJc2l6ZV90IGJ1ZmZlcl9zejsKKwlpbnQgbnVtX3BhZ2VzOworCXN0cnVjdCBwYWdlICoqcGFn ZXM7CisKIAlpbnQgaW5kZXg7CiAKIAlib29sIGlzX29wZW47CkBAIC0yMTQsMTIgKzIyMSwyMCBA QCBzdGF0aWMgdm9pZCBzdHJlYW1fY2xlYXIoc3RydWN0IHhlbl9zbmRfZnJvbnRfcGNtX3N0cmVh bV9pbmZvICpzdHJlYW0pCiAJc3RyZWFtLT5vdXRfZnJhbWVzID0gMDsKIAlhdG9taWNfc2V0KCZz dHJlYW0tPmh3X3B0ciwgMCk7CiAJeGVuX3NuZF9mcm9udF9ldnRjaG5sX3BhaXJfY2xlYXIoc3Ry ZWFtLT5ldnRfcGFpcik7Ci0JeGVuX3NuZF9mcm9udF9zaGJ1Zl9jbGVhcigmc3RyZWFtLT5zaF9i dWYpOworCW1lbXNldCgmc3RyZWFtLT5zaGJ1ZiwgMCwgc2l6ZW9mKHN0cmVhbS0+c2hidWYpKTsK KwlzdHJlYW0tPmJ1ZmZlciA9IE5VTEw7CisJc3RyZWFtLT5idWZmZXJfc3ogPSAwOworCXN0cmVh bS0+cGFnZXMgPSBOVUxMOworCXN0cmVhbS0+bnVtX3BhZ2VzID0gMDsKIH0KIAogc3RhdGljIHZv aWQgc3RyZWFtX2ZyZWUoc3RydWN0IHhlbl9zbmRfZnJvbnRfcGNtX3N0cmVhbV9pbmZvICpzdHJl YW0pCiB7Ci0JeGVuX3NuZF9mcm9udF9zaGJ1Zl9mcmVlKCZzdHJlYW0tPnNoX2J1Zik7CisJeGVu X2Zyb250X3BnZGlyX3NoYnVmX3VubWFwKCZzdHJlYW0tPnNoYnVmKTsKKwl4ZW5fZnJvbnRfcGdk aXJfc2hidWZfZnJlZSgmc3RyZWFtLT5zaGJ1Zik7CisJaWYgKHN0cmVhbS0+YnVmZmVyKQorCQlm cmVlX3BhZ2VzX2V4YWN0KHN0cmVhbS0+YnVmZmVyLCBzdHJlYW0tPmJ1ZmZlcl9zeik7CisJa2Zy ZWUoc3RyZWFtLT5wYWdlcyk7CiAJc3RyZWFtX2NsZWFyKHN0cmVhbSk7CiB9CiAKQEAgLTQyMSwx MCArNDM2LDM0IEBAIHN0YXRpYyBpbnQgYWxzYV9jbG9zZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJl YW0gKnN1YnN0cmVhbSkKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBzaGJ1Zl9zZXR1cF9i YWNrc3RvcmUoc3RydWN0IHhlbl9zbmRfZnJvbnRfcGNtX3N0cmVhbV9pbmZvICpzdHJlYW0sCisJ CQkJIHNpemVfdCBidWZmZXJfc3opCit7CisJaW50IGk7CisKKwlzdHJlYW0tPmJ1ZmZlciA9IGFs bG9jX3BhZ2VzX2V4YWN0KHN0cmVhbS0+YnVmZmVyX3N6LCBHRlBfS0VSTkVMKTsKKwlpZiAoIXN0 cmVhbS0+YnVmZmVyKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXN0cmVhbS0+YnVmZmVyX3N6ID0g YnVmZmVyX3N6OworCXN0cmVhbS0+bnVtX3BhZ2VzID0gRElWX1JPVU5EX1VQKHN0cmVhbS0+YnVm ZmVyX3N6LCBQQUdFX1NJWkUpOworCXN0cmVhbS0+cGFnZXMgPSBrY2FsbG9jKHN0cmVhbS0+bnVt X3BhZ2VzLCBzaXplb2Yoc3RydWN0IHBhZ2UgKiksCisJCQkJR0ZQX0tFUk5FTCk7CisJaWYgKCFz dHJlYW0tPnBhZ2VzKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZvciAoaSA9IDA7IGkgPCBzdHJl YW0tPm51bV9wYWdlczsgaSsrKQorCQlzdHJlYW0tPnBhZ2VzW2ldID0gdmlydF90b19wYWdlKHN0 cmVhbS0+YnVmZmVyICsgaSAqIFBBR0VfU0laRSk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGlj IGludCBhbHNhX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwK IAkJCSAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHhlbl9z bmRfZnJvbnRfcGNtX3N0cmVhbV9pbmZvICpzdHJlYW0gPSBzdHJlYW1fZ2V0KHN1YnN0cmVhbSk7 CisJc3RydWN0IHhlbl9zbmRfZnJvbnRfaW5mbyAqZnJvbnRfaW5mbyA9IHN0cmVhbS0+ZnJvbnRf aW5mbzsKKwlzdHJ1Y3QgeGVuX2Zyb250X3BnZGlyX3NoYnVmX2NmZyBidWZfY2ZnOwogCWludCBy ZXQ7CiAKIAkvKgpAQCAtNDMyLDE5ICs0NzEsMzIgQEAgc3RhdGljIGludCBhbHNhX2h3X3BhcmFt cyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKIAkgKiBzbyBmcmVlIHRoZSBw cmV2aW91c2x5IGFsbG9jYXRlZCBzaGFyZWQgYnVmZmVyIGlmIGFueS4KIAkgKi8KIAlzdHJlYW1f ZnJlZShzdHJlYW0pOworCXJldCA9IHNoYnVmX3NldHVwX2JhY2tzdG9yZShzdHJlYW0sIHBhcmFt c19idWZmZXJfYnl0ZXMocGFyYW1zKSk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gZmFpbDsKIAot CXJldCA9IHhlbl9zbmRfZnJvbnRfc2hidWZfYWxsb2Moc3RyZWFtLT5mcm9udF9pbmZvLT54Yl9k ZXYsCi0JCQkJCSZzdHJlYW0tPnNoX2J1ZiwKLQkJCQkJcGFyYW1zX2J1ZmZlcl9ieXRlcyhwYXJh bXMpKTsKLQlpZiAocmV0IDwgMCkgewotCQlzdHJlYW1fZnJlZShzdHJlYW0pOwotCQlkZXZfZXJy KCZzdHJlYW0tPmZyb250X2luZm8tPnhiX2Rldi0+ZGV2LAotCQkJIkZhaWxlZCB0byBhbGxvY2F0 ZSBidWZmZXJzIGZvciBzdHJlYW0gd2l0aCBpbmRleCAlZFxuIiwKLQkJCXN0cmVhbS0+aW5kZXgp OwotCQlyZXR1cm4gcmV0OwotCX0KKwltZW1zZXQoJmJ1Zl9jZmcsIDAsIHNpemVvZihidWZfY2Zn KSk7CisJYnVmX2NmZy54Yl9kZXYgPSBmcm9udF9pbmZvLT54Yl9kZXY7CisJYnVmX2NmZy5wZ2Rp ciA9ICZzdHJlYW0tPnNoYnVmOworCWJ1Zl9jZmcubnVtX3BhZ2VzID0gc3RyZWFtLT5udW1fcGFn ZXM7CisJYnVmX2NmZy5wYWdlcyA9IHN0cmVhbS0+cGFnZXM7CisKKwlyZXQgPSB4ZW5fZnJvbnRf cGdkaXJfc2hidWZfYWxsb2MoJmJ1Zl9jZmcpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGZhaWw7 CisKKwlyZXQgPSB4ZW5fZnJvbnRfcGdkaXJfc2hidWZfbWFwKCZzdHJlYW0tPnNoYnVmKTsKKwlp ZiAocmV0IDwgMCkKKwkJZ290byBmYWlsOwogCiAJcmV0dXJuIDA7CisKK2ZhaWw6CisJc3RyZWFt X2ZyZWUoc3RyZWFtKTsKKwlkZXZfZXJyKCZmcm9udF9pbmZvLT54Yl9kZXYtPmRldiwKKwkJIkZh aWxlZCB0byBhbGxvY2F0ZSBidWZmZXJzIGZvciBzdHJlYW0gd2l0aCBpbmRleCAlZFxuIiwKKwkJ c3RyZWFtLT5pbmRleCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBhbHNhX2h3X2Zy ZWUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCkBAIC00NzYsNyArNTI4LDcg QEAgc3RhdGljIGludCBhbHNhX3ByZXBhcmUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJz dHJlYW0pCiAJCXNuZGlmX2Zvcm1hdCA9IHJldDsKIAogCQlyZXQgPSB4ZW5fc25kX2Zyb250X3N0 cmVhbV9wcmVwYXJlKCZzdHJlYW0tPmV2dF9wYWlyLT5yZXEsCi0JCQkJCQkgICAmc3RyZWFtLT5z aF9idWYsCisJCQkJCQkgICAmc3RyZWFtLT5zaGJ1ZiwKIAkJCQkJCSAgIHNuZGlmX2Zvcm1hdCwK IAkJCQkJCSAgIHJ1bnRpbWUtPmNoYW5uZWxzLAogCQkJCQkJICAgcnVudGltZS0+cmF0ZSwKQEAg LTU1NiwxMCArNjA4LDEwIEBAIHN0YXRpYyBpbnQgYWxzYV9wYl9jb3B5X3VzZXIoc3RydWN0IHNu ZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCiB7CiAJc3RydWN0IHhlbl9zbmRfZnJvbnRfcGNt X3N0cmVhbV9pbmZvICpzdHJlYW0gPSBzdHJlYW1fZ2V0KHN1YnN0cmVhbSk7CiAKLQlpZiAodW5s aWtlbHkocG9zICsgY291bnQgPiBzdHJlYW0tPnNoX2J1Zi5idWZmZXJfc3opKQorCWlmICh1bmxp a2VseShwb3MgKyBjb3VudCA+IHN0cmVhbS0+YnVmZmVyX3N6KSkKIAkJcmV0dXJuIC1FSU5WQUw7 CiAKLQlpZiAoY29weV9mcm9tX3VzZXIoc3RyZWFtLT5zaF9idWYuYnVmZmVyICsgcG9zLCBzcmMs IGNvdW50KSkKKwlpZiAoY29weV9mcm9tX3VzZXIoc3RyZWFtLT5idWZmZXIgKyBwb3MsIHNyYywg Y291bnQpKQogCQlyZXR1cm4gLUVGQVVMVDsKIAogCXJldHVybiB4ZW5fc25kX2Zyb250X3N0cmVh bV93cml0ZSgmc3RyZWFtLT5ldnRfcGFpci0+cmVxLCBwb3MsIGNvdW50KTsKQEAgLTU3MSwxMCAr NjIzLDEwIEBAIHN0YXRpYyBpbnQgYWxzYV9wYl9jb3B5X2tlcm5lbChzdHJ1Y3Qgc25kX3BjbV9z dWJzdHJlYW0gKnN1YnN0cmVhbSwKIHsKIAlzdHJ1Y3QgeGVuX3NuZF9mcm9udF9wY21fc3RyZWFt X2luZm8gKnN0cmVhbSA9IHN0cmVhbV9nZXQoc3Vic3RyZWFtKTsKIAotCWlmICh1bmxpa2VseShw b3MgKyBjb3VudCA+IHN0cmVhbS0+c2hfYnVmLmJ1ZmZlcl9zeikpCisJaWYgKHVubGlrZWx5KHBv cyArIGNvdW50ID4gc3RyZWFtLT5idWZmZXJfc3opKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCW1l bWNweShzdHJlYW0tPnNoX2J1Zi5idWZmZXIgKyBwb3MsIHNyYywgY291bnQpOworCW1lbWNweShz dHJlYW0tPmJ1ZmZlciArIHBvcywgc3JjLCBjb3VudCk7CiAKIAlyZXR1cm4geGVuX3NuZF9mcm9u dF9zdHJlYW1fd3JpdGUoJnN0cmVhbS0+ZXZ0X3BhaXItPnJlcSwgcG9zLCBjb3VudCk7CiB9CkBA IC01ODYsMTQgKzYzOCwxNCBAQCBzdGF0aWMgaW50IGFsc2FfY2FwX2NvcHlfdXNlcihzdHJ1Y3Qg c25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKIAlzdHJ1Y3QgeGVuX3NuZF9mcm9udF9wY21f c3RyZWFtX2luZm8gKnN0cmVhbSA9IHN0cmVhbV9nZXQoc3Vic3RyZWFtKTsKIAlpbnQgcmV0Owog Ci0JaWYgKHVubGlrZWx5KHBvcyArIGNvdW50ID4gc3RyZWFtLT5zaF9idWYuYnVmZmVyX3N6KSkK KwlpZiAodW5saWtlbHkocG9zICsgY291bnQgPiBzdHJlYW0tPmJ1ZmZlcl9zeikpCiAJCXJldHVy biAtRUlOVkFMOwogCiAJcmV0ID0geGVuX3NuZF9mcm9udF9zdHJlYW1fcmVhZCgmc3RyZWFtLT5l dnRfcGFpci0+cmVxLCBwb3MsIGNvdW50KTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsK IAotCXJldHVybiBjb3B5X3RvX3VzZXIoZHN0LCBzdHJlYW0tPnNoX2J1Zi5idWZmZXIgKyBwb3Ms IGNvdW50KSA/CisJcmV0dXJuIGNvcHlfdG9fdXNlcihkc3QsIHN0cmVhbS0+YnVmZmVyICsgcG9z LCBjb3VudCkgPwogCQktRUZBVUxUIDogMDsKIH0KIApAQCAtNjA0LDE0ICs2NTYsMTQgQEAgc3Rh dGljIGludCBhbHNhX2NhcF9jb3B5X2tlcm5lbChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1 YnN0cmVhbSwKIAlzdHJ1Y3QgeGVuX3NuZF9mcm9udF9wY21fc3RyZWFtX2luZm8gKnN0cmVhbSA9 IHN0cmVhbV9nZXQoc3Vic3RyZWFtKTsKIAlpbnQgcmV0OwogCi0JaWYgKHVubGlrZWx5KHBvcyAr IGNvdW50ID4gc3RyZWFtLT5zaF9idWYuYnVmZmVyX3N6KSkKKwlpZiAodW5saWtlbHkocG9zICsg Y291bnQgPiBzdHJlYW0tPmJ1ZmZlcl9zeikpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJcmV0ID0g eGVuX3NuZF9mcm9udF9zdHJlYW1fcmVhZCgmc3RyZWFtLT5ldnRfcGFpci0+cmVxLCBwb3MsIGNv dW50KTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAotCW1lbWNweShkc3QsIHN0cmVh bS0+c2hfYnVmLmJ1ZmZlciArIHBvcywgY291bnQpOworCW1lbWNweShkc3QsIHN0cmVhbS0+YnVm ZmVyICsgcG9zLCBjb3VudCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTYyMiwxMCArNjc0LDEwIEBA IHN0YXRpYyBpbnQgYWxzYV9wYl9maWxsX3NpbGVuY2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFt ICpzdWJzdHJlYW0sCiB7CiAJc3RydWN0IHhlbl9zbmRfZnJvbnRfcGNtX3N0cmVhbV9pbmZvICpz dHJlYW0gPSBzdHJlYW1fZ2V0KHN1YnN0cmVhbSk7CiAKLQlpZiAodW5saWtlbHkocG9zICsgY291 bnQgPiBzdHJlYW0tPnNoX2J1Zi5idWZmZXJfc3opKQorCWlmICh1bmxpa2VseShwb3MgKyBjb3Vu dCA+IHN0cmVhbS0+YnVmZmVyX3N6KSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQltZW1zZXQoc3Ry ZWFtLT5zaF9idWYuYnVmZmVyICsgcG9zLCAwLCBjb3VudCk7CisJbWVtc2V0KHN0cmVhbS0+YnVm ZmVyICsgcG9zLCAwLCBjb3VudCk7CiAKIAlyZXR1cm4geGVuX3NuZF9mcm9udF9zdHJlYW1fd3Jp dGUoJnN0cmVhbS0+ZXZ0X3BhaXItPnJlcSwgcG9zLCBjb3VudCk7CiB9CmRpZmYgLS1naXQgYS9z b3VuZC94ZW4veGVuX3NuZF9mcm9udF9zaGJ1Zi5jIGIvc291bmQveGVuL3hlbl9zbmRfZnJvbnRf c2hidWYuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDdhYzE3NmE0MWJhLi4wMDAw MDAwMDAwMDAKLS0tIGEvc291bmQveGVuL3hlbl9zbmRfZnJvbnRfc2hidWYuYworKysgL2Rldi9u dWxsCkBAIC0xLDE5NCArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MCBPUiBNSVQKLQotLyoKLSAqIFhlbiBwYXJhLXZpcnR1YWwgc291bmQgZGV2aWNlCi0gKgotICog Q29weXJpZ2h0IChDKSAyMDE2LTIwMTggRVBBTSBTeXN0ZW1zIEluYy4KLSAqCi0gKiBBdXRob3I6 IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNv bT4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8eGVuL3hlbi5o PgotI2luY2x1ZGUgPHhlbi94ZW5idXMuaD4KLQotI2luY2x1ZGUgInhlbl9zbmRfZnJvbnRfc2hi dWYuaCIKLQotZ3JhbnRfcmVmX3QgeGVuX3NuZF9mcm9udF9zaGJ1Zl9nZXRfZGlyX3N0YXJ0KHN0 cnVjdCB4ZW5fc25kX2Zyb250X3NoYnVmICpidWYpCi17Ci0JaWYgKCFidWYtPmdyZWZzKQotCQly ZXR1cm4gR1JBTlRfSU5WQUxJRF9SRUY7Ci0KLQlyZXR1cm4gYnVmLT5ncmVmc1swXTsKLX0KLQot dm9pZCB4ZW5fc25kX2Zyb250X3NoYnVmX2NsZWFyKHN0cnVjdCB4ZW5fc25kX2Zyb250X3NoYnVm ICpidWYpCi17Ci0JbWVtc2V0KGJ1ZiwgMCwgc2l6ZW9mKCpidWYpKTsKLX0KLQotdm9pZCB4ZW5f c25kX2Zyb250X3NoYnVmX2ZyZWUoc3RydWN0IHhlbl9zbmRfZnJvbnRfc2hidWYgKmJ1ZikKLXsK LQlpbnQgaTsKLQotCWlmIChidWYtPmdyZWZzKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBidWYtPm51 bV9ncmVmczsgaSsrKQotCQkJaWYgKGJ1Zi0+Z3JlZnNbaV0gIT0gR1JBTlRfSU5WQUxJRF9SRUYp Ci0JCQkJZ250dGFiX2VuZF9mb3JlaWduX2FjY2VzcyhidWYtPmdyZWZzW2ldLAotCQkJCQkJCSAg MCwgMFVMKTsKLQkJa2ZyZWUoYnVmLT5ncmVmcyk7Ci0JfQotCWtmcmVlKGJ1Zi0+ZGlyZWN0b3J5 KTsKLQlmcmVlX3BhZ2VzX2V4YWN0KGJ1Zi0+YnVmZmVyLCBidWYtPmJ1ZmZlcl9zeik7Ci0JeGVu X3NuZF9mcm9udF9zaGJ1Zl9jbGVhcihidWYpOwotfQotCi0vKgotICogbnVtYmVyIG9mIGdyYW50 IHJlZmVyZW5jZXMgYSBwYWdlIGNhbiBob2xkIHdpdGggcmVzcGVjdCB0byB0aGUKLSAqIHhlbnNu ZF9wYWdlX2RpcmVjdG9yeSBoZWFkZXIKLSAqLwotI2RlZmluZSBYRU5TTkRfTlVNX0dSRUZTX1BF Ul9QQUdFICgoWEVOX1BBR0VfU0laRSAtIFwKLQkJb2Zmc2V0b2Yoc3RydWN0IHhlbnNuZF9wYWdl X2RpcmVjdG9yeSwgZ3JlZikpIC8gXAotCQlzaXplb2YoZ3JhbnRfcmVmX3QpKQotCi1zdGF0aWMg dm9pZCBmaWxsX3BhZ2VfZGlyKHN0cnVjdCB4ZW5fc25kX2Zyb250X3NoYnVmICpidWYsCi0JCQkg IGludCBudW1fcGFnZXNfZGlyKQotewotCXN0cnVjdCB4ZW5zbmRfcGFnZV9kaXJlY3RvcnkgKnBh Z2VfZGlyOwotCXVuc2lnbmVkIGNoYXIgKnB0cjsKLQlpbnQgaSwgY3VyX2dyZWYsIGdyZWZzX2xl ZnQsIHRvX2NvcHk7Ci0KLQlwdHIgPSBidWYtPmRpcmVjdG9yeTsKLQlncmVmc19sZWZ0ID0gYnVm LT5udW1fZ3JlZnMgLSBudW1fcGFnZXNfZGlyOwotCS8qCi0JICogc2tpcCBncmFudCByZWZlcmVu Y2VzIGF0IHRoZSBiZWdpbm5pbmcsIHRoZXkgYXJlIGZvciBwYWdlcyBncmFudGVkCi0JICogZm9y IHRoZSBwYWdlIGRpcmVjdG9yeSBpdHNlbGYKLQkgKi8KLQljdXJfZ3JlZiA9IG51bV9wYWdlc19k aXI7Ci0JZm9yIChpID0gMDsgaSA8IG51bV9wYWdlc19kaXI7IGkrKykgewotCQlwYWdlX2RpciA9 IChzdHJ1Y3QgeGVuc25kX3BhZ2VfZGlyZWN0b3J5ICopcHRyOwotCQlpZiAoZ3JlZnNfbGVmdCA8 PSBYRU5TTkRfTlVNX0dSRUZTX1BFUl9QQUdFKSB7Ci0JCQl0b19jb3B5ID0gZ3JlZnNfbGVmdDsK LQkJCXBhZ2VfZGlyLT5ncmVmX2Rpcl9uZXh0X3BhZ2UgPSBHUkFOVF9JTlZBTElEX1JFRjsKLQkJ fSBlbHNlIHsKLQkJCXRvX2NvcHkgPSBYRU5TTkRfTlVNX0dSRUZTX1BFUl9QQUdFOwotCQkJcGFn ZV9kaXItPmdyZWZfZGlyX25leHRfcGFnZSA9IGJ1Zi0+Z3JlZnNbaSArIDFdOwotCQl9Ci0KLQkJ bWVtY3B5KCZwYWdlX2Rpci0+Z3JlZiwgJmJ1Zi0+Z3JlZnNbY3VyX2dyZWZdLAotCQkgICAgICAg dG9fY29weSAqIHNpemVvZihncmFudF9yZWZfdCkpOwotCi0JCXB0ciArPSBYRU5fUEFHRV9TSVpF OwotCQlncmVmc19sZWZ0IC09IHRvX2NvcHk7Ci0JCWN1cl9ncmVmICs9IHRvX2NvcHk7Ci0JfQot fQotCi1zdGF0aWMgaW50IGdyYW50X3JlZmVyZW5jZXMoc3RydWN0IHhlbmJ1c19kZXZpY2UgKnhi X2RldiwKLQkJCSAgICBzdHJ1Y3QgeGVuX3NuZF9mcm9udF9zaGJ1ZiAqYnVmLAotCQkJICAgIGlu dCBudW1fcGFnZXNfZGlyLCBpbnQgbnVtX3BhZ2VzX2J1ZmZlciwKLQkJCSAgICBpbnQgbnVtX2dy ZWZzKQotewotCWdyYW50X3JlZl90IHByaXZfZ3JlZl9oZWFkOwotCXVuc2lnbmVkIGxvbmcgZnJh bWU7Ci0JaW50IHJldCwgaSwgaiwgY3VyX3JlZjsKLQlpbnQgb3RoZXJlbmRfaWQ7Ci0KLQlyZXQg PSBnbnR0YWJfYWxsb2NfZ3JhbnRfcmVmZXJlbmNlcyhudW1fZ3JlZnMsICZwcml2X2dyZWZfaGVh ZCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCWJ1Zi0+bnVtX2dyZWZzID0gbnVtX2dy ZWZzOwotCW90aGVyZW5kX2lkID0geGJfZGV2LT5vdGhlcmVuZF9pZDsKLQlqID0gMDsKLQotCWZv ciAoaSA9IDA7IGkgPCBudW1fcGFnZXNfZGlyOyBpKyspIHsKLQkJY3VyX3JlZiA9IGdudHRhYl9j bGFpbV9ncmFudF9yZWZlcmVuY2UoJnByaXZfZ3JlZl9oZWFkKTsKLQkJaWYgKGN1cl9yZWYgPCAw KSB7Ci0JCQlyZXQgPSBjdXJfcmVmOwotCQkJZ290byBmYWlsOwotCQl9Ci0KLQkJZnJhbWUgPSB4 ZW5fcGFnZV90b19nZm4odmlydF90b19wYWdlKGJ1Zi0+ZGlyZWN0b3J5ICsKLQkJCQkJCSAgICAg WEVOX1BBR0VfU0laRSAqIGkpKTsKLQkJZ250dGFiX2dyYW50X2ZvcmVpZ25fYWNjZXNzX3JlZihj dXJfcmVmLCBvdGhlcmVuZF9pZCwgZnJhbWUsIDApOwotCQlidWYtPmdyZWZzW2orK10gPSBjdXJf cmVmOwotCX0KLQotCWZvciAoaSA9IDA7IGkgPCBudW1fcGFnZXNfYnVmZmVyOyBpKyspIHsKLQkJ Y3VyX3JlZiA9IGdudHRhYl9jbGFpbV9ncmFudF9yZWZlcmVuY2UoJnByaXZfZ3JlZl9oZWFkKTsK LQkJaWYgKGN1cl9yZWYgPCAwKSB7Ci0JCQlyZXQgPSBjdXJfcmVmOwotCQkJZ290byBmYWlsOwot CQl9Ci0KLQkJZnJhbWUgPSB4ZW5fcGFnZV90b19nZm4odmlydF90b19wYWdlKGJ1Zi0+YnVmZmVy ICsKLQkJCQkJCSAgICAgWEVOX1BBR0VfU0laRSAqIGkpKTsKLQkJZ250dGFiX2dyYW50X2ZvcmVp Z25fYWNjZXNzX3JlZihjdXJfcmVmLCBvdGhlcmVuZF9pZCwgZnJhbWUsIDApOwotCQlidWYtPmdy ZWZzW2orK10gPSBjdXJfcmVmOwotCX0KLQotCWdudHRhYl9mcmVlX2dyYW50X3JlZmVyZW5jZXMo cHJpdl9ncmVmX2hlYWQpOwotCWZpbGxfcGFnZV9kaXIoYnVmLCBudW1fcGFnZXNfZGlyKTsKLQly ZXR1cm4gMDsKLQotZmFpbDoKLQlnbnR0YWJfZnJlZV9ncmFudF9yZWZlcmVuY2VzKHByaXZfZ3Jl Zl9oZWFkKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IGFsbG9jX2ludF9idWZmZXJz KHN0cnVjdCB4ZW5fc25kX2Zyb250X3NoYnVmICpidWYsCi0JCQkgICAgIGludCBudW1fcGFnZXNf ZGlyLCBpbnQgbnVtX3BhZ2VzX2J1ZmZlciwKLQkJCSAgICAgaW50IG51bV9ncmVmcykKLXsKLQli dWYtPmdyZWZzID0ga2NhbGxvYyhudW1fZ3JlZnMsIHNpemVvZigqYnVmLT5ncmVmcyksIEdGUF9L RVJORUwpOwotCWlmICghYnVmLT5ncmVmcykKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlidWYtPmRp cmVjdG9yeSA9IGtjYWxsb2MobnVtX3BhZ2VzX2RpciwgWEVOX1BBR0VfU0laRSwgR0ZQX0tFUk5F TCk7Ci0JaWYgKCFidWYtPmRpcmVjdG9yeSkKLQkJZ290byBmYWlsOwotCi0JYnVmLT5idWZmZXJf c3ogPSBudW1fcGFnZXNfYnVmZmVyICogWEVOX1BBR0VfU0laRTsKLQlidWYtPmJ1ZmZlciA9IGFs bG9jX3BhZ2VzX2V4YWN0KGJ1Zi0+YnVmZmVyX3N6LCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1Zi0+ YnVmZmVyKQotCQlnb3RvIGZhaWw7Ci0KLQlyZXR1cm4gMDsKLQotZmFpbDoKLQlrZnJlZShidWYt PmdyZWZzKTsKLQlidWYtPmdyZWZzID0gTlVMTDsKLQlrZnJlZShidWYtPmRpcmVjdG9yeSk7Ci0J YnVmLT5kaXJlY3RvcnkgPSBOVUxMOwotCXJldHVybiAtRU5PTUVNOwotfQotCi1pbnQgeGVuX3Nu ZF9mcm9udF9zaGJ1Zl9hbGxvYyhzdHJ1Y3QgeGVuYnVzX2RldmljZSAqeGJfZGV2LAotCQkJICAg ICAgc3RydWN0IHhlbl9zbmRfZnJvbnRfc2hidWYgKmJ1ZiwKLQkJCSAgICAgIHVuc2lnbmVkIGlu dCBidWZmZXJfc3opCi17Ci0JaW50IG51bV9wYWdlc19idWZmZXIsIG51bV9wYWdlc19kaXIsIG51 bV9ncmVmczsKLQlpbnQgcmV0OwotCi0JeGVuX3NuZF9mcm9udF9zaGJ1Zl9jbGVhcihidWYpOwot Ci0JbnVtX3BhZ2VzX2J1ZmZlciA9IERJVl9ST1VORF9VUChidWZmZXJfc3osIFhFTl9QQUdFX1NJ WkUpOwotCS8qIG51bWJlciBvZiBwYWdlcyB0aGUgcGFnZSBkaXJlY3RvcnkgY29uc3VtZXMgaXRz ZWxmICovCi0JbnVtX3BhZ2VzX2RpciA9IERJVl9ST1VORF9VUChudW1fcGFnZXNfYnVmZmVyLAot CQkJCSAgICAgWEVOU05EX05VTV9HUkVGU19QRVJfUEFHRSk7Ci0JbnVtX2dyZWZzID0gbnVtX3Bh Z2VzX2J1ZmZlciArIG51bV9wYWdlc19kaXI7Ci0KLQlyZXQgPSBhbGxvY19pbnRfYnVmZmVycyhi dWYsIG51bV9wYWdlc19kaXIsCi0JCQkJbnVtX3BhZ2VzX2J1ZmZlciwgbnVtX2dyZWZzKTsKLQlp ZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKLQotCXJldCA9IGdyYW50X3JlZmVyZW5jZXMoeGJf ZGV2LCBidWYsIG51bV9wYWdlc19kaXIsIG51bV9wYWdlc19idWZmZXIsCi0JCQkgICAgICAgbnVt X2dyZWZzKTsKLQlpZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKLQotCWZpbGxfcGFnZV9kaXIo YnVmLCBudW1fcGFnZXNfZGlyKTsKLQlyZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL3NvdW5kL3hl bi94ZW5fc25kX2Zyb250X3NoYnVmLmggYi9zb3VuZC94ZW4veGVuX3NuZF9mcm9udF9zaGJ1Zi5o CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjhlOTdjNDdiMmMuLjAwMDAwMDAwMDAw MAotLS0gYS9zb3VuZC94ZW4veGVuX3NuZF9mcm9udF9zaGJ1Zi5oCisrKyAvZGV2L251bGwKQEAg LTEsMzYgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlU ICovCi0KLS8qCi0gKiBYZW4gcGFyYS12aXJ0dWFsIHNvdW5kIGRldmljZQotICoKLSAqIENvcHly aWdodCAoQykgMjAxNi0yMDE4IEVQQU0gU3lzdGVtcyBJbmMuCi0gKgotICogQXV0aG9yOiBPbGVr c2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+Ci0g Ki8KLQotI2lmbmRlZiBfX1hFTl9TTkRfRlJPTlRfU0hCVUZfSAotI2RlZmluZSBfX1hFTl9TTkRf RlJPTlRfU0hCVUZfSAotCi0jaW5jbHVkZSA8eGVuL2dyYW50X3RhYmxlLmg+Ci0KLSNpbmNsdWRl ICJ4ZW5fc25kX2Zyb250X2V2dGNobmwuaCIKLQotc3RydWN0IHhlbl9zbmRfZnJvbnRfc2hidWYg ewotCWludCBudW1fZ3JlZnM7Ci0JZ3JhbnRfcmVmX3QgKmdyZWZzOwotCXU4ICpkaXJlY3Rvcnk7 Ci0JdTggKmJ1ZmZlcjsKLQlzaXplX3QgYnVmZmVyX3N6OwotfTsKLQotZ3JhbnRfcmVmX3QgeGVu X3NuZF9mcm9udF9zaGJ1Zl9nZXRfZGlyX3N0YXJ0KHN0cnVjdCB4ZW5fc25kX2Zyb250X3NoYnVm ICpidWYpOwotCi1pbnQgeGVuX3NuZF9mcm9udF9zaGJ1Zl9hbGxvYyhzdHJ1Y3QgeGVuYnVzX2Rl dmljZSAqeGJfZGV2LAotCQkJICAgICAgc3RydWN0IHhlbl9zbmRfZnJvbnRfc2hidWYgKmJ1ZiwK LQkJCSAgICAgIHVuc2lnbmVkIGludCBidWZmZXJfc3opOwotCi12b2lkIHhlbl9zbmRfZnJvbnRf c2hidWZfY2xlYXIoc3RydWN0IHhlbl9zbmRfZnJvbnRfc2hidWYgKmJ1Zik7Ci0KLXZvaWQgeGVu X3NuZF9mcm9udF9zaGJ1Zl9mcmVlKHN0cnVjdCB4ZW5fc25kX2Zyb250X3NoYnVmICpidWYpOwot Ci0jZW5kaWYgLyogX19YRU5fU05EX0ZST05UX1NIQlVGX0ggKi8KLS0gCjIuMTkuMQoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=