From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 37/41] drm/i915: Reserve space in the global seqno during request allocation Date: Fri, 14 Oct 2016 13:18:29 +0100 Message-ID: <20161014121833.439-38-chris@chris-wilson.co.uk> References: <20161014121833.439-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-lf0-x243.google.com (mail-lf0-x243.google.com [IPv6:2a00:1450:4010:c07::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 789096EC2E for ; Fri, 14 Oct 2016 12:19:19 +0000 (UTC) Received: by mail-lf0-x243.google.com with SMTP id b75so17765504lfg.3 for ; Fri, 14 Oct 2016 05:19:19 -0700 (PDT) In-Reply-To: <20161014121833.439-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 aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KUmV2aWV3ZWQtYnk6IEpvb25hcyBMYWh0 aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgIHwgMTAgKystLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jICAgICAgICAgIHwgIDcgKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9y ZXF1ZXN0LmMgIHwgODYgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbWVsaW5lLmggfCAgMiArLQogNSBmaWxlcyBjaGFuZ2Vk LCA1NSBpbnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jCmluZGV4IDUxNGMyMGQzZTkyYi4uYThjZjJjMzE4NmJhIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtNTUyLDcgKzU1Miw3IEBAIHN0YXRpYyBpbnQgaTkxNV9n ZW1fcGFnZWZsaXBfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJCQkJc2Vx X3ByaW50ZihtLCAiRmxpcCBxdWV1ZWQgb24gJXMgYXQgc2Vxbm8gJXgsIG5leHQgc2Vxbm8gJXgg W2N1cnJlbnQgYnJlYWRjcnVtYiAleF0sIGNvbXBsZXRlZD8gJWRcbiIsCiAJCQkJCSAgIGVuZ2lu ZS0+bmFtZSwKIAkJCQkJICAgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8od29yay0+ZmxpcF9x dWV1ZWRfcmVxKSwKLQkJCQkJICAgZGV2X3ByaXYtPmd0Lmdsb2JhbF90aW1lbGluZS5uZXh0X3Nl cW5vLAorCQkJCQkgICBhdG9taWNfcmVhZCgmZGV2X3ByaXYtPmd0Lmdsb2JhbF90aW1lbGluZS5u ZXh0X3NlcW5vKSwKIAkJCQkJICAgaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpLAogCQkJ CQkgICBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZCh3b3JrLT5mbGlwX3F1ZXVlZF9yZXEpKTsK IAkJCX0gZWxzZQpAQCAtMTAzMSw3ICsxMDMxLDcgQEAgaTkxNV9uZXh0X3NlcW5vX2dldCh2b2lk ICpkYXRhLCB1NjQgKnZhbCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkYXRhOwogCi0JKnZhbCA9IFJFQURfT05DRShkZXZfcHJpdi0+Z3QuZ2xvYmFsX3RpbWVsaW5l Lm5leHRfc2Vxbm8pOworCSp2YWwgPSBhdG9taWNfcmVhZCgmZGV2X3ByaXYtPmd0Lmdsb2JhbF90 aW1lbGluZS5uZXh0X3NlcW5vKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjI1OCw4ICsyMjU4LDgg QEAgc3RhdGljIGludCBpOTE1X3Jwc19ib29zdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqZGF0YSkKIAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGU7CiAKIAlzZXFfcHJpbnRmKG0sICJSUFMg ZW5hYmxlZD8gJWRcbiIsIGRldl9wcml2LT5ycHMuZW5hYmxlZCk7Ci0Jc2VxX3ByaW50ZihtLCAi R1BVIGJ1c3k/ICVzIFsleF1cbiIsCi0JCSAgIHllc25vKGRldl9wcml2LT5ndC5hd2FrZSksIGRl dl9wcml2LT5ndC5hY3RpdmVfZW5naW5lcyk7CisJc2VxX3ByaW50ZihtLCAiR1BVIGJ1c3k/ICVz IFslZCByZXF1ZXN0c11cbiIsCisJCSAgIHllc25vKGRldl9wcml2LT5ndC5hd2FrZSksIGRldl9w cml2LT5ndC5hY3RpdmVfcmVxdWVzdHMpOwogCXNlcV9wcmludGYobSwgIkNQVSB3YWl0aW5nPyAl ZFxuIiwgY291bnRfaXJxX3dhaXRlcnMoZGV2X3ByaXYpKTsKIAlzZXFfcHJpbnRmKG0sICJGcmVx dWVuY3kgcmVxdWVzdGVkICVkXG4iLAogCQkgICBpbnRlbF9ncHVfZnJlcShkZXZfcHJpdiwgZGV2 X3ByaXYtPnJwcy5jdXJfZnJlcSkpOwpAQCAtMjI5NCw3ICsyMjk0LDcgQEAgc3RhdGljIGludCBp OTE1X3Jwc19ib29zdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAogCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYgJiYKIAkgICAgZGV2X3ByaXYtPnJwcy5lbmFibGVk ICYmCi0JICAgIGRldl9wcml2LT5ndC5hY3RpdmVfZW5naW5lcykgeworCSAgICBkZXZfcHJpdi0+ Z3QuYWN0aXZlX3JlcXVlc3RzKSB7CiAJCXUzMiBycHVwLCBycHVwZWk7CiAJCXUzMiBycGRvd24s IHJwZG93bmVpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA2NmI2ZGVjYzk3YzYuLjRk ZTQ2YTY5Y2NhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yMDgxLDYgKzIwODEsNyBA QCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAKIAkJc3RydWN0IGxpc3RfaGVhZCB0aW1lbGlu ZXM7CiAJCXN0cnVjdCBpOTE1X2dlbV90aW1lbGluZSBnbG9iYWxfdGltZWxpbmU7CisJCXUzMiBh Y3RpdmVfcmVxdWVzdHM7CiAKIAkJLyoqCiAJCSAqIElzIHRoZSBHUFUgY3VycmVudGx5IGNvbnNp ZGVyZWQgaWRsZSwgb3IgYnVzeSBleGVjdXRpbmcKQEAgLTIwODksNyArMjA5MCw2IEBAIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlIHsKIAkJICogSW4gb3JkZXIgdG8gcmVkdWNlIHRoZSBlZmZlY3Qg b24gcGVyZm9ybWFuY2UsIHRoZXJlCiAJCSAqIGlzIGEgc2xpZ2h0IGRlbGF5IGJlZm9yZSB3ZSBk byBzby4KIAkJICovCi0JCXVuc2lnbmVkIGludCBhY3RpdmVfZW5naW5lczsKIAkJYm9vbCBhd2Fr ZTsKIAogCQkvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDlhZTVmNmNmMTM5NC4uNzA2 NGQwOTI1MjNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTI3MDAsOCArMjcwMCw2IEBA IHN0YXRpYyB2b2lkIGk5MTVfZ2VtX2NsZWFudXBfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIAkJbWVtc2V0KGVuZ2luZS0+ZXhlY2xpc3RfcG9ydCwgMCwgc2l6ZW9mKGVu Z2luZS0+ZXhlY2xpc3RfcG9ydCkpOwogCQlzcGluX3VubG9jaygmZW5naW5lLT5leGVjbGlzdF9s b2NrKTsKIAl9Ci0KLQllbmdpbmUtPmk5MTUtPmd0LmFjdGl2ZV9lbmdpbmVzICY9IH5pbnRlbF9l bmdpbmVfZmxhZyhlbmdpbmUpOwogfQogCiB2b2lkIGk5MTVfZ2VtX3NldF93ZWRnZWQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtMjc1OCw3ICsyNzU2LDcgQEAgaTkxNV9n ZW1faWRsZV93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCWlmICghUkVB RF9PTkNFKGRldl9wcml2LT5ndC5hd2FrZSkpCiAJCXJldHVybjsKIAotCWlmIChSRUFEX09OQ0Uo ZGV2X3ByaXYtPmd0LmFjdGl2ZV9lbmdpbmVzKSkKKwlpZiAoUkVBRF9PTkNFKGRldl9wcml2LT5n dC5hY3RpdmVfcmVxdWVzdHMpKQogCQlyZXR1cm47CiAKIAlyZWFybV9oYW5nY2hlY2sgPQpAQCAt Mjc3Miw3ICsyNzcwLDcgQEAgaTkxNV9nZW1faWRsZV93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQogCQlnb3RvIG91dF9yZWFybTsKIAl9CiAKLQlpZiAoZGV2X3ByaXYtPmd0 LmFjdGl2ZV9lbmdpbmVzKQorCWlmIChkZXZfcHJpdi0+Z3QuYWN0aXZlX3JlcXVlc3RzKQogCQln b3RvIG91dF91bmxvY2s7CiAKIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQp CkBAIC00MzkxLDYgKzQzODksNyBAQCBpbnQgaTkxNV9nZW1fc3VzcGVuZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCQlnb3RvIGVycjsKIAogCWk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0cyhkZXZf cHJpdik7CisJR0VNX0JVR19PTihkZXZfcHJpdi0+Z3QuYWN0aXZlX3JlcXVlc3RzKTsKIAogCWFz c2VydF9rZXJuZWxfY29udGV4dF9pc19jdXJyZW50KGRldl9wcml2KTsKIAlpOTE1X2dlbV9jb250 ZXh0X2xvc3QoZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5j CmluZGV4IDA0OTUxMDMwMGEwOS4uNTYyMmFhYWZiMWFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fcmVxdWVzdC5jCkBAIC0xNTksNiArMTU5LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9n ZW1fcmVxdWVzdF9yZXRpcmUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQog CSAqLwogCWxpc3RfZGVsKCZyZXF1ZXN0LT5yaW5nX2xpbmspOwogCXJlcXVlc3QtPnJpbmctPmxh c3RfcmV0aXJlZF9oZWFkID0gcmVxdWVzdC0+cG9zdGZpeDsKKwlyZXF1ZXN0LT5pOTE1LT5ndC5h Y3RpdmVfcmVxdWVzdHMtLTsKIAogCS8qIFdhbGsgdGhyb3VnaCB0aGUgYWN0aXZlIGxpc3QsIGNh bGxpbmcgcmV0aXJlIG9uIGVhY2guIFRoaXMgYWxsb3dzCiAJICogb2JqZWN0cyB0byB0cmFjayB0 aGVpciBHUFUgYWN0aXZpdHkgYW5kIG1hcmsgdGhlbXNlbHZlcyBhcyBpZGxlCkBAIC0yNTMsMTMg KzI1NCwxNSBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX2luaXRfZ2xvYmFsX3NlcW5vKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LCB1MzIgc2Vxbm8pCiAJCXJldHVybiByZXQ7CiAKIAlpOTE1 X2dlbV9yZXRpcmVfcmVxdWVzdHMoaTkxNSk7CisJR0VNX0JVR19PTihpOTE1LT5ndC5hY3RpdmVf cmVxdWVzdHMgPiAxKTsKIAogCS8qIElmIHRoZSBzZXFubyB3cmFwcyBhcm91bmQsIHdlIG5lZWQg dG8gY2xlYXIgdGhlIGJyZWFkY3J1bWIgcmJ0cmVlICovCi0JaWYgKCFpOTE1X3NlcW5vX3Bhc3Nl ZChzZXFubywgdGltZWxpbmUtPm5leHRfc2Vxbm8pKSB7CisJaWYgKCFpOTE1X3NlcW5vX3Bhc3Nl ZChzZXFubywgYXRvbWljX3JlYWQoJnRpbWVsaW5lLT5uZXh0X3NlcW5vKSkpIHsKIAkJd2hpbGUg KGludGVsX2tpY2tfd2FpdGVycyhpOTE1KSB8fCBpbnRlbF9raWNrX3NpZ25hbGVycyhpOTE1KSkK IAkJCXlpZWxkKCk7CiAJCXlpZWxkKCk7CiAJfQorCWF0b21pY19zZXQoJnRpbWVsaW5lLT5uZXh0 X3NlcW5vLCBzZXFubyk7CiAKIAkvKiBGaW5hbGx5IHJlc2V0IGh3IHN0YXRlICovCiAJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpCkBAIC0yNzksNyArMjgyLDYgQEAgc3RhdGljIGlu dCBpOTE1X2dlbV9pbml0X2dsb2JhbF9zZXFubyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwgdTMyIHNlcW5vKQogaW50IGk5MTVfZ2VtX3NldF9nbG9iYWxfc2Vxbm8oc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdTMyIHNlcW5vKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlpbnQgcmV0OwogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgm ZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCkBAIC0yODksMzQgKzI5MSwzMyBAQCBpbnQg aTkxNV9nZW1fc2V0X2dsb2JhbF9zZXFubyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgc2Vx bm8pCiAJLyogSFdTIHBhZ2UgbmVlZHMgdG8gYmUgc2V0IGxlc3MgdGhhbiB3aGF0IHdlCiAJICog d2lsbCBpbmplY3QgdG8gcmluZwogCSAqLwotCXJldCA9IGk5MTVfZ2VtX2luaXRfZ2xvYmFsX3Nl cW5vKGRldl9wcml2LCBzZXFubyAtIDEpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlk ZXZfcHJpdi0+Z3QuZ2xvYmFsX3RpbWVsaW5lLm5leHRfc2Vxbm8gPSBzZXFubzsKLQlyZXR1cm4g MDsKKwlyZXR1cm4gaTkxNV9nZW1faW5pdF9nbG9iYWxfc2Vxbm8oZGV2X3ByaXYsIHNlcW5vIC0g MSk7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9nZW1fZ2V0X2dsb2JhbF9zZXFubyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICB1MzIgKnNlcW5vKQorc3RhdGljIGlu dCByZXNlcnZlX2dsb2JhbF9zZXFubyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsK LQlzdHJ1Y3QgaTkxNV9nZW1fdGltZWxpbmUgKnRsID0gJmRldl9wcml2LT5ndC5nbG9iYWxfdGlt ZWxpbmU7Ci0KLQkvKiByZXNlcnZlIDAgZm9yIG5vbi1zZXFubyAqLwotCWlmICh1bmxpa2VseSh0 bC0+bmV4dF9zZXFubyA9PSAwKSkgewotCQlpbnQgcmV0OworCXUzMiBhY3RpdmVfcmVxdWVzdHMg PSArK2k5MTUtPmd0LmFjdGl2ZV9yZXF1ZXN0czsKKwl1MzIgbmV4dF9zZXFubyA9IGF0b21pY19y ZWFkKCZpOTE1LT5ndC5nbG9iYWxfdGltZWxpbmUubmV4dF9zZXFubyk7CisJaW50IHJldDsKIAot CQlyZXQgPSBpOTE1X2dlbV9pbml0X2dsb2JhbF9zZXFubyhkZXZfcHJpdiwgMCk7Ci0JCWlmIChy ZXQpCi0JCQlyZXR1cm4gcmV0OworCS8qIFJlc2VydmF0aW9uIGlzIGZpbmUgdW50aWwgd2UgbmVl ZCB0byB3cmFwIGFyb3VuZCAqLworCWlmIChsaWtlbHkobmV4dF9zZXFubyArIGFjdGl2ZV9yZXF1 ZXN0cyA+IG5leHRfc2Vxbm8pKQorCQlyZXR1cm4gMDsKIAotCQl0bC0+bmV4dF9zZXFubyA9IDE7 CisJcmV0ID0gaTkxNV9nZW1faW5pdF9nbG9iYWxfc2Vxbm8oaTkxNSwgMCk7CisJaWYgKHJldCkg eworCQlpOTE1LT5ndC5hY3RpdmVfcmVxdWVzdHMtLTsKKwkJcmV0dXJuIHJldDsKIAl9CiAKLQkq c2Vxbm8gPSB0bC0+bmV4dF9zZXFubysrOwogCXJldHVybiAwOwogfQogCitzdGF0aWMgdTMyIHRp bWVsaW5lX2dldF9zZXFubyhzdHJ1Y3QgaTkxNV9nZW1fdGltZWxpbmUgKnRsKQoreworCXJldHVy biBhdG9taWNfaW5jX3JldHVybigmdGwtPm5leHRfc2Vxbm8pOworfQorCiBzdGF0aWMgaW50IF9f aTkxNV9zd19mZW5jZV9jYWxsCiBzdWJtaXRfbm90aWZ5KHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpm ZW5jZSwgZW51bSBpOTE1X3N3X2ZlbmNlX25vdGlmeSBzdGF0ZSkKIHsKQEAgLTM1Niw5ICszNTcs MTAgQEAgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1 OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwotCXUzMiBzZXFubzsKIAlpbnQg cmV0OwogCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgp OworCiAJLyogQUJJOiBCZWZvcmUgdXNlcnNwYWNlIGFjY2Vzc2VzIHRoZSBHUFUgKGUuZy4gZXhl Y2J1ZmZlciksIHJlcG9ydAogCSAqIEVJTyBpZiB0aGUgR1BVIGlzIGFscmVhZHkgd2VkZ2VkLCBv ciBFQUdBSU4gdG8gZHJvcCB0aGUgc3RydWN0X211dGV4CiAJICogYW5kIHJlc3RhcnQuCkBAIC0z NjcsNiArMzY5LDEwIEBAIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLAogCWlmIChyZXQpCiAJCXJldHVybiBFUlJfUFRSKHJldCk7CiAKKwlyZXQg PSByZXNlcnZlX2dsb2JhbF9zZXFubyhkZXZfcHJpdik7CisJaWYgKHJldCkKKwkJcmV0dXJuIEVS Ul9QVFIocmV0KTsKKwogCS8qIE1vdmUgdGhlIG9sZGVzdCByZXF1ZXN0IHRvIHRoZSBzbGFiLWNh Y2hlIChpZiBub3QgaW4gdXNlISkgKi8KIAlyZXEgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwo JmVuZ2luZS0+dGltZWxpbmUtPnJlcXVlc3RzLAogCQkJCSAgICAgICB0eXBlb2YoKnJlcSksIGxp bmspOwpAQCAtNDAyLDEyICs0MDgsMTAgQEAgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJICogRG8gbm90IHVzZSBrbWVtX2NhY2hlX3phbGxv YygpIGhlcmUhCiAJICovCiAJcmVxID0ga21lbV9jYWNoZV9hbGxvYyhkZXZfcHJpdi0+cmVxdWVz dHMsIEdGUF9LRVJORUwpOwotCWlmICghcmVxKQotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsK LQotCXJldCA9IGk5MTVfZ2VtX2dldF9nbG9iYWxfc2Vxbm8oZGV2X3ByaXYsICZzZXFubyk7Ci0J aWYgKHJldCkKLQkJZ290byBlcnI7CisJaWYgKCFyZXEpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJ Z290byBlcnJfdW5yZXNlcnZlOworCX0KIAogCXJlcS0+dGltZWxpbmUgPSBlbmdpbmUtPnRpbWVs aW5lOwogCkBAIC00MTYsMTQgKzQyMCwxNCBAQCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJICAgJmk5MTVfZmVuY2Vfb3BzLAogCQkgICAm cmVxLT5sb2NrLAogCQkgICByZXEtPnRpbWVsaW5lLT5mZW5jZV9jb250ZXh0LAotCQkgICBzZXFu byk7CisJCSAgIHRpbWVsaW5lX2dldF9zZXFubyhyZXEtPnRpbWVsaW5lLT5jb21tb24pKTsKIAog CWk5MTVfc3dfZmVuY2VfaW5pdCgmcmVxLT5zdWJtaXQsIHN1Ym1pdF9ub3RpZnkpOwogCiAJSU5J VF9MSVNUX0hFQUQoJnJlcS0+YWN0aXZlX2xpc3QpOwogCXJlcS0+aTkxNSA9IGRldl9wcml2Owog CXJlcS0+ZW5naW5lID0gZW5naW5lOwotCXJlcS0+Z2xvYmFsX3NlcW5vID0gc2Vxbm87CisJcmVx LT5nbG9iYWxfc2Vxbm8gPSByZXEtPmZlbmNlLnNlcW5vOwogCXJlcS0+Y3R4ID0gaTkxNV9nZW1f Y29udGV4dF9nZXQoY3R4KTsKIAogCS8qIE5vIHphbGxvYywgbXVzdCBjbGVhciB3aGF0IHdlIG5l ZWQgYnkgaGFuZCAqLwpAQCAtNDU5LDggKzQ2Myw5IEBAIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Mo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCiBlcnJfY3R4OgogCWk5MTVfZ2VtX2Nv bnRleHRfcHV0KGN0eCk7Ci1lcnI6CiAJa21lbV9jYWNoZV9mcmVlKGRldl9wcml2LT5yZXF1ZXN0 cywgcmVxKTsKK2Vycl91bnJlc2VydmU6CisJZGV2X3ByaXYtPmd0LmFjdGl2ZV9yZXF1ZXN0cy0t OwogCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CiAKQEAgLTYyNCw3ICs2MjksNiBAQCBzdGF0aWMg dm9pZCBpOTE1X2dlbV9tYXJrX2J1c3koY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkx NTsKIAotCWRldl9wcml2LT5ndC5hY3RpdmVfZW5naW5lcyB8PSBpbnRlbF9lbmdpbmVfZmxhZyhl bmdpbmUpOwogCWlmIChkZXZfcHJpdi0+Z3QuYXdha2UpCiAJCXJldHVybjsKIApAQCAtNzAwLDYg KzcwNCw5IEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCwgYm9vbCBmbHVzaF9jYWNoZXMpCiAJCWk5MTVfc3dfZmVuY2VfYXdhaXRf c3dfZmVuY2UoJnJlcXVlc3QtPnN1Ym1pdCwgJnByZXYtPnN1Ym1pdCwKIAkJCQkJICAgICAmcmVx dWVzdC0+c3VibWl0cSk7CiAKKwlHRU1fQlVHX09OKGk5MTVfc2Vxbm9fcGFzc2VkKHRpbWVsaW5l LT5sYXN0X3N1Ym1pdHRlZF9zZXFubywKKwkJCQkgICAgIHJlcXVlc3QtPmZlbmNlLnNlcW5vKSk7 CisKIAlyZXF1ZXN0LT5lbWl0dGVkX2ppZmZpZXMgPSBqaWZmaWVzOwogCXJlcXVlc3QtPnByZXZp b3VzX3NlcW5vID0gdGltZWxpbmUtPmxhc3RfcGVuZGluZ19zZXFubzsKIAl0aW1lbGluZS0+bGFz dF9wZW5kaW5nX3NlcW5vID0gcmVxdWVzdC0+ZmVuY2Uuc2Vxbm87CkBAIC05NTksMzggKzk2Niwz NSBAQCBjb21wbGV0ZToKIAlyZXR1cm4gdGltZW91dDsKIH0KIAotc3RhdGljIGJvb2wgZW5naW5l X3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCitzdGF0aWMg dm9pZCBlbmdpbmVfcmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsICpuZXh0OwogCiAJ bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJlcXVlc3QsIG5leHQsCiAJCQkJICZlbmdpbmUtPnRp bWVsaW5lLT5yZXF1ZXN0cywgbGluaykgewogCQlpZiAoIWk5MTVfZ2VtX3JlcXVlc3RfY29tcGxl dGVkKHJlcXVlc3QpKQotCQkJcmV0dXJuIGZhbHNlOworCQkJcmV0dXJuOwogCiAJCWk5MTVfZ2Vt X3JlcXVlc3RfcmV0aXJlKHJlcXVlc3QpOwogCX0KLQotCXJldHVybiB0cnVlOwogfQogCiB2b2lk IGk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCXVuc2lnbmVkIGludCB0 bXA7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZk ZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKLQlpZiAoZGV2X3ByaXYtPmd0LmFjdGl2ZV9l bmdpbmVzID09IDApCisJaWYgKCFkZXZfcHJpdi0+Z3QuYWN0aXZlX3JlcXVlc3RzKQogCQlyZXR1 cm47CiAKIAlHRU1fQlVHX09OKCFkZXZfcHJpdi0+Z3QuYXdha2UpOwogCi0JZm9yX2VhY2hfZW5n aW5lX21hc2tlZChlbmdpbmUsIGRldl9wcml2LCBkZXZfcHJpdi0+Z3QuYWN0aXZlX2VuZ2luZXMs IHRtcCkKLQkJaWYgKGVuZ2luZV9yZXRpcmVfcmVxdWVzdHMoZW5naW5lKSkKLQkJCWRldl9wcml2 LT5ndC5hY3RpdmVfZW5naW5lcyAmPSB+aW50ZWxfZW5naW5lX2ZsYWcoZW5naW5lKTsKKwlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpCisJCWVuZ2luZV9yZXRpcmVfcmVxdWVz dHMoZW5naW5lKTsKIAotCWlmIChkZXZfcHJpdi0+Z3QuYWN0aXZlX2VuZ2luZXMgPT0gMCkKKwlp ZiAoIWRldl9wcml2LT5ndC5hY3RpdmVfcmVxdWVzdHMpCiAJCXF1ZXVlX2RlbGF5ZWRfd29yayhk ZXZfcHJpdi0+d3EsCiAJCQkJICAgJmRldl9wcml2LT5ndC5pZGxlX3dvcmssCiAJCQkJICAgbXNl Y3NfdG9famlmZmllcygxMDApKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3RpbWVsaW5lLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV90aW1lbGlu ZS5oCmluZGV4IDc2N2IyMzkxNGVjNS4uMThlNjAzOTgwZGQ5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV90aW1lbGluZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3RpbWVsaW5lLmgKQEAgLTU1LDcgKzU1LDcgQEAgc3RydWN0IGludGVsX3Rp bWVsaW5lIHsKIAogc3RydWN0IGk5MTVfZ2VtX3RpbWVsaW5lIHsKIAlzdHJ1Y3QgbGlzdF9oZWFk IGxpbms7Ci0JdTMyIG5leHRfc2Vxbm87CisJYXRvbWljX3QgbmV4dF9zZXFubzsKIAogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1OwogCWNvbnN0IGNoYXIgKm5hbWU7Ci0tIAoyLjkuMwoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==