From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 15/24] x86/hvm: Reposition the modification of raw segment data from the VMCB/VMCS Date: Wed, 30 Nov 2016 13:50:32 +0000 Message-ID: <1480513841-7565-16-git-send-email-andrew.cooper3@citrix.com> References: <1480513841-7565-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: <1480513841-7565-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: Andrew Cooper List-Id: xen-devel@lists.xenproject.org SW50ZWwgVlQteCBhbmQgQU1EIFNWTSBwcm92aWRlIGFjY2VzcyB0byB0aGUgZnVsbCBzZWdtZW50 IGRlc2NyaXB0b3IgY2FjaGUgdmlhCmZpZWxkcyBpbiB0aGUgVk1DQi9WTUNTLiAgSG93ZXZlciwg dGhlIGJpdHMgd2hpY2ggYXJlIGFjdHVhbGx5IGNoZWNrZWQgYnkKaGFyZHdhcmUgYW5kIHByZXNl cnZlZCBhY3Jvc3Mgdm1lbnRyeS9leGl0IGFyZSBpbmNvbnNpc3RlbnQsIGFuZCB0aGUgdmVuZG9y CmFjY2Vzc29yIGZ1bmN0aW9ucyBwZXJmb3JtIGluY29uc2lzdGVudCBtb2RpZmljYXRpb24gdG8g dGhlIHJhdyB2YWx1ZXMuCgpDb252ZXJ0IHtzdm0sdm14fV97Z2V0LHNldH1fc2VnbWVudF9yZWdp c3RlcigpIGludG8gcmF3IGFjY2Vzc29ycywgYW5kIGFsdGVyCmh2bV97Z2V0LHNldH1fc2VnbWVu dF9yZWdpc3RlcigpIHRvIGNvb2sgdGhlIHZhbHVlcyBjb25zaXN0ZW50bHkuICBUaGlzIGFsbG93 cwp0aGUgY29tbW9uIGVtdWxhdGlvbiBjb2RlIHRvIGJldHRlciByZWx5IG9uIGZpbmRpbmcgYXJj aGl0ZWN0dXJhbGx5LWV4cGVjdGVkCnZhbHVlcy4KCldoaWxlIG1vdmluZyB0aGUgY29kZSBwZXJm b3JtaW5nIHRoZSBjb29raW5nLCBmaXggdGhlICVzcy5kYiBxdWlyay4gIEEgTlVMTApzZWxlY3Rv ciBpcyBpbmRpY2F0ZWQgYnkgLnAgYmVpbmcgY2xlYXIsIG5vdCB0aGUgdmFsdWUgb2YgdGhlIC50 eXBlIGZpZWxkLgoKVGhpcyBkb2VzIGNhdXNlIHNvbWUgZnVuY3Rpb25hbCBjaGFuZ2VzIGJlY2F1 c2Ugb2YgdGhlIG1vZGlmaWNhdGlvbnMgYmVpbmcKYXBwbGllZCB1bmlmb3JtbHkuICBBIHNpZGUg ZWZmZWN0IG9mIHRoaXMgZml4ZXMgbGF0ZW50IGJ1Z3Mgd2hlcmUKdm14X3NldF9zZWdtZW50X3Jl Z2lzdGVyKCkgZGlkbid0IGNvcnJlY3RseSBmaXggdXAgLkcgZm9yIHNlZ21lbnRzLCBhbmQKaW5j b25zaXN0ZW50IGZpeGluZyB1cCBvZiB0aGUgR0RUUi9JRFRSIGxpbWl0cy4KClNpZ25lZC1vZmYt Ynk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5 OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEJvcmlzIE9zdHJvdnNreSA8Ym9y aXMub3N0cm92c2t5QG9yYWNsZS5jb20+Ci0tLQp2MjoKICogQ2xhcmlmeSB0aGUgY2hhbmdlIG9m IHRoZSAlc3MuZGIgcXVpcmsKICogUmV3b3JrICV0ciB0eXBlY2hlY2sgbG9naWMKICogU3dhcCBh IGJyZWFrIGZvciByZXR1cm4gZm9sbG93aW5nIEFTU0VSVF9VTlJFQUNIQUJMRSgpCi0tLQogeGVu L2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgfCAxNTQgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyAgICB8ICAyMCAr LS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jICAgIHwgICA2ICstCiB4ZW4vaW5jbHVk ZS9hc20teDg2L2Rlc2MuaCAgICB8ICAgNiArKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZt LmggfCAgMTcgKystLS0KIDUgZmlsZXMgY2hhbmdlZCwgMTY3IGluc2VydGlvbnMoKyksIDM2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJj aC94ODYvaHZtL2h2bS5jCmluZGV4IGVmODMxMDAuLmJkZmQ5NGUgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpAQCAtNjA1MSw2 ICs2MDUxLDE2MCBAQCB2b2lkIGh2bV9kb21haW5fc29mdF9yZXNldChzdHJ1Y3QgZG9tYWluICpk KQogfQogCiAvKgorICogU2VnbWVudCBjYWNoZXMgaW4gVk1DQi9WTUNTIGFyZSBpbmNvbnNpc3Rl bnQgYWJvdXQgd2hpY2ggYml0cyBhcmUgY2hlY2tlZCwKKyAqIGltcG9ydGFudCwgYW5kIHByZXNl cnZlZCBhY3Jvc3Mgdm1lbnRyeS9leGl0LiAgQ29vayB0aGUgdmFsdWVzIHRvIG1ha2UgdGhlbQor ICogY2xvc2VyIHRvIHdoYXQgaXMgYXJjaGl0ZWN0dXJhbGx5IGV4cGVjdGVkIGZyb20gZW50cmll cyBpbiB0aGUgc2VnbWVudAorICogY2FjaGUuCisgKi8KK3ZvaWQgaHZtX2dldF9zZWdtZW50X3Jl Z2lzdGVyKHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyICpyZWcpCit7CisgICAg aHZtX2Z1bmNzLmdldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHNlZywgcmVnKTsKKworICAgIHN3aXRj aCAoIHNlZyApCisgICAgeworICAgIGNhc2UgeDg2X3NlZ19zczoKKyAgICAgICAgLyogU1ZNIG1h eSByZXRhaW4gJXNzLkRCIHdoZW4gJXNzIGlzIGxvYWRlZCB3aXRoIGEgTlVMTCBzZWxlY3Rvci4g Ki8KKyAgICAgICAgaWYgKCAhcmVnLT5hdHRyLmZpZWxkcy5wICkKKyAgICAgICAgICAgIHJlZy0+ YXR0ci5maWVsZHMuZGIgPSAwOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgeDg2X3NlZ190 cjoKKyAgICAgICAgLyoKKyAgICAgICAgICogU1ZNIGRvZXNuJ3QgdHJhY2sgJXRyLkIuIEFyY2hp dGVjdHVyYWxseSwgYSBsb2FkZWQgVFNTIHNlZ21lbnQgd2lsbAorICAgICAgICAgKiBhbHdheXMg YmUgYnVzeS4KKyAgICAgICAgICovCisgICAgICAgIHJlZy0+YXR0ci5maWVsZHMudHlwZSB8PSAw eDI7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogJWNzIGFuZCAldHIgYXJlIHVuY29uZGl0aW9u YWxseSBwcmVzZW50LiAgU1ZNIGlnbm9yZXMgdGhlc2UgcHJlc2VudAorICAgICAgICAgKiBiaXRz IGFuZCB3aWxsIGhhcHBpbHkgcnVuIHdpdGhvdXQgdGhlbSBzZXQuCisgICAgICAgICAqLworICAg IGNhc2UgeDg2X3NlZ19jczoKKyAgICAgICAgcmVnLT5hdHRyLmZpZWxkcy5wID0gMTsKKyAgICAg ICAgYnJlYWs7CisKKyAgICBjYXNlIHg4Nl9zZWdfZ2R0cjoKKyAgICBjYXNlIHg4Nl9zZWdfaWR0 cjoKKyAgICAgICAgLyoKKyAgICAgICAgICogVHJlYXQgR0RUUi9JRFRSIGFzIGJlaW5nIHByZXNl bnQgc3lzdGVtIHNlZ21lbnRzLiAgVGhpcyBhdm9pZHMgdGhlbQorICAgICAgICAgKiBuZWVkaW5n IHNwZWNpYWwgY2FzaW5nIGZvciBzZWdtZW50YXRpb24gY2hlY2tzLgorICAgICAgICAgKi8KKyAg ICAgICAgcmVnLT5hdHRyLmJ5dGVzID0gMHg4MDsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZh dWx0OiAvKiBBdm9pZCB0cmlnZ2VyaW5nIC1XZXJyb3I9c3dpdGNoICovCisgICAgICAgIGJyZWFr OworICAgIH0KKworICAgIGlmICggcmVnLT5hdHRyLmZpZWxkcy5wICkKKyAgICB7CisgICAgICAg IC8qCisgICAgICAgICAqIEZvciBzZWdtZW50cyB3aGljaCBhcmUgcHJlc2VudC91c2FibGUsIGNv b2sgdGhlIHN5c3RlbSBmbGFnLiAgU1ZNCisgICAgICAgICAqIGlnbm9yZXMgdGhlIFMgYml0IG9u IGFsbCBzZWdtZW50cyBhbmQgd2lsbCBoYXBwaWx5IHJ1biB3aXRoIHRoZW0gaW4KKyAgICAgICAg ICogYW55IHN0YXRlLgorICAgICAgICAgKi8KKyAgICAgICAgcmVnLT5hdHRyLmZpZWxkcy5zID0g aXNfeDg2X3VzZXJfc2VnbWVudChzZWcpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFNWTSBk aXNjYXJkcyAlY3MuRyBvbiAjVk1FWElULiAgT3RoZXIgdXNlciBzZWdtZW50cyBkbyBoYXZlIC5H CisgICAgICAgICAqIHRyYWNrZWQsIGJ1dCBMaW51eCBjb21taXQgODAxMTJjODllZDg3ICJLVk06 IFN5bnRoZXNpemUgRyBiaXQgZm9yCisgICAgICAgICAqIGFsbCBzZWdtZW50cy4iIGluZGljYXRl cyB0aGF0IHRoaXMgaXNuJ3QgbmVjZXNzYXJpbHkgdGhlIGNhc2Ugd2hlbgorICAgICAgICAgKiBu ZXN0ZWQgdW5kZXIgRVNYaS4KKyAgICAgICAgICoKKyAgICAgICAgICogVW5jb25kaXRpb25hbGx5 IHJlY2FsY3VsYXRlIEcuCisgICAgICAgICAqLworICAgICAgICByZWctPmF0dHIuZmllbGRzLmcg PSAhIShyZWctPmxpbWl0ID4+IDIwKTsKKworICAgICAgICAvKgorICAgICAgICAgKiBTVk0gZG9l c24ndCB0cmFjayB0aGUgQWNjZXNzZWQgZmxhZy4gIEl0IHdpbGwgYWx3YXlzIGJlIHNldCBmb3IK KyAgICAgICAgICogdXNhYmxlIHVzZXIgc2VnbWVudHMgbG9hZGVkIGludG8gdGhlIGRlc2NyaXB0 b3IgY2FjaGUuCisgICAgICAgICAqLworICAgICAgICBpZiAoIGlzX3g4Nl91c2VyX3NlZ21lbnQo c2VnKSApCisgICAgICAgICAgICByZWctPmF0dHIuZmllbGRzLnR5cGUgfD0gMHgxOworICAgIH0K K30KKwordm9pZCBodm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIoc3RydWN0IHZjcHUgKnYsIGVudW0g eDg2X3NlZ21lbnQgc2VnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNl Z21lbnRfcmVnaXN0ZXIgKnJlZykKK3sKKyAgICAvKiBTZXQgRyB0byBtYXRjaCB0aGUgbGltaXQg ZmllbGQuICBWVC14IGNhcmVzLCB3aGlsZSBTVk0gZG9lc24ndC4gKi8KKyAgICBpZiAoIHJlZy0+ YXR0ci5maWVsZHMucCApCisgICAgICAgIHJlZy0+YXR0ci5maWVsZHMuZyA9ICEhKHJlZy0+bGlt aXQgPj4gMjApOworCisgICAgc3dpdGNoICggc2VnICkKKyAgICB7CisgICAgY2FzZSB4ODZfc2Vn X2NzOgorICAgICAgICBBU1NFUlQocmVnLT5hdHRyLmZpZWxkcy5wKTsgICAgICAgICAgICAgICAg ICAvKiBVc2FibGUuICovCisgICAgICAgIEFTU0VSVChyZWctPmF0dHIuZmllbGRzLnMpOyAgICAg ICAgICAgICAgICAgIC8qIFVzZXIgc2VnbWVudC4gKi8KKyAgICAgICAgQVNTRVJUKChyZWctPmJh c2UgPj4gMzIpID09IDApOyAgICAgICAgICAgICAgLyogVXBwZXIgYml0cyBjbGVhci4gKi8KKyAg ICAgICAgYnJlYWs7CisKKyAgICBjYXNlIHg4Nl9zZWdfc3M6CisgICAgICAgIGlmICggcmVnLT5h dHRyLmZpZWxkcy5wICkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHJlZy0+YXR0ci5m aWVsZHMucyk7ICAgICAgICAgICAgICAvKiBVc2VyIHNlZ21lbnQuICovCisgICAgICAgICAgICBB U1NFUlQoIShyZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweDgpKTsgIC8qIERhdGEgc2VnbWVudC4g Ki8KKyAgICAgICAgICAgIEFTU0VSVChyZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweDIpOyAgICAg LyogV3JpdGVhYmxlLiAqLworICAgICAgICAgICAgQVNTRVJUKChyZWctPmJhc2UgPj4gMzIpID09 IDApOyAgICAgICAgICAvKiBVcHBlciBiaXRzIGNsZWFyLiAqLworICAgICAgICB9CisgICAgICAg IGJyZWFrOworCisgICAgY2FzZSB4ODZfc2VnX2RzOgorICAgIGNhc2UgeDg2X3NlZ19lczoKKyAg ICBjYXNlIHg4Nl9zZWdfZnM6CisgICAgY2FzZSB4ODZfc2VnX2dzOgorICAgICAgICBpZiAoIHJl Zy0+YXR0ci5maWVsZHMucCApCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChyZWctPmF0 dHIuZmllbGRzLnMpOyAgICAgICAgICAgICAgLyogVXNlciBzZWdtZW50LiAqLworCisgICAgICAg ICAgICBpZiAoIHJlZy0+YXR0ci5maWVsZHMudHlwZSAmIDB4OCApCisgICAgICAgICAgICAgICAg QVNTRVJUKHJlZy0+YXR0ci5maWVsZHMudHlwZSAmIDB4Mik7IC8qIFJlYWRhYmxlLiAqLworCisg ICAgICAgICAgICBpZiAoIHNlZyA9PSB4ODZfc2VnX2ZzIHx8IHNlZyA9PSB4ODZfc2VnX2dzICkK KyAgICAgICAgICAgICAgICBBU1NFUlQoaXNfY2Fub25pY2FsX2FkZHJlc3MocmVnLT5iYXNlKSk7 CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQVNTRVJUKChyZWctPmJhc2UgPj4g MzIpID09IDApOyAgICAgIC8qIFVwcGVyIGJpdHMgY2xlYXIuICovCisgICAgICAgIH0KKyAgICAg ICAgYnJlYWs7CisKKyAgICBjYXNlIHg4Nl9zZWdfdHI6CisgICAgICAgIEFTU0VSVChyZWctPmF0 dHIuZmllbGRzLnApOyAgICAgICAgICAgICAgICAgIC8qIFVzYWJsZS4gKi8KKyAgICAgICAgQVNT RVJUKCFyZWctPmF0dHIuZmllbGRzLnMpOyAgICAgICAgICAgICAgICAgLyogU3lzdGVtIHNlZ21l bnQuICovCisgICAgICAgIEFTU0VSVCghKHJlZy0+c2VsICYgMHg0KSk7ICAgICAgICAgICAgICAg ICAgIC8qICFUSS4gKi8KKyAgICAgICAgaWYgKCByZWctPmF0dHIuZmllbGRzLnR5cGUgPT0gU1lT X0RFU0NfdHNzX2J1c3kgKQorICAgICAgICAgICAgQVNTRVJUKGlzX2Nhbm9uaWNhbF9hZGRyZXNz KHJlZy0+YmFzZSkpOworICAgICAgICBlbHNlIGlmICggcmVnLT5hdHRyLmZpZWxkcy50eXBlID09 IFNZU19ERVNDX3RzczE2X2J1c3kgKQorICAgICAgICAgICAgQVNTRVJUKChyZWctPmJhc2UgPj4g MzIpID09IDApOworICAgICAgICBlbHNlCisgICAgICAgICAgICBBU1NFUlQoISIldHIgdHlwZWNo ZWNrIGZhaWx1cmUiKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIHg4Nl9zZWdfbGR0cjoK KyAgICAgICAgaWYgKCByZWctPmF0dHIuZmllbGRzLnAgKQorICAgICAgICB7CisgICAgICAgICAg ICBBU1NFUlQoIXJlZy0+YXR0ci5maWVsZHMucyk7ICAgICAgICAgICAgIC8qIFN5c3RlbSBzZWdt ZW50LiAqLworICAgICAgICAgICAgQVNTRVJUKCEocmVnLT5zZWwgJiAweDQpKTsgICAgICAgICAg ICAgICAvKiAhVEkuICovCisgICAgICAgICAgICBBU1NFUlQocmVnLT5hdHRyLmZpZWxkcy50eXBl ID09IFNZU19ERVNDX2xkdCk7CisgICAgICAgICAgICBBU1NFUlQoaXNfY2Fub25pY2FsX2FkZHJl c3MocmVnLT5iYXNlKSk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIHg4 Nl9zZWdfZ2R0cjoKKyAgICBjYXNlIHg4Nl9zZWdfaWR0cjoKKyAgICAgICAgQVNTRVJUKGlzX2Nh bm9uaWNhbF9hZGRyZXNzKHJlZy0+YmFzZSkpOworICAgICAgICBBU1NFUlQoKHJlZy0+bGltaXQg Pj4gMTYpID09IDApOyAgICAgICAgICAgICAvKiBVcHBlciBiaXRzIGNsZWFyLiAqLworICAgICAg ICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwor ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaHZtX2Z1bmNzLnNldF9zZWdtZW50X3JlZ2lz dGVyKHYsIHNlZywgcmVnKTsKK30KKworLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6 IEMKICAqIGMtZmlsZS1zdHlsZTogIkJTRCIKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0v c3ZtL3N2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKaW5kZXggNjVlZWFiNy4uMmVh MmMxMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKKysrIGIveGVuL2Fy Y2gveDg2L2h2bS9zdm0vc3ZtLmMKQEAgLTYyNyw1MCArNjI3LDM0IEBAIHN0YXRpYyB2b2lkIHN2 bV9nZXRfc2VnbWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwgZW51bSB4ODZfc2VnbWVudCBz ZWcsCiAgICAgewogICAgIGNhc2UgeDg2X3NlZ19jczoKICAgICAgICAgbWVtY3B5KHJlZywgJnZt Y2ItPmNzLCBzaXplb2YoKnJlZykpOwotICAgICAgICByZWctPmF0dHIuZmllbGRzLnAgPSAxOwot ICAgICAgICByZWctPmF0dHIuZmllbGRzLmcgPSByZWctPmxpbWl0ID4gMHhGRkZGRjsKICAgICAg ICAgYnJlYWs7CiAgICAgY2FzZSB4ODZfc2VnX2RzOgogICAgICAgICBtZW1jcHkocmVnLCAmdm1j Yi0+ZHMsIHNpemVvZigqcmVnKSk7Ci0gICAgICAgIGlmICggcmVnLT5hdHRyLmZpZWxkcy50eXBl ICE9IDAgKQotICAgICAgICAgICAgcmVnLT5hdHRyLmZpZWxkcy50eXBlIHw9IDB4MTsKICAgICAg ICAgYnJlYWs7CiAgICAgY2FzZSB4ODZfc2VnX2VzOgogICAgICAgICBtZW1jcHkocmVnLCAmdm1j Yi0+ZXMsIHNpemVvZigqcmVnKSk7Ci0gICAgICAgIGlmICggcmVnLT5hdHRyLmZpZWxkcy50eXBl ICE9IDAgKQotICAgICAgICAgICAgcmVnLT5hdHRyLmZpZWxkcy50eXBlIHw9IDB4MTsKICAgICAg ICAgYnJlYWs7CiAgICAgY2FzZSB4ODZfc2VnX2ZzOgogICAgICAgICBzdm1fc3luY192bWNiKHYp OwogICAgICAgICBtZW1jcHkocmVnLCAmdm1jYi0+ZnMsIHNpemVvZigqcmVnKSk7Ci0gICAgICAg IGlmICggcmVnLT5hdHRyLmZpZWxkcy50eXBlICE9IDAgKQotICAgICAgICAgICAgcmVnLT5hdHRy LmZpZWxkcy50eXBlIHw9IDB4MTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSB4ODZfc2VnX2dz OgogICAgICAgICBzdm1fc3luY192bWNiKHYpOwogICAgICAgICBtZW1jcHkocmVnLCAmdm1jYi0+ Z3MsIHNpemVvZigqcmVnKSk7Ci0gICAgICAgIGlmICggcmVnLT5hdHRyLmZpZWxkcy50eXBlICE9 IDAgKQotICAgICAgICAgICAgcmVnLT5hdHRyLmZpZWxkcy50eXBlIHw9IDB4MTsKICAgICAgICAg YnJlYWs7CiAgICAgY2FzZSB4ODZfc2VnX3NzOgogICAgICAgICBtZW1jcHkocmVnLCAmdm1jYi0+ c3MsIHNpemVvZigqcmVnKSk7CiAgICAgICAgIHJlZy0+YXR0ci5maWVsZHMuZHBsID0gdm1jYi0+ X2NwbDsKLSAgICAgICAgaWYgKCByZWctPmF0dHIuZmllbGRzLnR5cGUgPT0gMCApCi0gICAgICAg ICAgICByZWctPmF0dHIuZmllbGRzLmRiID0gMDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSB4 ODZfc2VnX3RyOgogICAgICAgICBzdm1fc3luY192bWNiKHYpOwogICAgICAgICBtZW1jcHkocmVn LCAmdm1jYi0+dHIsIHNpemVvZigqcmVnKSk7Ci0gICAgICAgIHJlZy0+YXR0ci5maWVsZHMucCA9 IDE7Ci0gICAgICAgIHJlZy0+YXR0ci5maWVsZHMudHlwZSB8PSAweDI7CiAgICAgICAgIGJyZWFr OwogICAgIGNhc2UgeDg2X3NlZ19nZHRyOgogICAgICAgICBtZW1jcHkocmVnLCAmdm1jYi0+Z2R0 ciwgc2l6ZW9mKCpyZWcpKTsKLSAgICAgICAgcmVnLT5hdHRyLmJ5dGVzID0gMHg4MDsKICAgICAg ICAgYnJlYWs7CiAgICAgY2FzZSB4ODZfc2VnX2lkdHI6CiAgICAgICAgIG1lbWNweShyZWcsICZ2 bWNiLT5pZHRyLCBzaXplb2YoKnJlZykpOwotICAgICAgICByZWctPmF0dHIuYnl0ZXMgPSAweDgw OwogICAgICAgICBicmVhazsKICAgICBjYXNlIHg4Nl9zZWdfbGR0cjoKICAgICAgICAgc3ZtX3N5 bmNfdm1jYih2KTsKQEAgLTc0MCwxMSArNzI0LDExIEBAIHN0YXRpYyB2b2lkIHN2bV9zZXRfc2Vn bWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwgZW51bSB4ODZfc2VnbWVudCBzZWcsCiAgICAg ICAgIGJyZWFrOwogICAgIGNhc2UgeDg2X3NlZ19nZHRyOgogICAgICAgICB2bWNiLT5nZHRyLmJh c2UgPSByZWctPmJhc2U7Ci0gICAgICAgIHZtY2ItPmdkdHIubGltaXQgPSAodWludDE2X3QpcmVn LT5saW1pdDsKKyAgICAgICAgdm1jYi0+Z2R0ci5saW1pdCA9IHJlZy0+bGltaXQ7CiAgICAgICAg IGJyZWFrOwogICAgIGNhc2UgeDg2X3NlZ19pZHRyOgogICAgICAgICB2bWNiLT5pZHRyLmJhc2Ug PSByZWctPmJhc2U7Ci0gICAgICAgIHZtY2ItPmlkdHIubGltaXQgPSAodWludDE2X3QpcmVnLT5s aW1pdDsKKyAgICAgICAgdm1jYi0+aWR0ci5saW1pdCA9IHJlZy0+bGltaXQ7CiAgICAgICAgIGJy ZWFrOwogICAgIGNhc2UgeDg2X3NlZ19sZHRyOgogICAgICAgICBtZW1jcHkoJnZtY2ItPmxkdHIs IHJlZywgc2l6ZW9mKCpyZWcpKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Zt eC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKaW5kZXggMzc3Yzc4OS4uMDA0ZGFkOCAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKKysrIGIveGVuL2FyY2gveDg2 L2h2bS92bXgvdm14LmMKQEAgLTExMjYsOSArMTEyNiw2IEBAIHN0YXRpYyB2b2lkIHZteF9zZXRf c2VnbWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwgZW51bSB4ODZfc2VnbWVudCBzZWcsCiAg ICAgICovCiAgICAgYXR0ciA9ICghKGF0dHIgJiAoMXUgPDwgNykpIDw8IDE2KSB8ICgoYXR0ciAm IDB4ZjAwKSA8PCA0KSB8IChhdHRyICYgMHhmZik7CiAKLSAgICAvKiBWTVggaGFzIHN0cmljdCBj b25zaXN0ZW5jeSByZXF1aXJlbWVudCBmb3IgZmxhZyBHLiAqLwotICAgIGF0dHIgfD0gISEobGlt aXQgPj4gMjApIDw8IDE1OwotCiAgICAgdm14X3ZtY3NfZW50ZXIodik7CiAKICAgICBzd2l0Y2gg KCBzZWcgKQpAQCAtMTE3Myw4ICsxMTcwLDcgQEAgc3RhdGljIHZvaWQgdm14X3NldF9zZWdtZW50 X3JlZ2lzdGVyKHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywKICAgICAgICAg X192bXdyaXRlKEdVRVNUX1RSX1NFTEVDVE9SLCBzZWwpOwogICAgICAgICBfX3Ztd3JpdGUoR1VF U1RfVFJfTElNSVQsIGxpbWl0KTsKICAgICAgICAgX192bXdyaXRlKEdVRVNUX1RSX0JBU0UsIGJh c2UpOwotICAgICAgICAvKiBWTVggY2hlY2tzIHRoYXQgdGhlIHRoZSBidXN5IGZsYWcgKGJpdCAx KSBpcyBzZXQuICovCi0gICAgICAgIF9fdm13cml0ZShHVUVTVF9UUl9BUl9CWVRFUywgYXR0ciB8 IDIpOworICAgICAgICBfX3Ztd3JpdGUoR1VFU1RfVFJfQVJfQllURVMsIGF0dHIpOwogICAgICAg ICBicmVhazsKICAgICBjYXNlIHg4Nl9zZWdfZ2R0cjoKICAgICAgICAgX192bXdyaXRlKEdVRVNU X0dEVFJfTElNSVQsIGxpbWl0KTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZGVz Yy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9kZXNjLmgKaW5kZXggMGUyZDk3Zi4uZGE5MjRiZiAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kZXNjLmgKKysrIGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9kZXNjLmgKQEAgLTg5LDcgKzg5LDEzIEBACiAjaWZuZGVmIF9fQVNTRU1CTFlfXwog CiAvKiBTeXN0ZW0gRGVzY3JpcHRvciB0eXBlcyBmb3IgR0RUIGFuZCBJRFQgZW50cmllcy4gKi8K KyNkZWZpbmUgU1lTX0RFU0NfdHNzMTZfYXZhaWwgIDEKICNkZWZpbmUgU1lTX0RFU0NfbGR0ICAg ICAgICAgIDIKKyNkZWZpbmUgU1lTX0RFU0NfdHNzMTZfYnVzeSAgIDMKKyNkZWZpbmUgU1lTX0RF U0NfY2FsbF9nYXRlMTYgIDQKKyNkZWZpbmUgU1lTX0RFU0NfdGFza19nYXRlICAgIDUKKyNkZWZp bmUgU1lTX0RFU0NfaXJxX2dhdGUxNiAgIDYKKyNkZWZpbmUgU1lTX0RFU0NfdHJhcF9nYXRlMTYg IDcKICNkZWZpbmUgU1lTX0RFU0NfdHNzX2F2YWlsICAgIDkKICNkZWZpbmUgU1lTX0RFU0NfdHNz X2J1c3kgICAgIDExCiAjZGVmaW5lIFNZU19ERVNDX2NhbGxfZ2F0ZSAgICAxMgpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS9odm0uaAppbmRleCA1MWE2NGY3Li5iMzdiMzM1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L2h2bS9odm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaApAQCAt MzU4LDE5ICszNTgsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGh2bV9mbHVzaF9ndWVzdF90bGJz KHZvaWQpCiB2b2lkIGh2bV9oeXBlcmNhbGxfcGFnZV9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4g KmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmh5cGVyY2FsbF9w YWdlKTsKIAotc3RhdGljIGlubGluZSB2b2lkCi1odm1fZ2V0X3NlZ21lbnRfcmVnaXN0ZXIoc3Ry dWN0IHZjcHUgKnYsIGVudW0geDg2X3NlZ21lbnQgc2VnLAotICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyICpyZWcpCi17Ci0gICAgaHZtX2Z1bmNzLmdldF9z ZWdtZW50X3JlZ2lzdGVyKHYsIHNlZywgcmVnKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkCi1o dm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIoc3RydWN0IHZjcHUgKnYsIGVudW0geDg2X3NlZ21lbnQg c2VnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyICpy ZWcpCi17Ci0gICAgaHZtX2Z1bmNzLnNldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHNlZywgcmVnKTsK LX0KK3ZvaWQgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4 Nl9zZWdtZW50IHNlZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZWdt ZW50X3JlZ2lzdGVyICpyZWcpOwordm9pZCBodm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIoc3RydWN0 IHZjcHUgKnYsIGVudW0geDg2X3NlZ21lbnQgc2VnLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIgKnJlZyk7CiAKIHN0YXRpYyBpbmxpbmUgdW5z aWduZWQgbG9uZyBodm1fZ2V0X3NoYWRvd19nc19iYXNlKHN0cnVjdCB2Y3B1ICp2KQogewotLSAK Mi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK