From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [RFC 27/39] drm/i915: Add sync wait support to scheduler Date: Fri, 17 Jul 2015 15:33:36 +0100 Message-ID: <1437143628-6329-28-git-send-email-John.C.Harrison@Intel.com> References: <1437143628-6329-1-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id BF6F26ED70 for ; Fri, 17 Jul 2015 07:34:22 -0700 (PDT) In-Reply-To: <1437143628-6329-1-git-send-email-John.C.Harrison@Intel.com> 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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClRoZXJlIGlz IGEgc3luYyBmcmFtZXdvcmsgdG8gYWxsb3cgd29yayBmb3IgbXVsdGlwbGUgaW5kZXBlbmRlbnQK c3lzdGVtcyB0byBiZSBzeW5jaHJvbmlzZWQgd2l0aCBlYWNoIG90aGVyIGJ1dCB3aXRob3V0IHN0 YWxsaW5nCnRoZSBDUFUgd2hldGhlciBpbiB0aGUgYXBwbGljYXRpb24gb3IgdGhlIGRyaXZlci4g VGhpcyBwYXRjaCBhZGRzCnN1cHBvcnQgZm9yIHRoaXMgZnJhbWV3b3JrIHRvIHRoZSBHUFUgc2No ZWR1bGVyLgoKQmF0Y2ggYnVmZmVycyBjYW4gbm93IGhhdmUgc3luYyBmcmFtZXdvcmsgZmVuY2Ug b2JqZWN0cyBhc3NvY2lhdGVkIHdpdGgKdGhlbS4gVGhlIHNjaGVkdWxlciB3aWxsIGxvb2sgYXQg dGhpcyBmZW5jZSB3aGVuIGRlY2lkaW5nIHdoYXQgdG8Kc3VibWl0IG5leHQgdG8gdGhlIGhhcmR3 YXJlLiBJZiB0aGUgZmVuY2UgaXMgb3V0c3RhbmRpbmcgdGhlbiB0aGF0CmJhdGNoIGJ1ZmZlciB3 aWxsIGJlIHBhc3NlZCBvdmVyIGluIHByZWZlcmVuY2Ugb2Ygb25lIHRoYXQgaXMgcmVhZHkgdG8K cnVuLiBJZiBubyBvdGhlciBiYXRjaGVzIGFyZSByZWFkeSB0aGVuIHRoZSBzY2hlZHVsZXIgd2ls bCBxdWV1ZSBhbgphc3luY2hyb25vdXMgY2FsbGJhY2sgdG8gYmUgd29rZW4gdXAgd2hlbiB0aGUg ZmVuY2UgaGFzIGJlZW4Kc2lnbmFsbGVkLiBUaGUgY2FsbGJhY2sgd2lsbCB3YWtlIHRoZSBzY2hl ZHVsZXIgYW5kIHN1Ym1pdCB0aGUgbm93CnJlYWR5IGJhdGNoIGJ1ZmZlci4KCkZvcjogVklaLTE1 ODcKU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgIHwgICAxICsKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgfCAxNjMgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIu aCB8ICAgNiArKwogMyBmaWxlcyBjaGFuZ2VkLCAxNjUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAxMmI0OTg2Li5iNTY4NDMyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTE3MDMsNiArMTcwMyw3IEBAIHN0cnVjdCBpOTE1X2V4 ZWNidWZmZXJfcGFyYW1zIHsKIAl1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgIGJhdGNo X29ial92bV9vZmZzZXQ7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAgICAgICAgICAqcmluZzsK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAgICAgICpiYXRjaF9vYmo7CisJc3RydWN0IHN5 bmNfZmVuY2UgICAgICAgICAgICAgICAqZmVuY2Vfd2FpdDsKIAlzdHJ1Y3QgZHJtX2NsaXBfcmVj dCAgICAgICAgICAgICpjbGlwcmVjdHM7CiAJdWludDMyX3QgICAgICAgICAgICAgICAgICAgICAg ICBpbnN0cF9tYXNrOwogCWludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdHBfbW9k ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCmluZGV4IGM3MTM5ZjguLjE5NTc3 YzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwpAQCAtMjUsNiArMjUsNyBA QAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAjaW5jbHVk ZSAiaTkxNV9zY2hlZHVsZXIuaCIKKyNpbmNsdWRlIDwuLi9kcml2ZXJzL3N0YWdpbmcvYW5kcm9p ZC9zeW5jLmg+CiAKIHN0YXRpYyBpbnQgICAgICAgICBpOTE1X3NjaGVkdWxlcl9mbHlfbm9kZShz dHJ1Y3QgaTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnkgKm5vZGUpOwogc3RhdGljIGludCAgICAg ICAgIGk5MTVfc2NoZWR1bGVyX3JlbW92ZV9kZXBlbmRlbnQoc3RydWN0IGk5MTVfc2NoZWR1bGVy ICpzY2hlZHVsZXIsCkBAIC0xMDAsNiArMTAxLDkgQEAgaW50IGk5MTVfc2NoZWR1bGVyX3F1ZXVl X2V4ZWNidWZmZXIoc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpxZSkKIAogCQlx ZS0+c2NoZWR1bGVyX2luZGV4ID0gc2NoZWR1bGVyLT5pbmRleCsrOwogCisJCVdBUk5fT04ocWUt PnBhcmFtcy5mZW5jZV93YWl0ICYmCisJCQkoYXRvbWljX3JlYWQoJnFlLT5wYXJhbXMuZmVuY2Vf d2FpdC0+c3RhdHVzKSA9PSAwKSk7CisKIAkJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5j ZWwocWUtPnBhcmFtcy5yZXF1ZXN0LT5yaW5nYnVmKTsKIAogCQlzY2hlZHVsZXItPmZsYWdzW3Fl LT5wYXJhbXMucmluZy0+aWRdIHw9IGk5MTVfc2Zfc3VibWl0dGluZzsKQEAgLTEzNCw2ICsxMzgs MTEgQEAgaW50IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2V4ZWNidWZmZXIoc3RydWN0IGk5MTVfc2No ZWR1bGVyX3F1ZXVlX2VudHJ5ICpxZSkKIAkJaWYgKHFlLT5wYXJhbXMuZGlzcGF0Y2hfZmxhZ3Mg JiBJOTE1X0RJU1BBVENIX1NFQ1VSRSkKIAkJCWk5MTVfZ2VtX2V4ZWNidWZmX3JlbGVhc2VfYmF0 Y2hfb2JqKHFlLT5wYXJhbXMuYmF0Y2hfb2JqKTsKIAorI2lmZGVmIENPTkZJR19TWU5DCisJCWlm IChxZS0+cGFyYW1zLmZlbmNlX3dhaXQpCisJCQlzeW5jX2ZlbmNlX3B1dChxZS0+cGFyYW1zLmZl bmNlX3dhaXQpOworI2VuZGlmCisKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC02MjUsNiArNjM0LDEx IEBAIHN0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJfcmVtb3ZlKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcpCiAJCW5vZGUgPSBsaXN0X2ZpcnN0X2VudHJ5KCZyZW1vdmUsIHR5cGVvZigqbm9k ZSksIGxpbmspOwogCQlsaXN0X2RlbCgmbm9kZS0+bGluayk7CiAKKyNpZmRlZiBDT05GSUdfU1lO QworCQlpZiAobm9kZS0+cGFyYW1zLmZlbmNlX3dhaXQpCisJCQlzeW5jX2ZlbmNlX3B1dChub2Rl LT5wYXJhbXMuZmVuY2Vfd2FpdCk7CisjZW5kaWYKKwogCQkvKiBGcmVlIHVwIGFsbCB0aGUgRFJN IG9iamVjdCByZWZlcmVuY2VzICovCiAJCWk5MTVfZ2VtX3NjaGVkdWxlcl9jbGVhbl9ub2RlKG5v ZGUpOwogCkBAIC04NDUsMTcgKzg1OSwxMDAgQEAgc3RhdGljIGludCBpOTE1X3NjaGVkdWxlcl9z dWJtaXRfbWF4X3ByaW9yaXR5KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJcmV0dXJu IGNvdW50OwogfQogCisjaWZkZWYgQ09ORklHX1NZTkMKKy8qIFVzZSBhIHByaXZhdGUgc3RydWN0 dXJlIGluIG9yZGVyIHRvIHBhc3MgdGhlICdkZXYnIHBvaW50ZXIgdGhyb3VnaCAqLworc3RydWN0 IGk5MTVfc3luY19mZW5jZV93YWl0ZXIgeworCXN0cnVjdCBzeW5jX2ZlbmNlX3dhaXRlciBzZnc7 CisJc3RydWN0IGRybV9kZXZpY2UJICpkZXY7CisJc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVl X2VudHJ5ICpub2RlOworfTsKKworc3RhdGljIHZvaWQgaTkxNV9zY2hlZHVsZXJfd2FpdF9mZW5j ZV9zaWduYWxlZChzdHJ1Y3Qgc3luY19mZW5jZSAqZmVuY2UsCisJCQkJICAgICAgIHN0cnVjdCBz eW5jX2ZlbmNlX3dhaXRlciAqd2FpdGVyKQoreworCXN0cnVjdCBpOTE1X3N5bmNfZmVuY2Vfd2Fp dGVyICppOTE1X3dhaXRlcjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBO VUxMOworCisJaTkxNV93YWl0ZXIgPSBjb250YWluZXJfb2Yod2FpdGVyLCBzdHJ1Y3QgaTkxNV9z eW5jX2ZlbmNlX3dhaXRlciwgc2Z3KTsKKwlkZXZfcHJpdiAgICA9IChpOTE1X3dhaXRlciAmJiBp OTE1X3dhaXRlci0+ZGV2KSA/CisJCQkJCSAgICBpOTE1X3dhaXRlci0+ZGV2LT5kZXZfcHJpdmF0 ZSA6IE5VTEw7CisKKwkvKgorCSAqIE5COiBUaGUgY2FsbGJhY2sgaXMgZXhlY3V0ZWQgYXQgaW50 ZXJydXB0IHRpbWUsIHRodXMgaXQgY2FuIG5vdAorCSAqIGNhbGwgX3N1Ym1pdCgpIGRpcmVjdGx5 LiBJdCBtdXN0IGdvIHZpYSB0aGUgZGVsYXllZCB3b3JrIGhhbmRsZXIuCisJICovCisJaWYgKGRl dl9wcml2KSB7CisJCXN0cnVjdCBpOTE1X3NjaGVkdWxlciAgICpzY2hlZHVsZXI7CisJCXVuc2ln bmVkIGxvbmcgICAgICAgICAgIGZsYWdzOworCisJCXNjaGVkdWxlciA9IGRldl9wcml2LT5zY2hl ZHVsZXI7CisKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkdWxlci0+bG9jaywgZmxhZ3MpOwor CQlpOTE1X3dhaXRlci0+bm9kZS0+ZmxhZ3MgJj0gfmk5MTVfcWVmX2ZlbmNlX3dhaXRpbmc7CisJ CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkdWxlci0+bG9jaywgZmxhZ3MpOworCisJCXF1 ZXVlX3dvcmsoZGV2X3ByaXYtPndxLCAmZGV2X3ByaXYtPm1tLnNjaGVkdWxlcl93b3JrKTsKKwl9 CisKKwlrZnJlZSh3YWl0ZXIpOworfQorCitzdGF0aWMgYm9vbCBpOTE1X3NjaGVkdWxlcl9hc3lu Y19mZW5jZV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJCSAgICBzdHJ1Y3QgaTkx NV9zY2hlZHVsZXJfcXVldWVfZW50cnkgKm5vZGUpCit7CisJc3RydWN0IGk5MTVfc3luY19mZW5j ZV93YWl0ZXIJKmZlbmNlX3dhaXRlcjsKKwlzdHJ1Y3Qgc3luY19mZW5jZQkJKmZlbmNlID0gbm9k ZS0+cGFyYW1zLmZlbmNlX3dhaXQ7CisJaW50CQkJCXNpZ25hbGVkOworCWJvb2wJCQkJc3VjY2Vz cyA9IHRydWU7CisKKwlpZiAoKG5vZGUtPmZsYWdzICYgaTkxNV9xZWZfZmVuY2Vfd2FpdGluZykg PT0gMCkKKwkJbm9kZS0+ZmxhZ3MgfD0gaTkxNV9xZWZfZmVuY2Vfd2FpdGluZzsKKwllbHNlCisJ CXJldHVybiB0cnVlOworCisJaWYgKGZlbmNlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKwor CXNpZ25hbGVkID0gYXRvbWljX3JlYWQoJmZlbmNlLT5zdGF0dXMpOworCWlmICghc2lnbmFsZWQp IHsKKwkJZmVuY2Vfd2FpdGVyID0ga21hbGxvYyhzaXplb2YoKmZlbmNlX3dhaXRlciksIEdGUF9L RVJORUwpOworCQlpZiAoIWZlbmNlX3dhaXRlcikgeworCQkJc3VjY2VzcyA9IGZhbHNlOworCQkJ Z290byBlbmQ7CisJCX0KKworCQlzeW5jX2ZlbmNlX3dhaXRlcl9pbml0KCZmZW5jZV93YWl0ZXIt PnNmdywKKwkJCQlpOTE1X3NjaGVkdWxlcl93YWl0X2ZlbmNlX3NpZ25hbGVkKTsKKwkJZmVuY2Vf d2FpdGVyLT5ub2RlID0gbm9kZTsKKwkJZmVuY2Vfd2FpdGVyLT5kZXYgPSBkZXY7CisKKwkJaWYg KHN5bmNfZmVuY2Vfd2FpdF9hc3luYyhmZW5jZSwgJmZlbmNlX3dhaXRlci0+c2Z3KSkgeworCQkJ LyogYW4gZXJyb3Igb2NjdXJyZWQsIHVzdWFsbHkgdGhpcyBpcyBiZWNhdXNlIHRoZQorCQkJICog ZmVuY2Ugd2FzIHNpZ25hbGVkIGFscmVhZHkgKi8KKwkJCXNpZ25hbGVkID0gYXRvbWljX3JlYWQo JmZlbmNlLT5zdGF0dXMpOworCQkJaWYgKCFzaWduYWxlZCkgeworCQkJCXN1Y2Nlc3MgPSBmYWxz ZTsKKwkJCQlnb3RvIGVuZDsKKwkJCX0KKwkJfQorCX0KK2VuZDoKKwlyZXR1cm4gc3VjY2VzczsK K30KKyNlbmRpZgorCiBzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX3BvcF9mcm9tX3F1ZXVlX2xv Y2tlZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJCSAgICBzdHJ1Y3QgaTkxNV9z Y2hlZHVsZXJfcXVldWVfZW50cnkgKipwb3Bfbm9kZSwKIAkJCQkgICAgdW5zaWduZWQgbG9uZyAq ZmxhZ3MpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgICAgICAgICAgICAqZGV2X3ByaXYg PSByaW5nLT5kZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpOTE1X3NjaGVkdWxlciAgICAgICAg ICAgICAgKnNjaGVkdWxlciA9IGRldl9wcml2LT5zY2hlZHVsZXI7CisJc3RydWN0IGk5MTVfc2No ZWR1bGVyX3F1ZXVlX2VudHJ5ICAqYmVzdF93YWl0LCAqZmVuY2Vfd2FpdCA9IE5VTEw7CiAJc3Ry dWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICAqYmVzdDsKIAlzdHJ1Y3QgaTkxNV9zY2hl ZHVsZXJfcXVldWVfZW50cnkgICpub2RlOwogCWludCAgICAgcmV0OwogCWludCAgICAgaTsKLQli b29sCWFueV9xdWV1ZWQ7CisJYm9vbAlzaWduYWxsZWQsIGFueV9xdWV1ZWQ7CiAJYm9vbAloYXNf bG9jYWwsIGhhc19yZW1vdGUsIG9ubHlfcmVtb3RlOwogCiAJKnBvcF9ub2RlID0gTlVMTDsKQEAg LTg2MywxMyArOTYwLDI1IEBAIHN0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJfcG9wX2Zyb21fcXVl dWVfbG9ja2VkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAKIAlhbnlfcXVldWVkID0g ZmFsc2U7CiAJb25seV9yZW1vdGUgPSBmYWxzZTsKKwliZXN0X3dhaXQgPSBOVUxMOwogCWJlc3Qg PSBOVUxMOwogCisjaWZuZGVmIENPTkZJR19TWU5DCisJc2lnbmFsbGVkID0gdHJ1ZTsKKyNlbmRp ZgorCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShub2RlLCAmc2NoZWR1bGVyLT5ub2RlX3F1ZXVlW3Jp bmctPmlkXSwgbGluaykgewogCQlpZiAoIUk5MTVfU1FTX0lTX1FVRVVFRChub2RlKSkKIAkJCWNv bnRpbnVlOwogCQlhbnlfcXVldWVkID0gdHJ1ZTsKIAorI2lmZGVmIENPTkZJR19TWU5DCisJCWlm IChub2RlLT5wYXJhbXMuZmVuY2Vfd2FpdCkKKwkJCXNpZ25hbGxlZCA9IGF0b21pY19yZWFkKCZu b2RlLT5wYXJhbXMuZmVuY2Vfd2FpdC0+c3RhdHVzKSAhPSAwOworCQllbHNlCisJCQlzaWduYWxs ZWQgPSB0cnVlOworI2VuZGlmCS8vIENPTkZJR19TWU5DCisKIAkJaGFzX2xvY2FsICA9IGZhbHNl OwogCQloYXNfcmVtb3RlID0gZmFsc2U7CiAJCWZvciAoaSA9IDA7IGkgPCBub2RlLT5udW1fZGVw czsgaSsrKSB7CkBAIC04ODYsOSArOTk1LDE1IEBAIHN0YXRpYyBpbnQgaTkxNV9zY2hlZHVsZXJf cG9wX2Zyb21fcXVldWVfbG9ja2VkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCQlv bmx5X3JlbW90ZSA9IHRydWU7CiAKIAkJaWYgKCFoYXNfbG9jYWwgJiYgIWhhc19yZW1vdGUpIHsK LQkJCWlmICghYmVzdCB8fAotCQkJICAgIChub2RlLT5wcmlvcml0eSA+IGJlc3QtPnByaW9yaXR5 KSkKLQkJCQliZXN0ID0gbm9kZTsKKwkJCWlmIChzaWduYWxsZWQpIHsKKwkJCQlpZiAoIWJlc3Qg fHwKKwkJCQkgICAgKG5vZGUtPnByaW9yaXR5ID4gYmVzdC0+cHJpb3JpdHkpKQorCQkJCQliZXN0 ID0gbm9kZTsKKwkJCX0gZWxzZSB7CisJCQkJaWYgKCFiZXN0X3dhaXQgfHwKKwkJCQkgICAgKG5v ZGUtPnByaW9yaXR5ID4gYmVzdF93YWl0LT5wcmlvcml0eSkpCisJCQkJCWJlc3Rfd2FpdCA9IG5v ZGU7CisJCQl9CiAJCX0KIAl9CiAKQEAgLTkwNCw4ICsxMDE5LDM0IEBAIHN0YXRpYyBpbnQgaTkx NV9zY2hlZHVsZXJfcG9wX2Zyb21fcXVldWVfbG9ja2VkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsCiAJCSAqIChhKSB0aGVyZSBhcmUgbm8gYnVmZmVycyBpbiB0aGUgcXVldWUKIAkJICog KGIpIGFsbCBxdWV1ZWQgYnVmZmVycyBhcmUgZGVwZW5kZW50IG9uIG90aGVyIGJ1ZmZlcnMKIAkJ ICogICAgIGUuZy4gb24gYSBidWZmZXIgdGhhdCBpcyBpbiBmbGlnaHQgb24gYSBkaWZmZXJlbnQg cmluZworCQkgKiAoYykgYWxsIGluZGVwZW5kZW50IGJ1ZmZlcnMgYXJlIHdhaXRpbmcgb24gZmVu Y2VzCiAJCSAqLwotCQlpZiAob25seV9yZW1vdGUpIHsKKwkJaWYgKGJlc3Rfd2FpdCkgeworCQkJ LyogTmVlZCB0byB3YWl0IGZvciBzb21ldGhpbmcgdG8gYmUgc2lnbmFsbGVkLgorCQkJICoKKwkJ CSAqIE5COiBkbyBub3QgcmVhbGx5IHdhbnQgdG8gd2FpdCBvbiBvbmUgc3BlY2lmaWMgZmQKKwkJ CSAqIGJlY2F1c2UgdGhlcmUgaXMgbm8gZ3VhcmFudGVlIGluIHRoZSBvcmRlciB0aGF0CisJCQkg KiBibG9ja2VkIGJ1ZmZlcnMgd2lsbCBiZSBzaWduYWxsZWQuIE5lZWQgdG8gd2FpdCBvbgorCQkJ ICogJ2FueXRoaW5nJyBhbmQgdGhlbiByZXNjYW4gZm9yIGJlc3QgYXZhaWxhYmxlLCBpZgorCQkJ ICogc3RpbGwgbm90aGluZyB0aGVuIHdhaXQgYWdhaW4uLi4KKwkJCSAqCisJCQkgKiBOQiAyOiBU aGUgd2FpdCBtdXN0IGFsc28gd2FrZSB1cCBpZiBzb21lb25lIGF0dGVtcHRzCisJCQkgKiB0byBz dWJtaXQgYSBuZXcgYnVmZmVyLiBUaGUgbmV3IGJ1ZmZlciBtaWdodCBiZQorCQkJICogaW5kZXBl bmRlbnQgb2YgYWxsIG90aGVycyBhbmQgdGh1cyBjb3VsZCBqdW1wIHRoZQorCQkJICogcXVldWUg YW5kIHN0YXJ0IHJ1bm5pbmcgaW1tZWRpYXRlbHkuCisJCQkgKgorCQkJICogTkIgMzogTGFzdGx5 LCBtdXN0IG5vdCB3YWl0IHdpdGggdGhlIHNwaW5sb2NrIGhlbGQhCisJCQkgKgorCQkJICogU28g cmF0aGVyIHRoYW4gd2FpdCBoZXJlLCBuZWVkIHRvIHF1ZXVlIGEgZGVmZXJyZWQKKwkJCSAqIHdh aXQgdGhyZWFkIGFuZCBqdXN0IHJldHVybiAnbm90aGluZyB0byBkbycuCisJCQkgKgorCQkJICog TkIgNDogQ2FuJ3QgYWN0dWFsbHkgZG8gdGhlIHdhaXQgaGVyZSBiZWNhdXNlIHRoZQorCQkJICog c3BpbmxvY2sgaXMgc3RpbGwgaGVsZCBhbmQgdGhlIHdhaXQgcmVxdWlyZXMgZG9pbmcKKwkJCSAq IGEgbWVtb3J5IGFsbG9jYXRpb24uCisJCQkgKi8KKwkJCWZlbmNlX3dhaXQgPSBiZXN0X3dhaXQ7 CisJCQlyZXQgPSAtRUFHQUlOOworCQl9IGVsc2UgaWYgKG9ubHlfcmVtb3RlKSB7CiAJCQkvKiBU aGUgb25seSBkZXBlbmRlbnQgYnVmZmVycyBhcmUgb24gYW5vdGhlciByaW5nLiAqLwogCQkJcmV0 ID0gLUVBR0FJTjsKIAkJfSBlbHNlIGlmIChhbnlfcXVldWVkKSB7CkBAIC05MTcsNiArMTA1OCwx OCBAQCBzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX3BvcF9mcm9tX3F1ZXVlX2xvY2tlZChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCiAJLyogaTkxNV9zY2hlZHVsZXJfZHVtcF9xdWV1 ZV9wb3AocmluZywgYmVzdCk7ICovCiAKKwlpZiAoZmVuY2Vfd2FpdCkgeworI2lmZGVmIENPTkZJ R19TWU5DCisJCS8qIEl0IHNob3VsZCBiZSBzYWZlIHRvIHNsZWVwIG5vdy4uLiAqLworCQkvKiBO QjogTmVlZCB0byByZWxlYXNlIGFuZCByZWFjcXVpcmUgdGhlIHNwaW5sb2NrIHRob3VnaCAqLwor CQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZHVsZXItPmxvY2ssICpmbGFncyk7CisJCWk5 MTVfc2NoZWR1bGVyX2FzeW5jX2ZlbmNlX3dhaXQocmluZy0+ZGV2LCBmZW5jZV93YWl0KTsKKwkJ c3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkdWxlci0+bG9jaywgKmZsYWdzKTsKKyNlbHNlCisJCUJV R19PTih0cnVlKTsKKyNlbmRpZgorCX0KKwogCSpwb3Bfbm9kZSA9IGJlc3Q7CiAJcmV0dXJuIHJl dDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oCmluZGV4IGNlOTRiMGIuLjhj YTRiNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaApAQCAtNTYsNiArNTYs MTEgQEAgc3RydWN0IGk5MTVfc2NoZWR1bGVyX29ial9lbnRyeSB7CiAJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgICAgICAgICAgKm9iajsKIH07CiAKK2VudW0gaTkxNV9zY2hlZHVsZXJfcXVl dWVfZW50cnlfZmxhZ3MgeworCS8qIEZlbmNlIGlzIGJlaW5nIHdhaXRlZCBvbiAqLworCWk5MTVf cWVmX2ZlbmNlX3dhaXRpbmcgICAgICAgICAgICAgID0gKDEgPDwgMCksCit9OworCiBzdHJ1Y3Qg aTkxNV9zY2hlZHVsZXJfcXVldWVfZW50cnkgewogCXN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFy YW1zICAgICAgIHBhcmFtczsKIAl1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBw cmlvcml0eTsKQEAgLTY4LDYgKzczLDcgQEAgc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2Vu dHJ5IHsKIAlzdHJ1Y3QgdGltZXNwZWMgICAgICAgICAgICAgICAgICAgICBzdGFtcDsKIAlzdHJ1 Y3QgbGlzdF9oZWFkICAgICAgICAgICAgICAgICAgICBsaW5rOwogCXVpbnQzMl90ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlcl9pbmRleDsKKwl1aW50MzJfdCAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmbGFnczsKIH07CiAKIHN0cnVjdCBpOTE1X3NjaGVkdWxlciB7Ci0t IAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK