From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 07/11] drm/syncobj: add support for timeline point wait v7 Date: Wed, 28 Nov 2018 15:50:17 +0100 Message-ID: <20181128145021.4105-8-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 RnJvbTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNvbT4KCnBvaW50cyBhcnJheSBp cyBvbmUtdG8tb25lIG1hdGNoIHdpdGggc3luY29ianMgYXJyYXkuCnYyOgphZGQgc2VwZXJhdGUg aW9jdGwgZm9yIHRpbWVsaW5lIHBvaW50IHdhaXQsIG90aGVyd2lzZSBicmVhayB1YXBpLgp2MzoK dXNlcnNwYWNlIGNhbiBzcGVjaWZ5IHR3byBraW5kcyB3YWl0czo6CmEuIFdhaXQgZm9yIHRpbWUg cG9pbnQgdG8gYmUgY29tcGxldGVkLgpiLiBhbmQgd2FpdCBmb3IgdGltZSBwb2ludCB0byBiZWNv bWUgYXZhaWxhYmxlCnY0OgpyZWJhc2UKdjU6CmFkZCBjb21tZW50IGZvciB4eHhfV0FJVF9BVkFJ TEFCTEUKdjY6IHJlYmFzZSBhbmQgcmV3b3JrIG9uIG5ldyBjb250YWluZXIKdjc6IGRyb3AgX1dB SVRfQ09NUExFVEVELCBpdCBpcyB0aGUgZGVmYXVsdCBhbnl3YXkKClNpZ25lZC1vZmYtYnk6IENo dW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IENocmlzdGlh biBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KQ2M6IERhbmllbCBSYWtvcyA8RGFu aWVsLlJha29zQGFtZC5jb20+CkNjOiBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0cmFuZC5u ZXQ+CkNjOiBCYXMgTmlldXdlbmh1aXplbiA8YmFzQGJhc25pZXV3ZW5odWl6ZW4ubmw+CkNjOiBE YXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0Bj aHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIHwg ICAyICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyAgICB8ICAgMiArCiBkcml2ZXJzL2dw dS9kcm0vZHJtX3N5bmNvYmouYyAgfCAxNTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0KIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAgICAgICB8ICAxNSArKysrCiA0 IGZpbGVzIGNoYW5nZWQsIDE0MCBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2ludGVybmFsLmgKaW5kZXggMGM0ZWI0YTlhYjMxLi41NjZkNDRlM2M3ODIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2ludGVybmFsLmgKQEAgLTE4Myw2ICsxODMsOCBAQCBpbnQgZHJtX3N5bmNvYmpfZmRfdG9f aGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkJICAg c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOwogaW50IGRybV9zeW5jb2JqX3dhaXRfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCSAgIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2YXRlKTsKK2ludCBkcm1fc3luY29ial90aW1lbGluZV93YWl0X2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJICAgIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2YXRlKTsKIGludCBkcm1fc3luY29ial9yZXNldF9pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmls ZV9wcml2YXRlKTsKIGludCBkcm1fc3luY29ial9zaWduYWxfaW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9j dGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwppbmRleCA5NGJkODcyZDU2YzQuLmE5 YTE3ZWQzNWNjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpAQCAtNjc1LDYgKzY3NSw4IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rsc1tdID0gewogCQkgICAgICBEUk1f VU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lO Q09CSl9XQUlULCBkcm1fc3luY29ial93YWl0X2lvY3RsLAogCQkgICAgICBEUk1fVU5MT0NLRUR8 RFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9USU1F TElORV9XQUlULCBkcm1fc3luY29ial90aW1lbGluZV93YWl0X2lvY3RsLAorCQkgICAgICBEUk1f VU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lO Q09CSl9SRVNFVCwgZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGwsCiAJCSAgICAgIERSTV9VTkxPQ0tF RHxEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JKX1NJ R05BTCwgZHJtX3N5bmNvYmpfc2lnbmFsX2lvY3RsLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9zeW5jb2JqLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYwppbmRleCA1 ZTBhZTA1OWEzNGYuLmFmZWIzYjg5MzFjNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9zeW5jb2JqLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKQEAgLTYxLDYg KzYxLDcgQEAgc3RydWN0IHN5bmNvYmpfd2FpdF9lbnRyeSB7CiAJc3RydWN0IHRhc2tfc3RydWN0 ICp0YXNrOwogCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCXN0cnVjdCBkbWFfZmVuY2VfY2Ig ZmVuY2VfY2I7CisJdTY0ICAgIHBvaW50OwogfTsKIAogc3RhdGljIHZvaWQgc3luY29ial93YWl0 X3N5bmNvYmpfZnVuYyhzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCkBAIC0xMjgsNiArMTI5 LDkgQEAgRVhQT1JUX1NZTUJPTChkcm1fc3luY29ial9maW5kKTsKIHN0YXRpYyB2b2lkIGRybV9z eW5jb2JqX2ZlbmNlX2FkZF93YWl0KHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iaiwKIAkJCQkg ICAgICAgc3RydWN0IHN5bmNvYmpfd2FpdF9lbnRyeSAqd2FpdCkKIHsKKwlzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZTsKKwlpbnQgcmV0OworCiAJaWYgKHdhaXQtPmZlbmNlKQogCQlyZXR1cm47CiAK QEAgLTEzNiwxMSArMTQwLDE0IEBAIHN0YXRpYyB2b2lkIGRybV9zeW5jb2JqX2ZlbmNlX2FkZF93 YWl0KHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iaiwKIAkgKiBoYXZlIHRoZSBsb2NrLCB0cnkg b25lIG1vcmUgdGltZSBqdXN0IHRvIGJlIHN1cmUgd2UgZG9uJ3QgYWRkIGEKIAkgKiBjYWxsYmFj ayB3aGVuIGEgZmVuY2UgaGFzIGFscmVhZHkgYmVlbiBzZXQuCiAJICovCi0JaWYgKHN5bmNvYmot PmZlbmNlKQotCQl3YWl0LT5mZW5jZSA9IGRtYV9mZW5jZV9nZXQoCi0JCQlyY3VfZGVyZWZlcmVu Y2VfcHJvdGVjdGVkKHN5bmNvYmotPmZlbmNlLCAxKSk7Ci0JZWxzZQorCWZlbmNlID0gZG1hX2Zl bmNlX2dldChyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHN5bmNvYmotPmZlbmNlLCAxKSk7CisJ cmV0ID0gZG1hX2ZlbmNlX2NoYWluX2ZpbmRfc2Vxbm8oJmZlbmNlLCB3YWl0LT5wb2ludCk7CisJ aWYgKHJldCkgeworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKIAkJbGlzdF9hZGRfdGFpbCgmd2Fp dC0+bm9kZSwgJnN5bmNvYmotPmNiX2xpc3QpOworCX0gZWxzZSB7CisJCXdhaXQtPmZlbmNlID0g ZmVuY2U7CisJfQogCXNwaW5fdW5sb2NrKCZzeW5jb2JqLT5sb2NrKTsKIH0KIApAQCAtMTgxLDEw ICsxODgsOCBAQCB2b2lkIGRybV9zeW5jb2JqX2FkZF9wb2ludChzdHJ1Y3QgZHJtX3N5bmNvYmog KnN5bmNvYmosCiAJZG1hX2ZlbmNlX2NoYWluX2luaXQoY2hhaW4sIHByZXYsIGZlbmNlLCBwb2lu dCk7CiAJcmN1X2Fzc2lnbl9wb2ludGVyKHN5bmNvYmotPmZlbmNlLCAmY2hhaW4tPmJhc2UpOwog Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGN1ciwgdG1wLCAmc3luY29iai0+Y2JfbGlzdCwg bm9kZSkgewotCQlsaXN0X2RlbF9pbml0KCZjdXItPm5vZGUpOworCWxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShjdXIsIHRtcCwgJnN5bmNvYmotPmNiX2xpc3QsIG5vZGUpCiAJCXN5bmNvYmpfd2Fp dF9zeW5jb2JqX2Z1bmMoc3luY29iaiwgY3VyKTsKLQl9CiAJc3Bpbl91bmxvY2soJnN5bmNvYmot PmxvY2spOwogCiAJLyogV2FsayB0aGUgY2hhaW4gb25jZSB0byB0cmlnZ2VyIGdhcmJhZ2UgY29s bGVjdGlvbiAqLwpAQCAtMjE1LDEwICsyMjAsOCBAQCB2b2lkIGRybV9zeW5jb2JqX3JlcGxhY2Vf ZmVuY2Uoc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqLAogCXJjdV9hc3NpZ25fcG9pbnRlcihz eW5jb2JqLT5mZW5jZSwgZmVuY2UpOwogCiAJaWYgKGZlbmNlICE9IG9sZF9mZW5jZSkgewotCQls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY3VyLCB0bXAsICZzeW5jb2JqLT5jYl9saXN0LCBub2Rl KSB7Ci0JCQlsaXN0X2RlbF9pbml0KCZjdXItPm5vZGUpOworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5 X3NhZmUoY3VyLCB0bXAsICZzeW5jb2JqLT5jYl9saXN0LCBub2RlKQogCQkJc3luY29ial93YWl0 X3N5bmNvYmpfZnVuYyhzeW5jb2JqLCBjdXIpOwotCQl9CiAJfQogCiAJc3Bpbl91bmxvY2soJnN5 bmNvYmotPmxvY2spOwpAQCAtNjc1LDEzICs2NzgsMjUgQEAgc3RhdGljIHZvaWQgc3luY29ial93 YWl0X2ZlbmNlX2Z1bmMoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCiBzdGF0aWMgdm9pZCBzeW5j b2JqX3dhaXRfc3luY29ial9mdW5jKHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iaiwKIAkJCQkg ICAgICBzdHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5ICp3YWl0KQogeworCXN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlOworCWludCByZXQ7CisKIAkvKiBUaGlzIGhhcHBlbnMgaW5zaWRlIHRoZSBzeW5j b2JqIGxvY2sgKi8KLQl3YWl0LT5mZW5jZSA9IGRtYV9mZW5jZV9nZXQocmN1X2RlcmVmZXJlbmNl X3Byb3RlY3RlZChzeW5jb2JqLT5mZW5jZSwKLQkJCQkJCQkgICAgICBsb2NrZGVwX2lzX2hlbGQo JnN5bmNvYmotPmxvY2spKSk7Ci0Jd2FrZV91cF9wcm9jZXNzKHdhaXQtPnRhc2spOworCWZlbmNl ID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChzeW5jb2JqLT5mZW5jZSwKKwkJCQkJICBsb2Nr ZGVwX2lzX2hlbGQoJnN5bmNvYmotPmxvY2spKTsKKwlkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKKwly ZXQgPSBkbWFfZmVuY2VfY2hhaW5fZmluZF9zZXFubygmZmVuY2UsIHdhaXQtPnBvaW50KTsKKwlp ZiAocmV0KSB7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOworCX0gZWxzZSB7CisJCXdhaXQtPmZl bmNlID0gZmVuY2U7CisJCXdha2VfdXBfcHJvY2Vzcyh3YWl0LT50YXNrKTsKKwkJbGlzdF9kZWxf aW5pdCgmd2FpdC0+bm9kZSk7CisJfQogfQogCiBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNv YmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAorCQkJ CQkJICB2b2lkIF9fdXNlciAqdXNlcl9wb2ludHMsCiAJCQkJCQkgIHVpbnQzMl90IGNvdW50LAog CQkJCQkJICB1aW50MzJfdCBmbGFncywKIAkJCQkJCSAgc2lnbmVkIGxvbmcgdGltZW91dCwKQEAg LTY4OSwxMiArNzA0LDI3IEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93 YWl0X3RpbWVvdXQoc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCiB7CiAJc3RydWN0IHN5 bmNvYmpfd2FpdF9lbnRyeSAqZW50cmllczsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKKwl1 aW50NjRfdCAqcG9pbnRzOwogCXVpbnQzMl90IHNpZ25hbGVkX2NvdW50LCBpOwogCi0JZW50cmll cyA9IGtjYWxsb2MoY291bnQsIHNpemVvZigqZW50cmllcyksIEdGUF9LRVJORUwpOwotCWlmICgh ZW50cmllcykKKwlwb2ludHMgPSBrbWFsbG9jX2FycmF5KGNvdW50LCBzaXplb2YoKnBvaW50cyks IEdGUF9LRVJORUwpOworCWlmIChwb2ludHMgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CiAK KwlpZiAoIXVzZXJfcG9pbnRzKSB7CisJCW1lbXNldChwb2ludHMsIDAsIGNvdW50ICogc2l6ZW9m KHVpbnQ2NF90KSk7CisKKwl9IGVsc2UgaWYgKGNvcHlfZnJvbV91c2VyKHBvaW50cywgdXNlcl9w b2ludHMsCisJCQkJICBzaXplb2YodWludDY0X3QpICogY291bnQpKSB7CisJCXRpbWVvdXQgPSAt RUZBVUxUOworCQlnb3RvIGVycl9mcmVlX3BvaW50czsKKwl9CisKKwllbnRyaWVzID0ga2NhbGxv Yyhjb3VudCwgc2l6ZW9mKCplbnRyaWVzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFlbnRyaWVzKSB7 CisJCXRpbWVvdXQgPSAtRU5PTUVNOworCQlnb3RvIGVycl9mcmVlX3BvaW50czsKKwl9CiAJLyog V2FsayB0aGUgbGlzdCBvZiBzeW5jIG9iamVjdHMgYW5kIGluaXRpYWxpemUgZW50cmllcy4gIFdl IGRvCiAJICogdGhpcyB1cC1mcm9udCBzbyB0aGF0IHdlIGNhbiBwcm9wZXJseSByZXR1cm4gLUVJ TlZBTCBpZiB0aGVyZSBpcwogCSAqIGEgc3luY29iaiB3aXRoIGEgbWlzc2luZyBmZW5jZSBhbmQg dGhlbiBuZXZlciBoYXZlIHRoZSBjaGFuY2Ugb2YKQEAgLTcwMiw5ICs3MzIsMTUgQEAgc3RhdGlj IHNpZ25lZCBsb25nIGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzdHJ1Y3QgZHJtX3N5 bmNvYmogKipzeW5jb2JqcywKIAkgKi8KIAlzaWduYWxlZF9jb3VudCA9IDA7CiAJZm9yIChpID0g MDsgaSA8IGNvdW50OyArK2kpIHsKKwkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CisJCWludCBy ZXQ7CisKIAkJZW50cmllc1tpXS50YXNrID0gY3VycmVudDsKLQkJZW50cmllc1tpXS5mZW5jZSA9 IGRybV9zeW5jb2JqX2ZlbmNlX2dldChzeW5jb2Jqc1tpXSk7Ci0JCWlmICghZW50cmllc1tpXS5m ZW5jZSkgeworCQllbnRyaWVzW2ldLnBvaW50ID0gcG9pbnRzW2ldOworCQlmZW5jZSA9IGRybV9z eW5jb2JqX2ZlbmNlX2dldChzeW5jb2Jqc1tpXSk7CisJCXJldCA9IGRtYV9mZW5jZV9jaGFpbl9m aW5kX3NlcW5vKCZmZW5jZSwgcG9pbnRzW2ldKTsKKwkJaWYgKHJldCkgeworCQkJZG1hX2ZlbmNl X3B1dChmZW5jZSk7CiAJCQlpZiAoZmxhZ3MgJiBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRf Rk9SX1NVQk1JVCkgewogCQkJCWNvbnRpbnVlOwogCQkJfSBlbHNlIHsKQEAgLTcxMiw4ICs3NDgs MTAgQEAgc3RhdGljIHNpZ25lZCBsb25nIGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChz dHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5jb2JqcywKIAkJCQlnb3RvIGNsZWFudXBfZW50cmllczsK IAkJCX0KIAkJfQorCQllbnRyaWVzW2ldLmZlbmNlID0gZmVuY2U7CiAKLQkJaWYgKGRtYV9mZW5j ZV9pc19zaWduYWxlZChlbnRyaWVzW2ldLmZlbmNlKSkgeworCQlpZiAoKGZsYWdzICYgRFJNX1NZ TkNPQkpfV0FJVF9GTEFHU19XQUlUX0FWQUlMQUJMRSkgfHwKKwkJICAgIGRtYV9mZW5jZV9pc19z aWduYWxlZChlbnRyaWVzW2ldLmZlbmNlKSkgewogCQkJaWYgKHNpZ25hbGVkX2NvdW50ID09IDAg JiYgaWR4KQogCQkJCSppZHggPSBpOwogCQkJc2lnbmFsZWRfY291bnQrKzsKQEAgLTc0Niw3ICs3 ODQsOCBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0 KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAogCQkJaWYgKCFmZW5jZSkKIAkJCQljb250 aW51ZTsKIAotCQkJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkgfHwKKwkJCWlmICgo ZmxhZ3MgJiBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfQVZBSUxBQkxFKSB8fAorCQkJICAg IGRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkgfHwKIAkJCSAgICAoIWVudHJpZXNbaV0uZmVu Y2VfY2IuZnVuYyAmJgogCQkJICAgICBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlLAogCQkJ CQkJICAgICZlbnRyaWVzW2ldLmZlbmNlX2NiLApAQCAtNzkxLDYgKzgzMCw5IEBAIHN0YXRpYyBz aWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3RydWN0IGRybV9zeW5j b2JqICoqc3luY29ianMsCiAJfQogCWtmcmVlKGVudHJpZXMpOwogCitlcnJfZnJlZV9wb2ludHM6 CisJa2ZyZWUocG9pbnRzKTsKKwogCXJldHVybiB0aW1lb3V0OwogfQogCkBAIC04MjksMTkgKzg3 MSwzMyBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXMoaW50 NjRfdCB0aW1lb3V0X25zZWMpCiBzdGF0aWMgaW50IGRybV9zeW5jb2JqX2FycmF5X3dhaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRl LAogCQkJCSAgc3RydWN0IGRybV9zeW5jb2JqX3dhaXQgKndhaXQsCi0JCQkJICBzdHJ1Y3QgZHJt X3N5bmNvYmogKipzeW5jb2JqcykKKwkJCQkgIHN0cnVjdCBkcm1fc3luY29ial90aW1lbGluZV93 YWl0ICp0aW1lbGluZV93YWl0LAorCQkJCSAgc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMs IGJvb2wgdGltZWxpbmUpCiB7Ci0Jc2lnbmVkIGxvbmcgdGltZW91dCA9IGRybV90aW1lb3V0X2Fi c190b19qaWZmaWVzKHdhaXQtPnRpbWVvdXRfbnNlYyk7CisJc2lnbmVkIGxvbmcgdGltZW91dCA9 IDA7CiAJdWludDMyX3QgZmlyc3QgPSB+MDsKIAotCXRpbWVvdXQgPSBkcm1fc3luY29ial9hcnJh eV93YWl0X3RpbWVvdXQoc3luY29ianMsCi0JCQkJCQkgd2FpdC0+Y291bnRfaGFuZGxlcywKLQkJ CQkJCSB3YWl0LT5mbGFncywKLQkJCQkJCSB0aW1lb3V0LCAmZmlyc3QpOwotCWlmICh0aW1lb3V0 IDwgMCkKLQkJcmV0dXJuIHRpbWVvdXQ7Ci0KLQl3YWl0LT5maXJzdF9zaWduYWxlZCA9IGZpcnN0 OworCWlmICghdGltZWxpbmUpIHsKKwkJdGltZW91dCA9IGRybV90aW1lb3V0X2Fic190b19qaWZm aWVzKHdhaXQtPnRpbWVvdXRfbnNlYyk7CisJCXRpbWVvdXQgPSBkcm1fc3luY29ial9hcnJheV93 YWl0X3RpbWVvdXQoc3luY29ianMsCisJCQkJCQkJIE5VTEwsCisJCQkJCQkJIHdhaXQtPmNvdW50 X2hhbmRsZXMsCisJCQkJCQkJIHdhaXQtPmZsYWdzLAorCQkJCQkJCSB0aW1lb3V0LCAmZmlyc3Qp OworCQlpZiAodGltZW91dCA8IDApCisJCQlyZXR1cm4gdGltZW91dDsKKwkJd2FpdC0+Zmlyc3Rf c2lnbmFsZWQgPSBmaXJzdDsKKwl9IGVsc2UgeworCQl0aW1lb3V0ID0gZHJtX3RpbWVvdXRfYWJz X3RvX2ppZmZpZXModGltZWxpbmVfd2FpdC0+dGltZW91dF9uc2VjKTsKKwkJdGltZW91dCA9IGRy bV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzeW5jb2JqcywKKwkJCQkJCQkgdTY0X3RvX3Vz ZXJfcHRyKHRpbWVsaW5lX3dhaXQtPnBvaW50cyksCisJCQkJCQkJIHRpbWVsaW5lX3dhaXQtPmNv dW50X2hhbmRsZXMsCisJCQkJCQkJIHRpbWVsaW5lX3dhaXQtPmZsYWdzLAorCQkJCQkJCSB0aW1l b3V0LCAmZmlyc3QpOworCQlpZiAodGltZW91dCA8IDApCisJCQlyZXR1cm4gdGltZW91dDsKKwkJ dGltZWxpbmVfd2FpdC0+Zmlyc3Rfc2lnbmFsZWQgPSBmaXJzdDsKKwl9CiAJcmV0dXJuIDA7CiB9 CiAKQEAgLTkyNywxMyArOTgzLDQ4IEBAIGRybV9zeW5jb2JqX3dhaXRfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJcmV0dXJuIHJldDsKIAogCXJldCA9IGRybV9z eW5jb2JqX2FycmF5X3dhaXQoZGV2LCBmaWxlX3ByaXZhdGUsCi0JCQkJICAgICBhcmdzLCBzeW5j b2Jqcyk7CisJCQkJICAgICBhcmdzLCBOVUxMLCBzeW5jb2JqcywgZmFsc2UpOworCisJZHJtX3N5 bmNvYmpfYXJyYXlfZnJlZShzeW5jb2JqcywgYXJncy0+Y291bnRfaGFuZGxlcyk7CisKKwlyZXR1 cm4gcmV0OworfQorCitpbnQKK2RybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXRfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdmF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdCAqYXJncyA9IGRh dGE7CisJc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianM7CisJaW50IHJldCA9IDA7CisKKwlp ZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSikpCisJCXJldHVy biAtRU5PREVWOworCisJaWYgKGFyZ3MtPmZsYWdzICYgfihEUk1fU1lOQ09CSl9XQUlUX0ZMQUdT X1dBSVRfQUxMIHwKKwkJCSAgICBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1J VCB8CisJCQkgICAgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FWQUlMQUJMRSkpCisJCXJl dHVybiAtRUlOVkFMOworCisJaWYgKGFyZ3MtPmNvdW50X2hhbmRsZXMgPT0gMCkKKwkJcmV0dXJu IC1FSU5WQUw7CisKKwlyZXQgPSBkcm1fc3luY29ial9hcnJheV9maW5kKGZpbGVfcHJpdmF0ZSwK KwkJCQkgICAgIHU2NF90b191c2VyX3B0cihhcmdzLT5oYW5kbGVzKSwKKwkJCQkgICAgIGFyZ3Mt PmNvdW50X2hhbmRsZXMsCisJCQkJICAgICAmc3luY29ianMpOworCWlmIChyZXQgPCAwKQorCQly ZXR1cm4gcmV0OworCisJcmV0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdChkZXYsIGZpbGVfcHJp dmF0ZSwKKwkJCQkgICAgIE5VTEwsIGFyZ3MsIHN5bmNvYmpzLCB0cnVlKTsKIAogCWRybV9zeW5j b2JqX2FycmF5X2ZyZWUoc3luY29ianMsIGFyZ3MtPmNvdW50X2hhbmRsZXMpOwogCiAJcmV0dXJu IHJldDsKIH0KIAorCiBpbnQKIGRybV9zeW5jb2JqX3Jlc2V0X2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSkK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2Ry bS5oCmluZGV4IGNlYmRiMjU0MWViNy4uNjI3MDMyZGYyM2U2IDEwMDY0NAotLS0gYS9pbmNsdWRl L3VhcGkvZHJtL2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKQEAgLTczOCw2ICs3 MzgsNyBAQCBzdHJ1Y3QgZHJtX3N5bmNvYmpfaGFuZGxlIHsKIAogI2RlZmluZSBEUk1fU1lOQ09C Sl9XQUlUX0ZMQUdTX1dBSVRfQUxMICgxIDw8IDApCiAjZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRf RkxBR1NfV0FJVF9GT1JfU1VCTUlUICgxIDw8IDEpCisjZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRf RkxBR1NfV0FJVF9BVkFJTEFCTEUgKDEgPDwgMikKIHN0cnVjdCBkcm1fc3luY29ial93YWl0IHsK IAlfX3U2NCBoYW5kbGVzOwogCS8qIGFic29sdXRlIHRpbWVvdXQgKi8KQEAgLTc0OCw2ICs3NDks MTkgQEAgc3RydWN0IGRybV9zeW5jb2JqX3dhaXQgewogCV9fdTMyIHBhZDsKIH07CiAKK3N0cnVj dCBkcm1fc3luY29ial90aW1lbGluZV93YWl0IHsKKwlfX3U2NCBoYW5kbGVzOworCS8qIHdhaXQg b24gc3BlY2lmaWMgdGltZWxpbmUgcG9pbnQgZm9yIGV2ZXJ5IGhhbmRsZXMqLworCV9fdTY0IHBv aW50czsKKwkvKiBhYnNvbHV0ZSB0aW1lb3V0ICovCisJX19zNjQgdGltZW91dF9uc2VjOworCV9f dTMyIGNvdW50X2hhbmRsZXM7CisJX191MzIgZmxhZ3M7CisJX191MzIgZmlyc3Rfc2lnbmFsZWQ7 IC8qIG9ubHkgdmFsaWQgd2hlbiBub3Qgd2FpdGluZyBhbGwgKi8KKwlfX3UzMiBwYWQ7Cit9Owor CisKIHN0cnVjdCBkcm1fc3luY29ial9hcnJheSB7CiAJX191NjQgaGFuZGxlczsKIAlfX3UzMiBj b3VudF9oYW5kbGVzOwpAQCAtOTEwLDYgKzkyNCw3IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBE Uk1fSU9DVExfTU9ERV9HRVRfTEVBU0UJRFJNX0lPV1IoMHhDOCwgc3RydWN0IGRybV9tb2RlX2dl dF9sZWFzZSkKICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfUkVWT0tFX0xFQVNFCURSTV9JT1dSKDB4 QzksIHN0cnVjdCBkcm1fbW9kZV9yZXZva2VfbGVhc2UpCiAKKyNkZWZpbmUgRFJNX0lPQ1RMX1NZ TkNPQkpfVElNRUxJTkVfV0FJVAlEUk1fSU9XUigweENBLCBzdHJ1Y3QgZHJtX3N5bmNvYmpfdGlt ZWxpbmVfd2FpdCkKIC8qKgogICogRGV2aWNlIHNwZWNpZmljIGlvY3RscyBzaG91bGQgb25seSBi ZSBpbiB0aGVpciByZXNwZWN0aXZlIGhlYWRlcnMKICAqIFRoZSBkZXZpY2Ugc3BlY2lmaWMgaW9j dGwgcmFuZ2UgaXMgZnJvbSAweDQwIHRvIDB4OWYuCi0tIAoyLjE0LjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=