From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 4/6] x86/xstate: Fix latent bugs in expand_xsave_states() Date: Mon, 12 Sep 2016 17:21:27 +0100 Message-ID: <1473697289-4289-5-git-send-email-andrew.cooper3@citrix.com> References: <1473697289-4289-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: <1473697289-4289-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 , Jan Beulich List-Id: xen-devel@lists.xenproject.org V2l0aG91dCBjaGVja2luZyB0aGUgc2l6ZSBpbnB1dCwgdGhlIG1lbWNweSgpIGZvciB0aGUgdW5j b21wcmVzc2VkIHBhdGggbWlnaHQKcmVhZCBvZmYgdGhlIGVuZCBvZiB0aGUgdmNwdSdzIHhzYXZl X2FyZWEuICBCb3RoIGNhbGxlcnMgcGFzcyB0aGUgYXBwcm9wcml0ZQpzaXplLCBzbyBob2xkIHRo ZW0gdG8gaXQgd2l0aCBhIEJVR19PTigpLgoKVGhlIGNvbXByZXNzZWQgcGF0aCBpcyBjdXJyZW50 bHkgZGVhZCBjb2RlLCBidXQgaXRzIGF0dGVtcHQgdG8gYXZvaWQgbGVha2luZwp1bmluaXRhbGlz ZWQgZGF0YSB3YXMgaW5jb21wbGV0ZS4gIFdvcmsgYXJvdW5kIHRoaXMgYnkgemVyb2luZyB0aGUg d2hvbGUgcmVzdApvZiB0aGUgYnVmZmVyIGJlZm9yZSBkZWNvbXByZXNzaW9uLgoKVGhlIGxvb3Ag c2tpcHMgYWxsIGJpdHMgd2hpY2ggYXJlbid0IHNldCBpbiB4c3RhdGVfYnYsIG1lYW5pbmcgdGhh dCB0aGUKbWVtc2V0KCkgd2FzIGRlYWQgY29kZS4gIFRoZSBsb2dpYyBpcyBtb3JlIG9idmlvdXMg d2l0aCBnZXRfeHNhdmVfYWRkcigpCmV4cGFuZGVkIGlubGluZSwgYWxsb3dpbmcgZm9yIHF1aXRl IGEgbG90IG9mIHNpbXBsaWZpY2F0aW9uLCBpbmNsdWRpbmcgYWxsIHRoZQpOVUxMIHBvaW50ZXIg bG9naWMuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KCnYyOgogKiBn ZXRfeHNhdmVfYWRkcigpIGV4cGFuZGVkIGlubGluZSB0byBzaW1wbGlmeSB0aGUgbG9naWMgc3Vi c3RhbnRpYWxseS4KLS0tCiB4ZW4vYXJjaC94ODYveHN0YXRlLmMgfCAzNiArKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCsp LCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94c3RhdGUuYyBiL3hl bi9hcmNoL3g4Ni94c3RhdGUuYwppbmRleCA2ZTRhMGQzLi4yNjg0MTkwIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYveHN0YXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3hzdGF0ZS5jCkBAIC0xNjks MTMgKzE2OSwzMCBAQCBzdGF0aWMgdm9pZCAqZ2V0X3hzYXZlX2FkZHIoc3RydWN0IHhzYXZlX3N0 cnVjdCAqeHNhdmUsCiAgICAgICAgICAgICh2b2lkICopeHNhdmUgKyBjb21wX29mZnNldHNbeGZl YXR1cmVfaWR4XSA6IE5VTEw7CiB9CiAKKy8qCisgKiBTZXJpYWxpc2UgYSB2Y3B1cyB4c2F2ZSBz dGF0ZSBpbnRvIGEgcmVwcmVzZW50YXRpb24gc3VpdGFibGUgZm9yIHRoZQorICogdG9vbHN0YWNr LgorICoKKyAqIEludGVybmFsbHkgYSB2Y3B1cyB4c2F2ZSBzdGF0ZSBtYXkgYmUgY29tcHJlc3Nl ZCBvciB1bmNvbXByZXNzZWQsIGRlcGVuZGluZworICogb24gdGhlIGZlYXR1cmVzIGluIHVzZSwg YnV0IHRoZSBBQkkgd2l0aCB0aGUgdG9vbHN0YWNrIGlzIHN0cmljdGx5CisgKiB1bmNvbXByZXNz ZWQuCisgKgorICogSXQgaXMgdGhlIGNhbGxlcnMgcmVzcG9uc2liaWxpdHkgdG8gZW5zdXJlIHRo YXQgdGhlcmUgaXMgeHNhdmUgc3RhdGUgdG8KKyAqIHNlcmlhbGlzZSwgYW5kIHRoYXQgdGhlIHBy b3ZpZGVkIGJ1ZmZlciBpcyBleGFjdGx5IHRoZSByaWdodCBzaXplLgorICovCiB2b2lkIGV4cGFu ZF94c2F2ZV9zdGF0ZXMoc3RydWN0IHZjcHUgKnYsIHZvaWQgKmRlc3QsIHVuc2lnbmVkIGludCBz aXplKQogewogICAgIHN0cnVjdCB4c2F2ZV9zdHJ1Y3QgKnhzYXZlID0gdi0+YXJjaC54c2F2ZV9h cmVhOworICAgIGNvbnN0IHZvaWQgKnNyYzsKICAgICB1aW50MTZfdCBjb21wX29mZnNldHNbc2l6 ZW9mKHhmZWF0dXJlX21hc2spKjhdOwogICAgIHU2NCB4c3RhdGVfYnYgPSB4c2F2ZS0+eHNhdmVf aGRyLnhzdGF0ZV9idjsKICAgICB1NjQgdmFsaWQ7CiAKKyAgICAvKiBDaGVjayB0aGVyZSBpcyBz dGF0ZSB0byBzZXJpYWxpc2UgKGkuZS4gYXQgbGVhc3QgYW4gWFNBVkVfSERSKSAqLworICAgIEJV R19PTighdi0+YXJjaC54Y3IwX2FjY3VtKTsKKyAgICAvKiBDaGVjayB0aGVyZSBpcyB0aGUgY29y cmVjdCByb29tIHRvIGRlY29tcHJlc3MgaW50by4gKi8KKyAgICBCVUdfT04oc2l6ZSAhPSB4c3Rh dGVfY3R4dF9zaXplKHYtPmFyY2gueGNyMF9hY2N1bSkpOworCiAgICAgaWYgKCAhKHhzYXZlLT54 c2F2ZV9oZHIueGNvbXBfYnYgJiBYU1RBVEVfQ09NUEFDVElPTl9FTkFCTEVEKSApCiAgICAgewog ICAgICAgICBtZW1jcHkoZGVzdCwgeHNhdmUsIHNpemUpOwpAQCAtMTg5LDYgKzIwNiw3IEBAIHZv aWQgZXhwYW5kX3hzYXZlX3N0YXRlcyhzdHJ1Y3QgdmNwdSAqdiwgdm9pZCAqZGVzdCwgdW5zaWdu ZWQgaW50IHNpemUpCiAgICAgICogQ29weSBsZWdhY3kgWFNBVkUgYXJlYSBhbmQgWFNBVkUgaGRy IGFyZWEuCiAgICAgICovCiAgICAgbWVtY3B5KGRlc3QsIHhzYXZlLCBYU1RBVEVfQVJFQV9NSU5f U0laRSk7CisgICAgbWVtc2V0KGRlc3QgKyBYU1RBVEVfQVJFQV9NSU5fU0laRSwgMCwgc2l6ZSAt IFhTVEFURV9BUkVBX01JTl9TSVpFKTsKIAogICAgICgoc3RydWN0IHhzYXZlX3N0cnVjdCAqKWRl c3QpLT54c2F2ZV9oZHIueGNvbXBfYnYgPSAgMDsKIApAQCAtMTk2LDIwICsyMTQsMjIgQEAgdm9p ZCBleHBhbmRfeHNhdmVfc3RhdGVzKHN0cnVjdCB2Y3B1ICp2LCB2b2lkICpkZXN0LCB1bnNpZ25l ZCBpbnQgc2l6ZSkKICAgICAgKiBDb3B5IGVhY2ggcmVnaW9uIGZyb20gdGhlIHBvc3NpYmx5IGNv bXBhY3RlZCBvZmZzZXQgdG8gdGhlCiAgICAgICogbm9uLWNvbXBhY3RlZCBvZmZzZXQuCiAgICAg ICovCisgICAgc3JjID0geHNhdmU7CiAgICAgdmFsaWQgPSB4c3RhdGVfYnYgJiB+WFNUQVRFX0ZQ X1NTRTsKICAgICB3aGlsZSAoIHZhbGlkICkKICAgICB7CiAgICAgICAgIHU2NCBmZWF0dXJlID0g dmFsaWQgJiAtdmFsaWQ7CiAgICAgICAgIHVuc2lnbmVkIGludCBpbmRleCA9IGZscyhmZWF0dXJl KSAtIDE7Ci0gICAgICAgIGNvbnN0IHZvaWQgKnNyYyA9IGdldF94c2F2ZV9hZGRyKHhzYXZlLCBj b21wX29mZnNldHMsIGluZGV4KTsKIAotICAgICAgICBpZiAoIHNyYyApCi0gICAgICAgIHsKLSAg ICAgICAgICAgIEFTU0VSVCgoeHN0YXRlX29mZnNldHNbaW5kZXhdICsgeHN0YXRlX3NpemVzW2lu ZGV4XSkgPD0gc2l6ZSk7Ci0gICAgICAgICAgICBtZW1jcHkoZGVzdCArIHhzdGF0ZV9vZmZzZXRz W2luZGV4XSwgc3JjLCB4c3RhdGVfc2l6ZXNbaW5kZXhdKTsKLSAgICAgICAgfQotICAgICAgICBl bHNlCi0gICAgICAgICAgICBtZW1zZXQoZGVzdCArIHhzdGF0ZV9vZmZzZXRzW2luZGV4XSwgMCwg eHN0YXRlX3NpemVzW2luZGV4XSk7CisgICAgICAgIC8qCisgICAgICAgICAqIFdlIHByZXZpb3Vz bHkgdmVyaWZpZWQgeHN0YXRlX2J2LiAgSWYgdGhlcmUgaXNuJ3QgdmFsaWQKKyAgICAgICAgICog Y29tcF9vZmZzZXRzW10gaW5mb3JtYXRpb24sIHNvbWV0aGluZyBpcyB2ZXJ5IGJyb2tlbi4KKyAg ICAgICAgICovCisgICAgICAgIEJVR19PTighY29tcF9vZmZzZXRzW2luZGV4XSk7CisgICAgICAg IEJVR19PTigoeHN0YXRlX29mZnNldHNbaW5kZXhdICsgeHN0YXRlX3NpemVzW2luZGV4XSkgPiBz aXplKTsKKworICAgICAgICBtZW1jcHkoZGVzdCArIHhzdGF0ZV9vZmZzZXRzW2luZGV4XSwgc3Jj ICsgY29tcF9vZmZzZXRzW2luZGV4XSwKKyAgICAgICAgICAgICAgIHhzdGF0ZV9zaXplc1tpbmRl eF0pOwogCiAgICAgICAgIHZhbGlkICY9IH5mZWF0dXJlOwogICAgIH0KLS0gCjIuMS40CgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==