From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhai, Edwin" Subject: [PATCH] [HVM] fix HVM log dirty issue Date: Fri, 04 Sep 2009 17:01:07 +0800 Message-ID: <4AA0D753.8070005@intel.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010001050300080106090504" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Stefano Stabellini , Ian Jackson , Keir Fraser Cc: xen-devel@lists.xensource.com, "Zhai, Edwin" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------010001050300080106090504 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit These patches fix some issues for HVM log dirty in qemu: * Add necessary logging dirty in qemu to avoid guest error with intensive disk access when live migration * Take place of shared memory between qemu and migration tools by new added hypercall, which is clean and simple Signed-Off-By: Zhai, Edwin --------------010001050300080106090504 Content-Type: application/octet-stream; name="hvm_log_dirty_fix_qemu.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="hvm_log_dirty_fix_qemu.patch" SW5kZXg6IGh2L3Rvb2xzL2lvZW11LXJlbW90ZS9jcHUtYWxsLmgKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gaHYub3JpZy90b29scy9pb2VtdS1yZW1vdGUvY3B1LWFsbC5oCisrKyBodi90b29scy9p b2VtdS1yZW1vdGUvY3B1LWFsbC5oCkBAIC05NzIsMTAgKzk3MiwxNCBAQCBzdGF0aWMgaW5s aW5lIGludCBjcHVfcGh5c2ljYWxfbWVtb3J5X2dlCiAgICAgcmV0dXJuIHBoeXNfcmFtX2Rp cnR5W2FkZHIgPj4gVEFSR0VUX1BBR0VfQklUU10gJiBkaXJ0eV9mbGFnczsKIH0KIAorI2lm ZGVmIENPTkZJR19ETQordm9pZCBjcHVfcGh5c2ljYWxfbWVtb3J5X3NldF9kaXJ0eShyYW1f YWRkcl90IGFkZHIpOworI2Vsc2UKIHN0YXRpYyBpbmxpbmUgdm9pZCBjcHVfcGh5c2ljYWxf bWVtb3J5X3NldF9kaXJ0eShyYW1fYWRkcl90IGFkZHIpCiB7CiAgICAgcGh5c19yYW1fZGly dHlbYWRkciA+PiBUQVJHRVRfUEFHRV9CSVRTXSA9IDB4ZmY7CiB9CisjZW5kaWYKIAogdm9p ZCBjcHVfcGh5c2ljYWxfbWVtb3J5X3Jlc2V0X2RpcnR5KHJhbV9hZGRyX3Qgc3RhcnQsIHJh bV9hZGRyX3QgZW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCBkaXJ0eV9mbGFncyk7CkluZGV4OiBodi90b29scy9pb2VtdS1yZW1vdGUvaTM4Ni1kbS9l eGVjLWRtLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHYub3JpZy90b29scy9pb2VtdS1yZW1vdGUv aTM4Ni1kbS9leGVjLWRtLmMKKysrIGh2L3Rvb2xzL2lvZW11LXJlbW90ZS9pMzg2LWRtL2V4 ZWMtZG0uYwpAQCAtMzU5LDYgKzM1OSwxNCBAQCB2b2lkIGNwdV91bnJlZ2lzdGVyX2lvX21l bW9yeShpbnQgaW9fdGFiCiAgICAgaW9fbWVtX29wYXF1ZVtpb19pbmRleF0gPSBOVUxMOwog fQogCit2b2lkIGNwdV9waHlzaWNhbF9tZW1vcnlfc2V0X2RpcnR5KHJhbV9hZGRyX3QgYWRk cikKK3sKKyAgICBwaHlzX3JhbV9kaXJ0eVthZGRyID4+IFRBUkdFVF9QQUdFX0JJVFNdID0g MHhmZjsKKworICAgIGlmICh4ZW5fbG9nZGlydHlfZW5hYmxlKQorICAgICAgICB4Y19odm1f bW9kaWZpZWRfbWVtb3J5KHhjX2hhbmRsZSwgZG9taWQsIGFkZHIgPj4gVEFSR0VUX1BBR0Vf QklUUywgMSk7Cit9CisKIENQVVdyaXRlTWVtb3J5RnVuYyAqKmNwdV9nZXRfaW9fbWVtb3J5 X3dyaXRlKGludCBpb19pbmRleCkKIHsKICAgICByZXR1cm4gaW9fbWVtX3dyaXRlW2lvX2lu ZGV4ID4+IElPX01FTV9TSElGVF07CkBAIC00NTMsOCArNDYxLDcgQEAgdm9pZCB1bnJlZ2lz dGVyX2lvbWVtKHRhcmdldF9waHlzX2FkZHJfdAogfQogCiAKLXVuc2lnbmVkIGxvbmcgKmxv Z2RpcnR5X2JpdG1hcDsKLXVuc2lnbmVkIGxvbmcgbG9nZGlydHlfYml0bWFwX3NpemU7Cit1 bnNpZ25lZCBpbnQgeGVuX2xvZ2RpcnR5X2VuYWJsZSA9IDA7CiAKIC8qCiAgKiBSZXBsYWNl IHRoZSBzdGFuZGFyZCBieXRlIG1lbWNweSB3aXRoIGEgd29yZCBtZW1jcHkgZm9yIGFwcHJv cHJpYXRlbHkgc2l6ZWQKQEAgLTU1NywxOSArNTY0LDEzIEBAIHZvaWQgY3B1X3BoeXNpY2Fs X21lbW9yeV9ydyh0YXJnZXRfcGh5c18KICAgICAgICAgICAgIH0gZWxzZSBpZiAoKHB0ciA9 IHBoeXNfcmFtX2FkZHIoYWRkcikpICE9IE5VTEwpIHsKICAgICAgICAgICAgICAgICAvKiBX cml0aW5nIHRvIFJBTSAqLwogICAgICAgICAgICAgICAgIG1lbWNweV93b3JkcyhwdHIsIGJ1 ZiwgbCk7Ci0jaWZuZGVmIENPTkZJR19TVFVCRE9NCi0gICAgICAgICAgICAgICAgaWYgKGxv Z2RpcnR5X2JpdG1hcCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8qIFJlY29y ZCB0aGF0IHdlIGhhdmUgZGlydGllZCB0aGlzIGZyYW1lICovCi0gICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgcGZuID0gYWRkciA+PiBUQVJHRVRfUEFHRV9CSVRTOwotICAg ICAgICAgICAgICAgICAgICBpZiAocGZuIC8gOCA+PSBsb2dkaXJ0eV9iaXRtYXBfc2l6ZSkg ewotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50Zihsb2dmaWxlLCAiZGlydHlpbmcg cGZuICVseCA+PSBiaXRtYXAgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi c2l6ZSAlbHhcbiIsIHBmbiwgbG9nZGlydHlfYml0bWFwX3NpemUgKiA4KTsKLSAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2RpcnR5 X2JpdG1hcFtwZm4gLyBIT1NUX0xPTkdfQklUU10KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8PSAxVUwgPDwgcGZuICUgSE9TVF9MT05HX0JJVFM7Ci0gICAgICAgICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0jZW5kaWYKKworICAgICAgICAgICAgICAgIGlm ICh4ZW5fbG9nZGlydHlfZW5hYmxlKQorICAgICAgICAgICAgICAgICAgICB4Y19odm1fbW9k aWZpZWRfbWVtb3J5KHhjX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlk LAorICAgICAgICAgICAgICAgICAgICAgICAgYWRkciA+PiBUQVJHRVRfUEFHRV9CSVRTLAor ICAgICAgICAgICAgICAgICAgICAgICAgKChhZGRyICsgbCArIFRBUkdFVF9QQUdFX1NJWkUg LSAxKSA+PiBUQVJHRVRfUEFHRV9CSVRTKQorICAgICAgICAgICAgICAgICAgICAgICAgLSAo YWRkciA+PiBUQVJHRVRfUEFHRV9CSVRTKSk7CiAjaWZkZWYgX19pYTY0X18KICAgICAgICAg ICAgICAgICBzeW5jX2ljYWNoZShwdHIsIGwpOwogI2VuZGlmIApAQCAtNjA1LDEzICs2MDYs NiBAQCB2b2lkIGNwdV9waHlzaWNhbF9tZW1vcnlfcncodGFyZ2V0X3BoeXNfCiAgICAgICAg IGFkZHIgKz0gbDsKICAgICB9CiAKLSNpZmRlZiBDT05GSUdfU1RVQkRPTQotICAgIGlmIChs b2dkaXJ0eV9iaXRtYXAgIT0gTlVMTCkKLSAgICAgICAgeGNfaHZtX21vZGlmaWVkX21lbW9y eSh4Y19oYW5kbGUsIGRvbWlkLCBfYWRkciA+PiBUQVJHRVRfUEFHRV9CSVRTLAotICAgICAg ICAgICAgICAgICgoX2FkZHIgKyBfbGVuICsgVEFSR0VUX1BBR0VfU0laRSAtIDEpID4+IFRB UkdFVF9QQUdFX0JJVFMpCi0gICAgICAgICAgICAgICAgICAgIC0gKF9hZGRyID4+IFRBUkdF VF9QQUdFX0JJVFMpKTsKLSNlbmRpZgotCiAgICAgbWFwY2FjaGVfdW5sb2NrKCk7CiB9CiAj ZW5kaWYKQEAgLTgwNiw2ICs4MDAsMTEgQEAgdm9pZCAqY3B1X3BoeXNpY2FsX21lbW9yeV9t YXAodGFyZ2V0X3BoeQogICAgIGlmICgoKnBsZW4pID4gbCkKICAgICAgICAgKnBsZW4gPSBs OwogI2VuZGlmCisgICAgaWYgKHhlbl9sb2dkaXJ0eV9lbmFibGUpCisgICAgICAgIHhjX2h2 bV9tb2RpZmllZF9tZW1vcnkoeGNfaGFuZGxlLCBkb21pZCwgYWRkciA+PiBUQVJHRVRfUEFH RV9CSVRTLAorICAgICAgICAgICAgICAgICgoYWRkciArIGwgKyBUQVJHRVRfUEFHRV9TSVpF IC0gMSkgPj4gVEFSR0VUX1BBR0VfQklUUykKKyAgICAgICAgICAgICAgICAgICAgLSAoYWRk ciA+PiBUQVJHRVRfUEFHRV9CSVRTKSk7CisKICAgICByZXR1cm4gcWVtdV9tYXBfY2FjaGUo YWRkciwgMSk7CiB9CiAKSW5kZXg6IGh2L3Rvb2xzL2lvZW11LXJlbW90ZS94ZW4tY29uZmln LWhvc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodi5vcmlnL3Rvb2xzL2lvZW11LXJlbW90ZS94 ZW4tY29uZmlnLWhvc3QuaAorKysgaHYvdG9vbHMvaW9lbXUtcmVtb3RlL3hlbi1jb25maWct aG9zdC5oCkBAIC0zOSw4ICszOSw3IEBAIHN0cnVjdCBDaGFyRHJpdmVyU3RhdGU7CiB2b2lk IHhlbnN0b3JlX3N0b3JlX3NlcmlhbF9wb3J0X2luZm8oaW50IGksIHN0cnVjdCBDaGFyRHJp dmVyU3RhdGUgKmNociwKIAkJCQkgICAgIGNvbnN0IGNoYXIgKmRldm5hbWUpOwogCi1leHRl cm4gdW5zaWduZWQgbG9uZyAqbG9nZGlydHlfYml0bWFwOwotZXh0ZXJuIHVuc2lnbmVkIGxv bmcgbG9nZGlydHlfYml0bWFwX3NpemU7CitleHRlcm4gdW5zaWduZWQgaW50IHhlbl9sb2dk aXJ0eV9lbmFibGU7CiAKICNpZmRlZiBDT05GSUdfU1RVQkRPTQogI3VuZGVmIEhBVkVfSU9W RUMKSW5kZXg6IGh2L3Rvb2xzL2lvZW11LXJlbW90ZS94ZW5zdG9yZS5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIGh2Lm9yaWcvdG9vbHMvaW9lbXUtcmVtb3RlL3hlbnN0b3JlLmMKKysrIGh2L3Rv b2xzL2lvZW11LXJlbW90ZS94ZW5zdG9yZS5jCkBAIC0xMywxMyArMTMsNiBAQAogCiAjaW5j bHVkZSAiYmxvY2tfaW50LmgiCiAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaWZuZGVmIENPTkZJ R19TVFVCRE9NCi0jaW5jbHVkZSA8c3lzL2lwYy5oPgotI2luY2x1ZGUgPHN5cy9zaG0uaD4K LSNlbmRpZgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+ Ci0jaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxhc3NlcnQuaD4KIAogI2luY2x1ZGUg ImV4ZWMtYWxsLmgiCkBAIC01ODYsOCArNTc5LDggQEAgdm9pZCB4ZW5zdG9yZV9wYXJzZV9k b21haW5fY29uZmlnKGludCBodgogI2VuZGlmCiAKIAotICAgIC8qIFNldCBhIHdhdGNoIGZv ciBsb2ctZGlydHkgcmVxdWVzdHMgZnJvbSB0aGUgbWlncmF0aW9uIHRvb2xzICovCi0gICAg aWYgKHBhc3ByaW50ZigmYnVmLCAiL2xvY2FsL2RvbWFpbi8wL2RldmljZS1tb2RlbC8ldS9s b2dkaXJ0eS9uZXh0LWFjdGl2ZSIsCisgICAgLyogU2V0IGEgd2F0Y2ggZm9yIGxvZy1kaXJ0 eSBjb21tYW5kcyBmcm9tIHRoZSBtaWdyYXRpb24gdG9vbHMgKi8KKyAgICBpZiAocGFzcHJp bnRmKCZidWYsICIvbG9jYWwvZG9tYWluLzAvZGV2aWNlLW1vZGVsLyV1L2xvZ2RpcnR5L2Nt ZCIsCiAgICAgICAgICAgICAgICAgICBkb21pZCkgIT0gLTEpIHsKICAgICAgICAgeHNfd2F0 Y2goeHNoLCBidWYsICJsb2dkaXJ0eSIpOwogICAgICAgICBmcHJpbnRmKGxvZ2ZpbGUsICJX YXRjaGluZyAlc1xuIiwgYnVmKTsKQEAgLTY3OCwxMTEgKzY3MSw0NCBAQCBpbnQgeGVuc3Rv cmVfZmQodm9pZCkKIHN0YXRpYyB2b2lkIHhlbnN0b3JlX3Byb2Nlc3NfbG9nZGlydHlfZXZl bnQodm9pZCkKIHsKICAgICBjaGFyICphY3Q7Ci0gICAgc3RhdGljIGNoYXIgKmFjdGl2ZV9w YXRoID0gTlVMTDsKLSAgICBzdGF0aWMgY2hhciAqbmV4dF9hY3RpdmVfcGF0aCA9IE5VTEw7 Ci0gICAgc3RhdGljIGNoYXIgKnNlZyA9IE5VTEw7CisgICAgY2hhciAqcmV0X3BhdGggPSBO VUxMOworICAgIGNoYXIgKmNtZF9wYXRoID0gTlVMTDsKICAgICB1bnNpZ25lZCBpbnQgbGVu OwotICAgIGludCBpOwotCi0gICAgaWYgKCFzZWcpIHsKLSAgICAgICAgY2hhciAqcGF0aCA9 IE5VTEwsICprZXlfYXNjaWksIGtleV90ZXJtaW5hdGVkWzE3XSA9IHswLH07Ci0gICAgICAg IGtleV90IGtleTsKLSAgICAgICAgaW50IHNobWlkOwotCi0gICAgICAgIC8qIEZpbmQgYW5k IG1hcCB0aGUgc2hhcmVkIG1lbW9yeSBzZWdtZW50IGZvciBsb2ctZGlydHkgYml0bWFwcyAq LwotICAgICAgICBpZiAocGFzcHJpbnRmKCZwYXRoLCAKLSAgICAgICAgICAgICAgICAgICAg ICAiL2xvY2FsL2RvbWFpbi8wL2RldmljZS1tb2RlbC8ldS9sb2dkaXJ0eS9rZXkiLCAKLSAg ICAgICAgICAgICAgICAgICAgICBkb21pZCkgPT0gLTEpIHsKLSAgICAgICAgICAgIGZwcmlu dGYobG9nZmlsZSwgIkxvZy1kaXJ0eTogb3V0IG9mIG1lbW9yeVxuIik7Ci0gICAgICAgICAg ICBleGl0KDEpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBrZXlfYXNjaWkgPSB4 c19yZWFkKHhzaCwgWEJUX05VTEwsIHBhdGgsICZsZW4pOwotICAgICAgICBmcmVlKHBhdGgp OwotCi0gICAgICAgIGlmICgha2V5X2FzY2lpKSAKLSAgICAgICAgICAgIC8qIE5vIGtleSB5 ZXQ6IHdhaXQgZm9yIHRoZSBuZXh0IHdhdGNoICovCi0gICAgICAgICAgICByZXR1cm47CiAK LSNpZmRlZiBDT05GSUdfU1RVQkRPTQotICAgICAgICAvKiBXZSBwYXNzIHRoZSB3cml0ZXMg dG8gaHlwZXJ2aXNvciAqLwotICAgICAgICBzZWcgPSAodm9pZCopMTsKLSNlbHNlCi0gICAg ICAgIHN0cm5jcHkoa2V5X3Rlcm1pbmF0ZWQsIGtleV9hc2NpaSwgMTYpOwotICAgICAgICBm cmVlKGtleV9hc2NpaSk7Ci0gICAgICAgIGtleSA9IChrZXlfdCkgc3RydG91bGwoa2V5X3Rl cm1pbmF0ZWQsIE5VTEwsIDE2KTsKLQotICAgICAgICAvKiBGaWd1cmUgb3V0IGhvdyBiaXQg dGhlIGxvZy1kaXJ0eSBiaXRtYXBzIGFyZSAqLwotICAgICAgICBsb2dkaXJ0eV9iaXRtYXBf c2l6ZSA9IHhjX21lbW9yeV9vcCh4Y19oYW5kbGUsIAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBYRU5NRU1fbWF4aW11bV9ncGZuLCAmZG9taWQpICsg MTsKLSAgICAgICAgbG9nZGlydHlfYml0bWFwX3NpemUgPSAoKGxvZ2RpcnR5X2JpdG1hcF9z aXplICsgSE9TVF9MT05HX0JJVFMgLSAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvIEhPU1RfTE9OR19CSVRTKTsgLyogbG9uZ3MgKi8KLSAgICAgICAgbG9nZGlydHlf Yml0bWFwX3NpemUgKj0gc2l6ZW9mICh1bnNpZ25lZCBsb25nKTsgLyogYnl0ZXMgKi8KLQot ICAgICAgICAvKiBNYXAgdGhlIHNoYXJlZC1tZW1vcnkgc2VnbWVudCAqLwotICAgICAgICBm cHJpbnRmKGxvZ2ZpbGUsICIlczoga2V5PSUxNi4xNmxseCBzaXplPSVsdVxuIiwgX19GVU5D VElPTl9fLAotICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpa2V5LCBsb2dk aXJ0eV9iaXRtYXBfc2l6ZSk7Ci0gICAgICAgIHNobWlkID0gc2htZ2V0KGtleSwgMiAqIGxv Z2RpcnR5X2JpdG1hcF9zaXplLCBTX0lSVVNSfFNfSVdVU1IpOwotICAgICAgICBpZiAoc2ht aWQgPT0gLTEpIHsKLSAgICAgICAgICAgIGZwcmludGYobG9nZmlsZSwgIkxvZy1kaXJ0eTog c2htZ2V0IGZhaWxlZDogc2VnbWVudCAlMTYuMTZsbHggIgotICAgICAgICAgICAgICAgICAg ICAiKCVzKVxuIiwgKHVuc2lnbmVkIGxvbmcgbG9uZylrZXksIHN0cmVycm9yKGVycm5vKSk7 Ci0gICAgICAgICAgICBleGl0KDEpOwotICAgICAgICB9Ci0KLSAgICAgICAgc2VnID0gc2ht YXQoc2htaWQsIE5VTEwsIDApOwotICAgICAgICBpZiAoc2VnID09ICh2b2lkICopLTEpIHsK LSAgICAgICAgICAgIGZwcmludGYobG9nZmlsZSwgIkxvZy1kaXJ0eTogc2htYXQgZmFpbGVk OiBzZWdtZW50ICUxNi4xNmxseCAiCi0gICAgICAgICAgICAgICAgICAgICIoJXMpXG4iLCAo dW5zaWduZWQgbG9uZyBsb25nKWtleSwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgICAg IGV4aXQoMSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmcHJpbnRmKGxvZ2ZpbGUsICJMb2ct ZGlydHk6IG1hcHBlZCBzZWdtZW50IGF0ICVwXG4iLCBzZWcpOwotCi0gICAgICAgIC8qIERv dWJsZS1jaGVjayB0aGF0IHRoZSBiaXRtYXBzIGFyZSB0aGUgc2l6ZSB3ZSBleHBlY3QgKi8K LSAgICAgICAgaWYgKGxvZ2RpcnR5X2JpdG1hcF9zaXplICE9ICoodWludDMyX3QgKilzZWcp IHsKLSAgICAgICAgICAgIGZwcmludGYobG9nZmlsZSwgIkxvZy1kaXJ0eTogZ290ICV1LCBj YWxjICVsdVxuIiwgCi0gICAgICAgICAgICAgICAgICAgICoodWludDMyX3QgKilzZWcsIGxv Z2RpcnR5X2JpdG1hcF9zaXplKTsKLSAgICAgICAgICAgIC8qIFN0YWxlIGtleTogd2FpdCBm b3IgbmV4dCB3YXRjaCAqLwotICAgICAgICAgICAgc2htZHQoc2VnKTsKLSAgICAgICAgICAg IHNlZyA9IE5VTEw7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSNlbmRpZgot Ci0gICAgICAgIC8qIFJlbWVtYmVyIHRoZSBwYXRocyBmb3IgdGhlIG5leHQtYWN0aXZlIGFu ZCBhY3RpdmUgZW50cmllcyAqLwotICAgICAgICBpZiAocGFzcHJpbnRmKCZhY3RpdmVfcGF0 aCwgCi0gICAgICAgICAgICAgICAgICAgICAgIi9sb2NhbC9kb21haW4vMC9kZXZpY2UtbW9k ZWwvJXUvbG9nZGlydHkvYWN0aXZlIiwKLSAgICAgICAgICAgICAgICAgICAgICBkb21pZCkg PT0gLTEpIHsKLSAgICAgICAgICAgIGZwcmludGYobG9nZmlsZSwgIkxvZy1kaXJ0eTogb3V0 IG9mIG1lbW9yeVxuIik7Ci0gICAgICAgICAgICBleGl0KDEpOwotICAgICAgICB9Ci0gICAg ICAgIGlmIChwYXNwcmludGYoJm5leHRfYWN0aXZlX3BhdGgsIAotICAgICAgICAgICAgICAg ICAgICAgICIvbG9jYWwvZG9tYWluLzAvZGV2aWNlLW1vZGVsLyV1L2xvZ2RpcnR5L25leHQt YWN0aXZlIiwKLSAgICAgICAgICAgICAgICAgICAgICBkb21pZCkgPT0gLTEpIHsKLSAgICAg ICAgICAgIGZwcmludGYobG9nZmlsZSwgIkxvZy1kaXJ0eTogb3V0IG9mIG1lbW9yeVxuIik7 Ci0gICAgICAgICAgICBleGl0KDEpOwotICAgICAgICB9CisgICAgLyogUmVtZW1iZXIgdGhl IHBhdGhzIGZvciB0aGUgY29tbWFuZCBhbmQgcmVzcG9uc2UgZW50cmllcyAqLworICAgIGlm IChwYXNwcmludGYoJnJldF9wYXRoLAorICAgICAgICAgICAgICAgICIvbG9jYWwvZG9tYWlu LzAvZGV2aWNlLW1vZGVsLyV1L2xvZ2RpcnR5L3JldCIsCisgICAgICAgICAgICAgICAgZG9t aWQpID09IC0xKSB7CisgICAgICAgIGZwcmludGYobG9nZmlsZSwgIkxvZy1kaXJ0eTogb3V0 IG9mIG1lbW9yeVxuIik7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorICAgIGlmIChwYXNw cmludGYoJmNtZF9wYXRoLAorICAgICAgICAgICAgICAgICIvbG9jYWwvZG9tYWluLzAvZGV2 aWNlLW1vZGVsLyV1L2xvZ2RpcnR5L2NtZCIsCisgICAgICAgICAgICAgICAgZG9taWQpID09 IC0xKSB7CisgICAgICAgIGZwcmludGYobG9nZmlsZSwgIkxvZy1kaXJ0eTogb3V0IG9mIG1l bW9yeVxuIik7CisgICAgICAgIGV4aXQoMSk7CiAgICAgfQogCi0gICAgZnByaW50Zihsb2dm aWxlLCAiVHJpZ2dlcmVkIGxvZy1kaXJ0eSBidWZmZXIgc3dpdGNoXG4iKTsKICAgICAKICAg ICAvKiBSZWFkIHRoZSByZXF1aXJlZCBhY3RpdmUgYnVmZmVyIGZyb20gdGhlIHN0b3JlICov Ci0gICAgYWN0ID0geHNfcmVhZCh4c2gsIFhCVF9OVUxMLCBuZXh0X2FjdGl2ZV9wYXRoLCAm bGVuKTsKKyAgICBhY3QgPSB4c19yZWFkKHhzaCwgWEJUX05VTEwsIGNtZF9wYXRoLCAmbGVu KTsKICAgICBpZiAoIWFjdCkgewotICAgICAgICBmcHJpbnRmKGxvZ2ZpbGUsICJMb2ctZGly dHk6IGNhbid0IHJlYWQgbmV4dC1hY3RpdmVcbiIpOwotICAgICAgICBleGl0KDEpOworICAg ICAgICBmcHJpbnRmKGxvZ2ZpbGUsICJMb2ctZGlydHk6IG5vIGNvbW1hbmQgeWV0LlxuIik7 CisgICAgICAgIHJldHVybjsKICAgICB9CisgICAgZnByaW50Zihsb2dmaWxlLCAiTG9nLWRp cnR5IGNvbW1hbmQgJXNcbiIsIGFjdCk7CiAKLSAgICAvKiBTd2l0Y2ggYnVmZmVycyAqLwot ICAgIGkgPSBhY3RbMF0gLSAnMCc7Ci0gICAgaWYgKGkgIT0gMCAmJiBpICE9IDEpIHsKLSAg ICAgICAgZnByaW50Zihsb2dmaWxlLCAiTG9nLWRpcnR5OiBiYWQgbmV4dC1hY3RpdmUgZW50 cnk6ICVzXG4iLCBhY3QpOworICAgIGlmICghc3RyY21wKGFjdCwgImVuYWJsZSIpKSB7Cisg ICAgICAgIHhlbl9sb2dkaXJ0eV9lbmFibGUgPSAxOworICAgIH0gZWxzZSBpZiAoIXN0cmNt cChhY3QsICJkaXNhYmxlIikpIHsKKyAgICAgICAgeGVuX2xvZ2RpcnR5X2VuYWJsZSA9IDA7 CisgICAgfSBlbHNlIHsKKyAgICAgICAgZnByaW50Zihsb2dmaWxlLCAiTG9nLWRpcnR5OiBi YWQgbG9nLWRpcnR5IGNvbW1hbmQ6ICVzXG4iLCBhY3QpOwogICAgICAgICBleGl0KDEpOwog ICAgIH0KLSAgICBsb2dkaXJ0eV9iaXRtYXAgPSAodW5zaWduZWQgbG9uZyAqKShzZWcgKyBp ICogbG9nZGlydHlfYml0bWFwX3NpemUpOwogCi0gICAgLyogQWNrIHRoYXQgd2UndmUgc3dp dGNoZWQgKi8KLSAgICB4c193cml0ZSh4c2gsIFhCVF9OVUxMLCBhY3RpdmVfcGF0aCwgYWN0 LCBsZW4pOworICAgIC8qIEFjayB0aGF0IHdlJ3ZlIHNlcnZpY2UgdGhlIGNvbW1hbmQgKi8K KyAgICB4c193cml0ZSh4c2gsIFhCVF9OVUxMLCByZXRfcGF0aCwgYWN0LCBsZW4pOwogICAg IGZyZWUoYWN0KTsKIH0KIAo= --------------010001050300080106090504 Content-Type: application/octet-stream; name="hvm_log_dirty_fix_tools.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="hvm_log_dirty_fix_tools.patch" SW5kZXg6IGh2L3Rvb2xzL2xpYnhjL2lhNjQveGNfaWE2NF9saW51eF9zYXZlLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gaHYub3JpZy90b29scy9saWJ4Yy9pYTY0L3hjX2lhNjRfbGludXhfc2F2 ZS5jCisrKyBodi90b29scy9saWJ4Yy9pYTY0L3hjX2lhNjRfbGludXhfc2F2ZS5jCkBAIC0z ODIsOCArMzgyLDcgQEAgb3V0OgogaW50CiB4Y19kb21haW5fc2F2ZShpbnQgeGNfaGFuZGxl LCBpbnQgaW9fZmQsIHVpbnQzMl90IGRvbSwgdWludDMyX3QgbWF4X2l0ZXJzLAogICAgICAg ICAgICAgICAgdWludDMyX3QgbWF4X2ZhY3RvciwgdWludDMyX3QgZmxhZ3MsIGludCAoKnN1 c3BlbmQpKHZvaWQpLAotICAgICAgICAgICAgICAgaW50IGh2bSwgdm9pZCAqKCppbml0X3Fl bXVfbWFwcykoaW50LCB1bnNpZ25lZCksCi0gICAgICAgICAgICAgICB2b2lkICgqcWVtdV9m bGlwX2J1ZmZlcikoaW50LCBpbnQpKQorICAgICAgICAgICAgICAgaW50IGh2bSwgdm9pZCAo KnN3aXRjaF9xZW11X2xvZ2RpcnR5KShpbnQsIHVuc2lnbmVkKSkKIHsKICAgICBERUNMQVJF X0RPTUNUTDsKICAgICB4Y19kb21pbmZvX3QgaW5mbzsKQEAgLTQyNCwxMSArNDIzLDYgQEAg eGNfZG9tYWluX3NhdmUoaW50IHhjX2hhbmRsZSwgaW50IGlvX2ZkLAogCiAgICAgY2hhciAq bWVtOwogCi0gICAgLyogSFZNOiBzaGFyZWQtbWVtb3J5IGJpdG1hcHMgZm9yIGdldHRpbmcg bG9nLWRpcnR5IGJpdHMgZnJvbSBxZW11LWRtICovCi0gICAgdW5zaWduZWQgbG9uZyAqcWVt dV9iaXRtYXBzWzJdOwotICAgIGludCBxZW11X2FjdGl2ZSA9IDA7Ci0gICAgaW50IHFlbXVf bm9uX2FjdGl2ZSA9IDE7Ci0KICAgICAvKiBmb3IgZm9yZWlnbiBwMm0gZXhwb3N1cmUgKi8K ICAgICB1bnNpZ25lZCBsb25nIG1lbW1hcF9pbmZvX251bV9wYWdlczsKICAgICAvKiBVbnNp Z25lZCBpbnQgd2FzIHVzZWQgYmVmb3JlLiBUbyBrZWVwIGZpbGUgZm9ybWF0IGNvbXBhdGli aWxpdHkuICovCkBAIC01NDUsMTQgKzUzOSw5IEBAIHhjX2RvbWFpbl9zYXZlKGludCB4Y19o YW5kbGUsIGludCBpb19mZCwKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9CiAK LSAgICAgICAgaWYgKGh2bSkgewotICAgICAgICAgICAgLyogR2V0IHFlbXUtZG0gbG9nZ2lu ZyBkaXJ0eSBwYWdlcyB0b28gKi8KLSAgICAgICAgICAgIHZvaWQgKnNlZyA9IGluaXRfcWVt dV9tYXBzKGRvbSwgYml0bWFwX3NpemUpOwotICAgICAgICAgICAgcWVtdV9iaXRtYXBzWzBd ID0gc2VnOwotICAgICAgICAgICAgcWVtdV9iaXRtYXBzWzFdID0gc2VnICsgYml0bWFwX3Np emU7Ci0gICAgICAgICAgICBxZW11X2FjdGl2ZSA9IDA7Ci0gICAgICAgICAgICBxZW11X25v bl9hY3RpdmUgPSAxOwotICAgICAgICB9CisgICAgICAgIC8qIEVuYWJsZSBxZW11LWRtIGxv Z2dpbmcgZGlydHkgcGFnZXMgdG8geGVuICovCisgICAgICAgIGlmIChodm0pCisgICAgICAg ICAgICBzd2l0Y2hfcWVtdV9sb2dkaXJ0eShkb20sIDEpOwogICAgIH0gZWxzZSB7CiAKICAg ICAgICAgLyogVGhpcyBpcyBhIG5vbi1saXZlIHN1c3BlbmQuIElzc3VlIHRoZSBjYWxsIGJh Y2sgdG8gZ2V0IHRoZQpAQCAtNzAzLDIzICs2OTIsNiBAQCB4Y19kb21haW5fc2F2ZShpbnQg eGNfaGFuZGxlLCBpbnQgaW9fZmQsCiAgICAgICAgICAgICAgICAgZ290byBvdXQ7CiAgICAg ICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChodm0pIHsKLSAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgajsKLSAgICAgICAgICAgICAgICAvKiBQdWxsIGluIHRoZSBkaXJ0eSBi aXRzIGZyb20gcWVtdS1kbSB0b28gKi8KLSAgICAgICAgICAgICAgICBpZiAoIWxhc3RfaXRl cikgewotICAgICAgICAgICAgICAgICAgICBxZW11X2FjdGl2ZSA9IHFlbXVfbm9uX2FjdGl2 ZTsKLSAgICAgICAgICAgICAgICAgICAgcWVtdV9ub25fYWN0aXZlID0gcWVtdV9hY3RpdmUg PyAwIDogMTsKLSAgICAgICAgICAgICAgICAgICAgcWVtdV9mbGlwX2J1ZmZlcihkb20sIHFl bXVfYWN0aXZlKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IGJpdG1h cF9zaXplIC8gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOyBqKyspIHsKLSAgICAgICAgICAgICAg ICAgICAgICAgIHRvX3NlbmRbal0gfD0gcWVtdV9iaXRtYXBzW3FlbXVfbm9uX2FjdGl2ZV1b al07Ci0gICAgICAgICAgICAgICAgICAgICAgICBxZW11X2JpdG1hcHNbcWVtdV9ub25fYWN0 aXZlXVtqXSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9 IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgYml0bWFwX3Np emUgLyBzaXplb2YodW5zaWduZWQgbG9uZyk7IGorKykKLSAgICAgICAgICAgICAgICAgICAg ICAgIHRvX3NlbmRbal0gfD0gcWVtdV9iaXRtYXBzW3FlbXVfYWN0aXZlXVtqXTsKLSAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIHNlbnRfbGFzdF9p dGVyID0gc2VudF90aGlzX2l0ZXI7CiAKICAgICAgICAgICAgIC8vcHJpbnRfc3RhdHMoeGNf aGFuZGxlLCBkb20sIHNlbnRfdGhpc19pdGVyLCAmc3RhdHMsIDEpOwpAQCAtNzYyLDYgKzcz NCw4IEBAIHhjX2RvbWFpbl9zYXZlKGludCB4Y19oYW5kbGUsIGludCBpb19mZCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsIE5VTEwsIDAsIE5VTEwgKSA8IDAp IHsKICAgICAgICAgICAgIERQUklOVEYoIldhcm5pbmcgLSBjb3VsZG4ndCBkaXNhYmxlIHNo YWRvdyBtb2RlIik7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKCBodm0gKQorICAgICAgICAg ICAgc3dpdGNoX3FlbXVfbG9nZGlydHkoZG9tLCAwKTsKICAgICB9CiAKICAgICB1bmxvY2tf cGFnZXModG9fc2VuZCwgYml0bWFwX3NpemUpOwpJbmRleDogaHYvdG9vbHMvbGlieGMveGNf ZG9tYWluX3NhdmUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodi5vcmlnL3Rvb2xzL2xpYnhjL3hj X2RvbWFpbl9zYXZlLmMKKysrIGh2L3Rvb2xzL2xpYnhjL3hjX2RvbWFpbl9zYXZlLmMKQEAg LTM5LDExICszOSw2IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGh2aXJ0X3N0YXJ0OwogLyog I2xldmVscyBvZiBwYWdlIHRhYmxlcyB1c2VkIGJ5IHRoZSBjdXJyZW50IGd1ZXN0ICovCiBz dGF0aWMgdW5zaWduZWQgaW50IHB0X2xldmVsczsKIAotLyogSFZNOiBzaGFyZWQtbWVtb3J5 IGJpdG1hcHMgZm9yIGdldHRpbmcgbG9nLWRpcnR5IGJpdHMgZnJvbSBxZW11LWRtICovCi1z dGF0aWMgdW5zaWduZWQgbG9uZyAqcWVtdV9iaXRtYXBzWzJdOwotc3RhdGljIGludCBxZW11 X2FjdGl2ZTsKLXN0YXRpYyBpbnQgcWVtdV9ub25fYWN0aXZlOwotCiAvKiBudW1iZXIgb2Yg cGZucyB0aGlzIGd1ZXN0IGhhcyAoaS5lLiBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgUDJN KSAqLwogc3RhdGljIHVuc2lnbmVkIGxvbmcgcDJtX3NpemU7CiAKQEAgLTc0OCw4ICs3NDMs NyBAQCBzdGF0aWMgeGVuX3Bmbl90ICptYXBfYW5kX3NhdmVfcDJtX3RhYmxlCiAKIGludCB4 Y19kb21haW5fc2F2ZShpbnQgeGNfaGFuZGxlLCBpbnQgaW9fZmQsIHVpbnQzMl90IGRvbSwg dWludDMyX3QgbWF4X2l0ZXJzLAogICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG1heF9m YWN0b3IsIHVpbnQzMl90IGZsYWdzLCBpbnQgKCpzdXNwZW5kKSh2b2lkKSwKLSAgICAgICAg ICAgICAgICAgICBpbnQgaHZtLCB2b2lkICooKmluaXRfcWVtdV9tYXBzKShpbnQsIHVuc2ln bmVkKSwgCi0gICAgICAgICAgICAgICAgICAgdm9pZCAoKnFlbXVfZmxpcF9idWZmZXIpKGlu dCwgaW50KSkKKyAgICAgICAgICAgICAgICAgICBpbnQgaHZtLCB2b2lkICgqc3dpdGNoX3Fl bXVfbG9nZGlydHkpKGludCwgdW5zaWduZWQpKQogewogICAgIHhjX2RvbWluZm9fdCBpbmZv OwogICAgIERFQ0xBUkVfRE9NQ1RMOwpAQCAtODYzLDE1ICs4NTcsOSBAQCBpbnQgeGNfZG9t YWluX3NhdmUoaW50IHhjX2hhbmRsZSwgaW50IGlvCiAgICAgICAgICAgICB9CiAgICAgICAg IH0KIAorICAgICAgICAvKiBFbmFibGUgcWVtdS1kbSBsb2dnaW5nIGRpcnR5IHBhZ2VzIHRv IHhlbiAqLwogICAgICAgICBpZiAoIGh2bSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8q IEdldCBxZW11LWRtIGxvZ2dpbmcgZGlydHkgcGFnZXMgdG9vICovCi0gICAgICAgICAgICB2 b2lkICpzZWcgPSBpbml0X3FlbXVfbWFwcyhkb20sIEJJVE1BUF9TSVpFKTsKLSAgICAgICAg ICAgIHFlbXVfYml0bWFwc1swXSA9IHNlZzsKLSAgICAgICAgICAgIHFlbXVfYml0bWFwc1sx XSA9IHNlZyArIEJJVE1BUF9TSVpFOwotICAgICAgICAgICAgcWVtdV9hY3RpdmUgPSAwOwot ICAgICAgICAgICAgcWVtdV9ub25fYWN0aXZlID0gMTsKLSAgICAgICAgfQorICAgICAgICAg ICAgc3dpdGNoX3FlbXVfbG9nZGlydHkoZG9tLCAxKTsKICAgICB9CiAgICAgZWxzZQogICAg IHsKQEAgLTEzNDEsMjcgKzEzMjksNiBAQCBpbnQgeGNfZG9tYWluX3NhdmUoaW50IHhjX2hh bmRsZSwgaW50IGlvCiAgICAgICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgICAgICAgICB9 CiAKLSAgICAgICAgICAgIGlmICggaHZtICkgCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgLyogUHVsbCBpbiB0aGUgZGlydHkgYml0cyBmcm9tIHFlbXUtZG0gdG9vICovCi0g ICAgICAgICAgICAgICAgaWYgKCAhbGFzdF9pdGVyICkKLSAgICAgICAgICAgICAgICB7Ci0g ICAgICAgICAgICAgICAgICAgIHFlbXVfYWN0aXZlID0gcWVtdV9ub25fYWN0aXZlOwotICAg ICAgICAgICAgICAgICAgICBxZW11X25vbl9hY3RpdmUgPSBxZW11X2FjdGl2ZSA/IDAgOiAx OwotICAgICAgICAgICAgICAgICAgICBxZW11X2ZsaXBfYnVmZmVyKGRvbSwgcWVtdV9hY3Rp dmUpOwotICAgICAgICAgICAgICAgICAgICBmb3IgKCBqID0gMDsgaiA8IEJJVE1BUF9TSVpF IC8gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOyBqKysgKQotICAgICAgICAgICAgICAgICAgICB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICB0b19zZW5kW2pdIHw9IHFlbXVfYml0bWFwc1tx ZW11X25vbl9hY3RpdmVdW2pdOwotICAgICAgICAgICAgICAgICAgICAgICAgcWVtdV9iaXRt YXBzW3FlbXVfbm9uX2FjdGl2ZV1bal0gPSAwOwotICAgICAgICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgQklUTUFQX1NJWkUg LyBzaXplb2YodW5zaWduZWQgbG9uZyk7IGorKyApCi0gICAgICAgICAgICAgICAgICAgICAg ICB0b19zZW5kW2pdIHw9IHFlbXVfYml0bWFwc1txZW11X2FjdGl2ZV1bal07Ci0gICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgfQotCiAgICAgICAgICAgICBzZW50X2xhc3RfaXRl ciA9IHNlbnRfdGhpc19pdGVyOwogCiAgICAgICAgICAgICBwcmludF9zdGF0cyh4Y19oYW5k bGUsIGRvbSwgc2VudF90aGlzX2l0ZXIsICZzdGF0cywgMSk7CkBAIC0xNjI5LDYgKzE1OTYs OCBAQCBpbnQgeGNfZG9tYWluX3NhdmUoaW50IHhjX2hhbmRsZSwgaW50IGlvCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0RPTUNUTF9TSEFET1dfT1BfT0ZGLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsIE5VTEwsIDAsIE5VTEwpIDwg MCApCiAgICAgICAgICAgICBEUFJJTlRGKCJXYXJuaW5nIC0gY291bGRuJ3QgZGlzYWJsZSBz aGFkb3cgbW9kZSIpOworICAgICAgICBpZiAoIGh2bSApCisgICAgICAgICAgICBzd2l0Y2hf cWVtdV9sb2dkaXJ0eShkb20sIDApOwogICAgIH0KIAogICAgIC8qIEZsdXNoIGxhc3Qgd3Jp dGUgYW5kIGRpc2NhcmQgY2FjaGUgZm9yIGZpbGUuICovCkluZGV4OiBodi90b29scy9saWJ4 Yy94ZW5ndWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh2Lm9yaWcvdG9vbHMvbGlieGMveGVu Z3Vlc3QuaAorKysgaHYvdG9vbHMvbGlieGMveGVuZ3Vlc3QuaApAQCAtMjYsOCArMjYsNyBA QAogaW50IHhjX2RvbWFpbl9zYXZlKGludCB4Y19oYW5kbGUsIGludCBpb19mZCwgdWludDMy X3QgZG9tLCB1aW50MzJfdCBtYXhfaXRlcnMsCiAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgbWF4X2ZhY3RvciwgdWludDMyX3QgZmxhZ3MgLyogWENGTEFHU194eHggKi8sCiAgICAg ICAgICAgICAgICAgICAgaW50ICgqc3VzcGVuZCkodm9pZCksIGludCBodm0sCi0gICAgICAg ICAgICAgICAgICAgdm9pZCAqKCppbml0X3FlbXVfbWFwcykoaW50LCB1bnNpZ25lZCksICAv KiBIVk0gb25seSAqLwotICAgICAgICAgICAgICAgICAgIHZvaWQgKCpxZW11X2ZsaXBfYnVm ZmVyKShpbnQsIGludCkpOyAgICAgLyogSFZNIG9ubHkgKi8KKyAgICAgICAgICAgICAgICAg ICB2b2lkICgqc3dpdGNoX3FlbXVfbG9nZGlydHkpKGludCwgdW5zaWduZWQpKTsgLyogSFZN IG9ubHkgKi8KIAogCiAvKioKSW5kZXg6IGh2L3Rvb2xzL3hjdXRpbHMveGNfc2F2ZS5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIGh2Lm9yaWcvdG9vbHMveGN1dGlscy94Y19zYXZlLmMKKysrIGh2 L3Rvb2xzL3hjdXRpbHMveGNfc2F2ZS5jCkBAIC0xMDEsMTE1ICsxMDEsNjQgQEAgc3RhdGlj IGludCBzdXNwZW5kKHZvaWQpCiAgKiB0aGUgbmV3IGFjdGl2ZSBidWZmZXIuICB4Y19zYXZl IGNhbiB0aGVuIHByb2Nlc3MgYW5kIGNsZWFyIHRoZSBvbGQKICAqIGFjdGl2ZSBidWZmZXIu ICovCiAKLXN0YXRpYyBjaGFyICpxZW11X2FjdGl2ZV9wYXRoOwotc3RhdGljIGNoYXIgKnFl bXVfbmV4dF9hY3RpdmVfcGF0aDsKLXN0YXRpYyBpbnQgcWVtdV9zaG1pZCA9IC0xOwotc3Rh dGljIHN0cnVjdCB4c19oYW5kbGUgKnhzOwogCi0KLS8qIE1hcmsgdGhlIHNoYXJlZC1tZW1v cnkgc2VnbWVudCBmb3IgZGVzdHJ1Y3Rpb24gKi8KLXN0YXRpYyB2b2lkIHFlbXVfZGVzdHJv eV9idWZmZXIodm9pZCkKLXsKLSAgICBpZiAocWVtdV9zaG1pZCAhPSAtMSkKLSAgICAgICAg c2htY3RsKHFlbXVfc2htaWQsIElQQ19STUlELCBOVUxMKTsKLSAgICBxZW11X3NobWlkID0g LTE7Ci19Ci0KLS8qIEdldCBxZW11IHRvIGNoYW5nZSBidWZmZXJzLiAqLwotc3RhdGljIHZv aWQgcWVtdV9mbGlwX2J1ZmZlcihpbnQgZG9taWQsIGludCBuZXh0X2FjdGl2ZSkKK3N0YXRp YyB2b2lkIHN3aXRjaF9xZW11X2xvZ2RpcnR5KGludCBkb21pZCwgdW5zaWduZWQgaW50IGVu YWJsZSkKIHsKLSAgICBjaGFyIGRpZ2l0ID0gJzAnICsgbmV4dF9hY3RpdmU7CisgICAgc3Ry dWN0IHhzX2hhbmRsZSAqeHM7CisgICAgY2hhciAqcGF0aCwgKnAsICpyZXRfc3RyLCAqY21k X3N0ciwgKip3YXRjaDsKICAgICB1bnNpZ25lZCBpbnQgbGVuOwotICAgIGNoYXIgKmFjdGl2 ZV9zdHIsICoqd2F0Y2g7CiAgICAgc3RydWN0IHRpbWV2YWwgdHY7CiAgICAgZmRfc2V0IGZk c2V0OwogCi0gICAgLyogVGVsbCBxZW11IHRoYXQgd2Ugd2FudCBpdCB0byBzdGFydCB3cml0 aW5nIGxvZy1kaXJ0eSBiaXRzIHRvIHRoZQotICAgICAqIG90aGVyIGJ1ZmZlciAqLwotICAg IGlmICgheHNfd3JpdGUoeHMsIFhCVF9OVUxMLCBxZW11X25leHRfYWN0aXZlX3BhdGgsICZk aWdpdCwgMSkpCi0gICAgICAgIGVycngoMSwgImNhbid0IHdyaXRlIG5leHQtYWN0aXZlIHRv IHN0b3JlIHBhdGggKCVzKVxuIiwgCi0gICAgICAgICAgICAgcWVtdV9uZXh0X2FjdGl2ZV9w YXRoKTsKLQotICAgIC8qIFdhaXQgYSB3aGlsZSBmb3IgcWVtdSB0byBzaWduYWwgdGhhdCBp dCBoYXMgc3dpdGNoZWQgdG8gdGhlIG5ldyAKLSAgICAgKiBhY3RpdmUgYnVmZmVyICovCi0g cmVhZF9hZ2FpbjogCi0gICAgdHYudHZfc2VjID0gNTsKLSAgICB0di50dl91c2VjID0gMDsK LSAgICBGRF9aRVJPKCZmZHNldCk7Ci0gICAgRkRfU0VUKHhzX2ZpbGVubyh4cyksICZmZHNl dCk7Ci0gICAgaWYgKChzZWxlY3QoeHNfZmlsZW5vKHhzKSArIDEsICZmZHNldCwgTlVMTCwg TlVMTCwgJnR2KSkgIT0gMSkKLSAgICAgICAgZXJyeCgxLCAidGltZWQgb3V0IHdhaXRpbmcg Zm9yIHFlbXUgdG8gc3dpdGNoIGJ1ZmZlcnNcbiIpOwotICAgIHdhdGNoID0geHNfcmVhZF93 YXRjaCh4cywgJmxlbik7Ci0gICAgZnJlZSh3YXRjaCk7Ci0gICAgCi0gICAgYWN0aXZlX3N0 ciA9IHhzX3JlYWQoeHMsIFhCVF9OVUxMLCBxZW11X2FjdGl2ZV9wYXRoLCAmbGVuKTsKLSAg ICBpZiAoYWN0aXZlX3N0ciA9PSBOVUxMIHx8IGFjdGl2ZV9zdHJbMF0gLSAnMCcgIT0gbmV4 dF9hY3RpdmUpIAotICAgICAgICAvKiBXYXRjaCBmaXJlZCBidXQgdmFsdWUgaXMgbm90IHll dCByaWdodCAqLwotICAgICAgICBnb3RvIHJlYWRfYWdhaW47Ci19Ci0KLXN0YXRpYyB2b2lk ICppbml0X3FlbXVfbWFwcyhpbnQgZG9taWQsIHVuc2lnbmVkIGludCBiaXRtYXBfc2l6ZSkK LXsKLSAgICBrZXlfdCBrZXk7Ci0gICAgY2hhciBrZXlfYXNjaWlbMTddID0gezAsfTsKLSAg ICB2b2lkICpzZWc7IAotICAgIGNoYXIgKnBhdGgsICpwOwotCi0gICAgLyogTWFrZSBhIHNo YXJlZC1tZW1vcnkgc2VnbWVudCAqLwotICAgIGRvIHsKLSAgICAgICAga2V5ID0gcmFuZCgp OyAvKiBObyBzZWN1cml0eSwganVzdCBhIHNlcXVlbmNlIG9mIG51bWJlcnMgKi8KLSAgICAg ICAgcWVtdV9zaG1pZCA9IHNobWdldChrZXksIDIgKiBiaXRtYXBfc2l6ZSwgCi0gICAgICAg ICAgICAgICAgICAgICAgIElQQ19DUkVBVHxJUENfRVhDTHxTX0lSVVNSfFNfSVdVU1IpOwot ICAgICAgICBpZiAocWVtdV9zaG1pZCA9PSAtMSAmJiBlcnJubyAhPSBFRVhJU1QpCi0gICAg ICAgICAgICBlcnJ4KDEsICJjYW4ndCBnZXQgc2htZW0gdG8gdGFsayB0byBxZW11LWRtIik7 Ci0gICAgfSB3aGlsZSAocWVtdV9zaG1pZCA9PSAtMSk7Ci0KLSAgICAvKiBSZW1lbWJlciB0 byB0aWR5IHVwIGFmdGVyIG91cnNlbHZlcyAqLwotICAgIGF0ZXhpdChxZW11X2Rlc3Ryb3lf YnVmZmVyKTsKLQotICAgIC8qIE1hcCBpdCBpbnRvIG91ciBhZGRyZXNzIHNwYWNlICovCi0g ICAgc2VnID0gc2htYXQocWVtdV9zaG1pZCwgTlVMTCwgMCk7Ci0gICAgaWYgKHNlZyA9PSAo dm9pZCAqKSAtMSkgCi0gICAgICAgIGVycngoMSwgImNhbid0IG1hcCBzaG1lbSB0byB0YWxr IHRvIHFlbXUtZG0iKTsKLSAgICBtZW1zZXQoc2VnLCAwLCAyICogYml0bWFwX3NpemUpOwot Ci0gICAgLyogV3JpdGUgdGhlIHNpemUgb2YgaXQgaW50byB0aGUgZmlyc3QgMzIgYml0cyAq LwotICAgICoodWludDMyX3QgKilzZWcgPSBiaXRtYXBfc2l6ZTsKLQotICAgIC8qIFRlbGwg cWVtdSBhYm91dCBpdCAqLwogICAgIGlmICgoeHMgPSB4c19kYWVtb25fb3BlbigpKSA9PSBO VUxMKQogICAgICAgICBlcnJ4KDEsICJDb3VsZG4ndCBjb250YWN0IHhlbnN0b3JlIik7CiAg ICAgaWYgKCEocGF0aCA9IHN0cmR1cCgiL2xvY2FsL2RvbWFpbi8wL2RldmljZS1tb2RlbC8i KSkpCiAgICAgICAgIGVycngoMSwgImNhbid0IGdldCBkb21haW4gcGF0aCBpbiBzdG9yZSIp OwogICAgIGlmICghKHBhdGggPSByZWFsbG9jKHBhdGgsIHN0cmxlbihwYXRoKSAKICAgICAg ICAgICAgICAgICAgICAgICAgICArIDEwIAotICAgICAgICAgICAgICAgICAgICAgICAgICsg c3RybGVuKCIvbG9nZGlydHkvbmV4dC1hY3RpdmUiKSArIDEpKSkgCisgICAgICAgICAgICAg ICAgICAgICAgICAgKyBzdHJsZW4oIi9sb2dkaXJ0eS9jbWQiKSArIDEpKSkKICAgICAgICAg ZXJyeCgxLCAibm8gbWVtb3J5IGZvciBjb25zdHJ1Y3RpbmcgeGVuc3RvcmUgcGF0aCIpOwog ICAgIHNucHJpbnRmKHBhdGggKyBzdHJsZW4ocGF0aCksIDExLCAiJWkiLCBkb21pZCk7CiAg ICAgc3RyY2F0KHBhdGgsICIvbG9nZGlydHkvIik7CiAgICAgcCA9IHBhdGggKyBzdHJsZW4o cGF0aCk7CiAKLSAgICBzdHJjcHkocCwgImtleSIpOwotICAgIHNucHJpbnRmKGtleV9hc2Np aSwgMTcsICIlMTYuMTZsbHgiLCAodW5zaWduZWQgbG9uZyBsb25nKSBrZXkpOwotICAgIGlm ICgheHNfd3JpdGUoeHMsIFhCVF9OVUxMLCBwYXRoLCBrZXlfYXNjaWksIDE2KSkKLSAgICAg ICAgZXJyeCgxLCAiY2FuJ3Qgd3JpdGUga2V5ICglcykgdG8gc3RvcmUgcGF0aCAoJXMpXG4i LCBrZXlfYXNjaWksIHBhdGgpOwotCi0gICAgLyogV2F0Y2ggZm9yIHFlbXUncyBpbmRpY2F0 aW9uIG9mIHRoZSBhY3RpdmUgYnVmZmVyLCBhbmQgcmVxdWVzdCBpdCAKLSAgICAgKiB0byBz dGFydCB3cml0aW5nIHRvIGJ1ZmZlciAwICovCi0gICAgc3RyY3B5KHAsICJhY3RpdmUiKTsK LSAgICBpZiAoIXhzX3dhdGNoKHhzLCBwYXRoLCAicWVtdS1hY3RpdmUtYnVmZmVyIikpCisK KyAgICAvKiBXYXRjaCBmb3IgcWVtdSdzIHJldHVybiB2YWx1ZSAqLworICAgIHN0cmNweShw LCAicmV0Iik7CisgICAgaWYgKCF4c193YXRjaCh4cywgcGF0aCwgInFlbXUtbG9nZGlydHkt cmV0IikpCiAgICAgICAgIGVycngoMSwgImNhbid0IHNldCB3YXRjaCBpbiBzdG9yZSAoJXMp XG4iLCBwYXRoKTsKLSAgICBpZiAoIShxZW11X2FjdGl2ZV9wYXRoID0gc3RyZHVwKHBhdGgp KSkKLSAgICAgICAgZXJyeCgxLCAibm8gbWVtb3J5IGZvciBjb3B5aW5nIHhlbnN0b3JlIHBh dGgiKTsKIAotICAgIHN0cmNweShwLCAibmV4dC1hY3RpdmUiKTsKLSAgICBpZiAoIShxZW11 X25leHRfYWN0aXZlX3BhdGggPSBzdHJkdXAocGF0aCkpKQotICAgICAgICBlcnJ4KDEsICJu byBtZW1vcnkgZm9yIGNvcHlpbmcgeGVuc3RvcmUgcGF0aCIpOworICAgIGlmICghKGNtZF9z dHIgPSBzdHJkdXAoIGVuYWJsZSA9PSAwID8gImRpc2FibGUiIDogImVuYWJsZSIpKSkKKyAg ICAgICAgZXJyeCgxLCAiY2FuJ3QgZ2V0IGxvZ2RpcnR5IGNtZCBwYXRoIGluIHN0b3JlIik7 CisKKyAgICAvKiBUZWxsIHFlbXUgdGhhdCB3ZSB3YW50IGl0IHRvIHN0YXJ0IGxvZ2dpbmcg ZGlydHkgcGFnZSB0byBYZW4gKi8KKyAgICBzdHJjcHkocCwgImNtZCIpOworICAgIGlmICgh eHNfd3JpdGUoeHMsIFhCVF9OVUxMLCBwYXRoLCBjbWRfc3RyLCBzdHJsZW4oY21kX3N0cikp KQorICAgICAgICBlcnJ4KDEsICJjYW4ndCB3cml0ZSAgdG8gc3RvcmUgcGF0aCAoJXMpXG4i LAorICAgICAgICAgICAgIHBhdGgpOworCisgICAgLyogV2FpdCBhIHdoaWxlIGZvciBxZW11 IHRvIHNpZ25hbCB0aGF0IGl0IGhhcyBzZXJ2aWNlIGxvZ2RpcnR5IGNvbW1hbmQgKi8KKyBy ZWFkX2FnYWluOgorICAgIHR2LnR2X3NlYyA9IDU7CisgICAgdHYudHZfdXNlYyA9IDA7Cisg ICAgRkRfWkVSTygmZmRzZXQpOworICAgIEZEX1NFVCh4c19maWxlbm8oeHMpLCAmZmRzZXQp OworCisgICAgaWYgKChzZWxlY3QoeHNfZmlsZW5vKHhzKSArIDEsICZmZHNldCwgTlVMTCwg TlVMTCwgJnR2KSkgIT0gMSkKKyAgICAgICAgZXJyeCgxLCAidGltZWQgb3V0IHdhaXRpbmcg Zm9yIHFlbXUgbG9nZGlydHkgcmVzcG9uc2UuXG4iKTsKKworICAgIHdhdGNoID0geHNfcmVh ZF93YXRjaCh4cywgJmxlbik7CisgICAgZnJlZSh3YXRjaCk7CiAKLSAgICBxZW11X2ZsaXBf YnVmZmVyKGRvbWlkLCAwKTsKKyAgICBzdHJjcHkocCwgInJldCIpOworICAgIHJldF9zdHIg PSB4c19yZWFkKHhzLCBYQlRfTlVMTCwgcGF0aCwgJmxlbik7CisgICAgaWYgKHJldF9zdHIg PT0gTlVMTCB8fCBzdHJjbXAocmV0X3N0ciwgY21kX3N0cikpCisgICAgICAgIC8qIFdhdGNo IGZpcmVkIGJ1dCB2YWx1ZSBpcyBub3QgeWV0IHJpZ2h0ICovCisgICAgICAgIGdvdG8gcmVh ZF9hZ2FpbjsKIAogICAgIGZyZWUocGF0aCk7Ci0gICAgcmV0dXJuIHNlZzsKKyAgICBmcmVl KGNtZF9zdHIpOworICAgIGZyZWUocmV0X3N0cik7CiB9CiAKIGludApAQCAtMjU1LDcgKzIw NCw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgIH0KICAgICByZXQgPSB4 Y19kb21haW5fc2F2ZShzaS54Y19mZCwgaW9fZmQsIHNpLmRvbWlkLCBtYXhpdCwgbWF4X2Ys IHNpLmZsYWdzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAmc3VzcGVuZCwgISEoc2ku ZmxhZ3MgJiBYQ0ZMQUdTX0hWTSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgJmluaXRf cWVtdV9tYXBzLCAmcWVtdV9mbGlwX2J1ZmZlcik7CisgICAgICAgICAgICAgICAgICAgICAg ICAgJnN3aXRjaF9xZW11X2xvZ2RpcnR5KTsKIAogICAgIGlmIChzaS5zdXNwZW5kX2V2dGNo biA+IDApCiAgICAgICAgIHhjX3N1c3BlbmRfZXZ0Y2huX3JlbGVhc2Uoc2kueGNlLCBzaS5z dXNwZW5kX2V2dGNobik7Cg== --------------010001050300080106090504 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------010001050300080106090504--