From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH libdrm] nouveau: Support fence FDs Date: Thu, 11 Jan 2018 23:24:47 +0100 Message-ID: <20180111222447.29455-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkFkZCBhIG5ldyBub3V2 ZWF1X3B1c2hidWZfa2lja19mZW5jZSgpIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYW5kIGVtaXRzIGEK c3luYyBmZW5jZSBGRC4gVGhlIGZlbmNlIEZEIGNhbiBiZSB3YWl0ZWQgb24sIG9yIG1lcmdlZCB3 aXRoIG90aGVyIGZlbmNlCkZEcywgb3IgcGFzc2VkIGJhY2sgdG8gdGhlIGtlcm5lbCBhcyBhIHBy ZXJlcXVpc2l0ZSBmb3IgYSBzdWJzZXF1ZW50IEhXCm9wZXJhdGlvbi4KCkJhc2VkIGhlYXZpbHkg b24gd29yayBieSBMYXVyaSBQZWx0b25lbiA8bHBlbHRvbmVuQG52aWRpYS5jb20+CgpTaWduZWQt b2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgotLS0KRm9yIHRoZSBr ZXJuZWwgcGF0Y2hlcyB0aGF0IGFkZCB0aGUgbmV3IElPQ1RMLCBzZWUgdGhlIHNlcmllcyBhdDoK CglodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvc2VyaWVzLzM2MzYxLwoKIGluY2x1 ZGUvZHJtL25vdXZlYXVfZHJtLmggfCAgMjMgKysrKysrKysKIG5vdXZlYXUvbm91dmVhdS5oICAg ICAgICAgfCAgIDIgKwogbm91dmVhdS9wdXNoYnVmLmMgICAgICAgICB8IDEzMCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDEy MSBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Ry bS9ub3V2ZWF1X2RybS5oIGIvaW5jbHVkZS9kcm0vbm91dmVhdV9kcm0uaAppbmRleCBjYjA3Nzgy MWM0M2YuLmU3ZjFhMmFlZmQyMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vbm91dmVhdV9kcm0u aAorKysgYi9pbmNsdWRlL2RybS9ub3V2ZWF1X2RybS5oCkBAIC0xNzgsNiArMTc4LDI4IEBAIHN0 cnVjdCBkcm1fbm91dmVhdV9nZW1fcHVzaGJ1ZiB7CiAJX191NjQgZ2FydF9hdmFpbGFibGU7CiB9 OwogCisjZGVmaW5lIE5PVVZFQVVfR0VNX1BVU0hCVUZfRkVOQ0VfV0FJVCAoMSA8PCAwKQorI2Rl ZmluZSBOT1VWRUFVX0dFTV9QVVNIQlVGX0ZFTkNFX0VNSVQgKDEgPDwgMSkKKyNkZWZpbmUgTk9V VkVBVV9HRU1fUFVTSEJVRl9GTEFHUyAoTk9VVkVBVV9HRU1fUFVTSEJVRl9GRU5DRV9XQUlUIHwg XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOT1VWRUFVX0dFTV9QVVNIQlVG X0ZFTkNFX0VNSVQpCisKK3N0cnVjdCBkcm1fbm91dmVhdV9nZW1fcHVzaGJ1ZjIgeworICAgIHVp bnQzMl90IGNoYW5uZWw7CisgICAgdWludDMyX3QgbnJfYnVmZmVyczsKKyAgICB1aW50NjRfdCBi dWZmZXJzOworICAgIHVpbnQzMl90IG5yX3JlbG9jczsKKyAgICB1aW50MzJfdCBucl9wdXNoOwor ICAgIHVpbnQ2NF90IHJlbG9jczsKKyAgICB1aW50NjRfdCBwdXNoOworICAgIHVpbnQzMl90IHN1 ZmZpeDA7CisgICAgdWludDMyX3Qgc3VmZml4MTsKKyAgICB1aW50NjRfdCB2cmFtX2F2YWlsYWJs ZTsKKyAgICB1aW50NjRfdCBnYXJ0X2F2YWlsYWJsZTsKKyAgICB1aW50MzJfdCBmbGFnczsKKyAg ICBpbnQzMl90IGZlbmNlOworICAgIHVpbnQ2NF90IHJlc2VydmVkOworfTsKKwogI2RlZmluZSBO T1VWRUFVX0dFTV9DUFVfUFJFUF9OT1dBSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMDAwMDAwMQogI2RlZmluZSBOT1VWRUFVX0dFTV9DUFVfUFJFUF9OT0JMT0NLICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMgogI2RlZmluZSBOT1VWRUFVX0dF TV9DUFVfUFJFUF9XUklURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAw MDAwNApAQCAtMjEyLDYgKzIzNCw3IEBAIHN0cnVjdCBkcm1fbm91dmVhdV9zYXJlYSB7CiAjZGVm aW5lIERSTV9OT1VWRUFVX0dFTV9DUFVfUFJFUCAgICAgICAweDQyCiAjZGVmaW5lIERSTV9OT1VW RUFVX0dFTV9DUFVfRklOSSAgICAgICAweDQzCiAjZGVmaW5lIERSTV9OT1VWRUFVX0dFTV9JTkZP ICAgICAgICAgICAweDQ0CisjZGVmaW5lIERSTV9OT1VWRUFVX0dFTV9QVVNIQlVGMiAgICAgICAw eDQ1CiAKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfQpkaWZmIC0tZ2l0IGEvbm91dmVhdS9u b3V2ZWF1LmggYi9ub3V2ZWF1L25vdXZlYXUuaAppbmRleCAzMzVjZTc3ZGNhNzcuLjcwZDY4MDcw MGZhZiAxMDA2NDQKLS0tIGEvbm91dmVhdS9ub3V2ZWF1LmgKKysrIGIvbm91dmVhdS9ub3V2ZWF1 LmgKQEAgLTIyNiw2ICsyMjYsOCBAQCB2b2lkIG5vdXZlYXVfcHVzaGJ1Zl9yZWxvYyhzdHJ1Y3Qg bm91dmVhdV9wdXNoYnVmICosIHN0cnVjdCBub3V2ZWF1X2JvICosCiBpbnQgbm91dmVhdV9wdXNo YnVmX3ZhbGlkYXRlKHN0cnVjdCBub3V2ZWF1X3B1c2hidWYgKik7CiB1aW50MzJfdCBub3V2ZWF1 X3B1c2hidWZfcmVmZChzdHJ1Y3Qgbm91dmVhdV9wdXNoYnVmICosIHN0cnVjdCBub3V2ZWF1X2Jv ICopOwogaW50IG5vdXZlYXVfcHVzaGJ1Zl9raWNrKHN0cnVjdCBub3V2ZWF1X3B1c2hidWYgKiwg c3RydWN0IG5vdXZlYXVfb2JqZWN0ICpjaGFuKTsKK2ludCBub3V2ZWF1X3B1c2hidWZfa2lja19m ZW5jZShzdHJ1Y3Qgbm91dmVhdV9wdXNoYnVmICosCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IG5vdXZlYXVfb2JqZWN0ICpjaGFuLCBpbnQgKmZlbmNlKTsKIHN0cnVjdCBu b3V2ZWF1X2J1ZmN0eCAqCiBub3V2ZWF1X3B1c2hidWZfYnVmY3R4KHN0cnVjdCBub3V2ZWF1X3B1 c2hidWYgKiwgc3RydWN0IG5vdXZlYXVfYnVmY3R4ICopOwogCmRpZmYgLS1naXQgYS9ub3V2ZWF1 L3B1c2hidWYuYyBiL25vdXZlYXUvcHVzaGJ1Zi5jCmluZGV4IDAzNWUzMDE5ZjJjZC4uZjEzODA0 ZGI3NTM0IDEwMDY0NAotLS0gYS9ub3V2ZWF1L3B1c2hidWYuYworKysgYi9ub3V2ZWF1L3B1c2hi dWYuYwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPGFz c2VydC5oPgogI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CiAKICNpbmNs dWRlIDx4Zjg2ZHJtLmg+CiAjaW5jbHVkZSA8eGY4NmF0b21pYy5oPgpAQCAtNzcsNyArNzgsNyBA QCBub3V2ZWF1X3B1c2hidWYoc3RydWN0IG5vdXZlYXVfcHVzaGJ1ZiAqcHVzaCkKIH0KIAogc3Rh dGljIGludCBwdXNoYnVmX3ZhbGlkYXRlKHN0cnVjdCBub3V2ZWF1X3B1c2hidWYgKiwgYm9vbCk7 Ci1zdGF0aWMgaW50IHB1c2hidWZfZmx1c2goc3RydWN0IG5vdXZlYXVfcHVzaGJ1ZiAqKTsKK3N0 YXRpYyBpbnQgcHVzaGJ1Zl9mbHVzaChzdHJ1Y3Qgbm91dmVhdV9wdXNoYnVmICosIGludCAqKTsK IAogc3RhdGljIGJvb2wKIHB1c2hidWZfa3JlZl9maXRzKHN0cnVjdCBub3V2ZWF1X3B1c2hidWYg KnB1c2gsIHN0cnVjdCBub3V2ZWF1X2JvICpibywKQEAgLTE3Miw3ICsxNzMsNyBAQCBwdXNoYnVm X2tyZWYoc3RydWN0IG5vdXZlYXVfcHVzaGJ1ZiAqcHVzaCwgc3RydWN0IG5vdXZlYXVfYm8gKmJv LAogCSAqLwogCWZwdXNoID0gY2xpX3B1c2hfZ2V0KHB1c2gtPmNsaWVudCwgYm8pOwogCWlmIChm cHVzaCAmJiBmcHVzaCAhPSBwdXNoKQotCQlwdXNoYnVmX2ZsdXNoKGZwdXNoKTsKKwkJcHVzaGJ1 Zl9mbHVzaChmcHVzaCwgTlVMTCk7CiAKIAlrcmVmID0gY2xpX2tyZWZfZ2V0KHB1c2gtPmNsaWVu dCwgYm8pOwogCWlmIChrcmVmKSB7CkBAIC0zMDcsNyArMzA4LDggQEAgcHVzaGJ1Zl9kdW1wKHN0 cnVjdCBub3V2ZWF1X3B1c2hidWZfa3JlYyAqa3JlYywgaW50IGtyZWNfaWQsIGludCBjaGlkKQog fQogCiBzdGF0aWMgaW50Ci1wdXNoYnVmX3N1Ym1pdChzdHJ1Y3Qgbm91dmVhdV9wdXNoYnVmICpw dXNoLCBzdHJ1Y3Qgbm91dmVhdV9vYmplY3QgKmNoYW4pCitwdXNoYnVmX3N1Ym1pdChzdHJ1Y3Qg bm91dmVhdV9wdXNoYnVmICpwdXNoLCBzdHJ1Y3Qgbm91dmVhdV9vYmplY3QgKmNoYW4sCisgICAg ICAgICAgICAgICBpbnQgKmZlbmNlKQogewogCXN0cnVjdCBub3V2ZWF1X3B1c2hidWZfcHJpdiAq bnZwYiA9IG5vdXZlYXVfcHVzaGJ1ZihwdXNoKTsKIAlzdHJ1Y3Qgbm91dmVhdV9wdXNoYnVmX2ty ZWMgKmtyZWMgPSBudnBiLT5saXN0OwpAQCAtMzE1LDkgKzMxNyw5IEBAIHB1c2hidWZfc3VibWl0 KHN0cnVjdCBub3V2ZWF1X3B1c2hidWYgKnB1c2gsIHN0cnVjdCBub3V2ZWF1X29iamVjdCAqY2hh bikKIAlzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfZHJtKCZkZXYtPm9iamVjdCk7 CiAJc3RydWN0IGRybV9ub3V2ZWF1X2dlbV9wdXNoYnVmX2JvX3ByZXN1bWVkICppbmZvOwogCXN0 cnVjdCBkcm1fbm91dmVhdV9nZW1fcHVzaGJ1Zl9ibyAqa3JlZjsKLQlzdHJ1Y3QgZHJtX25vdXZl YXVfZ2VtX3B1c2hidWYgcmVxOwogCXN0cnVjdCBub3V2ZWF1X2ZpZm8gKmZpZm8gPSBjaGFuLT5k YXRhOwogCXN0cnVjdCBub3V2ZWF1X2JvICpibzsKKwlpbnQgZmVuY2Vfb3V0ID0gLTE7CiAJaW50 IGtyZWNfaWQgPSAwOwogCWludCByZXQgPSAwLCBpOwogCkBAIC0zMzAsMzUgKzMzMiw4MSBAQCBw dXNoYnVmX3N1Ym1pdChzdHJ1Y3Qgbm91dmVhdV9wdXNoYnVmICpwdXNoLCBzdHJ1Y3Qgbm91dmVh dV9vYmplY3QgKmNoYW4pCiAJbm91dmVhdV9wdXNoYnVmX2RhdGEocHVzaCwgTlVMTCwgMCwgMCk7 CiAKIAl3aGlsZSAoa3JlYyAmJiBrcmVjLT5ucl9wdXNoKSB7Ci0JCXJlcS5jaGFubmVsID0gZmlm by0+Y2hhbm5lbDsKLQkJcmVxLm5yX2J1ZmZlcnMgPSBrcmVjLT5ucl9idWZmZXI7Ci0JCXJlcS5i dWZmZXJzID0gKHVpbnQ2NF90KSh1bnNpZ25lZCBsb25nKWtyZWMtPmJ1ZmZlcjsKLQkJcmVxLm5y X3JlbG9jcyA9IGtyZWMtPm5yX3JlbG9jOwotCQlyZXEubnJfcHVzaCA9IGtyZWMtPm5yX3B1c2g7 Ci0JCXJlcS5yZWxvY3MgPSAodWludDY0X3QpKHVuc2lnbmVkIGxvbmcpa3JlYy0+cmVsb2M7Ci0J CXJlcS5wdXNoID0gKHVpbnQ2NF90KSh1bnNpZ25lZCBsb25nKWtyZWMtPnB1c2g7Ci0JCXJlcS5z dWZmaXgwID0gbnZwYi0+c3VmZml4MDsKLQkJcmVxLnN1ZmZpeDEgPSBudnBiLT5zdWZmaXgxOwot CQlyZXEudnJhbV9hdmFpbGFibGUgPSAwOyAvKiBmb3IgdmFsZ3JpbmQgKi8KLQkJcmVxLmdhcnRf YXZhaWxhYmxlID0gMDsKLQogCQlpZiAoZGJnX29uKDApKQogCQkJcHVzaGJ1Zl9kdW1wKGtyZWMs IGtyZWNfaWQrKywgZmlmby0+Y2hhbm5lbCk7CiAKKwkJLyogVE9ETyBJZiBmZW5jZSBpcyByZXF1 ZXN0ZWQsIGZvcmNlIGtpY2tvZmYuICovCisJCWlmIChmZW5jZSkgeworCQkJc3RydWN0IGRybV9u b3V2ZWF1X2dlbV9wdXNoYnVmMiByZXE7CisKKwkJCW1lbXNldCgmcmVxLCAwLCBzaXplb2YocmVx KSk7CisJCQlyZXEuY2hhbm5lbCA9IGZpZm8tPmNoYW5uZWw7CisJCQlyZXEubnJfYnVmZmVycyA9 IGtyZWMtPm5yX2J1ZmZlcjsKKwkJCXJlcS5idWZmZXJzID0gKHVpbnQ2NF90KSh1bnNpZ25lZCBs b25nKWtyZWMtPmJ1ZmZlcjsKKwkJCXJlcS5ucl9yZWxvY3MgPSBrcmVjLT5ucl9yZWxvYzsKKwkJ CXJlcS5ucl9wdXNoID0ga3JlYy0+bnJfcHVzaDsKKwkJCXJlcS5yZWxvY3MgPSAodWludDY0X3Qp KHVuc2lnbmVkIGxvbmcpa3JlYy0+cmVsb2M7CisJCQlyZXEucHVzaCA9ICh1aW50NjRfdCkodW5z aWduZWQgbG9uZylrcmVjLT5wdXNoOworCQkJcmVxLnN1ZmZpeDAgPSBudnBiLT5zdWZmaXgwOwor CQkJcmVxLnN1ZmZpeDEgPSBudnBiLT5zdWZmaXgxOworCQkJcmVxLnZyYW1fYXZhaWxhYmxlID0g MDsgLyogZm9yIHZhbGdyaW5kICovCisJCQlyZXEuZ2FydF9hdmFpbGFibGUgPSAwOworCQkJcmVx LmZsYWdzID0gMDsKKworCQkJaWYgKCpmZW5jZSA+PSAwKQorCQkJCXJlcS5mbGFncyB8PSBOT1VW RUFVX0dFTV9QVVNIQlVGX0ZFTkNFX1dBSVQ7CisKKwkJCXJlcS5mbGFncyB8PSBOT1VWRUFVX0dF TV9QVVNIQlVGX0ZFTkNFX0VNSVQ7CisKKwkJCXJlcS5mZW5jZSA9ICpmZW5jZTsKKwkJCXJlcS5y ZXNlcnZlZCA9IDA7CisKICNpZm5kZWYgU0lNVUxBVEUKLQkJcmV0ID0gZHJtQ29tbWFuZFdyaXRl UmVhZChkcm0tPmZkLCBEUk1fTk9VVkVBVV9HRU1fUFVTSEJVRiwKLQkJCQkJICAmcmVxLCBzaXpl b2YocmVxKSk7Ci0JCW52cGItPnN1ZmZpeDAgPSByZXEuc3VmZml4MDsKLQkJbnZwYi0+c3VmZml4 MSA9IHJlcS5zdWZmaXgxOwotCQlkZXYtPnZyYW1fbGltaXQgPSAocmVxLnZyYW1fYXZhaWxhYmxl ICoKLQkJCQlub3V2ZWF1X2RldmljZShkZXYpLT52cmFtX2xpbWl0X3BlcmNlbnQpIC8gMTAwOwot CQlkZXYtPmdhcnRfbGltaXQgPSAocmVxLmdhcnRfYXZhaWxhYmxlICoKLQkJCQlub3V2ZWF1X2Rl dmljZShkZXYpLT5nYXJ0X2xpbWl0X3BlcmNlbnQpIC8gMTAwOworCQkJcmV0ID0gZHJtQ29tbWFu ZFdyaXRlUmVhZChkcm0tPmZkLCBEUk1fTk9VVkVBVV9HRU1fUFVTSEJVRjIsCisJCQkJCQkJCQkg ICZyZXEsIHNpemVvZihyZXEpKTsKKwkJCW52cGItPnN1ZmZpeDAgPSByZXEuc3VmZml4MDsKKwkJ CW52cGItPnN1ZmZpeDEgPSByZXEuc3VmZml4MTsKKwkJCWRldi0+dnJhbV9saW1pdCA9IChyZXEu dnJhbV9hdmFpbGFibGUgKgorCQkJCQlub3V2ZWF1X2RldmljZShkZXYpLT52cmFtX2xpbWl0X3Bl cmNlbnQpIC8gMTAwOworCQkJZGV2LT5nYXJ0X2xpbWl0ID0gKHJlcS5nYXJ0X2F2YWlsYWJsZSAq CisJCQkJCW5vdXZlYXVfZGV2aWNlKGRldiktPmdhcnRfbGltaXRfcGVyY2VudCkgLyAxMDA7CiAj ZWxzZQotCQlpZiAoZGJnX29uKDMxKSkKLQkJCXJldCA9IC1FSU5WQUw7CisJCQlpZiAoZGJnX29u KDMxKSkKKwkJCQlyZXQgPSAtRUlOVkFMOwogI2VuZGlmCiAKKwkJCWlmICghcmV0KQorCQkJCWZl bmNlX291dCA9IHJlcS5mZW5jZTsKKwkJfSBlbHNlIHsKKwkJCXN0cnVjdCBkcm1fbm91dmVhdV9n ZW1fcHVzaGJ1ZiByZXE7CisKKwkJCXJlcS5jaGFubmVsID0gZmlmby0+Y2hhbm5lbDsKKwkJCXJl cS5ucl9idWZmZXJzID0ga3JlYy0+bnJfYnVmZmVyOworCQkJcmVxLmJ1ZmZlcnMgPSAodWludDY0 X3QpKHVuc2lnbmVkIGxvbmcpa3JlYy0+YnVmZmVyOworCQkJcmVxLm5yX3JlbG9jcyA9IGtyZWMt Pm5yX3JlbG9jOworCQkJcmVxLm5yX3B1c2ggPSBrcmVjLT5ucl9wdXNoOworCQkJcmVxLnJlbG9j cyA9ICh1aW50NjRfdCkodW5zaWduZWQgbG9uZylrcmVjLT5yZWxvYzsKKwkJCXJlcS5wdXNoID0g KHVpbnQ2NF90KSh1bnNpZ25lZCBsb25nKWtyZWMtPnB1c2g7CisJCQlyZXEuc3VmZml4MCA9IG52 cGItPnN1ZmZpeDA7CisJCQlyZXEuc3VmZml4MSA9IG52cGItPnN1ZmZpeDE7CisJCQlyZXEudnJh bV9hdmFpbGFibGUgPSAwOyAvKiBmb3IgdmFsZ3JpbmQgKi8KKwkJCXJlcS5nYXJ0X2F2YWlsYWJs ZSA9IDA7CisKKyNpZm5kZWYgU0lNVUxBVEUKKwkJCXJldCA9IGRybUNvbW1hbmRXcml0ZVJlYWQo ZHJtLT5mZCwgRFJNX05PVVZFQVVfR0VNX1BVU0hCVUYsCisJCQkJCQkJCQkgICZyZXEsIHNpemVv ZihyZXEpKTsKKwkJCW52cGItPnN1ZmZpeDAgPSByZXEuc3VmZml4MDsKKwkJCW52cGItPnN1ZmZp eDEgPSByZXEuc3VmZml4MTsKKwkJCWRldi0+dnJhbV9saW1pdCA9IChyZXEudnJhbV9hdmFpbGFi bGUgKgorCQkJCQlub3V2ZWF1X2RldmljZShkZXYpLT52cmFtX2xpbWl0X3BlcmNlbnQpIC8gMTAw OworCQkJZGV2LT5nYXJ0X2xpbWl0ID0gKHJlcS5nYXJ0X2F2YWlsYWJsZSAqCisJCQkJCW5vdXZl YXVfZGV2aWNlKGRldiktPmdhcnRfbGltaXRfcGVyY2VudCkgLyAxMDA7CisjZWxzZQorCQkJaWYg KGRiZ19vbigzMSkpCisJCQkJcmV0ID0gLUVJTlZBTDsKKyNlbmRpZgorICAgICAgICB9CisKIAkJ aWYgKHJldCkgewogCQkJZXJyKCJrZXJuZWwgcmVqZWN0ZWQgcHVzaGJ1ZjogJXNcbiIsIHN0cmVy cm9yKC1yZXQpKTsKIAkJCXB1c2hidWZfZHVtcChrcmVjLCBrcmVjX2lkKyssIGZpZm8tPmNoYW5u ZWwpOwpAQCAtMzg4LDExICs0MzYsMTggQEAgcHVzaGJ1Zl9zdWJtaXQoc3RydWN0IG5vdXZlYXVf cHVzaGJ1ZiAqcHVzaCwgc3RydWN0IG5vdXZlYXVfb2JqZWN0ICpjaGFuKQogCQlrcmVjID0ga3Jl Yy0+bmV4dDsKIAl9CiAKKwlpZiAoIXJldCAmJiBmZW5jZSkgeworCQlpZiAoKmZlbmNlID49IDAp CisJCQljbG9zZSgqZmVuY2UpOworCisJCSpmZW5jZSA9IGZlbmNlX291dDsKKwl9CisKIAlyZXR1 cm4gcmV0OwogfQogCiBzdGF0aWMgaW50Ci1wdXNoYnVmX2ZsdXNoKHN0cnVjdCBub3V2ZWF1X3B1 c2hidWYgKnB1c2gpCitwdXNoYnVmX2ZsdXNoKHN0cnVjdCBub3V2ZWF1X3B1c2hidWYgKnB1c2gs IGludCAqZmVuY2UpCiB7CiAJc3RydWN0IG5vdXZlYXVfcHVzaGJ1Zl9wcml2ICpudnBiID0gbm91 dmVhdV9wdXNoYnVmKHB1c2gpOwogCXN0cnVjdCBub3V2ZWF1X3B1c2hidWZfa3JlYyAqa3JlYyA9 IG52cGItPmtyZWM7CkBAIC00MDIsNyArNDU3LDcgQEAgcHVzaGJ1Zl9mbHVzaChzdHJ1Y3Qgbm91 dmVhdV9wdXNoYnVmICpwdXNoKQogCWludCByZXQgPSAwLCBpOwogCiAJaWYgKHB1c2gtPmNoYW5u ZWwpIHsKLQkJcmV0ID0gcHVzaGJ1Zl9zdWJtaXQocHVzaCwgcHVzaC0+Y2hhbm5lbCk7CisJCXJl dCA9IHB1c2hidWZfc3VibWl0KHB1c2gsIHB1c2gtPmNoYW5uZWwsIGZlbmNlKTsKIAl9IGVsc2Ug ewogCQlub3V2ZWF1X3B1c2hidWZfZGF0YShwdXNoLCBOVUxMLCAwLCAwKTsKIAkJa3JlYy0+bmV4 dCA9IG1hbGxvYyhzaXplb2YoKmtyZWMpKTsKQEAgLTQ3Miw3ICs1MjcsNyBAQCBwdXNoYnVmX3Jl Zm4oc3RydWN0IG5vdXZlYXVfcHVzaGJ1ZiAqcHVzaCwgYm9vbCByZXRyeSwKIAlpZiAocmV0KSB7 CiAJCXB1c2hidWZfcmVmbl9mYWlsKHB1c2gsIHNyZWYsIGtyZWMtPm5yX3JlbG9jKTsKIAkJaWYg KHJldHJ5KSB7Ci0JCQlwdXNoYnVmX2ZsdXNoKHB1c2gpOworCQkJcHVzaGJ1Zl9mbHVzaChwdXNo LCBOVUxMKTsKIAkJCW5vdXZlYXVfcHVzaGJ1Zl9zcGFjZShwdXNoLCAwLCAwLCAwKTsKIAkJCXJl dHVybiBwdXNoYnVmX3JlZm4ocHVzaCwgZmFsc2UsIHJlZnMsIG5yKTsKIAkJfQpAQCAtNTI0LDcg KzU3OSw3IEBAIHB1c2hidWZfdmFsaWRhdGUoc3RydWN0IG5vdXZlYXVfcHVzaGJ1ZiAqcHVzaCwg Ym9vbCByZXRyeSkKIAlpZiAocmV0KSB7CiAJCXB1c2hidWZfcmVmbl9mYWlsKHB1c2gsIHNyZWYs IHNyZWwpOwogCQlpZiAocmV0cnkpIHsKLQkJCXB1c2hidWZfZmx1c2gocHVzaCk7CisJCQlwdXNo YnVmX2ZsdXNoKHB1c2gsIE5VTEwpOwogCQkJcmV0dXJuIHB1c2hidWZfdmFsaWRhdGUocHVzaCwg ZmFsc2UpOwogCQl9CiAJfQpAQCAtNjc2LDcgKzczMSw3IEBAIG5vdXZlYXVfcHVzaGJ1Zl9zcGFj ZShzdHJ1Y3Qgbm91dmVhdV9wdXNoYnVmICpwdXNoLAogCSAgICBrcmVjLT5ucl9yZWxvYyArIHJl bG9jcyA+PSBOT1VWRUFVX0dFTV9NQVhfUkVMT0NTIHx8CiAJICAgIGtyZWMtPm5yX3B1c2ggKyBw dXNoZXMgPj0gTk9VVkVBVV9HRU1fTUFYX1BVU0gpIHsKIAkJaWYgKG52cGItPmJvICYmIGtyZWMt Pm5yX2J1ZmZlcikKLQkJCXB1c2hidWZfZmx1c2gocHVzaCk7CisJCQlwdXNoYnVmX2ZsdXNoKHB1 c2gsIE5VTEwpOwogCQlmbHVzaGVkID0gdHJ1ZTsKIAl9CiAKQEAgLTc3MiwxMCArODI3LDE3IEBA IG5vdXZlYXVfcHVzaGJ1Zl9yZWZkKHN0cnVjdCBub3V2ZWF1X3B1c2hidWYgKnB1c2gsIHN0cnVj dCBub3V2ZWF1X2JvICpibykKIH0KIAogaW50Ci1ub3V2ZWF1X3B1c2hidWZfa2ljayhzdHJ1Y3Qg bm91dmVhdV9wdXNoYnVmICpwdXNoLCBzdHJ1Y3Qgbm91dmVhdV9vYmplY3QgKmNoYW4pCitub3V2 ZWF1X3B1c2hidWZfa2lja19mZW5jZShzdHJ1Y3Qgbm91dmVhdV9wdXNoYnVmICpwdXNoLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5vdXZlYXVfb2JqZWN0ICpjaGFuLCBpbnQg KmZlbmNlKQogewogCWlmICghcHVzaC0+Y2hhbm5lbCkKLQkJcmV0dXJuIHB1c2hidWZfc3VibWl0 KHB1c2gsIGNoYW4pOwotCXB1c2hidWZfZmx1c2gocHVzaCk7CisJCXJldHVybiBwdXNoYnVmX3N1 Ym1pdChwdXNoLCBjaGFuLCBmZW5jZSk7CisJcHVzaGJ1Zl9mbHVzaChwdXNoLCBmZW5jZSk7CiAJ cmV0dXJuIHB1c2hidWZfdmFsaWRhdGUocHVzaCwgZmFsc2UpOwogfQorCitpbnQKK25vdXZlYXVf cHVzaGJ1Zl9raWNrKHN0cnVjdCBub3V2ZWF1X3B1c2hidWYgKnB1c2hidWYsIHN0cnVjdCBub3V2 ZWF1X29iamVjdCAqY2hhbikKK3sKKyAgICByZXR1cm4gbm91dmVhdV9wdXNoYnVmX2tpY2tfZmVu Y2UocHVzaGJ1ZiwgY2hhbiwgTlVMTCk7Cit9Ci0tIAoyLjE1LjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5vdXZlYXUgbWFpbGluZyBsaXN0Ck5vdXZl YXVAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vbm91dmVhdQo=