From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2 11/11] drm/i915: Support explicit fencing for execbuf Date: Mon, 7 Nov 2016 13:59:50 +0000 Message-ID: <20161107135950.28861-12-chris@chris-wilson.co.uk> References: <20161107135950.28861-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 66D4E6E3B0 for ; Mon, 7 Nov 2016 14:00:10 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id p190so16669441wmp.1 for ; Mon, 07 Nov 2016 06:00:10 -0800 (PST) In-Reply-To: <20161107135950.28861-1-chris@chris-wilson.co.uk> 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 Tm93IHRoYXQgdGhlIHVzZXIgY2FuIG9wdC1vdXQgb2YgaW1wbGljaXQgZmVuY2luZywgd2UgbmVl ZCB0byBnaXZlIHRoZW0KYmFjayBjb250cm9sIG92ZXIgdGhlIGZlbmNpbmcuIFdlIGVtcGxveSBz eW5jX2ZpbGUgdG8gd3JhcCBvdXIKZHJtX2k5MTVfZ2VtX3JlcXVlc3QgYW5kIHByb3ZpZGUgYW4g ZmQgdGhhdCB1c2Vyc3BhY2UgY2FuIG1lcmdlIHdpdGgKb3RoZXIgc3luY19maWxlIGZkcyBhbmQg cGFzcyBiYWNrIHRvIHRoZSBrZXJuZWwgdG8gd2FpdCB1cG9uIGJlZm9yZQpmdXR1cmUgZXhlY3V0 aW9uLgoKVGVzdGNhc2U6IGlndC9nZW1fZXhlY19mZW5jZQpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KUmV2aWV3ZWQtYnk6IEpvb25hcyBMYWh0 aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9LY29uZmlnICAgICAgICAgICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jICAgICAgICAgICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBp bmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAgICAgICAgICAgICAgfCAzNSArKysrKysrKysr KysrKysrKystCiA0IGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L0tjb25maWcKaW5kZXggZGY5NmFlZDY5NzVhLi44ZTkzYjYxYmQ4YzMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvS2NvbmZpZwpAQCAtMTksNiArMTksNyBAQCBjb25maWcgRFJNX0k5MTUKIAlzZWxl Y3QgSU5QVVQgaWYgQUNQSQogCXNlbGVjdCBBQ1BJX1ZJREVPIGlmIEFDUEkKIAlzZWxlY3QgQUNQ SV9CVVRUT04gaWYgQUNQSQorCXNlbGVjdCBTWU5DX0ZJTEUKIAloZWxwCiAJICBDaG9vc2UgdGhp cyBvcHRpb24gaWYgeW91IGhhdmUgYSBzeXN0ZW0gdGhhdCBoYXMgIkludGVsIEdyYXBoaWNzCiAJ ICBNZWRpYSBBY2NlbGVyYXRvciIgb3IgIkhEIEdyYXBoaWNzIiBpbnRlZ3JhdGVkIGdyYXBoaWNz LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggMWI4NjQyMzAxYTUyLi5jYjIwODU0ZWEzN2Ug MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMzQ0LDYgKzM0NCw3IEBAIHN0YXRpYyBpbnQg aTkxNV9nZXRwYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCWNhc2Ug STkxNV9QQVJBTV9IQVNfQ09IRVJFTlRfUEhZU19HVFQ6CiAJY2FzZSBJOTE1X1BBUkFNX0hBU19F WEVDX1NPRlRQSU46CiAJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0FTWU5DOgorCWNhc2UgSTkx NV9QQVJBTV9IQVNfRVhFQ19GRU5DRToKIAkJLyogRm9yIHRoZSB0aW1lIGJlaW5nIGFsbCBvZiB0 aGVzZSBhcmUgYWx3YXlzIHRydWU7CiAJCSAqIGlmIHNvbWUgc3VwcG9ydGVkIGhhcmR3YXJlIGRv ZXMgbm90IGhhdmUgb25lIG9mIHRoZXNlCiAJCSAqIGZlYXR1cmVzIHRoaXMgdmFsdWUgbmVlZHMg dG8gYmUgcHJvdmlkZWQgZnJvbQpAQCAtMjUzMyw3ICsyNTM0LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1faW9jdGxfZGVzYyBpOTE1X2lvY3Rsc1tdID0gewogCURSTV9JT0NUTF9ERUZfRFJW KEk5MTVfSFdTX0FERFIsIGRybV9ub29wLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09O TFkpLAogCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX0lOSVQsIGRybV9ub29wLCBEUk1fQVVU SHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAogCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VN X0VYRUNCVUZGRVIsIGk5MTVfZ2VtX2V4ZWNidWZmZXIsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExf REVGX0RSVihJOTE1X0dFTV9FWEVDQlVGRkVSMiwgaTkxNV9nZW1fZXhlY2J1ZmZlcjIsIERSTV9B VVRIfERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX0VYRUNC VUZGRVIyX1dSLCBpOTE1X2dlbV9leGVjYnVmZmVyMiwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExP VyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoSTkxNV9HRU1fUElOLCBpOTE1X2dlbV9yZWplY3RfcGlu X2lvY3RsLCBEUk1fQVVUSHxEUk1fUk9PVF9PTkxZKSwKIAlEUk1fSU9DVExfREVGX0RSVihJOTE1 X0dFTV9VTlBJTiwgaTkxNV9nZW1fcmVqZWN0X3Bpbl9pb2N0bCwgRFJNX0FVVEh8RFJNX1JPT1Rf T05MWSksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoSTkxNV9HRU1fQlVTWSwgaTkxNV9nZW1fYnVzeV9p b2N0bCwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9leGVjYnVmZmVyLmMKaW5kZXggMGQ2ZDc1OGRiNWI5Li41NWE4ZGIyNjkwYzYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTI4LDYgKzI4 LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2RtYV9yZW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51 eC9yZXNlcnZhdGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L3N5bmNfZmlsZS5oPgogI2luY2x1ZGUg PGxpbnV4L3VhY2Nlc3MuaD4KIAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CkBAIC0xNTg5LDYgKzE1 OTAsOSBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiAJc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcyA9ICZwYXJh bXNfbWFzdGVyOwogCWNvbnN0IHUzMiBjdHhfaWQgPSBpOTE1X2V4ZWNidWZmZXIyX2dldF9jb250 ZXh0X2lkKCphcmdzKTsKIAl1MzIgZGlzcGF0Y2hfZmxhZ3M7CisJc3RydWN0IGRtYV9mZW5jZSAq aW5fZmVuY2UgPSBOVUxMOworCXN0cnVjdCBzeW5jX2ZpbGUgKm91dF9mZW5jZSA9IE5VTEw7CisJ aW50IG91dF9mZW5jZV9mZCA9IC0xOwogCWludCByZXQ7CiAJYm9vbCBuZWVkX3JlbG9jczsKIApA QCAtMTYzMiw2ICsxNjM2LDIzIEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZGlzcGF0Y2hfZmxhZ3MgfD0gSTkxNV9ESVNQQVRD SF9SUzsKIAl9CiAKKwlpZiAoYXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNfRkVOQ0VfSU4pIHsKKwkJ aW5fZmVuY2UgPSBzeW5jX2ZpbGVfZ2V0X2ZlbmNlKGxvd2VyXzMyX2JpdHMoYXJncy0+cnN2ZDIp KTsKKwkJaWYgKCFpbl9mZW5jZSkgeworCQkJcmV0ID0gLUVJTlZBTDsKKwkJCWdvdG8gcHJlX211 dGV4X2VycjsKKwkJfQorCX0KKworCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19GRU5DRV9P VVQpIHsKKwkJb3V0X2ZlbmNlX2ZkID0gZ2V0X3VudXNlZF9mZF9mbGFncyhPX0NMT0VYRUMpOwor CQlpZiAob3V0X2ZlbmNlX2ZkIDwgMCkgeworCQkJcmV0ID0gb3V0X2ZlbmNlX2ZkOworCQkJb3V0 X2ZlbmNlX2ZkID0gLTE7CisJCQlnb3RvIHByZV9tdXRleF9lcnI7CisJCX0KKwl9CisKIAkvKiBU YWtlIGEgbG9jYWwgd2FrZXJlZiBmb3IgcHJlcGFyaW5nIHRvIGRpc3BhdGNoIHRoZSBleGVjYnVm IGFzCiAJICogd2UgZXhwZWN0IHRvIGFjY2VzcyB0aGUgaGFyZHdhcmUgZmFpcmx5IGZyZXF1ZW50 bHkgaW4gdGhlCiAJICogcHJvY2Vzcy4gVXBvbiBmaXJzdCBkaXNwYXRjaCwgd2UgYWNxdWlyZSBh bm90aGVyIHByb2xvbmdlZApAQCAtMTc3Niw2ICsxNzk3LDIxIEBAIGk5MTVfZ2VtX2RvX2V4ZWNi dWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZ290byBlcnJfYmF0 Y2hfdW5waW47CiAJfQogCisJaWYgKGluX2ZlbmNlKSB7CisJCXJldCA9IGk5MTVfZ2VtX3JlcXVl c3RfYXdhaXRfZG1hX2ZlbmNlKHBhcmFtcy0+cmVxdWVzdCwKKwkJCQkJCSAgICAgICBpbl9mZW5j ZSk7CisJCWlmIChyZXQgPCAwKQorCQkJZ290byBlcnJfcmVxdWVzdDsKKwl9CisKKwlpZiAob3V0 X2ZlbmNlX2ZkICE9IC0xKSB7CisJCW91dF9mZW5jZSA9IHN5bmNfZmlsZV9jcmVhdGUoJnBhcmFt cy0+cmVxdWVzdC0+ZmVuY2UpOworCQlpZiAoIW91dF9mZW5jZSkgeworCQkJcmV0ID0gLUVOT01F TTsKKwkJCWdvdG8gZXJyX3JlcXVlc3Q7CisJCX0KKwl9CisKIAkvKiBXaGlsc3QgdGhpcyByZXF1 ZXN0IGV4aXN0cywgYmF0Y2hfb2JqIHdpbGwgYmUgb24gdGhlCiAJICogYWN0aXZlX2xpc3QsIGFu ZCBzbyB3aWxsIGhvbGQgdGhlIGFjdGl2ZSByZWZlcmVuY2UuIE9ubHkgd2hlbiB0aGlzCiAJICog cmVxdWVzdCBpcyByZXRpcmVkIHdpbGwgdGhlIHRoZSBiYXRjaF9vYmogYmUgbW92ZWQgb250byB0 aGUKQEAgLTE4MDMsNiArMTgzOSwxNiBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJcmV0ID0gZXhlY2J1Zl9zdWJtaXQocGFyYW1z LCBhcmdzLCAmZWItPnZtYXMpOwogZXJyX3JlcXVlc3Q6CiAJX19pOTE1X2FkZF9yZXF1ZXN0KHBh cmFtcy0+cmVxdWVzdCwgcmV0ID09IDApOworCWlmIChvdXRfZmVuY2UpIHsKKwkJaWYgKHJldCA9 PSAwKSB7CisJCQlmZF9pbnN0YWxsKG91dF9mZW5jZV9mZCwgb3V0X2ZlbmNlLT5maWxlKTsKKwkJ CWFyZ3MtPnJzdmQyICY9IEdFTk1BU0tfVUxMKDAsIDMxKTsgLyoga2VlcCBpbi1mZW5jZSAqLwor CQkJYXJncy0+cnN2ZDIgfD0gKHU2NClvdXRfZmVuY2VfZmQgPDwgMzI7CisJCQlvdXRfZmVuY2Vf ZmQgPSAtMTsKKwkJfSBlbHNlIHsKKwkJCWZwdXQob3V0X2ZlbmNlLT5maWxlKTsKKwkJfQorCX0K IAogZXJyX2JhdGNoX3VucGluOgogCS8qCkBAIC0xODI0LDYgKzE4NzAsOSBAQCBpOTE1X2dlbV9k b19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJLyogaW50 ZWxfZ3B1X2J1c3kgc2hvdWxkIGFsc28gZ2V0IGEgcmVmLCBzbyBpdCB3aWxsIGZyZWUgd2hlbiB0 aGUgZGV2aWNlCiAJICogaXMgcmVhbGx5IGlkbGUuICovCiAJaW50ZWxfcnVudGltZV9wbV9wdXQo ZGV2X3ByaXYpOworCWlmIChvdXRfZmVuY2VfZmQgIT0gLTEpCisJCXB1dF91bnVzZWRfZmQob3V0 X2ZlbmNlX2ZkKTsKKwlkbWFfZmVuY2VfcHV0KGluX2ZlbmNlKTsKIAlyZXR1cm4gcmV0OwogfQog CkBAIC0xOTMxLDExICsxOTgwLDYgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcjIoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JaWYgKGFy Z3MtPnJzdmQyICE9IDApIHsKLQkJRFJNX0RFQlVHKCJkaXJ0eSBydnNkMiBmaWVsZFxuIik7Ci0J CXJldHVybiAtRUlOVkFMOwotCX0KLQogCWV4ZWMyX2xpc3QgPSBkcm1fbWFsbG9jX2dmcChhcmdz LT5idWZmZXJfY291bnQsCiAJCQkJICAgIHNpemVvZigqZXhlYzJfbGlzdCksCiAJCQkJICAgIEdG UF9URU1QT1JBUlkpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIv aW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCmluZGV4IDRiZDgzYzBiMDdkYi4uOTAwODIyNjlm YjUwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKKysrIGIvaW5jbHVk ZS91YXBpL2RybS9pOTE1X2RybS5oCkBAIC0yNDYsNiArMjQ2LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg X2RybV9pOTE1X3NhcmVhIHsKICNkZWZpbmUgRFJNX0k5MTVfT1ZFUkxBWV9QVVRfSU1BR0UJMHgy NwogI2RlZmluZSBEUk1fSTkxNV9PVkVSTEFZX0FUVFJTCTB4MjgKICNkZWZpbmUgRFJNX0k5MTVf R0VNX0VYRUNCVUZGRVIyCTB4MjkKKyNkZWZpbmUgRFJNX0k5MTVfR0VNX0VYRUNCVUZGRVIyX1dS CURSTV9JOTE1X0dFTV9FWEVDQlVGRkVSMgogI2RlZmluZSBEUk1fSTkxNV9HRVRfU1BSSVRFX0NP TE9SS0VZCTB4MmEKICNkZWZpbmUgRFJNX0k5MTVfU0VUX1NQUklURV9DT0xPUktFWQkweDJiCiAj ZGVmaW5lIERSTV9JOTE1X0dFTV9XQUlUCTB4MmMKQEAgLTI3OSw2ICsyODAsNyBAQCB0eXBlZGVm IHN0cnVjdCBfZHJtX2k5MTVfc2FyZWEgewogI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fSU5J VAkJRFJNX0lPVyhEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0lOSVQsIHN0cnVjdCBk cm1faTkxNV9nZW1faW5pdCkKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZGRVIJ RFJNX0lPVyhEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0VYRUNCVUZGRVIsIHN0cnVj dCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcikKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VY RUNCVUZGRVIyCURSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9FWEVDQlVG RkVSMiwgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMikKKyNkZWZpbmUgRFJNX0lPQ1RM X0k5MTVfR0VNX0VYRUNCVUZGRVIyX1dSCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1f STkxNV9HRU1fRVhFQ0JVRkZFUjJfV1IsIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIp CiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9QSU4JCURSTV9JT1dSKERSTV9DT01NQU5EX0JB U0UgKyBEUk1fSTkxNV9HRU1fUElOLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3BpbikKICNkZWZpbmUg RFJNX0lPQ1RMX0k5MTVfR0VNX1VOUElOCURSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9J OTE1X0dFTV9VTlBJTiwgc3RydWN0IGRybV9pOTE1X2dlbV91bnBpbikKICNkZWZpbmUgRFJNX0lP Q1RMX0k5MTVfR0VNX0JVU1kJCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9H RU1fQlVTWSwgc3RydWN0IGRybV9pOTE1X2dlbV9idXN5KQpAQCAtNDAxLDYgKzQwMywxMiBAQCB0 eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9pcnFfd2FpdCB7CiAgKi8KICNkZWZpbmUgSTkxNV9QQVJB TV9IQVNfRVhFQ19BU1lOQwkgNDIKIAorLyogUXVlcnkgd2hldGhlciBEUk1fSTkxNV9HRU1fRVhF Q0JVRkZFUjIgc3VwcG9ydHMgZXhwbGljaXQgZmVuY2Ugc3VwcG9ydCAtCisgKiBib3RoIGJlaW5n IGFibGUgdG8gcGFzcyBpbiBhIHN5bmNfZmlsZSBmZCB0byB3YWl0IHVwb24gYmVmb3JlIGV4ZWN1 dGluZywKKyAqIGFuZCBiZWluZyBhYmxlIHRvIHJldHVybiBhIG5ldyBzeW5jX2ZpbGUgZmQgdGhh dCBpcyBzaWduYWxlZCB3aGVuIHRoZQorICogY3VycmVudCByZXF1ZXN0IGlzIGNvbXBsZXRlLgor ICovCisjZGVmaW5lIEk5MTVfUEFSQU1fSEFTX0VYRUNfRkVOQ0UJIDQzCiAKIHR5cGVkZWYgc3Ry dWN0IGRybV9pOTE1X2dldHBhcmFtIHsKIAlfX3MzMiBwYXJhbTsKQEAgLTg1NCw3ICs4NjIsMzIg QEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiB7CiAgKi8KICNkZWZpbmUgSTkxNV9F WEVDX1JFU09VUkNFX1NUUkVBTUVSICAgICAoMTw8MTUpCiAKLSNkZWZpbmUgX19JOTE1X0VYRUNf VU5LTk9XTl9GTEFHUyAtKEk5MTVfRVhFQ19SRVNPVVJDRV9TVFJFQU1FUjw8MSkKKy8qIFNldHRp bmcgSTkxNV9FWEVDX0ZFTkNFX0lOIGltcGxpZXMgdGhhdCBsb3dlcl8zMl9iaXRzKHJzdmQyKSBy ZXByZXNlbnQKKyAqIGEgc3luY19maWxlIGZkIHRvIHdhaXQgdXBvbiAoaW4gYSBub25ibG9ja2lu ZyBtYW5uZXIpIHByaW9yIHRvIGV4ZWN1dGluZworICogdGhlIGJhdGNoLgorICoKKyAqIFJldHVy bnMgLUVJTlZBTCBpZiB0aGUgc3luY19maWxlIGZkIGNhbm5vdCBiZSBmb3VuZC4KKyAqLworI2Rl ZmluZSBJOTE1X0VYRUNfRkVOQ0VfSU4JCSgxPDwxNikKKworLyogU2V0dGluZyBJOTE1X0VYRUNf RkVOQ0VfT1VUIGNhdXNlcyB0aGUgaW9jdGwgdG8gcmV0dXJuIGEgc3luY19maWxlIGZkCisgKiBp biB0aGUgdXBwZXJfMzJfYml0cyhyc3ZkMikgdXBvbiBzdWNjZXNzLiBPd25lcnNoaXAgb2YgdGhl IGZkIGlzIGdpdmVuCisgKiB0byB0aGUgY2FsbGVyLCBhbmQgaXQgc2hvdWxkIGJlIGNsb3NlKCkg YWZ0ZXIgdXNlLiAoVGhlIGZkIGlzIGEgcmVndWxhcgorICogZmlsZSBkZXNjcmlwdG9yIGFuZCB3 aWxsIGJlIGNsZWFuZWQgdXAgb24gcHJvY2VzcyB0ZXJtaW5hdGlvbi4gSXQgaG9sZHMKKyAqIGEg cmVmZXJlbmNlIHRvIHRoZSByZXF1ZXN0LCBidXQgbm90aGluZyBlbHNlLikKKyAqCisgKiBUaGUg c3luY19maWxlIGZkIGNhbiBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHN5bmNfZmlsZSBhbmQgcGFz c2VkIGVpdGhlcgorICogdG8gZXhlY2J1ZiB1c2luZyBJOTE1X0VYRUNfRkVOQ0VfSU4sIHRvIGF0 b21pYyBLTVMgaW9jdGxzIChzbyB0aGF0IGEgZmxpcAorICogd2lsbCBvbmx5IG9jY3VyIGFmdGVy IHRoaXMgcmVxdWVzdCBjb21wbGV0ZXMpLCBvciB0byBvdGhlciBkZXZpY2VzLgorICoKKyAqIFVz aW5nIEk5MTVfRVhFQ19GRU5DRV9PVVQgcmVxdWlyZXMgdXNlIG9mCisgKiBEUk1fSU9DVExfSTkx NV9HRU1fRVhFQ0JVRkZFUjJfV1IgaW9jdGwgc28gdGhhdCB0aGUgcmVzdWx0IGlzIHdyaXR0ZW4K KyAqIGJhY2sgdG8gdXNlcnNwYWNlLiBGYWlsdXJlIHRvIGRvIHNvIHdpbGwgY2F1c2UgdGhlIG91 dC1mZW5jZSB0byBhbHdheXMKKyAqIGJlIHJlcG9ydGVkIGFzIHplcm8sIGFuZCB0aGUgcmVhbCBm ZW5jZSBmZCB0byBiZSBsZWFrZWQuCisgKi8KKyNkZWZpbmUgSTkxNV9FWEVDX0ZFTkNFX09VVAkJ KDE8PDE3KQorCisjZGVmaW5lIF9fSTkxNV9FWEVDX1VOS05PV05fRkxBR1MgKC0oSTkxNV9FWEVD X0ZFTkNFX09VVDw8MSkpCiAKICNkZWZpbmUgSTkxNV9FWEVDX0NPTlRFWFRfSURfTUFTSwkoMHhm ZmZmZmZmZikKICNkZWZpbmUgaTkxNV9leGVjYnVmZmVyMl9zZXRfY29udGV4dF9pZChlYjIsIGNv bnRleHQpIFwKLS0gCjIuMTAuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==