From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 02/27] x86/cpuid: Introduce guest_cpuid() and struct cpuid_leaf Date: Wed, 4 Jan 2017 12:39:19 +0000 Message-ID: <1483533584-8015-3-git-send-email-andrew.cooper3@citrix.com> References: <1483533584-8015-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1483533584-8015-1-git-send-email-andrew.cooper3@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: Kevin Tian , Jan Beulich , Andrew Cooper , Paul Durrant , Jun Nakajima , Boris Ostrovsky , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org TG9uZ3Rlcm0sIHB2X2NwdWlkKCkgYW5kIGh2bV9jcHVpZCgpIHdpbGwgYmUgbWVyZ2VkIGludG8g YSBzaW5nbGUKZ3Vlc3RfY3B1aWQoKSwgd2hpY2ggaXMgYWxzbyBjYXBhYmxlIG9mIHdvcmtpbmcg b3V0c2lkZSBvZiBjdXJyZW50IGNvbnRleHQuCgpUbyBhaWQgdGhpcyB0cmFuc3Rpb24sIGludHJv ZHVjZSBndWVzdF9jcHVpZCgpIHdpdGggdGhlIGludGVuZGVkIEFQSSwgd2hpY2gKc2ltcGx5IGRl ZmVycyBiYWNrIHRvIHB2X2NwdWlkKCkgb3IgaHZtX2NwdWlkKCkgYXMgYXBwcm9wcmlhdGUuCgpJ bnRyb2R1Y2Ugc3RydWN0IGNwdWlkX2xlYWYgd2hpY2ggaXMgdXNlZCB0byByZXByZXNlbnQgdGhl IHJlc3VsdHMgb2YgYSBDUFVJRApxdWVyeSBpbiBhIG1vcmUgZWZmaWNpZW50IG1hbm5vciB0aGFu IHBhc3NpbmcgZm91ciBwb2ludGVycyB0aHJvdWdoIHRoZQpjYWxsdHJlZS4KClVwZGF0ZSBhbGwg Y29kZXBhdGhzIHdoaWNoIHNob3VsZCB1c2UgdGhlIG5ldyBndWVzdF9jcHVpZCgpIEFQSS4gIFRo ZXNlIGFyZQp0aGUgY29kZXBhdGhzIHdoaWNoIGhhdmUgdmFyaWFibGUgaW5wdXRzLCBhbmQgKG90 aGVyIHRoYW4gc29tZSBzcGVjaWZpYwp4ODZfZW11bGF0ZSgpIGNhc2VzKSBhbGwgcGVydGFpbiB0 byBzZXJ2aWNpbmcgYSBDUFVJRCBpbnN0cnVjdGlvbiBmcm9tIGEKZ3Vlc3QuCgpUaGUgb3RoZXIg Y29kZXBhdGhzIHVzaW5nIHtwdixodm19X2NwdWlkKCkgd2l0aCBmaXhlZCBpbnB1dHMgd2lsbCBs YXRlciBiZQphZGp1c3RlZCB0byByZWFkIHRoZWlyIGRhdGEgc3RyYWlnaHQgZnJvbSB0aGUgcG9s aWN5IGJsb2NrLgoKTm8gaW50ZW5kZWQgZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5 OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBC ZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50 QGNpdHJpeC5jb20+CkNDOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkND OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ0M6IEJvcmlzIE9zdHJvdnNreSA8 Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+CkNDOiBTdXJhdmVlIFN1dGhpa3VscGFuaXQgPHN1 cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQuY29tPgoKSmFuOiBJIG5vdGUgdGhhdCB0aGlzIHBhdGNo IHRleHR1cmFsbHkgY29uZmxpY3RzIHdpdGggeW91ciByZWdpc3RlciByZW5hbWluZwpzZXJpZXMu Ci0tLQogdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4Nl9lbXVsYXRlLmMgfCAxNSArKysrLS0t LS0KIHRvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODZfZW11bGF0ZS5oIHwgNjAgKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2NwdWlkLmMgICAgICAgICAg ICAgICAgICAgfCAzMyArKysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYvaHZtL2VtdWxh dGUuYyAgICAgICAgICAgICB8IDEwICsrLS0tLQogeGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMg ICAgICAgICAgICAgfCAyMyArKysrKystLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bXgu YyAgICAgICAgICAgICB8IDM1ICsrKysrKy0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvdHJh cHMuYyAgICAgICAgICAgICAgICAgICB8IDI2ICsrKysrKystLS0tLS0tLQogeGVuL2FyY2gveDg2 L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMgfCAzMSArKysrKysrKystLS0tLS0tLS0KIHhlbi9h cmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5oIHwgMTIgKysrKy0tLQogeGVuL2luY2x1 ZGUvYXNtLXg4Ni9jcHVpZC5oICAgICAgICAgICAgfCAgNCArKysKIHhlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL2VtdWxhdGUuaCAgICAgIHwgIDggKystLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvbW0u aCAgICAgICAgICAgICAgIHwgIDQgKy0tCiAxMiBmaWxlcyBjaGFuZ2VkLCAxMzUgaW5zZXJ0aW9u cygrKSwgMTI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVs YXRvci94ODZfZW11bGF0ZS5jIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4Nl9lbXVsYXRl LmMKaW5kZXggN2Y2NDRkMzgxLi4xNjVmOThhIDEwMDY0NAotLS0gYS90b29scy90ZXN0cy94ODZf ZW11bGF0b3IveDg2X2VtdWxhdGUuYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IveDg2 X2VtdWxhdGUuYwpAQCAtMzksMjIgKzM5LDIxIEBAIGJvb2wgZW11bF90ZXN0X21ha2Vfc3RhY2tf ZXhlY3V0YWJsZSh2b2lkKQogfQogCiBpbnQgZW11bF90ZXN0X2NwdWlkKAotICAgIHVuc2lnbmVk IGludCAqZWF4LAotICAgIHVuc2lnbmVkIGludCAqZWJ4LAotICAgIHVuc2lnbmVkIGludCAqZWN4 LAotICAgIHVuc2lnbmVkIGludCAqZWR4LAorICAgIHVuc2lnbmVkIGludCBsZWFmLAorICAgIHVu c2lnbmVkIGludCBzdWJsZWFmLAorICAgIHN0cnVjdCBjcHVpZF9sZWFmICpyZXMsCiAgICAgc3Ry dWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiB7Ci0gICAgdW5zaWduZWQgaW50IGxlYWYgPSAq ZWF4OwotCi0gICAgYXNtICgiY3B1aWQiIDogIithIiAoKmVheCksICIrYyIgKCplY3gpLCAiPWQi ICgqZWR4KSwgIj1iIiAoKmVieCkpOworICAgIGFzbSAoImNwdWlkIgorICAgICAgICAgOiAiPWEi IChyZXMtPmEpLCAiPWIiIChyZXMtPmIpLCAiPWMiIChyZXMtPmMpLCAiPWQiIChyZXMtPmQpCisg ICAgICAgICA6ICJhIiAobGVhZiksICJjIiAoc3VibGVhZikpOwogCiAgICAgLyoKICAgICAgKiBU aGUgZW11bGF0b3IgZG9lc24ndCBpdHNlbGYgdXNlIE1PVkJFLCBzbyB3ZSBjYW4gYWx3YXlzIHJ1 biB0aGUKICAgICAgKiByZXNwZWN0aXZlIHRlc3RzLgogICAgICAqLwogICAgIGlmICggbGVhZiA9 PSAxICkKLSAgICAgICAgKmVjeCB8PSAxVSA8PCAyMjsKKyAgICAgICAgcmVzLT5jIHw9IDFVIDw8 IDIyOwogCiAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKIH0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rl c3RzL3g4Nl9lbXVsYXRvci94ODZfZW11bGF0ZS5oIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9y L3g4Nl9lbXVsYXRlLmgKaW5kZXggYzE0YzYxMy4uZWQ5OTUxYSAxMDA2NDQKLS0tIGEvdG9vbHMv dGVzdHMveDg2X2VtdWxhdG9yL3g4Nl9lbXVsYXRlLmgKKysrIGIvdG9vbHMvdGVzdHMveDg2X2Vt dWxhdG9yL3g4Nl9lbXVsYXRlLmgKQEAgLTU4LDYxICs1OCw1OSBAQCBzdGF0aWMgaW5saW5lIHVp bnQ2NF90IHhnZXRidih1aW50MzJfdCB4Y3IpCiB9CiAKICNkZWZpbmUgY2FjaGVfbGluZV9zaXpl KCkgKHsJCSAgICAgXAotICAgIHVuc2lnbmVkIGludCBlYXggPSAxLCBlYngsIGVjeCA9IDAsIGVk eDsgXAotICAgIGVtdWxfdGVzdF9jcHVpZCgmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4LCBOVUxMKTsg XAotICAgIGVkeCAmICgxVSA8PCAxOSkgPyAoZWJ4ID4+IDUpICYgMHg3ZjggOiAwOyBcCisgICAg c3RydWN0IGNwdWlkX2xlYWYgcmVzOyBcCisgICAgZW11bF90ZXN0X2NwdWlkKDEsIDAsICZyZXMs IE5VTEwpOyBcCisgICAgcmVzLmQgJiAoMVUgPDwgMTkpID8gKHJlcy5iID4+IDUpICYgMHg3Zjgg OiAwOyBcCiB9KQogCiAjZGVmaW5lIGNwdV9oYXNfbW14ICh7IFwKLSAgICB1bnNpZ25lZCBpbnQg ZWF4ID0gMSwgZWN4ID0gMCwgZWR4OyBcCi0gICAgZW11bF90ZXN0X2NwdWlkKCZlYXgsICZlY3gs ICZlY3gsICZlZHgsIE5VTEwpOyBcCi0gICAgKGVkeCAmICgxVSA8PCAyMykpICE9IDA7IFwKKyAg ICBzdHJ1Y3QgY3B1aWRfbGVhZiByZXM7IFwKKyAgICBlbXVsX3Rlc3RfY3B1aWQoMSwgMCwgJnJl cywgTlVMTCk7IFwKKyAgICAocmVzLmQgJiAoMVUgPDwgMjMpKSAhPSAwOyBcCiB9KQogCiAjZGVm aW5lIGNwdV9oYXNfc3NlICh7IFwKLSAgICB1bnNpZ25lZCBpbnQgZWF4ID0gMSwgZWN4ID0gMCwg ZWR4OyBcCi0gICAgZW11bF90ZXN0X2NwdWlkKCZlYXgsICZlY3gsICZlY3gsICZlZHgsIE5VTEwp OyBcCi0gICAgKGVkeCAmICgxVSA8PCAyNSkpICE9IDA7IFwKKyAgICBzdHJ1Y3QgY3B1aWRfbGVh ZiByZXM7IFwKKyAgICBlbXVsX3Rlc3RfY3B1aWQoMSwgMCwgJnJlcywgTlVMTCk7IFwKKyAgICAo cmVzLmQgJiAoMVUgPDwgMjUpKSAhPSAwOyBcCiB9KQogCiAjZGVmaW5lIGNwdV9oYXNfc3NlMiAo eyBcCi0gICAgdW5zaWduZWQgaW50IGVheCA9IDEsIGVjeCA9IDAsIGVkeDsgXAotICAgIGVtdWxf dGVzdF9jcHVpZCgmZWF4LCAmZWN4LCAmZWN4LCAmZWR4LCBOVUxMKTsgXAotICAgIChlZHggJiAo MVUgPDwgMjYpKSAhPSAwOyBcCisgICAgc3RydWN0IGNwdWlkX2xlYWYgcmVzOyBcCisgICAgZW11 bF90ZXN0X2NwdWlkKDEsIDAsICZyZXMsIE5VTEwpOyBcCisgICAgKHJlcy5kICYgKDFVIDw8IDI2 KSkgIT0gMDsgXAogfSkKIAogI2RlZmluZSBjcHVfaGFzX3hzYXZlICh7IFwKLSAgICB1bnNpZ25l ZCBpbnQgZWF4ID0gMSwgZWN4ID0gMDsgXAotICAgIGVtdWxfdGVzdF9jcHVpZCgmZWF4LCAmZWF4 LCAmZWN4LCAmZWF4LCBOVUxMKTsgXAorICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJlczsgXAorICAg IGVtdWxfdGVzdF9jcHVpZCgxLCAwLCAmcmVzLCBOVUxMKTsgXAogICAgIC8qIEludGVudGlvbmFs bHkgY2hlY2tpbmcgT1NYU0FWRSBoZXJlLiAqLyBcCi0gICAgKGVjeCAmICgxVSA8PCAyNykpICE9 IDA7IFwKKyAgICAocmVzLmMgJiAoMVUgPDwgMjcpKSAhPSAwOyBcCiB9KQogCiAjZGVmaW5lIGNw dV9oYXNfYXZ4ICh7IFwKLSAgICB1bnNpZ25lZCBpbnQgZWF4ID0gMSwgZWN4ID0gMDsgXAotICAg IGVtdWxfdGVzdF9jcHVpZCgmZWF4LCAmZWF4LCAmZWN4LCAmZWF4LCBOVUxMKTsgXAotICAgIGlm ICggIShlY3ggJiAoMVUgPDwgMjcpKSB8fCAoKHhnZXRidigwKSAmIDYpICE9IDYpICkgXAotICAg ICAgICBlY3ggPSAwOyBcCi0gICAgKGVjeCAmICgxVSA8PCAyOCkpICE9IDA7IFwKKyAgICBzdHJ1 Y3QgY3B1aWRfbGVhZiByZXM7IFwKKyAgICBlbXVsX3Rlc3RfY3B1aWQoMSwgMCwgJnJlcywgTlVM TCk7IFwKKyAgICBpZiAoICEocmVzLmMgJiAoMVUgPDwgMjcpKSB8fCAoKHhnZXRidigwKSAmIDYp ICE9IDYpICkgXAorICAgICAgICByZXMuYyA9IDA7IFwKKyAgICAocmVzLmMgJiAoMVUgPDwgMjgp KSAhPSAwOyBcCiB9KQogCiAjZGVmaW5lIGNwdV9oYXNfYXZ4MiAoeyBcCi0gICAgdW5zaWduZWQg aW50IGVheCA9IDEsIGVieCwgZWN4ID0gMDsgXAotICAgIGVtdWxfdGVzdF9jcHVpZCgmZWF4LCAm ZWJ4LCAmZWN4LCAmZWF4LCBOVUxMKTsgXAotICAgIGlmICggIShlY3ggJiAoMVUgPDwgMjcpKSB8 fCAoKHhnZXRidigwKSAmIDYpICE9IDYpICkgXAotICAgICAgICBlYnggPSAwOyBcCisgICAgc3Ry dWN0IGNwdWlkX2xlYWYgcmVzOyBcCisgICAgZW11bF90ZXN0X2NwdWlkKDEsIDAsICZyZXMsIE5V TEwpOyBcCisgICAgaWYgKCAhKHJlcy5jICYgKDFVIDw8IDI3KSkgfHwgKCh4Z2V0YnYoMCkgJiA2 KSAhPSA2KSApIFwKKyAgICAgICAgcmVzLmIgPSAwOyBcCiAgICAgZWxzZSB7IFwKLSAgICAgICAg ZWF4ID0gNywgZWN4ID0gMDsgXAotICAgICAgICBlbXVsX3Rlc3RfY3B1aWQoJmVheCwgJmVieCwg JmVjeCwgJmVheCwgTlVMTCk7IFwKKyAgICAgICAgZW11bF90ZXN0X2NwdWlkKDcsIDAsICZyZXMs IE5VTEwpOyBcCiAgICAgfSBcCi0gICAgKGVieCAmICgxVSA8PCA1KSkgIT0gMDsgXAorICAgIChy ZXMuYiAmICgxVSA8PCA1KSkgIT0gMDsgXAogfSkKIAogaW50IGVtdWxfdGVzdF9jcHVpZCgKLSAg ICB1bnNpZ25lZCBpbnQgKmVheCwKLSAgICB1bnNpZ25lZCBpbnQgKmVieCwKLSAgICB1bnNpZ25l ZCBpbnQgKmVjeCwKLSAgICB1bnNpZ25lZCBpbnQgKmVkeCwKKyAgICB1bnNpZ25lZCBpbnQgbGVh ZiwKKyAgICB1bnNpZ25lZCBpbnQgc3VibGVhZiwKKyAgICBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVz LAogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KTsKIAogaW50IGVtdWxfdGVzdF9y ZWFkX2NyKApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdWlkLmMgYi94ZW4vYXJjaC94ODYv Y3B1aWQuYwppbmRleCAzZTg1YTYzLi43Nzk2ZGY2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv Y3B1aWQuYworKysgYi94ZW4vYXJjaC94ODYvY3B1aWQuYwpAQCAtMSw1ICsxLDYgQEAKICNpbmNs dWRlIDx4ZW4vaW5pdC5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KKyNpbmNsdWRlIDx4ZW4vc2No ZWQuaD4KICNpbmNsdWRlIDxhc20vY3B1aWQuaD4KICNpbmNsdWRlIDxhc20vaHZtL2h2bS5oPgog I2luY2x1ZGUgPGFzbS9odm0vdm14L3ZtY3MuaD4KQEAgLTE3LDYgKzE4LDggQEAgdWludDMyX3Qg X19yZWFkX21vc3RseSByYXdfZmVhdHVyZXNldFtGU0NBUElOVFNdOwogdWludDMyX3QgX19yZWFk X21vc3RseSBwdl9mZWF0dXJlc2V0W0ZTQ0FQSU5UU107CiB1aW50MzJfdCBfX3JlYWRfbW9zdGx5 IGh2bV9mZWF0dXJlc2V0W0ZTQ0FQSU5UU107CiAKKyNkZWZpbmUgRU1QVFlfTEVBRiAoc3RydWN0 IGNwdWlkX2xlYWYpe30KKwogc3RhdGljIHZvaWQgX19pbml0IHNhbml0aXNlX2ZlYXR1cmVzZXQo dWludDMyX3QgKmZzKQogewogICAgIC8qIGZvcl9lYWNoX3NldF9iaXQoKSB1c2VzIHVuc2lnbmVk IGxvbmdzLiAgRXh0ZW5kIHdpdGggemVyb2VzLiAqLwpAQCAtMjE1LDYgKzIxOCwzNiBAQCBjb25z dCB1aW50MzJfdCAqIF9faW5pdCBsb29rdXBfZGVlcF9kZXBzKHVpbnQzMl90IGZlYXR1cmUpCiAg ICAgcmV0dXJuIE5VTEw7CiB9CiAKK3ZvaWQgZ3Vlc3RfY3B1aWQoY29uc3Qgc3RydWN0IHZjcHUg KnYsIHVuc2lnbmVkIGludCBsZWFmLAorICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc3Vi bGVhZiwgc3RydWN0IGNwdWlkX2xlYWYgKnJlcykKK3sKKyAgICAqcmVzID0gRU1QVFlfTEVBRjsK KworICAgIC8qIHtwdixodm19X2NwdWlkKCkgaGF2ZSB0aGlzIGV4cGVjdGF0aW9uLiAqLworICAg IEFTU0VSVCh2ID09IGN1cnJlbnQpOworCisgICAgaWYgKCBpc19wdl92Y3B1KHYpIHx8IGlzX3B2 aF92Y3B1KHYpICkKKyAgICB7CisgICAgICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzIHJlZ3MgPSAq Z3Vlc3RfY3B1X3VzZXJfcmVncygpOworCisgICAgICAgIHJlZ3MucmF4ID0gbGVhZjsKKyAgICAg ICAgcmVncy5yY3ggPSBzdWJsZWFmOworCisgICAgICAgIHB2X2NwdWlkKCZyZWdzKTsKKworICAg ICAgICByZXMtPmEgPSByZWdzLl9lYXg7CisgICAgICAgIHJlcy0+YiA9IHJlZ3MuX2VieDsKKyAg ICAgICAgcmVzLT5jID0gcmVncy5fZWN4OworICAgICAgICByZXMtPmQgPSByZWdzLl9lZHg7Cisg ICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIHJlcy0+YyA9IHN1YmxlYWY7CisKKyAgICAg ICAgaHZtX2NwdWlkKGxlYWYsICZyZXMtPmEsICZyZXMtPmIsICZyZXMtPmMsICZyZXMtPmQpOwor ICAgIH0KK30KKwogc3RhdGljIHZvaWQgX19pbml0IF9fbWF5YmVfdW51c2VkIGJ1aWxkX2Fzc2Vy dGlvbnModm9pZCkKIHsKICAgICBCVUlMRF9CVUdfT04oQVJSQVlfU0laRShrbm93bl9mZWF0dXJl cykgIT0gRlNDQVBJTlRTKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5j IGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKaW5kZXggNDFiZDRmNS4uOGQxYmY1MSAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L2h2 bS9lbXVsYXRlLmMKQEAgLTE1NTIsMTIgKzE1NTIsOCBAQCBzdGF0aWMgaW50IGh2bWVtdWxfd2Jp bnZkKAogICAgIHJldHVybiBYODZFTVVMX09LQVk7CiB9CiAKLWludCBodm1lbXVsX2NwdWlkKAot ICAgIHVuc2lnbmVkIGludCAqZWF4LAotICAgIHVuc2lnbmVkIGludCAqZWJ4LAotICAgIHVuc2ln bmVkIGludCAqZWN4LAotICAgIHVuc2lnbmVkIGludCAqZWR4LAotICAgIHN0cnVjdCB4ODZfZW11 bGF0ZV9jdHh0ICpjdHh0KQoraW50IGh2bWVtdWxfY3B1aWQodW5zaWduZWQgaW50IGxlYWYsIHVu c2lnbmVkIGludCBzdWJsZWFmLAorICAgICAgICAgICAgICAgICAgc3RydWN0IGNwdWlkX2xlYWYg KnJlcywgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiB7CiAgICAgLyoKICAgICAgKiB4 ODZfZW11bGF0ZSB1c2VzIHRoaXMgZnVuY3Rpb24gdG8gcXVlcnkgQ1BVIGZlYXR1cmVzIGZvciBp dHMgb3duIGludGVybmFsCkBAIC0xNTY4LDcgKzE1NjQsNyBAQCBpbnQgaHZtZW11bF9jcHVpZCgK ICAgICAgICAgIGh2bV9jaGVja19jcHVpZF9mYXVsdGluZyhjdXJyZW50KSApCiAgICAgICAgIHJl dHVybiBYODZFTVVMX0VYQ0VQVElPTjsKIAotICAgIGh2bV9jcHVpZCgqZWF4LCBlYXgsIGVieCwg ZWN4LCBlZHgpOworICAgIGd1ZXN0X2NwdWlkKGN1cnJlbnQsIGxlYWYsIHN1YmxlYWYsIHJlcyk7 CiAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2h2bS9zdm0vc3ZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwppbmRleCA4OWRhYTM5 Li5kZTIwZjY0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYworKysgYi94 ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwpAQCAtMTU3MiwyMyArMTU3MiwyMCBAQCBzdGF0aWMg dm9pZCBzdm1fZnB1X2RpcnR5X2ludGVyY2VwdCh2b2lkKQogCiBzdGF0aWMgdm9pZCBzdm1fdm1l eGl0X2RvX2NwdWlkKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewotICAgIHVuc2lnbmVk IGludCBlYXgsIGVieCwgZWN4LCBlZHgsIGluc3RfbGVuOworICAgIHN0cnVjdCB2Y3B1ICpjdXJy ID0gY3VycmVudDsKKyAgICB1bnNpZ25lZCBpbnQgaW5zdF9sZW47CisgICAgc3RydWN0IGNwdWlk X2xlYWYgcmVzOwogCi0gICAgaWYgKCAoaW5zdF9sZW4gPSBfX2dldF9pbnN0cnVjdGlvbl9sZW5n dGgoY3VycmVudCwgSU5TVFJfQ1BVSUQpKSA9PSAwICkKKyAgICBpZiAoIChpbnN0X2xlbiA9IF9f Z2V0X2luc3RydWN0aW9uX2xlbmd0aChjdXJyLCBJTlNUUl9DUFVJRCkpID09IDAgKQogICAgICAg ICByZXR1cm47CiAKLSAgICBlYXggPSByZWdzLT5fZWF4OwotICAgIGVieCA9IHJlZ3MtPl9lYng7 Ci0gICAgZWN4ID0gcmVncy0+X2VjeDsKLSAgICBlZHggPSByZWdzLT5fZWR4OwotCi0gICAgaHZt X2NwdWlkKHJlZ3MtPl9lYXgsICZlYXgsICZlYngsICZlY3gsICZlZHgpOwotICAgIEhWTVRSQUNF XzVEKENQVUlELCByZWdzLT5fZWF4LCBlYXgsIGVieCwgZWN4LCBlZHgpOworICAgIGd1ZXN0X2Nw dWlkKGN1cnIsIHJlZ3MtPl9lYXgsIHJlZ3MtPl9lY3gsICZyZXMpOworICAgIEhWTVRSQUNFXzVE KENQVUlELCByZWdzLT5fZWF4LCByZXMuYSwgcmVzLmIsIHJlcy5jLCByZXMuZCk7CiAKLSAgICBy ZWdzLT5yYXggPSBlYXg7Ci0gICAgcmVncy0+cmJ4ID0gZWJ4OwotICAgIHJlZ3MtPnJjeCA9IGVj eDsKLSAgICByZWdzLT5yZHggPSBlZHg7CisgICAgcmVncy0+cmF4ID0gcmVzLmE7CisgICAgcmVn cy0+cmJ4ID0gcmVzLmI7CisgICAgcmVncy0+cmN4ID0gcmVzLmM7CisgICAgcmVncy0+cmR4ID0g cmVzLmQ7CiAKICAgICBfX3VwZGF0ZV9ndWVzdF9laXAocmVncywgaW5zdF9sZW4pOwogfQpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYvaHZtL3Zt eC92bXguYwppbmRleCAxNWQ2NmEyLi5hZGE1MzU4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv aHZtL3ZteC92bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwpAQCAtMjM2MSw4 ICsyMzYxLDkgQEAgc3RhdGljIHZvaWQgdm14X2ZwdV9kaXJ0eV9pbnRlcmNlcHQodm9pZCkKIAog c3RhdGljIGludCB2bXhfZG9fY3B1aWQoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiB7Ci0g ICAgdW5zaWduZWQgaW50IGVheCwgZWJ4LCBlY3gsIGVkeDsKLSAgICB1bnNpZ25lZCBpbnQgbGVh Ziwgc3VibGVhZjsKKyAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7CisgICAgdW5zaWdu ZWQgaW50IGxlYWYgPSByZWdzLT5fZWF4LCBzdWJsZWFmID0gcmVncy0+X2VjeDsKKyAgICBzdHJ1 Y3QgY3B1aWRfbGVhZiByZXM7CiAKICAgICBpZiAoIGh2bV9jaGVja19jcHVpZF9mYXVsdGluZyhj dXJyZW50KSApCiAgICAgewpAQCAtMjM3MCwyMSArMjM3MSwxMyBAQCBzdGF0aWMgaW50IHZteF9k b19jcHVpZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgcmV0dXJuIDE7ICAv KiBEb24ndCBhZHZhbmNlIHRoZSBndWVzdCBJUCEgKi8KICAgICB9CiAKLSAgICBlYXggPSByZWdz LT5lYXg7Ci0gICAgZWJ4ID0gcmVncy0+ZWJ4OwotICAgIGVjeCA9IHJlZ3MtPmVjeDsKLSAgICBl ZHggPSByZWdzLT5lZHg7Ci0KLSAgICBsZWFmID0gcmVncy0+ZWF4OwotICAgIHN1YmxlYWYgPSBy ZWdzLT5lY3g7CisgICAgZ3Vlc3RfY3B1aWQoY3VyciwgbGVhZiwgc3VibGVhZiwgJnJlcyk7Cisg ICAgSFZNVFJBQ0VfNUQoQ1BVSUQsIGxlYWYsIHJlcy5hLCByZXMuYiwgcmVzLmMsIHJlcy5kKTsK IAotICAgIGh2bV9jcHVpZChsZWFmLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKLSAgICBIVk1U UkFDRV81RChDUFVJRCwgbGVhZiwgZWF4LCBlYngsIGVjeCwgZWR4KTsKLQotICAgIHJlZ3MtPmVh eCA9IGVheDsKLSAgICByZWdzLT5lYnggPSBlYng7Ci0gICAgcmVncy0+ZWN4ID0gZWN4OwotICAg IHJlZ3MtPmVkeCA9IGVkeDsKKyAgICByZWdzLT5yYXggPSByZXMuYTsKKyAgICByZWdzLT5yYngg PSByZXMuYjsKKyAgICByZWdzLT5yY3ggPSByZXMuYzsKKyAgICByZWdzLT5yZHggPSByZXMuZDsK IAogICAgIHJldHVybiBodm1fbW9uaXRvcl9jcHVpZChnZXRfaW5zdHJ1Y3Rpb25fbGVuZ3RoKCks IGxlYWYsIHN1YmxlYWYpOwogfQpAQCAtMzU2MiwxNSArMzU1NSw3IEBAIHZvaWQgdm14X3ZtZXhp dF9oYW5kbGVyKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIH0KICAgICBjYXNlIEVY SVRfUkVBU09OX0NQVUlEOgogICAgIHsKLSAgICAgICAgaW50IHJjOwotCi0gICAgICAgIGlmICgg aXNfcHZoX3ZjcHUodikgKQotICAgICAgICB7Ci0gICAgICAgICAgICBwdl9jcHVpZChyZWdzKTsK LSAgICAgICAgICAgIHJjID0gMDsKLSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgICAg ICByYyA9IHZteF9kb19jcHVpZChyZWdzKTsKKyAgICAgICAgaW50IHJjID0gdm14X2RvX2NwdWlk KHJlZ3MpOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIHJjIDwgMCBlcnJvciBpbiBtb25pdG9y L3ZtX2V2ZW50LCBjcmFzaApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3RyYXBzLmMgYi94ZW4v YXJjaC94ODYvdHJhcHMuYwppbmRleCAyZDIxMWQxLi4wMmYyZDVjIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvdHJhcHMuYworKysgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwpAQCAtMTQxMiw2ICsx NDEyLDcgQEAgc3RhdGljIGludCBlbXVsYXRlX2ZvcmNlZF9pbnZhbGlkX29wKHN0cnVjdCBjcHVf dXNlcl9yZWdzICpyZWdzKQogewogICAgIGNoYXIgc2lnWzVdLCBpbnN0clsyXTsKICAgICB1bnNp Z25lZCBsb25nIGVpcCwgcmM7CisgICAgc3RydWN0IGNwdWlkX2xlYWYgcmVzOwogCiAgICAgZWlw ID0gcmVncy0+cmlwOwogCkBAIC0xNDQ0LDcgKzE0NDUsMTIgQEAgc3RhdGljIGludCBlbXVsYXRl X2ZvcmNlZF9pbnZhbGlkX29wKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogCiAgICAgZWlw ICs9IHNpemVvZihpbnN0cik7CiAKLSAgICBwdl9jcHVpZChyZWdzKTsKKyAgICBndWVzdF9jcHVp ZChjdXJyZW50LCByZWdzLT5fZWF4LCByZWdzLT5fZWN4LCAmcmVzKTsKKworICAgIHJlZ3MtPnJh eCA9IHJlcy5hOworICAgIHJlZ3MtPnJieCA9IHJlcy5iOworICAgIHJlZ3MtPnJjeCA9IHJlcy5j OworICAgIHJlZ3MtPnJkeCA9IHJlcy5kOwogCiAgICAgaW5zdHJ1Y3Rpb25fZG9uZShyZWdzLCBl aXApOwogCkBAIC0zMjQ2LDEwICszMjUyLDEwIEBAIHN0YXRpYyBpbnQgcHJpdl9vcF93YmludmQo c3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsK IH0KIAotaW50IHB2X2VtdWxfY3B1aWQodW5zaWduZWQgaW50ICplYXgsIHVuc2lnbmVkIGludCAq ZWJ4LCB1bnNpZ25lZCBpbnQgKmVjeCwKLSAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAq ZWR4LCBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKK2ludCBwdl9lbXVsX2NwdWlkKHVu c2lnbmVkIGludCBsZWFmLCB1bnNpZ25lZCBpbnQgc3VibGVhZiwKKyAgICAgICAgICAgICAgICAg IHN0cnVjdCBjcHVpZF9sZWFmICpyZXMsIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQog ewotICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzIHJlZ3MgPSAqY3R4dC0+cmVnczsKKyAgICBzdHJ1 Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7CiAKICAgICAvKgogICAgICAqIHg4Nl9lbXVsYXRlIHVz ZXMgdGhpcyBmdW5jdGlvbiB0byBxdWVyeSBDUFUgZmVhdHVyZXMgZm9yIGl0cyBvd24KQEAgLTMy NTgsNyArMzI2NCw2IEBAIGludCBwdl9lbXVsX2NwdWlkKHVuc2lnbmVkIGludCAqZWF4LCB1bnNp Z25lZCBpbnQgKmVieCwgdW5zaWduZWQgaW50ICplY3gsCiAgICAgICovCiAgICAgaWYgKCBjdHh0 LT5vcGNvZGUgPT0gWDg2RU1VTF9PUEMoMHgwZiwgMHhhMikgKQogICAgIHsKLSAgICAgICAgY29u c3Qgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OwogCiAgICAgICAgIC8qIElmIGNwdWlkIGZh dWx0aW5nIGlzIGVuYWJsZWQgYW5kIENQTD4wIGxlYXZlIHRoZSAjR1AgdW50b3VjaGVkLiAqLwog ICAgICAgICBpZiAoIGN1cnItPmFyY2guY3B1aWRfZmF1bHRpbmcgJiYKQEAgLTMyNjYsMTYgKzMy NzEsNyBAQCBpbnQgcHZfZW11bF9jcHVpZCh1bnNpZ25lZCBpbnQgKmVheCwgdW5zaWduZWQgaW50 ICplYngsIHVuc2lnbmVkIGludCAqZWN4LAogICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxfRVhD RVBUSU9OOwogICAgIH0KIAotICAgIHJlZ3MuX2VheCA9ICplYXg7Ci0gICAgcmVncy5fZWN4ID0g KmVjeDsKLQotICAgIHB2X2NwdWlkKCZyZWdzKTsKLQotICAgICplYXggPSByZWdzLl9lYXg7Ci0g ICAgKmVieCA9IHJlZ3MuX2VieDsKLSAgICAqZWN4ID0gcmVncy5fZWN4OwotICAgICplZHggPSBy ZWdzLl9lZHg7Ci0KKyAgICBndWVzdF9jcHVpZChjdXJyLCBsZWFmLCBzdWJsZWFmLCByZXMpOwog ICAgIHJldHVybiBYODZFTVVMX09LQVk7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94 ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9l bXVsYXRlLmMKaW5kZXggMzA3NmMwYy4uNDQ1NmRmOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRl L3g4Nl9lbXVsYXRlLmMKQEAgLTEyNjUsMTkgKzEyNjUsMTkgQEAgc3RhdGljIGJvb2wgdmNwdV9o YXMoCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQsCiAgICAgY29uc3Qgc3RydWN0 IHg4Nl9lbXVsYXRlX29wcyAqb3BzKQogewotICAgIHVuc2lnbmVkIGludCBlYnggPSAwLCBlY3gg PSAwLCBlZHggPSAwOworICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJlczsKICAgICBpbnQgcmMgPSBY ODZFTVVMX09LQVk7CiAKICAgICBmYWlsX2lmKCFvcHMtPmNwdWlkKTsKLSAgICByYyA9IG9wcy0+ Y3B1aWQoJmVheCwgJmVieCwgJmVjeCwgJmVkeCwgY3R4dCk7CisgICAgcmMgPSBvcHMtPmNwdWlk KGVheCwgMCwgJnJlcywgY3R4dCk7CiAgICAgaWYgKCByYyA9PSBYODZFTVVMX09LQVkgKQogICAg IHsKICAgICAgICAgc3dpdGNoICggcmVnICkKICAgICAgICAgewotICAgICAgICBjYXNlIEVBWDog cmVnID0gZWF4OyBicmVhazsKLSAgICAgICAgY2FzZSBFQlg6IHJlZyA9IGVieDsgYnJlYWs7Ci0g ICAgICAgIGNhc2UgRUNYOiByZWcgPSBlY3g7IGJyZWFrOwotICAgICAgICBjYXNlIEVEWDogcmVn ID0gZWR4OyBicmVhazsKKyAgICAgICAgY2FzZSBFQVg6IHJlZyA9IHJlcy5hOyBicmVhazsKKyAg ICAgICAgY2FzZSBFQlg6IHJlZyA9IHJlcy5iOyBicmVhazsKKyAgICAgICAgY2FzZSBFQ1g6IHJl ZyA9IHJlcy5jOyBicmVhazsKKyAgICAgICAgY2FzZSBFRFg6IHJlZyA9IHJlcy5kOyBicmVhazsK ICAgICAgICAgZGVmYXVsdDogQlVHKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCAhKHJlZyAm ICgxVSA8PCBiaXQpKSApCkBAIC00NTAyLDE1ICs0NTAyLDE1IEBAIHg4Nl9lbXVsYXRlKAogCiAg ICAgICAgIGNhc2UgMHhmYzogLyogY2x6ZXJvICovCiAgICAgICAgIHsKLSAgICAgICAgICAgIHVu c2lnbmVkIGludCBlYXggPSAxLCBlYnggPSAwLCBkdW1teSA9IDA7CisgICAgICAgICAgICBzdHJ1 Y3QgY3B1aWRfbGVhZiByZXM7CiAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHplcm8gPSAwOwog CiAgICAgICAgICAgICBiYXNlID0gYWRfYnl0ZXMgPT0gOCA/IF9yZWdzLmVheCA6CiAgICAgICAg ICAgICAgICAgICAgYWRfYnl0ZXMgPT0gNCA/ICh1aW50MzJfdClfcmVncy5lYXggOiAodWludDE2 X3QpX3JlZ3MuZWF4OwogICAgICAgICAgICAgbGltaXQgPSAwOwogICAgICAgICAgICAgaWYgKCB2 Y3B1X2hhc19jbGZsdXNoKCkgJiYKLSAgICAgICAgICAgICAgICAgb3BzLT5jcHVpZCgmZWF4LCAm ZWJ4LCAmZHVtbXksICZkdW1teSwgY3R4dCkgPT0gWDg2RU1VTF9PS0FZICkKLSAgICAgICAgICAg ICAgICBsaW1pdCA9ICgoZWJ4ID4+IDgpICYgMHhmZikgKiA4OworICAgICAgICAgICAgICAgICBv cHMtPmNwdWlkKDEsIDAsICZyZXMsIGN0eHQpID09IFg4NkVNVUxfT0tBWSApCisgICAgICAgICAg ICAgICAgbGltaXQgPSAoKHJlcy5iID4+IDgpICYgMHhmZikgKiA4OwogICAgICAgICAgICAgZ2Vu ZXJhdGVfZXhjZXB0aW9uX2lmKGxpbWl0IDwgc2l6ZW9mKGxvbmcpIHx8CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbWl0ICYgKGxpbWl0IC0gMSkpLCBFWENfVUQpOwogICAg ICAgICAgICAgYmFzZSAmPSB+KGxpbWl0IC0gMSk7CkBAIC01MTUwLDE3ICs1MTUwLDE4IEBAIHg4 Nl9lbXVsYXRlKAogICAgICAgICBkc3QudmFsID0gdGVzdF9jYyhiLCBfcmVncy5lZmxhZ3MpOwog ICAgICAgICBicmVhazsKIAotICAgIGNhc2UgWDg2RU1VTF9PUEMoMHgwZiwgMHhhMik6IC8qIGNw dWlkICovIHsKLSAgICAgICAgdW5zaWduZWQgaW50IGVheCA9IF9yZWdzLmVheCwgZWJ4ID0gX3Jl Z3MuZWJ4OwotICAgICAgICB1bnNpZ25lZCBpbnQgZWN4ID0gX3JlZ3MuZWN4LCBlZHggPSBfcmVn cy5lZHg7CisgICAgY2FzZSBYODZFTVVMX09QQygweDBmLCAweGEyKTogLyogY3B1aWQgKi8KKyAg ICB7CisgICAgICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJlczsKKwogICAgICAgICBmYWlsX2lmKG9w cy0+Y3B1aWQgPT0gTlVMTCk7Ci0gICAgICAgIHJjID0gb3BzLT5jcHVpZCgmZWF4LCAmZWJ4LCAm ZWN4LCAmZWR4LCBjdHh0KTsKKyAgICAgICAgcmMgPSBvcHMtPmNwdWlkKF9yZWdzLl9lYXgsIF9y ZWdzLl9lY3gsICZyZXMsIGN0eHQpOwogICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYocmMg PT0gWDg2RU1VTF9FWENFUFRJT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWENf R1AsIDApOyAvKiBDUFVJRCBGYXVsdGluZz8gKi8KICAgICAgICAgaWYgKCByYyAhPSBYODZFTVVM X09LQVkgKQogICAgICAgICAgICAgZ290byBkb25lOwotICAgICAgICBfcmVncy5lYXggPSBlYXg7 IF9yZWdzLmVieCA9IGVieDsKLSAgICAgICAgX3JlZ3MuZWN4ID0gZWN4OyBfcmVncy5lZHggPSBl ZHg7CisgICAgICAgIF9yZWdzLmVheCA9IHJlcy5hOyBfcmVncy5lYnggPSByZXMuYjsKKyAgICAg ICAgX3JlZ3MuZWN4ID0gcmVzLmM7IF9yZWdzLmVkeCA9IHJlcy5kOwogICAgICAgICBicmVhazsK ICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0 ZS5oIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmgKaW5kZXggNzVmNTdi YS4uNzY5YmIzMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVs YXRlLmgKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmgKQEAgLTE2 NCw2ICsxNjQsMTEgQEAgZW51bSB4ODZfZW11bGF0ZV9mcHVfdHlwZSB7CiAgICAgWDg2RU1VTF9G UFVfeW1tICAvKiBBVlgvWE9QIGluc3RydWN0aW9uIHNldCAoJXltbTAtJXltbTcvMTUpICovCiB9 OwogCitzdHJ1Y3QgY3B1aWRfbGVhZgoreworICAgIHVpbnQzMl90IGEsIGIsIGMsIGQ7Cit9Owor CiBzdHJ1Y3QgeDg2X2VtdWxhdGVfc3RhdGU7CiAKIC8qCkBAIC00MTUsMTAgKzQyMCw5IEBAIHN0 cnVjdCB4ODZfZW11bGF0ZV9vcHMKICAgICAgKiAjR1BbMF0uICBVc2VkIHRvIGltcGxlbWVudCBD UFVJRCBmYXVsdGluZy4KICAgICAgKi8KICAgICBpbnQgKCpjcHVpZCkoCi0gICAgICAgIHVuc2ln bmVkIGludCAqZWF4LAotICAgICAgICB1bnNpZ25lZCBpbnQgKmVieCwKLSAgICAgICAgdW5zaWdu ZWQgaW50ICplY3gsCi0gICAgICAgIHVuc2lnbmVkIGludCAqZWR4LAorICAgICAgICB1bnNpZ25l ZCBpbnQgbGVhZiwKKyAgICAgICAgdW5zaWduZWQgaW50IHN1YmxlYWYsCisgICAgICAgIHN0cnVj dCBjcHVpZF9sZWFmICpyZXMsCiAgICAgICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0 KTsKIAogICAgIC8qCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlkLmggYi94 ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlkLmgKaW5kZXggMDVmMmM5YS4uYTY0ODhhZiAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVpZC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14 ODYvY3B1aWQuaApAQCAtMTcsNiArMTcsNyBAQAogCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogI2lu Y2x1ZGUgPHhlbi90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS94ODZfZW11bGF0ZS5oPgogI2luY2x1 ZGUgPHB1YmxpYy9zeXNjdGwuaD4KIAogZXh0ZXJuIGNvbnN0IHVpbnQzMl90IGtub3duX2ZlYXR1 cmVzW0ZTQ0FQSU5UU107CkBAIC02NCw2ICs2NSw5IEBAIGV4dGVybiBzdHJ1Y3QgY3B1aWRtYXNr cyBjcHVpZG1hc2tfZGVmYXVsdHM7CiAvKiBXaGV0aGVyIG9yIG5vdCBjcHVpZCBmYXVsdGluZyBp cyBhdmFpbGFibGUgZm9yIHRoZSBjdXJyZW50IGRvbWFpbi4gKi8KIERFQ0xBUkVfUEVSX0NQVShi b29sLCBjcHVpZF9mYXVsdGluZ19lbmFibGVkKTsKIAordm9pZCBndWVzdF9jcHVpZChjb25zdCBz dHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IGxlYWYsCisgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGludCBzdWJsZWFmLCBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVzKTsKKwogI2VuZGlmIC8qIF9f QVNTRU1CTFlfXyAqLwogI2VuZGlmIC8qICFfX1g4Nl9DUFVJRF9IX18gKi8KIApkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZW11bGF0ZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9odm0vZW11bGF0ZS5oCmluZGV4IDY4YTk1ZTQuLjg4ZTQ4NTYgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL2VtdWxhdGUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS9lbXVsYXRlLmgKQEAgLTU3LDEyICs1Nyw4IEBAIHZvaWQgaHZtX2VtdWxhdGVfaW5pdF9wZXJf aW5zbigKICAgICB1bnNpZ25lZCBpbnQgaW5zbl9ieXRlcyk7CiB2b2lkIGh2bV9lbXVsYXRlX3dy aXRlYmFjaygKICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCAqaHZtZW11bF9jdHh0KTsKLWlu dCBodm1lbXVsX2NwdWlkKAotICAgIHVuc2lnbmVkIGludCAqZWF4LAotICAgIHVuc2lnbmVkIGlu dCAqZWJ4LAotICAgIHVuc2lnbmVkIGludCAqZWN4LAotICAgIHVuc2lnbmVkIGludCAqZWR4LAot ICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KTsKK2ludCBodm1lbXVsX2NwdWlkKHVu c2lnbmVkIGludCBsZWFmLCB1bnNpZ25lZCBpbnQgc3VibGVhZiwKKyAgICAgICAgICAgICAgICAg IHN0cnVjdCBjcHVpZF9sZWFmICpyZXMsIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KTsK IHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyICpodm1lbXVsX2dldF9zZWdfcmVnKAogICAgIGVudW0g eDg2X3NlZ21lbnQgc2VnLAogICAgIHN0cnVjdCBodm1fZW11bGF0ZV9jdHh0ICpodm1lbXVsX2N0 eHQpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oIGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9tbS5oCmluZGV4IGExNTAyOWMuLmQ1NzNjYTEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL2FzbS14ODYvbW0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgKQEAgLTUwNCw4 ICs1MDQsOCBAQCBleHRlcm4gaW50IG1tY2ZnX2ludGVyY2VwdF93cml0ZShlbnVtIHg4Nl9zZWdt ZW50IHNlZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfZGF0YSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBieXRlcywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpj dHh0KTsKLWludCBwdl9lbXVsX2NwdWlkKHVuc2lnbmVkIGludCAqZWF4LCB1bnNpZ25lZCBpbnQg KmVieCwgdW5zaWduZWQgaW50ICplY3gsCi0gICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg KmVkeCwgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpOworaW50IHB2X2VtdWxfY3B1aWQo dW5zaWduZWQgaW50IGxlYWYsIHVuc2lnbmVkIGludCBzdWJsZWFmLAorICAgICAgICAgICAgICAg ICAgc3RydWN0IGNwdWlkX2xlYWYgKnJlcywgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQp OwogCiBpbnQgIHB0d3JfZG9fcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAqLCB1bnNpZ25lZCBsb25n LAogICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNwdV91c2VyX3JlZ3MgKik7Ci0tIAoy LjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=