From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v4 1/9] livepatch: Clear .bss when payload is reverted Date: Tue, 23 Aug 2016 22:22:04 -0400 Message-ID: <1472005332-32207-2-git-send-email-konrad.wilk@oracle.com> References: <1472005332-32207-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bcNq2-0002zf-KP for xen-devel@lists.xenproject.org; Wed, 24 Aug 2016 02:22:46 +0000 In-Reply-To: <1472005332-32207-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, konrad@kernel.org, ross.lagerwall@citrix.com Cc: Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org U28gdGhhdCB3aGVuIHdlIGFwcGx5IHRoZSBwYXRjaCBhZ2FpbiB0aGUgLmJzcyBpcyBjbGVhcmVk LgpPdGhlcndpc2Ugd2UgbWF5IGZpbmQgc29tZSB2YXJpYWJsZXMgY29udGFpbmluZyBvbGQgdmFs dWVzLgoKVGhlIHBheWxvYWRzIG1heSBjb250YWluIHZhcmlvdXMgLmJzcyAtIGVzcGVjaWFsbHkg aWYgLWZkYXRhLXNlY3Rpb25zCmlzIHVzZWQgd2hpY2ggY2FuIGNyZWF0ZSAuYnNzLjxuYW1lPiBz ZWN0aW9ucy4KClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndp bGtAb3JhY2xlLmNvbT4KCi0tLQpDYzogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNp dHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Cgp2MzogSW5pdGlh bCBzdWJtaXNzaW9uCnY0OiBzL0VJTlZBTC9FT1BOT1RTVVBQLwogICAgRG8gbWVtc2V0IGluIGEg c2luZ2xlIHBsYWNlCiAgICBTdXBwb3J0IG11bHRpcGxlIEJTUyBzZWN0aW9ucy4KLS0tCiB4ZW4v Y29tbW9uL2xpdmVwYXRjaC5jIHwgNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCAxNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2xpdmVwYXRjaC5jIGIveGVuL2Nv bW1vbi9saXZlcGF0Y2guYwppbmRleCA1ZGEyOGEzLi5iNWFlZjU3IDEwMDY0NAotLS0gYS94ZW4v Y29tbW9uL2xpdmVwYXRjaC5jCisrKyBiL3hlbi9jb21tb24vbGl2ZXBhdGNoLmMKQEAgLTcwLDYg KzcwLDkgQEAgc3RydWN0IHBheWxvYWQgewogICAgIHVuc2lnbmVkIGludCBuc3ltczsgICAgICAg ICAgICAgICAgICAvKiBOciBvZiBlbnRyaWVzIGluIC5zdHJ0YWIgYW5kIHN5bWJvbHMuICovCiAg ICAgc3RydWN0IGxpdmVwYXRjaF9idWlsZF9pZCBpZDsgICAgICAgIC8qIEVMRk5PVEVfREVTQygu bm90ZS5nbnUuYnVpbGQtaWQpIG9mIHRoZSBwYXlsb2FkLiAqLwogICAgIHN0cnVjdCBsaXZlcGF0 Y2hfYnVpbGRfaWQgZGVwOyAgICAgICAvKiBFTEZOT1RFX0RFU0MoLmxpdmVwYXRjaC5kZXBlbmRz KS4gKi8KKyAgICB2b2lkICoqYnNzOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLmJzcydz IG9mIHRoZSBwYXlsb2FkLiAqLworICAgIHNpemVfdCAqYnNzX3NpemU7ICAgICAgICAgICAgICAg ICAgICAvKiBhbmQgdGhlaXIgc2l6ZXMuICovCisgICAgc2l6ZV90IG5fYnNzOyAgICAgICAgICAg ICAgICAgICAgICAgIC8qIFNpemUgb2YgdGhlIGFycmF5LiAqLwogICAgIGNoYXIgbmFtZVtYRU5f TElWRVBBVENIX05BTUVfU0laRV07IC8qIE5hbWUgb2YgaXQuICovCiB9OwogCkBAIC0yNTUsMTIg KzI1OCwxOCBAQCBzdGF0aWMgc3RydWN0IHBheWxvYWQgKmZpbmRfcGF5bG9hZChjb25zdCBjaGFy ICpuYW1lKQogc3RhdGljIHZvaWQgZnJlZV9wYXlsb2FkX2RhdGEoc3RydWN0IHBheWxvYWQgKnBh eWxvYWQpCiB7CiAgICAgLyogU2V0IHRvIHplcm8gdW50aWwgIm1vdmVfcGF5bG9hZCIuICovCi0g ICAgaWYgKCAhcGF5bG9hZC0+cGFnZXMgKQotICAgICAgICByZXR1cm47Ci0KLSAgICB2ZnJlZSgo dm9pZCAqKXBheWxvYWQtPnRleHRfYWRkcik7CisgICAgaWYgKCBwYXlsb2FkLT5wYWdlcyApCisg ICAgeworICAgICAgICB2ZnJlZSgodm9pZCAqKXBheWxvYWQtPnRleHRfYWRkcik7CisgICAgICAg IHBheWxvYWQtPnBhZ2VzID0gMDsKKyAgICB9CiAKLSAgICBwYXlsb2FkLT5wYWdlcyA9IDA7Cisg ICAgaWYgKCBwYXlsb2FkLT5uX2JzcyApCisgICAgeworICAgICAgICB4ZnJlZShwYXlsb2FkLT5i c3MpOworICAgICAgICB4ZnJlZShwYXlsb2FkLT5ic3Nfc2l6ZSk7CisgICAgICAgIHBheWxvYWQt Pm5fYnNzID0gMDsKKyAgICB9CiB9CiAKIC8qCkBAIC0yODcsNiArMjk2LDcgQEAgc3RhdGljIGlu dCBtb3ZlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsIHN0cnVjdCBsaXZlcGF0Y2hf ZWxmICplbGYpCiAgICAgdW5zaWduZWQgaW50IGk7CiAgICAgc2l6ZV90IHNpemUgPSAwOwogICAg IHVuc2lnbmVkIGludCAqb2Zmc2V0OworICAgIHVuc2lnbmVkIGludCBuX2JzcyA9IDA7CiAgICAg aW50IHJjID0gMDsKIAogICAgIG9mZnNldCA9IHhtYWxsb2NfYXJyYXkodW5zaWduZWQgaW50LCBl bGYtPmhkci0+ZV9zaG51bSk7CkBAIC0zMDksNyArMzE5LDExIEBAIHN0YXRpYyBpbnQgbW92ZV9w YXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxm KQogICAgICAgICAgICAgY2FsY19zZWN0aW9uKCZlbGYtPnNlY1tpXSwgJnBheWxvYWQtPnRleHRf c2l6ZSwgJm9mZnNldFtpXSk7CiAgICAgICAgIGVsc2UgaWYgKCAhKGVsZi0+c2VjW2ldLnNlYy0+ c2hfZmxhZ3MgJiBTSEZfRVhFQ0lOU1RSKSAmJgogICAgICAgICAgICAgICAgICAgKGVsZi0+c2Vj W2ldLnNlYy0+c2hfZmxhZ3MgJiBTSEZfV1JJVEUpICkKKyAgICAgICAgewogICAgICAgICAgICAg Y2FsY19zZWN0aW9uKCZlbGYtPnNlY1tpXSwgJnBheWxvYWQtPnJ3X3NpemUsICZvZmZzZXRbaV0p OworICAgICAgICAgICAgaWYgKCBlbGYtPnNlY1tpXS5zZWMtPnNoX3R5cGUgPT0gU0hUX05PQklU UyApCisgICAgICAgICAgICAgICAgbl9ic3MrKzsKKyAgICAgICAgfQogICAgICAgICBlbHNlIGlm ICggIShlbGYtPnNlY1tpXS5zZWMtPnNoX2ZsYWdzICYgU0hGX0VYRUNJTlNUUikgJiYKICAgICAg ICAgICAgICAgICAgICEoZWxmLT5zZWNbaV0uc2VjLT5zaF9mbGFncyAmIFNIRl9XUklURSkgKQog ICAgICAgICAgICAgY2FsY19zZWN0aW9uKCZlbGYtPnNlY1tpXSwgJnBheWxvYWQtPnJvX3NpemUs ICZvZmZzZXRbaV0pOwpAQCAtMzM0LDEyICszNDgsOCBAQCBzdGF0aWMgaW50IG1vdmVfcGF5bG9h ZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwgc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZikKICAg ICBzaXplID0gUEZOX1VQKHNpemUpOyAvKiBOciBvZiBwYWdlcy4gKi8KICAgICB0ZXh0X2J1ZiA9 IHZtYWxsb2NfeGVuKHNpemUgKiBQQUdFX1NJWkUpOwogICAgIGlmICggIXRleHRfYnVmICkKLSAg ICB7Ci0gICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogQ291bGQgbm90 IGFsbG9jYXRlIG1lbW9yeSBmb3IgcGF5bG9hZCFcbiIsCi0gICAgICAgICAgICAgICAgZWxmLT5u YW1lKTsKLSAgICAgICAgcmMgPSAtRU5PTUVNOwotICAgICAgICBnb3RvIG91dDsKLSAgICB9Cisg ICAgICAgIGdvdG8gb3V0X21lbTsKKwogICAgIHJ3X2J1ZiA9IHRleHRfYnVmICsgUEFHRV9BTElH TihwYXlsb2FkLT50ZXh0X3NpemUpOwogICAgIHJvX2J1ZiA9IHJ3X2J1ZiArIFBBR0VfQUxJR04o cGF5bG9hZC0+cndfc2l6ZSk7CiAKQEAgLTM0OCw2ICszNTgsMTQgQEAgc3RhdGljIGludCBtb3Zl X3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsIHN0cnVjdCBsaXZlcGF0Y2hfZWxmICpl bGYpCiAgICAgcGF5bG9hZC0+cndfYWRkciA9IHJ3X2J1ZjsKICAgICBwYXlsb2FkLT5yb19hZGRy ID0gcm9fYnVmOwogCisgICAgcGF5bG9hZC0+YnNzID0geG1hbGxvY19hcnJheSh2b2lkICosIG5f YnNzKTsKKyAgICBwYXlsb2FkLT5ic3Nfc2l6ZSA9IHhtYWxsb2NfYXJyYXkoc2l6ZV90LCBuX2Jz cyk7CisgICAgaWYgKCAhcGF5bG9hZC0+YnNzIHx8ICFwYXlsb2FkLT5ic3Nfc2l6ZSApCisgICAg ICAgIGdvdG8gb3V0X21lbTsKKworICAgIHBheWxvYWQtPm5fYnNzID0gbl9ic3M7CisgICAgbl9i c3MgPSAwOyAvKiBSZXVzaW5nIGFzIGNvdW50ZXIuICovCisKICAgICBmb3IgKCBpID0gMTsgaSA8 IGVsZi0+aGRyLT5lX3NobnVtOyBpKysgKQogICAgIHsKICAgICAgICAgaWYgKCBlbGYtPnNlY1tp XS5zZWMtPnNoX2ZsYWdzICYgU0hGX0FMTE9DICkKQEAgLTM3NCwxNCArMzkyLDI0IEBAIHN0YXRp YyBpbnQgbW92ZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLCBzdHJ1Y3QgbGl2ZXBh dGNoX2VsZiAqZWxmKQogICAgICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBlbGYtPnNl Y1tpXS5uYW1lLCBlbGYtPnNlY1tpXS5sb2FkX2FkZHIpOwogICAgICAgICAgICAgfQogICAgICAg ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1lbXNldChlbGYtPnNlY1tpXS5sb2FkX2FkZHIs IDAsIGVsZi0+c2VjW2ldLnNlYy0+c2hfc2l6ZSk7CisgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgcGF5bG9hZC0+YnNzW25fYnNzXSA9IGVsZi0+c2VjW2ldLmxvYWRfYWRkcjsKKyAgICAg ICAgICAgICAgICBwYXlsb2FkLT5ic3Nfc2l6ZVtuX2JzcysrXSA9IGVsZi0+c2VjW2ldLnNlYy0+ c2hfc2l6ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KKyAgICBBU1NFUlQobl9i c3MgPT0gcGF5bG9hZC0+bl9ic3MpOwogCiAgb3V0OgogICAgIHhmcmVlKG9mZnNldCk7CiAKICAg ICByZXR1cm4gcmM7CisKKyBvdXRfbWVtOgorICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBB VENIICIlczogQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgcGF5bG9hZCFcbiIsCisgICAg ICAgICAgICBlbGYtPm5hbWUpOworICAgIHJjID0gLUVOT01FTTsKKyAgICBnb3RvIG91dDsKIH0K IAogc3RhdGljIGludCBzZWN1cmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwgc3Ry dWN0IGxpdmVwYXRjaF9lbGYgKmVsZikKQEAgLTk5Nyw2ICsxMDI1LDEwIEBAIHN0YXRpYyBpbnQg YXBwbHlfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqZGF0YSkKICAgICBwcmludGsoWEVOTE9HX0lO Rk8gTElWRVBBVENIICIlczogQXBwbHlpbmcgJXUgZnVuY3Rpb25zXG4iLAogICAgICAgICAgICAg ZGF0YS0+bmFtZSwgZGF0YS0+bmZ1bmNzKTsKIAorICAgIC8qIEFuZCBjbGVhciB0aGUgQlNTIGZv ciBzdWJzZXF1ZW50IG9wZXJhdGlvbi4gKi8KKyAgICBmb3IgKCBpID0gMDsgaSA8IGRhdGEtPm5f YnNzOyBpKysgKQorICAgICAgICBtZW1zZXQoZGF0YS0+YnNzW2ldLCAwLCBkYXRhLT5ic3Nfc2l6 ZVtpXSk7CisKICAgICBhcmNoX2xpdmVwYXRjaF9xdWllc2NlKCk7CiAKICAgICBmb3IgKCBpID0g MDsgaSA8IGRhdGEtPm5mdW5jczsgaSsrICkKQEAgLTE1MTMsOSArMTU0NSw5IEBAIHN0YXRpYyB2 b2lkIGxpdmVwYXRjaF9wcmludGFsbCh1bnNpZ25lZCBjaGFyIGtleSkKIAogICAgIGxpc3RfZm9y X2VhY2hfZW50cnkgKCBkYXRhLCAmcGF5bG9hZF9saXN0LCBsaXN0ICkKICAgICB7Ci0gICAgICAg IHByaW50aygiIG5hbWU9JXMgc3RhdGU9JXMoJWQpICVwICguZGF0YT0lcCwgLnJvZGF0YT0lcCkg dXNpbmcgJXUgcGFnZXMuXG4iLAorICAgICAgICBwcmludGsoIiBuYW1lPSVzIHN0YXRlPSVzKCVk KSAlcCAoLmRhdGE9JXAsIC5yb2RhdGE9JXApIHVzaW5nICV1IHBhZ2VzICglenUgLmJzcykuXG4i LAogICAgICAgICAgICAgICAgZGF0YS0+bmFtZSwgc3RhdGUyc3RyKGRhdGEtPnN0YXRlKSwgZGF0 YS0+c3RhdGUsIGRhdGEtPnRleHRfYWRkciwKLSAgICAgICAgICAgICAgIGRhdGEtPnJ3X2FkZHIs IGRhdGEtPnJvX2FkZHIsIGRhdGEtPnBhZ2VzKTsKKyAgICAgICAgICAgICAgIGRhdGEtPnJ3X2Fk ZHIsIGRhdGEtPnJvX2FkZHIsIGRhdGEtPnBhZ2VzLCBkYXRhLT5uX2Jzcyk7CiAKICAgICAgICAg Zm9yICggaSA9IDA7IGkgPCBkYXRhLT5uZnVuY3M7IGkrKyApCiAgICAgICAgIHsKLS0gCjIuNC4x MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=