From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH igt] test/gem_exec_schedule: Check each engine is an independent timeline Date: Tue, 24 Apr 2018 00:16:25 +0100 Message-ID: <20180423231625.12052-1-chris@chris-wilson.co.uk> References: <20180423203359.357-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180423203359.357-1-chris@chris-wilson.co.uk> 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 Cc: igt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SW4gdGhlIGV4aXN0aW5nIEFCSSwgZWFjaCBlbmdpbmUgb3BlcmF0ZXMgaXRzIG93biB0aW1lbGlu ZQooZmVuY2UuY29udGV4dCkgYW5kIHNvIHNob3VsZCBleGVjdXRlIGluZGVwZW5kZW50bHkgb2Yg YW55IG90aGVyLiBJZiB3ZQppbnN0YWxsIGEgYmxvY2tlciBvbiBhbGwgb3RoZXIgZW5naW5lcywg dGhhdCBzaG91bGQgbm90IGFmZmVjdCBleGVjdXRpb24Kb24gdGhlIGxvY2FsIGVuZ2luZS4KCnYy OiBNb3ZlIHRoZSByZXF1aXJlbWVudHMgY2hlY2tzIGZyb20gdGhlIGZpeHR1cmUgdG8gc3VidGVz dCBzbyB0aGF0CnRoZSB0ZXN0IGxpc3QgaXMgc3RhYmxlIChBbnRvbmlvKQp2MzogUHJvdGVjdCBT TkIgZnJvbSB0aGUgZXZpbCBNSV9TVE9SRV9EV09SRC4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRr by51cnN1bGluQGludGVsLmNvbT4KQ2M6IEFudG9uaW8gQXJnZW56aWFubyA8YW50b25pby5hcmdl bnppYW5vQGludGVsLmNvbT4KLS0tCiB0ZXN0cy9nZW1fZXhlY19zY2hlZHVsZS5jIHwgOTYgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOTAg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9nZW1fZXhl Y19zY2hlZHVsZS5jIGIvdGVzdHMvZ2VtX2V4ZWNfc2NoZWR1bGUuYwppbmRleCA1ZDBmMjE1YjIu LjFmNDMxNDdmNyAxMDA2NDQKLS0tIGEvdGVzdHMvZ2VtX2V4ZWNfc2NoZWR1bGUuYworKysgYi90 ZXN0cy9nZW1fZXhlY19zY2hlZHVsZS5jCkBAIC00OSw5ICs0OSw5IEBACiAKIElHVF9URVNUX0RF U0NSSVBUSU9OKCJDaGVjayB0aGF0IHdlIGNhbiBjb250cm9sIHRoZSBvcmRlciBvZiBleGVjdXRp b24iKTsKIAotc3RhdGljIHZvaWQgc3RvcmVfZHdvcmQoaW50IGZkLCB1aW50MzJfdCBjdHgsIHVu c2lnbmVkIHJpbmcsCi0JCQl1aW50MzJfdCB0YXJnZXQsIHVpbnQzMl90IG9mZnNldCwgdWludDMy X3QgdmFsdWUsCi0JCQl1aW50MzJfdCBjb3JrLCB1bnNpZ25lZCB3cml0ZV9kb21haW4pCitzdGF0 aWMgdWludDMyX3QgX19zdG9yZV9kd29yZChpbnQgZmQsIHVpbnQzMl90IGN0eCwgdW5zaWduZWQg cmluZywKKwkJCSAgICAgIHVpbnQzMl90IHRhcmdldCwgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJf dCB2YWx1ZSwKKwkJCSAgICAgIHVpbnQzMl90IGNvcmssIHVuc2lnbmVkIHdyaXRlX2RvbWFpbikK IHsKIAljb25zdCBpbnQgZ2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKTsK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmpbM107CkBAIC0xMDAsNyArMTAw LDE3IEBAIHN0YXRpYyB2b2lkIHN0b3JlX2R3b3JkKGludCBmZCwgdWludDMyX3QgY3R4LCB1bnNp Z25lZCByaW5nLAogCWJhdGNoWysraV0gPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwogCWdlbV93cml0 ZShmZCwgb2JqWzJdLmhhbmRsZSwgMCwgYmF0Y2gsIHNpemVvZihiYXRjaCkpOwogCWdlbV9leGVj YnVmKGZkLCAmZXhlY2J1Zik7Ci0JZ2VtX2Nsb3NlKGZkLCBvYmpbMl0uaGFuZGxlKTsKKworCXJl dHVybiBvYmpbMl0uaGFuZGxlOworfQorCitzdGF0aWMgdm9pZCBzdG9yZV9kd29yZChpbnQgZmQs IHVpbnQzMl90IGN0eCwgdW5zaWduZWQgcmluZywKKwkJCXVpbnQzMl90IHRhcmdldCwgdWludDMy X3Qgb2Zmc2V0LCB1aW50MzJfdCB2YWx1ZSwKKwkJCXVpbnQzMl90IGNvcmssIHVuc2lnbmVkIHdy aXRlX2RvbWFpbikKK3sKKwlnZW1fY2xvc2UoZmQsIF9fc3RvcmVfZHdvcmQoZmQsIGN0eCwgcmlu ZywKKwkJCQkgICAgdGFyZ2V0LCBvZmZzZXQsIHZhbHVlLAorCQkJCSAgICBjb3JrLCB3cml0ZV9k b21haW4pKTsKIH0KIAogc3RhdGljIHVpbnQzMl90IGNyZWF0ZV9oaWdoZXN0X3ByaW9yaXR5KGlu dCBmZCkKQEAgLTE2MSw2ICsxNzEsNzQgQEAgc3RhdGljIHZvaWQgZmlmbyhpbnQgZmQsIHVuc2ln bmVkIHJpbmcpCiAJbXVubWFwKHB0ciwgNDA5Nik7CiB9CiAKK3N0YXRpYyB2b2lkIGluZGVwZW5k ZW50KGludCBmZCwgdW5zaWduZWQgaW50IGVuZ2luZSkKK3sKKwlJR1RfQ09SS19IQU5ETEUoY29y ayk7CisJdWludDMyX3Qgc2NyYXRjaCwgcGx1ZywgYmF0Y2g7CisJaWd0X3NwaW5fdCAqc3BpbiA9 IE5VTEw7CisJdW5zaWduZWQgaW50IG90aGVyOworCXVpbnQzMl90ICpwdHI7CisKKwlpZ3RfcmVx dWlyZShlbmdpbmUgIT0gMCk7CisKKwlzY3JhdGNoID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CisJ cHRyID0gZ2VtX21tYXBfX2d0dChmZCwgc2NyYXRjaCwgNDA5NiwgUFJPVF9SRUFEKTsKKwlpZ3Rf YXNzZXJ0X2VxKHB0clswXSwgMCk7CisKKwlwbHVnID0gaWd0X2NvcmtfcGx1ZygmY29yaywgZmQp OworCisJLyogQ2hlY2sgdGhhdCB3ZSBjYW4gc3VibWl0IHRvIGVuZ2luZSB3aGlsZSBhbGwgb3Ro ZXJzIGFyZSBibG9ja2VkICovCisJZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBvdGhlcikg eworCQlpZiAob3RoZXIgPT0gZW5naW5lKQorCQkJY29udGludWU7CisKKwkJaWYgKCFnZW1fY2Fu X3N0b3JlX2R3b3JkKGZkLCBvdGhlcikpCisJCQljb250aW51ZTsKKworCQlpZiAoc3BpbiA9PSBO VUxMKSB7CisJCQlzcGluID0gX19pZ3Rfc3Bpbl9iYXRjaF9uZXcoZmQsIDAsIG90aGVyLCAwKTsK KwkJfSBlbHNlIHsKKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9iaiA9IHsK KwkJCQkuaGFuZGxlID0gc3Bpbi0+aGFuZGxlLAorCQkJfTsKKwkJCXN0cnVjdCBkcm1faTkxNV9n ZW1fZXhlY2J1ZmZlcjIgZWIgPSB7CisJCQkJLmJ1ZmZlcl9jb3VudCA9IDEsCisJCQkJLmJ1ZmZl cnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKCZvYmopLAorCQkJCS5mbGFncyA9IG90aGVyLAorCQkJ fTsKKwkJCWdlbV9leGVjYnVmKGZkLCAmZWIpOworCQl9CisKKwkJc3RvcmVfZHdvcmQoZmQsIDAs IG90aGVyLCBzY3JhdGNoLCAwLCBvdGhlciwgcGx1ZywgMCk7CisJfQorCWlndF9yZXF1aXJlKHNw aW4pOworCisJLyogU2FtZSBwcmlvcml0eSwgYnV0IGRpZmZlcmVudCB0aW1lbGluZSAoYXMgZGlm ZmVyZW50IGVuZ2luZSkgKi8KKwliYXRjaCA9IF9fc3RvcmVfZHdvcmQoZmQsIDAsIGVuZ2luZSwg c2NyYXRjaCwgMCwgZW5naW5lLCBwbHVnLCAwKTsKKworCXVucGx1Z19zaG93X3F1ZXVlKGZkLCAm Y29yaywgZW5naW5lKTsKKwlnZW1fY2xvc2UoZmQsIHBsdWcpOworCisJZ2VtX3N5bmMoZmQsIGJh dGNoKTsKKwlpZ3RfYXNzZXJ0KCFnZW1fYm9fYnVzeShmZCwgYmF0Y2gpKTsKKwlpZ3RfYXNzZXJ0 KGdlbV9ib19idXN5KGZkLCBzcGluLT5oYW5kbGUpKTsKKwlnZW1fY2xvc2UoZmQsIGJhdGNoKTsK KworCS8qIE9ubHkgdGhlIGxvY2FsIGVuZ2luZSBzaG91bGQgYmUgZnJlZSB0byBjb21wbGV0ZS4g Ki8KKwlpZ3RfYXNzZXJ0KGdlbV9ib19idXN5KGZkLCBzY3JhdGNoKSk7CisJaWd0X2Fzc2VydF9l cShwdHJbMF0sIGVuZ2luZSk7CisKKwlpZ3Rfc3Bpbl9iYXRjaF9mcmVlKGZkLCBzcGluKTsKKwln ZW1fcXVpZXNjZW50X2dwdShmZCk7CisKKwkvKiBBbmQgd2UgZXhwZWN0IHRoZSBvdGhlcnMgdG8g aGF2ZSBvdmVyd3JpdHRlbiB1cywgb3JkZXIgdW5zcGVjaWZpZWQgKi8KKwlpZ3RfYXNzZXJ0KCFn ZW1fYm9fYnVzeShmZCwgc2NyYXRjaCkpOworCWlndF9hc3NlcnRfbmVxKHB0clswXSwgZW5naW5l KTsKKworCW11bm1hcChwdHIsIDQwOTYpOworCWdlbV9jbG9zZShmZCwgc2NyYXRjaCk7Cit9CisK IHN0YXRpYyB2b2lkIHNtb2tldGVzdChpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIHRp bWVvdXQpCiB7CiAJY29uc3QgaW50IG5jcHVzID0gc3lzY29uZihfU0NfTlBST0NFU1NPUlNfT05M Tik7CkBAIC0xMDcyLDkgKzExNTAsMTUgQEAgaWd0X21haW4KIAogCQkJaWd0X3N1YnRlc3RfZigi Zmlmby0lcyIsIGUtPm5hbWUpIHsKIAkJCQlpZ3RfcmVxdWlyZShnZW1fcmluZ19oYXNfcGh5c2lj YWxfZW5naW5lKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKLQkJCQlpZ3RfcmVxdWlyZShn ZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5leGVjX2lkKSB8IGUtPmZsYWdzKTsKKwkJCQlpZ3Rf cmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsK IAkJCQlmaWZvKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpOwogCQkJfQorCisJCQlpZ3Rfc3Vi dGVzdF9mKCJpbmRlcGVuZGVudC0lcyIsIGUtPm5hbWUpIHsKKwkJCQlpZ3RfcmVxdWlyZShnZW1f cmluZ19oYXNfcGh5c2ljYWxfZW5naW5lKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKKwkJ CQlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5leGVjX2lkIHwgZS0+Zmxh Z3MpKTsKKwkJCQlpbmRlcGVuZGVudChmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKTsKKwkJCX0K IAkJfQogCX0KIApAQCAtMTA5NCw3ICsxMTc4LDcgQEAgaWd0X21haW4KIAkJCWlndF9zdWJ0ZXN0 X2dyb3VwIHsKIAkJCQlpZ3RfZml4dHVyZSB7CiAJCQkJCWlndF9yZXF1aXJlKGdlbV9yaW5nX2hh c19waHlzaWNhbF9lbmdpbmUoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFncykpOwotCQkJCQlpZ3Rf cmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5leGVjX2lkKSB8IGUtPmZsYWdzKTsK KwkJCQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgZS0+ZXhlY19pZCB8IGUt PmZsYWdzKSk7CiAJCQkJfQogCiAJCQkJaWd0X3N1YnRlc3RfZigiaW4tb3JkZXItJXMiLCBlLT5u YW1lKQotLSAKMi4xNy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Chris Wilson Date: Tue, 24 Apr 2018 00:16:25 +0100 Message-Id: <20180423231625.12052-1-chris@chris-wilson.co.uk> In-Reply-To: <20180423203359.357-1-chris@chris-wilson.co.uk> References: <20180423203359.357-1-chris@chris-wilson.co.uk> Subject: [igt-dev] [PATCH igt] test/gem_exec_schedule: Check each engine is an independent timeline 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: intel-gfx@lists.freedesktop.org Cc: igt-dev@lists.freedesktop.org, Tvrtko Ursulin List-ID: SW4gdGhlIGV4aXN0aW5nIEFCSSwgZWFjaCBlbmdpbmUgb3BlcmF0ZXMgaXRzIG93biB0aW1lbGlu ZQooZmVuY2UuY29udGV4dCkgYW5kIHNvIHNob3VsZCBleGVjdXRlIGluZGVwZW5kZW50bHkgb2Yg YW55IG90aGVyLiBJZiB3ZQppbnN0YWxsIGEgYmxvY2tlciBvbiBhbGwgb3RoZXIgZW5naW5lcywg dGhhdCBzaG91bGQgbm90IGFmZmVjdCBleGVjdXRpb24Kb24gdGhlIGxvY2FsIGVuZ2luZS4KCnYy OiBNb3ZlIHRoZSByZXF1aXJlbWVudHMgY2hlY2tzIGZyb20gdGhlIGZpeHR1cmUgdG8gc3VidGVz dCBzbyB0aGF0CnRoZSB0ZXN0IGxpc3QgaXMgc3RhYmxlIChBbnRvbmlvKQp2MzogUHJvdGVjdCBT TkIgZnJvbSB0aGUgZXZpbCBNSV9TVE9SRV9EV09SRC4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRr by51cnN1bGluQGludGVsLmNvbT4KQ2M6IEFudG9uaW8gQXJnZW56aWFubyA8YW50b25pby5hcmdl bnppYW5vQGludGVsLmNvbT4KLS0tCiB0ZXN0cy9nZW1fZXhlY19zY2hlZHVsZS5jIHwgOTYgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOTAg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9nZW1fZXhl Y19zY2hlZHVsZS5jIGIvdGVzdHMvZ2VtX2V4ZWNfc2NoZWR1bGUuYwppbmRleCA1ZDBmMjE1YjIu LjFmNDMxNDdmNyAxMDA2NDQKLS0tIGEvdGVzdHMvZ2VtX2V4ZWNfc2NoZWR1bGUuYworKysgYi90 ZXN0cy9nZW1fZXhlY19zY2hlZHVsZS5jCkBAIC00OSw5ICs0OSw5IEBACiAKIElHVF9URVNUX0RF U0NSSVBUSU9OKCJDaGVjayB0aGF0IHdlIGNhbiBjb250cm9sIHRoZSBvcmRlciBvZiBleGVjdXRp b24iKTsKIAotc3RhdGljIHZvaWQgc3RvcmVfZHdvcmQoaW50IGZkLCB1aW50MzJfdCBjdHgsIHVu c2lnbmVkIHJpbmcsCi0JCQl1aW50MzJfdCB0YXJnZXQsIHVpbnQzMl90IG9mZnNldCwgdWludDMy X3QgdmFsdWUsCi0JCQl1aW50MzJfdCBjb3JrLCB1bnNpZ25lZCB3cml0ZV9kb21haW4pCitzdGF0 aWMgdWludDMyX3QgX19zdG9yZV9kd29yZChpbnQgZmQsIHVpbnQzMl90IGN0eCwgdW5zaWduZWQg cmluZywKKwkJCSAgICAgIHVpbnQzMl90IHRhcmdldCwgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJf dCB2YWx1ZSwKKwkJCSAgICAgIHVpbnQzMl90IGNvcmssIHVuc2lnbmVkIHdyaXRlX2RvbWFpbikK IHsKIAljb25zdCBpbnQgZ2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKTsK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmpbM107CkBAIC0xMDAsNyArMTAw LDE3IEBAIHN0YXRpYyB2b2lkIHN0b3JlX2R3b3JkKGludCBmZCwgdWludDMyX3QgY3R4LCB1bnNp Z25lZCByaW5nLAogCWJhdGNoWysraV0gPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwogCWdlbV93cml0 ZShmZCwgb2JqWzJdLmhhbmRsZSwgMCwgYmF0Y2gsIHNpemVvZihiYXRjaCkpOwogCWdlbV9leGVj YnVmKGZkLCAmZXhlY2J1Zik7Ci0JZ2VtX2Nsb3NlKGZkLCBvYmpbMl0uaGFuZGxlKTsKKworCXJl dHVybiBvYmpbMl0uaGFuZGxlOworfQorCitzdGF0aWMgdm9pZCBzdG9yZV9kd29yZChpbnQgZmQs IHVpbnQzMl90IGN0eCwgdW5zaWduZWQgcmluZywKKwkJCXVpbnQzMl90IHRhcmdldCwgdWludDMy X3Qgb2Zmc2V0LCB1aW50MzJfdCB2YWx1ZSwKKwkJCXVpbnQzMl90IGNvcmssIHVuc2lnbmVkIHdy aXRlX2RvbWFpbikKK3sKKwlnZW1fY2xvc2UoZmQsIF9fc3RvcmVfZHdvcmQoZmQsIGN0eCwgcmlu ZywKKwkJCQkgICAgdGFyZ2V0LCBvZmZzZXQsIHZhbHVlLAorCQkJCSAgICBjb3JrLCB3cml0ZV9k b21haW4pKTsKIH0KIAogc3RhdGljIHVpbnQzMl90IGNyZWF0ZV9oaWdoZXN0X3ByaW9yaXR5KGlu dCBmZCkKQEAgLTE2MSw2ICsxNzEsNzQgQEAgc3RhdGljIHZvaWQgZmlmbyhpbnQgZmQsIHVuc2ln bmVkIHJpbmcpCiAJbXVubWFwKHB0ciwgNDA5Nik7CiB9CiAKK3N0YXRpYyB2b2lkIGluZGVwZW5k ZW50KGludCBmZCwgdW5zaWduZWQgaW50IGVuZ2luZSkKK3sKKwlJR1RfQ09SS19IQU5ETEUoY29y ayk7CisJdWludDMyX3Qgc2NyYXRjaCwgcGx1ZywgYmF0Y2g7CisJaWd0X3NwaW5fdCAqc3BpbiA9 IE5VTEw7CisJdW5zaWduZWQgaW50IG90aGVyOworCXVpbnQzMl90ICpwdHI7CisKKwlpZ3RfcmVx dWlyZShlbmdpbmUgIT0gMCk7CisKKwlzY3JhdGNoID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CisJ cHRyID0gZ2VtX21tYXBfX2d0dChmZCwgc2NyYXRjaCwgNDA5NiwgUFJPVF9SRUFEKTsKKwlpZ3Rf YXNzZXJ0X2VxKHB0clswXSwgMCk7CisKKwlwbHVnID0gaWd0X2NvcmtfcGx1ZygmY29yaywgZmQp OworCisJLyogQ2hlY2sgdGhhdCB3ZSBjYW4gc3VibWl0IHRvIGVuZ2luZSB3aGlsZSBhbGwgb3Ro ZXJzIGFyZSBibG9ja2VkICovCisJZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBvdGhlcikg eworCQlpZiAob3RoZXIgPT0gZW5naW5lKQorCQkJY29udGludWU7CisKKwkJaWYgKCFnZW1fY2Fu X3N0b3JlX2R3b3JkKGZkLCBvdGhlcikpCisJCQljb250aW51ZTsKKworCQlpZiAoc3BpbiA9PSBO VUxMKSB7CisJCQlzcGluID0gX19pZ3Rfc3Bpbl9iYXRjaF9uZXcoZmQsIDAsIG90aGVyLCAwKTsK KwkJfSBlbHNlIHsKKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9iaiA9IHsK KwkJCQkuaGFuZGxlID0gc3Bpbi0+aGFuZGxlLAorCQkJfTsKKwkJCXN0cnVjdCBkcm1faTkxNV9n ZW1fZXhlY2J1ZmZlcjIgZWIgPSB7CisJCQkJLmJ1ZmZlcl9jb3VudCA9IDEsCisJCQkJLmJ1ZmZl cnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKCZvYmopLAorCQkJCS5mbGFncyA9IG90aGVyLAorCQkJ fTsKKwkJCWdlbV9leGVjYnVmKGZkLCAmZWIpOworCQl9CisKKwkJc3RvcmVfZHdvcmQoZmQsIDAs IG90aGVyLCBzY3JhdGNoLCAwLCBvdGhlciwgcGx1ZywgMCk7CisJfQorCWlndF9yZXF1aXJlKHNw aW4pOworCisJLyogU2FtZSBwcmlvcml0eSwgYnV0IGRpZmZlcmVudCB0aW1lbGluZSAoYXMgZGlm ZmVyZW50IGVuZ2luZSkgKi8KKwliYXRjaCA9IF9fc3RvcmVfZHdvcmQoZmQsIDAsIGVuZ2luZSwg c2NyYXRjaCwgMCwgZW5naW5lLCBwbHVnLCAwKTsKKworCXVucGx1Z19zaG93X3F1ZXVlKGZkLCAm Y29yaywgZW5naW5lKTsKKwlnZW1fY2xvc2UoZmQsIHBsdWcpOworCisJZ2VtX3N5bmMoZmQsIGJh dGNoKTsKKwlpZ3RfYXNzZXJ0KCFnZW1fYm9fYnVzeShmZCwgYmF0Y2gpKTsKKwlpZ3RfYXNzZXJ0 KGdlbV9ib19idXN5KGZkLCBzcGluLT5oYW5kbGUpKTsKKwlnZW1fY2xvc2UoZmQsIGJhdGNoKTsK KworCS8qIE9ubHkgdGhlIGxvY2FsIGVuZ2luZSBzaG91bGQgYmUgZnJlZSB0byBjb21wbGV0ZS4g Ki8KKwlpZ3RfYXNzZXJ0KGdlbV9ib19idXN5KGZkLCBzY3JhdGNoKSk7CisJaWd0X2Fzc2VydF9l cShwdHJbMF0sIGVuZ2luZSk7CisKKwlpZ3Rfc3Bpbl9iYXRjaF9mcmVlKGZkLCBzcGluKTsKKwln ZW1fcXVpZXNjZW50X2dwdShmZCk7CisKKwkvKiBBbmQgd2UgZXhwZWN0IHRoZSBvdGhlcnMgdG8g aGF2ZSBvdmVyd3JpdHRlbiB1cywgb3JkZXIgdW5zcGVjaWZpZWQgKi8KKwlpZ3RfYXNzZXJ0KCFn ZW1fYm9fYnVzeShmZCwgc2NyYXRjaCkpOworCWlndF9hc3NlcnRfbmVxKHB0clswXSwgZW5naW5l KTsKKworCW11bm1hcChwdHIsIDQwOTYpOworCWdlbV9jbG9zZShmZCwgc2NyYXRjaCk7Cit9CisK IHN0YXRpYyB2b2lkIHNtb2tldGVzdChpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIHRp bWVvdXQpCiB7CiAJY29uc3QgaW50IG5jcHVzID0gc3lzY29uZihfU0NfTlBST0NFU1NPUlNfT05M Tik7CkBAIC0xMDcyLDkgKzExNTAsMTUgQEAgaWd0X21haW4KIAogCQkJaWd0X3N1YnRlc3RfZigi Zmlmby0lcyIsIGUtPm5hbWUpIHsKIAkJCQlpZ3RfcmVxdWlyZShnZW1fcmluZ19oYXNfcGh5c2lj YWxfZW5naW5lKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKLQkJCQlpZ3RfcmVxdWlyZShn ZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5leGVjX2lkKSB8IGUtPmZsYWdzKTsKKwkJCQlpZ3Rf cmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsK IAkJCQlmaWZvKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpOwogCQkJfQorCisJCQlpZ3Rfc3Vi dGVzdF9mKCJpbmRlcGVuZGVudC0lcyIsIGUtPm5hbWUpIHsKKwkJCQlpZ3RfcmVxdWlyZShnZW1f cmluZ19oYXNfcGh5c2ljYWxfZW5naW5lKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKKwkJ CQlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5leGVjX2lkIHwgZS0+Zmxh Z3MpKTsKKwkJCQlpbmRlcGVuZGVudChmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKTsKKwkJCX0K IAkJfQogCX0KIApAQCAtMTA5NCw3ICsxMTc4LDcgQEAgaWd0X21haW4KIAkJCWlndF9zdWJ0ZXN0 X2dyb3VwIHsKIAkJCQlpZ3RfZml4dHVyZSB7CiAJCQkJCWlndF9yZXF1aXJlKGdlbV9yaW5nX2hh c19waHlzaWNhbF9lbmdpbmUoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFncykpOwotCQkJCQlpZ3Rf cmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5leGVjX2lkKSB8IGUtPmZsYWdzKTsK KwkJCQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgZS0+ZXhlY19pZCB8IGUt PmZsYWdzKSk7CiAJCQkJfQogCiAJCQkJaWd0X3N1YnRlc3RfZigiaW4tb3JkZXItJXMiLCBlLT5u YW1lKQotLSAKMi4xNy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK