From mboxrd@z Thu Jan 1 00:00:00 1970 From: Akio Takebe Subject: Re: [Xen-devel] [Patch 0/3] Disable ACPI SRAT, SLIT on dom0 Date: Mon, 30 Jul 2007 07:58:40 +0900 Message-ID: <9EC7D234010038takebe_akio@jp.fujitsu.com> References: <9CC7D2331E8597takebe_akio@jp.fujitsu.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary-XIy1IY7aLvS363HQJ8K2x" Return-path: In-Reply-To: <9CC7D2331E8597takebe_akio@jp.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-ia64-devel-bounces@lists.xensource.com Errors-To: xen-ia64-devel-bounces@lists.xensource.com To: Akio Takebe , xen-devel , xen-ia64-devel Cc: Keir Fraser , Alex Williamson List-Id: xen-devel@lists.xenproject.org --Boundary-XIy1IY7aLvS363HQJ8K2x Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Content-Description: Mail message body Hi, Add acpi_table_disable() into xen/drivers/acpi/tables.c This function can disable a ACPI table by updating the table header. Signed-off-by: Akio Takebe Best Regards, Akio Takebe --Boundary-XIy1IY7aLvS363HQJ8K2x Content-Type: application/octet-stream; name="add_acpi_table_disable.v3.patch" Content-Disposition: attachment; filename="add_acpi_table_disable.v3.patch" Content-Transfer-Encoding: base64 IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIHJvb3RAbG9jYWxob3N0LmxvY2FsZG9tYWlu CiMgRGF0ZSAxMTg1NzQ3NjQyIC0zMjQwMAojIE5vZGUgSUQgZTlkZWYxMDBhNzYwZjAzMmM3 OGM2MzVmNGQ3OTJhODQzMmRiMWE5NwojIFBhcmVudCAgN2U4MWQ3ZWMxYmI5ZDVjYjMyMzMy MDExZDJjM2ViMjdkNzBjNjM1YgpBZGQgYWNwaV90YWJsZV9kaXNhYmxlKCkgaW50byB4ZW4v ZHJpdmVycy9hY3BpL3RhYmxlcy5jClRoaXMgZnVuY3Rpb24gY2FuIGRpc2FibGUgYSBBQ1BJ IHRhYmxlIGJ5IHVwZGF0aW5nIHRoZSB0YWJsZSBoZWFkZXIuCgpTaWduZWQtb2ZmLWJ5OiBB a2lvIFRha2ViZSA8dGFrZWJlX2FraW9AanAuZnVqaXRzdS5jb20+CgpkaWZmIC1yIDdlODFk N2VjMWJiOSAtciBlOWRlZjEwMGE3NjAgeGVuL2RyaXZlcnMvYWNwaS90YWJsZXMuYwotLS0g YS94ZW4vZHJpdmVycy9hY3BpL3RhYmxlcy5jCU1vbiBKdWwgMzAgMDc6MTc6MjQgMjAwNyAr MDkwMAorKysgYi94ZW4vZHJpdmVycy9hY3BpL3RhYmxlcy5jCU1vbiBKdWwgMzAgMDc6MjA6 NDIgMjAwNyArMDkwMApAQCAtNzMsNiArNzMsNyBAQCBzdHJ1Y3QgYWNwaV90YWJsZV9zZHQg ewogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBzZHRfcGE7CS8qIFBoeXNpY2FsIEFkZHJlc3Mg Ki8KIHN0YXRpYyB1bnNpZ25lZCBsb25nIHNkdF9jb3VudDsJLyogVGFibGUgY291bnQgKi8K K3N0YXRpYyBzdHJ1Y3QgYWNwaV90YWJsZV9yc2RwICpyc2RwOwogdW5zaWduZWQgY2hhciBh Y3BpX3JzZHBfcmV2OwogCiBzdGF0aWMgc3RydWN0IGFjcGlfdGFibGVfc2R0IHNkdF9lbnRy eVtBQ1BJX01BWF9UQUJMRVNdIF9faW5pdGRhdGE7CkBAIC0zODksMzQgKzM5MCwxMSBAQCBh Y3BpX3RhYmxlX3BhcnNlX21hZHQoZW51bSBhY3BpX21hZHRfZW50CiAJCQkJCSAgICBoYW5k bGVyLCBtYXhfZW50cmllcyk7CiB9CiAKLWludCBfX2luaXQgYWNwaV90YWJsZV9wYXJzZShl bnVtIGFjcGlfdGFibGVfaWQgaWQsIGFjcGlfdGFibGVfaGFuZGxlciBoYW5kbGVyKQotewot CWludCBjb3VudCA9IDA7Ci0JdW5zaWduZWQgaW50IGkgPSAwOwotCi0JaWYgKCFoYW5kbGVy KQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWZvciAoaSA9IDA7IGkgPCBzZHRfY291bnQ7IGkr KykgewotCQlpZiAoc2R0X2VudHJ5W2ldLmlkICE9IGlkKQotCQkJY29udGludWU7Ci0JCWNv dW50Kys7Ci0JCWlmIChjb3VudCA9PSAxKQotCQkJaGFuZGxlcihzZHRfZW50cnlbaV0ucGEs IHNkdF9lbnRyeVtpXS5zaXplKTsKLQotCQllbHNlCi0JCQlwcmludGsoS0VSTl9XQVJOSU5H IFBSRUZJWAotCQkJICAgICAgICIlZCBkdXBsaWNhdGUgJXMgdGFibGUgaWdub3JlZC5cbiIs IGNvdW50LAotCQkJICAgICAgIGFjcGlfdGFibGVfc2lnbmF0dXJlc1tpZF0pOwotCX0KLQot CXJldHVybiBjb3VudDsKLX0KLQotc3RhdGljIGludCBfX2luaXQgYWNwaV90YWJsZV9nZXRf c2R0KHN0cnVjdCBhY3BpX3RhYmxlX3JzZHAgKnJzZHApCisKK3N0YXRpYyBpbnQgX19pbml0 CitfX2FjcGlfdGFibGVfZGlzYWJsZShzdHJ1Y3QgYWNwaV90YWJsZV9yc2RwICpyc2RwLCBp bnQgdGFibGVfaWQsIGNoYXIgKnRhYmxlX25hbWUpCiB7CiAJc3RydWN0IGFjcGlfdGFibGVf aGVhZGVyICpoZWFkZXIgPSBOVUxMOwotCXVuc2lnbmVkIGludCBpLCBpZCA9IDA7CiAKIAlp ZiAoIXJzZHApCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNDYwLDE3ICs0MzgsMTUgQEAgc3Rh dGljIGludCBfX2luaXQgYWNwaV90YWJsZV9nZXRfc2R0KHN0cgogCQkJcmV0dXJuIC1FTk9E RVY7CiAJCX0KIAotCQlzZHRfY291bnQgPQotCQkgICAgKGhlYWRlci0+bGVuZ3RoIC0gc2l6 ZW9mKHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlcikpID4+IDM7Ci0JCWlmIChzZHRfY291bnQg PiBBQ1BJX01BWF9UQUJMRVMpIHsKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgUFJFRklYCi0J CQkgICAgICAgIlRydW5jYXRlZCAlbHUgWFNEVCBlbnRyaWVzXG4iLAotCQkJICAgICAgIChz ZHRfY291bnQgLSBBQ1BJX01BWF9UQUJMRVMpKTsKLQkJCXNkdF9jb3VudCA9IEFDUElfTUFY X1RBQkxFUzsKLQkJfQotCi0JCWZvciAoaSA9IDA7IGkgPCBzZHRfY291bnQ7IGkrKykKLQkJ CXNkdF9lbnRyeVtpXS5wYSA9ICh1bnNpZ25lZCBsb25nKW1hcHBlZF94c2R0LT5lbnRyeVtp XTsKKwkJaWYgKHRhYmxlX2lkIDwgc2R0X2NvdW50KXsKKwkJCWhlYWRlciA9IChzdHJ1Y3Qg YWNwaV90YWJsZV9oZWFkZXIgKikKKwkJCSAgIF9fYWNwaV9tYXBfdGFibGUobWFwcGVkX3hz ZHQtPmVudHJ5W3RhYmxlX2lkXSwgc2l6ZW9mKHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlcikp OworCQl9IGVsc2UgeworCQkJcHJpbnRrKEtFUk5fV0FSTklORyBQUkVGSVgKKwkJCSAgICAg ICAiVW5hYmxlIHRvIGRpc2FibGUgZW50cnkgJWRcbiIsCisJCQkgICAgICAgdGFibGVfaWQp OworCQkJcmV0dXJuIC1FTk9ERVY7CisJCX0KIAl9CiAKIAkvKiBUaGVuIGNoZWNrIFJTRFQg Ki8KQEAgLTUwOSwxOCArNDg1LDE1IEBAIHN0YXRpYyBpbnQgX19pbml0IGFjcGlfdGFibGVf Z2V0X3NkdChzdHIKIAkJCXByaW50ayhLRVJOX1dBUk5JTkcgUFJFRklYICJJbnZhbGlkIFJT RFQgY2hlY2tzdW1cbiIpOwogCQkJcmV0dXJuIC1FTk9ERVY7CiAJCX0KLQotCQlzZHRfY291 bnQgPQotCQkgICAgKGhlYWRlci0+bGVuZ3RoIC0gc2l6ZW9mKHN0cnVjdCBhY3BpX3RhYmxl X2hlYWRlcikpID4+IDI7Ci0JCWlmIChzZHRfY291bnQgPiBBQ1BJX01BWF9UQUJMRVMpIHsK LQkJCXByaW50ayhLRVJOX1dBUk5JTkcgUFJFRklYCi0JCQkgICAgICAgIlRydW5jYXRlZCAl bHUgUlNEVCBlbnRyaWVzXG4iLAotCQkJICAgICAgIChzZHRfY291bnQgLSBBQ1BJX01BWF9U QUJMRVMpKTsKLQkJCXNkdF9jb3VudCA9IEFDUElfTUFYX1RBQkxFUzsKLQkJfQotCi0JCWZv ciAoaSA9IDA7IGkgPCBzZHRfY291bnQ7IGkrKykKLQkJCXNkdF9lbnRyeVtpXS5wYSA9ICh1 bnNpZ25lZCBsb25nKW1hcHBlZF9yc2R0LT5lbnRyeVtpXTsKKwkJaWYgKHRhYmxlX2lkIDwg c2R0X2NvdW50KXsKKwkJCWhlYWRlciA9IChzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKikK KwkJCSAgIF9fYWNwaV9tYXBfdGFibGUobWFwcGVkX3JzZHQtPmVudHJ5W3RhYmxlX2lkXSwg c2l6ZW9mKHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlcikpOworCQl9IGVsc2UgeworCQkJcHJp bnRrKEtFUk5fV0FSTklORyBQUkVGSVgKKwkJCSAgICAgICAiVW5hYmxlIHRvIGRpc2FibGUg ZW50cnkgJWRcbiIsCisJCQkgICAgICAgdGFibGVfaWQpOworCQkJcmV0dXJuIC1FTk9ERVY7 CisJCX0KIAl9CiAKIAllbHNlIHsKQEAgLTUyOSw4OCArNTAyLDI2IEBAIHN0YXRpYyBpbnQg X19pbml0IGFjcGlfdGFibGVfZ2V0X3NkdChzdHIKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQog Ci0JYWNwaV90YWJsZV9wcmludChoZWFkZXIsIHNkdF9wYSk7Ci0KLQlmb3IgKGkgPSAwOyBp IDwgc2R0X2NvdW50OyBpKyspIHsKLQotCQkvKiBtYXAgaW4ganVzdCB0aGUgaGVhZGVyICov Ci0JCWhlYWRlciA9IChzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKikKLQkJICAgIF9fYWNw aV9tYXBfdGFibGUoc2R0X2VudHJ5W2ldLnBhLAotCQkJCSAgICAgc2l6ZW9mKHN0cnVjdCBh Y3BpX3RhYmxlX2hlYWRlcikpOwotCQlpZiAoIWhlYWRlcikKLQkJCWNvbnRpbnVlOwotCi0J CS8qIHJlbWFwIGluIHRoZSBlbnRpcmUgdGFibGUgYmVmb3JlIHByb2Nlc3NpbmcgKi8KLQkJ aGVhZGVyID0gKHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlciAqKQotCQkgICAgX19hY3BpX21h cF90YWJsZShzZHRfZW50cnlbaV0ucGEsIGhlYWRlci0+bGVuZ3RoKTsKLQkJaWYgKCFoZWFk ZXIpCi0JCQljb250aW51ZTsKLQotCQlhY3BpX3RhYmxlX3ByaW50KGhlYWRlciwgc2R0X2Vu dHJ5W2ldLnBhKTsKLQotCQlpZiAoYWNwaV90YWJsZV9jb21wdXRlX2NoZWNrc3VtKGhlYWRl ciwgaGVhZGVyLT5sZW5ndGgpKSB7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HICIgID4+PiBF UlJPUjogSW52YWxpZCBjaGVja3N1bVxuIik7Ci0JCQljb250aW51ZTsKLQkJfQotCi0JCXNk dF9lbnRyeVtpXS5zaXplID0gaGVhZGVyLT5sZW5ndGg7Ci0KLQkJZm9yIChpZCA9IDA7IGlk IDwgQUNQSV9UQUJMRV9DT1VOVDsgaWQrKykgewotCQkJaWYgKCFzdHJuY21wKChjaGFyICop JmhlYWRlci0+c2lnbmF0dXJlLAotCQkJCSAgICAgYWNwaV90YWJsZV9zaWduYXR1cmVzW2lk XSwKLQkJCQkgICAgIHNpemVvZihoZWFkZXItPnNpZ25hdHVyZSkpKSB7Ci0JCQkJc2R0X2Vu dHJ5W2ldLmlkID0gaWQ7Ci0JCQl9Ci0JCX0KLQl9Ci0KLQkvKiAKLQkgKiBUaGUgRFNEVCBp cyAqbm90KiBpbiB0aGUgUlNEVCAod2h5IG5vdD8gbm8gaWRlYS4pIGJ1dCB3ZSB3YW50Ci0J ICogdG8gcHJpbnQgaXRzIGluZm8sIGJlY2F1c2UgdGhpcyBpcyB3aGF0IHBlb3BsZSB1c3Vh bGx5IGJsYWNrbGlzdAotCSAqIGFnYWluc3QuIFVuZm9ydHVuYXRlbHksIHdlIGRvbid0IGtu b3cgdGhlIHBoeXNfYWRkciwgc28ganVzdAotCSAqIHByaW50IDAuIE1heWJlIG5vIG9uZSB3 aWxsIG5vdGljZS4KLQkgKi8KLQlpZiAoIWFjcGlfZ2V0X3RhYmxlX2hlYWRlcl9lYXJseShB Q1BJX0RTRFQsICZoZWFkZXIpKQotCQlhY3BpX3RhYmxlX3ByaW50KGhlYWRlciwgMCk7CisJ bWVtY3B5KGhlYWRlci0+c2lnbmF0dXJlLCAiT0VNeCIsIDQpOworCW1lbWNweShoZWFkZXIt Pm9lbV9pZCwgInh4eHh4eCIsIDYpOworCW1lbWNweShoZWFkZXItPm9lbV9pZCsxLCB0YWJs ZV9uYW1lLCA0KTsKKwltZW1jcHkoaGVhZGVyLT5vZW1fdGFibGVfaWQsICJYZW4gICAgICIs IDgpOworCWhlYWRlci0+Y2hlY2tzdW0gPSAwOworCWhlYWRlci0+Y2hlY2tzdW0gPSBnZW5l cmF0ZV9hY3BpX2NoZWNrc3VtKGhlYWRlciwgaGVhZGVyLT5sZW5ndGgpOwogCiAJcmV0dXJu IDA7CiB9CiAKLS8qCi0gKiBhY3BpX3RhYmxlX2luaXQoKQotICoKLSAqIGZpbmQgUlNEUCwg ZmluZCBhbmQgY2hlY2tzdW0gU0RUL1hTRFQuCi0gKiBjaGVja3N1bSBhbGwgdGFibGVzLCBw cmludCBTRFQvWFNEVAotICogCi0gKiByZXN1bHQ6IHNkdF9lbnRyeVtdIGlzIGluaXRpYWxp emVkCi0gKi8KLQotaW50IF9faW5pdCBhY3BpX3RhYmxlX2luaXQodm9pZCkKLXsKLQlzdHJ1 Y3QgYWNwaV90YWJsZV9yc2RwICpyc2RwID0gTlVMTDsKLQl1bnNpZ25lZCBsb25nIHJzZHBf cGh5cyA9IDA7CitpbnQgX19pbml0CithY3BpX3RhYmxlX2Rpc2FibGUoZW51bSBhY3BpX3Rh YmxlX2lkIHRhYmxlX2lkKQorewogCWludCByZXN1bHQgPSAwOwotCi0JLyogTG9jYXRlIGFu ZCBtYXAgdGhlIFJvb3QgU3lzdGVtIERlc2NyaXB0aW9uIFRhYmxlIChSU0RQKSAqLwotCi0J cnNkcF9waHlzID0gYWNwaV9maW5kX3JzZHAoKTsKLQlpZiAoIXJzZHBfcGh5cykgewotCQlw cmludGsoS0VSTl9FUlIgUFJFRklYICJVbmFibGUgdG8gbG9jYXRlIFJTRFBcbiIpOwotCQly ZXR1cm4gLUVOT0RFVjsKLQl9Ci0KLQlyc2RwID0gKHN0cnVjdCBhY3BpX3RhYmxlX3JzZHAg KilfX2FjcGlfbWFwX3RhYmxlKHJzZHBfcGh5cywKLQkJc2l6ZW9mKHN0cnVjdCBhY3BpX3Rh YmxlX3JzZHApKTsKKwlpbnQgaSwgaWQgPSAwOworCiAJaWYgKCFyc2RwKSB7Ci0JCXByaW50 ayhLRVJOX1dBUk5JTkcgUFJFRklYICJVbmFibGUgdG8gbWFwIFJTRFBcbiIpOwotCQlyZXR1 cm4gLUVOT0RFVjsKLQl9Ci0KLQlwcmludGsoS0VSTl9ERUJVRyBQUkVGSVgKLQkgICAgICAg IlJTRFAgKHYlMy4zZCAlNi42cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBA IDB4JXBcbiIsCi0JICAgICAgIHJzZHAtPnJldmlzaW9uLCByc2RwLT5vZW1faWQsICh2b2lk ICopcnNkcF9waHlzKTsKLQotCWFjcGlfcnNkcF9yZXYgPSByc2RwLT5yZXZpc2lvbjsKKwkJ cHJpbnRrKEtFUk5fV0FSTklORyBQUkVGSVggIiVzOiBVbmFibGUgdG8gbWFwIFJTRFBcbiIs IF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQogCiAJaWYgKHJzZHAtPnJldmlz aW9uIDwgMikKIAkJcmVzdWx0ID0KQEAgLTYyMyw2ICs1MzQsMjYyIEBAIGludCBfX2luaXQg YWNwaV90YWJsZV9pbml0KHZvaWQpCiAJCQkJCQkgcnNkcCktPmxlbmd0aCk7CiAKIAlpZiAo cmVzdWx0KSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgIiVzOiBFUlJPUjogSW52YWxpZCBS U0RQIGNoZWNrc3VtXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRU5PREVWOworCX0KKwor CisJLyogc2VhcmNoIGVudHJ5IGlkIG9mIHRhYmxlX2lkICovCisJZm9yIChpID0gMDsgaSA8 IHNkdF9jb3VudDsgaSsrKSB7CisJCWlmIChzZHRfZW50cnlbaV0uaWQgPT0gdGFibGVfaWQp CisJCQlpZCA9IGk7CQkKKwl9CisKKwlpZiAoIWlkKXsKKwkJcHJpbnRrKEtFUk5fV0FSTklO RyBQUkVGSVggCisJCSAgICAgICAiJXM6IFVuYWJsZSB0byBmaW5kIHRoZSB0YWJsZSglcylc biIsCisJCSAgICAgICBfX2Z1bmNfXywgYWNwaV90YWJsZV9zaWduYXR1cmVzW3RhYmxlX2lk XSk7CisJCXJldHVybiAtRU5PRU5UOworCX0KKworCXJldHVybiBfX2FjcGlfdGFibGVfZGlz YWJsZShyc2RwLCBpZCwgYWNwaV90YWJsZV9zaWduYXR1cmVzW3RhYmxlX2lkXSk7Cit9CisK KyAKK2ludCBfX2luaXQgYWNwaV90YWJsZV9wYXJzZShlbnVtIGFjcGlfdGFibGVfaWQgaWQs IGFjcGlfdGFibGVfaGFuZGxlciBoYW5kbGVyKQoreworCWludCBjb3VudCA9IDA7CisJdW5z aWduZWQgaW50IGkgPSAwOworCisJaWYgKCFoYW5kbGVyKQorCQlyZXR1cm4gLUVJTlZBTDsK KworCWZvciAoaSA9IDA7IGkgPCBzZHRfY291bnQ7IGkrKykgeworCQlpZiAoc2R0X2VudHJ5 W2ldLmlkICE9IGlkKQorCQkJY29udGludWU7CisJCWNvdW50Kys7CisJCWlmIChjb3VudCA9 PSAxKQorCQkJaGFuZGxlcihzZHRfZW50cnlbaV0ucGEsIHNkdF9lbnRyeVtpXS5zaXplKTsK KworCQllbHNlCisJCQlwcmludGsoS0VSTl9XQVJOSU5HIFBSRUZJWAorCQkJICAgICAgICIl ZCBkdXBsaWNhdGUgJXMgdGFibGUgaWdub3JlZC5cbiIsIGNvdW50LAorCQkJICAgICAgIGFj cGlfdGFibGVfc2lnbmF0dXJlc1tpZF0pOworCX0KKworCXJldHVybiBjb3VudDsKK30KKwor c3RhdGljIGludCBfX2luaXQgYWNwaV90YWJsZV9nZXRfc2R0KHN0cnVjdCBhY3BpX3RhYmxl X3JzZHAgKnJzZHApCit7CisJc3RydWN0IGFjcGlfdGFibGVfaGVhZGVyICpoZWFkZXIgPSBO VUxMOworCXVuc2lnbmVkIGludCBpLCBpZCA9IDA7CisKKwlpZiAoIXJzZHApCisJCXJldHVy biAtRUlOVkFMOworCisJLyogRmlyc3QgY2hlY2sgWFNEVCAoYnV0IG9ubHkgb24gQUNQSSAy LjAtY29tcGF0aWJsZSBzeXN0ZW1zKSAqLworCisJaWYgKChyc2RwLT5yZXZpc2lvbiA+PSAy KSAmJgorCSAgICAoKChzdHJ1Y3QgYWNwaTIwX3RhYmxlX3JzZHAgKilyc2RwKS0+eHNkdF9h ZGRyZXNzKSkgeworCisJCXN0cnVjdCBhY3BpX3RhYmxlX3hzZHQgKm1hcHBlZF94c2R0ID0g TlVMTDsKKworCQlzZHRfcGEgPSAoKHN0cnVjdCBhY3BpMjBfdGFibGVfcnNkcCAqKXJzZHAp LT54c2R0X2FkZHJlc3M7CisKKwkJLyogbWFwIGluIGp1c3QgdGhlIGhlYWRlciAqLworCQlo ZWFkZXIgPSAoc3RydWN0IGFjcGlfdGFibGVfaGVhZGVyICopCisJCSAgICBfX2FjcGlfbWFw X3RhYmxlKHNkdF9wYSwgc2l6ZW9mKHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlcikpOworCisJ CWlmICghaGVhZGVyKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HIFBSRUZJWAorCQkJICAg ICAgICJVbmFibGUgdG8gbWFwIFhTRFQgaGVhZGVyXG4iKTsKKwkJCXJldHVybiAtRU5PREVW OworCQl9CisKKwkJLyogcmVtYXAgaW4gdGhlIGVudGlyZSB0YWJsZSBiZWZvcmUgcHJvY2Vz c2luZyAqLworCQltYXBwZWRfeHNkdCA9IChzdHJ1Y3QgYWNwaV90YWJsZV94c2R0ICopCisJ CSAgICBfX2FjcGlfbWFwX3RhYmxlKHNkdF9wYSwgaGVhZGVyLT5sZW5ndGgpOworCQlpZiAo IW1hcHBlZF94c2R0KSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HIFBSRUZJWCAiVW5hYmxl IHRvIG1hcCBYU0RUXG4iKTsKKwkJCXJldHVybiAtRU5PREVWOworCQl9CisJCWhlYWRlciA9 ICZtYXBwZWRfeHNkdC0+aGVhZGVyOworCisJCWlmIChzdHJuY21wKGhlYWRlci0+c2lnbmF0 dXJlLCAiWFNEVCIsIDQpKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HIFBSRUZJWAorCQkJ ICAgICAgICJYU0RUIHNpZ25hdHVyZSBpbmNvcnJlY3RcbiIpOworCQkJcmV0dXJuIC1FTk9E RVY7CisJCX0KKworCQlpZiAoYWNwaV90YWJsZV9jb21wdXRlX2NoZWNrc3VtKGhlYWRlciwg aGVhZGVyLT5sZW5ndGgpKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HIFBSRUZJWCAiSW52 YWxpZCBYU0RUIGNoZWNrc3VtXG4iKTsKKwkJCXJldHVybiAtRU5PREVWOworCQl9CisKKwkJ c2R0X2NvdW50ID0KKwkJICAgIChoZWFkZXItPmxlbmd0aCAtIHNpemVvZihzdHJ1Y3QgYWNw aV90YWJsZV9oZWFkZXIpKSA+PiAzOworCQlpZiAoc2R0X2NvdW50ID4gQUNQSV9NQVhfVEFC TEVTKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HIFBSRUZJWAorCQkJICAgICAgICJUcnVu Y2F0ZWQgJWx1IFhTRFQgZW50cmllc1xuIiwKKwkJCSAgICAgICAoc2R0X2NvdW50IC0gQUNQ SV9NQVhfVEFCTEVTKSk7CisJCQlzZHRfY291bnQgPSBBQ1BJX01BWF9UQUJMRVM7CisJCX0K KworCQlmb3IgKGkgPSAwOyBpIDwgc2R0X2NvdW50OyBpKyspCisJCQlzZHRfZW50cnlbaV0u cGEgPSAodW5zaWduZWQgbG9uZyltYXBwZWRfeHNkdC0+ZW50cnlbaV07CisJfQorCisJLyog VGhlbiBjaGVjayBSU0RUICovCisKKwllbHNlIGlmIChyc2RwLT5yc2R0X2FkZHJlc3MpIHsK KworCQlzdHJ1Y3QgYWNwaV90YWJsZV9yc2R0ICptYXBwZWRfcnNkdCA9IE5VTEw7CisKKwkJ c2R0X3BhID0gcnNkcC0+cnNkdF9hZGRyZXNzOworCisJCS8qIG1hcCBpbiBqdXN0IHRoZSBo ZWFkZXIgKi8KKwkJaGVhZGVyID0gKHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlciAqKQorCQkg ICAgX19hY3BpX21hcF90YWJsZShzZHRfcGEsIHNpemVvZihzdHJ1Y3QgYWNwaV90YWJsZV9o ZWFkZXIpKTsKKwkJaWYgKCFoZWFkZXIpIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgUFJF RklYCisJCQkgICAgICAgIlVuYWJsZSB0byBtYXAgUlNEVCBoZWFkZXJcbiIpOworCQkJcmV0 dXJuIC1FTk9ERVY7CisJCX0KKworCQkvKiByZW1hcCBpbiB0aGUgZW50aXJlIHRhYmxlIGJl Zm9yZSBwcm9jZXNzaW5nICovCisJCW1hcHBlZF9yc2R0ID0gKHN0cnVjdCBhY3BpX3RhYmxl X3JzZHQgKikKKwkJICAgIF9fYWNwaV9tYXBfdGFibGUoc2R0X3BhLCBoZWFkZXItPmxlbmd0 aCk7CisJCWlmICghbWFwcGVkX3JzZHQpIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgUFJF RklYICJVbmFibGUgdG8gbWFwIFJTRFRcbiIpOworCQkJcmV0dXJuIC1FTk9ERVY7CisJCX0K KwkJaGVhZGVyID0gJm1hcHBlZF9yc2R0LT5oZWFkZXI7CisKKwkJaWYgKHN0cm5jbXAoaGVh ZGVyLT5zaWduYXR1cmUsICJSU0RUIiwgNCkpIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcg UFJFRklYCisJCQkgICAgICAgIlJTRFQgc2lnbmF0dXJlIGluY29ycmVjdFxuIik7CisJCQly ZXR1cm4gLUVOT0RFVjsKKwkJfQorCisJCWlmIChhY3BpX3RhYmxlX2NvbXB1dGVfY2hlY2tz dW0oaGVhZGVyLCBoZWFkZXItPmxlbmd0aCkpIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcg UFJFRklYICJJbnZhbGlkIFJTRFQgY2hlY2tzdW1cbiIpOworCQkJcmV0dXJuIC1FTk9ERVY7 CisJCX0KKworCQlzZHRfY291bnQgPQorCQkgICAgKGhlYWRlci0+bGVuZ3RoIC0gc2l6ZW9m KHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlcikpID4+IDI7CisJCWlmIChzZHRfY291bnQgPiBB Q1BJX01BWF9UQUJMRVMpIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgUFJFRklYCisJCQkg ICAgICAgIlRydW5jYXRlZCAlbHUgUlNEVCBlbnRyaWVzXG4iLAorCQkJICAgICAgIChzZHRf Y291bnQgLSBBQ1BJX01BWF9UQUJMRVMpKTsKKwkJCXNkdF9jb3VudCA9IEFDUElfTUFYX1RB QkxFUzsKKwkJfQorCisJCWZvciAoaSA9IDA7IGkgPCBzZHRfY291bnQ7IGkrKykKKwkJCXNk dF9lbnRyeVtpXS5wYSA9ICh1bnNpZ25lZCBsb25nKW1hcHBlZF9yc2R0LT5lbnRyeVtpXTsK Kwl9CisKKwllbHNlIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyBQUkVGSVgKKwkJICAgICAg ICJObyBTeXN0ZW0gRGVzY3JpcHRpb24gVGFibGUgKFJTRFQvWFNEVCkgc3BlY2lmaWVkIGlu IFJTRFBcbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlhY3BpX3RhYmxlX3ByaW50 KGhlYWRlciwgc2R0X3BhKTsKKworCWZvciAoaSA9IDA7IGkgPCBzZHRfY291bnQ7IGkrKykg eworCisJCS8qIG1hcCBpbiBqdXN0IHRoZSBoZWFkZXIgKi8KKwkJaGVhZGVyID0gKHN0cnVj dCBhY3BpX3RhYmxlX2hlYWRlciAqKQorCQkgICAgX19hY3BpX21hcF90YWJsZShzZHRfZW50 cnlbaV0ucGEsCisJCQkJICAgICBzaXplb2Yoc3RydWN0IGFjcGlfdGFibGVfaGVhZGVyKSk7 CisJCWlmICghaGVhZGVyKQorCQkJY29udGludWU7CisKKwkJLyogcmVtYXAgaW4gdGhlIGVu dGlyZSB0YWJsZSBiZWZvcmUgcHJvY2Vzc2luZyAqLworCQloZWFkZXIgPSAoc3RydWN0IGFj cGlfdGFibGVfaGVhZGVyICopCisJCSAgICBfX2FjcGlfbWFwX3RhYmxlKHNkdF9lbnRyeVtp XS5wYSwgaGVhZGVyLT5sZW5ndGgpOworCQlpZiAoIWhlYWRlcikKKwkJCWNvbnRpbnVlOwor CisJCWFjcGlfdGFibGVfcHJpbnQoaGVhZGVyLCBzZHRfZW50cnlbaV0ucGEpOworCisJCWlm IChhY3BpX3RhYmxlX2NvbXB1dGVfY2hlY2tzdW0oaGVhZGVyLCBoZWFkZXItPmxlbmd0aCkp IHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgIiAgPj4+IEVSUk9SOiBJbnZhbGlkIGNoZWNr c3VtXG4iKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJc2R0X2VudHJ5W2ldLnNpemUgPSBo ZWFkZXItPmxlbmd0aDsKKworCQlmb3IgKGlkID0gMDsgaWQgPCBBQ1BJX1RBQkxFX0NPVU5U OyBpZCsrKSB7CisJCQlpZiAoIXN0cm5jbXAoKGNoYXIgKikmaGVhZGVyLT5zaWduYXR1cmUs CisJCQkJICAgICBhY3BpX3RhYmxlX3NpZ25hdHVyZXNbaWRdLAorCQkJCSAgICAgc2l6ZW9m KGhlYWRlci0+c2lnbmF0dXJlKSkpIHsKKwkJCQlzZHRfZW50cnlbaV0uaWQgPSBpZDsKKwkJ CX0KKwkJfQorCX0KKworCS8qIAorCSAqIFRoZSBEU0RUIGlzICpub3QqIGluIHRoZSBSU0RU ICh3aHkgbm90PyBubyBpZGVhLikgYnV0IHdlIHdhbnQKKwkgKiB0byBwcmludCBpdHMgaW5m bywgYmVjYXVzZSB0aGlzIGlzIHdoYXQgcGVvcGxlIHVzdWFsbHkgYmxhY2tsaXN0CisJICog YWdhaW5zdC4gVW5mb3J0dW5hdGVseSwgd2UgZG9uJ3Qga25vdyB0aGUgcGh5c19hZGRyLCBz byBqdXN0CisJICogcHJpbnQgMC4gTWF5YmUgbm8gb25lIHdpbGwgbm90aWNlLgorCSAqLwor CWlmICghYWNwaV9nZXRfdGFibGVfaGVhZGVyX2Vhcmx5KEFDUElfRFNEVCwgJmhlYWRlcikp CisJCWFjcGlfdGFibGVfcHJpbnQoaGVhZGVyLCAwKTsKKworCXJldHVybiAwOworfQorCisv KgorICogYWNwaV90YWJsZV9pbml0KCkKKyAqCisgKiBmaW5kIFJTRFAsIGZpbmQgYW5kIGNo ZWNrc3VtIFNEVC9YU0RULgorICogY2hlY2tzdW0gYWxsIHRhYmxlcywgcHJpbnQgU0RUL1hT RFQKKyAqIAorICogcmVzdWx0OiBzZHRfZW50cnlbXSBpcyBpbml0aWFsaXplZAorICovCisK K2ludCBfX2luaXQgYWNwaV90YWJsZV9pbml0KHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBy c2RwX3BoeXMgPSAwOworCWludCByZXN1bHQgPSAwOworCXJzZHAgPSBOVUxMOworCisJLyog TG9jYXRlIGFuZCBtYXAgdGhlIFJvb3QgU3lzdGVtIERlc2NyaXB0aW9uIFRhYmxlIChSU0RQ KSAqLworCisJcnNkcF9waHlzID0gYWNwaV9maW5kX3JzZHAoKTsKKwlpZiAoIXJzZHBfcGh5 cykgeworCQlwcmludGsoS0VSTl9FUlIgUFJFRklYICJVbmFibGUgdG8gbG9jYXRlIFJTRFBc biIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlyc2RwID0gKHN0cnVjdCBhY3BpX3Rh YmxlX3JzZHAgKilfX2FjcGlfbWFwX3RhYmxlKHJzZHBfcGh5cywKKwkJc2l6ZW9mKHN0cnVj dCBhY3BpX3RhYmxlX3JzZHApKTsKKwlpZiAoIXJzZHApIHsKKwkJcHJpbnRrKEtFUk5fV0FS TklORyBQUkVGSVggIlVuYWJsZSB0byBtYXAgUlNEUFxuIik7CisJCXJldHVybiAtRU5PREVW OworCX0KKworCXByaW50ayhLRVJOX0RFQlVHIFBSRUZJWAorCSAgICAgICAiUlNEUCAodiUz LjNkICU2LjZzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIEAgMHglcFxuIiwK KwkgICAgICAgcnNkcC0+cmV2aXNpb24sIHJzZHAtPm9lbV9pZCwgKHZvaWQgKilyc2RwX3Bo eXMpOworCisJYWNwaV9yc2RwX3JldiA9IHJzZHAtPnJldmlzaW9uOworCisJaWYgKHJzZHAt PnJldmlzaW9uIDwgMikKKwkJcmVzdWx0ID0KKwkJICAgIGFjcGlfdGFibGVfY29tcHV0ZV9j aGVja3N1bShyc2RwLAorCQkJCQkJc2l6ZW9mKHN0cnVjdCBhY3BpX3RhYmxlX3JzZHApKTsK KwllbHNlCisJCXJlc3VsdCA9CisJCSAgICBhY3BpX3RhYmxlX2NvbXB1dGVfY2hlY2tzdW0o cnNkcCwKKwkJCQkJCSgoc3RydWN0IGFjcGkyMF90YWJsZV9yc2RwICopCisJCQkJCQkgcnNk cCktPmxlbmd0aCk7CisKKwlpZiAocmVzdWx0KSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcg IiAgPj4+IEVSUk9SOiBJbnZhbGlkIGNoZWNrc3VtXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7 CiAJfQpkaWZmIC1yIDdlODFkN2VjMWJiOSAtciBlOWRlZjEwMGE3NjAgeGVuL2luY2x1ZGUv eGVuL2FjcGkuaAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vYWNwaS5oCU1vbiBKdWwgMzAgMDc6 MTc6MjQgMjAwNyArMDkwMAorKysgYi94ZW4vaW5jbHVkZS94ZW4vYWNwaS5oCU1vbiBKdWwg MzAgMDc6MjA6NDIgMjAwNyArMDkwMApAQCAtMzgzLDYgKzM4Myw3IEBAIGludCBhY3BpX251 bWFfaW5pdCAodm9pZCk7CiBpbnQgYWNwaV9udW1hX2luaXQgKHZvaWQpOwogCiBpbnQgYWNw aV90YWJsZV9pbml0ICh2b2lkKTsKK2ludCBhY3BpX3RhYmxlX2Rpc2FibGUoZW51bSBhY3Bp X3RhYmxlX2lkIHRhYmxlX2lkKTsKIGludCBhY3BpX3RhYmxlX3BhcnNlIChlbnVtIGFjcGlf dGFibGVfaWQgaWQsIGFjcGlfdGFibGVfaGFuZGxlciBoYW5kbGVyKTsKIGludCBhY3BpX2dl dF90YWJsZV9oZWFkZXJfZWFybHkgKGVudW0gYWNwaV90YWJsZV9pZCBpZCwgc3RydWN0IGFj cGlfdGFibGVfaGVhZGVyICoqaGVhZGVyKTsKIGludCBhY3BpX3RhYmxlX3BhcnNlX21hZHQg KGVudW0gYWNwaV9tYWR0X2VudHJ5X2lkIGlkLCBhY3BpX21hZHRfZW50cnlfaGFuZGxlciBo YW5kbGVyLCB1bnNpZ25lZCBpbnQgbWF4X2VudHJpZXMpOwo= --Boundary-XIy1IY7aLvS363HQJ8K2x Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@lists.xensource.com http://lists.xensource.com/xen-ia64-devel --Boundary-XIy1IY7aLvS363HQJ8K2x--