From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH for-next v3 16/22] x86/traps: move callback_op code Date: Thu, 18 May 2017 18:09:58 +0100 Message-ID: <20170518171004.27204-17-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 1dBP2N-0004DO-O1 for xen-devel@lists.xenproject.org; Thu, 18 May 2017 17:16:31 +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 Tm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBj aXRyaXguY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9wdi90cmFwcy5jICAgICB8IDE0OCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYveDg2XzY0 L3RyYXBzLmMgfCAxNDkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDIgZmlsZXMgY2hhbmdlZCwgMTQ4IGluc2VydGlvbnMoKyksIDE0OSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni9wdi90 cmFwcy5jCmluZGV4IGNiOWIzYjE0MjUuLjdjZGVjNzc2MTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9wdi90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi90cmFwcy5jCkBAIC0zMSw2ICsz MSw4IEBACiAjaW5jbHVkZSA8YXNtL3NoYXJlZC5oPgogI2luY2x1ZGUgPGFzbS90cmFwcy5oPgog CisjaW5jbHVkZSA8cHVibGljL2NhbGxiYWNrLmg+CisKIHZvaWQgZG9fZW50cnlfaW50ODIoc3Ry dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiB7CiAgICAgaWYgKCB1bmxpa2VseSh1bnRydXN0ZWRf bXNpKSApCkBAIC00MzIsNiArNDM0LDE1MiBAQCB2b2lkIGluaXRfaW50ODBfZGlyZWN0X3RyYXAo c3RydWN0IHZjcHUgKnYpCiAgICAgICAgIHRiLT5mbGFncyA9IFRCRl9FWENFUFRJT04gfCAoVElf R0VUX0lGKHRpKSA/IFRCRl9JTlRFUlJVUFQgOiAwKTsKIH0KIAorc3RhdGljIGxvbmcgcmVnaXN0 ZXJfZ3Vlc3RfY2FsbGJhY2soc3RydWN0IGNhbGxiYWNrX3JlZ2lzdGVyICpyZWcpCit7CisgICAg bG9uZyByZXQgPSAwOworICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsKKworICAgIGlmICgg IWlzX2Nhbm9uaWNhbF9hZGRyZXNzKHJlZy0+YWRkcmVzcykgKQorICAgICAgICByZXR1cm4gLUVJ TlZBTDsKKworICAgIHN3aXRjaCAoIHJlZy0+dHlwZSApCisgICAgeworICAgIGNhc2UgQ0FMTEJB Q0tUWVBFX2V2ZW50OgorICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuZXZlbnRfY2FsbGJhY2tfZWlw ICAgID0gcmVnLT5hZGRyZXNzOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgQ0FMTEJBQ0tU WVBFX2ZhaWxzYWZlOgorICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuZmFpbHNhZmVfY2FsbGJhY2tf ZWlwID0gcmVnLT5hZGRyZXNzOworICAgICAgICBpZiAoIHJlZy0+ZmxhZ3MgJiBDQUxMQkFDS0Zf bWFza19ldmVudHMgKQorICAgICAgICAgICAgc2V0X2JpdChfVkdDRl9mYWlsc2FmZV9kaXNhYmxl c19ldmVudHMsCisgICAgICAgICAgICAgICAgICAgICZ2LT5hcmNoLnZnY19mbGFncyk7CisgICAg ICAgIGVsc2UKKyAgICAgICAgICAgIGNsZWFyX2JpdChfVkdDRl9mYWlsc2FmZV9kaXNhYmxlc19l dmVudHMsCisgICAgICAgICAgICAgICAgICAgICAgJnYtPmFyY2gudmdjX2ZsYWdzKTsKKyAgICAg ICAgYnJlYWs7CisKKyAgICBjYXNlIENBTExCQUNLVFlQRV9zeXNjYWxsOgorICAgICAgICB2LT5h cmNoLnB2X3ZjcHUuc3lzY2FsbF9jYWxsYmFja19laXAgID0gcmVnLT5hZGRyZXNzOworICAgICAg ICBpZiAoIHJlZy0+ZmxhZ3MgJiBDQUxMQkFDS0ZfbWFza19ldmVudHMgKQorICAgICAgICAgICAg c2V0X2JpdChfVkdDRl9zeXNjYWxsX2Rpc2FibGVzX2V2ZW50cywKKyAgICAgICAgICAgICAgICAg ICAgJnYtPmFyY2gudmdjX2ZsYWdzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2xlYXJf Yml0KF9WR0NGX3N5c2NhbGxfZGlzYWJsZXNfZXZlbnRzLAorICAgICAgICAgICAgICAgICAgICAg ICZ2LT5hcmNoLnZnY19mbGFncyk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBDQUxMQkFD S1RZUEVfc3lzY2FsbDMyOgorICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuc3lzY2FsbDMyX2NhbGxi YWNrX2VpcCA9IHJlZy0+YWRkcmVzczsKKyAgICAgICAgdi0+YXJjaC5wdl92Y3B1LnN5c2NhbGwz Ml9kaXNhYmxlc19ldmVudHMgPQorICAgICAgICAgICAgISEocmVnLT5mbGFncyAmIENBTExCQUNL Rl9tYXNrX2V2ZW50cyk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBDQUxMQkFDS1RZUEVf c3lzZW50ZXI6CisgICAgICAgIHYtPmFyY2gucHZfdmNwdS5zeXNlbnRlcl9jYWxsYmFja19laXAg PSByZWctPmFkZHJlc3M7CisgICAgICAgIHYtPmFyY2gucHZfdmNwdS5zeXNlbnRlcl9kaXNhYmxl c19ldmVudHMgPQorICAgICAgICAgICAgISEocmVnLT5mbGFncyAmIENBTExCQUNLRl9tYXNrX2V2 ZW50cyk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBDQUxMQkFDS1RZUEVfbm1pOgorICAg ICAgICByZXQgPSByZWdpc3Rlcl9ndWVzdF9ubWlfY2FsbGJhY2socmVnLT5hZGRyZXNzKTsKKyAg ICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICByZXQgPSAtRU5PU1lTOworICAg ICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgbG9uZyB1 bnJlZ2lzdGVyX2d1ZXN0X2NhbGxiYWNrKHN0cnVjdCBjYWxsYmFja191bnJlZ2lzdGVyICp1bnJl ZykKK3sKKyAgICBsb25nIHJldDsKKworICAgIHN3aXRjaCAoIHVucmVnLT50eXBlICkKKyAgICB7 CisgICAgY2FzZSBDQUxMQkFDS1RZUEVfZXZlbnQ6CisgICAgY2FzZSBDQUxMQkFDS1RZUEVfZmFp bHNhZmU6CisgICAgY2FzZSBDQUxMQkFDS1RZUEVfc3lzY2FsbDoKKyAgICBjYXNlIENBTExCQUNL VFlQRV9zeXNjYWxsMzI6CisgICAgY2FzZSBDQUxMQkFDS1RZUEVfc3lzZW50ZXI6CisgICAgICAg IHJldCA9IC1FSU5WQUw7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBDQUxMQkFDS1RZUEVf bm1pOgorICAgICAgICByZXQgPSB1bnJlZ2lzdGVyX2d1ZXN0X25taV9jYWxsYmFjaygpOworICAg ICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldCA9IC1FTk9TWVM7CisgICAg ICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKK2xvbmcgZG9fY2FsbGJh Y2tfb3AoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShjb25zdF92b2lkKSBhcmcpCit7 CisgICAgbG9uZyByZXQ7CisKKyAgICBzd2l0Y2ggKCBjbWQgKQorICAgIHsKKyAgICBjYXNlIENB TExCQUNLT1BfcmVnaXN0ZXI6CisgICAgeworICAgICAgICBzdHJ1Y3QgY2FsbGJhY2tfcmVnaXN0 ZXIgcmVnOworCisgICAgICAgIHJldCA9IC1FRkFVTFQ7CisgICAgICAgIGlmICggY29weV9mcm9t X2d1ZXN0KCZyZWcsIGFyZywgMSkgKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgcmV0 ID0gcmVnaXN0ZXJfZ3Vlc3RfY2FsbGJhY2soJnJlZyk7CisgICAgfQorICAgIGJyZWFrOworCisg ICAgY2FzZSBDQUxMQkFDS09QX3VucmVnaXN0ZXI6CisgICAgeworICAgICAgICBzdHJ1Y3QgY2Fs bGJhY2tfdW5yZWdpc3RlciB1bnJlZzsKKworICAgICAgICByZXQgPSAtRUZBVUxUOworICAgICAg ICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmdW5yZWcsIGFyZywgMSkgKQorICAgICAgICAgICAgYnJl YWs7CisKKyAgICAgICAgcmV0ID0gdW5yZWdpc3Rlcl9ndWVzdF9jYWxsYmFjaygmdW5yZWcpOwor ICAgIH0KKyAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldCA9IC1FTk9TWVM7 CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKK2xvbmcgZG9f c2V0X2NhbGxiYWNrcyh1bnNpZ25lZCBsb25nIGV2ZW50X2FkZHJlc3MsCisgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBmYWlsc2FmZV9hZGRyZXNzLAorICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgc3lzY2FsbF9hZGRyZXNzKQoreworICAgIHN0cnVjdCBjYWxs YmFja19yZWdpc3RlciBldmVudCA9IHsKKyAgICAgICAgLnR5cGUgPSBDQUxMQkFDS1RZUEVfZXZl bnQsCisgICAgICAgIC5hZGRyZXNzID0gZXZlbnRfYWRkcmVzcywKKyAgICB9OworICAgIHN0cnVj dCBjYWxsYmFja19yZWdpc3RlciBmYWlsc2FmZSA9IHsKKyAgICAgICAgLnR5cGUgPSBDQUxMQkFD S1RZUEVfZmFpbHNhZmUsCisgICAgICAgIC5hZGRyZXNzID0gZmFpbHNhZmVfYWRkcmVzcywKKyAg ICB9OworICAgIHN0cnVjdCBjYWxsYmFja19yZWdpc3RlciBzeXNjYWxsID0geworICAgICAgICAu dHlwZSA9IENBTExCQUNLVFlQRV9zeXNjYWxsLAorICAgICAgICAuYWRkcmVzcyA9IHN5c2NhbGxf YWRkcmVzcywKKyAgICB9OworCisgICAgcmVnaXN0ZXJfZ3Vlc3RfY2FsbGJhY2soJmV2ZW50KTsK KyAgICByZWdpc3Rlcl9ndWVzdF9jYWxsYmFjaygmZmFpbHNhZmUpOworICAgIHJlZ2lzdGVyX2d1 ZXN0X2NhbGxiYWNrKCZzeXNjYWxsKTsKKworICAgIHJldHVybiAwOworfQorCiAvKgogICogTG9j YWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82 NC90cmFwcy5jIGIveGVuL2FyY2gveDg2L3g4Nl82NC90cmFwcy5jCmluZGV4IGE0ZWEwOWIxYWMu LmRiMjAzNzUwOWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvdHJhcHMuYworKysg Yi94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMKQEAgLTIzLDggKzIzLDYgQEAKICNpbmNsdWRl IDxhc20vc2hhcmVkLmg+CiAjaW5jbHVkZSA8YXNtL2h2bS9odm0uaD4KICNpbmNsdWRlIDxhc20v aHZtL3N1cHBvcnQuaD4KLSNpbmNsdWRlIDxwdWJsaWMvY2FsbGJhY2suaD4KLQogCiBzdGF0aWMg dm9pZCBwcmludF94ZW5faW5mbyh2b2lkKQogewpAQCAtMzM2LDE1MyArMzM0LDYgQEAgdm9pZCBz dWJhcmNoX3BlcmNwdV90cmFwc19pbml0KHZvaWQpCiAgICAgd3Jtc3JsKE1TUl9TWVNDQUxMX01B U0ssIFhFTl9TWVNDQUxMX01BU0spOwogfQogCi1zdGF0aWMgbG9uZyByZWdpc3Rlcl9ndWVzdF9j YWxsYmFjayhzdHJ1Y3QgY2FsbGJhY2tfcmVnaXN0ZXIgKnJlZykKLXsKLSAgICBsb25nIHJldCA9 IDA7Ci0gICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50OwotCi0gICAgaWYgKCAhaXNfY2Fub25p Y2FsX2FkZHJlc3MocmVnLT5hZGRyZXNzKSApCi0gICAgICAgIHJldHVybiAtRUlOVkFMOwotCi0g ICAgc3dpdGNoICggcmVnLT50eXBlICkKLSAgICB7Ci0gICAgY2FzZSBDQUxMQkFDS1RZUEVfZXZl bnQ6Ci0gICAgICAgIHYtPmFyY2gucHZfdmNwdS5ldmVudF9jYWxsYmFja19laXAgICAgPSByZWct PmFkZHJlc3M7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBDQUxMQkFDS1RZUEVfZmFpbHNh ZmU6Ci0gICAgICAgIHYtPmFyY2gucHZfdmNwdS5mYWlsc2FmZV9jYWxsYmFja19laXAgPSByZWct PmFkZHJlc3M7Ci0gICAgICAgIGlmICggcmVnLT5mbGFncyAmIENBTExCQUNLRl9tYXNrX2V2ZW50 cyApCi0gICAgICAgICAgICBzZXRfYml0KF9WR0NGX2ZhaWxzYWZlX2Rpc2FibGVzX2V2ZW50cywK LSAgICAgICAgICAgICAgICAgICAgJnYtPmFyY2gudmdjX2ZsYWdzKTsKLSAgICAgICAgZWxzZQot ICAgICAgICAgICAgY2xlYXJfYml0KF9WR0NGX2ZhaWxzYWZlX2Rpc2FibGVzX2V2ZW50cywKLSAg ICAgICAgICAgICAgICAgICAgICAmdi0+YXJjaC52Z2NfZmxhZ3MpOwotICAgICAgICBicmVhazsK LQotICAgIGNhc2UgQ0FMTEJBQ0tUWVBFX3N5c2NhbGw6Ci0gICAgICAgIHYtPmFyY2gucHZfdmNw dS5zeXNjYWxsX2NhbGxiYWNrX2VpcCAgPSByZWctPmFkZHJlc3M7Ci0gICAgICAgIGlmICggcmVn LT5mbGFncyAmIENBTExCQUNLRl9tYXNrX2V2ZW50cyApCi0gICAgICAgICAgICBzZXRfYml0KF9W R0NGX3N5c2NhbGxfZGlzYWJsZXNfZXZlbnRzLAotICAgICAgICAgICAgICAgICAgICAmdi0+YXJj aC52Z2NfZmxhZ3MpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjbGVhcl9iaXQoX1ZHQ0Zf c3lzY2FsbF9kaXNhYmxlc19ldmVudHMsCi0gICAgICAgICAgICAgICAgICAgICAgJnYtPmFyY2gu dmdjX2ZsYWdzKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIENBTExCQUNLVFlQRV9zeXNj YWxsMzI6Ci0gICAgICAgIHYtPmFyY2gucHZfdmNwdS5zeXNjYWxsMzJfY2FsbGJhY2tfZWlwID0g cmVnLT5hZGRyZXNzOwotICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuc3lzY2FsbDMyX2Rpc2FibGVz X2V2ZW50cyA9Ci0gICAgICAgICAgICAhIShyZWctPmZsYWdzICYgQ0FMTEJBQ0tGX21hc2tfZXZl bnRzKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIENBTExCQUNLVFlQRV9zeXNlbnRlcjoK LSAgICAgICAgdi0+YXJjaC5wdl92Y3B1LnN5c2VudGVyX2NhbGxiYWNrX2VpcCA9IHJlZy0+YWRk cmVzczsKLSAgICAgICAgdi0+YXJjaC5wdl92Y3B1LnN5c2VudGVyX2Rpc2FibGVzX2V2ZW50cyA9 Ci0gICAgICAgICAgICAhIShyZWctPmZsYWdzICYgQ0FMTEJBQ0tGX21hc2tfZXZlbnRzKTsKLSAg ICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIENBTExCQUNLVFlQRV9ubWk6Ci0gICAgICAgIHJldCA9 IHJlZ2lzdGVyX2d1ZXN0X25taV9jYWxsYmFjayhyZWctPmFkZHJlc3MpOwotICAgICAgICBicmVh azsKLQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldCA9IC1FTk9TWVM7Ci0gICAgICAgIGJyZWFr OwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBsb25nIHVucmVnaXN0ZXJf Z3Vlc3RfY2FsbGJhY2soc3RydWN0IGNhbGxiYWNrX3VucmVnaXN0ZXIgKnVucmVnKQotewotICAg IGxvbmcgcmV0OwotCi0gICAgc3dpdGNoICggdW5yZWctPnR5cGUgKQotICAgIHsKLSAgICBjYXNl IENBTExCQUNLVFlQRV9ldmVudDoKLSAgICBjYXNlIENBTExCQUNLVFlQRV9mYWlsc2FmZToKLSAg ICBjYXNlIENBTExCQUNLVFlQRV9zeXNjYWxsOgotICAgIGNhc2UgQ0FMTEJBQ0tUWVBFX3N5c2Nh bGwzMjoKLSAgICBjYXNlIENBTExCQUNLVFlQRV9zeXNlbnRlcjoKLSAgICAgICAgcmV0ID0gLUVJ TlZBTDsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIENBTExCQUNLVFlQRV9ubWk6Ci0gICAg ICAgIHJldCA9IHVucmVnaXN0ZXJfZ3Vlc3Rfbm1pX2NhbGxiYWNrKCk7Ci0gICAgICAgIGJyZWFr OwotCi0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0ID0gLUVOT1NZUzsKLSAgICAgICAgYnJlYWs7 Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotCi1sb25nIGRvX2NhbGxiYWNrX29wKGlu dCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oY29uc3Rfdm9pZCkgYXJnKQotewotICAgIGxv bmcgcmV0OwotCi0gICAgc3dpdGNoICggY21kICkKLSAgICB7Ci0gICAgY2FzZSBDQUxMQkFDS09Q X3JlZ2lzdGVyOgotICAgIHsKLSAgICAgICAgc3RydWN0IGNhbGxiYWNrX3JlZ2lzdGVyIHJlZzsK LQotICAgICAgICByZXQgPSAtRUZBVUxUOwotICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgm cmVnLCBhcmcsIDEpICkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIHJldCA9IHJlZ2lz dGVyX2d1ZXN0X2NhbGxiYWNrKCZyZWcpOwotICAgIH0KLSAgICBicmVhazsKLQotICAgIGNhc2Ug Q0FMTEJBQ0tPUF91bnJlZ2lzdGVyOgotICAgIHsKLSAgICAgICAgc3RydWN0IGNhbGxiYWNrX3Vu cmVnaXN0ZXIgdW5yZWc7Ci0KLSAgICAgICAgcmV0ID0gLUVGQVVMVDsKLSAgICAgICAgaWYgKCBj b3B5X2Zyb21fZ3Vlc3QoJnVucmVnLCBhcmcsIDEpICkKLSAgICAgICAgICAgIGJyZWFrOwotCi0g ICAgICAgIHJldCA9IHVucmVnaXN0ZXJfZ3Vlc3RfY2FsbGJhY2soJnVucmVnKTsKLSAgICB9Ci0g ICAgYnJlYWs7Ci0KLSAgICBkZWZhdWx0OgotICAgICAgICByZXQgPSAtRU5PU1lTOwotICAgICAg ICBicmVhazsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi1sb25nIGRvX3NldF9jYWxs YmFja3ModW5zaWduZWQgbG9uZyBldmVudF9hZGRyZXNzLAotICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgZmFpbHNhZmVfYWRkcmVzcywKLSAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIHN5c2NhbGxfYWRkcmVzcykKLXsKLSAgICBzdHJ1Y3QgY2FsbGJhY2tfcmVn aXN0ZXIgZXZlbnQgPSB7Ci0gICAgICAgIC50eXBlID0gQ0FMTEJBQ0tUWVBFX2V2ZW50LAotICAg ICAgICAuYWRkcmVzcyA9IGV2ZW50X2FkZHJlc3MsCi0gICAgfTsKLSAgICBzdHJ1Y3QgY2FsbGJh Y2tfcmVnaXN0ZXIgZmFpbHNhZmUgPSB7Ci0gICAgICAgIC50eXBlID0gQ0FMTEJBQ0tUWVBFX2Zh aWxzYWZlLAotICAgICAgICAuYWRkcmVzcyA9IGZhaWxzYWZlX2FkZHJlc3MsCi0gICAgfTsKLSAg ICBzdHJ1Y3QgY2FsbGJhY2tfcmVnaXN0ZXIgc3lzY2FsbCA9IHsKLSAgICAgICAgLnR5cGUgPSBD QUxMQkFDS1RZUEVfc3lzY2FsbCwKLSAgICAgICAgLmFkZHJlc3MgPSBzeXNjYWxsX2FkZHJlc3Ms Ci0gICAgfTsKLQotICAgIHJlZ2lzdGVyX2d1ZXN0X2NhbGxiYWNrKCZldmVudCk7Ci0gICAgcmVn aXN0ZXJfZ3Vlc3RfY2FsbGJhY2soJmZhaWxzYWZlKTsKLSAgICByZWdpc3Rlcl9ndWVzdF9jYWxs YmFjaygmc3lzY2FsbCk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQogc3RhdGljIHZvaWQgaHlwZXJj YWxsX3BhZ2VfaW5pdGlhbGlzZV9yaW5nM19rZXJuZWwodm9pZCAqaHlwZXJjYWxsX3BhZ2UpCiB7 CiAgICAgY2hhciAqcDsKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=