From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 3/4] drm/i915: Emit pipelined fence changes Date: Mon, 3 Jul 2017 11:14:11 +0100 Message-ID: <20170703101412.30820-3-chris@chris-wilson.co.uk> References: <20170703101412.30820-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 fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE6CD6E0DC for ; Mon, 3 Jul 2017 10:14:25 +0000 (UTC) In-Reply-To: <20170703101412.30820-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 TWFueSB5ZWFycyBhZ28sIGxvbmcgYmVmb3JlIHJlcXVlc3RzLCB3ZSB0cmllZCBkb2luZyB0aGlz LiBXZSBuZXZlcgpxdWl0ZSBnb3QgaXQgcmlnaHQsIGJ1dCBub3cgd2l0aCByZXF1ZXN0cyB3ZSBo YXZlIHRoZSB0cmFja2luZyB0byBkbyB0aGUKam9iIHByb3Blcmx5IQoKT25lIG9mIHRoZSBzdGFs bCBwb2ludHMgZm9yIGdlbjIvZ2VuMyBpcyB0aGUgdXNlIG9mIGZlbmNlIHJlZ2lzdGVycyBmb3IK R1BVIG9wZXJhdGlvbnMuIFRoZXJlIGFyZSBvbmx5IGEgZmV3IGF2YWlsYWJsZSwgYW5kIGN1cnJl bnRseSBpZiB3ZQpleGhhdXN0IHRoZSBhdmFpbGFibGUgZmVuY2UgcmVnaXN0ZXIgd2UgbXVzdCBz dGFsbCB0aGUgR1BVIGJldHdlZW4KYmF0Y2hlcy4gQnkgcGlwZWxpbmluZyB0aGUgZmVuY2UgcmVn aXN0ZXIgd3JpdGVzLCB3ZSBjYW4gYXZvaWQgdGhlIHN0YWxsCmFuZCBjb250aW51b3VzbHkgZW1p dCB0aGUgYmF0Y2hlcy4gVGhlIGNoYWxsZW5nZSBpcyByZW1lbWJlcmluZyB0byB3YWl0CmZvciB0 aG9zZSBwaXBlbGluZWQgTFJJIGJlZm9yZSBhY2Nlc3NpbmcgdGhlIGZlbmNlIHdpdGggdGhlIENQ VSwgYW5kCnRoYXQgaXMgd2hhdCBvdXIgcmVxdWVzdCB0cmFja2luZyBtYWtlcyBlYXN5LgoKU2ln bmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgICAxICsKIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICAxNSArKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlX3JlZy5jICB8IDE5MyArKysrKysrKysrKysrKysr KysrKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2VfcmVnLmgg IHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgICAgICAgICAgICB8ICAg MSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oICAgICAgICAgICAgfCAgIDQgKwog NiBmaWxlcyBjaGFuZ2VkLCAxODYgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggOTM5YTI5OTI2MGU5Li41MzE4ZTMyMWNlNTAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtNDg4MCw2ICs0ODgwLDcgQEAgaTkxNV9nZW1fbG9hZF9p bml0X2ZlbmNlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWZlbmNlLT5p OTE1ID0gZGV2X3ByaXY7CiAJCWZlbmNlLT5pZCA9IGk7CiAJCWxpc3RfYWRkX3RhaWwoJmZlbmNl LT5saW5rLCAmZGV2X3ByaXYtPm1tLmZlbmNlX2xpc3QpOworCQlpbml0X3JlcXVlc3RfYWN0aXZl KCZmZW5jZS0+cGlwZWxpbmVkLCBOVUxMKTsKIAl9CiAJaTkxNV9nZW1fcmVzdG9yZV9mZW5jZXMo ZGV2X3ByaXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9l eGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMK aW5kZXggMjJhOWY1MzU4MzIyLi4xOTM0N2FkMGU3YWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTM2NSwxMSArMzY1LDEyIEBAIGViX3Bpbl92bWEo c3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsCiAJCXJldHVybjsKIAogCWlmICh1bmxpa2VseShl bnRyeS0+ZmxhZ3MgJiBFWEVDX09CSkVDVF9ORUVEU19GRU5DRSkpIHsKLQkJaWYgKHVubGlrZWx5 KGk5MTVfdm1hX3Bpbl9mZW5jZSh2bWEpKSkgeworCQlpZiAodW5saWtlbHkoaTkxNV92bWFfcmVz ZXJ2ZV9mZW5jZSh2bWEpKSkgewogCQkJaTkxNV92bWFfdW5waW4odm1hKTsKIAkJCXJldHVybjsK IAkJfQogCisJCWVudHJ5LT5mbGFncyAmPSB+RVhFQ19PQkpFQ1RfQVNZTkM7CiAJCWlmICh2bWEt PmZlbmNlKQogCQkJZW50cnktPmZsYWdzIHw9IF9fRVhFQ19PQkpFQ1RfSEFTX0ZFTkNFOwogCX0K QEAgLTU2NCwxMiArNTY1LDEzIEBAIHN0YXRpYyBpbnQgZWJfcmVzZXJ2ZV92bWEoY29uc3Qgc3Ry dWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsCiAJR0VNX0JVR19PTihlYl92bWFfbWlzcGxhY2VkKGVu dHJ5LCB2bWEpKTsKIAogCWlmICh1bmxpa2VseShlbnRyeS0+ZmxhZ3MgJiBFWEVDX09CSkVDVF9O RUVEU19GRU5DRSkpIHsKLQkJZXJyID0gaTkxNV92bWFfcGluX2ZlbmNlKHZtYSk7CisJCWVyciA9 IGk5MTVfdm1hX3Jlc2VydmVfZmVuY2Uodm1hKTsKIAkJaWYgKHVubGlrZWx5KGVycikpIHsKIAkJ CWk5MTVfdm1hX3VucGluKHZtYSk7CiAJCQlyZXR1cm4gZXJyOwogCQl9CiAKKwkJZW50cnktPmZs YWdzICY9IH5FWEVDX09CSkVDVF9BU1lOQzsKIAkJaWYgKHZtYS0+ZmVuY2UpCiAJCQllbnRyeS0+ ZmxhZ3MgfD0gX19FWEVDX09CSkVDVF9IQVNfRkVOQ0U7CiAJfQpAQCAtMTg0OCw2ICsxODUwLDEy IEBAIHN0YXRpYyBpbnQgZWJfbW92ZV90b19ncHUoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIp CiAJCWlmICh1bmxpa2VseShvYmotPmNhY2hlX2RpcnR5ICYmICFvYmotPmNhY2hlX2NvaGVyZW50 KSkKIAkJCWk5MTVfZ2VtX2NsZmx1c2hfb2JqZWN0KG9iaiwgMCk7CiAKKwkJaWYgKHVubGlrZWx5 KGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX05FRURTX0ZFTkNFKSkgeworCQkJZXJyID0gaTkx NV92bWFfZW1pdF9waXBlbGluZWRfZmVuY2Uodm1hLCBlYi0+cmVxdWVzdCk7CisJCQlpZiAoZXJy KQorCQkJCXJldHVybiBlcnI7CisJCX0KKwogCQllcnIgPSBpOTE1X2dlbV9yZXF1ZXN0X2F3YWl0 X29iamVjdAogCQkJKGViLT5yZXF1ZXN0LCBvYmosIGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNU X1dSSVRFKTsKIAkJaWYgKGVycikKQEAgLTE5MzIsOSArMTk0MCw2IEBAIHZvaWQgaTkxNV92bWFf bW92ZV90b19hY3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCW9iai0+YmFzZS5yZWFkX2Rv bWFpbnMgPSAwOwogCX0KIAlvYmotPmJhc2UucmVhZF9kb21haW5zIHw9IEk5MTVfR0VNX0dQVV9E T01BSU5TOwotCi0JaWYgKGZsYWdzICYgRVhFQ19PQkpFQ1RfTkVFRFNfRkVOQ0UpCi0JCWk5MTVf Z2VtX2FjdGl2ZV9zZXQoJnZtYS0+bGFzdF9mZW5jZSwgcmVxKTsKIH0KIAogc3RhdGljIGludCBp OTE1X3Jlc2V0X2dlbjdfc29sX29mZnNldHMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlX3JlZy5jCmluZGV4IDU1YWM3 YmMxNGZjZS4uZDBjZDA1MWMxOWZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9mZW5jZV9yZWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9m ZW5jZV9yZWcuYwpAQCAtNTUsMTAgKzU1LDkgQEAKICAqIENQVSBwdGVzIGludG8gR1RUIG1tYXBz IChub3QgdGhlIEdUVCBwdGVzIHRoZW1zZWx2ZXMpIGFzIG5lZWRlZC4KICAqLwogCi0jZGVmaW5l IHBpcGVsaW5lZCAwCi0KLXN0YXRpYyB2b2lkIGk5NjVfd3JpdGVfZmVuY2VfcmVnKHN0cnVjdCBk cm1faTkxNV9mZW5jZV9yZWcgKmZlbmNlLAotCQkJCSBzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3N0 YXRpYyBpbnQgaTk2NV93cml0ZV9mZW5jZV9yZWcoc3RydWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAq ZmVuY2UsCisJCQkJc3RydWN0IGk5MTVfdm1hICp2bWEsCisJCQkJc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpwaXBlbGluZWQpCiB7CiAJaTkxNV9yZWdfdCBmZW5jZV9yZWdfbG8sIGZlbmNl X3JlZ19oaTsKIAlpbnQgZmVuY2VfcGl0Y2hfc2hpZnQ7CkBAIC0xMTAsMTEgKzEwOSwzMCBAQCBz dGF0aWMgdm9pZCBpOTY1X3dyaXRlX2ZlbmNlX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfZmVuY2VfcmVn ICpmZW5jZSwKIAkJSTkxNV9XUklURShmZW5jZV9yZWdfaGksIHVwcGVyXzMyX2JpdHModmFsKSk7 CiAJCUk5MTVfV1JJVEUoZmVuY2VfcmVnX2xvLCBsb3dlcl8zMl9iaXRzKHZhbCkpOwogCQlQT1NU SU5HX1JFQUQoZmVuY2VfcmVnX2xvKTsKKwl9IGVsc2UgeworCQl1MzIgKmNzOworCisJCWNzID0g aW50ZWxfcmluZ19iZWdpbihwaXBlbGluZWQsIDgpOworCQlpZiAoSVNfRVJSKGNzKSkKKwkJCXJl dHVybiBQVFJfRVJSKGNzKTsKKworCQkqY3MrKyA9IE1JX0xPQURfUkVHSVNURVJfSU1NKDMpOwor CQkqY3MrKyA9IGk5MTVfbW1pb19yZWdfb2Zmc2V0KGZlbmNlX3JlZ19sbyk7CisJCSpjcysrID0g MDsKKwkJKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChmZW5jZV9yZWdfaGkpOworCQkqY3Mr KyA9IHVwcGVyXzMyX2JpdHModmFsKTsKKwkJKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChm ZW5jZV9yZWdfbG8pOworCQkqY3MrKyA9IGxvd2VyXzMyX2JpdHModmFsKTsKKwkJKmNzKysgPSBN SV9OT09QOworCQlpbnRlbF9yaW5nX2FkdmFuY2UocGlwZWxpbmVkLCBjcyk7CiAJfQorCisJcmV0 dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGk5MTVfd3JpdGVfZmVuY2VfcmVnKHN0cnVjdCBkcm1f aTkxNV9mZW5jZV9yZWcgKmZlbmNlLAotCQkJCSBzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3N0YXRp YyBpbnQgaTkxNV93cml0ZV9mZW5jZV9yZWcoc3RydWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAqZmVu Y2UsCisJCQkJc3RydWN0IGk5MTVfdm1hICp2bWEsCisJCQkJc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpwaXBlbGluZWQpCiB7CiAJdTMyIHZhbDsKIApAQCAtMTUwLDExICsxNjgsMjYgQEAg c3RhdGljIHZvaWQgaTkxNV93cml0ZV9mZW5jZV9yZWcoc3RydWN0IGRybV9pOTE1X2ZlbmNlX3Jl ZyAqZmVuY2UsCiAKIAkJSTkxNV9XUklURShyZWcsIHZhbCk7CiAJCVBPU1RJTkdfUkVBRChyZWcp OworCX0gZWxzZSB7CisJCXUzMiAqY3M7CisKKwkJY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHBpcGVs aW5lZCwgNCk7CisJCWlmIChJU19FUlIoY3MpKQorCQkJcmV0dXJuIFBUUl9FUlIoY3MpOworCisJ CSpjcysrID0gTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSk7CisJCSpjcysrID0gaTkxNV9tbWlvX3Jl Z19vZmZzZXQoRkVOQ0VfUkVHKGZlbmNlLT5pZCkpOworCQkqY3MrKyA9IHZhbDsKKwkJKmNzKysg PSBNSV9OT09QOworCQlpbnRlbF9yaW5nX2FkdmFuY2UocGlwZWxpbmVkLCBjcyk7CiAJfQorCisJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGk4MzBfd3JpdGVfZmVuY2VfcmVnKHN0cnVjdCBk cm1faTkxNV9mZW5jZV9yZWcgKmZlbmNlLAotCQkJCSBzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3N0 YXRpYyBpbnQgaTgzMF93cml0ZV9mZW5jZV9yZWcoc3RydWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAq ZmVuY2UsCisJCQkJc3RydWN0IGk5MTVfdm1hICp2bWEsCisJCQkJc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpwaXBlbGluZWQpCiB7CiAJdTMyIHZhbDsKIApAQCAtMTgyLDI5ICsyMTUsNDkg QEAgc3RhdGljIHZvaWQgaTgzMF93cml0ZV9mZW5jZV9yZWcoc3RydWN0IGRybV9pOTE1X2ZlbmNl X3JlZyAqZmVuY2UsCiAKIAkJSTkxNV9XUklURShyZWcsIHZhbCk7CiAJCVBPU1RJTkdfUkVBRChy ZWcpOworCX0gZWxzZSB7CisJCXUzMiAqY3M7CisKKwkJY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHBp cGVsaW5lZCwgNCk7CisJCWlmIChJU19FUlIoY3MpKQorCQkJcmV0dXJuIFBUUl9FUlIoY3MpOwor CisJCSpjcysrID0gTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSk7CisJCSpjcysrID0gaTkxNV9tbWlv X3JlZ19vZmZzZXQoRkVOQ0VfUkVHKGZlbmNlLT5pZCkpOworCQkqY3MrKyA9IHZhbDsKKwkJKmNz KysgPSBNSV9OT09QOworCQlpbnRlbF9yaW5nX2FkdmFuY2UocGlwZWxpbmVkLCBjcyk7CiAJfQor CisJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGZlbmNlX3dyaXRlKHN0cnVjdCBkcm1faTkx NV9mZW5jZV9yZWcgKmZlbmNlLAotCQkJc3RydWN0IGk5MTVfdm1hICp2bWEpCitzdGF0aWMgaW50 IGZlbmNlX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9mZW5jZV9yZWcgKmZlbmNlLAorCQkgICAgICAg c3RydWN0IGk5MTVfdm1hICp2bWEsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJxKQogeworCWludCBlcnI7CisKIAkvKiBQcmV2aW91cyBhY2Nlc3MgdGhyb3VnaCB0aGUg ZmVuY2UgcmVnaXN0ZXIgaXMgbWFyc2hhbGxlZCBieQogCSAqIHRoZSBtYigpIGluc2lkZSB0aGUg ZmF1bHQgaGFuZGxlcnMgKGk5MTVfZ2VtX3JlbGVhc2VfbW1hcHMpCiAJICogYW5kIGV4cGxpY2l0 bHkgbWFuYWdlZCBmb3IgaW50ZXJuYWwgdXNlcnMuCiAJICovCiAKIAlpZiAoSVNfR0VOMihmZW5j ZS0+aTkxNSkpCi0JCWk4MzBfd3JpdGVfZmVuY2VfcmVnKGZlbmNlLCB2bWEpOworCQllcnIgPSBp ODMwX3dyaXRlX2ZlbmNlX3JlZyhmZW5jZSwgdm1hLCBycSk7CiAJZWxzZSBpZiAoSVNfR0VOMyhm ZW5jZS0+aTkxNSkpCi0JCWk5MTVfd3JpdGVfZmVuY2VfcmVnKGZlbmNlLCB2bWEpOworCQllcnIg PSBpOTE1X3dyaXRlX2ZlbmNlX3JlZyhmZW5jZSwgdm1hLCBycSk7CiAJZWxzZQotCQlpOTY1X3dy aXRlX2ZlbmNlX3JlZyhmZW5jZSwgdm1hKTsKKwkJZXJyID0gaTk2NV93cml0ZV9mZW5jZV9yZWco ZmVuY2UsIHZtYSwgcnEpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CiAKIAkvKiBBY2Nlc3Mg dGhyb3VnaCB0aGUgZmVuY2VkIHJlZ2lvbiBhZnRlcndhcmRzIGlzCiAJICogb3JkZXJlZCBieSB0 aGUgcG9zdGluZyByZWFkcyB3aGlsc3Qgd3JpdGluZyB0aGUgcmVnaXN0ZXJzLgogCSAqLwogCiAJ ZmVuY2UtPmRpcnR5ID0gZmFsc2U7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgZmVuY2Vf dXBkYXRlKHN0cnVjdCBkcm1faTkxNV9mZW5jZV9yZWcgKmZlbmNlLApAQCAtMjEyLDE3ICsyNjUs MTUgQEAgc3RhdGljIGludCBmZW5jZV91cGRhdGUoc3RydWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAq ZmVuY2UsCiB7CiAJaW50IHJldDsKIAorCXJldCA9IGk5MTVfZ2VtX2FjdGl2ZV9yZXRpcmUoJmZl bmNlLT5waXBlbGluZWQsCisJCQkJICAgICAmZmVuY2UtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgp OworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKIAlpZiAodm1hKSB7CiAJCWlmICghaTkxNV92 bWFfaXNfbWFwX2FuZF9mZW5jZWFibGUodm1hKSkKIAkJCXJldHVybiAtRUlOVkFMOwogCi0JCWlm IChXQVJOKCFpOTE1X2dlbV9vYmplY3RfZ2V0X3N0cmlkZSh2bWEtPm9iaikgfHwKLQkJCSAhaTkx NV9nZW1fb2JqZWN0X2dldF90aWxpbmcodm1hLT5vYmopLAotCQkJICJib2d1cyBmZW5jZSBzZXR1 cCB3aXRoIHN0cmlkZTogMHgleCwgdGlsaW5nIG1vZGU6ICVpXG4iLAotCQkJIGk5MTVfZ2VtX29i amVjdF9nZXRfc3RyaWRlKHZtYS0+b2JqKSwKLQkJCSBpOTE1X2dlbV9vYmplY3RfZ2V0X3RpbGlu Zyh2bWEtPm9iaikpKQotCQkJcmV0dXJuIC1FSU5WQUw7Ci0KIAkJcmV0ID0gaTkxNV9nZW1fYWN0 aXZlX3JldGlyZSgmdm1hLT5sYXN0X2ZlbmNlLAogCQkJCQkgICAgICZ2bWEtPm9iai0+YmFzZS5k ZXYtPnN0cnVjdF9tdXRleCk7CiAJCWlmIChyZXQpCkBAIC0yNTMsNyArMzA0LDcgQEAgc3RhdGlj IGludCBmZW5jZV91cGRhdGUoc3RydWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAqZmVuY2UsCiAJICog dG8gdGhlIHJ1bnRpbWUgcmVzdW1lLCBzZWUgaTkxNV9nZW1fcmVzdG9yZV9mZW5jZXMoKS4KIAkg Ki8KIAlpZiAoaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKGZlbmNlLT5pOTE1KSkgewot CQlmZW5jZV93cml0ZShmZW5jZSwgdm1hKTsKKwkJZmVuY2Vfd3JpdGUoZmVuY2UsIHZtYSwgTlVM TCk7CiAJCWludGVsX3J1bnRpbWVfcG1fcHV0KGZlbmNlLT5pOTE1KTsKIAl9CiAKQEAgLTI4Nyw2 ICszMzgsOCBAQCBpbnQgaTkxNV92bWFfcHV0X2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQog CWlmICghZmVuY2UpCiAJCXJldHVybiAwOwogCisJR0VNX0JVR19PTihmZW5jZS0+dm1hICE9IHZt YSk7CisKIAlpZiAoZmVuY2UtPnBpbl9jb3VudCkKIAkJcmV0dXJuIC1FQlVTWTsKIApAQCAtMzQ0 LDExICszOTcsMTYgQEAgaTkxNV92bWFfcGluX2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQog CWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZCh2bWEtPnZtLT5pOTE1KTsKIAogCS8qIEp1c3QgdXBk YXRlIG91ciBwbGFjZSBpbiB0aGUgTFJVIGlmIG91ciBmZW5jZSBpcyBnZXR0aW5nIHJldXNlZC4g Ki8KLQlpZiAodm1hLT5mZW5jZSkgewotCQlmZW5jZSA9IHZtYS0+ZmVuY2U7CisJZmVuY2UgPSB2 bWEtPmZlbmNlOworCWlmIChmZW5jZSkgewogCQlHRU1fQlVHX09OKGZlbmNlLT52bWEgIT0gdm1h KTsKIAkJZmVuY2UtPnBpbl9jb3VudCsrOwogCQlpZiAoIWZlbmNlLT5kaXJ0eSkgeworCQkJZXJy ID0gaTkxNV9nZW1fYWN0aXZlX3JldGlyZSgmZmVuY2UtPnBpcGVsaW5lZCwKKwkJCQkJCSAgICAg JmZlbmNlLT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwkJCWlmIChlcnIpCisJCQkJZ290byBl cnJfdW5waW47CisKIAkJCWxpc3RfbW92ZV90YWlsKCZmZW5jZS0+bGluaywKIAkJCQkgICAgICAg JmZlbmNlLT5pOTE1LT5tbS5mZW5jZV9saXN0KTsKIAkJCXJldHVybiAwOwpAQCAtMzcyLDYgKzQz MCw5MyBAQCBpOTE1X3ZtYV9waW5fZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAJcmV0dXJu IGVycjsKIH0KIAoraW50IGk5MTVfdm1hX3Jlc2VydmVfZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2 bWEpCit7CisJc3RydWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAqZmVuY2U7CisKKwlsb2NrZGVwX2Fz c2VydF9oZWxkKCZ2bWEtPnZtLT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlHRU1fQlVHX09O KCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpOworCUdFTV9CVUdfT04oIWk5MTVf dm1hX2lzX3Bpbm5lZCh2bWEpKTsKKworCWZlbmNlID0gdm1hLT5mZW5jZTsKKwlpZiAoIWZlbmNl KSB7CisJCWlmICghaTkxNV9nZW1fb2JqZWN0X2lzX3RpbGVkKHZtYS0+b2JqKSkKKwkJCXJldHVy biAwOworCisJCWlmICghaTkxNV92bWFfaXNfbWFwX2FuZF9mZW5jZWFibGUodm1hKSkKKwkJCXJl dHVybiAtRUlOVkFMOworCisJCWZlbmNlID0gZmVuY2VfZmluZCh2bWEtPnZtLT5pOTE1KTsKKwkJ aWYgKElTX0VSUihmZW5jZSkpCisJCQlyZXR1cm4gUFRSX0VSUihmZW5jZSk7CisKKwkJdm1hLT5m ZW5jZSA9IGZlbmNlOworCisJCWlmIChmZW5jZS0+dm1hKSB7CisJCQlpOTE1X2dlbV9yZWxlYXNl X21tYXAoZmVuY2UtPnZtYS0+b2JqKTsKKwkJCWZlbmNlLT52bWEtPmZlbmNlID0gTlVMTDsKKwkJ fQorCQlmZW5jZS0+dm1hID0gdm1hOworCQlmZW5jZS0+ZGlydHkgPSB0cnVlOworCX0KKwlmZW5j ZS0+cGluX2NvdW50Kys7CisJbGlzdF9tb3ZlX3RhaWwoJmZlbmNlLT5saW5rLCAmZmVuY2UtPmk5 MTUtPm1tLmZlbmNlX2xpc3QpOworCisJR0VNX0JVR19PTighaTkxNV9nZW1fb2JqZWN0X2lzX3Rp bGVkKHZtYS0+b2JqKSk7CisJR0VNX0JVR19PTighaTkxNV92bWFfaXNfbWFwX2FuZF9mZW5jZWFi bGUodm1hKSk7CisJR0VNX0JVR19PTih2bWEtPm5vZGUuc2l6ZSAhPSB2bWEtPmZlbmNlX3NpemUp OworCUdFTV9CVUdfT04oIUlTX0FMSUdORUQodm1hLT5ub2RlLnN0YXJ0LCB2bWEtPmZlbmNlX2Fs aWdubWVudCkpOworCisJcmV0dXJuIDA7Cit9CisKK2ludCBpOTE1X3ZtYV9lbWl0X3BpcGVsaW5l ZF9mZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKKwkJCQkgIHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcnEpCit7CisJc3RydWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAqZmVuY2UgPSB2bWEt PmZlbmNlOworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcHJldjsKKwlpbnQgZXJyOwor CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmdm1hLT52bS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7 CisJR0VNX0JVR19PTihmZW5jZSAmJiAhZmVuY2UtPnBpbl9jb3VudCk7CisKKwlpZiAoIWZlbmNl KQorCQlnb3RvIG91dDsKKworCXByZXYgPSBpOTE1X2dlbV9hY3RpdmVfcmF3KCZmZW5jZS0+cGlw ZWxpbmVkLAorCQkJCSAgICZmZW5jZS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJaWYgKHBy ZXYpIHsKKwkJZXJyID0gaTkxNV9nZW1fcmVxdWVzdF9hd2FpdF9kbWFfZmVuY2UocnEsICZwcmV2 LT5mZW5jZSk7CisJCWlmIChlcnIpCisJCQlyZXR1cm4gZXJyOworCX0KKworCWlmICghZmVuY2Ut PmRpcnR5KQorCQlnb3RvIG91dDsKKworCUdFTV9CVUdfT04oIWk5MTVfdm1hX2lzX21hcF9hbmRf ZmVuY2VhYmxlKHZtYSkpOworCisJaWYgKGZlbmNlLT52bWEpIHsKKwkJcHJldiA9IGk5MTVfZ2Vt X2FjdGl2ZV9yYXcoJmZlbmNlLT52bWEtPmxhc3RfZmVuY2UsCisJCQkJCSAgICZmZW5jZS0+aTkx NS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJCWlmIChwcmV2KSB7CisJCQllcnIgPSBpOTE1X2dlbV9y ZXF1ZXN0X2F3YWl0X2RtYV9mZW5jZShycSwKKwkJCQkJCQkgICAgICAgJnByZXYtPmZlbmNlKTsK KwkJCWlmIChlcnIpCisJCQkJcmV0dXJuIGVycjsKKwkJfQorCX0KKworCWVyciA9IGZlbmNlX3dy aXRlKGZlbmNlLCB2bWEsIHJxKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJaTkxNV9n ZW1fYWN0aXZlX3NldCgmZmVuY2UtPnBpcGVsaW5lZCwgcnEpOworb3V0OgorCWk5MTVfZ2VtX2Fj dGl2ZV9zZXQoJnZtYS0+bGFzdF9mZW5jZSwgcnEpOworCXJldHVybiAwOworfQorCiAvKioKICAq IGk5MTVfZ2VtX3Jldm9rZV9mZW5jZXMgLSByZXZva2UgZmVuY2Ugc3RhdGUKICAqIEBkZXZfcHJp djogaTkxNSBkZXZpY2UgcHJpdmF0ZQpAQCAtNDI5LDcgKzU3NCw3IEBAIHZvaWQgaTkxNV9nZW1f cmVzdG9yZV9mZW5jZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkJdm1h ID0gTlVMTDsKIAkJfQogCi0JCWZlbmNlX3dyaXRlKHJlZywgdm1hKTsKKwkJZmVuY2Vfd3JpdGUo cmVnLCB2bWEsIE5VTEwpOwogCQlyZWctPnZtYSA9IHZtYTsKIAl9CiB9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2ZlbmNlX3JlZy5oCmluZGV4IDk5YTMxZGVkNGRmZC4uY2U0NTk3MmZj NWM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuaApAQCAtNDcs NiArNDcsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZmVuY2VfcmVnIHsKIAkgKiBjb21tYW5kIChzdWNo IGFzIEJMVCBvbiBnZW4yLzMpLCBhcyBhICJmZW5jZSIuCiAJICovCiAJYm9vbCBkaXJ0eTsKKwlz dHJ1Y3QgaTkxNV9nZW1fYWN0aXZlIHBpcGVsaW5lZDsKIH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfdm1hLmMKaW5kZXggZWZiZmVlOGVhYzk5Li4wYzQ4OTA5MGQ0YWIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV92bWEuYwpAQCAtNzI4LDYgKzcyOCw3IEBAIGludCBpOTE1X3ZtYV91bmJpbmQoc3Ry dWN0IGk5MTVfdm1hICp2bWEpCiAJCV9faTkxNV92bWFfaW91bm1hcCh2bWEpOwogCQl2bWEtPmZs YWdzICY9IH5JOTE1X1ZNQV9DQU5fRkVOQ0U7CiAJfQorCUdFTV9CVUdfT04odm1hLT5mZW5jZSk7 CiAKIAlpZiAobGlrZWx5KCF2bWEtPnZtLT5jbG9zZWQpKSB7CiAJCXRyYWNlX2k5MTVfdm1hX3Vu YmluZCh2bWEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgKaW5kZXggMTlmNThhZjRmMWJmLi5mMGRj NmVhZWJlYWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaApAQCAtMzY3LDUgKzM2Nyw5IEBAIGk5 MTVfdm1hX3VucGluX2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCQlfX2k5MTVfdm1hX3Vu cGluX2ZlbmNlKHZtYSk7CiB9CiAKK2ludCBfX211c3RfY2hlY2sgaTkxNV92bWFfcmVzZXJ2ZV9m ZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7CitpbnQgaTkxNV92bWFfZW1pdF9waXBlbGluZWRf ZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEsCisJCQkJICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJxKTsKKwogI2VuZGlmCiAKLS0gCjIuMTMuMgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==