Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp154115ybb; Thu, 19 Mar 2020 18:40:13 -0700 (PDT) X-Google-Smtp-Source: ADFU+vv9eEAhVGMu9sAumintmGqjLnQ+kRIex+oQjv0dhZxNgaIZHRNsAeQJGdMWeb+Njot9V/fh X-Received: by 2002:a05:6830:10cd:: with SMTP id z13mr4732658oto.210.1584668413622; Thu, 19 Mar 2020 18:40:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584668413; cv=none; d=google.com; s=arc-20160816; b=wW7YfI8yMp31FYERMQr2ZBOGtWYvWKlQqOz9gsCKu2OfJgmLrS3+fsxN15KInLx7tc 1cL01vCc522mEJrG9RXo9sOhwgn+wbdX26hmVtAdUAaTE+C1SLdPouDMYi/X0+v2OuvQ C6YYneBMcfTWmMt9uyiDlaAaDY5S8tjKFtBnW42RUzKn8aytSzxmJEWwyoFnm8udi3xs mdYcmMDeSyuis6aRky/wzYVvDSpyhXhgw5XTEHn8OJrkYIw0Q9Kk2+0SYDFjNjXin6t0 +P4RJq3CLsUw2D7JQuoAFCdjJuEAXnlsy3LxglFfElT5z6ywyYYX6mOAFAdXJfBqT/6m RBbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:cc:to:from:thread-topic:subject :ironport-sdr:dkim-signature; bh=5SKYiVY59+RJal/KRyqynYgw4RU6qFZiK5dC3+eXKc0=; b=DgpnAtGqL3RFNhvHWvf4BtsCs0apwoSLK8sp1Kue21l/d1iKtRqNhgzt6bK97Z/xIt J3TD7NznH2un2Sd40rVfKpHv2eaDTh25dA+hoxWxW31Da+H99enZF/BQyEIim5y3t0zO +Ke/ubFkSYKQPEo3XWUmy/Y6Yo4/5L+O8OvgJtWXDC7bowGCTTPHmiQdLVMXBMcPHKWA pGngTEMuD6QoQyKgvWlBlECPDt0kqjr998mVYEUw+A8pWorgdyVTfkiRyrvZLjDdjDik pmMMn2d7sX02JJBItrzKD6kW5ImJlzje1iCGJRJ8PVnIYsObXJnD7A3cZJGDZbCy4qIn XjGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=frfFIjdm; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q1si2035985otm.71.2020.03.19.18.40.01; Thu, 19 Mar 2020 18:40:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=frfFIjdm; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727298AbgCTBiO (ORCPT + 99 others); Thu, 19 Mar 2020 21:38:14 -0400 Received: from smtp-fw-2101.amazon.com ([72.21.196.25]:16791 "EHLO smtp-fw-2101.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726726AbgCTBiO (ORCPT ); Thu, 19 Mar 2020 21:38:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1584668294; x=1616204294; h=from:to:cc:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version:subject; bh=5SKYiVY59+RJal/KRyqynYgw4RU6qFZiK5dC3+eXKc0=; b=frfFIjdmD4fTG4iMgoOQZxms4dBZ4WAKLyoZ0zF/e59NtAYbTP+dkcjz 86JpnnqZB4EhOVyjjK6rTL+M8b2346d0Nw+Sz3Z1oTHdZTPZHjZBCGqSK ToSv+EzAO5/Tc+EACzSZ+j2XXU/3pJfZU4TY8gc5+QKXSMpVoRjaYqCsT o=; IronPort-SDR: 8hrVBkMqxJ8VU9Fqc2A7xgsNwcLdBA3ld1mU9FpiLhadRCEnt5vFrGUPF1r/VtEVq5kT6+3M7x 0wU5N/vaPBqA== X-IronPort-AV: E=Sophos;i="5.72,573,1580774400"; d="scan'208";a="22293735" Subject: Re: [RFC PATCH] arch/x86: Optionally flush L1D on context switch Thread-Topic: [RFC PATCH] arch/x86: Optionally flush L1D on context switch Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-2a-69849ee2.us-west-2.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-2101.iad2.amazon.com with ESMTP; 20 Mar 2020 01:38:01 +0000 Received: from EX13MTAUWB001.ant.amazon.com (pdx4-ws-svc-p6-lb7-vlan2.pdx.amazon.com [10.170.41.162]) by email-inbound-relay-2a-69849ee2.us-west-2.amazon.com (Postfix) with ESMTPS id C7749A1C4D; Fri, 20 Mar 2020 01:37:59 +0000 (UTC) Received: from EX13D21UWB002.ant.amazon.com (10.43.161.177) by EX13MTAUWB001.ant.amazon.com (10.43.161.249) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 20 Mar 2020 01:37:59 +0000 Received: from EX13D01UWB002.ant.amazon.com (10.43.161.136) by EX13D21UWB002.ant.amazon.com (10.43.161.177) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 20 Mar 2020 01:37:59 +0000 Received: from EX13D01UWB002.ant.amazon.com ([10.43.161.136]) by EX13d01UWB002.ant.amazon.com ([10.43.161.136]) with mapi id 15.00.1497.006; Fri, 20 Mar 2020 01:37:59 +0000 From: "Singh, Balbir" To: "tglx@linutronix.de" , "linux-kernel@vger.kernel.org" CC: "keescook@chromium.org" , "Herrenschmidt, Benjamin" , "x86@kernel.org" Thread-Index: AQHV+YNfBeR2nut5dUuur/1Y5KcywKhPGnoAgAFvAYA= Date: Fri, 20 Mar 2020 01:37:58 +0000 Message-ID: <97b2bffc16257e70b8aa98ee86622dc4178154c4.camel@amazon.com> References: <20200313220415.856-1-sblbir@amazon.com> <87imj19o13.fsf@nanos.tec.linutronix.de> In-Reply-To: <87imj19o13.fsf@nanos.tec.linutronix.de> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.161.71] Content-Type: text/plain; charset="utf-8" Content-ID: <76041E864F91224E902D6F067A130DC3@amazon.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gVGh1LCAyMDIwLTAzLTE5IGF0IDAxOjM4ICswMTAwLCBUaG9tYXMgR2xlaXhuZXIgd3JvdGU6 DQo+IENBVVRJT046IFRoaXMgZW1haWwgb3JpZ2luYXRlZCBmcm9tIG91dHNpZGUgb2YgdGhlIG9y Z2FuaXphdGlvbi4gRG8gbm90DQo+IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5s ZXNzIHlvdSBjYW4gY29uZmlybSB0aGUgc2VuZGVyIGFuZCBrbm93DQo+IHRoZSBjb250ZW50IGlz IHNhZmUuDQo+IA0KPiANCj4gDQo+IEJhbGJpciwNCj4gDQo+IEJhbGJpciBTaW5naCA8c2JsYmly QGFtYXpvbi5jb20+IHdyaXRlczoNCj4gPiBUaGlzIHBhdGNoIGlzIGFuIFJGQy9Qb0MgdG8gc3Rh cnQgdGhlIGRpc2N1c3Npb24gb24gb3B0aW9uYWxseSBmbHVzaGluZw0KPiA+IEwxRCBjYWNoZS4g IFRoZSBnb2FsIGlzIHRvIGFsbG93IHRhc2tzIHRoYXQgYXJlIHBhcmFub2lkIGR1ZSB0byB0aGUg cmVjZW50DQo+ID4gc25vb3AgYXNzaXN0ZWQgZGF0YSBzYW1wbGluZyB2dWxuZXJhYmlsaXRlcywg dG8gZmx1c2ggdGhlaXIgTDFEIG9uIGJlaW5nDQo+ID4gc3dpdGNoZWQgb3V0LiAgVGhpcyBwcm90 ZWN0cyB0aGVpciBkYXRhIGZyb20gYmVpbmcgc25vb3BlZCBvciBsZWFrZWQgdmlhDQo+ID4gc2lk ZSBjaGFubmVscyBhZnRlciB0aGUgdGFzayBoYXMgY29udGV4dCBzd2l0Y2hlZCBvdXQuDQo+IA0K PiBXaGF0IHlvdSBtZWFuIGlzIHRoYXQgTDFEIGlzIGZsdXNoZWQgYmVmb3JlIGFub3RoZXIgdGFz ayB3aGljaCBkb2VzIG5vdA0KPiBiZWxvbmcgdG8gdGhlIHNhbWUgdHJ1c3Qgem9uZSByZXR1cm5z IHRvIHVzZXIgc3BhY2Ugb3IgZW50ZXJzIGd1ZXN0DQo+IG1vZGUuDQo+IA0KPiA+IFRoZXJlIGFy ZSB0d28gc2NlbmFyaW9zIHdlIG1pZ2h0IHdhbnQgdG8gcHJvdGVjdCBhZ2FpbnN0LCBhIHRhc2sg bGVhdmluZw0KPiA+IHRoZSBDUFUgd2l0aCBkYXRhIHN0aWxsIGluIEwxRCAod2hpY2ggaXMgdGhl IG1haW4gY29uY2VybiBvZiB0aGlzDQo+ID4gcGF0Y2gpLCB0aGUgc2Vjb25kIHNjZW5hcmlvIGlz IGEgbWFsaWNpb3VzIHRhc2sgY29taW5nIGluIChub3Qgc28gd2VsbA0KPiA+IHRydXN0ZWQpIGZv ciB3aGljaCB3ZSB3YW50IHRvIGNsZWFuIHVwIHRoZSBjYWNoZSBiZWZvcmUgaXQgc3RhcnRzDQo+ ID4gZXhlY3V0aW9uLiBUaGUgbGF0dGVyIHdhcyBwcm9wb3NlZCBieSBiZW5oIGFuZCBpcyBub3Qg Y3VycmVudGx5DQo+ID4gYWRkcmVzc2VkIGJ5IHRoaXMgcGF0Y2gsIGJ1dCBjYW4gYmUgZWFzaWx5 IGFjY29tbW9kYXRlZCBieSB0aGUgc2FtZQ0KPiA+IG1lY2hhbmlzbS4NCj4gDQo+IFdoYXQncyB0 aGUgcG9pbnQ/IFRoZSBhdHRhY2sgc3VyZmFjZSBpcyB0aGUgTDFEIGNvbnRlbnQgb2YgdGhlIHNj aGVkdWxlZA0KPiBvdXQgdGFzay4gSWYgdGhlIG1hbGljaW91cyB0YXNrIHNjaGVkdWxlcyBvdXQs IHRoZW4gd2h5IHdvdWxkIHlvdSBjYXJlPw0KPiANCj4gSSBtaWdodCBiZSBtaXNzaW5nIHNvbWV0 aGluZywgYnV0IEFGQUlDVCB0aGlzIGlzIGJleW9uZCBwYXJhbm9pYS4NCj4gDQoNCkkgdGhpbmsg dGhlcmUgYXJlIHR3byBjYXNlcw0KDQoxLiBUYXNrIHdpdGggaW1wb3J0YW50IGRhdGEgc2NoZWR1 bGVzIG91dA0KMi4gTWFsaWNpb3VzIHRhc2sgc2NoZWR1bGVzIGluDQoNClRoZXNlIHBhdGNoZXMg YWRkcmVzcyAxLCBidXQgY2FsbCBvdXQgY2FzZSAjMg0KDQoNCj4gPiBUaGUgcG9pbnRzIG9mIGRp c2N1c3Npb24vcmV2aWV3IGFyZToNCj4gPiANCj4gPiAxLiBEaXNjdXNzIHRoZSB1c2UgY2FzZSBh bmQgdGhlIHJpZ2h0IGFwcHJvYWNoIHRvIGFkZHJlc3MgdGhpcw0KPiANCj4gSXQgbWlnaHQgYmUg dGhlIHF1aWNrIGZpeCBmb3IgdGhlIG5leHQgbm90IHlldCBrbm93biB2YXJpYW50IG9mIEwxRA0K PiBiYXNlZCBob3Jyb3JzLCBzbyB5ZXMgaXQncyBhdCBsZWFzdCB3b3J0aCB0byBkaXNjdXNzIGl0 Lg0KPiANCg0KWWVzLCB0aGF0IGlzIHRoZSBicm9hZGVyIHRoaW5raW5nLCB0aGVyZSBtaWdodCBi ZSB5ZXQgdG8gYmUgZGlzY292ZXJlZCBhdHRhY2sNCnZlY3RvcnMgYW5kIGhhdmluZyBzb21ldGhp bmcgbGlrZSB0aGlzIHByb3ZpZGVzIGEgZ29vZCB3b3JrYXJvdW5kDQoNCj4gPiAyLiBEb2VzIGFu IGFyY2ggcHJjdGwgYWxsb3dpbmcgZm9yIG9wdC1pbiBmbHVzaGluZyBtYWtlIHNlbnNlLCB3b3Vs ZCBvdGhlcg0KPiA+ICAgIGFyY2hlcyBjYXJlIGFib3V0IHNvbWV0aGluZyBzaW1pbGFyPw0KPiAN Cj4gTm8gaWRlYSwgYnV0IEkgYXNzdW1lIGluIHRoZSBsaWdodCBvZiBMMUQgYmFzZWQgaXNzdWVz IHRoYXQgbWlnaHQgYmUgdGhlDQo+IGNhc2UuIFRob3VnaCB0aGF0IHN0aWxsIGlzIHBlciBhcmNo aXRlY3R1cmUgYXMgdGhlIEwxRCBmbHVzaCBtZWNoYW5pc21zDQo+IGFyZSBhcmNoaXRlY3R1cmUg c3BlY2lmaWMuIEFzaWRlIG9mIHRoYXQgSSBkb24ndCB0aGluayB0aGF0IG1vcmUgdGhhbiBhDQo+ IGZldyB3aWxsIGVuYWJsZSAvIHN1cHBvcnQgaXQuDQo+IA0KDQpGYWlyIGVub3VnaA0KDQo+ID4g My4gVGhlcmUgaXMgYSBmYWxsYmFjayBzb2Z0d2FyZSBMMUQgbG9hZCwgc2ltaWxhciB0byB3aGF0 IEwxVEYgZG9lcywgYnV0DQo+ID4gICAgd2UgZG9uJ3QgcHJlZmV0Y2ggdGhlIFRMQiwgaXMgdGhh dCBzdWZmaWNpZW50Pw0KPiANCj4gSWYgd2UgZ28gdGhlcmUsIHRoZW4gdGhlIEtWTSBMMUQgZmx1 c2ggY29kZSB3YW50cyB0byBtb3ZlIGludG8gZ2VuZXJhbA0KPiB4ODYgY29kZS4NCg0KT0suLiB3 ZSBjYW4gZGVmaW5pdGVseSBjb25zaWRlciByZXVzaW5nIGNvZGUsIGJ1dCBJIHRoaW5rIHRoZSBL Vk0gYml0cyByZXF1aXJlDQp0bGIgcHJlZmV0Y2hpbmcsIElJVUMgYmVmb3JlIGNhY2hlIGZsdXNo IHRvIG5lZ2F0ZSBhbnkgYmFkIHRyYW5zbGF0aW9ucw0KYXNzb2NpYXRlZCB3aXRoIGFuIEwxVEYg ZmF1bHQsIGJ1dCB0aGUgY29kZS9jb21tZW50cyBhcmUgbm90IGNsZWFyIG9uIHRoZSBuZWVkDQp0 byBkbyBzby4NCg0KPiANCj4gPiA0LiBUaGUgYXRvbWljcyBjYW4gYmUgaW1wcm92ZWQgYW5kIHdl IGNvdWxkIHVzZSBhIHN0YXRpYyBrZXkgbGlrZSBpYnBiDQo+ID4gICAgZG9lcyB0byBvcHRpbWl6 ZSB0aGUgY29kZSBwYXRoDQo+IA0KPiBZZXMgdG8gc3RhdGljIGtleS4NCg0KU3VyZSwgd2lsbCBk bw0KDQo+IA0KPiA+IDUuIFRoZSBjb2RlIHdvcmtzIHdpdGggYSBzcGVjaWFsIGhhY2sgZm9yIDY0 IGJpdCBzeXN0ZW1zIChUSUZfTDFEX0ZMVVNIDQo+ID4gICAgaXMgYml0IDMyKSwgd2UgY291bGQg Z2VuZXJhbGl6ZSBpdCB3aXRoIHNvbWUgZWZmb3J0DQo+IA0KPiBXaHkgc28/IFRoZXJlIGFyZSBn YXBzIGluIHRoZSBUSUYgZmxhZ3MgKDE4LCAyMywgMjYpLiBXaHkgZG8geW91IHdhbnQgdG8NCj4g cHVzaCB0aGF0IHRvIDMyPw0KDQpJIG1pZ2h0IGhhdmUgbWlzc2VkIHRoZSBob2xlcywgSSBjYW4g bW92ZSB0byB1c2luZyBvbmUgb2YgdGhlbSwgdGhhbmtzLg0KDQo+IA0KPiA+IDYuIFNob3VsZCB3 ZSBjb25zaWRlciBjbGVhbmluZyB1cCB0aGUgTDFEIG9uIGFycml2YWwgb2YgdGFza3M/DQo+IA0K PiBUaGF0J3MgdGhlIEJlbiBpZGVhLCByaWdodD8gSWYgc28gc2VlIGFib3ZlLg0KDQpZZXMNCg0K PiANCj4gPiArI2RlZmluZSBMMURfQ0FDSEVfT1JERVIgNA0KPiA+ICtzdGF0aWMgdm9pZCAqbDFk X2ZsdXNoX3BhZ2VzOw0KPiA+ICtzdGF0aWMgREVGSU5FX01VVEVYKGwxZF9mbHVzaF9tdXRleCk7 DQo+ID4gKw0KPiA+ICt2b2lkIGVuYWJsZV9sMWRfZmx1c2hfZm9yX3Rhc2soc3RydWN0IHRhc2tf c3RydWN0ICp0c2spDQo+ID4gK3sNCj4gPiArICAgICBzdHJ1Y3QgcGFnZSAqcGFnZTsNCj4gPiAr DQo+ID4gKyAgICAgaWYgKHN0YXRpY19jcHVfaGFzKFg4Nl9GRUFUVVJFX0ZMVVNIX0wxRCkpDQo+ ID4gKyAgICAgICAgICAgICBnb3RvIGRvbmU7DQo+ID4gKw0KPiA+ICsgICAgIG11dGV4X2xvY2so JmwxZF9mbHVzaF9tdXRleCk7DQo+ID4gKyAgICAgaWYgKGwxZF9mbHVzaF9wYWdlcykNCj4gPiAr ICAgICAgICAgICAgIGdvdG8gZG9uZTsNCj4gPiArICAgICAvKg0KPiA+ICsgICAgICAqIFRoZXNl IHBhZ2VzIGFyZSBuZXZlciBmcmVlZCwgd2UgdXNlIHRoZSBzYW1lDQo+ID4gKyAgICAgICogc2V0 IG9mIHBhZ2VzIGFjcm9zcyBtdWx0aXBsZSBwcm9jZXNzZXMvY29udGV4dHMNCj4gPiArICAgICAg Ki8NCj4gPiArICAgICBwYWdlID0gYWxsb2NfcGFnZXMoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8s IEwxRF9DQUNIRV9PUkRFUik7DQo+ID4gKyAgICAgaWYgKCFwYWdlKQ0KPiA+ICsgICAgICAgICAg ICAgcmV0dXJuOw0KPiA+ICsNCj4gPiArICAgICBsMWRfZmx1c2hfcGFnZXMgPSBwYWdlX2FkZHJl c3MocGFnZSk7DQo+ID4gKyAgICAgLyogSSBkb24ndCB0aGluayB3ZSBuZWVkIHRvIHdvcnJ5IGFi b3V0IEtTTSAqLw0KPiANCj4gV2h5IG5vdD8gRXZlbiBpZiBpdCB3b3VsZG4ndCBiZSBuZWNlc3Nh cnkgd2h5IHdvdWxkIHdlIGNhcmUgYXMgdGhpcyBpcyBhDQo+IG9uY2UgcGVyIGJvb3Qgb3BlcmF0 aW9uIGluIGZ1bGx5IHByZWVtcHRpYmxlIGNvZGUuDQoNCk5vdCBzdXJlIEkgdW5kZXJzdGFuZCB5 b3VyIHF1ZXN0aW9uLCBJIHdhcyBzdGF0aW5nIHRoYXQgZXZlbiBpZiBLU00gd2FzDQpydW5uaW5n LCBpdCB3b3VsZCBub3QgaW1wYWN0IHVzICh3aXRoIGRlZHVwKSwgYXMgd2UnZCBzdGlsbCBiZSB3 cml0aW5nIG91dCAwcw0KdG8gdGhlIGNhY2hlIGxpbmUgaW4gdGhlIGZhbGxiYWNrIGNhc2UuDQoN Cj4gDQo+IEFzaWRlIG9mIHRoYXQgd2h5IGRvIHdlIG5lZWQgYW5vdGhlciBwb2ludGxlc3NseSBk aWZmZXJlbnQgY29weSBvZiB3aGF0DQo+IHdlIGhhdmUgaW4gdGhlIFZNWCBjb2RlPw0KPiANCj4g PiArZG9uZToNCj4gPiArICAgICBzZXRfdGlfdGhyZWFkX2ZsYWcoJnRzay0+dGhyZWFkX2luZm8s IFRJRl9MMURfRkxVU0gpOw0KPiA+ICsgICAgIG11dGV4X3VubG9jaygmbDFkX2ZsdXNoX211dGV4 KTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArdm9pZCBkaXNhYmxlX2wxZF9mbHVzaF9mb3JfdGFzayhz dHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykNCj4gPiArew0KPiA+ICsgICAgIGNsZWFyX3RpX3RocmVh ZF9mbGFnKCZ0c2stPnRocmVhZF9pbmZvLCBUSUZfTDFEX0ZMVVNIKTsNCj4gPiArICAgICBzbXBf bWJfX2FmdGVyX2F0b21pYygpOw0KPiANCj4gTGFja3MgYW4gZXhwbGFuYXRpb24gLyBjb21tZW50 IHdoYXQgdGhpcyBzbXBfbWIgaXMgZm9yIGFuZCB3aGVyZSB0aGUNCj4gY291bnRlcnBhcnQgbGl2 ZXMuDQo+IA0KPiBBc2lkZSBvZiB0aGF0LCB0aGlzIGlzIHBvaW50bGVzcyBBRkFJQ1QuIERpc2Fi bGUvZW5hYmxlIGlzIHJlYWxseSBub3QgYQ0KPiBjb25jZXJuIG9mIGJlaW5nIHBlcmZlY3QuIElm IHlvdSB3YW50IHBlcmZlY3QgcHJvdGVjdGlvbiwgc2ltcGx5IHN3aXRjaA0KPiBvZmYgeW91ciBj b21wdXRlci4NCg0KWWVzLCB0aGUgY291bnRlciBwYXJ0IHdhcyBpbiB0aGUgbDFkX2ZsdXNoKCks IHdoaWNoIGRpZCBhbiBzbXBfcm1iKCksIGJ1dCB0aGUNCmNvbW1lbnQgZG9lcyBwb2ludCBvdXQg dGhhdCBpdCBjYW4gYW5kIHdpbGwgYmUgbGF6eSwgc28gd2UgY2FuIHNhZmVseSByZW1vdmUNCnRo aXMgYml0IGlmIG5lZWRlZC4NCg0KPiANCj4gPiArLyoNCj4gPiArICogRmx1c2ggdGhlIEwxRCBj YWNoZSBmb3IgdGhpcyBDUFUuIFdlIHdhbnQgdG8gdGhpcyBhdCBzd2l0Y2ggbW0gdGltZSwNCj4g PiArICogdGhpcyBpcyBhIHBlc3NpbWlzdGljIHNlY3VyaXR5IG1lYXN1cmUgYW5kIGFuIG9wdC1p biBmb3IgdGhvc2UgdGFza3MNCj4gPiArICogdGhhdCBob3N0IHNlbnNpdGl2ZSBpbmZvcm1hdGlv biBhbmQgdGhlcmUgYXJlIGNvbmNlcm5zIGFib3V0IHNwaWxscw0KPiA+ICsgKiBmcm9tIGZpbGwg YnVmZmVycy4NCj4gPiArICovDQo+ID4gK3N0YXRpYyB2b2lkIGwxZF9mbHVzaChzdHJ1Y3QgbW1f c3RydWN0ICpuZXh0LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykNCj4gPiArew0KPiA+ICsgICAg IHN0cnVjdCBtbV9zdHJ1Y3QgKnJlYWxfcHJldiA9IHRoaXNfY3B1X3JlYWQoY3B1X3RsYnN0YXRl LmxvYWRlZF9tbSk7DQo+ID4gKyAgICAgaW50IHNpemUgPSBQQUdFX1NJWkUgPDwgTDFEX0NBQ0hF X09SREVSOw0KPiA+ICsNCj4gPiArICAgICBpZiAodGhpc19jcHVfcmVhZChjcHVfdGxic3RhdGUu bGFzdF91c2VyX21tX2wxZF9mbHVzaCkgPT0gMCkNCj4gPiArICAgICAgICAgICAgIGdvdG8gY2hl Y2tfbmV4dDsNCj4gPiArDQo+ID4gKyAgICAgaWYgKHJlYWxfcHJldiA9PSBuZXh0KQ0KPiA+ICsg ICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsNCj4gPiArICAgICBpZiAoc3RhdGljX2NwdV9oYXMo WDg2X0ZFQVRVUkVfRkxVU0hfTDFEKSkgew0KPiA+ICsgICAgICAgICAgICAgd3Jtc3JsKE1TUl9J QTMyX0ZMVVNIX0NNRCwgTDFEX0ZMVVNIKTsNCj4gPiArICAgICAgICAgICAgIGdvdG8gZG9uZTsN Cj4gPiArICAgICB9DQo+ID4gKw0KPiA+ICsgICAgIGFzbSB2b2xhdGlsZSgNCj4gPiArICAgICAg ICAgICAgIC8qIEZpbGwgdGhlIGNhY2hlICovDQo+ID4gKyAgICAgICAgICAgICAieG9ybCAgICUl ZWF4LCAlJWVheFxuIg0KPiA+ICsgICAgICAgICAgICAgIi5MZmlsbF9jYWNoZTpcbiINCj4gPiAr ICAgICAgICAgICAgICJtb3Z6YmwgKCVbZmx1c2hfcGFnZXNdLCAlJSIgX0FTTV9BWCAiKSwgJSVl Y3hcblx0Ig0KPiA+ICsgICAgICAgICAgICAgImFkZGwgICAkNjQsICUlZWF4XG5cdCINCj4gPiAr ICAgICAgICAgICAgICJjbXBsICAgJSVlYXgsICVbc2l6ZV1cblx0Ig0KPiA+ICsgICAgICAgICAg ICAgImpuZSAgICAuTGZpbGxfY2FjaGVcblx0Ig0KPiA+ICsgICAgICAgICAgICAgImxmZW5jZVxu Ig0KPiA+ICsgICAgICAgICAgICAgOjogW2ZsdXNoX3BhZ2VzXSAiciIgKGwxZF9mbHVzaF9wYWdl cyksDQo+ID4gKyAgICAgICAgICAgICAgICAgW3NpemVdICJyIiAoc2l6ZSkNCj4gPiArICAgICAg ICAgICAgIDogImVheCIsICJlY3giKTsNCj4gDQo+IFlldCBtb2FyIGNvcGllZCBjb2RlIHNsaWdo bHR5IGRpZmZlcmVudCBmb3Igbm8gcmVhc29uLg0KPiANCg0KRGlmZmVyZW50IGJlY2F1c2Ugb2Yg dGhlIG5lZWQgdG8gbm90IHByZWZldGNoIHRoZSBUTEINCg0KPiA+ICsNCj4gPiArZG9uZToNCj4g PiArICAgICB0aGlzX2NwdV93cml0ZShjcHVfdGxic3RhdGUubGFzdF91c2VyX21tX2wxZF9mbHVz aCwgMCk7DQo+ID4gKyAgICAgLyogTWFrZSBzdXJlIHdlIGNsZWFyIHRoZSB2YWx1ZXMgYmVmb3Jl IHdlIHNldCBpdCBhZ2FpbiAqLw0KPiA+ICsgICAgIGJhcnJpZXIoKTsNCj4gPiArY2hlY2tfbmV4 dDoNCj4gPiArICAgICBpZiAodHNrID09IE5VTEwpDQo+ID4gKyAgICAgICAgICAgICByZXR1cm47 DQo+ID4gKw0KPiA+ICsgICAgIC8qIE1hdGNoIHRoZSBzZXQvY2xlYXJfYml0IGJhcnJpZXJzICov DQo+ID4gKyAgICAgc21wX3JtYigpOw0KPiANCj4gV2hhdCBmb3IgYWdhaW4/DQoNClllcywgbm90 IG5lZWRlZCAodGhlIGNvbW1lbnQgYmVsb3cgc29ydCBvZiBzYXlzIHRoYXQpLCBJIGNhbiByZW1v dmUgdGhpcw0KDQo+IA0KPiA+ICsgICAgIC8qIFdlIGRvbid0IG5lZWQgc3RyaW5nZW50IGNoZWNr cyBhcyB3ZSBvcHQtaW4vb3B0LW91dCAqLw0KPiA+ICsgICAgIGlmICh0ZXN0X3RpX3RocmVhZF9m bGFnKCZ0c2stPnRocmVhZF9pbmZvLCBUSUZfTDFEX0ZMVVNIKSkNCj4gPiArICAgICAgICAgICAg IHRoaXNfY3B1X3dyaXRlKGNwdV90bGJzdGF0ZS5sYXN0X3VzZXJfbW1fbDFkX2ZsdXNoLCAxKTsN Cj4gPiArfQ0KPiA+ICsNCj4gPiAgdm9pZCBzd2l0Y2hfbW0oc3RydWN0IG1tX3N0cnVjdCAqcHJl diwgc3RydWN0IG1tX3N0cnVjdCAqbmV4dCwNCj4gPiAgICAgICAgICAgICAgc3RydWN0IHRhc2tf c3RydWN0ICp0c2spDQo+ID4gIHsNCj4gPiBAQCAtNDMzLDYgKzUxOSw4IEBAIHZvaWQgc3dpdGNo X21tX2lycXNfb2ZmKHN0cnVjdCBtbV9zdHJ1Y3QgKnByZXYsIHN0cnVjdA0KPiA+IG1tX3N0cnVj dCAqbmV4dCwNCj4gPiAgICAgICAgICAgICAgIHRyYWNlX3RsYl9mbHVzaF9yY3VpZGxlKFRMQl9G TFVTSF9PTl9UQVNLX1NXSVRDSCwgMCk7DQo+ID4gICAgICAgfQ0KPiA+IA0KPiA+ICsgICAgIGwx ZF9mbHVzaChuZXh0LCB0c2spOw0KPiANCj4gVGhpcyBpcyByZWFsbHkgdGhlIHdyb25nIHBsYWNl LiBZb3Ugd2FudCB0byBkbyB0aGF0Og0KPiANCj4gICAxKSBKdXN0IGJlZm9yZSByZXR1cm4gdG8g dXNlciBzcGFjZQ0KPiAgIDIpIFdoZW4gZW50ZXJpbmcgYSBndWVzdA0KPiANCj4gYW5kIG9ubHkg d2hlbiB0aGUgcHJldmlvdXNseSBydW5uaW5nIHVzZXIgc3BhY2UgdGFzayB3YXMgdGhlIG9uZSB3 aGljaA0KPiByZXF1ZXN0ZWQgdGhpcyBtYXNzaXZlIHByb3RlY3Rpb24uDQo+IA0KDQpDYXNlcyAx IGFuZCAyIGFyZSBoYW5kbGVkIHZpYQ0KDQoxLiBTV0FQR1MgZml4ZXMvd29yayBhcm91bmRzICh1 bmxlc3MgSSBtaXN1bmRlcnN0b29kIHlvdXIgc3VnZ2VzdGlvbikNCjIuIEwxVEYgZmF1bHQgaGFu ZGxpbmcNCg0KVGhpcyBtZWNoYW5pc20gYWxsb3dzIGZvciBmbHVzaGluZyBub3QgcmVzdHJpY3Rl ZCB0byAxIG9yIDIsIHRoZSBpZGVhIGlzIHRvDQppbW1lZGlhdGVseSBmbHVzaCBMMUQgZm9yIHBh cmFub2lkIHByb2Nlc3NlcyBvbiBtbSBzd2l0Y2guDQoNCj4gPiANCg0KPiBXaGlsZSBpdCdzIHdv cnRoIHRvIGRpc2N1c3MsIEknbSBub3QgeWV0IGNvbnZpbmNlZCB0aGF0IHRoaXMgaXMgd29ydGgN Cj4gdGhlIHRyb3VibGUuDQo+IA0KDQpBcmUgeW91IHN1Z2dlc3RpbmcgdGhlIG1lY2hhbmlzbSBp cyBub3Qgd29ydGggYnVpbGRpbmc/DQoNCkJhbGJpciBTaW5naC4NCg==