From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 1/3] drm/i915: Rework some interrupt handling functions to take intel_gt Date: Tue, 2 Jul 2019 11:23:11 +0100 Message-ID: <20190702102313.9333-2-tvrtko.ursulin@linux.intel.com> References: <20190702102313.9333-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 12E9D89AC2 for ; Tue, 2 Jul 2019 10:23:24 +0000 (UTC) In-Reply-To: <20190702102313.9333-1-tvrtko.ursulin@linux.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 Cc: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNvbWUgaW50 ZXJydXB0IGhhbmRsaW5nIGZ1bmN0aW9ucyBhbHJlYWR5IGhhdmUgZ3QgaW4gdGhlaXIgbmFtZXMK c3VnZ2VzdGluZyB0aGVtIGFzIG9idmlvdXMgY2FuZGlkYXRlcyB0byBtYWtlIHRoZW0gdGFrZSBz dHJ1Y3QgaW50ZWxfZ3QKaW5zdGVhZCBvZiBpOTE1LgoKU2lnbmVkLW9mZi1ieTogUGF1bG8gWmFu b25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBQYXVsbyBaYW5v bmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3Vs aW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8g PGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9pcnEuYyB8IDg4ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jCmluZGV4IDczZjAzMzhmYWY5Zi4uOTUyMDUzZTYxMWY4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMKQEAgLTMwNSwxNyArMzA1LDE3IEBAIHZvaWQgaTkxNV9ob3RwbHVnX2lu dGVycnVwdF91cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogfQogCiBz dGF0aWMgdTMyCi1nZW4xMV9ndF9lbmdpbmVfaWRlbnRpdHkoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKiBjb25zdCBpOTE1LAorZ2VuMTFfZ3RfZW5naW5lX2lkZW50aXR5KHN0cnVjdCBpbnRlbF9n dCAqZ3QsCiAJCQkgY29uc3QgdW5zaWduZWQgaW50IGJhbmssIGNvbnN0IHVuc2lnbmVkIGludCBi aXQpOwogCi1zdGF0aWMgYm9vbCBnZW4xMV9yZXNldF9vbmVfaWlyKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICogY29uc3QgaTkxNSwKK3N0YXRpYyBib29sIGdlbjExX3Jlc2V0X29uZV9paXIoc3Ry dWN0IGludGVsX2d0ICpndCwKIAkJCQljb25zdCB1bnNpZ25lZCBpbnQgYmFuaywKIAkJCQljb25z dCB1bnNpZ25lZCBpbnQgYml0KQogewotCXZvaWQgX19pb21lbSAqIGNvbnN0IHJlZ3MgPSBpOTE1 LT51bmNvcmUucmVnczsKKwl2b2lkIF9faW9tZW0gKiBjb25zdCByZWdzID0gZ3QtPnVuY29yZS0+ cmVnczsKIAl1MzIgZHc7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5pcnFfbG9jayk7 CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZ3QtPmk5MTUtPmlycV9sb2NrKTsKIAogCWR3ID0gcmF3 X3JlZ19yZWFkKHJlZ3MsIEdFTjExX0dUX0lOVFJfRFcoYmFuaykpOwogCWlmIChkdyAmIEJJVChi aXQpKSB7CkBAIC0zMjMsNyArMzIzLDcgQEAgc3RhdGljIGJvb2wgZ2VuMTFfcmVzZXRfb25lX2lp cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUsCiAJCSAqIEFjY29yZGluZyB0 byB0aGUgQlNwZWMsIERXX0lJUiBiaXRzIGNhbm5vdCBiZSBjbGVhcmVkIHdpdGhvdXQKIAkJICog Zmlyc3Qgc2VydmljaW5nIHRoZSBTZWxlY3RvciAmIFNoYXJlZCBJSVIgcmVnaXN0ZXJzLgogCQkg Ki8KLQkJZ2VuMTFfZ3RfZW5naW5lX2lkZW50aXR5KGk5MTUsIGJhbmssIGJpdCk7CisJCWdlbjEx X2d0X2VuZ2luZV9pZGVudGl0eShndCwgYmFuaywgYml0KTsKIAogCQkvKgogCQkgKiBXZSBsb2Nr ZWQgR1QgSU5UIERXIGJ5IHJlYWRpbmcgaXQuIElmIHdlIHdhbnQgdG8gKHRyeQpAQCAtNTI4LDcg KzUyOCw3IEBAIHZvaWQgZ2VuMTFfcmVzZXRfcnBzX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogewogCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9j ayk7CiAKLQl3aGlsZSAoZ2VuMTFfcmVzZXRfb25lX2lpcihkZXZfcHJpdiwgMCwgR0VOMTFfR1RQ TSkpCisJd2hpbGUgKGdlbjExX3Jlc2V0X29uZV9paXIoJmRldl9wcml2LT5ndCwgMCwgR0VOMTFf R1RQTSkpCiAJCTsKIAogCWRldl9wcml2LT5ndF9wbS5ycHMucG1faWlyID0gMDsKQEAgLTU1NSw3 ICs1NTUsNyBAQCB2b2lkIGdlbjZfZW5hYmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAlXQVJOX09OX09OQ0UocnBzLT5wbV9paXIpOwogCiAJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCi0JCVdBUk5fT05fT05DRShnZW4xMV9yZXNldF9v bmVfaWlyKGRldl9wcml2LCAwLCBHRU4xMV9HVFBNKSk7CisJCVdBUk5fT05fT05DRShnZW4xMV9y ZXNldF9vbmVfaWlyKCZkZXZfcHJpdi0+Z3QsIDAsIEdFTjExX0dUUE0pKTsKIAllbHNlCiAJCVdB Uk5fT05fT05DRShJOTE1X1JFQUQoZ2VuNl9wbV9paXIoZGV2X3ByaXYpKSAmIGRldl9wcml2LT5w bV9ycHNfZXZlbnRzKTsKIApAQCAtNjM1LDcgKzYzNSw3IEBAIHZvaWQgZ2VuOV9kaXNhYmxlX2d1 Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHZvaWQgZ2Vu MTFfcmVzZXRfZ3VjX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7 CiAJc3Bpbl9sb2NrX2lycSgmaTkxNS0+aXJxX2xvY2spOwotCWdlbjExX3Jlc2V0X29uZV9paXIo aTkxNSwgMCwgR0VOMTFfR1VDKTsKKwlnZW4xMV9yZXNldF9vbmVfaWlyKCZpOTE1LT5ndCwgMCwg R0VOMTFfR1VDKTsKIAlzcGluX3VubG9ja19pcnEoJmk5MTUtPmlycV9sb2NrKTsKIH0KIApAQCAt NjQ2LDcgKzY0Niw3IEBAIHZvaWQgZ2VuMTFfZW5hYmxlX2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJdTMyIGV2ZW50cyA9IFJFR19GSUVMRF9QUkVQ KEVOR0lORTFfTUFTSywKIAkJCQkJICAgIEdFTjExX0dVQ19JTlRSX0dVQzJIT1NUKTsKIAotCQlX QVJOX09OX09OQ0UoZ2VuMTFfcmVzZXRfb25lX2lpcihkZXZfcHJpdiwgMCwgR0VOMTFfR1VDKSk7 CisJCVdBUk5fT05fT05DRShnZW4xMV9yZXNldF9vbmVfaWlyKCZkZXZfcHJpdi0+Z3QsIDAsIEdF TjExX0dVQykpOwogCQlJOTE1X1dSSVRFKEdFTjExX0dVQ19TR19JTlRSX0VOQUJMRSwgZXZlbnRz KTsKIAkJSTkxNV9XUklURShHRU4xMV9HVUNfU0dfSU5UUl9NQVNLLCB+ZXZlbnRzKTsKIAkJZGV2 X3ByaXYtPmd1Yy5pbnRlcnJ1cHRzLmVuYWJsZWQgPSB0cnVlOwpAQCAtMzAzMywxNCArMzAzMywx NCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICph cmcpCiB9CiAKIHN0YXRpYyB1MzIKLWdlbjExX2d0X2VuZ2luZV9pZGVudGl0eShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUsCitnZW4xMV9ndF9lbmdpbmVfaWRlbnRpdHkoc3Ry dWN0IGludGVsX2d0ICpndCwKIAkJCSBjb25zdCB1bnNpZ25lZCBpbnQgYmFuaywgY29uc3QgdW5z aWduZWQgaW50IGJpdCkKIHsKLQl2b2lkIF9faW9tZW0gKiBjb25zdCByZWdzID0gaTkxNS0+dW5j b3JlLnJlZ3M7CisJdm9pZCBfX2lvbWVtICogY29uc3QgcmVncyA9IGd0LT51bmNvcmUtPnJlZ3M7 CiAJdTMyIHRpbWVvdXRfdHM7CiAJdTMyIGlkZW50OwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgm aTkxNS0+aXJxX2xvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmd0LT5pOTE1LT5pcnFfbG9j ayk7CiAKIAlyYXdfcmVnX3dyaXRlKHJlZ3MsIEdFTjExX0lJUl9SRUdfU0VMRUNUT1IoYmFuayks IEJJVChiaXQpKTsKIApAQCAtMzA2Nyw5ICszMDY3LDExIEBAIGdlbjExX2d0X2VuZ2luZV9pZGVu dGl0eShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUsCiB9CiAKIHN0YXRpYyB2 b2lkCi1nZW4xMV9vdGhlcl9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqIGNv bnN0IGk5MTUsCi0JCQljb25zdCB1OCBpbnN0YW5jZSwgY29uc3QgdTE2IGlpcikKK2dlbjExX290 aGVyX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGNvbnN0IHU4IGluc3RhbmNlLAor CQkJY29uc3QgdTE2IGlpcikKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGd0 LT5pOTE1OworCiAJaWYgKGluc3RhbmNlID09IE9USEVSX0dVQ19JTlNUQU5DRSkKIAkJcmV0dXJu IGdlbjExX2d1Y19pcnFfaGFuZGxlcihpOTE1LCBpaXIpOwogCkBAIC0zMDgxLDEzICszMDgzLDEz IEBAIGdlbjExX290aGVyX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICogY29u c3QgaTkxNSwKIH0KIAogc3RhdGljIHZvaWQKLWdlbjExX2VuZ2luZV9pcnFfaGFuZGxlcihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUsCi0JCQkgY29uc3QgdTggY2xhc3MsIGNv bnN0IHU4IGluc3RhbmNlLCBjb25zdCB1MTYgaWlyKQorZ2VuMTFfZW5naW5lX2lycV9oYW5kbGVy KHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGNvbnN0IHU4IGNsYXNzLAorCQkJIGNvbnN0IHU4IGluc3Rh bmNlLCBjb25zdCB1MTYgaWlyKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsK IAogCWlmIChpbnN0YW5jZSA8PSBNQVhfRU5HSU5FX0lOU1RBTkNFKQotCQllbmdpbmUgPSBpOTE1 LT5lbmdpbmVfY2xhc3NbY2xhc3NdW2luc3RhbmNlXTsKKwkJZW5naW5lID0gZ3QtPmk5MTUtPmVu Z2luZV9jbGFzc1tjbGFzc11baW5zdGFuY2VdOwogCWVsc2UKIAkJZW5naW5lID0gTlVMTDsKIApA QCAtMzA5OSw4ICszMTAxLDcgQEAgZ2VuMTFfZW5naW5lX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICogY29uc3QgaTkxNSwKIH0KIAogc3RhdGljIHZvaWQKLWdlbjExX2d0X2lk ZW50aXR5X2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKiBjb25zdCBpOTE1LAotCQkJ ICBjb25zdCB1MzIgaWRlbnRpdHkpCitnZW4xMV9ndF9pZGVudGl0eV9oYW5kbGVyKHN0cnVjdCBp bnRlbF9ndCAqZ3QsIGNvbnN0IHUzMiBpZGVudGl0eSkKIHsKIAljb25zdCB1OCBjbGFzcyA9IEdF TjExX0lOVFJfRU5HSU5FX0NMQVNTKGlkZW50aXR5KTsKIAljb25zdCB1OCBpbnN0YW5jZSA9IEdF TjExX0lOVFJfRU5HSU5FX0lOU1RBTkNFKGlkZW50aXR5KTsKQEAgLTMxMTAsMzEgKzMxMTEsMzAg QEAgZ2VuMTFfZ3RfaWRlbnRpdHlfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqIGNv bnN0IGk5MTUsCiAJCXJldHVybjsKIAogCWlmIChjbGFzcyA8PSBDT1BZX0VOR0lORV9DTEFTUykK LQkJcmV0dXJuIGdlbjExX2VuZ2luZV9pcnFfaGFuZGxlcihpOTE1LCBjbGFzcywgaW5zdGFuY2Us IGludHIpOworCQlyZXR1cm4gZ2VuMTFfZW5naW5lX2lycV9oYW5kbGVyKGd0LCBjbGFzcywgaW5z dGFuY2UsIGludHIpOwogCiAJaWYgKGNsYXNzID09IE9USEVSX0NMQVNTKQotCQlyZXR1cm4gZ2Vu MTFfb3RoZXJfaXJxX2hhbmRsZXIoaTkxNSwgaW5zdGFuY2UsIGludHIpOworCQlyZXR1cm4gZ2Vu MTFfb3RoZXJfaXJxX2hhbmRsZXIoZ3QsIGluc3RhbmNlLCBpbnRyKTsKIAogCVdBUk5fT05DRSgx LCAidW5rbm93biBpbnRlcnJ1cHQgY2xhc3M9MHgleCwgaW5zdGFuY2U9MHgleCwgaW50cj0weCV4 XG4iLAogCQkgIGNsYXNzLCBpbnN0YW5jZSwgaW50cik7CiB9CiAKIHN0YXRpYyB2b2lkCi1nZW4x MV9ndF9iYW5rX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKiBjb25zdCBpOTE1LAot CQkgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgYmFuaykKK2dlbjExX2d0X2JhbmtfaGFuZGxlcihz dHJ1Y3QgaW50ZWxfZ3QgKmd0LCBjb25zdCB1bnNpZ25lZCBpbnQgYmFuaykKIHsKLQl2b2lkIF9f aW9tZW0gKiBjb25zdCByZWdzID0gaTkxNS0+dW5jb3JlLnJlZ3M7CisJdm9pZCBfX2lvbWVtICog Y29uc3QgcmVncyA9IGd0LT51bmNvcmUtPnJlZ3M7CiAJdW5zaWduZWQgbG9uZyBpbnRyX2R3Owog CXVuc2lnbmVkIGludCBiaXQ7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5pcnFfbG9j ayk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZ3QtPmk5MTUtPmlycV9sb2NrKTsKIAogCWludHJf ZHcgPSByYXdfcmVnX3JlYWQocmVncywgR0VOMTFfR1RfSU5UUl9EVyhiYW5rKSk7CiAKIAlmb3Jf ZWFjaF9zZXRfYml0KGJpdCwgJmludHJfZHcsIDMyKSB7Ci0JCWNvbnN0IHUzMiBpZGVudCA9IGdl bjExX2d0X2VuZ2luZV9pZGVudGl0eShpOTE1LCBiYW5rLCBiaXQpOworCQljb25zdCB1MzIgaWRl bnQgPSBnZW4xMV9ndF9lbmdpbmVfaWRlbnRpdHkoZ3QsIGJhbmssIGJpdCk7CiAKLQkJZ2VuMTFf Z3RfaWRlbnRpdHlfaGFuZGxlcihpOTE1LCBpZGVudCk7CisJCWdlbjExX2d0X2lkZW50aXR5X2hh bmRsZXIoZ3QsIGlkZW50KTsKIAl9CiAKIAkvKiBDbGVhciBtdXN0IGJlIGFmdGVyIHNoYXJlZCBo YXMgYmVlbiBzZXJ2ZWQgZm9yIGVuZ2luZSAqLwpAQCAtMzE0MiwyNSArMzE0MiwyNSBAQCBnZW4x MV9ndF9iYW5rX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKiBjb25zdCBpOTE1LAog fQogCiBzdGF0aWMgdm9pZAotZ2VuMTFfZ3RfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKiBjb25zdCBpOTE1LAotCQkgICAgIGNvbnN0IHUzMiBtYXN0ZXJfY3RsKQorZ2VuMTFf Z3RfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2d0ICpndCwgY29uc3QgdTMyIG1hc3Rlcl9jdGwp CiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsKIAl1bnNpZ25l ZCBpbnQgYmFuazsKIAogCXNwaW5fbG9jaygmaTkxNS0+aXJxX2xvY2spOwogCiAJZm9yIChiYW5r ID0gMDsgYmFuayA8IDI7IGJhbmsrKykgewogCQlpZiAobWFzdGVyX2N0bCAmIEdFTjExX0dUX0RX X0lSUShiYW5rKSkKLQkJCWdlbjExX2d0X2JhbmtfaGFuZGxlcihpOTE1LCBiYW5rKTsKKwkJCWdl bjExX2d0X2JhbmtfaGFuZGxlcihndCwgYmFuayk7CiAJfQogCiAJc3Bpbl91bmxvY2soJmk5MTUt PmlycV9sb2NrKTsKIH0KIAogc3RhdGljIHUzMgotZ2VuMTFfZ3VfbWlzY19pcnFfYWNrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3QgdTMyIG1hc3Rlcl9jdGwpCitnZW4x MV9ndV9taXNjX2lycV9hY2soc3RydWN0IGludGVsX2d0ICpndCwgY29uc3QgdTMyIG1hc3Rlcl9j dGwpCiB7Ci0Jdm9pZCBfX2lvbWVtICogY29uc3QgcmVncyA9IGRldl9wcml2LT51bmNvcmUucmVn czsKKwl2b2lkIF9faW9tZW0gKiBjb25zdCByZWdzID0gZ3QtPnVuY29yZS0+cmVnczsKIAl1MzIg aWlyOwogCiAJaWYgKCEobWFzdGVyX2N0bCAmIEdFTjExX0dVX01JU0NfSVJRKSkKQEAgLTMxNzQs MTAgKzMxNzQsMTAgQEAgZ2VuMTFfZ3VfbWlzY19pcnFfYWNrKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgY29uc3QgdTMyIG1hc3Rlcl9jdGwpCiB9CiAKIHN0YXRpYyB2b2lkCi1n ZW4xMV9ndV9taXNjX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgY29uc3QgdTMyIGlpcikKK2dlbjExX2d1X21pc2NfaXJxX2hhbmRsZXIoc3RydWN0IGludGVs X2d0ICpndCwgY29uc3QgdTMyIGlpcikKIHsKIAlpZiAoaWlyICYgR0VOMTFfR1VfTUlTQ19HU0Up Ci0JCWludGVsX29wcmVnaW9uX2FzbGVfaW50cihkZXZfcHJpdik7CisJCWludGVsX29wcmVnaW9u X2FzbGVfaW50cihndC0+aTkxNSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTMyIGdlbjExX21hc3Rl cl9pbnRyX2Rpc2FibGUodm9pZCBfX2lvbWVtICogY29uc3QgcmVncykKQEAgLTMyMDIsNiArMzIw Miw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnZW4xMV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lk ICphcmcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKiBjb25zdCBpOTE1ID0gYXJnOwog CXZvaWQgX19pb21lbSAqIGNvbnN0IHJlZ3MgPSBpOTE1LT51bmNvcmUucmVnczsKKwlzdHJ1Y3Qg aW50ZWxfZ3QgKmd0ID0gJmk5MTUtPmd0OwogCXUzMiBtYXN0ZXJfY3RsOwogCXUzMiBndV9taXNj X2lpcjsKIApAQCAtMzIxNSw3ICszMjE2LDcgQEAgc3RhdGljIGlycXJldHVybl90IGdlbjExX2ly cV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAl9CiAKIAkvKiBGaW5kLCBjbGVhciwgdGhl biBwcm9jZXNzIGVhY2ggc291cmNlIG9mIGludGVycnVwdC4gKi8KLQlnZW4xMV9ndF9pcnFfaGFu ZGxlcihpOTE1LCBtYXN0ZXJfY3RsKTsKKwlnZW4xMV9ndF9pcnFfaGFuZGxlcihndCwgbWFzdGVy X2N0bCk7CiAKIAkvKiBJUlFzIGFyZSBzeW5jZWQgZHVyaW5nIHJ1bnRpbWVfc3VzcGVuZCwgd2Ug ZG9uJ3QgcmVxdWlyZSBhIHdha2VyZWYgKi8KIAlpZiAobWFzdGVyX2N0bCAmIEdFTjExX0RJU1BM QVlfSVJRKSB7CkBAIC0zMjMwLDExICszMjMxLDExIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnZW4x MV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJCWVuYWJsZV9ycG1fd2FrZXJlZl9h c3NlcnRzKCZpOTE1LT5ydW50aW1lX3BtKTsKIAl9CiAKLQlndV9taXNjX2lpciA9IGdlbjExX2d1 X21pc2NfaXJxX2FjayhpOTE1LCBtYXN0ZXJfY3RsKTsKKwlndV9taXNjX2lpciA9IGdlbjExX2d1 X21pc2NfaXJxX2FjayhndCwgbWFzdGVyX2N0bCk7CiAKIAlnZW4xMV9tYXN0ZXJfaW50cl9lbmFi bGUocmVncyk7CiAKLQlnZW4xMV9ndV9taXNjX2lycV9oYW5kbGVyKGk5MTUsIGd1X21pc2NfaWly KTsKKwlnZW4xMV9ndV9taXNjX2lycV9oYW5kbGVyKGd0LCBndV9taXNjX2lpcik7CiAKIAlyZXR1 cm4gSVJRX0hBTkRMRUQ7CiB9CkBAIC0zNTkwLDggKzM1OTEsMTAgQEAgc3RhdGljIHZvaWQgZ2Vu OF9pcnFfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlpYnhfaXJx X3Jlc2V0KGRldl9wcml2KTsKIH0KIAotc3RhdGljIHZvaWQgZ2VuMTFfZ3RfaXJxX3Jlc2V0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGdlbjExX2d0X2ly cV9yZXNldChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGd0LT5pOTE1OworCiAJLyogRGlzYWJsZSBSQ1MsIEJDUywgVkNTIGFuZCBW RUNTIGNsYXNzIGVuZ2luZXMuICovCiAJSTkxNV9XUklURShHRU4xMV9SRU5ERVJfQ09QWV9JTlRS X0VOQUJMRSwgMCk7CiAJSTkxNV9XUklURShHRU4xMV9WQ1NfVkVDU19JTlRSX0VOQUJMRSwJICAw KTsKQEAgLTM2MTYsNyArMzYxOSw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2lycV9yZXNldChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlnZW4xMV9tYXN0ZXJfaW50cl9kaXNh YmxlKGRldl9wcml2LT51bmNvcmUucmVncyk7CiAKLQlnZW4xMV9ndF9pcnFfcmVzZXQoZGV2X3By aXYpOworCWdlbjExX2d0X2lycV9yZXNldCgmZGV2X3ByaXYtPmd0KTsKIAogCUk5MTVfV1JJVEUo R0VOMTFfRElTUExBWV9JTlRfQ1RMLCAwKTsKIApAQCAtNDIyMiw4ICs0MjI1LDkgQEAgc3RhdGlj IHZvaWQgZ2VuOF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogCWdlbjhfbWFzdGVyX2ludHJfZW5hYmxlKGRldl9wcml2LT51bmNvcmUucmVncyk7CiB9 CiAKLXN0YXRpYyB2b2lkIGdlbjExX2d0X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdm9pZCBnZW4xMV9ndF9pcnFfcG9zdGluc3RhbGwo c3RydWN0IGludGVsX2d0ICpndCkKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBndC0+aTkxNTsKIAljb25zdCB1MzIgaXJxcyA9IEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQ VCB8IEdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVDsKIAogCUJVSUxEX0JVR19PTihpcnFzICYg MHhmZmZmMDAwMCk7CkBAIC00Mjc1LDE0ICs0Mjc5LDE0IEBAIHN0YXRpYyB2b2lkIGdlbjExX2ly cV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKElO VEVMX1BDSF9UWVBFKGRldl9wcml2KSA+PSBQQ0hfSUNQKQogCQlpY3BfaXJxX3Bvc3RpbnN0YWxs KGRldl9wcml2KTsKIAotCWdlbjExX2d0X2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CisJZ2Vu MTFfZ3RfaXJxX3Bvc3RpbnN0YWxsKCZkZXZfcHJpdi0+Z3QpOwogCWdlbjhfZGVfaXJxX3Bvc3Rp bnN0YWxsKGRldl9wcml2KTsKIAogCUdFTjNfSVJRX0lOSVQodW5jb3JlLCBHRU4xMV9HVV9NSVND Xywgfmd1X21pc2NfbWFza2VkLCBndV9taXNjX21hc2tlZCk7CiAKIAlJOTE1X1dSSVRFKEdFTjEx X0RJU1BMQVlfSU5UX0NUTCwgR0VOMTFfRElTUExBWV9JUlFfRU5BQkxFKTsKIAotCWdlbjExX21h c3Rlcl9pbnRyX2VuYWJsZShkZXZfcHJpdi0+dW5jb3JlLnJlZ3MpOworCWdlbjExX21hc3Rlcl9p bnRyX2VuYWJsZSh1bmNvcmUtPnJlZ3MpOwogCVBPU1RJTkdfUkVBRChHRU4xMV9HRlhfTVNUUl9J UlEpOwogfQogCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeA==