From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [RFC 11/12] drm/i915: Add sync framework support to execbuff IOCTL Date: Mon, 23 Nov 2015 11:34:30 +0000 Message-ID: <1448278471-31181-12-git-send-email-John.C.Harrison@Intel.com> References: <1448278471-31181-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 7535E721EA for ; Mon, 23 Nov 2015 03:34:50 -0800 (PST) In-Reply-To: <1448278471-31181-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 dXguaW50ZWwuY29tPgoKdjI6IE5ldyBwYXRjaCBpbiBzZXJpZXMuCgp2MzogVXBkYXRlZCB0byB1 c2UgdGhlIG5ldyAnc3luY19mZW5jZV9pc19zaWduYWxlZCcgQVBJIHJhdGhlciB0aGFuCmhhdmlu ZyB0byBrbm93IGFib3V0IHRoZSBpbnRlcm5hbCBtZWFuaW5nIG9mIHRoZSAnZmVuY2U6OnN0YXR1 cycgZmllbGQKKHdoaWNoIHJlY2VudGx5IGdvdCBpbnZlcnRlZCEpIFt3b3JrIGJ5IFBldGVyIExh d3RoZXJzXS4KClVwZGF0ZWQgYWZ0ZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IERhbmllbCBWZXR0ZXIu IFJlbW92ZWQgJyNpZmRlZgpDT05GSUdfU1lOQycgYW5kIGFkZCAnc2VsZWN0IFNZTkMnIHRvIHRo ZSBLY29uZmlnIGluc3RlYWQuIE1vdmVkIHRoZQpmZCBpbnN0YWxsYXRpb24gb2YgZmVuY2VzIHRv IHRoZSBlbmQgb2YgdGhlIGV4ZWNidWZmIGNhbGwgdG8gaW4gb3JkZXIKdG8gcmVtb3ZlIHRoZSBu ZWVkIHRvIHVzZSAnc3lzX2Nsb3NlJyB0byBjbGVhbiB1cCBvbiBmYWlsdXJlLgoKVXBkYXRlZCBh ZnRlciByZXZpZXcgY29tbWVudHMgYnkgVHZydGtvIFVyc3VsaW4uIFJlbXZvZWQgdGhlCidmZW5j ZV9leHRlcm5hbCcgZmxhZyBhcyByZWR1bmRhbnQuIENvdm5lcnRlZCBEUk1fRVJST1JzIHRvCkRS TV9ERUJVR3MuIENoYW5nZWQgb25lIHNlY29uZCB3YWl0IHRvIGEgd2FpdCBmb3JldmVyIHdoZW4g d2FpdGluZyBvbgppbmNvbWluZyBmZW5jZXMuCgpGb3I6IFZJWi01MTkwClNpZ25lZC1vZmYtYnk6 IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IFBldGVyIExhd3RoZXJzIDxwZXRlci5sYXd0aGVyc0BpbnRlbC5jb20+CkNjOiBUdnJ0a28gVXJz dWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVs QGZmd2xsLmNoPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcgICAgICAgICAgICAg ICB8ICAzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICA2 ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgfCA4NyArKysr KysrKysrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYyB8IDk1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogaW5jbHVkZS91 YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgICAgIHwgMTYgKysrKy0KIDUgZmlsZXMgY2hh bmdlZCwgMTk4IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcK aW5kZXggMWQ5NmZlMS4uY2I1ZDViMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv S2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnCkBAIC0yMiw2ICsyMiw5 IEBAIGNvbmZpZyBEUk1fSTkxNQogCXNlbGVjdCBBQ1BJX1ZJREVPIGlmIEFDUEkKIAlzZWxlY3Qg QUNQSV9CVVRUT04gaWYgQUNQSQogCXNlbGVjdCBNTVVfTk9USUZJRVIKKwkjIEFORFJPSUQgaXMg cmVxdWlyZWQgZm9yIFNZTkMKKwlzZWxlY3QgQU5EUk9JRAorCXNlbGVjdCBTWU5DCiAJaGVscAog CSAgQ2hvb3NlIHRoaXMgb3B0aW9uIGlmIHlvdSBoYXZlIGEgc3lzdGVtIHRoYXQgaGFzICJJbnRl bCBHcmFwaGljcwogCSAgTWVkaWEgQWNjZWxlcmF0b3IiIG9yICJIRCBHcmFwaGljcyIgaW50ZWdy YXRlZCBncmFwaGljcywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGQwMTNjNmQuLjE5NGJj YTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjI3OCw2ICsyMjc4LDEyIEBAIHZvaWQg aTkxNV9nZW1fcmVxdWVzdF9ub3RpZnkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgYm9v bCBmZW5jZV9sb2NrZWQpOwogaW50IGk5MTVfY3JlYXRlX2ZlbmNlX3RpbWVsaW5lKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJCQkgICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAkJ CSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKK3N0cnVjdCBzeW5jX2ZlbmNl OworaW50IGk5MTVfY3JlYXRlX3N5bmNfZmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEsCisJCQkgICBzdHJ1Y3Qgc3luY19mZW5jZSAqKnN5bmNfZmVuY2UsIGludCAqZmVuY2Vf ZmQpOwordm9pZCBpOTE1X2luc3RhbGxfc3luY19mZW5jZV9mZChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSwKKwkJCQlzdHJ1Y3Qgc3luY19mZW5jZSAqc3luY19mZW5jZSwgaW50IGZl bmNlX2ZkKTsKK2Jvb2wgaTkxNV9zYWZlX3RvX2lnbm9yZV9mZW5jZShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nLCBzdHJ1Y3Qgc3luY19mZW5jZSAqZmVuY2UpOwogCiBzdGF0aWMgaW5saW5l IGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA3MmNmNWRjLi41Yzg0ODY2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxs aW51eC9zd2FwLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSA8bGludXgvZG1h LWJ1Zi5oPgorI2luY2x1ZGUgPC4uL2RyaXZlcnMvYW5kcm9pZC9zeW5jLmg+CiAKICNkZWZpbmUg UlFfQlVHX09OKGV4cHIpCiAKQEAgLTI1NjAsNyArMjU2MSwxMyBAQCB2b2lkIF9faTkxNV9hZGRf cmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCiAKIAkvKgogCSAq IEFkZCB0aGUgZmVuY2UgdG8gdGhlIHBlbmRpbmcgbGlzdCBiZWZvcmUgZW1pdHRpbmcgdGhlIGNv bW1hbmRzIHRvCi0JICogZ2VuZXJhdGUgYSBzZXFubyBub3RpZmljYXRpb24gaW50ZXJydXB0Lgor CSAqIGdlbmVyYXRlIGEgc2Vxbm8gbm90aWZpY2F0aW9uIGludGVycnVwdC4gVGhpcyB3aWxsIGFs c28gZW5hYmxlCisJICogaW50ZXJydXB0cyBpZiAnc2lnbmFsX3JlcXVlc3RlZCcgaGFzIGJlZW4g c2V0LgorCSAqCisJICogRm9yIGV4YW1wbGUsIGlmIGFuIGV4cG9ydGVkIHN5bmMgcG9pbnQgaGFz IGJlZW4gcmVxdWVzdGVkIGZvciB0aGlzCisJICogcmVxdWVzdCB0aGVuIGl0IGNhbiBiZSB3YWl0 ZWQgb24gd2l0aG91dCB0aGUgZHJpdmVyJ3Mga25vd2xlZGdlLAorCSAqIGkuZS4gd2l0aG91dCBj YWxsaW5nIF9faTkxNV93YWl0X3JlcXVlc3QoKS4gVGh1cyBpbnRlcnJ1cHRzIG11c3QKKwkgKiBi ZSBlbmFibGVkIGZyb20gdGhlIHN0YXJ0IHJhdGhlciB0aGFuIG9ubHkgb24gZGVtYW5kLgogCSAq LwogCWk5MTVfZ2VtX3JlcXVlc3Rfc3VibWl0KHJlcXVlc3QpOwogCkBAIC0yOTAyLDYgKzI5MDks ODQgQEAgc3RhdGljIHVuc2lnbmVkIGk5MTVfZmVuY2VfdGltZWxpbmVfZ2V0X25leHRfc2Vxbm8o c3RydWN0IGk5MTVfZmVuY2VfdGltZWxpbmUgKnQKIAlyZXR1cm4gc2Vxbm87CiB9CiAKK2ludCBp OTE1X2NyZWF0ZV9zeW5jX2ZlbmNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAor CQkJICAgc3RydWN0IHN5bmNfZmVuY2UgKipzeW5jX2ZlbmNlLCBpbnQgKmZlbmNlX2ZkKQorewor CWNoYXIgcmluZ19uYW1lW10gPSAiaTkxNV9yaW5nMCI7CisJaW50IGZkOworCisJZmQgPSBnZXRf dW51c2VkX2ZkX2ZsYWdzKE9fQ0xPRVhFQyk7CisJaWYgKGZkIDwgMCkgeworCQlEUk1fREVCVUco Ik5vIGF2YWlsYWJsZSBmaWxlIGRlc2NyaXB0b3JzIVxuIik7CisJCSpmZW5jZV9mZCA9IC0xOwor CQlyZXR1cm4gZmQ7CisJfQorCisJcmluZ19uYW1lWzldICs9IHJlcS0+cmluZy0+aWQ7CisJKnN5 bmNfZmVuY2UgPSBzeW5jX2ZlbmNlX2NyZWF0ZV9kbWEocmluZ19uYW1lLCAmcmVxLT5mZW5jZSk7 CisJaWYgKCEqc3luY19mZW5jZSkgeworCQlwdXRfdW51c2VkX2ZkKGZkKTsKKwkJKmZlbmNlX2Zk ID0gLTE7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCXJldHVybiAwOworfQorCit2b2lkIGk5 MTVfaW5zdGFsbF9zeW5jX2ZlbmNlX2ZkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LAorCQkJCXN0cnVjdCBzeW5jX2ZlbmNlICpzeW5jX2ZlbmNlLCBpbnQgZmVuY2VfZmQpCit7CisJ c3luY19mZW5jZV9pbnN0YWxsKHN5bmNfZmVuY2UsIGZlbmNlX2ZkKTsKKworCS8qCisJICogTkI6 IFRoZSBjb3JyZXNwb25kaW5nIHB1dCBoYXBwZW5zIGF1dG9tYXRpY2FsbHkgb24gZmlsZSBjbG9z ZQorCSAqIGZyb20gc3luY19mZW5jZV9yZWxlYXNlKCkgdmlhIHRoZSBmb3BzIGNhbGxiYWNrLgor CSAqLworCWZlbmNlX2dldCgmcmVxLT5mZW5jZSk7CisKKwkvKgorCSAqIFRoZSBzeW5jIGZyYW1l d29yayBhZGRzIGEgY2FsbGJhY2sgdG8gdGhlIGZlbmNlLiBUaGUgZmVuY2UKKwkgKiBmcmFtZXdv cmsgY2FsbHMgJ2VuYWJsZV9zaWduYWxsaW5nJyB3aGVuIGEgY2FsbGJhY2sgaXMgYWRkZWQuCisJ ICogVGh1cyB0aGlzIGZsYWcgc2hvdWxkIGhhdmUgYmVlbiBzZXQgYnkgbm93LiBJZiBub3QgdGhl bgorCSAqICdlbmFibGVfc2lnbmFsbGluZycgbXVzdCBiZSBjYWxsZWQgZXhwbGljaXRseSBiZWNh dXNlIGV4cG9ydGluZworCSAqIGEgZmVuY2UgdG8gdXNlciBsYW5kIG1lYW5zIGl0IGNhbiBiZSB3 YWl0ZWQgb24gYXN5bmNocm9ub3VzbHkgYW5kCisJICogdGh1cyBtdXN0IGJlIHNpZ25hbGxlZCBh c3luY2hyb25vdXNseS4KKwkgKi8KKwlXQVJOX09OKCFyZXEtPnNpZ25hbF9yZXF1ZXN0ZWQpOwor fQorCitib29sIGk5MTVfc2FmZV90b19pZ25vcmVfZmVuY2Uoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZywgc3RydWN0IHN5bmNfZmVuY2UgKnN5bmNfZmVuY2UpCit7CisJc3RydWN0IGZlbmNl ICpkbWFfZmVuY2U7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisJaW50IGk7 CisKKwlpZiAoc3luY19mZW5jZV9pc19zaWduYWxlZChzeW5jX2ZlbmNlKSkKKwkJcmV0dXJuIHRy dWU7CisKKwlmb3IoaSA9IDA7IGkgPCBzeW5jX2ZlbmNlLT5udW1fZmVuY2VzOyBpKyspIHsKKwkJ ZG1hX2ZlbmNlID0gc3luY19mZW5jZS0+Y2JzW2ldLnN5bmNfcHQ7CisKKwkJLyogTm8gbmVlZCB0 byB3b3JyeSBhYm91dCBkZWFkIHBvaW50czogKi8KKwkJaWYgKGZlbmNlX2lzX3NpZ25hbGVkKGRt YV9mZW5jZSkpCisJCQljb250aW51ZTsKKworCQkvKiBDYW4ndCBpZ25vcmUgb3RoZXIgcGVvcGxl J3MgcG9pbnRzOiAqLworCQlpZihkbWFfZmVuY2UtPm9wcyAhPSAmaTkxNV9nZW1fcmVxdWVzdF9m b3BzKQorCQkJcmV0dXJuIGZhbHNlOworCisJCXJlcSA9IGNvbnRhaW5lcl9vZihkbWFfZmVuY2Us IHR5cGVvZigqcmVxKSwgZmVuY2UpOworCisJCS8qIENhbid0IGlnbm9yZSBwb2ludHMgb24gb3Ro ZXIgcmluZ3M6ICovCisJCWlmIChyZXEtPnJpbmcgIT0gcmluZykKKwkJCXJldHVybiBmYWxzZTsK KworCQkvKiBTYW1lIHJpbmcgbWVhbnMgZ3VhcmFudGVlZCB0byBiZSBpbiBvcmRlciBzbyBpZ25v cmUgaXQuICovCisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKIGludCBpOTE1X2dlbV9yZXF1ZXN0 X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCQkgICBzdHJ1Y3QgaW50ZWxf Y29udGV4dCAqY3R4LAogCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoqcmVxX291 dCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCBiZmM0 YzE3Li41ZjYyOWY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9l eGVjYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jCkBAIC0yNiw2ICsyNiw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9zeXNjYWxs cy5oPgogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+CiAj aW5jbHVkZSAiaTkxNV9kcnYuaCIKQEAgLTMzLDYgKzM0LDcgQEAKICNpbmNsdWRlICJpbnRlbF9k cnYuaCIKICNpbmNsdWRlIDxsaW51eC9kbWFfcmVtYXBwaW5nLmg+CiAjaW5jbHVkZSA8bGludXgv dWFjY2Vzcy5oPgorI2luY2x1ZGUgPC4uL2RyaXZlcnMvYW5kcm9pZC9zeW5jLmg+CiAKICNkZWZp bmUgIF9fRVhFQ19PQkpFQ1RfSEFTX1BJTiAoMTw8MzEpCiAjZGVmaW5lICBfX0VYRUNfT0JKRUNU X0hBU19GRU5DRSAoMTw8MzApCkBAIC0xMzIyLDYgKzEzMjQsMzggQEAgZWJfZ2V0X2JhdGNoKHN0 cnVjdCBlYl92bWFzICplYikKIAlyZXR1cm4gdm1hLT5vYmo7CiB9CiAKK3N0YXRpYyBpbnQgaTkx NV9lYXJseV9mZW5jZV93YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGludCBmZW5j ZV9mZCkKK3sKKwlzdHJ1Y3Qgc3luY19mZW5jZSAqZmVuY2U7CisJaW50IHJldCA9IDA7CisKKwlp ZiAoZmVuY2VfZmQgPCAwKSB7CisJCURSTV9ERUJVRygiSW52YWxpZCB3YWl0IGZlbmNlIGZkICVk IG9uIHJpbmcgJWRcbiIsIGZlbmNlX2ZkLAorCQkJICAoaW50KSByaW5nLT5pZCk7CisJCXJldHVy biAxOworCX0KKworCWZlbmNlID0gc3luY19mZW5jZV9mZGdldChmZW5jZV9mZCk7CisJaWYgKGZl bmNlID09IE5VTEwpIHsKKwkJRFJNX0RFQlVHKCJJbnZhbGlkIHdhaXQgZmVuY2UgJWQgb24gcmlu ZyAlZFxuIiwgZmVuY2VfZmQsCisJCQkgIChpbnQpIHJpbmctPmlkKTsKKwkJcmV0dXJuIDE7CisJ fQorCisJaWYgKCFzeW5jX2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkgeworCQkvKgorCQkgKiBX YWl0IGZvcmV2ZXIgZm9yIHRoZSBmZW5jZSB0byBiZSBzaWduYWxsZWQuIFRoaXMgaXMgc2FmZQor CQkgKiBiZWNhdXNlIHRoZSB0aGUgbXV0ZXggbG9jayBoYXMgbm90IHlldCBiZWVuIGFjcXVpcmVk IGFuZAorCQkgKiB0aGUgd2FpdCBpcyBpbnRlcnJ1cHRpYmxlLgorCQkgKi8KKwkJaWYgKCFpOTE1 X3NhZmVfdG9faWdub3JlX2ZlbmNlKHJpbmcsIGZlbmNlKSkKKwkJCXJldCA9IHN5bmNfZmVuY2Vf d2FpdChmZW5jZSwgLTEpOworCX0KKworCXN5bmNfZmVuY2VfcHV0KGZlbmNlKTsKKwlyZXR1cm4g cmV0OworfQorCiBzdGF0aWMgaW50CiBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUs CkBAIC0xMzQxLDYgKzEzNzUsMTcgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXUzMiBkaXNwYXRjaF9mbGFnczsKIAlpbnQgcmV0 OwogCWJvb2wgbmVlZF9yZWxvY3M7CisJaW50IGZkX2ZlbmNlX2NvbXBsZXRlID0gLTE7CisJaW50 IGZkX2ZlbmNlX3dhaXQgPSBsb3dlcl8zMl9iaXRzKGFyZ3MtPnJzdmQyKTsKKwlzdHJ1Y3Qgc3lu Y19mZW5jZSAqc3luY19mZW5jZTsKKworCS8qCisJICogTWFrZSBzdXJlIGFuIGJyb2tlbiBmZW5j ZSBoYW5kbGUgaXMgbm90IHJldHVybmVkIG5vIG1hdHRlcgorCSAqIGhvdyBlYXJseSBhbiBlcnJv ciBtaWdodCBiZSBoaXQuIE5vdGUgdGhhdCByc3ZkMiBoYXMgdG8gYmUKKwkgKiBzYXZlZCBhd2F5 IGZpcnN0IGJlY2F1c2UgaXQgaXMgYWxzbyBhbiBpbnB1dCBwYXJhbWV0ZXIhCisJICovCisJaWYg KGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0NSRUFURV9GRU5DRSkKKwkJYXJncy0+cnN2ZDIgPSAo X191NjQpIC0xOwogCiAJaWYgKCFpOTE1X2dlbV9jaGVja19leGVjYnVmZmVyKGFyZ3MpKQogCQly ZXR1cm4gLUVJTlZBTDsKQEAgLTE0MjQsNiArMTQ2OSwxNyBAQCBpOTE1X2dlbV9kb19leGVjYnVm ZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWRpc3BhdGNoX2ZsYWdz IHw9IEk5MTVfRElTUEFUQ0hfUlM7CiAJfQogCisJLyoKKwkgKiBXaXRob3V0IGEgR1BVIHNjaGVk dWxlciwgYW55IGZlbmNlIHdhaXRzIG11c3QgYmUgZG9uZSB1cCBmcm9udC4KKwkgKi8KKwlpZiAo YXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNfV0FJVF9GRU5DRSkgeworCQlyZXQgPSBpOTE1X2Vhcmx5 X2ZlbmNlX3dhaXQocmluZywgZmRfZmVuY2Vfd2FpdCk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0 dXJuIHJldDsKKworCQlhcmdzLT5mbGFncyAmPSB+STkxNV9FWEVDX1dBSVRfRkVOQ0U7CisJfQor CiAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwogCiAJcmV0ID0gaTkxNV9tdXRleF9s b2NrX2ludGVycnVwdGlibGUoZGV2KTsKQEAgLTE1NzEsOCArMTYyNyw0MSBAQCBpOTE1X2dlbV9k b19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJcGFyYW1z LT5iYXRjaF9vYmogICAgICAgICAgICAgICA9IGJhdGNoX29iajsKIAlwYXJhbXMtPmN0eCAgICAg ICAgICAgICAgICAgICAgID0gY3R4OwogCisJaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0NS RUFURV9GRU5DRSkgeworCQkvKgorCQkgKiBDYWxsZXIgaGFzIHJlcXVlc3RlZCBhIHN5bmMgZmVu Y2UuCisJCSAqIFVzZXIgaW50ZXJydXB0cyB3aWxsIGJlIGVuYWJsZWQgdG8gbWFrZSBzdXJlIHRo YXQKKwkJICogdGhlIHRpbWVsaW5lIGlzIHNpZ25hbGxlZCBvbiBjb21wbGV0aW9uLgorCQkgKi8K KwkJcmV0ID0gaTkxNV9jcmVhdGVfc3luY19mZW5jZShwYXJhbXMtPnJlcXVlc3QsICZzeW5jX2Zl bmNlLAorCQkJCQkgICAgICZmZF9mZW5jZV9jb21wbGV0ZSk7CisJCWlmIChyZXQpIHsKKwkJCURS TV9FUlJPUigiRmVuY2UgY3JlYXRpb24gZmFpbGVkIGZvciByaW5nICVkLCBjdHggJXBcbiIsCisJ CQkJICByaW5nLT5pZCwgY3R4KTsKKwkJCWdvdG8gZXJyX2JhdGNoX3VucGluOworCQl9CisJfQor CiAJcmV0ID0gZGV2X3ByaXYtPmd0LmV4ZWNidWZfc3VibWl0KHBhcmFtcywgYXJncywgJmViLT52 bWFzKTsKIAorCWlmIChmZF9mZW5jZV9jb21wbGV0ZSAhPSAtMSkgeworCQlpZiAocmV0KSB7CisJ CQlzeW5jX2ZlbmNlX3B1dChzeW5jX2ZlbmNlKTsKKwkJCXB1dF91bnVzZWRfZmQoZmRfZmVuY2Vf Y29tcGxldGUpOworCQl9IGVsc2UgeworCQkJLyoKKwkJCSAqIEluc3RhbGwgdGhlIGZlbmNlIGlu dG8gdGhlIHByZS1hbGxvY2F0ZWQgZmlsZQorCQkJICogZGVzY3JpcHRvciB0byB0aGUgZmVuY2Ug b2JqZWN0IHNvIHRoYXQgdXNlciBsYW5kCisJCQkgKiBjYW4gd2FpdCBvbiBpdC4uLgorCQkJICov CisJCQlpOTE1X2luc3RhbGxfc3luY19mZW5jZV9mZChwYXJhbXMtPnJlcXVlc3QsCisJCQkJCQkg ICBzeW5jX2ZlbmNlLCBmZF9mZW5jZV9jb21wbGV0ZSk7CisKKwkJCS8qIFJldHVybiB0aGUgZmVu Y2UgdGhyb3VnaCB0aGUgcnN2ZDIgZmllbGQgKi8KKwkJCWFyZ3MtPnJzdmQyID0gKF9fdTY0KSBm ZF9mZW5jZV9jb21wbGV0ZTsKKwkJfQorCX0KKwogZXJyX2JhdGNoX3VucGluOgogCS8qCiAJICog RklYTUU6IFdlIGNydWNpYWxseSByZWx5IHVwb24gdGhlIGFjdGl2ZSB0cmFja2luZyBmb3IgdGhl IChwcGd0dCkKQEAgLTE2MDIsNiArMTY5MSw3IEBAIHByZV9tdXRleF9lcnI6CiAJLyogaW50ZWxf Z3B1X2J1c3kgc2hvdWxkIGFsc28gZ2V0IGEgcmVmLCBzbyBpdCB3aWxsIGZyZWUgd2hlbiB0aGUg ZGV2aWNlCiAJICogaXMgcmVhbGx5IGlkbGUuICovCiAJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2 X3ByaXYpOworCiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTcwNywxMSArMTc5Nyw2IEBAIGk5MTVf Z2VtX2V4ZWNidWZmZXIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCXJl dHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChhcmdzLT5yc3ZkMiAhPSAwKSB7Ci0JCURSTV9ERUJV RygiZGlydHkgcnZzZDIgZmllbGRcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KIAlleGVj Ml9saXN0ID0ga21hbGxvYyhzaXplb2YoKmV4ZWMyX2xpc3QpKmFyZ3MtPmJ1ZmZlcl9jb3VudCwK IAkJCSAgICAgR0ZQX1RFTVBPUkFSWSB8IF9fR0ZQX05PV0FSTiB8IF9fR0ZQX05PUkVUUlkpOwog CWlmIChleGVjMl9saXN0ID09IE5VTEwpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5 MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggNjdjZWJlNi4uODZm NzkyMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisrKyBiL2luY2x1 ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtMjUwLDcgKzI1MCw3IEBAIHR5cGVkZWYgc3RydWN0 IF9kcm1faTkxNV9zYXJlYSB7CiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0hXU19BRERSCQlEUk1f SU9XKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9IV1NfQUREUiwgc3RydWN0IGRybV9pOTE1 X2dlbV9pbml0KQogI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fSU5JVAkJRFJNX0lPVyhEUk1f Q09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0lOSVQsIHN0cnVjdCBkcm1faTkxNV9nZW1faW5p dCkKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZGRVIJRFJNX0lPVyhEUk1fQ09N TUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0VYRUNCVUZGRVIsIHN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY2J1ZmZlcikKLSNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZGRVIyCURSTV9J T1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9FWEVDQlVGRkVSMiwgc3RydWN0IGRy bV9pOTE1X2dlbV9leGVjYnVmZmVyMikKKyNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNC VUZGRVIyCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fRVhFQ0JVRkZF UjIsIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIpCiAjZGVmaW5lIERSTV9JT0NUTF9J OTE1X0dFTV9QSU4JCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fUElO LCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3BpbikKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX1VO UElOCURSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9VTlBJTiwgc3RydWN0 IGRybV9pOTE1X2dlbV91bnBpbikKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0JVU1kJCURS TV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fQlVTWSwgc3RydWN0IGRybV9p OTE1X2dlbV9idXN5KQpAQCAtNjk1LDcgKzY5NSw3IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhl Y19vYmplY3QyIHsKIAlfX3U2NCBmbGFnczsKIAogCV9fdTY0IHJzdmQxOwotCV9fdTY0IHJzdmQy OworCV9fdTY0IHJzdmQyOwkvKiBVc2VkIGZvciBmZW5jZSBmZCAqLwogfTsKIAogc3RydWN0IGRy bV9pOTE1X2dlbV9leGVjYnVmZmVyMiB7CkBAIC03NzYsNyArNzc2LDE3IEBAIHN0cnVjdCBkcm1f aTkxNV9nZW1fZXhlY2J1ZmZlcjIgewogICovCiAjZGVmaW5lIEk5MTVfRVhFQ19SRVNPVVJDRV9T VFJFQU1FUiAgICAgKDE8PDE1KQogCi0jZGVmaW5lIF9fSTkxNV9FWEVDX1VOS05PV05fRkxBR1Mg LShJOTE1X0VYRUNfUkVTT1VSQ0VfU1RSRUFNRVI8PDEpCisvKiogQ2FsbGVyIHN1cHBsaWVzIGEg c3luYyBmZW5jZSBmZCBpbiB0aGUgcnN2ZDIgZmllbGQuCisgKiBXYWl0IGZvciBpdCB0byBiZSBz aWduYWxsZWQgYmVmb3JlIHN0YXJ0aW5nIHRoZSB3b3JrCisgKi8KKyNkZWZpbmUgSTkxNV9FWEVD X1dBSVRfRkVOQ0UJCSgxPDwxNikKKworLyoqIENhbGxlciB3YW50cyBhIHN5bmMgZmVuY2UgZmQg Zm9yIHRoaXMgZXhlY2J1ZmZlci4KKyAqICBJdCB3aWxsIGJlIHJldHVybmVkIGluIHJzdmQyCisg Ki8KKyNkZWZpbmUgSTkxNV9FWEVDX0NSRUFURV9GRU5DRQkJKDE8PDE3KQorCisjZGVmaW5lIF9f STkxNV9FWEVDX1VOS05PV05fRkxBR1MgLShJOTE1X0VYRUNfQ1JFQVRFX0ZFTkNFPDwxKQogCiAj ZGVmaW5lIEk5MTVfRVhFQ19DT05URVhUX0lEX01BU0sJKDB4ZmZmZmZmZmYpCiAjZGVmaW5lIGk5 MTVfZXhlY2J1ZmZlcjJfc2V0X2NvbnRleHRfaWQoZWIyLCBjb250ZXh0KSBcCi0tIAoxLjkuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK