From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric DeVolder Subject: [PATCH v2] kexec: implement STATUS hypercall to check if image is loaded Date: Thu, 12 Jan 2017 13:59:12 -0800 Message-ID: <20170112215912.7351-1-eric.devolder@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org, ian.jackson@eu.citrix.com, wei.liu2@citrix.com Cc: elena.ufimtseva@oracle.com, daniel.kiper@oracle.com List-Id: xen-devel@lists.xenproject.org VGhlIHRvb2xzIHRoYXQgdXNlIGtleGVjIGFyZSBhc3luY2hyb25vdXMgaW4gbmF0dXJlIGFuZCBk byBub3Qga2VlcApzdGF0ZSBjaGFuZ2VzLiBBcyBzdWNoIHByb3ZpZGUgYW4gaHlwZXJjYWxsIHRv IGZpbmQgb3V0IHdoZXRoZXIgYW4KaW1hZ2UgaGFzIGJlZW4gbG9hZGVkIGZvciBlaXRoZXIgdHlw ZS4KCk5vdGU6IE5vIG5lZWQgdG8gbW9kaWZ5IFhTTSBhcyBpdCBoYXMgb25lIHNpemUgZml0cyBh bGwgY2hlY2sgYW5kCmRvZXMgbm90IGNoZWNrIGZvciBzdWJjb21tYW5kcy4KCk5vdGU6IE5vIG5l ZWQgdG8gY2hlY2sgS0VYRUNfRkxBR19JTl9QUk9HUkVTUyAoYW5kIGVycm9yIG91dCBvZgprZXhl Y19zdGF0dXMoKSkgYXMgdGhpcyBmbGFnIGlzIHNldCBvbmx5IG9uY2UgYnkgdGhlIGZpcnN0L29u bHkKY3B1IG9uIHRoZSBjcmFzaCBwYXRoLgoKTm90ZTogVGhlIF9fWEVOX0xBVEVTVF9JTlRFUkZB Q0VfVkVSU0lPTl9fIGhhcyBiZWVuIGJ1bXBlZCB0bwoweDAwMDQwOTAwIGR1ZSB0byB0aGUgaW50 cm9kdWN0aW9uIG9mIGEgbmV3IGh5cGVydmlzb3IgY2FsbC4KCk5vdGU6IFRoaXMgaXMganVzdCB0 aGUgWGVuIHNpZGUgb2YgdGhlIGh5cGVyY2FsbCwga2V4ZWMtdG9vbHMgcGF0Y2gKdG8gY29tZSBz ZXBhcmF0ZWx5LgoKU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQu d2lsa0BvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBFcmljIERlVm9sZGVyIDxlcmljLmRldm9s ZGVyQG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwgS2lwZXIgPGRhbmllbC5raXBlckBv cmFjbGUuY29tPgotLS0KQ0M6IEVsZW5hIFVmaW10c2V2YSA8ZWxlbmEudWZpbXRzZXZhQG9yYWNs ZS5jb20+CkNDOiBEYW5pZWwgS2lwZXIgPGRhbmllbC5raXBlckBvcmFjbGUuY29tPgoKdjA6IElu dGVybmFsIHZlcnNpb24uCnYxOiBEcm9wcGVkIFJldmlld2VkLWJ5LCBwb3N0aW5nIG9uIHhlbi1k ZXZlbC4KdjI6IEluY29ycG9yYXRlZCB4ZW4tZGV2ZWwgZmVlZGJhY2sKLS0tCiB0b29scy9saWJ4 Yy9pbmNsdWRlL3hlbmN0cmwuaCAgIHwgMTAgKysrKysrKysrKwogdG9vbHMvbGlieGMveGNfa2V4 ZWMuYyAgICAgICAgICB8IDI0ICsrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2NvbW1vbi9r ZXhlYy5jICAgICAgICAgICAgICB8IDE5ICsrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRl L3B1YmxpYy9rZXhlYy5oICAgICAgfCAxMyArKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJs aWMveGVuLWNvbXBhdC5oIHwgIDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3Ry bC5oIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKaW5kZXggNGFiMGY1NzExNy4uNjNj NjE2ZmY2YSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKKysrIGIv dG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKQEAgLTI1NzQsNiArMjU3NCwxNiBAQCBpbnQg eGNfa2V4ZWNfbG9hZCh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDhfdCB0eXBlLCB1aW50MTZfdCBh cmNoLAogICovCiBpbnQgeGNfa2V4ZWNfdW5sb2FkKHhjX2ludGVyZmFjZSAqeGNoLCBpbnQgdHlw ZSk7CiAKKy8qCisgKiBGaW5kIG91dCB3aGV0aGVyIHRoZSBpbWFnZSBoYXMgYmVlbiBzdWNjZXNm dWxseSBsb2FkZWQuCisgKgorICogVGhlIHR5cGUgY2FuIGJlIGVpdGhlciBLRVhFQ19UWVBFX0RF RkFVTFQgb3IgS0VYRUNfVFlQRV9DUkFTSC4KKyAqIElmIHplcm8gaXMgcmV0dXJuZWQsIHRoYXQg bWVhbnMgbm8gaW1hZ2UgaXMgbG9hZGVkIGZvciB0aGUgdHlwZS4KKyAqIElmIG9uZSBpcyByZXR1 cm5lZCwgdGhhdCBtZWFucyBhbiBpbWFnZSBpcyBsb2FkZWQgZm9yIHRoZSB0eXBlLgorICogT3Ro ZXJ3aXNlLCBuZWdhdGl2ZSByZXR1cm4gdmFsdWUgaW5kaWNhdGVzIGVycm9yLgorICovCitpbnQg eGNfa2V4ZWNfc3RhdHVzKHhjX2ludGVyZmFjZSAqeGNoLCBpbnQgdHlwZSk7CisKIHR5cGVkZWYg eGVucGZfcmVzb3VyY2VfZW50cnlfdCB4Y19yZXNvdXJjZV9lbnRyeV90OwogCiAvKgpkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGMveGNfa2V4ZWMuYyBiL3Rvb2xzL2xpYnhjL3hjX2tleGVjLmMKaW5k ZXggOTg5ZTIyNTE5Mi4uYTBhOWZkMzg0MSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfa2V4 ZWMuYworKysgYi90b29scy9saWJ4Yy94Y19rZXhlYy5jCkBAIC0xMjYsMyArMTI2LDI3IEBAIG91 dDoKIAogICAgIHJldHVybiByZXQ7CiB9CisKK2ludCB4Y19rZXhlY19zdGF0dXMoeGNfaW50ZXJm YWNlICp4Y2gsIGludCB0eXBlKQoreworICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JVRkZFUih4ZW5f a2V4ZWNfc3RhdHVzX3QsIHN0YXR1cyk7CisgICAgaW50IHJldCA9IC0xOworCisgICAgc3RhdHVz ID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIHN0YXR1cywgc2l6ZW9mKCpzdGF0dXMp KTsKKyAgICBpZiAoIHN0YXR1cyA9PSBOVUxMICkKKyAgICB7CisgICAgICAgIFBFUlJPUigiQ291 bGQgbm90IGFsbG9jIGJ1ZmZlciBmb3Iga2V4ZWMgc3RhdHVzIGh5cGVyY2FsbCIpOworICAgICAg ICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBzdGF0dXMtPnR5cGUgPSB0eXBlOworCisgICAgcmV0 ID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2tleGVjX29wLAorICAgICAgICAg ICAgICAgICAgIEtFWEVDX0NNRF9rZXhlY19zdGF0dXMsCisgICAgICAgICAgICAgICAgICAgSFlQ RVJDQUxMX0JVRkZFUl9BU19BUkcoc3RhdHVzKSk7CisKK291dDoKKyAgICB4Y19oeXBlcmNhbGxf YnVmZmVyX2ZyZWUoeGNoLCBzdGF0dXMpOworCisgICAgcmV0dXJuIHJldDsKK30KZGlmZiAtLWdp dCBhL3hlbi9jb21tb24va2V4ZWMuYyBiL3hlbi9jb21tb24va2V4ZWMuYwppbmRleCBjODNkNDhm Yzc5Li5hYTgwOGNiMmYyIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2tleGVjLmMKKysrIGIveGVu L2NvbW1vbi9rZXhlYy5jCkBAIC0xMTY5LDYgKzExNjksMjIgQEAgc3RhdGljIGludCBrZXhlY191 bmxvYWQoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSB1YXJnKQogICAgIHJldHVybiBrZXhl Y19kb191bmxvYWQoJnVubG9hZCk7CiB9CiAKK3N0YXRpYyBpbnQga2V4ZWNfc3RhdHVzKFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgdWFyZykKK3sKKyAgICB4ZW5fa2V4ZWNfc3RhdHVzX3Qg c3RhdHVzOworICAgIGludCBiYXNlLCBiaXQ7CisKKyAgICBpZiAoIHVubGlrZWx5KGNvcHlfZnJv bV9ndWVzdCgmc3RhdHVzLCB1YXJnLCAxKSkgKQorICAgICAgICByZXR1cm4gLUVGQVVMVDsKKwor ICAgIC8qIE5vIG5lZWQgdG8gY2hlY2sgS0VYRUNfRkxBR19JTl9QUk9HUkVTUy4gKi8KKworICAg IGlmICgga2V4ZWNfbG9hZF9nZXRfYml0cyhzdGF0dXMudHlwZSwgJmJhc2UsICZiaXQpICkKKyAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICByZXR1cm4gdGVzdF9iaXQoYml0LCAma2V4ZWNf ZmxhZ3MpOworfQorCiBzdGF0aWMgaW50IGRvX2tleGVjX29wX2ludGVybmFsKHVuc2lnbmVkIGxv bmcgb3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0odm9pZCkgdWFyZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbF90 IGNvbXBhdCkKQEAgLTEyMDgsNiArMTIyNCw5IEBAIHN0YXRpYyBpbnQgZG9fa2V4ZWNfb3BfaW50 ZXJuYWwodW5zaWduZWQgbG9uZyBvcCwKICAgICBjYXNlIEtFWEVDX0NNRF9rZXhlY191bmxvYWQ6 CiAgICAgICAgIHJldCA9IGtleGVjX3VubG9hZCh1YXJnKTsKICAgICAgICAgYnJlYWs7CisgICAg Y2FzZSBLRVhFQ19DTURfa2V4ZWNfc3RhdHVzOgorICAgICAgICByZXQgPSBrZXhlY19zdGF0dXMo dWFyZyk7CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIHJldHVybiByZXQ7CmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMva2V4ZWMuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9rZXhl Yy5oCmluZGV4IGE2YTBhODhmNGYuLmMyMDBlOGNlZWUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L3B1YmxpYy9rZXhlYy5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9rZXhlYy5oCkBAIC0yMjcs NiArMjI3LDE5IEBAIHR5cGVkZWYgc3RydWN0IHhlbl9rZXhlY191bmxvYWQgewogfSB4ZW5fa2V4 ZWNfdW5sb2FkX3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fa2V4ZWNfdW5sb2FkX3Qp OwogCisvKgorICogRmlndXJlIG91dCB3aGV0aGVyIHdlIGhhdmUgYW4gaW1hZ2UgbG9hZGVkLiBB IHJldHVybiB2YWx1ZSBvZgorICogemVybyBpbmRpY2F0ZXMgbm8gaW1hZ2UgbG9hZGVkLiBBIHJl dHVybiB2YWx1ZSBvZiBvbmUKKyAqIGluZGljYXRlcyBhbiBpbWFnZSBpcyBsb2FkZWQuIEEgbmVn YXRpdmUgcmV0dXJuIHZhbHVlCisgKiBpbmRpY2F0ZXMgYW4gZXJyb3IuCisgKgorICogVHlwZSBt dXN0IGJlIG9uZSBvZiBLRVhFQ19UWVBFX0RFRkFVTFQgb3IgS0VYRUNfVFlQRV9DUkFTSC4KKyAq LworI2RlZmluZSBLRVhFQ19DTURfa2V4ZWNfc3RhdHVzIDYKK3R5cGVkZWYgc3RydWN0IHhlbl9r ZXhlY19zdGF0dXMgeworICAgIHVpbnQ4X3QgdHlwZTsKK30geGVuX2tleGVjX3N0YXR1c190Owor REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2tleGVjX3N0YXR1c190KTsKICNlbHNlIC8qIF9f WEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwNDAwICovCiAKICNkZWZpbmUgS0VYRUNf Q01EX2tleGVjX2xvYWQgS0VYRUNfQ01EX2tleGVjX2xvYWRfdjEKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3B1YmxpYy94ZW4tY29tcGF0LmggYi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLWNvbXBh dC5oCmluZGV4IGRkOGE1YzBkMGUuLmI2NzM2NTM0MGIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L3B1YmxpYy94ZW4tY29tcGF0LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3hlbi1jb21wYXQu aApAQCAtMjcsNyArMjcsNyBAQAogI2lmbmRlZiBfX1hFTl9QVUJMSUNfWEVOX0NPTVBBVF9IX18K ICNkZWZpbmUgX19YRU5fUFVCTElDX1hFTl9DT01QQVRfSF9fCiAKLSNkZWZpbmUgX19YRU5fTEFU RVNUX0lOVEVSRkFDRV9WRVJTSU9OX18gMHgwMDA0MDgwMAorI2RlZmluZSBfX1hFTl9MQVRFU1Rf SU5URVJGQUNFX1ZFUlNJT05fXyAweDAwMDQwOTAwCiAKICNpZiBkZWZpbmVkKF9fWEVOX18pIHx8 IGRlZmluZWQoX19YRU5fVE9PTFNfXykKIC8qIFhlbiBpcyBidWlsdCB3aXRoIG1hdGNoaW5nIGhl YWRlcnMgYW5kIGltcGxlbWVudHMgdGhlIGxhdGVzdCBpbnRlcmZhY2UuICovCi0tIAoyLjExLjAK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK