From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH for-next v3 22/22] x86: clean up traps.c Date: Thu, 18 May 2017 18:10:04 +0100 Message-ID: <20170518171004.27204-23-wei.liu2@citrix.com> References: <20170518171004.27204-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dBP2H-00049z-6x for xen-devel@lists.xenproject.org; Thu, 18 May 2017 17:16:25 +0000 In-Reply-To: <20170518171004.27204-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 aXggc29tZSBjb2RpbmcKc3R5bGUgaXNzdWVzLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWdu ZWQtb2ZmLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL3g4 Ni90cmFwcy5jIHwgNzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jIGIveGVuL2FyY2gveDg2L3Ry YXBzLmMKaW5kZXggM2NjNGI1Yjc4Yi4uYzFlMjhjZDkyNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L3RyYXBzLmMKKysrIGIveGVuL2FyY2gveDg2L3RyYXBzLmMKQEAgLTEsMTggKzEsMTggQEAK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKICAqIGFyY2gveDg2L3RyYXBzLmMKLSAqIAorICoKICAq IE1vZGlmaWNhdGlvbnMgdG8gTGludXggb3JpZ2luYWwgYXJlIGNvcHlyaWdodCAoYykgMjAwMi0y MDA0LCBLIEEgRnJhc2VyCi0gKiAKKyAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICogaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK ICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhl IExpY2Vuc2UsIG9yCiAgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICog CisgKgogICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCiAgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICogR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqIAorICoKICAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgKiBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgogICovCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCAoKmlvZW11bF9oYW5kbGVfcXVp cmspKAogc3RhdGljIGludCBkZWJ1Z19zdGFja19saW5lcyA9IDIwOwogaW50ZWdlcl9wYXJhbSgi ZGVidWdfc3RhY2tfbGluZXMiLCBkZWJ1Z19zdGFja19saW5lcyk7CiAKLXN0YXRpYyBib29sX3Qg b3B0X2xlcjsKK3N0YXRpYyBib29sIG9wdF9sZXI7CiBib29sZWFuX3BhcmFtKCJsZXIiLCBvcHRf bGVyKTsKIAogI2RlZmluZSBzdGFja193b3Jkc19wZXJfbGluZSA0CkBAIC01MjgsNyArNTI4LDcg QEAgdm9pZCB2Y3B1X3Nob3dfZXhlY3V0aW9uX3N0YXRlKHN0cnVjdCB2Y3B1ICp2KQogfQogCiBz dGF0aWMgY3B1bWFza190IHNob3dfc3RhdGVfbWFzazsKLXN0YXRpYyBib29sX3Qgb3B0X3Nob3df YWxsOworc3RhdGljIGJvb2wgb3B0X3Nob3dfYWxsOwogYm9vbGVhbl9wYXJhbSgiYXN5bmMtc2hv dy1hbGwiLCBvcHRfc2hvd19hbGwpOwogCiBzdGF0aWMgaW50IG5taV9zaG93X2V4ZWN1dGlvbl9z dGF0ZShjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgaW50IGNwdSkKQEAgLTUzOSw4 ICs1MzksOCBAQCBzdGF0aWMgaW50IG5taV9zaG93X2V4ZWN1dGlvbl9zdGF0ZShjb25zdCBzdHJ1 Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgaW50IGNwdSkKICAgICBpZiAoIG9wdF9zaG93X2FsbCAp CiAgICAgICAgIHNob3dfZXhlY3V0aW9uX3N0YXRlKHJlZ3MpOwogICAgIGVsc2UKLSAgICAgICAg cHJpbnRrKFhFTkxPR19FUlIgIkNQVSVkIEAgJTA0eDolMDhseCAoJXBTKVxuIiwgY3B1LCByZWdz LT5jcywgcmVncy0+cmlwLAotICAgICAgICAgICAgICAgZ3Vlc3RfbW9kZShyZWdzKSA/IF9wKHJl Z3MtPnJpcCkgOiBOVUxMKTsKKyAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIkNQVSVkIEAgJTA0 eDolMDhseCAoJXBTKVxuIiwgY3B1LCByZWdzLT5jcywKKyAgICAgICAgICAgICAgIHJlZ3MtPnJp cCwgZ3Vlc3RfbW9kZShyZWdzKSA/IF9wKHJlZ3MtPnJpcCkgOiBOVUxMKTsKICAgICBjcHVtYXNr X2NsZWFyX2NwdShjcHUsICZzaG93X3N0YXRlX21hc2spOwogCiAgICAgcmV0dXJuIDE7CkBAIC01 NjUsNyArNTY1LDcgQEAgY29uc3QgY2hhciAqdHJhcHN0cih1bnNpZ25lZCBpbnQgdHJhcG5yKQog ICogYXJlIGRpc2FibGVkKS4gSW4gc3VjaCBzaXR1YXRpb25zIHdlIGNhbid0IGRvIG11Y2ggdGhh dCBpcyBzYWZlLiBXZSB0cnkgdG8KICAqIHByaW50IG91dCBzb21lIHRyYWNpbmcgYW5kIHRoZW4g d2UganVzdCBzcGluLgogICovCi12b2lkIGZhdGFsX3RyYXAoY29uc3Qgc3RydWN0IGNwdV91c2Vy X3JlZ3MgKnJlZ3MsIGJvb2xfdCBzaG93X3JlbW90ZSkKK3ZvaWQgZmF0YWxfdHJhcChjb25zdCBz dHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgYm9vbCBzaG93X3JlbW90ZSkKIHsKICAgICBzdGF0 aWMgREVGSU5FX1BFUl9DUFUoY2hhciwgZGVwdGgpOwogICAgIHVuc2lnbmVkIGludCB0cmFwbnIg PSByZWdzLT5lbnRyeV92ZWN0b3I7CkBAIC0xMDE4LDggKzEwMTgsOCBAQCB2b2lkIGRvX2ludDMo c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgcHZfaW5qZWN0X2h3X2V4Y2VwdGlvbihU UkFQX2ludDMsIFg4Nl9FVkVOVF9OT19FQyk7CiB9CiAKLXN0YXRpYyB2b2lkIHJlc2VydmVkX2Jp dF9wYWdlX2ZhdWx0KAotICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgc3RydWN0IGNwdV91c2VyX3Jl Z3MgKnJlZ3MpCitzdGF0aWMgdm9pZCByZXNlcnZlZF9iaXRfcGFnZV9mYXVsdCh1bnNpZ25lZCBs b25nIGFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY3B1 X3VzZXJfcmVncyAqcmVncykKIHsKICAgICBwcmludGsoIiVwdjogcmVzZXJ2ZWQgYml0IGluIHBh Z2UgdGFibGUgKGVjPSUwNFgpXG4iLAogICAgICAgICAgICBjdXJyZW50LCByZWdzLT5lcnJvcl9j b2RlKTsKQEAgLTEwMjcsOCArMTAyNyw4IEBAIHN0YXRpYyB2b2lkIHJlc2VydmVkX2JpdF9wYWdl X2ZhdWx0KAogICAgIHNob3dfZXhlY3V0aW9uX3N0YXRlKHJlZ3MpOwogfQogCi1zdGF0aWMgaW50 IGhhbmRsZV9nZHRfbGR0X21hcHBpbmdfZmF1bHQoCi0gICAgdW5zaWduZWQgbG9uZyBvZmZzZXQs IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQorc3RhdGljIGludCBoYW5kbGVfZ2R0X2xkdF9t YXBwaW5nX2ZhdWx0KHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewogICAgIHN0 cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVudDsKICAgICAvKiBXaGljaCB2Y3B1J3MgYXJlYSBkaWQg d2UgZmF1bHQgaW4sIGFuZCBpcyBpdCBpbiB0aGUgbGR0IHN1Yi1hcmVhPyAqLwpAQCAtMTA5Niw4 ICsxMDk2LDggQEAgZW51bSBwZl90eXBlIHsKICAgICBzcHVyaW91c19mYXVsdAogfTsKIAotc3Rh dGljIGVudW0gcGZfdHlwZSBfX3BhZ2VfZmF1bHRfdHlwZSgKLSAgICB1bnNpZ25lZCBsb25nIGFk ZHIsIGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQorc3RhdGljIGVudW0gcGZfdHlw ZSBfX3BhZ2VfZmF1bHRfdHlwZSh1bnNpZ25lZCBsb25nIGFkZHIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQog ewogICAgIHVuc2lnbmVkIGxvbmcgbWZuLCBjcjMgPSByZWFkX2NyMygpOwogICAgIGw0X3BnZW50 cnlfdCBsNGUsICpsNHQ7CkBAIC0xMjAzLDggKzEyMDMsOCBAQCBsZWFmOgogICAgIHJldHVybiBz cHVyaW91c19mYXVsdDsKIH0KIAotc3RhdGljIGVudW0gcGZfdHlwZSBzcHVyaW91c19wYWdlX2Zh dWx0KAotICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3Mg KnJlZ3MpCitzdGF0aWMgZW51bSBwZl90eXBlIHNwdXJpb3VzX3BhZ2VfZmF1bHQodW5zaWduZWQg bG9uZyBhZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7 CiAgICAgZW51bSBwZl90eXBlIHBmX3R5cGU7CkBAIC0xMzEzLDcgKzEzMTMsOCBAQCB2b2lkIGRv X3BhZ2VfZmF1bHQoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgIGlmICggKHBm X3R5cGUgPT0gc21lcF9mYXVsdCkgfHwgKHBmX3R5cGUgPT0gc21hcF9mYXVsdCkgKQogICAgICAg ICB7CiAgICAgICAgICAgICBjb25zb2xlX3N0YXJ0X3N5bmMoKTsKLSAgICAgICAgICAgIHByaW50 aygiWGVuIFNNJWNQIHZpb2xhdGlvblxuIiwgKHBmX3R5cGUgPT0gc21lcF9mYXVsdCkgPyAnRScg OiAnQScpOworICAgICAgICAgICAgcHJpbnRrKCJYZW4gU00lY1AgdmlvbGF0aW9uXG4iLAorICAg ICAgICAgICAgICAgICAgIChwZl90eXBlID09IHNtZXBfZmF1bHQpID8gJ0UnIDogJ0EnKTsKICAg ICAgICAgICAgIGZhdGFsX3RyYXAocmVncywgMCk7CiAgICAgICAgIH0KIApAQCAtMTM2Myw5ICsx MzY0LDkgQEAgdm9pZCBkb19wYWdlX2ZhdWx0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQog CiAvKgogICogRWFybHkgI1BGIGhhbmRsZXIgdG8gcHJpbnQgQ1IyLCBlcnJvciBjb2RlLCBhbmQg c3RhY2suCi0gKiAKKyAqCiAgKiBXZSBhbHNvIGRlYWwgd2l0aCBzcHVyaW91cyBmYXVsdHMgaGVy ZSwgZXZlbiB0aG91Z2ggdGhleSBzaG91bGQgbmV2ZXIgaGFwcGVuCi0gKiBkdXJpbmcgZWFybHkg Ym9vdCAoYW4gaXNzdWUgd2FzIHNlZW4gb25jZSwgYnV0IHdhcyBtb3N0IGxpa2VseSBhIGhhcmR3 YXJlIAorICogZHVyaW5nIGVhcmx5IGJvb3QgKGFuIGlzc3VlIHdhcyBzZWVuIG9uY2UsIGJ1dCB3 YXMgbW9zdCBsaWtlbHkgYSBoYXJkd2FyZQogICogcHJvYmxlbSkuCiAgKi8KIHZvaWQgX19pbml0 IGRvX2Vhcmx5X3BhZ2VfZmF1bHQoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCkBAIC0xNDA5 LDcgKzE0MTAsNyBAQCB2b2lkIGRvX2dlbmVyYWxfcHJvdGVjdGlvbihzdHJ1Y3QgY3B1X3VzZXJf cmVncyAqcmVncykKIAogICAgIC8qCiAgICAgICogQ3VubmluZyB0cmljayB0byBhbGxvdyBhcmJp dHJhcnkgIklOVCBuIiBoYW5kbGluZy4KLSAgICAgKiAKKyAgICAgKgogICAgICAqIFdlIHNldCBE UEwgPT0gMCBvbiBhbGwgdmVjdG9ycyBpbiB0aGUgSURULiBUaGlzIHByZXZlbnRzIGFueSBJTlQg PG4+CiAgICAgICogaW5zdHJ1Y3Rpb24gZnJvbSB0cmFwcGluZyB0byB0aGUgYXBwcm9wcmlhdGUg dmVjdG9yLCB3aGVuIHRoYXQgbWlnaHQgbm90CiAgICAgICogYmUgZXhwZWN0ZWQgYnkgWGVuIG9y IHRoZSBndWVzdCBPUy4gRm9yIGV4YW1wbGUsIHRoYXQgZW50cnkgbWlnaHQgYmUgZm9yCkBAIC0x NDE3LDEyICsxNDE4LDEyIEBAIHZvaWQgZG9fZ2VuZXJhbF9wcm90ZWN0aW9uKHN0cnVjdCBjcHVf dXNlcl9yZWdzICpyZWdzKQogICAgICAqIGV4cGVjdCBhbiBlcnJvciBjb2RlIG9uIHRoZSBzdGFj ayAod2hpY2ggYSBzb2Z0d2FyZSB0cmFwIG5ldmVyCiAgICAgICogcHJvdmlkZXMpLCBvciBtaWdo dCBiZSBhIGhhcmR3YXJlIGludGVycnVwdCBoYW5kbGVyIHRoYXQgZG9lc24ndCBsaWtlCiAgICAg ICogYmVpbmcgY2FsbGVkIHNwdXJpb3VzbHkuCi0gICAgICogCisgICAgICoKICAgICAgKiBJbnN0 ZWFkLCBhIEdQRiBvY2N1cnMgd2l0aCB0aGUgZmF1bHRpbmcgSURUIHZlY3RvciBpbiB0aGUgZXJy b3IgY29kZS4KLSAgICAgKiBCaXQgMSBpcyBzZXQgdG8gaW5kaWNhdGUgdGhhdCBhbiBJRFQgZW50 cnkgY2F1c2VkIHRoZSBmYXVsdC4gQml0IDAgaXMgCisgICAgICogQml0IDEgaXMgc2V0IHRvIGlu ZGljYXRlIHRoYXQgYW4gSURUIGVudHJ5IGNhdXNlZCB0aGUgZmF1bHQuIEJpdCAwIGlzCiAgICAg ICogY2xlYXIgKHdoaWNoIGdvdCBhbHJlYWR5IGNoZWNrZWQgYWJvdmUpIHRvIGluZGljYXRlIHRo YXQgaXQncyBhIHNvZnR3YXJlCiAgICAgICogZmF1bHQsIG5vdCBhIGhhcmR3YXJlIG9uZS4KLSAg ICAgKiAKKyAgICAgKgogICAgICAqIE5PVEU6IFZlY3RvcnMgMyBhbmQgNCBhcmUgZGVhbHQgd2l0 aCBmcm9tIHRoZWlyIG93biBoYW5kbGVyLiBUaGlzIGlzCiAgICAgICogb2theSBiZWNhdXNlIHRo ZXkgY2FuIG9ubHkgYmUgdHJpZ2dlcmVkIGJ5IGFuIGV4cGxpY2l0IERQTC1jaGVja2VkCiAgICAg ICogaW5zdHJ1Y3Rpb24uIFRoZSBEUEwgc3BlY2lmaWVkIGJ5IHRoZSBndWVzdCBPUyBmb3IgdGhl c2UgdmVjdG9ycyBpcyBOT1QKQEAgLTE2MDEsNyArMTYwMiw4IEBAIHN0YXRpYyB2b2lkIGlvX2No ZWNrX2Vycm9yKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIG91dGIoKGlu YigweDYxKSAmIDB4MDcpIHwgMHgwMCwgMHg2MSk7IC8qIGVuYWJsZSBJT0NLICovCiB9CiAKLXN0 YXRpYyB2b2lkIHVua25vd25fbm1pX2Vycm9yKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpy ZWdzLCB1bnNpZ25lZCBjaGFyIHJlYXNvbikKK3N0YXRpYyB2b2lkIHVua25vd25fbm1pX2Vycm9y KGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgY2hhciByZWFzb24pCiB7CiAgICAgc3dpdGNoICggb3B0X25taVsw XSApCiAgICAgewpAQCAtMTYyMSwxNCArMTYyMywxNCBAQCBzdGF0aWMgaW50IGR1bW15X25taV9j YWxsYmFjayhjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgaW50IGNwdSkKIHsKICAg ICByZXR1cm4gMDsKIH0KLSAKKwogc3RhdGljIG5taV9jYWxsYmFja190ICpubWlfY2FsbGJhY2sg PSBkdW1teV9ubWlfY2FsbGJhY2s7CiAKIHZvaWQgZG9fbm1pKGNvbnN0IHN0cnVjdCBjcHVfdXNl cl9yZWdzICpyZWdzKQogewogICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lk KCk7CiAgICAgdW5zaWduZWQgY2hhciByZWFzb247Ci0gICAgYm9vbF90IGhhbmRsZV91bmtub3du ID0gMDsKKyAgICBib29sIGhhbmRsZV91bmtub3duID0gZmFsc2U7CiAKICAgICArK25taV9jb3Vu dChjcHUpOwogCkBAIC0xNjM3LDcgKzE2MzksNyBAQCB2b2lkIGRvX25taShjb25zdCBzdHJ1Y3Qg Y3B1X3VzZXJfcmVncyAqcmVncykKIAogICAgIGlmICggKG5taV93YXRjaGRvZyA9PSBOTUlfTk9O RSkgfHwKICAgICAgICAgICghbm1pX3dhdGNoZG9nX3RpY2socmVncykgJiYgd2F0Y2hkb2dfZm9y Y2UpICkKLSAgICAgICAgaGFuZGxlX3Vua25vd24gPSAxOworICAgICAgICBoYW5kbGVfdW5rbm93 biA9IHRydWU7CiAKICAgICAvKiBPbmx5IHRoZSBCU1AgZ2V0cyBleHRlcm5hbCBOTUlzIGZyb20g dGhlIHN5c3RlbS4gKi8KICAgICBpZiAoIGNwdSA9PSAwICkKQEAgLTE3NTcsNyArMTc1OSw4IEBA IHZvaWQgZG9fZGVidWcoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgcmV0dXJuOwog fQogCi1zdGF0aWMgdm9pZCBfX2luaXQgbm9pbmxpbmUgX19zZXRfaW50cl9nYXRlKHVuc2lnbmVk IGludCBuLCB1aW50MzJfdCBkcGwsIHZvaWQgKmFkZHIpCitzdGF0aWMgdm9pZCBfX2luaXQgbm9p bmxpbmUgX19zZXRfaW50cl9nYXRlKHVuc2lnbmVkIGludCBuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkcGwsIHZvaWQgKmFkZHIpCiB7CiAg ICAgX3NldF9nYXRlKCZpZHRfdGFibGVbbl0sIFNZU19ERVNDX2lycV9nYXRlLCBkcGwsIGFkZHIp OwogfQpAQCAtMTk0NCwyOCArMTk0NywyOCBAQCBsb25nIHNldF9kZWJ1Z3JlZyhzdHJ1Y3QgdmNw dSAqdiwgdW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgbG9uZyB2YWx1ZSkKIAogICAgIHN3aXRj aCAoIHJlZyApCiAgICAgewotICAgIGNhc2UgMDogCisgICAgY2FzZSAwOgogICAgICAgICBpZiAo ICFhY2Nlc3Nfb2sodmFsdWUsIHNpemVvZihsb25nKSkgKQogICAgICAgICAgICAgcmV0dXJuIC1F UEVSTTsKLSAgICAgICAgaWYgKCB2ID09IGN1cnIgKSAKKyAgICAgICAgaWYgKCB2ID09IGN1cnIg KQogICAgICAgICAgICAgd3JpdGVfZGVidWdyZWcoMCwgdmFsdWUpOwogICAgICAgICBicmVhazsK LSAgICBjYXNlIDE6IAorICAgIGNhc2UgMToKICAgICAgICAgaWYgKCAhYWNjZXNzX29rKHZhbHVl LCBzaXplb2YobG9uZykpICkKICAgICAgICAgICAgIHJldHVybiAtRVBFUk07Ci0gICAgICAgIGlm ICggdiA9PSBjdXJyICkgCisgICAgICAgIGlmICggdiA9PSBjdXJyICkKICAgICAgICAgICAgIHdy aXRlX2RlYnVncmVnKDEsIHZhbHVlKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAyOiAKKyAg ICBjYXNlIDI6CiAgICAgICAgIGlmICggIWFjY2Vzc19vayh2YWx1ZSwgc2l6ZW9mKGxvbmcpKSAp CiAgICAgICAgICAgICByZXR1cm4gLUVQRVJNOwotICAgICAgICBpZiAoIHYgPT0gY3VyciApIAor ICAgICAgICBpZiAoIHYgPT0gY3VyciApCiAgICAgICAgICAgICB3cml0ZV9kZWJ1Z3JlZygyLCB2 YWx1ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMzoKICAgICAgICAgaWYgKCAhYWNjZXNz X29rKHZhbHVlLCBzaXplb2YobG9uZykpICkKICAgICAgICAgICAgIHJldHVybiAtRVBFUk07Ci0g ICAgICAgIGlmICggdiA9PSBjdXJyICkgCisgICAgICAgIGlmICggdiA9PSBjdXJyICkKICAgICAg ICAgICAgIHdyaXRlX2RlYnVncmVnKDMsIHZhbHVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz ZSA2OgpAQCAtMTk3NSw3ICsxOTc4LDcgQEAgbG9uZyBzZXRfZGVidWdyZWcoc3RydWN0IHZjcHUg KnYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxvbmcgdmFsdWUpCiAgICAgICAgICAqLwog ICAgICAgICB2YWx1ZSAmPSB+RFJfU1RBVFVTX1JFU0VSVkVEX1pFUk87IC8qIHJlc2VydmVkIGJp dHMgPT4gMCAqLwogICAgICAgICB2YWx1ZSB8PSAgRFJfU1RBVFVTX1JFU0VSVkVEX09ORTsgIC8q IHJlc2VydmVkIGJpdHMgPT4gMSAqLwotICAgICAgICBpZiAoIHYgPT0gY3VyciApIAorICAgICAg ICBpZiAoIHYgPT0gY3VyciApCiAgICAgICAgICAgICB3cml0ZV9kZWJ1Z3JlZyg2LCB2YWx1ZSk7 CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgNzoKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=