From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH v8 2/6] drm/i915: Convert requests to use struct fence Date: Thu, 12 May 2016 22:06:32 +0100 Message-ID: <1463087196-11688-3-git-send-email-John.C.Harrison@Intel.com> References: <1463087196-11688-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 03E3C6E983 for ; Thu, 12 May 2016 21:06:41 +0000 (UTC) In-Reply-To: <1463087196-11688-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 CmluZGV4IDZhZDAwOGMuLjYxMjk3NDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j CkBAIC03NDAsMTEgKzc0MCwxMiBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3JlcXVlc3RfaW5mbyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJCQl0YXNrID0gTlVMTDsKIAkJCWlmIChy ZXEtPnBpZCkKIAkJCQl0YXNrID0gcGlkX3Rhc2socmVxLT5waWQsIFBJRFRZUEVfUElEKTsKLQkJ CXNlcV9wcmludGYobSwgIiAgICAleCBAICVkOiAlcyBbJWRdXG4iLAorCQkJc2VxX3ByaW50Ziht LCAiICAgICV4IEAgJWQ6ICVzIFslZF0sIGZlbmNlID0gJXg6JXhcbiIsCiAJCQkJICAgcmVxLT5z ZXFubywKIAkJCQkgICAoaW50KSAoamlmZmllcyAtIHJlcS0+ZW1pdHRlZF9qaWZmaWVzKSwKIAkJ CQkgICB0YXNrID8gdGFzay0+Y29tbSA6ICI8dW5rbm93bj4iLAotCQkJCSAgIHRhc2sgPyB0YXNr LT5waWQgOiAtMSk7CisJCQkJICAgdGFzayA/IHRhc2stPnBpZCA6IC0xLAorCQkJCSAgIHJlcS0+ ZmVuY2UuY29udGV4dCwgcmVxLT5mZW5jZS5zZXFubyk7CiAJCQlyY3VfcmVhZF91bmxvY2soKTsK IAkJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA1MjA0ODBiLi5iMjU4ODZlIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9r cmVmLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcW9zLmg+CiAjaW5jbHVkZSA8bGludXgvc2htZW1f ZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgogCiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4K ICNpbmNsdWRlIDxkcm0vaW50ZWwtZ3R0Lmg+CkBAIC0yMjcyLDcgKzIyNzMsMTEgQEAgdm9pZCBp OTE1X2dlbV90cmFja19mYihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2xkLAogICogaW5p dGlhbCByZWZlcmVuY2UgdGFrZW4gdXNpbmcga3JlZl9pbml0CiAgKi8KIHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCB7Ci0Jc3RydWN0IGtyZWYgcmVmOworCS8qKgorCSAqIFVuZGVybHlpbmcg b2JqZWN0IGZvciBpbXBsZW1lbnRpbmcgdGhlIHNpZ25hbC93YWl0IHN0dWZmLgorCSAqLworCXN0 cnVjdCBmZW5jZSBmZW5jZTsKKwlzdHJ1Y3QgcmN1X2hlYWQgcmN1X2hlYWQ7CiAKIAkvKiogT24g V2hpY2ggcmluZyB0aGlzIHJlcXVlc3Qgd2FzIGdlbmVyYXRlZCAqLwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1OwpAQCAtMjM3NCw3ICsyMzc5LDEzIEBAIHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCB7CiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKiBfX211c3RfY2hlY2sK IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAog CQkgICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCk7Ci12b2lkIGk5MTVfZ2VtX3JlcXVl c3RfZnJlZShzdHJ1Y3Qga3JlZiAqcmVxX3JlZik7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1 X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwK KwkJCQkJICAgICAgYm9vbCBsYXp5X2NvaGVyZW5jeSkKK3sKKwlyZXR1cm4gZmVuY2VfaXNfc2ln bmFsZWQoJnJlcS0+ZmVuY2UpOworfQorCiBpbnQgaTkxNV9nZW1fcmVxdWVzdF9hZGRfdG9fY2xp ZW50KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJCSAgIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZSk7CiAKQEAgLTIzOTQsMTQgKzI0MDUsMTQgQEAgc3RhdGljIGlubGluZSBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgogaTkxNV9nZW1fcmVxdWVzdF9yZWZlcmVuY2Uoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CiAJaWYgKHJlcSkKLQkJa3JlZl9nZXQo JnJlcS0+cmVmKTsKKwkJZmVuY2VfZ2V0KCZyZXEtPmZlbmNlKTsKIAlyZXR1cm4gcmVxOwogfQog CiBzdGF0aWMgaW5saW5lIHZvaWQKIGk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2Uoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7Ci0Ja3JlZl9wdXQoJnJlcS0+cmVmLCBpOTE1 X2dlbV9yZXF1ZXN0X2ZyZWUpOworCWZlbmNlX3B1dCgmcmVxLT5mZW5jZSk7CiB9CiAKIHN0YXRp YyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbihzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKipwZHN0LApAQCAtMjQxNywxMiArMjQyOCw2IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCBpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipw ZHN0LAogfQogCiAvKgotICogWFhYOiBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZCBzaG91bGQg YmUgaGVyZSBidXQgY3VycmVudGx5IG5lZWRzIHRoZQotICogZGVmaW5pdGlvbiBvZiBpOTE1X3Nl cW5vX3Bhc3NlZCgpIHdoaWNoIGlzIGJlbG93LiBJdCB3aWxsIGJlIG1vdmVkIGluCi0gKiBhIGxh dGVyIHBhdGNoIHdoZW4gdGhlIGNhbGwgdG8gaTkxNV9zZXFub19wYXNzZWQoKSBpcyBvYnNvbGV0 ZWQuLi4KLSAqLwotCi0vKgogICogQSBjb21tYW5kIHRoYXQgcmVxdWlyZXMgc3BlY2lhbCBoYW5k bGluZyBieSB0aGUgY29tbWFuZCBwYXJzZXIuCiAgKi8KIHN0cnVjdCBkcm1faTkxNV9jbWRfZGVz Y3JpcHRvciB7CkBAIC0zMDkzLDI0ICszMDk4LDYgQEAgaTkxNV9zZXFub19wYXNzZWQodWludDMy X3Qgc2VxMSwgdWludDMyX3Qgc2VxMikKIAlyZXR1cm4gKGludDMyX3QpKHNlcTEgLSBzZXEyKSA+ PSAwOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9zdGFydGVkKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAotCQkJCQkgICBib29sIGxhenlfY29oZXJl bmN5KQotewotCWlmICghbGF6eV9jb2hlcmVuY3kgJiYgcmVxLT5lbmdpbmUtPmlycV9zZXFub19i YXJyaWVyKQotCQlyZXEtPmVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIocmVxLT5lbmdpbmUpOwot CXJldHVybiBpOTE1X3NlcW5vX3Bhc3NlZChyZXEtPmVuZ2luZS0+Z2V0X3NlcW5vKHJlcS0+ZW5n aW5lKSwKLQkJCQkgcmVxLT5wcmV2aW91c19zZXFubyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9v bCBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSwKLQkJCQkJICAgICAgYm9vbCBsYXp5X2NvaGVyZW5jeSkKLXsKLQlpZiAoIWxhenlfY29o ZXJlbmN5ICYmIHJlcS0+ZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcikKLQkJcmVxLT5lbmdpbmUt PmlycV9zZXFub19iYXJyaWVyKHJlcS0+ZW5naW5lKTsKLQlyZXR1cm4gaTkxNV9zZXFub19wYXNz ZWQocmVxLT5lbmdpbmUtPmdldF9zZXFubyhyZXEtPmVuZ2luZSksCi0JCQkJIHJlcS0+c2Vxbm8p OwotfQotCiBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX2dldF9zZXFubyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1MzIgKnNlcW5vKTsKIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fc2V0X3Nl cW5vKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBzZXFubyk7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCmluZGV4IDk5YmQ0NzAuLmU3YzI0YjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpA QCAtMTE3MCw2ICsxMTcwLDcgQEAgc3RhdGljIGludCBfX2k5MTVfc3Bpbl9yZXF1ZXN0KHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgc3RhdGUpCiB7CiAJdW5zaWduZWQgbG9u ZyB0aW1lb3V0OwogCXVuc2lnbmVkIGNwdTsKKwl1aW50MzJfdCBzZXFubzsKIAogCS8qIFdoZW4g d2FpdGluZyBmb3IgaGlnaCBmcmVxdWVuY3kgcmVxdWVzdHMsIGUuZy4gZHVyaW5nIHN5bmNocm9u b3VzCiAJICogcmVuZGVyaW5nIHNwbGl0IGJldHdlZW4gdGhlIENQVSBhbmQgR1BVLCB0aGUgZmlu aXRlIGFtb3VudCBvZiB0aW1lCkBAIC0xMTg1LDEyICsxMTg2LDE0IEBAIHN0YXRpYyBpbnQgX19p OTE1X3NwaW5fcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50IHN0 YXRlKQogCQlyZXR1cm4gLUVCVVNZOwogCiAJLyogT25seSBzcGluIGlmIHdlIGtub3cgdGhlIEdQ VSBpcyBwcm9jZXNzaW5nIHRoaXMgcmVxdWVzdCAqLwotCWlmICghaTkxNV9nZW1fcmVxdWVzdF9z dGFydGVkKHJlcSwgdHJ1ZSkpCisJc2Vxbm8gPSByZXEtPmVuZ2luZS0+Z2V0X3NlcW5vKHJlcS0+ ZW5naW5lKTsKKwlpZiAoIWk5MTVfc2Vxbm9fcGFzc2VkKHNlcW5vLCByZXEtPnByZXZpb3VzX3Nl cW5vKSkKIAkJcmV0dXJuIC1FQUdBSU47CiAKIAl0aW1lb3V0ID0gbG9jYWxfY2xvY2tfdXMoJmNw dSkgKyA1OwogCXdoaWxlICghbmVlZF9yZXNjaGVkKCkpIHsKLQkJaWYgKGk5MTVfZ2VtX3JlcXVl c3RfY29tcGxldGVkKHJlcSwgdHJ1ZSkpCisJCXNlcW5vID0gcmVxLT5lbmdpbmUtPmdldF9zZXFu byhyZXEtPmVuZ2luZSk7CisJCWlmIChpOTE1X3NlcW5vX3Bhc3NlZChzZXFubywgcmVxLT5zZXFu bykpCiAJCQlyZXR1cm4gMDsKIAogCQlpZiAoc2lnbmFsX3BlbmRpbmdfc3RhdGUoc3RhdGUsIGN1 cnJlbnQpKQpAQCAtMTIwMiw3ICsxMjA1LDEwIEBAIHN0YXRpYyBpbnQgX19pOTE1X3NwaW5fcmVx dWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50IHN0YXRlKQogCQljcHVf cmVsYXhfbG93bGF0ZW5jeSgpOwogCX0KIAotCWlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRl ZChyZXEsIGZhbHNlKSkKKwlpZiAocmVxLT5lbmdpbmUtPmlycV9zZXFub19iYXJyaWVyKQorCQly ZXEtPmVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIocmVxLT5lbmdpbmUpOworCXNlcW5vID0gcmVx LT5lbmdpbmUtPmdldF9zZXFubyhyZXEtPmVuZ2luZSk7CisJaWYgKGk5MTVfc2Vxbm9fcGFzc2Vk KHNlcW5vLCByZXEtPnNlcW5vKSkKIAkJcmV0dXJuIDA7CiAKIAlyZXR1cm4gLUVBR0FJTjsKQEAg LTI3MTYsMTMgKzI3MjIsODkgQEAgc3RhdGljIHZvaWQgaTkxNV9zZXRfcmVzZXRfc3RhdHVzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl9CiB9CiAKLXZvaWQgaTkxNV9nZW1f cmVxdWVzdF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKQorc3RhdGljIHZvaWQgaTkxNV9nZW1f cmVxdWVzdF9mcmVlX3JjdShzdHJ1Y3QgcmN1X2hlYWQgKmhlYWQpCiB7Ci0Jc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEgPSBjb250YWluZXJfb2YocmVxX3JlZiwKLQkJCQkJCSB0eXBl b2YoKnJlcSksIHJlZik7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisKKwly ZXEgPSBjb250YWluZXJfb2YoaGVhZCwgdHlwZW9mKCpyZXEpLCByY3VfaGVhZCk7CiAJa21lbV9j YWNoZV9mcmVlKHJlcS0+aTkxNS0+cmVxdWVzdHMsIHJlcSk7CiB9CiAKK3N0YXRpYyB2b2lkIGk5 MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKKworCXJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVu Y2UsIHR5cGVvZigqcmVxKSwgZmVuY2UpOworCWNhbGxfcmN1KCZyZXEtPnJjdV9oZWFkLCBpOTE1 X2dlbV9yZXF1ZXN0X2ZyZWVfcmN1KTsKK30KKworc3RhdGljIGJvb2wgaTkxNV9nZW1fcmVxdWVz dF9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlKQoreworCS8qIEludGVy cnVwdCBkcml2ZW4gZmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQgeWV0LiovCisJV0FSTih0cnVl LCAiVGhpcyBzaG91bGQgbm90IGJlIGNhbGxlZCEiKTsKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3Rh dGljIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9pc19jb21wbGV0ZWQoc3RydWN0IGZlbmNlICpyZXFf ZmVuY2UpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEgPSBjb250YWluZXJf b2YocmVxX2ZlbmNlLAorCQkJCQkJIHR5cGVvZigqcmVxKSwgZmVuY2UpOworCXUzMiBzZXFubzsK KworCXNlcW5vID0gcmVxLT5lbmdpbmUtPmdldF9zZXFubyhyZXEtPmVuZ2luZSk7CisKKwlyZXR1 cm4gaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHJlcS0+c2Vxbm8pOworfQorCitzdGF0aWMgY29u c3QgY2hhciAqaTkxNV9nZW1fcmVxdWVzdF9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGZlbmNlICpy ZXFfZmVuY2UpCit7CisJcmV0dXJuICJpOTE1IjsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmk5 MTVfZ2VtX3JlcXVlc3RfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpyZXFfZmVuY2Up Cit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisJc3RydWN0IGk5MTVfZmVu Y2VfdGltZWxpbmUgKnRpbWVsaW5lOworCisJcmVxID0gY29udGFpbmVyX29mKHJlcV9mZW5jZSwg dHlwZW9mKCpyZXEpLCBmZW5jZSk7CisJdGltZWxpbmUgPSAmcmVxLT5jdHgtPmVuZ2luZVtyZXEt PmVuZ2luZS0+aWRdLmZlbmNlX3RpbWVsaW5lOworCisJcmV0dXJuIHRpbWVsaW5lLT5uYW1lOwor fQorCitzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3RpbWVsaW5lX3ZhbHVlX3N0cihzdHJ1 Y3QgZmVuY2UgKnJlcV9mZW5jZSwKKwkJCQkJCWNoYXIgKnN0ciwgaW50IHNpemUpCit7CisJc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisKKwlyZXEgPSBjb250YWluZXJfb2YocmVx X2ZlbmNlLCB0eXBlb2YoKnJlcSksIGZlbmNlKTsKKworCS8qIExhc3Qgc2lnbmFsbGVkIHRpbWVs aW5lIHZhbHVlID8/PyAqLworCXNucHJpbnRmKHN0ciwgc2l6ZSwgIj8gWyVkXSIvKiwgdGltZWxp bmUtPnZhbHVlKi8sCisJCSByZXEtPmVuZ2luZS0+Z2V0X3NlcW5vKHJlcS0+ZW5naW5lKSk7Cit9 CisKK3N0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZmVuY2VfdmFsdWVfc3RyKHN0cnVjdCBm ZW5jZSAqcmVxX2ZlbmNlLAorCQkJCQkgICAgIGNoYXIgKnN0ciwgaW50IHNpemUpCit7CisJc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisKKwlyZXEgPSBjb250YWluZXJfb2YocmVx X2ZlbmNlLCB0eXBlb2YoKnJlcSksIGZlbmNlKTsKKworCXNucHJpbnRmKHN0ciwgc2l6ZSwgIiVk IFslZF0iLCByZXEtPmZlbmNlLnNlcW5vLCByZXEtPnNlcW5vKTsKK30KKworc3RhdGljIGNvbnN0 IHN0cnVjdCBmZW5jZV9vcHMgaTkxNV9nZW1fcmVxdWVzdF9mb3BzID0geworCS5lbmFibGVfc2ln bmFsaW5nCT0gaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfc2lnbmFsaW5nLAorCS5zaWduYWxlZAkJ PSBpOTE1X2dlbV9yZXF1ZXN0X2lzX2NvbXBsZXRlZCwKKwkud2FpdAkJCT0gZmVuY2VfZGVmYXVs dF93YWl0LAorCS5yZWxlYXNlCQk9IGk5MTVfZ2VtX3JlcXVlc3RfZnJlZSwKKwkuZ2V0X2RyaXZl cl9uYW1lCT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfZHJpdmVyX25hbWUsCisJLmdldF90aW1lbGlu ZV9uYW1lCT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfdGltZWxpbmVfbmFtZSwKKwkuZmVuY2VfdmFs dWVfc3RyCT0gaTkxNV9nZW1fcmVxdWVzdF9mZW5jZV92YWx1ZV9zdHIsCisJLnRpbWVsaW5lX3Zh bHVlX3N0cgk9IGk5MTVfZ2VtX3JlcXVlc3RfdGltZWxpbmVfdmFsdWVfc3RyLAorfTsKKwogaW50 IGk5MTVfY3JlYXRlX2ZlbmNlX3RpbWVsaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkg ICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAkJCSAgICAgICBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCkBAIC0yNzUwLDcgKzI4MzIsNyBAQCBpbnQgaTkxNV9jcmVhdGVf ZmVuY2VfdGltZWxpbmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlyZXR1cm4gMDsKIH0KIAot dW5zaWduZWQgaTkxNV9mZW5jZV90aW1lbGluZV9nZXRfbmV4dF9zZXFubyhzdHJ1Y3QgaTkxNV9m ZW5jZV90aW1lbGluZSAqdGltZWxpbmUpCitzdGF0aWMgdW5zaWduZWQgaTkxNV9mZW5jZV90aW1l bGluZV9nZXRfbmV4dF9zZXFubyhzdHJ1Y3QgaTkxNV9mZW5jZV90aW1lbGluZSAqdGltZWxpbmUp CiB7CiAJdW5zaWduZWQgc2Vxbm87CiAKQEAgLTI3OTQsMTMgKzI4NzYsMTYgQEAgX19pOTE1X2dl bV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlpZiAocmV0 KQogCQlnb3RvIGVycjsKIAotCWtyZWZfaW5pdCgmcmVxLT5yZWYpOwogCXJlcS0+aTkxNSA9IGRl dl9wcml2OwogCXJlcS0+ZW5naW5lID0gZW5naW5lOwogCXJlcS0+cmVzZXRfY291bnRlciA9IHJl c2V0X2NvdW50ZXI7CiAJcmVxLT5jdHggID0gY3R4OwogCWk5MTVfZ2VtX2NvbnRleHRfcmVmZXJl bmNlKHJlcS0+Y3R4KTsKIAorCWZlbmNlX2luaXQoJnJlcS0+ZmVuY2UsICZpOTE1X2dlbV9yZXF1 ZXN0X2ZvcHMsICZlbmdpbmUtPmZlbmNlX2xvY2ssCisJCSAgIGN0eC0+ZW5naW5lW2VuZ2luZS0+ aWRdLmZlbmNlX3RpbWVsaW5lLmZlbmNlX2NvbnRleHQsCisJCSAgIGk5MTVfZmVuY2VfdGltZWxp bmVfZ2V0X25leHRfc2Vxbm8oJmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmZlbmNlX3RpbWVsaW5l KSk7CisKIAkvKgogCSAqIFJlc2VydmUgc3BhY2UgaW4gdGhlIHJpbmcgYnVmZmVyIGZvciBhbGwg dGhlIGNvbW1hbmRzIHJlcXVpcmVkIHRvCiAJICogZXZlbnR1YWxseSBlbWl0IHRoaXMgcmVxdWVz dC4gVGhpcyBpcyB0byBndWFyYW50ZWUgdGhhdCB0aGUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK aW5kZXggNWUxNWZiZS4uMTk5YWE2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTE5 NzUsNiArMTk3NSw3IEBAIGxvZ2ljYWxfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAllbmdpbmUtPmRldiA9IGRldjsKIAlJ TklUX0xJU1RfSEVBRCgmZW5naW5lLT5hY3RpdmVfbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJmVu Z2luZS0+cmVxdWVzdF9saXN0KTsKKwlzcGluX2xvY2tfaW5pdCgmZW5naW5lLT5mZW5jZV9sb2Nr KTsKIAlpOTE1X2dlbV9iYXRjaF9wb29sX2luaXQoZGV2LCAmZW5naW5lLT5iYXRjaF9wb29sKTsK IAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZlbmdpbmUtPmlycV9xdWV1ZSk7CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCA4ZjNlYjMwLi42NzFlNDljIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC0yMjg3LDYgKzIyODcsNyBAQCBz dGF0aWMgaW50IGludGVsX2luaXRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5yZXF1ZXN0X2xpc3QpOwogCUlOSVRfTElTVF9IRUFE KCZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKIAlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5idWZm ZXJzKTsKKwlzcGluX2xvY2tfaW5pdCgmZW5naW5lLT5mZW5jZV9sb2NrKTsKIAlpOTE1X2dlbV9i YXRjaF9wb29sX2luaXQoZGV2LCAmZW5naW5lLT5iYXRjaF9wb29sKTsKIAltZW1zZXQoZW5naW5l LT5zZW1hcGhvcmUuc3luY19zZXFubywgMCwKIAkgICAgICAgc2l6ZW9mKGVuZ2luZS0+c2VtYXBo b3JlLnN5bmNfc2Vxbm8pKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApp bmRleCA3MjNmZjYxLi41MTBlZDU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oCkBAIC0zNDUsNiArMzQ1LDggQEAgc3RydWN0ICBpbnRlbF9lbmdpbmVfY3MgewogCSAq IHRvIGVuY29kZSB0aGUgY29tbWFuZCBsZW5ndGggaW4gdGhlIGhlYWRlcikuCiAJICovCiAJdTMy ICgqZ2V0X2NtZF9sZW5ndGhfbWFzaykodTMyIGNtZF9oZWFkZXIpOworCisJc3BpbmxvY2tfdCBm ZW5jZV9sb2NrOwogfTsKIAogc3RhdGljIGlubGluZSBib29sCi0tIAoxLjkuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==