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: Tue, 30 Aug 2016 09:18:12 +0100 Message-ID: <20160830081812.4110-19-chris@chris-wilson.co.uk> References: <20160830081812.4110-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-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9CBB86E5ED for ; Tue, 30 Aug 2016 08:18:40 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id i138so2018804wmf.3 for ; Tue, 30 Aug 2016 01:18:40 -0700 (PDT) In-Reply-To: <20160830081812.4110-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 Cc: mika.kuoppala@intel.com List-Id: intel-gfx@lists.freedesktop.org Tm93IHRoYXQgdGhlIHVzZXIgY2FuIG9wdC1vdXQgb2YgaW1wbGljaXQgZmVuY2luZywgd2UgbmVl ZCB0byBnaXZlIHRoZW0KYmFjayBjb250cm9sIG92ZXIgdGhlIGZlbmNpbmcuIFdlIGVtcGxveSBz eW5jX2ZpbGUgdG8gd3JhcCBvdXIKZHJtX2k5MTVfZ2VtX3JlcXVlc3QgYW5kIHByb3ZpZGUgYW4g ZmQgdGhhdCB1c2Vyc3BhY2UgY2FuIG1lcmdlIHdpdGgKb3RoZXIgc3luY19maWxlIGZkcyBhbmQg cGFzcyBiYWNrIHRvIHRoZSBrZXJuZWwgdG8gd2FpdCB1cG9uIGJlZm9yZQpmdXR1cmUgZXhlY3V0 aW9uLgoKVGVzdGNhc2U6IGlndC9nZW1fZXhlY19mZW5jZQpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9LY29uZmlnICAgICAgICAgICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5jICAgICAgICAgICAgfCAgNSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZXhlY2J1ZmZlci5jIHwgODIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBpbmNsdWRl L3VhcGkvZHJtL2k5MTVfZHJtLmggICAgICAgICAgICAgICAgfCAzNiArKysrKysrKysrKystCiA0 IGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9LY29uZmlnCmluZGV4IDc3NjllNDY5MTE4Zi4uMzE5Y2EyN2VhNzE5IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tj b25maWcKQEAgLTE4LDYgKzE4LDcgQEAgY29uZmlnIERSTV9JOTE1CiAJc2VsZWN0IElOUFVUIGlm IEFDUEkKIAlzZWxlY3QgQUNQSV9WSURFTyBpZiBBQ1BJCiAJc2VsZWN0IEFDUElfQlVUVE9OIGlm IEFDUEkKKwlzZWxlY3QgU1lOQ19GSUxFCiAJaGVscAogCSAgQ2hvb3NlIHRoaXMgb3B0aW9uIGlm IHlvdSBoYXZlIGEgc3lzdGVtIHRoYXQgaGFzICJJbnRlbCBHcmFwaGljcwogCSAgTWVkaWEgQWNj ZWxlcmF0b3IiIG9yICJIRCBHcmFwaGljcyIgaW50ZWdyYXRlZCBncmFwaGljcywKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jCmluZGV4IDQzN2FiMDY5NTM3My4uNDkyYzRkNGU1ZWJjIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMKQEAgLTM2NSw2ICszNjUsOSBAQCBzdGF0aWMgaW50IGk5MTVfZ2V0cGFy YW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAljYXNlIEk5MTVfUEFSQU1f SEFTX0VYRUNfQVNZTkM6CiAJCXZhbHVlID0gMTsKIAkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFN X0hBU19FWEVDX0ZFTkNFOgorCQl2YWx1ZSA9IDE7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCURS TV9ERUJVRygiVW5rbm93biBwYXJhbWV0ZXIgJWRcbiIsIHBhcmFtLT5wYXJhbSk7CiAJCXJldHVy biAtRUlOVkFMOwpAQCAtMjU1Miw3ICsyNTU1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f aW9jdGxfZGVzYyBpOTE1X2lvY3Rsc1tdID0gewogCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfSFdT X0FERFIsIGRybV9ub29wLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAogCURS TV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX0lOSVQsIGRybV9ub29wLCBEUk1fQVVUSHxEUk1fTUFT VEVSfERSTV9ST09UX09OTFkpLAogCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX0VYRUNCVUZG RVIsIGk5MTVfZ2VtX2V4ZWNidWZmZXIsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGX0RSVihJ OTE1X0dFTV9FWEVDQlVGRkVSMiwgaTkxNV9nZW1fZXhlY2J1ZmZlcjIsIERSTV9BVVRIfERSTV9S RU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX0VYRUNCVUZGRVIyX1dS LCBpOTE1X2dlbV9leGVjYnVmZmVyMiwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJN X0lPQ1RMX0RFRl9EUlYoSTkxNV9HRU1fUElOLCBpOTE1X2dlbV9yZWplY3RfcGluX2lvY3RsLCBE Uk1fQVVUSHxEUk1fUk9PVF9PTkxZKSwKIAlEUk1fSU9DVExfREVGX0RSVihJOTE1X0dFTV9VTlBJ TiwgaTkxNV9nZW1fcmVqZWN0X3Bpbl9pb2N0bCwgRFJNX0FVVEh8RFJNX1JPT1RfT05MWSksCiAJ RFJNX0lPQ1RMX0RFRl9EUlYoSTkxNV9HRU1fQlVTWSwgaTkxNV9nZW1fYnVzeV9pb2N0bCwgRFJN X0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9l eGVjYnVmZmVyLmMKaW5kZXggY2E3Njc1YzljMWI3Li45ODA0MmZjMjY0MDQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTI4LDYgKzI4LDcgQEAKIAog I2luY2x1ZGUgPGxpbnV4L2RtYV9yZW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9yZXNlcnZh dGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L3N5bmNfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3Vh Y2Nlc3MuaD4KIAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CkBAIC0xMTUzLDYgKzExNTQsMzUgQEAg ZWJfYXdhaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnRvLAogCXJldHVy biAwOwogfQogCitzdGF0aWMgaW50IGViX2F3YWl0X2ZlbmNlKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxLCBzdHJ1Y3QgZmVuY2UgKmZlbmNlKQoreworCXN0cnVjdCBmZW5jZV9hcnJh eSAqYXJyYXk7CisJaW50IGk7CisKKwlpZiAoZmVuY2VfaXNfaTkxNShmZW5jZSkpCisJCXJldHVy biBlYl9hd2FpdF9yZXF1ZXN0KHJlcSwgdG9fcmVxdWVzdChmZW5jZSkpOworCisJaWYgKCFmZW5j ZV9pc19hcnJheShmZW5jZSkpCisJCXJldHVybiBpOTE1X3N3X2ZlbmNlX2F3YWl0X2RtYV9mZW5j ZSgmcmVxLT5zdWJtaXQsCisJCQkJCQkgICAgIGZlbmNlLCBHRlBfS0VSTkVMKTsKKworCWFycmF5 ID0gdG9fZmVuY2VfYXJyYXkoZmVuY2UpOworCWZvciAoaSA9IDA7IGkgPCBhcnJheS0+bnVtX2Zl bmNlczsgaSsrKSB7CisJCXN0cnVjdCBmZW5jZSAqY2hpbGQgPSBhcnJheS0+ZmVuY2VzW2ldOwor CQlpbnQgcmV0OworCisJCWlmIChmZW5jZV9pc19pOTE1KGNoaWxkKSkKKwkJCXJldCA9IGViX2F3 YWl0X3JlcXVlc3QocmVxLCB0b19yZXF1ZXN0KGNoaWxkKSk7CisJCWVsc2UKKwkJCXJldCA9IGk5 MTVfc3dfZmVuY2VfYXdhaXRfZG1hX2ZlbmNlKCZyZXEtPnN1Ym1pdCwKKwkJCQkJCQkgICAgY2hp bGQsIEdGUF9LRVJORUwpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJ cmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQKIGViX2F3YWl0X2JvKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqdG8sCiAJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLApA QCAtMTcwMSw2ICsxNzMxLDkgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpw YXJhbXMgPSAmcGFyYW1zX21hc3RlcjsKIAljb25zdCB1MzIgY3R4X2lkID0gaTkxNV9leGVjYnVm ZmVyMl9nZXRfY29udGV4dF9pZCgqYXJncyk7CiAJdTMyIGRpc3BhdGNoX2ZsYWdzOworCXN0cnVj dCBmZW5jZSAqaW5fZmVuY2UgPSBOVUxMOworCXN0cnVjdCBzeW5jX2ZpbGUgKm91dF9mZW5jZSA9 IE5VTEw7CisJaW50IG91dF9mZW5jZV9mZCA9IC0xOwogCWludCByZXQ7CiAJYm9vbCBuZWVkX3Jl bG9jczsKIApAQCAtMTc0NCw2ICsxNzc3LDIzIEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZGlzcGF0Y2hfZmxhZ3MgfD0gSTkx NV9ESVNQQVRDSF9SUzsKIAl9CiAKKwlpZiAoYXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNfRkVOQ0Vf SU4pIHsKKwkJaW5fZmVuY2UgPSBzeW5jX2ZpbGVfZ2V0X2ZlbmNlKGxvd2VyXzMyX2JpdHMoYXJn cy0+cnN2ZDIpKTsKKwkJaWYgKCFpbl9mZW5jZSkgeworCQkJcmV0ID0gLUVJTlZBTDsKKwkJCWdv dG8gcHJlX211dGV4X2VycjsKKwkJfQorCX0KKworCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhF Q19GRU5DRV9PVVQpIHsKKwkJb3V0X2ZlbmNlX2ZkID0gZ2V0X3VudXNlZF9mZF9mbGFncyhPX0NM T0VYRUMpOworCQlpZiAob3V0X2ZlbmNlX2ZkIDwgMCkgeworCQkJcmV0ID0gb3V0X2ZlbmNlX2Zk OworCQkJb3V0X2ZlbmNlX2ZkID0gLTE7CisJCQlnb3RvIHByZV9tdXRleF9lcnI7CisJCX0KKwl9 CisKIAkvKiBUYWtlIGEgbG9jYWwgd2FrZXJlZiBmb3IgcHJlcGFyaW5nIHRvIGRpc3BhdGNoIHRo ZSBleGVjYnVmIGFzCiAJICogd2UgZXhwZWN0IHRvIGFjY2VzcyB0aGUgaGFyZHdhcmUgZmFpcmx5 IGZyZXF1ZW50bHkgaW4gdGhlCiAJICogcHJvY2Vzcy4gVXBvbiBmaXJzdCBkaXNwYXRjaCwgd2Ug YWNxdWlyZSBhbm90aGVyIHByb2xvbmdlZApAQCAtMTg4OCw2ICsxOTM4LDIwIEBAIGk5MTVfZ2Vt X2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZ290 byBlcnJfYmF0Y2hfdW5waW47CiAJfQogCisJaWYgKGluX2ZlbmNlKSB7CisJCXJldCA9IGViX2F3 YWl0X2ZlbmNlKHBhcmFtcy0+cmVxdWVzdCwgaW5fZmVuY2UpOworCQlpZiAocmV0IDwgMCkKKwkJ CWdvdG8gZXJyX3JlcXVlc3Q7CisJfQorCisJaWYgKG91dF9mZW5jZV9mZCAhPSAtMSkgeworCQlv dXRfZmVuY2UgPSBzeW5jX2ZpbGVfY3JlYXRlKGZlbmNlX2dldCgmcGFyYW1zLT5yZXF1ZXN0LT5m ZW5jZSkpOworCQlpZiAoIW91dF9mZW5jZSkgeworCQkJcmV0ID0gLUVOT01FTTsKKwkJCWdvdG8g ZXJyX3JlcXVlc3Q7CisJCX0KKwl9CisKIAkvKiBXaGlsc3QgdGhpcyByZXF1ZXN0IGV4aXN0cywg YmF0Y2hfb2JqIHdpbGwgYmUgb24gdGhlCiAJICogYWN0aXZlX2xpc3QsIGFuZCBzbyB3aWxsIGhv bGQgdGhlIGFjdGl2ZSByZWZlcmVuY2UuIE9ubHkgd2hlbiB0aGlzCiAJICogcmVxdWVzdCBpcyBy ZXRpcmVkIHdpbGwgdGhlIHRoZSBiYXRjaF9vYmogYmUgbW92ZWQgb250byB0aGUKQEAgLTE5MTUs NiArMTk3OSwxNiBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCiAJcmV0ID0gZXhlY2J1Zl9zdWJtaXQocGFyYW1zLCBhcmdzLCAmZWIt PnZtYXMpOwogZXJyX3JlcXVlc3Q6CiAJX19pOTE1X2FkZF9yZXF1ZXN0KHBhcmFtcy0+cmVxdWVz dCwgcmV0ID09IDApOworCWlmIChvdXRfZmVuY2UpIHsKKwkJaWYgKHJldCA9PSAwKSB7CisJCQlm ZF9pbnN0YWxsKG91dF9mZW5jZV9mZCwgb3V0X2ZlbmNlLT5maWxlKTsKKwkJCWFyZ3MtPnJzdmQy ICY9IH4oKHU2NCkweGZmZmZmZmZmIDw8IDMyKTsKKwkJCWFyZ3MtPnJzdmQyIHw9ICh1NjQpb3V0 X2ZlbmNlX2ZkIDw8IDMyOworCQkJb3V0X2ZlbmNlX2ZkID0gLTE7CisJCX0gZWxzZSB7CisJCQlm cHV0KG91dF9mZW5jZS0+ZmlsZSk7CisJCX0KKwl9CiAKIGVycl9iYXRjaF91bnBpbjoKIAkvKgpA QCAtMTkzNiw2ICsyMDEwLDkgQEAgcHJlX211dGV4X2VycjoKIAkvKiBpbnRlbF9ncHVfYnVzeSBz aG91bGQgYWxzbyBnZXQgYSByZWYsIHNvIGl0IHdpbGwgZnJlZSB3aGVuIHRoZSBkZXZpY2UKIAkg KiBpcyByZWFsbHkgaWRsZS4gKi8KIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7CisJ aWYgKG91dF9mZW5jZV9mZCAhPSAtMSkKKwkJcHV0X3VudXNlZF9mZChvdXRfZmVuY2VfZmQpOwor CWZlbmNlX3B1dChpbl9mZW5jZSk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMjA0MywxMSArMjEy MCw2IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChhcmdzLT5yc3ZkMiAhPSAwKSB7 Ci0JCURSTV9ERUJVRygiZGlydHkgcnZzZDIgZmllbGRcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsK LQl9Ci0KIAlleGVjMl9saXN0ID0gZHJtX21hbGxvY19nZnAoYXJncy0+YnVmZmVyX2NvdW50LAog CQkJCSAgICBzaXplb2YoKmV4ZWMyX2xpc3QpLAogCQkJCSAgICBHRlBfVEVNUE9SQVJZKTsKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0v aTkxNV9kcm0uaAppbmRleCA3MzBjYmEyM2Y5ODIuLjczNWZkNTA5ZmIzMSAxMDA2NDQKLS0tIGEv aW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9k cm0uaApAQCAtMjQ2LDYgKzI0Niw3IEBAIHR5cGVkZWYgc3RydWN0IF9kcm1faTkxNV9zYXJlYSB7 CiAjZGVmaW5lIERSTV9JOTE1X09WRVJMQVlfUFVUX0lNQUdFCTB4MjcKICNkZWZpbmUgRFJNX0k5 MTVfT1ZFUkxBWV9BVFRSUwkweDI4CiAjZGVmaW5lIERSTV9JOTE1X0dFTV9FWEVDQlVGRkVSMgkw eDI5CisjZGVmaW5lIERSTV9JOTE1X0dFTV9FWEVDQlVGRkVSMl9XUglEUk1fSTkxNV9HRU1fRVhF Q0JVRkZFUjIKICNkZWZpbmUgRFJNX0k5MTVfR0VUX1NQUklURV9DT0xPUktFWQkweDJhCiAjZGVm aW5lIERSTV9JOTE1X1NFVF9TUFJJVEVfQ09MT1JLRVkJMHgyYgogI2RlZmluZSBEUk1fSTkxNV9H RU1fV0FJVAkweDJjCkBAIC0yNzksNiArMjgwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX2RybV9pOTE1 X3NhcmVhIHsKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0lOSVQJCURSTV9JT1coRFJNX0NP TU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9JTklULCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2luaXQp CiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9FWEVDQlVGRkVSCURSTV9JT1coRFJNX0NPTU1B TkRfQkFTRSArIERSTV9JOTE1X0dFTV9FWEVDQlVGRkVSLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4 ZWNidWZmZXIpCiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9FWEVDQlVGRkVSMglEUk1fSU9X KERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fRVhFQ0JVRkZFUjIsIHN0cnVjdCBkcm1f aTkxNV9nZW1fZXhlY2J1ZmZlcjIpCisjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9FWEVDQlVG RkVSMl9XUglEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0VYRUNCVUZG RVIyX1dSLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyKQogI2RlZmluZSBEUk1fSU9D VExfSTkxNV9HRU1fUElOCQlEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VN X1BJTiwgc3RydWN0IGRybV9pOTE1X2dlbV9waW4pCiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dF TV9VTlBJTglEUk1fSU9XKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fVU5QSU4sIHN0 cnVjdCBkcm1faTkxNV9nZW1fdW5waW4pCiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9CVVNZ CQlEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0JVU1ksIHN0cnVjdCBk cm1faTkxNV9nZW1fYnVzeSkKQEAgLTM5Myw2ICszOTUsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgZHJt X2k5MTVfaXJxX3dhaXQgewogICovCiAjZGVmaW5lIEk5MTVfUEFSQU1fSEFTX0VYRUNfQVNZTkMJ IDQxCiAKKy8qIFF1ZXJ5IHdoZXRoZXIgRFJNX0k5MTVfR0VNX0VYRUNCVUZGRVIyIHN1cHBvcnRz IGV4cGxpY2l0IGZlbmNlIHN1cHBvcnQgLQorICogYm90aCBiZWluZyBhYmxlIHRvIHBhc3MgaW4g YSBzeW5jX2ZpbGUgZmQgdG8gd2FpdCB1cG9uIGJlZm9yZSBleGVjdXRpbmcsCisgKiBhbmQgYmVp bmcgYWJsZSB0byByZXR1cm4gYSBuZXcgc3luY19maWxlIGZkIHRoYXQgaXMgc2lnbmFsZWQgd2hl biB0aGUKKyAqIGN1cnJlbnQgcmVxdWVzdCBpcyBjb21wbGV0ZS4KKyAqLworI2RlZmluZSBJOTE1 X1BBUkFNX0hBU19FWEVDX0ZFTkNFCSA0MgorCiB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9nZXRw YXJhbSB7CiAJX19zMzIgcGFyYW07CiAJLyoKQEAgLTg0Miw3ICs4NTEsMzIgQEAgc3RydWN0IGRy bV9pOTE1X2dlbV9leGVjYnVmZmVyMiB7CiAgKi8KICNkZWZpbmUgSTkxNV9FWEVDX1JFU09VUkNF X1NUUkVBTUVSICAgICAoMTw8MTUpCiAKLSNkZWZpbmUgX19JOTE1X0VYRUNfVU5LTk9XTl9GTEFH UyAtKEk5MTVfRVhFQ19SRVNPVVJDRV9TVFJFQU1FUjw8MSkKKy8qIFNldHRpbmcgSTkxNV9FWEVD X0ZFTkNFX0lOIGltcGxpZXMgdGhhdCBsb3dlcl8zMl9iaXRzKHJzdmQyKSByZXByZXNlbnQKKyAq IGEgc3luY19maWxlIGZkIHRvIHdhaXQgdXBvbiAoaW4gYSBub25ibG9ja2luZyBtYW5uZXIpIHBy aW9yIHRvIGV4ZWN1dGluZworICogdGhlIGJhdGNoLgorICoKKyAqIFJldHVybnMgLUVJTlZBTCBp ZiB0aGUgc3luY19maWxlIGZkIGNhbm5vdCBiZSBmb3VuZC4KKyAqLworI2RlZmluZSBJOTE1X0VY RUNfRkVOQ0VfSU4JCSgxPDwxNikKKworLyogU2V0dGluZyBJOTE1X0VYRUNfRkVOQ0VfT1VUIGNh dXNlcyB0aGUgaW9jdGwgdG8gcmV0dXJuIGEgc3luY19maWxlIGZkCisgKiBpbiB0aGUgdXBwZXJf MzJfYml0cyhyc3ZkMikgdXBvbiBzdWNjZXNzLiBPd25lcnNoaXAgb2YgdGhlIGZkIGlzIGdpdmVu CisgKiB0byB0aGUgY2FsbGVyLCBhbmQgaXQgc2hvdWxkIGJlIGNsb3NlKCkgYWZ0ZXIgdXNlLiAo VGhlIGZkIGlzIGEgcmVndWxhcgorICogZmlsZSBkZXNjcmlwdG9yIGFuZCB3aWxsIGJlIGNsZWFu ZWQgdXAgb24gcHJvY2VzcyB0ZXJtaW5hdGlvbi4gSXQgaG9sZHMKKyAqIGEgcmVmZXJlbmNlIHRv IHRoZSByZXF1ZXN0LCBidXQgbm90aGluZyBlbHNlLikKKyAqCisgKiBUaGUgc3luY19maWxlIGZk IGNhbiBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHN5bmNfZmlsZSBhbmQgcGFzc2VkIGVpdGhlcgor ICogdG8gZXhlY2J1ZiB1c2luZyBJOTE1X0VYRUNfRkVOQ0VfSU4sIHRvIGF0b21pYyBLTVMgaW9j dGxzIChzbyB0aGF0IGEgZmxpcAorICogd2lsbCBvbmx5IG9jY3VyIGFmdGVyIHRoaXMgcmVxdWVz dCBjb21wbGV0ZXMpLCBvciB0byBvdGhlciBkZXZpY2VzLgorICoKKyAqIFVzaW5nIEk5MTVfRVhF Q19GRU5DRV9PVVQgcmVxdWlyZXMgdXNlIG9mCisgKiBEUk1fSU9DVExfSTkxNV9HRU1fRVhFQ0JV RkZFUjJfV1IgaW9jdGwgc28gdGhhdCB0aGUgcmVzdWx0IGlzIHdyaXR0ZW4KKyAqIGJhY2sgdG8g dXNlcnNwYWNlLiBGYWlsdXJlIHRvIGRvIHNvIHdpbGwgY2F1c2UgdGhlIG91dC1mZW5jZSB0byBh bHdheXMKKyAqIGJlIHJlcG9ydGVkIGFzIHplcm8sIGFuZCB0aGUgcmVhbCBmZW5jZSBmZCB0byBi ZSBsZWFrZWQuCisgKi8KKyNkZWZpbmUgSTkxNV9FWEVDX0ZFTkNFX09VVAkJKDE8PDE3KQorCisj ZGVmaW5lIF9fSTkxNV9FWEVDX1VOS05PV05fRkxBR1MgKC0oSTkxNV9FWEVDX0ZFTkNFX09VVDw8 MSkpCiAKICNkZWZpbmUgSTkxNV9FWEVDX0NPTlRFWFRfSURfTUFTSwkoMHhmZmZmZmZmZikKICNk ZWZpbmUgaTkxNV9leGVjYnVmZmVyMl9zZXRfY29udGV4dF9pZChlYjIsIGNvbnRleHQpIFwKLS0g CjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK