From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH 07/10] drm/amdgpu: add timeline support in amdgpu CS v2 Date: Tue, 11 Dec 2018 18:34:46 +0800 Message-ID: <20181211103449.25899-7-david1.zhou@amd.com> References: <20181211103449.25899-1-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181211103449.25899-1-david1.zhou-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Christian.Koenig-5C7GfCeVMHo@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Chunming Zhou , Chris Wilson , Daniel Rakos , Jason Ekstrand , Bas Nieuwenhuizen , Dave Airlie , =?UTF-8?q?Christian=20K=C3=B6nig?= c3luY29iaiB3YWl0L3NpZ25hbCBvcGVyYXRpb24gaXMgYXBwZW5kaW5nIGluIGNvbW1hbmQgc3Vi bWlzc2lvbi4KdjI6IHNlcGFyYXRlIHRvIHR3byBraW5kcyBpbi9vdXRfZGVwcyBmdW5jdGlvbnMK ClNpZ25lZC1vZmYtYnk6IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5jb20+CkNjOiBE YW5pZWwgUmFrb3MgPERhbmllbC5SYWtvc0BhbWQuY29tPgpDYzogSmFzb24gRWtzdHJhbmQgPGph c29uQGpsZWtzdHJhbmQubmV0PgpDYzogQmFzIE5pZXV3ZW5odWl6ZW4gPGJhc0BiYXNuaWV1d2Vu aHVpemVuLm5sPgpDYzogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KQ2M6IENocmlz dGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8 Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdS5oICAgIHwgIDEwICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf Y3MuYyB8IDE0NyArKysrKysrKysrKysrKysrKysrKystLS0tCiBpbmNsdWRlL3VhcGkvZHJtL2Ft ZGdwdV9kcm0uaCAgICAgICAgICB8ICAgOCArKwogMyBmaWxlcyBjaGFuZ2VkLCAxNDAgaW5zZXJ0 aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaApp bmRleCA0MmY4ODJjNjMzZWUuLmY5MTYwZWExMzk2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1LmgKQEAgLTU0NSw2ICs1NDUsMTIgQEAgc3RydWN0IGFtZGdwdV9jc19jaHVuayB7CiAJ dm9pZAkJCSprZGF0YTsKIH07CiAKK3N0cnVjdCBhbWRncHVfY3NfcG9zdF9kZXAgeworCXN0cnVj dCBkcm1fc3luY29iaiAqc3luY29iajsKKwlzdHJ1Y3QgZG1hX2ZlbmNlX2NoYWluICpjaGFpbjsK Kwl1NjQgcG9pbnQ7Cit9OworCiBzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciB7CiAJc3RydWN0IGFt ZGdwdV9kZXZpY2UJKmFkZXY7CiAJc3RydWN0IGRybV9maWxlCQkqZmlscDsKQEAgLTU3NCw4ICs1 ODAsOCBAQCBzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciB7CiAJLyogdXNlciBmZW5jZSAqLwogCXN0 cnVjdCBhbWRncHVfYm9fbGlzdF9lbnRyeQl1Zl9lbnRyeTsKIAotCXVuc2lnbmVkIG51bV9wb3N0 X2RlcF9zeW5jb2JqczsKLQlzdHJ1Y3QgZHJtX3N5bmNvYmogKipwb3N0X2RlcF9zeW5jb2JqczsK Kwl1bnNpZ25lZAkJCW51bV9wb3N0X2RlcHM7CisJc3RydWN0IGFtZGdwdV9jc19wb3N0X2RlcAkq cG9zdF9kZXBzOwogfTsKIAogc3RhdGljIGlubGluZSB1MzIgYW1kZ3B1X2dldF9pYl92YWx1ZShz dHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2NzLmMKaW5kZXggZGM1NGU5ZWZkOTEwLi41ODBmMWVhMjcxNTcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9jcy5jCkBAIC0yMTMsNiArMjEzLDggQEAgc3RhdGljIGludCBhbWRn cHVfY3NfcGFyc2VyX2luaXQoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsIHVuaW9uIGRybV9h bWRncHVfY3MKIAkJY2FzZSBBTURHUFVfQ0hVTktfSURfREVQRU5ERU5DSUVTOgogCQljYXNlIEFN REdQVV9DSFVOS19JRF9TWU5DT0JKX0lOOgogCQljYXNlIEFNREdQVV9DSFVOS19JRF9TWU5DT0JK X09VVDoKKwkJY2FzZSBBTURHUFVfQ0hVTktfSURfU1lOQ09CSl9USU1FTElORV9XQUlUOgorCQlj YXNlIEFNREdQVV9DSFVOS19JRF9TWU5DT0JKX1RJTUVMSU5FX1NJR05BTDoKIAkJCWJyZWFrOwog CiAJCWRlZmF1bHQ6CkBAIC03OTIsOSArNzk0LDExIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9jc19w YXJzZXJfZmluaShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyLCBpbnQgZXJyb3IsCiAJ CXR0bV9ldV9iYWNrb2ZmX3Jlc2VydmF0aW9uKCZwYXJzZXItPnRpY2tldCwKIAkJCQkJICAgJnBh cnNlci0+dmFsaWRhdGVkKTsKIAotCWZvciAoaSA9IDA7IGkgPCBwYXJzZXItPm51bV9wb3N0X2Rl cF9zeW5jb2JqczsgaSsrKQotCQlkcm1fc3luY29ial9wdXQocGFyc2VyLT5wb3N0X2RlcF9zeW5j b2Jqc1tpXSk7Ci0Ja2ZyZWUocGFyc2VyLT5wb3N0X2RlcF9zeW5jb2Jqcyk7CisJZm9yIChpID0g MDsgaSA8IHBhcnNlci0+bnVtX3Bvc3RfZGVwczsgaSsrKSB7CisJCWRybV9zeW5jb2JqX3B1dChw YXJzZXItPnBvc3RfZGVwc1tpXS5zeW5jb2JqKTsKKwkJa2ZyZWUocGFyc2VyLT5wb3N0X2RlcHNb aV0uY2hhaW4pOworCX0KKwlrZnJlZShwYXJzZXItPnBvc3RfZGVwcyk7CiAKIAlkbWFfZmVuY2Vf cHV0KHBhcnNlci0+ZmVuY2UpOwogCkBAIC0xMTAwLDEzICsxMTA0LDE4IEBAIHN0YXRpYyBpbnQg YW1kZ3B1X2NzX3Byb2Nlc3NfZmVuY2VfZGVwKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLAog fQogCiBzdGF0aWMgaW50IGFtZGdwdV9zeW5jb2JqX2xvb2t1cF9hbmRfYWRkX3RvX3N5bmMoc3Ry dWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCi0JCQkJCQkgdWludDMyX3QgaGFuZGxlKQorCQkJCQkJ IHVpbnQzMl90IGhhbmRsZSwgdTY0IHBvaW50LAorCQkJCQkJIHU2NCBmbGFncykKIHsKLQlpbnQg cjsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKLQlyID0gZHJtX3N5bmNvYmpfZmluZF9mZW5j ZShwLT5maWxwLCBoYW5kbGUsIDAsIDAsICZmZW5jZSk7Ci0JaWYgKHIpCisJaW50IHI7CisKKwly ID0gZHJtX3N5bmNvYmpfZmluZF9mZW5jZShwLT5maWxwLCBoYW5kbGUsIHBvaW50LCBmbGFncywg JmZlbmNlKTsKKwlpZiAocikgeworCQlEUk1fRVJST1IoInN5bmNvYmogJXUgZmFpbGVkIHRvIGZp bmQgZmVuY2UgQCAlbGx1ICglZCkhXG4iLAorCQkJICBoYW5kbGUsIHBvaW50LCByKTsKIAkJcmV0 dXJuIHI7CisJfQogCiAJciA9IGFtZGdwdV9zeW5jX2ZlbmNlKHAtPmFkZXYsICZwLT5qb2ItPnN5 bmMsIGZlbmNlLCB0cnVlKTsKIAlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKQEAgLTExMTcsNDYgKzEx MjYsMTE1IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3N5bmNvYmpfbG9va3VwX2FuZF9hZGRfdG9fc3lu YyhzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3Byb2Nl c3Nfc3luY29ial9pbl9kZXAoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCiAJCQkJCSAgICBz dHJ1Y3QgYW1kZ3B1X2NzX2NodW5rICpjaHVuaykKIHsKKwlzdHJ1Y3QgZHJtX2FtZGdwdV9jc19j aHVua19zZW0gKmRlcHM7CiAJdW5zaWduZWQgbnVtX2RlcHM7CiAJaW50IGksIHI7Ci0Jc3RydWN0 IGRybV9hbWRncHVfY3NfY2h1bmtfc2VtICpkZXBzOwogCiAJZGVwcyA9IChzdHJ1Y3QgZHJtX2Ft ZGdwdV9jc19jaHVua19zZW0gKiljaHVuay0+a2RhdGE7CiAJbnVtX2RlcHMgPSBjaHVuay0+bGVu Z3RoX2R3ICogNCAvCiAJCXNpemVvZihzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zZW0pOwor CWZvciAoaSA9IDA7IGkgPCBudW1fZGVwczsgKytpKSB7CisJCXIgPSBhbWRncHVfc3luY29ial9s b29rdXBfYW5kX2FkZF90b19zeW5jKHAsIGRlcHNbaV0uaGFuZGxlLAorCQkJCQkJCSAgMCwgMCk7 CisJCWlmIChyKQorCQkJcmV0dXJuIHI7CisJfQorCisJcmV0dXJuIDA7Cit9CiAKKworc3RhdGlj IGludCBhbWRncHVfY3NfcHJvY2Vzc19zeW5jb2JqX3RpbWVsaW5lX2luX2RlcChzdHJ1Y3QgYW1k Z3B1X2NzX3BhcnNlciAqcCwKKwkJCQkJCSAgICAgc3RydWN0IGFtZGdwdV9jc19jaHVuayAqY2h1 bmspCit7CisJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc3luY29iaiAqc3luY29ial9kZXBz OworCXVuc2lnbmVkIG51bV9kZXBzOworCWludCBpLCByOworCisJc3luY29ial9kZXBzID0gKHN0 cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmogKiljaHVuay0+a2RhdGE7CisJbnVtX2Rl cHMgPSBjaHVuay0+bGVuZ3RoX2R3ICogNCAvCisJCXNpemVvZihzdHJ1Y3QgZHJtX2FtZGdwdV9j c19jaHVua19zeW5jb2JqKTsKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2RlcHM7ICsraSkgewotCQly ID0gYW1kZ3B1X3N5bmNvYmpfbG9va3VwX2FuZF9hZGRfdG9fc3luYyhwLCBkZXBzW2ldLmhhbmRs ZSk7CisJCXIgPSBhbWRncHVfc3luY29ial9sb29rdXBfYW5kX2FkZF90b19zeW5jKHAsCisJCQkJ CQkJICBzeW5jb2JqX2RlcHNbaV0uaGFuZGxlLAorCQkJCQkJCSAgc3luY29ial9kZXBzW2ldLnBv aW50LAorCQkJCQkJCSAgc3luY29ial9kZXBzW2ldLmZsYWdzKTsKIAkJaWYgKHIpCiAJCQlyZXR1 cm4gcjsKIAl9CisKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBhbWRncHVfY3NfcHJvY2Vz c19zeW5jb2JqX291dF9kZXAoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCiAJCQkJCSAgICAg c3RydWN0IGFtZGdwdV9jc19jaHVuayAqY2h1bmspCiB7CisJc3RydWN0IGRybV9hbWRncHVfY3Nf Y2h1bmtfc2VtICpkZXBzOwogCXVuc2lnbmVkIG51bV9kZXBzOwogCWludCBpOwotCXN0cnVjdCBk cm1fYW1kZ3B1X2NzX2NodW5rX3NlbSAqZGVwczsKKwogCWRlcHMgPSAoc3RydWN0IGRybV9hbWRn cHVfY3NfY2h1bmtfc2VtICopY2h1bmstPmtkYXRhOwogCW51bV9kZXBzID0gY2h1bmstPmxlbmd0 aF9kdyAqIDQgLwogCQlzaXplb2Yoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc2VtKTsKIAot CXAtPnBvc3RfZGVwX3N5bmNvYmpzID0ga21hbGxvY19hcnJheShudW1fZGVwcywKLQkJCQkJICAg ICBzaXplb2Yoc3RydWN0IGRybV9zeW5jb2JqICopLAotCQkJCQkgICAgIEdGUF9LRVJORUwpOwot CXAtPm51bV9wb3N0X2RlcF9zeW5jb2JqcyA9IDA7CisJcC0+cG9zdF9kZXBzID0ga21hbGxvY19h cnJheShudW1fZGVwcywgc2l6ZW9mKCpwLT5wb3N0X2RlcHMpLAorCQkJCSAgICAgR0ZQX0tFUk5F TCk7CisJcC0+bnVtX3Bvc3RfZGVwcyA9IDA7CisKKwlpZiAoIXAtPnBvc3RfZGVwcykKKwkJcmV0 dXJuIC1FTk9NRU07CisKKworCWZvciAoaSA9IDA7IGkgPCBudW1fZGVwczsgKytpKSB7CisJCXAt PnBvc3RfZGVwc1tpXS5zeW5jb2JqID0KKwkJCWRybV9zeW5jb2JqX2ZpbmQocC0+ZmlscCwgZGVw c1tpXS5oYW5kbGUpOworCQlpZiAoIXAtPnBvc3RfZGVwc1tpXS5zeW5jb2JqKQorCQkJcmV0dXJu IC1FSU5WQUw7CisJCXAtPnBvc3RfZGVwc1tpXS5jaGFpbiA9IE5VTEw7CisJCXAtPnBvc3RfZGVw c1tpXS5wb2ludCA9IDA7CisJCXAtPm51bV9wb3N0X2RlcHMrKzsKKwl9CisKKwlyZXR1cm4gMDsK K30KKworCitzdGF0aWMgaW50IGFtZGdwdV9jc19wcm9jZXNzX3N5bmNvYmpfdGltZWxpbmVfb3V0 X2RlcChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKKwkJCQkJCSAgICAgIHN0cnVjdCBhbWRn cHVfY3NfY2h1bmsKKwkJCQkJCSAgICAgICpjaHVuaykKK3sKKwlzdHJ1Y3QgZHJtX2FtZGdwdV9j c19jaHVua19zeW5jb2JqICpzeW5jb2JqX2RlcHM7CisJdW5zaWduZWQgbnVtX2RlcHM7CisJaW50 IGk7CisKKwlzeW5jb2JqX2RlcHMgPSAoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc3luY29i aiAqKWNodW5rLT5rZGF0YTsKKwludW1fZGVwcyA9IGNodW5rLT5sZW5ndGhfZHcgKiA0IC8KKwkJ c2l6ZW9mKHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmopOworCisJcC0+cG9zdF9k ZXBzID0ga21hbGxvY19hcnJheShudW1fZGVwcywgc2l6ZW9mKCpwLT5wb3N0X2RlcHMpLAorCQkJ CSAgICAgR0ZQX0tFUk5FTCk7CisJcC0+bnVtX3Bvc3RfZGVwcyA9IDA7CiAKLQlpZiAoIXAtPnBv c3RfZGVwX3N5bmNvYmpzKQorCWlmICghcC0+cG9zdF9kZXBzKQogCQlyZXR1cm4gLUVOT01FTTsK IAogCWZvciAoaSA9IDA7IGkgPCBudW1fZGVwczsgKytpKSB7Ci0JCXAtPnBvc3RfZGVwX3N5bmNv YmpzW2ldID0gZHJtX3N5bmNvYmpfZmluZChwLT5maWxwLCBkZXBzW2ldLmhhbmRsZSk7Ci0JCWlm ICghcC0+cG9zdF9kZXBfc3luY29ianNbaV0pCisJCXN0cnVjdCBhbWRncHVfY3NfcG9zdF9kZXAg KmRlcCA9ICZwLT5wb3N0X2RlcHNbaV07CisKKwkJZGVwLT5jaGFpbiA9IGttYWxsb2Moc2l6ZW9m KCpkZXAtPmNoYWluKSwgR0ZQX0tFUk5FTCk7CisJCWlmICghZGVwLT5jaGFpbikKKwkJCXJldHVy biAtRU5PTUVNOworCisJCWRlcC0+c3luY29iaiA9IGRybV9zeW5jb2JqX2ZpbmQocC0+ZmlscCwK KwkJCQkJCXN5bmNvYmpfZGVwc1tpXS5oYW5kbGUpOworCQlpZiAoIWRlcC0+c3luY29iaikgewor CQkJa2ZyZWUoZGVwLT5jaGFpbik7CiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJcC0+bnVtX3Bvc3Rf ZGVwX3N5bmNvYmpzKys7CisJCX0KKwkJZGVwLT5wb2ludCA9IHN5bmNvYmpfZGVwc1tpXS5wb2lu dDsKKwkJcC0+bnVtX3Bvc3RfZGVwcysrOwogCX0KKwogCXJldHVybiAwOwogfQogCkBAIC0xMTcw LDE4ICsxMjQ4LDMyIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX2RlcGVuZGVuY2llcyhzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwKIAogCQljaHVuayA9ICZwLT5jaHVua3NbaV07CiAKLQkJaWYg KGNodW5rLT5jaHVua19pZCA9PSBBTURHUFVfQ0hVTktfSURfREVQRU5ERU5DSUVTKSB7CisJCXN3 aXRjaCAoY2h1bmstPmNodW5rX2lkKSB7CisJCWNhc2UgQU1ER1BVX0NIVU5LX0lEX0RFUEVOREVO Q0lFUzoKIAkJCXIgPSBhbWRncHVfY3NfcHJvY2Vzc19mZW5jZV9kZXAocCwgY2h1bmspOwogCQkJ aWYgKHIpCiAJCQkJcmV0dXJuIHI7Ci0JCX0gZWxzZSBpZiAoY2h1bmstPmNodW5rX2lkID09IEFN REdQVV9DSFVOS19JRF9TWU5DT0JKX0lOKSB7CisJCQlicmVhazsKKwkJY2FzZSBBTURHUFVfQ0hV TktfSURfU1lOQ09CSl9JTjoKIAkJCXIgPSBhbWRncHVfY3NfcHJvY2Vzc19zeW5jb2JqX2luX2Rl cChwLCBjaHVuayk7CiAJCQlpZiAocikKIAkJCQlyZXR1cm4gcjsKLQkJfSBlbHNlIGlmIChjaHVu ay0+Y2h1bmtfaWQgPT0gQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfT1VUKSB7CisJCQlicmVhazsK KwkJY2FzZSBBTURHUFVfQ0hVTktfSURfU1lOQ09CSl9PVVQ6CiAJCQlyID0gYW1kZ3B1X2NzX3By b2Nlc3Nfc3luY29ial9vdXRfZGVwKHAsIGNodW5rKTsKIAkJCWlmIChyKQogCQkJCXJldHVybiBy OworCQkJYnJlYWs7CisJCWNhc2UgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfVElNRUxJTkVfV0FJ VDoKKwkJCXIgPSBhbWRncHVfY3NfcHJvY2Vzc19zeW5jb2JqX3RpbWVsaW5lX2luX2RlcChwLCBj aHVuayk7CisJCQlpZiAocikKKwkJCQlyZXR1cm4gcjsKKwkJCWJyZWFrOworCQljYXNlIEFNREdQ VV9DSFVOS19JRF9TWU5DT0JKX1RJTUVMSU5FX1NJR05BTDoKKwkJCXIgPSBhbWRncHVfY3NfcHJv Y2Vzc19zeW5jb2JqX3RpbWVsaW5lX291dF9kZXAocCwgY2h1bmspOworCQkJaWYgKHIpCisJCQkJ cmV0dXJuIHI7CisJCQlicmVhazsKIAkJfQogCX0KIApAQCAtMTE5Miw4ICsxMjg0LDE3IEBAIHN0 YXRpYyB2b2lkIGFtZGdwdV9jc19wb3N0X2RlcGVuZGVuY2llcyhzdHJ1Y3QgYW1kZ3B1X2NzX3Bh cnNlciAqcCkKIHsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBwLT5udW1fcG9zdF9kZXBf c3luY29ianM7ICsraSkKLQkJZHJtX3N5bmNvYmpfcmVwbGFjZV9mZW5jZShwLT5wb3N0X2RlcF9z eW5jb2Jqc1tpXSwgcC0+ZmVuY2UpOworCWZvciAoaSA9IDA7IGkgPCBwLT5udW1fcG9zdF9kZXBz OyArK2kpIHsKKwkJaWYgKHAtPnBvc3RfZGVwc1tpXS5jaGFpbikgeworCQkJZHJtX3N5bmNvYmpf YWRkX3BvaW50KHAtPnBvc3RfZGVwc1tpXS5zeW5jb2JqLAorCQkJCQkgICAgICBwLT5wb3N0X2Rl cHNbaV0uY2hhaW4sCisJCQkJCSAgICAgIHAtPmZlbmNlLCBwLT5wb3N0X2RlcHNbaV0ucG9pbnQp OworCQkJcC0+cG9zdF9kZXBzW2ldLmNoYWluID0gTlVMTDsKKwkJfSBlbHNlIHsKKwkJCWRybV9z eW5jb2JqX3JlcGxhY2VfZmVuY2UocC0+cG9zdF9kZXBzW2ldLnN5bmNvYmosCisJCQkJCQkgIHAt PmZlbmNlKTsKKwkJfQorCX0KIH0KIAogc3RhdGljIGludCBhbWRncHVfY3Nfc3VibWl0KHN0cnVj dCBhbWRncHVfY3NfcGFyc2VyICpwLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9hbWRn cHVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaAppbmRleCBiZTg0ZTQzYzFl MTkuLjk5NzIyMmJjMWFmZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJt LmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKQEAgLTUyMyw2ICs1MjMsOCBA QCBzdHJ1Y3QgZHJtX2FtZGdwdV9nZW1fdmEgewogI2RlZmluZSBBTURHUFVfQ0hVTktfSURfU1lO Q09CSl9JTiAgICAgIDB4MDQKICNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfT1VUICAg ICAweDA1CiAjZGVmaW5lIEFNREdQVV9DSFVOS19JRF9CT19IQU5ETEVTICAgICAgMHgwNgorI2Rl ZmluZSBBTURHUFVfQ0hVTktfSURfU1lOQ09CSl9USU1FTElORV9XQUlUICAgIDB4MDcKKyNkZWZp bmUgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfVElNRUxJTkVfU0lHTkFMICAweDA4CiAKIHN0cnVj dCBkcm1fYW1kZ3B1X2NzX2NodW5rIHsKIAlfX3UzMgkJY2h1bmtfaWQ7CkBAIC01OTgsNiArNjAw LDEyIEBAIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3NlbSB7CiAJX191MzIgaGFuZGxlOwog fTsKIAorc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc3luY29iaiB7CisgICAgICAgX191MzIg aGFuZGxlOworICAgICAgIF9fdTMyIGZsYWdzOworICAgICAgIF9fdTY0IHBvaW50OworfTsKKwog I2RlZmluZSBBTURHUFVfRkVOQ0VfVE9fSEFORExFX0dFVF9TWU5DT0JKCTAKICNkZWZpbmUgQU1E R1BVX0ZFTkNFX1RPX0hBTkRMRV9HRVRfU1lOQ09CSl9GRAkxCiAjZGVmaW5lIEFNREdQVV9GRU5D RV9UT19IQU5ETEVfR0VUX1NZTkNfRklMRV9GRAkyCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=