From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dongwon Kim Subject: [RFC PATCH 43/60] hyper_dmabuf: fixes on memory leaks in various places Date: Tue, 19 Dec 2017 11:29:59 -0800 Message-ID: <1513711816-2618-43-git-send-email-dongwon.kim@intel.com> References: <1513711816-2618-1-git-send-email-dongwon.kim@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1513711816-2618-1-git-send-email-dongwon.kim@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: linux-kernel@vger.kernel.org Cc: xen-devel@lists.xenproject.org, mateuszx.potrola@intel.com, dri-devel@lists.freedesktop.org, dongwon.kim@intel.com List-Id: dri-devel@lists.freedesktop.org TWFrZSBzdXJlIHRvIGZyZWUgYnVmZmVycyBiZWZvcmUgcmV0dXJuaW5nIHRvIHByZXZlbnQgbWVt b3J5IGxlYWtzCgpTaWduZWQtb2ZmLWJ5OiBEb25nd29uIEtpbSA8ZG9uZ3dvbi5raW1AaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMveGVuL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfaW9jdGwuYyAg ICAgIHwgMTkgKysrKysrKy0KIGRyaXZlcnMveGVuL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZf bXNnLmMgICAgICAgIHwgIDkgKysrLQogZHJpdmVycy94ZW4vaHlwZXJfZG1hYnVmL2h5cGVyX2Rt YWJ1Zl9vcHMuYyAgICAgICAgfCAgNiArKy0KIGRyaXZlcnMveGVuL2h5cGVyX2RtYWJ1Zi9oeXBl cl9kbWFidWZfc2dsX3Byb2MuYyAgIHwgIDQgKy0KIC4uLi94ZW4vaHlwZXJfZG1hYnVmL3hlbi9o eXBlcl9kbWFidWZfeGVuX2NvbW0uYyAgIHwgNTIgKysrKysrKysrKysrKysrKysrKy0tLQogNSBm aWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX2lvY3RsLmMgYi9kcml2 ZXJzL3hlbi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX2lvY3RsLmMKaW5kZXggMjgzZmU1YS4u MzIxNTAwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1 Zl9pb2N0bC5jCisrKyBiL2RyaXZlcnMveGVuL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfaW9j dGwuYwpAQCAtMjgyLDYgKzI4Miw3IEBAIHN0YXRpYyBpbnQgaHlwZXJfZG1hYnVmX2V4cG9ydF9y ZW1vdGVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHZvaWQgKmRhdGEpCiAKIAkvKiBmcmVlIG1z ZyAqLwogCWtmcmVlKHJlcSk7CisKIAkvKiBmcmVlIHBhZ2VfaW5mbyAqLwogCWtmcmVlKHBhZ2Vf aW5mby0+cGFnZXMpOwogCWtmcmVlKHBhZ2VfaW5mbyk7CkBAIC0yOTgsNiArMjk5LDEwIEBAIHN0 YXRpYyBpbnQgaHlwZXJfZG1hYnVmX2V4cG9ydF9yZW1vdGVfaW9jdGwoc3RydWN0IGZpbGUgKmZp bHAsIHZvaWQgKmRhdGEpCiBmYWlsX21hcF9yZXE6CiAJaHlwZXJfZG1hYnVmX3JlbW92ZV9leHBv cnRlZChzZ3RfaW5mby0+aGlkKTsKIAorCS8qIGZyZWUgcGFnZV9pbmZvICovCisJa2ZyZWUocGFn ZV9pbmZvLT5wYWdlcyk7CisJa2ZyZWUocGFnZV9pbmZvKTsKKwogZmFpbF9leHBvcnQ6CiAJa2Zy ZWUoc2d0X2luZm8tPnZhX3ZtYXBwZWQpOwogCkBAIC00MzMsNiArNDM4LDEzIEBAIHN0YXRpYyBp bnQgaHlwZXJfZG1hYnVmX2V4cG9ydF9mZF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdm9pZCAq ZGF0YSkKIAogCQkJc2d0X2luZm8tPm51bV9pbXBvcnRlcnMtLTsKIAkJCXJlcSA9IGtjYWxsb2Mo MSwgc2l6ZW9mKCpyZXEpLCBHRlBfS0VSTkVMKTsKKworCQkJaWYgKCFyZXEpIHsKKwkJCQlkZXZf ZXJyKGh5cGVyX2RtYWJ1Zl9wcml2YXRlLmRldmljZSwKKwkJCQkJIk5vIG1vcmUgc3BhY2UgbGVm dFxuIik7CisJCQkJcmV0dXJuIC1FTk9NRU07CisJCQl9CisKIAkJCWh5cGVyX2RtYWJ1Zl9jcmVh dGVfcmVxdWVzdChyZXEsIEhZUEVSX0RNQUJVRl9FWFBPUlRfRkRfRkFJTEVELCAmb3BlcmFuZHNb MF0pOwogCQkJb3BzLT5zZW5kX3JlcShIWVBFUl9ETUFCVUZfRE9NX0lEKHNndF9pbmZvLT5oaWQp LCByZXEsIGZhbHNlKTsKIAkJCWtmcmVlKHJlcSk7CkBAIC02ODEsMTYgKzY5MywxOSBAQCBsb25n IGh5cGVyX2RtYWJ1Zl9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwKIAogCWlmIChjb3B5X2Zyb21f dXNlcihrZGF0YSwgKHZvaWQgX191c2VyICopcGFyYW0sIF9JT0NfU0laRShjbWQpKSAhPSAwKSB7 CiAJCWRldl9lcnIoaHlwZXJfZG1hYnVmX3ByaXZhdGUuZGV2aWNlLCAiZmFpbGVkIHRvIGNvcHkg ZnJvbSB1c2VyIGFyZ3VtZW50c1xuIik7Ci0JCXJldHVybiAtRUZBVUxUOworCQlyZXQgPSAtRUZB VUxUOworCQlnb3RvIGlvY3RsX2Vycm9yOwogCX0KIAogCXJldCA9IGZ1bmMoZmlscCwga2RhdGEp OwogCiAJaWYgKGNvcHlfdG9fdXNlcigodm9pZCBfX3VzZXIgKilwYXJhbSwga2RhdGEsIF9JT0Nf U0laRShjbWQpKSAhPSAwKSB7CiAJCWRldl9lcnIoaHlwZXJfZG1hYnVmX3ByaXZhdGUuZGV2aWNl LCAiZmFpbGVkIHRvIGNvcHkgdG8gdXNlciBhcmd1bWVudHNcbiIpOwotCQlyZXR1cm4gLUVGQVVM VDsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBpb2N0bF9lcnJvcjsKIAl9CiAKK2lvY3RsX2Vy cm9yOgogCWtmcmVlKGtkYXRhKTsKIAogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJz L3hlbi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX21zZy5jIGIvZHJpdmVycy94ZW4vaHlwZXJf ZG1hYnVmL2h5cGVyX2RtYWJ1Zl9tc2cuYwppbmRleCBjNTE2ZGY4Li40NmNmOWE0IDEwMDY0NAot LS0gYS9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX21zZy5jCisrKyBiL2Ry aXZlcnMveGVuL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFidWZfbXNnLmMKQEAgLTE5MSw4ICsxOTEs NyBAQCBpbnQgaHlwZXJfZG1hYnVmX21zZ19wYXJzZShpbnQgZG9taWQsIHN0cnVjdCBoeXBlcl9k bWFidWZfcmVxICpyZXEpCiAJc3RydWN0IGh5cGVyX2RtYWJ1Zl9yZXEgKnRlbXBfcmVxOwogCXN0 cnVjdCBoeXBlcl9kbWFidWZfaW1wb3J0ZWRfc2d0X2luZm8gKnNndF9pbmZvOwogCXN0cnVjdCBo eXBlcl9kbWFidWZfc2d0X2luZm8gKmV4cF9zZ3RfaW5mbzsKLQloeXBlcl9kbWFidWZfaWRfdCBo aWQgPSB7cmVxLT5vcGVyYW5kc1swXSwgLyogaGlkLmlkICovCi0JCQkgICAgICAge3JlcS0+b3Bl cmFuZHNbMV0sIHJlcS0+b3BlcmFuZHNbMl0sIHJlcS0+b3BlcmFuZHNbM119fTsgLyogaGlkLnJu Z19rZXkgKi8KKwloeXBlcl9kbWFidWZfaWRfdCBoaWQ7CiAJaW50IHJldDsKIAogCWlmICghcmVx KSB7CkBAIC0yMDAsNiArMTk5LDExIEBAIGludCBoeXBlcl9kbWFidWZfbXNnX3BhcnNlKGludCBk b21pZCwgc3RydWN0IGh5cGVyX2RtYWJ1Zl9yZXEgKnJlcSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJ fQogCisJaGlkLmlkID0gcmVxLT5vcGVyYW5kc1swXTsKKwloaWQucm5nX2tleVswXSA9IHJlcS0+ b3BlcmFuZHNbMV07CisJaGlkLnJuZ19rZXlbMV0gPSByZXEtPm9wZXJhbmRzWzJdOworCWhpZC5y bmdfa2V5WzJdID0gcmVxLT5vcGVyYW5kc1szXTsKKwogCWlmICgocmVxLT5jb21tYW5kIDwgSFlQ RVJfRE1BQlVGX0VYUE9SVCkgfHwKIAkJKHJlcS0+Y29tbWFuZCA+IEhZUEVSX0RNQUJVRl9PUFNf VE9fU09VUkNFKSkgewogCQlkZXZfZXJyKGh5cGVyX2RtYWJ1Zl9wcml2YXRlLmRldmljZSwgImlu dmFsaWQgY29tbWFuZFxuIik7CkBAIC0zMzIsNiArMzM2LDcgQEAgaW50IGh5cGVyX2RtYWJ1Zl9t c2dfcGFyc2UoaW50IGRvbWlkLCBzdHJ1Y3QgaHlwZXJfZG1hYnVmX3JlcSAqcmVxKQogCWlmICgh cHJvYykgewogCQlkZXZfZXJyKGh5cGVyX2RtYWJ1Zl9wcml2YXRlLmRldmljZSwKIAkJCSJObyBt ZW1vcnkgbGVmdCB0byBiZSBhbGxvY2F0ZWRcbiIpOworCQlrZnJlZSh0ZW1wX3JlcSk7CiAJCXJl dHVybiAtRU5PTUVNOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vaHlwZXJfZG1hYnVm L2h5cGVyX2RtYWJ1Zl9vcHMuYyBiL2RyaXZlcnMveGVuL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFi dWZfb3BzLmMKaW5kZXggODFjYjA5Zi4uOTMxM2M0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4v aHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9vcHMuYworKysgYi9kcml2ZXJzL3hlbi9oeXBlcl9k bWFidWYvaHlwZXJfZG1hYnVmX29wcy5jCkBAIC0xNDgsOSArMTQ4LDggQEAgc3RhdGljIHN0cnVj dCBzZ190YWJsZSogaHlwZXJfZG1hYnVmX29wc19tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVu dCAqYXR0YWNobWUKIAlpZiAoIXN0KQogCQlnb3RvIGVycl9mcmVlX3NnOwogCi0gICAgICAgIGlm ICghZG1hX21hcF9zZyhhdHRhY2htZW50LT5kZXYsIHN0LT5zZ2wsIHN0LT5uZW50cywgZGlyKSkg eworICAgICAgICBpZiAoIWRtYV9tYXBfc2coYXR0YWNobWVudC0+ZGV2LCBzdC0+c2dsLCBzdC0+ bmVudHMsIGRpcikpCiAgICAgICAgICAgICAgICAgZ290byBlcnJfZnJlZV9zZzsKLSAgICAgICAg fQogCiAJcmV0ID0gaHlwZXJfZG1hYnVmX3N5bmNfcmVxdWVzdChzZ3RfaW5mby0+aGlkLAogCQkJ CQlIWVBFUl9ETUFCVUZfT1BTX01BUCk7CkBAIC0xNzEsNiArMTcwLDkgQEAgc3RhdGljIHN0cnVj dCBzZ190YWJsZSogaHlwZXJfZG1hYnVmX29wc19tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVu dCAqYXR0YWNobWUKIAkJa2ZyZWUoc3QpOwogCX0KIAorCWtmcmVlKHBhZ2VfaW5mby0+cGFnZXMp OworCWtmcmVlKHBhZ2VfaW5mbyk7CisKIAlyZXR1cm4gTlVMTDsKIH0KIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy94ZW4vaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9zZ2xfcHJvYy5jIGIvZHJpdmVy cy94ZW4vaHlwZXJfZG1hYnVmL2h5cGVyX2RtYWJ1Zl9zZ2xfcHJvYy5jCmluZGV4IGMyZDAxM2Eu LmRkMTdkMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2h5cGVyX2RtYWJ1Zi9oeXBlcl9kbWFi dWZfc2dsX3Byb2MuYworKysgYi9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVm X3NnbF9wcm9jLmMKQEAgLTg5LDggKzg5LDEwIEBAIHN0cnVjdCBoeXBlcl9kbWFidWZfcGFnZXNf aW5mbyAqaHlwZXJfZG1hYnVmX2V4dF9wZ3Moc3RydWN0IHNnX3RhYmxlICpzZ3QpCiAJCXJldHVy biBOVUxMOwogCiAJcGluZm8tPnBhZ2VzID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHBhZ2UgKikq aHlwZXJfZG1hYnVmX2dldF9udW1fcGdzKHNndCksIEdGUF9LRVJORUwpOwotCWlmICghcGluZm8t PnBhZ2VzKQorCWlmICghcGluZm8tPnBhZ2VzKSB7CisJCWtmcmVlKHBpbmZvKTsKIAkJcmV0dXJu IE5VTEw7CisJfQogCiAJc2dsID0gc2d0LT5zZ2w7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVu L2h5cGVyX2RtYWJ1Zi94ZW4vaHlwZXJfZG1hYnVmX3hlbl9jb21tLmMgYi9kcml2ZXJzL3hlbi9o eXBlcl9kbWFidWYveGVuL2h5cGVyX2RtYWJ1Zl94ZW5fY29tbS5jCmluZGV4IDQzZGQzYjYuLjk2 ODkzNDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2h5cGVyX2RtYWJ1Zi94ZW4vaHlwZXJfZG1h YnVmX3hlbl9jb21tLmMKKysrIGIvZHJpdmVycy94ZW4vaHlwZXJfZG1hYnVmL3hlbi9oeXBlcl9k bWFidWZfeGVuX2NvbW0uYwpAQCAtMjI5LDkgKzIyOSwxNiBAQCBpbnQgaHlwZXJfZG1hYnVmX3hl bl9pbml0X3R4X3JidWYoaW50IGRvbWlkKQogCiAJcmluZ19pbmZvID0ga21hbGxvYyhzaXplb2Yo KnJpbmdfaW5mbyksIEdGUF9LRVJORUwpOwogCisJaWYgKCFyaW5nX2luZm8pIHsKKwkJZGV2X2Vy cihoeXBlcl9kbWFidWZfcHJpdmF0ZS5kZXZpY2UsCisJCQkiTm8gbW9yZSBzcGFlIGxlZnRcbiIp OworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKIAkvKiBmcm9tIGV4cG9ydGVyIHRvIGltcG9ydGVy ICovCiAJc2hhcmVkX3JpbmcgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwg MSk7CiAJaWYgKHNoYXJlZF9yaW5nID09IDApIHsKKwkJa2ZyZWUocmluZ19pbmZvKTsKIAkJcmV0 dXJuIC1FTk9NRU07CiAJfQogCkBAIC0yNDYsNiArMjUzLDcgQEAgaW50IGh5cGVyX2RtYWJ1Zl94 ZW5faW5pdF90eF9yYnVmKGludCBkb21pZCkKIAkJCQkJCQkgICAwKTsKIAlpZiAocmluZ19pbmZv LT5ncmVmX3JpbmcgPCAwKSB7CiAJCS8qIGZhaWwgdG8gZ2V0IGdyZWYgKi8KKwkJa2ZyZWUocmlu Z19pbmZvKTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQogCkBAIC0yNTYsNiArMjY0LDcgQEAgaW50 IGh5cGVyX2RtYWJ1Zl94ZW5faW5pdF90eF9yYnVmKGludCBkb21pZCkKIAlpZiAocmV0KSB7CiAJ CWRldl9lcnIoaHlwZXJfZG1hYnVmX3ByaXZhdGUuZGV2aWNlLAogCQkJIkNhbm5vdCBhbGxvY2F0 ZSBldmVudCBjaGFubmVsXG4iKTsKKwkJa2ZyZWUocmluZ19pbmZvKTsKIAkJcmV0dXJuIC1FSU87 CiAJfQogCkBAIC0yNzEsNiArMjgwLDcgQEAgaW50IGh5cGVyX2RtYWJ1Zl94ZW5faW5pdF90eF9y YnVmKGludCBkb21pZCkKIAkJSFlQRVJWSVNPUl9ldmVudF9jaGFubmVsX29wKEVWVENITk9QX2Ns b3NlLCAmY2xvc2UpOwogCQlnbnR0YWJfZW5kX2ZvcmVpZ25fYWNjZXNzKHJpbmdfaW5mby0+Z3Jl Zl9yaW5nLCAwLAogCQkJCQl2aXJ0X3RvX21mbihzaGFyZWRfcmluZykpOworCQlrZnJlZShyaW5n X2luZm8pOwogCQlyZXR1cm4gLUVJTzsKIAl9CiAKQEAgLTI5OSw2ICszMDksMTQgQEAgaW50IGh5 cGVyX2RtYWJ1Zl94ZW5faW5pdF90eF9yYnVmKGludCBkb21pZCkKIAkgKi8KIAlyaW5nX2luZm8t PndhdGNoLmNhbGxiYWNrID0gcmVtb3RlX2RvbV9leHBvcnRlcl93YXRjaF9jYjsKIAlyaW5nX2lu Zm8tPndhdGNoLm5vZGUgPSAoY29uc3QgY2hhciopIGttYWxsb2Moc2l6ZW9mKGNoYXIpICogMjU1 LCBHRlBfS0VSTkVMKTsKKworCWlmICghcmluZ19pbmZvLT53YXRjaC5ub2RlKSB7CisJCWRldl9l cnIoaHlwZXJfZG1hYnVmX3ByaXZhdGUuZGV2aWNlLAorCQkJIk5vIG1vcmUgc3BhY2UgbGVmdFxu Iik7CisJCWtmcmVlKHJpbmdfaW5mbyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwogCXNwcmlu dGYoKGNoYXIqKXJpbmdfaW5mby0+d2F0Y2gubm9kZSwKIAkJIi9sb2NhbC9kb21haW4vJWQvZGF0 YS9oeXBlcl9kbWFidWYvJWQvcG9ydCIsCiAJCWRvbWlkLCBoeXBlcl9kbWFidWZfeGVuX2dldF9k b21pZCgpKTsKQEAgLTM5Miw4ICs0MTAsMTYgQEAgaW50IGh5cGVyX2RtYWJ1Zl94ZW5faW5pdF9y eF9yYnVmKGludCBkb21pZCkKIAogCW1hcF9vcHMgPSBrbWFsbG9jKHNpemVvZigqbWFwX29wcyks IEdGUF9LRVJORUwpOwogCisJaWYgKCFtYXBfb3BzKSB7CisJCWRldl9lcnIoaHlwZXJfZG1hYnVm X3ByaXZhdGUuZGV2aWNlLAorCQkJIk5vIG1lbW9yeSBsZWZ0IHRvIGJlIGFsbG9jYXRlZFxuIik7 CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZmFpbF9ub19tYXBfb3BzOworCX0KKwogCWlmIChn bnR0YWJfYWxsb2NfcGFnZXMoMSwgJnNoYXJlZF9yaW5nKSkgewotCQlyZXR1cm4gLUVOT01FTTsK KwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBmYWlsX290aGVyczsKIAl9CiAKIAlnbnR0YWJfc2V0 X21hcF9vcCgmbWFwX29wc1swXSwgKHVuc2lnbmVkIGxvbmcpcGZuX3RvX2thZGRyKHBhZ2VfdG9f cGZuKHNoYXJlZF9yaW5nKSksCkBAIC00MDUsMTIgKzQzMSwxNCBAQCBpbnQgaHlwZXJfZG1hYnVm X3hlbl9pbml0X3J4X3JidWYoaW50IGRvbWlkKQogCXJldCA9IGdudHRhYl9tYXBfcmVmcyhtYXBf b3BzLCBOVUxMLCAmc2hhcmVkX3JpbmcsIDEpOwogCWlmIChyZXQgPCAwKSB7CiAJCWRldl9lcnIo aHlwZXJfZG1hYnVmX3ByaXZhdGUuZGV2aWNlLCAiQ2Fubm90IG1hcCByaW5nXG4iKTsKLQkJcmV0 dXJuIC1FRkFVTFQ7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gZmFpbF9vdGhlcnM7CiAJfQog CiAJaWYgKG1hcF9vcHNbMF0uc3RhdHVzKSB7CiAJCWRldl9lcnIoaHlwZXJfZG1hYnVmX3ByaXZh dGUuZGV2aWNlLCAiUmluZyBtYXBwaW5nIGZhaWxlZFxuIik7Ci0JCXJldHVybiAtRUZBVUxUOwor CQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIGZhaWxfb3RoZXJzOwogCX0gZWxzZSB7CiAJCXJpbmdf aW5mby0+dW5tYXBfb3AuaGFuZGxlID0gbWFwX29wc1swXS5oYW5kbGU7CiAJfQpAQCAtNDI0LDcg KzQ1Miw4IEBAIGludCBoeXBlcl9kbWFidWZfeGVuX2luaXRfcnhfcmJ1ZihpbnQgZG9taWQpCiAJ cmV0ID0gYmluZF9pbnRlcmRvbWFpbl9ldnRjaG5fdG9faXJxKGRvbWlkLCByeF9wb3J0KTsKIAog CWlmIChyZXQgPCAwKSB7Ci0JCXJldHVybiAtRUlPOworCQlyZXQgPSAtRUlPOworCQlnb3RvIGZh aWxfb3RoZXJzOwogCX0KIAogCXJpbmdfaW5mby0+aXJxID0gcmV0OwpAQCAtNDQ1LDYgKzQ3NCwx MiBAQCBpbnQgaHlwZXJfZG1hYnVmX3hlbl9pbml0X3J4X3JidWYoaW50IGRvbWlkKQogCQkJICBi YWNrX3JpbmdfaXNyLCAwLAogCQkJICBOVUxMLCAodm9pZCopcmluZ19pbmZvKTsKIAorZmFpbF9v dGhlcnM6CisJa2ZyZWUobWFwX29wcyk7CisKK2ZhaWxfbm9fbWFwX29wczoKKwlrZnJlZShyaW5n X2luZm8pOworCiAJcmV0dXJuIHJldDsKIH0KIApAQCAtNTIwLDE1ICs1NTUsMjIgQEAgaW50IGh5 cGVyX2RtYWJ1Zl94ZW5fc2VuZF9yZXEoaW50IGRvbWlkLCBzdHJ1Y3QgaHlwZXJfZG1hYnVmX3Jl cSAqcmVxLCBpbnQgd2FpdCkKIAkJcmV0dXJuIC1FTk9FTlQ7CiAJfQogCi0KIAltdXRleF9sb2Nr KCZyaW5nX2luZm8tPmxvY2spOwogCiAJcmluZyA9ICZyaW5nX2luZm8tPnJpbmdfZnJvbnQ7CiAK IAl3aGlsZSAoUklOR19GVUxMKHJpbmcpKSB7CisJCWlmICh0aW1lb3V0ID09IDApIHsKKwkJCWRl dl9lcnIoaHlwZXJfZG1hYnVmX3ByaXZhdGUuZGV2aWNlLAorCQkJCSJUaW1lb3V0IHdoaWxlIHdh aXRpbmcgZm9yIGFuIGVudHJ5IGluIHRoZSByaW5nXG4iKTsKKwkJCXJldHVybiAtRUlPOworCQl9 CiAJCXVzbGVlcF9yYW5nZSgxMDAsIDEyMCk7CisJCXRpbWVvdXQtLTsKIAl9CiAKKwl0aW1lb3V0 ID0gMTAwMDsKKwogCW5ld19yZXEgPSBSSU5HX0dFVF9SRVFVRVNUKHJpbmcsIHJpbmctPnJlcV9w cm9kX3B2dCk7CiAJaWYgKCFuZXdfcmVxKSB7CiAJCW11dGV4X3VubG9jaygmcmluZ19pbmZvLT5s b2NrKTsKLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVj dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1k ZXZlbA==