From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3A15589BA9 for ; Mon, 27 May 2019 14:34:49 +0000 (UTC) From: Simon Ser Date: Mon, 27 May 2019 17:34:10 +0300 Message-Id: <20190527143418.7925-3-simon.ser@intel.com> In-Reply-To: <20190527143418.7925-1-simon.ser@intel.com> References: <20190527143418.7925-1-simon.ser@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3 02/10] 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 Cc: martin.peres@intel.com List-ID: SW5zdGVhZCBvZiBzaG92aW5nIGV2ZXJ5dGhpbmcgaW50byBkb190ZXN0X2Rpc3BsYXlfYXVkaW8s IGV4dHJhY3QgdGhlIGxvZ2ljIHRvCmluaXRpYWxpemUsIHN0YXJ0LCBzdG9wLCBmaW5pc2ggYW4g YXVkaW8gdGVzdCBpbiBoZWxwZXIgZnVuY3Rpb25zLiBUaGUgc3RydWN0CmF1ZGlvX3N0YXRlIG5v dyBjYXJyaWVzIGFsbCBhdWRpby1yZWxhdGVkIHN0YXRlLgoKVGhpcyB3aWxsIGFsbG93IHRvIGVh c2lseSBhZGQgbW9yZSBhdWRpbyB0ZXN0cyB0aGF0IGRvbid0IHVzZSBzaW5lIHdhdmVzICh2aWEK YXVkaW9fc2lnbmFsKS4gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGZ1dHVyZSBkZWxheSBhbmQgYW1w bGl0dWRlIHRlc3RzLgoKU2lnbmVkLW9mZi1ieTogU2ltb24gU2VyIDxzaW1vbi5zZXJAaW50ZWwu Y29tPgpSZXZpZXdlZC1ieTogTWFydGluIFBlcmVzIDxtYXJ0aW4ucGVyZXNAbGludXguaW50ZWwu Y29tPgotLS0KIHRlc3RzL2ttc19jaGFtZWxpdW0uYyB8IDMzNiArKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOTUgaW5zZXJ0aW9ucygr KSwgMTQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jaGFtZWxpdW0uYyBi L3Rlc3RzL2ttc19jaGFtZWxpdW0uYwppbmRleCA4ZGE2ZWMyMDc1OWUuLjI3NjkzNjgxNzI4ZSAx MDA2NDQKLS0tIGEvdGVzdHMva21zX2NoYW1lbGl1bS5jCisrKyBiL3Rlc3RzL2ttc19jaGFtZWxp dW0uYwpAQCAtODEyLDE3ICs4MTIsMTc5IEBAIHN0YXRpYyBjb25zdCBzbmRfcGNtX2Zvcm1hdF90 IHRlc3RfZm9ybWF0c1tdID0gewogc3RhdGljIGNvbnN0IHNpemVfdCB0ZXN0X2Zvcm1hdHNfY291 bnQgPSBzaXplb2YodGVzdF9mb3JtYXRzKSAvIHNpemVvZih0ZXN0X2Zvcm1hdHNbMF0pOwogCiBz dHJ1Y3QgYXVkaW9fc3RhdGUgeworCXN0cnVjdCBhbHNhICphbHNhOworCXN0cnVjdCBjaGFtZWxp dW0gKmNoYW1lbGl1bTsKKwlzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQ7CisJc3RydWN0IGNo YW1lbGl1bV9zdHJlYW0gKnN0cmVhbTsKKworCS8qIFRoZSBjYXB0dXJlIGZvcm1hdCBpcyBvbmx5 IGF2YWlsYWJsZSBhZnRlciBjYXB0dXJlIGhhcyBzdGFydGVkLiAqLworCXN0cnVjdCB7CisJCXNu ZF9wY21fZm9ybWF0X3QgZm9ybWF0OworCQlpbnQgY2hhbm5lbHM7CisJCWludCByYXRlOworCX0g cGxheWJhY2ssIGNhcHR1cmU7CisKIAlzdHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWw7Ci0Jc25k X3BjbV9mb3JtYXRfdCBmb3JtYXQ7CisJaW50IGNoYW5uZWxfbWFwcGluZ1tDSEFNRUxJVU1fTUFY X0FVRElPX0NIQU5ORUxTXTsKKworCWludCBkdW1wX2ZkOworCWNoYXIgKmR1bXBfcGF0aDsKKwor CXB0aHJlYWRfdCB0aHJlYWQ7CiAJYXRvbWljX2Jvb2wgcnVuOwogfTsKIAorc3RhdGljIHZvaWQg YXVkaW9fc3RhdGVfaW5pdChzdHJ1Y3QgYXVkaW9fc3RhdGUgKnN0YXRlLCBkYXRhX3QgKmRhdGEs CisJCQkgICAgIHN0cnVjdCBhbHNhICphbHNhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQs CisJCQkgICAgIHNuZF9wY21fZm9ybWF0X3QgZm9ybWF0LCBpbnQgY2hhbm5lbHMsIGludCByYXRl KQoreworCW1lbXNldChzdGF0ZSwgMCwgc2l6ZW9mKCpzdGF0ZSkpOworCXN0YXRlLT5kdW1wX2Zk ID0gLTE7CisKKwlzdGF0ZS0+YWxzYSA9IGFsc2E7CisJc3RhdGUtPmNoYW1lbGl1bSA9IGRhdGEt PmNoYW1lbGl1bTsKKwlzdGF0ZS0+cG9ydCA9IHBvcnQ7CisKKwlzdGF0ZS0+cGxheWJhY2suZm9y bWF0ID0gZm9ybWF0OworCXN0YXRlLT5wbGF5YmFjay5jaGFubmVscyA9IGNoYW5uZWxzOworCXN0 YXRlLT5wbGF5YmFjay5yYXRlID0gcmF0ZTsKKworCWFsc2FfY29uZmlndXJlX291dHB1dChhbHNh LCBmb3JtYXQsIGNoYW5uZWxzLCByYXRlKTsKKworCXN0YXRlLT5zdHJlYW0gPSBjaGFtZWxpdW1f c3RyZWFtX2luaXQoKTsKKwlpZ3RfYXNzZXJ0KHN0YXRlLT5zdHJlYW0pOworfQorCitzdGF0aWMg dm9pZCBhdWRpb19zdGF0ZV9maW5pKHN0cnVjdCBhdWRpb19zdGF0ZSAqc3RhdGUpCit7CisJY2hh bWVsaXVtX3N0cmVhbV9kZWluaXQoc3RhdGUtPnN0cmVhbSk7Cit9CisKK3N0YXRpYyB2b2lkICpy dW5fYXVkaW9fdGhyZWFkKHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGFsc2EgKmFsc2EgPSBkYXRh OworCisJYWxzYV9ydW4oYWxzYSwgLTEpOworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9p ZCBhdWRpb19zdGF0ZV9zdGFydChzdHJ1Y3QgYXVkaW9fc3RhdGUgKnN0YXRlKQoreworCWludCBy ZXQ7CisJYm9vbCBvazsKKwlzaXplX3QgaSwgajsKKwllbnVtIGNoYW1lbGl1bV9zdHJlYW1fcmVh bHRpbWVfbW9kZSBzdHJlYW1fbW9kZTsKKwljaGFyIGR1bXBfc3VmZml4WzY0XTsKKworCWlndF9k ZWJ1ZygiU3RhcnRpbmcgdGVzdCB3aXRoIHBsYXliYWNrIGZvcm1hdCAlcywgc2FtcGxpbmcgcmF0 ZSAlZCBIeiAiCisJCSAgImFuZCAlZCBjaGFubmVsc1xuIiwKKwkJICBzbmRfcGNtX2Zvcm1hdF9u YW1lKHN0YXRlLT5wbGF5YmFjay5mb3JtYXQpLAorCQkgIHN0YXRlLT5wbGF5YmFjay5yYXRlLCBz dGF0ZS0+cGxheWJhY2suY2hhbm5lbHMpOworCisJY2hhbWVsaXVtX3N0YXJ0X2NhcHR1cmluZ19h dWRpbyhzdGF0ZS0+Y2hhbWVsaXVtLCBzdGF0ZS0+cG9ydCwgZmFsc2UpOworCisJc3RyZWFtX21v ZGUgPSBDSEFNRUxJVU1fU1RSRUFNX1JFQUxUSU1FX1NUT1BfV0hFTl9PVkVSRkxPVzsKKwlvayA9 IGNoYW1lbGl1bV9zdHJlYW1fZHVtcF9yZWFsdGltZV9hdWRpbyhzdGF0ZS0+c3RyZWFtLCBzdHJl YW1fbW9kZSk7CisJaWd0X2Fzc2VydChvayk7CisKKwkvKiBTdGFydCBwbGF5aW5nIGF1ZGlvICov CisJc3RhdGUtPnJ1biA9IHRydWU7CisJcmV0ID0gcHRocmVhZF9jcmVhdGUoJnN0YXRlLT50aHJl YWQsIE5VTEwsCisJCQkgICAgIHJ1bl9hdWRpb190aHJlYWQsIHN0YXRlLT5hbHNhKTsKKwlpZ3Rf YXNzZXJ0KHJldCA9PSAwKTsKKworCS8qIFRoZSBDaGFtZWxpdW0gZGV2aWNlIG9ubHkgc3VwcG9y dHMgdGhpcyBQQ00gZm9ybWF0LiAqLworCXN0YXRlLT5jYXB0dXJlLmZvcm1hdCA9IFNORF9QQ01f Rk9STUFUX1MzMl9MRTsKKworCS8qIE9ubHkgYWZ0ZXIgd2UndmUgc3RhcnRlZCBwbGF5aW5nIGF1 ZGlvLCB3ZSBjYW4gcmV0cmlldmUgdGhlIGNhcHR1cmUKKwkgKiBmb3JtYXQgdXNlZCBieSB0aGUg Q2hhbWVsaXVtIGRldmljZS4gKi8KKwljaGFtZWxpdW1fZ2V0X2F1ZGlvX2Zvcm1hdChzdGF0ZS0+ Y2hhbWVsaXVtLCBzdGF0ZS0+cG9ydCwKKwkJCQkgICAmc3RhdGUtPmNhcHR1cmUucmF0ZSwKKwkJ CQkgICAmc3RhdGUtPmNhcHR1cmUuY2hhbm5lbHMpOworCWlmIChzdGF0ZS0+Y2FwdHVyZS5yYXRl ID09IDApIHsKKwkJaWd0X2RlYnVnKCJBdWRpbyByZWNlaXZlciBkb2Vzbid0IGluZGljYXRlIHRo ZSBjYXB0dXJlICIKKwkJCSAic2FtcGxpbmcgcmF0ZSwgYXNzdW1pbmcgaXQncyAlZCBIelxuIiwK KwkJCSBzdGF0ZS0+cGxheWJhY2sucmF0ZSk7CisJCXN0YXRlLT5jYXB0dXJlLnJhdGUgPSBzdGF0 ZS0+cGxheWJhY2sucmF0ZTsKKwl9CisKKwljaGFtZWxpdW1fZ2V0X2F1ZGlvX2NoYW5uZWxfbWFw cGluZyhzdGF0ZS0+Y2hhbWVsaXVtLCBzdGF0ZS0+cG9ydCwKKwkJCQkJICAgIHN0YXRlLT5jaGFu bmVsX21hcHBpbmcpOworCS8qIE1ha2Ugc3VyZSB3ZSBjYW4gY2FwdHVyZSBhbGwgY2hhbm5lbHMg d2Ugc2VuZC4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgc3RhdGUtPnBsYXliYWNrLmNoYW5uZWxzOyBp KyspIHsKKwkJb2sgPSBmYWxzZTsKKwkJZm9yIChqID0gMDsgaiA8IHN0YXRlLT5jYXB0dXJlLmNo YW5uZWxzOyBqKyspIHsKKwkJCWlmIChzdGF0ZS0+Y2hhbm5lbF9tYXBwaW5nW2pdID09IGkpIHsK KwkJCQlvayA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJaWd0X2Fzc2VydChvayk7 CisJfQorCisJaWYgKGlndF9mcmFtZV9kdW1wX2lzX2VuYWJsZWQoKSkgeworCQlzbnByaW50Zihk dW1wX3N1ZmZpeCwgc2l6ZW9mKGR1bXBfc3VmZml4KSwKKwkJCSAiY2FwdHVyZS0lcy0lZGNoLSVk SHoiLAorCQkJIHNuZF9wY21fZm9ybWF0X25hbWUoc3RhdGUtPnBsYXliYWNrLmZvcm1hdCksCisJ CQkgc3RhdGUtPnBsYXliYWNrLmNoYW5uZWxzLCBzdGF0ZS0+cGxheWJhY2sucmF0ZSk7CisKKwkJ c3RhdGUtPmR1bXBfZmQgPSBhdWRpb19jcmVhdGVfd2F2X2ZpbGVfczMyX2xlKGR1bXBfc3VmZml4 LAorCQkJCQkJCSAgICAgIHN0YXRlLT5jYXB0dXJlLnJhdGUsCisJCQkJCQkJICAgICAgc3RhdGUt PmNhcHR1cmUuY2hhbm5lbHMsCisJCQkJCQkJICAgICAgJnN0YXRlLT5kdW1wX3BhdGgpOworCQlp Z3RfYXNzZXJ0KHN0YXRlLT5kdW1wX2ZkID49IDApOworCX0KK30KKworc3RhdGljIHZvaWQgYXVk aW9fc3RhdGVfc3RvcChzdHJ1Y3QgYXVkaW9fc3RhdGUgKnN0YXRlLCBib29sIHN1Y2Nlc3MpCit7 CisJYm9vbCBvazsKKwlpbnQgcmV0OworCXN0cnVjdCBjaGFtZWxpdW1fYXVkaW9fZmlsZSAqYXVk aW9fZmlsZTsKKworCWlndF9kZWJ1ZygiU3RvcHBpbmcgYXVkaW8gcGxheWJhY2tcbiIpOworCXN0 YXRlLT5ydW4gPSBmYWxzZTsKKwlyZXQgPSBwdGhyZWFkX2pvaW4oc3RhdGUtPnRocmVhZCwgTlVM TCk7CisJaWd0X2Fzc2VydChyZXQgPT0gMCk7CisKKwlvayA9IGNoYW1lbGl1bV9zdHJlYW1fc3Rv cF9yZWFsdGltZV9hdWRpbyhzdGF0ZS0+c3RyZWFtKTsKKwlpZ3RfYXNzZXJ0KG9rKTsKKworCWF1 ZGlvX2ZpbGUgPSBjaGFtZWxpdW1fc3RvcF9jYXB0dXJpbmdfYXVkaW8oc3RhdGUtPmNoYW1lbGl1 bSwKKwkJCQkJCSAgICBzdGF0ZS0+cG9ydCk7CisJaWYgKGF1ZGlvX2ZpbGUpIHsKKwkJaWd0X2Rl YnVnKCJBdWRpbyBmaWxlIHNhdmVkIG9uIHRoZSBDaGFtZWxpdW0gaW4gJXNcbiIsCisJCQkgIGF1 ZGlvX2ZpbGUtPnBhdGgpOworCQljaGFtZWxpdW1fZGVzdHJveV9hdWRpb19maWxlKGF1ZGlvX2Zp bGUpOworCX0KKworCWlmIChzdGF0ZS0+ZHVtcF9mZCA+PSAwKSB7CisJCWNsb3NlKHN0YXRlLT5k dW1wX2ZkKTsKKwkJc3RhdGUtPmR1bXBfZmQgPSAtMTsKKworCQlpZiAoc3VjY2VzcykgeworCQkJ LyogVGVzdCBzdWNjZWVkZWQsIG5vIG5lZWQgdG8ga2VlcCB0aGUgY2FwdHVyZWQgZGF0YSAqLwor CQkJdW5saW5rKHN0YXRlLT5kdW1wX3BhdGgpOworCQl9IGVsc2UKKwkJCWlndF9kZWJ1ZygiU2F2 ZWQgY2FwdHVyZWQgYXVkaW8gZGF0YSB0byAlc1xuIiwKKwkJCQkgIHN0YXRlLT5kdW1wX3BhdGgp OworCQlmcmVlKHN0YXRlLT5kdW1wX3BhdGgpOworCQlzdGF0ZS0+ZHVtcF9wYXRoID0gTlVMTDsK Kwl9CisKKwlpZ3RfZGVidWcoIkF1ZGlvIHRlc3QgcmVzdWx0IGZvciBmb3JtYXQgJXMsIHNhbXBs aW5nIHJhdGUgJWQgSHogYW5kICIKKwkJICAiJWQgY2hhbm5lbHM6ICVzXG4iLAorCQkgIHNuZF9w Y21fZm9ybWF0X25hbWUoc3RhdGUtPnBsYXliYWNrLmZvcm1hdCksCisJCSAgc3RhdGUtPnBsYXli YWNrLnJhdGUsIHN0YXRlLT5wbGF5YmFjay5jaGFubmVscywKKwkJICBzdWNjZXNzID8gIkFMTCBH UkVFTiIgOiAiRkFJTEVEIik7Cit9CisKIHN0YXRpYyBpbnQKIGF1ZGlvX291dHB1dF9jYWxsYmFj ayh2b2lkICpkYXRhLCB2b2lkICpidWZmZXIsIGludCBzYW1wbGVzKQogewogCXN0cnVjdCBhdWRp b19zdGF0ZSAqc3RhdGUgPSBkYXRhOwogCi0Jc3dpdGNoIChzdGF0ZS0+Zm9ybWF0KSB7CisJc3dp dGNoIChzdGF0ZS0+cGxheWJhY2suZm9ybWF0KSB7CiAJY2FzZSBTTkRfUENNX0ZPUk1BVF9TMTZf TEU6CiAJCWF1ZGlvX3NpZ25hbF9maWxsX3MxNl9sZShzdGF0ZS0+c2lnbmFsLCBidWZmZXIsIHNh bXBsZXMpOwogCQlicmVhazsKQEAgLTgzOSw1NSArMTAwMSwxOSBAQCBhdWRpb19vdXRwdXRfY2Fs bGJhY2sodm9pZCAqZGF0YSwgdm9pZCAqYnVmZmVyLCBpbnQgc2FtcGxlcykKIAlyZXR1cm4gc3Rh dGUtPnJ1biA/IDAgOiAtMTsKIH0KIAotc3RhdGljIHZvaWQgKgotcnVuX2F1ZGlvX3RocmVhZCh2 b2lkICpkYXRhKQorc3RhdGljIGJvb2wgZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKHN0cnVjdCBhdWRp b19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGFsc2EgKmFsc2EgPSBkYXRhOwotCi0JYWxzYV9y dW4oYWxzYSwgLTEpOwotCXJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgYm9vbAotZG9fdGVzdF9k aXNwbGF5X2F1ZGlvKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LAot CQkgICAgICBzdHJ1Y3QgYWxzYSAqYWxzYSwgc25kX3BjbV9mb3JtYXRfdCBwbGF5YmFja19mb3Jt YXQsCi0JCSAgICAgIGludCBwbGF5YmFja19jaGFubmVscywgaW50IHBsYXliYWNrX3JhdGUpCi17 Ci0JaW50IHJldCwgY2FwdHVyZV9yYXRlLCBjYXB0dXJlX2NoYW5uZWxzLCBtc2VjLCBmcmVxLCBz dGVwOwotCXN0cnVjdCBjaGFtZWxpdW1fYXVkaW9fZmlsZSAqYXVkaW9fZmlsZTsKLQlzdHJ1Y3Qg Y2hhbWVsaXVtX3N0cmVhbSAqc3RyZWFtOwotCWVudW0gY2hhbWVsaXVtX3N0cmVhbV9yZWFsdGlt ZV9tb2RlIHN0cmVhbV9tb2RlOwotCXN0cnVjdCBhdWRpb19zaWduYWwgKnNpZ25hbDsKKwlpbnQg bXNlYywgZnJlcSwgc3RlcDsKIAlpbnQzMl90ICpyZWN2LCAqYnVmOwogCWRvdWJsZSAqY2hhbm5l bDsKIAlzaXplX3QgaSwgaiwgc3RyZWFrLCBwYWdlX2NvdW50OwogCXNpemVfdCByZWN2X2xlbiwg YnVmX2xlbiwgYnVmX2NhcCwgYnVmX3NpemUsIGNoYW5uZWxfbGVuOwogCWJvb2wgb2ssIHN1Y2Nl c3M7Ci0JY2hhciBkdW1wX3N1ZmZpeFs2NF07Ci0JY2hhciAqZHVtcF9wYXRoID0gTlVMTDsKLQlp bnQgZHVtcF9mZCA9IC0xOwotCXB0aHJlYWRfdCB0aHJlYWQ7Ci0Jc3RydWN0IGF1ZGlvX3N0YXRl IHN0YXRlID0ge307Ci0JaW50IGNoYW5uZWxfbWFwcGluZ1s4XSwgY2FwdHVyZV9jaGFuOwotCi0J aWd0X2RlYnVnKCJUZXN0aW5nIHdpdGggcGxheWJhY2sgZm9ybWF0ICVzLCBzYW1wbGluZyByYXRl ICVkIEh6IGFuZCAiCi0JCSAgIiVkIGNoYW5uZWxzXG4iLAotCQkgIHNuZF9wY21fZm9ybWF0X25h bWUocGxheWJhY2tfZm9ybWF0KSwKLQkJICBwbGF5YmFja19yYXRlLCBwbGF5YmFja19jaGFubmVs cyk7Ci0JYWxzYV9jb25maWd1cmVfb3V0cHV0KGFsc2EsIHBsYXliYWNrX2Zvcm1hdCwKLQkJCSAg ICAgIHBsYXliYWNrX2NoYW5uZWxzLCBwbGF5YmFja19yYXRlKTsKKwlpbnQgY2FwdHVyZV9jaGFu OwogCi0JY2hhbWVsaXVtX3N0YXJ0X2NhcHR1cmluZ19hdWRpbyhkYXRhLT5jaGFtZWxpdW0sIHBv cnQsIGZhbHNlKTsKLQotCXN0cmVhbSA9IGNoYW1lbGl1bV9zdHJlYW1faW5pdCgpOwotCWlndF9h c3NlcnQoc3RyZWFtKTsKLQotCXN0cmVhbV9tb2RlID0gQ0hBTUVMSVVNX1NUUkVBTV9SRUFMVElN RV9TVE9QX1dIRU5fT1ZFUkZMT1c7Ci0Jb2sgPSBjaGFtZWxpdW1fc3RyZWFtX2R1bXBfcmVhbHRp bWVfYXVkaW8oc3RyZWFtLCBzdHJlYW1fbW9kZSk7Ci0JaWd0X2Fzc2VydChvayk7Ci0KLQlzaWdu YWwgPSBhdWRpb19zaWduYWxfaW5pdChwbGF5YmFja19jaGFubmVscywgcGxheWJhY2tfcmF0ZSk7 Ci0JaWd0X2Fzc2VydChzaWduYWwpOworCXN0YXRlLT5zaWduYWwgPSBhdWRpb19zaWduYWxfaW5p dChzdGF0ZS0+cGxheWJhY2suY2hhbm5lbHMsCisJCQkJCSAgc3RhdGUtPnBsYXliYWNrLnJhdGUp OworCWlndF9hc3NlcnQoc3RhdGUtPnNpZ25hbCk7CiAKIAkvKiBXZSdsbCBjaG9vc2UgZGlmZmVy ZW50IGZyZXF1ZW5jaWVzIHBlciBjaGFubmVsIHRvIG1ha2Ugc3VyZSB0aGV5IGFyZQogCSAqIGlu ZGVwZW5kZW50IGZyb20gZWFjaCBvdGhlci4gVG8gZG8gc28sIHdlJ2xsIGFkZCBhIGRpZmZlcmVu dCBvZmZzZXQKQEAgLTkwMCw2MiArMTAyNiwyMSBAQCBkb190ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0 YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCiAJICogbGF0ZXIgb24uIFdl IGNhbm5vdCByZXRyaWV2ZSB0aGUgY2FwdHVyZSByYXRlIGJlZm9yZSBzdGFydGluZwogCSAqIHBs YXlpbmcgYXVkaW8sIHNvIHdlIGRvbid0IHJlYWxseSBoYXZlIHRoZSBjaG9pY2UuCiAJICovCi0J c3RlcCA9IDIgKiBwbGF5YmFja19yYXRlIC8gQ0FQVFVSRV9TQU1QTEVTOworCXN0ZXAgPSAyICog c3RhdGUtPnBsYXliYWNrLnJhdGUgLyBDQVBUVVJFX1NBTVBMRVM7CiAJZm9yIChpID0gMDsgaSA8 IHRlc3RfZnJlcXVlbmNpZXNfY291bnQ7IGkrKykgewotCQlmb3IgKGogPSAwOyBqIDwgcGxheWJh Y2tfY2hhbm5lbHM7IGorKykgeworCQlmb3IgKGogPSAwOyBqIDwgc3RhdGUtPnBsYXliYWNrLmNo YW5uZWxzOyBqKyspIHsKIAkJCWZyZXEgPSB0ZXN0X2ZyZXF1ZW5jaWVzW2ldICsgaiAqIHN0ZXA7 Ci0JCQlhdWRpb19zaWduYWxfYWRkX2ZyZXF1ZW5jeShzaWduYWwsIGZyZXEsIGopOworCQkJYXVk aW9fc2lnbmFsX2FkZF9mcmVxdWVuY3koc3RhdGUtPnNpZ25hbCwgZnJlcSwgaik7CiAJCX0KIAl9 Ci0JYXVkaW9fc2lnbmFsX3N5bnRoZXNpemUoc2lnbmFsKTsKKwlhdWRpb19zaWduYWxfc3ludGhl c2l6ZShzdGF0ZS0+c2lnbmFsKTsKIAotCXN0YXRlLnNpZ25hbCA9IHNpZ25hbDsKLQlzdGF0ZS5m b3JtYXQgPSBwbGF5YmFja19mb3JtYXQ7Ci0Jc3RhdGUucnVuID0gdHJ1ZTsKLQlhbHNhX3JlZ2lz dGVyX291dHB1dF9jYWxsYmFjayhhbHNhLCBhdWRpb19vdXRwdXRfY2FsbGJhY2ssICZzdGF0ZSwK KwlhbHNhX3JlZ2lzdGVyX291dHB1dF9jYWxsYmFjayhzdGF0ZS0+YWxzYSwgYXVkaW9fb3V0cHV0 X2NhbGxiYWNrLCBzdGF0ZSwKIAkJCQkgICAgICBQTEFZQkFDS19TQU1QTEVTKTsKIAotCS8qIFN0 YXJ0IHBsYXlpbmcgYXVkaW8gKi8KLQlyZXQgPSBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxM LCBydW5fYXVkaW9fdGhyZWFkLCBhbHNhKTsKLQlpZ3RfYXNzZXJ0KHJldCA9PSAwKTsKKwlhdWRp b19zdGF0ZV9zdGFydChzdGF0ZSk7CiAKLQkvKiBPbmx5IGFmdGVyIHdlJ3ZlIHN0YXJ0ZWQgcGxh eWluZyBhdWRpbywgd2UgY2FuIHJldHJpZXZlIHRoZSBjYXB0dXJlCi0JICogZm9ybWF0IHVzZWQg YnkgdGhlIENoYW1lbGl1bSBkZXZpY2UuICovCi0JY2hhbWVsaXVtX2dldF9hdWRpb19mb3JtYXQo ZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LAotCQkJCSAgICZjYXB0dXJlX3JhdGUsICZjYXB0dXJlX2No YW5uZWxzKTsKLQlpZiAoY2FwdHVyZV9yYXRlID09IDApIHsKLQkJaWd0X2RlYnVnKCJBdWRpbyBy ZWNlaXZlciBkb2Vzbid0IGluZGljYXRlIHRoZSBjYXB0dXJlICIKLQkJCSAic2FtcGxpbmcgcmF0 ZSwgYXNzdW1pbmcgaXQncyAlZCBIelxuIiwgcGxheWJhY2tfcmF0ZSk7Ci0JCWNhcHR1cmVfcmF0 ZSA9IHBsYXliYWNrX3JhdGU7Ci0JfSBlbHNlCi0JCWlndF9hc3NlcnQoY2FwdHVyZV9yYXRlID09 IHBsYXliYWNrX3JhdGUpOwotCi0JY2hhbWVsaXVtX2dldF9hdWRpb19jaGFubmVsX21hcHBpbmco ZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LAotCQkJCQkgICAgY2hhbm5lbF9tYXBwaW5nKTsKLQkvKiBN YWtlIHN1cmUgd2UgY2FuIGNhcHR1cmUgYWxsIGNoYW5uZWxzIHdlIHNlbmQuICovCi0JZm9yIChp ID0gMDsgaSA8IHBsYXliYWNrX2NoYW5uZWxzOyBpKyspIHsKLQkJb2sgPSBmYWxzZTsKLQkJZm9y IChqID0gMDsgaiA8IGNhcHR1cmVfY2hhbm5lbHM7IGorKykgewotCQkJaWYgKGNoYW5uZWxfbWFw cGluZ1tqXSA9PSBpKSB7Ci0JCQkJb2sgPSB0cnVlOwotCQkJCWJyZWFrOwotCQkJfQotCQl9Ci0J CWlndF9hc3NlcnQob2spOwotCX0KLQotCWlmIChpZ3RfZnJhbWVfZHVtcF9pc19lbmFibGVkKCkp IHsKLQkJc25wcmludGYoZHVtcF9zdWZmaXgsIHNpemVvZihkdW1wX3N1ZmZpeCksCi0JCQkgImNh cHR1cmUtJXMtJWRjaC0lZEh6IiwKLQkJCSBzbmRfcGNtX2Zvcm1hdF9uYW1lKHBsYXliYWNrX2Zv cm1hdCksCi0JCQkgcGxheWJhY2tfY2hhbm5lbHMsIHBsYXliYWNrX3JhdGUpOwotCi0JCWR1bXBf ZmQgPSBhdWRpb19jcmVhdGVfd2F2X2ZpbGVfczMyX2xlKGR1bXBfc3VmZml4LAotCQkJCQkJICAg ICAgIGNhcHR1cmVfcmF0ZSwKLQkJCQkJCSAgICAgICBjYXB0dXJlX2NoYW5uZWxzLAotCQkJCQkJ ICAgICAgICZkdW1wX3BhdGgpOwotCQlpZ3RfYXNzZXJ0KGR1bXBfZmQgPj0gMCk7Ci0JfQorCWln dF9hc3NlcnQoc3RhdGUtPmNhcHR1cmUucmF0ZSA9PSBzdGF0ZS0+cGxheWJhY2sucmF0ZSk7CiAK IAkvKiBOZWVkcyB0byBiZSBhIG11bHRpcGxlIG9mIDEyOCwgYmVjYXVzZSB0aGF0J3MgdGhlIG51 bWJlciBvZiBzYW1wbGVzCiAJICogd2UgZ2V0IHBlciBjaGFubmVsIGVhY2ggdGltZSB3ZSByZWNl aXZlIGFuIGF1ZGlvIHBhZ2UgZnJvbSB0aGUKQEAgLTk3MCw3ICsxMDU1LDcgQEAgZG9fdGVzdF9k aXNwbGF5X2F1ZGlvKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LAog CWNoYW5uZWxfbGVuID0gQ0FQVFVSRV9TQU1QTEVTOwogCWNoYW5uZWwgPSBtYWxsb2Moc2l6ZW9m KGRvdWJsZSkgKiBjaGFubmVsX2xlbik7CiAKLQlidWZfY2FwID0gY2FwdHVyZV9jaGFubmVscyAq IGNoYW5uZWxfbGVuOworCWJ1Zl9jYXAgPSBzdGF0ZS0+Y2FwdHVyZS5jaGFubmVscyAqIGNoYW5u ZWxfbGVuOwogCWJ1ZiA9IG1hbGxvYyhzaXplb2YoaW50MzJfdCkgKiBidWZfY2FwKTsKIAlidWZf bGVuID0gMDsKIApAQCAtOTgyLDcgKzEwNjcsNyBAQCBkb190ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0 YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCiAJbXNlYyA9IDA7CiAJaSA9 IDA7CiAJd2hpbGUgKCFzdWNjZXNzICYmIG1zZWMgPCBBVURJT19USU1FT1VUKSB7Ci0JCW9rID0g Y2hhbWVsaXVtX3N0cmVhbV9yZWNlaXZlX3JlYWx0aW1lX2F1ZGlvKHN0cmVhbSwKKwkJb2sgPSBj aGFtZWxpdW1fc3RyZWFtX3JlY2VpdmVfcmVhbHRpbWVfYXVkaW8oc3RhdGUtPnN0cmVhbSwKIAkJ CQkJCQkgICAgICZwYWdlX2NvdW50LAogCQkJCQkJCSAgICAgJnJlY3YsICZyZWN2X2xlbik7CiAJ CWlndF9hc3NlcnQob2spOwpAQCAtOTk0LDI2ICsxMDc5LDI3IEBAIGRvX3Rlc3RfZGlzcGxheV9h dWRpbyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCwKIAkJCWNvbnRp bnVlOwogCQlpZ3RfYXNzZXJ0KGJ1Zl9sZW4gPT0gYnVmX2NhcCk7CiAKLQkJaWYgKGR1bXBfZmQg Pj0gMCkgeworCQlpZiAoc3RhdGUtPmR1bXBfZmQgPj0gMCkgewogCQkJYnVmX3NpemUgPSBidWZf bGVuICogc2l6ZW9mKGludDMyX3QpOwotCQkJaWd0X2Fzc2VydCh3cml0ZShkdW1wX2ZkLCBidWYs IGJ1Zl9zaXplKSA9PSBidWZfc2l6ZSk7CisJCQlpZ3RfYXNzZXJ0KHdyaXRlKHN0YXRlLT5kdW1w X2ZkLCBidWYsIGJ1Zl9zaXplKSA9PSBidWZfc2l6ZSk7CiAJCX0KIAotCQltc2VjID0gaSAqIGNo YW5uZWxfbGVuIC8gKGRvdWJsZSkgY2FwdHVyZV9yYXRlICogMTAwMDsKKwkJbXNlYyA9IGkgKiBj aGFubmVsX2xlbiAvIChkb3VibGUpIHN0YXRlLT5jYXB0dXJlLnJhdGUgKiAxMDAwOwogCQlpZ3Rf ZGVidWcoIkRldGVjdGluZyBhdWRpbyBzaWduYWwsIHQ9JWQgbXNlY1xuIiwgbXNlYyk7CiAKLQkJ Zm9yIChqID0gMDsgaiA8IHBsYXliYWNrX2NoYW5uZWxzOyBqKyspIHsKLQkJCWNhcHR1cmVfY2hh biA9IGNoYW5uZWxfbWFwcGluZ1tqXTsKKwkJZm9yIChqID0gMDsgaiA8IHN0YXRlLT5wbGF5YmFj ay5jaGFubmVsczsgaisrKSB7CisJCQljYXB0dXJlX2NoYW4gPSBzdGF0ZS0+Y2hhbm5lbF9tYXBw aW5nW2pdOwogCQkJaWd0X2Fzc2VydChjYXB0dXJlX2NoYW4gPj0gMCk7CiAJCQlpZ3RfZGVidWco IlByb2Nlc3NpbmcgY2hhbm5lbCAlenUgKGNhcHR1cmVkIGFzICIKIAkJCQkgICJjaGFubmVsICVk KVxuIiwgaiwgY2FwdHVyZV9jaGFuKTsKIAogCQkJYXVkaW9fZXh0cmFjdF9jaGFubmVsX3MzMl9s ZShjaGFubmVsLCBjaGFubmVsX2xlbiwKIAkJCQkJCSAgICAgYnVmLCBidWZfbGVuLAotCQkJCQkJ ICAgICBjYXB0dXJlX2NoYW5uZWxzLAorCQkJCQkJICAgICBzdGF0ZS0+Y2FwdHVyZS5jaGFubmVs cywKIAkJCQkJCSAgICAgY2FwdHVyZV9jaGFuKTsKIAotCQkJaWYgKGF1ZGlvX3NpZ25hbF9kZXRl Y3Qoc2lnbmFsLCBjYXB0dXJlX3JhdGUsIGosCisJCQlpZiAoYXVkaW9fc2lnbmFsX2RldGVjdChz dGF0ZS0+c2lnbmFsLAorCQkJCQkJc3RhdGUtPmNhcHR1cmUucmF0ZSwgaiwKIAkJCQkJCWNoYW5u ZWwsIGNoYW5uZWxfbGVuKSkKIAkJCQlzdHJlYWsrKzsKIAkJCWVsc2UKQEAgLTEwMjMsNDkgKzEx MDksMTUgQEAgZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1l bGl1bV9wb3J0ICpwb3J0LAogCQlidWZfbGVuID0gMDsKIAkJaSsrOwogCi0JCXN1Y2Nlc3MgPSBz dHJlYWsgPT0gTUlOX1NUUkVBSyAqIHBsYXliYWNrX2NoYW5uZWxzOworCQlzdWNjZXNzID0gc3Ry ZWFrID09IE1JTl9TVFJFQUsgKiBzdGF0ZS0+cGxheWJhY2suY2hhbm5lbHM7CiAJfQogCi0JaWd0 X2RlYnVnKCJTdG9wcGluZyBhdWRpbyBwbGF5YmFja1xuIik7Ci0Jc3RhdGUucnVuID0gZmFsc2U7 Ci0JcmV0ID0gcHRocmVhZF9qb2luKHRocmVhZCwgTlVMTCk7Ci0JaWd0X2Fzc2VydChyZXQgPT0g MCk7Ci0KLQlhbHNhX2Nsb3NlX291dHB1dChhbHNhKTsKLQotCWlndF9kZWJ1ZygiQXVkaW8gdGVz dCByZXN1bHQgZm9yIGZvcm1hdCAlcywgc2FtcGxpbmcgcmF0ZSAlZCBIeiBhbmQgIgotCQkgICIl ZCBjaGFubmVsczogJXNcbiIsCi0JCSAgc25kX3BjbV9mb3JtYXRfbmFtZShwbGF5YmFja19mb3Jt YXQpLAotCQkgIHBsYXliYWNrX3JhdGUsIHBsYXliYWNrX2NoYW5uZWxzLAotCQkgIHN1Y2Nlc3Mg PyAiQUxMIEdSRUVOIiA6ICJGQUlMRUQiKTsKLQotCWlmIChkdW1wX2ZkID49IDApIHsKLQkJY2xv c2UoZHVtcF9mZCk7Ci0JCWlmIChzdWNjZXNzKSB7Ci0JCQkvKiBUZXN0IHN1Y2NlZWRlZCwgbm8g bmVlZCB0byBrZWVwIHRoZSBjYXB0dXJlZCBkYXRhICovCi0JCQl1bmxpbmsoZHVtcF9wYXRoKTsK LQkJfSBlbHNlCi0JCQlpZ3RfZGVidWcoIlNhdmVkIGNhcHR1cmVkIGF1ZGlvIGRhdGEgdG8gJXNc biIsIGR1bXBfcGF0aCk7Ci0JCWZyZWUoZHVtcF9wYXRoKTsKLQl9CisJYXVkaW9fc3RhdGVfc3Rv cChzdGF0ZSwgc3VjY2Vzcyk7CiAKIAlmcmVlKHJlY3YpOwogCWZyZWUoYnVmKTsKIAlmcmVlKGNo YW5uZWwpOwotCi0Jb2sgPSBjaGFtZWxpdW1fc3RyZWFtX3N0b3BfcmVhbHRpbWVfYXVkaW8oc3Ry ZWFtKTsKLQlpZ3RfYXNzZXJ0KG9rKTsKLQotCWF1ZGlvX2ZpbGUgPSBjaGFtZWxpdW1fc3RvcF9j YXB0dXJpbmdfYXVkaW8oZGF0YS0+Y2hhbWVsaXVtLAotCQkJCQkJICAgIHBvcnQpOwotCWlmIChh dWRpb19maWxlKSB7Ci0JCWlndF9kZWJ1ZygiQXVkaW8gZmlsZSBzYXZlZCBvbiB0aGUgQ2hhbWVs aXVtIGluICVzXG4iLAotCQkJICBhdWRpb19maWxlLT5wYXRoKTsKLQkJY2hhbWVsaXVtX2Rlc3Ry b3lfYXVkaW9fZmlsZShhdWRpb19maWxlKTsKLQl9Ci0KLQlhdWRpb19zaWduYWxfZmluaShzaWdu YWwpOwotCWNoYW1lbGl1bV9zdHJlYW1fZGVpbml0KHN0cmVhbSk7CisJYXVkaW9fc2lnbmFsX2Zp bmkoc3RhdGUtPnNpZ25hbCk7CiAKIAlyZXR1cm4gc3VjY2VzczsKIH0KQEAgLTExMTIsNiArMTE2 NCw3IEBAIHRlc3RfZGlzcGxheV9hdWRpbyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1f cG9ydCAqcG9ydCwKIAlpbnQgZmJfaWQsIGksIGo7CiAJaW50IGNoYW5uZWxzLCBzYW1wbGluZ19y YXRlOwogCXNuZF9wY21fZm9ybWF0X3QgZm9ybWF0OworCXN0cnVjdCBhdWRpb19zdGF0ZSBzdGF0 ZTsKIAogCWlndF9yZXF1aXJlKGFsc2FfaGFzX2V4Y2x1c2l2ZV9hY2Nlc3MoKSk7CiAKQEAgLTEx NjEsOSArMTIxNCwxMCBAQCB0ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0YV90ICpkYXRhLCBzdHJ1Y3Qg Y2hhbWVsaXVtX3BvcnQgKnBvcnQsCiAKIAkJCXJ1biA9IHRydWU7CiAKLQkJCXN1Y2Nlc3MgJj0g ZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKGRhdGEsIHBvcnQsIGFsc2EsCi0JCQkJCQkJIGZvcm1hdCwg Y2hhbm5lbHMsCi0JCQkJCQkJIHNhbXBsaW5nX3JhdGUpOworCQkJYXVkaW9fc3RhdGVfaW5pdCgm c3RhdGUsIGRhdGEsIGFsc2EsIHBvcnQsCisJCQkJCSBmb3JtYXQsIGNoYW5uZWxzLCBzYW1wbGlu Z19yYXRlKTsKKwkJCXN1Y2Nlc3MgJj0gZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKCZzdGF0ZSk7CisJ CQlhdWRpb19zdGF0ZV9maW5pKCZzdGF0ZSk7CiAKIAkJCWFsc2FfY2xvc2Vfb3V0cHV0KGFsc2Ep OwogCQl9Ci0tIAoyLjIxLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRl dg==