From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM05-BY2-obe.outbound.protection.outlook.com (mail-eopbgr710078.outbound.protection.outlook.com [40.107.71.78]) by gabe.freedesktop.org (Postfix) with ESMTPS id ECD4989C18 for ; Mon, 24 Jun 2019 14:45:12 +0000 (UTC) From: Dingchen Zhang Date: Mon, 24 Jun 2019 10:31:44 -0400 Message-ID: <20190624143144.3403-4-dingchen.zhang@amd.com> In-Reply-To: <20190624143144.3403-1-dingchen.zhang@amd.com> References: <20190624143144.3403-1-dingchen.zhang@amd.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 4/4] tests/amdgpu: add 8bpc bypass mode test. 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 List-ID: VG8gdmFsaWRhdGUgdGhlIEFNREdQVSBieXBhc3MgbW9kZSBmZWF0dXJlLgoKR2VuZXJhdGUgRFAg dGVzdCBwYXR0ZXJucywgcHJvZ3JhbSB0aGUgcGlwZSBhbmQgY2hlY2sgaWYKdGhlIENSQ3Mgb2Yg ZnJhbWVidWZmZXIgYW5kIERQIHJlY2VpdmVyIG1hdGNoLgoKQ2M6IEhhcnJ5IFdlbnRsYW5kIDxI YXJyeS5XZW50bGFuZEBhbWQuY29tPgpDYzogTmljayBLYXpsYXVza2FzIDxOaWNob2xhcy5LYXps YXVza2FzQGFtZC5jb20+CkNoYW5nZS1JZDogSTU3NDhmMTAxODgzNTEzOTliYjI1YzRmYmFjZmQx NmFjNjY4NTA4NzcKU2lnbmVkLW9mZi1ieTogRGluZ2NoZW4gWmhhbmcgPGRpbmdjaGVuLnpoYW5n QGFtZC5jb20+Ci0tLQogdGVzdHMvYW1kZ3B1L2FtZF9ieXBhc3MuYyB8IDM4MyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkICB8 ICAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDM4NCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAx MDA2NDQgdGVzdHMvYW1kZ3B1L2FtZF9ieXBhc3MuYwoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdw dS9hbWRfYnlwYXNzLmMgYi90ZXN0cy9hbWRncHUvYW1kX2J5cGFzcy5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4xN2E2NzQyMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Rz L2FtZGdwdS9hbWRfYnlwYXNzLmMKQEAgLTAsMCArMSwzODMgQEAKKy8qCisgKiBDb3B5cmlnaHQg MjAxOSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBo ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK KyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp bGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRz IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj ZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJt aXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNv LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUg Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs dWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29m dHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBC VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICog RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElO IE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwg V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICog QVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP UiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICog QXV0aG9yOiBBTUQKKyAqLworI2luY2x1ZGUgImRybS5oIgorI2luY2x1ZGUgImRybXRlc3QuaCIK KyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxs aW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlICJzaWduYWwuaCIKKworLyoKKyAqIGludGVybmFsIHVz ZQorICogQ29tbW9uIHRlc3QgZGF0YQorICogKi8KK3R5cGVkZWYgc3RydWN0IHsKKwlpbnQgZHJt X2ZkOworCWludCB3aWR0aDsKKwlpbnQgaGVpZ2h0OworCWVudW0gcGlwZSBwaXBlX2lkOworCWln dF9kaXNwbGF5X3QgZGlzcGxheTsKKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKwlpZ3Rfb3V0cHV0 X3QgKm91dHB1dDsKKwlpZ3RfcGlwZV90ICpwaXBlOworCWlndF9waXBlX2NyY190ICpwaXBlX2Ny YzsKKwlpZ3RfY3JjX3QgY3JjX2ZiOworCWlndF9jcmNfdCBjcmNfZHByeDsKKwlkcm1Nb2RlTW9k ZUluZm8gKm1vZGU7Cit9IGRhdGFfdDsKKworZW51bSBwYXR0ZXJuIHsKKwlURVNUX1BBVFRFUk5f RFBfQ09MT1JfUkFNUCwKKwlURVNUX1BBVFRFUk5fRFBfQkxBQ0tfV0hJVEVfVkVSVF9MSU5FUywK KwlURVNUX1BBVFRFUk5fRFBfQkxBQ0tfV0hJVEVfSE9SWl9MSU5FUywKKwlURVNUX1BBVFRFUk5f RFBfQ09MT1JfU1FVQVJFU19WRVNBLAorCS8qIHBsZWFzZSBkb24ndCBhZGQgcGF0dGVybiBhZnRl ciB0aGUgYmVsb3cgbGluZSAqLworCVRFU1RfUEFUVEVSTl9NQVgsCit9OworCitjb25zdCBjaGFy ICpwdG5zdHJbVEVTVF9QQVRURVJOX01BWF0gPSB7CisJIkRQIENvbG9yIFJhbXAiLAorCSJEUCBW ZXJ0aWNhbCBMaW5lcyIsCisJIkRQIEhvcml6b250YWwgTGluZXMiLAorCSJEUCBDb2xvciBTcXVh cmVzIFZFU0EiCit9OworCisvKiBDb21tb24gdGVzdCBzZXR1cC4gKi8KK3N0YXRpYyB2b2lkIHRl c3RfaW5pdChkYXRhX3QgKmRhdGEpCit7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRh LT5kaXNwbGF5OworCisJLyogSXQgZG9lc24ndCBtYXR0ZXIgd2hpY2ggcGlwZSB3ZSBjaG9vc2Ug b24gYW1kcGd1LiAqLworCWRhdGEtPnBpcGVfaWQgPSBQSVBFX0E7CisJZGF0YS0+cGlwZSA9ICZk YXRhLT5kaXNwbGF5LnBpcGVzW2RhdGEtPnBpcGVfaWRdOworCisJaWd0X2Rpc3BsYXlfcmVzZXQo ZGlzcGxheSk7CisKKwlkYXRhLT5vdXRwdXQgPSBpZ3RfZ2V0X3NpbmdsZV9vdXRwdXRfZm9yX3Bp cGUoZGlzcGxheSwgZGF0YS0+cGlwZV9pZCk7CisJaWd0X2Fzc2VydChkYXRhLT5vdXRwdXQpOwor CisJZGF0YS0+bW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUoZGF0YS0+b3V0cHV0KTsKKwlpZ3Rf YXNzZXJ0KGRhdGEtPm1vZGUpOworCisJZGF0YS0+cHJpbWFyeSA9CisJCWlndF9waXBlX2dldF9w bGFuZV90eXBlKGRhdGEtPnBpcGUsIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOworCisJZGF0YS0+ cGlwZV9jcmMgPSBpZ3RfcGlwZV9jcmNfbmV3KGRhdGEtPmRybV9mZCwgZGF0YS0+cGlwZV9pZCwK KwkJCQkJICBBTURHUFVfUElQRV9DUkNfU09VUkNFX0FVVE8pOworCWlndF9waXBlX2NyY19zZXRf c291cmNlKGRhdGEtPnBpcGVfY3JjLCBBTURHUFVfUElQRV9DUkNfU09VUkNFX0RQUlgpOworCisJ aWd0X291dHB1dF9zZXRfcGlwZShkYXRhLT5vdXRwdXQsIGRhdGEtPnBpcGVfaWQpOworCisJZGF0 YS0+d2lkdGggPSBkYXRhLT5tb2RlLT5oZGlzcGxheTsKKwlkYXRhLT5oZWlnaHQgPSBkYXRhLT5t b2RlLT52ZGlzcGxheTsKK30KKworLyogQ29tbW9uIHRlc3QgY2xlYW51cC4gKi8KK3N0YXRpYyB2 b2lkIHRlc3RfZmluaShkYXRhX3QgKmRhdGEpCit7CisJaWd0X3BpcGVfY3JjX2ZyZWUoZGF0YS0+ cGlwZV9jcmMpOworCWlndF9kaXNwbGF5X3Jlc2V0KCZkYXRhLT5kaXNwbGF5KTsKK30KKworLyoK KyAqIGRyYXcgdGhlIERQIGNvbG9yIHJhbXAgdGVzdCBwYXR0ZXJuCisgKiBSZWZlcmVuY2U6IERQ IExpbmsgQ1RTIDEuMiBDb3JlIHIxLjEsIHNlYy4gMy4xLjUuMQorICovCitzdGF0aWMgdm9pZCBk cmF3X2RwX3Rlc3RfcGF0dGVybl9jb2xvcl9yYW1wKGlndF9mYl90ICpmYikKK3sKKwljb25zdCBp bnQgaCA9IDY0OyAgLyogdGVzdCBwYXR0ZXJuIHJlY3RhbmdsZSBoZWlnaHQgKi8KKwljb25zdCBp bnQgYmxvY2tfaCA9IGggKiA0OyAvKiBibG9jayBoZWlnaHQgb2YgUi1HLUItV2hpdGUgcmVjdGFu Z2xlcyAqLworCXZvaWQgKnB0cl9mYjsKKwl1aW50OF90ICpkYXRhOworCWludCB4LHk7CisJaW50 IGk7CisJdWludDhfdCB2YWw7CisKKwkvKgorCSAqIDY0LWJ5LTI1NiBwaXhlbHMgcGVyIHJlY3Rh bmdsZQorCSAqIFItRy1CLVdoaXRlIHJlY3RhbmdsZSBpbiBvcmRlciBpbiB2ZXJ0aWNhbAorCSAq IGR1cGxpY2F0ZSBpbiBob3Jpem9udGFsCisJICovCisJcHRyX2ZiID0gaWd0X2ZiX21hcF9idWZm ZXIoZmItPmZkLCBmYik7CisJaWd0X2Fzc2VydChwdHJfZmIpOworCWRhdGEgPSBwdHJfZmIgKyBm Yi0+b2Zmc2V0c1swXTsKKworCWZvciAoeSA9IDA7IHkgPCBmYi0+aGVpZ2h0OyArK3kpIHsKKwkJ Zm9yICh4ID0gMCwgdmFsID0gMDsgeCA8IGZiLT53aWR0aDsgKyt4LCArK3ZhbCkgeworCQkJc3dp dGNoIChmYi0+ZHJtX2Zvcm1hdCkgeworCQkJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4OgorCQkJ CWkgPSB4ICogNCArIHkgKiBmYi0+c3RyaWRlc1swXTsKKworCQkJCS8qIHZlcnRpY2FsIFItRy1C LVdoaXRlIHJlYyAqLworCQkJCWlmICgoeSAlIGJsb2NrX2gpIDwgaCkgewkgICAgLyogUmVkICov CisJCQkJCWRhdGFbaSArIDJdID0gdmFsOworCQkJCQlkYXRhW2kgKyAxXSA9IDA7CisJCQkJCWRh dGFbaSArIDBdID0gMDsKKwkJCQl9IGVsc2UgaWYgKCh5ICUgYmxvY2tfaCkgPCAyICogaCkgeyAv KiBHcmVlbiAqLworCQkJCQlkYXRhW2kgKyAyXSA9IDA7CisJCQkJCWRhdGFbaSArIDFdID0gdmFs OworCQkJCQlkYXRhW2kgKyAwXSA9IDA7CisJCQkJfSBlbHNlIGlmICgoeSAlIGJsb2NrX2gpIDwg MyAqIGgpIHsgLyogQmx1ZSAqLworCQkJCQlkYXRhW2kgKyAyXSA9IDA7CisJCQkJCWRhdGFbaSAr IDFdID0gMDsKKwkJCQkJZGF0YVtpICsgMF0gPSB2YWw7CisJCQkJfSBlbHNlIHsJCQkgICAgLyog V2hpdGUgKi8KKwkJCQkJZGF0YVtpICsgMl0gPSB2YWw7CisJCQkJCWRhdGFbaSArIDFdID0gdmFs OworCQkJCQlkYXRhW2kgKyAwXSA9IHZhbDsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0 OgorCQkJCWlndF9hc3NlcnRfZigwLCAiRFJNIEZvcm1hdCBJbnZhbGlkIik7CisJCQkJYnJlYWs7 CisJCQl9CisJCX0KKwl9CisKKwlpZ3RfZmJfdW5tYXBfYnVmZmVyKGZiLCBwdHJfZmIpOworfQor CisvKgorICogZHJhdyB0aGUgRFAgdmVydGljYWwgbGluZXMgdGVzdCBwYXR0ZXJuCisgKiAqIFJl ZmVyZW5jZTogRFAgTGluayBDVFMgMS4yIENvcmUgcjEuMSwgc2VjLiAzLjEuNS4yCisgKi8KK3N0 YXRpYyB2b2lkIGRyYXdfZHBfdGVzdF9wYXR0ZXJuX3ZlcnRfbGluZXMoaWd0X2ZiX3QgKmZiKQor eworCXZvaWQgKnB0cl9mYjsKKwl1aW50OF90ICpkYXRhOworCWludCB4LCB5OworCWludCBpOwor CisJLyogYWx0ZXJuYXRpbmcgYmxhY2sgYW5kIHdoaXRlIGxpbmVzLCAxIHBpeGVsIHdpZGUgKi8K KwlwdHJfZmIgPSBpZ3RfZmJfbWFwX2J1ZmZlcihmYi0+ZmQsIGZiKTsKKwlpZ3RfYXNzZXJ0KHB0 cl9mYik7CisJZGF0YSA9IHB0cl9mYiArIGZiLT5vZmZzZXRzWzBdOworCisJZm9yICh5ID0gMDsg eSA8IGZiLT5oZWlnaHQ7ICsreSkgeworCQlmb3IgKHggPSAwOyB4IDwgZmItPndpZHRoOyArK3gp IHsKKwkJCXN3aXRjaCAoZmItPmRybV9mb3JtYXQpIHsKKwkJCWNhc2UgRFJNX0ZPUk1BVF9YUkdC ODg4ODoKKwkJCQlpID0geCAqIDQgKyB5ICogZmItPnN0cmlkZXNbMF07CisKKwkJCQlpZiAoKHgg JiAxKSA9PSAwKSB7CisJCQkJCWRhdGFbaSArIDJdID0gMHhmZjsgLyogUiAqLworCQkJCQlkYXRh W2kgKyAxXSA9IDB4ZmY7IC8qIEcgKi8KKwkJCQkJZGF0YVtpICsgMF0gPSAweGZmOyAvKiBCICov CisJCQkJfQorCQkJCWVsc2UgeworCQkJCQlkYXRhW2kgKyAyXSA9IDA7CisJCQkJCWRhdGFbaSAr IDFdID0gMDsKKwkJCQkJZGF0YVtpICsgMF0gPSAwOworCQkJCX0KKwkJCQlicmVhazsKKwkJCWRl ZmF1bHQ6CisJCQkJaWd0X2Fzc2VydF9mKDAsICJEUk0gRm9ybWF0IEludmFsaWQiKTsKKwkJCQli cmVhazsKKwkJCX0KKwkJfQorCX0KKworCWlndF9mYl91bm1hcF9idWZmZXIoZmIsIHB0cl9mYik7 Cit9CisKKy8qIGRyYXcgdGhlIERQIGhvcml6b250YWwgbGluZXMgdGVzdCBwYXR0ZXJuICovCitz dGF0aWMgdm9pZCBkcmF3X2RwX3Rlc3RfcGF0dGVybl9ob3J6X2xpbmVzKGlndF9mYl90ICpmYikK K3sKKwl2b2lkICpwdHJfZmI7CisJdWludDhfdCAqZGF0YTsKKwlpbnQgeCwgeTsKKwlpbnQgaTsK KworCS8qIGFsdGVybmF0aW5nIGJsYWNrIGFuZCB3aGl0ZSBob3Jpem9udGFsIGxpbmVzLCAxIHBp eGVsIGhpZ2ggKi8KKwlwdHJfZmIgPSBpZ3RfZmJfbWFwX2J1ZmZlcihmYi0+ZmQsIGZiKTsKKwlp Z3RfYXNzZXJ0KHB0cl9mYik7CisJZGF0YSA9IHB0cl9mYiArIGZiLT5vZmZzZXRzWzBdOworCisJ Zm9yICh5ID0gMDsgeSA8IGZiLT5oZWlnaHQ7ICsreSkgeworCQlmb3IgKHggPSAwOyB4IDwgZmIt PndpZHRoOyArK3gpIHsKKwkJCXN3aXRjaCAoZmItPmRybV9mb3JtYXQpIHsKKwkJCWNhc2UgRFJN X0ZPUk1BVF9YUkdCODg4ODoKKwkJCQlpID0geCAqIDQgKyB5ICogZmItPnN0cmlkZXNbMF07CisK KwkJCQlpZiAoKHkgJiAxKSA9PSAwKSB7CisJCQkJCWRhdGFbaSArIDJdID0gMHhmZjsgLyogUiAq LworCQkJCQlkYXRhW2kgKyAxXSA9IDB4ZmY7IC8qIEcgKi8KKwkJCQkJZGF0YVtpICsgMF0gPSAw eGZmOyAvKiBCICovCisJCQkJfQorCQkJCWVsc2UgeworCQkJCQlkYXRhW2kgKyAyXSA9IDA7CisJ CQkJCWRhdGFbaSArIDFdID0gMDsKKwkJCQkJZGF0YVtpICsgMF0gPSAwOworCQkJCX0KKwkJCQli cmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJaWd0X2Fzc2VydF9mKDAsICJEUk0gRm9ybWF0IEludmFs aWQiKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCWlndF9mYl91bm1hcF9idWZmZXIo ZmIsIHB0cl9mYik7Cit9CisKKy8qCisgKiBkcmF3IHRoZSBEUCBjb2xvciBzcXVhcmVzIFZFU0Eg dGVzdCBwYXR0ZXJuCisgKiBSZWZlcmVuY2U6IERQIExpbmsgQ1RTIDEuMiBDb3JlIHIxLjEsIHNl Yy4gMy4xLjUuMworICovCitzdGF0aWMgdm9pZCBkcmF3X2RwX3Rlc3RfcGF0dGVybl9jb2xvcl9z cXVhcmVzX3Zlc2EoaWd0X2ZiX3QgKmZiKQoreworCWNvbnN0IGludCBoID0gNjQ7IC8qIHRlc3Qg cGF0dGVybiBzcXVhcmUgaGVpZ2h0L3dpZHRoICovCisJY29uc3QgaW50IGJsb2NrX2ggPSBoICog MjsgLyogYmxvY2sgaGVpZ2h0IG9mIHRoZSByZXBldGl0aW9uIHBhdHRlcm4gKi8KKwljb25zdCBp bnQgYmxvY2tfdyA9IGggKiA4OyAvKiBibG9jayB3aWR0aCBvZiB0aGUgcmVwZXRpdGlvbiBwYXR0 ZXJuICovCisJY29uc3QgdWludDhfdCByZ2JbM11bMl1bOF0gPSB7CisJCXsvKiBSZWQgdGFibGUg b2YgdGhlIHBhdHRlcm4gc3F1YXJlcyAqLworCQkJezI1NSwgMjU1LCAwLCAwLCAyNTUsIDI1NSwg MCwgMH0sCisJCQl7MCwgMjU1LCAyNTUsIDAsIDAsIDI1NSwgMjU1LCAwfSwKKwkJfSwKKwkJey8q IEdyZWVuIHRhYmxlICovCisJCQl7MjU1LCAyNTUsIDI1NSwgMjU1LCAwLCAwLCAwLCAwfSwKKwkJ CXswLCAwLCAwLCAyNTUsIDI1NSwgMjU1LCAyNTUsIDB9LAorCQl9LAorCQl7LyogQmx1ZSB0YWJs ZSAqLworCQkJezI1NSwgMCwgMjU1LCAwLCAyNTUsIDAsIDI1NSwgMH0sCisJCQl7MjU1LCAwLCAy NTUsIDAsIDI1NSwgMCwgMjU1LCAwfSwKKwkJfSwKKwl9OworCisJdm9pZCAqcHRyX2ZiOworCXVp bnQ4X3QgKmRhdGE7CisJaW50IHgsIHk7CisJaW50IGksIGosIGs7CisKKwlwdHJfZmIgPSBpZ3Rf ZmJfbWFwX2J1ZmZlcihmYi0+ZmQsIGZiKTsKKwlpZ3RfYXNzZXJ0KHB0cl9mYik7CisJZGF0YSA9 IHB0cl9mYiArIGZiLT5vZmZzZXRzWzBdOworCisJZm9yICh5ID0gMDsgeSA8IGZiLT5oZWlnaHQ7 ICsreSkgeworCQlmb3IgKHggPSAwOyB4IDwgZmItPndpZHRoOyArK3gpIHsKKwkJCXN3aXRjaCAo ZmItPmRybV9mb3JtYXQpIHsKKwkJCWNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoKKwkJCQlpID0g eCAqIDQgKyB5ICogZmItPnN0cmlkZXNbMF07CisJCQkJaiA9ICh5ICUgYmxvY2tfaCkgLyBoOwor CQkJCWsgPSAoeCAlIGJsb2NrX3cpIC8gaDsKKworCQkJCWRhdGFbaSArIDJdID0gcmdiWzBdW2pd W2tdOyAvKiBSICovCisJCQkJZGF0YVtpICsgMV0gPSByZ2JbMV1bal1ba107IC8qIEcgKi8KKwkJ CQlkYXRhW2kgKyAwXSA9IHJnYlsyXVtqXVtrXTsgLyogQiAqLworCQkJCWJyZWFrOworCQkJZGVm YXVsdDoKKwkJCQlpZ3RfYXNzZXJ0X2YoMCwgIkRSTSBGb3JtYXQgSW52YWxpZCIpOworCQkJCWJy ZWFrOworCQkJfQorCQl9CisJfQorCisJaWd0X2ZiX3VubWFwX2J1ZmZlcihmYiwgcHRyX2ZiKTsK K30KKworLyogZ2VuZXJhdGUgdGVzdCBwYXR0ZXJuIGFuZCBmaWxscyBhIEZCICovCitzdGF0aWMg dm9pZCBnZW5lcmF0ZV90ZXN0X3BhdHRlcm4oaWd0X2ZiX3QgKmZiLCBkYXRhX3QgKmRhdGEsIGVu dW0gcGF0dGVybiBwdG4pCit7CisJaWd0X2Fzc2VydChmYi0+ZmQgJiYgKHB0biA8IFRFU1RfUEFU VEVSTl9NQVgpKTsKKworCWlmIChwdG4gPT0gVEVTVF9QQVRURVJOX0RQX0NPTE9SX1JBTVApIHsK KwkJZHJhd19kcF90ZXN0X3BhdHRlcm5fY29sb3JfcmFtcChmYik7CisJfSBlbHNlIGlmIChwdG4g PT0gVEVTVF9QQVRURVJOX0RQX0JMQUNLX1dISVRFX1ZFUlRfTElORVMpIHsKKwkJZHJhd19kcF90 ZXN0X3BhdHRlcm5fdmVydF9saW5lcyhmYik7CisJfSBlbHNlIGlmIChwdG4gPT0gVEVTVF9QQVRU RVJOX0RQX0JMQUNLX1dISVRFX0hPUlpfTElORVMpIHsKKwkJZHJhd19kcF90ZXN0X3BhdHRlcm5f aG9yel9saW5lcyhmYik7CisJfSBlbHNlIGlmIChwdG4gPT0gVEVTVF9QQVRURVJOX0RQX0NPTE9S X1NRVUFSRVNfVkVTQSkgeworCQlkcmF3X2RwX3Rlc3RfcGF0dGVybl9jb2xvcl9zcXVhcmVzX3Zl c2EoZmIpOworCX0KK30KKworc3RhdGljIHZvaWQgYnlwYXNzXzhicGNfdGVzdChkYXRhX3QgKmRh dGEpCit7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5OworCWlndF9m Yl90IGZiOworCWVudW0gcGF0dGVybiBwdG47CisKKwl0ZXN0X2luaXQoZGF0YSk7CisKKwlpZ3Rf Y3JlYXRlX2ZiKGRhdGEtPmRybV9mZCwgZGF0YS0+d2lkdGgsIGRhdGEtPmhlaWdodCwKKwkJICAg ICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgJmZiKTsK KworCS8qCisJICogU2V0dGluZ3M6CisJICogICBubyBkZWdhbW1hCisJICogICBubyByZWdhbW1h CisJICogICBubyBDVE0KKwkgKi8KKwlpZ3RfcGlwZV9vYmpfcmVwbGFjZV9wcm9wX2Jsb2IoZGF0 YS0+cGlwZSwgSUdUX0NSVENfREVHQU1NQV9MVVQsIE5VTEwsIDApOworCWlndF9waXBlX29ial9y ZXBsYWNlX3Byb3BfYmxvYihkYXRhLT5waXBlLCBJR1RfQ1JUQ19HQU1NQV9MVVQsIE5VTEwsIDAp OworCWlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihkYXRhLT5waXBlLCBJR1RfQ1JUQ19D VE0sIE5VTEwsIDApOworCisJaWd0X3BsYW5lX3NldF9mYihkYXRhLT5wcmltYXJ5LCAmZmIpOwor CWlndF9kaXNwbGF5X2NvbW1pdF9hdG9taWMoZGlzcGxheSwgRFJNX01PREVfQVRPTUlDX0FMTE9X X01PREVTRVQsIE5VTEwpOworCisJLyogdHJhdmVyc2UgYWxsIHRoZSB0ZXN0IHBhdHRlcm4gdG8g dmFsaWRhdGUgOGJwYyBieXBhc3MgbW9kZSAqLworCWZvciAocHRuID0gVEVTVF9QQVRURVJOX0RQ X0NPTE9SX1JBTVA7IHB0biA8IFRFU1RfUEFUVEVSTl9NQVg7ICsrcHRuKSB7CisJCWlndF9kZWJ1 ZygiVGVzdCBQYXR0ZXJuOiAlc1xuIiwgcHRuc3RyW3B0bl0pOworCisJCWdlbmVyYXRlX3Rlc3Rf cGF0dGVybigmZmIsIGRhdGEsIHB0bik7CisKKwkJLyogR3JhYiBGQiBhbmQgRFBSWCBDUkNzIGFu ZCBjb21wYXJlICovCisJCWlndF9mYl9jYWxjX2NyYygmZmIsICZkYXRhLT5jcmNfZmIpOworCQlp Z3RfcGlwZV9jcmNfY29sbGVjdF9jcmMoZGF0YS0+cGlwZV9jcmMsICZkYXRhLT5jcmNfZHByeCk7 CisKKwkJaWd0X2Fzc2VydF9jcmNfZXF1YWwoJmRhdGEtPmNyY19mYiwgJmRhdGEtPmNyY19kcHJ4 KTsKKwl9CisKKwlpZ3RfcGxhbmVfc2V0X2ZiKGRhdGEtPnByaW1hcnksIE5VTEwpOworCXRlc3Rf ZmluaShkYXRhKTsKKwlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmZiKTsKK30KKworaWd0 X21haW4KK3sKKwlkYXRhX3QgZGF0YTsKKwltZW1zZXQoJmRhdGEsIDAsIHNpemVvZihkYXRhKSk7 CisKKwlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CisKKwlpZ3RfZml4dHVyZSB7CisJCWRhdGEu ZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfQU1ER1BVKTsKKwkJaWYgKGRh dGEuZHJtX2ZkID09IC0xKQorCQkJaWd0X3NraXAoIk5vdCBhbiBhbWRncHUgZHJpdmVyLlxuIik7 CisJCWlndF9yZXF1aXJlX3BpcGVfY3JjKGRhdGEuZHJtX2ZkKTsKKworCQlrbXN0ZXN0X3NldF92 dF9ncmFwaGljc19tb2RlKCk7CisKKwkJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS5kaXNwbGF5 LCBkYXRhLmRybV9mZCk7CisJCWlndF9yZXF1aXJlKGRhdGEuZGlzcGxheS5pc19hdG9taWMpOwor CQlpZ3RfZGlzcGxheV9yZXF1aXJlX291dHB1dCgmZGF0YS5kaXNwbGF5KTsKKwl9CisKKwlpZ3Rf c3VidGVzdCgiOGJwYy1ieXBhc3MtbW9kZSIpCisJCWJ5cGFzc184YnBjX3Rlc3QoJmRhdGEpOwor CisJaWd0X2ZpeHR1cmUgeworCQlpZ3RfZGlzcGxheV9maW5pKCZkYXRhLmRpc3BsYXkpOworCX0K K30KZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9tZXNvbi5idWlsZCBiL3Rlc3RzL2FtZGdwdS9t ZXNvbi5idWlsZAppbmRleCA0MjA4NjM3NC4uYjc5ODIyOTEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2Ft ZGdwdS9tZXNvbi5idWlsZAorKysgYi90ZXN0cy9hbWRncHUvbWVzb24uYnVpbGQKQEAgLTQsNiAr NCw3IEBAIGFtZGdwdV9kZXBzID0gdGVzdF9kZXBzCiBpZiBsaWJkcm1fYW1kZ3B1LmZvdW5kKCkK IAlhbWRncHVfcHJvZ3MgKz0gWyAnYW1kX2FibScsCiAJCQkgICdhbWRfYmFzaWMnLAorCQkJICAn YW1kX2J5cGFzcycsCiAJCQkgICdhbWRfY29sb3InLAogCQkJICAnYW1kX2NzX25vcCcsCiAJCQkg ICdhbWRfcHJpbWUnLAotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2lndC1kZXY=