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=-6.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS 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 BE232C3B186 for ; Wed, 12 Feb 2020 13:44:53 +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 87A1020659 for ; Wed, 12 Feb 2020 13:44:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="A/ITxfTn" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 87A1020659 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.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 1j1sJM-0007Nd-Nc; Wed, 12 Feb 2020 13:44:16 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1j1sJL-0007ND-SJ for xen-devel@lists.xenproject.org; Wed, 12 Feb 2020 13:44:15 +0000 X-Inumbo-ID: c1519e22-4d9d-11ea-bc8e-bc764e2007e4 Received: from us-smtp-1.mimecast.com (unknown [207.211.31.120]) by us1-rack-iad1.inumbo.com (Halon) with ESMTP id c1519e22-4d9d-11ea-bc8e-bc764e2007e4; Wed, 12 Feb 2020 13:44:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1581515053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZyIsCGbp0q7rUNVxi3tQZc/wfPXKE8Dd+matyQg6+Kw=; b=A/ITxfTnEctdIV+rpWv0h6CVznAJDByfi8Zqum0UvUoZ/O0V7NknFkPgrOoufudiCKfjc/ s7oXq6rnpOedPmzRb/8VIOXJxMbqePY9jIeyVrTyQAroRXRqrXIyyWQhiv/tbJgcSNOSMP seCy5ubcLL5kOrzPq3Fua9XHeYVbb7o= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-431-JcoS9hQuPluo-HF9K9lF9Q-1; Wed, 12 Feb 2020 08:44:11 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B44478017CC; Wed, 12 Feb 2020 13:44:09 +0000 (UTC) Received: from t480s.redhat.com (ovpn-117-92.ams2.redhat.com [10.36.117.92]) by smtp.corp.redhat.com (Postfix) with ESMTP id A21F71001281; Wed, 12 Feb 2020 13:44:04 +0000 (UTC) From: David Hildenbrand To: qemu-devel@nongnu.org Date: Wed, 12 Feb 2020 14:42:51 +0100 Message-Id: <20200212134254.11073-14-david@redhat.com> In-Reply-To: <20200212134254.11073-1-david@redhat.com> References: <20200212134254.11073-1-david@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-MC-Unique: JcoS9hQuPluo-HF9K9lF9Q-1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [Xen-devel] [PATCH v2 fixed 13/16] numa: Teach ram block notifiers about resizable ram blocks 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: Stefano Stabellini , Eduardo Habkost , "Michael S . Tsirkin" , David Hildenbrand , "Dr . David Alan Gilbert" , Paul Durrant , xen-devel@lists.xenproject.org, Marcel Apfelbaum , Igor Mammedov , Anthony Perard , Paolo Bonzini , Richard Henderson Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" V2Ugd2FudCB0byBhY3R1YWxseSByZXNpemUgcmFtIGJsb2NrcyAobWFrZSBldmVyeXRoaW5nIGJl dHdlZW4KdXNlZF9sZW5ndGggYW5kIG1heF9sZW5ndGggaW5hY2Nlc3NpYmxlKSAtIGhvd2V2ZXIs IG5vdCBhbGwgcmFtIGJsb2NrCm5vdGlmaWVycyB3aWxsIHN1cHBvcnQgdGhhdC4gTGV0J3MgdGVh Y2ggdGhlIG5vdGlmaWVyIHRoYXQgcmFtIGJsb2NrcwphcmUgaW5kZWVkIHJlc2l6YWJsZSwgYnV0 IGtlZXAgdXNpbmcgbWF4X3NpemUgaW4gdGhlIGV4aXN0aW5nIG5vdGlmaWVycy4KClN1cHBseSB0 aGUgbWF4X3NpemUgd2hlbiBhZGRpbmcgYW5kIHJlbW92aW5nIHJhbSBibG9ja3MuIEFsc28sIG5v dGlmeSBvbgpyZXNpemVzLiBJbnRyb2R1Y2UgYSB3YXkgdG8gZGV0ZWN0IGlmIGFueSByZWdpc3Rl cmVkIG5vdGlmaWVyIGRvZXMgbm90CnN1cHBvcnQgcmVzaXplcyAtIHJhbV9ibG9ja19ub3RpZmll cnNfc3VwcG9ydF9yZXNpemUoKSAtIHdoaWNoIHdlIGNhbiBsYXRlcgp1c2UgdG8gZmFsbGJhY2sg dG8gbGVnYWN5IGhhbmRsaW5nIGlmIGEgcmVnaXN0ZXJlZCBub3RpZmllciAoZXNwLiwgU0VWIGFu ZApIQVgpIGRvZXMgbm90IHN1cHBvcnQgYWN0dWFsIHJlc2l6ZXMuCgpDYzogUmljaGFyZCBIZW5k ZXJzb24gPHJ0aEB0d2lkZGxlLm5ldD4KQ2M6IFBhb2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhh dC5jb20+CkNjOiAiRHIuIERhdmlkIEFsYW4gR2lsYmVydCIgPGRnaWxiZXJ0QHJlZGhhdC5jb20+ CkNjOiBFZHVhcmRvIEhhYmtvc3QgPGVoYWJrb3N0QHJlZGhhdC5jb20+CkNjOiBNYXJjZWwgQXBm ZWxiYXVtIDxtYXJjZWwuYXBmZWxiYXVtQGdtYWlsLmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGlu aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IEFudGhvbnkgUGVyYXJkIDxhbnRob255LnBl cmFyZEBjaXRyaXguY29tPgpDYzogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+CkNjOiAiTWlj aGFlbCBTLiBUc2lya2luIiA8bXN0QHJlZGhhdC5jb20+CkNjOiB4ZW4tZGV2ZWxAbGlzdHMueGVu cHJvamVjdC5vcmcKQ2M6IElnb3IgTWFtbWVkb3YgPGltYW1tZWRvQHJlZGhhdC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIEhpbGRlbmJyYW5kIDxkYXZpZEByZWRoYXQuY29tPgotLS0KIGV4ZWMu YyAgICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKysrKystLQogaHcvY29yZS9udW1hLmMg ICAgICAgICAgICAgfCAzNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiBody9p Mzg2L3hlbi94ZW4tbWFwY2FjaGUuYyB8ICA3ICsrKystLS0KIGluY2x1ZGUvZXhlYy9yYW1saXN0 LmggICAgIHwgMTQgKysrKysrKysrKy0tLS0KIHRhcmdldC9pMzg2L2hheC1tZW0uYyAgICAgIHwg IDUgKysrLS0KIHRhcmdldC9pMzg2L3Nldi5jICAgICAgICAgIHwgMTggKysrKysrKysrKy0tLS0t LS0tCiB1dGlsL3ZmaW8taGVscGVycy5jICAgICAgICB8IDE3ICsrKysrKysrKy0tLS0tLS0tCiA3 IGZpbGVzIGNoYW5nZWQsIDc2IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2V4ZWMuYyBiL2V4ZWMuYwppbmRleCBmYzY1YzRmN2NhLi5mMmQzMDQ3OWI4IDEwMDY0 NAotLS0gYS9leGVjLmMKKysrIGIvZXhlYy5jCkBAIC0yMTM5LDYgKzIxMzksOCBAQCBzdGF0aWMg dm9pZCBxZW11X3JhbV9hcHBseV9zZXR0aW5ncyh2b2lkICpob3N0LCBzaXplX3QgbGVuZ3RoKQog ICovCiBpbnQgcWVtdV9yYW1fcmVzaXplKFJBTUJsb2NrICpibG9jaywgcmFtX2FkZHJfdCBuZXdz aXplLCBFcnJvciAqKmVycnApCiB7CisgICAgY29uc3QgcmFtX2FkZHJfdCBvbGRzaXplID0gYmxv Y2stPnVzZWRfbGVuZ3RoOworCiAgICAgYXNzZXJ0KGJsb2NrKTsKIAogICAgIG5ld3NpemUgPSBI T1NUX1BBR0VfQUxJR04obmV3c2l6ZSk7CkBAIC0yMTY3LDYgKzIxNjksMTEgQEAgaW50IHFlbXVf cmFtX3Jlc2l6ZShSQU1CbG9jayAqYmxvY2ssIHJhbV9hZGRyX3QgbmV3c2l6ZSwgRXJyb3IgKipl cnJwKQogICAgIGJsb2NrLT51c2VkX2xlbmd0aCA9IG5ld3NpemU7CiAgICAgY3B1X3BoeXNpY2Fs X21lbW9yeV9zZXRfZGlydHlfcmFuZ2UoYmxvY2stPm9mZnNldCwgYmxvY2stPnVzZWRfbGVuZ3Ro LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJUlRZX0NMSUVOVFNf QUxMKTsKKworICAgIGlmIChibG9jay0+aG9zdCkgeworICAgICAgICByYW1fYmxvY2tfbm90aWZ5 X3Jlc2l6ZWQoYmxvY2stPmhvc3QsIG9sZHNpemUsIG5ld3NpemUpOworICAgIH0KKwogICAgIG1l bW9yeV9yZWdpb25fc2V0X3NpemUoYmxvY2stPm1yLCBuZXdzaXplKTsKICAgICBpZiAoYmxvY2st PnJlc2l6ZWQpIHsKICAgICAgICAgYmxvY2stPnJlc2l6ZWQoYmxvY2stPmlkc3RyLCBuZXdzaXpl LCBibG9jay0+aG9zdCk7CkBAIC0yMzE5LDcgKzIzMjYsOCBAQCBzdGF0aWMgdm9pZCByYW1fYmxv Y2tfYWRkKFJBTUJsb2NrICpuZXdfYmxvY2ssIEVycm9yICoqZXJycCkKIAogICAgIGlmIChuZXdf YmxvY2stPmhvc3QpIHsKICAgICAgICAgcWVtdV9yYW1fYXBwbHlfc2V0dGluZ3MobmV3X2Jsb2Nr LT5ob3N0LCBuZXdfYmxvY2stPm1heF9sZW5ndGgpOwotICAgICAgICByYW1fYmxvY2tfbm90aWZ5 X2FkZChuZXdfYmxvY2stPmhvc3QsIG5ld19ibG9jay0+bWF4X2xlbmd0aCk7CisgICAgICAgIHJh bV9ibG9ja19ub3RpZnlfYWRkKG5ld19ibG9jay0+aG9zdCwgbmV3X2Jsb2NrLT51c2VkX2xlbmd0 aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X2Jsb2NrLT5tYXhfbGVuZ3RoKTsK ICAgICB9CiB9CiAKQEAgLTI1MDIsNyArMjUxMCw4IEBAIHZvaWQgcWVtdV9yYW1fZnJlZShSQU1C bG9jayAqYmxvY2spCiAgICAgfQogCiAgICAgaWYgKGJsb2NrLT5ob3N0KSB7Ci0gICAgICAgIHJh bV9ibG9ja19ub3RpZnlfcmVtb3ZlKGJsb2NrLT5ob3N0LCBibG9jay0+bWF4X2xlbmd0aCk7Cisg ICAgICAgIHJhbV9ibG9ja19ub3RpZnlfcmVtb3ZlKGJsb2NrLT5ob3N0LCBibG9jay0+dXNlZF9s ZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5tYXhfbGVuZ3Ro KTsKICAgICB9CiAKICAgICBxZW11X211dGV4X2xvY2tfcmFtbGlzdCgpOwpkaWZmIC0tZ2l0IGEv aHcvY29yZS9udW1hLmMgYi9ody9jb3JlL251bWEuYwppbmRleCA2NTk5YzY5ZTA1Li41YjIwZGM3 MjZkIDEwMDY0NAotLS0gYS9ody9jb3JlL251bWEuYworKysgYi9ody9jb3JlL251bWEuYwpAQCAt OTAyLDExICs5MDIsMTIgQEAgdm9pZCBxdWVyeV9udW1hX25vZGVfbWVtKE51bWFOb2RlTWVtIG5v ZGVfbWVtW10sIE1hY2hpbmVTdGF0ZSAqbXMpCiBzdGF0aWMgaW50IHJhbV9ibG9ja19ub3RpZnlf YWRkX3NpbmdsZShSQU1CbG9jayAqcmIsIHZvaWQgKm9wYXF1ZSkKIHsKICAgICBjb25zdCByYW1f YWRkcl90IG1heF9zaXplID0gcWVtdV9yYW1fZ2V0X21heF9sZW5ndGgocmIpOworICAgIGNvbnN0 IHJhbV9hZGRyX3Qgc2l6ZSA9IHFlbXVfcmFtX2dldF91c2VkX2xlbmd0aChyYik7CiAgICAgdm9p ZCAqaG9zdCA9IHFlbXVfcmFtX2dldF9ob3N0X2FkZHIocmIpOwogICAgIFJBTUJsb2NrTm90aWZp ZXIgKm5vdGlmaWVyID0gb3BhcXVlOwogCiAgICAgaWYgKGhvc3QpIHsKLSAgICAgICAgbm90aWZp ZXItPnJhbV9ibG9ja19hZGRlZChub3RpZmllciwgaG9zdCwgbWF4X3NpemUpOworICAgICAgICBu b3RpZmllci0+cmFtX2Jsb2NrX2FkZGVkKG5vdGlmaWVyLCBob3N0LCBzaXplLCBtYXhfc2l6ZSk7 CiAgICAgfQogICAgIHJldHVybiAwOwogfQpAQCAtOTIzLDIwICs5MjQsNDMgQEAgdm9pZCByYW1f YmxvY2tfbm90aWZpZXJfcmVtb3ZlKFJBTUJsb2NrTm90aWZpZXIgKm4pCiAgICAgUUxJU1RfUkVN T1ZFKG4sIG5leHQpOwogfQogCi12b2lkIHJhbV9ibG9ja19ub3RpZnlfYWRkKHZvaWQgKmhvc3Qs IHNpemVfdCBzaXplKQordm9pZCByYW1fYmxvY2tfbm90aWZ5X2FkZCh2b2lkICpob3N0LCBzaXpl X3Qgc2l6ZSwgc2l6ZV90IG1heF9zaXplKQogewogICAgIFJBTUJsb2NrTm90aWZpZXIgKm5vdGlm aWVyOwogCiAgICAgUUxJU1RfRk9SRUFDSChub3RpZmllciwgJnJhbV9saXN0LnJhbWJsb2NrX25v dGlmaWVycywgbmV4dCkgewotICAgICAgICBub3RpZmllci0+cmFtX2Jsb2NrX2FkZGVkKG5vdGlm aWVyLCBob3N0LCBzaXplKTsKKyAgICAgICAgbm90aWZpZXItPnJhbV9ibG9ja19hZGRlZChub3Rp ZmllciwgaG9zdCwgc2l6ZSwgbWF4X3NpemUpOwogICAgIH0KIH0KIAotdm9pZCByYW1fYmxvY2tf bm90aWZ5X3JlbW92ZSh2b2lkICpob3N0LCBzaXplX3Qgc2l6ZSkKK3ZvaWQgcmFtX2Jsb2NrX25v dGlmeV9yZW1vdmUodm9pZCAqaG9zdCwgc2l6ZV90IHNpemUsIHNpemVfdCBtYXhfc2l6ZSkKIHsK ICAgICBSQU1CbG9ja05vdGlmaWVyICpub3RpZmllcjsKIAogICAgIFFMSVNUX0ZPUkVBQ0gobm90 aWZpZXIsICZyYW1fbGlzdC5yYW1ibG9ja19ub3RpZmllcnMsIG5leHQpIHsKLSAgICAgICAgbm90 aWZpZXItPnJhbV9ibG9ja19yZW1vdmVkKG5vdGlmaWVyLCBob3N0LCBzaXplKTsKKyAgICAgICAg bm90aWZpZXItPnJhbV9ibG9ja19yZW1vdmVkKG5vdGlmaWVyLCBob3N0LCBzaXplLCBtYXhfc2l6 ZSk7CiAgICAgfQogfQorCit2b2lkIHJhbV9ibG9ja19ub3RpZnlfcmVzaXplZCh2b2lkICpob3N0 LCBzaXplX3Qgb2xkX3NpemUsIHNpemVfdCBuZXdfc2l6ZSkKK3sKKyAgICBSQU1CbG9ja05vdGlm aWVyICpub3RpZmllcjsKKworICAgIFFMSVNUX0ZPUkVBQ0gobm90aWZpZXIsICZyYW1fbGlzdC5y YW1ibG9ja19ub3RpZmllcnMsIG5leHQpIHsKKyAgICAgICAgaWYgKG5vdGlmaWVyLT5yYW1fYmxv Y2tfcmVzaXplZCkgeworICAgICAgICAgICAgbm90aWZpZXItPnJhbV9ibG9ja19yZXNpemVkKG5v dGlmaWVyLCBob3N0LCBvbGRfc2l6ZSwgbmV3X3NpemUpOworICAgICAgICB9CisgICAgfQorfQor Citib29sIHJhbV9ibG9ja19ub3RpZmllcnNfc3VwcG9ydF9yZXNpemUodm9pZCkKK3sKKyAgICBS QU1CbG9ja05vdGlmaWVyICpub3RpZmllcjsKKworICAgIFFMSVNUX0ZPUkVBQ0gobm90aWZpZXIs ICZyYW1fbGlzdC5yYW1ibG9ja19ub3RpZmllcnMsIG5leHQpIHsKKyAgICAgICAgaWYgKCFub3Rp Zmllci0+cmFtX2Jsb2NrX3Jlc2l6ZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KZGlmZiAtLWdpdCBhL2h3L2kzODYv eGVuL3hlbi1tYXBjYWNoZS5jIGIvaHcvaTM4Ni94ZW4veGVuLW1hcGNhY2hlLmMKaW5kZXggNWIx MjBlZDQ0Yi4uZDZkY2VhNjVkMSAxMDA2NDQKLS0tIGEvaHcvaTM4Ni94ZW4veGVuLW1hcGNhY2hl LmMKKysrIGIvaHcvaTM4Ni94ZW4veGVuLW1hcGNhY2hlLmMKQEAgLTE2OSw3ICsxNjksOCBAQCBz dGF0aWMgdm9pZCB4ZW5fcmVtYXBfYnVja2V0KE1hcENhY2hlRW50cnkgKmVudHJ5LAogCiAgICAg aWYgKGVudHJ5LT52YWRkcl9iYXNlICE9IE5VTEwpIHsKICAgICAgICAgaWYgKCEoZW50cnktPmZs YWdzICYgWEVOX01BUENBQ0hFX0VOVFJZX0RVTU1ZKSkgewotICAgICAgICAgICAgcmFtX2Jsb2Nr X25vdGlmeV9yZW1vdmUoZW50cnktPnZhZGRyX2Jhc2UsIGVudHJ5LT5zaXplKTsKKyAgICAgICAg ICAgIHJhbV9ibG9ja19ub3RpZnlfcmVtb3ZlKGVudHJ5LT52YWRkcl9iYXNlLCBlbnRyeS0+c2l6 ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5zaXplKTsKICAg ICAgICAgfQogICAgICAgICBpZiAobXVubWFwKGVudHJ5LT52YWRkcl9iYXNlLCBlbnRyeS0+c2l6 ZSkgIT0gMCkgewogICAgICAgICAgICAgcGVycm9yKCJ1bm1hcCBmYWlscyIpOwpAQCAtMjExLDcg KzIxMiw3IEBAIHN0YXRpYyB2b2lkIHhlbl9yZW1hcF9idWNrZXQoTWFwQ2FjaGVFbnRyeSAqZW50 cnksCiAgICAgfQogCiAgICAgaWYgKCEoZW50cnktPmZsYWdzICYgWEVOX01BUENBQ0hFX0VOVFJZ X0RVTU1ZKSkgewotICAgICAgICByYW1fYmxvY2tfbm90aWZ5X2FkZCh2YWRkcl9iYXNlLCBzaXpl KTsKKyAgICAgICAgcmFtX2Jsb2NrX25vdGlmeV9hZGQodmFkZHJfYmFzZSwgc2l6ZSwgc2l6ZSk7 CiAgICAgfQogCiAgICAgZW50cnktPnZhZGRyX2Jhc2UgPSB2YWRkcl9iYXNlOwpAQCAtNDUyLDcg KzQ1Myw3IEBAIHN0YXRpYyB2b2lkIHhlbl9pbnZhbGlkYXRlX21hcF9jYWNoZV9lbnRyeV91bmxv Y2tlZCh1aW50OF90ICpidWZmZXIpCiAgICAgfQogCiAgICAgcGVudHJ5LT5uZXh0ID0gZW50cnkt Pm5leHQ7Ci0gICAgcmFtX2Jsb2NrX25vdGlmeV9yZW1vdmUoZW50cnktPnZhZGRyX2Jhc2UsIGVu dHJ5LT5zaXplKTsKKyAgICByYW1fYmxvY2tfbm90aWZ5X3JlbW92ZShlbnRyeS0+dmFkZHJfYmFz ZSwgZW50cnktPnNpemUsIGVudHJ5LT5zaXplKTsKICAgICBpZiAobXVubWFwKGVudHJ5LT52YWRk cl9iYXNlLCBlbnRyeS0+c2l6ZSkgIT0gMCkgewogICAgICAgICBwZXJyb3IoInVubWFwIGZhaWxz Iik7CiAgICAgICAgIGV4aXQoLTEpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9leGVjL3JhbWxpc3Qu aCBiL2luY2x1ZGUvZXhlYy9yYW1saXN0LmgKaW5kZXggYmM0ZmFhMWIwMC4uOTJlNTQ4NDYxZSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9leGVjL3JhbWxpc3QuaAorKysgYi9pbmNsdWRlL2V4ZWMvcmFt bGlzdC5oCkBAIC02NSwxNSArNjUsMjEgQEAgdm9pZCBxZW11X211dGV4X2xvY2tfcmFtbGlzdCh2 b2lkKTsKIHZvaWQgcWVtdV9tdXRleF91bmxvY2tfcmFtbGlzdCh2b2lkKTsKIAogc3RydWN0IFJB TUJsb2NrTm90aWZpZXIgewotICAgIHZvaWQgKCpyYW1fYmxvY2tfYWRkZWQpKFJBTUJsb2NrTm90 aWZpZXIgKm4sIHZvaWQgKmhvc3QsIHNpemVfdCBzaXplKTsKLSAgICB2b2lkICgqcmFtX2Jsb2Nr X3JlbW92ZWQpKFJBTUJsb2NrTm90aWZpZXIgKm4sIHZvaWQgKmhvc3QsIHNpemVfdCBzaXplKTsK KyAgICB2b2lkICgqcmFtX2Jsb2NrX2FkZGVkKShSQU1CbG9ja05vdGlmaWVyICpuLCB2b2lkICpo b3N0LCBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbWF4 X3NpemUpOworICAgIHZvaWQgKCpyYW1fYmxvY2tfcmVtb3ZlZCkoUkFNQmxvY2tOb3RpZmllciAq biwgdm9pZCAqaG9zdCwgc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplX3QgbWF4X3NpemUpOworICAgIHZvaWQgKCpyYW1fYmxvY2tfcmVzaXplZCkoUkFNQmxv Y2tOb3RpZmllciAqbiwgdm9pZCAqaG9zdCwgc2l6ZV90IG9sZF9zaXplLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZV90IG5ld19zaXplKTsKICAgICBRTElTVF9FTlRSWShSQU1C bG9ja05vdGlmaWVyKSBuZXh0OwogfTsKIAogdm9pZCByYW1fYmxvY2tfbm90aWZpZXJfYWRkKFJB TUJsb2NrTm90aWZpZXIgKm4pOwogdm9pZCByYW1fYmxvY2tfbm90aWZpZXJfcmVtb3ZlKFJBTUJs b2NrTm90aWZpZXIgKm4pOwotdm9pZCByYW1fYmxvY2tfbm90aWZ5X2FkZCh2b2lkICpob3N0LCBz aXplX3Qgc2l6ZSk7Ci12b2lkIHJhbV9ibG9ja19ub3RpZnlfcmVtb3ZlKHZvaWQgKmhvc3QsIHNp emVfdCBzaXplKTsKK3ZvaWQgcmFtX2Jsb2NrX25vdGlmeV9hZGQodm9pZCAqaG9zdCwgc2l6ZV90 IHNpemUsIHNpemVfdCBtYXhfc2l6ZSk7Cit2b2lkIHJhbV9ibG9ja19ub3RpZnlfcmVtb3ZlKHZv aWQgKmhvc3QsIHNpemVfdCBzaXplLCBzaXplX3QgbWF4X3NpemUpOwordm9pZCByYW1fYmxvY2tf bm90aWZ5X3Jlc2l6ZWQodm9pZCAqaG9zdCwgc2l6ZV90IG9sZF9zaXplLCBzaXplX3QgbmV3X3Np emUpOworYm9vbCByYW1fYmxvY2tfbm90aWZpZXJzX3N1cHBvcnRfcmVzaXplKHZvaWQpOwogCiB2 b2lkIHJhbV9ibG9ja19kdW1wKE1vbml0b3IgKm1vbik7CiAKZGlmZiAtLWdpdCBhL3RhcmdldC9p Mzg2L2hheC1tZW0uYyBiL3RhcmdldC9pMzg2L2hheC1tZW0uYwppbmRleCA2YmI1YTI0OTE3Li40 NTRkN2ZiMjEyIDEwMDY0NAotLS0gYS90YXJnZXQvaTM4Ni9oYXgtbWVtLmMKKysrIGIvdGFyZ2V0 L2kzODYvaGF4LW1lbS5jCkBAIC0yOTMsNyArMjkzLDggQEAgc3RhdGljIE1lbW9yeUxpc3RlbmVy IGhheF9tZW1vcnlfbGlzdGVuZXIgPSB7CiAgICAgLnByaW9yaXR5ID0gMTAsCiB9OwogCi1zdGF0 aWMgdm9pZCBoYXhfcmFtX2Jsb2NrX2FkZGVkKFJBTUJsb2NrTm90aWZpZXIgKm4sIHZvaWQgKmhv c3QsIHNpemVfdCBzaXplKQorc3RhdGljIHZvaWQgaGF4X3JhbV9ibG9ja19hZGRlZChSQU1CbG9j a05vdGlmaWVyICpuLCB2b2lkICpob3N0LCBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZV90IG1heF9zaXplKQogewogICAgIC8qCiAgICAgICogV2UgbXVz dCByZWdpc3RlciBlYWNoIFJBTSBibG9jayB3aXRoIHRoZSBIQVhNIGtlcm5lbCBtb2R1bGUsIG9y CkBAIC0zMDQsNyArMzA1LDcgQEAgc3RhdGljIHZvaWQgaGF4X3JhbV9ibG9ja19hZGRlZChSQU1C bG9ja05vdGlmaWVyICpuLCB2b2lkICpob3N0LCBzaXplX3Qgc2l6ZSkKICAgICAgKiBob3N0IHBo eXNpY2FsIHBhZ2VzIGZvciB0aGUgUkFNIGJsb2NrIGFzIHBhcnQgb2YgdGhpcyByZWdpc3RyYXRp b24KICAgICAgKiBwcm9jZXNzLCBoZW5jZSB0aGUgbmFtZSBoYXhfcG9wdWxhdGVfcmFtKCkuCiAg ICAgICovCi0gICAgaWYgKGhheF9wb3B1bGF0ZV9yYW0oKHVpbnQ2NF90KSh1aW50cHRyX3QpaG9z dCwgc2l6ZSkgPCAwKSB7CisgICAgaWYgKGhheF9wb3B1bGF0ZV9yYW0oKHVpbnQ2NF90KSh1aW50 cHRyX3QpaG9zdCwgbWF4X3NpemUpIDwgMCkgewogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkhB WCBmYWlsZWQgdG8gcG9wdWxhdGUgUkFNXG4iKTsKICAgICAgICAgYWJvcnQoKTsKICAgICB9CmRp ZmYgLS1naXQgYS90YXJnZXQvaTM4Ni9zZXYuYyBiL3RhcmdldC9pMzg2L3Nldi5jCmluZGV4IDAy NGJiMjRlNTEuLjZiNGNlZTI0YTIgMTAwNjQ0Ci0tLSBhL3RhcmdldC9pMzg2L3Nldi5jCisrKyBi L3RhcmdldC9pMzg2L3Nldi5jCkBAIC0xMjksNyArMTI5LDggQEAgc2V2X3NldF9ndWVzdF9zdGF0 ZShTZXZTdGF0ZSBuZXdfc3RhdGUpCiB9CiAKIHN0YXRpYyB2b2lkCi1zZXZfcmFtX2Jsb2NrX2Fk ZGVkKFJBTUJsb2NrTm90aWZpZXIgKm4sIHZvaWQgKmhvc3QsIHNpemVfdCBzaXplKQorc2V2X3Jh bV9ibG9ja19hZGRlZChSQU1CbG9ja05vdGlmaWVyICpuLCB2b2lkICpob3N0LCBzaXplX3Qgc2l6 ZSwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1heF9zaXplKQogewogICAgIGludCByOwog ICAgIHN0cnVjdCBrdm1fZW5jX3JlZ2lvbiByYW5nZTsKQEAgLTE0NiwxOSArMTQ3LDIwIEBAIHNl dl9yYW1fYmxvY2tfYWRkZWQoUkFNQmxvY2tOb3RpZmllciAqbiwgdm9pZCAqaG9zdCwgc2l6ZV90 IHNpemUpCiAgICAgfQogCiAgICAgcmFuZ2UuYWRkciA9IChfX3U2NCkodW5zaWduZWQgbG9uZylo b3N0OwotICAgIHJhbmdlLnNpemUgPSBzaXplOworICAgIHJhbmdlLnNpemUgPSBtYXhfc2l6ZTsK IAotICAgIHRyYWNlX2t2bV9tZW1jcnlwdF9yZWdpc3Rlcl9yZWdpb24oaG9zdCwgc2l6ZSk7Cisg ICAgdHJhY2Vfa3ZtX21lbWNyeXB0X3JlZ2lzdGVyX3JlZ2lvbihob3N0LCBtYXhfc2l6ZSk7CiAg ICAgciA9IGt2bV92bV9pb2N0bChrdm1fc3RhdGUsIEtWTV9NRU1PUllfRU5DUllQVF9SRUdfUkVH SU9OLCAmcmFuZ2UpOwogICAgIGlmIChyKSB7CiAgICAgICAgIGVycm9yX3JlcG9ydCgiJXM6IGZh aWxlZCB0byByZWdpc3RlciByZWdpb24gKCVwKyUjengpIGVycm9yICclcyciLAotICAgICAgICAg ICAgICAgICAgICAgX19mdW5jX18sIGhvc3QsIHNpemUsIHN0cmVycm9yKGVycm5vKSk7CisgICAg ICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgaG9zdCwgbWF4X3NpemUsIHN0cmVycm9yKGVycm5v KSk7CiAgICAgICAgIGV4aXQoMSk7CiAgICAgfQogfQogCiBzdGF0aWMgdm9pZAotc2V2X3JhbV9i bG9ja19yZW1vdmVkKFJBTUJsb2NrTm90aWZpZXIgKm4sIHZvaWQgKmhvc3QsIHNpemVfdCBzaXpl KQorc2V2X3JhbV9ibG9ja19yZW1vdmVkKFJBTUJsb2NrTm90aWZpZXIgKm4sIHZvaWQgKmhvc3Qs IHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBtYXhfc2l6ZSkKIHsK ICAgICBpbnQgcjsKICAgICBzdHJ1Y3Qga3ZtX2VuY19yZWdpb24gcmFuZ2U7CkBAIC0xNzUsMTMg KzE3NywxMyBAQCBzZXZfcmFtX2Jsb2NrX3JlbW92ZWQoUkFNQmxvY2tOb3RpZmllciAqbiwgdm9p ZCAqaG9zdCwgc2l6ZV90IHNpemUpCiAgICAgfQogCiAgICAgcmFuZ2UuYWRkciA9IChfX3U2NCko dW5zaWduZWQgbG9uZylob3N0OwotICAgIHJhbmdlLnNpemUgPSBzaXplOworICAgIHJhbmdlLnNp emUgPSBtYXhfc2l6ZTsKIAotICAgIHRyYWNlX2t2bV9tZW1jcnlwdF91bnJlZ2lzdGVyX3JlZ2lv bihob3N0LCBzaXplKTsKKyAgICB0cmFjZV9rdm1fbWVtY3J5cHRfdW5yZWdpc3Rlcl9yZWdpb24o aG9zdCwgbWF4X3NpemUpOwogICAgIHIgPSBrdm1fdm1faW9jdGwoa3ZtX3N0YXRlLCBLVk1fTUVN T1JZX0VOQ1JZUFRfVU5SRUdfUkVHSU9OLCAmcmFuZ2UpOwogICAgIGlmIChyKSB7CiAgICAgICAg IGVycm9yX3JlcG9ydCgiJXM6IGZhaWxlZCB0byB1bnJlZ2lzdGVyIHJlZ2lvbiAoJXArJSN6eCki LAotICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGhvc3QsIHNpemUpOworICAgICAgICAg ICAgICAgICAgICAgX19mdW5jX18sIGhvc3QsIG1heF9zaXplKTsKICAgICB9CiB9CiAKZGlmZiAt LWdpdCBhL3V0aWwvdmZpby1oZWxwZXJzLmMgYi91dGlsL3ZmaW8taGVscGVycy5jCmluZGV4IGIz YWRjMzI4ZGIuLjNkYjZhYTQ5ZjQgMTAwNjQ0Ci0tLSBhL3V0aWwvdmZpby1oZWxwZXJzLmMKKysr IGIvdXRpbC92ZmlvLWhlbHBlcnMuYwpAQCAtMzcyLDI1ICszNzIsMjYgQEAgZmFpbF9jb250YWlu ZXI6CiAgICAgcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgcWVtdV92ZmlvX3JhbV9ibG9j a19hZGRlZChSQU1CbG9ja05vdGlmaWVyICpuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2b2lkICpob3N0LCBzaXplX3Qgc2l6ZSkKK3N0YXRpYyB2b2lkIHFlbXVfdmZp b19yYW1fYmxvY2tfYWRkZWQoUkFNQmxvY2tOb3RpZmllciAqbiwgdm9pZCAqaG9zdCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsIHNpemVfdCBtYXhf c2l6ZSkKIHsKICAgICBRRU1VVkZJT1N0YXRlICpzID0gY29udGFpbmVyX29mKG4sIFFFTVVWRklP U3RhdGUsIHJhbV9ub3RpZmllcik7CiAgICAgaW50IHJldDsKIAotICAgIHRyYWNlX3FlbXVfdmZp b19yYW1fYmxvY2tfYWRkZWQocywgaG9zdCwgc2l6ZSk7Ci0gICAgcmV0ID0gcWVtdV92ZmlvX2Rt YV9tYXAocywgaG9zdCwgc2l6ZSwgZmFsc2UsIE5VTEwpOworICAgIHRyYWNlX3FlbXVfdmZpb19y YW1fYmxvY2tfYWRkZWQocywgaG9zdCwgbWF4X3NpemUpOworICAgIHJldCA9IHFlbXVfdmZpb19k bWFfbWFwKHMsIGhvc3QsIG1heF9zaXplLCBmYWxzZSwgTlVMTCk7CiAgICAgaWYgKHJldCkgewot ICAgICAgICBlcnJvcl9yZXBvcnQoInFlbXVfdmZpb19kbWFfbWFwKCVwLCAlenUpIGZhaWxlZDog JWQiLCBob3N0LCBzaXplLCByZXQpOworICAgICAgICBlcnJvcl9yZXBvcnQoInFlbXVfdmZpb19k bWFfbWFwKCVwLCAlenUpIGZhaWxlZDogJWQiLCBob3N0LAorICAgICAgICAgICAgICAgICAgICAg bWF4X3NpemUsIHJldCk7CiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBxZW11X3ZmaW9fcmFtX2Js b2NrX3JlbW92ZWQoUkFNQmxvY2tOb3RpZmllciAqbiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2b2lkICpob3N0LCBzaXplX3Qgc2l6ZSkKK3N0YXRpYyB2b2lkIHFl bXVfdmZpb19yYW1fYmxvY2tfcmVtb3ZlZChSQU1CbG9ja05vdGlmaWVyICpuLCB2b2lkICpob3N0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLCBz aXplX3QgbWF4X3NpemUpCiB7CiAgICAgUUVNVVZGSU9TdGF0ZSAqcyA9IGNvbnRhaW5lcl9vZihu LCBRRU1VVkZJT1N0YXRlLCByYW1fbm90aWZpZXIpOwogICAgIGlmIChob3N0KSB7Ci0gICAgICAg IHRyYWNlX3FlbXVfdmZpb19yYW1fYmxvY2tfcmVtb3ZlZChzLCBob3N0LCBzaXplKTsKKyAgICAg ICAgdHJhY2VfcWVtdV92ZmlvX3JhbV9ibG9ja19yZW1vdmVkKHMsIGhvc3QsIG1heF9zaXplKTsK ICAgICAgICAgcWVtdV92ZmlvX2RtYV91bm1hcChzLCBob3N0KTsKICAgICB9CiB9Ci0tIAoyLjI0 LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczov L2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs