From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5970889AC6 for ; Thu, 9 May 2019 08:09:28 +0000 (UTC) From: Janusz Krzysztofik Date: Thu, 9 May 2019 10:09:14 +0200 Message-Id: <20190509080914.2957-2-janusz.krzysztofik@linux.intel.com> In-Reply-To: <20190509080914.2957-1-janusz.krzysztofik@linux.intel.com> References: <20190509080914.2957-1-janusz.krzysztofik@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v9 1/1] tests: Add a new test for device hot unplug 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: Daniel Vetter Cc: janusz.krzysztofik@intel.com, Petri Latvala , igt-dev@lists.freedesktop.org List-ID: RnJvbTogSmFudXN6IEtyenlzenRvZmlrIDxqYW51c3oua3J6eXN6dG9maWtAaW50ZWwuY29tPgoK VGhlcmUgaXMgYSB0ZXN0IHdoaWNoIHZlcmlmaWVzIHVubG9hZGluZyBvZiBpOTE1IGRyaXZlciBt b2R1bGUgYnV0IG5vIHRlc3QKZXhpc3RzIHRoYXQgY2hlY2tzIGhvdyBhIGRyaXZlciBiZWhhdmVz IHdoZW4gaXQgZ2V0cyB1bmJvdW5kIGZyb20gYSBkZXZpY2UKb3Igd2hlbiB0aGUgZGV2aWNlIGdl dHMgdW5wbHVnZ2VkLiAgUHJvdmlkZSBzdWNoIHRlc3QgdXNpbmcgc3lzZnMKaW50ZXJmYWNlLgoK VHdvIG1pbmltYWxpc3RpYyBzdWJ0ZXN0cyAtICJ1bmJpbmQtcmViaW5kIiBhbmQgInVucGx1Zy1y ZXNjYW4iIC0gcGVyZm9ybQpkZXNpcmVkIG9wZXJhdGlvbnMgb24gYSBEUk0gZGV2aWNlIHdoaWNo IGlzIGJlbGVpdmVkIHRvIGJlIG5vdCBpbiB1c2UuCgpBIHN1YnRlc3QgbmFtZWQgImRybV9vcGVu LWhvdHVucGx1ZyIgdW5wbHVncyBhIERSTSBkZXZpY2Ugd2hpbGUga2VlcGluZwphIGZpbGUgZGVz Y3JpcHRvciBvcGVuLgoKQSAiZ2VtX2J1ZmZlci1ob3R1bnBsdWciIHN1YnRlc3QgcGVyZm9ybXMg ZGV2aWNlIHVucGx1ZyB3aGlsZSBrZWVwaXVnIGEKR0VNIGJ1ZmZlciBvYmplY3QgYWxsb2NhdGVk LCB3aGlsZSBhICJnZW1fbW1hcC1ob3R1bnBsdWciIHN1YnRlc3QgZG9lcyB0aGUKc2FtZSB3aXRo IHRoZSBHRU0gYnVmZmVyIG9iamVjdCBhZGRpdGlvbmFsbHkgbW1hcHBlZC4KCk5leHQgdHdvIHN1 YnRlc3RzIHdvcmsgb25seSB3aXRoIGk5MTUgb3IgSW50ZWwgZHJpdmVyLiAgT25lIG9mIHRoZW0g LQoiaTkxNV9jb250ZXh0LWhvdHVucGx1ZyIgLSBwZXJmb3JtcyBkZXZpY2UgdW5wbHVnIHdoaWxl IGtlZXBpbmcgYW4gZXh0cmEKR0VNIGNvbnRleHQgYWxsb2NhdGVkLiAgVGhlIG90aGVyIG9uZSAt ICJpOTE1X3NwaW4taG90dW5wbHVnIiAtIHRyaWVzIHRvCnVucGx1ZyBhIGRldmljZSB3aXRoIGFu IGFjdGl2ZSBzcGluIGJhdGNoLgoKVGhlIGxhc3QgdHdvIHN1YnRlc3RzIHZlcmlmeSBkcml2ZXIg YmVoYXZpb3IgYWZ0ZXIgYSBkZXZpY2UgIGhhcyBiZWVuIGhvdAp1bnBsdWdnZWQuICBGaXJzdCBv ZiB0aGVtLCBjYWxsZWQgImRybS1ob3R1bnBsdWctdW5sb2FkIiwgY2hlY2tzIGlmIGFuCm9wZW4g ZmlsZSBkZXNjcmlwdG9yIG9mIGFuIHVucGx1Z2dlZCBkZXZpY2Ugc3RpbGwgcHJvdGVjdHMgdGhl IGRyaXZlcgptb2R1bGUgZnJvbSBiZWluZyB1bmxvYWRlZC4gIFRoZSBsYXN0IG9uZSAtICJpOTE1 LWhvdHVucGx1Zy13cml0ZSIgLQpjaGVja3MgaG93IHRoZSBpOTE1IGRyaXZlciBwb2ludGluZyB0 byBhbiB1bnBsdWdnZWQgZGV2aWNlIHJlc3BvbmRzIHRvIGEKR0VNIHdyaXRlIElPQ1RMIG9wZXJh dGlvbi4KClNpZ25lZC1vZmYtYnk6IEphbnVzeiBLcnp5c3p0b2ZpayA8amFudXN6LmtyenlzenRv ZmlrQGludGVsLmNvbT4KLS0tCiB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIHwgICAxICsKIHRlc3Rz L2NvcmVfaG90dW5wbHVnLmMgfCA0NjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIHRlc3RzL21lc29uLmJ1aWxkICAgICAgfCAgIDEgKwogMyBmaWxlcyBjaGFuZ2Vk LCA0NjQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2NvcmVfaG90dW5w bHVnLmMKCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZp bGUuc291cmNlcwppbmRleCA3ZjkyMWY2Yy4uMDg5NDJmMDAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL01h a2VmaWxlLnNvdXJjZXMKKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwpAQCAtMTYsNiArMTYs NyBAQCBURVNUU19wcm9ncyA9IFwKIAljb3JlX2dldGNsaWVudCBcCiAJY29yZV9nZXRzdGF0cyBc CiAJY29yZV9nZXR2ZXJzaW9uIFwKKwljb3JlX2hvdHVucGx1ZyBcCiAJY29yZV9zZXRtYXN0ZXJf dnNfYXV0aCBcCiAJZGVidWdmc190ZXN0IFwKIAlkcm1faW1wb3J0X2V4cG9ydCBcCmRpZmYgLS1n aXQgYS90ZXN0cy9jb3JlX2hvdHVucGx1Zy5jIGIvdGVzdHMvY29yZV9ob3R1bnBsdWcuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uMDhlN2IyYWIKLS0tIC9kZXYvbnVsbAor KysgYi90ZXN0cy9jb3JlX2hvdHVucGx1Zy5jCkBAIC0wLDAgKzEsNDYyIEBACisvKgorICogQ29w eXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQor ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNl bnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p dCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhl IG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBz dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhF IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB TUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4g Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT CisgKiBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUg ImlndF9kZXZpY2UuaCIKKyNpbmNsdWRlICJpZ3RfZHVtbXlsb2FkLmgiCisjaW5jbHVkZSAiaWd0 X2ttb2QuaCIKKyNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKKworI2luY2x1ZGUgPGxpbWl0cy5oPgor I2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisvKiBSZS1iaW5kIHRo ZSBkcml2ZXIgdG8gdGhlIGRldmljZSAqLworc3RhdGljIHZvaWQgZHJpdmVyX2JpbmQoaW50IGRy diwgY29uc3QgY2hhciAqYWRkcikKK3sKKwlpZ3Rfc2V0X3RpbWVvdXQoNjAsICJEcml2ZXIgcmUt YmluZCB0aW1lb3V0ISIpOworCWlndF9zeXNmc19zZXQoZHJ2LCAiYmluZCIsIGFkZHIpOworCWln dF9yZXNldF90aW1lb3V0KCk7CisKKwljbG9zZShkcnYpOworfQorCisvKiBVbmJpbmQgdGhlIGRy aXZlciBmcm9tIHRoZSBkZXZpY2UgKi8KK3N0YXRpYyB2b2lkIGRyaXZlcl91bmJpbmQoaW50IGRy diwgY29uc3QgY2hhciAqYWRkcikKK3sKKwlpZ3Rfc2V0X3RpbWVvdXQoNjAsICJEcml2ZXIgdW5i aW5kIHRpbWVvdXQhIik7CisJaWd0X3N5c2ZzX3NldChkcnYsICJ1bmJpbmQiLCBhZGRyKTsKKwlp Z3RfcmVzZXRfdGltZW91dCgpOworCisJLyogZG9uJ3QgY2xvc2UgZHJ2LCBpdCB3aWxsIGJlIHVz ZWQgZm9yIGRyaXZlciByZWJpbmRpbmcgKi8KK30KKworLyogUmUtZGlzY292ZXIgdGhlIGRldmlj ZSBieSByZXNjYW5uaW5nIGl0cyBidXMgKi8KK3N0YXRpYyB2b2lkIGJ1c19yZXNjYW4oaW50IGJ1 cykKK3sKKwlpZ3Rfc2V0X3RpbWVvdXQoNjAsICJCdXMgcmVzY2FuIHRpbWVvdXQhIik7CisJaWd0 X3N5c2ZzX3NldChidXMsICJyZXNjYW4iLCAiMSIpOworCWlndF9yZXNldF90aW1lb3V0KCk7CisK KwljbG9zZShidXMpOworfQorCisvKiBSZW1vdmUgKHZpcnR1YWxseSB1bnBsdWcpIHRoZSBkZXZp Y2UgZnJvbSBpdHMgYnVzICovCitzdGF0aWMgdm9pZCBkZXZpY2VfdW5wbHVnKGludCBkZXYpCit7 CisJaWd0X3NldF90aW1lb3V0KDYwLCAiRGV2aWNlIHVucGx1ZyB0aW1lb3V0ISIpOworCWlndF9z eXNmc19zZXQoZGV2LCAiZGV2aWNlL3JlbW92ZSIsICIxIik7CisJaWd0X3Jlc2V0X3RpbWVvdXQo KTsKKworCWNsb3NlKGRldik7Cit9CisKK3N0YXRpYyBib29sIG1vZHVsZV91bmxvYWQoaW50IGNo aXBzZXQsIGNvbnN0IGNoYXIgKm1vZHVsZSkKK3sKKwlpZiAoY2hpcHNldCA9PSBEUklWRVJfSU5U RUwpCisJCXJldHVybiBpZ3RfaTkxNV9kcml2ZXJfdW5sb2FkKCkgPT0gSUdUX0VYSVRfU1VDQ0VT UzsKKwllbHNlCisJCXJldHVybiBpZ3Rfa21vZF91bmxvYWQobW9kdWxlLCAwKSA9PSAwOworfQor CitzdGF0aWMgdm9pZCB1bmJpbmRfcmViaW5kKGludCBjaGlwc2V0KQoreworCWludCBmZCwgZGV2 LCBkcnYsIGxlbjsKKwljaGFyIHBhdGhbUEFUSF9NQVhdOworCWNvbnN0IGNoYXIgKmFkZHI7CisK KwlmZCA9IF9fZHJtX29wZW5fZHJpdmVyKGNoaXBzZXQpOworCWlndF9hc3NlcnQoZmQgPj0gMCk7 CisKKwlkZXYgPSBpZ3Rfc3lzZnNfb3BlbihmZCk7CisJaWd0X2Fzc2VydChkZXYgPj0gMCk7CisK KwljbG9zZShmZCk7CisKKwkvKiBjb2xsZWN0IGluZm9ybWF0aW9uIHJlcXVpcmVkIGZvciBkcml2 ZXIgYmluZC91bmJpbmQgKi8KKwlkcnYgPSBvcGVuYXQoZGV2LCAiZGV2aWNlL2RyaXZlciIsIE9f RElSRUNUT1JZKTsKKwlpZ3RfYXNzZXJ0KGRydiA+PSAwKTsKKworCWxlbiA9IHJlYWRsaW5rYXQo ZGV2LCAiZGV2aWNlIiwgcGF0aCwgc2l6ZW9mKHBhdGgpIC0gMSk7CisJcGF0aFtsZW5dID0gJ1ww JzsKKwlhZGRyID0gc3RycmNocihwYXRoLCAnLycpICsgMTsKKworCWNsb3NlKGRldik7CisKKwlp Z3RfZGVidWcoInVuYmluZGluZyBkcml2ZXJcbiIpOworICAgICAgICBkcml2ZXJfdW5iaW5kKGRy diwgYWRkcik7CisKKwlpZ3RfZGVidWcoInJlYmluZGluZyBkcml2ZXJcbiIpOworCWRyaXZlcl9i aW5kKGRydiwgYWRkcik7CisKKwlpZ3RfZGVidWcoInJlb3BlbmluZyBkZXZpY2VcbiIpOworCWZk ID0gX19kcm1fb3Blbl9kcml2ZXIoY2hpcHNldCk7CisJaWd0X2Fzc2VydChmZCA+PSAwKTsKKwor CWNsb3NlKGZkKTsKK30KKworc3RhdGljIHZvaWQgdW5wbHVnX3Jlc2NhbihpbnQgY2hpcHNldCkK K3sKKwlpbnQgZmQsIGRldiwgYnVzOworCisJZmQgPSBfX2RybV9vcGVuX2RyaXZlcihjaGlwc2V0 KTsKKwlpZ3RfYXNzZXJ0KGZkID49IDApOworCisJZGV2ID0gaWd0X3N5c2ZzX29wZW4oZmQpOwor CWlndF9hc3NlcnQoZGV2ID49IDApOworCisJY2xvc2UoZmQpOworCisJLyogY29sbGVjdCBpbmZv cm1hdGlvbiByZXF1aXJlZCBmb3IgYnVzIHJlc2NhbiAqLworCWJ1cyA9IG9wZW5hdChkZXYsICJk ZXZpY2Uvc3Vic3lzdGVtIiwgT19ESVJFQ1RPUlkpOworCWlndF9hc3NlcnQoYnVzID49IDApOwor CisJaWd0X2RlYnVnKCJ1bnBsdWdnaW5nIGRldmljZVxuIik7CisgICAgICAgIGRldmljZV91bnBs dWcoZGV2KTsKKworCWlndF9kZWJ1ZygicmVjb3ZlcmluZyBkZXZpY2VcbiIpOworCWJ1c19yZXNj YW4oYnVzKTsKKworCWlndF9kZWJ1ZygicmVvcGVuaW5nIGRyaXZlclxuIik7CisJZmQgPSBfX2Ry bV9vcGVuX2RyaXZlcihjaGlwc2V0KTsKKwlpZ3RfYXNzZXJ0KGZkID49IDApOworCisJY2xvc2Uo ZmQpOworfQorCitzdGF0aWMgdm9pZCBkcm1fb3Blbl9ob3R1bnBsdWcoaW50IGNoaXBzZXQpCit7 CisJaW50IGZkLCBkZXYsIGJ1czsKKworCWZkID0gX19kcm1fb3Blbl9kcml2ZXIoY2hpcHNldCk7 CisJaWd0X2Fzc2VydChmZCA+PSAwKTsKKworCWRldiA9IGlndF9zeXNmc19vcGVuKGZkKTsKKwlp Z3RfYXNzZXJ0KGRldiA+PSAwKTsKKworCS8qIGNvbGxlY3QgaW5mb3JtYXRpb24gcmVxdWlyZWQg Zm9yIGJ1cyByZXNjYW4gKi8KKwlidXMgPSBvcGVuYXQoZGV2LCAiZGV2aWNlL3N1YnN5c3RlbSIs IE9fRElSRUNUT1JZKTsKKwlpZ3RfYXNzZXJ0KGJ1cyA+PSAwKTsKKworCWlndF9kZWJ1ZygidW5w bHVnZ2luZyBkZXZpY2VcbiIpOworICAgICAgICBkZXZpY2VfdW5wbHVnKGRldik7CisKKwlpZ3Rf ZGVidWcoInJlY292ZXJpbmcgZGV2aWNlXG4iKTsKKwlidXNfcmVzY2FuKGJ1cyk7CisKKwlpZ3Rf ZGVidWcoImNsb3NpbmcgZGV2aWNlXG4iKTsKKwljbG9zZShmZCk7CisKKwlpZ3RfZGVidWcoInJl b3BlbmluZyBkcml2ZXJcbiIpOworCWZkID0gX19kcm1fb3Blbl9kcml2ZXIoY2hpcHNldCk7CisJ aWd0X2Fzc2VydChmZCA+PSAwKTsKKworCWNsb3NlKGZkKTsKK30KKworc3RhdGljIHZvaWQgZ2Vt X2J1ZmZlcl9ob3R1bnBsdWcoaW50IGNoaXBzZXQpCit7CisJaW50IGZkLCBkZXYsIGJ1czsKKwlz dHJ1Y3QgaWd0X2ZiIGZiOworCisJZmQgPSBfX2RybV9vcGVuX2RyaXZlcihjaGlwc2V0KTsKKwlp Z3RfYXNzZXJ0KGZkID49IDApOworCisJaWd0X2RlYnVnKCJjcmVhdGluZyBHRU0gb2JqZWN0XG4i KTsKKwlpZ3RfY3JlYXRlX2JvX2Zvcl9mYihmZCwgMSwgMSwgRFJNX0ZPUk1BVF9YUkdCODg4OCwg MCwgJmZiKTsKKworCWRldiA9IGlndF9zeXNmc19vcGVuKGZkKTsKKwlpZ3RfYXNzZXJ0KGRldiA+ PSAwKTsKKworCS8qIGNvbGxlY3QgaW5mb3JtYXRpb24gcmVxdWlyZWQgZm9yIGJ1cyByZXNjYW4g Ki8KKwlidXMgPSBvcGVuYXQoZGV2LCAiZGV2aWNlL3N1YnN5c3RlbSIsIE9fRElSRUNUT1JZKTsK KwlpZ3RfYXNzZXJ0KGJ1cyA+PSAwKTsKKworCWlndF9kZWJ1ZygidW5wbHVnZ2luZyBkZXZpY2Vc biIpOworICAgICAgICBkZXZpY2VfdW5wbHVnKGRldik7CisKKwlpZ3RfZGVidWcoInJlY292ZXJp bmcgZGV2aWNlXG4iKTsKKwlidXNfcmVzY2FuKGJ1cyk7CisKKwlpZ3RfZGVidWcoImNsb3Npbmcg ZGV2aWNlXG4iKTsKKwljbG9zZShmZCk7CisKKwlpZ3RfZGVidWcoInJlb3BlbmluZyBkcml2ZXJc biIpOworCWZkID0gX19kcm1fb3Blbl9kcml2ZXIoY2hpcHNldCk7CisJaWd0X2Fzc2VydChmZCA+ PSAwKTsKKworCWNsb3NlKGZkKTsKK30KKworc3RhdGljIHZvaWQgZ2VtX21tYXBfaG90dW5wbHVn KGludCBjaGlwc2V0KQoreworCWludCBmZCwgZGV2LCBidXM7CisJc3RydWN0IGlndF9mYiBmYjsK KworCWZkID0gX19kcm1fb3Blbl9kcml2ZXIoY2hpcHNldCk7CisJaWd0X2Fzc2VydChmZCA+PSAw KTsKKworCWlndF9kZWJ1ZygibW1hcHBpbmcgR0VNIG9iamVjdFxuIik7CisJaWd0X2NyZWF0ZV9i b19mb3JfZmIoZmQsIDEsIDEsIERSTV9GT1JNQVRfWFJHQjg4ODgsIDAsICZmYik7CisJaWd0X2ln bm9yZV93YXJuKGlndF9mYl9tYXBfYnVmZmVyKGZkLCAmZmIpKTsKKworCWRldiA9IGlndF9zeXNm c19vcGVuKGZkKTsKKwlpZ3RfYXNzZXJ0KGRldiA+PSAwKTsKKworCS8qIGNvbGxlY3QgaW5mb3Jt YXRpb24gcmVxdWlyZWQgZm9yIGJ1cyByZXNjYW4gKi8KKwlidXMgPSBvcGVuYXQoZGV2LCAiZGV2 aWNlL3N1YnN5c3RlbSIsIE9fRElSRUNUT1JZKTsKKwlpZ3RfYXNzZXJ0KGJ1cyA+PSAwKTsKKwor CWlndF9kZWJ1ZygidW5wbHVnZ2luZyBkZXZpY2VcbiIpOworICAgICAgICBkZXZpY2VfdW5wbHVn KGRldik7CisKKwlpZ3RfZGVidWcoInJlY292ZXJpbmcgZGV2aWNlXG4iKTsKKwlidXNfcmVzY2Fu KGJ1cyk7CisKKwlpZ3RfZGVidWcoImNsb3NpbmcgZGV2aWNlXG4iKTsKKwljbG9zZShmZCk7CisK KwlpZ3RfZGVidWcoInJlb3BlbmluZyBkcml2ZXJcbiIpOworCWZkID0gX19kcm1fb3Blbl9kcml2 ZXIoY2hpcHNldCk7CisJaWd0X2Fzc2VydChmZCA+PSAwKTsKKworCWNsb3NlKGZkKTsKK30KKwor c3RhdGljIHZvaWQgaTkxNV9jb250ZXh0X2hvdHVucGx1ZyhpbnQgY2hpcHNldCkKK3sKKwlpbnQg ZmQsIGRldiwgYnVzOworCisJZmQgPSBfX2RybV9vcGVuX2RyaXZlcihjaGlwc2V0KTsKKwlpZ3Rf YXNzZXJ0KGZkID49IDApOworCisJZ2VtX3JlcXVpcmVfY29udGV4dHMoZmQpOworCisJaWd0X2Rl YnVnKCJjcmVhdGluZyBHRU0gY29udGV4dFxuIik7CisJaWd0X2lnbm9yZV93YXJuKGdlbV9jb250 ZXh0X2NyZWF0ZShmZCkpOworCisJZGV2ID0gaWd0X3N5c2ZzX29wZW4oZmQpOworCWlndF9hc3Nl cnQoZGV2ID49IDApOworCisJLyogY29sbGVjdCBpbmZvcm1hdGlvbiByZXF1aXJlZCBmb3IgYnVz IHJlc2NhbiAqLworCWJ1cyA9IG9wZW5hdChkZXYsICJkZXZpY2Uvc3Vic3lzdGVtIiwgT19ESVJF Q1RPUlkpOworCWlndF9hc3NlcnQoYnVzID49IDApOworCisJaWd0X2RlYnVnKCJ1bnBsdWdnaW5n IGRldmljZVxuIik7CisgICAgICAgIGRldmljZV91bnBsdWcoZGV2KTsKKworCWlndF9kZWJ1Zygi cmVjb3ZlcmluZyBkZXZpY2VcbiIpOworCWJ1c19yZXNjYW4oYnVzKTsKKworCWlndF9kZWJ1Zygi Y2xvc2luZyBkZXZpY2VcbiIpOworCWNsb3NlKGZkKTsKKworCWlndF9kZWJ1ZygicmVvcGVuaW5n IGRyaXZlclxuIik7CisJZmQgPSBfX2RybV9vcGVuX2RyaXZlcihjaGlwc2V0KTsKKwlpZ3RfYXNz ZXJ0KGZkID49IDApOworCisJaWd0X2RlYnVnKCJwZXJmb3JtaW5nIGhlYWx0aGNoZWNrXG4iKTsK KwlnZW1fdGVzdF9lbmdpbmUoZmQsIEFMTF9FTkdJTkVTKTsKKworCWNsb3NlKGZkKTsKK30KKwor c3RhdGljIHZvaWQgaTkxNV9zcGluX2hvdHVucGx1ZyhpbnQgY2hpcHNldCkKK3sKKwlpbnQgZmQs IGRldiwgYnVzOworCisJZmQgPSBfX2RybV9vcGVuX2RyaXZlcihjaGlwc2V0KTsKKwlpZ3RfYXNz ZXJ0KGZkID49IDApOworCisJaWd0X2RlYnVnKCJzdWJtaXR0aW5nIGR1bW15IGxvYWRcbiIpOwor CWlndF9pZ25vcmVfd2FybihpZ3Rfc3Bpbl9uZXcoZmQpKTsKKworCWRldiA9IGlndF9zeXNmc19v cGVuKGZkKTsKKwlpZ3RfYXNzZXJ0KGRldiA+PSAwKTsKKworCS8qIGNvbGxlY3QgaW5mb3JtYXRp b24gcmVxdWlyZWQgZm9yIGJ1cyByZXNjYW4gKi8KKwlidXMgPSBvcGVuYXQoZGV2LCAiZGV2aWNl L3N1YnN5c3RlbSIsIE9fRElSRUNUT1JZKTsKKwlpZ3RfYXNzZXJ0KGJ1cyA+PSAwKTsKKworCWln dF9kZWJ1ZygidW5wbHVnZ2luZyBkZXZpY2VcbiIpOworICAgICAgICBkZXZpY2VfdW5wbHVnKGRl dik7CisKKwlpZ3RfZGVidWcoInJlY292ZXJpbmcgZGV2aWNlXG4iKTsKKwlidXNfcmVzY2FuKGJ1 cyk7CisKKwlpZ3RfZGVidWcoImNsb3NpbmcgZGV2aWNlXG4iKTsKKwljbG9zZShmZCk7CisKKwlp Z3RfZGVidWcoInJlb3BlbmluZyBkcml2ZXJcbiIpOworCWZkID0gX19kcm1fb3Blbl9kcml2ZXIo Y2hpcHNldCk7CisJaWd0X2Fzc2VydChmZCA+PSAwKTsKKworCWlndF9kZWJ1ZygicGVyZm9ybWlu ZyBoZWFsdGhjaGVja1xuIik7CisJZ2VtX3Rlc3RfZW5naW5lKGZkLCBBTExfRU5HSU5FUyk7CisK KwljbG9zZShmZCk7Cit9CisKK3N0YXRpYyB2b2lkIGRybV9ob3R1bnBsdWdfdW5sb2FkKGludCBj aGlwc2V0LCBjb25zdCBjaGFyICptb2R1bGUpCit7CisJaW50IGZkLCBkZXYsIGJ1czsKKworCWZk ID0gX19kcm1fb3Blbl9kcml2ZXIoY2hpcHNldCk7CisJaWd0X2Fzc2VydChmZCA+PSAwKTsKKwor CWRldiA9IGlndF9zeXNmc19vcGVuKGZkKTsKKwlpZ3RfYXNzZXJ0KGRldiA+PSAwKTsKKworCS8q IGNvbGxlY3QgaW5mb3JtYXRpb24gcmVxdWlyZWQgZm9yIGJ1cyByZXNjYW4gKi8KKwlidXMgPSBv cGVuYXQoZGV2LCAiZGV2aWNlL3N1YnN5c3RlbSIsIE9fRElSRUNUT1JZKTsKKwlpZ3RfYXNzZXJ0 KGJ1cyA+PSAwKTsKKworCWlndF9kZWJ1ZygidW5wbHVnZ2luZyBkZXZpY2VcbiIpOworICAgICAg ICBkZXZpY2VfdW5wbHVnKGRldik7CisKKwlpZ3RfZGVidWcoInRyeWluZyB0byB1bmxvYWQgbW9k dWxlXG4iKTsKKwlpZ3RfYXNzZXJ0KCFtb2R1bGVfdW5sb2FkKGNoaXBzZXQsIG1vZHVsZSkpOwor CisJaWd0X2RlYnVnKCJjbG9zaW5nIGRldmljZVxuIik7CisJY2xvc2UoZmQpOworCisJaWd0X2Rl YnVnKCJ1bmxvYWRpbmcgbW9kdWxlXG4iKTsKKwlpZ3RfYXNzZXJ0KG1vZHVsZV91bmxvYWQoY2hp cHNldCwgbW9kdWxlKSk7CisKKwlpZ3RfZGVidWcoInJlY292ZXJpbmcgZGV2aWNlXG4iKTsKKwli dXNfcmVzY2FuKGJ1cyk7CisKKwlpZ3RfZGVidWcoInJlb3BlbmluZyBkcml2ZXJcbiIpOworCWZk ID0gX19kcm1fb3Blbl9kcml2ZXIoY2hpcHNldCk7CisJaWd0X2Fzc2VydChmZCA+PSAwKTsKKwor CWNsb3NlKGZkKTsKK30KKworc3RhdGljIHZvaWQgaTkxNV9ob3R1bnBsdWdfd3JpdGUoaW50IGNo aXBzZXQpCit7CisJaW50IGZkLCBkZXYsIGJ1cywgZ2VtOworCWNvbnN0IHVpbnQzMl90IGJiZSA9 IE1JX0JBVENIX0JVRkZFUl9FTkQ7CisKKwlmZCA9IF9fZHJtX29wZW5fZHJpdmVyKGNoaXBzZXQp OworCWlndF9hc3NlcnQoZmQgPj0gMCk7CisKKwlpZ3RfcmVxdWlyZV9nZW0oZmQpOworCisJaWd0 X2RlYnVnKCJjcmVhdGluZyBHRU0gYnVmZmVyIG9iamVjdFxuIik7CisJZ2VtID0gZ2VtX2NyZWF0 ZShmZCwgMSk7CisKKwlkZXYgPSBpZ3Rfc3lzZnNfb3BlbihmZCk7CisJaWd0X2Fzc2VydChkZXYg Pj0gMCk7CisKKwkvKiBjb2xsZWN0IGluZm9ybWF0aW9uIHJlcXVpcmVkIGZvciBidXMgcmVzY2Fu ICovCisJYnVzID0gb3BlbmF0KGRldiwgImRldmljZS9zdWJzeXN0ZW0iLCBPX0RJUkVDVE9SWSk7 CisJaWd0X2Fzc2VydChidXMgPj0gMCk7CisKKwlpZ3RfZGVidWcoInVucGx1Z2dpbmcgZGV2aWNl XG4iKTsKKyAgICAgICAgZGV2aWNlX3VucGx1ZyhkZXYpOworCisJaWd0X2RlYnVnKCJ0cnlpbmcg dG8gd3JpdGUgdG8gR0VNIGJ1ZmZlclxuIik7CisJaWd0X2Fzc2VydF9uZXEoX19nZW1fd3JpdGUo ZmQsIGdlbSwgMCwgJmJiZSwgc2l6ZW9mKGJiZSkpLCAwKTsKKworCWlndF9kZWJ1ZygicmVjb3Zl cmluZyBkZXZpY2VcbiIpOworCWJ1c19yZXNjYW4oYnVzKTsKKworCWlndF9kZWJ1ZygiY2xvc2lu ZyBkZXZpY2VcbiIpOworCWNsb3NlKGZkKTsKKworCWlndF9kZWJ1ZygicmVvcGVuaW5nIGRyaXZl clxuIik7CisJZmQgPSBfX2RybV9vcGVuX2RyaXZlcihjaGlwc2V0KTsKKwlpZ3RfYXNzZXJ0KGZk ID49IDApOworCisJaWd0X2RlYnVnKCJwZXJmb3JtaW5nIGhlYWx0aGNoZWNrXG4iKTsKKwlnZW1f dGVzdF9lbmdpbmUoZmQsIEFMTF9FTkdJTkVTKTsKKworCWNsb3NlKGZkKTsKK30KKworaWd0X21h aW4geworCWludCBjaGlwc2V0OworCWNoYXIgKm1vZHVsZTsKKworCWlndF9maXh0dXJlIHsKKwkJ Y2hhciBwYXRoW1BBVEhfTUFYXTsKKwkJaW50IGZkLCBkZXYsIGxlbjsKKworCQkvKioKKwkJICog U2luY2Ugc29tZSBzdWJ0ZXN0cyBkZXBlbmQgb24gc3VjY2Vzc2Z1bCB1bmxvYWQgb2YgYSBkcml2 ZXIKKwkJICogbW9kdWxlLCBkb24ndCB1c2UgZHJtX29wZW5fZHJpdmVyKCkgYXMgaXQga2VlcHMg YSBkZXZpY2UgZmlsZQorCQkgKiBkZXNjcmlwdG9yIG9wZW4gZm9yIGV4aXQgaGFuZGxlciB1c2Ug YW5kIHRoYXQgZWZmZWN0aXZlbHkKKwkJICogcHJldmVudHMgdGhlIG1vZHVsZSBmcm9tIGJlaW5n IHVubG9hZGVkLgorCQkgKi8KKwkJZmQgPSBfX2RybV9vcGVuX2RyaXZlcihEUklWRVJfQU5ZKTsK KwkJaWd0X2Fzc2VydChmZCA+PSAwKTsKKworCQlpZiAoaXNfaTkxNV9kZXZpY2UoZmQpKSB7CisJ CQljaGlwc2V0ID0gRFJJVkVSX0lOVEVMOworCQkJbW9kdWxlID0gc3RyZHVwKCJpOTE1Iik7CisJ CX0gZWxzZSB7CisJCQljaGlwc2V0ID0gRFJJVkVSX0FOWTsKKworCQkJLyogQ2FwdHVyZSBtb2R1 bGUgbmFtZSB0byBiZSB1bmxvYWRlZCAqLworCQkJZGV2ID0gaWd0X3N5c2ZzX29wZW4oZmQpOwor CQkJbGVuID0gcmVhZGxpbmthdChkZXYsICJkZXZpY2UvZHJpdmVyL21vZHVsZSIsIHBhdGgsCisJ CQkJCSBzaXplb2YocGF0aCkgLSAxKTsKKwkJCWNsb3NlKGRldik7CisJCQlwYXRoW2xlbl0gPSAn XDAnOworCQkJbW9kdWxlID0gc3RyZHVwKHN0cnJjaHIocGF0aCwgJy8nKSArIDEpOworCQl9CisJ CWNsb3NlKGZkKTsKKworCQlpZ3RfaW5mbygiUnVubmluZyB0aGUgdGVzdCBvbiBkcml2ZXIgXCIl c1wiLCBjaGlwc2V0IG1hc2sgJSMweFxuIiwKKwkJCSBtb2R1bGUsIGNoaXBzZXQpOworCX0KKwor CWlndF9zdWJ0ZXN0KCJ1bmJpbmQtcmViaW5kIikKKwkJdW5iaW5kX3JlYmluZChjaGlwc2V0KTsK KworCWlndF9zdWJ0ZXN0KCJ1bnBsdWctcmVzY2FuIikKKwkJdW5wbHVnX3Jlc2NhbihjaGlwc2V0 KTsKKworCWlndF9zdWJ0ZXN0KCJkcm1fb3Blbi1ob3R1bnBsdWciKQorCQlkcm1fb3Blbl9ob3R1 bnBsdWcoY2hpcHNldCk7CisKKwlpZ3Rfc3VidGVzdCgiZ2VtX2J1ZmZlci1ob3R1bnBsdWciKQor CQlnZW1fYnVmZmVyX2hvdHVucGx1ZyhjaGlwc2V0KTsKKworCWlndF9zdWJ0ZXN0KCJnZW1fbW1h cC1ob3R1bnBsdWciKQorCQlnZW1fbW1hcF9ob3R1bnBsdWcoY2hpcHNldCk7CisKKwlpZ3Rfc3Vi dGVzdCgiaTkxNV9jb250ZXh0LWhvdHVucGx1ZyIpCisJCWk5MTVfY29udGV4dF9ob3R1bnBsdWco Y2hpcHNldCk7CisKKwlpZ3Rfc3VidGVzdCgiaTkxNV9zcGluLWhvdHVucGx1ZyIpCisJCWk5MTVf c3Bpbl9ob3R1bnBsdWcoY2hpcHNldCk7CisKKwlpZ3Rfc3VidGVzdCgiZHJtLWhvdHVucGx1Zy11 bmxvYWQiKQorCQlkcm1faG90dW5wbHVnX3VubG9hZChjaGlwc2V0LCBtb2R1bGUpOworCisJaWd0 X3N1YnRlc3QoImk5MTUtaG90dW5wbHVnLXdyaXRlIikKKwkJaTkxNV9ob3R1bnBsdWdfd3JpdGUo Y2hpcHNldCk7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29u LmJ1aWxkCmluZGV4IDcxMTk3OWI0Li5mZjM5MWM5NCAxMDA2NDQKLS0tIGEvdGVzdHMvbWVzb24u YnVpbGQKKysrIGIvdGVzdHMvbWVzb24uYnVpbGQKQEAgLTMsNiArMyw3IEBAIHRlc3RfcHJvZ3Mg PSBbCiAJJ2NvcmVfZ2V0Y2xpZW50JywKIAknY29yZV9nZXRzdGF0cycsCiAJJ2NvcmVfZ2V0dmVy c2lvbicsCisJJ2NvcmVfaG90dW5wbHVnJywKIAknY29yZV9zZXRtYXN0ZXJfdnNfYXV0aCcsCiAJ J2RlYnVnZnNfdGVzdCcsCiAJJ2RybV9pbXBvcnRfZXhwb3J0JywKLS0gCjIuMjAuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5n IGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2