From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 805DE6E08C for ; Tue, 17 Apr 2018 08:41:42 +0000 (UTC) Received: by mail-wr0-x244.google.com with SMTP id q6so21001844wrd.6 for ; Tue, 17 Apr 2018 01:41:42 -0700 (PDT) From: Tvrtko Ursulin Date: Tue, 17 Apr 2018 09:41:11 +0100 Message-Id: <20180417084112.8352-1-tvrtko.ursulin@linux.intel.com> Subject: [igt-dev] [CI i-g-t 1/2] tests/gem_exec_latency: New subtests for checking submission from RT tasks List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 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: Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldlIHdhbnQg dG8gbWFrZSBzdXJlIFJUIHRhc2tzIHdoaWNoIHVzZSBhIGxvdCBvZiBDUFUgdGltZXMgY2FuIHN1 Ym1pdApiYXRjaCBidWZmZXJzIHdpdGggcm91Z2hseSB0aGUgc2FtZSBsYXRlbmN5IChhbmQgY2Vy dGFpbmx5IG5vdCB3b3JzZSkKY29tcGFyZWQgdG8gbm9ybWFsIHRhc2tzLgoKU2lnbmVkLW9mZi1i eTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIHRlc3RzL2dlbV9leGVjX2xhdGVu Y3kuYyB8IDE3NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDE3NiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdGVzdHMv Z2VtX2V4ZWNfbGF0ZW5jeS5jIGIvdGVzdHMvZ2VtX2V4ZWNfbGF0ZW5jeS5jCmluZGV4IDk0OThj MDkyMWU2MC4uNDIwZWRlMGY4M2EwIDEwMDY0NAotLS0gYS90ZXN0cy9nZW1fZXhlY19sYXRlbmN5 LmMKKysrIGIvdGVzdHMvZ2VtX2V4ZWNfbGF0ZW5jeS5jCkBAIC0zNiwxMSArMzYsMTUgQEAKICNp bmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1ZGUgPHN5cy9zaWduYWwuaD4KICNpbmNsdWRlIDx0 aW1lLmg+CisjaW5jbHVkZSA8c2NoZWQuaD4KIAogI2luY2x1ZGUgImRybS5oIgogCiAjaW5jbHVk ZSAiaWd0X3N5c2ZzLmgiCiAjaW5jbHVkZSAiaWd0X3ZnZW0uaCIKKyNpbmNsdWRlICJpZ3RfZHVt bXlsb2FkLmgiCisjaW5jbHVkZSAiaWd0X3N0YXRzLmgiCisKICNpbmNsdWRlICJpOTE1L2dlbV9y aW5nLmgiCiAKICNkZWZpbmUgTE9DQUxfSTkxNV9FWEVDX05PX1JFTE9DICgxPDwxMSkKQEAgLTM1 MSw2ICszNTUsMTcyIEBAIHN0YXRpYyB2b2lkIGxhdGVuY3lfZnJvbV9yaW5nKGludCBmZCwKIAl9 CiB9CiAKK3N0YXRpYyB2b2lkIF9fcmVhcm1fc3Bpbl9iYXRjaChpZ3Rfc3Bpbl90ICpzcGluKQor eworCWNvbnN0IHVpbnQzMl90IG1pX2FyYl9jaGsgPSAweDUgPDwgMjM7CisKKyAgICAgICAqc3Bp bi0+YmF0Y2ggPSBtaV9hcmJfY2hrOworICAgICAgICpzcGluLT5ydW5uaW5nID0gMDsKKyAgICAg ICBfX3N5bmNfc3luY2hyb25pemUoKTsKK30KKworc3RhdGljIHZvaWQKK19fc3VibWl0X3NwaW5f YmF0Y2goaW50IGZkLCBpZ3Rfc3Bpbl90ICpzcGluLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJ c3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBlYiA9IHNwaW4tPmV4ZWNidWY7CisKKwll Yi5mbGFncyAmPSB+KDB4M2YgfCBJOTE1X0VYRUNfQlNEX01BU0spOworCWViLmZsYWdzIHw9IGZs YWdzIHwgSTkxNV9FWEVDX05PX1JFTE9DOworCisJZ2VtX2V4ZWNidWYoZmQsICZlYik7Cit9CisK K3N0cnVjdCBydF9wa3QKK3sKKyNkZWZpbmUgUlRfT0sgKDApCisjZGVmaW5lIFJUX0ZBSUwgKDEp CisjZGVmaW5lIFJUX1RJTUVPVVQgKDIpCisJaW50IHN0YXR1czsKKwlzdHJ1Y3QgaWd0X21lYW4g bWVhbjsKKwlkb3VibGUgbWF4OworfTsKKworc3RhdGljIHZvaWQgX19zcGluX3dhaXQoc3RydWN0 IHJ0X3BrdCAqbXNnLCBpZ3Rfc3Bpbl90ICpzcGluLCBkb3VibGUgKnRfd2FpdCkKK3sKKwlzdHJ1 Y3QgdGltZXNwZWMgdHMgPSB7IH07CisJdWludDY0X3QgdF9sYXN0ID0gMDsKKworCWlndF9uc2Vj X2VsYXBzZWQoJnRzKTsKKworCXdoaWxlICghUkVBRF9PTkNFKCpzcGluLT5ydW5uaW5nKSkgewor CQl1aW50NjRfdCB0ID0gaWd0X25zZWNfZWxhcHNlZCgmdHMpOworCisJCWlmICgodCAtIHRfbGFz dCkgPiA1VUwgKiBOU0VDX1BFUl9TRUMpIHsKKwkJCSAvKiBBYnNvbHV0ZSB0aW1lb3V0IHRvIHNh dmUgdGltZS4gKi8KKwkJCW1zZy0+c3RhdHVzID0gUlRfVElNRU9VVDsKKwkJfSBlbHNlIGlmICgo dCAtIHRfbGFzdCkgPiBOU0VDX1BFUl9TRUMgLyAxMCkgeworCQkJLyogQmFja29mZiBldmVyeSAx MDBtcyB0byBnaXZlIGl0IGNoYW5jZSB0byBjb21wbGV0ZS4gKi8KKwkJCXRfbGFzdCA9IHQ7CisJ CQl1c2xlZXAoMSk7CisJCX0KKwl9CisKKwkqdF93YWl0ID0gaWd0X25zZWNfZWxhcHNlZCgmdHMp IC8gMWU5OworCisJbXNnLT5zdGF0dXMgPSBSVF9PSzsKK30KKworLyoKKyAqIFRlc3Qgd2hldGhl ciBSVCB0aHJlYWQgd2hpY2ggaG9ncyB0aGUgQ1BVIGEgbG90IGNhbiBzdWJtaXQgd29yayB3aXRo CisgKiByZWFzb25hYmxlIGxhdGVuY3kuCisgKi8KK3N0YXRpYyB2b2lkCitydGhvZ19sYXRlbmN5 X29uX3JpbmcoaW50IGZkLCB1bnNpZ25lZCBpbnQgcmluZywgY29uc3QgY2hhciAqbmFtZSkKK3sK Kwljb25zdCBjaGFyICpwYXNzbmFtZVtdID0geyAid2FybXVwIiwgIm5vcm1hbCIsICJydCIgfTsK KwlzdHJ1Y3QgcnRfcGt0IHJlc1szXTsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgbGlua1syXTsK KwlpbnQgcmV0OworCisJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgcmluZykp OworCisJaWd0X2Fzc2VydChwaXBlKGxpbmspID09IDApOworCisJbWVtc2V0KHJlcywgMCwgc2l6 ZW9mKHJlcykpOworCisgICAgICAgIGlndF9mb3JrKGNoaWxkLCAxKSB7CisJCXVuc2lnbmVkIGlu dCBwYXNzID0gMDsgLyogVGhyZWUgcGFzc2VzOiB3YXJtdXAsIG5vcm1hbCwgcnQuICovCisKKwkJ ZG8geworCQkJc3RydWN0IHJ0X3BrdCBtc2cgPSB7IH07CisJCQlpZ3Rfc3Bpbl90ICpzcGluOwor CisJCQlpZ3RfbWVhbl9pbml0KCZtc2cubWVhbik7CisKKwkJCWlmIChwYXNzID09IDIpIHsKKwkJ CQlzdHJ1Y3Qgc2NoZWRfcGFyYW0gcnQgPQorCQkJCQkJeyAuc2NoZWRfcHJpb3JpdHkgPSA5OSB9 OworCisJCQkJcmV0ID0gc2NoZWRfc2V0c2NoZWR1bGVyKDAsCisJCQkJCQkJU0NIRURfRklGTyB8 IFNDSEVEX1JFU0VUX09OX0ZPUkssCisJCQkJCQkJJnJ0KTsKKwkJCQlpZiAocmV0KSB7CisJCQkJ CWlndF93YXJuKCJGYWlsZWQgdG8gc2V0IHNjaGVkdWxpbmcgcG9saWN5IVxuIik7CisJCQkJCW1z Zy5zdGF0dXMgPSBSVF9GQUlMOworCQkJCQl3cml0ZShsaW5rWzFdLCAmbXNnLCBzaXplb2YobXNn KSk7CisJCQkJCWV4aXQoMSk7CisJCQkJfQorCQkJfQorCisJCQlzcGluID0gX19pZ3Rfc3Bpbl9i YXRjaF9uZXdfcG9sbChmZCwgMCwgcmluZyk7CisJCQlpZiAoIXNwaW4pIHsKKwkJCQlpZ3Rfd2Fy bigiRmFpbGVkIHRvIGNyZWF0ZSBzcGlubmVyISAoJXMpXG4iLAorCQkJCQkgcGFzc25hbWVbcGFz c10pOworCQkJCW1zZy5zdGF0dXMgPSBSVF9GQUlMOworCQkJCXdyaXRlKGxpbmtbMV0sICZtc2cs IHNpemVvZihtc2cpKTsKKwkJCQlleGl0KDEpOworCQkJfQorCQkJaWd0X3NwaW5fYnVzeXdhaXRf dW50aWxfcnVubmluZyhzcGluKTsKKworCQkJaWd0X3VudGlsX3RpbWVvdXQocGFzcyA+IDAgPyA1 IDogMikgeworCQkJCWRvdWJsZSB0OworCisJCQkJaWd0X3NwaW5fYmF0Y2hfZW5kKHNwaW4pOwor CQkJCWdlbV9zeW5jKGZkLCBzcGluLT5oYW5kbGUpOworCisJCQkJX19yZWFybV9zcGluX2JhdGNo KHNwaW4pOworCQkJCV9fc3VibWl0X3NwaW5fYmF0Y2goZmQsIHNwaW4sIHJpbmcpOworCisJCQkJ X19zcGluX3dhaXQoJm1zZywgc3BpbiwgJnQpOworCQkJCWlmIChtc2cuc3RhdHVzICE9IFJUX09L KSB7CisJCQkJCWlndF93YXJuKCJXYWl0IHRpbWVvdXQhICglcylcbiIsCisJCQkJCQkgcGFzc25h bWVbcGFzc10pOworCQkJCQl3cml0ZShsaW5rWzFdLCAmbXNnLCBzaXplb2YobXNnKSk7CisJCQkJ CWV4aXQoMSk7CisJCQkJfQorCisJCQkJaWYgKHQgPiBtc2cubWF4KQorCQkJCQltc2cubWF4ID0g dDsKKworCQkJCWlndF9tZWFuX2FkZCgmbXNnLm1lYW4sIHQpOworCQkJfQorCisJCQlpZ3Rfc3Bp bl9iYXRjaF9mcmVlKGZkLCBzcGluKTsKKworCQkJaWd0X2luZm8oIiUxMHM6IG1lYW49JS4yZnVz IHZhcmlhbmNlPSUuMmZ1cyBtYXg9JS4yZnVzIChuPSVsdSlcbiIsCisJCQkJIHBhc3NuYW1lW3Bh c3NdLAorCQkJCSBpZ3RfbWVhbl9nZXQoJm1zZy5tZWFuKSAqIDFlNiwKKwkJCQkgaWd0X21lYW5f Z2V0X3ZhcmlhbmNlKCZtc2cubWVhbikgKiAxZTYsCisJCQkJIG1zZy5tYXggKiAxZTYsCisJCQkJ IG1zZy5tZWFuLmNvdW50KTsKKworCQkJd3JpdGUobGlua1sxXSwgJm1zZywgc2l6ZW9mKG1zZykp OworCQl9IHdoaWxlICgrK3Bhc3MgPCAzKTsKKworCQlleGl0KDApOworCX0KKworCWZvciAoaSA9 IDA7IGkgPCAzOyBpKyspIHsKKwkJcmV0ID0gcmVhZChsaW5rWzBdLCAmcmVzW2ldLCBzaXplb2Yo cmVzWzBdKSk7CisJCWlndF9hc3NlcnRfZXEocmV0LCBzaXplb2YocmVzWzBdKSk7CisKKwkJaWd0 X2Fzc2VydF9lcShyZXNbaV0uc3RhdHVzLCBSVF9PSyk7CisJfQorCisJY2xvc2UobGlua1swXSk7 CisJY2xvc2UobGlua1sxXSk7CisKKwlpZ3Rfd2FpdGNoaWxkcmVuKCk7CisKKwkvKgorCSAqIENo ZWNrIHRoYXQgdGhlIHN1Ym1pc3Npb24gbGF0ZW5jeSB2YXJpYW5jZSBmb3IgYSB0YXNrIHdpdGgg UlQKKwkgKiBwcmlvcml0eSBpcyBubyBsYXJnZXIgdGhhbiB0aHJlZSB0aW1lcyB0aGUgc2FtZSBv ZiBhIG5vcm1hbCB0YXNrLgorCSAqLworCWlndF9hc3NlcnQoaWd0X21lYW5fZ2V0X3ZhcmlhbmNl KCZyZXNbMl0ubWVhbikgPAorCQkgICBpZ3RfbWVhbl9nZXRfdmFyaWFuY2UoJnJlc1sxXS5tZWFu KSAqIDMpOworfQorCiBpZ3RfbWFpbgogewogCWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25f ZW5naW5lICplOwpAQCAtMzkxLDYgKzU2MSwxMiBAQCBpZ3RfbWFpbgogCQkJCQkJCWUtPmV4ZWNf aWQgfCBlLT5mbGFncywKIAkJCQkJCQllLT5uYW1lLCAwKTsKIAorCQkJCWlndF9zdWJ0ZXN0X2Yo IiVzLXJ0aG9nLXN1Ym1pdCIsIGUtPm5hbWUpCisJCQkJCXJ0aG9nX2xhdGVuY3lfb25fcmluZyhk ZXZpY2UsCisJCQkJCQkJICAgICAgZS0+ZXhlY19pZCB8CisJCQkJCQkJICAgICAgZS0+ZmxhZ3Ms CisJCQkJCQkJICAgICAgZS0+bmFtZSk7CisKIAkJCQlpZ3Rfc3VidGVzdF9mKCIlcy1kaXNwYXRj aC1xdWV1ZWQiLCBlLT5uYW1lKQogCQkJCQlsYXRlbmN5X29uX3JpbmcoZGV2aWNlLAogCQkJCQkJ CWUtPmV4ZWNfaWQgfCBlLT5mbGFncywKLS0gCjIuMTQuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pZ3QtZGV2Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [CI i-g-t 1/2] tests/gem_exec_latency: New subtests for checking submission from RT tasks Date: Tue, 17 Apr 2018 09:41:11 +0100 Message-ID: <20180417084112.8352-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x241.google.com (mail-wr0-x241.google.com [IPv6:2a00:1450:400c:c0c::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6B0666E060 for ; Tue, 17 Apr 2018 08:41:42 +0000 (UTC) Received: by mail-wr0-x241.google.com with SMTP id d1so33089936wrj.13 for ; Tue, 17 Apr 2018 01:41:42 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldlIHdhbnQg dG8gbWFrZSBzdXJlIFJUIHRhc2tzIHdoaWNoIHVzZSBhIGxvdCBvZiBDUFUgdGltZXMgY2FuIHN1 Ym1pdApiYXRjaCBidWZmZXJzIHdpdGggcm91Z2hseSB0aGUgc2FtZSBsYXRlbmN5IChhbmQgY2Vy dGFpbmx5IG5vdCB3b3JzZSkKY29tcGFyZWQgdG8gbm9ybWFsIHRhc2tzLgoKU2lnbmVkLW9mZi1i eTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIHRlc3RzL2dlbV9leGVjX2xhdGVu Y3kuYyB8IDE3NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDE3NiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdGVzdHMv Z2VtX2V4ZWNfbGF0ZW5jeS5jIGIvdGVzdHMvZ2VtX2V4ZWNfbGF0ZW5jeS5jCmluZGV4IDk0OThj MDkyMWU2MC4uNDIwZWRlMGY4M2EwIDEwMDY0NAotLS0gYS90ZXN0cy9nZW1fZXhlY19sYXRlbmN5 LmMKKysrIGIvdGVzdHMvZ2VtX2V4ZWNfbGF0ZW5jeS5jCkBAIC0zNiwxMSArMzYsMTUgQEAKICNp bmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1ZGUgPHN5cy9zaWduYWwuaD4KICNpbmNsdWRlIDx0 aW1lLmg+CisjaW5jbHVkZSA8c2NoZWQuaD4KIAogI2luY2x1ZGUgImRybS5oIgogCiAjaW5jbHVk ZSAiaWd0X3N5c2ZzLmgiCiAjaW5jbHVkZSAiaWd0X3ZnZW0uaCIKKyNpbmNsdWRlICJpZ3RfZHVt bXlsb2FkLmgiCisjaW5jbHVkZSAiaWd0X3N0YXRzLmgiCisKICNpbmNsdWRlICJpOTE1L2dlbV9y aW5nLmgiCiAKICNkZWZpbmUgTE9DQUxfSTkxNV9FWEVDX05PX1JFTE9DICgxPDwxMSkKQEAgLTM1 MSw2ICszNTUsMTcyIEBAIHN0YXRpYyB2b2lkIGxhdGVuY3lfZnJvbV9yaW5nKGludCBmZCwKIAl9 CiB9CiAKK3N0YXRpYyB2b2lkIF9fcmVhcm1fc3Bpbl9iYXRjaChpZ3Rfc3Bpbl90ICpzcGluKQor eworCWNvbnN0IHVpbnQzMl90IG1pX2FyYl9jaGsgPSAweDUgPDwgMjM7CisKKyAgICAgICAqc3Bp bi0+YmF0Y2ggPSBtaV9hcmJfY2hrOworICAgICAgICpzcGluLT5ydW5uaW5nID0gMDsKKyAgICAg ICBfX3N5bmNfc3luY2hyb25pemUoKTsKK30KKworc3RhdGljIHZvaWQKK19fc3VibWl0X3NwaW5f YmF0Y2goaW50IGZkLCBpZ3Rfc3Bpbl90ICpzcGluLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJ c3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBlYiA9IHNwaW4tPmV4ZWNidWY7CisKKwll Yi5mbGFncyAmPSB+KDB4M2YgfCBJOTE1X0VYRUNfQlNEX01BU0spOworCWViLmZsYWdzIHw9IGZs YWdzIHwgSTkxNV9FWEVDX05PX1JFTE9DOworCisJZ2VtX2V4ZWNidWYoZmQsICZlYik7Cit9CisK K3N0cnVjdCBydF9wa3QKK3sKKyNkZWZpbmUgUlRfT0sgKDApCisjZGVmaW5lIFJUX0ZBSUwgKDEp CisjZGVmaW5lIFJUX1RJTUVPVVQgKDIpCisJaW50IHN0YXR1czsKKwlzdHJ1Y3QgaWd0X21lYW4g bWVhbjsKKwlkb3VibGUgbWF4OworfTsKKworc3RhdGljIHZvaWQgX19zcGluX3dhaXQoc3RydWN0 IHJ0X3BrdCAqbXNnLCBpZ3Rfc3Bpbl90ICpzcGluLCBkb3VibGUgKnRfd2FpdCkKK3sKKwlzdHJ1 Y3QgdGltZXNwZWMgdHMgPSB7IH07CisJdWludDY0X3QgdF9sYXN0ID0gMDsKKworCWlndF9uc2Vj X2VsYXBzZWQoJnRzKTsKKworCXdoaWxlICghUkVBRF9PTkNFKCpzcGluLT5ydW5uaW5nKSkgewor CQl1aW50NjRfdCB0ID0gaWd0X25zZWNfZWxhcHNlZCgmdHMpOworCisJCWlmICgodCAtIHRfbGFz dCkgPiA1VUwgKiBOU0VDX1BFUl9TRUMpIHsKKwkJCSAvKiBBYnNvbHV0ZSB0aW1lb3V0IHRvIHNh dmUgdGltZS4gKi8KKwkJCW1zZy0+c3RhdHVzID0gUlRfVElNRU9VVDsKKwkJfSBlbHNlIGlmICgo dCAtIHRfbGFzdCkgPiBOU0VDX1BFUl9TRUMgLyAxMCkgeworCQkJLyogQmFja29mZiBldmVyeSAx MDBtcyB0byBnaXZlIGl0IGNoYW5jZSB0byBjb21wbGV0ZS4gKi8KKwkJCXRfbGFzdCA9IHQ7CisJ CQl1c2xlZXAoMSk7CisJCX0KKwl9CisKKwkqdF93YWl0ID0gaWd0X25zZWNfZWxhcHNlZCgmdHMp IC8gMWU5OworCisJbXNnLT5zdGF0dXMgPSBSVF9PSzsKK30KKworLyoKKyAqIFRlc3Qgd2hldGhl ciBSVCB0aHJlYWQgd2hpY2ggaG9ncyB0aGUgQ1BVIGEgbG90IGNhbiBzdWJtaXQgd29yayB3aXRo CisgKiByZWFzb25hYmxlIGxhdGVuY3kuCisgKi8KK3N0YXRpYyB2b2lkCitydGhvZ19sYXRlbmN5 X29uX3JpbmcoaW50IGZkLCB1bnNpZ25lZCBpbnQgcmluZywgY29uc3QgY2hhciAqbmFtZSkKK3sK Kwljb25zdCBjaGFyICpwYXNzbmFtZVtdID0geyAid2FybXVwIiwgIm5vcm1hbCIsICJydCIgfTsK KwlzdHJ1Y3QgcnRfcGt0IHJlc1szXTsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgbGlua1syXTsK KwlpbnQgcmV0OworCisJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgcmluZykp OworCisJaWd0X2Fzc2VydChwaXBlKGxpbmspID09IDApOworCisJbWVtc2V0KHJlcywgMCwgc2l6 ZW9mKHJlcykpOworCisgICAgICAgIGlndF9mb3JrKGNoaWxkLCAxKSB7CisJCXVuc2lnbmVkIGlu dCBwYXNzID0gMDsgLyogVGhyZWUgcGFzc2VzOiB3YXJtdXAsIG5vcm1hbCwgcnQuICovCisKKwkJ ZG8geworCQkJc3RydWN0IHJ0X3BrdCBtc2cgPSB7IH07CisJCQlpZ3Rfc3Bpbl90ICpzcGluOwor CisJCQlpZ3RfbWVhbl9pbml0KCZtc2cubWVhbik7CisKKwkJCWlmIChwYXNzID09IDIpIHsKKwkJ CQlzdHJ1Y3Qgc2NoZWRfcGFyYW0gcnQgPQorCQkJCQkJeyAuc2NoZWRfcHJpb3JpdHkgPSA5OSB9 OworCisJCQkJcmV0ID0gc2NoZWRfc2V0c2NoZWR1bGVyKDAsCisJCQkJCQkJU0NIRURfRklGTyB8 IFNDSEVEX1JFU0VUX09OX0ZPUkssCisJCQkJCQkJJnJ0KTsKKwkJCQlpZiAocmV0KSB7CisJCQkJ CWlndF93YXJuKCJGYWlsZWQgdG8gc2V0IHNjaGVkdWxpbmcgcG9saWN5IVxuIik7CisJCQkJCW1z Zy5zdGF0dXMgPSBSVF9GQUlMOworCQkJCQl3cml0ZShsaW5rWzFdLCAmbXNnLCBzaXplb2YobXNn KSk7CisJCQkJCWV4aXQoMSk7CisJCQkJfQorCQkJfQorCisJCQlzcGluID0gX19pZ3Rfc3Bpbl9i YXRjaF9uZXdfcG9sbChmZCwgMCwgcmluZyk7CisJCQlpZiAoIXNwaW4pIHsKKwkJCQlpZ3Rfd2Fy bigiRmFpbGVkIHRvIGNyZWF0ZSBzcGlubmVyISAoJXMpXG4iLAorCQkJCQkgcGFzc25hbWVbcGFz c10pOworCQkJCW1zZy5zdGF0dXMgPSBSVF9GQUlMOworCQkJCXdyaXRlKGxpbmtbMV0sICZtc2cs IHNpemVvZihtc2cpKTsKKwkJCQlleGl0KDEpOworCQkJfQorCQkJaWd0X3NwaW5fYnVzeXdhaXRf dW50aWxfcnVubmluZyhzcGluKTsKKworCQkJaWd0X3VudGlsX3RpbWVvdXQocGFzcyA+IDAgPyA1 IDogMikgeworCQkJCWRvdWJsZSB0OworCisJCQkJaWd0X3NwaW5fYmF0Y2hfZW5kKHNwaW4pOwor CQkJCWdlbV9zeW5jKGZkLCBzcGluLT5oYW5kbGUpOworCisJCQkJX19yZWFybV9zcGluX2JhdGNo KHNwaW4pOworCQkJCV9fc3VibWl0X3NwaW5fYmF0Y2goZmQsIHNwaW4sIHJpbmcpOworCisJCQkJ X19zcGluX3dhaXQoJm1zZywgc3BpbiwgJnQpOworCQkJCWlmIChtc2cuc3RhdHVzICE9IFJUX09L KSB7CisJCQkJCWlndF93YXJuKCJXYWl0IHRpbWVvdXQhICglcylcbiIsCisJCQkJCQkgcGFzc25h bWVbcGFzc10pOworCQkJCQl3cml0ZShsaW5rWzFdLCAmbXNnLCBzaXplb2YobXNnKSk7CisJCQkJ CWV4aXQoMSk7CisJCQkJfQorCisJCQkJaWYgKHQgPiBtc2cubWF4KQorCQkJCQltc2cubWF4ID0g dDsKKworCQkJCWlndF9tZWFuX2FkZCgmbXNnLm1lYW4sIHQpOworCQkJfQorCisJCQlpZ3Rfc3Bp bl9iYXRjaF9mcmVlKGZkLCBzcGluKTsKKworCQkJaWd0X2luZm8oIiUxMHM6IG1lYW49JS4yZnVz IHZhcmlhbmNlPSUuMmZ1cyBtYXg9JS4yZnVzIChuPSVsdSlcbiIsCisJCQkJIHBhc3NuYW1lW3Bh c3NdLAorCQkJCSBpZ3RfbWVhbl9nZXQoJm1zZy5tZWFuKSAqIDFlNiwKKwkJCQkgaWd0X21lYW5f Z2V0X3ZhcmlhbmNlKCZtc2cubWVhbikgKiAxZTYsCisJCQkJIG1zZy5tYXggKiAxZTYsCisJCQkJ IG1zZy5tZWFuLmNvdW50KTsKKworCQkJd3JpdGUobGlua1sxXSwgJm1zZywgc2l6ZW9mKG1zZykp OworCQl9IHdoaWxlICgrK3Bhc3MgPCAzKTsKKworCQlleGl0KDApOworCX0KKworCWZvciAoaSA9 IDA7IGkgPCAzOyBpKyspIHsKKwkJcmV0ID0gcmVhZChsaW5rWzBdLCAmcmVzW2ldLCBzaXplb2Yo cmVzWzBdKSk7CisJCWlndF9hc3NlcnRfZXEocmV0LCBzaXplb2YocmVzWzBdKSk7CisKKwkJaWd0 X2Fzc2VydF9lcShyZXNbaV0uc3RhdHVzLCBSVF9PSyk7CisJfQorCisJY2xvc2UobGlua1swXSk7 CisJY2xvc2UobGlua1sxXSk7CisKKwlpZ3Rfd2FpdGNoaWxkcmVuKCk7CisKKwkvKgorCSAqIENo ZWNrIHRoYXQgdGhlIHN1Ym1pc3Npb24gbGF0ZW5jeSB2YXJpYW5jZSBmb3IgYSB0YXNrIHdpdGgg UlQKKwkgKiBwcmlvcml0eSBpcyBubyBsYXJnZXIgdGhhbiB0aHJlZSB0aW1lcyB0aGUgc2FtZSBv ZiBhIG5vcm1hbCB0YXNrLgorCSAqLworCWlndF9hc3NlcnQoaWd0X21lYW5fZ2V0X3ZhcmlhbmNl KCZyZXNbMl0ubWVhbikgPAorCQkgICBpZ3RfbWVhbl9nZXRfdmFyaWFuY2UoJnJlc1sxXS5tZWFu KSAqIDMpOworfQorCiBpZ3RfbWFpbgogewogCWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25f ZW5naW5lICplOwpAQCAtMzkxLDYgKzU2MSwxMiBAQCBpZ3RfbWFpbgogCQkJCQkJCWUtPmV4ZWNf aWQgfCBlLT5mbGFncywKIAkJCQkJCQllLT5uYW1lLCAwKTsKIAorCQkJCWlndF9zdWJ0ZXN0X2Yo IiVzLXJ0aG9nLXN1Ym1pdCIsIGUtPm5hbWUpCisJCQkJCXJ0aG9nX2xhdGVuY3lfb25fcmluZyhk ZXZpY2UsCisJCQkJCQkJICAgICAgZS0+ZXhlY19pZCB8CisJCQkJCQkJICAgICAgZS0+ZmxhZ3Ms CisJCQkJCQkJICAgICAgZS0+bmFtZSk7CisKIAkJCQlpZ3Rfc3VidGVzdF9mKCIlcy1kaXNwYXRj aC1xdWV1ZWQiLCBlLT5uYW1lKQogCQkJCQlsYXRlbmN5X29uX3JpbmcoZGV2aWNlLAogCQkJCQkJ CWUtPmV4ZWNfaWQgfCBlLT5mbGFncywKLS0gCjIuMTQuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==