From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH v2 50/62] xen/pvshim: add migration support Date: Fri, 12 Jan 2018 11:28:58 +0000 Message-ID: <20180112112910.16762-51-wei.liu2@citrix.com> References: <20180112112910.16762-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eZxzp-0004gV-Bu for xen-devel@lists.xenproject.org; Fri, 12 Jan 2018 11:59:41 +0000 In-Reply-To: <20180112112910.16762-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org RnJvbTogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KClNpZ25lZC1vZmYt Ynk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotLS0KQ2hhbmdlcyBz aW5jZSB2MToKIC0gVXNlIGJpdG1hcF96ZXJvIGluc3RlYWQgb2YgbWVtc2V0LgogLSBEb24ndCBk cm9wIHRoZSBfX2luaXQgYXR0cmlidXRlIG9mIHVuc2hhcmVfeGVuX3BhZ2Vfd2l0aF9ndWVzdCwK ICAgaXQncyBub3QgbmVlZGVkIGZvciBtaWdyYXRpb24uCiAtIFJlbW92ZSBCVUdfT04gdG8gY2hl Y2sgY29ycmVjdCBtYXBwaW5nLCBtYXBfZG9tYWluX3BhZ2UgY2Fubm90CiAgIGZhaWwuCiAtIFJl ZHVjZSBpbmRlbnRhdGlvbiBsZXZlbCBvZiBwdl9zaGltX3NodXRkb3duLgotLS0KIHhlbi9hcmNo L3g4Ni9ndWVzdC94ZW4uYyAgICAgICAgICB8ICAyOSArKysrKysrCiB4ZW4vYXJjaC94ODYvcHYv c2hpbS5jICAgICAgICAgICAgfCAxNTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0KIHhlbi9jb21tb24vZG9tYWluLmMgICAgICAgICAgICAgICB8ICAxMSArKy0KIHhlbi9j b21tb24vc2NoZWR1bGUuYyAgICAgICAgICAgICB8ICAgMyArLQogeGVuL2RyaXZlcnMvY2hhci94 ZW5fcHZfY29uc29sZS5jIHwgICAyICstCiB4ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0L3hlbi5o ICAgfCAgIDUgKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvcHYvc2hpbS5oICAgICB8ICAgNSArLQog eGVuL2luY2x1ZGUveGVuL3NjaGVkLmggICAgICAgICAgIHwgICAyICstCiA4IGZpbGVzIGNoYW5n ZWQsIDE5NyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvZ3Vlc3QveGVuLmMgYi94ZW4vYXJjaC94ODYvZ3Vlc3QveGVuLmMKaW5kZXggNTdi Mjk3YWQ0Ny4uMmE1NTU0YWIyNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2d1ZXN0L3hlbi5j CisrKyBiL3hlbi9hcmNoL3g4Ni9ndWVzdC94ZW4uYwpAQCAtMzQ4LDYgKzM0OCwzNSBAQCB1aW50 MzJfdCBoeXBlcnZpc29yX2NwdWlkX2Jhc2Uodm9pZCkKICAgICByZXR1cm4geGVuX2NwdWlkX2Jh c2U7CiB9CiAKK3N0YXRpYyB2b2lkIGFwX3Jlc3VtZSh2b2lkICp1bnVzZWQpCit7CisgICAgbWFw X3ZjcHVpbmZvKCk7CisgICAgaW5pdF9ldnRjaG4oKTsKK30KKwordm9pZCBoeXBlcnZpc29yX3Jl c3VtZSh2b2lkKQoreworICAgIC8qIFJlc2V0IHNoYXJlZCBpbmZvIHBhZ2UuICovCisgICAgbWFw X3NoYXJlZF9pbmZvKCk7CisKKyAgICAvKgorICAgICAqIFJlc2V0IHZjcHVfaW5mby4gSnVzdCBj bGVhbiB0aGUgbWFwcGVkIGJpdG1hcCBhbmQgdHJ5IHRvIG1hcCB0aGUgdmNwdQorICAgICAqIGFy ZWEgYWdhaW4uIE9uIGZhaWx1cmUgdG8gbWFwICh3aGVuIGl0IHdhcyBwcmV2aW91c2x5IG1hcHBl ZCkgcGFuaWMKKyAgICAgKiBzaW5jZSBpdCdzIGltcG9zc2libGUgdG8gc2FmZWx5IHNodXQgZG93 biBydW5uaW5nIGd1ZXN0IHZDUFVzIGluIG9yZGVyCisgICAgICogdG8gbWVldCB0aGUgbmV3IFhF Tl9MRUdBQ1lfTUFYX1ZDUFVTIHJlcXVpcmVtZW50LgorICAgICAqLworICAgIGJpdG1hcF96ZXJv KHZjcHVfaW5mb19tYXBwZWQsIE5SX0NQVVMpOworICAgIGlmICggbWFwX3ZjcHVpbmZvKCkgJiYg bnJfY3B1X2lkcyA+IFhFTl9MRUdBQ1lfTUFYX1ZDUFVTICkKKyAgICAgICAgcGFuaWMoInVuYWJs ZSB0byByZW1hcCB2Q1BVIGluZm8gYW5kIHZDUFVzID4gbGVnYWN5IGxpbWl0Iik7CisKKyAgICAv KiBTZXR1cCBldmVudCBjaGFubmVsIHVwY2FsbCB2ZWN0b3IuICovCisgICAgaW5pdF9ldnRjaG4o KTsKKyAgICBzbXBfY2FsbF9mdW5jdGlvbihhcF9yZXN1bWUsIE5VTEwsIDEpOworCisgICAgaWYg KCBwdl9jb25zb2xlICkKKyAgICAgICAgcHZfY29uc29sZV9pbml0KCk7Cit9CisKIC8qCiAgKiBM b2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYv c2hpbS5jIGIveGVuL2FyY2gveDg2L3B2L3NoaW0uYwppbmRleCA5ODZmOWRhNThhLi5jNTNhNGNh NDA3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvc2hpbS5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9wdi9zaGltLmMKQEAgLTE2MCwxMCArMTYwLDE1OSBAQCB2b2lkIF9faW5pdCBwdl9zaGltX3Nl dHVwX2RvbShzdHJ1Y3QgZG9tYWluICpkLCBsNF9wZ2VudHJ5X3QgKmw0c3RhcnQsCiAgICAgZ3Vl c3QgPSBkOwogfQogCi12b2lkIHB2X3NoaW1fc2h1dGRvd24odWludDhfdCByZWFzb24pCitzdGF0 aWMgdm9pZCB3cml0ZV9zdGFydF9pbmZvKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAgLyogWFhY OiBoYW5kbGUgc3VzcGVuZCAqLwotICAgIHhlbl9oeXBlcmNhbGxfc2h1dGRvd24ocmVhc29uKTsK KyAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyA9IGd1ZXN0X2NwdV91c2VyX3JlZ3MoKTsK KyAgICBzdGFydF9pbmZvX3QgKnNpID0gbWFwX2RvbWFpbl9wYWdlKF9tZm4oaXNfcHZfMzJiaXRf ZG9tYWluKGQpID8gcmVncy0+ZWR4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlZ3MtPnJkeCkpOworICAgIHVpbnQ2 NF90IHBhcmFtOworCisgICAgc25wcmludGYoc2ktPm1hZ2ljLCBzaXplb2Yoc2ktPm1hZ2ljKSwg Inhlbi0zLjAteDg2XyVzIiwKKyAgICAgICAgICAgICBpc19wdl8zMmJpdF9kb21haW4oZCkgPyAi MzJwIiA6ICI2NCIpOworICAgIHNpLT5ucl9wYWdlcyA9IGQtPnRvdF9wYWdlczsKKyAgICBzaS0+ c2hhcmVkX2luZm8gPSB2aXJ0X3RvX21hZGRyKGQtPnNoYXJlZF9pbmZvKTsKKyAgICBzaS0+Zmxh Z3MgPSAwOworICAgIEJVR19PTih4ZW5faHlwZXJjYWxsX2h2bV9nZXRfcGFyYW0oSFZNX1BBUkFN X1NUT1JFX1BGTiwgJnNpLT5zdG9yZV9tZm4pKTsKKyAgICBCVUdfT04oeGVuX2h5cGVyY2FsbF9o dm1fZ2V0X3BhcmFtKEhWTV9QQVJBTV9TVE9SRV9FVlRDSE4sICZwYXJhbSkpOworICAgIHNpLT5z dG9yZV9ldnRjaG4gPSBwYXJhbTsKKyAgICBCVUdfT04oeGVuX2h5cGVyY2FsbF9odm1fZ2V0X3Bh cmFtKEhWTV9QQVJBTV9DT05TT0xFX0VWVENITiwgJnBhcmFtKSk7CisgICAgc2ktPmNvbnNvbGUu ZG9tVS5ldnRjaG4gPSBwYXJhbTsKKyAgICBpZiAoIHB2X2NvbnNvbGUgKQorICAgICAgICBzaS0+ Y29uc29sZS5kb21VLm1mbiA9IHZpcnRfdG9fbWZuKGNvbnNvbGVkX2dldF9yaW5nX2FkZHIoKSk7 CisgICAgZWxzZSBpZiAoIHhlbl9oeXBlcmNhbGxfaHZtX2dldF9wYXJhbShIVk1fUEFSQU1fQ09O U09MRV9QRk4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2kt PmNvbnNvbGUuZG9tVS5tZm4pICkKKyAgICAgICAgQlVHKCk7CisKKyAgICBpZiAoIGlzX3B2XzMy Yml0X2RvbWFpbihkKSApCisgICAgICAgIHhsYXRfc3RhcnRfaW5mbyhzaSwgWExBVF9zdGFydF9p bmZvX2NvbnNvbGVfZG9tVSk7CisKKyAgICB1bm1hcF9kb21haW5fcGFnZShzaSk7Cit9CisKK2lu dCBwdl9zaGltX3NodXRkb3duKHVpbnQ4X3QgcmVhc29uKQoreworICAgIHN0cnVjdCBkb21haW4g KmQgPSBjdXJyZW50LT5kb21haW47CisgICAgc3RydWN0IHZjcHUgKnY7CisgICAgdW5zaWduZWQg aW50IGk7CisgICAgdWludDY0X3Qgb2xkX3N0b3JlX3Bmbiwgb2xkX2NvbnNvbGVfcGZuID0gMCwg c3RvcmVfcGZuLCBjb25zb2xlX3BmbjsKKyAgICB1aW50NjRfdCBzdG9yZV9ldnRjaG4sIGNvbnNv bGVfZXZ0Y2huOworICAgIGxvbmcgcmM7CisKKyAgICBpZiAoIHJlYXNvbiAhPSBTSFVURE9XTl9z dXNwZW5kICkKKyAgICAgICAgLyogRm9yd2FyZCB0byBMMC4gKi8KKyAgICAgICAgcmV0dXJuIHhl bl9oeXBlcmNhbGxfc2h1dGRvd24ocmVhc29uKTsKKworICAgIEJVR19PTihjdXJyZW50LT52Y3B1 X2lkICE9IDApOworCisgICAgQlVHX09OKHhlbl9oeXBlcmNhbGxfaHZtX2dldF9wYXJhbShIVk1f UEFSQU1fU1RPUkVfUEZOLCAmb2xkX3N0b3JlX3BmbikpOworICAgIGlmICggIXB2X2NvbnNvbGUg KQorICAgICAgICBCVUdfT04oeGVuX2h5cGVyY2FsbF9odm1fZ2V0X3BhcmFtKEhWTV9QQVJBTV9D T05TT0xFX1BGTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm b2xkX2NvbnNvbGVfcGZuKSk7CisKKyAgICAvKiBQYXVzZSB0aGUgb3RoZXIgdmNwdXMgYmVmb3Jl IHN0YXJ0aW5nIHRoZSBtaWdyYXRpb24uICovCisgICAgZm9yX2VhY2hfdmNwdShkLCB2KQorICAg ICAgICBpZiAoIHYgIT0gY3VycmVudCApCisgICAgICAgICAgICB2Y3B1X3BhdXNlX2J5X3N5c3Rl bWNvbnRyb2xsZXIodik7CisKKyAgICByYyA9IHhlbl9oeXBlcmNhbGxfc2h1dGRvd24oU0hVVERP V05fc3VzcGVuZCk7CisgICAgaWYgKCByYyApCisgICAgeworICAgICAgICBmb3JfZWFjaF92Y3B1 KGQsIHYpCisgICAgICAgICAgICBpZiAoIHYgIT0gY3VycmVudCApCisgICAgICAgICAgICAgICAg dmNwdV91bnBhdXNlX2J5X3N5c3RlbWNvbnRyb2xsZXIodik7CisKKyAgICAgICAgcmV0dXJuIHJj OworICAgIH0KKworICAgIC8qIFJlc3VtZSB0aGUgc2hpbSBpdHNlbGYgZmlyc3QuICovCisgICAg aHlwZXJ2aXNvcl9yZXN1bWUoKTsKKworICAgIC8qCisgICAgICogQVRNIHRoZXJlJ3Mgbm90aGlu ZyBYZW4gY2FuIGRvIGlmIHRoZSBjb25zb2xlL3N0b3JlIHBmbiBjaGFuZ2VzLAorICAgICAqIGJl Y2F1c2UgWGVuIHdvbid0IGhhdmUgYSBwYWdlX2luZm8gc3RydWN0IGZvciBpdC4KKyAgICAgKi8K KyAgICBCVUdfT04oeGVuX2h5cGVyY2FsbF9odm1fZ2V0X3BhcmFtKEhWTV9QQVJBTV9TVE9SRV9Q Rk4sICZzdG9yZV9wZm4pKTsKKyAgICBCVUdfT04ob2xkX3N0b3JlX3BmbiAhPSBzdG9yZV9wZm4p OworICAgIGlmICggIXB2X2NvbnNvbGUgKQorICAgIHsKKyAgICAgICAgQlVHX09OKHhlbl9oeXBl cmNhbGxfaHZtX2dldF9wYXJhbShIVk1fUEFSQU1fQ09OU09MRV9QRk4sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbnNvbGVfcGZuKSk7CisgICAgICAgIEJV R19PTihvbGRfY29uc29sZV9wZm4gIT0gY29uc29sZV9wZm4pOworICAgIH0KKworICAgIC8qIFVw ZGF0ZSBkb21haW4gaWQuICovCisgICAgZC0+ZG9tYWluX2lkID0gZ2V0X2luaXRpYWxfZG9tYWlu X2lkKCk7CisKKyAgICAvKiBDbGVhbiB0aGUgaW9tZW0gcmFuZ2UuICovCisgICAgQlVHX09OKGlv bWVtX2RlbnlfYWNjZXNzKGQsIDAsIH4wVUwpKTsKKworICAgIC8qIENsZWFuIGdyYW50IGZyYW1l cy4gKi8KKyAgICB4ZnJlZShncmFudF9mcmFtZXMpOworICAgIGdyYW50X2ZyYW1lcyA9IE5VTEw7 CisgICAgbnJfZ3JhbnRfbGlzdCA9IDA7CisKKyAgICAvKiBDbGVhbiBldmVudCBjaGFubmVscy4g Ki8KKyAgICBmb3IgKCBpID0gMDsgaSA8IEVWVENITl8yTF9OUl9DSEFOTkVMUzsgaSsrICkKKyAg ICB7CisgICAgICAgIGlmICggIXBvcnRfaXNfdmFsaWQoZCwgaSkgKQorICAgICAgICAgICAgY29u dGludWU7CisKKyAgICAgICAgaWYgKCBldnRjaG5faGFuZGxlZChkLCBpKSApCisgICAgICAgICAg ICBldnRjaG5fY2xvc2UoZCwgaSwgZmFsc2UpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBl dnRjaG5fZnJlZShkLCBldnRjaG5fZnJvbV9wb3J0KGQsIGkpKTsKKyAgICB9CisKKyAgICAvKiBS ZXNlcnZlIHN0b3JlL2NvbnNvbGUgZXZlbnQgY2hhbm5lbC4gKi8KKyAgICBCVUdfT04oeGVuX2h5 cGVyY2FsbF9odm1fZ2V0X3BhcmFtKEhWTV9QQVJBTV9TVE9SRV9FVlRDSE4sICZzdG9yZV9ldnRj aG4pKTsKKyAgICBCVUdfT04oZXZ0Y2huX2FsbG9jYXRlX3BvcnQoZCwgc3RvcmVfZXZ0Y2huKSk7 CisgICAgZXZ0Y2huX3Jlc2VydmUoZCwgc3RvcmVfZXZ0Y2huKTsKKyAgICBCVUdfT04oeGVuX2h5 cGVyY2FsbF9odm1fZ2V0X3BhcmFtKEhWTV9QQVJBTV9DT05TT0xFX0VWVENITiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb25zb2xlX2V2dGNobikpOworICAgIEJV R19PTihldnRjaG5fYWxsb2NhdGVfcG9ydChkLCBjb25zb2xlX2V2dGNobikpOworICAgIGV2dGNo bl9yZXNlcnZlKGQsIGNvbnNvbGVfZXZ0Y2huKTsKKworICAgIC8qIENsZWFuIHdhdGNoZG9ncy4g Ki8KKyAgICB3YXRjaGRvZ19kb21haW5fZGVzdHJveShkKTsKKyAgICB3YXRjaGRvZ19kb21haW5f aW5pdChkKTsKKworICAgIC8qIENsZWFuIHRoZSBQSVJRIEVPSSBwYWdlLiAqLworICAgIGlmICgg ZC0+YXJjaC5waXJxX2VvaV9tYXAgIT0gTlVMTCApCisgICAgeworICAgICAgICB1bm1hcF9kb21h aW5fcGFnZV9nbG9iYWwoZC0+YXJjaC5waXJxX2VvaV9tYXApOworICAgICAgICBwdXRfcGFnZV9h bmRfdHlwZShtZm5fdG9fcGFnZShkLT5hcmNoLnBpcnFfZW9pX21hcF9tZm4pKTsKKyAgICAgICAg ZC0+YXJjaC5waXJxX2VvaV9tYXAgPSBOVUxMOworICAgICAgICBkLT5hcmNoLnBpcnFfZW9pX21h cF9tZm4gPSAwOworICAgICAgICBkLT5hcmNoLmF1dG9fdW5tYXNrID0gMDsKKyAgICB9CisKKyAg ICAvKgorICAgICAqIE5COiB0aGVyZSdzIG5vIG5lZWQgdG8gZml4dXAgdGhlIHAybSwgc2luY2Ug dGhlIG1mbnMgYXNzaWduZWQKKyAgICAgKiB0byB0aGUgUFYgZ3Vlc3QgaGF2ZSBub3QgY2hhbmdl ZCBhdCBhbGwuIEp1c3QgcmUtd3JpdGUgdGhlCisgICAgICogc3RhcnRfaW5mbyBmaWVsZHMgd2l0 aCB0aGUgYXBwcm9wcmlhdGUgdmFsdWUuCisgICAgICovCisgICAgd3JpdGVfc3RhcnRfaW5mbyhk KTsKKworICAgIGZvcl9lYWNoX3ZjcHUoZCwgdikKKyAgICB7CisgICAgICAgIC8qIFVubWFwIGd1 ZXN0IHZjcHVfaW5mbyBwYWdlcy4gKi8KKyAgICAgICAgdW5tYXBfdmNwdV9pbmZvKHYpOworCisg ICAgICAgIC8qIFJlc2V0IHRoZSBwZXJpb2RpYyB0aW1lciB0byB0aGUgZGVmYXVsdCB2YWx1ZS4g Ki8KKyAgICAgICAgdi0+cGVyaW9kaWNfcGVyaW9kID0gTUlMTElTRUNTKDEwKTsKKyAgICAgICAg LyogU3RvcCB0aGUgc2luZ2xlc2hvdCB0aW1lci4gKi8KKyAgICAgICAgc3RvcF90aW1lcigmdi0+ c2luZ2xlc2hvdF90aW1lcik7CisKKyAgICAgICAgaWYgKCB0ZXN0X2JpdChfVlBGX2Rvd24sICZ2 LT5wYXVzZV9mbGFncykgKQorICAgICAgICAgICAgQlVHX09OKHZjcHVfcmVzZXQodikpOworCisg ICAgICAgIGlmICggdiAhPSBjdXJyZW50ICkKKyAgICAgICAgICAgIHZjcHVfdW5wYXVzZV9ieV9z eXN0ZW1jb250cm9sbGVyKHYpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2Y3B1X2ZvcmNl X3Jlc2NoZWR1bGUodik7CisgICAgfQorCisgICAgcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBsb25n IHB2X3NoaW1fZXZlbnRfY2hhbm5lbF9vcChpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFN KHZvaWQpIGFyZykKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZG9tYWluLmMgYi94ZW4vY29tbW9u L2RvbWFpbi5jCmluZGV4IGVmNTY2ZjdmNDUuLjZlZDIxYjI1MzYgMTAwNjQ0Ci0tLSBhL3hlbi9j b21tb24vZG9tYWluLmMKKysrIGIveGVuL2NvbW1vbi9kb21haW4uYwpAQCAtNjk3LDE2ICs2OTcs MTMgQEAgdm9pZCBfX2RvbWFpbl9jcmFzaF9zeW5jaHJvbm91cyh2b2lkKQogfQogCiAKLXZvaWQg ZG9tYWluX3NodXRkb3duKHN0cnVjdCBkb21haW4gKmQsIHU4IHJlYXNvbikKK2ludCBkb21haW5f c2h1dGRvd24oc3RydWN0IGRvbWFpbiAqZCwgdTggcmVhc29uKQogewogICAgIHN0cnVjdCB2Y3B1 ICp2OwogCiAjaWZkZWYgQ09ORklHX1g4NgogICAgIGlmICggcHZfc2hpbSApCi0gICAgewotICAg ICAgICBwdl9zaGltX3NodXRkb3duKHJlYXNvbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Cisg ICAgICAgIHJldHVybiBwdl9zaGltX3NodXRkb3duKHJlYXNvbik7CiAjZW5kaWYKIAogICAgIHNw aW5fbG9jaygmZC0+c2h1dGRvd25fbG9jayk7CkBAIC03MjEsNyArNzE4LDcgQEAgdm9pZCBkb21h aW5fc2h1dGRvd24oc3RydWN0IGRvbWFpbiAqZCwgdTggcmVhc29uKQogICAgIGlmICggZC0+aXNf c2h1dHRpbmdfZG93biApCiAgICAgewogICAgICAgICBzcGluX3VubG9jaygmZC0+c2h1dGRvd25f bG9jayk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAg ZC0+aXNfc2h1dHRpbmdfZG93biA9IDE7CkBAIC03NDMsNiArNzQwLDggQEAgdm9pZCBkb21haW5f c2h1dGRvd24oc3RydWN0IGRvbWFpbiAqZCwgdTggcmVhc29uKQogICAgIF9fZG9tYWluX2ZpbmFs aXNlX3NodXRkb3duKGQpOwogCiAgICAgc3Bpbl91bmxvY2soJmQtPnNodXRkb3duX2xvY2spOwor CisgICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgZG9tYWluX3Jlc3VtZShzdHJ1Y3QgZG9tYWluICpk KQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZHVsZS5jIGIveGVuL2NvbW1vbi9zY2hlZHVs ZS5jCmluZGV4IDg4Mjc5MjEzZTguLmI3ODg0MjYzZjIgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24v c2NoZWR1bGUuYworKysgYi94ZW4vY29tbW9uL3NjaGVkdWxlLmMKQEAgLTExNDksMTEgKzExNDks MTAgQEAgcmV0X3QgZG9fc2NoZWRfb3AoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2 b2lkKSBhcmcpCiAgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZzY2hlZF9zaHV0ZG93biwg YXJnLCAxKSApCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICByZXQgPSAwOwogICAgICAg ICBUUkFDRV8zRChUUkNfU0NIRURfU0hVVERPV04sCiAgICAgICAgICAgICAgICAgIGN1cnJlbnQt PmRvbWFpbi0+ZG9tYWluX2lkLCBjdXJyZW50LT52Y3B1X2lkLAogICAgICAgICAgICAgICAgICBz Y2hlZF9zaHV0ZG93bi5yZWFzb24pOwotICAgICAgICBkb21haW5fc2h1dGRvd24oY3VycmVudC0+ ZG9tYWluLCAodTgpc2NoZWRfc2h1dGRvd24ucmVhc29uKTsKKyAgICAgICAgcmV0ID0gZG9tYWlu X3NodXRkb3duKGN1cnJlbnQtPmRvbWFpbiwgKHU4KXNjaGVkX3NodXRkb3duLnJlYXNvbik7CiAK ICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvY2hhci94ZW5f cHZfY29uc29sZS5jIGIveGVuL2RyaXZlcnMvY2hhci94ZW5fcHZfY29uc29sZS5jCmluZGV4IDk0 ODM0MzMwM2UuLmNjMWMxZDc0M2YgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL2NoYXIveGVuX3B2 X2NvbnNvbGUuYworKysgYi94ZW4vZHJpdmVycy9jaGFyL3hlbl9wdl9jb25zb2xlLmMKQEAgLTM3 LDcgKzM3LDcgQEAgc3RhdGljIERFRklORV9TUElOTE9DSyh0eF9sb2NrKTsKIAogYm9vbCBwdl9j b25zb2xlOwogCi12b2lkIF9faW5pdCBwdl9jb25zb2xlX2luaXQodm9pZCkKK3ZvaWQgcHZfY29u c29sZV9pbml0KHZvaWQpCiB7CiAgICAgbG9uZyByOwogICAgIHVpbnQ2NF90IHJhd19wZm4gPSAw LCByYXdfZXZ0Y2huID0gMDsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3Qv eGVuLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0L3hlbi5oCmluZGV4IGFjNDhkY2JlNDQu LjExMjQzZmU2MGQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3QveGVuLmgK KysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdC94ZW4uaApAQCAtMzksNiArMzksNyBAQCBp bnQgaHlwZXJ2aXNvcl9mcmVlX3VudXNlZF9wYWdlKG1mbl90IG1mbik7CiB2b2lkIGh5cGVydmlz b3JfZml4dXBfZTgyMChzdHJ1Y3QgZTgyMG1hcCAqZTgyMCk7CiBjb25zdCB1bnNpZ25lZCBsb25n ICpoeXBlcnZpc29yX3Jlc2VydmVkX3BhZ2VzKHVuc2lnbmVkIGludCAqc2l6ZSk7CiB1aW50MzJf dCBoeXBlcnZpc29yX2NwdWlkX2Jhc2Uodm9pZCk7Cit2b2lkIGh5cGVydmlzb3JfcmVzdW1lKHZv aWQpOwogCiBERUNMQVJFX1BFUl9DUFUodW5zaWduZWQgaW50LCB2Y3B1X2lkKTsKIERFQ0xBUkVf UEVSX0NQVShzdHJ1Y3QgdmNwdV9pbmZvICosIHZjcHVfaW5mbyk7CkBAIC03Miw2ICs3MywxMCBA QCBzdGF0aWMgaW5saW5lIHVpbnQzMl90IGh5cGVydmlzb3JfY3B1aWRfYmFzZSh2b2lkKQogICAg IEFTU0VSVF9VTlJFQUNIQUJMRSgpOwogICAgIHJldHVybiAwOwogfTsKK3N0YXRpYyBpbmxpbmUg dm9pZCBoeXBlcnZpc29yX3Jlc3VtZSh2b2lkKQoreworICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgp OworfTsKIAogI2VuZGlmIC8qIENPTkZJR19YRU5fR1VFU1QgKi8KICNlbmRpZiAvKiBfX1g4Nl9H VUVTVF9YRU5fSF9fICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3B2L3NoaW0u aCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcHYvc2hpbS5oCmluZGV4IGFiNjU2ZmQ4NTQuLjRkNWYw YjQzZmMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcHYvc2hpbS5oCisrKyBiL3hl bi9pbmNsdWRlL2FzbS14ODYvcHYvc2hpbS5oCkBAIC0zNSw3ICszNSw3IEBAIHZvaWQgcHZfc2hp bV9zZXR1cF9kb20oc3RydWN0IGRvbWFpbiAqZCwgbDRfcGdlbnRyeV90ICpsNHN0YXJ0LAogICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHZhX3N0YXJ0LCB1bnNpZ25lZCBsb25n IHN0b3JlX3ZhLAogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGNvbnNvbGVf dmEsIHVuc2lnbmVkIGxvbmcgdnBoeXNtYXAsCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0 X2luZm9fdCAqc2kpOwotdm9pZCBwdl9zaGltX3NodXRkb3duKHVpbnQ4X3QgcmVhc29uKTsKK2lu dCBwdl9zaGltX3NodXRkb3duKHVpbnQ4X3QgcmVhc29uKTsKIHZvaWQgcHZfc2hpbV9pbmplY3Rf ZXZ0Y2huKHVuc2lnbmVkIGludCBwb3J0KTsKIGRvbWlkX3QgZ2V0X2luaXRpYWxfZG9tYWluX2lk KHZvaWQpOwogCkBAIC01MCw5ICs1MCwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHZfc2hpbV9z ZXR1cF9kb20oc3RydWN0IGRvbWFpbiAqZCwgbDRfcGdlbnRyeV90ICpsNHN0YXJ0LAogewogICAg IEFTU0VSVF9VTlJFQUNIQUJMRSgpOwogfQotc3RhdGljIGlubGluZSB2b2lkIHB2X3NoaW1fc2h1 dGRvd24odWludDhfdCByZWFzb24pCitzdGF0aWMgaW5saW5lIGludCBwdl9zaGltX3NodXRkb3du KHVpbnQ4X3QgcmVhc29uKQogewogICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgIHJldHVy biAwOwogfQogc3RhdGljIGlubGluZSB2b2lkIHB2X3NoaW1faW5qZWN0X2V2dGNobih1bnNpZ25l ZCBpbnQgcG9ydCkKIHsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oIGIveGVu L2luY2x1ZGUveGVuL3NjaGVkLmgKaW5kZXggNjRhYmMxZGY2Yy4uMjU0MWVjYjA0ZiAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3NjaGVk LmgKQEAgLTYwMyw3ICs2MDMsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkb21haW4gKnJjdV9s b2NrX2N1cnJlbnRfZG9tYWluKHZvaWQpCiBzdHJ1Y3QgZG9tYWluICpnZXRfZG9tYWluX2J5X2lk KGRvbWlkX3QgZG9tKTsKIHZvaWQgZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCk7CiBp bnQgZG9tYWluX2tpbGwoc3RydWN0IGRvbWFpbiAqZCk7Ci12b2lkIGRvbWFpbl9zaHV0ZG93bihz dHJ1Y3QgZG9tYWluICpkLCB1OCByZWFzb24pOworaW50IGRvbWFpbl9zaHV0ZG93bihzdHJ1Y3Qg ZG9tYWluICpkLCB1OCByZWFzb24pOwogdm9pZCBkb21haW5fcmVzdW1lKHN0cnVjdCBkb21haW4g KmQpOwogdm9pZCBkb21haW5fcGF1c2VfZm9yX2RlYnVnZ2VyKHZvaWQpOwogCi0tIAoyLjExLjAK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs