From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH 12/13] drm/i915: Add sync framework support to execbuff IOCTL Date: Fri, 11 Dec 2015 13:12:00 +0000 Message-ID: <1449839521-21958-13-git-send-email-John.C.Harrison@Intel.com> References: <1449839521-21958-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id A75786EFA6 for ; Fri, 11 Dec 2015 05:12:29 -0800 (PST) In-Reply-To: <1449839521-21958-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 d2FpdGluZyBvbgppbmNvbWluZyBmZW5jZXMuCgp2NDogUmUtaW5zdGF0ZWQgbWlzc2luZyByZXR1 cm4gb2YgZmQgdG8gdXNlciBsYW5kIHRoYXQgc29tZWhvdyBnb3QKbG9zdCBpbiB0aGUgYW50aS1z eXNfY2xvc2UoKSByZS1mYWN0b3IuCgpGb3I6IFZJWi01MTkwClNpZ25lZC1vZmYtYnk6IEpvaG4g SGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFBldGVy IExhd3RoZXJzIDxwZXRlci5sYXd0aGVyc0BpbnRlbC5jb20+CkNjOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xs LmNoPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcgICAgICAgICAgICAgICB8ICAz ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICA2ICsrCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgfCA4OSArKysrKysrKysr KysrKysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVm ZmVyLmMgfCA5NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIGluY2x1ZGUvdWFwaS9k cm0vaTkxNV9kcm0uaCAgICAgICAgICAgICAgICB8IDE2ICsrKystCiA1IGZpbGVzIGNoYW5nZWQs IDIwMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnCmluZGV4 IDFkOTZmZTEuLmNiNWQ1YjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25m aWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZwpAQCAtMjIsNiArMjIsOSBAQCBj b25maWcgRFJNX0k5MTUKIAlzZWxlY3QgQUNQSV9WSURFTyBpZiBBQ1BJCiAJc2VsZWN0IEFDUElf QlVUVE9OIGlmIEFDUEkKIAlzZWxlY3QgTU1VX05PVElGSUVSCisJIyBBTkRST0lEIGlzIHJlcXVp cmVkIGZvciBTWU5DCisJc2VsZWN0IEFORFJPSUQKKwlzZWxlY3QgU1lOQwogCWhlbHAKIAkgIENo b29zZSB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBhIHN5c3RlbSB0aGF0IGhhcyAiSW50ZWwgR3Jh cGhpY3MKIAkgIE1lZGlhIEFjY2VsZXJhdG9yIiBvciAiSEQgR3JhcGhpY3MiIGludGVncmF0ZWQg Z3JhcGhpY3MsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBkMDEzYzZkLi4xOTRiY2EwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTIyNzgsNiArMjI3OCwxMiBAQCB2b2lkIGk5MTVf Z2VtX3JlcXVlc3Rfbm90aWZ5KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGJvb2wgZmVu Y2VfbG9ja2VkKTsKIGludCBpOTE1X2NyZWF0ZV9mZW5jZV90aW1lbGluZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCiAJCQkgICAg ICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7CitzdHJ1Y3Qgc3luY19mZW5jZTsKK2lu dCBpOTE1X2NyZWF0ZV9zeW5jX2ZlbmNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LAorCQkJICAgc3RydWN0IHN5bmNfZmVuY2UgKipzeW5jX2ZlbmNlLCBpbnQgKmZlbmNlX2ZkKTsK K3ZvaWQgaTkxNV9pbnN0YWxsX3N5bmNfZmVuY2VfZmQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCisJCQkJc3RydWN0IHN5bmNfZmVuY2UgKnN5bmNfZmVuY2UsIGludCBmZW5jZV9m ZCk7Citib29sIGk5MTVfc2FmZV90b19pZ25vcmVfZmVuY2Uoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZywgc3RydWN0IHN5bmNfZmVuY2UgKmZlbmNlKTsKIAogc3RhdGljIGlubGluZSBib29s IGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggNDgxNzAxNS4uMjc5ZDc5ZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8bGludXgv c3dhcC5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYu aD4KKyNpbmNsdWRlIDwuLi9kcml2ZXJzL2FuZHJvaWQvc3luYy5oPgogCiAjZGVmaW5lIFJRX0JV R19PTihleHByKQogCkBAIC0yNTYwLDcgKzI1NjEsMTMgQEAgdm9pZCBfX2k5MTVfYWRkX3JlcXVl c3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAogCiAJLyoKIAkgKiBBZGQg dGhlIGZlbmNlIHRvIHRoZSBwZW5kaW5nIGxpc3QgYmVmb3JlIGVtaXR0aW5nIHRoZSBjb21tYW5k cyB0bwotCSAqIGdlbmVyYXRlIGEgc2Vxbm8gbm90aWZpY2F0aW9uIGludGVycnVwdC4KKwkgKiBn ZW5lcmF0ZSBhIHNlcW5vIG5vdGlmaWNhdGlvbiBpbnRlcnJ1cHQuIFRoaXMgd2lsbCBhbHNvIGVu YWJsZQorCSAqIGludGVycnVwdHMgaWYgJ3NpZ25hbF9yZXF1ZXN0ZWQnIGhhcyBiZWVuIHNldC4K KwkgKgorCSAqIEZvciBleGFtcGxlLCBpZiBhbiBleHBvcnRlZCBzeW5jIHBvaW50IGhhcyBiZWVu IHJlcXVlc3RlZCBmb3IgdGhpcworCSAqIHJlcXVlc3QgdGhlbiBpdCBjYW4gYmUgd2FpdGVkIG9u IHdpdGhvdXQgdGhlIGRyaXZlcidzIGtub3dsZWRnZSwKKwkgKiBpLmUuIHdpdGhvdXQgY2FsbGlu ZyBfX2k5MTVfd2FpdF9yZXF1ZXN0KCkuIFRodXMgaW50ZXJydXB0cyBtdXN0CisJICogYmUgZW5h YmxlZCBmcm9tIHRoZSBzdGFydCByYXRoZXIgdGhhbiBvbmx5IG9uIGRlbWFuZC4KIAkgKi8KIAlp OTE1X2dlbV9yZXF1ZXN0X3N1Ym1pdChyZXF1ZXN0KTsKIApAQCAtMjkwMSw2ICsyOTA4LDg2IEBA IHN0YXRpYyB1bnNpZ25lZCBpOTE1X2ZlbmNlX3RpbWVsaW5lX2dldF9uZXh0X3NlcW5vKHN0cnVj dCBpOTE1X2ZlbmNlX3RpbWVsaW5lICp0CiAJcmV0dXJuIHNlcW5vOwogfQogCitpbnQgaTkxNV9j cmVhdGVfc3luY19mZW5jZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKKwkJCSAg IHN0cnVjdCBzeW5jX2ZlbmNlICoqc3luY19mZW5jZSwgaW50ICpmZW5jZV9mZCkKK3sKKwljaGFy IHJpbmdfbmFtZVtdID0gImk5MTVfcmluZzAiOworCWludCBmZDsKKworCWZkID0gZ2V0X3VudXNl ZF9mZF9mbGFncyhPX0NMT0VYRUMpOworCWlmIChmZCA8IDApIHsKKwkJRFJNX0RFQlVHKCJObyBh dmFpbGFibGUgZmlsZSBkZXNjcmlwdG9ycyFcbiIpOworCQkqZmVuY2VfZmQgPSAtMTsKKwkJcmV0 dXJuIGZkOworCX0KKworCXJpbmdfbmFtZVs5XSArPSByZXEtPnJpbmctPmlkOworCSpzeW5jX2Zl bmNlID0gc3luY19mZW5jZV9jcmVhdGVfZG1hKHJpbmdfbmFtZSwgJnJlcS0+ZmVuY2UpOworCWlm ICghKnN5bmNfZmVuY2UpIHsKKwkJcHV0X3VudXNlZF9mZChmZCk7CisJCSpmZW5jZV9mZCA9IC0x OworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwkqZmVuY2VfZmQgPSBmZDsKKworCXJldHVybiAw OworfQorCit2b2lkIGk5MTVfaW5zdGFsbF9zeW5jX2ZlbmNlX2ZkKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxLAorCQkJCXN0cnVjdCBzeW5jX2ZlbmNlICpzeW5jX2ZlbmNlLCBpbnQg ZmVuY2VfZmQpCit7CisJc3luY19mZW5jZV9pbnN0YWxsKHN5bmNfZmVuY2UsIGZlbmNlX2ZkKTsK KworCS8qCisJICogTkI6IFRoZSBjb3JyZXNwb25kaW5nIHB1dCBoYXBwZW5zIGF1dG9tYXRpY2Fs bHkgb24gZmlsZSBjbG9zZQorCSAqIGZyb20gc3luY19mZW5jZV9yZWxlYXNlKCkgdmlhIHRoZSBm b3BzIGNhbGxiYWNrLgorCSAqLworCWZlbmNlX2dldCgmcmVxLT5mZW5jZSk7CisKKwkvKgorCSAq IFRoZSBzeW5jIGZyYW1ld29yayBhZGRzIGEgY2FsbGJhY2sgdG8gdGhlIGZlbmNlLiBUaGUgZmVu Y2UKKwkgKiBmcmFtZXdvcmsgY2FsbHMgJ2VuYWJsZV9zaWduYWxsaW5nJyB3aGVuIGEgY2FsbGJh Y2sgaXMgYWRkZWQuCisJICogVGh1cyB0aGlzIGZsYWcgc2hvdWxkIGhhdmUgYmVlbiBzZXQgYnkg bm93LiBJZiBub3QgdGhlbgorCSAqICdlbmFibGVfc2lnbmFsbGluZycgbXVzdCBiZSBjYWxsZWQg ZXhwbGljaXRseSBiZWNhdXNlIGV4cG9ydGluZworCSAqIGEgZmVuY2UgdG8gdXNlciBsYW5kIG1l YW5zIGl0IGNhbiBiZSB3YWl0ZWQgb24gYXN5bmNocm9ub3VzbHkgYW5kCisJICogdGh1cyBtdXN0 IGJlIHNpZ25hbGxlZCBhc3luY2hyb25vdXNseS4KKwkgKi8KKwlXQVJOX09OKCFyZXEtPnNpZ25h bF9yZXF1ZXN0ZWQpOworfQorCitib29sIGk5MTVfc2FmZV90b19pZ25vcmVfZmVuY2Uoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZywgc3RydWN0IHN5bmNfZmVuY2UgKnN5bmNfZmVuY2UpCit7 CisJc3RydWN0IGZlbmNlICpkbWFfZmVuY2U7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXE7CisJaW50IGk7CisKKwlpZiAoc3luY19mZW5jZV9pc19zaWduYWxlZChzeW5jX2ZlbmNl KSkKKwkJcmV0dXJuIHRydWU7CisKKwlmb3IoaSA9IDA7IGkgPCBzeW5jX2ZlbmNlLT5udW1fZmVu Y2VzOyBpKyspIHsKKwkJZG1hX2ZlbmNlID0gc3luY19mZW5jZS0+Y2JzW2ldLnN5bmNfcHQ7CisK KwkJLyogTm8gbmVlZCB0byB3b3JyeSBhYm91dCBkZWFkIHBvaW50czogKi8KKwkJaWYgKGZlbmNl X2lzX3NpZ25hbGVkKGRtYV9mZW5jZSkpCisJCQljb250aW51ZTsKKworCQkvKiBDYW4ndCBpZ25v cmUgb3RoZXIgcGVvcGxlJ3MgcG9pbnRzOiAqLworCQlpZihkbWFfZmVuY2UtPm9wcyAhPSAmaTkx NV9nZW1fcmVxdWVzdF9mb3BzKQorCQkJcmV0dXJuIGZhbHNlOworCisJCXJlcSA9IGNvbnRhaW5l cl9vZihkbWFfZmVuY2UsIHR5cGVvZigqcmVxKSwgZmVuY2UpOworCisJCS8qIENhbid0IGlnbm9y ZSBwb2ludHMgb24gb3RoZXIgcmluZ3M6ICovCisJCWlmIChyZXEtPnJpbmcgIT0gcmluZykKKwkJ CXJldHVybiBmYWxzZTsKKworCQkvKiBTYW1lIHJpbmcgbWVhbnMgZ3VhcmFudGVlZCB0byBiZSBp biBvcmRlciBzbyBpZ25vcmUgaXQuICovCisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKIGludCBp OTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCQkg ICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAogCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICoqcmVxX291dCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwppbmRleCBiZmM0YzE3Li41ZjYyOWY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jCkBAIC0yNiw2ICsyNiw3IEBACiAgKgogICovCiAKKyNpbmNsdWRl IDxsaW51eC9zeXNjYWxscy5oPgogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJt L2k5MTVfZHJtLmg+CiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKQEAgLTMzLDYgKzM0LDcgQEAKICNp bmNsdWRlICJpbnRlbF9kcnYuaCIKICNpbmNsdWRlIDxsaW51eC9kbWFfcmVtYXBwaW5nLmg+CiAj aW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPC4uL2RyaXZlcnMvYW5kcm9pZC9z eW5jLmg+CiAKICNkZWZpbmUgIF9fRVhFQ19PQkpFQ1RfSEFTX1BJTiAoMTw8MzEpCiAjZGVmaW5l ICBfX0VYRUNfT0JKRUNUX0hBU19GRU5DRSAoMTw8MzApCkBAIC0xMzIyLDYgKzEzMjQsMzggQEAg ZWJfZ2V0X2JhdGNoKHN0cnVjdCBlYl92bWFzICplYikKIAlyZXR1cm4gdm1hLT5vYmo7CiB9CiAK K3N0YXRpYyBpbnQgaTkxNV9lYXJseV9mZW5jZV93YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsIGludCBmZW5jZV9mZCkKK3sKKwlzdHJ1Y3Qgc3luY19mZW5jZSAqZmVuY2U7CisJaW50 IHJldCA9IDA7CisKKwlpZiAoZmVuY2VfZmQgPCAwKSB7CisJCURSTV9ERUJVRygiSW52YWxpZCB3 YWl0IGZlbmNlIGZkICVkIG9uIHJpbmcgJWRcbiIsIGZlbmNlX2ZkLAorCQkJICAoaW50KSByaW5n LT5pZCk7CisJCXJldHVybiAxOworCX0KKworCWZlbmNlID0gc3luY19mZW5jZV9mZGdldChmZW5j ZV9mZCk7CisJaWYgKGZlbmNlID09IE5VTEwpIHsKKwkJRFJNX0RFQlVHKCJJbnZhbGlkIHdhaXQg ZmVuY2UgJWQgb24gcmluZyAlZFxuIiwgZmVuY2VfZmQsCisJCQkgIChpbnQpIHJpbmctPmlkKTsK KwkJcmV0dXJuIDE7CisJfQorCisJaWYgKCFzeW5jX2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkg eworCQkvKgorCQkgKiBXYWl0IGZvcmV2ZXIgZm9yIHRoZSBmZW5jZSB0byBiZSBzaWduYWxsZWQu IFRoaXMgaXMgc2FmZQorCQkgKiBiZWNhdXNlIHRoZSB0aGUgbXV0ZXggbG9jayBoYXMgbm90IHll dCBiZWVuIGFjcXVpcmVkIGFuZAorCQkgKiB0aGUgd2FpdCBpcyBpbnRlcnJ1cHRpYmxlLgorCQkg Ki8KKwkJaWYgKCFpOTE1X3NhZmVfdG9faWdub3JlX2ZlbmNlKHJpbmcsIGZlbmNlKSkKKwkJCXJl dCA9IHN5bmNfZmVuY2Vfd2FpdChmZW5jZSwgLTEpOworCX0KKworCXN5bmNfZmVuY2VfcHV0KGZl bmNlKTsKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgaW50CiBpOTE1X2dlbV9kb19leGVjYnVm ZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCSAgICAgICBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGUsCkBAIC0xMzQxLDYgKzEzNzUsMTcgQEAgaTkxNV9nZW1fZG9fZXhlY2J1 ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXUzMiBkaXNwYXRjaF9m bGFnczsKIAlpbnQgcmV0OwogCWJvb2wgbmVlZF9yZWxvY3M7CisJaW50IGZkX2ZlbmNlX2NvbXBs ZXRlID0gLTE7CisJaW50IGZkX2ZlbmNlX3dhaXQgPSBsb3dlcl8zMl9iaXRzKGFyZ3MtPnJzdmQy KTsKKwlzdHJ1Y3Qgc3luY19mZW5jZSAqc3luY19mZW5jZTsKKworCS8qCisJICogTWFrZSBzdXJl IGFuIGJyb2tlbiBmZW5jZSBoYW5kbGUgaXMgbm90IHJldHVybmVkIG5vIG1hdHRlcgorCSAqIGhv dyBlYXJseSBhbiBlcnJvciBtaWdodCBiZSBoaXQuIE5vdGUgdGhhdCByc3ZkMiBoYXMgdG8gYmUK KwkgKiBzYXZlZCBhd2F5IGZpcnN0IGJlY2F1c2UgaXQgaXMgYWxzbyBhbiBpbnB1dCBwYXJhbWV0 ZXIhCisJICovCisJaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0NSRUFURV9GRU5DRSkKKwkJ YXJncy0+cnN2ZDIgPSAoX191NjQpIC0xOwogCiAJaWYgKCFpOTE1X2dlbV9jaGVja19leGVjYnVm ZmVyKGFyZ3MpKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTE0MjQsNiArMTQ2OSwxNyBAQCBpOTE1 X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJ CWRpc3BhdGNoX2ZsYWdzIHw9IEk5MTVfRElTUEFUQ0hfUlM7CiAJfQogCisJLyoKKwkgKiBXaXRo b3V0IGEgR1BVIHNjaGVkdWxlciwgYW55IGZlbmNlIHdhaXRzIG11c3QgYmUgZG9uZSB1cCBmcm9u dC4KKwkgKi8KKwlpZiAoYXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNfV0FJVF9GRU5DRSkgeworCQly ZXQgPSBpOTE1X2Vhcmx5X2ZlbmNlX3dhaXQocmluZywgZmRfZmVuY2Vfd2FpdCk7CisJCWlmIChy ZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlhcmdzLT5mbGFncyAmPSB+STkxNV9FWEVDX1dB SVRfRkVOQ0U7CisJfQorCiAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwogCiAJcmV0 ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoZGV2KTsKQEAgLTE1NzEsOCArMTYyNyw0 MSBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCiAJcGFyYW1zLT5iYXRjaF9vYmogICAgICAgICAgICAgICA9IGJhdGNoX29iajsKIAlw YXJhbXMtPmN0eCAgICAgICAgICAgICAgICAgICAgID0gY3R4OwogCisJaWYgKGFyZ3MtPmZsYWdz ICYgSTkxNV9FWEVDX0NSRUFURV9GRU5DRSkgeworCQkvKgorCQkgKiBDYWxsZXIgaGFzIHJlcXVl c3RlZCBhIHN5bmMgZmVuY2UuCisJCSAqIFVzZXIgaW50ZXJydXB0cyB3aWxsIGJlIGVuYWJsZWQg dG8gbWFrZSBzdXJlIHRoYXQKKwkJICogdGhlIHRpbWVsaW5lIGlzIHNpZ25hbGxlZCBvbiBjb21w bGV0aW9uLgorCQkgKi8KKwkJcmV0ID0gaTkxNV9jcmVhdGVfc3luY19mZW5jZShwYXJhbXMtPnJl cXVlc3QsICZzeW5jX2ZlbmNlLAorCQkJCQkgICAgICZmZF9mZW5jZV9jb21wbGV0ZSk7CisJCWlm IChyZXQpIHsKKwkJCURSTV9FUlJPUigiRmVuY2UgY3JlYXRpb24gZmFpbGVkIGZvciByaW5nICVk LCBjdHggJXBcbiIsCisJCQkJICByaW5nLT5pZCwgY3R4KTsKKwkJCWdvdG8gZXJyX2JhdGNoX3Vu cGluOworCQl9CisJfQorCiAJcmV0ID0gZGV2X3ByaXYtPmd0LmV4ZWNidWZfc3VibWl0KHBhcmFt cywgYXJncywgJmViLT52bWFzKTsKIAorCWlmIChmZF9mZW5jZV9jb21wbGV0ZSAhPSAtMSkgewor CQlpZiAocmV0KSB7CisJCQlzeW5jX2ZlbmNlX3B1dChzeW5jX2ZlbmNlKTsKKwkJCXB1dF91bnVz ZWRfZmQoZmRfZmVuY2VfY29tcGxldGUpOworCQl9IGVsc2UgeworCQkJLyoKKwkJCSAqIEluc3Rh bGwgdGhlIGZlbmNlIGludG8gdGhlIHByZS1hbGxvY2F0ZWQgZmlsZQorCQkJICogZGVzY3JpcHRv ciB0byB0aGUgZmVuY2Ugb2JqZWN0IHNvIHRoYXQgdXNlciBsYW5kCisJCQkgKiBjYW4gd2FpdCBv biBpdC4uLgorCQkJICovCisJCQlpOTE1X2luc3RhbGxfc3luY19mZW5jZV9mZChwYXJhbXMtPnJl cXVlc3QsCisJCQkJCQkgICBzeW5jX2ZlbmNlLCBmZF9mZW5jZV9jb21wbGV0ZSk7CisKKwkJCS8q IFJldHVybiB0aGUgZmVuY2UgdGhyb3VnaCB0aGUgcnN2ZDIgZmllbGQgKi8KKwkJCWFyZ3MtPnJz dmQyID0gKF9fdTY0KSBmZF9mZW5jZV9jb21wbGV0ZTsKKwkJfQorCX0KKwogZXJyX2JhdGNoX3Vu cGluOgogCS8qCiAJICogRklYTUU6IFdlIGNydWNpYWxseSByZWx5IHVwb24gdGhlIGFjdGl2ZSB0 cmFja2luZyBmb3IgdGhlIChwcGd0dCkKQEAgLTE2MDIsNiArMTY5MSw3IEBAIHByZV9tdXRleF9l cnI6CiAJLyogaW50ZWxfZ3B1X2J1c3kgc2hvdWxkIGFsc28gZ2V0IGEgcmVmLCBzbyBpdCB3aWxs IGZyZWUgd2hlbiB0aGUgZGV2aWNlCiAJICogaXMgcmVhbGx5IGlkbGUuICovCiAJaW50ZWxfcnVu dGltZV9wbV9wdXQoZGV2X3ByaXYpOworCiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTcwNywxMSAr MTc5Nyw2IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChhcmdzLT5yc3ZkMiAhPSAw KSB7Ci0JCURSTV9ERUJVRygiZGlydHkgcnZzZDIgZmllbGRcbiIpOwotCQlyZXR1cm4gLUVJTlZB TDsKLQl9Ci0KIAlleGVjMl9saXN0ID0ga21hbGxvYyhzaXplb2YoKmV4ZWMyX2xpc3QpKmFyZ3Mt PmJ1ZmZlcl9jb3VudCwKIAkJCSAgICAgR0ZQX1RFTVBPUkFSWSB8IF9fR0ZQX05PV0FSTiB8IF9f R0ZQX05PUkVUUlkpOwogCWlmIChleGVjMl9saXN0ID09IE5VTEwpCmRpZmYgLS1naXQgYS9pbmNs dWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5k ZXggNjdjZWJlNi4uODZmNzkyMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2Ry bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtMjUwLDcgKzI1MCw3IEBA IHR5cGVkZWYgc3RydWN0IF9kcm1faTkxNV9zYXJlYSB7CiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1 X0hXU19BRERSCQlEUk1fSU9XKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9IV1NfQUREUiwg c3RydWN0IGRybV9pOTE1X2dlbV9pbml0KQogI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fSU5J VAkJRFJNX0lPVyhEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0lOSVQsIHN0cnVjdCBk cm1faTkxNV9nZW1faW5pdCkKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZGRVIJ RFJNX0lPVyhEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0VYRUNCVUZGRVIsIHN0cnVj dCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcikKLSNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VY RUNCVUZGRVIyCURSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9FWEVDQlVG RkVSMiwgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMikKKyNkZWZpbmUgRFJNX0lPQ1RM X0k5MTVfR0VNX0VYRUNCVUZGRVIyCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkx NV9HRU1fRVhFQ0JVRkZFUjIsIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIpCiAjZGVm aW5lIERSTV9JT0NUTF9JOTE1X0dFTV9QSU4JCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBE Uk1fSTkxNV9HRU1fUElOLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3BpbikKICNkZWZpbmUgRFJNX0lP Q1RMX0k5MTVfR0VNX1VOUElOCURSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dF TV9VTlBJTiwgc3RydWN0IGRybV9pOTE1X2dlbV91bnBpbikKICNkZWZpbmUgRFJNX0lPQ1RMX0k5 MTVfR0VNX0JVU1kJCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fQlVT WSwgc3RydWN0IGRybV9pOTE1X2dlbV9idXN5KQpAQCAtNjk1LDcgKzY5NSw3IEBAIHN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY19vYmplY3QyIHsKIAlfX3U2NCBmbGFnczsKIAogCV9fdTY0IHJzdmQx OwotCV9fdTY0IHJzdmQyOworCV9fdTY0IHJzdmQyOwkvKiBVc2VkIGZvciBmZW5jZSBmZCAqLwog fTsKIAogc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiB7CkBAIC03NzYsNyArNzc2LDE3 IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgewogICovCiAjZGVmaW5lIEk5MTVf RVhFQ19SRVNPVVJDRV9TVFJFQU1FUiAgICAgKDE8PDE1KQogCi0jZGVmaW5lIF9fSTkxNV9FWEVD X1VOS05PV05fRkxBR1MgLShJOTE1X0VYRUNfUkVTT1VSQ0VfU1RSRUFNRVI8PDEpCisvKiogQ2Fs bGVyIHN1cHBsaWVzIGEgc3luYyBmZW5jZSBmZCBpbiB0aGUgcnN2ZDIgZmllbGQuCisgKiBXYWl0 IGZvciBpdCB0byBiZSBzaWduYWxsZWQgYmVmb3JlIHN0YXJ0aW5nIHRoZSB3b3JrCisgKi8KKyNk ZWZpbmUgSTkxNV9FWEVDX1dBSVRfRkVOQ0UJCSgxPDwxNikKKworLyoqIENhbGxlciB3YW50cyBh IHN5bmMgZmVuY2UgZmQgZm9yIHRoaXMgZXhlY2J1ZmZlci4KKyAqICBJdCB3aWxsIGJlIHJldHVy bmVkIGluIHJzdmQyCisgKi8KKyNkZWZpbmUgSTkxNV9FWEVDX0NSRUFURV9GRU5DRQkJKDE8PDE3 KQorCisjZGVmaW5lIF9fSTkxNV9FWEVDX1VOS05PV05fRkxBR1MgLShJOTE1X0VYRUNfQ1JFQVRF X0ZFTkNFPDwxKQogCiAjZGVmaW5lIEk5MTVfRVhFQ19DT05URVhUX0lEX01BU0sJKDB4ZmZmZmZm ZmYpCiAjZGVmaW5lIGk5MTVfZXhlY2J1ZmZlcjJfc2V0X2NvbnRleHRfaWQoZWIyLCBjb250ZXh0 KSBcCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK