From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2] drm/i915/selftests: Verify whitelist of context registers Date: Wed, 24 Apr 2019 11:28:22 +0100 Message-ID: <20190424102822.20515-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6830E891D2 for ; Wed, 24 Apr 2019 10:28:36 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhlIFJJTkdfTk9OUFJJViBhbGxvd3MgdXMgdG8gYWRkIHJlZ2lzdGVycyB0byBhIHdoaXRlbGlz dCB0aGF0IGFsbG93cwp1c2Vyc3BhY2UgdG8gbW9kaWZ5IHRoZW0uIElkZWFsbHkgc3VjaCByZWdp c3RlcnMgc2hvdWxkIGJlIHNhZmUgYW5kCnNhdmVkIHdpdGhpbiB0aGUgY29udGV4dCBzdWNoIHRo YXQgdGhleSBkbyBub3QgaW1wYWN0IHN5c3RlbSBiZWhhdmlvdXIKZm9yIG90aGVyIHVzZXJzLiBU aGlzIHNlbGZ0ZXN0IHZlcmlmaWVzIHRoYXQgdGhvc2UgcmVnaXN0ZXJzIHdlIGRvIGFkZAphcmUg KGEpIHRoZW4gd3JpdGFibGUgYnkgdXNlcnNwYWNlIGFuZCAoYikgb25seSBhZmZlY3QgYSBzaW5n bGUgY2xpZW50LgoKT3BlbnM6Ci0gSXMgR0VOOV9TTElDRV9DT01NT05fRUNPX0NISUNLRU4xIHJl YWxseSB3cml0ZS1vbmx5PwoKdjI6IFJlbW92ZSB0aGUgYmxhdGFudCBjb3B5LXBhc3RlLgoKU2ln bmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBU dnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIC4uLi9kcm0vaTkx NS9zZWxmdGVzdHMvaW50ZWxfd29ya2Fyb3VuZHMuYyAgICB8IDI5MSArKysrKysrKysrKysrKysr KysKIDEgZmlsZSBjaGFuZ2VkLCAyOTEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF93b3JrYXJvdW5kcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX3dvcmthcm91bmRzLmMKaW5kZXggYTM2Mzc0OGE3 YTRmLi5mZjBhZGNhYmYyMDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pbnRlbF93b3JrYXJvdW5kcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pbnRlbF93b3JrYXJvdW5kcy5jCkBAIC03MDAsNiArNzAwLDI5NiBAQCBzdGF0aWMgaW50 IGxpdmVfcmVzZXRfd2hpdGVsaXN0KHZvaWQgKmFyZykKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0 aWMgaW50IHJlYWRfd2hpdGVsaXN0ZWRfcmVnaXN0ZXJzKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHgsCisJCQkJICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJCSAg ICAgIHN0cnVjdCBpOTE1X3ZtYSAqcmVzdWx0cykKK3sKKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJl ZjsKKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwl1MzIgc3JtLCAqY3M7CisJaW50IGVyciwg aTsKKworCXJxID0gRVJSX1BUUigtRU5PREVWKTsKKwl3aXRoX2ludGVsX3J1bnRpbWVfcG0oZW5n aW5lLT5pOTE1LCB3YWtlcmVmKQorCQlycSA9IGk5MTVfcmVxdWVzdF9hbGxvYyhlbmdpbmUsIGN0 eCk7CisJaWYgKElTX0VSUihycSkpCisJCXJldHVybiBQVFJfRVJSKHJxKTsKKworCXNybSA9IE1J X1NUT1JFX1JFR0lTVEVSX01FTTsKKwlpZiAoSU5URUxfR0VOKGN0eC0+aTkxNSkgPj0gOCkKKwkJ c3JtKys7CisKKwljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEsIDQgKiBlbmdpbmUtPndoaXRlbGlz dC5jb3VudCk7CisJaWYgKElTX0VSUihjcykpIHsKKwkJZXJyID0gUFRSX0VSUihjcyk7CisJCWdv dG8gZXJyX3JlcTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgZW5naW5lLT53aGl0ZWxpc3QuY291 bnQ7IGkrKykgeworCQl1NjQgb2Zmc2V0ID0gcmVzdWx0cy0+bm9kZS5zdGFydCArIHNpemVvZih1 MzIpICogaTsKKworCQkqY3MrKyA9IHNybTsKKwkJKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNl dChlbmdpbmUtPndoaXRlbGlzdC5saXN0W2ldLnJlZyk7CisJCSpjcysrID0gbG93ZXJfMzJfYml0 cyhvZmZzZXQpOworCQkqY3MrKyA9IHVwcGVyXzMyX2JpdHMob2Zmc2V0KTsKKwl9CisJaW50ZWxf cmluZ19hZHZhbmNlKHJxLCBjcyk7CisKK2Vycl9yZXE6CisJaTkxNV9yZXF1ZXN0X2FkZChycSk7 CisKKwlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQocnEsIEk5MTVfV0FJVF9MT0NLRUQsIEhaIC8gNSkg PCAwKQorCQllcnIgPSAtRUlPOworCisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBzY3J1 Yl93aGl0ZWxpc3RlZF9yZWdpc3RlcnMoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKKwkJ CQkgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCWludGVsX3dha2Vy ZWZfdCB3YWtlcmVmOworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOworCWludCBpLCBlcnIgPSAw OworCXUzMiAqY3M7CisKKwlycSA9IEVSUl9QVFIoLUVOT0RFVik7CisJd2l0aF9pbnRlbF9ydW50 aW1lX3BtKGVuZ2luZS0+aTkxNSwgd2FrZXJlZikKKwkJcnEgPSBpOTE1X3JlcXVlc3RfYWxsb2Mo ZW5naW5lLCBjdHgpOworCWlmIChJU19FUlIocnEpKQorCQlyZXR1cm4gUFRSX0VSUihycSk7CisK KwlpZiAoZW5naW5lLT5lbWl0X2luaXRfYnJlYWRjcnVtYikgeyAvKiBCZSBuaWNlIGlmIHdlIGhh bmcgKi8KKwkJZXJyID0gZW5naW5lLT5lbWl0X2luaXRfYnJlYWRjcnVtYihycSk7CisJCWlmIChl cnIpCisJCQlnb3RvIGVycl9yZXF1ZXN0OworCX0KKworCWNzID0gaW50ZWxfcmluZ19iZWdpbihy cSwgMiAqIGVuZ2luZS0+d2hpdGVsaXN0LmNvdW50ICsgMik7CisKKwkqY3MrKyA9IE1JX0xPQURf UkVHSVNURVJfSU1NKGVuZ2luZS0+d2hpdGVsaXN0LmNvdW50KTsKKwlmb3IgKGkgPSAwOyBpIDwg ZW5naW5lLT53aGl0ZWxpc3QuY291bnQ7IGkrKykgeworCQkqY3MrKyA9IGk5MTVfbW1pb19yZWdf b2Zmc2V0KGVuZ2luZS0+d2hpdGVsaXN0Lmxpc3RbaV0ucmVnKTsKKwkJKmNzKysgPSAweGZmZmZm ZmZmOworCX0KKwkqY3MrKyA9IE1JX05PT1A7CisKKwlpbnRlbF9yaW5nX2FkdmFuY2UocnEsIGNz KTsKKworZXJyX3JlcXVlc3Q6CisJaTkxNV9yZXF1ZXN0X2FkZChycSk7CisJaWYgKGk5MTVfcmVx dWVzdF93YWl0KHJxLCBJOTE1X1dBSVRfTE9DS0VELCBIWiAvIDUpIDwgMCkKKwkJZXJyID0gLUVJ TzsKKwlyZXR1cm4gZXJyOworfQorCitzdHJ1Y3QgcmVnbWFzayB7CisJaTkxNV9yZWdfdCByZWc7 CisJdW5zaWduZWQgbG9uZyBnZW5fbWFzazsKK307CisKK3N0YXRpYyBib29sIGZpbmRfcmVnKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCQkgICAgIGk5MTVfcmVnX3QgcmVnLAorCQkg ICAgIGNvbnN0IHN0cnVjdCByZWdtYXNrICp0YmwsCisJCSAgICAgdW5zaWduZWQgbG9uZyBjb3Vu dCkKK3sKKwl1MzIgb2Zmc2V0ID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQocmVnKTsKKworCXdoaWxl IChjb3VudC0tKSB7CisJCWlmIChJTlRFTF9JTkZPKGk5MTUpLT5nZW5fbWFzayAmIHRibC0+Z2Vu X21hc2sgJiYKKwkJICAgIGk5MTVfbW1pb19yZWdfb2Zmc2V0KHRibC0+cmVnKSA9PSBvZmZzZXQp CisJCQlyZXR1cm4gdHJ1ZTsKKwkJdGJsKys7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCitz dGF0aWMgYm9vbCBwYXJkb25fcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBpOTE1 X3JlZ190IHJlZykKK3sKKwkvKiBBbGFzLCB3ZSBtdXN0IHBhcmRvbiBzb21lIHdoaXRlbGlzdHMu IE1pc3Rha2VzIGFscmVkeSBtYWRlICovCisJc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXNrIHBh cmRvbltdID0geworCQl7IEdFTjlfQ1RYX1BSRUVNUFRfUkVHLCBJTlRFTF9HRU5fTUFTSyg5LCA5 KSB9LAorCQl7IEdFTjhfTDNTUUNSRUc0LCBJTlRFTF9HRU5fTUFTSyg5LCA5KSB9LAorCX07CisK KwlyZXR1cm4gZmluZF9yZWcoaTkxNSwgcmVnLCBwYXJkb24sIEFSUkFZX1NJWkUocGFyZG9uKSk7 Cit9CisKK3N0YXRpYyBib29sIHJlc3VsdF9lcShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsCisJCSAgICAgIHUzMiBhLCB1MzIgYiwgaTkxNV9yZWdfdCByZWcpCit7CisJaWYgKGEgIT0g YiAmJiAhcGFyZG9uX3JlZyhlbmdpbmUtPmk5MTUsIHJlZykpIHsKKwkJcHJfZXJyKCJXaGl0ZWxp c3RlZCByZWdpc3RlciAweCU0eCBub3QgY29udGV4dCBzYXZlZDogQT0lMDh4LCBCPSUwOHhcbiIs CisJCSAgICAgICBpOTE1X21taW9fcmVnX29mZnNldChyZWcpLCBhLCBiKTsKKwkJcmV0dXJuIGZh bHNlOworCX0KKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCB3cml0ZW9ubHlfcmVn KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBpOTE1X3JlZ190IHJlZykKK3sKKwkvKiBT b21lIHJlZ2lzdGVycyBkbyBub3Qgc2VlbSB0byBiZWhhdmUgYW5kIG91ciB3cml0ZXMgdW5yZWFk YWJsZSAqLworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFzayB3b1tdID0geworCQl7IEdFTjlf U0xJQ0VfQ09NTU9OX0VDT19DSElDS0VOMSwgSU5URUxfR0VOX01BU0soOSwgOSkgfSwKKwl9Owor CisJcmV0dXJuIGZpbmRfcmVnKGk5MTUsIHJlZywgd28sIEFSUkFZX1NJWkUod28pKTsKK30KKwor c3RhdGljIGJvb2wgcmVzdWx0X25lcShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJ CSAgICAgICB1MzIgYSwgdTMyIGIsIGk5MTVfcmVnX3QgcmVnKQoreworCWlmIChhID09IGIgJiYg IXdyaXRlb25seV9yZWcoZW5naW5lLT5pOTE1LCByZWcpKSB7CisJCXByX2VycigiV2hpdGVsaXN0 IHJlZ2lzdGVyIDB4JTR4OiUwOHggd2FzIHVud3JpdGFibGVcbiIsCisJCSAgICAgICBpOTE1X21t aW9fcmVnX29mZnNldChyZWcpLCBhKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiB0 cnVlOworfQorCitzdGF0aWMgaW50IGNoZWNrX3doaXRlbGlzdGVkX3JlZ2lzdGVycyhzdHJ1Y3Qg aTkxNV92bWEgKkEsCisJCQkJICAgICAgIHN0cnVjdCBpOTE1X3ZtYSAqQiwKKwkJCQkgICAgICAg c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJCSAgICAgICBib29sICgqZm4pKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkJCSAgdTMyIGEsIHUzMiBiLAorCQkJ CQkJICBpOTE1X3JlZ190IHJlZykpCit7CisJdTMyICphLCAqYjsKKwlpbnQgaSwgZXJyOworCisJ YSA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKEEtPm9iaiwgSTkxNV9NQVBfV0IpOworCWlmIChJ U19FUlIoYSkpCisJCXJldHVybiBQVFJfRVJSKGEpOworCisJYiA9IGk5MTVfZ2VtX29iamVjdF9w aW5fbWFwKEItPm9iaiwgSTkxNV9NQVBfV0IpOworCWlmIChJU19FUlIoYikpIHsKKwkJZXJyID0g UFRSX0VSUihiKTsKKwkJZ290byBlcnJfYTsKKwl9CisKKwllcnIgPSAwOworCWZvciAoaSA9IDA7 IGkgPCBlbmdpbmUtPndoaXRlbGlzdC5jb3VudDsgaSsrKSB7CisJCWlmICghZm4oZW5naW5lLCBh W2ldLCBiW2ldLCBlbmdpbmUtPndoaXRlbGlzdC5saXN0W2ldLnJlZykpCisJCQllcnIgPSAtRUlO VkFMOworCX0KKworCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoQi0+b2JqKTsKK2Vycl9hOgor CWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoQS0+b2JqKTsKKwlyZXR1cm4gZXJyOworfQorCitz dGF0aWMgaW50IGxpdmVfaXNvbGF0ZWRfd2hpdGVsaXN0KHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgaTkxNV9n ZW1fY29udGV4dCAqY3R4OworCQlzdHJ1Y3QgaTkxNV92bWEgKnNjcmF0Y2hbMl07CisJfSBjbGll bnRbMl0gPSB7fTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJZW51bSBpbnRl bF9lbmdpbmVfaWQgaWQ7CisJaW50IGksIGVyciA9IDA7CisKKwkvKgorCSAqIENoZWNrIHRoYXQg YSB3cml0ZSBpbnRvIGEgd2hpdGVsaXN0IHJlZ2lzdGVyIHdvcmtzLCBidXQKKwkgKiBpbnZpc2li bGUgdG8gYSBzZWNvbmQgY29udGV4dC4KKwkgKi8KKworCWlmICghaW50ZWxfZW5naW5lc19oYXNf Y29udGV4dF9pc29sYXRpb24oaTkxNSkpCisJCXJldHVybiAwOworCisJaWYgKCFpOTE1LT5rZXJu ZWxfY29udGV4dC0+cHBndHQpCisJCXJldHVybiAwOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZ X1NJWkUoY2xpZW50KTsgaSsrKSB7CisJCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjOworCisJ CWMgPSBrZXJuZWxfY29udGV4dChpOTE1KTsKKwkJaWYgKElTX0VSUihjKSkgeworCQkJZXJyID0g UFRSX0VSUihjKTsKKwkJCWdvdG8gZXJyOworCQl9CisKKwkJY2xpZW50W2ldLnNjcmF0Y2hbMF0g PSBjcmVhdGVfc2NyYXRjaCgmYy0+cHBndHQtPnZtLCAxMDI0KTsKKwkJaWYgKElTX0VSUihjbGll bnRbaV0uc2NyYXRjaFswXSkpIHsKKwkJCWVyciA9IFBUUl9FUlIoY2xpZW50W2ldLnNjcmF0Y2hb MF0pOworCQkJa2VybmVsX2NvbnRleHRfY2xvc2UoYyk7CisJCQlnb3RvIGVycjsKKwkJfQorCisJ CWNsaWVudFtpXS5zY3JhdGNoWzFdID0gY3JlYXRlX3NjcmF0Y2goJmMtPnBwZ3R0LT52bSwgMTAy NCk7CisJCWlmIChJU19FUlIoY2xpZW50W2ldLnNjcmF0Y2hbMV0pKSB7CisJCQllcnIgPSBQVFJf RVJSKGNsaWVudFtpXS5zY3JhdGNoWzFdKTsKKwkJCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNl KCZjbGllbnRbaV0uc2NyYXRjaFswXSwgMCk7CisJCQlrZXJuZWxfY29udGV4dF9jbG9zZShjKTsK KwkJCWdvdG8gZXJyOworCQl9CisKKwkJY2xpZW50W2ldLmN0eCA9IGM7CisJfQorCisJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKKwkJaWYgKCFlbmdpbmUtPndoaXRlbGlzdC5j b3VudCkKKwkJCWNvbnRpbnVlOworCisJCS8qIFJlYWQgZGVmYXVsdCB2YWx1ZXMgKi8KKwkJZXJy ID0gcmVhZF93aGl0ZWxpc3RlZF9yZWdpc3RlcnMoY2xpZW50WzBdLmN0eCwgZW5naW5lLAorCQkJ CQkJIGNsaWVudFswXS5zY3JhdGNoWzBdKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gZXJyOworCisJ CS8qIFRyeSB0byBvdmVyd3JpdGUgcmVnaXN0ZXJzIChzaG91bGQgb25seSBhZmZlY3QgY3R4MCkg Ki8KKwkJZXJyID0gc2NydWJfd2hpdGVsaXN0ZWRfcmVnaXN0ZXJzKGNsaWVudFswXS5jdHgsIGVu Z2luZSk7CisJCWlmIChlcnIpCisJCQlnb3RvIGVycjsKKworCQkvKiBSZWFkIHZhbHVlcyBmcm9t IGN0eDEsIHdlIGV4cGVjdCB0aGVzZSB0byBiZSBkZWZhdWx0cyAqLworCQllcnIgPSByZWFkX3do aXRlbGlzdGVkX3JlZ2lzdGVycyhjbGllbnRbMV0uY3R4LCBlbmdpbmUsCisJCQkJCQkgY2xpZW50 WzFdLnNjcmF0Y2hbMF0pOworCQlpZiAoZXJyKQorCQkJZ290byBlcnI7CisKKwkJLyogVmVyaWZ5 IHRoYXQgYm90aCByZWFkcyByZXR1cm4gdGhlIHNhbWUgZGVmYXVsdCB2YWx1ZXMgKi8KKwkJZXJy ID0gY2hlY2tfd2hpdGVsaXN0ZWRfcmVnaXN0ZXJzKGNsaWVudFswXS5zY3JhdGNoWzBdLAorCQkJ CQkJICBjbGllbnRbMV0uc2NyYXRjaFswXSwKKwkJCQkJCSAgZW5naW5lLAorCQkJCQkJICByZXN1 bHRfZXEpOworCQlpZiAoZXJyKQorCQkJZ290byBlcnI7CisKKwkJLyogUmVhZCBiYWNrIHRoZSB1 cGRhdGVkIHZhbHVlcyBpbiBjdHgwICovCisJCWVyciA9IHJlYWRfd2hpdGVsaXN0ZWRfcmVnaXN0 ZXJzKGNsaWVudFswXS5jdHgsIGVuZ2luZSwKKwkJCQkJCSBjbGllbnRbMF0uc2NyYXRjaFsxXSk7 CisJCWlmIChlcnIpCisJCQlnb3RvIGVycjsKKworCQkvKiBVc2VyIHNob3VsZCBiZSBncmFudGVk IHByaXZpbGVnZSB0byBvdmVyd2hpdGUgcmVncyAqLworCQllcnIgPSBjaGVja193aGl0ZWxpc3Rl ZF9yZWdpc3RlcnMoY2xpZW50WzBdLnNjcmF0Y2hbMF0sCisJCQkJCQkgIGNsaWVudFswXS5zY3Jh dGNoWzFdLAorCQkJCQkJICBlbmdpbmUsCisJCQkJCQkgIHJlc3VsdF9uZXEpOworCQlpZiAoZXJy KQorCQkJZ290byBlcnI7CisJfQorCitlcnI6CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUo Y2xpZW50KTsgaSsrKSB7CisJCWlmICghY2xpZW50W2ldLmN0eCkKKwkJCWJyZWFrOworCisJCWk5 MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZjbGllbnRbaV0uc2NyYXRjaFsxXSwgMCk7CisJCWk5 MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZjbGllbnRbaV0uc2NyYXRjaFswXSwgMCk7CisJCWtl cm5lbF9jb250ZXh0X2Nsb3NlKGNsaWVudFtpXS5jdHgpOworCX0KKworCWlmIChpZ3RfZmx1c2hf dGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkKKwkJZXJyID0gLUVJTzsKKworCXJldHVybiBl cnI7Cit9CisKIHN0YXRpYyBib29sIHZlcmlmeV9ndF9lbmdpbmVfd2Eoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsCiAJCQkJc3RydWN0IHdhX2xpc3RzICpsaXN0cywgY29uc3QgY2hhciAq c3RyKQogewpAQCAtODQ0LDYgKzExMzQsNyBAQCBpbnQgaW50ZWxfd29ya2Fyb3VuZHNfbGl2ZV9z ZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJc3RhdGljIGNvbnN0IHN0 cnVjdCBpOTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKIAkJU1VCVEVTVChsaXZlX2RpcnR5X3doaXRl bGlzdCksCiAJCVNVQlRFU1QobGl2ZV9yZXNldF93aGl0ZWxpc3QpLAorCQlTVUJURVNUKGxpdmVf aXNvbGF0ZWRfd2hpdGVsaXN0KSwKIAkJU1VCVEVTVChsaXZlX2dwdV9yZXNldF9ndF9lbmdpbmVf d29ya2Fyb3VuZHMpLAogCQlTVUJURVNUKGxpdmVfZW5naW5lX3Jlc2V0X2d0X2VuZ2luZV93b3Jr YXJvdW5kcyksCiAJfTsKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4