From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH v4.5 5/8] drm/i915: cgroup integration (v4) Date: Wed, 21 Mar 2018 16:23:41 -0700 Message-ID: <20180321232344.20727-6-matthew.d.roper@intel.com> References: <20180321232344.20727-1-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180321232344.20727-1-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, cgroups@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org SW50cm9kdWNlIGEgbmV3IERSTV9JT0NUTF9JOTE1X0NHUk9VUF9TRVRQQVJBTSBpb2N0bCB0aGF0 IHdpbGwgYWxsb3cKdXNlcnNwYWNlIHRvIHNldCBpOTE1LXNwZWNpZmljIHBhcmFtZXRlcnMgZm9y IGluZGl2aWR1YWwgY2dyb3Vwcy4gIGk5MTUKY2dyb3VwIGRhdGEgd2lsbCBiZSByZWdpc3RlcmVk IGFuZCBsYXRlciBsb29rZWQgdXAgdmlhIHRoZSBuZXcKY2dyb3VwX3ByaXYgaW5mcmFzdHJ1Y3R1 cmUuCgp2MjoKIC0gTGFyZ2UgcmViYXNlL3Jld3JpdGUgZm9yIG5ldyBjZ3JvdXBfcHJpdiBpbnRl cmZhY2UKdjM6CiAtIEFub3RoZXIgcmViYXNlL3Jld3JpdGUgZm9yIGlkYS1iYXNlZCBrZXlzIGFu ZCBrcmVmLWJhc2VkIHN0b3JhZ2UKIC0gQWNjZXNzIGNvbnRyb2wgbm8gbG9uZ2VyIGZvbGxvd3Mg Y2dyb3VwIGZpbGVzeXN0ZW0gcGVybWlzc2lvbnM7CiAgIGluc3RlYWQgd2UgcmVzdHJpY3QgYWNj ZXNzIHRvIGVpdGhlciBEUk0gbWFzdGVyIG9yCiAgIGNhcGFibGUoQ0FQX1NZU19SRVNPVVJDRSku CnY0OgogLSBGaXggY2hlY2twYXRjaCB3YXJuaW5ncyAoSW50ZWwgQ0kpCgpTaWduZWQtb2ZmLWJ5 OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L01ha2VmaWxlICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9jZ3JvdXAuYyB8IDE0MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgIHwgICA4ICsrKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICB8ICAzMiArKysrKysrKysKIGluY2x1ZGUvdWFwaS9kcm0v aTkxNV9kcm0uaCAgICAgICAgfCAgMTIgKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxOTMgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY2dy b3VwLmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4IDU1MmU0M2U5NjYzZi4uMjYwMzExODVjZjBl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtNDgsNiArNDgsNyBAQCBpOTE1LXkgOj0gaTkxNV9k cnYubyBcCiBpOTE1LSQoQ09ORklHX0NPTVBBVCkgICArPSBpOTE1X2lvYzMyLm8KIGk5MTUtJChD T05GSUdfREVCVUdfRlMpICs9IGk5MTVfZGVidWdmcy5vIGludGVsX3BpcGVfY3JjLm8KIGk5MTUt JChDT05GSUdfUEVSRl9FVkVOVFMpICs9IGk5MTVfcG11Lm8KK2k5MTUtJChDT05GSUdfQ0dST1VQ UykgKz0gaTkxNV9jZ3JvdXAubwogCiAjIEdFTSBjb2RlCiBpOTE1LXkgKz0gaTkxNV9jbWRfcGFy c2VyLm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jZ3JvdXAuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY2dyb3VwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi5lZmU3NmMyYTg5MTUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Nncm91cC5jCkBAIC0wLDAgKzEsMTQwIEBACisvKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogaTkxNV9jZ3JvdXAuYyAtIExpbnV4 IGNncm91cHMgaW50ZWdyYXRpb24gZm9yIGk5MTUKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg SW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaW5jbHVkZSA8bGludXgvY2dyb3VwLmg+CisKKyNp bmNsdWRlICJpOTE1X2Rydi5oIgorCitzdHJ1Y3QgaTkxNV9jZ3JvdXBfZGF0YSB7CisJc3RydWN0 IGtyZWYgcmVmOworfTsKKworc3RhdGljIGlubGluZSBzdHJ1Y3QgaTkxNV9jZ3JvdXBfZGF0YSAq CitjZ3JwX3JlZl90b19pOTE1KHN0cnVjdCBrcmVmICpyZWYpCit7CisJcmV0dXJuIGNvbnRhaW5l cl9vZihyZWYsIHN0cnVjdCBpOTE1X2Nncm91cF9kYXRhLCByZWYpOworfQorCitzdGF0aWMgdm9p ZAoraTkxNV9jZ3JvdXBfZnJlZShzdHJ1Y3Qga3JlZiAqcmVmKQoreworCXN0cnVjdCBpOTE1X2Nn cm91cF9kYXRhICpwcml2OworCisJcHJpdiA9IGNncnBfcmVmX3RvX2k5MTUocmVmKTsKKwlrZnJl ZShwcml2KTsKK30KKworaW50CitpOTE1X2Nncm91cF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKK3sKKwlpbnQgcmV0ID0gMDsKKworCWRldl9wcml2LT5jZ3JvdXBfcHJp dl9rZXkgPSBjZ3JvdXBfcHJpdl9nZXRrZXkoaTkxNV9jZ3JvdXBfZnJlZSk7CisJaWYgKGRldl9w cml2LT5jZ3JvdXBfcHJpdl9rZXkgPCAwKSB7CisJCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0 byBnZXQgYSBjZ3JvdXAgcHJpdmF0ZSBkYXRhIGtleVxuIik7CisJCXJldCA9IGRldl9wcml2LT5j Z3JvdXBfcHJpdl9rZXk7CisJfQorCisJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPmNncm91cF9sb2Nr KTsKKworCXJldHVybiByZXQ7Cit9CisKK3ZvaWQKK2k5MTVfY2dyb3VwX3NodXRkb3duKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwljZ3JvdXBfcHJpdl9kZXN0cm95a2V5 KGRldl9wcml2LT5jZ3JvdXBfcHJpdl9rZXkpOworfQorCisvKgorICogUmV0dXJuIGk5MTUgY2dy b3VwIHByaXZhdGUgZGF0YSwgY3JlYXRpbmcgYW5kIHJlZ2lzdGVyaW5nIGl0IGlmIG9uZSBkb2Vz bid0CisgKiBhbHJlYWR5IGV4aXN0IGZvciB0aGlzIGNncm91cC4KKyAqLworX19tYXliZV91bnVz ZWQKK3N0YXRpYyBzdHJ1Y3QgaTkxNV9jZ3JvdXBfZGF0YSAqCitnZXRfb3JfY3JlYXRlX2Nncm91 cF9kYXRhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgc3RydWN0IGNn cm91cCAqY2dycCkKK3sKKwlzdHJ1Y3Qga3JlZiAqcmVmOworCXN0cnVjdCBpOTE1X2Nncm91cF9k YXRhICpwcml2OworCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmNncm91cF9sb2NrKTsKKworCXJl ZiA9IGNncm91cF9wcml2X2dldChjZ3JwLCBkZXZfcHJpdi0+Y2dyb3VwX3ByaXZfa2V5KTsKKwlp ZiAocmVmKSB7CisJCXByaXYgPSBjZ3JwX3JlZl90b19pOTE1KHJlZik7CisJfSBlbHNlIHsKKwkJ cHJpdiA9IGt6YWxsb2Moc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7CisJCWlmICghcHJpdikg eworCQkJcHJpdiA9IEVSUl9QVFIoLUVOT01FTSk7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWty ZWZfaW5pdCgmcHJpdi0+cmVmKTsKKwkJY2dyb3VwX3ByaXZfaW5zdGFsbChjZ3JwLCBkZXZfcHJp di0+Y2dyb3VwX3ByaXZfa2V5LAorCQkJCSAgICAmcHJpdi0+cmVmKTsKKwl9CisKK291dDoKKwlt dXRleF91bmxvY2soJmRldl9wcml2LT5jZ3JvdXBfbG9jayk7CisKKwlyZXR1cm4gcHJpdjsKK30K KworLyoqCisgKiBpOTE1X2Nncm91cF9zZXRwYXJhbV9pb2N0bCAtIGlvY3RsIHRvIGFsdGVyIGk5 MTUgc2V0dGluZ3MgZm9yIGEgY2dyb3VwCisgKiBAZGV2OiBEUk0gZGV2aWNlCisgKiBAZGF0YTog ZGF0YSBwb2ludGVyIGZvciB0aGUgaW9jdGwKKyAqIEBmaWxlX3ByaXY6IERSTSBmaWxlIGhhbmRs ZSBmb3IgdGhlIGlvY3RsIGNhbGwKKyAqCisgKiBBbGxvd3MgaTkxNS1zcGVjaWZpYyBwYXJhbWV0 ZXJzIHRvIGJlIHNldCBmb3IgYSBMaW51eCBjZ3JvdXAuCisgKi8KK2ludAoraTkxNV9jZ3JvdXBf c2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCSAgIHZvaWQgKmRhdGEs CisJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCit7CisJc3RydWN0IGRybV9pOTE1X2Nncm91 cF9wYXJhbSAqcmVxID0gZGF0YTsKKwlzdHJ1Y3QgY2dyb3VwICpjZ3JwOworCWludCByZXQ7CisK KwkvKiBXZSBkb24ndCBhY3R1YWxseSBzdXBwb3J0IGFueSBmbGFncyB5ZXQuICovCisJaWYgKHJl cS0+ZmxhZ3MpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigiSW52YWxpZCBmbGFnc1xuIik7CisJCXJl dHVybiAtRUlOVkFMOworCX0KKworCS8qCisJICogTWFrZSBzdXJlIHRoZSBmaWxlIGRlc2NyaXB0 b3IgcmVhbGx5IGlzIGEgY2dyb3VwIGZkIGFuZCBpcyBvbiB0aGUKKwkgKiB2MiBoaWVyYXJjaHku CisJICovCisJY2dycCA9IGNncm91cF9nZXRfZnJvbV9mZChyZXEtPmNncm91cF9mZCk7CisJaWYg KElTX0VSUihjZ3JwKSkgeworCQlEUk1fREVCVUdfRFJJVkVSKCJJbnZhbGlkIGNncm91cCBmaWxl IGRlc2NyaXB0b3JcbiIpOworCQlyZXR1cm4gUFRSX0VSUihjZ3JwKTsKKwl9CisKKwkvKgorCSAq IEFjY2VzcyBjb250cm9sOiAgRm9yIG5vdyB3ZSBncmFudCBhY2Nlc3MgdmlhIENBUF9TWVNfUkVT T1VSQ0UgX29yXworCSAqIERSTSBtYXN0ZXIgc3RhdHVzLgorCSAqLworCWlmICghY2FwYWJsZShD QVBfU1lTX1JFU09VUkNFKSAmJiAhZHJtX2lzX2N1cnJlbnRfbWFzdGVyKGZpbGUpKSB7CisJCURS TV9ERUJVR19EUklWRVIoIkluc3VmZmljaWVudCBwZXJtaXNzaW9ucyB0byBhZGp1c3QgaTkxNSBj Z3JvdXAgc2V0dGluZ3NcbiIpOworCQlnb3RvIG91dDsKKwl9CisKKwlzd2l0Y2ggKHJlcS0+cGFy YW0pIHsKKwlkZWZhdWx0OgorCQlEUk1fREVCVUdfRFJJVkVSKCJJbnZhbGlkIGNncm91cCBwYXJh bWV0ZXIgJWxsZFxuIiwgcmVxLT5wYXJhbSk7CisJCXJldCA9IC1FSU5WQUw7CisJfQorCitvdXQ6 CisJY2dyb3VwX3B1dChjZ3JwKTsKKworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYwppbmRleCBhN2QzMjc1ZjQ1ZDIuLmFkMTBmYjJhMjkwNyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5jCkBAIC0xNDA3LDYgKzE0MDcsMTAgQEAgaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0 IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAKIAlpbnRl bF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7CiAKKwlyZXQgPSBpOTE1X2Nncm91cF9pbml0KGRl dl9wcml2KTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXRfY2xlYW51cF9odzsKKwogCWk5MTVf d2VsY29tZV9tZXNzYWdlcyhkZXZfcHJpdik7CiAKIAlyZXR1cm4gMDsKQEAgLTE0MzMsNiArMTQz Nyw4IEBAIHZvaWQgaTkxNV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVj dCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2OwogCisJaTkxNV9jZ3JvdXBfc2h1 dGRvd24oZGV2X3ByaXYpOworCiAJaTkxNV9kcml2ZXJfdW5yZWdpc3RlcihkZXZfcHJpdik7CiAK IAlpZiAoaTkxNV9nZW1fc3VzcGVuZChkZXZfcHJpdikpCkBAIC0yODMzLDYgKzI4MzksOCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIGk5MTVfaW9jdGxzW10gPSB7CiAJRFJN X0lPQ1RMX0RFRl9EUlYoSTkxNV9QRVJGX0FERF9DT05GSUcsIGk5MTVfcGVyZl9hZGRfY29uZmln X2lvY3RsLCBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRl9E UlYoSTkxNV9QRVJGX1JFTU9WRV9DT05GSUcsIGk5MTVfcGVyZl9yZW1vdmVfY29uZmlnX2lvY3Rs LCBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoSTkx NV9RVUVSWSwgaTkxNV9xdWVyeV9pb2N0bCwgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cp LAorCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfQ0dST1VQX1NFVFBBUkFNLCBpOTE1X2Nncm91cF9z ZXRwYXJhbV9pb2N0bCwKKwkJCSAgRFJNX1VOTE9DS0VEIHwgRFJNX1JFTkRFUl9BTExPVyksCiB9 OwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0gewpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKaW5kZXggMmQ3YTg5ZmNjMGRjLi5lZDM2NWZhZTEwNzMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaApAQCAtMTczOCw2ICsxNzM4LDE1IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsK IAogCXN0cnVjdCBpbnRlbF9wcGF0IHBwYXQ7CiAKKwkvKiBjZ3JvdXAgcHJpdmF0ZSBkYXRhICov CisJaW50IGNncm91cF9wcml2X2tleTsKKworCS8qCisJICogcHJvdGVjdHMgYWdhaW5zdCBjb25j dXJyZW50IGF0dGVtcHRzIHRvIGNyZWF0ZSBwcml2YXRlIGRhdGEgZm9yIGEKKwkgKiBjZ3JvdXAK KwkgKi8KKwlzdHJ1Y3QgbXV0ZXggY2dyb3VwX2xvY2s7CisKIAkvKiBLZXJuZWwgTW9kZXNldHRp bmcgKi8KIAogCXN0cnVjdCBpbnRlbF9jcnRjICpwbGFuZV90b19jcnRjX21hcHBpbmdbSTkxNV9N QVhfUElQRVNdOwpAQCAtMjY3OCw2ICsyNjg3LDI5IEBAIGludGVsX2dndHRfdXBkYXRlX25lZWRz X3Z0ZF93YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBpbnQgaW50ZWxfc2Fu aXRpemVfZW5hYmxlX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJ CQlpbnQgZW5hYmxlX3BwZ3R0KTsKIAorLyogaTkxNV9jZ3JvdXAuYyAqLworI2lmZGVmIENPTkZJ R19DR1JPVVBTCitpbnQgaTkxNV9jZ3JvdXBfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOworaW50IGk5MTVfY2dyb3VwX3NldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlKTsK K3ZvaWQgaTkxNV9jZ3JvdXBfc2h1dGRvd24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIGludAoraTkxNV9jZ3JvdXBfaW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bmxpbmUgdm9pZCBpOTE1X2Nncm91cF9zaHV0ZG93bihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpIHt9CisKK3N0YXRpYyBpbmxpbmUgaW50CitpOTE1X2Nncm91cF9zZXRwYXJhbV9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgc3RydWN0IGRy bV9maWxlICpmaWxlKQoreworCXJldHVybiAtRUlOVkFMOworfQorI2VuZGlmCisKIC8qIGk5MTVf ZHJ2LmMgKi8KIHZvaWQgX19wcmludGYoMywgNCkKIF9faTkxNV9wcmludGsoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCBjb25zdCBjaGFyICpsZXZlbCwKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApp bmRleCA3ZjU2MzRjZThlODguLjczNTEyOGZhNjFkZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBp L2RybS9pOTE1X2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtMzE5 LDYgKzMxOSw3IEBAIHR5cGVkZWYgc3RydWN0IF9kcm1faTkxNV9zYXJlYSB7CiAjZGVmaW5lIERS TV9JOTE1X1BFUkZfQUREX0NPTkZJRwkweDM3CiAjZGVmaW5lIERSTV9JOTE1X1BFUkZfUkVNT1ZF X0NPTkZJRwkweDM4CiAjZGVmaW5lIERSTV9JOTE1X1FVRVJZCQkJMHgzOQorI2RlZmluZSBEUk1f STkxNV9DR1JPVVBfU0VUUEFSQU0JMHgzYQogCiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0lOSVQJ CURSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9JTklULCBkcm1faTkxNV9pbml0 X3QpCiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0ZMVVNICQlEUk1fSU8gKCBEUk1fQ09NTUFORF9C QVNFICsgRFJNX0k5MTVfRkxVU0gpCkBAIC0zNzcsNiArMzc4LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg X2RybV9pOTE1X3NhcmVhIHsKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfUEVSRl9BRERfQ09ORklH CURSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X1BFUkZfQUREX0NPTkZJRywgc3Ry dWN0IGRybV9pOTE1X3BlcmZfb2FfY29uZmlnKQogI2RlZmluZSBEUk1fSU9DVExfSTkxNV9QRVJG X1JFTU9WRV9DT05GSUcJRFJNX0lPVyhEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfUEVSRl9S RU1PVkVfQ09ORklHLCBfX3U2NCkKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfUVVFUlkJCQlEUk1f SU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfUVVFUlksIHN0cnVjdCBkcm1faTkxNV9x dWVyeSkKKyNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfQ0dST1VQX1NFVFBBUkFNCQlEUk1fSU9XKERS TV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9DR1JPVVBfU0VUUEFSQU0sIHN0cnVjdCBkcm1faTkx NV9jZ3JvdXBfcGFyYW0pCiAKIC8qIEFsbG93IGRyaXZlcnMgdG8gc3VibWl0IGJhdGNoYnVmZmVy cyBkaXJlY3RseSB0byBoYXJkd2FyZSwgcmVseWluZwogICogb24gdGhlIHNlY3VyaXR5IG1lY2hh bmlzbXMgcHJvdmlkZWQgYnkgaGFyZHdhcmUuCkBAIC0xNzE3LDYgKzE3MTksMTYgQEAgc3RydWN0 IGRybV9pOTE1X3F1ZXJ5X3RvcG9sb2d5X2luZm8gewogCV9fdTggZGF0YVtdOwogfTsKIAorLyoq CisgKiBTdHJ1Y3R1cmUgdG8gc2V0IGk5MTUgcGFyYW1ldGVyIG9uIGEgY2dyb3VwLgorICovCitz dHJ1Y3QgZHJtX2k5MTVfY2dyb3VwX3BhcmFtIHsKKwlfX3MzMiBjZ3JvdXBfZmQ7CisJX191MzIg ZmxhZ3M7CisJX191NjQgcGFyYW07CisJX19zNjQgdmFsdWU7Cit9OworCiAjaWYgZGVmaW5lZChf X2NwbHVzcGx1cykKIH0KICNlbmRpZgotLSAKMi4xNC4zCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK