From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v6 12/29] xen/x86: allow disabling the emulated local apic Date: Fri, 4 Sep 2015 14:08:51 +0200 Message-ID: <1441368548-43465-13-git-send-email-roger.pau@citrix.com> References: <1441368548-43465-1-git-send-email-roger.pau@citrix.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.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1ZXpoY-0005f1-B9 for xen-devel@lists.xenproject.org; Fri, 04 Sep 2015 12:09:54 +0000 In-Reply-To: <1441368548-43465-1-git-send-email-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: Kevin Tian , Suravee Suthikulpanit , Jun Nakajima , Andrew Cooper , Eddie Dong , Aravind Gopalakrishnan , Jan Beulich , Boris Ostrovsky , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkFj a2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdl ZC1ieTogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KQ2M6IEJv cmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+CkNjOiBTdXJhdmVlIFN1 dGhpa3VscGFuaXQgPHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQuY29tPgpDYzogQXJhdmluZCBH b3BhbGFrcmlzaG5hbiA8QXJhdmluZC5Hb3BhbGFrcmlzaG5hbkBhbWQuY29tPgpDYzogSmFuIEJl dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3Bl cjNAY2l0cml4LmNvbT4KQ2M6IEp1biBOYWthamltYSA8anVuLm5ha2FqaW1hQGludGVsLmNvbT4K Q2M6IEVkZGllIERvbmcgPGVkZGllLmRvbmdAaW50ZWwuY29tPgpDYzogS2V2aW4gVGlhbiA8a2V2 aW4udGlhbkBpbnRlbC5jb20+Ci0tLQpDaGFuZ2VzIHNpbmNlIHY1OgogLSBBZGQgQm9yaXMgT3N0 cm92c2t5IFJldmlld2VkLWJ5LgoKQ2hhbmdlcyBzaW5jZSB2NDoKIC0gU3BsaXQgdGhlIGlzX3B2 aF9kb21haW4gY2hlY2sgaW50byB0d28sIHNvIHBhcnQgb2YgdGhlIGNvZGUgY2FuIGJlIHNoYXJl ZAogICB3aXRoIHRoZSAhaGFzX2xhcGljIGNhc2UuCiAtIEFkZCBBbmRyZXcgQ29vcGVyIEFja2Vk LWJ5LgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jICB8IDE2ICsrKysrKysrKy0tLS0t LS0KIHhlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMgICB8IDMwICsrKysrKysrKysrKysrKysrKysr KysrKystLS0tLQogeGVuL2FyY2gveDg2L2h2bS92bXNpLmMgICAgIHwgIDYgKysrKysrCiB4ZW4v YXJjaC94ODYvaHZtL3ZteC92bWNzLmMgfCAgNSArKysrLQogeGVuL2FyY2gveDg2L2h2bS92bXgv dm14LmMgIHwgIDkgKysrKysrKystCiA1IGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyks IDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5j IGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKaW5kZXggOGRlNDFmYS4uOTdkYzUwNyAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2 bS9zdm0vc3ZtLmMKQEAgLTEwMzUsNiArMTAzNSw3IEBAIHN0YXRpYyB2b2lkIG5vcmV0dXJuIHN2 bV9kb19yZXN1bWUoc3RydWN0IHZjcHUgKnYpCiAgICAgc3RydWN0IHZtY2Jfc3RydWN0ICp2bWNi ID0gdi0+YXJjaC5odm1fc3ZtLnZtY2I7CiAgICAgYm9vbF90IGRlYnVnX3N0YXRlID0gdi0+ZG9t YWluLT5kZWJ1Z2dlcl9hdHRhY2hlZDsKICAgICBib29sX3QgdmNwdV9ndWVzdG1vZGUgPSAwOwor ICAgIHN0cnVjdCB2bGFwaWMgKnZsYXBpYyA9IHZjcHVfdmxhcGljKHYpOwogCiAgICAgaWYgKCBu ZXN0ZWRodm1fZW5hYmxlZCh2LT5kb21haW4pICYmIG5lc3RlZGh2bV92Y3B1X2luX2d1ZXN0bW9k ZSh2KSApCiAgICAgICAgIHZjcHVfZ3Vlc3Rtb2RlID0gMTsKQEAgLTEwNTgsMTQgKzEwNTksMTQg QEAgc3RhdGljIHZvaWQgbm9yZXR1cm4gc3ZtX2RvX3Jlc3VtZShzdHJ1Y3QgdmNwdSAqdikKICAg ICAgICAgaHZtX2FzaWRfZmx1c2hfdmNwdSh2KTsKICAgICB9CiAKLSAgICBpZiAoICF2Y3B1X2d1 ZXN0bW9kZSApCisgICAgaWYgKCAhdmNwdV9ndWVzdG1vZGUgJiYgIXZsYXBpY19od19kaXNhYmxl ZCh2bGFwaWMpICkKICAgICB7CiAgICAgICAgIHZpbnRyX3QgaW50cjsKIAogICAgICAgICAvKiBS ZWZsZWN0IHRoZSB2bGFwaWMncyBUUFIgaW4gdGhlIGhhcmR3YXJlIHZ0cHIgKi8KICAgICAgICAg aW50ciA9IHZtY2JfZ2V0X3ZpbnRyKHZtY2IpOwogICAgICAgICBpbnRyLmZpZWxkcy50cHIgPQot ICAgICAgICAgICAgKHZsYXBpY19nZXRfcmVnKHZjcHVfdmxhcGljKHYpLCBBUElDX1RBU0tQUkkp ICYgMHhGRikgPj4gNDsKKyAgICAgICAgICAgICh2bGFwaWNfZ2V0X3JlZyh2bGFwaWMsIEFQSUNf VEFTS1BSSSkgJiAweEZGKSA+PiA0OwogICAgICAgICB2bWNiX3NldF92aW50cih2bWNiLCBpbnRy KTsKICAgICB9CiAKQEAgLTIyOTQsNiArMjI5NSw3IEBAIHZvaWQgc3ZtX3ZtZXhpdF9oYW5kbGVy KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIGludCBpbnN0X2xlbiwgcmM7CiAgICAg dmludHJfdCBpbnRyOwogICAgIGJvb2xfdCB2Y3B1X2d1ZXN0bW9kZSA9IDA7CisgICAgc3RydWN0 IHZsYXBpYyAqdmxhcGljID0gdmNwdV92bGFwaWModik7CiAKICAgICBodm1faW52YWxpZGF0ZV9y ZWdzX2ZpZWxkcyhyZWdzKTsKIApAQCAtMjMxMSwxMSArMjMxMywxMSBAQCB2b2lkIHN2bV92bWV4 aXRfaGFuZGxlcihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgKiBOQi4gV2UgbmVl ZCB0byBwcmVzZXJ2ZSB0aGUgbG93IGJpdHMgb2YgdGhlIFRQUiB0byBtYWtlIGNoZWNrZWQgYnVp bGRzCiAgICAgICogb2YgV2luZG93cyB3b3JrLCBldmVuIHRob3VnaCB0aGV5IGRvbid0IGFjdHVh bGx5IGRvIGFueXRoaW5nLgogICAgICAqLwotICAgIGlmICggIXZjcHVfZ3Vlc3Rtb2RlICkgewor ICAgIGlmICggIXZjcHVfZ3Vlc3Rtb2RlICYmICF2bGFwaWNfaHdfZGlzYWJsZWQodmxhcGljKSAp IHsKICAgICAgICAgaW50ciA9IHZtY2JfZ2V0X3ZpbnRyKHZtY2IpOwotICAgICAgICB2bGFwaWNf c2V0X3JlZyh2Y3B1X3ZsYXBpYyh2KSwgQVBJQ19UQVNLUFJJLAorICAgICAgICB2bGFwaWNfc2V0 X3JlZyh2bGFwaWMsIEFQSUNfVEFTS1BSSSwKICAgICAgICAgICAgICAgICAgICAoKGludHIuZmll bGRzLnRwciAmIDB4MEYpIDw8IDQpIHwKLSAgICAgICAgICAgICAgICAgICAodmxhcGljX2dldF9y ZWcodmNwdV92bGFwaWModiksIEFQSUNfVEFTS1BSSSkgJiAweDBGKSk7CisgICAgICAgICAgICAg ICAgICAgKHZsYXBpY19nZXRfcmVnKHZsYXBpYywgQVBJQ19UQVNLUFJJKSAmIDB4MEYpKTsKICAg ICB9CiAKICAgICBleGl0X3JlYXNvbiA9IHZtY2ItPmV4aXRjb2RlOwpAQCAtMjY5NywxNCArMjY5 OSwxNCBAQCB2b2lkIHN2bV92bWV4aXRfaGFuZGxlcihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cykKICAgICB9CiAKICAgb3V0OgotICAgIGlmICggdmNwdV9ndWVzdG1vZGUgKQorICAgIGlmICgg dmNwdV9ndWVzdG1vZGUgfHwgdmxhcGljX2h3X2Rpc2FibGVkKHZsYXBpYykgKQogICAgICAgICAv KiBEb24ndCBjbG9iYmVyIFRQUiBvZiB0aGUgbmVzdGVkIGd1ZXN0LiAqLwogICAgICAgICByZXR1 cm47CiAKICAgICAvKiBUaGUgZXhpdCBtYXkgaGF2ZSB1cGRhdGVkIHRoZSBUUFI6IHJlZmxlY3Qg dGhpcyBpbiB0aGUgaGFyZHdhcmUgdnRwciAqLwogICAgIGludHIgPSB2bWNiX2dldF92aW50cih2 bWNiKTsKICAgICBpbnRyLmZpZWxkcy50cHIgPQotICAgICAgICAodmxhcGljX2dldF9yZWcodmNw dV92bGFwaWModiksIEFQSUNfVEFTS1BSSSkgJiAweEZGKSA+PiA0OworICAgICAgICAodmxhcGlj X2dldF9yZWcodmxhcGljLCBBUElDX1RBU0tQUkkpICYgMHhGRikgPj4gNDsKICAgICB2bWNiX3Nl dF92aW50cih2bWNiLCBpbnRyKTsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92 bGFwaWMuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMKaW5kZXggYjg5M2I0MC4uZTM1NTY3 OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYworKysgYi94ZW4vYXJjaC94 ODYvaHZtL3ZsYXBpYy5jCkBAIC05OTMsNiArOTkzLDkgQEAgc3RhdGljIHZvaWQgc2V0X3gyYXBp Y19pZChzdHJ1Y3QgdmxhcGljICp2bGFwaWMpCiAKIGJvb2xfdCB2bGFwaWNfbXNyX3NldChzdHJ1 Y3QgdmxhcGljICp2bGFwaWMsIHVpbnQ2NF90IHZhbHVlKQogeworICAgIGlmICggIWhhc192bGFw aWModmxhcGljX2RvbWFpbih2bGFwaWMpKSApCisgICAgICAgIHJldHVybiAwOworCiAgICAgaWYg KCAodmxhcGljLT5ody5hcGljX2Jhc2VfbXNyIF4gdmFsdWUpICYgTVNSX0lBMzJfQVBJQ0JBU0Vf RU5BQkxFICkKICAgICB7CiAgICAgICAgIGlmICggdW5saWtlbHkodmFsdWUgJiBNU1JfSUEzMl9B UElDQkFTRV9FWFREKSApCkBAIC0xMDQyLDggKzEwNDUsNyBAQCB2b2lkIHZsYXBpY190ZHRfbXNy X3NldChzdHJ1Y3QgdmxhcGljICp2bGFwaWMsIHVpbnQ2NF90IHZhbHVlKQogICAgIHVpbnQ2NF90 IGd1ZXN0X3RzYzsKICAgICBzdHJ1Y3QgdmNwdSAqdiA9IHZsYXBpY192Y3B1KHZsYXBpYyk7CiAK LSAgICAvKiBtYXkgbmVlZCB0byBleGNsdWRlIHNvbWUgb3RoZXIgY29uZGl0aW9ucyBsaWtlIHZs YXBpYy0+aHcuZGlzYWJsZWQgKi8KLSAgICBpZiAoICF2bGFwaWNfbHZ0dF90ZHQodmxhcGljKSAp CisgICAgaWYgKCAhdmxhcGljX2x2dHRfdGR0KHZsYXBpYykgfHwgdmxhcGljX2h3X2Rpc2FibGVk KHZsYXBpYykgKQogICAgIHsKICAgICAgICAgSFZNX0RCR19MT0coREJHX0xFVkVMX1ZMQVBJQ19U SU1FUiwgImlnbm9yZSB0c2MgZGVhZGxpbmUgbXNyIHdyaXRlIik7CiAgICAgICAgIHJldHVybjsK QEAgLTExMTgsNiArMTEyMCw5IEBAIHN0YXRpYyBpbnQgX192bGFwaWNfYWNjZXB0X3BpY19pbnRy KHN0cnVjdCB2Y3B1ICp2KQogCiBpbnQgdmxhcGljX2FjY2VwdF9waWNfaW50cihzdHJ1Y3QgdmNw dSAqdikKIHsKKyAgICBpZiAoIHZsYXBpY19od19kaXNhYmxlZCh2Y3B1X3ZsYXBpYyh2KSkgKQor ICAgICAgICByZXR1cm4gMDsKKwogICAgIFRSQUNFXzJEKFRSQ19IVk1fRU1VTF9MQVBJQ19QSUNf SU5UUiwKICAgICAgICAgICAgICAodiA9PSB2LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbi5pODI1 OV90YXJnZXQpLAogICAgICAgICAgICAgIHYgPyBfX3ZsYXBpY19hY2NlcHRfcGljX2ludHIodikg OiAtMSk7CkBAIC0xMjY1LDYgKzEyNzAsOSBAQCBzdGF0aWMgaW50IGxhcGljX3NhdmVfaGlkZGVu KHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQogICAgIHN0cnVjdCB2 bGFwaWMgKnM7CiAgICAgaW50IHJjID0gMDsKIAorICAgIGlmICggIWhhc192bGFwaWMoZCkgKQor ICAgICAgICByZXR1cm4gMDsKKwogICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKICAgICB7CiAg ICAgICAgIHMgPSB2Y3B1X3ZsYXBpYyh2KTsKQEAgLTEyODEsNiArMTI4OSw5IEBAIHN0YXRpYyBp bnQgbGFwaWNfc2F2ZV9yZWdzKHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90 ICpoKQogICAgIHN0cnVjdCB2bGFwaWMgKnM7CiAgICAgaW50IHJjID0gMDsKIAorICAgIGlmICgg IWhhc192bGFwaWMoZCkgKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIGZvcl9lYWNoX3ZjcHUg KCBkLCB2ICkKICAgICB7CiAgICAgICAgIGlmICggaHZtX2Z1bmNzLnN5bmNfcGlyX3RvX2lyciAp CkBAIC0xMzI4LDcgKzEzMzksMTAgQEAgc3RhdGljIGludCBsYXBpY19sb2FkX2hpZGRlbihzdHJ1 Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKICAgICB1aW50MTZfdCB2Y3B1 aWQ7CiAgICAgc3RydWN0IHZjcHUgKnY7CiAgICAgc3RydWN0IHZsYXBpYyAqczsKLSAgICAKKwor ICAgIGlmICggIWhhc192bGFwaWMoZCkgKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIC8qIFdo aWNoIHZsYXBpYyB0byBsb2FkPyAqLwogICAgIHZjcHVpZCA9IGh2bV9sb2FkX2luc3RhbmNlKGgp OyAKICAgICBpZiAoIHZjcHVpZCA+PSBkLT5tYXhfdmNwdXMgfHwgKHYgPSBkLT52Y3B1W3ZjcHVp ZF0pID09IE5VTEwgKQpAQCAtMTM2MCw3ICsxMzc0LDEwIEBAIHN0YXRpYyBpbnQgbGFwaWNfbG9h ZF9yZWdzKHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQogICAgIHVp bnQxNl90IHZjcHVpZDsKICAgICBzdHJ1Y3QgdmNwdSAqdjsKICAgICBzdHJ1Y3QgdmxhcGljICpz OwotICAgIAorCisgICAgaWYgKCAhaGFzX3ZsYXBpYyhkKSApCisgICAgICAgIHJldHVybiAwOwor CiAgICAgLyogV2hpY2ggdmxhcGljIHRvIGxvYWQ/ICovCiAgICAgdmNwdWlkID0gaHZtX2xvYWRf aW5zdGFuY2UoaCk7IAogICAgIGlmICggdmNwdWlkID49IGQtPm1heF92Y3B1cyB8fCAodiA9IGQt PnZjcHVbdmNwdWlkXSkgPT0gTlVMTCApCkBAIC0xMzk5LDcgKzE0MTYsNyBAQCBpbnQgdmxhcGlj X2luaXQoc3RydWN0IHZjcHUgKnYpCiAKICAgICBIVk1fREJHX0xPRyhEQkdfTEVWRUxfVkxBUElD LCAiJWQiLCB2LT52Y3B1X2lkKTsKIAotICAgIGlmICggaXNfcHZoX3ZjcHUodikgKQorICAgIGlm ICggaXNfcHZoX3ZjcHUodikgfHwgIWhhc192bGFwaWModi0+ZG9tYWluKSApCiAgICAgewogICAg ICAgICB2bGFwaWMtPmh3LmRpc2FibGVkID0gVkxBUElDX0hXX0RJU0FCTEVEOwogICAgICAgICBy ZXR1cm4gMDsKQEAgLTE0NTIsNiArMTQ2OSw5IEBAIHZvaWQgdmxhcGljX2Rlc3Ryb3koc3RydWN0 IHZjcHUgKnYpCiB7CiAgICAgc3RydWN0IHZsYXBpYyAqdmxhcGljID0gdmNwdV92bGFwaWModik7 CiAKKyAgICBpZiAoICFoYXNfdmxhcGljKHZsYXBpY19kb21haW4odmxhcGljKSkgKQorICAgICAg ICByZXR1cm47CisKICAgICB0YXNrbGV0X2tpbGwoJnZsYXBpYy0+aW5pdF9zaXBpLnRhc2tsZXQp OwogICAgIFRSQUNFXzBEKFRSQ19IVk1fRU1VTF9MQVBJQ19TVE9QX1RJTUVSKTsKICAgICBkZXN0 cm95X3BlcmlvZGljX3RpbWUoJnZsYXBpYy0+cHQpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2h2bS92bXNpLmMgYi94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYwppbmRleCBhYzgzOGE5Li5lNmEx NDVkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYworKysgYi94ZW4vYXJjaC94 ODYvaHZtL3Ztc2kuYwpAQCAtNDgyLDYgKzQ4Miw5IEBAIGZvdW5kOgogCiB2b2lkIG1zaXh0Ymxf aW5pdChzdHJ1Y3QgZG9tYWluICpkKQogeworICAgIGlmICggIWhhc192bGFwaWMoZCkgKQorICAg ICAgICByZXR1cm47CisKICAgICBJTklUX0xJU1RfSEVBRCgmZC0+YXJjaC5odm1fZG9tYWluLm1z aXh0YmxfbGlzdCk7CiAgICAgc3Bpbl9sb2NrX2luaXQoJmQtPmFyY2guaHZtX2RvbWFpbi5tc2l4 dGJsX2xpc3RfbG9jayk7CiAKQEAgLTQ5Myw2ICs0OTYsOSBAQCB2b2lkIG1zaXh0YmxfcHRfY2xl YW51cChzdHJ1Y3QgZG9tYWluICpkKQogICAgIHN0cnVjdCBtc2l4dGJsX2VudHJ5ICplbnRyeSwg KnRlbXA7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKIAorICAgIGlmICggIWhhc192bGFwaWMo ZCkgKQorICAgICAgICByZXR1cm47CisKICAgICAvKiBtc2l4dGJsX2xpc3RfbG9jayBtdXN0IGJl IGFjcXVpcmVkIHdpdGggaXJxX2Rpc2FibGVkIGZvciBjaGVja19sb2NrKCkgKi8KICAgICBsb2Nh bF9pcnFfc2F2ZShmbGFncyk7IAogICAgIHNwaW5fbG9jaygmZC0+YXJjaC5odm1fZG9tYWluLm1z aXh0YmxfbGlzdF9sb2NrKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3Mu YyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYwppbmRleCBhMGE5N2U3Li40MjUxYjJjIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMKKysrIGIveGVuL2FyY2gveDg2 L2h2bS92bXgvdm1jcy5jCkBAIC0xMDAyLDcgKzEwMDIsNyBAQCBzdGF0aWMgaW50IGNvbnN0cnVj dF92bWNzKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICB+KFNFQ09OREFSWV9FWEVDX0VOQUJMRV9W TV9GVU5DVElPTlMgfAogICAgICAgICAgIFNFQ09OREFSWV9FWEVDX0VOQUJMRV9WSVJUX0VYQ0VQ VElPTlMpOwogCi0gICAgaWYgKCBpc19wdmhfZG9tYWluKGQpICkKKyAgICBpZiAoIGlzX3B2aF9k b21haW4oZCkgfHwgIWhhc192bGFwaWMoZCkgKQogICAgIHsKICAgICAgICAgLyogRGlzYWJsZSB2 aXJ0dWFsIGFwaWNzLCBUUFIgKi8KICAgICAgICAgdi0+YXJjaC5odm1fdm14LnNlY29uZGFyeV9l eGVjX2NvbnRyb2wgJj0KQEAgLTEwMTQsNyArMTAxNCwxMCBAQCBzdGF0aWMgaW50IGNvbnN0cnVj dF92bWNzKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICAvKiBJbiB0dXJuLCBkaXNhYmxlIHBvc3Rl ZCBpbnRlcnJ1cHRzLiAqLwogICAgICAgICBfX3Ztd3JpdGUoUElOX0JBU0VEX1ZNX0VYRUNfQ09O VFJPTCwKICAgICAgICAgICAgICAgICAgIHZteF9waW5fYmFzZWRfZXhlY19jb250cm9sICYgflBJ Tl9CQVNFRF9QT1NURURfSU5URVJSVVBUKTsKKyAgICB9CiAKKyAgICBpZiAoIGlzX3B2aF9kb21h aW4oZCkgKQorICAgIHsKICAgICAgICAgLyogVW5yZXN0cmljdGVkIGd1ZXN0IChyZWFsIG1vZGUg Zm9yIEVQVCkgKi8KICAgICAgICAgdi0+YXJjaC5odm1fdm14LnNlY29uZGFyeV9leGVjX2NvbnRy b2wgJj0KICAgICAgICAgICAgIH5TRUNPTkRBUllfRVhFQ19VTlJFU1RSSUNURURfR1VFU1Q7CmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0v dm14L3ZteC5jCmluZGV4IDI1ODJjZGQuLjc2M2I1ODkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9odm0vdm14L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCkBAIC04OSw2 ICs4OSw5IEBAIHN0YXRpYyBpbnQgdm14X2RvbWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4g KmQpCiB7CiAgICAgaW50IHJjOwogCisgICAgaWYgKCAhaGFzX3ZsYXBpYyhkKSApCisgICAgICAg IHJldHVybiAwOworCiAgICAgaWYgKCAocmMgPSB2bXhfYWxsb2NfdmxhcGljX21hcHBpbmcoZCkp ICE9IDAgKQogICAgICAgICByZXR1cm4gcmM7CiAKQEAgLTk3LDYgKzEwMCw5IEBAIHN0YXRpYyBp bnQgdm14X2RvbWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4gKmQpCiAKIHN0YXRpYyB2b2lk IHZteF9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKQogeworICAgIGlmICggIWhhc192 bGFwaWMoZCkgKQorICAgICAgICByZXR1cm47CisKICAgICB2bXhfZnJlZV92bGFwaWNfbWFwcGlu ZyhkKTsKIH0KIApAQCAtMjM5Myw3ICsyMzk5LDggQEAgc3RhdGljIHZvaWQgdm14X2luc3RhbGxf dmxhcGljX21hcHBpbmcoc3RydWN0IHZjcHUgKnYpCiB7CiAgICAgcGFkZHJfdCB2aXJ0X3BhZ2Vf bWEsIGFwaWNfcGFnZV9tYTsKIAotICAgIGlmICggIWNwdV9oYXNfdm14X3ZpcnR1YWxpemVfYXBp Y19hY2Nlc3NlcyApCisgICAgaWYgKCAhY3B1X2hhc192bXhfdmlydHVhbGl6ZV9hcGljX2FjY2Vz c2VzIHx8CisgICAgICAgICB2LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbi52bXguYXBpY19hY2Nl c3NfbWZuID09IDAgKQogICAgICAgICByZXR1cm47CiAKICAgICB2aXJ0X3BhZ2VfbWEgPSBwYWdl X3RvX21hZGRyKHZjcHVfdmxhcGljKHYpLT5yZWdzX3BhZ2UpOwotLSAKMS45LjUgKEFwcGxlIEdp dC01MC4zKQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==