From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 77E37C433FE for ; Fri, 22 Apr 2022 16:53:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=djntZ7cmFN/Paoiz1P375VH5KYla7b92EP3S85SOb4M=; b=ICqE9pQqdXL97Z xqNzDS7V+JV5GJjBLs+rlgzQ4Cr1hnLB4R/JcHwlrdTjJCjBPF8uWJAJI3LlI6diqWqw3qF/kGL4+ NYGMBkN4nbmqbWdzcN5nuVpaHuzpmcWmkmM+hFAHsVbyCE0i5j1tVie2uQnFN1TssqmbPqh131p6G D51OsxReoiuk5cYyUAQ+Dyv9kk5Np7ziU8X1ArTz76da/9tBgDDecuL6bJ3a6vsHZH4b8Zud2NAlh hicY2wot3KKG1OazjxPnP4uuBPcrWNCdGscx5lQwqH0hrzyUABhIWQYUa01BNoyQlRNglTUNujqQn yLk5Uyt5V955MxpHCL7A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nhwVj-001YJ3-8S; Fri, 22 Apr 2022 16:51:59 +0000 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nhwVB-001Y5W-CZ for linux-arm-kernel@lists.infradead.org; Fri, 22 Apr 2022 16:51:28 +0000 Received: by mail-lf1-x129.google.com with SMTP id h3so10578424lfu.8 for ; Fri, 22 Apr 2022 09:51:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=o6f6b9Ed2EOTSIl43sWJ1e4CyXkESkrVfEWzvoot9Wk=; b=mAUA9xma+eay/TnfhAP6yaN1yv/vOdxInTPx3XbLjEy67v+x1BSm6nrFpg3Cj2/Dun JDvJobIjZFNimuCmWOJGHF2Le3njiIeAjD0jp8RVAlb/iCh309R96+lQzF2+nuZKgkRo 1FI1ChP7jLX3bOf7kgAEAud9NHv6fDGSG+IC/DNbDJzeHAH1za4wBtv5HDezvWv4L78w Q0fxrK8rqC6zcO7os3J4orGrGe2ijTtjKZWKjd19vxXdpKlIlXZV9VX1aTikdRNH5PqF NA1+MdqActyKZ9hxk5RzK2Hv61ZFl+PWOsltfbV4YX7aMBHEo3Ftue6aABERdx8ACvKS HL9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=o6f6b9Ed2EOTSIl43sWJ1e4CyXkESkrVfEWzvoot9Wk=; b=Fu9SZMdo4kvo26/2u4kRfm4M7aCU1DXk+tWRV2QHkiDdC8H/Y179KSa3fxTgZQtzQm v2GA1yBRLlZ26gfFm5qy+uVUQc43khSIjRQzPEyX9Q7S8ONo3UjD95Tg8RO/YURlEFrL 5aJp0IBLwo0X4gCozCd3S0C1+y8MtlQL1Sd+1uu0ET1bd56Hpwv8KZln0o0/hPWahZZh Wy6kMQimwMUW3P5rT00e4uNmZapLqmgN9zKz87OaPgaj3tVmkcpJHjzFGJeckbaMaG8I R6bx3nmypaSiWp1QCMJJ65iIIsq0BhPLcg/ROaJSezIJRM6b1j0ZWWf8mlSMMLJLm100 Xpxg== X-Gm-Message-State: AOAM530kx4l2ick3n2BIwsELQpzWtjzghfKAJIw679G/q8GmbkFIBMXU HgMQYVtZuh+b4UZKaoMEXlE= X-Google-Smtp-Source: ABdhPJxUulQza4XzwHS+vn+t0JcKH1tSxdalQ0Xh720bOQBE/5H0dXKzgQ/JULuYgnjvPsZUQgNOsg== X-Received: by 2002:a05:6512:2385:b0:470:6e19:7ec8 with SMTP id c5-20020a056512238500b004706e197ec8mr3580179lfv.303.1650646282914; Fri, 22 Apr 2022 09:51:22 -0700 (PDT) Received: from otyshchenko.router ([212.22.223.21]) by smtp.gmail.com with ESMTPSA id n2-20020a056512310200b0046e2f507a3asm279742lfb.167.2022.04.22.09.51.21 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Apr 2022 09:51:22 -0700 (PDT) From: Oleksandr Tyshchenko To: xen-devel@lists.xenproject.org, x86@kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Juergen Gross , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Boris Ostrovsky , Stefano Stabellini , Julien Grall , Oleksandr Tyshchenko , "Michael S. Tsirkin" , Christoph Hellwig Subject: [PATCH V1 3/6] xen/virtio: Add option to restrict memory access under Xen Date: Fri, 22 Apr 2022 19:51:00 +0300 Message-Id: <1650646263-22047-4-git-send-email-olekstysh@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1650646263-22047-1-git-send-email-olekstysh@gmail.com> References: <1650646263-22047-1-git-send-email-olekstysh@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220422_095125_542511_61F96C93 X-CRM114-Status: GOOD ( 34.39 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgoKSW50cm9kdWNlIFhlbiBncmFu dCBETUEtbWFwcGluZyBsYXllciB3aGljaCBjb250YWlucyBzcGVjaWFsIERNQS1tYXBwaW5nCnJv dXRpbmVzIGZvciBwcm92aWRpbmcgZ3JhbnQgcmVmZXJlbmNlcyBhcyBETUEgYWRkcmVzc2VzIHRv IGJlIHVzZWQgYnkKZnJvbnRlbmRzIChlLmcuIHZpcnRpbykgaW4gWGVuIGd1ZXN0cy4KCkluIG9y ZGVyIHRvIHN1cHBvcnQgdmlydGlvIGluIFhlbiBndWVzdHMgYWRkIGEgY29uZmlnIG9wdGlvbiBY RU5fVklSVElPCmVuYWJsaW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgd2hldGhlciBpbiBhbGwgWGVu IGd1ZXN0cyB2aXJ0aW8gc2hvdWxkCmJlIGFibGUgdG8gYWNjZXNzIG1lbW9yeSB2aWEgWGVuIGdy YW50IG1hcHBpbmdzIG9ubHkgb24gdGhlIGhvc3Qgc2lkZS4KCkFzIHRoaXMgYWxzbyByZXF1aXJl cyBwcm92aWRpbmcgYXJjaF9oYXNfcmVzdHJpY3RlZF92aXJ0aW9fbWVtb3J5X2FjY2VzcwppbXBs ZW1lbnRhdGlvbiwgc3dpdGNoIGZyb20gYSBwdXJlIHN0dWIgdG8gYSByZWFsIGZ1bmN0aW9uIG9u IEFybQphbmQgY29tYmluZSB3aXRoIGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIGZvciB0aGUgU0VW IGd1ZXN0cyBvbiB4ODYuCgpBZGQgdGhlIG5lZWRlZCBmdW5jdGlvbmFsaXR5IGJ5IHByb3ZpZGlu ZyBhIHNwZWNpYWwgc2V0IG9mIERNQSBvcHMKaGFuZGxpbmcgdGhlIG5lZWRlZCBncmFudCBvcGVy YXRpb25zIGZvciB0aGUgSS9PIHBhZ2VzLgoKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8 amdyb3NzQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgVHlzaGNoZW5rbyA8b2xl a3NhbmRyX3R5c2hjaGVua29AZXBhbS5jb20+Ci0tLQpDaGFuZ2VzIFJGQyAtPiBWMToKICAgLSBz cXVhc2ggd2l0aCBhbG1vc3QgYWxsIGNoYW5nZXMgZnJvbSBjb21taXQgKGV4Y2VwdCBoYW5kbGlu ZyAieGVuLGRldi1kb21pZCIKICAgICBwcm9wZXJ0eSk6CiAgICAgIltQQVRDSCA0LzZdIHZpcnRp bzogVmFyaW91cyB1cGRhdGVzIHRvIHhlbi12aXJ0aW8gRE1BIG9wcyBsYXllciIKICAgLSB1cGRh dGUgY29tbWl0IHN1YmplY3QvZGVzY3JpcHRpb24gYW5kIGNvbW1lbnRzIGluIGNvZGUKICAgLSBs ZWF2ZSBvbmx5IHNpbmdsZSBLY29uZmlnIG9wdGlvbiBYRU5fVklSVElPIGFuZCByZW1vdmUgYXJj aGl0ZWN0dXJhbAogICAgIGRlcGVuZGVuY2llcwogICAtIGludHJvZHVjZSBjb21tb24geGVuX2hh c19yZXN0cmljdGVkX3ZpcnRpb19tZW1vcnlfYWNjZXNzKCkgaW4geGVuLmgKICAgICBhbmQgdXBk YXRlIGFyY2hfaGFzX3Jlc3RyaWN0ZWRfdmlydGlvX21lbW9yeV9hY2Nlc3MoKSBmb3IgYm90aAog ICAgIEFybSBhbmQgeDg2IHRvIGNhbGwgbmV3IGhlbHBlcgogICAtIHVzZSAoMVVMTCA8PCA2Mykg aW5zdGVhZCBvZiAweDgwMDAwMDAwMDAwMDAwMDBVTEwgZm9yIFhFTl9HUkFOVF9BRERSX09GRgog ICAtIGltcGxlbWVudCB4ZW5fdmlydGlvX2RtYV9tYXAodW5tYXApX3NnKCkgdXNpbmcgZXhhbXBs ZSBpbiBzd2lvdGxiLXhlbi5jCiAgIC0gb3B0aW1pemUgcGFkZGluZyBieSBtb3ZpbmcgImJyb2tl biIgZmllbGQgaW4gc3RydWN0IHhlbl92aXJ0aW9fZGF0YQogICAtIHJlbW92ZSB1bm5lZWRlZCBw ZXItZGV2aWNlIHNwaW5sb2NrCiAgIC0gcmVtb3ZlIHRoZSBpbmNsdXNpb24gb2YgdmlydGlvX2Nv bmZpZy5oCiAgIC0gcmVtYW5lIGV2ZXJ5dGhpbmcgYWNjb3JkaW5nIHRvIHRoZSBuZXcgbmFtaW5n IHNjaGVtZToKICAgICBzL3ZpcnRpby9ncmFudF9kbWEKICAgLSBhZGQgbmV3IGhpZGRlbiBjb25m aWcgb3B0aW9uIFhFTl9HUkFOVF9ETUFfT1BTCi0tLQogYXJjaC9hcm0veGVuL2VubGlnaHRlbi5j ICAgIHwgICA4ICsrCiBhcmNoL3g4Ni9tbS9pbml0LmMgICAgICAgICAgfCAgMTEgKysKIGFyY2gv eDg2L21tL21lbV9lbmNyeXB0LmMgICB8ICAgNSAtCiBkcml2ZXJzL3hlbi9LY29uZmlnICAgICAg ICAgfCAgMTUgKysrCiBkcml2ZXJzL3hlbi9NYWtlZmlsZSAgICAgICAgfCAgIDEgKwogZHJpdmVy cy94ZW4vZ3JhbnQtZG1hLW9wcy5jIHwgMzE3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBpbmNsdWRlL3hlbi94ZW4tb3BzLmggICAgICAgfCAgIDggKysKIGlu Y2x1ZGUveGVuL3hlbi5oICAgICAgICAgICB8ICAgNSArCiA4IGZpbGVzIGNoYW5nZWQsIDM2NSBp bnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv eGVuL2dyYW50LWRtYS1vcHMuYwoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3hlbi9lbmxpZ2h0ZW4u YyBiL2FyY2gvYXJtL3hlbi9lbmxpZ2h0ZW4uYwppbmRleCBlYzViMDgyLi40OWFmNDkzIDEwMDY0 NAotLS0gYS9hcmNoL2FybS94ZW4vZW5saWdodGVuLmMKKysrIGIvYXJjaC9hcm0veGVuL2VubGln aHRlbi5jCkBAIC00MDksNiArNDA5LDE0IEBAIGludCBfX2luaXQgYXJjaF94ZW5fdW5wb3B1bGF0 ZWRfaW5pdChzdHJ1Y3QgcmVzb3VyY2UgKipyZXMpCiB9CiAjZW5kaWYKIAorI2lmZGVmIENPTkZJ R19BUkNIX0hBU19SRVNUUklDVEVEX1ZJUlRJT19NRU1PUllfQUNDRVNTCitpbnQgYXJjaF9oYXNf cmVzdHJpY3RlZF92aXJ0aW9fbWVtb3J5X2FjY2Vzcyh2b2lkKQoreworCXJldHVybiB4ZW5faGFz X3Jlc3RyaWN0ZWRfdmlydGlvX21lbW9yeV9hY2Nlc3MoKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BM KGFyY2hfaGFzX3Jlc3RyaWN0ZWRfdmlydGlvX21lbW9yeV9hY2Nlc3MpOworI2VuZGlmCisKIHN0 YXRpYyB2b2lkIF9faW5pdCB4ZW5fZHRfZ3Vlc3RfaW5pdCh2b2lkKQogewogCXN0cnVjdCBkZXZp Y2Vfbm9kZSAqeGVuX25vZGU7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9pbml0LmMgYi9hcmNo L3g4Ni9tbS9pbml0LmMKaW5kZXggZDhjZmNlMi4uZmU4NGEzZSAxMDA2NDQKLS0tIGEvYXJjaC94 ODYvbW0vaW5pdC5jCisrKyBiL2FyY2gveDg2L21tL2luaXQuYwpAQCAtOCw2ICs4LDggQEAKICNp bmNsdWRlIDxsaW51eC9rbWVtbGVhay5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkL3Rhc2suaD4K IAorI2luY2x1ZGUgPHhlbi94ZW4uaD4KKwogI2luY2x1ZGUgPGFzbS9zZXRfbWVtb3J5Lmg+CiAj aW5jbHVkZSA8YXNtL2U4MjAvYXBpLmg+CiAjaW5jbHVkZSA8YXNtL2luaXQuaD4KQEAgLTEwNjUs MyArMTA2NywxMiBAQCB1bnNpZ25lZCBsb25nIG1heF9zd2FwZmlsZV9zaXplKHZvaWQpCiAJcmV0 dXJuIHBhZ2VzOwogfQogI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9IQVNfUkVTVFJJQ1RF RF9WSVJUSU9fTUVNT1JZX0FDQ0VTUworaW50IGFyY2hfaGFzX3Jlc3RyaWN0ZWRfdmlydGlvX21l bW9yeV9hY2Nlc3Modm9pZCkKK3sKKwlyZXR1cm4gKHhlbl9oYXNfcmVzdHJpY3RlZF92aXJ0aW9f bWVtb3J5X2FjY2VzcygpIHx8CisJCQljY19wbGF0Zm9ybV9oYXMoQ0NfQVRUUl9HVUVTVF9NRU1f RU5DUllQVCkpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoYXJjaF9oYXNfcmVzdHJpY3RlZF92aXJ0 aW9fbWVtb3J5X2FjY2Vzcyk7CisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL21lbV9l bmNyeXB0LmMgYi9hcmNoL3g4Ni9tbS9tZW1fZW5jcnlwdC5jCmluZGV4IDUwZDIwOTkuLmRkYTAy MGYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL21lbV9lbmNyeXB0LmMKKysrIGIvYXJjaC94ODYv bW0vbWVtX2VuY3J5cHQuYwpAQCAtNzcsOCArNzcsMyBAQCB2b2lkIF9faW5pdCBtZW1fZW5jcnlw dF9pbml0KHZvaWQpCiAJcHJpbnRfbWVtX2VuY3J5cHRfZmVhdHVyZV9pbmZvKCk7CiB9CiAKLWlu dCBhcmNoX2hhc19yZXN0cmljdGVkX3ZpcnRpb19tZW1vcnlfYWNjZXNzKHZvaWQpCi17Ci0JcmV0 dXJuIGNjX3BsYXRmb3JtX2hhcyhDQ19BVFRSX0dVRVNUX01FTV9FTkNSWVBUKTsKLX0KLUVYUE9S VF9TWU1CT0xfR1BMKGFyY2hfaGFzX3Jlc3RyaWN0ZWRfdmlydGlvX21lbW9yeV9hY2Nlc3MpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vS2NvbmZpZyBiL2RyaXZlcnMveGVuL0tjb25maWcKaW5k ZXggMTIwZDMyZi4uYjk1NTgxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vS2NvbmZpZworKysg Yi9kcml2ZXJzL3hlbi9LY29uZmlnCkBAIC0zMzUsNCArMzM1LDE5IEBAIGNvbmZpZyBYRU5fVU5Q T1BVTEFURURfQUxMT0MKIAkgIGhhdmluZyB0byBiYWxsb29uIG91dCBSQU0gcmVnaW9ucyBpbiBv cmRlciB0byBvYnRhaW4gcGh5c2ljYWwgbWVtb3J5CiAJICBzcGFjZSB0byBjcmVhdGUgc3VjaCBt YXBwaW5ncy4KIAorY29uZmlnIFhFTl9HUkFOVF9ETUFfT1BTCisJYm9vbAorCXNlbGVjdCBETUFf T1BTCisKK2NvbmZpZyBYRU5fVklSVElPCisJYm9vbCAiWGVuIHZpcnRpbyBzdXBwb3J0IgorCWRl ZmF1bHQgbgorCWRlcGVuZHMgb24gVklSVElPCisJc2VsZWN0IEFSQ0hfSEFTX1JFU1RSSUNURURf VklSVElPX01FTU9SWV9BQ0NFU1MKKwlzZWxlY3QgWEVOX0dSQU5UX0RNQV9PUFMKKwloZWxwCisJ ICBFbmFibGUgdmlydGlvIHN1cHBvcnQgZm9yIHJ1bm5pbmcgYXMgWGVuIGd1ZXN0LiBEZXBlbmRp bmcgb24gdGhlCisJICBndWVzdCB0eXBlIHRoaXMgd2lsbCByZXF1aXJlIHNwZWNpYWwgc3VwcG9y dCBvbiB0aGUgYmFja2VuZCBzaWRlCisJICAocWVtdSBvciBrZXJuZWwsIGRlcGVuZGluZyBvbiB0 aGUgdmlydGlvIGRldmljZSB0eXBlcyB1c2VkKS4KKwogZW5kbWVudQpkaWZmIC0tZ2l0IGEvZHJp dmVycy94ZW4vTWFrZWZpbGUgYi9kcml2ZXJzL3hlbi9NYWtlZmlsZQppbmRleCA1YWFlNjZlLi4x YTIzY2IwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3hl bi9NYWtlZmlsZQpAQCAtMzksMyArMzksNCBAQCB4ZW4tZ250YWxsb2MteQkJCQk6PSBnbnRhbGxv Yy5vCiB4ZW4tcHJpdmNtZC15CQkJCTo9IHByaXZjbWQubyBwcml2Y21kLWJ1Zi5vCiBvYmotJChD T05GSUdfWEVOX0ZST05UX1BHRElSX1NIQlVGKQkrPSB4ZW4tZnJvbnQtcGdkaXItc2hidWYubwog b2JqLSQoQ09ORklHX1hFTl9VTlBPUFVMQVRFRF9BTExPQykJKz0gdW5wb3B1bGF0ZWQtYWxsb2Mu bworb2JqLSQoQ09ORklHX1hFTl9HUkFOVF9ETUFfT1BTKQkJKz0gZ3JhbnQtZG1hLW9wcy5vCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9ncmFudC1kbWEtb3BzLmMgYi9kcml2ZXJzL3hlbi9ncmFu dC1kbWEtb3BzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjBlNjlhYTgK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3hlbi9ncmFudC1kbWEtb3BzLmMKQEAgLTAsMCAr MSwzMTcgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKyAqIFhlbiBncmFudCBETUEtbWFwcGluZyBsYXllciAtIGNvbnRh aW5zIHNwZWNpYWwgRE1BLW1hcHBpbmcgcm91dGluZXMKKyAqIGZvciBwcm92aWRpbmcgZ3JhbnQg cmVmZXJlbmNlcyBhcyBETUEgYWRkcmVzc2VzIHRvIGJlIHVzZWQgYnkgZnJvbnRlbmRzCisgKiAo ZS5nLiB2aXJ0aW8pIGluIFhlbiBndWVzdHMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEsIEp1 ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9k dWxlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcC1vcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9v Zi5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3Bmbi5oPgorI2lu Y2x1ZGUgPHhlbi94ZW4uaD4KKyNpbmNsdWRlIDx4ZW4vZ3JhbnRfdGFibGUuaD4KKworc3RydWN0 IHhlbl9ncmFudF9kbWFfZGF0YSB7CisJLyogVGhlIElEIG9mIGJhY2tlbmQgZG9tYWluICovCisJ ZG9taWRfdCBkZXZfZG9taWQ7CisJLyogSXMgZGV2aWNlIGJlaGF2aW5nIHNhbmU/ICovCisJYm9v bCBicm9rZW47CisJc3RydWN0IGRldmljZSAqZGV2OworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsK K307CisKK3N0YXRpYyBMSVNUX0hFQUQoeGVuX2dyYW50X2RtYV9kZXZpY2VzKTsKK3N0YXRpYyBE RUZJTkVfU1BJTkxPQ0soeGVuX2dyYW50X2RtYV9sb2NrKTsKKworI2RlZmluZSBYRU5fR1JBTlRf RE1BX0FERFJfT0ZGCSgxVUxMIDw8IDYzKQorCitzdGF0aWMgaW5saW5lIGRtYV9hZGRyX3QgZ3Jh bnRfdG9fZG1hKGdyYW50X3JlZl90IGdyYW50KQoreworCXJldHVybiBYRU5fR1JBTlRfRE1BX0FE RFJfT0ZGIHwgKChkbWFfYWRkcl90KWdyYW50IDw8IFBBR0VfU0hJRlQpOworfQorCitzdGF0aWMg aW5saW5lIGdyYW50X3JlZl90IGRtYV90b19ncmFudChkbWFfYWRkcl90IGRtYSkKK3sKKwlyZXR1 cm4gKGdyYW50X3JlZl90KSgoZG1hICYgflhFTl9HUkFOVF9ETUFfQUREUl9PRkYpID4+IFBBR0Vf U0hJRlQpOworfQorCitzdGF0aWMgc3RydWN0IHhlbl9ncmFudF9kbWFfZGF0YSAqZmluZF94ZW5f Z3JhbnRfZG1hX2RhdGEoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCB4ZW5fZ3JhbnRf ZG1hX2RhdGEgKmRhdGEgPSBOVUxMOworCWJvb2wgZm91bmQgPSBmYWxzZTsKKworCXNwaW5fbG9j aygmeGVuX2dyYW50X2RtYV9sb2NrKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZGF0YSwgJnhl bl9ncmFudF9kbWFfZGV2aWNlcywgbGlzdCkgeworCQlpZiAoZGF0YS0+ZGV2ID09IGRldikgewor CQkJZm91bmQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlzcGluX3VubG9jaygmeGVu X2dyYW50X2RtYV9sb2NrKTsKKworCXJldHVybiBmb3VuZCA/IGRhdGEgOiBOVUxMOworfQorCisv KgorICogRE1BIG9wcyBmb3IgWGVuIGZyb250ZW5kcyAoZS5nLiB2aXJ0aW8pLgorICoKKyAqIFVz ZWQgdG8gYWN0IGFzIGEga2luZCBvZiBzb2Z0d2FyZSBJT01NVSBmb3IgWGVuIGd1ZXN0cyBieSB1 c2luZyBncmFudHMgYXMKKyAqIERNQSBhZGRyZXNzZXMuCisgKiBTdWNoIGEgRE1BIGFkZHJlc3Mg aXMgZm9ybWVkIGJ5IHVzaW5nIHRoZSBncmFudCByZWZlcmVuY2UgYXMgYSBmcmFtZQorICogbnVt YmVyIGFuZCBzZXR0aW5nIHRoZSBoaWdoZXN0IGFkZHJlc3MgYml0ICh0aGlzIGJpdCBpcyBmb3Ig dGhlIGJhY2tlbmQKKyAqIHRvIGJlIGFibGUgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSBlLmcuIGEg bW1pbyBhZGRyZXNzKS4KKyAqCisgKiBOb3RlIHRoYXQgZm9yIG5vdyB3ZSBoYXJkIHdpcmUgZG9t MCB0byBiZSB0aGUgYmFja2VuZCBkb21haW4uIEluIG9yZGVyCisgKiB0byBzdXBwb3J0IGFueSBk b21haW4gYXMgYmFja2VuZCB3ZSdkIG5lZWQgdG8gYWRkIGEgd2F5IHRvIGNvbW11bmljYXRlCisg KiB0aGUgZG9taWQgb2YgdGhpcyBiYWNrZW5kLCBlLmcuIHZpYSBYZW5zdG9yZSwgdmlhIHRoZSBQ Q0ktZGV2aWNlJ3MKKyAqIGNvbmZpZyBzcGFjZSBvciBEVC9BQ1BJLgorICovCitzdGF0aWMgdm9p ZCAqeGVuX2dyYW50X2RtYV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAor CQkJCSBkbWFfYWRkcl90ICpkbWFfaGFuZGxlLCBnZnBfdCBnZnAsCisJCQkJIHVuc2lnbmVkIGxv bmcgYXR0cnMpCit7CisJc3RydWN0IHhlbl9ncmFudF9kbWFfZGF0YSAqZGF0YTsKKwl1bnNpZ25l ZCBpbnQgaSwgbl9wYWdlcyA9IFBGTl9VUChzaXplKTsKKwl1bnNpZ25lZCBsb25nIHBmbjsKKwln cmFudF9yZWZfdCBncmFudDsKKwl2b2lkICpyZXQ7CisKKwlkYXRhID0gZmluZF94ZW5fZ3JhbnRf ZG1hX2RhdGEoZGV2KTsKKwlpZiAoIWRhdGEpCisJCXJldHVybiBOVUxMOworCisJaWYgKHVubGlr ZWx5KGRhdGEtPmJyb2tlbikpCisJCXJldHVybiBOVUxMOworCisJcmV0ID0gYWxsb2NfcGFnZXNf ZXhhY3Qobl9wYWdlcyAqIFBBR0VfU0laRSwgZ2ZwKTsKKwlpZiAoIXJldCkKKwkJcmV0dXJuIE5V TEw7CisKKwlwZm4gPSB2aXJ0X3RvX3BmbihyZXQpOworCisJaWYgKGdudHRhYl9hbGxvY19ncmFu dF9yZWZlcmVuY2Vfc2VxKG5fcGFnZXMsICZncmFudCkpIHsKKwkJZnJlZV9wYWdlc19leGFjdChy ZXQsIG5fcGFnZXMgKiBQQUdFX1NJWkUpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlmb3IgKGkg PSAwOyBpIDwgbl9wYWdlczsgaSsrKSB7CisJCWdudHRhYl9ncmFudF9mb3JlaWduX2FjY2Vzc19y ZWYoZ3JhbnQgKyBpLCBkYXRhLT5kZXZfZG9taWQsCisJCQkJcGZuX3RvX2dmbihwZm4gKyBpKSwg MCk7CisJfQorCisJKmRtYV9oYW5kbGUgPSBncmFudF90b19kbWEoZ3JhbnQpOworCisJcmV0dXJu IHJldDsKK30KKworc3RhdGljIHZvaWQgeGVuX2dyYW50X2RtYV9mcmVlKHN0cnVjdCBkZXZpY2Ug KmRldiwgc2l6ZV90IHNpemUsIHZvaWQgKnZhZGRyLAorCQkJICAgICAgIGRtYV9hZGRyX3QgZG1h X2hhbmRsZSwgdW5zaWduZWQgbG9uZyBhdHRycykKK3sKKwlzdHJ1Y3QgeGVuX2dyYW50X2RtYV9k YXRhICpkYXRhOworCXVuc2lnbmVkIGludCBpLCBuX3BhZ2VzID0gUEZOX1VQKHNpemUpOworCWdy YW50X3JlZl90IGdyYW50OworCisJZGF0YSA9IGZpbmRfeGVuX2dyYW50X2RtYV9kYXRhKGRldik7 CisJaWYgKCFkYXRhKQorCQlyZXR1cm47CisKKwlpZiAodW5saWtlbHkoZGF0YS0+YnJva2VuKSkK KwkJcmV0dXJuOworCisJZ3JhbnQgPSBkbWFfdG9fZ3JhbnQoZG1hX2hhbmRsZSk7CisKKwlmb3Ig KGkgPSAwOyBpIDwgbl9wYWdlczsgaSsrKSB7CisJCWlmICh1bmxpa2VseSghZ250dGFiX2VuZF9m b3JlaWduX2FjY2Vzc19yZWYoZ3JhbnQgKyBpKSkpIHsKKwkJCWRldl9hbGVydChkZXYsICJHcmFu dCBzdGlsbCBpbiB1c2UgYnkgYmFja2VuZCBkb21haW4sIGRpc2FibGVkIGZvciBmdXJ0aGVyIHVz ZVxuIik7CisJCQlkYXRhLT5icm9rZW4gPSB0cnVlOworCQkJcmV0dXJuOworCQl9CisJfQorCisJ Z250dGFiX2ZyZWVfZ3JhbnRfcmVmZXJlbmNlX3NlcShncmFudCwgbl9wYWdlcyk7CisKKwlmcmVl X3BhZ2VzX2V4YWN0KHZhZGRyLCBuX3BhZ2VzICogUEFHRV9TSVpFKTsKK30KKworc3RhdGljIHN0 cnVjdCBwYWdlICp4ZW5fZ3JhbnRfZG1hX2FsbG9jX3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmRldiwg c2l6ZV90IHNpemUsCisJCQkJCSAgICAgIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsCisJCQkJCSAg ICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKKwkJCQkJICAgICAgZ2ZwX3QgZ2ZwKQor eworCVdBUk5fT05DRSgxLCAieGVuX2dyYW50X2RtYV9hbGxvY19wYWdlcyBzaXplICV6dVxuIiwg c2l6ZSk7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIHhlbl9ncmFudF9kbWFfZnJl ZV9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAorCQkJCSAgICAgc3RydWN0 IHBhZ2UgKnZhZGRyLCBkbWFfYWRkcl90IGRtYV9oYW5kbGUsCisJCQkJICAgICBlbnVtIGRtYV9k YXRhX2RpcmVjdGlvbiBkaXIpCit7CisJV0FSTl9PTkNFKDEsICJ4ZW5fZ3JhbnRfZG1hX2ZyZWVf cGFnZXMgc2l6ZSAlenVcbiIsIHNpemUpOworfQorCitzdGF0aWMgZG1hX2FkZHJfdCB4ZW5fZ3Jh bnRfZG1hX21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCisJ CQkJCSB1bnNpZ25lZCBsb25nIG9mZnNldCwgc2l6ZV90IHNpemUsCisJCQkJCSBlbnVtIGRtYV9k YXRhX2RpcmVjdGlvbiBkaXIsCisJCQkJCSB1bnNpZ25lZCBsb25nIGF0dHJzKQoreworCXN0cnVj dCB4ZW5fZ3JhbnRfZG1hX2RhdGEgKmRhdGE7CisJdW5zaWduZWQgaW50IGksIG5fcGFnZXMgPSBQ Rk5fVVAoc2l6ZSk7CisJZ3JhbnRfcmVmX3QgZ3JhbnQ7CisJZG1hX2FkZHJfdCBkbWFfaGFuZGxl OworCisJQlVHX09OKGRpciA9PSBETUFfTk9ORSk7CisKKwlkYXRhID0gZmluZF94ZW5fZ3JhbnRf ZG1hX2RhdGEoZGV2KTsKKwlpZiAoIWRhdGEpCisJCXJldHVybiBETUFfTUFQUElOR19FUlJPUjsK KworCWlmICh1bmxpa2VseShkYXRhLT5icm9rZW4pKQorCQlyZXR1cm4gRE1BX01BUFBJTkdfRVJS T1I7CisKKwlpZiAoZ250dGFiX2FsbG9jX2dyYW50X3JlZmVyZW5jZV9zZXEobl9wYWdlcywgJmdy YW50KSkKKwkJcmV0dXJuIERNQV9NQVBQSU5HX0VSUk9SOworCisJZm9yIChpID0gMDsgaSA8IG5f cGFnZXM7IGkrKykgeworCQlnbnR0YWJfZ3JhbnRfZm9yZWlnbl9hY2Nlc3NfcmVmKGdyYW50ICsg aSwgZGF0YS0+ZGV2X2RvbWlkLAorCQkJCXhlbl9wYWdlX3RvX2dmbihwYWdlKSArIGksIGRpciA9 PSBETUFfVE9fREVWSUNFKTsKKwl9CisKKwlkbWFfaGFuZGxlID0gZ3JhbnRfdG9fZG1hKGdyYW50 KSArIG9mZnNldDsKKworCXJldHVybiBkbWFfaGFuZGxlOworfQorCitzdGF0aWMgdm9pZCB4ZW5f Z3JhbnRfZG1hX3VubWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGRtYV9o YW5kbGUsCisJCQkJICAgICBzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGly LAorCQkJCSAgICAgdW5zaWduZWQgbG9uZyBhdHRycykKK3sKKwlzdHJ1Y3QgeGVuX2dyYW50X2Rt YV9kYXRhICpkYXRhOworCXVuc2lnbmVkIGludCBpLCBuX3BhZ2VzID0gUEZOX1VQKHNpemUpOwor CWdyYW50X3JlZl90IGdyYW50OworCisJQlVHX09OKGRpciA9PSBETUFfTk9ORSk7CisKKwlkYXRh ID0gZmluZF94ZW5fZ3JhbnRfZG1hX2RhdGEoZGV2KTsKKwlpZiAoIWRhdGEpCisJCXJldHVybjsK KworCWlmICh1bmxpa2VseShkYXRhLT5icm9rZW4pKQorCQlyZXR1cm47CisKKwlncmFudCA9IGRt YV90b19ncmFudChkbWFfaGFuZGxlKTsKKworCWZvciAoaSA9IDA7IGkgPCBuX3BhZ2VzOyBpKysp IHsKKwkJaWYgKHVubGlrZWx5KCFnbnR0YWJfZW5kX2ZvcmVpZ25fYWNjZXNzX3JlZihncmFudCAr IGkpKSkgeworCQkJZGV2X2FsZXJ0KGRldiwgIkdyYW50IHN0aWxsIGluIHVzZSBieSBiYWNrZW5k IGRvbWFpbiwgZGlzYWJsZWQgZm9yIGZ1cnRoZXIgdXNlXG4iKTsKKwkJCWRhdGEtPmJyb2tlbiA9 IHRydWU7CisJCQlyZXR1cm47CisJCX0KKwl9CisKKwlnbnR0YWJfZnJlZV9ncmFudF9yZWZlcmVu Y2Vfc2VxKGdyYW50LCBuX3BhZ2VzKTsKK30KKworc3RhdGljIHZvaWQgeGVuX2dyYW50X2RtYV91 bm1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCisJCQkJ ICAgaW50IG5lbnRzLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsCisJCQkJICAgdW5zaWdu ZWQgbG9uZyBhdHRycykKK3sKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnM7CisJdW5zaWduZWQgaW50 IGk7CisKKwlCVUdfT04oZGlyID09IERNQV9OT05FKTsKKworCWZvcl9lYWNoX3NnKHNnLCBzLCBu ZW50cywgaSkKKwkJeGVuX2dyYW50X2RtYV91bm1hcF9wYWdlKGRldiwgcy0+ZG1hX2FkZHJlc3Ms IHNnX2RtYV9sZW4ocyksIGRpciwKKwkJCQlhdHRycyk7Cit9CisKK3N0YXRpYyBpbnQgeGVuX2dy YW50X2RtYV9tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNn LAorCQkJCWludCBuZW50cywgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAorCQkJCXVuc2ln bmVkIGxvbmcgYXR0cnMpCit7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzOworCXVuc2lnbmVkIGlu dCBpOworCisJQlVHX09OKGRpciA9PSBETUFfTk9ORSk7CisKKwlmb3JfZWFjaF9zZyhzZywgcywg bmVudHMsIGkpIHsKKwkJcy0+ZG1hX2FkZHJlc3MgPSB4ZW5fZ3JhbnRfZG1hX21hcF9wYWdlKGRl diwgc2dfcGFnZShzKSwgcy0+b2Zmc2V0LAorCQkJCXMtPmxlbmd0aCwgZGlyLCBhdHRycyk7CisJ CWlmIChzLT5kbWFfYWRkcmVzcyA9PSBETUFfTUFQUElOR19FUlJPUikKKwkJCWdvdG8gb3V0Owor CisJCXNnX2RtYV9sZW4ocykgPSBzLT5sZW5ndGg7CisJfQorCisJcmV0dXJuIG5lbnRzOworCitv dXQ6CisJeGVuX2dyYW50X2RtYV91bm1hcF9zZyhkZXYsIHNnLCBpLCBkaXIsIGF0dHJzIHwgRE1B X0FUVFJfU0tJUF9DUFVfU1lOQyk7CisJc2dfZG1hX2xlbihzZykgPSAwOworCisJcmV0dXJuIC1F SU87Cit9CisKK3N0YXRpYyBpbnQgeGVuX2dyYW50X2RtYV9zdXBwb3J0ZWQoc3RydWN0IGRldmlj ZSAqZGV2LCB1NjQgbWFzaykKK3sKKwlyZXR1cm4gbWFzayA9PSBETUFfQklUX01BU0soNjQpOwor fQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzIHhlbl9ncmFudF9kbWFfb3BzID0g eworCS5hbGxvYyA9IHhlbl9ncmFudF9kbWFfYWxsb2MsCisJLmZyZWUgPSB4ZW5fZ3JhbnRfZG1h X2ZyZWUsCisJLmFsbG9jX3BhZ2VzID0geGVuX2dyYW50X2RtYV9hbGxvY19wYWdlcywKKwkuZnJl ZV9wYWdlcyA9IHhlbl9ncmFudF9kbWFfZnJlZV9wYWdlcywKKwkubW1hcCA9IGRtYV9jb21tb25f bW1hcCwKKwkuZ2V0X3NndGFibGUgPSBkbWFfY29tbW9uX2dldF9zZ3RhYmxlLAorCS5tYXBfcGFn ZSA9IHhlbl9ncmFudF9kbWFfbWFwX3BhZ2UsCisJLnVubWFwX3BhZ2UgPSB4ZW5fZ3JhbnRfZG1h X3VubWFwX3BhZ2UsCisJLm1hcF9zZyA9IHhlbl9ncmFudF9kbWFfbWFwX3NnLAorCS51bm1hcF9z ZyA9IHhlbl9ncmFudF9kbWFfdW5tYXBfc2csCisJLmRtYV9zdXBwb3J0ZWQgPSB4ZW5fZ3JhbnRf ZG1hX3N1cHBvcnRlZCwKK307CisKK3ZvaWQgeGVuX2dyYW50X3NldHVwX2RtYV9vcHMoc3RydWN0 IGRldmljZSAqZGV2KQoreworCXN0cnVjdCB4ZW5fZ3JhbnRfZG1hX2RhdGEgKmRhdGE7CisJdWlu dDMyX3QgZGV2X2RvbWlkOworCisJZGF0YSA9IGZpbmRfeGVuX2dyYW50X2RtYV9kYXRhKGRldik7 CisJaWYgKGRhdGEpIHsKKwkJZGV2X2VycihkZXYsICJYZW4gZ3JhbnQgRE1BIGRhdGEgaXMgYWxy ZWFkeSBjcmVhdGVkXG4iKTsKKwkJcmV0dXJuOworCX0KKworCS8qIFhYWCBUaGUgZG9tMCBpcyBo YXJkY29kZWQgYXMgdGhlIGJhY2tlbmQgZG9tYWluIGZvciBub3cgKi8KKwlkZXZfZG9taWQgPSAw OworCisJZGF0YSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZGF0YSksIEdGUF9LRVJORUwp OworCWlmICghZGF0YSkgeworCQlkZXZfZXJyKGRldiwgItChYW5ub3QgYWxsb2NhdGUgWGVuIGdy YW50IERNQSBkYXRhXG4iKTsKKwkJZ290byBlcnI7CisJfQorCWRhdGEtPmRldl9kb21pZCA9IGRl dl9kb21pZDsKKwlkYXRhLT5kZXYgPSBkZXY7CisKKwlzcGluX2xvY2soJnhlbl9ncmFudF9kbWFf bG9jayk7CisJbGlzdF9hZGQoJmRhdGEtPmxpc3QsICZ4ZW5fZ3JhbnRfZG1hX2RldmljZXMpOwor CXNwaW5fdW5sb2NrKCZ4ZW5fZ3JhbnRfZG1hX2xvY2spOworCisJZGV2LT5kbWFfb3BzID0gJnhl bl9ncmFudF9kbWFfb3BzOworCisJcmV0dXJuOworCitlcnI6CisJZGV2X2VycihkZXYsICLQoWFu bm90IHNldCB1cCBYZW4gZ3JhbnQgRE1BIG9wcywgcmV0YWluIHBsYXRmb3JtIERNQSBvcHNcbiIp OworfQorRVhQT1JUX1NZTUJPTF9HUEwoeGVuX2dyYW50X3NldHVwX2RtYV9vcHMpOworCitNT0RV TEVfREVTQ1JJUFRJT04oIlhlbiBncmFudCBETUEtbWFwcGluZyBsYXllciIpOworTU9EVUxFX0FV VEhPUigiSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPiIpOworTU9EVUxFX0xJQ0VOU0Uo IkdQTCIpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4veGVuLW9wcy5oIGIvaW5jbHVkZS94ZW4v eGVuLW9wcy5oCmluZGV4IGEzNTg0YTMuLjRmOWZhZDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVu L3hlbi1vcHMuaAorKysgYi9pbmNsdWRlL3hlbi94ZW4tb3BzLmgKQEAgLTIyMSw0ICsyMjEsMTIg QEAgc3RhdGljIGlubGluZSB2b2lkIHhlbl9wcmVlbXB0aWJsZV9oY2FsbF9lbmQodm9pZCkgeyB9 CiAKICNlbmRpZiAvKiBDT05GSUdfWEVOX1BWICYmICFDT05GSUdfUFJFRU1QVElPTiAqLwogCisj aWZkZWYgQ09ORklHX1hFTl9HUkFOVF9ETUFfT1BTCit2b2lkIHhlbl9ncmFudF9zZXR1cF9kbWFf b3BzKHN0cnVjdCBkZXZpY2UgKmRldik7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIHhlbl9n cmFudF9zZXR1cF9kbWFfb3BzKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKK30KKyNlbmRpZiAvKiBD T05GSUdfWEVOX0dSQU5UX0RNQV9PUFMgKi8KKwogI2VuZGlmIC8qIElOQ0xVREVfWEVOX09QU19I ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94ZW4uaCBiL2luY2x1ZGUveGVuL3hlbi5oCmlu ZGV4IGE5OWJhYjguLmZlNmU2YmIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL3hlbi5oCisrKyBi L2luY2x1ZGUveGVuL3hlbi5oCkBAIC01Miw2ICs1MiwxMSBAQCBib29sIHhlbl9iaW92ZWNfcGh5 c19tZXJnZWFibGUoY29uc3Qgc3RydWN0IGJpb192ZWMgKnZlYzEsCiBleHRlcm4gdTY0IHhlbl9z YXZlZF9tYXhfbWVtX3NpemU7CiAjZW5kaWYKIAorc3RhdGljIGlubGluZSBpbnQgeGVuX2hhc19y ZXN0cmljdGVkX3ZpcnRpb19tZW1vcnlfYWNjZXNzKHZvaWQpCit7CisJcmV0dXJuIElTX0VOQUJM RUQoQ09ORklHX1hFTl9WSVJUSU8pICYmIHhlbl9kb21haW4oKTsKK30KKwogI2lmZGVmIENPTkZJ R19YRU5fVU5QT1BVTEFURURfQUxMT0MKIGludCB4ZW5fYWxsb2NfdW5wb3B1bGF0ZWRfcGFnZXMo dW5zaWduZWQgaW50IG5yX3BhZ2VzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzKTsKIHZvaWQgeGVuX2Zy ZWVfdW5wb3B1bGF0ZWRfcGFnZXModW5zaWduZWQgaW50IG5yX3BhZ2VzLCBzdHJ1Y3QgcGFnZSAq KnBhZ2VzKTsKLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5l bEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=