From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH 6/9] drm/amdgpu: add timeline support in amdgpu CS v3 Date: Tue, 12 Mar 2019 11:10:46 +0800 Message-ID: <20190312031049.23647-6-david1.zhou@amd.com> References: <20190312031049.23647-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: <20190312031049.23647-1-david1.zhou@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, lionel.g.landwerlin@intel.com, jason@jlekstrand.net, Christian.Koenig@amd.com Cc: Daniel Rakos , Dave Airlie , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org c3luY29iaiB3YWl0L3NpZ25hbCBvcGVyYXRpb24gaXMgYXBwZW5kaW5nIGluIGNvbW1hbmQgc3Vi bWlzc2lvbi4KdjI6IHNlcGFyYXRlIHRvIHR3byBraW5kcyBpbi9vdXRfZGVwcyBmdW5jdGlvbnMK djM6IGZpeCBjaGVja2luZyBmb3IgdGltZWxpbmUgc3luY29iagoKU2lnbmVkLW9mZi1ieTogQ2h1 bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNvbT4KQ2M6IERhbmllbCBSYWtvcyA8RGFuaWVs LlJha29zQGFtZC5jb20+CkNjOiBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0cmFuZC5uZXQ+ CkNjOiBCYXMgTmlldXdlbmh1aXplbiA8YmFzQGJhc25pZXV3ZW5odWl6ZW4ubmw+CkNjOiBEYXZl IEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgpDYzogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0 aWFuLmtvZW5pZ0BhbWQuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggICAgfCAgMTAg Ky0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIHwgMTUyICsrKysrKysr KysrKysrKysrKysrKy0tLS0KIGluY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oICAgICAgICAg IHwgICA4ICsrCiAzIGZpbGVzIGNoYW5nZWQsIDE0NCBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCmluZGV4IDhkMGQ3ZjNkZDVmYi4u ZGVlYzJjNzk2MjUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaApAQCAtNDMzLDYg KzQzMywxMiBAQCBzdHJ1Y3QgYW1kZ3B1X2NzX2NodW5rIHsKIAl2b2lkCQkJKmtkYXRhOwogfTsK IAorc3RydWN0IGFtZGdwdV9jc19wb3N0X2RlcCB7CisJc3RydWN0IGRybV9zeW5jb2JqICpzeW5j b2JqOworCXN0cnVjdCBkbWFfZmVuY2VfY2hhaW4gKmNoYWluOworCXU2NCBwb2ludDsKK307CisK IHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZQkqYWRldjsK IAlzdHJ1Y3QgZHJtX2ZpbGUJCSpmaWxwOwpAQCAtNDYyLDggKzQ2OCw4IEBAIHN0cnVjdCBhbWRn cHVfY3NfcGFyc2VyIHsKIAkvKiB1c2VyIGZlbmNlICovCiAJc3RydWN0IGFtZGdwdV9ib19saXN0 X2VudHJ5CXVmX2VudHJ5OwogCi0JdW5zaWduZWQgbnVtX3Bvc3RfZGVwX3N5bmNvYmpzOwotCXN0 cnVjdCBkcm1fc3luY29iaiAqKnBvc3RfZGVwX3N5bmNvYmpzOworCXVuc2lnbmVkCQkJbnVtX3Bv c3RfZGVwczsKKwlzdHJ1Y3QgYW1kZ3B1X2NzX3Bvc3RfZGVwCSpwb3N0X2RlcHM7CiB9OwogCiBz dGF0aWMgaW5saW5lIHUzMiBhbWRncHVfZ2V0X2liX3ZhbHVlKHN0cnVjdCBhbWRncHVfY3NfcGFy c2VyICpwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nz LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwppbmRleCA1MmE1ZTRm ZGM5NWIuLjJmNjIzOWI2YmU2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nz LmMKQEAgLTIxNSw2ICsyMTUsOCBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19wYXJzZXJfaW5pdChz dHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwgdW5pb24gZHJtX2FtZGdwdV9jcwogCQljYXNlIEFN REdQVV9DSFVOS19JRF9TWU5DT0JKX0lOOgogCQljYXNlIEFNREdQVV9DSFVOS19JRF9TWU5DT0JK X09VVDoKIAkJY2FzZSBBTURHUFVfQ0hVTktfSURfU0NIRURVTEVEX0RFUEVOREVOQ0lFUzoKKwkJ Y2FzZSBBTURHUFVfQ0hVTktfSURfU1lOQ09CSl9USU1FTElORV9XQUlUOgorCQljYXNlIEFNREdQ VV9DSFVOS19JRF9TWU5DT0JKX1RJTUVMSU5FX1NJR05BTDoKIAkJCWJyZWFrOwogCiAJCWRlZmF1 bHQ6CkBAIC04MDQsOSArODA2LDExIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9jc19wYXJzZXJfZmlu aShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyLCBpbnQgZXJyb3IsCiAJCXR0bV9ldV9i YWNrb2ZmX3Jlc2VydmF0aW9uKCZwYXJzZXItPnRpY2tldCwKIAkJCQkJICAgJnBhcnNlci0+dmFs aWRhdGVkKTsKIAotCWZvciAoaSA9IDA7IGkgPCBwYXJzZXItPm51bV9wb3N0X2RlcF9zeW5jb2Jq czsgaSsrKQotCQlkcm1fc3luY29ial9wdXQocGFyc2VyLT5wb3N0X2RlcF9zeW5jb2Jqc1tpXSk7 Ci0Ja2ZyZWUocGFyc2VyLT5wb3N0X2RlcF9zeW5jb2Jqcyk7CisJZm9yIChpID0gMDsgaSA8IHBh cnNlci0+bnVtX3Bvc3RfZGVwczsgaSsrKSB7CisJCWRybV9zeW5jb2JqX3B1dChwYXJzZXItPnBv c3RfZGVwc1tpXS5zeW5jb2JqKTsKKwkJa2ZyZWUocGFyc2VyLT5wb3N0X2RlcHNbaV0uY2hhaW4p OworCX0KKwlrZnJlZShwYXJzZXItPnBvc3RfZGVwcyk7CiAKIAlkbWFfZmVuY2VfcHV0KHBhcnNl ci0+ZmVuY2UpOwogCkBAIC0xMTE3LDEzICsxMTIxLDE4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Nz X3Byb2Nlc3NfZmVuY2VfZGVwKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLAogfQogCiBzdGF0 aWMgaW50IGFtZGdwdV9zeW5jb2JqX2xvb2t1cF9hbmRfYWRkX3RvX3N5bmMoc3RydWN0IGFtZGdw dV9jc19wYXJzZXIgKnAsCi0JCQkJCQkgdWludDMyX3QgaGFuZGxlKQorCQkJCQkJIHVpbnQzMl90 IGhhbmRsZSwgdTY0IHBvaW50LAorCQkJCQkJIHU2NCBmbGFncykKIHsKLQlpbnQgcjsKIAlzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZTsKLQlyID0gZHJtX3N5bmNvYmpfZmluZF9mZW5jZShwLT5maWxw LCBoYW5kbGUsIDAsIDAsICZmZW5jZSk7Ci0JaWYgKHIpCisJaW50IHI7CisKKwlyID0gZHJtX3N5 bmNvYmpfZmluZF9mZW5jZShwLT5maWxwLCBoYW5kbGUsIHBvaW50LCBmbGFncywgJmZlbmNlKTsK KwlpZiAocikgeworCQlEUk1fRVJST1IoInN5bmNvYmogJXUgZmFpbGVkIHRvIGZpbmQgZmVuY2Ug QCAlbGx1ICglZCkhXG4iLAorCQkJICBoYW5kbGUsIHBvaW50LCByKTsKIAkJcmV0dXJuIHI7CisJ fQogCiAJciA9IGFtZGdwdV9zeW5jX2ZlbmNlKHAtPmFkZXYsICZwLT5qb2ItPnN5bmMsIGZlbmNl LCB0cnVlKTsKIAlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKQEAgLTExMzQsNDYgKzExNDMsMTE4IEBA IHN0YXRpYyBpbnQgYW1kZ3B1X3N5bmNvYmpfbG9va3VwX2FuZF9hZGRfdG9fc3luYyhzdHJ1Y3Qg YW1kZ3B1X2NzX3BhcnNlciAqcCwKIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3Byb2Nlc3Nfc3luY29i al9pbl9kZXAoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCiAJCQkJCSAgICBzdHJ1Y3QgYW1k Z3B1X2NzX2NodW5rICpjaHVuaykKIHsKKwlzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zZW0g KmRlcHM7CiAJdW5zaWduZWQgbnVtX2RlcHM7CiAJaW50IGksIHI7Ci0Jc3RydWN0IGRybV9hbWRn cHVfY3NfY2h1bmtfc2VtICpkZXBzOwogCiAJZGVwcyA9IChzdHJ1Y3QgZHJtX2FtZGdwdV9jc19j aHVua19zZW0gKiljaHVuay0+a2RhdGE7CiAJbnVtX2RlcHMgPSBjaHVuay0+bGVuZ3RoX2R3ICog NCAvCiAJCXNpemVvZihzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zZW0pOworCWZvciAoaSA9 IDA7IGkgPCBudW1fZGVwczsgKytpKSB7CisJCXIgPSBhbWRncHVfc3luY29ial9sb29rdXBfYW5k X2FkZF90b19zeW5jKHAsIGRlcHNbaV0uaGFuZGxlLAorCQkJCQkJCSAgMCwgMCk7CisJCWlmIChy KQorCQkJcmV0dXJuIHI7CisJfQorCisJcmV0dXJuIDA7Cit9CisKIAorc3RhdGljIGludCBhbWRn cHVfY3NfcHJvY2Vzc19zeW5jb2JqX3RpbWVsaW5lX2luX2RlcChzdHJ1Y3QgYW1kZ3B1X2NzX3Bh cnNlciAqcCwKKwkJCQkJCSAgICAgc3RydWN0IGFtZGdwdV9jc19jaHVuayAqY2h1bmspCit7CisJ c3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc3luY29iaiAqc3luY29ial9kZXBzOworCXVuc2ln bmVkIG51bV9kZXBzOworCWludCBpLCByOworCisJc3luY29ial9kZXBzID0gKHN0cnVjdCBkcm1f YW1kZ3B1X2NzX2NodW5rX3N5bmNvYmogKiljaHVuay0+a2RhdGE7CisJbnVtX2RlcHMgPSBjaHVu ay0+bGVuZ3RoX2R3ICogNCAvCisJCXNpemVvZihzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19z eW5jb2JqKTsKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2RlcHM7ICsraSkgewotCQlyID0gYW1kZ3B1 X3N5bmNvYmpfbG9va3VwX2FuZF9hZGRfdG9fc3luYyhwLCBkZXBzW2ldLmhhbmRsZSk7CisJCXIg PSBhbWRncHVfc3luY29ial9sb29rdXBfYW5kX2FkZF90b19zeW5jKHAsCisJCQkJCQkJICBzeW5j b2JqX2RlcHNbaV0uaGFuZGxlLAorCQkJCQkJCSAgc3luY29ial9kZXBzW2ldLnBvaW50LAorCQkJ CQkJCSAgc3luY29ial9kZXBzW2ldLmZsYWdzKTsKIAkJaWYgKHIpCiAJCQlyZXR1cm4gcjsKIAl9 CisKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBhbWRncHVfY3NfcHJvY2Vzc19zeW5jb2Jq X291dF9kZXAoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCiAJCQkJCSAgICAgc3RydWN0IGFt ZGdwdV9jc19jaHVuayAqY2h1bmspCiB7CisJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc2Vt ICpkZXBzOwogCXVuc2lnbmVkIG51bV9kZXBzOwogCWludCBpOwotCXN0cnVjdCBkcm1fYW1kZ3B1 X2NzX2NodW5rX3NlbSAqZGVwczsKKwogCWRlcHMgPSAoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1 bmtfc2VtICopY2h1bmstPmtkYXRhOwogCW51bV9kZXBzID0gY2h1bmstPmxlbmd0aF9kdyAqIDQg LwogCQlzaXplb2Yoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc2VtKTsKIAotCXAtPnBvc3Rf ZGVwX3N5bmNvYmpzID0ga21hbGxvY19hcnJheShudW1fZGVwcywKLQkJCQkJICAgICBzaXplb2Yo c3RydWN0IGRybV9zeW5jb2JqICopLAotCQkJCQkgICAgIEdGUF9LRVJORUwpOwotCXAtPm51bV9w b3N0X2RlcF9zeW5jb2JqcyA9IDA7CisJcC0+cG9zdF9kZXBzID0ga21hbGxvY19hcnJheShudW1f ZGVwcywgc2l6ZW9mKCpwLT5wb3N0X2RlcHMpLAorCQkJCSAgICAgR0ZQX0tFUk5FTCk7CisJcC0+ bnVtX3Bvc3RfZGVwcyA9IDA7CiAKLQlpZiAoIXAtPnBvc3RfZGVwX3N5bmNvYmpzKQorCWlmICgh cC0+cG9zdF9kZXBzKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCiAJZm9yIChpID0gMDsgaSA8IG51 bV9kZXBzOyArK2kpIHsKLQkJcC0+cG9zdF9kZXBfc3luY29ianNbaV0gPSBkcm1fc3luY29ial9m aW5kKHAtPmZpbHAsIGRlcHNbaV0uaGFuZGxlKTsKLQkJaWYgKCFwLT5wb3N0X2RlcF9zeW5jb2Jq c1tpXSkKKwkJcC0+cG9zdF9kZXBzW2ldLnN5bmNvYmogPQorCQkJZHJtX3N5bmNvYmpfZmluZChw LT5maWxwLCBkZXBzW2ldLmhhbmRsZSk7CisJCWlmICghcC0+cG9zdF9kZXBzW2ldLnN5bmNvYmop CiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJcC0+bnVtX3Bvc3RfZGVwX3N5bmNvYmpzKys7CisJCXAt PnBvc3RfZGVwc1tpXS5jaGFpbiA9IE5VTEw7CisJCXAtPnBvc3RfZGVwc1tpXS5wb2ludCA9IDA7 CisJCXAtPm51bV9wb3N0X2RlcHMrKzsKIAl9CisKKwlyZXR1cm4gMDsKK30KKworCitzdGF0aWMg aW50IGFtZGdwdV9jc19wcm9jZXNzX3N5bmNvYmpfdGltZWxpbmVfb3V0X2RlcChzdHJ1Y3QgYW1k Z3B1X2NzX3BhcnNlciAqcCwKKwkJCQkJCSAgICAgIHN0cnVjdCBhbWRncHVfY3NfY2h1bmsKKwkJ CQkJCSAgICAgICpjaHVuaykKK3sKKwlzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zeW5jb2Jq ICpzeW5jb2JqX2RlcHM7CisJdW5zaWduZWQgbnVtX2RlcHM7CisJaW50IGk7CisKKwlzeW5jb2Jq X2RlcHMgPSAoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc3luY29iaiAqKWNodW5rLT5rZGF0 YTsKKwludW1fZGVwcyA9IGNodW5rLT5sZW5ndGhfZHcgKiA0IC8KKwkJc2l6ZW9mKHN0cnVjdCBk cm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmopOworCisJcC0+cG9zdF9kZXBzID0ga21hbGxvY19h cnJheShudW1fZGVwcywgc2l6ZW9mKCpwLT5wb3N0X2RlcHMpLAorCQkJCSAgICAgR0ZQX0tFUk5F TCk7CisJcC0+bnVtX3Bvc3RfZGVwcyA9IDA7CisKKwlpZiAoIXAtPnBvc3RfZGVwcykKKwkJcmV0 dXJuIC1FTk9NRU07CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2RlcHM7ICsraSkgeworCQlzdHJ1 Y3QgYW1kZ3B1X2NzX3Bvc3RfZGVwICpkZXAgPSAmcC0+cG9zdF9kZXBzW2ldOworCisJCWRlcC0+ Y2hhaW4gPSBOVUxMOworCQlpZiAoc3luY29ial9kZXBzW2ldLnBvaW50KSB7CisJCQlkZXAtPmNo YWluID0ga21hbGxvYyhzaXplb2YoKmRlcC0+Y2hhaW4pLCBHRlBfS0VSTkVMKTsKKwkJCWlmICgh ZGVwLT5jaGFpbikKKwkJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCisJCWRlcC0+c3luY29iaiA9 IGRybV9zeW5jb2JqX2ZpbmQocC0+ZmlscCwKKwkJCQkJCXN5bmNvYmpfZGVwc1tpXS5oYW5kbGUp OworCQlpZiAoIWRlcC0+c3luY29iaikgeworCQkJa2ZyZWUoZGVwLT5jaGFpbik7CisJCQlyZXR1 cm4gLUVJTlZBTDsKKwkJfQorCQlkZXAtPnBvaW50ID0gc3luY29ial9kZXBzW2ldLnBvaW50Owor CQlwLT5udW1fcG9zdF9kZXBzKys7CisJfQorCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTExODcsMTkg KzEyNjgsMzMgQEAgc3RhdGljIGludCBhbWRncHVfY3NfZGVwZW5kZW5jaWVzKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAogCiAJCWNodW5rID0gJnAtPmNodW5rc1tpXTsKIAotCQlpZiAoY2h1 bmstPmNodW5rX2lkID09IEFNREdQVV9DSFVOS19JRF9ERVBFTkRFTkNJRVMgfHwKLQkJICAgIGNo dW5rLT5jaHVua19pZCA9PSBBTURHUFVfQ0hVTktfSURfU0NIRURVTEVEX0RFUEVOREVOQ0lFUykg eworCQlzd2l0Y2ggKGNodW5rLT5jaHVua19pZCkgeworCQljYXNlIEFNREdQVV9DSFVOS19JRF9E RVBFTkRFTkNJRVM6CisJCWNhc2UgQU1ER1BVX0NIVU5LX0lEX1NDSEVEVUxFRF9ERVBFTkRFTkNJ RVM6CiAJCQlyID0gYW1kZ3B1X2NzX3Byb2Nlc3NfZmVuY2VfZGVwKHAsIGNodW5rKTsKIAkJCWlm IChyKQogCQkJCXJldHVybiByOwotCQl9IGVsc2UgaWYgKGNodW5rLT5jaHVua19pZCA9PSBBTURH UFVfQ0hVTktfSURfU1lOQ09CSl9JTikgeworCQkJYnJlYWs7CisJCWNhc2UgQU1ER1BVX0NIVU5L X0lEX1NZTkNPQkpfSU46CiAJCQlyID0gYW1kZ3B1X2NzX3Byb2Nlc3Nfc3luY29ial9pbl9kZXAo cCwgY2h1bmspOwogCQkJaWYgKHIpCiAJCQkJcmV0dXJuIHI7Ci0JCX0gZWxzZSBpZiAoY2h1bmst PmNodW5rX2lkID09IEFNREdQVV9DSFVOS19JRF9TWU5DT0JKX09VVCkgeworCQkJYnJlYWs7CisJ CWNhc2UgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfT1VUOgogCQkJciA9IGFtZGdwdV9jc19wcm9j ZXNzX3N5bmNvYmpfb3V0X2RlcChwLCBjaHVuayk7CiAJCQlpZiAocikKIAkJCQlyZXR1cm4gcjsK KwkJCWJyZWFrOworCQljYXNlIEFNREdQVV9DSFVOS19JRF9TWU5DT0JKX1RJTUVMSU5FX1dBSVQ6 CisJCQlyID0gYW1kZ3B1X2NzX3Byb2Nlc3Nfc3luY29ial90aW1lbGluZV9pbl9kZXAocCwgY2h1 bmspOworCQkJaWYgKHIpCisJCQkJcmV0dXJuIHI7CisJCQlicmVhazsKKwkJY2FzZSBBTURHUFVf Q0hVTktfSURfU1lOQ09CSl9USU1FTElORV9TSUdOQUw6CisJCQlyID0gYW1kZ3B1X2NzX3Byb2Nl c3Nfc3luY29ial90aW1lbGluZV9vdXRfZGVwKHAsIGNodW5rKTsKKwkJCWlmIChyKQorCQkJCXJl dHVybiByOworCQkJYnJlYWs7CiAJCX0KIAl9CiAKQEAgLTEyMTAsOCArMTMwNSwxNyBAQCBzdGF0 aWMgdm9pZCBhbWRncHVfY3NfcG9zdF9kZXBlbmRlbmNpZXMoc3RydWN0IGFtZGdwdV9jc19wYXJz ZXIgKnApCiB7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgcC0+bnVtX3Bvc3RfZGVwX3N5 bmNvYmpzOyArK2kpCi0JCWRybV9zeW5jb2JqX3JlcGxhY2VfZmVuY2UocC0+cG9zdF9kZXBfc3lu Y29ianNbaV0sIHAtPmZlbmNlKTsKKwlmb3IgKGkgPSAwOyBpIDwgcC0+bnVtX3Bvc3RfZGVwczsg KytpKSB7CisJCWlmIChwLT5wb3N0X2RlcHNbaV0uY2hhaW4gJiYgcC0+cG9zdF9kZXBzW2ldLnBv aW50KSB7CisJCQlkcm1fc3luY29ial9hZGRfcG9pbnQocC0+cG9zdF9kZXBzW2ldLnN5bmNvYmos CisJCQkJCSAgICAgIHAtPnBvc3RfZGVwc1tpXS5jaGFpbiwKKwkJCQkJICAgICAgcC0+ZmVuY2Us IHAtPnBvc3RfZGVwc1tpXS5wb2ludCk7CisJCQlwLT5wb3N0X2RlcHNbaV0uY2hhaW4gPSBOVUxM OworCQl9IGVsc2UgeworCQkJZHJtX3N5bmNvYmpfcmVwbGFjZV9mZW5jZShwLT5wb3N0X2RlcHNb aV0uc3luY29iaiwKKwkJCQkJCSAgcC0+ZmVuY2UpOworCQl9CisJfQogfQogCiBzdGF0aWMgaW50 IGFtZGdwdV9jc19zdWJtaXQoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCmRpZmYgLS1naXQg YS9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1 X2RybS5oCmluZGV4IDRhNTNmNmNmYTAzNC4uZTkyODc2MGM0YzFhIDEwMDY0NAotLS0gYS9pbmNs dWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9k cm0uaApAQCAtNTI1LDYgKzUyNSw4IEBAIHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV92YSB7CiAjZGVm aW5lIEFNREdQVV9DSFVOS19JRF9TWU5DT0JKX09VVCAgICAgMHgwNQogI2RlZmluZSBBTURHUFVf Q0hVTktfSURfQk9fSEFORExFUyAgICAgIDB4MDYKICNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX1ND SEVEVUxFRF9ERVBFTkRFTkNJRVMJMHgwNworI2RlZmluZSBBTURHUFVfQ0hVTktfSURfU1lOQ09C Sl9USU1FTElORV9XQUlUICAgIDB4MDgKKyNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpf VElNRUxJTkVfU0lHTkFMICAweDA5CiAKIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rIHsKIAlf X3UzMgkJY2h1bmtfaWQ7CkBAIC02MDUsNiArNjA3LDEyIEBAIHN0cnVjdCBkcm1fYW1kZ3B1X2Nz X2NodW5rX3NlbSB7CiAJX191MzIgaGFuZGxlOwogfTsKIAorc3RydWN0IGRybV9hbWRncHVfY3Nf Y2h1bmtfc3luY29iaiB7CisgICAgICAgX191MzIgaGFuZGxlOworICAgICAgIF9fdTMyIGZsYWdz OworICAgICAgIF9fdTY0IHBvaW50OworfTsKKwogI2RlZmluZSBBTURHUFVfRkVOQ0VfVE9fSEFO RExFX0dFVF9TWU5DT0JKCTAKICNkZWZpbmUgQU1ER1BVX0ZFTkNFX1RPX0hBTkRMRV9HRVRfU1lO Q09CSl9GRAkxCiAjZGVmaW5lIEFNREdQVV9GRU5DRV9UT19IQU5ETEVfR0VUX1NZTkNfRklMRV9G RAkyCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbA==