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 CEF7EC2D0DB for ; Thu, 30 Jan 2020 14:58:33 +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 97E5C2051A for ; Thu, 30 Jan 2020 14:58:33 +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="tYlWg0QA" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 97E5C2051A 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 1ixBGs-0003sq-OZ; Thu, 30 Jan 2020 14:58:18 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ixBGr-0003sW-VW for xen-devel@lists.xenproject.org; Thu, 30 Jan 2020 14:58:18 +0000 X-Inumbo-ID: f24b79d0-4370-11ea-b211-bc764e2007e4 Received: from smtp-fw-9101.amazon.com (unknown [207.171.184.25]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id f24b79d0-4370-11ea-b211-bc764e2007e4; Thu, 30 Jan 2020 14:58:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1580396297; x=1611932297; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=j5NBo/tw3yOjyh2WahhpTwnW1c7mtM31ZE9wJjxJN2g=; b=tYlWg0QAgbWXFVWblBYGhIe96Z3hDqKPbdZEPU6FfsJVzc1znhYtxwDN AoLuU2lCHD4H3X0h31fCDuj8dXLldvZQCYceTegxgm3SYNGq8sW39kxuY LXAIvJVhaLDvA1L9fjEeh2q/Tll9nrUNKGWCzwFXwc7mEtaT7gf6jxdyh 4=; IronPort-SDR: y8ZOLF7GRs0cQIbfV5vyHCaMCSBj5rS1a7Xhg3JhLowyz1URiTWDxIYvspB+VpWRYihkWPXnD4 jgv4yCxDaL0w== X-IronPort-AV: E=Sophos;i="5.70,382,1574121600"; d="scan'208";a="13644075" Received: from sea32-co-svc-lb4-vlan3.sea.corp.amazon.com (HELO email-inbound-relay-1d-37fd6b3d.us-east-1.amazon.com) ([10.47.23.38]) by smtp-border-fw-out-9101.sea19.amazon.com with ESMTP; 30 Jan 2020 14:58:05 +0000 Received: from EX13MTAUEA002.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan2.iad.amazon.com [10.40.159.162]) by email-inbound-relay-1d-37fd6b3d.us-east-1.amazon.com (Postfix) with ESMTPS id 6D683282A26; Thu, 30 Jan 2020 14:58:01 +0000 (UTC) Received: from EX13D32EUB004.ant.amazon.com (10.43.166.212) by EX13MTAUEA002.ant.amazon.com (10.43.61.77) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Thu, 30 Jan 2020 14:58:00 +0000 Received: from EX13MTAUWC001.ant.amazon.com (10.43.162.135) by EX13D32EUB004.ant.amazon.com (10.43.166.212) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 30 Jan 2020 14:57:59 +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; Thu, 30 Jan 2020 14:57:56 +0000 From: Paul Durrant To: Date: Thu, 30 Jan 2020 14:57:43 +0000 Message-ID: <20200130145745.1306-3-pdurrant@amazon.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200130145745.1306-1-pdurrant@amazon.com> References: <20200130145745.1306-1-pdurrant@amazon.com> MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH v8 2/4] add a domain_tot_pages() helper function 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: Stefano Stabellini , Julien Grall , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Paul Durrant , Ian Jackson , Tim Deegan , =?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" VGhpcyBwYXRjaCBhZGRzIGEgbmV3IGRvbWFpbl90b3RfcGFnZXMoKSBpbmxpbmUgaGVscGVyIGZ1 bmN0aW9uIGludG8Kc2NoZWQuaCwgd2hpY2ggd2lsbCBiZSBuZWVkZWQgYnkgYSBzdWJzZXF1ZW50 IHBhdGNoLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpOT1RFOiBXaGlsZSBtb2RpZnlpbmcgdGhl IGNvbW1lbnQgZm9yICd0b3RfcGFnZXMnIGluIHNjaGVkLmggdGhpcyBwYXRjaAogICAgICBtYWtl cyBzb21lIGNvc21ldGljIGZpeGVzIHRvIHN1cnJvdW5kaW5nIGNvbW1lbnRzLgoKU3VnZ2VzdGVk LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IFBhdWwg RHVycmFudCA8cGR1cnJhbnRAYW1hem9uLmNvbT4KLS0tCkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogV2VpIExpdSA8d2xAeGVuLm9yZz4KQ2M6ICJSb2dl ciBQYXUgTW9ubsOpIiA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxH ZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25A ZXUuY2l0cml4LmNvbT4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+CkNjOiBLb25y YWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkNjOiBTdGVmYW5vIFN0 YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9y Z2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KCnY4 OgogLSBOZXcgaW4gdjgKLS0tCiB4ZW4vYXJjaC94ODYvZG9tYWluLmMgICAgICAgICAgIHwgIDIg Ky0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgfCAgNiArKystLS0KIHhlbi9hcmNo L3g4Ni9tbS9wMm0tcG9kLmMgICAgICAgfCAxMCArKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYvbW0v c2hhZG93L2NvbW1vbi5jIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tc2kuYyAgICAgICAgICAgICAg fCAgMiArLQogeGVuL2FyY2gveDg2L251bWEuYyAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJj aC94ODYvcHYvZG9tMF9idWlsZC5jICAgIHwgMjUgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQog eGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jICAgICAgICB8ICAyICstCiB4ZW4vY29tbW9uL2RvbWN0 bC5jICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9jb21tb24vZ3JhbnRfdGFibGUuYyAgICAgICAg fCAgNCArKy0tCiB4ZW4vY29tbW9uL2tleWhhbmRsZXIuYyAgICAgICAgIHwgIDIgKy0KIHhlbi9j b21tb24vbWVtb3J5LmMgICAgICAgICAgICAgfCAgNCArKy0tCiB4ZW4vY29tbW9uL3BhZ2VfYWxs b2MuYyAgICAgICAgIHwgMTUgKysrKysrKystLS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvbWVt b3J5LmggICAgIHwgIDQgKystLQogeGVuL2luY2x1ZGUveGVuL3NjaGVkLmggICAgICAgICB8IDI0 ICsrKysrKysrKysrKysrKysrKy0tLS0tLQogMTUgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9u cygrKSwgNDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbi5j IGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCmluZGV4IDI4ZmVmYTFmODEuLjY0M2MyM2ZmYjAgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYvZG9tYWlu LmMKQEAgLTIxOCw3ICsyMTgsNyBAQCB2b2lkIGR1bXBfcGFnZWZyYW1lX2luZm8oc3RydWN0IGRv bWFpbiAqZCkKIAogICAgIHByaW50aygiTWVtb3J5IHBhZ2VzIGJlbG9uZ2luZyB0byBkb21haW4g JXU6XG4iLCBkLT5kb21haW5faWQpOwogCi0gICAgaWYgKCBkLT50b3RfcGFnZXMgPj0gMTAgJiYg ZC0+aXNfZHlpbmcgPCBET01EWUlOR19kZWFkICkKKyAgICBpZiAoIGRvbWFpbl90b3RfcGFnZXMo ZCkgPj0gMTAgJiYgZC0+aXNfZHlpbmcgPCBET01EWUlOR19kZWFkICkKICAgICB7CiAgICAgICAg IHByaW50aygiICAgIERvbVBhZ2UgbGlzdCB0b28gbG9uZyB0byBkaXNwbGF5XG4iKTsKICAgICB9 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4 IGY1MGMwNjVhZjMuLjhiYjY2Y2YzMGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisr KyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC00MTk0LDggKzQxOTQsOCBAQCBsb25nIGRvX21tdV91 cGRhdGUoCiAgKiAtIHBhZ2UgY2FjaGluZyBhdHRyaWJ1dGVzIGNsZWFuZWQgdXAKICAqIC0gcmVt b3ZlZCBmcm9tIHRoZSBkb21haW4ncyBwYWdlX2xpc3QKICAqCi0gKiBJZiBNRU1GX25vX3JlZmNv dW50IGlzIG5vdCBzZXQsIHRoZSBkb21haW4ncyB0b3RfcGFnZXMgd2lsbCBiZQotICogYWRqdXN0 ZWQuICBJZiB0aGlzIHJlc3VsdHMgaW4gdGhlIHBhZ2UgY291bnQgZmFsbGluZyB0byAwLAorICog SWYgTUVNRl9ub19yZWZjb3VudCBpcyBub3Qgc2V0LCB0aGUgZG9tYWluX2FkanVzdF90b3RfcGFn ZXMoKSB3aWxsCisgKiBiZSBjYWxsZWQuICBJZiB0aGlzIHJlc3VsdHMgaW4gdGhlIHBhZ2UgY291 bnQgZmFsbGluZyB0byAwLAogICogcHV0X2RvbWFpbigpIHdpbGwgYmUgY2FsbGVkLgogICoKICAq IFRoZSBjYWxsZXIgc2hvdWxkIGVpdGhlciBjYWxsIGZyZWVfZG9taGVhcF9wYWdlKCkgdG8gZnJl ZSB0aGUKQEAgLTQ4NzAsNyArNDg3MCw3IEBAIGxvbmcgYXJjaF9tZW1vcnlfb3AodW5zaWduZWQg bG9uZyBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgICAgICBlbHNl IGlmICggcmMgPj0gMCApCiAgICAgICAgIHsKICAgICAgICAgICAgIHAybSA9IHAybV9nZXRfaG9z dHAybShkKTsKLSAgICAgICAgICAgIHRhcmdldC50b3RfcGFnZXMgICAgICAgPSBkLT50b3RfcGFn ZXM7CisgICAgICAgICAgICB0YXJnZXQudG90X3BhZ2VzICAgICAgID0gZG9tYWluX3RvdF9wYWdl cyhkKTsKICAgICAgICAgICAgIHRhcmdldC5wb2RfY2FjaGVfcGFnZXMgPSBwMm0tPnBvZC5jb3Vu dDsKICAgICAgICAgICAgIHRhcmdldC5wb2RfZW50cmllcyAgICAgPSBwMm0tPnBvZC5lbnRyeV9j b3VudDsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS1wb2QuYyBiL3hlbi9hcmNo L3g4Ni9tbS9wMm0tcG9kLmMKaW5kZXggMDk2ZTI3NzNmYi4uZjJjOTQwOTU2OCAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L21tL3AybS1wb2QuYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXBv ZC5jCkBAIC0zMDIsNyArMzAyLDcgQEAgb3V0OgogICogVGhlIGZvbGxvd2luZyBlcXVhdGlvbnMg c2hvdWxkIGhvbGQ6CiAgKiAgMCA8PSBQIDw9IFQgPD0gQiA8PSBNCiAgKiAgZC0+YXJjaC5wMm0t PnBvZC5lbnRyeV9jb3VudCA9PSBCIC0gUAotICogIGQtPnRvdF9wYWdlcyA9PSBQICsgZC0+YXJj aC5wMm0tPnBvZC5jb3VudAorICogIGRvbWFpbl90b3RfcGFnZXMoZCkgPT0gUCArIGQtPmFyY2gu cDJtLT5wb2QuY291bnQKICAqCiAgKiBOb3cgd2UgaGF2ZSB0aGUgZm9sbG93aW5nIHBvdGVudGlh bCBjYXNlcyB0byBjb3ZlcjoKICAqICAgICBCIDxUJzogU2V0IHRoZSBQb0QgY2FjaGUgc2l6ZSBl cXVhbCB0byB0aGUgbnVtYmVyIG9mIG91dHN0YW5kaW5nIFBvRApAQCAtMzM2LDcgKzMzNiw3IEBA IHAybV9wb2Rfc2V0X21lbV90YXJnZXQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyB0 YXJnZXQpCiAgICAgcG9kX2xvY2socDJtKTsKIAogICAgIC8qIFAgPT0gQjogTm90aGluZyB0byBk byAodW5sZXNzIHRoZSBndWVzdCBpcyBiZWluZyBjcmVhdGVkKS4gKi8KLSAgICBwb3B1bGF0ZWQg PSBkLT50b3RfcGFnZXMgLSBwMm0tPnBvZC5jb3VudDsKKyAgICBwb3B1bGF0ZWQgPSBkb21haW5f dG90X3BhZ2VzKGQpIC0gcDJtLT5wb2QuY291bnQ7CiAgICAgaWYgKCBwb3B1bGF0ZWQgPiAwICYm IHAybS0+cG9kLmVudHJ5X2NvdW50ID09IDAgKQogICAgICAgICBnb3RvIG91dDsKIApAQCAtMzQ4 LDcgKzM0OCw3IEBAIHAybV9wb2Rfc2V0X21lbV90YXJnZXQoc3RydWN0IGRvbWFpbiAqZCwgdW5z aWduZWQgbG9uZyB0YXJnZXQpCiAgICAgICogVCcgPCBCOiBEb24ndCByZWR1Y2UgdGhlIGNhY2hl IHNpemU7IGxldCB0aGUgYmFsbG9vbiBkcml2ZXIKICAgICAgKiB0YWtlIGNhcmUgb2YgaXQuCiAg ICAgICovCi0gICAgaWYgKCB0YXJnZXQgPCBkLT50b3RfcGFnZXMgKQorICAgIGlmICggdGFyZ2V0 IDwgZG9tYWluX3RvdF9wYWdlcyhkKSApCiAgICAgICAgIGdvdG8gb3V0OwogCiAgICAgcG9kX3Rh cmdldCA9IHRhcmdldCAtIHBvcHVsYXRlZDsKQEAgLTEyMzEsOCArMTIzMSw4IEBAIG91dF9vZl9t ZW1vcnk6CiAgICAgcG9kX3VubG9jayhwMm0pOwogCiAgICAgcHJpbnRrKCIlczogRG9tJWQgb3V0 IG9mIFBvRCBtZW1vcnkhICh0b3Q9JSJQUkl1MzIiIGVudHM9JWxkIGRvbSVkKVxuIiwKLSAgICAg ICAgICAgX19mdW5jX18sIGQtPmRvbWFpbl9pZCwgZC0+dG90X3BhZ2VzLCBwMm0tPnBvZC5lbnRy eV9jb3VudCwKLSAgICAgICAgICAgY3VycmVudC0+ZG9tYWluLT5kb21haW5faWQpOworICAgICAg ICAgICBfX2Z1bmNfXywgZC0+ZG9tYWluX2lkLCBkb21haW5fdG90X3BhZ2VzKGQpLAorICAgICAg ICAgICBwMm0tPnBvZC5lbnRyeV9jb3VudCwgY3VycmVudC0+ZG9tYWluLT5kb21haW5faWQpOwog ICAgIGRvbWFpbl9jcmFzaChkKTsKICAgICByZXR1cm4gZmFsc2U7CiBvdXRfZmFpbDoKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMgYi94ZW4vYXJjaC94ODYvbW0v c2hhZG93L2NvbW1vbi5jCmluZGV4IDYyMTJlYzJjNGEuLmNiYTNhYjFlYmEgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3No YWRvdy9jb21tb24uYwpAQCAtMTI1Niw3ICsxMjU2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBz aF9taW5fYWxsb2NhdGlvbihjb25zdCBzdHJ1Y3QgZG9tYWluICpkKQogICAgICAqIHVwIG9mIHNs b3QgemVybyBhbmQgYW4gTEFQSUMgcGFnZSksIHBsdXMgb25lIGZvciBIVk0ncyAxLXRvLTEgcGFn ZXRhYmxlLgogICAgICAqLwogICAgIHJldHVybiBzaGFkb3dfbWluX2FjY2VwdGFibGVfcGFnZXMo ZCkgKwotICAgICAgICAgICBtYXgobWF4KGQtPnRvdF9wYWdlcyAvIDI1NiwKKyAgICAgICAgICAg bWF4KG1heChkb21haW5fdG90X3BhZ2VzKGQpIC8gMjU2LAogICAgICAgICAgICAgICAgICAgIGlz X2h2bV9kb21haW4oZCkgPyBDT05GSUdfUEFHSU5HX0xFVkVMUyArIDIgOiAwVSkgKwogICAgICAg ICAgICAgICAgaXNfaHZtX2RvbWFpbihkKSwKICAgICAgICAgICAgICAgIGQtPmFyY2gucGFnaW5n LnNoYWRvdy5wMm1fcGFnZXMpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21zaS5jIGIveGVu L2FyY2gveDg2L21zaS5jCmluZGV4IGRmOTdjZTBjNzIuLjJmYWJhYWExNTUgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tc2kuYworKysgYi94ZW4vYXJjaC94ODYvbXNpLmMKQEAgLTk5MSw3ICs5 OTEsNyBAQCBzdGF0aWMgaW50IG1zaXhfY2FwYWJpbGl0eV9pbml0KHN0cnVjdCBwY2lfZGV2ICpk ZXYsCiAgICAgICAgICAgICAgICAgICAgICAgIHNlZywgYnVzLCBzbG90LCBmdW5jLCBkLT5kb21h aW5faWQpOwogICAgICAgICAgICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGQpICYmCiAgICAg ICAgICAgICAgICAgIC8qIEFzc3VtZSBhIGRvbWFpbiB3aXRob3V0IG1lbW9yeSBoYXMgbm8gbWFw cGluZ3MgeWV0LiAqLwotICAgICAgICAgICAgICAgICAoIWlzX2hhcmR3YXJlX2RvbWFpbihjdXJy ZCkgfHwgZC0+dG90X3BhZ2VzKSApCisgICAgICAgICAgICAgICAgICghaXNfaGFyZHdhcmVfZG9t YWluKGN1cnJkKSB8fCBkb21haW5fdG90X3BhZ2VzKGQpKSApCiAgICAgICAgICAgICAgICAgZG9t YWluX2NyYXNoKGQpOwogICAgICAgICAgICAgLyogWFhYIEhvdyB0byBkZWFsIHdpdGggZXhpc3Rp bmcgbWFwcGluZ3M/ICovCiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9udW1h LmMgYi94ZW4vYXJjaC94ODYvbnVtYS5jCmluZGV4IDdlMWY1NjMwMTIuLjdmMGQyN2MxNTMgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9udW1hLmMKKysrIGIveGVuL2FyY2gveDg2L251bWEuYwpA QCAtNDE5LDcgKzQxOSw3IEBAIHN0YXRpYyB2b2lkIGR1bXBfbnVtYSh1bnNpZ25lZCBjaGFyIGtl eSkKICAgICB7CiAgICAgICAgIHByb2Nlc3NfcGVuZGluZ19zb2Z0aXJxcygpOwogCi0gICAgICAg IHByaW50aygiRG9tYWluICV1ICh0b3RhbDogJXUpOlxuIiwgZC0+ZG9tYWluX2lkLCBkLT50b3Rf cGFnZXMpOworICAgICAgICBwcmludGsoIkRvbWFpbiAldSAodG90YWw6ICV1KTpcbiIsIGQtPmRv bWFpbl9pZCwgZG9tYWluX3RvdF9wYWdlcyhkKSk7CiAKICAgICAgICAgZm9yX2VhY2hfb25saW5l X25vZGUgKCBpICkKICAgICAgICAgICAgIHBhZ2VfbnVtX25vZGVbaV0gPSAwOwpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYyBiL3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1 aWxkLmMKaW5kZXggOWE5N2NmNGFiZi4uNTY3OGRhNzgyZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L3B2L2RvbTBfYnVpbGQuYworKysgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jCkBA IC0xMTAsOCArMTEwLDkgQEAgc3RhdGljIF9faW5pdCB2b2lkIHNldHVwX3B2X3BoeXNtYXAoc3Ry dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBwZ3RibF9wZm4sCiAKICAgICB3aGlsZSAoIHZw aHlzbWFwX3N0YXJ0IDwgdnBoeXNtYXBfZW5kICkKICAgICB7Ci0gICAgICAgIGlmICggZC0+dG90 X3BhZ2VzICsgKChyb3VuZF9wZ3VwKHZwaHlzbWFwX2VuZCkgLSB2cGh5c21hcF9zdGFydCkKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4gUEFHRV9TSElGVCkgKyAzID4gbnJfcGFnZXMg KQorICAgICAgICBpZiAoIGRvbWFpbl90b3RfcGFnZXMoZCkgKworICAgICAgICAgICAgICgocm91 bmRfcGd1cCh2cGh5c21hcF9lbmQpIC0gdnBoeXNtYXBfc3RhcnQpID4+IFBBR0VfU0hJRlQpICsK KyAgICAgICAgICAgICAzID4gbnJfcGFnZXMgKQogICAgICAgICAgICAgcGFuaWMoIkRvbTAgYWxs b2NhdGlvbiB0b28gc21hbGwgZm9yIGluaXRpYWwgUC0+TSB0YWJsZVxuIik7CiAKICAgICAgICAg aWYgKCBwbDFlICkKQEAgLTI2NCw3ICsyNjUsNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2VfaW5mbyAq IF9faW5pdCBhbGxvY19jaHVuayhzdHJ1Y3QgZG9tYWluICpkLAogICAgIHsKICAgICAgICAgc3Ry dWN0IHBhZ2VfaW5mbyAqcGcyOwogCi0gICAgICAgIGlmICggZC0+dG90X3BhZ2VzICsgKDEgPDwg b3JkZXIpID4gZC0+bWF4X3BhZ2VzICkKKyAgICAgICAgaWYgKCBkb21haW5fdG90X3BhZ2VzKGQp ICsgKDEgPDwgb3JkZXIpID4gZC0+bWF4X3BhZ2VzICkKICAgICAgICAgICAgIGNvbnRpbnVlOwog ICAgICAgICBwZzIgPSBhbGxvY19kb21oZWFwX3BhZ2VzKGQsIG9yZGVyLCBNRU1GX2V4YWN0X25v ZGUgfCBNRU1GX25vX3NjcnViKTsKICAgICAgICAgaWYgKCBwZzIgPiBwYWdlICkKQEAgLTUwMCwx MyArNTAxLDEzIEBAIGludCBfX2luaXQgZG9tMF9jb25zdHJ1Y3RfcHYoc3RydWN0IGRvbWFpbiAq ZCwKICAgICBpZiAoIHBhZ2UgPT0gTlVMTCApCiAgICAgICAgIHBhbmljKCJOb3QgZW5vdWdoIFJB TSBmb3IgZG9tYWluIDAgYWxsb2NhdGlvblxuIik7CiAgICAgYWxsb2Nfc3BmbiA9IG1mbl94KHBh Z2VfdG9fbWZuKHBhZ2UpKTsKLSAgICBhbGxvY19lcGZuID0gYWxsb2Nfc3BmbiArIGQtPnRvdF9w YWdlczsKKyAgICBhbGxvY19lcGZuID0gYWxsb2Nfc3BmbiArIGRvbWFpbl90b3RfcGFnZXMoZCk7 CiAKICAgICBpZiAoIGluaXRyZF9sZW4gKQogICAgIHsKICAgICAgICAgaW5pdHJkX3BmbiA9IHZp bml0cmRfc3RhcnQgPwogICAgICAgICAgICAgICAgICAgICAgKHZpbml0cmRfc3RhcnQgLSB2X3N0 YXJ0KSA+PiBQQUdFX1NISUZUIDoKLSAgICAgICAgICAgICAgICAgICAgIGQtPnRvdF9wYWdlczsK KyAgICAgICAgICAgICAgICAgICAgIGRvbWFpbl90b3RfcGFnZXMoZCk7CiAgICAgICAgIGluaXRy ZF9tZm4gPSBtZm4gPSBpbml0cmQtPm1vZF9zdGFydDsKICAgICAgICAgY291bnQgPSBQRk5fVVAo aW5pdHJkX2xlbik7CiAgICAgICAgIGlmICggZC0+YXJjaC5waHlzYWRkcl9iaXRzaXplICYmCkBA IC01NDEsOSArNTQyLDkgQEAgaW50IF9faW5pdCBkb20wX2NvbnN0cnVjdF9wdihzdHJ1Y3QgZG9t YWluICpkLAogICAgIHByaW50aygiUEhZU0lDQUwgTUVNT1JZIEFSUkFOR0VNRU5UOlxuIgogICAg ICAgICAgICAiIERvbTAgYWxsb2MuOiAgICUiUFJJcGFkZHIiLT4lIlBSSXBhZGRyLAogICAgICAg ICAgICBwZm5fdG9fcGFkZHIoYWxsb2Nfc3BmbiksIHBmbl90b19wYWRkcihhbGxvY19lcGZuKSk7 Ci0gICAgaWYgKCBkLT50b3RfcGFnZXMgPCBucl9wYWdlcyApCisgICAgaWYgKCBkb21haW5fdG90 X3BhZ2VzKGQpIDwgbnJfcGFnZXMgKQogICAgICAgICBwcmludGsoIiAoJWx1IHBhZ2VzIHRvIGJl IGFsbG9jYXRlZCkiLAotICAgICAgICAgICAgICAgbnJfcGFnZXMgLSBkLT50b3RfcGFnZXMpOwor ICAgICAgICAgICAgICAgbnJfcGFnZXMgLSBkb21haW5fdG90X3BhZ2VzKGQpKTsKICAgICBpZiAo IGluaXRyZCApCiAgICAgewogICAgICAgICBtcHRfYWxsb2MgPSAocGFkZHJfdClpbml0cmQtPm1v ZF9zdGFydCA8PCBQQUdFX1NISUZUOwpAQCAtNzU1LDcgKzc1Niw3IEBAIGludCBfX2luaXQgZG9t MF9jb25zdHJ1Y3RfcHYoc3RydWN0IGRvbWFpbiAqZCwKICAgICBzbnByaW50ZihzaS0+bWFnaWMs IHNpemVvZihzaS0+bWFnaWMpLCAieGVuLTMuMC14ODZfJWQlcyIsCiAgICAgICAgICAgICAgZWxm XzY0Yml0KCZlbGYpID8gNjQgOiAzMiwgcGFybXMucGFlID8gInAiIDogIiIpOwogCi0gICAgY291 bnQgPSBkLT50b3RfcGFnZXM7CisgICAgY291bnQgPSBkb21haW5fdG90X3BhZ2VzKGQpOwogCiAg ICAgLyogU2V0IHVwIHRoZSBwaHlzLT5tYWNoaW5lIHRhYmxlIGlmIG5vdCBwYXJ0IG9mIHRoZSBp bml0aWFsIG1hcHBpbmcuICovCiAgICAgaWYgKCBwYXJtcy5wMm1fYmFzZSAhPSBVTlNFVF9BRERS ICkKQEAgLTc4Niw3ICs3ODcsNyBAQCBpbnQgX19pbml0IGRvbTBfY29uc3RydWN0X3B2KHN0cnVj dCBkb21haW4gKmQsCiAgICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMoKTsKICAg ICB9CiAgICAgc2ktPmZpcnN0X3AybV9wZm4gPSBwZm47Ci0gICAgc2ktPm5yX3AybV9mcmFtZXMg PSBkLT50b3RfcGFnZXMgLSBjb3VudDsKKyAgICBzaS0+bnJfcDJtX2ZyYW1lcyA9IGRvbWFpbl90 b3RfcGFnZXMoZCkgLSBjb3VudDsKICAgICBwYWdlX2xpc3RfZm9yX2VhY2ggKCBwYWdlLCAmZC0+ cGFnZV9saXN0ICkKICAgICB7CiAgICAgICAgIG1mbiA9IG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2Up KTsKQEAgLTgwNCwxNSArODA1LDE1IEBAIGludCBfX2luaXQgZG9tMF9jb25zdHJ1Y3RfcHYoc3Ry dWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMo KTsKICAgICAgICAgfQogICAgIH0KLSAgICBCVUdfT04ocGZuICE9IGQtPnRvdF9wYWdlcyk7Cisg ICAgQlVHX09OKHBmbiAhPSBkb21haW5fdG90X3BhZ2VzKGQpKTsKICNpZm5kZWYgTkRFQlVHCiAg ICAgYWxsb2NfZXBmbiArPSBQRk5fVVAoaW5pdHJkX2xlbikgKyBzaS0+bnJfcDJtX2ZyYW1lczsK ICNlbmRpZgogICAgIHdoaWxlICggcGZuIDwgbnJfcGFnZXMgKQogICAgIHsKLSAgICAgICAgaWYg KCAocGFnZSA9IGFsbG9jX2NodW5rKGQsIG5yX3BhZ2VzIC0gZC0+dG90X3BhZ2VzKSkgPT0gTlVM TCApCisgICAgICAgIGlmICggKHBhZ2UgPSBhbGxvY19jaHVuayhkLCBucl9wYWdlcyAtIGRvbWFp bl90b3RfcGFnZXMoZCkpKSA9PSBOVUxMICkKICAgICAgICAgICAgIHBhbmljKCJOb3QgZW5vdWdo IFJBTSBmb3IgRE9NMCByZXNlcnZhdGlvblxuIik7Ci0gICAgICAgIHdoaWxlICggcGZuIDwgZC0+ dG90X3BhZ2VzICkKKyAgICAgICAgd2hpbGUgKCBwZm4gPCBkb21haW5fdG90X3BhZ2VzKGQpICkK ICAgICAgICAgewogICAgICAgICAgICAgbWZuID0gbWZuX3gocGFnZV90b19tZm4ocGFnZSkpOwog I2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYyBiL3hl bi9hcmNoL3g4Ni9wdi9kb21haW4uYwppbmRleCA0ZGEwYjJhZmZmLi5jOTU2NTJkMWI4IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2Rv bWFpbi5jCkBAIC0xNzMsNyArMTczLDcgQEAgaW50IHN3aXRjaF9jb21wYXQoc3RydWN0IGRvbWFp biAqZCkKIAogICAgIEJVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3Qgc2hhcmVkX2luZm8sIHZj cHVfaW5mbykgIT0gMCk7CiAKLSAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgfHwgZC0+dG90X3Bh Z2VzICE9IDAgKQorICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSB8fCBkb21haW5fdG90X3BhZ2Vz KGQpICE9IDAgKQogICAgICAgICByZXR1cm4gLUVBQ0NFUzsKICAgICBpZiAoIGlzX3B2XzMyYml0 X2RvbWFpbihkKSApCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9k b21jdGwuYyBiL3hlbi9jb21tb24vZG9tY3RsLmMKaW5kZXggOGI4MTlmNTZlNS4uYmRjMjRiYmQ3 YyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYworKysgYi94ZW4vY29tbW9uL2RvbWN0 bC5jCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBnZXRkb21haW5pbmZvKHN0cnVjdCBkb21haW4g KmQsIHN0cnVjdCB4ZW5fZG9tY3RsX2dldGRvbWFpbmluZm8gKmluZm8pCiAKICAgICB4c21fc2Vj dXJpdHlfZG9tYWluaW5mbyhkLCBpbmZvKTsKIAotICAgIGluZm8tPnRvdF9wYWdlcyAgICAgICAg ID0gZC0+dG90X3BhZ2VzOworICAgIGluZm8tPnRvdF9wYWdlcyAgICAgICAgID0gZG9tYWluX3Rv dF9wYWdlcyhkKTsKICAgICBpbmZvLT5tYXhfcGFnZXMgICAgICAgICA9IGQtPm1heF9wYWdlczsK ICAgICBpbmZvLT5vdXRzdGFuZGluZ19wYWdlcyA9IGQtPm91dHN0YW5kaW5nX3BhZ2VzOwogICAg IGluZm8tPnNocl9wYWdlcyAgICAgICAgID0gYXRvbWljX3JlYWQoJmQtPnNocl9wYWdlcyk7CmRp ZmYgLS1naXQgYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgYi94ZW4vY29tbW9uL2dyYW50X3Rh YmxlLmMKaW5kZXggNTUzNmQyODJiOS4uOGJlZTZiM2I2NiAxMDA2NDQKLS0tIGEveGVuL2NvbW1v bi9ncmFudF90YWJsZS5jCisrKyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwpAQCAtMjI2MSw3 ICsyMjYxLDcgQEAgZ250dGFiX3RyYW5zZmVyKAogICAgICAgICAgKiBwYWdlcyB3aGVuIGl0IGlz IGR5aW5nLgogICAgICAgICAgKi8KICAgICAgICAgaWYgKCB1bmxpa2VseShlLT5pc19keWluZykg fHwKLSAgICAgICAgICAgICB1bmxpa2VseShlLT50b3RfcGFnZXMgPj0gZS0+bWF4X3BhZ2VzKSAp CisgICAgICAgICAgICAgdW5saWtlbHkoZG9tYWluX3RvdF9wYWdlcyhlKSA+PSBlLT5tYXhfcGFn ZXMpICkKICAgICAgICAgewogICAgICAgICAgICAgc3Bpbl91bmxvY2soJmUtPnBhZ2VfYWxsb2Nf bG9jayk7CiAKQEAgLTIyNzEsNyArMjI3MSw3IEBAIGdudHRhYl90cmFuc2ZlcigKICAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfSU5GTywKICAgICAgICAg ICAgICAgICAgICAgICAgICAiVHJhbnNmZXJlZSBkJWQgaGFzIG5vIGhlYWRyb29tICh0b3QgJXUs IG1heCAldSlcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZS0+ZG9tYWluX2lkLCBlLT50 b3RfcGFnZXMsIGUtPm1heF9wYWdlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgZS0+ZG9t YWluX2lkLCBkb21haW5fdG90X3BhZ2VzKGUpLCBlLT5tYXhfcGFnZXMpOwogCiAgICAgICAgICAg ICBnb3Auc3RhdHVzID0gR05UU1RfZ2VuZXJhbF9lcnJvcjsKICAgICAgICAgICAgIGdvdG8gdW5s b2NrX2FuZF9jb3B5YmFjazsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24va2V5aGFuZGxlci5jIGIv eGVuL2NvbW1vbi9rZXloYW5kbGVyLmMKaW5kZXggZjUwNDkwZDBmMy4uODdiZDE0NTM3NCAxMDA2 NDQKLS0tIGEveGVuL2NvbW1vbi9rZXloYW5kbGVyLmMKKysrIGIveGVuL2NvbW1vbi9rZXloYW5k bGVyLmMKQEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMgdm9pZCBkdW1wX2RvbWFpbnModW5zaWdu ZWQgY2hhciBrZXkpCiAgICAgICAgICAgICAgICBhdG9taWNfcmVhZCgmZC0+cGF1c2VfY291bnQp KTsKICAgICAgICAgcHJpbnRrKCIgICAgbnJfcGFnZXM9JWQgeGVuaGVhcF9wYWdlcz0lZCBzaGFy ZWRfcGFnZXM9JXUgcGFnZWRfcGFnZXM9JXUgIgogICAgICAgICAgICAgICAgImRpcnR5X2NwdXM9 eyUqcGJsfSBtYXhfcGFnZXM9JXVcbiIsCi0gICAgICAgICAgICAgICBkLT50b3RfcGFnZXMsIGQt PnhlbmhlYXBfcGFnZXMsIGF0b21pY19yZWFkKCZkLT5zaHJfcGFnZXMpLAorICAgICAgICAgICAg ICAgZG9tYWluX3RvdF9wYWdlcyhkKSwgZC0+eGVuaGVhcF9wYWdlcywgYXRvbWljX3JlYWQoJmQt PnNocl9wYWdlcyksCiAgICAgICAgICAgICAgICBhdG9taWNfcmVhZCgmZC0+cGFnZWRfcGFnZXMp LCBDUFVNQVNLX1BSKGQtPmRpcnR5X2NwdW1hc2spLAogICAgICAgICAgICAgICAgZC0+bWF4X3Bh Z2VzKTsKICAgICAgICAgcHJpbnRrKCIgICAgaGFuZGxlPSUwMnglMDJ4JTAyeCUwMngtJTAyeCUw MngtJTAyeCUwMngtIgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9jb21t b24vbWVtb3J5LmMKaW5kZXggYzdkMmJhYzQ1Mi4uYmY0NjRlODc5OSAxMDA2NDQKLS0tIGEveGVu L2NvbW1vbi9tZW1vcnkuYworKysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBAIC03MTcsNyArNzE3 LDcgQEAgc3RhdGljIGxvbmcgbWVtb3J5X2V4Y2hhbmdlKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0o eGVuX21lbW9yeV9leGNoYW5nZV90KSBhcmcpCiAKICAgICAgICAgICAgICAgICAvKgogICAgICAg ICAgICAgICAgICAqIFBhZ2VzIGluIGluX2NodW5rX2xpc3QgaXMgc3RvbGVuIHdpdGhvdXQKLSAg ICAgICAgICAgICAgICAgKiBkZWNyZWFzaW5nIHRoZSB0b3RfcGFnZXMuIElmIHRoZSBkb21haW4g aXMgZHlpbmcgd2hlbgorICAgICAgICAgICAgICAgICAqIGRlY3JlYXNpbmcgZG9tYWluX3RvdF9w YWdlcygpLiBJZiB0aGUgZG9tYWluIGlzIGR5aW5nIHdoZW4KICAgICAgICAgICAgICAgICAgKiBh c3NpZ24gcGFnZXMsIHdlIG5lZWQgZGVjcmVhc2UgdGhlIGNvdW50LiBGb3IgdGhvc2UgcGFnZXMK ICAgICAgICAgICAgICAgICAgKiB0aGF0IGhhcyBiZWVuIGFzc2lnbmVkLCBpdCBzaG91bGQgYmUg Y292ZXJlZCBieQogICAgICAgICAgICAgICAgICAqIGRvbWFpbl9yZWxpbnF1aXNoX3Jlc291cmNl cygpLgpAQCAtMTI2Nyw3ICsxMjY3LDcgQEAgbG9uZyBkb19tZW1vcnlfb3AodW5zaWduZWQgbG9u ZyBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgICAgICBzd2l0Y2gg KCBvcCApCiAgICAgICAgIHsKICAgICAgICAgY2FzZSBYRU5NRU1fY3VycmVudF9yZXNlcnZhdGlv bjoKLSAgICAgICAgICAgIHJjID0gZC0+dG90X3BhZ2VzOworICAgICAgICAgICAgcmMgPSBkb21h aW5fdG90X3BhZ2VzKGQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgWEVOTUVN X21heGltdW1fcmVzZXJ2YXRpb246CiAgICAgICAgICAgICByYyA9IGQtPm1heF9wYWdlczsKZGlm ZiAtLWdpdCBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9j LmMKaW5kZXggOTE5YTI3MDU4Ny4uYmJkMzE2MzkwOSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9w YWdlX2FsbG9jLmMKKysrIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKQEAgLTUxOCw4ICs1MTgs OCBAQCBpbnQgZG9tYWluX3NldF9vdXRzdGFuZGluZ19wYWdlcyhzdHJ1Y3QgZG9tYWluICpkLCB1 bnNpZ25lZCBsb25nIHBhZ2VzKQogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICAvKiBk aXNhbGxvdyBhIGNsYWltIG5vdCBleGNlZWRpbmcgY3VycmVudCB0b3RfcGFnZXMgb3IgYWJvdmUg bWF4X3BhZ2VzICovCi0gICAgaWYgKCAocGFnZXMgPD0gZC0+dG90X3BhZ2VzKSB8fCAocGFnZXMg PiBkLT5tYXhfcGFnZXMpICkKKyAgICAvKiBkaXNhbGxvdyBhIGNsYWltIG5vdCBleGNlZWRpbmcg ZG9tYWluX3RvdF9wYWdlcygpIG9yIGFib3ZlIG1heF9wYWdlcyAqLworICAgIGlmICggKHBhZ2Vz IDw9IGRvbWFpbl90b3RfcGFnZXMoZCkpIHx8IChwYWdlcyA+IGQtPm1heF9wYWdlcykgKQogICAg IHsKICAgICAgICAgcmV0ID0gLUVJTlZBTDsKICAgICAgICAgZ290byBvdXQ7CkBAIC01MzIsOSAr NTMyLDkgQEAgaW50IGRvbWFpbl9zZXRfb3V0c3RhbmRpbmdfcGFnZXMoc3RydWN0IGRvbWFpbiAq ZCwgdW5zaWduZWQgbG9uZyBwYWdlcykKIAogICAgIC8qCiAgICAgICogTm90ZSwgaWYgZG9tYWlu IGhhcyBhbHJlYWR5IGFsbG9jYXRlZCBtZW1vcnkgYmVmb3JlIG1ha2luZyBhIGNsYWltCi0gICAg ICogdGhlbiB0aGUgY2xhaW0gbXVzdCB0YWtlIHRvdF9wYWdlcyBpbnRvIGFjY291bnQKKyAgICAg KiB0aGVuIHRoZSBjbGFpbSBtdXN0IHRha2UgZG9tYWluX3RvdF9wYWdlcygpIGludG8gYWNjb3Vu dAogICAgICAqLwotICAgIGNsYWltID0gcGFnZXMgLSBkLT50b3RfcGFnZXM7CisgICAgY2xhaW0g PSBwYWdlcyAtIGRvbWFpbl90b3RfcGFnZXMoZCk7CiAgICAgaWYgKCBjbGFpbSA+IGF2YWlsX3Bh Z2VzICkKICAgICAgICAgZ290byBvdXQ7CiAKQEAgLTIyNjksMTEgKzIyNjksMTIgQEAgaW50IGFz c2lnbl9wYWdlcygKIAogICAgIGlmICggIShtZW1mbGFncyAmIE1FTUZfbm9fcmVmY291bnQpICkK ICAgICB7Ci0gICAgICAgIGlmICggdW5saWtlbHkoKGQtPnRvdF9wYWdlcyArICgxIDw8IG9yZGVy KSkgPiBkLT5tYXhfcGFnZXMpICkKKyAgICAgICAgdW5zaWduZWQgaW50IHRvdF9wYWdlcyA9IGRv bWFpbl90b3RfcGFnZXMoZCkgKyAoMSA8PCBvcmRlcik7CisKKyAgICAgICAgaWYgKCB1bmxpa2Vs eSh0b3RfcGFnZXMgPiBkLT5tYXhfcGFnZXMpICkKICAgICAgICAgewogICAgICAgICAgICAgZ3By aW50ayhYRU5MT0dfSU5GTywgIk92ZXItYWxsb2NhdGlvbiBmb3IgZG9tYWluICV1OiAiCi0gICAg ICAgICAgICAgICAgICAgICIldSA+ICV1XG4iLCBkLT5kb21haW5faWQsCi0gICAgICAgICAgICAg ICAgICAgIGQtPnRvdF9wYWdlcyArICgxIDw8IG9yZGVyKSwgZC0+bWF4X3BhZ2VzKTsKKyAgICAg ICAgICAgICAgICAgICAgIiV1ID4gJXVcbiIsIGQtPmRvbWFpbl9pZCwgdG90X3BhZ2VzLCBkLT5t YXhfcGFnZXMpOwogICAgICAgICAgICAgcmMgPSAtRTJCSUc7CiAgICAgICAgICAgICBnb3RvIG91 dDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oIGIv eGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oCmluZGV4IGNmZGRhNmUyYTguLjEyNmQwZmYwNmUg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaAorKysgYi94ZW4vaW5jbHVk ZS9wdWJsaWMvbWVtb3J5LmgKQEAgLTU1Myw4ICs1NTMsOCBAQCBERUZJTkVfWEVOX0dVRVNUX0hB TkRMRSh4ZW5fbWVtX3NoYXJpbmdfb3BfdCk7CiAgKgogICogTm90ZSB0aGF0IGEgdmFsaWQgY2xh aW0gbWF5IGJlIHN0YWtlZCBldmVuIGFmdGVyIG1lbW9yeSBoYXMgYmVlbgogICogYWxsb2NhdGVk IGZvciBhIGRvbWFpbi4gIEluIHRoaXMgY2FzZSwgdGhlIGNsYWltIGlzIG5vdCBpbmNyZW1lbnRh bCwKLSAqIGkuZS4gaWYgdGhlIGRvbWFpbidzIHRvdF9wYWdlcyBpcyAzLCBhbmQgYSBjbGFpbSBp cyBzdGFrZWQgZm9yIDEwLAotICogb25seSA3IGFkZGl0aW9uYWwgcGFnZXMgYXJlIGNsYWltZWQu CisgKiBpLmUuIGlmIHRoZSBkb21haW4ncyB0b3RhbCBwYWdlIGNvdW50IGlzIDMsIGFuZCBhIGNs YWltIGlzIHN0YWtlZAorICogZm9yIDEwLCBvbmx5IDcgYWRkaXRpb25hbCBwYWdlcyBhcmUgY2xh aW1lZC4KICAqCiAgKiBDYWxsZXIgbXVzdCBiZSBwcml2aWxlZ2VkIG9yIHRoZSBoeXBlcmNhbGwg ZmFpbHMuCiAgKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oIGIveGVuL2lu Y2x1ZGUveGVuL3NjaGVkLmgKaW5kZXggN2M1YzQzNzI0Ny4uMWI2ZDdiOTQxZiAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgK QEAgLTM2NCwxMiArMzY0LDE4IEBAIHN0cnVjdCBkb21haW4KICAgICBzcGlubG9ja190ICAgICAg IHBhZ2VfYWxsb2NfbG9jazsgLyogcHJvdGVjdHMgYWxsIHRoZSBmb2xsb3dpbmcgZmllbGRzICAq LwogICAgIHN0cnVjdCBwYWdlX2xpc3RfaGVhZCBwYWdlX2xpc3Q7ICAvKiBsaW5rZWQgbGlzdCAq LwogICAgIHN0cnVjdCBwYWdlX2xpc3RfaGVhZCB4ZW5wYWdlX2xpc3Q7IC8qIGxpbmtlZCBsaXN0 IChzaXplIHhlbmhlYXBfcGFnZXMpICovCi0gICAgdW5zaWduZWQgaW50ICAgICB0b3RfcGFnZXM7 ICAgICAgIC8qIG51bWJlciBvZiBwYWdlcyBjdXJyZW50bHkgcG9zc2VzZWQgKi8KLSAgICB1bnNp Z25lZCBpbnQgICAgIHhlbmhlYXBfcGFnZXM7ICAgLyogIyBwYWdlcyBhbGxvY2F0ZWQgZnJvbSBY ZW4gaGVhcCAgICAqLwotICAgIHVuc2lnbmVkIGludCAgICAgb3V0c3RhbmRpbmdfcGFnZXM7IC8q IHBhZ2VzIGNsYWltZWQgYnV0IG5vdCBwb3NzZXNzZWQgICovCi0gICAgdW5zaWduZWQgaW50ICAg ICBtYXhfcGFnZXM7ICAgICAgIC8qIG1heGltdW0gdmFsdWUgZm9yIHRvdF9wYWdlcyAgICAgICAg Ki8KLSAgICBhdG9taWNfdCAgICAgICAgIHNocl9wYWdlczsgICAgICAgLyogbnVtYmVyIG9mIHNo YXJlZCBwYWdlcyAgICAgICAgICAgICAqLwotICAgIGF0b21pY190ICAgICAgICAgcGFnZWRfcGFn ZXM7ICAgICAvKiBudW1iZXIgb2YgcGFnZWQtb3V0IHBhZ2VzICAgICAgICAgICovCisKKyAgICAv KgorICAgICAqIFRoaXMgZmllbGQgc2hvdWxkIG9ubHkgYmUgZGlyZWN0bHkgYWNjZXNzZWQgYnkg ZG9tYWluX2FkanVzdF90b3RfcGFnZXMoKQorICAgICAqIGFuZCB0aGUgZG9tYWluX3RvdF9wYWdl cygpIGhlbHBlciBmdW5jdGlvbiBkZWZpbmVkIGJlbG93LgorICAgICAqLworICAgIHVuc2lnbmVk IGludCAgICAgdG90X3BhZ2VzOworCisgICAgdW5zaWduZWQgaW50ICAgICB4ZW5oZWFwX3BhZ2Vz OyAgICAgLyogcGFnZXMgYWxsb2NhdGVkIGZyb20gWGVuIGhlYXAgKi8KKyAgICB1bnNpZ25lZCBp bnQgICAgIG91dHN0YW5kaW5nX3BhZ2VzOyAvKiBwYWdlcyBjbGFpbWVkIGJ1dCBub3QgcG9zc2Vz c2VkICovCisgICAgdW5zaWduZWQgaW50ICAgICBtYXhfcGFnZXM7ICAgICAgICAgLyogbWF4aW11 bSB2YWx1ZSBmb3IgZG9tYWluX3RvdF9wYWdlcygpICovCisgICAgYXRvbWljX3QgICAgICAgICBz aHJfcGFnZXM7ICAgICAgICAgLyogc2hhcmVkIHBhZ2VzICovCisgICAgYXRvbWljX3QgICAgICAg ICBwYWdlZF9wYWdlczsgICAgICAgLyogcGFnZWQtb3V0IHBhZ2VzICovCiAKICAgICAvKiBTY2hl ZHVsaW5nLiAqLwogICAgIHZvaWQgICAgICAgICAgICAqc2NoZWRfcHJpdjsgICAgLyogc2NoZWR1 bGVyLXNwZWNpZmljIGRhdGEgKi8KQEAgLTUzOSw2ICs1NDUsMTIgQEAgc3RydWN0IGRvbWFpbgog I2VuZGlmCiB9OwogCisvKiBSZXR1cm4gbnVtYmVyIG9mIHBhZ2VzIGN1cnJlbnRseSBwb3Nlc3Nl ZCBieSB0aGUgZG9tYWluICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBkb21haW5fdG90 X3BhZ2VzKGNvbnN0IHN0cnVjdCBkb21haW4gKmQpCit7CisgICAgcmV0dXJuIGQtPnRvdF9wYWdl czsKK30KKwogLyogUHJvdGVjdCB1cGRhdGVzL3JlYWRzIChyZXNwLikgb2YgZG9tYWluX2xpc3Qg YW5kIGRvbWFpbl9oYXNoLiAqLwogZXh0ZXJuIHNwaW5sb2NrX3QgZG9tbGlzdF91cGRhdGVfbG9j azsKIGV4dGVybiByY3VfcmVhZF9sb2NrX3QgZG9tbGlzdF9yZWFkX2xvY2s7Ci0tIAoyLjIwLjEK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs