From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Subject: [PATCH i-g-t v3 2/2] chamelium: Add support for VGA frame comparison testing Date: Wed, 19 Jul 2017 16:48:09 +0300 Message-ID: <20170719134809.8446-3-paul.kocialkowski@linux.intel.com> References: <20170706132614.4163-1-paul.kocialkowski@linux.intel.com> <20170719134809.8446-1-paul.kocialkowski@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id AD1DF6E51D for ; Wed, 19 Jul 2017 13:48:43 +0000 (UTC) In-Reply-To: <20170719134809.8446-1-paul.kocialkowski@linux.intel.com> 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 VGhpcyBhZGRzIHN1cHBvcnQgZm9yIFZHQSBmcmFtZSBjb21wYXJpc29uIHRlc3Rpbmcgd2l0aCB0 aGUgcmVmZXJlbmNlCmdlbmVyYXRlZCBmcm9tIGNhaXJvLiBUaGUgcmV0cmlldmVkIGZyYW1lIGZy b20gdGhlIGNoYW1lbGl1bSBpcyBmaXJzdApjcm9wcGVkLCBhcyBpdCBjb250YWlucyB0aGUgYmxh bmtpbmcgaW50ZXJ2YWxzLCB0aHJvdWdoIGEgZGVkaWNhdGVkCmhlbHBlci4gQW5vdGhlciBoZWxw ZXIgZnVuY3Rpb24gYXNzZXJ0cyB0aGF0IHRoZSBhbmFsb2cgZnJhbWUKbWF0Y2hlcyBvciBkdW1w IGl0IHRvIHBuZyBpZiBub3QuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEtvY2lhbGtvd3NraSA8cGF1 bC5rb2NpYWxrb3dza2lAbGludXguaW50ZWwuY29tPgotLS0KIGxpYi9pZ3RfY2hhbWVsaXVtLmMg fCAxNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LQogbGliL2lndF9jaGFtZWxpdW0uaCB8ICAgNyArKy0KIHRlc3RzL2NoYW1lbGl1bS5jICAgfCAg NTcgKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDIyMiBpbnNlcnRpb25zKCsp LCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY2hhbWVsaXVtLmMgYi9saWIv aWd0X2NoYW1lbGl1bS5jCmluZGV4IDM0OGQyMTc2Li5kY2Q4ODU1ZiAxMDA2NDQKLS0tIGEvbGli L2lndF9jaGFtZWxpdW0uYworKysgYi9saWIvaWd0X2NoYW1lbGl1bS5jCkBAIC05MzcsNiArOTM3 LDggQEAgc3RhdGljIGNhaXJvX3N1cmZhY2VfdCAqY29udmVydF9mcmFtZV9kdW1wX2FyZ2IzMihj b25zdCBzdHJ1Y3QgY2hhbWVsaXVtX2ZyYW1lX2QKIAlpbnQgdyA9IGR1bXAtPndpZHRoLCBoID0g ZHVtcC0+aGVpZ2h0OwogCXVpbnQzMl90ICpiaXRzX2JnciA9ICh1aW50MzJfdCAqKSBkdW1wLT5i Z3I7CiAJdW5zaWduZWQgY2hhciAqYml0c19hcmdiOworCXVuc2lnbmVkIGNoYXIgKmJpdHNfdGFy Z2V0OworCWludCBzaXplOwogCiAJaW1hZ2VfYmdyID0gcGl4bWFuX2ltYWdlX2NyZWF0ZV9iaXRz KAogCSAgICBQSVhNQU5fYjhnOHI4LCB3LCBoLCBiaXRzX2JnciwKQEAgLTk0Niw5ICs5NDgsMTMg QEAgc3RhdGljIGNhaXJvX3N1cmZhY2VfdCAqY29udmVydF9mcmFtZV9kdW1wX2FyZ2IzMihjb25z dCBzdHJ1Y3QgY2hhbWVsaXVtX2ZyYW1lX2QKIAogCWJpdHNfYXJnYiA9ICh1bnNpZ25lZCBjaGFy ICopIHBpeG1hbl9pbWFnZV9nZXRfZGF0YShpbWFnZV9hcmdiKTsKIAotCWR1bXBfc3VyZmFjZSA9 IGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKAotCSAgICBiaXRzX2FyZ2IsIENB SVJPX0ZPUk1BVF9BUkdCMzIsIHcsIGgsCi0JICAgIFBJWE1BTl9GT1JNQVRfQlBQKFBJWE1BTl94 OHI4ZzhiOCkgLyA4ICogdyk7CisJZHVtcF9zdXJmYWNlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9j cmVhdGUoCisJICAgIENBSVJPX0ZPUk1BVF9BUkdCMzIsIHcsIGgpOworCisJYml0c190YXJnZXQg PSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKGR1bXBfc3VyZmFjZSk7CisJc2l6ZSA9IGNh aXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShkdW1wX3N1cmZhY2UpICogaDsKKwltZW1jcHko Yml0c190YXJnZXQsIGJpdHNfYXJnYiwgc2l6ZSk7CisJY2Fpcm9fc3VyZmFjZV9tYXJrX2RpcnR5 KGR1bXBfc3VyZmFjZSk7CiAKIAlwaXhtYW5faW1hZ2VfdW5yZWYoaW1hZ2VfYXJnYik7CiAKQEAg LTEwNTQsNiArMTA2MCwxNTQgQEAgdm9pZCBjaGFtZWxpdW1fYXNzZXJ0X2NyY19lcV9vcl9kdW1w KHN0cnVjdCBjaGFtZWxpdW0gKmNoYW1lbGl1bSwKIH0KIAogLyoqCisgKiBjaGFtZWxpdW1fYXNz ZXJ0X2FuYWxvZ19mcmFtZV9tYXRjaF9vcl9kdW1wOgorICogQGNoYW1lbGl1bTogVGhlIGNoYW1l bGl1bSBpbnN0YW5jZSB0aGUgZnJhbWUgZHVtcCBiZWxvbmdzIHRvCisgKiBAZnJhbWU6IFRoZSBj aGFtZWxpdW0gZnJhbWUgZHVtcCB0byBtYXRjaAorICogQGZiOiBwb2ludGVyIHRvIGFuICNpZ3Rf ZmIgc3RydWN0dXJlCisgKgorICogQXNzZXJ0cyB0aGF0IHRoZSBwcm92aWRlZCBjYXB0dXJlZCBm cmFtZSBtYXRjaGVzIHRoZSByZWZlcmVuY2UgZnJhbWUgZnJvbQorICogdGhlIGZyYW1lYnVmZmVy LiBJZiB0aGV5IGRvIG5vdCwgdGhpcyBzYXZlcyB0aGUgcmVmZXJlbmNlIGFuZCBjYXB0dXJlZCBm cmFtZXMKKyAqIHRvIGEgcG5nIGZpbGUuCisgKi8KK3ZvaWQgY2hhbWVsaXVtX2Fzc2VydF9hbmFs b2dfZnJhbWVfbWF0Y2hfb3JfZHVtcChzdHJ1Y3QgY2hhbWVsaXVtICpjaGFtZWxpdW0sCisJCQkJ CQkgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LAorCQkJCQkJIGNvbnN0IHN0cnVjdCBjaGFt ZWxpdW1fZnJhbWVfZHVtcCAqZnJhbWUsCisJCQkJCQkgc3RydWN0IGlndF9mYiAqZmIpCit7CisJ Y2Fpcm9fc3VyZmFjZV90ICpyZWZlcmVuY2U7CisJY2Fpcm9fc3VyZmFjZV90ICpjYXB0dXJlOwor CWlndF9jcmNfdCAqcmVmZXJlbmNlX2NyYzsKKwlpZ3RfY3JjX3QgKmNhcHR1cmVfY3JjOworCWNo YXIgKnJlZmVyZW5jZV9zdWZmaXg7CisJY2hhciAqY2FwdHVyZV9zdWZmaXg7CisJYm9vbCBtYXRj aDsKKworCS8qIEdyYWIgdGhlIHJlZmVyZW5jZSBmcmFtZSBmcm9tIGZyYW1lYnVmZmVyICovCisJ cmVmZXJlbmNlID0gaWd0X2dldF9jYWlyb19zdXJmYWNlKGNoYW1lbGl1bS0+ZHJtX2ZkLCBmYik7 CisKKwkvKiBHcmFiIHRoZSBjYXB0dXJlZCBmcmFtZSBmcm9tIGNoYW1lbGl1bSAqLworCWNhcHR1 cmUgPSBjb252ZXJ0X2ZyYW1lX2R1bXBfYXJnYjMyKGZyYW1lKTsKKworCW1hdGNoID0gaWd0X2No ZWNrX2FuYWxvZ19mcmFtZV9tYXRjaChyZWZlcmVuY2UsIGNhcHR1cmUpOworCWlmICghbWF0Y2gg JiYgaWd0X2ZyYW1lX2R1bXBfaXNfZW5hYmxlZCgpKSB7CisJCXJlZmVyZW5jZV9jcmMgPSBjaGFt ZWxpdW1fY2FsY3VsYXRlX2ZiX2NyYyhjaGFtZWxpdW0tPmRybV9mZCwKKwkJCQkJCQkgICBmYik7 CisJCWNhcHR1cmVfY3JjID0gY2hhbWVsaXVtX2dldF9jcmNfZm9yX2FyZWEoY2hhbWVsaXVtLCBw b3J0LCAwLCAwLAorCQkJCQkJCSAwLCAwKTsKKworCQlyZWZlcmVuY2Vfc3VmZml4ID0gaWd0X2Ny Y190b19zdHJpbmdfZXh0ZW5kZWQocmVmZXJlbmNlX2NyYywKKwkJCQkJCQkgICAgICAnLScsIDIp OworCQljYXB0dXJlX3N1ZmZpeCA9IGlndF9jcmNfdG9fc3RyaW5nX2V4dGVuZGVkKGNhcHR1cmVf Y3JjLCAnLScsCisJCQkJCQkJICAgIDIpOworCisJCS8qIFdyaXRlIHJlZmVyZW5jZSBhbmQgY2Fw dHVyZSBmcmFtZXMgdG8gcG5nICovCisJCWlndF93cml0ZV9jb21wYXJlZF9mcmFtZXNfdG9fcG5n KHJlZmVyZW5jZSwgY2FwdHVyZSwKKwkJCQkJCSByZWZlcmVuY2Vfc3VmZml4LAorCQkJCQkJIGNh cHR1cmVfc3VmZml4KTsKKworCQlmcmVlKHJlZmVyZW5jZV9zdWZmaXgpOworCQlmcmVlKGNhcHR1 cmVfc3VmZml4KTsKKwl9CisKKwljYWlyb19zdXJmYWNlX2Rlc3Ryb3koY2FwdHVyZSk7CisKKwlp Z3RfYXNzZXJ0KG1hdGNoKTsKK30KKworCisvKioKKyAqIGNoYW1lbGl1bV9hbmFsb2dfZnJhbWVf Y3JvcDoKKyAqIEBjaGFtZWxpdW06IFRoZSBDaGFtZWxpdW0gaW5zdGFuY2UgdG8gdXNlCisgKiBA ZHVtcDogVGhlIGNoYW1lbGl1bSBmcmFtZSBkdW1wIHRvIGNyb3AKKyAqIEB3aWR0aDogVGhlIGNy b3BwZWQgZnJhbWUgd2lkdGgKKyAqIEBoZWlnaHQ6IFRoZSBjcm9wcGVkIGZyYW1lIGhlaWdodAor ICoKKyAqIERldGVjdHMgdGhlIGNvcm5lcnMgb2YgYSBjaGFtZWxpdW0gZnJhbWUgYW5kIGNyb3Bz IGl0IHRvIHRoZSByZXF1ZXN0ZWQKKyAqIHdpZHRoL2hlaWdodC4gVGhpcyBpcyB1c2VmdWwgZm9y IFZHQSBmcmFtZSBkdW1wcyB0aGF0IGFsc28gY29udGFpbiB0aGUKKyAqIHBpeGVscyBkdW1wZWQg ZHVyaW5nIHRoZSBibGFua2luZyBpbnRlcnZhbHMuCisgKgorICogVGhlIGRldGVjdGlvbiBpcyBk b25lIG9uIGEgYnJpZ2h0bmVzcy10aHJlc2hvbGQtYmFzaXMsIHRoYXQgaXMgYWRhcHRlZAorICog dG8gdGhlIHJlZmVyZW5jZSBmcmFtZSB1c2VkIGJ5IGktZy10LiBJdCBtYXkgbm90IGJlIGFzIHJl bGV2YW50IGZvciBvdGhlcgorICogZnJhbWVzLgorICovCit2b2lkIGNoYW1lbGl1bV9jcm9wX2Fu YWxvZ19mcmFtZShzdHJ1Y3QgY2hhbWVsaXVtX2ZyYW1lX2R1bXAgKmR1bXAsIGludCB3aWR0aCwK KwkJCQkgaW50IGhlaWdodCkKK3sKKwl1bnNpZ25lZCBjaGFyICpiZ3I7CisJdW5zaWduZWQgY2hh ciAqcDsKKwl1bnNpZ25lZCBjaGFyICpxOworCWludCB0b3AsIGxlZnQ7CisJaW50IHgsIHksIHh4 LCB5eTsKKwlpbnQgc2NvcmU7CisKKwlpZiAoZHVtcC0+d2lkdGggPT0gd2lkdGggJiYgZHVtcC0+ aGVpZ2h0ID09IGhlaWdodCkKKwkJcmV0dXJuOworCisJLyogU3RhcnQgd2l0aCB0aGUgbW9zdCBi b3R0b20tcmlnaHQgcG9zaXRpb24uICovCisJdG9wID0gZHVtcC0+aGVpZ2h0IC0gaGVpZ2h0Owor CWxlZnQgPSBkdW1wLT53aWR0aCAtIHdpZHRoOworCisJaWd0X2Fzc2VydCh0b3AgPj0gMCAmJiBs ZWZ0ID49IDApOworCisJaWd0X2RlYnVnKCJDcm9wcGluZyBhbmFsb2cgZnJhbWUgZnJvbSAlZHgl ZCB0byAlZHglZFxuIiwgZHVtcC0+d2lkdGgsCisJCSAgZHVtcC0+aGVpZ2h0LCB3aWR0aCwgaGVp Z2h0KTsKKworCS8qIERldGVjdCB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSBmcmFtZS4gKi8K Kwlmb3IgKHggPSAwOyB4IDwgZHVtcC0+d2lkdGg7IHgrKykgeworCQlmb3IgKHkgPSAwOyB5IDwg ZHVtcC0+aGVpZ2h0OyB5KyspIHsKKwkJCXAgPSAmZHVtcC0+YmdyWyh4ICsgeSAqIGR1bXAtPndp ZHRoKSAqIDNdOworCisJCQkvKiBEZXRlY3Qgc2lnbmlmaWNhbnRseSBicmlnaHQgcGl4ZWxzLiAq LworCQkJaWYgKHBbMF0gPCA1MCAmJiBwWzFdIDwgNTAgJiYgcFsyXSA8IDUwKQorCQkJCWNvbnRp bnVlOworCisJCQkvKgorCQkJICogTWFrZSBzdXJlIGNsb3NlLWJ5IHBpeGVscyBhcmUgYWxzbyBz aWduaWZpY2FudGx5CisJCQkgKiBicmlnaHQuCisJCQkgKi8KKwkJCXNjb3JlID0gMDsKKwkJCWZv ciAoeHggPSB4OyB4eCA8IHggKyAxMDsgeHgrKykgeworCQkJCWZvciAoeXkgPSB5OyB5eSA8IHkg KyAxMDsgeXkrKykgeworCQkJCQlwID0gJmR1bXAtPmJnclsoeHggKyB5eSAqIGR1bXAtPndpZHRo KSAqIDNdOworCisJCQkJCWlmIChwWzBdID4gNTAgJiYgcFsxXSA+IDUwICYmIHBbMl0gPiA1MCkK KwkJCQkJCXNjb3JlKys7CisJCQkJfQorCQkJfQorCisJCQkvKiBOb3QgZW5vdWdoIHBpeGVscyBh cmUgc2lnbmlmaWNhbnRseSBicmlnaHQuICovCisJCQlpZiAoc2NvcmUgPCAyNSkKKwkJCQljb250 aW51ZTsKKworCQkJaWYgKHggPCBsZWZ0KQorCQkJCWxlZnQgPSB4OworCisJCQlpZiAoeSA8IHRv cCkKKwkJCQl0b3AgPSB5OworCisJCQlpZiAobGVmdCA9PSB4IHx8IHRvcCA9PSB5KQorCQkJCWNv bnRpbnVlOworCQl9CisJfQorCisJaWd0X2RlYnVnKCJEZXRlY3RlZCBhbmFsb2cgZnJhbWUgZWRn ZXMgYXQgJWR4JWRcbiIsIGxlZnQsIHRvcCk7CisKKwkvKiBDcm9wIHRoZSBmcmFtZSBnaXZlbiB0 aGUgZGV0ZWN0ZWQgdG9wLWxlZnQgY29ybmVyLiAqLworCWJnciA9IG1hbGxvYyh3aWR0aCAqIGhl aWdodCAqIDMpOworCisJZm9yICh5ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7CisJCXAgPSAmZHVt cC0+YmdyWyhsZWZ0ICsgKHRvcCArIHkpICogZHVtcC0+d2lkdGgpICogM107CisJCXEgPSAmYmdy Wyh5ICogd2lkdGgpICogM107CisJCW1lbWNweShxLCBwLCB3aWR0aCAqIDMpOworCX0KKworCWZy ZWUoZHVtcC0+YmdyKTsKKwlkdW1wLT53aWR0aCA9IHdpZHRoOworCWR1bXAtPmhlaWdodCA9IGhl aWdodDsKKwlkdW1wLT5iZ3IgPSBiZ3I7Cit9CisKKy8qKgogICogY2hhbWVsaXVtX2dldF9mcmFt ZV9saW1pdDoKICAqIEBjaGFtZWxpdW06IFRoZSBDaGFtZWxpdW0gaW5zdGFuY2UgdG8gdXNlCiAg KiBAcG9ydDogVGhlIHBvcnQgdG8gY2hlY2sgdGhlIGZyYW1lIGxpbWl0IG9uCkBAIC0xNDgwLDcg KzE2MzQsNyBAQCBpZ3RfY29uc3RydWN0b3IgewogCS8qIEZyYW1lIGR1bXBzIGNhbiBiZSBsYXJn ZSwgc28gd2UgbmVlZCB0byBiZSBhYmxlIHRvIGhhbmRsZSB2ZXJ5IGxhcmdlCiAJICogcmVzcG9u c2VzCiAJICoKLQkgKiBMaW1pdCBoZXJlIGlzIDEwTUIKKwkgKiBMaW1pdCBoZXJlIGlzIDE1TUIK IAkgKi8KLQl4bWxycGNfbGltaXRfc2V0KFhNTFJQQ19YTUxfU0laRV9MSU1JVF9JRCwgMTA0ODU3 NjApOworCXhtbHJwY19saW1pdF9zZXQoWE1MUlBDX1hNTF9TSVpFX0xJTUlUX0lELCAxNTcyODY0 MCk7CiB9CmRpZmYgLS1naXQgYS9saWIvaWd0X2NoYW1lbGl1bS5oIGIvbGliL2lndF9jaGFtZWxp dW0uaAppbmRleCA4MGFmY2FmYS4uMmEwZmEyMzQgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfY2hhbWVs aXVtLmgKKysrIGIvbGliL2lndF9jaGFtZWxpdW0uaApAQCAtMTAxLDcgKzEwMSw2IEBAIGludCBj aGFtZWxpdW1fZ2V0X2NhcHR1cmVkX2ZyYW1lX2NvdW50KHN0cnVjdCBjaGFtZWxpdW0gKmNoYW1l bGl1bSk7CiBpbnQgY2hhbWVsaXVtX2dldF9mcmFtZV9saW1pdChzdHJ1Y3QgY2hhbWVsaXVtICpj aGFtZWxpdW0sCiAJCQkgICAgICBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCiAJCQkgICAg ICBpbnQgdywgaW50IGgpOwotCiB2b2lkIGNoYW1lbGl1bV9hc3NlcnRfZnJhbWVfZXEoY29uc3Qg c3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtLAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBjaGFt ZWxpdW1fZnJhbWVfZHVtcCAqZHVtcCwKIAkJCSAgICAgICBzdHJ1Y3QgaWd0X2ZiICpmYik7CkBA IC0xMDksNiArMTA4LDEyIEBAIHZvaWQgY2hhbWVsaXVtX2Fzc2VydF9jcmNfZXFfb3JfZHVtcChz dHJ1Y3QgY2hhbWVsaXVtICpjaGFtZWxpdW0sCiAJCQkJICAgICBpZ3RfY3JjX3QgKnJlZmVyZW5j ZV9jcmMsCiAJCQkJICAgICBpZ3RfY3JjX3QgKmNhcHR1cmVfY3JjLCBzdHJ1Y3QgaWd0X2ZiICpm YiwKIAkJCQkgICAgIGludCBpbmRleCk7Cit2b2lkIGNoYW1lbGl1bV9hc3NlcnRfYW5hbG9nX2Zy YW1lX21hdGNoX29yX2R1bXAoc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtLAorCQkJCQkJIHN0 cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCwKKwkJCQkJCSBjb25zdCBzdHJ1Y3QgY2hhbWVsaXVt X2ZyYW1lX2R1bXAgKmZyYW1lLAorCQkJCQkJIHN0cnVjdCBpZ3RfZmIgKmZiKTsKK3ZvaWQgY2hh bWVsaXVtX2Nyb3BfYW5hbG9nX2ZyYW1lKHN0cnVjdCBjaGFtZWxpdW1fZnJhbWVfZHVtcCAqZHVt cCwgaW50IHdpZHRoLAorCQkJCSBpbnQgaGVpZ2h0KTsKIHZvaWQgY2hhbWVsaXVtX2Rlc3Ryb3lf ZnJhbWVfZHVtcChzdHJ1Y3QgY2hhbWVsaXVtX2ZyYW1lX2R1bXAgKmR1bXApOwogCiAjZW5kaWYg LyogSUdUX0NIQU1FTElVTV9IICovCmRpZmYgLS1naXQgYS90ZXN0cy9jaGFtZWxpdW0uYyBiL3Rl c3RzL2NoYW1lbGl1bS5jCmluZGV4IDM0NDQ4MTUyLi4zM2VjYzJlNyAxMDA2NDQKLS0tIGEvdGVz dHMvY2hhbWVsaXVtLmMKKysrIGIvdGVzdHMvY2hhbWVsaXVtLmMKQEAgLTM5OSw2ICszOTksMTAg QEAgZW5hYmxlX291dHB1dChkYXRhX3QgKmRhdGEsCiAJCQkJCSAgICBCUk9BRENBU1RfUkdCX0ZV TEwpOwogCiAJaWd0X2Rpc3BsYXlfY29tbWl0KGRpc3BsYXkpOworCisJaWYgKGNoYW1lbGl1bV9w b3J0X2dldF90eXBlKHBvcnQpID09IERSTV9NT0RFX0NPTk5FQ1RPUl9WR0EpCisJCXVzbGVlcCgy NTAwMDApOworCiAJY2hhbWVsaXVtX3BvcnRfd2FpdF92aWRlb19pbnB1dF9zdGFibGUoZGF0YS0+ Y2hhbWVsaXVtLCBwb3J0LAogCQkJCQkgICAgICAgSE9UUExVR19USU1FT1VUKTsKIApAQCAtNTMz LDYgKzUzNyw1NiBAQCB0ZXN0X2Rpc3BsYXlfZnJhbWVfZHVtcChkYXRhX3QgKmRhdGEsIHN0cnVj dCBjaGFtZWxpdW1fcG9ydCAqcG9ydCkKIH0KIAogc3RhdGljIHZvaWQKK3Rlc3RfYW5hbG9nX2Zy YW1lX2R1bXAoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQpCit7CisJ aWd0X2Rpc3BsYXlfdCBkaXNwbGF5OworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCWlndF9wbGFu ZV90ICpwcmltYXJ5OworCXN0cnVjdCBpZ3RfZmIgZmI7CisJc3RydWN0IGNoYW1lbGl1bV9mcmFt ZV9kdW1wICpmcmFtZTsKKwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7CisJZHJtTW9kZUNvbm5lY3Rv ciAqY29ubmVjdG9yOworCWludCBmYl9pZCwgaTsKKworCW91dHB1dCA9IHByZXBhcmVfb3V0cHV0 KGRhdGEsICZkaXNwbGF5LCBwb3J0KTsKKwljb25uZWN0b3IgPSBjaGFtZWxpdW1fcG9ydF9nZXRf Y29ubmVjdG9yKGRhdGEtPmNoYW1lbGl1bSwgcG9ydCwgZmFsc2UpOworCXByaW1hcnkgPSBpZ3Rf b3V0cHV0X2dldF9wbGFuZV90eXBlKG91dHB1dCwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CisJ aWd0X2Fzc2VydChwcmltYXJ5KTsKKworCWZvciAoaSA9IDA7IGkgPCBjb25uZWN0b3ItPmNvdW50 X21vZGVzOyBpKyspIHsKKwkJbW9kZSA9ICZjb25uZWN0b3ItPm1vZGVzW2ldOworCisJCWZiX2lk ID0gaWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJuX2ZiKGRhdGEtPmRybV9mZCwKKwkJCQkJCSAgICBt b2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXksCisJCQkJCQkgICAgRFJNX0ZPUk1BVF9YUkdC ODg4OCwKKwkJCQkJCSAgICBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLAorCQkJCQkJICAgIDAs IDAsIDAsICZmYik7CisJCWlndF9hc3NlcnQoZmJfaWQgPiAwKTsKKworCQllbmFibGVfb3V0cHV0 KGRhdGEsIHBvcnQsIG91dHB1dCwgbW9kZSwgJmZiKTsKKworCQlpZ3RfZGVidWcoIlJlYWRpbmcg ZnJhbWUgZHVtcHMgZnJvbSBDaGFtZWxpdW0uLi5cbiIpOworCisJCWZyYW1lID0gY2hhbWVsaXVt X3BvcnRfZHVtcF9waXhlbHMoZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LCAwLCAwLAorCQkJCQkJICAg MCwgMCk7CisKKwkJY2hhbWVsaXVtX2Nyb3BfYW5hbG9nX2ZyYW1lKGZyYW1lLCBtb2RlLT5oZGlz cGxheSwKKwkJCQkJICAgIG1vZGUtPnZkaXNwbGF5KTsKKworCQljaGFtZWxpdW1fYXNzZXJ0X2Fu YWxvZ19mcmFtZV9tYXRjaF9vcl9kdW1wKGRhdGEtPmNoYW1lbGl1bSwKKwkJCQkJCQkgICAgcG9y dCwgZnJhbWUsICZmYik7CisKKwkJY2hhbWVsaXVtX2Rlc3Ryb3lfZnJhbWVfZHVtcChmcmFtZSk7 CisKKwkJZGlzYWJsZV9vdXRwdXQoZGF0YSwgcG9ydCwgb3V0cHV0KTsKKwkJaWd0X3JlbW92ZV9m YihkYXRhLT5kcm1fZmQsICZmYik7CisJfQorCisJZHJtTW9kZUZyZWVDb25uZWN0b3IoY29ubmVj dG9yKTsKKwlpZ3RfZGlzcGxheV9maW5pKCZkaXNwbGF5KTsKK30KKworc3RhdGljIHZvaWQKIHRl c3RfaHBkX3dpdGhvdXRfZGRjKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpw b3J0KQogewogCXN0cnVjdCB1ZGV2X21vbml0b3IgKm1vbiA9IGlndF93YXRjaF9ob3RwbHVnKCk7 CkBAIC03NzUsNiArODI5LDkgQEAgaWd0X21haW4KIAogCQljb25uZWN0b3Jfc3VidGVzdCgidmdh LWhwZC13aXRob3V0LWRkYyIsIFZHQSkKIAkJCXRlc3RfaHBkX3dpdGhvdXRfZGRjKCZkYXRhLCBw b3J0KTsKKworCQljb25uZWN0b3Jfc3VidGVzdCgidmdhLWZyYW1lLWR1bXAiLCBWR0EpCisJCQl0 ZXN0X2FuYWxvZ19mcmFtZV9kdW1wKCZkYXRhLCBwb3J0KTsKIAl9CiAKIAlpZ3Rfc3VidGVzdF9n cm91cCB7Ci0tIAoyLjEzLjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=