From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 6/6] x86/xstate: Fix latent bugs in compress_xsave_states() Date: Mon, 12 Sep 2016 17:21:29 +0100 Message-ID: <1473697289-4289-7-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 Y29tcHJlc3NfeHNhdmVfc3RhdGVzKCkgbXVzdG4ndCByZWFkIHhzdGF0ZV9idiBvciB4Y29tcF9i diBiZWZvcmUgZmlyc3QKY29uZmlybWluZyB0aGF0IHRoZSBpbnB1dCBidWZmZXIgaXMgbGFyZ2Ug ZW5vdWdoLiAgSXQgYWxzbyBkb2Vzbid0IGNvcGUgd2l0aApjb21wcmVzc2VkIGlucHV0LiAgTWFr ZSBhbGwgb2YgdGhlc2UgcHJvYmxlbXMgdGhlIGNhbGxlcnMgcmVzcG9uc2JpbGl0eSB0bwplbnN1 cmUuCgpTaW1wbGlmeSB0aGUgZGVjb21wcmVzc2lvbiBsb2dpYyBieSBpbmxpbmluZyBnZXRfeHNh dmVfYWRkcigpLiAgQXMgeHN0YXRlX2J2CmlzIHByZXZpb3VzbHkgdmFsaWRhdGVkLCBkZXN0IHdv bid0IGV2ZXIgYmVlbiBOVUxMLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5j b20+Cgp2MjoKICogSW5saW5lIGdldF94c2F2ZV9hZGRyKCkgdG8gc2ltcGxpZnkgdGhlIGxvZ2lj CiAqIERyb3AgdGhlIFRPRE8KLS0tCiB4ZW4vYXJjaC94ODYveHN0YXRlLmMgfCA0NSArKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAy NyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYveHN0YXRlLmMgYi94ZW4vYXJjaC94ODYveHN0YXRlLmMKaW5kZXggZWQ5YzRjNy4uOWJlOThl NiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3hzdGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94 c3RhdGUuYwpAQCAtMTU0LDE1ICsxNTQsNiBAQCBzdGF0aWMgdm9pZCBzZXR1cF94c3RhdGVfY29t cCh1aW50MTZfdCAqY29tcF9vZmZzZXRzLAogICAgIEFTU0VSVChvZmZzZXQgPD0geHNhdmVfY250 eHRfc2l6ZSk7CiB9CiAKLXN0YXRpYyB2b2lkICpnZXRfeHNhdmVfYWRkcihzdHJ1Y3QgeHNhdmVf c3RydWN0ICp4c2F2ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MTZf dCAqY29tcF9vZmZzZXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCB4ZmVhdHVyZV9pZHgpCi17Ci0gICAgQVNTRVJUKHhzYXZlX2FyZWFfY29tcHJlc3NlZCh4c2F2 ZSkpOwotICAgIHJldHVybiAoMXVsIDw8IHhmZWF0dXJlX2lkeCkgJiB4c2F2ZS0+eHNhdmVfaGRy LnhzdGF0ZV9idiA/Ci0gICAgICAgICAgICh2b2lkICopeHNhdmUgKyBjb21wX29mZnNldHNbeGZl YXR1cmVfaWR4XSA6IE5VTEw7Ci19Ci0KIC8qCiAgKiBTZXJpYWxpc2UgYSB2Y3B1cyB4c2F2ZSBz dGF0ZSBpbnRvIGEgcmVwcmVzZW50YXRpb24gc3VpdGFibGUgZm9yIHRoZQogICogdG9vbHN0YWNr LgpAQCAtMjI5LDE0ICsyMjAsMjggQEAgdm9pZCBleHBhbmRfeHNhdmVfc3RhdGVzKHN0cnVjdCB2 Y3B1ICp2LCB2b2lkICpkZXN0LCB1bnNpZ25lZCBpbnQgc2l6ZSkKICAgICB9CiB9CiAKKy8qCisg KiBEZXNlcmlhbGlzZSBhIHRvb2xzdGFjaydzIHhzYXZlIHN0YXRlIHJlcHJlc2VudGF0aW9uIHN1 aXRhYmx5IGZvciBhIHZjcHUuCisgKgorICogSW50ZXJuYWxseSBhIHZjcHVzIHhzYXZlIHN0YXRl IG1heSBiZSBjb21wcmVzc2VkIG9yIHVuY29tcHJlc3NlZCwgZGVwZW5kaW5nCisgKiBvbiB0aGUg ZmVhdHVyZXMgaW4gdXNlLCBidXQgdGhlIEFCSSB3aXRoIHRoZSB0b29sc3RhY2sgaXMgc3RyaWN0 bHkKKyAqIHVuY29tcHJlc3NlZC4KKyAqCisgKiBJdCBpcyB0aGUgY2FsbGVycyByZXNwb25zaWJp bGl0eSB0byBlbnN1cmUgdGhhdCB0aGUgc291cmNlIGJ1ZmZlciBjb250YWlucworICogeHNhdmUg c3RhdGUsIGlzIHVuY29tcHJlc3NlZCwgYW5kIGlzIGV4YWN0bHkgdGhlIHJpZ2h0IHNpemUuCisg Ki8KIHZvaWQgY29tcHJlc3NfeHNhdmVfc3RhdGVzKHN0cnVjdCB2Y3B1ICp2LCBjb25zdCB2b2lk ICpzcmMsIHVuc2lnbmVkIGludCBzaXplKQogewogICAgIHN0cnVjdCB4c2F2ZV9zdHJ1Y3QgKnhz YXZlID0gdi0+YXJjaC54c2F2ZV9hcmVhOworICAgIHZvaWQgKmRlc3Q7CiAgICAgdWludDE2X3Qg Y29tcF9vZmZzZXRzW3NpemVvZih4ZmVhdHVyZV9tYXNrKSo4XTsKLSAgICB1NjQgeHN0YXRlX2J2 ID0gKChjb25zdCBzdHJ1Y3QgeHNhdmVfc3RydWN0ICopc3JjKS0+eHNhdmVfaGRyLnhzdGF0ZV9i djsKLSAgICB1NjQgdmFsaWQ7CisgICAgdTY0IHhzdGF0ZV9idiwgdmFsaWQ7CiAKLSAgICBBU1NF UlQoIXhzYXZlX2FyZWFfY29tcHJlc3NlZChzcmMpKTsKKyAgICBCVUdfT04oIXYtPmFyY2gueGNy MF9hY2N1bSk7CisgICAgQlVHX09OKHNpemUgIT0geHN0YXRlX2N0eHRfc2l6ZSh2LT5hcmNoLnhj cjBfYWNjdW0pKTsKKyAgICBCVUdfT04oeHNhdmVfYXJlYV9jb21wcmVzc2VkKHNyYykpOworCisg ICAgeHN0YXRlX2J2ID0gKChjb25zdCBzdHJ1Y3QgeHNhdmVfc3RydWN0ICopc3JjKS0+eHNhdmVf aGRyLnhzdGF0ZV9idjsKIAogICAgIGlmICggISh2LT5hcmNoLnhjcjBfYWNjdW0gJiBYU1RBVEVf WFNBVkVTX09OTFkpICkKICAgICB7CkBAIC0yNjAsMTggKzI2NSwyMiBAQCB2b2lkIGNvbXByZXNz X3hzYXZlX3N0YXRlcyhzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgdm9pZCAqc3JjLCB1bnNpZ25lZCBp bnQgc2l6ZSkKICAgICAgKiBDb3B5IGVhY2ggcmVnaW9uIGZyb20gdGhlIG5vbi1jb21wYWN0ZWQg b2Zmc2V0IHRvIHRoZQogICAgICAqIHBvc3NpYmx5IGNvbXBhY3RlZCBvZmZzZXQuCiAgICAgICov CisgICAgZGVzdCA9IHhzYXZlOwogICAgIHZhbGlkID0geHN0YXRlX2J2ICYgflhTVEFURV9GUF9T U0U7CiAgICAgd2hpbGUgKCB2YWxpZCApCiAgICAgewogICAgICAgICB1NjQgZmVhdHVyZSA9IHZh bGlkICYgLXZhbGlkOwogICAgICAgICB1bnNpZ25lZCBpbnQgaW5kZXggPSBmbHMoZmVhdHVyZSkg LSAxOwotICAgICAgICB2b2lkICpkZXN0ID0gZ2V0X3hzYXZlX2FkZHIoeHNhdmUsIGNvbXBfb2Zm c2V0cywgaW5kZXgpOwogCi0gICAgICAgIGlmICggZGVzdCApCi0gICAgICAgIHsKLSAgICAgICAg ICAgIEFTU0VSVCgoeHN0YXRlX29mZnNldHNbaW5kZXhdICsgeHN0YXRlX3NpemVzW2luZGV4XSkg PD0gc2l6ZSk7Ci0gICAgICAgICAgICBtZW1jcHkoZGVzdCwgc3JjICsgeHN0YXRlX29mZnNldHNb aW5kZXhdLCB4c3RhdGVfc2l6ZXNbaW5kZXhdKTsKLSAgICAgICAgfQorICAgICAgICAvKgorICAg ICAgICAgKiBXZSBwcmV2aW91c2x5IHZlcmlmaWVkIHhzdGF0ZV9idi4gIElmIHdlIGRvbid0IGhh dmUgdmFsaWQKKyAgICAgICAgICogY29tcF9vZmZzZXRbXSBpbmZvcm1hdGlvbiwgc29tZXRoaW5n IGlzIHZlcnkgYnJva2VuLgorICAgICAgICAgKi8KKyAgICAgICAgQlVHX09OKCFjb21wX29mZnNl dHNbaW5kZXhdKTsKKyAgICAgICAgQlVHX09OKCh4c3RhdGVfb2Zmc2V0c1tpbmRleF0gKyB4c3Rh dGVfc2l6ZXNbaW5kZXhdKSA+IHNpemUpOworCisgICAgICAgIG1lbWNweShkZXN0ICsgY29tcF9v ZmZzZXRzW2luZGV4XSwgc3JjICsgeHN0YXRlX29mZnNldHNbaW5kZXhdLAorICAgICAgICAgICAg ICAgeHN0YXRlX3NpemVzW2luZGV4XSk7CiAKICAgICAgICAgdmFsaWQgJj0gfmZlYXR1cmU7CiAg ICAgfQotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK