From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kevin Tronkowski" Subject: (no subject) Date: Fri, 2 Jun 2006 09:23:43 -0400 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C68647.C5682698" Return-path: Content-class: urn:content-classes:message List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. ------_=_NextPart_001_01C68647.C5682698 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Attached is a patch which extends vmxassist to handle two cases=20 related to mode switching found while experimenting with different=20 boot loaders. The first case is use of the JMP instruction with memory location=20 operands to complete a switch to protected mode. This patch adds=20 emulation for this form of the JMP instruction to vmxassist. The second case is where boot loader code does not save/restore a=20 non-zero SS register across a protected mode traversal.=20 Zeroing the SS register in vmxassist results in all sorts of problems=20 in the domU after returning back to real mode. This patch stores=20 segment register values before entering protected mode and correctly=20 restores the old values (instead of an incorrect zero value) when=20 reentering real mode.=20 Signed-off-by Kevin Tronkowski Kevin ------_=_NextPart_001_01C68647.C5682698 Content-Type: application/octet-stream; name="vm86.patch" Content-Transfer-Encoding: base64 Content-Description: vm86.patch Content-Disposition: attachment; filename="vm86.patch" ZGlmZiAtciA2OTkzYTBmOTFlZmMgdG9vbHMvZmlybXdhcmUvdm14YXNzaXN0L3ZtODYuYwotLS0g YS90b29scy9maXJtd2FyZS92bXhhc3Npc3Qvdm04Ni5jCVRodSBKdW4gIDEgMTg6MTA6MDAgMjAw NiArMDEwMAorKysgYi90b29scy9maXJtd2FyZS92bXhhc3Npc3Qvdm04Ni5jCVRodSBKdW4gIDEg MTY6NDA6MjggMjAwNiAtMDQwMApAQCAtMzYsNiArMzYsOCBAQAogCiBzdGF0aWMgdW5zaWduZWQg cHJldl9laXAgPSAwOwogZW51bSB2bTg2X21vZGUgbW9kZSA9IDA7CisKK3N0YXRpYyBzdHJ1Y3Qg cmVncyBzYXZlZF9ybV9yZWdzOwogCiAjaWZkZWYgREVCVUcKIGludCB0cmFjZXNldCA9IDA7CkBA IC03OTUsNiArNzk3LDggQEAgcHJvdGVjdGVkX21vZGUoc3RydWN0IHJlZ3MgKnJlZ3MpCiAJb2xk Y3R4LmVzcCA9IHJlZ3MtPnVlc3A7CiAJb2xkY3R4LmVmbGFncyA9IHJlZ3MtPmVmbGFnczsKIAor CW1lbXNldCgmc2F2ZWRfcm1fcmVncywgMCwgc2l6ZW9mKHN0cnVjdCByZWdzKSk7CisKIAkvKiBy ZWxvYWQgYWxsIHNlZ21lbnQgcmVnaXN0ZXJzICovCiAJaWYgKCFsb2FkX3NlZyhyZWdzLT5jcywg Jm9sZGN0eC5jc19iYXNlLAogCQkJCSZvbGRjdHguY3NfbGltaXQsICZvbGRjdHguY3NfYXJieXRl cykpCkBAIC04MDgsNiArODEyLDcgQEAgcHJvdGVjdGVkX21vZGUoc3RydWN0IHJlZ3MgKnJlZ3Mp CiAJCWxvYWRfc2VnKDAsICZvbGRjdHguZXNfYmFzZSwKIAkJCSAgICAmb2xkY3R4LmVzX2xpbWl0 LCAmb2xkY3R4LmVzX2FyYnl0ZXMpOwogCQlvbGRjdHguZXNfc2VsID0gMDsKKwkJc2F2ZWRfcm1f cmVncy52ZXMgPSByZWdzLT52ZXM7CiAJfQogCiAJaWYgKGxvYWRfc2VnKHJlZ3MtPnVzcywgJm9s ZGN0eC5zc19iYXNlLApAQCAtODE3LDYgKzgyMiw3IEBAIHByb3RlY3RlZF9tb2RlKHN0cnVjdCBy ZWdzICpyZWdzKQogCQlsb2FkX3NlZygwLCAmb2xkY3R4LnNzX2Jhc2UsCiAJCQkgICAgJm9sZGN0 eC5zc19saW1pdCwgJm9sZGN0eC5zc19hcmJ5dGVzKTsKIAkJb2xkY3R4LnNzX3NlbCA9IDA7CisJ CXNhdmVkX3JtX3JlZ3MudXNzID0gcmVncy0+dXNzOwogCX0KIAogCWlmIChsb2FkX3NlZyhyZWdz LT52ZHMsICZvbGRjdHguZHNfYmFzZSwKQEAgLTgyNiw2ICs4MzIsNyBAQCBwcm90ZWN0ZWRfbW9k ZShzdHJ1Y3QgcmVncyAqcmVncykKIAkJbG9hZF9zZWcoMCwgJm9sZGN0eC5kc19iYXNlLAogCQkJ ICAgICZvbGRjdHguZHNfbGltaXQsICZvbGRjdHguZHNfYXJieXRlcyk7CiAJCW9sZGN0eC5kc19z ZWwgPSAwOworCQlzYXZlZF9ybV9yZWdzLnZkcyA9IHJlZ3MtPnZkczsKIAl9CiAKIAlpZiAobG9h ZF9zZWcocmVncy0+dmZzLCAmb2xkY3R4LmZzX2Jhc2UsCkBAIC04MzUsNiArODQyLDcgQEAgcHJv dGVjdGVkX21vZGUoc3RydWN0IHJlZ3MgKnJlZ3MpCiAJCWxvYWRfc2VnKDAsICZvbGRjdHguZnNf YmFzZSwKIAkJCSAgICAmb2xkY3R4LmZzX2xpbWl0LCAmb2xkY3R4LmZzX2FyYnl0ZXMpOwogCQlv bGRjdHguZnNfc2VsID0gMDsKKwkJc2F2ZWRfcm1fcmVncy52ZnMgPSByZWdzLT52ZnM7CiAJfQog CiAJaWYgKGxvYWRfc2VnKHJlZ3MtPnZncywgJm9sZGN0eC5nc19iYXNlLApAQCAtODQ0LDYgKzg1 Miw3IEBAIHByb3RlY3RlZF9tb2RlKHN0cnVjdCByZWdzICpyZWdzKQogCQlsb2FkX3NlZygwLCAm b2xkY3R4LmdzX2Jhc2UsCiAJCQkgICAgJm9sZGN0eC5nc19saW1pdCwgJm9sZGN0eC5nc19hcmJ5 dGVzKTsKIAkJb2xkY3R4LmdzX3NlbCA9IDA7CisJCXNhdmVkX3JtX3JlZ3MudmdzID0gcmVncy0+ dmdzOwogCX0KIAogCS8qIGluaXRpYWxpemUganVtcCBlbnZpcm9ubWVudCB0byB3YXJwIGJhY2sg dG8gcHJvdGVjdGVkIG1vZGUgKi8KQEAgLTg4MCwxNiArODg5LDIyIEBAIHJlYWxfbW9kZShzdHJ1 Y3QgcmVncyAqcmVncykKIAkJaWYgKHJlZ3MtPnVzcyA+PSBISUdITUVNKQogCQkJcGFuaWMoIiUl c3MgMHglbHggaGlnaGVyIHRoYW4gMU1CIiwgcmVncy0+dXNzKTsKIAkJcmVncy0+dXNzID0gYWRk cmVzcyhyZWdzLCByZWdzLT51c3MsIDApID4+IDQ7CisJfSBlbHNlIHsKKwkgIHJlZ3MtPnVzcyA9 IHNhdmVkX3JtX3JlZ3MudXNzOwogCX0KIAlpZiAocmVncy0+dmRzICE9IDApIHsKIAkJaWYgKHJl Z3MtPnZkcyA+PSBISUdITUVNKQogCQkJcGFuaWMoIiUlZHMgMHglbHggaGlnaGVyIHRoYW4gMU1C IiwgcmVncy0+dmRzKTsKIAkJcmVncy0+dmRzID0gYWRkcmVzcyhyZWdzLCByZWdzLT52ZHMsIDAp ID4+IDQ7CisJfSBlbHNlIHsKKwkgIHJlZ3MtPnZkcyA9IHNhdmVkX3JtX3JlZ3MudmRzOwogCX0K IAlpZiAocmVncy0+dmVzICE9IDApIHsKIAkJaWYgKHJlZ3MtPnZlcyA+PSBISUdITUVNKQogCQkJ cGFuaWMoIiUlZXMgMHglbHggaGlnaGVyIHRoYW4gMU1CIiwgcmVncy0+dmVzKTsKIAkJcmVncy0+ dmVzID0gYWRkcmVzcyhyZWdzLCByZWdzLT52ZXMsIDApID4+IDQ7CisJfSBlbHNlIHsKKwkgIHJl Z3MtPnZlcyA9IHNhdmVkX3JtX3JlZ3MudmVzOwogCX0KIAogCS8qIHRoaXMgc2hvdWxkIGdldCB1 cyBpbnRvIDE2LWJpdCBtb2RlICovCkBAIC05NzEsNiArOTg2LDM5IEBAIGptcGwoc3RydWN0IHJl Z3MgKnJlZ3MsIGludCBwcmVmaXgpCiAJfSBlbHNlIGlmIChtb2RlID09IFZNODZfUFJPVEVDVEVE X1RPX1JFQUwpIHsgLyoganVtcCB0byByZWFsIG1vZGUgKi8KIAkJZWlwID0gKHByZWZpeCAmIERB VEEzMikgPyBmZXRjaDMyKHJlZ3MpIDogZmV0Y2gxNihyZWdzKTsKIAkJY3MgPSBmZXRjaDE2KHJl Z3MpOworCisJCVRSQUNFKChyZWdzLCAocmVncy0+ZWlwIC0gbikgKyAxLCAiam1wbCAweCV4OjB4 JXgiLCBjcywgZWlwKSk7CisKKyAgICAgICAgICAgICAgICByZWdzLT5jcyA9IGNzOworICAgICAg ICAgICAgICAgIHJlZ3MtPmVpcCA9IGVpcDsKKwkJc2V0X21vZGUocmVncywgVk04Nl9SRUFMKTsK Kwl9IGVsc2UKKwkJcGFuaWMoImptcGwiKTsKK30KKworc3RhdGljIHZvaWQKK2ptcGxfaW5kaXJl Y3Qoc3RydWN0IHJlZ3MgKnJlZ3MsIGludCBwcmVmaXgsIHVuc2lnbmVkIG1vZHJtKQoreworCXVu c2lnbmVkIG4gPSByZWdzLT5laXA7CisJdW5zaWduZWQgY3MsIGVpcDsKKwl1bnNpZ25lZCBhZGRy OworCisJYWRkciAgPSBvcGVyYW5kKHByZWZpeCwgcmVncywgbW9kcm0pOworCisJaWYgKG1vZGUg PT0gVk04Nl9SRUFMX1RPX1BST1RFQ1RFRCkgeyAvKiBqdW1wIHRvIHByb3RlY3RlZCBtb2RlICov CisJCWVpcCA9IChwcmVmaXggJiBEQVRBMzIpID8gcmVhZDMyKGFkZHIpIDogcmVhZDE2KGFkZHIp OworCQlhZGRyICs9IChwcmVmaXggJiBEQVRBMzIpID8gNCA6IDI7CisJCWNzID0gcmVhZDE2KGFk ZHIpOworCisJCVRSQUNFKChyZWdzLCAocmVncy0+ZWlwIC0gbikgKyAxLCAiam1wbCAweCV4OjB4 JXgiLCBjcywgZWlwKSk7CisKKyAgICAgICAgICAgICAgICByZWdzLT5jcyA9IGNzOworICAgICAg ICAgICAgICAgIHJlZ3MtPmVpcCA9IGVpcDsKKwkJc2V0X21vZGUocmVncywgVk04Nl9QUk9URUNU RUQpOworCX0gZWxzZSBpZiAobW9kZSA9PSBWTTg2X1BST1RFQ1RFRF9UT19SRUFMKSB7IC8qIGp1 bXAgdG8gcmVhbCBtb2RlICovCisJCWVpcCA9IChwcmVmaXggJiBEQVRBMzIpID8gcmVhZDMyKGFk ZHIpIDogcmVhZDE2KGFkZHIpOworCQlhZGRyICs9IChwcmVmaXggJiBEQVRBMzIpID8gNCA6IDI7 CisJCWNzID0gcmVhZDE2KGFkZHIpOwogCiAJCVRSQUNFKChyZWdzLCAocmVncy0+ZWlwIC0gbikg KyAxLCAiam1wbCAweCV4OjB4JXgiLCBjcywgZWlwKSk7CiAKQEAgLTEzMDYsNiArMTM1NCwyMyBA QCBvcGNvZGUoc3RydWN0IHJlZ3MgKnJlZ3MpCiAJCQl9CiAJCQlnb3RvIGludmFsaWQ7CiAKKwkJ Y2FzZSAweEZGOiAvKiBqbXBsIChpbmRpcmVjdCkgKi8KKwkJCWlmICgobW9kZSA9PSBWTTg2X1JF QUxfVE9fUFJPVEVDVEVEKSB8fAorCQkJICAgIChtb2RlID09IFZNODZfUFJPVEVDVEVEX1RPX1JF QUwpKSB7CisJCQkgCXVuc2lnbmVkIG1vZHJtID0gZmV0Y2g4KHJlZ3MpOworCQkJCQorCQkJCXN3 aXRjaCgobW9kcm0gPj4gMykgJiA3KSB7CisJCQkJY2FzZSA1OgorCQkJCSAgam1wbF9pbmRpcmVj dChyZWdzLCBwcmVmaXgsIG1vZHJtKTsKKwkJCQkgIHJldHVybiBPUENfSU5WQUxJRDsKKworCQkJ CWRlZmF1bHQ6CisJCQkJICBicmVhazsKKwkJCQl9CisKKwkJCX0KKwkJCWdvdG8gaW52YWxpZDsK KwogCQljYXNlIDB4RUI6IC8qIHNob3J0IGp1bXAgKi8KIAkJCWlmICgobW9kZSA9PSBWTTg2X1JF QUxfVE9fUFJPVEVDVEVEKSB8fAogCQkJICAgIChtb2RlID09IFZNODZfUFJPVEVDVEVEX1RPX1JF QUwpKSB7Cg== ------_=_NextPart_001_01C68647.C5682698 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel ------_=_NextPart_001_01C68647.C5682698--