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 1bRxN8-0004Zk-Nw for kexec@lists.infradead.org; Tue, 26 Jul 2016 08:05:54 +0000 From: "Wei, Jiangang" Subject: Re: [PATCH v2 3/3] x86/apic: Improved the setting of interrupt mode for bsp Date: Tue, 26 Jul 2016 08:05:20 +0000 Message-ID: <1469520148.7811.54.camel@localhost> References: <1469501995-2991-1-git-send-email-weijg.fnst@cn.fujitsu.com> <1469501995-2991-4-git-send-email-weijg.fnst@cn.fujitsu.com> <87k2g92gxb.fsf@x220.int.ebiederm.org> In-Reply-To: <87k2g92gxb.fsf@x220.int.ebiederm.org> Content-Language: en-US Content-ID: 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: "ebiederm@xmission.com" Cc: "bhe@redhat.com" , "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" , "hpa@zytor.com" , "tglx@linutronix.de" SGkgRXJpYywNCg0KVGhhbmtzIGZvciB5b3VyIHJlc3BvbnNlLg0KQnV0IEkgaGF2ZSBzb21lIGRp ZmZlcmVudCBpZGVhcy4uLg0KDQpPbiBNb24sIDIwMTYtMDctMjUgYXQgMjI6NTMgLTA1MDAsIEVy aWMgVy4gQmllZGVybWFuIHdyb3RlOg0KPiBXZWkgSmlhbmdhbmcgPHdlaWpnLmZuc3RAY24uZnVq aXRzdS5jb20+IHdyaXRlczoNCj4gDQo+ID4gSWYgd2Ugc3BlY2lmeSB0aGUgJ25vdHNjJyBwYXJh bWV0ZXIgZm9yIHRoZSBkdW1wLWNhcHR1cmUga2VybmVsLA0KPiA+IGFuZCB0aGVuIHRyaWdnZXIg YSBjcmFzaChwYW5pYykgYnkgdXNpbmcgIkFMVC1TeXNScS1jIiBvcg0KPiA+ICJlY2hvIGMgPiAv cHJvYy9zeXNycS10cmlnZ2VyIiwgdGhlIGR1bXAtY2FwdHVyZSBrZXJuZWwgd2lsbA0KPiA+IGhh bmcgaW4gY2FsaWJyYXRlX2RlbGF5X2NvbnZlcmdlKCkgYW5kIHdhaXQgZm9yIGppZmZpZXMgY2hh bmdlcy4NCj4gPiBzZXJpYWwgbG9nIGFzIGZvbGxvd3M6DQo+ID4NCj4gPiAgICAgdHNjOiBGYXN0 IFRTQyBjYWxpYnJhdGlvbiB1c2luZyBQSVQNCj4gPiAgICAgdHNjOiBEZXRlY3RlZCAyMDk5Ljk0 NyBNSHogcHJvY2Vzc29yDQo+ID4gICAgIENhbGlicmF0aW5nIGRlbGF5IGxvb3AuLi4NCj4gPg0K PiA+IFRoZSByZWFzb24gZm9yIGppZmZpZXMgbm90IGNoYW5nZXMgaXMgdGhlcmUncyBubyB0aW1l ciBpbnRlcnJ1cHQNCj4gPiBwYXNzZWQgdG8gZHVtcC1jYXB0dXJlIGtlcm5lbC4NCj4gPg0KPiA+ IEluIGZhY3QsIG9uY2Uga2VybmVsIHBhbmljIG9jY3VycywgdGhlIGxvY2FsIEFQSUMgaXMgZGlz YWJsZWQNCj4gPiBieSBsYXBpY19zaHV0ZG93bigpIGluIHJlYm9vdCBwYXRoLg0KPiA+IGdlbmVy bHkgc3BlYWtpbmcsIGxvY2FsIEFQSUMgc3RhdGUgY2FuIGJlIGluaXRpYWxpemVkIGJ5IEJJT1MN Cj4gPiBhZnRlciBQb3dlci1VcCBvciBSZXNldCwgd2hpY2ggZG9lc24ndCBhcHBseSB0byBrZHVt cCBjYXNlLg0KPiA+IHNvIHRoZSBrZXJuZWwgaGFzIHRvIGJlIHJlc3BvbnNpYmxlIGZvciBpbml0 aWFsaXplIHRoZSBpbnRlcnJ1cHQNCj4gPiBtb2RlIHByb3Blcmx5IGFjY29yZGluZyB0aGUgbGF0 ZXN0IHN0YXR1cyBvZiBBUElDIGluIGJvb3R1cCBwYXRoLg0KPiA+DQo+ID4gQW4gTVAgb3BlcmF0 aW5nIHN5c3RlbSBpcyBib290ZWQgdW5kZXIgZWl0aGVyIFBJQyBtb2RlIG9yDQo+ID4gdmlydHVh bCB3aXJlIG1vZGUuIExhdGVyLCB0aGUgb3BlcmF0aW5nIHN5c3RlbSBzd2l0Y2hlcyB0bw0KPiA+ IHN5bW1ldHJpYyBJL08gbW9kZSBhcyBpdCBlbnRlcnMgbXVsdGlwcm9jZXNzb3IgbW9kZS4NCj4g PiBUd28ga2luZHMgb2YgdmlydHVhbCB3aXJlIG1vZGUgYXJlIGRlZmluZWQgaW4gSW50ZWwgTVAg c3BlYzoNCj4gPiB2aXJ0dWFsIHdpcmUgbW9kZSB2aWEgbG9jYWwgQVBJQyBvciB2aWEgSS9PIEFQ SUMuDQo+ID4NCj4gPiBOb3cgd2UgZGV0ZXJtaW5lIHRoZSBtb2RlIG9mIEFQSUMgb25seSB0aHJv dWdoIGEgU01QIEJJT1MoTVAgdGFibGUpLg0KPiA+IFRoYXQncyBub3QgZW5vdWdoLiBJdCdzIGJl dHRlciB0byBkbyBmdXJ0aGVyIGNoZWNrIGlmIEFQSUMgd29ya3MNCj4gPiB3aXRoIGVmZmVjdGl2 ZSBpbnRlcnJ1cHQgbW9kZSwgYW5kIHRoZW4sIGRvIHNvbWUgcHJvcGVyIHNldHRpbmcuDQo+IA0K PiBSZWFkaW5nIHRocm91Z2ggdGhlIGNvZGUgbGV0IG1lIHBhdXNlIGEgbW9tZW50IGFuZCBzYXk6 DQo+ICJZb3d6ZXJzIHRoZSBpbnRlcnJ1cHQgaW5pdGlhbGl6YXRpb24gY29kZSBoYXMgZ290dGVu IGhhcmQgdG8gZm9sbG93LiAgSXQNCj4gaXMgbm93IGZ1bGwgb2YgaW5kaXJlY3Rpb24gd2l0aCBp bGwgZGVmaW5lZCBzZW1hbnRpY3MuIiAgcHJlX3ZlY3Rvcl9pbml0DQo+IGluZGVlZC4NCj4gDQo+ IEkgd2lsbCBhcmd1ZSB0aGlzIGlzIHRoZSB3cm9uZyBmaXguDQo+IA0KPiBXZSByZWFsbHkgc2hv dWxkIG5vdCBoYXZlIHRvIHdvcnJ5IGFib3V0IGdldHRpbmcgdGhlIHN5c3RlbSBmdW5jdGlvbmFs DQo+IGluIHZpcnR1YWwgd2lyZSBtb2RlIG9uIGEgbW9kZXJuIHN5c3RlbS4gIEFuZCBsb29raW5n IGF0IHRoZSBjb2RlDQo+IHNvbWVvbmUgaGFzIGRvbmUgaGFsZiB0aGUgd29yayBhbmQgbWFkZSBp dCBjb25kaXRpb25hbCB1bmRlcg0KPiBhY3BpX2dibF9yZWR1Y2VkX2hhcmR3YXJlLg0KPiANCj4g Tm93IHJlZHVjZWQgaGFyZHdhcmUgaW1wbGllcyBhIGJpdCBtb3JlIHRoYW4gd2Ugd2FyZSB0YWxr aW5nIGFib3V0IGJ1dA0KPiBpZiB0aGVyZSBpcyBBQ1BJIGFwaWMgaW5mb3JtYXRpb24gd2Ugc2hv dWxkIG5vdCBuZWVkIHRvIHdvcnJ5IGFib3V0DQo+IGV4dGVybmFsIGludGVycnVwdHMgYW5kIGNh biBqdXN0IGVuYWJsZSB0aGUgYXBpY3MuDQo+IA0KPiBJbiBmYWN0IEkgdGhpbmsgaGF2aW5nIE1Q dGFibGUgaW5mb3JtYXRpb24gaXMgZW5vdWdoIGZvciB0aGF0Lg0KDQpJbiBteSBvcGluaW9uLCBU aGUgTVAgdGFibGUgaXMgbm90IHRvIGJlIHRydXN0ZWQgaWYgc3lzdGVtIHN0YXJ0cw0Kd2l0aG91 dCBCSU9TIHBocmFzZS4gDQoNClRoZSBjaGFwdGVyIDMuOCBTeXN0ZW0gSW5pdGlhbCBTdGF0ZSAo TVAgdjEuNCBzcGVjKSBzYWlkIGJlbG93Og0KIjEuIEFsbCBsb2NhbCBBUElDcyBhcmUgZGlzYWJs ZWQsIGV4Y2VwdCBmb3IgdGhlIGxvY2FsIEFQSUMgb2YgdGhlIEJTUA0KaWYgdGhlIHN5c3RlbSBz dGFydHMgaW4gVmlydHVhbCBXaXJlIE1vZGUuIg0KDQpBbmQNCi4uLi4uDQoiVGhlIEJJT1MgbXVz dCBkaXNhYmxlIGludGVycnVwdHMgdG8gYWxsIHByb2Nlc3NvcnMgYW5kIHNldCB0aGUgQVBJQ3Mg dG8NCnRoZSBzeXN0ZW0gaW5pdGlhbCBzdGF0ZSBiZWZvcmUgZ2l2aW5nIGNvbnRyb2wgdG8gdGhl IG9wZXJhdGluZyBzeXN0ZW0uDQpUaGUgb3BlcmF0aW5nIHN5c3RlbSBpcyByZXNwb25zaWJsZSBm b3IgaW5pdGlhbGl6aW5nIGFsbCBvZiB0aGUgQVBJQ3MiDQoNClRoZSBkdW1wLWNhcHR1cmUga2Vy bmVsIHdvbid0IHRocm91Z2ggdGhlIEJJT1MgcGhyYXNlLA0Kc28gdGhlcmUgaXMgbm8gZ3VhcmFu dGVlIG9mIHRoZSBpbnRlcnJ1cHQgbW9kZSBvZiBBUElDIGFuZCB0aGUgc3RhdHVzIG9mDQpsb2Nh bCBBUElDLg0KDQpBbHRob3VnaCB0aGUgTVAgdGFibGUgaXMgcmVhZC1vbmx5LA0KdGhlIGR1bXAt Y2FwdHVyZSBrZXJuZWwgdXNlcyB0aGUgTVAgdGFibGUgd2hpY2ggYmUgZ2VuZXJhdGVkIGJlZm9y ZSB0aGUNCmZpcnN0IGtlcm5lbCBib290cyB1cCBpcyB1bnJlYXNvbmFibGUuIA0KQXQgbGVhc3Qs IG9ubHkgY2hlY2tpbmcgTVAgdGFibGUgaXMgbm90IGVub3VnaC4NClRoYXQncyB0aGUgc3RhcnRp bmcgcG9pbnQgb2YgbXkgcGF0Y2guDQoNCllvdSBzYWlkIOKAnHRoaXMgaXMgdGhlIHdyb25nIGZp eOKAnSwgDQpJcyB0aGVyZSBhbnkgd3Jvbmcgd2l0aCB0aGUgY29kZXMgb3IgbXkgc29sdXRpb24g dG8gY2hlY2sgdGhlIHN0YXR1cyBvZg0KQVBJQyBpbiBib290dXAgcGF0aD8NCg0KDQo+IFNvIEkg dGhpbmsgd2hhdCBuZWVkcyB0byBoYXBwZW5zIGlzIGZvciB0aGUgYXBpYyBpbml0aWFsaXphdGlv biB0byBnZXQNCj4gYW4gb3ZlcmhhdWwgdGhhdCBtYWtlcyBhcGljIGluaXRpYWxpemF0aW9uIHRo ZSBoYXBweSBwYXRoIGFuZCB0aGUgb3RoZXINCj4gaXJxIGNvbnRyb2xsZXJzIHRoZSBvZGQgYmFj a3dhcmRzIGNvbXBhdGliaWxpdHkgcGF0aC4gIEFuZCB3aGVuIHdlDQo+IGFyZSBkb25lIHdlIG5l dmVyIHJ1biBpbiBhbnl0aGluZyBleGNlcHQgZnVsbCBhcGljIG1vZGUgdW5sZXNzIHRoZQ0KPiBo YXJkd2FyZSBkb2Vzbid0IHN1cHBvcnQgaXQuDQpUaGUgc3BlYyByZXF1ZXN0cyAiQW4gTVAgb3Bl cmF0aW5nIHN5c3RlbSBpcyBib290ZWQgdW5kZXIgZWl0aGVyIG9uZSBvZg0KdGhlIHR3byBQQy9B VC1jb21wYXRpYmxlIG1vZGVzLiBMYXRlciB0aGUgb3BlcmF0aW5nIHN5c3RlbSBzd2l0Y2hlcyB0 bw0KU3ltbWV0cmljIEkvTyBNb2RlIGFzIGl0IGVudGVycyBtdWx0aXByb2Nlc3NvciBtb2RlLiIN CkFuZCBpdCBzZWVtcyB0aGF0IHRoZSBsYXRlc3Qga2VybmVsIGZvbGxvd3MgdGhlIHJ1bGUuDQpE b2VzIHRoZSBhcGljIGluaXRpYWxpemF0aW9uIHJlYWxseSBuZWVkIHRvIGJlIGNoYW5nZWQ/DQoN ClRoYW5rcywNCndlaQ0KPiANCj4gSSB0aGluayB0aGF0IHdpbGwgbGVhdmUgdGhpbmdzIG1vcmUg cm9idXN0IGFzIHdlIGRvbid0IG5lZWQgdG8gc2V0dXANCj4gYW5kIHRoZW4gcmVzZXQgdXAgdGhl IGludGVycnVwdHMgZHVyaW5nIGJvb3QuDQo+IA0KPiBFcmljDQo+IA0KPiANCj4gPiBTaWduZWQt b2ZmLWJ5OiBDYW8gamluIDxjYW9qLmZuc3RAY24uZnVqaXRzdS5jb20+DQo+ID4gU2lnbmVkLW9m Zi1ieTogV2VpIEppYW5nYW5nIDx3ZWlqZy5mbnN0QGNuLmZ1aml0c3UuY29tPg0KPiA+IC0tLQ0K PiA+ICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9pb19hcGljLmggfCAgNSArKysrDQo+ID4gIGFyY2gv eDg2L2tlcm5lbC9hcGljL2FwaWMuYyAgICB8IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQ0KPiA+ICBhcmNoL3g4Ni9rZXJuZWwvYXBpYy9pb19hcGljLmMgfCAy OCArKysrKysrKysrKysrKysrKysrKw0KPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDkyIGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9pb19hcGljLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pb19hcGljLmgNCj4gPiBp bmRleCA2Y2JmMmNmYjNmOGEuLmEzMjU3MzY2YmY3ZiAxMDA2NDQNCj4gPiAtLS0gYS9hcmNoL3g4 Ni9pbmNsdWRlL2FzbS9pb19hcGljLmgNCj4gPiArKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9p b19hcGljLmgNCj4gPiBAQCAtMTkwLDYgKzE5MCw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQg aW50IGlvX2FwaWNfcmVhZCh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJlZykNCj4g PiAgfQ0KPiA+ICANCj4gPiAgZXh0ZXJuIHZvaWQgc2V0dXBfSU9fQVBJQyh2b2lkKTsNCj4gPiAr ZXh0ZXJuIGJvb2wgdmlydF93aXJlX3Rocm91Z2hfaW9hcGljKHZvaWQpOw0KPiA+ICBleHRlcm4g dm9pZCBlbmFibGVfSU9fQVBJQyh2b2lkKTsNCj4gPiAgZXh0ZXJuIHZvaWQgZGlzYWJsZV9JT19B UElDKHZvaWQpOw0KPiA+ICBleHRlcm4gdm9pZCBzZXR1cF9pb2FwaWNfZGVzdCh2b2lkKTsNCj4g PiBAQCAtMjMxLDYgKzIzMiwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW9fYXBpY19pbml0X21h cHBpbmdzKHZvaWQpIHsgfQ0KPiA+ICAjZGVmaW5lIG5hdGl2ZV9kaXNhYmxlX2lvX2FwaWMJCU5V TEwNCj4gPiAgDQo+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF9JT19BUElDKHZvaWQpIHsg fQ0KPiA+ICtzdGF0aWMgaW5saW5lIGJvb2wgdmlydF93aXJlX3Rocm91Z2hfaW9hcGljKHZvaWQp DQo+ID4gK3sNCj4gPiArCXJldHVybiBmYWxzZTsNCj4gPiArfQ0KPiA+ICBzdGF0aWMgaW5saW5l IHZvaWQgZW5hYmxlX0lPX0FQSUModm9pZCkgeyB9DQo+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZCBz ZXR1cF9pb2FwaWNfZGVzdCh2b2lkKSB7IH0NCj4gPiAgDQo+ID4gZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2tlcm5lbC9hcGljL2FwaWMuYyBiL2FyY2gveDg2L2tlcm5lbC9hcGljL2FwaWMuYw0KPiA+ IGluZGV4IDhlMjViOWIyZDM1MS4uYTM5MzlmYjEzMGNjIDEwMDY0NA0KPiA+IC0tLSBhL2FyY2gv eDg2L2tlcm5lbC9hcGljL2FwaWMuYw0KPiA+ICsrKyBiL2FyY2gveDg2L2tlcm5lbC9hcGljL2Fw aWMuYw0KPiA+IEBAIC0xMTI0LDYgKzExMjQsNTggQEAgdm9pZCBfX2luaXQgc3luY19BcmJfSURz KHZvaWQpDQo+ID4gIH0NCj4gPiAgDQo+ID4gIC8qDQo+ID4gKyAqIENoZWNrIEFQSUMgZW5hYmxl L2Rpc2FibGUgZmxhZw0KPiA+ICsgKi8NCj4gPiArc3RhdGljIGJvb2wgY2hlY2tfYXBpY19lbmFi bGVkKHZvaWQpDQo+ID4gK3sNCj4gPiArCXVuc2lnbmVkIGludCB2YWx1ZTsNCj4gPiArDQo+ID4g KwkvKg0KPiA+ICsJICogSWYgQVBJQyBpcyBkaXNhYmxlZCBnbG9iYWxseSAoSUEzMl9BUElDX0JB U0VbMTFdID09IDApDQo+ID4gKwkgKiB0aGUgYm9vdCBjcHUgaGFzbid0IFg4Nl9GRUFUVVJFX0FQ SUMsDQo+ID4gKwkgKiBhbmQgaW5pdF9ic3BfQVBJQygpIGhhcyBhbHJlYWR5IGNoZWNrZWQgaXQg YmVmb3JlLg0KPiA+ICsJICogc28gbm8gbmVlZCB0byBjaGVjayBnbG9iYWwgZW5hYmxlL2Rpc2Fi bGUgZmxhZyBoZXJlDQo+ID4gKwkgKi8NCj4gPiArDQo+ID4gKwkvKiBDaGVjayB0aGUgc29mdHdh cmUgZW5hYmxlL2Rpc2FibGUgZmxhZyAqLw0KPiA+ICsJdmFsdWUgPSBhcGljX3JlYWQoQVBJQ19T UElWKTsNCj4gPiArCWlmICghKHZhbHVlICYgQVBJQ19TUElWX0FQSUNfRU5BQkxFRCkpDQo+ID4g KwkJcmV0dXJuIGZhbHNlOw0KPiA+ICsNCj4gPiArCXJldHVybiB0cnVlOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICsvKg0KPiA+ICsgKiBSZXR1cm4gZmFsc2UgbWVhbnMgdGhlIHRocm91Z2gtbG9jYWwt QVBJQyB2aXJ0dWFsIHdpcmUgbW9kZSBpcyBpbmFjdGl2ZQ0KPiA+ICsgKi8NCj4gPiArc3RhdGlj IGJvb2wgdmlydF93aXJlX3Rocm91Z2hfbGFwaWModm9pZCkNCj4gPiArew0KPiA+ICsJdW5zaWdu ZWQgaW50IHZhbHVlOw0KPiA+ICsNCj4gPiArCS8qDQo+ID4gKwkgKiBUaGUgdGhyb3VnaC1sb2Nh bC1BUElDIHZpcnR1YWwgd2lyZSBtb2RlIHJlcXVlc3RzDQo+ID4gKwkgKiBsb2NhbCBBUElDIHRv IGVuYWJsZSBMSU5UMCBmb3IgRXh0SU5UIGRlbGl2ZXJ5IG1vZGUNCj4gPiArCSAqIGFuZCBMSU5U MSBmb3IgTk1JIGRlbGl2ZXJ5IG1vZGUNCj4gPiArCSAqLw0KPiA+ICsJdmFsdWUgPSBhcGljX3Jl YWQoQVBJQ19MVlQwKTsNCj4gPiArCWlmIChHRVRfQVBJQ19ERUxJVkVSWV9NT0RFKHZhbHVlKSAh PSBBUElDX01PREVfRVhUSU5UKQ0KPiA+ICsJCXJldHVybiBmYWxzZTsNCj4gPiArDQo+ID4gKwl2 YWx1ZSA9IGFwaWNfcmVhZChBUElDX0xWVDEpOw0KPiA+ICsJaWYgKEdFVF9BUElDX0RFTElWRVJZ X01PREUodmFsdWUpICE9IEFQSUNfTU9ERV9OTUkpDQo+ID4gKwkJcmV0dXJuIGZhbHNlOw0KPiA+ ICsNCj4gPiArCXJldHVybiB0cnVlOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgYm9vbCBj aGVja192aXJ0X3dpcmVfbW9kZSh2b2lkKQ0KPiA+ICt7DQo+ID4gKwkvKiBJZiBuZWl0aGVyIG9m IHZpcnR1YWwgd2lyZSBtb2RlIGlzIGFjdGl2ZSwgcmV0dXJuIGZhbHNlICovDQo+ID4gKwlyZXR1 cm4gKGNoZWNrX2FwaWNfZW5hYmxlZCgpICYmICh2aXJ0X3dpcmVfdGhyb3VnaF9sYXBpYygpIHx8 DQo+ID4gKwkJdmlydF93aXJlX3Rocm91Z2hfaW9hcGljKCkpKTsNCj4gPiArfQ0KPiA+ICsNCj4g PiArLyoNCj4gPiAgICogQW4gaW5pdGlhbCBzZXR1cCBvZiB0aGUgdmlydHVhbCB3aXJlIG1vZGUu DQo+ID4gICAqLw0KPiA+ICB2b2lkIF9faW5pdCBpbml0X2JzcF9BUElDKHZvaWQpDQo+ID4gQEAg LTExMzMsOCArMTE4NSwxNCBAQCB2b2lkIF9faW5pdCBpbml0X2JzcF9BUElDKHZvaWQpDQo+ID4g IAkvKg0KPiA+ICAJICogRG9uJ3QgZG8gdGhlIHNldHVwIG5vdyBpZiB3ZSBoYXZlIGEgU01QIEJJ T1MgYXMgdGhlDQo+ID4gIAkgKiB0aHJvdWdoLUkvTy1BUElDIHZpcnR1YWwgd2lyZSBtb2RlIG1p Z2h0IGJlIGFjdGl2ZS4NCj4gPiArCSAqDQo+ID4gKwkgKiBJdCdzIGJldHRlciB0byBkbyBmdXJ0 aGVyIGNoZWNrIGlmIGVpdGhlciB0aHJvdWdoLUkvTy1BUElDDQo+ID4gKwkgKiBvciB0aHJvdWdo LWxvY2FsLUFQSUMgaXMgYWN0aXZlLg0KPiA+ICsJICogdGhlIHdvcnN0IGNhc2UgaXMgdGhhdCBi b3RoIG9mIHRoZW0gYXJlIGluYWN0aXZlLCBJZiBzbywNCj4gPiArCSAqIHdlIG5lZWQgdG8gZW5h YmxlIHRoZSB0aHJvdWdoLWxvY2FsLUFQSUMgdmlydHVhbCB3aXJlIG1vZGUNCj4gPiAgCSAqLw0K PiA+IC0JaWYgKHNtcF9mb3VuZF9jb25maWcgfHwgIWJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9B UElDKSkNCj4gPiArCWlmIChwaWNfbW9kZSB8fCAhYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FQ SUMpIHx8DQo+ID4gKwkgICAgKHNtcF9mb3VuZF9jb25maWcgJiYgY2hlY2tfdmlydF93aXJlX21v ZGUoKSkpDQo+ID4gIAkJcmV0dXJuOw0KPiA+ICANCj4gPiAgCS8qDQo+ID4gZGlmZiAtLWdpdCBh L2FyY2gveDg2L2tlcm5lbC9hcGljL2lvX2FwaWMuYyBiL2FyY2gveDg2L2tlcm5lbC9hcGljL2lv X2FwaWMuYw0KPiA+IGluZGV4IDQ0NjcwMmVkOTlkYy4uZjc5NGQzODliYTg1IDEwMDY0NA0KPiA+ IC0tLSBhL2FyY2gveDg2L2tlcm5lbC9hcGljL2lvX2FwaWMuYw0KPiA+ICsrKyBiL2FyY2gveDg2 L2tlcm5lbC9hcGljL2lvX2FwaWMuYw0KPiA+IEBAIC0xMzc5LDYgKzEzNzksMzQgQEAgdm9pZCBf X2luaXQgcHJpbnRfSU9fQVBJQ3Modm9pZCkNCj4gPiAgLyogV2hlcmUgaWYgYW55d2hlcmUgaXMg dGhlIGk4MjU5IGNvbm5lY3QgaW4gZXh0ZXJuYWwgaW50IG1vZGUgKi8NCj4gPiAgc3RhdGljIHN0 cnVjdCB7IGludCBwaW4sIGFwaWM7IH0gaW9hcGljX2k4MjU5ID0geyAtMSwgLTEgfTsNCj4gPiAg DQo+ID4gKy8qDQo+ID4gKyAqIFJldHVybiBmYWxzZSBtZWFucyB0aGUgdGhyb3VnaC1JL08tQVBJ QyB2aXJ0dWFsIHdpcmUgbW9kZSBpcyBpbmFjdGl2ZQ0KPiA+ICsgKi8NCj4gPiArYm9vbCB2aXJ0 X3dpcmVfdGhyb3VnaF9pb2FwaWModm9pZCkNCj4gPiArew0KPiA+ICsJaW50IGFwaWMsIHBpbjsN Cj4gPiArDQo+ID4gKwlmb3JfZWFjaF9pb2FwaWNfcGluKGFwaWMsIHBpbikgew0KPiA+ICsJCS8q IFNlZSBpZiBhbnkgb2YgdGhlIHBpbnMgaXMgaW4gRXh0SU5UIG1vZGUgKi8NCj4gPiArCQlzdHJ1 Y3QgSU9fQVBJQ19yb3V0ZV9lbnRyeSBlbnRyeSA9IGlvYXBpY19yZWFkX2VudHJ5KGFwaWMsIHBp bik7DQo+ID4gKw0KPiA+ICsJCS8qDQo+ID4gKwkJICogSWYgdGhlIGludGVycnVwdCBsaW5lIGlz IGVuYWJsZWQgYW5kIGluIEV4dEludCBtb2RlDQo+ID4gKwkJICogSSBoYXZlIGZvdW5kIHRoZSBw aW4gd2hlcmUgdGhlIGk4MjU5IGlzIGNvbm5lY3RlZC4NCj4gPiArCQkgKi8NCj4gPiArCQlpZiAo KGVudHJ5Lm1hc2sgPT0gMCkgJiYgKGVudHJ5LmRlbGl2ZXJ5X21vZGUgPT0gZGVzdF9FeHRJTlQp KQ0KPiA+ICsJCQlyZXR1cm4gdHJ1ZTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwkvKg0KPiA+ICsJ ICogVGhlIHRocm91Z2gtSS9PLUFQSUMgdmlydHVhbCB3aXJlIG1vZGUgcmVxdWVzdHMNCj4gPiAr CSAqIEkvTyBBUElDIHRvIGJlIGNvbm5lY3RlZCBpODI1OSBpbiBjaGFwdGVyIDMuNi4yLjIgb2Yg dGhlIE1QIHYxLjQgc3BlYw0KPiA+ICsJICogSWYgbm8gcGluIGluIEV4dEludCBtb2RlLCB0aGUg dGhyb3VnaC1JL08tQVBJQyB2aXJ0dWFsIHdpcmUgbW9kZSBjYW4NCj4gPiArCSAqIGJlIHJlZ2Fy ZGVkIGFzIGluYWN0aXZlDQo+ID4gKwkgKi8NCj4gPiArCXJldHVybiBmYWxzZTsNCj4gPiArfQ0K PiA+ICsNCj4gPiAgdm9pZCBfX2luaXQgZW5hYmxlX0lPX0FQSUModm9pZCkNCj4gPiAgew0KPiA+ ICAJaW50IGk4MjU5X2FwaWMsIGk4MjU5X3BpbjsNCj4gDQo+IA0KDQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmtleGVjIG1haWxpbmcgbGlzdAprZXhl Y0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8va2V4ZWMK