From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 15/18] drm/i915: Reserve space in the global seqno during request allocation Date: Wed, 14 Sep 2016 07:52:47 +0100 Message-ID: <20160914065250.15482-16-chris@chris-wilson.co.uk> References: <20160914065250.15482-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id DE9396E74E for ; Wed, 14 Sep 2016 06:53:16 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id c131so1018134wmh.2 for ; Tue, 13 Sep 2016 23:53:16 -0700 (PDT) In-Reply-To: <20160914065250.15482-1-chris@chris-wilson.co.uk> 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 QSByZXN0cmljdGlvbiBvbiBvdXIgZ2xvYmFsIHNlcW5vIGlzIHRoYXQgdGhleSBjYW5ub3Qgd3Jh cCwgYW5kIHRoYXQgd2UKY2Fubm90IHVzZSB0aGUgdmFsdWUgMC4gVGhpcyBhbGxvd3MgdXMgdG8g ZGV0ZWN0IHdoZW4gYSByZXF1ZXN0IGhhcyBub3QKeWV0IGJlZW4gc3VibWl0dGVkLCBpdHMgZ2xv YmFsIHNlcW5vIGlzIHN0aWxsIDAsIGFuZCBlbnN1cmVzIHRoYXQKaGFyZHdhcmUgc2VtYXBob3Jl cyBhcmUgbW9ub3RvbmljIGFzIHJlcXVpcmVkIGJ5IG9sZGVyIGhhcmR3YXJlLiBUbwptZWV0IHRo ZXNlIHJlc3RyaWN0aW9ucyB3aGVuIHdlIGRlZmVyIHRoZSBhc3NpZ25tZW50IG9mIHRoZSBnbG9i YWwKc2Vxbm8sIHdlIG11c3QgY2hlY2sgdGhhdCB3ZSBoYXZlIGFuIGF2YWlsYWJsZSBzbG90IGlu IHRoZSBnbG9iYWwgc2Vxbm8Kc3BhY2UgZHVyaW5nIHJlcXVlc3QgY29uc3RydWN0aW9uLiBJZiB0 aGF0IHRlc3QgZmFpbHMsIHdlIHdhaXQgZm9yIGFsbApyZXF1ZXN0cyB0byBiZSBjb21wbGV0ZWQg YW5kIHJlc2V0IHRoZSBoYXJkd2FyZSBiYWNrIHRvIDAuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYyAgICAgIHwgMTAgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YyAgICAgICAgICB8ICA2ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVz dC5jICB8IDc0ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV90aW1lbGluZS5oIHwgIDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgNDQg aW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwppbmRleCBmN2M1ZTA5MTIyYWIuLmQyMzA0N2JiMmZlOSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKQEAgLTU1Nyw3ICs1NTcsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3Bh Z2VmbGlwX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCQkJCXNlcV9wcmlu dGYobSwgIkZsaXAgcXVldWVkIG9uICVzIGF0IHNlcW5vICV4LCBuZXh0IHNlcW5vICV4IFtjdXJy ZW50IGJyZWFkY3J1bWIgJXhdLCBjb21wbGV0ZWQ/ICVkXG4iLAogCQkJCQkgICBlbmdpbmUtPm5h bWUsCiAJCQkJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHdvcmstPmZsaXBfcXVldWVk X3JlcSksCi0JCQkJCSAgIGRldl9wcml2LT5ndC5nbG9iYWxfdGltZWxpbmUubmV4dF9zZXFubywK KwkJCQkJICAgYXRvbWljX3JlYWQoJmRldl9wcml2LT5ndC5nbG9iYWxfdGltZWxpbmUubmV4dF9z ZXFubyksCiAJCQkJCSAgIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKSwKIAkJCQkJICAg aTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQod29yay0+ZmxpcF9xdWV1ZWRfcmVxKSk7CiAJCQl9 IGVsc2UKQEAgLTEwMjksNyArMTAyOSw3IEBAIGk5MTVfbmV4dF9zZXFub19nZXQodm9pZCAqZGF0 YSwgdTY0ICp2YWwpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGF0 YTsKIAotCSp2YWwgPSBkZXZfcHJpdi0+Z3QuZ2xvYmFsX3RpbWVsaW5lLm5leHRfc2Vxbm87CisJ KnZhbCA9IGF0b21pY19yZWFkKCZkZXZfcHJpdi0+Z3QuZ2xvYmFsX3RpbWVsaW5lLm5leHRfc2Vx bm8pOwogCXJldHVybiAwOwogfQogCkBAIC0yMzA0LDggKzIzMDQsOCBAQCBzdGF0aWMgaW50IGk5 MTVfcnBzX2Jvb3N0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCXN0cnVj dCBkcm1fZmlsZSAqZmlsZTsKIAogCXNlcV9wcmludGYobSwgIlJQUyBlbmFibGVkPyAlZFxuIiwg ZGV2X3ByaXYtPnJwcy5lbmFibGVkKTsKLQlzZXFfcHJpbnRmKG0sICJHUFUgYnVzeT8gJXMgWyV4 XVxuIiwKLQkJICAgeWVzbm8oZGV2X3ByaXYtPmd0LmF3YWtlKSwgZGV2X3ByaXYtPmd0LmFjdGl2 ZV9lbmdpbmVzKTsKKwlzZXFfcHJpbnRmKG0sICJHUFUgYnVzeT8gJXMgWyVkIHJlcXVlc3RzXVxu IiwKKwkJICAgeWVzbm8oZGV2X3ByaXYtPmd0LmF3YWtlKSwgZGV2X3ByaXYtPmd0LmFjdGl2ZV9y ZXF1ZXN0cyk7CiAJc2VxX3ByaW50ZihtLCAiQ1BVIHdhaXRpbmc/ICVkXG4iLCBjb3VudF9pcnFf d2FpdGVycyhkZXZfcHJpdikpOwogCXNlcV9wcmludGYobSwgIkZyZXF1ZW5jeSByZXF1ZXN0ZWQg JWRcbiIsCiAJCSAgIGludGVsX2dwdV9mcmVxKGRldl9wcml2LCBkZXZfcHJpdi0+cnBzLmN1cl9m cmVxKSk7CkBAIC0yMzQwLDcgKzIzNDAsNyBAQCBzdGF0aWMgaW50IGk5MTVfcnBzX2Jvb3N0X2lu Zm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCiAJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gNiAmJgogCSAgICBkZXZfcHJpdi0+cnBzLmVuYWJsZWQgJiYKLQkgICAgZGV2X3By aXYtPmd0LmFjdGl2ZV9lbmdpbmVzKSB7CisJICAgIGRldl9wcml2LT5ndC5hY3RpdmVfcmVxdWVz dHMpIHsKIAkJdTMyIHJwdXAsIHJwdXBlaTsKIAkJdTMyIHJwZG93biwgcnBkb3duZWk7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGNjNWZhNTkzZTRjNC4uNDVmZDIwYWYwYzZkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTIwNDgsNiArMjA0OCw3IEBAIHN0cnVjdCBkcm1faTkx NV9wcml2YXRlIHsKIAogCQlzdHJ1Y3QgbGlzdF9oZWFkIHRpbWVsaW5lczsKIAkJc3RydWN0IGk5 MTVfZ2VtX3RpbWVsaW5lIGdsb2JhbF90aW1lbGluZTsKKwkJdTMyIGFjdGl2ZV9yZXF1ZXN0czsK IAogCQkvKioKIAkJICogSXMgdGhlIEdQVSBjdXJyZW50bHkgY29uc2lkZXJlZCBpZGxlLCBvciBi dXN5IGV4ZWN1dGluZwpAQCAtMjA1Niw3ICsyMDU3LDYgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgewogCQkgKiBJbiBvcmRlciB0byByZWR1Y2UgdGhlIGVmZmVjdCBvbiBwZXJmb3JtYW5jZSwg dGhlcmUKIAkJICogaXMgYSBzbGlnaHQgZGVsYXkgYmVmb3JlIHdlIGRvIHNvLgogCQkgKi8KLQkJ dW5zaWduZWQgaW50IGFjdGl2ZV9lbmdpbmVzOwogCQlib29sIGF3YWtlOwogCiAJCS8qKgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggNzZkNmZjMTQ2YWRmLi5jZDlkM2EyZjcyZTcgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMjcxNCw4ICsyNzE0LDYgQEAgc3RhdGljIHZvaWQgaTkx NV9nZW1fY2xlYW51cF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlt ZW1zZXQoZW5naW5lLT5leGVjbGlzdF9wb3J0LCAwLCBzaXplb2YoZW5naW5lLT5leGVjbGlzdF9w b3J0KSk7CiAJCXNwaW5fdW5sb2NrKCZlbmdpbmUtPmV4ZWNsaXN0X2xvY2spOwogCX0KLQotCWVu Z2luZS0+aTkxNS0+Z3QuYWN0aXZlX2VuZ2luZXMgJj0gfmludGVsX2VuZ2luZV9mbGFnKGVuZ2lu ZSk7CiB9CiAKIHZvaWQgaTkxNV9nZW1fc2V0X3dlZGdlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCkBAIC0yNzcwLDcgKzI3NjgsNyBAQCBpOTE1X2dlbV9pZGxlX3dvcmtfaGFu ZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJaWYgKCFSRUFEX09OQ0UoZGV2X3ByaXYt Pmd0LmF3YWtlKSkKIAkJcmV0dXJuOwogCi0JaWYgKFJFQURfT05DRShkZXZfcHJpdi0+Z3QuYWN0 aXZlX2VuZ2luZXMpKQorCWlmIChSRUFEX09OQ0UoZGV2X3ByaXYtPmd0LmFjdGl2ZV9yZXF1ZXN0 cykpCiAJCXJldHVybjsKIAogCXJlYXJtX2hhbmdjaGVjayA9CkBAIC0yNzg0LDcgKzI3ODIsNyBA QCBpOTE1X2dlbV9pZGxlX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJ CWdvdG8gb3V0X3JlYXJtOwogCX0KIAotCWlmIChkZXZfcHJpdi0+Z3QuYWN0aXZlX2VuZ2luZXMp CisJaWYgKGRldl9wcml2LT5ndC5hY3RpdmVfcmVxdWVzdHMpCiAJCWdvdG8gb3V0X3VubG9jazsK IAogCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fcmVxdWVzdC5jCmluZGV4IDc0ZTFhODc1OTg4Yy4uYmQ4NGJiNzU3ZTM5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCkBAIC0xNTYsNiArMTU2LDcgQEAg c3RhdGljIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXF1ZXN0KQogCSAqLwogCWxpc3RfZGVsKCZyZXF1ZXN0LT5yaW5nX2xpbmspOwog CXJlcXVlc3QtPnJpbmctPmxhc3RfcmV0aXJlZF9oZWFkID0gcmVxdWVzdC0+cG9zdGZpeDsKKwly ZXF1ZXN0LT5pOTE1LT5ndC5hY3RpdmVfcmVxdWVzdHMtLTsKIAogCS8qIFdhbGsgdGhyb3VnaCB0 aGUgYWN0aXZlIGxpc3QsIGNhbGxpbmcgcmV0aXJlIG9uIGVhY2guIFRoaXMgYWxsb3dzCiAJICog b2JqZWN0cyB0byB0cmFjayB0aGVpciBHUFUgYWN0aXZpdHkgYW5kIG1hcmsgdGhlbXNlbHZlcyBh cyBpZGxlCkBAIC0yNTMsNyArMjU0LDcgQEAgc3RhdGljIGludCBpOTE1X2dlbV9pbml0X2dsb2Jh bF9zZXFubyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAkvKiBJZiB0aGUg c2Vxbm8gd3JhcHMgYXJvdW5kLCB3ZSBuZWVkIHRvIGNsZWFyIHRoZSBicmVhZGNydW1iIHJidHJl ZSAqLwogCWlmICghaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sCi0JCQkgICAgICAgZGV2X3ByaXYt Pmd0Lmdsb2JhbF90aW1lbGluZS5uZXh0X3NlcW5vKSkgeworCQkJICAgICAgIGF0b21pY19yZWFk KCZkZXZfcHJpdi0+Z3QuZ2xvYmFsX3RpbWVsaW5lLm5leHRfc2Vxbm8pKSkgewogCQl3aGlsZSAo aW50ZWxfa2lja193YWl0ZXJzKGRldl9wcml2KSB8fAogCQkgICAgICAgaW50ZWxfa2lja19zaWdu YWxlcnMoZGV2X3ByaXYpKQogCQkJeWllbGQoKTsKQEAgLTI2OSwxMyArMjcwLDEzIEBAIHN0YXRp YyBpbnQgaTkxNV9nZW1faW5pdF9nbG9iYWxfc2Vxbm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCQkJICAgICAgIHNpemVvZih0bC0+ZW5naW5lW2ldLnN5bmNfc2Vxbm8pKTsK IAl9CiAKKwlhdG9taWNfc2V0KCZkZXZfcHJpdi0+Z3QuZ2xvYmFsX3RpbWVsaW5lLm5leHRfc2Vx bm8sIHNlcW5vKTsKIAlyZXR1cm4gMDsKIH0KIAogaW50IGk5MTVfZ2VtX3NldF9nbG9iYWxfc2Vx bm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHNlcW5vKQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlpbnQgcmV0OwogCiAJaWYgKHNl cW5vID09IDApCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMjgzLDM0ICsyODQsMzIgQEAgaW50IGk5 MTVfZ2VtX3NldF9nbG9iYWxfc2Vxbm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHNlcW5v KQogCS8qIEhXUyBwYWdlIG5lZWRzIHRvIGJlIHNldCBsZXNzIHRoYW4gd2hhdCB3ZQogCSAqIHdp bGwgaW5qZWN0IHRvIHJpbmcKIAkgKi8KLQlyZXQgPSBpOTE1X2dlbV9pbml0X2dsb2JhbF9zZXFu byhkZXZfcHJpdiwgc2Vxbm8gLSAxKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JZGV2 X3ByaXYtPmd0Lmdsb2JhbF90aW1lbGluZS5uZXh0X3NlcW5vID0gc2Vxbm87Ci0JcmV0dXJuIDA7 CisJcmV0dXJuIGk5MTVfZ2VtX2luaXRfZ2xvYmFsX3NlcW5vKGRldl9wcml2LCBzZXFubyAtIDEp OwogfQogCi1zdGF0aWMgaW50IGk5MTVfZ2VtX2dldF9nbG9iYWxfc2Vxbm8oc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCSAgICAgdTMyICpzZXFubykKK3N0YXRpYyBpbnQg cmVzZXJ2ZV9nbG9iYWxfc2Vxbm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0J c3RydWN0IGk5MTVfZ2VtX3RpbWVsaW5lICp0bCA9ICZkZXZfcHJpdi0+Z3QuZ2xvYmFsX3RpbWVs aW5lOworCXN0cnVjdCBpOTE1X2dlbV90aW1lbGluZSAqdGwgPSAmaTkxNS0+Z3QuZ2xvYmFsX3Rp bWVsaW5lOworCXUzMiBuZXh0X3NlcW5vID0gYXRvbWljX3JlYWQoJnRsLT5uZXh0X3NlcW5vKTsK IAotCS8qIHJlc2VydmUgMCBmb3Igbm9uLXNlcW5vICovCi0JaWYgKHVubGlrZWx5KHRsLT5uZXh0 X3NlcW5vID09IDApKSB7CisJaWYgKHVubGlrZWx5KG5leHRfc2Vxbm8gKyArK2k5MTUtPmd0LmFj dGl2ZV9yZXF1ZXN0cyA8PSBuZXh0X3NlcW5vKSkgewogCQlpbnQgcmV0OwogCi0JCXJldCA9IGk5 MTVfZ2VtX2luaXRfZ2xvYmFsX3NlcW5vKGRldl9wcml2LCAwKTsKLQkJaWYgKHJldCkKKwkJcmV0 ID0gaTkxNV9nZW1faW5pdF9nbG9iYWxfc2Vxbm8oaTkxNSwgMCk7CisJCWlmIChyZXQpIHsKKwkJ CWk5MTUtPmd0LmFjdGl2ZV9yZXF1ZXN0cy0tOwogCQkJcmV0dXJuIHJldDsKLQotCQl0bC0+bmV4 dF9zZXFubyA9IDE7CisJCX0KIAl9CiAKLQkqc2Vxbm8gPSB0bC0+bmV4dF9zZXFubysrOwogCXJl dHVybiAwOwogfQogCitzdGF0aWMgdTMyIHRpbWVsaW5lX2dldF9zZXFubyhzdHJ1Y3QgaTkxNV9n ZW1fdGltZWxpbmUgKnRsKQoreworCXJldHVybiBhdG9taWNfaW5jX3JldHVybigmdGwtPm5leHRf c2Vxbm8pOworfQorCiBzdGF0aWMgaW50IF9faTkxNV9zd19mZW5jZV9jYWxsCiBzdWJtaXRfbm90 aWZ5KHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwgZW51bSBpOTE1X3N3X2ZlbmNlX25vdGlm eSBzdGF0ZSkKIHsKQEAgLTM0OSw3ICszNDgsNiBAQCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXE7Ci0JdTMyIHNlcW5vOwogCWludCByZXQ7CiAKIAkvKiBBQkk6IEJlZm9yZSB1c2Vyc3Bh Y2UgYWNjZXNzZXMgdGhlIEdQVSAoZS5nLiBleGVjYnVmZmVyKSwgcmVwb3J0CkBAIC0zNjAsNiAr MzU4LDEwIEBAIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLAogCWlmIChyZXQpCiAJCXJldHVybiBFUlJfUFRSKHJldCk7CiAKKwlyZXQgPSByZXNl cnZlX2dsb2JhbF9zZXFubyhkZXZfcHJpdik7CisJaWYgKHJldCkKKwkJcmV0dXJuIEVSUl9QVFIo cmV0KTsKKwogCS8qIE1vdmUgdGhlIG9sZGVzdCByZXF1ZXN0IHRvIHRoZSBzbGFiLWNhY2hlIChp ZiBub3QgaW4gdXNlISkgKi8KIAlyZXEgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmVuZ2lu ZS0+dGltZWxpbmUtPnJlcXVlc3RzLAogCQkJCSAgICAgICB0eXBlb2YoKnJlcSksIGxpbmspOwpA QCAtMzk1LDEyICszOTcsMTAgQEAgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsCiAJICogRG8gbm90IHVzZSBrbWVtX2NhY2hlX3phbGxvYygpIGhl cmUhCiAJICovCiAJcmVxID0ga21lbV9jYWNoZV9hbGxvYyhkZXZfcHJpdi0+cmVxdWVzdHMsIEdG UF9LRVJORUwpOwotCWlmICghcmVxKQotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQotCXJl dCA9IGk5MTVfZ2VtX2dldF9nbG9iYWxfc2Vxbm8oZGV2X3ByaXYsICZzZXFubyk7Ci0JaWYgKHJl dCkKLQkJZ290byBlcnI7CisJaWYgKCFyZXEpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBl cnJfdW5yZXNlcnZlOworCX0KIAogCXJlcS0+dGltZWxpbmUgPSBlbmdpbmUtPnRpbWVsaW5lOwog CkBAIC00MDksMTQgKzQwOSwxNCBAQCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJICAgJmk5MTVfZmVuY2Vfb3BzLAogCQkgICAmcmVxLT5s b2NrLAogCQkgICByZXEtPnRpbWVsaW5lLT5mZW5jZV9jb250ZXh0LAotCQkgICBzZXFubyk7CisJ CSAgIHRpbWVsaW5lX2dldF9zZXFubyhyZXEtPnRpbWVsaW5lLT5jb21tb24pKTsKIAogCWk5MTVf c3dfZmVuY2VfaW5pdCgmcmVxLT5zdWJtaXQsIHN1Ym1pdF9ub3RpZnkpOwogCiAJSU5JVF9MSVNU X0hFQUQoJnJlcS0+YWN0aXZlX2xpc3QpOwogCXJlcS0+aTkxNSA9IGRldl9wcml2OwogCXJlcS0+ ZW5naW5lID0gZW5naW5lOwotCXJlcS0+Z2xvYmFsX3NlcW5vID0gc2Vxbm87CisJcmVxLT5nbG9i YWxfc2Vxbm8gPSByZXEtPmZlbmNlLnNlcW5vOwogCXJlcS0+Y3R4ID0gaTkxNV9nZW1fY29udGV4 dF9nZXQoY3R4KTsKIAogCS8qIE5vIHphbGxvYywgbXVzdCBjbGVhciB3aGF0IHdlIG5lZWQgYnkg aGFuZCAqLwpAQCAtNDUyLDggKzQ1Miw5IEBAIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCiBlcnJfY3R4OgogCWk5MTVfZ2VtX2NvbnRleHRf cHV0KGN0eCk7Ci1lcnI6CiAJa21lbV9jYWNoZV9mcmVlKGRldl9wcml2LT5yZXF1ZXN0cywgcmVx KTsKK2Vycl91bnJlc2VydmU6CisJZGV2X3ByaXYtPmd0LmFjdGl2ZV9yZXF1ZXN0cy0tOwogCXJl dHVybiBFUlJfUFRSKHJldCk7CiB9CiAKQEAgLTYwOCw3ICs2MDksNiBAQCBzdGF0aWMgdm9pZCBp OTE1X2dlbV9tYXJrX2J1c3koY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKIAot CWRldl9wcml2LT5ndC5hY3RpdmVfZW5naW5lcyB8PSBpbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUp OwogCWlmIChkZXZfcHJpdi0+Z3QuYXdha2UpCiAJCXJldHVybjsKIApAQCAtOTM2LDM4ICs5MzYs MzQgQEAgY29tcGxldGU6CiAJcmV0dXJuIHRpbWVvdXQ7CiB9CiAKLXN0YXRpYyBib29sIGVuZ2lu ZV9yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorc3RhdGlj IHZvaWQgZW5naW5lX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LCAqbmV4dDsKIAog CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZXF1ZXN0LCBuZXh0LAogCQkJCSAmZW5naW5lLT50 aW1lbGluZS0+cmVxdWVzdHMsIGxpbmspIHsKIAkJaWYgKCFfX2k5MTVfZ2VtX3JlcXVlc3RfY29t cGxldGVkKHJlcXVlc3QpKQotCQkJcmV0dXJuIGZhbHNlOworCQkJcmV0dXJuOwogCiAJCWk5MTVf Z2VtX3JlcXVlc3RfcmV0aXJlKHJlcXVlc3QpOwogCX0KLQotCXJldHVybiB0cnVlOwogfQogCiB2 b2lkIGk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCXVuc2lnbmVkIGlu dCB0bXA7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRl eCk7CiAKLQlpZiAoZGV2X3ByaXYtPmd0LmFjdGl2ZV9lbmdpbmVzID09IDApCisJaWYgKCFkZXZf cHJpdi0+Z3QuYWN0aXZlX3JlcXVlc3RzKQogCQlyZXR1cm47CiAKIAlHRU1fQlVHX09OKCFkZXZf cHJpdi0+Z3QuYXdha2UpOwogCi0JZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGRldl9w cml2LCBkZXZfcHJpdi0+Z3QuYWN0aXZlX2VuZ2luZXMsIHRtcCkKLQkJaWYgKGVuZ2luZV9yZXRp cmVfcmVxdWVzdHMoZW5naW5lKSkKLQkJCWRldl9wcml2LT5ndC5hY3RpdmVfZW5naW5lcyAmPSB+ aW50ZWxfZW5naW5lX2ZsYWcoZW5naW5lKTsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZf cHJpdikKKwkJZW5naW5lX3JldGlyZV9yZXF1ZXN0cyhlbmdpbmUpOwogCi0JaWYgKGRldl9wcml2 LT5ndC5hY3RpdmVfZW5naW5lcyA9PSAwKQorCWlmICghZGV2X3ByaXYtPmd0LmFjdGl2ZV9yZXF1 ZXN0cykKIAkJcXVldWVfZGVsYXllZF93b3JrKGRldl9wcml2LT53cSwKIAkJCQkgICAmZGV2X3By aXYtPmd0LmlkbGVfd29yaywKIAkJCQkgICBtc2Vjc190b19qaWZmaWVzKDEwMCkpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGltZWxpbmUuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbWVsaW5lLmgKaW5kZXggOTZjNzY1YmEzYWJjLi4wZmJj ZjhhMzcwNzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbWVs aW5lLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGltZWxpbmUuaApAQCAt NTQsNyArNTQsNyBAQCBzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgewogCiBzdHJ1Y3QgaTkxNV9nZW1f dGltZWxpbmUgewogCXN0cnVjdCBsaXN0X2hlYWQgbGluazsKLQl1MzIgbmV4dF9zZXFubzsKKwlh dG9taWNfdCBuZXh0X3NlcW5vOwogCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CiAJ Y29uc3QgY2hhciAqbmFtZTsKLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK