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 1bRWCJ-0000lh-FD for kexec@lists.infradead.org; Mon, 25 Jul 2016 03:04:54 +0000 From: "Wei, Jiangang" Subject: Re: [PATCH 3/3] x86/apic: Improved the setting of interrupt mode for bsp Date: Mon, 25 Jul 2016 03:04:14 +0000 Message-ID: <1469415695.2020.60.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> In-Reply-To: <20160722104034.GB3543@x1.redhat.com> Content-Language: en-US Content-ID: <1914B100B118D0449D890373F50E46BD@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: "bhe@redhat.com" Cc: "xpang@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" SGkgSGUsDQoNClRoYW5rcyBmb3IgeW91ciByZXNwb25zZSBmaXJzdGx5Lg0KDQpPbiBGcmksIDIw MTYtMDctMjIgYXQgMTg6NDAgKzA4MDAsIEJhb3F1YW4gSGUgd3JvdGU6DQo+IEhpIEppYW5nYW5n LA0KPiANCj4gVGhpcyBpcyB2ZXJ5IG5pY2UsIHNob3VsZCBiZSB0aGUgc3R1ZmYgRXJpYyBhbmQg SW5nbyB3b3VsZCBsaWtlIHRvIHNlZS4NCj4gQnV0IEkgaGF2ZSBzZXZlcmFsIHF1ZXN0aW9uczoN Cj4gDQo+IDEpIEFyZSB5b3Ugbm90IGdvaW5nIHRvIGNsZWFuIHVwIHRoZSBvbGQgbGVnYWN5IGly cSBtb2RlIHNldHRpbmcgY29kZSBpbg0KPiAxc3Qga2VybmVsPw0KWWVzLCBJIHdvdWxkIGxpa2Ug dG8gcGF5IG1vcmUgYXR0ZW50aW9uIG9uIGZpeGluZyBrZHVtcCdzIGZhaWx1cmUgd2l0aA0Kbm90 c2MuDQpObyBwbGFuIHRvIGNsZWFuIHVwIHRoZSBpcnEgbW9kZSBzZXR0aW5nIGNvZGVzIGluIHRo ZSBjcmFzaCBrZXJuZWwNCnJlYm9vdCBwYXRoLg0KSWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGl0 LCBwbGVhc2UgZ28gb24uDQoNCj4gDQo+IDIpSSBjYWxsIHRoZW0gbGVnYWN5IGlycSBtb2RlIGJl Y2F1c2Ugbm90IG9ubHkgYXBpYyB2aXJ0dWFsIHdpcmUgbW9kZQ0KPiBleGlzdHMsIGJ1dCB0aGUg UElDIG1vZGUgaW4geDg2IDMyYml0IHN5c3RlbS4gWW91IG5lZWQgY29uc2lkZXIgaXQgdG9vLg0K PiBUaGVuIGluaXRfYnNwX0FQSUMgbmVlZCBiZSByZW5hbWFlZCB0byBhbiBhcHByb3ByaWF0ZSBv bmUuIEFuZCBhc3N1bWUNCj4gdGhpcyBoYXMgYmVlbiB0ZXN0ZWQgb24geDg2IDMyYml0IHN5c3Rl bS4gDQoNClRoYW5rcyBmb3IgeW91ciByZW1pbmRlcnMuDQpBcyB0aGUgY29tbWVudCBvZiBpbml0 X2JzcF9BUElDKCksIGl0J3MganVzdCB1c2VkIHRvIHNldHVwIHRoZSB2aXJ0dWFsDQp3aXJlIG1v ZGUuDQpzbyBJIHdvbid0IGNoYW5nZSBpdHMgbmFtZS4NCg0KQnV0IGkgYWdyZWUgd2l0aCB0aGF0 IFBJQyBtb2RlIHNob3VsZCBiZSBjb25zaWRlcmVkLg0KTmV4dCB2ZXJzaW9uIHdpbGwgYmUgbGlr ZSBiZWxvdywNCg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hcGljL2FwaWMuYyBiL2Fy Y2gveDg2L2tlcm5lbC9hcGljL2FwaWMuYw0KaW5kZXggMDQzNThlMGNmMWUyLi5kNDBiYWI5NDdh MmEgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYXBpYy9hcGljLmMNCisrKyBiL2FyY2gv eDg2L2tlcm5lbC9hcGljL2FwaWMuYw0KQEAgLTExODYsNyArMTE4Niw3IEBAIHZvaWQgX19pbml0 IGluaXRfYnNwX0FQSUModm9pZCkNCiAgICAgICAgICogdGhlIHdvcnN0IGNhc2UgaXMgdGhhdCBi b3RoIG9mIHRoZW0gYXJlIGluYWN0aXZlLA0KICAgICAgICAgKiBJZiBzbywgV2UgbmVlZCB0byBl bmFibGUgdGhlIHZpcnR1YWwgd2lyZSBtb2RlIHZpYQ0KdGhyb3VnaC1sb2NhbC1BUElDDQogICAg ICAgICAqLw0KLSAgICAgICBpZiAoc21wX2ZvdW5kX2NvbmZpZyB8fCAhYm9vdF9jcHVfaGFzKFg4 Nl9GRUFUVVJFX0FQSUMpDQorICAgICAgIGlmICggcGljX21vZGUgfHwgKHNtcF9mb3VuZF9jb25m aWcgJiYgY2hlY2tfdmlydHVhbF93aXJlX21vZGUoKSkNCnx8DQogICAgICAgICAgICAgICAgIWJv b3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BUElDKSkNCiAgICAgICAgICAgICAgICByZXR1cm47DQo+ IA0KPiAzKSANCj4gDQo+ICopQWJvdXQgSU8tQVBJQyBzZXR0aW5nIGFzIHZpcnR1YWwgd2lyZSBt b2RlLCBJIGFtIGFsd2F5cyBjb25mdXNlZC4gSW4NCj4gTVAgU3BlYyAzLjYuMi4yLCBpdCBzYXlz ICJ0aGUgaW50ZXJydXB0IHNpZ25hbCBwYXNzZXMgdGhyb3VnaCBib3RoIHRoZQ0KPiBJL08gQVBJ QyBhbmQgdGhlIEJTUOKAmXMgbG9jYWwgQVBJQyIuIFRoYXQgbWVhbnMgSU8tQVBJQyB2aXJ0dWFs IHdpcmUgbW9kZQ0KPiBuZWVkIGJvdGggSU8tQVBJQyBhbmQgTEFQSUMgdG8gYmUgc2V0LCBhbmQg d2l0aCBteSB1bmRlcnN0YW5kaW5nIG9ubHkNCj4gcGluIG9mIElPLUFQSUMgaXMgc2V0IGFzIEV4 dEludCwgTEFQSUMgc2hvdWxkIGJlIHBhc3MtdGhyb3VnaC4NCj4gDQo+ICopQnV0IGluIEludGVs IEFyY2ggbWFudWFsIDNBIDEwLjEsIHRoZXJlJ3Mgb25seSBiZWxvdyBzZW50ZW5jZXMgdG8gbWVu dGlvbg0KPiBpdDoNCj4gDQo+IH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiBUaGUgSS9PIEFQSUMgYWxzbyBoYXMgYSDigJx2 aXJ0dWFsIHdpcmUgbW9kZeKAnSB0aGF0IGFsbG93cyBpdCB0byBjb21tdW5pY2F0ZQ0KPiB3aXRo IGEgc3RhbmRhcmQgODI1OUEtc3R5bGUgZXh0ZXJuYWwgaW50ZXJydXB0IGNvbnRyb2xsZXIuIE5v dGUgdGhhdCB0aGUNCj4gbG9jYWwgQVBJQyBjYW4gYmUgZGlzYWJsZWQuIFRoaXMgYWxsb3dzIGFu IGFzc29jaWF0ZWQgcHJvY2Vzc29yIGNvcmUgdG8NCj4gcmVjZWl2ZSBpbnRlcnJ1cHRzIGRpcmVj dGx5IGZyb20gYW4gODI1OUEgaW50ZXJydXB0IGNvbnRyb2xsZXIuDQo+IH5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gDQo+ IEVyaWMncyBjb2RlIGluIG5hdGl2ZV9kaXNhYmxlX2lvX2FwaWMoKSBoYXMgdGhlIHNhbWUgcG9p bnQgYXMgYWJvdmUNCj4gd29yZHMuDQoNCklNT++8jA0KdGhlIHRocm91Z2gtSU8tQVBJQyBtb2Rl IGhhcyBubyByZWxhdGlvbnNoaXAgd2l0aCB0aGUgc2V0dGluZyBvZiBsb2NhbA0KQVBJQy4NCnRo YXQncyB3aHkgaSBvbmx5IGNoZWNrIHRoZSBwaW4gb2YgSU8tQVBJQyBpbiB2aXJ0dWFsX3dpcmVf dmlhX2lvYXBpYygpLg0KDQpUaGFua3MNCndlaQ0KPiANCj4gKilIb3dldmVyIHBsZWFzZSByZWFk IGNvZGUgY29tbWVudHMgaW4gaXJxX3JlbWFwcGluZ19kaXNhYmxlX2lvX2FwaWMoKSwNCj4gSm9l cmcncyBkZXNjcmlwdGlvbiBnaXZlIG1lIGEgZGlmZmVyZW50IGltcHJlc3Npb24gdGhhdCB3ZSBj YW4gY2hvb3NlDQo+IHRvIG9ubHkgdXNlIExBUElDIHZpcnR1YWwgd2lyZSBtb2RlLiBKb2VyZyBp cyBJT01NVSBtYWludGFpbmVycywgaGUgaXMNCj4gdmVyeSBmYW1pbGlhciB3aXRoIGlvLWFwaWMg c2luY2UgSU9NTVUgbmVlZCB0YWtlIG92ZXIgaW8tYXBpYyBlbnRyeQ0KPiBmaWxsaW5nLCB0aGVy ZSBtdXN0IGJlIHJlYXNvbiBoZSB3cm90ZSB0aGF0LiBBZGQgSm9lcmcgdG8gQ0MgbGlzdC4NCj4g DQo+IFNlZW1zIGl0J3MgZGlmZmljdWx0IHRvIGZpbmQgYSBzeXN0ZW0gd2l0aCBJTy1BUElDIHZp cnR1YWwgd2lyZSBtb2RlLA0KPiBtYXliZSB3ZSBjYW4ganVzdCBrZWVwIGl0IGFzIGlzLiBOb3Qg c3VyZSBpZiBJbnRlbCBlbmdpbmVlcnMgY2FuIGhlbHANCj4gZXhwbGFpbiBhbmQgY29uZmlybSB0 aGlzLg0KPiANCj4gVGhhdCdzIGFsbCBJIGNhbiB0aGluayBvZi4NCj4gDQo+IFRoYW5rcw0KPiBC YW9xdWFuDQo+IA0KPiBPbiAwNy8yMi8xNiBhdCAwNDoxMHBtLCBXZWkgSmlhbmdhbmcgd3JvdGU6 DQo+ID4gSWYgd2Ugc3BlY2lmeSB0aGUgJ25vdHNjJyBwYXJhbWV0ZXIgZm9yIHRoZSBkdW1wLWNh cHR1cmUga2VybmVsLA0KPiA+IGFuZCB0aGVuIHRyaWdnZXIgYSBjcmFzaChwYW5pYykgYnkgdXNp bmcgIkFMVC1TeXNScS1jIiBvcg0KPiA+ICJlY2hvIGMgPiAvcHJvYy9zeXNycS10cmlnZ2VyIiwg dGhlIGR1bXAtY2FwdHVyZSBrZXJuZWwgd2lsbA0KPiA+IGhhbmcgaW4gY2FsaWJyYXRlX2RlbGF5 X2NvbnZlcmdlKCkgYW5kIHdhaXQgZm9yIGppZmZpZXMgY2hhbmdlcy4NCj4gPiBzZXJpYWwgbG9n IGFzIGZvbGxvd3M6DQo+ID4gDQo+ID4gICAgIHRzYzogRmFzdCBUU0MgY2FsaWJyYXRpb24gdXNp bmcgUElUDQo+ID4gICAgIHRzYzogRGV0ZWN0ZWQgMjA5OS45NDcgTUh6IHByb2Nlc3Nvcg0KPiA+ ICAgICBDYWxpYnJhdGluZyBkZWxheSBsb29wLi4uDQo+ID4gDQo+ID4gVGhlIHJlYXNvbiBmb3Ig amlmZmllcyBub3QgY2hhbmdlcyBpcyB0aGVyZSdzIG5vIHRpbWVyIGludGVycnVwdA0KPiA+IHBh c3NlZCB0byBkdW1wLWNhcHR1cmUga2VybmVsLg0KPiA+IA0KPiA+IEluIGZhY3QsIG9uY2Uga2Vy bmVsIHBhbmljIG9jY3VycywgdGhlIGxvY2FsIEFQSUMgaXMgZGlzYWJsZWQNCj4gPiBieSBsYXBp Y19zaHV0ZG93bigpIGluIHJlYm9vdCBwYXRoLg0KPiA+IGdlbmVybHkgc3BlYWtpbmcsIGxvY2Fs IEFQSUMgc3RhdGUgY2FuIGJlIGluaXRpYWxpemVkIGJ5IEJJT1MNCj4gPiBhZnRlciBQb3dlci1V cCBvciBSZXNldCwgd2hpY2ggZG9lc24ndCBhcHBseSB0byBrZHVtcCBjYXNlLg0KPiA+IHNvIHRo ZSBrZXJuZWwgaGFzIHRvIGJlIHJlc3BvbnNpYmxlIGZvciBpbml0aWFsaXplIHRoZSBpbnRlcnJ1 cHQNCj4gPiBtb2RlIHByb3Blcmx5IGFjY29yZGluZyB0aGUgbGF0ZXN0IHN0YXR1cyBvZiBBUElD IGluIGJvb3R1cCBwYXRoLg0KPiA+IA0KPiA+IEFuIE1QIG9wZXJhdGluZyBzeXN0ZW0gaXMgYm9v dGVkIHVuZGVyIGVpdGhlciBQSUMgbW9kZSBvcg0KPiA+IHZpcnR1YWwgd2lyZSBtb2RlLiBMYXRl ciwgdGhlIG9wZXJhdGluZyBzeXN0ZW0gc3dpdGNoZXMgdG8NCj4gPiBzeW1tZXRyaWMgSS9PIG1v ZGUgYXMgaXQgZW50ZXJzIG11bHRpcHJvY2Vzc29yIG1vZGUuDQo+ID4gVHdvIGtpbmRzIG9mIHZp cnR1YWwgd2lyZSBtb2RlIGFyZSBkZWZpbmVkIGluIEludGVsIE1QIHNwZWM6DQo+ID4gdmlydHVh bCB3aXJlIG1vZGUgdmlhIGxvY2FsIEFQSUMgb3IgdmlhIEkvTyBBUElDLg0KPiA+IA0KPiA+IE5v dyB3ZSBkZXRlcm1pbmUgdGhlIG1vZGUgb2YgQVBJQyBvbmx5IHRocm91Z2ggYSBTTVAgQklPUyhN UCB0YWJsZSkuDQo+ID4gVGhhdCdzIG5vdCBlbm91Z2guDQo+ID4gSXQncyBiZXR0ZXIgdG8gZG8g ZnVydGhlciBjaGVjayBpZiBBUElDIHdvcmtzIHdpdGggZWZmZWN0aXZlIG1vZGUsDQo+ID4gYW5k IGRvIHNvbWUgcG9ycGVyIHNldHRpbmcuDQo+ID4gDQo+ID4gU2lnbmVkLW9mZi1ieTogQ2FvIGpp biA8Y2Fvai5mbnN0QGNuLmZ1aml0c3UuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFdlaSBKaWFu Z2FuZyA8d2VpamcuZm5zdEBjbi5mdWppdHN1LmNvbT4NCj4gPiAtLS0NCj4gPiAgYXJjaC94ODYv aW5jbHVkZS9hc20vaW9fYXBpYy5oIHwgIDUgKysrKw0KPiA+ICBhcmNoL3g4Ni9rZXJuZWwvYXBp Yy9hcGljLmMgICAgfCA1NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0NCj4gPiAgYXJjaC94ODYva2VybmVsL2FwaWMvaW9fYXBpYy5jIHwgMjggKysrKysrKysrKysr KysrKysrKysrDQo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pb19h cGljLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pb19hcGljLmgNCj4gPiBpbmRleCA2Y2JmMmNm YjNmOGEuLjY1NTBiZDQzZmEzOSAxMDA2NDQNCj4gPiAtLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2Fz bS9pb19hcGljLmgNCj4gPiArKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pb19hcGljLmgNCj4g PiBAQCAtMTkwLDYgKzE5MCw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGlvX2FwaWNf cmVhZCh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJlZykNCj4gPiAgfQ0KPiA+ICAN Cj4gPiAgZXh0ZXJuIHZvaWQgc2V0dXBfSU9fQVBJQyh2b2lkKTsNCj4gPiArZXh0ZXJuIGJvb2wg dmlydHVhbF93aXJlX3ZpYV9pb2FwaWModm9pZCk7DQo+ID4gIGV4dGVybiB2b2lkIGVuYWJsZV9J T19BUElDKHZvaWQpOw0KPiA+ICBleHRlcm4gdm9pZCBkaXNhYmxlX0lPX0FQSUModm9pZCk7DQo+ ID4gIGV4dGVybiB2b2lkIHNldHVwX2lvYXBpY19kZXN0KHZvaWQpOw0KPiA+IEBAIC0yMzEsNiAr MjMyLDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpb19hcGljX2luaXRfbWFwcGluZ3Modm9pZCkg eyB9DQo+ID4gICNkZWZpbmUgbmF0aXZlX2Rpc2FibGVfaW9fYXBpYwkJTlVMTA0KPiA+ICANCj4g PiAgc3RhdGljIGlubGluZSB2b2lkIHNldHVwX0lPX0FQSUModm9pZCkgeyB9DQo+ID4gK3N0YXRp YyBpbmxpbmUgYm9vbCB2aXJ0dWFsX3dpcmVfdmlhX2lvYXBpYyh2b2lkKQ0KPiA+ICt7DQo+ID4g KwlyZXR1cm4gdHJ1ZTsNCj4gPiArfQ0KPiA+ICBzdGF0aWMgaW5saW5lIHZvaWQgZW5hYmxlX0lP X0FQSUModm9pZCkgeyB9DQo+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF9pb2FwaWNfZGVz dCh2b2lkKSB7IH0NCj4gPiAgDQo+ID4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hcGlj L2FwaWMuYyBiL2FyY2gveDg2L2tlcm5lbC9hcGljL2FwaWMuYw0KPiA+IGluZGV4IDhlMjViOWIy ZDM1MS4uMDQzNThlMGNmMWUyIDEwMDY0NA0KPiA+IC0tLSBhL2FyY2gveDg2L2tlcm5lbC9hcGlj L2FwaWMuYw0KPiA+ICsrKyBiL2FyY2gveDg2L2tlcm5lbC9hcGljL2FwaWMuYw0KPiA+IEBAIC0x MTI0LDYgKzExMjQsNTMgQEAgdm9pZCBfX2luaXQgc3luY19BcmJfSURzKHZvaWQpDQo+ID4gIH0N Cj4gPiAgDQo+ID4gIC8qDQo+ID4gKyAqIFJldHVybiBmYWxzZSBtZWFucyB0aGUgdmlydHVhbCB3 aXJlIG1vZGUgdGhyb3VnaC1sb2NhbC1hcGljIGlzIGluYWN0aXZlDQo+ID4gKyAqLw0KPiA+ICtz dGF0aWMgYm9vbCB2aXJ0dWFsX3dpcmVfdmlhX2xhcGljKHZvaWQpDQo+ID4gK3sNCj4gPiArCXVu c2lnbmVkIGludCB2YWx1ZTsNCj4gPiArDQo+ID4gKwkvKiBDaGVjayB0aGUgQVBJQyBnbG9iYWwg ZW5hYmxlL2Rpc2FibGUgZmxhZyBmaXJzdGx5ICovDQo+ID4gKwlpZiAoYm9vdF9jcHVfZGF0YS54 ODYgPj0gNikgew0KPiA+ICsJCXUzMiBoLCBsOw0KPiA+ICsNCj4gPiArCQlyZG1zcihNU1JfSUEz Ml9BUElDQkFTRSwgbCwgaCk7DQo+ID4gKwkJLyoNCj4gPiArCQkgKiBJZiBsb2NhbCBBUElDIGlz IGRpc2FibGVkIGJ5IEJJT1MNCj4gPiArCQkgKiBkbyBub3RoaW5nLCBidXQgcmV0dXJuIHRydWUN Cj4gPiArCQkgKi8NCj4gPiArCQlpZiAoIShsICYgTVNSX0lBMzJfQVBJQ0JBU0VfRU5BQkxFKSkN Cj4gPiArCQkJcmV0dXJuIHRydWU7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJLyogQ2hlY2sgdGhl IHNvZnR3YXJlIGVuYWJsZS9kaXNhYmxlIGZsYWcgKi8NCj4gPiArCXZhbHVlID0gYXBpY19yZWFk KEFQSUNfU1BJVik7DQo+ID4gKwlpZiAoISh2YWx1ZSAmIEFQSUNfU1BJVl9BUElDX0VOQUJMRUQp KQ0KPiA+ICsJCXJldHVybiBmYWxzZTsNCj4gPiArDQo+ID4gKwkvKg0KPiA+ICsJICogVmlydHVh bCB3aXJlIG1vZGUgdmlhIGxvY2FsIEFQSUMgcmVxdWVzdHMNCj4gPiArCSAqIEFQSUMgdG8gZW5h YmxlIHRoZSBMSU5UMCBmb3IgZWRnZS10cmdnZXJlZCBFeHRJTlQgZGVsaXZlcnkgbW9kZQ0KPiA+ ICsJICogYW5kIExJTlQxIGZvciBsZXZlbC10cmlnZ2VyZWQgTk1JIGRlbGl2ZXJ5IG1vZGUNCj4g PiArCSAqLw0KPiA+ICsJdmFsdWUgPSBhcGljX3JlYWQoQVBJQ19MVlQwKTsNCj4gPiArCWlmIChH RVRfQVBJQ19ERUxJVkVSWV9NT0RFKHZhbHVlKSAhPSBBUElDX01PREVfRVhUSU5UKQ0KPiA+ICsJ CXJldHVybiBmYWxzZTsNCj4gPiArDQo+ID4gKwl2YWx1ZSA9IGFwaWNfcmVhZChBUElDX0xWVDEp Ow0KPiA+ICsJaWYgKEdFVF9BUElDX0RFTElWRVJZX01PREUodmFsdWUpICE9IEFQSUNfTU9ERV9O TUkpDQo+ID4gKwkJcmV0dXJuIGZhbHNlOw0KPiA+ICsNCj4gPiArCXJldHVybiB0cnVlOw0KPiA+ ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgYm9vbCBjaGVja192aXJ0dWFsX3dpcmVfbW9kZSh2b2lk KQ0KPiA+ICt7DQo+ID4gKwkvKiBOZWl0aGVyIG9mIHZpcnR1YWwgd2lyZSBtb2RlIGlzIGFjdGl2 ZSwgcmV0dXJuIGZhbHNlICovDQo+ID4gKwlyZXR1cm4gIHZpcnR1YWxfd2lyZV92aWFfbGFwaWMo KSB8fCB2aXJ0dWFsX3dpcmVfdmlhX2lvYXBpYygpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKg0K PiA+ICAgKiBBbiBpbml0aWFsIHNldHVwIG9mIHRoZSB2aXJ0dWFsIHdpcmUgbW9kZS4NCj4gPiAg ICovDQo+ID4gIHZvaWQgX19pbml0IGluaXRfYnNwX0FQSUModm9pZCkNCj4gPiBAQCAtMTEzMyw4 ICsxMTgwLDE0IEBAIHZvaWQgX19pbml0IGluaXRfYnNwX0FQSUModm9pZCkNCj4gPiAgCS8qDQo+ ID4gIAkgKiBEb24ndCBkbyB0aGUgc2V0dXAgbm93IGlmIHdlIGhhdmUgYSBTTVAgQklPUyBhcyB0 aGUNCj4gPiAgCSAqIHRocm91Z2gtSS9PLUFQSUMgdmlydHVhbCB3aXJlIG1vZGUgbWlnaHQgYmUg YWN0aXZlLg0KPiA+ICsJICoNCj4gPiArCSAqIEl0J3MgYmV0dGVyIHRvIGRvIGZ1cnRoZXIgY2hl Y2sgaWYgZWl0aGVyIHRocm91Z2gtSS9PLUFQSUMNCj4gPiArCSAqIG9yIHRocm91Z2gtbG9jYWwt QVBJQyBpcyBhY3RpdmUuDQo+ID4gKwkgKiB0aGUgd29yc3QgY2FzZSBpcyB0aGF0IGJvdGggb2Yg dGhlbSBhcmUgaW5hY3RpdmUsDQo+ID4gKwkgKiBJZiBzbywgV2UgbmVlZCB0byBlbmFibGUgdGhl IHZpcnR1YWwgd2lyZSBtb2RlIHZpYSB0aHJvdWdoLWxvY2FsLUFQSUMNCj4gPiAgCSAqLw0KPiA+ IC0JaWYgKHNtcF9mb3VuZF9jb25maWcgfHwgIWJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BUElD KSkNCj4gPiArCWlmICgoc21wX2ZvdW5kX2NvbmZpZyAmJiBjaGVja192aXJ0dWFsX3dpcmVfbW9k ZSgpKSB8fA0KPiA+ICsJCSFib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVBJQykpDQo+ID4gIAkJ cmV0dXJuOw0KPiA+ICANCj4gPiAgCS8qDQo+ID4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5l bC9hcGljL2lvX2FwaWMuYyBiL2FyY2gveDg2L2tlcm5lbC9hcGljL2lvX2FwaWMuYw0KPiA+IGlu ZGV4IDQ0NjcwMmVkOTlkYy4uNWEzMmMyNjkzOGFjIDEwMDY0NA0KPiA+IC0tLSBhL2FyY2gveDg2 L2tlcm5lbC9hcGljL2lvX2FwaWMuYw0KPiA+ICsrKyBiL2FyY2gveDg2L2tlcm5lbC9hcGljL2lv X2FwaWMuYw0KPiA+IEBAIC0xMzc5LDYgKzEzNzksMzQgQEAgdm9pZCBfX2luaXQgcHJpbnRfSU9f QVBJQ3Modm9pZCkNCj4gPiAgLyogV2hlcmUgaWYgYW55d2hlcmUgaXMgdGhlIGk4MjU5IGNvbm5l Y3QgaW4gZXh0ZXJuYWwgaW50IG1vZGUgKi8NCj4gPiAgc3RhdGljIHN0cnVjdCB7IGludCBwaW4s IGFwaWM7IH0gaW9hcGljX2k4MjU5ID0geyAtMSwgLTEgfTsNCj4gPiAgDQo+ID4gKy8qDQo+ID4g KyAqIFJldHVybiBmYWxzZSBtZWFucyB0aGUgdmlydHVhbCB3aXJlIG1vZGUgdmlhIEkvTyBBUElD IGlzIGluYWN0aXZlDQo+ID4gKyAqLw0KPiA+ICtib29sIHZpcnR1YWxfd2lyZV92aWFfaW9hcGlj KHZvaWQpDQo+ID4gK3sNCj4gPiArCWludCBhcGljLCBwaW47DQo+ID4gKw0KPiA+ICsJZm9yX2Vh Y2hfaW9hcGljX3BpbihhcGljLCBwaW4pIHsNCj4gPiArCQkvKiBTZWUgaWYgYW55IG9mIHRoZSBw aW5zIGlzIGluIEV4dElOVCBtb2RlICovDQo+ID4gKwkJc3RydWN0IElPX0FQSUNfcm91dGVfZW50 cnkgZW50cnkgPSBpb2FwaWNfcmVhZF9lbnRyeShhcGljLCBwaW4pOw0KPiA+ICsNCj4gPiArCQkv Kg0KPiA+ICsJCSAqIElmIHRoZSBpbnRlcnJ1cHQgbGluZSBpcyBlbmFibGVkIGFuZCBpbiBFeHRJ bnQgbW9kZQ0KPiA+ICsJCSAqIEkgaGF2ZSBmb3VuZCB0aGUgcGluIHdoZXJlIHRoZSBpODI1OSBp cyBjb25uZWN0ZWQuDQo+ID4gKwkJICovDQo+ID4gKwkJaWYgKChlbnRyeS5tYXNrID09IDApICYm IChlbnRyeS5kZWxpdmVyeV9tb2RlID09IGRlc3RfRXh0SU5UKSkNCj4gPiArCQkJcmV0dXJuIHRy dWU7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJLyoNCj4gPiArCSAqIFZpcnR1YWwgd2lyZSBtb2Rl IHZpYSBJL08gQVBJQyByZXF1ZXN0cw0KPiA+ICsJICogSS9PIEFQSUMgYmUgY29ubmVjdGVkIHRv IGk4MjU5IGluIGNoYXB0ZXIgMy42LjIuMiBvZiB0aGUgTVAgdjEuNCBzcGVjDQo+ID4gKwkgKiBJ ZiBubyBwaW4gaW4gRXh0SW50IG1vZGUsDQo+ID4gKwkgKiB0aGUgdGhyb3VnaC1JL08tQVBJQyB2 aXJ0dWFsIHdpcmUgbW9kZSBjYW4gYmUgcmVnYXJkZWQgaW5hY3RpdmUuDQo+ID4gKwkgKi8NCj4g PiArCXJldHVybiBmYWxzZTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgdm9pZCBfX2luaXQgZW5hYmxl X0lPX0FQSUModm9pZCkNCj4gPiAgew0KPiA+ICAJaW50IGk4MjU5X2FwaWMsIGk4MjU5X3BpbjsN Cj4gPiAtLSANCj4gPiAxLjkuMw0KPiA+IA0KPiA+IA0KPiA+IA0KPiANCj4gDQoNCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Ka2V4ZWMgbWFpbGluZyBs aXN0CmtleGVjQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9rZXhlYwo=