From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v7 3/5] livepatch: NOP if func->new_addr is zero. Date: Wed, 21 Sep 2016 12:57:08 -0400 Message-ID: <1474477030-10722-4-git-send-email-konrad.wilk@oracle.com> References: <1474477030-10722-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 1bmkpv-0000GP-3e for xen-devel@lists.xenproject.org; Wed, 21 Sep 2016 16:57:31 +0000 In-Reply-To: <1474477030-10722-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: konrad@kernel.org, xen-devel@lists.xenproject.org, ross.lagerwall@citrix.com Cc: andrew.cooper3@citrix.com, Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org VGhlIE5PUCBmdW5jdGlvbmFsaXR5IHdpbGwgTk9QIGFueSBvZiB0aGUgY29kZSBhdAp0aGUgJ29s ZF9hZGRyJyBvciBhdCAnbmFtZScgaWYgdGhlICduZXdfYWRkcicgaXMgemVyby4KVGhlIHB1cnBv c2Ugb2YgdGhpcyBpcyB0byBOT1Agb3V0IGNhbGxzLCBzdWNoIGFzOgoKIGU4IDw0LWJ5dGVzLW9m ZnNldD4KCig1IGJ5dGUgaW5zbiksIG9yIG9uIEFSTSBhIDQgYnl0ZSBpbnNuIGZvciBicmFuY2hp bmcuCgpXZSBuZWVkIHRoZSBFSVAgb2Ygd2hlcmUgd2UgbmVlZCB0byB0aGUgTk9QLCBhbmQgdGhh dCBjYW4KYmUgcHJvdmlkZWQgdmlhIHRoZSBgb2xkX2FkZHJgIG9yIGBuYW1lYC4KCklmIHRoZSBg b2xkX2FkZHJgIGlzIHByb3ZpZGVkIHdlIHdpbGwgTk9QICduZXdfc2l6ZScKYW1vdW50IG9mIGJ5 dGVzIGF0IHRoYXQgbG9jYXRpb24uCgpUaGUgYW1vdW50IGlzIHVwIHRvIDMxIGluc3RydWN0aW9u cyBpZiBkZXNpcmVkICh3aGljaCBpcwp0aGUgc2l6ZSBvZiB0aGUgb3BhcXVlIG1lbWJlcikuIElm IHRoZXJlIGlzIGEgbmVlZCB0byBOT1AKbW9yZSB0aGVuOiBhKSBtb3JlICdzdHJ1Y3QgbGl2ZXBh dGNoX2Z1bmMnIHN0cnVjdHVyZXMgbmVlZAp0byBiZSBwcmVzZW50LCBiKSB3ZSBoYXZlIHRvIGlt cGxlbWVudCBhIHZhcmlhYmxlIHNpemUKYnVmZmVyIChpbiB0aGUgZnV0dXJlKSwgb3IgYykgZmly c3QgYnl0ZSBhbiB1bmNvbmRpdGlvbmFsCmJyYW5jaCBza2lwcGluZyB0aGUgdG8gYmUgZGlzYWJs ZWQgY29kZSAob2YgY291cnNlIHByb3ZpZGVkCnRoZXJlIGFyZSBubyBicmFuY2ggdGFyZ2V0cyBp biB0aGUgbWlkZGxlKS4KCldoaWxlIGF0IGl0LCBhbHNvIHVuaWZ5IHRoZSBjb2RlIG9uIHg4NiBw YXRjaGluZyBzbwppdCBpcyBhIGJpdCBzaW1wbGVyIChpbnN0ZWFkIG9mIHR3byBzZXBlcmF0ZSB3 cml0ZXMKanVzdCBtYWtlIGl0IG9uZSBtZW1jcHkpLgoKQW5kIGludHJvZHVjZSBhIGdlbmVyYWwg bGl2ZXBhdGNoX2luc25fbGVuIGlubGluZSBmdW5jdGlvbgp0aGF0IHdvdWxkIGRlcGVuZCBvbiBw bGF0Zm9ybSBzcGVjaWZpYyBpbnN0cnVjdGlvbiBzaXplCihmb3IgYSB1bmNvbmRpdGlvbmFsIGJy YW5jaCkuIEFzIHN1Y2ggd2UgYWxzbyByZW5hbWUgdGhlClBBVENIX0lOU05fU0laRSB0byBBUkNI X1BBVENIX0lOU05fU0laRS4KClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8 a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KCi0tLQpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxr b25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxs QGNpdHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKdjM6IEZpcnN0IHN1Ym1pc3Np b24KdjQ6IEZpeCBkZXNjcmlwdGlvbiAtIGU5IC0+IGU4CiAgICBSZW1vdmUgdGhlIHJlc3RyaWN0 aW9uIG9mIG9ubHkgZG9pbmcgNSBvciA0IGJ5dGVzLgogICAgUmVkbyB0aGUgcGF0Y2hpbmcgY29k ZSB0byBkZWFsIHdpdGggdmFyaWFibGUgc2l6ZSBvZiBuZXdfc2l6ZS4KICAgIEV4cGFuZCB0aGUg YW1vdW50IG9mIGJ5dGVzIHdlIGNhbiBOT1AuCiAgICBNb3ZlIHRoZSBQQVRDSF9JTlNOX1NJWkUg ZGVmaW5pdGlvbiBpbiBwbGF0Zm9ybSBzcGVjaWZpYyBoZWFkZXJzCiAgICBNb3ZlIHRoZSBnZXRf bGVuIHRvIGxpdmVwYXRjaF9nZXRfaW5zbl9sZW4gaW5saW5lIGZ1bmN0aW9uLgp2NTogcy9QQVRD SF9JTlNOX1NJWkUvQVJDSF9QQVRDSF9JTlNOX1NJWkUvCiAgICBzL2FyY2hfbGl2ZXBhdGNoX2lu c25fbGVuL2xpdmVwYXRjaF9pbnNuX2xlbi8KICAgIHMvc2l6ZV90IGxlbi91bnNpZ25lZCBpbnQg bGVuLwogICAgQWRkIGluIGNvbW1pdCBkZXNjcmlwdGlvbiB0aGUgYykgbWVjaGFuaXNtIChpbnNl cnQgYW4gdW5jb25kaXRpb25hbAogICAgYnJhbmNoKS4KdjY6IEV4cGFuZCBpbiB0aGUgZG9jdW1l bnRhdGlvbiBhYm91dCB0aGUgb2xkX2FkZHIgYmVpbmcgYXQgbGVhc3QgNS4Kdjc6IEFkZGVkIHRo ZSBleHRyYSBlbnRyeSBpbiB0aGUgTUFJTlRBSU5FUlMgZmlsZS4KICAtIEV4cGFuZGVkIG9uIHRo ZSBsaXZlcGF0Y2gubWFya2Rvd24gdGhlIGRlc2NyaXB0aW9uLgogIC0gVXNlZCBhZGRfbm9wcyhp bnNuLCAuLiBpbnN0ZWFkIG9mIGFkZF9ub3BzKCZpbnNuLCAuLikKLS0tCiBNQUlOVEFJTkVSUyAg ICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBkb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3du ICAgICAgfCAyMiArKysrKysrKysrKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9hbHRlcm5hdGl2ZS5j ICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMgICAgICAgICAgfCA0OCAr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIHhlbi9jb21tb24vbGl2ZXBh dGNoLmMgICAgICAgICAgICB8ICAzICsrLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2 ZS5oIHwgIDEgKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9saXZlcGF0Y2guaCAgIHwgMjEgKysrKysr KysrKysrKysrKysKIHhlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaCAgICAgICB8IDEwICsrKysr KysrCiA4IGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL2FzbS14ODYvbGl2ZXBhdGNoLmgKCmRpZmYg LS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCmluZGV4IDk3NzIwYTguLjliMzA2MDAg MTAwNjQ0Ci0tLSBhL01BSU5UQUlORVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC0yNzAsNiArMjcw LDcgQEAgRjogIGRvY3MvbWlzYy9saXZlcGF0Y2gubWFya2Rvd24KIEY6ICB0b29scy9taXNjL3hl bi1saXZlcGF0Y2guYwogRjogIHhlbi9hcmNoLyovbGl2ZXBhdGNoKgogRjogIHhlbi9jb21tb24v bGl2ZXBhdGNoKgorRjogIHhlbi9pbmNsdWRlL2FzbS0qL2xpdmVwYXRjaC5oCiBGOiAgeGVuL2lu Y2x1ZGUveGVuL2xpdmVwYXRjaCoKIAogTUFDSElORSBDSEVDSyAoTUNBKSAmIFJBUwpkaWZmIC0t Z2l0IGEvZG9jcy9taXNjL2xpdmVwYXRjaC5tYXJrZG93biBiL2RvY3MvbWlzYy9saXZlcGF0Y2gu bWFya2Rvd24KaW5kZXggODFmNGZjOS4uMzdhMDg2MCAxMDA2NDQKLS0tIGEvZG9jcy9taXNjL2xp dmVwYXRjaC5tYXJrZG93bgorKysgYi9kb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duCkBAIC0z MTgsMTMgKzMxOCwyNCBAQCBUaGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGlzIDY0IGJ5dGVzIG9u IDY0LWJpdCBoeXBlcnZpc29ycy4gSXQgd2lsbCBiZQogICBwYXlsb2FkIGdlbmVyYXRpb24gdGlt ZSBpZiBoeXBlcnZpc29yIGZ1bmN0aW9uIGFkZHJlc3MgaXMga25vd24uIElmIHVua25vd24sCiAg IHRoZSB2YWx1ZSAqTVVTVCogYmUgemVybyBhbmQgdGhlIGh5cGVydmlzb3Igd2lsbCBhdHRlbXB0 IHRvIHJlc29sdmUgdGhlIGFkZHJlc3MuCiAKLSogYG5ld19hZGRyYCBpcyB0aGUgYWRkcmVzcyBv ZiB0aGUgZnVuY3Rpb24gdGhhdCBpcyByZXBsYWNpbmcgdGhlIG9sZAotICBmdW5jdGlvbi4gVGhl IGFkZHJlc3MgaXMgZmlsbGVkIGluIGR1cmluZyByZWxvY2F0aW9uLiBUaGUgdmFsdWUgKipNVVNU KiogYmUKLSAgdGhlIGFkZHJlc3Mgb2YgdGhlIG5ldyBmdW5jdGlvbiBpbiB0aGUgZmlsZS4KKyog YG5ld19hZGRyYCBjYW4gZWl0aGVyIGhhdmUgYSBub24temVybyB2YWx1ZSBvciBiZSB6ZXJvLgor ICAqIElmIHRoZXJlIGlzIGEgbm9uLXplcm8gdmFsdWUsIHRoZW4gaXQgaXMgdGhlIGFkZHJlc3Mg b2YgdGhlIGZ1bmN0aW9uIHRoYXQgaXMKKyAgICByZXBsYWNpbmcgdGhlIG9sZCBmdW5jdGlvbiBh bmQgdGhlIGFkZHJlc3MgaXMgcmVjb21wdXRlZCBkdXJpbmcgcmVsb2NhdGlvbi4KKyAgICBUaGUg dmFsdWUgKipNVVNUKiogYmUgdGhlIGFkZHJlc3Mgb2YgdGhlIG5ldyBmdW5jdGlvbiBpbiB0aGUg cGF5bG9hZCBmaWxlLgogCi0qIGBvbGRfc2l6ZWAgYW5kIGBuZXdfc2l6ZWAgY29udGFpbiB0aGUg c2l6ZXMgb2YgdGhlIHJlc3BlY3RpdmUgZnVuY3Rpb25zIGluIGJ5dGVzLgorICAqIElmIHRoZSB2 YWx1ZSBpcyB6ZXJvLCB0aGVuIHdlIE5PUGluZyBvdXQgYXQgdGhlIGBvbGRfYWRkcmAgbG9jYXRp b24KKyAgICBgbmV3X3NpemVgIGJ5dGVzLgorCisqIGBvbGRfc2l6ZWAgY29udGFpbnMgdGhlIHNp emVzIG9mIHRoZSByZXNwZWN0aXZlIGBvbGRfYWRkcmAgZnVuY3Rpb24gaW4gYnl0ZXMuCiAgICBU aGUgdmFsdWUgb2YgYG9sZF9zaXplYCAqKk1VU1QqKiBub3QgYmUgemVyby4KIAorKiBgbmV3X3Np emVgIGRlcGVuZHMgb24gd2hhdCBgbmV3X2FkZHJgIGNvbnRhaW5zOgorICAqIElmIGBuZXdfYWRk cmAgY29udGFpbnMgYW4gbm9uLXplcm8gdmFsdWUsIHRoZW4gYG5ld19zaXplYCBoYXMgdGhlIHNp emUgb2YKKyAgICB0aGUgbmV3IGZ1bmN0aW9uICh3aGljaCB3aWxsIHJlcGxhY2UgdGhlIG9uZSBh dCBgb2xkX2FkZHJgKSAgaW4gYnl0ZXMuCisgICogSWYgdGhlIHZhbHVlIG9mIGBuZXdfYWRkcmAg aXMgemVybyB0aGVuIGBuZXdfc2l6ZWAgZGV0ZXJtaW5lcyBob3cgbWFueQorICAgIGluc3RydWN0 aW9uIGJ5dGVzIHRvIE5PUCAodXAgdG8gb3BhcXVlIHNpemUgbW9kdWxvIHNtYWxsZXN0IHBsYXRm b3JtCisgICAgaW5zdHJ1Y3Rpb24gLSAxIGJ5dGUgeDg2IGFuZCA0IGJ5dGVzIG9uIEFSTSkuCisK ICogYHZlcnNpb25gIGlzIHRvIGJlIG9uZS4KIAogKiBgb3BhcXVlYCAqKk1VU1QqKiBiZSB6ZXJv LgpAQCAtMTA4Nyw3ICsxMDk4LDggQEAgbGltaXQgdGhhdCBjYWxscyB0aGUgbmV4dCB0cmFtcG9s aW5lLgogUGxlYXNlIG5vdGUgdGhlcmUgaXMgYSBzbWFsbCBsaW1pdGF0aW9uIGZvciB0cmFtcG9s aW5lcyBpbgogZnVuY3Rpb24gZW50cmllczogVGhlIHRhcmdldCBmdW5jdGlvbiAoKyB0cmFpbGlu ZyBwYWRkaW5nKSBtdXN0IGJlIGFibGUKIHRvIGFjY29tb2RhdGUgdGhlIHRyYW1wb2xpbmUuIE9u IHg4NiB3aXRoICstMiBHQiByZWxhdGl2ZSBqdW1wcywKLXRoaXMgbWVhbnMgNSBieXRlcyBhcmUg cmVxdWlyZWQuCit0aGlzIG1lYW5zIDUgYnl0ZXMgYXJlIHJlcXVpcmVkIHdoaWNoIG1lYW5zIHRo YXQgYG9sZF9zaXplYCAqKk1VU1QqKiBiZQorYXQgbGVhc3QgZml2ZSBieXRlcyBpZiBwYXRjaGlu ZyBpbiB0cmFtcG9saW5lLgogCiBEZXBlbmRpbmcgb24gY29tcGlsZXIgc2V0dGluZ3MsIHRoZXJl IGFyZSBzZXZlcmFsIGZ1bmN0aW9ucyBpbiBYZW4gdGhhdAogYXJlIHNtYWxsZXIgKHdpdGhvdXQg aW50ZXItZnVuY3Rpb24gcGFkZGluZykuCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYWx0ZXJu YXRpdmUuYyBiL3hlbi9hcmNoL3g4Ni9hbHRlcm5hdGl2ZS5jCmluZGV4IDA1ZTNlYjguLjZlYWEx MGYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hbHRlcm5hdGl2ZS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9hbHRlcm5hdGl2ZS5jCkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgX19pbml0 IGFyY2hfaW5pdF9pZGVhbF9ub3BzKHZvaWQpCiB9CiAKIC8qIFVzZSB0aGlzIHRvIGFkZCBub3Bz IHRvIGEgYnVmZmVyLCB0aGVuIHRleHRfcG9rZSB0aGUgd2hvbGUgYnVmZmVyLiAqLwotc3RhdGlj IHZvaWQgaW5pdF9vcl9saXZlcGF0Y2ggYWRkX25vcHModm9pZCAqaW5zbnMsIHVuc2lnbmVkIGlu dCBsZW4pCit2b2lkIGluaXRfb3JfbGl2ZXBhdGNoIGFkZF9ub3BzKHZvaWQgKmluc25zLCB1bnNp Z25lZCBpbnQgbGVuKQogewogICAgIHdoaWxlICggbGVuID4gMCApCiAgICAgewpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2xpdmVwYXRjaC5jIGIveGVuL2FyY2gveDg2L2xpdmVwYXRjaC5jCmlu ZGV4IDU2ZGExNTQuLmQ1ZTcxNzQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9saXZlcGF0Y2gu YworKysgYi94ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMKQEAgLTEyLDggKzEyLDcgQEAKICNpbmNs dWRlIDx4ZW4vbGl2ZXBhdGNoLmg+CiAKICNpbmNsdWRlIDxhc20vbm1pLmg+Ci0KLSNkZWZpbmUg UEFUQ0hfSU5TTl9TSVpFIDUKKyNpbmNsdWRlIDxhc20vbGl2ZXBhdGNoLmg+CiAKIGludCBhcmNo X2xpdmVwYXRjaF9xdWllc2NlKHZvaWQpCiB7CkBAIC0zMSwxMSArMzAsMTcgQEAgdm9pZCBhcmNo X2xpdmVwYXRjaF9yZXZpdmUodm9pZCkKIAogaW50IGFyY2hfbGl2ZXBhdGNoX3ZlcmlmeV9mdW5j KGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYykKIHsKLSAgICAvKiBObyBOT1AgcGF0 Y2hpbmcgeWV0LiAqLwotICAgIGlmICggIWZ1bmMtPm5ld19zaXplICkKLSAgICAgICAgcmV0dXJu IC1FT1BOT1RTVVBQOworICAgIC8qIElmIE5PUGluZy4uICovCisgICAgaWYgKCAhZnVuYy0+bmV3 X2FkZHIgKQorICAgIHsKKyAgICAgICAgLyogT25seSBkbyB1cCB0byBtYXhpbXVtIGFtb3VudCB3 ZSBjYW4gcHV0IGluIHRoZSAtPm9wYXF1ZS4gKi8KKyAgICAgICAgaWYgKCBmdW5jLT5uZXdfc2l6 ZSA+IHNpemVvZihmdW5jLT5vcGFxdWUpICkKKyAgICAgICAgICAgIHJldHVybiAtRU9QTk9UU1VQ UDsKIAotICAgIGlmICggZnVuYy0+b2xkX3NpemUgPCBQQVRDSF9JTlNOX1NJWkUgKQorICAgICAg ICBpZiAoIGZ1bmMtPm9sZF9zaXplIDwgZnVuYy0+bmV3X3NpemUgKQorICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CisgICAgfQorICAgIGVsc2UgaWYgKCBmdW5jLT5vbGRfc2l6ZSA8IEFSQ0hf UEFUQ0hfSU5TTl9TSVpFICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKICAgICByZXR1cm4g MDsKQEAgLTQzLDIzICs0OCwzNiBAQCBpbnQgYXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2Z1bmMoY29u c3Qgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKQogCiB2b2lkIGFyY2hfbGl2ZXBhdGNoX2Fw cGx5X2ptcChzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCiB7Ci0gICAgaW50MzJfdCB2YWw7 CiAgICAgdWludDhfdCAqb2xkX3B0cjsKLQotICAgIEJVSUxEX0JVR19PTihQQVRDSF9JTlNOX1NJ WkUgPiBzaXplb2YoZnVuYy0+b3BhcXVlKSk7Ci0gICAgQlVJTERfQlVHX09OKFBBVENIX0lOU05f U0laRSAhPSAoMSArIHNpemVvZih2YWwpKSk7CisgICAgdWludDhfdCBpbnNuW3NpemVvZihmdW5j LT5vcGFxdWUpXTsKKyAgICB1bnNpZ25lZCBpbnQgbGVuOwogCiAgICAgb2xkX3B0ciA9IGZ1bmMt Pm9sZF9hZGRyOwotICAgIG1lbWNweShmdW5jLT5vcGFxdWUsIG9sZF9wdHIsIFBBVENIX0lOU05f U0laRSk7CisgICAgbGVuID0gbGl2ZXBhdGNoX2luc25fbGVuKGZ1bmMpOworICAgIGlmICggIWxl biApCisgICAgICAgIHJldHVybjsKKworICAgIG1lbWNweShmdW5jLT5vcGFxdWUsIG9sZF9wdHIs IGxlbik7CisgICAgaWYgKCBmdW5jLT5uZXdfYWRkciApCisgICAgeworICAgICAgICBpbnQzMl90 IHZhbDsKKworICAgICAgICBCVUlMRF9CVUdfT04oQVJDSF9QQVRDSF9JTlNOX1NJWkUgIT0gKDEg KyBzaXplb2YodmFsKSkpOworCisgICAgICAgIGluc25bMF0gPSAweGU5OyAvKiBSZWxhdGl2ZSBq dW1wLiAqLworICAgICAgICB2YWwgPSBmdW5jLT5uZXdfYWRkciAtIGZ1bmMtPm9sZF9hZGRyIC0g QVJDSF9QQVRDSF9JTlNOX1NJWkU7CisKKyAgICAgICAgbWVtY3B5KCZpbnNuWzFdLCAmdmFsLCBz aXplb2YodmFsKSk7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgYWRkX25vcHMoaW5zbiwgbGVu KTsKIAotICAgICpvbGRfcHRyKysgPSAweGU5OyAvKiBSZWxhdGl2ZSBqdW1wICovCi0gICAgdmFs ID0gZnVuYy0+bmV3X2FkZHIgLSBmdW5jLT5vbGRfYWRkciAtIFBBVENIX0lOU05fU0laRTsKLSAg ICBtZW1jcHkob2xkX3B0ciwgJnZhbCwgc2l6ZW9mKHZhbCkpOworICAgIG1lbWNweShvbGRfcHRy LCBpbnNuLCBsZW4pOwogfQogCiB2b2lkIGFyY2hfbGl2ZXBhdGNoX3JldmVydF9qbXAoY29uc3Qg c3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKQogewotICAgIG1lbWNweShmdW5jLT5vbGRfYWRk ciwgZnVuYy0+b3BhcXVlLCBQQVRDSF9JTlNOX1NJWkUpOworICAgIG1lbWNweShmdW5jLT5vbGRf YWRkciwgZnVuYy0+b3BhcXVlLCBsaXZlcGF0Y2hfaW5zbl9sZW4oZnVuYykpOwogfQogCiAvKiBT ZXJpYWxpc2UgdGhlIENQVSBwaXBlbGluZS4gKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vbGl2 ZXBhdGNoLmMgYi94ZW4vY29tbW9uL2xpdmVwYXRjaC5jCmluZGV4IGM5ZTUzMTguLmVkNDFmMzkg MTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbGl2ZXBhdGNoLmMKKysrIGIveGVuL2NvbW1vbi9saXZl cGF0Y2guYwpAQCAtNTI1LDcgKzUyNSw4IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9wYXlsb2FkKHN0 cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOwog ICAgICAgICB9CiAKLSAgICAgICAgaWYgKCAhZi0+bmV3X2FkZHIgfHwgIWYtPm5ld19zaXplICkK KyAgICAgICAgLyogJ29sZF9hZGRyJywgJ25ld19hZGRyJywgJ25ld19zaXplJyBjYW4gYWxsIGJl IHplcm8uICovCisgICAgICAgIGlmICggIWYtPm9sZF9zaXplICkKICAgICAgICAgewogICAgICAg ICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBBZGRyZXNzIG9yIHNpemUg ZmllbGRzIGFyZSB6ZXJvIVxuIiwKICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lKTsKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvYWx0ZXJuYXRpdmUuaAppbmRleCA2N2ZjMGQyLi5kYjRmMDhlIDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9hbHRlcm5hdGl2ZS5oCkBAIC0yNyw2ICsyNyw3IEBAIHN0cnVjdCBhbHRfaW5zdHIgewog I2RlZmluZSBBTFRfT1JJR19QVFIoYSkgICAgIF9fQUxUX1BUUihhLCBpbnN0cl9vZmZzZXQpCiAj ZGVmaW5lIEFMVF9SRVBMX1BUUihhKSAgICAgX19BTFRfUFRSKGEsIHJlcGxfb2Zmc2V0KQogCitl eHRlcm4gdm9pZCBhZGRfbm9wcyh2b2lkICppbnNucywgdW5zaWduZWQgaW50IGxlbik7CiAvKiBT aW1pbGFyIHRvIGFsdGVybmF0aXZlX2luc3RydWN0aW9ucyBleGNlcHQgaXQgY2FuIGJlIHJ1biB3 aXRoIElSUXMgZW5hYmxlZC4gKi8KIGV4dGVybiB2b2lkIGFwcGx5X2FsdGVybmF0aXZlcyhjb25z dCBzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgYWx0X2luc3RyICplbmQpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9saXZlcGF0Y2guaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbGl2ZXBhdGNoLmgKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWUwNGFhMQotLS0gL2Rldi9udWxsCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbGl2ZXBhdGNoLmgKQEAgLTAsMCArMSwyMSBAQAorLyoK KyAqIENvcHlyaWdodCAoYykgMjAxNiBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwg cmlnaHRzIHJlc2VydmVkLgorICoKKyAqLworCisjaWZuZGVmIF9fWEVOX1g4Nl9MSVZFUEFUQ0hf SF9fCisjZGVmaW5lIF9fWEVOX1g4Nl9MSVZFUEFUQ0hfSF9fCisKKyNkZWZpbmUgQVJDSF9QQVRD SF9JTlNOX1NJWkUgNQorCisjZW5kaWYgLyogX19YRU5fWDg2X0xJVkVQQVRDSF9IX18gKi8KKwor LyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJT RCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJz LW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbGl2 ZXBhdGNoLmggYi94ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoLmgKaW5kZXggMjljOWIzMS4uMTc0 YWYwNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2xpdmVwYXRjaC5oCisrKyBiL3hlbi9p bmNsdWRlL3hlbi9saXZlcGF0Y2guaApAQCAtNjgsNyArNjgsMTcgQEAgaW50IGFyY2hfbGl2ZXBh dGNoX3NlY3VyZShjb25zdCB2b2lkICp2YSwgdW5zaWduZWQgaW50IHBhZ2VzLCBlbnVtIHZhX3R5 cGUgdHlwZXMKIHZvaWQgYXJjaF9saXZlcGF0Y2hfaW5pdCh2b2lkKTsKIAogI2luY2x1ZGUgPHB1 YmxpYy9zeXNjdGwuaD4gLyogRm9yIHN0cnVjdCBsaXZlcGF0Y2hfZnVuYy4gKi8KKyNpbmNsdWRl IDxhc20vbGl2ZXBhdGNoLmg+CiBpbnQgYXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2Z1bmMoY29uc3Qg c3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKTsKKworc3RhdGljIGlubGluZQordW5zaWduZWQg aW50IGxpdmVwYXRjaF9pbnNuX2xlbihjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMp Cit7CisgICAgaWYgKCAhZnVuYy0+bmV3X2FkZHIgKQorICAgICAgICByZXR1cm4gZnVuYy0+bmV3 X3NpemU7CisKKyAgICByZXR1cm4gQVJDSF9QQVRDSF9JTlNOX1NJWkU7Cit9CiAvKgogICogVGhl c2UgZnVuY3Rpb25zIGFyZSBjYWxsZWQgYXJvdW5kIHRoZSBjcml0aWNhbCByZWdpb24gcGF0Y2hp bmcgbGl2ZSBjb2RlLAogICogZm9yIGFuIGFyY2hpdGVjdHVyZSB0byB0YWtlIG1ha2UgYXBwcm9w cmF0aWUgZ2xvYmFsIHN0YXRlIGFkanVzdG1lbnRzLgotLSAKMi40LjExCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs Cg==