From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8863D6E0A7 for ; Fri, 5 Apr 2019 08:39:55 +0000 (UTC) Message-ID: From: Janusz Krzysztofik Date: Fri, 05 Apr 2019 10:39:49 +0200 In-Reply-To: <20190404135644.GB12599@kdec5-desk.ger.corp.intel.com> References: <20190403160122.29149-1-janusz.krzysztofik@linux.intel.com> <20190404135644.GB12599@kdec5-desk.ger.corp.intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH] tests: Add a new test for driver/device hot reload List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Katarzyna Dec Cc: Petri Latvala , "Lee, Simon B" , igt-dev@lists.freedesktop.org, Daniel Vetter List-ID: SGkgS2FzaWEsCgpUaGFua3MgZm9yIHJldmlldy4KCk9uIFRodSwgMjAxOS0wNC0wNCBhdCAxNTo1 NiArMDIwMCwgS2F0YXJ6eW5hIERlYyB3cm90ZToKPiBPbiBXZWQsIEFwciAwMywgMjAxOSBhdCAw NjowMToyMlBNICswMjAwLCBKYW51c3ogS3J6eXN6dG9maWsgd3JvdGU6Cj4gCj4gU29ycnkgZm9y IGpvaW5pbmcgdGhlIGRpc2N1c3Npb24gaW4gdjIgb2YgdGhpcyBwYXRjaCA6KQo+ID4gRnJvbTog SmFudXN6IEtyenlzenRvZmlrIDxqYW51c3oua3J6eXN6dG9maWtAaW50ZWwuY29tPgo+ID4gCj4g PiBSdW4gYSBkdW1teSBsb2FkIGluIGJhY2tncm91bmQgdG8gcHV0IHNvbWUgd29ya2xvYWQgb24g YSBkZXZpY2UsCj4gPiB0aGVuIHRyeQo+ID4gdG8gZWl0aGVyIHJlbW92ZSAodW5wbHVnKSB0aGUg ZGV2aWNlIGZyb20gaXRzIGJ1cywgb3IgdW5iaW5kIHRoZQo+ID4gZGV2aWNlJ3MKPiA+IGRyaXZl ciBmcm9tIGl0LCBkZXBlbmRpbmcgb24gd2hpY2ggc3VidGVzdCBoYXMgYmVlbiBzZWxlY3RlZC4g IElmCj4gPiBzdWNjZWVkZWQsIHVubG9hZCB0aGUgZHJpdmVyLCByZXNjYW4gdGhlIGRldmljZSdz IGJ1cyBpZiBuZWVkZWQgYW5kCj4gPiBwZXJmb3JtIGhlYWx0aCBjaGVja3Mgb24gdGhlIGRldmlj ZSB3aXRoIHRoZSBkcml2ZXIgcmVsb2FkZWQuCj4gPiAKPiA+IFRoZSBkcml2ZXIgaG90IHVuYmlu ZCAvIGRldmljZSBob3QgdW5wbHVnIG9wZXJhdGlvbiBpcyBleHBlY3RlZCB0bwo+ID4gc3VjY2Vl ZAo+ID4gaW4gYSByZWFzb25hYmxlIHRpbWUsIGhvd2V2ZXIgbG9uZyB0aW1lb3V0cyBhcmUgdXNl ZCB0byBsZXQga2VybmVsCj4gPiBsZXZlbAo+ID4gdGltZW91dHMgcG9wIHVwIGZpcnN0IGlmIGhp dCBieSBhIGJ1Zy4KPiA+IAo+ID4gVGhlIGR1bW15IGxvYWQgd29ya3Mgb25seSB3aXRoIGk5MTUg ZHJpdmVyLiAgVGhlIHRlc3QgaXMgc2tpcHBlZCBvbgo+ID4gb3RoZXIKPiA+IGhhcmR3YXJlIHVu bGVzcyB0aGV5IHByb3ZpZGUgdGhlaXIgaW1wbGVtZW50YXRpb24gb2YKPiA+IGlndF9zcGluX2Jh dGNoX25ldygpCj4gPiBhbmQgZnJpZW5kcy4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogSmFudXN6 IEtyenlzenRvZmlrIDxqYW51c3oua3J6eXN6dG9maWtAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiBD aGFuZ2Vsb2c6Cj4gPiB2MS0+djI6Cj4gPiAtIHJlbmFtZWQgdG8gY29yZV9ob3RfcmVsb2FkLAo+ ID4gLSBleHRlbmRlZCB3aXRoIG1vZHVsZSB1bmxvYWQsIGRldmljZSByZWRpc2NvdmVyICh1bnBs dWcgY2FzZSksCj4gPiBtb2R1bGUgcmVsb2FkIAo+ID4gICBhbmQgaGVhbHRoY2hlY2sgb3BlcmF0 aW9ucyBmb2xsb3dpbmcgdGhlIGluaXRpYWwgdW5wbHVnL3VuYmluZCwKPiA+IGFzIHJlcXVlc3Rl ZAo+ID4gICBieSBEYW5pZWwgYW5kIFBldGVyLAo+ID4gLSBmYWlsIGlmIGFueXRoaW5nIGdvZXMg d3JvbmcsIGFzIHJlcXVlc3RlZCBieSBEYW5pZWwKPiA+IC0gcmVmYWN0b3JlZCBhIGxvdCB0byBy ZWR1Y2UgY29kZSByZWR1bmRhbmN5Lgo+ID4gCj4gPiBSZXNlbmRpbmcgbm93IHdpdGggdGhlIGln dC1kZXYgbGlzdCBhZGRyZXNzIGFkZGVkIHRvIENjOiwgc29ycnkKPiBuaXQ6IEkgZG8gbm90IGtu b3cgaWYgdGhpcyBpcyBhIHN0cmljdCBydWxlIG9yIGp1c3QgZXZlcnlvbmUgZG9lcwo+IHRoYXQs IGJ1dCB1c3VhbGx5Cj4gd2UgcHV0IHdoYXQgaGFzIGNoYW5nZWQgYXMgYSBwYXJ0IG9mIGNvbW1p dCBtc2cgYWJvdmUgYW55IFNpZ24tb2ZmLWJ5IAo+IG9yIENDLgoKSSd2ZSBqdXN0IGJlZW4gZm9s bG93aW5nIGFuIGFkdmljZSBJIGdvdCByZWNlbnRseSBvbiBhIGtlcm5lbCByZWxhdGVkCmxpc3Qg dG8ga2VlcCBjaGFuZ2Vsb2cgb3V0IG9mIGNvbW1pdCBtZXNzYWdlLiAgSWYgeW91ciBydWxlcyBh cmUKZGlmZmVyZW50LCBJJ2xsIGJlIGhhcHB5IHRvIGZvbGxvdyB0aGVtIGhlcmUuCgo+IEFuZCBh cyBzb29uIGFzIHRoaXMgaXMgYSB2MiB5b3UgY291bGQgbWFyayBpdCBpbiB0aGUgcGF0Y2ggbmFt ZQo+IChkdXJpbmcKPiBnZW5lcmF0aW5nIHBhdGNoIGZvciByZXZpZXcpLgoKWWVhaCwgSSBtaXNz ZWQgdGhhdCwgc29ycnkuIAoKPiA+ICB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzICB8ICAgMSArCj4g PiAgdGVzdHMvY29yZV9ob3RfcmVsb2FkLmMgfCAyNDgKPiA+ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPiA+ICB0ZXN0cy9tZXNvbi5idWlsZCAgICAgICB8ICAgMSAr Cj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAyNTAgaW5zZXJ0aW9ucygrKQo+ID4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0ZXN0cy9jb3JlX2hvdF9yZWxvYWQuYwo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvdGVz dHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiA+IGluZGV4IDg2 YWQzMDFlLi41ZjlkYmEzMCAxMDA2NDQKPiA+IC0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMK PiA+ICsrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiA+IEBAIC0xNiw2ICsxNiw3IEBAIFRF U1RTX3Byb2dzID0gXAo+ID4gIAljb3JlX2dldGNsaWVudCBcCj4gPiAgCWNvcmVfZ2V0c3RhdHMg XAo+ID4gIAljb3JlX2dldHZlcnNpb24gXAo+ID4gKwljb3JlX2hvdF9yZWxvYWQgXAo+ID4gIAlj b3JlX3NldG1hc3Rlcl92c19hdXRoIFwKPiA+ICAJZGVidWdmc190ZXN0IFwKPiA+ICAJZHJtX2lt cG9ydF9leHBvcnQgXAo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL2NvcmVfaG90X3JlbG9hZC5jIGIv dGVzdHMvY29yZV9ob3RfcmVsb2FkLmMKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRl eCAwMDAwMDAwMC4uOTZmMGVmZDAKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL3Rlc3RzL2Nv cmVfaG90X3JlbG9hZC5jCj4gPiBAQCAtMCwwICsxLDI0OCBAQAo+ID4gKy8qCj4gPiArICogQ29w eXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KPiA+ICsgKgo+ID4gKyAqIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCj4gPiBv YnRhaW5pbmcgYQo+ID4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uIGZpbGVzICh0aGUKPiA+ICJTb2Z0d2FyZSIpLAo+ID4gKyAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0Cj4g PiBsaW1pdGF0aW9uCj4gPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsCj4gPiBzdWJsaWNlbnNlLAo+ID4gKyAqIGFuZC9vciBz ZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0bwo+ID4g d2hvbSB0aGUKPiA+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZwo+ID4gY29uZGl0aW9uczoKPiA+ICsgKgo+ID4gKyAqIFRoZSBhYm92 ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlCj4gPiAoaW5jbHVk aW5nIHRoZSBuZXh0Cj4gPiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsCj4gPiBwb3J0aW9ucyBvZiB0aGUKPiA+ICsgKiBTb2Z0d2Fy ZS4KPiA+ICsgKgo+ID4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRI T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAo+ID4gRVhQUkVTUyBPUgo+ID4gKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKPiA+IE1FUkNI QU5UQUJJTElUWSwKPiA+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiAgSU4gTk8KPiA+IEVWRU5UIFNIQUxMCj4gPiArICogVEhFIEFVVEhP UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sCj4gPiBEQU1B R0VTIE9SIE9USEVSCj4gPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCj4gPiBBUklTSU5HCj4gPiArICogRlJPTSwgT1VU IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgo+ID4g T1RIRVIgREVBTElOR1MKPiA+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4gPiArICovCj4gPiArCj4g PiArI2luY2x1ZGUgImlndC5oIgo+ID4gKyNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCj4gPiArI2lu Y2x1ZGUgImlndF9kdW1teWxvYWQuaCIKPiA+ICsjaW5jbHVkZSAiaWd0X2ttb2QuaCIKPiA+ICsj aW5jbHVkZSAiaWd0X3N5c2ZzLmgiCj4gPiArCj4gPiArI2luY2x1ZGUgPGdldG9wdC5oPgo+ID4g KyNpbmNsdWRlIDxsaW1pdHMuaD4KPiA+ICsjaW5jbHVkZSA8c3RyaW5nLmg+Cj4gPiArI2luY2x1 ZGUgPHVuaXN0ZC5oPgo+ID4gKwo+ID4gKwo+ID4gK3R5cGVkZWYgdm9pZCAoKndvcmtsb2FkX3dh aXRfdCkoaW50IGRldmljZSwgdm9pZCAqcHJpdik7Cj4gPiArdHlwZWRlZiBpbnQgKCphY3Rpb25f dCkoaW50IGRpcik7Cj4gPiArdHlwZWRlZiBpbnQgKCp3b3JrbG9hZF90KShpbnQgZGV2aWNlLCB2 b2lkICpwcml2LCBhY3Rpb25fdAo+ID4gYWN0aW9uKTsKPiA+ICsKPiA+ICsKPiA+ICsvKgo+ID4g KyAqIEFjdGlvbnMKPiA+ICsgKi8KPiA+ICsKPiA+ICsvKiBVbmJpbmQgdGhlIGRyaXZlciBmcm9t IHRoZSBkZXZpY2UgKi8KPiBJdCB3b3VsZCBiZSBuaWNlIGlmIHlvdSBhZGQgZG9jcyB0byBhbGwv YWxtb3N0IGFsbCBmdW5jdGlvbnMgbGlrZToKPiAvKioKPiAgKmRyaXZlcl91bmJpbmQ6Cj4gICpA ZGlyOiBmZCBvZiBkaXJlY3RvcnkgdG8gbG9vayBpbgo+ICAqCj4gICogVW5iaW5kIHRoZSBkcml2 ZXIgZnJvbSB0aGUgZGV2aWNlCj4gICogUmV0dXJucyAtMSBmb3IgPwo+ICAqLwo+ICBFeGFtcGxl IGlzIG5vdCBmaW5pc2hlZC4gU2VlIG90aGVyIGZpbGVzIGZvciBleGFtcGxlcy4KCk9LLCBJJ2xs IGRvIG15IGJlc3QgbXkgZmluYWwgdmVyc2lvbiBoYXZlIHNoaW55IGNvbW1lbnRzIDotKQoKPiA+ ICtzdGF0aWMgaW50IGRyaXZlcl91bmJpbmQoaW50IGRpcikKPiA+ICt7Cj4gPiArCWNoYXIgcGF0 aFtQQVRIX01BWF0sICpkZXZfYnVzX2FkZHI7Cj4gPiArCWludCBsZW47Cj4gPiArCj4gPiArCWxl biA9IHJlYWRsaW5rYXQoZGlyLCAiZGV2aWNlIiwgcGF0aCwgc2l6ZW9mKHBhdGgpIC0gMSk7Cj4g PiArCXBhdGhbbGVuXSA9ICdcMCc7Cj4gPiArCWRldl9idXNfYWRkciA9IHN0cnJjaHIocGF0aCwg Jy8nKSArIDE7Cj4gPiArCj4gPiArCWlndF9zZXRfdGltZW91dCg2MCwgIkRyaXZlciB1bmJpbmQg dGltZW91dCEiKTsKPiA+ICsJaWd0X3N5c2ZzX3NldChkaXIsICJkZXZpY2UvZHJpdmVyL3VuYmlu ZCIsIGRldl9idXNfYWRkcik7Cj4gPiArCj4gPiArCS8qIE5vIG5lZWQgZm9yIGJ1cyByZXNjYW4g Ki8KPiA+ICsJcmV0dXJuIC0xOwo+IFdoeSBkbyB3ZSBhbHdheXMgd2FudCB0byByZXR1cm4gLTE/ CgpSZXR1cm4gdmFsdWUgaXMgdXNlZCBieSBhIGNhbGxlciBhcyBhIGZpbGUgZGVjcmlwdG9yIHRv IGEgZGV2aWNlIGJ1cycKc3lzZnMgZGlyZWN0b3J5IGZvciByZXNjYW5uaW5nIHRoZSBidXMuICBJ biBjYXNlIG9mIGRyaXZlciB1bmJpbmQKb3BlcmF0aW9uLCB0aGUgZGV2aWNlIGRvZXMgbm90IGRp c2FwcGVhciBmcm9tIGl0cyBidXMgc28gdGhlcmUgaXMgbm8KbmVlZCB0byByZXNjYW4gdGhlIGJ1 cywgdGhhdCdzIHdoeSBhbiBpbnZhbGlkIGZpbGUgZGVzY3JpcHRvciBpcyBwYXNzZWQKYmFjayBo ZXJlLiBUaGUgY2FsbGVyIGtub3dzIHdoYXQgdGhhdCBtZWFucy4KCj4gPiArfQo+ID4gKwo+ID4g Ky8qIFJldHVybnMgb3BlbiBmaWxlIGRlc2NyaXB0b3IgdG8gYSBkaXJlY3Rvcnkgb2YgYSBidXMg dG8gcmVzY2FuCj4gPiBmb3IgcmUtcGx1ZyAqLwo+IHMvb3Blbi9vcGVuZWQvCj4gPiArc3RhdGlj IGludCBkZXZpY2VfdW5wbHVnKGludCBkaXIpCj4gPiArewo+ID4gKwlpbnQgYnVzOwo+ID4gKwo+ ID4gKwlidXMgPSBvcGVuYXQoZGlyLCAiZGV2aWNlL3N1YnN5c3RlbSIsIE9fRElSRUNUT1JZKTsK PiA+ICsJaWd0X2Fzc2VydChidXMgPj0gMCk7Cj4gPiArCj4gPiArCWlndF9zZXRfdGltZW91dCg2 MCwgIkRldmljZSB1bnBsdWcgdGltZW91dCEiKTsKPiA+ICsJaWd0X3N5c2ZzX3NldChkaXIsICJk ZXZpY2UvcmVtb3ZlIiwgIjEiKTsKPiA+ICsKPiA+ICsJcmV0dXJuIGJ1czsKPiA+ICt9Cj4gPiAr Cj4gPiArCj4gPiArLyoKPiA+ICsgKiBPcGVyYXRpb24gdGVtcGxhdGUKPiA+ICsgKi8KPiA+ICtz dGF0aWMgaW50IG9wZXJhdGlvbihpbnQgZGV2aWNlLCBhY3Rpb25fdCBhY3Rpb24sIHdvcmtsb2Fk X3dhaXRfdAo+ID4gd29ya2xvYWRfd2FpdCwKPiA+ICsJCSAgICAgdm9pZCAqcHJpdikKPiA+ICt7 Cj4gPiArCWludCBkaXIsIGJ1czsKPiA+ICsKPiA+ICsJZGlyID0gaWd0X3N5c2ZzX29wZW4oZGV2 aWNlKTsKPiA+ICsKPiA+ICsJYnVzID0gYWN0aW9uKGRpcik7Cj4gPiArCWNsb3NlKGRpcik7Cj4g PiArCj4gPiArCWlmICh3b3JrbG9hZF93YWl0KQo+ID4gKwkJd29ya2xvYWRfd2FpdChkZXZpY2Us IHByaXYpOwo+ID4gKwlpZ3RfcmVzZXRfdGltZW91dCgpOwo+ID4gKwo+ID4gKwlyZXR1cm4gYnVz Owo+ID4gK30KPiA+ICsKPiA+ICsKPiA+ICsvKgo+ID4gKyAqIFdvcmtsb2Fkcwo+ID4gKyAqLwo+ ID4gKwo+ID4gKy8qIFdvcmtsb2FkIHVzaW5nIGlndF9zcGluX2JhdGNoX3J1bigpICovCj4gPiAr Cj4gPiArc3RhdGljIHZvaWQgc3Bpbl9iYXRjaF93YWl0KGludCBkZXZpY2UsIHZvaWQgKnByaXYp Cj4gPiArewo+ID4gKwlpZ3Rfc3Bpbl90ICpzcGluID0gcHJpdjsKPiA+ICsKPiA+ICsJLyogd2Fp dCB1bnRpbCB0aGUgd29ya2xvYWQgaGFzIGNyYXNoZWQgKi8KPiA+ICsJZ2VtX3dhaXQoZGV2aWNl LCBzcGluLT5oYW5kbGUsIE5VTEwpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IHNwaW5f YmF0Y2goaW50IGRldmljZSwgdm9pZCAqcHJpdiwgYWN0aW9uX3QgYWN0aW9uKQo+ID4gK3sKPiA+ ICsJaWd0X3NwaW5fdCAqc3BpbjsKPiA+ICsJaW50IGJ1czsKPiA+ICsKPiA+ICsJaWd0X2Fzc2Vy dCghcHJpdik7Cj4gPiArCj4gPiArCS8qIFN0YXJ0IHRoZSB3b3JrbG9hZCBpbiBiYWNrZ3JvdW5k Lgo+ID4gKwkgKiBNYWtlIHN1cmUgaXQgaXMgcnVubmluZyBhbmQgdGltZXMgb3V0IGFmdGVyIDkw IHNlY29uZHMgKi8KPiBQbGFzZSB1c2UgZHJtL3NjcmlwdHMvY2hlY2twYXRjaC5wbCB0byBjaGVj ayBmb3JtYXRpbmcgb2YgdGhpcyBeCj4gY29tbWVuZCBhbmQgdGhlCj4gcmVzdCBvZiB0aGUgZmls ZS4KCk9LLCBJIHdhcyBub3QgYXdhcmUgd2UgaGF2ZSBpdC4KCj4gPiArCXNwaW4gPSBpZ3Rfc3Bp bl9iYXRjaF9uZXcoZGV2aWNlLCAuZmxhZ3MgPSBJR1RfU1BJTl9QT0xMX1JVTik7Cj4gPiArCWln dF9zcGluX2J1c3l3YWl0X3VudGlsX3J1bm5pbmcoc3Bpbik7Cj4gPiArCWlndF9zcGluX2JhdGNo X3NldF90aW1lb3V0KHNwaW4sIDkwMDAwMDAwMDAwKTsKPiA+ICsKPiA+ICsJLyogcnVuIHRoZSB0 ZXN0ZWQgYWN0aW9uICovCj4gPiArCWJ1cyA9IG9wZXJhdGlvbihkZXZpY2UsIGFjdGlvbiwgc3Bp bl9iYXRjaF93YWl0LCBzcGluKTsKPiA+ICsKPiA+ICsJLyoKPiA+ICsJICogQ2xlYW4gdXAgZHJp dmVyIHJlc291cmNlcyBwb3NzaWJseSBub3QgcmVsZWFzZWQgb24gd29ya2xvYWQKPiA+IGNyYXNo Cj4gPiArCSAqIHNvIHRoZSBkcml2ZXIgbW9kdWxlIGNhbiBiZSBzdWNjZXNzZnVsbHkgdW5sb2Fk ZWQKPiA+ICsJICovCj4gPiArCWlndF9zcGluX2JhdGNoX2ZyZWUoZGV2aWNlLCBzcGluKTsKPiA+ ICsKPiA+ICsJcmV0dXJuIGJ1czsKPiA+ICt9Cj4gPiArCj4gPiArCj4gPiArLyoKPiA+ICsgKiBT a2VsZXRvbgo+ID4gKyAqLwo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGhlYWx0aGNoZWNrKGludCBj aGlwc2V0LCBpbnQgKmRldmljZSkKPiA+ICt7Cj4gPiArCWlmIChjaGlwc2V0ID09IERSSVZFUl9J TlRFTCkgewo+ID4gKwkJLyoKPiA+ICsJCSAqIFdlIGhhdmUgaXQgcGVyZmVjdGx5IGltcGxlbWVu dGVkIGluCj4gPiBpOTE1X21vZHVsZV9sb2FkLAo+ID4gKwkJICoganVzdCB1c2UgaXQuCj4gPiAr CQkgKi8KPiA+ICsJCWlndF9hc3NlcnQoaWd0X3N5c3RlbV9xdWlldCgiaTkxNV9tb2R1bGVfbG9h ZCAtLXJ1bi0KPiA+IHN1YnRlc3QgcmVsb2FkIikKPiA+ICsJCQkgICA9PSBJR1RfRVhJVF9TVUND RVNTKTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCS8qCj4gPiArCQkgKiBXZSBkb24ndCBrbm93IGhv dyB0byBjaGVjayBhbiB1bmlkZW50aWZpZWQgZGV2aWNlCj4gPiBmb3IgaGVhbHRoLAo+ID4gKwkJ ICoganVzdCByZW9wZW4gaXQuCj4gPiArCQkgKi8KPiA+ICsJfQo+IElmIHdlIGRvIG5vdCBrbm93 L2RvIG5vdCB3YW50IHRvIGtub3cgYWJvdXQgb3RoZXIgZGV2aWNlcywgd2UgY291bGQKPiBhZGQK PiByZXF1aXJlbWVudCB0byB3aG9sZSBiaW5hcnk6Cj4gZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJ VkVSX0lOVEVMKTsKPiBpZ3RfcmVxdWlyZV9nZW0oZmQpOwoKTXkgaWRlYSB3YXMgdG8gY3JlYXRl IGEgaGFyZHdhcmUgYWdub3N0aWMgdG9vbCwgbGVhdmluZyBwbGFjZWhvbGRlcnMKd2hlcmV2ZXIg bm8gcmVxdWlyZWQgZnVudGlvbmFsaXR5IGV4aXN0cyBmb3Igbm9uLUludGVsIGhhcmR3YXJlLgoK PiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgZHJpdmVyX3VubG9hZChpbnQgY2hpcHNldCwg Y2hhciAqZHJpdmVyKQo+ID4gK3sKPiA+ICsJaWYgKGNoaXBzZXQgPT0gRFJJVkVSX0lOVEVMKQo+ ID4gKwkJaWd0X2Fzc2VydChpZ3RfaTkxNV9kcml2ZXJfdW5sb2FkKCkgPT0KPiA+IElHVF9FWElU X1NVQ0NFU1MpOwo+ID4gKwllbHNlCj4gPiArCQlpZ3RfYXNzZXJ0KGlndF9rbW9kX3VubG9hZChk cml2ZXIsIDApID09IDApOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBfX3N1YnRlc3Qo aW50IGRldmljZSwgaW50IGNoaXBzZXQsIGNoYXIgKmRyaXZlciwKPiA+ICsJCSAgICAgIHdvcmts b2FkX3Qgd29ya2xvYWQsIHZvaWQgKnByaXYsIGFjdGlvbl90IGFjdGlvbikKPiA+ICt7Cj4gPiAr CWludCBidXMgPSB3b3JrbG9hZChkZXZpY2UsIHByaXYsIGFjdGlvbik7Cj4gPiArCj4gPiArCWNs b3NlKGRldmljZSk7Cj4gPiArCWRyaXZlcl91bmxvYWQoY2hpcHNldCwgZHJpdmVyKTsKPiA+ICsK PiA+ICsJLyogVmFsaWQgZmlsZSBkZXNjcmlwdG9yIGluZGljYXRlcyB3ZSBzaG91bGQgcmVzY2Fu IHRoZSBidXMgKi8KPiA+ICsJaWYgKGJ1cyA+PSAwKSB7Cj4gPiArCQlpZ3Rfc3lzZnNfc2V0KGJ1 cywgInJlc2NhbiIsICIxIik7Cj4gPiArCQljbG9zZShidXMpOwo+ID4gKwl9Cj4gPiArfQo+ID4g Kwo+ID4gK3N0YXRpYyB2b2lkIHJ1bl9zdWJ0ZXN0KGludCAqZGV2aWNlLCBpbnQgY2hpcHNldCwg Y2hhciAqZHJpdmVyLAo+ID4gKwkJCXdvcmtsb2FkX3Qgd29ya2xvYWQsIHZvaWQgKnByaXYsIGFj dGlvbl90Cj4gPiBhY3Rpb24pCj4gPiArewo+ID4gKwlfX3N1YnRlc3QoKmRldmljZSwgY2hpcHNl dCwgZHJpdmVyLCB3b3JrbG9hZCwgcHJpdiwgYWN0aW9uKTsKPiA+ICsKPiA+ICsJc2xlZXAoMik7 Cj4gV2h5IGRvIHdlIG5lZWQgMiBzZWNvbmRzIG9mIHNsZWVwIGhlcmU/IFdoZXJlIGlzIHRoZSBk YXRhIGNvbWluZwo+IGZyb20/CgpXZSBkb24ndCwgdGhhdCdzIGEgbGVmdCBvdmVyIGZyb20gbXkg dGVzdGluZy4gIFRoYW5rcyBmb3IgY2F0Y2hpbmcKdGhpcy4KCj4gPiArCj4gPiArCSpkZXZpY2Ug PSBfX2RybV9vcGVuX2RyaXZlcihjaGlwc2V0KTsKPiA+ICsJaGVhbHRoY2hlY2soY2hpcHNldCwg ZGV2aWNlKTsKPiA+ICsKPiA+ICsJaWd0X2Fzc2VydCgqZGV2aWNlID49IDApOwo+ID4gK30KPiA+ ICsKPiA+ICsKPiA+ICtpZ3RfbWFpbiB7Cj4gPiArCWludCBkZXZpY2UsIGNoaXBzZXQ7Cj4gPiAr CWNoYXIgKmRyaXZlcjsKPiA+ICsKPiA+ICsJaWd0X2ZpeHR1cmUgewo+ID4gKwkJY2hhciBwYXRo W1BBVEhfTUFYXTsKPiA+ICsJCWludCBkaXIsIGxlbjsKPiA+ICsKPiA+ICsJCS8qCj4gPiArCQkg KiBTaW5jZSB0aGUgdGVzdCBkZXBlbmRzIG9uIHN1Y2Nlc3NmdWwgdW5sb2FkIG9mCj4gPiBkcml2 ZXIgbW9kdWxlLAo+ID4gKwkJICogZG9uJ3QgdXNlIGRybV9vcGVuX2RyaXZlcigpIGFzIGl0IGtl ZXBzIGEgZmlsZQo+ID4gZGVzY3JpcHRvcgo+ID4gKwkJICogb3BlbiBmb3IgZXhpdCBoYW5kbGVy IHVzZSB0aGF0IGVmZmVjdGl2ZWx5IGxvY2tzIHRoZQo+ID4gbW9kdWxlLgo+ID4gKwkJICovCj4g PiArCQlkZXZpY2UgPSBfX2RybV9vcGVuX2RyaXZlcihEUklWRVJfQU5ZKTsKPiBCYXNlZCBvbiB3 aGF0IHlvdSd2ZSB3cm90ZSBpbiBjb21taXQgbXNnIHdoZW4gZHVtbXkgbG9hZCB3b3JrcyBvbmx5 Cj4gb24KPiBEUklWRVJfSU5URUwsIHdoeSBkbyB3ZSBldmVuIGNhcmUgYWJvdXQgb3RoZXIgZHJp dmVycz8gV2h5IGRvbid0IHdlCj4gb3BlbiBJTlRFTAo+IGhlcmUgYW5kIHNraXAgb24gb3RoZXIg dHlwZXM/CgpCZWNhdXNlIEkgdGhpbmsgd2Ugc2hvdWxkIGJlIGZyaWVuZGx5IHRvIG90aGVycywg aWYgdGhhdCBkb2Vzbid0IGNvc3QsCndoaWxlIGRldmVsb3BpbmcgYW4gb3BlbiBzb3VyY2UgdG9v bC4KCj4gCj4gUXVpdGUgYSBuaWNlIGpvYiBkb25lIGhlcmUgOikgTG9va3MgbGlrZSB5b3UgYXJl IGdvaW5nIGludG8gcmlnaHQKPiBkaXJlY3Rpb24uCj4gS2FzaWEgOikKClRoYW5rIHlvdSA6LSkK Ck1lYW53aGlsZSBJJ3ZlIGJlZW4gb2JzZXJ2aW5nIHNvbWUgaXNzdWVzIHdpdGggdGhpcyB0b29s IHdoaWNoIGV4aGliaXQKdGhlbXNlbHZlcyBhcyB0aGUgZHJpdmVyIHVuZGVyIHRoZSB0ZXN0IGhh cyBpdHMgYnVncywgZGlzY292ZXJlZCB3aXRoCnRoZSB0b29sLCBwYXRjaGVkLiAgSSdsbCBzdWJt aXQgYSBuZXcgdmVyc2lvbiBzb29uLgoKVGhhbmtzLApKYW51c3oKCj4gPiArCQlpZ3RfYXNzZXJ0 KGRldmljZSA+PSAwKTsKPiA+ICsKPiA+ICsJCWlmIChpc19pOTE1X2RldmljZShkZXZpY2UpKSB7 Cj4gPiArCQkJY2hpcHNldCA9IERSSVZFUl9JTlRFTDsKPiA+ICsJCQlkcml2ZXIgPSBzdHJkdXAo Imk5MTUiKTsKPiA+ICsJCX0gZWxzZSB7Cj4gPiArCQkJY2hpcHNldCA9IERSSVZFUl9BTlk7Cj4g PiArCj4gPiArCQkJLyogQ2FwdHVyZSBtb2R1bGUgbmFtZSB0byBiZSB1bmxvYWRlZCAqLwo+ID4g KwkJCWRpciA9IGlndF9zeXNmc19vcGVuKGRldmljZSk7Cj4gPiArCQkJbGVuID0gcmVhZGxpbmth dChkaXIsICJkZXZpY2UvZHJpdmVyL21vZHVsZSIsCj4gPiBwYXRoLAo+ID4gKwkJCQkJIHNpemVv ZihwYXRoKSAtIDEpOwo+ID4gKwkJCWNsb3NlKGRpcik7Cj4gPiArCQkJcGF0aFtsZW5dID0gJ1ww JzsKPiA+ICsJCQlkcml2ZXIgPSBzdHJkdXAoc3RycmNocihwYXRoLCAnLycpICsgMSk7Cj4gPiAr CQl9Cj4gPiArCQlpZ3RfaW5mbygiUnVubmluZyB0aGUgdGVzdCBvbiBkcml2ZXIgXCIlc1wiLCBj aGlwc2V0Cj4gPiBtYXNrICUjMHhcbiIsCj4gPiArCQkJIGRyaXZlciwgY2hpcHNldCk7Cj4gPiAr CX0KPiA+ICsKPiA+ICsJaWd0X3N1YnRlc3QoInVucGx1ZyIpCj4gPiArCQlydW5fc3VidGVzdCgm ZGV2aWNlLCBjaGlwc2V0LCBkcml2ZXIsIHNwaW5fYmF0Y2gsIE5VTEwsCj4gPiArCQkJICAgIGRl dmljZV91bnBsdWcpOwo+ID4gKwo+ID4gKwlpZ3Rfc3VidGVzdCgidW5iaW5kIikKPiA+ICsJCXJ1 bl9zdWJ0ZXN0KCZkZXZpY2UsIGNoaXBzZXQsIGRyaXZlciwgc3Bpbl9iYXRjaCwgTlVMTCwKPiA+ ICsJCQkgICAgZHJpdmVyX3VuYmluZCk7Cj4gPiArCj4gPiArCWlndF9maXh0dXJlIHsKPiA+ICsJ CWZyZWUoZHJpdmVyKTsKPiA+ICsJCWNsb3NlKGRldmljZSk7Cj4gPiArCQkvKgo+ID4gKwkJICog Tm93IHJlb3BlbiB0aGUgZGV2aWNlIHdpdGggZHJtX29wZW5fZHJpdmVyKCkgZm9yIGEKPiA+IHdo aWxlCj4gPiArCQkgKiBzbyBleGl0IGhhbmRsZXIgaXMgcmVnaXN0ZXJlZCBhbmQgY2FuIGRvIGl0 cyBqb2Igb24KPiA+IGV4aXQuCj4gPiArCQkgKi8KPiA+ICsJCWRldmljZSA9IGRybV9vcGVuX2Ry aXZlcihjaGlwc2V0KTsKPiA+ICsJCWNsb3NlKGRldmljZSk7Cj4gPiArCX0KPiA+ICt9Cj4gPiBk aWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAo+ID4gaW5k ZXggOGUxYWU0ZmQuLmU2Yjg3NDQ3IDEwMDY0NAo+ID4gLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQK PiA+ICsrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCj4gPiBAQCAtMyw2ICszLDcgQEAgdGVzdF9wcm9n cyA9IFsKPiA+ICAJJ2NvcmVfZ2V0Y2xpZW50JywKPiA+ICAJJ2NvcmVfZ2V0c3RhdHMnLAo+ID4g IAknY29yZV9nZXR2ZXJzaW9uJywKPiA+ICsJJ2NvcmVfaG90X3JlbG9hZCcsCj4gPiAgCSdjb3Jl X3NldG1hc3Rlcl92c19hdXRoJywKPiA+ICAJJ2RlYnVnZnNfdGVzdCcsCj4gPiAgCSdkcm1faW1w b3J0X2V4cG9ydCcsCj4gPiAtLSAKPiA+IDIuMjAuMQo+ID4gCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2lndC1kZXY=