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: Mon, 23 Apr 2018 14:43:45 +0100 Message-ID: <20180423134345.28153-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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 dGhhdCBzaG91bGQgbm90IGFmZmVjdCBleGVjdXRpb24Kb24gdGhlIGxvY2FsIGVuZ2luZS4KClNp Z25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzog VHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiB0ZXN0cy9nZW1f ZXhlY19zY2hlZHVsZS5jIHwgOTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tCiAxIGZpbGUgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS90ZXN0cy9nZW1fZXhlY19zY2hlZHVsZS5jIGIvdGVzdHMvZ2VtX2V4ZWNfc2No ZWR1bGUuYwppbmRleCA1ZDBmMjE1YjIuLjQ3MTI3NTE2OSAxMDA2NDQKLS0tIGEvdGVzdHMvZ2Vt X2V4ZWNfc2NoZWR1bGUuYworKysgYi90ZXN0cy9nZW1fZXhlY19zY2hlZHVsZS5jCkBAIC00OSw5 ICs0OSw5IEBACiAKIElHVF9URVNUX0RFU0NSSVBUSU9OKCJDaGVjayB0aGF0IHdlIGNhbiBjb250 cm9sIHRoZSBvcmRlciBvZiBleGVjdXRpb24iKTsKIAotc3RhdGljIHZvaWQgc3RvcmVfZHdvcmQo aW50IGZkLCB1aW50MzJfdCBjdHgsIHVuc2lnbmVkIHJpbmcsCi0JCQl1aW50MzJfdCB0YXJnZXQs IHVpbnQzMl90IG9mZnNldCwgdWludDMyX3QgdmFsdWUsCi0JCQl1aW50MzJfdCBjb3JrLCB1bnNp Z25lZCB3cml0ZV9kb21haW4pCitzdGF0aWMgdWludDMyX3QgX19zdG9yZV9kd29yZChpbnQgZmQs IHVpbnQzMl90IGN0eCwgdW5zaWduZWQgcmluZywKKwkJCSAgICAgIHVpbnQzMl90IHRhcmdldCwg dWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCB2YWx1ZSwKKwkJCSAgICAgIHVpbnQzMl90IGNvcmss IHVuc2lnbmVkIHdyaXRlX2RvbWFpbikKIHsKIAljb25zdCBpbnQgZ2VuID0gaW50ZWxfZ2VuKGlu dGVsX2dldF9kcm1fZGV2aWQoZmQpKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0 MiBvYmpbM107CkBAIC0xMDAsNyArMTAwLDE3IEBAIHN0YXRpYyB2b2lkIHN0b3JlX2R3b3JkKGlu dCBmZCwgdWludDMyX3QgY3R4LCB1bnNpZ25lZCByaW5nLAogCWJhdGNoWysraV0gPSBNSV9CQVRD SF9CVUZGRVJfRU5EOwogCWdlbV93cml0ZShmZCwgb2JqWzJdLmhhbmRsZSwgMCwgYmF0Y2gsIHNp emVvZihiYXRjaCkpOwogCWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7Ci0JZ2VtX2Nsb3NlKGZk LCBvYmpbMl0uaGFuZGxlKTsKKworCXJldHVybiBvYmpbMl0uaGFuZGxlOworfQorCitzdGF0aWMg dm9pZCBzdG9yZV9kd29yZChpbnQgZmQsIHVpbnQzMl90IGN0eCwgdW5zaWduZWQgcmluZywKKwkJ CXVpbnQzMl90IHRhcmdldCwgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCB2YWx1ZSwKKwkJCXVp bnQzMl90IGNvcmssIHVuc2lnbmVkIHdyaXRlX2RvbWFpbikKK3sKKwlnZW1fY2xvc2UoZmQsIF9f c3RvcmVfZHdvcmQoZmQsIGN0eCwgcmluZywKKwkJCQkgICAgdGFyZ2V0LCBvZmZzZXQsIHZhbHVl LAorCQkJCSAgICBjb3JrLCB3cml0ZV9kb21haW4pKTsKIH0KIAogc3RhdGljIHVpbnQzMl90IGNy ZWF0ZV9oaWdoZXN0X3ByaW9yaXR5KGludCBmZCkKQEAgLTE2MSw2ICsxNzEsNjQgQEAgc3RhdGlj IHZvaWQgZmlmbyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCiAJbXVubWFwKHB0ciwgNDA5Nik7CiB9 CiAKK3N0YXRpYyB2b2lkIGluZGVwZW5kZW50KGludCBmZCwgdW5zaWduZWQgaW50IGVuZ2luZSkK K3sKKwlJR1RfQ09SS19IQU5ETEUoY29yayk7CisJdWludDMyX3Qgc2NyYXRjaCwgcGx1ZywgYmF0 Y2g7CisJaWd0X3NwaW5fdCAqc3BpbiA9IE5VTEw7CisJdW5zaWduZWQgaW50IG90aGVyOworCXVp bnQzMl90ICpwdHI7CisKKwlpZ3RfcmVxdWlyZShlbmdpbmUgIT0gMCk7CisKKwlzY3JhdGNoID0g Z2VtX2NyZWF0ZShmZCwgNDA5Nik7CisJcGx1ZyA9IGlndF9jb3JrX3BsdWcoJmNvcmssIGZkKTsK KworCS8qIENoZWNrIHRoYXQgd2UgY2FuIHN1Ym1pdCB0byBlbmdpbmUgd2hpbGUgYWxsIG90aGVy cyBhcmUgYmxvY2tlZCAqLworCWZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgb3RoZXIpIHsK KwkJaWYgKG90aGVyID09IGVuZ2luZSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChzcGluID09IE5V TEwpIHsKKwkJCXNwaW4gPSBfX2lndF9zcGluX2JhdGNoX25ldyhmZCwgMCwgb3RoZXIsIDApOwor CQl9IGVsc2UgeworCQkJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqID0gewor CQkJCS5oYW5kbGUgPSBzcGluLT5oYW5kbGUsCisJCQl9OworCQkJc3RydWN0IGRybV9pOTE1X2dl bV9leGVjYnVmZmVyMiBlYiA9IHsKKwkJCQkuYnVmZmVyX2NvdW50ID0gMSwKKwkJCQkuYnVmZmVy c19wdHIgPSB0b191c2VyX3BvaW50ZXIoJm9iaiksCisJCQkJLmZsYWdzID0gb3RoZXIsCisJCQl9 OworCQkJZ2VtX2V4ZWNidWYoZmQsICZlYik7CisJCX0KKworCQlzdG9yZV9kd29yZChmZCwgMCwg b3RoZXIsIHNjcmF0Y2gsIDAsIG90aGVyLCBwbHVnLCAwKTsKKwl9CisJaWd0X3JlcXVpcmUoc3Bp bik7CisKKwkvKiBTYW1lIHByaW9yaXR5LCBidXQgZGlmZmVyZW50IHRpbWVsaW5lIChhcyBkaWZm ZXJlbnQgZW5naW5lKSAqLworCWJhdGNoID0gX19zdG9yZV9kd29yZChmZCwgMCwgZW5naW5lLCBz Y3JhdGNoLCAwLCBlbmdpbmUsIHBsdWcsIDApOworCisJdW5wbHVnX3Nob3dfcXVldWUoZmQsICZj b3JrLCBlbmdpbmUpOworCWdlbV9jbG9zZShmZCwgcGx1Zyk7CisKKwlnZW1fc3luYyhmZCwgYmF0 Y2gpOworCWdlbV9jbG9zZShmZCwgYmF0Y2gpOworCWlndF9hc3NlcnQoZ2VtX2JvX2J1c3koZmQs IHNwaW4tPmhhbmRsZSkpOworCisJcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgc2NyYXRjaCwgNDA5 NiwgUFJPVF9SRUFEKTsKKwlnZW1fY2xvc2UoZmQsIHNjcmF0Y2gpOworCWlndF9hc3NlcnRfZXEo cHRyWzBdLCBlbmdpbmUpOworCisJaWd0X3NwaW5fYmF0Y2hfZnJlZShmZCwgc3Bpbik7CisJZ2Vt X3F1aWVzY2VudF9ncHUoZmQpOworCisJLyogQW5kIHdlIGV4cGVjdCB0aGUgb3RoZXJzIHRvIGhh dmUgb3ZlcndyaXR0ZW4gdXMsIG9yZGVyIHVuc3BlY2lmaWVkICovCisJaWd0X2Fzc2VydF9uZXEo cHRyWzBdLCBlbmdpbmUpOworCW11bm1hcChwdHIsIDQwOTYpOworfQorCiBzdGF0aWMgdm9pZCBz bW9rZXRlc3QoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCB0aW1lb3V0KQogewogCWNv bnN0IGludCBuY3B1cyA9IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOwpAQCAtMTA3MCwx MCArMTEzOCwxNiBAQCBpZ3RfbWFpbgogCQkJaWYgKGUtPmV4ZWNfaWQgPT0gMCkKIAkJCQljb250 aW51ZTsKIAotCQkJaWd0X3N1YnRlc3RfZigiZmlmby0lcyIsIGUtPm5hbWUpIHsKLQkJCQlpZ3Rf cmVxdWlyZShnZW1fcmluZ19oYXNfcGh5c2ljYWxfZW5naW5lKGZkLCBlLT5leGVjX2lkIHwgZS0+ ZmxhZ3MpKTsKLQkJCQlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5leGVj X2lkKSB8IGUtPmZsYWdzKTsKLQkJCQlmaWZvKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpOwor CQkJaWd0X3N1YnRlc3RfZ3JvdXAgeworCQkJCWlndF9maXh0dXJlIHsKKwkJCQkJaWd0X3JlcXVp cmUoZ2VtX3JpbmdfaGFzX3BoeXNpY2FsX2VuZ2luZShmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdz KSk7CisJCQkJCWlndF9yZXF1aXJlKGdlbV9jYW5fc3RvcmVfZHdvcmQoZmQsIGUtPmV4ZWNfaWQp IHwgZS0+ZmxhZ3MpOworCQkJCX0KKworCQkJCWlndF9zdWJ0ZXN0X2YoImZpZm8tJXMiLCBlLT5u YW1lKQorCQkJCQlmaWZvKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpOworCQkJCWlndF9zdWJ0 ZXN0X2YoImluZGVwZW5kZW50LSVzIiwgZS0+bmFtZSkKKwkJCQkJaW5kZXBlbmRlbnQoZmQsIGUt PmV4ZWNfaWQgfCBlLT5mbGFncyk7CiAJCQl9CiAJCX0KIAl9Ci0tIAoyLjE3LjAKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Chris Wilson Date: Mon, 23 Apr 2018 14:43:45 +0100 Message-Id: <20180423134345.28153-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 dGhhdCBzaG91bGQgbm90IGFmZmVjdCBleGVjdXRpb24Kb24gdGhlIGxvY2FsIGVuZ2luZS4KClNp Z25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzog VHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiB0ZXN0cy9nZW1f ZXhlY19zY2hlZHVsZS5jIHwgOTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tCiAxIGZpbGUgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS90ZXN0cy9nZW1fZXhlY19zY2hlZHVsZS5jIGIvdGVzdHMvZ2VtX2V4ZWNfc2No ZWR1bGUuYwppbmRleCA1ZDBmMjE1YjIuLjQ3MTI3NTE2OSAxMDA2NDQKLS0tIGEvdGVzdHMvZ2Vt X2V4ZWNfc2NoZWR1bGUuYworKysgYi90ZXN0cy9nZW1fZXhlY19zY2hlZHVsZS5jCkBAIC00OSw5 ICs0OSw5IEBACiAKIElHVF9URVNUX0RFU0NSSVBUSU9OKCJDaGVjayB0aGF0IHdlIGNhbiBjb250 cm9sIHRoZSBvcmRlciBvZiBleGVjdXRpb24iKTsKIAotc3RhdGljIHZvaWQgc3RvcmVfZHdvcmQo aW50IGZkLCB1aW50MzJfdCBjdHgsIHVuc2lnbmVkIHJpbmcsCi0JCQl1aW50MzJfdCB0YXJnZXQs IHVpbnQzMl90IG9mZnNldCwgdWludDMyX3QgdmFsdWUsCi0JCQl1aW50MzJfdCBjb3JrLCB1bnNp Z25lZCB3cml0ZV9kb21haW4pCitzdGF0aWMgdWludDMyX3QgX19zdG9yZV9kd29yZChpbnQgZmQs IHVpbnQzMl90IGN0eCwgdW5zaWduZWQgcmluZywKKwkJCSAgICAgIHVpbnQzMl90IHRhcmdldCwg dWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCB2YWx1ZSwKKwkJCSAgICAgIHVpbnQzMl90IGNvcmss IHVuc2lnbmVkIHdyaXRlX2RvbWFpbikKIHsKIAljb25zdCBpbnQgZ2VuID0gaW50ZWxfZ2VuKGlu dGVsX2dldF9kcm1fZGV2aWQoZmQpKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0 MiBvYmpbM107CkBAIC0xMDAsNyArMTAwLDE3IEBAIHN0YXRpYyB2b2lkIHN0b3JlX2R3b3JkKGlu dCBmZCwgdWludDMyX3QgY3R4LCB1bnNpZ25lZCByaW5nLAogCWJhdGNoWysraV0gPSBNSV9CQVRD SF9CVUZGRVJfRU5EOwogCWdlbV93cml0ZShmZCwgb2JqWzJdLmhhbmRsZSwgMCwgYmF0Y2gsIHNp emVvZihiYXRjaCkpOwogCWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7Ci0JZ2VtX2Nsb3NlKGZk LCBvYmpbMl0uaGFuZGxlKTsKKworCXJldHVybiBvYmpbMl0uaGFuZGxlOworfQorCitzdGF0aWMg dm9pZCBzdG9yZV9kd29yZChpbnQgZmQsIHVpbnQzMl90IGN0eCwgdW5zaWduZWQgcmluZywKKwkJ CXVpbnQzMl90IHRhcmdldCwgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCB2YWx1ZSwKKwkJCXVp bnQzMl90IGNvcmssIHVuc2lnbmVkIHdyaXRlX2RvbWFpbikKK3sKKwlnZW1fY2xvc2UoZmQsIF9f c3RvcmVfZHdvcmQoZmQsIGN0eCwgcmluZywKKwkJCQkgICAgdGFyZ2V0LCBvZmZzZXQsIHZhbHVl LAorCQkJCSAgICBjb3JrLCB3cml0ZV9kb21haW4pKTsKIH0KIAogc3RhdGljIHVpbnQzMl90IGNy ZWF0ZV9oaWdoZXN0X3ByaW9yaXR5KGludCBmZCkKQEAgLTE2MSw2ICsxNzEsNjQgQEAgc3RhdGlj IHZvaWQgZmlmbyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCiAJbXVubWFwKHB0ciwgNDA5Nik7CiB9 CiAKK3N0YXRpYyB2b2lkIGluZGVwZW5kZW50KGludCBmZCwgdW5zaWduZWQgaW50IGVuZ2luZSkK K3sKKwlJR1RfQ09SS19IQU5ETEUoY29yayk7CisJdWludDMyX3Qgc2NyYXRjaCwgcGx1ZywgYmF0 Y2g7CisJaWd0X3NwaW5fdCAqc3BpbiA9IE5VTEw7CisJdW5zaWduZWQgaW50IG90aGVyOworCXVp bnQzMl90ICpwdHI7CisKKwlpZ3RfcmVxdWlyZShlbmdpbmUgIT0gMCk7CisKKwlzY3JhdGNoID0g Z2VtX2NyZWF0ZShmZCwgNDA5Nik7CisJcGx1ZyA9IGlndF9jb3JrX3BsdWcoJmNvcmssIGZkKTsK KworCS8qIENoZWNrIHRoYXQgd2UgY2FuIHN1Ym1pdCB0byBlbmdpbmUgd2hpbGUgYWxsIG90aGVy cyBhcmUgYmxvY2tlZCAqLworCWZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgb3RoZXIpIHsK KwkJaWYgKG90aGVyID09IGVuZ2luZSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChzcGluID09IE5V TEwpIHsKKwkJCXNwaW4gPSBfX2lndF9zcGluX2JhdGNoX25ldyhmZCwgMCwgb3RoZXIsIDApOwor CQl9IGVsc2UgeworCQkJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqID0gewor CQkJCS5oYW5kbGUgPSBzcGluLT5oYW5kbGUsCisJCQl9OworCQkJc3RydWN0IGRybV9pOTE1X2dl bV9leGVjYnVmZmVyMiBlYiA9IHsKKwkJCQkuYnVmZmVyX2NvdW50ID0gMSwKKwkJCQkuYnVmZmVy c19wdHIgPSB0b191c2VyX3BvaW50ZXIoJm9iaiksCisJCQkJLmZsYWdzID0gb3RoZXIsCisJCQl9 OworCQkJZ2VtX2V4ZWNidWYoZmQsICZlYik7CisJCX0KKworCQlzdG9yZV9kd29yZChmZCwgMCwg b3RoZXIsIHNjcmF0Y2gsIDAsIG90aGVyLCBwbHVnLCAwKTsKKwl9CisJaWd0X3JlcXVpcmUoc3Bp bik7CisKKwkvKiBTYW1lIHByaW9yaXR5LCBidXQgZGlmZmVyZW50IHRpbWVsaW5lIChhcyBkaWZm ZXJlbnQgZW5naW5lKSAqLworCWJhdGNoID0gX19zdG9yZV9kd29yZChmZCwgMCwgZW5naW5lLCBz Y3JhdGNoLCAwLCBlbmdpbmUsIHBsdWcsIDApOworCisJdW5wbHVnX3Nob3dfcXVldWUoZmQsICZj b3JrLCBlbmdpbmUpOworCWdlbV9jbG9zZShmZCwgcGx1Zyk7CisKKwlnZW1fc3luYyhmZCwgYmF0 Y2gpOworCWdlbV9jbG9zZShmZCwgYmF0Y2gpOworCWlndF9hc3NlcnQoZ2VtX2JvX2J1c3koZmQs IHNwaW4tPmhhbmRsZSkpOworCisJcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgc2NyYXRjaCwgNDA5 NiwgUFJPVF9SRUFEKTsKKwlnZW1fY2xvc2UoZmQsIHNjcmF0Y2gpOworCWlndF9hc3NlcnRfZXEo cHRyWzBdLCBlbmdpbmUpOworCisJaWd0X3NwaW5fYmF0Y2hfZnJlZShmZCwgc3Bpbik7CisJZ2Vt X3F1aWVzY2VudF9ncHUoZmQpOworCisJLyogQW5kIHdlIGV4cGVjdCB0aGUgb3RoZXJzIHRvIGhh dmUgb3ZlcndyaXR0ZW4gdXMsIG9yZGVyIHVuc3BlY2lmaWVkICovCisJaWd0X2Fzc2VydF9uZXEo cHRyWzBdLCBlbmdpbmUpOworCW11bm1hcChwdHIsIDQwOTYpOworfQorCiBzdGF0aWMgdm9pZCBz bW9rZXRlc3QoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCB0aW1lb3V0KQogewogCWNv bnN0IGludCBuY3B1cyA9IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOwpAQCAtMTA3MCwx MCArMTEzOCwxNiBAQCBpZ3RfbWFpbgogCQkJaWYgKGUtPmV4ZWNfaWQgPT0gMCkKIAkJCQljb250 aW51ZTsKIAotCQkJaWd0X3N1YnRlc3RfZigiZmlmby0lcyIsIGUtPm5hbWUpIHsKLQkJCQlpZ3Rf cmVxdWlyZShnZW1fcmluZ19oYXNfcGh5c2ljYWxfZW5naW5lKGZkLCBlLT5leGVjX2lkIHwgZS0+ ZmxhZ3MpKTsKLQkJCQlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5leGVj X2lkKSB8IGUtPmZsYWdzKTsKLQkJCQlmaWZvKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpOwor CQkJaWd0X3N1YnRlc3RfZ3JvdXAgeworCQkJCWlndF9maXh0dXJlIHsKKwkJCQkJaWd0X3JlcXVp cmUoZ2VtX3JpbmdfaGFzX3BoeXNpY2FsX2VuZ2luZShmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdz KSk7CisJCQkJCWlndF9yZXF1aXJlKGdlbV9jYW5fc3RvcmVfZHdvcmQoZmQsIGUtPmV4ZWNfaWQp IHwgZS0+ZmxhZ3MpOworCQkJCX0KKworCQkJCWlndF9zdWJ0ZXN0X2YoImZpZm8tJXMiLCBlLT5u YW1lKQorCQkJCQlmaWZvKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpOworCQkJCWlndF9zdWJ0 ZXN0X2YoImluZGVwZW5kZW50LSVzIiwgZS0+bmFtZSkKKwkJCQkJaW5kZXBlbmRlbnQoZmQsIGUt PmV4ZWNfaWQgfCBlLT5mbGFncyk7CiAJCQl9CiAJCX0KIAl9Ci0tIAoyLjE3LjAKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBs aXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=