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 6109BC19F2D for ; Tue, 9 Aug 2022 21:48:31 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=nVRcSINqHxp6mFlFWiW/wSj3YTSEhBPgUMtkZ1/12cI=; b=dlRfdRKSSamV9S 2DJ06tsgGH5utKjsSLsMwl847w/B17kN+1oVnPg5pBzO8Ub4s/fvFTamiFQUi7v0uFkJppdei9B35 Pf7295iERkd9NqGr004GfmPcy8l2r3IjhzAExYFFkRUxkfJFY37t/ziJHea1xh5l/KTGZ6U8Ru8Rq vzkBmS2G1b/KvM3g52iFUA05kPrR6xA5WoLCmXfh5kCsSpdVvLr7vCYE6E0/RuvX+JNKlH0x4eqgL PnXXdYcZAslpL+o47Mw6+KxhDC8Rxy2V88PkRXA4G32juzZZ17L3vGaaCNf1zRNrJICJRZULVyim8 3IHBy24TS8hbfHbSbxQg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oLX4G-006n2s-VT; Tue, 09 Aug 2022 21:47:17 +0000 Received: from mga07.intel.com ([134.134.136.100]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oLX4C-006mzP-1V for linux-arm-kernel@lists.infradead.org; Tue, 09 Aug 2022 21:47:14 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1660081631; x=1691617631; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=0toa8DE8ntR29xYpn/56lJ1FmZA5onr2+vCZmvVjDKw=; b=LvC+q47yI7tavQtTFTNSzLM+akv6VvfvsZF98e8bC2qXpInIbp8zGK1r ImLiwDKRuhfmIGPluGdcRTQU/KZAi3cpExBErtlhWwNVNWw4hO2GRe6rZ klNhYS/wBWE8A0vNMD2LEPKbPINSSPzKidNq/JS5nBVqqrf5DDWLKrkEx 8I94O7XGma36KUE5Eud2X60ZNMHL1bNrZX9TfAzHPfQ5FRkrogGG1K6nv dPtCGVm7tFpzfcduCHUtwGFfoVR+trDMSXUMXaetoNiHdp8KlGd2ZKC5a WdJ/lSauoDp+HMGMAVNLwi+TChk6ls7joxuWGfrYJuh71LIicKR7tD7yJ A==; X-IronPort-AV: E=McAfee;i="6400,9594,10434"; a="354942126" X-IronPort-AV: E=Sophos;i="5.93,225,1654585200"; d="scan'208";a="354942126" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Aug 2022 14:47:07 -0700 X-IronPort-AV: E=Sophos;i="5.93,225,1654585200"; d="scan'208";a="664608134" Received: from djiang5-mobl1.amr.corp.intel.com (HELO [10.212.24.249]) ([10.212.24.249]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Aug 2022 14:47:06 -0700 Message-ID: <9f3705e1-de21-0f3c-12af-fd011b6d613d@intel.com> Date: Tue, 9 Aug 2022 14:47:06 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0 Thunderbird/91.12.0 Subject: Re: [PATCH RFC 10/15] x86: add an arch helper function to invalidate all cache for nvdimm Content-Language: en-US To: Jonathan Cameron Cc: 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 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> From: Dave Jiang In-Reply-To: <20220803183729.00002183@huawei.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220809_144712_175368_916F8C13 X-CRM114-Status: GOOD ( 22.95 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Ck9uIDgvMy8yMDIyIDEwOjM3IEFNLCBKb25hdGhhbiBDYW1lcm9uIHdyb3RlOgo+IE9uIFR1ZSwg MTkgSnVsIDIwMjIgMTI6MDc6MDMgLTA3MDAKPiBEYXZlIEppYW5nIDxkYXZlLmppYW5nQGludGVs LmNvbT4gd3JvdGU6Cj4KPj4gT24gNy8xNy8yMDIyIDEwOjMwIFBNLCBEYXZpZGxvaHIgQnVlc28g d3JvdGU6Cj4+PiBPbiBGcmksIDE1IEp1bCAyMDIyLCBEYXZlIEppYW5nIHdyb3RlOgo+Pj4gICAK Pj4+PiBUaGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gdG8gZmx1c2ggYWxsIGNhY2hlIGFmdGVy IHVubG9ja2luZyB0aGUKPj4+PiBudmRpbW0KPj4+PiByZXNpZGVzIGluIGRyaXZlcnMvYWNwaS9u Zml0L2ludGVsLmMuIFRoaXMgaXMgYSB0ZW1wb3Jhcnkgc3RvcCBnYXAgdW50aWwKPj4+PiBudmRp bW0gd2l0aCBzZWN1cml0eSBvcGVyYXRpb25zIGFycml2ZXMgb24gb3RoZXIgYXJjaHMuIFdpdGgg c3VwcG9ydCBDWEwKPj4+PiBwbWVtIHN1cHBvcnRpbmcgc2VjdXJpdHkgb3BlcmF0aW9ucywgc3Bl Y2lmaWNhbGx5ICJ1bmxvY2siIGRpbW0sIHRoZQo+Pj4+IG5lZWQKPj4+PiBmb3IgYW4gYXJjaCBz dXBwb3J0ZWQgaGVscGVyIGZ1bmN0aW9uIHRvIGludmFsaWRhdGUgYWxsIENQVSBjYWNoZSBmb3IK Pj4+PiBudmRpbW0gaGFzIGFycml2ZWQuIFJlbW92ZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBm cm9tIGFjcGkvbmZpdCBhbmQKPj4+PiBhZGQKPj4+PiBjcm9zcyBhcmNoIHN1cHBvcnQgZm9yIHRo aXMgb3BlcmF0aW9uLgo+Pj4+Cj4+Pj4gQWRkIENPTkZJR19BUkNIX0hBU19OVkRJTU1fSU5WQUxf Q0FDSEUgS2NvbmZpZyBhbmQgYWxsb3cgeDg2XzY0IHRvCj4+Pj4gb3B0IGluCj4+Pj4gYW5kIHBy b3ZpZGUgdGhlIHN1cHBvcnQgdmlhIHdiaW52ZF9vbl9hbGxfY3B1cygpIGNhbGwuCj4+PiBTbyB0 aGUgOC4yLjkuNS41IGJpdHMgd2lsbCBhbHNvIG5lZWQgd2JpbnZkIC0gYW5kIEkgZ3Vlc3MgYXJt NjQgd2lsbCBuZWVkCj4+PiBpdHMgb3duIHNlbWFudGljcyAoaWlyYyB0aGVyZSB3YXMgYSBmbHVz aCBhbGwgY2FsbCBpbiB0aGUgcGFzdCkuIENjJ2luZwo+Pj4gSm9uYXRoYW4gYXMgd2VsbC4KPj4+ Cj4+PiBBbnl3YXksIEkgdGhpbmsgdGhpcyBjYWxsIHNob3VsZCBub3QgYmUgZGVmaW5lZCBpbiBh bnkgcGxhY2Ugb3RoZXIKPj4+IHRoYW4gY29yZQo+Pj4ga2VybmVsIGhlYWRlcnMsIGFuZCBub3Qg aW4gcGF0L252ZGltbS4gSSB3YXMgdHJ5aW5nIHRvIG1ha2UgaXQgZml0IGluCj4+PiBzbXAuaCwK Pj4+IGZvciBleGFtcGxlLCBidXQgY29udmluaWVudGx5IHdlIG1pZ2h0IGJlIGFibGUgdG8gaGlq YWNrCj4+PiBmbHVzaF9jYWNoZV9hbGwoKQo+Pj4gZm9yIG91ciBwdXJwb3NlcyBhcyBvZiBjb3Vy c2UgbmVpdGhlciB4ODYtNjQgYXJtNjQgdXNlcyBpdCA6KQo+Pj4KPj4+IEFuZCBJIHNlZSB0aGlz IGFzIHNhZmUgKHdydCBub3QgYWRkaW5nIGEgYmlnIGhhbW1lciBvbiB1bmF3YXJlCj4+PiBkcml2 ZXJzKSBhcwo+Pj4gdGhlIDMyYml0IGFyY2hzIHRoYXQgZGVmaW5lIHRoZSBjYWxsIGFyZSBtb3N0 bHkgY29udGFpbmVkIHRoaW4gdGhlaXIKPj4+IGFyY2gvLAo+Pj4gYW5kIHRoZSBmZXcgaW4gZHJp dmVycy8gYXJlIHN0aWxsIHNwZWNpZmljIHRvIHRob3NlIGFyY2hzLgo+Pj4KPj4+IE1heWJlIHNv bWV0aGluZyBsaWtlIHRoZSBiZWxvdy4KPj4gT2suIEknbGwgcmVwbGFjZSBteSB2ZXJzaW9uIHdp dGggeW91cnMuCj4gQ2FyZWZ1bCB3aXRoIGZsdXNoX2NhY2hlX2FsbCgpLiBUaGUgc3R1YiB2ZXJz aW9uIGluCj4gaW5jbHVkZS9hc20tZ2VuZXJpYy9jYWNoZWZsdXNoLmggaGFzIGEgY29tbWVudCBh Ym92ZSBpdCB0aGF0IHdvdWxkCj4gbmVlZCB1cGRhdGluZyBhdCB2ZXJ5IGxlYXN0IChJIHRoaW5r KS4KPiBOb3RlIHRoZXJlICd3YXMnIGEgZmx1c2hfY2FjaGVfYWxsKCkgZm9yIEFSTTY0LCBidXQ6 Cj4gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L2xpbnV4LWFybS1rZXJuZWwv cGF0Y2gvMTQyOTUyMTg3NS0xNjg5My0xLWdpdC1zZW5kLWVtYWlsLW1hcmsucnV0bGFuZEBhcm0u Y29tLwoKCmZsdXNoX2FuZF9pbnZhbGlkYXRlX2NhY2hlX2FsbCgpIGluc3RlYWQgZ2l2ZW4gaXQg Y2FsbHMgd2JpbnZkIG9uIHg4Nj8gSSAKdGhpbmsgb3RoZXIgYXJjaHMsIGF0IGxlYXN0IEFSTSwg dGhvc2UgYXJlIHNlcGFyYXRlIGluc3RydWN0aW9ucyBhcmVuJ3QgCnRoZXk/Cgo+Cj4gQWxzbywg SSdtIGZhciBmcm9tIHN1cmUgaXQgd2lsbCBiZSB0aGUgcmlnaHQgY2hvaWNlIG9uIGFsbCBDWEwg c3VwcG9ydGluZwo+IGFyY2hpdGVjdHVyZXMuCj4gK0NDIGxpbnV4LWFyY2gsIGxpbnV4LWFybSBh bmQgQXJuZC4KPgo+Pgo+Pj4gVGhhbmtzLAo+Pj4gRGF2aWRsb2hyCj4+Pgo+Pj4gLS0tLS0tODwt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiBTdWJqZWN0OiBbUEFU Q0hdIGFyY2gveDg2OiBkZWZpbmUgZmx1c2hfY2FjaGVfYWxsIGFzIGdsb2JhbCB3YmludmQKPj4+ Cj4+PiBXaXRoIENYTCBzZWN1cml0eSBmZWF0dXJlcywgZ2xvYmFsIENQVSBjYWNoZSBmbHVzaGlu ZyBudmRpbW0KPj4+IHJlcXVpcmVtZW50cyBhcmUgbm8gbG9uZ2VyIHNwZWNpZmljIHRvIHRoYXQg c3Vic3lzdGVtLCBldmVuCj4+PiBiZXlvbmQgdGhlIHNjb3BlIG9mIHNlY3VyaXR5X29wcy4gQ1hM IHdpbGwgbmVlZCBzdWNoIHNlbWFudGljcwo+Pj4gZm9yIGZlYXR1cmVzIG5vdCBuZWNlc3Nhcmls eSBsaW1pdGVkIHRvIHBlcnNpc3RlbnQgbWVtb3J5Lgo+Pj4KPj4+IFNvIHVzZSB0aGUgZmx1c2hf Y2FjaGVfYWxsKCkgZm9yIHRoZSB3YmludmQgYWNyb3NzIGFsbAo+Pj4gQ1BVcyBvbiB4ODYuIGFy bTY0LCB3aGljaCBpcyBhbm90aGVyIHBsYXRmb3JtIHRvIGhhdmUgQ1hMCj4+PiBzdXBwb3J0IGNh biBhbHNvIGRlZmluZSBpdHMgb3duIHNlbWFudGljcyBoZXJlLgo+Pj4KPj4+IFNpZ25lZC1vZmYt Ynk6IERhdmlkbG9ociBCdWVzbyA8ZGF2ZUBzdGdvbGFicy5uZXQ+Cj4+PiAtLS0KPj4+ICDCoGFy Y2gveDg2L0tjb25maWfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxIC0K Pj4+ICDCoGFyY2gveDg2L2luY2x1ZGUvYXNtL2NhY2hlZmx1c2guaCB8wqAgNSArKysrKwo+Pj4g IMKgYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY8KgwqDCoMKgwqAgfMKgIDggLS0tLS0tLS0K Pj4+ICDCoGRyaXZlcnMvYWNwaS9uZml0L2ludGVsLmPCoMKgwqDCoMKgwqDCoMKgIHwgMTEgKysr KysrLS0tLS0KPj4+ICDCoGRyaXZlcnMvY3hsL3NlY3VyaXR5LmPCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHzCoCA1ICsrKy0tCj4+PiAgwqBpbmNsdWRlL2xpbnV4L2xpYm52ZGltbS5owqDCoMKgwqDC oMKgwqDCoCB8wqAgOSAtLS0tLS0tLS0KPj4+ICDCoDYgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0 aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L0tj b25maWcgYi9hcmNoL3g4Ni9LY29uZmlnCj4+PiBpbmRleCA4ZGJlODllYmE2MzkuLmJlMGI5NWU1 MWRmNiAxMDA2NDQKPj4+IC0tLSBhL2FyY2gveDg2L0tjb25maWcKPj4+ICsrKyBiL2FyY2gveDg2 L0tjb25maWcKPj4+IEBAIC04Myw3ICs4Myw2IEBAIGNvbmZpZyBYODYKPj4+ICDCoMKgwqDCoHNl bGVjdCBBUkNIX0hBU19NRU1CQVJSSUVSX1NZTkNfQ09SRQo+Pj4gIMKgwqDCoMKgc2VsZWN0IEFS Q0hfSEFTX05PTl9PVkVSTEFQUElOR19BRERSRVNTX1NQQUNFCj4+PiAgwqDCoMKgwqBzZWxlY3Qg QVJDSF9IQVNfUE1FTV9BUEnCoMKgwqDCoMKgwqDCoCBpZiBYODZfNjQKPj4+IC3CoMKgwqAgc2Vs ZWN0IEFSQ0hfSEFTX05WRElNTV9JTlZBTF9DQUNIRcKgwqDCoCBpZiBYODZfNjQKPj4+ICDCoMKg wqDCoHNlbGVjdCBBUkNIX0hBU19QVEVfREVWTUFQwqDCoMKgwqDCoMKgwqAgaWYgWDg2XzY0Cj4+ PiAgwqDCoMKgwqBzZWxlY3QgQVJDSF9IQVNfUFRFX1NQRUNJQUwKPj4+ICDCoMKgwqDCoHNlbGVj dCBBUkNIX0hBU19VQUNDRVNTX0ZMVVNIQ0FDSEXCoMKgwqAgaWYgWDg2XzY0Cj4+PiBkaWZmIC0t Z2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vY2FjaGVmbHVzaC5oCj4+PiBiL2FyY2gveDg2L2lu Y2x1ZGUvYXNtL2NhY2hlZmx1c2guaAo+Pj4gaW5kZXggYjE5MmQ5MTdhNmQwLi4wNWM3OTAyMTY2 NWQgMTAwNjQ0Cj4+PiAtLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jYWNoZWZsdXNoLmgKPj4+ ICsrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NhY2hlZmx1c2guaAo+Pj4gQEAgLTEwLDQgKzEw LDkgQEAKPj4+Cj4+PiAgwqB2b2lkIGNsZmx1c2hfY2FjaGVfcmFuZ2Uodm9pZCAqYWRkciwgdW5z aWduZWQgaW50IHNpemUpOwo+Pj4KPj4+ICsjZGVmaW5lIGZsdXNoX2NhY2hlX2FsbCgpwqDCoMKg wqDCoMKgwqAgXAo+Pj4gK2RvIHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBcCj4+PiArwqDCoMKgIHdiaW52ZF9vbl9hbGxfY3B1cygpO8KgwqDCoMKgwqDCoMKgIFwKPj4+ ICt9IHdoaWxlICgwKQo+Pj4gKwo+Pj4gIMKgI2VuZGlmIC8qIF9BU01fWDg2X0NBQ0hFRkxVU0hf SCAqLwo+Pj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMgYi9hcmNo L3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jCj4+PiBpbmRleCBlNGNkMTI4NmRlZWYuLjFhYmQ1NDM4 ZjEyNiAxMDA2NDQKPj4+IC0tLSBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMKPj4+ICsr KyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMKPj4+IEBAIC0zMzAsMTQgKzMzMCw2IEBA IHZvaWQgYXJjaF9pbnZhbGlkYXRlX3BtZW0odm9pZCAqYWRkciwgc2l6ZV90IHNpemUpCj4+PiAg wqBFWFBPUlRfU1lNQk9MX0dQTChhcmNoX2ludmFsaWRhdGVfcG1lbSk7Cj4+PiAgwqAjZW5kaWYK Pj4+Cj4+PiAtI2lmZGVmIENPTkZJR19BUkNIX0hBU19OVkRJTU1fSU5WQUxfQ0FDSEUKPj4+IC12 b2lkIGFyY2hfaW52YWxpZGF0ZV9udmRpbW1fY2FjaGUodm9pZCkKPj4+IC17Cj4+PiAtwqDCoMKg IHdiaW52ZF9vbl9hbGxfY3B1cygpOwo+Pj4gLX0KPj4+IC1FWFBPUlRfU1lNQk9MX0dQTChhcmNo X2ludmFsaWRhdGVfbnZkaW1tX2NhY2hlKTsKPj4+IC0jZW5kaWYKPj4+IC0KPj4+ICDCoHN0YXRp YyB2b2lkIF9fY3BhX2ZsdXNoX2FsbCh2b2lkICphcmcpCj4+PiAgwqB7Cj4+PiAgwqDCoMKgwqB1 bnNpZ25lZCBsb25nIGNhY2hlID0gKHVuc2lnbmVkIGxvbmcpYXJnOwo+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvYWNwaS9uZml0L2ludGVsLmMgYi9kcml2ZXJzL2FjcGkvbmZpdC9pbnRlbC5jCj4+ PiBpbmRleCAyNDJkMmU5MjAzZTkuLjFiMGVjYjRkNjdlNiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZl cnMvYWNwaS9uZml0L2ludGVsLmMKPj4+ICsrKyBiL2RyaXZlcnMvYWNwaS9uZml0L2ludGVsLmMK Pj4+IEBAIC0xLDYgKzEsNyBAQAo+Pj4gIMKgLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAKPj4+ICDCoC8qIENvcHlyaWdodChjKSAyMDE4IEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzIHJlc2VydmVkLiAqLwo+Pj4gIMKgI2luY2x1ZGUgPGxpbnV4L2xpYm52ZGltbS5oPgo+ Pj4gKyNpbmNsdWRlIDxsaW51eC9jYWNoZWZsdXNoLmg+Cj4+PiAgwqAjaW5jbHVkZSA8bGludXgv bmRjdGwuaD4KPj4+ICDCoCNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Cj4+PiAgwqAjaW5jbHVkZSA8 YXNtL3NtcC5oPgo+Pj4gQEAgLTIyNiw3ICsyMjcsNyBAQCBzdGF0aWMgaW50IF9fbWF5YmVfdW51 c2VkCj4+PiBpbnRlbF9zZWN1cml0eV91bmxvY2soc3RydWN0IG52ZGltbSAqbnZkaW1tLAo+Pj4g IMKgwqDCoMKgfQo+Pj4KPj4+ICDCoMKgwqDCoC8qIERJTU0gdW5sb2NrZWQsIGludmFsaWRhdGUg YWxsIENQVSBjYWNoZXMgYmVmb3JlIHdlIHJlYWQgaXQgKi8KPj4+IC3CoMKgwqAgYXJjaF9pbnZh bGlkYXRlX252ZGltbV9jYWNoZSgpOwo+Pj4gK8KgwqDCoCBmbHVzaF9jYWNoZV9hbGwoKTsKPj4+ Cj4+PiAgwqDCoMKgwqByZXR1cm4gMDsKPj4+ICDCoH0KPj4+IEBAIC0yOTYsNyArMjk3LDcgQEAg c3RhdGljIGludCBfX21heWJlX3VudXNlZAo+Pj4gaW50ZWxfc2VjdXJpdHlfZXJhc2Uoc3RydWN0 IG52ZGltbSAqbnZkaW1tLAo+Pj4gIMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PVFRZOwo+Pj4K Pj4+ICDCoMKgwqDCoC8qIGZsdXNoIGFsbCBjYWNoZSBiZWZvcmUgd2UgZXJhc2UgRElNTSAqLwo+ Pj4gLcKgwqDCoCBhcmNoX2ludmFsaWRhdGVfbnZkaW1tX2NhY2hlKCk7Cj4+PiArwqDCoMKgIGZs dXNoX2NhY2hlX2FsbCgpOwo+Pj4gIMKgwqDCoMKgbWVtY3B5KG5kX2NtZC5jbWQucGFzc3BocmFz ZSwga2V5LT5kYXRhLAo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZW9mKG5kX2NtZC5j bWQucGFzc3BocmFzZSkpOwo+Pj4gIMKgwqDCoMKgcmMgPSBudmRpbW1fY3RsKG52ZGltbSwgTkRf Q01EX0NBTEwsICZuZF9jbWQsIHNpemVvZihuZF9jbWQpLCBOVUxMKTsKPj4+IEBAIC0zMTYsNyAr MzE3LDcgQEAgc3RhdGljIGludCBfX21heWJlX3VudXNlZAo+Pj4gaW50ZWxfc2VjdXJpdHlfZXJh c2Uoc3RydWN0IG52ZGltbSAqbnZkaW1tLAo+Pj4gIMKgwqDCoMKgfQo+Pj4KPj4+ICDCoMKgwqDC oC8qIERJTU0gZXJhc2VkLCBpbnZhbGlkYXRlIGFsbCBDUFUgY2FjaGVzIGJlZm9yZSB3ZSByZWFk IGl0ICovCj4+PiAtwqDCoMKgIGFyY2hfaW52YWxpZGF0ZV9udmRpbW1fY2FjaGUoKTsKPj4+ICvC oMKgwqAgZmx1c2hfY2FjaGVfYWxsKCk7Cj4+PiAgwqDCoMKgwqByZXR1cm4gMDsKPj4+ICDCoH0K Pj4+Cj4+PiBAQCAtMzUzLDcgKzM1NCw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQKPj4+ IGludGVsX3NlY3VyaXR5X3F1ZXJ5X292ZXJ3cml0ZShzdHJ1Y3QgbnZkaW1tICpudmRpbW0pCj4+ PiAgwqDCoMKgwqB9Cj4+Pgo+Pj4gIMKgwqDCoMKgLyogZmx1c2ggYWxsIGNhY2hlIGJlZm9yZSB3 ZSBtYWtlIHRoZSBudmRpbW1zIGF2YWlsYWJsZSAqLwo+Pj4gLcKgwqDCoCBhcmNoX2ludmFsaWRh dGVfbnZkaW1tX2NhY2hlKCk7Cj4+PiArwqDCoMKgIGZsdXNoX2NhY2hlX2FsbCgpOwo+Pj4gIMKg wqDCoMKgcmV0dXJuIDA7Cj4+PiAgwqB9Cj4+Pgo+Pj4gQEAgLTM3OSw3ICszODAsNyBAQCBzdGF0 aWMgaW50IF9fbWF5YmVfdW51c2VkCj4+PiBpbnRlbF9zZWN1cml0eV9vdmVyd3JpdGUoc3RydWN0 IG52ZGltbSAqbnZkaW1tLAo+Pj4gIMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PVFRZOwo+Pj4K Pj4+ICDCoMKgwqDCoC8qIGZsdXNoIGFsbCBjYWNoZSBiZWZvcmUgd2UgZXJhc2UgRElNTSAqLwo+ Pj4gLcKgwqDCoCBhcmNoX2ludmFsaWRhdGVfbnZkaW1tX2NhY2hlKCk7Cj4+PiArwqDCoMKgIGZs dXNoX2NhY2hlX2FsbCgpOwo+Pj4gIMKgwqDCoMKgbWVtY3B5KG5kX2NtZC5jbWQucGFzc3BocmFz ZSwgbmtleS0+ZGF0YSwKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemVvZihuZF9jbWQu Y21kLnBhc3NwaHJhc2UpKTsKPj4+ICDCoMKgwqDCoHJjID0gbnZkaW1tX2N0bChudmRpbW0sIE5E X0NNRF9DQUxMLCAmbmRfY21kLCBzaXplb2YobmRfY21kKSwgTlVMTCk7Cj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9jeGwvc2VjdXJpdHkuYyBiL2RyaXZlcnMvY3hsL3NlY3VyaXR5LmMKPj4+IGlu ZGV4IDNkYzA0YjUwYWZhZi4uZTI5Nzc4NzJiZjJmIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9j eGwvc2VjdXJpdHkuYwo+Pj4gKysrIGIvZHJpdmVycy9jeGwvc2VjdXJpdHkuYwo+Pj4gQEAgLTYs NiArNiw3IEBACj4+PiAgwqAjaW5jbHVkZSA8bGludXgvbmRjdGwuaD4KPj4+ICDCoCNpbmNsdWRl IDxsaW51eC9hc3luYy5oPgo+Pj4gIMKgI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPj4+ICsjaW5j bHVkZSA8bGludXgvY2FjaGVmbHVzaC5oPgo+Pj4gIMKgI2luY2x1ZGUgImN4bG1lbS5oIgo+Pj4g IMKgI2luY2x1ZGUgImN4bC5oIgo+Pj4KPj4+IEBAIC0xMzcsNyArMTM4LDcgQEAgc3RhdGljIGlu dCBjeGxfcG1lbV9zZWN1cml0eV91bmxvY2soc3RydWN0IG52ZGltbQo+Pj4gKm52ZGltbSwKPj4+ ICDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmM7Cj4+Pgo+Pj4gIMKgwqDCoMKgLyogRElNTSB1bmxv Y2tlZCwgaW52YWxpZGF0ZSBhbGwgQ1BVIGNhY2hlcyBiZWZvcmUgd2UgcmVhZCBpdCAqLwo+Pj4g LcKgwqDCoCBhcmNoX2ludmFsaWRhdGVfbnZkaW1tX2NhY2hlKCk7Cj4+PiArwqDCoMKgIGZsdXNo X2NhY2hlX2FsbCgpOwo+Pj4gIMKgwqDCoMKgcmV0dXJuIDA7Cj4+PiAgwqB9Cj4+Pgo+Pj4gQEAg LTE2NSw3ICsxNjYsNyBAQCBzdGF0aWMgaW50Cj4+PiBjeGxfcG1lbV9zZWN1cml0eV9wYXNzcGhy YXNlX2VyYXNlKHN0cnVjdCBudmRpbW0gKm52ZGltbSwKPj4+ICDCoMKgwqDCoMKgwqDCoCByZXR1 cm4gcmM7Cj4+Pgo+Pj4gIMKgwqDCoMKgLyogRElNTSBlcmFzZWQsIGludmFsaWRhdGUgYWxsIENQ VSBjYWNoZXMgYmVmb3JlIHdlIHJlYWQgaXQgKi8KPj4+IC3CoMKgwqAgYXJjaF9pbnZhbGlkYXRl X252ZGltbV9jYWNoZSgpOwo+Pj4gK8KgwqDCoCBmbHVzaF9jYWNoZV9hbGwoKTsKPj4+ICDCoMKg wqDCoHJldHVybiAwOwo+Pj4gIMKgfQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L2xpYm52ZGltbS5oIGIvaW5jbHVkZS9saW51eC9saWJudmRpbW0uaAo+Pj4gaW5kZXggMDdlNGU3 NTcyMDg5Li4wNzY5YWZiNzMzODAgMTAwNjQ0Cj4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L2xpYm52 ZGltbS5oCj4+PiArKysgYi9pbmNsdWRlL2xpbnV4L2xpYm52ZGltbS5oCj4+PiBAQCAtMzA5LDEz ICszMDksNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9pbnZhbGlkYXRlX3BtZW0odm9pZAo+ Pj4gKmFkZHIsIHNpemVfdCBzaXplKQo+Pj4gIMKgewo+Pj4gIMKgfQo+Pj4gIMKgI2VuZGlmCj4+ PiAtCj4+PiAtI2lmZGVmIENPTkZJR19BUkNIX0hBU19OVkRJTU1fSU5WQUxfQ0FDSEUKPj4+IC12 b2lkIGFyY2hfaW52YWxpZGF0ZV9udmRpbW1fY2FjaGUodm9pZCk7Cj4+PiAtI2Vsc2UKPj4+IC1z dGF0aWMgaW5saW5lIHZvaWQgYXJjaF9pbnZhbGlkYXRlX252ZGltbV9jYWNoZSh2b2lkKQo+Pj4g LXsKPj4+IC19Cj4+PiAtI2VuZGlmCj4+PiAtCj4+PiAgwqAjZW5kaWYgLyogX19MSUJOVkRJTU1f SF9fICovCj4+PiAtLSAKPj4+IDIuMzYuMQo+Pj4gICAKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK