From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 07/21] drm/i915: Spin after waking up for an interrupt Date: Fri, 3 Jun 2016 17:08:39 +0100 Message-ID: <1464970133-29859-8-git-send-email-chris@chris-wilson.co.uk> References: <1464970133-29859-1-git-send-email-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-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7512E6EE0A for ; Fri, 3 Jun 2016 16:09:09 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id a136so459346wme.0 for ; Fri, 03 Jun 2016 09:09:09 -0700 (PDT) In-Reply-To: <1464970133-29859-1-git-send-email-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 V2hlbiB3YWl0aW5nIGZvciBhbiBpbnRlcnJ1cHQgKHdhaXRpbmcgZm9yIHRoZSBHUFUgdG8gY29t cGxldGUgc29tZQp3b3JrKSwgd2Uga25vdyB3ZSBhcmUgdGhlIHNpbmdsZSB3YWl0ZXIgZm9yIHRo ZSBHUFUuIFdlIGFsc28ga25vdyB3aGVuCnRoZSBHUFUgaGFzIG5lYXJseSBjb21wbGV0ZWQgb3Vy IHJlcXVlc3QgKG9yIGF0IGxlYXN0IHN0YXJ0ZWQgcHJvY2Vzc2luZwppdCksIHNvIGFmdGVyIGJl aW5nIHdva2VuIGFuZCB3ZSBkZXRlY3QgdGhhdCB0aGUgR1BVIGlzIGFsbW9zdCBmaW5pc2hlZCwK YWxsb3cgdGhlIGJvdHRvbS1oYWxmIHRvIHNwaW4gZm9yIGEgdmVyeSBzaG9ydCB3aGlsZSB0byBy ZWR1Y2UgY2xpZW50CmxhdGVuY2llcy4KClRoZSBpbXBhY3QgaXMgbWluaW1hbCwgdGhlcmUgd2Fz IGFuIGltcHJvdmVtZW50IHRvIHRoZSByZWFsdGltZS12cy1tYW55CmNsaWVudHMgY2FzZSwgYnV0 IGV4cG9ydGluZyB0aGUgZnVuY3Rpb24gcHJvdmVzIHVzZWZ1bCBsYXRlci4KClNpZ25lZC1vZmYt Ynk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICAgfCAyNiArKysrKysrKysrKysrKystLS0tLS0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgIHwgNDAgKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgMiAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgIHwgIDQgKystLQogNSBmaWxl cyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDQ4NjgzNTM4YjRlMi4uMGMyODdiZjBkMjMwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtNjYzLDcgKzY2Myw3IEBAIHN0YXRpYyBp bnQgaTkxNV9nZW1fcGFnZWZsaXBfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEp CiAJCQkJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHdvcmstPmZsaXBfcXVldWVkX3Jl cSksCiAJCQkJCSAgIGRldl9wcml2LT5uZXh0X3NlcW5vLAogCQkJCQkgICBlbmdpbmUtPmdldF9z ZXFubyhlbmdpbmUpLAotCQkJCQkgICBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZCh3b3JrLT5m bGlwX3F1ZXVlZF9yZXEsIHRydWUpKTsKKwkJCQkJICAgaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0 ZWQod29yay0+ZmxpcF9xdWV1ZWRfcmVxKSk7CiAJCQl9IGVsc2UKIAkJCQlzZXFfcHJpbnRmKG0s ICJGbGlwIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IHJpbmdcbiIpOwogCQkJc2VxX3ByaW50Ziht LCAiRmxpcCBxdWV1ZWQgb24gZnJhbWUgJWQsICh3YXMgcmVhZHkgb24gZnJhbWUgJWQpLCBub3cg JWRcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA2OGIzODNkOTg0NTcuLmIwNDYwZWRh MjExMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0zMjE5LDI0ICszMjE5LDI3IEBAIGk5 MTVfc2Vxbm9fcGFzc2VkKHVpbnQzMl90IHNlcTEsIHVpbnQzMl90IHNlcTIpCiAJcmV0dXJuIChp bnQzMl90KShzZXExIC0gc2VxMikgPj0gMDsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGk5MTVf Z2VtX3JlcXVlc3Rfc3RhcnRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKLQkJ CQkJICAgYm9vbCBsYXp5X2NvaGVyZW5jeSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9y ZXF1ZXN0X3N0YXJ0ZWQoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7 Ci0JaWYgKCFsYXp5X2NvaGVyZW5jeSAmJiByZXEtPmVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIp Ci0JCXJlcS0+ZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcihyZXEtPmVuZ2luZSk7CiAJcmV0dXJu IGk5MTVfc2Vxbm9fcGFzc2VkKHJlcS0+ZW5naW5lLT5nZXRfc2Vxbm8ocmVxLT5lbmdpbmUpLAog CQkJCSByZXEtPnByZXZpb3VzX3NlcW5vKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGk5MTVf Z2VtX3JlcXVlc3RfY29tcGxldGVkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAot CQkJCQkgICAgICBib29sIGxhenlfY29oZXJlbmN5KQorc3RhdGljIGlubGluZSBib29sIGk5MTVf Z2VtX3JlcXVlc3RfY29tcGxldGVkKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKQogewotCWlmICghbGF6eV9jb2hlcmVuY3kgJiYgcmVxLT5lbmdpbmUtPmlycV9zZXFub19i YXJyaWVyKQotCQlyZXEtPmVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIocmVxLT5lbmdpbmUpOwog CXJldHVybiBpOTE1X3NlcW5vX3Bhc3NlZChyZXEtPmVuZ2luZS0+Z2V0X3NlcW5vKHJlcS0+ZW5n aW5lKSwKIAkJCQkgcmVxLT5zZXFubyk7CiB9CiAKK2Jvb2wgX19pOTE1X3NwaW5fcmVxdWVzdChj b25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCisJCQkgaW50IHN0YXRl LCB1bnNpZ25lZCBsb25nIHRpbWVvdXRfdXMpOworc3RhdGljIGlubGluZSBib29sIGk5MTVfc3Bp bl9yZXF1ZXN0KGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKKwkJ CQkgICAgIGludCBzdGF0ZSwgdW5zaWduZWQgbG9uZyB0aW1lb3V0X3VzKQoreworCXJldHVybiAo aTkxNV9nZW1fcmVxdWVzdF9zdGFydGVkKHJlcXVlc3QpICYmCisJCV9faTkxNV9zcGluX3JlcXVl c3QocmVxdWVzdCwgc3RhdGUsIHRpbWVvdXRfdXMpKTsKK30KKwogaW50IF9fbXVzdF9jaGVjayBp OTE1X2dlbV9nZXRfc2Vxbm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIg KnNlcW5vKTsKIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fc2V0X3NlcW5vKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHUzMiBzZXFubyk7CiAKQEAgLTM5MTMsNiArMzkxNiw4IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBpOTE1X3RyYWNlX2lycV9nZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLAogCiBzdGF0aWMgaW5saW5lIGJvb2wgX19pOTE1X3JlcXVlc3RfaXJxX2NvbXBsZXRlKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogeworCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSA9IHJlcS0+ZW5naW5lOworCiAJLyogRW5zdXJlIG91ciByZWFkIG9mIHRoZSBz ZXFubyBpcyBjb2hlcmVudCBzbyB0aGF0IHdlCiAJICogZG8gbm90ICJtaXNzIGFuIGludGVycnVw dCIgKGkuZS4gaWYgdGhpcyBpcyB0aGUgbGFzdAogCSAqIHJlcXVlc3QgYW5kIHRoZSBzZXFubyB3 cml0ZSBmcm9tIHRoZSBHUFUgaXMgbm90IHZpc2libGUKQEAgLTM5MjQsNyArMzkyOSwxMCBAQCBz dGF0aWMgaW5saW5lIGJvb2wgX19pOTE1X3JlcXVlc3RfaXJxX2NvbXBsZXRlKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogCSAqIGJ1dCBpdCBpcyBlYXNpZXIgYW5kIHNhZmVyIHRv IGRvIGl0IGV2ZXJ5IHRpbWUgdGhlIHdhaXRlcgogCSAqIGlzIHdva2VuLgogCSAqLwotCWlmIChp OTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEsIGZhbHNlKSkKKwlpZiAoZW5naW5lLT5pcnFf c2Vxbm9fYmFycmllcikKKwkJZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcihlbmdpbmUpOworCisJ aWYgKGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJlcSkpCiAJCXJldHVybiB0cnVlOwogCiAJ LyogV2UgbmVlZCB0byBjaGVjayB3aGV0aGVyIGFueSBncHUgcmVzZXQgaGFwcGVuZWQgaW4gYmV0 d2VlbgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggZDA4ZWRiM2QxNmYxLi5iZjVjOTNmMmJk ODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMTE1NSw5ICsxMTU1LDkgQEAgc3RhdGlj IGJvb2wgYnVzeXdhaXRfc3RvcCh1bnNpZ25lZCBsb25nIHRpbWVvdXQsIHVuc2lnbmVkIGNwdSkK IAlyZXR1cm4gdGhpc19jcHUgIT0gY3B1OwogfQogCi1zdGF0aWMgYm9vbCBfX2k5MTVfc3Bpbl9y ZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgc3RhdGUpCitib29s IF9faTkxNV9zcGluX3JlcXVlc3QoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEsCisJCQkgaW50IHN0YXRlLCB1bnNpZ25lZCBsb25nIHRpbWVvdXRfdXMpCiB7Ci0JdW5zaWdu ZWQgbG9uZyB0aW1lb3V0OwogCXVuc2lnbmVkIGNwdTsKIAogCS8qIFdoZW4gd2FpdGluZyBmb3Ig aGlnaCBmcmVxdWVuY3kgcmVxdWVzdHMsIGUuZy4gZHVyaW5nIHN5bmNocm9ub3VzCkBAIC0xMTcw LDE5ICsxMTcwLDE1IEBAIHN0YXRpYyBib29sIF9faTkxNV9zcGluX3JlcXVlc3Qoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBzdGF0ZSkKIAkgKiB0YWtlcyB0byBzbGVlcCBv biBhIHJlcXVlc3QsIG9uIHRoZSBvcmRlciBvZiBhIG1pY3Jvc2Vjb25kLgogCSAqLwogCi0JLyog T25seSBzcGluIGlmIHdlIGtub3cgdGhlIEdQVSBpcyBwcm9jZXNzaW5nIHRoaXMgcmVxdWVzdCAq LwotCWlmICghaTkxNV9nZW1fcmVxdWVzdF9zdGFydGVkKHJlcSwgdHJ1ZSkpCi0JCXJldHVybiBm YWxzZTsKLQotCXRpbWVvdXQgPSBsb2NhbF9jbG9ja191cygmY3B1KSArIDU7CisJdGltZW91dF91 cyArPSBsb2NhbF9jbG9ja191cygmY3B1KTsKIAlkbyB7Ci0JCWlmIChpOTE1X2dlbV9yZXF1ZXN0 X2NvbXBsZXRlZChyZXEsIHRydWUpKQorCQlpZiAoaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQo cmVxKSkKIAkJCXJldHVybiB0cnVlOwogCiAJCWlmIChzaWduYWxfcGVuZGluZ19zdGF0ZShzdGF0 ZSwgY3VycmVudCkpCiAJCQlicmVhazsKIAotCQlpZiAoYnVzeXdhaXRfc3RvcCh0aW1lb3V0LCBj cHUpKQorCQlpZiAoYnVzeXdhaXRfc3RvcCh0aW1lb3V0X3VzLCBjcHUpKQogCQkJYnJlYWs7CiAK IAkJY3B1X3JlbGF4X2xvd2xhdGVuY3koKTsKQEAgLTEyMjQsNyArMTIyMCw3IEBAIGludCBfX2k5 MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCWlmIChs aXN0X2VtcHR5KCZyZXEtPmxpc3QpKQogCQlyZXR1cm4gMDsKIAotCWlmIChpOTE1X2dlbV9yZXF1 ZXN0X2NvbXBsZXRlZChyZXEsIHRydWUpKQorCWlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRl ZChyZXEpKQogCQlyZXR1cm4gMDsKIAogCXRpbWVvdXRfcmVtYWluID0gTUFYX1NDSEVEVUxFX1RJ TUVPVVQ7CkBAIC0xMjQ5LDcgKzEyNDUsNyBAQCBpbnQgX19pOTE1X3dhaXRfcmVxdWVzdChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJZ2VuNl9ycHNfYm9vc3QocmVxLT5pOTE1 LCBycHMsIHJlcS0+ZW1pdHRlZF9qaWZmaWVzKTsKIAogCS8qIE9wdGltaXN0aWMgc3BpbiBmb3Ig dGhlIG5leHQgfmppZmZpZSBiZWZvcmUgdG91Y2hpbmcgSVJRcyAqLwotCWlmIChfX2k5MTVfc3Bp bl9yZXF1ZXN0KHJlcSwgc3RhdGUpKQorCWlmIChpOTE1X3NwaW5fcmVxdWVzdChyZXEsIHN0YXRl LCA1KSkKIAkJZ290byBjb21wbGV0ZTsKIAogCWludGVsX3dhaXRfaW5pdCgmd2FpdCwgcmVxLT5z ZXFubyk7CkBAIC0xMjkwLDYgKzEyODYsMTAgQEAgd2FrZXVwOgogCQkgKi8KIAkJaWYgKF9faTkx NV9yZXF1ZXN0X2lycV9jb21wbGV0ZShyZXEpKQogCQkJYnJlYWs7CisKKwkJLyogT25seSBzcGlu IGlmIHdlIGtub3cgdGhlIEdQVSBpcyBwcm9jZXNzaW5nIHRoaXMgcmVxdWVzdCAqLworCQlpZiAo aTkxNV9zcGluX3JlcXVlc3QocmVxLCBzdGF0ZSwgMikpCisJCQlicmVhazsKIAl9CiAJcmVtb3Zl X3dhaXRfcXVldWUoJnJlcS0+aTkxNS0+Z3B1X2Vycm9yLndhaXRfcXVldWUsICZyZXNldCk7CiAK QEAgLTI4MDUsOCArMjgwNSwxNiBAQCBpOTE1X2dlbV9maW5kX2FjdGl2ZV9yZXF1ZXN0KHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcXVlc3Q7CiAKKwkvKiBXZSBhcmUgY2FsbGVkIGJ5IHRoZSBlcnJvciBjYXB0dXJlIGFu ZCByZXNldCBhdCBhIHJhbmRvbQorCSAqIHBvaW50IGluIHRpbWUuIEluIHBhcnRpY3VsYXIsIG5v dGUgdGhhdCBuZWl0aGVyIGlzIGNydWNpYWxseQorCSAqIG9yZGVyZWQgd2l0aCBhbiBpbnRlcnJ1 cHQuIEFmdGVyIGEgaGFuZywgdGhlIEdQVSBpcyBkZWFkIGFuZCB3ZQorCSAqIGFzc3VtZSB0aGF0 IG5vIG1vcmUgd3JpdGVzIGNhbiBoYXBwZW4gKHdlIHdhaXRlZCBsb25nIGVub3VnaCBmb3IKKwkg KiBhbGwgd3JpdGVzIHRoYXQgd2VyZSBpbiB0cmFuc2FjdGlvbiB0byBiZSBmbHVzaGVkKSAtIGFk ZGluZyBhbgorCSAqIGV4dHJhIGRlbGF5IGZvciBhIHJlY2VudCBpbnRlcnJ1cHQgaXMgcG9pbnRs ZXNzLiBIZW5jZSwgd2UgZG8KKwkgKiBub3QgbmVlZCBhbiBlbmdpbmUtPmlycV9zZXFub19iYXJy aWVyKCkgYmVmb3JlIHRoZSBzZXFubyByZWFkcy4KKwkgKi8KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5 KHJlcXVlc3QsICZlbmdpbmUtPnJlcXVlc3RfbGlzdCwgbGlzdCkgewotCQlpZiAoaTkxNV9nZW1f cmVxdWVzdF9jb21wbGV0ZWQocmVxdWVzdCwgZmFsc2UpKQorCQlpZiAoaTkxNV9nZW1fcmVxdWVz dF9jb21wbGV0ZWQocmVxdWVzdCkpCiAJCQljb250aW51ZTsKIAogCQlyZXR1cm4gcmVxdWVzdDsK QEAgLTI5MzcsNyArMjk0NSw3IEBAIGk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0c19yaW5nKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0LAogCQkJCQkgICBsaXN0KTsKIAotCQlpZiAoIWk5MTVfZ2VtX3JlcXVlc3RfY29tcGxl dGVkKHJlcXVlc3QsIHRydWUpKQorCQlpZiAoIWk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJl cXVlc3QpKQogCQkJYnJlYWs7CiAKIAkJaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUocmVxdWVzdCk7 CkBAIC0yOTYxLDcgKzI5NjksNyBAQCBpOTE1X2dlbV9yZXRpcmVfcmVxdWVzdHNfcmluZyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJfQogCiAJaWYgKHVubGlrZWx5KGVuZ2luZS0+ dHJhY2VfaXJxX3JlcSAmJgotCQkgICAgIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKGVuZ2lu ZS0+dHJhY2VfaXJxX3JlcSwgdHJ1ZSkpKSB7CisJCSAgICAgaTkxNV9nZW1fcmVxdWVzdF9jb21w bGV0ZWQoZW5naW5lLT50cmFjZV9pcnFfcmVxKSkpIHsKIAkJZW5naW5lLT5pcnFfcHV0KGVuZ2lu ZSk7CiAJCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZlbmdpbmUtPnRyYWNlX2lycV9yZXEsIE5V TEwpOwogCX0KQEAgLTMwNTgsNyArMzA2Niw3IEBAIGk5MTVfZ2VtX29iamVjdF9mbHVzaF9hY3Rp dmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAkJaWYgKHJlcSA9PSBOVUxMKQog CQkJY29udGludWU7CiAKLQkJaWYgKGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJlcSwgdHJ1 ZSkpCisJCWlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEpKQogCQkJaTkxNV9nZW1f b2JqZWN0X3JldGlyZV9fcmVhZChvYmosIGkpOwogCX0KIApAQCAtMzE2NCw3ICszMTcyLDcgQEAg X19pOTE1X2dlbV9vYmplY3Rfc3luYyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAog CWlmICh0byA9PSBmcm9tKQogCQlyZXR1cm4gMDsKIAotCWlmIChpOTE1X2dlbV9yZXF1ZXN0X2Nv bXBsZXRlZChmcm9tX3JlcSwgdHJ1ZSkpCisJaWYgKGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVk KGZyb21fcmVxKSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoIWk5MTVfc2VtYXBob3JlX2lzX2VuYWJs ZWQodG9faTkxNShvYmotPmJhc2UuZGV2KSkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwppbmRleCAyYmMyOTFhYzcyNDMuLmJiMDllZTZkMWEzZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTE1OTAsNyArMTE1OTAsNyBAQCBzdGF0aWMgYm9vbCBfX3Bh Z2VmbGlwX3N0YWxsX2NoZWNrX2NzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAl2YmxhbmsgPSBpbnRlbF9jcnRjX2dldF92YmxhbmtfY291bnRlcihpbnRlbF9jcnRjKTsKIAlp ZiAod29yay0+ZmxpcF9yZWFkeV92YmxhbmsgPT0gMCkgewogCQlpZiAod29yay0+ZmxpcF9xdWV1 ZWRfcmVxICYmCi0JCSAgICAhaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQod29yay0+ZmxpcF9x dWV1ZWRfcmVxLCB0cnVlKSkKKwkJICAgICFpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZCh3b3Jr LT5mbGlwX3F1ZXVlZF9yZXEpKQogCQkJcmV0dXJuIGZhbHNlOwogCiAJCXdvcmstPmZsaXBfcmVh ZHlfdmJsYW5rID0gdmJsYW5rOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggNjU3YTY0ZmMy NzgwLi43MTJiZDBkZWJiOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNzY4Nyw3ICs3 Njg3LDcgQEAgc3RhdGljIHZvaWQgX19pbnRlbF9ycHNfYm9vc3Rfd29yayhzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCiAJc3RydWN0IHJlcXVlc3RfYm9vc3QgKmJvb3N0ID0gY29udGFpbmVyX29m KHdvcmssIHN0cnVjdCByZXF1ZXN0X2Jvb3N0LCB3b3JrKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSA9IGJvb3N0LT5yZXE7CiAKLQlpZiAoIWk5MTVfZ2VtX3JlcXVlc3RfY29t cGxldGVkKHJlcSwgdHJ1ZSkpCisJaWYgKCFpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEp KQogCQlnZW42X3Jwc19ib29zdChyZXEtPmk5MTUsIE5VTEwsIHJlcS0+ZW1pdHRlZF9qaWZmaWVz KTsKIAogCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2UocmVxKTsKQEAgLTc3MDEsNyArNzcw MSw3IEBAIHZvaWQgaW50ZWxfcXVldWVfcnBzX2Jvb3N0X2Zvcl9yZXF1ZXN0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogCWlmIChyZXEgPT0gTlVMTCB8fCBJTlRFTF9HRU4ocmVx LT5pOTE1KSA8IDYpCiAJCXJldHVybjsKIAotCWlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRl ZChyZXEsIHRydWUpKQorCWlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEpKQogCQly ZXR1cm47CiAKIAlib29zdCA9IGttYWxsb2Moc2l6ZW9mKCpib29zdCksIEdGUF9BVE9NSUMpOwot LSAKMi44LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=