From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 26/38] drm/i915: Pass around the intel_context Date: Fri, 1 Mar 2019 14:03:52 +0000 Message-ID: <20190301140404.26690-26-chris@chris-wilson.co.uk> References: <20190301140404.26690-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 fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id B66E36E30E for ; Fri, 1 Mar 2019 14:04:48 +0000 (UTC) In-Reply-To: <20190301140404.26690-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 SW5zdGVhZCBvZiBwYXNzaW5nIHRoZSBnZW1fY29udGV4dCBhbmQgZW5naW5lIHRvIGZpbmQgdGhl IGluc3RhbmNlIG9mCnRoZSBpbnRlbF9jb250ZXh0IHRvIHVzZSwgcGFzcyBhcm91bmQgdGhlIGlu dGVsX2NvbnRleHQgaW5zdGVhZC4gVGhpcyBpcwp1c2VmdWwgZm9yIHRoZSBuZXh0IGZldyBwYXRj aGVzLCB3aGVyZSB0aGUgaW50ZWxfY29udGV4dCBpcyBubyBsb25nZXIgYQpkaXJlY3QgbG9va3Vw LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgfCAgMiArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgfCAzMiArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyB8IDM2ICsrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDM0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGNiYzJiNTk3MjJhZS4uNDkz Y2JhOGE3NmFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTMxMzQsNyArMzEzNCw3IEBA IGludCBpOTE1X3BlcmZfYWRkX2NvbmZpZ19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogaW50IGk5MTVfcGVyZl9yZW1vdmVfY29uZmlnX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwog dm9pZCBpOTE1X29hX2luaXRfcmVnX3N0YXRlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKLQkJCSAgICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAorCQkJICAgIHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjZSwKIAkJCSAgICB1MzIgKnJlZ19zdGF0ZSk7CiAKIC8qIGk5MTVfZ2Vt X2V2aWN0LmMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKaW5kZXggOWViZjk5ZjNkOGQzLi5m OTY5YTA1MTI0NjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCkBAIC0xNjI5LDEzICsxNjI5 LDE0IEBAIHN0YXRpYyB2b2lkIGhzd19kaXNhYmxlX21ldHJpY19zZXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogICogSXQncyBmaW5lIHRvIHB1dCBvdXQtb2YtZGF0ZSB2YWx1 ZXMgaW50byB0aGVzZSBwZXItY29udGV4dCByZWdpc3RlcnMKICAqIGluIHRoZSBjYXNlIHRoYXQg dGhlIE9BIHVuaXQgaGFzIGJlZW4gZGlzYWJsZWQuCiAgKi8KLXN0YXRpYyB2b2lkIGdlbjhfdXBk YXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAotCQkJ CQkgICB1MzIgKnJlZ19zdGF0ZSwKLQkJCQkJICAgY29uc3Qgc3RydWN0IGk5MTVfb2FfY29uZmln ICpvYV9jb25maWcpCitzdGF0aWMgdm9pZAorZ2VuOF91cGRhdGVfcmVnX3N0YXRlX3VubG9ja2Vk KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKKwkJCSAgICAgICB1MzIgKnJlZ19zdGF0ZSwKKwkJ CSAgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9jb25maWcgKm9hX2NvbmZpZykKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjdHgtPmk5MTU7Ci0JdTMyIGN0eF9vYWN0 eGN0cmwgPSBkZXZfcHJpdi0+cGVyZi5vYS5jdHhfb2FjdHhjdHJsX29mZnNldDsKLQl1MzIgY3R4 X2ZsZXhldTAgPSBkZXZfcHJpdi0+cGVyZi5vYS5jdHhfZmxleGV1MF9vZmZzZXQ7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBjZS0+Z2VtX2NvbnRleHQtPmk5MTU7CisJdTMyIGN0 eF9vYWN0eGN0cmwgPSBpOTE1LT5wZXJmLm9hLmN0eF9vYWN0eGN0cmxfb2Zmc2V0OworCXUzMiBj dHhfZmxleGV1MCA9IGk5MTUtPnBlcmYub2EuY3R4X2ZsZXhldTBfb2Zmc2V0OwogCS8qIFRoZSBN TUlPIG9mZnNldHMgZm9yIEZsZXggRVUgcmVnaXN0ZXJzIGFyZW4ndCBjb250aWd1b3VzICovCiAJ aTkxNV9yZWdfdCBmbGV4X3JlZ3NbXSA9IHsKIAkJRVVfUEVSRl9DTlRMMCwKQEAgLTE2NDksOCAr MTY1MCw4IEBAIHN0YXRpYyB2b2lkIGdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1 Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCWludCBpOwogCiAJQ1RYX1JFRyhyZWdfc3RhdGUs IGN0eF9vYWN0eGN0cmwsIEdFTjhfT0FDVFhDT05UUk9MLAotCQkoZGV2X3ByaXYtPnBlcmYub2Eu cGVyaW9kX2V4cG9uZW50IDw8IEdFTjhfT0FfVElNRVJfUEVSSU9EX1NISUZUKSB8Ci0JCShkZXZf cHJpdi0+cGVyZi5vYS5wZXJpb2RpYyA/IEdFTjhfT0FfVElNRVJfRU5BQkxFIDogMCkgfAorCQko aTkxNS0+cGVyZi5vYS5wZXJpb2RfZXhwb25lbnQgPDwgR0VOOF9PQV9USU1FUl9QRVJJT0RfU0hJ RlQpIHwKKwkJKGk5MTUtPnBlcmYub2EucGVyaW9kaWMgPyBHRU44X09BX1RJTUVSX0VOQUJMRSA6 IDApIHwKIAkJR0VOOF9PQV9DT1VOVEVSX1JFU1VNRSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShmbGV4X3JlZ3MpOyBpKyspIHsKQEAgLTE2NzgsMTAgKzE2NzksOSBAQCBzdGF0aWMg dm9pZCBnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKmN0eCwKIAkJQ1RYX1JFRyhyZWdfc3RhdGUsIHN0YXRlX29mZnNldCwgZmxleF9yZWdzW2ld LCB2YWx1ZSk7CiAJfQogCi0JQ1RYX1JFRyhyZWdfc3RhdGUsIENUWF9SX1BXUl9DTEtfU1RBVEUs IEdFTjhfUl9QV1JfQ0xLX1NUQVRFLAotCQlnZW44X21ha2VfcnBjcyhkZXZfcHJpdiwKLQkJCSAg ICAgICAmdG9faW50ZWxfY29udGV4dChjdHgsCi0JCQkJCQkgZGV2X3ByaXYtPmVuZ2luZVtSQ1Nd KS0+c3NldSkpOworCUNUWF9SRUcocmVnX3N0YXRlLAorCQlDVFhfUl9QV1JfQ0xLX1NUQVRFLCBH RU44X1JfUFdSX0NMS19TVEFURSwKKwkJZ2VuOF9tYWtlX3JwY3MoaTkxNSwgJmNlLT5zc2V1KSk7 CiB9CiAKIC8qCkBAIC0xNzU0LDcgKzE3NTQsNyBAQCBzdGF0aWMgaW50IGdlbjhfY29uZmlndXJl X2FsbF9jb250ZXh0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWNlLT5z dGF0ZS0+b2JqLT5tbS5kaXJ0eSA9IHRydWU7CiAJCXJlZ3MgKz0gTFJDX1NUQVRFX1BOICogUEFH RV9TSVpFIC8gc2l6ZW9mKCpyZWdzKTsKIAotCQlnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2Nr ZWQoY3R4LCByZWdzLCBvYV9jb25maWcpOworCQlnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2Nr ZWQoY2UsIHJlZ3MsIG9hX2NvbmZpZyk7CiAKIAkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChj ZS0+c3RhdGUtPm9iaik7CiAJfQpAQCAtMjEzOCw4ICsyMTM4LDggQEAgc3RhdGljIGludCBpOTE1 X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiB9CiAKIHZv aWQgaTkxNV9vYV9pbml0X3JlZ19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs Ci0JCQkgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKLQkJCSAgICB1MzIgKnJlZ19z dGF0ZSkKKwkJCSAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCisJCQkgICAgdTMyICpyZWdz KQogewogCXN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW07CiAKQEAgLTIxNDgsNyArMjE0 OCw3IEBAIHZvaWQgaTkxNV9vYV9pbml0X3JlZ19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCiAKIAlzdHJlYW0gPSBlbmdpbmUtPmk5MTUtPnBlcmYub2EuZXhjbHVzaXZlX3N0 cmVhbTsKIAlpZiAoc3RyZWFtKQotCQlnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoY3R4 LCByZWdfc3RhdGUsIHN0cmVhbS0+b2FfY29uZmlnKTsKKwkJZ2VuOF91cGRhdGVfcmVnX3N0YXRl X3VubG9ja2VkKGNlLCByZWdzLCBzdHJlYW0tPm9hX2NvbmZpZyk7CiB9CiAKIC8qKgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYwppbmRleCBkNTBhMzNjNTc4YzUuLmEyMjEwZjc5ZGM2NyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTE3MCw3ICsxNzAsNyBAQCBzdGF0aWMgaW50IGV4ZWNs aXN0c19jb250ZXh0X2RlZmVycmVkX2FsbG9jKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgs CiAJCQkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkJCSAgICBzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY2UpOwogc3RhdGljIHZvaWQgZXhlY2xpc3RzX2luaXRfcmVnX3N0 YXRlKHUzMiAqcmVnX3N0YXRlLAotCQkJCSAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0 eCwKKwkJCQkgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAkJCQkgICAgIHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9yaW5nICpyaW5n KTsKIApAQCAtMTMxNCw5ICsxMzE0LDEwIEBAIF9fZXhlY2xpc3RzX3VwZGF0ZV9yZWdfc3RhdGUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCXJlZ3NbQ1RYX1JJTkdfVEFJTCArIDFd ID0gcmluZy0+dGFpbDsKIAogCS8qIFJQQ1MgKi8KLQlpZiAoZW5naW5lLT5jbGFzcyA9PSBSRU5E RVJfQ0xBU1MpCi0JCXJlZ3NbQ1RYX1JfUFdSX0NMS19TVEFURSArIDFdID0gZ2VuOF9tYWtlX3Jw Y3MoZW5naW5lLT5pOTE1LAotCQkJCQkJCSAgICAgICAmY2UtPnNzZXUpOworCWlmIChlbmdpbmUt PmNsYXNzID09IFJFTkRFUl9DTEFTUykgeworCQlyZWdzW0NUWF9SX1BXUl9DTEtfU1RBVEUgKyAx XSA9CisJCQlnZW44X21ha2VfcnBjcyhlbmdpbmUtPmk5MTUsICZjZS0+c3NldSk7CisJfQogfQog CiBzdGF0aWMgc3RydWN0IGludGVsX2NvbnRleHQgKgpAQCAtMjAyMSw3ICsyMDIyLDcgQEAgc3Rh dGljIHZvaWQgZXhlY2xpc3RzX3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwg Ym9vbCBzdGFsbGVkKQogCXJxLT5yaW5nLT5oZWFkID0gaW50ZWxfcmluZ193cmFwKHJxLT5yaW5n LCBycS0+aGVhZCk7CiAJaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocnEtPnJpbmcpOwogCi0JZXhl Y2xpc3RzX2luaXRfcmVnX3N0YXRlKHJlZ3MsIHJxLT5nZW1fY29udGV4dCwgZW5naW5lLCBycS0+ cmluZyk7CisJZXhlY2xpc3RzX2luaXRfcmVnX3N0YXRlKHJlZ3MsIHJxLT5od19jb250ZXh0LCBl bmdpbmUsIHJxLT5yaW5nKTsKIAlfX2V4ZWNsaXN0c191cGRhdGVfcmVnX3N0YXRlKGVuZ2luZSwg cnEtPmh3X2NvbnRleHQpOwogCiBvdXRfdW5sb2NrOgpAQCAtMjY1OSw3ICsyNjYwLDcgQEAgc3Rh dGljIHUzMiBpbnRlbF9scl9pbmRpcmVjdF9jdHhfb2Zmc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIH0KIAogc3RhdGljIHZvaWQgZXhlY2xpc3RzX2luaXRfcmVnX3N0YXRlKHUz MiAqcmVncywKLQkJCQkgICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCisJCQkJICAg ICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUsCiAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZykKIHsKQEAgLTI3 MzUsMjQgKzI3MzYsMjQgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2luaXRfcmVnX3N0YXRlKHUz MiAqcmVncywKIAlDVFhfUkVHKHJlZ3MsIENUWF9QRFAwX1VEVywgR0VOOF9SSU5HX1BEUF9VRFco ZW5naW5lLCAwKSwgMCk7CiAJQ1RYX1JFRyhyZWdzLCBDVFhfUERQMF9MRFcsIEdFTjhfUklOR19Q RFBfTERXKGVuZ2luZSwgMCksIDApOwogCi0JaWYgKGk5MTVfdm1faXNfNDhiaXQoJmN0eC0+cHBn dHQtPnZtKSkgeworCWlmIChpOTE1X3ZtX2lzXzQ4Yml0KCZjZS0+Z2VtX2NvbnRleHQtPnBwZ3R0 LT52bSkpIHsKIAkJLyogNjRiIFBQR1RUICg0OGJpdCBjYW5vbmljYWwpCiAJCSAqIFBEUDBfREVT Q1JJUFRPUiBjb250YWlucyB0aGUgYmFzZSBhZGRyZXNzIHRvIFBNTDQgYW5kCiAJCSAqIG90aGVy IFBEUCBEZXNjcmlwdG9ycyBhcmUgaWdub3JlZC4KIAkJICovCi0JCUFTU0lHTl9DVFhfUE1MNChj dHgtPnBwZ3R0LCByZWdzKTsKKwkJQVNTSUdOX0NUWF9QTUw0KGNlLT5nZW1fY29udGV4dC0+cHBn dHQsIHJlZ3MpOwogCX0gZWxzZSB7Ci0JCUFTU0lHTl9DVFhfUERQKGN0eC0+cHBndHQsIHJlZ3Ms IDMpOwotCQlBU1NJR05fQ1RYX1BEUChjdHgtPnBwZ3R0LCByZWdzLCAyKTsKLQkJQVNTSUdOX0NU WF9QRFAoY3R4LT5wcGd0dCwgcmVncywgMSk7Ci0JCUFTU0lHTl9DVFhfUERQKGN0eC0+cHBndHQs IHJlZ3MsIDApOworCQlBU1NJR05fQ1RYX1BEUChjZS0+Z2VtX2NvbnRleHQtPnBwZ3R0LCByZWdz LCAzKTsKKwkJQVNTSUdOX0NUWF9QRFAoY2UtPmdlbV9jb250ZXh0LT5wcGd0dCwgcmVncywgMik7 CisJCUFTU0lHTl9DVFhfUERQKGNlLT5nZW1fY29udGV4dC0+cHBndHQsIHJlZ3MsIDEpOworCQlB U1NJR05fQ1RYX1BEUChjZS0+Z2VtX2NvbnRleHQtPnBwZ3R0LCByZWdzLCAwKTsKIAl9CiAKIAlp ZiAocmNzKSB7CiAJCXJlZ3NbQ1RYX0xSSV9IRUFERVJfMl0gPSBNSV9MT0FEX1JFR0lTVEVSX0lN TSgxKTsKIAkJQ1RYX1JFRyhyZWdzLCBDVFhfUl9QV1JfQ0xLX1NUQVRFLCBHRU44X1JfUFdSX0NM S19TVEFURSwgMCk7CiAKLQkJaTkxNV9vYV9pbml0X3JlZ19zdGF0ZShlbmdpbmUsIGN0eCwgcmVn cyk7CisJCWk5MTVfb2FfaW5pdF9yZWdfc3RhdGUoZW5naW5lLCBjZSwgcmVncyk7CiAJfQogCiAJ cmVnc1tDVFhfRU5EXSA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7CkBAIC0yNzYxLDcgKzI3NjIsNyBA QCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfaW5pdF9yZWdfc3RhdGUodTMyICpyZWdzLAogfQogCiBz dGF0aWMgaW50Ci1wb3B1bGF0ZV9scl9jb250ZXh0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpj dHgsCitwb3B1bGF0ZV9scl9jb250ZXh0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAkJICAg IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqLAogCQkgICAgc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLAogCQkgICAgc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCkBAIC0y ODA3LDExICsyODA4LDEyIEBAIHBvcHVsYXRlX2xyX2NvbnRleHQoc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmN0eCwKIAkvKiBUaGUgc2Vjb25kIHBhZ2Ugb2YgdGhlIGNvbnRleHQgb2JqZWN0IGNv bnRhaW5zIHNvbWUgZmllbGRzIHdoaWNoIG11c3QKIAkgKiBiZSBzZXQgdXAgcHJpb3IgdG8gdGhl IGZpcnN0IGV4ZWN1dGlvbi4gKi8KIAlyZWdzID0gdmFkZHIgKyBMUkNfU1RBVEVfUE4gKiBQQUdF X1NJWkU7Ci0JZXhlY2xpc3RzX2luaXRfcmVnX3N0YXRlKHJlZ3MsIGN0eCwgZW5naW5lLCByaW5n KTsKKwlleGVjbGlzdHNfaW5pdF9yZWdfc3RhdGUocmVncywgY2UsIGVuZ2luZSwgcmluZyk7CiAJ aWYgKCFlbmdpbmUtPmRlZmF1bHRfc3RhdGUpCiAJCXJlZ3NbQ1RYX0NPTlRFWFRfQ09OVFJPTCAr IDFdIHw9CiAJCQlfTUFTS0VEX0JJVF9FTkFCTEUoQ1RYX0NUUkxfRU5HSU5FX0NUWF9SRVNUT1JF X0lOSElCSVQpOwotCWlmIChjdHggPT0gY3R4LT5pOTE1LT5wcmVlbXB0X2NvbnRleHQgJiYgSU5U RUxfR0VOKGVuZ2luZS0+aTkxNSkgPCAxMSkKKwlpZiAoY2UtPmdlbV9jb250ZXh0ID09IGVuZ2lu ZS0+aTkxNS0+cHJlZW1wdF9jb250ZXh0ICYmCisJICAgIElOVEVMX0dFTihlbmdpbmUtPmk5MTUp IDwgMTEpCiAJCXJlZ3NbQ1RYX0NPTlRFWFRfQ09OVFJPTCArIDFdIHw9CiAJCQlfTUFTS0VEX0JJ VF9FTkFCTEUoQ1RYX0NUUkxfRU5HSU5FX0NUWF9SRVNUT1JFX0lOSElCSVQgfAogCQkJCQkgICBD VFhfQ1RSTF9FTkdJTkVfQ1RYX1NBVkVfSU5ISUJJVCk7CkBAIC0yODY5LDcgKzI4NzEsNyBAQCBz dGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X2RlZmVycmVkX2FsbG9jKHN0cnVjdCBpOTE1X2dl bV9jb250ZXh0ICpjdHgsCiAJCWdvdG8gZXJyb3JfZGVyZWZfb2JqOwogCX0KIAotCXJldCA9IHBv cHVsYXRlX2xyX2NvbnRleHQoY3R4LCBjdHhfb2JqLCBlbmdpbmUsIHJpbmcpOworCXJldCA9IHBv cHVsYXRlX2xyX2NvbnRleHQoY2UsIGN0eF9vYmosIGVuZ2luZSwgcmluZyk7CiAJaWYgKHJldCkg ewogCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gcG9wdWxhdGUgTFJDOiAlZFxuIiwgcmV0 KTsKIAkJZ290byBlcnJvcl9yaW5nX2ZyZWU7Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==