From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v4 02/14] libxc: Prepare a start info structure for hvmloader Date: Tue, 15 Mar 2016 20:18:49 -0400 Message-ID: <20160316001849.GH29495@char.us.oracle.com> References: <1457978150-27201-1-git-send-email-anthony.perard@citrix.com> <1457978150-27201-3-git-send-email-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1457978150-27201-3-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: Anthony PERARD , boris.ostrovsky@oracle.com, roger.pau@citrix.com Cc: Ian Jackson , Stefano Stabellini , Wei Liu , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gTW9uLCBNYXIgMTQsIDIwMTYgYXQgMDU6NTU6MzdQTSArMDAwMCwgQW50aG9ueSBQRVJBUkQg d3JvdGU6Cj4gLi4uIGFuZCBsb2FkIEJJT1MgaW50byBndWVzdCBtZW1vcnkuCj4gCj4gVGhpcyBh ZGRzIGEgbmV3IGZpcm13YXJlIG1vZHVsZSwgYmlvc19tb2R1bGUuIEl0IGlzCj4gbG9hZGVkIGlu IHRoZSBndWVzdCBtZW1vcnkgYW5kIGZpbmFsIGxvY2F0aW9uIGlzIHByb3ZpZGVkIHRvIGh2bWxv YWRlcgo+IHZpYSB0aGUgaHZtX3N0YXJ0X2luZm8gc3RydWN0Lgo+IAo+IFRoaXMgcGF0Y2ggY3Jl YXRlIHRoZSBodm1fc3RhcnRfaW5mbyBzdHJ1Y3QgZm9yIEhWTSBndWVzdCB0aGF0IGhhdmUgYQo+ IGRldmljZSBtb2RlbCwgc28gdGhpcyBpcyBub3cgY29tbW9uIGNvZGUgd2l0aCBIVk0gZ3Vlc3Qg d2l0aG91dCBkZXZpY2UKPiBtb2RlbC4KCkNDLWluZyBCb3JpcyBhbmQgUm9nZXIgc2luY2UgdGhp cyBpbXBhY3QgdGhlIFBWSCBjb2RlLgoKQW5kIHRoZXJlZm9yZSBub3Qgc25pcHBpbmcgdGhlIGNv ZGUgc28gdGhleSBjYW4gc2VlIGl0IGluIGl0cyBmdWxsCmdsb3J5LgoKPiAKPiBTaWduZWQtb2Zm LWJ5OiBBbnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4KPiAtLS0KPiBD aGFuZ2UgaW4gVjQ6Cj4gLSBjaGFuZ2UgdGl0bGUgdG8gc3VnZ2VzdCB0aGUgY2hhbmdlIG9mIGJl YXZpb3IKPiAtIHJlbW92ZSBjb2RlIHRvIGxvYWQgYWNwaSB0YWJsZXMgKGRzZHQpCj4gLSBVcGRh dGUgcHVibGljL3hlbi5oIGFib3V0IGh2bV9zdGFydF9pbmZvIGF2YWlsYWJsZSBvbiBvdGhlciBI Vk0gZ3Vlc3QKPiAgIGluICVlYnguCj4gCj4gQ2hhbmdlIGluIFYzOgo+IC0gcmVuYW1lIGFjcGlf dGFibGVfbW9kdWxlIHRvIGZ1bGxfYWNwaV9tb2R1bGUuCj4gLSBmYWN0b3Jpc2UgbW9kdWxlIGxv YWRpbmcsIHVzaW5nIG5ldyBmdW5jdGlvbiB0byBsb2FkIGV4aXN0aW5nIG9wdGluYWwKPiAgIG1v ZHVsZSwgdGhpcyBzaG91bGQgbm90IGNoYW5nZSBhbnl0aGluZwo+IC0gc2hvdWxkIG5vdyB1c2Ug dGhlIHNhbWUgY29kZSB0byBsb2FkcyBtb2R1bGVzIGFzIGZvciBIVk1saXRlIFZNcy4KPiAgIHRo aXMgYXZvaWQgZHVwbGljYXRpb24gb2YgY29kZS4KPiAtIG5vIG1vcmUgZ2VuZXJpYyBjbWRsaW5l IHdpdGggYSBsaXN0IG9mIG1vZHVsZXMsIGVhY2ggbW9kdWxlIGhhdmUgaXRzIG5hbWUKPiAgIGlu IHRoZSBtb2R1bGUgc3BlY2lmaWMgY21kbGluZS4KPiAtIHNjb3BlIGNoYW5nZSBmb3IgY29tbW9u IGNvZGUgYmV0d2VlbiBodm1saXRlIGFuZCBodm1sb2FkZXIKPiAtLS0KPiAgdG9vbHMvbGlieGMv aW5jbHVkZS94Y19kb20uaCAgIHwgICAzICsKPiAgdG9vbHMvbGlieGMveGNfZG9tX2h2bWxvYWRl ci5jIHwgICAyICsKPiAgdG9vbHMvbGlieGMveGNfZG9tX3g4Ni5jICAgICAgIHwgMTMyICsrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCj4gIHhlbi9pbmNsdWRlL3B1Ymxp Yy94ZW4uaCAgICAgICB8ICAgMiArLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMo KyksIDQzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRl L3hjX2RvbS5oIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaAo+IGluZGV4IDZlYmU5NDYu LjkzZjg5NGMgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaAo+ICsr KyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9tLmgKPiBAQCAtMjA5LDYgKzIwOSw5IEBAIHN0 cnVjdCB4Y19kb21faW1hZ2Ugewo+ICAgICAgLyogSWYgdW5zZXQgZGlzYWJsZXMgdGhlIHNldHVw IG9mIHRoZSBJT1JFUSBwYWdlcy4gKi8KPiAgICAgIGJvb2wgZGV2aWNlX21vZGVsOwo+ICAKPiAr ICAgIC8qIEJJT1MgcGFzc2VkIHRvIEhWTUxPQURFUiAqLwo+ICsgICAgc3RydWN0IHhjX2h2bV9m aXJtd2FyZV9tb2R1bGUgYmlvc19tb2R1bGU7Cj4gKwo+ICAgICAgLyogRXh0cmEgQUNQSSB0YWJs ZXMgcGFzc2VkIHRvIEhWTUxPQURFUiAqLwo+ICAgICAgc3RydWN0IHhjX2h2bV9maXJtd2FyZV9t b2R1bGUgYWNwaV9tb2R1bGU7Cj4gIAo+IGRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19kb21f aHZtbG9hZGVyLmMgYi90b29scy9saWJ4Yy94Y19kb21faHZtbG9hZGVyLmMKPiBpbmRleCA3Y2Y1 ODU0Li42MDYzNTFhIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2xpYnhjL3hjX2RvbV9odm1sb2FkZXIu Ywo+ICsrKyBiL3Rvb2xzL2xpYnhjL3hjX2RvbV9odm1sb2FkZXIuYwo+IEBAIC0xNjcsNiArMTY3 LDggQEAgc3RhdGljIGludCBtb2R1bGVzX2luaXQoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQo+ ICB7Cj4gICAgICBpbnQgcmM7Cj4gIAo+ICsgICAgcmMgPSBtb2R1bGVfaW5pdF9vbmUoZG9tLCAm ZG9tLT5iaW9zX21vZHVsZSwgImJpb3MgbW9kdWxlIik7Cj4gKyAgICBpZiAoIHJjICkgZ290byBl cnI7Cj4gICAgICByYyA9IG1vZHVsZV9pbml0X29uZShkb20sICZkb20tPmFjcGlfbW9kdWxlLCAi YWNwaSBtb2R1bGUiKTsKPiAgICAgIGlmICggcmMgKSBnb3RvIGVycjsKPiAgICAgIHJjID0gbW9k dWxlX2luaXRfb25lKGRvbSwgJmRvbS0+c21iaW9zX21vZHVsZSwgInNtYmlvcyBtb2R1bGUiKTsK PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfZG9tX3g4Ni5jIGIvdG9vbHMvbGlieGMveGNf ZG9tX3g4Ni5jCj4gaW5kZXggYmRlYzQwYS4uOWM1NmQ1NSAxMDA2NDQKPiAtLS0gYS90b29scy9s aWJ4Yy94Y19kb21feDg2LmMKPiArKysgYi90b29scy9saWJ4Yy94Y19kb21feDg2LmMKPiBAQCAt NjksNiArNjksOSBAQAo+ICAjZGVmaW5lIHJvdW5kX3VwKGFkZHIsIG1hc2spICAgICAoKGFkZHIp IHwgKG1hc2spKQo+ICAjZGVmaW5lIHJvdW5kX3BnX3VwKGFkZHIpICAoKChhZGRyKSArIFBBR0Vf U0laRV9YODYgLSAxKSAmIH4oUEFHRV9TSVpFX1g4NiAtIDEpKQo+ICAKPiArI2RlZmluZSBIVk1M T0FERVJfTU9EVUxFX01BWF9DT1VOVCAxCj4gKyNkZWZpbmUgSFZNTE9BREVSX01PRFVMRV9OQU1F X1NJWkUgMTAKPiArCj4gIHN0cnVjdCB4Y19kb21fcGFyYW1zIHsKPiAgICAgIHVuc2lnbmVkIGxl dmVsczsKPiAgICAgIHhlbl92YWRkcl90IHZhZGRyX21hc2s7Cj4gQEAgLTU5MCw2ICs1OTMsNyBA QCBzdGF0aWMgaW50IGFsbG9jX21hZ2ljX3BhZ2VzX2h2bShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpk b20pCj4gICAgICB4ZW5fcGZuX3Qgc3BlY2lhbF9hcnJheVtYODZfSFZNX05SX1NQRUNJQUxfUEFH RVNdOwo+ICAgICAgeGVuX3Bmbl90IGlvcmVxX3NlcnZlcl9hcnJheVtOUl9JT1JFUV9TRVJWRVJf UEFHRVNdOwo+ICAgICAgeGNfaW50ZXJmYWNlICp4Y2ggPSBkb20tPnhjaDsKPiArICAgIHNpemVf dCBzdGFydF9pbmZvX3NpemUgPSBzaXplb2Yoc3RydWN0IGh2bV9zdGFydF9pbmZvKTsKPiAgCj4g ICAgICAvKiBBbGxvY2F0ZSBhbmQgY2xlYXIgc3BlY2lhbCBwYWdlcy4gKi8KPiAgICAgIGZvciAo IGkgPSAwOyBpIDwgWDg2X0hWTV9OUl9TUEVDSUFMX1BBR0VTOyBpKysgKQo+IEBAIC02MjQsOCAr NjI4LDYgQEAgc3RhdGljIGludCBhbGxvY19tYWdpY19wYWdlc19odm0oc3RydWN0IHhjX2RvbV9p bWFnZSAqZG9tKQo+ICAKPiAgICAgIGlmICggIWRvbS0+ZGV2aWNlX21vZGVsICkKPiAgICAgIHsK PiAtICAgICAgICBzaXplX3Qgc3RhcnRfaW5mb19zaXplID0gc2l6ZW9mKHN0cnVjdCBodm1fc3Rh cnRfaW5mbyk7Cj4gLQo+ICAgICAgICAgIGlmICggZG9tLT5jbWRsaW5lICkKPiAgICAgICAgICB7 Cj4gICAgICAgICAgICAgIGRvbS0+Y21kbGluZV9zaXplID0gUk9VTkRVUChzdHJsZW4oZG9tLT5j bWRsaW5lKSArIDEsIDgpOwo+IEBAIC02MzUsMTcgKzYzNywyNiBAQCBzdGF0aWMgaW50IGFsbG9j X21hZ2ljX3BhZ2VzX2h2bShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCj4gICAgICAgICAgLyog TGltaXRlZCB0byBvbmUgbW9kdWxlLiAqLwo+ICAgICAgICAgIGlmICggZG9tLT5yYW1kaXNrX2Js b2IgKQo+ICAgICAgICAgICAgICBzdGFydF9pbmZvX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBodm1f bW9kbGlzdF9lbnRyeSk7Cj4gLQo+IC0gICAgICAgIHJjID0geGNfZG9tX2FsbG9jX3NlZ21lbnQo ZG9tLCAmZG9tLT5zdGFydF9pbmZvX3NlZywKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJIVk1saXRlIHN0YXJ0IGluZm8iLCAwLCBzdGFydF9pbmZvX3NpemUpOwo+IC0gICAg ICAgIGlmICggcmMgIT0gMCApCj4gLSAgICAgICAgewo+IC0gICAgICAgICAgICBET01QUklOVEYo IlVuYWJsZSB0byByZXNlcnZlIG1lbW9yeSBmb3IgdGhlIHN0YXJ0IGluZm8iKTsKPiAtICAgICAg ICAgICAgZ290byBvdXQ7Cj4gLSAgICAgICAgfQo+ICAgICAgfQo+ICAgICAgZWxzZQo+ICAgICAg ewo+ICsgICAgICAgIHN0YXJ0X2luZm9fc2l6ZSArPQo+ICsgICAgICAgICAgICBzaXplb2Yoc3Ry dWN0IGh2bV9tb2RsaXN0X2VudHJ5KSAqIEhWTUxPQURFUl9NT0RVTEVfTUFYX0NPVU5UOwo+ICsg ICAgICAgIC8qIEFkZCBleHRyYSBzcGFjZSB0byB3cml0ZSBtb2R1bGVzIG5hbWUgKi8KPiArICAg ICAgICBzdGFydF9pbmZvX3NpemUgKz0KPiArICAgICAgICAgICAgSFZNTE9BREVSX01PRFVMRV9O QU1FX1NJWkUgKiBIVk1MT0FERVJfTU9EVUxFX01BWF9DT1VOVDsKCldoYXQgYWJvdXQgXDAgPyBB aCwgdGhlIHN0cm5jcHkgd2UgdXNlIGFkZHMgXDAgYnl0ZS4gQnV0IGl0IHdvdWxkIGJlIG5pY2UK dG8gbWVudGlvbiB0aGF0IHNvbWV3aGVyZS4gUGVyaGFwcyBtZW50aW9uOgoKVGhlIEhWTUxPQURF Ul9NT0RVTEVfTkFNRV9TSVpFIGFjY291bnRzIGZvciBOVUwgYnl0ZT8KCj4gKyAgICB9Cj4gKwo+ ICsgICAgcmMgPSB4Y19kb21fYWxsb2Nfc2VnbWVudChkb20sICZkb20tPnN0YXJ0X2luZm9fc2Vn LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSFZNbGl0ZSBzdGFydCBpbmZvIiwg MCwgc3RhcnRfaW5mb19zaXplKTsKPiArICAgIGlmICggcmMgIT0gMCApCj4gKyAgICB7Cj4gKyAg ICAgICAgRE9NUFJJTlRGKCJVbmFibGUgdG8gcmVzZXJ2ZSBtZW1vcnkgZm9yIHRoZSBzdGFydCBp bmZvIik7Cj4gKyAgICAgICAgZ290byBvdXQ7Cj4gKyAgICB9Cj4gKwo+ICsgICAgaWYgKCBkb20t PmRldmljZV9tb2RlbCApCj4gKyAgICB7Cj4gICAgICAgICAgLyoKPiAgICAgICAgICAgKiBBbGxv Y2F0ZSBhbmQgY2xlYXIgYWRkaXRpb25hbCBpb3JlcSBzZXJ2ZXIgcGFnZXMuIFRoZSBkZWZhdWx0 Cj4gICAgICAgICAgICogc2VydmVyIHdpbGwgdXNlIHRoZSBJT1JFUSBhbmQgQlVGSU9SRVEgc3Bl Y2lhbCBwYWdlcyBhYm92ZS4KPiBAQCAtMTY5NiwzOSArMTcwNyw2OCBAQCBzdGF0aWMgaW50IGFs bG9jX3BndGFibGVzX2h2bShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCj4gICAgICByZXR1cm4g MDsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgYWRkX21vZHVsZV90b19saXN0KHN0cnVjdCB4Y19k b21faW1hZ2UgKmRvbSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4 Y19odm1fZmlybXdhcmVfbW9kdWxlICptb2R1bGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICpuYW1lLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGh2bV9tb2RsaXN0X2VudHJ5ICptb2RsaXN0LAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IGh2bV9zdGFydF9pbmZvICpzdGFydF9pbmZvKQo+ICt7Cj4g KyAgICB1aW50MzJfdCBpbmRleCA9IHN0YXJ0X2luZm8tPm5yX21vZHVsZXM7Cj4gKyAgICBpZiAo IG1vZHVsZS0+bGVuZ3RoID09IDAgKQo+ICsgICAgICAgIHJldHVybjsKPiArCj4gKyAgICBhc3Nl cnQoc3RhcnRfaW5mby0+bnJfbW9kdWxlcyA8IEhWTUxPQURFUl9NT0RVTEVfTUFYX0NPVU5UKTsK PiArICAgIGFzc2VydChzdHJubGVuKG5hbWUsIEhWTUxPQURFUl9NT0RVTEVfTkFNRV9TSVpFKQo+ ICsgICAgICAgICAgIDwgSFZNTE9BREVSX01PRFVMRV9OQU1FX1NJWkUpOwo+ICsKPiArICAgIG1v ZGxpc3RbaW5kZXhdLnBhZGRyID0gbW9kdWxlLT5ndWVzdF9hZGRyX291dDsKPiArICAgIG1vZGxp c3RbaW5kZXhdLnNpemUgPSBtb2R1bGUtPmxlbmd0aDsKPiArICAgIHN0cm5jcHkoKGNoYXIqKSht b2RsaXN0ICsgSFZNTE9BREVSX01PRFVMRV9NQVhfQ09VTlQpCj4gKyAgICAgICAgICAgICsgSFZN TE9BREVSX01PRFVMRV9OQU1FX1NJWkUgKiBpbmRleCwKPiArICAgICAgICAgICAgbmFtZSwgSFZN TE9BREVSX01PRFVMRV9OQU1FX1NJWkUpOwo+ICsgICAgbW9kbGlzdFtpbmRleF0uY21kbGluZV9w YWRkciA9Cj4gKyAgICAgICAgKGRvbS0+c3RhcnRfaW5mb19zZWcucGZuIDw8IFBBR0VfU0hJRlQp ICsKPiArICAgICAgICAoKHVpbnRwdHJfdCltb2RsaXN0IC0gKHVpbnRwdHJfdClzdGFydF9pbmZv KSArCj4gKyAgICAgICAgc2l6ZW9mKHN0cnVjdCBodm1fbW9kbGlzdF9lbnRyeSkgKiBIVk1MT0FE RVJfTU9EVUxFX01BWF9DT1VOVCArCj4gKyAgICAgICAgSFZNTE9BREVSX01PRFVMRV9OQU1FX1NJ WkUgKiBpbmRleDsKClRoYXQgbG9va3MgcmlnaHQsIGJ1dCBib3kgaXQgdGFrZXMgYSBiaXQgb2Yg dGhpbmtpbmcgdG8KbWFrZSBzdXJlIGl0IGlzIHJpZ2h0LiBQZXJoYXBzIHB1dCBhIGNvbW1lbnQg b3V0bGluaW5nIHdoZXJlCml0IG91Z2h0IHRvIGJlIChzbyBmb2xrcyByZWFkaW5nIHRoZSBmaXJz dCB0aW1lIGNhbiBmZWVsCk9LIHRoZXkgZ290IGl0IHJpZ2h0PykKPiArCj4gKyAgICBzdGFydF9p bmZvLT5ucl9tb2R1bGVzKys7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgYm9vdGxhdGVfaHZtKHN0 cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKPiAgewo+ICAgICAgdWludDMyX3QgZG9taWQgPSBkb20t Pmd1ZXN0X2RvbWlkOwo+ICAgICAgeGNfaW50ZXJmYWNlICp4Y2ggPSBkb20tPnhjaDsKPiArICAg IHN0cnVjdCBodm1fc3RhcnRfaW5mbyAqc3RhcnRfaW5mbzsKPiArICAgIHNpemVfdCBzdGFydF9p bmZvX3NpemU7Cj4gKyAgICB2b2lkICpzdGFydF9wYWdlOwo+ICsgICAgc3RydWN0IGh2bV9tb2Rs aXN0X2VudHJ5ICptb2RsaXN0Owo+ICAKPiAtICAgIGlmICggIWRvbS0+ZGV2aWNlX21vZGVsICkK PiAtICAgIHsKPiAtICAgICAgICBzdHJ1Y3QgaHZtX3N0YXJ0X2luZm8gKnN0YXJ0X2luZm87Cj4g LSAgICAgICAgc2l6ZV90IHN0YXJ0X2luZm9fc2l6ZTsKPiAtICAgICAgICB2b2lkICpzdGFydF9w YWdlOwo+IC0KPiAtICAgICAgICBzdGFydF9pbmZvX3NpemUgPSBzaXplb2YoKnN0YXJ0X2luZm8p ICsgZG9tLT5jbWRsaW5lX3NpemU7Cj4gLSAgICAgICAgaWYgKCBkb20tPnJhbWRpc2tfYmxvYiAp Cj4gLSAgICAgICAgICAgIHN0YXJ0X2luZm9fc2l6ZSArPSBzaXplb2Yoc3RydWN0IGh2bV9tb2Rs aXN0X2VudHJ5KTsKPiArICAgIHN0YXJ0X2luZm9fc2l6ZSA9IHNpemVvZigqc3RhcnRfaW5mbykg KyBkb20tPmNtZGxpbmVfc2l6ZTsKPiArICAgIGlmICggZG9tLT5yYW1kaXNrX2Jsb2IgKQo+ICsg ICAgICAgIHN0YXJ0X2luZm9fc2l6ZSArPSBzaXplb2Yoc3RydWN0IGh2bV9tb2RsaXN0X2VudHJ5 KTsKPiAgCj4gLSAgICAgICAgaWYgKCBzdGFydF9pbmZvX3NpemUgPgo+IC0gICAgICAgICAgICAg ZG9tLT5zdGFydF9pbmZvX3NlZy5wYWdlcyA8PCBYQ19ET01fUEFHRV9TSElGVChkb20pICkKPiAt ICAgICAgICB7Cj4gLSAgICAgICAgICAgIERPTVBSSU5URigiVHJ5aW5nIHRvIG1hcCBiZXlvbmQg c3RhcnRfaW5mb19zZWciKTsKPiAtICAgICAgICAgICAgcmV0dXJuIC0xOwo+IC0gICAgICAgIH0K PiArICAgIGlmICggc3RhcnRfaW5mb19zaXplID4KPiArICAgICAgICAgZG9tLT5zdGFydF9pbmZv X3NlZy5wYWdlcyA8PCBYQ19ET01fUEFHRV9TSElGVChkb20pICkKPiArICAgIHsKPiArICAgICAg ICBET01QUklOVEYoIlRyeWluZyB0byBtYXAgYmV5b25kIHN0YXJ0X2luZm9fc2VnIik7Cj4gKyAg ICAgICAgcmV0dXJuIC0xOwo+ICsgICAgfQo+ICAKPiAtICAgICAgICBzdGFydF9wYWdlID0geGNf bWFwX2ZvcmVpZ25fcmFuZ2UoeGNoLCBkb21pZCwgc3RhcnRfaW5mb19zaXplLAo+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRF LAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb20tPnN0YXJ0 X2luZm9fc2VnLnBmbik7Cj4gLSAgICAgICAgaWYgKCBzdGFydF9wYWdlID09IE5VTEwgKQo+IC0g ICAgICAgIHsKPiAtICAgICAgICAgICAgRE9NUFJJTlRGKCJVbmFibGUgdG8gbWFwIEhWTSBzdGFy dCBpbmZvIHBhZ2UiKTsKPiAtICAgICAgICAgICAgcmV0dXJuIC0xOwo+IC0gICAgICAgIH0KPiAr ICAgIHN0YXJ0X3BhZ2UgPSB4Y19tYXBfZm9yZWlnbl9yYW5nZSh4Y2gsIGRvbWlkLCBzdGFydF9p bmZvX3NpemUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPVF9S RUFEIHwgUFJPVF9XUklURSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkb20tPnN0YXJ0X2luZm9fc2VnLnBmbik7Cj4gKyAgICBpZiAoIHN0YXJ0X3BhZ2UgPT0gTlVM TCApCj4gKyAgICB7Cj4gKyAgICAgICAgRE9NUFJJTlRGKCJVbmFibGUgdG8gbWFwIEhWTSBzdGFy dCBpbmZvIHBhZ2UiKTsKPiArICAgICAgICByZXR1cm4gLTE7Cj4gKyAgICB9Cj4gIAo+IC0gICAg ICAgIHN0YXJ0X2luZm8gPSBzdGFydF9wYWdlOwo+ICsgICAgc3RhcnRfaW5mbyA9IHN0YXJ0X3Bh Z2U7Cj4gKyAgICBtb2RsaXN0ID0gc3RhcnRfcGFnZSArIHNpemVvZigqc3RhcnRfaW5mbykgKyBk b20tPmNtZGxpbmVfc2l6ZTsKPiAgCj4gKyAgICBpZiAoICFkb20tPmRldmljZV9tb2RlbCApCj4g KyAgICB7Cj4gICAgICAgICAgaWYgKCBkb20tPmNtZGxpbmUgKQo+ICAgICAgICAgIHsKPiAgICAg ICAgICAgICAgY2hhciAqY21kbGluZSA9IHN0YXJ0X3BhZ2UgKyBzaXplb2YoKnN0YXJ0X2luZm8p Owo+IEBAIC0xNzQwLDIyICsxNzgwLDMwIEBAIHN0YXRpYyBpbnQgYm9vdGxhdGVfaHZtKHN0cnVj dCB4Y19kb21faW1hZ2UgKmRvbSkKPiAgCj4gICAgICAgICAgaWYgKCBkb20tPnJhbWRpc2tfYmxv YiApCj4gICAgICAgICAgewo+IC0gICAgICAgICAgICBzdHJ1Y3QgaHZtX21vZGxpc3RfZW50cnkg Km1vZGxpc3QgPQo+IC0gICAgICAgICAgICAgICAgc3RhcnRfcGFnZSArIHNpemVvZigqc3RhcnRf aW5mbykgKyBkb20tPmNtZGxpbmVfc2l6ZTsKPiAgCj4gICAgICAgICAgICAgIG1vZGxpc3RbMF0u cGFkZHIgPSBkb20tPnJhbWRpc2tfc2VnLnZzdGFydCAtIGRvbS0+cGFybXMudmlydF9iYXNlOwo+ ICAgICAgICAgICAgICBtb2RsaXN0WzBdLnNpemUgPSBkb20tPnJhbWRpc2tfc2VnLnZlbmQgLSBk b20tPnJhbWRpc2tfc2VnLnZzdGFydDsKPiAtICAgICAgICAgICAgc3RhcnRfaW5mby0+bW9kbGlz dF9wYWRkciA9IChkb20tPnN0YXJ0X2luZm9fc2VnLnBmbiA8PCBQQUdFX1NISUZUKSArCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50cHRyX3QpbW9kbGlzdCAtICh1aW50 cHRyX3Qpc3RhcnRfaW5mbyk7Cj4gICAgICAgICAgICAgIHN0YXJ0X2luZm8tPm5yX21vZHVsZXMg PSAxOwo+ICAgICAgICAgIH0KPiAtCj4gLSAgICAgICAgc3RhcnRfaW5mby0+bWFnaWMgPSBYRU5f SFZNX1NUQVJUX01BR0lDX1ZBTFVFOwo+IC0KPiAtICAgICAgICBtdW5tYXAoc3RhcnRfcGFnZSwg c3RhcnRfaW5mb19zaXplKTsKPiAgICAgIH0KPiAgICAgIGVsc2UKPiAgICAgIHsKPiArICAgICAg ICBhZGRfbW9kdWxlX3RvX2xpc3QoZG9tLCAmZG9tLT5iaW9zX21vZHVsZSwgImJpb3MiLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RsaXN0LCBzdGFydF9pbmZvKTsKPiArICAgIH0K PiArCj4gKyAgICBpZiAoIHN0YXJ0X2luZm8tPm5yX21vZHVsZXMgKQo+ICsgICAgewo+ICsgICAg ICAgIHN0YXJ0X2luZm8tPm1vZGxpc3RfcGFkZHIgPSAoZG9tLT5zdGFydF9pbmZvX3NlZy5wZm4g PDwgUEFHRV9TSElGVCkgKwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50cHRy X3QpbW9kbGlzdCAtICh1aW50cHRyX3Qpc3RhcnRfaW5mbyk7Cj4gKyAgICB9Cj4gKwo+ICsgICAg c3RhcnRfaW5mby0+bWFnaWMgPSBYRU5fSFZNX1NUQVJUX01BR0lDX1ZBTFVFOwo+ICsKPiArICAg IG11bm1hcChzdGFydF9wYWdlLCBzdGFydF9pbmZvX3NpemUpOwo+ICsKPiArICAgIGlmICggZG9t LT5kZXZpY2VfbW9kZWwgKQo+ICsgICAgewo+ICAgICAgICAgIHZvaWQgKmh2bV9pbmZvX3BhZ2U7 Cj4gIAo+ICAgICAgICAgIGlmICggKGh2bV9pbmZvX3BhZ2UgPSB4Y19tYXBfZm9yZWlnbl9yYW5n ZSgKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oIGIveGVuL2luY2x1ZGUv cHVibGljL3hlbi5oCj4gaW5kZXggNjRiYTdhYi4uMWNmZWM1YyAxMDA2NDQKPiAtLS0gYS94ZW4v aW5jbHVkZS9wdWJsaWMveGVuLmgKPiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKPiBA QCAtNzk4LDcgKzc5OCw3IEBAIHN0cnVjdCBzdGFydF9pbmZvIHsKPiAgdHlwZWRlZiBzdHJ1Y3Qg c3RhcnRfaW5mbyBzdGFydF9pbmZvX3Q7Cj4gIAo+ICAvKgo+IC0gKiBTdGFydCBvZiBkYXkgc3Ry dWN0dXJlIHBhc3NlZCB0byBQVkggZ3Vlc3RzIGluICVlYnguCj4gKyAqIFN0YXJ0IG9mIGRheSBz dHJ1Y3R1cmUgcGFzc2VkIHRvIFBWSCBndWVzdHMgYW5kIHRvIEhWTSBndWVzdHMgaW4gJWVieC4K PiAgICoKPiAgICogTk9URTogbm90aGluZyB3aWxsIGJlIGxvYWRlZCBhdCBwaHlzaWNhbCBhZGRy ZXNzIDAsIHNvIGEgMCB2YWx1ZSBpbiBhbnkKPiAgICogb2YgdGhlIGFkZHJlc3MgZmllbGRzIHNo b3VsZCBiZSB0cmVhdGVkIGFzIG5vdCBwcmVzZW50Lgo+IC0tIAo+IEFudGhvbnkgUEVSQVJECj4g Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Cj4gWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKPiBodHRwOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==