From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8C6F2893EC for ; Thu, 21 Feb 2019 09:43:42 +0000 (UTC) From: Dhinakaran Pandiyan Date: Wed, 20 Feb 2019 18:41:21 -0800 Message-Id: <20190221024123.17516-3-dhinakaran.pandiyan@intel.com> In-Reply-To: <20190221024123.17516-1-dhinakaran.pandiyan@intel.com> References: <20190221024123.17516-1-dhinakaran.pandiyan@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [HAX 3/5] lib/igt_fb: Use rendercopy for rendering into compressed buffers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClBs dWcgaW4gcmVuZGVyY29weSB0byB0aGUgY2Fpcm8gc3VyZmFjZSBzdHVmZiBzbyB0aGF0IHdlIGNh bgpnZW5lcmF0ZSBjb21wcmVzc2VkIGJ1ZmZlcnMgd2l0aCBjYWlyby4KCnYyOiBzL21vZGlmaWVy X2hhc19jY3MvaXNfY2NzX21vZGlmaWVyLwoKdjM6IEZyb20gREsKU2V0IGJ1Zi5icHAgd2hlbiBp bml0aWFsaXppbmcgYW5kIHJlYmFzZS4KClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IERoaW5ha2FyYW4g UGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgotLS0KIGxpYi9pZ3RfZmIu YyB8IDE1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxMzkgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbGliL2lndF9mYi5jIGIvbGliL2lndF9mYi5jCmluZGV4IDQ2MmFmZWMyLi5l MDI4ODI4MiAxMDA2NDQKLS0tIGEvbGliL2lndF9mYi5jCisrKyBiL2xpYi9pZ3RfZmIuYwpAQCAt MjkwLDYgKzI5MCw3IEBAIHZvaWQgaWd0X2dldF9mYl90aWxlX3NpemUoaW50IGZkLCB1aW50NjRf dCB0aWxpbmcsIGludCBmYl9icHAsCiAJCX0KIAkJYnJlYWs7CiAJY2FzZSBMT0NBTF9JOTE1X0ZP Uk1BVF9NT0RfWV9USUxFRDoKKwljYXNlIExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0ND UzoKIAkJaWd0X3JlcXVpcmVfaW50ZWwoZmQpOwogCQlpZiAoaW50ZWxfZ2VuKGludGVsX2dldF9k cm1fZGV2aWQoZmQpKSA9PSAyKSB7CiAJCQkqd2lkdGhfcmV0ID0gMTI4OwpAQCAtMzAzLDYgKzMw NCw3IEBAIHZvaWQgaWd0X2dldF9mYl90aWxlX3NpemUoaW50IGZkLCB1aW50NjRfdCB0aWxpbmcs IGludCBmYl9icHAsCiAJCX0KIAkJYnJlYWs7CiAJY2FzZSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0Rf WWZfVElMRUQ6CisJY2FzZSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOgogCQlp Z3RfcmVxdWlyZV9pbnRlbChmZCk7CiAJCXN3aXRjaCAoZmJfYnBwKSB7CiAJCWNhc2UgODoKQEAg LTMyOCwxMCArMzMwLDIxIEBAIHZvaWQgaWd0X2dldF9mYl90aWxlX3NpemUoaW50IGZkLCB1aW50 NjRfdCB0aWxpbmcsIGludCBmYl9icHAsCiAJfQogfQogCitzdGF0aWMgYm9vbCBpc19jY3NfbW9k aWZpZXIodWludDY0X3QgbW9kaWZpZXIpCit7CisJcmV0dXJuIG1vZGlmaWVyID09IExPQ0FMX0k5 MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUyB8fAorCQltb2RpZmllciA9PSBMT0NBTF9JOTE1X0ZP Uk1BVF9NT0RfWWZfVElMRURfQ0NTOworfQorCiBzdGF0aWMgdW5zaWduZWQgZmJfcGxhbmVfd2lk dGgoY29uc3Qgc3RydWN0IGlndF9mYiAqZmIsIGludCBwbGFuZSkKIHsKIAljb25zdCBzdHJ1Y3Qg Zm9ybWF0X2Rlc2Nfc3RydWN0ICpmb3JtYXQgPSBsb29rdXBfZHJtX2Zvcm1hdChmYi0+ZHJtX2Zv cm1hdCk7CiAKKwlpZiAoaXNfY2NzX21vZGlmaWVyKGZiLT50aWxpbmcpICYmIHBsYW5lID09IDEp CisJCXJldHVybiBESVZfUk9VTkRfVVAoZmItPndpZHRoLCAxMDI0KSAqIDEyODsKKwlpZiAoZmIt PmRybV9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyICYmIHBsYW5lID09IDEpCisJCXJldHVybiBE SVZfUk9VTkRfVVAoZmItPndpZHRoLCAyKTsKKwogCWlmIChwbGFuZSA9PSAwKQogCQlyZXR1cm4g ZmItPndpZHRoOwogCkBAIC0zNDIsMTMgKzM1NSwyMSBAQCBzdGF0aWMgdW5zaWduZWQgZmJfcGxh bmVfYnBwKGNvbnN0IHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQgcGxhbmUpCiB7CiAJY29uc3Qgc3Ry dWN0IGZvcm1hdF9kZXNjX3N0cnVjdCAqZm9ybWF0ID0gbG9va3VwX2RybV9mb3JtYXQoZmItPmRy bV9mb3JtYXQpOwogCi0JcmV0dXJuIGZvcm1hdC0+cGxhbmVfYnBwW3BsYW5lXTsKKwlpZiAoaXNf Y2NzX21vZGlmaWVyKGZiLT50aWxpbmcpICYmIHBsYW5lID09IDEpCisJCXJldHVybiA4OworCWVs c2UKKwkJcmV0dXJuIGZvcm1hdC0+cGxhbmVfYnBwW3BsYW5lXTsKIH0KIAogc3RhdGljIHVuc2ln bmVkIGZiX3BsYW5lX2hlaWdodChjb25zdCBzdHJ1Y3QgaWd0X2ZiICpmYiwgaW50IHBsYW5lKQog ewogCWNvbnN0IHN0cnVjdCBmb3JtYXRfZGVzY19zdHJ1Y3QgKmZvcm1hdCA9IGxvb2t1cF9kcm1f Zm9ybWF0KGZiLT5kcm1fZm9ybWF0KTsKIAorCWlmIChpc19jY3NfbW9kaWZpZXIoZmItPnRpbGlu ZykgJiYgcGxhbmUgPT0gMSkKKwkJcmV0dXJuIERJVl9ST1VORF9VUChmYi0+aGVpZ2h0LCA1MTIp ICogMzI7CisJaWYgKGZiLT5kcm1fZm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMiAmJiBwbGFuZSA9 PSAxKQorCQlyZXR1cm4gRElWX1JPVU5EX1VQKGZiLT5oZWlnaHQsIDIpOworCiAJaWYgKHBsYW5l ID09IDApCiAJCXJldHVybiBmYi0+aGVpZ2h0OwogCkBAIC0zNTksNyArMzgwLDEwIEBAIHN0YXRp YyBpbnQgZmJfbnVtX3BsYW5lcyhjb25zdCBzdHJ1Y3QgaWd0X2ZiICpmYikKIHsKIAljb25zdCBz dHJ1Y3QgZm9ybWF0X2Rlc2Nfc3RydWN0ICpmb3JtYXQgPSBsb29rdXBfZHJtX2Zvcm1hdChmYi0+ ZHJtX2Zvcm1hdCk7CiAKLQlyZXR1cm4gZm9ybWF0LT5udW1fcGxhbmVzOworCWlmIChpc19jY3Nf bW9kaWZpZXIoZmItPnRpbGluZykpCisJCXJldHVybiAyOworCWVsc2UKKwkJcmV0dXJuIGZvcm1h dC0+bnVtX3BsYW5lczsKIH0KIAogc3RhdGljIHZvaWQgZmJfaW5pdChzdHJ1Y3QgaWd0X2ZiICpm YiwKQEAgLTUxOCw4ICs1NDIsMTAgQEAgdWludDY0X3QgaWd0X2ZiX21vZF90b190aWxpbmcodWlu dDY0X3QgbW9kaWZpZXIpCiAJY2FzZSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDoKIAkJ cmV0dXJuIEk5MTVfVElMSU5HX1g7CiAJY2FzZSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxF RDoKKwljYXNlIExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUzoKIAkJcmV0dXJuIEk5 MTVfVElMSU5HX1k7CiAJY2FzZSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQ6CisJY2Fz ZSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOgogCQlyZXR1cm4gSTkxNV9USUxJ TkdfWWY7CiAJZGVmYXVsdDoKIAkJaWd0X2Fzc2VydCgwKTsKQEAgLTE0MDUsOCArMTQzMSw1NCBA QCBzdHJ1Y3QgZmJfYmxpdF91cGxvYWQgewogCWludCBmZDsKIAlzdHJ1Y3QgaWd0X2ZiICpmYjsK IAlzdHJ1Y3QgZmJfYmxpdF9saW5lYXIgbGluZWFyOworCWRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1n cjsKKwlzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoOwogfTsKIAorc3RhdGljIHZvaWQg aW5pdF9idWYoc3RydWN0IGZiX2JsaXRfdXBsb2FkICpibGl0LAorCQkgICAgIHN0cnVjdCBpZ3Rf YnVmICpidWYsCisJCSAgICAgY29uc3Qgc3RydWN0IGlndF9mYiAqZmIsCisJCSAgICAgY29uc3Qg Y2hhciAqbmFtZSkKK3sKKwlpZ3RfYXNzZXJ0X2VxKGZiLT5vZmZzZXRzWzBdLCAwKTsKKworCWJ1 Zi0+Ym8gPSBnZW1faGFuZGxlX3RvX2xpYmRybV9ibyhibGl0LT5idWZtZ3IsIGJsaXQtPmZkLAor CQkJCQkgIG5hbWUsIGZiLT5nZW1faGFuZGxlKTsKKwlidWYtPnRpbGluZyA9IGlndF9mYl9tb2Rf dG9fdGlsaW5nKGZiLT50aWxpbmcpOworCWJ1Zi0+c3RyaWRlID0gZmItPnN0cmlkZXNbMF07CisJ YnVmLT5icHAgPSBmYi0+cGxhbmVfYnBwWzBdOworCWJ1Zi0+c2l6ZSA9IGZiLT5zaXplOworCisJ aWYgKGlzX2Njc19tb2RpZmllcihmYi0+dGlsaW5nKSkgeworCQlpZ3RfYXNzZXJ0X2VxKGZiLT5z dHJpZGVzWzBdICYgMTI3LCAwKTsKKwkJaWd0X2Fzc2VydF9lcShmYi0+c3RyaWRlc1sxXSAmIDEy NywgMCk7CisKKwkJYnVmLT5hdXgub2Zmc2V0ID0gZmItPm9mZnNldHNbMV07CisJCWJ1Zi0+YXV4 LnN0cmlkZSA9IGZiLT5zdHJpZGVzWzFdOworCX0KK30KKworc3RhdGljIHZvaWQgcmVuZGVyY29w eShzdHJ1Y3QgZmJfYmxpdF91cGxvYWQgKmJsaXQsCisJCSAgICAgICBjb25zdCBzdHJ1Y3QgaWd0 X2ZiICpkc3RfZmIsCisJCSAgICAgICBjb25zdCBzdHJ1Y3QgaWd0X2ZiICpzcmNfZmIpCit7CisJ c3RydWN0IGlndF9idWYgc3JjID0ge30sIGRzdCA9IHt9OworCWlndF9yZW5kZXJfY29weWZ1bmNf dCByZW5kZXJfY29weSA9CisJCWlndF9nZXRfcmVuZGVyX2NvcHlmdW5jKGludGVsX2dldF9kcm1f ZGV2aWQoYmxpdC0+ZmQpKTsKKworCWlndF9yZXF1aXJlKHJlbmRlcl9jb3B5KTsKKworCWlndF9h c3NlcnRfZXEoZHN0X2ZiLT5vZmZzZXRzWzBdLCAwKTsKKwlpZ3RfYXNzZXJ0X2VxKHNyY19mYi0+ b2Zmc2V0c1swXSwgMCk7CisKKwlpbml0X2J1ZihibGl0LCAmc3JjLCBzcmNfZmIsICJjYWlybyBy ZW5kZXJjb3B5IHNyYyIpOworCWluaXRfYnVmKGJsaXQsICZkc3QsIGRzdF9mYiwgImNhaXJvIHJl bmRlcmNvcHkgZHN0Iik7CisKKwlyZW5kZXJfY29weShibGl0LT5iYXRjaCwgTlVMTCwKKwkJICAg ICZzcmMsIDAsIDAsIGRzdF9mYi0+cGxhbmVfd2lkdGhbMF0sIGRzdF9mYi0+cGxhbmVfaGVpZ2h0 WzBdLAorCQkgICAgJmRzdCwgMCwgMCk7Cit9CisKIHN0YXRpYyB2b2lkIGJsaXRjb3B5KGNvbnN0 IHN0cnVjdCBpZ3RfZmIgKmRzdF9mYiwKIAkJICAgICBjb25zdCBzdHJ1Y3QgaWd0X2ZiICpzcmNf ZmIpCiB7CkBAIC0xNDQ0LDcgKzE1MTYsMTAgQEAgc3RhdGljIHZvaWQgZnJlZV9saW5lYXJfbWFw cGluZyhzdHJ1Y3QgZmJfYmxpdF91cGxvYWQgKmJsaXQpCiAJZ2VtX3NldF9kb21haW4oZmQsIGxp bmVhci0+ZmIuZ2VtX2hhbmRsZSwKIAkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQsIDApOwog Ci0JYmxpdGNvcHkoZmIsICZsaW5lYXItPmZiKTsKKwlpZiAoYmxpdC0+YmF0Y2gpCisJCXJlbmRl cmNvcHkoYmxpdCwgZmIsICZsaW5lYXItPmZiKTsKKwllbHNlCisJCWJsaXRjb3B5KGZiLCAmbGlu ZWFyLT5mYik7CiAKIAlnZW1fc3luYyhmZCwgbGluZWFyLT5mYi5nZW1faGFuZGxlKTsKIAlnZW1f Y2xvc2UoZmQsIGxpbmVhci0+ZmIuZ2VtX2hhbmRsZSk7CkBAIC0xNDYxLDggKzE1MzYsMjYgQEAg c3RhdGljIHZvaWQgZGVzdHJveV9jYWlyb19zdXJmYWNlX19ibGl0KHZvaWQgKmFyZykKIAlmcmVl KGJsaXQpOwogfQogCi1zdGF0aWMgdm9pZCBzZXR1cF9saW5lYXJfbWFwcGluZyhpbnQgZmQsIHN0 cnVjdCBpZ3RfZmIgKmZiLCBzdHJ1Y3QgZmJfYmxpdF9saW5lYXIgKmxpbmVhcikKK3N0YXRpYyB2 b2lkIGRlc3Ryb3lfY2Fpcm9fc3VyZmFjZV9fcmVuZGVyY29weSh2b2lkICphcmcpCiB7CisJc3Ry dWN0IGZiX2JsaXRfdXBsb2FkICpibGl0ID0gYXJnOworCisJYmxpdC0+ZmItPmNhaXJvX3N1cmZh Y2UgPSBOVUxMOworCisJZnJlZV9saW5lYXJfbWFwcGluZyhibGl0KTsKKworCWludGVsX2JhdGNo YnVmZmVyX2ZyZWUoYmxpdC0+YmF0Y2gpOworCWRybV9pbnRlbF9idWZtZ3JfZGVzdHJveShibGl0 LT5idWZtZ3IpOworCisJZnJlZShibGl0KTsKK30KKworc3RhdGljIHZvaWQgc2V0dXBfbGluZWFy X21hcHBpbmcoc3RydWN0IGZiX2JsaXRfdXBsb2FkICpibGl0KQoreworCWludCBmZCA9IGJsaXQt PmZkOworCXN0cnVjdCBpZ3RfZmIgKmZiID0gYmxpdC0+ZmI7CisJc3RydWN0IGZiX2JsaXRfbGlu ZWFyICpsaW5lYXIgPSAmYmxpdC0+bGluZWFyOworCiAJLyoKIAkgKiBXZSBjcmVhdGUgYSBsaW5l YXIgQk8gdGhhdCB3ZSdsbCBtYXAgZm9yIHRoZSBDUFUgdG8gd3JpdGUgdG8gKHVzaW5nCiAJICog Y2Fpcm8pLiBUaGlzIGxpbmVhciBibyB3aWxsIGJlIHRoZW4gYmxpdHRlZCB0byBpdHMgZmluYWwK QEAgLTE0ODEsNyArMTU3NCwxMCBAQCBzdGF0aWMgdm9pZCBzZXR1cF9saW5lYXJfbWFwcGluZyhp bnQgZmQsIHN0cnVjdCBpZ3RfZmIgKmZiLCBzdHJ1Y3QgZmJfYmxpdF9saW5lYQogCWdlbV9zZXRf ZG9tYWluKGZkLCBsaW5lYXItPmZiLmdlbV9oYW5kbGUsCiAJCQlJOTE1X0dFTV9ET01BSU5fR1RU LCAwKTsKIAotCWJsaXRjb3B5KCZsaW5lYXItPmZiLCBmYik7CisJaWYgKGJsaXQtPmJhdGNoKQor CQlyZW5kZXJjb3B5KGJsaXQsICZsaW5lYXItPmZiLCBmYik7CisJZWxzZQorCQlibGl0Y29weSgm bGluZWFyLT5mYiwgZmIpOwogCiAJZ2VtX3N5bmMoZmQsIGxpbmVhci0+ZmIuZ2VtX2hhbmRsZSk7 CiAKQEAgLTE0OTgsMTIgKzE1OTQsMTIgQEAgc3RhdGljIHZvaWQgY3JlYXRlX2NhaXJvX3N1cmZh Y2VfX2JsaXQoaW50IGZkLCBzdHJ1Y3QgaWd0X2ZiICpmYikKIAlzdHJ1Y3QgZmJfYmxpdF91cGxv YWQgKmJsaXQ7CiAJY2Fpcm9fZm9ybWF0X3QgY2Fpcm9fZm9ybWF0OwogCi0JYmxpdCA9IG1hbGxv YyhzaXplb2YoKmJsaXQpKTsKKwlibGl0ID0gY2FsbG9jKDEsIHNpemVvZigqYmxpdCkpOwogCWln dF9hc3NlcnQoYmxpdCk7CiAKIAlibGl0LT5mZCA9IGZkOwogCWJsaXQtPmZiID0gZmI7Ci0Jc2V0 dXBfbGluZWFyX21hcHBpbmcoZmQsIGZiLCAmYmxpdC0+bGluZWFyKTsKKwlzZXR1cF9saW5lYXJf bWFwcGluZyhibGl0KTsKIAogCWNhaXJvX2Zvcm1hdCA9IGRybV9mb3JtYXRfdG9fY2Fpcm8oZmIt PmRybV9mb3JtYXQpOwogCWZiLT5jYWlyb19zdXJmYWNlID0KQEAgLTE1MTgsNiArMTYxNCwzNiBA QCBzdGF0aWMgdm9pZCBjcmVhdGVfY2Fpcm9fc3VyZmFjZV9fYmxpdChpbnQgZmQsIHN0cnVjdCBp Z3RfZmIgKmZiKQogCQkJCSAgICBibGl0LCBkZXN0cm95X2NhaXJvX3N1cmZhY2VfX2JsaXQpOwog fQogCitzdGF0aWMgdm9pZCBjcmVhdGVfY2Fpcm9fc3VyZmFjZV9fcmVuZGVyY29weShpbnQgZmQs IHN0cnVjdCBpZ3RfZmIgKmZiKQoreworCXN0cnVjdCBmYl9ibGl0X3VwbG9hZCAqYmxpdDsKKwlj YWlyb19mb3JtYXRfdCBjYWlyb19mb3JtYXQ7CisKKwlibGl0ID0gY2FsbG9jKDEsIHNpemVvZigq YmxpdCkpOworCWlndF9hc3NlcnQoYmxpdCk7CisKKwlibGl0LT5mZCA9IGZkOworCWJsaXQtPmZi ID0gZmI7CisKKwlibGl0LT5idWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGZkLCA0 MDk2KTsKKwlibGl0LT5iYXRjaCA9IGludGVsX2JhdGNoYnVmZmVyX2FsbG9jKGJsaXQtPmJ1Zm1n ciwKKwkJCQkJICAgICAgaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpOworCisJc2V0dXBfbGluZWFy X21hcHBpbmcoYmxpdCk7CisKKwljYWlyb19mb3JtYXQgPSBkcm1fZm9ybWF0X3RvX2NhaXJvKGZi LT5kcm1fZm9ybWF0KTsKKwlmYi0+Y2Fpcm9fc3VyZmFjZSA9CisJCWNhaXJvX2ltYWdlX3N1cmZh Y2VfY3JlYXRlX2Zvcl9kYXRhKGJsaXQtPmxpbmVhci5tYXAsCisJCQkJCQkgICAgY2Fpcm9fZm9y bWF0LAorCQkJCQkJICAgIGZiLT53aWR0aCwgZmItPmhlaWdodCwKKwkJCQkJCSAgICBibGl0LT5s aW5lYXIuZmIuc3RyaWRlc1swXSk7CisJZmItPmRvbWFpbiA9IEk5MTVfR0VNX0RPTUFJTl9HVFQ7 CisKKwljYWlyb19zdXJmYWNlX3NldF91c2VyX2RhdGEoZmItPmNhaXJvX3N1cmZhY2UsCisJCQkJ ICAgIChjYWlyb191c2VyX2RhdGFfa2V5X3QgKiljcmVhdGVfY2Fpcm9fc3VyZmFjZV9fcmVuZGVy Y29weSwKKwkJCQkgICAgYmxpdCwgZGVzdHJveV9jYWlyb19zdXJmYWNlX19yZW5kZXJjb3B5KTsK K30KKwogLyoqCiAgKiBpZ3RfZGlydHlfZmI6CiAgKiBAZmQ6IG9wZW4gZHJtIGZpbGUgZGVzY3Jp cHRvcgpAQCAtMjI3OCw4ICsyNDA0LDggQEAgc3RhdGljIHZvaWQgZGVzdHJveV9jYWlyb19zdXJm YWNlX19jb252ZXJ0KHZvaWQgKmFyZykKIAogc3RhdGljIHZvaWQgY3JlYXRlX2NhaXJvX3N1cmZh Y2VfX2NvbnZlcnQoaW50IGZkLCBzdHJ1Y3QgaWd0X2ZiICpmYikKIHsKLQlzdHJ1Y3QgZmJfY29u dmVydF9ibGl0X3VwbG9hZCAqYmxpdCA9IG1hbGxvYyhzaXplb2YoKmJsaXQpKTsKLQlzdHJ1Y3Qg ZmJfY29udmVydCBjdnQgPSB7IH07CisJc3RydWN0IGZiX2NvbnZlcnRfYmxpdF91cGxvYWQgKmJs aXQgPSBjYWxsb2MoMSwgc2l6ZW9mKCpibGl0KSk7CisJc3RydWN0IGZiX2NvbnZlcnQgY3Z0ID0g eyAwIH07CiAJY29uc3Qgc3RydWN0IGZvcm1hdF9kZXNjX3N0cnVjdCAqZiA9IGxvb2t1cF9kcm1f Zm9ybWF0KGZiLT5kcm1fZm9ybWF0KTsKIAl1bnNpZ25lZCBkcm1fZm9ybWF0OwogCWNhaXJvX2Zv cm1hdF90IGNhaXJvX2lkOwpAQCAtMjMxOCw3ICsyNDQ0LDcgQEAgc3RhdGljIHZvaWQgY3JlYXRl X2NhaXJvX3N1cmZhY2VfX2NvbnZlcnQoaW50IGZkLCBzdHJ1Y3QgaWd0X2ZiICpmYikKIAogCWlm IChmYi0+dGlsaW5nID09IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJTEVEIHx8CiAJICAgIGZi LT50aWxpbmcgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEKSB7Ci0JCXNldHVwX2xp bmVhcl9tYXBwaW5nKGZkLCBmYiwgJmJsaXQtPmJhc2UubGluZWFyKTsKKwkJc2V0dXBfbGluZWFy X21hcHBpbmcoJmJsaXQtPmJhc2UpOwogCX0gZWxzZSB7CiAJCWJsaXQtPmJhc2UubGluZWFyLmZi ID0gKmZiOwogCQlibGl0LT5iYXNlLmxpbmVhci5mYi5nZW1faGFuZGxlID0gMDsKQEAgLTIzOTcs OCArMjUyMywxMCBAQCBjYWlyb19zdXJmYWNlX3QgKmlndF9nZXRfY2Fpcm9fc3VyZmFjZShpbnQg ZmQsIHN0cnVjdCBpZ3RfZmIgKmZiKQogCQkgICAgKChmLT5jYWlyb19pZCA9PSBDQUlST19GT1JN QVRfSU5WQUxJRCkgJiYKIAkJICAgICAoZi0+cGl4bWFuX2lkICE9IFBJWE1BTl9pbnZhbGlkKSkp CiAJCQljcmVhdGVfY2Fpcm9fc3VyZmFjZV9fY29udmVydChmZCwgZmIpOworCQllbHNlIGlmIChp c19jY3NfbW9kaWZpZXIoZmItPnRpbGluZykpCisJCQljcmVhdGVfY2Fpcm9fc3VyZmFjZV9fcmVu ZGVyY29weShmZCwgZmIpOwogCQllbHNlIGlmIChmYi0+dGlsaW5nID09IExPQ0FMX0k5MTVfRk9S TUFUX01PRF9ZX1RJTEVEIHx8Ci0JCSAgICBmYi0+dGlsaW5nID09IExPQ0FMX0k5MTVfRk9STUFU X01PRF9ZZl9USUxFRCkKKwkJCSBmYi0+dGlsaW5nID09IExPQ0FMX0k5MTVfRk9STUFUX01PRF9Z Zl9USUxFRCkKIAkJCWNyZWF0ZV9jYWlyb19zdXJmYWNlX19ibGl0KGZkLCBmYik7CiAJCWVsc2UK IAkJCWNyZWF0ZV9jYWlyb19zdXJmYWNlX19ndHQoZmQsIGZiKTsKLS0gCjIuMTcuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5n IGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2