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 46C84C00140 for ; Wed, 10 Aug 2022 14:16:59 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=vGeSwPEpDNTB5/yxCkJfOINvOHWx7zFCqji/gu3Wslw=; b=Gipa8gyytOasZO MJ37MzpOhpx7VGFamsTbl4kpsFQDu7Be2i/FOsvrU0rVUO9vRVFJXj9M/iHUNIxGAXqkhlXwZdJKg 04/2X/q4IwyqUzpglkJnEZfk2Mlz+EcbsxmlUUcHlADQdDAfq/thwDPmgZPH9/K5GNbmv8aHyvmoX LHFtxLzv9TOuHM0sxepgPgHjFVnlxaxZPKeBzNzSyXPu6UkqYpkCRB5u3+8XP+0Qo8eCHWRzY9QYy Ete2HbB/KgAX2uDdULhA5WLyGMlhF3ITTk2JnAoObDGs4gtKr/uYUKi+5uamzoEyPw1n4BaEg4WjH J2nQ53zS7RmMtsP6Z6kw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oLmUb-00CFXm-2z; Wed, 10 Aug 2022 14:15:29 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oLmUW-00CFWT-Ar for linux-arm-kernel@lists.infradead.org; Wed, 10 Aug 2022 14:15:27 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 35FBF1FB; Wed, 10 Aug 2022 07:15:17 -0700 (PDT) Received: from FVFF77S0Q05N (unknown [10.57.44.164]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7BE0F3F67D; Wed, 10 Aug 2022 07:15:13 -0700 (PDT) Date: Wed, 10 Aug 2022 15:15:03 +0100 From: Mark Rutland To: Dave Jiang Cc: Jonathan Cameron , Davidlohr Bueso , linux-cxl@vger.kernel.org, nvdimm@lists.linux.dev, dan.j.williams@intel.com, bwidawsk@kernel.org, ira.weiny@intel.com, vishal.l.verma@intel.com, alison.schofield@intel.com, a.manzanares@samsung.com, linux-arch@vger.kernel.org, Arnd Bergmann , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH RFC 10/15] x86: add an arch helper function to invalidate all cache for nvdimm Message-ID: References: <165791918718.2491387.4203738301057301285.stgit@djiang5-desk3.ch.intel.com> <165791937063.2491387.15277418618265930924.stgit@djiang5-desk3.ch.intel.com> <20220718053039.5whjdcxynukildlo@offworld> <4bedc81d-62fa-7091-029e-a2e56b4f8f7a@intel.com> <20220803183729.00002183@huawei.com> <9f3705e1-de21-0f3c-12af-fd011b6d613d@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <9f3705e1-de21-0f3c-12af-fd011b6d613d@intel.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220810_071524_502441_041E66A6 X-CRM114-Status: GOOD ( 50.41 ) X-BeenThere: linux-arm-kernel@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: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVHVlLCBBdWcgMDksIDIwMjIgYXQgMDI6NDc6MDZQTSAtMDcwMCwgRGF2ZSBKaWFuZyB3cm90 ZToKPiAKPiBPbiA4LzMvMjAyMiAxMDozNyBBTSwgSm9uYXRoYW4gQ2FtZXJvbiB3cm90ZToKPiA+ IE9uIFR1ZSwgMTkgSnVsIDIwMjIgMTI6MDc6MDMgLTA3MDAKPiA+IERhdmUgSmlhbmcgPGRhdmUu amlhbmdAaW50ZWwuY29tPiB3cm90ZToKPiA+IAo+ID4gPiBPbiA3LzE3LzIwMjIgMTA6MzAgUE0s IERhdmlkbG9ociBCdWVzbyB3cm90ZToKPiA+ID4gPiBPbiBGcmksIDE1IEp1bCAyMDIyLCBEYXZl IEppYW5nIHdyb3RlOgo+ID4gPiA+ID4gVGhlIG9yaWdpbmFsIGltcGxlbWVudGF0aW9uIHRvIGZs dXNoIGFsbCBjYWNoZSBhZnRlciB1bmxvY2tpbmcgdGhlCj4gPiA+ID4gPiBudmRpbW0KPiA+ID4g PiA+IHJlc2lkZXMgaW4gZHJpdmVycy9hY3BpL25maXQvaW50ZWwuYy4gVGhpcyBpcyBhIHRlbXBv cmFyeSBzdG9wIGdhcCB1bnRpbAo+ID4gPiA+ID4gbnZkaW1tIHdpdGggc2VjdXJpdHkgb3BlcmF0 aW9ucyBhcnJpdmVzIG9uIG90aGVyIGFyY2hzLiBXaXRoIHN1cHBvcnQgQ1hMCj4gPiA+ID4gPiBw bWVtIHN1cHBvcnRpbmcgc2VjdXJpdHkgb3BlcmF0aW9ucywgc3BlY2lmaWNhbGx5ICJ1bmxvY2si IGRpbW0sIHRoZQo+ID4gPiA+ID4gbmVlZAo+ID4gPiA+ID4gZm9yIGFuIGFyY2ggc3VwcG9ydGVk IGhlbHBlciBmdW5jdGlvbiB0byBpbnZhbGlkYXRlIGFsbCBDUFUgY2FjaGUgZm9yCj4gPiA+ID4g PiBudmRpbW0gaGFzIGFycml2ZWQuIFJlbW92ZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBmcm9t IGFjcGkvbmZpdCBhbmQKPiA+ID4gPiA+IGFkZAo+ID4gPiA+ID4gY3Jvc3MgYXJjaCBzdXBwb3J0 IGZvciB0aGlzIG9wZXJhdGlvbi4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gQWRkIENPTkZJR19BUkNI X0hBU19OVkRJTU1fSU5WQUxfQ0FDSEUgS2NvbmZpZyBhbmQgYWxsb3cgeDg2XzY0IHRvCj4gPiA+ ID4gPiBvcHQgaW4KPiA+ID4gPiA+IGFuZCBwcm92aWRlIHRoZSBzdXBwb3J0IHZpYSB3YmludmRf b25fYWxsX2NwdXMoKSBjYWxsLgo+ID4gPiA+IFNvIHRoZSA4LjIuOS41LjUgYml0cyB3aWxsIGFs c28gbmVlZCB3YmludmQgLSBhbmQgSSBndWVzcyBhcm02NCB3aWxsIG5lZWQKPiA+ID4gPiBpdHMg b3duIHNlbWFudGljcyAoaWlyYyB0aGVyZSB3YXMgYSBmbHVzaCBhbGwgY2FsbCBpbiB0aGUgcGFz dCkuIENjJ2luZwo+ID4gPiA+IEpvbmF0aGFuIGFzIHdlbGwuCj4gPiA+ID4gCj4gPiA+ID4gQW55 d2F5LCBJIHRoaW5rIHRoaXMgY2FsbCBzaG91bGQgbm90IGJlIGRlZmluZWQgaW4gYW55IHBsYWNl IG90aGVyCj4gPiA+ID4gdGhhbiBjb3JlCj4gPiA+ID4ga2VybmVsIGhlYWRlcnMsIGFuZCBub3Qg aW4gcGF0L252ZGltbS4gSSB3YXMgdHJ5aW5nIHRvIG1ha2UgaXQgZml0IGluCj4gPiA+ID4gc21w LmgsCj4gPiA+ID4gZm9yIGV4YW1wbGUsIGJ1dCBjb252aW5pZW50bHkgd2UgbWlnaHQgYmUgYWJs ZSB0byBoaWphY2sKPiA+ID4gPiBmbHVzaF9jYWNoZV9hbGwoKQo+ID4gPiA+IGZvciBvdXIgcHVy cG9zZXMgYXMgb2YgY291cnNlIG5laXRoZXIgeDg2LTY0IGFybTY0IHVzZXMgaXQgOikKPiA+ID4g PiAKPiA+ID4gPiBBbmQgSSBzZWUgdGhpcyBhcyBzYWZlICh3cnQgbm90IGFkZGluZyBhIGJpZyBo YW1tZXIgb24gdW5hd2FyZQo+ID4gPiA+IGRyaXZlcnMpIGFzCj4gPiA+ID4gdGhlIDMyYml0IGFy Y2hzIHRoYXQgZGVmaW5lIHRoZSBjYWxsIGFyZSBtb3N0bHkgY29udGFpbmVkIHRoaW4gdGhlaXIK PiA+ID4gPiBhcmNoLywKPiA+ID4gPiBhbmQgdGhlIGZldyBpbiBkcml2ZXJzLyBhcmUgc3RpbGwg c3BlY2lmaWMgdG8gdGhvc2UgYXJjaHMuCj4gPiA+ID4gCj4gPiA+ID4gTWF5YmUgc29tZXRoaW5n IGxpa2UgdGhlIGJlbG93Lgo+ID4gPiBPay4gSSdsbCByZXBsYWNlIG15IHZlcnNpb24gd2l0aCB5 b3Vycy4KPiA+IENhcmVmdWwgd2l0aCBmbHVzaF9jYWNoZV9hbGwoKS4gVGhlIHN0dWIgdmVyc2lv biBpbgo+ID4gaW5jbHVkZS9hc20tZ2VuZXJpYy9jYWNoZWZsdXNoLmggaGFzIGEgY29tbWVudCBh Ym92ZSBpdCB0aGF0IHdvdWxkCj4gPiBuZWVkIHVwZGF0aW5nIGF0IHZlcnkgbGVhc3QgKEkgdGhp bmspLgo+ID4gTm90ZSB0aGVyZSAnd2FzJyBhIGZsdXNoX2NhY2hlX2FsbCgpIGZvciBBUk02NCwg YnV0Ogo+ID4gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L2xpbnV4LWFybS1r ZXJuZWwvcGF0Y2gvMTQyOTUyMTg3NS0xNjg5My0xLWdpdC1zZW5kLWVtYWlsLW1hcmsucnV0bGFu ZEBhcm0uY29tLwo+IAo+IAo+IGZsdXNoX2FuZF9pbnZhbGlkYXRlX2NhY2hlX2FsbCgpIGluc3Rl YWQgZ2l2ZW4gaXQgY2FsbHMgd2JpbnZkIG9uIHg4Nj8gSQo+IHRoaW5rIG90aGVyIGFyY2hzLCBh dCBsZWFzdCBBUk0sIHRob3NlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbnMgYXJlbid0Cj4gdGhl eT8KCk9uIGFybSBhbmQgYXJtNjQgdGhlcmUgaXMgbm8gd2F5IHRvIHBlcmZvcm0gbWFpbnRlbmFu Y2Ugb24gKmFsbCogY2FjaGVzOyBpdCBoYXMKdG8gYmUgZG9uZSBpbiBjYWNoZWxpbmUgaW5jcmVt ZW50cyBieSBhZGRyZXNzLiBJdCdzIG5vdCByZWFsaXN0aWMgdG8gZG8gdGhhdApmb3IgdGhlIGVu dGlyZSBhZGRyZXNzIHNwYWNlLCBzbyB3ZSBuZWVkIHRvIGtub3cgdGhlIHJlbGV2YW50IGFkZHJl c3MgcmFuZ2VzCihhcyBwZXIgdGhlIGNvbW1pdCByZWZlcmVuY2VkIGFib3ZlKS4KClNvIHdlIHBy b2JhYmx5IG5lZWQgdG8gdGhpbmsgYSBiaXQgaGFyZGVyIGFib3V0IHRoZSBnZWVucmljIGludGVy ZmFjZSwgc2luY2UKImFsbCIgaXNuJ3QgcG9zc2libGUgdG8gaW1wbGVtZW50LiA6LwoKVGhhbmtz LApNYXJrLgoKPiAKPiA+IAo+ID4gQWxzbywgSSdtIGZhciBmcm9tIHN1cmUgaXQgd2lsbCBiZSB0 aGUgcmlnaHQgY2hvaWNlIG9uIGFsbCBDWEwgc3VwcG9ydGluZwo+ID4gYXJjaGl0ZWN0dXJlcy4K PiA+ICtDQyBsaW51eC1hcmNoLCBsaW51eC1hcm0gYW5kIEFybmQuCj4gPiAKPiA+ID4gCj4gPiA+ ID4gVGhhbmtzLAo+ID4gPiA+IERhdmlkbG9ocgo+ID4gPiA+IAo+ID4gPiA+IC0tLS0tLTg8LS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+IFN1YmplY3Q6IFtQ QVRDSF0gYXJjaC94ODY6IGRlZmluZSBmbHVzaF9jYWNoZV9hbGwgYXMgZ2xvYmFsIHdiaW52ZAo+ ID4gPiA+IAo+ID4gPiA+IFdpdGggQ1hMIHNlY3VyaXR5IGZlYXR1cmVzLCBnbG9iYWwgQ1BVIGNh Y2hlIGZsdXNoaW5nIG52ZGltbQo+ID4gPiA+IHJlcXVpcmVtZW50cyBhcmUgbm8gbG9uZ2VyIHNw ZWNpZmljIHRvIHRoYXQgc3Vic3lzdGVtLCBldmVuCj4gPiA+ID4gYmV5b25kIHRoZSBzY29wZSBv ZiBzZWN1cml0eV9vcHMuIENYTCB3aWxsIG5lZWQgc3VjaCBzZW1hbnRpY3MKPiA+ID4gPiBmb3Ig ZmVhdHVyZXMgbm90IG5lY2Vzc2FyaWx5IGxpbWl0ZWQgdG8gcGVyc2lzdGVudCBtZW1vcnkuCj4g PiA+ID4gCj4gPiA+ID4gU28gdXNlIHRoZSBmbHVzaF9jYWNoZV9hbGwoKSBmb3IgdGhlIHdiaW52 ZCBhY3Jvc3MgYWxsCj4gPiA+ID4gQ1BVcyBvbiB4ODYuIGFybTY0LCB3aGljaCBpcyBhbm90aGVy IHBsYXRmb3JtIHRvIGhhdmUgQ1hMCj4gPiA+ID4gc3VwcG9ydCBjYW4gYWxzbyBkZWZpbmUgaXRz IG93biBzZW1hbnRpY3MgaGVyZS4KPiA+ID4gPiAKPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBEYXZp ZGxvaHIgQnVlc28gPGRhdmVAc3Rnb2xhYnMubmV0Pgo+ID4gPiA+IC0tLQo+ID4gPiA+ICDCoGFy Y2gveDg2L0tjb25maWfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxIC0K PiA+ID4gPiAgwqBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9jYWNoZWZsdXNoLmggfMKgIDUgKysrKysK PiA+ID4gPiAgwqBhcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jwqDCoMKgwqDCoCB8wqAgOCAt LS0tLS0tLQo+ID4gPiA+ICDCoGRyaXZlcnMvYWNwaS9uZml0L2ludGVsLmPCoMKgwqDCoMKgwqDC oMKgIHwgMTEgKysrKysrLS0tLS0KPiA+ID4gPiAgwqBkcml2ZXJzL2N4bC9zZWN1cml0eS5jwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNSArKystLQo+ID4gPiA+ICDCoGluY2x1ZGUvbGludXgv bGlibnZkaW1tLmjCoMKgwqDCoMKgwqDCoMKgIHzCoCA5IC0tLS0tLS0tLQo+ID4gPiA+ICDCoDYg ZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCj4gPiA+ID4g Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L0tjb25maWcgYi9hcmNoL3g4Ni9LY29uZmln Cj4gPiA+ID4gaW5kZXggOGRiZTg5ZWJhNjM5Li5iZTBiOTVlNTFkZjYgMTAwNjQ0Cj4gPiA+ID4g LS0tIGEvYXJjaC94ODYvS2NvbmZpZwo+ID4gPiA+ICsrKyBiL2FyY2gveDg2L0tjb25maWcKPiA+ ID4gPiBAQCAtODMsNyArODMsNiBAQCBjb25maWcgWDg2Cj4gPiA+ID4gIMKgwqDCoMKgc2VsZWN0 IEFSQ0hfSEFTX01FTUJBUlJJRVJfU1lOQ19DT1JFCj4gPiA+ID4gIMKgwqDCoMKgc2VsZWN0IEFS Q0hfSEFTX05PTl9PVkVSTEFQUElOR19BRERSRVNTX1NQQUNFCj4gPiA+ID4gIMKgwqDCoMKgc2Vs ZWN0IEFSQ0hfSEFTX1BNRU1fQVBJwqDCoMKgwqDCoMKgwqAgaWYgWDg2XzY0Cj4gPiA+ID4gLcKg wqDCoCBzZWxlY3QgQVJDSF9IQVNfTlZESU1NX0lOVkFMX0NBQ0hFwqDCoMKgIGlmIFg4Nl82NAo+ ID4gPiA+ICDCoMKgwqDCoHNlbGVjdCBBUkNIX0hBU19QVEVfREVWTUFQwqDCoMKgwqDCoMKgwqAg aWYgWDg2XzY0Cj4gPiA+ID4gIMKgwqDCoMKgc2VsZWN0IEFSQ0hfSEFTX1BURV9TUEVDSUFMCj4g PiA+ID4gIMKgwqDCoMKgc2VsZWN0IEFSQ0hfSEFTX1VBQ0NFU1NfRkxVU0hDQUNIRcKgwqDCoCBp ZiBYODZfNjQKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vY2FjaGVm bHVzaC5oCj4gPiA+ID4gYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jYWNoZWZsdXNoLmgKPiA+ID4g PiBpbmRleCBiMTkyZDkxN2E2ZDAuLjA1Yzc5MDIxNjY1ZCAxMDA2NDQKPiA+ID4gPiAtLS0gYS9h cmNoL3g4Ni9pbmNsdWRlL2FzbS9jYWNoZWZsdXNoLmgKPiA+ID4gPiArKysgYi9hcmNoL3g4Ni9p bmNsdWRlL2FzbS9jYWNoZWZsdXNoLmgKPiA+ID4gPiBAQCAtMTAsNCArMTAsOSBAQAo+ID4gPiA+ IAo+ID4gPiA+ICDCoHZvaWQgY2xmbHVzaF9jYWNoZV9yYW5nZSh2b2lkICphZGRyLCB1bnNpZ25l ZCBpbnQgc2l6ZSk7Cj4gPiA+ID4gCj4gPiA+ID4gKyNkZWZpbmUgZmx1c2hfY2FjaGVfYWxsKCnC oMKgwqDCoMKgwqDCoCBcCj4gPiA+ID4gK2RvIHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBcCj4gPiA+ID4gK8KgwqDCoCB3YmludmRfb25fYWxsX2NwdXMoKTvCoMKgwqDC oMKgwqDCoCBcCj4gPiA+ID4gK30gd2hpbGUgKDApCj4gPiA+ID4gKwo+ID4gPiA+ICDCoCNlbmRp ZiAvKiBfQVNNX1g4Nl9DQUNIRUZMVVNIX0ggKi8KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvbW0vcGF0L3NldF9tZW1vcnkuYyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMKPiA+ ID4gPiBpbmRleCBlNGNkMTI4NmRlZWYuLjFhYmQ1NDM4ZjEyNiAxMDA2NDQKPiA+ID4gPiAtLS0g YS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jCj4gPiA+ID4gKysrIGIvYXJjaC94ODYvbW0v cGF0L3NldF9tZW1vcnkuYwo+ID4gPiA+IEBAIC0zMzAsMTQgKzMzMCw2IEBAIHZvaWQgYXJjaF9p bnZhbGlkYXRlX3BtZW0odm9pZCAqYWRkciwgc2l6ZV90IHNpemUpCj4gPiA+ID4gIMKgRVhQT1JU X1NZTUJPTF9HUEwoYXJjaF9pbnZhbGlkYXRlX3BtZW0pOwo+ID4gPiA+ICDCoCNlbmRpZgo+ID4g PiA+IAo+ID4gPiA+IC0jaWZkZWYgQ09ORklHX0FSQ0hfSEFTX05WRElNTV9JTlZBTF9DQUNIRQo+ ID4gPiA+IC12b2lkIGFyY2hfaW52YWxpZGF0ZV9udmRpbW1fY2FjaGUodm9pZCkKPiA+ID4gPiAt ewo+ID4gPiA+IC3CoMKgwqAgd2JpbnZkX29uX2FsbF9jcHVzKCk7Cj4gPiA+ID4gLX0KPiA+ID4g PiAtRVhQT1JUX1NZTUJPTF9HUEwoYXJjaF9pbnZhbGlkYXRlX252ZGltbV9jYWNoZSk7Cj4gPiA+ ID4gLSNlbmRpZgo+ID4gPiA+IC0KPiA+ID4gPiAgwqBzdGF0aWMgdm9pZCBfX2NwYV9mbHVzaF9h bGwodm9pZCAqYXJnKQo+ID4gPiA+ICDCoHsKPiA+ID4gPiAgwqDCoMKgwqB1bnNpZ25lZCBsb25n IGNhY2hlID0gKHVuc2lnbmVkIGxvbmcpYXJnOwo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2FjcGkvbmZpdC9pbnRlbC5jIGIvZHJpdmVycy9hY3BpL25maXQvaW50ZWwuYwo+ID4gPiA+IGlu ZGV4IDI0MmQyZTkyMDNlOS4uMWIwZWNiNGQ2N2U2IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZl cnMvYWNwaS9uZml0L2ludGVsLmMKPiA+ID4gPiArKysgYi9kcml2ZXJzL2FjcGkvbmZpdC9pbnRl bC5jCj4gPiA+ID4gQEAgLTEsNiArMSw3IEBACj4gPiA+ID4gIMKgLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAKPiA+ID4gPiAgwqAvKiBDb3B5cmlnaHQoYykgMjAxOCBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKi8KPiA+ID4gPiAgwqAjaW5jbHVkZSA8 bGludXgvbGlibnZkaW1tLmg+Cj4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9jYWNoZWZsdXNoLmg+ Cj4gPiA+ID4gIMKgI2luY2x1ZGUgPGxpbnV4L25kY3RsLmg+Cj4gPiA+ID4gIMKgI2luY2x1ZGUg PGxpbnV4L2FjcGkuaD4KPiA+ID4gPiAgwqAjaW5jbHVkZSA8YXNtL3NtcC5oPgo+ID4gPiA+IEBA IC0yMjYsNyArMjI3LDcgQEAgc3RhdGljIGludCBfX21heWJlX3VudXNlZAo+ID4gPiA+IGludGVs X3NlY3VyaXR5X3VubG9jayhzdHJ1Y3QgbnZkaW1tICpudmRpbW0sCj4gPiA+ID4gIMKgwqDCoMKg fQo+ID4gPiA+IAo+ID4gPiA+ICDCoMKgwqDCoC8qIERJTU0gdW5sb2NrZWQsIGludmFsaWRhdGUg YWxsIENQVSBjYWNoZXMgYmVmb3JlIHdlIHJlYWQgaXQgKi8KPiA+ID4gPiAtwqDCoMKgIGFyY2hf aW52YWxpZGF0ZV9udmRpbW1fY2FjaGUoKTsKPiA+ID4gPiArwqDCoMKgIGZsdXNoX2NhY2hlX2Fs bCgpOwo+ID4gPiA+IAo+ID4gPiA+ICDCoMKgwqDCoHJldHVybiAwOwo+ID4gPiA+ICDCoH0KPiA+ ID4gPiBAQCAtMjk2LDcgKzI5Nyw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQKPiA+ID4g PiBpbnRlbF9zZWN1cml0eV9lcmFzZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sCj4gPiA+ID4gIMKg wqDCoMKgwqDCoMKgIHJldHVybiAtRU5PVFRZOwo+ID4gPiA+IAo+ID4gPiA+ICDCoMKgwqDCoC8q IGZsdXNoIGFsbCBjYWNoZSBiZWZvcmUgd2UgZXJhc2UgRElNTSAqLwo+ID4gPiA+IC3CoMKgwqAg YXJjaF9pbnZhbGlkYXRlX252ZGltbV9jYWNoZSgpOwo+ID4gPiA+ICvCoMKgwqAgZmx1c2hfY2Fj aGVfYWxsKCk7Cj4gPiA+ID4gIMKgwqDCoMKgbWVtY3B5KG5kX2NtZC5jbWQucGFzc3BocmFzZSwg a2V5LT5kYXRhLAo+ID4gPiA+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemVvZihuZF9jbWQu Y21kLnBhc3NwaHJhc2UpKTsKPiA+ID4gPiAgwqDCoMKgwqByYyA9IG52ZGltbV9jdGwobnZkaW1t LCBORF9DTURfQ0FMTCwgJm5kX2NtZCwgc2l6ZW9mKG5kX2NtZCksIE5VTEwpOwo+ID4gPiA+IEBA IC0zMTYsNyArMzE3LDcgQEAgc3RhdGljIGludCBfX21heWJlX3VudXNlZAo+ID4gPiA+IGludGVs X3NlY3VyaXR5X2VyYXNlKHN0cnVjdCBudmRpbW0gKm52ZGltbSwKPiA+ID4gPiAgwqDCoMKgwqB9 Cj4gPiA+ID4gCj4gPiA+ID4gIMKgwqDCoMKgLyogRElNTSBlcmFzZWQsIGludmFsaWRhdGUgYWxs IENQVSBjYWNoZXMgYmVmb3JlIHdlIHJlYWQgaXQgKi8KPiA+ID4gPiAtwqDCoMKgIGFyY2hfaW52 YWxpZGF0ZV9udmRpbW1fY2FjaGUoKTsKPiA+ID4gPiArwqDCoMKgIGZsdXNoX2NhY2hlX2FsbCgp Owo+ID4gPiA+ICDCoMKgwqDCoHJldHVybiAwOwo+ID4gPiA+ICDCoH0KPiA+ID4gPiAKPiA+ID4g PiBAQCAtMzUzLDcgKzM1NCw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQKPiA+ID4gPiBp bnRlbF9zZWN1cml0eV9xdWVyeV9vdmVyd3JpdGUoc3RydWN0IG52ZGltbSAqbnZkaW1tKQo+ID4g PiA+ICDCoMKgwqDCoH0KPiA+ID4gPiAKPiA+ID4gPiAgwqDCoMKgwqAvKiBmbHVzaCBhbGwgY2Fj aGUgYmVmb3JlIHdlIG1ha2UgdGhlIG52ZGltbXMgYXZhaWxhYmxlICovCj4gPiA+ID4gLcKgwqDC oCBhcmNoX2ludmFsaWRhdGVfbnZkaW1tX2NhY2hlKCk7Cj4gPiA+ID4gK8KgwqDCoCBmbHVzaF9j YWNoZV9hbGwoKTsKPiA+ID4gPiAgwqDCoMKgwqByZXR1cm4gMDsKPiA+ID4gPiAgwqB9Cj4gPiA+ ID4gCj4gPiA+ID4gQEAgLTM3OSw3ICszODAsNyBAQCBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2Vk Cj4gPiA+ID4gaW50ZWxfc2VjdXJpdHlfb3ZlcndyaXRlKHN0cnVjdCBudmRpbW0gKm52ZGltbSwK PiA+ID4gPiAgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9UVFk7Cj4gPiA+ID4gCj4gPiA+ID4g IMKgwqDCoMKgLyogZmx1c2ggYWxsIGNhY2hlIGJlZm9yZSB3ZSBlcmFzZSBESU1NICovCj4gPiA+ ID4gLcKgwqDCoCBhcmNoX2ludmFsaWRhdGVfbnZkaW1tX2NhY2hlKCk7Cj4gPiA+ID4gK8KgwqDC oCBmbHVzaF9jYWNoZV9hbGwoKTsKPiA+ID4gPiAgwqDCoMKgwqBtZW1jcHkobmRfY21kLmNtZC5w YXNzcGhyYXNlLCBua2V5LT5kYXRhLAo+ID4gPiA+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNp emVvZihuZF9jbWQuY21kLnBhc3NwaHJhc2UpKTsKPiA+ID4gPiAgwqDCoMKgwqByYyA9IG52ZGlt bV9jdGwobnZkaW1tLCBORF9DTURfQ0FMTCwgJm5kX2NtZCwgc2l6ZW9mKG5kX2NtZCksIE5VTEwp Owo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2N4bC9zZWN1cml0eS5jIGIvZHJpdmVycy9j eGwvc2VjdXJpdHkuYwo+ID4gPiA+IGluZGV4IDNkYzA0YjUwYWZhZi4uZTI5Nzc4NzJiZjJmIDEw MDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvY3hsL3NlY3VyaXR5LmMKPiA+ID4gPiArKysgYi9k cml2ZXJzL2N4bC9zZWN1cml0eS5jCj4gPiA+ID4gQEAgLTYsNiArNiw3IEBACj4gPiA+ID4gIMKg I2luY2x1ZGUgPGxpbnV4L25kY3RsLmg+Cj4gPiA+ID4gIMKgI2luY2x1ZGUgPGxpbnV4L2FzeW5j Lmg+Cj4gPiA+ID4gIMKgI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPiA+ID4gPiArI2luY2x1ZGUg PGxpbnV4L2NhY2hlZmx1c2guaD4KPiA+ID4gPiAgwqAjaW5jbHVkZSAiY3hsbWVtLmgiCj4gPiA+ ID4gIMKgI2luY2x1ZGUgImN4bC5oIgo+ID4gPiA+IAo+ID4gPiA+IEBAIC0xMzcsNyArMTM4LDcg QEAgc3RhdGljIGludCBjeGxfcG1lbV9zZWN1cml0eV91bmxvY2soc3RydWN0IG52ZGltbQo+ID4g PiA+ICpudmRpbW0sCj4gPiA+ID4gIMKgwqDCoMKgwqDCoMKgIHJldHVybiByYzsKPiA+ID4gPiAK PiA+ID4gPiAgwqDCoMKgwqAvKiBESU1NIHVubG9ja2VkLCBpbnZhbGlkYXRlIGFsbCBDUFUgY2Fj aGVzIGJlZm9yZSB3ZSByZWFkIGl0ICovCj4gPiA+ID4gLcKgwqDCoCBhcmNoX2ludmFsaWRhdGVf bnZkaW1tX2NhY2hlKCk7Cj4gPiA+ID4gK8KgwqDCoCBmbHVzaF9jYWNoZV9hbGwoKTsKPiA+ID4g PiAgwqDCoMKgwqByZXR1cm4gMDsKPiA+ID4gPiAgwqB9Cj4gPiA+ID4gCj4gPiA+ID4gQEAgLTE2 NSw3ICsxNjYsNyBAQCBzdGF0aWMgaW50Cj4gPiA+ID4gY3hsX3BtZW1fc2VjdXJpdHlfcGFzc3Bo cmFzZV9lcmFzZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0sCj4gPiA+ID4gIMKgwqDCoMKgwqDCoMKg IHJldHVybiByYzsKPiA+ID4gPiAKPiA+ID4gPiAgwqDCoMKgwqAvKiBESU1NIGVyYXNlZCwgaW52 YWxpZGF0ZSBhbGwgQ1BVIGNhY2hlcyBiZWZvcmUgd2UgcmVhZCBpdCAqLwo+ID4gPiA+IC3CoMKg wqAgYXJjaF9pbnZhbGlkYXRlX252ZGltbV9jYWNoZSgpOwo+ID4gPiA+ICvCoMKgwqAgZmx1c2hf Y2FjaGVfYWxsKCk7Cj4gPiA+ID4gIMKgwqDCoMKgcmV0dXJuIDA7Cj4gPiA+ID4gIMKgfQo+ID4g PiA+IAo+ID4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2xpYm52ZGltbS5oIGIvaW5j bHVkZS9saW51eC9saWJudmRpbW0uaAo+ID4gPiA+IGluZGV4IDA3ZTRlNzU3MjA4OS4uMDc2OWFm YjczMzgwIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2luY2x1ZGUvbGludXgvbGlibnZkaW1tLmgKPiA+ ID4gPiArKysgYi9pbmNsdWRlL2xpbnV4L2xpYm52ZGltbS5oCj4gPiA+ID4gQEAgLTMwOSwxMyAr MzA5LDQgQEAgc3RhdGljIGlubGluZSB2b2lkIGFyY2hfaW52YWxpZGF0ZV9wbWVtKHZvaWQKPiA+ ID4gPiAqYWRkciwgc2l6ZV90IHNpemUpCj4gPiA+ID4gIMKgewo+ID4gPiA+ICDCoH0KPiA+ID4g PiAgwqAjZW5kaWYKPiA+ID4gPiAtCj4gPiA+ID4gLSNpZmRlZiBDT05GSUdfQVJDSF9IQVNfTlZE SU1NX0lOVkFMX0NBQ0hFCj4gPiA+ID4gLXZvaWQgYXJjaF9pbnZhbGlkYXRlX252ZGltbV9jYWNo ZSh2b2lkKTsKPiA+ID4gPiAtI2Vsc2UKPiA+ID4gPiAtc3RhdGljIGlubGluZSB2b2lkIGFyY2hf aW52YWxpZGF0ZV9udmRpbW1fY2FjaGUodm9pZCkKPiA+ID4gPiAtewo+ID4gPiA+IC19Cj4gPiA+ ID4gLSNlbmRpZgo+ID4gPiA+IC0KPiA+ID4gPiAgwqAjZW5kaWYgLyogX19MSUJOVkRJTU1fSF9f ICovCj4gPiA+ID4gLS0gCj4gPiA+ID4gMi4zNi4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==