From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH 1/5] drm: add support of syncobj timeline point wait v5 Date: Mon, 5 Nov 2018 16:07:16 +0800 Message-ID: <20181105080720.2728-1-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM04-CO1-obe.outbound.protection.outlook.com (mail-eopbgr690053.outbound.protection.outlook.com [40.107.69.53]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1A17D6E137 for ; Mon, 5 Nov 2018 08:07:37 +0000 (UTC) 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 Cc: Daniel Rakos , Jason Ekstrand , Dave Airlie , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org cG9pbnRzIGFycmF5IGlzIG9uZS10by1vbmUgbWF0Y2ggd2l0aCBzeW5jb2JqcyBhcnJheS4KdjI6 CmFkZCBzZXBlcmF0ZSBpb2N0bCBmb3IgdGltZWxpbmUgcG9pbnQgd2FpdCwgb3RoZXJ3aXNlIGJy ZWFrIHVhcGkuCnYzOgp1c2Vyc3BhY2UgY2FuIHNwZWNpZnkgdHdvIGtpbmRzIHdhaXRzOjoKYS4g V2FpdCBmb3IgdGltZSBwb2ludCB0byBiZSBjb21wbGV0ZWQuCmIuIGFuZCB3YWl0IGZvciB0aW1l IHBvaW50IHRvIGJlY29tZSBhdmFpbGFibGUKdjQ6CnJlYmFzZQp2NToKYWRkIGNvbW1lbnQgZm9y IHh4eF9XQUlUX0FWQUlMQUJMRQoKU2lnbmVkLW9mZi1ieTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQx Lnpob3VAYW1kLmNvbT4KQ2M6IERhbmllbCBSYWtvcyA8RGFuaWVsLlJha29zQGFtZC5jb20+CkNj OiBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0cmFuZC5uZXQ+CkNjOiBCYXMgTmlldXdlbmh1 aXplbiA8YmFzQGJhc25pZXV3ZW5odWl6ZW4ubmw+CkNjOiBEYXZlIEFpcmxpZSA8YWlybGllZEBy ZWRoYXQuY29tPgpDYzogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29t PgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1faW9j dGwuYyAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYyAgfCAxMTUgKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiBpbmNsdWRlL3VhcGkvZHJtL2RybS5oICAg ICAgICAgfCAgMTggKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDEyMSBpbnNlcnRpb25zKCspLCAx NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFs LmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKaW5kZXggMGM0ZWI0YTlhYjMxLi41 NjZkNDRlM2M3ODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKQEAgLTE4Myw2ICsxODMsOCBAQCBp bnQgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCiAJCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOwogaW50 IGRybV9zeW5jb2JqX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKIAkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKK2ludCBkcm1fc3luY29i al90aW1lbGluZV93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs CisJCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKIGludCBkcm1fc3luY29i al9yZXNldF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJICAg IHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKIGludCBkcm1fc3luY29ial9zaWduYWxf aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpp bmRleCA5NGJkODcyZDU2YzQuLmE5YTE3ZWQzNWNjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9pb2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpAQCAtNjc1 LDYgKzY3NSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rs c1tdID0gewogCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lP Q1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9XQUlULCBkcm1fc3luY29ial93YWl0X2lvY3RsLAog CQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRihE Uk1fSU9DVExfU1lOQ09CSl9USU1FTElORV9XQUlULCBkcm1fc3luY29ial90aW1lbGluZV93YWl0 X2lvY3RsLAorCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lP Q1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9SRVNFVCwgZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGws CiAJCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVG KERSTV9JT0NUTF9TWU5DT0JKX1NJR05BTCwgZHJtX3N5bmNvYmpfc2lnbmFsX2lvY3RsLApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX3N5bmNvYmouYwppbmRleCA0ZGNhNWY3ZThjNGIuLmM3OWEyZmY1NmRmZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9zeW5jb2JqLmMKQEAgLTE1MywxMSArMTUzLDEyIEBAIHN0YXRpYyB2b2lkIGRybV9zeW5jb2Jq X2FkZF9jYWxsYmFja19sb2NrZWQoc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqLAogfQogCiBz dGF0aWMgdm9pZCBkcm1fc3luY29ial9mZW5jZV9nZXRfb3JfYWRkX2NhbGxiYWNrKHN0cnVjdCBk cm1fc3luY29iaiAqc3luY29iaiwKKwkJCQkJCSAgdWludDY0X3QgcG9pbnQsCiAJCQkJCQkgIHN0 cnVjdCBkbWFfZmVuY2UgKipmZW5jZSwKIAkJCQkJCSAgc3RydWN0IGRybV9zeW5jb2JqX2NiICpj YiwKIAkJCQkJCSAgZHJtX3N5bmNvYmpfZnVuY190IGZ1bmMpCiB7Ci0JdTY0IHB0X3ZhbHVlID0g MDsKKwl1NjQgcHRfdmFsdWUgPSBwb2ludDsKIAogCVdBUk5fT04oKmZlbmNlKTsKIApAQCAtODU0 LDYgKzg1NSw3IEBAIHN0cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgewogCXN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlOwogCXN0cnVjdCBkbWFfZmVuY2VfY2IgZmVuY2VfY2I7CiAJc3RydWN0IGRybV9z eW5jb2JqX2NiIHN5bmNvYmpfY2I7CisJdTY0ICAgIHBvaW50OwogfTsKIAogc3RhdGljIHZvaWQg c3luY29ial93YWl0X2ZlbmNlX2Z1bmMoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCkBAIC04NzEs MTIgKzg3MywxMyBAQCBzdGF0aWMgdm9pZCBzeW5jb2JqX3dhaXRfc3luY29ial9mdW5jKHN0cnVj dCBkcm1fc3luY29iaiAqc3luY29iaiwKIAlzdHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5ICp3YWl0 ID0KIAkJY29udGFpbmVyX29mKGNiLCBzdHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5LCBzeW5jb2Jq X2NiKTsKIAotCWRybV9zeW5jb2JqX3NlYXJjaF9mZW5jZShzeW5jb2JqLCAwLCAwLCAmd2FpdC0+ ZmVuY2UpOworCWRybV9zeW5jb2JqX3NlYXJjaF9mZW5jZShzeW5jb2JqLCB3YWl0LT5wb2ludCwg MCwgJndhaXQtPmZlbmNlKTsKIAogCXdha2VfdXBfcHJvY2Vzcyh3YWl0LT50YXNrKTsKIH0KIAog c3RhdGljIHNpZ25lZCBsb25nIGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzdHJ1Y3Qg ZHJtX3N5bmNvYmogKipzeW5jb2JqcywKKwkJCQkJCSAgdm9pZCBfX3VzZXIgKnVzZXJfcG9pbnRz LAogCQkJCQkJICB1aW50MzJfdCBjb3VudCwKIAkJCQkJCSAgdWludDMyX3QgZmxhZ3MsCiAJCQkJ CQkgIHNpZ25lZCBsb25nIHRpbWVvdXQsCkBAIC04ODQsMTIgKzg4NywzNyBAQCBzdGF0aWMgc2ln bmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29i aiAqKnN5bmNvYmpzLAogewogCXN0cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgKmVudHJpZXM7CiAJ c3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CisJdWludDY0X3QgKnBvaW50czsKIAl1aW50MzJfdCBz aWduYWxlZF9jb3VudCwgaTsKIAotCWVudHJpZXMgPSBrY2FsbG9jKGNvdW50LCBzaXplb2YoKmVu dHJpZXMpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWVudHJpZXMpCisJcG9pbnRzID0ga21hbGxvY19h cnJheShjb3VudCwgc2l6ZW9mKCpwb2ludHMpLCBHRlBfS0VSTkVMKTsKKwlpZiAocG9pbnRzID09 IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwogCisJaWYgKCF1c2VyX3BvaW50cykgeworCQltZW1z ZXQocG9pbnRzLCAwLCBjb3VudCAqIHNpemVvZih1aW50NjRfdCkpOworCX0gZWxzZSBpZiAoY29w eV9mcm9tX3VzZXIocG9pbnRzLCB1c2VyX3BvaW50cywgc2l6ZW9mKHVpbnQ2NF90KSAqIGNvdW50 KSkgeworCQl0aW1lb3V0ID0gLUVGQVVMVDsKKwkJZ290byBlcnJfZnJlZV9wb2ludHM7CisJfQor CisJaWYgKGZsYWdzICYgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FWQUlMQUJMRSkgewor CQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKKwkJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kp IHsKKwkJCXRpbWVvdXQgPSBkcm1fc3luY29ial9zZWFyY2hfZmVuY2Uoc3luY29ianNbaV0sIHBv aW50c1tpXSwKKwkJCQkJCQkgICBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1J VCwKKwkJCQkJCQkgICAmZmVuY2UpOworCQkJaWYgKHRpbWVvdXQpCisJCQkJZ290byBlcnJfZnJl ZV9wb2ludHM7CisJCX0KKwkJLyogb25seSB3YWl0IGZvciB0aGUgZmVuY2VzIHRvIGJlY29tZSBh dmFpbGFibGUgKi8KKwkJZ290byBlcnJfZnJlZV9wb2ludHM7CisJfQorCWVudHJpZXMgPSBrY2Fs bG9jKGNvdW50LCBzaXplb2YoKmVudHJpZXMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWVudHJpZXMp IHsKKwkJdGltZW91dCA9IC1FTk9NRU07CisJCWdvdG8gZXJyX2ZyZWVfcG9pbnRzOworCX0KIAkv KiBXYWxrIHRoZSBsaXN0IG9mIHN5bmMgb2JqZWN0cyBhbmQgaW5pdGlhbGl6ZSBlbnRyaWVzLiAg V2UgZG8KIAkgKiB0aGlzIHVwLWZyb250IHNvIHRoYXQgd2UgY2FuIHByb3Blcmx5IHJldHVybiAt RUlOVkFMIGlmIHRoZXJlIGlzCiAJICogYSBzeW5jb2JqIHdpdGggYSBtaXNzaW5nIGZlbmNlIGFu ZCB0aGVuIG5ldmVyIGhhdmUgdGhlIGNoYW5jZSBvZgpAQCAtODk4LDcgKzkyNiw4IEBAIHN0YXRp YyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3RydWN0IGRybV9z eW5jb2JqICoqc3luY29ianMsCiAJc2lnbmFsZWRfY291bnQgPSAwOwogCWZvciAoaSA9IDA7IGkg PCBjb3VudDsgKytpKSB7CiAJCWVudHJpZXNbaV0udGFzayA9IGN1cnJlbnQ7Ci0JCWRybV9zeW5j b2JqX3NlYXJjaF9mZW5jZShzeW5jb2Jqc1tpXSwgMCwgMCwKKwkJZW50cmllc1tpXS5wb2ludCA9 IHBvaW50c1tpXTsKKwkJZHJtX3N5bmNvYmpfc2VhcmNoX2ZlbmNlKHN5bmNvYmpzW2ldLCBwb2lu dHNbaV0sIDAsCiAJCQkJCSAmZW50cmllc1tpXS5mZW5jZSk7CiAJCWlmICghZW50cmllc1tpXS5m ZW5jZSkgewogCQkJaWYgKGZsYWdzICYgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9T VUJNSVQpIHsKQEAgLTkzNCw2ICs5NjMsNyBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNv YmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAogCQkJ CWNvbnRpbnVlOwogCiAJCQlkcm1fc3luY29ial9mZW5jZV9nZXRfb3JfYWRkX2NhbGxiYWNrKHN5 bmNvYmpzW2ldLAorCQkJCQkJCSAgICAgIGVudHJpZXNbaV0ucG9pbnQsCiAJCQkJCQkJICAgICAg JmVudHJpZXNbaV0uZmVuY2UsCiAJCQkJCQkJICAgICAgJmVudHJpZXNbaV0uc3luY29ial9jYiwK IAkJCQkJCQkgICAgICBzeW5jb2JqX3dhaXRfc3luY29ial9mdW5jKTsKQEAgLTk5Niw2ICsxMDI2 LDkgQEAgc3RhdGljIHNpZ25lZCBsb25nIGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChz dHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5jb2JqcywKIAl9CiAJa2ZyZWUoZW50cmllcyk7CiAKK2Vy cl9mcmVlX3BvaW50czoKKwlrZnJlZShwb2ludHMpOworCiAJcmV0dXJuIHRpbWVvdXQ7CiB9CiAK QEAgLTEwMzQsMTkgKzEwNjcsMzMgQEAgc3RhdGljIHNpZ25lZCBsb25nIGRybV90aW1lb3V0X2Fi c190b19qaWZmaWVzKGludDY0X3QgdGltZW91dF9uc2VjKQogc3RhdGljIGludCBkcm1fc3luY29i al9hcnJheV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdmF0ZSwKIAkJCQkgIHN0cnVjdCBkcm1fc3luY29ial93YWl0ICp3YWl0LAot CQkJCSAgc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMpCisJCQkJICBzdHJ1Y3QgZHJtX3N5 bmNvYmpfdGltZWxpbmVfd2FpdCAqdGltZWxpbmVfd2FpdCwKKwkJCQkgIHN0cnVjdCBkcm1fc3lu Y29iaiAqKnN5bmNvYmpzLCBib29sIHRpbWVsaW5lKQogewotCXNpZ25lZCBsb25nIHRpbWVvdXQg PSBkcm1fdGltZW91dF9hYnNfdG9famlmZmllcyh3YWl0LT50aW1lb3V0X25zZWMpOworCXNpZ25l ZCBsb25nIHRpbWVvdXQgPSAwOwogCXVpbnQzMl90IGZpcnN0ID0gfjA7CiAKLQl0aW1lb3V0ID0g ZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN5bmNvYmpzLAotCQkJCQkJIHdhaXQtPmNv dW50X2hhbmRsZXMsCi0JCQkJCQkgd2FpdC0+ZmxhZ3MsCi0JCQkJCQkgdGltZW91dCwgJmZpcnN0 KTsKLQlpZiAodGltZW91dCA8IDApCi0JCXJldHVybiB0aW1lb3V0OwotCi0Jd2FpdC0+Zmlyc3Rf c2lnbmFsZWQgPSBmaXJzdDsKKwlpZiAoIXRpbWVsaW5lKSB7CisJCXRpbWVvdXQgPSBkcm1fdGlt ZW91dF9hYnNfdG9famlmZmllcyh3YWl0LT50aW1lb3V0X25zZWMpOworCQl0aW1lb3V0ID0gZHJt X3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN5bmNvYmpzLAorCQkJCQkJCSBOVUxMLAorCQkJ CQkJCSB3YWl0LT5jb3VudF9oYW5kbGVzLAorCQkJCQkJCSB3YWl0LT5mbGFncywKKwkJCQkJCQkg dGltZW91dCwgJmZpcnN0KTsKKwkJaWYgKHRpbWVvdXQgPCAwKQorCQkJcmV0dXJuIHRpbWVvdXQ7 CisJCXdhaXQtPmZpcnN0X3NpZ25hbGVkID0gZmlyc3Q7CisJfSBlbHNlIHsKKwkJdGltZW91dCA9 IGRybV90aW1lb3V0X2Fic190b19qaWZmaWVzKHRpbWVsaW5lX3dhaXQtPnRpbWVvdXRfbnNlYyk7 CisJCXRpbWVvdXQgPSBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3luY29ianMsCisJ CQkJCQkJIHU2NF90b191c2VyX3B0cih0aW1lbGluZV93YWl0LT5wb2ludHMpLAorCQkJCQkJCSB0 aW1lbGluZV93YWl0LT5jb3VudF9oYW5kbGVzLAorCQkJCQkJCSB0aW1lbGluZV93YWl0LT5mbGFn cywKKwkJCQkJCQkgdGltZW91dCwgJmZpcnN0KTsKKwkJaWYgKHRpbWVvdXQgPCAwKQorCQkJcmV0 dXJuIHRpbWVvdXQ7CisJCXRpbWVsaW5lX3dhaXQtPmZpcnN0X3NpZ25hbGVkID0gZmlyc3Q7CisJ fQogCXJldHVybiAwOwogfQogCkBAIC0xMTMyLDEzICsxMTc5LDQ5IEBAIGRybV9zeW5jb2JqX3dh aXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJcmV0dXJuIHJl dDsKIAogCXJldCA9IGRybV9zeW5jb2JqX2FycmF5X3dhaXQoZGV2LCBmaWxlX3ByaXZhdGUsCi0J CQkJICAgICBhcmdzLCBzeW5jb2Jqcyk7CisJCQkJICAgICBhcmdzLCBOVUxMLCBzeW5jb2Jqcywg ZmFsc2UpOworCisJZHJtX3N5bmNvYmpfYXJyYXlfZnJlZShzeW5jb2JqcywgYXJncy0+Y291bnRf aGFuZGxlcyk7CisKKwlyZXR1cm4gcmV0OworfQorCitpbnQKK2RybV9zeW5jb2JqX3RpbWVsaW5l X3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQlzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxp bmVfd2FpdCAqYXJncyA9IGRhdGE7CisJc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianM7CisJ aW50IHJldCA9IDA7CisKKwlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJf U1lOQ09CSikpCisJCXJldHVybiAtRU5PREVWOworCisJaWYgKGFyZ3MtPmZsYWdzICYgfihEUk1f U1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfQUxMIHwKKwkJCSAgICBEUk1fU1lOQ09CSl9XQUlUX0ZM QUdTX1dBSVRfRk9SX1NVQk1JVCB8CisJCQkgICAgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlU X0NPTVBMRVRFRCB8CisJCQkgICAgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FWQUlMQUJM RSkpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKGFyZ3MtPmNvdW50X2hhbmRsZXMgPT0gMCkK KwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXQgPSBkcm1fc3luY29ial9hcnJheV9maW5kKGZpbGVf cHJpdmF0ZSwKKwkJCQkgICAgIHU2NF90b191c2VyX3B0cihhcmdzLT5oYW5kbGVzKSwKKwkJCQkg ICAgIGFyZ3MtPmNvdW50X2hhbmRsZXMsCisJCQkJICAgICAmc3luY29ianMpOworCWlmIChyZXQg PCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdChkZXYs IGZpbGVfcHJpdmF0ZSwKKwkJCQkgICAgIE5VTEwsIGFyZ3MsIHN5bmNvYmpzLCB0cnVlKTsKIAog CWRybV9zeW5jb2JqX2FycmF5X2ZyZWUoc3luY29ianMsIGFyZ3MtPmNvdW50X2hhbmRsZXMpOwog CiAJcmV0dXJuIHJldDsKIH0KIAorCiBpbnQKIGRybV9zeW5jb2JqX3Jlc2V0X2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdmF0ZSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3Vh cGkvZHJtL2RybS5oCmluZGV4IGNlYmRiMjU0MWViNy4uYzhiYzE0MTQ3NTNkIDEwMDY0NAotLS0g YS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKQEAg LTczOCw2ICs3MzgsMTAgQEAgc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSB7CiAKICNkZWZpbmUg RFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCAoMSA8PCAwKQogI2RlZmluZSBEUk1fU1lO Q09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVCAoMSA8PCAxKQorLyogd2FpdCBmb3IgdGlt ZSBwb2ludCB0byBiZSBjb21wbGV0ZWQgKi8KKyNkZWZpbmUgRFJNX1NZTkNPQkpfV0FJVF9GTEFH U19XQUlUX0NPTVBMRVRFRCAoMSA8PCAyKQorLyogd2FpdCBmb3IgdGltZSBwb2ludCB0byBiZWNv bWUgYXZhaWxhYmxlICovCisjZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BVkFJ TEFCTEUgKDEgPDwgMykKIHN0cnVjdCBkcm1fc3luY29ial93YWl0IHsKIAlfX3U2NCBoYW5kbGVz OwogCS8qIGFic29sdXRlIHRpbWVvdXQgKi8KQEAgLTc0OCw2ICs3NTIsMTkgQEAgc3RydWN0IGRy bV9zeW5jb2JqX3dhaXQgewogCV9fdTMyIHBhZDsKIH07CiAKK3N0cnVjdCBkcm1fc3luY29ial90 aW1lbGluZV93YWl0IHsKKwlfX3U2NCBoYW5kbGVzOworCS8qIHdhaXQgb24gc3BlY2lmaWMgdGlt ZWxpbmUgcG9pbnQgZm9yIGV2ZXJ5IGhhbmRsZXMqLworCV9fdTY0IHBvaW50czsKKwkvKiBhYnNv bHV0ZSB0aW1lb3V0ICovCisJX19zNjQgdGltZW91dF9uc2VjOworCV9fdTMyIGNvdW50X2hhbmRs ZXM7CisJX191MzIgZmxhZ3M7CisJX191MzIgZmlyc3Rfc2lnbmFsZWQ7IC8qIG9ubHkgdmFsaWQg d2hlbiBub3Qgd2FpdGluZyBhbGwgKi8KKwlfX3UzMiBwYWQ7Cit9OworCisKIHN0cnVjdCBkcm1f c3luY29ial9hcnJheSB7CiAJX191NjQgaGFuZGxlczsKIAlfX3UzMiBjb3VudF9oYW5kbGVzOwpA QCAtOTEwLDYgKzkyNyw3IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBEUk1fSU9DVExfTU9ERV9H RVRfTEVBU0UJRFJNX0lPV1IoMHhDOCwgc3RydWN0IGRybV9tb2RlX2dldF9sZWFzZSkKICNkZWZp bmUgRFJNX0lPQ1RMX01PREVfUkVWT0tFX0xFQVNFCURSTV9JT1dSKDB4QzksIHN0cnVjdCBkcm1f bW9kZV9yZXZva2VfbGVhc2UpCiAKKyNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNPQkpfVElNRUxJTkVf V0FJVAlEUk1fSU9XUigweENBLCBzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdCkKIC8q KgogICogRGV2aWNlIHNwZWNpZmljIGlvY3RscyBzaG91bGQgb25seSBiZSBpbiB0aGVpciByZXNw ZWN0aXZlIGhlYWRlcnMKICAqIFRoZSBkZXZpY2Ugc3BlY2lmaWMgaW9jdGwgcmFuZ2UgaXMgZnJv bSAweDQwIHRvIDB4OWYuCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=