From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 6/6] x86/xstate: Fix latent bugs in compress_xsave_states() Date: Mon, 12 Sep 2016 10:51:40 +0100 Message-ID: <1473673900-8585-7-git-send-email-andrew.cooper3@citrix.com> References: <1473673900-8585-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: <1473673900-8585-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 cmUuCgpUaGUgbG9naWMgY2FudCBjb3BlIHdpdGggYW4geHN0YXRlIGNoYW5nZSB3aGljaCB3b3Vs ZCBmb3JjZSB0aGUgdXNlIG9mIHhyc3RvcnMKd2hlbiB0aGUgdmNwdSBpcyB1bnBhdXNlZC4gIExl YXZlIGEgVE9ETyBhbmQgQlVHX09OKCkgdG8gbWFrZSB0aGlzIG9idmlvdXMgdG8Kd2hvbWV2ZXIg aXMgZmlyc3QgdG8gaW1wbGVtZW50IGFuIHhzYXZlcy1vbmx5IHN0YXRlLCByYXRoZXIgdGhhbiBj YXVzaW5nIGRhdGEKY29ycnVwdGlvbi4KCkZpbmFsbHksIGF2b2lkIHNpbGVudGx5IGRpc2NhcmRp bmcgaW5jb21pbmcgc3RhdGVzIGlmIHNvbWV0aGluZyBlbmRzIHVwIHdyb25nCndpdGggY29tcF9v ZmZzZXRzW10uICBUaGlzIGNhc2Ugc2hvdWxkbid0IGJlIGFibGUgdG8gaGFwcGVuIGlmIHRoZSBw cmVjZWVkaW5nCnZlcmlmaWNhdGlvbiBpcyBjb3JyZWN0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3 IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8 SkJldWxpY2hAc3VzZS5jb20+Ci0tLQogeGVuL2FyY2gveDg2L3hzdGF0ZS5jIHwgMzcgKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI5IGluc2Vy dGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3hzdGF0 ZS5jIGIveGVuL2FyY2gveDg2L3hzdGF0ZS5jCmluZGV4IGY2MTU3ZjUuLjkzN2FiYzYgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni94c3RhdGUuYworKysgYi94ZW4vYXJjaC94ODYveHN0YXRlLmMK QEAgLTIyNCwxNyArMjI0LDM2IEBAIHZvaWQgZXhwYW5kX3hzYXZlX3N0YXRlcyhzdHJ1Y3QgdmNw dSAqdiwgdm9pZCAqZGVzdCwgdW5zaWduZWQgaW50IHNpemUpCiAgICAgfQogfQogCisvKgorICog RGVzZXJpYWxpc2UgYSB0b29sc3RhY2sncyB4c2F2ZSBzdGF0ZSByZXByZXNlbnRhdGlvbiBzdWl0 YWJseSBmb3IgYSB2Y3B1LgorICoKKyAqIEludGVybmFsbHkgYSB2Y3B1cyB4c2F2ZSBzdGF0ZSBt YXkgYmUgY29tcHJlc3NlZCBvciB1bmNvbXByZXNzZWQsIGRlcGVuZGluZworICogb24gdGhlIGZl YXR1cmVzIGluIHVzZSwgYnV0IHRoZSBBQkkgd2l0aCB0aGUgdG9vbHN0YWNrIGlzIHN0cmljdGx5 CisgKiB1bmNvbXByZXNzZWQuCisgKgorICogSXQgaXMgdGhlIGNhbGxlcnMgcmVzcG9uc2liaWxp dHkgdG8gZW5zdXJlIHRoYXQgdGhlIHNvdXJjZSBidWZmZXIgY29udGFpbnMKKyAqIHhzYXZlIHN0 YXRlLCBpcyB1bmNvbXByZXNzZWQsIGFuZCBpcyBleGFjdGx5IHRoZSByaWdodCBzaXplLgorICov CiB2b2lkIGNvbXByZXNzX3hzYXZlX3N0YXRlcyhzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgdm9pZCAq c3JjLCB1bnNpZ25lZCBpbnQgc2l6ZSkKIHsKICAgICBzdHJ1Y3QgeHNhdmVfc3RydWN0ICp4c2F2 ZSA9IHYtPmFyY2gueHNhdmVfYXJlYTsKICAgICB1aW50MTZfdCBjb21wX29mZnNldHNbc2l6ZW9m KHhmZWF0dXJlX21hc2spKjhdOwotICAgIHU2NCB4c3RhdGVfYnYgPSAoKGNvbnN0IHN0cnVjdCB4 c2F2ZV9zdHJ1Y3QgKilzcmMpLT54c2F2ZV9oZHIueHN0YXRlX2J2OwotICAgIHU2NCB2YWxpZDsK KyAgICB1NjQgeHN0YXRlX2J2LCB2YWxpZDsKKworICAgIEJVR19PTighdi0+YXJjaC54Y3IwX2Fj Y3VtKTsKKyAgICBCVUdfT04oc2l6ZSAhPSB4c3RhdGVfY3R4dF9zaXplKHYtPmFyY2gueGNyMF9h Y2N1bSkpOworICAgIEJVR19PTih4c2F2ZV9hcmVhX2NvbXByZXNzZWQoc3JjKSk7CiAKLSAgICBB U1NFUlQoIXhzYXZlX2FyZWFfY29tcHJlc3NlZChzcmMpKTsKKyAgICB4c3RhdGVfYnYgPSAoKGNv bnN0IHN0cnVjdCB4c2F2ZV9zdHJ1Y3QgKilzcmMpLT54c2F2ZV9oZHIueHN0YXRlX2J2OwogCiAg ICAgaWYgKCAhKHYtPmFyY2gueGNyMF9hY2N1bSAmIFhTVEFURV9YU0FWRVNfT05MWSkgKQogICAg IHsKKyAgICAgICAgLyoKKyAgICAgICAgICogVE9ETzogVGhpcyBsb2dpYyBkb2Vzbid0IGN1cnJl bnRseSBoYW5kbGUgcmVzdG9yYXRpb24gb2YgeHNhdmUKKyAgICAgICAgICogc3RhdGUgd2hpY2gg d291bGQgZm9yY2UgdGhlIHZjcHUgZnJvbSB1bmNvbXByZXNzZWQgdG8gY29tcHJlc3NlZC4KKyAg ICAgICAgICovCisgICAgICAgIEJVR19PTih4c3RhdGVfYnYgJiBYU1RBVEVfWFNBVkVTX09OTFkp OworCiAgICAgICAgIG1lbWNweSh4c2F2ZSwgc3JjLCBzaXplKTsKICAgICAgICAgcmV0dXJuOwog ICAgIH0KQEAgLTI2MiwxMSArMjgxLDEzIEBAIHZvaWQgY29tcHJlc3NfeHNhdmVfc3RhdGVzKHN0 cnVjdCB2Y3B1ICp2LCBjb25zdCB2b2lkICpzcmMsIHVuc2lnbmVkIGludCBzaXplKQogICAgICAg ICB1bnNpZ25lZCBpbnQgaW5kZXggPSBmbHMoZmVhdHVyZSkgLSAxOwogICAgICAgICB2b2lkICpk ZXN0ID0gZ2V0X3hzYXZlX2FkZHIoeHNhdmUsIGNvbXBfb2Zmc2V0cywgaW5kZXgpOwogCi0gICAg ICAgIGlmICggZGVzdCApCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVCgoeHN0YXRlX29m ZnNldHNbaW5kZXhdICsgeHN0YXRlX3NpemVzW2luZGV4XSkgPD0gc2l6ZSk7Ci0gICAgICAgICAg ICBtZW1jcHkoZGVzdCwgc3JjICsgeHN0YXRlX29mZnNldHNbaW5kZXhdLCB4c3RhdGVfc2l6ZXNb aW5kZXhdKTsKLSAgICAgICAgfQorICAgICAgICAvKgorICAgICAgICAgKiBXZSBwcmV2aW91c2x5 IHZlcmlmaWVkIHhzdGF0ZV9idi4gIElmIHdlIGRvbid0IGhhdmUgdmFsaWQKKyAgICAgICAgICog Y29tcF9vZmZzZXRbXSBpbmZvcm1hdGlvbiwgc29tZXRoaW5nIGlzIHZlcnkgYnJva2VuLgorICAg ICAgICAgKi8KKyAgICAgICAgQlVHX09OKCFkZXN0KTsKKyAgICAgICAgQlVHX09OKCh4c3RhdGVf b2Zmc2V0c1tpbmRleF0gKyB4c3RhdGVfc2l6ZXNbaW5kZXhdKSA8PSBzaXplKTsKKyAgICAgICAg bWVtY3B5KGRlc3QsIHNyYyArIHhzdGF0ZV9vZmZzZXRzW2luZGV4XSwgeHN0YXRlX3NpemVzW2lu ZGV4XSk7CiAKICAgICAgICAgdmFsaWQgJj0gfmZlYXR1cmU7CiAgICAgfQotLSAKMi4xLjQKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK