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=-8.4 required=3.0 tests=DKIM_ADSP_ALL,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 8E04AC432C0 for ; Wed, 27 Nov 2019 17:12:17 +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 4EBEB206E0 for ; Wed, 27 Nov 2019 17:12:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amazon.com header.i=@amazon.com header.b="oqrDwdS9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4EBEB206E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amazon.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 1ia0r2-0003lQ-Vo; Wed, 27 Nov 2019 17:11:52 +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 1ia0r2-0003lL-A4 for xen-devel@lists.xenproject.org; Wed, 27 Nov 2019 17:11:52 +0000 X-Inumbo-ID: 00917114-1139-11ea-a3ba-12813bfff9fa Received: from smtp-fw-4101.amazon.com (unknown [72.21.198.25]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 00917114-1139-11ea-a3ba-12813bfff9fa; Wed, 27 Nov 2019 17:11:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1574874712; x=1606410712; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=jQqIwO37S4WgwG6fxxLLKtAsd8Ba3mnm5iPgRpfYWh0=; b=oqrDwdS9pNUlklUgzrjX2+2wExnZ3kLyt9XORcUGetntAIaX476wcnWf ZVlTv8gIeUgH+mf4roWy0zArFYy0KELoog7GtSIU2Q8nPwlz7vlkkKago wJu+LzVqNcw17BiDbxNL/58EFgJy7DZcPKmCbKlVFRz5SzQaLqtZBByIO g=; IronPort-SDR: d1e+HJVPOQskW5V53Bqpp+/N0jmLsWpC0c4CUuRVnxns84c4HNNr+dFYn+6d+OQinLCeZ1WdXU Br5bIwz9vbZA== X-IronPort-AV: E=Sophos;i="5.69,250,1571702400"; d="scan'208";a="6053282" Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-1e-17c49630.us-east-1.amazon.com) ([10.124.125.6]) by smtp-border-fw-out-4101.iad4.amazon.com with ESMTP; 27 Nov 2019 17:11:51 +0000 Received: from EX13MTAUEA001.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan3.iad.amazon.com [10.40.159.166]) by email-inbound-relay-1e-17c49630.us-east-1.amazon.com (Postfix) with ESMTPS id 98776A1D6B; Wed, 27 Nov 2019 17:11:49 +0000 (UTC) Received: from EX13D32EUC003.ant.amazon.com (10.43.164.24) by EX13MTAUEA001.ant.amazon.com (10.43.61.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 27 Nov 2019 17:11:48 +0000 Received: from EX13MTAUWC001.ant.amazon.com (10.43.162.135) by EX13D32EUC003.ant.amazon.com (10.43.164.24) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 27 Nov 2019 17:11:47 +0000 Received: from u2f063a87eabd5f.cbg10.amazon.com (10.125.106.135) by mail-relay.amazon.com (10.43.162.232) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Wed, 27 Nov 2019 17:11:44 +0000 From: Paul Durrant To: Date: Wed, 27 Nov 2019 17:11:43 +0000 Message-ID: <20191127171143.27399-1-pdurrant@amazon.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH v2] x86 / iommu: set up a scratch page in the quarantine domain X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Kevin Tian , Wei Liu , Andrew Cooper , Paul Durrant , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGlvbW11X29wIHRvIGZhY2lsaXRhdGUgYSBwZXIt aW1wbGVtZW50YXRpb24KcXVhcmFudGluZSBzZXQgdXAsIGFuZCB0aGVuIGZ1cnRoZXIgY29kZSBm b3IgeDg2IGltcGxlbWVudGF0aW9ucwooYW1kIGFuZCB2dGQpIHRvIHNldCB1cCBhIHJlYWQtb25s eSBzY3JhdGNoIHBhZ2UgdG8gc2VydmUgYXMgdGhlIHNvdXJjZQpmb3IgRE1BIHJlYWRzIHdoaWxz dCBhIGRldmljZSBpcyBhc3NpZ25lZCB0byBkb21faW8uIERNQSB3cml0ZXMgd2lsbApjb250aW51 ZSB0byBmYXVsdCBhcyBiZWZvcmUuCgpUaGUgcmVhc29uIGZvciBkb2luZyB0aGlzIGlzIHRoYXQg c29tZSBoYXJkd2FyZSBtYXkgY29udGludWUgdG8gcmUtdHJ5CkRNQSAoZGVzcGl0ZSBGTFIpIGlu IHRoZSBldmVudCBvZiBhbiBlcnJvciwgb3IgZXZlbiBCTUUgYmVpbmcgY2xlYXJlZCwgYW5kCndp bGwgZmFpbCB0byBkZWFsIHdpdGggRE1BIHJlYWQgZmF1bHRzIGdyYWNlZnVsbHkuIEhhdmluZyBh IHNjcmF0Y2ggcGFnZQptYXBwZWQgd2lsbCBhbGxvdyBwZW5kaW5nIERNQSByZWFkcyB0byBjb21w bGV0ZSBhbmQgdGh1cyBzdWNoIGJ1Z2d5CmhhcmR3YXJlIHdpbGwgZXZlbnR1YWxseSBiZSBxdWll c2NlZC4KCk5PVEU6IFRoZXNlIG1vZGlmaWNhdGlvbnMgYXJlIHJlc3RyaWN0ZWQgdG8geDg2IGlt cGxlbWVudGF0aW9ucyBvbmx5IGFzCiAgICAgIHRoZSBidWdneSBoL3cgSSBhbSBhd2FyZSBvZiBp cyBvbmx5IHVzZWQgd2l0aCBYZW4gaW4gYW4geDg2CiAgICAgIGVudmlyb25tZW50LiBBUk0gbWF5 IHJlcXVpcmUgc2ltaWxhciBjb2RlIGJ1dCwgc2luY2UgSSBhbSBub3QKICAgICAgYXdhcmUgb2Yg dGhlIG5lZWQsIHRoaXMgcGF0Y2ggZG9lcyBub3QgbW9kaWZ5IGFueSBBUk0gaW1wbGVtZW50YXRp b24uCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBkdXJyYW50QGFtYXpvbi5jb20+Ci0t LQpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50 ZWwuY29tPgpDYzogV2VpIExpdSA8d2xAeGVuLm9yZz4KQ2M6ICJSb2dlciBQYXUgTW9ubsOpIiA8 cm9nZXIucGF1QGNpdHJpeC5jb20+Cgp2MjoKIC0gQWRkcmVzc2VkIGNvbW1lbnRzIGZyb20gSmFu CgpUaGVyZSBpcyBzdGlsbCB0aGUgb3BlbiBxdWVzdGlvbiBvZiB3aGV0aGVyIHVzZSBvZiBhIHNj cmF0Y2ggcGFnZSBvdWdodAp0byBiZSBnYXRlZCBvbiBzb21ldGhpbmcsIGVpdGhlciBhcmUgcnVu LXRpbWUgb3IgY29tcGlsZS10aW1lLgotLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9p b21tdV9tYXAuYyAgICAgICB8IDYyICsrKysrKysrKysrKysrKysKIHhlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMgICB8IDE0ICsrLS0KIHhlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2lvbW11LmMgICAgICAgICAgICAgICB8IDIwICsrKysrLQogeGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvdnRkL2lvbW11LmMgICAgICAgICAgIHwgNzIgKysrKysrKysrKysrKysrLS0tLQog eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1wcm90by5oIHwgIDMgKwogeGVu L2luY2x1ZGUveGVuL2lvbW11LmggICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogNiBmaWxl cyBjaGFuZ2VkLCAxNDggaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCmluZGV4IGNkNWM3ZGU3YzUuLjU0ZTFkMTMyZDkg MTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYworKysg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKQEAgLTU2MCw2ICs1NjAs NjggQEAgaW50IGFtZF9pb21tdV9yZXNlcnZlX2RvbWFpbl91bml0eV9tYXAoc3RydWN0IGRvbWFp biAqZG9tYWluLAogICAgIHJldHVybiBydDsKIH0KIAoraW50IF9faW5pdCBhbWRfaW9tbXVfcXVh cmFudGluZV9pbml0KHN0cnVjdCBkb21haW4gKmQpCit7CisgICAgc3RydWN0IGRvbWFpbl9pb21t dSAqaGQgPSBkb21faW9tbXUoZCk7CisgICAgdW5zaWduZWQgbG9uZyBtYXhfZ2ZuID0KKyAgICAg ICAgUEZOX0RPV04oKDF1bCA8PCBERUZBVUxUX0RPTUFJTl9BRERSRVNTX1dJRFRIKSAtIDEpOwor ICAgIHVuc2lnbmVkIGludCBsZXZlbCA9IGFtZF9pb21tdV9nZXRfcGFnaW5nX21vZGUobWF4X2dm bik7CisgICAgc3RydWN0IGFtZF9pb21tdV9wdGUgKnRhYmxlOworCisgICAgaWYgKCBoZC0+YXJj aC5yb290X3RhYmxlICkKKyAgICB7CisgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAg ICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdf bG9jayk7CisKKyAgICBoZC0+YXJjaC5yb290X3RhYmxlID0gYWxsb2NfYW1kX2lvbW11X3BndGFi bGUoKTsKKyAgICBpZiAoICFoZC0+YXJjaC5yb290X3RhYmxlICkKKyAgICAgICAgZ290byBvdXQ7 CisKKyAgICB0YWJsZSA9IF9fbWFwX2RvbWFpbl9wYWdlKGhkLT5hcmNoLnJvb3RfdGFibGUpOwor ICAgIHdoaWxlICggbGV2ZWwgKQorICAgIHsKKyAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7 CisgICAgICAgIHVuc2lnbmVkIGludCBpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFRoZSBw Z3RhYmxlIGFsbG9jYXRvciBpcyBmaW5lIGZvciB0aGUgbGVhZiBwYWdlLCBhcyB3ZWxsIGFzCisg ICAgICAgICAqIHBhZ2UgdGFibGUgcGFnZXMsIGFuZCB0aGUgcmVzdWx0aW5nIGFsbG9jYXRpb25z IGFyZSBhbHdheXMKKyAgICAgICAgICogemVyb2VkLgorICAgICAgICAgKi8KKyAgICAgICAgcGcg PSBhbGxvY19hbWRfaW9tbXVfcGd0YWJsZSgpOworICAgICAgICBpZiAoICFwZyApCisgICAgICAg ICAgICBicmVhazsKKworICAgICAgICBmb3IgKCBpID0gMDsgaSA8IFBURV9QRVJfVEFCTEVfU0la RTsgaSsrICkKKyAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IGFtZF9pb21tdV9wdGUgKnBk ZSA9ICZ0YWJsZVtpXTsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFBERXMgYXJl IGVzc2VudGlhbGx5IGEgc3Vic2V0IG9mIFBURXMsIHNvIHRoaXMgZnVuY3Rpb24KKyAgICAgICAg ICAgICAqIGlzIGZpbmUgdG8gdXNlIGV2ZW4gYXQgdGhlIGxlYWYuCisgICAgICAgICAgICAgKi8K KyAgICAgICAgICAgIHNldF9pb21tdV9wZGVfcHJlc2VudChwZGUsIG1mbl94KHBhZ2VfdG9fbWZu KHBnKSksIGxldmVsIC0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxz ZSwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICB1bm1hcF9kb21haW5fcGFnZSh0YWJsZSk7 CisgICAgICAgIHRhYmxlID0gX19tYXBfZG9tYWluX3BhZ2UocGcpOworICAgICAgICBsZXZlbC0t OworICAgIH0KKyAgICB1bm1hcF9kb21haW5fcGFnZSh0YWJsZSk7CisKKyBvdXQ6CisgICAgc3Bp bl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CisKKyAgICBhbWRfaW9tbXVfZmx1c2hf YWxsX3BhZ2VzKGQpOworCisgICAgLyogUGFnZXMgbGVha2VkIGluIGZhaWx1cmUgY2FzZSAqLwor ICAgIHJldHVybiBsZXZlbCA/IC1FTk9NRU0gOiAwOworfQorCiAvKgogICogTG9jYWwgdmFyaWFi bGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L3BjaV9hbWRfaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lv bW11LmMKaW5kZXggNzVhMGYxYjRhYi4uNGRhNjUxODc3MyAxMDA2NDQKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCkBAIC05NSwxMCArOTUsNiBAQCBzdGF0aWMgdm9p ZCBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZSgKICAgICB1OCBidXMgPSBwZGV2LT5idXM7 CiAgICAgY29uc3Qgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZG9tYWluKTsK IAotICAgIC8qIGRvbV9pbyBpcyB1c2VkIGFzIGEgc2VudGluZWwgZm9yIHF1YXJhbnRpbmVkIGRl dmljZXMgKi8KLSAgICBpZiAoIGRvbWFpbiA9PSBkb21faW8gKQotICAgICAgICByZXR1cm47Ci0K ICAgICBCVUdfT04oICFoZC0+YXJjaC5yb290X3RhYmxlIHx8ICFoZC0+YXJjaC5wYWdpbmdfbW9k ZSB8fAogICAgICAgICAgICAgIWlvbW11LT5kZXZfdGFibGUuYnVmZmVyICk7CiAKQEAgLTIzNSw3 ICsyMzEsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhbGxvY2F0ZV9kb21haW5fcmVzb3Vy Y2VzKHN0cnVjdCBkb21haW5faW9tbXUgKmhkKQogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGlj IGludCBnZXRfcGFnaW5nX21vZGUodW5zaWduZWQgbG9uZyBlbnRyaWVzKQoraW50IGFtZF9pb21t dV9nZXRfcGFnaW5nX21vZGUodW5zaWduZWQgbG9uZyBlbnRyaWVzKQogewogICAgIGludCBsZXZl bCA9IDE7CiAKQEAgLTI1Nyw3ICsyNTMsOCBAQCBzdGF0aWMgaW50IGFtZF9pb21tdV9kb21haW5f aW5pdChzdHJ1Y3QgZG9tYWluICpkKQogCiAgICAgLyogRm9yIHB2IGFuZCBkb20wLCBzdGljayB3 aXRoIGdldF9wYWdpbmdfbW9kZShtYXhfcGFnZSkKICAgICAgKiBGb3IgSFZNIGRvbTAsIHVzZSAy IGxldmVsIHBhZ2UgdGFibGUgYXQgZmlyc3QgKi8KLSAgICBoZC0+YXJjaC5wYWdpbmdfbW9kZSA9 IGlzX2h2bV9kb21haW4oZCkgPyAyIDogZ2V0X3BhZ2luZ19tb2RlKG1heF9wYWdlKTsKKyAgICBo ZC0+YXJjaC5wYWdpbmdfbW9kZSA9IGlzX2h2bV9kb21haW4oZCkgPworICAgICAgICAyIDogYW1k X2lvbW11X2dldF9wYWdpbmdfbW9kZShtYXhfcGFnZSk7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAg LTI5MCwxMCArMjg3LDYgQEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X2Rpc2FibGVfZG9tYWluX2Rl dmljZShjb25zdCBzdHJ1Y3QgZG9tYWluICpkb21haW4sCiAgICAgaW50IHJlcV9pZDsKICAgICB1 OCBidXMgPSBwZGV2LT5idXM7CiAKLSAgICAvKiBkb21faW8gaXMgdXNlZCBhcyBhIHNlbnRpbmVs IGZvciBxdWFyYW50aW5lZCBkZXZpY2VzICovCi0gICAgaWYgKCBkb21haW4gPT0gZG9tX2lvICkK LSAgICAgICAgcmV0dXJuOwotCiAgICAgQlVHX09OICggaW9tbXUtPmRldl90YWJsZS5idWZmZXIg PT0gTlVMTCApOwogICAgIHJlcV9pZCA9IGdldF9kbWFfcmVxdWVzdG9yX2lkKGlvbW11LT5zZWcs IFBDSV9CREYyKGJ1cywgZGV2Zm4pKTsKICAgICB0YWJsZSA9IGlvbW11LT5kZXZfdGFibGUuYnVm ZmVyOwpAQCAtNjMyLDYgKzYyNSw3IEBAIHN0YXRpYyB2b2lkIGFtZF9kdW1wX3AybV90YWJsZShz dHJ1Y3QgZG9tYWluICpkKQogc3RhdGljIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgX19pbml0Y29u c3RyZWwgX2lvbW11X29wcyA9IHsKICAgICAuaW5pdCA9IGFtZF9pb21tdV9kb21haW5faW5pdCwK ICAgICAuaHdkb21faW5pdCA9IGFtZF9pb21tdV9od2RvbV9pbml0LAorICAgIC5xdWFyYW50aW5l X2luaXQgPSBhbWRfaW9tbXVfcXVhcmFudGluZV9pbml0LAogICAgIC5hZGRfZGV2aWNlID0gYW1k X2lvbW11X2FkZF9kZXZpY2UsCiAgICAgLnJlbW92ZV9kZXZpY2UgPSBhbWRfaW9tbXVfcmVtb3Zl X2RldmljZSwKICAgICAuYXNzaWduX2RldmljZSAgPSBhbWRfaW9tbXVfYXNzaWduX2RldmljZSwK ZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IDhjYmU5MDhmZmYuLjc5Zjg0MmUzNDAgMTAwNjQ0 Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAtNDQwLDYgKzQ0MCwyMyBAQCBpbnQgaW9tbXVfaW90bGJf Zmx1c2hfYWxsKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBmbHVzaF9mbGFncykKICAg ICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBpbnQgX19pbml0IGlvbW11X3F1YXJhbnRpbmVfaW5p dCh2b2lkKQoreworICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11 KGRvbV9pbyk7CisgICAgaW50IHJjOworCisgICAgZG9tX2lvLT5vcHRpb25zIHw9IFhFTl9ET01D VExfQ0RGX2lvbW11OworCisgICAgcmMgPSBpb21tdV9kb21haW5faW5pdChkb21faW8sIDApOwor ICAgIGlmICggcmMgKQorICAgICAgICByZXR1cm4gcmM7CisKKyAgICBpZiAoICFoZC0+cGxhdGZv cm1fb3BzLT5xdWFyYW50aW5lX2luaXQgKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy biBoZC0+cGxhdGZvcm1fb3BzLT5xdWFyYW50aW5lX2luaXQoZG9tX2lvKTsKK30KKwogaW50IF9f aW5pdCBpb21tdV9zZXR1cCh2b2lkKQogewogICAgIGludCByYyA9IC1FTk9ERVY7CkBAIC00NzMs OCArNDkwLDcgQEAgaW50IF9faW5pdCBpb21tdV9zZXR1cCh2b2lkKQogICAgIH0KICAgICBlbHNl CiAgICAgewotICAgICAgICBkb21faW8tPm9wdGlvbnMgfD0gWEVOX0RPTUNUTF9DREZfaW9tbXU7 Ci0gICAgICAgIGlmICggaW9tbXVfZG9tYWluX2luaXQoZG9tX2lvLCAwKSApCisgICAgICAgIGlm ICggaW9tbXVfcXVhcmFudGluZV9pbml0KCkgKQogICAgICAgICAgICAgcGFuaWMoIkNvdWxkIG5v dCBzZXQgdXAgcXVhcmFudGluZVxuIik7CiAKICAgICAgICAgcHJpbnRrKCIgLSBEb20wIG1vZGU6 ICVzXG4iLApkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwppbmRleCAyNWFkNjQ5YzM0Li4x ZTUwMjEzMWQ3IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpAQCAtMTI5MSwxMCAr MTI5MSw2IEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAgICBpbnQgYWdhdywg cmMsIHJldDsKICAgICBib29sX3QgZmx1c2hfZGV2X2lvdGxiOwogCi0gICAgLyogZG9tX2lvIGlz IHVzZWQgYXMgYSBzZW50aW5lbCBmb3IgcXVhcmFudGluZWQgZGV2aWNlcyAqLwotICAgIGlmICgg ZG9tYWluID09IGRvbV9pbyApCi0gICAgICAgIHJldHVybiAwOwotCiAgICAgQVNTRVJUKHBjaWRl dnNfbG9ja2VkKCkpOwogICAgIHNwaW5fbG9jaygmaW9tbXUtPmxvY2spOwogICAgIG1hZGRyID0g YnVzX3RvX2NvbnRleHRfbWFkZHIoaW9tbXUsIGJ1cyk7CkBAIC0xNTQxLDEwICsxNTM3LDYgQEAg aW50IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZSgKICAgICBpbnQgaW9tbXVfZG9taWQsIHJjLCBy ZXQ7CiAgICAgYm9vbF90IGZsdXNoX2Rldl9pb3RsYjsKIAotICAgIC8qIGRvbV9pbyBpcyB1c2Vk IGFzIGEgc2VudGluZWwgZm9yIHF1YXJhbnRpbmVkIGRldmljZXMgKi8KLSAgICBpZiAoIGRvbWFp biA9PSBkb21faW8gKQotICAgICAgICByZXR1cm4gMDsKLQogICAgIEFTU0VSVChwY2lkZXZzX2xv Y2tlZCgpKTsKICAgICBzcGluX2xvY2soJmlvbW11LT5sb2NrKTsKIApAQCAtMTY3NywxMCArMTY2 OSw2IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3RydWN0IGRvbWFpbiAqZG9t YWluLCB1OCBkZXZmbiwKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCi0gICAgLyogZG9tX2lv IGlzIHVzZWQgYXMgYSBzZW50aW5lbCBmb3IgcXVhcmFudGluZWQgZGV2aWNlcyAqLwotICAgIGlm ICggZG9tYWluID09IGRvbV9pbyApCi0gICAgICAgIGdvdG8gb3V0OwotCiAgICAgLyoKICAgICAg KiBpZiBubyBvdGhlciBkZXZpY2VzIHVuZGVyIHRoZSBzYW1lIGlvbW11IG93bmVkIGJ5IHRoaXMg ZG9tYWluLAogICAgICAqIGNsZWFyIGlvbW11IGluIGlvbW11X2JpdG1hcCBhbmQgY2xlYXIgZG9t YWluX2lkIGluIGRvbWlkX2JpdG1wCkBAIC0yNjgzLDkgKzI2NzEsNjkgQEAgc3RhdGljIHZvaWQg dnRkX2R1bXBfcDJtX3RhYmxlKHN0cnVjdCBkb21haW4gKmQpCiAgICAgdnRkX2R1bXBfcDJtX3Rh YmxlX2xldmVsKGhkLT5hcmNoLnBnZF9tYWRkciwgYWdhd190b19sZXZlbChoZC0+YXJjaC5hZ2F3 KSwgMCwgMCk7CiB9CiAKK3N0YXRpYyBpbnQgX19pbml0IGludGVsX2lvbW11X3F1YXJhbnRpbmVf aW5pdChzdHJ1Y3QgZG9tYWluICpkKQoreworICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0g ZG9tX2lvbW11KGQpOworICAgIHN0cnVjdCBkbWFfcHRlICpwYXJlbnQ7CisgICAgdW5zaWduZWQg aW50IGFnYXcgPSB3aWR0aF90b19hZ2F3KERFRkFVTFRfRE9NQUlOX0FERFJFU1NfV0lEVEgpOwor ICAgIHVuc2lnbmVkIGludCBsZXZlbCA9IGFnYXdfdG9fbGV2ZWwoYWdhdyk7CisgICAgaW50IHJj OworCisgICAgaWYgKCBoZC0+YXJjaC5wZ2RfbWFkZHIgKQorICAgIHsKKyAgICAgICAgQVNTRVJU X1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHNwaW5fbG9j aygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKKworICAgIGhkLT5hcmNoLnBnZF9tYWRkciA9IGFs bG9jX3BndGFibGVfbWFkZHIoMSwgaGQtPm5vZGUpOworICAgIGlmICggIWhkLT5hcmNoLnBnZF9t YWRkciApCisgICAgICAgIGdvdG8gb3V0OworCisgICAgcGFyZW50ID0gbWFwX3Z0ZF9kb21haW5f cGFnZShoZC0+YXJjaC5wZ2RfbWFkZHIpOworICAgIHdoaWxlICggbGV2ZWwgKQorICAgIHsKKyAg ICAgICAgdWludDY0X3QgbWFkZHI7CisgICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQ7CisKKyAg ICAgICAgLyoKKyAgICAgICAgICogVGhlIHBndGFibGUgYWxsb2NhdG9yIGlzIGZpbmUgZm9yIHRo ZSBsZWFmIHBhZ2UsIGFzIHdlbGwgYXMKKyAgICAgICAgICogcGFnZSB0YWJsZSBwYWdlcywgYW5k IHRoZSByZXN1bHRpbmcgYWxsb2NhdGlvbnMgYXJlIGFsd2F5cworICAgICAgICAgKiB6ZXJvZWQu CisgICAgICAgICAqLworICAgICAgICBtYWRkciA9IGFsbG9jX3BndGFibGVfbWFkZHIoMSwgaGQt Pm5vZGUpOworICAgICAgICBpZiAoICFtYWRkciApCisgICAgICAgICAgICBicmVhazsKKworICAg ICAgICBmb3IgKCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBQVEVfTlVNOyBvZmZzZXQrKyApCisgICAg ICAgIHsKKyAgICAgICAgICAgIHN0cnVjdCBkbWFfcHRlICpwdGUgPSAmcGFyZW50W29mZnNldF07 CisKKyAgICAgICAgICAgIGRtYV9zZXRfcHRlX2FkZHIoKnB0ZSwgbWFkZHIpOworICAgICAgICAg ICAgZG1hX3NldF9wdGVfcmVhZGFibGUoKnB0ZSk7CisgICAgICAgIH0KKyAgICAgICAgaW9tbXVf Zmx1c2hfY2FjaGVfcGFnZShwYXJlbnQsIDEpOworCisgICAgICAgIHVubWFwX3Z0ZF9kb21haW5f cGFnZShwYXJlbnQpOworICAgICAgICBwYXJlbnQgPSBtYXBfdnRkX2RvbWFpbl9wYWdlKG1hZGRy KTsKKyAgICAgICAgbGV2ZWwtLTsKKyAgICB9CisgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKHBh cmVudCk7CisKKyBvdXQ6CisgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7 CisKKyAgICByYyA9IGlvbW11X2ZsdXNoX2lvdGxiX2FsbChkKTsKKworICAgIC8qIFBhZ2VzIGxl YWtlZCBpbiBmYWlsdXJlIGNhc2UgKi8KKyAgICByZXR1cm4gbGV2ZWwgPyAtRU5PTUVNIDogcmM7 Cit9CisKIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgX19pbml0Y29uc3RyZWwgaW50ZWxfaW9tbXVf b3BzID0gewogICAgIC5pbml0ID0gaW50ZWxfaW9tbXVfZG9tYWluX2luaXQsCiAgICAgLmh3ZG9t X2luaXQgPSBpbnRlbF9pb21tdV9od2RvbV9pbml0LAorICAgIC5xdWFyYW50aW5lX2luaXQgPSBp bnRlbF9pb21tdV9xdWFyYW50aW5lX2luaXQsCiAgICAgLmFkZF9kZXZpY2UgPSBpbnRlbF9pb21t dV9hZGRfZGV2aWNlLAogICAgIC5lbmFibGVfZGV2aWNlID0gaW50ZWxfaW9tbXVfZW5hYmxlX2Rl dmljZSwKICAgICAucmVtb3ZlX2RldmljZSA9IGludGVsX2lvbW11X3JlbW92ZV9kZXZpY2UsCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LXByb3RvLmgg Yi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LXByb3RvLmgKaW5kZXggOGVk OTQ4Mjc5MS4uNjY0ZGZjOTNiOSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0v c3ZtL2FtZC1pb21tdS1wcm90by5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9h bWQtaW9tbXUtcHJvdG8uaApAQCAtNTQsNiArNTQsOSBAQCBpbnQgYW1kX2lvbW11X2luaXRfbGF0 ZSh2b2lkKTsKIGludCBhbWRfaW9tbXVfdXBkYXRlX2l2cnNfbWFwcGluZ19hY3BpKHZvaWQpOwog aW50IGlvdl9hZGp1c3RfaXJxX2FmZmluaXRpZXModm9pZCk7CiAKK2ludCBhbWRfaW9tbXVfZ2V0 X3BhZ2luZ19tb2RlKHVuc2lnbmVkIGxvbmcgZW50cmllcyk7CitpbnQgYW1kX2lvbW11X3F1YXJh bnRpbmVfaW5pdChzdHJ1Y3QgZG9tYWluICpkKTsKKwogLyogbWFwcGluZyBmdW5jdGlvbnMgKi8K IGludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRm bl90IGRmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbiwg dW5zaWduZWQgaW50IGZsYWdzLApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2lvbW11Lmgg Yi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAppbmRleCA5NzRiZDNmZmU4Li42OTc3ZGRiYjk3IDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4v aW9tbXUuaApAQCAtMjExLDYgKzIxMSw3IEBAIHR5cGVkZWYgaW50IGlvbW11X2dyZG1fdCh4ZW5f cGZuX3Qgc3RhcnQsIHhlbl91bG9uZ190IG5yLCB1MzIgaWQsIHZvaWQgKmN0eHQpOwogc3RydWN0 IGlvbW11X29wcyB7CiAgICAgaW50ICgqaW5pdCkoc3RydWN0IGRvbWFpbiAqZCk7CiAgICAgdm9p ZCAoKmh3ZG9tX2luaXQpKHN0cnVjdCBkb21haW4gKmQpOworICAgIGludCAoKnF1YXJhbnRpbmVf aW5pdCkoc3RydWN0IGRvbWFpbiAqZCk7CiAgICAgaW50ICgqYWRkX2RldmljZSkodTggZGV2Zm4s IGRldmljZV90ICpkZXYpOwogICAgIGludCAoKmVuYWJsZV9kZXZpY2UpKGRldmljZV90ICpkZXYp OwogICAgIGludCAoKnJlbW92ZV9kZXZpY2UpKHU4IGRldmZuLCBkZXZpY2VfdCAqZGV2KTsKLS0g CjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=