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 X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5657FC18E5A for ; Mon, 9 Mar 2020 11:09:32 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 289452051A for ; Mon, 9 Mar 2020 11:09:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 289452051A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jBGHg-00053n-Et; Mon, 09 Mar 2020 11:09:20 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jBGHe-00053h-AF for xen-devel@lists.xenproject.org; Mon, 09 Mar 2020 11:09:18 +0000 X-Inumbo-ID: 69af9eb9-61f6-11ea-ac03-12813bfff9fa Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 69af9eb9-61f6-11ea-ac03-12813bfff9fa; Mon, 09 Mar 2020 11:09:16 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id D3635B137; Mon, 9 Mar 2020 11:09:15 +0000 (UTC) From: Jan Beulich To: "xen-devel@lists.xenproject.org" Message-ID: <83253657-b3b4-a045-b829-f8f4c4aeae28@suse.com> Date: Mon, 9 Mar 2020 12:09:20 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 Content-Language: en-US Subject: [Xen-devel] [PATCH v3] IOMMU: make DMA containment of quarantined devices optional X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Kevin Tian , Paul Durrant Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Q29udGFpbmluZyBzdGlsbCBpbiBmbGlnaHQgRE1BIHdhcyBpbnRyb2R1Y2VkIHRvIHdvcmsgYXJv dW5kIGNlcnRhaW4KZGV2aWNlcyAvIHN5c3RlbXMgaGFuZ2luZyBoYXJkIHVwb24gaGl0dGluZyBh ICJub3QtcHJlc2VudCIgSU9NTVUgZmF1bHQuClBhc3NpbmcgdGhyb3VnaCAoc3VjaCkgZGV2aWNl cyAob24gc3VjaCBzeXN0ZW1zKSBpcyBpbmhlcmVudGx5IGluc2VjdXJlCihhcyBndWVzdHMgY291 bGQgZWFzaWx5IGFycmFuZ2UgZm9yIElPTU1VIGZhdWx0cyBvZiBhbnkga2luZCB0byBvY2N1ciku CkRlZmF1bHRpbmcgdG8gYSBtb2RlIHdoZXJlIGFkbWlucyBtYXkgbm90IGV2ZW4gYmVjb21lIGF3 YXJlIG9mIGlzc3Vlcwp3aXRoIGRldmljZXMgY2FuIGJlIGNvbnNpZGVyZWQgdW5kZXNpcmFibGUu IFRoZXJlZm9yZSBjb252ZXJ0IHRoaXMgbW9kZQpvZiBvcGVyYXRpb24gdG8gYW4gb3B0aW9uYWwg b25lLCBub3Qgb25lIGVuYWJsZWQgYnkgZGVmYXVsdC4KClRoaXMgaW52b2x2ZXMgcmVzdXJyZWN0 aW5nIGNvZGUgY29tbWl0IGVhMzg4Njc4MzFkYSAoIng4NiAvIGlvbW11OiBzZXQKdXAgYSBzY3Jh dGNoIHBhZ2UgaW4gdGhlIHF1YXJhbnRpbmUgZG9tYWluIikgZGlkIHJlbW92ZSwgaW4gYSBzbGln aHRseQpleHRlbmRlZCBhbmQgYWJzdHJhY3RlZCBmYXNoaW9uLiBIZXJlLCBpbnN0ZWFkIG9mIHJl aW50cm9kdWNpbmcgYSBwcmV0dHkKcG9pbnRsZXNzIHVzZSBvZiAiZ290byIgaW4gZG9tYWluX2Nv bnRleHRfdW5tYXAoKSwgYW5kIGluc3RlYWQgb2YgbWFraW5nCnRoZSBmdW5jdGlvbiAoYXQgbGVh c3QgdGVtcG9yYXJpbHkpIGluY29uc2lzdGVudCwgdGFrZSB0aGUgb3Bwb3J0dW5pdHkKYW5kIHJl cGxhY2UgdGhlIG90aGVyIHNpbWlsYXJseSBwb2ludGxlc3MgImdvdG8iIGFzIHdlbGwuCgpJbiBv cmRlciB0byBrZXkgdGhlIHJlLWluc3RhdGVkIGJ5cGFzc2VzIG9mZiBvZiB0aGVyZSAobm90KSBi ZWluZyBhIHJvb3QKcGFnZSB0YWJsZSB0aGlzIGZ1cnRoZXIgcmVxdWlyZXMgbW92aW5nIHRoZSBh bGxvY2F0ZV9kb21haW5fcmVzb3VyY2VzKCkKaW52b2NhdGlvbiBmcm9tIHJlYXNzaWduX2Rldmlj ZSgpIHRvIGFtZF9pb21tdV9zZXR1cF9kb21haW5fZGV2aWNlKCkgKG9yCmVsc2UgcmVhc3NpZ25f ZGV2aWNlKCkgd291bGQgYWxsb2NhdGUgYSByb290IHBhZ2UgdGFibGUgYW55d2F5KTsgdGhpcyBp cwpiZW5pZ24gdG8gdGhlIHNlY29uZCBjYWxsZXIgb2YgdGhlIGxhdHRlciBmdW5jdGlvbi4KClRh a2UgdGhlIG9wcG9ydHVuaXR5IGFuZCBhbHNvIGxpbWl0IHRoZSBjb250cm9sIHRvIGJ1aWxkcyBz dXBwb3J0aW5nClBDSS4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KLS0tCkknbSBoYXBweSB0byB0YWtlIGJldHRlciBzdWdnZXN0aW9ucyB0byByZXBsYWNl IHRoZSAiZnVsbCIgY29tbWFuZCBsaW5lCm9wdGlvbiBhbmQgS2NvbmZpZyBwcm9tcHQgdG9rZW5z LiBJIGRvbid0IHRoaW5rIHRob3VnaCB0aGF0ICJmYXVsdCIgYW5kCiJ3cml0ZS1mYXVsdCIgYXJl IHJlYWxseSBzdWl0YWJsZSB0aGVyZS4KLS0tClRoaXMgcGF0Y2ggY29udGV4dHVhbGx5IGRlcGVu ZHMgb24gIltQQVRDSCB2MiAwLzVdIElPTU1VOiByZXN0cmljdAp2aXNpYmlsaXR5L3Njb3BlIGlm IGNlcnRhaW4gdmFyaWFibGVzIi4KLS0tCnYzOiBJT01NVV9xdWFyYW50aW5lX2Jhc2ljIC0+IElP TU1VX3F1YXJhbnRpbmVfZmF1bHQsCiAgICBJT01NVV9xdWFyYW50aW5lX2Z1bGwgLT4gSU9NTVVf cXVhcmFudGluZV93cml0ZV9mYXVsdC4gS2NvbmZpZwogICAgb3B0aW9uIChjaG9pY2UpIHRvIHNl bGVjdCBkZWZhdWx0LiBMaW1pdCB0byBIQVNfUENJLgp2MjogRG9uJ3QgdXNlIHRydWUvZmFsc2Uu IEludHJvZHVjZSBRVUFSQU5USU5FX1NLSVAoKSAoYWxiZWl0IEknbSBub3QKICAgIHJlYWxseSBj b252aW5jZWQgdGhpcyBpcyBhbiBpbXByb3ZlbWVudCkuIEFkZCBjb21tZW50LgoKLS0tIGEvZG9j cy9taXNjL3hlbi1jb21tYW5kLWxpbmUucGFuZG9jCisrKyBiL2RvY3MvbWlzYy94ZW4tY29tbWFu ZC1saW5lLnBhbmRvYwpAQCAtMTIzOCw3ICsxMjM4LDcgQEAgZGV0ZWN0aW9uIG9mIHN5c3RlbXMg a25vd24gdG8gbWlzYmVoYXZlCiA+IERlZmF1bHQ6IGBuZXdgIHVubGVzcyBkaXJlY3RlZC1FT0kg aXMgc3VwcG9ydGVkCiAKICMjIyBpb21tdQotICAgID0gTGlzdCBvZiBbIDxib29sPiwgdmVyYm9z ZSwgZGVidWcsIGZvcmNlLCByZXF1aXJlZCwgcXVhcmFudGluZSwKKyAgICA9IExpc3Qgb2YgWyA8 Ym9vbD4sIHZlcmJvc2UsIGRlYnVnLCBmb3JjZSwgcmVxdWlyZWQsIHF1YXJhbnRpbmVbPWZ1bGxd LAogICAgICAgICAgICAgICAgIHNoYXJlcHQsIGludHJlbWFwLCBpbnRwb3N0LCBjcmFzaC1kaXNh YmxlLAogICAgICAgICAgICAgICAgIHNub29wLCBxaW52YWwsIGlnZngsIGFtZC1pb21tdS1wZXJk ZXYtaW50cmVtYXAsCiAgICAgICAgICAgICAgICAgZG9tMC17cGFzc3Rocm91Z2gsc3RyaWN0fSBd CkBAIC0xMjc2LDExICsxMjc2LDE1IEBAIGJvb2xlYW4gKGUuZy4gYGlvbW11PW5vYCkgY2FuIG92 ZXJyaWRlIHQKICAgICB3aWxsIHByZXZlbnQgWGVuIGZyb20gYm9vdGluZyBpZiBJT01NVXMgYXJl bid0IGRpc2NvdmVyZWQgYW5kIGVuYWJsZWQKICAgICBzdWNjZXNzZnVsbHkuCiAKLSogICBUaGUg YHF1YXJhbnRpbmVgIGJvb2xlYW4gY2FuIGJlIHVzZWQgdG8gY29udHJvbCBYZW4ncyBiZWhhdmlv ciB3aGVuCi0gICAgZGUtYXNzaWduaW5nIGRldmljZXMgZnJvbSBndWVzdHMuICBJZiBlbmFibGVk ICh0aGUgZGVmYXVsdCksIFhlbiBhbHdheXMKLSAgICBxdWFyYW50aW5lcyBzdWNoIGRldmljZXM7 IHRoZXkgbXVzdCBiZSBleHBsaWNpdGx5IGFzc2lnbmVkIGJhY2sgdG8gRG9tMAotICAgIGJlZm9y ZSB0aGV5IGNhbiBiZSB1c2VkIHRoZXJlIGFnYWluLiAgSWYgZGlzYWJsZWQsIFhlbiB3aWxsIG9u bHkKLSAgICBxdWFyYW50aW5lIGRldmljZXMgdGhlIHRvb2xzdGFjayBoYXNzIGFycmFuZ2VkIGZv ciBnZXR0aW5nIHF1YXJhbnRpbmVkLgorKiAgIFRoZSBgcXVhcmFudGluZWAgb3B0aW9uIGNhbiBi ZSB1c2VkIHRvIGNvbnRyb2wgWGVuJ3MgYmVoYXZpb3Igd2hlbgorICAgIGRlLWFzc2lnbmluZyBk ZXZpY2VzIGZyb20gZ3Vlc3RzLiAgSWYgc2V0IHRvIHRydWUgKHRoZSBkZWZhdWx0KSwgWGVuCisg ICAgYWx3YXlzIHF1YXJhbnRpbmVzIHN1Y2ggZGV2aWNlczsgdGhleSBtdXN0IGJlIGV4cGxpY2l0 bHkgYXNzaWduZWQgYmFjaworICAgIHRvIERvbTAgYmVmb3JlIHRoZXkgY2FuIGJlIHVzZWQgdGhl cmUgYWdhaW4uICBJZiBzZXQgdG8gImZ1bGwiLCBzdGlsbAorICAgIGFjdGl2ZSBETUEgd2lsbCBh ZGRpdGlvbmFsbHkgYmUgZGlyZWN0ZWQgdG8gYSAic2luayIgcGFnZS4gIElmIHNldCB0bworICAg IGZhbHNlLCBYZW4gd2lsbCBvbmx5IHF1YXJhbnRpbmUgZGV2aWNlcyB0aGUgdG9vbHN0YWNrIGhh cyBhcnJhbmdlZCBmb3IKKyAgICBnZXR0aW5nIHF1YXJhbnRpbmVkLgorCisgICAgVGhpcyBvcHRp b24gaXMgb25seSB2YWxpZCBvbiBidWlsZHMgc3VwcG9ydGluZyBQQ0kuCiAKICogICBUaGUgYHNo YXJlcHRgIGJvb2xlYW4gY29udHJvbHMgd2hldGhlciB0aGUgSU9NTVUgcGFnZXRhYmxlcyBhcmUg c2hhcmVkCiAgICAgd2l0aCB0aGUgQ1BVLXNpZGUgSEFQIHBhZ2V0YWJsZXMsIG9yIGFsbG9jYXRl ZCBzZXBhcmF0ZWx5LiAgU2hhcmluZwotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9LY29u ZmlnCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL0tjb25maWcKQEAgLTI4LDMgKzI4LDMx IEBAIGVuZGlmCiAKIGNvbmZpZyBJT01NVV9GT1JDRV9QVF9TSEFSRQogCWJvb2wKKworY2hvaWNl CisJcHJvbXB0ICJJT01NVSBkZXZpY2UgcXVhcmFudGluaW5nIGRlZmF1bHQgYmVoYXZpb3IiCisJ ZGVwZW5kcyBvbiBIQVNfUENJCisJZGVmYXVsdCBJT01NVV9RVUFSQU5USU5FX0JBU0lDCisJLS0t aGVscC0tLQorCSAgV2hlbiBhIFBDSSBkZXZpY2UgaXMgYXNzaWduZWQgdG8gYW4gdW50cnVzdGVk IGRvbWFpbiwgaXQgaXMgcG9zc2libGUKKwkgIGZvciB0aGF0IGRvbWFpbiB0byBwcm9ncmFtIHRo ZSBkZXZpY2UgdG8gRE1BIHRvIGFuIGFyYml0cmFyeSBhZGRyZXNzLgorCSAgVGhlIElPTU1VIGlz IHVzZWQgdG8gcHJvdGVjdCB0aGUgaG9zdCBmcm9tIG1hbGljaW91cyBETUEgYnkgbWFraW5nCisJ ICBzdXJlIHRoYXQgdGhlIGRldmljZSBhZGRyZXNzZXMgY2FuIG9ubHkgdGFyZ2V0IG1lbW9yeSBh c3NpZ25lZCB0byB0aGUKKwkgIGd1ZXN0LiAgSG93ZXZlciwgd2hlbiB0aGUgZ3Vlc3QgZG9tYWlu IGlzIHRvcm4gZG93biwgYXNzaWduaW5nIHRoZQorCSAgZGV2aWNlIGJhY2sgdG8gdGhlIGhhcmR3 YXJlIGRvbWFpbiB3b3VsZCBhbGxvdyBhbnkgaW4tZmxpZ2h0IERNQSB0bworCSAgcG90ZW50aWFs bHkgdGFyZ2V0IGNyaXRpY2FsIGhvc3QgZGF0YS4gIFRvIGF2b2lkIHRoaXMsIHF1YXJhbnRpbmlu ZworCSAgc2hvbGQgYmUgZW5hYmxlZC4gIFF1YXJhbnRpbmluZyBjYW4gYmUgZG9uZSBpbiB0d28g d2F5czogSW4gaXRzIGJhc2ljCisJICBmb3JtLCBhbGwgaW4tZmxpZ2h0IERNQSB3aWxsIHNpbXBs eSBiZSBmb3JjZWQgdG8gZW5jb3VudGVyIElPTU1VCisJICBmYXVsdHMuICBTaW5jZSB0aGVyZSBh cmUgc3lzdGVtcyB3aGVyZSBkb2luZyBzbyBjYW4gY2F1c2UgaG9zdAorCSAgbG9ja3VwLCBhbiBh bHRlcm5hdGl2ZSBmb3JtIGlzIGF2YWlsYWJsZSB3aGVyZSB3cml0ZXMgdG8gbWVtb3J5IHdpbGwK KwkgIGJlIG1hZGUgZmF1bHQsIGJ1dCByZWFkcyB3aWxsIGJlIGRpcmVjdGVkIHRvIGEgZHVtbXkg cGFnZS4gIFRoZQorCSAgaW1wbGljYXRpb24gaGVyZSBpcyB0aGF0IHN1Y2ggcmVhZHMgd2lsbCBn byB1bm5vdGljZWQsIGkuZS4gYW4gYWRtaW4KKwkgIG1heSBub3QgYmVjb21lIGF3YXJlIG9mIHRo ZSB1bmRlcmx5aW5nIHByb2JsZW0uCisKKwljb25maWcgSU9NTVVfUVVBUkFOVElORV9OT05FCisJ CWJvb2wgIm5vbmUiCisJY29uZmlnIElPTU1VX1FVQVJBTlRJTkVfQkFTSUMKKwkJYm9vbCAiYmFz aWMiCisJY29uZmlnIElPTU1VX1FVQVJBTlRJTkVfRlVMTAorCQlib29sICJmdWxsIgorZW5kY2hv aWNlCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKKysr IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwpAQCAtMjUsNiAr MjUsOSBAQAogI2luY2x1ZGUgImlvbW11LmgiCiAjaW5jbHVkZSAiLi4vYXRzLmgiCiAKKy8qIGRv bV9pbyBpcyB1c2VkIGFzIGEgc2VudGluZWwgZm9yIHF1YXJhbnRpbmVkIGRldmljZXMgKi8KKyNk ZWZpbmUgUVVBUkFOVElORV9TS0lQKGQpICgoZCkgPT0gZG9tX2lvICYmICFkb21faW9tbXUoZCkt PmFyY2gucm9vdF90YWJsZSkKKwogc3RhdGljIGJvb2xfdCBfX3JlYWRfbW9zdGx5IGluaXRfZG9u ZTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpb21tdV9pbml0X29wcyBfaW9tbXVfaW5pdF9vcHM7 CkBAIC04MiwxOCArODUsMzUgQEAgaW50IGdldF9kbWFfcmVxdWVzdG9yX2lkKHVpbnQxNl90IHNl ZywgdQogICAgIHJldHVybiByZXFfaWQ7CiB9CiAKLXN0YXRpYyB2b2lkIGFtZF9pb21tdV9zZXR1 cF9kb21haW5fZGV2aWNlKAorc3RhdGljIGludCBfX211c3RfY2hlY2sgYWxsb2NhdGVfZG9tYWlu X3Jlc291cmNlcyhzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCkKK3sKKyAgICBpbnQgcmM7CisKKyAg ICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CisgICAgcmMgPSBhbWRfaW9tbXVf YWxsb2Nfcm9vdChoZCk7CisgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7 CisKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21t dV9zZXR1cF9kb21haW5fZGV2aWNlKAogICAgIHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0 IGFtZF9pb21tdSAqaW9tbXUsCiAgICAgdWludDhfdCBkZXZmbiwgc3RydWN0IHBjaV9kZXYgKnBk ZXYpCiB7CiAgICAgc3RydWN0IGFtZF9pb21tdV9kdGUgKnRhYmxlLCAqZHRlOwogICAgIHVuc2ln bmVkIGxvbmcgZmxhZ3M7Ci0gICAgaW50IHJlcV9pZCwgdmFsaWQgPSAxOworICAgIGludCByZXFf aWQsIHZhbGlkID0gMSwgcmM7CiAgICAgdTggYnVzID0gcGRldi0+YnVzOwotICAgIGNvbnN0IHN0 cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbWFpbik7CisgICAgc3RydWN0IGRv bWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZG9tYWluKTsKKworICAgIGlmICggUVVBUkFOVElO RV9TS0lQKGRvbWFpbikgKQorICAgICAgICByZXR1cm4gMDsKKworICAgIEJVR19PTighaGQtPmFy Y2gucGFnaW5nX21vZGUgfHwgIWlvbW11LT5kZXZfdGFibGUuYnVmZmVyKTsKIAotICAgIEJVR19P TiggIWhkLT5hcmNoLnJvb3RfdGFibGUgfHwgIWhkLT5hcmNoLnBhZ2luZ19tb2RlIHx8Ci0gICAg ICAgICAgICAhaW9tbXUtPmRldl90YWJsZS5idWZmZXIgKTsKKyAgICByYyA9IGFsbG9jYXRlX2Rv bWFpbl9yZXNvdXJjZXMoaGQpOworICAgIGlmICggcmMgKQorICAgICAgICByZXR1cm4gcmM7CiAK ICAgICBpZiAoIGlvbW11X2h3ZG9tX3Bhc3N0aHJvdWdoICYmIGlzX2hhcmR3YXJlX2RvbWFpbihk b21haW4pICkKICAgICAgICAgdmFsaWQgPSAwOwpAQCAtMTQ4LDYgKzE2OCw4IEBAIHN0YXRpYyB2 b2lkIGFtZF9pb21tdV9zZXR1cF9kb21haW5fZGV2aWMKIAogICAgICAgICBhbWRfaW9tbXVfZmx1 c2hfaW90bGIoZGV2Zm4sIHBkZXYsIElOVl9JT01NVV9BTExfUEFHRVNfQUREUkVTUywgMCk7CiAg ICAgfQorCisgICAgcmV0dXJuIDA7CiB9CiAKIGludCBfX2luaXQgYWNwaV9pdnJzX2luaXQodm9p ZCkKQEAgLTIxNywxNyArMjM5LDYgQEAgaW50IGFtZF9pb21tdV9hbGxvY19yb290KHN0cnVjdCBk b21haW5faQogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhbGxv Y2F0ZV9kb21haW5fcmVzb3VyY2VzKHN0cnVjdCBkb21haW5faW9tbXUgKmhkKQotewotICAgIGlu dCByYzsKLQotICAgIHNwaW5fbG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKLSAgICByYyA9 IGFtZF9pb21tdV9hbGxvY19yb290KGhkKTsKLSAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFw cGluZ19sb2NrKTsKLQotICAgIHJldHVybiByYzsKLX0KLQogaW50IGFtZF9pb21tdV9nZXRfcGFn aW5nX21vZGUodW5zaWduZWQgbG9uZyBlbnRyaWVzKQogewogICAgIGludCBsZXZlbCA9IDE7CkBA IC0yOTEsNiArMzAyLDkgQEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X2Rpc2FibGVfZG9tYWluX2Rl dgogICAgIGludCByZXFfaWQ7CiAgICAgdTggYnVzID0gcGRldi0+YnVzOwogCisgICAgaWYgKCBR VUFSQU5USU5FX1NLSVAoZG9tYWluKSApCisgICAgICAgIHJldHVybjsKKwogICAgIEJVR19PTiAo IGlvbW11LT5kZXZfdGFibGUuYnVmZmVyID09IE5VTEwgKTsKICAgICByZXFfaWQgPSBnZXRfZG1h X3JlcXVlc3Rvcl9pZChpb21tdS0+c2VnLCBQQ0lfQkRGMihidXMsIGRldmZuKSk7CiAgICAgdGFi bGUgPSBpb21tdS0+ZGV2X3RhYmxlLmJ1ZmZlcjsKQEAgLTMzNyw3ICszNTEsNiBAQCBzdGF0aWMg aW50IHJlYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluCiB7CiAgICAgc3RydWN0IGFtZF9pb21t dSAqaW9tbXU7CiAgICAgaW50IGJkZiwgcmM7Ci0gICAgc3RydWN0IGRvbWFpbl9pb21tdSAqdCA9 IGRvbV9pb21tdSh0YXJnZXQpOwogCiAgICAgYmRmID0gUENJX0JERjIocGRldi0+YnVzLCBwZGV2 LT5kZXZmbik7CiAgICAgaW9tbXUgPSBmaW5kX2lvbW11X2Zvcl9kZXZpY2UocGRldi0+c2VnLCBi ZGYpOwpAQCAtMzU4LDExICszNzEsMTAgQEAgc3RhdGljIGludCByZWFzc2lnbl9kZXZpY2Uoc3Ry dWN0IGRvbWFpbgogICAgICAgICBwZGV2LT5kb21haW4gPSB0YXJnZXQ7CiAgICAgfQogCi0gICAg cmMgPSBhbGxvY2F0ZV9kb21haW5fcmVzb3VyY2VzKHQpOworICAgIHJjID0gYW1kX2lvbW11X3Nl dHVwX2RvbWFpbl9kZXZpY2UodGFyZ2V0LCBpb21tdSwgZGV2Zm4sIHBkZXYpOwogICAgIGlmICgg cmMgKQogICAgICAgICByZXR1cm4gcmM7CiAKLSAgICBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2Rl dmljZSh0YXJnZXQsIGlvbW11LCBkZXZmbiwgcGRldik7CiAgICAgQU1EX0lPTU1VX0RFQlVHKCJS ZS1hc3NpZ24gJTA0eDolMDJ4OiUwMnguJXUgZnJvbSBkb20lZCB0byBkb20lZFxuIiwKICAgICAg ICAgICAgICAgICAgICAgcGRldi0+c2VnLCBwZGV2LT5idXMsIFBDSV9TTE9UKGRldmZuKSwgUENJ X0ZVTkMoZGV2Zm4pLAogICAgICAgICAgICAgICAgICAgICBzb3VyY2UtPmRvbWFpbl9pZCwgdGFy Z2V0LT5kb21haW5faWQpOwpAQCAtNTE5LDggKzUzMSw3IEBAIHN0YXRpYyBpbnQgYW1kX2lvbW11 X2FkZF9kZXZpY2UodTggZGV2Zm4KICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9t bXUtPmxvY2ssIGZsYWdzKTsKICAgICB9CiAKLSAgICBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2Rl dmljZShwZGV2LT5kb21haW4sIGlvbW11LCBkZXZmbiwgcGRldik7Ci0gICAgcmV0dXJuIDA7Cisg ICAgcmV0dXJuIGFtZF9pb21tdV9zZXR1cF9kb21haW5fZGV2aWNlKHBkZXYtPmRvbWFpbiwgaW9t bXUsIGRldmZuLCBwZGV2KTsKIH0KIAogc3RhdGljIGludCBhbWRfaW9tbXVfcmVtb3ZlX2Rldmlj ZSh1OCBkZXZmbiwgc3RydWN0IHBjaV9kZXYgKnBkZXYpCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAt MzEsOSArMzEsMjQgQEAgYm9vbF90IF9faW5pdGRhdGEgaW9tbXVfZW5hYmxlID0gMTsKIGJvb2xf dCBfX3JlYWRfbW9zdGx5IGlvbW11X2VuYWJsZWQ7CiBib29sX3QgX19yZWFkX21vc3RseSBmb3Jj ZV9pb21tdTsKIGJvb2xfdCBfX3JlYWRfbW9zdGx5IGlvbW11X3ZlcmJvc2U7Ci1ib29sIF9fcmVh ZF9tb3N0bHkgaW9tbXVfcXVhcmFudGluZSA9IHRydWU7CiBib29sX3QgX19yZWFkX21vc3RseSBp b21tdV9jcmFzaF9kaXNhYmxlOwogCisjZGVmaW5lIElPTU1VX3F1YXJhbnRpbmVfbm9uZSAgICAg ICAgMCAvKiBha2EgZmFsc2UgKi8KKyNkZWZpbmUgSU9NTVVfcXVhcmFudGluZV9mYXVsdCAgICAg ICAxIC8qIGFrYSB0cnVlICovCisjZGVmaW5lIElPTU1VX3F1YXJhbnRpbmVfd3JpdGVfZmF1bHQg MgorI2lmZGVmIENPTkZJR19IQVNfUENJCit1aW50OF90IF9fcmVhZF9tb3N0bHkgaW9tbXVfcXVh cmFudGluZSA9CisjIGlmIGRlZmluZWQoQ09ORklHX0lPTU1VX1FVQVJBTlRJTkVfTk9ORSkKKyAg ICBJT01NVV9xdWFyYW50aW5lX25vbmU7CisjIGVsaWYgZGVmaW5lZChDT05GSUdfSU9NTVVfUVVB UkFOVElORV9CQVNJQykKKyAgICBJT01NVV9xdWFyYW50aW5lX2ZhdWx0OworIyBlbGlmIGRlZmlu ZWQoQ09ORklHX0lPTU1VX1FVQVJBTlRJTkVfRlVMTCkKKyAgICBJT01NVV9xdWFyYW50aW5lX3dy aXRlX2ZhdWx0OworIyBlbmRpZgorI2Vsc2UKKyMgZGVmaW5lIGlvbW11X3F1YXJhbnRpbmUgSU9N TVVfcXVhcmFudGluZV9ub25lCisjZW5kaWYgLyogQ09ORklHX0hBU19QQ0kgKi8KKwogc3RhdGlj IGJvb2wgX19od2RvbV9pbml0ZGF0YSBpb21tdV9od2RvbV9ub25lOwogYm9vbCBfX2h3ZG9tX2lu aXRkYXRhIGlvbW11X2h3ZG9tX3N0cmljdDsKIGJvb2wgX19yZWFkX21vc3RseSBpb21tdV9od2Rv bV9wYXNzdGhyb3VnaDsKQEAgLTY4LDggKzgzLDEyIEBAIHN0YXRpYyBpbnQgX19pbml0IHBhcnNl X2lvbW11X3BhcmFtKGNvbnMKICAgICAgICAgZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29sZWFu KCJmb3JjZSIsIHMsIHNzKSkgPj0gMCB8fAogICAgICAgICAgICAgICAgICAgKHZhbCA9IHBhcnNl X2Jvb2xlYW4oInJlcXVpcmVkIiwgcywgc3MpKSA+PSAwICkKICAgICAgICAgICAgIGZvcmNlX2lv bW11ID0gdmFsOworI2lmZGVmIENPTkZJR19IQVNfUENJCiAgICAgICAgIGVsc2UgaWYgKCAodmFs ID0gcGFyc2VfYm9vbGVhbigicXVhcmFudGluZSIsIHMsIHNzKSkgPj0gMCApCiAgICAgICAgICAg ICBpb21tdV9xdWFyYW50aW5lID0gdmFsOworICAgICAgICBlbHNlIGlmICggc3MgPT0gcyArIDE1 ICYmICFzdHJuY21wKHMsICJxdWFyYW50aW5lPWZ1bGwiLCAxNSkgKQorICAgICAgICAgICAgaW9t bXVfcXVhcmFudGluZSA9IElPTU1VX3F1YXJhbnRpbmVfd3JpdGVfZmF1bHQ7CisjZW5kaWYKICNp ZmRlZiBDT05GSUdfWDg2CiAgICAgICAgIGVsc2UgaWYgKCAodmFsID0gcGFyc2VfYm9vbGVhbigi aWdmeCIsIHMsIHNzKSkgPj0gMCApCiAgICAgICAgICAgICBpb21tdV9pZ2Z4ID0gdmFsOwpAQCAt NDQ4LDcgKzQ2Nyw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGlvbW11X3F1YXJhbnRpbmVfaW5pdCgK ICAgICBkb21faW8tPm9wdGlvbnMgfD0gWEVOX0RPTUNUTF9DREZfaW9tbXU7CiAKICAgICByYyA9 IGlvbW11X2RvbWFpbl9pbml0KGRvbV9pbywgMCk7Ci0gICAgaWYgKCByYyApCisgICAgaWYgKCBy YyB8fCBpb21tdV9xdWFyYW50aW5lIDwgSU9NTVVfcXVhcmFudGluZV93cml0ZV9mYXVsdCApCiAg ICAgICAgIHJldHVybiByYzsKIAogICAgIGlmICggIWhkLT5wbGF0Zm9ybV9vcHMtPnF1YXJhbnRp bmVfaW5pdCApCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBi L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC00MSw2ICs0MSw5IEBACiAj aW5jbHVkZSAidnRkLmgiCiAjaW5jbHVkZSAiLi4vYXRzLmgiCiAKKy8qIGRvbV9pbyBpcyB1c2Vk IGFzIGEgc2VudGluZWwgZm9yIHF1YXJhbnRpbmVkIGRldmljZXMgKi8KKyNkZWZpbmUgUVVBUkFO VElORV9TS0lQKGQpICgoZCkgPT0gZG9tX2lvICYmICFkb21faW9tbXUoZCktPmFyY2gucGdkX21h ZGRyKQorCiBzdHJ1Y3QgbWFwcGVkX3JtcnIgewogICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsK ICAgICB1NjQgYmFzZSwgZW5kOwpAQCAtMTI5NCw2ICsxMjk3LDkgQEAgaW50IGRvbWFpbl9jb250 ZXh0X21hcHBpbmdfb25lKAogICAgIGludCBhZ2F3LCByYywgcmV0OwogICAgIGJvb2xfdCBmbHVz aF9kZXZfaW90bGI7CiAKKyAgICBpZiAoIFFVQVJBTlRJTkVfU0tJUChkb21haW4pICkKKyAgICAg ICAgcmV0dXJuIDA7CisKICAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CiAgICAgc3Bpbl9s b2NrKCZpb21tdS0+bG9jayk7CiAgICAgbWFkZHIgPSBidXNfdG9fY29udGV4dF9tYWRkcihpb21t dSwgYnVzKTsKQEAgLTE1NDgsNiArMTU1NCw5IEBAIGludCBkb21haW5fY29udGV4dF91bm1hcF9v bmUoCiAgICAgaW50IGlvbW11X2RvbWlkLCByYywgcmV0OwogICAgIGJvb2xfdCBmbHVzaF9kZXZf aW90bGI7CiAKKyAgICBpZiAoIFFVQVJBTlRJTkVfU0tJUChkb21haW4pICkKKyAgICAgICAgcmV0 dXJuIDA7CisKICAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CiAgICAgc3Bpbl9sb2NrKCZp b21tdS0+bG9jayk7CiAKQEAgLTE2MDksNyArMTYxOCw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2Nv bnRleHRfdW5tYXAoc3RydWN0IGQKIHsKICAgICBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQ7 CiAgICAgc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXU7Ci0gICAgaW50IHJldCA9IDA7CisgICAgaW50 IHJldDsKICAgICB1OCBzZWcgPSBwZGV2LT5zZWcsIGJ1cyA9IHBkZXYtPmJ1cywgdG1wX2J1cywg dG1wX2RldmZuLCBzZWNidXM7CiAgICAgaW50IGZvdW5kID0gMDsKIApAQCAtMTYyNSwxNCArMTYz NCwxMiBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwKHN0cnVjdCBkCiAgICAgICAg ICAgICBwcmludGsoVlREUFJFRklYICJkJWQ6SG9zdGJyaWRnZTogc2tpcCAlMDR4OiUwMng6JTAy eC4ldSB1bm1hcFxuIiwKICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgc2Vn LCBidXMsCiAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZm bikpOwotICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZG9tYWluKSApCi0gICAgICAg ICAgICByZXR1cm4gLUVQRVJNOwotICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgcmV0dXJuIGlz X2hhcmR3YXJlX2RvbWFpbihkb21haW4pID8gMCA6IC1FUEVSTTsKIAogICAgIGNhc2UgREVWX1RZ UEVfUENJZV9CUklER0U6CiAgICAgY2FzZSBERVZfVFlQRV9QQ0llMlBDSV9CUklER0U6CiAgICAg Y2FzZSBERVZfVFlQRV9MRUdBQ1lfUENJX0JSSURHRToKLSAgICAgICAgZ290byBvdXQ7CisgICAg ICAgIHJldHVybiAwOwogCiAgICAgY2FzZSBERVZfVFlQRV9QQ0llX0VORFBPSU5UOgogICAgICAg ICBpZiAoIGlvbW11X2RlYnVnICkKQEAgLTE2NzYsMTAgKzE2ODMsMTIgQEAgc3RhdGljIGludCBk b21haW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZAogICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIg VlREUFJFRklYLCAiZCVkOnVua25vd24oJXUpOiAlMDR4OiUwMng6JTAyeC4ldVxuIiwKICAgICAg ICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgcGRldi0+dHlwZSwKICAgICAgICAgICAgICAg ICBzZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwotICAgICAgICBy ZXQgPSAtRUlOVkFMOwotICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7 CiAgICAgfQogCisgICAgaWYgKCBRVUFSQU5USU5FX1NLSVAoZG9tYWluKSApCisgICAgICAgIHJl dHVybiByZXQ7CisKICAgICAvKgogICAgICAqIGlmIG5vIG90aGVyIGRldmljZXMgdW5kZXIgdGhl IHNhbWUgaW9tbXUgb3duZWQgYnkgdGhpcyBkb21haW4sCiAgICAgICogY2xlYXIgaW9tbXUgaW4g aW9tbXVfYml0bWFwIGFuZCBjbGVhciBkb21haW5faWQgaW4gZG9taWRfYml0bXAKQEAgLTE3MDUs MTYgKzE3MTQsMTIgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZAog CiAgICAgICAgIGlvbW11X2RvbWlkID0gZG9tYWluX2lvbW11X2RvbWlkKGRvbWFpbiwgaW9tbXUp OwogICAgICAgICBpZiAoIGlvbW11X2RvbWlkID09IC0xICkKLSAgICAgICAgewotICAgICAgICAg ICAgcmV0ID0gLUVJTlZBTDsKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9CisgICAg ICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAogICAgICAgICBjbGVhcl9iaXQoaW9tbXVfZG9taWQs IGlvbW11LT5kb21pZF9iaXRtYXApOwogICAgICAgICBpb21tdS0+ZG9taWRfbWFwW2lvbW11X2Rv bWlkXSA9IDA7CiAgICAgfQogCi1vdXQ6CiAgICAgcmV0dXJuIHJldDsKIH0KIAotLS0gYS94ZW4v aW5jbHVkZS94ZW4vaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaApAQCAtNTMs NyArNTMsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2xfdCBkZm5fZXEoZGZuX3QgeCwgZGZuCiB9CiAK IGV4dGVybiBib29sX3QgaW9tbXVfZW5hYmxlLCBpb21tdV9lbmFibGVkOwotZXh0ZXJuIGJvb2wg Zm9yY2VfaW9tbXUsIGlvbW11X3F1YXJhbnRpbmUsIGlvbW11X3ZlcmJvc2U7CitleHRlcm4gYm9v bCBmb3JjZV9pb21tdSwgaW9tbXVfdmVyYm9zZTsKKy8qIEJvb2xlYW4gZXhjZXB0IGZvciB0aGUg c3BlY2lmaWMgcHVycG9zZXMgb2YgZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jLiAqLworZXh0 ZXJuIHVpbnQ4X3QgaW9tbXVfcXVhcmFudGluZTsKIAogI2lmZGVmIENPTkZJR19YODYKIGV4dGVy biBlbnVtIF9fcGFja2VkIGlvbW11X2ludHJlbWFwIHsKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby94ZW4tZGV2ZWw=