From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 45/62] drm/i915: Mark up i915_gem_active for locking annotation Date: Fri, 3 Jun 2016 17:37:10 +0100 Message-ID: <1464971847-15809-46-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 7180F892DC for ; Fri, 3 Jun 2016 16:38:18 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id n184so621122wmn.1 for ; Fri, 03 Jun 2016 09:38:18 -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 VGhlIGZ1dHVyZSBhbm5vdGF0aW9ucyB3aWxsIHRyYWNrIHRoZSBsb2NraW5nIHVzZWQgZm9yIGFj Y2VzcyB0byBlbnN1cmUKdGhhdCBpdCBpcyBhbHdheXMgc3VmZmljaWVudC4gV2UgbWFrZSB0aGUg cHJlcGFyYXRpb25zIG5vdyB0byBwcmVzZW50CnRoZSBBUEkgYWhlYWQgYW5kIHRvIG1ha2Ugc3Vy ZSB0aGF0IEdDQyBjYW4gZWxpbWluYXRlIHRoZSB1bnVzZWQKcGFyYW1ldGVyLgoKQmVmb3JlOgk2 Mjk4NDE3IDM2MTk2MTAgIDY5NjMyMCAxMDYxNDM0NyAgICAgICAgIGExZjY0YiB2bWxpbnV4CkFm dGVyOgk2Mjk4NDE3IDM2MTk2MTAgIDY5NjMyMCAxMDYxNDM0NyAgICAgICAgIGExZjY0YiB2bWxp bnV4CgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51 az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgfCAxMiArKysr Ky0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwgNDkgKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9mZW5jZS5jICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVz dC5oIHwgMzggKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fdGlsaW5nLmMgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3VzZXJwdHIuYyB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5j ICAgfCAyOSArKysrKysrKysrKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgICAgfCAxMiArKysrKy0tLQogOCBmaWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9u cygrKSwgNDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRl eCBmZWZiMzVjNGJlY2MuLmQzNTQ1NGQ1NjgzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKQEAgLTE1NSwxMCArMTU1LDEzIEBAIGRlc2NyaWJlX29iaihzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCSAgIG9iai0+YmFzZS53cml0 ZV9kb21haW4pOwogCWZvcl9lYWNoX2VuZ2luZV9pZChlbmdpbmUsIGRldl9wcml2LCBpZCkKIAkJ c2VxX3ByaW50ZihtLCAiJXggIiwKLQkJCSAgIGk5MTVfZ2VtX2FjdGl2ZV9nZXRfc2Vxbm8oJm9i ai0+bGFzdF9yZWFkW2lkXSkpOworCQkJICAgaTkxNV9nZW1fYWN0aXZlX2dldF9zZXFubygmb2Jq LT5sYXN0X3JlYWRbaWRdLAorCQkJCQkJICAgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4 KSk7CiAJc2VxX3ByaW50ZihtLCAiXSAleCAleCVzJXMlcyIsCi0JCSAgIGk5MTVfZ2VtX2FjdGl2 ZV9nZXRfc2Vxbm8oJm9iai0+bGFzdF93cml0ZSksCi0JCSAgIGk5MTVfZ2VtX2FjdGl2ZV9nZXRf c2Vxbm8oJm9iai0+bGFzdF9mZW5jZSksCisJCSAgIGk5MTVfZ2VtX2FjdGl2ZV9nZXRfc2Vxbm8o Jm9iai0+bGFzdF93cml0ZSwKKwkJCQkJICAgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4 KSwKKwkJICAgaTkxNV9nZW1fYWN0aXZlX2dldF9zZXFubygmb2JqLT5sYXN0X2ZlbmNlLAorCQkJ CQkgICAgICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpLAogCQkgICBpOTE1X2NhY2hlX2xl dmVsX3N0cih0b19pOTE1KG9iai0+YmFzZS5kZXYpLCBvYmotPmNhY2hlX2xldmVsKSwKIAkJICAg b2JqLT5kaXJ0eSA/ICIgZGlydHkiIDogIiIsCiAJCSAgIG9iai0+bWFkdiA9PSBJOTE1X01BRFZf RE9OVE5FRUQgPyAiIHB1cmdlYWJsZSIgOiAiIik7CkBAIC0xOTMsNyArMTk2LDggQEAgZGVzY3Jp YmVfb2JqKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aikKIAkJc2VxX3ByaW50ZihtLCAiICglcyBtYXBwYWJsZSkiLCBzKTsKIAl9CiAKLQllbmdpbmUg PSBpOTE1X2dlbV9hY3RpdmVfZ2V0X2VuZ2luZSgmb2JqLT5sYXN0X3dyaXRlKTsKKwllbmdpbmUg PSBpOTE1X2dlbV9hY3RpdmVfZ2V0X2VuZ2luZSgmb2JqLT5sYXN0X3dyaXRlLAorCQkJCQkgICAg Jm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CiAJaWYgKGVuZ2luZSkKIAkJc2VxX3ByaW50 ZihtLCAiICglcykiLCBlbmdpbmUtPm5hbWUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRl eCA5OWUzYjI2OWI0YjkuLjYxMDM3OGJkMWJlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBA IC0xMTIwLDIxICsxMTIwLDI0IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3JlbmRlcmluZyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQlyZXR1cm4gMDsKIAogCWlmIChyZWFkb25s eSkgewotCQlyZXF1ZXN0ID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF93cml0ZSk7 CisJCXJlcXVlc3QgPSBpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3dyaXRlLAorCQkJ CQkgICAgICAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CiAJCWlmIChyZXF1ZXN0KSB7 CiAJCQlyZXQgPSBpOTE1X3dhaXRfcmVxdWVzdChyZXF1ZXN0KTsKIAkJCWlmIChyZXQpCiAJCQkJ cmV0dXJuIHJldDsKIAogCQkJaSA9IHJlcXVlc3QtPmVuZ2luZS0+aWQ7Ci0JCQlpZiAoaTkxNV9n ZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF9yZWFkW2ldKSA9PSByZXF1ZXN0KQorCQkJaWYgKGk5 MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxhc3RfcmVhZFtpXSwKKwkJCQkJCSAmb2JqLT5iYXNl LmRldi0+c3RydWN0X211dGV4KSA9PSByZXF1ZXN0KQogCQkJCWk5MTVfZ2VtX29iamVjdF9yZXRp cmVfX3JlYWQob2JqLCBpKTsKIAkJCWVsc2UKIAkJCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX193 cml0ZShvYmopOwogCQl9CiAJfSBlbHNlIHsKIAkJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VO R0lORVM7IGkrKykgewotCQkJcmVxdWVzdCA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxh c3RfcmVhZFtpXSk7CisJCQlyZXF1ZXN0ID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFz dF9yZWFkW2ldLAorCQkJCQkJICAgICAgICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwog CQkJaWYgKCFyZXF1ZXN0KQogCQkJCWNvbnRpbnVlOwogCkBAIC0xMTU2LDkgKzExNTksMTEgQEAg aTkxNV9nZW1fb2JqZWN0X3JldGlyZV9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmosCiB7CiAJaW50IHJpbmcgPSByZXEtPmVuZ2luZS0+aWQ7CiAKLQlpZiAoaTkxNV9nZW1f YWN0aXZlX3BlZWsoJm9iai0+bGFzdF9yZWFkW3JpbmddKSA9PSByZXEpCisJaWYgKGk5MTVfZ2Vt X2FjdGl2ZV9wZWVrKCZvYmotPmxhc3RfcmVhZFtyaW5nXSwKKwkJCQkgJm9iai0+YmFzZS5kZXYt PnN0cnVjdF9tdXRleCkgPT0gcmVxKQogCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX19yZWFkKG9i aiwgcmluZyk7Ci0JZWxzZSBpZiAoaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF93cml0 ZSkgPT0gcmVxKQorCWVsc2UgaWYgKGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxhc3Rfd3Jp dGUsCisJCQkJICAgICAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCkgPT0gcmVxKQogCQlp OTE1X2dlbV9vYmplY3RfcmV0aXJlX193cml0ZShvYmopOwogCiAJaWYgKHJlcS0+cmVzZXRfY291 bnRlciA9PSBpOTE1X3Jlc2V0X2NvdW50ZXIoJnJlcS0+aTkxNS0+Z3B1X2Vycm9yKSkKQEAgLTEx ODcsNyArMTE5Miw4IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3JlbmRlcmluZ19fbm9uYmxvY2tp bmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlpZiAocmVhZG9ubHkpIHsKIAkJ c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKLQkJcmVxID0gaTkxNV9nZW1fYWN0 aXZlX3BlZWsoJm9iai0+bGFzdF93cml0ZSk7CisJCXJlcSA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVr KCZvYmotPmxhc3Rfd3JpdGUsCisJCQkJCSAgICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgp OwogCQlpZiAocmVxID09IE5VTEwpCiAJCQlyZXR1cm4gMDsKIApAQCAtMTE5Niw3ICsxMjAyLDgg QEAgaTkxNV9nZW1fb2JqZWN0X3dhaXRfcmVuZGVyaW5nX19ub25ibG9ja2luZyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5F UzsgaSsrKSB7CiAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKIAotCQkJcmVx ID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF9yZWFkW2ldKTsKKwkJCXJlcSA9IGk5 MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxhc3RfcmVhZFtpXSwKKwkJCQkJCSAgICZvYmotPmJh c2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCQkJaWYgKHJlcSA9PSBOVUxMKQogCQkJCWNvbnRpbnVl OwogCkBAIC0yMTIxLDcgKzIxMjgsOSBAQCBzdGF0aWMgdm9pZAogaTkxNV9nZW1fb2JqZWN0X3Jl dGlyZV9fd3JpdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKIAlHRU1fQlVH X09OKCFfX2k5MTVfZ2VtX2FjdGl2ZV9pc19idXN5KCZvYmotPmxhc3Rfd3JpdGUpKTsKLQlHRU1f QlVHX09OKCEob2JqLT5hY3RpdmUgJiBpbnRlbF9lbmdpbmVfZmxhZyhpOTE1X2dlbV9hY3RpdmVf Z2V0X2VuZ2luZSgmb2JqLT5sYXN0X3dyaXRlKSkpKTsKKwlHRU1fQlVHX09OKCEob2JqLT5hY3Rp dmUgJgorCQkgICAgIGludGVsX2VuZ2luZV9mbGFnKGk5MTVfZ2VtX2FjdGl2ZV9nZXRfZW5naW5l KCZvYmotPmxhc3Rfd3JpdGUsCisJCQkJCQkJCSAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRl eCkpKSk7CiAKIAlpOTE1X2dlbV9hY3RpdmVfc2V0KCZvYmotPmxhc3Rfd3JpdGUsIE5VTEwpOwog CWludGVsX2ZiX29ial9mbHVzaChvYmosIHRydWUsIE9SSUdJTl9DUyk7CkBAIC0yMTM5LDcgKzIx NDgsOCBAQCBpOTE1X2dlbV9vYmplY3RfcmV0aXJlX19yZWFkKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmosIGludCByaW5nKQogCWxpc3RfZGVsX2luaXQoJm9iai0+ZW5naW5lX2xpc3Rb cmluZ10pOwogCWk5MTVfZ2VtX2FjdGl2ZV9zZXQoJm9iai0+bGFzdF9yZWFkW3JpbmddLCBOVUxM KTsKIAotCWVuZ2luZSA9IGk5MTVfZ2VtX2FjdGl2ZV9nZXRfZW5naW5lKCZvYmotPmxhc3Rfd3Jp dGUpOworCWVuZ2luZSA9IGk5MTVfZ2VtX2FjdGl2ZV9nZXRfZW5naW5lKCZvYmotPmxhc3Rfd3Jp dGUsCisJCQkJCSAgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsKIAlpZiAoZW5naW5l ICYmIGVuZ2luZS0+aWQgPT0gcmluZykKIAkJaTkxNV9nZW1fb2JqZWN0X3JldGlyZV9fd3JpdGUo b2JqKTsKIApAQCAtMjM1Miw3ICsyMzYyLDggQEAgaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3RzX3Jp bmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJCSAgICAgICBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCwKIAkJCQkgICAgICAgZW5naW5lX2xpc3RbZW5naW5lLT5pZF0pOwog Ci0JCWlmICghbGlzdF9lbXB0eSgmaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF9yZWFk W2VuZ2luZS0+aWRdKS0+bGlzdCkpCisJCWlmICghbGlzdF9lbXB0eSgmaTkxNV9nZW1fYWN0aXZl X3BlZWsoJm9iai0+bGFzdF9yZWFkW2VuZ2luZS0+aWRdLAorCQkJCQkJICAgICAgJm9iai0+YmFz ZS5kZXYtPnN0cnVjdF9tdXRleCktPmxpc3QpKQogCQkJYnJlYWs7CiAKIAkJaTkxNV9nZW1fb2Jq ZWN0X3JldGlyZV9fcmVhZChvYmosIGVuZ2luZS0+aWQpOwpAQCAtMjQ1OCw3ICsyNDY5LDggQEAg aTkxNV9nZW1fb2JqZWN0X2ZsdXNoX2FjdGl2ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQogCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBpKyspIHsKIAkJc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKLQkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX3Bl ZWsoJm9iai0+bGFzdF9yZWFkW2ldKTsKKwkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9i ai0+bGFzdF9yZWFkW2ldLAorCQkJCQkgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsK IAkJaWYgKHJlcSA9PSBOVUxMKQogCQkJY29udGludWU7CiAKQEAgLTI1MzQsNyArMjU0Niw4IEBA IGk5MTVfZ2VtX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwg c3RydWN0IGRybV9maWxlICpmaWxlKQogCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVT OyBpKyspIHsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKLQkJcmVxID0g aTkxNV9nZW1fYWN0aXZlX2dldCgmb2JqLT5sYXN0X3JlYWRbaV0pOworCQlyZXEgPSBpOTE1X2dl bV9hY3RpdmVfZ2V0KCZvYmotPmxhc3RfcmVhZFtpXSwKKwkJCQkJICAmb2JqLT5iYXNlLmRldi0+ c3RydWN0X211dGV4KTsKIAkJaWYgKHJlcSkKIAkJCXJlcXVlc3RzW24rK10gPSByZXE7CiAJfQpA QCAtMjYyOSwxNCArMjY0MiwxNiBAQCBpOTE1X2dlbV9vYmplY3Rfc3luYyhzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAogCWlmIChyZWFkb25seSkgewogCQlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcTsKIAotCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5s YXN0X3dyaXRlKTsKKwkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF93cml0 ZSwKKwkJCQkJICAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CiAJCWlmIChyZXEpCiAJ CQlyZXF1ZXN0c1tuKytdID0gcmVxOwogCX0gZWxzZSB7CiAJCWZvciAoaSA9IDA7IGkgPCBJOTE1 X05VTV9FTkdJTkVTOyBpKyspIHsKIAkJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx OwogCi0JCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3JlYWRbaV0pOwor CQkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF9yZWFkW2ldLAorCQkJCQkJ ICAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CiAJCQlpZiAocmVxKQogCQkJCXJlcXVl c3RzW24rK10gPSByZXE7CiAJCX0KQEAgLTM3MTksMTEgKzM3MzQsMTMgQEAgaTkxNV9nZW1fYnVz eV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlpbnQgaTsKIAog CQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5FUzsgaSsrKSB7Ci0JCQlyZXEgPSBpOTE1 X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3JlYWRbaV0pOworCQkJcmVxID0gaTkxNV9nZW1f YWN0aXZlX3BlZWsoJm9iai0+bGFzdF9yZWFkW2ldLAorCQkJCQkJICAgJm9iai0+YmFzZS5kZXYt PnN0cnVjdF9tdXRleCk7CiAJCQlpZiAocmVxKQogCQkJCWFyZ3MtPmJ1c3kgfD0gMSA8PCAoMTYg KyByZXEtPmVuZ2luZS0+ZXhlY19pZCk7CiAJCX0KLQkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX3Bl ZWsoJm9iai0+bGFzdF93cml0ZSk7CisJCXJlcSA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmot Pmxhc3Rfd3JpdGUsCisJCQkJCSAgICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCQlp ZiAocmVxKQogCQkJYXJncy0+YnVzeSB8PSByZXEtPmVuZ2luZS0+ZXhlY19pZDsKIAl9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2UuYwppbmRleCAzMDEzNDQyNTJiMTguLjZjMzlkYThk ZDZlYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2UuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZS5jCkBAIC0yNjMsNyArMjYz LDggQEAgaTkxNV9nZW1fb2JqZWN0X3dhaXRfZmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaikKIHsKIAlpbnQgcmV0OwogCi0JcmV0ID0gaTkxNV9nZW1fYWN0aXZlX3dhaXQoJm9i ai0+bGFzdF9mZW5jZSk7CisJcmV0ID0gaTkxNV9nZW1fYWN0aXZlX3dhaXQoJm9iai0+bGFzdF9m ZW5jZSwKKwkJCQkgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsKIAlpZiAocmV0KQog CQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9yZXF1ZXN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmgKaW5k ZXggNTZlMzEyYjk1NDA3Li5kNmI4ZTgwMWJiOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9yZXF1ZXN0LmgKQEAgLTI5MCw2ICsyOTAsMTIgQEAgaTkxNV9nZW1fYWN0aXZlX3NldChz dHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUsCiAJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24o JmFjdGl2ZS0+X19yZXF1ZXN0LCByZXF1ZXN0KTsKIH0KIAorc3RhdGljIGlubGluZSBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgorX19pOTE1X2dlbV9hY3RpdmVfcGVlayhjb25zdCBzdHJ1 Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUpCit7CisJcmV0dXJuIGFjdGl2ZS0+X19yZXF1ZXN0 OworfQorCiAvKioKICAqIGk5MTVfZ2VtX2FjdGl2ZV9wZWVrIC0gcmVwb3J0IHRoZSByZXF1ZXN0 IGJlaW5nIG1vbml0b3JlZAogICogQGFjdGl2ZSAtIHRoZSBhY3RpdmUgdHJhY2tlcgpAQCAtMjk5 LDcgKzMwNSw3IEBAIGk5MTVfZ2VtX2FjdGl2ZV9zZXQoc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAq YWN0aXZlLAogICogY2FsbGVyIG11c3QgaG9sZCBzdHJ1Y3RfbXV0ZXguCiAgKi8KIHN0YXRpYyBp bmxpbmUgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoKLWk5MTVfZ2VtX2FjdGl2ZV9wZWVr KGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSkKK2k5MTVfZ2VtX2FjdGl2ZV9w ZWVrKGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSwgc3RydWN0IG11dGV4ICpt dXRleCkKIHsKIAlyZXR1cm4gYWN0aXZlLT5fX3JlcXVlc3Q7CiB9CkBAIC0zMTIsMTEgKzMxOCwx MSBAQCBpOTE1X2dlbV9hY3RpdmVfcGVlayhjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICph Y3RpdmUpCiAgKiBpZiB0aGUgYWN0aXZlIHRyYWNrZXIgaXMgaWRsZS4gVGhlIGNhbGxlciBtdXN0 IGhvbGQgc3RydWN0X211dGV4LgogICovCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqCi1pOTE1X2dlbV9hY3RpdmVfZ2V0KGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9h Y3RpdmUgKmFjdGl2ZSkKK2k5MTVfZ2VtX2FjdGl2ZV9nZXQoY29uc3Qgc3RydWN0IGk5MTVfZ2Vt X2FjdGl2ZSAqYWN0aXZlLCBzdHJ1Y3QgbXV0ZXggKm11dGV4KQogewogCXN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsKIAotCXJlcXVlc3QgPSBpOTE1X2dlbV9hY3RpdmVfcGVl ayhhY3RpdmUpOworCXJlcXVlc3QgPSBpOTE1X2dlbV9hY3RpdmVfcGVlayhhY3RpdmUsIG11dGV4 KTsKIAlpZiAoIXJlcXVlc3QgfHwgaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQocmVxdWVzdCkp CiAJCXJldHVybiBOVUxMOwogCkBAIC0zMzQsNyArMzQwLDcgQEAgaTkxNV9nZW1fYWN0aXZlX2dl dChjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUpCiBzdGF0aWMgaW5saW5lIGJv b2wKIF9faTkxNV9nZW1fYWN0aXZlX2lzX2J1c3koY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2FjdGl2 ZSAqYWN0aXZlKQogewotCXJldHVybiBpOTE1X2dlbV9hY3RpdmVfcGVlayhhY3RpdmUpOworCXJl dHVybiBfX2k5MTVfZ2VtX2FjdGl2ZV9wZWVrKGFjdGl2ZSk7CiB9CiAKIC8qKgpAQCAtMzQ2LDEx ICszNTIsMTIgQEAgX19pOTE1X2dlbV9hY3RpdmVfaXNfYnVzeShjb25zdCBzdHJ1Y3QgaTkxNV9n ZW1fYWN0aXZlICphY3RpdmUpCiAgKiB0aGUgY2FsbGVyIHRvIGhvbGQgc3RydWN0X211dGV4IChi dXQgdGhhdCBjYW4gYmUgcmVsYXhlZCBpZiBkZXNpcmVkKS4KICAqLwogc3RhdGljIGlubGluZSBi b29sCi1pOTE1X2dlbV9hY3RpdmVfaXNfaWRsZShjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZl ICphY3RpdmUpCitpOTE1X2dlbV9hY3RpdmVfaXNfaWRsZShjb25zdCBzdHJ1Y3QgaTkxNV9nZW1f YWN0aXZlICphY3RpdmUsCisJCQlzdHJ1Y3QgbXV0ZXggKm11dGV4KQogewogCXN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsKIAotCXJlcXVlc3QgPSBpOTE1X2dlbV9hY3RpdmVf cGVlayhhY3RpdmUpOworCXJlcXVlc3QgPSBpOTE1X2dlbV9hY3RpdmVfcGVlayhhY3RpdmUsIG11 dGV4KTsKIAlpZiAoIXJlcXVlc3QgfHwgaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQocmVxdWVz dCkpCiAJCXJldHVybiB0cnVlOwogCkBAIC0zNjUsMTEgKzM3MiwxMSBAQCBpOTE1X2dlbV9hY3Rp dmVfaXNfaWRsZShjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUpCiAgKiByZXR1 cm5pbmcuCiAgKi8KIHN0YXRpYyBpbmxpbmUgaW50IF9fbXVzdF9jaGVjawotaTkxNV9nZW1fYWN0 aXZlX3dhaXQoY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlKQoraTkxNV9nZW1f YWN0aXZlX3dhaXQoY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlLCBzdHJ1Y3Qg bXV0ZXggKm11dGV4KQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsK IAotCXJlcXVlc3QgPSBpOTE1X2dlbV9hY3RpdmVfcGVlayhhY3RpdmUpOworCXJlcXVlc3QgPSBp OTE1X2dlbV9hY3RpdmVfcGVlayhhY3RpdmUsIG11dGV4KTsKIAlpZiAoIXJlcXVlc3QpCiAJCXJl dHVybiAwOwogCkBAIC0zODQsOSArMzkxLDEwIEBAIGk5MTVfZ2VtX2FjdGl2ZV93YWl0KGNvbnN0 IHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSkKICAqIG1ha2Ugc3VyZSB0aGUgcmVxdWVz dCBpcyByZXRpcmVkIGJlZm9yZSByZXR1cm5pbmcuCiAgKi8KIHN0YXRpYyBpbmxpbmUgaW50IF9f bXVzdF9jaGVjawotaTkxNV9nZW1fYWN0aXZlX3JldGlyZShjb25zdCBzdHJ1Y3QgaTkxNV9nZW1f YWN0aXZlICphY3RpdmUpCitpOTE1X2dlbV9hY3RpdmVfcmV0aXJlKGNvbnN0IHN0cnVjdCBpOTE1 X2dlbV9hY3RpdmUgKmFjdGl2ZSwKKwkJICAgICAgIHN0cnVjdCBtdXRleCAqbXV0ZXgpCiB7Ci0J cmV0dXJuIGk5MTVfZ2VtX2FjdGl2ZV93YWl0KGFjdGl2ZSk7CisJcmV0dXJuIGk5MTVfZ2VtX2Fj dGl2ZV93YWl0KGFjdGl2ZSwgbXV0ZXgpOwogfQogCiAvKiBDb252ZW5pZW5jZSBmdW5jdGlvbnMg Zm9yIHBlZWtpbmcgYXQgc3RhdGUgaW5zaWRlIGFjdGl2ZSdzIHJlcXVlc3Qgd2hpbHN0CkBAIC0z OTQsMTUgKzQwMiwxNyBAQCBpOTE1X2dlbV9hY3RpdmVfcmV0aXJlKGNvbnN0IHN0cnVjdCBpOTE1 X2dlbV9hY3RpdmUgKmFjdGl2ZSkKICAqLwogCiBzdGF0aWMgaW5saW5lIHVpbnQzMl90Ci1pOTE1 X2dlbV9hY3RpdmVfZ2V0X3NlcW5vKGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2 ZSkKK2k5MTVfZ2VtX2FjdGl2ZV9nZXRfc2Vxbm8oY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2FjdGl2 ZSAqYWN0aXZlLAorCQkJICBzdHJ1Y3QgbXV0ZXggKm11dGV4KQogewotCXJldHVybiBpOTE1X2dl bV9yZXF1ZXN0X2dldF9zZXFubyhpOTE1X2dlbV9hY3RpdmVfcGVlayhhY3RpdmUpKTsKKwlyZXR1 cm4gaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8oaTkxNV9nZW1fYWN0aXZlX3BlZWsoYWN0aXZl LCBtdXRleCkpOwogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKgot aTkxNV9nZW1fYWN0aXZlX2dldF9lbmdpbmUoY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAq YWN0aXZlKQoraTkxNV9nZW1fYWN0aXZlX2dldF9lbmdpbmUoY29uc3Qgc3RydWN0IGk5MTVfZ2Vt X2FjdGl2ZSAqYWN0aXZlLAorCQkJICAgc3RydWN0IG11dGV4ICptdXRleCkKIHsKLQlyZXR1cm4g aTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5naW5lKGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKGFjdGl2ZSkp OworCXJldHVybiBpOTE1X2dlbV9yZXF1ZXN0X2dldF9lbmdpbmUoaTkxNV9nZW1fYWN0aXZlX3Bl ZWsoYWN0aXZlLCBtdXRleCkpOwogfQogCiAjZGVmaW5lIGZvcl9lYWNoX2FjdGl2ZShtYXNrLCBp ZHgpIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbGluZy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMKaW5kZXggOWJjODI0NDIx YjY2Li4zMjZkZTdlYWUxMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3RpbGluZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbGluZy5j CkBAIC0yNDIsNyArMjQyLDggQEAgaTkxNV9nZW1fc2V0X3RpbGluZyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJfQogCiAJCQlvYmotPmZlbmNlX2RpcnR5ID0KLQkJCQkh aTkxNV9nZW1fYWN0aXZlX2lzX2lkbGUoJm9iai0+bGFzdF9mZW5jZSkgfHwKKwkJCQkhaTkxNV9n ZW1fYWN0aXZlX2lzX2lkbGUoJm9iai0+bGFzdF9mZW5jZSwKKwkJCQkJCQkgJmRldi0+c3RydWN0 X211dGV4KSB8fAogCQkJCW9iai0+ZmVuY2VfcmVnICE9IEk5MTVfRkVOQ0VfUkVHX05PTkU7CiAK IAkJCW9iai0+dGlsaW5nX21vZGUgPSBhcmdzLT50aWxpbmdfbW9kZTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJwdHIuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3VzZXJwdHIuYwppbmRleCBkNjg4NTU4NjA2ZjkuLmRkNmQ4MjNhYzNlMiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJwdHIuYwpAQCAtNzQsNyArNzQsOCBA QCBzdGF0aWMgdm9pZCB3YWl0X3JlbmRlcmluZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQogCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBpKyspIHsKIAkJc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKLQkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX2dl dCgmb2JqLT5sYXN0X3JlYWRbaV0pOworCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfZ2V0KCZvYmot Pmxhc3RfcmVhZFtpXSwKKwkJCQkJICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsKIAkJ aWYgKHJlcSkKIAkJCXJlcXVlc3RzW24rK10gPSByZXE7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3B1X2Vycm9yLmMKaW5kZXggMWFiY2YzMTZhODI1Li4xYmNkZGE5NjgwZDQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwpAQCAtNzQwLDE4ICs3NDAsMzggQEAgdW53aW5k OgogI2RlZmluZSBpOTE1X2Vycm9yX2dndHRfb2JqZWN0X2NyZWF0ZShkZXZfcHJpdiwgc3JjKSBc CiAJaTkxNV9lcnJvcl9vYmplY3RfY3JlYXRlKChkZXZfcHJpdiksIChzcmMpLCAmKGRldl9wcml2 KS0+Z2d0dC5iYXNlKQogCisvKiBUaGUgZXJyb3IgY2FwdHVyZSBpcyBzcGVjaWFsIGFzIHRyaWVz IHRvIHJ1biB1bmRlcm5lYXRoIHRoZSBub3JtYWwKKyAqIGxvY2tpbmcgcnVsZXMgLSBzbyB3ZSB1 c2UgdGhlIHJhdyB2ZXJzaW9uIG9mIHRoZSBpOTE1X2dlbV9hY3RpdmUgbG9va3VwLgorICovCitz dGF0aWMgaW5saW5lIHVpbnQzMl90CitfX2FjdGl2ZV9nZXRfc2Vxbm8oc3RydWN0IGk5MTVfZ2Vt X2FjdGl2ZSAqYWN0aXZlKQoreworCXJldHVybiBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhf X2k5MTVfZ2VtX2FjdGl2ZV9wZWVrKGFjdGl2ZSkpOworfQorCitzdGF0aWMgaW5saW5lIGludAor X19hY3RpdmVfZ2V0X2VuZ2luZV9pZChzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUpCit7 CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCisJZW5naW5lID0gaTkxNV9nZW1f cmVxdWVzdF9nZXRfZW5naW5lKF9faTkxNV9nZW1fYWN0aXZlX3BlZWsoYWN0aXZlKSk7CisJcmV0 dXJuIGVuZ2luZSA/IGVuZ2luZS0+aWQgOiAtMTsKK30KKwogc3RhdGljIHZvaWQgY2FwdHVyZV9i byhzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfYnVmZmVyICplcnIsCiAJCSAgICAgICBzdHJ1Y3QgaTkx NV92bWEgKnZtYSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdm1hLT5v Ymo7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWludCBpOwogCiAJZXJyLT5z aXplID0gb2JqLT5iYXNlLnNpemU7CiAJZXJyLT5uYW1lID0gb2JqLT5iYXNlLm5hbWU7CisKIAlm b3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5FUzsgaSsrKQotCQllcnItPnJzZXFub1tpXSA9 IGk5MTVfZ2VtX2FjdGl2ZV9nZXRfc2Vxbm8oJm9iai0+bGFzdF9yZWFkW2ldKTsKLQllcnItPndz ZXFubyA9IGk5MTVfZ2VtX2FjdGl2ZV9nZXRfc2Vxbm8oJm9iai0+bGFzdF93cml0ZSk7CisJCWVy ci0+cnNlcW5vW2ldID0gX19hY3RpdmVfZ2V0X3NlcW5vKCZvYmotPmxhc3RfcmVhZFtpXSk7CisJ ZXJyLT53c2Vxbm8gPSBfX2FjdGl2ZV9nZXRfc2Vxbm8oJm9iai0+bGFzdF93cml0ZSk7CisJZXJy LT5yaW5nID0gX19hY3RpdmVfZ2V0X2VuZ2luZV9pZCgmb2JqLT5sYXN0X3dyaXRlKTsKKwogCWVy ci0+Z3R0X29mZnNldCA9IHZtYS0+bm9kZS5zdGFydDsKIAllcnItPnJlYWRfZG9tYWlucyA9IG9i ai0+YmFzZS5yZWFkX2RvbWFpbnM7CiAJZXJyLT53cml0ZV9kb21haW4gPSBvYmotPmJhc2Uud3Jp dGVfZG9tYWluOwpAQCAtNzY0LDkgKzc4NCw2IEBAIHN0YXRpYyB2b2lkIGNhcHR1cmVfYm8oc3Ry dWN0IGRybV9pOTE1X2Vycm9yX2J1ZmZlciAqZXJyLAogCWVyci0+cHVyZ2VhYmxlID0gb2JqLT5t YWR2ICE9IEk5MTVfTUFEVl9XSUxMTkVFRDsKIAllcnItPnVzZXJwdHIgPSBvYmotPnVzZXJwdHIu bW0gIT0gTlVMTDsKIAllcnItPmNhY2hlX2xldmVsID0gb2JqLT5jYWNoZV9sZXZlbDsKLQotCWVu Z2luZSA9IGk5MTVfZ2VtX2FjdGl2ZV9nZXRfZW5naW5lKCZvYmotPmxhc3Rfd3JpdGUpOwotCWVy ci0+cmluZyA9IGVuZ2luZSA/IGVuZ2luZS0+aWQgOiAtMTsKIH0KIAogc3RhdGljIHUzMiBjYXB0 dXJlX2FjdGl2ZV9ibyhzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfYnVmZmVyICplcnIsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggODM5YzQ2YTAwN2I1Li44MjUzM2YxZGE1NGMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTExNDI3LDcgKzExNDI3LDgg QEAgc3RhdGljIGJvb2wgdXNlX21taW9fZmxpcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsCiAJCQkJCQkgICAgICAgZmFsc2UpKQogCQlyZXR1cm4gdHJ1ZTsKIAllbHNlCi0JCXJldHVy biBlbmdpbmUgIT0gaTkxNV9nZW1fYWN0aXZlX2dldF9lbmdpbmUoJm9iai0+bGFzdF93cml0ZSk7 CisJCXJldHVybiBlbmdpbmUgIT0gaTkxNV9nZW1fYWN0aXZlX2dldF9lbmdpbmUoJm9iai0+bGFz dF93cml0ZSwKKwkJCQkJCQkgICAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CiB9CiAK IHN0YXRpYyB2b2lkIHNrbF9kb19tbWlvX2ZsaXAoc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMsCkBAIC0xMTcyNyw3ICsxMTcyOCw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2Zs aXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCX0gZWxzZSBpZiAoSVNfSVZZQlJJREdFKGRldikg fHwgSVNfSEFTV0VMTChkZXYpKSB7CiAJCWVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW0JDU107 CiAJfSBlbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA3KSB7Ci0JCWVuZ2luZSA9IGk5 MTVfZ2VtX2FjdGl2ZV9nZXRfZW5naW5lKCZvYmotPmxhc3Rfd3JpdGUpOworCQllbmdpbmUgPSBp OTE1X2dlbV9hY3RpdmVfZ2V0X2VuZ2luZSgmb2JqLT5sYXN0X3dyaXRlLAorCQkJCQkJICAgICZv YmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCQlpZiAoZW5naW5lID09IE5VTEwgfHwgZW5n aW5lLT5pZCAhPSBSQ1MpCiAJCQllbmdpbmUgPSAmZGV2X3ByaXYtPmVuZ2luZVtCQ1NdOwogCX0g ZWxzZSB7CkBAIC0xMTc0OCw3ICsxMTc1MCw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdl X2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWlmIChtbWlvX2ZsaXApIHsKIAkJSU5JVF9X T1JLKCZ3b3JrLT5tbWlvX3dvcmssIGludGVsX21taW9fZmxpcF93b3JrX2Z1bmMpOwogCi0JCXdv cmstPmZsaXBfcXVldWVkX3JlcSA9IGk5MTVfZ2VtX2FjdGl2ZV9nZXQoJm9iai0+bGFzdF93cml0 ZSk7CisJCXdvcmstPmZsaXBfcXVldWVkX3JlcSA9IGk5MTVfZ2VtX2FjdGl2ZV9nZXQoJm9iai0+ bGFzdF93cml0ZSwKKwkJCQkJCQkgICAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CiAJ CXNjaGVkdWxlX3dvcmsoJndvcmstPm1taW9fd29yayk7CiAJfSBlbHNlIHsKIAkJcmVxdWVzdCA9 IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MoZW5naW5lLCBlbmdpbmUtPmxhc3RfY29udGV4dCk7CkBA IC0xMzk3MCw3ICsxMzk3Myw4IEBAIGludGVsX3ByZXBhcmVfcGxhbmVfZmIoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCiAJCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUobmV3X3N0YXRlKTsKIAogCQkJ cGxhbmVfc3RhdGUtPndhaXRfcmVxID0KLQkJCQlpOTE1X2dlbV9hY3RpdmVfZ2V0KCZvYmotPmxh c3Rfd3JpdGUpOworCQkJCWk5MTVfZ2VtX2FjdGl2ZV9nZXQoJm9iai0+bGFzdF93cml0ZSwKKwkJ CQkJCSAgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsKIAkJfQogCiAJCWk5MTVfZ2Vt X3RyYWNrX2ZiKG9sZF9vYmosIG9iaiwgaW50ZWxfcGxhbmUtPmZyb250YnVmZmVyX2JpdCk7Ci0t IAoyLjguMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==