From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 51/64] drm/i915: Mark up i915_gem_active for locking annotation Date: Thu, 7 Jul 2016 09:41:57 +0100 Message-ID: <1467880930-23082-51-git-send-email-chris@chris-wilson.co.uk> References: <1467880930-23082-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-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 376546E760 for ; Thu, 7 Jul 2016 08:43:25 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id n127so1268196wme.0 for ; Thu, 07 Jul 2016 01:43:25 -0700 (PDT) In-Reply-To: <1467880930-23082-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 bV9kbWFidWYuYyAgfCAgNiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5j ZS5jICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oIHwg MzggKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fdGlsaW5nLmMgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJw dHIuYyB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgfCAy OSArKysrKysrKysrKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgICAgfCAxMiArKysrKy0tLQogOSBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwg NDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCBhZTFj NjQwZmMxYzguLmIyNjBkMjQxZjk1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK QEAgLTE1NSwxMCArMTU1LDEzIEBAIGRlc2NyaWJlX29iaihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCSAgIG9iai0+YmFzZS53cml0ZV9kb21h aW4pOwogCWZvcl9lYWNoX2VuZ2luZV9pZChlbmdpbmUsIGRldl9wcml2LCBpZCkKIAkJc2VxX3By aW50ZihtLCAiJXggIiwKLQkJCSAgIGk5MTVfZ2VtX2FjdGl2ZV9nZXRfc2Vxbm8oJm9iai0+bGFz dF9yZWFkW2lkXSkpOworCQkJICAgaTkxNV9nZW1fYWN0aXZlX2dldF9zZXFubygmb2JqLT5sYXN0 X3JlYWRbaWRdLAorCQkJCQkJICAgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KSk7CiAJ c2VxX3ByaW50ZihtLCAiXSAleCAleCVzJXMlcyIsCi0JCSAgIGk5MTVfZ2VtX2FjdGl2ZV9nZXRf c2Vxbm8oJm9iai0+bGFzdF93cml0ZSksCi0JCSAgIGk5MTVfZ2VtX2FjdGl2ZV9nZXRfc2Vxbm8o Jm9iai0+bGFzdF9mZW5jZSksCisJCSAgIGk5MTVfZ2VtX2FjdGl2ZV9nZXRfc2Vxbm8oJm9iai0+ bGFzdF93cml0ZSwKKwkJCQkJICAgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KSwKKwkJ ICAgaTkxNV9nZW1fYWN0aXZlX2dldF9zZXFubygmb2JqLT5sYXN0X2ZlbmNlLAorCQkJCQkgICAg ICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpLAogCQkgICBpOTE1X2NhY2hlX2xldmVsX3N0 cih0b19pOTE1KG9iai0+YmFzZS5kZXYpLCBvYmotPmNhY2hlX2xldmVsKSwKIAkJICAgb2JqLT5k aXJ0eSA/ICIgZGlydHkiIDogIiIsCiAJCSAgIG9iai0+bWFkdiA9PSBJOTE1X01BRFZfRE9OVE5F RUQgPyAiIHB1cmdlYWJsZSIgOiAiIik7CkBAIC0xOTYsNyArMTk5LDggQEAgZGVzY3JpYmVfb2Jq KHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAkJ c2VxX3ByaW50ZihtLCAiICglcyBtYXBwYWJsZSkiLCBzKTsKIAl9CiAKLQllbmdpbmUgPSBpOTE1 X2dlbV9hY3RpdmVfZ2V0X2VuZ2luZSgmb2JqLT5sYXN0X3dyaXRlKTsKKwllbmdpbmUgPSBpOTE1 X2dlbV9hY3RpdmVfZ2V0X2VuZ2luZSgmb2JqLT5sYXN0X3dyaXRlLAorCQkJCQkgICAgJm9iai0+ YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CiAJaWYgKGVuZ2luZSkKIAkJc2VxX3ByaW50ZihtLCAi ICglcykiLCBlbmdpbmUtPm5hbWUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA5YzM3 MWU4NGIxYmIuLjU0YWNhMDg0YjgwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0xMzU0 LDIxICsxMzU0LDI0IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3JlbmRlcmluZyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCWludCByZXQsIGk7CiAKIAlpZiAocmVhZG9ubHkpIHsK LQkJcmVxdWVzdCA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxhc3Rfd3JpdGUpOworCQly ZXF1ZXN0ID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF93cml0ZSwKKwkJCQkJICAg ICAgICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCQlpZiAocmVxdWVzdCkgewogCQkJ cmV0ID0gaTkxNV93YWl0X3JlcXVlc3QocmVxdWVzdCk7CiAJCQlpZiAocmV0KQogCQkJCXJldHVy biByZXQ7CiAKIAkJCWkgPSByZXF1ZXN0LT5lbmdpbmUtPmlkOwotCQkJaWYgKGk5MTVfZ2VtX2Fj dGl2ZV9wZWVrKCZvYmotPmxhc3RfcmVhZFtpXSkgPT0gcmVxdWVzdCkKKwkJCWlmIChpOTE1X2dl bV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3JlYWRbaV0sCisJCQkJCQkgJm9iai0+YmFzZS5kZXYt PnN0cnVjdF9tdXRleCkgPT0gcmVxdWVzdCkKIAkJCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX19y ZWFkKG9iaiwgaSk7CiAJCQllbHNlCiAJCQkJaTkxNV9nZW1fb2JqZWN0X3JldGlyZV9fd3JpdGUo b2JqKTsKIAkJfQogCX0gZWxzZSB7CiAJCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVT OyBpKyspIHsKLQkJCXJlcXVlc3QgPSBpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3Jl YWRbaV0pOworCQkJcmVxdWVzdCA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxhc3RfcmVh ZFtpXSwKKwkJCQkJCSAgICAgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsKIAkJCWlm ICghcmVxdWVzdCkKIAkJCQljb250aW51ZTsKIApAQCAtMTQwMCw5ICsxNDAzLDExIEBAIGk5MTVf Z2VtX29iamVjdF9yZXRpcmVfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAogewogCWludCByaW5nID0gcmVxLT5lbmdpbmUtPmlkOwogCi0JaWYgKGk5MTVfZ2VtX2FjdGl2 ZV9wZWVrKCZvYmotPmxhc3RfcmVhZFtyaW5nXSkgPT0gcmVxKQorCWlmIChpOTE1X2dlbV9hY3Rp dmVfcGVlaygmb2JqLT5sYXN0X3JlYWRbcmluZ10sCisJCQkJICZvYmotPmJhc2UuZGV2LT5zdHJ1 Y3RfbXV0ZXgpID09IHJlcSkKIAkJaTkxNV9nZW1fb2JqZWN0X3JldGlyZV9fcmVhZChvYmosIHJp bmcpOwotCWVsc2UgaWYgKGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxhc3Rfd3JpdGUpID09 IHJlcSkKKwllbHNlIGlmIChpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3dyaXRlLAor CQkJCSAgICAgICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpID09IHJlcSkKIAkJaTkxNV9n ZW1fb2JqZWN0X3JldGlyZV9fd3JpdGUob2JqKTsKIAogCWlmICghaTkxNV9yZXNldF9pbl9wcm9n cmVzcygmcmVxLT5pOTE1LT5ncHVfZXJyb3IpKQpAQCAtMTQzMSw3ICsxNDM2LDggQEAgaTkxNV9n ZW1fb2JqZWN0X3dhaXRfcmVuZGVyaW5nX19ub25ibG9ja2luZyhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAogCWlmIChyZWFkb25seSkgewogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcTsKIAotCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3dy aXRlKTsKKwkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF93cml0ZSwKKwkJ CQkJICAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CiAJCWlmIChyZXEgPT0gTlVMTCkK IAkJCXJldHVybiAwOwogCkBAIC0xNDQwLDcgKzE0NDYsOCBAQCBpOTE1X2dlbV9vYmplY3Rfd2Fp dF9yZW5kZXJpbmdfX25vbmJsb2NraW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos CiAJCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBpKyspIHsKIAkJCXN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCi0JCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfcGVl aygmb2JqLT5sYXN0X3JlYWRbaV0pOworCQkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9i ai0+bGFzdF9yZWFkW2ldLAorCQkJCQkJICAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7 CiAJCQlpZiAocmVxID09IE5VTEwpCiAJCQkJY29udGludWU7CiAKQEAgLTIzODcsNyArMjM5NCw5 IEBAIHN0YXRpYyB2b2lkCiBpOTE1X2dlbV9vYmplY3RfcmV0aXJlX193cml0ZShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCUdFTV9CVUdfT04oIV9faTkxNV9nZW1fYWN0aXZl X2lzX2J1c3koJm9iai0+bGFzdF93cml0ZSkpOwotCUdFTV9CVUdfT04oIShvYmotPmFjdGl2ZSAm IGludGVsX2VuZ2luZV9mbGFnKGk5MTVfZ2VtX2FjdGl2ZV9nZXRfZW5naW5lKCZvYmotPmxhc3Rf d3JpdGUpKSkpOworCUdFTV9CVUdfT04oIShvYmotPmFjdGl2ZSAmCisJCSAgICAgaW50ZWxfZW5n aW5lX2ZsYWcoaTkxNV9nZW1fYWN0aXZlX2dldF9lbmdpbmUoJm9iai0+bGFzdF93cml0ZSwKKwkJ CQkJCQkJICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KSkpKTsKIAogCWk5MTVfZ2VtX2Fj dGl2ZV9zZXQoJm9iai0+bGFzdF93cml0ZSwgTlVMTCk7CiAJaW50ZWxfZmJfb2JqX2ZsdXNoKG9i aiwgdHJ1ZSwgT1JJR0lOX0NTKTsKQEAgLTI0MDUsNyArMjQxNCw4IEBAIGk5MTVfZ2VtX29iamVj dF9yZXRpcmVfX3JlYWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgaW50IHJpbmcp CiAJbGlzdF9kZWxfaW5pdCgmb2JqLT5lbmdpbmVfbGlzdFtyaW5nXSk7CiAJaTkxNV9nZW1fYWN0 aXZlX3NldCgmb2JqLT5sYXN0X3JlYWRbcmluZ10sIE5VTEwpOwogCi0JZW5naW5lID0gaTkxNV9n ZW1fYWN0aXZlX2dldF9lbmdpbmUoJm9iai0+bGFzdF93cml0ZSk7CisJZW5naW5lID0gaTkxNV9n ZW1fYWN0aXZlX2dldF9lbmdpbmUoJm9iai0+bGFzdF93cml0ZSwKKwkJCQkJICAgICZvYmotPmJh c2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCWlmIChlbmdpbmUgJiYgZW5naW5lLT5pZCA9PSByaW5n KQogCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX193cml0ZShvYmopOwogCkBAIC0yNjIzLDcgKzI2 MzMsOCBAQCBpOTE1X2dlbV9yZXRpcmVfcmVxdWVzdHNfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiAJCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0LAogCQkJ CSAgICAgICBlbmdpbmVfbGlzdFtlbmdpbmUtPmlkXSk7CiAKLQkJaWYgKCFsaXN0X2VtcHR5KCZp OTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3JlYWRbZW5naW5lLT5pZF0pLT5saXN0KSkK KwkJaWYgKCFsaXN0X2VtcHR5KCZpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3JlYWRb ZW5naW5lLT5pZF0sCisJCQkJCQkgICAgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KS0+ bGlzdCkpCiAJCQlicmVhazsKIAogCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX19yZWFkKG9iaiwg ZW5naW5lLT5pZCk7CkBAIC0yNzUxLDcgKzI3NjIsOCBAQCBpOTE1X2dlbV9vYmplY3RfZmx1c2hf YWN0aXZlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJZm9yIChpID0gMDsgaSA8 IEk5MTVfTlVNX0VOR0lORVM7IGkrKykgewogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcTsKIAotCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3JlYWRbaV0p OworCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3JlYWRbaV0sCisJCQkJ CSAgICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCQlpZiAocmVxID09IE5VTEwpCiAJ CQljb250aW51ZTsKIApAQCAtMjgyOSw3ICsyODQxLDggQEAgaTkxNV9nZW1fd2FpdF9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUp CiAJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkrKykgewogCQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKIAotCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfZ2V0KCZv YmotPmxhc3RfcmVhZFtpXSk7CisJCXJlcSA9IGk5MTVfZ2VtX2FjdGl2ZV9nZXQoJm9iai0+bGFz dF9yZWFkW2ldLAorCQkJCQkgICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCQlpZiAo cmVxKQogCQkJcmVxdWVzdHNbbisrXSA9IHJlcTsKIAl9CkBAIC0yOTI0LDE0ICsyOTM3LDE2IEBA IGk5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJ aWYgKHJlYWRvbmx5KSB7CiAJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCi0J CXJlcSA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxhc3Rfd3JpdGUpOworCQlyZXEgPSBp OTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3dyaXRlLAorCQkJCQkgICAmb2JqLT5iYXNl LmRldi0+c3RydWN0X211dGV4KTsKIAkJaWYgKHJlcSkKIAkJCXJlcXVlc3RzW24rK10gPSByZXE7 CiAJfSBlbHNlIHsKIAkJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkrKykgewog CQkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKLQkJCXJlcSA9IGk5MTVfZ2Vt X2FjdGl2ZV9wZWVrKCZvYmotPmxhc3RfcmVhZFtpXSk7CisJCQlyZXEgPSBpOTE1X2dlbV9hY3Rp dmVfcGVlaygmb2JqLT5sYXN0X3JlYWRbaV0sCisJCQkJCQkgICAmb2JqLT5iYXNlLmRldi0+c3Ry dWN0X211dGV4KTsKIAkJCWlmIChyZXEpCiAJCQkJcmVxdWVzdHNbbisrXSA9IHJlcTsKIAkJfQpA QCAtNDAzNCwxMSArNDA0OSwxMyBAQCBpOTE1X2dlbV9idXN5X2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWludCBpOwogCiAJCWZvciAoaSA9IDA7IGkgPCBJOTE1 X05VTV9FTkdJTkVTOyBpKyspIHsKLQkJCXJlcSA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmot Pmxhc3RfcmVhZFtpXSk7CisJCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0 X3JlYWRbaV0sCisJCQkJCQkgICAmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsKIAkJCWlm IChyZXEpCiAJCQkJYXJncy0+YnVzeSB8PSAxIDw8ICgxNiArIHJlcS0+ZW5naW5lLT5leGVjX2lk KTsKIAkJfQotCQlyZXEgPSBpOTE1X2dlbV9hY3RpdmVfcGVlaygmb2JqLT5sYXN0X3dyaXRlKTsK KwkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF93cml0ZSwKKwkJCQkJICAg Jm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CiAJCWlmIChyZXEpCiAJCQlhcmdzLT5idXN5 IHw9IHJlcS0+ZW5naW5lLT5leGVjX2lkOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZG1hYnVmLmMKaW5kZXggMzgwMDBjNTlkNDU2Li5iMmI2MzgzMzVkOGUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jCkBAIC0yMzUsNyArMjM1LDggQEAgc3RhdGljIHZvaWQg ZXhwb3J0X2ZlbmNlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCiAJYWN0aXZl ID0gb2JqLT5hY3RpdmU7CiAJZm9yX2VhY2hfYWN0aXZlKGFjdGl2ZSwgaWR4KSB7Ci0JCXJlcSA9 IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxhc3RfcmVhZFtpZHhdKTsKKwkJcmVxID0gaTkx NV9nZW1fYWN0aXZlX3BlZWsoJm9iai0+bGFzdF9yZWFkW2lkeF0sCisJCQkJCSAgICZvYmotPmJh c2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCQlpZiAoIXJlcSkKIAkJCWNvbnRpbnVlOwogCkBAIC0y NDMsNyArMjQ0LDggQEAgc3RhdGljIHZvaWQgZXhwb3J0X2ZlbmNlcyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqLAogCQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2Uo cmVzdiwgJnJlcS0+ZmVuY2UpOwogCX0KIAotCXJlcSA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZv YmotPmxhc3Rfd3JpdGUpOworCXJlcSA9IGk5MTVfZ2VtX2FjdGl2ZV9wZWVrKCZvYmotPmxhc3Rf d3JpdGUsCisJCQkJICAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CiAJaWYgKHJlcSkK IAkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHJlc3YsICZyZXEtPmZlbmNlKTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2UuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlLmMKaW5kZXggOWZkYmQ2NjEyOGE2Li5h NGVjNGZlY2JlYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Zl bmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2UuYwpAQCAtMjYz LDcgKzI2Myw4IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X2ZlbmNlKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopCiB7CiAJaW50IHJldDsKIAotCXJldCA9IGk5MTVfZ2VtX2FjdGl2ZV93 YWl0KCZvYmotPmxhc3RfZmVuY2UpOworCXJldCA9IGk5MTVfZ2VtX2FjdGl2ZV93YWl0KCZvYmot Pmxhc3RfZmVuY2UsCisJCQkJICAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRleCk7CiAJaWYg KHJldCkKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fcmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVz dC5oCmluZGV4IDQ2ZDliMDBhMjhkNy4uMzRlNjVlMDdjYWQ1IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fcmVxdWVzdC5oCkBAIC0yOTQsNiArMjk0LDEyIEBAIGk5MTVfZ2VtX2FjdGl2 ZV9zZXQoc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlLAogCWk5MTVfZ2VtX3JlcXVlc3Rf YXNzaWduKCZhY3RpdmUtPl9fcmVxdWVzdCwgcmVxdWVzdCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUg c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoKK19faTkxNV9nZW1fYWN0aXZlX3BlZWsoY29u c3Qgc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlKQoreworCXJldHVybiBhY3RpdmUtPl9f cmVxdWVzdDsKK30KKwogLyoqCiAgKiBpOTE1X2dlbV9hY3RpdmVfcGVlayAtIHJlcG9ydCB0aGUg cmVxdWVzdCBiZWluZyBtb25pdG9yZWQKICAqIEBhY3RpdmUgLSB0aGUgYWN0aXZlIHRyYWNrZXIK QEAgLTMwMyw3ICszMDksNyBAQCBpOTE1X2dlbV9hY3RpdmVfc2V0KHN0cnVjdCBpOTE1X2dlbV9h Y3RpdmUgKmFjdGl2ZSwKICAqIGNhbGxlciBtdXN0IGhvbGQgc3RydWN0X211dGV4LgogICovCiBz dGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqCi1pOTE1X2dlbV9hY3Rp dmVfcGVlayhjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUpCitpOTE1X2dlbV9h Y3RpdmVfcGVlayhjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUsIHN0cnVjdCBt dXRleCAqbXV0ZXgpCiB7CiAJcmV0dXJuIGFjdGl2ZS0+X19yZXF1ZXN0OwogfQpAQCAtMzE2LDEx ICszMjIsMTEgQEAgaTkxNV9nZW1fYWN0aXZlX3BlZWsoY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2Fj dGl2ZSAqYWN0aXZlKQogICogaWYgdGhlIGFjdGl2ZSB0cmFja2VyIGlzIGlkbGUuIFRoZSBjYWxs ZXIgbXVzdCBob2xkIHN0cnVjdF9tdXRleC4KICAqLwogc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKgotaTkxNV9nZW1fYWN0aXZlX2dldChjb25zdCBzdHJ1Y3QgaTkx NV9nZW1fYWN0aXZlICphY3RpdmUpCitpOTE1X2dlbV9hY3RpdmVfZ2V0KGNvbnN0IHN0cnVjdCBp OTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSwgc3RydWN0IG11dGV4ICptdXRleCkKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7CiAKLQlyZXF1ZXN0ID0gaTkxNV9nZW1fYWN0 aXZlX3BlZWsoYWN0aXZlKTsKKwlyZXF1ZXN0ID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoYWN0aXZl LCBtdXRleCk7CiAJaWYgKCFyZXF1ZXN0IHx8IGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJl cXVlc3QpKQogCQlyZXR1cm4gTlVMTDsKIApAQCAtMzM4LDcgKzM0NCw3IEBAIGk5MTVfZ2VtX2Fj dGl2ZV9nZXQoY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlKQogc3RhdGljIGlu bGluZSBib29sCiBfX2k5MTVfZ2VtX2FjdGl2ZV9pc19idXN5KGNvbnN0IHN0cnVjdCBpOTE1X2dl bV9hY3RpdmUgKmFjdGl2ZSkKIHsKLQlyZXR1cm4gaTkxNV9nZW1fYWN0aXZlX3BlZWsoYWN0aXZl KTsKKwlyZXR1cm4gX19pOTE1X2dlbV9hY3RpdmVfcGVlayhhY3RpdmUpOwogfQogCiAvKioKQEAg LTM1MCwxMSArMzU2LDEyIEBAIF9faTkxNV9nZW1fYWN0aXZlX2lzX2J1c3koY29uc3Qgc3RydWN0 IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlKQogICogdGhlIGNhbGxlciB0byBob2xkIHN0cnVjdF9t dXRleCAoYnV0IHRoYXQgY2FuIGJlIHJlbGF4ZWQgaWYgZGVzaXJlZCkuCiAgKi8KIHN0YXRpYyBp bmxpbmUgYm9vbAotaTkxNV9nZW1fYWN0aXZlX2lzX2lkbGUoY29uc3Qgc3RydWN0IGk5MTVfZ2Vt X2FjdGl2ZSAqYWN0aXZlKQoraTkxNV9nZW1fYWN0aXZlX2lzX2lkbGUoY29uc3Qgc3RydWN0IGk5 MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlLAorCQkJc3RydWN0IG11dGV4ICptdXRleCkKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7CiAKLQlyZXF1ZXN0ID0gaTkxNV9nZW1f YWN0aXZlX3BlZWsoYWN0aXZlKTsKKwlyZXF1ZXN0ID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoYWN0 aXZlLCBtdXRleCk7CiAJaWYgKCFyZXF1ZXN0IHx8IGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVk KHJlcXVlc3QpKQogCQlyZXR1cm4gdHJ1ZTsKIApAQCAtMzY5LDExICszNzYsMTEgQEAgaTkxNV9n ZW1fYWN0aXZlX2lzX2lkbGUoY29uc3Qgc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlKQog ICogcmV0dXJuaW5nLgogICovCiBzdGF0aWMgaW5saW5lIGludCBfX211c3RfY2hlY2sKLWk5MTVf Z2VtX2FjdGl2ZV93YWl0KGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSkKK2k5 MTVfZ2VtX2FjdGl2ZV93YWl0KGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSwg c3RydWN0IG11dGV4ICptdXRleCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cXVlc3Q7CiAKLQlyZXF1ZXN0ID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoYWN0aXZlKTsKKwlyZXF1 ZXN0ID0gaTkxNV9nZW1fYWN0aXZlX3BlZWsoYWN0aXZlLCBtdXRleCk7CiAJaWYgKCFyZXF1ZXN0 KQogCQlyZXR1cm4gMDsKIApAQCAtMzg4LDkgKzM5NSwxMCBAQCBpOTE1X2dlbV9hY3RpdmVfd2Fp dChjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUpCiAgKiBtYWtlIHN1cmUgdGhl IHJlcXVlc3QgaXMgcmV0aXJlZCBiZWZvcmUgcmV0dXJuaW5nLgogICovCiBzdGF0aWMgaW5saW5l IGludCBfX211c3RfY2hlY2sKLWk5MTVfZ2VtX2FjdGl2ZV9yZXRpcmUoY29uc3Qgc3RydWN0IGk5 MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlKQoraTkxNV9nZW1fYWN0aXZlX3JldGlyZShjb25zdCBzdHJ1 Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUsCisJCSAgICAgICBzdHJ1Y3QgbXV0ZXggKm11dGV4 KQogewotCXJldHVybiBpOTE1X2dlbV9hY3RpdmVfd2FpdChhY3RpdmUpOworCXJldHVybiBpOTE1 X2dlbV9hY3RpdmVfd2FpdChhY3RpdmUsIG11dGV4KTsKIH0KIAogLyogQ29udmVuaWVuY2UgZnVu Y3Rpb25zIGZvciBwZWVraW5nIGF0IHN0YXRlIGluc2lkZSBhY3RpdmUncyByZXF1ZXN0IHdoaWxz dApAQCAtMzk4LDE1ICs0MDYsMTcgQEAgaTkxNV9nZW1fYWN0aXZlX3JldGlyZShjb25zdCBzdHJ1 Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUpCiAgKi8KIAogc3RhdGljIGlubGluZSB1aW50MzJf dAotaTkxNV9nZW1fYWN0aXZlX2dldF9zZXFubyhjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZl ICphY3RpdmUpCitpOTE1X2dlbV9hY3RpdmVfZ2V0X3NlcW5vKGNvbnN0IHN0cnVjdCBpOTE1X2dl bV9hY3RpdmUgKmFjdGl2ZSwKKwkJCSAgc3RydWN0IG11dGV4ICptdXRleCkKIHsKLQlyZXR1cm4g aTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8oaTkxNV9nZW1fYWN0aXZlX3BlZWsoYWN0aXZlKSk7 CisJcmV0dXJuIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKGk5MTVfZ2VtX2FjdGl2ZV9wZWVr KGFjdGl2ZSwgbXV0ZXgpKTsKIH0KIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICoKLWk5MTVfZ2VtX2FjdGl2ZV9nZXRfZW5naW5lKGNvbnN0IHN0cnVjdCBpOTE1X2dlbV9h Y3RpdmUgKmFjdGl2ZSkKK2k5MTVfZ2VtX2FjdGl2ZV9nZXRfZW5naW5lKGNvbnN0IHN0cnVjdCBp OTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSwKKwkJCSAgIHN0cnVjdCBtdXRleCAqbXV0ZXgpCiB7Ci0J cmV0dXJuIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2VuZ2luZShpOTE1X2dlbV9hY3RpdmVfcGVlayhh Y3RpdmUpKTsKKwlyZXR1cm4gaTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5naW5lKGk5MTVfZ2VtX2Fj dGl2ZV9wZWVrKGFjdGl2ZSwgbXV0ZXgpKTsKIH0KIAogI2RlZmluZSBmb3JfZWFjaF9hY3RpdmUo bWFzaywgaWR4KSBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV90 aWxpbmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbGluZy5jCmluZGV4IDhj ZWYyZDZiMjkxYS4uZmEyZWI0YTRmMjEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV90aWxpbmcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV90 aWxpbmcuYwpAQCAtMjQyLDcgKzI0Miw4IEBAIGk5MTVfZ2VtX3NldF90aWxpbmcoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCX0KIAogCQkJb2JqLT5mZW5jZV9kaXJ0eSA9 Ci0JCQkJIWk5MTVfZ2VtX2FjdGl2ZV9pc19pZGxlKCZvYmotPmxhc3RfZmVuY2UpIHx8CisJCQkJ IWk5MTVfZ2VtX2FjdGl2ZV9pc19pZGxlKCZvYmotPmxhc3RfZmVuY2UsCisJCQkJCQkJICZkZXYt PnN0cnVjdF9tdXRleCkgfHwKIAkJCQlvYmotPmZlbmNlX3JlZyAhPSBJOTE1X0ZFTkNFX1JFR19O T05FOwogCiAJCQlvYmotPnRpbGluZ19tb2RlID0gYXJncy0+dGlsaW5nX21vZGU7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKaW5kZXggMDBhYjVlOWQyZWI3Li5lNTc1MjFk YmRkYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJwdHIu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKQEAgLTc0LDcg Kzc0LDggQEAgc3RhdGljIHZvaWQgd2FpdF9yZW5kZXJpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKIAlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5FUzsgaSsrKSB7CiAJ CXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCi0JCXJlcSA9IGk5MTVfZ2VtX2Fj dGl2ZV9nZXQoJm9iai0+bGFzdF9yZWFkW2ldKTsKKwkJcmVxID0gaTkxNV9nZW1fYWN0aXZlX2dl dCgmb2JqLT5sYXN0X3JlYWRbaV0sCisJCQkJCSAgJm9iai0+YmFzZS5kZXYtPnN0cnVjdF9tdXRl eCk7CiAJCWlmIChyZXEpCiAJCQlyZXF1ZXN0c1tuKytdID0gcmVxOwogCX0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dwdV9lcnJvci5jCmluZGV4IDllMTk0OWYyZjRkZC4uZDZlODU1NTVjMjI4IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKQEAgLTc0MCwxOCArNzQwLDM4IEBA IHVud2luZDoKICNkZWZpbmUgaTkxNV9lcnJvcl9nZ3R0X29iamVjdF9jcmVhdGUoZGV2X3ByaXYs IHNyYykgXAogCWk5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0ZSgoZGV2X3ByaXYpLCAoc3JjKSwgJihk ZXZfcHJpdiktPmdndHQuYmFzZSkKIAorLyogVGhlIGVycm9yIGNhcHR1cmUgaXMgc3BlY2lhbCBh cyB0cmllcyB0byBydW4gdW5kZXJuZWF0aCB0aGUgbm9ybWFsCisgKiBsb2NraW5nIHJ1bGVzIC0g c28gd2UgdXNlIHRoZSByYXcgdmVyc2lvbiBvZiB0aGUgaTkxNV9nZW1fYWN0aXZlIGxvb2t1cC4K KyAqLworc3RhdGljIGlubGluZSB1aW50MzJfdAorX19hY3RpdmVfZ2V0X3NlcW5vKHN0cnVjdCBp OTE1X2dlbV9hY3RpdmUgKmFjdGl2ZSkKK3sKKwlyZXR1cm4gaTkxNV9nZW1fcmVxdWVzdF9nZXRf c2Vxbm8oX19pOTE1X2dlbV9hY3RpdmVfcGVlayhhY3RpdmUpKTsKK30KKworc3RhdGljIGlubGlu ZSBpbnQKK19fYWN0aXZlX2dldF9lbmdpbmVfaWQoc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0 aXZlKQoreworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKworCWVuZ2luZSA9IGk5 MTVfZ2VtX3JlcXVlc3RfZ2V0X2VuZ2luZShfX2k5MTVfZ2VtX2FjdGl2ZV9wZWVrKGFjdGl2ZSkp OworCXJldHVybiBlbmdpbmUgPyBlbmdpbmUtPmlkIDogLTE7Cit9CisKIHN0YXRpYyB2b2lkIGNh cHR1cmVfYm8oc3RydWN0IGRybV9pOTE1X2Vycm9yX2J1ZmZlciAqZXJyLAogCQkgICAgICAgc3Ry dWN0IGk5MTVfdm1hICp2bWEpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9 IHZtYS0+b2JqOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgaTsKIAog CWVyci0+c2l6ZSA9IG9iai0+YmFzZS5zaXplOwogCWVyci0+bmFtZSA9IG9iai0+YmFzZS5uYW1l OworCiAJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkrKykKLQkJZXJyLT5yc2Vx bm9baV0gPSBpOTE1X2dlbV9hY3RpdmVfZ2V0X3NlcW5vKCZvYmotPmxhc3RfcmVhZFtpXSk7Ci0J ZXJyLT53c2Vxbm8gPSBpOTE1X2dlbV9hY3RpdmVfZ2V0X3NlcW5vKCZvYmotPmxhc3Rfd3JpdGUp OworCQllcnItPnJzZXFub1tpXSA9IF9fYWN0aXZlX2dldF9zZXFubygmb2JqLT5sYXN0X3JlYWRb aV0pOworCWVyci0+d3NlcW5vID0gX19hY3RpdmVfZ2V0X3NlcW5vKCZvYmotPmxhc3Rfd3JpdGUp OworCWVyci0+cmluZyA9IF9fYWN0aXZlX2dldF9lbmdpbmVfaWQoJm9iai0+bGFzdF93cml0ZSk7 CisKIAllcnItPmd0dF9vZmZzZXQgPSB2bWEtPm5vZGUuc3RhcnQ7CiAJZXJyLT5yZWFkX2RvbWFp bnMgPSBvYmotPmJhc2UucmVhZF9kb21haW5zOwogCWVyci0+d3JpdGVfZG9tYWluID0gb2JqLT5i YXNlLndyaXRlX2RvbWFpbjsKQEAgLTc2NCw5ICs3ODQsNiBAQCBzdGF0aWMgdm9pZCBjYXB0dXJl X2JvKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9idWZmZXIgKmVyciwKIAllcnItPnB1cmdlYWJsZSA9 IG9iai0+bWFkdiAhPSBJOTE1X01BRFZfV0lMTE5FRUQ7CiAJZXJyLT51c2VycHRyID0gb2JqLT51 c2VycHRyLm1tICE9IE5VTEw7CiAJZXJyLT5jYWNoZV9sZXZlbCA9IG9iai0+Y2FjaGVfbGV2ZWw7 Ci0KLQllbmdpbmUgPSBpOTE1X2dlbV9hY3RpdmVfZ2V0X2VuZ2luZSgmb2JqLT5sYXN0X3dyaXRl KTsKLQllcnItPnJpbmcgPSBlbmdpbmUgPyBlbmdpbmUtPmlkIDogLTE7CiB9CiAKIHN0YXRpYyB1 MzIgY2FwdHVyZV9hY3RpdmVfYm8oc3RydWN0IGRybV9pOTE1X2Vycm9yX2J1ZmZlciAqZXJyLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGEwYWJlNTU4OGQxNy4uMzQ1YjI0 YmVkYzZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xMTQ2NSw3ICsx MTQ2NSw4IEBAIHN0YXRpYyBib29sIHVzZV9tbWlvX2ZsaXAoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAogCWlmIChyZXN2ICYmICFyZXNlcnZhdGlvbl9vYmplY3RfdGVzdF9zaWduYWxl ZF9yY3UocmVzdiwgZmFsc2UpKQogCQlyZXR1cm4gdHJ1ZTsKIAotCXJldHVybiBlbmdpbmUgIT0g aTkxNV9nZW1fYWN0aXZlX2dldF9lbmdpbmUoJm9iai0+bGFzdF93cml0ZSk7CisJcmV0dXJuIGVu Z2luZSAhPSBpOTE1X2dlbV9hY3RpdmVfZ2V0X2VuZ2luZSgmb2JqLT5sYXN0X3dyaXRlLAorCQkJ CQkJICAgICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogfQogCiBzdGF0aWMgdm9pZCBz a2xfZG9fbW1pb19mbGlwKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLApAQCAtMTE3Njgs NyArMTE3NjksOCBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAl9IGVsc2UgaWYgKElTX0lWWUJSSURHRShkZXYpIHx8IElTX0hBU1dFTEwo ZGV2KSkgewogCQllbmdpbmUgPSAmZGV2X3ByaXYtPmVuZ2luZVtCQ1NdOwogCX0gZWxzZSBpZiAo SU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNykgewotCQllbmdpbmUgPSBpOTE1X2dlbV9hY3RpdmVf Z2V0X2VuZ2luZSgmb2JqLT5sYXN0X3dyaXRlKTsKKwkJZW5naW5lID0gaTkxNV9nZW1fYWN0aXZl X2dldF9lbmdpbmUoJm9iai0+bGFzdF93cml0ZSwKKwkJCQkJCSAgICAmb2JqLT5iYXNlLmRldi0+ c3RydWN0X211dGV4KTsKIAkJaWYgKGVuZ2luZSA9PSBOVUxMIHx8IGVuZ2luZS0+aWQgIT0gUkNT KQogCQkJZW5naW5lID0gJmRldl9wcml2LT5lbmdpbmVbQkNTXTsKIAl9IGVsc2UgewpAQCAtMTE3 ODksNyArMTE3OTEsOCBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfcGFnZV9mbGlwKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAlpZiAobW1pb19mbGlwKSB7CiAJCUlOSVRfV09SSygmd29yay0+bW1p b193b3JrLCBpbnRlbF9tbWlvX2ZsaXBfd29ya19mdW5jKTsKIAotCQl3b3JrLT5mbGlwX3F1ZXVl ZF9yZXEgPSBpOTE1X2dlbV9hY3RpdmVfZ2V0KCZvYmotPmxhc3Rfd3JpdGUpOworCQl3b3JrLT5m bGlwX3F1ZXVlZF9yZXEgPSBpOTE1X2dlbV9hY3RpdmVfZ2V0KCZvYmotPmxhc3Rfd3JpdGUsCisJ CQkJCQkJICAgICZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCQlzY2hlZHVsZV93b3Jr KCZ3b3JrLT5tbWlvX3dvcmspOwogCX0gZWxzZSB7CiAJCXJlcXVlc3QgPSBpOTE1X2dlbV9yZXF1 ZXN0X2FsbG9jKGVuZ2luZSwgZW5naW5lLT5sYXN0X2NvbnRleHQpOwpAQCAtMTQwOTEsNyArMTQw OTQsOCBAQCBpbnRlbF9wcmVwYXJlX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAog CiAJaWYgKHJldCA9PSAwKSB7CiAJCXRvX2ludGVsX3BsYW5lX3N0YXRlKG5ld19zdGF0ZSktPndh aXRfcmVxID0KLQkJCWk5MTVfZ2VtX2FjdGl2ZV9nZXQoJm9iai0+bGFzdF93cml0ZSk7CisJCQlp OTE1X2dlbV9hY3RpdmVfZ2V0KCZvYmotPmxhc3Rfd3JpdGUsCisJCQkJCSAgICAmb2JqLT5iYXNl LmRldi0+c3RydWN0X211dGV4KTsKIAl9CiAKIAlyZXR1cm4gcmV0OwotLSAKMi44LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=