From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 10/11] drm/amdgpu: add timeline support in amdgpu CS v2 Date: Wed, 28 Nov 2018 15:50:20 +0100 Message-ID: <20181128145021.4105-11-christian.koenig@amd.com> References: <20181128145021.4105-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181128145021.4105-1-christian.koenig-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNvbT4KCnN5bmNvYmogd2FpdC9z aWduYWwgb3BlcmF0aW9uIGlzIGFwcGVuZGluZyBpbiBjb21tYW5kIHN1Ym1pc3Npb24uCnYyOiBz ZXBhcmF0ZSB0byB0d28ga2luZHMgaW4vb3V0X2RlcHMgZnVuY3Rpb25zCgpTaWduZWQtb2ZmLWJ5 OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgpDYzogRGFuaWVsIFJha29zIDxE YW5pZWwuUmFrb3NAYW1kLmNvbT4KQ2M6IEphc29uIEVrc3RyYW5kIDxqYXNvbkBqbGVrc3RyYW5k Lm5ldD4KQ2M6IEJhcyBOaWV1d2VuaHVpemVuIDxiYXNAYmFzbmlldXdlbmh1aXplbi5ubD4KQ2M6 IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+CkNjOiBDaHJpc3RpYW4gS8O2bmlnIDxj aHJpc3RpYW4ua29lbmlnQGFtZC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdp bHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICB8 ICAxMCArKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIHwgMTQ3ICsr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogaW5jbHVkZS91YXBpL2RybS9hbWRncHVf ZHJtLmggICAgICAgICAgfCAgIDggKysKIDMgZmlsZXMgY2hhbmdlZCwgMTQwIGluc2VydGlvbnMo KyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKaW5kZXgg YWRiYWQwZTJkNGVhLi5lM2EyY2JhNTE4ZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dS5oCkBAIC01NDUsNiArNTQ1LDEyIEBAIHN0cnVjdCBhbWRncHVfY3NfY2h1bmsgewogCXZvaWQJ CQkqa2RhdGE7CiB9OwogCitzdHJ1Y3QgYW1kZ3B1X2NzX3Bvc3RfZGVwIHsKKwlzdHJ1Y3QgZHJt X3N5bmNvYmogKnN5bmNvYmo7CisJc3RydWN0IGRtYV9mZW5jZV9jaGFpbiAqY2hhaW47CisJdTY0 IHBvaW50OworfTsKKwogc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgewogCXN0cnVjdCBhbWRncHVf ZGV2aWNlCSphZGV2OwogCXN0cnVjdCBkcm1fZmlsZQkJKmZpbHA7CkBAIC01NzQsOCArNTgwLDgg QEAgc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgewogCS8qIHVzZXIgZmVuY2UgKi8KIAlzdHJ1Y3Qg YW1kZ3B1X2JvX2xpc3RfZW50cnkJdWZfZW50cnk7CiAKLQl1bnNpZ25lZCBudW1fcG9zdF9kZXBf c3luY29ianM7Ci0Jc3RydWN0IGRybV9zeW5jb2JqICoqcG9zdF9kZXBfc3luY29ianM7CisJdW5z aWduZWQJCQludW1fcG9zdF9kZXBzOworCXN0cnVjdCBhbWRncHVfY3NfcG9zdF9kZXAJKnBvc3Rf ZGVwczsKIH07CiAKIHN0YXRpYyBpbmxpbmUgdTMyIGFtZGdwdV9nZXRfaWJfdmFsdWUoc3RydWN0 IGFtZGdwdV9jc19wYXJzZXIgKnAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5j CmluZGV4IGRjNTRlOWVmZDkxMC4uNTgwZjFlYTI3MTU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfY3MuYwpAQCAtMjEzLDYgKzIxMyw4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Nz X3BhcnNlcl9pbml0KHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLCB1bmlvbiBkcm1fYW1kZ3B1 X2NzCiAJCWNhc2UgQU1ER1BVX0NIVU5LX0lEX0RFUEVOREVOQ0lFUzoKIAkJY2FzZSBBTURHUFVf Q0hVTktfSURfU1lOQ09CSl9JTjoKIAkJY2FzZSBBTURHUFVfQ0hVTktfSURfU1lOQ09CSl9PVVQ6 CisJCWNhc2UgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfVElNRUxJTkVfV0FJVDoKKwkJY2FzZSBB TURHUFVfQ0hVTktfSURfU1lOQ09CSl9USU1FTElORV9TSUdOQUw6CiAJCQlicmVhazsKIAogCQlk ZWZhdWx0OgpAQCAtNzkyLDkgKzc5NCwxMSBAQCBzdGF0aWMgdm9pZCBhbWRncHVfY3NfcGFyc2Vy X2Zpbmkoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlciwgaW50IGVycm9yLAogCQl0dG1f ZXVfYmFja29mZl9yZXNlcnZhdGlvbigmcGFyc2VyLT50aWNrZXQsCiAJCQkJCSAgICZwYXJzZXIt PnZhbGlkYXRlZCk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgcGFyc2VyLT5udW1fcG9zdF9kZXBfc3lu Y29ianM7IGkrKykKLQkJZHJtX3N5bmNvYmpfcHV0KHBhcnNlci0+cG9zdF9kZXBfc3luY29ianNb aV0pOwotCWtmcmVlKHBhcnNlci0+cG9zdF9kZXBfc3luY29ianMpOworCWZvciAoaSA9IDA7IGkg PCBwYXJzZXItPm51bV9wb3N0X2RlcHM7IGkrKykgeworCQlkcm1fc3luY29ial9wdXQocGFyc2Vy LT5wb3N0X2RlcHNbaV0uc3luY29iaik7CisJCWtmcmVlKHBhcnNlci0+cG9zdF9kZXBzW2ldLmNo YWluKTsKKwl9CisJa2ZyZWUocGFyc2VyLT5wb3N0X2RlcHMpOwogCiAJZG1hX2ZlbmNlX3B1dChw YXJzZXItPmZlbmNlKTsKIApAQCAtMTEwMCwxMyArMTEwNCwxOCBAQCBzdGF0aWMgaW50IGFtZGdw dV9jc19wcm9jZXNzX2ZlbmNlX2RlcChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKIH0KIAog c3RhdGljIGludCBhbWRncHVfc3luY29ial9sb29rdXBfYW5kX2FkZF90b19zeW5jKHN0cnVjdCBh bWRncHVfY3NfcGFyc2VyICpwLAotCQkJCQkJIHVpbnQzMl90IGhhbmRsZSkKKwkJCQkJCSB1aW50 MzJfdCBoYW5kbGUsIHU2NCBwb2ludCwKKwkJCQkJCSB1NjQgZmxhZ3MpCiB7Ci0JaW50IHI7CiAJ c3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Ci0JciA9IGRybV9zeW5jb2JqX2ZpbmRfZmVuY2UocC0+ ZmlscCwgaGFuZGxlLCAwLCAwLCAmZmVuY2UpOwotCWlmIChyKQorCWludCByOworCisJciA9IGRy bV9zeW5jb2JqX2ZpbmRfZmVuY2UocC0+ZmlscCwgaGFuZGxlLCBwb2ludCwgZmxhZ3MsICZmZW5j ZSk7CisJaWYgKHIpIHsKKwkJRFJNX0VSUk9SKCJzeW5jb2JqICV1IGZhaWxlZCB0byBmaW5kIGZl bmNlIEAgJWxsdSAoJWQpIVxuIiwKKwkJCSAgaGFuZGxlLCBwb2ludCwgcik7CiAJCXJldHVybiBy OworCX0KIAogCXIgPSBhbWRncHVfc3luY19mZW5jZShwLT5hZGV2LCAmcC0+am9iLT5zeW5jLCBm ZW5jZSwgdHJ1ZSk7CiAJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CkBAIC0xMTE3LDQ2ICsxMTI2LDEx NSBAQCBzdGF0aWMgaW50IGFtZGdwdV9zeW5jb2JqX2xvb2t1cF9hbmRfYWRkX3RvX3N5bmMoc3Ry dWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCiBzdGF0aWMgaW50IGFtZGdwdV9jc19wcm9jZXNzX3N5 bmNvYmpfaW5fZGVwKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLAogCQkJCQkgICAgc3RydWN0 IGFtZGdwdV9jc19jaHVuayAqY2h1bmspCiB7CisJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtf c2VtICpkZXBzOwogCXVuc2lnbmVkIG51bV9kZXBzOwogCWludCBpLCByOwotCXN0cnVjdCBkcm1f YW1kZ3B1X2NzX2NodW5rX3NlbSAqZGVwczsKIAogCWRlcHMgPSAoc3RydWN0IGRybV9hbWRncHVf Y3NfY2h1bmtfc2VtICopY2h1bmstPmtkYXRhOwogCW51bV9kZXBzID0gY2h1bmstPmxlbmd0aF9k dyAqIDQgLwogCQlzaXplb2Yoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc2VtKTsKKwlmb3Ig KGkgPSAwOyBpIDwgbnVtX2RlcHM7ICsraSkgeworCQlyID0gYW1kZ3B1X3N5bmNvYmpfbG9va3Vw X2FuZF9hZGRfdG9fc3luYyhwLCBkZXBzW2ldLmhhbmRsZSwKKwkJCQkJCQkgIDAsIDApOworCQlp ZiAocikKKwkJCXJldHVybiByOworCX0KKworCXJldHVybiAwOworfQogCisKK3N0YXRpYyBpbnQg YW1kZ3B1X2NzX3Byb2Nlc3Nfc3luY29ial90aW1lbGluZV9pbl9kZXAoc3RydWN0IGFtZGdwdV9j c19wYXJzZXIgKnAsCisJCQkJCQkgICAgIHN0cnVjdCBhbWRncHVfY3NfY2h1bmsgKmNodW5rKQor eworCXN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmogKnN5bmNvYmpfZGVwczsKKwl1 bnNpZ25lZCBudW1fZGVwczsKKwlpbnQgaSwgcjsKKworCXN5bmNvYmpfZGVwcyA9IChzdHJ1Y3Qg ZHJtX2FtZGdwdV9jc19jaHVua19zeW5jb2JqICopY2h1bmstPmtkYXRhOworCW51bV9kZXBzID0g Y2h1bmstPmxlbmd0aF9kdyAqIDQgLworCQlzaXplb2Yoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1 bmtfc3luY29iaik7CiAJZm9yIChpID0gMDsgaSA8IG51bV9kZXBzOyArK2kpIHsKLQkJciA9IGFt ZGdwdV9zeW5jb2JqX2xvb2t1cF9hbmRfYWRkX3RvX3N5bmMocCwgZGVwc1tpXS5oYW5kbGUpOwor CQlyID0gYW1kZ3B1X3N5bmNvYmpfbG9va3VwX2FuZF9hZGRfdG9fc3luYyhwLAorCQkJCQkJCSAg c3luY29ial9kZXBzW2ldLmhhbmRsZSwKKwkJCQkJCQkgIHN5bmNvYmpfZGVwc1tpXS5wb2ludCwK KwkJCQkJCQkgIHN5bmNvYmpfZGVwc1tpXS5mbGFncyk7CiAJCWlmIChyKQogCQkJcmV0dXJuIHI7 CiAJfQorCiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3Byb2Nlc3Nfc3lu Y29ial9vdXRfZGVwKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLAogCQkJCQkgICAgIHN0cnVj dCBhbWRncHVfY3NfY2h1bmsgKmNodW5rKQogeworCXN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5r X3NlbSAqZGVwczsKIAl1bnNpZ25lZCBudW1fZGVwczsKIAlpbnQgaTsKLQlzdHJ1Y3QgZHJtX2Ft ZGdwdV9jc19jaHVua19zZW0gKmRlcHM7CisKIAlkZXBzID0gKHN0cnVjdCBkcm1fYW1kZ3B1X2Nz X2NodW5rX3NlbSAqKWNodW5rLT5rZGF0YTsKIAludW1fZGVwcyA9IGNodW5rLT5sZW5ndGhfZHcg KiA0IC8KIAkJc2l6ZW9mKHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3NlbSk7CiAKLQlwLT5w b3N0X2RlcF9zeW5jb2JqcyA9IGttYWxsb2NfYXJyYXkobnVtX2RlcHMsCi0JCQkJCSAgICAgc2l6 ZW9mKHN0cnVjdCBkcm1fc3luY29iaiAqKSwKLQkJCQkJICAgICBHRlBfS0VSTkVMKTsKLQlwLT5u dW1fcG9zdF9kZXBfc3luY29ianMgPSAwOworCXAtPnBvc3RfZGVwcyA9IGttYWxsb2NfYXJyYXko bnVtX2RlcHMsIHNpemVvZigqcC0+cG9zdF9kZXBzKSwKKwkJCQkgICAgIEdGUF9LRVJORUwpOwor CXAtPm51bV9wb3N0X2RlcHMgPSAwOworCisJaWYgKCFwLT5wb3N0X2RlcHMpCisJCXJldHVybiAt RU5PTUVNOworCisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2RlcHM7ICsraSkgeworCQlwLT5wb3N0 X2RlcHNbaV0uc3luY29iaiA9CisJCQlkcm1fc3luY29ial9maW5kKHAtPmZpbHAsIGRlcHNbaV0u aGFuZGxlKTsKKwkJaWYgKCFwLT5wb3N0X2RlcHNbaV0uc3luY29iaikKKwkJCXJldHVybiAtRUlO VkFMOworCQlwLT5wb3N0X2RlcHNbaV0uY2hhaW4gPSBOVUxMOworCQlwLT5wb3N0X2RlcHNbaV0u cG9pbnQgPSAwOworCQlwLT5udW1fcG9zdF9kZXBzKys7CisJfQorCisJcmV0dXJuIDA7Cit9CisK Kworc3RhdGljIGludCBhbWRncHVfY3NfcHJvY2Vzc19zeW5jb2JqX3RpbWVsaW5lX291dF9kZXAo c3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCisJCQkJCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X2Nz X2NodW5rCisJCQkJCQkgICAgICAqY2h1bmspCit7CisJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1 bmtfc3luY29iaiAqc3luY29ial9kZXBzOworCXVuc2lnbmVkIG51bV9kZXBzOworCWludCBpOwor CisJc3luY29ial9kZXBzID0gKHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmogKilj aHVuay0+a2RhdGE7CisJbnVtX2RlcHMgPSBjaHVuay0+bGVuZ3RoX2R3ICogNCAvCisJCXNpemVv ZihzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zeW5jb2JqKTsKKworCXAtPnBvc3RfZGVwcyA9 IGttYWxsb2NfYXJyYXkobnVtX2RlcHMsIHNpemVvZigqcC0+cG9zdF9kZXBzKSwKKwkJCQkgICAg IEdGUF9LRVJORUwpOworCXAtPm51bV9wb3N0X2RlcHMgPSAwOwogCi0JaWYgKCFwLT5wb3N0X2Rl cF9zeW5jb2JqcykKKwlpZiAoIXAtPnBvc3RfZGVwcykKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlm b3IgKGkgPSAwOyBpIDwgbnVtX2RlcHM7ICsraSkgewotCQlwLT5wb3N0X2RlcF9zeW5jb2Jqc1tp XSA9IGRybV9zeW5jb2JqX2ZpbmQocC0+ZmlscCwgZGVwc1tpXS5oYW5kbGUpOwotCQlpZiAoIXAt PnBvc3RfZGVwX3N5bmNvYmpzW2ldKQorCQlzdHJ1Y3QgYW1kZ3B1X2NzX3Bvc3RfZGVwICpkZXAg PSAmcC0+cG9zdF9kZXBzW2ldOworCisJCWRlcC0+Y2hhaW4gPSBrbWFsbG9jKHNpemVvZigqZGVw LT5jaGFpbiksIEdGUF9LRVJORUwpOworCQlpZiAoIWRlcC0+Y2hhaW4pCisJCQlyZXR1cm4gLUVO T01FTTsKKworCQlkZXAtPnN5bmNvYmogPSBkcm1fc3luY29ial9maW5kKHAtPmZpbHAsCisJCQkJ CQlzeW5jb2JqX2RlcHNbaV0uaGFuZGxlKTsKKwkJaWYgKCFkZXAtPnN5bmNvYmopIHsKKwkJCWtm cmVlKGRlcC0+Y2hhaW4pOwogCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCXAtPm51bV9wb3N0X2RlcF9z eW5jb2JqcysrOworCQl9CisJCWRlcC0+cG9pbnQgPSBzeW5jb2JqX2RlcHNbaV0ucG9pbnQ7CisJ CXAtPm51bV9wb3N0X2RlcHMrKzsKIAl9CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTE3MCwxOCAr MTI0OCwzMiBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19kZXBlbmRlbmNpZXMoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCiAKIAkJY2h1bmsgPSAmcC0+Y2h1bmtzW2ldOwogCi0JCWlmIChjaHVu ay0+Y2h1bmtfaWQgPT0gQU1ER1BVX0NIVU5LX0lEX0RFUEVOREVOQ0lFUykgeworCQlzd2l0Y2gg KGNodW5rLT5jaHVua19pZCkgeworCQljYXNlIEFNREdQVV9DSFVOS19JRF9ERVBFTkRFTkNJRVM6 CiAJCQlyID0gYW1kZ3B1X2NzX3Byb2Nlc3NfZmVuY2VfZGVwKHAsIGNodW5rKTsKIAkJCWlmIChy KQogCQkJCXJldHVybiByOwotCQl9IGVsc2UgaWYgKGNodW5rLT5jaHVua19pZCA9PSBBTURHUFVf Q0hVTktfSURfU1lOQ09CSl9JTikgeworCQkJYnJlYWs7CisJCWNhc2UgQU1ER1BVX0NIVU5LX0lE X1NZTkNPQkpfSU46CiAJCQlyID0gYW1kZ3B1X2NzX3Byb2Nlc3Nfc3luY29ial9pbl9kZXAocCwg Y2h1bmspOwogCQkJaWYgKHIpCiAJCQkJcmV0dXJuIHI7Ci0JCX0gZWxzZSBpZiAoY2h1bmstPmNo dW5rX2lkID09IEFNREdQVV9DSFVOS19JRF9TWU5DT0JKX09VVCkgeworCQkJYnJlYWs7CisJCWNh c2UgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfT1VUOgogCQkJciA9IGFtZGdwdV9jc19wcm9jZXNz X3N5bmNvYmpfb3V0X2RlcChwLCBjaHVuayk7CiAJCQlpZiAocikKIAkJCQlyZXR1cm4gcjsKKwkJ CWJyZWFrOworCQljYXNlIEFNREdQVV9DSFVOS19JRF9TWU5DT0JKX1RJTUVMSU5FX1dBSVQ6CisJ CQlyID0gYW1kZ3B1X2NzX3Byb2Nlc3Nfc3luY29ial90aW1lbGluZV9pbl9kZXAocCwgY2h1bmsp OworCQkJaWYgKHIpCisJCQkJcmV0dXJuIHI7CisJCQlicmVhazsKKwkJY2FzZSBBTURHUFVfQ0hV TktfSURfU1lOQ09CSl9USU1FTElORV9TSUdOQUw6CisJCQlyID0gYW1kZ3B1X2NzX3Byb2Nlc3Nf c3luY29ial90aW1lbGluZV9vdXRfZGVwKHAsIGNodW5rKTsKKwkJCWlmIChyKQorCQkJCXJldHVy biByOworCQkJYnJlYWs7CiAJCX0KIAl9CiAKQEAgLTExOTIsOCArMTI4NCwxNyBAQCBzdGF0aWMg dm9pZCBhbWRncHVfY3NfcG9zdF9kZXBlbmRlbmNpZXMoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIg KnApCiB7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgcC0+bnVtX3Bvc3RfZGVwX3N5bmNv YmpzOyArK2kpCi0JCWRybV9zeW5jb2JqX3JlcGxhY2VfZmVuY2UocC0+cG9zdF9kZXBfc3luY29i anNbaV0sIHAtPmZlbmNlKTsKKwlmb3IgKGkgPSAwOyBpIDwgcC0+bnVtX3Bvc3RfZGVwczsgKytp KSB7CisJCWlmIChwLT5wb3N0X2RlcHNbaV0uY2hhaW4pIHsKKwkJCWRybV9zeW5jb2JqX2FkZF9w b2ludChwLT5wb3N0X2RlcHNbaV0uc3luY29iaiwKKwkJCQkJICAgICAgcC0+cG9zdF9kZXBzW2ld LmNoYWluLAorCQkJCQkgICAgICBwLT5mZW5jZSwgcC0+cG9zdF9kZXBzW2ldLnBvaW50KTsKKwkJ CXAtPnBvc3RfZGVwc1tpXS5jaGFpbiA9IE5VTEw7CisJCX0gZWxzZSB7CisJCQlkcm1fc3luY29i al9yZXBsYWNlX2ZlbmNlKHAtPnBvc3RfZGVwc1tpXS5zeW5jb2JqLAorCQkJCQkJICBwLT5mZW5j ZSk7CisJCX0KKwl9CiB9CiAKIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdChzdHJ1Y3QgYW1k Z3B1X2NzX3BhcnNlciAqcCwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2Ry bS5oIGIvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKaW5kZXggZmFhYWQwNDgxNGU0Li5m Y2I4YjYwMWY3YjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCisr KyBiL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCkBAIC01MjYsNiArNTI2LDggQEAgc3Ry dWN0IGRybV9hbWRncHVfZ2VtX3ZhIHsKICNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpf SU4gICAgICAweDA0CiAjZGVmaW5lIEFNREdQVV9DSFVOS19JRF9TWU5DT0JKX09VVCAgICAgMHgw NQogI2RlZmluZSBBTURHUFVfQ0hVTktfSURfQk9fSEFORExFUyAgICAgIDB4MDYKKyNkZWZpbmUg QU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfVElNRUxJTkVfV0FJVCAgICAweDA3CisjZGVmaW5lIEFN REdQVV9DSFVOS19JRF9TWU5DT0JKX1RJTUVMSU5FX1NJR05BTCAgMHgwOAogCiBzdHJ1Y3QgZHJt X2FtZGdwdV9jc19jaHVuayB7CiAJX191MzIJCWNodW5rX2lkOwpAQCAtNjAxLDYgKzYwMywxMiBA QCBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zZW0gewogCV9fdTMyIGhhbmRsZTsKIH07CiAK K3N0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmogeworICAgICAgIF9fdTMyIGhhbmRs ZTsKKyAgICAgICBfX3UzMiBmbGFnczsKKyAgICAgICBfX3U2NCBwb2ludDsKK307CisKICNkZWZp bmUgQU1ER1BVX0ZFTkNFX1RPX0hBTkRMRV9HRVRfU1lOQ09CSgkwCiAjZGVmaW5lIEFNREdQVV9G RU5DRV9UT19IQU5ETEVfR0VUX1NZTkNPQkpfRkQJMQogI2RlZmluZSBBTURHUFVfRkVOQ0VfVE9f SEFORExFX0dFVF9TWU5DX0ZJTEVfRkQJMgotLSAKMi4xNC4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2FtZC1nZngK