From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruno Alvisio Subject: [PATCH RFC v3 RESEND 04/12] Migration with Local Disks Mirroring: Added a new '-q' flag to xl migrate for disk mirorring Date: Sat, 23 Dec 2017 14:03:28 +0000 Message-ID: <1514037816-40864-5-git-send-email-bruno.alvisio@gmail.com> References: <1514037816-40864-1-git-send-email-bruno.alvisio@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1514037816-40864-1-git-send-email-bruno.alvisio@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org, wei.liu2@citrix.com, dave@recoil.org, ian.jackson@eu.citrix.com List-Id: xen-devel@lists.xenproject.org V2hlbiB0aGUgJy1xJyBmbGFnIGlzIHByb3ZpZGVkIHRvIHRoZSAneGwgbWlncmF0ZScgY29tbWFu ZCBhbGwgdGhlIGJsb2NrIGRldmljZXMKdGhhdCBhcmUgbG9jYWwgc2hvdWxkIGJlIG1pcnJvcmVk IHRvIHRoZSBkZXN0aW5hdGlvbiBub2RlLiBJZiB0aGUgZmxhZyBpcyBub3QKcHJlc2VudCBtaWdy YXRpb24gZmxvdyB3aWxsIGJlIGVxdWl2YWxlbnQgdG8gY3VycmVudCBtaWdyYXRpb24gZmxvdy4g QSBuZXcKJ21pcnJvcl9kaXNrcycgZmllbGQgaXMgYWRkZWQgdG8gdGhlIHhsIGRvbWFpbl9jcmVh dGUgc3RydWN0IHRvIGluZGljYXRlIHRoYXQKZGlza3Mgd2lsbCBiZSBtaXJyb3JlZCBkdXJpbmcg aW5zdGFuY2Ugc3RhcnR1cC4gQSBuZXcgTElCWExfU1VTUEVORF9NSVJST1JfRElTSwpmbGFnIGlz IGFkZGVkIHRvIGluZGljYXRlIHRoYXQgdGhlIGJsb2NrIG1pcnJvciBqb2JzIHNob3VsZCBiZSBw ZXJmb3JtZWQgZHVyaW5nCnRoZSBzdXNwZW5zaW9uIG9mIHRoZSBpbnN0YW5jZS4gbGlieGxfZG9t YWluX3N1c3BlbmQgdGFrZXMgYSBuZXcgJ2hvc3RuYW1lJwpwYXJhbSB3aXRoIHRoZSBuYW1lIG9m IHRoZSBob3N0IHdoZXJlIHRoZSBRRU1VIGRyaXZlcyB3aWxsIGJlIG1pcnJvcmVkIHRvLgpsaWJ4 bF9kb21haW5fc3VzcGVuZCB0YWtlcyBhICdyZWN2X2ZkJyBwYXJhbSB0aGF0IGlzIHVzZWQgZm9y IHJlY2V2aW5nIG1lc3NhZ2VzCmZyb20gZGVzdGluYXRpb24gZHVyaW5nIG1pZ3JhdGlvbi4KClNp Z25lZC1vZmYtYnk6IEJydW5vIEFsdmlzaW8gPGJydW5vLmFsdmlzaW9AZ21haWwuY29tPgotLS0K IHRvb2xzL2xpYnhsL2xpYnhsLmggICAgICAgICAgICAgICAgICB8ICA0ICstCiB0b29scy9saWJ4 bC9saWJ4bF9kb21haW4uYyAgICAgICAgICAgfCAgNCArLQogdG9vbHMvb2NhbWwvbGlicy94bC94 ZW5saWdodF9zdHVicy5jIHwgIDIgKy0KIHRvb2xzL3hsL3hsLmggICAgICAgICAgICAgICAgICAg ICAgICB8ICAxICsKIHRvb2xzL3hsL3hsX2NtZHRhYmxlLmMgICAgICAgICAgICAgICB8ICAzICst CiB0b29scy94bC94bF9taWdyYXRlLmMgICAgICAgICAgICAgICAgfCA3NCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0KIHRvb2xzL3hsL3hsX3NhdmVyZXN0b3JlLmMgICAgICAg ICAgICB8ICAyICstCiA3IGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyksIDE1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmggYi90b29scy9saWJ4bC9s aWJ4bC5oCmluZGV4IDVlOWFlZDcuLjc4MjhiYTggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xp YnhsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGwuaApAQCAtMTQ0NCwxMiArMTQ0NCwxNCBAQCBp bnQgbGlieGxfcmV0cmlldmVfZG9tYWluX2NvbmZpZ3VyYXRpb24obGlieGxfY3R4ICpjdHgsIHVp bnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExJQlhMX0VYVEVSTkFMX0NBTExFUlNfT05MWTsKIAotaW50IGxpYnhsX2Rv bWFpbl9zdXNwZW5kKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgaW50IGZkLAoraW50 IGxpYnhsX2RvbWFpbl9zdXNwZW5kKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgaW50 IGZkLCBpbnQgcmVjdl9mZCwKICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmxhZ3MsIC8q IExJQlhMX1NVU1BFTkRfKiAqLworICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq IGhvc3RuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3Bf aG93ICphb19ob3cpCiAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfRVhURVJOQUxfQ0FM TEVSU19PTkxZOwogI2RlZmluZSBMSUJYTF9TVVNQRU5EX0RFQlVHIDEKICNkZWZpbmUgTElCWExf U1VTUEVORF9MSVZFIDIKKyNkZWZpbmUgTElCWExfU1VTUEVORF9NSVJST1JfRElTS1MgNAogCiAv KiBAcGFyYW0gc3VzcGVuZF9jYW5jZWwgW2Zyb20geGVuY3RybC5oOnhjX2RvbWFpbl9yZXN1bWUo IEBwYXJhbSBmYXN0ICldCiAgKiAgIElmIHRoaXMgcGFyYW1ldGVyIGlzIHRydWUsIHVzZSBjby1v cGVyYXRpdmUgcmVzdW1lLiBUaGUgZ3Vlc3QKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhs X2RvbWFpbi5jIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tYWluLmMKaW5kZXggODE0ZjgxMi4uZDEy MDljZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZG9tYWluLmMKKysrIGIvdG9vbHMv bGlieGwvbGlieGxfZG9tYWluLmMKQEAgLTQ4Niw3ICs0ODYsOCBAQCBzdGF0aWMgdm9pZCBkb21h aW5fc3VzcGVuZF9jYihsaWJ4bF9fZWdjICplZ2MsCiAKIH0KIAotaW50IGxpYnhsX2RvbWFpbl9z dXNwZW5kKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgaW50IGZkLCBpbnQgZmxhZ3Ms CitpbnQgbGlieGxfZG9tYWluX3N1c3BlbmQobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlk LCBpbnQgZmQsIGludCByZWN2X2ZkLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmbGFn cywgY29uc3QgY2hhciogaG9zdG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg bGlieGxfYXN5bmNvcF9ob3cgKmFvX2hvdykKIHsKICAgICBBT19DUkVBVEUoY3R4LCBkb21pZCwg YW9faG93KTsKQEAgLTUwNiw2ICs1MDcsNyBAQCBpbnQgbGlieGxfZG9tYWluX3N1c3BlbmQobGli eGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBpbnQgZmQsIGludCBmbGFncywKIAogICAgIGRz cy0+ZG9taWQgPSBkb21pZDsKICAgICBkc3MtPmZkID0gZmQ7CisgICAgZHNzLT5yZWN2X2ZkID0g cmVjdl9mZDsKICAgICBkc3MtPnR5cGUgPSB0eXBlOwogICAgIGRzcy0+bGl2ZSA9IGZsYWdzICYg TElCWExfU1VTUEVORF9MSVZFOwogICAgIGRzcy0+ZGVidWcgPSBmbGFncyAmIExJQlhMX1NVU1BF TkRfREVCVUc7CmRpZmYgLS1naXQgYS90b29scy9vY2FtbC9saWJzL3hsL3hlbmxpZ2h0X3N0dWJz LmMgYi90b29scy9vY2FtbC9saWJzL3hsL3hlbmxpZ2h0X3N0dWJzLmMKaW5kZXggMDE0MDc4MC4u YTc1Nzc4MiAxMDA2NDQKLS0tIGEvdG9vbHMvb2NhbWwvbGlicy94bC94ZW5saWdodF9zdHVicy5j CisrKyBiL3Rvb2xzL29jYW1sL2xpYnMveGwveGVubGlnaHRfc3R1YnMuYwpAQCAtNjExLDcgKzYx MSw3IEBAIHZhbHVlIHN0dWJfbGlieGxfZG9tYWluX3N1c3BlbmQodmFsdWUgY3R4LCB2YWx1ZSBk b21pZCwgdmFsdWUgZmQsIHZhbHVlIGFzeW5jLCB2CiAJbGlieGxfYXN5bmNvcF9ob3cgKmFvX2hv dyA9IGFvaG93X3ZhbChhc3luYyk7CiAKIAljYW1sX2VudGVyX2Jsb2NraW5nX3NlY3Rpb24oKTsK LQlyZXQgPSBsaWJ4bF9kb21haW5fc3VzcGVuZChDVFgsIGNfZG9taWQsIGNfZmQsIDAsIGFvX2hv dyk7CisJcmV0ID0gbGlieGxfZG9tYWluX3N1c3BlbmQoQ1RYLCBjX2RvbWlkLCBjX2ZkLCAwLCAw LCBOVUxMLCBhb19ob3cpOwogCWNhbWxfbGVhdmVfYmxvY2tpbmdfc2VjdGlvbigpOwogCiAJZnJl ZShhb19ob3cpOwpkaWZmIC0tZ2l0IGEvdG9vbHMveGwveGwuaCBiL3Rvb2xzL3hsL3hsLmgKaW5k ZXggNmI2MGQxZC4uZmQ4ZThlNiAxMDA2NDQKLS0tIGEvdG9vbHMveGwveGwuaAorKysgYi90b29s cy94bC94bC5oCkBAIC0zNSw2ICszNSw3IEBAIHN0cnVjdCBkb21haW5fY3JlYXRlIHsKICAgICBp bnQgZGFlbW9uaXplOwogICAgIGludCBtb25pdG9yOyAvKiBoYW5kbGUgZ3Vlc3QgcmVib290cyBl dGMgKi8KICAgICBpbnQgcGF1c2VkOworICAgIGludCBtaXJyb3JfZGlza3M7CiAgICAgaW50IGRy eXJ1bjsKICAgICBpbnQgcXVpZXQ7CiAgICAgaW50IHZuYzsKZGlmZiAtLWdpdCBhL3Rvb2xzL3hs L3hsX2NtZHRhYmxlLmMgYi90b29scy94bC94bF9jbWR0YWJsZS5jCmluZGV4IDU1NDZjZjYuLjQ1 YTBiMWEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hsL3hsX2NtZHRhYmxlLmMKKysrIGIvdG9vbHMveGwv eGxfY21kdGFibGUuYwpAQCAtMTY1LDcgKzE2NSw4IEBAIHN0cnVjdCBjbWRfc3BlYyBjbWRfdGFi bGVbXSA9IHsKICAgICAgICItZSAgICAgICAgICAgICAgRG8gbm90IHdhaXQgaW4gdGhlIGJhY2tn cm91bmQgKG9uIDxob3N0PikgZm9yIHRoZSBkZWF0aFxuIgogICAgICAgIiAgICAgICAgICAgICAg ICBvZiB0aGUgZG9tYWluLlxuIgogICAgICAgIi0tZGVidWcgICAgICAgICBQcmludCBodWdlICgh KSBhbW91bnQgb2YgZGVidWcgZHVyaW5nIHRoZSBtaWdyYXRpb24gcHJvY2Vzcy5cbiIKLSAgICAg ICItcCAgICAgICAgICAgICAgRG8gbm90IHVucGF1c2UgZG9tYWluIGFmdGVyIG1pZ3JhdGluZyBp dC4iCisgICAgICAiLXAgICAgICAgICAgICAgIERvIG5vdCB1bnBhdXNlIGRvbWFpbiBhZnRlciBt aWdyYXRpbmcgaXQuXG4iCisgICAgICAiLXEgICAgICAgICAgICAgIE1pcnJvciBsb2NhbCBkaXNr cyB0byBkZXN0aW5hdGlvbiAtIENvcHkgYWxsIGxvY2FsIHN0b3JhZ2UgZGV2aWNlcy4iCiAgICAg fSwKICAgICB7ICJyZXN0b3JlIiwKICAgICAgICZtYWluX3Jlc3RvcmUsIDAsIDEsCmRpZmYgLS1n aXQgYS90b29scy94bC94bF9taWdyYXRlLmMgYi90b29scy94bC94bF9taWdyYXRlLmMKaW5kZXgg MzNkMzllOC4uNDhiMDE3OSAxMDA2NDQKLS0tIGEvdG9vbHMveGwveGxfbWlncmF0ZS5jCisrKyBi L3Rvb2xzL3hsL3hsX21pZ3JhdGUuYwpAQCAtMTU3LDcgKzE1Nyw4IEBAIHN0YXRpYyB2b2lkIG1p Z3JhdGVfZG9fcHJlYW1ibGUoaW50IHNlbmRfZmQsIGludCByZWN2X2ZkLCBwaWRfdCBjaGlsZCwK IH0KIAogc3RhdGljIHZvaWQgbWlncmF0ZV9kb21haW4odWludDMyX3QgZG9taWQsIGNvbnN0IGNo YXIgKnJ1bmUsIGludCBkZWJ1ZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKm92ZXJyaWRlX2NvbmZpZ19maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciAqb3ZlcnJpZGVfY29uZmlnX2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgbWlycm9yX2Rpc2tzLCBjb25zdCBjaGFyKiBob3N0bmFtZSkKIHsKICAgICBwaWRfdCBj aGlsZCA9IC0xOwogICAgIGludCByYzsKQEAgLTE4NSw3ICsxODYsMTAgQEAgc3RhdGljIHZvaWQg bWlncmF0ZV9kb21haW4odWludDMyX3QgZG9taWQsIGNvbnN0IGNoYXIgKnJ1bmUsIGludCBkZWJ1 ZywKIAogICAgIGlmIChkZWJ1ZykKICAgICAgICAgZmxhZ3MgfD0gTElCWExfU1VTUEVORF9ERUJV RzsKLSAgICByYyA9IGxpYnhsX2RvbWFpbl9zdXNwZW5kKGN0eCwgZG9taWQsIHNlbmRfZmQsIGZs YWdzLCBOVUxMKTsKKyAgICBpZiAobWlycm9yX2Rpc2tzKQorICAgICAgICBmbGFncyB8PSBMSUJY TF9TVVNQRU5EX01JUlJPUl9ESVNLUzsKKyAgICByYyA9IGxpYnhsX2RvbWFpbl9zdXNwZW5kKGN0 eCwgZG9taWQsIHNlbmRfZmQsIHJlY3ZfZmQsIGZsYWdzLCBob3N0bmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwpOwogICAgIGlmIChyYykgewogICAgICAgICBmcHJpbnRm KHN0ZGVyciwgIm1pZ3JhdGlvbiBzZW5kZXI6IGxpYnhsX2RvbWFpbl9zdXNwZW5kIGZhaWxlZCIK ICAgICAgICAgICAgICAgICAiIChyYz0lZClcbiIsIHJjKTsKQEAgLTI5Niw3ICszMDAsNyBAQCBz dGF0aWMgdm9pZCBtaWdyYXRlX2RvbWFpbih1aW50MzJfdCBkb21pZCwgY29uc3QgY2hhciAqcnVu ZSwgaW50IGRlYnVnLAogfQogCiBzdGF0aWMgdm9pZCBtaWdyYXRlX3JlY2VpdmUoaW50IGRlYnVn LCBpbnQgZGFlbW9uaXplLCBpbnQgbW9uaXRvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgcGF1c2VfYWZ0ZXJfbWlncmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCBwYXVzZV9hZnRlcl9taWdyYXRpb24sIGludCBtaXJyb3JfZGlza3MsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IHNlbmRfZmQsIGludCByZWN2X2ZkLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2NoZWNrcG9pbnRlZF9zdHJlYW0gY2hlY2twb2ludGVkLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmNvbG9fcHJveHlfc2NyaXB0LApAQCAt MzIzLDYgKzMyNyw3IEBAIHN0YXRpYyB2b2lkIG1pZ3JhdGVfcmVjZWl2ZShpbnQgZGVidWcsIGlu dCBkYWVtb25pemUsIGludCBtb25pdG9yLAogICAgIGRvbV9pbmZvLmRhZW1vbml6ZSA9IGRhZW1v bml6ZTsKICAgICBkb21faW5mby5tb25pdG9yID0gbW9uaXRvcjsKICAgICBkb21faW5mby5wYXVz ZWQgPSAxOworICAgIGRvbV9pbmZvLm1pcnJvcl9kaXNrcyA9IG1pcnJvcl9kaXNrczsKICAgICBk b21faW5mby5taWdyYXRlX2ZkID0gcmVjdl9mZDsKICAgICBkb21faW5mby5zZW5kX2JhY2tfZmQg PSBzZW5kX2ZkOwogICAgIGRvbV9pbmZvLm1pZ3JhdGlvbl9kb21uYW1lX3IgPSAmbWlncmF0aW9u X2RvbW5hbWU7CkBAIC00NTgsNiArNDYzLDcgQEAgc3RhdGljIHZvaWQgbWlncmF0ZV9yZWNlaXZl KGludCBkZWJ1ZywgaW50IGRhZW1vbml6ZSwgaW50IG1vbml0b3IsCiBpbnQgbWFpbl9taWdyYXRl X3JlY2VpdmUoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogICAgIGludCBkZWJ1ZyA9IDAsIGRh ZW1vbml6ZSA9IDEsIG1vbml0b3IgPSAxLCBwYXVzZV9hZnRlcl9taWdyYXRpb24gPSAwOworICAg IGludCBtaXJyb3JfZGlza3MgPSAwOwogICAgIGxpYnhsX2NoZWNrcG9pbnRlZF9zdHJlYW0gY2hl Y2twb2ludGVkID0gTElCWExfQ0hFQ0tQT0lOVEVEX1NUUkVBTV9OT05FOwogICAgIGludCBvcHQ7 CiAgICAgYm9vbCB1c2Vyc3BhY2VfY29sb19wcm94eSA9IGZhbHNlOwpAQCAtNDcwLDcgKzQ3Niw3 IEBAIGludCBtYWluX21pZ3JhdGVfcmVjZWl2ZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAg ICAgIENPTU1PTl9MT05HX09QVFMKICAgICB9OwogCi0gICAgU1dJVENIX0ZPUkVBQ0hfT1BUKG9w dCwgIkZlZHJwIiwgb3B0cywgIm1pZ3JhdGUtcmVjZWl2ZSIsIDApIHsKKyAgICBTV0lUQ0hfRk9S RUFDSF9PUFQob3B0LCAiRmVkcnBxIiwgb3B0cywgIm1pZ3JhdGUtcmVjZWl2ZSIsIDApIHsKICAg ICBjYXNlICdGJzoKICAgICAgICAgZGFlbW9uaXplID0gMDsKICAgICAgICAgYnJlYWs7CkBAIC00 OTYsNiArNTAyLDkgQEAgaW50IG1haW5fbWlncmF0ZV9yZWNlaXZlKGludCBhcmdjLCBjaGFyICoq YXJndikKICAgICBjYXNlICdwJzoKICAgICAgICAgcGF1c2VfYWZ0ZXJfbWlncmF0aW9uID0gMTsK ICAgICAgICAgYnJlYWs7CisgICAgY2FzZSAncSc6CisgICAgICAgIG1pcnJvcl9kaXNrcyA9IDE7 CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGlmIChhcmdjLW9wdGluZCAhPSAwKSB7CkBA IC01MDMsNyArNTEyLDcgQEAgaW50IG1haW5fbWlncmF0ZV9yZWNlaXZlKGludCBhcmdjLCBjaGFy ICoqYXJndikKICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICB9CiAgICAgbWlncmF0 ZV9yZWNlaXZlKGRlYnVnLCBkYWVtb25pemUsIG1vbml0b3IsIHBhdXNlX2FmdGVyX21pZ3JhdGlv biwKLSAgICAgICAgICAgICAgICAgICAgU1RET1VUX0ZJTEVOTywgU1RESU5fRklMRU5PLAorICAg ICAgICAgICAgICAgICAgICBtaXJyb3JfZGlza3MsIFNURE9VVF9GSUxFTk8sIFNURElOX0ZJTEVO TywKICAgICAgICAgICAgICAgICAgICAgY2hlY2twb2ludGVkLCBzY3JpcHQsIHVzZXJzcGFjZV9j b2xvX3Byb3h5KTsKIAogICAgIHJldHVybiBFWElUX1NVQ0NFU1M7CkBAIC01MTIsMTggKzUyMSwy MiBAQCBpbnQgbWFpbl9taWdyYXRlX3JlY2VpdmUoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogaW50 IG1haW5fbWlncmF0ZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAgICAgdWludDMyX3QgZG9t aWQ7CisgICAgbGlieGxfZG9tYWluX2NvbmZpZyBkX2NvbmZpZzsKICAgICBjb25zdCBjaGFyICpj b25maWdfZmlsZW5hbWUgPSBOVUxMOwogICAgIGNvbnN0IGNoYXIgKnNzaF9jb21tYW5kID0gInNz aCI7CiAgICAgY2hhciAqcnVuZSA9IE5VTEw7CiAgICAgY2hhciAqaG9zdDsKLSAgICBpbnQgb3B0 LCBkYWVtb25pemUgPSAxLCBtb25pdG9yID0gMSwgZGVidWcgPSAwLCBwYXVzZV9hZnRlcl9taWdy YXRpb24gPSAwOworICAgIGNoYXIgKmhvc3RuYW1lOworICAgIGludCBvcHQsIGRhZW1vbml6ZSA9 IDEsIG1vbml0b3IgPSAxLCBkZWJ1ZyA9IDAsIHBhdXNlX2FmdGVyX21pZ3JhdGlvbiA9IDAsCisg ICAgbWlycm9yX2Rpc2tzID0gMDsKKyAgICBpbnQgcmM7CiAgICAgc3RhdGljIHN0cnVjdCBvcHRp b24gb3B0c1tdID0gewogICAgICAgICB7ImRlYnVnIiwgMCwgMCwgMHgxMDB9LAogICAgICAgICB7 ImxpdmUiLCAwLCAwLCAweDIwMH0sCiAgICAgICAgIENPTU1PTl9MT05HX09QVFMKICAgICB9Owog Ci0gICAgU1dJVENIX0ZPUkVBQ0hfT1BUKG9wdCwgIkZDOnM6ZXAiLCBvcHRzLCAibWlncmF0ZSIs IDIpIHsKKyAgICBTV0lUQ0hfRk9SRUFDSF9PUFQob3B0LCAiRkM6czplcHEiLCBvcHRzLCAibWln cmF0ZSIsIDIpIHsKICAgICBjYXNlICdDJzoKICAgICAgICAgY29uZmlnX2ZpbGVuYW1lID0gb3B0 YXJnOwogICAgICAgICBicmVhazsKQEAgLTU0MCw2ICs1NTMsOSBAQCBpbnQgbWFpbl9taWdyYXRl KGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBjYXNlICdwJzoKICAgICAgICAgcGF1c2VfYWZ0 ZXJfbWlncmF0aW9uID0gMTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSAncSc6CisgICAgICAg IG1pcnJvcl9kaXNrcyA9IDE7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMHgxMDA6IC8qIC0t ZGVidWcgKi8KICAgICAgICAgZGVidWcgPSAxOwogICAgICAgICBicmVhazsKQEAgLTU1MSw2ICs1 NjcsMzMgQEAgaW50IG1haW5fbWlncmF0ZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgZG9t aWQgPSBmaW5kX2RvbWFpbihhcmd2W29wdGluZF0pOwogICAgIGhvc3QgPSBhcmd2W29wdGluZCAr IDFdOwogCisgICAgaG9zdG5hbWUgPSBzdHJjaHIoaG9zdCwgJ0AnKTsKKyAgICBob3N0bmFtZSsr OworCisgICAgaWYgKG1pcnJvcl9kaXNrcykgeworICAgICAgICBsaWJ4bF9kb21haW5fY29uZmln X2luaXQoJmRfY29uZmlnKTsKKyAgICAgICAgcmMgPSBsaWJ4bF9yZXRyaWV2ZV9kb21haW5fY29u ZmlndXJhdGlvbihjdHgsIGRvbWlkLCAmZF9jb25maWcpOworICAgICAgICBpZiAocmMpIHsKKyAg ICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAidW5hYmxlIHRvIHJldHJpZXZlIGRvbWFpbiBjb25m aWd1cmF0aW9uXG4iKTsKKyAgICAgICAgICAgIGdvdG8gZmFpbGVkX2NvbmZpZzsKKyAgICAgICAg fQorICAgICAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyBiX2luZm8gPSBkX2NvbmZpZy5iX2lu Zm87CisgICAgICAgIGxpYnhsX2RldmljZV9tb2RlbF92ZXJzaW9uIG1vZGVsX3ZlcnNpb24gPSBi X2luZm8uZGV2aWNlX21vZGVsX3ZlcnNpb247CisgICAgICAgIGxpYnhsX2RvbWFpbl90eXBlIHR5 cGUgPSBiX2luZm8udHlwZTsKKworICAgICAgICBpZiAobW9kZWxfdmVyc2lvbiAhPSBMSUJYTF9E RVZJQ0VfTU9ERUxfVkVSU0lPTl9RRU1VX1hFTikKKyAgICAgICAgICAgIGdvdG8gZmFpbGVkX21p cnJvcjsKKworICAgICAgICBpZiAodHlwZSAhPSBMSUJYTF9ET01BSU5fVFlQRV9IVk0pIHsKKyAg ICAgICAgICAgIGdvdG8gZmFpbGVkX21pcnJvcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgIGxpYnhsX2RlZmJvb2xfc2V0ZGVmYXVsdCgmYl9pbmZvLnUuaHZtLnhlbl9wbGF0Zm9ybV9w Y2ksIHRydWUpOworICAgICAgICAgICAgaWYgKGxpYnhsX2RlZmJvb2xfdmFsKGJfaW5mby51Lmh2 bS54ZW5fcGxhdGZvcm1fcGNpKSkKKyAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZF9taXJyb3I7 CisgICAgICAgIH0KKyAgICAgICAgbGlieGxfZG9tYWluX2NvbmZpZ19kaXNwb3NlKCZkX2NvbmZp Zyk7CisgICAgfQorCiAgICAgYm9vbCBwYXNzX3R0eV9hcmcgPSBwcm9ncmVzc191c2VfY3IgfHwg KGlzYXR0eSgyKSA+IDApOwogCiAgICAgaWYgKCFzc2hfY29tbWFuZFswXSkgewpAQCAtNTY3LDE3 ICs2MTAsMjggQEAgaW50IG1haW5fbWlncmF0ZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAg ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB2ZXJib3NlX2xlbiA9IChtaW5tc2dsZXZlbF9kZWZh dWx0IC0gbWlubXNnbGV2ZWwpICsgMjsKICAgICAgICAgfQotICAgICAgICB4YXNwcmludGYoJnJ1 bmUsICJleGVjICVzICVzIHhsJXMlLipzIG1pZ3JhdGUtcmVjZWl2ZSVzJXMlcyIsCisgICAgICAg IHhhc3ByaW50ZigmcnVuZSwgImV4ZWMgJXMgJXMgeGwlcyUuKnMgbWlncmF0ZS1yZWNlaXZlJXMl cyVzJXMiLAogICAgICAgICAgICAgICAgICAgc3NoX2NvbW1hbmQsIGhvc3QsCiAgICAgICAgICAg ICAgICAgICBwYXNzX3R0eV9hcmcgPyAiIC10IiA6ICIiLAogICAgICAgICAgICAgICAgICAgdmVy Ym9zZV9sZW4sIHZlcmJvc2VfYnVmLAogICAgICAgICAgICAgICAgICAgZGFlbW9uaXplID8gIiIg OiAiIC1lIiwKICAgICAgICAgICAgICAgICAgIGRlYnVnID8gIiAtZCIgOiAiIiwKLSAgICAgICAg ICAgICAgICAgIHBhdXNlX2FmdGVyX21pZ3JhdGlvbiA/ICIgLXAiIDogIiIpOworICAgICAgICAg ICAgICAgICAgcGF1c2VfYWZ0ZXJfbWlncmF0aW9uID8gIiAtcCIgOiAiIiwKKyAgICAgICAgICAg ICAgICAgIG1pcnJvcl9kaXNrcyA/ICIgLXEiIDogIiIpOwogICAgIH0KIAotICAgIG1pZ3JhdGVf ZG9tYWluKGRvbWlkLCBydW5lLCBkZWJ1ZywgY29uZmlnX2ZpbGVuYW1lKTsKKyAgICBtaWdyYXRl X2RvbWFpbihkb21pZCwgcnVuZSwgZGVidWcsIGNvbmZpZ19maWxlbmFtZSwgbWlycm9yX2Rpc2tz LAorICAgICAgICAgICAgICAgICAgIGhvc3RuYW1lKTsKICAgICByZXR1cm4gRVhJVF9TVUNDRVNT OworCisgZmFpbGVkX21pcnJvcjoKKyAgICBmcHJpbnRmKHN0ZGVyciwgIk1pZ3JhdGlvbiB3aXRo IGxvY2FsIGRpc2tzIG1pcnJvcmluZyBpcyBvbmx5IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAg ICAgICAgICJmb3IgSFZNIHVzaW5nIFFFTVVfWEVOIGFzIGRldmljZSBtb2RlbCB2ZXJzaW9uIGFu ZCAiCisgICAgICAgICAgICAgICAgICAgICJ4ZW5fcGxhdGZvcm1fcGNpID0gMVxuIik7CisKKyBm YWlsZWRfY29uZmlnOgorICAgIGxpYnhsX2RvbWFpbl9jb25maWdfZGlzcG9zZSgmZF9jb25maWcp OworICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKIH0KIAogaW50IG1haW5fcmVtdXMoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQpkaWZmIC0tZ2l0IGEvdG9vbHMveGwveGxfc2F2ZXJlc3RvcmUuYyBiL3Rv b2xzL3hsL3hsX3NhdmVyZXN0b3JlLmMKaW5kZXggOWFmZWFkZS4uOTIxNWE0NSAxMDA2NDQKLS0t IGEvdG9vbHMveGwveGxfc2F2ZXJlc3RvcmUuYworKysgYi90b29scy94bC94bF9zYXZlcmVzdG9y ZS5jCkBAIC0xNDEsNyArMTQxLDcgQEAgc3RhdGljIGludCBzYXZlX2RvbWFpbih1aW50MzJfdCBk b21pZCwgY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBjaGVja3BvaW50LAogCiAgICAgc2F2ZV9k b21haW5fY29yZV93cml0ZWNvbmZpZyhmZCwgZmlsZW5hbWUsIGNvbmZpZ19kYXRhLCBjb25maWdf bGVuKTsKIAotICAgIGludCByYyA9IGxpYnhsX2RvbWFpbl9zdXNwZW5kKGN0eCwgZG9taWQsIGZk LCAwLCBOVUxMKTsKKyAgICBpbnQgcmMgPSBsaWJ4bF9kb21haW5fc3VzcGVuZChjdHgsIGRvbWlk LCBmZCwgMCwgMCwgTlVMTCwgTlVMTCk7CiAgICAgY2xvc2UoZmQpOwogCiAgICAgaWYgKHJjIDwg MCkgewotLSAKMi4zLjIgKEFwcGxlIEdpdC01NSkKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v bGlzdGluZm8veGVuLWRldmVs