From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 43/62] drm/i915: Introduce i915_gem_active for request tracking Date: Fri, 3 Jun 2016 17:37:08 +0100 Message-ID: <1464971847-15809-44-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-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id B4BBA6EE2F for ; Fri, 3 Jun 2016 16:38:16 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id a20so601521wma.3 for ; Fri, 03 Jun 2016 09:38:16 -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 SW4gdGhlIG5leHQgcGF0Y2gsIHJlcXVlc3QgdHJhY2tpbmcgaXMgbWFkZSBtb3JlIGdlbmVyaWMg YW5kIGZvciB0aGF0IHdlCm5lZWQgYSBuZXcgZXhwYW5kZWQgc3RydWN0IGFuZCB0byBzZXBhcmF0 ZSBvdXQgdGhlIGxvZ2ljIGNoYW5nZXMgZnJvbQp0aGUgbWVjaGFuaWNhbCBjaHVybiwgd2Ugc3Bs aXQgb3V0IHRoZSBzdHJ1Y3R1cmUgcmVuYW1pbmcgaW50byB0aGlzCnBhdGNoLgoKdjI6IFdyaXRl cidzIGJsb2NrLiBBZGQgc29tZSBzcGllbCBhYm91dCB3aHkgd2UgdHJhY2sgcmVxdWVzdHMuCnYz OiBOb3cgaTkxNV9nZW1fYWN0aXZlLgp2NDogTm93IHdpdGggaTkxNV9nZW1fYWN0aXZlX3NldCgp IGZvciBhdHRhY2hpbmcgdG8gdGhlIGFjdGl2ZSByZXF1ZXN0LgoKU2lnbmVkLW9mZi1ieTogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgIHwgMTAgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAgOSArKystLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgNTggKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAgNCArLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlLmMgICAgICB8ICA2ICsrLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaCAgICB8IDQxICsrKysrKysrKysr KysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMgICAgIHwg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJwdHIuYyAgICB8ICAyICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgICAgfCAgNiArKy0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAgfCAgOCArKy0tLQogMTAg ZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCA0OGM4Zjc0ZTYyNTYuLjJlZGJmOWU5NWU3ZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTE1NSwxMCArMTU1LDEwIEBAIGRl c2NyaWJlX29iaihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCiAJCSAgIG9iai0+YmFzZS53cml0ZV9kb21haW4pOwogCWZvcl9lYWNoX2VuZ2luZV9p ZChlbmdpbmUsIGRldl9wcml2LCBpZCkKIAkJc2VxX3ByaW50ZihtLCAiJXggIiwKLQkJCQlpOTE1 X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhvYmotPmxhc3RfcmVhZF9yZXFbaWRdKSk7CisJCQkgICBp OTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhvYmotPmxhc3RfcmVhZFtpZF0ucmVxdWVzdCkpOwog CXNlcV9wcmludGYobSwgIl0gJXggJXglcyVzJXMiLAotCQkgICBpOTE1X2dlbV9yZXF1ZXN0X2dl dF9zZXFubyhvYmotPmxhc3Rfd3JpdGVfcmVxKSwKLQkJICAgaTkxNV9nZW1fcmVxdWVzdF9nZXRf c2Vxbm8ob2JqLT5sYXN0X2ZlbmNlZF9yZXEpLAorCQkgICBpOTE1X2dlbV9yZXF1ZXN0X2dldF9z ZXFubyhvYmotPmxhc3Rfd3JpdGUucmVxdWVzdCksCisJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0 X3NlcW5vKG9iai0+bGFzdF9mZW5jZS5yZXF1ZXN0KSwKIAkJICAgaTkxNV9jYWNoZV9sZXZlbF9z dHIodG9faTkxNShvYmotPmJhc2UuZGV2KSwgb2JqLT5jYWNoZV9sZXZlbCksCiAJCSAgIG9iai0+ ZGlydHkgPyAiIGRpcnR5IiA6ICIiLAogCQkgICBvYmotPm1hZHYgPT0gSTkxNV9NQURWX0RPTlRO RUVEID8gIiBwdXJnZWFibGUiIDogIiIpOwpAQCAtMTkyLDggKzE5Miw4IEBAIGRlc2NyaWJlX29i aihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJ CSp0ID0gJ1wwJzsKIAkJc2VxX3ByaW50ZihtLCAiICglcyBtYXBwYWJsZSkiLCBzKTsKIAl9Ci0J aWYgKG9iai0+bGFzdF93cml0ZV9yZXEgIT0gTlVMTCkKLQkJc2VxX3ByaW50ZihtLCAiICglcyki LCBvYmotPmxhc3Rfd3JpdGVfcmVxLT5lbmdpbmUtPm5hbWUpOworCWlmIChvYmotPmxhc3Rfd3Jp dGUucmVxdWVzdCAhPSBOVUxMKQorCQlzZXFfcHJpbnRmKG0sICIgKCVzKSIsIG9iai0+bGFzdF93 cml0ZS5yZXF1ZXN0LT5lbmdpbmUtPm5hbWUpOwogCWlmIChvYmotPmZyb250YnVmZmVyX2JpdHMp CiAJCXNlcV9wcmludGYobSwgIiAoZnJvbnRidWZmZXI6IDB4JTAzeCkiLCBvYmotPmZyb250YnVm ZmVyX2JpdHMpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggZTliNDg4MDhkZWVmLi5i OGRmNDhlMGUzMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjIyMCwxMSArMjIyMCwx MCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7CiAJICogcmVxdWVzdHMgb24gb25lIHJp bmcgd2hlcmUgdGhlIHdyaXRlIHJlcXVlc3QgaXMgb2xkZXIgdGhhbiB0aGUKIAkgKiByZWFkIHJl cXVlc3QuIFRoaXMgYWxsb3dzIGZvciB0aGUgQ1BVIHRvIHJlYWQgZnJvbSBhbiBhY3RpdmUKIAkg KiBidWZmZXIgYnkgb25seSB3YWl0aW5nIGZvciB0aGUgd3JpdGUgdG8gY29tcGxldGUuCi0JICog Ki8KLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKmxhc3RfcmVhZF9yZXFbSTkxNV9OVU1f RU5HSU5FU107Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpsYXN0X3dyaXRlX3JlcTsK LQkvKiogQnJlYWRjcnVtYiBvZiBsYXN0IGZlbmNlZCBHUFUgYWNjZXNzIHRvIHRoZSBidWZmZXIu ICovCi0Jc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpsYXN0X2ZlbmNlZF9yZXE7CisJICov CisJc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSBsYXN0X3JlYWRbSTkxNV9OVU1fRU5HSU5FU107CisJ c3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSBsYXN0X3dyaXRlOworCXN0cnVjdCBpOTE1X2dlbV9hY3Rp dmUgbGFzdF9mZW5jZTsKIAogCS8qKiBDdXJyZW50IHRpbGluZyBzdHJpZGUgZm9yIHRoZSBvYmpl Y3QsIGlmIGl0J3MgdGlsZWQuICovCiAJdWludDMyX3Qgc3RyaWRlOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKaW5kZXggYjc1MTg1MjczYjBlLi44YzNiMzlhOGU5NzQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwpAQCAtMTExOSwyMyArMTExOSwyMyBAQCBpOTE1X2dlbV9vYmplY3Rfd2FpdF9yZW5k ZXJpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJcmV0dXJuIDA7CiAKIAlp ZiAocmVhZG9ubHkpIHsKLQkJaWYgKG9iai0+bGFzdF93cml0ZV9yZXEgIT0gTlVMTCkgewotCQkJ cmV0ID0gaTkxNV93YWl0X3JlcXVlc3Qob2JqLT5sYXN0X3dyaXRlX3JlcSk7CisJCWlmIChvYmot Pmxhc3Rfd3JpdGUucmVxdWVzdCAhPSBOVUxMKSB7CisJCQlyZXQgPSBpOTE1X3dhaXRfcmVxdWVz dChvYmotPmxhc3Rfd3JpdGUucmVxdWVzdCk7CiAJCQlpZiAocmV0KQogCQkJCXJldHVybiByZXQ7 CiAKLQkJCWkgPSBvYmotPmxhc3Rfd3JpdGVfcmVxLT5lbmdpbmUtPmlkOwotCQkJaWYgKG9iai0+ bGFzdF9yZWFkX3JlcVtpXSA9PSBvYmotPmxhc3Rfd3JpdGVfcmVxKQorCQkJaSA9IG9iai0+bGFz dF93cml0ZS5yZXF1ZXN0LT5lbmdpbmUtPmlkOworCQkJaWYgKG9iai0+bGFzdF9yZWFkW2ldLnJl cXVlc3QgPT0gb2JqLT5sYXN0X3dyaXRlLnJlcXVlc3QpCiAJCQkJaTkxNV9nZW1fb2JqZWN0X3Jl dGlyZV9fcmVhZChvYmosIGkpOwogCQkJZWxzZQogCQkJCWk5MTVfZ2VtX29iamVjdF9yZXRpcmVf X3dyaXRlKG9iaik7CiAJCX0KIAl9IGVsc2UgewogCQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1f RU5HSU5FUzsgaSsrKSB7Ci0JCQlpZiAob2JqLT5sYXN0X3JlYWRfcmVxW2ldID09IE5VTEwpCisJ CQlpZiAob2JqLT5sYXN0X3JlYWRbaV0ucmVxdWVzdCA9PSBOVUxMKQogCQkJCWNvbnRpbnVlOwog Ci0JCQlyZXQgPSBpOTE1X3dhaXRfcmVxdWVzdChvYmotPmxhc3RfcmVhZF9yZXFbaV0pOworCQkJ cmV0ID0gaTkxNV93YWl0X3JlcXVlc3Qob2JqLT5sYXN0X3JlYWRbaV0ucmVxdWVzdCk7CiAJCQlp ZiAocmV0KQogCQkJCXJldHVybiByZXQ7CiAKQEAgLTExNTMsOSArMTE1Myw5IEBAIGk5MTVfZ2Vt X29iamVjdF9yZXRpcmVfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAog ewogCWludCByaW5nID0gcmVxLT5lbmdpbmUtPmlkOwogCi0JaWYgKG9iai0+bGFzdF9yZWFkX3Jl cVtyaW5nXSA9PSByZXEpCisJaWYgKG9iai0+bGFzdF9yZWFkW3JpbmddLnJlcXVlc3QgPT0gcmVx KQogCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX19yZWFkKG9iaiwgcmluZyk7Ci0JZWxzZSBpZiAo b2JqLT5sYXN0X3dyaXRlX3JlcSA9PSByZXEpCisJZWxzZSBpZiAob2JqLT5sYXN0X3dyaXRlLnJl cXVlc3QgPT0gcmVxKQogCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX193cml0ZShvYmopOwogCiAJ aWYgKHJlcS0+cmVzZXRfY291bnRlciA9PSBpOTE1X3Jlc2V0X2NvdW50ZXIoJnJlcS0+aTkxNS0+ Z3B1X2Vycm9yKSkKQEAgLTExODQsNyArMTE4NCw3IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3Jl bmRlcmluZ19fbm9uYmxvY2tpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlp ZiAocmVhZG9ubHkpIHsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKLQkJ cmVxID0gb2JqLT5sYXN0X3dyaXRlX3JlcTsKKwkJcmVxID0gb2JqLT5sYXN0X3dyaXRlLnJlcXVl c3Q7CiAJCWlmIChyZXEgPT0gTlVMTCkKIAkJCXJldHVybiAwOwogCkBAIC0xMTkzLDcgKzExOTMs NyBAQCBpOTE1X2dlbV9vYmplY3Rfd2FpdF9yZW5kZXJpbmdfX25vbmJsb2NraW5nKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJ TkVTOyBpKyspIHsKIAkJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCi0JCQly ZXEgPSBvYmotPmxhc3RfcmVhZF9yZXFbaV07CisJCQlyZXEgPSBvYmotPmxhc3RfcmVhZFtpXS5y ZXF1ZXN0OwogCQkJaWYgKHJlcSA9PSBOVUxMKQogCQkJCWNvbnRpbnVlOwogCkBAIC0yMTA5LDcg KzIxMDksNyBAQCB2b2lkIGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAq dm1hLAogCW9iai0+YWN0aXZlIHw9IGludGVsX2VuZ2luZV9mbGFnKGVuZ2luZSk7CiAKIAlsaXN0 X21vdmVfdGFpbCgmb2JqLT5lbmdpbmVfbGlzdFtlbmdpbmUtPmlkXSwgJmVuZ2luZS0+YWN0aXZl X2xpc3QpOwotCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZvYmotPmxhc3RfcmVhZF9yZXFbZW5n aW5lLT5pZF0sIHJlcSk7CisJaTkxNV9nZW1fYWN0aXZlX3NldCgmb2JqLT5sYXN0X3JlYWRbZW5n aW5lLT5pZF0sIHJlcSk7CiAKIAlsaXN0X21vdmVfdGFpbCgmdm1hLT52bV9saW5rLCAmdm1hLT52 bS0+YWN0aXZlX2xpc3QpOwogfQpAQCAtMjExNywxMCArMjExNywxMCBAQCB2b2lkIGk5MTVfdm1h X21vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogc3RhdGljIHZvaWQKIGk5MTVf Z2VtX29iamVjdF9yZXRpcmVfX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmop CiB7Ci0JR0VNX0JVR19PTihvYmotPmxhc3Rfd3JpdGVfcmVxID09IE5VTEwpOwotCUdFTV9CVUdf T04oIShvYmotPmFjdGl2ZSAmIGludGVsX2VuZ2luZV9mbGFnKG9iai0+bGFzdF93cml0ZV9yZXEt PmVuZ2luZSkpKTsKKwlHRU1fQlVHX09OKG9iai0+bGFzdF93cml0ZS5yZXF1ZXN0ID09IE5VTEwp OworCUdFTV9CVUdfT04oIShvYmotPmFjdGl2ZSAmIGludGVsX2VuZ2luZV9mbGFnKG9iai0+bGFz dF93cml0ZS5yZXF1ZXN0LT5lbmdpbmUpKSk7CiAKLQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigm b2JqLT5sYXN0X3dyaXRlX3JlcSwgTlVMTCk7CisJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJm9i ai0+bGFzdF93cml0ZS5yZXF1ZXN0LCBOVUxMKTsKIAlpbnRlbF9mYl9vYmpfZmx1c2gob2JqLCB0 cnVlLCBPUklHSU5fQ1MpOwogfQogCkBAIC0yMTI5LDEzICsyMTI5LDEzIEBAIGk5MTVfZ2VtX29i amVjdF9yZXRpcmVfX3JlYWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgaW50IHJp bmcpCiB7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAKLQlHRU1fQlVHX09OKG9iai0+bGFzdF9y ZWFkX3JlcVtyaW5nXSA9PSBOVUxMKTsKKwlHRU1fQlVHX09OKG9iai0+bGFzdF9yZWFkW3Jpbmdd LnJlcXVlc3QgPT0gTlVMTCk7CiAJR0VNX0JVR19PTighKG9iai0+YWN0aXZlICYgKDEgPDwgcmlu ZykpKTsKIAogCWxpc3RfZGVsX2luaXQoJm9iai0+ZW5naW5lX2xpc3RbcmluZ10pOwotCWk5MTVf Z2VtX3JlcXVlc3RfYXNzaWduKCZvYmotPmxhc3RfcmVhZF9yZXFbcmluZ10sIE5VTEwpOworCWk5 MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZvYmotPmxhc3RfcmVhZFtyaW5nXS5yZXF1ZXN0LCBOVUxM KTsKIAotCWlmIChvYmotPmxhc3Rfd3JpdGVfcmVxICYmIG9iai0+bGFzdF93cml0ZV9yZXEtPmVu Z2luZS0+aWQgPT0gcmluZykKKwlpZiAob2JqLT5sYXN0X3dyaXRlLnJlcXVlc3QgJiYgb2JqLT5s YXN0X3dyaXRlLnJlcXVlc3QtPmVuZ2luZS0+aWQgPT0gcmluZykKIAkJaTkxNV9nZW1fb2JqZWN0 X3JldGlyZV9fd3JpdGUob2JqKTsKIAogCW9iai0+YWN0aXZlICY9IH4oMSA8PCByaW5nKTsKQEAg LTIxNTQsNyArMjE1NCw3IEBAIGk5MTVfZ2VtX29iamVjdF9yZXRpcmVfX3JlYWQoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgaW50IHJpbmcpCiAJCQlsaXN0X21vdmVfdGFpbCgmdm1h LT52bV9saW5rLCAmdm1hLT52bS0+aW5hY3RpdmVfbGlzdCk7CiAJfQogCi0JaTkxNV9nZW1fcmVx dWVzdF9hc3NpZ24oJm9iai0+bGFzdF9mZW5jZWRfcmVxLCBOVUxMKTsKKwlpOTE1X2dlbV9yZXF1 ZXN0X2Fzc2lnbigmb2JqLT5sYXN0X2ZlbmNlLnJlcXVlc3QsIE5VTEwpOwogCWk5MTVfZ2VtX29i amVjdF9wdXQob2JqKTsKIH0KIApAQCAtMjM0Nyw3ICsyMzQ3LDcgQEAgaTkxNV9nZW1fcmV0aXJl X3JlcXVlc3RzX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkJCSAgICAg ICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCwKIAkJCQkgICAgICAgZW5naW5lX2xpc3RbZW5n aW5lLT5pZF0pOwogCi0JCWlmICghbGlzdF9lbXB0eSgmb2JqLT5sYXN0X3JlYWRfcmVxW2VuZ2lu ZS0+aWRdLT5saXN0KSkKKwkJaWYgKCFsaXN0X2VtcHR5KCZvYmotPmxhc3RfcmVhZFtlbmdpbmUt PmlkXS5yZXF1ZXN0LT5saXN0KSkKIAkJCWJyZWFrOwogCiAJCWk5MTVfZ2VtX29iamVjdF9yZXRp cmVfX3JlYWQob2JqLCBlbmdpbmUtPmlkKTsKQEAgLTI0NTMsNyArMjQ1Myw3IEBAIGk5MTVfZ2Vt X29iamVjdF9mbHVzaF9hY3RpdmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlm b3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5FUzsgaSsrKSB7CiAJCXN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxOwogCi0JCXJlcSA9IG9iai0+bGFzdF9yZWFkX3JlcVtpXTsKKwkJ cmVxID0gb2JqLT5sYXN0X3JlYWRbaV0ucmVxdWVzdDsKIAkJaWYgKHJlcSA9PSBOVUxMKQogCQkJ Y29udGludWU7CiAKQEAgLTI1MjcsMTAgKzI1MjcsMTAgQEAgaTkxNV9nZW1fd2FpdF9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUp CiAJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwogCiAJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVN X0VOR0lORVM7IGkrKykgewotCQlpZiAob2JqLT5sYXN0X3JlYWRfcmVxW2ldID09IE5VTEwpCisJ CWlmIChvYmotPmxhc3RfcmVhZFtpXS5yZXF1ZXN0ID09IE5VTEwpCiAJCQljb250aW51ZTsKIAot CQlyZXFbbisrXSA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0KG9iai0+bGFzdF9yZWFkX3JlcVtpXSk7 CisJCXJlcVtuKytdID0gaTkxNV9nZW1fcmVxdWVzdF9nZXQob2JqLT5sYXN0X3JlYWRbaV0ucmVx dWVzdCk7CiAJfQogCiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CkBAIC0yNjIx LDEyICsyNjIxLDEyIEBAIGk5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmosCiAKIAluID0gMDsKIAlpZiAocmVhZG9ubHkpIHsKLQkJaWYgKG9iai0+bGFz dF93cml0ZV9yZXEpCi0JCQlyZXFbbisrXSA9IG9iai0+bGFzdF93cml0ZV9yZXE7CisJCWlmIChv YmotPmxhc3Rfd3JpdGUucmVxdWVzdCkKKwkJCXJlcVtuKytdID0gb2JqLT5sYXN0X3dyaXRlLnJl cXVlc3Q7CiAJfSBlbHNlIHsKIAkJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkr KykKLQkJCWlmIChvYmotPmxhc3RfcmVhZF9yZXFbaV0pCi0JCQkJcmVxW24rK10gPSBvYmotPmxh c3RfcmVhZF9yZXFbaV07CisJCQlpZiAob2JqLT5sYXN0X3JlYWRbaV0ucmVxdWVzdCkKKwkJCQly ZXFbbisrXSA9IG9iai0+bGFzdF9yZWFkW2ldLnJlcXVlc3Q7CiAJfQogCWZvciAoaSA9IDA7IGkg PCBuOyBpKyspIHsKIAkJcmV0ID0gX19pOTE1X2dlbV9vYmplY3Rfc3luYyhvYmosIHRvLCByZXFb aV0pOwpAQCAtMzcwNywxMiArMzcwNywxMiBAQCBpOTE1X2dlbV9idXN5X2lvY3RsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9F TkdJTkVTOyBpKyspIHsKIAkJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCi0J CQlyZXEgPSBvYmotPmxhc3RfcmVhZF9yZXFbaV07CisJCQlyZXEgPSBvYmotPmxhc3RfcmVhZFtp XS5yZXF1ZXN0OwogCQkJaWYgKHJlcSkKIAkJCQlhcmdzLT5idXN5IHw9IDEgPDwgKDE2ICsgcmVx LT5lbmdpbmUtPmV4ZWNfaWQpOwogCQl9Ci0JCWlmIChvYmotPmxhc3Rfd3JpdGVfcmVxKQotCQkJ YXJncy0+YnVzeSB8PSBvYmotPmxhc3Rfd3JpdGVfcmVxLT5lbmdpbmUtPmV4ZWNfaWQ7CisJCWlm IChvYmotPmxhc3Rfd3JpdGUucmVxdWVzdCkKKwkJCWFyZ3MtPmJ1c3kgfD0gb2JqLT5sYXN0X3dy aXRlLnJlcXVlc3QtPmVuZ2luZS0+ZXhlY19pZDsKIAl9CiAKIHVucmVmOgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCmluZGV4IGMyZDcwMzMyM2ZjMi4uNWM3ZWIz YzkzYTg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVm ZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCkBA IC0xMTE3LDcgKzExMTcsNyBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX21vdmVfdG9fYWN0aXZlKHN0 cnVjdCBsaXN0X2hlYWQgKnZtYXMsCiAKIAkJaTkxNV92bWFfbW92ZV90b19hY3RpdmUodm1hLCBy ZXEpOwogCQlpZiAob2JqLT5iYXNlLndyaXRlX2RvbWFpbikgewotCQkJaTkxNV9nZW1fcmVxdWVz dF9hc3NpZ24oJm9iai0+bGFzdF93cml0ZV9yZXEsIHJlcSk7CisJCQlpOTE1X2dlbV9hY3RpdmVf c2V0KCZvYmotPmxhc3Rfd3JpdGUsIHJlcSk7CiAKIAkJCWludGVsX2ZiX29ial9pbnZhbGlkYXRl KG9iaiwgT1JJR0lOX0NTKTsKIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgaTkxNV9nZW1fZXhlY2J1 ZmZlcl9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzLAogCQkJb2JqLT5iYXNl LndyaXRlX2RvbWFpbiAmPSB+STkxNV9HRU1fR1BVX0RPTUFJTlM7CiAJCX0KIAkJaWYgKGVudHJ5 LT5mbGFncyAmIEVYRUNfT0JKRUNUX05FRURTX0ZFTkNFKSB7Ci0JCQlpOTE1X2dlbV9yZXF1ZXN0 X2Fzc2lnbigmb2JqLT5sYXN0X2ZlbmNlZF9yZXEsIHJlcSk7CisJCQlpOTE1X2dlbV9hY3RpdmVf c2V0KCZvYmotPmxhc3RfZmVuY2UsIHJlcSk7CiAJCQlpZiAoZW50cnktPmZsYWdzICYgX19FWEVD X09CSkVDVF9IQVNfRkVOQ0UpIHsKIAkJCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBlbmdpbmUtPmk5MTU7CiAJCQkJbGlzdF9tb3ZlX3RhaWwoJmRldl9wcml2LT5mZW5jZV9y ZWdzW29iai0+ZmVuY2VfcmVnXS5scnVfbGlzdCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9m ZW5jZS5jCmluZGV4IDJiNmJkYzI2N2ZiNS4uOWY4Y2UxM2QyZjc3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2ZlbmNlLmMKQEAgLTI2MSwxMiArMjYxLDEyIEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBpOTE1X2dlbV9vYmplY3RfZmVuY2VfbG9zdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQogc3RhdGljIGludAogaTkxNV9nZW1fb2JqZWN0X3dhaXRfZmVuY2Uoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKLQlpZiAob2JqLT5sYXN0X2ZlbmNlZF9yZXEpIHsK LQkJaW50IHJldCA9IGk5MTVfd2FpdF9yZXF1ZXN0KG9iai0+bGFzdF9mZW5jZWRfcmVxKTsKKwlp ZiAob2JqLT5sYXN0X2ZlbmNlLnJlcXVlc3QpIHsKKwkJaW50IHJldCA9IGk5MTVfd2FpdF9yZXF1 ZXN0KG9iai0+bGFzdF9mZW5jZS5yZXF1ZXN0KTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7 CiAKLQkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJm9iai0+bGFzdF9mZW5jZWRfcmVxLCBOVUxM KTsKKwkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJm9iai0+bGFzdF9mZW5jZS5yZXF1ZXN0LCBO VUxMKTsKIAl9CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3JlcXVlc3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVl c3QuaAppbmRleCA1MDBhZTYwNjY4NjQuLjg5ZDdiYjY1MWY2NyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3JlcXVlc3QuaApAQCAtMjQzLDQgKzI0Myw0NSBAQCBzdGF0aWMgaW5saW5l IGJvb2wgaTkxNV9zcGluX3JlcXVlc3QoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXF1ZXN0LAogCQlfX2k5MTVfc3Bpbl9yZXF1ZXN0KHJlcXVlc3QsIHN0YXRlLCB0aW1lb3V0 X3VzKSk7CiB9CiAKKy8qIFdlIHRyZWF0IHJlcXVlc3RzIGFzIGZlbmNlcy4gVGhpcyBpcyBub3Qg YmUgdG8gY29uZnVzZWQgd2l0aCBvdXIKKyAqICJmZW5jZSByZWdpc3RlcnMiIGJ1dCBwaXBlbGlu ZSBzeW5jaHJvbmlzYXRpb24gb2JqZWN0cyBhbGEgR0xfQVJCX3N5bmMuCisgKiBXZSB1c2UgdGhl IGZlbmNlcyB0byBzeW5jaHJvbml6ZSBhY2Nlc3MgZnJvbSB0aGUgQ1BVIHdpdGggYWN0aXZpdHkg b24gdGhlCisgKiBHUFUsIGZvciBleGFtcGxlLCB3ZSBzaG91bGQgbm90IHJld3JpdGUgYW4gb2Jq ZWN0J3MgUFRFIHdoaWxzdCB0aGUgR1BVCisgKiBpcyByZWFkaW5nIHRoZW0uIFdlIGFsc28gdHJh Y2sgZmVuY2VzIGF0IGEgaGlnaGVyIGxldmVsIHRvIHByb3ZpZGUKKyAqIGltcGxpY2l0IHN5bmNo cm9uaXNhdGlvbiBhcm91bmQgR0VNIG9iamVjdHMsIGUuZy4gc2V0LWRvbWFpbiB3aWxsIHdhaXQK KyAqIGZvciBvdXRzdGFuZGluZyBHUFUgcmVuZGVyaW5nIGJlZm9yZSBtYXJraW5nIHRoZSBvYmpl Y3QgcmVhZHkgZm9yIENQVQorICogYWNjZXNzLCBvciBhIHBhZ2VmbGlwIHdpbGwgd2FpdCB1bnRp bCB0aGUgR1BVIGlzIGNvbXBsZXRlIGJlZm9yZSBzaG93aW5nCisgKiB0aGUgZnJhbWUgb24gdGhl IHNjYW5vdXQuCisgKgorICogSW4gb3JkZXIgdG8gdXNlIGEgZmVuY2UsIHRoZSBvYmplY3QgbXVz dCB0cmFjayB0aGUgZmVuY2UgaXQgbmVlZHMgdG8KKyAqIHNlcmlhbGlzZSB3aXRoLiBGb3IgZXhh bXBsZSwgR0VNIG9iamVjdHMgd2FudCB0byB0cmFjayBib3RoIHJlYWQgYW5kCisgKiB3cml0ZSBh Y2Nlc3Mgc28gdGhhdCB3ZSBjYW4gcGVyZm9ybSBjb25jdXJyZW50IHJlYWQgb3BlcmF0aW9ucyBi ZXR3ZWVuCisgKiB0aGUgQ1BVIGFuZCBHUFUgZW5naW5lcywgYXMgd2VsbCBhcyB3YWl0aW5nIGZv ciBhbGwgcmVuZGVyaW5nIHRvCisgKiBjb21wbGV0ZSwgb3Igd2FpdGluZyBmb3IgdGhlIGxhc3Qg R1BVIHVzZXIgb2YgYSAiZmVuY2UgcmVnaXN0ZXIiLiBUaGUKKyAqIG9iamVjdCB0aGVuIGVtYmVk cyBhIEBpOTE1X2dlbV9hY3RpdmUgdG8gdHJhY2sgdGhlIG1vc3QgcmVjZW50IChpbgorICogcmV0 aXJtZW50IG9yZGVyKSByZXF1ZXN0IHJlbGV2YW50IGZvciB0aGUgZGVzaXJlZCBtb2RlIG9mIGFj Y2Vzcy4KKyAqIFRoZSBAaTkxNV9nZW1fYWN0aXZlIGlzIHVwZGF0ZWQgd2l0aCBpOTE1X2dlbV9y ZXF1ZXN0X21hcmtfYWN0aXZlKCkgdG8KKyAqIHRyYWNrIHRoZSBtb3N0IHJlY2VudCBmZW5jZSBy ZXF1ZXN0LCB0eXBpY2FsbHkgdGhpcyBpcyBkb25lIGFzIHBhcnQgb2YKKyAqIGk5MTVfdm1hX21v dmVfdG9fYWN0aXZlKCkuCisgKgorICogV2hlbiB0aGUgQGk5MTVfZ2VtX2FjdGl2ZSBjb21wbGV0 ZXMgKGlzIHJldGlyZWQpLCBpdCB3aWxsCisgKiBzaWduYWwgaXRzIGNvbXBsZXRpb24gdG8gdGhl IG93bmVyIHRocm91Z2ggYSBjYWxsYmFjayBhcyB3ZWxsIGFzIG1hcmsKKyAqIGl0c2VsZiBhcyBp ZGxlIChpOTE1X2dlbV9hY3RpdmUucmVxdWVzdCA9PSBOVUxMKS4gVGhlIG93bmVyCisgKiBjYW4g dGhlbiBwZXJmb3JtIGFueSBhY3Rpb24sIHN1Y2ggYXMgZGVsYXllZCBmcmVlaW5nIG9mIGFuIGFj dGl2ZQorICogcmVzb3VyY2UgaW5jbHVkaW5nIGl0c2VsZi4KKyAqLworc3RydWN0IGk5MTVfZ2Vt X2FjdGl2ZSB7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0OworfTsKKwor c3RhdGljIGlubGluZSB2b2lkCitpOTE1X2dlbV9hY3RpdmVfc2V0KHN0cnVjdCBpOTE1X2dlbV9h Y3RpdmUgKmFjdGl2ZSwKKwkJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVz dCkKK3sKKwlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmYWN0aXZlLT5yZXF1ZXN0LCByZXF1ZXN0 KTsKK30KKworI2RlZmluZSBmb3JfZWFjaF9hY3RpdmUobWFzaywgaWR4KSBcCisJZm9yICg7IG1h c2sgPyBpZHggPSBmZnMobWFzaykgLSAxLCAxIDogMDsgbWFzayAmPSB+KDEgPDwgaWR4KSkKKwog I2VuZGlmIC8qIEk5MTVfR0VNX1JFUVVFU1RfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV90aWxpbmcuYwppbmRleCBhZGViMDYyMWUxZjEuLmZjNzhmNDljNTgxNSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMKQEAgLTI0Miw3ICsyNDIsNyBAQCBpOTE1X2dlbV9z ZXRfdGlsaW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQl9CiAKIAkJ CW9iai0+ZmVuY2VfZGlydHkgPQotCQkJCW9iai0+bGFzdF9mZW5jZWRfcmVxIHx8CisJCQkJb2Jq LT5sYXN0X2ZlbmNlLnJlcXVlc3QgfHwKIAkJCQlvYmotPmZlbmNlX3JlZyAhPSBJOTE1X0ZFTkNF X1JFR19OT05FOwogCiAJCQlvYmotPnRpbGluZ19tb2RlID0gYXJncy0+dGlsaW5nX21vZGU7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKaW5kZXggY2E4YjgyYWI5M2Q2Li45 M2MyZGVhOTBhODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Vz ZXJwdHIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKQEAg LTc0LDcgKzc0LDcgQEAgc3RhdGljIHZvaWQgd2FpdF9yZW5kZXJpbmcoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaikKIAlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5FUzsgaSsr KSB7CiAJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCi0JCXJlcSA9IG9iai0+ bGFzdF9yZWFkX3JlcVtpXTsKKwkJcmVxID0gb2JqLT5sYXN0X3JlYWRbaV0ucmVxdWVzdDsKIAkJ aWYgKHJlcSA9PSBOVUxMKQogCQkJY29udGludWU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dw dV9lcnJvci5jCmluZGV4IDkzNDY2MzE2NmIyOC4uZTY4NzE4MjY1NjE5IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKQEAgLTc0OSw4ICs3NDksOCBAQCBzdGF0aWMgdm9pZCBj YXB0dXJlX2JvKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9idWZmZXIgKmVyciwKIAllcnItPnNpemUg PSBvYmotPmJhc2Uuc2l6ZTsKIAllcnItPm5hbWUgPSBvYmotPmJhc2UubmFtZTsKIAlmb3IgKGkg PSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5FUzsgaSsrKQotCQllcnItPnJzZXFub1tpXSA9IGk5MTVf Z2VtX3JlcXVlc3RfZ2V0X3NlcW5vKG9iai0+bGFzdF9yZWFkX3JlcVtpXSk7Ci0JZXJyLT53c2Vx bm8gPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhvYmotPmxhc3Rfd3JpdGVfcmVxKTsKKwkJ ZXJyLT5yc2Vxbm9baV0gPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhvYmotPmxhc3RfcmVh ZFtpXS5yZXF1ZXN0KTsKKwllcnItPndzZXFubyA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5v KG9iai0+bGFzdF93cml0ZS5yZXF1ZXN0KTsKIAllcnItPmd0dF9vZmZzZXQgPSB2bWEtPm5vZGUu c3RhcnQ7CiAJZXJyLT5yZWFkX2RvbWFpbnMgPSBvYmotPmJhc2UucmVhZF9kb21haW5zOwogCWVy ci0+d3JpdGVfZG9tYWluID0gb2JqLT5iYXNlLndyaXRlX2RvbWFpbjsKQEAgLTc2Miw3ICs3NjIs NyBAQCBzdGF0aWMgdm9pZCBjYXB0dXJlX2JvKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9idWZmZXIg KmVyciwKIAllcnItPmRpcnR5ID0gb2JqLT5kaXJ0eTsKIAllcnItPnB1cmdlYWJsZSA9IG9iai0+ bWFkdiAhPSBJOTE1X01BRFZfV0lMTE5FRUQ7CiAJZXJyLT51c2VycHRyID0gb2JqLT51c2VycHRy Lm1tICE9IE5VTEw7Ci0JZXJyLT5yaW5nID0gb2JqLT5sYXN0X3dyaXRlX3JlcSA/IG9iai0+bGFz dF93cml0ZV9yZXEtPmVuZ2luZS0+aWQgOiAtMTsKKwllcnItPnJpbmcgPSBvYmotPmxhc3Rfd3Jp dGUucmVxdWVzdCA/IG9iai0+bGFzdF93cml0ZS5yZXF1ZXN0LT5lbmdpbmUtPmlkIDogLTE7CiAJ ZXJyLT5jYWNoZV9sZXZlbCA9IG9iai0+Y2FjaGVfbGV2ZWw7CiB9CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwppbmRleCAxNzVhNTUzZGM2YzguLjkyZTdiYzc2Y2NlMCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTE0MjcsNyArMTE0MjcsNyBAQCBzdGF0 aWMgYm9vbCB1c2VfbW1pb19mbGlwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJ CQkJCSAgICAgICBmYWxzZSkpCiAJCXJldHVybiB0cnVlOwogCWVsc2UKLQkJcmV0dXJuIGVuZ2lu ZSAhPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9lbmdpbmUob2JqLT5sYXN0X3dyaXRlX3JlcSk7CisJ CXJldHVybiBlbmdpbmUgIT0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5naW5lKG9iai0+bGFzdF93 cml0ZS5yZXF1ZXN0KTsKIH0KIAogc3RhdGljIHZvaWQgc2tsX2RvX21taW9fZmxpcChzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKQEAgLTExNzI3LDcgKzExNzI3LDcgQEAgc3RhdGljIGlu dCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJfSBlbHNlIGlm IChJU19JVllCUklER0UoZGV2KSB8fCBJU19IQVNXRUxMKGRldikpIHsKIAkJZW5naW5lID0gJmRl dl9wcml2LT5lbmdpbmVbQkNTXTsKIAl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49 IDcpIHsKLQkJZW5naW5lID0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5naW5lKG9iai0+bGFzdF93 cml0ZV9yZXEpOworCQllbmdpbmUgPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9lbmdpbmUob2JqLT5s YXN0X3dyaXRlLnJlcXVlc3QpOwogCQlpZiAoZW5naW5lID09IE5VTEwgfHwgZW5naW5lLT5pZCAh PSBSQ1MpCiAJCQllbmdpbmUgPSAmZGV2X3ByaXYtPmVuZ2luZVtCQ1NdOwogCX0gZWxzZSB7CkBA IC0xMTc0OSw3ICsxMTc0OSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogCQlJTklUX1dPUksoJndvcmstPm1taW9fd29yaywgaW50ZWxf bW1pb19mbGlwX3dvcmtfZnVuYyk7CiAKIAkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJndvcmst PmZsaXBfcXVldWVkX3JlcSwKLQkJCQkJb2JqLT5sYXN0X3dyaXRlX3JlcSk7CisJCQkJCW9iai0+ bGFzdF93cml0ZS5yZXF1ZXN0KTsKIAogCQlzY2hlZHVsZV93b3JrKCZ3b3JrLT5tbWlvX3dvcmsp OwogCX0gZWxzZSB7CkBAIC0xMzk3Miw3ICsxMzk3Miw3IEBAIGludGVsX3ByZXBhcmVfcGxhbmVf ZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUobmV3 X3N0YXRlKTsKIAogCQkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJnBsYW5lX3N0YXRlLT53YWl0 X3JlcSwKLQkJCQkJCW9iai0+bGFzdF93cml0ZV9yZXEpOworCQkJCQkJb2JqLT5sYXN0X3dyaXRl LnJlcXVlc3QpOwogCQl9CiAKIAkJaTkxNV9nZW1fdHJhY2tfZmIob2xkX29iaiwgb2JqLCBpbnRl bF9wbGFuZS0+ZnJvbnRidWZmZXJfYml0KTsKLS0gCjIuOC4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK