From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v4 7/9] livepatch: NOP if func->new_[addr] is zero. Date: Tue, 23 Aug 2016 22:22:10 -0400 Message-ID: <1472005332-32207-8-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 1bcNq8-00032T-At for xen-devel@lists.xenproject.org; Wed, 24 Aug 2016 02:22:52 +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: Andrew Cooper , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org VGhlIE5PUCBmdW5jdGlvbmFsaXR5IHdpbGwgTk9QIGFueSBvZiB0aGUgY29kZSBhdAp0aGUgJ29s ZF9hZGRyJyBvciBhdCAnbmFtZScgaWYgdGhlICduZXdfYWRkcicgaXMgemVyby4KVGhlIHB1cnBv c2Ugb2YgdGhpcyBpcyB0byBOT1Agb3V0IGNhbGxzLCBzdWNoIGFzOgoKIGU4IDw0LWJ5dGVzLW9m ZnNldD4KCig1IGJ5dGUgaW5zbiksIG9yIG9uIEFSTSBhIDQgYnl0ZSBpbnNuIGZvciBicmFuY2hp bmcuCkJ1dCBvbiB4ODYgd2UgY291bGQgTk9QIGluc3RydWN0aW9ucyB0aGF0IGFyZSBtdWNoCnNo b3J0ZXIgb3IgbG9uZ2VyICh1cCB0byAxNSBieXRlcykuCgpXZSBuZWVkIHRoZSBFSVAgb2Ygd2hl cmUgd2UgbmVlZCB0byB0aGUgTk9QLCBhbmQgdGhhdCBjYW4KYmUgcHJvdmlkZWQgdmlhIHRoZSBg b2xkX2FkZHJgIG9yIGBuYW1lYC4KCklmIHRoZSBgb2xkX2FkZHJgIGlzIHByb3ZpZGVkIHdlIHdp bGwgTk9QICduZXdfc2l6ZScKYW1vdW50IG9mIGJ5dGVzIGF0IHRoYXQgbG9jYXRpb24uCgpJZiBg bmFtZWAgaXMgcHJvdmlkZWQgd2l0aCB0aGUgJ3N5bWJvbCsweDxvZmZzZXQnIGZvcm1hdAp3ZSBm aWd1cmUgb3V0IHRoZSBFSVAgYW5kIHRoZW4gTk9QICduZXdfc2l6ZScgYW1vdW50IG9mIGJ5dGVz CmF0IHRoZSBsb2NhdGlvbi4KCldoaWxlIGF0IGl0LCBhbHNvIHVuaWZ5IHRoZSBjb2RlIG9uIHg4 NiBwYXRjaGluZyBzbwppdCBpcyBhIGJpdCBzaW1wbGVyIChpbnN0ZWFkIG9mIHR3byBzZXBlcmF0 ZSB3cml0ZXMKanVzdCBtYWtlIGl0IG9uZSBtZW1jcHkpLgoKU2lnbmVkLW9mZi1ieTogS29ucmFk IFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgoKLS0tCkNjOiBLb25yYWQg Unplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkNjOiBSb3NzIExhZ2Vyd2Fs bCA8cm9zcy5sYWdlcndhbGxAY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Cgp2 MzogRmlyc3Qgc3VibWlzc2lvbgp2NDogRml4IGRlc2NyaXB0aW9uIC0gZTkgLT4gZTgKICAgIFJl bW92ZSB0aGUgcmVzdHJpY3Rpb24gb2Ygb25seSBkb2luZyA1IG9yIDQgYnl0ZXMuCiAgICBSZWRv IHRoZSBwYXRjaGluZyBjb2RlIHRvIGRlYWwgd2l0aCB2YXJpYWJsZSBzaXplIG9mIG5ld19zaXpl LgotLS0KIGRvY3MvbWlzYy9saXZlcGF0Y2gubWFya2Rvd24gICAgICB8ICA3ICsrKysrLS0KIHhl bi9hcmNoL3g4Ni9hbHRlcm5hdGl2ZS5jICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvbGl2 ZXBhdGNoLmMgICAgICAgICAgfCA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0KIHhlbi9jb21tb24vbGl2ZXBhdGNoLmMgICAgICAgICAgICB8ICAzICsrLQogeGVuL2lu Y2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oIHwgIDEgKwogNSBmaWxlcyBjaGFuZ2VkLCA0MyBp bnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2NzL21pc2MvbGl2 ZXBhdGNoLm1hcmtkb3duIGIvZG9jcy9taXNjL2xpdmVwYXRjaC5tYXJrZG93bgppbmRleCA3ZTgy MDQ3Li5hZDBkZjI2IDEwMDY0NAotLS0gYS9kb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duCisr KyBiL2RvY3MvbWlzYy9saXZlcGF0Y2gubWFya2Rvd24KQEAgLTMyMCwxMCArMzIwLDEzIEBAIFRo ZSBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUgaXMgNjQgYnl0ZXMgb24gNjQtYml0IGh5cGVydmlzb3Jz LiBJdCB3aWxsIGJlCiAKICogYG5ld19hZGRyYCBpcyB0aGUgYWRkcmVzcyBvZiB0aGUgZnVuY3Rp b24gdGhhdCBpcyByZXBsYWNpbmcgdGhlIG9sZAogICBmdW5jdGlvbi4gVGhlIGFkZHJlc3MgaXMg ZmlsbGVkIGluIGR1cmluZyByZWxvY2F0aW9uLiBUaGUgdmFsdWUgKipNVVNUKiogYmUKLSAgdGhl IGFkZHJlc3Mgb2YgdGhlIG5ldyBmdW5jdGlvbiBpbiB0aGUgZmlsZS4KKyAgZWl0aGVyIHRoZSBh ZGRyZXNzIG9mIHRoZSBuZXcgZnVuY3Rpb24gaW4gdGhlIGZpbGUsIG9yIHplcm8gaWYgd2UgYXJl IE5PUGluZyBvdXQKKyAgYXQgYG9sZF9hZGRyYCAoYW5kIGBuZXdfc2l6ZWAgKipNVVNUKiogbm90 IGJlIHplcm8pLgogCiAqIGBvbGRfc2l6ZWAgYW5kIGBuZXdfc2l6ZWAgY29udGFpbiB0aGUgc2l6 ZXMgb2YgdGhlIHJlc3BlY3RpdmUgZnVuY3Rpb25zIGluIGJ5dGVzLgotICAgVGhlIHZhbHVlIG9m IGBvbGRfc2l6ZWAgKipNVVNUKiogbm90IGJlIHplcm8uCisgICBUaGUgdmFsdWUgb2YgYG9sZF9z aXplYCAqKk1VU1QqKiBub3QgYmUgemVyby4gSWYgdGhlIHZhbHVlIG9mIGBuZXdfYWRkcmAgaXMK KyAgIHplcm8gdGhlbiBgbmV3X3NpemVgIGRldGVybWluZXMgaG93IG1hbnkgaW5zdHJ1Y3Rpb24g Ynl0ZXMgdG8gTk9QICh1cCB0bworICAgcGxhdGZvcm0gbGltaXRhdGlvbnMpLgogCiAqIGB2ZXJz aW9uYCBpcyB0byBiZSBvbmUuCiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hbHRlcm5hdGl2 ZS5jIGIveGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMKaW5kZXggYmU0MGIxMy4uZmQ4NTI4ZSAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMKKysrIGIveGVuL2FyY2gveDg2 L2FsdGVybmF0aXZlLmMKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYXJj aF9pbml0X2lkZWFsX25vcHModm9pZCkKIH0KIAogLyogVXNlIHRoaXMgdG8gYWRkIG5vcHMgdG8g YSBidWZmZXIsIHRoZW4gdGV4dF9wb2tlIHRoZSB3aG9sZSBidWZmZXIuICovCi1zdGF0aWMgdm9p ZCBpbml0X29yX2xpdmVwYXRjaCBhZGRfbm9wcyh2b2lkICppbnNucywgdW5zaWduZWQgaW50IGxl bikKK3ZvaWQgaW5pdF9vcl9saXZlcGF0Y2ggYWRkX25vcHModm9pZCAqaW5zbnMsIHVuc2lnbmVk IGludCBsZW4pCiB7CiAgICAgd2hpbGUgKCBsZW4gPiAwICkKICAgICB7CmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMgYi94ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMKaW5kZXgg MTAyM2ZhYi4uOTUyZTg5NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2xpdmVwYXRjaC5jCisr KyBiL3hlbi9hcmNoL3g4Ni9saXZlcGF0Y2guYwpAQCAtMTQsNiArMTQsNyBAQAogI2luY2x1ZGUg PGFzbS9ubWkuaD4KIAogI2RlZmluZSBQQVRDSF9JTlNOX1NJWkUgNQorI2RlZmluZSBNQVhfSU5T Tl9TSVpFIDE1CiAKIHZvaWQgYXJjaF9saXZlcGF0Y2hfcXVpZXNjZSh2b2lkKQogewpAQCAtMjks OCArMzAsOCBAQCB2b2lkIGFyY2hfbGl2ZXBhdGNoX3Jldml2ZSh2b2lkKQogCiBpbnQgYXJjaF9s aXZlcGF0Y2hfdmVyaWZ5X2Z1bmMoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKQog ewotICAgIC8qIE5vIE5PUCBwYXRjaGluZyB5ZXQuICovCi0gICAgaWYgKCAhZnVuYy0+bmV3X3Np emUgKQorICAgIC8qIElmIE5PUGluZyBvbmx5IGRvIHVwIHRvIG1heGltdW0gaW5zdHJ1Y3Rpb24g c2l6ZS4gKi8KKyAgICBpZiAoICFmdW5jLT5uZXdfYWRkciAmJiBmdW5jLT5uZXdfc2l6ZSA+IE1B WF9JTlNOX1NJWkUgKQogICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CiAKICAgICBpZiAoIGZ1 bmMtPm9sZF9zaXplIDwgUEFUQ0hfSU5TTl9TSVpFICkKQEAgLTM5LDI1ICs0MCw0OCBAQCBpbnQg YXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2Z1bmMoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpm dW5jKQogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgc2l6ZV90IGdldF9sZW4oY29uc3Qgc3Ry dWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKQoreworICAgIGlmICggIWZ1bmMtPm5ld19hZGRyICkK KyAgICAgICAgcmV0dXJuIGZ1bmMtPm5ld19zaXplOworCisgICAgcmV0dXJuIFBBVENIX0lOU05f U0laRTsKK30KKwogdm9pZCBhcmNoX2xpdmVwYXRjaF9hcHBseV9qbXAoc3RydWN0IGxpdmVwYXRj aF9mdW5jICpmdW5jKQogewotICAgIGludDMyX3QgdmFsOwogICAgIHVpbnQ4X3QgKm9sZF9wdHI7 CisgICAgdWludDhfdCBpbnNuW01BWF9JTlNOX1NJWkVdOworICAgIHNpemVfdCBsZW47CiAKLSAg ICBCVUlMRF9CVUdfT04oUEFUQ0hfSU5TTl9TSVpFID4gc2l6ZW9mKGZ1bmMtPm9wYXF1ZSkpOwot ICAgIEJVSUxEX0JVR19PTihQQVRDSF9JTlNOX1NJWkUgIT0gKDEgKyBzaXplb2YodmFsKSkpOwor ICAgIEJVSUxEX0JVR19PTihNQVhfSU5TTl9TSVpFID4gc2l6ZW9mKGZ1bmMtPm9wYXF1ZSkpOwog CiAgICAgb2xkX3B0ciA9IGZ1bmMtPm9sZF9hZGRyOwotICAgIG1lbWNweShmdW5jLT5vcGFxdWUs IG9sZF9wdHIsIFBBVENIX0lOU05fU0laRSk7CisgICAgbGVuID0gZ2V0X2xlbihmdW5jKTsKKyAg ICBpZiAoICFsZW4gKQorICAgICAgICByZXR1cm47CisKKyAgICBtZW1jcHkoZnVuYy0+b3BhcXVl LCBvbGRfcHRyLCBsZW4pOworICAgIGlmICggZnVuYy0+bmV3X2FkZHIgKQorICAgIHsKKyAgICAg ICAgaW50MzJfdCB2YWw7CisKKyAgICAgICAgQlVJTERfQlVHX09OKFBBVENIX0lOU05fU0laRSAh PSAoMSArIHNpemVvZih2YWwpKSk7CisKKyAgICAgICAgaW5zblswXSA9IDB4ZTk7CisgICAgICAg IHZhbCA9IGZ1bmMtPm5ld19hZGRyIC0gZnVuYy0+b2xkX2FkZHIgLSBQQVRDSF9JTlNOX1NJWkU7 CisKKyAgICAgICAgbWVtY3B5KCZpbnNuWzFdLCAmdmFsLCBzaXplb2YodmFsKSk7CisgICAgfQor ICAgIGVsc2UKKyAgICAgICAgYWRkX25vcHMoJmluc24sIGxlbik7CiAKLSAgICAqb2xkX3B0cisr ID0gMHhlOTsgLyogUmVsYXRpdmUganVtcCAqLwotICAgIHZhbCA9IGZ1bmMtPm5ld19hZGRyIC0g ZnVuYy0+b2xkX2FkZHIgLSBQQVRDSF9JTlNOX1NJWkU7Ci0gICAgbWVtY3B5KG9sZF9wdHIsICZ2 YWwsIHNpemVvZih2YWwpKTsKKyAgICBtZW1jcHkob2xkX3B0ciwgaW5zbiwgbGVuKTsKIH0KIAog dm9pZCBhcmNoX2xpdmVwYXRjaF9yZXZlcnRfam1wKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZnVu YyAqZnVuYykKIHsKLSAgICBtZW1jcHkoZnVuYy0+b2xkX2FkZHIsIGZ1bmMtPm9wYXF1ZSwgUEFU Q0hfSU5TTl9TSVpFKTsKKyAgICBtZW1jcHkoZnVuYy0+b2xkX2FkZHIsIGZ1bmMtPm9wYXF1ZSwg Z2V0X2xlbihmdW5jKSk7CiB9CiAKIC8qIFNlcmlhbGlzZSB0aGUgQ1BVIHBpcGVsaW5lLiAqLwpk aWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9saXZlcGF0Y2guYyBiL3hlbi9jb21tb24vbGl2ZXBhdGNo LmMKaW5kZXggYzIzNDQyNC4uZGQyNGEwNyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9saXZlcGF0 Y2guYworKysgYi94ZW4vY29tbW9uL2xpdmVwYXRjaC5jCkBAIC01NjYsNyArNTY2LDggQEAgc3Rh dGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCiAgICAgICAg ICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoICFmLT5u ZXdfYWRkciB8fCAhZi0+bmV3X3NpemUgKQorICAgICAgICAvKiAnb2xkX2FkZHInLCAnbmV3X2Fk ZHInLCAnbmV3X3NpemUnIGNhbiBhbGwgYmUgemVyby4gKi8KKyAgICAgICAgaWYgKCAhZi0+b2xk X3NpemUgKQogICAgICAgICB7CiAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQ QVRDSCAiJXM6IEFkZHJlc3Mgb3Igc2l6ZSBmaWVsZHMgYXJlIHplcm8hXG4iLAogICAgICAgICAg ICAgICAgICAgICBlbGYtPm5hbWUpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9h bHRlcm5hdGl2ZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oCmluZGV4IGJj ZTk1OWYuLmFjYWVkZWQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRp dmUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmgKQEAgLTIzLDYgKzIz LDcgQEAgc3RydWN0IGFsdF9pbnN0ciB7CiAgICAgdTggIHJlcGxhY2VtZW50bGVuOyAgICAgLyog bGVuZ3RoIG9mIG5ldyBpbnN0cnVjdGlvbiwgPD0gaW5zdHJsZW4gKi8KIH07CiAKK2V4dGVybiB2 b2lkIGFkZF9ub3BzKHZvaWQgKmluc25zLCB1bnNpZ25lZCBpbnQgbGVuKTsKIC8qIFNpbWlsYXIg dG8gYXBwbHlfYWx0ZXJuYXRpdmVzIGV4Y2VwdCBpdCBjYW4gYmUgcnVuIHdpdGggSVJRcyBlbmFi bGVkLiAqLwogZXh0ZXJuIHZvaWQgYXBwbHlfYWx0ZXJuYXRpdmVzX25vY2hlY2soc3RydWN0IGFs dF9pbnN0ciAqc3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgYWx0X2luc3RyICplbmQpOwotLSAKMi40LjExCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==