From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Wed, 8 May 2019 13:10:54 +0100 Message-Id: <20190508121058.27038-18-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20190508121058.27038-1-tvrtko.ursulin@linux.intel.com> References: <20190508121058.27038-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 17/21] gem_wsim: Infinite batch support 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: Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkZvciBzaW11 bGF0aW5nIGZyYW1lIHNwbGl0IHdvcmtsb2FkcyBpdCBpcyB1c2VmdWwgdG8gZXhwcmVzcyBhIGJh dGNoIHdoaWNoCmVuZHMgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgcGFyYWxsZWwgc3VibWlzc2lv biBvbiB0aGUgcmVzcGVjdGl2ZSBib25kZWQKZW5naW5lLiBGb3IgdGhpcyB3ZSBhZGQgc3VwcG9y dCBmb3IgaW5maW5pdGUgYmF0Y2ggZHVyYXRpb25zIGFuZCB0aGUgYmF0Y2gKdGVybWluYXRlIGNv bW1hbmQgKCdUJykuIFN5bnRheCBsb29rcyBsaWtlIHRoaXM6CgogIDEuUkNTLiouMC4wCiAgVC4t MQoKRmlyc3Qgc3RlcCBzdGFydHMgYW4gaW5maW5pdGUgYmF0Y2gsIGFuZCBzZWNvbmQgY29tbWFu ZCB0ZXJtaW5hdGVzIHRoZQppbmZpbml0ZSBiYXRjaCB3aXRoIHRoZSB1c3VhbCByZWxhdGl2ZSB3 b3JrbG9hZCBzdGVwIGFkZHJlc3NpbmcuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGJlbmNobWFya3MvZ2VtX3dzaW0uYyAgICAg ICAgICAgICAgICAgIHwgMTE5ICsrKysrKysrKysrKysrKysrKystLS0tLS0KIGJlbmNobWFya3Mv d3NpbS9SRUFETUUgICAgICAgICAgICAgICAgIHwgICA5ICstCiBiZW5jaG1hcmtzL3dzaW0vZnJh bWUtc3BsaXQtNjBmcHMud3NpbSB8ICAgNiArLQogMyBmaWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0 aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYmVuY2htYXJrcy9nZW1fd3Np bS5jIGIvYmVuY2htYXJrcy9nZW1fd3NpbS5jCmluZGV4IGNjNmY0YTc0MmMxMi4uOTc4MjFiNzIz YjAyIDEwMDY0NAotLS0gYS9iZW5jaG1hcmtzL2dlbV93c2ltLmMKKysrIGIvYmVuY2htYXJrcy9n ZW1fd3NpbS5jCkBAIC04Niw2ICs4Niw3IEBAIGVudW0gd190eXBlCiAJRU5HSU5FX01BUCwKIAlM T0FEX0JBTEFOQ0UsCiAJQk9ORCwKKwlURVJNSU5BVEUsCiB9OwogCiBzdHJ1Y3QgZGVwcwpAQCAt MTEzLDYgKzExNCw3IEBAIHN0cnVjdCB3X3N0ZXAKIAl1bnNpZ25lZCBpbnQgY29udGV4dDsKIAl1 bnNpZ25lZCBpbnQgZW5naW5lOwogCXN0cnVjdCBkdXJhdGlvbiBkdXJhdGlvbjsKKwlib29sIHVu Ym91bmRfZHVyYXRpb247CiAJc3RydWN0IGRlcHMgZGF0YV9kZXBzOwogCXN0cnVjdCBkZXBzIGZl bmNlX2RlcHM7CiAJaW50IGVtaXRfZmVuY2U7CkBAIC0xNDMsNyArMTQ1LDcgQEAgc3RydWN0IHdf c3RlcAogCiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBlYjsKIAlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiAqb2JqOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVsb2Nh dGlvbl9lbnRyeSByZWxvY1s0XTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25fZW50 cnkgcmVsb2NbNV07CiAJdW5zaWduZWQgbG9uZyBiYl9zejsKIAl1aW50MzJfdCBiYl9oYW5kbGU7 CiAJdWludDMyX3QgKnNlcW5vX3ZhbHVlOwpAQCAtMTUzLDYgKzE1NSw3IEBAIHN0cnVjdCB3X3N0 ZXAKIAl1aW50MzJfdCAqcnQxX2FkZHJlc3M7CiAJdWludDMyX3QgKmxhdGNoX3ZhbHVlOwogCXVp bnQzMl90ICpsYXRjaF9hZGRyZXNzOworCXVpbnQzMl90ICpyZWN1cnNpdmVfYmJfc3RhcnQ7CiB9 OwogCiBERUNMQVJFX0VXTUEodWludDY0X3QsIHJ0LCA0LCAyKQpAQCAtNDkxLDYgKzQ5NCwxMCBA QCBwYXJzZV93b3JrbG9hZChzdHJ1Y3Qgd19hcmcgKmFyZywgdW5zaWduZWQgaW50IGZsYWdzLCBz dHJ1Y3Qgd29ya2xvYWQgKmFwcF93KQogCiAJCQkJc3RlcC50eXBlID0gRU5HSU5FX01BUDsKIAkJ CQlnb3RvIGFkZF9zdGVwOworCQkJfSBlbHNlIGlmICghc3RyY21wKGZpZWxkLCAiVCIpKSB7CisJ CQkJaW50X2ZpZWxkKFRFUk1JTkFURSwgdGFyZ2V0LAorCQkJCQkgIHRtcCA+PSAwIHx8ICgoaW50 KW5yX3N0ZXBzICsgdG1wKSA8IDAsCisJCQkJCSAgIkludmFsaWQgdGVybWluYXRlIHRhcmdldCBh dCBzdGVwICV1IVxuIik7CiAJCQl9IGVsc2UgaWYgKCFzdHJjbXAoZmllbGQsICJYIikpIHsKIAkJ CQl1bnNpZ25lZCBpbnQgbnIgPSAwOwogCQkJCXdoaWxlICgoZmllbGQgPSBzdHJ0b2tfcihmc3Rh cnQsICIuIiwgJmZjdHgpKSkgewpAQCAtNjA1LDIzICs2MTIsMjggQEAgcGFyc2Vfd29ya2xvYWQo c3RydWN0IHdfYXJnICphcmcsIHVuc2lnbmVkIGludCBmbGFncywgc3RydWN0IHdvcmtsb2FkICph cHBfdykKIAogCQkJZnN0YXJ0ID0gTlVMTDsKIAotCQkJdG1wbCA9IHN0cnRvbChmaWVsZCwgJnNl cCwgMTApOwotCQkJY2hlY2tfYXJnKHRtcGwgPD0gMCB8fCB0bXBsID09IExPTkdfTUlOIHx8Ci0J CQkJICB0bXBsID09IExPTkdfTUFYLAotCQkJCSAgIkludmFsaWQgZHVyYXRpb24gYXQgc3RlcCAl dSFcbiIsIG5yX3N0ZXBzKTsKLQkJCXN0ZXAuZHVyYXRpb24ubWluID0gdG1wbDsKLQotCQkJaWYg KHNlcCAmJiAqc2VwID09ICctJykgewotCQkJCXRtcGwgPSBzdHJ0b2woc2VwICsgMSwgTlVMTCwg MTApOwotCQkJCWNoZWNrX2FyZyh0bXBsIDw9IDAgfHwKLQkJCQkJICB0bXBsIDw9IHN0ZXAuZHVy YXRpb24ubWluIHx8Ci0JCQkJCSAgdG1wbCA9PSBMT05HX01JTiB8fAorCQkJaWYgKGZpZWxkWzBd ID09ICcqJykgeworCQkJCXN0ZXAudW5ib3VuZF9kdXJhdGlvbiA9IHRydWU7CisJCQl9IGVsc2Ug eworCQkJCXRtcGwgPSBzdHJ0b2woZmllbGQsICZzZXAsIDEwKTsKKwkJCQljaGVja19hcmcodG1w bCA8PSAwIHx8IHRtcGwgPT0gTE9OR19NSU4gfHwKIAkJCQkJICB0bXBsID09IExPTkdfTUFYLAot CQkJCQkgICJJbnZhbGlkIGR1cmF0aW9uIHJhbmdlIGF0IHN0ZXAgJXUhXG4iLAorCQkJCQkgICJJ bnZhbGlkIGR1cmF0aW9uIGF0IHN0ZXAgJXUhXG4iLAogCQkJCQkgIG5yX3N0ZXBzKTsKLQkJCQlz dGVwLmR1cmF0aW9uLm1heCA9IHRtcGw7Ci0JCQl9IGVsc2UgewotCQkJCXN0ZXAuZHVyYXRpb24u bWF4ID0gc3RlcC5kdXJhdGlvbi5taW47CisJCQkJc3RlcC5kdXJhdGlvbi5taW4gPSB0bXBsOwor CisJCQkJaWYgKHNlcCAmJiAqc2VwID09ICctJykgeworCQkJCQl0bXBsID0gc3RydG9sKHNlcCAr IDEsIE5VTEwsIDEwKTsKKwkJCQkJY2hlY2tfYXJnKHRtcGwgPD0gMCB8fAorCQkJCQkJdG1wbCA8 PSBzdGVwLmR1cmF0aW9uLm1pbiB8fAorCQkJCQkJdG1wbCA9PSBMT05HX01JTiB8fAorCQkJCQkJ dG1wbCA9PSBMT05HX01BWCwKKwkJCQkJCSJJbnZhbGlkIGR1cmF0aW9uIHJhbmdlIGF0IHN0ZXAg JXUhXG4iLAorCQkJCQkJbnJfc3RlcHMpOworCQkJCQlzdGVwLmR1cmF0aW9uLm1heCA9IHRtcGw7 CisJCQkJfSBlbHNlIHsKKwkJCQkJc3RlcC5kdXJhdGlvbi5tYXggPSBzdGVwLmR1cmF0aW9uLm1p bjsKKwkJCQl9CiAJCQl9CiAKIAkJCXZhbGlkKys7CkBAIC03ODEsNyArNzkzLDcgQEAgaW5pdF9i YihzdHJ1Y3Qgd19zdGVwICp3LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJdW5zaWduZWQgaW50IGk7 CiAJdWludDMyX3QgKnB0cjsKIAotCWlmICghYXJiX3BlcmlvZCkKKwlpZiAody0+dW5ib3VuZF9k dXJhdGlvbiB8fCAhYXJiX3BlcmlvZCkKIAkJcmV0dXJuOwogCiAJZ2VtX3NldF9kb21haW4oZmQs IHctPmJiX2hhbmRsZSwKQEAgLTgwMSw2ICs4MTMsNyBAQCB0ZXJtaW5hdGVfYmIoc3RydWN0IHdf c3RlcCAqdywgdW5zaWduZWQgaW50IGZsYWdzKQogCWNvbnN0IHVpbnQzMl90IGJiZSA9IDB4YSA8 PCAyMzsKIAl1bnNpZ25lZCBsb25nIG1tYXBfc3RhcnQsIG1tYXBfbGVuOwogCXVuc2lnbmVkIGxv bmcgYmF0Y2hfc3RhcnQgPSB3LT5iYl9zejsKKwl1bnNpZ25lZCBpbnQgciA9IDA7CiAJdWludDMy X3QgKnB0ciwgKmNzOwogCiAJaWd0X2Fzc2VydCgoKGZsYWdzICYgUlQpICYmIChmbGFncyAmIFNF UU5PKSkgfHwgIShmbGFncyAmIFJUKSk7CkBAIC04MTEsNiArODI0LDkgQEAgdGVybWluYXRlX2Ji KHN0cnVjdCB3X3N0ZXAgKncsIHVuc2lnbmVkIGludCBmbGFncykKIAlpZiAoZmxhZ3MgJiBSVCkK IAkJYmF0Y2hfc3RhcnQgLT0gMTIgKiBzaXplb2YodWludDMyX3QpOwogCisJaWYgKHctPnVuYm91 bmRfZHVyYXRpb24pCisJCWJhdGNoX3N0YXJ0IC09IDQgKiBzaXplb2YodWludDMyX3QpOyAvKiBN SV9BUkJfQ0hLICsgTUlfQkFUQ0hfQlVGRkVSX1NUQVJUICovCisKIAltbWFwX3N0YXJ0ID0gcm91 bmRkb3duKGJhdGNoX3N0YXJ0LCBQQUdFX1NJWkUpOwogCW1tYXBfbGVuID0gQUxJR04ody0+YmJf c3ogLSBtbWFwX3N0YXJ0LCBQQUdFX1NJWkUpOwogCkBAIC04MjAsOCArODM2LDE5IEBAIHRlcm1p bmF0ZV9iYihzdHJ1Y3Qgd19zdGVwICp3LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJcHRyID0gZ2Vt X21tYXBfX3djKGZkLCB3LT5iYl9oYW5kbGUsIG1tYXBfc3RhcnQsIG1tYXBfbGVuLCBQUk9UX1dS SVRFKTsKIAljcyA9ICh1aW50MzJfdCAqKSgoY2hhciAqKXB0ciArIGJhdGNoX3N0YXJ0IC0gbW1h cF9zdGFydCk7CiAKKwlpZiAody0+dW5ib3VuZF9kdXJhdGlvbikgeworCQl3LT5yZWxvY1tyKytd Lm9mZnNldCA9IGJhdGNoX3N0YXJ0ICsgMiAqIHNpemVvZih1aW50MzJfdCk7CisJCWJhdGNoX3N0 YXJ0ICs9IDQgKiBzaXplb2YodWludDMyX3QpOworCisJCSpjcysrID0gdy0+cHJlZW1wdF91cyA/ IDB4NSA8PCAyMyAvKiBNSV9BUkJfQ0hLOyAqLyA6IE1JX05PT1A7CisJCXctPnJlY3Vyc2l2ZV9i Yl9zdGFydCA9IGNzOworCQkqY3MrKyA9IE1JX0JBVENIX0JVRkZFUl9TVEFSVCB8IDEgPDwgOCB8 IDE7CisJCSpjcysrID0gMDsKKwkJKmNzKysgPSAwOworCX0KKwogCWlmIChmbGFncyAmIFNFUU5P KSB7Ci0JCXctPnJlbG9jWzBdLm9mZnNldCA9IGJhdGNoX3N0YXJ0ICsgc2l6ZW9mKHVpbnQzMl90 KTsKKwkJdy0+cmVsb2NbcisrXS5vZmZzZXQgPSBiYXRjaF9zdGFydCArIHNpemVvZih1aW50MzJf dCk7CiAJCWJhdGNoX3N0YXJ0ICs9IDQgKiBzaXplb2YodWludDMyX3QpOwogCiAJCSpjcysrID0g TUlfU1RPUkVfRFdPUkRfSU1NOwpAQCAtODMzLDcgKzg2MCw3IEBAIHRlcm1pbmF0ZV9iYihzdHJ1 Y3Qgd19zdGVwICp3LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJfQogCiAJaWYgKGZsYWdzICYgUlQp IHsKLQkJdy0+cmVsb2NbMV0ub2Zmc2V0ID0gYmF0Y2hfc3RhcnQgKyBzaXplb2YodWludDMyX3Qp OworCQl3LT5yZWxvY1tyKytdLm9mZnNldCA9IGJhdGNoX3N0YXJ0ICsgc2l6ZW9mKHVpbnQzMl90 KTsKIAkJYmF0Y2hfc3RhcnQgKz0gNCAqIHNpemVvZih1aW50MzJfdCk7CiAKIAkJKmNzKysgPSBN SV9TVE9SRV9EV09SRF9JTU07CkBAIC04NDMsNyArODcwLDcgQEAgdGVybWluYXRlX2JiKHN0cnVj dCB3X3N0ZXAgKncsIHVuc2lnbmVkIGludCBmbGFncykKIAkJdy0+cnQwX3ZhbHVlID0gY3M7CiAJ CSpjcysrID0gMDsKIAotCQl3LT5yZWxvY1syXS5vZmZzZXQgPSBiYXRjaF9zdGFydCArIDIgKiBz aXplb2YodWludDMyX3QpOworCQl3LT5yZWxvY1tyKytdLm9mZnNldCA9IGJhdGNoX3N0YXJ0ICsg MiAqIHNpemVvZih1aW50MzJfdCk7CiAJCWJhdGNoX3N0YXJ0ICs9IDQgKiBzaXplb2YodWludDMy X3QpOwogCiAJCSpjcysrID0gMHgyNCA8PCAyMyB8IDI7IC8qIE1JX1NUT1JFX1JFR19NRU0gKi8K QEAgLTg1Miw3ICs4NzksNyBAQCB0ZXJtaW5hdGVfYmIoc3RydWN0IHdfc3RlcCAqdywgdW5zaWdu ZWQgaW50IGZsYWdzKQogCQkqY3MrKyA9IDA7CiAJCSpjcysrID0gMDsKIAotCQl3LT5yZWxvY1sz XS5vZmZzZXQgPSBiYXRjaF9zdGFydCArIHNpemVvZih1aW50MzJfdCk7CisJCXctPnJlbG9jW3Ir K10ub2Zmc2V0ID0gYmF0Y2hfc3RhcnQgKyBzaXplb2YodWludDMyX3QpOwogCQliYXRjaF9zdGFy dCArPSA0ICogc2l6ZW9mKHVpbnQzMl90KTsKIAogCQkqY3MrKyA9IE1JX1NUT1JFX0RXT1JEX0lN TTsKQEAgLTk4NCwxOSArMTAxMSwyOCBAQCBhbGxvY19zdGVwX2JhdGNoKHN0cnVjdCB3b3JrbG9h ZCAqd3JrLCBzdHJ1Y3Qgd19zdGVwICp3LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJCX0KIAl9CiAK LQl3LT5iYl9zeiA9IGdldF9iYl9zeih3LT5kdXJhdGlvbi5tYXgpOwotCXctPmJiX2hhbmRsZSA9 IHctPm9ialtqXS5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCB3LT5iYl9zeik7CisJaWYgKHctPnVu Ym91bmRfZHVyYXRpb24pCisJCS8qIG5vcHMgKyBNSV9BUkJfQ0hLICsgTUlfQkFUQ0hfQlVGRkVS X1NUQVJUICovCisJCXctPmJiX3N6ID0gbWF4KDY0LCBnZXRfYmJfc3oody0+cHJlZW1wdF91cykp ICsKKwkJCSAgICgxICsgMykgKiBzaXplb2YodWludDMyX3QpOworCWVsc2UKKwkJdy0+YmJfc3og PSBnZXRfYmJfc3oody0+ZHVyYXRpb24ubWF4KTsKKwl3LT5iYl9oYW5kbGUgPSB3LT5vYmpbal0u aGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgdy0+YmJfc3ogKyAody0+dW5ib3VuZF9kdXJhdGlvbiA/ IDQwOTYgOiAwKSk7CiAJaW5pdF9iYih3LCBmbGFncyk7CiAJdGVybWluYXRlX2JiKHcsIGZsYWdz KTsKIAotCWlmIChmbGFncyAmIFNFUU5PKSB7CisJaWYgKChmbGFncyAmIFNFUU5PKSB8fCB3LT51 bmJvdW5kX2R1cmF0aW9uKSB7CiAJCXctPm9ialtqXS5yZWxvY3NfcHRyID0gdG9fdXNlcl9wb2lu dGVyKCZ3LT5yZWxvYyk7CisJCWlmIChmbGFncyAmIFNFUU5PKQorCQkJdy0+b2JqW2pdLnJlbG9j YXRpb25fY291bnQrKzsKIAkJaWYgKGZsYWdzICYgUlQpCi0JCQl3LT5vYmpbal0ucmVsb2NhdGlv bl9jb3VudCA9IDQ7Ci0JCWVsc2UKLQkJCXctPm9ialtqXS5yZWxvY2F0aW9uX2NvdW50ID0gMTsK KwkJCXctPm9ialtqXS5yZWxvY2F0aW9uX2NvdW50ICs9IDM7CisJCWlmICh3LT51bmJvdW5kX2R1 cmF0aW9uKQorCQkJdy0+b2JqW2pdLnJlbG9jYXRpb25fY291bnQrKzsKIAkJZm9yIChpID0gMDsg aSA8IHctPm9ialtqXS5yZWxvY2F0aW9uX2NvdW50OyBpKyspCiAJCQl3LT5yZWxvY1tpXS50YXJn ZXRfaGFuZGxlID0gMTsKKwkJaWYgKHctPnVuYm91bmRfZHVyYXRpb24pCisJCQl3LT5yZWxvY1sw XS50YXJnZXRfaGFuZGxlID0gajsKIAl9CiAKIAl3LT5lYi5idWZmZXJzX3B0ciA9IHRvX3VzZXJf cG9pbnRlcih3LT5vYmopOwpAQCAtMjAzNiw2ICsyMDcyLDE4IEBAIHVwZGF0ZV9iYl9ydChzdHJ1 Y3Qgd19zdGVwICp3LCBlbnVtIGludGVsX2VuZ2luZV9pZCBlbmdpbmUsIHVpbnQzMl90IHNlcW5v KQogCX0KIH0KIAorc3RhdGljIHZvaWQKK3VwZGF0ZV9iYl9zdGFydChzdHJ1Y3Qgd19zdGVwICp3 KQoreworCWlmICghdy0+dW5ib3VuZF9kdXJhdGlvbikKKwkJcmV0dXJuOworCisJZ2VtX3NldF9k b21haW4oZmQsIHctPmJiX2hhbmRsZSwKKwkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9XQywgSTkx NV9HRU1fRE9NQUlOX1dDKTsKKworCSp3LT5yZWN1cnNpdmVfYmJfc3RhcnQgPSBNSV9CQVRDSF9C VUZGRVJfU1RBUlQgfCAoMSA8PCA4KSB8IDE7Cit9CisKIHN0YXRpYyB2b2lkIHdfc3luY190byhz dHJ1Y3Qgd29ya2xvYWQgKndyaywgc3RydWN0IHdfc3RlcCAqdywgaW50IHRhcmdldCkKIHsKIAlp ZiAodGFyZ2V0IDwgMCkKQEAgLTIxNzEsOSArMjIxOSwxMyBAQCBkb19lYihzdHJ1Y3Qgd29ya2xv YWQgKndyaywgc3RydWN0IHdfc3RlcCAqdywgZW51bSBpbnRlbF9lbmdpbmVfaWQgZW5naW5lLAog CWlmIChmbGFncyAmIFJUKQogCQl1cGRhdGVfYmJfcnQodywgZW5naW5lLCBzZXFubyk7CiAKKwl1 cGRhdGVfYmJfc3RhcnQodyk7CisKIAl3LT5lYi5iYXRjaF9zdGFydF9vZmZzZXQgPQorCQl3LT51 bmJvdW5kX2R1cmF0aW9uID8KKwkJMCA6CiAJCUFMSUdOKHctPmJiX3N6IC0gZ2V0X2JiX3N6KGdl dF9kdXJhdGlvbih3KSksCi0JCQkyICogc2l6ZW9mKHVpbnQzMl90KSk7CisJCSAgICAgIDIgKiBz aXplb2YodWludDMyX3QpKTsKIAogCWZvciAoaSA9IDA7IGkgPCB3LT5mZW5jZV9kZXBzLm5yOyBp KyspIHsKIAkJaW50IHRndCA9IHctPmlkeCArIHctPmZlbmNlX2RlcHMubGlzdFtpXTsKQEAgLTIz MTMsNiArMjM2NSwxNyBAQCBzdGF0aWMgdm9pZCAqcnVuX3dvcmtsb2FkKHZvaWQgKmRhdGEpCiAJ CQkJCQkJCSAgICB3LT5wcmlvcml0eTsKIAkJCQl9CiAJCQkJY29udGludWU7CisJCQl9IGVsc2Ug aWYgKHctPnR5cGUgPT0gVEVSTUlOQVRFKSB7CisJCQkJdW5zaWduZWQgaW50IHRfaWR4ID0gaSAr IHctPnRhcmdldDsKKworCQkJCWlndF9hc3NlcnQodF9pZHggPj0gMCAmJiB0X2lkeCA8IGkpOwor CQkJCWlndF9hc3NlcnQod3JrLT5zdGVwc1t0X2lkeF0udHlwZSA9PSBCQVRDSCk7CisJCQkJaWd0 X2Fzc2VydCh3cmstPnN0ZXBzW3RfaWR4XS51bmJvdW5kX2R1cmF0aW9uKTsKKworCQkJCSp3cmst PnN0ZXBzW3RfaWR4XS5yZWN1cnNpdmVfYmJfc3RhcnQgPQorCQkJCQlNSV9CQVRDSF9CVUZGRVJf RU5EOworCQkJCV9fc3luY19zeW5jaHJvbml6ZSgpOworCQkJCWNvbnRpbnVlOwogCQkJfSBlbHNl IGlmICh3LT50eXBlID09IFBSRUVNUFRJT04gfHwKIAkJCQkgICB3LT50eXBlID09IEVOR0lORV9N QVAgfHwKIAkJCQkgICB3LT50eXBlID09IExPQURfQkFMQU5DRSB8fApkaWZmIC0tZ2l0IGEvYmVu Y2htYXJrcy93c2ltL1JFQURNRSBiL2JlbmNobWFya3Mvd3NpbS9SRUFETUUKaW5kZXggNmFlYzcx OGJjODEyLi5jOTRkMDEwMTg0MTkgMTAwNjQ0Ci0tLSBhL2JlbmNobWFya3Mvd3NpbS9SRUFETUUK KysrIGIvYmVuY2htYXJrcy93c2ltL1JFQURNRQpAQCAtMiwxMSArMiwxMSBAQCBXb3JrbG9hZCBk ZXNjcmlwdG9yIGZvcm1hdAogPT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogY3R4LmVuZ2lu ZS5kdXJhdGlvbl91cy5kZXBlbmRlbmN5LndhaXQsLi4uCi08dWludD4uPHN0cj4uPHVpbnQ+Wy08 dWludD5dLjxpbnQgPD0gMD5bLzxpbnQgPD0gMD5dWy4uLl0uPDB8MT4sLi4uCis8dWludD4uPHN0 cj4uPHVpbnQ+Wy08dWludD5dfCouPGludCA8PSAwPlsvPGludCA8PSAwPl1bLi4uXS48MHwxPiwu Li4KIEIuPHVpbnQ+CiBNLjx1aW50Pi48c3RyPlt8PHN0cj5dLi4uCiBQfFguPHVpbnQ+LjxpbnQ+ Ci1kfHB8c3x0fHF8YS48aW50PiwuLi4KK2R8cHxzfHR8cXxhfFQuPGludD4sLi4uCiBiLjx1aW50 Pi48dWludD4uPHN0cj4KIGYKIApAQCAtMzAsNiArMzAsNyBAQCBBZGRpdGlvbmFsIHdvcmtsb2Fk IHN0ZXBzIGFyZSBhbHNvIHN1cHBvcnRlZDoKICAnYicgLSBTZXQgdXAgZW5naW5lIGJvbmRzLgog ICdNJyAtIFNldCB1cCBlbmdpbmUgbWFwLgogICdQJyAtIENvbnRleHQgcHJpb3JpdHkuCisgJ1Qn IC0gVGVybWluYXRlIGFuIGluZmluaXRlIGJhdGNoLgogICdYJyAtIENvbnRleHQgcHJlZW1wdGlv biBjb250cm9sLgogCiBFbmdpbmUgaWRzOiBERUZBVUxULCBSQ1MsIEJDUywgVkNTLCBWQ1MxLCBW Q1MyLCBWRUNTCkBAIC03Nyw2ICs3OCwxMCBAQCBFeGFtcGxlOgogCiBJIHRoaXMgY2FzZSB0aGUg bGFzdCBzdGVwIGhhcyBhIGRhdGEgZGVwZW5kZW5jeSBvbiBib3RoIGZpcnN0IGFuZCBzZWNvbmQg c3RlcHMuCiAKK0JhdGNoIGR1cmF0aW9ucyBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgYXMgaW5maW5p dGUgYnkgdXNpbmcgdGhlICcqJyBpbiB0aGUKK2R1cmF0aW9uIGZpZWxkLiBTdWNoIGJhdGNoZXMg bXVzdCBiZSBlbmRlZCBieSB0aGUgdGVybWluYXRlIGNvbW1hbmQgKCdUJykKK290aGVyd2lzZSB0 aGV5IHdpbGwgY2F1c2UgYSBHUFUgaGFuZyB0byBiZSByZXBvcnRlZC4KKwogU3luYyAoZmQpIGZl bmNlcwogLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9iZW5jaG1hcmtzL3dzaW0vZnJh bWUtc3BsaXQtNjBmcHMud3NpbSBiL2JlbmNobWFya3Mvd3NpbS9mcmFtZS1zcGxpdC02MGZwcy53 c2ltCmluZGV4IGNmYmZjZDM5YmU3ZC4uZWE4OWRhM2FkZDQ4IDEwMDY0NAotLS0gYS9iZW5jaG1h cmtzL3dzaW0vZnJhbWUtc3BsaXQtNjBmcHMud3NpbQorKysgYi9iZW5jaG1hcmtzL3dzaW0vZnJh bWUtc3BsaXQtNjBmcHMud3NpbQpAQCAtNiwxMCArNiwxMiBAQCBNLjIuVkNTMgogQi4yCiBiLjIu MS5WQ1MxCiBmCi0xLkRFRkFVTFQuNDAwMC02MDAwLmYtMS4wCisxLkRFRkFVTFQuKi5mLTEuMAog Mi5ERUZBVUxULjQwMDAtNjAwMC5zLTEuMAogYS4tMwotMy5SQ1MuMjAwMC00MDAwLi0zLy0yLjAK K3MuLTIKK1QuLTQKKzMuUkNTLjIwMDAtNDAwMC4tNS8tNC4wCiAzLlZFQ1MuMjAwMC4tMS4wCiA0 LkJDUy4xMDAwLi0xLjAKIHMuLTIKLS0gCjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3QtZGV2