From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anchal Agarwal Subject: [RFC PATCH 03/12] xenbus: add freeze/thaw/restore callbacks support Date: Tue, 12 Jun 2018 20:56:10 +0000 Message-ID: <20180612205619.28156-4-anchalag@amazon.com> References: <20180612205619.28156-1-anchalag@amazon.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: jgross@suse.com, len.brown@intel.com, eduval@amazon.com, vallish@amazon.com, netdev@vger.kernel.org, fllinden@amazon.com, kamatam@amazon.com, rjw@rjwysocki.net, linux-kernel@vger.kernel.org, anchalag@amazon.com, cyberax@amazon.com, pavel@ucw.cz, linux-pm@vger.kernel.org, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com, guruanb@amazon.com, roger.pau@citrix.com To: , , , Return-path: In-Reply-To: <20180612205619.28156-1-anchalag@amazon.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" List-Id: netdev.vger.kernel.org RnJvbTogTXVuZWhpc2EgS2FtYXRhIDxrYW1hdGFtQGFtYXpvbi5jb20+CgpTaW5jZSBjb21taXQg YjNlOTZjMGM3NTYyICgieGVuOiB1c2UgZnJlZXplL3Jlc3RvcmUvdGhhdyBQTSBldmVudHMgZm9y CnN1c3BlbmQvcmVzdW1lL2Noa3B0IiksIHhlbmJ1cyB1c2VzIFBNU0dfRlJFRVpFLCBQTVNHX1RI QVcgYW5kClBNU0dfUkVTVE9SRSBldmVudHMgZm9yIFhlbiBzdXNwZW5kLiBIb3dldmVyLCB0aGV5 J3JlIGFjdHVhbGx5IGFzc2lnbmVkCnRvIHhlbmJ1c19kZXZfc3VzcGVuZCgpLCB4ZW5idXNfZGV2 X2NhbmNlbCgpIGFuZCB4ZW5idXNfZGV2X3Jlc3VtZSgpCnJlc3BlY3RpdmVseSwgYW5kIG9ubHkg c3VzcGVuZCBhbmQgcmVzdW1lIGNhbGxiYWNrcyBhcmUgc3VwcG9ydGVkIGF0CmRyaXZlciBsZXZl bC4gVG8gc3VwcG9ydCBQTSBzdXNwZW5kIGFuZCBQTSBoaWJlcm5hdGlvbiwgbW9kaWZ5IHRoZSBi dXMKbGV2ZWwgUE0gY2FsbGJhY2tzIHRvIGludm9rZSBub3Qgb25seSBkZXZpY2UgZHJpdmVyJ3Mg c3VzcGVuZC9yZXN1bWUgYnV0CmFsc28gZnJlZXplL3RoYXcvcmVzdG9yZS4KCk5vdGUgdGhhdCB3 ZSdsbCB1c2UgZnJlZXplL3Jlc3RvcmUgY2FsbGJhY2tzIGV2ZW4gZm9yIFBNIHN1c3BlbmQgd2hl cmVhcwpzdXNwZW5kL3Jlc3VtZSBjYWxsYmFja3MgYXJlIG5vcm1hbGx5IHVzZWQgaW4gdGhlIGNh c2UsIGJlY2F1c2FlIHRoZQpleGlzdGluZyB4ZW5idXMgZGV2aWNlIGRyaXZlcnMgYWxyZWFkeSBo YXZlIHN1c3BlbmQvcmVzdW1lIGNhbGxiYWNrcwpzcGVjaWZpY2FsbHkgZGVzaWduZWQgZm9yIFhl biBzdXNwZW5kLiBTbyB3ZSBjYW4gYWxsb3cgdGhlIGRldmljZQpkcml2ZXJzIHRvIGtlZXAgdGhl IGV4aXN0aW5nIGNhbGxiYWNrcyB3aWh0b3V0IG1vZGlmaWNhdGlvbi4KClNpZ25lZC1vZmYtYnk6 IE11bmVoaXNhIEthbWF0YSA8a2FtYXRhbUBhbWF6b24uY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmNo YWwgQWdhcndhbCA8YW5jaGFsYWdAYW1hem9uLmNvbT4KUmV2aWV3ZWQtYnk6IE11bmVoaXNhIEth bWF0YSA8a2FtYXRhbUBhbWF6b24uY29tPgpSZXZpZXdlZC1ieTogRWR1YXJkbyBWYWxlbnRpbiA8 ZWR1dmFsQGFtYXpvbi5jb20+Ci0tLQogZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19wcm9iZS5j IHwgMTAyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiBpbmNsdWRlL3hl bi94ZW5idXMuaCAgICAgICAgICAgICAgfCAgIDMgKysKIDIgZmlsZXMgY2hhbmdlZCwgODkgaW5z ZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4veGVu YnVzL3hlbmJ1c19wcm9iZS5jIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19wcm9iZS5jCmlu ZGV4IGVjOWViNGYuLjk1YjBhNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5i dXNfcHJvYmUuYworKysgYi9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3Byb2JlLmMKQEAgLTQ5 LDYgKzQ5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIu aD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+ CiAKICNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CkBAIC01 ODgsMjYgKzU4OSw0NyBAQCBpbnQgeGVuYnVzX2Rldl9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRl dikKIAlzdHJ1Y3QgeGVuYnVzX2RyaXZlciAqZHJ2OwogCXN0cnVjdCB4ZW5idXNfZGV2aWNlICp4 ZGV2CiAJCT0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IHhlbmJ1c19kZXZpY2UsIGRldik7CisJ aW50ICgqY2IpKHN0cnVjdCB4ZW5idXNfZGV2aWNlICopID0gTlVMTDsKKwlib29sIHhlbl9zdXNw ZW5kID0geGVuX3N1c3BlbmRfbW9kZV9pc194ZW5fc3VzcGVuZCgpOwogCiAJRFBSSU5USygiJXMi LCB4ZGV2LT5ub2RlbmFtZSk7CiAKIAlpZiAoZGV2LT5kcml2ZXIgPT0gTlVMTCkKIAkJcmV0dXJu IDA7CiAJZHJ2ID0gdG9feGVuYnVzX2RyaXZlcihkZXYtPmRyaXZlcik7Ci0JaWYgKGRydi0+c3Vz cGVuZCkKLQkJZXJyID0gZHJ2LT5zdXNwZW5kKHhkZXYpOwotCWlmIChlcnIpCi0JCXByX3dhcm4o InN1c3BlbmQgJXMgZmFpbGVkOiAlaVxuIiwgZGV2X25hbWUoZGV2KSwgZXJyKTsKKworCWlmICh4 ZW5fc3VzcGVuZCkKKwkJY2IgPSBkcnYtPnN1c3BlbmQ7CisJZWxzZQorCQljYiA9IGRydi0+ZnJl ZXplOworCisJaWYgKGNiKQorCQllcnIgPSBjYih4ZGV2KTsKKworCWlmIChlcnIpIHsKKwkJcHJf d2FybigiJXMgJXMgZmFpbGVkOiAlaVxuIiwgeGVuX3N1c3BlbmQgPworCQkJInN1c3BlbmQiIDog ImZyZWV6ZSIsIGRldl9uYW1lKGRldiksIGVycik7CisJCXJldHVybiBlcnI7CisJfQorCisJaWYg KCF4ZW5fc3VzcGVuZCkgeworCQkvKiBGb3JnZXQgb3RoZXJlbmQgc2luY2UgdGhpcyBjYW4gYmVj b21lIHN0YWxlIGFmdGVyIHJlc3RvcmUgKi8KKwkJZnJlZV9vdGhlcmVuZF93YXRjaCh4ZGV2KTsK KwkJZnJlZV9vdGhlcmVuZF9kZXRhaWxzKHhkZXYpOworCX0KKwogCXJldHVybiAwOwogfQogRVhQ T1JUX1NZTUJPTF9HUEwoeGVuYnVzX2Rldl9zdXNwZW5kKTsKIAogaW50IHhlbmJ1c19kZXZfcmVz dW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlpbnQgZXJyOworCWludCBlcnIgPSAwOwogCXN0 cnVjdCB4ZW5idXNfZHJpdmVyICpkcnY7CiAJc3RydWN0IHhlbmJ1c19kZXZpY2UgKnhkZXYKIAkJ PSBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgeGVuYnVzX2RldmljZSwgZGV2KTsKKwlpbnQgKCpj Yikoc3RydWN0IHhlbmJ1c19kZXZpY2UgKikgPSBOVUxMOworCWJvb2wgeGVuX3N1c3BlbmQgPSB4 ZW5fc3VzcGVuZF9tb2RlX2lzX3hlbl9zdXNwZW5kKCk7CiAKIAlEUFJJTlRLKCIlcyIsIHhkZXYt Pm5vZGVuYW1lKTsKIApAQCAtNjE2LDI0ICs2MzgsMzQgQEAgaW50IHhlbmJ1c19kZXZfcmVzdW1l KHN0cnVjdCBkZXZpY2UgKmRldikKIAlkcnYgPSB0b194ZW5idXNfZHJpdmVyKGRldi0+ZHJpdmVy KTsKIAllcnIgPSB0YWxrX3RvX290aGVyZW5kKHhkZXYpOwogCWlmIChlcnIpIHsKLQkJcHJfd2Fy bigicmVzdW1lICh0YWxrX3RvX290aGVyZW5kKSAlcyBmYWlsZWQ6ICVpXG4iLAorCQlwcl93YXJu KCIlcyAodGFsa190b19vdGhlcmVuZCkgJXMgZmFpbGVkOiAlaVxuIiwKKwkJCXhlbl9zdXNwZW5k ID8gInJlc3VtZSIgOiAicmVzdG9yZSIsCiAJCQlkZXZfbmFtZShkZXYpLCBlcnIpOwogCQlyZXR1 cm4gZXJyOwogCX0KIAotCXhkZXYtPnN0YXRlID0gWGVuYnVzU3RhdGVJbml0aWFsaXNpbmc7CisJ aWYgKHhlbl9zdXNwZW5kKQorCQl4ZGV2LT5zdGF0ZSA9IFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5n OwogCi0JaWYgKGRydi0+cmVzdW1lKSB7Ci0JCWVyciA9IGRydi0+cmVzdW1lKHhkZXYpOwotCQlp ZiAoZXJyKSB7Ci0JCQlwcl93YXJuKCJyZXN1bWUgJXMgZmFpbGVkOiAlaVxuIiwgZGV2X25hbWUo ZGV2KSwgZXJyKTsKLQkJCXJldHVybiBlcnI7Ci0JCX0KKwlpZiAoeGVuX3N1c3BlbmQpCisJCWNi ID0gZHJ2LT5yZXN1bWU7CisJZWxzZQorCQljYiA9IGRydi0+cmVzdG9yZTsKKworCWlmIChjYikK KwkJZXJyID0gY2IoeGRldik7CisKKwlpZiAoZXJyKSB7CisJCXByX3dhcm4oIiVzICVzIGZhaWxl ZDogJWlcbiIsCisJCQl4ZW5fc3VzcGVuZCA/ICJyZXN1bWUiIDogInJlc3RvcmUiLAorCQkJZGV2 X25hbWUoZGV2KSwgZXJyKTsKKwkJcmV0dXJuIGVycjsKIAl9CiAKIAllcnIgPSB3YXRjaF9vdGhl cmVuZCh4ZGV2KTsKIAlpZiAoZXJyKSB7Ci0JCXByX3dhcm4oInJlc3VtZSAod2F0Y2hfb3RoZXJl bmQpICVzIGZhaWxlZDogJWQuXG4iLAorCQlwcl93YXJuKCIlcyAod2F0Y2hfb3RoZXJlbmQpICVz IGZhaWxlZDogJWQuXG4iLAorCQkJeGVuX3N1c3BlbmQgPyAicmVzdW1lIiA6ICJyZXN0b3JlIiwK IAkJCWRldl9uYW1lKGRldiksIGVycik7CiAJCXJldHVybiBlcnI7CiAJfQpAQCAtNjQ0LDggKzY3 Niw0NiBAQCBFWFBPUlRfU1lNQk9MX0dQTCh4ZW5idXNfZGV2X3Jlc3VtZSk7CiAKIGludCB4ZW5i dXNfZGV2X2NhbmNlbChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0JLyogRG8gbm90aGluZyAqLwot CURQUklOVEsoImNhbmNlbCIpOworCWludCBlcnIgPSAwOworCXN0cnVjdCB4ZW5idXNfZHJpdmVy ICpkcnY7CisJc3RydWN0IHhlbmJ1c19kZXZpY2UgKnhkZXYKKwkJPSBjb250YWluZXJfb2YoZGV2 LCBzdHJ1Y3QgeGVuYnVzX2RldmljZSwgZGV2KTsKKwlib29sIHhlbl9zdXNwZW5kID0geGVuX3N1 c3BlbmRfbW9kZV9pc194ZW5fc3VzcGVuZCgpOworCisJaWYgKHhlbl9zdXNwZW5kKSB7CisJCS8q IERvIG5vdGhpbmcgKi8KKwkJRFBSSU5USygiY2FuY2VsIik7CisJCXJldHVybiAwOworCX0KKwor CURQUklOVEsoIiVzIiwgeGRldi0+bm9kZW5hbWUpOworCisJaWYgKGRldi0+ZHJpdmVyID09IE5V TEwpCisJCXJldHVybiAwOworCWRydiA9IHRvX3hlbmJ1c19kcml2ZXIoZGV2LT5kcml2ZXIpOwor CisJZXJyID0gdGFsa190b19vdGhlcmVuZCh4ZGV2KTsKKwlpZiAoZXJyKSB7CisJCXByX3dhcm4o InRoYXcgKHRhbGtfdG9fb3RoZXJlbmQpICVzIGZhaWxlZDogJWQuXG4iLAorCQkJZGV2X25hbWUo ZGV2KSwgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAoZHJ2LT50aGF3KSB7CisJCWVy ciA9IGRydi0+dGhhdyh4ZGV2KTsKKwkJaWYgKGVycikgeworCQkJcHJfd2FybigidGhhdyAlcyBm YWlsZWQ6ICVpXG4iLCBkZXZfbmFtZShkZXYpLCBlcnIpOworCQkJcmV0dXJuIGVycjsKKwkJfQor CX0KKworCWVyciA9IHdhdGNoX290aGVyZW5kKHhkZXYpOworCWlmIChlcnIpIHsKKwkJcHJfd2Fy bigidGhhdyAod2F0Y2hfb3RoZXJlbmQpICVzIGZhaWxlZDogJWQuXG4iLAorCQkJZGV2X25hbWUo ZGV2KSwgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9T WU1CT0xfR1BMKHhlbmJ1c19kZXZfY2FuY2VsKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hl bmJ1cy5oIGIvaW5jbHVkZS94ZW4veGVuYnVzLmgKaW5kZXggODY5YzgxNi4uMjAyNjFkNSAxMDA2 NDQKLS0tIGEvaW5jbHVkZS94ZW4veGVuYnVzLmgKKysrIGIvaW5jbHVkZS94ZW4veGVuYnVzLmgK QEAgLTEwMCw2ICsxMDAsOSBAQCBzdHJ1Y3QgeGVuYnVzX2RyaXZlciB7CiAJaW50ICgqcmVtb3Zl KShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2KTsKIAlpbnQgKCpzdXNwZW5kKShzdHJ1Y3QgeGVu YnVzX2RldmljZSAqZGV2KTsKIAlpbnQgKCpyZXN1bWUpKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpk ZXYpOworCWludCAoKmZyZWV6ZSkoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldik7CisJaW50ICgq dGhhdykoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldik7CisJaW50ICgqcmVzdG9yZSkoc3RydWN0 IHhlbmJ1c19kZXZpY2UgKmRldik7CiAJaW50ICgqdWV2ZW50KShzdHJ1Y3QgeGVuYnVzX2Rldmlj ZSAqLCBzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICopOwogCXN0cnVjdCBkZXZpY2VfZHJpdmVyIGRy aXZlcjsKIAlpbnQgKCpyZWFkX290aGVyZW5kX2RldGFpbHMpKHN0cnVjdCB4ZW5idXNfZGV2aWNl ICpkZXYpOwotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9q ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVu LWRldmVs