From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH v5 09/10] IOMMU: propagate IOMMU Device-TLB flush error up to IOMMU suspending Date: Wed, 18 May 2016 16:08:30 +0800 Message-ID: <1463558911-98187-10-git-send-email-quan.xu@intel.com> References: <1463558911-98187-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: <1463558911-98187-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 UHJvcGFnYXRlIHRoZSBJT01NVSBEZXZpY2UtVExCIGZsdXNoIGVycm9yIHVwIHRvIElPTU1VIHN1 c3BlbmRpbmcuCgpTaWduZWQtb2ZmLWJ5OiBRdWFuIFh1IDxxdWFuLnh1QGludGVsLmNvbT4KCkND OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNDOiBMaXUgSmluc29uZyA8amluc29u Zy5saXVAYWxpYmFiYS1pbmMuY29tPgpDQzogS2VpciBGcmFzZXIgPGtlaXJAeGVuLm9yZz4KQ0M6 IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNDOiBTdXJhdmVlIFN1 dGhpa3VscGFuaXQgPHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQuY29tPgpDQzogU3RlZmFubyBT dGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDQzogSnVsaWVuIEdyYWxsIDxqdWxp ZW4uZ3JhbGxAYXJtLmNvbT4KQ0M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpD QzogRmVuZyBXdSA8ZmVuZy53dUBpbnRlbC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2FjcGkvcG93 ZXIuYyAgICAgICAgICAgICAgICAgICAgIHwgNzIgKysrKysrKysrKysrKysrKysrKystLS0tLS0t CiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jICAgICAgfCAgOSArKyst CiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jICAgfCAgMiArLQog eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyAgICAgICAgICAgICAgIHwgIDYgKystCiB4 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYyAgICAgICAgICAgfCA0NSArKysrKysr KysrKysrLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1wcm90by5o IHwgIDIgKy0KIHhlbi9pbmNsdWRlL3hlbi9pb21tdS5oICAgICAgICAgICAgICAgICAgICAgICB8 ICA0ICstCiA3IGZpbGVzIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYWNwaS9wb3dlci5jIGIveGVuL2FyY2gveDg2 L2FjcGkvcG93ZXIuYwppbmRleCAyODg1ZTMxLi44ZTYwYzc1IDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvYWNwaS9wb3dlci5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL3Bvd2VyLmMKQEAgLTQz LDM2ICs0Myw2OCBAQCBzdHJ1Y3QgYWNwaV9zbGVlcF9pbmZvIGFjcGlfc2luZm87CiAKIHZvaWQg ZG9fc3VzcGVuZF9sb3dsZXZlbCh2b2lkKTsKIAorZW51bSBkZXZfcG93ZXJfc2F2ZWQKK3sKKyAg ICBTQVZFRF9OT05FLCAgICAvKiBOb25lIG9mIGRldmljZSBwb3dlciBzYXZlZCAqLworICAgIFNB VkVEX0NPTlNPTEUsIC8qIERldmljZSBwb3dlciBvZiBjb25zb2xlIHNhdmVkICovCisgICAgU0FW RURfVElNRSwgICAgLyogRGV2aWNlIHBvd2VyIG9mIHRpbWUgc2F2ZWQgKi8KKyAgICBTQVZFRF9J ODI1OUEsICAvKiBEZXZpY2UgcG93ZXIgb2YgSTgyNTlBIHNhdmVkICovCisgICAgU0FWRURfSU9B UElDLCAgLyogRGV2aWNlIHBvd2VyIG9mIElPQVBJQyBzYXZlZCAqLworICAgIFNBVkVEX0lPTU1V LCAgIC8qIERldmljZSBwb3dlciBvZiBJT01NVSBzYXZlZCAqLworICAgIFNBVkVEX0xBUElDLCAg IC8qIERldmljZSBwb3dlciBvZiBMQVBJQyBzYXZlZCAqLworfTsKKwogc3RhdGljIGludCBkZXZp Y2VfcG93ZXJfZG93bih2b2lkKQogewotICAgIGNvbnNvbGVfc3VzcGVuZCgpOworICAgIGlmICgg Y29uc29sZV9zdXNwZW5kKCkgKQorICAgICAgICByZXR1cm4gU0FWRURfQ09OU09MRTsKIAotICAg IHRpbWVfc3VzcGVuZCgpOworICAgIGlmICggdGltZV9zdXNwZW5kKCkgKQorICAgICAgICByZXR1 cm4gU0FWRURfVElNRTsKIAotICAgIGk4MjU5QV9zdXNwZW5kKCk7CisgICAgaWYgKCBpODI1OUFf c3VzcGVuZCgpICkKKyAgICAgICAgcmV0dXJuIFNBVkVEX0k4MjU5QTsKIAorICAgIC8qIGlvYXBp Y19zdXNwZW5kIGNhbm5vdCBmYWlsICovCiAgICAgaW9hcGljX3N1c3BlbmQoKTsKIAotICAgIGlv bW11X3N1c3BlbmQoKTsKKyAgICBpZiAoIGlvbW11X3N1c3BlbmQoKSApCisgICAgICAgIHJldHVy biBTQVZFRF9JT01NVTsKIAotICAgIGxhcGljX3N1c3BlbmQoKTsKKyAgICBpZiAoIGxhcGljX3N1 c3BlbmQoKSApCisgICAgICAgIHJldHVybiBTQVZFRF9MQVBJQzsKIAogICAgIHJldHVybiAwOwog fQogCi1zdGF0aWMgdm9pZCBkZXZpY2VfcG93ZXJfdXAodm9pZCkKK3N0YXRpYyB2b2lkIGRldmlj ZV9wb3dlcl91cChlbnVtIGRldl9wb3dlcl9zYXZlZCBzYXZlZCkKIHsKLSAgICBsYXBpY19yZXN1 bWUoKTsKLQotICAgIGlvbW11X3Jlc3VtZSgpOwotCi0gICAgaW9hcGljX3Jlc3VtZSgpOwotCi0g ICAgaTgyNTlBX3Jlc3VtZSgpOwotCi0gICAgdGltZV9yZXN1bWUoKTsKLQotICAgIGNvbnNvbGVf cmVzdW1lKCk7CisgICAgc3dpdGNoICggc2F2ZWQgKQorICAgIHsKKyAgICBjYXNlIFNBVkVEX05P TkU6CisgICAgICAgIGxhcGljX3Jlc3VtZSgpOworICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8K KyAgICBjYXNlIFNBVkVEX0xBUElDOgorICAgICAgICBpb21tdV9yZXN1bWUoKTsKKyAgICAgICAg LyogZmFsbCB0aHJvdWdoICovCisgICAgY2FzZSBTQVZFRF9JT01NVToKKyAgICAgICAgaW9hcGlj X3Jlc3VtZSgpOworICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICBjYXNlIFNBVkVEX0lP QVBJQzoKKyAgICAgICAgaTgyNTlBX3Jlc3VtZSgpOworICAgICAgICAvKiBmYWxsIHRocm91Z2gg Ki8KKyAgICBjYXNlIFNBVkVEX0k4MjU5QToKKyAgICAgICAgdGltZV9yZXN1bWUoKTsKKyAgICAg ICAgLyogZmFsbCB0aHJvdWdoICovCisgICAgY2FzZSBTQVZFRF9USU1FOgorICAgICAgICBjb25z b2xlX3Jlc3VtZSgpOworICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICBjYXNlIFNBVkVE X0NPTlNPTEU6CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEJVRygpOwor ICAgICAgICBicmVhazsKKyAgICB9CiB9CiAKIHN0YXRpYyB2b2lkIGZyZWV6ZV9kb21haW5zKHZv aWQpCkBAIC0xNjksNiArMjAxLDEwIEBAIHN0YXRpYyBpbnQgZW50ZXJfc3RhdGUodTMyIHN0YXRl KQogICAgIHsKICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIlNvbWUgZGV2aWNlcyBmYWlsZWQg dG8gcG93ZXIgZG93bi4iKTsKICAgICAgICAgc3lzdGVtX3N0YXRlID0gU1lTX1NUQVRFX3Jlc3Vt ZTsKKworICAgICAgICBpZiAoIGVycm9yID4gMCApCisgICAgICAgICAgICBkZXZpY2VfcG93ZXJf dXAoZXJyb3IpOworCiAgICAgICAgIGdvdG8gZG9uZTsKICAgICB9CiAKQEAgLTE5Niw3ICsyMzIs NyBAQCBzdGF0aWMgaW50IGVudGVyX3N0YXRlKHUzMiBzdGF0ZSkKICAgICB3cml0ZV9jcjQoY3I0 ICYgflg4Nl9DUjRfTUNFKTsKICAgICB3cml0ZV9lZmVyKHJlYWRfZWZlcigpKTsKIAotICAgIGRl dmljZV9wb3dlcl91cCgpOworICAgIGRldmljZV9wb3dlcl91cChTQVZFRF9OT05FKTsKIAogICAg IG1jaGVja19pbml0KCZib290X2NwdV9kYXRhLCAwKTsKICAgICB3cml0ZV9jcjQoY3I0KTsKZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jCmluZGV4IDQ1MzYxMDYuLjBiNjg1 OTYgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMK KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYwpAQCAtMTMzOSw3 ICsxMzM5LDE0IEBAIHN0YXRpYyB2b2lkIGludmFsaWRhdGVfYWxsX2RldmljZXModm9pZCkKICAg ICBpdGVyYXRlX2l2cnNfbWFwcGluZ3MoX2ludmFsaWRhdGVfYWxsX2RldmljZXMpOwogfQogCi12 b2lkIGFtZF9pb21tdV9zdXNwZW5kKHZvaWQpCitpbnQgYW1kX2lvbW11X3N1c3BlbmQodm9pZCkK K3sKKyAgICBhbWRfaW9tbXVfY3Jhc2hfc2h1dGRvd24oKTsKKworICAgIHJldHVybiAwOworfQor Cit2b2lkIGFtZF9pb21tdV9jcmFzaF9zaHV0ZG93bih2b2lkKQogewogICAgIHN0cnVjdCBhbWRf aW9tbXUgKmlvbW11OwogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv cGNpX2FtZF9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9t bXUuYwppbmRleCA4NmQ2ZmIzLi5mMTYyNzAzIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9wY2lfYW1kX2lvbW11LmMKQEAgLTYzOSw2ICs2MzksNiBAQCBjb25zdCBzdHJ1Y3QgaW9t bXVfb3BzIGFtZF9pb21tdV9vcHMgPSB7CiAgICAgLnN1c3BlbmQgPSBhbWRfaW9tbXVfc3VzcGVu ZCwKICAgICAucmVzdW1lID0gYW1kX2lvbW11X3Jlc3VtZSwKICAgICAuc2hhcmVfcDJtID0gYW1k X2lvbW11X3NoYXJlX3AybSwKLSAgICAuY3Jhc2hfc2h1dGRvd24gPSBhbWRfaW9tbXVfc3VzcGVu ZCwKKyAgICAuY3Jhc2hfc2h1dGRvd24gPSBhbWRfaW9tbXVfY3Jhc2hfc2h1dGRvd24sCiAgICAg LmR1bXBfcDJtX3RhYmxlID0gYW1kX2R1bXBfcDJtX3RhYmxlLAogfTsKZGlmZiAtLWdpdCBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9p b21tdS5jCmluZGV4IDkyZDM3YzUuLmI2MTBhMWYgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpA QCAtMzc5LDEwICszNzksMTIgQEAgaW50IF9faW5pdCBpb21tdV9zZXR1cCh2b2lkKQogICAgIHJl dHVybiByYzsKIH0KIAotdm9pZCBpb21tdV9zdXNwZW5kKCkKK2ludCBpb21tdV9zdXNwZW5kKCkK IHsKICAgICBpZiAoIGlvbW11X2VuYWJsZWQgKQotICAgICAgICBpb21tdV9nZXRfb3BzKCktPnN1 c3BlbmQoKTsKKyAgICAgICAgcmV0dXJuIGlvbW11X2dldF9vcHMoKS0+c3VzcGVuZCgpOworCisg ICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgaW9tbXVfcmVzdW1lKCkKZGlmZiAtLWdpdCBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv dnRkL2lvbW11LmMKaW5kZXggYTZjYWY5Ny4uM2QwNzEzOSAxMDA2NDQKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv dnRkL2lvbW11LmMKQEAgLTU0MSwyMCArNTQxLDI4IEBAIHN0YXRpYyBpbnQgaW9tbXVfZmx1c2hf aW90bGJfcHNpKAogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKLXN0YXRpYyB2b2lkIGlvbW11X2Zs dXNoX2FsbCh2b2lkKQorc3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfYWxsKHZv aWQpCiB7CiAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwogICAgIHN0cnVjdCBpb21t dSAqaW9tbXU7CiAgICAgaW50IGZsdXNoX2Rldl9pb3RsYjsKKyAgICBpbnQgcmMgPSAwOwogCiAg ICAgZmx1c2hfYWxsX2NhY2hlKCk7CiAgICAgZm9yX2VhY2hfZHJoZF91bml0ICggZHJoZCApCiAg ICAgeworICAgICAgICBpbnQgcmV0OworCiAgICAgICAgIGlvbW11ID0gZHJoZC0+aW9tbXU7CiAg ICAgICAgIGlvbW11X2ZsdXNoX2NvbnRleHRfZ2xvYmFsKGlvbW11LCAwKTsKICAgICAgICAgZmx1 c2hfZGV2X2lvdGxiID0gZmluZF9hdHNfZGV2X2RyaGQoaW9tbXUpID8gMSA6IDA7Ci0gICAgICAg IGlvbW11X2ZsdXNoX2lvdGxiX2dsb2JhbChpb21tdSwgMCwgZmx1c2hfZGV2X2lvdGxiKTsKKyAg ICAgICAgcmV0ID0gaW9tbXVfZmx1c2hfaW90bGJfZ2xvYmFsKGlvbW11LCAwLCBmbHVzaF9kZXZf aW90bGIpOworCisgICAgICAgIGlmICggdW5saWtlbHkocmV0KSApCisgICAgICAgICAgICByYyA9 IHJldDsKICAgICB9CisKKyAgICByZXR1cm4gcmM7CiB9CiAKIHN0YXRpYyBpbnQgX19tdXN0X2No ZWNrIGlvbW11X2ZsdXNoX2lvdGxiKHN0cnVjdCBkb21haW4gKmQsCkBAIC0xMjcwLDcgKzEyNzgs OSBAQCBzdGF0aWMgdm9pZCBfX2h3ZG9tX2luaXQgaW50ZWxfaW9tbXVfaHdkb21faW5pdChzdHJ1 Y3QgZG9tYWluICpkKQogICAgIHNldHVwX2h3ZG9tX3BjaV9kZXZpY2VzKGQsIHNldHVwX2h3ZG9t X2RldmljZSk7CiAgICAgc2V0dXBfaHdkb21fcm1ycihkKTsKIAotICAgIGlvbW11X2ZsdXNoX2Fs bCgpOworICAgIGlmICggaW9tbXVfZmx1c2hfYWxsKCkgKQorICAgICAgICBwcmludGsoWEVOTE9H X1dBUk5JTkcgVlREUFJFRklYCisgICAgICAgICAgICAgICAiIElPTU1VIGZsdXNoIGFsbCBmYWls ZWQgZm9yIGhhcmR3YXJlIGRvbWFpbi5cbiIpOwogCiAgICAgZm9yX2VhY2hfZHJoZF91bml0ICgg ZHJoZCApCiAgICAgewpAQCAtMjA1MSw3ICsyMDYxLDcgQEAgaW50IGFkanVzdF92dGRfaXJxX2Fm ZmluaXRpZXModm9pZCkKIH0KIF9faW5pdGNhbGwoYWRqdXN0X3Z0ZF9pcnFfYWZmaW5pdGllcyk7 CiAKLXN0YXRpYyBpbnQgaW5pdF92dGRfaHcodm9pZCkKK3N0YXRpYyBpbnQgX19tdXN0X2NoZWNr IGluaXRfdnRkX2h3KHZvaWQpCiB7CiAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwog ICAgIHN0cnVjdCBpb21tdSAqaW9tbXU7CkBAIC0yMTQ5LDggKzIxNTksOCBAQCBzdGF0aWMgaW50 IGluaXRfdnRkX2h3KHZvaWQpCiAgICAgICAgICAgICByZXR1cm4gLUVJTzsKICAgICAgICAgfQog ICAgIH0KLSAgICBpb21tdV9mbHVzaF9hbGwoKTsKLSAgICByZXR1cm4gMDsKKworICAgIHJldHVy biBpb21tdV9mbHVzaF9hbGwoKTsKIH0KIAogc3RhdGljIHZvaWQgX19od2RvbV9pbml0IHNldHVw X2h3ZG9tX3JtcnIoc3RydWN0IGRvbWFpbiAqZCkKQEAgLTI0MzksMTYgKzI0NDksMjcgQEAgc3Rh dGljIGludCBpbnRlbF9pb21tdV9ncm91cF9pZCh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuKQog fQogCiBzdGF0aWMgdTMyIGlvbW11X3N0YXRlW01BWF9JT01NVVNdW01BWF9JT01NVV9SRUdTXTsK LXN0YXRpYyB2b2lkIHZ0ZF9zdXNwZW5kKHZvaWQpCisKK3N0YXRpYyBpbnQgX19tdXN0X2NoZWNr IHZ0ZF9zdXNwZW5kKHZvaWQpCiB7CiAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwog ICAgIHN0cnVjdCBpb21tdSAqaW9tbXU7CiAgICAgdTMyICAgIGk7CisgICAgaW50IHJjOwogCiAg ICAgaWYgKCAhaW9tbXVfZW5hYmxlZCApCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJu IDA7CisKKyAgICByYyA9IGlvbW11X2ZsdXNoX2FsbCgpOworCisgICAgaWYgKCB1bmxpa2VseShy YykgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBSRUZJWAorICAg ICAgICAgICAgICAgIiBzdXNwZW5kOiBJT01NVSBmbHVzaCBhbGwgZmFpbGVkICVkLlxuIiwKKyAg ICAgICAgICAgICAgIHJjKTsKIAotICAgIGlvbW11X2ZsdXNoX2FsbCgpOworICAgICAgICByZXR1 cm4gcmM7CisgICAgfQogCiAgICAgZm9yX2VhY2hfZHJoZF91bml0ICggZHJoZCApCiAgICAgewpA QCAtMjQ3Nyw2ICsyNDk4LDggQEAgc3RhdGljIHZvaWQgdnRkX3N1c3BlbmQodm9pZCkKICAgICAg ICAgaWYgKCAhaW9tbXVfaW50cmVtYXAgJiYgaW9tbXVfcWludmFsICkKICAgICAgICAgICAgIGRp c2FibGVfcWludmFsKGlvbW11KTsKICAgICB9CisKKyAgICByZXR1cm4gMDsKIH0KIAogc3RhdGlj IHZvaWQgdnRkX2NyYXNoX3NodXRkb3duKHZvaWQpCkBAIC0yNDg3LDcgKzI1MTAsOSBAQCBzdGF0 aWMgdm9pZCB2dGRfY3Jhc2hfc2h1dGRvd24odm9pZCkKICAgICBpZiAoICFpb21tdV9lbmFibGVk ICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW9tbXVfZmx1c2hfYWxsKCk7CisgICAgaWYgKCBp b21tdV9mbHVzaF9hbGwoKSApCisgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVG SVgKKyAgICAgICAgICAgICAgICIgY3Jhc2ggc2h1dGRvd246IElPTU1VIGZsdXNoIGFsbCBmYWls ZWQuXG4iKTsKIAogICAgIGZvcl9lYWNoX2RyaGRfdW5pdCAoIGRyaGQgKQogICAgIHsKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtcHJvdG8uaCBiL3hl bi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtcHJvdG8uaAppbmRleCA1N2I2Y2Mx Li41NzA4ODVhIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlv bW11LXByb3RvLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1w cm90by5oCkBAIC0xMTksNyArMTE5LDcgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgKnNoYXJlZF9p bnRyZW1hcF9pbnVzZTsKIAogLyogcG93ZXIgbWFuYWdlbWVudCBzdXBwb3J0ICovCiB2b2lkIGFt ZF9pb21tdV9yZXN1bWUodm9pZCk7Ci12b2lkIGFtZF9pb21tdV9zdXNwZW5kKHZvaWQpOworaW50 IF9fbXVzdF9jaGVjayBhbWRfaW9tbXVfc3VzcGVuZCh2b2lkKTsKIHZvaWQgYW1kX2lvbW11X2Ny YXNoX3NodXRkb3duKHZvaWQpOwogCiAvKiBndWVzdCBpb21tdSBzdXBwb3J0ICovCmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCmlu ZGV4IDc2MGNmNjUuLjc4NTFhODEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5o CisrKyBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCkBAIC0xNzUsNyArMTc1LDcgQEAgc3RydWN0 IGlvbW11X29wcyB7CiAgICAgdW5zaWduZWQgaW50ICgqcmVhZF9hcGljX2Zyb21faXJlKSh1bnNp Z25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJlZyk7CiAgICAgaW50ICgqc2V0dXBfaHBldF9t c2kpKHN0cnVjdCBtc2lfZGVzYyAqKTsKICNlbmRpZiAvKiBDT05GSUdfWDg2ICovCi0gICAgdm9p ZCAoKnN1c3BlbmQpKHZvaWQpOworICAgIGludCBfX211c3RfY2hlY2sgKCpzdXNwZW5kKSh2b2lk KTsKICAgICB2b2lkICgqcmVzdW1lKSh2b2lkKTsKICAgICB2b2lkICgqc2hhcmVfcDJtKShzdHJ1 Y3QgZG9tYWluICpkKTsKICAgICB2b2lkICgqY3Jhc2hfc2h1dGRvd24pKHZvaWQpOwpAQCAtMTg2 LDcgKzE4Niw3IEBAIHN0cnVjdCBpb21tdV9vcHMgewogICAgIHZvaWQgKCpkdW1wX3AybV90YWJs ZSkoc3RydWN0IGRvbWFpbiAqZCk7CiB9OwogCi12b2lkIGlvbW11X3N1c3BlbmQodm9pZCk7Citp bnQgX19tdXN0X2NoZWNrIGlvbW11X3N1c3BlbmQodm9pZCk7CiB2b2lkIGlvbW11X3Jlc3VtZSh2 b2lkKTsKIHZvaWQgaW9tbXVfY3Jhc2hfc2h1dGRvd24odm9pZCk7CiBpbnQgaW9tbXVfZ2V0X3Jl c2VydmVkX2RldmljZV9tZW1vcnkoaW9tbXVfZ3JkbV90ICosIHZvaWQgKik7Ci0tIAoxLjkuMQoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==