From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2] drm/i915/selftests: Pass intel_context to igt_spinner Date: Wed, 31 Jul 2019 08:00:50 +0100 Message-ID: <20190731070050.4845-1-chris@chris-wilson.co.uk> References: <20190730154853.19157-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 34A566E681 for ; Wed, 31 Jul 2019 07:01:05 +0000 (UTC) In-Reply-To: <20190730154853.19157-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 VGVhY2ggaWd0X3NwaW5uZXIgdG8gb25seSB1c2Ugb3VyIGludGVybmFsIHN0cnVjdHMsIGRlY291 cGxpbmcgdGhlCmludGVyZmFjZSBmcm9tIHRoZSBHRU0gY29udGV4dHMuIFRoaXMgbWFrZXMgaXQg ZWFzaWVyIHRvIGF2b2lkCnJlcXVpcmluZyBjZS0+Z2VtX2NvbnRleHQgYmFjayByZWZlcmVuY2Vz IGZvciBrZXJuZWxfY29udGV4dCB0aGF0IG1heQpoYXZlIHRoZW0gaW4gZnV0dXJlLgoKdjI6IExp ZnQgZW5naW5lIGxvY2sgdG8gdmVyaWZ5X3dhKCkgY2FsbGVyLgoKU2lnbmVkLW9mZi1ieTogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIC4uLi9kcm0vaTkxNS9nZW0vc2VsZnRlc3Rz L2k5MTVfZ2VtX2NvbnRleHQuYyB8ICA0MyArKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9zZWxmdGVzdF9scmMuYyAgICAgICAgfCAxMTUgKysrKysrKysrKy0tLS0tLS0tCiAuLi4vZ3B1 L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMgICAgfCAgMzcgKysrKy0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3NwaW5uZXIuYyAgfCAgMjUgKystLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9zcGlubmVyLmggIHwgICA2ICstCiA1IGZp bGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCAxMDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQu YwppbmRleCA3ZjlmNjcwMWIzMmMuLmMyNDQzMDM1MmEzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTgyMSw4 ICs4MjEsNyBAQCBlbWl0X3JwY3NfcXVlcnkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKICNkZWZpbmUgVEVTVF9SRVNFVAlCSVQoMikKIAogc3RhdGljIGludAotX19zc2V1X3ByZXBh cmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JICAgICAgIGNvbnN0IGNoYXIgKm5h bWUsCitfX3NzZXVfcHJlcGFyZShjb25zdCBjaGFyICpuYW1lLAogCSAgICAgICB1bnNpZ25lZCBp bnQgZmxhZ3MsCiAJICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAkgICAgICAgc3Ry dWN0IGlndF9zcGlubmVyICoqc3BpbikKQEAgLTgzOCwxNCArODM3LDExIEBAIF9fc3NldV9wcmVw YXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWlmICghKnNwaW4pCiAJCXJldHVy biAtRU5PTUVNOwogCi0JcmV0ID0gaWd0X3NwaW5uZXJfaW5pdCgqc3BpbiwgaTkxNSk7CisJcmV0 ID0gaWd0X3NwaW5uZXJfaW5pdCgqc3BpbiwgY2UtPmVuZ2luZS0+Z3QpOwogCWlmIChyZXQpCiAJ CWdvdG8gZXJyX2ZyZWU7CiAKLQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCpzcGlu LAotCQkJCQljZS0+Z2VtX2NvbnRleHQsCi0JCQkJCWNlLT5lbmdpbmUsCi0JCQkJCU1JX05PT1Ap OworCXJxID0gaWd0X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3QoKnNwaW4sIGNlLCBNSV9OT09QKTsK IAlpZiAoSVNfRVJSKHJxKSkgewogCQlyZXQgPSBQVFJfRVJSKHJxKTsKIAkJZ290byBlcnJfZmlu aTsKQEAgLTg3MSw4ICs4NjcsNyBAQCBfX3NzZXVfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwKIH0KIAogc3RhdGljIGludAotX19yZWFkX3NsaWNlX2NvdW50KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LAotCQkgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCitf X3JlYWRfc2xpY2VfY291bnQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCQkgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICBzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4s CiAJCSAgIHUzMiAqcnBjcykKQEAgLTkwMSw3ICs4OTYsNyBAQCBfX3JlYWRfc2xpY2VfY291bnQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCXJldHVybiByZXQ7CiAJfQogCi0JaWYg KElOVEVMX0dFTihpOTE1KSA+PSAxMSkgeworCWlmIChJTlRFTF9HRU4oY2UtPmVuZ2luZS0+aTkx NSkgPj0gMTEpIHsKIAkJc19tYXNrID0gR0VOMTFfUlBDU19TX0NOVF9NQVNLOwogCQlzX3NoaWZ0 ID0gR0VOMTFfUlBDU19TX0NOVF9TSElGVDsKIAl9IGVsc2UgewpAQCAtOTQ0LDggKzkzOSw3IEBA IF9fY2hlY2tfcnBjcyhjb25zdCBjaGFyICpuYW1lLCB1MzIgcnBjcywgaW50IHNsaWNlcywgdW5z aWduZWQgaW50IGV4cGVjdGVkLAogfQogCiBzdGF0aWMgaW50Ci1fX3NzZXVfZmluaXNoKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCSAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCitfX3Nz ZXVfZmluaXNoKGNvbnN0IGNoYXIgKm5hbWUsCiAJICAgICAgdW5zaWduZWQgaW50IGZsYWdzLAog CSAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAkgICAgICBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqLApAQCAtOTYyLDE0ICs5NTYsMTMgQEAgX19zc2V1X2ZpbmlzaChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCWdvdG8gb3V0OwogCX0KIAotCXJldCA9IF9f cmVhZF9zbGljZV9jb3VudChpOTE1LCBjZSwgb2JqLAorCXJldCA9IF9fcmVhZF9zbGljZV9jb3Vu dChjZSwgb2JqLAogCQkJCSBmbGFncyAmIFRFU1RfUkVTRVQgPyBOVUxMIDogc3BpbiwgJnJwY3Mp OwogCXJldCA9IF9fY2hlY2tfcnBjcyhuYW1lLCBycGNzLCByZXQsIGV4cGVjdGVkLCAiQ29udGV4 dCIsICIhIik7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKLQlyZXQgPSBfX3JlYWRfc2xpY2Vf Y291bnQoaTkxNSwgY2UtPmVuZ2luZS0+a2VybmVsX2NvbnRleHQsIG9iaiwKLQkJCQkgTlVMTCwg JnJwY3MpOworCXJldCA9IF9fcmVhZF9zbGljZV9jb3VudChjZS0+ZW5naW5lLT5rZXJuZWxfY29u dGV4dCwgb2JqLCBOVUxMLCAmcnBjcyk7CiAJcmV0ID0gX19jaGVja19ycGNzKG5hbWUsIHJwY3Ms IHJldCwgc2xpY2VzLCAiS2VybmVsIGNvbnRleHQiLCAiISIpOwogCiBvdXQ6CkBAIC05NzcsMTEg Kzk3MCwxMiBAQCBfX3NzZXVfZmluaXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAog CQlpZ3Rfc3Bpbm5lcl9lbmQoc3Bpbik7CiAKIAlpZiAoKGZsYWdzICYgVEVTVF9JRExFKSAmJiBy ZXQgPT0gMCkgewotCQlyZXQgPSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGk5MTUsIDAsIE1BWF9T Q0hFRFVMRV9USU1FT1VUKTsKKwkJcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShjZS0+ZW5n aW5lLT5pOTE1LAorCQkJCQkgICAgIDAsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKIAkJaWYgKHJl dCkKIAkJCXJldHVybiByZXQ7CiAKLQkJcmV0ID0gX19yZWFkX3NsaWNlX2NvdW50KGk5MTUsIGNl LCBvYmosIE5VTEwsICZycGNzKTsKKwkJcmV0ID0gX19yZWFkX3NsaWNlX2NvdW50KGNlLCBvYmos IE5VTEwsICZycGNzKTsKIAkJcmV0ID0gX19jaGVja19ycGNzKG5hbWUsIHJwY3MsIHJldCwgZXhw ZWN0ZWQsCiAJCQkJICAgIkNvbnRleHQiLCAiIGFmdGVyIGlkbGUhIik7CiAJfQpAQCAtOTkwLDgg Kzk4NCw3IEBAIF9fc3NldV9maW5pc2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiB9 CiAKIHN0YXRpYyBpbnQKLV9fc3NldV90ZXN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LAotCSAgICBjb25zdCBjaGFyICpuYW1lLAorX19zc2V1X3Rlc3QoY29uc3QgY2hhciAqbmFtZSwK IAkgICAgdW5zaWduZWQgaW50IGZsYWdzLAogCSAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2Us CiAJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCkBAIC0xMDAwLDcgKzk5Myw3 IEBAIF9fc3NldV90ZXN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCXN0cnVjdCBp Z3Rfc3Bpbm5lciAqc3BpbiA9IE5VTEw7CiAJaW50IHJldDsKIAotCXJldCA9IF9fc3NldV9wcmVw YXJlKGk5MTUsIG5hbWUsIGZsYWdzLCBjZSwgJnNwaW4pOworCXJldCA9IF9fc3NldV9wcmVwYXJl KG5hbWUsIGZsYWdzLCBjZSwgJnNwaW4pOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAg LTEwMDgsNyArMTAwMSw3IEBAIF9fc3NldV90ZXN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1LAogCWlmIChyZXQpCiAJCWdvdG8gb3V0X3NwaW47CiAKLQlyZXQgPSBfX3NzZXVfZmluaXNo KGk5MTUsIG5hbWUsIGZsYWdzLCBjZSwgb2JqLAorCXJldCA9IF9fc3NldV9maW5pc2gobmFtZSwg ZmxhZ3MsIGNlLCBvYmosCiAJCQkgICAgaHdlaWdodDMyKHNzZXUuc2xpY2VfbWFzayksIHNwaW4p OwogCiBvdXRfc3BpbjoKQEAgLTEwODgsMjIgKzEwODEsMjIgQEAgX19pZ3RfY3R4X3NzZXUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCWdvdG8gb3V0X2NvbnRleHQ7CiAKIAkvKiBG aXJzdCBzZXQgdGhlIGRlZmF1bHQgbWFzay4gKi8KLQlyZXQgPSBfX3NzZXVfdGVzdChpOTE1LCBu YW1lLCBmbGFncywgY2UsIG9iaiwgZW5naW5lLT5zc2V1KTsKKwlyZXQgPSBfX3NzZXVfdGVzdChu YW1lLCBmbGFncywgY2UsIG9iaiwgZW5naW5lLT5zc2V1KTsKIAlpZiAocmV0KQogCQlnb3RvIG91 dF9mYWlsOwogCiAJLyogVGhlbiBzZXQgYSBwb3dlci1nYXRlZCBjb25maWd1cmF0aW9uLiAqLwot CXJldCA9IF9fc3NldV90ZXN0KGk5MTUsIG5hbWUsIGZsYWdzLCBjZSwgb2JqLCBwZ19zc2V1KTsK KwlyZXQgPSBfX3NzZXVfdGVzdChuYW1lLCBmbGFncywgY2UsIG9iaiwgcGdfc3NldSk7CiAJaWYg KHJldCkKIAkJZ290byBvdXRfZmFpbDsKIAogCS8qIEJhY2sgdG8gZGVmYXVsdHMuICovCi0JcmV0 ID0gX19zc2V1X3Rlc3QoaTkxNSwgbmFtZSwgZmxhZ3MsIGNlLCBvYmosIGVuZ2luZS0+c3NldSk7 CisJcmV0ID0gX19zc2V1X3Rlc3QobmFtZSwgZmxhZ3MsIGNlLCBvYmosIGVuZ2luZS0+c3NldSk7 CiAJaWYgKHJldCkKIAkJZ290byBvdXRfZmFpbDsKIAogCS8qIE9uZSBsYXN0IHBvd2VyLWdhdGVk IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSByb2FkLiAqLwotCXJldCA9IF9fc3NldV90ZXN0KGk5MTUs IG5hbWUsIGZsYWdzLCBjZSwgb2JqLCBwZ19zc2V1KTsKKwlyZXQgPSBfX3NzZXVfdGVzdChuYW1l LCBmbGFncywgY2UsIG9iaiwgcGdfc3NldSk7CiAJaWYgKHJldCkKIAkJZ290byBvdXRfZmFpbDsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYwppbmRleCA2MGYyN2U1MmQyNjcu LmI0MGI1N2QyZGFhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRl c3RfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMKQEAg LTIyLDkgKzIyLDkgQEAKIHN0YXRpYyBpbnQgbGl2ZV9zYW5pdHljaGVjayh2b2lkICphcmcpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7Ci0Jc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lOworCXN0cnVjdCBpOTE1X2dlbV9lbmdpbmVzX2l0ZXIgaXQ7CiAJc3Ry dWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CiAJc3RydWN0IGlndF9zcGlubmVyIHNwaW47CiAJaW50 ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJaW50IGVyciA9IC1FTk9NRU07CkBAIC0zNSwxNyArMzUs MTcgQEAgc3RhdGljIGludCBsaXZlX3Nhbml0eWNoZWNrKHZvaWQgKmFyZykKIAltdXRleF9sb2Nr KCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9n ZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCi0JaWYgKGlndF9zcGlubmVyX2luaXQoJnNwaW4sIGk5 MTUpKQorCWlmIChpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluLCAmaTkxNS0+Z3QpKQogCQlnb3RvIGVy cl91bmxvY2s7CiAKIAljdHggPSBrZXJuZWxfY29udGV4dChpOTE1KTsKIAlpZiAoIWN0eCkKIAkJ Z290byBlcnJfc3BpbjsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJ Zm9yX2VhY2hfZ2VtX2VuZ2luZShjZSwgaTkxNV9nZW1fY29udGV4dF9sb2NrX2VuZ2luZXMoY3R4 KSwgaXQpIHsKIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CiAKLQkJcnEgPSBpZ3Rfc3Bpbm5l cl9jcmVhdGVfcmVxdWVzdCgmc3BpbiwgY3R4LCBlbmdpbmUsIE1JX05PT1ApOworCQlycSA9IGln dF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluLCBjZSwgTUlfTk9PUCk7CiAJCWlmIChJU19F UlIocnEpKSB7CiAJCQllcnIgPSBQVFJfRVJSKHJxKTsKIAkJCWdvdG8gZXJyX2N0eDsKQEAgLTY5 LDYgKzY5LDcgQEAgc3RhdGljIGludCBsaXZlX3Nhbml0eWNoZWNrKHZvaWQgKmFyZykKIAogCWVy ciA9IDA7CiBlcnJfY3R4OgorCWk5MTVfZ2VtX2NvbnRleHRfdW5sb2NrX2VuZ2luZXMoY3R4KTsK IAlrZXJuZWxfY29udGV4dF9jbG9zZShjdHgpOwogZXJyX3NwaW46CiAJaWd0X3NwaW5uZXJfZmlu aSgmc3Bpbik7CkBAIC00ODAsNiArNDgxLDI0IEBAIHN0YXRpYyBpbnQgbGl2ZV9idXN5d2FpdF9w cmVlbXB0KHZvaWQgKmFyZykKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgc3RydWN0IGk5MTVf cmVxdWVzdCAqCitzcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KHN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3Bp biwKKwkJICAgICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCisJCSAgICAgICBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCSAgICAgICB1MzIgYXJiKQoreworCXN0cnVj dCBpbnRlbF9jb250ZXh0ICpjZTsKKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKworCWNlID0g aTkxNV9nZW1fY29udGV4dF9nZXRfZW5naW5lKGN0eCwgZW5naW5lLT5pZCk7CisJaWYgKElTX0VS UihjZSkpCisJCXJldHVybiBFUlJfQ0FTVChjZSk7CisKKwlycSA9IGlndF9zcGlubmVyX2NyZWF0 ZV9yZXF1ZXN0KHNwaW4sIGNlLCBhcmIpOworCWludGVsX2NvbnRleHRfcHV0KGNlKTsKKwlyZXR1 cm4gcnE7Cit9CisKIHN0YXRpYyBpbnQgbGl2ZV9wcmVlbXB0KHZvaWQgKmFyZykKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKQEAgLTQ5OSwxMCArNTE4LDEwIEBAIHN0 YXRpYyBpbnQgbGl2ZV9wcmVlbXB0KHZvaWQgKmFyZykKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0u c3RydWN0X211dGV4KTsKIAl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1 bnRpbWVfcG0pOwogCi0JaWYgKGlndF9zcGlubmVyX2luaXQoJnNwaW5faGksIGk5MTUpKQorCWlm IChpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluX2hpLCAmaTkxNS0+Z3QpKQogCQlnb3RvIGVycl91bmxv Y2s7CiAKLQlpZiAoaWd0X3NwaW5uZXJfaW5pdCgmc3Bpbl9sbywgaTkxNSkpCisJaWYgKGlndF9z cGlubmVyX2luaXQoJnNwaW5fbG8sICZpOTE1LT5ndCkpCiAJCWdvdG8gZXJyX3NwaW5faGk7CiAK IAljdHhfaGkgPSBrZXJuZWxfY29udGV4dChpOTE1KTsKQEAgLTUyOSw4ICs1NDgsOCBAQCBzdGF0 aWMgaW50IGxpdmVfcHJlZW1wdCh2b2lkICphcmcpCiAJCQlnb3RvIGVycl9jdHhfbG87CiAJCX0K IAotCQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluX2xvLCBjdHhfbG8sIGVu Z2luZSwKLQkJCQkJCU1JX0FSQl9DSEVDSyk7CisJCXJxID0gc3Bpbm5lcl9jcmVhdGVfcmVxdWVz dCgmc3Bpbl9sbywgY3R4X2xvLCBlbmdpbmUsCisJCQkJCSAgICBNSV9BUkJfQ0hFQ0spOwogCQlp ZiAoSVNfRVJSKHJxKSkgewogCQkJZXJyID0gUFRSX0VSUihycSk7CiAJCQlnb3RvIGVycl9jdHhf bG87CkBAIC01NDUsOCArNTY0LDggQEAgc3RhdGljIGludCBsaXZlX3ByZWVtcHQodm9pZCAqYXJn KQogCQkJZ290byBlcnJfY3R4X2xvOwogCQl9CiAKLQkJcnEgPSBpZ3Rfc3Bpbm5lcl9jcmVhdGVf cmVxdWVzdCgmc3Bpbl9oaSwgY3R4X2hpLCBlbmdpbmUsCi0JCQkJCQlNSV9BUkJfQ0hFQ0spOwor CQlycSA9IHNwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJnNwaW5faGksIGN0eF9oaSwgZW5naW5lLAor CQkJCQkgICAgTUlfQVJCX0NIRUNLKTsKIAkJaWYgKElTX0VSUihycSkpIHsKIAkJCWlndF9zcGlu bmVyX2VuZCgmc3Bpbl9sbyk7CiAJCQllcnIgPSBQVFJfRVJSKHJxKTsKQEAgLTYwMywxMCArNjIy LDEwIEBAIHN0YXRpYyBpbnQgbGl2ZV9sYXRlX3ByZWVtcHQodm9pZCAqYXJnKQogCW11dGV4X2xv Y2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3Bt X2dldCgmaTkxNS0+cnVudGltZV9wbSk7CiAKLQlpZiAoaWd0X3NwaW5uZXJfaW5pdCgmc3Bpbl9o aSwgaTkxNSkpCisJaWYgKGlndF9zcGlubmVyX2luaXQoJnNwaW5faGksICZpOTE1LT5ndCkpCiAJ CWdvdG8gZXJyX3VubG9jazsKIAotCWlmIChpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluX2xvLCBpOTE1 KSkKKwlpZiAoaWd0X3NwaW5uZXJfaW5pdCgmc3Bpbl9sbywgJmk5MTUtPmd0KSkKIAkJZ290byBl cnJfc3Bpbl9oaTsKIAogCWN0eF9oaSA9IGtlcm5lbF9jb250ZXh0KGk5MTUpOwpAQCAtNjMyLDgg KzY1MSw4IEBAIHN0YXRpYyBpbnQgbGl2ZV9sYXRlX3ByZWVtcHQodm9pZCAqYXJnKQogCQkJZ290 byBlcnJfY3R4X2xvOwogCQl9CiAKLQkJcnEgPSBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgm c3Bpbl9sbywgY3R4X2xvLCBlbmdpbmUsCi0JCQkJCQlNSV9BUkJfQ0hFQ0spOworCQlycSA9IHNw aW5uZXJfY3JlYXRlX3JlcXVlc3QoJnNwaW5fbG8sIGN0eF9sbywgZW5naW5lLAorCQkJCQkgICAg TUlfQVJCX0NIRUNLKTsKIAkJaWYgKElTX0VSUihycSkpIHsKIAkJCWVyciA9IFBUUl9FUlIocnEp OwogCQkJZ290byBlcnJfY3R4X2xvOwpAQCAtNjQ1LDggKzY2NCw4IEBAIHN0YXRpYyBpbnQgbGl2 ZV9sYXRlX3ByZWVtcHQodm9pZCAqYXJnKQogCQkJZ290byBlcnJfd2VkZ2VkOwogCQl9CiAKLQkJ cnEgPSBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmc3Bpbl9oaSwgY3R4X2hpLCBlbmdpbmUs Ci0JCQkJCQlNSV9OT09QKTsKKwkJcnEgPSBzcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluX2hp LCBjdHhfaGksIGVuZ2luZSwKKwkJCQkJICAgIE1JX05PT1ApOwogCQlpZiAoSVNfRVJSKHJxKSkg ewogCQkJaWd0X3NwaW5uZXJfZW5kKCZzcGluX2xvKTsKIAkJCWVyciA9IFBUUl9FUlIocnEpOwpA QCAtNzExLDcgKzczMCw3IEBAIHN0YXRpYyBpbnQgcHJlZW1wdF9jbGllbnRfaW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlpZiAoIWMtPmN0eCkKIAkJcmV0dXJuIC1FTk9NRU07 CiAKLQlpZiAoaWd0X3NwaW5uZXJfaW5pdCgmYy0+c3BpbiwgaTkxNSkpCisJaWYgKGlndF9zcGlu bmVyX2luaXQoJmMtPnNwaW4sICZpOTE1LT5ndCkpCiAJCWdvdG8gZXJyX2N0eDsKIAogCXJldHVy biAwOwpAQCAtNzYxLDkgKzc4MCw5IEBAIHN0YXRpYyBpbnQgbGl2ZV9ub3ByZWVtcHQodm9pZCAq YXJnKQogCiAJCWVuZ2luZS0+ZXhlY2xpc3RzLnByZWVtcHRfaGFuZy5jb3VudCA9IDA7CiAKLQkJ cnFfYSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZhLnNwaW4sCi0JCQkJCQkgIGEuY3R4 LCBlbmdpbmUsCi0JCQkJCQkgIE1JX0FSQl9DSEVDSyk7CisJCXJxX2EgPSBzcGlubmVyX2NyZWF0 ZV9yZXF1ZXN0KCZhLnNwaW4sCisJCQkJCSAgICAgIGEuY3R4LCBlbmdpbmUsCisJCQkJCSAgICAg IE1JX0FSQl9DSEVDSyk7CiAJCWlmIChJU19FUlIocnFfYSkpIHsKIAkJCWVyciA9IFBUUl9FUlIo cnFfYSk7CiAJCQlnb3RvIGVycl9jbGllbnRfYjsKQEAgLTc3OCw5ICs3OTcsOSBAQCBzdGF0aWMg aW50IGxpdmVfbm9wcmVlbXB0KHZvaWQgKmFyZykKIAkJCWdvdG8gZXJyX3dlZGdlZDsKIAkJfQog Ci0JCXJxX2IgPSBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmYi5zcGluLAotCQkJCQkJICBi LmN0eCwgZW5naW5lLAotCQkJCQkJICBNSV9BUkJfQ0hFQ0spOworCQlycV9iID0gc3Bpbm5lcl9j cmVhdGVfcmVxdWVzdCgmYi5zcGluLAorCQkJCQkgICAgICBiLmN0eCwgZW5naW5lLAorCQkJCQkg ICAgICBNSV9BUkJfQ0hFQ0spOwogCQlpZiAoSVNfRVJSKHJxX2IpKSB7CiAJCQllcnIgPSBQVFJf RVJSKHJxX2IpOwogCQkJZ290byBlcnJfY2xpZW50X2I7CkBAIC04ODAsOSArODk5LDkgQEAgc3Rh dGljIGludCBsaXZlX3N1cHByZXNzX3NlbGZfcHJlZW1wdCh2b2lkICphcmcpCiAKIAkJZW5naW5l LT5leGVjbGlzdHMucHJlZW1wdF9oYW5nLmNvdW50ID0gMDsKIAotCQlycV9hID0gaWd0X3NwaW5u ZXJfY3JlYXRlX3JlcXVlc3QoJmEuc3BpbiwKLQkJCQkJCSAgYS5jdHgsIGVuZ2luZSwKLQkJCQkJ CSAgTUlfTk9PUCk7CisJCXJxX2EgPSBzcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZhLnNwaW4sCisJ CQkJCSAgICAgIGEuY3R4LCBlbmdpbmUsCisJCQkJCSAgICAgIE1JX05PT1ApOwogCQlpZiAoSVNf RVJSKHJxX2EpKSB7CiAJCQllcnIgPSBQVFJfRVJSKHJxX2EpOwogCQkJZ290byBlcnJfY2xpZW50 X2I7CkBAIC04OTUsOSArOTE0LDkgQEAgc3RhdGljIGludCBsaXZlX3N1cHByZXNzX3NlbGZfcHJl ZW1wdCh2b2lkICphcmcpCiAJCX0KIAogCQlmb3IgKGRlcHRoID0gMDsgZGVwdGggPCA4OyBkZXB0 aCsrKSB7Ci0JCQlycV9iID0gaWd0X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJmIuc3BpbiwKLQkJ CQkJCQkgIGIuY3R4LCBlbmdpbmUsCi0JCQkJCQkJICBNSV9OT09QKTsKKwkJCXJxX2IgPSBzcGlu bmVyX2NyZWF0ZV9yZXF1ZXN0KCZiLnNwaW4sCisJCQkJCQkgICAgICBiLmN0eCwgZW5naW5lLAor CQkJCQkJICAgICAgTUlfTk9PUCk7CiAJCQlpZiAoSVNfRVJSKHJxX2IpKSB7CiAJCQkJZXJyID0g UFRSX0VSUihycV9iKTsKIAkJCQlnb3RvIGVycl9jbGllbnRfYjsKQEAgLTEwNDgsOSArMTA2Nyw5 IEBAIHN0YXRpYyBpbnQgbGl2ZV9zdXBwcmVzc193YWl0X3ByZWVtcHQodm9pZCAqYXJnKQogCQkJ CWdvdG8gZXJyX2NsaWVudF8zOwogCiAJCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjbGll bnQpOyBpKyspIHsKLQkJCQlycVtpXSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZjbGll bnRbaV0uc3BpbiwKLQkJCQkJCQkJICAgY2xpZW50W2ldLmN0eCwgZW5naW5lLAotCQkJCQkJCQkg ICBNSV9OT09QKTsKKwkJCQlycVtpXSA9IHNwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJmNsaWVudFtp XS5zcGluLAorCQkJCQkJCSAgICAgICBjbGllbnRbaV0uY3R4LCBlbmdpbmUsCisJCQkJCQkJICAg ICAgIE1JX05PT1ApOwogCQkJCWlmIChJU19FUlIocnFbaV0pKSB7CiAJCQkJCWVyciA9IFBUUl9F UlIocnFbaV0pOwogCQkJCQlnb3RvIGVycl93ZWRnZWQ7CkBAIC0xMTU3LDkgKzExNzYsOSBAQCBz dGF0aWMgaW50IGxpdmVfY2hhaW5fcHJlZW1wdCh2b2lkICphcmcpCiAJCWlmICghaW50ZWxfZW5n aW5lX2hhc19wcmVlbXB0aW9uKGVuZ2luZSkpCiAJCQljb250aW51ZTsKIAotCQlycSA9IGlndF9z cGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZsby5zcGluLAotCQkJCQkJbG8uY3R4LCBlbmdpbmUsCi0J CQkJCQlNSV9BUkJfQ0hFQ0spOworCQlycSA9IHNwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJmxvLnNw aW4sCisJCQkJCSAgICBsby5jdHgsIGVuZ2luZSwKKwkJCQkJICAgIE1JX0FSQl9DSEVDSyk7CiAJ CWlmIChJU19FUlIocnEpKQogCQkJZ290byBlcnJfd2VkZ2VkOwogCQlpOTE1X3JlcXVlc3RfYWRk KHJxKTsKQEAgLTExODMsMTggKzEyMDIsMTggQEAgc3RhdGljIGludCBsaXZlX2NoYWluX3ByZWVt cHQodm9pZCAqYXJnKQogCQl9CiAKIAkJZm9yX2VhY2hfcHJpbWVfbnVtYmVyX2Zyb20oY291bnQs IDEsIHJpbmdfc2l6ZSkgewotCQkJcnEgPSBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmaGku c3BpbiwKLQkJCQkJCQloaS5jdHgsIGVuZ2luZSwKLQkJCQkJCQlNSV9BUkJfQ0hFQ0spOworCQkJ cnEgPSBzcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZoaS5zcGluLAorCQkJCQkJICAgIGhpLmN0eCwg ZW5naW5lLAorCQkJCQkJICAgIE1JX0FSQl9DSEVDSyk7CiAJCQlpZiAoSVNfRVJSKHJxKSkKIAkJ CQlnb3RvIGVycl93ZWRnZWQ7CiAJCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKIAkJCWlmICghaWd0 X3dhaXRfZm9yX3NwaW5uZXIoJmhpLnNwaW4sIHJxKSkKIAkJCQlnb3RvIGVycl93ZWRnZWQ7CiAK LQkJCXJxID0gaWd0X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJmxvLnNwaW4sCi0JCQkJCQkJbG8u Y3R4LCBlbmdpbmUsCi0JCQkJCQkJTUlfQVJCX0NIRUNLKTsKKwkJCXJxID0gc3Bpbm5lcl9jcmVh dGVfcmVxdWVzdCgmbG8uc3BpbiwKKwkJCQkJCSAgICBsby5jdHgsIGVuZ2luZSwKKwkJCQkJCSAg ICBNSV9BUkJfQ0hFQ0spOwogCQkJaWYgKElTX0VSUihycSkpCiAJCQkJZ290byBlcnJfd2VkZ2Vk OwogCQkJaTkxNV9yZXF1ZXN0X2FkZChycSk7CkBAIC0xMjg0LDEwICsxMzAzLDEwIEBAIHN0YXRp YyBpbnQgbGl2ZV9wcmVlbXB0X2hhbmcodm9pZCAqYXJnKQogCW11dGV4X2xvY2soJmk5MTUtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwogCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+ cnVudGltZV9wbSk7CiAKLQlpZiAoaWd0X3NwaW5uZXJfaW5pdCgmc3Bpbl9oaSwgaTkxNSkpCisJ aWYgKGlndF9zcGlubmVyX2luaXQoJnNwaW5faGksICZpOTE1LT5ndCkpCiAJCWdvdG8gZXJyX3Vu bG9jazsKIAotCWlmIChpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluX2xvLCBpOTE1KSkKKwlpZiAoaWd0 X3NwaW5uZXJfaW5pdCgmc3Bpbl9sbywgJmk5MTUtPmd0KSkKIAkJZ290byBlcnJfc3Bpbl9oaTsK IAogCWN0eF9oaSA9IGtlcm5lbF9jb250ZXh0KGk5MTUpOwpAQCAtMTMwOCw4ICsxMzI3LDggQEAg c3RhdGljIGludCBsaXZlX3ByZWVtcHRfaGFuZyh2b2lkICphcmcpCiAJCWlmICghaW50ZWxfZW5n aW5lX2hhc19wcmVlbXB0aW9uKGVuZ2luZSkpCiAJCQljb250aW51ZTsKIAotCQlycSA9IGlndF9z cGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluX2xvLCBjdHhfbG8sIGVuZ2luZSwKLQkJCQkJCU1J X0FSQl9DSEVDSyk7CisJCXJxID0gc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmc3Bpbl9sbywgY3R4 X2xvLCBlbmdpbmUsCisJCQkJCSAgICBNSV9BUkJfQ0hFQ0spOwogCQlpZiAoSVNfRVJSKHJxKSkg ewogCQkJZXJyID0gUFRSX0VSUihycSk7CiAJCQlnb3RvIGVycl9jdHhfbG87CkBAIC0xMzI0LDgg KzEzNDMsOCBAQCBzdGF0aWMgaW50IGxpdmVfcHJlZW1wdF9oYW5nKHZvaWQgKmFyZykKIAkJCWdv dG8gZXJyX2N0eF9sbzsKIAkJfQogCi0JCXJxID0gaWd0X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3Qo JnNwaW5faGksIGN0eF9oaSwgZW5naW5lLAotCQkJCQkJTUlfQVJCX0NIRUNLKTsKKwkJcnEgPSBz cGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZzcGluX2hpLCBjdHhfaGksIGVuZ2luZSwKKwkJCQkJICAg IE1JX0FSQl9DSEVDSyk7CiAJCWlmIChJU19FUlIocnEpKSB7CiAJCQlpZ3Rfc3Bpbm5lcl9lbmQo JnNwaW5fbG8pOwogCQkJZXJyID0gUFRSX0VSUihycSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93b3JrYXJvdW5kcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMuYwppbmRleCBhYjE0Nzk4NWZhNzQuLmRhZTliMTU4 MWQ5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fy b3VuZHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93b3JrYXJvdW5k cy5jCkBAIC0yMzgsNiArMjM4LDcgQEAgc3dpdGNoX3RvX3NjcmF0Y2hfY29udGV4dChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkgIHN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3BpbikK IHsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OworCXN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjZTsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJl ZjsKIAlpbnQgZXJyID0gMDsKQEAgLTI0OCwxMCArMjQ5LDE0IEBAIHN3aXRjaF90b19zY3JhdGNo X2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCiAJR0VNX0JVR19PTihp OTE1X2dlbV9jb250ZXh0X2lzX2Jhbm5hYmxlKGN0eCkpOwogCisJY2UgPSBpOTE1X2dlbV9jb250 ZXh0X2dldF9lbmdpbmUoY3R4LCBlbmdpbmUtPmlkKTsKKwlHRU1fQlVHX09OKElTX0VSUihjZSkp OworCiAJcnEgPSBFUlJfUFRSKC1FTk9ERVYpOwogCXdpdGhfaW50ZWxfcnVudGltZV9wbSgmZW5n aW5lLT5pOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKQotCQlycSA9IGlndF9zcGlubmVyX2NyZWF0 ZV9yZXF1ZXN0KHNwaW4sIGN0eCwgZW5naW5lLCBNSV9OT09QKTsKKwkJcnEgPSBpZ3Rfc3Bpbm5l cl9jcmVhdGVfcmVxdWVzdChzcGluLCBjZSwgTUlfTk9PUCk7CiAKKwlpbnRlbF9jb250ZXh0X3B1 dChjZSk7CiAJa2VybmVsX2NvbnRleHRfY2xvc2UoY3R4KTsKIAogCWlmIChJU19FUlIocnEpKSB7 CkBAIC0yOTEsNyArMjk2LDcgQEAgc3RhdGljIGludCBjaGVja193aGl0ZWxpc3RfYWNyb3NzX3Jl c2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlpZiAoSVNfRVJSKGN0eCkpCiAJ CXJldHVybiBQVFJfRVJSKGN0eCk7CiAKLQllcnIgPSBpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluLCBp OTE1KTsKKwllcnIgPSBpZ3Rfc3Bpbm5lcl9pbml0KCZzcGluLCBlbmdpbmUtPmd0KTsKIAlpZiAo ZXJyKQogCQlnb3RvIG91dF9jdHg7CiAKQEAgLTEwODMsNyArMTA4OCw3IEBAIHZlcmlmeV93YV9s aXN0cyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCBzdHJ1Y3Qgd2FfbGlzdHMgKmxpc3Rz LAogCiAJb2sgJj0gd2FfbGlzdF92ZXJpZnkoJmk5MTUtPnVuY29yZSwgJmxpc3RzLT5ndF93YV9s aXN0LCBzdHIpOwogCi0JZm9yX2VhY2hfZ2VtX2VuZ2luZShjZSwgaTkxNV9nZW1fY29udGV4dF9s b2NrX2VuZ2luZXMoY3R4KSwgaXQpIHsKKwlmb3JfZWFjaF9nZW1fZW5naW5lKGNlLCBpOTE1X2dl bV9jb250ZXh0X2VuZ2luZXMoY3R4KSwgaXQpIHsKIAkJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQg PSBjZS0+ZW5naW5lLT5pZDsKIAogCQlvayAmPSBlbmdpbmVfd2FfbGlzdF92ZXJpZnkoY2UsCkBA IC0xMDk0LDcgKzEwOTksNiBAQCB2ZXJpZnlfd2FfbGlzdHMoc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKmN0eCwgc3RydWN0IHdhX2xpc3RzICpsaXN0cywKIAkJCQkJICAgICZsaXN0cy0+ZW5naW5l W2lkXS5jdHhfd2FfbGlzdCwKIAkJCQkJICAgIHN0cikgPT0gMDsKIAl9Ci0JaTkxNV9nZW1fY29u dGV4dF91bmxvY2tfZW5naW5lcyhjdHgpOwogCiAJcmV0dXJuIG9rOwogfQpAQCAtMTExNSw2ICsx MTE5LDggQEAgbGl2ZV9ncHVfcmVzZXRfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogCWlmIChJU19F UlIoY3R4KSkKIAkJcmV0dXJuIFBUUl9FUlIoY3R4KTsKIAorCWk5MTVfZ2VtX2NvbnRleHRfbG9j a19lbmdpbmVzKGN0eCk7CisKIAlwcl9pbmZvKCJWZXJpZnlpbmcgYWZ0ZXIgR1BVIHJlc2V0Li4u XG4iKTsKIAogCWlndF9nbG9iYWxfcmVzZXRfbG9jaygmaTkxNS0+Z3QpOwpAQCAtMTEzMSw2ICsx MTM3LDcgQEAgbGl2ZV9ncHVfcmVzZXRfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogCW9rID0gdmVy aWZ5X3dhX2xpc3RzKGN0eCwgJmxpc3RzLCAiYWZ0ZXIgcmVzZXQiKTsKIAogb3V0OgorCWk5MTVf Z2VtX2NvbnRleHRfdW5sb2NrX2VuZ2luZXMoY3R4KTsKIAlrZXJuZWxfY29udGV4dF9jbG9zZShj dHgpOwogCXJlZmVyZW5jZV9saXN0c19maW5pKGk5MTUsICZsaXN0cyk7CiAJaW50ZWxfcnVudGlt ZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwpAQCAtMTE0MywxMCArMTE1MCwx MCBAQCBzdGF0aWMgaW50CiBsaXZlX2VuZ2luZV9yZXNldF93b3JrYXJvdW5kcyh2b2lkICphcmcp CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7Ci0Jc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lOworCXN0cnVjdCBpOTE1X2dlbV9lbmdpbmVzX2l0ZXIgaXQ7CiAJ c3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7 CiAJc3RydWN0IGlndF9zcGlubmVyIHNwaW47Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAJ c3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJc3Ry dWN0IHdhX2xpc3RzIGxpc3RzOwpAQCAtMTE2NCw3ICsxMTcxLDggQEAgbGl2ZV9lbmdpbmVfcmVz ZXRfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogCiAJcmVmZXJlbmNlX2xpc3RzX2luaXQoaTkxNSwg Jmxpc3RzKTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJZm9yX2Vh Y2hfZ2VtX2VuZ2luZShjZSwgaTkxNV9nZW1fY29udGV4dF9sb2NrX2VuZ2luZXMoY3R4KSwgaXQp IHsKKwkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gY2UtPmVuZ2luZTsKIAkJYm9v bCBvazsKIAogCQlwcl9pbmZvKCJWZXJpZnlpbmcgYWZ0ZXIgJXMgcmVzZXQuLi5cbiIsIGVuZ2lu ZS0+bmFtZSk7CkBAIC0xMTgzLDExICsxMTkxLDE2IEBAIGxpdmVfZW5naW5lX3Jlc2V0X3dvcmth cm91bmRzKHZvaWQgKmFyZykKIAkJCWdvdG8gZXJyOwogCQl9CiAKLQkJcmV0ID0gaWd0X3NwaW5u ZXJfaW5pdCgmc3BpbiwgaTkxNSk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVycjsKKwkJY2UgPSBp OTE1X2dlbV9jb250ZXh0X2dldF9lbmdpbmUoY3R4LCBlbmdpbmUtPmlkKTsKKwkJaWYgKElTX0VS UihjZSkpCisJCQljb250aW51ZTsKIAotCQlycSA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0 KCZzcGluLCBjdHgsIGVuZ2luZSwgTUlfTk9PUCk7CisJCXJldCA9IGlndF9zcGlubmVyX2luaXQo JnNwaW4sIGVuZ2luZS0+Z3QpOworCQlpZiAoIXJldCkKKwkJCXJxID0gaWd0X3NwaW5uZXJfY3Jl YXRlX3JlcXVlc3QoJnNwaW4sIGNlLCBNSV9OT09QKTsKKwkJZWxzZQorCQkJcnEgPSBFUlJfUFRS KHJldCk7CisJCWludGVsX2NvbnRleHRfcHV0KGNlKTsKIAkJaWYgKElTX0VSUihycSkpIHsKIAkJ CXJldCA9IFBUUl9FUlIocnEpOwogCQkJaWd0X3NwaW5uZXJfZmluaSgmc3Bpbik7CkBAIC0xMjE0 LDggKzEyMjcsOCBAQCBsaXZlX2VuZ2luZV9yZXNldF93b3JrYXJvdW5kcyh2b2lkICphcmcpCiAJ CQlnb3RvIGVycjsKIAkJfQogCX0KLQogZXJyOgorCWk5MTVfZ2VtX2NvbnRleHRfdW5sb2NrX2Vu Z2luZXMoY3R4KTsKIAlyZWZlcmVuY2VfbGlzdHNfZmluaShpOTE1LCAmbGlzdHMpOwogCWludGVs X3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAlpZ3RfZ2xvYmFs X3Jlc2V0X3VubG9jaygmaTkxNS0+Z3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2lndF9zcGlubmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvaWd0X3NwaW5uZXIuYwppbmRleCA4OWI2NTUyYTY0OTcuLjQxYWNmMjA5ZmZkYiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9zcGlubmVyLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9zcGlubmVyLmMKQEAgLTksMjUgKzks MjQgQEAKIAogI2luY2x1ZGUgImlndF9zcGlubmVyLmgiCiAKLWludCBpZ3Rfc3Bpbm5lcl9pbml0 KHN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3Bpbiwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp CitpbnQgaWd0X3NwaW5uZXJfaW5pdChzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4sIHN0cnVjdCBp bnRlbF9ndCAqZ3QpCiB7CiAJdW5zaWduZWQgaW50IG1vZGU7CiAJdm9pZCAqdmFkZHI7CiAJaW50 IGVycjsKIAotCUdFTV9CVUdfT04oSU5URUxfR0VOKGk5MTUpIDwgOCk7CisJR0VNX0JVR19PTihJ TlRFTF9HRU4oZ3QtPmk5MTUpIDwgOCk7CiAKIAltZW1zZXQoc3BpbiwgMCwgc2l6ZW9mKCpzcGlu KSk7Ci0Jc3Bpbi0+aTkxNSA9IGk5MTU7Ci0Jc3Bpbi0+Z3QgPSAmaTkxNS0+Z3Q7CisJc3Bpbi0+ Z3QgPSBndDsKIAotCXNwaW4tPmh3cyA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwo aTkxNSwgUEFHRV9TSVpFKTsKKwlzcGluLT5od3MgPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2lu dGVybmFsKGd0LT5pOTE1LCBQQUdFX1NJWkUpOwogCWlmIChJU19FUlIoc3Bpbi0+aHdzKSkgewog CQllcnIgPSBQVFJfRVJSKHNwaW4tPmh3cyk7CiAJCWdvdG8gZXJyOwogCX0KIAotCXNwaW4tPm9i aiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoaTkxNSwgUEFHRV9TSVpFKTsKKwlz cGluLT5vYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGd0LT5pOTE1LCBQQUdF X1NJWkUpOwogCWlmIChJU19FUlIoc3Bpbi0+b2JqKSkgewogCQllcnIgPSBQVFJfRVJSKHNwaW4t Pm9iaik7CiAJCWdvdG8gZXJyX2h3czsKQEAgLTQxLDcgKzQwLDcgQEAgaW50IGlndF9zcGlubmVy X2luaXQoc3RydWN0IGlndF9zcGlubmVyICpzcGluLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKIAl9CiAJc3Bpbi0+c2Vxbm8gPSBtZW1zZXQodmFkZHIsIDB4ZmYsIFBBR0VfU0laRSk7 CiAKLQltb2RlID0gaTkxNV9jb2hlcmVudF9tYXBfdHlwZShpOTE1KTsKKwltb2RlID0gaTkxNV9j b2hlcmVudF9tYXBfdHlwZShndC0+aTkxNSk7CiAJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGlu X21hcChzcGluLT5vYmosIG1vZGUpOwogCWlmIChJU19FUlIodmFkZHIpKSB7CiAJCWVyciA9IFBU Ul9FUlIodmFkZHIpOwpAQCAtODcsMjIgKzg2LDIyIEBAIHN0YXRpYyBpbnQgbW92ZV90b19hY3Rp dmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAKIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgogaWd0X3Nw aW5uZXJfY3JlYXRlX3JlcXVlc3Qoc3RydWN0IGlndF9zcGlubmVyICpzcGluLAotCQkJICAgc3Ry dWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKLQkJCSAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwKKwkJCSAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAkJCSAgIHUzMiBhcmJp dHJhdGlvbl9jb21tYW5kKQogeworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGNl LT5lbmdpbmU7CiAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEgPSBOVUxMOwogCXN0cnVjdCBpOTE1 X3ZtYSAqaHdzLCAqdm1hOwogCXUzMiAqYmF0Y2g7CiAJaW50IGVycjsKIAotCXNwaW4tPmd0ID0g ZW5naW5lLT5ndDsKKwlHRU1fQlVHX09OKHNwaW4tPmd0ICE9IGNlLT52bS0+Z3QpOwogCi0Jdm1h ID0gaTkxNV92bWFfaW5zdGFuY2Uoc3Bpbi0+b2JqLCBjdHgtPnZtLCBOVUxMKTsKKwl2bWEgPSBp OTE1X3ZtYV9pbnN0YW5jZShzcGluLT5vYmosIGNlLT52bSwgTlVMTCk7CiAJaWYgKElTX0VSUih2 bWEpKQogCQlyZXR1cm4gRVJSX0NBU1Qodm1hKTsKIAotCWh3cyA9IGk5MTVfdm1hX2luc3RhbmNl KHNwaW4tPmh3cywgY3R4LT52bSwgTlVMTCk7CisJaHdzID0gaTkxNV92bWFfaW5zdGFuY2Uoc3Bp bi0+aHdzLCBjZS0+dm0sIE5VTEwpOwogCWlmIChJU19FUlIoaHdzKSkKIAkJcmV0dXJuIEVSUl9D QVNUKGh3cyk7CiAKQEAgLTExNCw3ICsxMTMsNyBAQCBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVz dChzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4sCiAJaWYgKGVycikKIAkJZ290byB1bnBpbl92bWE7 CiAKLQlycSA9IGlndF9yZXF1ZXN0X2FsbG9jKGN0eCwgZW5naW5lKTsKKwlycSA9IGludGVsX2Nv bnRleHRfY3JlYXRlX3JlcXVlc3QoY2UpOwogCWlmIChJU19FUlIocnEpKSB7CiAJCWVyciA9IFBU Ul9FUlIocnEpOwogCQlnb3RvIHVucGluX2h3czsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL2lndF9zcGlubmVyLmgKaW5kZXggMWJmYzM5ZWZhNzczLi5lYzYyYzllZjMyMGIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5oCkBAIC0xNyw3 ICsxNyw2IEBACiBzdHJ1Y3QgaW50ZWxfZ3Q7CiAKIHN0cnVjdCBpZ3Rfc3Bpbm5lciB7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CiAJc3RydWN0IGludGVsX2d0ICpndDsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqaHdzOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmo7CkBAIC0yNSwxMyArMjQsMTIgQEAgc3RydWN0IGlndF9zcGlubmVyIHsKIAl2b2lkICpz ZXFubzsKIH07CiAKLWludCBpZ3Rfc3Bpbm5lcl9pbml0KHN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3Bp biwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOworaW50IGlndF9zcGlubmVyX2luaXQo c3RydWN0IGlndF9zcGlubmVyICpzcGluLCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKIHZvaWQgaWd0 X3NwaW5uZXJfZmluaShzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4pOwogCiBzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICoKIGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KHN0cnVjdCBpZ3Rfc3Bpbm5lciAq c3BpbiwKLQkJCSAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCi0JCQkgICBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2Us CiAJCQkgICB1MzIgYXJiaXRyYXRpb25fY29tbWFuZCk7CiB2b2lkIGlndF9zcGlubmVyX2VuZChz dHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4pOwogCi0tIAoyLjIzLjAucmMwCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=