From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v3 12/32] xen/x86: allow disabling the emulated local apic Date: Fri, 3 Jul 2015 13:34:50 +0200 Message-ID: <1435923310-9019-13-git-send-email-roger.pau@citrix.com> References: <1435923310-9019-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.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1ZAzPk-0004xH-0g for xen-devel@lists.xenproject.org; Fri, 03 Jul 2015 11:45:52 +0000 In-Reply-To: <1435923310-9019-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+CkNj OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgpDYzogU3VyYXZl ZSBTdXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1kLmNvbT4KQ2M6IEFyYXZp bmQgR29wYWxha3Jpc2huYW4gPEFyYXZpbmQuR29wYWxha3Jpc2huYW5AYW1kLmNvbT4KQ2M6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5j b29wZXIzQGNpdHJpeC5jb20+CkNjOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5j b20+CkNjOiBFZGRpZSBEb25nIDxlZGRpZS5kb25nQGludGVsLmNvbT4KQ2M6IEtldmluIFRpYW4g PGtldmluLnRpYW5AaW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jICB8 IDE2ICsrKysrKysrKy0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMgICB8IDMwICsr KysrKysrKysrKysrKysrKysrKysrKystLS0tLQogeGVuL2FyY2gveDg2L2h2bS92bXNpLmMgICAg IHwgIDYgKysrKysrCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMgfCAxNCArKysrKysrKysr KysrKwogeGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgIHwgIDkgKysrKysrKystCiA1IGZpbGVz IGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMK aW5kZXggYTAyZjk4My4uNDYwNjJkZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdm0v c3ZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKQEAgLTEwMzYsNiArMTAzNiw3 IEBAIHN0YXRpYyB2b2lkIG5vcmV0dXJuIHN2bV9kb19yZXN1bWUoc3RydWN0IHZjcHUgKnYpCiAg ICAgc3RydWN0IHZtY2Jfc3RydWN0ICp2bWNiID0gdi0+YXJjaC5odm1fc3ZtLnZtY2I7CiAgICAg Ym9vbF90IGRlYnVnX3N0YXRlID0gdi0+ZG9tYWluLT5kZWJ1Z2dlcl9hdHRhY2hlZDsKICAgICBi b29sX3QgdmNwdV9ndWVzdG1vZGUgPSAwOworICAgIHN0cnVjdCB2bGFwaWMgKnZsYXBpYyA9IHZj cHVfdmxhcGljKHYpOwogCiAgICAgaWYgKCBuZXN0ZWRodm1fZW5hYmxlZCh2LT5kb21haW4pICYm IG5lc3RlZGh2bV92Y3B1X2luX2d1ZXN0bW9kZSh2KSApCiAgICAgICAgIHZjcHVfZ3Vlc3Rtb2Rl ID0gMTsKQEAgLTEwNTksMTQgKzEwNjAsMTQgQEAgc3RhdGljIHZvaWQgbm9yZXR1cm4gc3ZtX2Rv X3Jlc3VtZShzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgaHZtX2FzaWRfZmx1c2hfdmNwdSh2KTsK ICAgICB9CiAKLSAgICBpZiAoICF2Y3B1X2d1ZXN0bW9kZSApCisgICAgaWYgKCAhdmNwdV9ndWVz dG1vZGUgJiYgIXZsYXBpY19od19kaXNhYmxlZCh2bGFwaWMpICkKICAgICB7CiAgICAgICAgIHZp bnRyX3QgaW50cjsKIAogICAgICAgICAvKiBSZWZsZWN0IHRoZSB2bGFwaWMncyBUUFIgaW4gdGhl IGhhcmR3YXJlIHZ0cHIgKi8KICAgICAgICAgaW50ciA9IHZtY2JfZ2V0X3ZpbnRyKHZtY2IpOwog ICAgICAgICBpbnRyLmZpZWxkcy50cHIgPQotICAgICAgICAgICAgKHZsYXBpY19nZXRfcmVnKHZj cHVfdmxhcGljKHYpLCBBUElDX1RBU0tQUkkpICYgMHhGRikgPj4gNDsKKyAgICAgICAgICAgICh2 bGFwaWNfZ2V0X3JlZyh2bGFwaWMsIEFQSUNfVEFTS1BSSSkgJiAweEZGKSA+PiA0OwogICAgICAg ICB2bWNiX3NldF92aW50cih2bWNiLCBpbnRyKTsKICAgICB9CiAKQEAgLTIyOTUsNiArMjI5Niw3 IEBAIHZvaWQgc3ZtX3ZtZXhpdF9oYW5kbGVyKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQog ICAgIGludCBpbnN0X2xlbiwgcmM7CiAgICAgdmludHJfdCBpbnRyOwogICAgIGJvb2xfdCB2Y3B1 X2d1ZXN0bW9kZSA9IDA7CisgICAgc3RydWN0IHZsYXBpYyAqdmxhcGljID0gdmNwdV92bGFwaWMo dik7CiAKICAgICBodm1faW52YWxpZGF0ZV9yZWdzX2ZpZWxkcyhyZWdzKTsKIApAQCAtMjMxMiwx MSArMjMxNCwxMSBAQCB2b2lkIHN2bV92bWV4aXRfaGFuZGxlcihzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncykKICAgICAgKiBOQi4gV2UgbmVlZCB0byBwcmVzZXJ2ZSB0aGUgbG93IGJpdHMgb2Yg dGhlIFRQUiB0byBtYWtlIGNoZWNrZWQgYnVpbGRzCiAgICAgICogb2YgV2luZG93cyB3b3JrLCBl dmVuIHRob3VnaCB0aGV5IGRvbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nLgogICAgICAqLwotICAg IGlmICggIXZjcHVfZ3Vlc3Rtb2RlICkgeworICAgIGlmICggIXZjcHVfZ3Vlc3Rtb2RlICYmICF2 bGFwaWNfaHdfZGlzYWJsZWQodmxhcGljKSApIHsKICAgICAgICAgaW50ciA9IHZtY2JfZ2V0X3Zp bnRyKHZtY2IpOwotICAgICAgICB2bGFwaWNfc2V0X3JlZyh2Y3B1X3ZsYXBpYyh2KSwgQVBJQ19U QVNLUFJJLAorICAgICAgICB2bGFwaWNfc2V0X3JlZyh2bGFwaWMsIEFQSUNfVEFTS1BSSSwKICAg ICAgICAgICAgICAgICAgICAoKGludHIuZmllbGRzLnRwciAmIDB4MEYpIDw8IDQpIHwKLSAgICAg ICAgICAgICAgICAgICAodmxhcGljX2dldF9yZWcodmNwdV92bGFwaWModiksIEFQSUNfVEFTS1BS SSkgJiAweDBGKSk7CisgICAgICAgICAgICAgICAgICAgKHZsYXBpY19nZXRfcmVnKHZsYXBpYywg QVBJQ19UQVNLUFJJKSAmIDB4MEYpKTsKICAgICB9CiAKICAgICBleGl0X3JlYXNvbiA9IHZtY2It PmV4aXRjb2RlOwpAQCAtMjY5OCwxNCArMjcwMCwxNCBAQCB2b2lkIHN2bV92bWV4aXRfaGFuZGxl cihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICB9CiAKICAgb3V0OgotICAgIGlmICgg dmNwdV9ndWVzdG1vZGUgKQorICAgIGlmICggdmNwdV9ndWVzdG1vZGUgfHwgdmxhcGljX2h3X2Rp c2FibGVkKHZsYXBpYykgKQogICAgICAgICAvKiBEb24ndCBjbG9iYmVyIFRQUiBvZiB0aGUgbmVz dGVkIGd1ZXN0LiAqLwogICAgICAgICByZXR1cm47CiAKICAgICAvKiBUaGUgZXhpdCBtYXkgaGF2 ZSB1cGRhdGVkIHRoZSBUUFI6IHJlZmxlY3QgdGhpcyBpbiB0aGUgaGFyZHdhcmUgdnRwciAqLwog ICAgIGludHIgPSB2bWNiX2dldF92aW50cih2bWNiKTsKICAgICBpbnRyLmZpZWxkcy50cHIgPQot ICAgICAgICAodmxhcGljX2dldF9yZWcodmNwdV92bGFwaWModiksIEFQSUNfVEFTS1BSSSkgJiAw eEZGKSA+PiA0OworICAgICAgICAodmxhcGljX2dldF9yZWcodmxhcGljLCBBUElDX1RBU0tQUkkp ICYgMHhGRikgPj4gNDsKICAgICB2bWNiX3NldF92aW50cih2bWNiLCBpbnRyKTsKIH0KIApkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdmxh cGljLmMKaW5kZXggNTQ3MmY3OS4uZmY2NDhiOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS92bGFwaWMuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZsYXBpYy5jCkBAIC05OTQsNiArOTk0 LDkgQEAgc3RhdGljIHZvaWQgc2V0X3gyYXBpY19pZChzdHJ1Y3QgdmxhcGljICp2bGFwaWMpCiAK IGJvb2xfdCB2bGFwaWNfbXNyX3NldChzdHJ1Y3QgdmxhcGljICp2bGFwaWMsIHVpbnQ2NF90IHZh bHVlKQogeworICAgIGlmICggIWhhc192bGFwaWModmxhcGljX2RvbWFpbih2bGFwaWMpKSApCisg ICAgICAgIHJldHVybiAwOworCiAgICAgaWYgKCAodmxhcGljLT5ody5hcGljX2Jhc2VfbXNyIF4g dmFsdWUpICYgTVNSX0lBMzJfQVBJQ0JBU0VfRU5BQkxFICkKICAgICB7CiAgICAgICAgIGlmICgg dW5saWtlbHkodmFsdWUgJiBNU1JfSUEzMl9BUElDQkFTRV9FWFREKSApCkBAIC0xMDQzLDggKzEw NDYsNyBAQCB2b2lkIHZsYXBpY190ZHRfbXNyX3NldChzdHJ1Y3QgdmxhcGljICp2bGFwaWMsIHVp bnQ2NF90IHZhbHVlKQogICAgIHVpbnQ2NF90IGd1ZXN0X3RzYzsKICAgICBzdHJ1Y3QgdmNwdSAq diA9IHZsYXBpY192Y3B1KHZsYXBpYyk7CiAKLSAgICAvKiBtYXkgbmVlZCB0byBleGNsdWRlIHNv bWUgb3RoZXIgY29uZGl0aW9ucyBsaWtlIHZsYXBpYy0+aHcuZGlzYWJsZWQgKi8KLSAgICBpZiAo ICF2bGFwaWNfbHZ0dF90ZHQodmxhcGljKSApCisgICAgaWYgKCAhdmxhcGljX2x2dHRfdGR0KHZs YXBpYykgfHwgdmxhcGljX2h3X2Rpc2FibGVkKHZsYXBpYykgKQogICAgIHsKICAgICAgICAgSFZN X0RCR19MT0coREJHX0xFVkVMX1ZMQVBJQ19USU1FUiwgImlnbm9yZSB0c2MgZGVhZGxpbmUgbXNy IHdyaXRlIik7CiAgICAgICAgIHJldHVybjsKQEAgLTExMTksNiArMTEyMSw5IEBAIHN0YXRpYyBp bnQgX192bGFwaWNfYWNjZXB0X3BpY19pbnRyKHN0cnVjdCB2Y3B1ICp2KQogCiBpbnQgdmxhcGlj X2FjY2VwdF9waWNfaW50cihzdHJ1Y3QgdmNwdSAqdikKIHsKKyAgICBpZiAoIHZsYXBpY19od19k aXNhYmxlZCh2Y3B1X3ZsYXBpYyh2KSkgKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIFRSQUNF XzJEKFRSQ19IVk1fRU1VTF9MQVBJQ19QSUNfSU5UUiwKICAgICAgICAgICAgICAodiA9PSB2LT5k b21haW4tPmFyY2guaHZtX2RvbWFpbi5pODI1OV90YXJnZXQpLAogICAgICAgICAgICAgIHYgPyBf X3ZsYXBpY19hY2NlcHRfcGljX2ludHIodikgOiAtMSk7CkBAIC0xMjY2LDYgKzEyNzEsOSBAQCBz dGF0aWMgaW50IGxhcGljX3NhdmVfaGlkZGVuKHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5f Y29udGV4dF90ICpoKQogICAgIHN0cnVjdCB2bGFwaWMgKnM7CiAgICAgaW50IHJjID0gMDsKIAor ICAgIGlmICggIWhhc192bGFwaWMoZCkgKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIGZvcl9l YWNoX3ZjcHUgKCBkLCB2ICkKICAgICB7CiAgICAgICAgIHMgPSB2Y3B1X3ZsYXBpYyh2KTsKQEAg LTEyODIsNiArMTI5MCw5IEBAIHN0YXRpYyBpbnQgbGFwaWNfc2F2ZV9yZWdzKHN0cnVjdCBkb21h aW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQogICAgIHN0cnVjdCB2bGFwaWMgKnM7CiAg ICAgaW50IHJjID0gMDsKIAorICAgIGlmICggIWhhc192bGFwaWMoZCkgKQorICAgICAgICByZXR1 cm4gMDsKKwogICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKICAgICB7CiAgICAgICAgIGlmICgg aHZtX2Z1bmNzLnN5bmNfcGlyX3RvX2lyciApCkBAIC0xMzI5LDcgKzEzNDAsMTAgQEAgc3RhdGlj IGludCBsYXBpY19sb2FkX2hpZGRlbihzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRl eHRfdCAqaCkKICAgICB1aW50MTZfdCB2Y3B1aWQ7CiAgICAgc3RydWN0IHZjcHUgKnY7CiAgICAg c3RydWN0IHZsYXBpYyAqczsKLSAgICAKKworICAgIGlmICggIWhhc192bGFwaWMoZCkgKQorICAg ICAgICByZXR1cm4gMDsKKwogICAgIC8qIFdoaWNoIHZsYXBpYyB0byBsb2FkPyAqLwogICAgIHZj cHVpZCA9IGh2bV9sb2FkX2luc3RhbmNlKGgpOyAKICAgICBpZiAoIHZjcHVpZCA+PSBkLT5tYXhf dmNwdXMgfHwgKHYgPSBkLT52Y3B1W3ZjcHVpZF0pID09IE5VTEwgKQpAQCAtMTM2MSw3ICsxMzc1 LDEwIEBAIHN0YXRpYyBpbnQgbGFwaWNfbG9hZF9yZWdzKHN0cnVjdCBkb21haW4gKmQsIGh2bV9k b21haW5fY29udGV4dF90ICpoKQogICAgIHVpbnQxNl90IHZjcHVpZDsKICAgICBzdHJ1Y3QgdmNw dSAqdjsKICAgICBzdHJ1Y3QgdmxhcGljICpzOwotICAgIAorCisgICAgaWYgKCAhaGFzX3ZsYXBp YyhkKSApCisgICAgICAgIHJldHVybiAwOworCiAgICAgLyogV2hpY2ggdmxhcGljIHRvIGxvYWQ/ ICovCiAgICAgdmNwdWlkID0gaHZtX2xvYWRfaW5zdGFuY2UoaCk7IAogICAgIGlmICggdmNwdWlk ID49IGQtPm1heF92Y3B1cyB8fCAodiA9IGQtPnZjcHVbdmNwdWlkXSkgPT0gTlVMTCApCkBAIC0x NDAwLDcgKzE0MTcsNyBAQCBpbnQgdmxhcGljX2luaXQoc3RydWN0IHZjcHUgKnYpCiAKICAgICBI Vk1fREJHX0xPRyhEQkdfTEVWRUxfVkxBUElDLCAiJWQiLCB2LT52Y3B1X2lkKTsKIAotICAgIGlm ICggaXNfcHZoX3ZjcHUodikgKQorICAgIGlmICggaXNfcHZoX3ZjcHUodikgfHwgIWhhc192bGFw aWModi0+ZG9tYWluKSApCiAgICAgewogICAgICAgICB2bGFwaWMtPmh3LmRpc2FibGVkID0gVkxB UElDX0hXX0RJU0FCTEVEOwogICAgICAgICByZXR1cm4gMDsKQEAgLTE0NTMsNiArMTQ3MCw5IEBA IHZvaWQgdmxhcGljX2Rlc3Ryb3koc3RydWN0IHZjcHUgKnYpCiB7CiAgICAgc3RydWN0IHZsYXBp YyAqdmxhcGljID0gdmNwdV92bGFwaWModik7CiAKKyAgICBpZiAoICFoYXNfdmxhcGljKHZsYXBp Y19kb21haW4odmxhcGljKSkgKQorICAgICAgICByZXR1cm47CisKICAgICB0YXNrbGV0X2tpbGwo JnZsYXBpYy0+aW5pdF9zaXBpLnRhc2tsZXQpOwogICAgIFRSQUNFXzBEKFRSQ19IVk1fRU1VTF9M QVBJQ19TVE9QX1RJTUVSKTsKICAgICBkZXN0cm95X3BlcmlvZGljX3RpbWUoJnZsYXBpYy0+cHQp OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXNpLmMgYi94ZW4vYXJjaC94ODYvaHZt L3Ztc2kuYwppbmRleCBiZjYwOTBlLi4yNjRlNTRkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv aHZtL3Ztc2kuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYwpAQCAtNDgzLDYgKzQ4Myw5 IEBAIGZvdW5kOgogCiB2b2lkIG1zaXh0YmxfaW5pdChzdHJ1Y3QgZG9tYWluICpkKQogeworICAg IGlmICggIWhhc192bGFwaWMoZCkgKQorICAgICAgICByZXR1cm47CisKICAgICByZWdpc3Rlcl9t bWlvX2hhbmRsZXIoZCwgJm1zaXh0YmxfbW1pb19vcHMpOwogfQogCkBAIC00OTEsNiArNDk0LDkg QEAgdm9pZCBtc2l4dGJsX3B0X2NsZWFudXAoc3RydWN0IGRvbWFpbiAqZCkKICAgICBzdHJ1Y3Qg bXNpeHRibF9lbnRyeSAqZW50cnksICp0ZW1wOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAK KyAgICBpZiAoICFoYXNfdmxhcGljKGQpICkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLyogbXNp eHRibF9saXN0X2xvY2sgbXVzdCBiZSBhY3F1aXJlZCB3aXRoIGlycV9kaXNhYmxlZCBmb3IgY2hl Y2tfbG9jaygpICovCiAgICAgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOyAKICAgICBzcGluX2xvY2so JmQtPmFyY2guaHZtX2RvbWFpbi5tc2l4dGJsX2xpc3RfbG9jayk7CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL3ZteC92bWNzLmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMKaW5k ZXggNGM1Y2ViNS4uOGRmNmI3MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm1j cy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYwpAQCAtOTkyLDYgKzk5MiwyMCBA QCBzdGF0aWMgaW50IGNvbnN0cnVjdF92bWNzKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICBBU1NF UlQoISh2LT5hcmNoLmh2bV92bXguZXhlY19jb250cm9sICYgQ1BVX0JBU0VEX1JEVFNDX0VYSVRJ TkcpKTsKICAgICB9CiAKKyAgICBpZiAoICFoYXNfdmxhcGljKGQpICkKKyAgICB7CisgICAgICAg IC8qIERpc2FibGUgdmlydHVhbCBhcGljcywgVFBSICovCisgICAgICAgIHYtPmFyY2guaHZtX3Zt eC5zZWNvbmRhcnlfZXhlY19jb250cm9sICY9CisgICAgICAgICAgICB+KFNFQ09OREFSWV9FWEVD X1ZJUlRVQUxJWkVfQVBJQ19BQ0NFU1NFUworICAgICAgICAgICAgICB8IFNFQ09OREFSWV9FWEVD X0FQSUNfUkVHSVNURVJfVklSVAorICAgICAgICAgICAgICB8IFNFQ09OREFSWV9FWEVDX1ZJUlRV QUxfSU5UUl9ERUxJVkVSWSk7CisgICAgICAgIHYtPmFyY2guaHZtX3ZteC5leGVjX2NvbnRyb2wg Jj0gfkNQVV9CQVNFRF9UUFJfU0hBRE9XOworCisgICAgICAgIC8qIEluIHR1cm4sIGRpc2FibGUg cG9zdGVkIGludGVycnVwdHMuICovCisgICAgICAgIF9fdm13cml0ZShQSU5fQkFTRURfVk1fRVhF Q19DT05UUk9MLAorICAgICAgICAgICAgICAgICAgdm14X3Bpbl9iYXNlZF9leGVjX2NvbnRyb2wg JiB+UElOX0JBU0VEX1BPU1RFRF9JTlRFUlJVUFQpOworICAgIH0KKwogICAgIHZteF91cGRhdGVf Y3B1X2V4ZWNfY29udHJvbCh2KTsKIAogICAgIF9fdm13cml0ZShWTV9FWElUX0NPTlRST0xTLCB2 bWV4aXRfY3RsKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jIGIveGVu L2FyY2gveDg2L2h2bS92bXgvdm14LmMKaW5kZXggZmMyOWI4OS4uMWUxYWNhMyAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgv dm14LmMKQEAgLTg4LDYgKzg4LDkgQEAgc3RhdGljIGludCB2bXhfZG9tYWluX2luaXRpYWxpc2Uo c3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBpbnQgcmM7CiAKKyAgICBpZiAoICFoYXNfdmxhcGlj KGQpICkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBpZiAoIChyYyA9IHZteF9hbGxvY192bGFw aWNfbWFwcGluZyhkKSkgIT0gMCApCiAgICAgICAgIHJldHVybiByYzsKIApAQCAtOTYsNiArOTks OSBAQCBzdGF0aWMgaW50IHZteF9kb21haW5faW5pdGlhbGlzZShzdHJ1Y3QgZG9tYWluICpkKQog CiBzdGF0aWMgdm9pZCB2bXhfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkKIHsKKyAg ICBpZiAoICFoYXNfdmxhcGljKGQpICkKKyAgICAgICAgcmV0dXJuOworCiAgICAgdm14X2ZyZWVf dmxhcGljX21hcHBpbmcoZCk7CiB9CiAKQEAgLTIyNDAsNyArMjI0Niw4IEBAIHN0YXRpYyB2b2lk IHZteF9pbnN0YWxsX3ZsYXBpY19tYXBwaW5nKHN0cnVjdCB2Y3B1ICp2KQogewogICAgIHBhZGRy X3QgdmlydF9wYWdlX21hLCBhcGljX3BhZ2VfbWE7CiAKLSAgICBpZiAoICFjcHVfaGFzX3ZteF92 aXJ0dWFsaXplX2FwaWNfYWNjZXNzZXMgKQorICAgIGlmICggIWNwdV9oYXNfdm14X3ZpcnR1YWxp emVfYXBpY19hY2Nlc3NlcyB8fAorICAgICAgICAgdi0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4u dm14LmFwaWNfYWNjZXNzX21mbiA9PSAwICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdmlydF9w YWdlX21hID0gcGFnZV90b19tYWRkcih2Y3B1X3ZsYXBpYyh2KS0+cmVnc19wYWdlKTsKLS0gCjEu OS41IChBcHBsZSBHaXQtNTAuMykKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=