From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from [59.151.112.132] (helo=heian.cn.fujitsu.com) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bRbzE-0000DI-3a for kexec@lists.infradead.org; Mon, 25 Jul 2016 09:15:46 +0000 From: "Wei, Jiangang" Subject: Re: [PATCH 3/3] x86/apic: Improved the setting of interrupt mode for bsp Date: Mon, 25 Jul 2016 09:15:19 +0000 Message-ID: <1469437943.7811.13.camel@localhost> References: <1469175026-29447-1-git-send-email-weijg.fnst@cn.fujitsu.com> <1469175026-29447-3-git-send-email-weijg.fnst@cn.fujitsu.com> <20160722104034.GB3543@x1.redhat.com> <1469415695.2020.60.camel@localhost> <5795CBF2.3070407@redhat.com> In-Reply-To: <5795CBF2.3070407@redhat.com> Content-Language: en-US Content-ID: <2FC4E26AF9B00545990D33A242D67855@fujitsu.local> MIME-Version: 1.0 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+dwmw2=infradead.org@lists.infradead.org To: "xlpang@redhat.com" Cc: "bhe@redhat.com" , "joro@8bytes.org" , "x86@kernel.org" , "kexec@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "Cao, Jin" , "mingo@redhat.com" , "kernel@kyup.com" , "ebiederm@xmission.com" , "hpa@zytor.com" , "tglx@linutronix.de" T24gTW9uLCAyMDE2LTA3LTI1IGF0IDE2OjIxICswODAwLCBYdW5sZWkgUGFuZyB3cm90ZToNCj4g T24gMjAxNi8wNy8yNSBhdCAxMTowNCwgV2VpLCBKaWFuZ2FuZyB3cm90ZToNCj4gPiBIaSBIZSwN Cj4gPg0KPiA+IFRoYW5rcyBmb3IgeW91ciByZXNwb25zZSBmaXJzdGx5Lg0KPiA+DQo+ID4gT24g RnJpLCAyMDE2LTA3LTIyIGF0IDE4OjQwICswODAwLCBCYW9xdWFuIEhlIHdyb3RlOg0KPiA+PiBI aSBKaWFuZ2FuZywNCj4gPj4NCj4gPj4gVGhpcyBpcyB2ZXJ5IG5pY2UsIHNob3VsZCBiZSB0aGUg c3R1ZmYgRXJpYyBhbmQgSW5nbyB3b3VsZCBsaWtlIHRvIHNlZS4NCj4gPj4gQnV0IEkgaGF2ZSBz ZXZlcmFsIHF1ZXN0aW9uczoNCj4gPj4NCj4gPj4gMSkgQXJlIHlvdSBub3QgZ29pbmcgdG8gY2xl YW4gdXAgdGhlIG9sZCBsZWdhY3kgaXJxIG1vZGUgc2V0dGluZyBjb2RlIGluDQo+ID4+IDFzdCBr ZXJuZWw/DQo+ID4gWWVzLCBJIHdvdWxkIGxpa2UgdG8gcGF5IG1vcmUgYXR0ZW50aW9uIG9uIGZp eGluZyBrZHVtcCdzIGZhaWx1cmUgd2l0aA0KPiA+IG5vdHNjLg0KPiA+IE5vIHBsYW4gdG8gY2xl YW4gdXAgdGhlIGlycSBtb2RlIHNldHRpbmcgY29kZXMgaW4gdGhlIGNyYXNoIGtlcm5lbA0KPiA+ IHJlYm9vdCBwYXRoLg0KPiA+IElmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBpdCwgcGxlYXNlIGdv IG9uLg0KPiA+DQo+ID4+IDIpSSBjYWxsIHRoZW0gbGVnYWN5IGlycSBtb2RlIGJlY2F1c2Ugbm90 IG9ubHkgYXBpYyB2aXJ0dWFsIHdpcmUgbW9kZQ0KPiA+PiBleGlzdHMsIGJ1dCB0aGUgUElDIG1v ZGUgaW4geDg2IDMyYml0IHN5c3RlbS4gWW91IG5lZWQgY29uc2lkZXIgaXQgdG9vLg0KPiA+PiBU aGVuIGluaXRfYnNwX0FQSUMgbmVlZCBiZSByZW5hbWFlZCB0byBhbiBhcHByb3ByaWF0ZSBvbmUu IEFuZCBhc3N1bWUNCj4gPj4gdGhpcyBoYXMgYmVlbiB0ZXN0ZWQgb24geDg2IDMyYml0IHN5c3Rl bS4gDQo+ID4gVGhhbmtzIGZvciB5b3VyIHJlbWluZGVycy4NCj4gPiBBcyB0aGUgY29tbWVudCBv ZiBpbml0X2JzcF9BUElDKCksIGl0J3MganVzdCB1c2VkIHRvIHNldHVwIHRoZSB2aXJ0dWFsDQo+ ID4gd2lyZSBtb2RlLg0KPiA+IHNvIEkgd29uJ3QgY2hhbmdlIGl0cyBuYW1lLg0KPiA+DQo+ID4g QnV0IGkgYWdyZWUgd2l0aCB0aGF0IFBJQyBtb2RlIHNob3VsZCBiZSBjb25zaWRlcmVkLg0KPiA+ IE5leHQgdmVyc2lvbiB3aWxsIGJlIGxpa2UgYmVsb3csDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEv YXJjaC94ODYva2VybmVsL2FwaWMvYXBpYy5jIGIvYXJjaC94ODYva2VybmVsL2FwaWMvYXBpYy5j DQo+ID4gaW5kZXggMDQzNThlMGNmMWUyLi5kNDBiYWI5NDdhMmEgMTAwNjQ0DQo+ID4gLS0tIGEv YXJjaC94ODYva2VybmVsL2FwaWMvYXBpYy5jDQo+ID4gKysrIGIvYXJjaC94ODYva2VybmVsL2Fw aWMvYXBpYy5jDQo+ID4gQEAgLTExODYsNyArMTE4Niw3IEBAIHZvaWQgX19pbml0IGluaXRfYnNw X0FQSUModm9pZCkNCj4gPiAgICAgICAgICAqIHRoZSB3b3JzdCBjYXNlIGlzIHRoYXQgYm90aCBv ZiB0aGVtIGFyZSBpbmFjdGl2ZSwNCj4gPiAgICAgICAgICAqIElmIHNvLCBXZSBuZWVkIHRvIGVu YWJsZSB0aGUgdmlydHVhbCB3aXJlIG1vZGUgdmlhDQo+ID4gdGhyb3VnaC1sb2NhbC1BUElDDQo+ ID4gICAgICAgICAgKi8NCj4gPiAtICAgICAgIGlmIChzbXBfZm91bmRfY29uZmlnIHx8ICFib290 X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVBJQykNCj4gPiArICAgICAgIGlmICggcGljX21vZGUgfHwg KHNtcF9mb3VuZF9jb25maWcgJiYgY2hlY2tfdmlydHVhbF93aXJlX21vZGUoKSkNCj4gDQo+IEkg dGhpbmsgdGhpcyBpcyBuZWVkbGVzcywgYXMgaW5pdF9ic3BfQVBJQygpIGlzIG1hZGUgdW5kZXIg dGhlIGZvbGxvd2luZyBjb25kaXRpb246DQo+ICNpZiBkZWZpbmVkKENPTkZJR19YODZfNjQpIHx8 IGRlZmluZWQoQ09ORklHX1g4Nl9MT0NBTF9BUElDKQ0KDQpOb3BlLA0KSSBzdWdnZXN0IHlvdSB0 YWtlIGEgbG9vayBhdCBkZWZhdWx0X2dldF9zbXBfY29uZmlnKCkuDQouLi4uLi4uLi4NCiNpZiBk ZWZpbmVkKENPTkZJR19YODZfTE9DQUxfQVBJQykgJiYgZGVmaW5lZChDT05GSUdfWDg2XzMyKQ0K CWlmIChtcGYtPmZlYXR1cmUyICYgKDEgPDwgNykpIHsNCgkJcHJfaW5mbygiICAgIElNQ1IgYW5k IFBJQyBjb21wYXRpYmlsaXR5IG1vZGUuXG4iKTsNCgkJcGljX21vZGUgPSAxOw0KCX0gZWxzZSB7 DQoJCXByX2luZm8oIiAgICBWaXJ0dWFsIFdpcmUgY29tcGF0aWJpbGl0eSBtb2RlLlxuIik7DQoJ CXBpY19tb2RlID0gMDsNCgl9DQojZW5kaWYNCi4uLi4uLi4NCg0KaWYgd2UgZGVjbGFyZSBDT05G SUdfWDg2XzMyIGFuZCBDT05GSUdfWDg2X0xPQ0FMX0FQSUMsIC4gaW5pdF9ic3BfQVBJQw0KbWF5 IGJlIGNhbGxlZC4gIHNvIGNoZWNrIHBpY19tb2RlIGlzIHVzZWZ1bC4NCg0KPiANCj4gPiB8fA0K PiA+ICAgICAgICAgICAgICAgICAhYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FQSUMpKQ0KPiA+ ICAgICAgICAgICAgICAgICByZXR1cm47DQo+ID4+IDMpIA0KPiA+Pg0KPiA+PiAqKUFib3V0IElP LUFQSUMgc2V0dGluZyBhcyB2aXJ0dWFsIHdpcmUgbW9kZSwgSSBhbSBhbHdheXMgY29uZnVzZWQu IEluDQo+ID4+IE1QIFNwZWMgMy42LjIuMiwgaXQgc2F5cyAidGhlIGludGVycnVwdCBzaWduYWwg cGFzc2VzIHRocm91Z2ggYm90aCB0aGUNCj4gPj4gSS9PIEFQSUMgYW5kIHRoZSBCU1DigJlzIGxv Y2FsIEFQSUMiLiBUaGF0IG1lYW5zIElPLUFQSUMgdmlydHVhbCB3aXJlIG1vZGUNCj4gPj4gbmVl ZCBib3RoIElPLUFQSUMgYW5kIExBUElDIHRvIGJlIHNldCwgYW5kIHdpdGggbXkgdW5kZXJzdGFu ZGluZyBvbmx5DQo+ID4+IHBpbiBvZiBJTy1BUElDIGlzIHNldCBhcyBFeHRJbnQsIExBUElDIHNo b3VsZCBiZSBwYXNzLXRocm91Z2guDQo+ID4+DQo+ID4+ICopQnV0IGluIEludGVsIEFyY2ggbWFu dWFsIDNBIDEwLjEsIHRoZXJlJ3Mgb25seSBiZWxvdyBzZW50ZW5jZXMgdG8gbWVudGlvbg0KPiA+ PiBpdDoNCj4gPj4NCj4gPj4gfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ID4+IFRoZSBJL08gQVBJQyBhbHNvIGhhcyBhIOKA nHZpcnR1YWwgd2lyZSBtb2Rl4oCdIHRoYXQgYWxsb3dzIGl0IHRvIGNvbW11bmljYXRlDQo+ID4+ IHdpdGggYSBzdGFuZGFyZCA4MjU5QS1zdHlsZSBleHRlcm5hbCBpbnRlcnJ1cHQgY29udHJvbGxl ci4gTm90ZSB0aGF0IHRoZQ0KPiA+PiBsb2NhbCBBUElDIGNhbiBiZSBkaXNhYmxlZC4gVGhpcyBh bGxvd3MgYW4gYXNzb2NpYXRlZCBwcm9jZXNzb3IgY29yZSB0bw0KPiA+PiByZWNlaXZlIGludGVy cnVwdHMgZGlyZWN0bHkgZnJvbSBhbiA4MjU5QSBpbnRlcnJ1cHQgY29udHJvbGxlci4NCj4gPj4g fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fg0KPiA+Pg0KPiA+PiBFcmljJ3MgY29kZSBpbiBuYXRpdmVfZGlzYWJsZV9pb19hcGlj KCkgaGFzIHRoZSBzYW1lIHBvaW50IGFzIGFib3ZlDQo+ID4+IHdvcmRzLg0KPiA+IElNT++8jA0K PiA+IHRoZSB0aHJvdWdoLUlPLUFQSUMgbW9kZSBoYXMgbm8gcmVsYXRpb25zaGlwIHdpdGggdGhl IHNldHRpbmcgb2YgbG9jYWwNCj4gPiBBUElDLg0KPiA+IHRoYXQncyB3aHkgaSBvbmx5IGNoZWNr IHRoZSBwaW4gb2YgSU8tQVBJQyBpbiB2aXJ0dWFsX3dpcmVfdmlhX2lvYXBpYygpLg0KPiANCj4g Rm9yIHRocm91Z2gtSU8tQVBJQyBtb2RlLCBJIHRoaW5rIHRoZSBic3AgbG9jYWwgYXBpYyBzaG91 bGQgYmUgb24sIGJ1dCBpdHMgTElOVDAgcGluIG11c3Qgbm90DQo+IGJlIHNldCB0byBiZSAiRXh0 SU5UIihJIGd1ZXNzIHdpdGggdGhpcyBtb2RlIHNldCB3aWxsIG1ha2UgaXQgdG8gYmUgdGhyb3Vn aC1MQVBJQyBtb2RlKSwgYW5kDQo+IHdlIGNhbiBjbGVhcmx5IHNlZSB0aGUgZmFjdCBmcm9tIGRp c2Nvbm5lY3RfYnNwX0FQSUMoKSdzIGltcGxlbWVudGF0aW9uLg0KDQpZZXMsIHlvdXIgb3Bpbmlv biBsb29rcyByZWFzb25hYmxlLg0KYm90aCB0aHJvdWdoLUlPLUFQSUMgYW5kIHRocm91Z2gtbG9j YWwtQVBJQyBlbmFibGUgdGhlIHNvZnR3YXJlIGZsYWcuDQoNCiAgICAgICAgLyogRm9yIHRoZSBz cHVyaW91cyBpbnRlcnJ1cHQgdXNlIHZlY3RvciBGLCBhbmQgZW5hYmxlIGl0ICovDQoJdmFsdWUg PSBhcGljX3JlYWQoQVBJQ19TUElWKTsNCgl2YWx1ZSAmPSB+QVBJQ19WRUNUT1JfTUFTSzsNCgl2 YWx1ZSB8PSBBUElDX1NQSVZfQVBJQ19FTkFCTEVEOw0KCXZhbHVlIHw9IDB4ZjsNCglhcGljX3dy aXRlKEFQSUNfU1BJViwgdmFsdWUpOw0KDQpJIHdpbGwgYWNjZXB0IHRoaXMgcG9pbnQgaW4gdjIg cGF0Y2guDQoNClRoYW5rcywNCndlaQ0KPiANCj4gUmVnYXJkcywNCj4gWHVubGVpDQo+ID4gVGhh bmtzDQo+ID4gd2VpDQo+ID4+ICopSG93ZXZlciBwbGVhc2UgcmVhZCBjb2RlIGNvbW1lbnRzIGlu IGlycV9yZW1hcHBpbmdfZGlzYWJsZV9pb19hcGljKCksDQo+ID4+IEpvZXJnJ3MgZGVzY3JpcHRp b24gZ2l2ZSBtZSBhIGRpZmZlcmVudCBpbXByZXNzaW9uIHRoYXQgd2UgY2FuIGNob29zZQ0KPiA+ PiB0byBvbmx5IHVzZSBMQVBJQyB2aXJ0dWFsIHdpcmUgbW9kZS4gSm9lcmcgaXMgSU9NTVUgbWFp bnRhaW5lcnMsIGhlIGlzDQo+ID4+IHZlcnkgZmFtaWxpYXIgd2l0aCBpby1hcGljIHNpbmNlIElP TU1VIG5lZWQgdGFrZSBvdmVyIGlvLWFwaWMgZW50cnkNCj4gPj4gZmlsbGluZywgdGhlcmUgbXVz dCBiZSByZWFzb24gaGUgd3JvdGUgdGhhdC4gQWRkIEpvZXJnIHRvIENDIGxpc3QuDQo+ID4+DQo+ ID4+IFNlZW1zIGl0J3MgZGlmZmljdWx0IHRvIGZpbmQgYSBzeXN0ZW0gd2l0aCBJTy1BUElDIHZp cnR1YWwgd2lyZSBtb2RlLA0KPiA+PiBtYXliZSB3ZSBjYW4ganVzdCBrZWVwIGl0IGFzIGlzLiBO b3Qgc3VyZSBpZiBJbnRlbCBlbmdpbmVlcnMgY2FuIGhlbHANCj4gPj4gZXhwbGFpbiBhbmQgY29u ZmlybSB0aGlzLg0KPiA+Pg0KPiA+PiBUaGF0J3MgYWxsIEkgY2FuIHRoaW5rIG9mLg0KPiA+Pg0K PiA+PiBUaGFua3MNCj4gPj4gQmFvcXVhbg0KPiA+Pg0KPiA+PiBPbiAwNy8yMi8xNiBhdCAwNDox MHBtLCBXZWkgSmlhbmdhbmcgd3JvdGU6DQo+ID4+PiBJZiB3ZSBzcGVjaWZ5IHRoZSAnbm90c2Mn IHBhcmFtZXRlciBmb3IgdGhlIGR1bXAtY2FwdHVyZSBrZXJuZWwsDQo+ID4+PiBhbmQgdGhlbiB0 cmlnZ2VyIGEgY3Jhc2gocGFuaWMpIGJ5IHVzaW5nICJBTFQtU3lzUnEtYyIgb3INCj4gPj4+ICJl Y2hvIGMgPiAvcHJvYy9zeXNycS10cmlnZ2VyIiwgdGhlIGR1bXAtY2FwdHVyZSBrZXJuZWwgd2ls bA0KPiA+Pj4gaGFuZyBpbiBjYWxpYnJhdGVfZGVsYXlfY29udmVyZ2UoKSBhbmQgd2FpdCBmb3Ig amlmZmllcyBjaGFuZ2VzLg0KPiA+Pj4gc2VyaWFsIGxvZyBhcyBmb2xsb3dzOg0KPiA+Pj4NCj4g Pj4+ICAgICB0c2M6IEZhc3QgVFNDIGNhbGlicmF0aW9uIHVzaW5nIFBJVA0KPiA+Pj4gICAgIHRz YzogRGV0ZWN0ZWQgMjA5OS45NDcgTUh6IHByb2Nlc3Nvcg0KPiA+Pj4gICAgIENhbGlicmF0aW5n IGRlbGF5IGxvb3AuLi4NCj4gPj4+DQo+ID4+PiBUaGUgcmVhc29uIGZvciBqaWZmaWVzIG5vdCBj aGFuZ2VzIGlzIHRoZXJlJ3Mgbm8gdGltZXIgaW50ZXJydXB0DQo+ID4+PiBwYXNzZWQgdG8gZHVt cC1jYXB0dXJlIGtlcm5lbC4NCj4gPj4+DQo+ID4+PiBJbiBmYWN0LCBvbmNlIGtlcm5lbCBwYW5p YyBvY2N1cnMsIHRoZSBsb2NhbCBBUElDIGlzIGRpc2FibGVkDQo+ID4+PiBieSBsYXBpY19zaHV0 ZG93bigpIGluIHJlYm9vdCBwYXRoLg0KPiA+Pj4gZ2VuZXJseSBzcGVha2luZywgbG9jYWwgQVBJ QyBzdGF0ZSBjYW4gYmUgaW5pdGlhbGl6ZWQgYnkgQklPUw0KPiA+Pj4gYWZ0ZXIgUG93ZXItVXAg b3IgUmVzZXQsIHdoaWNoIGRvZXNuJ3QgYXBwbHkgdG8ga2R1bXAgY2FzZS4NCj4gPj4+IHNvIHRo ZSBrZXJuZWwgaGFzIHRvIGJlIHJlc3BvbnNpYmxlIGZvciBpbml0aWFsaXplIHRoZSBpbnRlcnJ1 cHQNCj4gPj4+IG1vZGUgcHJvcGVybHkgYWNjb3JkaW5nIHRoZSBsYXRlc3Qgc3RhdHVzIG9mIEFQ SUMgaW4gYm9vdHVwIHBhdGguDQo+ID4+Pg0KPiA+Pj4gQW4gTVAgb3BlcmF0aW5nIHN5c3RlbSBp cyBib290ZWQgdW5kZXIgZWl0aGVyIFBJQyBtb2RlIG9yDQo+ID4+PiB2aXJ0dWFsIHdpcmUgbW9k ZS4gTGF0ZXIsIHRoZSBvcGVyYXRpbmcgc3lzdGVtIHN3aXRjaGVzIHRvDQo+ID4+PiBzeW1tZXRy aWMgSS9PIG1vZGUgYXMgaXQgZW50ZXJzIG11bHRpcHJvY2Vzc29yIG1vZGUuDQo+ID4+PiBUd28g a2luZHMgb2YgdmlydHVhbCB3aXJlIG1vZGUgYXJlIGRlZmluZWQgaW4gSW50ZWwgTVAgc3BlYzoN Cj4gPj4+IHZpcnR1YWwgd2lyZSBtb2RlIHZpYSBsb2NhbCBBUElDIG9yIHZpYSBJL08gQVBJQy4N Cj4gPj4+DQo+ID4+PiBOb3cgd2UgZGV0ZXJtaW5lIHRoZSBtb2RlIG9mIEFQSUMgb25seSB0aHJv dWdoIGEgU01QIEJJT1MoTVAgdGFibGUpLg0KPiA+Pj4gVGhhdCdzIG5vdCBlbm91Z2guDQo+ID4+ PiBJdCdzIGJldHRlciB0byBkbyBmdXJ0aGVyIGNoZWNrIGlmIEFQSUMgd29ya3Mgd2l0aCBlZmZl Y3RpdmUgbW9kZSwNCj4gPj4+IGFuZCBkbyBzb21lIHBvcnBlciBzZXR0aW5nLg0KPiA+Pj4NCj4g Pj4+IFNpZ25lZC1vZmYtYnk6IENhbyBqaW4gPGNhb2ouZm5zdEBjbi5mdWppdHN1LmNvbT4NCj4g Pj4+IFNpZ25lZC1vZmYtYnk6IFdlaSBKaWFuZ2FuZyA8d2VpamcuZm5zdEBjbi5mdWppdHN1LmNv bT4NCj4gPj4+IC0tLQ0KPiA+Pj4gIGFyY2gveDg2L2luY2x1ZGUvYXNtL2lvX2FwaWMuaCB8ICA1 ICsrKysNCj4gPj4+ICBhcmNoL3g4Ni9rZXJuZWwvYXBpYy9hcGljLmMgICAgfCA1NSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0NCj4gPj4+ICBhcmNoL3g4Ni9rZXJu ZWwvYXBpYy9pb19hcGljLmMgfCAyOCArKysrKysrKysrKysrKysrKysrKysNCj4gPj4+ICAzIGZp bGVzIGNoYW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPj4+DQo+ID4+ PiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vaW9fYXBpYy5oIGIvYXJjaC94ODYv aW5jbHVkZS9hc20vaW9fYXBpYy5oDQo+ID4+PiBpbmRleCA2Y2JmMmNmYjNmOGEuLjY1NTBiZDQz ZmEzOSAxMDA2NDQNCj4gPj4+IC0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lvX2FwaWMuaA0K PiA+Pj4gKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vaW9fYXBpYy5oDQo+ID4+PiBAQCAtMTkw LDYgKzE5MCw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGlvX2FwaWNfcmVhZCh1bnNp Z25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJlZykNCj4gPj4+ICB9DQo+ID4+PiAgDQo+ID4+ PiAgZXh0ZXJuIHZvaWQgc2V0dXBfSU9fQVBJQyh2b2lkKTsNCj4gPj4+ICtleHRlcm4gYm9vbCB2 aXJ0dWFsX3dpcmVfdmlhX2lvYXBpYyh2b2lkKTsNCj4gPj4+ICBleHRlcm4gdm9pZCBlbmFibGVf SU9fQVBJQyh2b2lkKTsNCj4gPj4+ICBleHRlcm4gdm9pZCBkaXNhYmxlX0lPX0FQSUModm9pZCk7 DQo+ID4+PiAgZXh0ZXJuIHZvaWQgc2V0dXBfaW9hcGljX2Rlc3Qodm9pZCk7DQo+ID4+PiBAQCAt MjMxLDYgKzIzMiwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW9fYXBpY19pbml0X21hcHBpbmdz KHZvaWQpIHsgfQ0KPiA+Pj4gICNkZWZpbmUgbmF0aXZlX2Rpc2FibGVfaW9fYXBpYwkJTlVMTA0K PiA+Pj4gIA0KPiA+Pj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF9JT19BUElDKHZvaWQpIHsg fQ0KPiA+Pj4gK3N0YXRpYyBpbmxpbmUgYm9vbCB2aXJ0dWFsX3dpcmVfdmlhX2lvYXBpYyh2b2lk KQ0KPiA+Pj4gK3sNCj4gPj4+ICsJcmV0dXJuIHRydWU7DQo+ID4+PiArfQ0KPiA+Pj4gIHN0YXRp YyBpbmxpbmUgdm9pZCBlbmFibGVfSU9fQVBJQyh2b2lkKSB7IH0NCj4gPj4+ICBzdGF0aWMgaW5s aW5lIHZvaWQgc2V0dXBfaW9hcGljX2Rlc3Qodm9pZCkgeyB9DQo+ID4+PiAgDQo+ID4+PiBkaWZm IC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FwaWMvYXBpYy5jIGIvYXJjaC94ODYva2VybmVsL2Fw aWMvYXBpYy5jDQo+ID4+PiBpbmRleCA4ZTI1YjliMmQzNTEuLjA0MzU4ZTBjZjFlMiAxMDA2NDQN Cj4gPj4+IC0tLSBhL2FyY2gveDg2L2tlcm5lbC9hcGljL2FwaWMuYw0KPiA+Pj4gKysrIGIvYXJj aC94ODYva2VybmVsL2FwaWMvYXBpYy5jDQo+ID4+PiBAQCAtMTEyNCw2ICsxMTI0LDUzIEBAIHZv aWQgX19pbml0IHN5bmNfQXJiX0lEcyh2b2lkKQ0KPiA+Pj4gIH0NCj4gPj4+ICANCj4gPj4+ICAv Kg0KPiA+Pj4gKyAqIFJldHVybiBmYWxzZSBtZWFucyB0aGUgdmlydHVhbCB3aXJlIG1vZGUgdGhy b3VnaC1sb2NhbC1hcGljIGlzIGluYWN0aXZlDQo+ID4+PiArICovDQo+ID4+PiArc3RhdGljIGJv b2wgdmlydHVhbF93aXJlX3ZpYV9sYXBpYyh2b2lkKQ0KPiA+Pj4gK3sNCj4gPj4+ICsJdW5zaWdu ZWQgaW50IHZhbHVlOw0KPiA+Pj4gKw0KPiA+Pj4gKwkvKiBDaGVjayB0aGUgQVBJQyBnbG9iYWwg ZW5hYmxlL2Rpc2FibGUgZmxhZyBmaXJzdGx5ICovDQo+ID4+PiArCWlmIChib290X2NwdV9kYXRh Lng4NiA+PSA2KSB7DQo+ID4+PiArCQl1MzIgaCwgbDsNCj4gPj4+ICsNCj4gPj4+ICsJCXJkbXNy KE1TUl9JQTMyX0FQSUNCQVNFLCBsLCBoKTsNCj4gPj4+ICsJCS8qDQo+ID4+PiArCQkgKiBJZiBs b2NhbCBBUElDIGlzIGRpc2FibGVkIGJ5IEJJT1MNCj4gPj4+ICsJCSAqIGRvIG5vdGhpbmcsIGJ1 dCByZXR1cm4gdHJ1ZQ0KPiA+Pj4gKwkJICovDQo+ID4+PiArCQlpZiAoIShsICYgTVNSX0lBMzJf QVBJQ0JBU0VfRU5BQkxFKSkNCj4gPj4+ICsJCQlyZXR1cm4gdHJ1ZTsNCj4gPj4+ICsJfQ0KPiA+ Pj4gKw0KPiA+Pj4gKwkvKiBDaGVjayB0aGUgc29mdHdhcmUgZW5hYmxlL2Rpc2FibGUgZmxhZyAq Lw0KPiA+Pj4gKwl2YWx1ZSA9IGFwaWNfcmVhZChBUElDX1NQSVYpOw0KPiA+Pj4gKwlpZiAoISh2 YWx1ZSAmIEFQSUNfU1BJVl9BUElDX0VOQUJMRUQpKQ0KPiA+Pj4gKwkJcmV0dXJuIGZhbHNlOw0K PiA+Pj4gKw0KPiA+Pj4gKwkvKg0KPiA+Pj4gKwkgKiBWaXJ0dWFsIHdpcmUgbW9kZSB2aWEgbG9j YWwgQVBJQyByZXF1ZXN0cw0KPiA+Pj4gKwkgKiBBUElDIHRvIGVuYWJsZSB0aGUgTElOVDAgZm9y IGVkZ2UtdHJnZ2VyZWQgRXh0SU5UIGRlbGl2ZXJ5IG1vZGUNCj4gPj4+ICsJICogYW5kIExJTlQx IGZvciBsZXZlbC10cmlnZ2VyZWQgTk1JIGRlbGl2ZXJ5IG1vZGUNCj4gPj4+ICsJICovDQo+ID4+ PiArCXZhbHVlID0gYXBpY19yZWFkKEFQSUNfTFZUMCk7DQo+ID4+PiArCWlmIChHRVRfQVBJQ19E RUxJVkVSWV9NT0RFKHZhbHVlKSAhPSBBUElDX01PREVfRVhUSU5UKQ0KPiA+Pj4gKwkJcmV0dXJu IGZhbHNlOw0KPiA+Pj4gKw0KPiA+Pj4gKwl2YWx1ZSA9IGFwaWNfcmVhZChBUElDX0xWVDEpOw0K PiA+Pj4gKwlpZiAoR0VUX0FQSUNfREVMSVZFUllfTU9ERSh2YWx1ZSkgIT0gQVBJQ19NT0RFX05N SSkNCj4gPj4+ICsJCXJldHVybiBmYWxzZTsNCj4gPj4+ICsNCj4gPj4+ICsJcmV0dXJuIHRydWU7 DQo+ID4+PiArfQ0KPiA+Pj4gKw0KPiA+Pj4gK3N0YXRpYyBib29sIGNoZWNrX3ZpcnR1YWxfd2ly ZV9tb2RlKHZvaWQpDQo+ID4+PiArew0KPiA+Pj4gKwkvKiBOZWl0aGVyIG9mIHZpcnR1YWwgd2ly ZSBtb2RlIGlzIGFjdGl2ZSwgcmV0dXJuIGZhbHNlICovDQo+ID4+PiArCXJldHVybiAgdmlydHVh bF93aXJlX3ZpYV9sYXBpYygpIHx8IHZpcnR1YWxfd2lyZV92aWFfaW9hcGljKCk7DQo+ID4+PiAr fQ0KPiA+Pj4gKw0KPiA+Pj4gKy8qDQo+ID4+PiAgICogQW4gaW5pdGlhbCBzZXR1cCBvZiB0aGUg dmlydHVhbCB3aXJlIG1vZGUuDQo+ID4+PiAgICovDQo+ID4+PiAgdm9pZCBfX2luaXQgaW5pdF9i c3BfQVBJQyh2b2lkKQ0KPiA+Pj4gQEAgLTExMzMsOCArMTE4MCwxNCBAQCB2b2lkIF9faW5pdCBp bml0X2JzcF9BUElDKHZvaWQpDQo+ID4+PiAgCS8qDQo+ID4+PiAgCSAqIERvbid0IGRvIHRoZSBz ZXR1cCBub3cgaWYgd2UgaGF2ZSBhIFNNUCBCSU9TIGFzIHRoZQ0KPiA+Pj4gIAkgKiB0aHJvdWdo LUkvTy1BUElDIHZpcnR1YWwgd2lyZSBtb2RlIG1pZ2h0IGJlIGFjdGl2ZS4NCj4gPj4+ICsJICoN Cj4gPj4+ICsJICogSXQncyBiZXR0ZXIgdG8gZG8gZnVydGhlciBjaGVjayBpZiBlaXRoZXIgdGhy b3VnaC1JL08tQVBJQw0KPiA+Pj4gKwkgKiBvciB0aHJvdWdoLWxvY2FsLUFQSUMgaXMgYWN0aXZl Lg0KPiA+Pj4gKwkgKiB0aGUgd29yc3QgY2FzZSBpcyB0aGF0IGJvdGggb2YgdGhlbSBhcmUgaW5h Y3RpdmUsDQo+ID4+PiArCSAqIElmIHNvLCBXZSBuZWVkIHRvIGVuYWJsZSB0aGUgdmlydHVhbCB3 aXJlIG1vZGUgdmlhIHRocm91Z2gtbG9jYWwtQVBJQw0KPiA+Pj4gIAkgKi8NCj4gPj4+IC0JaWYg KHNtcF9mb3VuZF9jb25maWcgfHwgIWJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BUElDKSkNCj4g Pj4+ICsJaWYgKChzbXBfZm91bmRfY29uZmlnICYmIGNoZWNrX3ZpcnR1YWxfd2lyZV9tb2RlKCkp IHx8DQo+ID4+PiArCQkhYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FQSUMpKQ0KPiA+Pj4gIAkJ cmV0dXJuOw0KPiA+Pj4gIA0KPiA+Pj4gIAkvKg0KPiA+Pj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2tlcm5lbC9hcGljL2lvX2FwaWMuYyBiL2FyY2gveDg2L2tlcm5lbC9hcGljL2lvX2FwaWMuYw0K PiA+Pj4gaW5kZXggNDQ2NzAyZWQ5OWRjLi41YTMyYzI2OTM4YWMgMTAwNjQ0DQo+ID4+PiAtLS0g YS9hcmNoL3g4Ni9rZXJuZWwvYXBpYy9pb19hcGljLmMNCj4gPj4+ICsrKyBiL2FyY2gveDg2L2tl cm5lbC9hcGljL2lvX2FwaWMuYw0KPiA+Pj4gQEAgLTEzNzksNiArMTM3OSwzNCBAQCB2b2lkIF9f aW5pdCBwcmludF9JT19BUElDcyh2b2lkKQ0KPiA+Pj4gIC8qIFdoZXJlIGlmIGFueXdoZXJlIGlz IHRoZSBpODI1OSBjb25uZWN0IGluIGV4dGVybmFsIGludCBtb2RlICovDQo+ID4+PiAgc3RhdGlj IHN0cnVjdCB7IGludCBwaW4sIGFwaWM7IH0gaW9hcGljX2k4MjU5ID0geyAtMSwgLTEgfTsNCj4g Pj4+ICANCj4gPj4+ICsvKg0KPiA+Pj4gKyAqIFJldHVybiBmYWxzZSBtZWFucyB0aGUgdmlydHVh bCB3aXJlIG1vZGUgdmlhIEkvTyBBUElDIGlzIGluYWN0aXZlDQo+ID4+PiArICovDQo+ID4+PiAr Ym9vbCB2aXJ0dWFsX3dpcmVfdmlhX2lvYXBpYyh2b2lkKQ0KPiA+Pj4gK3sNCj4gPj4+ICsJaW50 IGFwaWMsIHBpbjsNCj4gPj4+ICsNCj4gPj4+ICsJZm9yX2VhY2hfaW9hcGljX3BpbihhcGljLCBw aW4pIHsNCj4gPj4+ICsJCS8qIFNlZSBpZiBhbnkgb2YgdGhlIHBpbnMgaXMgaW4gRXh0SU5UIG1v ZGUgKi8NCj4gPj4+ICsJCXN0cnVjdCBJT19BUElDX3JvdXRlX2VudHJ5IGVudHJ5ID0gaW9hcGlj X3JlYWRfZW50cnkoYXBpYywgcGluKTsNCj4gPj4+ICsNCj4gPj4+ICsJCS8qDQo+ID4+PiArCQkg KiBJZiB0aGUgaW50ZXJydXB0IGxpbmUgaXMgZW5hYmxlZCBhbmQgaW4gRXh0SW50IG1vZGUNCj4g Pj4+ICsJCSAqIEkgaGF2ZSBmb3VuZCB0aGUgcGluIHdoZXJlIHRoZSBpODI1OSBpcyBjb25uZWN0 ZWQuDQo+ID4+PiArCQkgKi8NCj4gPj4+ICsJCWlmICgoZW50cnkubWFzayA9PSAwKSAmJiAoZW50 cnkuZGVsaXZlcnlfbW9kZSA9PSBkZXN0X0V4dElOVCkpDQo+ID4+PiArCQkJcmV0dXJuIHRydWU7 DQo+ID4+PiArCX0NCj4gPj4+ICsNCj4gPj4+ICsJLyoNCj4gPj4+ICsJICogVmlydHVhbCB3aXJl IG1vZGUgdmlhIEkvTyBBUElDIHJlcXVlc3RzDQo+ID4+PiArCSAqIEkvTyBBUElDIGJlIGNvbm5l Y3RlZCB0byBpODI1OSBpbiBjaGFwdGVyIDMuNi4yLjIgb2YgdGhlIE1QIHYxLjQgc3BlYw0KPiA+ Pj4gKwkgKiBJZiBubyBwaW4gaW4gRXh0SW50IG1vZGUsDQo+ID4+PiArCSAqIHRoZSB0aHJvdWdo LUkvTy1BUElDIHZpcnR1YWwgd2lyZSBtb2RlIGNhbiBiZSByZWdhcmRlZCBpbmFjdGl2ZS4NCj4g Pj4+ICsJICovDQo+ID4+PiArCXJldHVybiBmYWxzZTsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+ PiAgdm9pZCBfX2luaXQgZW5hYmxlX0lPX0FQSUModm9pZCkNCj4gPj4+ICB7DQo+ID4+PiAgCWlu dCBpODI1OV9hcGljLCBpODI1OV9waW47DQo+ID4+PiAtLSANCj4gPj4+IDEuOS4zDQo+ID4+Pg0K PiA+Pj4NCj4gPj4+DQo+ID4+DQo+ID4NCj4gPg0KPiANCj4gDQo+IA0KDQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmtleGVjIG1haWxpbmcgbGlzdApr ZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8va2V4ZWMK