From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [RFC XEN PATCH v2 05/15] xen/x86: add XENMEM_populate_pmem_map to map host pmem pages to HVM domain Date: Mon, 20 Mar 2017 08:09:39 +0800 Message-ID: <20170320000949.24675-6-haozhong.zhang@intel.com> References: <20170320000949.24675-1-haozhong.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170320000949.24675-1-haozhong.zhang@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Haozhong Zhang , Wei Liu , Andrew Cooper , Ian Jackson , Jan Beulich , Konrad Rzeszutek Wilk , Dan Williams , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org WEVOTUVNX3BvcHVsYXRlX3BtZW1tYXAgaXMgdXNlZCBieSB0b29sc3RhY2sgdG8gbWFwIHRoZSBz cGVjaWZpZWQgaG9zdApwbWVtIHBhZ2VzIHRvIHRoZSBzcGVjaWZpZWQgZ3Vlc3QgcGh5c2ljYWwg YWRkcmVzcy4gT25seSBwbWVtIHBhZ2VzCnRoYXQgaGF2ZSBiZWVuIHNldHVwIHZpYSBYRU5fU1lT Q1RMX252ZGltbV9wbWVtX3NldHVwIGNhbiBiZSBtYXBwZWQKdmlhIFhFTk1FTV9wb3B1bGF0ZV9w bWVtX21hcC4gQmVjYXVzZSBYRU5fU1lTQ1RMX252ZGltbV9wbWVtX3NldHVwIG9ubHkKd29ya3Mg b24geDg2LCBYRU5NRU1fcG9wdWxhdGVfcG1lbV9tYXAgaXMgbWFkZSB0byB3b3JrIG9ubHkgb24g eDg2IGFzCndlbGwgYW5kIHJldHVybiAtRU5PU1lTIG9uIG90aGVyIGFyY2hpdGVjdHVyZXMuCgpT aWduZWQtb2ZmLWJ5OiBIYW96aG9uZyBaaGFuZyA8aGFvemhvbmcuemhhbmdAaW50ZWwuY29tPgot LS0KQ2M6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgpDYzogSWFuIEph Y2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBj aXRyaXguY29tPgpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3 IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCkNoYW5nZXMgaW4gdjI6CiAqIFJl bmFtZSAqX3BtZW1tYXAgdG8gKl9wbWVtX21hcC4KICogQWRkIFhTTSBjaGVjayBmbyBYRU5NRU1f cG9wdWxhdGVfcG1lbV9tYXAuCiAqIEFkZCBjb21wYXQgY29kZSBmb3IgWEVOTUVNX3BvcHVsYXRl X3BtZW1fbWFwLgogKiBBZGQgc3R1YiBmb3IgcG1lbV9wb3B1bGF0ZSgpIG9uIG5vbi14ODYgYXJj aGl0ZWN0dXJlcy4KICogQWRkIGNoZWNrIHRvIGF2b2lkIHBvcHVsYXRlIHBtZW0gcGFnZXMgdG8g ZG9tMC4KICogTWVyZ2UgdjEgcGF0Y2ggNSAieGVuL3g4NjogcmVsZWFzZSBwbWVtIHBhZ2VzIGF0 IGRvbWFpbiBkZXN0cm95Ii4KLS0tCiB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYg ICB8ICAgMiArLQogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAgfCAgMTcgKysr KwogdG9vbHMvbGlieGMveGNfZG9tYWluLmMgICAgICAgICAgICAgfCAgMTUgKysrKwogeGVuL2Fy Y2gveDg2L2RvbWFpbi5jICAgICAgICAgICAgICAgfCAgIDcgKysKIHhlbi9jb21tb24vY29tcGF0 L21lbW9yeS5jICAgICAgICAgIHwgICAxICsKIHhlbi9jb21tb24vZG9tYWluLmMgICAgICAgICAg ICAgICAgIHwgICAzICsKIHhlbi9jb21tb24vbWVtb3J5LmMgICAgICAgICAgICAgICAgIHwgIDQz ICsrKysrKysrKysKIHhlbi9jb21tb24vcG1lbS5jICAgICAgICAgICAgICAgICAgIHwgMTUxICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogeGVuL2luY2x1ZGUvcHVibGljL21l bW9yeS5oICAgICAgICAgfCAgMTQgKysrLQogeGVuL2luY2x1ZGUveGVuL3BtZW0uaCAgICAgICAg ICAgICAgfCAgMjQgKysrKysrCiB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCAgICAgICAgICAgICB8 ICAgMyArCiB4ZW4vaW5jbHVkZS94c20vZHVtbXkuaCAgICAgICAgICAgICB8ICAxMSArKysKIHhl bi9pbmNsdWRlL3hzbS94c20uaCAgICAgICAgICAgICAgIHwgIDEyICsrKwogeGVuL3hzbS9kdW1t eS5jICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogeGVuL3hzbS9mbGFzay9ob29rcy5jICAg ICAgICAgICAgICAgfCAgMTMgKysrKwogeGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3Rv cnMgfCAgIDIgKwogMTYgZmlsZXMgY2hhbmdlZCwgMzE3IGluc2VydGlvbnMoKyksIDUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmIGIv dG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmCmluZGV4IGVkMGRmNGYwMTAuLmJjNDE3 NmMwODkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgorKysg Yi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYKQEAgLTU1LDcgKzU1LDcgQEAgZGVm aW5lKGBjcmVhdGVfZG9tYWluX2NvbW1vbicsIGAKIAkJCXBzcl9jbXRfb3AgcHNyX2NhdF9vcCBz b2Z0X3Jlc2V0IH07CiAJYWxsb3cgJDEgJDI6c2VjdXJpdHkgY2hlY2tfY29udGV4dDsKIAlhbGxv dyAkMSAkMjpzaGFkb3cgZW5hYmxlOwotCWFsbG93ICQxICQyOm1tdSB7IG1hcF9yZWFkIG1hcF93 cml0ZSBhZGp1c3QgbWVtb3J5bWFwIHBoeXNtYXAgcGlucGFnZSBtbXVleHRfb3AgdXBkYXRlbXAg fTsKKwlhbGxvdyAkMSAkMjptbXUgeyBtYXBfcmVhZCBtYXBfd3JpdGUgYWRqdXN0IG1lbW9yeW1h cCBwaHlzbWFwIHBpbnBhZ2UgbW11ZXh0X29wIHVwZGF0ZW1wIHBvcHVsYXRlX3BtZW1fbWFwIH07 CiAJYWxsb3cgJDEgJDI6Z3JhbnQgc2V0dXA7CiAJYWxsb3cgJDEgJDI6aHZtIHsgY2FjaGVhdHRy IGdldHBhcmFtIGh2bWN0bCBzZXRodm1jCiAJCQlzZXRwYXJhbSBuZXN0ZWQgYWx0cDJtaHZtIGFs dHAybWh2bV9vcCBkbSB9OwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJs LmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAppbmRleCBkNGUzMDAyYzllLi5mOGE5 NTgxNTA2IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAorKysgYi90 b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMjU1Myw2ICsyNTUzLDIzIEBAIGludCB4 Y19udmRpbW1fcG1lbV9zZXR1cCh4Y19pbnRlcmZhY2UgKnhjaCwKICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIHNtZm4sIHVuc2lnbmVkIGxvbmcgZW1mbiwKICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1nbXRfc21mbiwgdW5zaWduZWQgbG9uZyBt Z210X2VtZm4pOwogCisvKgorICogTWFwIGhvc3QgcG1lbSBwYWdlcyB0byBhIGRvbWFpbi4KKyAq CisgKiBQYXJhbWV0ZXJzOgorICogIHhjaDogICAgIHhjIGludGVyZmFjZSBoYW5kbGVyCisgKiAg ZG9taWQ6ICAgdGhlIHRhcmdldCBkb21haW4gaWQKKyAqICBtZm46ICAgICBzdGFydCBNRk4gb2Yg dGhlIGhvc3QgcG1lbSBwYWdlcyB0byBiZSBtYXBwZWQKKyAqICBucl9tZm5zOiB0aGUgbnVtYmVy IG9mIGhvc3QgcG1lbSBwYWdlcyB0byBiZSBtYXBwZWQKKyAqICBnZm46ICAgICBzdGFydCBHRk4g b2YgdGhlIHRhcmdldCBndWVzdCBwaHlzaWNhbCBwYWdlcworICoKKyAqIFJldHVybjoKKyAqICAw IG9uIHN1Y2Nlc3M7IG5vbi16ZXJvIGVycm9yIGNvZGUgZm9yIGZhaWx1cmVzLgorICovCitpbnQg eGNfZG9tYWluX3BvcHVsYXRlX3BtZW1tYXAoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRv bWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuLCB1 bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBsb25nIG5yX21mbnMpOworCiAvKiBDb21wYXQgc2hpbXMgKi8KICNpbmNsdWRlICJ4ZW5jdHJs X2NvbXBhdC5oIgogCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19kb21haW4uYyBiL3Rvb2xz L2xpYnhjL3hjX2RvbWFpbi5jCmluZGV4IGQ4NjJlNTM3ZDkuLjljY2RkYTA4NmQgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhjL3hjX2RvbWFpbi5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX2RvbWFpbi5j CkBAIC0yMjkxLDYgKzIyOTEsMjEgQEAgaW50IHhjX2RvbWFpbl9zb2Z0X3Jlc2V0KHhjX2ludGVy ZmFjZSAqeGNoLAogICAgIGRvbWN0bC5kb21haW4gPSAoZG9taWRfdClkb21pZDsKICAgICByZXR1 cm4gZG9fZG9tY3RsKHhjaCwgJmRvbWN0bCk7CiB9CisKK2ludCB4Y19kb21haW5fcG9wdWxhdGVf cG1lbW1hcCh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGxvbmcgZ2ZuLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnJfbWZucykKK3sK KyAgICBzdHJ1Y3QgeGVuX3BtZW1fbWFwIGFyZ3MgPSB7CisgICAgICAgIC5kb21pZCAgID0gZG9t aWQsCisgICAgICAgIC5tZm4gICAgID0gbWZuLAorICAgICAgICAuZ2ZuICAgICA9IGdmbiwKKyAg ICAgICAgLm5yX21mbnMgPSBucl9tZm5zLAorICAgIH07CisKKyAgICByZXR1cm4gZG9fbWVtb3J5 X29wKHhjaCwgWEVOTUVNX3BvcHVsYXRlX3BtZW1fbWFwLCAmYXJncywgc2l6ZW9mKGFyZ3MpKTsK K30KKwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9kb21haW4uYyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwppbmRleCA0NzlhZWU2 NDFmLi4yMzMzNjAzZjNlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tYWluLmMKKysrIGIv eGVuL2FyY2gveDg2L2RvbWFpbi5jCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8eGVuL3dh aXQuaD4KICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+CiAjaW5jbHVkZSA8eGVuL2xpdmVw YXRjaC5oPgorI2luY2x1ZGUgPHhlbi9wbWVtLmg+CiAjaW5jbHVkZSA8cHVibGljL3N5c2N0bC5o PgogI2luY2x1ZGUgPHB1YmxpYy9odm0vaHZtX3ZjcHUuaD4KICNpbmNsdWRlIDxhc20vcmVncy5o PgpAQCAtMjM1Miw2ICsyMzUzLDEyIEBAIGludCBkb21haW5fcmVsaW5xdWlzaF9yZXNvdXJjZXMo c3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgaWYgKCByZXQgKQogICAgICAgICAgICAgcmV0dXJu IHJldDsKIAorI2lmZGVmIENPTkZJR19QTUVNCisgICAgICAgIHJldCA9IHBtZW1fdGVhcmRvd24o ZCk7CisgICAgICAgIGlmICggcmV0ICkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisjZW5kaWYg LyogQ09ORklHX1BNRU0gKi8KKwogICAgICAgICAvKiBUZWFyIGRvd24gcGFnaW5nLWFzc2lzdGFu Y2Ugc3R1ZmYuICovCiAgICAgICAgIHJldCA9IHBhZ2luZ190ZWFyZG93bihkKTsKICAgICAgICAg aWYgKCByZXQgKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9jb21wYXQvbWVtb3J5LmMgYi94ZW4v Y29tbW9uL2NvbXBhdC9tZW1vcnkuYwppbmRleCBhMzdhOTQ4MzMxLi4xOTM4MmY2ZGZjIDEwMDY0 NAotLS0gYS94ZW4vY29tbW9uL2NvbXBhdC9tZW1vcnkuYworKysgYi94ZW4vY29tbW9uL2NvbXBh dC9tZW1vcnkuYwpAQCAtNTIzLDYgKzUyMyw3IEBAIGludCBjb21wYXRfbWVtb3J5X29wKHVuc2ln bmVkIGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgY29tcGF0KQogICAgICAg ICBjYXNlIFhFTk1FTV9hZGRfdG9fcGh5c21hcDoKICAgICAgICAgY2FzZSBYRU5NRU1fcmVtb3Zl X2Zyb21fcGh5c21hcDoKICAgICAgICAgY2FzZSBYRU5NRU1fYWNjZXNzX29wOgorICAgICAgICBj YXNlIFhFTk1FTV9wb3B1bGF0ZV9wbWVtX21hcDoKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAg ICAgIGNhc2UgWEVOTUVNX2dldF92bnVtYWluZm86CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2Rv bWFpbi5jIGIveGVuL2NvbW1vbi9kb21haW4uYwppbmRleCA0NDkyYzljM2Q1Li5mOGI0YmQ5YzI5 IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCisrKyBiL3hlbi9jb21tb24vZG9tYWlu LmMKQEAgLTI4Nyw2ICsyODcsOSBAQCBzdHJ1Y3QgZG9tYWluICpkb21haW5fY3JlYXRlKGRvbWlk X3QgZG9taWQsIHVuc2lnbmVkIGludCBkb21jcl9mbGFncywKICAgICBJTklUX1BBR0VfTElTVF9I RUFEKCZkLT5wYWdlX2xpc3QpOwogICAgIElOSVRfUEFHRV9MSVNUX0hFQUQoJmQtPnhlbnBhZ2Vf bGlzdCk7CiAKKyAgICBzcGluX2xvY2tfaW5pdF9wcm9mKGQsIHBtZW1fbG9jayk7CisgICAgSU5J VF9QQUdFX0xJU1RfSEVBRCgmZC0+cG1lbV9wYWdlX2xpc3QpOworCiAgICAgc3Bpbl9sb2NrX2lu aXQoJmQtPm5vZGVfYWZmaW5pdHlfbG9jayk7CiAgICAgZC0+bm9kZV9hZmZpbml0eSA9IE5PREVf TUFTS19BTEw7CiAgICAgZC0+YXV0b19ub2RlX2FmZmluaXR5ID0gMTsKZGlmZiAtLWdpdCBhL3hl bi9jb21tb24vbWVtb3J5LmMgYi94ZW4vY29tbW9uL21lbW9yeS5jCmluZGV4IGFkMGIzM2NlYjYu LjA4ODNkMmQ5YjggMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbWVtb3J5LmMKKysrIGIveGVuL2Nv bW1vbi9tZW1vcnkuYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgPHhlbi9udW1hLmg+CiAj aW5jbHVkZSA8eGVuL21lbV9hY2Nlc3MuaD4KICNpbmNsdWRlIDx4ZW4vdHJhY2UuaD4KKyNpbmNs dWRlIDx4ZW4vcG1lbS5oPgogI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+CiAjaW5jbHVkZSA8YXNt L2hhcmRpcnEuaD4KICNpbmNsdWRlIDxhc20vcDJtLmg+CkBAIC0xMzI4LDYgKzEzMjksNDggQEAg bG9uZyBkb19tZW1vcnlfb3AodW5zaWduZWQgbG9uZyBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0odm9pZCkgYXJnKQogICAgIH0KICNlbmRpZgogCisjaWZkZWYgQ09ORklHX1BNRU0KKyAgICBj YXNlIFhFTk1FTV9wb3B1bGF0ZV9wbWVtX21hcDoKKyAgICB7CisgICAgICAgIHN0cnVjdCB4ZW5f cG1lbV9tYXAgbWFwOworICAgICAgICBzdHJ1Y3QgeGVuX3BtZW1fbWFwX2FyZ3MgYXJnczsKKwor ICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmbWFwLCBhcmcsIDEpICkKKyAgICAgICAgICAg IHJldHVybiAtRUZBVUxUOworCisgICAgICAgIGlmICggbWFwLmRvbWlkID09IERPTUlEX1NFTEYg KQorICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAgICAgZCA9IHJjdV9sb2NrX2Rv bWFpbl9ieV9hbnlfaWQobWFwLmRvbWlkKTsKKyAgICAgICAgaWYgKCAhZCApCisgICAgICAgICAg ICByZXR1cm4gLUVJTlZBTDsKKworICAgICAgICByYyA9IHhzbV9wb3B1bGF0ZV9wbWVtX21hcChY U01fVEFSR0VULCBjdXJyX2QsIGQpOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgeworICAg ICAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7CisgICAgICAgICAgICByZXR1cm4gcmM7Cisg ICAgICAgIH0KKworICAgICAgICBhcmdzLmRvbWFpbiA9IGQ7CisgICAgICAgIGFyZ3MubWZuID0g bWFwLm1mbjsKKyAgICAgICAgYXJncy5nZm4gPSBtYXAuZ2ZuOworICAgICAgICBhcmdzLm5yX21m bnMgPSBtYXAubnJfbWZuczsKKyAgICAgICAgYXJncy5ucl9kb25lID0gc3RhcnRfZXh0ZW50Owor ICAgICAgICBhcmdzLnByZWVtcHRlZCA9IDA7CisKKyAgICAgICAgcmMgPSBwbWVtX3BvcHVsYXRl KCZhcmdzKTsKKyAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7CisKKyAgICAgICAgaWYgKCBy YyA9PSAtRVJFU1RBUlQgJiYgYXJncy5wcmVlbXB0ZWQgKQorICAgICAgICAgICAgcmV0dXJuIGh5 cGVyY2FsbF9jcmVhdGVfY29udGludWF0aW9uKAorICAgICAgICAgICAgICAgIF9fSFlQRVJWSVNP Ul9tZW1vcnlfb3AsICJsaCIsCisgICAgICAgICAgICAgICAgb3AgfCAoYXJncy5ucl9kb25lIDw8 IE1FTU9QX0VYVEVOVF9TSElGVCksIGFyZyk7CisKKyAgICAgICAgYnJlYWs7CisgICAgfQorI2Vu ZGlmIC8qIENPTkZJR19QTUVNICovCisKICAgICBkZWZhdWx0OgogICAgICAgICByYyA9IGFyY2hf bWVtb3J5X29wKGNtZCwgYXJnKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vY29t bW9uL3BtZW0uYyBiL3hlbi9jb21tb24vcG1lbS5jCmluZGV4IDBlMmQ2NmY5NGMuLjAzZjFjMWIz NzQgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vcG1lbS5jCisrKyBiL3hlbi9jb21tb24vcG1lbS5j CkBAIC0xNyw5ICsxNywxMiBAQAogICovCiAKICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KKyNpbmNs dWRlIDx4ZW4vZXZlbnQuaD4KICNpbmNsdWRlIDx4ZW4vbGlzdC5oPgogI2luY2x1ZGUgPHhlbi9t bS5oPgorI2luY2x1ZGUgPHhlbi9wYWdpbmcuaD4KICNpbmNsdWRlIDx4ZW4vcG1lbS5oPgorI2lu Y2x1ZGUgPHhlbi9zY2hlZC5oPgogI2luY2x1ZGUgPHhlbi9zcGlubG9jay5oPgogCiAvKgpAQCAt MTMwLDggKzEzMyw5IEBAIHN0YXRpYyBzdHJ1Y3QgcG1lbSAqZ2V0X2ZpcnN0X292ZXJsYXAoY29u c3Qgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKICAgICByZXR1cm4gb3ZlcmxhcDsKIH0KIAotc3Rh dGljIGJvb2wgcG1lbV9saXN0X2NvdmVyZWQoY29uc3Qgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc21mbiwgdW5zaWdu ZWQgZW1mbikKK3N0YXRpYyBib29sIHBtZW1fbGlzdF9jb3ZlcmVkX3JlYWR5KGNvbnN0IHN0cnVj dCBsaXN0X2hlYWQgKmxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIHNtZm4sIHVuc2lnbmVkIGVtZm4sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBib29sIGNoZWNrX3JlYWR5KQogewogICAgIHN0cnVjdCBwbWVtICpvdmVy bGFwOwogICAgIGJvb2wgY292ZXJlZCA9IGZhbHNlOwpAQCAtMTM5LDcgKzE0Myw4IEBAIHN0YXRp YyBib29sIHBtZW1fbGlzdF9jb3ZlcmVkKGNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCiAg ICAgZG8gewogICAgICAgICBvdmVybGFwID0gZ2V0X2ZpcnN0X292ZXJsYXAobGlzdCwgc21mbiwg ZW1mbik7CiAKLSAgICAgICAgaWYgKCAhb3ZlcmxhcCB8fCBzbWZuIDwgb3ZlcmxhcC0+c21mbiAp CisgICAgICAgIGlmICggIW92ZXJsYXAgfHwgc21mbiA8IG92ZXJsYXAtPnNtZm4gfHwKKyAgICAg ICAgICAgICAoY2hlY2tfcmVhZHkgJiYgIW92ZXJsYXAtPnJlYWR5KSApCiAgICAgICAgICAgICBi cmVhazsKIAogICAgICAgICBpZiAoIGVtZm4gPD0gb3ZlcmxhcC0+ZW1mbiApCkBAIC0xNTUsNiAr MTYwLDEyIEBAIHN0YXRpYyBib29sIHBtZW1fbGlzdF9jb3ZlcmVkKGNvbnN0IHN0cnVjdCBsaXN0 X2hlYWQgKmxpc3QsCiAgICAgcmV0dXJuIGNvdmVyZWQ7CiB9CiAKK3N0YXRpYyBib29sIHBtZW1f bGlzdF9jb3ZlcmVkKGNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNtZm4sIHVuc2lnbmVkIGVtZm4pCit7Cisg ICAgcmV0dXJuIHBtZW1fbGlzdF9jb3ZlcmVkX3JlYWR5KGxpc3QsIHNtZm4sIGVtZm4sIGZhbHNl KTsKK30KKwogc3RhdGljIGJvb2wgY2hlY2tfbWdtdF9zaXplKHVuc2lnbmVkIGxvbmcgbWdtdF9t Zm5zLCB1bnNpZ25lZCBsb25nIHRvdGFsX21mbnMpCiB7CiAgICAgcmV0dXJuIG1nbXRfbWZucyA+ PQpAQCAtMzAxLDMgKzMxMiwxMzcgQEAgaW50IHBtZW1fc2V0dXAodW5zaWduZWQgbG9uZyBkYXRh X3NtZm4sIHVuc2lnbmVkIGxvbmcgZGF0YV9lbWZuLAogIG91dDoKICAgICByZXR1cm4gcmM7CiB9 CisKKyNpZmRlZiBDT05GSUdfWDg2CisKK3N0YXRpYyB2b2lkIHBtZW1fYXNzaWduX3BhZ2Uoc3Ry dWN0IGRvbWFpbiAqZCwgc3RydWN0IHBhZ2VfaW5mbyAqcGcsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZ2ZuKQoreworICAgIHBnLT51LmludXNlLnR5cGVfaW5m byA9IDA7CisgICAgcGFnZV9zZXRfb3duZXIocGcsIGQpOworICAgIGd1ZXN0X3BoeXNtYXBfYWRk X3BhZ2UoZCwgX2dmbihnZm4pLCBfbWZuKHBhZ2VfdG9fbWZuKHBnKSksIDApOworCisgICAgc3Bp bl9sb2NrKCZkLT5wbWVtX2xvY2spOworICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwZywgJmQtPnBt ZW1fcGFnZV9saXN0KTsKKyAgICBzcGluX3VubG9jaygmZC0+cG1lbV9sb2NrKTsKK30KKworc3Rh dGljIHZvaWQgcG1lbV91bmFzc2lnbl9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBwYWdl X2luZm8gKnBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg Z2ZuKQoreworICAgIHNwaW5fbG9jaygmZC0+cG1lbV9sb2NrKTsKKyAgICBwYWdlX2xpc3RfZGVs KHBnLCAmZC0+cG1lbV9wYWdlX2xpc3QpOworICAgIHNwaW5fdW5sb2NrKCZkLT5wbWVtX2xvY2sp OworCisgICAgZ3Vlc3RfcGh5c21hcF9yZW1vdmVfcGFnZShkLCBfZ2ZuKGdmbiksIF9tZm4ocGFn ZV90b19tZm4ocGcpKSwgMCk7CisgICAgcGFnZV9zZXRfb3duZXIocGcsIE5VTEwpOworICAgIHBn LT5jb3VudF9pbmZvID0gKHBnLT5jb3VudF9pbmZvICYgflBHQ19jb3VudF9tYXNrKSB8IFBHQ19z dGF0ZV9mcmVlOworfQorCitzdGF0aWMgdm9pZCBwbWVtX3VuYXNzaWduX3BhZ2VzKHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIGdmbiwgdW5zaWduZWQgbG9uZyBucl9tZm5zKQoreworICAgIHVu c2lnbmVkIGxvbmcgZW1mbiA9IG1mbiArIG5yX21mbnM7CisKKyAgICBmb3IgKCA7IG1mbiA8IGVt Zm47IG1mbisrLCBnZm4rKyApCisgICAgICAgIHBtZW1fdW5hc3NpZ25fcGFnZShkLCBtZm5fdG9f cGFnZShtZm4pLCBnZm4pOworfQorCisvKioKKyAqIE1hcCBob3N0IHBtZW0gcGFnZXMgdG8gYSBk b21haW4uIEN1cnJlbnRseSBvbmx5IEhWTSBkb21haW4gaXMKKyAqIHN1cHBvcnRlZC4KKyAqCisg KiBQYXJhbWV0ZXJzOgorICogIGFyZ3M6IHBsZWFzZSByZWZlciB0byBjb21tZW50cyBvZiBzdHJ1 Y3QgeGVuX3BtZW1tYXBfYXJncyBpbiB4ZW4vcG1lbS5oCisgKgorICogUmV0dXJuOgorICogIDAg b24gc3VjY2Vzczsgbm9uLXplcm8gZXJyb3IgY29kZSBvbiBmYWlsdXJlcy4KKyAqLworaW50IHBt ZW1fcG9wdWxhdGUoc3RydWN0IHhlbl9wbWVtX21hcF9hcmdzICphcmdzKQoreworICAgIHN0cnVj dCBkb21haW4gKmQgPSBhcmdzLT5kb21haW47CisgICAgdW5zaWduZWQgbG9uZyBpID0gYXJncy0+ bnJfZG9uZTsKKyAgICB1bnNpZ25lZCBsb25nIG1mbiA9IGFyZ3MtPm1mbiArIGk7CisgICAgdW5z aWduZWQgbG9uZyBlbWZuID0gYXJncy0+bWZuICsgYXJncy0+bnJfbWZuczsKKyAgICB1bnNpZ25l ZCBsb25nIGdmbjsKKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOworICAgIGludCByYyA9IDA7 CisKKyAgICBpZiAoIHVubGlrZWx5KGQtPmlzX2R5aW5nKSApCisgICAgICAgIHJldHVybiAtRUlO VkFMOworCisgICAgaWYgKCAhaGFzX2h2bV9jb250YWluZXJfZG9tYWluKGQpIHx8ICFwYWdpbmdf bW9kZV90cmFuc2xhdGUoZCkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHNwaW5f bG9jaygmcG1lbV9ncmVnaW9uc19sb2NrKTsKKyAgICBpZiAoICFwbWVtX2xpc3RfY292ZXJlZF9y ZWFkeSgmcG1lbV9ncmVnaW9ucywgbWZuLCBlbWZuLCB0cnVlKSApCisgICAgeworICAgICAgICBz cGluX3VubG9jaygmcG1lbV9yZWdpb25zX2xvY2spOworICAgICAgICByZXR1cm4gLUVJTlZBTDsK KyAgICB9CisgICAgc3Bpbl91bmxvY2soJnBtZW1fZ3JlZ2lvbnNfbG9jayk7CisKKyAgICBmb3Ig KCBnZm4gPSBhcmdzLT5nZm4gKyBpOyBtZm4gPCBlbWZuOyBpKyssIG1mbisrLCBnZm4rKyApCisg ICAgeworICAgICAgICBpZiAoIGkgIT0gYXJncy0+bnJfZG9uZSAmJiBoeXBlcmNhbGxfcHJlZW1w dF9jaGVjaygpICkKKyAgICAgICAgeworICAgICAgICAgICAgYXJncy0+cHJlZW1wdGVkID0gMTsK KyAgICAgICAgICAgIHJjID0gLUVSRVNUQVJUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg IH0KKworICAgICAgICBwYWdlID0gbWZuX3RvX3BhZ2UobWZuKTsKKworICAgICAgICBzcGluX2xv Y2soJnBtZW1fZ3JlZ2lvbnNfbG9jayk7CisgICAgICAgIGlmICggIXBhZ2Vfc3RhdGVfaXMocGFn ZSwgZnJlZSkgKQorICAgICAgICB7CisgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywg InBtZW06IG1mbiAweCVseCBub3QgaW4gZnJlZSBzdGF0ZVxuIiwgbWZuKTsKKyAgICAgICAgICAg IHNwaW5fdW5sb2NrKCZwbWVtX2dyZWdpb25zX2xvY2spOworICAgICAgICAgICAgcmMgPSAtRUlO VkFMOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcGFnZS0+Y291bnRf aW5mbyA9IFBHQ19zdGF0ZV9pbnVzZSB8IDE7CisgICAgICAgIHNwaW5fdW5sb2NrKCZwbWVtX2dy ZWdpb25zX2xvY2spOworCisgICAgICAgIHBtZW1fYXNzaWduX3BhZ2UoZCwgcGFnZSwgZ2ZuKTsK KyAgICB9CisKKyAgICBpZiAoIHJjICYmIHJjICE9IC1FUkVTVEFSVCApCisgICAgICAgIHBtZW1f dW5hc3NpZ25fcGFnZXMoZCwgYXJncy0+bWZuLCBhcmdzLT5nZm4sIGkpOworCisgICAgYXJncy0+ bnJfZG9uZSA9IGk7CisgICAgcmV0dXJuIHJjOworfQorCitpbnQgcG1lbV90ZWFyZG93bihzdHJ1 Y3QgZG9tYWluICpkKQoreworICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnLCAqbmV4dDsKKyAgICBp bnQgcmMgPSAwOworCisgICAgQVNTRVJUKGQtPmlzX2R5aW5nKTsKKyAgICBBU1NFUlQoZCAhPSBj dXJyZW50LT5kb21haW4pOworCisgICAgc3Bpbl9sb2NrKCZkLT5wbWVtX2xvY2spOworCisgICAg cGFnZV9saXN0X2Zvcl9lYWNoX3NhZmUgKHBnLCBuZXh0LCAmZC0+cG1lbV9wYWdlX2xpc3QgKQor ICAgIHsKKyAgICAgICAgQlVHX09OKHBhZ2VfZ2V0X293bmVyKHBnKSAhPSBkKTsKKyAgICAgICAg QlVHX09OKHBhZ2Vfc3RhdGVfaXMocGcsIGZyZWUpKTsKKworICAgICAgICBwYWdlX2xpc3RfZGVs KHBnLCAmZC0+cG1lbV9wYWdlX2xpc3QpOworICAgICAgICBwYWdlX3NldF9vd25lcihwZywgTlVM TCk7CisgICAgICAgIHBnLT5jb3VudF9pbmZvID0gKHBnLT5jb3VudF9pbmZvICYgflBHQ19jb3Vu dF9tYXNrKSB8IFBHQ19zdGF0ZV9mcmVlOworCisgICAgICAgIGlmICggaHlwZXJjYWxsX3ByZWVt cHRfY2hlY2soKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJjID0gLUVSRVNUQVJUOworICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzcGluX3VubG9jaygmZC0+ cG1lbV9sb2NrKTsKKworICAgIHJldHVybiByYzsKK30KKworI2VuZGlmIC8qIENPTkZJR19YODYg Ki8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaCBiL3hlbi9pbmNsdWRl L3B1YmxpYy9tZW1vcnkuaAppbmRleCA2ZWVlMGM4YTE2Li5mYTYzNmIzMTNhIDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL21l bW9yeS5oCkBAIC02NDgsNyArNjQ4LDE5IEBAIHN0cnVjdCB4ZW5fdm51bWFfdG9wb2xvZ3lfaW5m byB7CiB0eXBlZGVmIHN0cnVjdCB4ZW5fdm51bWFfdG9wb2xvZ3lfaW5mbyB4ZW5fdm51bWFfdG9w b2xvZ3lfaW5mb190OwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3ZudW1hX3RvcG9sb2d5 X2luZm9fdCk7CiAKLS8qIE5leHQgYXZhaWxhYmxlIHN1Ym9wIG51bWJlciBpcyAyOCAqLworI2Rl ZmluZSBYRU5NRU1fcG9wdWxhdGVfcG1lbV9tYXAgMjgKKworc3RydWN0IHhlbl9wbWVtX21hcCB7 CisgICAgLyogSU4gKi8KKyAgICBkb21pZF90IGRvbWlkOworICAgIHVuc2lnbmVkIGxvbmcgbWZu OworICAgIHVuc2lnbmVkIGxvbmcgZ2ZuOworICAgIHVuc2lnbmVkIGludCBucl9tZm5zOworfTsK K3R5cGVkZWYgc3RydWN0IHhlbl9wbWVtX21hcCB4ZW5fcG1lbV9tYXBfdDsKK0RFRklORV9YRU5f R1VFU1RfSEFORExFKHhlbl9wbWVtX21hcF90KTsKKworLyogTmV4dCBhdmFpbGFibGUgc3Vib3Ag bnVtYmVyIGlzIDI5ICovCiAKICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfTUVNT1JZX0hfXyAqLwog CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vcG1lbS5oIGIveGVuL2luY2x1ZGUveGVuL3Bt ZW0uaAppbmRleCA5NWM4MjA3ZmY2Li5jYmM2MjEwNDhiIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS94ZW4vcG1lbS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9wbWVtLmgKQEAgLTI2LDkgKzI2LDIz IEBAIGludCBwbWVtX3JlZ2lzdGVyKHVuc2lnbmVkIGxvbmcgc21mbiwgdW5zaWduZWQgbG9uZyBl bWZuKTsKIGludCBwbWVtX3NldHVwKHVuc2lnbmVkIGxvbmcgZGF0YV9zcGZuLCB1bnNpZ25lZCBs b25nIGRhdGFfZW1mbiwKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWdtdF9zbWZuLCB1 bnNpZ25lZCBsb25nIG1nbXRfZW1mbik7CiAKK3N0cnVjdCB4ZW5fcG1lbV9tYXBfYXJncyB7Cisg ICAgc3RydWN0IGRvbWFpbiAqZG9tYWluOworCisgICAgdW5zaWduZWQgbG9uZyBtZm47ICAgICAv KiBzdGFydCBNRk4gb2YgcG1lbXMgcGFnZSB0byBiZSBtYXBwZWQgKi8KKyAgICB1bnNpZ25lZCBs b25nIGdmbjsgICAgIC8qIHN0YXJ0IEdGTiBvZiB0YXJnZXQgZG9tYWluICovCisgICAgdW5zaWdu ZWQgbG9uZyBucl9tZm5zOyAvKiBudW1iZXIgb2YgcG1lbSBwYWdlcyB0byBiZSBtYXBwZWQgKi8K KworICAgIC8qIEZvciBwcmVlbXB0aW9uIC4uLiAqLworICAgIHVuc2lnbmVkIGxvbmcgbnJfZG9u ZTsgLyogbnVtYmVyIG9mIHBtZW0gcGFnZXMgcHJvY2Vzc2VkIHNvIGZhciAqLworICAgIGludCBw cmVlbXB0ZWQ7ICAgICAgICAgLyogSXMgdGhlIG9wZXJhdGlvbiBwcmVlbXB0ZWQ/ICovCit9Owor CiAjaWZkZWYgQ09ORklHX1g4NgogaW50IHBtZW1fYXJjaF9zZXR1cCh1bnNpZ25lZCBsb25nIGRh dGFfc21mbiwgdW5zaWduZWQgbG9uZyBkYXRhX2VtZm4sCiAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgbWdtdF9zbWZuLCB1bnNpZ25lZCBsb25nIG1nbXRfZW1mbik7CitpbnQgcG1l bV9wb3B1bGF0ZShzdHJ1Y3QgeGVuX3BtZW1fbWFwX2FyZ3MgKmFyZ3MpOworaW50IHBtZW1fdGVh cmRvd24oc3RydWN0IGRvbWFpbiAqZCk7CiAjZWxzZSAvKiAhQ09ORklHX1g4NiAqLwogc3RhdGlj IGlubGluZSBpbnQKIHBtZW1fYXJjaF9zZXR1cCh1bnNpZ25lZCBsb25nIGRhdGFfc21mbiwgdW5z aWduZWQgbG9uZyBkYXRhX2VtZm4sCkBAIC0zNiw2ICs1MCwxNiBAQCBwbWVtX2FyY2hfc2V0dXAo dW5zaWduZWQgbG9uZyBkYXRhX3NtZm4sIHVuc2lnbmVkIGxvbmcgZGF0YV9lbWZuLAogewogICAg IHJldHVybiAtRU5PU1lTOwogfQorCitzdGF0aWMgaW5saW5lIGludCBwbWVtX3BvcHVsYXRlKHN0 cnVjdCB4ZW5fcG1lbV9tYXBfYXJncyAqYXJncykKK3sKKyAgICByZXR1cm4gLUVOT1NZUzsKK30K Kworc3RhdGljIGlubGluZSBpbnQgcG1lbV90ZWFyZG93bihzdHJ1Y3QgZG9tYWluICpkKQorewor ICAgIHJldHVybiAtRU5PU1lTOworfQogI2VuZGlmIC8qIENPTkZJR19YODYgKi8KIAogI2VuZGlm IC8qIENPTkZJR19QTUVNICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCBi L3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCmluZGV4IDA5MjljMGI5MTAuLjM5MDU3MjQzZDYgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9z Y2hlZC5oCkBAIC0zMzYsNiArMzM2LDkgQEAgc3RydWN0IGRvbWFpbgogICAgIGF0b21pY190ICAg ICAgICAgc2hyX3BhZ2VzOyAgICAgICAvKiBudW1iZXIgb2Ygc2hhcmVkIHBhZ2VzICAgICAgICAg ICAgICovCiAgICAgYXRvbWljX3QgICAgICAgICBwYWdlZF9wYWdlczsgICAgIC8qIG51bWJlciBv ZiBwYWdlZC1vdXQgcGFnZXMgICAgICAgICAgKi8KIAorICAgIHNwaW5sb2NrX3QgICAgICAgcG1l bV9sb2NrOyAgICAgICAvKiBwcm90ZWN0IGFsbCBmb2xsb3dpbmcgcG1lbV8gZmllbGRzICovCisg ICAgc3RydWN0IHBhZ2VfbGlzdF9oZWFkIHBtZW1fcGFnZV9saXN0OyAvKiBsaW5rZWQgbGlzdCBv ZiBwbWVtIHBhZ2VzICAgICAgKi8KKwogICAgIC8qIFNjaGVkdWxpbmcuICovCiAgICAgdm9pZCAg ICAgICAgICAgICpzY2hlZF9wcml2OyAgICAvKiBzY2hlZHVsZXItc3BlY2lmaWMgZGF0YSAqLwog ICAgIHN0cnVjdCBjcHVwb29sICAqY3B1cG9vbDsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hz bS9kdW1teS5oIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKaW5kZXggNGIyN2FlNzJkZS4uYWVh MGI5Mzc2ZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKKysrIGIveGVuL2lu Y2x1ZGUveHNtL2R1bW15LmgKQEAgLTcyOCwzICs3MjgsMTQgQEAgc3RhdGljIFhTTV9JTkxJTkUg aW50IHhzbV94ZW5fdmVyc2lvbiAoWFNNX0RFRkFVTFRfQVJHIHVpbnQzMl90IG9wKQogICAgICAg ICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKFhTTV9QUklWLCBjdXJyZW50LT5kb21haW4sIE5V TEwpOwogICAgIH0KIH0KKworI2lmZGVmIENPTkZJR19QTUVNCisKK3N0YXRpYyBYU01fSU5MSU5F IGludCB4c21fcG9wdWxhdGVfcG1lbV9tYXAoWFNNX0RFRkFVTFRfQVJHCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkb21haW4gKmQxLCBzdHJ1Y3Qg ZG9tYWluICpkMikKK3sKKyAgICBYU01fQVNTRVJUX0FDVElPTihYU01fVEFSR0VUKTsKKyAgICBy ZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgZDEsIGQyKTsKK30KKworI2VuZGlmIC8q IENPTkZJR19QTUVNICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20veHNtLmggYi94ZW4v aW5jbHVkZS94c20veHNtLmgKaW5kZXggMmNmN2FjMTBkYi4uOGY2MmIyMTczOSAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUveHNtL3hzbS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS94c20uaApAQCAt MTgyLDYgKzE4MiwxMCBAQCBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgewogICAgIGludCAoKmRtX29w KSAoc3RydWN0IGRvbWFpbiAqZCk7CiAjZW5kaWYKICAgICBpbnQgKCp4ZW5fdmVyc2lvbikgKHVp bnQzMl90IGNtZCk7CisKKyNpZmRlZiBDT05GSUdfUE1FTQorICAgIGludCAoKnBvcHVsYXRlX3Bt ZW1fbWFwKSAoc3RydWN0IGRvbWFpbiAqZDEsIHN0cnVjdCBkb21haW4gKmQyKTsKKyNlbmRpZiAv KiBDT05GSUdfUE1FTSAqLwogfTsKIAogI2lmZGVmIENPTkZJR19YU00KQEAgLTcwNSw2ICs3MDks MTQgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX3hlbl92ZXJzaW9uICh4c21fZGVmYXVsdF90IGRl ZiwgdWludDMyX3Qgb3ApCiAgICAgcmV0dXJuIHhzbV9vcHMtPnhlbl92ZXJzaW9uKG9wKTsKIH0K IAorI2lmZGVmIENPTkZJR19QTUVNCitzdGF0aWMgaW5saW5lIGludCB4c21fcG9wdWxhdGVfcG1l bV9tYXAoeHNtX2RlZmF1bHRfdCBkZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGRvbWFpbiAqZDEsIHN0cnVjdCBkb21haW4gKmQyKQoreworICAgIHJl dHVybiB4c21fb3BzLT5wb3B1bGF0ZV9wbWVtX21hcChkMSwgZDIpOworfQorI2VuZGlmIC8qIENP TkZJR19QTUVNICovCisKICNlbmRpZiAvKiBYU01fTk9fV1JBUFBFUlMgKi8KIAogI2lmZGVmIENP TkZJR19NVUxUSUJPT1QKZGlmZiAtLWdpdCBhL3hlbi94c20vZHVtbXkuYyBiL3hlbi94c20vZHVt bXkuYwppbmRleCAzY2I1NDkyZGQzLi5kZGU2OGVjZjU5IDEwMDY0NAotLS0gYS94ZW4veHNtL2R1 bW15LmMKKysrIGIveGVuL3hzbS9kdW1teS5jCkBAIC0xNTksNCArMTU5LDggQEAgdm9pZCBfX2lu aXQgeHNtX2ZpeHVwX29wcyAoc3RydWN0IHhzbV9vcGVyYXRpb25zICpvcHMpCiAgICAgc2V0X3Rv X2R1bW15X2lmX251bGwob3BzLCBkbV9vcCk7CiAjZW5kaWYKICAgICBzZXRfdG9fZHVtbXlfaWZf bnVsbChvcHMsIHhlbl92ZXJzaW9uKTsKKworI2lmZGVmIENPTkZJR19QTUVNCisgICAgc2V0X3Rv X2R1bW15X2lmX251bGwob3BzLCBwb3B1bGF0ZV9wbWVtX21hcCk7CisjZW5kaWYKIH0KZGlmZiAt LWdpdCBhL3hlbi94c20vZmxhc2svaG9va3MuYyBiL3hlbi94c20vZmxhc2svaG9va3MuYwppbmRl eCBlM2M3N2JiZTNmLi41ODJkZGY4MWQzIDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tz LmMKKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCkBAIC0xNjU5LDYgKzE2NTksMTUgQEAgc3Rh dGljIGludCBmbGFza194ZW5fdmVyc2lvbiAodWludDMyX3Qgb3ApCiAgICAgfQogfQogCisjaWZk ZWYgQ09ORklHX1BNRU0KKworc3RhdGljIGludCBmbGFza19wb3B1bGF0ZV9wbWVtX21hcChzdHJ1 Y3QgZG9tYWluICpkMSwgc3RydWN0IGRvbWFpbiAqZDIpCit7CisgICAgcmV0dXJuIGRvbWFpbl9o YXNfcGVybShkMSwgZDIsIFNFQ0NMQVNTX01NVSwgTU1VX19QT1BVTEFURV9QTUVNX01BUCk7Cit9 CisKKyNlbmRpZiAvKiBDT05GSUdfUE1FTSAqLworCiBsb25nIGRvX2ZsYXNrX29wKFhFTl9HVUVT VF9IQU5ETEVfUEFSQU0oeHNtX29wX3QpIHVfZmxhc2tfb3ApOwogaW50IGNvbXBhdF9mbGFza19v cChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhzbV9vcF90KSB1X2ZsYXNrX29wKTsKIApAQCAtMTc5 NCw2ICsxODAzLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgZmxhc2tfb3BzID0g ewogICAgIC5kbV9vcCA9IGZsYXNrX2RtX29wLAogI2VuZGlmCiAgICAgLnhlbl92ZXJzaW9uID0g Zmxhc2tfeGVuX3ZlcnNpb24sCisKKyNpZmRlZiBDT05GSUdfUE1FTQorICAgIC5wb3B1bGF0ZV9w bWVtX21hcCA9IGZsYXNrX3BvcHVsYXRlX3BtZW1fbWFwLAorI2VuZGlmIC8qIENPTkZJR19QTUVN ICovCiB9OwogCiB2b2lkIF9faW5pdCBmbGFza19pbml0KGNvbnN0IHZvaWQgKnBvbGljeV9idWZm ZXIsIHNpemVfdCBwb2xpY3lfc2l6ZSkKZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svcG9saWN5 L2FjY2Vzc192ZWN0b3JzIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKaW5k ZXggYThkZGQ3Y2E4NC4uNDRjYmQ2NmY0ZCAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9wb2xp Y3kvYWNjZXNzX3ZlY3RvcnMKKysrIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3Rv cnMKQEAgLTM4NSw2ICszODUsOCBAQCBjbGFzcyBtbXUKICMgQWxsb3cgYSBwcml2aWxlZ2VkIGRv bWFpbiB0byBpbnN0YWxsIGEgbWFwIG9mIGEgcGFnZSBpdCBkb2VzIG5vdCBvd24uICBVc2VkCiAj IGZvciBzdHViIGRvbWFpbiBkZXZpY2UgbW9kZWxzIHdpdGggdGhlIFBWIGZyYW1lYnVmZmVyLgog ICAgIHRhcmdldF9oYWNrCisjIFhFTk1FTV9wb3B1bGF0ZV9wbWVtX21hcAorICAgIHBvcHVsYXRl X3BtZW1fbWFwCiB9CiAKICMgY29udHJvbCBvZiB0aGUgcGFnaW5nX2RvbWN0bCBzcGxpdCBieSBz dWJvcAotLSAKMi4xMi4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==