From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH 04/10] drm/syncobj: add support for timeline point wait v8 Date: Fri, 7 Dec 2018 23:54:16 +0800 Message-ID: <20181207155422.15967-4-david1.zhou@amd.com> References: <20181207155422.15967-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: <20181207155422.15967-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?= cG9pbnRzIGFycmF5IGlzIG9uZS10by1vbmUgbWF0Y2ggd2l0aCBzeW5jb2JqcyBhcnJheS4KdjI6 CmFkZCBzZXBlcmF0ZSBpb2N0bCBmb3IgdGltZWxpbmUgcG9pbnQgd2FpdCwgb3RoZXJ3aXNlIGJy ZWFrIHVhcGkuCnYzOgp1c2Vyc3BhY2UgY2FuIHNwZWNpZnkgdHdvIGtpbmRzIHdhaXRzOjoKYS4g V2FpdCBmb3IgdGltZSBwb2ludCB0byBiZSBjb21wbGV0ZWQuCmIuIGFuZCB3YWl0IGZvciB0aW1l IHBvaW50IHRvIGJlY29tZSBhdmFpbGFibGUKdjQ6CnJlYmFzZQp2NToKYWRkIGNvbW1lbnQgZm9y IHh4eF9XQUlUX0FWQUlMQUJMRQp2NjogcmViYXNlIGFuZCByZXdvcmsgb24gbmV3IGNvbnRhaW5l cgp2NzogZHJvcCBfV0FJVF9DT01QTEVURUQsIGl0IGlzIHRoZSBkZWZhdWx0IGFueXdheQp2ODog Y29ycmVjdGx5IGhhbmRsZSBnYXJiYWdlIGNvbGxlY3RlZCBmZW5jZXMKClNpZ25lZC1vZmYtYnk6 IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IENocmlz dGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KQ2M6IERhbmllbCBSYWtvcyA8 RGFuaWVsLlJha29zQGFtZC5jb20+CkNjOiBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0cmFu ZC5uZXQ+CkNjOiBCYXMgTmlldXdlbmh1aXplbiA8YmFzQGJhc25pZXV3ZW5odWl6ZW4ubmw+CkNj OiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJp c0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5o IHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyAgICB8ICAgMiArCiBkcml2ZXJz L2dwdS9kcm0vZHJtX3N5bmNvYmouYyAgfCAxNTMgKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tCiBpbmNsdWRlL3VhcGkvZHJtL2RybS5oICAgICAgICAgfCAgMTUgKysrKwogNCBmaWxl cyBjaGFuZ2VkLCAxNDMgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJtL2RybV9p bnRlcm5hbC5oCmluZGV4IGM3YTdkN2NlNWQxYy4uMThiNDFlMTAxOTVjIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9p bnRlcm5hbC5oCkBAIC0xNzgsNiArMTc4LDggQEAgaW50IGRybV9zeW5jb2JqX2ZkX3RvX2hhbmRs ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJCSAgIHN0cnVj dCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKIGludCBkcm1fc3luY29ial93YWl0X2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdmF0ZSk7CitpbnQgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdF9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdmF0ZSk7CiBpbnQgZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dmF0ZSk7CiBpbnQgZHJtX3N5bmNvYmpfc2lnbmFsX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKaW5kZXggOTRiZDg3MmQ1NmM0Li5hOWExN2Vk MzVjYzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKQEAgLTY3NSw2ICs2NzUsOCBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9pb2N0bF9kZXNjIGRybV9pb2N0bHNbXSA9IHsKIAkJICAgICAgRFJNX1VOTE9D S0VEfERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpf V0FJVCwgZHJtX3N5bmNvYmpfd2FpdF9pb2N0bCwKIAkJICAgICAgRFJNX1VOTE9DS0VEfERSTV9S RU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfVElNRUxJTkVf V0FJVCwgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdF9pb2N0bCwKKwkJICAgICAgRFJNX1VOTE9D S0VEfERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpf UkVTRVQsIGRybV9zeW5jb2JqX3Jlc2V0X2lvY3RsLAogCQkgICAgICBEUk1fVU5MT0NLRUR8RFJN X1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9TSUdOQUws IGRybV9zeW5jb2JqX3NpZ25hbF9pb2N0bCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fc3luY29iai5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKaW5kZXggNTFmNzk4 ZTIxOTRmLi4zNDgwNzliYjA5NjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lu Y29iai5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jCkBAIC02MSw2ICs2MSw3 IEBAIHN0cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFz azsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAlzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGZlbmNl X2NiOworCXU2NCAgICBwb2ludDsKIH07CiAKIHN0YXRpYyB2b2lkIHN5bmNvYmpfd2FpdF9zeW5j b2JqX2Z1bmMoc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqLApAQCAtOTUsNiArOTYsOCBAQCBF WFBPUlRfU1lNQk9MKGRybV9zeW5jb2JqX2ZpbmQpOwogc3RhdGljIHZvaWQgZHJtX3N5bmNvYmpf ZmVuY2VfYWRkX3dhaXQoc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqLAogCQkJCSAgICAgICBz dHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5ICp3YWl0KQogeworCXN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlOworCiAJaWYgKHdhaXQtPmZlbmNlKQogCQlyZXR1cm47CiAKQEAgLTEwMywxMSArMTA2LDE1 IEBAIHN0YXRpYyB2b2lkIGRybV9zeW5jb2JqX2ZlbmNlX2FkZF93YWl0KHN0cnVjdCBkcm1fc3lu Y29iaiAqc3luY29iaiwKIAkgKiBoYXZlIHRoZSBsb2NrLCB0cnkgb25lIG1vcmUgdGltZSBqdXN0 IHRvIGJlIHN1cmUgd2UgZG9uJ3QgYWRkIGEKIAkgKiBjYWxsYmFjayB3aGVuIGEgZmVuY2UgaGFz IGFscmVhZHkgYmVlbiBzZXQuCiAJICovCi0JaWYgKHN5bmNvYmotPmZlbmNlKQotCQl3YWl0LT5m ZW5jZSA9IGRtYV9mZW5jZV9nZXQoCi0JCQlyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHN5bmNv YmotPmZlbmNlLCAxKSk7Ci0JZWxzZQorCWZlbmNlID0gZG1hX2ZlbmNlX2dldChyY3VfZGVyZWZl cmVuY2VfcHJvdGVjdGVkKHN5bmNvYmotPmZlbmNlLCAxKSk7CisJaWYgKCFmZW5jZSB8fCBkbWFf ZmVuY2VfY2hhaW5fZmluZF9zZXFubygmZmVuY2UsIHdhaXQtPnBvaW50KSkgeworCQlkbWFfZmVu Y2VfcHV0KGZlbmNlKTsKIAkJbGlzdF9hZGRfdGFpbCgmd2FpdC0+bm9kZSwgJnN5bmNvYmotPmNi X2xpc3QpOworCX0gZWxzZSBpZiAoIWZlbmNlKSB7CisJCXdhaXQtPmZlbmNlID0gZG1hX2ZlbmNl X2dldF9zdHViKCk7CisJfSBlbHNlIHsKKwkJd2FpdC0+ZmVuY2UgPSBmZW5jZTsKKwl9CiAJc3Bp bl91bmxvY2soJnN5bmNvYmotPmxvY2spOwogfQogCkBAIC0xNDgsMTAgKzE1NSw4IEBAIHZvaWQg ZHJtX3N5bmNvYmpfYWRkX3BvaW50KHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iaiwKIAlkbWFf ZmVuY2VfY2hhaW5faW5pdChjaGFpbiwgcHJldiwgZmVuY2UsIHBvaW50KTsKIAlyY3VfYXNzaWdu X3BvaW50ZXIoc3luY29iai0+ZmVuY2UsICZjaGFpbi0+YmFzZSk7CiAKLQlsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUoY3VyLCB0bXAsICZzeW5jb2JqLT5jYl9saXN0LCBub2RlKSB7Ci0JCWxpc3Rf ZGVsX2luaXQoJmN1ci0+bm9kZSk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGN1ciwgdG1w LCAmc3luY29iai0+Y2JfbGlzdCwgbm9kZSkKIAkJc3luY29ial93YWl0X3N5bmNvYmpfZnVuYyhz eW5jb2JqLCBjdXIpOwotCX0KIAlzcGluX3VubG9jaygmc3luY29iai0+bG9jayk7CiAKIAkvKiBX YWxrIHRoZSBjaGFpbiBvbmNlIHRvIHRyaWdnZXIgZ2FyYmFnZSBjb2xsZWN0aW9uICovCkBAIC0x ODIsMTAgKzE4Nyw4IEBAIHZvaWQgZHJtX3N5bmNvYmpfcmVwbGFjZV9mZW5jZShzdHJ1Y3QgZHJt X3N5bmNvYmogKnN5bmNvYmosCiAJcmN1X2Fzc2lnbl9wb2ludGVyKHN5bmNvYmotPmZlbmNlLCBm ZW5jZSk7CiAKIAlpZiAoZmVuY2UgIT0gb2xkX2ZlbmNlKSB7Ci0JCWxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShjdXIsIHRtcCwgJnN5bmNvYmotPmNiX2xpc3QsIG5vZGUpIHsKLQkJCWxpc3RfZGVs X2luaXQoJmN1ci0+bm9kZSk7CisJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjdXIsIHRtcCwg JnN5bmNvYmotPmNiX2xpc3QsIG5vZGUpCiAJCQlzeW5jb2JqX3dhaXRfc3luY29ial9mdW5jKHN5 bmNvYmosIGN1cik7Ci0JCX0KIAl9CiAKIAlzcGluX3VubG9jaygmc3luY29iai0+bG9jayk7CkBA IC02NDIsMTMgKzY0NSwyNyBAQCBzdGF0aWMgdm9pZCBzeW5jb2JqX3dhaXRfZmVuY2VfZnVuYyhz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKIHN0YXRpYyB2b2lkIHN5bmNvYmpfd2FpdF9zeW5jb2Jq X2Z1bmMoc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqLAogCQkJCSAgICAgIHN0cnVjdCBzeW5j b2JqX3dhaXRfZW50cnkgKndhaXQpCiB7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CisKIAkv KiBUaGlzIGhhcHBlbnMgaW5zaWRlIHRoZSBzeW5jb2JqIGxvY2sgKi8KLQl3YWl0LT5mZW5jZSA9 IGRtYV9mZW5jZV9nZXQocmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChzeW5jb2JqLT5mZW5jZSwK LQkJCQkJCQkgICAgICBsb2NrZGVwX2lzX2hlbGQoJnN5bmNvYmotPmxvY2spKSk7CisJZmVuY2Ug PSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHN5bmNvYmotPmZlbmNlLAorCQkJCQkgIGxvY2tk ZXBfaXNfaGVsZCgmc3luY29iai0+bG9jaykpOworCWRtYV9mZW5jZV9nZXQoZmVuY2UpOworCWlm ICghZmVuY2UgfHwgZG1hX2ZlbmNlX2NoYWluX2ZpbmRfc2Vxbm8oJmZlbmNlLCB3YWl0LT5wb2lu dCkpIHsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CisJCXJldHVybjsKKwl9IGVsc2UgaWYgKCFm ZW5jZSkgeworCQl3YWl0LT5mZW5jZSA9IGRtYV9mZW5jZV9nZXRfc3R1YigpOworCX0gZWxzZSB7 CisJCXdhaXQtPmZlbmNlID0gZmVuY2U7CisJfQorCiAJd2FrZV91cF9wcm9jZXNzKHdhaXQtPnRh c2spOworCWxpc3RfZGVsX2luaXQoJndhaXQtPm5vZGUpOwogfQogCiBzdGF0aWMgc2lnbmVkIGxv bmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5 bmNvYmpzLAorCQkJCQkJICB2b2lkIF9fdXNlciAqdXNlcl9wb2ludHMsCiAJCQkJCQkgIHVpbnQz Ml90IGNvdW50LAogCQkJCQkJICB1aW50MzJfdCBmbGFncywKIAkJCQkJCSAgc2lnbmVkIGxvbmcg dGltZW91dCwKQEAgLTY1NiwxMiArNjczLDI3IEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3lu Y29ial9hcnJheV93YWl0X3RpbWVvdXQoc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCiB7 CiAJc3RydWN0IHN5bmNvYmpfd2FpdF9lbnRyeSAqZW50cmllczsKIAlzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZTsKKwl1aW50NjRfdCAqcG9pbnRzOwogCXVpbnQzMl90IHNpZ25hbGVkX2NvdW50LCBp OwogCi0JZW50cmllcyA9IGtjYWxsb2MoY291bnQsIHNpemVvZigqZW50cmllcyksIEdGUF9LRVJO RUwpOwotCWlmICghZW50cmllcykKKwlwb2ludHMgPSBrbWFsbG9jX2FycmF5KGNvdW50LCBzaXpl b2YoKnBvaW50cyksIEdGUF9LRVJORUwpOworCWlmIChwb2ludHMgPT0gTlVMTCkKIAkJcmV0dXJu IC1FTk9NRU07CiAKKwlpZiAoIXVzZXJfcG9pbnRzKSB7CisJCW1lbXNldChwb2ludHMsIDAsIGNv dW50ICogc2l6ZW9mKHVpbnQ2NF90KSk7CisKKwl9IGVsc2UgaWYgKGNvcHlfZnJvbV91c2VyKHBv aW50cywgdXNlcl9wb2ludHMsCisJCQkJICBzaXplb2YodWludDY0X3QpICogY291bnQpKSB7CisJ CXRpbWVvdXQgPSAtRUZBVUxUOworCQlnb3RvIGVycl9mcmVlX3BvaW50czsKKwl9CisKKwllbnRy aWVzID0ga2NhbGxvYyhjb3VudCwgc2l6ZW9mKCplbnRyaWVzKSwgR0ZQX0tFUk5FTCk7CisJaWYg KCFlbnRyaWVzKSB7CisJCXRpbWVvdXQgPSAtRU5PTUVNOworCQlnb3RvIGVycl9mcmVlX3BvaW50 czsKKwl9CiAJLyogV2FsayB0aGUgbGlzdCBvZiBzeW5jIG9iamVjdHMgYW5kIGluaXRpYWxpemUg ZW50cmllcy4gIFdlIGRvCiAJICogdGhpcyB1cC1mcm9udCBzbyB0aGF0IHdlIGNhbiBwcm9wZXJs eSByZXR1cm4gLUVJTlZBTCBpZiB0aGVyZSBpcwogCSAqIGEgc3luY29iaiB3aXRoIGEgbWlzc2lu ZyBmZW5jZSBhbmQgdGhlbiBuZXZlciBoYXZlIHRoZSBjaGFuY2Ugb2YKQEAgLTY2OSw5ICs3MDEs MTMgQEAgc3RhdGljIHNpZ25lZCBsb25nIGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChz dHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5jb2JqcywKIAkgKi8KIAlzaWduYWxlZF9jb3VudCA9IDA7 CiAJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKwkJc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2U7CisKIAkJZW50cmllc1tpXS50YXNrID0gY3VycmVudDsKLQkJZW50cmllc1tpXS5mZW5jZSA9 IGRybV9zeW5jb2JqX2ZlbmNlX2dldChzeW5jb2Jqc1tpXSk7Ci0JCWlmICghZW50cmllc1tpXS5m ZW5jZSkgeworCQllbnRyaWVzW2ldLnBvaW50ID0gcG9pbnRzW2ldOworCQlmZW5jZSA9IGRybV9z eW5jb2JqX2ZlbmNlX2dldChzeW5jb2Jqc1tpXSk7CisJCWlmICghZmVuY2UgfHwgZG1hX2ZlbmNl X2NoYWluX2ZpbmRfc2Vxbm8oJmZlbmNlLCBwb2ludHNbaV0pKSB7CisJCQlkbWFfZmVuY2VfcHV0 KGZlbmNlKTsKIAkJCWlmIChmbGFncyAmIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1Jf U1VCTUlUKSB7CiAJCQkJY29udGludWU7CiAJCQl9IGVsc2UgewpAQCAtNjgwLDcgKzcxNiwxMyBA QCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVj dCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAogCQkJfQogCQl9CiAKLQkJaWYgKGRtYV9mZW5jZV9p c19zaWduYWxlZChlbnRyaWVzW2ldLmZlbmNlKSkgeworCQlpZiAoZmVuY2UpCisJCQllbnRyaWVz W2ldLmZlbmNlID0gZmVuY2U7CisJCWVsc2UKKwkJCWVudHJpZXNbaV0uZmVuY2UgPSBkbWFfZmVu Y2VfZ2V0X3N0dWIoKTsKKworCQlpZiAoKGZsYWdzICYgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19X QUlUX0FWQUlMQUJMRSkgfHwKKwkJICAgIGRtYV9mZW5jZV9pc19zaWduYWxlZChlbnRyaWVzW2ld LmZlbmNlKSkgewogCQkJaWYgKHNpZ25hbGVkX2NvdW50ID09IDAgJiYgaWR4KQogCQkJCSppZHgg PSBpOwogCQkJc2lnbmFsZWRfY291bnQrKzsKQEAgLTcxMyw3ICs3NTUsOCBAQCBzdGF0aWMgc2ln bmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29i aiAqKnN5bmNvYmpzLAogCQkJaWYgKCFmZW5jZSkKIAkJCQljb250aW51ZTsKIAotCQkJaWYgKGRt YV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkgfHwKKwkJCWlmICgoZmxhZ3MgJiBEUk1fU1lOQ09C Sl9XQUlUX0ZMQUdTX1dBSVRfQVZBSUxBQkxFKSB8fAorCQkJICAgIGRtYV9mZW5jZV9pc19zaWdu YWxlZChmZW5jZSkgfHwKIAkJCSAgICAoIWVudHJpZXNbaV0uZmVuY2VfY2IuZnVuYyAmJgogCQkJ ICAgICBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlLAogCQkJCQkJICAgICZlbnRyaWVzW2ld LmZlbmNlX2NiLApAQCAtNzU4LDYgKzgwMSw5IEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3lu Y29ial9hcnJheV93YWl0X3RpbWVvdXQoc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCiAJ fQogCWtmcmVlKGVudHJpZXMpOwogCitlcnJfZnJlZV9wb2ludHM6CisJa2ZyZWUocG9pbnRzKTsK KwogCXJldHVybiB0aW1lb3V0OwogfQogCkBAIC03OTYsMTkgKzg0MiwzMyBAQCBzdGF0aWMgc2ln bmVkIGxvbmcgZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXMoaW50NjRfdCB0aW1lb3V0X25zZWMp CiBzdGF0aWMgaW50IGRybV9zeW5jb2JqX2FycmF5X3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAkJCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlLAogCQkJCSAgc3RydWN0IGRy bV9zeW5jb2JqX3dhaXQgKndhaXQsCi0JCQkJICBzdHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5jb2Jq cykKKwkJCQkgIHN0cnVjdCBkcm1fc3luY29ial90aW1lbGluZV93YWl0ICp0aW1lbGluZV93YWl0 LAorCQkJCSAgc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsIGJvb2wgdGltZWxpbmUpCiB7 Ci0Jc2lnbmVkIGxvbmcgdGltZW91dCA9IGRybV90aW1lb3V0X2Fic190b19qaWZmaWVzKHdhaXQt PnRpbWVvdXRfbnNlYyk7CisJc2lnbmVkIGxvbmcgdGltZW91dCA9IDA7CiAJdWludDMyX3QgZmly c3QgPSB+MDsKIAotCXRpbWVvdXQgPSBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3lu Y29ianMsCi0JCQkJCQkgd2FpdC0+Y291bnRfaGFuZGxlcywKLQkJCQkJCSB3YWl0LT5mbGFncywK LQkJCQkJCSB0aW1lb3V0LCAmZmlyc3QpOwotCWlmICh0aW1lb3V0IDwgMCkKLQkJcmV0dXJuIHRp bWVvdXQ7Ci0KLQl3YWl0LT5maXJzdF9zaWduYWxlZCA9IGZpcnN0OworCWlmICghdGltZWxpbmUp IHsKKwkJdGltZW91dCA9IGRybV90aW1lb3V0X2Fic190b19qaWZmaWVzKHdhaXQtPnRpbWVvdXRf bnNlYyk7CisJCXRpbWVvdXQgPSBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3luY29i anMsCisJCQkJCQkJIE5VTEwsCisJCQkJCQkJIHdhaXQtPmNvdW50X2hhbmRsZXMsCisJCQkJCQkJ IHdhaXQtPmZsYWdzLAorCQkJCQkJCSB0aW1lb3V0LCAmZmlyc3QpOworCQlpZiAodGltZW91dCA8 IDApCisJCQlyZXR1cm4gdGltZW91dDsKKwkJd2FpdC0+Zmlyc3Rfc2lnbmFsZWQgPSBmaXJzdDsK Kwl9IGVsc2UgeworCQl0aW1lb3V0ID0gZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXModGltZWxp bmVfd2FpdC0+dGltZW91dF9uc2VjKTsKKwkJdGltZW91dCA9IGRybV9zeW5jb2JqX2FycmF5X3dh aXRfdGltZW91dChzeW5jb2JqcywKKwkJCQkJCQkgdTY0X3RvX3VzZXJfcHRyKHRpbWVsaW5lX3dh aXQtPnBvaW50cyksCisJCQkJCQkJIHRpbWVsaW5lX3dhaXQtPmNvdW50X2hhbmRsZXMsCisJCQkJ CQkJIHRpbWVsaW5lX3dhaXQtPmZsYWdzLAorCQkJCQkJCSB0aW1lb3V0LCAmZmlyc3QpOworCQlp ZiAodGltZW91dCA8IDApCisJCQlyZXR1cm4gdGltZW91dDsKKwkJdGltZWxpbmVfd2FpdC0+Zmly c3Rfc2lnbmFsZWQgPSBmaXJzdDsKKwl9CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTg5NCwxMyArOTU0 LDQ4IEBAIGRybV9zeW5jb2JqX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwKIAkJcmV0dXJuIHJldDsKIAogCXJldCA9IGRybV9zeW5jb2JqX2FycmF5X3dhaXQo ZGV2LCBmaWxlX3ByaXZhdGUsCi0JCQkJICAgICBhcmdzLCBzeW5jb2Jqcyk7CisJCQkJICAgICBh cmdzLCBOVUxMLCBzeW5jb2JqcywgZmFsc2UpOwogCiAJZHJtX3N5bmNvYmpfYXJyYXlfZnJlZShz eW5jb2JqcywgYXJncy0+Y291bnRfaGFuZGxlcyk7CiAKIAlyZXR1cm4gcmV0OwogfQogCitpbnQK K2RybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKKwkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSkKK3sKKwlzdHJ1 Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdCAqYXJncyA9IGRhdGE7CisJc3RydWN0IGRybV9z eW5jb2JqICoqc3luY29ianM7CisJaW50IHJldCA9IDA7CisKKwlpZiAoIWRybV9jb3JlX2NoZWNr X2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSikpCisJCXJldHVybiAtRU5PREVWOworCisJaWYg KGFyZ3MtPmZsYWdzICYgfihEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfQUxMIHwKKwkJCSAg ICBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVCB8CisJCQkgICAgRFJNX1NZ TkNPQkpfV0FJVF9GTEFHU19XQUlUX0FWQUlMQUJMRSkpCisJCXJldHVybiAtRUlOVkFMOworCisJ aWYgKGFyZ3MtPmNvdW50X2hhbmRsZXMgPT0gMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXQg PSBkcm1fc3luY29ial9hcnJheV9maW5kKGZpbGVfcHJpdmF0ZSwKKwkJCQkgICAgIHU2NF90b191 c2VyX3B0cihhcmdzLT5oYW5kbGVzKSwKKwkJCQkgICAgIGFyZ3MtPmNvdW50X2hhbmRsZXMsCisJ CQkJICAgICAmc3luY29ianMpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0 ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdChkZXYsIGZpbGVfcHJpdmF0ZSwKKwkJCQkgICAgIE5V TEwsIGFyZ3MsIHN5bmNvYmpzLCB0cnVlKTsKKworCWRybV9zeW5jb2JqX2FycmF5X2ZyZWUoc3lu Y29ianMsIGFyZ3MtPmNvdW50X2hhbmRsZXMpOworCisJcmV0dXJuIHJldDsKK30KKworCiBpbnQK IGRybV9zeW5jb2JqX3Jlc2V0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSkKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvdWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCmluZGV4IDMwMGYzMzY2 MzNmMi4uMDA5MjExMWQwMDJjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCisr KyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKQEAgLTczNyw2ICs3MzcsNyBAQCBzdHJ1Y3QgZHJt X3N5bmNvYmpfaGFuZGxlIHsKIAogI2RlZmluZSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRf QUxMICgxIDw8IDApCiAjZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VC TUlUICgxIDw8IDEpCisjZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BVkFJTEFC TEUgKDEgPDwgMikKIHN0cnVjdCBkcm1fc3luY29ial93YWl0IHsKIAlfX3U2NCBoYW5kbGVzOwog CS8qIGFic29sdXRlIHRpbWVvdXQgKi8KQEAgLTc0Nyw2ICs3NDgsMTkgQEAgc3RydWN0IGRybV9z eW5jb2JqX3dhaXQgewogCV9fdTMyIHBhZDsKIH07CiAKK3N0cnVjdCBkcm1fc3luY29ial90aW1l bGluZV93YWl0IHsKKwlfX3U2NCBoYW5kbGVzOworCS8qIHdhaXQgb24gc3BlY2lmaWMgdGltZWxp bmUgcG9pbnQgZm9yIGV2ZXJ5IGhhbmRsZXMqLworCV9fdTY0IHBvaW50czsKKwkvKiBhYnNvbHV0 ZSB0aW1lb3V0ICovCisJX19zNjQgdGltZW91dF9uc2VjOworCV9fdTMyIGNvdW50X2hhbmRsZXM7 CisJX191MzIgZmxhZ3M7CisJX191MzIgZmlyc3Rfc2lnbmFsZWQ7IC8qIG9ubHkgdmFsaWQgd2hl biBub3Qgd2FpdGluZyBhbGwgKi8KKwlfX3UzMiBwYWQ7Cit9OworCisKIHN0cnVjdCBkcm1fc3lu Y29ial9hcnJheSB7CiAJX191NjQgaGFuZGxlczsKIAlfX3UzMiBjb3VudF9oYW5kbGVzOwpAQCAt OTA5LDYgKzkyMyw3IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBEUk1fSU9DVExfTU9ERV9HRVRf TEVBU0UJRFJNX0lPV1IoMHhDOCwgc3RydWN0IGRybV9tb2RlX2dldF9sZWFzZSkKICNkZWZpbmUg RFJNX0lPQ1RMX01PREVfUkVWT0tFX0xFQVNFCURSTV9JT1dSKDB4QzksIHN0cnVjdCBkcm1fbW9k ZV9yZXZva2VfbGVhc2UpCiAKKyNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNPQkpfVElNRUxJTkVfV0FJ VAlEUk1fSU9XUigweENBLCBzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdCkKIC8qKgog ICogRGV2aWNlIHNwZWNpZmljIGlvY3RscyBzaG91bGQgb25seSBiZSBpbiB0aGVpciByZXNwZWN0 aXZlIGhlYWRlcnMKICAqIFRoZSBkZXZpY2Ugc3BlY2lmaWMgaW9jdGwgcmFuZ2UgaXMgZnJvbSAw eDQwIHRvIDB4OWYuCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v YW1kLWdmeAo=