From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Xu, Quan" Subject: [PATCH v8 07/11] IOMMU: propagate IOMMU Device-TLB flush error up to IOMMU suspending (top level ones) Date: Mon, 13 Jun 2016 23:17:14 +0800 Message-ID: <1465831038-43005-8-git-send-email-quan.xu@intel.com> References: <1465831038-43005-1-git-send-email-quan.xu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1465831038-43005-1-git-send-email-quan.xu@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Kevin Tian , Stefano Stabellini , Keir Fraser , Quan Xu , Liu Jinsong , dario.faggioli@citrix.com, Julien Grall , Jan Beulich , Andrew Cooper , Feng Wu , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org RnJvbTogUXVhbiBYdSA8cXVhbi54dUBpbnRlbC5jb20+CgpTaWduZWQtb2ZmLWJ5OiBRdWFuIFh1 IDxxdWFuLnh1QGludGVsLmNvbT4KQWNrZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50 ZWwuY29tPgpBY2tlZC1ieTogU3VyYXZlZSBTdXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3Vs cGFuaXRAYW1kLmNvbT4KCkNDOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNDOiBM aXUgSmluc29uZyA8amluc29uZy5saXVAYWxpYmFiYS1pbmMuY29tPgpDQzogS2VpciBGcmFzZXIg PGtlaXJAeGVuLm9yZz4KQ0M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5j b20+CkNDOiBTdXJhdmVlIFN1dGhpa3VscGFuaXQgPHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQu Y29tPgpDQzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDQzog SnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ0M6IEtldmluIFRpYW4gPGtldmlu LnRpYW5AaW50ZWwuY29tPgpDQzogRmVuZyBXdSA8ZmVuZy53dUBpbnRlbC5jb20+Cgp2ODogZW5o YW5jZSB0aGUgZXJyb3IgY2hlY2sgb2YgZGV2aWNlX3Bvd2VyX2Rvd24oKToKICAgIGlmIGNhbGwg ZGV2aWNlX3Bvd2VyX2Rvd24oKSBmYWlsZWQsCiAgICAgICAgcmV0dXJuIGEgbmVnYXRpdmUgZXJy b3IgY29kZSwKICAgIGVsc2UKICAgICAgICByZXR1cm4gMC4KLS0tCiB4ZW4vYXJjaC94ODYvYWNw aS9wb3dlci5jICAgICAgICAgICAgICAgICAgICAgfCA3OCArKysrKysrKysrKysrKysrKysrKy0t LS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMgICAgICB8ICA5 ICsrKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMgICB8ICAy ICstCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jICAgICAgICAgICAgICAgfCAgNiAr Ky0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jICAgICAgICAgICB8IDM1ICsr KysrKysrLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1wcm90by5o IHwgIDIgKy0KIHhlbi9pbmNsdWRlL3hlbi9pb21tdS5oICAgICAgICAgICAgICAgICAgICAgICB8 ICA0ICstCiA3IGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYWNwaS9wb3dlci5jIGIveGVuL2FyY2gveDg2 L2FjcGkvcG93ZXIuYwppbmRleCAyODg1ZTMxLi4yY2IzZDEzIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvYWNwaS9wb3dlci5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL3Bvd2VyLmMKQEAgLTQz LDM2ICs0Myw3MCBAQCBzdHJ1Y3QgYWNwaV9zbGVlcF9pbmZvIGFjcGlfc2luZm87CiAKIHZvaWQg ZG9fc3VzcGVuZF9sb3dsZXZlbCh2b2lkKTsKIAorZW51bSBkZXZfcG93ZXJfc2F2ZWQKK3sKKyAg ICBTQVZFRF9OT05FLAorICAgIFNBVkVEX0NPTlNPTEUsCisgICAgU0FWRURfVElNRSwKKyAgICBT QVZFRF9JODI1OUEsCisgICAgU0FWRURfSU9BUElDLAorICAgIFNBVkVEX0lPTU1VLAorICAgIFNB VkVEX0xBUElDLAorICAgIFNBVkVEX0FMTCwKK307CisKIHN0YXRpYyBpbnQgZGV2aWNlX3Bvd2Vy X2Rvd24odm9pZCkKIHsKLSAgICBjb25zb2xlX3N1c3BlbmQoKTsKKyAgICBpZiAoIGNvbnNvbGVf c3VzcGVuZCgpICkKKyAgICAgICAgcmV0dXJuIFNBVkVEX05PTkU7CiAKLSAgICB0aW1lX3N1c3Bl bmQoKTsKKyAgICBpZiAoIHRpbWVfc3VzcGVuZCgpICkKKyAgICAgICAgcmV0dXJuIFNBVkVEX0NP TlNPTEU7CiAKLSAgICBpODI1OUFfc3VzcGVuZCgpOworICAgIGlmICggaTgyNTlBX3N1c3BlbmQo KSApCisgICAgICAgIHJldHVybiBTQVZFRF9USU1FOwogCisgICAgLyogaW9hcGljX3N1c3BlbmQg Y2Fubm90IGZhaWwgKi8KICAgICBpb2FwaWNfc3VzcGVuZCgpOwogCi0gICAgaW9tbXVfc3VzcGVu ZCgpOworICAgIGlmICggaW9tbXVfc3VzcGVuZCgpICkKKyAgICAgICAgcmV0dXJuIFNBVkVEX0lP QVBJQzsKIAotICAgIGxhcGljX3N1c3BlbmQoKTsKKyAgICBpZiAoIGxhcGljX3N1c3BlbmQoKSAp CisgICAgICAgIHJldHVybiBTQVZFRF9JT01NVTsKIAotICAgIHJldHVybiAwOworICAgIHJldHVy biBTQVZFRF9BTEw7CiB9CiAKLXN0YXRpYyB2b2lkIGRldmljZV9wb3dlcl91cCh2b2lkKQorc3Rh dGljIHZvaWQgZGV2aWNlX3Bvd2VyX3VwKGVudW0gZGV2X3Bvd2VyX3NhdmVkIHNhdmVkKQogewot ICAgIGxhcGljX3Jlc3VtZSgpOwotCi0gICAgaW9tbXVfcmVzdW1lKCk7Ci0KLSAgICBpb2FwaWNf cmVzdW1lKCk7Ci0KLSAgICBpODI1OUFfcmVzdW1lKCk7Ci0KLSAgICB0aW1lX3Jlc3VtZSgpOwot Ci0gICAgY29uc29sZV9yZXN1bWUoKTsKKyAgICBzd2l0Y2ggKCBzYXZlZCApCisgICAgeworICAg IGNhc2UgU0FWRURfQUxMOgorICAgIGNhc2UgU0FWRURfTEFQSUM6CisgICAgICAgIGxhcGljX3Jl c3VtZSgpOworICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICBjYXNlIFNBVkVEX0lPTU1V OgorICAgICAgICBpb21tdV9yZXN1bWUoKTsKKyAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCisg ICAgY2FzZSBTQVZFRF9JT0FQSUM6CisgICAgICAgIGlvYXBpY19yZXN1bWUoKTsKKyAgICAgICAg LyogZmFsbCB0aHJvdWdoICovCisgICAgY2FzZSBTQVZFRF9JODI1OUE6CisgICAgICAgIGk4MjU5 QV9yZXN1bWUoKTsKKyAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCisgICAgY2FzZSBTQVZFRF9U SU1FOgorICAgICAgICB0aW1lX3Jlc3VtZSgpOworICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8K KyAgICBjYXNlIFNBVkVEX0NPTlNPTEU6CisgICAgICAgIGNvbnNvbGVfcmVzdW1lKCk7CisgICAg ICAgIC8qIGZhbGwgdGhyb3VnaCAqLworICAgIGNhc2UgU0FWRURfTk9ORToKKyAgICAgICAgYnJl YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQlVHKCk7CisgICAgICAgIGJyZWFrOworICAgIH0K IH0KIAogc3RhdGljIHZvaWQgZnJlZXplX2RvbWFpbnModm9pZCkKQEAgLTE2NSwxMiArMTk5LDE2 IEBAIHN0YXRpYyBpbnQgZW50ZXJfc3RhdGUodTMyIHN0YXRlKQogICAgIGxvY2FsX2lycV9zYXZl KGZsYWdzKTsKICAgICBzcGluX2RlYnVnX2Rpc2FibGUoKTsKIAotICAgIGlmICggKGVycm9yID0g ZGV2aWNlX3Bvd2VyX2Rvd24oKSkgKQorICAgIGlmICggKGVycm9yID0gZGV2aWNlX3Bvd2VyX2Rv d24oKSkgIT0gU0FWRURfQUxMICkKICAgICB7CiAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJT b21lIGRldmljZXMgZmFpbGVkIHRvIHBvd2VyIGRvd24uIik7CiAgICAgICAgIHN5c3RlbV9zdGF0 ZSA9IFNZU19TVEFURV9yZXN1bWU7CisgICAgICAgIGRldmljZV9wb3dlcl91cChlcnJvcik7Cisg ICAgICAgIGVycm9yID0gLUVJTzsKICAgICAgICAgZ290byBkb25lOwogICAgIH0KKyAgICBlbHNl CisgICAgICAgIGVycm9yID0gMDsKIAogICAgIEFDUElfRkxVU0hfQ1BVX0NBQ0hFKCk7CiAKQEAg LTE5Niw3ICsyMzQsNyBAQCBzdGF0aWMgaW50IGVudGVyX3N0YXRlKHUzMiBzdGF0ZSkKICAgICB3 cml0ZV9jcjQoY3I0ICYgflg4Nl9DUjRfTUNFKTsKICAgICB3cml0ZV9lZmVyKHJlYWRfZWZlcigp KTsKIAotICAgIGRldmljZV9wb3dlcl91cCgpOworICAgIGRldmljZV9wb3dlcl91cChTQVZFRF9B TEwpOwogCiAgICAgbWNoZWNrX2luaXQoJmJvb3RfY3B1X2RhdGEsIDApOwogICAgIHdyaXRlX2Ny NChjcjQpOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2lu aXQuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMKaW5kZXggNDUz NjEwNi4uMGI2ODU5NiAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lv bW11X2luaXQuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5j CkBAIC0xMzM5LDcgKzEzMzksMTQgQEAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZV9hbGxfZGV2aWNl cyh2b2lkKQogICAgIGl0ZXJhdGVfaXZyc19tYXBwaW5ncyhfaW52YWxpZGF0ZV9hbGxfZGV2aWNl cyk7CiB9CiAKLXZvaWQgYW1kX2lvbW11X3N1c3BlbmQodm9pZCkKK2ludCBhbWRfaW9tbXVfc3Vz cGVuZCh2b2lkKQoreworICAgIGFtZF9pb21tdV9jcmFzaF9zaHV0ZG93bigpOworCisgICAgcmV0 dXJuIDA7Cit9CisKK3ZvaWQgYW1kX2lvbW11X2NyYXNoX3NodXRkb3duKHZvaWQpCiB7CiAgICAg c3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CiAKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv cGNpX2FtZF9pb21tdS5jCmluZGV4IDRhODYwYWYuLjc3NjEyNDEgMTAwNjQ0Ci0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwpAQCAtNjMzLDYgKzYzMyw2IEBAIGNvbnN0 IHN0cnVjdCBpb21tdV9vcHMgYW1kX2lvbW11X29wcyA9IHsKICAgICAuc3VzcGVuZCA9IGFtZF9p b21tdV9zdXNwZW5kLAogICAgIC5yZXN1bWUgPSBhbWRfaW9tbXVfcmVzdW1lLAogICAgIC5zaGFy ZV9wMm0gPSBhbWRfaW9tbXVfc2hhcmVfcDJtLAotICAgIC5jcmFzaF9zaHV0ZG93biA9IGFtZF9p b21tdV9zdXNwZW5kLAorICAgIC5jcmFzaF9zaHV0ZG93biA9IGFtZF9pb21tdV9jcmFzaF9zaHV0 ZG93biwKICAgICAuZHVtcF9wMm1fdGFibGUgPSBhbWRfZHVtcF9wMm1fdGFibGUsCiB9OwpkaWZm IC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2lvbW11LmMKaW5kZXggM2E3M2ZhYi4uYTk4OThmYyAxMDA2NDQKLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9pb21tdS5jCkBAIC0zNzksMTAgKzM3OSwxMiBAQCBpbnQgX19pbml0IGlvbW11X3NldHVwKHZv aWQpCiAgICAgcmV0dXJuIHJjOwogfQogCi12b2lkIGlvbW11X3N1c3BlbmQoKQoraW50IGlvbW11 X3N1c3BlbmQoKQogewogICAgIGlmICggaW9tbXVfZW5hYmxlZCApCi0gICAgICAgIGlvbW11X2dl dF9vcHMoKS0+c3VzcGVuZCgpOworICAgICAgICByZXR1cm4gaW9tbXVfZ2V0X29wcygpLT5zdXNw ZW5kKCk7CisKKyAgICByZXR1cm4gMDsKIH0KIAogdm9pZCBpb21tdV9yZXN1bWUoKQpkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvaW9tbXUuYwppbmRleCA1MzY2MjY3Li4wZjE3YWZiIDEwMDY0NAotLS0g YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvaW9tbXUuYwpAQCAtNTQxLDcgKzU0MSw3IEBAIHN0YXRpYyBpbnQgaW9t bXVfZmx1c2hfaW90bGJfcHNpKAogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKLXN0YXRpYyB2b2lk IGlvbW11X2ZsdXNoX2FsbCh2b2lkKQorc3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1 c2hfYWxsKHZvaWQpCiB7CiAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwogICAgIHN0 cnVjdCBpb21tdSAqaW9tbXU7CkBAIC01NTUsNiArNTU1LDggQEAgc3RhdGljIHZvaWQgaW9tbXVf Zmx1c2hfYWxsKHZvaWQpCiAgICAgICAgIGZsdXNoX2Rldl9pb3RsYiA9IGZpbmRfYXRzX2Rldl9k cmhkKGlvbW11KSA/IDEgOiAwOwogICAgICAgICBpb21tdV9mbHVzaF9pb3RsYl9nbG9iYWwoaW9t bXUsIDAsIGZsdXNoX2Rldl9pb3RsYik7CiAgICAgfQorCisgICAgcmV0dXJuIDA7CiB9CiAKIHN0 YXRpYyB2b2lkIF9faW50ZWxfaW9tbXVfaW90bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5z aWduZWQgbG9uZyBnZm4sCkBAIC0xMjU5LDcgKzEyNjEsOSBAQCBzdGF0aWMgdm9pZCBfX2h3ZG9t X2luaXQgaW50ZWxfaW9tbXVfaHdkb21faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgIHNldHVw X2h3ZG9tX3BjaV9kZXZpY2VzKGQsIHNldHVwX2h3ZG9tX2RldmljZSk7CiAgICAgc2V0dXBfaHdk b21fcm1ycihkKTsKIAotICAgIGlvbW11X2ZsdXNoX2FsbCgpOworICAgIGlmICggaW9tbXVfZmx1 c2hfYWxsKCkgKQorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYCisgICAg ICAgICAgICAgICAiIElPTU1VIGZsdXNoIGFsbCBmYWlsZWQgZm9yIGhhcmR3YXJlIGRvbWFpblxu Iik7CiAKICAgICBmb3JfZWFjaF9kcmhkX3VuaXQgKCBkcmhkICkKICAgICB7CkBAIC0yMDAxLDcg KzIwMDUsNyBAQCBpbnQgYWRqdXN0X3Z0ZF9pcnFfYWZmaW5pdGllcyh2b2lkKQogfQogX19pbml0 Y2FsbChhZGp1c3RfdnRkX2lycV9hZmZpbml0aWVzKTsKIAotc3RhdGljIGludCBpbml0X3Z0ZF9o dyh2b2lkKQorc3RhdGljIGludCBfX211c3RfY2hlY2sgaW5pdF92dGRfaHcodm9pZCkKIHsKICAg ICBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQ7CiAgICAgc3RydWN0IGlvbW11ICppb21tdTsK QEAgLTIwOTksOCArMjEwMyw4IEBAIHN0YXRpYyBpbnQgaW5pdF92dGRfaHcodm9pZCkKICAgICAg ICAgICAgIHJldHVybiAtRUlPOwogICAgICAgICB9CiAgICAgfQotICAgIGlvbW11X2ZsdXNoX2Fs bCgpOwotICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGlvbW11X2ZsdXNoX2FsbCgpOwogfQog CiBzdGF0aWMgdm9pZCBfX2h3ZG9tX2luaXQgc2V0dXBfaHdkb21fcm1ycihzdHJ1Y3QgZG9tYWlu ICpkKQpAQCAtMjM4OSwxNiArMjM5MywyNSBAQCBzdGF0aWMgaW50IGludGVsX2lvbW11X2dyb3Vw X2lkKHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCiB9CiAKIHN0YXRpYyB1MzIgaW9tbXVfc3Rh dGVbTUFYX0lPTU1VU11bTUFYX0lPTU1VX1JFR1NdOwotc3RhdGljIHZvaWQgdnRkX3N1c3BlbmQo dm9pZCkKKworc3RhdGljIGludCBfX211c3RfY2hlY2sgdnRkX3N1c3BlbmQodm9pZCkKIHsKICAg ICBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQ7CiAgICAgc3RydWN0IGlvbW11ICppb21tdTsK ICAgICB1MzIgICAgaTsKKyAgICBpbnQgcmM7CiAKICAgICBpZiAoICFpb21tdV9lbmFibGVkICkK LSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gMDsKIAotICAgIGlvbW11X2ZsdXNoX2Fs bCgpOworICAgIHJjID0gaW9tbXVfZmx1c2hfYWxsKCk7CisgICAgaWYgKCB1bmxpa2VseShyYykg KQorICAgIHsKKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBSRUZJWAorICAgICAg ICAgICAgICAgIiBzdXNwZW5kOiBJT01NVSBmbHVzaCBhbGwgZmFpbGVkOiAlZFxuIiwgcmMpOwor CisgICAgICAgIHJldHVybiByYzsKKyAgICB9CiAKICAgICBmb3JfZWFjaF9kcmhkX3VuaXQgKCBk cmhkICkKICAgICB7CkBAIC0yNDI3LDYgKzI0NDAsOCBAQCBzdGF0aWMgdm9pZCB2dGRfc3VzcGVu ZCh2b2lkKQogICAgICAgICBpZiAoICFpb21tdV9pbnRyZW1hcCAmJiBpb21tdV9xaW52YWwgKQog ICAgICAgICAgICAgZGlzYWJsZV9xaW52YWwoaW9tbXUpOwogICAgIH0KKworICAgIHJldHVybiAw OwogfQogCiBzdGF0aWMgdm9pZCB2dGRfY3Jhc2hfc2h1dGRvd24odm9pZCkKQEAgLTI0MzcsNyAr MjQ1Miw5IEBAIHN0YXRpYyB2b2lkIHZ0ZF9jcmFzaF9zaHV0ZG93bih2b2lkKQogICAgIGlmICgg IWlvbW11X2VuYWJsZWQgKQogICAgICAgICByZXR1cm47CiAKLSAgICBpb21tdV9mbHVzaF9hbGwo KTsKKyAgICBpZiAoIGlvbW11X2ZsdXNoX2FsbCgpICkKKyAgICAgICAgcHJpbnRrKFhFTkxPR19X QVJOSU5HIFZURFBSRUZJWAorICAgICAgICAgICAgICAgIiBjcmFzaCBzaHV0ZG93bjogSU9NTVUg Zmx1c2ggYWxsIGZhaWxlZFxuIik7CiAKICAgICBmb3JfZWFjaF9kcmhkX3VuaXQgKCBkcmhkICkK ICAgICB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11 LXByb3RvLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LXByb3RvLmgK aW5kZXggYWM5ZjAzNi4uZDA4ZGMwYiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vc3ZtL2FtZC1pb21tdS1wcm90by5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2 bS9hbWQtaW9tbXUtcHJvdG8uaApAQCAtMTE5LDcgKzExOSw3IEBAIGV4dGVybiB1bnNpZ25lZCBs b25nICpzaGFyZWRfaW50cmVtYXBfaW51c2U7CiAKIC8qIHBvd2VyIG1hbmFnZW1lbnQgc3VwcG9y dCAqLwogdm9pZCBhbWRfaW9tbXVfcmVzdW1lKHZvaWQpOwotdm9pZCBhbWRfaW9tbXVfc3VzcGVu ZCh2b2lkKTsKK2ludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3N1c3BlbmQodm9pZCk7CiB2b2lk IGFtZF9pb21tdV9jcmFzaF9zaHV0ZG93bih2b2lkKTsKIAogLyogZ3Vlc3QgaW9tbXUgc3VwcG9y dCAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmggYi94ZW4vaW5jbHVkZS94 ZW4vaW9tbXUuaAppbmRleCA1N2M5ZmJjLi42NTM1OTM3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS94ZW4vaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaApAQCAtMTc1LDcgKzE3 NSw3IEBAIHN0cnVjdCBpb21tdV9vcHMgewogICAgIHVuc2lnbmVkIGludCAoKnJlYWRfYXBpY19m cm9tX2lyZSkodW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCByZWcpOwogICAgIGludCAo KnNldHVwX2hwZXRfbXNpKShzdHJ1Y3QgbXNpX2Rlc2MgKik7CiAjZW5kaWYgLyogQ09ORklHX1g4 NiAqLwotICAgIHZvaWQgKCpzdXNwZW5kKSh2b2lkKTsKKyAgICBpbnQgX19tdXN0X2NoZWNrICgq c3VzcGVuZCkodm9pZCk7CiAgICAgdm9pZCAoKnJlc3VtZSkodm9pZCk7CiAgICAgdm9pZCAoKnNo YXJlX3AybSkoc3RydWN0IGRvbWFpbiAqZCk7CiAgICAgdm9pZCAoKmNyYXNoX3NodXRkb3duKSh2 b2lkKTsKQEAgLTE4NSw3ICsxODUsNyBAQCBzdHJ1Y3QgaW9tbXVfb3BzIHsKICAgICB2b2lkICgq ZHVtcF9wMm1fdGFibGUpKHN0cnVjdCBkb21haW4gKmQpOwogfTsKIAotdm9pZCBpb21tdV9zdXNw ZW5kKHZvaWQpOworaW50IF9fbXVzdF9jaGVjayBpb21tdV9zdXNwZW5kKHZvaWQpOwogdm9pZCBp b21tdV9yZXN1bWUodm9pZCk7CiB2b2lkIGlvbW11X2NyYXNoX3NodXRkb3duKHZvaWQpOwogaW50 IGlvbW11X2dldF9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5KGlvbW11X2dyZG1fdCAqLCB2b2lkICop OwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=