From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau =?utf-8?B?TW9ubsOp?= Subject: Re: [PATCH v7 04/15] argo: init, destroy and soft-reset, with enable command line opt Date: Thu, 31 Jan 2019 15:49:14 +0100 Message-ID: <20190131144914.qfoyz2uu4prpkpbo@mac> References: <1548908900-1128-1-git-send-email-christopher.w.clark@gmail.com> <1548908900-1128-5-git-send-email-christopher.w.clark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gpDeg-00030T-F8 for xen-devel@lists.xenproject.org; Thu, 31 Jan 2019 14:49:26 +0000 Content-Disposition: inline In-Reply-To: <1548908900-1128-5-git-send-email-christopher.w.clark@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Christopher Clark Cc: Juergen Gross , Stefano Stabellini , Wei Liu , Ross Philipson , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Jason Andryuk , Ian Jackson , Rich Persaud , Tim Deegan , Daniel Smith , Julien Grall , Paul Durrant , Jan Beulich , xen-devel@lists.xenproject.org, James McKenzie , Eric Chanudet List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBKYW4gMzAsIDIwMTkgYXQgMDg6Mjg6MDlQTSAtMDgwMCwgQ2hyaXN0b3BoZXIgQ2xh cmsgd3JvdGU6Cj4gSW5pdGlhbGlzZXMgYmFzaWMgZGF0YSBzdHJ1Y3R1cmVzIGFuZCBwZXJmb3Jt cyB0ZWFyZG93biBvZiBhcmdvIHN0YXRlCj4gZm9yIGRvbWFpbiBzaHV0ZG93bi4KPiAKPiBJbmNs dXNpb24gb2YgdGhlIEFyZ28gaW1wbGVtZW50YXRpb24gaXMgZGVwZW5kZW50IG9uIENPTkZJR19B UkdPLgo+IAo+IEludHJvZHVjZXMgYSBuZXcgWGVuIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXIgJ2Fy Z28nOiBib29sIHRvIGVuYWJsZS9kaXNhYmxlCj4gdGhlIGFyZ28gaHlwZXJjYWxsLiBEZWZhdWx0 cyB0byBkaXNhYmxlZC4KPiAKPiBOZXcgaGVhZGVyczoKPiAgIHB1YmxpYy9hcmdvLmg6IHdpdGgg ZGVmaW5pb25zIG9mIGFkZHJlc3NlcyBhbmQgcmluZyBzdHJ1Y3R1cmUsIGluY2x1ZGluZwo+ICAg aW5kZXhlcyBmb3IgYXRvbWljIHVwZGF0ZSBmb3IgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIGRvbWFp biBhbmQgaHlwZXJ2aXNvci4KPiAKPiAgIHhlbi9hcmdvLmg6IHRvIGV4cG9zZSB0aGUgaG9va3Mg Zm9yIGludGVncmF0aW9uIGludG8gZG9tYWluIGxpZmVjeWNsZToKPiAgICAgYXJnb19pbml0OiBw ZXItZG9tYWluIGluaXQgb2YgYXJnbyBkYXRhIHN0cnVjdHVyZXMgZm9yIGRvbWFpbl9jcmVhdGUu Cj4gICAgIGFyZ29fZGVzdHJveTogdGVhcmRvd24gZm9yIGRvbWFpbl9kZXN0cm95IGFuZCB0aGUg ZXJyb3IgZXhpdAo+ICAgICAgICAgICAgICAgICAgIHBhdGggb2YgZG9tYWluX2NyZWF0ZS4KPiAg ICAgYXJnb19zb2Z0X3Jlc2V0OiByZXNldCBvZiBkb21haW4gc3RhdGUgZm9yIGRvbWFpbl9zb2Z0 X3Jlc2V0Lgo+IAo+IEFkZHMgYSBuZXcgZmllbGQgdG8gc3RydWN0IGRvbWFpbjogc3RydWN0IGFy Z29fZG9tYWluICphcmdvOwo+IAo+IEluIGFjY29yZGFuY2Ugd2l0aCByZWNlbnQgd29yayBvbiBf ZG9tYWluX2Rlc3Ryb3ksIGFyZ29fZGVzdHJveSBpcwo+IGlkZW1wb3RlbnQuIEl0IHdpbGwgdGVh ciBkb3duOiBhbGwgcmluZ3MgcmVnaXN0ZXJlZCBieSB0aGlzIGRvbWFpbiwgYWxsCj4gcmluZ3Mg d2hlcmUgdGhpcyBkb21haW4gaXMgdGhlIHNpbmdsZSBzZW5kZXIgKGllLiBzcGVjaWZpZWQgcGFy dG5lciwKPiBub24td2lsZGNhcmQgcmluZ3MpLCBhbmQgYWxsIHBlbmRpbmcgbm90aWZpY2F0aW9u cyB3aGVyZSB0aGlzIGRvbWFpbiBpcwo+IGF3YWl0aW5nIHNpZ25hbCBhYm91dCBhdmFpbGFibGUg c3BhY2UgaW4gdGhlIHJpbmdzIG9mIG90aGVyIGRvbWFpbnMuCj4gCj4gQSBjb3VudCB3aWxsIGJl IG1haW50YWluZWQgb2YgdGhlIG51bWJlciBvZiByaW5ncyB0aGF0IGEgZG9tYWluIGhhcwo+IHJl Z2lzdGVyZWQgaW4gb3JkZXIgdG8gbGltaXQgaXQgYmVsb3cgdGhlIGZpeGVkIG1heGltdW0gbGlt aXQgZGVmaW5lZCBoZXJlLgo+IAo+IE1hY3JvcyBhcmUgZGVmaW5lZCB0byB2ZXJpZnkgdGhlIGlu dGVybmFsIGxvY2tpbmcgc3RhdGUgd2l0aGluIHRoZSBhcmdvCj4gaW1wbGVtZW50YXRpb24uIFRo ZSBtYWNyb3MgYXJlIEFTU0VSVGVkIG9uIGVudHJ5IHRvIGZ1bmN0aW9ucyB0byB2YWxpZGF0ZQo+ IGFuZCBkb2N1bWVudCB0aGUgcmVxdWlyZWQgbG9jayBzdGF0ZSBwcmlvciB0byBjYWxsaW5nLgo+ IAo+IFRoZSBoYXNoIGZ1bmN0aW9uIGZvciB0aGUgaGFzaHRhYmxlcyB0aGF0IGhvbGQgcmluZyBz dGF0ZSBpcyBkZXJpdmVkIGZyb20KPiB0aGUgc3RyaW5nIGhhc2hpbmcgZnVuY3Rpb24gZGpiMiAo aHR0cDovL3d3dy5jc2UueW9ya3UuY2Evfm96L2hhc2guaHRtbCkKPiBieSBEYW5pZWwgSi4gQmVy bnN0ZWluLiBCYXNpYyB0ZXN0aW5nIHdpdGggYSBsaW1pdGVkIG51bWJlciBvZiBkb21haW5zIGFu ZAo+IHBvcnRzIGhhcyBzaG93biByZWFzb25hYmxlIGRpc3RyaWJ1dGlvbiBmb3IgdGhlIHRhYmxl IHNpemUuCj4gCj4gVGhlIHNvZnR3YXJlIGxpY2Vuc2Ugb24gdGhlIHB1YmxpYyBoZWFkZXIgaXMg dGhlIEJTRCBsaWNlbnNlLCBzdGFuZGFyZAo+IHByb2NlZHVyZSBmb3IgdGhlIHB1YmxpYyBYZW4g aGVhZGVycy4gVGhlIHB1YmxpYyBoZWFkZXIgd2FzIG9yaWdpbmFsbHkKPiBwb3N0ZWQgdW5kZXIg YSBHUEwgbGljZW5zZSBhdDogWzFdOgo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJj aGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxMy0wNS9tc2cwMjcxMC5odG1sCj4gCj4gVGhlIGZvbGxv d2luZyBBQ0sgYnkgTGFycyBLdXJ0aCBpcyB0byBjb25maXJtIHRoYXQgb25seSBwZW9wbGUgYmVp bmcKPiBlbXBsb3llZXMgb2YgQ2l0cml4IGNvbnRyaWJ1dGVkIHRvIHRoZSBoZWFkZXIgZmlsZXMg aW4gdGhlIHNlcmllcyBwb3N0ZWQgYXQKPiBbMV0gYW5kIHRoYXQgdGh1cyB0aGUgY29weXJpZ2h0 IG9mIHRoZSBmaWxlcyBpbiBxdWVzdGlvbiBpcyBmdWxseSBvd25lZCBieQo+IENpdHJpeC4gVGhl IEFDSyBhbHNvIGNvbmZpcm1zIHRoYXQgQ2l0cml4IGlzIGhhcHB5IGZvciB0aGUgaGVhZGVyIGZp bGVzIHRvCj4gYmUgcHVibGlzaGVkIHVuZGVyIGEgQlNEIGxpY2Vuc2UgaW4gdGhpcyBzZXJpZXMg KHdoaWNoIGlzIGJhc2VkIG9uIFsxXSkuCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoZXIg Q2xhcmsgPGNocmlzdG9waGVyLmNsYXJrNkBiYWVzeXN0ZW1zLmNvbT4KPiBBY2tlZC1ieTogTGFy cyBLdXJ0aCA8bGFycy5rdXJ0aEBjaXRyaXguY29tPgo+IFJldmlld2VkLWJ5OiBSb3NzIFBoaWxp cHNvbiA8cm9zcy5waGlsaXBzb25Ab3JhY2xlLmNvbT4KPiBUZXN0ZWQtYnk6IENocmlzIFBhdHRl cnNvbiA8cGF0dGVyc29uY0BhaW5mb3NlYy5jb20+CgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1v bm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgpJIGhhdmUgc29tZSBjb21tZW50cyBiZWxvdyB0 aGF0IGNvdWxkIGJlIGZpeGVkIHVwb24gY29tbWl0IGlmIHRoZQpjb21taXR0ZXIgYWdyZWVzLgoK PiArc3RhdGljIHN0cnVjdCBhcmdvX3JpbmdfaW5mbyAqCj4gK2ZpbmRfcmluZ19pbmZvKGNvbnN0 IHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IHN0cnVjdCBhcmdvX3JpbmdfaWQgKmlkKQo+ICt7Cj4g KyAgICBzdHJ1Y3QgYXJnb19yaW5nX2luZm8gKnJpbmdfaW5mbzsKPiArICAgIGNvbnN0IHN0cnVj dCBsaXN0X2hlYWQgKmJ1Y2tldDsKPiArCj4gKyAgICBBU1NFUlQoTE9DS0lOR19SZWFkX3Jpbmdz X0wyKGQpKTsKPiArCj4gKyAgICAvKiBMaXN0IGlzIG5vdCBtb2RpZmllZCBoZXJlLiBTZWFyY2gg YW5kIHJldHVybiB0aGUgbWF0Y2ggaWYgZm91bmQuICovCj4gKyAgICBidWNrZXQgPSAmZC0+YXJn by0+cmluZ19oYXNoW2hhc2hfaW5kZXgoaWQpXTsKPiArCj4gKyAgICBsaXN0X2Zvcl9lYWNoX2Vu dHJ5KHJpbmdfaW5mbywgYnVja2V0LCBub2RlKQoKSSdtIG5vdCBzdXJlIHdoYXQncyB0aGUgcG9s aWN5IHJlZ2FyZGluZyBsaXN0XyBtYWNyb3MsIHNob3VsZCBzcGFjZXMKYmUgYWRkZWQgYmV0d2Vl biB0aGUgcGFyZW50aGVzZXM/CgpsaXN0X2Zvcl9lYWNoX2VudHJ5ICggcmluZ19pbmZvLCBidWNr ZXQsIG5vZGUgKQoKSSBkb24ndCBoYXZlIGEgc3Ryb25nIG9waW5pb24gZWl0aGVyIHdheS4KClsu Li5dCj4gK3N0YXRpYyB2b2lkCj4gK3BlbmRpbmdfcmVtb3ZlX2FsbChjb25zdCBzdHJ1Y3QgZG9t YWluICpkLCBzdHJ1Y3QgYXJnb19yaW5nX2luZm8gKnJpbmdfaW5mbykKPiArewo+ICsgICAgc3Ry dWN0IHBlbmRpbmdfZW50ICplbnQsICpuZXh0Owo+ICsKPiArICAgIEFTU0VSVChMT0NLSU5HX0wz KGQsIHJpbmdfaW5mbykpOwo+ICsKPiArICAgIC8qIERlbGV0ZSBhbGwgcGVuZGluZyBub3RpZmlj YXRpb25zIGZyb20gdGhpcyByaW5nJ3MgbGlzdC4gKi8KPiArICAgIGxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShlbnQsIG5leHQsICZyaW5nX2luZm8tPnBlbmRpbmcsIG5vZGUpCgpsaXN0X2ZpcnN0 X2VudHJ5X29yX251bGwgYW5kIHlvdSBjYW4gZ2V0IHJpZCBvZiBuZXh0LgoKPiArICAgIHsKPiAr ICAgICAgICAvKiBGb3Igd2lsZGNhcmQgcmluZ3MsIHJlbW92ZSBlYWNoIGZyb20gdGhlaXIgd2ls ZGNhcmQgbGlzdCB0b28uICovCj4gKyAgICAgICAgaWYgKCByaW5nX2luZm8tPmlkLnBhcnRuZXJf aWQgPT0gWEVOX0FSR09fRE9NSURfQU5ZICkKPiArICAgICAgICAgICAgd2lsZGNhcmRfcGVuZGlu Z19saXN0X3JlbW92ZShlbnQtPmRvbWFpbl9pZCwgZW50KTsKPiArICAgICAgICBsaXN0X2RlbCgm ZW50LT5ub2RlKTsKPiArICAgICAgICB4ZnJlZShlbnQpOwo+ICsgICAgfQo+ICsgICAgcmluZ19p bmZvLT5ucGVuZGluZyA9IDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkCj4gK3dpbGRjYXJkX3Jp bmdzX3BlbmRpbmdfcmVtb3ZlKHN0cnVjdCBkb21haW4gKmQpCj4gK3sKPiArICAgIHN0cnVjdCBw ZW5kaW5nX2VudCAqZW50LCAqbmV4dDsKPiArCj4gKyAgICBBU1NFUlQoTE9DS0lOR19Xcml0ZV9M MSk7Cj4gKwo+ICsgICAgLyogRGVsZXRlIGFsbCBwZW5kaW5nIHNpZ25hbHMgdG8gdGhlIGRvbWFp biBhYm91dCB3aWxkY2FyZCByaW5ncy4gKi8KPiArICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfc2Fm ZShlbnQsIG5leHQsICZkLT5hcmdvLT53aWxkY2FyZF9wZW5kX2xpc3QsIG5vZGUpCgpsaXN0X2Zp cnN0X2VudHJ5X29yX251bGwgYW5kIHlvdSBjYW4gZ2V0IHJpZCBvZiBuZXh0LgoKPiArICAgIHsK PiArICAgICAgICAvKgo+ICsgICAgICAgICAqIFRoZSBlbnQtPm5vZGUgZGVsZXRlZCBoZXJlLCBh bmQgdGhlIG5wZW5kaW5nIHZhbHVlIGRlY3JlYXNlZCwKPiArICAgICAgICAgKiBiZWxvbmcgdG8g dGhlIHJpbmdfaW5mbyBvZiBhbm90aGVyIGRvbWFpbiwgd2hpY2ggaXMgd2h5IHRoaXMKPiArICAg ICAgICAgKiBmdW5jdGlvbiByZXF1aXJlcyBob2xkaW5nIFcoTDEpOgo+ICsgICAgICAgICAqIGl0 IGltcGxpZXMgdGhlIEwzIGxvY2sgdGhhdCBwcm90ZWN0cyB0aGF0IHJpbmdfaW5mbyBzdHJ1Y3Qu Cj4gKyAgICAgICAgICovCj4gKyAgICAgICAgZW50LT5yaW5nX2luZm8tPm5wZW5kaW5nLS07Cj4g KyAgICAgICAgbGlzdF9kZWwoJmVudC0+bm9kZSk7Cj4gKyAgICAgICAgbGlzdF9kZWwoJmVudC0+ d2lsZGNhcmRfbm9kZSk7Cj4gKyAgICAgICAgeGZyZWUoZW50KTsKPiArICAgIH0KPiArfQo+ICsK PiArc3RhdGljIHZvaWQKPiArcmluZ19yZW1vdmVfbWZucyhjb25zdCBzdHJ1Y3QgZG9tYWluICpk LCBzdHJ1Y3QgYXJnb19yaW5nX2luZm8gKnJpbmdfaW5mbykKPiArewo+ICsgICAgdW5zaWduZWQg aW50IGk7Cj4gKwo+ICsgICAgQVNTRVJUKExPQ0tJTkdfV3JpdGVfcmluZ3NfTDIoZCkpOwo+ICsK PiArICAgIGlmICggIXJpbmdfaW5mby0+bWZucyApCj4gKyAgICAgICAgcmV0dXJuOwo+ICsKPiAr ICAgIGlmICggIXJpbmdfaW5mby0+bWZuX21hcHBpbmcgKQo+ICsgICAgewo+ICsgICAgICAgIEFT U0VSVF9VTlJFQUNIQUJMRSgpOwo+ICsgICAgICAgIHJldHVybjsKPiArICAgIH0KPiArCj4gKyAg ICByaW5nX3VubWFwKGQsIHJpbmdfaW5mbyk7Cj4gKwo+ICsgICAgZm9yICggaSA9IDA7IGkgPCBy aW5nX2luZm8tPm5tZm5zOyBpKysgKQo+ICsgICAgICAgIGlmICggIW1mbl9lcShyaW5nX2luZm8t Pm1mbnNbaV0sIElOVkFMSURfTUZOKSApCj4gKyAgICAgICAgICAgIHB1dF9wYWdlX2FuZF90eXBl KG1mbl90b19wYWdlKHJpbmdfaW5mby0+bWZuc1tpXSkpOwo+ICsKPiArICAgIHJpbmdfaW5mby0+ bm1mbnMgPSAwOwo+ICsgICAgWEZSRUUocmluZ19pbmZvLT5tZm5zKTsKPiArICAgIFhGUkVFKHJp bmdfaW5mby0+bWZuX21hcHBpbmcpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtyaW5nX3Jl bW92ZV9pbmZvKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBhcmdvX3JpbmdfaW5mbyAq cmluZ19pbmZvKQo+ICt7Cj4gKyAgICBBU1NFUlQoTE9DS0lOR19Xcml0ZV9yaW5nc19MMihkKSk7 Cj4gKwo+ICsgICAgcGVuZGluZ19yZW1vdmVfYWxsKGQsIHJpbmdfaW5mbyk7Cj4gKyAgICBsaXN0 X2RlbCgmcmluZ19pbmZvLT5ub2RlKTsKPiArICAgIHJpbmdfcmVtb3ZlX21mbnMoZCwgcmluZ19p bmZvKTsKPiArICAgIHhmcmVlKHJpbmdfaW5mbyk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkCj4g K2RvbWFpbl9yaW5nc19yZW1vdmVfYWxsKHN0cnVjdCBkb21haW4gKmQpCj4gK3sKPiArICAgIHVu c2lnbmVkIGludCBpOwo+ICsKPiArICAgIEFTU0VSVChMT0NLSU5HX1dyaXRlX3JpbmdzX0wyKGQp KTsKPiArCj4gKyAgICBmb3IgKCBpID0gMDsgaSA8IEFSR09fSEFTSFRBQkxFX1NJWkU7ICsraSAp Cj4gKyAgICB7Cj4gKyAgICAgICAgc3RydWN0IGFyZ29fcmluZ19pbmZvICpyaW5nX2luZm8sICpu ZXh0Owo+ICsgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmJ1Y2tldCA9ICZkLT5hcmdvLT5yaW5n X2hhc2hbaV07Cj4gKwo+ICsgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyaW5nX2lu Zm8sIG5leHQsIGJ1Y2tldCwgbm9kZSkKCmxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCBhbmQgeW91 IGNhbiBnZXQgcmlkIG9mIG5leHQuCgo+ICsgICAgICAgICAgICByaW5nX3JlbW92ZV9pbmZvKGQs IHJpbmdfaW5mbyk7Cj4gKyAgICB9Cj4gKyAgICBkLT5hcmdvLT5yaW5nX2NvdW50ID0gMDsKPiAr fQo+ICsKPiArLyoKPiArICogVGVhciBkb3duIGFsbCByaW5ncyBvZiBvdGhlciBkb21haW5zIHdo ZXJlIHNyY19kIGRvbWFpbiBpcyB0aGUgcGFydG5lci4KPiArICogKGllLiBpdCBpcyB0aGUgc2lu Z2xlIGRvbWFpbiB0aGF0IGNhbiBzZW5kIHRvIHRob3NlIHJpbmdzLikKPiArICogVGhpcyB3aWxs IGFsc28gY2FuY2VsIGFueSBwZW5kaW5nIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhvc2UgcmluZ3Mu Cj4gKyAqLwo+ICtzdGF0aWMgdm9pZAo+ICtwYXJ0bmVyX3JpbmdzX3JlbW92ZShzdHJ1Y3QgZG9t YWluICpzcmNfZCkKPiArewo+ICsgICAgdW5zaWduZWQgaW50IGk7Cj4gKwo+ICsgICAgQVNTRVJU KExPQ0tJTkdfV3JpdGVfTDEpOwo+ICsKPiArICAgIGZvciAoIGkgPSAwOyBpIDwgQVJHT19IQVNI VEFCTEVfU0laRTsgKytpICkKPiArICAgIHsKPiArICAgICAgICBzdHJ1Y3QgYXJnb19zZW5kX2lu Zm8gKnNlbmRfaW5mbywgKm5leHQ7Cj4gKyAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqYnVja2V0 ID0gJnNyY19kLT5hcmdvLT5zZW5kX2hhc2hbaV07Cj4gKwo+ICsgICAgICAgIC8qIFJlbW92ZSBh bGwgZW50cyBmcm9tIHRoZSBzZW5kIGxpc3QuIFRha2UgZWFjaCBvZmYgdGhlaXIgcmluZyBsaXN0 LiAqLwo+ICsgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShzZW5kX2luZm8sIG5leHQs IGJ1Y2tldCwgbm9kZSkKCmxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCBhbmQgeW91IGNhbiBnZXQg cmlkIG9mIG5leHQuCgo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgc3RydWN0IGRvbWFpbiAq ZHN0X2QgPSBnZXRfZG9tYWluX2J5X2lkKHNlbmRfaW5mby0+aWQuZG9tYWluX2lkKTsKPiArCj4g KyAgICAgICAgICAgIGlmICggZHN0X2QgJiYgZHN0X2QtPmFyZ28gKQo+ICsgICAgICAgICAgICB7 Cj4gKyAgICAgICAgICAgICAgICBzdHJ1Y3QgYXJnb19yaW5nX2luZm8gKnJpbmdfaW5mbyA9Cj4g KyAgICAgICAgICAgICAgICAgICAgZmluZF9yaW5nX2luZm8oZHN0X2QsICZzZW5kX2luZm8tPmlk KTsKPiArCj4gKyAgICAgICAgICAgICAgICBpZiAoIHJpbmdfaW5mbyApCj4gKyAgICAgICAgICAg ICAgICB7Cj4gKyAgICAgICAgICAgICAgICAgICAgcmluZ19yZW1vdmVfaW5mbyhkc3RfZCwgcmlu Z19pbmZvKTsKPiArICAgICAgICAgICAgICAgICAgICBkc3RfZC0+YXJnby0+cmluZ19jb3VudC0t Owo+ICsgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICAgZWxzZQo+ICsgICAgICAg ICAgICAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwo+ICsgICAgICAgICAgICB9Cj4gKyAg ICAgICAgICAgIGVsc2UKPiArICAgICAgICAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwo+ ICsKPiArICAgICAgICAgICAgaWYgKCBkc3RfZCApCj4gKyAgICAgICAgICAgICAgICBwdXRfZG9t YWluKGRzdF9kKTsKPiArCj4gKyAgICAgICAgICAgIGxpc3RfZGVsKCZzZW5kX2luZm8tPm5vZGUp Owo+ICsgICAgICAgICAgICB4ZnJlZShzZW5kX2luZm8pOwo+ICsgICAgICAgIH0KPiArICAgIH0K PiArfQo+ICsKPiAgbG9uZwo+ICBkb19hcmdvX29wKHVuc2lnbmVkIGludCBjbWQsIFhFTl9HVUVT VF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnMSwKPiAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExF X1BBUkFNKHZvaWQpIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMywKPiAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIGFyZzQpCj4gIHsKPiAtICAgIHJldHVybiAtRU5PU1lTOwo+ICsgICAgbG9uZyBy YyA9IC1FRkFVTFQ7Cj4gKwo+ICsgICAgYXJnb19kcHJpbnRrKCItPmRvX2FyZ29fb3AoJXUsJXAs JXAsJWx1LDB4JWx4KVxuIiwgY21kLAo+ICsgICAgICAgICAgICAgICAgICh2b2lkICopYXJnMS5w LCAodm9pZCAqKWFyZzIucCwgYXJnMywgYXJnNCk7Cj4gKwo+ICsgICAgaWYgKCB1bmxpa2VseSgh b3B0X2FyZ28pICkKPiArICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7Cj4gKwo+ICsgICAgc3dp dGNoIChjbWQpCiAgICAgICAgICAgICAgIF4gXiBtaXNzaW5nIHNwYWNlcwo+ICsgICAgewo+ICsg ICAgZGVmYXVsdDoKPiArICAgICAgICByYyA9IC1FT1BOT1RTVVBQOwo+ICsgICAgICAgIGJyZWFr Owo+ICsgICAgfQo+ICsKPiArICAgIGFyZ29fZHByaW50aygiPC1kb19hcmdvX29wKCV1KT0lbGRc biIsIGNtZCwgcmMpOwo+ICsKPiArICAgIHJldHVybiByYzsKPiAgfQo+ICAKPiAgI2lmZGVmIENP TkZJR19DT01QQVQKPiBAQCAtNDIsNiArNTYxLDExMyBAQCBjb21wYXRfYXJnb19vcCh1bnNpZ25l ZCBpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZzEsCj4gICAgICAgICAg ICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnMiwgdW5zaWduZWQgbG9uZyBh cmczLAo+ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFyZzQpCj4gIHsKPiAtICAgIHJl dHVybiAtRU5PU1lTOwo+ICsgICAgbG9uZyByYyA9IC1FRkFVTFQ7Cj4gKwo+ICsgICAgYXJnb19k cHJpbnRrKCItPmNvbXBhdF9hcmdvX29wKCV1LCVwLCVwLCVsdSwweCVseClcbiIsIGNtZCwKPiAr ICAgICAgICAgICAgICAgICAodm9pZCAqKWFyZzEucCwgKHZvaWQgKilhcmcyLnAsIGFyZzMsIGFy ZzQpOwo+ICsKPiArICAgIGlmICggdW5saWtlbHkoIW9wdF9hcmdvKSApCj4gKyAgICAgICAgcmV0 dXJuIC1FT1BOT1RTVVBQOwo+ICsKPiArICAgIHN3aXRjaCAoY21kKQogICAgICAgICAgICAgICBe IF4gbWlzc2luZyBzcGFjZXMKClsuLi5dCj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZG9tYWlu LmMgYi94ZW4vY29tbW9uL2RvbWFpbi5jCj4gaW5kZXggYzYyM2RhZS4uNzQ3MGNkOSAxMDA2NDQK PiAtLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCj4gKysrIGIveGVuL2NvbW1vbi9kb21haW4uYwo+ IEBAIC0zMiw2ICszMiw3IEBACj4gICNpbmNsdWRlIDx4ZW4vZ3JhbnRfdGFibGUuaD4KPiAgI2lu Y2x1ZGUgPHhlbi94ZW5vcHJvZi5oPgo+ICAjaW5jbHVkZSA8eGVuL2lycS5oPgo+ICsjaW5jbHVk ZSA8eGVuL2FyZ28uaD4KPiAgI2luY2x1ZGUgPGFzbS9kZWJ1Z2dlci5oPgo+ICAjaW5jbHVkZSA8 YXNtL3AybS5oPgo+ICAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgo+IEBAIC0yNzcsNiArMjc4 LDggQEAgc3RhdGljIHZvaWQgX2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpCj4gIAo+ ICAgICAgeGZyZWUoZC0+cGJ1Zik7Cj4gIAo+ICsgICAgYXJnb19kZXN0cm95KGQpOwo+ICsKPiAg ICAgIHJhbmdlc2V0X2RvbWFpbl9kZXN0cm95KGQpOwo+ICAKPiAgICAgIGZyZWVfY3B1bWFza192 YXIoZC0+ZGlydHlfY3B1bWFzayk7Cj4gQEAgLTQ0NSw2ICs0NDgsOSBAQCBzdHJ1Y3QgZG9tYWlu ICpkb21haW5fY3JlYXRlKGRvbWlkX3QgZG9taWQsCj4gICAgICAgICAgICAgIGdvdG8gZmFpbDsK PiAgICAgICAgICBpbml0X3N0YXR1cyB8PSBJTklUX2dudHRhYjsKPiAgCj4gKyAgICAgICAgaWYg KCAoZXJyID0gYXJnb19pbml0KGQpKSAhPSAwICkKCkhlcmUgeW91IGFyZSBhZGRpbmcgY29kZSB0 aGF0IHBlcmZvcm1zIGEgdmFyaWFibGUgYXNzaWdubWVudCBpbnNpZGUgb2YKYSBjb25kaXRpb24s IG11Y2ggbGlrZSB3aGF0IHdvdWxkIGJlIHJlcXVpcmVkIHRvIHVzZQpsaXN0X2ZpcnN0X2VudHJ5 X29yX251bGwuCgpSb2dlci4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2pl Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4t ZGV2ZWw=