From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH v10 2/6] drm/i915: Convert requests to use struct fence Date: Thu, 16 Jun 2016 13:54:36 +0100 Message-ID: <1466081680-2344-3-git-send-email-John.C.Harrison@Intel.com> References: <1466081680-2344-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 CFAA26EA3C for ; Thu, 16 Jun 2016 12:54:46 +0000 (UTC) In-Reply-To: <1466081680-2344-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 bWVudHMgYnkgTWFhcnRlbiBMYW5raG9yc3QpLgoKdjEwOiBSZW1vdmVkIGR1cGxpY2F0ZSByY3Vf aGVhZCBmaWVsZCBmcm9tIHJlcXVlc3QgLSB0aGVyZSBpcyBhbHJlYWR5Cm9uZSBpbiB0aGUgZmVu Y2Ugc3RydWN0dXJlIGZvciB0aGlzIGV4YWN0IHB1cnBvc2UuIEltcHJvdmVkL2FkZGVkIHNvbWUK Y29tbWVudHMuIFtSZXZpZXcgY29tbWVudHMgZnJvbSBNYWFydGVuIExhbmtob3JzdCAmIFR2cnRr byBVcnN1bGluXQoKVXBkYXRlZCBmb3IgeWV0IG1vcmUgbmlnaHRseSBjaGFuZ2VzICh1NjQgZm9y IGZlbmNlIGNvbnRleHQpLgoKRm9yOiBWSVotNTE5MApTaWduZWQtb2ZmLWJ5OiBKb2huIEhhcnJp c29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRr by51cnN1bGluQGludGVsLmNvbT4KQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmto b3JzdEBsaW51eC5pbnRlbC5jb20+CkFjay1ieTogSmVzc2UgQmFybmVzIDxqYmFybmVzQHZpcnR1 b3VzZ2Vlay5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAg IHwgICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgNDIg KysrKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwg MTA3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYyAgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuaCB8ICAgNyArKysKIDYgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2VydGlvbnMoKyksIDM4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggZTRmMmM1NS4u N2FmYTI1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTc2NywxMSArNzY3 LDEyIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fcmVxdWVzdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqZGF0YSkKIAkJCXRhc2sgPSBOVUxMOwogCQkJaWYgKHJlcS0+cGlkKQogCQkJCXRh c2sgPSBwaWRfdGFzayhyZXEtPnBpZCwgUElEVFlQRV9QSUQpOwotCQkJc2VxX3ByaW50ZihtLCAi ICAgICV4IEAgJWQ6ICVzIFslZF1cbiIsCisJCQlzZXFfcHJpbnRmKG0sICIgICAgJXggQCAlZDog JXMgWyVkXSwgZmVuY2UgPSAlbGx4OiV4XG4iLAogCQkJCSAgIHJlcS0+c2Vxbm8sCiAJCQkJICAg KGludCkgKGppZmZpZXMgLSByZXEtPmVtaXR0ZWRfamlmZmllcyksCiAJCQkJICAgdGFzayA/IHRh c2stPmNvbW0gOiAiPHVua25vd24+IiwKLQkJCQkgICB0YXNrID8gdGFzay0+cGlkIDogLTEpOwor CQkJCSAgIHRhc2sgPyB0YXNrLT5waWQgOiAtMSwKKwkJCQkgICByZXEtPmZlbmNlLmNvbnRleHQs IHJlcS0+ZmVuY2Uuc2Vxbm8pOwogCQkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCX0KIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKaW5kZXggY2E2N2I0NS4uZGUzODk3YiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8bGludXgva3JlZi5oPgogI2luY2x1 ZGUgPGxpbnV4L3BtX3Fvcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CisjaW5jbHVk ZSA8bGludXgvZmVuY2UuaD4KIAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJt L2ludGVsLWd0dC5oPgpAQCAtMjM1MSw3ICsyMzUyLDEwIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0 IHNjYXR0ZXJsaXN0ICpfX3NnX25leHQoc3RydWN0IHNjYXR0ZXJsaXN0ICpzZykKICAqIGluaXRp YWwgcmVmZXJlbmNlIHRha2VuIHVzaW5nIGtyZWZfaW5pdAogICovCiBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgewotCXN0cnVjdCBrcmVmIHJlZjsKKwkvKioKKwkgKiBVbmRlcmx5aW5nIG9i amVjdCBmb3IgaW1wbGVtZW50aW5nIHRoZSBzaWduYWwvd2FpdCBzdHVmZi4KKwkgKi8KKwlzdHJ1 Y3QgZmVuY2UgZmVuY2U7CiAKIAkvKiogT24gV2hpY2ggcmluZyB0aGlzIHJlcXVlc3Qgd2FzIGdl bmVyYXRlZCAqLwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1OwpAQCAtMjQ1Myw3ICsy NDU3LDEzIEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCB7CiBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKiBfX211c3RfY2hlY2sKIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkgICAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKmN0eCk7Ci12b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1Y3Qga3JlZiAqcmVxX3Jl Zik7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKKwkJCQkJICAgICAgYm9vbCBsYXp5X2NvaGVy ZW5jeSkKK3sKKwlyZXR1cm4gZmVuY2VfaXNfc2lnbmFsZWQoJnJlcS0+ZmVuY2UpOworfQorCiBp bnQgaTkxNV9nZW1fcmVxdWVzdF9hZGRfdG9fY2xpZW50KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxLAogCQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7CiAKQEAgLTI0NzMsMTQg KzI0ODMsMTQgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgog aTkxNV9nZW1fcmVxdWVzdF9yZWZlcmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpCiB7CiAJaWYgKHJlcSkKLQkJa3JlZl9nZXQoJnJlcS0+cmVmKTsKKwkJZmVuY2VfZ2V0KCZy ZXEtPmZlbmNlKTsKIAlyZXR1cm4gcmVxOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKIGk5MTVf Z2VtX3JlcXVlc3RfdW5yZWZlcmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEp CiB7Ci0Ja3JlZl9wdXQoJnJlcS0+cmVmLCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUpOworCWZlbmNl X3B1dCgmcmVxLT5mZW5jZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9yZXF1 ZXN0X2Fzc2lnbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipwZHN0LApAQCAtMjQ5Niwx MiArMjUwNiw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbihz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipwZHN0LAogfQogCiAvKgotICogWFhYOiBpOTE1 X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZCBzaG91bGQgYmUgaGVyZSBidXQgY3VycmVudGx5IG5lZWRz IHRoZQotICogZGVmaW5pdGlvbiBvZiBpOTE1X3NlcW5vX3Bhc3NlZCgpIHdoaWNoIGlzIGJlbG93 LiBJdCB3aWxsIGJlIG1vdmVkIGluCi0gKiBhIGxhdGVyIHBhdGNoIHdoZW4gdGhlIGNhbGwgdG8g aTkxNV9zZXFub19wYXNzZWQoKSBpcyBvYnNvbGV0ZWQuLi4KLSAqLwotCi0vKgogICogQSBjb21t YW5kIHRoYXQgcmVxdWlyZXMgc3BlY2lhbCBoYW5kbGluZyBieSB0aGUgY29tbWFuZCBwYXJzZXIu CiAgKi8KIHN0cnVjdCBkcm1faTkxNV9jbWRfZGVzY3JpcHRvciB7CkBAIC0zMjE4LDI0ICszMjIy LDYgQEAgaTkxNV9zZXFub19wYXNzZWQodWludDMyX3Qgc2VxMSwgdWludDMyX3Qgc2VxMikKIAly ZXR1cm4gKGludDMyX3QpKHNlcTEgLSBzZXEyKSA+PSAwOwogfQogCi1zdGF0aWMgaW5saW5lIGJv b2wgaTkxNV9nZW1fcmVxdWVzdF9zdGFydGVkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLAotCQkJCQkgICBib29sIGxhenlfY29oZXJlbmN5KQotewotCWlmICghbGF6eV9jb2hlcmVu Y3kgJiYgcmVxLT5lbmdpbmUtPmlycV9zZXFub19iYXJyaWVyKQotCQlyZXEtPmVuZ2luZS0+aXJx X3NlcW5vX2JhcnJpZXIocmVxLT5lbmdpbmUpOwotCXJldHVybiBpOTE1X3NlcW5vX3Bhc3NlZChy ZXEtPmVuZ2luZS0+Z2V0X3NlcW5vKHJlcS0+ZW5naW5lKSwKLQkJCQkgcmVxLT5wcmV2aW91c19z ZXFubyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRl ZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKLQkJCQkJICAgICAgYm9vbCBsYXp5 X2NvaGVyZW5jeSkKLXsKLQlpZiAoIWxhenlfY29oZXJlbmN5ICYmIHJlcS0+ZW5naW5lLT5pcnFf c2Vxbm9fYmFycmllcikKLQkJcmVxLT5lbmdpbmUtPmlycV9zZXFub19iYXJyaWVyKHJlcS0+ZW5n aW5lKTsKLQlyZXR1cm4gaTkxNV9zZXFub19wYXNzZWQocmVxLT5lbmdpbmUtPmdldF9zZXFubyhy ZXEtPmVuZ2luZSksCi0JCQkJIHJlcS0+c2Vxbm8pOwotfQotCiBpbnQgX19tdXN0X2NoZWNrIGk5 MTVfZ2VtX2dldF9zZXFubyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiAq c2Vxbm8pOwogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9zZXRfc2Vxbm8oc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdTMyIHNlcW5vKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggYTNm ZGNmOS4uODUzZjg0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0xMTgzLDYgKzExODMs NyBAQCBzdGF0aWMgaW50IF9faTkxNV9zcGluX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEsIGludCBzdGF0ZSkKIHsKIAl1bnNpZ25lZCBsb25nIHRpbWVvdXQ7CiAJdW5z aWduZWQgY3B1OworCXVpbnQzMl90IHNlcW5vOwogCiAJLyogV2hlbiB3YWl0aW5nIGZvciBoaWdo IGZyZXF1ZW5jeSByZXF1ZXN0cywgZS5nLiBkdXJpbmcgc3luY2hyb25vdXMKIAkgKiByZW5kZXJp bmcgc3BsaXQgYmV0d2VlbiB0aGUgQ1BVIGFuZCBHUFUsIHRoZSBmaW5pdGUgYW1vdW50IG9mIHRp bWUKQEAgLTExOTgsMTIgKzExOTksMTQgQEAgc3RhdGljIGludCBfX2k5MTVfc3Bpbl9yZXF1ZXN0 KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgc3RhdGUpCiAJCXJldHVybiAt RUJVU1k7CiAKIAkvKiBPbmx5IHNwaW4gaWYgd2Uga25vdyB0aGUgR1BVIGlzIHByb2Nlc3Npbmcg dGhpcyByZXF1ZXN0ICovCi0JaWYgKCFpOTE1X2dlbV9yZXF1ZXN0X3N0YXJ0ZWQocmVxLCB0cnVl KSkKKwlzZXFubyA9IHJlcS0+ZW5naW5lLT5nZXRfc2Vxbm8ocmVxLT5lbmdpbmUpOworCWlmICgh aTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHJlcS0+cHJldmlvdXNfc2Vxbm8pKQogCQlyZXR1cm4g LUVBR0FJTjsKIAogCXRpbWVvdXQgPSBsb2NhbF9jbG9ja191cygmY3B1KSArIDU7CiAJd2hpbGUg KCFuZWVkX3Jlc2NoZWQoKSkgewotCQlpZiAoaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQocmVx LCB0cnVlKSkKKwkJc2Vxbm8gPSByZXEtPmVuZ2luZS0+Z2V0X3NlcW5vKHJlcS0+ZW5naW5lKTsK KwkJaWYgKGk5MTVfc2Vxbm9fcGFzc2VkKHNlcW5vLCByZXEtPnNlcW5vKSkKIAkJCXJldHVybiAw OwogCiAJCWlmIChzaWduYWxfcGVuZGluZ19zdGF0ZShzdGF0ZSwgY3VycmVudCkpCkBAIC0xMjE1 LDcgKzEyMTgsMTAgQEAgc3RhdGljIGludCBfX2k5MTVfc3Bpbl9yZXF1ZXN0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgc3RhdGUpCiAJCWNwdV9yZWxheF9sb3dsYXRlbmN5 KCk7CiAJfQogCi0JaWYgKGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJlcSwgZmFsc2UpKQor CWlmIChyZXEtPmVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIpCisJCXJlcS0+ZW5naW5lLT5pcnFf c2Vxbm9fYmFycmllcihyZXEtPmVuZ2luZSk7CisJc2Vxbm8gPSByZXEtPmVuZ2luZS0+Z2V0X3Nl cW5vKHJlcS0+ZW5naW5lKTsKKwlpZiAoaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIHJlcS0+c2Vx bm8pKQogCQlyZXR1cm4gMDsKIAogCXJldHVybiAtRUFHQUlOOwpAQCAtMjc2NSwxMyArMjc3MSw5 NSBAQCBzdGF0aWMgdm9pZCBpOTE1X3NldF9yZXNldF9zdGF0dXMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCX0KIH0KIAotdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3Ry dWN0IGtyZWYgKnJlcV9yZWYpCitzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWVfcmN1 KHN0cnVjdCByY3VfaGVhZCAqZmVuY2VfcmN1KQogewotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxID0gY29udGFpbmVyX29mKHJlcV9yZWYsCi0JCQkJCQkgdHlwZW9mKCpyZXEpLCBy ZWYpOworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOworCXN0cnVjdCBmZW5jZSAq cmVxX2ZlbmNlOworCisJcmVxX2ZlbmNlID0gY29udGFpbmVyX29mKGZlbmNlX3JjdSwgdHlwZW9m KCpyZXFfZmVuY2UpLCByY3UpOworCXJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsIHR5cGVv ZigqcmVxKSwgZmVuY2UpOwogCWttZW1fY2FjaGVfZnJlZShyZXEtPmk5MTUtPnJlcXVlc3RzLCBy ZXEpOwogfQogCitzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0IGZlbmNl ICpyZXFfZmVuY2UpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisKKwly ZXEgPSBjb250YWluZXJfb2YocmVxX2ZlbmNlLCB0eXBlb2YoKnJlcSksIGZlbmNlKTsKKwljYWxs X3JjdSgmcmVxLT5mZW5jZS5yY3UsIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZV9yY3UpOworfQorCitz dGF0aWMgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNl ICpyZXFfZmVuY2UpCit7CisJLyogSW50ZXJydXB0IGRyaXZlbiBmZW5jZXMgYXJlIG5vdCBpbXBs ZW1lbnRlZCB5ZXQuKi8KKwlXQVJOKHRydWUsICJUaGlzIHNob3VsZCBub3QgYmUgY2FsbGVkISIp OworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2lzX2Nv bXBsZXRlZChzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsCisJCQkJCQkgdHlwZW9mKCpy ZXEpLCBmZW5jZSk7CisJdTMyIHNlcW5vOworCisJc2Vxbm8gPSByZXEtPmVuZ2luZS0+Z2V0X3Nl cW5vKHJlcS0+ZW5naW5lKTsKKworCXJldHVybiBpOTE1X3NlcW5vX3Bhc3NlZChzZXFubywgcmVx LT5zZXFubyk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICppOTE1X2dlbV9yZXF1ZXN0X2dldF9k cml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKK3sKKwlyZXR1cm4gImk5MTUiOwor fQorCitzdGF0aWMgY29uc3QgY2hhciAqaTkxNV9nZW1fcmVxdWVzdF9nZXRfdGltZWxpbmVfbmFt ZShzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcTsKKwlzdHJ1Y3QgaTkxNV9mZW5jZV90aW1lbGluZSAqdGltZWxpbmU7CisKKwlyZXEg PSBjb250YWluZXJfb2YocmVxX2ZlbmNlLCB0eXBlb2YoKnJlcSksIGZlbmNlKTsKKwl0aW1lbGlu ZSA9ICZyZXEtPmN0eC0+ZW5naW5lW3JlcS0+ZW5naW5lLT5pZF0uZmVuY2VfdGltZWxpbmU7CisK KwlyZXR1cm4gdGltZWxpbmUtPm5hbWU7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVl c3RfdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlLAorCQkJCQkJY2hh ciAqc3RyLCBpbnQgc2l6ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsK KworCXJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsIHR5cGVvZigqcmVxKSwgZmVuY2UpOwor CisJLyoKKwkgKiBUT0RPOiBJbmNsdWRlIHRoZSBsYXN0IHNpZ25hbGxlZCB0aW1lbGluZSB2YWx1 ZSBzb21laG93PworCSAqIEZvciBub3cganVzdCByZXBvcnQgdGhlIGhhcmR3YXJlIHNlcW5vIHZh bHVlIGFzIHRoYXQgY2FuCisJICogYXQgbGVhc3QgYmUgbWF0Y2hlZCB0byB0aGUgZXF1aXZhbGVu dCBpbiB0aGUgcmVxdWVzdCBpZgorCSAqIG5vdCB0aGUgZmVuY2UncyBzZXFuby4KKwkgKi8KKwlz bnByaW50ZihzdHIsIHNpemUsICI/IFslZF0iLCByZXEtPmVuZ2luZS0+Z2V0X3NlcW5vKHJlcS0+ ZW5naW5lKSk7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZmVuY2VfdmFsdWVf c3RyKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlLAorCQkJCQkgICAgIGNoYXIgKnN0ciwgaW50IHNp emUpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisKKwlyZXEgPSBjb250 YWluZXJfb2YocmVxX2ZlbmNlLCB0eXBlb2YoKnJlcSksIGZlbmNlKTsKKworCXNucHJpbnRmKHN0 ciwgc2l6ZSwgIiVkIFslZF0iLCByZXEtPmZlbmNlLnNlcW5vLCByZXEtPnNlcW5vKTsKK30KKwor c3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgaTkxNV9nZW1fcmVxdWVzdF9mb3BzID0gewor CS5lbmFibGVfc2lnbmFsaW5nCT0gaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfc2lnbmFsaW5nLAor CS5zaWduYWxlZAkJPSBpOTE1X2dlbV9yZXF1ZXN0X2lzX2NvbXBsZXRlZCwKKwkud2FpdAkJCT0g ZmVuY2VfZGVmYXVsdF93YWl0LAorCS5yZWxlYXNlCQk9IGk5MTVfZ2VtX3JlcXVlc3RfZnJlZSwK KwkuZ2V0X2RyaXZlcl9uYW1lCT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfZHJpdmVyX25hbWUsCisJ LmdldF90aW1lbGluZV9uYW1lCT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfdGltZWxpbmVfbmFtZSwK KwkuZmVuY2VfdmFsdWVfc3RyCT0gaTkxNV9nZW1fcmVxdWVzdF9mZW5jZV92YWx1ZV9zdHIsCisJ LnRpbWVsaW5lX3ZhbHVlX3N0cgk9IGk5MTVfZ2VtX3JlcXVlc3RfdGltZWxpbmVfdmFsdWVfc3Ry LAorfTsKKwogaW50IGk5MTVfY3JlYXRlX2ZlbmNlX3RpbWVsaW5lKHN0cnVjdCBpOTE1X2dlbV9j b250ZXh0ICpjdHgsCiAJCQkgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQog ewpAQCAtMjc5NSw3ICsyODgzLDcgQEAgaW50IGk5MTVfY3JlYXRlX2ZlbmNlX3RpbWVsaW5lKHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJcmV0dXJuIDA7CiB9CiAKLXVuc2lnbmVkIGk5 MTVfZmVuY2VfdGltZWxpbmVfZ2V0X25leHRfc2Vxbm8oc3RydWN0IGk5MTVfZmVuY2VfdGltZWxp bmUgKnRpbWVsaW5lKQorc3RhdGljIHVuc2lnbmVkIGk5MTVfZmVuY2VfdGltZWxpbmVfZ2V0X25l eHRfc2Vxbm8oc3RydWN0IGk5MTVfZmVuY2VfdGltZWxpbmUgKnRpbWVsaW5lKQogewogCXVuc2ln bmVkIHNlcW5vOwogCkBAIC0yODM5LDEzICsyOTI3LDE2IEBAIF9faTkxNV9nZW1fcmVxdWVzdF9h bGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJaWYgKHJldCkKIAkJZ290byBl cnI7CiAKLQlrcmVmX2luaXQoJnJlcS0+cmVmKTsKIAlyZXEtPmk5MTUgPSBkZXZfcHJpdjsKIAly ZXEtPmVuZ2luZSA9IGVuZ2luZTsKIAlyZXEtPnJlc2V0X2NvdW50ZXIgPSByZXNldF9jb3VudGVy OwogCXJlcS0+Y3R4ICA9IGN0eDsKIAlpOTE1X2dlbV9jb250ZXh0X3JlZmVyZW5jZShyZXEtPmN0 eCk7CiAKKwlmZW5jZV9pbml0KCZyZXEtPmZlbmNlLCAmaTkxNV9nZW1fcmVxdWVzdF9mb3BzLCAm ZW5naW5lLT5mZW5jZV9sb2NrLAorCQkgICBjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5mZW5jZV90 aW1lbGluZS5mZW5jZV9jb250ZXh0LAorCQkgICBpOTE1X2ZlbmNlX3RpbWVsaW5lX2dldF9uZXh0 X3NlcW5vKCZjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5mZW5jZV90aW1lbGluZSkpOworCiAJLyoK IAkgKiBSZXNlcnZlIHNwYWNlIGluIHRoZSByaW5nIGJ1ZmZlciBmb3IgYWxsIHRoZSBjb21tYW5k cyByZXF1aXJlZCB0bwogCSAqIGV2ZW50dWFsbHkgZW1pdCB0aGlzIHJlcXVlc3QuIFRoaXMgaXMg dG8gZ3VhcmFudGVlIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IGRlZGIz ZjguLmI1OWVmMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0yMDczLDYgKzIwNzMs NyBAQCBsb2dpY2FsX3Jpbmdfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBpbnRl bF9lbmdpbmVfaWQgaWQpCiAJSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+YnVmZmVycyk7CiAJSU5J VF9MSVNUX0hFQUQoJmVuZ2luZS0+ZXhlY2xpc3RfcXVldWUpOwogCXNwaW5fbG9ja19pbml0KCZl bmdpbmUtPmV4ZWNsaXN0X2xvY2spOworCXNwaW5fbG9ja19pbml0KCZlbmdpbmUtPmZlbmNlX2xv Y2spOwogCiAJdGFza2xldF9pbml0KCZlbmdpbmUtPmlycV90YXNrbGV0LAogCQkgICAgIGludGVs X2xyY19pcnFfaGFuZGxlciwgKHVuc2lnbmVkIGxvbmcpZW5naW5lKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCBjZjhkMGJmLi5kZjM2ZGE3IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC0yMzI2LDYgKzIzMjYsNyBAQCBzdGF0 aWMgaW50IGludGVsX2luaXRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlJ TklUX0xJU1RfSEVBRCgmZW5naW5lLT5yZXF1ZXN0X2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZl bmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKIAlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5idWZmZXJz KTsKKwlzcGluX2xvY2tfaW5pdCgmZW5naW5lLT5mZW5jZV9sb2NrKTsKIAlpOTE1X2dlbV9iYXRj aF9wb29sX2luaXQoZGV2LCAmZW5naW5lLT5iYXRjaF9wb29sKTsKIAltZW1zZXQoZW5naW5lLT5z ZW1hcGhvcmUuc3luY19zZXFubywgMCwKIAkgICAgICAgc2l6ZW9mKGVuZ2luZS0+c2VtYXBob3Jl LnN5bmNfc2Vxbm8pKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRl eCBiMzNjODc2Li4wMWYzZGY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oCkBAIC0zNDUsNiArMzQ1LDEzIEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgewogCSAqIHRv IGVuY29kZSB0aGUgY29tbWFuZCBsZW5ndGggaW4gdGhlIGhlYWRlcikuCiAJICovCiAJdTMyICgq Z2V0X2NtZF9sZW5ndGhfbWFzaykodTMyIGNtZF9oZWFkZXIpOworCisJLyoKKwkgKiBUaGlzIHNw aW5sb2NrIGlzIHVzZWQgYnkgdGhlIGZlbmNlIGltcGxlbWVudGF0aW9uIGludGVybmFsbHkuIE5v dGUsCisJICogaXQgY2FuIGJlIGFjcXVpcmUgZnJvbSBpbnRlcnJ1cHQgY29udGV4dCBzbyBhbGwg dXNhZ2UgbXVzdCBiZSBJUlEKKwkgKiBzYWZlLgorCSAqLworCXNwaW5sb2NrX3QgZmVuY2VfbG9j azsKIH07CiAKIHN0YXRpYyBpbmxpbmUgYm9vbAotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=