From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [RFC 9/9] drm/i915: Add sync framework support to execbuff IOCTL Date: Fri, 17 Jul 2015 15:31:23 +0100 Message-ID: <1437143483-6234-10-git-send-email-John.C.Harrison@Intel.com> References: <1437143483-6234-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 E45436E4DC for ; Fri, 17 Jul 2015 07:31:45 -0700 (PDT) In-Reply-To: <1437143483-6234-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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClZhcmlvdXMg cHJvamVjdHMgZGVzaXJlIGEgbWVjaGFuaXNtIGZvciBtYW5hZ2luZyBkZXBlbmRlbmNpZXMgYmV0 d2Vlbgp3b3JrIGl0ZW1zIGFzeW5jaHJvbm91c2x5LiBUaGlzIGNhbiBhbHNvIGluY2x1ZGUgd29y ayBpdGVtcyBhY3Jvc3MKY29tcGxldGUgZGlmZmVyZW50IGFuZCBpbmRlcGVuZGVudCBzeXN0ZW1z LiBGb3IgZXhhbXBsZSwgYW4KYXBwbGljYXRpb24gd2FudHMgdG8gcmV0cmVpdmUgYSBmcmFtZSBm cm9tIGEgdmlkZW8gaW4gZGV2aWNlLAp1c2luZyBpdCBmb3IgcmVuZGVyaW5nIG9uIGEgR1BVIHRo ZW4gc2VuZCBpdCB0byB0aGUgdmlkZW8gb3V0IGRldmljZQpmb3IgZGlzcGxheSBhbGwgd2l0aG91 dCBoYXZpbmcgdG8gc3RhbGwgd2FpdGluZyBmb3IgY29tcGxldGlvbiBhbG9uZwp0aGUgd2F5LiBU aGUgc3luYyBmcmFtZXdvcmsgYWxsb3dzIHRoaXMuIEl0IGVuY2Fwc3VsYXRlcwpzeW5jaHJvbmlz YXRpb24gZXZlbnRzIGluIGZpbGUgZGVzY3JpcHRvcnMuIFRoZSBhcHBsaWNhdGlvbiBjYW4KcmVx dWVzdCBhIHN5bmMgcG9pbnQgZm9yIHRoZSBjb21wbGV0aW9uIG9mIGVhY2ggcGllY2Ugb2Ygd29y ay4gRHJpdmVycwpzaG91bGQgYWxzbyB0YWtlIHN5bmMgcG9pbnRzIGluIHdpdGggZWFjaCBuZXcg d29yayByZXF1ZXN0IGFuZCBub3QKc2NoZWR1bGUgdGhlIHdvcmsgdG8gc3RhcnQgdW50aWwgdGhl IHN5bmMgaGFzIGJlZW4gc2lnbmFsbGVkLgoKVGhpcyBwYXRjaCBhZGRzIHN5bmMgZnJhbWV3b3Jr IHN1cHBvcnQgdG8gdGhlIGV4ZWMgYnVmZmVyIElPQ1RMLiBBCnN5bmMgcG9pbnQgY2FuIGJlIHBh c3NlZCBpbiB0byBzdGFsbCBleGVjdXRpb24gb2YgdGhlIGJhdGNoIGJ1ZmZlcgp1bnRpbCBzaWdu YWxsZWQuIEFuZCBhIHN5bmMgcG9pbnQgY2FuIGJlIHJldHVybmVkIGFmdGVyIGVhY2ggYmF0Y2gK YnVmZmVyIHN1Ym1pc3Npb24gd2hpY2ggd2lsbCBiZSBzaWduYWxsZWQgdXBvbiB0aGF0IGJhdGNo IGJ1ZmZlcidzCmNvbXBsZXRpb24uCgpBdCBwcmVzZW50LCB0aGUgaW5wdXQgc3luYyBwb2ludCBp cyBzaW1wbHkgd2FpdGVkIG9uIHN5bmNocm9ub3VzbHkKaW5zaWRlIHRoZSBleGVjIGJ1ZmZlciBJ T0NUTCBjYWxsLiBPbmNlIHRoZSBHUFUgc2NoZWR1bGVyIGFycml2ZXMsCnRoaXMgd2lsbCBiZSBo YW5kbGVkIGFzeW5jaHJvbm91c2x5IGluc2lkZSB0aGUgc2NoZWR1bGVyIGFuZCB0aGUgSU9DVEwK Y2FuIHJldHVybiB3aXRob3V0IGhhdmluZyB0byB3YWl0LgoKTm90ZSBhbHNvIHRoYXQgdGhlIHNj aGVkdWxlciB3aWxsIHJlLW9yZGVyIHRoZSBleGVjdXRpb24gb2YgYmF0Y2gKYnVmZmVycywgZS5n LiBiZWNhdXNlIGEgYmF0Y2ggYnVmZmVyIGlzIHN0YWxsZWQgb24gYSBzeW5jIHBvaW50IGFuZApj YW5ub3QgYmUgc3VibWl0dGVkIHlldCBidXQgb3RoZXIsIGluZGVwZW5kZW50LCBiYXRjaCBidWZm ZXJzIGFyZQpiZWluZyBwcmVzZW50ZWQgdG8gdGhlIGRyaXZlci4gVGhpcyBtZWFucyB0aGF0IHRo ZSB0aW1lbGluZSB3aXRoaW4gdGhlCnN5bmMgcG9pbnRzIHJldHVybmVkIGNhbm5vdCBiZSBnbG9i YWwgdG8gdGhlIGVuZ2luZS4gSW5zdGVhZCB0aGV5IG11c3QKYmUga2VwdCBwZXIgY29udGV4dCBw ZXIgZW5naW5lICh0aGUgc2NoZWR1bGVyIG1heSBub3QgcmUtb3JkZXIgYmF0Y2hlcwp3aXRoaW4g YSBjb250ZXh0KS4gSGVuY2UgdGhlIHRpbWVsaW5lIGNhbm5vdCBiZSBiYXNlZCBvbiB0aGUgZXhp c3RpbmcKc2Vxbm8gdmFsdWVzIGJ1dCBtdXN0IGJlIGEgbmV3IGltcGxlbWVudGF0aW9uLgoKVGhp cyBwYXRjaCBpcyBhIHBvcnQgb2Ygd29yayBieSBzZXZlcmFsIHBlb3BsZSB0aGF0IGhhcyBiZWVu IHB1bGxlZAphY3Jvc3MgZnJvbSBBbmRyb2lkLiBJdCBoYXMgYmVlbiB1cGRhdGVkIHNldmVyYWwg dGltZXMgYWNyb3NzIHNldmVyYWwKcGF0Y2hlcy4gUmF0aGVyIHRoYW4gYXR0ZW1wdCB0byBwb3J0 IGVhY2ggaW5kaXZpZHVhbCBwYXRjaCwgdGhpcwp2ZXJzaW9uIGlzIHRoZSBmaW5pc2hlZCBwcm9k dWN0IGFzIGEgc2luZ2xlIHBhdGNoLiBUaGUgdmFyaW91cwpjb250cmlidXRvcnMvYXV0aG9ycyBh bG9uZyB0aGUgd2F5IChpbiBhZGRpdGlvbiB0byBteXNlbGYpIHdlcmU6CiAgU2F0eWFuYW50aGEg UmFtYUdvcGFsIE0gPHJhbWEuZ29wYWwubS5zYXR5YW5hbnRoYUBpbnRlbC5jb20+CiAgVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KICBNaWNoZWwgVGhpZXJyeSA8bWlj aGVsLnRoaWVycnlAaW50ZWwuY29tPgogIEFydW4gU2lsdXZlcnkgPGFydW4uc2lsdXZlcnlAbGlu dXguaW50ZWwuY29tPgoKW25ldyBwYXRjaCBpbiBzZXJpZXNdCgpGb3I6IFZJWi01MTkwClNpZ25l ZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgIDYgKysKIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8IDg0ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIu YyB8IDkwICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogaW5jbHVkZS91YXBpL2RybS9p OTE1X2RybS5oICAgICAgICAgICAgICAgIHwgMTYgKysrKystCiA0IGZpbGVzIGNoYW5nZWQsIDE4 OCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmlu ZGV4IGQ3ZjFhYTUuLmNmNmI3Y2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjE2OCw2 ICsyMTY4LDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKIAlzdHJ1Y3QgbGlzdF9o ZWFkIGRlbGF5X2ZyZWVfbGlzdDsKIAlib29sIGNhbmNlbGxlZDsKIAlib29sIGlycV9lbmFibGVk OworCWJvb2wgZmVuY2VfZXh0ZXJuYWw7CiAKIAkvKiogT24gV2hpY2ggcmluZyB0aGlzIHJlcXVl c3Qgd2FzIGdlbmVyYXRlZCAqLwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1OwpAQCAt MjI1Miw2ICsyMjUzLDExIEBAIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9ub3RpZnkoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZyk7CiBpbnQgaTkxNV9jcmVhdGVfZmVuY2VfdGltZWxpbmUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4 LAogCQkJICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOworI2lmZGVmIENPTkZJ R19TWU5DCitzdHJ1Y3Qgc3luY19mZW5jZTsKK2ludCBpOTE1X2NyZWF0ZV9zeW5jX2ZlbmNlKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgKmZlbmNlX2ZkKTsKK2Jvb2wgaTkx NV9zYWZlX3RvX2lnbm9yZV9mZW5jZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBzdHJ1 Y3Qgc3luY19mZW5jZSAqZmVuY2UpOworI2VuZGlmCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1 X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkK IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDNmMjAwODcuLmRlOTM0MjIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYwpAQCAtMzcsNiArMzcsOSBAQAogI2luY2x1ZGUgPGxpbnV4L3N3YXAu aD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+Cisj aWZkZWYgQ09ORklHX1NZTkMKKyNpbmNsdWRlIDwuLi9kcml2ZXJzL3N0YWdpbmcvYW5kcm9pZC9z eW5jLmg+CisjZW5kaWYKIAogI2RlZmluZSBSUV9CVUdfT04oZXhwcikKIApAQCAtMjU0OSw2ICsy NTUyLDE1IEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCwKIAkgKi8KIAlpOTE1X2dlbV9yZXF1ZXN0X3N1Ym1pdChyZXF1ZXN0KTsK IAorCS8qCisJICogSWYgYW4gZXh0ZXJuYWwgc3luYyBwb2ludCBoYXMgYmVlbiByZXF1ZXN0ZWQg Zm9yIHRoaXMgcmVxdWVzdCB0aGVuCisJICogaXQgY2FuIGJlIHdhaXRlZCBvbiB3aXRob3V0IHRo ZSBkcml2ZXIncyBrbm93bGVkZ2UsIGkuZS4gd2l0aG91dAorCSAqIGNhbGxpbmcgX19pOTE1X3dh aXRfcmVxdWVzdCgpLiBUaHVzIGludGVycnVwdHMgbXVzdCBiZSBlbmFibGVkCisJICogZnJvbSB0 aGUgc3RhcnQgcmF0aGVyIHRoYW4gb25seSBvbiBkZW1hbmQuCisJICovCisJaWYgKHJlcXVlc3Qt PmZlbmNlX2V4dGVybmFsKQorCQlpOTE1X2dlbV9yZXF1ZXN0X2VuYWJsZV9pbnRlcnJ1cHQocmVx dWVzdCk7CisKIAlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQogCQlyZXQgPSByaW5nLT5lbWl0 X3JlcXVlc3QocmVxdWVzdCk7CiAJZWxzZSB7CkBAIC0yODU3LDYgKzI4NjksNzggQEAgc3RhdGlj IHVpbnQzMl90IGk5MTVfZmVuY2VfdGltZWxpbmVfZ2V0X25leHRfc2Vxbm8oc3RydWN0IGk5MTVf ZmVuY2VfdGltZWxpbmUgKnQKIAlyZXR1cm4gc2Vxbm87CiB9CiAKKyNpZmRlZiBDT05GSUdfU1lO QworaW50IGk5MTVfY3JlYXRlX3N5bmNfZmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEsIGludCAqZmVuY2VfZmQpCit7CisJY2hhciByaW5nX25hbWVbXSA9ICJpOTE1X3Jpbmcw IjsKKwlzdHJ1Y3Qgc3luY19mZW5jZSAqc3luY19mZW5jZTsKKwlpbnQgZmQ7CisKKwlmZCA9IGdl dF91bnVzZWRfZmRfZmxhZ3MoT19DTE9FWEVDKTsKKwlpZiAoZmQgPCAwKSB7CisJCURSTV9ERUJV RygiTm8gYXZhaWxhYmxlIGZpbGUgZGVzY3JpcHRvcnMhXG4iKTsKKwkJKmZlbmNlX2ZkID0gLTE7 CisJCXJldHVybiBmZDsKKwl9CisKKwlyaW5nX25hbWVbOV0gKz0gcmVxLT5yaW5nLT5pZDsKKwlz eW5jX2ZlbmNlID0gc3luY19mZW5jZV9jcmVhdGVfZG1hKHJpbmdfbmFtZSwgJnJlcS0+ZmVuY2Up OworCWlmICghc3luY19mZW5jZSkgeworCQlwdXRfdW51c2VkX2ZkKGZkKTsKKwkJKmZlbmNlX2Zk ID0gLTE7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCXN5bmNfZmVuY2VfaW5zdGFsbChzeW5j X2ZlbmNlLCBmZCk7CisJKmZlbmNlX2ZkID0gZmQ7CisKKwkvLyBOZWNlc3Nhcnk/Pz8gV2hvIGRv ZXMgdGhlIHB1dD8/PworCWZlbmNlX2dldCgmcmVxLT5mZW5jZSk7CisKKwlyZXEtPmZlbmNlX2V4 dGVybmFsID0gdHJ1ZTsKKworCXJldHVybiAwOworfQorCitib29sIGk5MTVfc2FmZV90b19pZ25v cmVfZmVuY2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgc3RydWN0IHN5bmNfZmVuY2Ug KnN5bmNfZmVuY2UpCit7CisJc3RydWN0IGZlbmNlICpkbWFfZmVuY2U7CisJc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisJYm9vbCBpZ25vcmU7CisJaW50IGk7CisKKwlpZiAoYXRv bWljX3JlYWQoJnN5bmNfZmVuY2UtPnN0YXR1cykgIT0gMCkKKwkJcmV0dXJuIHRydWU7CisKKwlp Z25vcmUgPSB0cnVlOworCWZvcihpID0gMDsgaSA8IHN5bmNfZmVuY2UtPm51bV9mZW5jZXM7IGkr KykgeworCQlkbWFfZmVuY2UgPSBzeW5jX2ZlbmNlLT5jYnNbaV0uc3luY19wdDsKKworCQkvKiBO byBuZWVkIHRvIHdvcnJ5IGFib3V0IGRlYWQgcG9pbnRzOiAqLworCQlpZiAoZmVuY2VfaXNfc2ln bmFsZWQoZG1hX2ZlbmNlKSkKKwkJCWNvbnRpbnVlOworCisJCS8qIENhbid0IGlnbm9yZSBvdGhl ciBwZW9wbGUncyBwb2ludHM6ICovCisJCWlmKGRtYV9mZW5jZS0+b3BzICE9ICZpOTE1X2dlbV9y ZXF1ZXN0X2ZvcHMpIHsKKwkJCWlnbm9yZSA9IGZhbHNlOworCQkJYnJlYWs7CisJCX0KKworCQly ZXEgPSBjb250YWluZXJfb2YoZG1hX2ZlbmNlLCB0eXBlb2YoKnJlcSksIGZlbmNlKTsKKworCQkv KiBDYW4ndCBpZ25vcmUgcG9pbnRzIG9uIG90aGVyIHJpbmdzOiAqLworCQlpZiAocmVxLT5yaW5n ICE9IHJpbmcpIHsKKwkJCWlnbm9yZSA9IGZhbHNlOworCQkJYnJlYWs7CisJCX0KKworCQkvKiBT YW1lIHJpbmcgbWVhbnMgZ3VhcmFudGVlZCB0byBiZSBpbiBvcmRlciBzbyBpZ25vcmUgaXQuICov CisJfQorCisJcmV0dXJuIGlnbm9yZTsKK30KKyNlbmRpZgorCiBpbnQgaTkxNV9nZW1fcmVxdWVz dF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJICAgc3RydWN0IGludGVs X2NvbnRleHQgKmN0eCwKIAkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqKnJlcV9v dXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKaW5kZXggOTIz YTNjNC4uYjFhMTY1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwpAQCAtMjYsNiArMjYsNyBAQAogICoKICAqLwogCisjaW5jbHVkZSA8bGludXgvc3lzY2Fs bHMuaD4KICNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgog I2luY2x1ZGUgImk5MTVfZHJ2LmgiCkBAIC0zMyw2ICszNCw5IEBACiAjaW5jbHVkZSAiaW50ZWxf ZHJ2LmgiCiAjaW5jbHVkZSA8bGludXgvZG1hX3JlbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4 L3VhY2Nlc3MuaD4KKyNpZmRlZiBDT05GSUdfU1lOQworI2luY2x1ZGUgPC4uL2RyaXZlcnMvc3Rh Z2luZy9hbmRyb2lkL3N5bmMuaD4KKyNlbmRpZgogCiAjZGVmaW5lICBfX0VYRUNfT0JKRUNUX0hB U19QSU4gKDE8PDMxKQogI2RlZmluZSAgX19FWEVDX09CSkVDVF9IQVNfRkVOQ0UgKDE8PDMwKQpA QCAtMTQwMyw2ICsxNDA3LDM1IEBAIGViX2dldF9iYXRjaChzdHJ1Y3QgZWJfdm1hcyAqZWIpCiAJ cmV0dXJuIHZtYS0+b2JqOwogfQogCisjaWZkZWYgQ09ORklHX1NZTkMKK3N0YXRpYyBpbnQgaTkx NV9lYXJseV9mZW5jZV93YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGludCBmZW5j ZV9mZCkKK3sKKwlzdHJ1Y3Qgc3luY19mZW5jZSAqZmVuY2U7CisJaW50IHJldCA9IDA7CisKKwlp ZiAoZmVuY2VfZmQgPCAwKSB7CisJCURSTV9FUlJPUigiSW52YWxpZCB3YWl0IGZlbmNlIGZkICVk IG9uIHJpbmcgJWRcbiIsIGZlbmNlX2ZkLAorCQkJICAoaW50KSByaW5nLT5pZCk7CisJCXJldHVy biAxOworCX0KKworCWZlbmNlID0gc3luY19mZW5jZV9mZGdldChmZW5jZV9mZCk7CisJaWYgKGZl bmNlID09IE5VTEwpIHsKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIHdhaXQgZmVuY2UgJWQgb24gcmlu ZyAlZFxuIiwgZmVuY2VfZmQsCisJCQkgIChpbnQpIHJpbmctPmlkKTsKKwkJcmV0dXJuIDE7CisJ fQorCisJaWYgKGF0b21pY19yZWFkKCZmZW5jZS0+c3RhdHVzKSA9PSAwKSB7CisJCWlmICghaTkx NV9zYWZlX3RvX2lnbm9yZV9mZW5jZShyaW5nLCBmZW5jZSkpCisJCQlyZXQgPSBzeW5jX2ZlbmNl X3dhaXQoZmVuY2UsIDEwMDApOworCX0KKworCXN5bmNfZmVuY2VfcHV0KGZlbmNlKTsKKwlyZXR1 cm4gcmV0OworfQorI2VuZGlmCisKIHN0YXRpYyBpbnQKIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJICAgICAgIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZSwKQEAgLTE0MjIsNiArMTQ1NSwxOCBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVy KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJdTMyIGRpc3BhdGNoX2ZsYWdz OwogCWludCByZXQ7CiAJYm9vbCBuZWVkX3JlbG9jczsKKwlpbnQgZmRfZmVuY2VfY29tcGxldGUg PSAtMTsKKyNpZmRlZiBDT05GSUdfU1lOQworCWludCBmZF9mZW5jZV93YWl0ID0gbG93ZXJfMzJf Yml0cyhhcmdzLT5yc3ZkMik7CisjZW5kaWYKKworCS8qCisJICogTWFrZSBzdXJlIGFuIGJyb2tl biBmZW5jZSBoYW5kbGUgaXMgbm90IHJldHVybmVkIG5vIG1hdHRlcgorCSAqIGhvdyBlYXJseSBh biBlcnJvciBtaWdodCBiZSBoaXQuIE5vdGUgdGhhdCByc3ZkMiBoYXMgdG8gYmUKKwkgKiBzYXZl ZCBhd2F5IGZpcnN0IGJlY2F1c2UgaXQgaXMgYWxzbyBhbiBpbnB1dCBwYXJhbWV0ZXIhCisJICov CisJaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0NSRUFURV9GRU5DRSkKKwkJYXJncy0+cnN2 ZDIgPSAoX191NjQpIC0xOwogCiAJaWYgKCFpOTE1X2dlbV9jaGVja19leGVjYnVmZmVyKGFyZ3Mp KQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTE1MDUsNiArMTU1MCwxOSBAQCBpOTE1X2dlbV9kb19l eGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWRpc3BhdGNo X2ZsYWdzIHw9IEk5MTVfRElTUEFUQ0hfUlM7CiAJfQogCisjaWZkZWYgQ09ORklHX1NZTkMKKwkv KgorCSAqIFdpdGhvdXQgYSBHUFUgc2NoZWR1bGVyLCBhbnkgZmVuY2Ugd2FpdHMgbXVzdCBiZSBk b25lIHVwIGZyb250LgorCSAqLworCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19XQUlUX0ZF TkNFKSB7CisJCXJldCA9IGk5MTVfZWFybHlfZmVuY2Vfd2FpdChyaW5nLCBmZF9mZW5jZV93YWl0 KTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCWFyZ3MtPmZsYWdzICY9IH5J OTE1X0VYRUNfV0FJVF9GRU5DRTsKKwl9CisjZW5kaWYKKwogCWludGVsX3J1bnRpbWVfcG1fZ2V0 KGRldl9wcml2KTsKIAogCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldik7 CkBAIC0xNjUyLDYgKzE3MTAsMjcgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXBhcmFtcy0+YmF0Y2hfb2JqICAgICAgICAgICAg ICAgPSBiYXRjaF9vYmo7CiAJcGFyYW1zLT5jdHggICAgICAgICAgICAgICAgICAgICA9IGN0eDsK IAorI2lmZGVmIENPTkZJR19TWU5DCisJaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0NSRUFU RV9GRU5DRSkgeworCQkvKgorCQkgKiBDYWxsZXIgaGFzIHJlcXVlc3RlZCBhIHN5bmMgZmVuY2Uu CisJCSAqIFVzZXIgaW50ZXJydXB0cyB3aWxsIGJlIGVuYWJsZWQgdG8gbWFrZSBzdXJlIHRoYXQK KwkJICogdGhlIHRpbWVsaW5lIGlzIHNpZ25hbGxlZCBvbiBjb21wbGV0aW9uLgorCQkgKi8KKwkJ cmV0ID0gaTkxNV9jcmVhdGVfc3luY19mZW5jZShwYXJhbXMtPnJlcXVlc3QsCisJCQkJCSAgICAg JmZkX2ZlbmNlX2NvbXBsZXRlKTsKKwkJaWYgKHJldCkgeworCQkJRFJNX0VSUk9SKCJGZW5jZSBj cmVhdGlvbiBmYWlsZWQgZm9yIHJpbmcgJWQsIGN0eCAlcFxuIiwKKwkJCQkgIHJpbmctPmlkLCBj dHgpOworCQkJYXJncy0+cnN2ZDIgPSAoX191NjQpIC0xOworCQkJZ290byBlcnI7CisJCX0KKwor CQkvKiBSZXR1cm4gdGhlIGZlbmNlIHRocm91Z2ggdGhlIHJzdmQyIGZpZWxkICovCisJCWFyZ3Mt PnJzdmQyID0gKF9fdTY0KSBmZF9mZW5jZV9jb21wbGV0ZTsKKwl9CisjZW5kaWYKKwogCXJldCA9 IGRldl9wcml2LT5ndC5leGVjYnVmX3N1Ym1pdChwYXJhbXMsIGFyZ3MsICZlYi0+dm1hcyk7CiAK IGVycl9iYXRjaF91bnBpbjoKQEAgLTE2ODMsNiArMTc2MiwxMiBAQCBwcmVfbXV0ZXhfZXJyOgog CS8qIGludGVsX2dwdV9idXN5IHNob3VsZCBhbHNvIGdldCBhIHJlZiwgc28gaXQgd2lsbCBmcmVl IHdoZW4gdGhlIGRldmljZQogCSAqIGlzIHJlYWxseSBpZGxlLiAqLwogCWludGVsX3J1bnRpbWVf cG1fcHV0KGRldl9wcml2KTsKKworCWlmIChmZF9mZW5jZV9jb21wbGV0ZSAhPSAtMSkgeworCQlz eXNfY2xvc2UoZmRfZmVuY2VfY29tcGxldGUpOworCQlhcmdzLT5yc3ZkMiA9IChfX3U2NCkgLTE7 CisJfQorCiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTc4OCwxMSArMTg3Myw2IEBAIGk5MTVfZ2Vt X2V4ZWNidWZmZXIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCXJldHVy biAtRUlOVkFMOwogCX0KIAotCWlmIChhcmdzLT5yc3ZkMiAhPSAwKSB7Ci0JCURSTV9ERUJVRygi ZGlydHkgcnZzZDIgZmllbGRcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KIAlleGVjMl9s aXN0ID0ga21hbGxvYyhzaXplb2YoKmV4ZWMyX2xpc3QpKmFyZ3MtPmJ1ZmZlcl9jb3VudCwKIAkJ CSAgICAgR0ZQX1RFTVBPUkFSWSB8IF9fR0ZQX05PV0FSTiB8IF9fR0ZQX05PUkVUUlkpOwogCWlm IChleGVjMl9saXN0ID09IE5VTEwpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVf ZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggMTkyMDI3Yi4uOWRiZjY3 ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisrKyBiL2luY2x1ZGUv dWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtMjUwLDcgKzI1MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9k cm1faTkxNV9zYXJlYSB7CiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0hXU19BRERSCQlEUk1fSU9X KERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9IV1NfQUREUiwgc3RydWN0IGRybV9pOTE1X2dl bV9pbml0KQogI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fSU5JVAkJRFJNX0lPVyhEUk1fQ09N TUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0lOSVQsIHN0cnVjdCBkcm1faTkxNV9nZW1faW5pdCkK ICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZGRVIJRFJNX0lPVyhEUk1fQ09NTUFO RF9CQVNFICsgRFJNX0k5MTVfR0VNX0VYRUNCVUZGRVIsIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhl Y2J1ZmZlcikKLSNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZGRVIyCURSTV9JT1co RFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9FWEVDQlVGRkVSMiwgc3RydWN0IGRybV9p OTE1X2dlbV9leGVjYnVmZmVyMikKKyNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZG RVIyCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fRVhFQ0JVRkZFUjIs IHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIpCiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1 X0dFTV9QSU4JCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fUElOLCBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3BpbikKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX1VOUElO CURSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9VTlBJTiwgc3RydWN0IGRy bV9pOTE1X2dlbV91bnBpbikKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0JVU1kJCURSTV9J T1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fQlVTWSwgc3RydWN0IGRybV9pOTE1 X2dlbV9idXN5KQpAQCAtNjk0LDcgKzY5NCw3IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19v YmplY3QyIHsKIAlfX3U2NCBmbGFnczsKIAogCV9fdTY0IHJzdmQxOwotCV9fdTY0IHJzdmQyOwor CV9fdTY0IHJzdmQyOwkvKiBVc2VkIGZvciBmZW5jZSBmZCAqLwogfTsKIAogc3RydWN0IGRybV9p OTE1X2dlbV9leGVjYnVmZmVyMiB7CkBAIC03NzUsNyArNzc1LDE3IEBAIHN0cnVjdCBkcm1faTkx NV9nZW1fZXhlY2J1ZmZlcjIgewogICovCiAjZGVmaW5lIEk5MTVfRVhFQ19SRVNPVVJDRV9TVFJF QU1FUiAgICAgKDE8PDE1KQogCi0jZGVmaW5lIF9fSTkxNV9FWEVDX1VOS05PV05fRkxBR1MgLShJ OTE1X0VYRUNfUkVTT1VSQ0VfU1RSRUFNRVI8PDEpCisvKiogQ2FsbGVyIHN1cHBsaWVzIGEgc3lu YyBmZW5jZSBmZCBpbiB0aGUgcnN2ZDIgZmllbGQuCisgKiBXYWl0IGZvciBpdCB0byBiZSBzaWdu YWxsZWQgYmVmb3JlIHN0YXJ0aW5nIHRoZSB3b3JrCisgKi8KKyNkZWZpbmUgSTkxNV9FWEVDX1dB SVRfRkVOQ0UJCSgxPDwxNikKKworLyoqIENhbGxlciB3YW50cyBhIHN5bmMgZmVuY2UgZmQgZm9y IHRoaXMgZXhlY2J1ZmZlci4KKyAqICBJdCB3aWxsIGJlIHJldHVybmVkIGluIHJzdmQyCisgKi8K KyNkZWZpbmUgSTkxNV9FWEVDX0NSRUFURV9GRU5DRQkJKDE8PDE3KQorCisjZGVmaW5lIF9fSTkx NV9FWEVDX1VOS05PV05fRkxBR1MgLShJOTE1X0VYRUNfQ1JFQVRFX0ZFTkNFPDwxKQogCiAjZGVm aW5lIEk5MTVfRVhFQ19DT05URVhUX0lEX01BU0sJKDB4ZmZmZmZmZmYpCiAjZGVmaW5lIGk5MTVf ZXhlY2J1ZmZlcjJfc2V0X2NvbnRleHRfaWQoZWIyLCBjb250ZXh0KSBcCi0tIAoxLjkuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK