From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v2 2/3] x86emul: correct handling of FPU insns faulting on memory write Date: Wed, 15 Mar 2017 12:06:40 +0000 Message-ID: <0484c958ae914de9ba117e6350b22bfa@AMSPEX02CL03.citrite.net> References: <58C924240200007800143399@prv-mh.provo.novell.com> <58C924240200007800143399@prv-mh.provo.novell.com> <58C9254F02000078001433B0@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1co7jD-0003Au-H7 for xen-devel@lists.xenproject.org; Wed, 15 Mar 2017 12:08:31 +0000 In-Reply-To: <58C9254F02000078001433B0@prv-mh.provo.novell.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: 'Jan Beulich' , xen-devel Cc: Boris Ostrovsky , Andrew Cooper , Kevin Tian , Jun Nakajima , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IEphbiBCZXVsaWNoIFttYWlsdG86 SkJldWxpY2hAc3VzZS5jb21dCj4gU2VudDogMTUgTWFyY2ggMjAxNyAxMDoyOAo+IFRvOiB4ZW4t ZGV2ZWwgPHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZz4KPiBDYzogU3VyYXZlZSBTdXRo aWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1kLmNvbT47IEFuZHJldwo+IENvb3Bl ciA8QW5kcmV3LkNvb3BlcjNAY2l0cml4LmNvbT47IFBhdWwgRHVycmFudAo+IDxQYXVsLkR1cnJh bnRAY2l0cml4LmNvbT47IEp1biBOYWthamltYSA8anVuLm5ha2FqaW1hQGludGVsLmNvbT47IEtl dmluCj4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+OyBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlz Lm9zdHJvdnNreUBvcmFjbGUuY29tPgo+IFN1YmplY3Q6IFtQQVRDSCB2MiAyLzNdIHg4NmVtdWw6 IGNvcnJlY3QgaGFuZGxpbmcgb2YgRlBVIGluc25zIGZhdWx0aW5nIG9uCj4gbWVtb3J5IHdyaXRl Cj4gCj4gV2hlbiBhbiBGUFUgaW5zdHJ1Y3Rpb24gd2l0aCBhIG1lbW9yeSBkZXN0aW5hdGlvbiBm YWlscyBkdXJpbmcgdGhlCj4gbWVtb3J5IHdyaXRlLCBpdCBzaG91bGQgbm90IGFmZmVjdCBGUFUg cmVnaXN0ZXIgc3RhdGUuIER1ZSB0byB0aGUgd2F5Cj4gd2UgZW11bGF0ZSBGUFUgKGFuZCBTSU1E KSBpbnN0cnVjdGlvbnMsIHdlIGNhbiBvbmx5IGd1YXJhbnRlZSB0aGlzIGJ5Cj4gLSBiYWNraW5n IG91dCBjaGFuZ2VzIHRvIHRoZSBGUFUgcmVnaXN0ZXIgc3RhdGUgaW4gc3VjaCBhIGNhc2Ugb3IK PiAtIGRvaW5nIGEgZGVzY3JpcHRvciByZWFkIGFuZC9vciBwYWdlIHdhbGsgdXAgZnJvbnQsIHBl cmhhcHMgd2l0aCB0aGUKPiAgIHN0dWJzIGFjY2Vzc2luZyB0aGUgYWN0dWFsIG1lbW9yeSBsb2Nh dGlvbiB0aGVuLgo+IFRoZSBsYXR0ZXIgd291bGQgcmVxdWlyZSBhIHNpZ25pZmljYW50IGNoYW5n ZSBpbiBob3cgdGhlIGVtdWxhdG9yIGRvZXMKPiBpdHMgZ3Vlc3QgbWVtb3J5IGFjY2Vzc2luZywg c28gZm9yIG5vdyB0aGUgZm9ybWVyIHZhcmlhbnQgaXMgYmVpbmcKPiBjaG9zZW4uCj4gCj4gU2ln bmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgo+IFJldmlld2VkLWJ5 OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgo+IFJldmlld2VkLWJ5 OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KCmVtdWxhdGUuYyBwYXJ0cy4uLgoK UmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Cgo+IC0t LQo+IHYyOiBSZS1iYXNlLgo+IC0tLQo+IE5vdGUgdGhhdCB0aGUgc3RhdGUgc2F2ZSBvdmVyaGVh ZCAodW5sZXNzIHN0YXRlIGhhZG4ndCBiZWVuIGxvYWRlZCBhdAo+IGFsbCBiZWZvcmUsIHdoaWNo IHNob3VsZCBvbmx5IGJlIHBvc3NpYmxlIGlmIGEgZ3Vlc3QgaXMgZmlkZGxpbmcgd2l0aAo+IHRo ZSBpbnN0cnVjdGlvbiBzdHJlYW0gdW5kZXIgZW11bGF0aW9uKSBpcyB0YWtlbiBmb3IgZXZlcnkg RlBVIGluc24KPiBoaXR0aW5nIHRoZSBlbXVsYXRvci4gV2UgY291bGQgcmVkdWNlIHRoaXMgdG8g anVzdCB0aGUgb25lcyB3cml0aW5nIHRvCj4gbWVtb3J5LCBidXQgdGhhdCB3b3VsZCBpbnZvbHZl IHF1aXRlIGEgZmV3IGZ1cnRoZXIgY2hhbmdlcyBhbmQKPiByZXN1bHRpbmcgY29kZSB3aGVyZSBl dmVuIG1vcmUgY29kZSBwYXRocyBuZWVkIHRvIG1hdGNoIHVwIHdpdGggb25lCj4gYW5vdGhlci4K PiAKPiAtLS0gYS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci94ODYtaW5zbi1l bXVsYXRvci1mdXp6ZXIuYwo+ICsrKyBiL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxh dG9yL3g4Ni1pbnNuLWVtdWxhdG9yLWZ1enplci5jCj4gQEAgLTQzMyw2ICs0MzMsNyBAQCBzdGF0 aWMgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyBmdXp6X2VtdWxvCj4gICAgICBTRVQod2JpbnZkKSwK PiAgICAgIFNFVChpbnZscGcpLAo+ICAgICAgLmdldF9mcHUgICAgPSBlbXVsX3Rlc3RfZ2V0X2Zw dSwKPiArICAgIC5wdXRfZnB1ICAgID0gZW11bF90ZXN0X3B1dF9mcHUsCj4gICAgICAuY3B1aWQg ICAgICA9IGVtdWxfdGVzdF9jcHVpZCwKPiAgfTsKPiAgI3VuZGVmIFNFVAo+IC0tLSBhL3Rvb2xz L3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jCj4gKysrIGIvdG9vbHMvdGVz dHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKPiBAQCAtMjkzLDYgKzI5Myw3IEBA IHN0YXRpYyBzdHJ1Y3QgeDg2X2VtdWxhdGVfb3BzIGVtdWxvcHMgPQo+ICAgICAgLnJlYWRfY3Ig ICAgPSBlbXVsX3Rlc3RfcmVhZF9jciwKPiAgICAgIC5yZWFkX21zciAgID0gcmVhZF9tc3IsCj4g ICAgICAuZ2V0X2ZwdSAgICA9IGVtdWxfdGVzdF9nZXRfZnB1LAo+ICsgICAgLnB1dF9mcHUgICAg PSBlbXVsX3Rlc3RfcHV0X2ZwdSwKPiAgfTsKPiAKPiAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQo+IC0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODZfZW11bGF0ZS5jCj4g KysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4Nl9lbXVsYXRlLmMKPiBAQCAtMTM4LDQg KzEzOCwxMSBAQCBpbnQgZW11bF90ZXN0X2dldF9mcHUoCj4gICAgICByZXR1cm4gWDg2RU1VTF9P S0FZOwo+ICB9Cj4gCj4gK3ZvaWQgZW11bF90ZXN0X3B1dF9mcHUoCj4gKyAgICBzdHJ1Y3QgeDg2 X2VtdWxhdGVfY3R4dCAqY3R4dCwKPiArICAgIGVudW0geDg2X2VtdWxhdGVfZnB1X3R5cGUgYmFj a291dCkKPiArewo+ICsgICAgLyogVEJEICovCj4gK30KPiArCj4gICNpbmNsdWRlICJ4ODZfZW11 bGF0ZS94ODZfZW11bGF0ZS5jIgo+IC0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODZf ZW11bGF0ZS5oCj4gKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4Nl9lbXVsYXRlLmgK PiBAQCAtMTc4LDMgKzE3OCw3IEBAIGludCBlbXVsX3Rlc3RfZ2V0X2ZwdSgKPiAgICAgIHZvaWQg KmV4Y2VwdGlvbl9jYWxsYmFja19hcmcsCj4gICAgICBlbnVtIHg4Nl9lbXVsYXRlX2ZwdV90eXBl IHR5cGUsCj4gICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCk7Cj4gKwo+ICt2b2lk IGVtdWxfdGVzdF9wdXRfZnB1KAo+ICsgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQs Cj4gKyAgICBlbnVtIHg4Nl9lbXVsYXRlX2ZwdV90eXBlIGJhY2tvdXQpOwo+IC0tLSBhL3hlbi9h cmNoL3g4Ni9odm0vZW11bGF0ZS5jCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMK PiBAQCAtMTUsNiArMTUsNyBAQAo+ICAjaW5jbHVkZSA8eGVuL3BhZ2luZy5oPgo+ICAjaW5jbHVk ZSA8eGVuL3RyYWNlLmg+Cj4gICNpbmNsdWRlIDxhc20vZXZlbnQuaD4KPiArI2luY2x1ZGUgPGFz bS9pMzg3Lmg+Cj4gICNpbmNsdWRlIDxhc20veHN0YXRlLmg+Cj4gICNpbmNsdWRlIDxhc20vaHZt L2VtdWxhdGUuaD4KPiAgI2luY2x1ZGUgPGFzbS9odm0vaHZtLmg+Cj4gQEAgLTE2MTksNiArMTYy MCwzNSBAQCBzdGF0aWMgaW50IGh2bWVtdWxfZ2V0X2ZwdSgKPiAKPiAgICAgIGlmICggIWN1cnIt PmZwdV9kaXJ0aWVkICkKPiAgICAgICAgICBodm1fZnVuY3MuZnB1X2RpcnR5X2ludGVyY2VwdCgp Owo+ICsgICAgZWxzZSBpZiAoIHR5cGUgPT0gWDg2RU1VTF9GUFVfZnB1ICkKPiArICAgIHsKPiAr ICAgICAgICBjb25zdCB0eXBlb2YoY3Vyci0+YXJjaC54c2F2ZV9hcmVhLT5mcHVfc3NlKSAqZnB1 X2N0eHQgPQo+ICsgICAgICAgICAgICBjdXJyLT5hcmNoLmZwdV9jdHh0Owo+ICsKPiArICAgICAg ICAvKgo+ICsgICAgICAgICAqIExhdGNoIGN1cnJlbnQgcmVnaXN0ZXIgc3RhdGUgc28gdGhhdCB3 ZSBjYW4gYmFjayBvdXQgY2hhbmdlcwo+ICsgICAgICAgICAqIGlmIG5lZWRlZCAobmFtZWx5IHdo ZW4gYSBtZW1vcnkgd3JpdGUgZmFpbHMgYWZ0ZXIgcmVnaXN0ZXIgc3RhdGUKPiArICAgICAgICAg KiBoYXMgYWxyZWFkeSBiZWVuIHVwZGF0ZWQpLgo+ICsgICAgICAgICAqIE5COiBXZSBkb24ndCBy ZWFsbHkgbmVlZCB0aGUgImVuYWJsZSIgcGFydCBvZiB0aGUgY2FsbGVkIGZ1bmN0aW9uCj4gKyAg ICAgICAgICogKC0+ZnB1X2RpcnRpZWQgc2V0IGltcGxpZXMgQ1IwLlRTIGNsZWFyKSwgYnV0IHRo ZSBhZGRpdGlvbmFsCj4gKyAgICAgICAgICogb3ZlcmhlYWQgc2hvdWxkIGJlIGxvdyBlbm91Z2gg dG8gbm90IHdhcnJhbnQgaW50cm9kdWN0aW9uIG9mIHlldAo+ICsgICAgICAgICAqIGFub3RoZXIg c2xpZ2h0bHkgZGlmZmVyZW50IGZ1bmN0aW9uLiBIb3dldmVyLCB3ZSBuZWVkIHRvIHVuZG8gdGhl Cj4gKyAgICAgICAgICogLT5mcHVfZGlydGllZCBjbGVhcmluZyB0aGUgZnVuY3Rpb24gZG9lcyBh cyB3ZWxsIGFzIHRoZSBwb3NzaWJsZQo+ICsgICAgICAgICAqIG1hc2tpbmcgb2YgYWxsIGV4Y2Vw dGlvbnMgYnkgRk5TVEVOVi4pCj4gKyAgICAgICAgICovCj4gKyAgICAgICAgc2F2ZV9mcHVfZW5h YmxlKCk7Cj4gKyAgICAgICAgY3Vyci0+ZnB1X2RpcnRpZWQgPSB0cnVlOwo+ICsgICAgICAgIGlm ICggKGZwdV9jdHh0LT5mY3cgJiAweDNmKSAhPSAweDNmICkKPiArICAgICAgICB7Cj4gKyAgICAg ICAgICAgIHVpbnQxNl90IGZjdzsKPiArCj4gKyAgICAgICAgICAgIGFzbSAoICJmbnN0Y3cgJTAi IDogIj1tIiAoZmN3KSApOwo+ICsgICAgICAgICAgICBpZiAoIChmY3cgJiAweDNmKSA9PSAweDNm ICkKPiArICAgICAgICAgICAgICAgIGFzbSAoICJmbGRjdyAlMCIgOjogIm0iIChmcHVfY3R4dC0+ ZmN3KSApOwo+ICsgICAgICAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgICBBU1NFUlQoZmN3 ID09IGZwdV9jdHh0LT5mY3cpOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiAKPiAgICAgIGN1cnIt PmFyY2guaHZtX3ZjcHUuZnB1X2V4Y2VwdGlvbl9jYWxsYmFjayA9IGV4Y2VwdGlvbl9jYWxsYmFj azsKPiAgICAgIGN1cnItPmFyY2guaHZtX3ZjcHUuZnB1X2V4Y2VwdGlvbl9jYWxsYmFja19hcmcg PQo+IGV4Y2VwdGlvbl9jYWxsYmFja19hcmc7Cj4gQEAgLTE2MjcsMTAgKzE2NTcsMjQgQEAgc3Rh dGljIGludCBodm1lbXVsX2dldF9mcHUoCj4gIH0KPiAKPiAgc3RhdGljIHZvaWQgaHZtZW11bF9w dXRfZnB1KAo+IC0gICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCj4gKyAgICBzdHJ1 Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCwKPiArICAgIGVudW0geDg2X2VtdWxhdGVfZnB1X3R5 cGUgYmFja291dCkKPiAgewo+ICAgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50Owo+ICsK PiAgICAgIGN1cnItPmFyY2guaHZtX3ZjcHUuZnB1X2V4Y2VwdGlvbl9jYWxsYmFjayA9IE5VTEw7 Cj4gKwo+ICsgICAgaWYgKCBiYWNrb3V0ID09IFg4NkVNVUxfRlBVX2ZwdSApCj4gKyAgICB7Cj4g KyAgICAgICAgLyoKPiArICAgICAgICAgKiBUbyBiYWNrIG91dCBjaGFuZ2VzIHRvIHRoZSByZWdp c3RlciBmaWxlIHNpbXBseSBhZGp1c3Qgc3RhdGUgc3VjaAo+ICsgICAgICAgICAqIHRoYXQgdXBv biBuZXh0IEZQVSBpbnNuIHVzZSBieSB0aGUgZ3Vlc3Qgd2UnbGwgcmVsb2FkIHRoZSBzdGF0ZQo+ ICsgICAgICAgICAqIHNhdmVkIChvciBmcmVzaGx5IGxvYWRlZCkgYnkgaHZtZW11bF9nZXRfZnB1 KCkuCj4gKyAgICAgICAgICovCj4gKyAgICAgICAgY3Vyci0+ZnB1X2RpcnRpZWQgPSBmYWxzZTsK PiArICAgICAgICBzdHRzKCk7Cj4gKyAgICAgICAgaHZtX2Z1bmNzLmZwdV9sZWF2ZShjdXJyKTsK PiArICAgIH0KPiAgfQo+IAo+ICBzdGF0aWMgaW50IGh2bWVtdWxfaW52bHBnKAo+IC0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3Zt LmMKPiBAQCAtMjI2OCw2ICsyMjY4LDcgQEAgc3RhdGljIHN0cnVjdCBodm1fZnVuY3Rpb25fdGFi bGUgX19pbml0ZAo+ICAgICAgLnVwZGF0ZV9ndWVzdF9jciAgICAgID0gc3ZtX3VwZGF0ZV9ndWVz dF9jciwKPiAgICAgIC51cGRhdGVfZ3Vlc3RfZWZlciAgICA9IHN2bV91cGRhdGVfZ3Vlc3RfZWZl ciwKPiAgICAgIC51cGRhdGVfZ3Vlc3RfdmVuZG9yICA9IHN2bV91cGRhdGVfZ3Vlc3RfdmVuZG9y LAo+ICsgICAgLmZwdV9sZWF2ZSAgICAgICAgICAgID0gc3ZtX2ZwdV9sZWF2ZSwKPiAgICAgIC5z ZXRfZ3Vlc3RfcGF0ICAgICAgICA9IHN2bV9zZXRfZ3Vlc3RfcGF0LAo+ICAgICAgLmdldF9ndWVz dF9wYXQgICAgICAgID0gc3ZtX2dldF9ndWVzdF9wYXQsCj4gICAgICAuc2V0X3RzY19vZmZzZXQg ICAgICAgPSBzdm1fc2V0X3RzY19vZmZzZXQsCj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgv dm14LmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwo+IEBAIC0yMTI4LDYgKzIx MjgsNyBAQCBzdGF0aWMgc3RydWN0IGh2bV9mdW5jdGlvbl90YWJsZSBfX2luaXRkCj4gICAgICAu dXBkYXRlX2d1ZXN0X2NyICAgICAgPSB2bXhfdXBkYXRlX2d1ZXN0X2NyLAo+ICAgICAgLnVwZGF0 ZV9ndWVzdF9lZmVyICAgID0gdm14X3VwZGF0ZV9ndWVzdF9lZmVyLAo+ICAgICAgLnVwZGF0ZV9n dWVzdF92ZW5kb3IgID0gdm14X3VwZGF0ZV9ndWVzdF92ZW5kb3IsCj4gKyAgICAuZnB1X2xlYXZl ICAgICAgICAgICAgPSB2bXhfZnB1X2xlYXZlLAo+ICAgICAgLnNldF9ndWVzdF9wYXQgICAgICAg ID0gdm14X3NldF9ndWVzdF9wYXQsCj4gICAgICAuZ2V0X2d1ZXN0X3BhdCAgICAgICAgPSB2bXhf Z2V0X2d1ZXN0X3BhdCwKPiAgICAgIC5zZXRfdHNjX29mZnNldCAgICAgICA9IHZteF9zZXRfdHNj X29mZnNldCwKPiAtLS0gYS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYwo+ ICsrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCj4gQEAgLTk2NSw2 ICs5NjUsNyBAQCBzdGF0aWMgaW50IF9nZXRfZnB1KAo+ICAgICAgewo+ICAgICAgICAgIHVuc2ln bmVkIGxvbmcgY3IwOwo+IAo+ICsgICAgICAgIGZhaWxfaWYodHlwZSA9PSBYODZFTVVMX0ZQVV9m cHUgJiYgIW9wcy0+cHV0X2ZwdSk7Cj4gICAgICAgICAgZmljLT50eXBlID0gdHlwZTsKPiAKPiAg ICAgICAgICBmYWlsX2lmKCFvcHMtPnJlYWRfY3IpOwo+IEBAIC0xMDI2LDExICsxMDI3LDE0IEBA IGRvIHsKPiAKPiAgc3RhdGljIHZvaWQgcHV0X2ZwdSgKPiAgICAgIHN0cnVjdCBmcHVfaW5zbl9j dHh0ICpmaWMsCj4gKyAgICBib29sIGZhaWxlZF9sYXRlLAo+ICAgICAgc3RydWN0IHg4Nl9lbXVs YXRlX2N0eHQgKmN0eHQsCj4gICAgICBjb25zdCBzdHJ1Y3QgeDg2X2VtdWxhdGVfb3BzICpvcHMp Cj4gIHsKPiAtICAgIGlmICggZmljLT50eXBlICE9IFg4NkVNVUxfRlBVX25vbmUgJiYgb3BzLT5w dXRfZnB1ICkKPiAtICAgICAgICBvcHMtPnB1dF9mcHUoY3R4dCk7Cj4gKyAgICBpZiAoIHVubGlr ZWx5KGZhaWxlZF9sYXRlKSAmJiBmaWMtPnR5cGUgPT0gWDg2RU1VTF9GUFVfZnB1ICkKPiArICAg ICAgICBvcHMtPnB1dF9mcHUoY3R4dCwgWDg2RU1VTF9GUFVfZnB1KTsKPiArICAgIGVsc2UgaWYg KCBmaWMtPnR5cGUgIT0gWDg2RU1VTF9GUFVfbm9uZSAmJiBvcHMtPnB1dF9mcHUgKQo+ICsgICAg ICAgIG9wcy0+cHV0X2ZwdShjdHh0LCBYODZFTVVMX0ZQVV9ub25lKTsKPiAgICAgIGZpYy0+dHlw ZSA9IFg4NkVNVUxfRlBVX25vbmU7Cj4gIH0KPiAKPiBAQCAtMzcxNiw5ICszNzIwLDkgQEAgeDg2 X2VtdWxhdGUoCj4gICAgICAgICAgYnJlYWs7Cj4gCj4gICAgICBjYXNlIDB4OWI6ICAvKiB3YWl0 L2Z3YWl0ICovCj4gLSAgICAgICAgZmljLmluc25fYnl0ZXMgPSAxOwo+ICAgICAgICAgIGhvc3Rf YW5kX3ZjcHVfbXVzdF9oYXZlKGZwdSk7Cj4gICAgICAgICAgZ2V0X2ZwdShYODZFTVVMX0ZQVV93 YWl0LCAmZmljKTsKPiArICAgICAgICBmaWMuaW5zbl9ieXRlcyA9IDE7Cj4gICAgICAgICAgYXNt IHZvbGF0aWxlICggImZ3YWl0IiA6OjogIm1lbW9yeSIgKTsKPiAgICAgICAgICBjaGVja19mcHVf ZXhuKCZmaWMpOwo+ICAgICAgICAgIGJyZWFrOwo+IEBAIC03ODkyLDcgKzc4OTYsNyBAQCB4ODZf ZW11bGF0ZSgKPiAgICAgIH0KPiAKPiAgIGNvbXBsZXRlX2luc246IC8qIENvbW1pdCBzaGFkb3cg cmVnaXN0ZXIgc3RhdGUuICovCj4gLSAgICBwdXRfZnB1KCZmaWMsIGN0eHQsIG9wcyk7Cj4gKyAg ICBwdXRfZnB1KCZmaWMsIGZhbHNlLCBjdHh0LCBvcHMpOwo+IAo+ICAgICAgLyogWmVybyB0aGUg dXBwZXIgMzIgYml0cyBvZiAlcmlwIGlmIG5vdCBpbiA2NC1iaXQgbW9kZS4gKi8KPiAgICAgIGlm ICggIW1vZGVfNjRiaXQoKSApCj4gQEAgLTc5MTYsNyArNzkyMCw3IEBAIHg4Nl9lbXVsYXRlKAo+ ICAgICAgY3R4dC0+cmVncy0+ZWZsYWdzICY9IH5YODZfRUZMQUdTX1JGOwo+IAo+ICAgZG9uZToK PiAtICAgIHB1dF9mcHUoJmZpYywgY3R4dCwgb3BzKTsKPiArICAgIHB1dF9mcHUoJmZpYywgZmlj Lmluc25fYnl0ZXMgPiAwICYmIGRzdC50eXBlID09IE9QX01FTSwgY3R4dCwgb3BzKTsKPiAgICAg IHB1dF9zdHViKHN0dWIpOwo+ICAgICAgcmV0dXJuIHJjOwo+ICAjdW5kZWYgc3RhdGUKPiAtLS0g YS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaAo+ICsrKyBiL3hlbi9hcmNo L3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5oCj4gQEAgLTQzNyw5ICs0MzcsMTIgQEAgc3Ry dWN0IHg4Nl9lbXVsYXRlX29wcwo+ICAgICAgICogcHV0X2ZwdTogUmVsaW5xdWlzaCB0aGUgRlBV LiBVbmhvb2sgZnJvbSBGUFUvU0lNRCBleGNlcHRpb24KPiBoYW5kbGVycy4KPiAgICAgICAqICBU aGUgaGFuZGxlciwgaWYgaW5zdGFsbGVkLCBtdXN0IGJlIHByZXBhcmVkIHRvIGdldCBjYWxsZWQg d2l0aG91dAo+ICAgICAgICogIHRoZSBnZXRfZnB1IG9uZSBoYXZpbmcgZ290IGNhbGxlZCBiZWZv cmUhCj4gKyAgICAgKiBAYmFja291dDogVW5kbyB1cGRhdGVzIHRvIHRoZSBzcGVjaWZpZWQgcmVn aXN0ZXIgZmlsZSAoY2FuLCBiZXNpZGVzCj4gKyAgICAgKiAgICAgICAgICAgWDg2RU1VTF9GUFVf bm9uZSwgb25seSBiZSBYODZFTVVMX0ZQVV9mcHUgYXQgcHJlc2VudCk7Cj4gICAgICAgKi8KPiAg ICAgIHZvaWQgKCpwdXRfZnB1KSgKPiAtICAgICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAq Y3R4dCk7Cj4gKyAgICAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQsCj4gKyAgICAg ICAgZW51bSB4ODZfZW11bGF0ZV9mcHVfdHlwZSBiYWNrb3V0KTsKPiAKPiAgICAgIC8qIGludmxw ZzogSW52YWxpZGF0ZSBwYWdpbmcgc3RydWN0dXJlcyB3aGljaCBtYXAgYWRkcmVzc2VkIGJ5dGUu ICovCj4gICAgICBpbnQgKCppbnZscGcpKAo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZt L2h2bS5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmgKPiBAQCAtMTQwLDYg KzE0MCw4IEBAIHN0cnVjdCBodm1fZnVuY3Rpb25fdGFibGUgewo+IAo+ICAgICAgdm9pZCAoKnVw ZGF0ZV9ndWVzdF92ZW5kb3IpKHN0cnVjdCB2Y3B1ICp2KTsKPiAKPiArICAgIHZvaWQgKCpmcHVf bGVhdmUpKHN0cnVjdCB2Y3B1ICp2KTsKPiArCj4gICAgICBpbnQgICgqZ2V0X2d1ZXN0X3BhdCko c3RydWN0IHZjcHUgKnYsIHU2NCAqKTsKPiAgICAgIGludCAgKCpzZXRfZ3Vlc3RfcGF0KShzdHJ1 Y3QgdmNwdSAqdiwgdTY0KTsKPiAKPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK