From: aq Subject: [PATCH 1/2] multiple cores and HT support Date: Sun, 19 Jun 2005 09:49:42 -0500 Message-ID: <9cde8bff050619074977c02a3c@mail.gmail.com> Reply-To: aq Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_2389_2111905.1119192582227" Return-path: 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 , Ian Pratt List-Id: xen-devel@lists.xenproject.org ------=_Part_2389_2111905.1119192582227 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline This patch adds dual-core support to xen, and improves HT detection. The code is adapted from linux kernel 2.6.12. Signed-off-by: Nguyen Anh Quynh # diffstat core2.patch=20 arch/x86/cpu/amd.c | 16 +++++++++------- arch/x86/cpu/common.c | 28 ++++++++++++++++++++-------- arch/x86/cpu/intel.c | 22 ++++++++++++++++++++++ arch/x86/dom0_ops.c | 4 ++-- arch/x86/setup.c | 1 - arch/x86/smpboot.c | 41 +++++++++++++++++++++++++++++++++++++--= -- common/dom0_ops.c | 4 ++-- include/asm-x86/processor.h | 1 + include/asm-x86/smp.h | 1 + include/xen/smp.h | 2 -- 10 files changed, 94 insertions(+), 26 deletions(-) ------=_Part_2389_2111905.1119192582227 Content-Type: text/x-patch; name="core2.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="core2.patch" ZGlmZiAtTnVycCAtWCBkb250ZGlmZiAtWCBkb250ZGlmZi54ZW4geGVuby10b2RheS94ZW4vYXJj aC94ODYvY3B1L2FtZC5jIHhlbm8uMDYxMS94ZW4vYXJjaC94ODYvY3B1L2FtZC5jCi0tLSB4ZW5v LXRvZGF5L3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMJMjAwNS0wNS0yOCAxMjoxOTo1OC4wMDAwMDAw MDAgLTA1MDAKKysrIHhlbm8uMDYxMS94ZW4vYXJjaC94ODYvY3B1L2FtZC5jCTIwMDUtMDYtMjAg MDc6NDY6MzguMDAwMDAwMDAwIC0wNTAwCkBAIC0xOTMsNyArMTkzLDE0IEBAIHN0YXRpYyB2b2lk IF9faW5pdCBpbml0X2FtZChzdHJ1Y3QgY3B1aW4KIAl9CiAKIAlkaXNwbGF5X2NhY2hlaW5mbyhj KTsKLQlkZXRlY3RfaHQoYyk7CisKKwlpZiAoY3B1aWRfZWF4KDB4ODAwMDAwMDApID49IDB4ODAw MDAwMDgpIHsKKwkJYy0+eDg2X251bV9jb3JlcyA9IChjcHVpZF9lY3goMHg4MDAwMDAwOCkgJiAw eGZmKSArIDE7CisJCWlmIChjLT54ODZfbnVtX2NvcmVzICYgKGMtPng4Nl9udW1fY29yZXMgLSAx KSkKKwkJCWMtPng4Nl9udW1fY29yZXMgPSAxOworCX0KKworICAgIGRldGVjdF9odChjKTsKIAog I2lmZGVmIENPTkZJR19YODZfSFQKIAkvKiBBTUQgZHVhbCBjb3JlIGxvb2tzIGxpa2UgSFQgYnV0 IGlzbid0IHJlYWxseS4gSGlkZSBpdCBmcm9tIHRoZQpAQCAtMjAzLDEzICsyMTAsOCBAQCBzdGF0 aWMgdm9pZCBfX2luaXQgaW5pdF9hbWQoc3RydWN0IGNwdWluCiAJICAgVEJEIHR1bmUgdGhlIGRv bWFpbiBzY2hlZHVsZXIgZm9yIGR1YWwgY29yZS4gKi8KIAlpZiAoY3B1X2hhcyhjLCBYODZfRkVB VFVSRV9DTVBfTEVHQUNZKSkKIAkJc21wX251bV9zaWJsaW5ncyA9IDE7Ci0jZW5kaWYKIAotCWlm IChjcHVpZF9lYXgoMHg4MDAwMDAwMCkgPj0gMHg4MDAwMDAwOCkgewotCQljLT54ODZfbnVtX2Nv cmVzID0gKGNwdWlkX2VjeCgweDgwMDAwMDA4KSAmIDB4ZmYpICsgMTsKLQkJaWYgKGMtPng4Nl9u dW1fY29yZXMgJiAoYy0+eDg2X251bV9jb3JlcyAtIDEpKQotCQkJYy0+eDg2X251bV9jb3JlcyA9 IDE7Ci0JfQorI2VuZGlmCiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgYW1kX3NpemVfY2FjaGUo c3RydWN0IGNwdWluZm9feDg2ICogYywgdW5zaWduZWQgaW50IHNpemUpCmRpZmYgLU51cnAgLVgg ZG9udGRpZmYgLVggZG9udGRpZmYueGVuIHhlbm8tdG9kYXkveGVuL2FyY2gveDg2L2NwdS9pbnRl bC5jIHhlbm8uMDYxMS94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKLS0tIHhlbm8tdG9kYXkveGVu L2FyY2gveDg2L2NwdS9pbnRlbC5jCTIwMDUtMDUtMjggMTI6MTk6NTguMDAwMDAwMDAwIC0wNTAw CisrKyB4ZW5vLjA2MTEveGVuL2FyY2gveDg2L2NwdS9pbnRlbC5jCTIwMDUtMDYtMTkgMDQ6MTE6 MDQuMDAwMDAwMDAwIC0wNTAwCkBAIC03Myw2ICs3MywyNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQg SW50ZWxfZXJyYXRhX3dvcmthcm91CiAJfQogfQogCisvKgorICogZmluZCBvdXQgdGhlIG51bWJl ciBvZiBwcm9jZXNzb3IgY29yZXMgb24gdGhlIGRpZQorICovCitzdGF0aWMgaW50IF9faW5pdCBu dW1fY3B1X2NvcmVzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwl1bnNpZ25lZCBpbnQgZWF4 OworCisJaWYgKGMtPmNwdWlkX2xldmVsIDwgNCkKKwkJcmV0dXJuIDE7CisKKwlfX2FzbV9fKCJj cHVpZCIKKwkJOiAiPWEiIChlYXgpCisJCTogIjAiICg0KSwgImMiICgwKQorCQk6ICJieCIsICJk eCIpOworCisJaWYgKGVheCAmIDB4MWYpCisJCXJldHVybiAoKGVheCA+PiAyNikgKyAxKTsKKwll bHNlCisJCXJldHVybiAxOworfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF9pbnRlbChzdHJ1 Y3QgY3B1aW5mb194ODYgKmMpCiB7CkBAIC0xMzYsNiArMTU2LDggQEAgc3RhdGljIHZvaWQgX19p bml0IGluaXRfaW50ZWwoc3RydWN0IGNwdQogCWlmICggcCApCiAJCXN0cmNweShjLT54ODZfbW9k ZWxfaWQsIHApOwogCQorCWMtPng4Nl9udW1fY29yZXMgPSBudW1fY3B1X2NvcmVzKGMpOworCiAJ ZGV0ZWN0X2h0KGMpOwogCiAJLyogV29yayBhcm91bmQgZXJyYXRhICovCmRpZmYgLU51cnAgLVgg ZG9udGRpZmYgLVggZG9udGRpZmYueGVuIHhlbm8tdG9kYXkveGVuL2FyY2gveDg2L2RvbTBfb3Bz LmMgeGVuby4wNjExL3hlbi9hcmNoL3g4Ni9kb20wX29wcy5jCi0tLSB4ZW5vLXRvZGF5L3hlbi9h cmNoL3g4Ni9kb20wX29wcy5jCTIwMDUtMDYtMDkgMjA6MjI6MjAuMDAwMDAwMDAwIC0wNTAwCisr KyB4ZW5vLjA2MTEveGVuL2FyY2gveDg2L2RvbTBfb3BzLmMJMjAwNS0wNi0xOSAxMzowOTozMy4w MDAwMDAwMDAgLTA1MDAKQEAgLTE3OSw4ICsxNzksOCBAQCBsb25nIGFyY2hfZG9fZG9tMF9vcChk b20wX29wX3QgKm9wLCBkb20wCiAgICAgewogICAgICAgICBkb20wX3BoeXNpbmZvX3QgKnBpID0g Jm9wLT51LnBoeXNpbmZvOwogCi0gICAgICAgIHBpLT5odF9wZXJfY29yZSA9IGh0X3Blcl9jb3Jl OwotICAgICAgICBwaS0+Y29yZXMgICAgICAgPSBudW1fb25saW5lX2NwdXMoKSAvIGh0X3Blcl9j b3JlOworICAgICAgICBwaS0+aHRfcGVyX2NvcmUgPSBzbXBfbnVtX3NpYmxpbmdzOworICAgICAg ICBwaS0+Y29yZXMgICAgICAgPSBib290X2NwdV9kYXRhLng4Nl9udW1fY29yZXM7CiAgICAgICAg IHBpLT50b3RhbF9wYWdlcyA9IG1heF9wYWdlOwogICAgICAgICBwaS0+ZnJlZV9wYWdlcyAgPSBh dmFpbF9kb21oZWFwX3BhZ2VzKCk7CiAgICAgICAgIHBpLT5jcHVfa2h6ICAgICA9IGNwdV9raHo7 CmRpZmYgLU51cnAgLVggZG9udGRpZmYgLVggZG9udGRpZmYueGVuIHhlbm8tdG9kYXkveGVuL2Fy Y2gveDg2L3NldHVwLmMgeGVuby4wNjExL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCi0tLSB4ZW5vLXRv ZGF5L3hlbi9hcmNoL3g4Ni9zZXR1cC5jCTIwMDUtMDYtMDkgMjA6MjI6MjAuMDAwMDAwMDAwIC0w NTAwCisrKyB4ZW5vLjA2MTEveGVuL2FyY2gveDg2L3NldHVwLmMJMjAwNS0wNi0xOSAxMzowMDo1 My4wMDAwMDAwMDAgLTA1MDAKQEAgLTY2LDcgKzY2LDYgQEAgYm9vbGVhbl9wYXJhbSgibm9hcGlj Iiwgc2tpcF9pb2FwaWNfc2V0dQogCiBpbnQgZWFybHlfYm9vdCA9IDE7CiAKLWludCBodF9wZXJf Y29yZSA9IDE7CiBjcHVtYXNrX3QgY3B1X3ByZXNlbnRfbWFwOwogCiAvKiBMaW1pdHMgb2YgWGVu IGhlYXAsIHVzZWQgdG8gaW5pdGlhbGlzZSB0aGUgYWxsb2NhdG9yLiAqLwpkaWZmIC1OdXJwIC1Y IGRvbnRkaWZmIC1YIGRvbnRkaWZmLnhlbiB4ZW5vLXRvZGF5L3hlbi9hcmNoL3g4Ni9zbXBib290 LmMgeGVuby4wNjExL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKLS0tIHhlbm8tdG9kYXkveGVuL2Fy Y2gveDg2L3NtcGJvb3QuYwkyMDA1LTA2LTA5IDIwOjIyOjIwLjAwMDAwMDAwMCAtMDUwMAorKysg eGVuby4wNjExL3hlbi9hcmNoL3g4Ni9zbXBib290LmMJMjAwNS0wNi0yMCAxMTowNTo0NS4wMDAw MDAwMDAgLTA1MDAKQEAgLTYzLDYgKzYzLDkgQEAgaW50IHNtcF9udW1fc2libGluZ3MgPSAxOwog aW50IHBoeXNfcHJvY19pZFtOUl9DUFVTXTsgLyogUGFja2FnZSBJRCBvZiBlYWNoIGxvZ2ljYWwg Q1BVICovCiBFWFBPUlRfU1lNQk9MKHBoeXNfcHJvY19pZCk7CiAKK2ludCBjcHVfY29yZV9pZFtO Ul9DUFVTXTsgLyogQ29yZSBJRCBvZiBlYWNoIGxvZ2ljYWwgQ1BVICovCitFWFBPUlRfU1lNQk9M KGNwdV9jb3JlX2lkKTsgCisKIC8qIGJpdG1hcCBvZiBvbmxpbmUgY3B1cyAqLwogY3B1bWFza190 IGNwdV9vbmxpbmVfbWFwOwogCkBAIC05MjMsNiArOTI2LDggQEAgc3RhdGljIGludCBib290X2Nw dV9sb2dpY2FsX2FwaWNpZDsKIHZvaWQgKnhxdWFkX3BvcnRpbzsKIAogY3B1bWFza190IGNwdV9z aWJsaW5nX21hcFtOUl9DUFVTXSBfX2NhY2hlbGluZV9hbGlnbmVkOworY3B1bWFza190IGNwdV9j b3JlX21hcFtOUl9DUFVTXSBfX2NhY2hlbGluZV9hbGlnbmVkOworRVhQT1JUX1NZTUJPTChjcHVf Y29yZV9tYXApOwogCiBzdGF0aWMgdm9pZCBfX2luaXQgc21wX2Jvb3RfY3B1cyh1bnNpZ25lZCBp bnQgbWF4X2NwdXMpCiB7CkBAIC05NDcsNiArOTUyLDkgQEAgc3RhdGljIHZvaWQgX19pbml0IHNt cF9ib290X2NwdXModW5zaWduZQogCWNwdXNfY2xlYXIoY3B1X3NpYmxpbmdfbWFwWzBdKTsKIAlj cHVfc2V0KDAsIGNwdV9zaWJsaW5nX21hcFswXSk7CiAKKwljcHVzX2NsZWFyKGNwdV9jb3JlX21h cFswXSk7CisJY3B1X3NldCgwLCBjcHVfY29yZV9tYXBbMF0pOworCiAJLyoKIAkgKiBJZiB3ZSBj b3VsZG4ndCBmaW5kIGFuIFNNUCBjb25maWd1cmF0aW9uIGF0IGJvb3QgdGltZSwKIAkgKiBnZXQg b3V0IG9mIGhlcmUgbm93IQpAQCAtOTU5LDYgKzk2Nyw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBz bXBfYm9vdF9jcHVzKHVuc2lnbmUKIAkJCXByaW50ayhLRVJOX05PVElDRSAiTG9jYWwgQVBJQyBu b3QgZGV0ZWN0ZWQuIgogCQkJCQkgICAiIFVzaW5nIGR1bW15IEFQSUMgZW11bGF0aW9uLlxuIik7 CiAJCW1hcF9jcHVfdG9fbG9naWNhbF9hcGljaWQoKTsKKwkJY3B1X3NldCgwLCBjcHVfc2libGlu Z19tYXBbMF0pOworCQljcHVfc2V0KDAsIGNwdV9jb3JlX21hcFswXSk7CiAJCXJldHVybjsKIAl9 CiAKQEAgLTk3OSw2ICs5ODksNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgc21wX2Jvb3RfY3B1cyh1 bnNpZ25lCiAJaWYgKEFQSUNfSU5URUdSQVRFRChhcGljX3ZlcnNpb25bYm9vdF9jcHVfcGh5c2lj YWxfYXBpY2lkXSkgJiYgIWNwdV9oYXNfYXBpYykgewogCQlwcmludGsoS0VSTl9FUlIgIkJJT1Mg YnVnLCBsb2NhbCBBUElDICMlZCBub3QgZGV0ZWN0ZWQhLi4uXG4iLAogCQkJYm9vdF9jcHVfcGh5 c2ljYWxfYXBpY2lkKTsKKwkJcHJpbnRrKEtFUk5fRVJSICIuLi4gZm9yY2luZyB1c2Ugb2YgZHVt bXkgQVBJQyBlbXVsYXRpb24uICh0ZWxsIHlvdXIgaHcgdmVuZG9yKVxuIik7CiAJCWdvdG8gaW5p dF91bmlwcm9jZXNzb3I7CiAJfQogCkBAIC05ODcsOCArOTk4LDEwIEBAIHN0YXRpYyB2b2lkIF9f aW5pdCBzbXBfYm9vdF9jcHVzKHVuc2lnbmUKIAkvKgogCSAqIElmIFNNUCBzaG91bGQgYmUgZGlz YWJsZWQsIHRoZW4gcmVhbGx5IGRpc2FibGUgaXQhCiAJICovCi0JaWYgKCFtYXhfY3B1cykKKwlp ZiAoIW1heF9jcHVzKSB7CisJCXNtcF9mb3VuZF9jb25maWcgPSAwOwogCQlnb3RvIGluaXRfdW5p cHJvY2Vzc29yOworICAgIH0KIAogCWNvbm5lY3RfYnNwX0FQSUMoKTsKIAlzZXR1cF9sb2NhbF9B UElDKCk7CkBAIC0xMDc5LDIwICsxMDkyLDI0IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBzbXBfYm9v dF9jcHVzKHVuc2lnbmUKIAkgKiBjb25zdHJ1Y3QgY3B1X3NpYmxpbmdfbWFwW10sIHNvIHRoYXQg d2UgY2FuIHRlbGwgc2libGluZyBDUFVzCiAJICogZWZmaWNpZW50bHkuCiAJICovCi0JZm9yIChj cHUgPSAwOyBjcHUgPCBOUl9DUFVTOyBjcHUrKykKKwlmb3IgKGNwdSA9IDA7IGNwdSA8IE5SX0NQ VVM7IGNwdSsrKSB7CiAJCWNwdXNfY2xlYXIoY3B1X3NpYmxpbmdfbWFwW2NwdV0pOworCQljcHVz X2NsZWFyKGNwdV9jb3JlX21hcFtjcHVdKTsKKwl9CiAKIAlmb3IgKGNwdSA9IDA7IGNwdSA8IE5S X0NQVVM7IGNwdSsrKSB7CisJCXN0cnVjdCBjcHVpbmZvX3g4NiAqYyA9IGNwdV9kYXRhICsgY3B1 OwogCQlpbnQgc2libGluZ3MgPSAwOwogCQlpbnQgaTsKIAkJaWYgKCFjcHVfaXNzZXQoY3B1LCBj cHVfY2FsbG91dF9tYXApKQogCQkJY29udGludWU7CiAKIAkJaWYgKHNtcF9udW1fc2libGluZ3Mg PiAxKSB7CisKIAkJCWZvciAoaSA9IDA7IGkgPCBOUl9DUFVTOyBpKyspIHsKIAkJCQlpZiAoIWNw dV9pc3NldChpLCBjcHVfY2FsbG91dF9tYXApKQogCQkJCQljb250aW51ZTsKLQkJCQlpZiAocGh5 c19wcm9jX2lkW2NwdV0gPT0gcGh5c19wcm9jX2lkW2ldKSB7CisJCQkJaWYgKGNwdV9jb3JlX2lk W2NwdV0gPT0gY3B1X2NvcmVfaWRbaV0pIHsKIAkJCQkJc2libGluZ3MrKzsKIAkJCQkJY3B1X3Nl dChpLCBjcHVfc2libGluZ19tYXBbY3B1XSk7CiAJCQkJfQpAQCAtMTEwMiwxMCArMTExOSwyNiBA QCBzdGF0aWMgdm9pZCBfX2luaXQgc21wX2Jvb3RfY3B1cyh1bnNpZ25lCiAJCQljcHVfc2V0KGNw dSwgY3B1X3NpYmxpbmdfbWFwW2NwdV0pOwogCQl9CiAKLQkJaWYgKHNpYmxpbmdzICE9IHNtcF9u dW1fc2libGluZ3MpCisKKwkJaWYgKHNpYmxpbmdzICE9IHNtcF9udW1fc2libGluZ3MpIHsKIAkJ CXByaW50ayhLRVJOX1dBUk5JTkcgIldBUk5JTkc6ICVkIHNpYmxpbmdzIGZvdW5kIGZvciBDUFUl ZCwgc2hvdWxkIGJlICVkXG4iLCBzaWJsaW5ncywgY3B1LCBzbXBfbnVtX3NpYmxpbmdzKTsKKwkJ CXNtcF9udW1fc2libGluZ3MgPSBzaWJsaW5nczsKKwkJfQorCisJCWlmIChjLT54ODZfbnVtX2Nv cmVzID4gMSkgeworCQkJZm9yIChpID0gMDsgaSA8IE5SX0NQVVM7IGkrKykgeworCQkJCWlmICgh Y3B1X2lzc2V0KGksIGNwdV9jYWxsb3V0X21hcCkpCisJCQkJCWNvbnRpbnVlOworCQkJCWlmIChw aHlzX3Byb2NfaWRbY3B1XSA9PSBwaHlzX3Byb2NfaWRbaV0pIHsKKwkJCQkJY3B1X3NldChpLCBj cHVfY29yZV9tYXBbY3B1XSk7CisJCQkJfQorCQkJfQorCQl9IGVsc2UgeworCQkJY3B1X2NvcmVf bWFwW2NwdV0gPSBjcHVfc2libGluZ19tYXBbY3B1XTsKKwkJfQogCX0KIAorCiAJaWYgKG5taV93 YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykKIAkJY2hlY2tfbm1pX3dhdGNoZG9nKCk7CiAKZGlm ZiAtTnVycCAtWCBkb250ZGlmZiAtWCBkb250ZGlmZi54ZW4geGVuby10b2RheS94ZW4vY29tbW9u L2RvbTBfb3BzLmMgeGVuby4wNjExL3hlbi9jb21tb24vZG9tMF9vcHMuYwotLS0geGVuby10b2Rh eS94ZW4vY29tbW9uL2RvbTBfb3BzLmMJMjAwNS0wNi0wOSAyMDoyMjoyMS4wMDAwMDAwMDAgLTA1 MDAKKysrIHhlbm8uMDYxMS94ZW4vY29tbW9uL2RvbTBfb3BzLmMJMjAwNS0wNi0xOSAxMzoyMTox MS4wMDAwMDAwMDAgLTA1MDAKQEAgLTE4NCw4ICsxODQsOCBAQCBsb25nIGRvX2RvbTBfb3AoZG9t MF9vcF90ICp1X2RvbTBfb3ApCiAgICAgICAgICAqIGRvbWFpbnMgd2lsbCBhbGwgc2hhcmUgdGhl IHNlY29uZCBIVCBvZiBlYWNoIENQVS4gU2luY2UgZG9tMCBpcyBvbiAKIAkgICAgICogQ1BVIDAs IHdlIGZhdm91ciBoaWdoIG51bWJlcmVkIENQVXMgaW4gdGhlIGV2ZW50IG9mIGEgdGllLgogICAg ICAgICAgKi8KLSAgICAgICAgcHJvID0gaHRfcGVyX2NvcmUgLSAxOwotICAgICAgICBmb3IgKCBp ID0gcHJvOyBpIDwgbnVtX29ubGluZV9jcHVzKCk7IGkgKz0gaHRfcGVyX2NvcmUgKQorICAgICAg ICBwcm8gPSBzbXBfbnVtX3NpYmxpbmdzIC0gMTsKKyAgICAgICAgZm9yICggaSA9IHBybzsgaSA8 IG51bV9vbmxpbmVfY3B1cygpOyBpICs9IHNtcF9udW1fc2libGluZ3MpCiAgICAgICAgICAgICBp ZiAoIGNudFtpXSA8PSBjbnRbcHJvXSApCiAgICAgICAgICAgICAgICAgcHJvID0gaTsKIApkaWZm IC1OdXJwIC1YIGRvbnRkaWZmIC1YIGRvbnRkaWZmLnhlbiB4ZW5vLXRvZGF5L3hlbi9pbmNsdWRl L2FzbS14ODYvcHJvY2Vzc29yLmggeGVuby4wNjExL3hlbi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vz c29yLmgKLS0tIHhlbm8tdG9kYXkveGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaAkyMDA1 LTA2LTA2IDExOjU0OjI5LjAwMDAwMDAwMCAtMDUwMAorKysgeGVuby4wNjExL3hlbi9pbmNsdWRl L2FzbS14ODYvcHJvY2Vzc29yLmgJMjAwNS0wNi0xOSAxMjoyMToxNy4wMDAwMDAwMDAgLTA1MDAK QEAgLTE4MSw2ICsxODEsNyBAQCBleHRlcm4gc3RydWN0IGNwdWluZm9feDg2IGNwdV9kYXRhW107 CiAjZW5kaWYKIAogZXh0ZXJuIGludCBwaHlzX3Byb2NfaWRbTlJfQ1BVU107CitleHRlcm4gIGlu dCBjcHVfY29yZV9pZFtOUl9DUFVTXTsKIAogZXh0ZXJuIHZvaWQgaWRlbnRpZnlfY3B1KHN0cnVj dCBjcHVpbmZvX3g4NiAqKTsKIGV4dGVybiB2b2lkIHByaW50X2NwdV9pbmZvKHN0cnVjdCBjcHVp bmZvX3g4NiAqKTsKZGlmZiAtTnVycCAtWCBkb250ZGlmZiAtWCBkb250ZGlmZi54ZW4geGVuby10 b2RheS94ZW4vaW5jbHVkZS9hc20teDg2L3NtcC5oIHhlbm8uMDYxMS94ZW4vaW5jbHVkZS9hc20t eDg2L3NtcC5oCi0tLSB4ZW5vLXRvZGF5L3hlbi9pbmNsdWRlL2FzbS14ODYvc21wLmgJMjAwNS0w Ni0wNiAxMTo1NDoyOS4wMDAwMDAwMDAgLTA1MDAKKysrIHhlbm8uMDYxMS94ZW4vaW5jbHVkZS9h c20teDg2L3NtcC5oCTIwMDUtMDYtMjAgMTE6MDU6NDMuMDAwMDAwMDAwIC0wNTAwCkBAIC0zNCw2 ICszNCw3IEBAIGV4dGVybiB2b2lkIHNtcF9hbGxvY19tZW1vcnkodm9pZCk7CiBleHRlcm4gaW50 IHBpY19tb2RlOwogZXh0ZXJuIGludCBzbXBfbnVtX3NpYmxpbmdzOwogZXh0ZXJuIGNwdW1hc2tf dCBjcHVfc2libGluZ19tYXBbXTsKK2V4dGVybiBjcHVtYXNrX3QgY3B1X2NvcmVfbWFwW107CiAK IGV4dGVybiB2b2lkIHNtcF9mbHVzaF90bGIodm9pZCk7CiBleHRlcm4gdm9pZCBzbXBfaW52YWxp ZGF0ZV9yY3Yodm9pZCk7CQkvKiBQcm9jZXNzIGFuIE5NSSAqLwpkaWZmIC1OdXJwIC1YIGRvbnRk aWZmIC1YIGRvbnRkaWZmLnhlbiB4ZW5vLXRvZGF5L3hlbi9pbmNsdWRlL3hlbi9zbXAuaCB4ZW5v LjA2MTEveGVuL2luY2x1ZGUveGVuL3NtcC5oCi0tLSB4ZW5vLXRvZGF5L3hlbi9pbmNsdWRlL3hl bi9zbXAuaAkyMDA1LTA2LTA5IDIwOjIyOjIxLjAwMDAwMDAwMCAtMDUwMAorKysgeGVuby4wNjEx L3hlbi9pbmNsdWRlL3hlbi9zbXAuaAkyMDA1LTA2LTE5IDEzOjIxOjExLjAwMDAwMDAwMCAtMDUw MApAQCAtNTgsOCArNTgsNiBAQCBzdGF0aWMgaW5saW5lIGludCBvbl9lYWNoX2NwdSh2b2lkICgq ZnVuCiAgICAgcmV0dXJuIHJldDsKIH0KIAotZXh0ZXJuIGludCBodF9wZXJfY29yZTsKLQogZXh0 ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgc21wX21zZ19kYXRhOwogZXh0ZXJuIHZvbGF0aWxl IGludCBzbXBfc3JjX2NwdTsKIGV4dGVybiB2b2xhdGlsZSBpbnQgc21wX21zZ19pZDsKZGlmZiAt TnVycCAtWCBkb250ZGlmZiAtWCBkb250ZGlmZi54ZW4geGVuby10b2RheS94ZW4vYXJjaC94ODYv Y3B1L2NvbW1vbi5jIHhlbm8uMDYxMS94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jCi0tLSB4ZW5v LXRvZGF5L3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9uLmMJMjAwNS0wNi0wNiAxMTo1NDoyOS4wMDAw MDAwMDAgLTA1MDAKKysrIHhlbm8uMDYxMS94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jCTIwMDUt MDYtMjAgMTE6NDU6MDUuMTE3OTQ5NjQ4IC0wNTAwCkBAIC00MzEsNyArNDMxLDcgQEAgdm9pZCBf X2luaXQgZG9kZ3lfdHNjKHZvaWQpCiB2b2lkIF9faW5pdCBkZXRlY3RfaHQoc3RydWN0IGNwdWlu Zm9feDg2ICpjKQogewogCXUzMiAJZWF4LCBlYngsIGVjeCwgZWR4OwotCWludCAJaW5kZXhfbHNi LCBpbmRleF9tc2IsIHRtcDsKKwlpbnQgCWluZGV4X21zYiwgdG1wOwogCWludCAJY3B1ID0gc21w X3Byb2Nlc3Nvcl9pZCgpOwogCiAJaWYgKCFjcHVfaGFzKGMsIFg4Nl9GRUFUVVJFX0hUKSkKQEAg LTQ0Myw3ICs0NDMsNiBAQCB2b2lkIF9faW5pdCBkZXRlY3RfaHQoc3RydWN0IGNwdWluZm9feDg2 CiAJaWYgKHNtcF9udW1fc2libGluZ3MgPT0gMSkgewogCQlwcmludGsoS0VSTl9JTkZPICAiQ1BV OiBIeXBlci1UaHJlYWRpbmcgaXMgZGlzYWJsZWRcbiIpOwogCX0gZWxzZSBpZiAoc21wX251bV9z aWJsaW5ncyA+IDEgKSB7Ci0JCWluZGV4X2xzYiA9IDA7CiAJCWluZGV4X21zYiA9IDMxOwogCiAJ CWlmIChzbXBfbnVtX3NpYmxpbmdzID4gTlJfQ1BVUykgewpAQCAtNDUyLDIxICs0NTEsMzQgQEAg dm9pZCBfX2luaXQgZGV0ZWN0X2h0KHN0cnVjdCBjcHVpbmZvX3g4NgogCQkJcmV0dXJuOwogCQl9 CiAJCXRtcCA9IHNtcF9udW1fc2libGluZ3M7Ci0JCXdoaWxlICgodG1wICYgMSkgPT0gMCkgewot CQkJdG1wID4+PTEgOwotCQkJaW5kZXhfbHNiKys7Ci0JCX0KLQkJdG1wID0gc21wX251bV9zaWJs aW5nczsKIAkJd2hpbGUgKCh0bXAgJiAweDgwMDAwMDAwICkgPT0gMCkgewogCQkJdG1wIDw8PTEg OwogCQkJaW5kZXhfbXNiLS07CiAJCX0KLQkJaWYgKGluZGV4X2xzYiAhPSBpbmRleF9tc2IgKQor CQlpZiAoc21wX251bV9zaWJsaW5ncyAmIChzbXBfbnVtX3NpYmxpbmdzIC0gMSkpCiAJCQlpbmRl eF9tc2IrKzsKIAkJcGh5c19wcm9jX2lkW2NwdV0gPSBwaHlzX3BrZ19pZCgoZWJ4ID4+IDI0KSAm IDB4RkYsIGluZGV4X21zYik7CiAKIAkJcHJpbnRrKEtFUk5fSU5GTyAgIkNQVTogUGh5c2ljYWwg UHJvY2Vzc29yIElEOiAlZFxuIiwKIAkJICAgICAgIHBoeXNfcHJvY19pZFtjcHVdKTsKKworCQlz bXBfbnVtX3NpYmxpbmdzID0gc21wX251bV9zaWJsaW5ncyAvIGMtPng4Nl9udW1fY29yZXM7CisK KwkJdG1wID0gc21wX251bV9zaWJsaW5nczsKKwkJaW5kZXhfbXNiID0gMzE7CisJCXdoaWxlICgo dG1wICYgMHg4MDAwMDAwMCkgPT0gMCkgeworCQkJdG1wIDw8PTEgOworCQkJaW5kZXhfbXNiLS07 CisJCX0KKworCQlpZiAoc21wX251bV9zaWJsaW5ncyAmIChzbXBfbnVtX3NpYmxpbmdzIC0gMSkp CisJCQlpbmRleF9tc2IrKzsKKworCQljcHVfY29yZV9pZFtjcHVdID0gcGh5c19wa2dfaWQoKGVi eCA+PiAyNCkgJiAweEZGLCBpbmRleF9tc2IpOworCisJCWlmIChjLT54ODZfbnVtX2NvcmVzID4g MSkKKwkJCXByaW50ayhLRVJOX0lORk8gICJDUFU6IFByb2Nlc3NvciBDb3JlIElEOiAlZFxuIiwK KwkJCSAgICAgICBjcHVfY29yZV9pZFtjcHVdKTsKIAl9CiB9CiAjZW5kaWYK ------=_Part_2389_2111905.1119192582227 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 ------=_Part_2389_2111905.1119192582227--