From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id ECFBC6E270 for ; Thu, 24 Oct 2019 11:05:57 +0000 (UTC) From: Petri Latvala Date: Thu, 24 Oct 2019 14:05:45 +0300 Message-Id: <20191024110546.25569-8-petri.latvala@intel.com> In-Reply-To: <20191024110546.25569-1-petri.latvala@intel.com> References: <20191024110546.25569-1-petri.latvala@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 7/8] perf_pmu: Use dynamic subtests 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: igt-dev@lists.freedesktop.org Cc: Petri Latvala List-ID: SW5zdGVhZCBvZiBnZW5lcmF0aW5nIGEgc3VidGVzdCBmb3IgZWFjaCBlbmdpbmUgaW4gYSBzdGF0 aWMgbGlzdCwKY29udmVydCB0byBkeW5hbWljIHN1YnRlc3RzLCB3aXRoIG9uZSBkeW5hbWljIHN1 YnRlc3QgcGVyIGFjdHVhbGx5CnByZXNlbnQgcGh5c2ljYWwgZW5naW5lLgoKSW4gYWRkaXRpb24s IGNvbnZlcnQgY29tbWVudHMgdG8gaWd0X2Rlc2NyaWJlIGNhbGxzIGFuZCBnZW5lcmFsbHkKcmVm YWN0b3IgdGhlIGxvdCB0byBhIHNlcmllcyBvZiBzaW1wbGVyIGxvb3BzLgoKU2lnbmVkLW9mZi1i eTogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+Ci0tLQogdGVzdHMvcGVy Zl9wbXUuYyB8IDI0NCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCAxMzkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvdGVzdHMvcGVyZl9wbXUuYyBiL3Rlc3RzL3BlcmZfcG11LmMKaW5kZXgg ZTJiZDJjYzUuLjZhNGE2MDBlIDEwMDY0NAotLS0gYS90ZXN0cy9wZXJmX3BtdS5jCisrKyBiL3Rl c3RzL3BlcmZfcG11LmMKQEAgLTI3MCw3ICsyNzAsNyBAQCBzdGF0aWMgdm9pZCBlbmRfc3Bpbihp bnQgZmQsIGlndF9zcGluX3QgKnNwaW4sIHVuc2lnbmVkIGludCBmbGFncykKIH0KIAogc3RhdGlj IHZvaWQKLXNpbmdsZShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2Vu Z2luZTIgKmUsIHVuc2lnbmVkIGludCBmbGFncykKK3NpbmdsZShpbnQgZ2VtX2ZkLCBjb25zdCBz dHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsIHVuc2lnbmVkIGludCBudW1fZW5naW5l cywgdW5zaWduZWQgaW50IGZsYWdzKQogewogCXVuc2lnbmVkIGxvbmcgc2xlcHQ7CiAJaWd0X3Nw aW5fdCAqc3BpbjsKQEAgLTYwNiw3ICs2MDYsNyBAQCBhbGxfYnVzeV9jaGVja19hbGwoaW50IGdl bV9mZCwgY29uc3QgdW5zaWduZWQgaW50IG51bV9lbmdpbmVzLAogfQogCiBzdGF0aWMgdm9pZAot bm9fc2VtYShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIg KmUsIHVuc2lnbmVkIGludCBmbGFncykKK25vX3NlbWEoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0 IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLCB1bnNpZ25lZCBpbnQgbnVtX2VuZ2luZXMsIHVu c2lnbmVkIGludCBmbGFncykKIHsKIAlpZ3Rfc3Bpbl90ICpzcGluOwogCXVpbnQ2NF90IHZhbFsy XVsyXTsKQEAgLTY0Niw3ICs2NDYsNyBAQCBub19zZW1hKGludCBnZW1fZmQsIGNvbnN0IHN0cnVj dCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwgdW5zaWduZWQgaW50IGZsYWdzKQogCiBzdGF0 aWMgdm9pZAogc2VtYV93YWl0KGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRp b25fZW5naW5lMiAqZSwKLQkgIHVuc2lnbmVkIGludCBmbGFncykKKwkgIHVuc2lnbmVkIGludCBu dW1fZW5naW5lcywgdW5zaWduZWQgaW50IGZsYWdzKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1f cmVsb2NhdGlvbl9lbnRyeSByZWxvY1syXSA9IHt9OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhl Y19vYmplY3QyIG9ialsyXSA9IHt9OwpAQCAtODA5LDYgKzgwOSw3IEBAIF9fc2VtYV9idXN5KGlu dCBnZW1fZmQsIGludCBwbXUsCiBzdGF0aWMgdm9pZAogc2VtYV9idXN5KGludCBnZW1fZmQsCiAJ ICBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCisJICB1bnNpZ25lZCBp bnQgbnVtX2VuZ2luZXMsCiAJICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAJY29uc3Qgc3RydWN0 IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICpzaWduYWw7CkBAIC0xNzcwLDYgKzE3NzEsMjcgQEAg aWd0X21haW4KIAlpbnQgZmQgPSAtMTsKIAlzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIg KmU7CiAJdW5zaWduZWQgaW50IGk7CisJY29uc3QgdW5zaWduZWQgaW50IHBjdFtdID0geyAyLCA1 MCwgOTggfTsKKwlzdHJ1Y3QgeworCQl2b2lkICgqZnVuYykoaW50LCBjb25zdCBzdHJ1Y3QgaW50 ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQpOworCQlj b25zdCBjaGFyICpuYW1lOworCQl1bnNpZ25lZCBpbnQgZmxhZ3M7CisJCWNvbnN0IGNoYXIgKmRl c2M7CisJfSBidXN5aWRsZV90ZXN0c1tdID0geworCQl7IHNpbmdsZSwgImlkbGUiLCAwLCAiVGVz dCB0aGF0IGVuZ2luZXMgc2hvdyBubyBsb2FkIHdoZW4gaWRsZS4iIH0sCisJCXsgc2luZ2xlLCAi YnVzeSIsIFRFU1RfQlVTWSwgIlRlc3QgdGhhdCBhIHNpbmdsZSBlbmdpbmUgcmVwb3J0cyBsb2Fk IGNvcnJlY3RseS4iIH0sCisJCXsgc2luZ2xlLCAiYnVzeS1pZGxlIiwgVEVTVF9CVVNZIHwgVEVT VF9UUkFJTElOR19JRExFLCAiVGVzdCB0aGF0IGEgc2luZ2xlIGVuZ2luZSByZXBvcnRzIGxvYWQg Y29ycmVjdGx5LiIgfSwKKwkJeyBidXN5X2NoZWNrX2FsbCwgImJ1c3ktY2hlY2stYWxsIiwgVEVT VF9CVVNZLCAiVGVzdCB0aGF0IHdoZW4gb25lIGVuZ2luZSBpcyBsb2FkZWQsIG90aGVycyByZXBv cnQgbm8gbG9hZC4iIH0sCisJCXsgYnVzeV9jaGVja19hbGwsICJidXN5LWlkbGUtY2hlY2stYWxs IiwgVEVTVF9CVVNZIHwgVEVTVF9UUkFJTElOR19JRExFLCAiVGVzdCB0aGF0IG9uZSBvbmUgZW5n aW5lIGlzIGxvYWRlZCwgb3RoZXJzIHJlcG9ydCBubyBsb2FkLiIgfSwKKwkJeyBtb3N0X2J1c3lf Y2hlY2tfYWxsLCAibW9zdC1idXN5LWNoZWNrLWFsbCIsIFRFU1RfQlVTWSwgIlRlc3QgdGhhdCB3 aGVuIGFsbCBleGNlcHQgb25lIGVuZ2luZSBhcmUgbG9hZGVkIGFsbCBsb2FkcyBhcmUgY29ycmVj dGx5IHJlcG9ydGVkLiIgfSwKKwkJeyBtb3N0X2J1c3lfY2hlY2tfYWxsLCAibW9zdC1idXN5LWlk bGUtY2hlY2stYWxsIiwgVEVTVF9CVVNZIHwgVEVTVF9UUkFJTElOR19JRExFLCAiVGVzdCB0aGF0 IHdoZW4gYWxsIGV4Y2VwdCBvbmUgZW5naW5lIGFyZSBsb2FkZWQgYWxsIGxvYWRzIGFyZSBjb3Jy ZWN0bHkgcmVwb3J0ZWQuIiB9LAorCQl7IG5vX3NlbWEsICJpZGxlLW5vLXNlbWFwaG9yZXMiLCAw LCAiVGVzdCB0aGF0IHNlbWFwaG9yZSBjb3VudGVycyByZXBvcnQgbm8gYWN0aXZpdHkgb24gaWRs ZSBlbmdpbmVzLiIgfSwKKwkJeyBub19zZW1hLCAiYnVzeS1uby1zZW1hcGhvcmVzIiwgVEVTVF9C VVNZLCAiVGVzdCB0aGF0IHNlbWFwaG9yZSBjb3VudGVycyByZXBvcnQgbm8gYWN0aXZpdHkgb24g YnVzeSBlbmdpbmVzLiIgfSwKKwkJeyBub19zZW1hLCAiYnVzeS1pZGxlLW5vLXNlbWFwaG9yZXMi LCBURVNUX0JVU1kgfCBURVNUX1RSQUlMSU5HX0lETEUsICJUZXN0IHRoYXQgc2VtYXBob3JlIGNv dW50ZXJzIHJlcG9ydCBubyBhY3Rpdml0eSBvbiBpZGxlIG9yIGJ1c3kgZW5naW5lcy4iIH0sCisJ CXsgc2VtYV93YWl0LCAic2VtYXBob3JlLXdhaXQiLCBURVNUX0JVU1ksICJUZXN0IHRoYXQgc2Vt YXBob3JlIHdhaXRzIGFyZSBjb3JyZWN0bHkgcmVwb3J0ZWQuIiB9LAorCQl7IHNlbWFfd2FpdCwg InNlbWFwaG9yZS13YWl0LWlkbGUiLCBURVNUX0JVU1kgfCBURVNUX1RSQUlMSU5HX0lETEUsICJU ZXN0IHRoYXQgc2VtYXBob3JlIHdhaXRzIGFyZSBjb3JyZWN0bHkgcmVwb3J0ZWQuIiB9LAorCQl7 IHNlbWFfYnVzeSwgInNlbWFwaG9yZS1idXN5IiwgMCwgIlRlc3QgdGhhdCBzZW1hcGhvcmUgdGlt ZSBhbmQgYnVzeSB0aW1lIGRpZmZlcmVuY2UgaXMgdW5kZXIgYSB0aHJlc2hvbGQuIiB9LAorCX07 CiAKIAlpZ3RfZml4dHVyZSB7CiAJCWZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJf SU5URUwpOwpAQCAtMTc4MSwxNDQgKzE4MDMsODkgQEAgaWd0X21haW4KIAkJCW51bV9lbmdpbmVz Kys7CiAJfQogCi0JLyoqCi0JICogVGVzdCBpbnZhbGlkIGFjY2VzcyB2aWEgcGVyZiBBUEkgaXMg cmVqZWN0ZWQuCi0JICovCisJaWd0X2Rlc2NyaWJlKCJUZXN0IHRoYXQgaW52YWxpZCBhY2Nlc3Mg dmlhIHBlcmYgQVBJIGlzIHJlamVjdGVkLiIpOwogCWlndF9zdWJ0ZXN0KCJpbnZhbGlkLWluaXQi KQogCQlpbnZhbGlkX2luaXQoKTsKIAotCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBl KSB7Ci0JCWNvbnN0IHVuc2lnbmVkIGludCBwY3RbXSA9IHsgMiwgNTAsIDk4IH07Ci0KLQkJLyoq Ci0JCSAqIFRlc3QgdGhhdCBhIHNpbmdsZSBlbmdpbmUgbWV0cmljIGNhbiBiZSBpbml0aWFsaXpl ZCBvciBpdAotCQkgKiBpcyBjb3JyZWN0bHkgcmVqZWN0ZWQuCi0JCSAqLwotCQlpZ3Rfc3VidGVz dF9mKCJpbml0LWJ1c3ktJXMiLCBlLT5uYW1lKQotCQkJaW5pdChmZCwgZSwgSTkxNV9TQU1QTEVf QlVTWSk7Ci0KLQkJaWd0X3N1YnRlc3RfZigiaW5pdC13YWl0LSVzIiwgZS0+bmFtZSkKLQkJCWlu aXQoZmQsIGUsIEk5MTVfU0FNUExFX1dBSVQpOwotCi0JCWlndF9zdWJ0ZXN0X2YoImluaXQtc2Vt YS0lcyIsIGUtPm5hbWUpCi0JCQlpbml0KGZkLCBlLCBJOTE1X1NBTVBMRV9TRU1BKTsKLQotCQkv KioKLQkJICogVGVzdCB0aGF0IGVuZ2luZXMgc2hvdyBubyBsb2FkIHdoZW4gaWRsZS4KLQkJICov Ci0JCWlndF9zdWJ0ZXN0X2YoImlkbGUtJXMiLCBlLT5uYW1lKQotCQkJc2luZ2xlKGZkLCBlLCAw KTsKLQotCQkvKioKLQkJICogVGVzdCB0aGF0IGEgc2luZ2xlIGVuZ2luZSByZXBvcnRzIGxvYWQg Y29ycmVjdGx5LgotCQkgKi8KLQkJaWd0X3N1YnRlc3RfZigiYnVzeS0lcyIsIGUtPm5hbWUpCi0J CQlzaW5nbGUoZmQsIGUsIFRFU1RfQlVTWSk7Ci0JCWlndF9zdWJ0ZXN0X2YoImJ1c3ktaWRsZS0l cyIsIGUtPm5hbWUpCi0JCQlzaW5nbGUoZmQsIGUsIFRFU1RfQlVTWSB8IFRFU1RfVFJBSUxJTkdf SURMRSk7Ci0KLQkJLyoqCi0JCSAqIFRlc3QgdGhhdCB3aGVuIG9uZSBlbmdpbmUgaXMgbG9hZGVk IG90aGVyIHJlcG9ydCBubwotCQkgKiBsb2FkLgotCQkgKi8KLQkJaWd0X3N1YnRlc3RfZigiYnVz eS1jaGVjay1hbGwtJXMiLCBlLT5uYW1lKQotCQkJYnVzeV9jaGVja19hbGwoZmQsIGUsIG51bV9l bmdpbmVzLCBURVNUX0JVU1kpOwotCQlpZ3Rfc3VidGVzdF9mKCJidXN5LWlkbGUtY2hlY2stYWxs LSVzIiwgZS0+bmFtZSkKLQkJCWJ1c3lfY2hlY2tfYWxsKGZkLCBlLCBudW1fZW5naW5lcywKLQkJ CQkgICAgICAgVEVTVF9CVVNZIHwgVEVTVF9UUkFJTElOR19JRExFKTsKLQotCQkvKioKLQkJICog VGVzdCB0aGF0IHdoZW4gYWxsIGV4Y2VwdCBvbmUgZW5naW5lIGFyZSBsb2FkZWQgYWxsCi0JCSAq IGxvYWRzIGFyZSBjb3JyZWN0bHkgcmVwb3J0ZWQuCi0JCSAqLwotCQlpZ3Rfc3VidGVzdF9mKCJt b3N0LWJ1c3ktY2hlY2stYWxsLSVzIiwgZS0+bmFtZSkKLQkJCW1vc3RfYnVzeV9jaGVja19hbGwo ZmQsIGUsIG51bV9lbmdpbmVzLAotCQkJCQkgICAgVEVTVF9CVVNZKTsKLQkJaWd0X3N1YnRlc3Rf ZigibW9zdC1idXN5LWlkbGUtY2hlY2stYWxsLSVzIiwgZS0+bmFtZSkKLQkJCW1vc3RfYnVzeV9j aGVja19hbGwoZmQsIGUsIG51bV9lbmdpbmVzLAotCQkJCQkgICAgVEVTVF9CVVNZIHwKLQkJCQkJ ICAgIFRFU1RfVFJBSUxJTkdfSURMRSk7Ci0KLQkJLyoqCi0JCSAqIFRlc3QgdGhhdCBzZW1waG9y ZSBjb3VudGVycyByZXBvcnQgbm8gYWN0aXZpdHkgb24KLQkJICogaWRsZSBvciBidXN5IGVuZ2lu ZXMuCi0JCSAqLwotCQlpZ3Rfc3VidGVzdF9mKCJpZGxlLW5vLXNlbWFwaG9yZXMtJXMiLCBlLT5u YW1lKQotCQkJbm9fc2VtYShmZCwgZSwgMCk7Ci0KLQkJaWd0X3N1YnRlc3RfZigiYnVzeS1uby1z ZW1hcGhvcmVzLSVzIiwgZS0+bmFtZSkKLQkJCW5vX3NlbWEoZmQsIGUsIFRFU1RfQlVTWSk7Ci0K LQkJaWd0X3N1YnRlc3RfZigiYnVzeS1pZGxlLW5vLXNlbWFwaG9yZXMtJXMiLCBlLT5uYW1lKQot CQkJbm9fc2VtYShmZCwgZSwgVEVTVF9CVVNZIHwgVEVTVF9UUkFJTElOR19JRExFKTsKLQotCQkv KioKLQkJICogVGVzdCB0aGF0IHNlbWFwaG9yZSB3YWl0cyBhcmUgY29ycmVjdGx5IHJlcG9ydGVk LgotCQkgKi8KLQkJaWd0X3N1YnRlc3RfZigic2VtYXBob3JlLXdhaXQtJXMiLCBlLT5uYW1lKQot CQkJc2VtYV93YWl0KGZkLCBlLCBURVNUX0JVU1kpOwotCi0JCWlndF9zdWJ0ZXN0X2YoInNlbWFw aG9yZS13YWl0LWlkbGUtJXMiLCBlLT5uYW1lKQotCQkJc2VtYV93YWl0KGZkLCBlLAotCQkJCSAg VEVTVF9CVVNZIHwgVEVTVF9UUkFJTElOR19JRExFKTsKKwlpZ3RfZGVzY3JpYmUoIlRlc3QgdGhh dCBhIHNpbmdsZSBlbmdpbmUgbWV0cmljIGNhbiBiZSBpbml0aWFsaXplZCAiCisJCSAgICAgIm9y IGl0IGlzIGNvcnJlY3RseSByZWplY3RlZC4iKTsKKwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNf c3Vic3VidGVzdHMoImluaXQtYnVzeSIpCisJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZk LCBlKQorCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVzdF9mKCIlcyIsIGUtPm5hbWUpCisJCQkJaW5p dChmZCwgZSwgSTkxNV9TQU1QTEVfQlVTWSk7CiAKLQkJaWd0X3N1YnRlc3RfZigic2VtYXBob3Jl LWJ1c3ktJXMiLCBlLT5uYW1lKQotCQkJc2VtYV9idXN5KGZkLCBlLCAwKTsKKwlpZ3RfZGVzY3Jp YmUoIlRlc3QgdGhhdCBhIHNpbmdsZSBlbmdpbmUgbWV0cmljIGNhbiBiZSBpbml0aWFsaXplZCAi CisJCSAgICAgIm9yIGl0IGlzIGNvcnJlY3RseSByZWplY3RlZC4iKTsKKwlpZ3Rfc3VidGVzdF93 aXRoX2R5bmFtaWNfc3Vic3VidGVzdHMoImluaXQtd2FpdCIpCisJCV9fZm9yX2VhY2hfcGh5c2lj YWxfZW5naW5lKGZkLCBlKQorCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVzdF9mKCIlcyIsIGUtPm5h bWUpCisJCQkJaW5pdChmZCwgZSwgSTkxNV9TQU1QTEVfV0FJVCk7CiAKLQkJLyoqCi0JCSAqIENo ZWNrIHRoYXQgdHdvIHBlcmYgY2xpZW50cyBkbyBub3QgaW5mbHVlbmNlIGVhY2gKLQkJICogb3Ro ZXJzIG9ic2VydmF0aW9ucy4KLQkJICovCi0JCWlndF9zdWJ0ZXN0X2YoIm11bHRpLWNsaWVudC0l cyIsIGUtPm5hbWUpCi0JCQltdWx0aV9jbGllbnQoZmQsIGUpOworCWlndF9kZXNjcmliZSgiVGVz dCB0aGF0IGEgc2luZ2xlIGVuZ2luZSBtZXRyaWMgY2FuIGJlIGluaXRpYWxpemVkICIKKwkJICAg ICAib3IgaXQgaXMgY29ycmVjdGx5IHJlamVjdGVkLiIpOworCWlndF9zdWJ0ZXN0X3dpdGhfZHlu YW1pY19zdWJzdWJ0ZXN0cygiaW5pdC1zZW1hIikKKwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdp bmUoZmQsIGUpCisJCQlpZ3RfZHluYW1pY19zdWJzdWJ0ZXN0X2YoIiVzIiwgZS0+bmFtZSkKKwkJ CQlpbml0KGZkLCBlLCBJOTE1X1NBTVBMRV9TRU1BKTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJB WV9TSVpFKGJ1c3lpZGxlX3Rlc3RzKTsgaSsrKSB7CisJCWlndF9kZXNjcmliZShidXN5aWRsZV90 ZXN0c1tpXS5kZXNjKTsKKwkJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljX3N1YnN1YnRlc3RzKGJ1 c3lpZGxlX3Rlc3RzW2ldLm5hbWUpCisJCQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwg ZSkKKwkJCQlpZ3RfZHluYW1pY19zdWJzdWJ0ZXN0X2YoIiVzIiwgZS0+bmFtZSkKKwkJCQkJYnVz eWlkbGVfdGVzdHNbaV0uZnVuYyhmZCwgZSwgbnVtX2VuZ2luZXMsIGJ1c3lpZGxlX3Rlc3RzW2ld LmZsYWdzKTsKKwl9CiAKLQkJLyoqCi0JCSAqIENoZWNrIHRoYXQgcmVwb3J0ZWQgdXNhZ2UgaXMg Y29ycmVjdCB3aGVuIFBNVSBpcwotCQkgKiBlbmFibGVkIGFmdGVyIHRoZSBiYXRjaCBpcyBydW5u aW5nLgotCQkgKi8KLQkJaWd0X3N1YnRlc3RfZigiYnVzeS1zdGFydC0lcyIsIGUtPm5hbWUpCi0J CQlidXN5X3N0YXJ0KGZkLCBlKTsKKwlpZ3RfZGVzY3JpYmUoIkNoZWNrIHRoYXQgdHdvIHBlcmYg Y2xpZW50cyBkbyBub3QgaW5mbHVlbmNlIGVhY2ggb3RoZXIncyBvYnNlcnZhdGlvbnMuIik7CisJ aWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljX3N1YnN1YnRlc3RzKCJtdWx0aS1jbGllbnQiKQorCQlf X2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkKKwkJCWlndF9keW5hbWljX3N1YnN1YnRl c3RfZigiJXMiLCBlLT5uYW1lKQorCQkJCW11bHRpX2NsaWVudChmZCwgZSk7CiAKLQkJLyoqCi0J CSAqIENoZWNrIHRoYXQgcmVwb3J0ZWQgdXNhZ2UgaXMgY29ycmVjdCB3aGVuIFBNVSBpcwotCQkg KiBlbmFibGVkIGFmdGVyIHR3byBiYXRjaGVzIGFyZSBydW5uaW5nLgotCQkgKi8KLQkJaWd0X3N1 YnRlc3RfZigiYnVzeS1kb3VibGUtc3RhcnQtJXMiLCBlLT5uYW1lKSB7Ci0JCQlnZW1fcmVxdWly ZV9jb250ZXh0cyhmZCk7Ci0JCQlidXN5X2RvdWJsZV9zdGFydChmZCwgZSk7Ci0JCX0KKwlpZ3Rf ZGVzY3JpYmUoIkNoZWNrIHRoYXQgcmVwb3J0ZWQgdXNhZ2UgaXMgY29ycmVjdCB3aGVuIFBNVSBp cyBlbmFibGVkIGFmdGVyIHRoZSBiYXRjaCBpcyBydW5uaW5nLiIpOworCWlndF9zdWJ0ZXN0X3dp dGhfZHluYW1pY19zdWJzdWJ0ZXN0cygiYnVzeS1zdGFydCIpCisJCV9fZm9yX2VhY2hfcGh5c2lj YWxfZW5naW5lKGZkLCBlKQorCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVzdF9mKCIlcyIsIGUtPm5h bWUpCisJCQkJYnVzeV9zdGFydChmZCwgZSk7CiAKLQkJLyoqCi0JCSAqIENoZWNrIHRoYXQgdGhl IFBNVSBjYW4gYmUgc2FmZWx5IGVuYWJsZWQgaW4gZmFjZSBvZgotCQkgKiBpbnRlcnJ1cHQtaGVh dnkgZW5naW5lIGxvYWQuCi0JCSAqLwotCQlpZ3Rfc3VidGVzdF9mKCJlbmFibGUtcmFjZS0lcyIs IGUtPm5hbWUpCi0JCQl0ZXN0X2VuYWJsZV9yYWNlKGZkLCBlKTsKKwlpZ3RfZGVzY3JpYmUoIkNo ZWNrIHRoYXQgcmVwb3J0ZWQgdXNhZ2UgaXMgY29ycmVjdCB3aGVuIFBNVSBpcyBlbmFibGVkIGFm dGVyIHR3byBiYXRjaGVzIGFyZSBydW5uaW5nLiIpOworCWlndF9zdWJ0ZXN0X3dpdGhfZHluYW1p Y19zdWJzdWJ0ZXN0cygiYnVzeS1kb3VibGUtc3RhcnQiKSB7CisJCWdlbV9yZXF1aXJlX2NvbnRl eHRzKGZkKTsKKwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpCisJCQlpZ3RfZHlu YW1pY19zdWJzdWJ0ZXN0X2YoIiVzIiwgZS0+bmFtZSkKKwkJCQlidXN5X2RvdWJsZV9zdGFydChm ZCwgZSk7CisJfQogCi0JCS8qKgotCQkgKiBDaGVjayBlbmdpbmUgYnVzeW5lc3MgYWNjdXJhY3kg aXMgYXMgZXhwZWN0ZWQuCi0JCSAqLwotCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwY3Qp OyBpKyspIHsKLQkJCWlndF9zdWJ0ZXN0X2YoImJ1c3ktYWNjdXJhY3ktJXUtJXMiLAotCQkJCSAg ICAgIHBjdFtpXSwgZS0+bmFtZSkKLQkJCQlhY2N1cmFjeShmZCwgZSwgcGN0W2ldLCAxMCk7Ci0J CX0KKwlpZ3RfZGVzY3JpYmUoIkNoZWNrIHRoYXQgdGhlIFBNVSBjYW4gYmUgc2FmZWx5IGVuYWJs ZWQgaW4gZmFjZSBvZiBpbnRlcnJ1cHQtaGVhdnkgZW5naW5lIGxvYWQuIik7CisJaWd0X3N1YnRl c3Rfd2l0aF9keW5hbWljX3N1YnN1YnRlc3RzKCJlbmFibGUtcmFjZSIpCisJCV9fZm9yX2VhY2hf cGh5c2ljYWxfZW5naW5lKGZkLCBlKQorCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVzdF9mKCIlcyIs IGUtPm5hbWUpCisJCQkJdGVzdF9lbmFibGVfcmFjZShmZCwgZSk7CisKKwlmb3IgKGkgPSAwOyBp IDwgQVJSQVlfU0laRShwY3QpOyBpKyspIHsKKwkJaWd0X2Rlc2NyaWJlKCJDaGVjayBlbmdpbmUg YnVzeW5lc3MgYWNjdXJhY3kgaXMgYXMgZXhwZWN0ZWQuIik7CisJCWlndF9zdWJ0ZXN0X3dpdGhf ZHluYW1pY19zdWJzdWJ0ZXN0c19mKCJidXN5LWFjY3VyYWN5LSV1IiwgcGN0W2ldKQorCQkJX19m b3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpCisJCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVz dF9mKCIlcyIsIGUtPm5hbWUpCisJCQkJCWFjY3VyYWN5KGZkLCBlLCBwY3RbaV0sIDEwKTsKKwl9 CiAKLQkJaWd0X3N1YnRlc3RfZigiYnVzeS1oYW5nLSVzIiwgZS0+bmFtZSkgewotCQkJaWd0X2hh bmdfdCBoYW5nID0gaWd0X2FsbG93X2hhbmcoZmQsIDAsIDApOworCWlndF9zdWJ0ZXN0X3dpdGhf ZHluYW1pY19zdWJzdWJ0ZXN0cygiYnVzeS1oYW5nIikKKwkJX19mb3JfZWFjaF9waHlzaWNhbF9l bmdpbmUoZmQsIGUpCisJCQlpZ3RfZHluYW1pY19zdWJzdWJ0ZXN0X2YoIiVzIiwgZS0+bmFtZSkg eworCQkJCWlndF9oYW5nX3QgaGFuZyA9IGlndF9hbGxvd19oYW5nKGZkLCAwLCAwKTsKIAotCQkJ c2luZ2xlKGZkLCBlLCBURVNUX0JVU1kgfCBGTEFHX0hBTkcpOworCQkJCXNpbmdsZShmZCwgZSwg MCwgVEVTVF9CVVNZIHwgRkxBR19IQU5HKTsKIAotCQkJaWd0X2Rpc2FsbG93X2hhbmcoZmQsIGhh bmcpOwotCQl9CisJCQkJaWd0X2Rpc2FsbG93X2hhbmcoZmQsIGhhbmcpOworCQkJfQogCi0JCS8q KgotCQkgKiBUZXN0IHRoYXQgZXZlbnQgd2FpdHMgYXJlIGNvcnJlY3RseSByZXBvcnRlZC4KLQkJ ICovCi0JCWlmIChlLT5jbGFzcyA9PSBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVIpCi0JCQlpZ3Rf c3VidGVzdF9mKCJldmVudC13YWl0LSVzIiwgZS0+bmFtZSkKLQkJCQlldmVudF93YWl0KGZkLCBl KTsKLQl9CisJaWd0X2Rlc2NyaWJlKCJUZXN0IHRoYXQgZXZlbnQgd2FpdHMgYXJlIGNvcnJlY3Rs eSByZXBvcnRlZC4iKTsKKwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNfc3Vic3VidGVzdHMoImV2 ZW50LXdhaXQiKQorCQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkKKwkJCWlmIChl LT5jbGFzcyA9PSBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVIpCisJCQkJaWd0X2R5bmFtaWNfc3Vi c3VidGVzdF9mKCIlcyIsIGUtPm5hbWUpCisJCQkJCWV2ZW50X3dhaXQoZmQsIGUpOwogCiAJLyoq CiAJICogVGVzdCB0aGF0IHdoZW4gYWxsIGVuZ2luZXMgYXJlIGxvYWRlZCBhbGwgbG9hZHMgYXJl CkBAIC0xOTc1LDkgKzE5NDIsNyBAQCBpZ3RfbWFpbgogCWlndF9zdWJ0ZXN0KCJyYzYtcnVudGlt ZS1wbS1sb25nIikKIAkJdGVzdF9yYzYoZmQsIFRFU1RfUlVOVElNRV9QTSB8IEZMQUdfTE9ORyk7 CiAKLQkvKioKLQkgKiBDaGVjayByZW5kZXIgbm9kZXMgYXJlIGNvdW50ZWQuCi0JICovCisJaWd0 X2Rlc2NyaWJlKCJDaGVjayB0aGF0IHJlbmRlciBub2RlcyBhcmUgY291bnRlZC4iKTsKIAlpZ3Rf c3VidGVzdF9ncm91cCB7CiAJCWludCByZW5kZXJfZmQgPSAtMTsKIApAQCAtMTk4OCwxNCArMTk1 MywxNSBAQCBpZ3RfbWFpbgogCQkJZ2VtX3F1aWVzY2VudF9ncHUoZmQpOwogCQl9CiAKLQkJX19m b3JfZWFjaF9waHlzaWNhbF9lbmdpbmUocmVuZGVyX2ZkLCBlKSB7Ci0JCQlpZ3Rfc3VidGVzdF9m KCJyZW5kZXItbm9kZS1idXN5LSVzIiwgZS0+bmFtZSkKLQkJCQlzaW5nbGUocmVuZGVyX2ZkLCBl LCBURVNUX0JVU1kpOwotCQkJaWd0X3N1YnRlc3RfZigicmVuZGVyLW5vZGUtYnVzeS1pZGxlLSVz IiwKLQkJCQkgICAgICBlLT5uYW1lKQotCQkJCXNpbmdsZShyZW5kZXJfZmQsIGUsCi0JCQkJICAg ICAgIFRFU1RfQlVTWSB8IFRFU1RfVFJBSUxJTkdfSURMRSk7Ci0JCX0KKwkJaWd0X3N1YnRlc3Rf d2l0aF9keW5hbWljX3N1YnN1YnRlc3RzKCJyZW5kZXItbm9kZS1idXN5IikKKwkJCV9fZm9yX2Vh Y2hfcGh5c2ljYWxfZW5naW5lKHJlbmRlcl9mZCwgZSkKKwkJCQlpZ3RfZHluYW1pY19zdWJzdWJ0 ZXN0X2YoIiVzIiwgZS0+bmFtZSkKKwkJCQkJc2luZ2xlKHJlbmRlcl9mZCwgZSwgMCwgVEVTVF9C VVNZKTsKKworCQlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNfc3Vic3VidGVzdHMoInJlbmRlci1u b2RlLWJ1c3ktaWRsZSIpCisJCQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShyZW5kZXJfZmQs IGUpCisJCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVzdF9mKCIlcyIsIGUtPm5hbWUpCisJCQkJCXNp bmdsZShyZW5kZXJfZmQsIGUsIDAsIFRFU1RfQlVTWSB8IFRFU1RfVFJBSUxJTkdfSURMRSk7CiAK IAkJaWd0X2ZpeHR1cmUgewogCQkJY2xvc2UocmVuZGVyX2ZkKTsKLS0gCjIuMTkuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5n IGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2