From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v5 12/28] xen/x86: allow disabling the emulated local apic Date: Fri, 21 Aug 2015 18:53:25 +0200 Message-ID: <1440176021-18910-13-git-send-email-roger.pau@citrix.com> References: <1440176021-18910-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 1ZSpui-0001uS-Bt for xen-devel@lists.xenproject.org; Fri, 21 Aug 2015 17:15:36 +0000 In-Reply-To: <1440176021-18910-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 a2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogQm9y aXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KQ2M6IFN1cmF2ZWUgU3V0 aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRoaWt1bHBhbml0QGFtZC5jb20+CkNjOiBBcmF2aW5kIEdv cGFsYWtyaXNobmFuIDxBcmF2aW5kLkdvcGFsYWtyaXNobmFuQGFtZC5jb20+CkNjOiBKYW4gQmV1 bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVy M0BjaXRyaXguY29tPgpDYzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWppbWFAaW50ZWwuY29tPgpD YzogRWRkaWUgRG9uZyA8ZWRkaWUuZG9uZ0BpbnRlbC5jb20+CkNjOiBLZXZpbiBUaWFuIDxrZXZp bi50aWFuQGludGVsLmNvbT4KLS0tCkNoYW5nZXMgc2luY2UgdjQ6CiAtIFNwbGl0IHRoZSBpc19w dmhfZG9tYWluIGNoZWNrIGludG8gdHdvLCBzbyBwYXJ0IG9mIHRoZSBjb2RlIGNhbiBiZSBzaGFy ZWQKICAgd2l0aCB0aGUgIWhhc19sYXBpYyBjYXNlLgogLSBBZGQgQW5kcmV3IENvb3BlciBBY2tl ZC1ieS4KLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyAgfCAxNiArKysrKysrKystLS0t LS0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZsYXBpYy5jICAgfCAzMCArKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm1zaS5jICAgICB8ICA2ICsrKysrKwogeGVu L2FyY2gveDg2L2h2bS92bXgvdm1jcy5jIHwgIDUgKysrKy0KIHhlbi9hcmNoL3g4Ni9odm0vdm14 L3ZteC5jICB8ICA5ICsrKysrKysrLQogNSBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCsp LCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0u YyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCmluZGV4IDhkZTQxZmEuLjk3ZGM1MDcgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9o dm0vc3ZtL3N2bS5jCkBAIC0xMDM1LDYgKzEwMzUsNyBAQCBzdGF0aWMgdm9pZCBub3JldHVybiBz dm1fZG9fcmVzdW1lKHN0cnVjdCB2Y3B1ICp2KQogICAgIHN0cnVjdCB2bWNiX3N0cnVjdCAqdm1j YiA9IHYtPmFyY2guaHZtX3N2bS52bWNiOwogICAgIGJvb2xfdCBkZWJ1Z19zdGF0ZSA9IHYtPmRv bWFpbi0+ZGVidWdnZXJfYXR0YWNoZWQ7CiAgICAgYm9vbF90IHZjcHVfZ3Vlc3Rtb2RlID0gMDsK KyAgICBzdHJ1Y3QgdmxhcGljICp2bGFwaWMgPSB2Y3B1X3ZsYXBpYyh2KTsKIAogICAgIGlmICgg bmVzdGVkaHZtX2VuYWJsZWQodi0+ZG9tYWluKSAmJiBuZXN0ZWRodm1fdmNwdV9pbl9ndWVzdG1v ZGUodikgKQogICAgICAgICB2Y3B1X2d1ZXN0bW9kZSA9IDE7CkBAIC0xMDU4LDE0ICsxMDU5LDE0 IEBAIHN0YXRpYyB2b2lkIG5vcmV0dXJuIHN2bV9kb19yZXN1bWUoc3RydWN0IHZjcHUgKnYpCiAg ICAgICAgIGh2bV9hc2lkX2ZsdXNoX3ZjcHUodik7CiAgICAgfQogCi0gICAgaWYgKCAhdmNwdV9n dWVzdG1vZGUgKQorICAgIGlmICggIXZjcHVfZ3Vlc3Rtb2RlICYmICF2bGFwaWNfaHdfZGlzYWJs ZWQodmxhcGljKSApCiAgICAgewogICAgICAgICB2aW50cl90IGludHI7CiAKICAgICAgICAgLyog UmVmbGVjdCB0aGUgdmxhcGljJ3MgVFBSIGluIHRoZSBoYXJkd2FyZSB2dHByICovCiAgICAgICAg IGludHIgPSB2bWNiX2dldF92aW50cih2bWNiKTsKICAgICAgICAgaW50ci5maWVsZHMudHByID0K LSAgICAgICAgICAgICh2bGFwaWNfZ2V0X3JlZyh2Y3B1X3ZsYXBpYyh2KSwgQVBJQ19UQVNLUFJJ KSAmIDB4RkYpID4+IDQ7CisgICAgICAgICAgICAodmxhcGljX2dldF9yZWcodmxhcGljLCBBUElD X1RBU0tQUkkpICYgMHhGRikgPj4gNDsKICAgICAgICAgdm1jYl9zZXRfdmludHIodm1jYiwgaW50 cik7CiAgICAgfQogCkBAIC0yMjk0LDYgKzIyOTUsNyBAQCB2b2lkIHN2bV92bWV4aXRfaGFuZGxl cihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICBpbnQgaW5zdF9sZW4sIHJjOwogICAg IHZpbnRyX3QgaW50cjsKICAgICBib29sX3QgdmNwdV9ndWVzdG1vZGUgPSAwOworICAgIHN0cnVj dCB2bGFwaWMgKnZsYXBpYyA9IHZjcHVfdmxhcGljKHYpOwogCiAgICAgaHZtX2ludmFsaWRhdGVf cmVnc19maWVsZHMocmVncyk7CiAKQEAgLTIzMTEsMTEgKzIzMTMsMTEgQEAgdm9pZCBzdm1fdm1l eGl0X2hhbmRsZXIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICogTkIuIFdlIG5l ZWQgdG8gcHJlc2VydmUgdGhlIGxvdyBiaXRzIG9mIHRoZSBUUFIgdG8gbWFrZSBjaGVja2VkIGJ1 aWxkcwogICAgICAqIG9mIFdpbmRvd3Mgd29yaywgZXZlbiB0aG91Z2ggdGhleSBkb24ndCBhY3R1 YWxseSBkbyBhbnl0aGluZy4KICAgICAgKi8KLSAgICBpZiAoICF2Y3B1X2d1ZXN0bW9kZSApIHsK KyAgICBpZiAoICF2Y3B1X2d1ZXN0bW9kZSAmJiAhdmxhcGljX2h3X2Rpc2FibGVkKHZsYXBpYykg KSB7CiAgICAgICAgIGludHIgPSB2bWNiX2dldF92aW50cih2bWNiKTsKLSAgICAgICAgdmxhcGlj X3NldF9yZWcodmNwdV92bGFwaWModiksIEFQSUNfVEFTS1BSSSwKKyAgICAgICAgdmxhcGljX3Nl dF9yZWcodmxhcGljLCBBUElDX1RBU0tQUkksCiAgICAgICAgICAgICAgICAgICAgKChpbnRyLmZp ZWxkcy50cHIgJiAweDBGKSA8PCA0KSB8Ci0gICAgICAgICAgICAgICAgICAgKHZsYXBpY19nZXRf cmVnKHZjcHVfdmxhcGljKHYpLCBBUElDX1RBU0tQUkkpICYgMHgwRikpOworICAgICAgICAgICAg ICAgICAgICh2bGFwaWNfZ2V0X3JlZyh2bGFwaWMsIEFQSUNfVEFTS1BSSSkgJiAweDBGKSk7CiAg ICAgfQogCiAgICAgZXhpdF9yZWFzb24gPSB2bWNiLT5leGl0Y29kZTsKQEAgLTI2OTcsMTQgKzI2 OTksMTQgQEAgdm9pZCBzdm1fdm1leGl0X2hhbmRsZXIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl Z3MpCiAgICAgfQogCiAgIG91dDoKLSAgICBpZiAoIHZjcHVfZ3Vlc3Rtb2RlICkKKyAgICBpZiAo IHZjcHVfZ3Vlc3Rtb2RlIHx8IHZsYXBpY19od19kaXNhYmxlZCh2bGFwaWMpICkKICAgICAgICAg LyogRG9uJ3QgY2xvYmJlciBUUFIgb2YgdGhlIG5lc3RlZCBndWVzdC4gKi8KICAgICAgICAgcmV0 dXJuOwogCiAgICAgLyogVGhlIGV4aXQgbWF5IGhhdmUgdXBkYXRlZCB0aGUgVFBSOiByZWZsZWN0 IHRoaXMgaW4gdGhlIGhhcmR3YXJlIHZ0cHIgKi8KICAgICBpbnRyID0gdm1jYl9nZXRfdmludHIo dm1jYik7CiAgICAgaW50ci5maWVsZHMudHByID0KLSAgICAgICAgKHZsYXBpY19nZXRfcmVnKHZj cHVfdmxhcGljKHYpLCBBUElDX1RBU0tQUkkpICYgMHhGRikgPj4gNDsKKyAgICAgICAgKHZsYXBp Y19nZXRfcmVnKHZsYXBpYywgQVBJQ19UQVNLUFJJKSAmIDB4RkYpID4+IDQ7CiAgICAgdm1jYl9z ZXRfdmludHIodm1jYiwgaW50cik7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0v dmxhcGljLmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZsYXBpYy5jCmluZGV4IGI4OTNiNDAuLmUzNTU2 NzkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS92bGFwaWMuYwpAQCAtOTkzLDYgKzk5Myw5IEBAIHN0YXRpYyB2b2lkIHNldF94MmFw aWNfaWQoc3RydWN0IHZsYXBpYyAqdmxhcGljKQogCiBib29sX3QgdmxhcGljX21zcl9zZXQoc3Ry dWN0IHZsYXBpYyAqdmxhcGljLCB1aW50NjRfdCB2YWx1ZSkKIHsKKyAgICBpZiAoICFoYXNfdmxh cGljKHZsYXBpY19kb21haW4odmxhcGljKSkgKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIGlm ICggKHZsYXBpYy0+aHcuYXBpY19iYXNlX21zciBeIHZhbHVlKSAmIE1TUl9JQTMyX0FQSUNCQVNF X0VOQUJMRSApCiAgICAgewogICAgICAgICBpZiAoIHVubGlrZWx5KHZhbHVlICYgTVNSX0lBMzJf QVBJQ0JBU0VfRVhURCkgKQpAQCAtMTA0Miw4ICsxMDQ1LDcgQEAgdm9pZCB2bGFwaWNfdGR0X21z cl9zZXQoc3RydWN0IHZsYXBpYyAqdmxhcGljLCB1aW50NjRfdCB2YWx1ZSkKICAgICB1aW50NjRf dCBndWVzdF90c2M7CiAgICAgc3RydWN0IHZjcHUgKnYgPSB2bGFwaWNfdmNwdSh2bGFwaWMpOwog Ci0gICAgLyogbWF5IG5lZWQgdG8gZXhjbHVkZSBzb21lIG90aGVyIGNvbmRpdGlvbnMgbGlrZSB2 bGFwaWMtPmh3LmRpc2FibGVkICovCi0gICAgaWYgKCAhdmxhcGljX2x2dHRfdGR0KHZsYXBpYykg KQorICAgIGlmICggIXZsYXBpY19sdnR0X3RkdCh2bGFwaWMpIHx8IHZsYXBpY19od19kaXNhYmxl ZCh2bGFwaWMpICkKICAgICB7CiAgICAgICAgIEhWTV9EQkdfTE9HKERCR19MRVZFTF9WTEFQSUNf VElNRVIsICJpZ25vcmUgdHNjIGRlYWRsaW5lIG1zciB3cml0ZSIpOwogICAgICAgICByZXR1cm47 CkBAIC0xMTE4LDYgKzExMjAsOSBAQCBzdGF0aWMgaW50IF9fdmxhcGljX2FjY2VwdF9waWNfaW50 cihzdHJ1Y3QgdmNwdSAqdikKIAogaW50IHZsYXBpY19hY2NlcHRfcGljX2ludHIoc3RydWN0IHZj cHUgKnYpCiB7CisgICAgaWYgKCB2bGFwaWNfaHdfZGlzYWJsZWQodmNwdV92bGFwaWModikpICkK KyAgICAgICAgcmV0dXJuIDA7CisKICAgICBUUkFDRV8yRChUUkNfSFZNX0VNVUxfTEFQSUNfUElD X0lOVFIsCiAgICAgICAgICAgICAgKHYgPT0gdi0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4uaTgy NTlfdGFyZ2V0KSwKICAgICAgICAgICAgICB2ID8gX192bGFwaWNfYWNjZXB0X3BpY19pbnRyKHYp IDogLTEpOwpAQCAtMTI2NSw2ICsxMjcwLDkgQEAgc3RhdGljIGludCBsYXBpY19zYXZlX2hpZGRl bihzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKICAgICBzdHJ1Y3Qg dmxhcGljICpzOwogICAgIGludCByYyA9IDA7CiAKKyAgICBpZiAoICFoYXNfdmxhcGljKGQpICkK KyAgICAgICAgcmV0dXJuIDA7CisKICAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiApCiAgICAgewog ICAgICAgICBzID0gdmNwdV92bGFwaWModik7CkBAIC0xMjgxLDYgKzEyODksOSBAQCBzdGF0aWMg aW50IGxhcGljX3NhdmVfcmVncyhzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRf dCAqaCkKICAgICBzdHJ1Y3QgdmxhcGljICpzOwogICAgIGludCByYyA9IDA7CiAKKyAgICBpZiAo ICFoYXNfdmxhcGljKGQpICkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBmb3JfZWFjaF92Y3B1 ICggZCwgdiApCiAgICAgewogICAgICAgICBpZiAoIGh2bV9mdW5jcy5zeW5jX3Bpcl90b19pcnIg KQpAQCAtMTMyOCw3ICsxMzM5LDEwIEBAIHN0YXRpYyBpbnQgbGFwaWNfbG9hZF9oaWRkZW4oc3Ry dWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCiAgICAgdWludDE2X3QgdmNw dWlkOwogICAgIHN0cnVjdCB2Y3B1ICp2OwogICAgIHN0cnVjdCB2bGFwaWMgKnM7Ci0gICAgCisK KyAgICBpZiAoICFoYXNfdmxhcGljKGQpICkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICAvKiBX aGljaCB2bGFwaWMgdG8gbG9hZD8gKi8KICAgICB2Y3B1aWQgPSBodm1fbG9hZF9pbnN0YW5jZSho KTsgCiAgICAgaWYgKCB2Y3B1aWQgPj0gZC0+bWF4X3ZjcHVzIHx8ICh2ID0gZC0+dmNwdVt2Y3B1 aWRdKSA9PSBOVUxMICkKQEAgLTEzNjAsNyArMTM3NCwxMCBAQCBzdGF0aWMgaW50IGxhcGljX2xv YWRfcmVncyhzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKICAgICB1 aW50MTZfdCB2Y3B1aWQ7CiAgICAgc3RydWN0IHZjcHUgKnY7CiAgICAgc3RydWN0IHZsYXBpYyAq czsKLSAgICAKKworICAgIGlmICggIWhhc192bGFwaWMoZCkgKQorICAgICAgICByZXR1cm4gMDsK KwogICAgIC8qIFdoaWNoIHZsYXBpYyB0byBsb2FkPyAqLwogICAgIHZjcHVpZCA9IGh2bV9sb2Fk X2luc3RhbmNlKGgpOyAKICAgICBpZiAoIHZjcHVpZCA+PSBkLT5tYXhfdmNwdXMgfHwgKHYgPSBk LT52Y3B1W3ZjcHVpZF0pID09IE5VTEwgKQpAQCAtMTM5OSw3ICsxNDE2LDcgQEAgaW50IHZsYXBp Y19pbml0KHN0cnVjdCB2Y3B1ICp2KQogCiAgICAgSFZNX0RCR19MT0coREJHX0xFVkVMX1ZMQVBJ QywgIiVkIiwgdi0+dmNwdV9pZCk7CiAKLSAgICBpZiAoIGlzX3B2aF92Y3B1KHYpICkKKyAgICBp ZiAoIGlzX3B2aF92Y3B1KHYpIHx8ICFoYXNfdmxhcGljKHYtPmRvbWFpbikgKQogICAgIHsKICAg ICAgICAgdmxhcGljLT5ody5kaXNhYmxlZCA9IFZMQVBJQ19IV19ESVNBQkxFRDsKICAgICAgICAg cmV0dXJuIDA7CkBAIC0xNDUyLDYgKzE0NjksOSBAQCB2b2lkIHZsYXBpY19kZXN0cm95KHN0cnVj dCB2Y3B1ICp2KQogewogICAgIHN0cnVjdCB2bGFwaWMgKnZsYXBpYyA9IHZjcHVfdmxhcGljKHYp OwogCisgICAgaWYgKCAhaGFzX3ZsYXBpYyh2bGFwaWNfZG9tYWluKHZsYXBpYykpICkKKyAgICAg ICAgcmV0dXJuOworCiAgICAgdGFza2xldF9raWxsKCZ2bGFwaWMtPmluaXRfc2lwaS50YXNrbGV0 KTsKICAgICBUUkFDRV8wRChUUkNfSFZNX0VNVUxfTEFQSUNfU1RPUF9USU1FUik7CiAgICAgZGVz dHJveV9wZXJpb2RpY190aW1lKCZ2bGFwaWMtPnB0KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9odm0vdm1zaS5jIGIveGVuL2FyY2gveDg2L2h2bS92bXNpLmMKaW5kZXggYWM4MzhhOS4uZTZh MTQ1ZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXNpLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS92bXNpLmMKQEAgLTQ4Miw2ICs0ODIsOSBAQCBmb3VuZDoKIAogdm9pZCBtc2l4dGJs X2luaXQoc3RydWN0IGRvbWFpbiAqZCkKIHsKKyAgICBpZiAoICFoYXNfdmxhcGljKGQpICkKKyAg ICAgICAgcmV0dXJuOworCiAgICAgSU5JVF9MSVNUX0hFQUQoJmQtPmFyY2guaHZtX2RvbWFpbi5t c2l4dGJsX2xpc3QpOwogICAgIHNwaW5fbG9ja19pbml0KCZkLT5hcmNoLmh2bV9kb21haW4ubXNp eHRibF9saXN0X2xvY2spOwogCkBAIC00OTMsNiArNDk2LDkgQEAgdm9pZCBtc2l4dGJsX3B0X2Ns ZWFudXAoc3RydWN0IGRvbWFpbiAqZCkKICAgICBzdHJ1Y3QgbXNpeHRibF9lbnRyeSAqZW50cnks ICp0ZW1wOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKKyAgICBpZiAoICFoYXNfdmxhcGlj KGQpICkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLyogbXNpeHRibF9saXN0X2xvY2sgbXVzdCBi ZSBhY3F1aXJlZCB3aXRoIGlycV9kaXNhYmxlZCBmb3IgY2hlY2tfbG9jaygpICovCiAgICAgbG9j YWxfaXJxX3NhdmUoZmxhZ3MpOyAKICAgICBzcGluX2xvY2soJmQtPmFyY2guaHZtX2RvbWFpbi5t c2l4dGJsX2xpc3RfbG9jayk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNz LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMKaW5kZXggYTBhOTdlNy4uNDI1MWIyYyAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm1jcy5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9odm0vdm14L3ZtY3MuYwpAQCAtMTAwMiw3ICsxMDAyLDcgQEAgc3RhdGljIGludCBjb25zdHJ1 Y3Rfdm1jcyhzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgfihTRUNPTkRBUllfRVhFQ19FTkFCTEVf Vk1fRlVOQ1RJT05TIHwKICAgICAgICAgICBTRUNPTkRBUllfRVhFQ19FTkFCTEVfVklSVF9FWENF UFRJT05TKTsKIAotICAgIGlmICggaXNfcHZoX2RvbWFpbihkKSApCisgICAgaWYgKCBpc19wdmhf ZG9tYWluKGQpIHx8ICFoYXNfdmxhcGljKGQpICkKICAgICB7CiAgICAgICAgIC8qIERpc2FibGUg dmlydHVhbCBhcGljcywgVFBSICovCiAgICAgICAgIHYtPmFyY2guaHZtX3ZteC5zZWNvbmRhcnlf ZXhlY19jb250cm9sICY9CkBAIC0xMDE0LDcgKzEwMTQsMTAgQEAgc3RhdGljIGludCBjb25zdHJ1 Y3Rfdm1jcyhzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgLyogSW4gdHVybiwgZGlzYWJsZSBwb3N0 ZWQgaW50ZXJydXB0cy4gKi8KICAgICAgICAgX192bXdyaXRlKFBJTl9CQVNFRF9WTV9FWEVDX0NP TlRST0wsCiAgICAgICAgICAgICAgICAgICB2bXhfcGluX2Jhc2VkX2V4ZWNfY29udHJvbCAmIH5Q SU5fQkFTRURfUE9TVEVEX0lOVEVSUlVQVCk7CisgICAgfQogCisgICAgaWYgKCBpc19wdmhfZG9t YWluKGQpICkKKyAgICB7CiAgICAgICAgIC8qIFVucmVzdHJpY3RlZCBndWVzdCAocmVhbCBtb2Rl IGZvciBFUFQpICovCiAgICAgICAgIHYtPmFyY2guaHZtX3ZteC5zZWNvbmRhcnlfZXhlY19jb250 cm9sICY9CiAgICAgICAgICAgICB+U0VDT05EQVJZX0VYRUNfVU5SRVNUUklDVEVEX0dVRVNUOwpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYvaHZt L3ZteC92bXguYwppbmRleCA5OTlkZWZlLi44ZjNiYjhjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL3ZteC92bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwpAQCAtODks NiArODksOSBAQCBzdGF0aWMgaW50IHZteF9kb21haW5faW5pdGlhbGlzZShzdHJ1Y3QgZG9tYWlu ICpkKQogewogICAgIGludCByYzsKIAorICAgIGlmICggIWhhc192bGFwaWMoZCkgKQorICAgICAg ICByZXR1cm4gMDsKKwogICAgIGlmICggKHJjID0gdm14X2FsbG9jX3ZsYXBpY19tYXBwaW5nKGQp KSAhPSAwICkKICAgICAgICAgcmV0dXJuIHJjOwogCkBAIC05Nyw2ICsxMDAsOSBAQCBzdGF0aWMg aW50IHZteF9kb21haW5faW5pdGlhbGlzZShzdHJ1Y3QgZG9tYWluICpkKQogCiBzdGF0aWMgdm9p ZCB2bXhfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkKIHsKKyAgICBpZiAoICFoYXNf dmxhcGljKGQpICkKKyAgICAgICAgcmV0dXJuOworCiAgICAgdm14X2ZyZWVfdmxhcGljX21hcHBp bmcoZCk7CiB9CiAKQEAgLTIzOTMsNyArMjM5OSw4IEBAIHN0YXRpYyB2b2lkIHZteF9pbnN0YWxs X3ZsYXBpY19tYXBwaW5nKHN0cnVjdCB2Y3B1ICp2KQogewogICAgIHBhZGRyX3QgdmlydF9wYWdl X21hLCBhcGljX3BhZ2VfbWE7CiAKLSAgICBpZiAoICFjcHVfaGFzX3ZteF92aXJ0dWFsaXplX2Fw aWNfYWNjZXNzZXMgKQorICAgIGlmICggIWNwdV9oYXNfdm14X3ZpcnR1YWxpemVfYXBpY19hY2Nl c3NlcyB8fAorICAgICAgICAgdi0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4udm14LmFwaWNfYWNj ZXNzX21mbiA9PSAwICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdmlydF9wYWdlX21hID0gcGFn ZV90b19tYWRkcih2Y3B1X3ZsYXBpYyh2KS0+cmVnc19wYWdlKTsKLS0gCjEuOS41IChBcHBsZSBH aXQtNTAuMykKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=