From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiaoguang Chen Subject: [PATCH v6 6/6] drm/i915/gvt: Adding interface so user space can get the dma-buf Date: Sat, 27 May 2017 16:38:52 +0800 Message-ID: <1495874332-2851-7-git-send-email-xiaoguang.chen@intel.com> References: <1495874332-2851-1-git-send-email-xiaoguang.chen@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1495874332-2851-1-git-send-email-xiaoguang.chen@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: alex.williamson@redhat.com, kraxel@redhat.com, chris@chris-wilson.co.uk, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, zhenyuw@linux.intel.com, zhiyuan.lv@intel.com, intel-gvt-dev@lists.freedesktop.org, zhi.a.wang@intel.com, kevin.tian@intel.com Cc: Xiaoguang Chen List-Id: intel-gfx@lists.freedesktop.org VXNlciBzcGFjZSBzaG91bGQgY3JlYXRlIHRoZSBtYW5hZ2VtZW50IGZkIGZvciB0aGUgZG1hLWJ1 ZiBvcGVyYXRpb24gZmlyc3QuClRoZW4gdXNlciBjYW4gcXVlcnkgdGhlIHBsYW5lIGluZm9ybWF0 aW9uIGFuZCBjcmVhdGUgZG1hLWJ1ZiBpZiBuZWNlc3NhcnkKdXNpbmcgdGhlIG1hbmFnZW1lbnQg ZmQuCgpTaWduZWQtb2ZmLWJ5OiBYaWFvZ3VhbmcgQ2hlbiA8eGlhb2d1YW5nLmNoZW5AaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9kbWFidWYuYyB8ICAxMiArKysrCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZG1hYnVmLmggfCAgIDUgKysKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d2dC9ndnQuYyAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0 LmggICAgfCAgIDUgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jICB8IDE0NCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Z0L3ZncHUuYyAgIHwgICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgMTY5IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZG1hYnVmLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZG1hYnVmLmMKaW5kZXggYzgzMWU5MS4uOTc1OWU5YSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2RtYWJ1Zi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9kbWFidWYuYwpAQCAtMjI2LDYgKzIyNiw3IEBAIGludCBpbnRlbF92 Z3B1X2NyZWF0ZV9kbWFidWYoc3RydWN0IGludGVsX3ZncHUgKnZncHUsIHZvaWQgKmFyZ3MpCiAJ c3RydWN0IHZmaW9fdmdwdV9kbWFidWZfaW5mbyAqZ3Z0X2RtYWJ1ZiA9IGFyZ3M7CiAJc3RydWN0 IGludGVsX3ZncHVfZmJfaW5mbyAqZmJfaW5mbzsKIAlpbnQgcmV0OworCXN0cnVjdCBpbnRlbF92 Z3B1X2RtYWJ1Zl9vYmogKmRtYWJ1Zl9vYmo7CiAKIAlyZXQgPSBpbnRlbF92Z3B1X2dldF9wbGFu ZV9pbmZvKGRldiwgdmdwdSwgJmd2dF9kbWFidWYtPnBsYW5lX2luZm8pOwogCWlmIChyZXQgIT0g MCkKQEAgLTI2Myw2ICsyNjQsMTcgQEAgaW50IGludGVsX3ZncHVfY3JlYXRlX2RtYWJ1ZihzdHJ1 Y3QgaW50ZWxfdmdwdSAqdmdwdSwgdm9pZCAqYXJncykKIAkJZ3Z0X3ZncHVfZXJyKCJjcmVhdGUg ZG1hLWJ1ZiBmZCBmYWlsZWQgcmV0OiVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KKwlk bWFidWZfb2JqID0ga21hbGxvYyhzaXplb2YoKmRtYWJ1Zl9vYmopLCBHRlBfS0VSTkVMKTsKKwlp ZiAoZG1hYnVmX29iaiA9PSBOVUxMKSB7CisJCWtmcmVlKGZiX2luZm8pOworCQlpOTE1X2dlbV9v YmplY3RfcHV0KG9iaik7CisJCWd2dF92Z3B1X2VycigiYWxsb2MgZG1hYnVmX29iaiBmYWlsZWRc biIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJZG1hYnVmX29iai0+b2JqID0gb2JqOworCUlO SVRfTElTVF9IRUFEKCZkbWFidWZfb2JqLT5saXN0KTsKKwlsaXN0X2FkZF90YWlsKCZkbWFidWZf b2JqLT5saXN0LCAmdmdwdS0+ZG1hYnVmX29ial9saXN0X2hlYWQpOworCiAJZ3Z0X2RtYWJ1Zi0+ ZmQgPSByZXQ7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d2dC9kbWFidWYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9kbWFidWYuaAppbmRleCA4 YmU5OTc5Li5jYWZhNzgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZG1h YnVmLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2RtYWJ1Zi5oCkBAIC0zMSw2ICsz MSwxMSBAQCBzdHJ1Y3QgaW50ZWxfdmdwdV9mYl9pbmZvIHsKIAl1aW50MzJfdCBmYl9zaXplOwog fTsKIAorc3RydWN0IGludGVsX3ZncHVfZG1hYnVmX29iaiB7CisJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iajsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cit9OworCiBpbnQgaW50ZWxf dmdwdV9xdWVyeV9wbGFuZShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSwgdm9pZCAqYXJncyk7CiBp bnQgaW50ZWxfdmdwdV9jcmVhdGVfZG1hYnVmKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LCB2b2lk ICphcmdzKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jCmluZGV4IDIwMzI5MTcuLmRiYzNmODYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndnQvZ3Z0LmMKQEAgLTU0LDYgKzU0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBpbnRlbF9ndnRfb3BzIGludGVsX2d2dF9vcHMgPSB7CiAJLnZncHVfcmVzZXQgPSBpbnRlbF9n dnRfcmVzZXRfdmdwdSwKIAkudmdwdV9hY3RpdmF0ZSA9IGludGVsX2d2dF9hY3RpdmF0ZV92Z3B1 LAogCS52Z3B1X2RlYWN0aXZhdGUgPSBpbnRlbF9ndnRfZGVhY3RpdmF0ZV92Z3B1LAorCS52Z3B1 X3F1ZXJ5X3BsYW5lID0gaW50ZWxfdmdwdV9xdWVyeV9wbGFuZSwKKwkudmdwdV9jcmVhdGVfZG1h YnVmID0gaW50ZWxfdmdwdV9jcmVhdGVfZG1hYnVmLAogfTsKIAogLyoqCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQv Z3Z0LmgKaW5kZXggNzYzYThjNS4uYTg1NTc5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Z0L2d2dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaApAQCAt MTg1LDggKzE4NSwxMSBAQCBzdHJ1Y3QgaW50ZWxfdmdwdSB7CiAJCXN0cnVjdCBrdm0gKmt2bTsK IAkJc3RydWN0IHdvcmtfc3RydWN0IHJlbGVhc2Vfd29yazsKIAkJYXRvbWljX3QgcmVsZWFzZWQ7 CisJCXN0cnVjdCB2ZmlvX2RldmljZSAqdmZpb19kZXZpY2U7CiAJfSB2ZGV2OwogI2VuZGlmCisJ aW50IGRtYWJ1Zl9tZ3JfZmQ7CisJc3RydWN0IGxpc3RfaGVhZCBkbWFidWZfb2JqX2xpc3RfaGVh ZDsKIH07CiAKIHN0cnVjdCBpbnRlbF9ndnRfZ20gewpAQCAtNDY3LDYgKzQ3MCw4IEBAIHN0cnVj dCBpbnRlbF9ndnRfb3BzIHsKIAl2b2lkICgqdmdwdV9yZXNldCkoc3RydWN0IGludGVsX3ZncHUg Kik7CiAJdm9pZCAoKnZncHVfYWN0aXZhdGUpKHN0cnVjdCBpbnRlbF92Z3B1ICopOwogCXZvaWQg KCp2Z3B1X2RlYWN0aXZhdGUpKHN0cnVjdCBpbnRlbF92Z3B1ICopOworCWludCAoKnZncHVfcXVl cnlfcGxhbmUpKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LCB2b2lkICopOworCWludCAoKnZncHVf Y3JlYXRlX2RtYWJ1Zikoc3RydWN0IGludGVsX3ZncHUgKnZncHUsIHZvaWQgKik7CiB9OwogCiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L2t2bWd0LmMKaW5kZXggMzg5ZjA3Mi4uYTA3OTA4MCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Z0L2t2bWd0LmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9rdm1f aG9zdC5oPgogI2luY2x1ZGUgPGxpbnV4L3ZmaW8uaD4KICNpbmNsdWRlIDxsaW51eC9tZGV2Lmg+ CisjaW5jbHVkZSA8bGludXgvYW5vbl9pbm9kZXMuaD4KIAogI2luY2x1ZGUgImk5MTVfZHJ2Lmgi CiAjaW5jbHVkZSAiZ3Z0LmgiCkBAIC01MjQsNiArNTI1LDEyNSBAQCBzdGF0aWMgaW50IGludGVs X3ZncHVfcmVnX2luaXRfb3ByZWdpb24oc3RydWN0IGludGVsX3ZncHUgKnZncHUpCiAJcmV0dXJu IHJldDsKIH0KIAorc3RhdGljIGludCBrdm1ndF9nZXRfdmZpb19kZXZpY2Uoc3RydWN0IGludGVs X3ZncHUgKnZncHUpCit7CisJc3RydWN0IHZmaW9fZGV2aWNlICpkZXZpY2U7CisKKwlkZXZpY2Ug PSB2ZmlvX2RldmljZV9nZXRfZnJvbV9kZXYobWRldl9kZXYodmdwdS0+dmRldi5tZGV2KSk7CisJ aWYgKGRldmljZSA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT0RFVjsKKwl2Z3B1LT52ZGV2LnZmaW9f ZGV2aWNlID0gZGV2aWNlOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGt2bWd0X3B1 dF92ZmlvX2RldmljZShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSkKK3sKKwl2ZmlvX2RldmljZV9w dXQodmdwdS0+dmRldi52ZmlvX2RldmljZSk7Cit9CisKK3N0YXRpYyBpbnQgaW50ZWxfdmdwdV9k bWFidWZfbWdyX2ZkX21tYXAoc3RydWN0IGZpbGUgKmZpbGUsCisJCXN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hKQoreworCXJldHVybiAtRVBFUk07Cit9CisKK3N0YXRpYyBpbnQgaW50ZWxfdmdw dV9kbWFidWZfbWdyX2ZkX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwKKwkJc3RydWN0IGZp bGUgKmZpbHApCit7CisJc3RydWN0IGludGVsX3ZncHUgKnZncHUgPSBmaWxwLT5wcml2YXRlX2Rh dGE7CisJc3RydWN0IGludGVsX3ZncHVfZG1hYnVmX29iaiAqb2JqOworCXN0cnVjdCBsaXN0X2hl YWQgKnBvczsKKworCWlmIChXQVJOX09OKCF2Z3B1LT52ZGV2LnZmaW9fZGV2aWNlKSkKKwkJcmV0 dXJuIC1FTk9ERVY7CisKKwlsaXN0X2Zvcl9lYWNoKHBvcywgJnZncHUtPmRtYWJ1Zl9vYmpfbGlz dF9oZWFkKSB7CisJCW9iaiA9IGNvbnRhaW5lcl9vZihwb3MsIHN0cnVjdCBpbnRlbF92Z3B1X2Rt YWJ1Zl9vYmosIGxpc3QpOworCQlpZiAoV0FSTl9PTighb2JqKSkKKwkJCXJldHVybiAtRU5PREVW OworCQlrZnJlZShvYmotPm9iai0+Z3Z0X2luZm8pOworCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9i ai0+b2JqKTsKKwkJa2ZyZWUob2JqKTsKKwkJa3ZtZ3RfcHV0X3ZmaW9fZGV2aWNlKHZncHUpOwor CX0KKwlrdm1ndF9wdXRfdmZpb19kZXZpY2UodmdwdSk7CisKKwlyZXR1cm4gMDsKK30KKworc3Rh dGljIGxvbmcgaW50ZWxfdmdwdV9kbWFidWZfbWdyX2ZkX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxw LAorCQl1bnNpZ25lZCBpbnQgaW9jdGwsIHVuc2lnbmVkIGxvbmcgYXJnKQoreworCXN0cnVjdCBp bnRlbF92Z3B1ICp2Z3B1ID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCWludCBtaW5zejsKKwlpbnQg cmV0OworCXN0cnVjdCBmZCBmOworCisJZiA9IGZkZ2V0KHZncHUtPmRtYWJ1Zl9tZ3JfZmQpOwor CWlmICghZi5maWxlKQorCQlyZXR1cm4gLUVCQURGOworCisJaWYgKGlvY3RsID09IFZGSU9fREVW SUNFX1FVRVJZX1BMQU5FKSB7CisJCXN0cnVjdCB2ZmlvX3ZncHVfcGxhbmVfaW5mbyBpbmZvOwor CisJCW1pbnN6ID0gb2Zmc2V0b2ZlbmQoc3RydWN0IHZmaW9fdmdwdV9wbGFuZV9pbmZvLCByZXN2 KTsKKwkJaWYgKGNvcHlfZnJvbV91c2VyKCZpbmZvLCAodm9pZCBfX3VzZXIgKilhcmcsIG1pbnN6 KSkgeworCQkJZmRwdXQoZik7CisJCQlyZXR1cm4gLUVGQVVMVDsKKwkJfQorCQlpZiAoaW5mby5h cmdzeiA8IG1pbnN6KSB7CisJCQlmZHB1dChmKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJ CXJldCA9IGludGVsX2d2dF9vcHMtPnZncHVfcXVlcnlfcGxhbmUodmdwdSwgJmluZm8pOworCQlp ZiAocmV0ICE9IDApIHsKKwkJCWZkcHV0KGYpOworCQkJZ3Z0X3ZncHVfZXJyKCJxdWVyeSBwbGFu ZSBmYWlsZWQ6JWRcbiIsIHJldCk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlmZHB1dChm KTsKKwkJcmV0dXJuIGNvcHlfdG9fdXNlcigodm9pZCBfX3VzZXIgKilhcmcsICZpbmZvLCBtaW5z eikgPworCQkJCQkJCQktRUZBVUxUIDogMDsKKwl9IGVsc2UgaWYgKGlvY3RsID09IFZGSU9fREVW SUNFX0NSRUFURV9ETUFCVUYpIHsKKwkJc3RydWN0IHZmaW9fdmdwdV9kbWFidWZfaW5mbyBkbWFi dWY7CisKKwkJbWluc3ogPSBvZmZzZXRvZmVuZChzdHJ1Y3QgdmZpb192Z3B1X2RtYWJ1Zl9pbmZv LCByZXN2KTsKKwkJaWYgKGNvcHlfZnJvbV91c2VyKCZkbWFidWYsICh2b2lkIF9fdXNlciAqKWFy ZywgbWluc3opKSB7CisJCQlmZHB1dChmKTsKKwkJCXJldHVybiAtRUZBVUxUOworCQl9CisJCWlm IChkbWFidWYuYXJnc3ogPCBtaW5zeikgeworCQkJZmRwdXQoZik7CisJCQlyZXR1cm4gLUVJTlZB TDsKKwkJfQorCQlyZXQgPSBrdm1ndF9nZXRfdmZpb19kZXZpY2UodmdwdSk7CisJCWlmIChyZXQg IT0gMCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0ID0gaW50ZWxfZ3Z0X29wcy0+dmdwdV9jcmVh dGVfZG1hYnVmKHZncHUsICZkbWFidWYpOworCQlpZiAocmV0ICE9IDApIHsKKwkJCWt2bWd0X3B1 dF92ZmlvX2RldmljZSh2Z3B1KTsKKwkJCWZkcHV0KGYpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJ CX0KKwkJZmRwdXQoZik7CisJCXJldHVybiBjb3B5X3RvX3VzZXIoKHZvaWQgX191c2VyICopYXJn LCAmZG1hYnVmLCBtaW5zeikgPworCQkJCQkJCQktRUZBVUxUIDogMDsKKwl9CisKKwlmZHB1dChm KTsKKwlndnRfdmdwdV9lcnIoInVuc3VwcG9ydGVkIGRtYWJ1ZiBvcGVyYXRpb25cbiIpOworCisJ cmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25z IGludGVsX3ZncHVfZG1hYnVmX21ncl9mZF9vcHMgPSB7CisJLnJlbGVhc2UgICAgICAgID0gaW50 ZWxfdmdwdV9kbWFidWZfbWdyX2ZkX3JlbGVhc2UsCisJLnVubG9ja2VkX2lvY3RsID0gaW50ZWxf dmdwdV9kbWFidWZfbWdyX2ZkX2lvY3RsLAorCS5tbWFwICAgICAgICAgICA9IGludGVsX3ZncHVf ZG1hYnVmX21ncl9mZF9tbWFwLAorCS5sbHNlZWsgICAgICAgICA9IG5vb3BfbGxzZWVrLAorfTsK IHN0YXRpYyBpbnQgaW50ZWxfdmdwdV9jcmVhdGUoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVj dCBtZGV2X2RldmljZSAqbWRldikKIHsKIAlzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSA9IE5VTEw7 CkBAIC0xMjU5LDYgKzEzNzksMzAgQEAgc3RhdGljIGxvbmcgaW50ZWxfdmdwdV9pb2N0bChzdHJ1 Y3QgbWRldl9kZXZpY2UgKm1kZXYsIHVuc2lnbmVkIGludCBjbWQsCiAJfSBlbHNlIGlmIChjbWQg PT0gVkZJT19ERVZJQ0VfUkVTRVQpIHsKIAkJaW50ZWxfZ3Z0X29wcy0+dmdwdV9yZXNldCh2Z3B1 KTsKIAkJcmV0dXJuIDA7CisJfSBlbHNlIGlmIChjbWQgPT0gVkZJT19ERVZJQ0VfR0VUX0ZEKSB7 CisJCWludCBmZDsKKwkJdTMyIHR5cGU7CisJCWludCByZXQ7CisKKwkJaWYgKGNvcHlfZnJvbV91 c2VyKCZ0eXBlLCAodm9pZCBfX3VzZXIgKilhcmcsIHNpemVvZih0eXBlKSkpCisJCQlyZXR1cm4g LUVJTlZBTDsKKwkJaWYgKHR5cGUgIT0gVkZJT19ERVZJQ0VfRE1BQlVGX01HUl9GRCkKKwkJCXJl dHVybiAtRUlOVkFMOworCisJCXJldCA9IGt2bWd0X2dldF92ZmlvX2RldmljZSh2Z3B1KTsKKwkJ aWYgKHJldCAhPSAwKQorCQkJcmV0dXJuIHJldDsKKworCQlmZCA9IGFub25faW5vZGVfZ2V0ZmQo ImludGVsLXZncHUtZG1hYnVmLW1nci1mZCIsCisJCQkmaW50ZWxfdmdwdV9kbWFidWZfbWdyX2Zk X29wcywKKwkJCXZncHUsIE9fUkRXUiB8IE9fQ0xPRVhFQyk7CisJCWlmIChmZCA8IDApIHsKKwkJ CWd2dF92Z3B1X2VycigiY3JlYXRlIGRtYWJ1ZiBtZ3IgZmQgZmFpbGVkXG4iKTsKKwkJCXJldHVy biAtRUlOVkFMOworCQl9CisJCXZncHUtPmRtYWJ1Zl9tZ3JfZmQgPSBmZDsKKworCQlyZXR1cm4g ZmQ7CiAJfQogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dnQvdmdwdS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3ZncHUuYwppbmRleCA2ZTNjYmQ4 Li5hZjZmYzc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvdmdwdS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC92Z3B1LmMKQEAgLTM0Niw2ICszNDYsNyBAQCBz dGF0aWMgc3RydWN0IGludGVsX3ZncHUgKl9faW50ZWxfZ3Z0X2NyZWF0ZV92Z3B1KHN0cnVjdCBp bnRlbF9ndnQgKmd2dCwKIAl2Z3B1LT5ndnQgPSBndnQ7CiAJdmdwdS0+c2NoZWRfY3RsLndlaWdo dCA9IHBhcmFtLT53ZWlnaHQ7CiAJYml0bWFwX3plcm8odmdwdS0+dGxiX2hhbmRsZV9wZW5kaW5n LCBJOTE1X05VTV9FTkdJTkVTKTsKKwlJTklUX0xJU1RfSEVBRCgmdmdwdS0+ZG1hYnVmX29ial9s aXN0X2hlYWQpOwogCiAJaW50ZWxfdmdwdV9pbml0X2NmZ19zcGFjZSh2Z3B1LCBwYXJhbS0+cHJp bWFyeSk7CiAKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK