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 BC12E89241 for ; Tue, 23 Apr 2019 13:04:55 +0000 (UTC) From: Simon Ser Date: Tue, 23 Apr 2019 16:04:56 +0300 Message-Id: <20190423130459.31594-6-simon.ser@intel.com> In-Reply-To: <20190423130459.31594-1-simon.ser@intel.com> References: <20190423130459.31594-1-simon.ser@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v7 5/8] tests/kms_chamelium: test we receive a signal from both audio channels 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: VGhpcyBjb21taXQgdXBkYXRlcyB0aGUgYXVkaW8gdGVzdCB0byBtYWtlIHN1cmUgd2UgcmVjZWl2 ZSBhIHNpZ25hbCBmcm9tIGJvdGgKYXVkaW8gY2hhbm5lbHMuIEhvd2V2ZXIgdGhpcyBjb21taXQg ZG9lc24ndCBjaGVjayB0aGF0IGxlZnQgYW5kIHJpZ2h0IGNoYW5uZWxzCmFyZSBub3Qgc3dhcHBl ZC4gU3VjaCBhIGNoZWNrIHJlcXVpcmVzIHNvbWUgbW9yZSB3b3JrIChiZWNhdXNlIHRoZSBDaGFt ZWxpdW0KZGV2aWNlIGRvZXMgc3dhcCBsZWZ0IGFuZCByaWdodCBjaGFubmVscykgYW5kIHdpbGwg YmUgaW1wbGVtZW50ZWQgaW4gYSBmdXR1cmUKY29tbWl0LgoKVGhpcyBjb21taXQgYWRkcyBhIG5l dyBjaGFubmVsIGFyZ3VtZW50IHRvIGF1ZGlvX3NpZ25hbF9hZGRfZnJlcXVlbmN5LCB0byBhZGQK YSBmcmVxdWVuY3kgdG8gYSBzaW5nbGUgY2hhbm5lbCBvbmx5LgoKU29tZSBsaWdodCByZWZhY3Rv cmluZyBoYXMgYmVlbiBwZXJmb3JtZWQ6IGEgcHJvcGVyIGF1ZGlvX3NpZ25hbF9maW5pCmZ1bmN0 aW9uIGhhcyBiZWVuIGludHJvZHVjZWQgYW5kIHNpemVfdCBpbiBub3cgdXNlZCB3aGVuIGl0IHNo b3VsZCBiZS4KClNpZ25lZC1vZmYtYnk6IFNpbW9uIFNlciA8c2ltb24uc2VyQGludGVsLmNvbT4K LS0tCiBsaWIvaWd0X2F1ZGlvLmMgICAgICAgfCAxMTQgKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tCiBsaWIvaWd0X2F1ZGlvLmggICAgICAgfCAgMTEgKystLQogdGVz dHMva21zX2NoYW1lbGl1bS5jIHwgIDU4ICsrKysrKysrKysrKystLS0tLS0tLQogMyBmaWxlcyBj aGFuZ2VkLCAxMTEgaW5zZXJ0aW9ucygrKSwgNzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bGliL2lndF9hdWRpby5jIGIvbGliL2lndF9hdWRpby5jCmluZGV4IDU4MjJmZWQ3Li41YjA4NjBl NiAxMDA2NDQKLS0tIGEvbGliL2lndF9hdWRpby5jCisrKyBiL2xpYi9pZ3RfYXVkaW8uYwpAQCAt MzUsNyArMzUsNyBAQAogI2luY2x1ZGUgImlndF9hdWRpby5oIgogI2luY2x1ZGUgImlndF9jb3Jl LmgiCiAKLSNkZWZpbmUgRlJFUVNfTUFYCTgKKyNkZWZpbmUgRlJFUVNfTUFYIDY0CiAKIC8qKgog ICogU0VDVElPTjppZ3RfYXVkaW8KQEAgLTQ5LDkgKzQ5LDEwIEBACiAKIHN0cnVjdCBhdWRpb19z aWduYWxfZnJlcSB7CiAJaW50IGZyZXE7CisJaW50IGNoYW5uZWw7CiAKLQlzaG9ydCAqcGVyaW9k OwotCWludCBmcmFtZXM7CisJaW50MTZfdCAqcGVyaW9kOworCXNpemVfdCBwZXJpb2RfbGVuOwog CWludCBvZmZzZXQ7CiB9OwogCkBAIC02MCw3ICs2MSw3IEBAIHN0cnVjdCBhdWRpb19zaWduYWwg ewogCWludCBzYW1wbGluZ19yYXRlOwogCiAJc3RydWN0IGF1ZGlvX3NpZ25hbF9mcmVxIGZyZXFz W0ZSRVFTX01BWF07Ci0JaW50IGZyZXFzX2NvdW50OworCXNpemVfdCBmcmVxc19jb3VudDsKIH07 CiAKIC8qKgpAQCAtODksMTcgKzkwLDIxIEBAIHN0cnVjdCBhdWRpb19zaWduYWwgKmF1ZGlvX3Np Z25hbF9pbml0KGludCBjaGFubmVscywgaW50IHNhbXBsaW5nX3JhdGUpCiAgKiBhdWRpb19zaWdu YWxfYWRkX2ZyZXF1ZW5jeToKICAqIEBzaWduYWw6IFRoZSB0YXJnZXQgc2lnbmFsIHN0cnVjdHVy ZQogICogQGZyZXF1ZW5jeTogVGhlIGZyZXF1ZW5jeSB0byBhZGQgdG8gdGhlIHNpZ25hbAorICog QGNoYW5uZWw6IFRoZSBjaGFubmVsIHRvIGFkZCB0aGlzIGZyZXF1ZW5jeSB0bywgb3IgLTEgdG8g YWRkIGl0IHRvIGFsbAorICogY2hhbm5lbHMKICAqCiAgKiBBZGQgYSBmcmVxdWVuY3kgdG8gdGhl IHNpZ25hbC4KICAqCiAgKiBSZXR1cm5zOiBBbiBpbnRlZ2VyIGVxdWFsIHRvIHplcm8gZm9yIHN1 Y2Nlc3MgYW5kIG5lZ2F0aXZlIGZvciBmYWlsdXJlCiAgKi8KLWludCBhdWRpb19zaWduYWxfYWRk X2ZyZXF1ZW5jeShzdHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWwsIGludCBmcmVxdWVuY3kpCitp bnQgYXVkaW9fc2lnbmFsX2FkZF9mcmVxdWVuY3koc3RydWN0IGF1ZGlvX3NpZ25hbCAqc2lnbmFs LCBpbnQgZnJlcXVlbmN5LAorCQkJCWludCBjaGFubmVsKQogewotCWludCBpbmRleCA9IHNpZ25h bC0+ZnJlcXNfY291bnQ7CisJc2l6ZV90IGluZGV4ID0gc2lnbmFsLT5mcmVxc19jb3VudDsKKwlz dHJ1Y3QgYXVkaW9fc2lnbmFsX2ZyZXEgKmZyZXE7CiAKLQlpZiAoaW5kZXggPT0gRlJFUVNfTUFY KQotCQlyZXR1cm4gLTE7CisJaWd0X2Fzc2VydChpbmRleCA8IEZSRVFTX01BWCk7CisJaWd0X2Fz c2VydChjaGFubmVsIDwgc2lnbmFsLT5jaGFubmVscyk7CiAKIAkvKiBTdGF5IHdpdGhpbiB0aGUg TnlxdWlzdOKAk1NoYW5ub24gc2FtcGxpbmcgdGhlb3JlbS4gKi8KIAlpZiAoZnJlcXVlbmN5ID4g c2lnbmFsLT5zYW1wbGluZ19yYXRlIC8gMikgewpAQCAtMTE0LDExICsxMTksMTQgQEAgaW50IGF1 ZGlvX3NpZ25hbF9hZGRfZnJlcXVlbmN5KHN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbCwgaW50 IGZyZXF1ZW5jeSkKIAkgKi8KIAlmcmVxdWVuY3kgPSBzaWduYWwtPnNhbXBsaW5nX3JhdGUgLyAo c2lnbmFsLT5zYW1wbGluZ19yYXRlIC8gZnJlcXVlbmN5KTsKIAotCWlndF9kZWJ1ZygiQWRkaW5n IHRlc3QgZnJlcXVlbmN5ICVkXG4iLCBmcmVxdWVuY3kpOworCWlndF9kZWJ1ZygiQWRkaW5nIHRl c3QgZnJlcXVlbmN5ICVkIHRvIGNoYW5uZWwgJWRcbiIsCisJCSAgZnJlcXVlbmN5LCBjaGFubmVs KTsKKworCWZyZXEgPSAmc2lnbmFsLT5mcmVxc1tpbmRleF07CisJbWVtc2V0KGZyZXEsIDAsIHNp emVvZigqZnJlcSkpOworCWZyZXEtPmZyZXEgPSBmcmVxdWVuY3k7CisJZnJlcS0+Y2hhbm5lbCA9 IGNoYW5uZWw7CiAKLQlzaWduYWwtPmZyZXFzW2luZGV4XS5mcmVxID0gZnJlcXVlbmN5OwotCXNp Z25hbC0+ZnJlcXNbaW5kZXhdLmZyYW1lcyA9IDA7Ci0Jc2lnbmFsLT5mcmVxc1tpbmRleF0ub2Zm c2V0ID0gMDsKIAlzaWduYWwtPmZyZXFzX2NvdW50Kys7CiAKIAlyZXR1cm4gMDsKQEAgLTEzNiwy MCArMTQ0LDE3IEBAIHZvaWQgYXVkaW9fc2lnbmFsX3N5bnRoZXNpemUoc3RydWN0IGF1ZGlvX3Np Z25hbCAqc2lnbmFsKQogewogCWludDE2X3QgKnBlcmlvZDsKIAlkb3VibGUgdmFsdWU7Ci0JaW50 IGZyYW1lczsKKwlzaXplX3QgcGVyaW9kX2xlbjsKIAlpbnQgZnJlcTsKIAlpbnQgaSwgajsKIAot CWlmIChzaWduYWwtPmZyZXFzX2NvdW50ID09IDApCi0JCXJldHVybjsKLQogCWZvciAoaSA9IDA7 IGkgPCBzaWduYWwtPmZyZXFzX2NvdW50OyBpKyspIHsKIAkJZnJlcSA9IHNpZ25hbC0+ZnJlcXNb aV0uZnJlcTsKLQkJZnJhbWVzID0gc2lnbmFsLT5zYW1wbGluZ19yYXRlIC8gZnJlcTsKKwkJcGVy aW9kX2xlbiA9IHNpZ25hbC0+c2FtcGxpbmdfcmF0ZSAvIGZyZXE7CiAKLQkJcGVyaW9kID0gY2Fs bG9jKDEsIGZyYW1lcyAqIHNpemVvZihzaG9ydCkpOworCQlwZXJpb2QgPSBjYWxsb2MoMSwgcGVy aW9kX2xlbiAqIHNpemVvZihpbnQxNl90KSk7CiAKLQkJZm9yIChqID0gMDsgaiA8IGZyYW1lczsg aisrKSB7CisJCWZvciAoaiA9IDA7IGogPCBwZXJpb2RfbGVuOyBqKyspIHsKIAkJCXZhbHVlID0g Mi4wICogTV9QSSAqIGZyZXEgLyBzaWduYWwtPnNhbXBsaW5nX3JhdGUgKiBqOwogCQkJdmFsdWUg PSBzaW4odmFsdWUpICogSU5UMTZfTUFYIC8gc2lnbmFsLT5mcmVxc19jb3VudDsKIApAQCAtMTU3 LDI2ICsxNjIsMzQgQEAgdm9pZCBhdWRpb19zaWduYWxfc3ludGhlc2l6ZShzdHJ1Y3QgYXVkaW9f c2lnbmFsICpzaWduYWwpCiAJCX0KIAogCQlzaWduYWwtPmZyZXFzW2ldLnBlcmlvZCA9IHBlcmlv ZDsKLQkJc2lnbmFsLT5mcmVxc1tpXS5mcmFtZXMgPSBmcmFtZXM7CisJCXNpZ25hbC0+ZnJlcXNb aV0ucGVyaW9kX2xlbiA9IHBlcmlvZF9sZW47CiAJfQogfQogCiAvKioKLSAqIGF1ZGlvX3NpZ25h bF9zeW50aGVzaXplOgorICogYXVkaW9fc2lnbmFsX2Zpbmk6CisgKgorICogUmVsZWFzZSB0aGUg c2lnbmFsLgorICovCit2b2lkIGF1ZGlvX3NpZ25hbF9maW5pKHN0cnVjdCBhdWRpb19zaWduYWwg KnNpZ25hbCkKK3sKKwlhdWRpb19zaWduYWxfcmVzZXQoc2lnbmFsKTsKKwlmcmVlKHNpZ25hbCk7 Cit9CisKKy8qKgorICogYXVkaW9fc2lnbmFsX3Jlc2V0OgogICogQHNpZ25hbDogVGhlIHRhcmdl dCBzaWduYWwgc3RydWN0dXJlCiAgKgogICogRnJlZSB0aGUgcmVzb3VyY2VzIGFsbG9jYXRlZCBi eSBhdWRpb19zaWduYWxfc3ludGhlc2l6ZSBhbmQgcmVtb3ZlCiAgKiB0aGUgcHJldmlvdXNseS1h ZGRlZCBmcmVxdWVuY2llcy4KICAqLwotdm9pZCBhdWRpb19zaWduYWxfY2xlYW4oc3RydWN0IGF1 ZGlvX3NpZ25hbCAqc2lnbmFsKQordm9pZCBhdWRpb19zaWduYWxfcmVzZXQoc3RydWN0IGF1ZGlv X3NpZ25hbCAqc2lnbmFsKQogewotCWludCBpOworCXNpemVfdCBpOwogCiAJZm9yIChpID0gMDsg aSA8IHNpZ25hbC0+ZnJlcXNfY291bnQ7IGkrKykgewotCQlpZiAoc2lnbmFsLT5mcmVxc1tpXS5w ZXJpb2QpCi0JCQlmcmVlKHNpZ25hbC0+ZnJlcXNbaV0ucGVyaW9kKTsKLQotCQltZW1zZXQoJnNp Z25hbC0+ZnJlcXNbaV0sIDAsIHNpemVvZihzdHJ1Y3QgYXVkaW9fc2lnbmFsX2ZyZXEpKTsKKwkJ ZnJlZShzaWduYWwtPmZyZXFzW2ldLnBlcmlvZCk7CiAJfQogCiAJc2lnbmFsLT5mcmVxc19jb3Vu dCA9IDA7CkBAIC0xODYsNDQgKzE5OSw0NSBAQCB2b2lkIGF1ZGlvX3NpZ25hbF9jbGVhbihzdHJ1 Y3QgYXVkaW9fc2lnbmFsICpzaWduYWwpCiAgKiBhdWRpb19zaWduYWxfZmlsbDoKICAqIEBzaWdu YWw6IFRoZSB0YXJnZXQgc2lnbmFsIHN0cnVjdHVyZQogICogQGJ1ZmZlcjogVGhlIHRhcmdldCBi dWZmZXIgdG8gZmlsbAotICogQGZyYW1lczogVGhlIG51bWJlciBvZiBmcmFtZXMgdG8gZmlsbAor ICogQHNhbXBsZXM6IFRoZSBudW1iZXIgb2Ygc2FtcGxlcyB0byBmaWxsCiAgKgotICogRmlsbCB0 aGUgcmVxdWVzdGVkIG51bWJlciBvZiBmcmFtZXMgdG8gdGhlIHRhcmdldCBidWZmZXIgd2l0aCB0 aGUgYXVkaW8KKyAqIEZpbGwgdGhlIHJlcXVlc3RlZCBudW1iZXIgb2Ygc2FtcGxlcyB0byB0aGUg dGFyZ2V0IGJ1ZmZlciB3aXRoIHRoZSBhdWRpbwogICogc2lnbmFsIGRhdGEgKGluIGludGVybGVh dmVkIFMxNl9MRSBmb3JtYXQpLCBhdCB0aGUgcmVxdWVzdGVkIHNhbXBsaW5nIHJhdGUKICAqIGFu ZCBudW1iZXIgb2YgY2hhbm5lbHMuCiAgKi8KLXZvaWQgYXVkaW9fc2lnbmFsX2ZpbGwoc3RydWN0 IGF1ZGlvX3NpZ25hbCAqc2lnbmFsLCBpbnQxNl90ICpidWZmZXIsIGludCBmcmFtZXMpCit2b2lk IGF1ZGlvX3NpZ25hbF9maWxsKHN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbCwgaW50MTZfdCAq YnVmZmVyLAorCQkgICAgICAgc2l6ZV90IGJ1ZmZlcl9sZW4pCiB7CiAJaW50MTZfdCAqZGVzdGlu YXRpb24sICpzb3VyY2U7CisJc3RydWN0IGF1ZGlvX3NpZ25hbF9mcmVxICpmcmVxOwogCWludCB0 b3RhbDsKLQlpbnQgZnJlcV9mcmFtZXM7Ci0JaW50IGZyZXFfb2Zmc2V0OwogCWludCBjb3VudDsK IAlpbnQgaSwgaiwgazsKIAotCW1lbXNldChidWZmZXIsIDAsIHNpemVvZihpbnQxNl90KSAqIHNp Z25hbC0+Y2hhbm5lbHMgKiBmcmFtZXMpOworCW1lbXNldChidWZmZXIsIDAsIHNpemVvZihpbnQx Nl90KSAqIHNpZ25hbC0+Y2hhbm5lbHMgKiBidWZmZXJfbGVuKTsKIAogCWZvciAoaSA9IDA7IGkg PCBzaWduYWwtPmZyZXFzX2NvdW50OyBpKyspIHsKKwkJZnJlcSA9ICZzaWduYWwtPmZyZXFzW2ld OwogCQl0b3RhbCA9IDA7CiAKLQkJd2hpbGUgKHRvdGFsIDwgZnJhbWVzKSB7Ci0JCQlmcmVxX2Zy YW1lcyA9IHNpZ25hbC0+ZnJlcXNbaV0uZnJhbWVzOwotCQkJZnJlcV9vZmZzZXQgPSBzaWduYWwt PmZyZXFzW2ldLm9mZnNldDsKKwkJaWd0X2Fzc2VydChmcmVxLT5wZXJpb2QpOwogCi0JCQlzb3Vy Y2UgPSBzaWduYWwtPmZyZXFzW2ldLnBlcmlvZCArIGZyZXFfb2Zmc2V0OworCQl3aGlsZSAodG90 YWwgPCBidWZmZXJfbGVuKSB7CisJCQlzb3VyY2UgPSBmcmVxLT5wZXJpb2QgKyBmcmVxLT5vZmZz ZXQ7CiAJCQlkZXN0aW5hdGlvbiA9IGJ1ZmZlciArIHRvdGFsICogc2lnbmFsLT5jaGFubmVsczsK IAotCQkJY291bnQgPSBmcmVxX2ZyYW1lcyAtIGZyZXFfb2Zmc2V0OwotCQkJaWYgKGNvdW50ID4g KGZyYW1lcyAtIHRvdGFsKSkKLQkJCQljb3VudCA9IGZyYW1lcyAtIHRvdGFsOworCQkJY291bnQg PSBmcmVxLT5wZXJpb2RfbGVuIC0gZnJlcS0+b2Zmc2V0OworCQkJaWYgKGNvdW50ID4gYnVmZmVy X2xlbiAtIHRvdGFsKQorCQkJCWNvdW50ID0gYnVmZmVyX2xlbiAtIHRvdGFsOwogCi0JCQlmcmVx X29mZnNldCArPSBjb3VudDsKLQkJCWZyZXFfb2Zmc2V0ICU9IGZyZXFfZnJhbWVzOwotCi0JCQlz aWduYWwtPmZyZXFzW2ldLm9mZnNldCA9IGZyZXFfb2Zmc2V0OworCQkJZnJlcS0+b2Zmc2V0ICs9 IGNvdW50OworCQkJZnJlcS0+b2Zmc2V0ICU9IGZyZXEtPnBlcmlvZF9sZW47CiAKIAkJCWZvciAo aiA9IDA7IGogPCBjb3VudDsgaisrKSB7CiAJCQkJZm9yIChrID0gMDsgayA8IHNpZ25hbC0+Y2hh bm5lbHM7IGsrKykgeworCQkJCQlpZiAoZnJlcS0+Y2hhbm5lbCA+PSAwICYmCisJCQkJCSAgICBm cmVxLT5jaGFubmVsICE9IGspCisJCQkJCQljb250aW51ZTsKIAkJCQkJZGVzdGluYXRpb25baiAq IHNpZ25hbC0+Y2hhbm5lbHMgKyBrXSArPSBzb3VyY2Vbal07CiAJCQkJfQogCQkJfQpAQCAtMjQw LDExICsyNTQsMTEgQEAgdm9pZCBhdWRpb19zaWduYWxfZmlsbChzdHJ1Y3QgYXVkaW9fc2lnbmFs ICpzaWduYWwsIGludDE2X3QgKmJ1ZmZlciwgaW50IGZyYW1lcykKICAqIHNhbXBsaW5nX3JhdGUg aXMgZ2l2ZW4gaW4gSHouIGRhdGFfbGVuIGlzIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gZGF0 YS4KICAqLwogYm9vbCBhdWRpb19zaWduYWxfZGV0ZWN0KHN0cnVjdCBhdWRpb19zaWduYWwgKnNp Z25hbCwgaW50IHNhbXBsaW5nX3JhdGUsCi0JCQkgZG91YmxlICpkYXRhLCBzaXplX3QgZGF0YV9s ZW4pCisJCQkgaW50IGNoYW5uZWwsIGRvdWJsZSAqZGF0YSwgc2l6ZV90IGRhdGFfbGVuKQogewog CXNpemVfdCBiaW5fcG93ZXJfbGVuID0gZGF0YV9sZW4gLyAyICsgMTsKIAlkb3VibGUgYmluX3Bv d2VyW2Jpbl9wb3dlcl9sZW5dOwotCWJvb2wgZGV0ZWN0ZWRbc2lnbmFsLT5mcmVxc19jb3VudF07 CisJYm9vbCBkZXRlY3RlZFtGUkVRU19NQVhdOwogCWludCByZXQsIGZyZXFfYWNjdXJhY3ksIGZy ZXEsIGxvY2FsX21heF9mcmVxOwogCWRvdWJsZSBtYXgsIGxvY2FsX21heCwgdGhyZXNob2xkOwog CXNpemVfdCBpLCBqOwpAQCAtMzExLDYgKzMyNSwxMCBAQCBib29sIGF1ZGlvX3NpZ25hbF9kZXRl Y3Qoc3RydWN0IGF1ZGlvX3NpZ25hbCAqc2lnbmFsLCBpbnQgc2FtcGxpbmdfcmF0ZSwKIAkJICog aW52YWxpZC4gKi8KIAkJaWYgKGJpbl9wb3dlcltpXSA8IHRocmVzaG9sZCkgewogCQkJZm9yIChq ID0gMDsgaiA8IHNpZ25hbC0+ZnJlcXNfY291bnQ7IGorKykgeworCQkJCWlmIChzaWduYWwtPmZy ZXFzW2pdLmNoYW5uZWwgPj0gMCAmJgorCQkJCSAgICBzaWduYWwtPmZyZXFzW2pdLmNoYW5uZWwg IT0gY2hhbm5lbCkKKwkJCQkJY29udGludWU7CisKIAkJCQlpZiAoc2lnbmFsLT5mcmVxc1tqXS5m cmVxID4KIAkJCQkgICAgbG9jYWxfbWF4X2ZyZXEgLSBmcmVxX2FjY3VyYWN5ICYmCiAJCQkJICAg IHNpZ25hbC0+ZnJlcXNbal0uZnJlcSA8CkBAIC0zNDMsNiArMzYxLDEwIEBAIGJvb2wgYXVkaW9f c2lnbmFsX2RldGVjdChzdHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWwsIGludCBzYW1wbGluZ19y YXRlLAogCiAJLyogQ2hlY2sgdGhhdCBhbGwgZnJlcXVlbmNpZXMgd2UgZ2VuZXJhdGVkIGhhdmUg YmVlbiBkZXRlY3RlZC4gKi8KIAlmb3IgKGkgPSAwOyBpIDwgc2lnbmFsLT5mcmVxc19jb3VudDsg aSsrKSB7CisJCWlmIChzaWduYWwtPmZyZXFzW2ldLmNoYW5uZWwgPj0gMCAmJgorCQkgICAgc2ln bmFsLT5mcmVxc1tpXS5jaGFubmVsICE9IGNoYW5uZWwpCisJCQljb250aW51ZTsKKwogCQlpZiAo IWRldGVjdGVkW2ldKSB7CiAJCQlpZ3RfZGVidWcoIk1pc3NpbmcgZnJlcXVlbmN5OiAlZFxuIiwK IAkJCQkgIHNpZ25hbC0+ZnJlcXNbaV0uZnJlcSk7CmRpZmYgLS1naXQgYS9saWIvaWd0X2F1ZGlv LmggYi9saWIvaWd0X2F1ZGlvLmgKaW5kZXggNGFhNDNlNjkuLjQ2NmU3NzJhIDEwMDY0NAotLS0g YS9saWIvaWd0X2F1ZGlvLmgKKysrIGIvbGliL2lndF9hdWRpby5oCkBAIC0zNSwxMiArMzUsMTUg QEAKIHN0cnVjdCBhdWRpb19zaWduYWw7CiAKIHN0cnVjdCBhdWRpb19zaWduYWwgKmF1ZGlvX3Np Z25hbF9pbml0KGludCBjaGFubmVscywgaW50IHNhbXBsaW5nX3JhdGUpOwotaW50IGF1ZGlvX3Np Z25hbF9hZGRfZnJlcXVlbmN5KHN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbCwgaW50IGZyZXF1 ZW5jeSk7Cit2b2lkIGF1ZGlvX3NpZ25hbF9maW5pKHN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25h bCk7CitpbnQgYXVkaW9fc2lnbmFsX2FkZF9mcmVxdWVuY3koc3RydWN0IGF1ZGlvX3NpZ25hbCAq c2lnbmFsLCBpbnQgZnJlcXVlbmN5LAorCQkJICAgICAgIGludCBjaGFubmVsKTsKIHZvaWQgYXVk aW9fc2lnbmFsX3N5bnRoZXNpemUoc3RydWN0IGF1ZGlvX3NpZ25hbCAqc2lnbmFsKTsKLXZvaWQg YXVkaW9fc2lnbmFsX2NsZWFuKHN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbCk7Ci12b2lkIGF1 ZGlvX3NpZ25hbF9maWxsKHN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbCwgaW50MTZfdCAqYnVm ZmVyLCBpbnQgZnJhbWVzKTsKK3ZvaWQgYXVkaW9fc2lnbmFsX3Jlc2V0KHN0cnVjdCBhdWRpb19z aWduYWwgKnNpZ25hbCk7Cit2b2lkIGF1ZGlvX3NpZ25hbF9maWxsKHN0cnVjdCBhdWRpb19zaWdu YWwgKnNpZ25hbCwgaW50MTZfdCAqYnVmZmVyLAorCQkgICAgICAgc2l6ZV90IGJ1ZmZlcl9sZW4p OwogYm9vbCBhdWRpb19zaWduYWxfZGV0ZWN0KHN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbCwg aW50IHNhbXBsaW5nX3JhdGUsCi0JCQkgZG91YmxlICpkYXRhLCBzaXplX3QgZGF0YV9sZW4pOwor CQkJIGludCBjaGFubmVsLCBkb3VibGUgKmRhdGEsIHNpemVfdCBkYXRhX2xlbik7CiBzaXplX3Qg YXVkaW9fZXh0cmFjdF9jaGFubmVsX3MzMl9sZShkb3VibGUgKmRzdCwgc2l6ZV90IGRzdF9jYXAs CiAJCQkJICAgIGludDMyX3QgKnNyYywgc2l6ZV90IHNyY19sZW4sCiAJCQkJICAgIGludCBuX2No YW5uZWxzLCBpbnQgY2hhbm5lbCk7CmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfY2hhbWVsaXVtLmMg Yi90ZXN0cy9rbXNfY2hhbWVsaXVtLmMKaW5kZXggMDE0YTIyYjMuLjY4N2Y2NGM0IDEwMDY0NAot LS0gYS90ZXN0cy9rbXNfY2hhbWVsaXVtLmMKKysrIGIvdGVzdHMva21zX2NoYW1lbGl1bS5jCkBA IC03NzcsMTYgKzc3NywxNiBAQCBkb190ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0YV90ICpkYXRhLCBz dHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCiAJCSAgICAgIHN0cnVjdCBhbHNhICphbHNhLCBp bnQgcGxheWJhY2tfY2hhbm5lbHMsCiAJCSAgICAgIGludCBwbGF5YmFja19yYXRlKQogewotCWlu dCByZXQsIGNhcHR1cmVfcmF0ZSwgY2FwdHVyZV9jaGFubmVscywgbXNlYzsKKwlpbnQgcmV0LCBj YXB0dXJlX3JhdGUsIGNhcHR1cmVfY2hhbm5lbHMsIG1zZWMsIGZyZXE7CiAJc3RydWN0IGNoYW1l bGl1bV9hdWRpb19maWxlICphdWRpb19maWxlOwogCXN0cnVjdCBjaGFtZWxpdW1fc3RyZWFtICpz dHJlYW07CiAJZW51bSBjaGFtZWxpdW1fc3RyZWFtX3JlYWx0aW1lX21vZGUgc3RyZWFtX21vZGU7 CiAJc3RydWN0IGF1ZGlvX3NpZ25hbCAqc2lnbmFsOwogCWludDMyX3QgKnJlY3YsICpidWY7CiAJ ZG91YmxlICpjaGFubmVsOwotCXNpemVfdCBpLCBzdHJlYWssIHBhZ2VfY291bnQ7CisJc2l6ZV90 IGksIGosIHN0cmVhaywgcGFnZV9jb3VudDsKIAlzaXplX3QgcmVjdl9sZW4sIGJ1Zl9sZW4sIGJ1 Zl9jYXAsIGJ1Zl9zaXplLCBjaGFubmVsX2xlbjsKLQlib29sIG9rOworCWJvb2wgb2ssIHN1Y2Nl c3M7CiAJY2hhciBkdW1wX3N1ZmZpeFs2NF07CiAJY2hhciAqZHVtcF9wYXRoID0gTlVMTDsKIAlp bnQgZHVtcF9mZCA9IC0xOwpAQCAtNzk0LDEwICs3OTQsMTUgQEAgZG9fdGVzdF9kaXNwbGF5X2F1 ZGlvKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LAogCXN0cnVjdCBh dWRpb19zdGF0ZSBzdGF0ZSA9IHt9OwogCiAJaWYgKCFhbHNhX3Rlc3Rfb3V0cHV0X2NvbmZpZ3Vy YXRpb24oYWxzYSwgcGxheWJhY2tfY2hhbm5lbHMsCi0JCQkJCSAgICBwbGF5YmFja19yYXRlKSkK KwkJCQkJICAgIHBsYXliYWNrX3JhdGUpKSB7CisJCWlndF9kZWJ1ZygiU2tpcHBpbmcgdGVzdCB3 aXRoIHNhbXBsZSByYXRlICVkIGFuZCAlZCBjaGFubmVscyAiCisJCQkgICJiZWNhdXNlIHNlbGVj dGVkIG91dHB1dCBkZXZpY2VzIGRvbid0IHN1cHBvcnQgdGhpcyAiCisJCQkgICJjb25maWd1cmF0 aW9uXG4iLCBwbGF5YmFja19yYXRlLCBwbGF5YmFja19jaGFubmVscyk7CiAJCXJldHVybiBmYWxz ZTsKKwl9CiAKLQlpZ3RfZGVidWcoIlRlc3Rpbmcgd2l0aCBwbGF5YmFjayBzYW1wbGluZyByYXRl ICVkXG4iLCBwbGF5YmFja19yYXRlKTsKKwlpZ3RfZGVidWcoIlRlc3Rpbmcgd2l0aCBwbGF5YmFj ayBzYW1wbGluZyByYXRlICVkIGFuZCAlZCBjaGFubmVsc1xuIiwKKwkJICBwbGF5YmFja19yYXRl LCBwbGF5YmFja19jaGFubmVscyk7CiAJYWxzYV9jb25maWd1cmVfb3V0cHV0KGFsc2EsIHBsYXli YWNrX2NoYW5uZWxzLCBwbGF5YmFja19yYXRlKTsKIAogCWNoYW1lbGl1bV9zdGFydF9jYXB0dXJp bmdfYXVkaW8oZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LCBmYWxzZSk7CkBAIC04MjUsOCArODMwLDEy IEBAIGRvX3Rlc3RfZGlzcGxheV9hdWRpbyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1f cG9ydCAqcG9ydCwKIAlzaWduYWwgPSBhdWRpb19zaWduYWxfaW5pdChwbGF5YmFja19jaGFubmVs cywgcGxheWJhY2tfcmF0ZSk7CiAJaWd0X2Fzc2VydChzaWduYWwpOwogCi0JZm9yIChpID0gMDsg aSA8IHRlc3RfZnJlcXVlbmNpZXNfY291bnQ7IGkrKykKLQkJYXVkaW9fc2lnbmFsX2FkZF9mcmVx dWVuY3koc2lnbmFsLCB0ZXN0X2ZyZXF1ZW5jaWVzW2ldKTsKKwlmb3IgKGkgPSAwOyBpIDwgdGVz dF9mcmVxdWVuY2llc19jb3VudDsgaSsrKSB7CisJCWZvciAoaiA9IDA7IGogPCBwbGF5YmFja19j aGFubmVsczsgaisrKSB7CisJCQlmcmVxID0gdGVzdF9mcmVxdWVuY2llc1tpXTsKKwkJCWF1ZGlv X3NpZ25hbF9hZGRfZnJlcXVlbmN5KHNpZ25hbCwgZnJlcSwgaik7CisJCX0KKwl9CiAJYXVkaW9f c2lnbmFsX3N5bnRoZXNpemUoc2lnbmFsKTsKIAogCXN0YXRlLnNpZ25hbCA9IHNpZ25hbDsKQEAg LTg1MSwxMCArODYwLDExIEBAIGRvX3Rlc3RfZGlzcGxheV9hdWRpbyhkYXRhX3QgKmRhdGEsIHN0 cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCwKIAlyZWN2ID0gTlVMTDsKIAlyZWN2X2xlbiA9IDA7 CiAKKwlzdWNjZXNzID0gZmFsc2U7CiAJc3RyZWFrID0gMDsKIAltc2VjID0gMDsKIAlpID0gMDsK LQl3aGlsZSAoc3RyZWFrIDwgTUlOX1NUUkVBSyAmJiBtc2VjIDwgQVVESU9fVElNRU9VVCkgewor CXdoaWxlICghc3VjY2VzcyAmJiBtc2VjIDwgQVVESU9fVElNRU9VVCkgewogCQlvayA9IGNoYW1l bGl1bV9zdHJlYW1fcmVjZWl2ZV9yZWFsdGltZV9hdWRpbyhzdHJlYW0sCiAJCQkJCQkJICAgICAm cGFnZV9jb3VudCwKIAkJCQkJCQkgICAgICZyZWN2LCAmcmVjdl9sZW4pOwpAQCAtODcyLDIxICs4 ODIsMjcgQEAgZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1l bGl1bV9wb3J0ICpwb3J0LAogCQkJaWd0X2Fzc2VydCh3cml0ZShkdW1wX2ZkLCBidWYsIGJ1Zl9z aXplKSA9PSBidWZfc2l6ZSk7CiAJCX0KIAotCQkvKiBUT0RPOiBjaGVjayBvdGhlciBjaGFubmVs cyB0b28sIG5vdCBqdXN0IHRoZSBmaXJzdCBvbmUgKi8KLQkJYXVkaW9fZXh0cmFjdF9jaGFubmVs X3MzMl9sZShjaGFubmVsLCBjaGFubmVsX2xlbiwgYnVmLCBidWZfbGVuLAotCQkJCQkgICAgIGNh cHR1cmVfY2hhbm5lbHMsIDApOwotCiAJCW1zZWMgPSBpICogY2hhbm5lbF9sZW4gLyAoZG91Ymxl KSBjYXB0dXJlX3JhdGUgKiAxMDAwOwogCQlpZ3RfZGVidWcoIkRldGVjdGluZyBhdWRpbyBzaWdu YWwsIHQ9JWQgbXNlY1xuIiwgbXNlYyk7CiAKLQkJaWYgKGF1ZGlvX3NpZ25hbF9kZXRlY3Qoc2ln bmFsLCBjYXB0dXJlX3JhdGUsIGNoYW5uZWwsCi0JCQkJCWNoYW5uZWxfbGVuKSkKLQkJCXN0cmVh aysrOwotCQllbHNlCi0JCQlzdHJlYWsgPSAwOworCQlmb3IgKGogPSAwOyBqIDwgcGxheWJhY2tf Y2hhbm5lbHM7IGorKykgeworCQkJaWd0X2RlYnVnKCJQcm9jZXNzaW5nIGNoYW5uZWwgJXp1XG4i LCBqKTsKKworCQkJYXVkaW9fZXh0cmFjdF9jaGFubmVsX3MzMl9sZShjaGFubmVsLCBjaGFubmVs X2xlbiwKKwkJCQkJCSAgICAgYnVmLCBidWZfbGVuLAorCQkJCQkJICAgICBjYXB0dXJlX2NoYW5u ZWxzLCBqKTsKKworCQkJaWYgKGF1ZGlvX3NpZ25hbF9kZXRlY3Qoc2lnbmFsLCBjYXB0dXJlX3Jh dGUsIGosCisJCQkJCQljaGFubmVsLCBjaGFubmVsX2xlbikpCisJCQkJc3RyZWFrKys7CisJCQll bHNlCisJCQkJc3RyZWFrID0gMDsKKwkJfQogCiAJCWJ1Zl9sZW4gPSAwOwogCQlpKys7CisKKwkJ c3VjY2VzcyA9IHN0cmVhayA9PSBNSU5fU1RSRUFLICogcGxheWJhY2tfY2hhbm5lbHM7CiAJfQog CiAJaWd0X2RlYnVnKCJTdG9wcGluZyBhdWRpbyBwbGF5YmFja1xuIik7CkBAIC04OTgsNyArOTE0 LDcgQEAgZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1 bV9wb3J0ICpwb3J0LAogCiAJaWYgKGR1bXBfZmQgPj0gMCkgewogCQljbG9zZShkdW1wX2ZkKTsK LQkJaWYgKHN0cmVhayA9PSBNSU5fU1RSRUFLKSB7CisJCWlmIChzdWNjZXNzKSB7CiAJCQkvKiBU ZXN0IHN1Y2NlZWRlZCwgbm8gbmVlZCB0byBrZWVwIHRoZSBjYXB0dXJlZCBkYXRhICovCiAJCQl1 bmxpbmsoZHVtcF9wYXRoKTsKIAkJfSBlbHNlCkBAIC05MjEsMTIgKzkzNywxMCBAQCBkb190ZXN0 X2Rpc3BsYXlfYXVkaW8oZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQs CiAJCWNoYW1lbGl1bV9kZXN0cm95X2F1ZGlvX2ZpbGUoYXVkaW9fZmlsZSk7CiAJfQogCi0JYXVk aW9fc2lnbmFsX2NsZWFuKHNpZ25hbCk7Ci0JZnJlZShzaWduYWwpOwotCisJYXVkaW9fc2lnbmFs X2Zpbmkoc2lnbmFsKTsKIAljaGFtZWxpdW1fc3RyZWFtX2RlaW5pdChzdHJlYW0pOwogCi0JaWd0 X2Fzc2VydChzdHJlYWsgPT0gTUlOX1NUUkVBSyk7CisJaWd0X2Fzc2VydChzdWNjZXNzKTsKIAly ZXR1cm4gdHJ1ZTsKIH0KIAotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2lndC1kZXY=