From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH v4 27/27] x86: clean up traps.c Date: Thu, 8 Jun 2017 18:12:03 +0100 Message-ID: <20170608171203.20416-28-wei.liu2@citrix.com> References: <20170608171203.20416-1-wei.liu2@citrix.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 1dJ12t-00067F-OH for xen-devel@lists.xenproject.org; Thu, 08 Jun 2017 17:16:31 +0000 In-Reply-To: <20170608171203.20416-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org UmVwbGFjZSBib29sX3Qgd2l0aCBib29sLiBEZWxldGUgdHJhaWxpbmcgd2hpdGUgc3BhY2VzLiBG aXggc29tZQpjb2Rpbmcgc3R5bGUgaXNzdWVzLgoKU2lnbmVkLW9mZi1ieTogV2VpIExpdSA8d2Vp LmxpdTJAY2l0cml4LmNvbT4KQWNrZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KLS0tCiB4ZW4vYXJjaC94ODYvdHJhcHMuYyB8IDc3ICsrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MCBpbnNlcnRp b25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdHJhcHMu YyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IDBjZWRkNTE1OWIuLmU1Njg1ODY1NzMgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5j CkBAIC0xLDE4ICsxLDE4IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBhcmNoL3g4Ni90 cmFwcy5jCi0gKiAKKyAqCiAgKiBNb2RpZmljYXRpb25zIHRvIExpbnV4IG9yaWdpbmFsIGFyZSBj b3B5cmlnaHQgKGMpIDIwMDItMjAwNCwgSyBBIEZyYXNlcgotICogCisgKgogICogVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CiAgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgogICogKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KLSAqIAorICoKICAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICogYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKiAKKyAqCiAg KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQogICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICAqLwpAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQg KCppb2VtdWxfaGFuZGxlX3F1aXJrKSgKIHN0YXRpYyBpbnQgZGVidWdfc3RhY2tfbGluZXMgPSAy MDsKIGludGVnZXJfcGFyYW0oImRlYnVnX3N0YWNrX2xpbmVzIiwgZGVidWdfc3RhY2tfbGluZXMp OwogCi1zdGF0aWMgYm9vbF90IG9wdF9sZXI7CitzdGF0aWMgYm9vbCBvcHRfbGVyOwogYm9vbGVh bl9wYXJhbSgibGVyIiwgb3B0X2xlcik7CiAKICNkZWZpbmUgc3RhY2tfd29yZHNfcGVyX2xpbmUg NApAQCAtNTkxLDcgKzU5MSw3IEBAIHZvaWQgdmNwdV9zaG93X2V4ZWN1dGlvbl9zdGF0ZShzdHJ1 Y3QgdmNwdSAqdikKIH0KIAogc3RhdGljIGNwdW1hc2tfdCBzaG93X3N0YXRlX21hc2s7Ci1zdGF0 aWMgYm9vbF90IG9wdF9zaG93X2FsbDsKK3N0YXRpYyBib29sIG9wdF9zaG93X2FsbDsKIGJvb2xl YW5fcGFyYW0oImFzeW5jLXNob3ctYWxsIiwgb3B0X3Nob3dfYWxsKTsKIAogc3RhdGljIGludCBu bWlfc2hvd19leGVjdXRpb25fc3RhdGUoY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Ms IGludCBjcHUpCkBAIC02MDIsOCArNjAyLDggQEAgc3RhdGljIGludCBubWlfc2hvd19leGVjdXRp b25fc3RhdGUoY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGludCBjcHUpCiAgICAg aWYgKCBvcHRfc2hvd19hbGwgKQogICAgICAgICBzaG93X2V4ZWN1dGlvbl9zdGF0ZShyZWdzKTsK ICAgICBlbHNlCi0gICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJDUFUlZCBAICUwNHg6JTA4bHgg KCVwUylcbiIsIGNwdSwgcmVncy0+Y3MsIHJlZ3MtPnJpcCwKLSAgICAgICAgICAgICAgIGd1ZXN0 X21vZGUocmVncykgPyBfcChyZWdzLT5yaXApIDogTlVMTCk7CisgICAgICAgIHByaW50ayhYRU5M T0dfRVJSICJDUFUlZCBAICUwNHg6JTA4bHggKCVwUylcbiIsIGNwdSwgcmVncy0+Y3MsCisgICAg ICAgICAgICAgICByZWdzLT5yaXAsIGd1ZXN0X21vZGUocmVncykgPyBfcChyZWdzLT5yaXApIDog TlVMTCk7CiAgICAgY3B1bWFza19jbGVhcl9jcHUoY3B1LCAmc2hvd19zdGF0ZV9tYXNrKTsKIAog ICAgIHJldHVybiAxOwpAQCAtNjI4LDcgKzYyOCw3IEBAIGNvbnN0IGNoYXIgKnRyYXBzdHIodW5z aWduZWQgaW50IHRyYXBucikKICAqIGFyZSBkaXNhYmxlZCkuIEluIHN1Y2ggc2l0dWF0aW9ucyB3 ZSBjYW4ndCBkbyBtdWNoIHRoYXQgaXMgc2FmZS4gV2UgdHJ5IHRvCiAgKiBwcmludCBvdXQgc29t ZSB0cmFjaW5nIGFuZCB0aGVuIHdlIGp1c3Qgc3Bpbi4KICAqLwotdm9pZCBmYXRhbF90cmFwKGNv bnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCBib29sX3Qgc2hvd19yZW1vdGUpCit2b2lk IGZhdGFsX3RyYXAoY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGJvb2wgc2hvd19y ZW1vdGUpCiB7CiAgICAgc3RhdGljIERFRklORV9QRVJfQ1BVKGNoYXIsIGRlcHRoKTsKICAgICB1 bnNpZ25lZCBpbnQgdHJhcG5yID0gcmVncy0+ZW50cnlfdmVjdG9yOwpAQCAtMTA4MSw4ICsxMDgx LDggQEAgdm9pZCBkb19pbnQzKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIHB2X2lu amVjdF9od19leGNlcHRpb24oVFJBUF9pbnQzLCBYODZfRVZFTlRfTk9fRUMpOwogfQogCi1zdGF0 aWMgdm9pZCByZXNlcnZlZF9iaXRfcGFnZV9mYXVsdCgKLSAgICB1bnNpZ25lZCBsb25nIGFkZHIs IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQorc3RhdGljIHZvaWQgcmVzZXJ2ZWRfYml0X3Bh Z2VfZmF1bHQodW5zaWduZWQgbG9uZyBhZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiB7CiAgICAgcHJpbnRrKCIlcHY6 IHJlc2VydmVkIGJpdCBpbiBwYWdlIHRhYmxlIChlYz0lMDRYKVxuIiwKICAgICAgICAgICAgY3Vy cmVudCwgcmVncy0+ZXJyb3JfY29kZSk7CkBAIC0xMDkwLDggKzEwOTAsOCBAQCBzdGF0aWMgdm9p ZCByZXNlcnZlZF9iaXRfcGFnZV9mYXVsdCgKICAgICBzaG93X2V4ZWN1dGlvbl9zdGF0ZShyZWdz KTsKIH0KIAotc3RhdGljIGludCBoYW5kbGVfZ2R0X2xkdF9tYXBwaW5nX2ZhdWx0KAotICAgIHVu c2lnbmVkIGxvbmcgb2Zmc2V0LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKK3N0YXRpYyBp bnQgaGFuZGxlX2dkdF9sZHRfbWFwcGluZ19mYXVsdCh1bnNpZ25lZCBsb25nIG9mZnNldCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncykKIHsKICAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7CiAgICAgLyogV2hp Y2ggdmNwdSdzIGFyZWEgZGlkIHdlIGZhdWx0IGluLCBhbmQgaXMgaXQgaW4gdGhlIGxkdCBzdWIt YXJlYT8gKi8KQEAgLTExNTksOCArMTE1OSw4IEBAIGVudW0gcGZfdHlwZSB7CiAgICAgc3B1cmlv dXNfZmF1bHQKIH07CiAKLXN0YXRpYyBlbnVtIHBmX3R5cGUgX19wYWdlX2ZhdWx0X3R5cGUoCi0g ICAgdW5zaWduZWQgbG9uZyBhZGRyLCBjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykK K3N0YXRpYyBlbnVtIHBmX3R5cGUgX19wYWdlX2ZhdWx0X3R5cGUodW5zaWduZWQgbG9uZyBhZGRy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1 X3VzZXJfcmVncyAqcmVncykKIHsKICAgICB1bnNpZ25lZCBsb25nIG1mbiwgY3IzID0gcmVhZF9j cjMoKTsKICAgICBsNF9wZ2VudHJ5X3QgbDRlLCAqbDR0OwpAQCAtMTI2Niw4ICsxMjY2LDggQEAg bGVhZjoKICAgICByZXR1cm4gc3B1cmlvdXNfZmF1bHQ7CiB9CiAKLXN0YXRpYyBlbnVtIHBmX3R5 cGUgc3B1cmlvdXNfcGFnZV9mYXVsdCgKLSAgICB1bnNpZ25lZCBsb25nIGFkZHIsIGNvbnN0IHN0 cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQorc3RhdGljIGVudW0gcGZfdHlwZSBzcHVyaW91c19w YWdlX2ZhdWx0KHVuc2lnbmVkIGxvbmcgYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKICAgICB1 bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIGVudW0gcGZfdHlwZSBwZl90eXBlOwpAQCAtMTM3Niw3 ICsxMzc2LDggQEAgdm9pZCBkb19wYWdlX2ZhdWx0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz KQogICAgICAgICBpZiAoIChwZl90eXBlID09IHNtZXBfZmF1bHQpIHx8IChwZl90eXBlID09IHNt YXBfZmF1bHQpICkKICAgICAgICAgewogICAgICAgICAgICAgY29uc29sZV9zdGFydF9zeW5jKCk7 Ci0gICAgICAgICAgICBwcmludGsoIlhlbiBTTSVjUCB2aW9sYXRpb25cbiIsIChwZl90eXBlID09 IHNtZXBfZmF1bHQpID8gJ0UnIDogJ0EnKTsKKyAgICAgICAgICAgIHByaW50aygiWGVuIFNNJWNQ IHZpb2xhdGlvblxuIiwKKyAgICAgICAgICAgICAgICAgICAocGZfdHlwZSA9PSBzbWVwX2ZhdWx0 KSA/ICdFJyA6ICdBJyk7CiAgICAgICAgICAgICBmYXRhbF90cmFwKHJlZ3MsIDApOwogICAgICAg ICB9CiAKQEAgLTE0MjYsOSArMTQyNyw5IEBAIHZvaWQgZG9fcGFnZV9mYXVsdChzdHJ1Y3QgY3B1 X3VzZXJfcmVncyAqcmVncykKIAogLyoKICAqIEVhcmx5ICNQRiBoYW5kbGVyIHRvIHByaW50IENS MiwgZXJyb3IgY29kZSwgYW5kIHN0YWNrLgotICogCisgKgogICogV2UgYWxzbyBkZWFsIHdpdGgg c3B1cmlvdXMgZmF1bHRzIGhlcmUsIGV2ZW4gdGhvdWdoIHRoZXkgc2hvdWxkIG5ldmVyIGhhcHBl bgotICogZHVyaW5nIGVhcmx5IGJvb3QgKGFuIGlzc3VlIHdhcyBzZWVuIG9uY2UsIGJ1dCB3YXMg bW9zdCBsaWtlbHkgYSBoYXJkd2FyZSAKKyAqIGR1cmluZyBlYXJseSBib290IChhbiBpc3N1ZSB3 YXMgc2VlbiBvbmNlLCBidXQgd2FzIG1vc3QgbGlrZWx5IGEgaGFyZHdhcmUKICAqIHByb2JsZW0p LgogICovCiB2b2lkIF9faW5pdCBkb19lYXJseV9wYWdlX2ZhdWx0KHN0cnVjdCBjcHVfdXNlcl9y ZWdzICpyZWdzKQpAQCAtMTQ3Miw3ICsxNDczLDcgQEAgdm9pZCBkb19nZW5lcmFsX3Byb3RlY3Rp b24oc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAKICAgICAvKgogICAgICAqIEN1bm5pbmcg dHJpY2sgdG8gYWxsb3cgYXJiaXRyYXJ5ICJJTlQgbiIgaGFuZGxpbmcuCi0gICAgICogCisgICAg ICoKICAgICAgKiBXZSBzZXQgRFBMID09IDAgb24gYWxsIHZlY3RvcnMgaW4gdGhlIElEVC4gVGhp cyBwcmV2ZW50cyBhbnkgSU5UIDxuPgogICAgICAqIGluc3RydWN0aW9uIGZyb20gdHJhcHBpbmcg dG8gdGhlIGFwcHJvcHJpYXRlIHZlY3Rvciwgd2hlbiB0aGF0IG1pZ2h0IG5vdAogICAgICAqIGJl IGV4cGVjdGVkIGJ5IFhlbiBvciB0aGUgZ3Vlc3QgT1MuIEZvciBleGFtcGxlLCB0aGF0IGVudHJ5 IG1pZ2h0IGJlIGZvcgpAQCAtMTQ4MCwxMiArMTQ4MSwxMiBAQCB2b2lkIGRvX2dlbmVyYWxfcHJv dGVjdGlvbihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgKiBleHBlY3QgYW4gZXJy b3IgY29kZSBvbiB0aGUgc3RhY2sgKHdoaWNoIGEgc29mdHdhcmUgdHJhcCBuZXZlcgogICAgICAq IHByb3ZpZGVzKSwgb3IgbWlnaHQgYmUgYSBoYXJkd2FyZSBpbnRlcnJ1cHQgaGFuZGxlciB0aGF0 IGRvZXNuJ3QgbGlrZQogICAgICAqIGJlaW5nIGNhbGxlZCBzcHVyaW91c2x5LgotICAgICAqIAor ICAgICAqCiAgICAgICogSW5zdGVhZCwgYSBHUEYgb2NjdXJzIHdpdGggdGhlIGZhdWx0aW5nIElE VCB2ZWN0b3IgaW4gdGhlIGVycm9yIGNvZGUuCi0gICAgICogQml0IDEgaXMgc2V0IHRvIGluZGlj YXRlIHRoYXQgYW4gSURUIGVudHJ5IGNhdXNlZCB0aGUgZmF1bHQuIEJpdCAwIGlzIAorICAgICAq IEJpdCAxIGlzIHNldCB0byBpbmRpY2F0ZSB0aGF0IGFuIElEVCBlbnRyeSBjYXVzZWQgdGhlIGZh dWx0LiBCaXQgMCBpcwogICAgICAqIGNsZWFyICh3aGljaCBnb3QgYWxyZWFkeSBjaGVja2VkIGFi b3ZlKSB0byBpbmRpY2F0ZSB0aGF0IGl0J3MgYSBzb2Z0d2FyZQogICAgICAqIGZhdWx0LCBub3Qg YSBoYXJkd2FyZSBvbmUuCi0gICAgICogCisgICAgICoKICAgICAgKiBOT1RFOiBWZWN0b3JzIDMg YW5kIDQgYXJlIGRlYWx0IHdpdGggZnJvbSB0aGVpciBvd24gaGFuZGxlci4gVGhpcyBpcwogICAg ICAqIG9rYXkgYmVjYXVzZSB0aGV5IGNhbiBvbmx5IGJlIHRyaWdnZXJlZCBieSBhbiBleHBsaWNp dCBEUEwtY2hlY2tlZAogICAgICAqIGluc3RydWN0aW9uLiBUaGUgRFBMIHNwZWNpZmllZCBieSB0 aGUgZ3Vlc3QgT1MgZm9yIHRoZXNlIHZlY3RvcnMgaXMgTk9UCkBAIC0xNjMxLDcgKzE2MzIsOCBA QCBzdGF0aWMgdm9pZCBpb19jaGVja19lcnJvcihjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncykKICAgICBvdXRiKChpbmIoMHg2MSkgJiAweDA3KSB8IDB4MDAsIDB4NjEpOyAvKiBlbmFi bGUgSU9DSyAqLwogfQogCi1zdGF0aWMgdm9pZCB1bmtub3duX25taV9lcnJvcihjb25zdCBzdHJ1 Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdW5zaWduZWQgY2hhciByZWFzb24pCitzdGF0aWMgdm9p ZCB1bmtub3duX25taV9lcnJvcihjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgcmVhc29uKQogewogICAg IHN3aXRjaCAoIG9wdF9ubWlbMF0gKQogICAgIHsKQEAgLTE2NTEsMTQgKzE2NTMsMTQgQEAgc3Rh dGljIGludCBkdW1teV9ubWlfY2FsbGJhY2soY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl Z3MsIGludCBjcHUpCiB7CiAgICAgcmV0dXJuIDA7CiB9Ci0gCisKIHN0YXRpYyBubWlfY2FsbGJh Y2tfdCAqbm1pX2NhbGxiYWNrID0gZHVtbXlfbm1pX2NhbGxiYWNrOwogCiB2b2lkIGRvX25taShj b25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKICAgICB1bnNpZ25lZCBpbnQgY3B1 ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogICAgIHVuc2lnbmVkIGNoYXIgcmVhc29uOwotICAgIGJv b2xfdCBoYW5kbGVfdW5rbm93biA9IDA7CisgICAgYm9vbCBoYW5kbGVfdW5rbm93biA9IGZhbHNl OwogCiAgICAgKytubWlfY291bnQoY3B1KTsKIApAQCAtMTY2Nyw3ICsxNjY5LDcgQEAgdm9pZCBk b19ubWkoY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAKICAgICBpZiAoIChubWlf d2F0Y2hkb2cgPT0gTk1JX05PTkUpIHx8CiAgICAgICAgICAoIW5taV93YXRjaGRvZ190aWNrKHJl Z3MpICYmIHdhdGNoZG9nX2ZvcmNlKSApCi0gICAgICAgIGhhbmRsZV91bmtub3duID0gMTsKKyAg ICAgICAgaGFuZGxlX3Vua25vd24gPSB0cnVlOwogCiAgICAgLyogT25seSB0aGUgQlNQIGdldHMg ZXh0ZXJuYWwgTk1JcyBmcm9tIHRoZSBzeXN0ZW0uICovCiAgICAgaWYgKCBjcHUgPT0gMCApCkBA IC0xNzg3LDcgKzE3ODksOCBAQCB2b2lkIGRvX2RlYnVnKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpy ZWdzKQogICAgIHJldHVybjsKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IG5vaW5saW5lIF9fc2V0 X2ludHJfZ2F0ZSh1bnNpZ25lZCBpbnQgbiwgdWludDMyX3QgZHBsLCB2b2lkICphZGRyKQorc3Rh dGljIHZvaWQgX19pbml0IG5vaW5saW5lIF9fc2V0X2ludHJfZ2F0ZSh1bnNpZ25lZCBpbnQgbiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZHBs LCB2b2lkICphZGRyKQogewogICAgIF9zZXRfZ2F0ZSgmaWR0X3RhYmxlW25dLCBTWVNfREVTQ19p cnFfZ2F0ZSwgZHBsLCBhZGRyKTsKIH0KQEAgLTE5NjgsMjggKzE5NzEsMjggQEAgbG9uZyBzZXRf ZGVidWdyZWcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxvbmcg dmFsdWUpCiAKICAgICBzd2l0Y2ggKCByZWcgKQogICAgIHsKLSAgICBjYXNlIDA6IAorICAgIGNh c2UgMDoKICAgICAgICAgaWYgKCAhYWNjZXNzX29rKHZhbHVlLCBzaXplb2YobG9uZykpICkKICAg ICAgICAgICAgIHJldHVybiAtRVBFUk07Ci0gICAgICAgIGlmICggdiA9PSBjdXJyICkgCisgICAg ICAgIGlmICggdiA9PSBjdXJyICkKICAgICAgICAgICAgIHdyaXRlX2RlYnVncmVnKDAsIHZhbHVl KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAxOiAKKyAgICBjYXNlIDE6CiAgICAgICAgIGlm ICggIWFjY2Vzc19vayh2YWx1ZSwgc2l6ZW9mKGxvbmcpKSApCiAgICAgICAgICAgICByZXR1cm4g LUVQRVJNOwotICAgICAgICBpZiAoIHYgPT0gY3VyciApIAorICAgICAgICBpZiAoIHYgPT0gY3Vy ciApCiAgICAgICAgICAgICB3cml0ZV9kZWJ1Z3JlZygxLCB2YWx1ZSk7CiAgICAgICAgIGJyZWFr OwotICAgIGNhc2UgMjogCisgICAgY2FzZSAyOgogICAgICAgICBpZiAoICFhY2Nlc3Nfb2sodmFs dWUsIHNpemVvZihsb25nKSkgKQogICAgICAgICAgICAgcmV0dXJuIC1FUEVSTTsKLSAgICAgICAg aWYgKCB2ID09IGN1cnIgKSAKKyAgICAgICAgaWYgKCB2ID09IGN1cnIgKQogICAgICAgICAgICAg d3JpdGVfZGVidWdyZWcoMiwgdmFsdWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDM6CiAg ICAgICAgIGlmICggIWFjY2Vzc19vayh2YWx1ZSwgc2l6ZW9mKGxvbmcpKSApCiAgICAgICAgICAg ICByZXR1cm4gLUVQRVJNOwotICAgICAgICBpZiAoIHYgPT0gY3VyciApIAorICAgICAgICBpZiAo IHYgPT0gY3VyciApCiAgICAgICAgICAgICB3cml0ZV9kZWJ1Z3JlZygzLCB2YWx1ZSk7CiAgICAg ICAgIGJyZWFrOwogICAgIGNhc2UgNjoKQEAgLTE5OTksNyArMjAwMiw3IEBAIGxvbmcgc2V0X2Rl YnVncmVnKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBsb25nIHZh bHVlKQogICAgICAgICAgKi8KICAgICAgICAgdmFsdWUgJj0gfkRSX1NUQVRVU19SRVNFUlZFRF9a RVJPOyAvKiByZXNlcnZlZCBiaXRzID0+IDAgKi8KICAgICAgICAgdmFsdWUgfD0gIERSX1NUQVRV U19SRVNFUlZFRF9PTkU7ICAvKiByZXNlcnZlZCBiaXRzID0+IDEgKi8KLSAgICAgICAgaWYgKCB2 ID09IGN1cnIgKSAKKyAgICAgICAgaWYgKCB2ID09IGN1cnIgKQogICAgICAgICAgICAgd3JpdGVf ZGVidWdyZWcoNiwgdmFsdWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDc6Ci0tIAoyLjEx LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK