From mboxrd@z Thu Jan 1 00:00:00 1970 From: tip-bot for Tom Lendacky Subject: [tip:x86/mm] iommu/amd: Allow the AMD IOMMU to work with memory encryption Date: Tue, 18 Jul 2017 03:57:07 -0700 Message-ID: References: <3053631ea25ba8b1601c351cb7c541c496f6d9bc.1500319216.git.thomas.lendacky@amd.com> Reply-To: toshi.kani-ZPxbGqLxI0U@public.gmane.org, rkrcmar-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, luto-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, thomas.lendacky-5C7GfCeVMHo@public.gmane.org, pbonzini-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, arnd-r2nGTMty4D4@public.gmane.org, peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org, brijesh.singh-5C7GfCeVMHo@public.gmane.org, hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, riel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, aryabinin-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org, bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org, glider-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, corbet-T1hC0tSOHrs@public.gmane.org, bp-l3A5Bk7waGM@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org, lwoodman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, dvyukov-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, konrad.wilk-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org, torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org, tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org, dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, jroedel-l3A5Bk7waGM@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <3053631ea25ba8b1601c351cb7c541c496f6d9bc.1500319216.git.thomas.lendacky-5C7GfCeVMHo@public.gmane.org> Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: linux-tip-commits-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: brijesh.singh-5C7GfCeVMHo@public.gmane.org, toshi.kani-ZPxbGqLxI0U@public.gmane.org, mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org, glider-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org, lwoodman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, corbet-T1hC0tSOHrs@public.gmane.org, rkrcmar-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org, aryabinin-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org, bp-l3A5Bk7waGM@public.gmane.org, dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, thomas.lendacky-5C7GfCeVMHo@public.gmane.org, riel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, jroedel-l3A5Bk7waGM@public.gmane.org, arnd-r2nGTMty4D4@public.gmane.org, bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org, luto-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org, dvyukov-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, pbonzini-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org List-Id: iommu@lists.linux-foundation.org Q29tbWl0LUlEOiAgMjU0M2E3ODZhYTI1MjU4NDUxZjM0MThiODdhMDM4YzdkZGFhMmU4NQpHaXR3 ZWI6ICAgICBodHRwOi8vZ2l0Lmtlcm5lbC5vcmcvdGlwLzI1NDNhNzg2YWEyNTI1ODQ1MWYzNDE4 Yjg3YTAzOGM3ZGRhYTJlODUKQXV0aG9yOiAgICAgVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFj a3lAYW1kLmNvbT4KQXV0aG9yRGF0ZTogTW9uLCAxNyBKdWwgMjAxNyAxNjoxMDoyNCAtMDUwMApD b21taXR0ZXI6ICBJbmdvIE1vbG5hciA8bWluZ29Aa2VybmVsLm9yZz4KQ29tbWl0RGF0ZTogVHVl LCAxOCBKdWwgMjAxNyAxMTozODowMyArMDIwMAoKaW9tbXUvYW1kOiBBbGxvdyB0aGUgQU1EIElP TU1VIHRvIHdvcmsgd2l0aCBtZW1vcnkgZW5jcnlwdGlvbgoKVGhlIElPTU1VIGlzIHByb2dyYW1t ZWQgd2l0aCBwaHlzaWNhbCBhZGRyZXNzZXMgZm9yIHRoZSB2YXJpb3VzIHRhYmxlcwphbmQgYnVm ZmVycyB0aGF0IGFyZSB1c2VkIHRvIGNvbW11bmljYXRlIGJldHdlZW4gdGhlIGRldmljZSBhbmQg dGhlCmRyaXZlci4gV2hlbiB0aGUgZHJpdmVyIGFsbG9jYXRlcyB0aGlzIG1lbW9yeSBpdCBpcyBl bmNyeXB0ZWQuIEluIG9yZGVyCmZvciB0aGUgSU9NTVUgdG8gYWNjZXNzIHRoZSBtZW1vcnkgYXMg ZW5jcnlwdGVkIHRoZSBlbmNyeXB0aW9uIG1hc2sgbmVlZHMKdG8gYmUgaW5jbHVkZWQgaW4gdGhl c2UgcGh5c2ljYWwgYWRkcmVzc2VzIGR1cmluZyBjb25maWd1cmF0aW9uLgoKVGhlIFBURSBlbnRy aWVzIGNyZWF0ZWQgYnkgdGhlIElPTU1VIHNob3VsZCBhbHNvIGluY2x1ZGUgdGhlIGVuY3J5cHRp b24KbWFzayBzbyB0aGF0IHdoZW4gdGhlIGRldmljZSBiZWhpbmQgdGhlIElPTU1VIHBlcmZvcm1z IGEgRE1BLCB0aGUgRE1BCndpbGwgYmUgcGVyZm9ybWVkIHRvIGVuY3J5cHRlZCBtZW1vcnkuCgpT aWduZWQtb2ZmLWJ5OiBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29tPgpSZXZp ZXdlZC1ieTogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+ClJldmlld2VkLWJ5 OiBCb3Jpc2xhdiBQZXRrb3YgPGJwQHN1c2UuZGU+CkFja2VkLWJ5OiBKb2VyZyBSb2VkZWwgPGpy b2VkZWxAc3VzZS5kZT4KQ2M6IDxpb21tdUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6 IEFsZXhhbmRlciBQb3RhcGVua28gPGdsaWRlckBnb29nbGUuY29tPgpDYzogQW5kcmV5IFJ5YWJp bmluIDxhcnlhYmluaW5AdmlydHVvenpvLmNvbT4KQ2M6IEFuZHkgTHV0b21pcnNraSA8bHV0b0Br ZXJuZWwub3JnPgpDYzogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KQ2M6IEJvcmlzbGF2 IFBldGtvdiA8YnBAYWxpZW44LmRlPgpDYzogQnJpamVzaCBTaW5naCA8YnJpamVzaC5zaW5naEBh bWQuY29tPgpDYzogRGF2ZSBZb3VuZyA8ZHlvdW5nQHJlZGhhdC5jb20+CkNjOiBEbWl0cnkgVnl1 a292IDxkdnl1a292QGdvb2dsZS5jb20+CkNjOiBKb25hdGhhbiBDb3JiZXQgPGNvcmJldEBsd24u bmV0PgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpD YzogTGFycnkgV29vZG1hbiA8bHdvb2RtYW5AcmVkaGF0LmNvbT4KQ2M6IExpbnVzIFRvcnZhbGRz IDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IE1hdHQgRmxlbWluZyA8bWF0dEBj b2RlYmx1ZXByaW50LmNvLnVrPgpDYzogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNv bT4KQ2M6IFBhb2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhhdC5jb20+CkNjOiBQZXRlciBaaWps c3RyYSA8cGV0ZXJ6QGluZnJhZGVhZC5vcmc+CkNjOiBSYWRpbSBLcsSNbcOhxZkgPHJrcmNtYXJA cmVkaGF0LmNvbT4KQ2M6IFJpayB2YW4gUmllbCA8cmllbEByZWRoYXQuY29tPgpDYzogVG9zaGlt aXRzdSBLYW5pIDx0b3NoaS5rYW5pQGhwZS5jb20+CkNjOiBrYXNhbi1kZXZAZ29vZ2xlZ3JvdXBz LmNvbQpDYzoga3ZtQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtYXJjaEB2Z2VyLmtlcm5lbC5v cmcKQ2M6IGxpbnV4LWRvY0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWVmaUB2Z2VyLmtlcm5l bC5vcmcKQ2M6IGxpbnV4LW1tQGt2YWNrLm9yZwpMaW5rOiBodHRwOi8vbGttbC5rZXJuZWwub3Jn L3IvMzA1MzYzMWVhMjViYThiMTYwMWMzNTFjYjdjNTQxYzQ5NmY2ZDliYy4xNTAwMzE5MjE2Lmdp dC50aG9tYXMubGVuZGFja3lAYW1kLmNvbQpTaWduZWQtb2ZmLWJ5OiBJbmdvIE1vbG5hciA8bWlu Z29Aa2VybmVsLm9yZz4KLS0tCiBkcml2ZXJzL2lvbW11L2FtZF9pb21tdS5jICAgICAgIHwgMzAg KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2lvbW11L2FtZF9pb21tdV9p bml0LmMgIHwgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9p b21tdS9hbWRfaW9tbXVfcHJvdG8uaCB8IDEwICsrKysrKysrKysKIGRyaXZlcnMvaW9tbXUvYW1k X2lvbW11X3R5cGVzLmggfCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCsp LCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2FtZF9pb21tdS5j IGIvZHJpdmVycy9pb21tdS9hbWRfaW9tbXUuYwppbmRleCA2ODhlNzc1Li5hYmM2Y2E2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2lvbW11L2FtZF9pb21tdS5jCisrKyBiL2RyaXZlcnMvaW9tbXUvYW1k X2lvbW11LmMKQEAgLTU3NSw3ICs1NzUsNyBAQCBzdGF0aWMgdm9pZCBkdW1wX2R0ZV9lbnRyeSh1 MTYgZGV2aWQpCiAKIHN0YXRpYyB2b2lkIGR1bXBfY29tbWFuZCh1bnNpZ25lZCBsb25nIHBoeXNf YWRkcikKIHsKLQlzdHJ1Y3QgaW9tbXVfY21kICpjbWQgPSBwaHlzX3RvX3ZpcnQocGh5c19hZGRy KTsKKwlzdHJ1Y3QgaW9tbXVfY21kICpjbWQgPSBpb21tdV9waHlzX3RvX3ZpcnQocGh5c19hZGRy KTsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpCkBAIC05MTksMTEgKzkxOSwx MyBAQCBzdGF0aWMgdm9pZCBjb3B5X2NtZF90b19idWZmZXIoc3RydWN0IGFtZF9pb21tdSAqaW9t bXUsCiAKIHN0YXRpYyB2b2lkIGJ1aWxkX2NvbXBsZXRpb25fd2FpdChzdHJ1Y3QgaW9tbXVfY21k ICpjbWQsIHU2NCBhZGRyZXNzKQogeworCXU2NCBwYWRkciA9IGlvbW11X3ZpcnRfdG9fcGh5cygo dm9pZCAqKWFkZHJlc3MpOworCiAJV0FSTl9PTihhZGRyZXNzICYgMHg3VUxMKTsKIAogCW1lbXNl dChjbWQsIDAsIHNpemVvZigqY21kKSk7Ci0JY21kLT5kYXRhWzBdID0gbG93ZXJfMzJfYml0cyhf X3BhKGFkZHJlc3MpKSB8IENNRF9DT01QTF9XQUlUX1NUT1JFX01BU0s7Ci0JY21kLT5kYXRhWzFd ID0gdXBwZXJfMzJfYml0cyhfX3BhKGFkZHJlc3MpKTsKKwljbWQtPmRhdGFbMF0gPSBsb3dlcl8z Ml9iaXRzKHBhZGRyKSB8IENNRF9DT01QTF9XQUlUX1NUT1JFX01BU0s7CisJY21kLT5kYXRhWzFd ID0gdXBwZXJfMzJfYml0cyhwYWRkcik7CiAJY21kLT5kYXRhWzJdID0gMTsKIAlDTURfU0VUX1RZ UEUoY21kLCBDTURfQ09NUExfV0FJVCk7CiB9CkBAIC0xMzgzLDcgKzEzODUsNyBAQCBzdGF0aWMg Ym9vbCBpbmNyZWFzZV9hZGRyZXNzX3NwYWNlKHN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9t YWluLAogCQlyZXR1cm4gZmFsc2U7CiAKIAkqcHRlICAgICAgICAgICAgID0gUE1fTEVWRUxfUERF KGRvbWFpbi0+bW9kZSwKLQkJCQkJdmlydF90b19waHlzKGRvbWFpbi0+cHRfcm9vdCkpOworCQkJ CQlpb21tdV92aXJ0X3RvX3BoeXMoZG9tYWluLT5wdF9yb290KSk7CiAJZG9tYWluLT5wdF9yb290 ICA9IHB0ZTsKIAlkb21haW4tPm1vZGUgICAgKz0gMTsKIAlkb21haW4tPnVwZGF0ZWQgID0gdHJ1 ZTsKQEAgLTE0MjAsNyArMTQyMiw3IEBAIHN0YXRpYyB1NjQgKmFsbG9jX3B0ZShzdHJ1Y3QgcHJv dGVjdGlvbl9kb21haW4gKmRvbWFpbiwKIAkJCWlmICghcGFnZSkKIAkJCQlyZXR1cm4gTlVMTDsK IAotCQkJX19ucHRlID0gUE1fTEVWRUxfUERFKGxldmVsLCB2aXJ0X3RvX3BoeXMocGFnZSkpOwor CQkJX19ucHRlID0gUE1fTEVWRUxfUERFKGxldmVsLCBpb21tdV92aXJ0X3RvX3BoeXMocGFnZSkp OwogCiAJCQkvKiBwdGUgY291bGQgaGF2ZSBiZWVuIGNoYW5nZWQgc29tZXdoZXJlLiAqLwogCQkJ aWYgKGNtcHhjaGc2NChwdGUsIF9fcHRlLCBfX25wdGUpICE9IF9fcHRlKSB7CkBAIC0xNTM2LDEw ICsxNTM4LDEwIEBAIHN0YXRpYyBpbnQgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IHByb3RlY3Rpb25f ZG9tYWluICpkb20sCiAJCQlyZXR1cm4gLUVCVVNZOwogCiAJaWYgKGNvdW50ID4gMSkgewotCQlf X3B0ZSA9IFBBR0VfU0laRV9QVEUocGh5c19hZGRyLCBwYWdlX3NpemUpOworCQlfX3B0ZSA9IFBB R0VfU0laRV9QVEUoX19zbWVfc2V0KHBoeXNfYWRkciksIHBhZ2Vfc2l6ZSk7CiAJCV9fcHRlIHw9 IFBNX0xFVkVMX0VOQyg3KSB8IElPTU1VX1BURV9QIHwgSU9NTVVfUFRFX0ZDOwogCX0gZWxzZQot CQlfX3B0ZSA9IHBoeXNfYWRkciB8IElPTU1VX1BURV9QIHwgSU9NTVVfUFRFX0ZDOworCQlfX3B0 ZSA9IF9fc21lX3NldChwaHlzX2FkZHIpIHwgSU9NTVVfUFRFX1AgfCBJT01NVV9QVEVfRkM7CiAK IAlpZiAocHJvdCAmIElPTU1VX1BST1RfSVIpCiAJCV9fcHRlIHw9IElPTU1VX1BURV9JUjsKQEAg LTE3NTUsNyArMTc1Nyw3IEBAIHN0YXRpYyB2b2lkIGZyZWVfZ2NyM190YmxfbGV2ZWwxKHU2NCAq dGJsKQogCQlpZiAoISh0YmxbaV0gJiBHQ1IzX1ZBTElEKSkKIAkJCWNvbnRpbnVlOwogCi0JCXB0 ciA9IF9fdmEodGJsW2ldICYgUEFHRV9NQVNLKTsKKwkJcHRyID0gaW9tbXVfcGh5c190b192aXJ0 KHRibFtpXSAmIFBBR0VfTUFTSyk7CiAKIAkJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXB0cik7 CiAJfQpAQCAtMTc3MCw3ICsxNzcyLDcgQEAgc3RhdGljIHZvaWQgZnJlZV9nY3IzX3RibF9sZXZl bDIodTY0ICp0YmwpCiAJCWlmICghKHRibFtpXSAmIEdDUjNfVkFMSUQpKQogCQkJY29udGludWU7 CiAKLQkJcHRyID0gX192YSh0YmxbaV0gJiBQQUdFX01BU0spOworCQlwdHIgPSBpb21tdV9waHlz X3RvX3ZpcnQodGJsW2ldICYgUEFHRV9NQVNLKTsKIAogCQlmcmVlX2djcjNfdGJsX2xldmVsMShw dHIpOwogCX0KQEAgLTIwNDksNyArMjA1MSw3IEBAIHN0YXRpYyB2b2lkIHNldF9kdGVfZW50cnko dTE2IGRldmlkLCBzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbiwgYm9vbCBhdHMpCiAJ dTY0IGZsYWdzID0gMDsKIAogCWlmIChkb21haW4tPm1vZGUgIT0gUEFHRV9NT0RFX05PTkUpCi0J CXB0ZV9yb290ID0gdmlydF90b19waHlzKGRvbWFpbi0+cHRfcm9vdCk7CisJCXB0ZV9yb290ID0g aW9tbXVfdmlydF90b19waHlzKGRvbWFpbi0+cHRfcm9vdCk7CiAKIAlwdGVfcm9vdCB8PSAoZG9t YWluLT5tb2RlICYgREVWX0VOVFJZX01PREVfTUFTSykKIAkJICAgIDw8IERFVl9FTlRSWV9NT0RF X1NISUZUOwpAQCAtMjA2MSw3ICsyMDYzLDcgQEAgc3RhdGljIHZvaWQgc2V0X2R0ZV9lbnRyeSh1 MTYgZGV2aWQsIHN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluLCBib29sIGF0cykKIAkJ ZmxhZ3MgfD0gRFRFX0ZMQUdfSU9UTEI7CiAKIAlpZiAoZG9tYWluLT5mbGFncyAmIFBEX0lPTU1V VjJfTUFTSykgewotCQl1NjQgZ2NyMyA9IF9fcGEoZG9tYWluLT5nY3IzX3RibCk7CisJCXU2NCBn Y3IzID0gaW9tbXVfdmlydF90b19waHlzKGRvbWFpbi0+Z2NyM190YmwpOwogCQl1NjQgZ2x4ICA9 IGRvbWFpbi0+Z2x4OwogCQl1NjQgdG1wOwogCkBAIC0zNjA2LDEwICszNjA4LDEwIEBAIHN0YXRp YyB1NjQgKl9fZ2V0X2djcjNfcHRlKHU2NCAqcm9vdCwgaW50IGxldmVsLCBpbnQgcGFzaWQsIGJv b2wgYWxsb2MpCiAJCQlpZiAocm9vdCA9PSBOVUxMKQogCQkJCXJldHVybiBOVUxMOwogCi0JCQkq cHRlID0gX19wYShyb290KSB8IEdDUjNfVkFMSUQ7CisJCQkqcHRlID0gaW9tbXVfdmlydF90b19w aHlzKHJvb3QpIHwgR0NSM19WQUxJRDsKIAkJfQogCi0JCXJvb3QgPSBfX3ZhKCpwdGUgJiBQQUdF X01BU0spOworCQlyb290ID0gaW9tbXVfcGh5c190b192aXJ0KCpwdGUgJiBQQUdFX01BU0spOwog CiAJCWxldmVsIC09IDE7CiAJfQpAQCAtMzc4OCw3ICszNzkwLDcgQEAgc3RhdGljIHZvaWQgc2V0 X2R0ZV9pcnFfZW50cnkodTE2IGRldmlkLCBzdHJ1Y3QgaXJxX3JlbWFwX3RhYmxlICp0YWJsZSkK IAogCWR0ZQk9IGFtZF9pb21tdV9kZXZfdGFibGVbZGV2aWRdLmRhdGFbMl07CiAJZHRlCSY9IH5E VEVfSVJRX1BIWVNfQUREUl9NQVNLOwotCWR0ZQl8PSB2aXJ0X3RvX3BoeXModGFibGUtPnRhYmxl KTsKKwlkdGUJfD0gaW9tbXVfdmlydF90b19waHlzKHRhYmxlLT50YWJsZSk7CiAJZHRlCXw9IERU RV9JUlFfUkVNQVBfSU5UQ1RMOwogCWR0ZQl8PSBEVEVfSVJRX1RBQkxFX0xFTjsKIAlkdGUJfD0g RFRFX0lSUV9SRU1BUF9FTkFCTEU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2FtZF9pb21t dV9pbml0LmMgYi9kcml2ZXJzL2lvbW11L2FtZF9pb21tdV9pbml0LmMKaW5kZXggNWNjNTk3Yi4u NDJmZjlhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9hbWRfaW9tbXVfaW5pdC5jCisrKyBi L2RyaXZlcnMvaW9tbXUvYW1kX2lvbW11X2luaXQuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1 ZGUgPGxpbnV4L2lvbW11Lmg+CiAjaW5jbHVkZSA8bGludXgva21lbWxlYWsuaD4KICNpbmNsdWRl IDxsaW51eC9jcmFzaF9kdW1wLmg+CisjaW5jbHVkZSA8bGludXgvbWVtX2VuY3J5cHQuaD4KICNp bmNsdWRlIDxhc20vcGNpLWRpcmVjdC5oPgogI2luY2x1ZGUgPGFzbS9pb21tdS5oPgogI2luY2x1 ZGUgPGFzbS9nYXJ0Lmg+CkBAIC0zNDgsNyArMzQ5LDcgQEAgc3RhdGljIHZvaWQgaW9tbXVfc2V0 X2RldmljZV90YWJsZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKIAogCUJVR19PTihpb21tdS0+ bW1pb19iYXNlID09IE5VTEwpOwogCi0JZW50cnkgPSB2aXJ0X3RvX3BoeXMoYW1kX2lvbW11X2Rl dl90YWJsZSk7CisJZW50cnkgPSBpb21tdV92aXJ0X3RvX3BoeXMoYW1kX2lvbW11X2Rldl90YWJs ZSk7CiAJZW50cnkgfD0gKGRldl90YWJsZV9zaXplID4+IDEyKSAtIDE7CiAJbWVtY3B5X3RvaW8o aW9tbXUtPm1taW9fYmFzZSArIE1NSU9fREVWX1RBQkxFX09GRlNFVCwKIAkJCSZlbnRyeSwgc2l6 ZW9mKGVudHJ5KSk7CkBAIC02MDYsNyArNjA3LDcgQEAgc3RhdGljIHZvaWQgaW9tbXVfZW5hYmxl X2NvbW1hbmRfYnVmZmVyKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQogCiAJQlVHX09OKGlvbW11 LT5jbWRfYnVmID09IE5VTEwpOwogCi0JZW50cnkgPSAodTY0KXZpcnRfdG9fcGh5cyhpb21tdS0+ Y21kX2J1Zik7CisJZW50cnkgPSBpb21tdV92aXJ0X3RvX3BoeXMoaW9tbXUtPmNtZF9idWYpOwog CWVudHJ5IHw9IE1NSU9fQ01EX1NJWkVfNTEyOwogCiAJbWVtY3B5X3RvaW8oaW9tbXUtPm1taW9f YmFzZSArIE1NSU9fQ01EX0JVRl9PRkZTRVQsCkBAIC02MzUsNyArNjM2LDcgQEAgc3RhdGljIHZv aWQgaW9tbXVfZW5hYmxlX2V2ZW50X2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKIAog CUJVR19PTihpb21tdS0+ZXZ0X2J1ZiA9PSBOVUxMKTsKIAotCWVudHJ5ID0gKHU2NCl2aXJ0X3Rv X3BoeXMoaW9tbXUtPmV2dF9idWYpIHwgRVZUX0xFTl9NQVNLOworCWVudHJ5ID0gaW9tbXVfdmly dF90b19waHlzKGlvbW11LT5ldnRfYnVmKSB8IEVWVF9MRU5fTUFTSzsKIAogCW1lbWNweV90b2lv KGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0VWVF9CVUZfT0ZGU0VULAogCQkgICAgJmVudHJ5LCBz aXplb2YoZW50cnkpKTsKQEAgLTY2OCw3ICs2NjksNyBAQCBzdGF0aWMgdm9pZCBpb21tdV9lbmFi bGVfcHByX2xvZyhzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKIAlpZiAoaW9tbXUtPnBwcl9sb2cg PT0gTlVMTCkKIAkJcmV0dXJuOwogCi0JZW50cnkgPSAodTY0KXZpcnRfdG9fcGh5cyhpb21tdS0+ cHByX2xvZykgfCBQUFJfTE9HX1NJWkVfNTEyOworCWVudHJ5ID0gaW9tbXVfdmlydF90b19waHlz KGlvbW11LT5wcHJfbG9nKSB8IFBQUl9MT0dfU0laRV81MTI7CiAKIAltZW1jcHlfdG9pbyhpb21t dS0+bW1pb19iYXNlICsgTU1JT19QUFJfTE9HX09GRlNFVCwKIAkJICAgICZlbnRyeSwgc2l6ZW9m KGVudHJ5KSk7CkBAIC03NDgsMTAgKzc0OSwxMCBAQCBzdGF0aWMgaW50IGlvbW11X2luaXRfZ2Ff bG9nKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQogCWlmICghaW9tbXUtPmdhX2xvZ190YWlsKQog CQlnb3RvIGVycl9vdXQ7CiAKLQllbnRyeSA9ICh1NjQpdmlydF90b19waHlzKGlvbW11LT5nYV9s b2cpIHwgR0FfTE9HX1NJWkVfNTEyOworCWVudHJ5ID0gaW9tbXVfdmlydF90b19waHlzKGlvbW11 LT5nYV9sb2cpIHwgR0FfTE9HX1NJWkVfNTEyOwogCW1lbWNweV90b2lvKGlvbW11LT5tbWlvX2Jh c2UgKyBNTUlPX0dBX0xPR19CQVNFX09GRlNFVCwKIAkJICAgICZlbnRyeSwgc2l6ZW9mKGVudHJ5 KSk7Ci0JZW50cnkgPSAoKHU2NCl2aXJ0X3RvX3BoeXMoaW9tbXUtPmdhX2xvZykgJiAweEZGRkZG RkZGRkZGRkZVTEwpICYgfjdVTEw7CisJZW50cnkgPSAoaW9tbXVfdmlydF90b19waHlzKGlvbW11 LT5nYV9sb2cpICYgMHhGRkZGRkZGRkZGRkZGVUxMKSAmIH43VUxMOwogCW1lbWNweV90b2lvKGlv bW11LT5tbWlvX2Jhc2UgKyBNTUlPX0dBX0xPR19UQUlMX09GRlNFVCwKIAkJICAgICZlbnRyeSwg c2l6ZW9mKGVudHJ5KSk7CiAJd3JpdGVsKDB4MDAsIGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0dB X0hFQURfT0ZGU0VUKTsKQEAgLTI1NjQsNiArMjU2NSwyNCBAQCBzdGF0aWMgaW50IF9faW5pdCBh bWRfaW9tbXVfaW5pdCh2b2lkKQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBib29sIGFtZF9p b21tdV9zbWVfY2hlY2sodm9pZCkKK3sKKwlpZiAoIXNtZV9hY3RpdmUoKSB8fCAoYm9vdF9jcHVf ZGF0YS54ODYgIT0gMHgxNykpCisJCXJldHVybiB0cnVlOworCisJLyogRm9yIEZhbTE3aCwgYSBz cGVjaWZpYyBsZXZlbCBvZiBzdXBwb3J0IGlzIHJlcXVpcmVkICovCisJaWYgKGJvb3RfY3B1X2Rh dGEubWljcm9jb2RlID49IDB4MDgwMDEyMDUpCisJCXJldHVybiB0cnVlOworCisJaWYgKChib290 X2NwdV9kYXRhLm1pY3JvY29kZSA+PSAweDA4MDAxMTI2KSAmJgorCSAgICAoYm9vdF9jcHVfZGF0 YS5taWNyb2NvZGUgPD0gMHgwODAwMTFmZikpCisJCXJldHVybiB0cnVlOworCisJcHJfbm90aWNl KCJBTUQtVmk6IElPTU1VIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIHdoZW4gU01FIGlzIGFjdGl2 ZVxuIik7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgog ICogRWFybHkgZGV0ZWN0IGNvZGUuIFRoaXMgY29kZSBydW5zIGF0IElPTU1VIGRldGVjdGlvbiB0 aW1lIGluIHRoZSBETUEKQEAgLTI1NzgsNiArMjU5Nyw5IEBAIGludCBfX2luaXQgYW1kX2lvbW11 X2RldGVjdCh2b2lkKQogCWlmIChub19pb21tdSB8fCAoaW9tbXVfZGV0ZWN0ZWQgJiYgIWdhcnRf aW9tbXVfYXBlcnR1cmUpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAorCWlmICghYW1kX2lvbW11X3Nt ZV9jaGVjaygpKQorCQlyZXR1cm4gLUVOT0RFVjsKKwogCXJldCA9IGlvbW11X2dvX3RvX3N0YXRl KElPTU1VX0lWUlNfREVURUNURUQpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2lvbW11L2FtZF9pb21tdV9wcm90by5oIGIvZHJpdmVycy9pb21tdS9hbWRf aW9tbXVfcHJvdG8uaAppbmRleCA0NjYyNjBmLi4zZjEyZmIyIDEwMDY0NAotLS0gYS9kcml2ZXJz L2lvbW11L2FtZF9pb21tdV9wcm90by5oCisrKyBiL2RyaXZlcnMvaW9tbXUvYW1kX2lvbW11X3By b3RvLmgKQEAgLTg3LDQgKzg3LDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpb21tdV9mZWF0dXJl KHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1NjQgZikKIAlyZXR1cm4gISEoaW9tbXUtPmZlYXR1 cmVzICYgZik7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdTY0IGlvbW11X3ZpcnRfdG9fcGh5cyh2b2lk ICp2YWRkcikKK3sKKwlyZXR1cm4gKHU2NClfX3NtZV9zZXQodmlydF90b19waHlzKHZhZGRyKSk7 Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCAqaW9tbXVfcGh5c190b192aXJ0KHVuc2lnbmVkIGxv bmcgcGFkZHIpCit7CisJcmV0dXJuIHBoeXNfdG9fdmlydChfX3NtZV9jbHIocGFkZHIpKTsKK30K KwogI2VuZGlmIC8qIF9BU01fWDg2X0FNRF9JT01NVV9QUk9UT19IICAqLwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9pb21tdS9hbWRfaW9tbXVfdHlwZXMuaCBiL2RyaXZlcnMvaW9tbXUvYW1kX2lvbW11 X3R5cGVzLmgKaW5kZXggMjk0YTQwOS4uODU5MWY0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21t dS9hbWRfaW9tbXVfdHlwZXMuaAorKysgYi9kcml2ZXJzL2lvbW11L2FtZF9pb21tdV90eXBlcy5o CkBAIC0zNDQsNyArMzQ0LDcgQEAKIAogI2RlZmluZSBJT01NVV9QQUdFX01BU0sgKCgoMVVMTCA8 PCA1MikgLSAxKSAmIH4weGZmZlVMTCkKICNkZWZpbmUgSU9NTVVfUFRFX1BSRVNFTlQocHRlKSAo KHB0ZSkgJiBJT01NVV9QVEVfUCkKLSNkZWZpbmUgSU9NTVVfUFRFX1BBR0UocHRlKSAocGh5c190 b192aXJ0KChwdGUpICYgSU9NTVVfUEFHRV9NQVNLKSkKKyNkZWZpbmUgSU9NTVVfUFRFX1BBR0Uo cHRlKSAoaW9tbXVfcGh5c190b192aXJ0KChwdGUpICYgSU9NTVVfUEFHRV9NQVNLKSkKICNkZWZp bmUgSU9NTVVfUFRFX01PREUocHRlKSAoKChwdGUpID4+IDkpICYgMHgwNykKIAogI2RlZmluZSBJ T01NVV9QUk9UX01BU0sgMHgwMwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwppb21tdSBtYWlsaW5nIGxpc3QKaW9tbXVAbGlzdHMubGludXgtZm91bmRhdGlv bi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8v aW9tbXU=