From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v5 17/28] xsplice: Add support for exception tables. Date: Thu, 24 Mar 2016 16:00:29 -0400 Message-ID: <1458849640-22588-18-git-send-email-konrad.wilk@oracle.com> References: <1458849640-22588-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.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ajBRT-0007Kj-5n for xen-devel@lists.xenproject.org; Thu, 24 Mar 2016 20:01:15 +0000 In-Reply-To: <1458849640-22588-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, ross.lagerwall@citrix.com, konrad@kernel.org, andrew.cooper3@citrix.com, mpohlack@amazon.de, sasha.levin@oracle.com Cc: Keir Fraser , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org RnJvbTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+CgpBZGQgc3Vw cG9ydCBmb3IgZXhjZXB0aW9uIHRhYmxlcyBjb250YWluZWQgd2l0aGluIHhTcGxpY2UgcGF5bG9h ZHMuIElmIGFuCmV4Y2VwdGlvbiBvY2N1cnMgc2VhcmNoIGVpdGhlciB0aGUgbWFpbiBleGNlcHRp b24gdGFibGUgb3IgYSBwYXJ0aWN1bGFyCmFjdGl2ZSBwYXlsb2FkJ3MgZXhjZXB0aW9uIHRhYmxl IGRlcGVuZGluZyBvbiB0aGUgaW5zdHJ1Y3Rpb24gcG9pbnRlci4KCkFsc28gd2UgYWRkIGFuIHRl c3QtY2FzZSB0byBtYWtlIHN1cmUgd2UgaGF2ZSBhbiBleGNlcHRpb24gdGhhdAppcyBoYW5kbGVk LgoKU2lnbmVkLW9mZi1ieTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5j b20+ClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3Jh Y2xlLmNvbT4KCi0tLQpDYzogS2VpciBGcmFzZXIgPGtlaXJAeGVuLm9yZz4KQ2M6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIz QGNpdHJpeC5jb20+Cgp2MzoKIC0gcy9tb2R1bGUvcGF5bG9hZC8KIC0gc2FuaXR5IGNoZWNrcy4K IC0gTW92ZSBjb2RlIGFyb3VuZC4KIC0gcy9tb2R1bGUvcGF5bG9hZC8KdjQ6IFVzZSAnc3RydWN0 IHZpcnR1YWxfcmVnaW9uJwp2NToKICAtIEV4cGFuZCB0ZXN0LWNhc2UuCi0tLQogeGVuL2FyY2gv eDg2L2V4dGFibGUuYyAgICAgICAgICAgICAgfCAzMCArKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0KIHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZC5jIHwgMTEgKysrKysrKysr KysKIHhlbi9jb21tb24veHNwbGljZS5jICAgICAgICAgICAgICAgIHwgMTkgKysrKysrKysrKysr KysrKysrKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzLmggICAgICAgfCAgNSArKysrKwog NCBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvZXh0YWJsZS5jIGIveGVuL2FyY2gveDg2L2V4dGFibGUuYwpp bmRleCBjNmMzNjdhLi5hN2YwMTQ0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZXh0YWJsZS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9leHRhYmxlLmMKQEAgLTIwLDcgKzIwLDcgQEAgc3RhdGljIGlu bGluZSB1bnNpZ25lZCBsb25nIGV4X2NvbnQoY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9l bnRyeSAqeCkKIAlyZXR1cm4gRVhfRklFTEQoeCwgY29udCk7CiB9CiAKLXN0YXRpYyBpbnQgX19p bml0IGNtcF9leChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQorc3RhdGljIGludCBjbXBf ZXgoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKIHsKIAljb25zdCBzdHJ1Y3QgZXhjZXB0 aW9uX3RhYmxlX2VudHJ5ICpsID0gYSwgKnIgPSBiOwogCXVuc2lnbmVkIGxvbmcgbGlwID0gZXhf YWRkcihsKTsKQEAgLTM1LDcgKzM1LDcgQEAgc3RhdGljIGludCBfX2luaXQgY21wX2V4KGNvbnN0 IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCiB9CiAKICNpZm5kZWYgc3dhcF9leAotc3RhdGljIHZv aWQgX19pbml0IHN3YXBfZXgodm9pZCAqYSwgdm9pZCAqYiwgaW50IHNpemUpCitzdGF0aWMgdm9p ZCBzd2FwX2V4KHZvaWQgKmEsIHZvaWQgKmIsIGludCBzaXplKQogewogCXN0cnVjdCBleGNlcHRp b25fdGFibGVfZW50cnkgKmwgPSBhLCAqciA9IGIsIHRtcDsKIAlsb25nIGRlbHRhID0gYiAtIGE7 CkBAIC00OCwxOSArNDgsMjMgQEAgc3RhdGljIHZvaWQgX19pbml0IHN3YXBfZXgodm9pZCAqYSwg dm9pZCAqYiwgaW50IHNpemUpCiB9CiAjZW5kaWYKIAotdm9pZCBfX2luaXQgc29ydF9leGNlcHRp b25fdGFibGVzKHZvaWQpCit2b2lkIHNvcnRfZXhjZXB0aW9uX3RhYmxlKHN0cnVjdCBleGNlcHRp b25fdGFibGVfZW50cnkgKnN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpzdG9wKQogewotICAgIHNvcnQoX19zdGFydF9fX2V4X3Rh YmxlLCBfX3N0b3BfX19leF90YWJsZSAtIF9fc3RhcnRfX19leF90YWJsZSwKLSAgICAgICAgIHNp emVvZihzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5KSwgY21wX2V4LCBzd2FwX2V4KTsKLSAg ICBzb3J0KF9fc3RhcnRfX19wcmVfZXhfdGFibGUsCi0gICAgICAgICBfX3N0b3BfX19wcmVfZXhf dGFibGUgLSBfX3N0YXJ0X19fcHJlX2V4X3RhYmxlLAorICAgIHNvcnQoc3RhcnQsIHN0b3AgLSBz dGFydCwKICAgICAgICAgIHNpemVvZihzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5KSwgY21w X2V4LCBzd2FwX2V4KTsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCi1zZWFyY2hf b25lX3RhYmxlKGNvbnN0IHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgKmZpcnN0LAotICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpsYXN0LAot ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHZhbHVlKQordm9pZCBfX2luaXQgc29ydF9l eGNlcHRpb25fdGFibGVzKHZvaWQpCit7CisgICAgc29ydF9leGNlcHRpb25fdGFibGUoX19zdGFy dF9fX2V4X3RhYmxlLCBfX3N0b3BfX19leF90YWJsZSk7CisgICAgc29ydF9leGNlcHRpb25fdGFi bGUoX19zdGFydF9fX3ByZV9leF90YWJsZSwgX19zdG9wX19fcHJlX2V4X3RhYmxlKTsKK30KKwor dW5zaWduZWQgbG9uZworc2VhcmNoX29uZV9leHRhYmxlKGNvbnN0IHN0cnVjdCBleGNlcHRpb25f dGFibGVfZW50cnkgKmZpcnN0LAorICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBleGNl cHRpb25fdGFibGVfZW50cnkgKmxhc3QsCisgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyB2YWx1ZSkKIHsKICAgICBjb25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICptaWQ7 CiAgICAgbG9uZyBkaWZmOwpAQCAtODUsNyArODksNyBAQCBzZWFyY2hfZXhjZXB0aW9uX3RhYmxl KHVuc2lnbmVkIGxvbmcgYWRkcikKICAgICBzdHJ1Y3QgdmlydHVhbF9yZWdpb24gKnJlZ2lvbiA9 IHNlYXJjaF9mb3JfdGV4dChhZGRyKTsKIAogICAgIGlmICggcmVnaW9uICYmIHJlZ2lvbi0+ZXgg KQotICAgICAgICByZXR1cm4gc2VhcmNoX29uZV90YWJsZShyZWdpb24tPmV4LCByZWdpb24tPmV4 X2VuZC0xLCBhZGRyKTsKKyAgICAgICAgcmV0dXJuIHNlYXJjaF9vbmVfZXh0YWJsZShyZWdpb24t PmV4LCByZWdpb24tPmV4X2VuZC0xLCBhZGRyKTsKIAogICAgIHJldHVybiAwOwogfQpAQCAtOTQs NyArOTgsNyBAQCB1bnNpZ25lZCBsb25nCiBzZWFyY2hfcHJlX2V4Y2VwdGlvbl90YWJsZShzdHJ1 Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKICAgICB1bnNpZ25lZCBsb25nIGFkZHIgPSAodW5z aWduZWQgbG9uZylyZWdzLT5laXA7Ci0gICAgdW5zaWduZWQgbG9uZyBmaXh1cCA9IHNlYXJjaF9v bmVfdGFibGUoCisgICAgdW5zaWduZWQgbG9uZyBmaXh1cCA9IHNlYXJjaF9vbmVfZXh0YWJsZSgK ICAgICAgICAgX19zdGFydF9fX3ByZV9leF90YWJsZSwgX19zdG9wX19fcHJlX2V4X3RhYmxlLTEs IGFkZHIpOwogICAgIGlmICggZml4dXAgKQogICAgIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni90ZXN0L3hlbl9oZWxsb193b3JsZC5jIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dv cmxkLmMKaW5kZXggNTM2NDExNC4uMGYyNmIwNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Rl c3QveGVuX2hlbGxvX3dvcmxkLmMKKysrIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dv cmxkLmMKQEAgLTEyLDYgKzEyLDcgQEAKIAogc3RhdGljIGNoYXIgeGVuX2hlbGxvX3dvcmxkX25h bWVbXSA9ICJ4ZW5faGVsbG9fd29ybGQiOwogZXh0ZXJuIGNvbnN0IGNoYXIgKnhlbl9oZWxsb193 b3JsZCh2b2lkKTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nICpub25fY2Fub25pY2FsX2FkZHIgPSAo dW5zaWduZWQgbG9uZyAqKSgxVUw8PDQ4KTsKIAogLyogRXh0ZXJuYWwgc3ltYm9sLiAqLwogZXh0 ZXJuIGNvbnN0IGNoYXIgKnhlbl9leHRyYV92ZXJzaW9uKHZvaWQpOwpAQCAtMjYsMTAgKzI3LDIw IEBAIHZvaWQgYXBwbHlfaG9vayh2b2lkKQogCiB2b2lkIHJldmVydF9ob29rKHZvaWQpCiB7Cisg ICAgdW5zaWduZWQgbG9uZyB0bXAgPSAweGRlYWRiZWVmOworICAgIGludCByYzsKKwogICAgIHBy aW50ayhLRVJOX0RFQlVHICJIb29rIHVubG9hZGVkLlxuIik7CiAgICAgLyogVGhlIGhvb2sgaXMg Y2FsbGVkICBfYWZ0ZXJfIHRoZSB1bnBhdGNoaW5nLiAqLwogICAgIGlmICggIXN0cmNtcCh4ZW5f ZXh0cmFfdmVyc2lvbigpLCAiSGVsbG8gV29ybGQiKSApCiAgICAgICAgIEJVRygpOworICAgIC8q CisgICAgICogQnV0IGJlZm9yZSB1bnJlZ2lzdGVyaW5nIHRoZSB2aXJ0dWFsIHJlZ2lvbi4gV2hp Y2ggbWVhbnMgYW55CisgICAgICogQlVHLCBvciBXQVJOX09OIHdpbGwgY29udGFpbiBzeW1ib2wg bmFtZS4gQW5kIGFsc28gZXhjZXB0aW9ucworICAgICAqIHdpbGwgYmUgY2F1Z2h0IGFuZCBwcm9j ZXNzZWQgcHJvcGVybHkuCisgICAgICovCisgICAgcmMgPSBfX2dldF91c2VyKHRtcCwgbm9uX2Nh bm9uaWNhbF9hZGRyKTsKKyAgICBCVUdfT04ocmMgIT0gLUVGQVVMVCk7CiB9CiAKIFhTUExJQ0Vf TE9BRF9IT09LKGFwcGx5X2hvb2spOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi94c3BsaWNlLmMg Yi94ZW4vY29tbW9uL3hzcGxpY2UuYwppbmRleCA3YjkyNjAyLi40NTQ4YjhiIDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL3hzcGxpY2UuYworKysgYi94ZW4vY29tbW9uL3hzcGxpY2UuYwpAQCAtNTcz LDYgKzU3MywyNSBAQCBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAq cGF5bG9hZCwKICAgICAgICAgcmVnaW9uLT5mcmFtZVtpXS5uX2J1Z3MgPSBzZWMtPnNlYy0+c2hf c2l6ZSAvIHNpemVvZihzdHJ1Y3QgYnVnX2ZyYW1lKTsKICAgICB9CiAKKyNpZmRlZiBDT05GSUdf WDg2CisgICAgc2VjID0geHNwbGljZV9lbGZfc2VjX2J5X25hbWUoZWxmLCAiLmV4X3RhYmxlIik7 CisgICAgaWYgKCBzZWMgKQorICAgIHsKKyAgICAgICAgaWYgKCAhc2VjLT5zZWMtPnNoX3NpemUg fHwKKyAgICAgICAgICAgICAoc2VjLT5zZWMtPnNoX3NpemUgJSBzaXplb2YgKHN0cnVjdCBleGNl cHRpb25fdGFibGVfZW50cnkpKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRwcmludGsoWEVO TE9HX0RFQlVHLCAiJXMlczogV3Jvbmcgc2l6ZSBvZiAuZXhfdGFibGUgKGV4cDolbHUgdnMgJWx1 KSFcbiIsCisgICAgICAgICAgICAgICAgICAgIFhTUExJQ0UsIGVsZi0+bmFtZSwgc2l6ZW9mIChz dHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5KSwKKyAgICAgICAgICAgICAgICAgICAgc2VjLT5z ZWMtPnNoX3NpemUpOworICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgICAgIH0KKwor ICAgICAgICByZWdpb24tPmV4ID0gKHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgKilzZWMt PmxvYWRfYWRkcjsKKyAgICAgICAgcmVnaW9uLT5leF9lbmQgPSAoc3RydWN0IGV4Y2VwdGlvbl90 YWJsZV9lbnRyeSAqKShzZWMtPmxvYWRfYWRkciArIHNlYy0+c2VjLT5zaF9zaXplKTsKKworICAg ICAgICBzb3J0X2V4Y2VwdGlvbl90YWJsZShyZWdpb24tPmV4LCByZWdpb24tPmV4X2VuZCk7Cisg ICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L2FzbS14ODYvdWFjY2Vzcy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzLmgKaW5kZXgg OTQ3NDcwZC4uOWU2N2JmMCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNz LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzLmgKQEAgLTI3Niw2ICsyNzYsMTEg QEAgZXh0ZXJuIHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgX19zdGFydF9fX3ByZV9leF90 YWJsZVtdOwogZXh0ZXJuIHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgX19zdG9wX19fcHJl X2V4X3RhYmxlW107CiAKIGV4dGVybiB1bnNpZ25lZCBsb25nIHNlYXJjaF9leGNlcHRpb25fdGFi bGUodW5zaWduZWQgbG9uZyk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBzZWFyY2hfb25lX2V4dGFi bGUoY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqZmlyc3QsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90YWJs ZV9lbnRyeSAqbGFzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIHZhbHVlKTsKIGV4dGVybiB2b2lkIHNvcnRfZXhjZXB0aW9uX3RhYmxlcyh2 b2lkKTsKK2V4dGVybiB2b2lkIHNvcnRfZXhjZXB0aW9uX3RhYmxlKHN0cnVjdCBleGNlcHRpb25f dGFibGVfZW50cnkgKnN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqc3RvcCk7CiAKICNlbmRpZiAvKiBfX1g4Nl9VQUND RVNTX0hfXyAqLwotLSAKMi41LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=