From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 2/6] x86/vpmu: Move vpmu_do_cpuid() handling into {pv, hvm}_cpuid() Date: Wed, 16 Nov 2016 12:31:46 +0000 Message-ID: <1479299510-700-3-git-send-email-andrew.cooper3@citrix.com> References: <1479299510-700-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: <1479299510-700-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 , Andrew Cooper , Boris Ostrovsky , Jun Nakajima , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyByZWR1Y2VzIHRoZSBuZXQgY29tcGxleGl0eSBvZiBDUFVJRCBoYW5kbGluZyBieSBoYXZp bmcgYWxsIGFkanVzdG1lbnRzIGluCmF0IHRoZSBzYW1lIHBsYWNlLiAgUmVtb3ZlIHRoZSBub3ct dW51c2VkIHZwbXVfZG9fY3B1aWQoKSBpbmZyYXN0cnVjdHVyZS4KClRoaXMgaW52b2x2ZXMgaW50 cm9kdWNpbmcgYSB2cG11X2VuYWJsZWQoKSBwcmVkaWNhdGUsIGFuZCBtYWtpbmcgdGhlIEludGVs CnNwZWNpZmljIFZQTVVfQ1BVX0hBU18qIGNvbnN0YW50cyBwdWJsaWMuCgpTaWduZWQtb2ZmLWJ5 OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBC ZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0 cm92c2t5QG9yYWNsZS5jb20+CkNDOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5j b20+CkNDOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KLS0tCiB4ZW4vYXJjaC94 ODYvY3B1L3ZwbXUuYyAgICAgICB8IDEwIC0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2NwdS92cG11 X2ludGVsLmMgfCA1MiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICB8IDIzICsrKysrKysrKysrKysrKysrKysK IHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jICAgIHwgIDIgLS0KIHhlbi9hcmNoL3g4Ni90cmFw cy5jICAgICAgICAgIHwgMjYgKysrKysrKysrKysrKysrKystLS0tLQogeGVuL2luY2x1ZGUvYXNt LXg4Ni92cG11LmggICAgfCAxMCArKysrLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0 aW9ucygrKSwgNzUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS92 cG11LmMgYi94ZW4vYXJjaC94ODYvY3B1L3ZwbXUuYwppbmRleCAyZjlkZGY2Li5hNTQyZjRkIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L3ZwbXUuYworKysgYi94ZW4vYXJjaC94ODYvY3B1 L3ZwbXUuYwpAQCAtMzQ3LDE2ICszNDcsNiBAQCB2b2lkIHZwbXVfZG9faW50ZXJydXB0KHN0cnVj dCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIH0KIH0KIAotdm9pZCB2cG11X2RvX2NwdWlkKHVu c2lnbmVkIGludCBpbnB1dCwKLSAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmVheCwg dW5zaWduZWQgaW50ICplYngsCi0gICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICplY3gs IHVuc2lnbmVkIGludCAqZWR4KQotewotICAgIHN0cnVjdCB2cG11X3N0cnVjdCAqdnBtdSA9IHZj cHVfdnBtdShjdXJyZW50KTsKLQotICAgIGlmICggdnBtdS0+YXJjaF92cG11X29wcyAmJiB2cG11 LT5hcmNoX3ZwbXVfb3BzLT5kb19jcHVpZCApCi0gICAgICAgIHZwbXUtPmFyY2hfdnBtdV9vcHMt PmRvX2NwdWlkKGlucHV0LCBlYXgsIGVieCwgZWN4LCBlZHgpOwotfQotCiBzdGF0aWMgdm9pZCB2 cG11X3NhdmVfZm9yY2Uodm9pZCAqYXJnKQogewogICAgIHN0cnVjdCB2Y3B1ICp2ID0gKHN0cnVj dCB2Y3B1ICopYXJnOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS92cG11X2ludGVsLmMg Yi94ZW4vYXJjaC94ODYvY3B1L3ZwbXVfaW50ZWwuYwppbmRleCBlODA0OWVkLi5lM2YyNWM4IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L3ZwbXVfaW50ZWwuYworKysgYi94ZW4vYXJjaC94 ODYvY3B1L3ZwbXVfaW50ZWwuYwpAQCAtNjgsMTAgKzY4LDYgQEAKICNkZWZpbmUgTVNSX1BNQ19B TElBU19NQVNLICAgICAgICh+KE1TUl9JQTMyX1BFUkZDVFIwIF4gTVNSX0lBMzJfQV9QRVJGQ1RS MCkpCiBzdGF0aWMgYm9vbF90IF9fcmVhZF9tb3N0bHkgZnVsbF93aWR0aF93cml0ZTsKIAotLyog SW50ZWwtc3BlY2lmaWMgVlBNVSBmZWF0dXJlcyAqLwotI2RlZmluZSBWUE1VX0NQVV9IQVNfRFMg ICAgICAgICAgICAgICAgICAgICAweDEwMCAvKiBIYXMgRGVidWcgU3RvcmUgKi8KLSNkZWZpbmUg VlBNVV9DUFVfSEFTX0JUUyAgICAgICAgICAgICAgICAgICAgMHgyMDAgLyogSGFzIEJyYW5jaCBU cmFjZSBTdG9yZSAqLwotCiAvKgogICogTVNSX0NPUkVfUEVSRl9GSVhFRF9DVFJfQ1RSTCBjb250 YWlucyB0aGUgY29uZmlndXJhdGlvbiBvZiBhbGwgZml4ZWQKICAqIGNvdW50ZXJzLiA0IGJpdHMg Zm9yIGV2ZXJ5IGNvdW50ZXIuCkBAIC03ODIsMzMgKzc3OCw2IEBAIHN0YXRpYyBpbnQgY29yZTJf dnBtdV9kb19yZG1zcih1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCAqbXNyX2NvbnRlbnQpCiAg ICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGNvcmUyX3ZwbXVfZG9fY3B1aWQodW5zaWdu ZWQgaW50IGlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgKmVheCwgdW5zaWduZWQgaW50ICplYngsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCAqZWN4LCB1bnNpZ25lZCBpbnQgKmVkeCkKLXsKLSAgICBzd2l0Y2gg KCBpbnB1dCApCi0gICAgewotICAgIGNhc2UgMHgxOgotCi0gICAgICAgIGlmICggdnBtdV9pc19z ZXQodmNwdV92cG11KGN1cnJlbnQpLCBWUE1VX0NQVV9IQVNfRFMpICkKLSAgICAgICAgewotICAg ICAgICAgICAgLyogU3dpdGNoIG9uIHRoZSAnRGVidWcgU3RvcmUnIGZlYXR1cmUgaW4gQ1BVSUQu RUFYWzFdOkVEWFsyMV0gKi8KLSAgICAgICAgICAgICplZHggfD0gY3B1ZmVhdF9tYXNrKFg4Nl9G RUFUVVJFX0RTKTsKLSAgICAgICAgICAgIGlmICggY3B1X2hhcygmY3VycmVudF9jcHVfZGF0YSwg WDg2X0ZFQVRVUkVfRFRFUzY0KSApCi0gICAgICAgICAgICAgICAgKmVjeCB8PSBjcHVmZWF0X21h c2soWDg2X0ZFQVRVUkVfRFRFUzY0KTsKLSAgICAgICAgICAgIGlmICggY3B1X2hhcygmY3VycmVu dF9jcHVfZGF0YSwgWDg2X0ZFQVRVUkVfRFNDUEwpICkKLSAgICAgICAgICAgICAgICAqZWN4IHw9 IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9EU0NQTCk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJl YWs7Ci0KLSAgICBjYXNlIDB4YToKLSAgICAgICAgLyogUmVwb3J0IGF0IG1vc3QgdmVyc2lvbiAz IHNpbmNlIHRoYXQncyBhbGwgd2UgY3VycmVudGx5IGVtdWxhdGUgKi8KLSAgICAgICAgaWYgKCBN QVNLX0VYVFIoKmVheCwgUE1VX1ZFUlNJT05fTUFTSykgPiAzICkKLSAgICAgICAgICAgICplYXgg PSAoKmVheCAmIH5QTVVfVkVSU0lPTl9NQVNLKSB8IE1BU0tfSU5TUigzLCBQTVVfVkVSU0lPTl9N QVNLKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCiAvKiBEdW1wIHZwbXUgaW5mbyBvbiBj b25zb2xlLCBjYWxsZWQgaW4gdGhlIGNvbnRleHQgb2Yga2V5aGFuZGxlciAncScuICovCiBzdGF0 aWMgdm9pZCBjb3JlMl92cG11X2R1bXAoY29uc3Qgc3RydWN0IHZjcHUgKnYpCiB7CkBAIC05MDAs MzIgKzg2OSwxMiBAQCBzdHJ1Y3QgYXJjaF92cG11X29wcyBjb3JlMl92cG11X29wcyA9IHsKICAg ICAuZG9fd3Jtc3IgPSBjb3JlMl92cG11X2RvX3dybXNyLAogICAgIC5kb19yZG1zciA9IGNvcmUy X3ZwbXVfZG9fcmRtc3IsCiAgICAgLmRvX2ludGVycnVwdCA9IGNvcmUyX3ZwbXVfZG9faW50ZXJy dXB0LAotICAgIC5kb19jcHVpZCA9IGNvcmUyX3ZwbXVfZG9fY3B1aWQsCiAgICAgLmFyY2hfdnBt dV9kZXN0cm95ID0gY29yZTJfdnBtdV9kZXN0cm95LAogICAgIC5hcmNoX3ZwbXVfc2F2ZSA9IGNv cmUyX3ZwbXVfc2F2ZSwKICAgICAuYXJjaF92cG11X2xvYWQgPSBjb3JlMl92cG11X2xvYWQsCiAg ICAgLmFyY2hfdnBtdV9kdW1wID0gY29yZTJfdnBtdV9kdW1wCiB9OwogCi1zdGF0aWMgdm9pZCBj b3JlMl9ub192cG11X2RvX2NwdWlkKHVuc2lnbmVkIGludCBpbnB1dCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICplYXgsIHVuc2lnbmVkIGludCAqZWJ4LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmVjeCwgdW5zaWdu ZWQgaW50ICplZHgpCi17Ci0gICAgLyoKLSAgICAgKiBBcyBpbiB0aGlzIGNhc2UgdGhlIHZwbXUg aXMgbm90IGVuYWJsZWQgcmVzZXQgc29tZSBiaXRzIGluIHRoZQotICAgICAqIGFyY2hpdGVjdHVy YWwgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyByZWxhdGVkIHBhcnQuCi0gICAgICovCi0gICAgaWYg KCBpbnB1dCA9PSAweGEgKQotICAgIHsKLSAgICAgICAgKmVheCAmPSB+UE1VX1ZFUlNJT05fTUFT SzsKLSAgICAgICAgKmVheCAmPSB+UE1VX0dFTkVSQUxfTlJfTUFTSzsKLSAgICAgICAgKmVheCAm PSB+UE1VX0dFTkVSQUxfV0lEVEhfTUFTSzsKLQotICAgICAgICAqZWR4ICY9IH5QTVVfRklYRURf TlJfTUFTSzsKLSAgICAgICAgKmVkeCAmPSB+UE1VX0ZJWEVEX1dJRFRIX01BU0s7Ci0gICAgfQot fQotCiAvKgogICogSWYgaXRzIGEgdnBtdSBtc3Igc2V0IGl0IHRvIDAuCiAgKi8KQEAgLTk0Myw3 ICs4OTIsNiBAQCBzdGF0aWMgaW50IGNvcmUyX25vX3ZwbXVfZG9fcmRtc3IodW5zaWduZWQgaW50 IG1zciwgdWludDY0X3QgKm1zcl9jb250ZW50KQogICovCiBzdHJ1Y3QgYXJjaF92cG11X29wcyBj b3JlMl9ub192cG11X29wcyA9IHsKICAgICAuZG9fcmRtc3IgPSBjb3JlMl9ub192cG11X2RvX3Jk bXNyLAotICAgIC5kb19jcHVpZCA9IGNvcmUyX25vX3ZwbXVfZG9fY3B1aWQsCiB9OwogCiBpbnQg dm14X3ZwbXVfaW5pdGlhbGlzZShzdHJ1Y3QgdmNwdSAqdikKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDcwNGZkNjQuLmFm ZDE0YzQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS9odm0uYwpAQCAtMzQ5MSw2ICszNDkxLDE3IEBAIHZvaWQgaHZtX2NwdWlkKHVuc2ln bmVkIGludCBpbnB1dCwgdW5zaWduZWQgaW50ICplYXgsIHVuc2lnbmVkIGludCAqZWJ4LAogICAg ICAgICAgICAgaWYgKCAhKGh2bV9wYWVfZW5hYmxlZCh2KSB8fCBodm1fbG9uZ19tb2RlX2VuYWJs ZWQodikpICkKICAgICAgICAgICAgICAgICAqZWR4ICY9IH5jcHVmZWF0X21hc2soWDg2X0ZFQVRV UkVfUFNFMzYpOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKCB2cG11X2VuYWJsZWQodikgJiYK KyAgICAgICAgICAgICB2cG11X2lzX3NldCh2Y3B1X3ZwbXUodiksIFZQTVVfQ1BVX0hBU19EUykg KQorICAgICAgICB7CisgICAgICAgICAgICAqZWR4IHw9IGNwdWZlYXRfbWFzayhYODZfRkVBVFVS RV9EUyk7CisgICAgICAgICAgICBpZiAoIGNwdV9oYXMoJmN1cnJlbnRfY3B1X2RhdGEsIFg4Nl9G RUFUVVJFX0RURVM2NCkgKQorICAgICAgICAgICAgICAgICplY3ggfD0gY3B1ZmVhdF9tYXNrKFg4 Nl9GRUFUVVJFX0RURVM2NCk7CisgICAgICAgICAgICBpZiAoIGNwdV9oYXMoJmN1cnJlbnRfY3B1 X2RhdGEsIFg4Nl9GRUFUVVJFX0RTQ1BMKSApCisgICAgICAgICAgICAgICAgKmVjeCB8PSBjcHVm ZWF0X21hc2soWDg2X0ZFQVRVUkVfRFNDUEwpOworICAgICAgICB9CisKICAgICAgICAgYnJlYWs7 CiAKICAgICBjYXNlIDB4NzoKQEAgLTM2MjAsNiArMzYzMSwxOCBAQCB2b2lkIGh2bV9jcHVpZCh1 bnNpZ25lZCBpbnQgaW5wdXQsIHVuc2lnbmVkIGludCAqZWF4LCB1bnNpZ25lZCBpbnQgKmVieCwK ICAgICAgICAgfQogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgMHgwMDAwMDAwYTogLyogQXJj aGl0ZWN0dXJhbCBQZXJmb3JtYW5jZSBNb25pdG9yIEZlYXR1cmVzIChJbnRlbCkgKi8KKyAgICAg ICAgaWYgKCBib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgIT0gWDg2X1ZFTkRPUl9JTlRFTCB8fCAh dnBtdV9lbmFibGVkKHYpICkKKyAgICAgICAgeworICAgICAgICAgICAgKmVheCA9ICplYnggPSAq ZWN4ID0gKmVkeCA9IDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAg IC8qIFJlcG9ydCBhdCBtb3N0IHZlcnNpb24gMyBzaW5jZSB0aGF0J3MgYWxsIHdlIGN1cnJlbnRs eSBlbXVsYXRlICovCisgICAgICAgIGlmICggKCplYXggJiAweGZmKSA+IDMgKQorICAgICAgICAg ICAgKmVheCA9ICgqZWF4ICYgfjB4ZmYpIHwgMzsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNl IDB4ODAwMDAwMDE6CiAgICAgICAgICplY3ggJj0gaHZtX2ZlYXR1cmVzZXRbRkVBVFVSRVNFVF9l MWNdOwogICAgICAgICAqZWR4ICY9IGh2bV9mZWF0dXJlc2V0W0ZFQVRVUkVTRVRfZTFkXTsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92 bXgvdm14LmMKaW5kZXggYTE4ZGIyOC4uMjIzOGQ3NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L2h2bS92bXgvdm14LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKQEAgLTI0MjMs OCArMjQyMyw2IEBAIHN0YXRpYyB2b2lkIHZteF9jcHVpZF9pbnRlcmNlcHQoCiAgICAgICAgICAg ICBicmVhazsKICAgICB9CiAKLSAgICB2cG11X2RvX2NwdWlkKGlucHV0LCBlYXgsIGVieCwgZWN4 LCBlZHgpOwotCiAgICAgSFZNVFJBQ0VfNUQgKENQVUlELCBpbnB1dCwgKmVheCwgKmVieCwgKmVj eCwgKmVkeCk7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jIGIveGVuL2Fy Y2gveDg2L3RyYXBzLmMKaW5kZXggZDU2ZDc2ZS4uNTllNmIxNiAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L3RyYXBzLmMKKysrIGIveGVuL2FyY2gveDg2L3RyYXBzLmMKQEAgLTExMjAsNiArMTEy MCwxNiBAQCB2b2lkIHB2X2NwdWlkKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAg ICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgaWYgKCB2cG11X2VuYWJsZWQoY3VycikgJiYK KyAgICAgICAgICAgICB2cG11X2lzX3NldCh2Y3B1X3ZwbXUoY3VyciksIFZQTVVfQ1BVX0hBU19E UykgKQorICAgICAgICB7CisgICAgICAgICAgICBkIHw9IGNwdWZlYXRfbWFzayhYODZfRkVBVFVS RV9EUyk7CisgICAgICAgICAgICBpZiAoIGNwdV9oYXMoJmN1cnJlbnRfY3B1X2RhdGEsIFg4Nl9G RUFUVVJFX0RURVM2NCkgKQorICAgICAgICAgICAgICAgIGMgfD0gY3B1ZmVhdF9tYXNrKFg4Nl9G RUFUVVJFX0RURVM2NCk7CisgICAgICAgICAgICBpZiAoIGNwdV9oYXMoJmN1cnJlbnRfY3B1X2Rh dGEsIFg4Nl9GRUFUVVJFX0RTQ1BMKSApCisgICAgICAgICAgICAgICAgYyB8PSBjcHVmZWF0X21h c2soWDg2X0ZFQVRVUkVfRFNDUEwpOworICAgICAgICB9CisKICAgICAgICAgYyB8PSBjcHVmZWF0 X21hc2soWDg2X0ZFQVRVUkVfSFlQRVJWSVNPUik7CiAgICAgICAgIGJyZWFrOwogCkBAIC0xMTUx LDYgKzExNjEsMTYgQEAgdm9pZCBwdl9jcHVpZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykK ICAgICAgICAgYSA9IGQgPSAwOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgMHgwMDAwMDAw YTogLyogQXJjaGl0ZWN0dXJhbCBQZXJmb3JtYW5jZSBNb25pdG9yIEZlYXR1cmVzIChJbnRlbCkg Ki8KKyAgICAgICAgaWYgKCBib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgIT0gWDg2X1ZFTkRPUl9J TlRFTCB8fAorICAgICAgICAgICAgICF2cG11X2VuYWJsZWQoY3VycikgKQorICAgICAgICAgICAg Z290byB1bnN1cHBvcnRlZDsKKworICAgICAgICAvKiBSZXBvcnQgYXQgbW9zdCB2ZXJzaW9uIDMg c2luY2UgdGhhdCdzIGFsbCB3ZSBjdXJyZW50bHkgZW11bGF0ZS4gKi8KKyAgICAgICAgaWYgKCAo YSAmIDB4ZmYpID4gMyApCisgICAgICAgICAgICBhID0gKGEgJiB+MHhmZikgfCAzOworICAgICAg ICBicmVhazsKKwogICAgIGNhc2UgWFNUQVRFX0NQVUlEOgogCiAgICAgICAgIGlmICggIWlzX2Nv bnRyb2xfZG9tYWluKGN1cnJkKSAmJiAhaXNfaGFyZHdhcmVfZG9tYWluKGN1cnJkKSApCkBAIC0x MjU2LDkgKzEyNzYsNiBAQCB2b2lkIHB2X2NwdWlkKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz KQogICAgICAgICBiICY9IHB2X2ZlYXR1cmVzZXRbRkVBVFVSRVNFVF9lOGJdOwogICAgICAgICBi cmVhazsKIAotICAgIGNhc2UgMHgwMDAwMDAwYTogLyogQXJjaGl0ZWN0dXJhbCBQZXJmb3JtYW5j ZSBNb25pdG9yIEZlYXR1cmVzIChJbnRlbCkgKi8KLSAgICAgICAgYnJlYWs7Ci0KICAgICBjYXNl IDB4MDAwMDAwMDU6IC8qIE1PTklUT1IvTVdBSVQgKi8KICAgICBjYXNlIDB4MDAwMDAwMGI6IC8q IEV4dGVuZGVkIFRvcG9sb2d5IEVudW1lcmF0aW9uICovCiAgICAgY2FzZSAweDgwMDAwMDBhOiAv KiBTVk0gcmV2aXNpb24gYW5kIGZlYXR1cmVzICovCkBAIC0xMjcxLDkgKzEyODgsNiBAQCB2b2lk IHB2X2NwdWlkKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIH0KIAogIG91dDoKLSAg ICAvKiBWUE1VIG1heSBkZWNpZGUgdG8gbW9kaWZ5IHNvbWUgb2YgdGhlIGxlYXZlcyAqLwotICAg IHZwbXVfZG9fY3B1aWQobGVhZiwgJmEsICZiLCAmYywgJmQpOwotCiAgICAgcmVncy0+ZWF4ID0g YTsKICAgICByZWdzLT5lYnggPSBiOwogICAgIHJlZ3MtPmVjeCA9IGM7CmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20teDg2L3ZwbXUuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvdnBtdS5oCmlu ZGV4IGVkOWVjMDcuLmQxZGRhNGIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvdnBt dS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvdnBtdS5oCkBAIC0yNSw2ICsyNSw3IEBACiAK ICNkZWZpbmUgdmNwdV92cG11KHZjcHUpICAgKCYodmNwdSktPmFyY2gudnBtdSkKICNkZWZpbmUg dnBtdV92Y3B1KHZwbXUpICAgY29udGFpbmVyX29mKCh2cG11KSwgc3RydWN0IHZjcHUsIGFyY2gu dnBtdSkKKyNkZWZpbmUgdnBtdV9lbmFibGVkKHZjcHUpIHZwbXVfaXNfc2V0KHZjcHVfdnBtdSh2 Y3B1KSwgVlBNVV9DT05URVhUX0FMTE9DQVRFRCkKIAogI2RlZmluZSBNU1JfVFlQRV9DT1VOVEVS ICAgICAgICAgICAgMAogI2RlZmluZSBNU1JfVFlQRV9DVFJMICAgICAgICAgICAgICAgMQpAQCAt NDIsOSArNDMsNiBAQCBzdHJ1Y3QgYXJjaF92cG11X29wcyB7CiAgICAgICAgICAgICAgICAgICAg IHVpbnQ2NF90IHN1cHBvcnRlZCk7CiAgICAgaW50ICgqZG9fcmRtc3IpKHVuc2lnbmVkIGludCBt c3IsIHVpbnQ2NF90ICptc3JfY29udGVudCk7CiAgICAgaW50ICgqZG9faW50ZXJydXB0KShzdHJ1 Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7Ci0gICAgdm9pZCAoKmRvX2NwdWlkKSh1bnNpZ25lZCBp bnQgaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmVheCwgdW5zaWdu ZWQgaW50ICplYngsCi0gICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmVjeCwgdW5z aWduZWQgaW50ICplZHgpOwogICAgIHZvaWQgKCphcmNoX3ZwbXVfZGVzdHJveSkoc3RydWN0IHZj cHUgKnYpOwogICAgIGludCAoKmFyY2hfdnBtdV9zYXZlKShzdHJ1Y3QgdmNwdSAqdiwgYm9vbF90 IHRvX2d1ZXN0KTsKICAgICBpbnQgKCphcmNoX3ZwbXVfbG9hZCkoc3RydWN0IHZjcHUgKnYsIGJv b2xfdCBmcm9tX2d1ZXN0KTsKQEAgLTc3LDYgKzc1LDEwIEBAIHN0cnVjdCB2cG11X3N0cnVjdCB7 CiAvKiBQVihIKSBndWVzdHM6IFZQTVUgcmVnaXN0ZXJzIGFyZSBhY2Nlc3NlZCBieSBndWVzdCBm cm9tIHNoYXJlZCBwYWdlICovCiAjZGVmaW5lIFZQTVVfQ0FDSEVEICAgICAgICAgICAgICAgICAg ICAgICAgIDB4NDAKIAorLyogSW50ZWwtc3BlY2lmaWMgVlBNVSBmZWF0dXJlcyAqLworI2RlZmlu ZSBWUE1VX0NQVV9IQVNfRFMgICAgICAgICAgICAgICAgICAgICAweDEwMCAvKiBIYXMgRGVidWcg U3RvcmUgKi8KKyNkZWZpbmUgVlBNVV9DUFVfSEFTX0JUUyAgICAgICAgICAgICAgICAgICAgMHgy MDAgLyogSGFzIEJyYW5jaCBUcmFjZSBTdG9yZSAqLworCiBzdGF0aWMgaW5saW5lIHZvaWQgdnBt dV9zZXQoc3RydWN0IHZwbXVfc3RydWN0ICp2cG11LCBjb25zdCB1MzIgbWFzaykKIHsKICAgICB2 cG11LT5mbGFncyB8PSBtYXNrOwpAQCAtMTAzLDggKzEwNSw2IEBAIHZvaWQgdnBtdV9sdnRwY191 cGRhdGUodWludDMyX3QgdmFsKTsKIGludCB2cG11X2RvX21zcih1bnNpZ25lZCBpbnQgbXNyLCB1 aW50NjRfdCAqbXNyX2NvbnRlbnQsCiAgICAgICAgICAgICAgICAgdWludDY0X3Qgc3VwcG9ydGVk LCBib29sX3QgaXNfd3JpdGUpOwogdm9pZCB2cG11X2RvX2ludGVycnVwdChzdHJ1Y3QgY3B1X3Vz ZXJfcmVncyAqcmVncyk7Ci12b2lkIHZwbXVfZG9fY3B1aWQodW5zaWduZWQgaW50IGlucHV0LCB1 bnNpZ25lZCBpbnQgKmVheCwgdW5zaWduZWQgaW50ICplYngsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmVjeCwgdW5zaWduZWQgaW50ICplZHgp Owogdm9pZCB2cG11X2luaXRpYWxpc2Uoc3RydWN0IHZjcHUgKnYpOwogdm9pZCB2cG11X2Rlc3Ry b3koc3RydWN0IHZjcHUgKnYpOwogdm9pZCB2cG11X3NhdmUoc3RydWN0IHZjcHUgKnYpOwotLSAK Mi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK