From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruno Alvisio Subject: [PATCH v2 05/17] Save/Restore Support: Add kernel shutdown logic to shutdown.c Date: Tue, 13 Feb 2018 18:25:49 -0800 Message-ID: <1518575161-70717-6-git-send-email-bruno.alvisio@gmail.com> References: <1518575161-70717-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: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1elmm2-0002hR-BE for xen-devel@lists.xenproject.org; Wed, 14 Feb 2018 02:26:18 +0000 In-Reply-To: <1518575161-70717-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: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org Cc: jgross@suse.com, samuel.thibault@ens-lyon.org, wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org Q3JlYXRlZCBzaHV0ZG93bi5jIGZvciB0aGUgc2h1dGRvd24gdGhyZWFkIGFuZCBhbGwgdGhlIHNo dXRkb3duIHJlbGF0ZWQKZnVuY3Rpb25zLgoKU2lnbmVkLW9mZi1ieTogQnJ1bm8gQWx2aXNpbyA8 YnJ1bm8uYWx2aXNpb0BnbWFpbC5jb20+Ci0tLQpDaGFuZ2VzZCBzaW5jZSB2MToKICAgKiBVcGRh dGVkIGxpY2Vuc2UgdG8gYSBCU0QgMy1jbGF1c2UuIFRoaXMgbGljZW5zZSB3YXMgdGFrZW4KZnJv bSB0aGUgdXBkYXRlZCBvcmlnaW5hbCBmaWxlLiAoUmVwbzogc3lzbWwvbWluaS1vcykKLS0tCiBN YWtlZmlsZSAgICAgICAgICAgfCAgIDEgKwogaW5jbHVkZS9zaHV0ZG93bi5oIHwgIDExICsrKysK IHNodXRkb3duLmMgICAgICAgICB8IDE4OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyMDAgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvc2h1dGRvd24uaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNodXRkb3duLmMKCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCmluZGV4IDg4 MzE1YzQuLjZhMDVkZTYgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC01 Myw2ICs1Myw3IEBAIHNyYy15ICs9IG1tLmMKIHNyYy0kKENPTkZJR19ORVRGUk9OVCkgKz0gbmV0 ZnJvbnQuYwogc3JjLSQoQ09ORklHX1BDSUZST05UKSArPSBwY2lmcm9udC5jCiBzcmMteSArPSBz Y2hlZC5jCitzcmMteSArPSBzaHV0ZG93bi5jCiBzcmMtJChDT05GSUdfVEVTVCkgKz0gdGVzdC5j CiBzcmMtJChDT05GSUdfQkFMTE9PTikgKz0gYmFsbG9vbi5jCiAKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvc2h1dGRvd24uaCBiL2luY2x1ZGUvc2h1dGRvd24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5hNWVjMDE5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9zaHV0ZG93 bi5oCkBAIC0wLDAgKzEsMTEgQEAKKyNpZm5kZWYgX1NIVVRET1dOX0hfCisjZGVmaW5lIF9TSFVU RE9XTl9IXworCisjaW5jbHVkZSA8bWluaS1vcy9oeXBlcnZpc29yLmg+CisKK3ZvaWQgaW5pdF9z aHV0ZG93bihzdGFydF9pbmZvX3QgKnNpKTsKKwordm9pZCBrZXJuZWxfc2h1dGRvd24oaW50IHJl YXNvbikgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKTsKK3ZvaWQga2VybmVsX3N1c3BlbmQodm9p ZCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc2h1dGRvd24uYyBiL3NodXRkb3duLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJhMTQ2ZQotLS0gL2Rldi9udWxsCisrKyBi L3NodXRkb3duLmMKQEAgLTAsMCArMSwxODggQEAKKy8qCisgKiAgICAgICAgICBNaW5pT1MKKyAq CisgKiAgIGZpbGU6IGZyb21kZXZpY2UuY2MKKyAqCisgKiBBdXRob3JzOiBKb2FvIE1hcnRpbnMg PGpvYW8ubWFydGluc0BuZWNsYWIuZXU+CisgKgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxNCwg TkVDIEV1cm9wZSBMdGQuLCBORUMgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0 IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz dHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRl ciBub3IgdGhlIG5hbWVzIG9mIGl0cworICogICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqICAgIHRoaXMgc29m dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP TlRSSUJVVE9SUyAiQVMgSVMiCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQg SE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg RVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg KgorICogVEhJUyBIRUFERVIgTUFZIE5PVCBCRSBFWFRSQUNURUQgT1IgTU9ESUZJRUQgSU4gQU5Z IFdBWS4KKyAqLworCisjaW5jbHVkZSA8bWluaS1vcy9vcy5oPgorI2luY2x1ZGUgPG1pbmktb3Mv ZXZlbnRzLmg+CisjaW5jbHVkZSA8bWluaS1vcy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxtaW5pLW9z L3NjaGVkLmg+CisjaW5jbHVkZSA8bWluaS1vcy9zaHV0ZG93bi5oPgorI2luY2x1ZGUgPG1pbmkt b3MvbGliLmg+CisjaW5jbHVkZSA8bWluaS1vcy94ZW5idXMuaD4KKyNpbmNsdWRlIDxtaW5pLW9z L3htYWxsb2MuaD4KKworCitzdGF0aWMgc3RhcnRfaW5mb190ICpzdGFydF9pbmZvX3B0cjsKKwor c3RhdGljIGNvbnN0IGNoYXIgKnBhdGggPSAiY29udHJvbC9zaHV0ZG93biI7CitzdGF0aWMgY29u c3QgY2hhciAqdG9rZW4gPSAiY29udHJvbC9zaHV0ZG93biI7CitzdGF0aWMgeGVuYnVzX2V2ZW50 X3F1ZXVlIGV2ZW50cyA9IE5VTEw7CitzdGF0aWMgaW50IGVuZF9zaHV0ZG93bl90aHJlYWQgPSAw OworCisjaWZkZWYgQ09ORklHX1hFTkJVUworLyogVGhpcyBzaG91bGQgYmUgb3ZlcnJpZGRlbiBi eSB0aGUgYXBwbGljYXRpb24gd2UgYXJlIGxpbmtlZCBhZ2FpbnN0LiAqLworX19hdHRyaWJ1dGVf Xygod2VhaykpIHZvaWQgYXBwX3NodXRkb3duKHVuc2lnbmVkIHJlYXNvbikKK3sKKyAgICBwcmlu dGsoIlNodXRkb3duIHJlcXVlc3RlZDogJWRcbiIsIHJlYXNvbik7CisgICAgaWYgKHJlYXNvbiA9 PSBTSFVURE9XTl9zdXNwZW5kKSB7CisgICAgICAgIGtlcm5lbF9zdXNwZW5kKCk7CisgICAgfSBl bHNlIHsKKyAgICAgICAgc3RydWN0IHNjaGVkX3NodXRkb3duIHNjaGVkX3NodXRkb3duID0geyAu cmVhc29uID0gcmVhc29uIH07CisgICAgICAgIEhZUEVSVklTT1Jfc2NoZWRfb3AoU0NIRURPUF9z aHV0ZG93biwgJnNjaGVkX3NodXRkb3duKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHNodXRk b3duX3RocmVhZCh2b2lkICpwKQoreworICAgIGNoYXIgKnNodXRkb3duLCAqZXJyOworICAgIHVu c2lnbmVkIGludCBzaHV0ZG93bl9yZWFzb247CisKKyAgICB4ZW5idXNfd2F0Y2hfcGF0aF90b2tl bihYQlRfTklMLCBwYXRoLCB0b2tlbiwgJmV2ZW50cyk7CisKKyAgICBmb3IgKCA7OyApIHsKKyAg ICAgICAgeGVuYnVzX3dhaXRfZm9yX3dhdGNoKCZldmVudHMpOworICAgICAgICBpZiAoKGVyciA9 IHhlbmJ1c19yZWFkKFhCVF9OSUwsIHBhdGgsICZzaHV0ZG93bikpKSB7CisgICAgICAgICAgICBm cmVlKGVycik7CisgICAgICAgICAgICBkb19leGl0KCk7CisgICAgICAgIH0KKworICAgICAgICBp ZiAoZW5kX3NodXRkb3duX3RocmVhZCkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGlm ICghc3RyY21wKHNodXRkb3duLCAiIikpIHsKKyAgICAgICAgICAgIC8qIEF2b2lkIHNwdXJpb3Vz IGV2ZW50IG9uIHhlbmJ1cyAqLworICAgICAgICAgICAgLyogRklYTUU6IGludmVzdGlnYXRlIHRo ZSByZWFzb24gb2YgdGhlIHNwdXJpb3VzIGV2ZW50ICovCisgICAgICAgICAgICBmcmVlKHNodXRk b3duKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAo c2h1dGRvd24sICJwb3dlcm9mZiIpKSB7CisgICAgICAgICAgICBzaHV0ZG93bl9yZWFzb24gPSBT SFVURE9XTl9wb3dlcm9mZjsKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKHNodXRkb3duLCAi cmVib290IikpIHsKKyAgICAgICAgICAgIHNodXRkb3duX3JlYXNvbiA9IFNIVVRET1dOX3JlYm9v dDsKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKHNodXRkb3duLCAic3VzcGVuZCIpKSB7Cisg ICAgICAgICAgICBzaHV0ZG93bl9yZWFzb24gPSBTSFVURE9XTl9zdXNwZW5kOworICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgc2h1dGRvd25fcmVhc29uID0gU0hVVERPV05fY3Jhc2g7Cisg ICAgICAgIH0KKyAgICAgICAgZnJlZShzaHV0ZG93bik7CisKKyAgICAgICAgLyogQWNrbm93bGVk Z2Ugc2h1dGRvd24gcmVxdWVzdCAqLworICAgICAgICBpZiAoKGVyciA9IHhlbmJ1c193cml0ZShY QlRfTklMLCBwYXRoLCAiIikpKSB7CisgICAgICAgICAgICBmcmVlKGVycik7CisgICAgICAgICAg ICBkb19leGl0KCk7CisgICAgICAgIH0KKworICAgICAgICBhcHBfc2h1dGRvd24oc2h1dGRvd25f cmVhc29uKTsKKyAgICB9Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQgZmluaV9zaHV0ZG93bih2 b2lkKQoreworICAgIGNoYXIgKmVycjsKKworICAgIGVuZF9zaHV0ZG93bl90aHJlYWQgPSAxOwor ICAgIHhlbmJ1c19yZWxlYXNlX3dhaXRfZm9yX3dhdGNoKCZldmVudHMpOworICAgIGVyciA9IHhl bmJ1c191bndhdGNoX3BhdGhfdG9rZW4oWEJUX05JTCwgcGF0aCwgdG9rZW4pOworICAgIGlmIChl cnIpIHsKKyAgICAgICAgZnJlZShlcnIpOworICAgICAgICBkb19leGl0KCk7CisgICAgfQorfQor Cit2b2lkIGluaXRfc2h1dGRvd24oc3RhcnRfaW5mb190ICpzaSkKK3sKKyAgICBzdGFydF9pbmZv X3B0ciA9IHNpOworCisgICAgZW5kX3NodXRkb3duX3RocmVhZCA9IDA7CisgICAgY3JlYXRlX3Ro cmVhZCgic2h1dGRvd24iLCBzaHV0ZG93bl90aHJlYWQsIE5VTEwpOworfQorCit2b2lkIGtlcm5l bF9zaHV0ZG93bihpbnQgcmVhc29uKQoreworICAgIGNoYXIqIHJlYXNvbl9zdHIgPSBOVUxMOwor CisgICAgc3dpdGNoKHJlYXNvbikgeworICAgICAgICBjYXNlIFNIVVRET1dOX3Bvd2Vyb2ZmOgor ICAgICAgICAgICAgcmVhc29uX3N0ciA9ICJwb3dlcm9mZiI7CisgICAgICAgICAgICBicmVhazsK KyAgICAgICAgY2FzZSBTSFVURE9XTl9yZWJvb3Q6CisgICAgICAgICAgICByZWFzb25fc3RyID0g InJlYm9vdCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTSFVURE9XTl9jcmFz aDoKKyAgICAgICAgICAgIHJlYXNvbl9zdHIgPSAiY3Jhc2giOworICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBkb19leGl0KCk7CisgICAgICAgICAgICBi cmVhazsKKyAgICB9CisKKyAgICBwcmludGsoIk1pbmlPUyB3aWxsIHNodXRkb3duIChyZWFzb24g PSAlcykgLi4uXG4iLCByZWFzb25fc3RyKTsKKworICAgIGZpbmlfc2h1dGRvd24oKTsKKworICAg IHN0b3Bfa2VybmVsKCk7CisKKyAgICBmb3IgKCA7OyApIHsKKyAgICAgICAgc3RydWN0IHNjaGVk X3NodXRkb3duIHNjaGVkX3NodXRkb3duID0geyAucmVhc29uID0gcmVhc29uIH07CisgICAgICAg IEhZUEVSVklTT1Jfc2NoZWRfb3AoU0NIRURPUF9zaHV0ZG93biwgJnNjaGVkX3NodXRkb3duKTsK KyAgICB9Cit9CisKK3ZvaWQga2VybmVsX3N1c3BlbmQodm9pZCkKK3sKKyAgICBpbnQgcmM7CisK KyAgICBwcmludGsoIk1pbmlPUyB3aWxsIHN1c3BlbmQgLi4uXG4iKTsKKworICAgIHByZV9zdXNw ZW5kKCk7CisgICAgYXJjaF9wcmVfc3VzcGVuZCgpOworCisgICAgLyoKKyAgICAgKiBUaGlzIGh5 cGVyY2FsbCByZXR1cm5zIDEgaWYgdGhlIHN1c3BlbmQKKyAgICAgKiB3YXMgY2FuY2VsbGVkIGFu ZCAwIGlmIHJlc3VtaW5nIGluIGEgbmV3IGRvbWFpbgorICAgICAqLworICAgIHJjID0gSFlQRVJW SVNPUl9zdXNwZW5kKHZpcnRfdG9fbWZuKHN0YXJ0X2luZm9fcHRyKSk7CisKKyAgICBhcmNoX3Bv c3Rfc3VzcGVuZChyYyk7CisgICAgcG9zdF9zdXNwZW5kKHJjKTsKKworICAgIGlmIChyYykgewor ICAgICAgICBwcmludGsoIk1pbmlPUyBzdXNwZW5kIGNhbmNlbGVkISIpOworICAgIH0gZWxzZSB7 CisgICAgICAgIHByaW50aygiTWluaU9TIHJlc3VtZWQgZnJvbSBzdXNwZW5kIVxuIik7CisgICAg fQorfQotLSAKMi4zLjIgKEFwcGxlIEdpdC01NSkKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v bGlzdGluZm8veGVuLWRldmVs