From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: [PATCH 2/2] drm/i915: add syncobj timeline support Date: Thu, 23 May 2019 12:46:20 +0100 Message-ID: <20190523114620.19335-3-lionel.g.landwerlin@intel.com> References: <20190523114620.19335-1-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 25AA289E01 for ; Thu, 23 May 2019 11:46:26 +0000 (UTC) In-Reply-To: <20190523114620.19335-1-lionel.g.landwerlin@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SW50cm9kdWNlcyBhIG5ldyBwYXJhbWV0ZXJzIHRvIGV4ZWNidWYgc28gdGhhdCB3ZSBjYW4gc3Bl Y2lmeSBzeW5jb2JqCmhhbmRsZXMgYXMgd2VsbCBhcyB0aW1lbGluZSBwb2ludHMuCgpUaGlzIGlz IG5lZWRlZCBmb3IgdGhlIHN1Ym1pc3Npb24gc2lkZSBvZiB0aGUgVnVsa2FuIHRpbWVsaW5lCnNl bWFwaG9yZSAoVktfS0hSX3RpbWVsaW5lX3NlbWFwaG9yZSBleHRlbnNpb24pLgoKU2lnbmVkLW9m Zi1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICAgICB8ICAgNCArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHwgMTkwICsrKysrKysr KysrKysrKystLS0tLQogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgICAg IHwgIDM4ICsrKystCiAzIGZpbGVzIGNoYW5nZWQsIDE4MiBpbnNlcnRpb25zKCspLCA1MCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCA4M2QyZWI5ZTc0Y2IuLmQ2MmRk ZjJmYTViNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC00NDQsNiArNDQ0LDcgQEAgc3Rh dGljIGludCBpOTE1X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCiAJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0JBVENIX0ZJUlNUOgogCWNhc2UgSTkx NV9QQVJBTV9IQVNfRVhFQ19GRU5DRV9BUlJBWToKIAljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNf U1VCTUlUX0ZFTkNFOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19GRU5DRV9BUlJBWTI6CiAJ CS8qIEZvciB0aGUgdGltZSBiZWluZyBhbGwgb2YgdGhlc2UgYXJlIGFsd2F5cyB0cnVlOwogCQkg KiBpZiBzb21lIHN1cHBvcnRlZCBoYXJkd2FyZSBkb2VzIG5vdCBoYXZlIG9uZSBvZiB0aGVzZQog CQkgKiBmZWF0dXJlcyB0aGlzIHZhbHVlIG5lZWRzIHRvIGJlIHByb3ZpZGVkIGZyb20KQEAgLTMx NzUsNyArMzE3Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBkcml2ZXIgPSB7CiAJICov CiAJLmRyaXZlcl9mZWF0dXJlcyA9CiAJICAgIERSSVZFUl9HRU0gfCBEUklWRVJfUFJJTUUgfAot CSAgICBEUklWRVJfUkVOREVSIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDIHwgRFJJ VkVSX1NZTkNPQkosCisJICAgIERSSVZFUl9SRU5ERVIgfCBEUklWRVJfTU9ERVNFVCB8IERSSVZF Ul9BVE9NSUMgfCBEUklWRVJfU1lOQ09CSiB8CisJICAgIERSSVZFUl9TWU5DT0JKX1RJTUVMSU5F LAogCS5yZWxlYXNlID0gaTkxNV9kcml2ZXJfcmVsZWFzZSwKIAkub3BlbiA9IGk5MTVfZHJpdmVy X29wZW4sCiAJLmxhc3RjbG9zZSA9IGk5MTVfZHJpdmVyX2xhc3RjbG9zZSwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCA4Yjg1YzkxYzNlYTQuLmY2ODE1 MzNjMDg1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1 ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpA QCAtMjI5LDYgKzIyOSwxMyBAQCBlbnVtIHsKICAqIHRoZSBiYXRjaGJ1ZmZlciBpbiB0cnVzdGVk IG1vZGUsIG90aGVyd2lzZSB0aGUgaW9jdGwgaXMgcmVqZWN0ZWQuCiAgKi8KIAorc3RydWN0IGk5 MTVfZHJtX2RtYV9mZW5jZXMgeworCXN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iajsgLyogVXNl IHdpdGggcHRyX21hc2tfYml0cygpICovCisJc3RydWN0IGRtYV9mZW5jZSAqZG1hX2ZlbmNlOwor CXU2NCB2YWx1ZTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlX2NoYWluICpjaGFpbl9mZW5jZTsKK307CisK IHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 OyAvKiogaTkxNSBiYWNrcG9pbnRlciAqLwogCXN0cnVjdCBkcm1fZmlsZSAqZmlsZTsgLyoqIHBl ci1maWxlIGxvb2t1cCB0YWJsZXMgYW5kIGxpbWl0cyAqLwpAQCAtMTkzMiw3ICsxOTM5LDcgQEAg c3RhdGljIGJvb2wgaTkxNV9nZW1fY2hlY2tfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X2V4ZWNidWZmZXIyICpleGVjKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBLZXJuZWwgY2xpcHBp bmcgd2FzIGEgRFJJMSBtaXNmZWF0dXJlICovCi0JaWYgKCEoZXhlYy0+ZmxhZ3MgJiBJOTE1X0VY RUNfRkVOQ0VfQVJSQVkpKSB7CisJaWYgKCEoZXhlYy0+ZmxhZ3MgJiAoSTkxNV9FWEVDX0ZFTkNF X0FSUkFZIHwgSTkxNV9FWEVDX0ZFTkNFX0FSUkFZMikpKSB7CiAJCWlmIChleGVjLT5udW1fY2xp cHJlY3RzIHx8IGV4ZWMtPmNsaXByZWN0c19wdHIpCiAJCQlyZXR1cm4gZmFsc2U7CiAJfQpAQCAt MjE4MiwyNSArMjE4OSwzMCBAQCBlYl9zZWxlY3RfZW5naW5lKHN0cnVjdCBpOTE1X2V4ZWNidWZm ZXIgKmViLAogfQogCiBzdGF0aWMgdm9pZAotX19mcmVlX2ZlbmNlX2FycmF5KHN0cnVjdCBkcm1f c3luY29iaiAqKmZlbmNlcywgdW5zaWduZWQgaW50IG4pCitfX2ZyZWVfZmVuY2VfYXJyYXkoc3Ry dWN0IGk5MTVfZHJtX2RtYV9mZW5jZXMgKmZlbmNlcywgdW5zaWduZWQgaW50IG4pCiB7Ci0Jd2hp bGUgKG4tLSkKLQkJZHJtX3N5bmNvYmpfcHV0KHB0cl9tYXNrX2JpdHMoZmVuY2VzW25dLCAyKSk7 CisJd2hpbGUgKG4tLSkgeworCQlkcm1fc3luY29ial9wdXQocHRyX21hc2tfYml0cyhmZW5jZXNb bl0uc3luY29iaiwgMikpOworCQlkbWFfZmVuY2VfcHV0KGZlbmNlc1tuXS5kbWFfZmVuY2UpOwor CQlrZnJlZShmZW5jZXNbbl0uY2hhaW5fZmVuY2UpOworCX0KIAlrdmZyZWUoZmVuY2VzKTsKIH0K IAotc3RhdGljIHN0cnVjdCBkcm1fc3luY29iaiAqKgorc3RhdGljIHN0cnVjdCBpOTE1X2RybV9k bWFfZmVuY2VzICoKIGdldF9mZW5jZV9hcnJheShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZm ZXIyICphcmdzLAogCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7CiAJY29uc3QgdW5zaWduZWQg bG9uZyBuZmVuY2VzID0gYXJncy0+bnVtX2NsaXByZWN0czsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X2V4ZWNfZmVuY2UgX191c2VyICp1c2VyOwotCXN0cnVjdCBkcm1fc3luY29iaiAqKmZlbmNlczsK KwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfZmVuY2UyIF9fdXNlciAqdXNlcjI7CisJc3RydWN0 IGk5MTVfZHJtX2RtYV9mZW5jZXMgKmZlbmNlczsKIAl1bnNpZ25lZCBsb25nIG47CiAJaW50IGVy cjsKIAotCWlmICghKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0ZFTkNFX0FSUkFZKSkKLQkJcmV0 dXJuIE5VTEw7CisJaWYgKChhcmdzLT5mbGFncyAmIChJOTE1X0VYRUNfRkVOQ0VfQVJSQVkgfCBJ OTE1X0VYRUNfRkVOQ0VfQVJSQVkyKSkgPT0KKwkgICAgKEk5MTVfRVhFQ19GRU5DRV9BUlJBWSB8 IEk5MTVfRVhFQ19GRU5DRV9BUlJBWTIpKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAog CS8qIENoZWNrIG11bHRpcGxpY2F0aW9uIG92ZXJmbG93IGZvciBhY2Nlc3Nfb2soKSBhbmQga3Zt YWxsb2NfYXJyYXkoKSAqLwogCUJVSUxEX0JVR19PTihzaXplb2Yoc2l6ZV90KSA+IHNpemVvZih1 bnNpZ25lZCBsb25nKSk7CkBAIC0yMjA5LDQwICsyMjIxLDEyMSBAQCBnZXRfZmVuY2VfYXJyYXko c3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKIAkJCSAgICBTSVpFX01BWCAv IHNpemVvZigqZmVuY2VzKSkpCiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCi0JdXNlciA9 IHU2NF90b191c2VyX3B0cihhcmdzLT5jbGlwcmVjdHNfcHRyKTsKLQlpZiAoIWFjY2Vzc19vayh1 c2VyLCBuZmVuY2VzICogc2l6ZW9mKCp1c2VyKSkpCi0JCXJldHVybiBFUlJfUFRSKC1FRkFVTFQp OworCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19GRU5DRV9BUlJBWTIpIHsKKwkJdXNlcjIg PSB1NjRfdG9fdXNlcl9wdHIoYXJncy0+Y2xpcHJlY3RzX3B0cik7CisJCWlmICghYWNjZXNzX29r KHVzZXIsIG5mZW5jZXMgKiBzaXplb2YoKnVzZXIyKSkpCisJCQlyZXR1cm4gRVJSX1BUUigtRUZB VUxUKTsKKwl9IGVsc2UgeworCQl1c2VyID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPmNsaXByZWN0 c19wdHIpOworCQlpZiAoIWFjY2Vzc19vayh1c2VyLCBuZmVuY2VzICogc2l6ZW9mKCp1c2VyKSkp CisJCQlyZXR1cm4gRVJSX1BUUigtRUZBVUxUKTsKKwl9CiAKIAlmZW5jZXMgPSBrdm1hbGxvY19h cnJheShuZmVuY2VzLCBzaXplb2YoKmZlbmNlcyksCiAJCQkJX19HRlBfTk9XQVJOIHwgR0ZQX0tF Uk5FTCk7CiAJaWYgKCFmZW5jZXMpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JZm9y IChuID0gMDsgbiA8IG5mZW5jZXM7IG4rKykgewotCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNf ZmVuY2UgZmVuY2U7Ci0JCXN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iajsKKwlCVUlMRF9CVUdf T04ofihBUkNIX0tNQUxMT0NfTUlOQUxJR04gLSAxKSAmCisJCSAgICAgfl9fSTkxNV9FWEVDX0ZF TkNFX1VOS05PV05fRkxBR1MpOwogCi0JCWlmIChfX2NvcHlfZnJvbV91c2VyKCZmZW5jZSwgdXNl cisrLCBzaXplb2YoZmVuY2UpKSkgewotCQkJZXJyID0gLUVGQVVMVDsKLQkJCWdvdG8gZXJyOwot CQl9CisJaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0ZFTkNFX0FSUkFZMikgeworCQlmb3Ig KG4gPSAwOyBuIDwgbmZlbmNlczsgbisrKSB7CisJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNf ZmVuY2UyIHVzZXJfZmVuY2U7CisJCQlzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmo7CisJCQlz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IE5VTEw7CiAKLQkJaWYgKGZlbmNlLmZsYWdzICYgX19J OTE1X0VYRUNfRkVOQ0VfVU5LTk9XTl9GTEFHUykgewotCQkJZXJyID0gLUVJTlZBTDsKLQkJCWdv dG8gZXJyOwotCQl9CisJCQlpZiAoX19jb3B5X2Zyb21fdXNlcigmdXNlcl9mZW5jZSwgdXNlcjIr Kywgc2l6ZW9mKHVzZXJfZmVuY2UpKSkgeworCQkJCWVyciA9IC1FRkFVTFQ7CisJCQkJZ290byBl cnI7CisJCQl9CiAKLQkJc3luY29iaiA9IGRybV9zeW5jb2JqX2ZpbmQoZmlsZSwgZmVuY2UuaGFu ZGxlKTsKLQkJaWYgKCFzeW5jb2JqKSB7Ci0JCQlEUk1fREVCVUcoIkludmFsaWQgc3luY29iaiBo YW5kbGUgcHJvdmlkZWRcbiIpOwotCQkJZXJyID0gLUVOT0VOVDsKLQkJCWdvdG8gZXJyOworCQkJ aWYgKHVzZXJfZmVuY2UuZmxhZ3MgJiBfX0k5MTVfRVhFQ19GRU5DRV9VTktOT1dOX0ZMQUdTKSB7 CisJCQkJZXJyID0gLUVJTlZBTDsKKwkJCQlnb3RvIGVycjsKKwkJCX0KKworCQkJaWYgKHVzZXJf ZmVuY2UuZmxhZ3MgJiBJOTE1X0VYRUNfRkVOQ0VfV0FJVCkgeworCQkJCWVyciA9IGRybV9zeW5j b2JqX2ZpbmRfZmVuY2UoCisJCQkJCWZpbGUsIHVzZXJfZmVuY2UuaGFuZGxlLCB1c2VyX2ZlbmNl LnZhbHVlLAorCQkJCQlEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVCwKKwkJ CQkJJnN5bmNvYmosICZmZW5jZSk7CisJCQkJaWYgKGVycikgeworCQkJCQlEUk1fREVCVUcoIklu dmFsaWQgc3luY29iaiBoYW5kbGUgb3IgdGltZWxpbmUgdmFsdWUgcHJvdmlkZWRcbiIpOworCQkJ CQlnb3RvIGVycjsKKwkJCQl9CisJCQl9IGVsc2UgeworCQkJCXN5bmNvYmogPSBkcm1fc3luY29i al9maW5kKAorCQkJCQlmaWxlLCB1c2VyX2ZlbmNlLmhhbmRsZSk7CisJCQkJaWYgKCFzeW5jb2Jq KSB7CisJCQkJCWVyciA9IC1FTk9FTlQ7CisJCQkJCURSTV9ERUJVRygiSW52YWxpZCBzeW5jb2Jq IGhhbmRsZSBwcm92aWRlZFxuIik7CisJCQkJCWdvdG8gZXJyOworCQkJCX0KKwkJCX0KKworCQkJ aWYgKHVzZXJfZmVuY2UudmFsdWUgIT0gMCAmJiB1c2VyX2ZlbmNlLmZsYWdzICYgSTkxNV9FWEVD X0ZFTkNFX1NJR05BTCkgeworCQkJCWZlbmNlc1tuXS5jaGFpbl9mZW5jZSA9CisJCQkJCWttYWxs b2Moc2l6ZW9mKCpmZW5jZXNbbl0uY2hhaW5fZmVuY2UpLAorCQkJCQkJR0ZQX0tFUk5FTCk7CisJ CQkJaWYgKCFmZW5jZXNbbl0uY2hhaW5fZmVuY2UpIHsKKwkJCQkJZG1hX2ZlbmNlX3B1dChmZW5j ZSk7CisJCQkJCWRybV9zeW5jb2JqX3B1dChzeW5jb2JqKTsKKwkJCQkJZXJyID0gLUVOT01FTTsK KwkJCQkJRFJNX0RFQlVHKCJVbmFibGUgdG8gYWxsb2MgY2hhaW5fZmVuY2VcbiIpOworCQkJCQln b3RvIGVycjsKKwkJCQl9CisJCQl9IGVsc2UgeworCQkJCWZlbmNlc1tuXS5jaGFpbl9mZW5jZSA9 IE5VTEw7CisJCQl9CisKKwkJCWZlbmNlc1tuXS5zeW5jb2JqID0gcHRyX3BhY2tfYml0cyhzeW5j b2JqLCB1c2VyX2ZlbmNlLmZsYWdzLCAyKTsKKwkJCWZlbmNlc1tuXS5kbWFfZmVuY2UgPSBmZW5j ZTsKKwkJCWZlbmNlc1tuXS52YWx1ZSA9IHVzZXJfZmVuY2UudmFsdWU7CiAJCX0KKwl9IGVsc2Ug eworCQlmb3IgKG4gPSAwOyBuIDwgbmZlbmNlczsgbisrKSB7CisJCQlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX2V4ZWNfZmVuY2UgdXNlcl9mZW5jZTsKKwkJCXN0cnVjdCBkcm1fc3luY29iaiAqc3luY29i ajsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOworCisJCQlpZiAoX19jb3B5X2Zyb21fdXNl cigmdXNlcl9mZW5jZSwgdXNlcisrLCBzaXplb2YodXNlcl9mZW5jZSkpKSB7CisJCQkJZXJyID0g LUVGQVVMVDsKKwkJCQlnb3RvIGVycjsKKwkJCX0KKworCQkJaWYgKHVzZXJfZmVuY2UuZmxhZ3Mg JiBfX0k5MTVfRVhFQ19GRU5DRV9VTktOT1dOX0ZMQUdTKSB7CisJCQkJZXJyID0gLUVJTlZBTDsK KwkJCQlnb3RvIGVycjsKKwkJCX0KIAotCQlCVUlMRF9CVUdfT04ofihBUkNIX0tNQUxMT0NfTUlO QUxJR04gLSAxKSAmCi0JCQkgICAgIH5fX0k5MTVfRVhFQ19GRU5DRV9VTktOT1dOX0ZMQUdTKTsK KwkJCS8qIElmIHdlJ3JlIGp1c3Qgc2lnbmFsaW5nIGEgc3luY29iaiwgbm8gbmVlZCB0byBnZXQK KwkJCSAqIHRoZSBmZW5jZS4KKwkJCSAqLworCQkJaWYgKHVzZXJfZmVuY2UuZmxhZ3MgJiBJOTE1 X0VYRUNfRkVOQ0VfV0FJVCkgeworCQkJCWVyciA9IGRybV9zeW5jb2JqX2ZpbmRfZmVuY2UoCisJ CQkJCWZpbGUsIHVzZXJfZmVuY2UuaGFuZGxlLCAwLCAwLCAmc3luY29iaiwgJmZlbmNlKTsKKwkJ CQlpZiAoZXJyKSB7CisJCQkJCURSTV9ERUJVRygiSW52YWxpZCBzeW5jb2JqIGhhbmRsZSBwcm92 aWRlZFxuIik7CisJCQkJCWdvdG8gZXJyOworCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJc3luY29i aiA9IGRybV9zeW5jb2JqX2ZpbmQoZmlsZSwgdXNlcl9mZW5jZS5oYW5kbGUpOworCQkJCWlmICgh c3luY29iaikgeworCQkJCQlEUk1fREVCVUcoIkludmFsaWQgc3luY29iaiBoYW5kbGUgcHJvdmlk ZWRcbiIpOworCQkJCQlnb3RvIGVycjsKKwkJCQl9CisJCQkJZmVuY2UgPSBOVUxMOworCQkJfQor CisJCQlCVUlMRF9CVUdfT04ofihBUkNIX0tNQUxMT0NfTUlOQUxJR04gLSAxKSAmCisJCQkJICAg ICB+X19JOTE1X0VYRUNfRkVOQ0VfVU5LTk9XTl9GTEFHUyk7CiAKLQkJZmVuY2VzW25dID0gcHRy X3BhY2tfYml0cyhzeW5jb2JqLCBmZW5jZS5mbGFncywgMik7CisJCQlmZW5jZXNbbl0uc3luY29i aiA9IHB0cl9wYWNrX2JpdHMoc3luY29iaiwgdXNlcl9mZW5jZS5mbGFncywgMik7CisJCQlmZW5j ZXNbbl0uZG1hX2ZlbmNlID0gZmVuY2U7CisJCQlmZW5jZXNbbl0udmFsdWUgPSAwOworCQkJZmVu Y2VzW25dLmNoYWluX2ZlbmNlID0gTlVMTDsKKwkJfQogCX0KIAogCXJldHVybiBmZW5jZXM7CkBA IC0yMjU0LDcgKzIzNDcsNyBAQCBnZXRfZmVuY2VfYXJyYXkoc3RydWN0IGRybV9pOTE1X2dlbV9l eGVjYnVmZmVyMiAqYXJncywKIAogc3RhdGljIHZvaWQKIHB1dF9mZW5jZV9hcnJheShzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzLAotCQlzdHJ1Y3QgZHJtX3N5bmNvYmogKipm ZW5jZXMpCisJCXN0cnVjdCBpOTE1X2RybV9kbWFfZmVuY2VzICpmZW5jZXMpCiB7CiAJaWYgKGZl bmNlcykKIAkJX19mcmVlX2ZlbmNlX2FycmF5KGZlbmNlcywgYXJncy0+bnVtX2NsaXByZWN0cyk7 CkBAIC0yMjYyLDcgKzIzNTUsNyBAQCBwdXRfZmVuY2VfYXJyYXkoc3RydWN0IGRybV9pOTE1X2dl bV9leGVjYnVmZmVyMiAqYXJncywKIAogc3RhdGljIGludAogYXdhaXRfZmVuY2VfYXJyYXkoc3Ry dWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsCi0JCSAgc3RydWN0IGRybV9zeW5jb2JqICoqZmVuY2Vz KQorCQkgIHN0cnVjdCBpOTE1X2RybV9kbWFfZmVuY2VzICpmZW5jZXMpCiB7CiAJY29uc3QgdW5z aWduZWQgaW50IG5mZW5jZXMgPSBlYi0+YXJncy0+bnVtX2NsaXByZWN0czsKIAl1bnNpZ25lZCBp bnQgbjsKQEAgLTIyNzAsMTkgKzIzNjMsMTQgQEAgYXdhaXRfZmVuY2VfYXJyYXkoc3RydWN0IGk5 MTVfZXhlY2J1ZmZlciAqZWIsCiAKIAlmb3IgKG4gPSAwOyBuIDwgbmZlbmNlczsgbisrKSB7CiAJ CXN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iajsKLQkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7 CiAJCXVuc2lnbmVkIGludCBmbGFnczsKIAotCQlzeW5jb2JqID0gcHRyX3VucGFja19iaXRzKGZl bmNlc1tuXSwgJmZsYWdzLCAyKTsKKwkJc3luY29iaiA9IHB0cl91bnBhY2tfYml0cyhmZW5jZXNb bl0uc3luY29iaiwgJmZsYWdzLCAyKTsKIAkJaWYgKCEoZmxhZ3MgJiBJOTE1X0VYRUNfRkVOQ0Vf V0FJVCkpCiAJCQljb250aW51ZTsKIAotCQlmZW5jZSA9IGRybV9zeW5jb2JqX2ZlbmNlX2dldChz eW5jb2JqKTsKLQkJaWYgKCFmZW5jZSkKLQkJCXJldHVybiAtRUlOVkFMOwotCi0JCWVyciA9IGk5 MTVfcmVxdWVzdF9hd2FpdF9kbWFfZmVuY2UoZWItPnJlcXVlc3QsIGZlbmNlKTsKLQkJZG1hX2Zl bmNlX3B1dChmZW5jZSk7CisJCWVyciA9IGk5MTVfcmVxdWVzdF9hd2FpdF9kbWFfZmVuY2UoZWIt PnJlcXVlc3QsCisJCQkJCQkgICBmZW5jZXNbbl0uZG1hX2ZlbmNlKTsKIAkJaWYgKGVyciA8IDAp CiAJCQlyZXR1cm4gZXJyOwogCX0KQEAgLTIyOTIsNyArMjM4MCw3IEBAIGF3YWl0X2ZlbmNlX2Fy cmF5KHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAogCiBzdGF0aWMgdm9pZAogc2lnbmFsX2Zl bmNlX2FycmF5KHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAotCQkgICBzdHJ1Y3QgZHJtX3N5 bmNvYmogKipmZW5jZXMpCisJCSAgIHN0cnVjdCBpOTE1X2RybV9kbWFfZmVuY2VzICpmZW5jZXMp CiB7CiAJY29uc3QgdW5zaWduZWQgaW50IG5mZW5jZXMgPSBlYi0+YXJncy0+bnVtX2NsaXByZWN0 czsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICogY29uc3QgZmVuY2UgPSAmZWItPnJlcXVlc3QtPmZlbmNl OwpAQCAtMjMwMiwxMSArMjM5MCwyMSBAQCBzaWduYWxfZmVuY2VfYXJyYXkoc3RydWN0IGk5MTVf ZXhlY2J1ZmZlciAqZWIsCiAJCXN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iajsKIAkJdW5zaWdu ZWQgaW50IGZsYWdzOwogCi0JCXN5bmNvYmogPSBwdHJfdW5wYWNrX2JpdHMoZmVuY2VzW25dLCAm ZmxhZ3MsIDIpOworCQlzeW5jb2JqID0gcHRyX3VucGFja19iaXRzKGZlbmNlc1tuXS5zeW5jb2Jq LCAmZmxhZ3MsIDIpOwogCQlpZiAoIShmbGFncyAmIEk5MTVfRVhFQ19GRU5DRV9TSUdOQUwpKQog CQkJY29udGludWU7CiAKLQkJZHJtX3N5bmNvYmpfcmVwbGFjZV9mZW5jZShzeW5jb2JqLCBmZW5j ZSk7CisJCWlmIChmZW5jZXNbbl0uY2hhaW5fZmVuY2UpIHsKKwkJCWRybV9zeW5jb2JqX2FkZF9w b2ludChzeW5jb2JqLCBmZW5jZXNbbl0uY2hhaW5fZmVuY2UsCisJCQkJCSAgICAgIGZlbmNlLCBm ZW5jZXNbbl0udmFsdWUpOworCQkJLyoKKwkJCSAqIFRoZSBjaGFpbidzIG93bmVyc2hpcCBpcyB0 cmFuc2ZlcmVkIHRvIHRoZQorCQkJICogdGltZWxpbmUuCisJCQkgKi8KKwkJCWZlbmNlc1tuXS5j aGFpbl9mZW5jZSA9IE5VTEw7CisJCX0gZWxzZSB7CisJCQlkcm1fc3luY29ial9yZXBsYWNlX2Zl bmNlKHN5bmNvYmosIGZlbmNlKTsKKwkJfQogCX0KIH0KIApAQCAtMjMxNSw3ICsyNDEzLDcgQEAg aTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkgICAgICAg c3RydWN0IGRybV9maWxlICpmaWxlLAogCQkgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVj YnVmZmVyMiAqYXJncywKIAkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3Qy ICpleGVjLAotCQkgICAgICAgc3RydWN0IGRybV9zeW5jb2JqICoqZmVuY2VzKQorCQkgICAgICAg c3RydWN0IGk5MTVfZHJtX2RtYV9mZW5jZXMgKmZlbmNlcykKIHsKIAlzdHJ1Y3QgaTkxNV9leGVj YnVmZmVyIGViOwogCXN0cnVjdCBkbWFfZmVuY2UgKmluX2ZlbmNlID0gTlVMTDsKQEAgLTI3MDUs NyArMjgwMyw3IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXIyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAq YXJncyA9IGRhdGE7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgKmV4ZWMyX2xp c3Q7Ci0Jc3RydWN0IGRybV9zeW5jb2JqICoqZmVuY2VzID0gTlVMTDsKKwlzdHJ1Y3QgaTkxNV9k cm1fZG1hX2ZlbmNlcyAqZmVuY2VzID0gTlVMTDsKIAljb25zdCBzaXplX3QgY291bnQgPSBhcmdz LT5idWZmZXJfY291bnQ7CiAJaW50IGVycjsKIApAQCAtMjczMyw3ICsyODMxLDcgQEAgaTkxNV9n ZW1fZXhlY2J1ZmZlcjJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK IAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQogCi0JaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0ZF TkNFX0FSUkFZKSB7CisJaWYgKGFyZ3MtPmZsYWdzICYgKEk5MTVfRVhFQ19GRU5DRV9BUlJBWSB8 IEk5MTVfRVhFQ19GRU5DRV9BUlJBWTIpKSB7CiAJCWZlbmNlcyA9IGdldF9mZW5jZV9hcnJheShh cmdzLCBmaWxlKTsKIAkJaWYgKElTX0VSUihmZW5jZXMpKSB7CiAJCQlrdmZyZWUoZXhlYzJfbGlz dCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3Vh cGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggMzI4ZDA1ZTc3ZDlmLi5lYWY3Yjg5MzYwZmQgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJt L2k5MTVfZHJtLmgKQEAgLTYxMCw2ICs2MTAsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgZHJtX2k5MTVf aXJxX3dhaXQgewogICogU2VlIEk5MTVfRVhFQ19GRU5DRV9PVVQgYW5kIEk5MTVfRVhFQ19GRU5D RV9TVUJNSVQuCiAgKi8KICNkZWZpbmUgSTkxNV9QQVJBTV9IQVNfRVhFQ19TVUJNSVRfRkVOQ0Ug NTMKKworLyogUXVlcnkgd2hldGhlciBEUk1fSTkxNV9HRU1fRVhFQ0JVRkZFUjIgc3VwcG9ydHMg c3VwcGx5aW5nIGFuIGFycmF5IG9mCisgKiBkcm1faTkxNV9nZW1fZXhlY19mZW5jZTIgc3RydWN0 dXJlcy4gIFNlZSBJOTE1X0VYRUNfRkVOQ0VfQVJSQVkuCisgKi8KKyNkZWZpbmUgSTkxNV9QQVJB TV9IQVNfRVhFQ19GRU5DRV9BUlJBWTIgIDU0CisKIC8qIE11c3QgYmUga2VwdCBjb21wYWN0IC0t IG5vIGhvbGVzIGFuZCB3ZWxsIGRvY3VtZW50ZWQgKi8KIAogdHlwZWRlZiBzdHJ1Y3QgZHJtX2k5 MTVfZ2V0cGFyYW0gewpAQCAtMTAwNiw2ICsxMDEyLDI0IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY19mZW5jZSB7CiAJX191MzIgZmxhZ3M7CiB9OwogCitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4 ZWNfZmVuY2UyIHsKKwkvKioKKwkgKiBVc2VyJ3MgaGFuZGxlIGZvciBhIGRybV9zeW5jb2JqIHRv IHdhaXQgb24gb3Igc2lnbmFsLgorCSAqLworCV9fdTMyIGhhbmRsZTsKKworCS8qKgorCSAqIFNh bWUgZmxhZ3MgYXMgZHJtX2k5MTVfZ2VtX2V4ZWNfZmVuY2UuCisJICovCisJX191MzIgZmxhZ3M7 CisKKwkvKioKKwkgKiBBIHBvaW50IGZvciBhIHRpbWVsaW5lIGRybV9zeW5jb2JqIHRvIHdhaXQg b24gb3Igc2lnbmFsLiBNdXN0IGJlIDAKKwkgKiBmb3IgYSBiaW5hcnkgZHJtX3N5bmNvYmouCisJ ICovCisJX191NjQgdmFsdWU7Cit9OworCiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIy IHsKIAkvKioKIAkgKiBMaXN0IG9mIGdlbV9leGVjX29iamVjdDIgc3RydWN0cwpAQCAtMTAyMiw4 ICsxMDQ2LDEwIEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgewogCV9fdTMyIG51 bV9jbGlwcmVjdHM7CiAJLyoqCiAJICogVGhpcyBpcyBhIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICpj bGlwcmVjdHMgaWYgSTkxNV9FWEVDX0ZFTkNFX0FSUkFZCi0JICogaXMgbm90IHNldC4gIElmIEk5 MTVfRVhFQ19GRU5DRV9BUlJBWSBpcyBzZXQsIHRoZW4gdGhpcyBpcyBhCi0JICogc3RydWN0IGRy bV9pOTE1X2dlbV9leGVjX2ZlbmNlICpmZW5jZXMuCisJICogJiBJOTE1X0VYRUNfRkVOQ0VfQVJS QVkyIGFyZSBub3Qgc2V0LiBJZiBJOTE1X0VYRUNfRkVOQ0VfQVJSQVkgaXMKKwkgKiBzZXQsIHRo ZW4gdGhpcyBpcyBhIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19mZW5jZSAqZmVuY2VzLiBJZgor CSAqIEk5MTVfRVhFQ19GRU5DRV9BUlJBWTIgaXMgc2V0LCB0aGVuIHRoaXMgaXMgYSBzdHJ1Y3QK KwkgKiBkcm1faTkxNV9nZW1fZXhlY19mZW5jZTIgKmZlbmNlcy4KIAkgKi8KIAlfX3U2NCBjbGlw cmVjdHNfcHRyOwogI2RlZmluZSBJOTE1X0VYRUNfUklOR19NQVNLICAgICAgICAgICAgICAoMHgz ZikKQEAgLTExNDEsNyArMTE2NywxMyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIy IHsKICAqLwogI2RlZmluZSBJOTE1X0VYRUNfRkVOQ0VfU1VCTUlUCQkoMSA8PCAyMCkKIAotI2Rl ZmluZSBfX0k5MTVfRVhFQ19VTktOT1dOX0ZMQUdTICgtKEk5MTVfRVhFQ19GRU5DRV9TVUJNSVQg PDwgMSkpCisvKiBTZXR0aW5nIEk5MTVfRkVOQ0VfQVJSQVkyIGltcGxpZXMgdGhhdCBudW1fY2xp cHJlY3RzIGFuZCBjbGlwcmVjdHNfcHRyCisgKiBkZWZpbmUgYW4gYXJyYXkgb2YgaTkxNV9nZW1f ZXhlY19mZW5jZTIgc3RydWN0dXJlcyB3aGljaCBzcGVjaWZ5IGEgc2V0IG9mCisgKiBkbWEgZmVu Y2VzIHRvIHdhaXQgdXBvbiBvciBzaWduYWwuCisgKi8KKyNkZWZpbmUgSTkxNV9FWEVDX0ZFTkNF X0FSUkFZMiAgICgxPDwyMikKKworI2RlZmluZSBfX0k5MTVfRVhFQ19VTktOT1dOX0ZMQUdTICgt KEk5MTVfRVhFQ19GRU5DRV9BUlJBWTI8PDEpKQogCiAjZGVmaW5lIEk5MTVfRVhFQ19DT05URVhU X0lEX01BU0sJKDB4ZmZmZmZmZmYpCiAjZGVmaW5lIGk5MTVfZXhlY2J1ZmZlcjJfc2V0X2NvbnRl eHRfaWQoZWIyLCBjb250ZXh0KSBcCi0tIAoyLjIxLjAuMzkyLmdmOGY2Nzg3MTU5ZQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4