From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v4 02/14] libxc: Prepare a start info structure for hvmloader Date: Mon, 14 Mar 2016 17:55:37 +0000 Message-ID: <1457978150-27201-3-git-send-email-anthony.perard@citrix.com> References: <1457978150-27201-1-git-send-email-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1457978150-27201-1-git-send-email-anthony.perard@citrix.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: Anthony PERARD , Wei Liu , Ian Jackson , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org Li4uIGFuZCBsb2FkIEJJT1MgaW50byBndWVzdCBtZW1vcnkuCgpUaGlzIGFkZHMgYSBuZXcgZmly bXdhcmUgbW9kdWxlLCBiaW9zX21vZHVsZS4gSXQgaXMKbG9hZGVkIGluIHRoZSBndWVzdCBtZW1v cnkgYW5kIGZpbmFsIGxvY2F0aW9uIGlzIHByb3ZpZGVkIHRvIGh2bWxvYWRlcgp2aWEgdGhlIGh2 bV9zdGFydF9pbmZvIHN0cnVjdC4KClRoaXMgcGF0Y2ggY3JlYXRlIHRoZSBodm1fc3RhcnRfaW5m byBzdHJ1Y3QgZm9yIEhWTSBndWVzdCB0aGF0IGhhdmUgYQpkZXZpY2UgbW9kZWwsIHNvIHRoaXMg aXMgbm93IGNvbW1vbiBjb2RlIHdpdGggSFZNIGd1ZXN0IHdpdGhvdXQgZGV2aWNlCm1vZGVsLgoK U2lnbmVkLW9mZi1ieTogQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+ Ci0tLQpDaGFuZ2UgaW4gVjQ6Ci0gY2hhbmdlIHRpdGxlIHRvIHN1Z2dlc3QgdGhlIGNoYW5nZSBv ZiBiZWF2aW9yCi0gcmVtb3ZlIGNvZGUgdG8gbG9hZCBhY3BpIHRhYmxlcyAoZHNkdCkKLSBVcGRh dGUgcHVibGljL3hlbi5oIGFib3V0IGh2bV9zdGFydF9pbmZvIGF2YWlsYWJsZSBvbiBvdGhlciBI Vk0gZ3Vlc3QKICBpbiAlZWJ4LgoKQ2hhbmdlIGluIFYzOgotIHJlbmFtZSBhY3BpX3RhYmxlX21v ZHVsZSB0byBmdWxsX2FjcGlfbW9kdWxlLgotIGZhY3RvcmlzZSBtb2R1bGUgbG9hZGluZywgdXNp bmcgbmV3IGZ1bmN0aW9uIHRvIGxvYWQgZXhpc3Rpbmcgb3B0aW5hbAogIG1vZHVsZSwgdGhpcyBz aG91bGQgbm90IGNoYW5nZSBhbnl0aGluZwotIHNob3VsZCBub3cgdXNlIHRoZSBzYW1lIGNvZGUg dG8gbG9hZHMgbW9kdWxlcyBhcyBmb3IgSFZNbGl0ZSBWTXMuCiAgdGhpcyBhdm9pZCBkdXBsaWNh dGlvbiBvZiBjb2RlLgotIG5vIG1vcmUgZ2VuZXJpYyBjbWRsaW5lIHdpdGggYSBsaXN0IG9mIG1v ZHVsZXMsIGVhY2ggbW9kdWxlIGhhdmUgaXRzIG5hbWUKICBpbiB0aGUgbW9kdWxlIHNwZWNpZmlj IGNtZGxpbmUuCi0gc2NvcGUgY2hhbmdlIGZvciBjb21tb24gY29kZSBiZXR3ZWVuIGh2bWxpdGUg YW5kIGh2bWxvYWRlcgotLS0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9tLmggICB8ICAgMyAr CiB0b29scy9saWJ4Yy94Y19kb21faHZtbG9hZGVyLmMgfCAgIDIgKwogdG9vbHMvbGlieGMveGNf ZG9tX3g4Ni5jICAgICAgIHwgMTMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmggICAgICAgfCAgIDIgKy0KIDQgZmlsZXMg Y2hhbmdlZCwgOTYgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9t LmgKaW5kZXggNmViZTk0Ni4uOTNmODk0YyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMvaW5jbHVk ZS94Y19kb20uaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hjX2RvbS5oCkBAIC0yMDksNiAr MjA5LDkgQEAgc3RydWN0IHhjX2RvbV9pbWFnZSB7CiAgICAgLyogSWYgdW5zZXQgZGlzYWJsZXMg dGhlIHNldHVwIG9mIHRoZSBJT1JFUSBwYWdlcy4gKi8KICAgICBib29sIGRldmljZV9tb2RlbDsK IAorICAgIC8qIEJJT1MgcGFzc2VkIHRvIEhWTUxPQURFUiAqLworICAgIHN0cnVjdCB4Y19odm1f ZmlybXdhcmVfbW9kdWxlIGJpb3NfbW9kdWxlOworCiAgICAgLyogRXh0cmEgQUNQSSB0YWJsZXMg cGFzc2VkIHRvIEhWTUxPQURFUiAqLwogICAgIHN0cnVjdCB4Y19odm1fZmlybXdhcmVfbW9kdWxl IGFjcGlfbW9kdWxlOwogCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19kb21faHZtbG9hZGVy LmMgYi90b29scy9saWJ4Yy94Y19kb21faHZtbG9hZGVyLmMKaW5kZXggN2NmNTg1NC4uNjA2MzUx YSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfZG9tX2h2bWxvYWRlci5jCisrKyBiL3Rvb2xz L2xpYnhjL3hjX2RvbV9odm1sb2FkZXIuYwpAQCAtMTY3LDYgKzE2Nyw4IEBAIHN0YXRpYyBpbnQg bW9kdWxlc19pbml0KHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKIHsKICAgICBpbnQgcmM7CiAK KyAgICByYyA9IG1vZHVsZV9pbml0X29uZShkb20sICZkb20tPmJpb3NfbW9kdWxlLCAiYmlvcyBt b2R1bGUiKTsKKyAgICBpZiAoIHJjICkgZ290byBlcnI7CiAgICAgcmMgPSBtb2R1bGVfaW5pdF9v bmUoZG9tLCAmZG9tLT5hY3BpX21vZHVsZSwgImFjcGkgbW9kdWxlIik7CiAgICAgaWYgKCByYyAp IGdvdG8gZXJyOwogICAgIHJjID0gbW9kdWxlX2luaXRfb25lKGRvbSwgJmRvbS0+c21iaW9zX21v ZHVsZSwgInNtYmlvcyBtb2R1bGUiKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2RvbV94 ODYuYyBiL3Rvb2xzL2xpYnhjL3hjX2RvbV94ODYuYwppbmRleCBiZGVjNDBhLi45YzU2ZDU1IDEw MDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19kb21feDg2LmMKKysrIGIvdG9vbHMvbGlieGMveGNf ZG9tX3g4Ni5jCkBAIC02OSw2ICs2OSw5IEBACiAjZGVmaW5lIHJvdW5kX3VwKGFkZHIsIG1hc2sp ICAgICAoKGFkZHIpIHwgKG1hc2spKQogI2RlZmluZSByb3VuZF9wZ191cChhZGRyKSAgKCgoYWRk cikgKyBQQUdFX1NJWkVfWDg2IC0gMSkgJiB+KFBBR0VfU0laRV9YODYgLSAxKSkKIAorI2RlZmlu ZSBIVk1MT0FERVJfTU9EVUxFX01BWF9DT1VOVCAxCisjZGVmaW5lIEhWTUxPQURFUl9NT0RVTEVf TkFNRV9TSVpFIDEwCisKIHN0cnVjdCB4Y19kb21fcGFyYW1zIHsKICAgICB1bnNpZ25lZCBsZXZl bHM7CiAgICAgeGVuX3ZhZGRyX3QgdmFkZHJfbWFzazsKQEAgLTU5MCw2ICs1OTMsNyBAQCBzdGF0 aWMgaW50IGFsbG9jX21hZ2ljX3BhZ2VzX2h2bShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiAg ICAgeGVuX3Bmbl90IHNwZWNpYWxfYXJyYXlbWDg2X0hWTV9OUl9TUEVDSUFMX1BBR0VTXTsKICAg ICB4ZW5fcGZuX3QgaW9yZXFfc2VydmVyX2FycmF5W05SX0lPUkVRX1NFUlZFUl9QQUdFU107CiAg ICAgeGNfaW50ZXJmYWNlICp4Y2ggPSBkb20tPnhjaDsKKyAgICBzaXplX3Qgc3RhcnRfaW5mb19z aXplID0gc2l6ZW9mKHN0cnVjdCBodm1fc3RhcnRfaW5mbyk7CiAKICAgICAvKiBBbGxvY2F0ZSBh bmQgY2xlYXIgc3BlY2lhbCBwYWdlcy4gKi8KICAgICBmb3IgKCBpID0gMDsgaSA8IFg4Nl9IVk1f TlJfU1BFQ0lBTF9QQUdFUzsgaSsrICkKQEAgLTYyNCw4ICs2MjgsNiBAQCBzdGF0aWMgaW50IGFs bG9jX21hZ2ljX3BhZ2VzX2h2bShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiAKICAgICBpZiAo ICFkb20tPmRldmljZV9tb2RlbCApCiAgICAgewotICAgICAgICBzaXplX3Qgc3RhcnRfaW5mb19z aXplID0gc2l6ZW9mKHN0cnVjdCBodm1fc3RhcnRfaW5mbyk7Ci0KICAgICAgICAgaWYgKCBkb20t PmNtZGxpbmUgKQogICAgICAgICB7CiAgICAgICAgICAgICBkb20tPmNtZGxpbmVfc2l6ZSA9IFJP VU5EVVAoc3RybGVuKGRvbS0+Y21kbGluZSkgKyAxLCA4KTsKQEAgLTYzNSwxNyArNjM3LDI2IEBA IHN0YXRpYyBpbnQgYWxsb2NfbWFnaWNfcGFnZXNfaHZtKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRv bSkKICAgICAgICAgLyogTGltaXRlZCB0byBvbmUgbW9kdWxlLiAqLwogICAgICAgICBpZiAoIGRv bS0+cmFtZGlza19ibG9iICkKICAgICAgICAgICAgIHN0YXJ0X2luZm9fc2l6ZSArPSBzaXplb2Yo c3RydWN0IGh2bV9tb2RsaXN0X2VudHJ5KTsKLQotICAgICAgICByYyA9IHhjX2RvbV9hbGxvY19z ZWdtZW50KGRvbSwgJmRvbS0+c3RhcnRfaW5mb19zZWcsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIkhWTWxpdGUgc3RhcnQgaW5mbyIsIDAsIHN0YXJ0X2luZm9fc2l6ZSk7Ci0g ICAgICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIHsKLSAgICAgICAgICAgIERPTVBSSU5URigi VW5hYmxlIHRvIHJlc2VydmUgbWVtb3J5IGZvciB0aGUgc3RhcnQgaW5mbyIpOwotICAgICAgICAg ICAgZ290byBvdXQ7Ci0gICAgICAgIH0KICAgICB9CiAgICAgZWxzZQogICAgIHsKKyAgICAgICAg c3RhcnRfaW5mb19zaXplICs9CisgICAgICAgICAgICBzaXplb2Yoc3RydWN0IGh2bV9tb2RsaXN0 X2VudHJ5KSAqIEhWTUxPQURFUl9NT0RVTEVfTUFYX0NPVU5UOworICAgICAgICAvKiBBZGQgZXh0 cmEgc3BhY2UgdG8gd3JpdGUgbW9kdWxlcyBuYW1lICovCisgICAgICAgIHN0YXJ0X2luZm9fc2l6 ZSArPQorICAgICAgICAgICAgSFZNTE9BREVSX01PRFVMRV9OQU1FX1NJWkUgKiBIVk1MT0FERVJf TU9EVUxFX01BWF9DT1VOVDsKKyAgICB9CisKKyAgICByYyA9IHhjX2RvbV9hbGxvY19zZWdtZW50 KGRvbSwgJmRvbS0+c3RhcnRfaW5mb19zZWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiSFZNbGl0ZSBzdGFydCBpbmZvIiwgMCwgc3RhcnRfaW5mb19zaXplKTsKKyAgICBpZiAoIHJj ICE9IDAgKQorICAgIHsKKyAgICAgICAgRE9NUFJJTlRGKCJVbmFibGUgdG8gcmVzZXJ2ZSBtZW1v cnkgZm9yIHRoZSBzdGFydCBpbmZvIik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAg IGlmICggZG9tLT5kZXZpY2VfbW9kZWwgKQorICAgIHsKICAgICAgICAgLyoKICAgICAgICAgICog QWxsb2NhdGUgYW5kIGNsZWFyIGFkZGl0aW9uYWwgaW9yZXEgc2VydmVyIHBhZ2VzLiBUaGUgZGVm YXVsdAogICAgICAgICAgKiBzZXJ2ZXIgd2lsbCB1c2UgdGhlIElPUkVRIGFuZCBCVUZJT1JFUSBz cGVjaWFsIHBhZ2VzIGFib3ZlLgpAQCAtMTY5NiwzOSArMTcwNyw2OCBAQCBzdGF0aWMgaW50IGFs bG9jX3BndGFibGVzX2h2bShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiAgICAgcmV0dXJuIDA7 CiB9CiAKK3N0YXRpYyB2b2lkIGFkZF9tb2R1bGVfdG9fbGlzdChzdHJ1Y3QgeGNfZG9tX2ltYWdl ICpkb20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhjX2h2bV9maXJt d2FyZV9tb2R1bGUgKm1vZHVsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBodm1f bW9kbGlzdF9lbnRyeSAqbW9kbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgaHZtX3N0YXJ0X2luZm8gKnN0YXJ0X2luZm8pCit7CisgICAgdWludDMyX3QgaW5kZXgg PSBzdGFydF9pbmZvLT5ucl9tb2R1bGVzOworICAgIGlmICggbW9kdWxlLT5sZW5ndGggPT0gMCAp CisgICAgICAgIHJldHVybjsKKworICAgIGFzc2VydChzdGFydF9pbmZvLT5ucl9tb2R1bGVzIDwg SFZNTE9BREVSX01PRFVMRV9NQVhfQ09VTlQpOworICAgIGFzc2VydChzdHJubGVuKG5hbWUsIEhW TUxPQURFUl9NT0RVTEVfTkFNRV9TSVpFKQorICAgICAgICAgICA8IEhWTUxPQURFUl9NT0RVTEVf TkFNRV9TSVpFKTsKKworICAgIG1vZGxpc3RbaW5kZXhdLnBhZGRyID0gbW9kdWxlLT5ndWVzdF9h ZGRyX291dDsKKyAgICBtb2RsaXN0W2luZGV4XS5zaXplID0gbW9kdWxlLT5sZW5ndGg7CisgICAg c3RybmNweSgoY2hhciopKG1vZGxpc3QgKyBIVk1MT0FERVJfTU9EVUxFX01BWF9DT1VOVCkKKyAg ICAgICAgICAgICsgSFZNTE9BREVSX01PRFVMRV9OQU1FX1NJWkUgKiBpbmRleCwKKyAgICAgICAg ICAgIG5hbWUsIEhWTUxPQURFUl9NT0RVTEVfTkFNRV9TSVpFKTsKKyAgICBtb2RsaXN0W2luZGV4 XS5jbWRsaW5lX3BhZGRyID0KKyAgICAgICAgKGRvbS0+c3RhcnRfaW5mb19zZWcucGZuIDw8IFBB R0VfU0hJRlQpICsKKyAgICAgICAgKCh1aW50cHRyX3QpbW9kbGlzdCAtICh1aW50cHRyX3Qpc3Rh cnRfaW5mbykgKworICAgICAgICBzaXplb2Yoc3RydWN0IGh2bV9tb2RsaXN0X2VudHJ5KSAqIEhW TUxPQURFUl9NT0RVTEVfTUFYX0NPVU5UICsKKyAgICAgICAgSFZNTE9BREVSX01PRFVMRV9OQU1F X1NJWkUgKiBpbmRleDsKKworICAgIHN0YXJ0X2luZm8tPm5yX21vZHVsZXMrKzsKK30KKwogc3Rh dGljIGludCBib290bGF0ZV9odm0oc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQogewogICAgIHVp bnQzMl90IGRvbWlkID0gZG9tLT5ndWVzdF9kb21pZDsKICAgICB4Y19pbnRlcmZhY2UgKnhjaCA9 IGRvbS0+eGNoOworICAgIHN0cnVjdCBodm1fc3RhcnRfaW5mbyAqc3RhcnRfaW5mbzsKKyAgICBz aXplX3Qgc3RhcnRfaW5mb19zaXplOworICAgIHZvaWQgKnN0YXJ0X3BhZ2U7CisgICAgc3RydWN0 IGh2bV9tb2RsaXN0X2VudHJ5ICptb2RsaXN0OwogCi0gICAgaWYgKCAhZG9tLT5kZXZpY2VfbW9k ZWwgKQotICAgIHsKLSAgICAgICAgc3RydWN0IGh2bV9zdGFydF9pbmZvICpzdGFydF9pbmZvOwot ICAgICAgICBzaXplX3Qgc3RhcnRfaW5mb19zaXplOwotICAgICAgICB2b2lkICpzdGFydF9wYWdl OwotCi0gICAgICAgIHN0YXJ0X2luZm9fc2l6ZSA9IHNpemVvZigqc3RhcnRfaW5mbykgKyBkb20t PmNtZGxpbmVfc2l6ZTsKLSAgICAgICAgaWYgKCBkb20tPnJhbWRpc2tfYmxvYiApCi0gICAgICAg ICAgICBzdGFydF9pbmZvX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBodm1fbW9kbGlzdF9lbnRyeSk7 CisgICAgc3RhcnRfaW5mb19zaXplID0gc2l6ZW9mKCpzdGFydF9pbmZvKSArIGRvbS0+Y21kbGlu ZV9zaXplOworICAgIGlmICggZG9tLT5yYW1kaXNrX2Jsb2IgKQorICAgICAgICBzdGFydF9pbmZv X3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBodm1fbW9kbGlzdF9lbnRyeSk7CiAKLSAgICAgICAgaWYg KCBzdGFydF9pbmZvX3NpemUgPgotICAgICAgICAgICAgIGRvbS0+c3RhcnRfaW5mb19zZWcucGFn ZXMgPDwgWENfRE9NX1BBR0VfU0hJRlQoZG9tKSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIERP TVBSSU5URigiVHJ5aW5nIHRvIG1hcCBiZXlvbmQgc3RhcnRfaW5mb19zZWciKTsKLSAgICAgICAg ICAgIHJldHVybiAtMTsKLSAgICAgICAgfQorICAgIGlmICggc3RhcnRfaW5mb19zaXplID4KKyAg ICAgICAgIGRvbS0+c3RhcnRfaW5mb19zZWcucGFnZXMgPDwgWENfRE9NX1BBR0VfU0hJRlQoZG9t KSApCisgICAgeworICAgICAgICBET01QUklOVEYoIlRyeWluZyB0byBtYXAgYmV5b25kIHN0YXJ0 X2luZm9fc2VnIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CiAKLSAgICAgICAgc3RhcnRf cGFnZSA9IHhjX21hcF9mb3JlaWduX3JhbmdlKHhjaCwgZG9taWQsIHN0YXJ0X2luZm9fc2l6ZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1RfUkVBRCB8IFBS T1RfV1JJVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb20t PnN0YXJ0X2luZm9fc2VnLnBmbik7Ci0gICAgICAgIGlmICggc3RhcnRfcGFnZSA9PSBOVUxMICkK LSAgICAgICAgewotICAgICAgICAgICAgRE9NUFJJTlRGKCJVbmFibGUgdG8gbWFwIEhWTSBzdGFy dCBpbmZvIHBhZ2UiKTsKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgfQorICAgIHN0 YXJ0X3BhZ2UgPSB4Y19tYXBfZm9yZWlnbl9yYW5nZSh4Y2gsIGRvbWlkLCBzdGFydF9pbmZvX3Np emUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1RfUkVBRCB8IFBS T1RfV1JJVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbS0+c3Rh cnRfaW5mb19zZWcucGZuKTsKKyAgICBpZiAoIHN0YXJ0X3BhZ2UgPT0gTlVMTCApCisgICAgewor ICAgICAgICBET01QUklOVEYoIlVuYWJsZSB0byBtYXAgSFZNIHN0YXJ0IGluZm8gcGFnZSIpOwor ICAgICAgICByZXR1cm4gLTE7CisgICAgfQogCi0gICAgICAgIHN0YXJ0X2luZm8gPSBzdGFydF9w YWdlOworICAgIHN0YXJ0X2luZm8gPSBzdGFydF9wYWdlOworICAgIG1vZGxpc3QgPSBzdGFydF9w YWdlICsgc2l6ZW9mKCpzdGFydF9pbmZvKSArIGRvbS0+Y21kbGluZV9zaXplOwogCisgICAgaWYg KCAhZG9tLT5kZXZpY2VfbW9kZWwgKQorICAgIHsKICAgICAgICAgaWYgKCBkb20tPmNtZGxpbmUg KQogICAgICAgICB7CiAgICAgICAgICAgICBjaGFyICpjbWRsaW5lID0gc3RhcnRfcGFnZSArIHNp emVvZigqc3RhcnRfaW5mbyk7CkBAIC0xNzQwLDIyICsxNzgwLDMwIEBAIHN0YXRpYyBpbnQgYm9v dGxhdGVfaHZtKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKIAogICAgICAgICBpZiAoIGRvbS0+ cmFtZGlza19ibG9iICkKICAgICAgICAgewotICAgICAgICAgICAgc3RydWN0IGh2bV9tb2RsaXN0 X2VudHJ5ICptb2RsaXN0ID0KLSAgICAgICAgICAgICAgICBzdGFydF9wYWdlICsgc2l6ZW9mKCpz dGFydF9pbmZvKSArIGRvbS0+Y21kbGluZV9zaXplOwogCiAgICAgICAgICAgICBtb2RsaXN0WzBd LnBhZGRyID0gZG9tLT5yYW1kaXNrX3NlZy52c3RhcnQgLSBkb20tPnBhcm1zLnZpcnRfYmFzZTsK ICAgICAgICAgICAgIG1vZGxpc3RbMF0uc2l6ZSA9IGRvbS0+cmFtZGlza19zZWcudmVuZCAtIGRv bS0+cmFtZGlza19zZWcudnN0YXJ0OwotICAgICAgICAgICAgc3RhcnRfaW5mby0+bW9kbGlzdF9w YWRkciA9IChkb20tPnN0YXJ0X2luZm9fc2VnLnBmbiA8PCBQQUdFX1NISUZUKSArCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgodWludHB0cl90KW1vZGxpc3QgLSAodWludHB0cl90 KXN0YXJ0X2luZm8pOwogICAgICAgICAgICAgc3RhcnRfaW5mby0+bnJfbW9kdWxlcyA9IDE7CiAg ICAgICAgIH0KLQotICAgICAgICBzdGFydF9pbmZvLT5tYWdpYyA9IFhFTl9IVk1fU1RBUlRfTUFH SUNfVkFMVUU7Ci0KLSAgICAgICAgbXVubWFwKHN0YXJ0X3BhZ2UsIHN0YXJ0X2luZm9fc2l6ZSk7 CiAgICAgfQogICAgIGVsc2UKICAgICB7CisgICAgICAgIGFkZF9tb2R1bGVfdG9fbGlzdChkb20s ICZkb20tPmJpb3NfbW9kdWxlLCAiYmlvcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBt b2RsaXN0LCBzdGFydF9pbmZvKTsKKyAgICB9CisKKyAgICBpZiAoIHN0YXJ0X2luZm8tPm5yX21v ZHVsZXMgKQorICAgIHsKKyAgICAgICAgc3RhcnRfaW5mby0+bW9kbGlzdF9wYWRkciA9IChkb20t PnN0YXJ0X2luZm9fc2VnLnBmbiA8PCBQQUdFX1NISUZUKSArCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKCh1aW50cHRyX3QpbW9kbGlzdCAtICh1aW50cHRyX3Qpc3RhcnRfaW5mbyk7Cisg ICAgfQorCisgICAgc3RhcnRfaW5mby0+bWFnaWMgPSBYRU5fSFZNX1NUQVJUX01BR0lDX1ZBTFVF OworCisgICAgbXVubWFwKHN0YXJ0X3BhZ2UsIHN0YXJ0X2luZm9fc2l6ZSk7CisKKyAgICBpZiAo IGRvbS0+ZGV2aWNlX21vZGVsICkKKyAgICB7CiAgICAgICAgIHZvaWQgKmh2bV9pbmZvX3BhZ2U7 CiAKICAgICAgICAgaWYgKCAoaHZtX2luZm9fcGFnZSA9IHhjX21hcF9mb3JlaWduX3JhbmdlKApk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oIGIveGVuL2luY2x1ZGUvcHVibGlj L3hlbi5oCmluZGV4IDY0YmE3YWIuLjFjZmVjNWMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1 YmxpYy94ZW4uaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKQEAgLTc5OCw3ICs3OTgs NyBAQCBzdHJ1Y3Qgc3RhcnRfaW5mbyB7CiB0eXBlZGVmIHN0cnVjdCBzdGFydF9pbmZvIHN0YXJ0 X2luZm9fdDsKIAogLyoKLSAqIFN0YXJ0IG9mIGRheSBzdHJ1Y3R1cmUgcGFzc2VkIHRvIFBWSCBn dWVzdHMgaW4gJWVieC4KKyAqIFN0YXJ0IG9mIGRheSBzdHJ1Y3R1cmUgcGFzc2VkIHRvIFBWSCBn dWVzdHMgYW5kIHRvIEhWTSBndWVzdHMgaW4gJWVieC4KICAqCiAgKiBOT1RFOiBub3RoaW5nIHdp bGwgYmUgbG9hZGVkIGF0IHBoeXNpY2FsIGFkZHJlc3MgMCwgc28gYSAwIHZhbHVlIGluIGFueQog ICogb2YgdGhlIGFkZHJlc3MgZmllbGRzIHNob3VsZCBiZSB0cmVhdGVkIGFzIG5vdCBwcmVzZW50 LgotLSAKQW50aG9ueSBQRVJBUkQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=