From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [RFC 19/39] drm/i915: Added scheduler support to __wait_request() calls Date: Fri, 17 Jul 2015 15:33:28 +0100 Message-ID: <1437143628-6329-20-git-send-email-John.C.Harrison@Intel.com> References: <1437143628-6329-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 9198E6ED72 for ; Fri, 17 Jul 2015 07:34:12 -0700 (PDT) In-Reply-To: <1437143628-6329-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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClRoZSBzY2hl ZHVsZXIgY2FuIGNhdXNlIGJhdGNoIGJ1ZmZlcnMsIGFuZCBoZW5jZSByZXF1ZXN0cywgdG8gYmUg c3VibWl0dGVkIHRvCnRoZSByaW5nIG91dCBvZiBvcmRlciBhbmQgYXN5bmNocm9ub3VzbHkgdG8g dGhlaXIgc3VibWlzc2lvbiB0byB0aGUgZHJpdmVyLiBUaHVzCmF0IHRoZSBwb2ludCBvZiB3YWl0 aW5nIGZvciB0aGUgY29tcGxldGlvbiBvZiBhIGdpdmVuIHJlcXVlc3QsIGl0IGlzIG5vdCBldmVu Cmd1YXJhbnRlZWQgdGhhdCB0aGUgcmVxdWVzdCBoYXMgYWN0dWFsbHkgYmVlbiBzZW50IHRvIHRo ZSBoYXJkd2FyZSB5ZXQuIEV2ZW4gaXQKaXMgaGFzIGJlZW4gc2VudCwgaXQgaXMgcG9zc2libGUg dGhhdCBpdCBjb3VsZCBiZSBwcmUtZW1wdGVkIGFuZCB0aHVzICd1bnNlbnQnLgoKVGhpcyBtZWFu cyB0aGF0IGl0IGlzIG5lY2Vzc2FyeSB0byBiZSBhYmxlIHRvIHN1Ym1pdCByZXF1ZXN0cyB0byB0 aGUgaGFyZHdhcmUKZHVyaW5nIHRoZSB3YWl0IGNhbGwgaXRzZWxmLiBVbmZvcnR1bmF0ZWx5LCB3 aGlsZSBzb21lIGNhbGxlcnMgb2YKX193YWl0X3JlcXVlc3QoKSByZWxlYXNlIHRoZSBtdXRleCBs b2NrIGZpcnN0LCBvdGhlcnMgZG8gbm90IChhbmQgYXBwYXJlbnRseSBjYW4Kbm90KS4gSGVuY2Ug dGhlcmUgaXMgdGhlIGFiaWxpdHkgdG8gZGVhZGxvY2sgYXMgdGhlIHdhaXQgc3RhbGxzIGZvciBz dWJtaXNzaW9uCmJ1dCB0aGUgYXN5bmNocm9ub3VzIHN1Ym1pc3Npb24gaXMgc3RhbGxlZCBmb3Ig dGhlIG11dGV4IGxvY2suCgpUaGlzIGNoYW5nZSBob29rcyB0aGUgc2NoZWR1bGVyIGluIHRvIHRo ZSBfX3dhaXRfcmVxdWVzdCgpIGNvZGUgdG8gZW5zdXJlCmNvcnJlY3QgYmVoYXZpb3VyLiBUaGF0 IGlzLCBmbHVzaCB0aGUgdGFyZ2V0IGJhdGNoIGJ1ZmZlciB0aHJvdWdoIHRvIHRoZQpoYXJkd2Fy ZSBhbmQgZG8gbm90IGRlYWRsb2NrIHdhaXRpbmcgZm9yIHNvbWV0aGluZyB0aGF0IGNhbm5vdCBj dXJyZW50bHkgYmUKc3VibWl0dGVkLiBJbnN0ZWFkLCB0aGUgd2FpdCBjYWxsIG11c3QgcmV0dXJu IEVBR0FJTiBhdCBsZWFzdCBhcyBmYXIgYmFjayBhcwpuZWNlc3NhcnkgdG8gcmVsZWFzZSB0aGUg bXV0ZXggbG9jayBhbmQgYWxsb3cgdGhlIHNjaGVkdWxlcidzIGFzeW5jaHJvbm91cwpwcm9jZXNz aW5nIHRvIGdldCBpbiBhbmQgaGFuZGxlIHRoZSBwcmUtZW1wdGlvbiBvcGVyYXRpb24gYW5kIGV2 ZW50dWFsbHkKKHJlLSlzdWJtaXQgdGhlIHdvcmsuCgpDaGFuZ2UtSWQ6IEkzMWZlNmJjN2UzOGY2 ZmZkZDg0M2ZjYWUxNmU3Y2M4YjFlNTJhOTMxCkZvcjogVklaLTE1ODcKU2lnbmVkLW9mZi1ieTog Sm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyAgICAgICAgIHwgMzcgKysrKysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgICB8IDkxICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaCAgIHwgIDIgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgIHwgIDMgKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAyICstCiA2IGZpbGVzIGNoYW5nZWQs IDEyOCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAppbmRleCAyYjNmYWI2Li5lOWUwNzM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI5 NzIsNyArMjk3Miw4IEBAIGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxLAogCQkJdW5zaWduZWQgcmVzZXRfY291bnRlciwKIAkJCWJvb2wgaW50 ZXJydXB0aWJsZSwKIAkJCXM2NCAqdGltZW91dCwKLQkJCXN0cnVjdCBpbnRlbF9ycHNfY2xpZW50 ICpycHMpOworCQkJc3RydWN0IGludGVsX3Jwc19jbGllbnQgKnJwcywKKwkJCWJvb2wgaXNfbG9j a2VkKTsKIGludCBfX211c3RfY2hlY2sgaTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXEpOwogaW50IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fZmF1bHQgKnZtZik7CiBpbnQgX19tdXN0X2NoZWNrCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYwppbmRleCBjYjVhZjVkLi5mNzEzY2RhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKQEAgLTEyMTksNyArMTIxOSw4IEBAIGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJdW5zaWduZWQgcmVzZXRfY291bnRl ciwKIAkJCWJvb2wgaW50ZXJydXB0aWJsZSwKIAkJCXM2NCAqdGltZW91dCwKLQkJCXN0cnVjdCBp bnRlbF9ycHNfY2xpZW50ICpycHMpCisJCQlzdHJ1Y3QgaW50ZWxfcnBzX2NsaWVudCAqcnBzLAor CQkJYm9vbCBpc19sb2NrZWQpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IGk5 MTVfZ2VtX3JlcXVlc3RfZ2V0X3JpbmcocmVxKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g cmluZy0+ZGV2OwpAQCAtMTIyOSw4ICsxMjMwLDEwIEBAIGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0 KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCURFRklORV9XQUlUKHdhaXQpOwog CXVuc2lnbmVkIGxvbmcgdGltZW91dF9leHBpcmU7CiAJczY0IGJlZm9yZSwgbm93OwotCWludCBy ZXQ7CisJaW50IHJldCA9IDA7CisJYm9vbCAgICBidXN5OwogCisJbWlnaHRfc2xlZXAoKTsKIAlX QVJOKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpLCAiSVJRcyBkaXNhYmxlZCIpOwogCiAJ aWYgKGxpc3RfZW1wdHkoJnJlcS0+bGlzdCkpCkBAIC0xMjgxLDYgKzEyODQsMjIgQEAgaW50IF9f aTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCQli cmVhazsKIAkJfQogCisJCWlmIChpc19sb2NrZWQpIHsKKwkJCS8qIElmIHRoaXMgcmVxdWVzdCBp cyBiZWluZyBwcm9jZXNzZWQgYnkgdGhlIHNjaGVkdWxlcgorCQkJICogdGhlbiBpdCBpcyB1bnNh ZmUgdG8gc2xlZXAgd2l0aCB0aGUgbXV0ZXggbG9jayBoZWxkCisJCQkgKiBhcyB0aGUgc2NoZWR1 bGVyIG1heSByZXF1aXJlIHRoZSBsb2NrIGluIG9yZGVyIHRvCisJCQkgKiBwcm9ncmVzcyB0aGUg cmVxdWVzdC4gKi8KKwkJCWlmIChpOTE1X3NjaGVkdWxlcl9pc19yZXF1ZXN0X3RyYWNrZWQocmVx LCBOVUxMLCAmYnVzeSkpIHsKKwkJCQlpZiAoYnVzeSkgeworCQkJCQlyZXQgPSAtRUFHQUlOOwor CQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisKKwkJCS8qIElmIHRoZSByZXF1ZXN0IGlzIG5vdCB0 cmFja2VkIGJ5IHRoZSBzY2hlZHVsZXIgdGhlbiB0aGUKKwkJCSAqIHJlZ3VsYXIgdGVzdCBjYW4g YmUgZG9uZS4gKi8KKwkJfQorCiAJCWlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChyZXEp KSB7CiAJCQlyZXQgPSAwOwogCQkJYnJlYWs7CkBAIC0xNDUyLDEzICsxNDcxLDE3IEBAIGk5MTVf d2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogCiAJQlVHX09O KCFtdXRleF9pc19sb2NrZWQoJmRldi0+c3RydWN0X211dGV4KSk7CiAKKwlyZXQgPSBpOTE1X3Nj aGVkdWxlcl9mbHVzaF9yZXF1ZXN0KHJlcSwgdHJ1ZSk7CisJaWYgKHJldCA8IDApCisJCXJldHVy biByZXQ7CisKIAlyZXQgPSBpOTE1X2dlbV9jaGVja193ZWRnZSgmZGV2X3ByaXYtPmdwdV9lcnJv ciwgaW50ZXJydXB0aWJsZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAogCXJldCA9IF9f aTkxNV93YWl0X3JlcXVlc3QocmVxLAogCQkJCSAgYXRvbWljX3JlYWQoJmRldl9wcml2LT5ncHVf ZXJyb3IucmVzZXRfY291bnRlciksCi0JCQkJICBpbnRlcnJ1cHRpYmxlLCBOVUxMLCBOVUxMKTsK KwkJCQkgIGludGVycnVwdGlibGUsIE5VTEwsIE5VTEwsIHRydWUpOwogCWlmIChyZXQpCiAJCXJl dHVybiByZXQ7CiAKQEAgLTE1NzEsNyArMTU5NCw3IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3Jl bmRlcmluZ19fbm9uYmxvY2tpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlt dXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlmb3IgKGkgPSAwOyByZXQgPT0gMCAm JiBpIDwgbjsgaSsrKQogCQlyZXQgPSBfX2k5MTVfd2FpdF9yZXF1ZXN0KHJlcXVlc3RzW2ldLCBy ZXNldF9jb3VudGVyLCB0cnVlLAotCQkJCQkgIE5VTEwsIHJwcyk7CisJCQkJCSAgTlVMTCwgcnBz LCBmYWxzZSk7CiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCiAJZm9yIChpID0g MDsgaSA8IG47IGkrKykgewpAQCAtMzQ0Myw3ICszNDY2LDcgQEAgaTkxNV9nZW1fd2FpdF9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGUpCiAJCWlmIChyZXQgPT0gMCkKIAkJCXJldCA9IF9faTkxNV93YWl0X3JlcXVlc3QocmVxW2ld LCByZXNldF9jb3VudGVyLCB0cnVlLAogCQkJCQkJICBhcmdzLT50aW1lb3V0X25zID4gMCA/ICZh cmdzLT50aW1lb3V0X25zIDogTlVMTCwKLQkJCQkJCSAgZmlsZS0+ZHJpdmVyX3ByaXYpOworCQkJ CQkJICBmaWxlLT5kcml2ZXJfcHJpdiwgZmFsc2UpOwogCQlpOTE1X2dlbV9yZXF1ZXN0X3VucmVm ZXJlbmNlKHJlcVtpXSk7CiAJfQogCXJldHVybiByZXQ7CkBAIC0zNDc2LDcgKzM0OTksNyBAQCBf X2k5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJ CQkJCSAgYXRvbWljX3JlYWQoJmk5MTUtPmdwdV9lcnJvci5yZXNldF9jb3VudGVyKSwKIAkJCQkJ ICBpOTE1LT5tbS5pbnRlcnJ1cHRpYmxlLAogCQkJCQkgIE5VTEwsCi0JCQkJCSAgJmk5MTUtPnJw cy5zZW1hcGhvcmVzKTsKKwkJCQkJICAmaTkxNS0+cnBzLnNlbWFwaG9yZXMsIHRydWUpOwogCQlp ZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIApAQCAtNDY4Myw3ICs0NzA2LDcgQEAgaTkxNV9nZW1f cmluZ190aHJvdHRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGUpCiAJaWYgKHRhcmdldCA9PSBOVUxMKQogCQlyZXR1cm4gMDsKIAotCXJldCA9IF9faTkxNV93 YWl0X3JlcXVlc3QodGFyZ2V0LCByZXNldF9jb3VudGVyLCB0cnVlLCBOVUxMLCBOVUxMKTsKKwly ZXQgPSBfX2k5MTVfd2FpdF9yZXF1ZXN0KHRhcmdldCwgcmVzZXRfY291bnRlciwgdHJ1ZSwgTlVM TCwgTlVMTCwgZmFsc2UpOwogCWlmIChyZXQgPT0gMCkKIAkJcXVldWVfZGVsYXllZF93b3JrKGRl dl9wcml2LT53cSwgJmRldl9wcml2LT5tbS5yZXRpcmVfd29yaywgMCk7CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3NjaGVkdWxlci5jCmluZGV4IGRmMmUyN2YuLjgxMWNiZTQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwpAQCAtMzEsNiArMzEsOCBAQCBzdGF0aWMgaW50ICAg ICAgICAgaTkxNV9zY2hlZHVsZXJfcmVtb3ZlX2RlcGVuZGVudChzdHJ1Y3QgaTkxNV9zY2hlZHVs ZXIgKnNjaGVkdQogCQkJCQkJICAgc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpy ZW1vdmUpOwogc3RhdGljIGludCAgICAgICAgIGk5MTVfc2NoZWR1bGVyX3N1Ym1pdChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJCQkgYm9vbCBpc19sb2NrZWQpOworc3RhdGljIGlu dCAgICAgICAgIGk5MTVfc2NoZWR1bGVyX3N1Ym1pdF9tYXhfcHJpb3JpdHkoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZywKKwkJCQkJICAgICAgIGJvb2wgaXNfbG9ja2VkKTsKIHN0YXRpYyB1 aW50MzJfdCAgICBpOTE1X3NjaGVkdWxlcl9jb3VudF9mbHlpbmcoc3RydWN0IGk5MTVfc2NoZWR1 bGVyICpzY2hlZHVsZXIsCiAJCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KTsKIHN0YXRpYyB2b2lkICAgICAgICBpOTE1X3NjaGVkdWxlcl9wcmlvcml0eV9idW1wX2NsZWFy KHN0cnVjdCBpOTE1X3NjaGVkdWxlciAqc2NoZWR1bGVyKTsKQEAgLTYwMCw2ICs2MDIsNTcgQEAg dm9pZCBpOTE1X2dlbV9zY2hlZHVsZXJfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIH0KIAoraW50IGk5MTVf c2NoZWR1bGVyX2ZsdXNoX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs CisJCQkJIGJvb2wgaXNfbG9ja2VkKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICAgICAg ICAgICAgKmRldl9wcml2OworCXN0cnVjdCBpOTE1X3NjaGVkdWxlciAgICAgICAgICAgICAgKnNj aGVkdWxlcjsKKwl1bnNpZ25lZCBsb25nICAgICAgIGZsYWdzOworCWludCAgICAgICAgICAgICAg ICAgZmx1c2hfY291bnQ7CisJdWludDMyX3QgICAgICAgICAgICByaW5nX2lkOworCisJaWYgKCFy ZXEpCisJCXJldHVybiAtRUlOVkFMOworCisJZGV2X3ByaXYgID0gcmVxLT5yaW5nLT5kZXYtPmRl dl9wcml2YXRlOworCXNjaGVkdWxlciA9IGRldl9wcml2LT5zY2hlZHVsZXI7CisKKwlpZiAoIXNj aGVkdWxlcikKKwkJcmV0dXJuIDA7CisKKwlpZiAoIXJlcS0+c2NoZWR1bGVyX3FlKQorCQlyZXR1 cm4gMDsKKworCWlmICghSTkxNV9TUVNfSVNfUVVFVUVEKHJlcS0+c2NoZWR1bGVyX3FlKSkKKwkJ cmV0dXJuIDA7CisKKwlyaW5nX2lkID0gcmVxLT5yaW5nLT5pZDsKKwlpZiAoaXNfbG9ja2VkICYm IChzY2hlZHVsZXItPmZsYWdzW3JpbmdfaWRdICYgaTkxNV9zZl9zdWJtaXR0aW5nKSkgeworCQkv KiBTY2hlZHVsZXIgaXMgYnVzeSBhbHJlYWR5IHN1Ym1pdHRpbmcgYW5vdGhlciBiYXRjaCwKKwkJ ICogY29tZSBiYWNrIGxhdGVyIHJhdGhlciB0aGFuIGdvaW5nIHJlY3Vyc2l2ZS4uLiAqLworCQly ZXR1cm4gLUVBR0FJTjsKKwl9CisKKwlpZiAobGlzdF9lbXB0eSgmc2NoZWR1bGVyLT5ub2RlX3F1 ZXVlW3JpbmdfaWRdKSkKKwkJcmV0dXJuIDA7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWR1 bGVyLT5sb2NrLCBmbGFncyk7CisKKwlpOTE1X3NjaGVkdWxlcl9wcmlvcml0eV9idW1wX2NsZWFy KHNjaGVkdWxlcik7CisKKwlmbHVzaF9jb3VudCA9IGk5MTVfc2NoZWR1bGVyX3ByaW9yaXR5X2J1 bXAoc2NoZWR1bGVyLAorCQkJICAgIHJlcS0+c2NoZWR1bGVyX3FlLCBzY2hlZHVsZXItPnByaW9y aXR5X2xldmVsX21heCk7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZHVsZXItPmxv Y2ssIGZsYWdzKTsKKworCWlmIChmbHVzaF9jb3VudCkgeworCQlEUk1fREVCVUdfRFJJVkVSKCI8 JXM+IEJ1bXBlZCAlZCBlbnRyaWVzXG4iLCByZXEtPnJpbmctPm5hbWUsIGZsdXNoX2NvdW50KTsK KwkJZmx1c2hfY291bnQgPSBpOTE1X3NjaGVkdWxlcl9zdWJtaXRfbWF4X3ByaW9yaXR5KHJlcS0+ cmluZywgaXNfbG9ja2VkKTsKKwl9CisKKwlyZXR1cm4gZmx1c2hfY291bnQ7Cit9CisKIHN0YXRp YyB2b2lkIGk5MTVfc2NoZWR1bGVyX3ByaW9yaXR5X2J1bXBfY2xlYXIoc3RydWN0IGk5MTVfc2No ZWR1bGVyICpzY2hlZHVsZXIpCiB7CiAJc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5 ICpub2RlOwpAQCAtNjUzLDYgKzcwNiw0NCBAQCBzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX3By aW9yaXR5X2J1bXAoc3RydWN0IGk5MTVfc2NoZWR1bGVyICpzY2hlZHVsZXIsCiAJcmV0dXJuIGNv dW50OwogfQogCitzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX3N1Ym1pdF9tYXhfcHJpb3JpdHko c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKKwkJCQkJICAgICAgYm9vbCBpc19sb2NrZWQp Cit7CisJc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICAqbm9kZTsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAgICAgICAgICAgICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2X3By aXZhdGU7CisJc3RydWN0IGk5MTVfc2NoZWR1bGVyICAgICAgICAgICAgICAqc2NoZWR1bGVyID0g ZGV2X3ByaXYtPnNjaGVkdWxlcjsKKwl1bnNpZ25lZCBsb25nCWZsYWdzOworCWludCAgICAgICAg ICAgICByZXQsIGNvdW50ID0gMDsKKwlib29sICAgICAgICAgICAgZm91bmQ7CisKKwlkbyB7CisJ CWZvdW5kID0gZmFsc2U7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hlZHVsZXItPmxvY2ssIGZs YWdzKTsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShub2RlLCAmc2NoZWR1bGVyLT5ub2RlX3F1ZXVl W3JpbmctPmlkXSwgbGluaykgeworCQkJaWYgKCFJOTE1X1NRU19JU19RVUVVRUQobm9kZSkpCisJ CQkJY29udGludWU7CisKKwkJCWlmIChub2RlLT5wcmlvcml0eSA8IHNjaGVkdWxlci0+cHJpb3Jp dHlfbGV2ZWxfbWF4KQorCQkJCWNvbnRpbnVlOworCisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVh azsKKwkJfQorCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZHVsZXItPmxvY2ssIGZsYWdz KTsKKworCQlpZiAoIWZvdW5kKQorCQkJYnJlYWs7CisKKwkJcmV0ID0gaTkxNV9zY2hlZHVsZXJf c3VibWl0KHJpbmcsIGlzX2xvY2tlZCk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsK KworCQljb3VudCArPSByZXQ7CisJfSB3aGlsZSAoZm91bmQpOworCisJcmV0dXJuIGNvdW50Owor fQorCiBzdGF0aWMgaW50IGk5MTVfc2NoZWR1bGVyX3BvcF9mcm9tX3F1ZXVlX2xvY2tlZChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJCSAgICBzdHJ1Y3QgaTkxNV9zY2hlZHVsZXJf cXVldWVfZW50cnkgKipwb3Bfbm9kZSwKIAkJCQkgICAgdW5zaWduZWQgbG9uZyAqZmxhZ3MpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaAppbmRleCA3M2M1ZTdkLi5mY2YyNjQwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgKQEAgLTkyLDYgKzkyLDggQEAgdm9p ZCAgICAgICAgaTkxNV9nZW1fc2NoZWR1bGVyX2NsZWFuX25vZGUoc3RydWN0IGk5MTVfc2NoZWR1 bGVyX3F1ZXVlX2VudHJ5ICpub2QKIGludCAgICAgICAgIGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2V4 ZWNidWZmZXIoc3RydWN0IGk5MTVfc2NoZWR1bGVyX3F1ZXVlX2VudHJ5ICpxZSk7CiBpbnQgICAg ICAgICBpOTE1X3NjaGVkdWxlcl9oYW5kbGVfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcpOwogdm9pZCAgICAgICAgaTkxNV9nZW1fc2NoZWR1bGVyX3dvcmtfaGFuZGxlcihzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspOworaW50ICAgICAgICAgaTkxNV9zY2hlZHVsZXJfZmx1c2hfcmVx dWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKKwkJCQkJIGJvb2wgaXNfbG9j a2VkKTsKIGJvb2wgICAgICAgIGk5MTVfc2NoZWR1bGVyX2lzX3JlcXVlc3RfdHJhY2tlZChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkJICAgICAgYm9vbCAqY29tcGxldGVk LCBib29sICpidXN5KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDk2 MjlkYWIuLjEyOWM4MjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTEx MjkxLDcgKzExMjkxLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfbW1pb19mbGlwX3dvcmtfZnVuYyhz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCVdBUk5fT04oX19pOTE1X3dhaXRfcmVxdWVzdCht bWlvX2ZsaXAtPnJlcSwKIAkJCQkJICAgIG1taW9fZmxpcC0+Y3J0Yy0+cmVzZXRfY291bnRlciwK IAkJCQkJICAgIGZhbHNlLCBOVUxMLAotCQkJCQkgICAgJm1taW9fZmxpcC0+aTkxNS0+cnBzLm1t aW9mbGlwcykpOworCQkJCQkgICAgJm1taW9fZmxpcC0+aTkxNS0+cnBzLm1taW9mbGlwcywKKwkJ CQkJICAgIGZhbHNlKSk7CiAKIAlpbnRlbF9kb19tbWlvX2ZsaXAobW1pb19mbGlwLT5jcnRjKTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IGRmMGNkNDguLmUw OTkyYjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTIxOTMs NyArMjE5Myw3IEBAIGludCBpbnRlbF9yaW5nX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZykKIAlyZXR1cm4gX19pOTE1X3dhaXRfcmVxdWVzdChyZXEsCiAJCQkJICAgYXRvbWljX3Jl YWQoJnRvX2k5MTUocmluZy0+ZGV2KS0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpLAogCQkJCSAg IHRvX2k5MTUocmluZy0+ZGV2KS0+bW0uaW50ZXJydXB0aWJsZSwKLQkJCQkgICBOVUxMLCBOVUxM KTsKKwkJCQkgICBOVUxMLCBOVUxMLCB0cnVlKTsKIH0KIAogaW50IGludGVsX3JpbmdfYWxsb2Nf cmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQotLSAK MS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==