From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v6 02/14] libxc: Prepare a start info structure for hvmloader Date: Tue, 12 Jul 2016 15:42:39 +0100 Message-ID: <20160712144251.558-3-anthony.perard@citrix.com> References: <20160712144251.558-1-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160712144251.558-1-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 , boris.ostrovsky@oracle.com, Ian Jackson , roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org Li4uIGFuZCBsb2FkIEJJT1MvVUVGSSBmaXJtd2FyZSBpbnRvIGd1ZXN0IG1lbW9yeS4KClRoaXMg YWRkcyBhIG5ldyBmaXJtd2FyZSBtb2R1bGUsIHN5c3RlbV9maXJtd2FyZV9tb2R1bGUuIEl0IGlz IGxvYWRlZCBpbgp0aGUgZ3Vlc3QgbWVtb3J5IGFuZCBmaW5hbCBsb2NhdGlvbiBpcyBwcm92aWRl ZCB0byBodm1sb2FkZXIgdmlhIHRoZQpodm1fc3RhcnRfaW5mbyBzdHJ1Y3QuCgpUaGlzIHBhdGNo IGNyZWF0ZSB0aGUgaHZtX3N0YXJ0X2luZm8gc3RydWN0IGZvciBIVk0gZ3Vlc3QgdGhhdCBoYXZl IGEKZGV2aWNlIG1vZGVsLCBzbyB0aGlzIGlzIG5vdyBjb21tb24gY29kZSB3aXRoIEhWTSBndWVz dCB3aXRob3V0IGRldmljZQptb2RlbC4KClNpZ25lZC1vZmYtYnk6IEFudGhvbnkgUEVSQVJEIDxh bnRob255LnBlcmFyZEBjaXRyaXguY29tPgoKLS0tCkNDOiBib3Jpcy5vc3Ryb3Zza3lAb3JhY2xl LmNvbQpDQzogcm9nZXIucGF1QGNpdHJpeC5jb20KCkNoYW5nZXMgaW4gVjY6Ci0gY2hhbmdlIGRl c2NyaXB0aW9uIChmb3IgdmVyYm9zZSBvdXRwdXQpIG9mIHRoZSBhbGxvY2F0aW9uIG9mCiAgaHZt X3N0YXJ0X2luZm8gZnJvbSAiSFZNbGl0ZSBzdGFydCBpbmZvIiB0byAiSFZNIHN0YXJ0IGluZm8i LgoKQ2hhbmdlcyBpbiBWNToKLSBpbiBhbGxvY19tYWdpY19wYWdlc19odm0sIGNoZWNrIGRvbS0+ ZGV2aWNlX21vZGVsIG9ubHkgb25jZSBpbnN0ZWFkIG9mCiAgdHdpY2UgKGZvbGQgc2Vjb25kIGlm IGludG8gcHJldmlvdXMgZWxzZSkKLSByZXdvcmsgYWRkX21vZHVsZV90b19saXN0IHRvIG1ha2Ug aXQgZWFzaWVyIHRvIHJlYWQKLSBhbHNvIGNvbW1lbnQgYWJvdXQgdGhlIGludGVuZGVkIG1lbW9y eSBsYXlvdXQgb2Ygc3RhcnRfaW5mbyBhbmQgdGhlCiAgbW9kdWxlcwotIGluIGJvb3RsYXRlX2h2 bSgpLCBkcm9wIHN0YXJ0X3BhZ2UgYW5kIHVzZSBzdGFydF9pbmZvIGFzIHRoZXkgcG9pbnQgdG8K ICB0aGUgc2FtZSBhZGRyZXNzCi0gcmVuYW1lIHhjX2RvbV9pbWFnZS5iaW9zX21vZHVsZSB0byB4 Y19kb21faW1hZ2Uuc3lzdGVtX2Zpcm13YXJlX21vZHVsZQotIHJlbmFtZSBtb2R1bGUgbmFtZSB0 byAiZmlybXdhcmUiICh3YXMgImJpb3MiKQoKQ2hhbmdlcyBpbiBWNDoKLSBjaGFuZ2UgdGl0bGUg dG8gc3VnZ2VzdCB0aGUgY2hhbmdlIG9mIGJlYXZpb3IKLSByZW1vdmUgY29kZSB0byBsb2FkIGFj cGkgdGFibGVzIChkc2R0KQotIFVwZGF0ZSBwdWJsaWMveGVuLmggYWJvdXQgaHZtX3N0YXJ0X2lu Zm8gYXZhaWxhYmxlIG9uIG90aGVyIEhWTSBndWVzdAogIGluICVlYnguCgpDaGFuZ2VzIGluIFYz OgotIHJlbmFtZSBhY3BpX3RhYmxlX21vZHVsZSB0byBmdWxsX2FjcGlfbW9kdWxlLgotIGZhY3Rv cmlzZSBtb2R1bGUgbG9hZGluZywgdXNpbmcgbmV3IGZ1bmN0aW9uIHRvIGxvYWQgZXhpc3Rpbmcg b3B0aW5hbAogIG1vZHVsZSwgdGhpcyBzaG91bGQgbm90IGNoYW5nZSBhbnl0aGluZwotIHNob3Vs ZCBub3cgdXNlIHRoZSBzYW1lIGNvZGUgdG8gbG9hZHMgbW9kdWxlcyBhcyBmb3IgSFZNbGl0ZSBW TXMuCiAgdGhpcyBhdm9pZCBkdXBsaWNhdGlvbiBvZiBjb2RlLgotIG5vIG1vcmUgZ2VuZXJpYyBj bWRsaW5lIHdpdGggYSBsaXN0IG9mIG1vZHVsZXMsIGVhY2ggbW9kdWxlIGhhdmUgaXRzIG5hbWUK ICBpbiB0aGUgbW9kdWxlIHNwZWNpZmljIGNtZGxpbmUuCi0gc2NvcGUgY2hhbmdlIGZvciBjb21t b24gY29kZSBiZXR3ZWVuIGh2bWxpdGUgYW5kIGh2bWxvYWRlcgotLS0KIHRvb2xzL2xpYnhjL2lu Y2x1ZGUveGNfZG9tLmggICB8ICAgMyArCiB0b29scy9saWJ4Yy94Y19kb21faHZtbG9hZGVyLmMg fCAgIDMgKwogdG9vbHMvbGlieGMveGNfZG9tX3g4Ni5jICAgICAgIHwgMTUyICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgg ICAgICAgfCAgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTE2IGluc2VydGlvbnMoKyksIDQ0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9tLmggYi90 b29scy9saWJ4Yy9pbmNsdWRlL3hjX2RvbS5oCmluZGV4IDZjYjEwYzQuLjA2Mjk5NzEgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9tLmgKKysrIGIvdG9vbHMvbGlieGMvaW5j bHVkZS94Y19kb20uaApAQCAtMjA5LDYgKzIwOSw5IEBAIHN0cnVjdCB4Y19kb21faW1hZ2Ugewog ICAgIC8qIElmIHVuc2V0IGRpc2FibGVzIHRoZSBzZXR1cCBvZiB0aGUgSU9SRVEgcGFnZXMuICov CiAgICAgYm9vbCBkZXZpY2VfbW9kZWw7CiAKKyAgICAvKiBCSU9TL0Zpcm13YXJlIHBhc3NlZCB0 byBIVk1MT0FERVIgKi8KKyAgICBzdHJ1Y3QgeGNfaHZtX2Zpcm13YXJlX21vZHVsZSBzeXN0ZW1f ZmlybXdhcmVfbW9kdWxlOworCiAgICAgLyogRXh0cmEgQUNQSSB0YWJsZXMgcGFzc2VkIHRvIEhW TUxPQURFUiAqLwogICAgIHN0cnVjdCB4Y19odm1fZmlybXdhcmVfbW9kdWxlIGFjcGlfbW9kdWxl OwogCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19kb21faHZtbG9hZGVyLmMgYi90b29scy9s aWJ4Yy94Y19kb21faHZtbG9hZGVyLmMKaW5kZXggODE1MGI3NC4uNmViODUxNiAxMDA2NDQKLS0t IGEvdG9vbHMvbGlieGMveGNfZG9tX2h2bWxvYWRlci5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX2Rv bV9odm1sb2FkZXIuYwpAQCAtMTY5LDYgKzE2OSw5IEBAIHN0YXRpYyBpbnQgbW9kdWxlc19pbml0 KHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKIHsKICAgICBpbnQgcmM7CiAKKyAgICByYyA9IG1v ZHVsZV9pbml0X29uZShkb20sICZkb20tPnN5c3RlbV9maXJtd2FyZV9tb2R1bGUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIlN5c3RlbSBGaXJtd2FyZSBtb2R1bGUiKTsKKyAgICBpZiAoIHJj ICkgZ290byBlcnI7CiAgICAgcmMgPSBtb2R1bGVfaW5pdF9vbmUoZG9tLCAmZG9tLT5hY3BpX21v ZHVsZSwgIkFDUEkgbW9kdWxlIik7CiAgICAgaWYgKCByYyApIGdvdG8gZXJyOwogICAgIHJjID0g bW9kdWxlX2luaXRfb25lKGRvbSwgJmRvbS0+c21iaW9zX21vZHVsZSwgIlNNQklPUyBtb2R1bGUi KTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2RvbV94ODYuYyBiL3Rvb2xzL2xpYnhjL3hj X2RvbV94ODYuYwppbmRleCAwMjFmOGE4Li5iYzJkYmIyIDEwMDY0NAotLS0gYS90b29scy9saWJ4 Yy94Y19kb21feDg2LmMKKysrIGIvdG9vbHMvbGlieGMveGNfZG9tX3g4Ni5jCkBAIC02OSw2ICs2 OSw5IEBACiAjZGVmaW5lIHJvdW5kX3VwKGFkZHIsIG1hc2spICAgICAoKGFkZHIpIHwgKG1hc2sp KQogI2RlZmluZSByb3VuZF9wZ191cChhZGRyKSAgKCgoYWRkcikgKyBQQUdFX1NJWkVfWDg2IC0g MSkgJiB+KFBBR0VfU0laRV9YODYgLSAxKSkKIAorI2RlZmluZSBIVk1MT0FERVJfTU9EVUxFX01B WF9DT1VOVCAxCisjZGVmaW5lIEhWTUxPQURFUl9NT0RVTEVfTkFNRV9TSVpFIDEwCisKIHN0cnVj dCB4Y19kb21fcGFyYW1zIHsKICAgICB1bnNpZ25lZCBsZXZlbHM7CiAgICAgeGVuX3ZhZGRyX3Qg dmFkZHJfbWFzazsKQEAgLTU5MCw2ICs1OTMsNyBAQCBzdGF0aWMgaW50IGFsbG9jX21hZ2ljX3Bh Z2VzX2h2bShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiAgICAgeGVuX3Bmbl90IHNwZWNpYWxf YXJyYXlbWDg2X0hWTV9OUl9TUEVDSUFMX1BBR0VTXTsKICAgICB4ZW5fcGZuX3QgaW9yZXFfc2Vy dmVyX2FycmF5W05SX0lPUkVRX1NFUlZFUl9QQUdFU107CiAgICAgeGNfaW50ZXJmYWNlICp4Y2gg PSBkb20tPnhjaDsKKyAgICBzaXplX3Qgc3RhcnRfaW5mb19zaXplID0gc2l6ZW9mKHN0cnVjdCBo dm1fc3RhcnRfaW5mbyk7CiAKICAgICAvKiBBbGxvY2F0ZSBhbmQgY2xlYXIgc3BlY2lhbCBwYWdl cy4gKi8KICAgICBmb3IgKCBpID0gMDsgaSA8IFg4Nl9IVk1fTlJfU1BFQ0lBTF9QQUdFUzsgaSsr ICkKQEAgLTYyNCw4ICs2MjgsNiBAQCBzdGF0aWMgaW50IGFsbG9jX21hZ2ljX3BhZ2VzX2h2bShz dHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiAKICAgICBpZiAoICFkb20tPmRldmljZV9tb2RlbCAp CiAgICAgewotICAgICAgICBzaXplX3Qgc3RhcnRfaW5mb19zaXplID0gc2l6ZW9mKHN0cnVjdCBo dm1fc3RhcnRfaW5mbyk7Ci0KICAgICAgICAgaWYgKCBkb20tPmNtZGxpbmUgKQogICAgICAgICB7 CiAgICAgICAgICAgICBkb20tPmNtZGxpbmVfc2l6ZSA9IFJPVU5EVVAoc3RybGVuKGRvbS0+Y21k bGluZSkgKyAxLCA4KTsKQEAgLTYzNSwxNyArNjM3LDE4IEBAIHN0YXRpYyBpbnQgYWxsb2NfbWFn aWNfcGFnZXNfaHZtKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKICAgICAgICAgLyogTGltaXRl ZCB0byBvbmUgbW9kdWxlLiAqLwogICAgICAgICBpZiAoIGRvbS0+cmFtZGlza19ibG9iICkKICAg ICAgICAgICAgIHN0YXJ0X2luZm9fc2l6ZSArPSBzaXplb2Yoc3RydWN0IGh2bV9tb2RsaXN0X2Vu dHJ5KTsKLQotICAgICAgICByYyA9IHhjX2RvbV9hbGxvY19zZWdtZW50KGRvbSwgJmRvbS0+c3Rh cnRfaW5mb19zZWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhWTWxpdGUg c3RhcnQgaW5mbyIsIDAsIHN0YXJ0X2luZm9fc2l6ZSk7Ci0gICAgICAgIGlmICggcmMgIT0gMCAp Ci0gICAgICAgIHsKLSAgICAgICAgICAgIERPTVBSSU5URigiVW5hYmxlIHRvIHJlc2VydmUgbWVt b3J5IGZvciB0aGUgc3RhcnQgaW5mbyIpOwotICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAgICAg IH0KICAgICB9CiAgICAgZWxzZQogICAgIHsKKyAgICAgICAgc3RhcnRfaW5mb19zaXplICs9Cisg ICAgICAgICAgICBzaXplb2Yoc3RydWN0IGh2bV9tb2RsaXN0X2VudHJ5KSAqIEhWTUxPQURFUl9N T0RVTEVfTUFYX0NPVU5UOworICAgICAgICAvKgorICAgICAgICAgKiBBZGQgZXh0cmEgc3BhY2Ug dG8gd3JpdGUgbW9kdWxlcyBuYW1lLgorICAgICAgICAgKiBUaGUgSFZNTE9BREVSX01PRFVMRV9O QU1FX1NJWkUgYWNjb3VudHMgZm9yIE5VTCBieXRlLgorICAgICAgICAgKi8KKyAgICAgICAgc3Rh cnRfaW5mb19zaXplICs9CisgICAgICAgICAgICBIVk1MT0FERVJfTU9EVUxFX05BTUVfU0laRSAq IEhWTUxPQURFUl9NT0RVTEVfTUFYX0NPVU5UOworCiAgICAgICAgIC8qCiAgICAgICAgICAqIEFs bG9jYXRlIGFuZCBjbGVhciBhZGRpdGlvbmFsIGlvcmVxIHNlcnZlciBwYWdlcy4gVGhlIGRlZmF1 bHQKICAgICAgICAgICogc2VydmVyIHdpbGwgdXNlIHRoZSBJT1JFUSBhbmQgQlVGSU9SRVEgc3Bl Y2lhbCBwYWdlcyBhYm92ZS4KQEAgLTY3Miw2ICs2NzUsMTQgQEAgc3RhdGljIGludCBhbGxvY19t YWdpY19wYWdlc19odm0oc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQogICAgICAgICAgICAgICAg ICAgICAgICAgIE5SX0lPUkVRX1NFUlZFUl9QQUdFUyk7CiAgICAgfQogCisgICAgcmMgPSB4Y19k b21fYWxsb2Nfc2VnbWVudChkb20sICZkb20tPnN0YXJ0X2luZm9fc2VnLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIkhWTSBzdGFydCBpbmZvIiwgMCwgc3RhcnRfaW5mb19zaXplKTsK KyAgICBpZiAoIHJjICE9IDAgKQorICAgIHsKKyAgICAgICAgRE9NUFJJTlRGKCJVbmFibGUgdG8g cmVzZXJ2ZSBtZW1vcnkgZm9yIHRoZSBzdGFydCBpbmZvIik7CisgICAgICAgIGdvdG8gb3V0Owor ICAgIH0KKwogICAgIC8qCiAgICAgICogSWRlbnRpdHktbWFwIHBhZ2UgdGFibGUgaXMgcmVxdWly ZWQgZm9yIHJ1bm5pbmcgd2l0aCBDUjAuUEc9MCB3aGVuCiAgICAgICogdXNpbmcgSW50ZWwgRVBU LiBDcmVhdGUgYSAzMi1iaXQgbm9uLVBBRSBwYWdlIGRpcmVjdG9yeSBvZiBzdXBlcnBhZ2VzLgpA QCAtMTY4OSw0MiArMTcwMCw4OSBAQCBzdGF0aWMgaW50IGFsbG9jX3BndGFibGVzX2h2bShzdHJ1 Y3QgeGNfZG9tX2ltYWdlICpkb20pCiAgICAgcmV0dXJuIDA7CiB9CiAKKy8qCisgKiBUaGUgbWVt b3J5IGxheW91dCBvZiB0aGUgc3RhcnRfaW5mbyBwYWdlIGFuZCB0aGUgbW9kdWxlcywgYW5kIHdo ZXJlIHRoZQorICogYWRkcmVzc2VzIGFyZSBzdG9yZWQ6CisgKgorICogLy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS1cCisgKiB8IHN0cnVjdCBodm1fc3RhcnRfaW5mbyAgICAgICAg ICAgIHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LSBzdGFydF9p bmZvLT5tb2RsaXN0X3BhZGRyCisgKiB8IHN0cnVjdCBodm1fbW9kbGlzdF9lbnRyeVswXSAgICAg IHwKKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogfCBzdHJ1Y3Qg aHZtX21vZGxpc3RfZW50cnlbMV0gICAgICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSsgPC0gbW9kbGlzdFswXS5jbWRsaW5lX3BhZGRyCisgKiB8IGNtZGxpbmUgb2Yg bW9kdWxlIDAgICAgICAgICAgICAgIHwKKyAqIHwgY2hhcltIVk1MT0FERVJfTU9EVUxFX05BTUVf U0laRV0gfAorICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtIG1vZGxp c3RbMV0uY21kbGluZV9wYWRkcgorICogfCBjbWRsaW5lIG9mIG1vZHVsZSAxICAgICAgICAgICAg ICB8CisgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqLworc3RhdGlj IHZvaWQgYWRkX21vZHVsZV90b19saXN0KHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfaHZtX2Zpcm13YXJlX21vZHVsZSAq bW9kdWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGh2bV9tb2RsaXN0X2VudHJ5 ICptb2RsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBodm1fc3Rh cnRfaW5mbyAqc3RhcnRfaW5mbykKK3sKKyAgICB1aW50MzJfdCBpbmRleCA9IHN0YXJ0X2luZm8t Pm5yX21vZHVsZXM7CisgICAgdm9pZCAqbW9kdWxlc19jbWRsaW5lX3N0YXJ0ID0gbW9kbGlzdCAr IEhWTUxPQURFUl9NT0RVTEVfTUFYX0NPVU5UOworICAgIHVpbnQ2NF90IG1vZGxpc3RfcGFkZHIg PSAoZG9tLT5zdGFydF9pbmZvX3NlZy5wZm4gPDwgUEFHRV9TSElGVCkgKworICAgICAgICAoKHVp bnRwdHJfdCltb2RsaXN0IC0gKHVpbnRwdHJfdClzdGFydF9pbmZvKTsKKyAgICB1aW50NjRfdCBt b2R1bGVzX2NtZGxpbmVfcGFkZHIgPSBtb2RsaXN0X3BhZGRyICsKKyAgICAgICAgc2l6ZW9mKHN0 cnVjdCBodm1fbW9kbGlzdF9lbnRyeSkgKiBIVk1MT0FERVJfTU9EVUxFX01BWF9DT1VOVDsKKwor ICAgIGlmICggbW9kdWxlLT5sZW5ndGggPT0gMCApCisgICAgICAgIHJldHVybjsKKworICAgIGFz c2VydChzdGFydF9pbmZvLT5ucl9tb2R1bGVzIDwgSFZNTE9BREVSX01PRFVMRV9NQVhfQ09VTlQp OworICAgIGFzc2VydChzdHJubGVuKG5hbWUsIEhWTUxPQURFUl9NT0RVTEVfTkFNRV9TSVpFKQor ICAgICAgICAgICA8IEhWTUxPQURFUl9NT0RVTEVfTkFNRV9TSVpFKTsKKworICAgIG1vZGxpc3Rb aW5kZXhdLnBhZGRyID0gbW9kdWxlLT5ndWVzdF9hZGRyX291dDsKKyAgICBtb2RsaXN0W2luZGV4 XS5zaXplID0gbW9kdWxlLT5sZW5ndGg7CisKKyAgICBzdHJuY3B5KG1vZHVsZXNfY21kbGluZV9z dGFydCArIEhWTUxPQURFUl9NT0RVTEVfTkFNRV9TSVpFICogaW5kZXgsCisgICAgICAgICAgICBu YW1lLCBIVk1MT0FERVJfTU9EVUxFX05BTUVfU0laRSk7CisgICAgbW9kbGlzdFtpbmRleF0uY21k bGluZV9wYWRkciA9CisgICAgICAgIG1vZHVsZXNfY21kbGluZV9wYWRkciArIEhWTUxPQURFUl9N T0RVTEVfTkFNRV9TSVpFICogaW5kZXg7CisKKyAgICBzdGFydF9pbmZvLT5ucl9tb2R1bGVzKys7 Cit9CisKIHN0YXRpYyBpbnQgYm9vdGxhdGVfaHZtKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkK IHsKICAgICB1aW50MzJfdCBkb21pZCA9IGRvbS0+Z3Vlc3RfZG9taWQ7CiAgICAgeGNfaW50ZXJm YWNlICp4Y2ggPSBkb20tPnhjaDsKKyAgICBzdHJ1Y3QgaHZtX3N0YXJ0X2luZm8gKnN0YXJ0X2lu Zm87CisgICAgc2l6ZV90IHN0YXJ0X2luZm9fc2l6ZTsKKyAgICBzdHJ1Y3QgaHZtX21vZGxpc3Rf ZW50cnkgKm1vZGxpc3Q7CiAKLSAgICBpZiAoICFkb20tPmRldmljZV9tb2RlbCApCi0gICAgewot ICAgICAgICBzdHJ1Y3QgaHZtX3N0YXJ0X2luZm8gKnN0YXJ0X2luZm87Ci0gICAgICAgIHNpemVf dCBzdGFydF9pbmZvX3NpemU7Ci0gICAgICAgIHZvaWQgKnN0YXJ0X3BhZ2U7Ci0KLSAgICAgICAg c3RhcnRfaW5mb19zaXplID0gc2l6ZW9mKCpzdGFydF9pbmZvKSArIGRvbS0+Y21kbGluZV9zaXpl OwotICAgICAgICBpZiAoIGRvbS0+cmFtZGlza19ibG9iICkKLSAgICAgICAgICAgIHN0YXJ0X2lu Zm9fc2l6ZSArPSBzaXplb2Yoc3RydWN0IGh2bV9tb2RsaXN0X2VudHJ5KTsKKyAgICBzdGFydF9p bmZvX3NpemUgPSBzaXplb2YoKnN0YXJ0X2luZm8pICsgZG9tLT5jbWRsaW5lX3NpemU7CisgICAg aWYgKCBkb20tPnJhbWRpc2tfYmxvYiApCisgICAgICAgIHN0YXJ0X2luZm9fc2l6ZSArPSBzaXpl b2Yoc3RydWN0IGh2bV9tb2RsaXN0X2VudHJ5KTsKIAotICAgICAgICBpZiAoIHN0YXJ0X2luZm9f c2l6ZSA+Ci0gICAgICAgICAgICAgZG9tLT5zdGFydF9pbmZvX3NlZy5wYWdlcyA8PCBYQ19ET01f UEFHRV9TSElGVChkb20pICkKLSAgICAgICAgewotICAgICAgICAgICAgRE9NUFJJTlRGKCJUcnlp bmcgdG8gbWFwIGJleW9uZCBzdGFydF9pbmZvX3NlZyIpOwotICAgICAgICAgICAgcmV0dXJuIC0x OwotICAgICAgICB9CisgICAgaWYgKCBzdGFydF9pbmZvX3NpemUgPgorICAgICAgICAgZG9tLT5z dGFydF9pbmZvX3NlZy5wYWdlcyA8PCBYQ19ET01fUEFHRV9TSElGVChkb20pICkKKyAgICB7Cisg ICAgICAgIERPTVBSSU5URigiVHJ5aW5nIHRvIG1hcCBiZXlvbmQgc3RhcnRfaW5mb19zZWciKTsK KyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KIAotICAgICAgICBzdGFydF9wYWdlID0geGNfbWFw X2ZvcmVpZ25fcmFuZ2UoeGNoLCBkb21pZCwgc3RhcnRfaW5mb19zaXplLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbS0+c3RhcnRfaW5mb19z ZWcucGZuKTsKLSAgICAgICAgaWYgKCBzdGFydF9wYWdlID09IE5VTEwgKQotICAgICAgICB7Ci0g ICAgICAgICAgICBET01QUklOVEYoIlVuYWJsZSB0byBtYXAgSFZNIHN0YXJ0IGluZm8gcGFnZSIp OwotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9CisgICAgc3RhcnRfaW5mbyA9IHhj X21hcF9mb3JlaWduX3JhbmdlKHhjaCwgZG9taWQsIHN0YXJ0X2luZm9fc2l6ZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tLT5zdGFydF9pbmZvX3NlZy5w Zm4pOworICAgIGlmICggc3RhcnRfaW5mbyA9PSBOVUxMICkKKyAgICB7CisgICAgICAgIERPTVBS SU5URigiVW5hYmxlIHRvIG1hcCBIVk0gc3RhcnQgaW5mbyBwYWdlIik7CisgICAgICAgIHJldHVy biAtMTsKKyAgICB9CiAKLSAgICAgICAgc3RhcnRfaW5mbyA9IHN0YXJ0X3BhZ2U7CisgICAgbW9k bGlzdCA9ICh2b2lkKikoc3RhcnRfaW5mbyArIDEpICsgZG9tLT5jbWRsaW5lX3NpemU7CiAKKyAg ICBpZiAoICFkb20tPmRldmljZV9tb2RlbCApCisgICAgewogICAgICAgICBpZiAoIGRvbS0+Y21k bGluZSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNoYXIgKmNtZGxpbmUgPSBzdGFydF9wYWdl ICsgc2l6ZW9mKCpzdGFydF9pbmZvKTsKKyAgICAgICAgICAgIGNoYXIgKmNtZGxpbmUgPSAodm9p ZCopKHN0YXJ0X2luZm8gKyAxKTsKIAogICAgICAgICAgICAgc3RybmNweShjbWRsaW5lLCBkb20t PmNtZGxpbmUsIGRvbS0+Y21kbGluZV9zaXplKTsKICAgICAgICAgICAgIHN0YXJ0X2luZm8tPmNt ZGxpbmVfcGFkZHIgPSAoZG9tLT5zdGFydF9pbmZvX3NlZy5wZm4gPDwgUEFHRV9TSElGVCkgKwpA QCAtMTczMywyMiArMTc5MSwzMCBAQCBzdGF0aWMgaW50IGJvb3RsYXRlX2h2bShzdHJ1Y3QgeGNf ZG9tX2ltYWdlICpkb20pCiAKICAgICAgICAgaWYgKCBkb20tPnJhbWRpc2tfYmxvYiApCiAgICAg ICAgIHsKLSAgICAgICAgICAgIHN0cnVjdCBodm1fbW9kbGlzdF9lbnRyeSAqbW9kbGlzdCA9Ci0g ICAgICAgICAgICAgICAgc3RhcnRfcGFnZSArIHNpemVvZigqc3RhcnRfaW5mbykgKyBkb20tPmNt ZGxpbmVfc2l6ZTsKIAogICAgICAgICAgICAgbW9kbGlzdFswXS5wYWRkciA9IGRvbS0+cmFtZGlz a19zZWcudnN0YXJ0IC0gZG9tLT5wYXJtcy52aXJ0X2Jhc2U7CiAgICAgICAgICAgICBtb2RsaXN0 WzBdLnNpemUgPSBkb20tPnJhbWRpc2tfc2VnLnZlbmQgLSBkb20tPnJhbWRpc2tfc2VnLnZzdGFy dDsKLSAgICAgICAgICAgIHN0YXJ0X2luZm8tPm1vZGxpc3RfcGFkZHIgPSAoZG9tLT5zdGFydF9p bmZvX3NlZy5wZm4gPDwgUEFHRV9TSElGVCkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoKHVpbnRwdHJfdCltb2RsaXN0IC0gKHVpbnRwdHJfdClzdGFydF9pbmZvKTsKICAgICAg ICAgICAgIHN0YXJ0X2luZm8tPm5yX21vZHVsZXMgPSAxOwogICAgICAgICB9Ci0KLSAgICAgICAg c3RhcnRfaW5mby0+bWFnaWMgPSBYRU5fSFZNX1NUQVJUX01BR0lDX1ZBTFVFOwotCi0gICAgICAg IG11bm1hcChzdGFydF9wYWdlLCBzdGFydF9pbmZvX3NpemUpOwogICAgIH0KICAgICBlbHNlCiAg ICAgeworICAgICAgICBhZGRfbW9kdWxlX3RvX2xpc3QoZG9tLCAmZG9tLT5zeXN0ZW1fZmlybXdh cmVfbW9kdWxlLCAiZmlybXdhcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kbGlz dCwgc3RhcnRfaW5mbyk7CisgICAgfQorCisgICAgaWYgKCBzdGFydF9pbmZvLT5ucl9tb2R1bGVz ICkKKyAgICB7CisgICAgICAgIHN0YXJ0X2luZm8tPm1vZGxpc3RfcGFkZHIgPSAoZG9tLT5zdGFy dF9pbmZvX3NlZy5wZm4gPDwgUEFHRV9TSElGVCkgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgodWludHB0cl90KW1vZGxpc3QgLSAodWludHB0cl90KXN0YXJ0X2luZm8pOworICAgIH0K KworICAgIHN0YXJ0X2luZm8tPm1hZ2ljID0gWEVOX0hWTV9TVEFSVF9NQUdJQ19WQUxVRTsKKwor ICAgIG11bm1hcChzdGFydF9pbmZvLCBzdGFydF9pbmZvX3NpemUpOworCisgICAgaWYgKCBkb20t PmRldmljZV9tb2RlbCApCisgICAgewogICAgICAgICB2b2lkICpodm1faW5mb19wYWdlOwogCiAg ICAgICAgIGlmICggKGh2bV9pbmZvX3BhZ2UgPSB4Y19tYXBfZm9yZWlnbl9yYW5nZSgKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4u aAppbmRleCBiOWU1ZTBmLi40MjdlNzRmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMv eGVuLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oCkBAIC04MjEsNyArODIxLDcgQEAg c3RydWN0IHN0YXJ0X2luZm8gewogdHlwZWRlZiBzdHJ1Y3Qgc3RhcnRfaW5mbyBzdGFydF9pbmZv X3Q7CiAKIC8qCi0gKiBTdGFydCBvZiBkYXkgc3RydWN0dXJlIHBhc3NlZCB0byBQVkggZ3Vlc3Rz IGluICVlYnguCisgKiBTdGFydCBvZiBkYXkgc3RydWN0dXJlIHBhc3NlZCB0byBQVkggZ3Vlc3Rz IGFuZCB0byBIVk0gZ3Vlc3RzIGluICVlYnguCiAgKgogICogTk9URTogbm90aGluZyB3aWxsIGJl IGxvYWRlZCBhdCBwaHlzaWNhbCBhZGRyZXNzIDAsIHNvIGEgMCB2YWx1ZSBpbiBhbnkKICAqIG9m IHRoZSBhZGRyZXNzIGZpZWxkcyBzaG91bGQgYmUgdHJlYXRlZCBhcyBub3QgcHJlc2VudC4KLS0g CkFudGhvbnkgUEVSQVJECgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==