From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 18/18] drm/i915: Support explicit fencing for execbuf Date: Wed, 14 Sep 2016 07:52:50 +0100 Message-ID: <20160914065250.15482-19-chris@chris-wilson.co.uk> References: <20160914065250.15482-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 B710C6E65E for ; Wed, 14 Sep 2016 06:53:20 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id g141so1019525wmd.1 for ; Tue, 13 Sep 2016 23:53:20 -0700 (PDT) In-Reply-To: <20160914065250.15482-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 NV9nZW1fZXhlY2J1ZmZlci5jIHwgNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBp bmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAgICAgICAgICAgICAgfCAzNiArKysrKysrKysr KysrKysrKysrLQogNCBmaWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9LY29uZmlnCmluZGV4IDc3NjllNDY5MTE4Zi4uMzE5Y2EyN2VhNzE5IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L0tjb25maWcKQEAgLTE4LDYgKzE4LDcgQEAgY29uZmlnIERSTV9JOTE1CiAJc2Vs ZWN0IElOUFVUIGlmIEFDUEkKIAlzZWxlY3QgQUNQSV9WSURFTyBpZiBBQ1BJCiAJc2VsZWN0IEFD UElfQlVUVE9OIGlmIEFDUEkKKwlzZWxlY3QgU1lOQ19GSUxFCiAJaGVscAogCSAgQ2hvb3NlIHRo aXMgb3B0aW9uIGlmIHlvdSBoYXZlIGEgc3lzdGVtIHRoYXQgaGFzICJJbnRlbCBHcmFwaGljcwog CSAgTWVkaWEgQWNjZWxlcmF0b3IiIG9yICJIRCBHcmFwaGljcyIgaW50ZWdyYXRlZCBncmFwaGlj cywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IDg3NzQ4YzhjMDkxZS4uYWY0M2M5NjhmYzVh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTMzMyw2ICszMzMsNyBAQCBzdGF0aWMgaW50 IGk5MTVfZ2V0cGFyYW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAljYXNl IEk5MTVfUEFSQU1fSEFTX0NPSEVSRU5UX1BIWVNfR1RUOgogCWNhc2UgSTkxNV9QQVJBTV9IQVNf RVhFQ19TT0ZUUElOOgogCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19BU1lOQzoKKwljYXNlIEk5 MTVfUEFSQU1fSEFTX0VYRUNfRkVOQ0U6CiAJCS8qIEZvciB0aGUgdGltZSBiZWluZyBhbGwgb2Yg dGhlc2UgYXJlIGFsd2F5cyB0cnVlOwogCQkgKiBpZiBzb21lIHN1cHBvcnRlZCBoYXJkd2FyZSBk b2VzIG5vdCBoYXZlIG9uZSBvZiB0aGVzZQogCQkgKiBmZWF0dXJlcyB0aGlzIHZhbHVlIG5lZWRz IHRvIGJlIHByb3ZpZGVkIGZyb20KQEAgLTI1MzIsNyArMjUzMyw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgaTkxNV9pb2N0bHNbXSA9IHsKIAlEUk1fSU9DVExfREVGX0RS VihJOTE1X0hXU19BRERSLCBkcm1fbm9vcCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9P TkxZKSwKIAlEUk1fSU9DVExfREVGX0RSVihJOTE1X0dFTV9JTklULCBkcm1fbm9vcCwgRFJNX0FV VEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKIAlEUk1fSU9DVExfREVGX0RSVihJOTE1X0dF TV9FWEVDQlVGRkVSLCBpOTE1X2dlbV9leGVjYnVmZmVyLCBEUk1fQVVUSCksCi0JRFJNX0lPQ1RM X0RFRl9EUlYoSTkxNV9HRU1fRVhFQ0JVRkZFUjIsIGk5MTVfZ2VtX2V4ZWNidWZmZXIyLCBEUk1f QVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGX0RSVihJOTE1X0dFTV9FWEVD QlVGRkVSMl9XUiwgaTkxNV9nZW1fZXhlY2J1ZmZlcjIsIERSTV9BVVRIfERSTV9SRU5ERVJfQUxM T1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX1BJTiwgaTkxNV9nZW1fcmVqZWN0X3Bp bl9pb2N0bCwgRFJNX0FVVEh8RFJNX1JPT1RfT05MWSksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoSTkx NV9HRU1fVU5QSU4sIGk5MTVfZ2VtX3JlamVjdF9waW5faW9jdGwsIERSTV9BVVRIfERSTV9ST09U X09OTFkpLAogCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX0JVU1ksIGk5MTVfZ2VtX2J1c3lf aW9jdGwsIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZXhlY2J1ZmZlci5jCmluZGV4IDdhMjBkZDJlNWI1NS4uYjU3ZjBiYjliYTUxIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCkBAIC0yOCw2ICsy OCw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9kbWFfcmVtYXBwaW5nLmg+CiAjaW5jbHVkZSA8bGlu dXgvcmVzZXJ2YXRpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9zeW5jX2ZpbGUuaD4KICNpbmNsdWRl IDxsaW51eC91YWNjZXNzLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtUC5oPgpAQCAtMTU4NSw2ICsx NTg2LDkgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCXN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMgPSAmcGFy YW1zX21hc3RlcjsKIAljb25zdCB1MzIgY3R4X2lkID0gaTkxNV9leGVjYnVmZmVyMl9nZXRfY29u dGV4dF9pZCgqYXJncyk7CiAJdTMyIGRpc3BhdGNoX2ZsYWdzOworCXN0cnVjdCBmZW5jZSAqaW5f ZmVuY2UgPSBOVUxMOworCXN0cnVjdCBzeW5jX2ZpbGUgKm91dF9mZW5jZSA9IE5VTEw7CisJaW50 IG91dF9mZW5jZV9mZCA9IC0xOwogCWludCByZXQ7CiAJYm9vbCBuZWVkX3JlbG9jczsKIApAQCAt MTYyOCw2ICsxNjMyLDIzIEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZGlzcGF0Y2hfZmxhZ3MgfD0gSTkxNV9ESVNQQVRDSF9S UzsKIAl9CiAKKwlpZiAoYXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNfRkVOQ0VfSU4pIHsKKwkJaW5f ZmVuY2UgPSBzeW5jX2ZpbGVfZ2V0X2ZlbmNlKGxvd2VyXzMyX2JpdHMoYXJncy0+cnN2ZDIpKTsK KwkJaWYgKCFpbl9mZW5jZSkgeworCQkJcmV0ID0gLUVJTlZBTDsKKwkJCWdvdG8gcHJlX211dGV4 X2VycjsKKwkJfQorCX0KKworCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19GRU5DRV9PVVQp IHsKKwkJb3V0X2ZlbmNlX2ZkID0gZ2V0X3VudXNlZF9mZF9mbGFncyhPX0NMT0VYRUMpOworCQlp ZiAob3V0X2ZlbmNlX2ZkIDwgMCkgeworCQkJcmV0ID0gb3V0X2ZlbmNlX2ZkOworCQkJb3V0X2Zl bmNlX2ZkID0gLTE7CisJCQlnb3RvIHByZV9tdXRleF9lcnI7CisJCX0KKwl9CisKIAkvKiBUYWtl IGEgbG9jYWwgd2FrZXJlZiBmb3IgcHJlcGFyaW5nIHRvIGRpc3BhdGNoIHRoZSBleGVjYnVmIGFz CiAJICogd2UgZXhwZWN0IHRvIGFjY2VzcyB0aGUgaGFyZHdhcmUgZmFpcmx5IGZyZXF1ZW50bHkg aW4gdGhlCiAJICogcHJvY2Vzcy4gVXBvbiBmaXJzdCBkaXNwYXRjaCwgd2UgYWNxdWlyZSBhbm90 aGVyIHByb2xvbmdlZApAQCAtMTc3Miw2ICsxNzkzLDIwIEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZm ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZ290byBlcnJfYmF0Y2hf dW5waW47CiAJfQogCisJaWYgKGluX2ZlbmNlKSB7CisJCXJldCA9IGk5MTVfZ2VtX3JlcXVlc3Rf YXdhaXRfZmVuY2UocGFyYW1zLT5yZXF1ZXN0LCBpbl9mZW5jZSk7CisJCWlmIChyZXQgPCAwKQor CQkJZ290byBlcnJfcmVxdWVzdDsKKwl9CisKKwlpZiAob3V0X2ZlbmNlX2ZkICE9IC0xKSB7CisJ CW91dF9mZW5jZSA9IHN5bmNfZmlsZV9jcmVhdGUoZmVuY2VfZ2V0KCZwYXJhbXMtPnJlcXVlc3Qt PmZlbmNlKSk7CisJCWlmICghb3V0X2ZlbmNlKSB7CisJCQlyZXQgPSAtRU5PTUVNOworCQkJZ290 byBlcnJfcmVxdWVzdDsKKwkJfQorCX0KKwogCS8qIFdoaWxzdCB0aGlzIHJlcXVlc3QgZXhpc3Rz LCBiYXRjaF9vYmogd2lsbCBiZSBvbiB0aGUKIAkgKiBhY3RpdmVfbGlzdCwgYW5kIHNvIHdpbGwg aG9sZCB0aGUgYWN0aXZlIHJlZmVyZW5jZS4gT25seSB3aGVuIHRoaXMKIAkgKiByZXF1ZXN0IGlz IHJldGlyZWQgd2lsbCB0aGUgdGhlIGJhdGNoX29iaiBiZSBtb3ZlZCBvbnRvIHRoZQpAQCAtMTc5 OSw2ICsxODM0LDE2IEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIAlyZXQgPSBleGVjYnVmX3N1Ym1pdChwYXJhbXMsIGFyZ3MsICZl Yi0+dm1hcyk7CiBlcnJfcmVxdWVzdDoKIAlfX2k5MTVfYWRkX3JlcXVlc3QocGFyYW1zLT5yZXF1 ZXN0LCByZXQgPT0gMCk7CisJaWYgKG91dF9mZW5jZSkgeworCQlpZiAocmV0ID09IDApIHsKKwkJ CWZkX2luc3RhbGwob3V0X2ZlbmNlX2ZkLCBvdXRfZmVuY2UtPmZpbGUpOworCQkJYXJncy0+cnN2 ZDIgJj0gR0VOTUFTS19VTEwoMCwgMzEpOyAvKiBrZWVwIGluLWZlbmNlICovCisJCQlhcmdzLT5y c3ZkMiB8PSAodTY0KW91dF9mZW5jZV9mZCA8PCAzMjsKKwkJCW91dF9mZW5jZV9mZCA9IC0xOwor CQl9IGVsc2UgeworCQkJZnB1dChvdXRfZmVuY2UtPmZpbGUpOworCQl9CisJfQogCiBlcnJfYmF0 Y2hfdW5waW46CiAJLyoKQEAgLTE4MjAsNiArMTg2NSw5IEBAIHByZV9tdXRleF9lcnI6CiAJLyog aW50ZWxfZ3B1X2J1c3kgc2hvdWxkIGFsc28gZ2V0IGEgcmVmLCBzbyBpdCB3aWxsIGZyZWUgd2hl biB0aGUgZGV2aWNlCiAJICogaXMgcmVhbGx5IGlkbGUuICovCiAJaW50ZWxfcnVudGltZV9wbV9w dXQoZGV2X3ByaXYpOworCWlmIChvdXRfZmVuY2VfZmQgIT0gLTEpCisJCXB1dF91bnVzZWRfZmQo b3V0X2ZlbmNlX2ZkKTsKKwlmZW5jZV9wdXQoaW5fZmVuY2UpOwogCXJldHVybiByZXQ7CiB9CiAK QEAgLTE5MjcsMTEgKzE5NzUsNiBAQCBpOTE1X2dlbV9leGVjYnVmZmVyMihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpZiAoYXJn cy0+cnN2ZDIgIT0gMCkgewotCQlEUk1fREVCVUcoImRpcnR5IHJ2c2QyIGZpZWxkXG4iKTsKLQkJ cmV0dXJuIC1FSU5WQUw7Ci0JfQotCiAJZXhlYzJfbGlzdCA9IGRybV9tYWxsb2NfZ2ZwKGFyZ3Mt PmJ1ZmZlcl9jb3VudCwKIAkJCQkgICAgc2l6ZW9mKCpleGVjMl9saXN0KSwKIAkJCQkgICAgR0ZQ X1RFTVBPUkFSWSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9p bmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggNjZlZTdkMzAzMjlmLi5iN2RiMGE5YzM1 YjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRl L3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTI0Niw2ICsyNDYsNyBAQCB0eXBlZGVmIHN0cnVjdCBf ZHJtX2k5MTVfc2FyZWEgewogI2RlZmluZSBEUk1fSTkxNV9PVkVSTEFZX1BVVF9JTUFHRQkweDI3 CiAjZGVmaW5lIERSTV9JOTE1X09WRVJMQVlfQVRUUlMJMHgyOAogI2RlZmluZSBEUk1fSTkxNV9H RU1fRVhFQ0JVRkZFUjIJMHgyOQorI2RlZmluZSBEUk1fSTkxNV9HRU1fRVhFQ0JVRkZFUjJfV1IJ RFJNX0k5MTVfR0VNX0VYRUNCVUZGRVIyCiAjZGVmaW5lIERSTV9JOTE1X0dFVF9TUFJJVEVfQ09M T1JLRVkJMHgyYQogI2RlZmluZSBEUk1fSTkxNV9TRVRfU1BSSVRFX0NPTE9SS0VZCTB4MmIKICNk ZWZpbmUgRFJNX0k5MTVfR0VNX1dBSVQJMHgyYwpAQCAtMjc5LDYgKzI4MCw3IEBAIHR5cGVkZWYg c3RydWN0IF9kcm1faTkxNV9zYXJlYSB7CiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9JTklU CQlEUk1fSU9XKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fSU5JVCwgc3RydWN0IGRy bV9pOTE1X2dlbV9pbml0KQogI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fRVhFQ0JVRkZFUglE Uk1fSU9XKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fRVhFQ0JVRkZFUiwgc3RydWN0 IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyKQogI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fRVhF Q0JVRkZFUjIJRFJNX0lPVyhEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0VYRUNCVUZG RVIyLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyKQorI2RlZmluZSBEUk1fSU9DVExf STkxNV9HRU1fRVhFQ0JVRkZFUjJfV1IJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9J OTE1X0dFTV9FWEVDQlVGRkVSMl9XUiwgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMikK ICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX1BJTgkJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFT RSArIERSTV9JOTE1X0dFTV9QSU4sIHN0cnVjdCBkcm1faTkxNV9nZW1fcGluKQogI2RlZmluZSBE Uk1fSU9DVExfSTkxNV9HRU1fVU5QSU4JRFJNX0lPVyhEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5 MTVfR0VNX1VOUElOLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3VucGluKQogI2RlZmluZSBEUk1fSU9D VExfSTkxNV9HRU1fQlVTWQkJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dF TV9CVVNZLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2J1c3kpCkBAIC0zOTMsNiArMzk1LDEzIEBAIHR5 cGVkZWYgc3RydWN0IGRybV9pOTE1X2lycV93YWl0IHsKICAqLwogI2RlZmluZSBJOTE1X1BBUkFN X0hBU19FWEVDX0FTWU5DCSA0MQogCisvKiBRdWVyeSB3aGV0aGVyIERSTV9JOTE1X0dFTV9FWEVD QlVGRkVSMiBzdXBwb3J0cyBleHBsaWNpdCBmZW5jZSBzdXBwb3J0IC0KKyAqIGJvdGggYmVpbmcg YWJsZSB0byBwYXNzIGluIGEgc3luY19maWxlIGZkIHRvIHdhaXQgdXBvbiBiZWZvcmUgZXhlY3V0 aW5nLAorICogYW5kIGJlaW5nIGFibGUgdG8gcmV0dXJuIGEgbmV3IHN5bmNfZmlsZSBmZCB0aGF0 IGlzIHNpZ25hbGVkIHdoZW4gdGhlCisgKiBjdXJyZW50IHJlcXVlc3QgaXMgY29tcGxldGUuCisg Ki8KKyNkZWZpbmUgSTkxNV9QQVJBTV9IQVNfRVhFQ19GRU5DRQkgNDIKKwogdHlwZWRlZiBzdHJ1 Y3QgZHJtX2k5MTVfZ2V0cGFyYW0gewogCV9fczMyIHBhcmFtOwogCS8qCkBAIC04NDUsNyArODU0 LDMyIEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgewogICovCiAjZGVmaW5lIEk5 MTVfRVhFQ19SRVNPVVJDRV9TVFJFQU1FUiAgICAgKDE8PDE1KQogCi0jZGVmaW5lIF9fSTkxNV9F WEVDX1VOS05PV05fRkxBR1MgLShJOTE1X0VYRUNfUkVTT1VSQ0VfU1RSRUFNRVI8PDEpCisvKiBT ZXR0aW5nIEk5MTVfRVhFQ19GRU5DRV9JTiBpbXBsaWVzIHRoYXQgbG93ZXJfMzJfYml0cyhyc3Zk MikgcmVwcmVzZW50CisgKiBhIHN5bmNfZmlsZSBmZCB0byB3YWl0IHVwb24gKGluIGEgbm9uYmxv Y2tpbmcgbWFubmVyKSBwcmlvciB0byBleGVjdXRpbmcKKyAqIHRoZSBiYXRjaC4KKyAqCisgKiBS ZXR1cm5zIC1FSU5WQUwgaWYgdGhlIHN5bmNfZmlsZSBmZCBjYW5ub3QgYmUgZm91bmQuCisgKi8K KyNkZWZpbmUgSTkxNV9FWEVDX0ZFTkNFX0lOCQkoMTw8MTYpCisKKy8qIFNldHRpbmcgSTkxNV9F WEVDX0ZFTkNFX09VVCBjYXVzZXMgdGhlIGlvY3RsIHRvIHJldHVybiBhIHN5bmNfZmlsZSBmZAor ICogaW4gdGhlIHVwcGVyXzMyX2JpdHMocnN2ZDIpIHVwb24gc3VjY2Vzcy4gT3duZXJzaGlwIG9m IHRoZSBmZCBpcyBnaXZlbgorICogdG8gdGhlIGNhbGxlciwgYW5kIGl0IHNob3VsZCBiZSBjbG9z ZSgpIGFmdGVyIHVzZS4gKFRoZSBmZCBpcyBhIHJlZ3VsYXIKKyAqIGZpbGUgZGVzY3JpcHRvciBh bmQgd2lsbCBiZSBjbGVhbmVkIHVwIG9uIHByb2Nlc3MgdGVybWluYXRpb24uIEl0IGhvbGRzCisg KiBhIHJlZmVyZW5jZSB0byB0aGUgcmVxdWVzdCwgYnV0IG5vdGhpbmcgZWxzZS4pCisgKgorICog VGhlIHN5bmNfZmlsZSBmZCBjYW4gYmUgY29tYmluZWQgd2l0aCBvdGhlciBzeW5jX2ZpbGUgYW5k IHBhc3NlZCBlaXRoZXIKKyAqIHRvIGV4ZWNidWYgdXNpbmcgSTkxNV9FWEVDX0ZFTkNFX0lOLCB0 byBhdG9taWMgS01TIGlvY3RscyAoc28gdGhhdCBhIGZsaXAKKyAqIHdpbGwgb25seSBvY2N1ciBh ZnRlciB0aGlzIHJlcXVlc3QgY29tcGxldGVzKSwgb3IgdG8gb3RoZXIgZGV2aWNlcy4KKyAqCisg KiBVc2luZyBJOTE1X0VYRUNfRkVOQ0VfT1VUIHJlcXVpcmVzIHVzZSBvZgorICogRFJNX0lPQ1RM X0k5MTVfR0VNX0VYRUNCVUZGRVIyX1dSIGlvY3RsIHNvIHRoYXQgdGhlIHJlc3VsdCBpcyB3cml0 dGVuCisgKiBiYWNrIHRvIHVzZXJzcGFjZS4gRmFpbHVyZSB0byBkbyBzbyB3aWxsIGNhdXNlIHRo ZSBvdXQtZmVuY2UgdG8gYWx3YXlzCisgKiBiZSByZXBvcnRlZCBhcyB6ZXJvLCBhbmQgdGhlIHJl YWwgZmVuY2UgZmQgdG8gYmUgbGVha2VkLgorICovCisjZGVmaW5lIEk5MTVfRVhFQ19GRU5DRV9P VVQJCSgxPDwxNykKKworI2RlZmluZSBfX0k5MTVfRVhFQ19VTktOT1dOX0ZMQUdTICgtKEk5MTVf RVhFQ19GRU5DRV9PVVQ8PDEpKQogCiAjZGVmaW5lIEk5MTVfRVhFQ19DT05URVhUX0lEX01BU0sJ KDB4ZmZmZmZmZmYpCiAjZGVmaW5lIGk5MTVfZXhlY2J1ZmZlcjJfc2V0X2NvbnRleHRfaWQoZWIy LCBjb250ZXh0KSBcCi0tIAoyLjkuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==