From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v6] x86/hvm/viridian: Enable APIC assist enlightenment Date: Fri, 18 Mar 2016 10:32:30 +0000 Message-ID: <1458297150-1574-1-git-send-email-paul.durrant@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.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1agrrp-0006cg-27 for xen-devel@lists.xenproject.org; Fri, 18 Mar 2016 10:42:53 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Wei Liu , Stefano Stabellini , Andrew Cooper , Ian Jackson , Paul Durrant , Jan Beulich , Keir Fraser List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBhZGRzIGNvZGUgdG8gZW5hYmxlIHRoZSBBUElDIGFzc2lzdCBlbmxpZ2h0ZW5t ZW50IHdoaWNoLAp1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMsIG1lYW5zIHRoYXQgdGhlIGd1ZXN0 IGNhbiBhdm9pZCBhbiBFT0kgb2YKdGhlIGxvY2FsIEFQSUMgYW5kIHRoZXJlYnkgYXZvaWQgYSBW TUVYSVQuCgpVc2Ugb2YgdGhlIGVubGlnaHRlbm1lbnQgYnkgdGhlIGh5cGVydmlzb3IgaXMgdW5k ZXIgY29udHJvbCBvZiB0aGUKdG9vbHN0YWNrLCBhbmQgaXMgYWRkZWQgdG8gdGhlIGRlZmF1bHQg c2V0LgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv bT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogU3RlZmFu byBTdGFiZWxsaW5pIDxzdGVmYW5vLnN0YWJlbGxpbmlAZXUuY2l0cml4LmNvbT4KQ2M6IFdlaSBM aXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBLZWlyIEZyYXNlciA8a2VpckB4ZW4ub3JnPgpD YzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5k cmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCgp2NjoKIC0gQWRkcmVzc2VkIHZhcmlvdXMgY29t bWVudHMgZnJvbSBKYW4KCnY0OgogLSBSZS13b3JkZWQgeGwuY2ZnIHRleHQgYW5kIGFkZGVkIG1p c3NpbmcgTElCWExfSEFWRV8gZGVmaW5pdGlvbgoKdjM6CiAtIFJlLWluc3RhdGVkIHJlYWQtbW9k aWZ5LXdyaXRlIGZvciBmb3J3YXJkcyBjb21wYXRpYmlsaXR5CiAtIEZpeCBhIGNvZGluZyBzdHls ZSBpc3N1ZQoKdjI6CiAtIFJlbW92ZWQgc29tZSBjb2RlIGR1cGxpY2F0aW9uIGFuZCB1bm5lY2Vz c2FyeSByZWFkLW1vZGlmeS13cml0ZQogICBvcGVyYXRpb25zIG9uIHRoZSBBUElDIGFzc2lzdCB3 b3JkLgogLSBTdGF0ZWQgaW4gdGhlIHhsLmNmZyB0ZXh0IHRoYXQgdGhlIGVubGlnaHRlbm1lbnQg aGFzIG5vIGVmZmVjdCBpZgogICBwb3N0ZWQgaW50ZXJydXB0cyBhcmUgaW4gdXNlLgogLSBBZGRl ZCB0aGUgZW5saWdodGVubWVudCB0byB0aGUgZGVmYXVsdCBzZXQuCi0tLQogZG9jcy9tYW4veGwu Y2ZnLnBvZC41ICAgICAgICAgICAgICB8IDEyICsrKysrKystCiB0b29scy9saWJ4bC9saWJ4bC5o ICAgICAgICAgICAgICAgIHwgIDYgKysrKwogdG9vbHMvbGlieGwvbGlieGxfZG9tLmMgICAgICAg ICAgICB8ICA0ICsrKwogdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsICAgICAgICB8ICAxICsK IHhlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYyAgICAgICAgfCA2MiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLQogeGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYyAgICAgICAg ICB8IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogeGVuL2luY2x1ZGUv YXNtLXg4Ni9odm0vaHZtLmggICAgICB8ICAzICsrCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92 aXJpZGlhbi5oIHwgIDUgKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL3BhcmFtcy5oICAgIHwg IDcgKysrKy0KIDkgZmlsZXMgY2hhbmdlZCwgMTQ2IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RvY3MvbWFuL3hsLmNmZy5wb2QuNSBiL2RvY3MvbWFuL3hsLmNm Zy5wb2QuNQppbmRleCA1NmIxMTE3Li5hYmY2MzhjIDEwMDY0NAotLS0gYS9kb2NzL21hbi94bC5j ZmcucG9kLjUKKysrIGIvZG9jcy9tYW4veGwuY2ZnLnBvZC41CkBAIC0xNDg0LDEwICsxNDg0LDIw IEBAIFRoaXMgc2V0IGluY29ycG9yYXRlcyB1c2Ugb2YgaHlwZXJjYWxscyBmb3IgcmVtb3RlIFRM QiBmbHVzaGluZy4KIFRoaXMgZW5saWdodGVubWVudCBtYXkgaW1wcm92ZSBwZXJmb3JtYW5jZSBv ZiBXaW5kb3dzIGd1ZXN0cyBydW5uaW5nCiBvbiBob3N0cyB3aXRoIGhpZ2hlciBsZXZlbHMgb2Yg KHBoeXNpY2FsKSBDUFUgY29udGVudGlvbi4KIAorPWl0ZW0gQjxhcGljX2Fzc2lzdD4KKworVGhp cyBzZXQgaW5jb3Jwb3JhdGVzIHVzZSBvZiB0aGUgQVBJQyBhc3Npc3QgcGFnZSB0byBhdm9pZCBF T0kgb2YKK3RoZSBsb2NhbCBBUElDLgorVGhpcyBlbmxpZ2h0ZW5tZW50IG1heSBpbXByb3ZlIHBl cmZvcm1hbmNlIG9mIGd1ZXN0cyB0aGF0IG1ha2UgdXNlIG9mCitwZXItdmNwdSBldmVudCBjaGFu bmVsIHVwY2FsbCB2ZWN0b3JzLgorTm90ZSB0aGF0IHRoaXMgZW5saWdodGVubWVudCB3aWxsIGhh dmUgbm8gZWZmZWN0IGlmIHRoZSBndWVzdCBpcwordXNpbmcgQVBJQ3YgcG9zdGVkIGludGVycnVw dHMuCisKID1pdGVtIEI8ZGVmYXVsdHM+CiAKIFRoaXMgaXMgYSBzcGVjaWFsIHZhbHVlIHRoYXQg ZW5hYmxlcyB0aGUgZGVmYXVsdCBzZXQgb2YgZ3JvdXBzLCB3aGljaAotaXMgY3VycmVudGx5IHRo ZSBCPGJhc2U+LCBCPGZyZXE+IGFuZCBCPHRpbWVfcmVmX2NvdW50PiBncm91cHMuCitpcyBjdXJy ZW50bHkgdGhlIEI8YmFzZT4sIEI8ZnJlcT4sIEI8dGltZV9yZWZfY291bnQ+IGFuZCBCPGFwaWNf YXNzaXN0PgorZ3JvdXBzLgogCiA9aXRlbSBCPGFsbD4KIApkaWZmIC0tZ2l0IGEvdG9vbHMvbGli eGwvbGlieGwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKaW5kZXggZjllM2VmNS4uMDU1YTdiNCAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bC5o CkBAIC0yMTgsNiArMjE4LDEyIEBACiAjZGVmaW5lIExJQlhMX0hBVkVfU09GVF9SRVNFVCAxCiAK IC8qCisgKiBMSUJYTF9IQVZFX0FQSUNfQVNTSVNUIGluZGljYXRlcyB0aGF0IHRoZSAnYXBpY19h c3Npc3QnIHZhbHVlCisgKiBpcyBwcmVzZW50IGluIHRoZSB2aXJpZGlhbiBlbmxpZ2h0ZW5tZW50 IGVudW1lcmF0aW9uLgorICovCisjZGVmaW5lIExJQlhMX0hBVkVfQVBJQ19BU1NJU1QgMQorCisv KgogICogbGlieGwgQUJJIGNvbXBhdGliaWxpdHkKICAqCiAgKiBUaGUgb25seSBndWFyYW50ZWUg d2hpY2ggbGlieGwgbWFrZXMgcmVnYXJkaW5nIEFCSSBjb21wYXRpYmlsaXR5CmRpZmYgLS1naXQg YS90b29scy9saWJ4bC9saWJ4bF9kb20uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCmluZGV4 IGI4MjViOTguLjA5ZDNiY2EgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCisr KyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCkBAIC0yMTEsNiArMjExLDcgQEAgc3RhdGljIGlu dCBodm1fc2V0X3ZpcmlkaWFuX2ZlYXR1cmVzKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlk LAogICAgICAgICBsaWJ4bF9iaXRtYXBfc2V0KCZlbmxpZ2h0ZW5tZW50cywgTElCWExfVklSSURJ QU5fRU5MSUdIVEVOTUVOVF9CQVNFKTsKICAgICAgICAgbGlieGxfYml0bWFwX3NldCgmZW5saWdo dGVubWVudHMsIExJQlhMX1ZJUklESUFOX0VOTElHSFRFTk1FTlRfRlJFUSk7CiAgICAgICAgIGxp YnhsX2JpdG1hcF9zZXQoJmVubGlnaHRlbm1lbnRzLCBMSUJYTF9WSVJJRElBTl9FTkxJR0hURU5N RU5UX1RJTUVfUkVGX0NPVU5UKTsKKyAgICAgICAgbGlieGxfYml0bWFwX3NldCgmZW5saWdodGVu bWVudHMsIExJQlhMX1ZJUklESUFOX0VOTElHSFRFTk1FTlRfQVBJQ19BU1NJU1QpOwogICAgIH0K IAogICAgIGxpYnhsX2Zvcl9lYWNoX3NldF9iaXQodiwgaW5mby0+dS5odm0udmlyaWRpYW5fZW5h YmxlKSB7CkBAIC0yNTMsNiArMjU0LDkgQEAgc3RhdGljIGludCBodm1fc2V0X3ZpcmlkaWFuX2Zl YXR1cmVzKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgIGlmIChsaWJ4bF9iaXRt YXBfdGVzdCgmZW5saWdodGVubWVudHMsIExJQlhMX1ZJUklESUFOX0VOTElHSFRFTk1FTlRfSENB TExfUkVNT1RFX1RMQl9GTFVTSCkpCiAgICAgICAgIG1hc2sgfD0gSFZNUFZfaGNhbGxfcmVtb3Rl X3RsYl9mbHVzaDsKIAorICAgIGlmIChsaWJ4bF9iaXRtYXBfdGVzdCgmZW5saWdodGVubWVudHMs IExJQlhMX1ZJUklESUFOX0VOTElHSFRFTk1FTlRfQVBJQ19BU1NJU1QpKQorICAgICAgICBtYXNr IHw9IEhWTVBWX2FwaWNfYXNzaXN0OworCiAgICAgaWYgKG1hc2sgIT0gMCAmJgogICAgICAgICB4 Y19odm1fcGFyYW1fc2V0KENUWC0+eGNoLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlk LApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlieGwv bGlieGxfdHlwZXMuaWRsCmluZGV4IDYzMmMwMDkuLmUzYmU5NTcgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2xpYnhsL2xpYnhsX3R5cGVzLmlkbAorKysgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwK QEAgLTIyMSw2ICsyMjEsNyBAQCBsaWJ4bF92aXJpZGlhbl9lbmxpZ2h0ZW5tZW50ID0gRW51bWVy YXRpb24oInZpcmlkaWFuX2VubGlnaHRlbm1lbnQiLCBbCiAgICAgKDIsICJ0aW1lX3JlZl9jb3Vu dCIpLAogICAgICgzLCAicmVmZXJlbmNlX3RzYyIpLAogICAgICg0LCAiaGNhbGxfcmVtb3RlX3Rs Yl9mbHVzaCIpLAorICAgICg1LCAiYXBpY19hc3Npc3QiKSwKICAgICBdKQogCiBsaWJ4bF9oZHR5 cGUgPSBFbnVtZXJhdGlvbigiaGR0eXBlIiwgWwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2 bS92aXJpZGlhbi5jIGIveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi5jCmluZGV4IGY3MjZkZjEu LjQxMDMyMGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYworKysgYi94 ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMKQEAgLTIyNywxMSArMjI3LDYgQEAgc3RhdGljIHZv aWQgaW5pdGlhbGl6ZV9hcGljX2Fzc2lzdChzdHJ1Y3QgdmNwdSAqdikKICAgICB2b2lkICp2YTsK IAogICAgIC8qCi0gICAgICogV2UgZG9uJ3QgeWV0IG1ha2UgdXNlIG9mIHRoZSBBUElDIGFzc2lz dCBwYWdlIGJ1dCBieSBzZXR0aW5nCi0gICAgICogdGhlIENQVUlEM0FfTVNSX0FQSUNfQUNDRVNT IGJpdCBpbiBDUFVJRCBsZWFmIDQwMDAwMDAzIHdlIGFyZSBkdXR5Ci0gICAgICogYm91bmQgdG8g c3VwcG9ydCB0aGUgTVNSLiBXZSB0aGVyZWZvcmUgZG8ganVzdCBlbm91Z2ggdG8ga2VlcCB3aW5k b3dzCi0gICAgICogaGFwcHkuCi0gICAgICoKICAgICAgKiBTZWUgc2VjdGlvbiAxMy4zLjQuMSBv ZiB0aGUgc3BlY2lmaWNhdGlvbiBmb3IgZGV0YWlscyBvZiB0aGlzCiAgICAgICogZW5saWdodGVu bWVudC4KICAgICAgKi8KQEAgLTI1NCw3ICsyNDksMTUgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6 ZV9hcGljX2Fzc2lzdChzdHJ1Y3QgdmNwdSAqdikKIAogICAgICoodWludDMyX3QgKil2YSA9IDA7 CiAKLSAgICB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNzaXN0LnZhID0gdmE7Cisg ICAgaWYgKCB2aXJpZGlhbl9mZWF0dXJlX21hc2sodi0+ZG9tYWluKSAmIEhWTVBWX2FwaWNfYXNz aXN0ICkKKyAgICB7CisgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4uYXBpY19hc3Np c3QudmEgPSB2YTsKKyAgICAgICAgdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lz dC52ZWN0b3IgPSAtMTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHVubWFwX2RvbWFp bl9wYWdlX2dsb2JhbCh2YSk7CisgICAgcHV0X3BhZ2VfYW5kX3R5cGUocGFnZSk7CiAgICAgcmV0 dXJuOwogCiAgZmFpbDoKQEAgLTI3OCw2ICsyODEsNTMgQEAgc3RhdGljIHZvaWQgdGVhcmRvd25f YXBpY19hc3Npc3Qoc3RydWN0IHZjcHUgKnYpCiAgICAgcHV0X3BhZ2VfYW5kX3R5cGUocGFnZSk7 CiB9CiAKK3ZvaWQgdmlyaWRpYW5fc3RhcnRfYXBpY19hc3Npc3Qoc3RydWN0IHZjcHUgKnYsIGlu dCB2ZWN0b3IpCit7CisgICAgdWludDMyX3QgKnZhID0gdi0+YXJjaC5odm1fdmNwdS52aXJpZGlh bi5hcGljX2Fzc2lzdC52YTsKKworICAgIGlmICggIXZhICkKKyAgICAgICAgcmV0dXJuOworCisg ICAgLyoKKyAgICAgKiBJZiB0aGVyZSBpcyBhbHJlYWR5IGFuIGFzc2lzdCBwZW5kaW5nIHRoZW4g c29tZXRoaW5nIGhhcyBnb25lCisgICAgICogd3JvbmcgYW5kIHRoZSBWTSB3aWxsIG1vc3QgbGlr ZWx5IGhhbmcgc28gZm9yY2UgYSBjcmFzaCBub3cKKyAgICAgKiB0byBtYWtlIHRoZSBwcm9ibGVt IGNsZWFyLgorICAgICAqLworICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGlj X2Fzc2lzdC52ZWN0b3IgPj0gMCApCisgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21haW4pOwor CisgICAgdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC52ZWN0b3IgPSB2ZWN0 b3I7CisgICAgKnZhIHw9IDF1OworfQorCitpbnQgdmlyaWRpYW5fY29tcGxldGVfYXBpY19hc3Np c3Qoc3RydWN0IHZjcHUgKnYpCit7CisgICAgdWludDMyX3QgKnZhID0gdi0+YXJjaC5odm1fdmNw dS52aXJpZGlhbi5hcGljX2Fzc2lzdC52YTsKKyAgICBpbnQgdmVjdG9yOworCisgICAgaWYgKCAh dmEgKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBpZiAoICp2YSAmIDF1ICkKKyAgICAgICAg cmV0dXJuIC0xOyAvKiBJbnRlcnJ1cHQgbm90IHlldCBwcm9jZXNzZWQgYnkgdGhlIGd1ZXN0LiAq LworCisgICAgdmVjdG9yID0gdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC52 ZWN0b3I7CisgICAgdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC52ZWN0b3Ig PSAtMTsKKworICAgIHJldHVybiB2ZWN0b3I7Cit9CisKK3ZvaWQgdmlyaWRpYW5fYWJvcnRfYXBp Y19hc3Npc3Qoc3RydWN0IHZjcHUgKnYpCit7CisgICAgdWludDMyX3QgKnZhID0gdi0+YXJjaC5o dm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC52YTsKKworICAgIGlmICggIXZhICkKKyAgICAg ICAgcmV0dXJuOworCisgICAgKnZhICY9IH4xdTsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LnZpcmlk aWFuLmFwaWNfYXNzaXN0LnZlY3RvciA9IC0xOworfQorCiBzdGF0aWMgdm9pZCB1cGRhdGVfcmVm ZXJlbmNlX3RzYyhzdHJ1Y3QgZG9tYWluICpkLCBib29sX3QgaW5pdGlhbGl6ZSkKIHsKICAgICB1 bnNpZ25lZCBsb25nIGdtZm4gPSBkLT5hcmNoLmh2bV9kb21haW4udmlyaWRpYW4ucmVmZXJlbmNl X3RzYy5maWVsZHMucGZuOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYyBi L3hlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMKaW5kZXggMDFhODQzMC4uNGFmMjEwNyAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3Zs YXBpYy5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8YXNtL2h2bS9zdXBwb3J0Lmg+CiAj aW5jbHVkZSA8YXNtL2h2bS92bXgvdm14Lmg+CiAjaW5jbHVkZSA8YXNtL2h2bS9uZXN0ZWRodm0u aD4KKyNpbmNsdWRlIDxhc20vaHZtL3ZpcmlkaWFuLmg+CiAjaW5jbHVkZSA8cHVibGljL2h2bS9p b3JlcS5oPgogI2luY2x1ZGUgPHB1YmxpYy9odm0vcGFyYW1zLmg+CiAKQEAgLTk1LDYgKzk2LDE4 IEBAIHN0YXRpYyBpbnQgdmxhcGljX2ZpbmRfaGlnaGVzdF92ZWN0b3IoY29uc3Qgdm9pZCAqYml0 bWFwKQogICAgIHJldHVybiAoZmxzKHdvcmRbd29yZF9vZmZzZXQqNF0pIC0gMSkgKyAod29yZF9v ZmZzZXQgKiAzMik7CiB9CiAKK3N0YXRpYyBpbnQgdmxhcGljX2ZpbmRfbG93ZXN0X3ZlY3Rvcihj b25zdCB2b2lkICpiaXRtYXApCit7CisgICAgY29uc3QgdWludDMyX3QgKndvcmQgPSBiaXRtYXA7 CisgICAgdW5zaWduZWQgaW50IHdvcmRfb2Zmc2V0OworCisgICAgLyogV29yayBmb3J3YXJkcyB0 aHJvdWdoIHRoZSBiaXRtYXAgKGZpcnN0IDMyLWJpdCB3b3JkIGluIGV2ZXJ5IGZvdXIpLiAqLwor ICAgIGZvciAoIHdvcmRfb2Zmc2V0ID0gMDsgd29yZF9vZmZzZXQgPCBOUl9WRUNUT1JTIC8gMzI7 IHdvcmRfb2Zmc2V0KyspCisgICAgICAgIGlmICggd29yZFt3b3JkX29mZnNldCAqIDRdICkKKyAg ICAgICAgICAgIHJldHVybiAoZmZzKHdvcmRbd29yZF9vZmZzZXQgKiA0XSkgLSAxKSArICh3b3Jk X29mZnNldCAqIDMyKTsKKworICAgIHJldHVybiAtMTsKK30KIAogLyoKICAqIElSUi1zcGVjaWZp YyBiaXRtYXAgdXBkYXRlICYgc2VhcmNoIHJvdXRpbmVzLgpAQCAtMTE1Nyw3ICsxMTcwLDcgQEAg aW50IHZsYXBpY192aXJ0dWFsX2ludHJfZGVsaXZlcnlfZW5hYmxlZCh2b2lkKQogaW50IHZsYXBp Y19oYXNfcGVuZGluZ19pcnEoc3RydWN0IHZjcHUgKnYpCiB7CiAgICAgc3RydWN0IHZsYXBpYyAq dmxhcGljID0gdmNwdV92bGFwaWModik7Ci0gICAgaW50IGlyciwgaXNyOworICAgIGludCBpcnIs IHZlY3RvciwgaXNyOwogCiAgICAgaWYgKCAhdmxhcGljX2VuYWJsZWQodmxhcGljKSApCiAgICAg ICAgIHJldHVybiAtMTsKQEAgLTExNzAsMTAgKzExODMsMjcgQEAgaW50IHZsYXBpY19oYXNfcGVu ZGluZ19pcnEoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgICAhbmVzdGVkaHZtX3ZjcHVfaW5fZ3Vl c3Rtb2RlKHYpICkKICAgICAgICAgcmV0dXJuIGlycjsKIAorICAgIC8qCisgICAgICogSWYgQVBJ QyBhc3Npc3Qgd2FzIHVzZWQgdGhlbiB0aGVyZSBtYXkgaGF2ZSBiZWVuIG5vIEVPSSBzbworICAg ICAqIHdlIG5lZWQgdG8gY2xlYXIgdGhlIHJlcXVpc2l0ZSBiaXQgZnJvbSB0aGUgSVNSIGhlcmUs IGJlZm9yZQorICAgICAqIGNvbXBhcmluZyB3aXRoIHRoZSBJUlIuCisgICAgICovCisgICAgdmVj dG9yID0gdmlyaWRpYW5fY29tcGxldGVfYXBpY19hc3Npc3Qodik7CisgICAgaWYgKCB2ZWN0b3Ig IT0gLTEgKQorICAgICAgICB2bGFwaWNfY2xlYXJfdmVjdG9yKHZlY3RvciwgJnZsYXBpYy0+cmVn cy0+ZGF0YVtBUElDX0lTUl0pOworCiAgICAgaXNyID0gdmxhcGljX2ZpbmRfaGlnaGVzdF9pc3Io dmxhcGljKTsKICAgICBpc3IgPSAoaXNyICE9IC0xKSA/IGlzciA6IDA7CiAgICAgaWYgKCAoaXNy ICYgMHhmMCkgPj0gKGlyciAmIDB4ZjApICkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAq IFRoZXJlJ3MgYWxyZWFkeSBhIGhpZ2hlciBwcmlvcml0eSB2ZWN0b3IgcGVuZGluZyBzbworICAg ICAgICAgKiB3ZSBuZWVkIHRvIGFib3J0IGFueSBwcmV2aW91cyBBUElDIGFzc2lzdCB0byBlbnN1 cmUgdGhlcmUKKyAgICAgICAgICogaXMgYW4gRU9JLgorICAgICAgICAgKi8KKyAgICAgICAgdmly aWRpYW5fYWJvcnRfYXBpY19hc3Npc3Qodik7CiAgICAgICAgIHJldHVybiAtMTsKKyAgICB9CiAK ICAgICByZXR1cm4gaXJyOwogfQpAQCAtMTE4MSwxMyArMTIxMSwzMSBAQCBpbnQgdmxhcGljX2hh c19wZW5kaW5nX2lycShzdHJ1Y3QgdmNwdSAqdikKIGludCB2bGFwaWNfYWNrX3BlbmRpbmdfaXJx KHN0cnVjdCB2Y3B1ICp2LCBpbnQgdmVjdG9yLCBib29sX3QgZm9yY2VfYWNrKQogewogICAgIHN0 cnVjdCB2bGFwaWMgKnZsYXBpYyA9IHZjcHVfdmxhcGljKHYpOworICAgIGludCBpc3I7CiAKLSAg ICBpZiAoIGZvcmNlX2FjayB8fCAhdmxhcGljX3ZpcnR1YWxfaW50cl9kZWxpdmVyeV9lbmFibGVk KCkgKQotICAgIHsKLSAgICAgICAgdmxhcGljX3NldF92ZWN0b3IodmVjdG9yLCAmdmxhcGljLT5y ZWdzLT5kYXRhW0FQSUNfSVNSXSk7Ci0gICAgICAgIHZsYXBpY19jbGVhcl9pcnIodmVjdG9yLCB2 bGFwaWMpOwotICAgIH0KKyAgICBpZiAoICFmb3JjZV9hY2sgJiYKKyAgICAgICAgIHZsYXBpY192 aXJ0dWFsX2ludHJfZGVsaXZlcnlfZW5hYmxlZCgpICkKKyAgICAgICAgcmV0dXJuIDE7CisKKyAg ICAvKiBJZiB0aGVyZSdzIG5vIGNoYW5jZSBvZiB1c2luZyBBUElDIGFzc2lzdCB0aGVuIGJhaWwg bm93LiAqLworICAgIGlmICggIWhhc192aXJpZGlhbl9hcGljX2Fzc2lzdCh2LT5kb21haW4pIHx8 CisgICAgICAgICB2bGFwaWNfdGVzdF92ZWN0b3IodmVjdG9yLCAmdmxhcGljLT5yZWdzLT5kYXRh W0FQSUNfVE1SXSkgKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICBpc3IgPSB2bGFwaWNfZmlu ZF9sb3dlc3RfdmVjdG9yKCZ2bGFwaWMtPnJlZ3MtPmRhdGFbQVBJQ19JU1JdKTsKKyAgICBpZiAo IGlzciA+PSAwICYmIGlzciA8IHZlY3RvciApCisgICAgICAgIGdvdG8gZG9uZTsKKworICAgIC8q CisgICAgICogVGhpcyB2ZWN0b3IgaXMgZWRnZSB0cmlnZ2VyZWQgYW5kIHRoZXJlIGFyZSBubyBs b3dlciBwcmlvcml0eQorICAgICAqIHZlY3RvcnMgcGVuZGluZywgc28gd2UgY2FuIHVzZSBBUElD IGFzc2lzdCB0byBhdm9pZCBleGl0aW5nCisgICAgICogZm9yIEVPSS4KKyAgICAgKi8KKyAgICB2 aXJpZGlhbl9zdGFydF9hcGljX2Fzc2lzdCh2LCB2ZWN0b3IpOwogCisgZG9uZToKKyAgICB2bGFw aWNfc2V0X3ZlY3Rvcih2ZWN0b3IsICZ2bGFwaWMtPnJlZ3MtPmRhdGFbQVBJQ19JU1JdKTsKKyAg ICB2bGFwaWNfY2xlYXJfaXJyKHZlY3RvciwgdmxhcGljKTsKICAgICByZXR1cm4gMTsKIH0KIApk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmggYi94ZW4vaW5jbHVkZS9h c20teDg2L2h2bS9odm0uaAppbmRleCBiOGFiNWIxLi43NTFhYjFjIDEwMDY0NAotLS0gYS94ZW4v aW5jbHVkZS9hc20teDg2L2h2bS9odm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9o dm0uaApAQCAtNDAyLDYgKzQwMiw5IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBodm1f Z2V0X3NoYWRvd19nc19iYXNlKHN0cnVjdCB2Y3B1ICp2KQogI2RlZmluZSBoYXNfdmlyaWRpYW5f dGltZV9yZWZfY291bnQoZCkgXAogICAgIChpc192aXJpZGlhbl9kb21haW4oZCkgJiYgKHZpcmlk aWFuX2ZlYXR1cmVfbWFzayhkKSAmIEhWTVBWX3RpbWVfcmVmX2NvdW50KSkKIAorI2RlZmluZSBo YXNfdmlyaWRpYW5fYXBpY19hc3Npc3QoZCkgXAorICAgIChpc192aXJpZGlhbl9kb21haW4oZCkg JiYgKHZpcmlkaWFuX2ZlYXR1cmVfbWFzayhkKSAmIEhWTVBWX2FwaWNfYXNzaXN0KSkKKwogdm9p ZCBodm1faHlwZXJ2aXNvcl9jcHVpZF9sZWFmKHVpbnQzMl90IHN1Yl9pZHgsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmVheCwgdWludDMyX3QgKmVieCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqZWN4LCB1aW50MzJfdCAqZWR4KTsK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZpcmlkaWFuLmggYi94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS92aXJpZGlhbi5oCmluZGV4IDE5ZWNjMDYuLjdmMjgxYjIgMTAwNjQ0 Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZpcmlkaWFuLmgKKysrIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9odm0vdmlyaWRpYW4uaApAQCAtMjQsNiArMjQsNyBAQCBzdHJ1Y3QgdmlyaWRp YW5fdmNwdQogICAgIHN0cnVjdCB7CiAgICAgICAgIHVuaW9uIHZpcmlkaWFuX2FwaWNfYXNzaXN0 IG1zcjsKICAgICAgICAgdm9pZCAqdmE7CisgICAgICAgIGludCB2ZWN0b3I7CiAgICAgfSBhcGlj X2Fzc2lzdDsKIH07CiAKQEAgLTEyMiw2ICsxMjMsMTAgQEAgdm9pZCB2aXJpZGlhbl90aW1lX3Jl Zl9jb3VudF90aGF3KHN0cnVjdCBkb21haW4gKmQpOwogCiB2b2lkIHZpcmlkaWFuX3ZjcHVfZGVp bml0KHN0cnVjdCB2Y3B1ICp2KTsKIAordm9pZCB2aXJpZGlhbl9zdGFydF9hcGljX2Fzc2lzdChz dHJ1Y3QgdmNwdSAqdiwgaW50IHZlY3Rvcik7CitpbnQgdmlyaWRpYW5fY29tcGxldGVfYXBpY19h c3Npc3Qoc3RydWN0IHZjcHUgKnYpOwordm9pZCB2aXJpZGlhbl9hYm9ydF9hcGljX2Fzc2lzdChz dHJ1Y3QgdmNwdSAqdik7CisKICNlbmRpZiAvKiBfX0FTTV9YODZfSFZNX1ZJUklESUFOX0hfXyAq LwogCiAvKgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9wYXJhbXMuaCBiL3hl bi9pbmNsdWRlL3B1YmxpYy9odm0vcGFyYW1zLmgKaW5kZXggNzNkNDcxOC4uZTY5YzcyYyAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9wYXJhbXMuaAorKysgYi94ZW4vaW5jbHVk ZS9wdWJsaWMvaHZtL3BhcmFtcy5oCkBAIC0xMTUsMTIgKzExNSwxNyBAQAogI2RlZmluZSBfSFZN UFZfaGNhbGxfcmVtb3RlX3RsYl9mbHVzaCA0CiAjZGVmaW5lIEhWTVBWX2hjYWxsX3JlbW90ZV90 bGJfZmx1c2ggKDEgPDwgX0hWTVBWX2hjYWxsX3JlbW90ZV90bGJfZmx1c2gpCiAKKy8qIFVzZSBB UElDIGFzc2lzdCAqLworI2RlZmluZSBfSFZNUFZfYXBpY19hc3Npc3QgNQorI2RlZmluZSBIVk1Q Vl9hcGljX2Fzc2lzdCAoMSA8PCBfSFZNUFZfYXBpY19hc3Npc3QpCisKICNkZWZpbmUgSFZNUFZf ZmVhdHVyZV9tYXNrIFwKICAgICAgICAgKEhWTVBWX2Jhc2VfZnJlcSB8IFwKICAgICAgICAgIEhW TVBWX25vX2ZyZXEgfCBcCiAgICAgICAgICBIVk1QVl90aW1lX3JlZl9jb3VudCB8IFwKICAgICAg ICAgIEhWTVBWX3JlZmVyZW5jZV90c2MgfCBcCi0gICAgICAgICBIVk1QVl9oY2FsbF9yZW1vdGVf dGxiX2ZsdXNoKQorICAgICAgICAgSFZNUFZfaGNhbGxfcmVtb3RlX3RsYl9mbHVzaCB8IFwKKyAg ICAgICAgIEhWTVBWX2FwaWNfYXNzaXN0KQogCiAjZW5kaWYKIAotLSAKMi4xLjQKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=