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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4EA25C433EF for ; Fri, 8 Jul 2022 19:38:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=uWpoDGYVZfJhs4o9UBWPQOXxq8SPchgnLepo0OarX3A=; b=yMEpMD6BGANiu0 GUjg7TpR68TDhC96STNaPPxcHfp0+z2muHSNXoj3pidf701m4CWdtnaztNTED3IhDsxQKP5ztpH+P Q6VoCuo8Zj8Qv66guFU9NojFaRT09k2h0Lpqhb2Z21LEu72wqu6LwGY6IZwnnj9CqJFk56+nmWQoM 7x9xBU8tvSCvClpjIINHvLifYfn5D+D69mkCLr6b3J1HKl5waN3PR7ZQYFQyNpt20mqzIod06AEtc O+JJa/vhDVZgO15ZZ7v9GzaPkgqKYGIkZnoVtViJYcZzfw13imvZ1X7rxvnsCFKZw8i0veVykB/KH GppOdJjbjpUUGvVb4XoQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o9toI-005dTp-HR; Fri, 08 Jul 2022 19:38:42 +0000 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o9toF-005dRw-Ka for kexec@lists.infradead.org; Fri, 08 Jul 2022 19:38:41 +0000 Received: by mail-wr1-x430.google.com with SMTP id bk26so16743732wrb.11 for ; Fri, 08 Jul 2022 12:38:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FJI9Ehsx1DLhgOOTZFpXBygwtMTKmpvBdj5nkzZLTLY=; b=a2wrVl6zvNzyjpS74p8fzHi85oQNxgg+Gr9JWGaZuND/BBwhnekF1N+0OasRjtxTD5 rqunmOW1D28Sm3WZ9CgtmzKbYnjI9rP6yEDVsvbMiORvYYM4zbJPUsA3MiLeFJZg0C3R zyQ51hCYa31tPaMajBYHJUyGrtuUnKiPRIKg4SzHNGQXtbAqN9VzK0HUv9oZLOWG4WeO X+s2m/Fg1dY6vFl5OtfPmyXLceIkhmXF9sWN5lv96aTryBfYaCMNNbFxiSDy9YWcRVOM nwgPNp+zWeVAJerlfW0a0GpoqyoJ39OoeH/gVKB8hNU0pV7E0aTrdzgflmYE+vvpYx20 lhOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=FJI9Ehsx1DLhgOOTZFpXBygwtMTKmpvBdj5nkzZLTLY=; b=FvdKg2jxahDJwYSqGQwE2ifdQGnloFX/n0okCcHt+fZyAnoZ6pGgCD5NWoh+0pi7nR 6Bd1rCzULj0yhWG6eymYsdp6jJNqLvuGJpE+FNjSwdZueG2m7A4UlXJPA65rIBlYlmKf LIFU7rj/S6OGAO/xJkbqbro6IRFooJuCPtxcerJQP4meArXhj4KXAFIJ+N43lsfuvwKo nrpjCBLvcM7Zkomq9AMopO2nVvxPL9AH29pwrtgz+hKbUggh4SZ4YUmhtCPPFn0+x7Gm rzTq7aOyYJPf4371JWsQHnAf5Z2YpJFFCoVgqYs/unyZvzI6KiTjum2Uxj7BuUSsVyRZ viBA== X-Gm-Message-State: AJIora+sy7+SvlYtfhLfxTDk5RIvzrC/0il7pjSFfl1UAth/JUIqtzWt gC7WDv6chqAZrZF5d/2tLrc= X-Google-Smtp-Source: AGRyM1v3slCHWDgrE0apW0q146paDpoAX8/kc8ApkFjKpoSjFradJsGClHiO0X094PeVXwUAjolvgg== X-Received: by 2002:adf:e7c9:0:b0:21d:8716:e08d with SMTP id e9-20020adfe7c9000000b0021d8716e08dmr4822062wrn.328.1657309112010; Fri, 08 Jul 2022 12:38:32 -0700 (PDT) Received: from opensuse.localnet (host-95-235-102-55.retail.telecomitalia.it. [95.235.102.55]) by smtp.gmail.com with ESMTPSA id w13-20020adff9cd000000b0021d8b1656dfsm3973684wrr.93.2022.07.08.12.38.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Jul 2022 12:38:30 -0700 (PDT) From: "Fabio M. De Francesco" To: linux-kernel@vger.kernel.org, x86@kernel.org, kexec@lists.infradead.org, ebiederm@xmission.com, dyoung@redhat.com, bhe@redhat.com, vgoyal@redhat.com, Eric DeVolder Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, nramas@linux.microsoft.com, thomas.lendacky@amd.com, robh@kernel.org, efault@gmx.de, rppt@kernel.org, david@redhat.com, sourabhjain@linux.ibm.com, konrad.wilk@oracle.com, boris.ostrovsky@oracle.com, eric.devolder@oracle.com Subject: Re: [PATCH v9 7/7] x86/crash: Add x86 crash hotplug support Date: Fri, 08 Jul 2022 21:38:27 +0200 Message-ID: <2843978.e9J7NaK4W3@opensuse> In-Reply-To: <20220613224240.79400-8-eric.devolder@oracle.com> References: <20220613224240.79400-1-eric.devolder@oracle.com> <20220613224240.79400-8-eric.devolder@oracle.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220708_123839_692632_E6B1C5F7 X-CRM114-Status: GOOD ( 38.78 ) X-BeenThere: kexec@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+kexec=archiver.kernel.org@lists.infradead.org T24gbWFydGVkw6wgMTQgZ2l1Z25vIDIwMjIgMDA6NDI6NDAgQ0VTVCBFcmljIERlVm9sZGVyIHdy b3RlOgo+IEZvciB4ODZfNjQsIHdoZW4gQ1BVIG9yIG1lbW9yeSBpcyBob3QgdW4vcGx1Z2dlZCwg dGhlIGNyYXNoCj4gZWxmY29yZWhkciwgd2hpY2ggZGVzY3JpYmVzIHRoZSBDUFVzIGFuZCBtZW1v cnkgaW4gdGhlIHN5c3RlbSwKPiBtdXN0IGFsc28gYmUgdXBkYXRlZC4KPiAKPiBXaGVuIGxvYWRp bmcgdGhlIGNyYXNoIGtlcm5lbCB2aWEga2V4ZWNfbG9hZCBvciBrZXhlY19maWxlX2xvYWQsCj4g dGhlIGVsZmNvcmVoZHIgaXMgaWRlbnRpZmllZCBhdCBydW4gdGltZSBpbgo+IGNyYXNoX2NvcmU6 aGFuZGxlX2hvdHBsdWdfZXZlbnQoKS4KPiAKPiBUbyB1cGRhdGUgdGhlIGVsZmNvcmVoZHIgZm9y IHg4Nl82NCwgYSBuZXcgZWxmY29yZWhkciBtdXN0IGJlCj4gZ2VuZXJhdGVkIGZyb20gdGhlIGF2 YWlsYWJsZSBDUFVzIGFuZCBtZW1vcnkuIFRoZSBuZXcgZWxmY29yZWhkcgo+IGlzIHByZXBhcmVk IGludG8gYSBidWZmZXIsIGFuZCB0aGVuIGluc3RhbGxlZCBvdmVyIHRoZSB0b3Agb2YKPiB0aGUg ZXhpc3RpbmcgZWxmY29yZWhkci4KPiAKPiBJbiB0aGUgcGF0Y2ggJ2tleGVjOiBleGNsdWRlIGVs ZmNvcmVoZHIgZnJvbSB0aGUgc2VnbWVudCBkaWdlc3QnCj4gdGhlIG5lZWQgdG8gdXBkYXRlIHB1 cmdhdG9yeSBkdWUgdG8gdGhlIGNoYW5nZSBpbiBlbGZjb3JlaGRyIHdhcwo+IGVsaW1pbmF0ZWQu ICBBcyBhIHJlc3VsdCwgbm8gY2hhbmdlcyB0byBwdXJnYXRvcnkgb3IgYm9vdF9wYXJhbXMKPiAo YXMgdGhlIGVsZmNvcmVoZHI9IGtlcm5lbCBjb21tYW5kIGxpbmUgcGFyYW1ldGVyIHBvaW50ZXIK PiByZW1haW5zIHVuY2hhbmdlZCBhbmQgY29ycmVjdCkgYXJlIG5lZWRlZCwganVzdCBlbGZjb3Jl aGRyLgo+IAo+IFRvIGFjY29tbW9kYXRlIGEgZ3Jvd2luZyBudW1iZXIgb2YgcmVzb3VyY2VzIHZp YSBob3RwbHVnLCB0aGUKPiBlbGZjb3JlaGRyIHNlZ21lbnQgbXVzdCBiZSBzdWZmaWNpZW50bHkg bGFyZ2UgZW5vdWdoIHRvIGFjY29tbW9kYXRlCj4gY2hhbmdlcywgc2VlIHRoZSBDUkFTSF9NQVhf TUVNT1JZX1JBTkdFUyBjb25maWd1cmUgaXRlbS4KPiAKPiBXaXRoIHRoaXMgY2hhbmdlLCBjcmFz aCBob3RwbHVnIGZvciBrZXhlY19maWxlX2xvYWQgc3lzY2FsbAo+IGlzIHN1cHBvcnRlZC4gVGhl IGtleGVjX2xvYWQgaXMgYWxzbyBzdXBwb3J0ZWQsIGJ1dCBhbHNvCj4gcmVxdWlyZXMgYSBjb3Jy ZXNwb25kaW5nIGNoYW5nZSB0byB1c2Vyc3BhY2Uga2V4ZWMtdG9vbHMuCj4gCj4gU2lnbmVkLW9m Zi1ieTogRXJpYyBEZVZvbGRlciA8ZXJpYy5kZXZvbGRlckBvcmFjbGUuY29tPgo+IC0tLQo+ICBh cmNoL3g4Ni9LY29uZmlnICAgICAgICB8ICAxMSArKysrCj4gIGFyY2gveDg2L2tlcm5lbC9jcmFz aC5jIHwgMTE2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgMiBm aWxlcyBjaGFuZ2VkLCAxMjcgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9hcmNoL3g4 Ni9LY29uZmlnIGIvYXJjaC94ODYvS2NvbmZpZwo+IGluZGV4IDc2MmEwYjZhYjhiNi4uZTllZWNm ZjNiOTdkIDEwMDY0NAo+IC0tLSBhL2FyY2gveDg2L0tjb25maWcKPiArKysgYi9hcmNoL3g4Ni9L Y29uZmlnCj4gQEAgLTIwODIsNiArMjA4MiwxNyBAQCBjb25maWcgQ1JBU0hfRFVNUAo+ICAJICAo Q09ORklHX1JFTE9DQVRBQkxFPXkpLgo+ICAJICBGb3IgbW9yZSBkZXRhaWxzIHNlZSBEb2N1bWVu dGF0aW9uL2FkbWluLWd1aWRlL2tkdW1wL2tkdW1wLnJzdAo+ICAKPiArY29uZmlnIENSQVNIX01B WF9NRU1PUllfUkFOR0VTCj4gKwlkZXBlbmRzIG9uIENSQVNIX0RVTVAgJiYgS0VYRUNfRklMRSAm JiAoSE9UUExVR19DUFUgfHwgCk1FTU9SWV9IT1RQTFVHKQo+ICsJaW50Cj4gKwlkZWZhdWx0IDMy NzY4Cj4gKwloZWxwCj4gKwkgIEZvciB0aGUga2V4ZWNfZmlsZV9sb2FkIHBhdGgsIHNwZWNpZnkg dGhlIG1heGltdW0gbnVtYmVyIG9mCj4gKwkgIG1lbW9yeSByZWdpb25zLCBlZy4gYXMgcmVwcmVz ZW50ZWQgYnkgdGhlICdTeXN0ZW0gUkFNJyBlbnRyaWVzCj4gKwkgIGluIC9wcm9jL2lvbWVtLCB0 aGF0IHRoZSBlbGZjb3JlaGRyIGJ1ZmZlci9zZWdtZW50IGNhbiAKYWNjb21tb2RhdGUuCj4gKwkg IFRoaXMgdmFsdWUgaXMgY29tYmluZWQgd2l0aCBOUl9DUFVTIGFuZCBtdWx0aXBsaWVkIGJ5IApF bGY2NF9QaGRyCj4gKwkgIHNpemUgdG8gZGV0ZXJtaW5lIHRoZSBmaW5hbCBidWZmZXIgc2l6ZS4K PiArCj4gIGNvbmZpZyBLRVhFQ19KVU1QCj4gIAlib29sICJrZXhlYyBqdW1wIgo+ICAJZGVwZW5k cyBvbiBLRVhFQyAmJiBISUJFUk5BVElPTgo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwv Y3Jhc2guYyBiL2FyY2gveDg2L2tlcm5lbC9jcmFzaC5jCj4gaW5kZXggOWRiNDFjY2U4ZDk3Li5i OWNkZjdhMGQ4NjggMTAwNjQ0Cj4gLS0tIGEvYXJjaC94ODYva2VybmVsL2NyYXNoLmMKPiArKysg Yi9hcmNoL3g4Ni9rZXJuZWwvY3Jhc2guYwo+IEBAIC0yNSw2ICsyNSw3IEBACj4gICNpbmNsdWRl IDxsaW51eC9zbGFiLmg+Cj4gICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+Cj4gICNpbmNsdWRl IDxsaW51eC9tZW1ibG9jay5oPgo+ICsjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgo+ICAKPiAg I2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KPiAgI2luY2x1ZGUgPGFzbS9oYXJkaXJxLmg+Cj4g QEAgLTM5OCw3ICszOTksMTcgQEAgaW50IGNyYXNoX2xvYWRfc2VnbWVudHMoc3RydWN0IGtpbWFn ZSAqaW1hZ2UpCj4gIAlpbWFnZS0+ZWxmX2hlYWRlcnMgPSBrYnVmLmJ1ZmZlcjsKPiAgCWltYWdl LT5lbGZfaGVhZGVyc19zeiA9IGtidWYuYnVmc3o7Cj4gIAo+ICsjaWYgZGVmaW5lZChDT05GSUdf SE9UUExVR19DUFUpIHx8IGRlZmluZWQoQ09ORklHX01FTU9SWV9IT1RQTFVHKQo+ICsJLyogRW5z dXJlIGVsZmNvcmVoZHIgc2VnbWVudCBsYXJnZSBlbm91Z2ggZm9yIGhvdHBsdWcgY2hhbmdlcyAq Lwo+ICsJa2J1Zi5tZW1zeiA9IChDT05GSUdfTlJfQ1BVU19ERUZBVUxUICsgCkNPTkZJR19DUkFT SF9NQVhfTUVNT1JZX1JBTkdFUykgKiBzaXplb2YoRWxmNjRfUGhkcik7Cj4gKwkvKiBGb3IgbWFy a2luZyBhcyB1c2FibGUgdG8gY3Jhc2gga2VybmVsICovCj4gKwlpbWFnZS0+ZWxmX2hlYWRlcnNf c3ogPSBrYnVmLm1lbXN6Owo+ICsJLyogUmVjb3JkIHRoZSBpbmRleCBvZiB0aGUgZWxmY29yZWhk ciBzZWdtZW50ICovCj4gKwlpbWFnZS0+ZWxmY29yZWhkcl9pbmRleCA9IGltYWdlLT5ucl9zZWdt ZW50czsKPiArCWltYWdlLT5lbGZjb3JlaGRyX2luZGV4X3ZhbGlkID0gdHJ1ZTsKPiArI2Vsc2UK PiAgCWtidWYubWVtc3ogPSBrYnVmLmJ1ZnN6Owo+ICsjZW5kaWYKPiAgCWtidWYuYnVmX2FsaWdu ID0gRUxGX0NPUkVfSEVBREVSX0FMSUdOOwo+ICAJa2J1Zi5tZW0gPSBLRVhFQ19CVUZfTUVNX1VO S05PV047Cj4gIAlyZXQgPSBrZXhlY19hZGRfYnVmZmVyKCZrYnVmKTsKPiBAQCAtNDEzLDMgKzQy NCwxMDggQEAgaW50IGNyYXNoX2xvYWRfc2VnbWVudHMoc3RydWN0IGtpbWFnZSAqaW1hZ2UpCj4g IAlyZXR1cm4gcmV0Owo+ICB9Cj4gICNlbmRpZiAvKiBDT05GSUdfS0VYRUNfRklMRSAqLwo+ICsK PiArI2lmIGRlZmluZWQoQ09ORklHX0hPVFBMVUdfQ1BVKSB8fCBkZWZpbmVkKENPTkZJR19NRU1P UllfSE9UUExVRykKPiAraW50IGNyYXNoX2hvdHBsdWdfc3VwcG9ydCh2b2lkKSB7IHJldHVybiAx OyB9Cj4gK3ZvaWQgKmFyY2hfbWFwX2NyYXNoX3BhZ2VzKHVuc2lnbmVkIGxvbmcgcGFkZHIsIHVu c2lnbmVkIGxvbmcgc2l6ZSkKPiArewo+ICsJLyoKPiArCSAqIE5PVEU6IFRoZSBhZGRyZXNzZXMg YW5kIHNpemVzIHBhc3NlZCB0byB0aGlzIHJvdXRpbmUgaGF2ZQo+ICsJICogYWxyZWFkeSBiZWVu IGZ1bGx5IGFsaWduZWQgb24gcGFnZSBib3VuZGFyaWVzLiBUaGVyZSBpcyBubwo+ICsJICogbmVl ZCBmb3IgbWFzc2FnaW5nIHRoZSBhZGRyZXNzIG9yIHNpemUuCj4gKwkgKi8KPiArCXZvaWQgKnB0 ciA9IE5VTEw7Cj4gKwo+ICsJLyogTk9URTogcmVxdWlyZXMgYXJjaF9rZXhlY19bdW5dcHJvdGVj dF9jcmFzaGtyZXMoKSBmb3Igd3JpdGUgCmFjY2VzcyAqLwo+ICsJaWYgKHNpemUgPiAwKSB7Cj4g KwkJc3RydWN0IHBhZ2UgKnBhZ2UgPSBwZm5fdG9fcGFnZShwYWRkciA+PiBQQUdFX1NISUZUKTsK PiArCj4gKwkJcHRyID0ga21hcChwYWdlKTsKPiArCX0KCmttYXBfbG9jYWxfcGFnZSgpIGlzIHBy ZWZlcnJlZCBvdmVyIGttYXAoKSB3aGljaCBzaG91bGQgYmUgYXZvaWRlZCBpbiBuZXcgCmNvZGUg KHBsZWFzZSB0YWtlIGEgbG9vayBhdCBoaWdobWVtLnJzdCB3aGljaCBJIHJlY2VudGx5IHVwZGF0 ZWQpLgoKQ2FuIHlvdSBwbGVhc2UgY2hlY2sgaWYgeW91IGNhbiBlYXNpbHkgYXZvaWQgdXNpbmcg a21hcCgpPyBPdGhlcndpc2UsIHRoaXMgCmNvZGUgd2lsbCBiZSBhZGRlZCB0byBteSAobG9uZykg cXVldWUgYW5kIGNoYW5nZWQgb25lIGRheSBvciB0aGUgb3RoZXIgOi0pCgpUaGFua3MsCgpGYWJp bwoKPiArCj4gKwlyZXR1cm4gcHRyOwo+ICt9Cj4gKwo+ICt2b2lkIGFyY2hfdW5tYXBfY3Jhc2hf cGFnZXModm9pZCAqKnB0cikKPiArewo+ICsJaWYgKHB0cikgewo+ICsJCWlmICgqcHRyKQo+ICsJ CQlrdW5tYXAoKnB0cik7Cj4gKwkJKnB0ciA9IE5VTEw7Cj4gKwl9Cj4gK30KPiArCj4gKy8qKgo+ ICsgKiBhcmNoX2NyYXNoX2hhbmRsZV9ob3RwbHVnX2V2ZW50KCkgLSBIYW5kbGUgaG90cGx1ZyBl bGZjb3JlaGRyIGNoYW5nZXMKPiArICogQGltYWdlOiB0aGUgYWN0aXZlIHN0cnVjdCBraW1hZ2UK PiArICogQGhwX2FjdGlvbjogdGhlIGhvdCB1bi9wbHVnIGFjdGlvbiBiZWluZyBoYW5kbGVkCj4g KyAqIEBjcHU6IHdoZW4gS0VYRUNfQ1JBU0hfSFBfQUREL1JFTU9WRV9DUFUsIHRoZSBjcHUgYWZm ZWN0ZWQKPiArICoKPiArICogVG8gYWNjdXJhdGVseSByZWZsZWN0IGhvdCB1bi9wbHVnIGNoYW5n ZXMsIHRoZSBlbGZjb3JlaGRyICh3aGljaAo+ICsgKiBpcyBwYXNzZWQgdG8gdGhlIGNyYXNoIGtl cm5lbCB2aWEgdGhlIGVsZmNvcmVoZHI9IHBhcmFtZXRlcikKPiArICogbXVzdCBiZSB1cGRhdGVk IHdpdGggdGhlIG5ldyBsaXN0IG9mIENQVXMgYW5kIG1lbW9yaWVzLiBUaGUgbmV3Cj4gKyAqIGVs ZmNvcmVoZHIgaXMgcHJlcGFyZWQgaW4gYSBrZXJuZWwgYnVmZmVyLCBhbmQgdGhlbiBpdCBpcwo+ ICsgKiB3cml0dGVuIG9uIHRvcCBvZiB0aGUgZXhpc3Rpbmcvb2xkIGVsZmNvcmVoZHIuCj4gKyAq Cj4gKyAqIEZvciBob3RwbHVnIGNoYW5nZXMgdG8gZWxmY29yZWhkciB0byB3b3JrLCB0d28gY29u ZGl0aW9ucyBhcmUKPiArICogbmVlZGVkOgo+ICsgKiBGaXJzdCwgdGhlIHNlZ21lbnQgY29udGFp bmluZyB0aGUgZWxmY29yZWhkciBtdXN0IGJlIGxhcmdlIGVub3VnaAo+ICsgKiB0byBwZXJtaXQg YSBncm93aW5nIG51bWJlciBvZiByZXNvdXJjZXMuIFNlZSB0aGUKPiArICogQ09ORklHX0NSQVNI X01BWF9NRU1PUllfUkFOR0VTIGRlc2NyaXB0aW9uLgo+ICsgKiBTZWNvbmQsIHB1cmdhdG9yeSBt dXN0IGV4cGxpY2l0bHkgZXhjbHVkZSB0aGUgZWxmY29yZWhkciBmcm9tIHRoZQo+ICsgKiBsaXN0 IG9mIHNlZ21lbnRzIGl0IGNoZWNrcyAoc2luY2UgdGhlIGVsZmNvcmVoZHIgY2hhbmdlcyBhbmQg dGh1cwo+ICsgKiB3b3VsZCByZXF1aXJlIGFuIHVwZGF0ZSB0byBwdXJnYXRvcnkgaXRzZWxmIHRv IHVwZGF0ZSB0aGUgZGlnZXN0KS4KPiArICoKPiArICovCj4gK3ZvaWQgYXJjaF9jcmFzaF9oYW5k bGVfaG90cGx1Z19ldmVudChzdHJ1Y3Qga2ltYWdlICppbWFnZSwKPiArCXVuc2lnbmVkIGludCBo cF9hY3Rpb24sIHVuc2lnbmVkIGludCBjcHUpCj4gK3sKPiArCXN0cnVjdCBrZXhlY19zZWdtZW50 ICprc2VnbWVudDsKPiArCXVuc2lnbmVkIGNoYXIgKnB0ciA9IE5VTEw7Cj4gKwl1bnNpZ25lZCBs b25nIGVsZnN6ID0gMDsKPiArCXZvaWQgKmVsZmJ1ZiA9IE5VTEw7Cj4gKwl1bnNpZ25lZCBsb25n IG1lbSwgbWVtc3o7Cj4gKwo+ICsJLyoKPiArCSAqIEVsZmNvcmVoZHJfaW5kZXhfdmFsaWQgY2hl Y2tlZCBpbiAKY3Jhc2hfY29yZTpoYW5kbGVfaG90cGx1Z19ldmVudCgpCj4gKwkgKi8KPiArCWtz ZWdtZW50ID0gJmltYWdlLT5zZWdtZW50W2ltYWdlLT5lbGZjb3JlaGRyX2luZGV4XTsKPiArCW1l bSA9IGtzZWdtZW50LT5tZW07Cj4gKwltZW1zeiA9IGtzZWdtZW50LT5tZW1zejsKPiArCj4gKwkv Kgo+ICsJICogQ3JlYXRlIHRoZSBuZXcgZWxmY29yZWhkciByZWZsZWN0aW5nIHRoZSBjaGFuZ2Vz IHRvIENQVSBhbmQvb3IKPiArCSAqIG1lbW9yeSByZXNvdXJjZXMuCj4gKwkgKi8KPiArCWlmIChw cmVwYXJlX2VsZl9oZWFkZXJzKGltYWdlLCAmZWxmYnVmLCAmZWxmc3opKSB7Cj4gKwkJcHJfZXJy KCJjcmFzaCBocDogdW5hYmxlIHRvIHByZXBhcmUgZWxmY29yZSBoZWFkZXJzIik7Cj4gKwkJZ290 byBvdXQ7Cj4gKwl9Cj4gKwlpZiAoZWxmc3ogPiBtZW1zeikgewo+ICsJCXByX2VycigiY3Jhc2gg aHA6IHVwZGF0ZSBlbGZjb3JlaGRyIGVsZnN6ICVsdSA+IG1lbXN6IAolbHUiLAo+ICsJCQllbGZz eiwgbWVtc3opOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsKPiArCS8qCj4gKwkgKiBBdCB0aGlz IHBvaW50LCB3ZSBhcmUgYWxsIGJ1dCBhc3N1cmVkIG9mIHN1Y2Nlc3MuCj4gKwkgKiBDb3B5IG5l dyBlbGZjb3JlaGRyIGludG8gZGVzdGluYXRpb24uCj4gKwkgKi8KPiArCXB0ciA9IGFyY2hfbWFw X2NyYXNoX3BhZ2VzKG1lbSwgbWVtc3opOwo+ICsJaWYgKHB0cikgewo+ICsJCS8qCj4gKwkJICog VGVtcG9yYXJpbHkgaW52YWxpZGF0ZSB0aGUgY3Jhc2ggaW1hZ2Ugd2hpbGUgdGhlCj4gKwkJICog ZWxmY29yZWhkciBpcyB1cGRhdGVkLgo+ICsJCSAqLwo+ICsJCXhjaGcoJmtleGVjX2NyYXNoX2lt YWdlLCBOVUxMKTsKPiArCQltZW1jcHlfZmx1c2hjYWNoZSgodm9pZCAqKXB0ciwgZWxmYnVmLCBl bGZzeik7Cj4gKwkJeGNoZygma2V4ZWNfY3Jhc2hfaW1hZ2UsIGltYWdlKTsKPiArCX0KPiArCWFy Y2hfdW5tYXBfY3Jhc2hfcGFnZXMoKHZvaWQgKiopJnB0cik7Cj4gKwlwcl9kZWJ1ZygiY3Jhc2gg aHA6IHJlLWxvYWRlZCBlbGZjb3JlaGRyIGF0IDB4JWx4XG4iLCBtZW0pOwo+ICsKPiArb3V0Ogo+ ICsJaWYgKGVsZmJ1ZikKPiArCQl2ZnJlZShlbGZidWYpOwo+ICt9Cj4gKyNlbmRpZgo+IC0tIAo+ IDIuMzEuMQo+IAo+IAoKCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmtleGVjIG1haWxpbmcgbGlzdAprZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va2V4ZWMK