From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jennifer Herbert Subject: [PATCH v2 2/3] Introduce migration precopy policy Date: Tue, 19 Sep 2017 19:06:26 +0100 Message-ID: <1505844387-2224-3-git-send-email-Jennifer.Herbert@citrix.com> References: <1505844387-2224-1-git-send-email-Jennifer.Herbert@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1duN1G-0007TX-As for xen-devel@lists.xenproject.org; Tue, 19 Sep 2017 18:13:14 +0000 In-Reply-To: <1505844387-2224-1-git-send-email-Jennifer.Herbert@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Ian Jackson , Wei Liu , xen-devel@lists.xenproject.org, jtotto@uwaterloo.ca Cc: Jennifer Herbert List-Id: xen-devel@lists.xenproject.org VGhpcyBQYXRjaCBhbGxvd3MgYSBtaWdyYXRpb24gcHJlY29weSBwb2xpY3kgdG8gYmUgc3BlY2lm aWVkLgoKVGhlIHByZWNvcHkgcGhhc2Ugb2YgdGhlIHhjX2RvbWFpbl9zYXZlKCkgbGl2ZSBtaWdy YXRpb24gYWxnb3JpdGhtIGhhcwpoaXN0b3JpY2FsbHkgYmVlbiBpbXBsZW1lbnRlZCB0byBydW4g dW50aWwgZWl0aGVyIGEpIChhbG1vc3QpIG5vIHBhZ2VzCmFyZSBkaXJ0eSBvciBiKSBzb21lIGZp eGVkLCBoYXJkLWNvZGVkIG1heGltdW0gbnVtYmVyIG9mIHByZWNvcHkKaXRlcmF0aW9ucyBoYXMg YmVlbiBleGNlZWRlZC4gIFRoaXMgcG9saWN5IGFuZCBpdHMgaW1wbGVtZW50YXRpb24gYXJlCmxl c3MgdGhhbiBpZGVhbCBmb3IgYSBmZXcgcmVhc29uczoKLSB0aGUgbG9naWMgb2YgdGhlIHBvbGlj eSBpcyBpbnRlcnR3aW5lZCB3aXRoIHRoZSBjb250cm9sIGZsb3cgb2YgdGhlCiAgbWVjaGFuaXNt IG9mIHRoZSBwcmVjb3B5IHN0YWdlCi0gaXQgY2FuJ3QgdGFrZSBpbnRvIGFjY291bnQgZmFjdHMg ZXh0ZXJuYWwgdG8gdGhlIGltbWVkaWF0ZQogIG1pZ3JhdGlvbiBjb250ZXh0LCBzdWNoIGV4dGVy bmFsIHN0YXRlIHRyYW5zZmVyIHN0YXRlLCBpbnRlcmFjdGl2ZQogIHVzZXIgaW5wdXQsIG9yIHRo ZSBwYXNzYWdlIG9mIHdhbGwtY2xvY2sgdGltZS4KLSBpdCBkb2VzIG5vdCBwZXJtaXQgdGhlIHVz ZXIgdG8gY2hhbmdlIHRoZWlyIG1pbmQsIG92ZXIgdGltZSwgYWJvdXQKICB3aGF0IHRvIGRvIGF0 IHRoZSBlbmQgb2YgdGhlIHByZWNvcHkgKHRoZXkgZ2V0IGFuIHVuY29uZGl0aW9uYWwKICB0cmFu c2l0aW9uIGludG8gdGhlIHN0b3AtYW5kLWNvcHkgcGhhc2Ugb2YgdGhlIG1pZ3JhdGlvbikKClRv IHBlcm1pdCBjYWxsZXJzIHRvIGltcGxlbWVudCBhcmJpdHJhcnkgaGlnaGVyLWxldmVsIHBvbGlj aWVzIGdvdmVybmluZwp3aGVuIHRoZSBsaXZlIG1pZ3JhdGlvbiBwcmVjb3B5IHBoYXNlIHNob3Vs ZCBlbmQsIGFuZCB3aGF0IHNob3VsZCBiZQpkb25lIG5leHQ6Ci0gYWRkIGEgcHJlY29weV9wb2xp Y3koKSBjYWxsYmFjayB0byB0aGUgeGNfZG9tYWluX3NhdmUoKSB1c2VyLXN1cHBsaWVkCiAgY2Fs bGJhY2tzCi0gZHVyaW5nIHRoZSBwcmVjb3B5IHBoYXNlIG9mIGxpdmUgbWlncmF0aW9ucywgY29u c3VsdCB0aGlzIHBvbGljeSBhZnRlcgogIGVhY2ggYmF0Y2ggb2YgcGFnZXMgdHJhbnNtaXR0ZWQg YW5kIHRha2UgdGhlIGRpY3RhdGVkIGFjdGlvbiwgd2hpY2gKICBtYXkgYmUgdG8gYSkgYWJvcnQg dGhlIG1pZ3JhdGlvbiBlbnRpcmVseSwgYikgY29udGludWUgd2l0aCB0aGUKICBwcmVjb3B5LCBv ciBjKSBwcm9jZWVkIHRvIHRoZSBzdG9wLWFuZC1jb3B5IHBoYXNlLgotIHByb3ZpZGUgYW4gaW1w bGVtZW50YXRpb24gb2YgdGhlIG9sZCBwb2xpY3ksIHVzZWQgd2hlbgogIHByZWNvcHlfcG9saWN5 IGNhbGxiYWNrICBpcyBub3QgcHJvdmlkZWQuCgpTaWduZWQtb2ZmLWJ5OiBKZW5uaWZlciBIZXJi ZXJ0IDxKZW5uaWZlci5IZXJiZXJ0QGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IEpvc2h1YSBP dHRvIDxqdG90dG9AdXdhdGVybG9vLmNhPgoKLS0tCgp2MjoKCkhhdmUgbWFkZSBhIGZldyBmb3Jt YXR0aW5nIGNvcnJlY3Rpb25zLCBhZGRlZCB0eXBlZGVmIGFzIHN1Z2dlc3RlZC4KCnYxOgoKVGhp cyBpcyB1cGRhdGVkL21vZGlmaWVkIHN1YnNldCBvZiBwYXRjaCA3LzIwLCBwYXJ0IG9mCkpvc2h1 YSBPdHRvJ3MgIkFkZCBwb3N0Y29weSBsaXZlIG1pZ3JhdGlvbiBzdXBwb3J0LiIgcGF0Y2gsCmRh dGVkIDI3dGggTWFyY2ggMjAxNy4gIEFzIGluZGljYXRlZCBvbiB0aGUgb3JpZ2luYWwgdGhyZWFk LApJIHdpc2ggdG8gbWFrZSB1c2Ugb2YgdGhpcyB0aGlzIHdpdGhpbiB0aGUgWGVuU2VydmVyIHBy b2R1Y3QuCkkgaG9wZSB0aGlzIHdpbGwgYWlkIEpvc2ggaW4gcHVzaGluZyB0aGUgcmVtYWluZGVy IG9mIGhpcyBzZXJpZXMuCgotLS0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuZ3Vlc3QuaCB8IDMx ICsrKysrKysrKysrKy0tCiB0b29scy9saWJ4Yy94Y19zcl9jb21tb24uaCAgICAgfCAgNiArLS0K IHRvb2xzL2xpYnhjL3hjX3NyX3NhdmUuYyAgICAgICB8IDk3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA5NyBpbnNlcnRpb25zKCsp LCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmd1 ZXN0LmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmd1ZXN0LmgKaW5kZXggNjYyNmYwYy4uYTJh NjU0YyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5ndWVzdC5oCisrKyBiL3Rv b2xzL2xpYnhjL2luY2x1ZGUveGVuZ3Vlc3QuaApAQCAtMzksNiArMzksMTYgQEAKICAqLwogc3Ry dWN0IHhlbmV2dGNobl9oYW5kbGU7CiAKKy8qIEZvciBzYXZlJ3MgcHJlY29weV9wb2xpY3koKS4g Ki8KK3N0cnVjdCBwcmVjb3B5X3N0YXRzCit7CisgICAgdW5zaWduZWQgaW50IGl0ZXJhdGlvbjsK KyAgICB1bnNpZ25lZCBpbnQgdG90YWxfd3JpdHRlbjsKKyAgICBsb25nIGRpcnR5X2NvdW50OyAv KiAtMSBpZiB1bmtub3duICovCit9OworCit0eXBlZGVmIGludCAoKnByZWNvcHlfcG9saWN5X3Qp KHN0cnVjdCBwcmVjb3B5X3N0YXRzLCB2b2lkICopOworCiAvKiBjYWxsYmFja3MgcHJvdmlkZWQg YnkgeGNfZG9tYWluX3NhdmUgKi8KIHN0cnVjdCBzYXZlX2NhbGxiYWNrcyB7CiAgICAgLyogQ2Fs bGVkIGFmdGVyIGV4cGlyYXRpb24gb2YgY2hlY2twb2ludCBpbnRlcnZhbCwKQEAgLTQ2LDcgKzU2 LDIwIEBAIHN0cnVjdCBzYXZlX2NhbGxiYWNrcyB7CiAgICAgICovCiAgICAgaW50ICgqc3VzcGVu ZCkodm9pZCogZGF0YSk7CiAKLSAgICAvKiBDYWxsZWQgYWZ0ZXIgdGhlIGd1ZXN0J3MgZGlydHkg cGFnZXMgaGF2ZSBiZWVuCisgICAgLyoKKyAgICAgKiBDYWxsZWQgYWZ0ZXIgZXZlcnkgYmF0Y2gg b2YgcGFnZSBkYXRhIHNlbnQgZHVyaW5nIHRoZSBwcmVjb3B5CisgICAgICogcGhhc2Ugb2YgYSBs aXZlIG1pZ3JhdGlvbiB0byBhc2sgdGhlIGNhbGxlciB3aGF0IHRvIGRvIG5leHQKKyAgICAgKiBi YXNlZCBvbiB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgcHJlY29weSBtaWdyYXRpb24uCisgICAg ICovCisjZGVmaW5lIFhHU19QT0xJQ1lfQUJPUlQgICAgICAgICAgKC0xKSAvKiBBYmFuZG9uIHRo ZSBtaWdyYXRpb24gZW50aXJlbHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqIGFuZCB0aWR5IHVwLiAqLworI2RlZmluZSBYR1NfUE9MSUNZX0NPTlRJTlVFX1BSRUNP UFkgMCAgLyogUmVtYWluIGluIHRoZSBwcmVjb3B5IHBoYXNlLiAqLworI2RlZmluZSBYR1NfUE9M SUNZX1NUT1BfQU5EX0NPUFkgICAgMSAgLyogSW1tZWRpYXRlbHkgc3VzcGVuZCBhbmQgdHJhbnNt aXQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiByZW1haW5p bmcgZGlydHkgcGFnZXMuICovCisgICAgcHJlY29weV9wb2xpY3lfdCBwcmVjb3B5X3BvbGljeTsK KworICAgIC8qCisgICAgICogQ2FsbGVkIGFmdGVyIHRoZSBndWVzdCdzIGRpcnR5IHBhZ2VzIGhh dmUgYmVlbgogICAgICAqICBjb3BpZWQgaW50byBhbiBvdXRwdXQgYnVmZmVyLgogICAgICAqIENh bGxiYWNrIGZ1bmN0aW9uIHJlc3VtZXMgdGhlIGd1ZXN0ICYgdGhlIGRldmljZSBtb2RlbCwKICAg ICAgKiAgcmV0dXJucyB0byB4Y19kb21haW5fc2F2ZS4KQEAgLTU1LDcgKzc4LDggQEAgc3RydWN0 IHNhdmVfY2FsbGJhY2tzIHsKICAgICAgKi8KICAgICBpbnQgKCpwb3N0Y29weSkodm9pZCogZGF0 YSk7CiAKLSAgICAvKiBDYWxsZWQgYWZ0ZXIgdGhlIG1lbW9yeSBjaGVja3BvaW50IGhhcyBiZWVu IGZsdXNoZWQKKyAgICAvKgorICAgICAqIENhbGxlZCBhZnRlciB0aGUgbWVtb3J5IGNoZWNrcG9p bnQgaGFzIGJlZW4gZmx1c2hlZAogICAgICAqIG91dCBpbnRvIHRoZSBuZXR3b3JrLiBUeXBpY2Fs IGFjdGlvbnMgcGVyZm9ybWVkIGluIHRoaXMKICAgICAgKiBjYWxsYmFjayBpbmNsdWRlOgogICAg ICAqICAgKGEpIHNlbmQgdGhlIHNhdmVkIGRldmljZSBtb2RlbCBzdGF0ZSAoZm9yIEhWTSBndWVz dHMpLApAQCAtNjUsNyArODksOCBAQCBzdHJ1Y3Qgc2F2ZV9jYWxsYmFja3MgewogICAgICAqCiAg ICAgICogcmV0dXJuczoKICAgICAgKiAwOiB0ZXJtaW5hdGUgY2hlY2twb2ludGluZyBncmFjZWZ1 bGx5Ci0gICAgICogMTogdGFrZSBhbm90aGVyIGNoZWNrcG9pbnQgKi8KKyAgICAgKiAxOiB0YWtl IGFub3RoZXIgY2hlY2twb2ludCAKKyAgICAgKi8KICAgICBpbnQgKCpjaGVja3BvaW50KSh2b2lk KiBkYXRhKTsKIAogICAgIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19zcl9jb21tb24u aCBiL3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbi5oCmluZGV4IGE4M2YyMmEuLjM2MzU3MDQgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbi5oCisrKyBiL3Rvb2xzL2xpYnhjL3hj X3NyX2NvbW1vbi5oCkBAIC0xOTgsMTIgKzE5OCwxMCBAQCBzdHJ1Y3QgeGNfc3JfY29udGV4dAog ICAgICAgICAgICAgLyogRnVydGhlciBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gaW4gdGhlIHN0cmVh bS4gKi8KICAgICAgICAgICAgIGJvb2wgZGVidWc7CiAKLSAgICAgICAgICAgIC8qIFBhcmFtZXRl cnMgZm9yIHR3ZWFraW5nIGxpdmUgbWlncmF0aW9uLiAqLwotICAgICAgICAgICAgdW5zaWduZWQg bWF4X2l0ZXJhdGlvbnM7Ci0gICAgICAgICAgICB1bnNpZ25lZCBkaXJ0eV90aHJlc2hvbGQ7Ci0K ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcDJtX3NpemU7CiAKKyAgICAgICAgICAgIHN0cnVj dCBwcmVjb3B5X3N0YXRzIHN0YXRzOworCiAgICAgICAgICAgICB4ZW5fcGZuX3QgKmJhdGNoX3Bm bnM7CiAgICAgICAgICAgICB1bnNpZ25lZCBucl9iYXRjaF9wZm5zOwogICAgICAgICAgICAgdW5z aWduZWQgbG9uZyAqZGVmZXJyZWRfcGFnZXM7CmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19z cl9zYXZlLmMgYi90b29scy9saWJ4Yy94Y19zcl9zYXZlLmMKaW5kZXggMWU3NTAyZC4uZjU4YzAw OCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZS5jCisrKyBiL3Rvb2xzL2xpYnhj L3hjX3NyX3NhdmUuYwpAQCAtNDUyLDggKzQ1Miw3IEBAIHN0YXRpYyBpbnQgdXBkYXRlX3Byb2dy ZXNzX3N0cmluZyhzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4LAogICAgIHhjX2ludGVyZmFjZSAq eGNoID0gY3R4LT54Y2g7CiAgICAgY2hhciAqbmV3X3N0ciA9IE5VTEw7CiAKLSAgICBpZiAoIGFz cHJpbnRmKCZuZXdfc3RyLCAiRnJhbWVzIGl0ZXJhdGlvbiAldSBvZiAldSIsCi0gICAgICAgICAg ICAgICAgICBpdGVyLCBjdHgtPnNhdmUubWF4X2l0ZXJhdGlvbnMpID09IC0xICkKKyAgICBpZiAo IGFzcHJpbnRmKCZuZXdfc3RyLCAiRnJhbWVzIGl0ZXJhdGlvbiAldSIsIGl0ZXIpID09IC0xICkK ICAgICB7CiAgICAgICAgIFBFUlJPUigiVW5hYmxlIHRvIGFsbG9jYXRlIG5ldyBwcm9ncmVzcyBz dHJpbmciKTsKICAgICAgICAgcmV0dXJuIC0xOwpAQCAtNDY3LDYgKzQ2NiwyNCBAQCBzdGF0aWMg aW50IHVwZGF0ZV9wcm9ncmVzc19zdHJpbmcoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCwKIH0K IAogLyoKKyAqIFRoaXMgaXMgdGhlIGxpdmUgbWlncmF0aW9uIHByZWNvcHkgcG9saWN5IC0gaXQn cyBjYWxsZWQgcGVyaW9kaWNhbGx5IGR1cmluZworICogdGhlIHByZWNvcHkgcGhhc2Ugb2YgbGl2 ZSBtaWdyYXRpb25zLCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlY2lkaW5nIHdoZW4KKyAqIHRo ZSBwcmVjb3B5IHBoYXNlIHNob3VsZCB0ZXJtaW5hdGUgYW5kIHdoYXQgc2hvdWxkIGJlIGRvbmUg bmV4dC4KKyAqCisgKiBUaGUgcG9saWN5IGltcGxlbWVudGVkIGhlcmUgYmVoYXZlcyBpZGVudGlj YWxseSB0byB0aGUgcG9saWN5IHByZXZpb3VzbHkKKyAqIGhhcmQtY29kZWQgaW50byB4Y19kb21h aW5fc2F2ZSgpIC0gaXQgcHJvY2VlZHMgdG8gdGhlIHN0b3AtYW5kLWNvcHkgcGhhc2Ugb2YKKyAq IHRoZSBsaXZlIG1pZ3JhdGlvbiB3aGVuIHRoZXJlIGFyZSBlaXRoZXIgZmV3ZXIgdGhhbiA1MCBk aXJ0eSBwYWdlcywgb3IgbW9yZQorICogdGhhbiA1IHByZWNvcHkgcm91bmRzIGhhdmUgY29tcGxl dGVkLgorICovCitzdGF0aWMgaW50IHNpbXBsZV9wcmVjb3B5X3BvbGljeShzdHJ1Y3QgcHJlY29w eV9zdGF0cyBzdGF0cywgdm9pZCAqdXNlcikKK3sKKyAgICByZXR1cm4gKChzdGF0cy5kaXJ0eV9j b3VudCA+PSAwICYmIHN0YXRzLmRpcnR5X2NvdW50IDwgNTApIHx8CisgICAgICAgICAgICBzdGF0 cy5pdGVyYXRpb24gPj0gNSkKKyAgICAgICAgPyBYR1NfUE9MSUNZX1NUT1BfQU5EX0NPUFkKKyAg ICAgICAgOiBYR1NfUE9MSUNZX0NPTlRJTlVFX1BSRUNPUFk7Cit9CisKKy8qCiAgKiBTZW5kIG1l bW9yeSB3aGlsZSBndWVzdCBpcyBydW5uaW5nLgogICovCiBzdGF0aWMgaW50IHNlbmRfbWVtb3J5 X2xpdmUoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCkKQEAgLTQ3NCwyMSArNDkxLDU4IEBAIHN0 YXRpYyBpbnQgc2VuZF9tZW1vcnlfbGl2ZShzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4KQogICAg IHhjX2ludGVyZmFjZSAqeGNoID0gY3R4LT54Y2g7CiAgICAgeGNfc2hhZG93X29wX3N0YXRzX3Qg c3RhdHMgPSB7IDAsIGN0eC0+c2F2ZS5wMm1fc2l6ZSB9OwogICAgIGNoYXIgKnByb2dyZXNzX3N0 ciA9IE5VTEw7Ci0gICAgdW5zaWduZWQgeDsKKyAgICB1bnNpZ25lZCBpbnQgeCA9IDA7CiAgICAg aW50IHJjOworICAgIGludCBwb2xpY3lfZGVjaXNpb247CisKKyAgICBERUNMQVJFX0hZUEVSQ0FM TF9CVUZGRVJfU0hBRE9XKHVuc2lnbmVkIGxvbmcsIGRpcnR5X2JpdG1hcCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPnNhdmUuZGlydHlfYml0bWFwX2hidWYpOwor CisgICAgcHJlY29weV9wb2xpY3lfdCBwcmVjb3B5X3BvbGljeSA9IGN0eC0+c2F2ZS5jYWxsYmFj a3MtPnByZWNvcHlfcG9saWN5OworICAgIHZvaWQgKmRhdGEgPSBjdHgtPnNhdmUuY2FsbGJhY2tz LT5kYXRhOworCisgICAgc3RydWN0IHByZWNvcHlfc3RhdHMgKnBvbGljeV9zdGF0czsKIAogICAg IHJjID0gdXBkYXRlX3Byb2dyZXNzX3N0cmluZyhjdHgsICZwcm9ncmVzc19zdHIsIDApOwogICAg IGlmICggcmMgKQogICAgICAgICBnb3RvIG91dDsKIAotICAgIHJjID0gc2VuZF9hbGxfcGFnZXMo Y3R4KTsKLSAgICBpZiAoIHJjICkKLSAgICAgICAgZ290byBvdXQ7CisgICAgY3R4LT5zYXZlLnN0 YXRzID0gKHN0cnVjdCBwcmVjb3B5X3N0YXRzKQorICAgICAgICB7IC5kaXJ0eV9jb3VudCAgID0g Y3R4LT5zYXZlLnAybV9zaXplIH07CisgICAgcG9saWN5X3N0YXRzID0gJmN0eC0+c2F2ZS5zdGF0 czsKKworICAgIGlmICggcHJlY29weV9wb2xpY3kgPT0gTlVMTCApCisgICAgICAgICBwcmVjb3B5 X3BvbGljeSA9IHNpbXBsZV9wcmVjb3B5X3BvbGljeTsKKworICAgIGJpdG1hcF9zZXQoZGlydHlf Yml0bWFwLCBjdHgtPnNhdmUucDJtX3NpemUpOworCisgICAgZG8geworICAgICAgICBwb2xpY3lf ZGVjaXNpb24gPSBwcmVjb3B5X3BvbGljeSgqcG9saWN5X3N0YXRzLCBkYXRhKTsKKyAgICAgICAg eCsrOworCisgICAgICAgIGlmICggc3RhdHMuZGlydHlfY291bnQgPiAwICYmIHBvbGljeV9kZWNp c2lvbiAhPSBYR1NfUE9MSUNZX0FCT1JUICkgCisgICAgICAgIHsKKyAgICAgICAgICAgIHJjID0g dXBkYXRlX3Byb2dyZXNzX3N0cmluZyhjdHgsICZwcm9ncmVzc19zdHIsIHgpOworICAgICAgICAg ICAgaWYgKCByYyApCisgICAgICAgICAgICAgICAgZ290byBvdXQ7CisKKyAgICAgICAgICAgIHJj ID0gc2VuZF9kaXJ0eV9wYWdlcyhjdHgsIHN0YXRzLmRpcnR5X2NvdW50KTsKKyAgICAgICAgICAg IGlmICggcmMgKQorICAgICAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisKKyAgICAg ICAgaWYgKCBwb2xpY3lfZGVjaXNpb24gIT0gWEdTX1BPTElDWV9DT05USU5VRV9QUkVDT1BZICkK KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHBvbGljeV9zdGF0cy0+aXRlcmF0aW9uICAg ICA9IHg7CisgICAgICAgIHBvbGljeV9zdGF0cy0+dG90YWxfd3JpdHRlbiArPSBwb2xpY3lfc3Rh dHMtPmRpcnR5X2NvdW50OworICAgICAgICBwb2xpY3lfc3RhdHMtPmRpcnR5X2NvdW50ICAgPSAt MTsKKworICAgICAgICBwb2xpY3lfZGVjaXNpb24gPSBwcmVjb3B5X3BvbGljeSgqcG9saWN5X3N0 YXRzLCBkYXRhKTsKKworICAgICAgICBpZiAoIHBvbGljeV9kZWNpc2lvbiAhPSBYR1NfUE9MSUNZ X0NPTlRJTlVFX1BSRUNPUFkgKQorICAgICAgICAgICBicmVhazsKIAotICAgIGZvciAoIHggPSAx OwotICAgICAgICAgICgoeCA8IGN0eC0+c2F2ZS5tYXhfaXRlcmF0aW9ucykgJiYKLSAgICAgICAg ICAgKHN0YXRzLmRpcnR5X2NvdW50ID4gY3R4LT5zYXZlLmRpcnR5X3RocmVzaG9sZCkpOyArK3gg KQotICAgIHsKICAgICAgICAgaWYgKCB4Y19zaGFkb3dfY29udHJvbCgKICAgICAgICAgICAgICAg ICAgeGNoLCBjdHgtPmRvbWlkLCBYRU5fRE9NQ1RMX1NIQURPV19PUF9DTEVBTiwKICAgICAgICAg ICAgICAgICAgJmN0eC0+c2F2ZS5kaXJ0eV9iaXRtYXBfaGJ1ZiwgY3R4LT5zYXZlLnAybV9zaXpl LApAQCAtNDk5LDE3ICs1NTMsOSBAQCBzdGF0aWMgaW50IHNlbmRfbWVtb3J5X2xpdmUoc3RydWN0 IHhjX3NyX2NvbnRleHQgKmN0eCkKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9CiAK LSAgICAgICAgaWYgKCBzdGF0cy5kaXJ0eV9jb3VudCA9PSAwICkKLSAgICAgICAgICAgIGJyZWFr OworICAgICAgICBwb2xpY3lfc3RhdHMtPmRpcnR5X2NvdW50ID0gc3RhdHMuZGlydHlfY291bnQ7 CiAKLSAgICAgICAgcmMgPSB1cGRhdGVfcHJvZ3Jlc3Nfc3RyaW5nKGN0eCwgJnByb2dyZXNzX3N0 ciwgeCk7Ci0gICAgICAgIGlmICggcmMgKQotICAgICAgICAgICAgZ290byBvdXQ7Ci0KLSAgICAg ICAgcmMgPSBzZW5kX2RpcnR5X3BhZ2VzKGN0eCwgc3RhdHMuZGlydHlfY291bnQpOwotICAgICAg ICBpZiAoIHJjICkKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgIH0KKyAgICB9IHdoaWxlICgg dHJ1ZSApOwogCiAgb3V0OgogICAgIHhjX3NldF9wcm9ncmVzc19wcmVmaXgoeGNoLCBOVUxMKTsK QEAgLTYwMSw3ICs2NDcsNyBAQCBzdGF0aWMgaW50IHN1c3BlbmRfYW5kX3NlbmRfZGlydHkoc3Ry dWN0IHhjX3NyX2NvbnRleHQgKmN0eCkKICAgICBpZiAoIGN0eC0+c2F2ZS5saXZlICkKICAgICB7 CiAgICAgICAgIHJjID0gdXBkYXRlX3Byb2dyZXNzX3N0cmluZyhjdHgsICZwcm9ncmVzc19zdHIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnNhdmUubWF4X2l0ZXJh dGlvbnMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5zYXZlLnN0 YXRzLml0ZXJhdGlvbik7CiAgICAgICAgIGlmICggcmMgKQogICAgICAgICAgICAgZ290byBvdXQ7 CiAgICAgfQpAQCAtOTM3LDE1ICs5ODMsNiBAQCBpbnQgeGNfZG9tYWluX3NhdmUoeGNfaW50ZXJm YWNlICp4Y2gsIGludCBpb19mZCwgdWludDMyX3QgZG9tLAogICAgICAgICAgICBzdHJlYW1fdHlw ZSA9PSBYQ19NSUdfU1RSRUFNX1JFTVVTIHx8CiAgICAgICAgICAgIHN0cmVhbV90eXBlID09IFhD X01JR19TVFJFQU1fQ09MTyk7CiAKLSAgICAvKgotICAgICAqIFRPRE86IEZpbmQgc29tZSB0aW1l IHRvIGJldHRlciB0d2VhayB0aGUgbGl2ZSBtaWdyYXRpb24gYWxnb3JpdGhtLgotICAgICAqCi0g ICAgICogVGhlc2UgcGFyYW1ldGVycyBhcmUgYmV0dGVyIHRoYW4gdGhlIGxlZ2FjeSBhbGdvcml0 aG0gZXNwZWNpYWxseSBmb3IKLSAgICAgKiBidXN5IGd1ZXN0cy4KLSAgICAgKi8KLSAgICBjdHgu c2F2ZS5tYXhfaXRlcmF0aW9ucyA9IDU7Ci0gICAgY3R4LnNhdmUuZGlydHlfdGhyZXNob2xkID0g NTA7Ci0KICAgICAvKiBTYW5pdHkgY2hlY2tzIGZvciBjYWxsYmFja3MuICovCiAgICAgaWYgKCBo dm0gKQogICAgICAgICBhc3NlcnQoY2FsbGJhY2tzLT5zd2l0Y2hfcWVtdV9sb2dkaXJ0eSk7Ci0t IAoxLjguMy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==