From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v3 07/18] livepatch: ARM/x86: Check displacement of old_addr and new_addr Date: Sun, 11 Sep 2016 16:35:14 -0400 Message-ID: <1473626125-13683-8-git-send-email-konrad.wilk@oracle.com> References: <1473626125-13683-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bjBTl-0001wO-F1 for xen-devel@lists.xenproject.org; Sun, 11 Sep 2016 20:35:53 +0000 In-Reply-To: <1473626125-13683-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, julien.grall@arm.com, sstabellini@kernel.org, ross.lagerwall@citrix.com Cc: andrew.cooper3@citrix.com, Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org SWYgdGhlIGRpc3RhbmNlIGlzIHRvbyBncmVhdCB3ZSBhcmUgaW4gdHJvdWJsZSAtIGFzIG91ciBy ZWxvY2F0aW9uCmRpc3RhbmNlIGNhbiBzdXJlbHkgYmUgY2xpcHBlZCwgb3Igc3RpbGwgaGF2ZSBh IHZhbGlkIHdpZHRoIC0gYnV0CmNhdXNlIGFuIG92ZXJmbG93IG9mIGRpc3RhbmNlLgoKT24gdmFy aW91cyBhcmNoaXRlY3R1cmVzIHRoZSBtYXhpbXVtIGRpc3BsYWNlbWVudCBmb3IgYSB1bmNvbmRp dGlvbmFsCmJyYW5jaC9qdW1wIHZhcmllcy4gQVJNMzIgaXMgKy8tIDMyTUIsIEFSTTY0IGlzICsv LSAxMjhNQiB3aGlsZSB4ODYKZm9yIDMyLWJpdCByZWxvY2F0aW9ucyBpcyArLy0gMkcuCgpOb3Rl OiBPbiB4ODYgd2UgY291bGQgdXNlIHRoZSA2NC1iaXQgam1wcSBpbnN0cnVjdGlvbiB3aGljaAp3 b3VsZCBwcm92aWRlIG11Y2ggYmlnZ2VyIGRpc3BsYWNlbWVudCB0byBkbyBhIGp1bXAsIGJ1dCB3 ZSB3b3VsZApzdGlsbCBoYXZlIGlzc3VlcyB3aXRoIHRoZSBuZXcgZnVuY3Rpb24gbm90IGJlaW5n IGFibGUgdG8gcmVhY2gKYW55IG9mIHRoZSBvbGQgZnVuY3Rpb25zIChhcyBhbGwgdGhlIHJlbG9j YXRpb25zIHdvdWxkIGFzc3VtZSAzMi1iaXQKZGlzcGxhY2VtZW50KS4KCk9uIEFSTSB0aGUgY29u ZGl0aW9uYWwgYnJhbmNoIHN1cHBvcnRzIGV2ZW4gYSBzbWFsbGVyIGRpc3BsYWNlbWVudApidXQg Zm9ydHVuYXRseSB3ZSBhcmUgbm90IHVzaW5nIHRoYXQuCgpTaWduZWQtb2ZmLWJ5OiBLb25yYWQg Unplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CgotLS0KQ2M6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5v cmc+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgoKdjM6IE5ldyBzdWJt aXNzaW9uLgotLS0KIGRvY3MvbWlzYy9saXZlcGF0Y2gubWFya2Rvd24gICAgfCAxNCArKysrKysr KysrKysrLQogeGVuL2FyY2gvYXJtL2FybTY0L2xpdmVwYXRjaC5jICB8ICAxICsKIHhlbi9hcmNo L3g4Ni9saXZlcGF0Y2guYyAgICAgICAgfCAgMiArLQogeGVuL2NvbW1vbi9saXZlcGF0Y2guYyAg ICAgICAgICB8ICA0ICsrKysKIHhlbi9pbmNsdWRlL2FzbS1hcm0vbGl2ZXBhdGNoLmggfCAxMSAr KysrKysrKysrKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9saXZlcGF0Y2guaCB8ICAzICsrKwogeGVu L2luY2x1ZGUveGVuL2xpdmVwYXRjaC5oICAgICB8IDIyICsrKysrKysrKysrKysrKysrKystLS0K IDcgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duIGIvZG9jcy9taXNjL2xpdmVwYXRj aC5tYXJrZG93bgppbmRleCA1M2I1MzcxLi41MmMyODFkIDEwMDY0NAotLS0gYS9kb2NzL21pc2Mv bGl2ZXBhdGNoLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy9saXZlcGF0Y2gubWFya2Rvd24KQEAg LTEwOTksNyArMTA5OSw3IEBAIGNhbiBiZSBjaGFuZ2VkIGR1cmluZyBwYXlsb2FkIGFwcGxpY2F0 aW9uLgogVGhlIGh5cGVydmlzb3Igc2hvdWxkIHZlcmlmeSB0aGF0IHRoZSBpbi1wbGFjZSBwYXRj aGluZyB3b3VsZCBmaXQgd2l0aGluCiB0aGUgY29kZSBvciBkYXRhLgogCi0jIyMgVHJhbXBvbGlu ZSAoZTkgb3Bjb2RlKQorIyMjIFRyYW1wb2xpbmUgKGU5IG9wY29kZSksIHg4NgogCiBUaGUgZTkg b3Bjb2RlIHVzZWQgZm9yIGptcHEgdXNlcyBhIDMyLWJpdCBzaWduZWQgZGlzcGxhY2VtZW50LiBU aGF0IG1lYW5zCiB3ZSBhcmUgbGltaXRlZCB0byB1cCB0byAyR0Igb2YgdmlydHVhbCBhZGRyZXNz IHRvIHBsYWNlIHRoZSBuZXcgY29kZQpAQCAtMTEzMywzICsxMTMzLDE1IEBAIHRoYXQgaW4gdGhl IGh5cGVydmlzb3IgaXMgYWR2aXNlZC4KIFRoZSB0b29sIGZvciBnZW5lcmF0aW5nIHBheWxvYWRz IGN1cnJlbnRseSBkb2VzIHBlcmZvcm0gYSBjb21waWxlLXRpbWUKIGNoZWNrIHRvIGVuc3VyZSB0 aGF0IHRoZSBmdW5jdGlvbiB0byBiZSByZXBsYWNlZCBpcyBsYXJnZSBlbm91Z2guCiAKK1RoZSBo eXBlcnZpc29yIGFsc28gY2hlY2tzIHRoZSBkaXNwbGFjZW1lbnQgZHVyaW5nIGxvYWRpbmcgb2Yg dGhlIHBheWxvYWQuCisKKyMjIyMgVHJhbXBvbGluZSAoZWEgb3Bjb2RlKSwgQVJNCisKK1RoZSAw eGVhMDAwMDAwIGluc3RydWN0aW9uICh3aXRoIHByb3BlciBvZmZzZXQpIGlzIHVzZWQgZm9yIGFu IHVuY29uZGl0aW9uYWwKK2JyYW5jaCB0byB0aGUgbmV3IGNvZGUuIFRoaXMgbWVhbnMgd2UgYXJl IGxpbWl0ZWQgb24gQVJNMzIgdG8gKy8tIDMyTUIKK2Rpc3BsYWNlbWVudCBhbmQgb24gQVJNNjQg dG8gKy8tIDEyOE1CIGRpc3BsYWNlbWVudC4KKworVGhlIG5ldyBjb2RlIGlzIHBsYWNlZCBpbiB0 aGUgOE0gLSAxME0gdmlydHVhbCBhZGRyZXNzIHNwYWNlIHdoaWxlIHRoZQorWGVuIGNvZGUgaXMg aW4gMk0gLSA0TS4gVGhhdCBnaXZlcyB1cyBlbm91Z2ggc3BhY2UuCisKK1RoZSBoeXBlcnZpc29y IGFsc28gY2hlY2tzIHRoZSBkaXNwbGFjZW1lbnQgZHVyaW5nIGxvYWRpbmcgb2YgdGhlIHBheWxv YWQuCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vYXJtNjQvbGl2ZXBhdGNoLmMgYi94ZW4vYXJj aC9hcm0vYXJtNjQvbGl2ZXBhdGNoLmMKaW5kZXggZWNhZjNmNi4uZjA3MjY3MSAxMDA2NDQKLS0t IGEveGVuL2FyY2gvYXJtL2FybTY0L2xpdmVwYXRjaC5jCisrKyBiL3hlbi9hcmNoL2FybS9hcm02 NC9saXZlcGF0Y2guYwpAQCAtNDAsNiArNDAsNyBAQCB2b2lkIGFyY2hfbGl2ZXBhdGNoX2FwcGx5 X2ptcChzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCiAgICAgZWxzZQogICAgICAgICBpbnNu ID0gYWFyY2g2NF9pbnNuX2dlbl9ub3AoKTsKIAorICAgIC8qIFZlcmlmaWVkIGluIGFyY2hfbGl2 ZXBhdGNoX3ZlcmlmeV9kaXN0YW5jZS4gKi8KICAgICBBU1NFUlQoaW5zbiAhPSBBQVJDSDY0X0JS RUFLX0ZBVUxUKTsKIAogICAgIG5ld19wdHIgPSBmdW5jLT5vbGRfYWRkciAtICh2b2lkICopX3N0 YXJ0ICsgdm1hcF9vZl94ZW5fdGV4dDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9saXZlcGF0 Y2guYyBiL3hlbi9hcmNoL3g4Ni9saXZlcGF0Y2guYwppbmRleCBjNGQ0YjRkLi5jZjNlYjIyIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMKKysrIGIveGVuL2FyY2gveDg2L2xp dmVwYXRjaC5jCkBAIC00NCw3ICs0NCw3IEBAIHZvaWQgYXJjaF9saXZlcGF0Y2hfYXBwbHlfam1w KHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYykKIHsKICAgICB1aW50OF90ICpvbGRfcHRyOwog ICAgIHVpbnQ4X3QgaW5zbltzaXplb2YoZnVuYy0+b3BhcXVlKV07Ci0gICAgc2l6ZV90IGxlbjsK KyAgICB1bnNpZ25lZCBpbnQgbGVuOwogCiAgICAgb2xkX3B0ciA9IGZ1bmMtPm9sZF9hZGRyOwog ICAgIGxlbiA9IGFyY2hfbGl2ZXBhdGNoX2luc25fbGVuKGZ1bmMpOwpkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi9saXZlcGF0Y2guYyBiL3hlbi9jb21tb24vbGl2ZXBhdGNoLmMKaW5kZXggNWJhYTQx OC4uNGYxNTZjMiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9saXZlcGF0Y2guYworKysgYi94ZW4v Y29tbW9uL2xpdmVwYXRjaC5jCkBAIC01MzAsNiArNTMwLDEwIEBAIHN0YXRpYyBpbnQgcHJlcGFy ZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgICAgICByYyA9IHJlc29sdmVf b2xkX2FkZHJlc3MoZiwgZWxmKTsKICAgICAgICAgaWYgKCByYyApCiAgICAgICAgICAgICByZXR1 cm4gcmM7CisKKyAgICAgICAgcmMgPSBhcmNoX2xpdmVwYXRjaF92ZXJpZnlfZGlzdGFuY2UoZik7 CisgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgcmV0dXJuIHJjOwogICAgIH0KIAogICAg IHNlYyA9IGxpdmVwYXRjaF9lbGZfc2VjX2J5X25hbWUoZWxmLCAiLmxpdmVwYXRjaC5ob29rcy5s b2FkIik7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2xpdmVwYXRjaC5oIGIveGVu L2luY2x1ZGUvYXNtLWFybS9saXZlcGF0Y2guaAppbmRleCA4YzhkNjI1Li5hNjMyY2ZhIDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2xpdmVwYXRjaC5oCisrKyBiL3hlbi9pbmNsdWRl L2FzbS1hcm0vbGl2ZXBhdGNoLmgKQEAgLTYsNiArNiw4IEBACiAjaWZuZGVmIF9fWEVOX0FSTV9M SVZFUEFUQ0hfSF9fCiAjZGVmaW5lIF9fWEVOX0FSTV9MSVZFUEFUQ0hfSF9fCiAKKyNpbmNsdWRl IDx4ZW4vc2l6ZXMuaD4gLyogRm9yIFNaXyogbWFjcm9zLiAqLworCiAvKiBPbiBBUk0zMiw2NCBp bnN0cnVjdGlvbnMgYXJlIGFsd2F5cyA0IGJ5dGVzIGxvbmcuICovCiAjZGVmaW5lIFBBVENIX0lO U05fU0laRSA0CiAKQEAgLTE1LDYgKzE3LDE1IEBACiAgKi8KIGV4dGVybiB2b2lkICp2bWFwX29m X3hlbl90ZXh0OwogCisvKiBUaGVzZSByYW5nZXMgYXJlIG9ubHkgZm9yIHVuY29uZGl0aW9uYWwg YnJhbmNoZXMuICovCisjaWZkZWYgQ09ORklHX0FSTV8zMgorLyogQVJNMzI6IEE0LjMgSU4gQVJN IERESSAwNDA2Qy5qIC0gIHdlIGFyZSB1c2luZyBvbmx5IEFSTSBpbnN0cnVjdGlvbnMgaW4gWGVu LiovCisjZGVmaW5lIExJVkVQQVRDSF9BUkNIX1JBTkdFIFNaXzMyTQorI2Vsc2UKKy8qIEFSTTY0 OiBDMS4zLjIgaW4gQVJNIERESSAwNDg3QS5qICovCisjZGVmaW5lIExJVkVQQVRDSF9BUkNIX1JB TkdFIFNaXzEyOE0KKyNlbmRpZgorCiAjZW5kaWYgLyogX19YRU5fQVJNX0xJVkVQQVRDSF9IX18g Ki8KIAogLyoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbGl2ZXBhdGNoLmggYi94 ZW4vaW5jbHVkZS9hc20teDg2L2xpdmVwYXRjaC5oCmluZGV4IDYzZWEwNzkuLjBjYWUyNDIgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbGl2ZXBhdGNoLmgKKysrIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9saXZlcGF0Y2guaApAQCAtNiw3ICs2LDEwIEBACiAjaWZuZGVmIF9fWEVOX1g4 Nl9MSVZFUEFUQ0hfSF9fCiAjZGVmaW5lIF9fWEVOX1g4Nl9MSVZFUEFUQ0hfSF9fCiAKKyNpbmNs dWRlIDx4ZW4vc2l6ZXMuaD4gLyogRm9yIFNaXyogbWFjcm9zLiAqLworCiAjZGVmaW5lIFBBVENI X0lOU05fU0laRSA1CisjZGVmaW5lIExJVkVQQVRDSF9BUkNIX1JBTkdFIFNaXzJHCiAKICNlbmRp ZiAvKiBfX1hFTl9YODZfTElWRVBBVENIX0hfXyAqLwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS94ZW4vbGl2ZXBhdGNoLmggYi94ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoLmgKaW5kZXggODI1 OGUwMi4uOTA0Nzg1YSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2xpdmVwYXRjaC5oCisr KyBiL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaApAQCAtMTIsNiArMTIsNyBAQCBzdHJ1Y3Qg bGl2ZXBhdGNoX2VsZl9zeW07CiBzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfb3A7CiAKICNp bmNsdWRlIDx4ZW4vZWxmc3RydWN0cy5oPgorI2luY2x1ZGUgPHhlbi9lcnJuby5oPiAvKiBGb3Ig LUVOT1NZUyBvciAtRU9WRVJGTE9XICovCiAjaWZkZWYgQ09ORklHX0xJVkVQQVRDSAogCiAvKgpA QCAtNjYsMTYgKzY3LDMyIEBAIGludCBhcmNoX2xpdmVwYXRjaF9zZWN1cmUoY29uc3Qgdm9pZCAq dmEsIHVuc2lnbmVkIGludCBwYWdlcywgZW51bSB2YV90eXBlIHR5cGVzCiB2b2lkIGFyY2hfbGl2 ZXBhdGNoX2luaXQodm9pZCk7CiAKICNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+IC8qIEZvciBz dHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMuICovCi0jaW5jbHVkZSA8YXNtL2xpdmVwYXRjaC5oPiAvKiBG b3IgUEFUQ0hfSU5TTl9TSVpFLiAqLworI2luY2x1ZGUgPGFzbS9saXZlcGF0Y2guaD4gLyogRm9y IExJVkVQQVRDSF9BUkNIX1JBTkdFIGFuZCBQQVRDSF9JTlNOX1NJWkUgKi8KIGludCBhcmNoX2xp dmVwYXRjaF92ZXJpZnlfZnVuYyhjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpOwog Ci1zdGF0aWMgaW5saW5lIHNpemVfdCBhcmNoX2xpdmVwYXRjaF9pbnNuX2xlbihjb25zdCBzdHJ1 Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCitzdGF0aWMgaW5saW5lCit1bnNpZ25lZCBpbnQgYXJj aF9saXZlcGF0Y2hfaW5zbl9sZW4oY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKQog ewogICAgIGlmICggIWZ1bmMtPm5ld19hZGRyICkKICAgICAgICAgcmV0dXJuIGZ1bmMtPm5ld19z aXplOwogCiAgICAgcmV0dXJuIFBBVENIX0lOU05fU0laRTsKIH0KKworc3RhdGljIGlubGluZSBp bnQgYXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2Rpc3RhbmNlKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hf ZnVuYyAqZnVuYykKK3sKKyAgICBsb25nIG9mZnNldDsKKyAgICBsb25nIHJhbmdlID0gKGxvbmcp TElWRVBBVENIX0FSQ0hfUkFOR0U7CisKKyAgICBpZiAoICFmdW5jLT5uZXdfYWRkciApIC8qIEln bm9yZSBOT1BzLiAqLworICAgICAgICByZXR1cm4gMDsKKworICAgIG9mZnNldCA9ICgobG9uZylm dW5jLT5vbGRfYWRkciAtIChsb25nKWZ1bmMtPm5ld19hZGRyKTsKKyAgICBpZiAoIG9mZnNldCA8 IC1yYW5nZSB8fCBvZmZzZXQgPj0gcmFuZ2UgKQorICAgICAgICByZXR1cm4gLUVPVkVSRkxPVzsK KworICAgIHJldHVybiAwOworfQogLyoKICAqIFRoZXNlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGFy b3VuZCB0aGUgY3JpdGljYWwgcmVnaW9uIHBhdGNoaW5nIGxpdmUgY29kZSwKICAqIGZvciBhbiBh cmNoaXRlY3R1cmUgdG8gdGFrZSBtYWtlIGFwcHJvcHJhdGllIGdsb2JhbCBzdGF0ZSBhZGp1c3Rt ZW50cy4KQEAgLTEwMCw3ICsxMTcsNiBAQCB2b2lkIGFyY2hfbGl2ZXBhdGNoX3VubWFzayh2b2lk KTsKICNkZWZpbmUgaW5pdF9vcl9saXZlcGF0Y2hfZGF0YSAgICAgICAgX19pbml0ZGF0YQogI2Rl ZmluZSBpbml0X29yX2xpdmVwYXRjaCAgICAgICAgICAgICBfX2luaXQKIAotI2luY2x1ZGUgPHhl bi9lcnJuby5oPiAvKiBGb3IgLUVOT1NZUyAqLwogc3RhdGljIGlubGluZSBpbnQgbGl2ZXBhdGNo X29wKHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCAqb3ApCiB7CiAgICAgcmV0dXJuIC1F Tk9TWVM7Ci0tIAoyLjQuMTEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK