From mboxrd@z Thu Jan 1 00:00:00 1970 From: DOI Tsunehisa Subject: Re: PV drivers for HVM guests Date: Wed, 11 Oct 2006 19:46:12 +0900 Message-ID: <452CCB74.4030709@jp.fujitsu.com> References: <45229025.E57C.0030.0@novell.com> <1160061687.3755.101.camel@localhost.localdomain> <452B5318.4010607@jp.fujitsu.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050609000901030305010507" Return-path: In-Reply-To: <452B5318.4010607@jp.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Campbell Cc: Ky Srinivasan , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------050609000901030305010507 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Hi all, DOI Tsunehisa wrote: > I modified Ian's patch for RHEL4. > > We've tested compiling and attaching them on RHEL4. In our simple > test, PV-on-HVM VBD/VNIF drivers work on RHEL4 original kernel. I checked several version of kernel source, and modified the patch. This patch is modified from Ian's patch: + move compat.c from xenbus to platform-pci - platform-pci needs vmalloc_to_pfn() realized in compat.c * platform-pci is inserted before xenbus insertion. + append schedule_timeout_interruptible() to compat.c - the code was copied from linux/kernel/timer.c + append do_exit() faker to compat.c - the faker was implemented using complete_and_exit() + delete vmalloc_to_page() from compat.c - vmalloc_to_page() already exists in linux-2.6.0 kernel. + conferm version for several features - do conferm version about "TODO: conferm version" We've tested compiling and attaching them on RHEL4. And they work on RHEL4 in same test. Thanks, - Doi Tsunehisa --------------050609000901030305010507 Content-Type: text/plain; name="pv-backport2.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="pv-backport2.patch" IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIERvaS5Uc3VuZWhpc2FAanAuZnVqaXRzdS5j b20KIyBOb2RlIElEIDUwZDMyYWUyZTBmNDViZGQwNmQ2ZjE0Y2MxYzg1MWNmM2YxMzBhZGYK IyBQYXJlbnQgIGY3ZDY1ZmI3Mjk5Yjk1YjhiNmQzYTQ0MTM0YTlmMmFmMjExMzkzYzYKQmFj a3BvcnQgUFYtb24tSFZNIGRyaXZlcnMgZm9yIHByZS1saW51eC0yLjYuMTYKClNpZ25lZC1v ZmYtYnk6IElhbiBDYW1wYmVsbCA8SWFuLkNhbXBiZWxsQFhlblNvdXJjZS5jb20+ClNpZ25l ZC1vZmYtYnk6IFRzdW5laGlzYSBEb2kgPERvaS5Uc3VuZWhpc2FAanAuZnVqaXRzdS5jb20+ CgpkaWZmIC1yIGY3ZDY1ZmI3Mjk5YiAtciA1MGQzMmFlMmUwZjQgbGludXgtMi42LXhlbi1z cGFyc2UvZHJpdmVycy94ZW4vYmxrZnJvbnQvYmxrZnJvbnQuYwotLS0gYS9saW51eC0yLjYt eGVuLXNwYXJzZS9kcml2ZXJzL3hlbi9ibGtmcm9udC9ibGtmcm9udC5jCVR1ZSBPY3QgMTAg MjI6MDQ6MDEgMjAwNiArMDEwMAorKysgYi9saW51eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJz L3hlbi9ibGtmcm9udC9ibGtmcm9udC5jCVdlZCBPY3QgMTEgMTY6NTg6MjggMjAwNiArMDkw MApAQCAtNDgsNiArNDgsMTAgQEAKICNpbmNsdWRlIDxhc20vaHlwZXJ2aXNvci5oPgogI2lu Y2x1ZGUgPGFzbS9tYWRkci5oPgogCisjaWZkZWYgSEFWRV9DT01QQVRfSAorI2luY2x1ZGUg PGNvbXBhdC5oPgorI2VuZGlmCisKICNkZWZpbmUgQkxLSUZfU1RBVEVfRElTQ09OTkVDVEVE IDAKICNkZWZpbmUgQkxLSUZfU1RBVEVfQ09OTkVDVEVEICAgIDEKICNkZWZpbmUgQkxLSUZf U1RBVEVfU1VTUEVOREVEICAgIDIKQEAgLTQ2OCw2ICs0NzIsMjcgQEAgaW50IGJsa2lmX2lv Y3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cgogCQkgICAgICBjb21tYW5kLCAobG9uZylh cmd1bWVudCwgaW5vZGUtPmlfcmRldik7CiAKIAlzd2l0Y2ggKGNvbW1hbmQpIHsKKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTYpCisJY2FzZSBIRElP X0dFVEdFTzogeworCQlzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZCA9IGlub2RlLT5pX2JkZXY7 CisJCXN0cnVjdCBoZF9nZW9tZXRyeSBnZW87CisJCWludCByZXQ7CisKKyAgICAgICAgICAg ICAgICBpZiAoIWFyZ3VtZW50KQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1F SU5WQUw7CisKKwkJZ2VvLnN0YXJ0ID0gZ2V0X3N0YXJ0X3NlY3QoYmQpOworCQlyZXQgPSBi bGtpZl9nZXRnZW8oYmQsICZnZW8pOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwor CQlpZiAoY29weV90b191c2VyKChzdHJ1Y3QgaGRfZ2VvbWV0cnkgX191c2VyICopYXJndW1l bnQsICZnZW8sCisJCQkJIHNpemVvZihnZW8pKSkKKyAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAtRUZBVUxUOworCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisJfQorI2Vu ZGlmCiAJY2FzZSBDRFJPTU1VTFRJU0VTU0lPTjoKIAkJRFBSSU5USygiRklYTUU6IHN1cHBv cnQgbXVsdGlzZXNzaW9uIENEcyBsYXRlclxuIik7CiAJCWZvciAoaSA9IDA7IGkgPCBzaXpl b2Yoc3RydWN0IGNkcm9tX211bHRpc2Vzc2lvbik7IGkrKykKZGlmZiAtciBmN2Q2NWZiNzI5 OWIgLXIgNTBkMzJhZTJlMGY0IGxpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL2Js a2Zyb250L3ZiZC5jCi0tLSBhL2xpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL2Js a2Zyb250L3ZiZC5jCVR1ZSBPY3QgMTAgMjI6MDQ6MDEgMjAwNiArMDEwMAorKysgYi9saW51 eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJzL3hlbi9ibGtmcm9udC92YmQuYwlXZWQgT2N0IDEx IDE2OjU4OjI4IDIwMDYgKzA5MDAKQEAgLTM2LDYgKzM2LDEwIEBACiAjaW5jbHVkZSA8bGlu dXgvYmxrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogCisjaWZkZWYgSEFWRV9D T01QQVRfSAorI2luY2x1ZGUgPGNvbXBhdC5oPgorI2VuZGlmCisKICNkZWZpbmUgQkxLSUZf TUFKT1IoZGV2KSAoKGRldik+PjgpCiAjZGVmaW5lIEJMS0lGX01JTk9SKGRldikgKChkZXYp ICYgMHhmZikKIApAQCAtOTEsNyArOTUsOSBAQCBzdGF0aWMgc3RydWN0IGJsb2NrX2Rldmlj ZV9vcGVyYXRpb25zIHhsCiAJLm9wZW4gPSBibGtpZl9vcGVuLAogCS5yZWxlYXNlID0gYmxr aWZfcmVsZWFzZSwKIAkuaW9jdGwgID0gYmxraWZfaW9jdGwsCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFID4gS0VSTkVMX1ZFUlNJT04oMiw2LDE1KQogCS5nZXRnZW8gPSBibGtpZl9nZXRn ZW8KKyNlbmRpZgogfTsKIAogREVGSU5FX1NQSU5MT0NLKGJsa2lmX2lvX2xvY2spOwpAQCAt MTg2LDcgKzE5MiwxMSBAQCB4bHZiZF9pbml0X2Jsa19xdWV1ZShzdHJ1Y3QgZ2VuZGlzayAq Z2QsCiAJaWYgKHJxID09IE5VTEwpCiAJCXJldHVybiAtMTsKIAorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+IEtFUk5FTF9WRVJTSU9OKDIsNiw5KQogCWVsZXZhdG9yX2luaXQocnEsICJu b29wIik7CisjZWxzZQorCWVsZXZhdG9yX2luaXQocnEsICZlbGV2YXRvcl9ub29wKTsKKyNl bmRpZgogCiAJLyogSGFyZCBzZWN0b3Igc2l6ZSBhbmQgbWF4IHNlY3RvcnMgaW1wZXJzb25h dGUgdGhlIGVxdWl2LiBoYXJkd2FyZS4gKi8KIAlibGtfcXVldWVfaGFyZHNlY3Rfc2l6ZShy cSwgc2VjdG9yX3NpemUpOwpkaWZmIC1yIGY3ZDY1ZmI3Mjk5YiAtciA1MGQzMmFlMmUwZjQg bGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4vY29yZS9mZWF0dXJlcy5jCi0tLSBh L2xpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL2NvcmUvZmVhdHVyZXMuYwlUdWUg T2N0IDEwIDIyOjA0OjAxIDIwMDYgKzAxMDAKKysrIGIvbGludXgtMi42LXhlbi1zcGFyc2Uv ZHJpdmVycy94ZW4vY29yZS9mZWF0dXJlcy5jCVdlZCBPY3QgMTEgMTY6NTg6MjggMjAwNiAr MDkwMApAQCAtMTAsNiArMTAsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNp bmNsdWRlIDxhc20vaHlwZXJ2aXNvci5oPgogI2luY2x1ZGUgPHhlbi9mZWF0dXJlcy5oPgor CisjaWZkZWYgSEFWRV9DT01QQVRfSAorI2luY2x1ZGUgPGNvbXBhdC5oPgorI2VuZGlmCiAK IHU4IHhlbl9mZWF0dXJlc1tYRU5GRUFUX05SX1NVQk1BUFMgKiAzMl0gX19yZWFkX21vc3Rs eTsKIC8qIE5vdCBhIEdQTCBzeW1ib2w6IHVzZWQgaW4gdWJpcXVpdG91cyBtYWNyb3MsIHNv IHRvbyByZXN0cmljdGl2ZS4gKi8KZGlmZiAtciBmN2Q2NWZiNzI5OWIgLXIgNTBkMzJhZTJl MGY0IGxpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL2NvcmUvZ250dGFiLmMKLS0t IGEvbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4vY29yZS9nbnR0YWIuYwlUdWUg T2N0IDEwIDIyOjA0OjAxIDIwMDYgKzAxMDAKKysrIGIvbGludXgtMi42LXhlbi1zcGFyc2Uv ZHJpdmVycy94ZW4vY29yZS9nbnR0YWIuYwlXZWQgT2N0IDExIDE2OjU4OjI4IDIwMDYgKzA5 MDAKQEAgLTQ0LDYgKzQ0LDEwIEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8 eGVuL2ludGVyZmFjZS9tZW1vcnkuaD4KIAorI2lmZGVmIEhBVkVfQ09NUEFUX0gKKyNpbmNs dWRlIDxjb21wYXQuaD4KKyNlbmRpZgorCiAvKiBFeHRlcm5hbCB0b29scyByZXNlcnZlIGZp cnN0IGZldyBncmFudCB0YWJsZSBlbnRyaWVzLiAqLwogI2RlZmluZSBOUl9SRVNFUlZFRF9F TlRSSUVTIDgKIApkaWZmIC1yIGY3ZDY1ZmI3Mjk5YiAtciA1MGQzMmFlMmUwZjQgbGludXgt Mi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4vbmV0ZnJvbnQvbmV0ZnJvbnQuYwotLS0gYS9s aW51eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJzL3hlbi9uZXRmcm9udC9uZXRmcm9udC5jCVR1 ZSBPY3QgMTAgMjI6MDQ6MDEgMjAwNiArMDEwMAorKysgYi9saW51eC0yLjYteGVuLXNwYXJz ZS9kcml2ZXJzL3hlbi9uZXRmcm9udC9uZXRmcm9udC5jCVdlZCBPY3QgMTEgMTY6NTg6Mjgg MjAwNiArMDkwMApAQCAtNjQsNiArNjQsMTAgQEAKICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNl L2dyYW50X3RhYmxlLmg+CiAjaW5jbHVkZSA8eGVuL2dudHRhYi5oPgogCisjaWZkZWYgSEFW RV9DT01QQVRfSAorI2luY2x1ZGUgPGNvbXBhdC5oPgorI2VuZGlmCisKIC8qCiAgKiBNdXR1 YWxseS1leGNsdXNpdmUgbW9kdWxlIG9wdGlvbnMgdG8gc2VsZWN0IHJlY2VpdmUgZGF0YSBw YXRoOgogICogIHJ4X2NvcHkgOiBQYWNrZXRzIGFyZSBjb3BpZWQgYnkgbmV0d29yayBiYWNr ZW5kIGludG8gbG9jYWwgbWVtb3J5CmRpZmYgLXIgZjdkNjVmYjcyOTliIC1yIDUwZDMyYWUy ZTBmNCBsaW51eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2Ns aWVudC5jCi0tLSBhL2xpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL3hlbmJ1cy94 ZW5idXNfY2xpZW50LmMJVHVlIE9jdCAxMCAyMjowNDowMSAyMDA2ICswMTAwCisrKyBiL2xp bnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50LmMJ V2VkIE9jdCAxMSAxNjo1ODoyOCAyMDA2ICswOTAwCkBAIC0zNCw2ICszNCwxMCBAQAogI2lu Y2x1ZGUgPHhlbi9nbnR0YWIuaD4KICNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+CiAjaW5jbHVk ZSA8eGVuL2RyaXZlcl91dGlsLmg+CisKKyNpZmRlZiBIQVZFX0NPTVBBVF9ICisjaW5jbHVk ZSA8Y29tcGF0Lmg+CisjZW5kaWYKIAogLyogeGVuYnVzX3Byb2JlLmMgKi8KIGV4dGVybiBj aGFyICprYXNwcmludGYoY29uc3QgY2hhciAqZm10LCAuLi4pOwpkaWZmIC1yIGY3ZDY1ZmI3 Mjk5YiAtciA1MGQzMmFlMmUwZjQgbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4v eGVuYnVzL3hlbmJ1c19jb21tcy5jCi0tLSBhL2xpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZl cnMveGVuL3hlbmJ1cy94ZW5idXNfY29tbXMuYwlUdWUgT2N0IDEwIDIyOjA0OjAxIDIwMDYg KzAxMDAKKysrIGIvbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4veGVuYnVzL3hl bmJ1c19jb21tcy5jCVdlZCBPY3QgMTEgMTY6NTg6MjggMjAwNiArMDkwMApAQCAtMzksNiAr MzksMTAgQEAKICNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+CiAjaW5jbHVkZSAieGVuYnVzX2Nv bW1zLmgiCiAKKyNpZmRlZiBIQVZFX0NPTVBBVF9ICisjaW5jbHVkZSA8Y29tcGF0Lmg+Cisj ZW5kaWYKKwogc3RhdGljIGludCB4ZW5idXNfaXJxOwogCiBleHRlcm4gdm9pZCB4ZW5idXNf cHJvYmUodm9pZCAqKTsKZGlmZiAtciBmN2Q2NWZiNzI5OWIgLXIgNTBkMzJhZTJlMGY0IGxp bnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfcHJvYmUuYwot LS0gYS9saW51eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3By b2JlLmMJVHVlIE9jdCAxMCAyMjowNDowMSAyMDA2ICswMTAwCisrKyBiL2xpbnV4LTIuNi14 ZW4tc3BhcnNlL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfcHJvYmUuYwlXZWQgT2N0IDEx IDE2OjU4OjI4IDIwMDYgKzA5MDAKQEAgLTU2LDYgKzU2LDEwIEBACiAKICNpbmNsdWRlICJ4 ZW5idXNfY29tbXMuaCIKIAorI2lmZGVmIEhBVkVfQ09NUEFUX0gKKyNpbmNsdWRlIDxjb21w YXQuaD4KKyNlbmRpZgorCiBpbnQgeGVuX3N0b3JlX2V2dGNobjsKIHN0cnVjdCB4ZW5zdG9y ZV9kb21haW5faW50ZXJmYWNlICp4ZW5fc3RvcmVfaW50ZXJmYWNlOwogc3RhdGljIHVuc2ln bmVkIGxvbmcgeGVuX3N0b3JlX21mbjsKQEAgLTY3LDEzICs3MSwxNyBAQCBzdGF0aWMgdm9p ZCB3YWl0X2Zvcl9kZXZpY2VzKHN0cnVjdCB4ZW5iCiBzdGF0aWMgdm9pZCB3YWl0X2Zvcl9k ZXZpY2VzKHN0cnVjdCB4ZW5idXNfZHJpdmVyICp4ZW5kcnYpOwogCiBzdGF0aWMgaW50IHhl bmJ1c19wcm9iZV9mcm9udGVuZChjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1l KTsKKyNpZmRlZiBDT05GSUdfWEVOX0JBQ0tFTkQKIHN0YXRpYyBpbnQgeGVuYnVzX3VldmVu dF9iYWNrZW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgY2hhciAqKmVudnAsCiAJCQkJIGludCBu dW1fZW52cCwgY2hhciAqYnVmZmVyLCBpbnQgYnVmZmVyX3NpemUpOwogc3RhdGljIGludCB4 ZW5idXNfcHJvYmVfYmFja2VuZChjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpkb21p ZCk7CisjZW5kaWYKIAogc3RhdGljIGludCB4ZW5idXNfZGV2X3Byb2JlKHN0cnVjdCBkZXZp Y2UgKl9kZXYpOwogc3RhdGljIGludCB4ZW5idXNfZGV2X3JlbW92ZShzdHJ1Y3QgZGV2aWNl ICpfZGV2KTsKKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPiBLRVJORUxfVkVSU0lPTigyLDYs MTUpCiBzdGF0aWMgdm9pZCB4ZW5idXNfZGV2X3NodXRkb3duKHN0cnVjdCBkZXZpY2UgKl9k ZXYpOworI2VuZGlmCiAKIC8qIElmIHNvbWV0aGluZyBpbiBhcnJheSBvZiBpZHMgbWF0Y2hl cyB0aGlzIGRldmljZSwgcmV0dXJuIGl0LiAqLwogc3RhdGljIGNvbnN0IHN0cnVjdCB4ZW5i dXNfZGV2aWNlX2lkICoKQEAgLTE3NiwxMCArMTg0LDEyIEBAIHN0YXRpYyBpbnQgcmVhZF9i YWNrZW5kX2RldGFpbHMoc3RydWN0IHgKIH0KIAogCisjaWZkZWYgQ09ORklHX1hFTl9CQUNL RU5ECiBzdGF0aWMgaW50IHJlYWRfZnJvbnRlbmRfZGV0YWlscyhzdHJ1Y3QgeGVuYnVzX2Rl dmljZSAqeGVuZGV2KQogewogCXJldHVybiByZWFkX290aGVyZW5kX2RldGFpbHMoeGVuZGV2 LCAiZnJvbnRlbmQtaWQiLCAiZnJvbnRlbmQiKTsKIH0KKyNlbmRpZgogCiAKIC8qIEJ1cyB0 eXBlIGZvciBmcm9udGVuZCBkcml2ZXJzLiAqLwpAQCAtMTkxLDE1ICsyMDEsMTggQEAgc3Rh dGljIHN0cnVjdCB4ZW5fYnVzX3R5cGUgeGVuYnVzX2Zyb250ZQogCS5idXMgPSB7CiAJCS5u YW1lICAgICA9ICJ4ZW4iLAogCQkubWF0Y2ggICAgPSB4ZW5idXNfbWF0Y2gsCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFID4gS0VSTkVMX1ZFUlNJT04oMiw2LDE1KQogCQkucHJvYmUgICAg PSB4ZW5idXNfZGV2X3Byb2JlLAogCQkucmVtb3ZlICAgPSB4ZW5idXNfZGV2X3JlbW92ZSwK IAkJLnNodXRkb3duID0geGVuYnVzX2Rldl9zaHV0ZG93biwKKyNlbmRpZgogCX0sCiAJLmRl diA9IHsKIAkJLmJ1c19pZCA9ICJ4ZW4iLAogCX0sCiB9OwogCisjaWZkZWYgQ09ORklHX1hF Tl9CQUNLRU5ECiAvKiBiYWNrZW5kLzx0eXBlPi88ZmUtdXVpZD4vPGlkPiA9PiA8dHlwZT4t PGZlLWRvbWlkPi08aWQ+ICovCiBzdGF0aWMgaW50IGJhY2tlbmRfYnVzX2lkKGNoYXIgYnVz X2lkW0JVU19JRF9TSVpFXSwgY29uc3QgY2hhciAqbm9kZW5hbWUpCiB7CkBAIC0yOTksNiAr MzEyLDcgQEAgc3RhdGljIGludCB4ZW5idXNfdWV2ZW50X2JhY2tlbmQoc3RydWN0IAogCiAJ cmV0dXJuIDA7CiB9CisjZW5kaWYKIAogc3RhdGljIHZvaWQgb3RoZXJlbmRfY2hhbmdlZChz dHJ1Y3QgeGVuYnVzX3dhdGNoICp3YXRjaCwKIAkJCSAgICAgY29uc3QgY2hhciAqKnZlYywg dW5zaWduZWQgaW50IGxlbikKQEAgLTQyMyw2ICs0MzcsNyBAQCBzdGF0aWMgaW50IHhlbmJ1 c19kZXZfcmVtb3ZlKHN0cnVjdCBkZXZpCiAJcmV0dXJuIDA7CiB9CiAKKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPiBLRVJORUxfVkVSU0lPTigyLDYsMTUpCiBzdGF0aWMgdm9pZCB4ZW5i dXNfZGV2X3NodXRkb3duKHN0cnVjdCBkZXZpY2UgKl9kZXYpCiB7CiAJc3RydWN0IHhlbmJ1 c19kZXZpY2UgKmRldiA9IHRvX3hlbmJ1c19kZXZpY2UoX2Rldik7CkBAIC00NDMsNiArNDU4 LDcgQEAgc3RhdGljIHZvaWQgeGVuYnVzX2Rldl9zaHV0ZG93bihzdHJ1Y3QgZAogIG91dDoK IAlwdXRfZGV2aWNlKCZkZXYtPmRldik7CiB9CisjZW5kaWYKIAogc3RhdGljIGludCB4ZW5i dXNfcmVnaXN0ZXJfZHJpdmVyX2NvbW1vbihzdHJ1Y3QgeGVuYnVzX2RyaXZlciAqZHJ2LAog CQkJCQkgc3RydWN0IHhlbl9idXNfdHlwZSAqYnVzKQpAQCAtNDUxLDcgKzQ2NywxMyBAQCBz dGF0aWMgaW50IHhlbmJ1c19yZWdpc3Rlcl9kcml2ZXJfY29tbW9uCiAKIAlkcnYtPmRyaXZl ci5uYW1lID0gZHJ2LT5uYW1lOwogCWRydi0+ZHJpdmVyLmJ1cyA9ICZidXMtPmJ1czsKKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPiBLRVJORUxfVkVSU0lPTigyLDYsOSkKIAlkcnYtPmRy aXZlci5vd25lciA9IGRydi0+b3duZXI7CisjZW5kaWYKKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTYpCisJZHJ2LT5kcml2ZXIucHJvYmUgPSB4ZW5i dXNfZGV2X3Byb2JlOworCWRydi0+ZHJpdmVyLnJlbW92ZSA9IHhlbmJ1c19kZXZfcmVtb3Zl OworI2VuZGlmCiAKIAltdXRleF9sb2NrKCZ4ZW53YXRjaF9tdXRleCk7CiAJcmV0ID0gZHJp dmVyX3JlZ2lzdGVyKCZkcnYtPmRyaXZlcik7CkBAIC00NzYsNiArNDk4LDcgQEAgaW50IHhl bmJ1c19yZWdpc3Rlcl9mcm9udGVuZChzdHJ1Y3QgeGVuYgogfQogRVhQT1JUX1NZTUJPTF9H UEwoeGVuYnVzX3JlZ2lzdGVyX2Zyb250ZW5kKTsKIAorI2lmZGVmIENPTkZJR19YRU5fQkFD S0VORAogaW50IHhlbmJ1c19yZWdpc3Rlcl9iYWNrZW5kKHN0cnVjdCB4ZW5idXNfZHJpdmVy ICpkcnYpCiB7CiAJZHJ2LT5yZWFkX290aGVyZW5kX2RldGFpbHMgPSByZWFkX2Zyb250ZW5k X2RldGFpbHM7CkBAIC00ODMsNiArNTA2LDcgQEAgaW50IHhlbmJ1c19yZWdpc3Rlcl9iYWNr ZW5kKHN0cnVjdCB4ZW5idQogCXJldHVybiB4ZW5idXNfcmVnaXN0ZXJfZHJpdmVyX2NvbW1v bihkcnYsICZ4ZW5idXNfYmFja2VuZCk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh4ZW5idXNf cmVnaXN0ZXJfYmFja2VuZCk7CisjZW5kaWYKIAogdm9pZCB4ZW5idXNfdW5yZWdpc3Rlcl9k cml2ZXIoc3RydWN0IHhlbmJ1c19kcml2ZXIgKmRydikKIHsKQEAgLTU4MSwxNCArNjA1LDIw IEBAIGNoYXIgKmthc3ByaW50Zihjb25zdCBjaGFyICpmbXQsIC4uLikKIH0KIAogc3RhdGlj IHNzaXplX3QgeGVuZGV2X3Nob3dfbm9kZW5hbWUoc3RydWN0IGRldmljZSAqZGV2LAotCQkJ CSAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA+IEtFUk5FTF9WRVJTSU9OKDIsNiwxMikKKwkJCQkgICAgc3Ry dWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCisjZW5kaWYKKwkJCQkgICAgY2hhciAqYnVm KQogewogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVzXG4iLCB0b194ZW5idXNfZGV2aWNlKGRl diktPm5vZGVuYW1lKTsKIH0KIERFVklDRV9BVFRSKG5vZGVuYW1lLCBTX0lSVVNSIHwgU19J UkdSUCB8IFNfSVJPVEgsIHhlbmRldl9zaG93X25vZGVuYW1lLCBOVUxMKTsKIAogc3RhdGlj IHNzaXplX3QgeGVuZGV2X3Nob3dfZGV2dHlwZShzdHJ1Y3QgZGV2aWNlICpkZXYsCi0JCQkJ ICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPiBLRVJORUxfVkVSU0lPTigyLDYsMTIpCisJCQkJICAgc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCisjZW5kaWYKKwkJCQkgICBjaGFyICpidWYpCiB7 CiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJXNcbiIsIHRvX3hlbmJ1c19kZXZpY2UoZGV2KS0+ ZGV2aWNldHlwZSk7CiB9CkBAIC02NjcsNiArNjk3LDcgQEAgc3RhdGljIGludCB4ZW5idXNf cHJvYmVfZnJvbnRlbmQoY29uc3QgYwogCXJldHVybiBlcnI7CiB9CiAKKyNpZmRlZiBDT05G SUdfWEVOX0JBQ0tFTkQKIC8qIGJhY2tlbmQvPHR5cGVuYW1lPi88ZnJvbnRlbmQtdXVpZD4v PG5hbWU+ICovCiBzdGF0aWMgaW50IHhlbmJ1c19wcm9iZV9iYWNrZW5kX3VuaXQoY29uc3Qg Y2hhciAqZGlyLAogCQkJCSAgICAgY29uc3QgY2hhciAqdHlwZSwKQEAgLTcxNSw2ICs3NDYs NyBAQCBzdGF0aWMgaW50IHhlbmJ1c19wcm9iZV9iYWNrZW5kKGNvbnN0IGNoCiAJa2ZyZWUo bm9kZW5hbWUpOwogCXJldHVybiBlcnI7CiB9CisjZW5kaWYKIAogc3RhdGljIGludCB4ZW5i dXNfcHJvYmVfZGV2aWNlX3R5cGUoc3RydWN0IHhlbl9idXNfdHlwZSAqYnVzLCBjb25zdCBj aGFyICp0eXBlKQogewpAQCAtODIzLDYgKzg1NSw3IEBAIHN0YXRpYyB2b2lkIGZyb250ZW5k X2NoYW5nZWQoc3RydWN0IHhlbmIKIAlkZXZfY2hhbmdlZCh2ZWNbWFNfV0FUQ0hfUEFUSF0s ICZ4ZW5idXNfZnJvbnRlbmQpOwogfQogCisjaWZkZWYgQ09ORklHX1hFTl9CQUNLRU5ECiBz dGF0aWMgdm9pZCBiYWNrZW5kX2NoYW5nZWQoc3RydWN0IHhlbmJ1c193YXRjaCAqd2F0Y2gs CiAJCQkgICAgY29uc3QgY2hhciAqKnZlYywgdW5zaWduZWQgaW50IGxlbikKIHsKQEAgLTgz MCw2ICs4NjMsNyBAQCBzdGF0aWMgdm9pZCBiYWNrZW5kX2NoYW5nZWQoc3RydWN0IHhlbmJ1 CiAKIAlkZXZfY2hhbmdlZCh2ZWNbWFNfV0FUQ0hfUEFUSF0sICZ4ZW5idXNfYmFja2VuZCk7 CiB9CisjZW5kaWYKIAogLyogV2Ugd2F0Y2ggZm9yIGRldmljZXMgYXBwZWFyaW5nIGFuZCB2 YW5pc2hpbmcuICovCiBzdGF0aWMgc3RydWN0IHhlbmJ1c193YXRjaCBmZV93YXRjaCA9IHsK QEAgLTgzNywxMCArODcxLDEyIEBAIHN0YXRpYyBzdHJ1Y3QgeGVuYnVzX3dhdGNoIGZlX3dh dGNoID0gewogCS5jYWxsYmFjayA9IGZyb250ZW5kX2NoYW5nZWQsCiB9OwogCisjaWZkZWYg Q09ORklHX1hFTl9CQUNLRU5ECiBzdGF0aWMgc3RydWN0IHhlbmJ1c193YXRjaCBiZV93YXRj aCA9IHsKIAkubm9kZSA9ICJiYWNrZW5kIiwKIAkuY2FsbGJhY2sgPSBiYWNrZW5kX2NoYW5n ZWQsCiB9OworI2VuZGlmCiAKIHN0YXRpYyBpbnQgc3VzcGVuZF9kZXYoc3RydWN0IGRldmlj ZSAqZGV2LCB2b2lkICpkYXRhKQogewpAQCAtOTEyLDcgKzk0OCw5IEBAIHZvaWQgeGVuYnVz X3N1c3BlbmQodm9pZCkKIAlEUFJJTlRLKCIiKTsKIAogCWJ1c19mb3JfZWFjaF9kZXYoJnhl bmJ1c19mcm9udGVuZC5idXMsIE5VTEwsIE5VTEwsIHN1c3BlbmRfZGV2KTsKKyNpZmRlZiBD T05GSUdfWEVOX0JBQ0tFTkQKIAlidXNfZm9yX2VhY2hfZGV2KCZ4ZW5idXNfYmFja2VuZC5i dXMsIE5VTEwsIE5VTEwsIHN1c3BlbmRfZGV2KTsKKyNlbmRpZgogCXhzX3N1c3BlbmQoKTsK IH0KIEVYUE9SVF9TWU1CT0xfR1BMKHhlbmJ1c19zdXNwZW5kKTsKQEAgLTkyMiw3ICs5NjAs OSBAQCB2b2lkIHhlbmJ1c19yZXN1bWUodm9pZCkKIAl4Yl9pbml0X2NvbW1zKCk7CiAJeHNf cmVzdW1lKCk7CiAJYnVzX2Zvcl9lYWNoX2RldigmeGVuYnVzX2Zyb250ZW5kLmJ1cywgTlVM TCwgTlVMTCwgcmVzdW1lX2Rldik7CisjaWZkZWYgQ09ORklHX1hFTl9CQUNLRU5ECiAJYnVz X2Zvcl9lYWNoX2RldigmeGVuYnVzX2JhY2tlbmQuYnVzLCBOVUxMLCBOVUxMLCByZXN1bWVf ZGV2KTsKKyNlbmRpZgogfQogRVhQT1JUX1NZTUJPTF9HUEwoeGVuYnVzX3Jlc3VtZSk7CiAK QEAgLTk1NywxMSArOTk3LDE1IEBAIHZvaWQgeGVuYnVzX3Byb2JlKHZvaWQgKnVudXNlZCkK IAogCS8qIEVudW1lcmF0ZSBkZXZpY2VzIGluIHhlbnN0b3JlLiAqLwogCXhlbmJ1c19wcm9i ZV9kZXZpY2VzKCZ4ZW5idXNfZnJvbnRlbmQpOworI2lmZGVmIENPTkZJR19YRU5fQkFDS0VO RAogCXhlbmJ1c19wcm9iZV9kZXZpY2VzKCZ4ZW5idXNfYmFja2VuZCk7CisjZW5kaWYKIAog CS8qIFdhdGNoIGZvciBjaGFuZ2VzLiAqLwogCXJlZ2lzdGVyX3hlbmJ1c193YXRjaCgmZmVf d2F0Y2gpOworI2lmZGVmIENPTkZJR19YRU5fQkFDS0VORAogCXJlZ2lzdGVyX3hlbmJ1c193 YXRjaCgmYmVfd2F0Y2gpOworI2VuZGlmCiAKIAkvKiBOb3RpZnkgb3RoZXJzIHRoYXQgeGVu c3RvcmUgaXMgdXAgKi8KIAlub3RpZmllcl9jYWxsX2NoYWluKCZ4ZW5zdG9yZV9jaGFpbiwg MCwgTlVMTCk7CkBAIC05NzMsNiArMTAxNyw3IEBAIHN0YXRpYyBzdHJ1Y3QgcHJvY19kaXJf ZW50cnkgKnhzZF9rdmFfaW4KIHN0YXRpYyBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnhzZF9r dmFfaW50ZjsKIHN0YXRpYyBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnhzZF9wb3J0X2ludGY7 CiAKKyNpZmRlZiBDT05GSUdfWEVOX1BSSVZJTEVHRURfR1VFU1QKIHN0YXRpYyBpbnQgeHNk X2t2YV9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZt YSkKIHsKIAlzaXplX3Qgc2l6ZSA9IHZtYS0+dm1fZW5kIC0gdm1hLT52bV9zdGFydDsKQEAg LTk4Niw2ICsxMDMxLDkgQEAgc3RhdGljIGludCB4c2Rfa3ZhX21tYXAoc3RydWN0IGZpbGUg KmZpbAogCiAJcmV0dXJuIDA7CiB9CisjZWxzZQorI2RlZmluZSB4c2Rfa3ZhX21tYXAgTlVM TAorI2VuZGlmCiAKIHN0YXRpYyBpbnQgeHNkX2t2YV9yZWFkKGNoYXIgKnBhZ2UsIGNoYXIg KipzdGFydCwgb2ZmX3Qgb2ZmLAogCQkJaW50IGNvdW50LCBpbnQgKmVvZiwgdm9pZCAqZGF0 YSkKQEAgLTEwMjAsNyArMTA2OCw5IEBAIHN0YXRpYyBpbnQgX19pbml0IHhlbmJ1c19wcm9i ZV9pbml0KHZvaWQKIAogCS8qIFJlZ2lzdGVyIG91cnNlbHZlcyB3aXRoIHRoZSBrZXJuZWwg YnVzIHN1YnN5c3RlbSAqLwogCWJ1c19yZWdpc3RlcigmeGVuYnVzX2Zyb250ZW5kLmJ1cyk7 CisjaWZkZWYgQ09ORklHX1hFTl9CQUNLRU5ECiAJYnVzX3JlZ2lzdGVyKCZ4ZW5idXNfYmFj a2VuZC5idXMpOworI2VuZGlmCiAKIAkvKgogCSAqIERvbWFpbjAgZG9lc24ndCBoYXZlIGEg c3RvcmVfZXZ0Y2huIG9yIHN0b3JlX21mbiB5ZXQuCkBAIC0xMDkxLDcgKzExNDEsOSBAQCBz dGF0aWMgaW50IF9faW5pdCB4ZW5idXNfcHJvYmVfaW5pdCh2b2lkCiAKIAkvKiBSZWdpc3Rl ciBvdXJzZWx2ZXMgd2l0aCB0aGUga2VybmVsIGRldmljZSBzdWJzeXN0ZW0gKi8KIAlkZXZp Y2VfcmVnaXN0ZXIoJnhlbmJ1c19mcm9udGVuZC5kZXYpOworI2lmZGVmIENPTkZJR19YRU5f QkFDS0VORAogCWRldmljZV9yZWdpc3RlcigmeGVuYnVzX2JhY2tlbmQuZGV2KTsKKyNlbmRp ZgogCiAJaWYgKCFpc19pbml0aWFsX3hlbmRvbWFpbigpKQogCQl4ZW5idXNfcHJvYmUoTlVM TCk7CmRpZmYgLXIgZjdkNjVmYjcyOTliIC1yIDUwZDMyYWUyZTBmNCBsaW51eC0yLjYteGVu LXNwYXJzZS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3hzLmMKLS0tIGEvbGludXgtMi42 LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c194cy5jCVR1ZSBPY3QgMTAg MjI6MDQ6MDEgMjAwNiArMDEwMAorKysgYi9saW51eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJz L3hlbi94ZW5idXMveGVuYnVzX3hzLmMJV2VkIE9jdCAxMSAxNjo1ODoyOCAyMDA2ICswOTAw CkBAIC00Miw4ICs0MiwxMyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZjbnRsLmg+CiAjaW5jbHVk ZSA8bGludXgva3RocmVhZC5oPgogI2luY2x1ZGUgPGxpbnV4L3J3c2VtLmg+CisjaW5jbHVk ZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8eGVuL3hlbmJ1cy5oPgogI2luY2x1ZGUg InhlbmJ1c19jb21tcy5oIgorCisjaWZkZWYgSEFWRV9DT01QQVRfSAorI2luY2x1ZGUgPGNv bXBhdC5oPgorI2VuZGlmCiAKIC8qIHhlbmJ1c19wcm9iZS5jICovCiBleHRlcm4gY2hhciAq a2FzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKZGlmZiAtciBmN2Q2NWZiNzI5OWIg LXIgNTBkMzJhZTJlMGY0IGxpbnV4LTIuNi14ZW4tc3BhcnNlL2luY2x1ZGUvYXNtLWkzODYv bWFjaC14ZW4vYXNtL3N5bmNoX2JpdG9wcy5oCi0tLSBhL2xpbnV4LTIuNi14ZW4tc3BhcnNl L2luY2x1ZGUvYXNtLWkzODYvbWFjaC14ZW4vYXNtL3N5bmNoX2JpdG9wcy5oCVR1ZSBPY3Qg MTAgMjI6MDQ6MDEgMjAwNiArMDEwMAorKysgYi9saW51eC0yLjYteGVuLXNwYXJzZS9pbmNs dWRlL2FzbS1pMzg2L21hY2gteGVuL2FzbS9zeW5jaF9iaXRvcHMuaAlXZWQgT2N0IDExIDE2 OjU4OjI4IDIwMDYgKzA5MDAKQEAgLTgsNiArOCwxMCBAQAogICovCiAKICNpbmNsdWRlIDxs aW51eC9jb25maWcuaD4KKworI2lmZGVmIEhBVkVfQ09NUEFUX0gKKyNpbmNsdWRlIDxjb21w YXQuaD4KKyNlbmRpZgogCiAjZGVmaW5lIEFERFIgKCoodm9sYXRpbGUgbG9uZyAqKSBhZGRy KQogCmRpZmYgLXIgZjdkNjVmYjcyOTliIC1yIDUwZDMyYWUyZTBmNCBsaW51eC0yLjYteGVu LXNwYXJzZS9pbmNsdWRlL3hlbi94ZW5idXMuaAotLS0gYS9saW51eC0yLjYteGVuLXNwYXJz ZS9pbmNsdWRlL3hlbi94ZW5idXMuaAlUdWUgT2N0IDEwIDIyOjA0OjAxIDIwMDYgKzAxMDAK KysrIGIvbGludXgtMi42LXhlbi1zcGFyc2UvaW5jbHVkZS94ZW4veGVuYnVzLmgJV2VkIE9j dCAxMSAxNjo1ODoyOCAyMDA2ICswOTAwCkBAIC0zOCwxMCArMzgsMTUgQEAKICNpbmNsdWRl IDxsaW51eC9ub3RpZmllci5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVk ZSA8bGludXgvY29tcGxldGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNs dWRlIDx4ZW4vaW50ZXJmYWNlL3hlbi5oPgogI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2UvZ3Jh bnRfdGFibGUuaD4KICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL2lvL3hlbmJ1cy5oPgogI2lu Y2x1ZGUgPHhlbi9pbnRlcmZhY2UvaW8veHNfd2lyZS5oPgorCisjaWZkZWYgSEFWRV9DT01Q QVRfSAorI2luY2x1ZGUgPGNvbXBhdC5oPgorI2VuZGlmCiAKIC8qIFJlZ2lzdGVyIGNhbGxi YWNrIHRvIHdhdGNoIHRoaXMgbm9kZS4gKi8KIHN0cnVjdCB4ZW5idXNfd2F0Y2gKZGlmZiAt ciBmN2Q2NWZiNzI5OWIgLXIgNTBkMzJhZTJlMGY0IHVubW9kaWZpZWRfZHJpdmVycy9saW51 eC0yLjYvb3ZlcnJpZGVzLm1rCi0tLSBhL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYv b3ZlcnJpZGVzLm1rCVR1ZSBPY3QgMTAgMjI6MDQ6MDEgMjAwNiArMDEwMAorKysgYi91bm1v ZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L292ZXJyaWRlcy5tawlXZWQgT2N0IDExIDE2OjU4 OjI4IDIwMDYgKzA5MDAKQEAgLTksNCArOSw0IEBAIEVYVFJBX0NGTEFHUyArPSAtRENPTkZJ R19YRU5fQkxLREVWX0dSQU4KIEVYVFJBX0NGTEFHUyArPSAtRENPTkZJR19YRU5fQkxLREVW X0dSQU5UIC1EWEVOX0VWVENITl9NQVNLX09QUwogRVhUUkFfQ0ZMQUdTICs9IC1EQ09ORklH X1hFTl9ORVRERVZfR1JBTlRfUlggLURDT05GSUdfWEVOX05FVERFVl9HUkFOVF9UWAogRVhU UkFfQ0ZMQUdTICs9IC1EX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXz0weDAwMDMwMjAyCi1F WFRSQV9DRkxBR1MgKz0gLUkkKE0pL2luY2x1ZGUKK0VYVFJBX0NGTEFHUyArPSAtSSQoTSkv aW5jbHVkZSAtSSQoTSkvY29tcGF0LWluY2x1ZGUgLURIQVZFX0NPTVBBVF9ICmRpZmYgLXIg ZjdkNjVmYjcyOTliIC1yIDUwZDMyYWUyZTBmNCB1bm1vZGlmaWVkX2RyaXZlcnMvbGludXgt Mi42L3BsYXRmb3JtLXBjaS9LYnVpbGQKLS0tIGEvdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4 LTIuNi9wbGF0Zm9ybS1wY2kvS2J1aWxkCVR1ZSBPY3QgMTAgMjI6MDQ6MDEgMjAwNiArMDEw MAorKysgYi91bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L3BsYXRmb3JtLXBjaS9LYnVp bGQJV2VkIE9jdCAxMSAxNjo1ODoyOCAyMDA2ICswOTAwCkBAIC00LDQgKzQsMTAgQEAgb2Jq LW0gOj0geGVuLXBsYXRmb3JtLXBjaS5vCiAKIEVYVFJBX0NGTEFHUyArPSAtSSQoTSkvcGxh dGZvcm0tcGNpCiAKLXhlbi1wbGF0Zm9ybS1wY2ktb2JqcyA6PSBldnRjaG4ubyBwbGF0Zm9y bS1wY2kubyBnbnR0YWIubyB4ZW5fc3VwcG9ydC5vIGZlYXR1cmVzLm8KK3hlbi1wbGF0Zm9y bS1wY2ktb2JqcyA6PQoreGVuLXBsYXRmb3JtLXBjaS1vYmpzICs9IHBsYXRmb3JtLXBjaS5v Cit4ZW4tcGxhdGZvcm0tcGNpLW9ianMgKz0gZmVhdHVyZXMubworeGVuLXBsYXRmb3JtLXBj aS1vYmpzICs9IGV2dGNobi5vCit4ZW4tcGxhdGZvcm0tcGNpLW9ianMgKz0gZ250dGFiLm8K K3hlbi1wbGF0Zm9ybS1wY2ktb2JqcyArPSB4ZW5fc3VwcG9ydC5vCit4ZW4tcGxhdGZvcm0t cGNpLW9ianMgKz0gY29tcGF0Lm8KZGlmZiAtciBmN2Q2NWZiNzI5OWIgLXIgNTBkMzJhZTJl MGY0IHVubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvcGxhdGZvcm0tcGNpL2V2dGNobi5j Ci0tLSBhL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvcGxhdGZvcm0tcGNpL2V2dGNo bi5jCVR1ZSBPY3QgMTAgMjI6MDQ6MDEgMjAwNiArMDEwMAorKysgYi91bm1vZGlmaWVkX2Ry aXZlcnMvbGludXgtMi42L3BsYXRmb3JtLXBjaS9ldnRjaG4uYwlXZWQgT2N0IDExIDE2OjU4 OjI4IDIwMDYgKzA5MDAKQEAgLTM1LDYgKzM1LDEwIEBACiAjaW5jbHVkZSA8eGVuL2ludGVy ZmFjZS9odm0vaW9yZXEuaD4KICNpbmNsdWRlIDx4ZW4vZmVhdHVyZXMuaD4KICNpbmNsdWRl ICJwbGF0Zm9ybS1wY2kuaCIKKworI2lmZGVmIEhBVkVfQ09NUEFUX0gKKyNpbmNsdWRlIDxj b21wYXQuaD4KKyNlbmRpZgogCiB2b2lkICpzaGFyZWRfaW5mb19hcmVhOwogCmRpZmYgLXIg ZjdkNjVmYjcyOTliIC1yIDUwZDMyYWUyZTBmNCB1bm1vZGlmaWVkX2RyaXZlcnMvbGludXgt Mi42L3BsYXRmb3JtLXBjaS9wbGF0Zm9ybS1wY2kuYwotLS0gYS91bm1vZGlmaWVkX2RyaXZl cnMvbGludXgtMi42L3BsYXRmb3JtLXBjaS9wbGF0Zm9ybS1wY2kuYwlUdWUgT2N0IDEwIDIy OjA0OjAxIDIwMDYgKzAxMDAKKysrIGIvdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9w bGF0Zm9ybS1wY2kvcGxhdGZvcm0tcGNpLmMJV2VkIE9jdCAxMSAxNjo1ODoyOCAyMDA2ICsw OTAwCkBAIC0zOCw2ICszOCwxMCBAQAogCiAjaW5jbHVkZSAicGxhdGZvcm0tcGNpLmgiCiAK KyNpZmRlZiBIQVZFX0NPTVBBVF9ICisjaW5jbHVkZSA8Y29tcGF0Lmg+CisjZW5kaWYKKwog I2RlZmluZSBEUlZfTkFNRSAgICAieGVuLXBsYXRmb3JtLXBjaSIKICNkZWZpbmUgRFJWX1ZF UlNJT04gIjAuMTAiCiAjZGVmaW5lIERSVl9SRUxEQVRFICIwMy8wMy8yMDA1IgpkaWZmIC1y IGY3ZDY1ZmI3Mjk5YiAtciA1MGQzMmFlMmUwZjQgdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4 LTIuNi9wbGF0Zm9ybS1wY2kveGVuX3N1cHBvcnQuYwotLS0gYS91bm1vZGlmaWVkX2RyaXZl cnMvbGludXgtMi42L3BsYXRmb3JtLXBjaS94ZW5fc3VwcG9ydC5jCVR1ZSBPY3QgMTAgMjI6 MDQ6MDEgMjAwNiArMDEwMAorKysgYi91bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L3Bs YXRmb3JtLXBjaS94ZW5fc3VwcG9ydC5jCVdlZCBPY3QgMTEgMTY6NTg6MjggMjAwNiArMDkw MApAQCAtMjYsNiArMjYsMTAgQEAKICNpbmNsdWRlIDxhc20vaHlwZXJ2aXNvci5oPgogI2lu Y2x1ZGUgInBsYXRmb3JtLXBjaS5oIgogCisjaWZkZWYgSEFWRV9DT01QQVRfSAorI2luY2x1 ZGUgPGNvbXBhdC5oPgorI2VuZGlmCisKIHZvaWQgeGVuX21hY2hwaHlzX3VwZGF0ZSh1bnNp Z25lZCBsb25nIG1mbiwgdW5zaWduZWQgbG9uZyBwZm4pCiB7CiAJQlVHKCk7CmRpZmYgLXIg ZjdkNjVmYjcyOTliIC1yIDUwZDMyYWUyZTBmNCB1bm1vZGlmaWVkX2RyaXZlcnMvbGludXgt Mi42L2Jsa2Zyb250L01ha2VmaWxlCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDow MCAxOTcwICswMDAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvYmxrZnJv bnQvTWFrZWZpbGUJV2VkIE9jdCAxMSAxNjo1ODoyOCAyMDA2ICswOTAwCkBAIC0wLDAgKzEs MyBAQAoraWZuZXEgKCQoS0VSTkVMUkVMRUFTRSksKQoraW5jbHVkZSAkKHNyYykvS2J1aWxk CitlbmRpZgpkaWZmIC1yIGY3ZDY1ZmI3Mjk5YiAtciA1MGQzMmFlMmUwZjQgdW5tb2RpZmll ZF9kcml2ZXJzL2xpbnV4LTIuNi9jb21wYXQtaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxl LW5vcG1kLmgKLS0tIC9kZXYvbnVsbAlUaHUgSmFuIDAxIDAwOjAwOjAwIDE5NzAgKzAwMDAK KysrIGIvdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9jb21wYXQtaW5jbHVkZS9hc20t Z2VuZXJpYy9wZ3RhYmxlLW5vcG1kLmgJV2VkIE9jdCAxMSAxNjo1ODoyOCAyMDA2ICswOTAw CkBAIC0wLDAgKzEsMTQgQEAKKyNpZm5kZWYgX1BHVEFCTEVfTk9QTURfSAorI2RlZmluZSBf UEdUQUJMRV9OT1BNRF9ICisKKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPiBLRVJORUxfVkVS U0lPTigyLDYsMTApCisjZXJyb3IgIlRoaXMgdmVyc2lvbiBvZiBMaW51eCBzaG91bGQgbm90 IG5lZWQgY29tcGF0IHBndGFibGUtbm9wbWQuaCIKKyNlbmRpZgorCisjZGVmaW5lIHB1ZF90 IHBnZF90CisjZGVmaW5lIHB1ZF9vZmZzZXQoZCwgdmEpIGQKKyNkZWZpbmUgcHVkX25vbmUo cHVkKSAgICAgICAgICAgMAorI2RlZmluZSBwdWRfcHJlc2VudChwdWQpICAgICAgICAxCisj ZGVmaW5lIFBUUlNfUEVSX1BVRCAgICAgICAgICAgIDEKKworI2VuZGlmIC8qIF9QR1RBQkxF X05PUE1EX0ggKi8KZGlmZiAtciBmN2Q2NWZiNzI5OWIgLXIgNTBkMzJhZTJlMGY0IHVubW9k aWZpZWRfZHJpdmVycy9saW51eC0yLjYvY29tcGF0LWluY2x1ZGUvYXNtLWdlbmVyaWMvcGd0 YWJsZS1ub3B1ZC5oCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDowMCAxOTcwICsw MDAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvY29tcGF0LWluY2x1ZGUv YXNtLWdlbmVyaWMvcGd0YWJsZS1ub3B1ZC5oCVdlZCBPY3QgMTEgMTY6NTg6MjggMjAwNiAr MDkwMApAQCAtMCwwICsxLDE0IEBACisjaWZuZGVmIF9QR1RBQkxFX05PUFVEX0gKKyNkZWZp bmUgX1BHVEFCTEVfTk9QVURfSAorCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID4gS0VSTkVM X1ZFUlNJT04oMiw2LDEwKQorI2Vycm9yICJUaGlzIHZlcnNpb24gb2YgTGludXggc2hvdWxk IG5vdCBuZWVkIGNvbXBhdCBwZ3RhYmxlLW5vcHVkLmgiCisjZW5kaWYKKworI2RlZmluZSBw dWRfdCBwZ2RfdAorI2RlZmluZSBwdWRfb2Zmc2V0KGQsIHZhKSBkCisjZGVmaW5lIHB1ZF9u b25lKHB1ZCkgICAgICAgICAgIDAKKyNkZWZpbmUgcHVkX3ByZXNlbnQocHVkKSAgICAgICAg MQorI2RlZmluZSBQVFJTX1BFUl9QVUQgICAgICAgICAgICAxCisKKyNlbmRpZiAvKiBfUEdU QUJMRV9OT1BVRF9IICovCmRpZmYgLXIgZjdkNjVmYjcyOTliIC1yIDUwZDMyYWUyZTBmNCB1 bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L2NvbXBhdC1pbmNsdWRlL2NvbXBhdC5oCi0t LSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDowMCAxOTcwICswMDAwCisrKyBiL3VubW9k aWZpZWRfZHJpdmVycy9saW51eC0yLjYvY29tcGF0LWluY2x1ZGUvY29tcGF0LmgJV2VkIE9j dCAxMSAxNjo1ODoyOCAyMDA2ICswOTAwCkBAIC0wLDAgKzEsNTIgQEAKKyNpZm5kZWYgQ09N UEFUX0lOQ0xVREVfQ09NUEFUX0gKKyNkZWZpbmUgQ09NUEFUX0lOQ0xVREVfQ09NUEFUX0gK KworI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKworI2luY2x1ZGUgPGxpbnV4L3NsYWIu aD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDE0KQorLyoqCisgKiBremFsbG9jIC0gYWxsb2Nh dGUgbWVtb3J5LiBUaGUgbWVtb3J5IGlzIHNldCB0byB6ZXJvLgorICogQHNpemU6IGhvdyBt YW55IGJ5dGVzIG9mIG1lbW9yeSBhcmUgcmVxdWlyZWQuCisgKiBAZmxhZ3M6IHRoZSB0eXBl IG9mIG1lbW9yeSB0byBhbGxvY2F0ZS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkICpremFs bG9jKHNpemVfdCBzaXplLCBpbnQgZmxhZ3MpCit7CisgICAgICAgIHZvaWQgKnJldCA9IGtt YWxsb2Moc2l6ZSwgZmxhZ3MpOworICAgICAgICBpZiAocmV0KQorICAgICAgICAgICAgICAg IG1lbXNldChyZXQsIDAsIHNpemUpOworICAgICAgICByZXR1cm4gcmV0OworfQorI2VuZGlm CisKKyNpZiBkZWZpbmVkKF9fTElOVVhfQ09NUElMRVJfSCkgJiYgIWRlZmluZWQoX19hbHdh eXNfaW5saW5lKQorI2RlZmluZSBfX2Fsd2F5c19pbmxpbmUgaW5saW5lCisjZW5kaWYKKwor I2lmIGRlZmluZWQoX19MSU5VWF9TUElOTE9DS19IKSAmJiAhZGVmaW5lZChERUZJTkVfU1BJ TkxPQ0spCisjZGVmaW5lIERFRklORV9TUElOTE9DSyh4KSBzcGlubG9ja190IHggPSBTUElO X0xPQ0tfVU5MT0NLRUQKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfTElOVVhfSU5JVF9IKSAm JiAhZGVmaW5lZChfX2luaXQpCisjZGVmaW5lIF9faW5pdAorI2VuZGlmCisKKyNpZiBkZWZp bmVkKF9fTElOVVhfQ0FDSEVfSCkgJiYgIWRlZmluZWQoX19yZWFkX21vc3RseSkKKyNkZWZp bmUgX19yZWFkX21vc3RseQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9MSU5VWF9NTV9IKSAm JiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTApCit1bnNpZ25l ZCBsb25nIHZtYWxsb2NfdG9fcGZuKHZvaWQgKmFkZHIpOworI2VuZGlmCisKKyNpZiBkZWZp bmVkKF9MSU5VWF9CTEtERVZfSCkgJiYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDE2KQorI2RlZmluZSBlbmRfdGhhdF9yZXF1ZXN0X2xhc3QocmVxLCB1cHRv ZGF0ZSkgZW5kX3RoYXRfcmVxdWVzdF9sYXN0KHJlcSkKKyNlbmRpZgorCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDE0KQorc2lnbmVkIGxvbmcgX19z Y2hlZCBzY2hlZHVsZV90aW1lb3V0X2ludGVycnVwdGlibGUoc2lnbmVkIGxvbmcgdGltZW91 dCk7CisjZW5kaWYKKworI2VuZGlmIC8qICFDT01QQVRfSU5DTFVERV9DT01QQVRfSCAqLwpk aWZmIC1yIGY3ZDY1ZmI3Mjk5YiAtciA1MGQzMmFlMmUwZjQgdW5tb2RpZmllZF9kcml2ZXJz L2xpbnV4LTIuNi9jb21wYXQtaW5jbHVkZS9saW51eC9pby5oCi0tLSAvZGV2L251bGwJVGh1 IEphbiAwMSAwMDowMDowMCAxOTcwICswMDAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVycy9s aW51eC0yLjYvY29tcGF0LWluY2x1ZGUvbGludXgvaW8uaAlXZWQgT2N0IDExIDE2OjU4OjI4 IDIwMDYgKzA5MDAKQEAgLTAsMCArMSwxMCBAQAorI2lmbmRlZiBfTElOVVhfSU9fSAorI2Rl ZmluZSBfTElOVVhfSU9fSAorCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID4gS0VSTkVMX1ZF UlNJT04oMiw2LDE1KQorI2Vycm9yICJUaGlzIHZlcnNpb24gb2YgTGludXggc2hvdWxkIG5v dCBuZWVkIGNvbXBhdCBsaW51eC9pby5oIgorI2VuZGlmCisKKyNpbmNsdWRlIDxhc20vaW8u aD4KKworI2VuZGlmCmRpZmYgLXIgZjdkNjVmYjcyOTliIC1yIDUwZDMyYWUyZTBmNCB1bm1v ZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L2NvbXBhdC1pbmNsdWRlL2xpbnV4L211dGV4LmgK LS0tIC9kZXYvbnVsbAlUaHUgSmFuIDAxIDAwOjAwOjAwIDE5NzAgKzAwMDAKKysrIGIvdW5t b2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9jb21wYXQtaW5jbHVkZS9saW51eC9tdXRleC5o CVdlZCBPY3QgMTEgMTY6NTg6MjggMjAwNiArMDkwMApAQCAtMCwwICsxLDI5IEBACisvKgor ICogQ29weXJpZ2h0IChjKSAyMDA2IENpc2NvIFN5c3RlbXMuICBBbGwgcmlnaHRzIHJlc2Vy dmVkLgorICoKKyAqIFRoaXMgZmlsZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgR1BMdjIuCisg Ki8KKworLyogbXV0ZXggY29tcGF0aWJpbGl0eSBmb3IgcHJlLTIuNi4xNiBrZXJuZWxzICov CisKKyNpZm5kZWYgX19MSU5VWF9NVVRFWF9ICisjZGVmaW5lIF9fTElOVVhfTVVURVhfSAor CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorI2luY2x1ZGUgPGFzbS9zZW1hcGhvcmUu aD4KKworI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+IEtFUk5FTF9WRVJTSU9OKDIsNiwxNikK KyNlcnJvciAiVGhpcyB2ZXJzaW9uIG9mIExpbnV4IHNob3VsZCBub3QgbmVlZCBjb21wYXQg bXV0ZXguaCIKKyNlbmRpZgorCisjZGVmaW5lIG11dGV4IHNlbWFwaG9yZQorI2RlZmluZSBE RUZJTkVfTVVURVgoZm9vKSBERUNMQVJFX01VVEVYKGZvbykKKyNkZWZpbmUgbXV0ZXhfaW5p dChmb28pIGluaXRfTVVURVgoZm9vKQorI2RlZmluZSBtdXRleF9sb2NrKGZvbykgZG93bihm b28pCisjZGVmaW5lIG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZShmb28pIGRvd25faW50ZXJy dXB0aWJsZShmb28pCisvKiB0aGlzIGZ1bmN0aW9uIGZvbGxvd3MgdGhlIHNwaW5fdHJ5bG9j aygpIGNvbnZlbnRpb24sIHNvICAgICAgICAqCisgKiBpdCBpcyBuZWdhdGVkIHRvIHRoZSBk b3duX3RyeWxvY2soKSByZXR1cm4gdmFsdWVzISBCZSBjYXJlZnVsICAqLworI2RlZmluZSBt dXRleF90cnlsb2NrKGZvbykgIWRvd25fdHJ5bG9jayhmb28pCisjZGVmaW5lIG11dGV4X3Vu bG9jayhmb28pIHVwKGZvbykKKworI2VuZGlmIC8qIF9fTElOVVhfTVVURVhfSCAqLwpkaWZm IC1yIGY3ZDY1ZmI3Mjk5YiAtciA1MGQzMmFlMmUwZjQgdW5tb2RpZmllZF9kcml2ZXJzL2xp bnV4LTIuNi9uZXRmcm9udC9NYWtlZmlsZQotLS0gL2Rldi9udWxsCVRodSBKYW4gMDEgMDA6 MDA6MDAgMTk3MCArMDAwMAorKysgYi91bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L25l dGZyb250L01ha2VmaWxlCVdlZCBPY3QgMTEgMTY6NTg6MjggMjAwNiArMDkwMApAQCAtMCww ICsxLDMgQEAKK2lmbmVxICgkKEtFUk5FTFJFTEVBU0UpLCkKK2luY2x1ZGUgJChzcmMpL0ti dWlsZAorZW5kaWYKZGlmZiAtciBmN2Q2NWZiNzI5OWIgLXIgNTBkMzJhZTJlMGY0IHVubW9k aWZpZWRfZHJpdmVycy9saW51eC0yLjYvcGxhdGZvcm0tcGNpL01ha2VmaWxlCi0tLSAvZGV2 L251bGwJVGh1IEphbiAwMSAwMDowMDowMCAxOTcwICswMDAwCisrKyBiL3VubW9kaWZpZWRf ZHJpdmVycy9saW51eC0yLjYvcGxhdGZvcm0tcGNpL01ha2VmaWxlCVdlZCBPY3QgMTEgMTY6 NTg6MjggMjAwNiArMDkwMApAQCAtMCwwICsxLDMgQEAKK2lmbmVxICgkKEtFUk5FTFJFTEVB U0UpLCkKK2luY2x1ZGUgJChzcmMpL0tidWlsZAorZW5kaWYKZGlmZiAtciBmN2Q2NWZiNzI5 OWIgLXIgNTBkMzJhZTJlMGY0IHVubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvcGxhdGZv cm0tcGNpL2NvbXBhdC5jCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDowMCAxOTcw ICswMDAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvcGxhdGZvcm0tcGNp L2NvbXBhdC5jCVdlZCBPY3QgMTEgMTY6NTg6MjggMjAwNiArMDkwMApAQCAtMCwwICsxLDQ4 IEBACisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisjaW5jbHVkZSA8bGludXgvdmVyc2lv bi5oPgorI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorCisjaW5jbHVkZSA8YXNtL3BndGFibGUu aD4KKyNpbmNsdWRlIDxhc20vaHlwZXJ2aXNvci5oPgorCisjaWZkZWYgSEFWRV9DT01QQVRf SAorI2luY2x1ZGUgPGNvbXBhdC5oPgorI2VuZGlmCisKKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTApCisvKgorICogTWFwIGEgdm1hbGxvYygpLXNw YWNlIHZpcnR1YWwgYWRkcmVzcyB0byB0aGUgcGh5c2ljYWwgcGFnZSBmcmFtZSBudW1iZXIu CisgKi8KK3Vuc2lnbmVkIGxvbmcgdm1hbGxvY190b19wZm4odm9pZCAqIHZtYWxsb2NfYWRk cikKK3sKKwlyZXR1cm4gcGFnZV90b19wZm4odm1hbGxvY190b19wYWdlKHZtYWxsb2NfYWRk cikpOworfQorCitFWFBPUlRfU1lNQk9MKHZtYWxsb2NfdG9fcGZuKTsKKyNlbmRpZgorCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDEyKQorLyoKKyAg ICBmYWtlIGRvX2V4aXQgdXNpbmcgY29tcGxldGVfYW5kX2V4aXQKKyAqLworYXNtbGlua2Fn ZSBOT1JFVF9UWVBFIHZvaWQgZG9fZXhpdChsb25nIGNvZGUpCit7CisgICAgY29tcGxldGVf YW5kX2V4aXQoTlVMTCwgY29kZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRvX2V4aXQpOworI2Vu ZGlmCisKKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTQp CisvKgorICogV2UgY2FuIHVzZSBfX3NldF9jdXJyZW50X3N0YXRlKCkgaGVyZSBiZWNhdXNl IHNjaGVkdWxlX3RpbWVvdXQoKSBjYWxscworICogc2NoZWR1bGUoKSB1bmNvbmRpdGlvbmFs bHkuCisgKi8KK3NpZ25lZCBsb25nIF9fc2NoZWQgc2NoZWR1bGVfdGltZW91dF9pbnRlcnJ1 cHRpYmxlKHNpZ25lZCBsb25nIHRpbWVvdXQpCit7CisJX19zZXRfY3VycmVudF9zdGF0ZShU QVNLX0lOVEVSUlVQVElCTEUpOworCXJldHVybiBzY2hlZHVsZV90aW1lb3V0KHRpbWVvdXQp OworfQorRVhQT1JUX1NZTUJPTChzY2hlZHVsZV90aW1lb3V0X2ludGVycnVwdGlibGUpOwor I2VuZGlmCmRpZmYgLXIgZjdkNjVmYjcyOTliIC1yIDUwZDMyYWUyZTBmNCB1bm1vZGlmaWVk X2RyaXZlcnMvbGludXgtMi42L3hlbmJ1cy9NYWtlZmlsZQotLS0gL2Rldi9udWxsCVRodSBK YW4gMDEgMDA6MDA6MDAgMTk3MCArMDAwMAorKysgYi91bm1vZGlmaWVkX2RyaXZlcnMvbGlu dXgtMi42L3hlbmJ1cy9NYWtlZmlsZQlXZWQgT2N0IDExIDE2OjU4OjI4IDIwMDYgKzA5MDAK QEAgLTAsMCArMSwzIEBACitpZm5lcSAoJChLRVJORUxSRUxFQVNFKSwpCitpbmNsdWRlICQo c3JjKS9LYnVpbGQKK2VuZGlmCg== --------------050609000901030305010507 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 --------------050609000901030305010507--