From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 2/2] x86/shadow: Move shadow pagetable fields into struct shadow_vcpu Date: Mon, 30 Jan 2017 17:26:02 +0000 Message-ID: <1485797162-30934-2-git-send-email-andrew.cooper3@citrix.com> References: <1485797162-30934-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: <1485797162-30934-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: George Dunlap , Andrew Cooper , Tim Deegan , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIHZUTEIgYW5kIGxhc3Rfd3JpdGUqIGJvb2xlYW5zIGFyZSB1c2VkIGV4Y2x1c2l2ZWx5IGJ5 IHRoZSBzaGFkb3cgcGFnZXRhYmxlCmNvZGUuICBNb3ZlIHRoZW0gZnJvbSBwYWdpbmdfdmNwdSB0 byBzaGFkb3dfdmNwdSwgd2hpY2ggY2F1c2VzIHRoZW0gdG8gYmUKZW50aXJlbHkgb21pdHRlZCBv biBhIGJ1aWxkIHdpdGhvdXQgc2hhZG93IHBhZ2luZyBzdXBwb3J0LgoKV2hpbGUgY2hhbmdpbmcg dGhlIHF1YWxpZmllZCBuYW1lcyBvZiB0aGVzZSB2YXJpYWJsZXMsIGRyb3AgYW4gdW5uZXNzYXJ5 IE5VTEwKY2hlY2sgYmVmb3JlIGZyZWVpbmcgdGhlIHZUTEIsIGFuZCBtb3ZlIGFsbG9jYXRpb24g b2YgdGhlIHZUTEIgZnJvbQpzaF91cGRhdGVfcGFnaW5nX21vZGVzKCkgdG8gc2hhZG93X3ZjcHVf aW5pdCgpIHdoZXJlIGl0IG1vcmUgbG9naWNhbGx5CmJlbG9uZ3MuCgpTaWduZWQtb2ZmLWJ5OiBB bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVs aWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDQzog R2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgotLS0KIHhlbi9hcmNo L3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMgIHwgMzUgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYyAgIHwgMjIgKysrKysrKysr KystLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9wcml2YXRlLmggfCAyNCArKysr KysrKysrKystLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmggICAgIHwg MTggKysrKysrKysrKy0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyks IDU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29t bW9uLmMgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCmluZGV4IGFhMGI4ZjAuLjEw NzVkNTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKKysrIGIv eGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYwpAQCAtOTUsNiArOTUsMTQgQEAgaW50IHNo YWRvd192Y3B1X2luaXQoc3RydWN0IHZjcHUgKnYpCiAgICAgfQogI2VuZGlmCiAKKyNpZiAoU0hB RE9XX09QVElNSVpBVElPTlMgJiBTSE9QVF9WSVJUVUFMX1RMQikKKyAgICAvKiBBbGxvY2F0ZSBh IHZpcnR1YWwgVExCIGZvciB0aGlzIHZjcHUuICovCisgICAgdi0+YXJjaC5wYWdpbmcuc2hhZG93 LnZ0bGIgPSB4emFsbG9jX2FycmF5KHN0cnVjdCBzaGFkb3dfdnRsYiwgVlRMQl9FTlRSSUVTKTsK KyAgICBpZiAoICF2LT5hcmNoLnBhZ2luZy5zaGFkb3cudnRsYiApCisgICAgICAgIHJldHVybiAt RU5PTUVNOworICAgIHNwaW5fbG9ja19pbml0KCZ2LT5hcmNoLnBhZ2luZy5zaGFkb3cudnRsYl9s b2NrKTsKKyNlbmRpZiAvKiAoU0hBRE9XX09QVElNSVpBVElPTlMgJiBTSE9QVF9WSVJUVUFMX1RM QikgKi8KKwogICAgIHYtPmFyY2gucGFnaW5nLm1vZGUgPSBpc19wdl92Y3B1KHYpID8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgJlNIQURPV19JTlRFUk5BTF9OQU1FKHNoX3BhZ2luZ19tb2Rl LCA0KSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICZTSEFET1dfSU5URVJOQUxfTkFNRShz aF9wYWdpbmdfbW9kZSwgMyk7CkBAIC0xNDU5LDcgKzE0NjcsNyBAQCB2b2lkIHNoYWRvd19mcmVl KHN0cnVjdCBkb21haW4gKmQsIG1mbl90IHNtZm4pCiAgICAgICAgICAgICAgICAgdi0+YXJjaC5w YWdpbmcuc2hhZG93Lmxhc3Rfd3JpdGVhYmxlX3B0ZV9zbWZuID0gMDsKICNlbmRpZgogI2lmIFNI QURPV19PUFRJTUlaQVRJT05TICYgU0hPUFRfRkFTVF9FTVVMQVRJT04KLSAgICAgICAgICAgIHYt PmFyY2gucGFnaW5nLmxhc3Rfd3JpdGVfZW11bF9vayA9IDA7CisgICAgICAgICAgICB2LT5hcmNo LnBhZ2luZy5zaGFkb3cubGFzdF93cml0ZV9lbXVsX29rID0gMDsKICNlbmRpZgogICAgICAgICB9 CiAjZW5kaWYKQEAgLTE2ODAsNyArMTY4OCw3IEBAIHN0YXRpYyBtZm5fdCBlbXVsYXRlX2d2YV90 b19tZm4oc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgdmFkZHIsCiAgICAgbWZuID0gcGFn ZV90b19tZm4ocGFnZSk7CiAgICAgQVNTRVJUKG1mbl92YWxpZChtZm4pKTsKIAotICAgIHYtPmFy Y2gucGFnaW5nLmxhc3Rfd3JpdGVfd2FzX3B0ID0gISFzaF9tZm5faXNfYV9wYWdlX3RhYmxlKG1m bik7CisgICAgdi0+YXJjaC5wYWdpbmcuc2hhZG93Lmxhc3Rfd3JpdGVfd2FzX3B0ID0gISFzaF9t Zm5faXNfYV9wYWdlX3RhYmxlKG1mbik7CiAgICAgLyoKICAgICAgKiBOb3RlIHNoYWRvdyBjYW5u b3QgcGFnZSBvdXQgb3IgdW5zaGFyZSB0aGlzIG1mbiwgc28gdGhlIG1hcCB3b24ndAogICAgICAq IGRpc2FwcGVhci4gT3RoZXJ3aXNlLCBjYWxsZXIgbXVzdCBob2xkIG9udG8gcGFnZSB1bnRpbCBk b25lLgpAQCAtMjg2NCwyMiArMjg3Miw2IEBAIHN0YXRpYyB2b2lkIHNoX3VwZGF0ZV9wYWdpbmdf bW9kZXMoc3RydWN0IHZjcHUgKnYpCiAKICAgICBBU1NFUlQocGFnaW5nX2xvY2tlZF9ieV9tZShk KSk7CiAKLSNpZiAoU0hBRE9XX09QVElNSVpBVElPTlMgJiBTSE9QVF9WSVJUVUFMX1RMQikKLSAg ICAvKiBNYWtlIHN1cmUgdGhpcyB2Y3B1IGhhcyBhIHZpcnR1YWwgVExCIGFycmF5IGFsbG9jYXRl ZCAqLwotICAgIGlmICggdW5saWtlbHkoIXYtPmFyY2gucGFnaW5nLnZ0bGIpICkKLSAgICB7Ci0g ICAgICAgIHYtPmFyY2gucGFnaW5nLnZ0bGIgPSB4emFsbG9jX2FycmF5KHN0cnVjdCBzaGFkb3df dnRsYiwgVlRMQl9FTlRSSUVTKTsKLSAgICAgICAgaWYgKCB1bmxpa2VseSghdi0+YXJjaC5wYWdp bmcudnRsYikgKQotICAgICAgICB7Ci0gICAgICAgICAgICBTSEFET1dfRVJST1IoIkNvdWxkIG5v dCBhbGxvY2F0ZSB2VExCIHNwYWNlIGZvciBkb20gJXUgdmNwdSAldVxuIiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHYtPnZjcHVfaWQpOwotICAgICAgICAgICAgZG9t YWluX2NyYXNoKHYtPmRvbWFpbik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg ICAgICAgc3Bpbl9sb2NrX2luaXQoJnYtPmFyY2gucGFnaW5nLnZ0bGJfbG9jayk7Ci0gICAgfQot I2VuZGlmIC8qIChTSEFET1dfT1BUSU1JWkFUSU9OUyAmIFNIT1BUX1ZJUlRVQUxfVExCKSAqLwot CiAjaWYgKFNIQURPV19PUFRJTUlaQVRJT05TICYgU0hPUFRfT1VUX09GX1NZTkMpCiAgICAgaWYg KCBtZm5fZXEodi0+YXJjaC5wYWdpbmcuc2hhZG93Lm9vc19zbmFwc2hvdFswXSwgSU5WQUxJRF9N Rk4pICkKICAgICB7CkBAIC0zMjA2LDExICszMTk4LDggQEAgdm9pZCBzaGFkb3dfdGVhcmRvd24o c3RydWN0IGRvbWFpbiAqZCwgYm9vbCAqcHJlZW1wdGVkKQogICAgIGZvcl9lYWNoX3ZjcHUoZCwg dikKICAgICB7CiAjaWYgKFNIQURPV19PUFRJTUlaQVRJT05TICYgU0hPUFRfVklSVFVBTF9UTEIp Ci0gICAgICAgIGlmICggdi0+YXJjaC5wYWdpbmcudnRsYiApCi0gICAgICAgIHsKLSAgICAgICAg ICAgIHhmcmVlKHYtPmFyY2gucGFnaW5nLnZ0bGIpOwotICAgICAgICAgICAgdi0+YXJjaC5wYWdp bmcudnRsYiA9IE5VTEw7Ci0gICAgICAgIH0KKyAgICAgICAgeGZyZWUodi0+YXJjaC5wYWdpbmcu c2hhZG93LnZ0bGIpOworICAgICAgICB2LT5hcmNoLnBhZ2luZy5zaGFkb3cudnRsYiA9IE5VTEw7 CiAjZW5kaWYgLyogKFNIQURPV19PUFRJTUlaQVRJT05TICYgU0hPUFRfVklSVFVBTF9UTEIpICov CiAKICNpZiAoU0hBRE9XX09QVElNSVpBVElPTlMgJiBTSE9QVF9PVVRfT0ZfU1lOQykKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYyBiL3hlbi9hcmNoL3g4Ni9tbS9z aGFkb3cvbXVsdGkuYwppbmRleCBkNDA5MGQ3Li4yMGRiNjBmIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvbW0vc2hhZG93L211bHRpLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0 aS5jCkBAIC0yODgxLDcgKzI4ODEsNyBAQCBzdGF0aWMgaW50IHNoX3BhZ2VfZmF1bHQoc3RydWN0 IHZjcHUgKnYsCiAgICAgICogaXQncyBoaWdobHkgbGlrZWx5IHRvIHJlYWNoIHNhbWUgZW11bGF0 aW9uIGFjdGlvbiBmb3IgdGhpcyBmcmFtZS4KICAgICAgKiBUaGVuIHRyeSB0byBlbXVsYXRlIGVh cmx5IHRvIGF2b2lkIGxvY2sgYXF1aXNpdGlvbi4KICAgICAgKi8KLSAgICBpZiAoIHYtPmFyY2gu cGFnaW5nLmxhc3Rfd3JpdGVfZW11bF9vaworICAgIGlmICggdi0+YXJjaC5wYWdpbmcuc2hhZG93 Lmxhc3Rfd3JpdGVfZW11bF9vawogICAgICAgICAgJiYgdi0+YXJjaC5wYWdpbmcuc2hhZG93Lmxh c3RfZW11bGF0ZWRfZnJhbWUgPT0gKHZhID4+IFBBR0VfU0hJRlQpICkKICAgICB7CiAgICAgICAg IC8qIGNoZWNrIHdoZXRoZXIgZXJyb3IgY29kZSBpcyAzLCBvciBlbHNlIGZhbGwgYmFjayB0byBu b3JtYWwgcGF0aApAQCAtMjg5OCw3ICsyODk4LDcgQEAgc3RhdGljIGludCBzaF9wYWdlX2ZhdWx0 KHN0cnVjdCB2Y3B1ICp2LAogICAgICAgICAgICAgaWYgKCBtZm5fdmFsaWQoZ21mbikgJiYgbWZu X2lzX291dF9vZl9zeW5jKGdtZm4pICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBm YXN0X2VtdWwgPSAwOwotICAgICAgICAgICAgICAgIHYtPmFyY2gucGFnaW5nLmxhc3Rfd3JpdGVf ZW11bF9vayA9IDA7CisgICAgICAgICAgICAgICAgdi0+YXJjaC5wYWdpbmcuc2hhZG93Lmxhc3Rf d3JpdGVfZW11bF9vayA9IDA7CiAgICAgICAgICAgICAgICAgZ290byBwYWdlX2ZhdWx0X3Nsb3df cGF0aDsKICAgICAgICAgICAgIH0KICNlbmRpZiAvKiBPT1MgKi8KQEAgLTI5MDcsNyArMjkwNyw3 IEBAIHN0YXRpYyBpbnQgc2hfcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAqdiwKICAgICAgICAgICAg IGdvdG8gZWFybHlfZW11bGF0aW9uOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKLSAgICAgICAg ICAgIHYtPmFyY2gucGFnaW5nLmxhc3Rfd3JpdGVfZW11bF9vayA9IDA7CisgICAgICAgICAgICB2 LT5hcmNoLnBhZ2luZy5zaGFkb3cubGFzdF93cml0ZV9lbXVsX29rID0gMDsKICAgICB9CiAjZW5k aWYKIApAQCAtMzM0NCw3ICszMzQ0LDcgQEAgc3RhdGljIGludCBzaF9wYWdlX2ZhdWx0KHN0cnVj dCB2Y3B1ICp2LAogICAgICAgICAgICAgaWYgKCBmYXN0X2VtdWwgKQogICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgIHBlcmZjX2luY3Ioc2hhZG93X2ZhdWx0X2Zhc3RfZW11bGF0ZV9mYWls KTsKLSAgICAgICAgICAgICAgICB2LT5hcmNoLnBhZ2luZy5sYXN0X3dyaXRlX2VtdWxfb2sgPSAw OworICAgICAgICAgICAgICAgIHYtPmFyY2gucGFnaW5nLnNoYWRvdy5sYXN0X3dyaXRlX2VtdWxf b2sgPSAwOwogICAgICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgICAgICBnZHByaW50ayhYRU5M T0dfREVCVUcsICJ3cml0ZSB0byBwYWdldGFibGUgZHVyaW5nIGV2ZW50ICIKQEAgLTMzOTksNyAr MzM5OSw3IEBAIHN0YXRpYyBpbnQgc2hfcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAqdiwKICAgICAg ICAgaWYgKCBmYXN0X2VtdWwgKQogICAgICAgICB7CiAgICAgICAgICAgICBwZXJmY19pbmNyKHNo YWRvd19mYXVsdF9mYXN0X2VtdWxhdGVfZmFpbCk7Ci0gICAgICAgICAgICB2LT5hcmNoLnBhZ2lu Zy5sYXN0X3dyaXRlX2VtdWxfb2sgPSAwOworICAgICAgICAgICAgdi0+YXJjaC5wYWdpbmcuc2hh ZG93Lmxhc3Rfd3JpdGVfZW11bF9vayA9IDA7CiAgICAgICAgIH0KICNlbmRpZgogICAgICAgICBT SEFET1dfUFJJTlRLKCJlbXVsYXRvciBmYWlsdXJlLCB1bnNoYWRvd2luZyBtZm4gJSNseFxuIiwK QEAgLTM0MjksMTEgKzM0MjksMTEgQEAgc3RhdGljIGludCBzaF9wYWdlX2ZhdWx0KHN0cnVjdCB2 Y3B1ICp2LAogICAgICAgICB7CiAgICAgICAgICAgICB2LT5hcmNoLnBhZ2luZy5zaGFkb3cubGFz dF9lbXVsYXRlZF9mcmFtZSA9IHZhID4+IFBBR0VfU0hJRlQ7CiAgICAgICAgICAgICB2LT5hcmNo LnBhZ2luZy5zaGFkb3cubGFzdF9lbXVsYXRlZF9tZm4gPSBtZm5feChnbWZuKTsKLSAgICAgICAg ICAgIHYtPmFyY2gucGFnaW5nLmxhc3Rfd3JpdGVfZW11bF9vayA9IDE7CisgICAgICAgICAgICB2 LT5hcmNoLnBhZ2luZy5zaGFkb3cubGFzdF93cml0ZV9lbXVsX29rID0gMTsKICAgICAgICAgfQog ICAgIH0KICAgICBlbHNlIGlmICggZmFzdF9lbXVsICkKLSAgICAgICAgdi0+YXJjaC5wYWdpbmcu bGFzdF93cml0ZV9lbXVsX29rID0gMDsKKyAgICAgICAgdi0+YXJjaC5wYWdpbmcuc2hhZG93Lmxh c3Rfd3JpdGVfZW11bF9vayA9IDA7CiAjZW5kaWYKIAogICAgIGlmICggZW11bF9jdHh0LmN0eHQu cmV0aXJlLnNpbmdsZXN0ZXAgKQpAQCAtMzQ1Miw3ICszNDUyLDcgQEAgc3RhdGljIGludCBzaF9w YWdlX2ZhdWx0KHN0cnVjdCB2Y3B1ICp2LAogICAgICAgICBmb3IgKCBpID0gMCA7IGkgPCA0IDsg aSsrICkKICAgICAgICAgewogICAgICAgICAgICAgc2hhZG93X2NvbnRpbnVlX2VtdWxhdGlvbigm ZW11bF9jdHh0LCByZWdzKTsKLSAgICAgICAgICAgIHYtPmFyY2gucGFnaW5nLmxhc3Rfd3JpdGVf d2FzX3B0ID0gMDsKKyAgICAgICAgICAgIHYtPmFyY2gucGFnaW5nLnNoYWRvdy5sYXN0X3dyaXRl X3dhc19wdCA9IDA7CiAgICAgICAgICAgICByID0geDg2X2VtdWxhdGUoJmVtdWxfY3R4dC5jdHh0 LCBlbXVsX29wcyk7CiAKICAgICAgICAgICAgIC8qCkBAIC0zNDYzLDcgKzM0NjMsNyBAQCBzdGF0 aWMgaW50IHNoX3BhZ2VfZmF1bHQoc3RydWN0IHZjcHUgKnYsCiAgICAgICAgICAgICBpZiAoIHIg PT0gWDg2RU1VTF9PS0FZICYmICFlbXVsX2N0eHQuY3R4dC5yZXRpcmUucmF3ICkKICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICBlbXVsYXRpb25fY291bnQrKzsKLSAgICAgICAgICAgICAg ICBpZiAoIHYtPmFyY2gucGFnaW5nLmxhc3Rfd3JpdGVfd2FzX3B0ICkKKyAgICAgICAgICAgICAg ICBpZiAoIHYtPmFyY2gucGFnaW5nLnNoYWRvdy5sYXN0X3dyaXRlX3dhc19wdCApCiAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBwZXJmY19pbmNyKHNoYWRvd19lbV9leF9w dCk7CiAgICAgICAgICAgICAgICAgICAgIFRSQUNFX1NIQURPV19QQVRIX0ZMQUcoVFJDRV9TRkxB R19FTVVMQVRJT05fMk5EX1BUX1dSSVRURU4pOwpAQCAtMzUzOSw3ICszNTM5LDcgQEAgc3RhdGlj IGJvb2xfdCBzaF9pbnZscGcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgdmEpCiAjZW5k aWYKIAogI2lmIFNIQURPV19PUFRJTUlaQVRJT05TICYgU0hPUFRfRkFTVF9FTVVMQVRJT04KLSAg ICB2LT5hcmNoLnBhZ2luZy5sYXN0X3dyaXRlX2VtdWxfb2sgPSAwOworICAgIHYtPmFyY2gucGFn aW5nLnNoYWRvdy5sYXN0X3dyaXRlX2VtdWxfb2sgPSAwOwogI2VuZGlmCiAKICAgICAvKiBGaXJz dCBjaGVjayB0aGF0IHdlIGNhbiBzYWZlbHkgcmVhZCB0aGUgc2hhZG93IGwyZS4gIFNNUC9QQUUg bGludXggY2FuCkBAIC00MjMyLDcgKzQyMzIsNyBAQCBzaF91cGRhdGVfY3IzKHN0cnVjdCB2Y3B1 ICp2LCBpbnQgZG9fbG9ja2luZykKICNlbmRpZgogCiAjaWYgU0hBRE9XX09QVElNSVpBVElPTlMg JiBTSE9QVF9GQVNUX0VNVUxBVElPTgotICAgIHYtPmFyY2gucGFnaW5nLmxhc3Rfd3JpdGVfZW11 bF9vayA9IDA7CisgICAgdi0+YXJjaC5wYWdpbmcuc2hhZG93Lmxhc3Rfd3JpdGVfZW11bF9vayA9 IDA7CiAjZW5kaWYKIAogI2lmIChTSEFET1dfT1BUSU1JWkFUSU9OUyAmIFNIT1BUX09VVF9PRl9T WU5DKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9wcml2YXRlLmggYi94ZW4v YXJjaC94ODYvbW0vc2hhZG93L3ByaXZhdGUuaAppbmRleCBmMGIwZWQ0Li41NjQ5ZTgxIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L3ByaXZhdGUuaAorKysgYi94ZW4vYXJjaC94 ODYvbW0vc2hhZG93L3ByaXZhdGUuaApAQCAtNzY4LDkgKzc2OCw5IEBAIHN0cnVjdCBzaGFkb3df dnRsYiB7CiAvKiBDYWxsIHdoZW5ldmVyIHRoZSBndWVzdCBmbHVzaGVzIGhpdCBhY3R1YWwgVExC ICovCiBzdGF0aWMgaW5saW5lIHZvaWQgdnRsYl9mbHVzaChzdHJ1Y3QgdmNwdSAqdikKIHsKLSAg ICBzcGluX2xvY2soJnYtPmFyY2gucGFnaW5nLnZ0bGJfbG9jayk7Ci0gICAgbWVtc2V0KHYtPmFy Y2gucGFnaW5nLnZ0bGIsIDAsIFZUTEJfRU5UUklFUyAqIHNpemVvZiAoc3RydWN0IHNoYWRvd192 dGxiKSk7Ci0gICAgc3Bpbl91bmxvY2soJnYtPmFyY2gucGFnaW5nLnZ0bGJfbG9jayk7CisgICAg c3Bpbl9sb2NrKCZ2LT5hcmNoLnBhZ2luZy5zaGFkb3cudnRsYl9sb2NrKTsKKyAgICBtZW1zZXQo di0+YXJjaC5wYWdpbmcuc2hhZG93LnZ0bGIsIDAsIFZUTEJfRU5UUklFUyAqIHNpemVvZihzdHJ1 Y3Qgc2hhZG93X3Z0bGIpKTsKKyAgICBzcGluX3VubG9jaygmdi0+YXJjaC5wYWdpbmcuc2hhZG93 LnZ0bGJfbG9jayk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHZ0bGJfaGFzaCh1bnNpZ25lZCBs b25nIHBhZ2VfbnVtYmVyKQpAQCAtNzg0LDkgKzc4NCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB2 dGxiX2luc2VydChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBwYWdlLAogewogICAgIHN0 cnVjdCBzaGFkb3dfdnRsYiBlbnRyeSA9CiAgICAgICAgIHsgLnBhZ2VfbnVtYmVyID0gcGFnZSwg LmZyYW1lX251bWJlciA9IGZyYW1lLCAucGZlYyA9IHBmZWMgfTsKLSAgICBzcGluX2xvY2soJnYt PmFyY2gucGFnaW5nLnZ0bGJfbG9jayk7Ci0gICAgdi0+YXJjaC5wYWdpbmcudnRsYlt2dGxiX2hh c2gocGFnZSldID0gZW50cnk7Ci0gICAgc3Bpbl91bmxvY2soJnYtPmFyY2gucGFnaW5nLnZ0bGJf bG9jayk7CisgICAgc3Bpbl9sb2NrKCZ2LT5hcmNoLnBhZ2luZy5zaGFkb3cudnRsYl9sb2NrKTsK KyAgICB2LT5hcmNoLnBhZ2luZy5zaGFkb3cudnRsYlt2dGxiX2hhc2gocGFnZSldID0gZW50cnk7 CisgICAgc3Bpbl91bmxvY2soJnYtPmFyY2gucGFnaW5nLnNoYWRvdy52dGxiX2xvY2spOwogfQog CiAvKiBMb29rIGEgdHJhbnNsYXRpb24gdXAgaW4gdGhlIHZUTEIuICBSZXR1cm5zIElOVkFMSURf R0ZOIGlmIG5vdCBmb3VuZC4gKi8KQEAgLTc5NywxNSArNzk3LDE1IEBAIHN0YXRpYyBpbmxpbmUg dW5zaWduZWQgbG9uZyB2dGxiX2xvb2t1cChzdHJ1Y3QgdmNwdSAqdiwKICAgICB1bnNpZ25lZCBs b25nIGZyYW1lX251bWJlciA9IGdmbl94KElOVkFMSURfR0ZOKTsKICAgICBpbnQgaSA9IHZ0bGJf aGFzaChwYWdlX251bWJlcik7CiAKLSAgICBzcGluX2xvY2soJnYtPmFyY2gucGFnaW5nLnZ0bGJf bG9jayk7Ci0gICAgaWYgKCB2LT5hcmNoLnBhZ2luZy52dGxiW2ldLnBmZWMgIT0gMAotICAgICAg ICAgJiYgdi0+YXJjaC5wYWdpbmcudnRsYltpXS5wYWdlX251bWJlciA9PSBwYWdlX251bWJlcgor ICAgIHNwaW5fbG9jaygmdi0+YXJjaC5wYWdpbmcuc2hhZG93LnZ0bGJfbG9jayk7CisgICAgaWYg KCB2LT5hcmNoLnBhZ2luZy5zaGFkb3cudnRsYltpXS5wZmVjICE9IDAKKyAgICAgICAgICYmIHYt PmFyY2gucGFnaW5nLnNoYWRvdy52dGxiW2ldLnBhZ2VfbnVtYmVyID09IHBhZ2VfbnVtYmVyCiAg ICAgICAgICAvKiBBbnkgc3VjY2Vzc2Z1bCB3YWxrIHRoYXQgaGFkIGF0IGxlYXN0IHRoZXNlIHBm ZWMgYml0cyBpcyBPSyAqLwotICAgICAgICAgJiYgKHYtPmFyY2gucGFnaW5nLnZ0bGJbaV0ucGZl YyAmIHBmZWMpID09IHBmZWMgKQorICAgICAgICAgJiYgKHYtPmFyY2gucGFnaW5nLnNoYWRvdy52 dGxiW2ldLnBmZWMgJiBwZmVjKSA9PSBwZmVjICkKICAgICB7Ci0gICAgICAgIGZyYW1lX251bWJl ciA9IHYtPmFyY2gucGFnaW5nLnZ0bGJbaV0uZnJhbWVfbnVtYmVyOworICAgICAgICBmcmFtZV9u dW1iZXIgPSB2LT5hcmNoLnBhZ2luZy5zaGFkb3cudnRsYltpXS5mcmFtZV9udW1iZXI7CiAgICAg fQotICAgIHNwaW5fdW5sb2NrKCZ2LT5hcmNoLnBhZ2luZy52dGxiX2xvY2spOworICAgIHNwaW5f dW5sb2NrKCZ2LT5hcmNoLnBhZ2luZy5zaGFkb3cudnRsYl9sb2NrKTsKICAgICByZXR1cm4gZnJh bWVfbnVtYmVyOwogfQogI2VuZGlmIC8qIChTSEFET1dfT1BUSU1JWkFUSU9OUyAmIFNIT1BUX1ZJ UlRVQUxfVExCKSAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCBi L3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgKaW5kZXggZTZjN2UxMy4uM2U3ZDc5MSAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9h c20teDg2L2RvbWFpbi5oCkBAIC0xNDcsNyArMTQ3LDE2IEBAIHN0cnVjdCBzaGFkb3dfdmNwdSB7 CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgb2ZmW1NIQURPV19PT1NfRklYVVBTXTsKICAgICB9IG9v c19maXh1cFtTSEFET1dfT09TX1BBR0VTXTsKIAotICAgIGJvb2xfdCBwYWdldGFibGVfZHlpbmc7 CisgICAgLyogVHJhbnNsYXRlZCBndWVzdDogdmlydHVhbCBUTEIgKi8KKyAgICBzdHJ1Y3Qgc2hh ZG93X3Z0bGIgKnZ0bGI7CisgICAgc3BpbmxvY2tfdCAgICAgICAgICB2dGxiX2xvY2s7CisKKyAg ICAvKiBIVk0gZ3Vlc3Q6IGxhc3QgZW11bGF0ZSB3YXMgdG8gYSBwYWdldGFibGUgKi8KKyAgICBi b29sIGxhc3Rfd3JpdGVfd2FzX3B0OworICAgIC8qIEhWTSBndWVzdDogbGFzdCB3cml0ZSBlbXVs YXRpb24gc3VjY2VlZHMgKi8KKyAgICBib29sIGxhc3Rfd3JpdGVfZW11bF9vazsKKworICAgIGJv b2wgcGFnZXRhYmxlX2R5aW5nOwogI2VuZGlmCiB9OwogCkBAIC0yMjIsMTMgKzIzMSw2IEBAIHN0 cnVjdCBwYWdpbmdfdmNwdSB7CiAgICAgY29uc3Qgc3RydWN0IHBhZ2luZ19tb2RlICptb2RlOwog ICAgIC8qIE5lc3RlZCBWaXJ0dWFsaXphdGlvbjogcGFnaW5nIG1vZGUgb2YgbmVzdGVkIGd1ZXN0 ICovCiAgICAgY29uc3Qgc3RydWN0IHBhZ2luZ19tb2RlICpuZXN0ZWRtb2RlOwotICAgIC8qIEhW TSBndWVzdDogbGFzdCBlbXVsYXRlIHdhcyB0byBhIHBhZ2V0YWJsZSAqLwotICAgIHVuc2lnbmVk IGludCBsYXN0X3dyaXRlX3dhc19wdDoxOwotICAgIC8qIEhWTSBndWVzdDogbGFzdCB3cml0ZSBl bXVsYXRpb24gc3VjY2VlZHMgKi8KLSAgICB1bnNpZ25lZCBpbnQgbGFzdF93cml0ZV9lbXVsX29r OjE7Ci0gICAgLyogVHJhbnNsYXRlZCBndWVzdDogdmlydHVhbCBUTEIgKi8KLSAgICBzdHJ1Y3Qg c2hhZG93X3Z0bGIgKnZ0bGI7Ci0gICAgc3BpbmxvY2tfdCAgICAgICAgICB2dGxiX2xvY2s7CiAK ICAgICAvKiBwYWdpbmcgc3VwcG9ydCBleHRlbnNpb24gKi8KICAgICBzdHJ1Y3Qgc2hhZG93X3Zj cHUgc2hhZG93OwotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK