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,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 B764EC33CAC for ; Thu, 6 Feb 2020 18:59: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 7A5A520838 for ; Thu, 6 Feb 2020 18:59: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="pVzA4zhp" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7A5A520838 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 1izmMj-0006u3-7g; Thu, 06 Feb 2020 18:59:05 +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 1izmMh-0006ts-O0 for xen-devel@lists.xenproject.org; Thu, 06 Feb 2020 18:59:03 +0000 X-Inumbo-ID: bd0d2cef-4912-11ea-b05f-12813bfff9fa Received: from smtp-fw-33001.amazon.com (unknown [207.171.190.10]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id bd0d2cef-4912-11ea-b05f-12813bfff9fa; Thu, 06 Feb 2020 18:59:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1581015543; x=1612551543; h=from:to:cc:subject:date:message-id:mime-version; bh=yHTavKG7az9fR1IYsiGhpBJyhG+uXG1b0q7Ua++ldAc=; b=pVzA4zhpeFMUM3WVythzwLFbpdKDQZbvUdWi+jPE7YquVx/ayWFvO8ur QtpX9A4s/gLIpAjyS7pza2rj2vYtPdaRNE7sfLVSDNC9HRc9MwCN+loU6 0M1I9ocJXljPP1oW6t8sap2H8cnAt+8gOgUlMM3MtGU6y4ZSAtIDSXMKu Y=; IronPort-SDR: Ox6iZX0pi3834SzP4XM9pHVeIsOjzfrZLIUELJrtVKViyFW6MswbgKpeK5c85BaJ7cuC+7r63v 52JlxCLBH6JQ== X-IronPort-AV: E=Sophos;i="5.70,410,1574121600"; d="scan'208";a="24865703" Received: from sea32-co-svc-lb4-vlan3.sea.corp.amazon.com (HELO email-inbound-relay-1d-9ec21598.us-east-1.amazon.com) ([10.47.23.38]) by smtp-border-fw-out-33001.sea14.amazon.com with ESMTP; 06 Feb 2020 18:58:50 +0000 Received: from EX13MTAUEA002.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan3.iad.amazon.com [10.40.159.166]) by email-inbound-relay-1d-9ec21598.us-east-1.amazon.com (Postfix) with ESMTPS id 22B3EA292E; Thu, 6 Feb 2020 18:58:47 +0000 (UTC) Received: from EX13D37EUB004.ant.amazon.com (10.43.166.187) by EX13MTAUEA002.ant.amazon.com (10.43.61.77) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Thu, 6 Feb 2020 18:58:47 +0000 Received: from EX13MTAUWA001.ant.amazon.com (10.43.160.58) by EX13D37EUB004.ant.amazon.com (10.43.166.187) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 6 Feb 2020 18:58:46 +0000 Received: from u0b3720fa96e858.ant.amazon.com (10.125.106.133) by mail-relay.amazon.com (10.43.160.118) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Thu, 6 Feb 2020 18:58:43 +0000 From: Hongyan Xia To: Date: Thu, 6 Feb 2020 18:58:23 +0000 Message-ID: <4058e92ce21627731c49b588a95809dc0affd83a.1581015491.git.hongyxia@amazon.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH v2] x86/domain_page: implement pure per-vCPU mapping infrastructure 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: Wei Liu , Andrew Cooper , jgrall@amazon.com, Hongyan Xia , 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" UmV3cml0ZSB0aGUgbWFwY2FjaGUgdG8gYmUgcHVyZWx5IHBlci12Q1BVIGluc3RlYWQgb2YgcGFy dGlhbGx5IHBlci12Y3B1CmFuZCBwYXJ0aWFsbHkgcGVyLWRvbWFpbi4KClRoZSBleGlzdGluZyBt YXBjYWNoZSBpbXBsZW1lbnRhdGlvbiBrZWVwcyBwZXItdmNwdSBoYXNoIHRhYmxlcyBmb3IKY2Fj aGluZywgYnV0IGFsc28gY3JlYXRlcyBhIHBlci1kb21haW4gcmVnaW9uIHdoaWNoIGlzIHNoYXJl ZCBieSBhbGwKdmNwdXMgYW5kIHByb3RlY3RlZCBieSBhIHBlci1kb21haW4gbG9jay4gV2hlbiB0 aGUgdmNwdSBjb3VudCBvZiBhCmRvbWFpbiBpcyBsYXJnZSwgdGhlIHBlci1kb21haW4gbG9jayBj b250ZW50aW9uIGlzIGhpZ2guIEFsc28sIHNldmVyYWwKZGF0YSBzdHJ1Y3R1cmVzIGFyZSBzaGFy ZWQgYW1vbmcgYWxsIHZjcHVzLCBwb3RlbnRpYWxseSBjcmVhdGluZyBzZXJpb3VzCmNhY2hlIHBp bmctcG9uZyBlZmZlY3RzLiBQZXJmb3JtYW5jZSBkZWdyYWRhdGlvbiBjYW4gYmUgc2VlbiBvbiBk b21haW5zCndpdGggPjE2IHZjcHVzLgoKVGhpcyBwYXRjaCBpcyBuZWVkZWQgdG8gYWRkcmVzcyB0 aGVzZSBpc3N1ZXMgd2hlbiB3ZSBzdGFydCByZWx5aW5nIG9uCnRoZSBtYXBjYWNoZSAoZS5nLiwg d2hlbiB3ZSBkbyBub3QgaGF2ZSBhIGRpcmVjdCBtYXApLiBJdCBwYXJ0aXRpb25zIHRoZQpwZXIt ZG9tYWluIHJlZ2lvbiBpbnRvIHBlci12Y3B1IHJlZ2lvbnMgc28gdGhhdCBubyBtYXBjYWNoZSBz dGF0ZSBpcwpzaGFyZWQgYW1vbmcgdmNwdXMuIEFzIGEgcmVzdWx0LCBubyBsb2NraW5nIGlzIHJl cXVpcmVkIGFuZCBhIG11Y2gKc2ltcGxlciBtYXBoYXNoIGRlc2lnbiBjYW4gYmUgdXNlZC4gVGhl IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IGFmdGVyCnRoaXMgcGF0Y2ggaXMgcXVpdGUgbm90aWNl YWJsZS4KCkJlbmNobWFya3MKKGJhc2VsaW5lIHVzZXMgZGlyZWN0IG1hcCBpbnN0ZWFkIG9mIHRo ZSBtYXBjYWNoZSBpbiBtYXBfZG9tYWluX3BhZ2UsCm9sZCBpcyB0aGUgZXhpc3RpbmcgbWFwY2Fj aGUgYW5kIG5ldyBpcyBhZnRlciB0aGlzIHBhdGNoKToKCkdlZWtiZW5jaCBvbiBhIDMyLXZDUFUg Z3Vlc3QsCgpwZXJmb3JtYW5jZSBkcm9wICAgICBvbGQgICAgICAgIG5ldwpzaW5nbGUgY29yZSAg ICAgICAgIDAuMDQlICAgICAgMC4xOCUKbXVsdGkgY29yZSAgICAgICAgICAyLjQzJSAgICAgIDAu MDglCgpmaW8gb24gYSAzMi12Q1BVIGd1ZXN0LCBMVk0gYXRvcCA4KlNTRCwKCnBlcmZvcm1hbmNl IGRyb3AgICAgIG9sZCAgICAgICAgbmV3CiAgICAgICAgICAgICAgICAgICAgMy4wNSUgICAgICAw LjI4JQoKVGhlcmUgc2hvdWxkIGJlIHJvb20gZm9yIGZ1dGhlciBvcHRpbWlzYXRpb25zLCBidXQg dGhpcyBhbHJlYWR5CmltcHJvdmVzIG92ZXIgdGhlIG9sZCBtYXBjYWNoZSBieSBhIGxvdC4KCklu IHRoZSBuZXcgY2FjaGUgZGVzaWduLCBtYXBoYXNoIGVudHJpZXMgdGhlbXNlbHZlcyBhbHNvIG9j Y3VweSBpbnVzZQpzbG90cy4gVGhlIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb24gb2YgMTYgc2xvdHMg Zm9yIGVhY2ggdmNwdSBpcyBubyBsb25nZXIKc3VmZmljaWVudCB0byBpbmNsdWRlIGJvdGggdGhl IG1hcGhhc2ggYW5kIGEgbmVzdGVkIHBhZ2UgdGFibGUgd2Fsay4KRm9ydHVuYXRlbHksIHRoZSBw ZXItZG9tYWluIGludXNlIGFuZCBnYXJiYWdlIGJpdCB2ZWN0b3JzIGFyZSByZW1vdmVkCmZyb20g dGhlIFBFUkRPTUFJTiByZWdpb24sIGdpdmluZyB1cyBlbm91Z2ggcm9vbSB0byBleHBhbmQgdGhl IGF2YWlsYWJsZQptYXBwaW5nIHNsb3RzLgoKU2lnbmVkLW9mZi1ieTogSG9uZ3lhbiBYaWEgPGhv bmd5eGlhQGFtYXpvbi5jb20+CgotLS0KQ2hhbmdlZCBpbiB2MjoKLSByZXdvcmQgdGhlIGNvbW1p dCBtZXNzYWdlLgotIGNvZGUgY2xlYW4tdXAgYW5kIHN0eWxlIGZpeGVzCi0gYXZvaWQgaW5pdGlh bGlzaW5nIHRoZSBtYXBjYWNoZSBpbiBOREVCVUcgYnVpbGQKLSBtb3ZlIGZyZWVpbmcgb2YgdGhl IG1hcGhhc2ggaW50byBwdl92Y3B1X2Rlc3Ryb3kgYmVjYXVzZSBmb3Igbm93IG9ubHkKICBwdiBo YXMgYSBtYXBjYWNoZS4KLSB1c2UgaXNfaWRsZSBhbmQgaXNfaHZtIGluIG1hcF9kb21haW5fcGFn ZSB0byBmaWx0ZXIgb3V0IHJlYWwgcHYKICBkb21haW5zLgotLS0KIHhlbi9hcmNoL3g4Ni9kb21h aW4uYyAgICAgICAgfCAgIDIgLQogeGVuL2FyY2gveDg2L2RvbWFpbl9wYWdlLmMgICB8IDIzMyAr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3B2L2RvbWFp bi5jICAgICB8ICAgMSArCiB4ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZpZy5oIHwgICAyICstCiB4 ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oIHwgIDMwICstLS0tCiA1IGZpbGVzIGNoYW5nZWQs IDg0IGluc2VydGlvbnMoKyksIDE4NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMKaW5kZXggZjUzYWU1ZmY4Ni4u NTYyMmEyNmI1YyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RvbWFpbi5jCisrKyBiL3hlbi9h cmNoL3g4Ni9kb21haW4uYwpAQCAtNjMzLDggKzYzMyw2IEBAIGludCBhcmNoX2RvbWFpbl9jcmVh dGUoc3RydWN0IGRvbWFpbiAqZCwKICAgICB9CiAgICAgZWxzZSBpZiAoIGlzX3B2X2RvbWFpbihk KSApCiAgICAgewotICAgICAgICBtYXBjYWNoZV9kb21haW5faW5pdChkKTsKLQogICAgICAgICBp ZiAoIChyYyA9IHB2X2RvbWFpbl9pbml0aWFsaXNlKGQpKSAhPSAwICkKICAgICAgICAgICAgIGdv dG8gZmFpbDsKICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYyBi L3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCmluZGV4IGRkMzI3MTJkMmYuLmJlYzViZDA5YWIg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9kb21haW5fcGFnZS5jCkBAIC02OSwxMiArNjksMTEgQEAgdm9pZCBfX2luaXQgbWFwY2FjaGVf b3ZlcnJpZGVfY3VycmVudChzdHJ1Y3QgdmNwdSAqdikKIAogdm9pZCAqbWFwX2RvbWFpbl9wYWdl KG1mbl90IG1mbikKIHsKLSAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwotICAgIHVuc2lnbmVkIGlu dCBpZHgsIGk7CisgICAgdW5zaWduZWQgbG9uZyBmbGFncywgKnBoYXNobWZuOworICAgIHVuc2ln bmVkIGludCBpZHgsIGdsYl9pZHgsICpwaGFzaGlkeDsKICAgICBzdHJ1Y3QgdmNwdSAqdjsKLSAg ICBzdHJ1Y3QgbWFwY2FjaGVfZG9tYWluICpkY2FjaGU7CiAgICAgc3RydWN0IG1hcGNhY2hlX3Zj cHUgKnZjYWNoZTsKLSAgICBzdHJ1Y3QgdmNwdV9tYXBoYXNoX2VudHJ5ICpoYXNoZW50OworICAg IHZvaWQgKnJldDsKIAogI2lmZGVmIE5ERUJVRwogICAgIGlmICggbWZuX3gobWZuKSA8PSBQRk5f RE9XTihfX3BhKEhZUEVSVklTT1JfVklSVF9FTkQgLSAxKSkgKQpAQCAtODIsMTA0ICs4MSw2MCBA QCB2b2lkICptYXBfZG9tYWluX3BhZ2UobWZuX3QgbWZuKQogI2VuZGlmCiAKICAgICB2ID0gbWFw Y2FjaGVfY3VycmVudF92Y3B1KCk7Ci0gICAgaWYgKCAhdiB8fCAhaXNfcHZfdmNwdSh2KSApCisg ICAgaWYgKCAhdiB8fCBpc19odm1fdmNwdSh2KSB8fCBpc19pZGxlX3ZjcHUodikgfHwgIXYtPmFy Y2gucHYubWFwY2FjaGUgKQogICAgICAgICByZXR1cm4gbWZuX3RvX3ZpcnQobWZuX3gobWZuKSk7 CiAKLSAgICBkY2FjaGUgPSAmdi0+ZG9tYWluLT5hcmNoLnB2Lm1hcGNhY2hlOwotICAgIHZjYWNo ZSA9ICZ2LT5hcmNoLnB2Lm1hcGNhY2hlOwotICAgIGlmICggIWRjYWNoZS0+aW51c2UgKQotICAg ICAgICByZXR1cm4gbWZuX3RvX3ZpcnQobWZuX3gobWZuKSk7CisgICAgdmNhY2hlID0gdi0+YXJj aC5wdi5tYXBjYWNoZTsKKyAgICBwaGFzaG1mbiA9ICZ2Y2FjaGUtPmhhc2hfbWZuW01BUEhBU0hf SEFTSEZOKG1mbl94KG1mbikpXTsKKyAgICBwaGFzaGlkeCA9ICZ2Y2FjaGUtPmhhc2hfaWR4W01B UEhBU0hfSEFTSEZOKG1mbl94KG1mbikpXTsKIAogICAgIHBlcmZjX2luY3IobWFwX2RvbWFpbl9w YWdlX2NvdW50KTsKIAogICAgIGxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIAotICAgIGhhc2hlbnQg PSAmdmNhY2hlLT5oYXNoW01BUEhBU0hfSEFTSEZOKG1mbl94KG1mbikpXTsKLSAgICBpZiAoIGhh c2hlbnQtPm1mbiA9PSBtZm5feChtZm4pICkKKyAgICBpZiAoICpwaGFzaG1mbiAhPSBtZm5feCht Zm4pICkKICAgICB7Ci0gICAgICAgIGlkeCA9IGhhc2hlbnQtPmlkeDsKLSAgICAgICAgQVNTRVJU KGlkeCA8IGRjYWNoZS0+ZW50cmllcyk7Ci0gICAgICAgIGhhc2hlbnQtPnJlZmNudCsrOwotICAg ICAgICBBU1NFUlQoaGFzaGVudC0+cmVmY250KTsKLSAgICAgICAgQVNTRVJUKG1mbl9lcShsMWVf Z2V0X21mbihNQVBDQUNIRV9MMUVOVChpZHgpKSwgbWZuKSk7Ci0gICAgICAgIGdvdG8gb3V0Owot ICAgIH0KKyAgICAgICAgaWR4ID0gZmluZF9maXJzdF96ZXJvX2JpdCh2Y2FjaGUtPmludXNlLCBN QVBDQUNIRV9WQ1BVX0VOVFJJRVMpOworICAgICAgICBCVUdfT04oaWR4ID49IE1BUENBQ0hFX1ZD UFVfRU5UUklFUyk7CiAKLSAgICBzcGluX2xvY2soJmRjYWNoZS0+bG9jayk7CisgICAgICAgIEFT U0VSVCh2Y2FjaGUtPnJlZmNudFtpZHhdID09IDApOworICAgICAgICBfX3NldF9iaXQoaWR4LCB2 Y2FjaGUtPmludXNlKTsKIAotICAgIC8qIEhhcyBzb21lIG90aGVyIENQVSBjYXVzZWQgYSB3cmFw PyBXZSBtdXN0IGZsdXNoIGlmIHNvLiAqLwotICAgIGlmICggdW5saWtlbHkoZGNhY2hlLT5lcG9j aCAhPSB2Y2FjaGUtPnNoYWRvd19lcG9jaCkgKQotICAgIHsKLSAgICAgICAgdmNhY2hlLT5zaGFk b3dfZXBvY2ggPSBkY2FjaGUtPmVwb2NoOwotICAgICAgICBpZiAoIE5FRURfRkxVU0godGhpc19j cHUodGxiZmx1c2hfdGltZSksIGRjYWNoZS0+dGxiZmx1c2hfdGltZXN0YW1wKSApCi0gICAgICAg IHsKLSAgICAgICAgICAgIHBlcmZjX2luY3IoZG9tYWluX3BhZ2VfdGxiX2ZsdXNoKTsKLSAgICAg ICAgICAgIGZsdXNoX3RsYl9sb2NhbCgpOwotICAgICAgICB9Ci0gICAgfQorICAgICAgICBnbGJf aWR4ID0gaWR4ICsgdi0+dmNwdV9pZCAqIE1BUENBQ0hFX1ZDUFVfRU5UUklFUzsKKyAgICAgICAg bDFlX3dyaXRlKCZNQVBDQUNIRV9MMUVOVChnbGJfaWR4KSwKKyAgICAgICAgICAgICAgICAgIGwx ZV9mcm9tX21mbihtZm4sIF9fUEFHRV9IWVBFUlZJU09SX1JXKSk7CisgICAgICAgIHJldCA9ICh2 b2lkICopTUFQQ0FDSEVfVklSVF9TVEFSVCArIHBmbl90b19wYWRkcihnbGJfaWR4KTsKKyAgICAg ICAgZmx1c2hfdGxiX29uZV9sb2NhbChyZXQpOworCisgICAgICAgIC8qIEV2aWN0IHRoZSBlbnRy eSBmcm9tIG1hcGhhc2guIENsZWFyIGludXNlIGlmIGl0cyByZWZjbnQgaXMgMC4gKi8KKyAgICAg ICAgaWYgKCAqcGhhc2hpZHggIT0gTUFQSEFTSEVOVF9OT1RJTlVTRSAmJiAhdmNhY2hlLT5yZWZj bnRbKnBoYXNoaWR4XSApCisgICAgICAgICAgICBfX2NsZWFyX2JpdCgqcGhhc2hpZHgsIHZjYWNo ZS0+aW51c2UpOwogCi0gICAgaWR4ID0gZmluZF9uZXh0X3plcm9fYml0KGRjYWNoZS0+aW51c2Us IGRjYWNoZS0+ZW50cmllcywgZGNhY2hlLT5jdXJzb3IpOwotICAgIGlmICggdW5saWtlbHkoaWR4 ID49IGRjYWNoZS0+ZW50cmllcykgKQorICAgICAgICAvKiBBZGQgdGhlIG5ldyBzbG90IGludG8g dGhlIG1hcGhhc2guICovCisgICAgICAgICpwaGFzaG1mbiA9IG1mbl94KG1mbik7CisgICAgICAg ICpwaGFzaGlkeCA9IGlkeDsKKyAgICB9CisgICAgZWxzZSAvKiBXZSBoaXQgaW4gdGhlIG1hcGhh c2gsIGp1c3QgcmV0dXJuIHRoZSBlbnRyeS4gKi8KICAgICB7Ci0gICAgICAgIHVuc2lnbmVkIGxv bmcgYWNjdW0gPSAwLCBwcmV2ID0gMDsKLQotICAgICAgICAvKiAvRmlyc3QvLCBjbGVhbiB0aGUg Z2FyYmFnZSBtYXAgYW5kIHVwZGF0ZSB0aGUgaW51c2UgbGlzdC4gKi8KLSAgICAgICAgZm9yICgg aSA9IDA7IGkgPCBCSVRTX1RPX0xPTkdTKGRjYWNoZS0+ZW50cmllcyk7IGkrKyApCi0gICAgICAg IHsKLSAgICAgICAgICAgIGFjY3VtIHw9IHByZXY7Ci0gICAgICAgICAgICBkY2FjaGUtPmludXNl W2ldICY9IH54Y2hnKCZkY2FjaGUtPmdhcmJhZ2VbaV0sIDApOwotICAgICAgICAgICAgcHJldiA9 IH5kY2FjaGUtPmludXNlW2ldOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCBhY2N1bSB8IChw cmV2ICYgQklUTUFQX0xBU1RfV09SRF9NQVNLKGRjYWNoZS0+ZW50cmllcykpICkKLSAgICAgICAg ICAgIGlkeCA9IGZpbmRfZmlyc3RfemVyb19iaXQoZGNhY2hlLT5pbnVzZSwgZGNhY2hlLT5lbnRy aWVzKTsKLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgICAgICAvKiBSZXBsYWNlIGEg aGFzaCBlbnRyeSBpbnN0ZWFkLiAqLwotICAgICAgICAgICAgaSA9IE1BUEhBU0hfSEFTSEZOKG1m bl94KG1mbikpOwotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIGhhc2hlbnQgPSAm dmNhY2hlLT5oYXNoW2ldOwotICAgICAgICAgICAgICAgIGlmICggaGFzaGVudC0+aWR4ICE9IE1B UEhBU0hFTlRfTk9USU5VU0UgJiYgIWhhc2hlbnQtPnJlZmNudCApCi0gICAgICAgICAgICAgICAg ewotICAgICAgICAgICAgICAgICAgICBpZHggPSBoYXNoZW50LT5pZHg7Ci0gICAgICAgICAgICAg ICAgICAgIEFTU0VSVChsMWVfZ2V0X3BmbihNQVBDQUNIRV9MMUVOVChpZHgpKSA9PSBoYXNoZW50 LT5tZm4pOwotICAgICAgICAgICAgICAgICAgICBsMWVfd3JpdGUoJk1BUENBQ0hFX0wxRU5UKGlk eCksIGwxZV9lbXB0eSgpKTsKLSAgICAgICAgICAgICAgICAgICAgaGFzaGVudC0+aWR4ID0gTUFQ SEFTSEVOVF9OT1RJTlVTRTsKLSAgICAgICAgICAgICAgICAgICAgaGFzaGVudC0+bWZuID0gfjBV TDsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg ICAgICAgICAgIGlmICggKytpID09IE1BUEhBU0hfRU5UUklFUyApCi0gICAgICAgICAgICAgICAg ICAgIGkgPSAwOwotICAgICAgICAgICAgfSB3aGlsZSAoIGkgIT0gTUFQSEFTSF9IQVNIRk4obWZu X3gobWZuKSkgKTsKLSAgICAgICAgfQotICAgICAgICBCVUdfT04oaWR4ID49IGRjYWNoZS0+ZW50 cmllcyk7Ci0KLSAgICAgICAgLyogL1NlY29uZC8sIGZsdXNoIFRMQnMuICovCi0gICAgICAgIHBl cmZjX2luY3IoZG9tYWluX3BhZ2VfdGxiX2ZsdXNoKTsKLSAgICAgICAgZmx1c2hfdGxiX2xvY2Fs KCk7Ci0gICAgICAgIHZjYWNoZS0+c2hhZG93X2Vwb2NoID0gKytkY2FjaGUtPmVwb2NoOwotICAg ICAgICBkY2FjaGUtPnRsYmZsdXNoX3RpbWVzdGFtcCA9IHRsYmZsdXNoX2N1cnJlbnRfdGltZSgp OworICAgICAgICBpZHggPSAqcGhhc2hpZHg7CisgICAgICAgIGdsYl9pZHggPSBpZHggKyB2LT52 Y3B1X2lkICogTUFQQ0FDSEVfVkNQVV9FTlRSSUVTOworICAgICAgICByZXQgPSAodm9pZCAqKU1B UENBQ0hFX1ZJUlRfU1RBUlQgKyBwZm5fdG9fcGFkZHIoZ2xiX2lkeCk7CiAgICAgfQogCi0gICAg c2V0X2JpdChpZHgsIGRjYWNoZS0+aW51c2UpOwotICAgIGRjYWNoZS0+Y3Vyc29yID0gaWR4ICsg MTsKKyAgICB2Y2FjaGUtPnJlZmNudFtpZHhdKys7CisgICAgQVNTRVJUKHZjYWNoZS0+cmVmY250 W2lkeF0pOworICAgIEFTU0VSVChsMWVfZ2V0X3BmbihNQVBDQUNIRV9MMUVOVChnbGJfaWR4KSkg PT0gbWZuX3gobWZuKSk7CiAKLSAgICBzcGluX3VubG9jaygmZGNhY2hlLT5sb2NrKTsKLQotICAg IGwxZV93cml0ZSgmTUFQQ0FDSEVfTDFFTlQoaWR4KSwgbDFlX2Zyb21fbWZuKG1mbiwgX19QQUdF X0hZUEVSVklTT1JfUlcpKTsKLQotIG91dDoKICAgICBsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7 Ci0gICAgcmV0dXJuICh2b2lkICopTUFQQ0FDSEVfVklSVF9TVEFSVCArIHBmbl90b19wYWRkcihp ZHgpOworICAgIHJldHVybiByZXQ7CiB9CiAKIHZvaWQgdW5tYXBfZG9tYWluX3BhZ2UoY29uc3Qg dm9pZCAqcHRyKQogewotICAgIHVuc2lnbmVkIGludCBpZHg7CisgICAgdW5zaWduZWQgaW50IGlk eCwgZ2xiX2lkeDsKICAgICBzdHJ1Y3QgdmNwdSAqdjsKLSAgICBzdHJ1Y3QgbWFwY2FjaGVfZG9t YWluICpkY2FjaGU7Ci0gICAgdW5zaWduZWQgbG9uZyB2YSA9ICh1bnNpZ25lZCBsb25nKXB0ciwg bWZuLCBmbGFnczsKLSAgICBzdHJ1Y3QgdmNwdV9tYXBoYXNoX2VudHJ5ICpoYXNoZW50OworICAg IHN0cnVjdCBtYXBjYWNoZV92Y3B1ICp2Y2FjaGU7CisgICAgdW5zaWduZWQgbG9uZyB2YSA9ICh1 bnNpZ25lZCBsb25nKXB0ciwgbWZuLCBoYXNobWZuLCBmbGFnczsKIAogICAgIGlmICggdmEgPj0g RElSRUNUTUFQX1ZJUlRfU1RBUlQgKQogICAgICAgICByZXR1cm47CkBAIC0xODksMTE0ICsxNDQs NzggQEAgdm9pZCB1bm1hcF9kb21haW5fcGFnZShjb25zdCB2b2lkICpwdHIpCiAgICAgdiA9IG1h cGNhY2hlX2N1cnJlbnRfdmNwdSgpOwogICAgIEFTU0VSVCh2ICYmIGlzX3B2X3ZjcHUodikpOwog Ci0gICAgZGNhY2hlID0gJnYtPmRvbWFpbi0+YXJjaC5wdi5tYXBjYWNoZTsKLSAgICBBU1NFUlQo ZGNhY2hlLT5pbnVzZSk7CisgICAgdmNhY2hlID0gdi0+YXJjaC5wdi5tYXBjYWNoZTsKKyAgICBB U1NFUlQodmNhY2hlKTsKIAotICAgIGlkeCA9IFBGTl9ET1dOKHZhIC0gTUFQQ0FDSEVfVklSVF9T VEFSVCk7Ci0gICAgbWZuID0gbDFlX2dldF9wZm4oTUFQQ0FDSEVfTDFFTlQoaWR4KSk7Ci0gICAg aGFzaGVudCA9ICZ2LT5hcmNoLnB2Lm1hcGNhY2hlLmhhc2hbTUFQSEFTSF9IQVNIRk4obWZuKV07 CisgICAgZ2xiX2lkeCA9IFBGTl9ET1dOKHZhIC0gTUFQQ0FDSEVfVklSVF9TVEFSVCk7CisgICAg aWR4ID0gZ2xiX2lkeCAtIHYtPnZjcHVfaWQgKiBNQVBDQUNIRV9WQ1BVX0VOVFJJRVM7CiAKICAg ICBsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAKLSAgICBpZiAoIGhhc2hlbnQtPmlkeCA9PSBpZHgg KQotICAgIHsKLSAgICAgICAgQVNTRVJUKGhhc2hlbnQtPm1mbiA9PSBtZm4pOwotICAgICAgICBB U1NFUlQoaGFzaGVudC0+cmVmY250KTsKLSAgICAgICAgaGFzaGVudC0+cmVmY250LS07Ci0gICAg fQotICAgIGVsc2UgaWYgKCAhaGFzaGVudC0+cmVmY250ICkKLSAgICB7Ci0gICAgICAgIGlmICgg aGFzaGVudC0+aWR4ICE9IE1BUEhBU0hFTlRfTk9USU5VU0UgKQotICAgICAgICB7Ci0gICAgICAg ICAgICAvKiAvRmlyc3QvLCB6YXAgdGhlIFBURS4gKi8KLSAgICAgICAgICAgIEFTU0VSVChsMWVf Z2V0X3BmbihNQVBDQUNIRV9MMUVOVChoYXNoZW50LT5pZHgpKSA9PQotICAgICAgICAgICAgICAg ICAgIGhhc2hlbnQtPm1mbik7Ci0gICAgICAgICAgICBsMWVfd3JpdGUoJk1BUENBQ0hFX0wxRU5U KGhhc2hlbnQtPmlkeCksIGwxZV9lbXB0eSgpKTsKLSAgICAgICAgICAgIC8qIC9TZWNvbmQvLCBt YXJrIGFzIGdhcmJhZ2UuICovCi0gICAgICAgICAgICBzZXRfYml0KGhhc2hlbnQtPmlkeCwgZGNh Y2hlLT5nYXJiYWdlKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIEFkZCBuZXdseS1mcmVlZCBt YXBwaW5nIHRvIHRoZSBtYXBoYXNoLiAqLwotICAgICAgICBoYXNoZW50LT5tZm4gPSBtZm47Ci0g ICAgICAgIGhhc2hlbnQtPmlkeCA9IGlkeDsKLSAgICB9Ci0gICAgZWxzZQotICAgIHsKLSAgICAg ICAgLyogL0ZpcnN0LywgemFwIHRoZSBQVEUuICovCi0gICAgICAgIGwxZV93cml0ZSgmTUFQQ0FD SEVfTDFFTlQoaWR4KSwgbDFlX2VtcHR5KCkpOwotICAgICAgICAvKiAvU2Vjb25kLywgbWFyayBh cyBnYXJiYWdlLiAqLwotICAgICAgICBzZXRfYml0KGlkeCwgZGNhY2hlLT5nYXJiYWdlKTsKLSAg ICB9CisgICAgbWZuID0gbDFlX2dldF9wZm4oTUFQQ0FDSEVfTDFFTlQoZ2xiX2lkeCkpOworICAg IGhhc2htZm4gPSB2Y2FjaGUtPmhhc2hfbWZuW01BUEhBU0hfSEFTSEZOKG1mbildOworCisgICAg dmNhY2hlLT5yZWZjbnRbaWR4XS0tOworICAgIC8qIElmIHJlZmNudCBkcm9wcyB0byAwLCB3ZSBv bmx5IGNsZWFyIGludXNlIHdoZW4gaXQncyBub3QgaW4gdGhlIG1hcGhhc2guICovCisgICAgaWYg KCBoYXNobWZuICE9IG1mbiAmJiAhdmNhY2hlLT5yZWZjbnRbaWR4XSApCisgICAgICAgIF9fY2xl YXJfYml0KGlkeCwgdmNhY2hlLT5pbnVzZSk7CiAKICAgICBsb2NhbF9pcnFfcmVzdG9yZShmbGFn cyk7CiB9CiAKLWludCBtYXBjYWNoZV9kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKQoraW50 IG1hcGNhY2hlX3ZjcHVfaW5pdChzdHJ1Y3QgdmNwdSAqdikKIHsKKyAgICBzdHJ1Y3QgZG9tYWlu ICpkID0gdi0+ZG9tYWluOwogICAgIHN0cnVjdCBtYXBjYWNoZV9kb21haW4gKmRjYWNoZSA9ICZk LT5hcmNoLnB2Lm1hcGNhY2hlOwotICAgIHVuc2lnbmVkIGludCBiaXRtYXBfcGFnZXM7Ci0KLSAg ICBBU1NFUlQoaXNfcHZfZG9tYWluKGQpKTsKKyAgICB1bnNpZ25lZCBsb25nIGk7CisgICAgdW5z aWduZWQgaW50IGVudHMgPSBkLT5tYXhfdmNwdXMgKiBNQVBDQUNIRV9WQ1BVX0VOVFJJRVM7CiAK ICNpZmRlZiBOREVCVUcKICAgICBpZiAoICFtZW1faG90cGx1ZyAmJiBtYXhfcGFnZSA8PSBQRk5f RE9XTihfX3BhKEhZUEVSVklTT1JfVklSVF9FTkQgLSAxKSkgKQogICAgICAgICByZXR1cm4gMDsK ICNlbmRpZgogCi0gICAgQlVJTERfQlVHX09OKE1BUENBQ0hFX1ZJUlRfRU5EICsgUEFHRV9TSVpF ICogKDMgKwotICAgICAgICAgICAgICAgICAyICogUEZOX1VQKEJJVFNfVE9fTE9OR1MoTUFQQ0FD SEVfRU5UUklFUykgKiBzaXplb2YobG9uZykpKSA+Ci0gICAgICAgICAgICAgICAgIE1BUENBQ0hF X1ZJUlRfU1RBUlQgKyAoUEVSRE9NQUlOX1NMT1RfTUJZVEVTIDw8IDIwKSk7Ci0gICAgYml0bWFw X3BhZ2VzID0gUEZOX1VQKEJJVFNfVE9fTE9OR1MoTUFQQ0FDSEVfRU5UUklFUykgKiBzaXplb2Yo bG9uZykpOwotICAgIGRjYWNoZS0+aW51c2UgPSAodm9pZCAqKU1BUENBQ0hFX1ZJUlRfRU5EICsg UEFHRV9TSVpFOwotICAgIGRjYWNoZS0+Z2FyYmFnZSA9IGRjYWNoZS0+aW51c2UgKwotICAgICAg ICAgICAgICAgICAgICAgIChiaXRtYXBfcGFnZXMgKyAxKSAqIFBBR0VfU0laRSAvIHNpemVvZihs b25nKTsKLQotICAgIHNwaW5fbG9ja19pbml0KCZkY2FjaGUtPmxvY2spOwotCi0gICAgcmV0dXJu IGNyZWF0ZV9wZXJkb21haW5fbWFwcGluZyhkLCAodW5zaWduZWQgbG9uZylkY2FjaGUtPmludXNl LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqIGJpdG1hcF9wYWdlcyAr IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOSUwobDFfcGdlbnRyeV90 ICopLCBOVUxMKTsKLX0KLQotaW50IG1hcGNhY2hlX3ZjcHVfaW5pdChzdHJ1Y3QgdmNwdSAqdikK LXsKLSAgICBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOwotICAgIHN0cnVjdCBtYXBjYWNo ZV9kb21haW4gKmRjYWNoZSA9ICZkLT5hcmNoLnB2Lm1hcGNhY2hlOwotICAgIHVuc2lnbmVkIGxv bmcgaTsKLSAgICB1bnNpZ25lZCBpbnQgZW50cyA9IGQtPm1heF92Y3B1cyAqIE1BUENBQ0hFX1ZD UFVfRU5UUklFUzsKLSAgICB1bnNpZ25lZCBpbnQgbnIgPSBQRk5fVVAoQklUU19UT19MT05HUyhl bnRzKSAqIHNpemVvZihsb25nKSk7Ci0KLSAgICBpZiAoICFpc19wdl92Y3B1KHYpIHx8ICFkY2Fj aGUtPmludXNlICkKKyAgICBpZiAoIGlzX2lkbGVfdmNwdSh2KSB8fCBpc19odm1fdmNwdSh2KSAp CiAgICAgICAgIHJldHVybiAwOwogCisgICAgQlVJTERfQlVHX09OKE1BUENBQ0hFX1ZJUlRfRU5E ID4gQVJHX1hMQVRfVklSVF9TVEFSVCk7CisKICAgICBpZiAoIGVudHMgPiBkY2FjaGUtPmVudHJp ZXMgKQogICAgIHsKKyAgICAgICAgaW50IHJjOworCisgICAgICAgIEFTU0VSVChlbnRzICogUEFH RV9TSVpFIDw9IChQRVJET01BSU5fU0xPVF9NQllURVMgPDwgMjApKTsKKwogICAgICAgICAvKiBQ b3B1bGF0ZSBwYWdlIHRhYmxlcy4gKi8KLSAgICAgICAgaW50IHJjID0gY3JlYXRlX3BlcmRvbWFp bl9tYXBwaW5nKGQsIE1BUENBQ0hFX1ZJUlRfU1RBUlQsIGVudHMsCisgICAgICAgIHJjID0gY3Jl YXRlX3BlcmRvbWFpbl9tYXBwaW5nKGQsIE1BUENBQ0hFX1ZJUlRfU1RBUlQsIGVudHMsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOSUwobDFfcGdlbnRyeV90ICop LCBOVUxMKTsKIAotICAgICAgICAvKiBQb3B1bGF0ZSBiaXQgbWFwcy4gKi8KLSAgICAgICAgaWYg KCAhcmMgKQotICAgICAgICAgICAgcmMgPSBjcmVhdGVfcGVyZG9tYWluX21hcHBpbmcoZCwgKHVu c2lnbmVkIGxvbmcpZGNhY2hlLT5pbnVzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5yLCBOVUxMLCBOSUwoc3RydWN0IHBhZ2VfaW5mbyAqKSk7Ci0gICAgICAg IGlmICggIXJjICkKLSAgICAgICAgICAgIHJjID0gY3JlYXRlX3BlcmRvbWFpbl9tYXBwaW5nKGQs ICh1bnNpZ25lZCBsb25nKWRjYWNoZS0+Z2FyYmFnZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5yLCBOVUxMLCBOSUwoc3RydWN0IHBhZ2VfaW5mbyAqKSk7Ci0K ICAgICAgICAgaWYgKCByYyApCiAgICAgICAgICAgICByZXR1cm4gcmM7CiAKICAgICAgICAgZGNh Y2hlLT5lbnRyaWVzID0gZW50czsKICAgICB9CiAKLSAgICAvKiBNYXJrIGFsbCBtYXBoYXNoIGVu dHJpZXMgYXMgbm90IGluIHVzZS4gKi8KICAgICBCVUlMRF9CVUdfT04oTUFQSEFTSEVOVF9OT1RJ TlVTRSA8IE1BUENBQ0hFX0VOVFJJRVMpOworICAgIC8qIE1BUEhBU0hfRU5UUklFUyBoYXMgdG8g YmUgcG93ZXItb2YtdHdvIHRvIG1ha2UgaGFzaGluZyB3b3JrLiAqLworICAgIEJVSUxEX0JVR19P TihNQVBIQVNIX0VOVFJJRVMgJiAoTUFQSEFTSF9FTlRSSUVTIC0gMSkpOworICAgIC8qCisgICAg ICogU2luY2UgZW50cmllcyBpbiB0aGUgbWFwaGFzaCBhbHNvIG9jY3VweSBpbnVzZSBzbG90cywg d2UgaGF2ZSB0byBtYWtlCisgICAgICogc3VyZSBNQVBDQUNIRV9WQ1BVX0VOVFJJRVMgaXMgbGFy Z2UgZW5vdWdoIHRvIGFjY29tbW9kYXRlIGJvdGggdGhlCisgICAgICogbWFwaGFzaCBhbmQgYSBu ZXN0ZWQgcGFnZSB0YWJsZSB3YWxrLgorICAgICAqLworICAgIEJVSUxEX0JVR19PTihNQVBDQUNI RV9WQ1BVX0VOVFJJRVMgLSBNQVBIQVNIX0VOVFJJRVMgPAorICAgICAgICAgICAgICAgICBDT05G SUdfUEFHSU5HX0xFVkVMUyAqIENPTkZJR19QQUdJTkdfTEVWRUxTKTsKKworICAgIHYtPmFyY2gu cHYubWFwY2FjaGUgPSB4emFsbG9jKHN0cnVjdCBtYXBjYWNoZV92Y3B1KTsKKyAgICBpZiAoICF2 LT5hcmNoLnB2Lm1hcGNhY2hlICkKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICAvKiBN YXJrIGFsbCBtYXBoYXNoIGVudHJpZXMgYXMgbm90IGluIHVzZS4gKi8KICAgICBmb3IgKCBpID0g MDsgaSA8IE1BUEhBU0hfRU5UUklFUzsgaSsrICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCB2Y3B1 X21hcGhhc2hfZW50cnkgKmhhc2hlbnQgPSAmdi0+YXJjaC5wdi5tYXBjYWNoZS5oYXNoW2ldOwot Ci0gICAgICAgIGhhc2hlbnQtPm1mbiA9IH4wVUw7IC8qIG5ldmVyIHZhbGlkIHRvIG1hcCAqLwot ICAgICAgICBoYXNoZW50LT5pZHggPSBNQVBIQVNIRU5UX05PVElOVVNFOworICAgICAgICB2LT5h cmNoLnB2Lm1hcGNhY2hlLT5oYXNoX21mbltpXSA9IH4wVUw7CisgICAgICAgIHYtPmFyY2gucHYu bWFwY2FjaGUtPmhhc2hfaWR4W2ldID0gTUFQSEFTSEVOVF9OT1RJTlVTRTsKICAgICB9CiAKICAg ICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYyBiL3hlbi9h cmNoL3g4Ni9wdi9kb21haW4uYwppbmRleCBjMzQ3M2I5YTQ3Li5iZTgxOWRkZmFjIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2RvbWFp bi5jCkBAIC0yMzQsNiArMjM0LDcgQEAgdm9pZCBwdl92Y3B1X2Rlc3Ryb3koc3RydWN0IHZjcHUg KnYpCiAKICAgICBwdl9kZXN0cm95X2dkdF9sZHRfbDF0YWIodik7CiAgICAgWEZSRUUodi0+YXJj aC5wdi50cmFwX2N0eHQpOworICAgIFhGUkVFKHYtPmFyY2gucHYubWFwY2FjaGUpOwogfQogCiBp bnQgcHZfdmNwdV9pbml0aWFsaXNlKHN0cnVjdCB2Y3B1ICp2KQpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9jb25maWcuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY29uZmlnLmgKaW5k ZXggYTM0MDUzYzRjMC4uZWY0ODE5MGFiZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9jb25maWcuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZpZy5oCkBAIC0yOTYsNyAr Mjk2LDcgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgeGVuX3BoeXNfc3RhcnQ7CiAgICAgKEdEVF9W SVJUX1NUQVJUKHYpICsgKDY0KjEwMjQpKQogCiAvKiBtYXBfZG9tYWluX3BhZ2UoKSBtYXAgY2Fj aGUuIFRoZSBzZWNvbmQgcGVyLWRvbWFpbi1tYXBwaW5nIHN1Yi1hcmVhLiAqLwotI2RlZmluZSBN QVBDQUNIRV9WQ1BVX0VOVFJJRVMgICAgKENPTkZJR19QQUdJTkdfTEVWRUxTICogQ09ORklHX1BB R0lOR19MRVZFTFMpCisjZGVmaW5lIE1BUENBQ0hFX1ZDUFVfRU5UUklFUyAgICAzMgogI2RlZmlu ZSBNQVBDQUNIRV9FTlRSSUVTICAgICAgICAgKE1BWF9WSVJUX0NQVVMgKiBNQVBDQUNIRV9WQ1BV X0VOVFJJRVMpCiAjZGVmaW5lIE1BUENBQ0hFX1ZJUlRfU1RBUlQgICAgICBQRVJET01BSU5fVklS VF9TTE9UKDEpCiAjZGVmaW5lIE1BUENBQ0hFX1ZJUlRfRU5EICAgICAgICAoTUFQQ0FDSEVfVklS VF9TVEFSVCArIFwKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmggYi94 ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCmluZGV4IGEzYWU1ZDlhMjAuLjM2N2JiYTcxMTAg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgKKysrIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9kb21haW4uaApAQCAtNDAsMzUgKzQwLDE3IEBAIHN0cnVjdCB0cmFwX2JvdW5j ZSB7CiAjZGVmaW5lIE1BUEhBU0hfSEFTSEZOKHBmbikgKChwZm4pICYgKE1BUEhBU0hfRU5UUklF Uy0xKSkKICNkZWZpbmUgTUFQSEFTSEVOVF9OT1RJTlVTRSAoKHUzMil+MFUpCiBzdHJ1Y3QgbWFw Y2FjaGVfdmNwdSB7Ci0gICAgLyogU2hhZG93IG9mIG1hcGNhY2hlX2RvbWFpbi5lcG9jaC4gKi8K LSAgICB1bnNpZ25lZCBpbnQgc2hhZG93X2Vwb2NoOwotCi0gICAgLyogTG9jay1mcmVlIHBlci1W Q1BVIGhhc2ggb2YgcmVjZW50bHktdXNlZCBtYXBwaW5ncy4gKi8KLSAgICBzdHJ1Y3QgdmNwdV9t YXBoYXNoX2VudHJ5IHsKLSAgICAgICAgdW5zaWduZWQgbG9uZyBtZm47Ci0gICAgICAgIHVpbnQz Ml90ICAgICAgaWR4OwotICAgICAgICB1aW50MzJfdCAgICAgIHJlZmNudDsKLSAgICB9IGhhc2hb TUFQSEFTSF9FTlRSSUVTXTsKKyAgICB1bnNpZ25lZCBsb25nIGhhc2hfbWZuW01BUEhBU0hfRU5U UklFU107CisgICAgdWludDMyX3QgaGFzaF9pZHhbTUFQSEFTSF9FTlRSSUVTXTsKKworICAgIHVp bnQ4X3QgcmVmY250W01BUENBQ0hFX1ZDUFVfRU5UUklFU107CisgICAgdW5zaWduZWQgbG9uZyBp bnVzZVtCSVRTX1RPX0xPTkdTKE1BUENBQ0hFX1ZDUFVfRU5UUklFUyldOwogfTsKIAogc3RydWN0 IG1hcGNhY2hlX2RvbWFpbiB7Ci0gICAgLyogVGhlIG51bWJlciBvZiBhcnJheSBlbnRyaWVzLCBh bmQgYSBjdXJzb3IgaW50byB0aGUgYXJyYXkuICovCiAgICAgdW5zaWduZWQgaW50IGVudHJpZXM7 Ci0gICAgdW5zaWduZWQgaW50IGN1cnNvcjsKLQotICAgIC8qIFByb3RlY3RzIG1hcF9kb21haW5f cGFnZSgpLiAqLwotICAgIHNwaW5sb2NrX3QgbG9jazsKLQotICAgIC8qIEdhcmJhZ2UgbWFwcGlu Z3MgYXJlIGZsdXNoZWQgZnJvbSBUTEJzIGluIGJhdGNoZXMgY2FsbGVkICdlcG9jaHMnLiAqLwot ICAgIHVuc2lnbmVkIGludCBlcG9jaDsKLSAgICB1MzIgdGxiZmx1c2hfdGltZXN0YW1wOwotCi0g ICAgLyogV2hpY2ggbWFwcGluZ3MgYXJlIGluIHVzZSwgYW5kIHdoaWNoIGFyZSBnYXJiYWdlIHRv IHJlYXAgbmV4dCBlcG9jaD8gKi8KLSAgICB1bnNpZ25lZCBsb25nICppbnVzZTsKLSAgICB1bnNp Z25lZCBsb25nICpnYXJiYWdlOwogfTsKIAotaW50IG1hcGNhY2hlX2RvbWFpbl9pbml0KHN0cnVj dCBkb21haW4gKik7CiBpbnQgbWFwY2FjaGVfdmNwdV9pbml0KHN0cnVjdCB2Y3B1ICopOwogdm9p ZCBtYXBjYWNoZV9vdmVycmlkZV9jdXJyZW50KHN0cnVjdCB2Y3B1ICopOwogCkBAIC00NzMsNyAr NDU1LDcgQEAgc3RydWN0IGFyY2hfZG9tYWluCiBzdHJ1Y3QgcHZfdmNwdQogewogICAgIC8qIG1h cF9kb21haW5fcGFnZSgpIG1hcHBpbmcgY2FjaGUuICovCi0gICAgc3RydWN0IG1hcGNhY2hlX3Zj cHUgbWFwY2FjaGU7CisgICAgc3RydWN0IG1hcGNhY2hlX3ZjcHUgKm1hcGNhY2hlOwogCiAgICAg dW5zaWduZWQgaW50IHZnY19mbGFnczsKIAotLSAKMi4xNy4xCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==