From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH 3/4] drm/i915: Interrupt driven fences Date: Fri, 26 Jun 2015 13:58:11 +0100 Message-ID: <1435323492-28630-4-git-send-email-John.C.Harrison@Intel.com> References: <1435323492-28630-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 8148B6EDC5 for ; Fri, 26 Jun 2015 05:58:18 -0700 (PDT) In-Reply-To: <1435323492-28630-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 cnVwdCBpcyBhbHJlYWR5IGVuYWJsZWQuCgpPbmUgY29tcGxpY2F0aW9uIGhlcmUgaXMgdGhhdCB0 aGUgJ3Bva2UgbWUnIHN5c3RlbSByZXF1aXJlcyBob2xkaW5nIGEgcmVmZXJlbmNlCmNvdW50IG9u IHRoZSByZXF1ZXN0IHRvIGd1YXJhbnRlZSB0aGF0IGl0IHdvbid0IGJlIGZyZWVkIHByZW1hdHVy ZWx5LgpVbmZvcnR1bmF0ZWx5LCBpdCBpcyB1bnNhZmUgdG8gZGVjcmVtZW50IHRoZSByZWZlcmVu Y2UgY291bnQgZnJvbSB0aGUgaW50ZXJydXB0CmhhbmRsZXIgYmVjYXVzZSBpZiB0aGF0IGlzIHRo ZSBsYXN0IHJlZmVyZW5jZSwgdGhlIGNsZWFuIHVwIGNvZGUgZ2V0cyBydW4gYW5kCnRoZSBjbGVh biB1cCBjb2RlIGlzIG5vdCBJUlEgZnJpZW5kbHkuIEhlbmNlLCB0aGUgcmVxdWVzdCBpcyBhZGRl ZCB0byBhICdwbGVhc2UKY2xlYW4gbWUnIGxpc3QgdGhhdCBnZXRzIHByb2Nlc3NlZCBhdCByZXRp cmUgdGltZS4gQW55IHJlcXVlc3QgaW4gdGhpcyBsaXN0CnNpbXBseSBoYXMgaXRzIGNvdW50IGRl Y3JlbWVudGVkIGFuZCBpcyB0aGVuIHJlbW92ZWQgZnJvbSB0aGF0IGxpc3QuCgpOb3RlIHRoYXQg dGhlIGludGVycnVwdCBpcyBvbmx5IGVuYWJsZWQgb24gZGVtYW5kIChpLmUuIHdoZW4gX193YWl0 X3JlcXVlc3QoKSBpcwpjYWxsZWQpLiBUaHVzIHRoZXJlIGlzIHN0aWxsIGEgcG90ZW50aWFsIHJh Y2Ugd2hlbiBlbmFibGluZyB0aGUgaW50ZXJydXB0IGFzIHRoZQpyZXF1ZXN0IG1heSBhbHJlYWR5 IGhhdmUgY29tcGxldGVkLiBIb3dldmVyLCB0aGlzIGlzIHNpbXBseSBzb2x2ZWQgYnkgY2FsbGlu Zwp0aGUgaW50ZXJydXB0IHByb2Nlc3NpbmcgY29kZSBpbW1lZGlhdGVseSBhZnRlciBlbmFibGlu ZyB0aGUgaW50ZXJydXB0IGFuZAp0aGVyZWJ5IGNoZWNraW5nIGZvciBhbHJlYWR5IGNvbXBsZXRl ZCByZXF1ZXN0cy4KCkxhc3RseSwgdGhlIHJpbmcgY2xlYW4gdXAgY29kZSBoYXMgdGhlIHBvc3Np YmlsaXR5IHRvIGNhbmNlbCBvdXRzdGFuZGluZwpyZXF1ZXN0cyAoZS5nLiBiZWNhdXNlIFREUiBo YXMgcmVzZXQgdGhlIHJpbmcpLiBUaGVzZSByZXF1ZXN0cyB3aWxsIG5ldmVyIGdldApzaWduYWxs ZWQgYW5kIHNvIG11c3QgYmUgcmVtb3ZlZCBmcm9tIHRoZSBzaWduYWwgbGlzdCBtYW51YWxseS4g VGhpcyBpcyBkb25lIGJ5CnNldHRpbmcgYSAnY2FuY2VsbGVkJyBmbGFnIGFuZCB0aGVuIGNhbGxp bmcgdGhlIHJlZ3VsYXIgbm90aWZ5L3JldGlyZSBjb2RlIHBhdGgKcmF0aGVyIHRoYW4gYXR0ZW1w dGluZyB0byBkdXBsaWNhdGUgdGhlIGxpc3QgbWFuaXB1bGF0YXRpb24gYW5kIGNsZWFuIHVwIGNv ZGUgaW4KbXVsdGlwbGUgcGxhY2VzLiBUaGlzIGFsc28gYXZvaWQgYW55IHJhY2UgY29uZGl0aW9u IHdoZXJlIHRoZSBjYW5jZWxsYXRpb24KcmVxdWVzdCBtaWdodCBvY2N1ciBhZnRlci9kdXJpbmcg dGhlIGNvbXBsZXRpb24gaW50ZXJydXB0IGFjdHVhbGx5IGFycml2aW5nLgoKRm9yOiBWSVotNTE5 MApTaWduZWQtb2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAgOCArKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwgMTM2ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAg ICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwg ICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAgMiArCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAgIDIgKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAppbmRleCAyZTZjMTUxLi5jMWY2OWNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK QEAgLTIxNDYsNiArMjE0NiwxMCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgewogCSAq IGhvbGRpbmcgdGhlIGRyaXZlciBtdXRleCBsb2NrLgogCSAqLwogCXN0cnVjdCBmZW5jZSBmZW5j ZTsKKwlzdHJ1Y3QgbGlzdF9oZWFkIHNpZ25hbF9saXN0OworCXN0cnVjdCBsaXN0X2hlYWQgdW5z aWduYWxfbGlzdDsKKwlib29sIGNhbmNlbGxlZDsKKwlib29sIGlycV9lbmFibGVkOwogCiAJLyoq IE9uIFdoaWNoIHJpbmcgdGhpcyByZXF1ZXN0IHdhcyBnZW5lcmF0ZWQgKi8KIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNTsKQEAgLTIyMjMsNiArMjIyNywxMCBAQCBpbnQgaTkxNV9nZW1f cmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJICAgc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoqcmVxX291dCk7CiB2b2lkIGk5MTVfZ2VtX3JlcXVlc3Rf Y2FuY2VsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKIAordm9pZCBpOTE1X2dl bV9yZXF1ZXN0X3N1Ym1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cit2b2lk IGk5MTVfZ2VtX3JlcXVlc3RfZW5hYmxlX2ludGVycnVwdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSk7Cit2b2lkIGk5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcpOworCiBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9j b21wbGV0ZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CiAJcmV0dXJuIGZl bmNlX2lzX3NpZ25hbGVkKCZyZXEtPmZlbmNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4 IDBhZTc2YjQuLjhhZWMzMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMTIzMSw2ICsx MjMxLDExIEBAIGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxLAogCWlmIChsaXN0X2VtcHR5KCZyZXEtPmxpc3QpKQogCQlyZXR1cm4gMDsKIAor CS8qCisJICogRW5hYmxlIGludGVycnVwdCBjb21wbGV0aW9uIG9mIHRoZSByZXF1ZXN0LgorCSAq LworCWk5MTVfZ2VtX3JlcXVlc3RfZW5hYmxlX2ludGVycnVwdChyZXEpOworCiAJaWYgKGk5MTVf Z2VtX3JlcXVlc3RfY29tcGxldGVkKHJlcSkpCiAJCXJldHVybiAwOwogCkBAIC0xMzkxLDYgKzEz OTYsMTAgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogCWxpc3RfZGVsX2luaXQoJnJlcXVlc3QtPmxpc3Qp OwogCWk5MTVfZ2VtX3JlcXVlc3RfcmVtb3ZlX2Zyb21fY2xpZW50KHJlcXVlc3QpOwogCisJLyog SW4gY2FzZSB0aGUgcmVxdWVzdCBpcyBzdGlsbCBpbiB0aGUgc2lnbmFsIHBlbmRpbmcgbGlzdCAq LworCWlmICghbGlzdF9lbXB0eSgmcmVxdWVzdC0+c2lnbmFsX2xpc3QpKQorCQlyZXF1ZXN0LT5j YW5jZWxsZWQgPSB0cnVlOworCiAJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXF1ZXN0 KTsKIH0KIApAQCAtMjUyOSw2ICsyNTM4LDEyIEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkgKi8KIAlyZXF1ZXN0LT5wb3N0 Zml4ID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5nYnVmKTsKIAorCS8qCisJICogQWRkIHRoZSBm ZW5jZSB0byB0aGUgcGVuZGluZyBsaXN0IGJlZm9yZSBlbWl0dGluZyB0aGUgY29tbWFuZHMgdG8K KwkgKiBnZW5lcmF0ZSBhIHNlcW5vIG5vdGlmaWNhdGlvbiBpbnRlcnJ1cHQuCisJICovCisJaTkx NV9nZW1fcmVxdWVzdF9zdWJtaXQocmVxdWVzdCk7CisKIAlpZiAoaTkxNS5lbmFibGVfZXhlY2xp c3RzKQogCQlyZXQgPSByaW5nLT5lbWl0X3JlcXVlc3QocmVxdWVzdCk7CiAJZWxzZSB7CkBAIC0y NjMwLDYgKzI2NDUsOSBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0 IGZlbmNlICpyZXFfZmVuY2UpCiAJCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2UoY3R4KTsK IAl9CiAKKwlpZiAocmVxLT5pcnFfZW5hYmxlZCkKKwkJcmVxLT5yaW5nLT5pcnFfcHV0KHJlcS0+ cmluZyk7CisKIAlrbWVtX2NhY2hlX2ZyZWUocmVxLT5pOTE1LT5yZXF1ZXN0cywgcmVxKTsKIH0K IApAQCAtMjY0NSwzMSArMjY2MywxMDAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmk5MTVfZ2VtX3Jl cXVlc3RfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpyZXFfZmVuY2UpCiAJcmV0dXJu IHJlcS0+cmluZy0+bmFtZTsKIH0KIAotc3RhdGljIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9lbmFi bGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlKQorLyoKKyAqIFRoZSByZXF1ZXN0 IGhhcyBiZWVuIHN1Ym1pdHRlZCB0byB0aGUgaGFyZHdhcmUgc28gYWRkIHRoZSBmZW5jZSB0byB0 aGUKKyAqIGxpc3Qgb2Ygc2lnbmFsYWJsZSBmZW5jZXMuCisgKgorICogTkI6IFRoaXMgZG9lcyBu b3QgZW5hYmxlIGludGVycnVwdHMgeWV0LiBUaGF0IG9ubHkgb2NjdXJzIG9uIGRlbWFuZCB3aGVu CisgKiB0aGUgcmVxdWVzdCBpcyBhY3R1YWxseSB3YWl0ZWQgb24uIEhvd2V2ZXIsIGFkZGluZyBp dCB0byB0aGUgbGlzdCBlYXJseQorICogZW5zdXJlcyB0aGF0IHRoZXJlIGlzIG5vIHJhY2UgY29u ZGl0aW9uIHdoZXJlIHRoZSBpbnRlcnJ1cHQgY291bGQgcG9wCisgKiBvdXQgcHJlbWF0dXJlbHkg YW5kIHRodXMgYmUgY29tcGxldGVseSBsb3N0LiBUaGUgcmFjZSBpcyBtZXJlbHkgdGhhdCB0aGUK KyAqIGludGVycnVwdCBtdXN0IGJlIG1hbnVhbGx5IGNoZWNrZWQgZm9yIGFmdGVyIGJlaW5nIGVu YWJsZWQuCisgKi8KK3ZvaWQgaTkxNV9nZW1fcmVxdWVzdF9zdWJtaXQoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEpCiB7Ci0JLyogSW50ZXJydXB0IGRyaXZlbiBmZW5jZXMgYXJlIG5v dCBpbXBsZW1lbnRlZCB5ZXQuKi8KLQlXQVJOKHRydWUsICJUaGlzIHNob3VsZCBub3QgYmUgY2Fs bGVkISIpOwotCXJldHVybiB0cnVlOworCWZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoJnJlcS0+ ZmVuY2UpOworfQorCisvKgorICogVGhlIHJlcXVlc3QgaXMgYmVpbmcgYWN0aXZlbHkgd2FpdGVk IG9uLCBzbyBlbmFibGUgaW50ZXJydXB0IGJhc2VkCisgKiBjb21wbGV0aW9uIHNpZ25hbGxpbmcu CisgKi8KK3ZvaWQgaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfaW50ZXJydXB0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQoreworCWlmIChyZXEtPmlycV9lbmFibGVkKQorCQlyZXR1 cm47CisKKwlXQVJOX09OKCFyZXEtPnJpbmctPmlycV9nZXQocmVxLT5yaW5nKSk7CisJcmVxLT5p cnFfZW5hYmxlZCA9IHRydWU7CisKKwkvKgorCSAqIEJlY2F1c2UgdGhlIGludGVycnVwdCBpcyBv bmx5IGVuYWJsZWQgb24gZGVtYW5kLCB0aGVyZSBpcyBhIHJhY2UKKwkgKiB3aGVyZSB0aGUgaW50 ZXJydXB0IGNhbiBmaXJlIGJlZm9yZSBhbnlvbmUgaXMgbG9va2luZyBmb3IgaXQuIFNvCisJICog ZG8gYW4gZXhwbGljaXQgY2hlY2sgZm9yIG1pc3NlZCBpbnRlcnJ1cHRzLgorCSAqLworCWk5MTVf Z2VtX3JlcXVlc3Rfbm90aWZ5KHJlcS0+cmluZyk7CiB9CiAKLXN0YXRpYyBib29sIGk5MTVfZ2Vt X3JlcXVlc3RfaXNfY29tcGxldGVkKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlKQorc3RhdGljIGJv b2wgaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqcmVxX2Zl bmNlKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxID0gY29udGFpbmVyX29m KHJlcV9mZW5jZSwKIAkJCQkJCSB0eXBlb2YoKnJlcSksIGZlbmNlKTsKKworCWk5MTVfZ2VtX3Jl cXVlc3RfcmVmZXJlbmNlKHJlcSk7CisJV0FSTl9PTighbGlzdF9lbXB0eSgmcmVxLT5zaWduYWxf bGlzdCkpOworCWxpc3RfYWRkX3RhaWwoJnJlcS0+c2lnbmFsX2xpc3QsICZyZXEtPnJpbmctPmZl bmNlX3NpZ25hbF9saXN0KTsKKworCS8qCisJICogTm90ZSB0aGF0IHNpZ25hbGxpbmcgaXMgYWx3 YXlzIGVuYWJsZWQgZm9yIGV2ZXJ5IHJlcXVlc3QgYmVmb3JlCisJICogdGhhdCByZXF1ZXN0IGlz IHN1Ym1pdHRlZCB0byB0aGUgaGFyZHdhcmUuIFRoZXJlZm9yZSB0aGVyZSBpcworCSAqIG5vIHJh Y2UgY29uZGl0aW9uIHdoZXJlYnkgdGhlIHNpZ25hbCBjb3VsZCBwb3Agb3V0IGJlZm9yZSB0aGUK KwkgKiByZXF1ZXN0IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBsaXN0LiBIZW5jZSBubyBuZWVkIHRv IGNoZWNrCisJICogZm9yIGNvbXBsZXRpb24sIHVuZG8gdGhlIGxpc3QgYWRkIGFuZCByZXR1cm4g ZmFsc2UuCisJICoKKwkgKiBOQjogSW50ZXJydXB0cyBhcmUgb25seSBlbmFibGVkIG9uIGRlbWFu ZC4gVGh1cyB0aGVyZSBpcyBzdGlsbCBhCisJICogcmFjZSB3aGVyZSB0aGUgcmVxdWVzdCBjb3Vs ZCBjb21wbGV0ZSBiZWZvcmUgdGhlIGludGVycnVwdCBoYXMKKwkgKiBiZWVuIGVuYWJsZWQuIFRo dXMgY2FyZSBtdXN0IGJlIHRha2VuIGF0IHRoYXQgcG9pbnQuCisJICovCisKKwlyZXR1cm4gdHJ1 ZTsKK30KKwordm9pZCBpOTE1X2dlbV9yZXF1ZXN0X25vdGlmeShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCAqcmVxX25l eHQ7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1MzIgc2Vxbm87CiAKLQlCVUdfT04ocmVxID09 IE5VTEwpOworCWlmIChsaXN0X2VtcHR5KCZyaW5nLT5mZW5jZV9zaWduYWxfbGlzdCkpCisJCXJl dHVybjsKKworCXNlcW5vID0gcmluZy0+Z2V0X3NlcW5vKHJpbmcsIGZhbHNlKTsKKworCXNwaW5f bG9ja19pcnFzYXZlKCZyaW5nLT5mZW5jZV9sb2NrLCBmbGFncyk7CisJbGlzdF9mb3JfZWFjaF9l bnRyeV9zYWZlKHJlcSwgcmVxX25leHQsICZyaW5nLT5mZW5jZV9zaWduYWxfbGlzdCwgc2lnbmFs X2xpc3QpIHsKKwkJaWYgKCFyZXEtPmNhbmNlbGxlZCkgeworCQkJaWYgKCFpOTE1X3NlcW5vX3Bh c3NlZChzZXFubywgcmVxLT5zZXFubykpCisJCQkJY29udGludWU7CiAKLQlzZXFubyA9IHJlcS0+ cmluZy0+Z2V0X3NlcW5vKHJlcS0+cmluZywgZmFsc2UvKmxhenlfY29oZXJlbmN5Ki8pOworCQkJ ZmVuY2Vfc2lnbmFsX2xvY2tlZCgmcmVxLT5mZW5jZSk7CisJCX0KKworCQlsaXN0X2RlbF9pbml0 KCZyZXEtPnNpZ25hbF9saXN0KTsKKwkJaWYgKHJlcS0+aXJxX2VuYWJsZWQpIHsKKwkJCXJlcS0+ cmluZy0+aXJxX3B1dChyZXEtPnJpbmcpOworCQkJcmVxLT5pcnFfZW5hYmxlZCA9IGZhbHNlOwor CQl9CiAKLQlyZXR1cm4gaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHJlcS0+c2Vxbm8pOworCQls aXN0X2FkZF90YWlsKCZyZXEtPnVuc2lnbmFsX2xpc3QsICZyZXEtPnJpbmctPmZlbmNlX3Vuc2ln bmFsX2xpc3QpOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZyaW5nLT5mZW5jZV9sb2Nr LCBmbGFncyk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIGk5MTVfZ2VtX3Jl cXVlc3RfZm9wcyA9IHsKIAkuZ2V0X2RyaXZlcl9uYW1lCT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRf ZHJpdmVyX25hbWUsCiAJLmdldF90aW1lbGluZV9uYW1lCT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRf dGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25hbGluZwk9IGk5MTVfZ2VtX3JlcXVlc3RfZW5h YmxlX3NpZ25hbGluZywKLQkuc2lnbmFsZWQJCT0gaTkxNV9nZW1fcmVxdWVzdF9pc19jb21wbGV0 ZWQsCiAJLndhaXQJCQk9IGZlbmNlX2RlZmF1bHRfd2FpdCwKIAkucmVsZWFzZQkJPSBpOTE1X2dl bV9yZXF1ZXN0X2ZyZWUsCiB9OwpAQCAtMjcwOSw2ICsyNzk2LDcgQEAgaW50IGk5MTVfZ2VtX3Jl cXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAkJZ290byBlcnI7CiAJ fQogCisJSU5JVF9MSVNUX0hFQUQoJnJlcS0+c2lnbmFsX2xpc3QpOwogCWZlbmNlX2luaXQoJnJl cS0+ZmVuY2UsICZpOTE1X2dlbV9yZXF1ZXN0X2ZvcHMsICZyaW5nLT5mZW5jZV9sb2NrLCByaW5n LT5mZW5jZV9jb250ZXh0LCByZXEtPnNlcW5vKTsKIAogCS8qCkBAIC0yODI5LDYgKzI5MTcsMTMg QEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVzZXRfcmluZ19jbGVhbnVwKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAogCQlpOTE1X2dlbV9yZXF1ZXN0X3JldGlyZShyZXF1ZXN0 KTsKIAl9CisKKwkvKgorCSAqIE1ha2Ugc3VyZSBhbnkgcmVxdWVzdHMgdGhhdCB3ZXJlIG9uIHRo ZSBzaWduYWwgcGVuZGluZyBsaXN0IGdldAorCSAqIGNsZWFuZWQgdXAuCisJICovCisJaTkxNV9n ZW1fcmVxdWVzdF9ub3RpZnkocmluZyk7CisJaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3RzX3Jpbmco cmluZyk7CiB9CiAKIHZvaWQgaTkxNV9nZW1fcmVzdG9yZV9mZW5jZXMoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKQEAgLTI4ODQsNiArMjk3OSwxMyBAQCBpOTE1X2dlbV9yZXRpcmVfcmVxdWVzdHNf cmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogewogCVdBUk5fT04oaTkxNV92ZXJp ZnlfbGlzdHMocmluZy0+ZGV2KSk7CiAKKwkvKgorCSAqIElmIG5vLW9uZSBoYXMgd2FpdGVkIG9u IGEgcmVxdWVzdCByZWNlbnRseSB0aGVuIGludGVycnVwdHMgd2lsbAorCSAqIG5vdCBoYXZlIGJl ZW4gZW5hYmxlZCBhbmQgdGh1cyBubyByZXF1ZXN0cyB3aWxsIGV2ZXIgYmUgbWFya2VkIGFzCisJ ICogY29tcGxldGVkLiBTbyBkbyBhbiBpbnRlcnJ1cHQgY2hlY2sgbm93LgorCSAqLworCWk5MTVf Z2VtX3JlcXVlc3Rfbm90aWZ5KHJpbmcpOworCiAJLyogUmV0aXJlIHJlcXVlc3RzIGZpcnN0IGFz IHdlIHVzZSBpdCBhYm92ZSBmb3IgdGhlIGVhcmx5IHJldHVybi4KIAkgKiBJZiB3ZSByZXRpcmUg cmVxdWVzdHMgbGFzdCwgd2UgbWF5IHVzZSBhIGxhdGVyIHNlcW5vIGFuZCBzbyBjbGVhcgogCSAq IHRoZSByZXF1ZXN0cyBsaXN0cyB3aXRob3V0IGNsZWFyaW5nIHRoZSBhY3RpdmUgbGlzdCwgbGVh ZGluZyB0bwpAQCAtMjkyNSw2ICszMDI3LDIwIEBAIGk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0c19y aW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJCWk5MTVfZ2VtX3JlcXVlc3RfYXNz aWduKCZyaW5nLT50cmFjZV9pcnFfcmVxLCBOVUxMKTsKIAl9CiAKKwl3aGlsZSAoIWxpc3RfZW1w dHkoJnJpbmctPmZlbmNlX3Vuc2lnbmFsX2xpc3QpKSB7CisJCXN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxdWVzdDsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCQlzcGluX2xvY2tf aXJxc2F2ZSgmcmluZy0+ZmVuY2VfbG9jaywgZmxhZ3MpOworCQlyZXF1ZXN0ID0gbGlzdF9maXJz dF9lbnRyeSgmcmluZy0+ZmVuY2VfdW5zaWduYWxfbGlzdCwKKwkJCQkJICAgc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0LAorCQkJCQkgICB1bnNpZ25hbF9saXN0KTsKKwkJbGlzdF9kZWwoJnJl cXVlc3QtPnVuc2lnbmFsX2xpc3QpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZyaW5nLT5m ZW5jZV9sb2NrLCBmbGFncyk7CisKKwkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXF1 ZXN0KTsKKwl9CisKIAlXQVJOX09OKGk5MTVfdmVyaWZ5X2xpc3RzKHJpbmctPmRldikpOwogfQog CkBAIC01MjU2LDYgKzUzNzIsOCBAQCBpbml0X3JpbmdfbGlzdHMoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZykKIHsKIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+YWN0aXZlX2xpc3QpOwogCUlO SVRfTElTVF9IRUFEKCZyaW5nLT5yZXF1ZXN0X2xpc3QpOworCUlOSVRfTElTVF9IRUFEKCZyaW5n LT5mZW5jZV9zaWduYWxfbGlzdCk7CisJSU5JVF9MSVNUX0hFQUQoJnJpbmctPmZlbmNlX3Vuc2ln bmFsX2xpc3QpOwogfQogCiB2b2lkIGk5MTVfaW5pdF92bShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCBiYWIyY2EyLi4zMzkwOTQz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTg1Myw2ICs4NTMsOCBAQCBzdGF0aWMgdm9p ZCBub3RpZnlfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCiAJdHJhY2VfaTkx NV9nZW1fcmVxdWVzdF9ub3RpZnkocmluZyk7CiAKKwlpOTE1X2dlbV9yZXF1ZXN0X25vdGlmeShy aW5nKTsKKwogCXdha2VfdXBfYWxsKCZyaW5nLT5pcnFfcXVldWUpOwogfQogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCmluZGV4IDNkYzdlMzguLmI0ZTQ1YzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCkBAIC0xNjUxLDYgKzE2NTEsOCBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbgogCXJp bmctPmRldiA9IGRldjsKIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+YWN0aXZlX2xpc3QpOwogCUlO SVRfTElTVF9IRUFEKCZyaW5nLT5yZXF1ZXN0X2xpc3QpOworCUlOSVRfTElTVF9IRUFEKCZyaW5n LT5mZW5jZV9zaWduYWxfbGlzdCk7CisJSU5JVF9MSVNUX0hFQUQoJnJpbmctPmZlbmNlX3Vuc2ln bmFsX2xpc3QpOwogCXNwaW5fbG9ja19pbml0KCZyaW5nLT5mZW5jZV9sb2NrKTsKIAlpOTE1X2dl bV9iYXRjaF9wb29sX2luaXQoZGV2LCAmcmluZy0+YmF0Y2hfcG9vbCk7CiAJaW5pdF93YWl0cXVl dWVfaGVhZCgmcmluZy0+aXJxX3F1ZXVlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuYwppbmRleCBjYjYzZTJmLi40YjJiNjY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5jCkBAIC0yMDMwLDYgKzIwMzAsOCBAQCBzdGF0aWMgaW50IGludGVsX2lu aXRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlJTklUX0xJU1RfSEVBRCgm cmluZy0+YWN0aXZlX2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5yZXF1ZXN0X2xpc3Qp OwogCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5leGVjbGlzdF9xdWV1ZSk7CisJSU5JVF9MSVNUX0hF QUQoJnJpbmctPmZlbmNlX3NpZ25hbF9saXN0KTsKKwlJTklUX0xJU1RfSEVBRCgmcmluZy0+ZmVu Y2VfdW5zaWduYWxfbGlzdCk7CiAJc3Bpbl9sb2NrX2luaXQoJnJpbmctPmZlbmNlX2xvY2spOwog CWk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5pdChkZXYsICZyaW5nLT5iYXRjaF9wb29sKTsKIAlyaW5n YnVmLT5zaXplID0gMzIgKiBQQUdFX1NJWkU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmgKaW5kZXggOGFkMjViMC4uMzQ5MWI0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaApAQCAtMzQxLDYgKzM0MSw4IEBAIHN0cnVjdCAgaW50ZWxfZW5naW5l X2NzIHsKIAogCXVuc2lnbmVkIGZlbmNlX2NvbnRleHQ7CiAJc3BpbmxvY2tfdCBmZW5jZV9sb2Nr OworCXN0cnVjdCBsaXN0X2hlYWQgZmVuY2Vfc2lnbmFsX2xpc3Q7CisJc3RydWN0IGxpc3RfaGVh ZCBmZW5jZV91bnNpZ25hbF9saXN0OwogfTsKIAogYm9vbCBpbnRlbF9yaW5nX2luaXRpYWxpemVk KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwotLSAKMS45LjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==