From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2F87A892DC for ; Fri, 24 May 2019 15:03:51 +0000 (UTC) From: Simon Ser Date: Fri, 24 May 2019 18:03:26 +0300 Message-Id: <20190524150334.15833-2-simon.ser@intel.com> In-Reply-To: <20190524150334.15833-1-simon.ser@intel.com> References: <20190524150334.15833-1-simon.ser@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 1/9] tests/kms_chamelium: refactor audio 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: SW5zdGVhZCBvZiBzaGF2aW5nIGV2ZXJ5dGhpbmcgaW50byBkb190ZXN0X2Rpc3BsYXlfYXVkaW8s IGV4dHJhY3QgdGhlIGxvZ2ljIHRvCmluaXRpYWxpemUsIHN0YXJ0LCBzdG9wLCBmaW5pc2ggYW4g YXVkaW8gdGVzdCBpbiBoZWxwZXIgZnVuY3Rpb25zLiBUaGUgc3RydWN0CmF1ZGlvX3N0YXRlIG5v dyBjYXJyaWVzIGFsbCBhdWRpby1yZWxhdGVkIHN0YXRlLgoKVGhpcyB3aWxsIGFsbG93IHRvIGVh c2lseSBhZGQgbW9yZSBhdWRpbyB0ZXN0cyB0aGF0IGRvbid0IHVzZSBzaW5lIHdhdmVzICh2aWEK YXVkaW9fc2lnbmFsKS4gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGZ1dHVyZSBkZWxheSBhbmQgYW1w bGl0dWRlIHRlc3RzLgoKU2lnbmVkLW9mZi1ieTogU2ltb24gU2VyIDxzaW1vbi5zZXJAaW50ZWwu Y29tPgotLS0KIHRlc3RzL2ttc19jaGFtZWxpdW0uYyB8IDMzNiArKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOTUgaW5zZXJ0aW9ucygr KSwgMTQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jaGFtZWxpdW0uYyBi L3Rlc3RzL2ttc19jaGFtZWxpdW0uYwppbmRleCA4ZGE2ZWMyMDc1OWUuLjFhMGEwMmNhMjg5MCAx MDA2NDQKLS0tIGEvdGVzdHMva21zX2NoYW1lbGl1bS5jCisrKyBiL3Rlc3RzL2ttc19jaGFtZWxp dW0uYwpAQCAtODEyLDE3ICs4MTIsMTc5IEBAIHN0YXRpYyBjb25zdCBzbmRfcGNtX2Zvcm1hdF90 IHRlc3RfZm9ybWF0c1tdID0gewogc3RhdGljIGNvbnN0IHNpemVfdCB0ZXN0X2Zvcm1hdHNfY291 bnQgPSBzaXplb2YodGVzdF9mb3JtYXRzKSAvIHNpemVvZih0ZXN0X2Zvcm1hdHNbMF0pOwogCiBz dHJ1Y3QgYXVkaW9fc3RhdGUgeworCXN0cnVjdCBhbHNhICphbHNhOworCXN0cnVjdCBjaGFtZWxp dW0gKmNoYW1lbGl1bTsKKwlzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQ7CisJc3RydWN0IGNo YW1lbGl1bV9zdHJlYW0gKnN0cmVhbTsKKworCS8qIFRoZSBjYXB0dXJlIGZvcm1hdCBpcyBvbmx5 IGF2YWlsYWJsZSBhZnRlciBjYXB0dXJlIGhhcyBzdGFydGVkLiAqLworCXN0cnVjdCB7CisJCXNu ZF9wY21fZm9ybWF0X3QgZm9ybWF0OworCQlpbnQgY2hhbm5lbHM7CisJCWludCByYXRlOworCX0g cGxheWJhY2ssIGNhcHR1cmU7CisKIAlzdHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWw7Ci0Jc25k X3BjbV9mb3JtYXRfdCBmb3JtYXQ7CisJaW50IGNoYW5uZWxfbWFwcGluZ1s4XTsKKworCWludCBk dW1wX2ZkOworCWNoYXIgKmR1bXBfcGF0aDsKKworCXB0aHJlYWRfdCB0aHJlYWQ7CiAJYXRvbWlj X2Jvb2wgcnVuOwogfTsKIAorc3RhdGljIHZvaWQgYXVkaW9fc3RhdGVfaW5pdChzdHJ1Y3QgYXVk aW9fc3RhdGUgKnN0YXRlLCBkYXRhX3QgKmRhdGEsCisJCQkgICAgIHN0cnVjdCBhbHNhICphbHNh LCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCisJCQkgICAgIHNuZF9wY21fZm9ybWF0X3Qg Zm9ybWF0LCBpbnQgY2hhbm5lbHMsIGludCByYXRlKQoreworCW1lbXNldChzdGF0ZSwgMCwgc2l6 ZW9mKCpzdGF0ZSkpOworCXN0YXRlLT5kdW1wX2ZkID0gLTE7CisKKwlzdGF0ZS0+YWxzYSA9IGFs c2E7CisJc3RhdGUtPmNoYW1lbGl1bSA9IGRhdGEtPmNoYW1lbGl1bTsKKwlzdGF0ZS0+cG9ydCA9 IHBvcnQ7CisKKwlzdGF0ZS0+cGxheWJhY2suZm9ybWF0ID0gZm9ybWF0OworCXN0YXRlLT5wbGF5 YmFjay5jaGFubmVscyA9IGNoYW5uZWxzOworCXN0YXRlLT5wbGF5YmFjay5yYXRlID0gcmF0ZTsK KworCWFsc2FfY29uZmlndXJlX291dHB1dChhbHNhLCBmb3JtYXQsIGNoYW5uZWxzLCByYXRlKTsK KworCXN0YXRlLT5zdHJlYW0gPSBjaGFtZWxpdW1fc3RyZWFtX2luaXQoKTsKKwlpZ3RfYXNzZXJ0 KHN0YXRlLT5zdHJlYW0pOworfQorCitzdGF0aWMgdm9pZCBhdWRpb19zdGF0ZV9maW5pKHN0cnVj dCBhdWRpb19zdGF0ZSAqc3RhdGUpCit7CisJY2hhbWVsaXVtX3N0cmVhbV9kZWluaXQoc3RhdGUt PnN0cmVhbSk7Cit9CisKK3N0YXRpYyB2b2lkICpydW5fYXVkaW9fdGhyZWFkKHZvaWQgKmRhdGEp Cit7CisJc3RydWN0IGFsc2EgKmFsc2EgPSBkYXRhOworCisJYWxzYV9ydW4oYWxzYSwgLTEpOwor CXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCBhdWRpb19zdGF0ZV9zdGFydChzdHJ1Y3Qg YXVkaW9fc3RhdGUgKnN0YXRlKQoreworCWludCByZXQ7CisJYm9vbCBvazsKKwlzaXplX3QgaSwg ajsKKwllbnVtIGNoYW1lbGl1bV9zdHJlYW1fcmVhbHRpbWVfbW9kZSBzdHJlYW1fbW9kZTsKKwlj aGFyIGR1bXBfc3VmZml4WzY0XTsKKworCWlndF9kZWJ1ZygiU3RhcnRpbmcgdGVzdCB3aXRoIHBs YXliYWNrIGZvcm1hdCAlcywgc2FtcGxpbmcgcmF0ZSAlZCBIeiAiCisJCSAgImFuZCAlZCBjaGFu bmVsc1xuIiwKKwkJICBzbmRfcGNtX2Zvcm1hdF9uYW1lKHN0YXRlLT5wbGF5YmFjay5mb3JtYXQp LAorCQkgIHN0YXRlLT5wbGF5YmFjay5yYXRlLCBzdGF0ZS0+cGxheWJhY2suY2hhbm5lbHMpOwor CisJY2hhbWVsaXVtX3N0YXJ0X2NhcHR1cmluZ19hdWRpbyhzdGF0ZS0+Y2hhbWVsaXVtLCBzdGF0 ZS0+cG9ydCwgZmFsc2UpOworCisJc3RyZWFtX21vZGUgPSBDSEFNRUxJVU1fU1RSRUFNX1JFQUxU SU1FX1NUT1BfV0hFTl9PVkVSRkxPVzsKKwlvayA9IGNoYW1lbGl1bV9zdHJlYW1fZHVtcF9yZWFs dGltZV9hdWRpbyhzdGF0ZS0+c3RyZWFtLCBzdHJlYW1fbW9kZSk7CisJaWd0X2Fzc2VydChvayk7 CisKKwkvKiBTdGFydCBwbGF5aW5nIGF1ZGlvICovCisJc3RhdGUtPnJ1biA9IHRydWU7CisJcmV0 ID0gcHRocmVhZF9jcmVhdGUoJnN0YXRlLT50aHJlYWQsIE5VTEwsCisJCQkgICAgIHJ1bl9hdWRp b190aHJlYWQsIHN0YXRlLT5hbHNhKTsKKwlpZ3RfYXNzZXJ0KHJldCA9PSAwKTsKKworCS8qIFRo ZSBDaGFtZWxpdW0gZGV2aWNlIG9ubHkgc3VwcG9ydHMgdGhpcyBQQ00gZm9ybWF0LiAqLworCXN0 YXRlLT5jYXB0dXJlLmZvcm1hdCA9IFNORF9QQ01fRk9STUFUX1MzMl9MRTsKKworCS8qIE9ubHkg YWZ0ZXIgd2UndmUgc3RhcnRlZCBwbGF5aW5nIGF1ZGlvLCB3ZSBjYW4gcmV0cmlldmUgdGhlIGNh cHR1cmUKKwkgKiBmb3JtYXQgdXNlZCBieSB0aGUgQ2hhbWVsaXVtIGRldmljZS4gKi8KKwljaGFt ZWxpdW1fZ2V0X2F1ZGlvX2Zvcm1hdChzdGF0ZS0+Y2hhbWVsaXVtLCBzdGF0ZS0+cG9ydCwKKwkJ CQkgICAmc3RhdGUtPmNhcHR1cmUucmF0ZSwKKwkJCQkgICAmc3RhdGUtPmNhcHR1cmUuY2hhbm5l bHMpOworCWlmIChzdGF0ZS0+Y2FwdHVyZS5yYXRlID09IDApIHsKKwkJaWd0X2RlYnVnKCJBdWRp byByZWNlaXZlciBkb2Vzbid0IGluZGljYXRlIHRoZSBjYXB0dXJlICIKKwkJCSAic2FtcGxpbmcg cmF0ZSwgYXNzdW1pbmcgaXQncyAlZCBIelxuIiwKKwkJCSBzdGF0ZS0+cGxheWJhY2sucmF0ZSk7 CisJCXN0YXRlLT5jYXB0dXJlLnJhdGUgPSBzdGF0ZS0+cGxheWJhY2sucmF0ZTsKKwl9CisKKwlj aGFtZWxpdW1fZ2V0X2F1ZGlvX2NoYW5uZWxfbWFwcGluZyhzdGF0ZS0+Y2hhbWVsaXVtLCBzdGF0 ZS0+cG9ydCwKKwkJCQkJICAgIHN0YXRlLT5jaGFubmVsX21hcHBpbmcpOworCS8qIE1ha2Ugc3Vy ZSB3ZSBjYW4gY2FwdHVyZSBhbGwgY2hhbm5lbHMgd2Ugc2VuZC4gKi8KKwlmb3IgKGkgPSAwOyBp IDwgc3RhdGUtPnBsYXliYWNrLmNoYW5uZWxzOyBpKyspIHsKKwkJb2sgPSBmYWxzZTsKKwkJZm9y IChqID0gMDsgaiA8IHN0YXRlLT5jYXB0dXJlLmNoYW5uZWxzOyBqKyspIHsKKwkJCWlmIChzdGF0 ZS0+Y2hhbm5lbF9tYXBwaW5nW2pdID09IGkpIHsKKwkJCQlvayA9IHRydWU7CisJCQkJYnJlYWs7 CisJCQl9CisJCX0KKwkJaWd0X2Fzc2VydChvayk7CisJfQorCisJaWYgKGlndF9mcmFtZV9kdW1w X2lzX2VuYWJsZWQoKSkgeworCQlzbnByaW50ZihkdW1wX3N1ZmZpeCwgc2l6ZW9mKGR1bXBfc3Vm Zml4KSwKKwkJCSAiY2FwdHVyZS0lcy0lZGNoLSVkSHoiLAorCQkJIHNuZF9wY21fZm9ybWF0X25h bWUoc3RhdGUtPnBsYXliYWNrLmZvcm1hdCksCisJCQkgc3RhdGUtPnBsYXliYWNrLmNoYW5uZWxz LCBzdGF0ZS0+cGxheWJhY2sucmF0ZSk7CisKKwkJc3RhdGUtPmR1bXBfZmQgPSBhdWRpb19jcmVh dGVfd2F2X2ZpbGVfczMyX2xlKGR1bXBfc3VmZml4LAorCQkJCQkJCSAgICAgIHN0YXRlLT5jYXB0 dXJlLnJhdGUsCisJCQkJCQkJICAgICAgc3RhdGUtPmNhcHR1cmUuY2hhbm5lbHMsCisJCQkJCQkJ ICAgICAgJnN0YXRlLT5kdW1wX3BhdGgpOworCQlpZ3RfYXNzZXJ0KHN0YXRlLT5kdW1wX2ZkID49 IDApOworCX0KK30KKworc3RhdGljIHZvaWQgYXVkaW9fc3RhdGVfc3RvcChzdHJ1Y3QgYXVkaW9f c3RhdGUgKnN0YXRlLCBib29sIHN1Y2Nlc3MpCit7CisJYm9vbCBvazsKKwlpbnQgcmV0OworCXN0 cnVjdCBjaGFtZWxpdW1fYXVkaW9fZmlsZSAqYXVkaW9fZmlsZTsKKworCWlndF9kZWJ1ZygiU3Rv cHBpbmcgYXVkaW8gcGxheWJhY2tcbiIpOworCXN0YXRlLT5ydW4gPSBmYWxzZTsKKwlyZXQgPSBw dGhyZWFkX2pvaW4oc3RhdGUtPnRocmVhZCwgTlVMTCk7CisJaWd0X2Fzc2VydChyZXQgPT0gMCk7 CisKKwlvayA9IGNoYW1lbGl1bV9zdHJlYW1fc3RvcF9yZWFsdGltZV9hdWRpbyhzdGF0ZS0+c3Ry ZWFtKTsKKwlpZ3RfYXNzZXJ0KG9rKTsKKworCWF1ZGlvX2ZpbGUgPSBjaGFtZWxpdW1fc3RvcF9j YXB0dXJpbmdfYXVkaW8oc3RhdGUtPmNoYW1lbGl1bSwKKwkJCQkJCSAgICBzdGF0ZS0+cG9ydCk7 CisJaWYgKGF1ZGlvX2ZpbGUpIHsKKwkJaWd0X2RlYnVnKCJBdWRpbyBmaWxlIHNhdmVkIG9uIHRo ZSBDaGFtZWxpdW0gaW4gJXNcbiIsCisJCQkgIGF1ZGlvX2ZpbGUtPnBhdGgpOworCQljaGFtZWxp dW1fZGVzdHJveV9hdWRpb19maWxlKGF1ZGlvX2ZpbGUpOworCX0KKworCWlmIChzdGF0ZS0+ZHVt cF9mZCA+PSAwKSB7CisJCWNsb3NlKHN0YXRlLT5kdW1wX2ZkKTsKKwkJc3RhdGUtPmR1bXBfZmQg PSAtMTsKKworCQlpZiAoc3VjY2VzcykgeworCQkJLyogVGVzdCBzdWNjZWVkZWQsIG5vIG5lZWQg dG8ga2VlcCB0aGUgY2FwdHVyZWQgZGF0YSAqLworCQkJdW5saW5rKHN0YXRlLT5kdW1wX3BhdGgp OworCQl9IGVsc2UKKwkJCWlndF9kZWJ1ZygiU2F2ZWQgY2FwdHVyZWQgYXVkaW8gZGF0YSB0byAl c1xuIiwKKwkJCQkgIHN0YXRlLT5kdW1wX3BhdGgpOworCQlmcmVlKHN0YXRlLT5kdW1wX3BhdGgp OworCQlzdGF0ZS0+ZHVtcF9wYXRoID0gTlVMTDsKKwl9CisKKwlpZ3RfZGVidWcoIkF1ZGlvIHRl c3QgcmVzdWx0IGZvciBmb3JtYXQgJXMsIHNhbXBsaW5nIHJhdGUgJWQgSHogYW5kICIKKwkJICAi JWQgY2hhbm5lbHM6ICVzXG4iLAorCQkgIHNuZF9wY21fZm9ybWF0X25hbWUoc3RhdGUtPnBsYXli YWNrLmZvcm1hdCksCisJCSAgc3RhdGUtPnBsYXliYWNrLnJhdGUsIHN0YXRlLT5wbGF5YmFjay5j aGFubmVscywKKwkJICBzdWNjZXNzID8gIkFMTCBHUkVFTiIgOiAiRkFJTEVEIik7Cit9CisKIHN0 YXRpYyBpbnQKIGF1ZGlvX291dHB1dF9jYWxsYmFjayh2b2lkICpkYXRhLCB2b2lkICpidWZmZXIs IGludCBzYW1wbGVzKQogewogCXN0cnVjdCBhdWRpb19zdGF0ZSAqc3RhdGUgPSBkYXRhOwogCi0J c3dpdGNoIChzdGF0ZS0+Zm9ybWF0KSB7CisJc3dpdGNoIChzdGF0ZS0+cGxheWJhY2suZm9ybWF0 KSB7CiAJY2FzZSBTTkRfUENNX0ZPUk1BVF9TMTZfTEU6CiAJCWF1ZGlvX3NpZ25hbF9maWxsX3Mx Nl9sZShzdGF0ZS0+c2lnbmFsLCBidWZmZXIsIHNhbXBsZXMpOwogCQlicmVhazsKQEAgLTgzOSw1 NSArMTAwMSwxOSBAQCBhdWRpb19vdXRwdXRfY2FsbGJhY2sodm9pZCAqZGF0YSwgdm9pZCAqYnVm ZmVyLCBpbnQgc2FtcGxlcykKIAlyZXR1cm4gc3RhdGUtPnJ1biA/IDAgOiAtMTsKIH0KIAotc3Rh dGljIHZvaWQgKgotcnVuX2F1ZGlvX3RocmVhZCh2b2lkICpkYXRhKQorc3RhdGljIGJvb2wgZG9f dGVzdF9kaXNwbGF5X2F1ZGlvKHN0cnVjdCBhdWRpb19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0 IGFsc2EgKmFsc2EgPSBkYXRhOwotCi0JYWxzYV9ydW4oYWxzYSwgLTEpOwotCXJldHVybiBOVUxM OwotfQotCi1zdGF0aWMgYm9vbAotZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKGRhdGFfdCAqZGF0YSwg c3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LAotCQkgICAgICBzdHJ1Y3QgYWxzYSAqYWxzYSwg c25kX3BjbV9mb3JtYXRfdCBwbGF5YmFja19mb3JtYXQsCi0JCSAgICAgIGludCBwbGF5YmFja19j aGFubmVscywgaW50IHBsYXliYWNrX3JhdGUpCi17Ci0JaW50IHJldCwgY2FwdHVyZV9yYXRlLCBj YXB0dXJlX2NoYW5uZWxzLCBtc2VjLCBmcmVxLCBzdGVwOwotCXN0cnVjdCBjaGFtZWxpdW1fYXVk aW9fZmlsZSAqYXVkaW9fZmlsZTsKLQlzdHJ1Y3QgY2hhbWVsaXVtX3N0cmVhbSAqc3RyZWFtOwot CWVudW0gY2hhbWVsaXVtX3N0cmVhbV9yZWFsdGltZV9tb2RlIHN0cmVhbV9tb2RlOwotCXN0cnVj dCBhdWRpb19zaWduYWwgKnNpZ25hbDsKKwlpbnQgbXNlYywgZnJlcSwgc3RlcDsKIAlpbnQzMl90 ICpyZWN2LCAqYnVmOwogCWRvdWJsZSAqY2hhbm5lbDsKIAlzaXplX3QgaSwgaiwgc3RyZWFrLCBw YWdlX2NvdW50OwogCXNpemVfdCByZWN2X2xlbiwgYnVmX2xlbiwgYnVmX2NhcCwgYnVmX3NpemUs IGNoYW5uZWxfbGVuOwogCWJvb2wgb2ssIHN1Y2Nlc3M7Ci0JY2hhciBkdW1wX3N1ZmZpeFs2NF07 Ci0JY2hhciAqZHVtcF9wYXRoID0gTlVMTDsKLQlpbnQgZHVtcF9mZCA9IC0xOwotCXB0aHJlYWRf dCB0aHJlYWQ7Ci0Jc3RydWN0IGF1ZGlvX3N0YXRlIHN0YXRlID0ge307Ci0JaW50IGNoYW5uZWxf bWFwcGluZ1s4XSwgY2FwdHVyZV9jaGFuOwotCi0JaWd0X2RlYnVnKCJUZXN0aW5nIHdpdGggcGxh eWJhY2sgZm9ybWF0ICVzLCBzYW1wbGluZyByYXRlICVkIEh6IGFuZCAiCi0JCSAgIiVkIGNoYW5u ZWxzXG4iLAotCQkgIHNuZF9wY21fZm9ybWF0X25hbWUocGxheWJhY2tfZm9ybWF0KSwKLQkJICBw bGF5YmFja19yYXRlLCBwbGF5YmFja19jaGFubmVscyk7Ci0JYWxzYV9jb25maWd1cmVfb3V0cHV0 KGFsc2EsIHBsYXliYWNrX2Zvcm1hdCwKLQkJCSAgICAgIHBsYXliYWNrX2NoYW5uZWxzLCBwbGF5 YmFja19yYXRlKTsKKwlpbnQgY2FwdHVyZV9jaGFuOwogCi0JY2hhbWVsaXVtX3N0YXJ0X2NhcHR1 cmluZ19hdWRpbyhkYXRhLT5jaGFtZWxpdW0sIHBvcnQsIGZhbHNlKTsKLQotCXN0cmVhbSA9IGNo YW1lbGl1bV9zdHJlYW1faW5pdCgpOwotCWlndF9hc3NlcnQoc3RyZWFtKTsKLQotCXN0cmVhbV9t b2RlID0gQ0hBTUVMSVVNX1NUUkVBTV9SRUFMVElNRV9TVE9QX1dIRU5fT1ZFUkZMT1c7Ci0Jb2sg PSBjaGFtZWxpdW1fc3RyZWFtX2R1bXBfcmVhbHRpbWVfYXVkaW8oc3RyZWFtLCBzdHJlYW1fbW9k ZSk7Ci0JaWd0X2Fzc2VydChvayk7Ci0KLQlzaWduYWwgPSBhdWRpb19zaWduYWxfaW5pdChwbGF5 YmFja19jaGFubmVscywgcGxheWJhY2tfcmF0ZSk7Ci0JaWd0X2Fzc2VydChzaWduYWwpOworCXN0 YXRlLT5zaWduYWwgPSBhdWRpb19zaWduYWxfaW5pdChzdGF0ZS0+cGxheWJhY2suY2hhbm5lbHMs CisJCQkJCSAgc3RhdGUtPnBsYXliYWNrLnJhdGUpOworCWlndF9hc3NlcnQoc3RhdGUtPnNpZ25h bCk7CiAKIAkvKiBXZSdsbCBjaG9vc2UgZGlmZmVyZW50IGZyZXF1ZW5jaWVzIHBlciBjaGFubmVs IHRvIG1ha2Ugc3VyZSB0aGV5IGFyZQogCSAqIGluZGVwZW5kZW50IGZyb20gZWFjaCBvdGhlci4g VG8gZG8gc28sIHdlJ2xsIGFkZCBhIGRpZmZlcmVudCBvZmZzZXQKQEAgLTkwMCw2MiArMTAyNiwy MSBAQCBkb190ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVt X3BvcnQgKnBvcnQsCiAJICogbGF0ZXIgb24uIFdlIGNhbm5vdCByZXRyaWV2ZSB0aGUgY2FwdHVy ZSByYXRlIGJlZm9yZSBzdGFydGluZwogCSAqIHBsYXlpbmcgYXVkaW8sIHNvIHdlIGRvbid0IHJl YWxseSBoYXZlIHRoZSBjaG9pY2UuCiAJICovCi0Jc3RlcCA9IDIgKiBwbGF5YmFja19yYXRlIC8g Q0FQVFVSRV9TQU1QTEVTOworCXN0ZXAgPSAyICogc3RhdGUtPnBsYXliYWNrLnJhdGUgLyBDQVBU VVJFX1NBTVBMRVM7CiAJZm9yIChpID0gMDsgaSA8IHRlc3RfZnJlcXVlbmNpZXNfY291bnQ7IGkr KykgewotCQlmb3IgKGogPSAwOyBqIDwgcGxheWJhY2tfY2hhbm5lbHM7IGorKykgeworCQlmb3Ig KGogPSAwOyBqIDwgc3RhdGUtPnBsYXliYWNrLmNoYW5uZWxzOyBqKyspIHsKIAkJCWZyZXEgPSB0 ZXN0X2ZyZXF1ZW5jaWVzW2ldICsgaiAqIHN0ZXA7Ci0JCQlhdWRpb19zaWduYWxfYWRkX2ZyZXF1 ZW5jeShzaWduYWwsIGZyZXEsIGopOworCQkJYXVkaW9fc2lnbmFsX2FkZF9mcmVxdWVuY3koc3Rh dGUtPnNpZ25hbCwgZnJlcSwgaik7CiAJCX0KIAl9Ci0JYXVkaW9fc2lnbmFsX3N5bnRoZXNpemUo c2lnbmFsKTsKKwlhdWRpb19zaWduYWxfc3ludGhlc2l6ZShzdGF0ZS0+c2lnbmFsKTsKIAotCXN0 YXRlLnNpZ25hbCA9IHNpZ25hbDsKLQlzdGF0ZS5mb3JtYXQgPSBwbGF5YmFja19mb3JtYXQ7Ci0J c3RhdGUucnVuID0gdHJ1ZTsKLQlhbHNhX3JlZ2lzdGVyX291dHB1dF9jYWxsYmFjayhhbHNhLCBh dWRpb19vdXRwdXRfY2FsbGJhY2ssICZzdGF0ZSwKKwlhbHNhX3JlZ2lzdGVyX291dHB1dF9jYWxs YmFjayhzdGF0ZS0+YWxzYSwgYXVkaW9fb3V0cHV0X2NhbGxiYWNrLCBzdGF0ZSwKIAkJCQkgICAg ICBQTEFZQkFDS19TQU1QTEVTKTsKIAotCS8qIFN0YXJ0IHBsYXlpbmcgYXVkaW8gKi8KLQlyZXQg PSBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCBydW5fYXVkaW9fdGhyZWFkLCBhbHNhKTsK LQlpZ3RfYXNzZXJ0KHJldCA9PSAwKTsKKwlhdWRpb19zdGF0ZV9zdGFydChzdGF0ZSk7CiAKLQkv KiBPbmx5IGFmdGVyIHdlJ3ZlIHN0YXJ0ZWQgcGxheWluZyBhdWRpbywgd2UgY2FuIHJldHJpZXZl IHRoZSBjYXB0dXJlCi0JICogZm9ybWF0IHVzZWQgYnkgdGhlIENoYW1lbGl1bSBkZXZpY2UuICov Ci0JY2hhbWVsaXVtX2dldF9hdWRpb19mb3JtYXQoZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LAotCQkJ CSAgICZjYXB0dXJlX3JhdGUsICZjYXB0dXJlX2NoYW5uZWxzKTsKLQlpZiAoY2FwdHVyZV9yYXRl ID09IDApIHsKLQkJaWd0X2RlYnVnKCJBdWRpbyByZWNlaXZlciBkb2Vzbid0IGluZGljYXRlIHRo ZSBjYXB0dXJlICIKLQkJCSAic2FtcGxpbmcgcmF0ZSwgYXNzdW1pbmcgaXQncyAlZCBIelxuIiwg cGxheWJhY2tfcmF0ZSk7Ci0JCWNhcHR1cmVfcmF0ZSA9IHBsYXliYWNrX3JhdGU7Ci0JfSBlbHNl Ci0JCWlndF9hc3NlcnQoY2FwdHVyZV9yYXRlID09IHBsYXliYWNrX3JhdGUpOwotCi0JY2hhbWVs aXVtX2dldF9hdWRpb19jaGFubmVsX21hcHBpbmcoZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LAotCQkJ CQkgICAgY2hhbm5lbF9tYXBwaW5nKTsKLQkvKiBNYWtlIHN1cmUgd2UgY2FuIGNhcHR1cmUgYWxs IGNoYW5uZWxzIHdlIHNlbmQuICovCi0JZm9yIChpID0gMDsgaSA8IHBsYXliYWNrX2NoYW5uZWxz OyBpKyspIHsKLQkJb2sgPSBmYWxzZTsKLQkJZm9yIChqID0gMDsgaiA8IGNhcHR1cmVfY2hhbm5l bHM7IGorKykgewotCQkJaWYgKGNoYW5uZWxfbWFwcGluZ1tqXSA9PSBpKSB7Ci0JCQkJb2sgPSB0 cnVlOwotCQkJCWJyZWFrOwotCQkJfQotCQl9Ci0JCWlndF9hc3NlcnQob2spOwotCX0KLQotCWlm IChpZ3RfZnJhbWVfZHVtcF9pc19lbmFibGVkKCkpIHsKLQkJc25wcmludGYoZHVtcF9zdWZmaXgs IHNpemVvZihkdW1wX3N1ZmZpeCksCi0JCQkgImNhcHR1cmUtJXMtJWRjaC0lZEh6IiwKLQkJCSBz bmRfcGNtX2Zvcm1hdF9uYW1lKHBsYXliYWNrX2Zvcm1hdCksCi0JCQkgcGxheWJhY2tfY2hhbm5l bHMsIHBsYXliYWNrX3JhdGUpOwotCi0JCWR1bXBfZmQgPSBhdWRpb19jcmVhdGVfd2F2X2ZpbGVf czMyX2xlKGR1bXBfc3VmZml4LAotCQkJCQkJICAgICAgIGNhcHR1cmVfcmF0ZSwKLQkJCQkJCSAg ICAgICBjYXB0dXJlX2NoYW5uZWxzLAotCQkJCQkJICAgICAgICZkdW1wX3BhdGgpOwotCQlpZ3Rf YXNzZXJ0KGR1bXBfZmQgPj0gMCk7Ci0JfQorCWlndF9hc3NlcnQoc3RhdGUtPmNhcHR1cmUucmF0 ZSA9PSBzdGF0ZS0+cGxheWJhY2sucmF0ZSk7CiAKIAkvKiBOZWVkcyB0byBiZSBhIG11bHRpcGxl IG9mIDEyOCwgYmVjYXVzZSB0aGF0J3MgdGhlIG51bWJlciBvZiBzYW1wbGVzCiAJICogd2UgZ2V0 IHBlciBjaGFubmVsIGVhY2ggdGltZSB3ZSByZWNlaXZlIGFuIGF1ZGlvIHBhZ2UgZnJvbSB0aGUK QEAgLTk3MCw3ICsxMDU1LDcgQEAgZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKGRhdGFfdCAqZGF0YSwg c3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LAogCWNoYW5uZWxfbGVuID0gQ0FQVFVSRV9TQU1Q TEVTOwogCWNoYW5uZWwgPSBtYWxsb2Moc2l6ZW9mKGRvdWJsZSkgKiBjaGFubmVsX2xlbik7CiAK LQlidWZfY2FwID0gY2FwdHVyZV9jaGFubmVscyAqIGNoYW5uZWxfbGVuOworCWJ1Zl9jYXAgPSBz dGF0ZS0+Y2FwdHVyZS5jaGFubmVscyAqIGNoYW5uZWxfbGVuOwogCWJ1ZiA9IG1hbGxvYyhzaXpl b2YoaW50MzJfdCkgKiBidWZfY2FwKTsKIAlidWZfbGVuID0gMDsKIApAQCAtOTgyLDcgKzEwNjcs NyBAQCBkb190ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVt X3BvcnQgKnBvcnQsCiAJbXNlYyA9IDA7CiAJaSA9IDA7CiAJd2hpbGUgKCFzdWNjZXNzICYmIG1z ZWMgPCBBVURJT19USU1FT1VUKSB7Ci0JCW9rID0gY2hhbWVsaXVtX3N0cmVhbV9yZWNlaXZlX3Jl YWx0aW1lX2F1ZGlvKHN0cmVhbSwKKwkJb2sgPSBjaGFtZWxpdW1fc3RyZWFtX3JlY2VpdmVfcmVh bHRpbWVfYXVkaW8oc3RhdGUtPnN0cmVhbSwKIAkJCQkJCQkgICAgICZwYWdlX2NvdW50LAogCQkJ CQkJCSAgICAgJnJlY3YsICZyZWN2X2xlbik7CiAJCWlndF9hc3NlcnQob2spOwpAQCAtOTk0LDI2 ICsxMDc5LDI3IEBAIGRvX3Rlc3RfZGlzcGxheV9hdWRpbyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBj aGFtZWxpdW1fcG9ydCAqcG9ydCwKIAkJCWNvbnRpbnVlOwogCQlpZ3RfYXNzZXJ0KGJ1Zl9sZW4g PT0gYnVmX2NhcCk7CiAKLQkJaWYgKGR1bXBfZmQgPj0gMCkgeworCQlpZiAoc3RhdGUtPmR1bXBf ZmQgPj0gMCkgewogCQkJYnVmX3NpemUgPSBidWZfbGVuICogc2l6ZW9mKGludDMyX3QpOwotCQkJ aWd0X2Fzc2VydCh3cml0ZShkdW1wX2ZkLCBidWYsIGJ1Zl9zaXplKSA9PSBidWZfc2l6ZSk7CisJ CQlpZ3RfYXNzZXJ0KHdyaXRlKHN0YXRlLT5kdW1wX2ZkLCBidWYsIGJ1Zl9zaXplKSA9PSBidWZf c2l6ZSk7CiAJCX0KIAotCQltc2VjID0gaSAqIGNoYW5uZWxfbGVuIC8gKGRvdWJsZSkgY2FwdHVy ZV9yYXRlICogMTAwMDsKKwkJbXNlYyA9IGkgKiBjaGFubmVsX2xlbiAvIChkb3VibGUpIHN0YXRl LT5jYXB0dXJlLnJhdGUgKiAxMDAwOwogCQlpZ3RfZGVidWcoIkRldGVjdGluZyBhdWRpbyBzaWdu YWwsIHQ9JWQgbXNlY1xuIiwgbXNlYyk7CiAKLQkJZm9yIChqID0gMDsgaiA8IHBsYXliYWNrX2No YW5uZWxzOyBqKyspIHsKLQkJCWNhcHR1cmVfY2hhbiA9IGNoYW5uZWxfbWFwcGluZ1tqXTsKKwkJ Zm9yIChqID0gMDsgaiA8IHN0YXRlLT5wbGF5YmFjay5jaGFubmVsczsgaisrKSB7CisJCQljYXB0 dXJlX2NoYW4gPSBzdGF0ZS0+Y2hhbm5lbF9tYXBwaW5nW2pdOwogCQkJaWd0X2Fzc2VydChjYXB0 dXJlX2NoYW4gPj0gMCk7CiAJCQlpZ3RfZGVidWcoIlByb2Nlc3NpbmcgY2hhbm5lbCAlenUgKGNh cHR1cmVkIGFzICIKIAkJCQkgICJjaGFubmVsICVkKVxuIiwgaiwgY2FwdHVyZV9jaGFuKTsKIAog CQkJYXVkaW9fZXh0cmFjdF9jaGFubmVsX3MzMl9sZShjaGFubmVsLCBjaGFubmVsX2xlbiwKIAkJ CQkJCSAgICAgYnVmLCBidWZfbGVuLAotCQkJCQkJICAgICBjYXB0dXJlX2NoYW5uZWxzLAorCQkJ CQkJICAgICBzdGF0ZS0+Y2FwdHVyZS5jaGFubmVscywKIAkJCQkJCSAgICAgY2FwdHVyZV9jaGFu KTsKIAotCQkJaWYgKGF1ZGlvX3NpZ25hbF9kZXRlY3Qoc2lnbmFsLCBjYXB0dXJlX3JhdGUsIGos CisJCQlpZiAoYXVkaW9fc2lnbmFsX2RldGVjdChzdGF0ZS0+c2lnbmFsLAorCQkJCQkJc3RhdGUt PmNhcHR1cmUucmF0ZSwgaiwKIAkJCQkJCWNoYW5uZWwsIGNoYW5uZWxfbGVuKSkKIAkJCQlzdHJl YWsrKzsKIAkJCWVsc2UKQEAgLTEwMjMsNDkgKzExMDksMTUgQEAgZG9fdGVzdF9kaXNwbGF5X2F1 ZGlvKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LAogCQlidWZfbGVu ID0gMDsKIAkJaSsrOwogCi0JCXN1Y2Nlc3MgPSBzdHJlYWsgPT0gTUlOX1NUUkVBSyAqIHBsYXli YWNrX2NoYW5uZWxzOworCQlzdWNjZXNzID0gc3RyZWFrID09IE1JTl9TVFJFQUsgKiBzdGF0ZS0+ cGxheWJhY2suY2hhbm5lbHM7CiAJfQogCi0JaWd0X2RlYnVnKCJTdG9wcGluZyBhdWRpbyBwbGF5 YmFja1xuIik7Ci0Jc3RhdGUucnVuID0gZmFsc2U7Ci0JcmV0ID0gcHRocmVhZF9qb2luKHRocmVh ZCwgTlVMTCk7Ci0JaWd0X2Fzc2VydChyZXQgPT0gMCk7Ci0KLQlhbHNhX2Nsb3NlX291dHB1dChh bHNhKTsKLQotCWlndF9kZWJ1ZygiQXVkaW8gdGVzdCByZXN1bHQgZm9yIGZvcm1hdCAlcywgc2Ft cGxpbmcgcmF0ZSAlZCBIeiBhbmQgIgotCQkgICIlZCBjaGFubmVsczogJXNcbiIsCi0JCSAgc25k X3BjbV9mb3JtYXRfbmFtZShwbGF5YmFja19mb3JtYXQpLAotCQkgIHBsYXliYWNrX3JhdGUsIHBs YXliYWNrX2NoYW5uZWxzLAotCQkgIHN1Y2Nlc3MgPyAiQUxMIEdSRUVOIiA6ICJGQUlMRUQiKTsK LQotCWlmIChkdW1wX2ZkID49IDApIHsKLQkJY2xvc2UoZHVtcF9mZCk7Ci0JCWlmIChzdWNjZXNz KSB7Ci0JCQkvKiBUZXN0IHN1Y2NlZWRlZCwgbm8gbmVlZCB0byBrZWVwIHRoZSBjYXB0dXJlZCBk YXRhICovCi0JCQl1bmxpbmsoZHVtcF9wYXRoKTsKLQkJfSBlbHNlCi0JCQlpZ3RfZGVidWcoIlNh dmVkIGNhcHR1cmVkIGF1ZGlvIGRhdGEgdG8gJXNcbiIsIGR1bXBfcGF0aCk7Ci0JCWZyZWUoZHVt cF9wYXRoKTsKLQl9CisJYXVkaW9fc3RhdGVfc3RvcChzdGF0ZSwgc3VjY2Vzcyk7CiAKIAlmcmVl KHJlY3YpOwogCWZyZWUoYnVmKTsKIAlmcmVlKGNoYW5uZWwpOwotCi0Jb2sgPSBjaGFtZWxpdW1f c3RyZWFtX3N0b3BfcmVhbHRpbWVfYXVkaW8oc3RyZWFtKTsKLQlpZ3RfYXNzZXJ0KG9rKTsKLQot CWF1ZGlvX2ZpbGUgPSBjaGFtZWxpdW1fc3RvcF9jYXB0dXJpbmdfYXVkaW8oZGF0YS0+Y2hhbWVs aXVtLAotCQkJCQkJICAgIHBvcnQpOwotCWlmIChhdWRpb19maWxlKSB7Ci0JCWlndF9kZWJ1Zygi QXVkaW8gZmlsZSBzYXZlZCBvbiB0aGUgQ2hhbWVsaXVtIGluICVzXG4iLAotCQkJICBhdWRpb19m aWxlLT5wYXRoKTsKLQkJY2hhbWVsaXVtX2Rlc3Ryb3lfYXVkaW9fZmlsZShhdWRpb19maWxlKTsK LQl9Ci0KLQlhdWRpb19zaWduYWxfZmluaShzaWduYWwpOwotCWNoYW1lbGl1bV9zdHJlYW1fZGVp bml0KHN0cmVhbSk7CisJYXVkaW9fc2lnbmFsX2Zpbmkoc3RhdGUtPnNpZ25hbCk7CiAKIAlyZXR1 cm4gc3VjY2VzczsKIH0KQEAgLTExMTIsNiArMTE2NCw3IEBAIHRlc3RfZGlzcGxheV9hdWRpbyhk YXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCwKIAlpbnQgZmJfaWQsIGks IGo7CiAJaW50IGNoYW5uZWxzLCBzYW1wbGluZ19yYXRlOwogCXNuZF9wY21fZm9ybWF0X3QgZm9y bWF0OworCXN0cnVjdCBhdWRpb19zdGF0ZSBzdGF0ZTsKIAogCWlndF9yZXF1aXJlKGFsc2FfaGFz X2V4Y2x1c2l2ZV9hY2Nlc3MoKSk7CiAKQEAgLTExNjEsOSArMTIxNCwxMCBAQCB0ZXN0X2Rpc3Bs YXlfYXVkaW8oZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCiAKIAkJ CXJ1biA9IHRydWU7CiAKLQkJCXN1Y2Nlc3MgJj0gZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKGRhdGEs IHBvcnQsIGFsc2EsCi0JCQkJCQkJIGZvcm1hdCwgY2hhbm5lbHMsCi0JCQkJCQkJIHNhbXBsaW5n X3JhdGUpOworCQkJYXVkaW9fc3RhdGVfaW5pdCgmc3RhdGUsIGRhdGEsIGFsc2EsIHBvcnQsCisJ CQkJCSBmb3JtYXQsIGNoYW5uZWxzLCBzYW1wbGluZ19yYXRlKTsKKwkJCXN1Y2Nlc3MgJj0gZG9f dGVzdF9kaXNwbGF5X2F1ZGlvKCZzdGF0ZSk7CisJCQlhdWRpb19zdGF0ZV9maW5pKCZzdGF0ZSk7 CiAKIAkJCWFsc2FfY2xvc2Vfb3V0cHV0KGFsc2EpOwogCQl9Ci0tIAoyLjIxLjAKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBs aXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==