From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Yang Z" Subject: Re: [question] e1000 interrupt storm happenedbecauseofitscorrespondingioapic->irr bit always set Date: Fri, 29 Aug 2014 04:07:42 +0000 Message-ID: References: <201408231836387399956@sangfor.com>, <53FAA874.70703@redhat.com>, <201408251517235889695@sangfor.com>, <53FAE5EB.8080809@redhat.com>, <201408261728240882530@sangfor.com>, <53FD681D.7070602@redhat.com>, <201408271731497879013@sangfor.com>, <201408282055150251894@sangfor.com> <201408291114352277288@sangfor.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 To: Zhang Haoyu , Jason Wang , qemu-devel , kvm , Gleb Natapov , Michael S.Tsirkin Return-path: In-Reply-To: <201408291114352277288@sangfor.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org List-Id: kvm.vger.kernel.org WmhhbmcgSGFveXUgd3JvdGUgb24gMjAxNC0wOC0yOToNCj4gSGksIFlhbmcsIEdsZWIsIE1pY2hh ZWwsDQo+IENvdWxkIHlvdSBoZWxwIHJldmlldyBiZWxvdyBwYXRjaCBwbGVhc2U/DQoNCkkgZG9u J3QgcXVpdGUgdW5kZXJzdGFuZCB0aGUgYmFja2dyb3VuZC4gV2h5IGlvYWNwaS0+aXJyIGlzIHNl dHRpbmcgYmVmb3JlIEVPST8gSXQgc2hvdWxkIGJlIGRyaXZlcidzIHJlc3BvbnNpYmlsaXR5IHRv IGNsZWFyIHRoZSBpbnRlcnJ1cHQgYmVmb3JlIGlzc3VpbmcgRU9JLg0KDQo+IA0KPiBUaGFua3Ms DQo+IFpoYW5nIEhhb3l1DQo+IA0KPj4+IEhpIEphc29uLA0KPj4+IEkgdGVzdGVkIGJlbG93IHBh dGNoLCBpdCdzIG9rYXksIHRoZSBlMTAwMCBpbnRlcnJ1cHQgc3Rvcm0gZGlzYXBwZWFyZWQuDQo+ Pj4gQnV0IEkgYW0gZ29pbmcgdG8gbWFrZSBhIGJpdCBjaGFuZ2Ugb24gaXQsIGNvdWxkIHlvdSBo ZWxwIHJldmlldyBpdD8NCj4+PiANCj4+Pj4gQ3VycmVudGx5LCB3ZSBjYWxsIGlvYXBpY19zZXJ2 aWNlKCkgaW1tZWRpYXRlbHkgd2hlbiB3ZSBmaW5kIHRoZSBpcnENCj4+Pj4gaXMgc3RpbGwgYWN0 aXZlIGR1cmluZyBlb2kgYnJvYWRjYXN0LiBCdXQgZm9yIHJlYWwgaGFyZHdhcmUsIHRoZXJlJ3MN Cj4+Pj4gc29tZSBkZWFseSBiZXR3ZWVuIHRoZSBFT0kgd3JpdGluZyBhbmQgaXJxIGRlbGl2ZXJ5 IChzeXN0ZW0gYnVzDQo+Pj4+IGxhdGVuY3k/KS4gU28gd2UgbmVlZCB0byBlbXVsYXRlIHRoaXMg YmVoYXZpb3IuIE90aGVyd2lzZSwgZm9yIGENCj4+Pj4gZ3Vlc3Qgd2hvIGhhdmVuJ3QgcmVnaXN0 ZXIgYSBwcm9wZXIgaXJxIGhhbmRsZXIgLCBpdCB3b3VsZCBzdGF5IGluDQo+Pj4+IHRoZSBpbnRl cnJ1cHQgcm91dGluZSBhcyB0aGlzIGlycSB3b3VsZCBiZSByZS1pbmplY3RlZCBpbW1lZGlhdGVs eQ0KPj4+PiBhZnRlciBndWVzdCBlbmFibGVzIGludGVycnVwdC4gVGhpcyB3b3VsZCBsZWFkIGd1 ZXN0IGNhbid0IG1vdmUNCj4+Pj4gZm9yd2FyZCBhbmQgbWF5IG1pc3MgdGhlIHBvc3NpYmlsaXR5 IHRvIGdldCBwcm9wZXIgaXJxIGhhbmRsZXINCj4+Pj4gcmVnaXN0ZXJlZCAob25lIGV4YW1wbGUg aXMgd2luZG93cyBndWVzdCByZXN1bWluZyBmcm9tIGhpYmVybmF0aW9uKS4NCj4+Pj4gDQo+Pj4+ IEFzIHRoZXJlJ3Mgbm8gd2F5IHRvIGRpZmZlciB0aGUgdW5oYW5kbGVkIGlycSBmcm9tIG5ldyBy YWlzZWQgb25lcywNCj4+Pj4gdGhpcyBwYXRjaCBzb2x2ZSB0aGlzIHByb2JsZW1zIGJ5IHNjaGVk dWxpbmcgYSBkZWxheWVkIHdvcmsgd2hlbiB0aGUNCj4+Pj4gY291bnQgb2YgaXJxIGluamVjdGVk IGR1cmluZyBlb2kgYnJvYWRjYXN0IGV4Y2VlZHMgYSB0aHJlc2hvbGQgdmFsdWUuDQo+Pj4+IEFm dGVyIHRoaXMgcGF0Y2gsIHRoZSBndWVzdCBjYW4gbW92ZSBhIGxpdHRsZSBmb3J3YXJkIHdoZW4g dGhlcmUncyBubw0KPj4+PiBzdWl0YWJsZSBpcnEgaGFuZGxlciBpbiBjYXNlIGl0IG1heSByZWdp c3RlciBvbmUgdmVyeSBzb29uIGFuZCBmb3INCj4+Pj4gZ3Vlc3Qgd2hvIGhhcyBhIGJhZCBpcnEg ZGV0ZWN0aW9uIHJvdXRpbmUgKCBzdWNoIGFzIG5vdGVfaW50ZXJydXB0KCkNCj4+Pj4gaW4gbGlu dXggKSwgdGhpcyBiYWQgaXJxIHdvdWxkIGJlIHJlY29nbml6ZWQgc29vbiBhcyBpbiB0aGUgcGFz dC4NCj4+Pj4gDQo+Pj4+IFNpZ25lZC1vZmYtYnk6IEphc29uIFdhbmcgPGphc293YW5nIDxhdD4g cmVkaGF0LmNvbT4gLS0tDQo+Pj4+IHZpcnQva3ZtL2lvYXBpYy5jIHwgICA0Nw0KPj4+PiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLSB2aXJ0L2t2bS9pb2Fw aWMuaCB8ICANCj4+Pj4gIDIgKysgMiBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQ0KPj4+PiANCj4+Pj4gZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2lvYXBpYy5j IGIvdmlydC9rdm0vaW9hcGljLmMgaW5kZXgNCj4+Pj4gZGNhZjI3Mi4uODkyMjUzZSAxMDA2NDQg LS0tIGEvdmlydC9rdm0vaW9hcGljLmMgKysrDQo+Pj4+IGIvdmlydC9rdm0vaW9hcGljLmMgPGF0 PiAgPGF0PiAgLTIyMSw2ICsyMjEsMjQgIDxhdD4gIDxhdD4gIGludA0KPj4+PiBrdm1faW9hcGlj X3NldF9pcnEoc3RydWN0IGt2bV9pb2FwaWMgKmlvYXBpYywgaW50IGlycSwgaW50IGxldmVsKQ0K Pj4+PiAJcmV0dXJuIHJldDsgfQ0KPj4+PiANCj4+Pj4gK3N0YXRpYyB2b2lkIGt2bV9pb2FwaWNf ZW9pX2luamVjdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykgK3sNCj4+Pj4gKwlpbnQg aSwgcmV0OyArCXN0cnVjdCBrdm1faW9hcGljICppb2FwaWMgPSBjb250YWluZXJfb2Yod29yaywg c3RydWN0DQo+Pj4+IGt2bV9pb2FwaWMsICsJCQkJCQkgZW9pX2luamVjdC53b3JrKTsgKwlzcGlu X2xvY2soJmlvYXBpYy0+bG9jayk7DQo+Pj4+ICsJZm9yIChpID0gMDsgaSA8IElPQVBJQ19OVU1f UElOUzsgaSsrKSB7ICsJCXVuaW9uDQo+Pj4+IGt2bV9pb2FwaWNfcmVkaXJlY3RfZW50cnkgKmVu dCA9ICZpb2FwaWMtPnJlZGlydGJsW2ldOyArICsJCWlmDQo+Pj4+IChlbnQtPmZpZWxkcy50cmln X21vZGUgIT0gSU9BUElDX0xFVkVMX1RSSUcpICsJCQljb250aW51ZTsgKyArCQlpZg0KPj4+PiAo aW9hcGljLT5pcnIgJiAoMSA8PCBpKSAmJiAhZW50LT5maWVsZHMucmVtb3RlX2lycikgKwkJCXJl dCA9DQo+Pj4+IGlvYXBpY19zZXJ2aWNlKGlvYXBpYywgaSk7ICsJfSArCXNwaW5fdW5sb2NrKCZp b2FwaWMtPmxvY2spOyArfSArDQo+Pj4+IHN0YXRpYyB2b2lkIF9fa3ZtX2lvYXBpY191cGRhdGVf ZW9pKHN0cnVjdCBrdm1faW9hcGljICppb2FwaWMsIGludA0KPj4+PiB2ZWN0b3IsIAkJCQkgICAg IGludCB0cmlnZ2VyX21vZGUpIHsgPGF0PiAgPGF0PiAgLTI0OSw4ICsyNjcsMjkgIDxhdD4NCj4+ Pj4gIDxhdD4gIHN0YXRpYyB2b2lkIF9fa3ZtX2lvYXBpY191cGRhdGVfZW9pKHN0cnVjdCBrdm1f aW9hcGljICppb2FwaWMsDQo+Pj4+IGludCB2ZWN0b3IsDQo+Pj4+IA0KPj4+PiAJCUFTU0VSVChl bnQtPmZpZWxkcy50cmlnX21vZGUgPT0gSU9BUElDX0xFVkVMX1RSSUcpOw0KPj4+PiAJCWVudC0+ ZmllbGRzLnJlbW90ZV9pcnIgPSAwOw0KPj4+PiAtCQlpZiAoIWVudC0+ZmllbGRzLm1hc2sgJiYg KGlvYXBpYy0+aXJyICYgKDEgPDwgaSkpKQ0KPj4+PiAtCQkJaW9hcGljX3NlcnZpY2UoaW9hcGlj LCBpKTsNCj4+Pj4gKwkJaWYgKCFlbnQtPmZpZWxkcy5tYXNrICYmIChpb2FwaWMtPmlyciAmICgx IDw8IGkpKSkgew0KPj4+PiArCQkJKytpb2FwaWMtPmlycV9lb2k7DQo+Pj4gLSsJCQkrK2lvYXBp Yy0+aXJxX2VvaTsNCj4+PiArKwkJICAgICsraW9hcGljLT5pcnFfZW9pW2ldOw0KPj4+PiArCQkJ aWYgKGlvYXBpYy0+aXJxX2VvaSA9PSAxMDApIHsNCj4+PiAtKwkJCWlmIChpb2FwaWMtPmlycV9l b2kgPT0gMTAwKSB7DQo+Pj4gKysJCQlpZiAoaW9hcGljLT5pcnFfZW9pW2ldID09IDEwMCkgew0K Pj4+PiArCQkJCS8qDQo+Pj4+ICsJCQkJICogUmVhbCBoYXJkd2FyZSBkb2VzIG5vdCBkZWxpdmVy IHRoZSBpcnEgc28NCj4+Pj4gKwkJCQkgKiBpbW1lZGlhdGVseSBkdXJpbmcgZW9pIGJyb2FkY2Fz dCwgc28gd2UgbmVlZA0KPj4+PiArCQkJCSAqIHRvIGVtdWxhdGUgdGhpcyBiZWhhdmlvci4gT3Ro ZXJ3aXNlLCBmb3INCj4+Pj4gKwkJCQkgKiBndWVzdHMgd2hvIGhhcyBub3QgcmVnaXN0ZXJlZCBo YW5kbGVyIG9mIGENCj4+Pj4gKwkJCQkgKiBsZXZlbCBpcnEsIHRoaXMgaXJxIHdvdWxkIGJlIGlu amVjdGVkDQo+Pj4+ICsJCQkJICogaW1tZWRpYXRlbHkgYWZ0ZXIgZ3Vlc3QgZW5hYmxlcyBpbnRl cnJ1cHQNCj4+Pj4gKwkJCQkgKiAod2hpY2ggaGFwcGVucyB1c3VhbGx5IGF0IHRoZSBlbmQgb2Yg dGhlDQo+Pj4+ICsJCQkJICogY29tbW9uIGludGVycnVwdCByb3V0aW5lKS4gVGhpcyB3b3VsZCBs ZWFkDQo+Pj4+ICsJCQkJICogZ3Vlc3QgY2FuJ3QgbW92ZSBmb3J3YXJkIGFuZCBtYXkgbWlzcyB0 aGUNCj4+Pj4gKwkJCQkgKiBwb3NzaWJpbGl0eSB0byBnZXQgcHJvcGVyIGlycSBoYW5kbGVyDQo+ Pj4+ICsJCQkJICogcmVnaXN0ZXJlZC4gU28gd2UgbmVlZCB0byBnaXZlIHNvbWUgYnJlYXRoIHRv DQo+Pj4+ICsJCQkJICogZ3Vlc3QuIFRPRE86IDEgaXMgdG9vIGxvbmc/DQo+Pj4+ICsJCQkJICov DQo+Pj4+ICsJCQkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZpb2FwaWMtPmVvaV9pbmplY3QsIDEp Ow0KPj4+PiArCQkJCWlvYXBpYy0+aXJxX2VvaSA9IDA7DQo+Pj4gLSsJCQkJaW9hcGljLT5pcnFf ZW9pID0gMDsNCj4+PiArKwkJCQlpb2FwaWMtPmlycV9lb2lbaV0gPSAwOw0KPj4+PiArCQkJfSBl bHNlIHsNCj4+Pj4gKwkJCQlpb2FwaWNfc2VydmljZShpb2FwaWMsIGkpOw0KPj4+PiArCQkJfQ0K Pj4+PiArCQl9DQo+Pj4gKysJCWVsc2Ugew0KPj4+ICsrCQkJaW9hcGljLT5pcnFfZW9pW2ldID0g MDsNCj4+PiArKwkJfQ0KPj4+PiAJfQ0KPj4+PiB9DQo+Pj4gSSB0aGluayBpb2FwaWMtPmlycV9l b2kgaXMgcHJvbmUgdG8gcmVhY2ggdG8gMTAwLCBiZWNhdXNlIGR1cmluZyBhIGVvaQ0KPj4+IGJy b2FkY2FzdCwgaXQncyBwb3NzaWJsZSB0aGF0IGFub3RoZXIgaW50ZXJydXB0J3MgKG5vdCBjdXJy ZW50IGVvaSdzDQo+Pj4gY29ycmVzcG9uZGluZyBpbnRlcnJ1cHQpIGlyciBpcyBzZXQsIHNvIHRo ZSBpb2FwaWMtPmlycV9lb2kgd2lsbCBncm93DQo+Pj4gY29udGludWFsbHksIGFuZCBub3QgdG9v IGxvbmcsIGlvYXBpYy0+aXJxX2VvaSB3aWxsIHJlYWNoIHRvIDEwMC4gSQ0KPj4+IHdhbnQgdG8g YWRkICJ1MzIgaXJxX2VvaVtJT0FQSUNfTlVNX1BJTlNdOyIgaW5zdGVhZCBvZiAidTMyIGlycV9l b2k7Ii4NCj4+PiBBbnkgaWRlYXM/DQo+Pj4gDQo+Pj4gWmhhbmcgSGFveXUNCj4+IA0KPj4gSSBk b24ndCBoYXZlIG9iamVjdGlvbiB0byB0aGlzIHBlciBpcnEgY291bnRlciwgYnV0IEkgZG9uJ3Qg c2VlIG9idmlvdXMNCj4+IGRpZmZlcmVuY2UuDQo+PiANCj4+IEJ0dywgdGhlIHBhdGNoIGhhcyBi ZWVuIHJlamVjdGVkIGluIHRoZSBwYXN0IHNpbmNlIHdlJ3JlIG5vdCBzdXJlDQo+PiB3aGV0aGVy IHRoaXMgYmVoYXZpb3VyIGlzIGFyY2hpdGVjdHVyYWwgKG9yIGFzayBJbnRlbD8pLiBZb3UgbmVl ZA0KPj4gY29udmluY2UgdGhlIEdsZWIgYW5kIG90aGVyIGt2bSBtYWludGFpbmVycyBmb3IgdGhp cyBpZGVhIGZpcnN0IDopLg0KDQoNCkJlc3QgcmVnYXJkcywNCllhbmcNCg0KDQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55885) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XNDTi-0001IS-22 for qemu-devel@nongnu.org; Fri, 29 Aug 2014 00:08:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XNDTX-0001R3-2S for qemu-devel@nongnu.org; Fri, 29 Aug 2014 00:07:57 -0400 Received: from mga11.intel.com ([192.55.52.93]:29683) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XNDTW-0001Qi-OC for qemu-devel@nongnu.org; Fri, 29 Aug 2014 00:07:46 -0400 From: "Zhang, Yang Z" Date: Fri, 29 Aug 2014 04:07:42 +0000 Message-ID: References: <201408231836387399956@sangfor.com>, <53FAA874.70703@redhat.com>, <201408251517235889695@sangfor.com>, <53FAE5EB.8080809@redhat.com>, <201408261728240882530@sangfor.com>, <53FD681D.7070602@redhat.com>, <201408271731497879013@sangfor.com>, <201408282055150251894@sangfor.com> <201408291114352277288@sangfor.com> In-Reply-To: <201408291114352277288@sangfor.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Qemu-devel] [question] e1000 interrupt storm happenedbecauseofitscorrespondingioapic->irr bit always set List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Zhang Haoyu , Jason Wang , qemu-devel , kvm , Gleb Natapov , "Michael S.Tsirkin" WmhhbmcgSGFveXUgd3JvdGUgb24gMjAxNC0wOC0yOToNCj4gSGksIFlhbmcsIEdsZWIsIE1pY2hh ZWwsDQo+IENvdWxkIHlvdSBoZWxwIHJldmlldyBiZWxvdyBwYXRjaCBwbGVhc2U/DQoNCkkgZG9u J3QgcXVpdGUgdW5kZXJzdGFuZCB0aGUgYmFja2dyb3VuZC4gV2h5IGlvYWNwaS0+aXJyIGlzIHNl dHRpbmcgYmVmb3JlIEVPST8gSXQgc2hvdWxkIGJlIGRyaXZlcidzIHJlc3BvbnNpYmlsaXR5IHRv IGNsZWFyIHRoZSBpbnRlcnJ1cHQgYmVmb3JlIGlzc3VpbmcgRU9JLg0KDQo+IA0KPiBUaGFua3Ms DQo+IFpoYW5nIEhhb3l1DQo+IA0KPj4+IEhpIEphc29uLA0KPj4+IEkgdGVzdGVkIGJlbG93IHBh dGNoLCBpdCdzIG9rYXksIHRoZSBlMTAwMCBpbnRlcnJ1cHQgc3Rvcm0gZGlzYXBwZWFyZWQuDQo+ Pj4gQnV0IEkgYW0gZ29pbmcgdG8gbWFrZSBhIGJpdCBjaGFuZ2Ugb24gaXQsIGNvdWxkIHlvdSBo ZWxwIHJldmlldyBpdD8NCj4+PiANCj4+Pj4gQ3VycmVudGx5LCB3ZSBjYWxsIGlvYXBpY19zZXJ2 aWNlKCkgaW1tZWRpYXRlbHkgd2hlbiB3ZSBmaW5kIHRoZSBpcnENCj4+Pj4gaXMgc3RpbGwgYWN0 aXZlIGR1cmluZyBlb2kgYnJvYWRjYXN0LiBCdXQgZm9yIHJlYWwgaGFyZHdhcmUsIHRoZXJlJ3MN Cj4+Pj4gc29tZSBkZWFseSBiZXR3ZWVuIHRoZSBFT0kgd3JpdGluZyBhbmQgaXJxIGRlbGl2ZXJ5 IChzeXN0ZW0gYnVzDQo+Pj4+IGxhdGVuY3k/KS4gU28gd2UgbmVlZCB0byBlbXVsYXRlIHRoaXMg YmVoYXZpb3IuIE90aGVyd2lzZSwgZm9yIGENCj4+Pj4gZ3Vlc3Qgd2hvIGhhdmVuJ3QgcmVnaXN0 ZXIgYSBwcm9wZXIgaXJxIGhhbmRsZXIgLCBpdCB3b3VsZCBzdGF5IGluDQo+Pj4+IHRoZSBpbnRl cnJ1cHQgcm91dGluZSBhcyB0aGlzIGlycSB3b3VsZCBiZSByZS1pbmplY3RlZCBpbW1lZGlhdGVs eQ0KPj4+PiBhZnRlciBndWVzdCBlbmFibGVzIGludGVycnVwdC4gVGhpcyB3b3VsZCBsZWFkIGd1 ZXN0IGNhbid0IG1vdmUNCj4+Pj4gZm9yd2FyZCBhbmQgbWF5IG1pc3MgdGhlIHBvc3NpYmlsaXR5 IHRvIGdldCBwcm9wZXIgaXJxIGhhbmRsZXINCj4+Pj4gcmVnaXN0ZXJlZCAob25lIGV4YW1wbGUg aXMgd2luZG93cyBndWVzdCByZXN1bWluZyBmcm9tIGhpYmVybmF0aW9uKS4NCj4+Pj4gDQo+Pj4+ IEFzIHRoZXJlJ3Mgbm8gd2F5IHRvIGRpZmZlciB0aGUgdW5oYW5kbGVkIGlycSBmcm9tIG5ldyBy YWlzZWQgb25lcywNCj4+Pj4gdGhpcyBwYXRjaCBzb2x2ZSB0aGlzIHByb2JsZW1zIGJ5IHNjaGVk dWxpbmcgYSBkZWxheWVkIHdvcmsgd2hlbiB0aGUNCj4+Pj4gY291bnQgb2YgaXJxIGluamVjdGVk IGR1cmluZyBlb2kgYnJvYWRjYXN0IGV4Y2VlZHMgYSB0aHJlc2hvbGQgdmFsdWUuDQo+Pj4+IEFm dGVyIHRoaXMgcGF0Y2gsIHRoZSBndWVzdCBjYW4gbW92ZSBhIGxpdHRsZSBmb3J3YXJkIHdoZW4g dGhlcmUncyBubw0KPj4+PiBzdWl0YWJsZSBpcnEgaGFuZGxlciBpbiBjYXNlIGl0IG1heSByZWdp c3RlciBvbmUgdmVyeSBzb29uIGFuZCBmb3INCj4+Pj4gZ3Vlc3Qgd2hvIGhhcyBhIGJhZCBpcnEg ZGV0ZWN0aW9uIHJvdXRpbmUgKCBzdWNoIGFzIG5vdGVfaW50ZXJydXB0KCkNCj4+Pj4gaW4gbGlu dXggKSwgdGhpcyBiYWQgaXJxIHdvdWxkIGJlIHJlY29nbml6ZWQgc29vbiBhcyBpbiB0aGUgcGFz dC4NCj4+Pj4gDQo+Pj4+IFNpZ25lZC1vZmYtYnk6IEphc29uIFdhbmcgPGphc293YW5nIDxhdD4g cmVkaGF0LmNvbT4gLS0tDQo+Pj4+IHZpcnQva3ZtL2lvYXBpYy5jIHwgICA0Nw0KPj4+PiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLSB2aXJ0L2t2bS9pb2Fw aWMuaCB8ICANCj4+Pj4gIDIgKysgMiBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQ0KPj4+PiANCj4+Pj4gZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2lvYXBpYy5j IGIvdmlydC9rdm0vaW9hcGljLmMgaW5kZXgNCj4+Pj4gZGNhZjI3Mi4uODkyMjUzZSAxMDA2NDQg LS0tIGEvdmlydC9rdm0vaW9hcGljLmMgKysrDQo+Pj4+IGIvdmlydC9rdm0vaW9hcGljLmMgPGF0 PiAgPGF0PiAgLTIyMSw2ICsyMjEsMjQgIDxhdD4gIDxhdD4gIGludA0KPj4+PiBrdm1faW9hcGlj X3NldF9pcnEoc3RydWN0IGt2bV9pb2FwaWMgKmlvYXBpYywgaW50IGlycSwgaW50IGxldmVsKQ0K Pj4+PiAJcmV0dXJuIHJldDsgfQ0KPj4+PiANCj4+Pj4gK3N0YXRpYyB2b2lkIGt2bV9pb2FwaWNf ZW9pX2luamVjdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykgK3sNCj4+Pj4gKwlpbnQg aSwgcmV0OyArCXN0cnVjdCBrdm1faW9hcGljICppb2FwaWMgPSBjb250YWluZXJfb2Yod29yaywg c3RydWN0DQo+Pj4+IGt2bV9pb2FwaWMsICsJCQkJCQkgZW9pX2luamVjdC53b3JrKTsgKwlzcGlu X2xvY2soJmlvYXBpYy0+bG9jayk7DQo+Pj4+ICsJZm9yIChpID0gMDsgaSA8IElPQVBJQ19OVU1f UElOUzsgaSsrKSB7ICsJCXVuaW9uDQo+Pj4+IGt2bV9pb2FwaWNfcmVkaXJlY3RfZW50cnkgKmVu dCA9ICZpb2FwaWMtPnJlZGlydGJsW2ldOyArICsJCWlmDQo+Pj4+IChlbnQtPmZpZWxkcy50cmln X21vZGUgIT0gSU9BUElDX0xFVkVMX1RSSUcpICsJCQljb250aW51ZTsgKyArCQlpZg0KPj4+PiAo aW9hcGljLT5pcnIgJiAoMSA8PCBpKSAmJiAhZW50LT5maWVsZHMucmVtb3RlX2lycikgKwkJCXJl dCA9DQo+Pj4+IGlvYXBpY19zZXJ2aWNlKGlvYXBpYywgaSk7ICsJfSArCXNwaW5fdW5sb2NrKCZp b2FwaWMtPmxvY2spOyArfSArDQo+Pj4+IHN0YXRpYyB2b2lkIF9fa3ZtX2lvYXBpY191cGRhdGVf ZW9pKHN0cnVjdCBrdm1faW9hcGljICppb2FwaWMsIGludA0KPj4+PiB2ZWN0b3IsIAkJCQkgICAg IGludCB0cmlnZ2VyX21vZGUpIHsgPGF0PiAgPGF0PiAgLTI0OSw4ICsyNjcsMjkgIDxhdD4NCj4+ Pj4gIDxhdD4gIHN0YXRpYyB2b2lkIF9fa3ZtX2lvYXBpY191cGRhdGVfZW9pKHN0cnVjdCBrdm1f aW9hcGljICppb2FwaWMsDQo+Pj4+IGludCB2ZWN0b3IsDQo+Pj4+IA0KPj4+PiAJCUFTU0VSVChl bnQtPmZpZWxkcy50cmlnX21vZGUgPT0gSU9BUElDX0xFVkVMX1RSSUcpOw0KPj4+PiAJCWVudC0+ ZmllbGRzLnJlbW90ZV9pcnIgPSAwOw0KPj4+PiAtCQlpZiAoIWVudC0+ZmllbGRzLm1hc2sgJiYg KGlvYXBpYy0+aXJyICYgKDEgPDwgaSkpKQ0KPj4+PiAtCQkJaW9hcGljX3NlcnZpY2UoaW9hcGlj LCBpKTsNCj4+Pj4gKwkJaWYgKCFlbnQtPmZpZWxkcy5tYXNrICYmIChpb2FwaWMtPmlyciAmICgx IDw8IGkpKSkgew0KPj4+PiArCQkJKytpb2FwaWMtPmlycV9lb2k7DQo+Pj4gLSsJCQkrK2lvYXBp Yy0+aXJxX2VvaTsNCj4+PiArKwkJICAgICsraW9hcGljLT5pcnFfZW9pW2ldOw0KPj4+PiArCQkJ aWYgKGlvYXBpYy0+aXJxX2VvaSA9PSAxMDApIHsNCj4+PiAtKwkJCWlmIChpb2FwaWMtPmlycV9l b2kgPT0gMTAwKSB7DQo+Pj4gKysJCQlpZiAoaW9hcGljLT5pcnFfZW9pW2ldID09IDEwMCkgew0K Pj4+PiArCQkJCS8qDQo+Pj4+ICsJCQkJICogUmVhbCBoYXJkd2FyZSBkb2VzIG5vdCBkZWxpdmVy IHRoZSBpcnEgc28NCj4+Pj4gKwkJCQkgKiBpbW1lZGlhdGVseSBkdXJpbmcgZW9pIGJyb2FkY2Fz dCwgc28gd2UgbmVlZA0KPj4+PiArCQkJCSAqIHRvIGVtdWxhdGUgdGhpcyBiZWhhdmlvci4gT3Ro ZXJ3aXNlLCBmb3INCj4+Pj4gKwkJCQkgKiBndWVzdHMgd2hvIGhhcyBub3QgcmVnaXN0ZXJlZCBo YW5kbGVyIG9mIGENCj4+Pj4gKwkJCQkgKiBsZXZlbCBpcnEsIHRoaXMgaXJxIHdvdWxkIGJlIGlu amVjdGVkDQo+Pj4+ICsJCQkJICogaW1tZWRpYXRlbHkgYWZ0ZXIgZ3Vlc3QgZW5hYmxlcyBpbnRl cnJ1cHQNCj4+Pj4gKwkJCQkgKiAod2hpY2ggaGFwcGVucyB1c3VhbGx5IGF0IHRoZSBlbmQgb2Yg dGhlDQo+Pj4+ICsJCQkJICogY29tbW9uIGludGVycnVwdCByb3V0aW5lKS4gVGhpcyB3b3VsZCBs ZWFkDQo+Pj4+ICsJCQkJICogZ3Vlc3QgY2FuJ3QgbW92ZSBmb3J3YXJkIGFuZCBtYXkgbWlzcyB0 aGUNCj4+Pj4gKwkJCQkgKiBwb3NzaWJpbGl0eSB0byBnZXQgcHJvcGVyIGlycSBoYW5kbGVyDQo+ Pj4+ICsJCQkJICogcmVnaXN0ZXJlZC4gU28gd2UgbmVlZCB0byBnaXZlIHNvbWUgYnJlYXRoIHRv DQo+Pj4+ICsJCQkJICogZ3Vlc3QuIFRPRE86IDEgaXMgdG9vIGxvbmc/DQo+Pj4+ICsJCQkJICov DQo+Pj4+ICsJCQkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZpb2FwaWMtPmVvaV9pbmplY3QsIDEp Ow0KPj4+PiArCQkJCWlvYXBpYy0+aXJxX2VvaSA9IDA7DQo+Pj4gLSsJCQkJaW9hcGljLT5pcnFf ZW9pID0gMDsNCj4+PiArKwkJCQlpb2FwaWMtPmlycV9lb2lbaV0gPSAwOw0KPj4+PiArCQkJfSBl bHNlIHsNCj4+Pj4gKwkJCQlpb2FwaWNfc2VydmljZShpb2FwaWMsIGkpOw0KPj4+PiArCQkJfQ0K Pj4+PiArCQl9DQo+Pj4gKysJCWVsc2Ugew0KPj4+ICsrCQkJaW9hcGljLT5pcnFfZW9pW2ldID0g MDsNCj4+PiArKwkJfQ0KPj4+PiAJfQ0KPj4+PiB9DQo+Pj4gSSB0aGluayBpb2FwaWMtPmlycV9l b2kgaXMgcHJvbmUgdG8gcmVhY2ggdG8gMTAwLCBiZWNhdXNlIGR1cmluZyBhIGVvaQ0KPj4+IGJy b2FkY2FzdCwgaXQncyBwb3NzaWJsZSB0aGF0IGFub3RoZXIgaW50ZXJydXB0J3MgKG5vdCBjdXJy ZW50IGVvaSdzDQo+Pj4gY29ycmVzcG9uZGluZyBpbnRlcnJ1cHQpIGlyciBpcyBzZXQsIHNvIHRo ZSBpb2FwaWMtPmlycV9lb2kgd2lsbCBncm93DQo+Pj4gY29udGludWFsbHksIGFuZCBub3QgdG9v IGxvbmcsIGlvYXBpYy0+aXJxX2VvaSB3aWxsIHJlYWNoIHRvIDEwMC4gSQ0KPj4+IHdhbnQgdG8g YWRkICJ1MzIgaXJxX2VvaVtJT0FQSUNfTlVNX1BJTlNdOyIgaW5zdGVhZCBvZiAidTMyIGlycV9l b2k7Ii4NCj4+PiBBbnkgaWRlYXM/DQo+Pj4gDQo+Pj4gWmhhbmcgSGFveXUNCj4+IA0KPj4gSSBk b24ndCBoYXZlIG9iamVjdGlvbiB0byB0aGlzIHBlciBpcnEgY291bnRlciwgYnV0IEkgZG9uJ3Qg c2VlIG9idmlvdXMNCj4+IGRpZmZlcmVuY2UuDQo+PiANCj4+IEJ0dywgdGhlIHBhdGNoIGhhcyBi ZWVuIHJlamVjdGVkIGluIHRoZSBwYXN0IHNpbmNlIHdlJ3JlIG5vdCBzdXJlDQo+PiB3aGV0aGVy IHRoaXMgYmVoYXZpb3VyIGlzIGFyY2hpdGVjdHVyYWwgKG9yIGFzayBJbnRlbD8pLiBZb3UgbmVl ZA0KPj4gY29udmluY2UgdGhlIEdsZWIgYW5kIG90aGVyIGt2bSBtYWludGFpbmVycyBmb3IgdGhp cyBpZGVhIGZpcnN0IDopLg0KDQoNCkJlc3QgcmVnYXJkcywNCllhbmcNCg0KDQo=