From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH v9 2/6] drm/i915: Convert requests to use struct fence Date: Wed, 1 Jun 2016 18:07:24 +0100 Message-ID: <1464800848-36672-3-git-send-email-John.C.Harrison@Intel.com> References: <1464800848-36672-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 764036EA02 for ; Wed, 1 Jun 2016 17:08:30 +0000 (UTC) In-Reply-To: <1464800848-36672-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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClRoZXJlIGlz IGEgY29uc3RydWN0IGluIHRoZSBsaW51eCBrZXJuZWwgY2FsbGVkICdzdHJ1Y3QgZmVuY2UnIHRo YXQgaXMKaW50ZW5kZWQgdG8ga2VlcCB0cmFjayBvZiB3b3JrIHRoYXQgaXMgZXhlY3V0ZWQgb24g aGFyZHdhcmUuIEkuZS4gaXQKc29sdmVzIHRoZSBiYXNpYyBwcm9ibGVtIHRoYXQgdGhlIGRyaXZl cnMgJ3N0cnVjdApkcm1faTkxNV9nZW1fcmVxdWVzdCcgaXMgdHJ5aW5nIHRvIGFkZHJlc3MuIFRo ZSByZXF1ZXN0IHN0cnVjdHVyZSBkb2VzCnF1aXRlIGEgbG90IG1vcmUgdGhhbiBzaW1wbHkgdHJh Y2sgdGhlIGV4ZWN1dGlvbiBwcm9ncmVzcyBzbyBpcyB2ZXJ5CmRlZmluaXRlbHkgc3RpbGwgcmVx dWlyZWQuIEhvd2V2ZXIsIHRoZSBiYXNpYyBjb21wbGV0aW9uIHN0YXR1cyBzaWRlCmNvdWxkIGJl IHVwZGF0ZWQgdG8gdXNlIHRoZSByZWFkeSBtYWRlIGZlbmNlIGltcGxlbWVudGF0aW9uIGFuZCBn YWluCmFsbCB0aGUgYWR2YW50YWdlcyB0aGF0IHByb3ZpZGVzLgoKVGhpcyBwYXRjaCBtYWtlcyB0 aGUgZmlyc3Qgc3RlcCBvZiBpbnRlZ3JhdGluZyBhIHN0cnVjdCBmZW5jZSBpbnRvIHRoZQpyZXF1 ZXN0LiBJdCByZXBsYWNlcyB0aGUgZXhwbGljaXQgcmVmZXJlbmNlIGNvdW50IHdpdGggdGhhdCBv ZiB0aGUKZmVuY2UuIEl0IGFsc28gcmVwbGFjZXMgdGhlICdpcyBjb21wbGV0ZWQnIHRlc3Qgd2l0 aCB0aGUgZmVuY2UncwplcXVpdmFsZW50LiBDdXJyZW50bHksIHRoYXQgc2ltcGx5IGNoYWlucyBv biB0byB0aGUgb3JpZ2luYWwgcmVxdWVzdAppbXBsZW1lbnRhdGlvbi4gQSBmdXR1cmUgcGF0Y2gg d2lsbCBpbXByb3ZlIHRoaXMuCgp2MzogVXBkYXRlZCBhZnRlciByZXZpZXcgY29tbWVudHMgYnkg VHZydGtvIFVyc3VsaW4uIEFkZGVkIGZlbmNlCmNvbnRleHQvc2Vxbm8gcGFpciB0byB0aGUgZGVi dWdmcyByZXF1ZXN0IGluZm8uIFJlbmFtZWQgZmVuY2UgJ2RyaXZlcgpuYW1lJyB0byBqdXN0ICdp OTE1Jy4gUmVtb3ZlZCBCVUdfT05zLgoKdjU6IENoYW5nZWQgc2Vxbm8gZm9ybWF0IGluIGRlYnVn ZnMgdG8gJXggcmF0aGVyIHRoYW4gJXUgYXMgdGhhdCBpcwphcHBhcmVudGx5IHRoZSBwcmVmZXJy ZWQgYXBwZWFyYW5jZS4gTGluZSB3cmFwcGVkIHNvbWUgbG9uZyBsaW5lcyB0bwprZWVwIHRoZSBz dHlsZSBjaGVja2VyIGhhcHB5LgoKdjY6IFVwZGF0ZWQgdG8gbmV3ZXIgbmlndGhseSBhbmQgcmVz b2x2ZWQgY29uZmxpY3RzLiBUaGUgYmlnZ2VzdCBpc3N1ZQp3YXMgd2l0aCB0aGUgcmUtd29ya2Vk IGJ1c3kgc3BpbiBwcmVjdXJzb3IgdG8gd2FpdGluZyBvbiBhIHJlcXVlc3QuIEluCnBhcnRpY3Vs YXIsIHRoZSBhZGRpdGlvbiBvZiBhICdyZXF1ZXN0X3N0YXJ0ZWQnIGhlbHBlciBmdW5jdGlvbi4g VGhpcwpoYXMgbm8gY29ycmVzcG9uZGluZyBjb25jZXB0IHdpdGhpbiB0aGUgZmVuY2UgZnJhbWV3 b3JrLiBIb3dldmVyLCBpdAppcyBvbmx5IGV2ZXIgdXNlZCBpbiBvbmUgcGxhY2UgYW5kIHRoZSB3 aG9sZSBwb2ludCBvZiB0aGF0IHBsYWNlIGlzIHRvCmFsd2F5cyBkaXJlY3RseSByZWFkIHRoZSBz ZXFubyBmb3IgYWJzb2x1dGVseSBsb3dlc3QgbGF0ZW5jeSBwb3NzaWJsZS4KU28gdGhlIHNpbXBs ZSBzb2x1dGlvbiBpcyB0byBqdXN0IG1ha2UgdGhlIHNlcW5vIHRlc3QgZXhwbGljaXQgYXQgdGhh dApwb2ludCBub3cgcmF0aGVyIHRoYW4gbGF0ZXIgaW4gdGhlIHNlcmllcyAoaXQgd2FzIHByZXZp b3VzbHkgYmVpbmcKZG9uZSBhbnl3YXkgd2hlbiBmZW5jZXMgYmVjb21lIGludGVycnVwdCBkcml2 ZW4pLgoKdjc6IFJlYmFzZWQgdG8gbmV3ZXIgbmlnaHRseSAtIGxvdHMgb2YgcmluZyAtPiBlbmdp bmUgcmVuYW1pbmcgYW5kCmludGVyZmFjZSBjaGFuZ2UgdG8gZ2V0X3NlcW5vKCkuCgp2ODogUmVi YXNlZCB0byBuZXdlciBuaWdodGx5IC0gbm8gbG9uZ2VyIG5lZWRzIHRvIHdvcnJ5IGFib3V0IG11 dGV4CmxvY2tpbmcgaW4gdGhlIHJlcXVlc3QgZnJlZSBjb2RlIHBhdGguIE1vdmVkIHRvIGFmdGVy IGZlbmNlIHRpbWVsaW5lCnBhdGNoIHNvIG5vIGxvbmdlciBuZWVkcyB0byBhZGQgYSBob3JyaWQg aGFjayB0aW1lbGluZS4KClJlbW92ZWQgY29tbWVudGVkIG91dCBjb2RlIGJsb2NrLiBBZGRlZCBz dXBwb3J0IGZvciBwb3NzaWJsZSBSQ1UgdXNhZ2UKb2YgZmVuY2Ugb2JqZWN0IChSZXZpZXcgY29t bWVudHMgYnkgTWFhcnRlbiBMYW5raG9yc3QpLgoKRm9yOiBWSVotNTE5MApTaWduZWQtb2ZmLWJ5 OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgpDYzogVHZydGtvIFVy c3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxt YWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBKZXNzZSBCYXJu ZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYyAgICAgfCAgIDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggICAgICAgICB8ICA0MyArKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyAgICAgICAgIHwgMTAxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAgIDEgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAgMiArCiA2IGZpbGVzIGNoYW5nZWQsIDExNSBpbnNl cnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j CmluZGV4IGFjN2U1NjkuLjg0NGNjNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j CkBAIC03NjcsMTEgKzc2NywxMiBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3JlcXVlc3RfaW5mbyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJCQl0YXNrID0gTlVMTDsKIAkJCWlmIChy ZXEtPnBpZCkKIAkJCQl0YXNrID0gcGlkX3Rhc2socmVxLT5waWQsIFBJRFRZUEVfUElEKTsKLQkJ CXNlcV9wcmludGYobSwgIiAgICAleCBAICVkOiAlcyBbJWRdXG4iLAorCQkJc2VxX3ByaW50Ziht LCAiICAgICV4IEAgJWQ6ICVzIFslZF0sIGZlbmNlID0gJXg6JXhcbiIsCiAJCQkJICAgcmVxLT5z ZXFubywKIAkJCQkgICAoaW50KSAoamlmZmllcyAtIHJlcS0+ZW1pdHRlZF9qaWZmaWVzKSwKIAkJ CQkgICB0YXNrID8gdGFzay0+Y29tbSA6ICI8dW5rbm93bj4iLAotCQkJCSAgIHRhc2sgPyB0YXNr LT5waWQgOiAtMSk7CisJCQkJICAgdGFzayA/IHRhc2stPnBpZCA6IC0xLAorCQkJCSAgIHJlcS0+ ZmVuY2UuY29udGV4dCwgcmVxLT5mZW5jZS5zZXFubyk7CiAJCQlyY3VfcmVhZF91bmxvY2soKTsK IAkJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBhNWY4YWQ4Li45MDVmZWFlIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9r cmVmLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcW9zLmg+CiAjaW5jbHVkZSA8bGludXgvc2htZW1f ZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgogCiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4K ICNpbmNsdWRlIDxkcm0vaW50ZWwtZ3R0Lmg+CkBAIC0yMzUzLDcgKzIzNTQsMTEgQEAgc3RhdGlj IGlubGluZSBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKl9fc2dfbmV4dChzdHJ1Y3Qgc2NhdHRlcmxpc3Qg KnNnKQogICogaW5pdGlhbCByZWZlcmVuY2UgdGFrZW4gdXNpbmcga3JlZl9pbml0CiAgKi8KIHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCB7Ci0Jc3RydWN0IGtyZWYgcmVmOworCS8qKgorCSAq IFVuZGVybHlpbmcgb2JqZWN0IGZvciBpbXBsZW1lbnRpbmcgdGhlIHNpZ25hbC93YWl0IHN0dWZm LgorCSAqLworCXN0cnVjdCBmZW5jZSBmZW5jZTsKKwlzdHJ1Y3QgcmN1X2hlYWQgcmN1X2hlYWQ7 CiAKIAkvKiogT24gV2hpY2ggcmluZyB0aGlzIHJlcXVlc3Qgd2FzIGdlbmVyYXRlZCAqLwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1OwpAQCAtMjQ1NSw3ICsyNDYwLDEzIEBAIHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCB7CiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKiBf X211c3RfY2hlY2sKIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAogCQkgICAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCk7Ci12b2lk IGk5MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1Y3Qga3JlZiAqcmVxX3JlZik7CisKK3N0YXRpYyBp bmxpbmUgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSwKKwkJCQkJICAgICAgYm9vbCBsYXp5X2NvaGVyZW5jeSkKK3sKKwlyZXR1 cm4gZmVuY2VfaXNfc2lnbmFsZWQoJnJlcS0+ZmVuY2UpOworfQorCiBpbnQgaTkxNV9nZW1fcmVx dWVzdF9hZGRfdG9fY2xpZW50KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJ CSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7CiAKQEAgLTI0NzUsMTQgKzI0ODYsMTQgQEAgc3Rh dGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgogaTkxNV9nZW1fcmVxdWVz dF9yZWZlcmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CiAJaWYgKHJl cSkKLQkJa3JlZl9nZXQoJnJlcS0+cmVmKTsKKwkJZmVuY2VfZ2V0KCZyZXEtPmZlbmNlKTsKIAly ZXR1cm4gcmVxOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKIGk5MTVfZ2VtX3JlcXVlc3RfdW5y ZWZlcmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7Ci0Ja3JlZl9wdXQo JnJlcS0+cmVmLCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUpOworCWZlbmNlX3B1dCgmcmVxLT5mZW5j ZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbihzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipwZHN0LApAQCAtMjQ5OCwxMiArMjUwOSw2IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbihzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKipwZHN0LAogfQogCiAvKgotICogWFhYOiBpOTE1X2dlbV9yZXF1ZXN0X2Nv bXBsZXRlZCBzaG91bGQgYmUgaGVyZSBidXQgY3VycmVudGx5IG5lZWRzIHRoZQotICogZGVmaW5p dGlvbiBvZiBpOTE1X3NlcW5vX3Bhc3NlZCgpIHdoaWNoIGlzIGJlbG93LiBJdCB3aWxsIGJlIG1v dmVkIGluCi0gKiBhIGxhdGVyIHBhdGNoIHdoZW4gdGhlIGNhbGwgdG8gaTkxNV9zZXFub19wYXNz ZWQoKSBpcyBvYnNvbGV0ZWQuLi4KLSAqLwotCi0vKgogICogQSBjb21tYW5kIHRoYXQgcmVxdWly ZXMgc3BlY2lhbCBoYW5kbGluZyBieSB0aGUgY29tbWFuZCBwYXJzZXIuCiAgKi8KIHN0cnVjdCBk cm1faTkxNV9jbWRfZGVzY3JpcHRvciB7CkBAIC0zMjExLDI0ICszMjE2LDYgQEAgaTkxNV9zZXFu b19wYXNzZWQodWludDMyX3Qgc2VxMSwgdWludDMyX3Qgc2VxMikKIAlyZXR1cm4gKGludDMyX3Qp KHNlcTEgLSBzZXEyKSA+PSAwOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fcmVx dWVzdF9zdGFydGVkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAotCQkJCQkgICBi b29sIGxhenlfY29oZXJlbmN5KQotewotCWlmICghbGF6eV9jb2hlcmVuY3kgJiYgcmVxLT5lbmdp bmUtPmlycV9zZXFub19iYXJyaWVyKQotCQlyZXEtPmVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIo cmVxLT5lbmdpbmUpOwotCXJldHVybiBpOTE1X3NlcW5vX3Bhc3NlZChyZXEtPmVuZ2luZS0+Z2V0 X3NlcW5vKHJlcS0+ZW5naW5lKSwKLQkJCQkgcmVxLT5wcmV2aW91c19zZXFubyk7Ci19Ci0KLXN0 YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSwKLQkJCQkJICAgICAgYm9vbCBsYXp5X2NvaGVyZW5jeSkKLXsK LQlpZiAoIWxhenlfY29oZXJlbmN5ICYmIHJlcS0+ZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcikK LQkJcmVxLT5lbmdpbmUtPmlycV9zZXFub19iYXJyaWVyKHJlcS0+ZW5naW5lKTsKLQlyZXR1cm4g aTkxNV9zZXFub19wYXNzZWQocmVxLT5lbmdpbmUtPmdldF9zZXFubyhyZXEtPmVuZ2luZSksCi0J CQkJIHJlcS0+c2Vxbm8pOwotfQotCiBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX2dldF9zZXFu byhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiAqc2Vxbm8pOwogaW50IF9f bXVzdF9jaGVjayBpOTE1X2dlbV9zZXRfc2Vxbm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMy IHNlcW5vKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggNTdkMzU5My4uYjY3ZmQ3YyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0xMTcwLDYgKzExNzAsNyBAQCBzdGF0aWMgaW50 IF9faTkxNV9zcGluX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGlu dCBzdGF0ZSkKIHsKIAl1bnNpZ25lZCBsb25nIHRpbWVvdXQ7CiAJdW5zaWduZWQgY3B1OworCXVp bnQzMl90IHNlcW5vOwogCiAJLyogV2hlbiB3YWl0aW5nIGZvciBoaWdoIGZyZXF1ZW5jeSByZXF1 ZXN0cywgZS5nLiBkdXJpbmcgc3luY2hyb25vdXMKIAkgKiByZW5kZXJpbmcgc3BsaXQgYmV0d2Vl biB0aGUgQ1BVIGFuZCBHUFUsIHRoZSBmaW5pdGUgYW1vdW50IG9mIHRpbWUKQEAgLTExODUsMTIg KzExODYsMTQgQEAgc3RhdGljIGludCBfX2k5MTVfc3Bpbl9yZXF1ZXN0KHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgc3RhdGUpCiAJCXJldHVybiAtRUJVU1k7CiAKIAkvKiBP bmx5IHNwaW4gaWYgd2Uga25vdyB0aGUgR1BVIGlzIHByb2Nlc3NpbmcgdGhpcyByZXF1ZXN0ICov Ci0JaWYgKCFpOTE1X2dlbV9yZXF1ZXN0X3N0YXJ0ZWQocmVxLCB0cnVlKSkKKwlzZXFubyA9IHJl cS0+ZW5naW5lLT5nZXRfc2Vxbm8ocmVxLT5lbmdpbmUpOworCWlmICghaTkxNV9zZXFub19wYXNz ZWQoc2Vxbm8sIHJlcS0+cHJldmlvdXNfc2Vxbm8pKQogCQlyZXR1cm4gLUVBR0FJTjsKIAogCXRp bWVvdXQgPSBsb2NhbF9jbG9ja191cygmY3B1KSArIDU7CiAJd2hpbGUgKCFuZWVkX3Jlc2NoZWQo KSkgewotCQlpZiAoaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQocmVxLCB0cnVlKSkKKwkJc2Vx bm8gPSByZXEtPmVuZ2luZS0+Z2V0X3NlcW5vKHJlcS0+ZW5naW5lKTsKKwkJaWYgKGk5MTVfc2Vx bm9fcGFzc2VkKHNlcW5vLCByZXEtPnNlcW5vKSkKIAkJCXJldHVybiAwOwogCiAJCWlmIChzaWdu YWxfcGVuZGluZ19zdGF0ZShzdGF0ZSwgY3VycmVudCkpCkBAIC0xMjAyLDcgKzEyMDUsMTAgQEAg c3RhdGljIGludCBfX2k5MTVfc3Bpbl9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxLCBpbnQgc3RhdGUpCiAJCWNwdV9yZWxheF9sb3dsYXRlbmN5KCk7CiAJfQogCi0JaWYg KGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJlcSwgZmFsc2UpKQorCWlmIChyZXEtPmVuZ2lu ZS0+aXJxX3NlcW5vX2JhcnJpZXIpCisJCXJlcS0+ZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcihy ZXEtPmVuZ2luZSk7CisJc2Vxbm8gPSByZXEtPmVuZ2luZS0+Z2V0X3NlcW5vKHJlcS0+ZW5naW5l KTsKKwlpZiAoaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHJlcS0+c2Vxbm8pKQogCQlyZXR1cm4g MDsKIAogCXJldHVybiAtRUFHQUlOOwpAQCAtMjczNiwxMyArMjc0Miw4OSBAQCBzdGF0aWMgdm9p ZCBpOTE1X3NldF9yZXNldF9zdGF0dXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCX0KIH0KIAotdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0IGtyZWYgKnJlcV9y ZWYpCitzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWVfcmN1KHN0cnVjdCByY3VfaGVh ZCAqaGVhZCkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5l cl9vZihyZXFfcmVmLAotCQkJCQkJIHR5cGVvZigqcmVxKSwgcmVmKTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcTsKKworCXJlcSA9IGNvbnRhaW5lcl9vZihoZWFkLCB0eXBlb2Yo KnJlcSksIHJjdV9oZWFkKTsKIAlrbWVtX2NhY2hlX2ZyZWUocmVxLT5pOTE1LT5yZXF1ZXN0cywg cmVxKTsKIH0KIAorc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVjdCBmZW5j ZSAqcmVxX2ZlbmNlKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOworCisJ cmVxID0gY29udGFpbmVyX29mKHJlcV9mZW5jZSwgdHlwZW9mKCpyZXEpLCBmZW5jZSk7CisJY2Fs bF9yY3UoJnJlcS0+cmN1X2hlYWQsIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZV9yY3UpOworfQorCitz dGF0aWMgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNl ICpyZXFfZmVuY2UpCit7CisJLyogSW50ZXJydXB0IGRyaXZlbiBmZW5jZXMgYXJlIG5vdCBpbXBs ZW1lbnRlZCB5ZXQuKi8KKwlXQVJOKHRydWUsICJUaGlzIHNob3VsZCBub3QgYmUgY2FsbGVkISIp OworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2lzX2Nv bXBsZXRlZChzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsCisJCQkJCQkgdHlwZW9mKCpy ZXEpLCBmZW5jZSk7CisJdTMyIHNlcW5vOworCisJc2Vxbm8gPSByZXEtPmVuZ2luZS0+Z2V0X3Nl cW5vKHJlcS0+ZW5naW5lKTsKKworCXJldHVybiBpOTE1X3NlcW5vX3Bhc3NlZChzZXFubywgcmVx LT5zZXFubyk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICppOTE1X2dlbV9yZXF1ZXN0X2dldF9k cml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKK3sKKwlyZXR1cm4gImk5MTUiOwor fQorCitzdGF0aWMgY29uc3QgY2hhciAqaTkxNV9nZW1fcmVxdWVzdF9nZXRfdGltZWxpbmVfbmFt ZShzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcTsKKwlzdHJ1Y3QgaTkxNV9mZW5jZV90aW1lbGluZSAqdGltZWxpbmU7CisKKwlyZXEg PSBjb250YWluZXJfb2YocmVxX2ZlbmNlLCB0eXBlb2YoKnJlcSksIGZlbmNlKTsKKwl0aW1lbGlu ZSA9ICZyZXEtPmN0eC0+ZW5naW5lW3JlcS0+ZW5naW5lLT5pZF0uZmVuY2VfdGltZWxpbmU7CisK KwlyZXR1cm4gdGltZWxpbmUtPm5hbWU7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVl c3RfdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlLAorCQkJCQkJY2hh ciAqc3RyLCBpbnQgc2l6ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsK KworCXJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsIHR5cGVvZigqcmVxKSwgZmVuY2UpOwor CisJLyogTGFzdCBzaWduYWxsZWQgdGltZWxpbmUgdmFsdWUgPz8/ICovCisJc25wcmludGYoc3Ry LCBzaXplLCAiPyBbJWRdIi8qLCB0aW1lbGluZS0+dmFsdWUqLywKKwkJIHJlcS0+ZW5naW5lLT5n ZXRfc2Vxbm8ocmVxLT5lbmdpbmUpKTsKK30KKworc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVxdWVz dF9mZW5jZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpyZXFfZmVuY2UsCisJCQkJCSAgICAgY2hh ciAqc3RyLCBpbnQgc2l6ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsK KworCXJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsIHR5cGVvZigqcmVxKSwgZmVuY2UpOwor CisJc25wcmludGYoc3RyLCBzaXplLCAiJWQgWyVkXSIsIHJlcS0+ZmVuY2Uuc2Vxbm8sIHJlcS0+ c2Vxbm8pOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29wcyBpOTE1X2dlbV9yZXF1 ZXN0X2ZvcHMgPSB7CisJLmVuYWJsZV9zaWduYWxpbmcJPSBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJs ZV9zaWduYWxpbmcsCisJLnNpZ25hbGVkCQk9IGk5MTVfZ2VtX3JlcXVlc3RfaXNfY29tcGxldGVk LAorCS53YWl0CQkJPSBmZW5jZV9kZWZhdWx0X3dhaXQsCisJLnJlbGVhc2UJCT0gaTkxNV9nZW1f cmVxdWVzdF9mcmVlLAorCS5nZXRfZHJpdmVyX25hbWUJPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9k cml2ZXJfbmFtZSwKKwkuZ2V0X3RpbWVsaW5lX25hbWUJPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF90 aW1lbGluZV9uYW1lLAorCS5mZW5jZV92YWx1ZV9zdHIJPSBpOTE1X2dlbV9yZXF1ZXN0X2ZlbmNl X3ZhbHVlX3N0ciwKKwkudGltZWxpbmVfdmFsdWVfc3RyCT0gaTkxNV9nZW1fcmVxdWVzdF90aW1l bGluZV92YWx1ZV9zdHIsCit9OworCiBpbnQgaTkxNV9jcmVhdGVfZmVuY2VfdGltZWxpbmUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgICAgICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAq Y3R4LAogCQkJICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKQEAgLTI3NzAs NyArMjg1Miw3IEBAIGludCBpOTE1X2NyZWF0ZV9mZW5jZV90aW1lbGluZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCXJldHVybiAwOwogfQogCi11bnNpZ25lZCBpOTE1X2ZlbmNlX3RpbWVsaW5l X2dldF9uZXh0X3NlcW5vKHN0cnVjdCBpOTE1X2ZlbmNlX3RpbWVsaW5lICp0aW1lbGluZSkKK3N0 YXRpYyB1bnNpZ25lZCBpOTE1X2ZlbmNlX3RpbWVsaW5lX2dldF9uZXh0X3NlcW5vKHN0cnVjdCBp OTE1X2ZlbmNlX3RpbWVsaW5lICp0aW1lbGluZSkKIHsKIAl1bnNpZ25lZCBzZXFubzsKIApAQCAt MjgxNCwxMyArMjg5NiwxNiBAQCBfX2k5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLAogCWlmIChyZXQpCiAJCWdvdG8gZXJyOwogCi0Ja3JlZl9pbml0 KCZyZXEtPnJlZik7CiAJcmVxLT5pOTE1ID0gZGV2X3ByaXY7CiAJcmVxLT5lbmdpbmUgPSBlbmdp bmU7CiAJcmVxLT5yZXNldF9jb3VudGVyID0gcmVzZXRfY291bnRlcjsKIAlyZXEtPmN0eCAgPSBj dHg7CiAJaTkxNV9nZW1fY29udGV4dF9yZWZlcmVuY2UocmVxLT5jdHgpOwogCisJZmVuY2VfaW5p dCgmcmVxLT5mZW5jZSwgJmk5MTVfZ2VtX3JlcXVlc3RfZm9wcywgJmVuZ2luZS0+ZmVuY2VfbG9j aywKKwkJICAgY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0uZmVuY2VfdGltZWxpbmUuZmVuY2VfY29u dGV4dCwKKwkJICAgaTkxNV9mZW5jZV90aW1lbGluZV9nZXRfbmV4dF9zZXFubygmY3R4LT5lbmdp bmVbZW5naW5lLT5pZF0uZmVuY2VfdGltZWxpbmUpKTsKKwogCS8qCiAJICogUmVzZXJ2ZSBzcGFj ZSBpbiB0aGUgcmluZyBidWZmZXIgZm9yIGFsbCB0aGUgY29tbWFuZHMgcmVxdWlyZWQgdG8KIAkg KiBldmVudHVhbGx5IGVtaXQgdGhpcyByZXF1ZXN0LiBUaGlzIGlzIHRvIGd1YXJhbnRlZSB0aGF0 IHRoZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCAxNGJjZmI3Li5mMTI2YmNiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMjAzMCw2ICsyMDMwLDcgQEAgbG9naWNhbF9yaW5n X3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gaW50ZWxfZW5naW5lX2lkIGlkKQog CUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmJ1ZmZlcnMpOwogCUlOSVRfTElTVF9IRUFEKCZlbmdp bmUtPmV4ZWNsaXN0X3F1ZXVlKTsKIAlzcGluX2xvY2tfaW5pdCgmZW5naW5lLT5leGVjbGlzdF9s b2NrKTsKKwlzcGluX2xvY2tfaW5pdCgmZW5naW5lLT5mZW5jZV9sb2NrKTsKIAogCXRhc2tsZXRf aW5pdCgmZW5naW5lLT5pcnFfdGFza2xldCwKIAkJICAgICBpbnRlbF9scmNfaXJxX2hhbmRsZXIs ICh1bnNpZ25lZCBsb25nKWVuZ2luZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMKaW5kZXggOGQzNWEzOS4uZmJkM2YxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYwpAQCAtMjI1NCw2ICsyMjU0LDcgQEAgc3RhdGljIGludCBpbnRlbF9pbml0 X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJSU5JVF9MSVNUX0hFQUQoJmVu Z2luZS0+cmVxdWVzdF9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5leGVjbGlzdF9x dWV1ZSk7CiAJSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+YnVmZmVycyk7CisJc3Bpbl9sb2NrX2lu aXQoJmVuZ2luZS0+ZmVuY2VfbG9jayk7CiAJaTkxNV9nZW1fYmF0Y2hfcG9vbF9pbml0KGRldiwg JmVuZ2luZS0+YmF0Y2hfcG9vbCk7CiAJbWVtc2V0KGVuZ2luZS0+c2VtYXBob3JlLnN5bmNfc2Vx bm8sIDAsCiAJICAgICAgIHNpemVvZihlbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3NlcW5vKSk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggYjMzYzg3Ni4uM2YzOWRh ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtMzQ1LDYgKzM0 NSw4IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgewogCSAqIHRvIGVuY29kZSB0aGUgY29tbWFu ZCBsZW5ndGggaW4gdGhlIGhlYWRlcikuCiAJICovCiAJdTMyICgqZ2V0X2NtZF9sZW5ndGhfbWFz aykodTMyIGNtZF9oZWFkZXIpOworCisJc3BpbmxvY2tfdCBmZW5jZV9sb2NrOwogfTsKIAogc3Rh dGljIGlubGluZSBib29sCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==