From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Bamvor Jian Zhang" Subject: =?utf-8?b?562U5aSN77yaIFJlOiBbUEFUQ0hdIGZpeCByYWNl?= =?utf-8?q?_condition_between_libvirtd_event_handling_and_libxl_fd_deregis?= =?utf-8?q?ter?= Date: Thu, 06 Dec 2012 09:06:41 -0700 Message-ID: <50C15D410200003000027D8E@soto.provo.novell.com> References: <0451e6041bdd88c90eee.1353395794@linux-bjrd.bjz> <20661.3989.258191.396175@mariner.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20661.3989.258191.396175@mariner.uk.xensource.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian.Jackson@eu.citrix.com Cc: Jim Fehlig , Ian.Campbell@citrix.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org SGksIElhbgoKVGhhbmtzIHlvdXIgY29tbWVudHMsIEkgZG8gbm90IHRoaW5rIGl0IGRlZXBseSBi ZWZvcmUgaXQuCgpJIGFtIG5vdCBzdXJlIGFib3V0IHlvdXIgInJlbWFpbmluZyBwcm9ibGVtIi4g SSBndWVzcyB0aGlzIHByb2JsZW0gc2hvdWxkIG5vdCBoYXBwZW4sIApCZWNhdXNlIHRoZSBkaWZm ZXJlbnQgcmVnaXN0cmF0aW9uIHNob3VsZCByZWZlciB0byBkaWZmZXJlbnQgZXYobGl4bF9fZXZf dGltZSwgbGl4bF9fZXZfZmQpLgoKQWJvdXQgdGhlIHJhY2UgY29uZGl0aW9uLCBJIHN0aWxsIG5v dCB1bmRlcnN0YW5kIHdoeSBpdCBvY2N1cnJlZC4gTGlidmlydCBzaG91bGQgbm90IGdvdCB0aGUg ZXZlbnQgd2hpbGUgbGlieGwgdGhvdWdodCBzdWNoIGV2ZW50IGlzIHVzZWxlc3MuIApDdXJyZW50 bHksIGZkIGlzIGRlcmVnaXN0ZXIgdHdpY2UsIHRoZSBmaXJzdCB0aW1lIGlzIGp1c3QgYWZ0ZXIg dHJhbnNmZXIgZG9uZSBhbmQgc2Vjb25kIHRpbWUgaXMgCmR1cmluZyBjbGVhbnVwIGZ1bmN0aW9u IHN1Y2ggYXMgYm9vdGxvYWRlciBjbGVhbnVwLiBJZiB3ZSBvbmx5IGRvIGl0IGluIHRoZSBjbGVh bnVwIGZ1bmN0aW9ucywKdGhpcyByYWNlIHNob3VsZCBub3QgaGFwcGVuLgoKPj4+IElhbiBKYWNr c29uIDxJYW4uSmFja3NvbkBldS5jaXRyaXguY29tPiAxMuW5tDEx5pyIMjjml6Ug5LiK5Y2IIDM6 MDggPj4+CkJhbXZvciBKaWFuIFpoYW5nIHdyaXRlcyAoIltQQVRDSF0gZml4IHJhY2UgY29uZGl0 aW9uIGJldHdlZW4gbGlidmlydGQgZXZlbnQgaGFuZGxpbmcgYW5kIGxpYnhsIGZkIGRlcmVnaXN0 ZXIiKToKPiB0aGUgcmFjZSBjb25kaXRpb24gbWF5IGJlIGVuY291bnRlZCBhdCB0aGUgZm9sbG93 aW5nIHNlbmFybzoKClRoYW5rcyBmb3IgdGhpcyByZXBvcnQuICBZb3UgYXJlIGNvcnJlY3QgdGhh dCB0aGVyZSBpcyBhIHJhY2UgaGVyZS4KVW5mb3J0dW5hdGVseSBpdCdzIG1vcmUgY29tcGxpY2F0 ZWQgdGhhbiB5b3VyIGFuYWx5c2lzIHJldmVhbHMgYW5kIEkKdGhpbmsgeW91ciBwcm9wb3NlZCBm aXggaXMgbm90IHN1ZmZpY2llbnQuCgpJIGhhdmUgd29ya2VkIHVwIGEgcGF0Y2ggLSBzZWUgYmVs b3cgLSB3aGljaCBJIHRoaW5rIGZpeGVzIG1vc3Qgb2YgdGhlCnByb2JsZW0uICBQbGVhc2Ugc2Vl IHRoZSBjb21taXQgbWVzc2FnZSBhbmQgdGhlIGJpZyBuZXcgY29tbWVudCBqdXN0CmFmdGVyIHRo ZSBkZWZpbml0aW9uIG9mIE9TRVZFTlRfSE9PS19WT0lEIGZvciBkZXRhaWxzLgoKQnV0IEkgdGhp bmsgdGhlcmUgbWF5IGJlIG9uZSBzZXJpb3VzIHByb2JsZW0gcmVtYWluaW5nLiAgSXQgc2VlbXMg dG8KbWUgdGhhdCBlbnRyeSB0byBsaWJ4bF9fb3NldmVudF9vY2N1cnJlZF90aW1lb3V0IGNhbiBy YWNlIHdpdGggdGhlCmhvb2sgdGltZW91dF9kZXJlZ2lzdGVyLiAgU3BlY2lmaWNhbGx5LCB0aGUg QVBJIHByZXNlbnRlZCBieSBsaWJ4bApkb2VzIG5vdCBhbGxvdyBsaWJ4bCB0byB0ZWxsIHdoZXRo ZXIgYSBjYWxsIHRvCmxpYnhsX19vc2V2ZW50X29jY3VycmVkX3RpbWVvdXQgaXMgb25lIHdoaWNo IHdhcyBlbnRlcmVkIGJlZm9yZSBhIGNhbGwKdG8gbGlieGxfX2V2X3RpbWVfZGVyZWdpc3RlciBh bmQgdGhlbmNlIHRpbWVvdXRfZGVyZWdpc3Rlci4KCkxldCB1cyBzdXBwb3NlIHRoYXQgdGhlIHBy ZXZpb3VzIHRpbWVvdXQgcmVnaXN0cmF0aW9uIGlzIHNpbWlsYXIgdG8KdGhlIG5ldyBvbmUsIGJ1 dCBoYXMgYSBkaWZmZXJlbnQgZm9yX2FwcF9yZWcgdmFsdWUuCgpJZiB0aGUgY2FsbCB0byBsaWJ4 bF9fb3NldmVudF9vY2N1cnJlZF90aW1lb3V0IHdhcyBlbnRlcmVkIGEgbG9uZyB0aW1lCmFnbyB0 aGVuIGl0IHJlZmVycyB0byB0aGUgb2xkIHRpbWVvdXQgcmVnaXN0cmF0aW9uIGFuZCB0aGUgY3Vy cmVudAp0aW1lb3V0IHJlZ2lzdHJhdGlvbiBpcyBub3QgYWZmZWN0ZWQsIGFuZCBtdXN0IHN0aWxs IGJlIGRlcmVnaXN0ZXJlZCBpZgpuZWNlc3NhcnkuICBOb3QgZGVyZWdpc3RlcmluZyBpdCB3b3Vs ZCBsZWFrIG1lbW9yeS4KCklmIHRoZSBjYWxsIHdhcyBlbnRlcmVkICJyZWNlbnRseSIgaXQgcmVm ZXJzIHRvIHRoZSBjdXJyZW50IHRpbWVvdXQKcmVnaXN0cmF0aW9uLiAgVGhhdCBtZWFucyB0aGF0 IHRoZSBjdXJyZW50IHRpbWVvdXQgZm9yX2FwcF9yZWcgdmFsdWUKKHRoZSBsaWJ2aXJ0IGV2ZW50 IHJlcXVlc3QpIGhhcyBiZWVuIGZyZWVkIGFuZCBkZXJlZ2lzdGVyaW5nIGl0IHdvdWxkCmJlIGEg bWVtb3J5IG1hbmFnZW1lbnQgZXJyb3IuCgpCYW12b3IsIGRvIHlvdSBhZ3JlZSB3aXRoIHRoaXMg YW5hbHlzaXMgPyAgSWYgc28sIHdoYXQgY2hhbmdlIHRvIHRoZQpsaWJ4bCBBUEkgc3ludGF4IG9y IHNlbWFudGljcyB3b3VsZCBmaXggdGhlIHByb2JsZW0gPwoKSSBzZWUgdGhhdCB0aGUgbm90aW9u IHRoYXQgYSB0aW1lb3V0IGV2ZW50IHJlZ2lzdHJhdGlvbiBieSBsaWJ4bCB3aXRoCnRoZSBhcHBs aWNhdGlvbiBpcyBhdXRvbWF0aWMgZGVyZWdpc3RlcmVkIGlzIG5vdCBleHByZXNzZWQgY2xlYXJs eSBpbgpsaWJ4bC5oLiAgU28gcGVyaGFwcyBvbmUgZml4IHdvdWxkIGJlIHRvIGRlY3JlZSB0aGF0 IGxpYnhsIGlzIHN1cHBvc2VkCnRvIGNhbGwgdGltZW91dF9kZXJlZ2lzdGVyIGZyb20gd2l0aGlu CmxpYnhsX19vc2V2ZW50X29jY3VycmVkX3RpbWVvdXQgaWYgaXQgd2Fzbid0IGNhbGxlZCBiZWZv cmUuCgpUaGFua3MsCklhbi4KCgpGcm9tOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0 cml4LmNvbT4KU3ViamVjdDogW1BBVENIXSBSRkM6IGxpYnhsOiBmaXggc3RhbGUgZmQvdGltZW91 dCBldmVudCBjYWxsYmFjayByYWNlCgpETyBOT1QgQVBQTFkKCkJlY2F1c2UgdGhlcmUgaXMgbm90 IG5lY2Vzc2FyaWx5IGFueSBsb2NrIGhlbGQgYXQgdGhlIHBvaW50IHRoZQphcHBsaWNhdGlvbiAo ZWcsIGxpYnZpcnQpIGNhbGxzIGxpYnhsX29zZXZlbnRfb2NjdXJyZWRfdGltZW91dCBhbmQKLi4u X2ZkLCBpbiBhIG11bHRpdGhyZWFkZWQgcHJvZ3JhbSB0aG9zZSBjYWxscyBtYXkgYmUgYXJiaXRy YXJpbHkKZGVsYXllZCBpbiByZWxhdGlvbiB0byBvdGhlciBhY3Rpdml0aWVzIHdpdGhpbiB0aGUg cHJvZ3JhbS4KCmxpYnhsIHRoZXJlZm9yZSBuZWVkcyB0byBiZSBwcmVwYXJlZCB0byByZWNlaXZl IHZlcnkgb2xkIGV2ZW50CmNhbGxiYWNrcy4gIEFycmFuZ2UgZm9yIHRoaXMgdG8gYmUgdGhlIGNh c2UuCgpEb2N1bWVudCB0aGUgcHJvYmxlbSBhbmQgdGhlIHNvbHV0aW9uIGluIGEgY29tbWVudCBp biBsaWJ4bF9ldmVudC5jCmp1c3QgYmVmb3JlIHRoZSBkZWZpbml0aW9uIG9mIHN0cnVjdCBsaWJ4 bF9fb3NldmVudF9ob29rX25leHVzLgoKUmVwb3J0ZWQtYnk6IEJhbXZvciBKaWFuIFpoYW5nIDxi anpoYW5nQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25A ZXUuY2l0cml4LmNvbT4KCi0tLQogdG9vbHMvbGlieGwvbGlieGxfZXZlbnQuYyAgICB8ICAxODgg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIHRvb2xzL2xpYnhsL2xp YnhsX2ludGVybmFsLmggfCAgICA4ICsrLQogMiBmaWxlcyBjaGFuZ2VkLCAxNjYgaW5zZXJ0aW9u cygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZXZl bnQuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2V2ZW50LmMKaW5kZXggNzJjYjcyMy4uN2M4NzE5ZCAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZXZlbnQuYworKysgYi90b29scy9saWJ4bC9s aWJ4bF9ldmVudC5jCkBAIC0zOCwyMyArMzgsMTIzIEBACiAgKiBUaGUgYXBwbGljYXRpb24ncyBy ZWdpc3RyYXRpb24gaG9va3Mgc2hvdWxkIGJlIGNhbGxlZCBPTkxZIHZpYQogICogdGhlc2UgbWFj cm9zLCB3aXRoIHRoZSBjdHggbG9ja2VkLiAgTGlrZXdpc2UgYWxsIHRoZSAib2NjdXJyZWQiCiAg KiBlbnRyeXBvaW50cyBmcm9tIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgYXNzZXJ0KCFpbl9ob29r KTsKKyAqCisgKiBEdXIrICogZXZhbHVhdGVkIC0gZXYtPm5leHVzIGlzIGd1YXJhbnRlZWQgdG8g YmUgdmFsaWQgYW5kIHJlZmVyIHRvIHRoZQorICogbmV4dXMgd2hpY2ggaXMgYmVpbmcgdXNlZCBm b3IgdGhpcyBldmVudCByZWdpc3RyYXRpb24uICBUaGUKKyAqIGFyZ3VtZW50cyBzaG91bGQgc3Bl Y2lmeSBldi0+bmV4dXMgZm9yIHRoZSBmb3JfbGlieGwgYXJndW1lbnQgYW5kCisgKiBldi0+bmV4 dXMtPmZvcl9hcHBfcmVnIChvciBhIHBvaW50ZXIgdG8gaXQpIGZvciBmb3JfYXBwX3JlZy4KICAq LwotI2RlZmluZSBPU0VWRU5UX0hPT0tfSU5URVJOKHJldHZhbCwgaG9va25hbWUsIC4uLikgZG8g eyAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgaWYgKENUWC0+b3NldmVudF9ob29rcykgeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg Q1RYLT5vc2V2ZW50X2luX2hvb2srKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAotICAgICAgICByZXR2YWwgQ1RYLT5vc2V2ZW50X2hvb2tzLT5ob29rbmFt ZShDVFgtPm9zZXZlbnRfdXNlciwgX19WQV9BUkdTX18pOyBcCi0gICAgICAgIENUWC0+b3NldmVu dF9pbl9ob29rLS07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBPU0VWRU5UX0hPT0tfSU5URVJOKHJl dHZhbCwgZmFpbGVkcCwgZXZraW5kLCBob29rb3AsIC4uLikgZG8geyAgXAorICAgIGlmIChDVFgt Pm9zZXZlbnRfaG9va3MpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgICAgICBDVFgtPm9zZXZlbnRfaW5faG9vaysrOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBsaWJ4bF9fb3NldmVudF9ob29rX25leGkg Km5leGkgPSAmQ1RYLT5ob29rXyMjZXZraW5kIyNfbmV4aV9pZGxlOyBcCisgICAgICAgIG9zZXZl bnRfaG9va19wcmVfIyNob29rb3AoZ2MsIGV2LCBuZXhpLCAmZXYtPm5leHVzKTsgICAgICAgICAg ICBcCisgICAgICAgIHJldHZhbCBDVFgtPm9zZXZlbnRfaG9va3MtPmV2a2luZCMjXyMjaG9va29w ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAoQ1RYLT5vc2V2ZW50X3VzZXIsIF9f VkFfQVJHU19fKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmICgoZmFp bGVkcCkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgICAgICBvc2V2ZW50X2hvb2tfZmFpbGVkXyMjaG9va29wKGdjLCBldiwgbmV4aSwg JmV2LT5uZXh1cyk7ICAgICBcCisgICAgICAgIENUWC0+b3NldmVudF9pbl9ob29rLS07ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiB9 IHdoaWxlICgwKQogCi0jZGVmaW5lIE9TRVZFTlRfSE9PSyhob29rbmFtZSwgLi4uKSAoeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBpbnQgb3NldmVudF9ob29r X3JjID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAotICAgIE9TRVZFTlRfSE9PS19JTlRFUk4ob3NldmVudF9ob29rX3JjID0gLCBob29rbmFtZSwg X19WQV9BUkdTX18pOyAgICAgICAgICBcCi0gICAgb3NldmVudF9ob29rX3JjOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUg T1NFVkVOVF9IT09LKGV2a2luZCwgaG9va29wLCAuLi4pICh7ICAgICAgICAgICAgICAgICAgIFwK KyAgICBpbnQgb3NldmVudF9ob29rX3JjID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgT1NFVkVOVF9IT09LX0lOVEVSTihvc2V2ZW50X2hvb2tfcmMgPSwgISFv c2V2ZW50X2hvb2tfcmMsICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgZXZraW5kLCBob29r b3AsIF9fVkFfQVJHU19fKTsgICAgICAgICAgXAorICAgIG9zZXZlbnRfaG9va19yYzsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIH0pCiAKLSNkZWZpbmUgT1NF VkVOVF9IT09LX1ZPSUQoaG9va25hbWUsIC4uLikgXAotICAgIE9TRVZFTlRfSE9PS19JTlRFUk4o Lyogdm9pZCAqLywgaG9va25hbWUsIF9fVkFfQVJHU19fKQorI2RlZmluZSBPU0VWRU5UX0hPT0tf Vk9JRChldmtpbmQsIGhvb2tvcCwgLi4uKSBcCisgICAgT1NFVkVOVF9IT09LX0lOVEVSTigvKiB2 b2lkICovLCAwLCBldmtpbmQsIGhvb2tvcCwgX19WQV9BUkdTX18pCisKKy8qCisgKiBUaGUgYXBw bGljYXRpb24ncyBjYWxscyB0byBsaWJ4bF9vc2V2ZW50X29jY3VycmVkXy4uLiBtYXkgYmUKKyAq IGluZGVmaW5pdGVseSBkZWxheWVkIHdpdGggcmVzcGVjdCB0byB0aGUgcmVzdCBvZiB0aGUgcHJv Z3JhbSAoc2luY2UKKyAqIHRoZXkgYXJlIG5vdCBuZWNlc3NhcmlseSBjYWxsZWQgd2l0aCBhbnkg bG9jayBoZWxkKS4gIFNvIHRoZQorICogZm9yX2xpYnhsIHZhbHVlIHdlIHJlY2VpdmUgbWF5IGJl IChhbG1vc3QpIGFyYml0cmFyaWx5IG9sZC4gIEFsbCB3ZQorICoga25vdyBpcyB0aGF0IGl0IGNh bWUgZnJvbSB0aGlzIGN0eC4KKyAqCisgKiBUaGVyZWZvcmUgd2UgbWF5IG5vdCBmcmVlIHRoZSBv YmplY3QgcmVmZXJyZWQgdG8gYnkgYW55IGZvcl9saWJ4bAorICogdmFsdWUgdW50aWwgd2UgZnJl ZSB0aGUgd2hvbGUgbGlieGxfY3R4LiAgQW5kIGlmIHdlIHJldXNlIGl0IHdlCisgKiBtdXN0IGJl IGFibGUgdG8gdGVsbCB3aGVuIGFuIG9sZCB1c2UgdHVybnMgdXAsIGFuZCBkaXNjYXJkIHRoZQor ICogc3RhbGUgZXZlbnQuCisgKgorICogVGh1cyB3ZSBjYW5ub3QgdXNlIHRoZSBldiBkaXJlY3Rs eSBhcyB0aGUgZm9yX2xpYnhsIHZhbHVlIC0gd2UgbmVlZAorICogYSBsYXllciBvZiBpbmRpcmVj dGlvbi4KKyAqCisgKiBXZSBkbyB0aGlzIGJ5IGtlZXBpbmcgYSBwb29sIG9mIGxpYnhsX19vc2V2 ZW50X2hvb2tfbmV4dXMgc3RydWN0cywKKyAqIGFuZCB1c2UgcG9pbnRlcnMgdG8gdGhlbSBhcyBm b3JfbGlieGwgdmFsdWVzLiAgSW4gZmFjdCwgdGhlcmUgYXJlCisgKiB0d28gcG9vbHM6IG9uZSBm b3IgZmRzIGFuZCBvbmUgZm9yIHRpbWVvdXRzLiAgVGhpcyBlbnN1cmVzIHRoYXQgd2UKKyAqIGRv bid0IHJpc2sgYSB0eXBlIGVycm9yIHdoZW4gd2UgdXBjYXN0IG5leHVzLT5ldi4gIEluIGVhY2gg bmV4dXMKKyAqIHRoZSBldiBpcyBlaXRoZXIgbnVsbCBvciBwb2ludHMgdG8gYSB2YWxpZCBsaWJ4 bF9fZXZfdGltZSBvcgorICogbGlieGxfX2V2X2ZkLCBhcyBhcHBsaWNhYmxlLgorICoKKyAqIFdl IC9kby8gYWxsb3cgb3Vyc2VsdmVzIHRvIHJlYXNzb2NpYXRlIGFuIG9sZCBuZXh1cyB3aXRoIGEg bmV3IGV2CisgKiBhcyBvdGhlcndpc2Ugd2Ugd291bGQgaGF2ZSB0byBsZWFrIG5leGkuICAoVGhp cyByZWFzc29jaWF0aW9uCisgKiBtaWdodCwgb2YgY291cnNlLCBiZSBhbiBvbGQgZXYgYmVpbmcg cmV1c2VkIGZvciBhIG5ldyBwdXJwb3NlIHNvCisgKiBzaW1wbHkgY29tcGFyaW5nIHRoZSBldiBw b2ludGVyIGlzIG5vdCBzdWZmaWNpZW50LikgIFRodXMgdGhlCisgKiBsaWJ4bF9vc2V2ZW50X29j Y3VycmVkIGZ1bmN0aW9ucyBuZWVkIHRvIGNoZWNrIHRoYXQgdGhlIGNvbmRpdGlvbgorICogYWxs ZWdlZGx5IHNpZ25hbGxlZCBieSB0aGlzIGV2ZW50IGFjdHVhbGx5IGV4aXN0cy4KKyAqCisgKiBU aGUgbmV4aSBhbmQgdGhlIGxpc3RzIGFyZSBhbGwgcHJvdGVjdGVkIGJ5IHRoZSBjdHggbG9jay4K KyAqLworIAorc3RydWN0IGxpYnhsX19vc2V2ZW50X2hvb2tfbmV4dXMgeworICAgIExJQlhMX1NM SVNUX0VOVFJZKGxpYnhsX19vc2V2ZW50X2hvb2tfbmV4dXMpIG5leHQ7Cit9OworCitzdGF0aWMg dm9pZCBvc2V2ZW50X2hvb2tfcHJlX3JlZ2lzdGVyKGxpYnhsX19nYyAqZ2MsIHZvaWQgKmV2LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fb3NldmVudF9ob29r X25leGkgKm5leGlfaWRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfX29zZXZlbnRfaG9va19uZXh1cyAqKm5leHVzX3IpCit7CisgICAgbGlieGxfX29zZXZl bnRfaG9va19uZXh1cyAqbmV4dXMgPSBMSUJYTF9TTElTVF9GSVJTVChuZXhpX2lkbGUpOworICAg IGlmIChuZXh1cykgeworICAgICAgICBMSUJYTF9TTElTVF9SRU1PVkVfSEVBRChuZXhpX2lkbGUs IG5leHQpOworICAgIH0gZWxzZSB7CisgICAgICAgIG5leHVzID0gbGlieGxfX3phbGxvYyhOT0dD LCBzaXplb2YoKm5leHVzKSk7CisgICAgfQorICAgIG5leHVzLT5ldiA9IGV2OworICAgICpuZXh1 c19yID0gbmV4dXM7Cit9CitzdGF0aWMgdm9pZCBvc2V2ZW50X2hvb2tfcHJlX2RlcmVnaXN0ZXIo bGlieGxfX2djICpnYywgdm9pZCAqZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfX29zZXZlbnRfaG9va19uZXhpICpuZXhpX2lkbGUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX29zZXZlbnRfaG9va19uZXh1cyAq Km5leHVzKQoreworICAgICgqbmV4dXMpLT5ldiA9IDA7CisgICAgTElCWExfU0xJU1RfSU5TRVJU X0hFQUQobmV4aV9pZGxlLCAqbmV4dXMsIG5leHQpOworfQorc3RhdGljIHZvaWQgb3NldmVudF9o b29rX3ByZV9tb2RpZnkobGlieGxfX2djICpnYywgdm9pZCAqZXYsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fb3NldmVudF9ob29rX25leGkgKm5leGlfaWRsZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19vc2V2ZW50X2hvb2tf bmV4dXMgKipuZXh1cykKK3sKK30KKworc3RhdGljIHZvaWQgb3NldmVudF9ob29rX2ZhaWxlZF9y ZWdpc3RlcihsaWJ4bF9fZ2MgKmdjLCB2b2lkICpldiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGlieGxfX29zZXZlbnRfaG9va19uZXhpICpuZXhpX2lkbGUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19vc2V2ZW50X2hv b2tfbmV4dXMgKipuZXh1cykKK3sKKyAgICBvc2V2ZW50X2hvb2tfcHJlX2RlcmVnaXN0ZXIoZ2Ms IGV2LCBuZXhpX2lkbGUsIG5leHVzKTsKK30KK3N0YXRpYyB2b2lkIG9zZXZlbnRfaG9va19mYWls ZWRfZGVyZWdpc3RlcihsaWJ4bF9fZ2MgKmdjLCB2b2lkICpldiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fb3NldmVudF9ob29rX25leGkgKm5leGlf aWRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9f b3NldmVudF9ob29rX25leHVzICoqbmV4dXMpCit7CisgICAgYWJvcnQoKTsKK30KK3N0YXRpYyB2 b2lkIG9zZXZlbnRfaG9va19mYWlsZWRfbW9kaWZ5KGxpYnhsX19nYyAqZ2MsIHZvaWQgKmV2LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX29zZXZlbnRfaG9v a19uZXhpICpuZXhpX2lkbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWJ4bF9fb3NldmVudF9ob29rX25leHVzICoqbmV4dXMpCit7Cit9CisKK3N0YXRpYyB2b2lk ICpvc2V2ZW50X2V2X2Zyb21faG9va19uZXh1cyhsaWJ4bF9jdHggKmN0eCwgdm9pZCAqZm9yX2xp YnhsKQoreworICAgIGxpYnhsX19vc2V2ZW50X2hvb2tfbmV4dXMgKm5leHVzID0gZm9yX2xpYnhs OworICAgIHJldHVybiBuZXh1cy0+ZXY7Cit9CiAKIC8qCiAgKiBmZCBldmVudHMKQEAgLTcyLDcg KzE3Miw4IEBAIGludCBsaWJ4bF9fZXZfZmRfcmVnaXN0ZXIobGlieGxfX2djICpnYywgbGlieGxf X2V2X2ZkICpldiwKIAogICAgIERCRygiZXZfZmQ9JXAgcmVnaXN0ZXIgZmQ9JWQgZXZlbnRzPSV4 IiwgZXYsIGZkLCBldmVudHMpOwogCi0gICAgcmMgPSBPU0VWRU5UX0hPT0soZmRfcmVnaXN0ZXIs IGZkLCAmZXYtPmZvcl9hcHBfcmVnLCBldmVudHMsIGV2KTsKKyAgICByYyA9IE9TRVZFTlRfSE9P SyhmZCwgcmVnaXN0ZXIsIGZkLCAmZXYtPm5leHVzLT5mb3JfYXBwX3JlZywKKyAgICAgICAgICAg ICAgICAgICAgICBldmVudHMsIGV2LT5uZXh1cyk7CiAgICAgaWYgKHJjKSBnb3RvIG91dDsKIAog ICAgIGV2LT5mZCA9IGZkOwpAQCAtOTcsNyArMTk4LDcgQEAgaW50IGxpYnhsX19ldl9mZF9tb2Rp ZnkobGlieGxfX2djICpnYywgbGlieGxfX2V2X2ZkICpldiwgc2hvcnQgZXZlbnRzKQogCiAgICAg REJHKCJldl9mZD0lcCBtb2RpZnkgZmQ9JWQgZXZlbnRzPSV4IiwgZXYsIGV2LT5mZCwgZXZlbnRz KTsKIAotICAgIHJjID0gT1NFVkVOVF9IT09LKGZkX21vZGlmeSwgZXYtPmZkLCAmZXYtPmZvcl9h cHBfcmVnLCBldmVudHMpOworICAgIHJjID0gT1NFVkVOVF9IT09LKGZkLCBtb2RpZnksIGV2LT5m ZCwgJmV2LT5uZXh1cy0+Zm9yX2FwcF9yZWcsIGV2ZW50cyk7CiAgICAgaWYgKHJjKSBnb3RvIG91 dDsKIAogICAgIGV2LT5ldmVudHMgPSBldmVudHM7CkBAIC0xMTksNyArMjIwLDcgQEAgdm9pZCBs aWJ4bF9fZXZfZmRfZGVyZWdpc3RlcihsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9fZXZfZmQgKmV2KQog CiAgICAgREJHKCJldl9mZD0lcCBkZXJlZ2lzdGVyIGZkPSVkIiwgZXYsIGV2LT5mZCk7CiAKLSAg ICBPU0VWRU5UX0hPT0tfVk9JRChmZF9kZXJlZ2lzdGVyLCBldi0+ZmQsIGV2LT5mb3JfYXBwX3Jl Zyk7CisgICAgT1NFVkVOVF9IT09LX1ZPSUQoZmQsIGRlcmVnaXN0ZXIsIGV2LT5mZCwgZXYtPm5l eHVzLT5mb3JfYXBwX3JlZyk7CiAgICAgTElCWExfTElTVF9SRU1PVkUoZXYsIGVudHJ5KTsKICAg ICBldi0+ZmQgPSAtMTsKIApAQCAtMTcxLDcgKzI3Miw4IEBAIHN0YXRpYyBpbnQgdGltZV9yZWdp c3Rlcl9maW5pdGUobGlieGxfX2djICpnYywgbGlieGxfX2V2X3RpbWUgKmV2LAogewogICAgIGlu dCByYzsKIAotICAgIHJjID0gT1NFVkVOVF9IT09LKHRpbWVvdXRfcmVnaXN0ZXIsICZldi0+Zm9y X2FwcF9yZWcsIGFic29sdXRlLCBldik7CisgICAgcmMgPSBPU0VWRU5UX0hPT0sodGltZW91dCwg cmVnaXN0ZXIsICZldi0+bmV4dXMtPmZvcl9hcHBfcmVnLAorICAgICAgICAgICAgICAgICAgICAg IGFic29sdXRlLCBldi0+bmV4dXMpOwogICAgIGlmIChyYykgcmV0dXJuIHJjOwogCiAgICAgZXYt PmluZmluaXRlID0gMDsKQEAgLTE4NCw3ICsyODYsNyBAQCBzdGF0aWMgaW50IHRpbWVfcmVnaXN0 ZXJfZmluaXRlKGxpYnhsX19nYyAqZ2MsIGxpYnhsX19ldl90aW1lICpldiwKIHN0YXRpYyB2b2lk IHRpbWVfZGVyZWdpc3RlcihsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9fZXZfdGltZSAqZXYpCiB7CiAg ICAgaWYgKCFldi0+aW5maW5pdGUpIHsKLSAgICAgICAgT1NFVkVOVF9IT09LX1ZPSUQodGltZW91 dF9kZXJlZ2lzdGVyLCBldi0+Zm9yX2FwcF9yZWcpOworICAgICAgICBPU0VWRU5UX0hPT0tfVk9J RCh0aW1lb3V0LCBkZXJlZ2lzdGVyLCBldi0+bmV4dXMtPmZvcl9hcHBfcmVnKTsKICAgICAgICAg TElCWExfVEFJTFFfUkVNT1ZFKCZDVFgtPmV0aW1lcywgZXYsIGVudHJ5KTsKICAgICB9CiB9CkBA IC0yNzAsNyArMzcyLDcgQEAgaW50IGxpYnhsX19ldl90aW1lX21vZGlmeV9hYnMobGlieGxfX2dj ICpnYywgbGlieGxfX2V2X3RpbWUgKmV2LAogICAgICAgICByYyA9IHRpbWVfcmVnaXN0ZXJfZmlu aXRlKGdjLCBldiwgYWJzb2x1dGUpOwogICAgICAgICBpZiAocmMpIGdvdG8gb3V0OwogICAgIH0g ZWxzZSB7Ci0gICAgICAgIHJjID0gT1NFVkVOVF9IT09LKHRpbWVvdXRfbW9kaWZ5LCAmZXYtPmZv cl9hcHBfcmVnLCBhYnNvbHV0ZSk7CisgICAgICAgIHJjID0gT1NFVkVOVF9IT09LKCAgICAgICAg IExJQlhMX1RBSUxRX1JFTU9WRSgmQ1RYLT5ldGltZXMsIGV2LCBlbnRyeSk7CkBAIC0xMDEwLDM1 ICsxMTEyLDY1IEBAIHZvaWQgbGlieGxfb3NldmVudF9yZWdpc3Rlcl9ob29rcyhsaWJ4bF9jdHgg KmN0eCwKIAogCiB2b2lkIGxpYnhsX29zZXZlbnRfb2NjdXJyZWRfZmQobGlieGxfY3R4ICpjdHgs IHZvaWQgKmZvcl9saWJ4bCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmQs IHNob3J0IGV2ZW50cywgc2hvcnQgcmV2ZW50cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgZmQsIHNob3J0IGV2ZW50c19pZ24sIHNob3J0IHJldmVudHNfaWduKQogewotICAg IGxpYnhsX19ldl9mZCAqZXYgPSBmb3JfbGlieGw7Ci0KICAgICBFR0NfSU5JVChjdHgpOwogICAg IENUWF9MT0NLOwogICAgIGFzc2VydCghQ1RYLT5vc2V2ZW50X2luX2hvb2spOwogCi0gICAgYXNz ZXJ0KGZkID09IGV2LT5mZCk7Ci0gICAgcmV2ZW50cyAmPSBldi0+ZXZlbnRzOwotICAgIGlmIChy ZXZlbnRzKQotICAgICAgICBldi0+ZnVuYyhlZ2MsIGV2LCBmZCwgZXYtPmV2ZW50cywgcmV2ZW50 cyk7CisgICAgbGlieGxfX2V2X2ZkICpldiA9IG9zZXZlbnRfZXZfZnJvbV9ob29rX25leHVzKGN0 eCwgZm9yX2xpYnhsKTsKKyAgICBpZiAoIWV2KSBnb3RvIG91dDsKKyAgICBpZiAoZXYtPmZkICE9 IGZkKSBnb3RvIG91dDsKKworICAgIHN0cnVjdCBwb2xsZmQgY2hlY2s7CisgICAgZm9yICg7Oykg eworICAgICAgICBjaGVjay5mZCA9IGZkOworICAgICAgICBjaGVjay5ldmVudHMgPSBldi0+ZXZl bnRzOworICAgICAgICBpbnQgciA9IHBvbGwoJmNoZWNrLCAxLCAwKTsKKyAgICAgICAgaWYgKCFy KQorICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgIGlmIChyPT0xKQorICAgICAgICAgICAg YnJlYWs7CisgICAgICAgIGFzc2VydChyPDApOworICAgICAgICBpZiAoZXJybm8gIT0gRUlOVFIp IHsKKyAgICAgICAgICAgIExJQlhMX19FVkVOVF9ESVNBU1RFUihlZ2MsICJmYWlsZWQgcG9sbCB0 byBjaGVjayBmb3IgZmQiLCBlcnJubywgMCk7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAg ICAgfQorICAgIH0KIAorICAgIGlmIChjaGVjay5yZXZlbnRzKQorICAgICAgICBldi0+ZnVuYyhl Z2MsIGV2LCBmZCwgZXYtPmV2ZW50cywgY2hlY2sucmV2ZW50cyk7CisKKyBvdXQ6CiAgICAgQ1RY X1VOTE9DSzsKICAgICBFR0NfRlJFRTsKIH0KIAogdm9pZCBsaWJ4bF9vc2V2ZW50X29jY3VycmVk X3RpbWVvdXQobGlieGxfY3R4ICpjdHgsIHZvaWQgKmZvcl9saWJ4bCkKIHsKLSAgICBsaWJ4bF9f ZXZfdGltZSAqZXYgPSBmb3JfbGlieGw7Ci0KICAgICBFR0NfSU5JVChjdHgpOwogICAgIENUWF9M T0NLOwogICAgIGFzc2VydCghQ1RYLT5vc2V2ZW50X2luX2hvb2spOwogCi0gICAgYXNzZXJ0KCFl di0+aW5maW5pdGUpOworICAgIGxpYnhsX19ldl90aW1lICpldiA9IG9zZXZlbnRfZXZfZnJvbV9o b29rX25leHVzKGN0eCwgZm9yX2xpYnhsKTsKKyAgICBpZiAoIWV2KSBnb3RvIG91dDsKKyAgICBp ZiAoZXYtPmluZmluaXRlKSBnb3RvIG91dDsKKworICAgIHN0cnVjdCB0aW1ldmFsIG5vdzsKKyAg ICBpbnQgciA9IGxpYnhsX19nZXR0aW1lb2ZkYXkoZ2MsICZub3cpOworICAgIGlmIChyKQorICAg ICAgICAvKiBwcm9iYWJseSg/KSBzYWZlciB0byByaXNrIGEgcmFjZSBjYXVzaW5nIGEgdGltZSBl dmVudCB0bworICAgICAgICAgKiBoYXBwZW4gZWFybHkgdGhhbiB0byBpZ25vcmUgdGhlIGV2ZW50 IGFuZCBjYWxsIERJU0FTVEVSICovCisgICAgICAgIGdvdG8gb3V0OworCisgICAgaWYgKHRpbWVy Y21wKCZldi0+YWJzLCAmbm93LCA+KSkKKyAgICAgICAgLyogbG9zdCB0aGUgcmFjZSAtIHRoaXMg aXMgYSBzdGFsZSB0aW1lciBldmVudCBjYWxsYmFjayAqLworICAgICAgICBnb3RvIG91dDsKKwog ICAgIExJQlhMX1RBSUxRX1JFTU9WRSgmQ1RYLT5ldGltZXMsIGV2LCBlbnRyeSk7CiAgICAgZXYt PmZ1bmMoZWdjLCBldiwgJmV2LT5hYnMpOwogCisgb3V0OgogICAgIENUWF9VTkxPQ0s7CiAgICAg RUdDX0ZSRUU7CiB9CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIGIv dG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAppbmRleCBjYmEzNjE2Li42NDg0YmNiIDEwMDY0 NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xp YnhsX2ludGVybmFsLmgKQEAgLTEzNiw2ICsxMzYsOCBAQCB0eXBlZGVmIHN0cnVjdCBsaWJ4bF9f Z2MgbGlieGxfX2djOwogdHlwZWRlZiBzdHJ1Y3QgbGlieGxfX2VnYyBsaWJ4bF9fZWdjOwogdHlw ZWRlZiBzdHJ1Y3QgbGlieGxfX2FvIGxpYnhsX19hbzsKIHR5cGVkZWYgc3RydWN0IGxpYnhsX19h b3Bfb2NjdXJyZWQgbGlieGxfX2FvcF9vY2N1cnJlZDsKK3R5cGVkZWYgc3RydWN0IGxpYnhsX19v c2V2ZW50X2hvb2tfbmV4dXMgbGlieGxfX29zZXZlbnRfaG9va19uZXh1czsKK3R5cGVkZWYgc3Ry dWN0IGxpYnhsX19vc2V2ZW50X2hvb2tfbmV4aSBsaWJ4bF9fb3NldmVudF9ob29rX25leGk7CiAK IF9oaWRkZW4gdm9pZCBsaWJ4bF9fYWxsb2NfZmFpbGVkKGxpYnhsX2N0eCAqLCBjb25zdCBjaGFy ICpmdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBubWVtYiwgc2l6ZV90IHNp emUpIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSk7CkBAIC0xNjMsNyArMTY1LDcgQEAgc3RydWN0 IGxpYnhsX19ldl9mZCB7CiAgICAgbGlieGxfX2V2X2ZkX2NhbGxiYWNrICpmdW5jOwogICAgIC8q IHJlbWFpbmRlciBpcyBwcml2YXRlIGZvciBsaWJ4bF9fZXZfZmQuLi4gKi8KICAgICBMSUJYTF9M SVNUX0VOVFJZKGxpYnhsX19ldl9mZCkgZW50cnk7Ci0gICAgdm9pZCAqZm9yX2FwcF9yZWc7Cisg ICAgbGlieGxfX29zZXZlbnRfaG9va19uZXh1cyAqbmV4dXM7CiB9OwogCiAKQEAgLTE3OCw3ICsx ODAsNyBAQCBzdHJ1Y3QgbGlieGxfX2V2X3RpbWUgewogICAgIGludCBpbmZpbml0ZTsgLyogbm90 IHJlZ2lzdGVyZWQgaW4gbGlzdCBvciB3aXRoIGFwcCBpZiBpbmZpbml0ZSAqLwogICAgIExJQlhM X1RBSUxRX0VOVFJZKGxpYnhsX19ldl90aW1lKSBlbnRyeTsKICAgICBzdHJ1Y3QgdGltZXZhbCBh YnM7Ci0gICAgdm9pZCAqZm9yX2FwcF9yZWc7CisgICAgbGlieGxfX29zZXZlbnRfaG9va19uZXh1 cyAqbmV4dXM7CiB9OwogCiB0eXBlZGVmIHN0cnVjdCBsaWJ4bF9fZXZfeHN3YXRjaCBsaWJ4bF9f ZXZfeHN3YXRjaDsKQEAgLTMyOSw2ICszMzEsOCBAQCBzdHJ1Y3QgbGlieGxfX2N0eCB7CiAgICAg bGlieGxfX3BvbGxlciBwb2xsZXJfYXBwOyAvKiBsaWJ4bF9vc2V2ZW50X2JlZm9yZXBvbGwgYW5k IF9hZnRlcnBvbGwgKi8KICAgICBMSUJYTF9MSVNUX0hFQUQoLCBsaWJ4bF9fcG9sbGVyKSBwb2xs ZXJzX2V2ZW50LCBwb2xsZXJzX2lkbGU7CiAKKyAgICBMSUJYTF9TTElTVF9IRUFEKGxpYnhsX19v c2V2ZW50X2hvb2tfbmV4aSwgbGlieGxfX29zZXZlbnRfaG9va19uZXh1cykKKyAgICAgICAgaG9v a19mZF9uZXhpX2lkbGUsIGhvb2tfdGltZW91dF9uZXhpX2lkbGU7CiAgICAgTElCWExfTElTVF9I RUFEKCwgbGlieGxfX2V2X2ZkKSBlZmRzOwogICAgIExJQlhMX1RBSUxRX0hFQUQoLCBsaWJ4bF9f ZXZfdGltZSkgZXRpbWVzOwogCi0tIAp0ZzogKGJmZTcwMjUuLikgdC94ZW4veGwuZXZlbnRmaXgy LmZkcmVnLmluZGlyZWN0IChkZXBlbmRzIG9uOiBiYXNlKQoKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=