From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Wed, 8 May 2019 13:10:42 +0100 Message-Id: <20190508121058.27038-6-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: [Intel-gfx] [PATCH i-g-t 05/21] wsim/media-bench: i915 balancing List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 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: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClN1cHBvcnQg aTkxNSB2aXJ0dWFsIGVuZ2luZSBmcm9tIGdlbV93c2ltICgtYiBpOTE1KSBhbmQgbWVkaWEtYmVu Y2gucGwKClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRl bC5jb20+Ci0tLQogYmVuY2htYXJrcy9nZW1fd3NpbS5jICB8IDI4MSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLQogc2NyaXB0cy9tZWRpYS1iZW5jaC5wbCB8ICAgOSAr LQogMiBmaWxlcyBjaGFuZ2VkLCAyNDQgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvYmVuY2htYXJrcy9nZW1fd3NpbS5jIGIvYmVuY2htYXJrcy9nZW1fd3NpbS5j CmluZGV4IGFmYjk2NDRkZDdmMC4uMTA4NGU5NWZhOGRmIDEwMDY0NAotLS0gYS9iZW5jaG1hcmtz L2dlbV93c2ltLmMKKysrIGIvYmVuY2htYXJrcy9nZW1fd3NpbS5jCkBAIC0xNDIsNiArMTQyLDE0 IEBAIHN0cnVjdCB3X3N0ZXAKIAogREVDTEFSRV9FV01BKHVpbnQ2NF90LCBydCwgNCwgMikKIAor c3RydWN0IGN0eCB7CisJdWludDMyX3QgaWQ7CisJaW50IHByaW9yaXR5OworCWJvb2wgdGFyZ2V0 c19pbnN0YW5jZTsKKwlib29sIHdhbnRzX2JhbGFuY2U7CisJdW5zaWduZWQgaW50IHN0YXRpY192 Y3M7Cit9OworCiBzdHJ1Y3Qgd29ya2xvYWQKIHsKIAl1bnNpZ25lZCBpbnQgaWQ7CkBAIC0xNjMs MTEgKzE3MSw3IEBAIHN0cnVjdCB3b3JrbG9hZAogCXN0cnVjdCB0aW1lc3BlYyByZXBlYXRfc3Rh cnQ7CiAKIAl1bnNpZ25lZCBpbnQgbnJfY3R4czsKLQlzdHJ1Y3QgewotCQl1aW50MzJfdCBpZDsK LQkJaW50IHByaW9yaXR5OwotCQl1bnNpZ25lZCBpbnQgc3RhdGljX3ZjczsKLQl9ICpjdHhfbGlz dDsKKwlzdHJ1Y3QgY3R4ICpjdHhfbGlzdDsKIAogCWludCBzeW5jX3RpbWVsaW5lOwogCXVpbnQz Ml90IHN5bmNfc2Vxbm87CkBAIC0yMjQsNiArMjI4LDcgQEAgc3RhdGljIGludCBmZDsKICNkZWZp bmUgSEVBUlRCRUFUCSgxPDw3KQogI2RlZmluZSBHTE9CQUxfQkFMQU5DRQkoMTw8OCkKICNkZWZp bmUgREVQU1lOQwkJKDE8PDkpCisjZGVmaW5lIEk5MTUJCSgxPDwxMCkKIAogI2RlZmluZSBTRVFO T19JRFgoZW5naW5lKSAoKGVuZ2luZSkgKiAxNikKICNkZWZpbmUgU0VRTk9fT0ZGU0VUKGVuZ2lu ZSkgKFNFUU5PX0lEWChlbmdpbmUpICogc2l6ZW9mKHVpbnQzMl90KSkKQEAgLTg0MSw3ICs4NDYs MTEgQEAgZWJfc2V0X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICplYiwK IAlpZiAoZW5naW5lID09IFZDUzIgJiYgKGZsYWdzICYgVkNTMlJFTUFQKSkKIAkJZW5naW5lID0g QkNTOwogCi0JZWItPmZsYWdzID0gZWJfZW5naW5lX21hcFtlbmdpbmVdOworCWlmICgoZmxhZ3Mg JiBJOTE1KSAmJiBlbmdpbmUgPT0gVkNTKSB7CisJCWViLT5mbGFncyA9IDA7CisJfSBlbHNlIHsK KwkJZWItPmZsYWdzID0gZWJfZW5naW5lX21hcFtlbmdpbmVdOworCX0KIH0KIAogc3RhdGljIHZv aWQKQEAgLTg2Nyw2ICs4NzYsMjMgQEAgZ2V0X3N0YXR1c19vYmplY3RzKHN0cnVjdCB3b3JrbG9h ZCAqd3JrKQogCQlyZXR1cm4gd3JrLT5zdGF0dXNfb2JqZWN0OwogfQogCitzdGF0aWMgc3RydWN0 IGN0eCAqCitfX2dldF9jdHgoc3RydWN0IHdvcmtsb2FkICp3cmssIHN0cnVjdCB3X3N0ZXAgKncp Cit7CisJcmV0dXJuICZ3cmstPmN0eF9saXN0W3ctPmNvbnRleHQgKiAyXTsKK30KKworc3RhdGlj IHVpbnQzMl90CitnZXRfY3R4aWQoc3RydWN0IHdvcmtsb2FkICp3cmssIHN0cnVjdCB3X3N0ZXAg KncpCit7CisJc3RydWN0IGN0eCAqY3R4ID0gX19nZXRfY3R4KHdyaywgdyk7CisKKwlpZiAoY3R4 LT50YXJnZXRzX2luc3RhbmNlICYmIGN0eC0+d2FudHNfYmFsYW5jZSAmJiB3LT5lbmdpbmUgPT0g VkNTKQorCQlyZXR1cm4gd3JrLT5jdHhfbGlzdFt3LT5jb250ZXh0ICogMiArIDFdLmlkOworCWVs c2UKKwkJcmV0dXJuIHdyay0+Y3R4X2xpc3Rbdy0+Y29udGV4dCAqIDJdLmlkOworfQorCiBzdGF0 aWMgdm9pZAogYWxsb2Nfc3RlcF9iYXRjaChzdHJ1Y3Qgd29ya2xvYWQgKndyaywgc3RydWN0IHdf c3RlcCAqdywgdW5zaWduZWQgaW50IGZsYWdzKQogewpAQCAtOTE5LDcgKzk0NSw3IEBAIGFsbG9j X3N0ZXBfYmF0Y2goc3RydWN0IHdvcmtsb2FkICp3cmssIHN0cnVjdCB3X3N0ZXAgKncsIHVuc2ln bmVkIGludCBmbGFncykKIAogCXctPmViLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKHct Pm9iaik7CiAJdy0+ZWIuYnVmZmVyX2NvdW50ID0gaiArIDE7Ci0Jdy0+ZWIucnN2ZDEgPSB3cmst PmN0eF9saXN0W3ctPmNvbnRleHRdLmlkOworCXctPmViLnJzdmQxID0gZ2V0X2N0eGlkKHdyaywg dyk7CiAKIAlpZiAoZmxhZ3MgJiBTV0FQVkNTICYmIGVuZ2luZSA9PSBWQ1MxKQogCQllbmdpbmUg PSBWQ1MyOwpAQCAtOTMyLDE3ICs5NTgsMjkgQEAgYWxsb2Nfc3RlcF9iYXRjaChzdHJ1Y3Qgd29y a2xvYWQgKndyaywgc3RydWN0IHdfc3RlcCAqdywgdW5zaWduZWQgaW50IGZsYWdzKQogCQlwcmlu dGYoIiV4fCIsIHctPm9ialtpXS5oYW5kbGUpOwogCXByaW50ZigiICUxMGx1IGZsYWdzPSVsbHgg YmI9JXhbJXVdIGN0eFsldV09JXVcbiIsCiAJCXctPmJiX3N6LCB3LT5lYi5mbGFncywgdy0+YmJf aGFuZGxlLCBqLCB3LT5jb250ZXh0LAotCQl3cmstPmN0eF9saXN0W3ctPmNvbnRleHRdLmlkKTsK KwkJZ2V0X2N0eGlkKHdyaywgdykpOwogI2VuZGlmCiB9CiAKK3N0YXRpYyB2b2lkIF9fY3R4X3Nl dF9wcmlvKHVpbnQzMl90IGN0eF9pZCwgdW5zaWduZWQgaW50IHByaW8pCit7CisJc3RydWN0IGRy bV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIHBhcmFtID0geworCQkuY3R4X2lkID0gY3R4X2lkLAor CQkucGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFSQU1fUFJJT1JJVFksCisJCS52YWx1ZSA9IHByaW8s CisJfTsKKworCWlmIChwcmlvKQorCQlnZW1fY29udGV4dF9zZXRfcGFyYW0oZmQsICZwYXJhbSk7 Cit9CisKIHN0YXRpYyB2b2lkCiBwcmVwYXJlX3dvcmtsb2FkKHVuc2lnbmVkIGludCBpZCwgc3Ry dWN0IHdvcmtsb2FkICp3cmssIHVuc2lnbmVkIGludCBmbGFncykKIHsKIAl1bnNpZ25lZCBpbnQg Y3R4X3ZjcyA9IDA7CiAJaW50IG1heF9jdHggPSAtMTsKIAlzdHJ1Y3Qgd19zdGVwICp3OwotCWlu dCBpOworCWludCBpLCBqOwogCiAJd3JrLT5pZCA9IGlkOwogCXdyay0+cHJuZyA9IHJhbmQoKTsK QEAgLTk3Myw0NCArMTAxMSwxODMgQEAgcHJlcGFyZV93b3JrbG9hZCh1bnNpZ25lZCBpbnQgaWQs IHN0cnVjdCB3b3JrbG9hZCAqd3JrLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJCX0KIAl9CiAKKwkv KgorCSAqIFByZS1zY2FuIHdvcmtsb2FkIHN0ZXBzIHRvIGFsbG9jYXRlIGNvbnRleHQgbGlzdCBz dG9yYWdlLgorCSAqLwogCWZvciAoaSA9IDAsIHcgPSB3cmstPnN0ZXBzOyBpIDwgd3JrLT5ucl9z dGVwczsgaSsrLCB3KyspIHsKLQkJaWYgKChpbnQpdy0+Y29udGV4dCA+IG1heF9jdHgpIHsKLQkJ CWludCBkZWx0YSA9IHctPmNvbnRleHQgKyAxIC0gd3JrLT5ucl9jdHhzOworCQlpbnQgY3R4ID0g dy0+Y29udGV4dCAqIDIgKyAxOyAvKiBPZGQgc2xvdHMgYXJlIHNwZWNpYWwuICovCisJCWludCBk ZWx0YTsKKworCQlpZiAoY3R4IDw9IG1heF9jdHgpCisJCQljb250aW51ZTsKKworCQlkZWx0YSA9 IGN0eCArIDEgLSB3cmstPm5yX2N0eHM7CiAKLQkJCXdyay0+bnJfY3R4cyArPSBkZWx0YTsKLQkJ CXdyay0+Y3R4X2xpc3QgPSByZWFsbG9jKHdyay0+Y3R4X2xpc3QsCi0JCQkJCQl3cmstPm5yX2N0 eHMgKgotCQkJCQkJc2l6ZW9mKCp3cmstPmN0eF9saXN0KSk7Ci0JCQltZW1zZXQoJndyay0+Y3R4 X2xpc3Rbd3JrLT5ucl9jdHhzIC0gZGVsdGFdLCAwLAotCQkJICAgICAgIGRlbHRhICogc2l6ZW9m KCp3cmstPmN0eF9saXN0KSk7CisJCXdyay0+bnJfY3R4cyArPSBkZWx0YTsKKwkJd3JrLT5jdHhf bGlzdCA9IHJlYWxsb2Mod3JrLT5jdHhfbGlzdCwKKwkJCQkJd3JrLT5ucl9jdHhzICogc2l6ZW9m KCp3cmstPmN0eF9saXN0KSk7CisJCW1lbXNldCgmd3JrLT5jdHhfbGlzdFt3cmstPm5yX2N0eHMg LSBkZWx0YV0sIDAsCisJCQlkZWx0YSAqIHNpemVvZigqd3JrLT5jdHhfbGlzdCkpOworCisJCW1h eF9jdHggPSBjdHg7CisJfQorCisJLyoKKwkgKiBJZGVudGlmeSBpZiBjb250ZXh0cyB0YXJnZXQg c3BlY2lmaWMgZW5naW5lIGluc3RhbmNlcyBhbmQgaWYgdGhleQorCSAqIHdhbnQgdG8gYmUgYmFs YW5jZWQuCisJICovCisJZm9yIChqID0gMDsgaiA8IHdyay0+bnJfY3R4czsgaiArPSAyKSB7CisJ CWJvb2wgdGFyZ2V0cyA9IGZhbHNlOworCQlib29sIGJhbGFuY2UgPSBmYWxzZTsKIAotCQkJbWF4 X2N0eCA9IHctPmNvbnRleHQ7CisJCWZvciAoaSA9IDAsIHcgPSB3cmstPnN0ZXBzOyBpIDwgd3Jr LT5ucl9zdGVwczsgaSsrLCB3KyspIHsKKwkJCWlmICh3LT50eXBlICE9IEJBVENIKQorCQkJCWNv bnRpbnVlOworCisJCQlpZiAody0+Y29udGV4dCAhPSAoaiAvIDIpKQorCQkJCWNvbnRpbnVlOwor CisJCQlpZiAody0+ZW5naW5lID09IFZDUykKKwkJCQliYWxhbmNlID0gdHJ1ZTsKKwkJCWVsc2UK KwkJCQl0YXJnZXRzID0gdHJ1ZTsKIAkJfQogCi0JCWlmICghd3JrLT5jdHhfbGlzdFt3LT5jb250 ZXh0XS5pZCkgewotCQkJc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZSBhcmcgPSB7 fTsKKwkJaWYgKGZsYWdzICYgSTkxNSkgeworCQkJd3JrLT5jdHhfbGlzdFtqXS50YXJnZXRzX2lu c3RhbmNlID0gdGFyZ2V0czsKKwkJCXdyay0+Y3R4X2xpc3Rbal0ud2FudHNfYmFsYW5jZSA9IGJh bGFuY2U7CisJCX0KKwl9CiAKLQkJCWRybUlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRU1fQ09O VEVYVF9DUkVBVEUsICZhcmcpOwotCQkJaWd0X2Fzc2VydChhcmcuY3R4X2lkKTsKKwkvKgorCSAq IENyZWF0ZSBhbmQgY29uZmlndXJlIGNvbnRleHRzLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCB3 cmstPm5yX2N0eHM7IGkgKz0gMikgeworCQlzdHJ1Y3QgY3R4ICpjdHggPSAmd3JrLT5jdHhfbGlz dFtpXTsKKwkJdWludDMyX3QgY3R4X2lkLCBzaGFyZV92bSA9IDA7CiAKLQkJCXdyay0+Y3R4X2xp c3Rbdy0+Y29udGV4dF0uaWQgPSBhcmcuY3R4X2lkOworCQlpZiAoY3R4LT5pZCkKKwkJCWNvbnRp bnVlOwogCi0JCQlpZiAoZmxhZ3MgJiBHTE9CQUxfQkFMQU5DRSkgewotCQkJCXdyay0+Y3R4X2xp c3Rbdy0+Y29udGV4dF0uc3RhdGljX3ZjcyA9IGNvbnRleHRfdmNzX3JyOwotCQkJCWNvbnRleHRf dmNzX3JyIF49IDE7Ci0JCQl9IGVsc2UgewotCQkJCXdyay0+Y3R4X2xpc3Rbdy0+Y29udGV4dF0u c3RhdGljX3ZjcyA9IGN0eF92Y3M7Ci0JCQkJY3R4X3ZjcyBePSAxOwotCQkJfQorCQlpZiAoZmxh Z3MgJiBJOTE1KSB7CisJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2V4dF9z ZXRwYXJhbSBleHQgPSB7CisJCQkJLmJhc2UubmFtZSA9IEk5MTVfQ09OVEVYVF9DUkVBVEVfRVhU X1NFVFBBUkFNLAorCQkJCS5wYXJhbS5wYXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9WTSwKKwkJ CX07CisJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2V4dCBhcmdzID0geyB9 OwogCi0JCQlpZiAod3JrLT5wcmlvKSB7CisJCQkvKiBGaW5kIGV4aXN0aW5nIGNvbnRleHQgdG8g c2hhcmUgcHBndHQgd2l0aC4gKi8KKwkJCWZvciAoaiA9IDA7IGogPCB3cmstPm5yX2N0eHM7IGor KykgewogCQkJCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSBwYXJhbSA9IHsKLQkJ CQkJLmN0eF9pZCA9IGFyZy5jdHhfaWQsCi0JCQkJCS5wYXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJB TV9QUklPUklUWSwKLQkJCQkJLnZhbHVlID0gd3JrLT5wcmlvLAorCQkJCQkucGFyYW0gPSBJOTE1 X0NPTlRFWFRfUEFSQU1fVk0sCiAJCQkJfTsKLQkJCQlnZW1fY29udGV4dF9zZXRfcGFyYW0oZmQs ICZwYXJhbSk7CisKKwkJCQlpZiAoIXdyay0+Y3R4X2xpc3Rbal0uaWQpCisJCQkJCWNvbnRpbnVl OworCisJCQkJcGFyYW0uY3R4X2lkID0gd3JrLT5jdHhfbGlzdFtqXS5pZDsKKworCQkJCWdlbV9j b250ZXh0X2dldF9wYXJhbShmZCwgJnBhcmFtKTsKKwkJCQlpZ3RfYXNzZXJ0KHBhcmFtLnZhbHVl KTsKKworCQkJCXNoYXJlX3ZtID0gcGFyYW0udmFsdWU7CisKKwkJCQlleHQucGFyYW0udmFsdWUg PSBzaGFyZV92bTsKKwkJCQlhcmdzLmZsYWdzID0KKwkJCQkgICAgSTkxNV9DT05URVhUX0NSRUFU RV9GTEFHU19VU0VfRVhURU5TSU9OUzsKKwkJCQlhcmdzLmV4dGVuc2lvbnMgPSB0b191c2VyX3Bv aW50ZXIoJmV4dCk7CisJCQkJYnJlYWs7CiAJCQl9CisKKwkJCWlmICghY3R4LT50YXJnZXRzX2lu c3RhbmNlKQorCQkJCWFyZ3MuZmxhZ3MgfD0KKwkJCQkgICAgIEk5MTVfQ09OVEVYVF9DUkVBVEVf RkxBR1NfU0lOR0xFX1RJTUVMSU5FOworCisJCQlkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVf R0VNX0NPTlRFWFRfQ1JFQVRFX0VYVCwKKwkJCQkgJmFyZ3MpOworCisJCQljdHhfaWQgPSBhcmdz LmN0eF9pZDsKKwkJfSBlbHNlIHsKKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9jcmVh dGUgYXJncyA9IHt9OworCisJCQlkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VNX0NPTlRF WFRfQ1JFQVRFLCAmYXJncyk7CisJCQljdHhfaWQgPSBhcmdzLmN0eF9pZDsKKwkJfQorCisJCWln dF9hc3NlcnQoY3R4X2lkKTsKKwkJY3R4LT5pZCA9IGN0eF9pZDsKKworCQlpZiAoZmxhZ3MgJiBH TE9CQUxfQkFMQU5DRSkgeworCQkJY3R4LT5zdGF0aWNfdmNzID0gY29udGV4dF92Y3NfcnI7CisJ CQljb250ZXh0X3Zjc19yciBePSAxOworCQl9IGVsc2UgeworCQkJY3R4LT5zdGF0aWNfdmNzID0g Y3R4X3ZjczsKKwkJCWN0eF92Y3MgXj0gMTsKKwkJfQorCisJCV9fY3R4X3NldF9wcmlvKGN0eF9p ZCwgd3JrLT5wcmlvKTsKKworCQkvKgorCQkgKiBEbyB3ZSBuZWVkIGEgc2VwYXJhdGUgY29udGV4 dCB0byBzYXRpc2Z5IHRoaXMgd29ya2xvYWRzIHdoaWNoCisJCSAqIGJvdGggd2FudCB0byB0YXJn ZXQgc3BlY2lmaWMgZW5naW5lcyBhbmQgYmUgYmFsYW5jZWQgYnkgaTkxNT8KKwkJICovCisJCWlm ICgoZmxhZ3MgJiBJOTE1KSAmJiBjdHgtPndhbnRzX2JhbGFuY2UgJiYKKwkJICAgIGN0eC0+dGFy Z2V0c19pbnN0YW5jZSkgeworCQkJc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9l eHRfc2V0cGFyYW0gZXh0ID0geworCQkJCS5iYXNlLm5hbWUgPSBJOTE1X0NPTlRFWFRfQ1JFQVRF X0VYVF9TRVRQQVJBTSwKKwkJCQkucGFyYW0ucGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFSQU1fVk0s CisJCQkJLnBhcmFtLnZhbHVlID0gc2hhcmVfdm0sCisJCQl9OworCQkJc3RydWN0IGRybV9pOTE1 X2dlbV9jb250ZXh0X2NyZWF0ZV9leHQgYXJncyA9IHsKKwkJCQkuZXh0ZW5zaW9ucyA9IHRvX3Vz ZXJfcG9pbnRlcigmZXh0KSwKKwkJCQkuZmxhZ3MgPQorCQkJCSAgICBJOTE1X0NPTlRFWFRfQ1JF QVRFX0ZMQUdTX1VTRV9FWFRFTlNJT05TIHwKKwkJCQkgICAgSTkxNV9DT05URVhUX0NSRUFURV9G TEFHU19TSU5HTEVfVElNRUxJTkUsCisJCQl9OworCisJCQlpZ3RfYXNzZXJ0KHNoYXJlX3ZtKTsK KworCQkJZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFTV9DT05URVhUX0NSRUFURV9FWFQs CisJCQkJICZhcmdzKTsKKworCQkJaWd0X2Fzc2VydChhcmdzLmN0eF9pZCk7CisJCQljdHhfaWQg PSBhcmdzLmN0eF9pZDsKKwkJCXdyay0+Y3R4X2xpc3RbaSArIDFdLmlkID0gYXJncy5jdHhfaWQ7 CisKKwkJCV9fY3R4X3NldF9wcmlvKGN0eF9pZCwgd3JrLT5wcmlvKTsKKwkJfQorCisJCWlmIChj dHgtPndhbnRzX2JhbGFuY2UpIHsKKwkJCUk5MTVfREVGSU5FX0NPTlRFWFRfRU5HSU5FU19MT0FE X0JBTEFOQ0UobG9hZF9iYWxhbmNlLCAyKSA9IHsKKwkJCQkuYmFzZS5uYW1lID0gSTkxNV9DT05U RVhUX0VOR0lORVNfRVhUX0xPQURfQkFMQU5DRSwKKwkJCQkubnVtX3NpYmxpbmdzID0gMiwKKwkJ CQkuZW5naW5lcyA9IHsKKwkJCQkJeyAuZW5naW5lX2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xBU1Nf VklERU8sCisJCQkJCSAgLmVuZ2luZV9pbnN0YW5jZSA9IDAgfSwKKwkJCQkJeyAuZW5naW5lX2Ns YXNzID0gSTkxNV9FTkdJTkVfQ0xBU1NfVklERU8sCisJCQkJCSAgLmVuZ2luZV9pbnN0YW5jZSA9 IDEgfSwKKwkJCQl9LAorCQkJfTsKKwkJCUk5MTVfREVGSU5FX0NPTlRFWFRfUEFSQU1fRU5HSU5F UyhzZXRfZW5naW5lcywgMykgPSB7CisJCQkJLmV4dGVuc2lvbnMgPSB0b191c2VyX3BvaW50ZXIo JmxvYWRfYmFsYW5jZSksCisJCQkJLmVuZ2luZXMgPSB7CisJCQkJCXsgLmVuZ2luZV9jbGFzcyA9 IEk5MTVfRU5HSU5FX0NMQVNTX0lOVkFMSUQsCisJCQkJCSAgLmVuZ2luZV9pbnN0YW5jZSA9IEk5 MTVfRU5HSU5FX0NMQVNTX0lOVkFMSURfTk9ORSB9LAorCQkJCQl7IC5lbmdpbmVfY2xhc3MgPSBJ OTE1X0VOR0lORV9DTEFTU19WSURFTywKKwkJCQkJICAuZW5naW5lX2luc3RhbmNlID0gMCB9LAor CQkJCQl7IC5lbmdpbmVfY2xhc3MgPSBJOTE1X0VOR0lORV9DTEFTU19WSURFTywKKwkJCQkJICAu ZW5naW5lX2luc3RhbmNlID0gMSB9LAorCQkJCX0sCisJCQl9OworCisJCQlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX2NvbnRleHRfcGFyYW0gcGFyYW0gPSB7CisJCQkJLmN0eF9pZCA9IGN0eF9pZCwKKwkJ CQkucGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFSQU1fRU5HSU5FUywKKwkJCQkuc2l6ZSA9IHNpemVv ZihzZXRfZW5naW5lcyksCisJCQkJLnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKCZzZXRfZW5naW5l cyksCisJCQl9OworCisJCQlnZW1fY29udGV4dF9zZXRfcGFyYW0oZmQsICZwYXJhbSk7CiAJCX0K IAl9CiAKQEAgLTEwMjcsNyArMTIwNCw2IEBAIHByZXBhcmVfd29ya2xvYWQodW5zaWduZWQgaW50 IGlkLCBzdHJ1Y3Qgd29ya2xvYWQgKndyaywgdW5zaWduZWQgaW50IGZsYWdzKQogCSAqLwogCWZv ciAoaSA9IDAsIHcgPSB3cmstPnN0ZXBzOyBpIDwgd3JrLT5ucl9zdGVwczsgaSsrLCB3KyspIHsK IAkJc3RydWN0IHdfc3RlcCAqdzI7Ci0JCWludCBqOwogCiAJCWlmICh3LT50eXBlICE9IFBSRUVN UFRJT04pCiAJCQljb250aW51ZTsKQEAgLTEzODUsNyArMTU2MSw3IEBAIHN0YXRpYyBlbnVtIGlu dGVsX2VuZ2luZV9pZAogY29udGV4dF9iYWxhbmNlKGNvbnN0IHN0cnVjdCB3b3JrbG9hZF9iYWxh bmNlciAqYmFsYW5jZXIsCiAJCXN0cnVjdCB3b3JrbG9hZCAqd3JrLCBzdHJ1Y3Qgd19zdGVwICp3 KQogewotCXJldHVybiBnZXRfdmNzX2VuZ2luZSh3cmstPmN0eF9saXN0W3ctPmNvbnRleHRdLnN0 YXRpY192Y3MpOworCXJldHVybiBnZXRfdmNzX2VuZ2luZShfX2dldF9jdHgod3JrLCB3KS0+c3Rh dGljX3Zjcyk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQKQEAgLTE1NzksNiArMTc1NSwxMiBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHdvcmtsb2FkX2JhbGFuY2VyIGFsbF9iYWxhbmNlcnNbXSA9 IHsKIAkJLmdldF9xZCA9IGdldF9lbmdpbmVfYnVzeSwKIAkJLmJhbGFuY2UgPSBidXN5X2F2Z19i YWxhbmNlLAogCX0sCisJeworCQkuaWQgPSAxMSwKKwkJLm5hbWUgPSAiaTkxNSIsCisJCS5kZXNj ID0gImk5MTUgYmFsYW5jaW5nLiIsCisJCS5mbGFncyA9IEk5MTUsCisJfSwKIH07CiAKIHN0YXRp YyB1bnNpZ25lZCBpbnQKQEAgLTE5NTcsNyArMjEzOSw4IEBAIHN0YXRpYyB2b2lkICpydW5fd29y a2xvYWQodm9pZCAqZGF0YSkKIAkJCWxhc3Rfc3luYyA9IGZhbHNlOwogCiAJCQl3cmstPm5yX2Ji W2VuZ2luZV0rKzsKLQkJCWlmIChlbmdpbmUgPT0gVkNTICYmIHdyay0+YmFsYW5jZXIpIHsKKwkJ CWlmIChlbmdpbmUgPT0gVkNTICYmIHdyay0+YmFsYW5jZXIgJiYKKwkJCSAgICB3cmstPmJhbGFu Y2VyLT5iYWxhbmNlKSB7CiAJCQkJZW5naW5lID0gd3JrLT5iYWxhbmNlci0+YmFsYW5jZSh3cmst PmJhbGFuY2VyLAogCQkJCQkJCQl3cmssIHcpOwogCQkJCXdyay0+bnJfYmJbZW5naW5lXSsrOwpA QCAtMjM4NCw2ICsyNTY3LDEyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJ cmV0dXJuIDE7CiAJfQogCisJaWYgKChmbGFncyAmIFZDUzJSRU1BUCkgJiYgKGZsYWdzICYgSTkx NSkpIHsKKwkJaWYgKHZlcmJvc2UpCisJCQlmcHJpbnRmKHN0ZGVyciwgIlZDUyByZW1hcHBpbmcg bm90IHN1cHBvcnRlZCB3aXRoIGk5MTUgYmFsYW5jaW5nIVxuIik7CisJCXJldHVybiAxOworCX0K KwogCWlmICghbm9wX2NhbGlicmF0aW9uKSB7CiAJCWlmICh2ZXJib3NlID4gMSkKIAkJCXByaW50 ZigiQ2FsaWJyYXRpbmcgbm9wIGRlbGF5IHdpdGggJXUlJSB0b2xlcmFuY2UuLi5cbiIsCkBAIC0y NDY5LDExICsyNjU4LDE3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJcHJp bnRmKCIldSBjbGllbnQlcy5cbiIsIGNsaWVudHMsIGNsaWVudHMgPiAxID8gInMiIDogIiIpOwog CQlpZiAoZmxhZ3MgJiBTV0FQVkNTKQogCQkJcHJpbnRmKCJTd2FwcGluZyBWQ1MgcmluZ3MgYmV0 d2VlbiBjbGllbnRzLlxuIik7Ci0JCWlmIChmbGFncyAmIEdMT0JBTF9CQUxBTkNFKQotCQkJcHJp bnRmKCJVc2luZyAlcyBiYWxhbmNlciBpbiBnbG9iYWwgbW9kZS5cbiIsCi0JCQkgICAgICAgYmFs YW5jZXItPm5hbWUpOwotCQllbHNlIGlmIChiYWxhbmNlcikKKwkJaWYgKGZsYWdzICYgR0xPQkFM X0JBTEFOQ0UpIHsKKwkJCWlmIChmbGFncyAmIEk5MTUpIHsKKwkJCQlwcmludGYoIklnbm9yaW5n IGdsb2JhbCBiYWxhbmNpbmcgd2l0aCBpOTE1IVxuIik7CisJCQkJZmxhZ3MgJj0gfkdMT0JBTF9C QUxBTkNFOworCQkJfSBlbHNlIHsKKwkJCQlwcmludGYoIlVzaW5nICVzIGJhbGFuY2VyIGluIGds b2JhbCBtb2RlLlxuIiwKKwkJCQkgICAgICAgYmFsYW5jZXItPm5hbWUpOworCQkJfQorCQl9IGVs c2UgaWYgKGJhbGFuY2VyKSB7CiAJCQlwcmludGYoIlVzaW5nICVzIGJhbGFuY2VyLlxuIiwgYmFs YW5jZXItPm5hbWUpOworCQl9CiAJfQogCiAJaWYgKG1hc3Rlcl93b3JrbG9hZCA+PSAwICYmIGNs aWVudHMgPT0gMSkKQEAgLTI0OTAsNyArMjY4NSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAkJaWYgKGZsYWdzICYgU1dBUFZDUyAmJiBpICYgMSkKIAkJCWZsYWdzXyAmPSB+ U1dBUFZDUzsKIAotCQlpZiAoZmxhZ3MgJiBHTE9CQUxfQkFMQU5DRSkgeworCQlpZiAoKGZsYWdz ICYgR0xPQkFMX0JBTEFOQ0UpICYmICEoZmxhZ3MgJiBJOTE1KSkgewogCQkJd1tpXS0+YmFsYW5j ZXIgPSAmZ2xvYmFsX2JhbGFuY2VyOwogCQkJd1tpXS0+Z2xvYmFsX3dyayA9IHdbMF07CiAJCQl3 W2ldLT5nbG9iYWxfYmFsYW5jZXIgPSBiYWxhbmNlcjsKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWVk aWEtYmVuY2gucGwgYi9zY3JpcHRzL21lZGlhLWJlbmNoLnBsCmluZGV4IDA2NmI1NDJmOTVkZi4u ZGRmOWMwZWMwNWM4IDEwMDc1NQotLS0gYS9zY3JpcHRzL21lZGlhLWJlbmNoLnBsCisrKyBiL3Nj cmlwdHMvbWVkaWEtYmVuY2gucGwKQEAgLTQ5LDEwICs0OSwxMSBAQCBteSAkbm9wOwogbXkgJW9w dHM7CiAKIG15IEBiYWxhbmNlcnMgPSAoICdycicsICdyYW5kJywgJ3FkJywgJ3FkcicsICdxZGF2 ZycsICdydCcsICdydHInLCAncnRhdmcnLAotCQkgICdjb250ZXh0JywgJ2J1c3knLCAnYnVzeS1h dmcnICk7CisJCSAgJ2NvbnRleHQnLCAnYnVzeScsICdidXN5LWF2ZycsICdpOTE1JyApOwogbXkg JWJhbF9za2lwX0ggPSAoICdycicgPT4gMSwgJ3JhbmQnID0+IDEsICdjb250ZXh0JyA9PiAxLCAs ICdidXN5JyA9PiAxLAotCQkgICAnYnVzeS1hdmcnID0+IDEgKTsKLW15ICViYWxfc2tpcF9SID0g KCAnY29udGV4dCcgPT4gMSApOworCQkgICAnYnVzeS1hdmcnID0+IDEsICdpOTE1JyA9PiAxICk7 CitteSAlYmFsX3NraXBfUiA9ICggJ2NvbnRleHQnID0+IDEsICdpOTE1JyA9PiAxICk7CitteSAl YmFsX3NraXBfRyA9ICggJ2k5MTUnID0+IDEgKTsKIAogbXkgQHdvcmtsb2FkcyA9ICgKIAknbWVk aWFfbG9hZF9iYWxhbmNlXzE3aTcud3NpbScsCkBAIC00OTgsNiArNDk5LDggQEAgZm9yZWFjaCBt eSAkd3JrIChAc2F0dXJhdGlvbl93b3JrbG9hZHMpIHsKIAkJCQlteSAkYmlkOwogCiAJCQkJaWYg KCRiYWwgbmUgJycpIHsKKwkJCQkJbmV4dCBHQkFMIGlmICRHID1+ICctRycgYW5kIGV4aXN0cyAk YmFsX3NraXBfR3skYmFsfTsKKwogCQkJCQlwdXNoIEB4YXJncywgIi1iICRiYWwiOwogCQkJCQlw dXNoIEB4YXJncywgJy1SJyB1bmxlc3MgZXhpc3RzICRiYWxfc2tpcF9SeyRiYWx9OwogCQkJCQlw dXNoIEB4YXJncywgJEcgaWYgJEcgbmUgJyc7Ci0tIAoyLjE5LjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==