From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: [PATCH v2] Enable SMEP CPU feature support for XEN hypervisor Date: Fri, 03 Jun 2011 20:22:20 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="B_3389977349_17012900" Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "Li, Xin" Cc: xen-devel List-Id: xen-devel@lists.xenproject.org > This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. --B_3389977349_17012900 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit Hi Xen, New patch attached and comments in-line. On 03/06/2011 19:49, "Li, Xin" wrote: >> 1. The initialisation in cpu/common.c is misguided. Features like >> set_in_cr4(), setup_clear_cpu_cap(), and cpu_has_xxx, are designed to allow >> the feature initialisation to happen close in code to where the feature is >> used. Hence I have moved the initialisation into traps.c:trap_init(). > > It's the right way to move. > > But trap_init() is called before Xen does leaf 7.0 detection, thus we also > need to add leaf 7.0 detection in early_cpu_detect to get > boot_cpu_data.x86_capability[7] initialized before trap_init(). Oooo good point. Fixed in the attached patch by moving SMEP setup into setup.c, explicitly and immediately after identify_cpu(). I was actually in two minds whether to fix this by extending early_cpu_detect(). Overall I decided I don't want to grow e_c_d() if not absolutely necessary. If the CPU setup stuff in setup.c grows too big and ugly I'd rather refactor it another way. >> 3. I have pushed interpretation of the pf_type enumeration out to the >> callers of spurious_page_fault(). This is because a SMEP fault while Xen is >> executing should *crash Xen*. So that's what I do. Further, when it is a > > I'm still wondering is it overkill to kill Xen? An evil guest can crash Xen? An evil guest has to penetrate Xen before it can crash it in this way. If Xen has been subverted, and is lucky enough to notice, what should it do? The only sane answer is to shoot itself in the head. This kind of issue would require immediate developer attention to fix whatever Xen bug had been exploited to trigger SMEP. > 32bit pv guest should be able to make use of SMEP. When it is from Xen, > we crash Xen. When it's is from guest kernel executing user code, we > can inject to guest to let it kill the current process. Of course such cases > the guest should be able to do SMEP handling. Haha, give over on this idea that unexplainable behaviour should make you only crash the process/guest. If your behaviour is unexplainable, and you have pretensions of security, you fail-stop. > We can't consistently handle it for 64bit and 32bit guest. Well yeah, but that ignores my actual question, which was... """I wonder whether SMEP should be enabled only for guests (even PV guests) which detect it via CPUID and proactively enable it via their virtualised CR4? I mean, it is off in real hardware by default for a reason: backward compatibility. Furthermore, we only detect spurious page faults for buggy old PV guests, the rest will get the SMEP fault punted up to them, which seems odd if they don't understand SMEP.""" I mean, I know we may as well just hide the feature from PV 64b guests totally. That's obvious. Let's stop talking about PV 64b guests already! The question is: what to do about PV 32b guests? -- Keir > Thanks! > -Xin --B_3389977349_17012900 Content-type: application/octet-stream; name="00-xen-smep" Content-disposition: attachment; filename="00-xen-smep" Content-transfer-encoding: base64 ZGlmZiAtciBiY2QyNDc2YzJlMmQgeGVuL2FyY2gveDg2L3NldHVwLmMKLS0tIGEveGVuL2Fy Y2gveDg2L3NldHVwLmMJRnJpIEp1biAwMyAxNzoyNzowMSAyMDExICswMTAwCisrKyBiL3hl bi9hcmNoL3g4Ni9zZXR1cC5jCUZyaSBKdW4gMDMgMjA6MDk6MDIgMjAxMSArMDEwMApAQCAt NTcsNiArNTcsMTAgQEAgaW50ZWdlcl9wYXJhbSgibWF4Y3B1cyIsIG1heF9jcHVzKTsKIHN0 YXRpYyBib29sX3QgX19pbml0ZGF0YSBvcHRfd2F0Y2hkb2c7CiBib29sZWFuX3BhcmFtKCJ3 YXRjaGRvZyIsIG9wdF93YXRjaGRvZyk7CiAKKy8qIHNtZXA6IEVuYWJsZS9kaXNhYmxlIFN1 cGVydmlzb3IgTW9kZSBFeGVjdXRpb24gUHJvdGVjdGlvbiAoZGVmYXVsdCBvbikuICovCitz dGF0aWMgYm9vbF90IF9faW5pdGRhdGEgZGlzYWJsZV9zbWVwOworaW52Ym9vbF9wYXJhbSgi c21lcCIsIGRpc2FibGVfc21lcCk7CisKIC8qICoqKiogTGludXggY29uZmlnIG9wdGlvbjog cHJvcGFnYXRlZCB0byBkb21haW4wLiAqLwogLyogImFjcGk9b2ZmIjogICAgU2lzYWJsZXMg Ym90aCBBQ1BJIHRhYmxlIHBhcnNpbmcgYW5kIGludGVycHJldGVyLiAqLwogLyogImFjcGk9 Zm9yY2UiOiAgT3ZlcnJpZGUgdGhlIGRpc2FibGUgYmxhY2tsaXN0LiAgICAgICAgICAgICAg ICAgICAqLwpAQCAtMTIwMCwxMSArMTIwNCwxNyBAQCB2b2lkIF9faW5pdCBfX3N0YXJ0X3hl bih1bnNpZ25lZCBsb25nIG1iCiAgICAgYXJjaF9pbml0X21lbW9yeSgpOwogCiAgICAgaWRl bnRpZnlfY3B1KCZib290X2NwdV9kYXRhKTsKKwogICAgIGlmICggY3B1X2hhc19meHNyICkK ICAgICAgICAgc2V0X2luX2NyNChYODZfQ1I0X09TRlhTUik7CiAgICAgaWYgKCBjcHVfaGFz X3htbSApCiAgICAgICAgIHNldF9pbl9jcjQoWDg2X0NSNF9PU1hNTUVYQ1BUKTsKIAorICAg IGlmICggZGlzYWJsZV9zbWVwICkKKyAgICAgICAgc2V0dXBfY2xlYXJfY3B1X2NhcChYODZf RkVBVFVSRV9TTUVQKTsKKyAgICBpZiAoIGNwdV9oYXNfc21lcCApCisgICAgICAgIHNldF9p bl9jcjQoWDg2X0NSNF9TTUVQKTsKKwogICAgIGxvY2FsX2lycV9lbmFibGUoKTsKIAogI2lm ZGVmIENPTkZJR19YODZfNjQKZGlmZiAtciBiY2QyNDc2YzJlMmQgeGVuL2FyY2gveDg2L3Ry YXBzLmMKLS0tIGEveGVuL2FyY2gveDg2L3RyYXBzLmMJRnJpIEp1biAwMyAxNzoyNzowMSAy MDExICswMTAwCisrKyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCUZyaSBKdW4gMDMgMjA6MDk6 MDIgMjAxMSArMDEwMApAQCAtMTEzOSw3ICsxMTM5LDEzIEBAIHN0YXRpYyBpbnQgaGFuZGxl X2dkdF9sZHRfbWFwcGluZ19mYXVsdCgKICAgICAoKCh2YSkgPj0gSFlQRVJWSVNPUl9WSVJU X1NUQVJUKSkKICNlbmRpZgogCi1zdGF0aWMgaW50IF9fc3B1cmlvdXNfcGFnZV9mYXVsdCgK K2VudW0gcGZfdHlwZSB7CisgICAgcmVhbF9mYXVsdCwKKyAgICBzbWVwX2ZhdWx0LAorICAg IHNwdXJpb3VzX2ZhdWx0Cit9OworCitzdGF0aWMgZW51bSBwZl90eXBlIF9fcGFnZV9mYXVs dF90eXBlKAogICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgaW50IGVycm9yX2Nv ZGUpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBtZm4sIGNyMyA9IHJlYWRfY3IzKCk7CkBAIC0x MTUxLDcgKzExNTcsNyBAQCBzdGF0aWMgaW50IF9fc3B1cmlvdXNfcGFnZV9mYXVsdCgKICNl bmRpZgogICAgIGwyX3BnZW50cnlfdCBsMmUsICpsMnQ7CiAgICAgbDFfcGdlbnRyeV90IGwx ZSwgKmwxdDsKLSAgICB1bnNpZ25lZCBpbnQgcmVxdWlyZWRfZmxhZ3MsIGRpc2FsbG93ZWRf ZmxhZ3M7CisgICAgdW5zaWduZWQgaW50IHJlcXVpcmVkX2ZsYWdzLCBkaXNhbGxvd2VkX2Zs YWdzLCBwYWdlX3VzZXI7CiAKICAgICAvKgogICAgICAqIFdlIGRvIG5vdCB0YWtlIHNwdXJp b3VzIHBhZ2UgZmF1bHRzIGluIElSUSBoYW5kbGVycyBhcyB3ZSBkbyBub3QKQEAgLTExNTks MTEgKzExNjUsMTEgQEAgc3RhdGljIGludCBfX3NwdXJpb3VzX3BhZ2VfZmF1bHQoCiAgICAg ICogbWFwX2RvbWFpbl9wYWdlKCkgaXMgbm90IElSUS1zYWZlLgogICAgICAqLwogICAgIGlm ICggaW5faXJxKCkgKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIHJlYWxf ZmF1bHQ7CiAKICAgICAvKiBSZXNlcnZlZCBiaXQgdmlvbGF0aW9ucyBhcmUgbmV2ZXIgc3B1 cmlvdXMgZmF1bHRzLiAqLwogICAgIGlmICggZXJyb3JfY29kZSAmIFBGRUNfcmVzZXJ2ZWRf Yml0ICkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiByZWFsX2ZhdWx0Owog CiAgICAgcmVxdWlyZWRfZmxhZ3MgID0gX1BBR0VfUFJFU0VOVDsKICAgICBpZiAoIGVycm9y X2NvZGUgJiBQRkVDX3dyaXRlX2FjY2VzcyApCkBAIC0xMTc1LDYgKzExODEsOCBAQCBzdGF0 aWMgaW50IF9fc3B1cmlvdXNfcGFnZV9mYXVsdCgKICAgICBpZiAoIGVycm9yX2NvZGUgJiBQ RkVDX2luc25fZmV0Y2ggKQogICAgICAgICBkaXNhbGxvd2VkX2ZsYWdzIHw9IF9QQUdFX05Y X0JJVDsKIAorICAgIHBhZ2VfdXNlciA9IF9QQUdFX1VTRVI7CisKICAgICBtZm4gPSBjcjMg Pj4gUEFHRV9TSElGVDsKIAogI2lmIENPTkZJR19QQUdJTkdfTEVWRUxTID49IDQKQEAgLTEx ODQsNyArMTE5Miw4IEBAIHN0YXRpYyBpbnQgX19zcHVyaW91c19wYWdlX2ZhdWx0KAogICAg IHVubWFwX2RvbWFpbl9wYWdlKGw0dCk7CiAgICAgaWYgKCAoKGw0ZV9nZXRfZmxhZ3MobDRl KSAmIHJlcXVpcmVkX2ZsYWdzKSAhPSByZXF1aXJlZF9mbGFncykgfHwKICAgICAgICAgIChs NGVfZ2V0X2ZsYWdzKGw0ZSkgJiBkaXNhbGxvd2VkX2ZsYWdzKSApCi0gICAgICAgIHJldHVy biAwOworICAgICAgICByZXR1cm4gcmVhbF9mYXVsdDsKKyAgICBwYWdlX3VzZXIgJj0gbDRl X2dldF9mbGFncyhsNGUpOwogI2VuZGlmCiAKICNpZiBDT05GSUdfUEFHSU5HX0xFVkVMUyA+ PSAzCkBAIC0xMTk3LDEzICsxMjA2LDE0IEBAIHN0YXRpYyBpbnQgX19zcHVyaW91c19wYWdl X2ZhdWx0KAogICAgIHVubWFwX2RvbWFpbl9wYWdlKGwzdCk7CiAjaWYgQ09ORklHX1BBR0lO R19MRVZFTFMgPT0gMwogICAgIGlmICggIShsM2VfZ2V0X2ZsYWdzKGwzZSkgJiBfUEFHRV9Q UkVTRU5UKSApCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gcmVhbF9mYXVs dDsKICNlbHNlCiAgICAgaWYgKCAoKGwzZV9nZXRfZmxhZ3MobDNlKSAmIHJlcXVpcmVkX2Zs YWdzKSAhPSByZXF1aXJlZF9mbGFncykgfHwKICAgICAgICAgIChsM2VfZ2V0X2ZsYWdzKGwz ZSkgJiBkaXNhbGxvd2VkX2ZsYWdzKSApCi0gICAgICAgIHJldHVybiAwOworICAgICAgICBy ZXR1cm4gcmVhbF9mYXVsdDsKKyAgICBwYWdlX3VzZXIgJj0gbDNlX2dldF9mbGFncyhsM2Up OwogICAgIGlmICggbDNlX2dldF9mbGFncyhsM2UpICYgX1BBR0VfUFNFICkKLSAgICAgICAg cmV0dXJuIDE7CisgICAgICAgIGdvdG8gbGVhZjsKICNlbmRpZgogI2VuZGlmCiAKQEAgLTEy MTMsOSArMTIyMywxMCBAQCBzdGF0aWMgaW50IF9fc3B1cmlvdXNfcGFnZV9mYXVsdCgKICAg ICB1bm1hcF9kb21haW5fcGFnZShsMnQpOwogICAgIGlmICggKChsMmVfZ2V0X2ZsYWdzKGwy ZSkgJiByZXF1aXJlZF9mbGFncykgIT0gcmVxdWlyZWRfZmxhZ3MpIHx8CiAgICAgICAgICAo bDJlX2dldF9mbGFncyhsMmUpICYgZGlzYWxsb3dlZF9mbGFncykgKQotICAgICAgICByZXR1 cm4gMDsKKyAgICAgICAgcmV0dXJuIHJlYWxfZmF1bHQ7CisgICAgcGFnZV91c2VyICY9IGwy ZV9nZXRfZmxhZ3MobDJlKTsKICAgICBpZiAoIGwyZV9nZXRfZmxhZ3MobDJlKSAmIF9QQUdF X1BTRSApCi0gICAgICAgIHJldHVybiAxOworICAgICAgICBnb3RvIGxlYWY7CiAKICAgICBs MXQgPSBtYXBfZG9tYWluX3BhZ2UobWZuKTsKICAgICBsMWUgPSBsMWVfcmVhZF9hdG9taWMo JmwxdFtsMV90YWJsZV9vZmZzZXQoYWRkcildKTsKQEAgLTEyMjMsMjYgKzEyMzQsMzYgQEAg c3RhdGljIGludCBfX3NwdXJpb3VzX3BhZ2VfZmF1bHQoCiAgICAgdW5tYXBfZG9tYWluX3Bh Z2UobDF0KTsKICAgICBpZiAoICgobDFlX2dldF9mbGFncyhsMWUpICYgcmVxdWlyZWRfZmxh Z3MpICE9IHJlcXVpcmVkX2ZsYWdzKSB8fAogICAgICAgICAgKGwxZV9nZXRfZmxhZ3MobDFl KSAmIGRpc2FsbG93ZWRfZmxhZ3MpICkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1 cm4gMTsKKyAgICAgICAgcmV0dXJuIHJlYWxfZmF1bHQ7CisgICAgcGFnZV91c2VyICY9IGwx ZV9nZXRfZmxhZ3MobDFlKTsKKworbGVhZjoKKyAgICAvKgorICAgICAqIFN1cGVydmlzb3Ig TW9kZSBFeGVjdXRpb24gUHJvdGVjdGlvbiAoU01FUCk6CisgICAgICogRGlzYWxsb3cgc3Vw ZXJ2aXNvciBleGVjdXRpb24gZnJvbSB1c2VyLWFjY2Vzc2libGUgbWFwcGluZ3MKKyAgICAg Ki8KKyAgICBpZiAoIChyZWFkX2NyNCgpICYgWDg2X0NSNF9TTUVQKSAmJiBwYWdlX3VzZXIg JiYKKyAgICAgICAgICgoZXJyb3JfY29kZSAmIChQRkVDX2luc25fZmV0Y2h8UEZFQ191c2Vy X21vZGUpKSA9PSBQRkVDX2luc25fZmV0Y2gpICkKKyAgICAgICAgcmV0dXJuIHNtZXBfZmF1 bHQ7CisKKyAgICByZXR1cm4gc3B1cmlvdXNfZmF1bHQ7CiB9CiAKLXN0YXRpYyBpbnQgc3B1 cmlvdXNfcGFnZV9mYXVsdCgKK3N0YXRpYyBlbnVtIHBmX3R5cGUgc3B1cmlvdXNfcGFnZV9m YXVsdCgKICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGludCBlcnJvcl9jb2Rl KQogewogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0gICAgaW50ICAgICAgICAgICBpc19z cHVyaW91czsKKyAgICBlbnVtIHBmX3R5cGUgcGZfdHlwZTsKIAogICAgIC8qCiAgICAgICog RGlzYWJsaW5nIGludGVycnVwdHMgcHJldmVudHMgVExCIGZsdXNoaW5nLCBhbmQgaGVuY2Ug cHJldmVudHMKICAgICAgKiBwYWdlIHRhYmxlcyBmcm9tIGJlY29taW5nIGludmFsaWQgdW5k ZXIgb3VyIGZlZXQgZHVyaW5nIHRoZSB3YWxrLgogICAgICAqLwogICAgIGxvY2FsX2lycV9z YXZlKGZsYWdzKTsKLSAgICBpc19zcHVyaW91cyA9IF9fc3B1cmlvdXNfcGFnZV9mYXVsdChh ZGRyLCBlcnJvcl9jb2RlKTsKKyAgICBwZl90eXBlID0gX19wYWdlX2ZhdWx0X3R5cGUoYWRk ciwgZXJyb3JfY29kZSk7CiAgICAgbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCi0gICAg cmV0dXJuIGlzX3NwdXJpb3VzOworICAgIHJldHVybiBwZl90eXBlOwogfQogCiBzdGF0aWMg aW50IGZpeHVwX3BhZ2VfZmF1bHQodW5zaWduZWQgbG9uZyBhZGRyLCBzdHJ1Y3QgY3B1X3Vz ZXJfcmVncyAqcmVncykKQEAgLTEzMTcsNiArMTMzOCw3IEBAIGFzbWxpbmthZ2Ugdm9pZCBk b19wYWdlX2ZhdWx0KHN0cnVjdCBjcHUKIHsKICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIGZp eHVwOwogICAgIHVuc2lnbmVkIGludCBlcnJvcl9jb2RlOworICAgIGVudW0gcGZfdHlwZSBw Zl90eXBlOwogCiAgICAgYWRkciA9IHJlYWRfY3IyKCk7CiAKQEAgLTEzMzIsNyArMTM1NCw5 IEBAIGFzbWxpbmthZ2Ugdm9pZCBkb19wYWdlX2ZhdWx0KHN0cnVjdCBjcHUKIAogICAgIGlm ICggdW5saWtlbHkoIWd1ZXN0X21vZGUocmVncykpICkKICAgICB7Ci0gICAgICAgIGlmICgg c3B1cmlvdXNfcGFnZV9mYXVsdChhZGRyLCBlcnJvcl9jb2RlKSApCisgICAgICAgIHBmX3R5 cGUgPSBzcHVyaW91c19wYWdlX2ZhdWx0KGFkZHIsIGVycm9yX2NvZGUpOworICAgICAgICBC VUdfT04ocGZfdHlwZSA9PSBzbWVwX2ZhdWx0KTsKKyAgICAgICAgaWYgKCBwZl90eXBlICE9 IHJlYWxfZmF1bHQgKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmICggbGlr ZWx5KChmaXh1cCA9IHNlYXJjaF9leGNlcHRpb25fdGFibGUocmVncy0+ZWlwKSkgIT0gMCkg KQpAQCAtMTM1NCw5ICsxMzc4LDE3IEBAIGFzbWxpbmthZ2Ugdm9pZCBkb19wYWdlX2ZhdWx0 KHN0cnVjdCBjcHUKICAgICAgICAgICAgICAgZXJyb3JfY29kZSwgX3AoYWRkcikpOwogICAg IH0KIAotICAgIGlmICggdW5saWtlbHkoY3VycmVudC0+ZG9tYWluLT5hcmNoLnN1cHByZXNz X3NwdXJpb3VzX3BhZ2VfZmF1bHRzCi0gICAgICAgICAgICAgICAgICAmJiBzcHVyaW91c19w YWdlX2ZhdWx0KGFkZHIsIGVycm9yX2NvZGUpKSApCi0gICAgICAgIHJldHVybjsKKyAgICBp ZiAoIHVubGlrZWx5KGN1cnJlbnQtPmRvbWFpbi0+YXJjaC5zdXBwcmVzc19zcHVyaW91c19w YWdlX2ZhdWx0cykgKQorICAgIHsKKyAgICAgICAgcGZfdHlwZSA9IHNwdXJpb3VzX3BhZ2Vf ZmF1bHQoYWRkciwgZXJyb3JfY29kZSk7CisgICAgICAgIGlmICggcGZfdHlwZSA9PSBzbWVw X2ZhdWx0ICkKKyAgICAgICAgeworICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwg IkZhdGFsIFNNRVAgZmF1bHRcbiIpOworICAgICAgICAgICAgZG9tYWluX2NyYXNoKGN1cnJl bnQtPmRvbWFpbik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBwZl90eXBlICE9IHJlYWxf ZmF1bHQgKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIHByb3BhZ2F0ZV9w YWdlX2ZhdWx0KGFkZHIsIHJlZ3MtPmVycm9yX2NvZGUpOwogfQpkaWZmIC1yIGJjZDI0NzZj MmUyZCB4ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaAotLS0gYS94ZW4vaW5jbHVk ZS9hc20teDg2L2NwdWZlYXR1cmUuaAlGcmkgSnVuIDAzIDE3OjI3OjAxIDIwMTEgKzAxMDAK KysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlLmgJRnJpIEp1biAwMyAyMDow OTowMiAyMDExICswMTAwCkBAIC0xNDEsOCArMTQxLDkgQEAKICNkZWZpbmUgWDg2X0ZFQVRV UkVfVEJNICAgICAgICAgKDYqMzIrMjEpIC8qIHRyYWlsaW5nIGJpdCBtYW5pcHVsYXRpb25z ICovCiAjZGVmaW5lIFg4Nl9GRUFUVVJFX1RPUE9FWFQgICAgICg2KjMyKzIyKSAvKiB0b3Bv bG9neSBleHRlbnNpb25zIENQVUlEIGxlYWZzICovCiAKLS8qIEludGVsLWRlZmluZWQgQ1BV IGZlYXR1cmVzLCBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjAgKGVieCksIHdvcmQgOSAqLwor LyogSW50ZWwtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4MDAwMDAwMDc6 MCAoZWJ4KSwgd29yZCA3ICovCiAjZGVmaW5lIFg4Nl9GRUFUVVJFX0ZTR1NCQVNFCSg3KjMy KyAwKSAvKiB7UkQsV1J9e0ZTLEdTfUJBU0UgaW5zdHJ1Y3Rpb25zICovCisjZGVmaW5lIFg4 Nl9GRUFUVVJFX1NNRVAJKDcqMzIrIDcpIC8qIFN1cGVydmlzb3IgTW9kZSBFeGVjdXRpb24g UHJvdGVjdGlvbiAqLwogCiAjZGVmaW5lIGNwdV9oYXMoYywgYml0KQkJdGVzdF9iaXQoYml0 LCAoYyktPng4Nl9jYXBhYmlsaXR5KQogI2RlZmluZSBib290X2NwdV9oYXMoYml0KQl0ZXN0 X2JpdChiaXQsIGJvb3RfY3B1X2RhdGEueDg2X2NhcGFiaWxpdHkpCkBAIC0yMDIsNiArMjAz LDggQEAKICNkZWZpbmUgY3B1X2hhc19mc2dzYmFzZQlib290X2NwdV9oYXMoWDg2X0ZFQVRV UkVfRlNHU0JBU0UpCiAjZW5kaWYKIAorI2RlZmluZSBjcHVfaGFzX3NtZXAgICAgICAgICAg ICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfU01FUCkKKwogI2RlZmluZSBjcHVfaGFzX2Zm eHNyICAgICAgICAgICAoKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9S X0FNRCkgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgYm9vdF9jcHVf aGFzKFg4Nl9GRUFUVVJFX0ZGWFNSKSkKIApkaWZmIC1yIGJjZDI0NzZjMmUyZCB4ZW4vaW5j bHVkZS9hc20teDg2L2RvbWFpbi5oCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWlu LmgJRnJpIEp1biAwMyAxNzoyNzowMSAyMDExICswMTAwCisrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvZG9tYWluLmgJRnJpIEp1biAwMyAyMDowOTowMiAyMDExICswMTAwCkBAIC01Mjcs MTIgKzUyNywxNCBAQCB1bnNpZ25lZCBsb25nIHB2X2d1ZXN0X2NyNF9maXh1cChjb25zdCBz CiAvKiBDb252ZXJ0IGJldHdlZW4gZ3Vlc3QtdmlzaWJsZSBhbmQgcmVhbCBDUjQgdmFsdWVz LiAqLwogI2RlZmluZSBwdl9ndWVzdF9jcjRfdG9fcmVhbF9jcjQodikgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgICgoKHYpLT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1s0XSAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgfCAobW11X2NyNF9mZWF0dXJlcyAmIChY ODZfQ1I0X1BHRSB8IFg4Nl9DUjRfUFNFKSkgICAgXAotICAgICAgfCAoKHYpLT5kb21haW4t PmFyY2gudnRzYyA/IFg4Nl9DUjRfVFNEIDogMCkgICAgICAgICBcCi0gICAgICB8ICgoeHNh dmVfZW5hYmxlZCh2KSk/IFg4Nl9DUjRfT1NYU0FWRSA6IDApKSAgICAgICAgICAgICAgXAot ICAgICAgJiB+WDg2X0NSNF9ERSkKLSNkZWZpbmUgcmVhbF9jcjRfdG9fcHZfZ3Vlc3RfY3I0 KGMpIFwKLSAgICAoKGMpICYgfihYODZfQ1I0X1BHRSB8IFg4Nl9DUjRfUFNFIHwgWDg2X0NS NF9UU0QgfCBYODZfQ1I0X09TWFNBVkUpKQorICAgICAgfCAobW11X2NyNF9mZWF0dXJlcyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgJiAoWDg2X0NS NF9QR0UgfCBYODZfQ1I0X1BTRSB8IFg4Nl9DUjRfU01FUCkpICAgICAgXAorICAgICAgfCAo KHYpLT5kb21haW4tPmFyY2gudnRzYyA/IFg4Nl9DUjRfVFNEIDogMCkgICAgICAgICAgXAor ICAgICAgfCAoKHhzYXZlX2VuYWJsZWQodikpPyBYODZfQ1I0X09TWFNBVkUgOiAwKSkgICAg ICAgICAgXAorICAgICAmIH5YODZfQ1I0X0RFKQorI2RlZmluZSByZWFsX2NyNF90b19wdl9n dWVzdF9jcjQoYykgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICgoYykgJiB+KFg4 Nl9DUjRfUEdFIHwgWDg2X0NSNF9QU0UgfCBYODZfQ1I0X1RTRCAgICAgICAgXAorICAgICAg ICAgICAgIHwgWDg2X0NSNF9PU1hTQVZFIHwgWDg2X0NSNF9TTUVQKSkKIAogdm9pZCBkb21h aW5fY3B1aWQoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCAgaW5wdXQsCmRpZmYgLXIgYmNkMjQ3NmMyZTJkIHhlbi9pbmNsdWRlL2FzbS14ODYv cHJvY2Vzc29yLmgKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaAlGcmkg SnVuIDAzIDE3OjI3OjAxIDIwMTEgKzAxMDAKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9w cm9jZXNzb3IuaAlGcmkgSnVuIDAzIDIwOjA5OjAyIDIwMTEgKzAxMDAKQEAgLTg1LDYgKzg1 LDcgQEAKICNkZWZpbmUgWDg2X0NSNF9TTVhFCQkweDQwMDAgIC8qIGVuYWJsZSBTTVggKi8K ICNkZWZpbmUgWDg2X0NSNF9GU0dTQkFTRQkweDEwMDAwIC8qIGVuYWJsZSB7cmQsd3J9e2Zz LGdzfWJhc2UgKi8KICNkZWZpbmUgWDg2X0NSNF9PU1hTQVZFCTB4NDAwMDAgLyogZW5hYmxl IFhTQVZFL1hSU1RPUiAqLworI2RlZmluZSBYODZfQ1I0X1NNRVAJCTB4MTAwMDAwLyogZW5h YmxlIFNNRVAgKi8KIAogLyoKICAqIFRyYXAvZmF1bHQgbW5lbW9uaWNzLgo= --B_3389977349_17012900 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 --B_3389977349_17012900--