From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 44/62] drm/i915: Prepare i915_gem_active for annotations Date: Fri, 3 Jun 2016 17:37:09 +0100 Message-ID: <1464971847-15809-45-git-send-email-chris@chris-wilson.co.uk> References: <1464971847-15809-1-git-send-email-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-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id A42866EE30 for ; Fri, 3 Jun 2016 16:38:17 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id e3so611005wme.2 for ; Fri, 03 Jun 2016 09:38:17 -0700 (PDT) In-Reply-To: <1464971847-15809-1-git-send-email-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 SW4gdGhlIGZ1dHVyZSwgd2Ugd2lsbCB3YW50IHRvIGFkZCBhbm5vdGF0aW9ucyB0byB0aGUgaTkx NV9nZW1fYWN0aXZlCnN0cnVjdC4gVGhlIEFQSSBpcyB0aHVzIGV4cGFuZGVkIHRvIGhpZGUgZGly ZWN0IGFjY2VzcyB0byB0aGUgY29udGVudHMKb2YgaTkxNV9nZW1fYWN0aXZlIGFuZCBtZWRpYXRl ZCBpbnN0ZWFkIHRocm91Z2ggYSBudW1iZXIgb2YgaGVscGVycy4KClNpZ25lZC1vZmYtYnk6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICB8ICAxMyArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jICAgICAgICAgfCAgOTEgKysrKysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlLmMgICB8ICAxMSArKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaCB8IDEyOCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMgIHwgICAy ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMgfCAgIDggKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICB8ICAgOSArKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8ICAxMiArKy0KIDggZmlsZXMgY2hhbmdl ZCwgMjA2IGluc2VydGlvbnMoKyksIDY4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKaW5kZXggMmVkYmY5ZTk1ZTdmLi5mZWZiMzVjNGJlY2MgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0xNTUsMTAgKzE1NSwxMCBAQCBkZXNjcmliZV9vYmoo c3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQkg ICBvYmotPmJhc2Uud3JpdGVfZG9tYWluKTsKIAlmb3JfZWFjaF9lbmdpbmVfaWQoZW5naW5lLCBk ZXZfcHJpdiwgaWQpCiAJCXNlcV9wcmludGYobSwgIiV4ICIsCi0JCQkgICBpOTE1X2dlbV9yZXF1 ZXN0X2dldF9zZXFubyhvYmotPmxhc3RfcmVhZFtpZF0ucmVxdWVzdCkpOworCQkJICAgaTkxNV9n ZW1fYWN0aXZlX2dldF9zZXFubygmb2JqLT5sYXN0X3JlYWRbaWRdKSk7CiAJc2VxX3ByaW50Ziht LCAiXSAleCAleCVzJXMlcyIsCi0JCSAgIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKG9iai0+ bGFzdF93cml0ZS5yZXF1ZXN0KSwKLQkJICAgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ob2Jq LT5sYXN0X2ZlbmNlLnJlcXVlc3QpLAorCQkgICBpOTE1X2dlbV9hY3RpdmVfZ2V0X3NlcW5vKCZv YmotPmxhc3Rfd3JpdGUpLAorCQkgICBpOTE1X2dlbV9hY3RpdmVfZ2V0X3NlcW5vKCZvYmotPmxh c3RfZmVuY2UpLAogCQkgICBpOTE1X2NhY2hlX2xldmVsX3N0cih0b19pOTE1KG9iai0+YmFzZS5k ZXYpLCBvYmotPmNhY2hlX2xldmVsKSwKIAkJICAgb2JqLT5kaXJ0eSA/ICIgZGlydHkiIDogIiIs CiAJCSAgIG9iai0+bWFkdiA9PSBJOTE1X01BRFZfRE9OVE5FRUQgPyAiIHB1cmdlYWJsZSIgOiAi Iik7CkBAIC0xOTIsOCArMTkyLDExIEBAIGRlc2NyaWJlX29iaihzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCSp0ID0gJ1wwJzsKIAkJc2VxX3By aW50ZihtLCAiICglcyBtYXBwYWJsZSkiLCBzKTsKIAl9Ci0JaWYgKG9iai0+bGFzdF93cml0ZS5y ZXF1ZXN0ICE9IE5VTEwpCi0JCXNlcV9wcmludGYobSwgIiAoJXMpIiwgb2JqLT5sYXN0X3dyaXRl LnJlcXVlc3QtPmVuZ2luZS0+bmFtZSk7CisKKwllbmdpbmUgPSBpOTE1X2dlbV9hY3RpdmVfZ2V0 X2VuZ2luZSgmb2JqLT5sYXN0X3dyaXRlKTsKKwlpZiAoZW5naW5lKQorCQlzZXFfcHJpbnRmKG0s ICIgKCVzKSIsIGVuZ2luZS0+bmFtZSk7CisKIAlpZiAob2JqLT5mcm9udGJ1ZmZlcl9iaXRzKQog CQlzZXFfcHJpbnRmKG0sICIgKGZyb250YnVmZmVyOiAweCUwM3gpIiwgb2JqLT5mcm9udGJ1ZmZl cl9iaXRzKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDhjM2IzOWE4ZTk3NC4uOTll M2IyNjliNGI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTExMTMsMjkgKzExMTMsMzIg QEAgaW50CiBpOTE1X2dlbV9vYmplY3Rfd2FpdF9yZW5kZXJpbmcoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiwKIAkJCSAgICAgICBib29sIHJlYWRvbmx5KQogeworCXN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsKIAlpbnQgcmV0LCBpOwogCiAJaWYgKCFvYmotPmFj dGl2ZSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAocmVhZG9ubHkpIHsKLQkJaWYgKG9iai0+bGFzdF93 cml0ZS5yZXF1ZXN0ICE9IE5VTEwpIHsKLQkJCXJldCA9IGk5MTVfd2FpdF9yZXF1ZXN0KG9iai0+ bGFzdF93cml0ZS5yZXF1ZXN0KTsKKwkJcmVxdWVzdCA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZv YmotPmxhc3Rfd3JpdGUpOworCQlpZiAocmVxdWVzdCkgeworCQkJcmV0ID0gaTkxNV93YWl0X3Jl cXVlc3QocmVxdWVzdCk7CiAJCQlpZiAocmV0KQogCQkJCXJldHVybiByZXQ7CiAKLQkJCWkgPSBv YmotPmxhc3Rfd3JpdGUucmVxdWVzdC0+ZW5naW5lLT5pZDsKLQkJCWlmIChvYmotPmxhc3RfcmVh ZFtpXS5yZXF1ZXN0ID09IG9iai0+bGFzdF93cml0ZS5yZXF1ZXN0KQorCQkJaSA9IHJlcXVlc3Qt PmVuZ2luZS0+aWQ7CisJCQlpZiAoaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF9yZWFk W2ldKSA9PSByZXF1ZXN0KQogCQkJCWk5MTVfZ2VtX29iamVjdF9yZXRpcmVfX3JlYWQob2JqLCBp KTsKIAkJCWVsc2UKIAkJCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX193cml0ZShvYmopOwogCQl9 CiAJfSBlbHNlIHsKIAkJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkrKykgewot CQkJaWYgKG9iai0+bGFzdF9yZWFkW2ldLnJlcXVlc3QgPT0gTlVMTCkKKwkJCXJlcXVlc3QgPSBp OTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3JlYWRbaV0pOworCQkJaWYgKCFyZXF1ZXN0 KQogCQkJCWNvbnRpbnVlOwogCi0JCQlyZXQgPSBpOTE1X3dhaXRfcmVxdWVzdChvYmotPmxhc3Rf cmVhZFtpXS5yZXF1ZXN0KTsKKwkJCXJldCA9IGk5MTVfd2FpdF9yZXF1ZXN0KHJlcXVlc3QpOwog CQkJaWYgKHJldCkKIAkJCQlyZXR1cm4gcmV0OwogCkBAIC0xMTUzLDkgKzExNTYsOSBAQCBpOTE1 X2dlbV9vYmplY3RfcmV0aXJlX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKIHsKIAlpbnQgcmluZyA9IHJlcS0+ZW5naW5lLT5pZDsKIAotCWlmIChvYmotPmxhc3RfcmVh ZFtyaW5nXS5yZXF1ZXN0ID09IHJlcSkKKwlpZiAoaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+ bGFzdF9yZWFkW3JpbmddKSA9PSByZXEpCiAJCWk5MTVfZ2VtX29iamVjdF9yZXRpcmVfX3JlYWQo b2JqLCByaW5nKTsKLQllbHNlIGlmIChvYmotPmxhc3Rfd3JpdGUucmVxdWVzdCA9PSByZXEpCisJ ZWxzZSBpZiAoaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF93cml0ZSkgPT0gcmVxKQog CQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX193cml0ZShvYmopOwogCiAJaWYgKHJlcS0+cmVzZXRf Y291bnRlciA9PSBpOTE1X3Jlc2V0X2NvdW50ZXIoJnJlcS0+aTkxNS0+Z3B1X2Vycm9yKSkKQEAg LTExODQsMjAgKzExODcsMjAgQEAgaTkxNV9nZW1fb2JqZWN0X3dhaXRfcmVuZGVyaW5nX19ub25i bG9ja2luZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCWlmIChyZWFkb25seSkg ewogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKIAotCQlyZXEgPSBvYmotPmxh c3Rfd3JpdGUucmVxdWVzdDsKKwkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFz dF93cml0ZSk7CiAJCWlmIChyZXEgPT0gTlVMTCkKIAkJCXJldHVybiAwOwogCi0JCXJlcXVlc3Rz W24rK10gPSBpOTE1X2dlbV9yZXF1ZXN0X2dldChyZXEpOworCQlyZXF1ZXN0c1tuKytdID0gcmVx OwogCX0gZWxzZSB7CiAJCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBpKyspIHsK IAkJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCi0JCQlyZXEgPSBvYmotPmxh c3RfcmVhZFtpXS5yZXF1ZXN0OworCQkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+ bGFzdF9yZWFkW2ldKTsKIAkJCWlmIChyZXEgPT0gTlVMTCkKIAkJCQljb250aW51ZTsKIAotCQkJ cmVxdWVzdHNbbisrXSA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0KHJlcSk7CisJCQlyZXF1ZXN0c1tu KytdID0gcmVxOwogCQl9CiAJfQogCkBAIC0yMTE3LDI1ICsyMTIwLDI3IEBAIHZvaWQgaTkxNV92 bWFfbW92ZV90b19hY3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCiBzdGF0aWMgdm9pZAogaTkx NV9nZW1fb2JqZWN0X3JldGlyZV9fd3JpdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aikKIHsKLQlHRU1fQlVHX09OKG9iai0+bGFzdF93cml0ZS5yZXF1ZXN0ID09IE5VTEwpOwotCUdF TV9CVUdfT04oIShvYmotPmFjdGl2ZSAmIGludGVsX2VuZ2luZV9mbGFnKG9iai0+bGFzdF93cml0 ZS5yZXF1ZXN0LT5lbmdpbmUpKSk7CisJR0VNX0JVR19PTighX19pOTE1X2dlbV9hY3RpdmVfaXNf YnVzeSgmb2JqLT5sYXN0X3dyaXRlKSk7CisJR0VNX0JVR19PTighKG9iai0+YWN0aXZlICYgaW50 ZWxfZW5naW5lX2ZsYWcoaTkxNV9nZW1fYWN0aXZlX2dldF9lbmdpbmUoJm9iai0+bGFzdF93cml0 ZSkpKSk7CiAKLQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmb2JqLT5sYXN0X3dyaXRlLnJlcXVl c3QsIE5VTEwpOworCWk5MTVfZ2VtX2FjdGl2ZV9zZXQoJm9iai0+bGFzdF93cml0ZSwgTlVMTCk7 CiAJaW50ZWxfZmJfb2JqX2ZsdXNoKG9iaiwgdHJ1ZSwgT1JJR0lOX0NTKTsKIH0KIAogc3RhdGlj IHZvaWQKIGk5MTVfZ2VtX29iamVjdF9yZXRpcmVfX3JlYWQoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwgaW50IHJpbmcpCiB7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l OwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCi0JR0VNX0JVR19PTihvYmotPmxhc3RfcmVhZFty aW5nXS5yZXF1ZXN0ID09IE5VTEwpOworCUdFTV9CVUdfT04oIV9faTkxNV9nZW1fYWN0aXZlX2lz X2J1c3koJm9iai0+bGFzdF9yZWFkW3JpbmddKSk7CiAJR0VNX0JVR19PTighKG9iai0+YWN0aXZl ICYgKDEgPDwgcmluZykpKTsKIAogCWxpc3RfZGVsX2luaXQoJm9iai0+ZW5naW5lX2xpc3Rbcmlu Z10pOwotCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZvYmotPmxhc3RfcmVhZFtyaW5nXS5yZXF1 ZXN0LCBOVUxMKTsKKwlpOTE1X2dlbV9hY3RpdmVfc2V0KCZvYmotPmxhc3RfcmVhZFtyaW5nXSwg TlVMTCk7CiAKLQlpZiAob2JqLT5sYXN0X3dyaXRlLnJlcXVlc3QgJiYgb2JqLT5sYXN0X3dyaXRl LnJlcXVlc3QtPmVuZ2luZS0+aWQgPT0gcmluZykKKwllbmdpbmUgPSBpOTE1X2dlbV9hY3RpdmVf Z2V0X2VuZ2luZSgmb2JqLT5sYXN0X3dyaXRlKTsKKwlpZiAoZW5naW5lICYmIGVuZ2luZS0+aWQg PT0gcmluZykKIAkJaTkxNV9nZW1fb2JqZWN0X3JldGlyZV9fd3JpdGUob2JqKTsKIAogCW9iai0+ YWN0aXZlICY9IH4oMSA8PCByaW5nKTsKQEAgLTIxNTQsNyArMjE1OSw3IEBAIGk5MTVfZ2VtX29i amVjdF9yZXRpcmVfX3JlYWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgaW50IHJp bmcpCiAJCQlsaXN0X21vdmVfdGFpbCgmdm1hLT52bV9saW5rLCAmdm1hLT52bS0+aW5hY3RpdmVf bGlzdCk7CiAJfQogCi0JaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJm9iai0+bGFzdF9mZW5jZS5y ZXF1ZXN0LCBOVUxMKTsKKwlpOTE1X2dlbV9hY3RpdmVfc2V0KCZvYmotPmxhc3RfZmVuY2UsIE5V TEwpOwogCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKIH0KIApAQCAtMjM0Nyw3ICsyMzUyLDcg QEAgaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3RzX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQogCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCwKIAkJCQkgICAg ICAgZW5naW5lX2xpc3RbZW5naW5lLT5pZF0pOwogCi0JCWlmICghbGlzdF9lbXB0eSgmb2JqLT5s YXN0X3JlYWRbZW5naW5lLT5pZF0ucmVxdWVzdC0+bGlzdCkpCisJCWlmICghbGlzdF9lbXB0eSgm aTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF9yZWFkW2VuZ2luZS0+aWRdKS0+bGlzdCkp CiAJCQlicmVhazsKIAogCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX19yZWFkKG9iaiwgZW5naW5l LT5pZCk7CkBAIC0yNDUzLDcgKzI0NTgsNyBAQCBpOTE1X2dlbV9vYmplY3RfZmx1c2hfYWN0aXZl KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJZm9yIChpID0gMDsgaSA8IEk5MTVf TlVNX0VOR0lORVM7IGkrKykgewogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsK IAotCQlyZXEgPSBvYmotPmxhc3RfcmVhZFtpXS5yZXF1ZXN0OworCQlyZXEgPSBpOTE1X2dlbV9h Y3RpdmVfcGVlaygmb2JqLT5sYXN0X3JlYWRbaV0pOwogCQlpZiAocmVxID09IE5VTEwpCiAJCQlj b250aW51ZTsKIApAQCAtMjQ5MSw3ICsyNDk2LDcgQEAgaTkxNV9nZW1fd2FpdF9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7 CiAJc3RydWN0IGRybV9pOTE1X2dlbV93YWl0ICphcmdzID0gZGF0YTsKIAlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxW0k5 MTVfTlVNX0VOR0lORVNdOworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdHNb STkxNV9OVU1fRU5HSU5FU107CiAJaW50IGksIG4gPSAwOwogCWludCByZXQ7CiAKQEAgLTI1Mjcs MjAgKzI1MzIsMjEgQEAgaTkxNV9nZW1fd2FpdF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiAJaTkxNV9nZW1fb2JqZWN0X3B1 dChvYmopOwogCiAJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkrKykgewotCQlp ZiAob2JqLT5sYXN0X3JlYWRbaV0ucmVxdWVzdCA9PSBOVUxMKQotCQkJY29udGludWU7CisJCXN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCi0JCXJlcVtuKytdID0gaTkxNV9nZW1f cmVxdWVzdF9nZXQob2JqLT5sYXN0X3JlYWRbaV0ucmVxdWVzdCk7CisJCXJlcSA9IGk5MTVfZ2Vt X2FjdGl2ZV9nZXQoJm9iai0+bGFzdF9yZWFkW2ldKTsKKwkJaWYgKHJlcSkKKwkJCXJlcXVlc3Rz W24rK10gPSByZXE7CiAJfQogCiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAK IAlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAJCWlmIChyZXQgPT0gMCkKLQkJCXJldCA9IF9f aTkxNV93YWl0X3JlcXVlc3QocmVxW2ldLCB0cnVlLAorCQkJcmV0ID0gX19pOTE1X3dhaXRfcmVx dWVzdChyZXF1ZXN0c1tpXSwgdHJ1ZSwKIAkJCQkJCSAgYXJncy0+dGltZW91dF9ucyA+IDAgPyAm YXJncy0+dGltZW91dF9ucyA6IE5VTEwsCiAJCQkJCQkgIHRvX3Jwc19jbGllbnQoZmlsZSkpOwot CQlpOTE1X2dlbV9yZXF1ZXN0X3B1dChyZXFbaV0pOworCQlpOTE1X2dlbV9yZXF1ZXN0X3B1dChy ZXF1ZXN0c1tpXSk7CiAJfQogCXJldHVybiByZXQ7CiAKQEAgLTI2MTMsNyArMjYxOSw3IEBAIGk5 MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCSAg ICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICp0bykKIHsKIAljb25zdCBib29sIHJlYWRv bmx5ID0gb2JqLT5iYXNlLnBlbmRpbmdfd3JpdGVfZG9tYWluID09IDA7Ci0Jc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXFbSTkxNV9OVU1fRU5HSU5FU107CisJc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0c1tJOTE1X05VTV9FTkdJTkVTXTsKIAlpbnQgcmV0LCBpLCBu OwogCiAJaWYgKCFvYmotPmFjdGl2ZSkKQEAgLTI2MjEsMTUgKzI2MjcsMjIgQEAgaTkxNV9nZW1f b2JqZWN0X3N5bmMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAogCW4gPSAwOwog CWlmIChyZWFkb25seSkgewotCQlpZiAob2JqLT5sYXN0X3dyaXRlLnJlcXVlc3QpCi0JCQlyZXFb bisrXSA9IG9iai0+bGFzdF93cml0ZS5yZXF1ZXN0OworCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcTsKKworCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3dy aXRlKTsKKwkJaWYgKHJlcSkKKwkJCXJlcXVlc3RzW24rK10gPSByZXE7CiAJfSBlbHNlIHsKLQkJ Zm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkrKykKLQkJCWlmIChvYmotPmxhc3Rf cmVhZFtpXS5yZXF1ZXN0KQotCQkJCXJlcVtuKytdID0gb2JqLT5sYXN0X3JlYWRbaV0ucmVxdWVz dDsKKwkJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkrKykgeworCQkJc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisKKwkJCXJlcSA9IGk5MTVfZ2VtX2FjdGl2ZV9w ZWVrKCZvYmotPmxhc3RfcmVhZFtpXSk7CisJCQlpZiAocmVxKQorCQkJCXJlcXVlc3RzW24rK10g PSByZXE7CisJCX0KIAl9CiAJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewotCQlyZXQgPSBfX2k5 MTVfZ2VtX29iamVjdF9zeW5jKG9iaiwgdG8sIHJlcVtpXSk7CisJCXJldCA9IF9faTkxNV9nZW1f b2JqZWN0X3N5bmMob2JqLCB0bywgcmVxdWVzdHNbaV0pOwogCQlpZiAocmV0KQogCQkJcmV0dXJu IHJldDsKIAl9CkBAIC0zNzAyLDE3ICszNzE1LDE3IEBAIGk5MTVfZ2VtX2J1c3lfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAogCWFyZ3MtPmJ1c3kgPSAwOwogCWlm IChvYmotPmFjdGl2ZSkgeworCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKIAkJ aW50IGk7CiAKIAkJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkrKykgewotCQkJ c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Ci0KLQkJCXJlcSA9IG9iai0+bGFzdF9y ZWFkW2ldLnJlcXVlc3Q7CisJCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0 X3JlYWRbaV0pOwogCQkJaWYgKHJlcSkKIAkJCQlhcmdzLT5idXN5IHw9IDEgPDwgKDE2ICsgcmVx LT5lbmdpbmUtPmV4ZWNfaWQpOwogCQl9Ci0JCWlmIChvYmotPmxhc3Rfd3JpdGUucmVxdWVzdCkK LQkJCWFyZ3MtPmJ1c3kgfD0gb2JqLT5sYXN0X3dyaXRlLnJlcXVlc3QtPmVuZ2luZS0+ZXhlY19p ZDsKKwkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF93cml0ZSk7CisJCWlm IChyZXEpCisJCQlhcmdzLT5idXN5IHw9IHJlcS0+ZW5naW5lLT5leGVjX2lkOwogCX0KIAogdW5y ZWY6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2UuYwppbmRleCA5ZjhjZTEzZDJmNzcu LjMwMTM0NDI1MmIxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZS5jCkBAIC0y NjEsMTQgKzI2MSwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2ZlbmNl X2xvc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHN0YXRpYyBpbnQKIGk5MTVf Z2VtX29iamVjdF93YWl0X2ZlbmNlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7 Ci0JaWYgKG9iai0+bGFzdF9mZW5jZS5yZXF1ZXN0KSB7Ci0JCWludCByZXQgPSBpOTE1X3dhaXRf cmVxdWVzdChvYmotPmxhc3RfZmVuY2UucmVxdWVzdCk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4g cmV0OworCWludCByZXQ7CiAKLQkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJm9iai0+bGFzdF9m ZW5jZS5yZXF1ZXN0LCBOVUxMKTsKLQl9CisJcmV0ID0gaTkxNV9nZW1fYWN0aXZlX3dhaXQoJm9i ai0+bGFzdF9mZW5jZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAorCWk5MTVfZ2VtX2Fj dGl2ZV9zZXQoJm9iai0+bGFzdF9mZW5jZSwgTlVMTCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaAppbmRleCA4OWQ3YmI2NTFmNjcuLjU2ZTMx MmI5NTQwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVz dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaApAQCAtMjcx LDE0ICsyNzEsMTM4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3NwaW5fcmVxdWVzdChjb25z dCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCiAgKiByZXNvdXJjZSBpbmNs dWRpbmcgaXRzZWxmLgogICovCiBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlIHsKLQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpfX3JlcXVlc3Q7CiB9OwogCisvKioKKyAqIGk5MTVfZ2VtX2FjdGl2ZV9zZXQgLSB1cGRhdGVz IHRoZSB0cmFja2VyIHRvIHdhdGNoIHRoZSBjdXJyZW50IHJlcXVlc3QKKyAqIEBhY3RpdmUgLSB0 aGUgYWN0aXZlIHRyYWNrZXIKKyAqIEByZXF1ZXN0IC0gdGhlIHJlcXVlc3QgdG8gd2F0Y2gKKyAq CisgKiBpOTE1X2dlbV9hY3RpdmVfc2V0KCkgd2F0Y2hlcyB0aGUgZ2l2ZW4gQHJlcXVlc3QgZm9y IGNvbXBsZXRpb24uIFdoaWxzdAorICogdGhhdCBAcmVxdWVzdCBpcyBidXN5LCB0aGUgQGFjdGl2 ZSByZXBvcnRzIGJ1c3kuIFdoZW4gdGhhdCBAcmVxdWVzdCBpcworICogcmV0aXJlZCwgdGhlIEBh Y3RpdmUgdHJhY2tlciBpcyB1cGRhdGVkIHRvIHJlcG9ydCBpZGxlLgorICovCiBzdGF0aWMgaW5s aW5lIHZvaWQKIGk5MTVfZ2VtX2FjdGl2ZV9zZXQoc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0 aXZlLAogCQkgICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogewotCWk5 MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZhY3RpdmUtPnJlcXVlc3QsIHJlcXVlc3QpOworCWk5MTVf Z2VtX3JlcXVlc3RfYXNzaWduKCZhY3RpdmUtPl9fcmVxdWVzdCwgcmVxdWVzdCk7Cit9CisKKy8q KgorICogaTkxNV9nZW1fYWN0aXZlX3BlZWsgLSByZXBvcnQgdGhlIHJlcXVlc3QgYmVpbmcgbW9u aXRvcmVkCisgKiBAYWN0aXZlIC0gdGhlIGFjdGl2ZSB0cmFja2VyCisgKgorICogaTkxNV9nZW1f YWN0aXZlX3BlZWsoKSByZXR1cm5zIHRoZSBjdXJyZW50IHJlcXVlc3QgYmVpbmcgdHJhY2tlZCwg b3IgTlVMTC4KKyAqIEl0IGRvZXMgbm90IG9idGFpbiBhIHJlZmVyZW5jZSBvbiB0aGUgcmVxdWVz dCBmb3IgdGhlIGNhbGxlciwgc28gdGhlCisgKiBjYWxsZXIgbXVzdCBob2xkIHN0cnVjdF9tdXRl eC4KKyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgoraTkx NV9nZW1fYWN0aXZlX3BlZWsoY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlKQor eworCXJldHVybiBhY3RpdmUtPl9fcmVxdWVzdDsKK30KKworLyoqCisgKiBpOTE1X2dlbV9hY3Rp dmVfZ2V0IC0gcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBhY3RpdmUgcmVxdWVzdAorICogQGFj dGl2ZSAtIHRoZSBhY3RpdmUgdHJhY2tlcgorICoKKyAqIGk5MTVfZ2VtX2FjdGl2ZV9nZXQoKSBy ZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBhY3RpdmUgcmVxdWVzdCwgb3IgTlVMTAorICogaWYg dGhlIGFjdGl2ZSB0cmFja2VyIGlzIGlkbGUuIFRoZSBjYWxsZXIgbXVzdCBob2xkIHN0cnVjdF9t dXRleC4KKyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgor aTkxNV9nZW1fYWN0aXZlX2dldChjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUp Cit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0OworCisJcmVxdWVzdCA9 IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKGFjdGl2ZSk7CisJaWYgKCFyZXF1ZXN0IHx8IGk5MTVfZ2Vt X3JlcXVlc3RfY29tcGxldGVkKHJlcXVlc3QpKQorCQlyZXR1cm4gTlVMTDsKKworCXJldHVybiBp OTE1X2dlbV9yZXF1ZXN0X2dldChyZXF1ZXN0KTsKK30KKworLyoqCisgKiBfX2k5MTVfZ2VtX2Fj dGl2ZV9pc19idXN5IC0gcmVwb3J0IHdoZXRoZXIgdGhlIGFjdGl2ZSB0cmFja2VyIGlzIGFzc2ln bmVkCisgKiBAYWN0aXZlIC0gdGhlIGFjdGl2ZSB0cmFja2VyCisgKgorICogX19pOTE1X2dlbV9h Y3RpdmVfaXNfYnVzeSgpIHJldHVybnMgdHJ1ZSBpZiB0aGUgYWN0aXZlIHRyYWNrZXIgaXMgY3Vy cmVudGx5CisgKiBhc3NpZ25lZCB0byBhIHJlcXVlc3QuIER1ZSB0byB0aGUgbGF6eSByZXRpcmlu ZywgdGhhdCByZXF1ZXN0IG1heSBiZSBpZGxlCisgKiBhbmQgdGhpcyBtYXkgcmVwb3J0IHN0YWxl IGluZm9ybWF0aW9uLgorICovCitzdGF0aWMgaW5saW5lIGJvb2wKK19faTkxNV9nZW1fYWN0aXZl X2lzX2J1c3koY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlKQoreworCXJldHVy biBpOTE1X2dlbV9hY3RpdmVfcGVlayhhY3RpdmUpOworfQorCisvKioKKyAqIGk5MTVfZ2VtX2Fj dGl2ZV9pc19pZGxlIC0gcmVwb3J0IHdoZXRoZXIgdGhlIGFjdGl2ZSB0cmFja2VyIGlzIGlkbGUK KyAqIEBhY3RpdmUgLSB0aGUgYWN0aXZlIHRyYWNrZXIKKyAqCisgKiBpOTE1X2dlbV9hY3RpdmVf aXNfaWRsZSgpIHJldHVybnMgdHJ1ZSBpZiB0aGUgYWN0aXZlIHRyYWNrZXIgaXMgY3VycmVudGx5 CisgKiB1bmFzc2lnbmVkIG9yIGlmIHRoZSByZXF1ZXN0IGlzIGNvbXBsZXRlIChidXQgbm90IHll dCByZXRpcmVkKS4gUmVxdWlyZXMKKyAqIHRoZSBjYWxsZXIgdG8gaG9sZCBzdHJ1Y3RfbXV0ZXgg KGJ1dCB0aGF0IGNhbiBiZSByZWxheGVkIGlmIGRlc2lyZWQpLgorICovCitzdGF0aWMgaW5saW5l IGJvb2wKK2k5MTVfZ2VtX2FjdGl2ZV9pc19pZGxlKGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9hY3Rp dmUgKmFjdGl2ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7CisK KwlyZXF1ZXN0ID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoYWN0aXZlKTsKKwlpZiAoIXJlcXVlc3Qg fHwgaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQocmVxdWVzdCkpCisJCXJldHVybiB0cnVlOwor CisJcmV0dXJuIGZhbHNlOworfQorCisvKioKKyAqIGk5MTVfZ2VtX2FjdGl2ZV93YWl0IC0gd2Fp dHMgdW50aWwgdGhlIHJlcXVlc3QgaXMgY29tcGxldGVkCisgKiBAYWN0aXZlIC0gdGhlIGFjdGl2 ZSByZXF1ZXN0IG9uIHdoaWNoIHRvIHdhaXQKKyAqCisgKiBpOTE1X2dlbV9hY3RpdmVfd2FpdCgp IHdhaXRzIHVudGlsIHRoZSByZXF1ZXN0IGlzIGNvbXBsZXRlZCBiZWZvcmUKKyAqIHJldHVybmlu Zy4KKyAqLworc3RhdGljIGlubGluZSBpbnQgX19tdXN0X2NoZWNrCitpOTE1X2dlbV9hY3RpdmVf d2FpdChjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUpCit7CisJc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0OworCisJcmVxdWVzdCA9IGk5MTVfZ2VtX2FjdGl2 ZV9wZWVrKGFjdGl2ZSk7CisJaWYgKCFyZXF1ZXN0KQorCQlyZXR1cm4gMDsKKworCXJldHVybiBp OTE1X3dhaXRfcmVxdWVzdChyZXF1ZXN0KTsKK30KKworLyoqCisgKiBpOTE1X2dlbV9hY3RpdmVf cmV0aXJlIC0gd2FpdHMgdW50aWwgdGhlIHJlcXVlc3QgaXMgcmV0aXJlZAorICogQGFjdGl2ZSAt IHRoZSBhY3RpdmUgcmVxdWVzdCBvbiB3aGljaCB0byB3YWl0CisgKgorICogVW5saWtlIGk5MTVf Z2VtX2FjdGl2ZV9lYWl0KCksIHRoaXMgaTkxNV9nZW1fYWN0aXZlX3JldGlyZSgpIHdpbGwKKyAq IG1ha2Ugc3VyZSB0aGUgcmVxdWVzdCBpcyByZXRpcmVkIGJlZm9yZSByZXR1cm5pbmcuCisgKi8K K3N0YXRpYyBpbmxpbmUgaW50IF9fbXVzdF9jaGVjaworaTkxNV9nZW1fYWN0aXZlX3JldGlyZShj b25zdCBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUpCit7CisJcmV0dXJuIGk5MTVfZ2Vt X2FjdGl2ZV93YWl0KGFjdGl2ZSk7Cit9CisKKy8qIENvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3Ig cGVla2luZyBhdCBzdGF0ZSBpbnNpZGUgYWN0aXZlJ3MgcmVxdWVzdCB3aGlsc3QKKyAqIGd1YXJk ZWQgYnkgdGhlIHN0cnVjdF9tdXRleC4KKyAqLworCitzdGF0aWMgaW5saW5lIHVpbnQzMl90Citp OTE1X2dlbV9hY3RpdmVfZ2V0X3NlcW5vKGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFj dGl2ZSkKK3sKKwlyZXR1cm4gaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8oaTkxNV9nZW1fYWN0 aXZlX3BlZWsoYWN0aXZlKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqCitpOTE1X2dlbV9hY3RpdmVfZ2V0X2VuZ2luZShjb25zdCBzdHJ1Y3QgaTkxNV9nZW1f YWN0aXZlICphY3RpdmUpCit7CisJcmV0dXJuIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2VuZ2luZShp OTE1X2dlbV9hY3RpdmVfcGVlayhhY3RpdmUpKTsKIH0KIAogI2RlZmluZSBmb3JfZWFjaF9hY3Rp dmUobWFzaywgaWR4KSBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV90aWxpbmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbGluZy5jCmluZGV4 IGZjNzhmNDljNTgxNS4uOWJjODI0NDIxYjY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV90aWxpbmcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV90aWxpbmcuYwpAQCAtMjQyLDcgKzI0Miw3IEBAIGk5MTVfZ2VtX3NldF90aWxpbmcoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCX0KIAogCQkJb2JqLT5mZW5jZV9kaXJ0 eSA9Ci0JCQkJb2JqLT5sYXN0X2ZlbmNlLnJlcXVlc3QgfHwKKwkJCQkhaTkxNV9nZW1fYWN0aXZl X2lzX2lkbGUoJm9iai0+bGFzdF9mZW5jZSkgfHwKIAkJCQlvYmotPmZlbmNlX3JlZyAhPSBJOTE1 X0ZFTkNFX1JFR19OT05FOwogCiAJCQlvYmotPnRpbGluZ19tb2RlID0gYXJncy0+dGlsaW5nX21v ZGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKaW5kZXggOTNjMmRlYTkw YTg5Li5kNjg4NTU4NjA2ZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3VzZXJwdHIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRy LmMKQEAgLTc0LDExICs3NCw5IEBAIHN0YXRpYyB2b2lkIHdhaXRfcmVuZGVyaW5nKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lO RVM7IGkrKykgewogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKIAotCQlyZXEg PSBvYmotPmxhc3RfcmVhZFtpXS5yZXF1ZXN0OwotCQlpZiAocmVxID09IE5VTEwpCi0JCQljb250 aW51ZTsKLQotCQlyZXF1ZXN0c1tuKytdID0gaTkxNV9nZW1fcmVxdWVzdF9nZXQocmVxKTsKKwkJ cmVxID0gaTkxNV9nZW1fYWN0aXZlX2dldCgmb2JqLT5sYXN0X3JlYWRbaV0pOworCQlpZiAocmVx KQorCQkJcmVxdWVzdHNbbisrXSA9IHJlcTsKIAl9CiAKIAltdXRleF91bmxvY2soJmRldi0+c3Ry dWN0X211dGV4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vy cm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCmluZGV4IGU2ODcx ODI2NTYxOS4uMWFiY2YzMTZhODI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dwdV9lcnJvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9y LmMKQEAgLTc0NCwxMyArNzQ0LDE0IEBAIHN0YXRpYyB2b2lkIGNhcHR1cmVfYm8oc3RydWN0IGRy bV9pOTE1X2Vycm9yX2J1ZmZlciAqZXJyLAogCQkgICAgICAgc3RydWN0IGk5MTVfdm1hICp2bWEp CiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOworCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgaTsKIAogCWVyci0+c2l6ZSA9IG9iai0+ YmFzZS5zaXplOwogCWVyci0+bmFtZSA9IG9iai0+YmFzZS5uYW1lOwogCWZvciAoaSA9IDA7IGkg PCBJOTE1X05VTV9FTkdJTkVTOyBpKyspCi0JCWVyci0+cnNlcW5vW2ldID0gaTkxNV9nZW1fcmVx dWVzdF9nZXRfc2Vxbm8ob2JqLT5sYXN0X3JlYWRbaV0ucmVxdWVzdCk7Ci0JZXJyLT53c2Vxbm8g PSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhvYmotPmxhc3Rfd3JpdGUucmVxdWVzdCk7CisJ CWVyci0+cnNlcW5vW2ldID0gaTkxNV9nZW1fYWN0aXZlX2dldF9zZXFubygmb2JqLT5sYXN0X3Jl YWRbaV0pOworCWVyci0+d3NlcW5vID0gaTkxNV9nZW1fYWN0aXZlX2dldF9zZXFubygmb2JqLT5s YXN0X3dyaXRlKTsKIAllcnItPmd0dF9vZmZzZXQgPSB2bWEtPm5vZGUuc3RhcnQ7CiAJZXJyLT5y ZWFkX2RvbWFpbnMgPSBvYmotPmJhc2UucmVhZF9kb21haW5zOwogCWVyci0+d3JpdGVfZG9tYWlu ID0gb2JqLT5iYXNlLndyaXRlX2RvbWFpbjsKQEAgLTc2Miw4ICs3NjMsMTAgQEAgc3RhdGljIHZv aWQgY2FwdHVyZV9ibyhzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfYnVmZmVyICplcnIsCiAJZXJyLT5k aXJ0eSA9IG9iai0+ZGlydHk7CiAJZXJyLT5wdXJnZWFibGUgPSBvYmotPm1hZHYgIT0gSTkxNV9N QURWX1dJTExORUVEOwogCWVyci0+dXNlcnB0ciA9IG9iai0+dXNlcnB0ci5tbSAhPSBOVUxMOwot CWVyci0+cmluZyA9IG9iai0+bGFzdF93cml0ZS5yZXF1ZXN0ID8gb2JqLT5sYXN0X3dyaXRlLnJl cXVlc3QtPmVuZ2luZS0+aWQgOiAtMTsKIAllcnItPmNhY2hlX2xldmVsID0gb2JqLT5jYWNoZV9s ZXZlbDsKKworCWVuZ2luZSA9IGk5MTVfZ2VtX2FjdGl2ZV9nZXRfZW5naW5lKCZvYmotPmxhc3Rf d3JpdGUpOworCWVyci0+cmluZyA9IGVuZ2luZSA/IGVuZ2luZS0+aWQgOiAtMTsKIH0KIAogc3Rh dGljIHUzMiBjYXB0dXJlX2FjdGl2ZV9ibyhzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfYnVmZmVyICpl cnIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggOTJlN2JjNzZjY2UwLi44 MzljNDZhMDA3YjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTExNDI3 LDcgKzExNDI3LDcgQEAgc3RhdGljIGJvb2wgdXNlX21taW9fZmxpcChzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsCiAJCQkJCQkgICAgICAgZmFsc2UpKQogCQlyZXR1cm4gdHJ1ZTsKIAll bHNlCi0JCXJldHVybiBlbmdpbmUgIT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5naW5lKG9iai0+ bGFzdF93cml0ZS5yZXF1ZXN0KTsKKwkJcmV0dXJuIGVuZ2luZSAhPSBpOTE1X2dlbV9hY3RpdmVf Z2V0X2VuZ2luZSgmb2JqLT5sYXN0X3dyaXRlKTsKIH0KIAogc3RhdGljIHZvaWQgc2tsX2RvX21t aW9fZmxpcChzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKQEAgLTExNzI3LDcgKzExNzI3 LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCiAJfSBlbHNlIGlmIChJU19JVllCUklER0UoZGV2KSB8fCBJU19IQVNXRUxMKGRldikpIHsK IAkJZW5naW5lID0gJmRldl9wcml2LT5lbmdpbmVbQkNTXTsKIAl9IGVsc2UgaWYgKElOVEVMX0lO Rk8oZGV2KS0+Z2VuID49IDcpIHsKLQkJZW5naW5lID0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5n aW5lKG9iai0+bGFzdF93cml0ZS5yZXF1ZXN0KTsKKwkJZW5naW5lID0gaTkxNV9nZW1fYWN0aXZl X2dldF9lbmdpbmUoJm9iai0+bGFzdF93cml0ZSk7CiAJCWlmIChlbmdpbmUgPT0gTlVMTCB8fCBl bmdpbmUtPmlkICE9IFJDUykKIAkJCWVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW0JDU107CiAJ fSBlbHNlIHsKQEAgLTExNzQ4LDkgKzExNzQ4LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3Bh Z2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJaWYgKG1taW9fZmxpcCkgewogCQlJTklU X1dPUksoJndvcmstPm1taW9fd29yaywgaW50ZWxfbW1pb19mbGlwX3dvcmtfZnVuYyk7CiAKLQkJ aTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJndvcmstPmZsaXBfcXVldWVkX3JlcSwKLQkJCQkJb2Jq LT5sYXN0X3dyaXRlLnJlcXVlc3QpOwotCisJCXdvcmstPmZsaXBfcXVldWVkX3JlcSA9IGk5MTVf Z2VtX2FjdGl2ZV9nZXQoJm9iai0+bGFzdF93cml0ZSk7CiAJCXNjaGVkdWxlX3dvcmsoJndvcmst Pm1taW9fd29yayk7CiAJfSBlbHNlIHsKIAkJcmVxdWVzdCA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxs b2MoZW5naW5lLCBlbmdpbmUtPmxhc3RfY29udGV4dCk7CkBAIC0xMzk3MSw4ICsxMzk2OSw4IEBA IGludGVsX3ByZXBhcmVfcGxhbmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQlzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KIAkJCQl0b19pbnRlbF9wbGFuZV9z dGF0ZShuZXdfc3RhdGUpOwogCi0JCQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmcGxhbmVfc3Rh dGUtPndhaXRfcmVxLAotCQkJCQkJb2JqLT5sYXN0X3dyaXRlLnJlcXVlc3QpOworCQkJcGxhbmVf c3RhdGUtPndhaXRfcmVxID0KKwkJCQlpOTE1X2dlbV9hY3RpdmVfZ2V0KCZvYmotPmxhc3Rfd3Jp dGUpOwogCQl9CiAKIAkJaTkxNV9nZW1fdHJhY2tfZmIob2xkX29iaiwgb2JqLCBpbnRlbF9wbGFu ZS0+ZnJvbnRidWZmZXJfYml0KTsKLS0gCjIuOC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK