From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1881089E19 for ; Tue, 5 Mar 2019 01:48:19 +0000 (UTC) From: Dhinakaran Pandiyan Date: Mon, 4 Mar 2019 17:47:38 -0800 Message-Id: <20190305014742.3598-3-dhinakaran.pandiyan@intel.com> In-Reply-To: <20190305014742.3598-1-dhinakaran.pandiyan@intel.com> References: <20190305014742.3598-1-dhinakaran.pandiyan@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 3/7] tests/gem_render_copy: Test Yf tiling 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: Dhinakaran Pandiyan List-ID: RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkxl dCdzIHRlc3QgWWYgdGlsaW5nIG5vdyB0aGF0IHJlbmRlcmNvcHkgY2FuIGhhbmRsZSBpdC4KCnYy OiBGcm9tIERLCiBTZXQgYnBwIGZvciBZZiBidWZmZXIgYW5kIHJlYmFzZS4KCkNjOiBMdWthc3og S2FsYW1hcnogPGx1a2Fzei5rYWxhbWFyekBpbnRlbC5jb20+CkNjOiBLYXRhcnp5bmEgRGVjIDxr YXRhcnp5bmEuZGVjQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGhpbmFrYXJhbiBQ YW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Ci0tLQogdGVzdHMvaTkxNS9n ZW1fcmVuZGVyX2NvcHkuYyB8IDI0NiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDE5NSBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9yZW5kZXJfY29weS5jIGIvdGVzdHMvaTkxNS9nZW1f cmVuZGVyX2NvcHkuYwppbmRleCAwY2Q0ZTUwZi4uYWZlMmRmMDUgMTAwNjQ0Ci0tLSBhL3Rlc3Rz L2k5MTUvZ2VtX3JlbmRlcl9jb3B5LmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fcmVuZGVyX2NvcHku YwpAQCAtNzIsMTEgKzcyLDg1IEBAIHN0YXRpYyBjb25zdCBjaGFyICptYWtlX2ZpbGVuYW1lKGNv bnN0IGNoYXIgKmZpbGVuYW1lKQogCXJldHVybiBidWY7CiB9CiAKLXN0YXRpYyB2b2lkICpsaW5l YXJfY29weShkYXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3RfYnVmICpidWYpCitzdGF0aWMgdm9pZCAq eWZfcHRyKHZvaWQgKnB0ciwKKwkJICAgIHVuc2lnbmVkIGludCB4LCB1bnNpZ25lZCBpbnQgeSwK KwkJICAgIHVuc2lnbmVkIGludCBzdHJpZGUsIHVuc2lnbmVkIGludCBjcHApCiB7Ci0Jdm9pZCAq bWFwLCAqbGluZWFyOworICAgICAgIHggKj0gY3BwOworCisgICAgICAgcmV0dXJuIHB0ciArCisJ ICAgICAgICgoeSAmIH4weDFmKSAqIHN0cmlkZSkgKworCSAgICAgICAoKHkgJiAweDEwKSAqIDY0 KSArCisJICAgICAgICgoeSAmIDB4OCkgKiAzMikgKworCSAgICAgICAoKHkgJiAweDcpICogMTYp ICsKKwkgICAgICAgKCh4ICYgfjB4M2YpICogMzIpICsKKwkgICAgICAgKCh4ICYgMHgyMCkgKiAx NikgKworCSAgICAgICAoKHggJiAweDEwKSAqIDgpICsKKwkgICAgICAgKHggJiAweGYpOworfQog Ci0JaWd0X2Fzc2VydF9lcShwb3NpeF9tZW1hbGlnbigmbGluZWFyLCAxNiwgYnVmLT5iby0+c2l6 ZSksIDApOworc3RhdGljIHZvaWQgY29weV9saW5lYXJfdG9feWYoZGF0YV90ICpkYXRhLCBzdHJ1 Y3QgaWd0X2J1ZiAqYnVmLCBjb25zdCB1aW50MzJfdCAqbGluZWFyKQoreworCWludCBoZWlnaHQg PSBpZ3RfYnVmX2hlaWdodChidWYpOworCWludCB3aWR0aCA9IGlndF9idWZfd2lkdGgoYnVmKTsK Kwl2b2lkICptYXA7CisKKwlnZW1fc2V0X2RvbWFpbihkYXRhLT5kcm1fZmQsIGJ1Zi0+Ym8tPmhh bmRsZSwKKwkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9DUFUsIEk5MTVfR0VNX0RPTUFJTl9DUFUp OworCW1hcCA9IGdlbV9tbWFwX19jcHUoZGF0YS0+ZHJtX2ZkLCBidWYtPmJvLT5oYW5kbGUsIDAs CisJCQkgICAgYnVmLT5iby0+c2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSk7CisKKwlmb3Ig KGludCB5ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7CisJCWZvciAoaW50IHggPSAwOyB4IDwgd2lk dGg7IHgrKykgeworCQkJdWludDMyX3QgKnB0ciA9IHlmX3B0cihtYXAsIHgsIHksIGJ1Zi0+c3Ry aWRlLCA0KTsKKworCQkJKnB0ciA9IGxpbmVhclt5ICogd2lkdGggKyB4XTsKKwkJfQorCX0KKwor CW11bm1hcChtYXAsIGJ1Zi0+Ym8tPnNpemUpOworfQorCitzdGF0aWMgdm9pZCBjb3B5X3lmX3Rv X2xpbmVhcihkYXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3RfYnVmICpidWYsIHVpbnQzMl90ICpsaW5l YXIpCit7CisJaW50IGhlaWdodCA9IGlndF9idWZfaGVpZ2h0KGJ1Zik7CisJaW50IHdpZHRoID0g aWd0X2J1Zl93aWR0aChidWYpOworCXZvaWQgKm1hcDsKKworCWdlbV9zZXRfZG9tYWluKGRhdGEt PmRybV9mZCwgYnVmLT5iby0+aGFuZGxlLAorCQkgICAgICAgSTkxNV9HRU1fRE9NQUlOX0NQVSwg MCk7CisJbWFwID0gZ2VtX21tYXBfX2NwdShkYXRhLT5kcm1fZmQsIGJ1Zi0+Ym8tPmhhbmRsZSwg MCwKKwkJCSAgICBidWYtPmJvLT5zaXplLCBQUk9UX1JFQUQpOworCisJZm9yIChpbnQgeSA9IDA7 IHkgPCBoZWlnaHQ7IHkrKykgeworCQlmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyB4KyspIHsK KwkJCXVpbnQzMl90ICpwdHIgPSB5Zl9wdHIobWFwLCB4LCB5LCBidWYtPnN0cmlkZSwgNCk7CisK KwkJCWxpbmVhclt5ICogd2lkdGggKyB4XSA9ICpwdHI7CisJCX0KKwl9CisKKwltdW5tYXAobWFw LCBidWYtPmJvLT5zaXplKTsKK30KKworc3RhdGljIHZvaWQgY29weV9saW5lYXJfdG9fZ3R0KGRh dGFfdCAqZGF0YSwgc3RydWN0IGlndF9idWYgKmJ1ZiwgY29uc3QgdWludDMyX3QgKmxpbmVhcikK K3sKKwl2b2lkICptYXA7CisKKwlnZW1fc2V0X2RvbWFpbihkYXRhLT5kcm1fZmQsIGJ1Zi0+Ym8t PmhhbmRsZSwKKwkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQsIEk5MTVfR0VNX0RPTUFJTl9H VFQpOworCisJbWFwID0gZ2VtX21tYXBfX2d0dChkYXRhLT5kcm1fZmQsIGJ1Zi0+Ym8tPmhhbmRs ZSwKKwkJCSAgICBidWYtPmJvLT5zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKKworCW1l bWNweShtYXAsIGxpbmVhciwgYnVmLT5iby0+c2l6ZSk7CisKKwltdW5tYXAobWFwLCBidWYtPmJv LT5zaXplKTsKK30KKworc3RhdGljIHZvaWQgY29weV9ndHRfdG9fbGluZWFyKGRhdGFfdCAqZGF0 YSwgc3RydWN0IGlndF9idWYgKmJ1ZiwgdWludDMyX3QgKmxpbmVhcikKK3sKKwl2b2lkICptYXA7 CiAKIAlnZW1fc2V0X2RvbWFpbihkYXRhLT5kcm1fZmQsIGJ1Zi0+Ym8tPmhhbmRsZSwKIAkJICAg ICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQsIDApOwpAQCAtODcsNiArMTYxLDE4IEBAIHN0YXRpYyB2 b2lkICpsaW5lYXJfY29weShkYXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3RfYnVmICpidWYpCiAJaWd0 X21lbWNweV9mcm9tX3djKGxpbmVhciwgbWFwLCBidWYtPmJvLT5zaXplKTsKIAogCW11bm1hcCht YXAsIGJ1Zi0+Ym8tPnNpemUpOworfQorCitzdGF0aWMgdm9pZCAqbGluZWFyX2NvcHkoZGF0YV90 ICpkYXRhLCBzdHJ1Y3QgaWd0X2J1ZiAqYnVmKQoreworCXZvaWQgKmxpbmVhcjsKKworCWlndF9h c3NlcnRfZXEocG9zaXhfbWVtYWxpZ24oJmxpbmVhciwgMTYsIGJ1Zi0+Ym8tPnNpemUpLCAwKTsK KworCWlmIChidWYtPnRpbGluZyA9PSBJOTE1X1RJTElOR19ZZikKKwkJY29weV95Zl90b19saW5l YXIoZGF0YSwgYnVmLCBsaW5lYXIpOworCWVsc2UKKwkJY29weV9ndHRfdG9fbGluZWFyKGRhdGEs IGJ1ZiwgbGluZWFyKTsKIAogCXJldHVybiBsaW5lYXI7CiB9CkBAIC0xNzMsNyArMjU5LDcgQEAg c3RhdGljIHZvaWQgc2NyYXRjaF9idWZfZHJhd19wYXR0ZXJuKGRhdGFfdCAqZGF0YSwgc3RydWN0 IGlndF9idWYgKmJ1ZiwKIAljYWlyb19zdXJmYWNlX3QgKnN1cmZhY2U7CiAJY2Fpcm9fcGF0dGVy bl90ICpwYXQ7CiAJY2Fpcm9fdCAqY3I7Ci0Jdm9pZCAqbWFwLCAqbGluZWFyOworCXZvaWQgKmxp bmVhcjsKIAogCWxpbmVhciA9IGxpbmVhcl9jb3B5KGRhdGEsIGJ1Zik7CiAKQEAgLTIxNiwxNSAr MzAyLDEwIEBAIHN0YXRpYyB2b2lkIHNjcmF0Y2hfYnVmX2RyYXdfcGF0dGVybihkYXRhX3QgKmRh dGEsIHN0cnVjdCBpZ3RfYnVmICpidWYsCiAKIAljYWlyb19zdXJmYWNlX2Rlc3Ryb3koc3VyZmFj ZSk7CiAKLQlnZW1fc2V0X2RvbWFpbihkYXRhLT5kcm1fZmQsIGJ1Zi0+Ym8tPmhhbmRsZSwKLQkJ ICAgICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQsIEk5MTVfR0VNX0RPTUFJTl9HVFQpOwotCi0JbWFw ID0gZ2VtX21tYXBfX2d0dChkYXRhLT5kcm1fZmQsIGJ1Zi0+Ym8tPmhhbmRsZSwKLQkJCSAgICBi dWYtPmJvLT5zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKLQotCW1lbWNweShtYXAsIGxp bmVhciwgYnVmLT5iby0+c2l6ZSk7Ci0KLQltdW5tYXAobWFwLCBidWYtPmJvLT5zaXplKTsKKwlp ZiAoYnVmLT50aWxpbmcgPT0gSTkxNV9USUxJTkdfWWYpCisJCWNvcHlfbGluZWFyX3RvX3lmKGRh dGEsIGJ1ZiwgbGluZWFyKTsKKwllbHNlCisJCWNvcHlfbGluZWFyX3RvX2d0dChkYXRhLCBidWYs IGxpbmVhcik7CiAKIAlmcmVlKGxpbmVhcik7CiB9CkBAIC0yMzYsMzYgKzMxNyw1OSBAQCBzY3Jh dGNoX2J1Zl9jb3B5KGRhdGFfdCAqZGF0YSwKIHsKIAlpbnQgd2lkdGggPSBpZ3RfYnVmX3dpZHRo KGRzdCk7CiAJaW50IGhlaWdodCAgPSBpZ3RfYnVmX2hlaWdodChkc3QpOwotCXVpbnQzMl90ICps aW5lYXJfZHN0LCAqbGluZWFyX3NyYzsKKwl1aW50MzJfdCAqbGluZWFyX2RzdDsKIAogCWlndF9h c3NlcnRfZXEoaWd0X2J1Zl93aWR0aChkc3QpLCBpZ3RfYnVmX3dpZHRoKHNyYykpOwogCWlndF9h c3NlcnRfZXEoaWd0X2J1Zl9oZWlnaHQoZHN0KSwgaWd0X2J1Zl9oZWlnaHQoc3JjKSk7CiAJaWd0 X2Fzc2VydF9lcShkc3QtPmJvLT5zaXplLCBzcmMtPmJvLT5zaXplKTsKIAorCXcgPSBtaW4odywg d2lkdGggLSBzeCk7CisJdyA9IG1pbih3LCB3aWR0aCAtIGR4KTsKKworCWggPSBtaW4oaCwgaGVp Z2h0IC0gc3kpOworCWggPSBtaW4oaCwgaGVpZ2h0IC0gZHkpOworCiAJZ2VtX3NldF9kb21haW4o ZGF0YS0+ZHJtX2ZkLCBkc3QtPmJvLT5oYW5kbGUsCiAJCSAgICAgICBJOTE1X0dFTV9ET01BSU5f R1RULCBJOTE1X0dFTV9ET01BSU5fR1RUKTsKLQlnZW1fc2V0X2RvbWFpbihkYXRhLT5kcm1fZmQs IHNyYy0+Ym8tPmhhbmRsZSwKLQkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQsIDApOwotCiAJ bGluZWFyX2RzdCA9IGdlbV9tbWFwX19ndHQoZGF0YS0+ZHJtX2ZkLCBkc3QtPmJvLT5oYW5kbGUs CiAJCQkJICAgZHN0LT5iby0+c2l6ZSwgUFJPVF9XUklURSk7Ci0JbGluZWFyX3NyYyA9IGdlbV9t bWFwX19ndHQoZGF0YS0+ZHJtX2ZkLCBzcmMtPmJvLT5oYW5kbGUsCi0JCQkJICAgc3JjLT5iby0+ c2l6ZSwgUFJPVF9SRUFEKTsKIAotCXcgPSBtaW4odywgd2lkdGggLSBzeCk7Ci0JdyA9IG1pbih3 LCB3aWR0aCAtIGR4KTsKKwlpZiAoc3JjLT50aWxpbmcgPT0gSTkxNV9USUxJTkdfWWYpIHsKKwkJ dm9pZCAqbWFwOwogCi0JaCA9IG1pbihoLCBoZWlnaHQgLSBzeSk7Ci0JaCA9IG1pbihoLCBoZWln aHQgLSBkeSk7CisJCWdlbV9zZXRfZG9tYWluKGRhdGEtPmRybV9mZCwgc3JjLT5iby0+aGFuZGxl LAorCQkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9DUFUsIDApOworCQltYXAgPSBnZW1fbW1hcF9f Y3B1KGRhdGEtPmRybV9mZCwgc3JjLT5iby0+aGFuZGxlLCAwLAorCQkJCSAgICBzcmMtPmJvLT5z aXplLCBQUk9UX1JFQUQpOworCisJCWZvciAoaW50IHkgPSAwOyB5IDwgaDsgeSsrKSB7CisJCQlm b3IgKGludCB4ID0gMDsgeCA8IHc7IHgrKykgeworCQkJCWNvbnN0IHVpbnQzMl90ICpwdHIgPSB5 Zl9wdHIobWFwLCBzeCt4LCBzeSt5LCBzcmMtPnN0cmlkZSwgNCk7CisKKwkJCQlsaW5lYXJfZHN0 WyhkeSt5KSAqIHdpZHRoICsgZHgreF0gPSAqcHRyOworCQkJfQorCQl9CisKKwkJbXVubWFwKG1h cCwgc3JjLT5iby0+c2l6ZSk7CisJfSBlbHNlIHsKKwkJdWludDMyX3QgKmxpbmVhcl9zcmM7CisK KwkJZ2VtX3NldF9kb21haW4oZGF0YS0+ZHJtX2ZkLCBzcmMtPmJvLT5oYW5kbGUsCisJCQkgICAg ICAgSTkxNV9HRU1fRE9NQUlOX0dUVCwgMCk7CiAKLQlmb3IgKGludCB5ID0gMDsgeSA8IGg7IHkr KykgewotCQlpZ3RfbWVtY3B5X2Zyb21fd2MoJmxpbmVhcl9kc3RbKGR5K3kpICogd2lkdGggKyBk eF0sCi0JCQkJICAgJmxpbmVhcl9zcmNbKHN5K3kpICogd2lkdGggKyBzeF0sCi0JCQkJICAgdyAq IDQpOworCQlsaW5lYXJfc3JjID0gZ2VtX21tYXBfX2d0dChkYXRhLT5kcm1fZmQsIHNyYy0+Ym8t PmhhbmRsZSwKKwkJCQkJICAgc3JjLT5iby0+c2l6ZSwgUFJPVF9SRUFEKTsKKworCQlmb3IgKGlu dCB5ID0gMDsgeSA8IGg7IHkrKykgeworCQkJaWd0X21lbWNweV9mcm9tX3djKCZsaW5lYXJfZHN0 WyhkeSt5KSAqIHdpZHRoICsgZHhdLAorCQkJCQkgICAmbGluZWFyX3NyY1soc3kreSkgKiB3aWR0 aCArIHN4XSwKKwkJCQkJICAgdyAqIDQpOworCQl9CisKKwkJbXVubWFwKGxpbmVhcl9zcmMsIHNy Yy0+Ym8tPnNpemUpOwogCX0KIAogCW11bm1hcChsaW5lYXJfZHN0LCBkc3QtPmJvLT5zaXplKTsK LQltdW5tYXAobGluZWFyX3NyYywgc3JjLT5iby0+c2l6ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNj cmF0Y2hfYnVmX2luaXQoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2J1ZiAqYnVmLApAQCAtMjgy LDcgKzM4Niw4IEBAIHN0YXRpYyB2b2lkIHNjcmF0Y2hfYnVmX2luaXQoZGF0YV90ICpkYXRhLCBz dHJ1Y3QgaWd0X2J1ZiAqYnVmLAogCQlpbnQgc2l6ZTsKIAogCQlpZ3RfcmVxdWlyZShpbnRlbF9n ZW4oZGF0YS0+ZGV2aWQpID49IDkpOwotCQlpZ3RfYXNzZXJ0X2VxKHRpbGluZywgSTkxNV9USUxJ TkdfWSk7CisJCWlndF9hc3NlcnQodGlsaW5nID09IEk5MTVfVElMSU5HX1kgfHwKKwkJCSAgIHRp bGluZyA9PSBJOTE1X1RJTElOR19ZZik7CiAKIAkJYnVmLT5zdHJpZGUgPSBBTElHTih3aWR0aCAq IDQsIDEyOCk7CiAJCWJ1Zi0+c2l6ZSA9IGJ1Zi0+c3RyaWRlICogaGVpZ2h0OwpAQCAtMjk5LDgg KzQwNCwyMSBAQCBzdGF0aWMgdm9pZCBzY3JhdGNoX2J1Zl9pbml0KGRhdGFfdCAqZGF0YSwgc3Ry dWN0IGlndF9idWYgKmJ1ZiwKIAogCQlidWYtPmJvID0gZHJtX2ludGVsX2JvX2FsbG9jKGRhdGEt PmJ1Zm1nciwgIiIsIHNpemUsIDQwOTYpOwogCi0JCWRybV9pbnRlbF9ib19zZXRfdGlsaW5nKGJ1 Zi0+Ym8sICZ0aWxpbmcsIGJ1Zi0+c3RyaWRlKTsKLQkJaWd0X2Fzc2VydF9lcSh0aWxpbmcsIHJl cV90aWxpbmcpOworCQlpZiAodGlsaW5nID09IEk5MTVfVElMSU5HX1kpIHsKKwkJCWRybV9pbnRl bF9ib19zZXRfdGlsaW5nKGJ1Zi0+Ym8sICZ0aWxpbmcsIGJ1Zi0+c3RyaWRlKTsKKwkJCWlndF9h c3NlcnRfZXEodGlsaW5nLCByZXFfdGlsaW5nKTsKKwkJfQorCX0gZWxzZSBpZiAocmVxX3RpbGlu ZyA9PSBJOTE1X1RJTElOR19ZZikgeworCQlpbnQgc2l6ZTsKKworCQlidWYtPnN0cmlkZSA9IEFM SUdOKHdpZHRoICogNCwgMTI4KTsKKwkJYnVmLT5zaXplID0gYnVmLT5zdHJpZGUgKiBoZWlnaHQ7 CisJCWJ1Zi0+dGlsaW5nID0gdGlsaW5nOworCQlidWYtPmJwcCA9IDMyOworCisJCXNpemUgPSBi dWYtPnN0cmlkZSAqIEFMSUdOKGhlaWdodCwgMzIpOworCisJCWJ1Zi0+Ym8gPSBkcm1faW50ZWxf Ym9fYWxsb2MoZGF0YS0+YnVmbWdyLCAiIiwgc2l6ZSwgNDA5Nik7CiAJfSBlbHNlIHsKIAkJYnVm LT5ibyA9IGRybV9pbnRlbF9ib19hbGxvY190aWxlZChkYXRhLT5idWZtZ3IsICIiLAogCQkJCQkJ ICAgd2lkdGgsIGhlaWdodCwgNCwKQEAgLTM5Niw3ICs1MTQsNyBAQCBzdGF0aWMgdm9pZCBzY3Jh dGNoX2J1Zl9hdXhfY2hlY2soZGF0YV90ICpkYXRhLAogCQkgICAgICJBdXggc3VyZmFjZSBpbmRp Y2F0ZXMgdGhhdCBub3RoaW5nIHdhcyBjb21wcmVzc2VkXG4iKTsKIH0KIAotc3RhdGljIHZvaWQg dGVzdChkYXRhX3QgKmRhdGEsIHVpbnQzMl90IHRpbGluZywgYm9vbCB0ZXN0X2NjcykKK3N0YXRp YyB2b2lkIHRlc3QoZGF0YV90ICpkYXRhLCB1aW50MzJfdCB0aWxpbmcsIHVpbnQ2NF90IGNjc19t b2RpZmllcikKIHsKIAlzdHJ1Y3QgaWd0X2J1ZiBkc3QsIGNjcywgcmVmOwogCXN0cnVjdCB7CkBA IC00MDQsNyArNTIyLDcgQEAgc3RhdGljIHZvaWQgdGVzdChkYXRhX3QgKmRhdGEsIHVpbnQzMl90 IHRpbGluZywgYm9vbCB0ZXN0X2NjcykKIAkJY29uc3QgY2hhciAqZmlsZW5hbWU7CiAJCXVpbnQz Ml90IHRpbGluZzsKIAkJaW50IHgsIHk7Ci0JfSBzcmNbM10gPSB7CisJfSBzcmNbXSA9IHsKIAkJ ewogCQkJLmZpbGVuYW1lID0gInNvdXJjZS1saW5lYXIucG5nIiwKIAkJCS50aWxpbmcgPSBJOTE1 X1RJTElOR19OT05FLApAQCAtNDIwLDE4ICs1MzgsMzEgQEAgc3RhdGljIHZvaWQgdGVzdChkYXRh X3QgKmRhdGEsIHVpbnQzMl90IHRpbGluZywgYm9vbCB0ZXN0X2NjcykKIAkJCS50aWxpbmcgPSBJ OTE1X1RJTElOR19ZLAogCQkJLnggPSBXSURUSC8yKzEsIC55ID0gMSwKIAkJfSwKKwkJeworCQkJ LmZpbGVuYW1lID0gInNvdXJjZS15Zi10aWxlZC5wbmciLAorCQkJLnRpbGluZyA9IEk5MTVfVElM SU5HX1lmLAorCQkJLnggPSAxLCAueSA9IDEsCisJCX0sCiAJfTsKIAogCWludCBvcHRfZHVtcF9h dWIgPSBpZ3RfYXViX2R1bXBfZW5hYmxlZCgpOworCWludCBudW1fc3JjID0gQVJSQVlfU0laRShz cmMpOworCisJLyogbm8gWWYgYmVmb3JlIGdlbjkgKi8KKwlpZiAoaW50ZWxfZ2VuKGRhdGEtPmRl dmlkKSA8IDkpCisJCW51bV9zcmMtLTsKKworCWlmICh0aWxpbmcgPT0gSTkxNV9USUxJTkdfWWYg fHwgY2NzX21vZGlmaWVyKQorCQlpZ3RfcmVxdWlyZShpbnRlbF9nZW4oZGF0YS0+ZGV2aWQpID49 IDkpOwogCi0JZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNyYyk7IGkrKykKKwlmb3Ig KGludCBpID0gMDsgaSA8IG51bV9zcmM7IGkrKykKIAkJc2NyYXRjaF9idWZfaW5pdChkYXRhLCAm c3JjW2ldLmJ1ZiwgV0lEVEgsIEhFSUdIVCwgc3JjW2ldLnRpbGluZywgZmFsc2UpOwogCXNjcmF0 Y2hfYnVmX2luaXQoZGF0YSwgJmRzdCwgV0lEVEgsIEhFSUdIVCwgdGlsaW5nLCBmYWxzZSk7Ci0J aWYgKHRlc3RfY2NzKQotCQlzY3JhdGNoX2J1Zl9pbml0KGRhdGEsICZjY3MsIFdJRFRILCBIRUlH SFQsIEk5MTVfVElMSU5HX1ksIHRydWUpOworCWlmIChjY3NfbW9kaWZpZXIpCisJCXNjcmF0Y2hf YnVmX2luaXQoZGF0YSwgJmNjcywgV0lEVEgsIEhFSUdIVCwgY2NzX21vZGlmaWVyLCB0cnVlKTsK IAlzY3JhdGNoX2J1Zl9pbml0KGRhdGEsICZyZWYsIFdJRFRILCBIRUlHSFQsIEk5MTVfVElMSU5H X05PTkUsIGZhbHNlKTsKIAotCWZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRShzcmMpOyBp KyspCisJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fc3JjOyBpKyspCiAJCXNjcmF0Y2hfYnVmX2Ry YXdfcGF0dGVybihkYXRhLCAmc3JjW2ldLmJ1ZiwKIAkJCQkJIDAsIDAsIFdJRFRILCBIRUlHSFQs CiAJCQkJCSAwLCAwLCBXSURUSCwgSEVJR0hULCB0cnVlKTsKQEAgLTQ0MiwxMyArNTczLDEzIEBA IHN0YXRpYyB2b2lkIHRlc3QoZGF0YV90ICpkYXRhLCB1aW50MzJfdCB0aWxpbmcsIGJvb2wgdGVz dF9jY3MpCiAJc2NyYXRjaF9idWZfY29weShkYXRhLAogCQkJICZkc3QsIDAsIDAsIFdJRFRILCBI RUlHSFQsCiAJCQkgJnJlZiwgMCwgMCk7Ci0JZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpF KHNyYyk7IGkrKykKKwlmb3IgKGludCBpID0gMDsgaSA8IG51bV9zcmM7IGkrKykKIAkJc2NyYXRj aF9idWZfY29weShkYXRhLAogCQkJCSAmc3JjW2ldLmJ1ZiwgV0lEVEgvNCwgSEVJR0hULzQsIFdJ RFRILzItMiwgSEVJR0hULzItMiwKIAkJCQkgJnJlZiwgc3JjW2ldLngsIHNyY1tpXS55KTsKIAog CWlmIChvcHRfZHVtcF9wbmcpIHsKLQkJZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNy Yyk7IGkrKykKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fc3JjOyBpKyspCiAJCQlzY3JhdGNo X2J1Zl93cml0ZV90b19wbmcoZGF0YSwgJnNyY1tpXS5idWYsIHNyY1tpXS5maWxlbmFtZSk7CiAJ CXNjcmF0Y2hfYnVmX3dyaXRlX3RvX3BuZyhkYXRhLCAmZHN0LCAiZGVzdGluYXRpb24ucG5nIik7 CiAJCXNjcmF0Y2hfYnVmX3dyaXRlX3RvX3BuZyhkYXRhLCAmcmVmLCAicmVmZXJlbmNlLnBuZyIp OwpAQCAtNDY4LDI0ICs1OTksMjQgQEAgc3RhdGljIHZvaWQgdGVzdChkYXRhX3QgKmRhdGEsIHVp bnQzMl90IHRpbGluZywgYm9vbCB0ZXN0X2NjcykKIAkgKgkgfGRzdHxzcmN8CiAJICoJICAtLS0t LS0tCiAJICovCi0JaWYgKHRlc3RfY2NzKQorCWlmIChjY3NfbW9kaWZpZXIpCiAJCWRhdGEtPnJl bmRlcl9jb3B5KGRhdGEtPmJhdGNoLCBOVUxMLAogCQkJCSAgJmRzdCwgMCwgMCwgV0lEVEgsIEhF SUdIVCwKIAkJCQkgICZjY3MsIDAsIDApOwogCi0JZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9T SVpFKHNyYyk7IGkrKykKKwlmb3IgKGludCBpID0gMDsgaSA8IG51bV9zcmM7IGkrKykKIAkJZGF0 YS0+cmVuZGVyX2NvcHkoZGF0YS0+YmF0Y2gsIE5VTEwsCiAJCQkJICAmc3JjW2ldLmJ1ZiwgV0lE VEgvNCwgSEVJR0hULzQsIFdJRFRILzItMiwgSEVJR0hULzItMiwKLQkJCQkgIHRlc3RfY2NzID8g JmNjcyA6ICZkc3QsIHNyY1tpXS54LCBzcmNbaV0ueSk7CisJCQkJICBjY3NfbW9kaWZpZXIgPyAm Y2NzIDogJmRzdCwgc3JjW2ldLngsIHNyY1tpXS55KTsKIAotCWlmICh0ZXN0X2NjcykKKwlpZiAo Y2NzX21vZGlmaWVyKQogCQlkYXRhLT5yZW5kZXJfY29weShkYXRhLT5iYXRjaCwgTlVMTCwKIAkJ CQkgICZjY3MsIDAsIDAsIFdJRFRILCBIRUlHSFQsCiAJCQkJICAmZHN0LCAwLCAwKTsKIAogCWlm IChvcHRfZHVtcF9wbmcpewogCQlzY3JhdGNoX2J1Zl93cml0ZV90b19wbmcoZGF0YSwgJmRzdCwg InJlc3VsdC5wbmciKTsKLQkJaWYgKHRlc3RfY2NzKSB7CisJCWlmIChjY3NfbW9kaWZpZXIpIHsK IAkJCXNjcmF0Y2hfYnVmX3dyaXRlX3RvX3BuZyhkYXRhLCAmY2NzLCAiY29tcHJlc3NlZC5wbmci KTsKIAkJCXNjcmF0Y2hfYnVmX2F1eF93cml0ZV90b19wbmcoZGF0YSwgJmNjcywgImNvbXByZXNz ZWQtYXV4LnBuZyIpOwogCQl9CkBAIC01MDUsNyArNjM2LDcgQEAgc3RhdGljIHZvaWQgdGVzdChk YXRhX3QgKmRhdGEsIHVpbnQzMl90IHRpbGluZywgYm9vbCB0ZXN0X2NjcykKIAkJc2NyYXRjaF9i dWZfY2hlY2soZGF0YSwgJmRzdCwgJnJlZiwgV0lEVEggLSAxMCwgSEVJR0hUIC0gMTApOwogCX0K IAotCWlmICh0ZXN0X2NjcykKKwlpZiAoY2NzX21vZGlmaWVyKQogCQlzY3JhdGNoX2J1Zl9hdXhf Y2hlY2soZGF0YSwgJmNjcyk7CiB9CiAKQEAgLTU0NiwxOCArNjc3LDMxIEBAIGludCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKIAl9CiAKIAlpZ3Rfc3VidGVzdCgibGluZWFyIikKLQkJdGVz dCgmZGF0YSwgSTkxNV9USUxJTkdfTk9ORSwgZmFsc2UpOworCQl0ZXN0KCZkYXRhLCBJOTE1X1RJ TElOR19OT05FLCAwKTsKIAlpZ3Rfc3VidGVzdCgieC10aWxlZCIpCi0JCXRlc3QoJmRhdGEsIEk5 MTVfVElMSU5HX1gsIGZhbHNlKTsKKwkJdGVzdCgmZGF0YSwgSTkxNV9USUxJTkdfWCwgMCk7CiAJ aWd0X3N1YnRlc3QoInktdGlsZWQiKQotCQl0ZXN0KCZkYXRhLCBJOTE1X1RJTElOR19ZLCBmYWxz ZSk7CisJCXRlc3QoJmRhdGEsIEk5MTVfVElMSU5HX1ksIDApOworCWlndF9zdWJ0ZXN0KCJ5Zi10 aWxlZCIpCisJCXRlc3QoJmRhdGEsIEk5MTVfVElMSU5HX1lmLCAwKTsKIAogCWlndF9zdWJ0ZXN0 KCJ5LXRpbGVkLWNjcy10by1saW5lYXIiKQotCQl0ZXN0KCZkYXRhLCBJOTE1X1RJTElOR19OT05F LCB0cnVlKTsKKwkJdGVzdCgmZGF0YSwgSTkxNV9USUxJTkdfTk9ORSwgSTkxNV9USUxJTkdfWSk7 CiAJaWd0X3N1YnRlc3QoInktdGlsZWQtY2NzLXRvLXgtdGlsZWQiKQotCQl0ZXN0KCZkYXRhLCBJ OTE1X1RJTElOR19YLCB0cnVlKTsKKwkJdGVzdCgmZGF0YSwgSTkxNV9USUxJTkdfWCwgSTkxNV9U SUxJTkdfWSk7CiAJaWd0X3N1YnRlc3QoInktdGlsZWQtY2NzLXRvLXktdGlsZWQiKQotCQl0ZXN0 KCZkYXRhLCBJOTE1X1RJTElOR19ZLCB0cnVlKTsKKwkJdGVzdCgmZGF0YSwgSTkxNV9USUxJTkdf WSwgSTkxNV9USUxJTkdfWSk7CisJaWd0X3N1YnRlc3QoInktdGlsZWQtY2NzLXRvLXlmLXRpbGVk IikKKwkJdGVzdCgmZGF0YSwgSTkxNV9USUxJTkdfWWYsIEk5MTVfVElMSU5HX1kpOworCisJaWd0 X3N1YnRlc3QoInlmLXRpbGVkLWNjcy10by1saW5lYXIiKQorCQl0ZXN0KCZkYXRhLCBJOTE1X1RJ TElOR19OT05FLCBJOTE1X1RJTElOR19ZZik7CisJaWd0X3N1YnRlc3QoInlmLXRpbGVkLWNjcy10 by14LXRpbGVkIikKKwkJdGVzdCgmZGF0YSwgSTkxNV9USUxJTkdfWCwgSTkxNV9USUxJTkdfWWYp OworCWlndF9zdWJ0ZXN0KCJ5Zi10aWxlZC1jY3MtdG8teS10aWxlZCIpCisJCXRlc3QoJmRhdGEs IEk5MTVfVElMSU5HX1ksIEk5MTVfVElMSU5HX1lmKTsKKwlpZ3Rfc3VidGVzdCgieWYtdGlsZWQt Y2NzLXRvLXlmLXRpbGVkIikKKwkJdGVzdCgmZGF0YSwgSTkxNV9USUxJTkdfWWYsIEk5MTVfVElM SU5HX1lmKTsKIAogCWlndF9maXh0dXJlIHsKIAkJaW50ZWxfYmF0Y2hidWZmZXJfZnJlZShkYXRh LmJhdGNoKTsKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Qt ZGV2