From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 31/41] drm/i915: Introduce a global_seqno for each request Date: Thu, 20 Oct 2016 16:04:13 +0100 Message-ID: <20161020150423.4560-32-chris@chris-wilson.co.uk> References: <20161020150423.4560-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-x242.google.com (mail-lf0-x242.google.com [IPv6:2a00:1450:4010:c07::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id F3F0C6EB8D for ; Thu, 20 Oct 2016 15:05:03 +0000 (UTC) Received: by mail-lf0-x242.google.com with SMTP id x23so461385lfi.1 for ; Thu, 20 Oct 2016 08:05:03 -0700 (PDT) In-Reply-To: <20161020150423.4560-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 VGhvdWdoIHdlIHdpbGwgaGF2ZSBtdWx0aXBsZSB0aW1lbGluZXMsIHdlIHN0aWxsIGhhdmUgYSBz aW5nbGUgdGltZWxpbmUKb2YgZXhlY3V0aW9uLiBUaGlzIHdlIGNhbiB1c2UgdG8gcHJvdmlkZSBh biBleGVjdXRpb24gYW5kIHJldGlyZW1lbnQgb3JkZXIKb2YgcmVxdWVzdHMuIFRoaXMga2VlcHMg dHJhY2tpbmcgZXhlY3V0aW9uIG9mIHJlcXVlc3RzIHNpbXBsZSwgYW5kIHZpdGFsCmZvciBwcmVz ZXJ2aW5nIGEgc2luZ2xlIHdhaXRlciAoaS5lLiBzbyB0aGF0IHdlIGNhbiBvcmRlciB0aGUgd2Fp dGVycyBzbwp0aGF0IG9ubHkgdGhlIGVhcmxpZXN0IHRvIHdha2V1cCBuZWVkIGJlIHdva2VuKS4g VG8gYWNjb21wbGlzaCB0aGlzIHdlCmRpc3Rpbmd1aXNoIHRoZSBzZXFubyB1c2VkIHRvIG9yZGVy IHJlcXVlc3RzIHBlci1jb250ZXh0IChleHRlcm5hbCkgYW5kCnRoYXQgdXNlZCBpbnRlcm5hbGx5 IGZvciBleGVjdXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4KUmV2aWV3ZWQtYnk6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRp bmVuQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYyAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAg ICAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAg ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYyAgICB8 IDE5ICsrKysrKysrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVx dWVzdC5oICAgIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV90cmFjZS5oICAgICAgICAgIHwgIDggKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2JyZWFkY3J1bWJzLmMgICB8ICA4ICsrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMgICAgfCAxNCArKysrKystLS0tLS0tCiAxMSBmaWxlcyBjaGFu Z2VkLCA2NiBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCmluZGV4IDZkNzRhMDJhMDY3Ny4uNmFhYTRhZTlkMGE4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtNjM3LDcgKzYzNyw3IEBAIHN0YXRpYyB2b2lkIHBy aW50X3JlcXVlc3Qoc3RydWN0IHNlcV9maWxlICptLAogCXJjdV9yZWFkX2xvY2soKTsKIAl0YXNr ID0gcGlkID8gcGlkX3Rhc2socGlkLCBQSURUWVBFX1BJRCkgOiBOVUxMOwogCXNlcV9wcmludGYo bSwgIiVzJXggWyV4OiV4XSBAICVkOiAlcyBbJWRdXG4iLCBwcmVmaXgsCi0JCSAgIHJxLT5mZW5j ZS5zZXFubywgcnEtPmN0eC0+aHdfaWQsIHJxLT5mZW5jZS5zZXFubywKKwkJICAgcnEtPmdsb2Jh bF9zZXFubywgcnEtPmN0eC0+aHdfaWQsIHJxLT5mZW5jZS5zZXFubywKIAkJICAgamlmZmllc190 b19tc2VjcyhqaWZmaWVzIC0gcnEtPmVtaXR0ZWRfamlmZmllcyksCiAJCSAgIHRhc2sgPyB0YXNr LT5jb21tIDogIjx1bmtub3duPiIsCiAJCSAgIHRhc2sgPyB0YXNrLT5waWQgOiAtMSk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAppbmRleCAxNmUxZjZjMzVlZjYuLjk2MjViNDQ2YzA2OSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCkBAIC00MDAxLDcgKzQwMDEsNyBAQCBfX2k5MTVfcmVxdWVzdF9p cnFfY29tcGxldGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJLyogQmVmb3Jl IHdlIGRvIHRoZSBoZWF2aWVyIGNvaGVyZW50IHJlYWQgb2YgdGhlIHNlcW5vLAogCSAqIGNoZWNr IHRoZSB2YWx1ZSAoaG9wZWZ1bGx5KSBpbiB0aGUgQ1BVIGNhY2hlbGluZS4KIAkgKi8KLQlpZiAo aTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQocmVxKSkKKwlpZiAoX19pOTE1X2dlbV9yZXF1ZXN0 X2NvbXBsZXRlZChyZXEpKQogCQlyZXR1cm4gdHJ1ZTsKIAogCS8qIEVuc3VyZSBvdXIgcmVhZCBv ZiB0aGUgc2Vxbm8gaXMgY29oZXJlbnQgc28gdGhhdCB3ZQpAQCAtNDA1Miw3ICs0MDUyLDcgQEAg X19pOTE1X3JlcXVlc3RfaXJxX2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKQogCQkJd2FrZV91cF9wcm9jZXNzKHRzayk7CiAJCXJjdV9yZWFkX3VubG9jaygpOwogCi0J CWlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEpKQorCQlpZiAoX19pOTE1X2dlbV9y ZXF1ZXN0X2NvbXBsZXRlZChyZXEpKQogCQkJcmV0dXJuIHRydWU7CiAJfQogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwppbmRleCA3NDgwMjBhZDEwMzMuLjUwNTNmZGEwMTZkOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCkBAIC0yNjE4LDcgKzI2MTgsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9y ZXNldF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlyZXR1cm47CiAK IAlEUk1fREVCVUdfRFJJVkVSKCJyZXNldHRpbmcgJXMgdG8gcmVzdGFydCBmcm9tIHRhaWwgb2Yg cmVxdWVzdCAweCV4XG4iLAotCQkJIGVuZ2luZS0+bmFtZSwgcmVxdWVzdC0+ZmVuY2Uuc2Vxbm8p OworCQkJIGVuZ2luZS0+bmFtZSwgcmVxdWVzdC0+Z2xvYmFsX3NlcW5vKTsKIAogCS8qIFNldHVw IHRoZSBDUyB0byByZXN1bWUgZnJvbSB0aGUgYnJlYWRjcnVtYiBvZiB0aGUgaHVuZyByZXF1ZXN0 ICovCiAJZW5naW5lLT5yZXNldF9odyhlbmdpbmUsIHJlcXVlc3QpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fcmVxdWVzdC5jCmluZGV4IDFhYmEwYjU3ZGEzZC4uNWMwMWI5NTQ4ZTcyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCkBAIC0zNzYsNyArMzc2LDcg QEAgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs CiAJICogb2YgYmVpbmcgcmVhZCBieSBfX2k5MTVfZ2VtX2FjdGl2ZV9nZXRfcmN1KCkuIEFzIHN1 Y2gsCiAJICogd2UgaGF2ZSB0byBiZSB2ZXJ5IGNhcmVmdWwgd2hlbiBvdmVyd3JpdGluZyB0aGUg Y29udGVudHMuIER1cmluZwogCSAqIHRoZSBSQ1UgbG9va3VwLCB3ZSBjaGFuZ2UgY2hhc2UgdGhl IHJlcXVlc3QtPmVuZ2luZSBwb2ludGVyLAotCSAqIHJlYWQgdGhlIHJlcXVlc3QtPmZlbmNlLnNl cW5vIGFuZCBpbmNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudC4KKwkgKiByZWFkIHRoZSByZXF1 ZXN0LT5nbG9iYWxfc2Vxbm8gYW5kIGluY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50LgogCSAq CiAJICogVGhlIHJlZmVyZW5jZSBjb3VudCBpcyBpbmNyZW1lbnRlZCBhdG9taWNhbGx5LiBJZiBp dCBpcyB6ZXJvLAogCSAqIHRoZSBsb29rdXAga25vd3MgdGhlIHJlcXVlc3QgaXMgdW5hbGxvY2F0 ZWQgYW5kIGNvbXBsZXRlLiBPdGhlcndpc2UsCkBAIC00MTgsNiArNDE4LDcgQEAgaTkxNV9nZW1f cmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJSU5JVF9MSVNU X0hFQUQoJnJlcS0+YWN0aXZlX2xpc3QpOwogCXJlcS0+aTkxNSA9IGRldl9wcml2OwogCXJlcS0+ ZW5naW5lID0gZW5naW5lOworCXJlcS0+Z2xvYmFsX3NlcW5vID0gc2Vxbm87CiAJcmVxLT5jdHgg PSBpOTE1X2dlbV9jb250ZXh0X2dldChjdHgpOwogCiAJLyogTm8gemFsbG9jLCBtdXN0IGNsZWFy IHdoYXQgd2UgbmVlZCBieSBoYW5kICovCkBAIC00NzUsOCArNDc2LDE1IEBAIGk5MTVfZ2VtX3Jl cXVlc3RfYXdhaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnRvLAogCQly ZXR1cm4gcmV0IDwgMCA/IHJldCA6IDA7CiAJfQogCisJaWYgKCFmcm9tLT5nbG9iYWxfc2Vxbm8p IHsKKwkJcmV0ID0gaTkxNV9zd19mZW5jZV9hd2FpdF9kbWFfZmVuY2UoJnRvLT5zdWJtaXQsCisJ CQkJCQkgICAgJmZyb20tPmZlbmNlLCAwLAorCQkJCQkJICAgIEdGUF9LRVJORUwpOworCQlyZXR1 cm4gcmV0IDwgMCA/IHJldCA6IDA7CisJfQorCiAJaWR4ID0gaW50ZWxfZW5naW5lX3N5bmNfaW5k ZXgoZnJvbS0+ZW5naW5lLCB0by0+ZW5naW5lKTsKLQlpZiAoZnJvbS0+ZmVuY2Uuc2Vxbm8gPD0g ZnJvbS0+ZW5naW5lLT5zZW1hcGhvcmUuc3luY19zZXFub1tpZHhdKQorCWlmIChmcm9tLT5nbG9i YWxfc2Vxbm8gPD0gZnJvbS0+ZW5naW5lLT5zZW1hcGhvcmUuc3luY19zZXFub1tpZHhdKQogCQly ZXR1cm4gMDsKIAogCXRyYWNlX2k5MTVfZ2VtX3Jpbmdfc3luY190byh0bywgZnJvbSk7CkBAIC00 OTQsNyArNTAyLDcgQEAgaTkxNV9nZW1fcmVxdWVzdF9hd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqdG8sCiAJCQlyZXR1cm4gcmV0OwogCX0KIAotCWZyb20tPmVuZ2lu ZS0+c2VtYXBob3JlLnN5bmNfc2Vxbm9baWR4XSA9IGZyb20tPmZlbmNlLnNlcW5vOworCWZyb20t PmVuZ2luZS0+c2VtYXBob3JlLnN5bmNfc2Vxbm9baWR4XSA9IGZyb20tPmdsb2JhbF9zZXFubzsK IAlyZXR1cm4gMDsKIH0KIApAQCAtNzc0LDcgKzc4Miw3IEBAIGJvb2wgX19pOTE1X3NwaW5fcmVx dWVzdChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAogCXRpbWVvdXRf dXMgKz0gbG9jYWxfY2xvY2tfdXMoJmNwdSk7CiAJZG8gewotCQlpZiAoaTkxNV9nZW1fcmVxdWVz dF9jb21wbGV0ZWQocmVxKSkKKwkJaWYgKF9faTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQocmVx KSkKIAkJCXJldHVybiB0cnVlOwogCiAJCWlmIChzaWduYWxfcGVuZGluZ19zdGF0ZShzdGF0ZSwg Y3VycmVudCkpCkBAIC04ODIsNiArODkwLDcgQEAgbG9uZyBpOTE1X3dhaXRfcmVxdWVzdChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAogCQlHRU1fQlVHX09OKCFpOTE1X3N3X2Zl bmNlX2RvbmUoJnJlcS0+c3VibWl0KSk7CiAJfQorCUdFTV9CVUdfT04oIXJlcS0+Z2xvYmFsX3Nl cW5vKTsKIAogCS8qIE9wdGltaXN0aWMgc2hvcnQgc3BpbiBiZWZvcmUgdG91Y2hpbmcgSVJRcyAq LwogCWlmIChpOTE1X3NwaW5fcmVxdWVzdChyZXEsIHN0YXRlLCA1KSkKQEAgLTg5MSw3ICs5MDAs NyBAQCBsb25nIGk5MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLAogCWlmIChmbGFncyAmIEk5MTVfV0FJVF9MT0NLRUQpCiAJCWFkZF93YWl0X3F1ZXVlKCZy ZXEtPmk5MTUtPmdwdV9lcnJvci53YWl0X3F1ZXVlLCAmcmVzZXQpOwogCi0JaW50ZWxfd2FpdF9p bml0KCZ3YWl0LCByZXEtPmZlbmNlLnNlcW5vKTsKKwlpbnRlbF93YWl0X2luaXQoJndhaXQsIHJl cS0+Z2xvYmFsX3NlcW5vKTsKIAlpZiAoaW50ZWxfZW5naW5lX2FkZF93YWl0KHJlcS0+ZW5naW5l LCAmd2FpdCkpCiAJCS8qIEluIG9yZGVyIHRvIGNoZWNrIHRoYXQgd2UgaGF2ZW4ndCBtaXNzZWQg dGhlIGludGVycnVwdAogCQkgKiBhcyB3ZSBlbmFibGVkIGl0LCB3ZSBuZWVkIHRvIGtpY2sgb3Vy c2VsdmVzIHRvIGRvIGEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3JlcXVlc3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaAppbmRl eCAzNzhmNTIzODQ0YmIuLmQxNDM5ZjM5NDIwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3JlcXVlc3QuaApAQCAtODcsNiArODcsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgewogCXN0cnVjdCBpOTE1X3N3X2ZlbmNlIHN1Ym1pdDsKIAl3YWl0X3F1ZXVlX3Qgc3VibWl0 cTsKIAorCXUzMiBnbG9iYWxfc2Vxbm87CisKIAkvKiogR0VNIHNlcXVlbmNlIG51bWJlciBhc3Nv Y2lhdGVkIHdpdGggdGhlIHByZXZpb3VzIHJlcXVlc3QsCiAJICogd2hlbiB0aGUgSFdTIGJyZWFk Y3J1bWIgaXMgZXF1YWwgdG8gdGhpcyB0aGUgR1BVIGlzIHByb2Nlc3NpbmcKIAkgKiB0aGlzIHJl cXVlc3QuCkBAIC0xNjMsNyArMTY1LDcgQEAgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3JldGlyZV91 cHRvKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKIHN0YXRpYyBpbmxpbmUgdTMy CiBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSkKIHsKLQlyZXR1cm4gcmVxID8gcmVxLT5mZW5jZS5zZXFubyA6IDA7CisJcmV0dXJuIHJl cSA/IHJlcS0+Z2xvYmFsX3NlcW5vIDogMDsKIH0KIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICoKQEAgLTI0OCwxNyArMjUwLDM3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp OTE1X3NlcW5vX3Bhc3NlZCh1MzIgc2VxMSwgdTMyIHNlcTIpCiB9CiAKIHN0YXRpYyBpbmxpbmUg Ym9vbAotaTkxNV9nZW1fcmVxdWVzdF9zdGFydGVkKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxKQorX19pOTE1X2dlbV9yZXF1ZXN0X3N0YXJ0ZWQoY29uc3Qgc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CisJR0VNX0JVR19PTighcmVxLT5nbG9iYWxfc2Vx bm8pOwogCXJldHVybiBpOTE1X3NlcW5vX3Bhc3NlZChpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKHJl cS0+ZW5naW5lKSwKIAkJCQkgcmVxLT5wcmV2aW91c19zZXFubyk7CiB9CiAKIHN0YXRpYyBpbmxp bmUgYm9vbAotaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQoY29uc3Qgc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEpCitpOTE1X2dlbV9yZXF1ZXN0X3N0YXJ0ZWQoY29uc3Qgc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CisJaWYgKCFyZXEtPmdsb2JhbF9zZXFubykK KwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIF9faTkxNV9nZW1fcmVxdWVzdF9zdGFydGVkKHJl cSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbAorX19pOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRl ZChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKK3sKKwlHRU1fQlVHX09O KCFyZXEtPmdsb2JhbF9zZXFubyk7CiAJcmV0dXJuIGk5MTVfc2Vxbm9fcGFzc2VkKGludGVsX2Vu Z2luZV9nZXRfc2Vxbm8ocmVxLT5lbmdpbmUpLAotCQkJCSByZXEtPmZlbmNlLnNlcW5vKTsKKwkJ CQkgcmVxLT5nbG9iYWxfc2Vxbm8pOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wKK2k5MTVfZ2Vt X3JlcXVlc3RfY29tcGxldGVkKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQoreworCWlmICghcmVxLT5nbG9iYWxfc2Vxbm8pCisJCXJldHVybiBmYWxzZTsKKworCXJldHVy biBfX2k5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJlcSk7CiB9CiAKIGJvb2wgX19pOTE1X3Nw aW5fcmVxdWVzdChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCkBA IC0yNjYsNyArMjg4LDcgQEAgYm9vbCBfX2k5MTVfc3Bpbl9yZXF1ZXN0KGNvbnN0IHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3Nw aW5fcmVxdWVzdChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCiAJ CQkJICAgICBpbnQgc3RhdGUsIHVuc2lnbmVkIGxvbmcgdGltZW91dF91cykKIHsKLQlyZXR1cm4g KGk5MTVfZ2VtX3JlcXVlc3Rfc3RhcnRlZChyZXF1ZXN0KSAmJgorCXJldHVybiAoX19pOTE1X2dl bV9yZXF1ZXN0X3N0YXJ0ZWQocmVxdWVzdCkgJiYKIAkJX19pOTE1X3NwaW5fcmVxdWVzdChyZXF1 ZXN0LCBzdGF0ZSwgdGltZW91dF91cykpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVf ZXJyb3IuYwppbmRleCA4ZDE1NDk4NGRmZDEuLjJkNDY0NGE5MGVjNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC0xMTY5LDcgKzExNjksNyBAQCBzdGF0aWMgdm9pZCBy ZWNvcmRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCiAJCQkg ICBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfcmVxdWVzdCAqZXJxKQogewogCWVycS0+Y29udGV4dCA9 IHJlcXVlc3QtPmN0eC0+aHdfaWQ7Ci0JZXJxLT5zZXFubyA9IHJlcXVlc3QtPmZlbmNlLnNlcW5v OworCWVycS0+c2Vxbm8gPSByZXF1ZXN0LT5nbG9iYWxfc2Vxbm87CiAJZXJxLT5qaWZmaWVzID0g cmVxdWVzdC0+ZW1pdHRlZF9qaWZmaWVzOwogCWVycS0+aGVhZCA9IHJlcXVlc3QtPmhlYWQ7CiAJ ZXJxLT50YWlsID0gcmVxdWVzdC0+dGFpbDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3Vj X3N1Ym1pc3Npb24uYwppbmRleCA1YWVjMGRhOGJmNTMuLjc2MGIwMWZhYmU4MSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwpAQCAtNTIxLDcgKzUyMSw3IEBA IHN0YXRpYyB2b2lkIGd1Y193cV9pdGVtX2FwcGVuZChzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpn YywKIAl3cWktPmNvbnRleHRfZGVzYyA9ICh1MzIpaW50ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9y KHJxLT5jdHgsIGVuZ2luZSk7CiAKIAl3cWktPnJpbmdfdGFpbCA9IHRhaWwgPDwgV1FfUklOR19U QUlMX1NISUZUOwotCXdxaS0+ZmVuY2VfaWQgPSBycS0+ZmVuY2Uuc2Vxbm87CisJd3FpLT5mZW5j ZV9pZCA9IHJxLT5nbG9iYWxfc2Vxbm87CiAKIAlrdW5tYXBfYXRvbWljKGJhc2UpOwogfQpAQCAt NjE2LDcgKzYxNiw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJxKQogCQljbGllbnQtPmJfZmFpbCArPSAxOwogCiAJZ3VjLT5zdWJt aXNzaW9uc1tlbmdpbmVfaWRdICs9IDE7Ci0JZ3VjLT5sYXN0X3NlcW5vW2VuZ2luZV9pZF0gPSBy cS0+ZmVuY2Uuc2Vxbm87CisJZ3VjLT5sYXN0X3NlcW5vW2VuZ2luZV9pZF0gPSBycS0+Z2xvYmFs X3NlcW5vOwogCXNwaW5fdW5sb2NrKCZjbGllbnQtPndxX2xvY2spOwogfQogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3RyYWNlLmgKaW5kZXggMTc4Nzk4MDAyYTczLi40YzQ2ZjdjMDAzMjMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3RyYWNlLmgKQEAgLTQ2Niw3ICs0NjYsNyBAQCBUUkFDRV9FVkVOVChpOTE1 X2dlbV9yaW5nX3N5bmNfdG8sCiAJCQkgICBfX2VudHJ5LT5kZXYgPSBmcm9tLT5pOTE1LT5kcm0u cHJpbWFyeS0+aW5kZXg7CiAJCQkgICBfX2VudHJ5LT5zeW5jX2Zyb20gPSBmcm9tLT5lbmdpbmUt PmlkOwogCQkJICAgX19lbnRyeS0+c3luY190byA9IHRvLT5lbmdpbmUtPmlkOwotCQkJICAgX19l bnRyeS0+c2Vxbm8gPSBmcm9tLT5mZW5jZS5zZXFubzsKKwkJCSAgIF9fZW50cnktPnNlcW5vID0g ZnJvbS0+Z2xvYmFsX3NlcW5vOwogCQkJICAgKSwKIAogCSAgICBUUF9wcmludGsoImRldj0ldSwg c3luYy1mcm9tPSV1LCBzeW5jLXRvPSV1LCBzZXFubz0ldSIsCkBAIC00ODksNyArNDg5LDcgQEAg VFJBQ0VfRVZFTlQoaTkxNV9nZW1fcmluZ19kaXNwYXRjaCwKIAkgICAgVFBfZmFzdF9hc3NpZ24o CiAJCQkgICBfX2VudHJ5LT5kZXYgPSByZXEtPmk5MTUtPmRybS5wcmltYXJ5LT5pbmRleDsKIAkJ CSAgIF9fZW50cnktPnJpbmcgPSByZXEtPmVuZ2luZS0+aWQ7Ci0JCQkgICBfX2VudHJ5LT5zZXFu byA9IHJlcS0+ZmVuY2Uuc2Vxbm87CisJCQkgICBfX2VudHJ5LT5zZXFubyA9IHJlcS0+Z2xvYmFs X3NlcW5vOwogCQkJICAgX19lbnRyeS0+ZmxhZ3MgPSBmbGFnczsKIAkJCSAgIGZlbmNlX2VuYWJs ZV9zd19zaWduYWxpbmcoJnJlcS0+ZmVuY2UpOwogCQkJICAgKSwKQEAgLTUzNCw3ICs1MzQsNyBA QCBERUNMQVJFX0VWRU5UX0NMQVNTKGk5MTVfZ2VtX3JlcXVlc3QsCiAJICAgIFRQX2Zhc3RfYXNz aWduKAogCQkJICAgX19lbnRyeS0+ZGV2ID0gcmVxLT5pOTE1LT5kcm0ucHJpbWFyeS0+aW5kZXg7 CiAJCQkgICBfX2VudHJ5LT5yaW5nID0gcmVxLT5lbmdpbmUtPmlkOwotCQkJICAgX19lbnRyeS0+ c2Vxbm8gPSByZXEtPmZlbmNlLnNlcW5vOworCQkJICAgX19lbnRyeS0+c2Vxbm8gPSByZXEtPmds b2JhbF9zZXFubzsKIAkJCSAgICksCiAKIAkgICAgVFBfcHJpbnRrKCJkZXY9JXUsIHJpbmc9JXUs IHNlcW5vPSV1IiwKQEAgLTU5Niw3ICs1OTYsNyBAQCBUUkFDRV9FVkVOVChpOTE1X2dlbV9yZXF1 ZXN0X3dhaXRfYmVnaW4sCiAJICAgIFRQX2Zhc3RfYXNzaWduKAogCQkJICAgX19lbnRyeS0+ZGV2 ID0gcmVxLT5pOTE1LT5kcm0ucHJpbWFyeS0+aW5kZXg7CiAJCQkgICBfX2VudHJ5LT5yaW5nID0g cmVxLT5lbmdpbmUtPmlkOwotCQkJICAgX19lbnRyeS0+c2Vxbm8gPSByZXEtPmZlbmNlLnNlcW5v OworCQkJICAgX19lbnRyeS0+c2Vxbm8gPSByZXEtPmdsb2JhbF9zZXFubzsKIAkJCSAgIF9fZW50 cnktPmJsb2NraW5nID0KIAkJCQkgICAgIG11dGV4X2lzX2xvY2tlZCgmcmVxLT5pOTE1LT5kcm0u c3RydWN0X211dGV4KTsKIAkJCSAgICksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9icmVhZGNydW1icy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRj cnVtYnMuYwppbmRleCAyM2ZjMTA0MmZlZDQuLjdlNjViNDE1YzUzNSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCkBAIC01MDQsOSArNTA0LDExIEBAIHZvaWQgaW50 ZWxfZW5naW5lX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0KQogCiAJLyogbG9ja2VkIGJ5IGZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoKSAqLwog CWFzc2VydF9zcGluX2xvY2tlZCgmcmVxdWVzdC0+bG9jayk7CisJaWYgKCFyZXF1ZXN0LT5nbG9i YWxfc2Vxbm8pCisJCXJldHVybjsKIAogCXJlcXVlc3QtPnNpZ25hbGluZy53YWl0LnRzayA9IGIt PnNpZ25hbGVyOwotCXJlcXVlc3QtPnNpZ25hbGluZy53YWl0LnNlcW5vID0gcmVxdWVzdC0+ZmVu Y2Uuc2Vxbm87CisJcmVxdWVzdC0+c2lnbmFsaW5nLndhaXQuc2Vxbm8gPSByZXF1ZXN0LT5nbG9i YWxfc2Vxbm87CiAJaTkxNV9nZW1fcmVxdWVzdF9nZXQocmVxdWVzdCk7CiAKIAlzcGluX2xvY2so JmItPmxvY2spOwpAQCAtNTMwLDggKzUzMiw4IEBAIHZvaWQgaW50ZWxfZW5naW5lX2VuYWJsZV9z aWduYWxpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogCXAgPSAmYi0+ c2lnbmFscy5yYl9ub2RlOwogCXdoaWxlICgqcCkgewogCQlwYXJlbnQgPSAqcDsKLQkJaWYgKGk5 MTVfc2Vxbm9fcGFzc2VkKHJlcXVlc3QtPmZlbmNlLnNlcW5vLAotCQkJCSAgICAgIHRvX3NpZ25h bGVyKHBhcmVudCktPmZlbmNlLnNlcW5vKSkgeworCQlpZiAoaTkxNV9zZXFub19wYXNzZWQocmVx dWVzdC0+Z2xvYmFsX3NlcW5vLAorCQkJCSAgICAgIHRvX3NpZ25hbGVyKHBhcmVudCktPmdsb2Jh bF9zZXFubykpIHsKIAkJCXAgPSAmcGFyZW50LT5yYl9yaWdodDsKIAkJCWZpcnN0ID0gZmFsc2U7 CiAJCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IGNiMzA1NDlkZmQ0MC4u ZTBhOWJmODE3NzRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMTU4NCw3ICsxNTg0 LDcgQEAgc3RhdGljIGludCBnZW44X2VtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcXVlc3QpCiAJCQlpbnRlbF9od3Nfc2Vxbm9fYWRkcmVzcyhyZXF1ZXN0LT5lbmdp bmUpIHwKIAkJCU1JX0ZMVVNIX0RXX1VTRV9HVFQpOwogCWludGVsX3JpbmdfZW1pdChyaW5nLCAw KTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgcmVxdWVzdC0+ZmVuY2Uuc2Vxbm8pOworCWludGVs X3JpbmdfZW1pdChyaW5nLCByZXF1ZXN0LT5nbG9iYWxfc2Vxbm8pOwogCWludGVsX3JpbmdfZW1p dChyaW5nLCBNSV9VU0VSX0lOVEVSUlVQVCk7CiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05P T1ApOwogCXJldHVybiBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyZXF1ZXN0KTsKQEAgLTE2 MTMsNyArMTYxMyw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X3JlcXVlc3RfcmVuZGVyKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAkJCSBQSVBFX0NPTlRST0xfUVdfV1JJ VEUpKTsKIAlpbnRlbF9yaW5nX2VtaXQocmluZywgaW50ZWxfaHdzX3NlcW5vX2FkZHJlc3MocmVx dWVzdC0+ZW5naW5lKSk7CiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOwotCWludGVsX3Jpbmdf ZW1pdChyaW5nLCBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhyZXF1ZXN0KSk7CisJaW50ZWxf cmluZ19lbWl0KHJpbmcsIHJlcXVlc3QtPmdsb2JhbF9zZXFubyk7CiAJLyogV2UncmUgdGhyYXNo aW5nIG9uZSBkd29yZCBvZiBIV1MuICovCiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOwogCWlu dGVsX3JpbmdfZW1pdChyaW5nLCBNSV9VU0VSX0lOVEVSUlVQVCk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggMzJiYTAyZDlhNmQ4Li42NWZmYjFjZWFiM2IgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTEyNDAsNyArMTI0MCw3 IEBAIHN0YXRpYyBpbnQgZ2VuOF9yY3Nfc2lnbmFsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQogCQkJCVBJUEVfQ09OVFJPTF9DU19TVEFMTCk7CiAJCWludGVsX3JpbmdfZW1pdChy aW5nLCBsb3dlcl8zMl9iaXRzKGd0dF9vZmZzZXQpKTsKIAkJaW50ZWxfcmluZ19lbWl0KHJpbmcs IHVwcGVyXzMyX2JpdHMoZ3R0X29mZnNldCkpOwotCQlpbnRlbF9yaW5nX2VtaXQocmluZywgcmVx LT5mZW5jZS5zZXFubyk7CisJCWludGVsX3JpbmdfZW1pdChyaW5nLCByZXEtPmdsb2JhbF9zZXFu byk7CiAJCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsKIAkJaW50ZWxfcmluZ19lbWl0KHJpbmcs CiAJCQkJTUlfU0VNQVBIT1JFX1NJR05BTCB8CkBAIC0xMjc2LDcgKzEyNzYsNyBAQCBzdGF0aWMg aW50IGdlbjhfeGNzX3NpZ25hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAkJ CQlsb3dlcl8zMl9iaXRzKGd0dF9vZmZzZXQpIHwKIAkJCQlNSV9GTFVTSF9EV19VU0VfR1RUKTsK IAkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHVwcGVyXzMyX2JpdHMoZ3R0X29mZnNldCkpOwotCQlp bnRlbF9yaW5nX2VtaXQocmluZywgcmVxLT5mZW5jZS5zZXFubyk7CisJCWludGVsX3JpbmdfZW1p dChyaW5nLCByZXEtPmdsb2JhbF9zZXFubyk7CiAJCWludGVsX3JpbmdfZW1pdChyaW5nLAogCQkJ CU1JX1NFTUFQSE9SRV9TSUdOQUwgfAogCQkJCU1JX1NFTUFQSE9SRV9UQVJHRVQod2FpdGVyLT5o d19pZCkpOwpAQCAtMTMxMCw3ICsxMzEwLDcgQEAgc3RhdGljIGludCBnZW42X3NpZ25hbChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAkJaWYgKGk5MTVfbW1pb19yZWdfdmFsaWQo bWJveF9yZWcpKSB7CiAJCQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTE9BRF9SRUdJU1RFUl9J TU0oMSkpOwogCQkJaW50ZWxfcmluZ19lbWl0X3JlZyhyaW5nLCBtYm94X3JlZyk7Ci0JCQlpbnRl bF9yaW5nX2VtaXQocmluZywgcmVxLT5mZW5jZS5zZXFubyk7CisJCQlpbnRlbF9yaW5nX2VtaXQo cmluZywgcmVxLT5nbG9iYWxfc2Vxbm8pOwogCQl9CiAJfQogCkBAIC0xMzQxLDcgKzEzNDEsNyBA QCBzdGF0aWMgaW50IGk5eHhfZW1pdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQogCiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX1NUT1JFX0RXT1JEX0lOREVYKTsK IAlpbnRlbF9yaW5nX2VtaXQocmluZywgSTkxNV9HRU1fSFdTX0lOREVYIDw8IE1JX1NUT1JFX0RX T1JEX0lOREVYX1NISUZUKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgcmVxLT5mZW5jZS5zZXFu byk7CisJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHJlcS0+Z2xvYmFsX3NlcW5vKTsKIAlpbnRlbF9y aW5nX2VtaXQocmluZywgTUlfVVNFUl9JTlRFUlJVUFQpOwogCWludGVsX3JpbmdfYWR2YW5jZShy aW5nKTsKIApAQCAtMTM5MSw3ICsxMzkxLDcgQEAgc3RhdGljIGludCBnZW44X3JlbmRlcl9lbWl0 X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJCQkgICAgICAgUElQ RV9DT05UUk9MX1FXX1dSSVRFKSk7CiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIGludGVsX2h3c19z ZXFub19hZGRyZXNzKGVuZ2luZSkpOwogCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsKLQlpbnRl bF9yaW5nX2VtaXQocmluZywgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ocmVxKSk7CisJaW50 ZWxfcmluZ19lbWl0KHJpbmcsIHJlcS0+Z2xvYmFsX3NlcW5vKTsKIAkvKiBXZSdyZSB0aHJhc2hp bmcgb25lIGR3b3JkIG9mIEhXUy4gKi8KIAlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7CiAJaW50 ZWxfcmluZ19lbWl0KHJpbmcsIE1JX1VTRVJfSU5URVJSVVBUKTsKQEAgLTE0MjksNyArMTQyOSw3 IEBAIGdlbjhfcmluZ19zeW5jX3RvKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAog CQkJTUlfU0VNQVBIT1JFX1dBSVQgfAogCQkJTUlfU0VNQVBIT1JFX0dMT0JBTF9HVFQgfAogCQkJ TUlfU0VNQVBIT1JFX1NBRF9HVEVfU0REKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgc2lnbmFs LT5mZW5jZS5zZXFubyk7CisJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHNpZ25hbC0+Z2xvYmFsX3Nl cW5vKTsKIAlpbnRlbF9yaW5nX2VtaXQocmluZywgbG93ZXJfMzJfYml0cyhvZmZzZXQpKTsKIAlp bnRlbF9yaW5nX2VtaXQocmluZywgdXBwZXJfMzJfYml0cyhvZmZzZXQpKTsKIAlpbnRlbF9yaW5n X2FkdmFuY2UocmluZyk7CkBAIC0xNDY3LDcgKzE0NjcsNyBAQCBnZW42X3Jpbmdfc3luY190byhz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkgKiBzZXFubyBpcyA+PSB0aGUgbGFz dCBzZXFubyBleGVjdXRlZC4gSG93ZXZlciBmb3IgaGFyZHdhcmUgdGhlCiAJICogY29tcGFyaXNv biBpcyBzdHJpY3RseSBncmVhdGVyIHRoYW4uCiAJICovCi0JaW50ZWxfcmluZ19lbWl0KHJpbmcs IHNpZ25hbC0+ZmVuY2Uuc2Vxbm8gLSAxKTsKKwlpbnRlbF9yaW5nX2VtaXQocmluZywgc2lnbmFs LT5nbG9iYWxfc2Vxbm8gLSAxKTsKIAlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7CiAJaW50ZWxf cmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOwogCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKLS0g CjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK