From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [RFC 7/9] drm/i915: Interrupt driven fences Date: Fri, 17 Jul 2015 15:31:21 +0100 Message-ID: <1437143483-6234-8-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 10FE56E4D7 for ; Fri, 17 Jul 2015 07:31:42 -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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClRoZSBpbnRl bmRlZCB1c2FnZSBtb2RlbCBmb3Igc3RydWN0IGZlbmNlIGlzIHRoYXQgdGhlIHNpZ25hbGxlZCBz dGF0dXMgc2hvdWxkIGJlCnNldCBvbiBkZW1hbmQgcmF0aGVyIHRoYW4gcG9sbGVkLiBUaGF0IGlz LCB0aGVyZSBzaG91bGQgbm90IGJlIGEgbmVlZCBmb3IgYQonc2lnbmFsZWQnIGZ1bmN0aW9uIHRv IGJlIGNhbGxlZCBldmVyeXRpbWUgdGhlIHN0YXR1cyBpcyBxdWVyaWVkLiBJbnN0ZWFkLAonc29t ZXRoaW5nJyBzaG91bGQgYmUgZG9uZSB0byBlbmFibGUgYSBzaWduYWwgY2FsbGJhY2sgZnJvbSB0 aGUgaGFyZHdhcmUgd2hpY2gKd2lsbCB1cGRhdGUgdGhlIHN0YXRlIGRpcmVjdGx5LiBJbiB0aGUg Y2FzZSBvZiByZXF1ZXN0cywgdGhpcyBpcyB0aGUgc2Vxbm8KdXBkYXRlIGludGVycnVwdC4gVGhl IGlkZWEgaXMgdGhhdCB0aGlzIGNhbGxiYWNrIHdpbGwgb25seSBiZSBlbmFibGVkIG9uIGRlbWFu ZAp3aGVuIHNvbWV0aGluZyBhY3R1YWxseSB0cmllcyB0byB3YWl0IG9uIHRoZSBmZW5jZS4KClRo aXMgY2hhbmdlIHJlbW92ZXMgdGhlIHBvbGxpbmcgdGVzdCBhbmQgcmVwbGFjZXMgaXQgd2l0aCB0 aGUgY2FsbGJhY2sgc2NoZW1lLgpFYWNoIGZlbmNlIGlzIGFkZGVkIHRvIGEgJ3BsZWFzZSBwb2tl IG1lJyBsaXN0IGF0IHRoZSBzdGFydCBvZgppOTE1X2FkZF9yZXF1ZXN0KCkuIFRoZSBpbnRlcnJ1 cHQgaGFuZGxlciB0aGVuIHNjYW5zIHRocm91Z2ggdGhlICdwb2tlIG1lJyBsaXN0CndoZW4gYSBu ZXcgc2Vxbm8gcG9wcyBvdXQgYW5kIHNpZ25hbHMgYW55IG1hdGNoaW5nIGZlbmNlL3JlcXVlc3Qu IFRoZSBmZW5jZSBpcwp0aGVuIHJlbW92ZWQgZnJvbSB0aGUgbGlzdCBzbyB0aGUgZW50aXJlIHJl cXVlc3Qgc3RhY2sgZG9lcyBub3QgbmVlZCB0byBiZQpzY2FubmVkIGV2ZXJ5IHRpbWUuIE5vdGUg dGhhdCB0aGUgZmVuY2UgaXMgYWRkZWQgdG8gdGhlIGxpc3QgYmVmb3JlIHRoZSBjb21tYW5kcwp0 byBnZW5lcmF0ZSB0aGUgc2Vxbm8gaW50ZXJydXB0IGFyZSBhZGRlZCB0byB0aGUgcmluZy4gVGh1 cyB0aGUgc2VxdWVuY2UgaXMKZ3VhcmFudGVlZCB0byBiZSByYWNlIGZyZWUgaWYgdGhlIGludGVy cnVwdCBpcyBhbHJlYWR5IGVuYWJsZWQuCgpOb3RlIHRoYXQgdGhlIGludGVycnVwdCBpcyBvbmx5 IGVuYWJsZWQgb24gZGVtYW5kIChpLmUuIHdoZW4gX193YWl0X3JlcXVlc3QoKSBpcwpjYWxsZWQp LiBUaHVzIHRoZXJlIGlzIHN0aWxsIGEgcG90ZW50aWFsIHJhY2Ugd2hlbiBlbmFibGluZyB0aGUg aW50ZXJydXB0IGFzIHRoZQpyZXF1ZXN0IG1heSBhbHJlYWR5IGhhdmUgY29tcGxldGVkLiBIb3dl dmVyLCB0aGlzIGlzIHNpbXBseSBzb2x2ZWQgYnkgY2FsbGluZwp0aGUgaW50ZXJydXB0IHByb2Nl c3NpbmcgY29kZSBpbW1lZGlhdGVseSBhZnRlciBlbmFibGluZyB0aGUgaW50ZXJydXB0IGFuZAp0 aGVyZWJ5IGNoZWNraW5nIGZvciBhbHJlYWR5IGNvbXBsZXRlZCByZXF1ZXN0cy4KCkxhc3RseSwg dGhlIHJpbmcgY2xlYW4gdXAgY29kZSBoYXMgdGhlIHBvc3NpYmlsaXR5IHRvIGNhbmNlbCBvdXRz dGFuZGluZwpyZXF1ZXN0cyAoZS5nLiBiZWNhdXNlIFREUiBoYXMgcmVzZXQgdGhlIHJpbmcpLiBU aGVzZSByZXF1ZXN0cyB3aWxsIG5ldmVyIGdldApzaWduYWxsZWQgYW5kIHNvIG11c3QgYmUgcmVt b3ZlZCBmcm9tIHRoZSBzaWduYWwgbGlzdCBtYW51YWxseS4gVGhpcyBpcyBkb25lIGJ5CnNldHRp bmcgYSAnY2FuY2VsbGVkJyBmbGFnIGFuZCB0aGVuIGNhbGxpbmcgdGhlIHJlZ3VsYXIgbm90aWZ5 L3JldGlyZSBjb2RlIHBhdGgKcmF0aGVyIHRoYW4gYXR0ZW1wdGluZyB0byBkdXBsaWNhdGUgdGhl IGxpc3QgbWFuaXB1bGF0YXRpb24gYW5kIGNsZWFuIHVwIGNvZGUgaW4KbXVsdGlwbGUgcGxhY2Vz LiBUaGlzIGFsc28gYXZvaWQgYW55IHJhY2UgY29uZGl0aW9uIHdoZXJlIHRoZSBjYW5jZWxsYXRp b24KcmVxdWVzdCBtaWdodCBvY2N1ciBhZnRlci9kdXJpbmcgdGhlIGNvbXBsZXRpb24gaW50ZXJy dXB0IGFjdHVhbGx5IGFycml2aW5nLgoKdjI6IFVwZGF0ZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2Yg dGhlIHJlcXVlc3QgdW5yZWZlcmVuY2Ugbm8gbG9uZ2VyIHJlcXVpcmluZyB0aGUKbXV0ZXggbG9j ay4KCkZvcjogVklaLTUxOTAKU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhh cnJpc29uQEludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAg ICAgICAgfCAgIDggKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8 IDEzMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9pcnEuYyAgICAgICAgIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwg ICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgMTM2IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggNjFjM2RiMi4uZDdmMWFhNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC0yMTYzLDcgKzIxNjMsMTEgQEAgdm9pZCBpOTE1X2dlbV90cmFj a19mYihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2xkLAogc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0IHsKIAkvKiogVW5kZXJseWluZyBvYmplY3QgZm9yIGltcGxlbWVudGluZyB0aGUg c2lnbmFsL3dhaXQgc3R1ZmYuICovCiAJc3RydWN0IGZlbmNlIGZlbmNlOworCXN0cnVjdCBsaXN0 X2hlYWQgc2lnbmFsX2xpc3Q7CisJc3RydWN0IGxpc3RfaGVhZCB1bnNpZ25hbF9saXN0OwogCXN0 cnVjdCBsaXN0X2hlYWQgZGVsYXlfZnJlZV9saXN0OworCWJvb2wgY2FuY2VsbGVkOworCWJvb2wg aXJxX2VuYWJsZWQ7CiAKIAkvKiogT24gV2hpY2ggcmluZyB0aGlzIHJlcXVlc3Qgd2FzIGdlbmVy YXRlZCAqLwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1OwpAQCAtMjI0MSw2ICsyMjQ1 LDEwIEBAIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsCiAJCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipyZXFfb3V0KTsKIHZv aWQgaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpOwogCit2b2lkIGk5MTVfZ2VtX3JlcXVlc3Rfc3VibWl0KHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxKTsKK3ZvaWQgaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfaW50ZXJydXB0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKK3ZvaWQgaTkxNV9nZW1fcmVxdWVzdF9u b3RpZnkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7CisKIGludCBpOTE1X2NyZWF0ZV9m ZW5jZV90aW1lbGluZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJICAgICAgIHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjdHgsCiAJCQkgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu Zyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA0ODI4MzVhLi43YzU4OWE5IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTEyMjIsNiArMTIyMiwxMSBAQCBpbnQgX19pOTE1X3dhaXRf cmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAlpZiAobGlzdF9lbXB0 eSgmcmVxLT5saXN0KSkKIAkJcmV0dXJuIDA7CiAKKwkvKgorCSAqIEVuYWJsZSBpbnRlcnJ1cHQg Y29tcGxldGlvbiBvZiB0aGUgcmVxdWVzdC4KKwkgKi8KKwlpOTE1X2dlbV9yZXF1ZXN0X2VuYWJs ZV9pbnRlcnJ1cHQocmVxKTsKKwogCWlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEp KQogCQlyZXR1cm4gMDsKIApAQCAtMTM4Miw2ICsxMzg3LDEwIEBAIHN0YXRpYyB2b2lkIGk5MTVf Z2VtX3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkK IAlsaXN0X2RlbF9pbml0KCZyZXF1ZXN0LT5saXN0KTsKIAlpOTE1X2dlbV9yZXF1ZXN0X3JlbW92 ZV9mcm9tX2NsaWVudChyZXF1ZXN0KTsKIAorCS8qIEluIGNhc2UgdGhlIHJlcXVlc3QgaXMgc3Rp bGwgaW4gdGhlIHNpZ25hbCBwZW5kaW5nIGxpc3QgKi8KKwlpZiAoIWxpc3RfZW1wdHkoJnJlcXVl c3QtPnNpZ25hbF9saXN0KSkKKwkJcmVxdWVzdC0+Y2FuY2VsbGVkID0gdHJ1ZTsKKwogCWk5MTVf Z2VtX3JlcXVlc3RfdW5yZWZlcmVuY2UocmVxdWVzdCk7CiB9CiAKQEAgLTI1MzQsNiArMjU0Mywx MiBAQCB2b2lkIF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3QsCiAJICovCiAJcmVxdWVzdC0+cG9zdGZpeCA9IGludGVsX3JpbmdfZ2V0X3RhaWwo cmluZ2J1Zik7CiAKKwkvKgorCSAqIEFkZCB0aGUgZmVuY2UgdG8gdGhlIHBlbmRpbmcgbGlzdCBi ZWZvcmUgZW1pdHRpbmcgdGhlIGNvbW1hbmRzIHRvCisJICogZ2VuZXJhdGUgYSBzZXFubyBub3Rp ZmljYXRpb24gaW50ZXJydXB0LgorCSAqLworCWk5MTVfZ2VtX3JlcXVlc3Rfc3VibWl0KHJlcXVl c3QpOworCiAJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykKIAkJcmV0ID0gcmluZy0+ZW1pdF9y ZXF1ZXN0KHJlcXVlc3QpOwogCWVsc2UgewpAQCAtMjY1Myw2ICsyNjY4LDkgQEAgc3RhdGljIHZv aWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQogCQlpOTE1X2dlbV9jb250ZXh0X3VucmVmZXJlbmNlKGN0eCk7CiAJfQogCisJaWYgKHJlcS0+ aXJxX2VuYWJsZWQpCisJCXJlcS0+cmluZy0+aXJxX3B1dChyZXEtPnJpbmcpOworCiAJa21lbV9j YWNoZV9mcmVlKHJlcS0+aTkxNS0+cmVxdWVzdHMsIHJlcSk7CiB9CiAKQEAgLTI2NjgsMjQgKzI2 ODYsMTA1IEBAIHN0YXRpYyBjb25zdCBjaGFyICppOTE1X2dlbV9yZXF1ZXN0X2dldF90aW1lbGlu ZV9uYW1lKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlKQogCXJldHVybiByZXEtPnJpbmctPm5hbWU7 CiB9CiAKLXN0YXRpYyBib29sIGk5MTVfZ2VtX3JlcXVlc3RfZW5hYmxlX3NpZ25hbGluZyhzdHJ1 Y3QgZmVuY2UgKnJlcV9mZW5jZSkKKy8qCisgKiBUaGUgcmVxdWVzdCBoYXMgYmVlbiBzdWJtaXR0 ZWQgdG8gdGhlIGhhcmR3YXJlIHNvIGFkZCB0aGUgZmVuY2UgdG8gdGhlCisgKiBsaXN0IG9mIHNp Z25hbGFibGUgZmVuY2VzLgorICoKKyAqIE5COiBUaGlzIGRvZXMgbm90IGVuYWJsZSBpbnRlcnJ1 cHRzIHlldC4gVGhhdCBvbmx5IG9jY3VycyBvbiBkZW1hbmQgd2hlbgorICogdGhlIHJlcXVlc3Qg aXMgYWN0dWFsbHkgd2FpdGVkIG9uLiBIb3dldmVyLCBhZGRpbmcgaXQgdG8gdGhlIGxpc3QgZWFy bHkKKyAqIGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBubyByYWNlIGNvbmRpdGlvbiB3aGVyZSB0aGUg aW50ZXJydXB0IGNvdWxkIHBvcAorICogb3V0IHByZW1hdHVyZWx5IGFuZCB0aHVzIGJlIGNvbXBs ZXRlbHkgbG9zdC4gVGhlIHJhY2UgaXMgbWVyZWx5IHRoYXQgdGhlCisgKiBpbnRlcnJ1cHQgbXVz dCBiZSBtYW51YWxseSBjaGVja2VkIGZvciBhZnRlciBiZWluZyBlbmFibGVkLgorICovCit2b2lk IGk5MTVfZ2VtX3JlcXVlc3Rfc3VibWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQogewotCS8qIEludGVycnVwdCBkcml2ZW4gZmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQgeWV0 LiovCi0JV0FSTih0cnVlLCAiVGhpcyBzaG91bGQgbm90IGJlIGNhbGxlZCEiKTsKLQlyZXR1cm4g dHJ1ZTsKKwlmZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nKCZyZXEtPmZlbmNlKTsKIH0KIAotc3Rh dGljIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9pc19jb21wbGV0ZWQoc3RydWN0IGZlbmNlICpyZXFf ZmVuY2UpCisvKgorICogVGhlIHJlcXVlc3QgaXMgYmVpbmcgYWN0aXZlbHkgd2FpdGVkIG9uLCBz byBlbmFibGUgaW50ZXJydXB0IGJhc2VkCisgKiBjb21wbGV0aW9uIHNpZ25hbGxpbmcuCisgKi8K K3ZvaWQgaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfaW50ZXJydXB0KHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxKQoreworCWlmIChyZXEtPmlycV9lbmFibGVkKQorCQlyZXR1cm47CisK KwlXQVJOX09OKCFyZXEtPnJpbmctPmlycV9nZXQocmVxLT5yaW5nKSk7CisJcmVxLT5pcnFfZW5h YmxlZCA9IHRydWU7CisKKwkvKgorCSAqIEJlY2F1c2UgdGhlIGludGVycnVwdCBpcyBvbmx5IGVu YWJsZWQgb24gZGVtYW5kLCB0aGVyZSBpcyBhIHJhY2UKKwkgKiB3aGVyZSB0aGUgaW50ZXJydXB0 IGNhbiBmaXJlIGJlZm9yZSBhbnlvbmUgaXMgbG9va2luZyBmb3IgaXQuIFNvCisJICogZG8gYW4g ZXhwbGljaXQgY2hlY2sgZm9yIG1pc3NlZCBpbnRlcnJ1cHRzLgorCSAqLworCWk5MTVfZ2VtX3Jl cXVlc3Rfbm90aWZ5KHJlcS0+cmluZyk7Cit9CisKK3N0YXRpYyBib29sIGk5MTVfZ2VtX3JlcXVl c3RfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsCiAJCQkJ CQkgdHlwZW9mKCpyZXEpLCBmZW5jZSk7CisKKwlpOTE1X2dlbV9yZXF1ZXN0X3JlZmVyZW5jZShy ZXEpOworCVdBUk5fT04oIWxpc3RfZW1wdHkoJnJlcS0+c2lnbmFsX2xpc3QpKTsKKwlsaXN0X2Fk ZF90YWlsKCZyZXEtPnNpZ25hbF9saXN0LCAmcmVxLT5yaW5nLT5mZW5jZV9zaWduYWxfbGlzdCk7 CisKKwkvKgorCSAqIE5vdGUgdGhhdCBzaWduYWxsaW5nIGlzIGFsd2F5cyBlbmFibGVkIGZvciBl dmVyeSByZXF1ZXN0IGJlZm9yZQorCSAqIHRoYXQgcmVxdWVzdCBpcyBzdWJtaXR0ZWQgdG8gdGhl IGhhcmR3YXJlLiBUaGVyZWZvcmUgdGhlcmUgaXMKKwkgKiBubyByYWNlIGNvbmRpdGlvbiB3aGVy ZWJ5IHRoZSBzaWduYWwgY291bGQgcG9wIG91dCBiZWZvcmUgdGhlCisJICogcmVxdWVzdCBoYXMg YmVlbiBhZGRlZCB0byB0aGUgbGlzdC4gSGVuY2Ugbm8gbmVlZCB0byBjaGVjaworCSAqIGZvciBj b21wbGV0aW9uLCB1bmRvIHRoZSBsaXN0IGFkZCBhbmQgcmV0dXJuIGZhbHNlLgorCSAqCisJICog TkI6IEludGVycnVwdHMgYXJlIG9ubHkgZW5hYmxlZCBvbiBkZW1hbmQuIFRodXMgdGhlcmUgaXMg c3RpbGwgYQorCSAqIHJhY2Ugd2hlcmUgdGhlIHJlcXVlc3QgY291bGQgY29tcGxldGUgYmVmb3Jl IHRoZSBpbnRlcnJ1cHQgaGFzCisJICogYmVlbiBlbmFibGVkLiBUaHVzIGNhcmUgbXVzdCBiZSB0 YWtlbiBhdCB0aGF0IHBvaW50LgorCSAqLworCisJcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgaTkx NV9nZW1fcmVxdWVzdF9ub3RpZnkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKK3sKKwlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgKnJlcV9uZXh0OworCXVuc2lnbmVkIGxv bmcgZmxhZ3M7CiAJdTMyIHNlcW5vOworCUxJU1RfSEVBRChmcmVlX2xpc3QpOwogCi0JQlVHX09O KHJlcSA9PSBOVUxMKTsKKwlpZiAobGlzdF9lbXB0eSgmcmluZy0+ZmVuY2Vfc2lnbmFsX2xpc3Qp KQorCQlyZXR1cm47CisKKwlzZXFubyA9IHJpbmctPmdldF9zZXFubyhyaW5nLCBmYWxzZSk7CisK KwlzcGluX2xvY2tfaXJxc2F2ZSgmcmluZy0+ZmVuY2VfbG9jaywgZmxhZ3MpOworCWxpc3RfZm9y X2VhY2hfZW50cnlfc2FmZShyZXEsIHJlcV9uZXh0LCAmcmluZy0+ZmVuY2Vfc2lnbmFsX2xpc3Qs IHNpZ25hbF9saXN0KSB7CisJCWlmICghcmVxLT5jYW5jZWxsZWQpIHsKKwkJCWlmICghaTkxNV9z ZXFub19wYXNzZWQoc2Vxbm8sIHJlcS0+c2Vxbm8pKQorCQkJCWNvbnRpbnVlOwogCi0Jc2Vxbm8g PSByZXEtPnJpbmctPmdldF9zZXFubyhyZXEtPnJpbmcsIGZhbHNlLypsYXp5X2NvaGVyZW5jeSov KTsKKwkJCWZlbmNlX3NpZ25hbF9sb2NrZWQoJnJlcS0+ZmVuY2UpOworCQl9CisKKwkJbGlzdF9k ZWxfaW5pdCgmcmVxLT5zaWduYWxfbGlzdCk7CisJCWlmIChyZXEtPmlycV9lbmFibGVkKSB7CisJ CQlyZXEtPnJpbmctPmlycV9wdXQocmVxLT5yaW5nKTsKKwkJCXJlcS0+aXJxX2VuYWJsZWQgPSBm YWxzZTsKKwkJfQogCi0JcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKHNlcW5vLCByZXEtPnNlcW5v KTsKKwkJLyogQ2FuJ3QgdW5yZWZlcmVuY2UgaGVyZSBiZWNhdXNlIHRoYXQgbWlnaHQgZ3JhYiBm ZW5jZV9sb2NrICovCisJCWxpc3RfYWRkX3RhaWwoJnJlcS0+dW5zaWduYWxfbGlzdCwgJmZyZWVf bGlzdCk7CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJpbmctPmZlbmNlX2xvY2ssIGZs YWdzKTsKKworCS8qIEl0IHNob3VsZCBub3cgYmUgc2FmZSB0byBhY3R1YWxseSBmcmVlIHRoZSBy ZXF1ZXN0cyAqLworCXdoaWxlICghbGlzdF9lbXB0eSgmZnJlZV9saXN0KSkgeworCQlyZXEgPSBs aXN0X2ZpcnN0X2VudHJ5KCZmcmVlX2xpc3QsCisJCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCwgdW5zaWduYWxfbGlzdCk7CisJCWxpc3RfZGVsKCZyZXEtPnVuc2lnbmFsX2xp c3QpOworCisJCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2UocmVxKTsKKwl9CiB9CiAKIHN0 YXRpYyB2b2lkIGk5MTVfZmVuY2VfdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZmVu Y2UsIGNoYXIgKnN0ciwgaW50IHNpemUpCkBAIC0yNzExLDcgKzI4MTAsNiBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGZlbmNlX29wcyBpOTE1X2dlbV9yZXF1ZXN0X2ZvcHMgPSB7CiAJLmdldF9kcml2 ZXJfbmFtZQk9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2RyaXZlcl9uYW1lLAogCS5nZXRfdGltZWxp bmVfbmFtZQk9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3RpbWVsaW5lX25hbWUsCiAJLmVuYWJsZV9z aWduYWxpbmcJPSBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJsZV9zaWduYWxpbmcsCi0JLnNpZ25hbGVk CQk9IGk5MTVfZ2VtX3JlcXVlc3RfaXNfY29tcGxldGVkLAogCS53YWl0CQkJPSBmZW5jZV9kZWZh dWx0X3dhaXQsCiAJLnJlbGVhc2UJCT0gaTkxNV9nZW1fcmVxdWVzdF9yZWxlYXNlLAogCS5mZW5j ZV92YWx1ZV9zdHIJPSBpOTE1X2ZlbmNlX3ZhbHVlX3N0ciwKQEAgLTI3OTEsNiArMjg4OSw3IEBA IGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcs CiAJCWdvdG8gZXJyOwogCX0KIAorCUlOSVRfTElTVF9IRUFEKCZyZXEtPnNpZ25hbF9saXN0KTsK IAlmZW5jZV9pbml0KCZyZXEtPmZlbmNlLCAmaTkxNV9nZW1fcmVxdWVzdF9mb3BzLCAmcmluZy0+ ZmVuY2VfbG9jaywKIAkJICAgY3R4LT5lbmdpbmVbcmluZy0+aWRdLmZlbmNlX3RpbWVsaW5lLmZl bmNlX2NvbnRleHQsCiAJCSAgIGk5MTVfZmVuY2VfdGltZWxpbmVfZ2V0X25leHRfc2Vxbm8oJmN0 eC0+ZW5naW5lW3JpbmctPmlkXS5mZW5jZV90aW1lbGluZSkpOwpAQCAtMjkxMyw2ICszMDEyLDEz IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X3JpbmdfY2xlYW51cChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAkJaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUocmVxdWVz dCk7CiAJfQorCisJLyoKKwkgKiBNYWtlIHN1cmUgYW55IHJlcXVlc3RzIHRoYXQgd2VyZSBvbiB0 aGUgc2lnbmFsIHBlbmRpbmcgbGlzdCBnZXQKKwkgKiBjbGVhbmVkIHVwLgorCSAqLworCWk5MTVf Z2VtX3JlcXVlc3Rfbm90aWZ5KHJpbmcpOworCWk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0c19yaW5n KHJpbmcpOwogfQogCiB2b2lkIGk5MTVfZ2VtX3Jlc3RvcmVfZmVuY2VzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCkBAIC0yOTY4LDYgKzMwNzQsMTMgQEAgaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3Rz X3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIHsKIAlXQVJOX09OKGk5MTVfdmVy aWZ5X2xpc3RzKHJpbmctPmRldikpOwogCisJLyoKKwkgKiBJZiBuby1vbmUgaGFzIHdhaXRlZCBv biBhIHJlcXVlc3QgcmVjZW50bHkgdGhlbiBpbnRlcnJ1cHRzIHdpbGwKKwkgKiBub3QgaGF2ZSBi ZWVuIGVuYWJsZWQgYW5kIHRodXMgbm8gcmVxdWVzdHMgd2lsbCBldmVyIGJlIG1hcmtlZCBhcwor CSAqIGNvbXBsZXRlZC4gU28gZG8gYW4gaW50ZXJydXB0IGNoZWNrIG5vdy4KKwkgKi8KKwlpOTE1 X2dlbV9yZXF1ZXN0X25vdGlmeShyaW5nKTsKKwogCS8qIFJldGlyZSByZXF1ZXN0cyBmaXJzdCBh cyB3ZSB1c2UgaXQgYWJvdmUgZm9yIHRoZSBlYXJseSByZXR1cm4uCiAJICogSWYgd2UgcmV0aXJl IHJlcXVlc3RzIGxhc3QsIHdlIG1heSB1c2UgYSBsYXRlciBzZXFubyBhbmQgc28gY2xlYXIKIAkg KiB0aGUgcmVxdWVzdHMgbGlzdHMgd2l0aG91dCBjbGVhcmluZyB0aGUgYWN0aXZlIGxpc3QsIGxl YWRpbmcgdG8KQEAgLTUzNDUsNiArNTQ1OCw3IEBAIGluaXRfcmluZ19saXN0cyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nKQogewogCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5hY3RpdmVfbGlz dCk7CiAJSU5JVF9MSVNUX0hFQUQoJnJpbmctPnJlcXVlc3RfbGlzdCk7CisJSU5JVF9MSVNUX0hF QUQoJnJpbmctPmZlbmNlX3NpZ25hbF9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+ZGVs YXllZF9mcmVlX2xpc3QpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCBkODdmMTcz Li5lNDQ2NTA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTg1Myw2ICs4NTMsOCBAQCBz dGF0aWMgdm9pZCBub3RpZnlfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCiAJ dHJhY2VfaTkxNV9nZW1fcmVxdWVzdF9ub3RpZnkocmluZyk7CiAKKwlpOTE1X2dlbV9yZXF1ZXN0 X25vdGlmeShyaW5nKTsKKwogCXdha2VfdXBfYWxsKCZyaW5nLT5pcnFfcXVldWUpOwogfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDllZTgwZjUuLjE4ZGJkNWMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCkBAIC0xODA4LDYgKzE4MDgsNyBAQCBzdGF0aWMgaW50IGxvZ2ljYWxf cmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbgogCXJpbmctPmRldiA9IGRldjsKIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+YWN0aXZlX2xp c3QpOwogCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5yZXF1ZXN0X2xpc3QpOworCUlOSVRfTElTVF9I RUFEKCZyaW5nLT5mZW5jZV9zaWduYWxfbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJnJpbmctPmRl bGF5ZWRfZnJlZV9saXN0KTsKIAlzcGluX2xvY2tfaW5pdCgmcmluZy0+ZmVuY2VfbG9jayk7CiAJ c3Bpbl9sb2NrX2luaXQoJnJpbmctPmRlbGF5ZWRfZnJlZV9sb2NrKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCAxMTQ5NGEzLi44M2E1MjU0IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC0yMDQwLDYgKzIwNDAsNyBAQCBzdGF0 aWMgaW50IGludGVsX2luaXRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlJ TklUX0xJU1RfSEVBRCgmcmluZy0+YWN0aXZlX2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZyaW5n LT5yZXF1ZXN0X2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5leGVjbGlzdF9xdWV1ZSk7 CisJSU5JVF9MSVNUX0hFQUQoJnJpbmctPmZlbmNlX3NpZ25hbF9saXN0KTsKIAlJTklUX0xJU1Rf SEVBRCgmcmluZy0+ZGVsYXllZF9mcmVlX2xpc3QpOwogCXNwaW5fbG9ja19pbml0KCZyaW5nLT5m ZW5jZV9sb2NrKTsKIAlzcGluX2xvY2tfaW5pdCgmcmluZy0+ZGVsYXllZF9mcmVlX2xvY2spOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDY4MTczYTMuLjJlNjhi NzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTM1Miw2ICsz NTIsNyBAQCBzdHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7CiAJdTMyICgqZ2V0X2NtZF9sZW5ndGhf bWFzaykodTMyIGNtZF9oZWFkZXIpOwogCiAJc3BpbmxvY2tfdCBmZW5jZV9sb2NrOworCXN0cnVj dCBsaXN0X2hlYWQgZmVuY2Vfc2lnbmFsX2xpc3Q7CiB9OwogCiBib29sIGludGVsX3JpbmdfaW5p dGlhbGl6ZWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Ci0tIAoxLjkuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK