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 A83B389402 for ; Thu, 21 Feb 2019 09:43:42 +0000 (UTC) From: Dhinakaran Pandiyan Date: Wed, 20 Feb 2019 18:41:22 -0800 Message-Id: <20190221024123.17516-4-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 4/5] lib/igt_fb: s/tiling/modifier/ where appropriate 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: RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClJl bmFtZSB0aGUgaWd0X2ZiLnRpbGluZyB0byBpZ3RfZmIubW9kaWZpZXIgdG8gYmV0dGVyIHJlZmxl Y3QKd2hhdCBpbmZvcm1hdGlvbiBpdCBjYXJyaWVzLiBOb3cgaXQncyBjbGVhciB3aGV0aGVyIHdl J3JlIHRhbGtpbmcKYWJvdXQgYSBtb2RpZmllciBvciBhIGk5MTUgdGlsaW5nIHRoaW5nLgoKU2ln bmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5A aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFu LnBhbmRpeWFuQGludGVsLmNvbT4KLS0tCiBsaWIvaWd0X2ZiLmMgICAgfCAxMDIgKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWIvaWd0X2ZiLmggICAg fCAgMjIgKysrKystLS0tLS0KIHRlc3RzL2ttc19jY3MuYyB8ICAgMiArLQogMyBmaWxlcyBjaGFu Z2VkLCA2MyBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIv aWd0X2ZiLmMgYi9saWIvaWd0X2ZiLmMKaW5kZXggZTAyODgyODIuLjYwNzJmNzBlIDEwMDY0NAot LS0gYS9saWIvaWd0X2ZiLmMKKysrIGIvbGliL2lndF9mYi5jCkBAIC0yNTksNyArMjU5LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBmb3JtYXRfZGVzY19zdHJ1Y3QgKmxvb2t1cF9kcm1fZm9ybWF0 KHVpbnQzMl90IGRybV9mb3JtYXQpCiAvKioKICAqIGlndF9nZXRfZmJfdGlsZV9zaXplOgogICog QGZkOiB0aGUgRFJNIGZpbGUgZGVzY3JpcHRvcgotICogQHRpbGluZzogdGlsaW5nIGxheW91dCBv ZiB0aGUgZnJhbWVidWZmZXIgKGFzIGZyYW1lYnVmZmVyIG1vZGlmaWVyKQorICogQG1vZGlmaWVy OiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlciAoYXMgZnJhbWVidWZmZXIgbW9kaWZp ZXIpCiAgKiBAZmJfYnBwOiBiaXRzIHBlciBwaXhlbCBvZiB0aGUgZnJhbWVidWZmZXIKICAqIEB3 aWR0aF9yZXQ6IHdpZHRoIG9mIHRoZSB0aWxlIGluIGJ5dGVzCiAgKiBAaGVpZ2h0X3JldDogaGVp Z2h0IG9mIHRoZSB0aWxlIGluIGxpbmVzCkBAIC0yNjcsMTAgKzI2NywxMCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGZvcm1hdF9kZXNjX3N0cnVjdCAqbG9va3VwX2RybV9mb3JtYXQodWludDMyX3Qg ZHJtX2Zvcm1hdCkKICAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB3aWR0aCBhbmQgaGVpZ2h0IG9m IGEgdGlsZSBiYXNlZCBvbiB0aGUgZ2l2ZW4gdGlsaW5nCiAgKiBmb3JtYXQuCiAgKi8KLXZvaWQg aWd0X2dldF9mYl90aWxlX3NpemUoaW50IGZkLCB1aW50NjRfdCB0aWxpbmcsIGludCBmYl9icHAs Cit2b2lkIGlndF9nZXRfZmJfdGlsZV9zaXplKGludCBmZCwgdWludDY0X3QgbW9kaWZpZXIsIGlu dCBmYl9icHAsCiAJCQkgIHVuc2lnbmVkICp3aWR0aF9yZXQsIHVuc2lnbmVkICpoZWlnaHRfcmV0 KQogewotCXN3aXRjaCAodGlsaW5nKSB7CisJc3dpdGNoIChtb2RpZmllcikgewogCWNhc2UgTE9D QUxfRFJNX0ZPUk1BVF9NT0RfTk9ORToKIAkJaWYgKGlzX2k5MTVfZGV2aWNlKGZkKSkKIAkJCSp3 aWR0aF9yZXQgPSA2NDsKQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgdW5zaWduZWQgZmJfcGxh bmVfd2lkdGgoY29uc3Qgc3RydWN0IGlndF9mYiAqZmIsIGludCBwbGFuZSkKIHsKIAljb25zdCBz dHJ1Y3QgZm9ybWF0X2Rlc2Nfc3RydWN0ICpmb3JtYXQgPSBsb29rdXBfZHJtX2Zvcm1hdChmYi0+ ZHJtX2Zvcm1hdCk7CiAKLQlpZiAoaXNfY2NzX21vZGlmaWVyKGZiLT50aWxpbmcpICYmIHBsYW5l ID09IDEpCisJaWYgKGlzX2Njc19tb2RpZmllcihmYi0+bW9kaWZpZXIpICYmIHBsYW5lID09IDEp CiAJCXJldHVybiBESVZfUk9VTkRfVVAoZmItPndpZHRoLCAxMDI0KSAqIDEyODsKIAlpZiAoZmIt PmRybV9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyICYmIHBsYW5lID09IDEpCiAJCXJldHVybiBE SVZfUk9VTkRfVVAoZmItPndpZHRoLCAyKTsKQEAgLTM1NSw3ICszNTUsNyBAQCBzdGF0aWMgdW5z aWduZWQgZmJfcGxhbmVfYnBwKGNvbnN0IHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQgcGxhbmUpCiB7 CiAJY29uc3Qgc3RydWN0IGZvcm1hdF9kZXNjX3N0cnVjdCAqZm9ybWF0ID0gbG9va3VwX2RybV9m b3JtYXQoZmItPmRybV9mb3JtYXQpOwogCi0JaWYgKGlzX2Njc19tb2RpZmllcihmYi0+dGlsaW5n KSAmJiBwbGFuZSA9PSAxKQorCWlmIChpc19jY3NfbW9kaWZpZXIoZmItPm1vZGlmaWVyKSAmJiBw bGFuZSA9PSAxKQogCQlyZXR1cm4gODsKIAllbHNlCiAJCXJldHVybiBmb3JtYXQtPnBsYW5lX2Jw cFtwbGFuZV07CkBAIC0zNjUsNyArMzY1LDcgQEAgc3RhdGljIHVuc2lnbmVkIGZiX3BsYW5lX2hl aWdodChjb25zdCBzdHJ1Y3QgaWd0X2ZiICpmYiwgaW50IHBsYW5lKQogewogCWNvbnN0IHN0cnVj dCBmb3JtYXRfZGVzY19zdHJ1Y3QgKmZvcm1hdCA9IGxvb2t1cF9kcm1fZm9ybWF0KGZiLT5kcm1f Zm9ybWF0KTsKIAotCWlmIChpc19jY3NfbW9kaWZpZXIoZmItPnRpbGluZykgJiYgcGxhbmUgPT0g MSkKKwlpZiAoaXNfY2NzX21vZGlmaWVyKGZiLT5tb2RpZmllcikgJiYgcGxhbmUgPT0gMSkKIAkJ cmV0dXJuIERJVl9ST1VORF9VUChmYi0+aGVpZ2h0LCA1MTIpICogMzI7CiAJaWYgKGZiLT5kcm1f Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMiAmJiBwbGFuZSA9PSAxKQogCQlyZXR1cm4gRElWX1JP VU5EX1VQKGZiLT5oZWlnaHQsIDIpOwpAQCAtMzgwLDcgKzM4MCw3IEBAIHN0YXRpYyBpbnQgZmJf bnVtX3BsYW5lcyhjb25zdCBzdHJ1Y3QgaWd0X2ZiICpmYikKIHsKIAljb25zdCBzdHJ1Y3QgZm9y bWF0X2Rlc2Nfc3RydWN0ICpmb3JtYXQgPSBsb29rdXBfZHJtX2Zvcm1hdChmYi0+ZHJtX2Zvcm1h dCk7CiAKLQlpZiAoaXNfY2NzX21vZGlmaWVyKGZiLT50aWxpbmcpKQorCWlmIChpc19jY3NfbW9k aWZpZXIoZmItPm1vZGlmaWVyKSkKIAkJcmV0dXJuIDI7CiAJZWxzZQogCQlyZXR1cm4gZm9ybWF0 LT5udW1fcGxhbmVzOwpAQCAtNDAxLDcgKzQwMSw3IEBAIHN0YXRpYyB2b2lkIGZiX2luaXQoc3Ry dWN0IGlndF9mYiAqZmIsCiAKIAlmYi0+d2lkdGggPSB3aWR0aDsKIAlmYi0+aGVpZ2h0ID0gaGVp Z2h0OwotCWZiLT50aWxpbmcgPSBtb2RpZmllcjsKKwlmYi0+bW9kaWZpZXIgPSBtb2RpZmllcjsK IAlmYi0+ZHJtX2Zvcm1hdCA9IGRybV9mb3JtYXQ7CiAJZmItPmZkID0gZmQ7CiAJZmItPm51bV9w bGFuZXMgPSBmYl9udW1fcGxhbmVzKGZiKTsKQEAgLTQyMCw3ICs0MjAsNyBAQCBzdGF0aWMgdWlu dDMyX3QgY2FsY19wbGFuZV9zdHJpZGUoc3RydWN0IGlndF9mYiAqZmIsIGludCBwbGFuZSkKIAl1 aW50MzJfdCBtaW5fc3RyaWRlID0gZmItPnBsYW5lX3dpZHRoW3BsYW5lXSAqCiAJCShmYi0+cGxh bmVfYnBwW3BsYW5lXSAvIDgpOwogCi0JaWYgKGZiLT50aWxpbmcgIT0gTE9DQUxfRFJNX0ZPUk1B VF9NT0RfTk9ORSAmJgorCWlmIChmYi0+bW9kaWZpZXIgIT0gTE9DQUxfRFJNX0ZPUk1BVF9NT0Rf Tk9ORSAmJgogCSAgICBpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmYi0+ZmQpKSA8PSAz KSB7CiAJCXVpbnQzMl90IHN0cmlkZTsKIApAQCAtNDM5LDcgKzQzOSw3IEBAIHN0YXRpYyB1aW50 MzJfdCBjYWxjX3BsYW5lX3N0cmlkZShzdHJ1Y3QgaWd0X2ZiICpmYiwgaW50IHBsYW5lKQogCX0g ZWxzZSB7CiAJCXVuc2lnbmVkIGludCB0aWxlX3dpZHRoLCB0aWxlX2hlaWdodDsKIAotCQlpZ3Rf Z2V0X2ZiX3RpbGVfc2l6ZShmYi0+ZmQsIGZiLT50aWxpbmcsIGZiLT5wbGFuZV9icHBbcGxhbmVd LAorCQlpZ3RfZ2V0X2ZiX3RpbGVfc2l6ZShmYi0+ZmQsIGZiLT5tb2RpZmllciwgZmItPnBsYW5l X2JwcFtwbGFuZV0sCiAJCQkJICAgICAmdGlsZV93aWR0aCwgJnRpbGVfaGVpZ2h0KTsKIAogCQly ZXR1cm4gQUxJR04obWluX3N0cmlkZSwgdGlsZV93aWR0aCk7CkBAIC00NDgsNyArNDQ4LDcgQEAg c3RhdGljIHVpbnQzMl90IGNhbGNfcGxhbmVfc3RyaWRlKHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQg cGxhbmUpCiAKIHN0YXRpYyB1aW50NjRfdCBjYWxjX3BsYW5lX3NpemUoc3RydWN0IGlndF9mYiAq ZmIsIGludCBwbGFuZSkKIHsKLQlpZiAoZmItPnRpbGluZyAhPSBMT0NBTF9EUk1fRk9STUFUX01P RF9OT05FICYmCisJaWYgKGZiLT5tb2RpZmllciAhPSBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05F ICYmCiAJICAgIGludGVsX2dlbihpbnRlbF9nZXRfZHJtX2RldmlkKGZiLT5mZCkpIDw9IDMpIHsK IAkJdWludDY0X3QgbWluX3NpemUgPSAodWludDY0X3QpIGZiLT5zdHJpZGVzW3BsYW5lXSAqCiAJ CQlmYi0+cGxhbmVfaGVpZ2h0W3BsYW5lXTsKQEAgLTQ2OSw3ICs0NjksNyBAQCBzdGF0aWMgdWlu dDY0X3QgY2FsY19wbGFuZV9zaXplKHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQgcGxhbmUpCiAJfSBl bHNlIHsKIAkJdW5zaWduZWQgaW50IHRpbGVfd2lkdGgsIHRpbGVfaGVpZ2h0OwogCi0JCWlndF9n ZXRfZmJfdGlsZV9zaXplKGZiLT5mZCwgZmItPnRpbGluZywgZmItPnBsYW5lX2JwcFtwbGFuZV0s CisJCWlndF9nZXRfZmJfdGlsZV9zaXplKGZiLT5mZCwgZmItPm1vZGlmaWVyLCBmYi0+cGxhbmVf YnBwW3BsYW5lXSwKIAkJCQkgICAgICZ0aWxlX3dpZHRoLCAmdGlsZV9oZWlnaHQpOwogCiAJCXJl dHVybiAodWludDY0X3QpIGZiLT5zdHJpZGVzW3BsYW5lXSAqCkBAIC01MDEsMTkgKzUwMSwxOSBA QCBzdGF0aWMgdWludDY0X3QgY2FsY19mYl9zaXplKHN0cnVjdCBpZ3RfZmIgKmZiKQogICogQHdp ZHRoOiB3aWR0aCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWxzCiAgKiBAaGVpZ2h0OiBoZWln aHQgb2YgdGhlIGZyYW1lYnVmZmVyIGluIHBpeGVscwogICogQGZvcm1hdDogZHJtIGZvdXJjYyBw aXhlbCBmb3JtYXQgY29kZQotICogQHRpbGluZzogdGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVi dWZmZXIgKGFzIGZyYW1lYnVmZmVyIG1vZGlmaWVyKQorICogQG1vZGlmaWVyOiB0aWxpbmcgbGF5 b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlciAoYXMgZnJhbWVidWZmZXIgbW9kaWZpZXIpCiAgKiBAc2l6 ZV9yZXQ6IHJldHVybmVkIHNpemUgZm9yIHRoZSBmcmFtZWJ1ZmZlcgogICogQHN0cmlkZV9yZXQ6 IHJldHVybmVkIHN0cmlkZSBmb3IgdGhlIGZyYW1lYnVmZmVyCiAgKgogICogVGhpcyBmdW5jdGlv biByZXR1cm5zIHZhbGlkIHN0cmlkZSBhbmQgc2l6ZSB2YWx1ZXMgZm9yIGEgZnJhbWVidWZmZXIg d2l0aCB0aGUKICAqIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgogICovCi12b2lkIGlndF9jYWxjX2Zi X3NpemUoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVpbnQzMl90IGRybV9mb3JtYXQs IHVpbnQ2NF90IHRpbGluZywKK3ZvaWQgaWd0X2NhbGNfZmJfc2l6ZShpbnQgZmQsIGludCB3aWR0 aCwgaW50IGhlaWdodCwgdWludDMyX3QgZHJtX2Zvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIsCiAJ CSAgICAgIHVpbnQ2NF90ICpzaXplX3JldCwgdW5zaWduZWQgKnN0cmlkZV9yZXQpCiB7CiAJc3Ry dWN0IGlndF9mYiBmYjsKIAotCWZiX2luaXQoJmZiLCBmZCwgd2lkdGgsIGhlaWdodCwgZHJtX2Zv cm1hdCwgdGlsaW5nLAorCWZiX2luaXQoJmZiLCBmZCwgd2lkdGgsIGhlaWdodCwgZHJtX2Zvcm1h dCwgbW9kaWZpZXIsCiAJCUlHVF9DT0xPUl9ZQ0JDUl9CVDcwOSwgSUdUX0NPTE9SX1lDQkNSX0xJ TUlURURfUkFOR0UpOwogCiAJZmIuc2l6ZSA9IGNhbGNfZmJfc2l6ZSgmZmIpOwpAQCAtNjM3LDcg KzYzNyw3IEBAIHN0YXRpYyBpbnQgY3JlYXRlX2JvX2Zvcl9mYihzdHJ1Y3QgaWd0X2ZiICpmYikK IAlpbnQgZmQgPSBmYi0+ZmQ7CiAKIAlpZiAoaXNfaTkxNV9kZXZpY2UoZmQpICYmCi0JICAgKGZi LT50aWxpbmcgfHwgZmItPnNpemUgfHwgZmItPnN0cmlkZXNbMF0gfHwgaWd0X2Zvcm1hdF9pc195 dXYoZmItPmRybV9mb3JtYXQpKSkgeworCSAgICAoZmItPm1vZGlmaWVyIHx8IGZiLT5zaXplIHx8 IGZiLT5zdHJpZGVzWzBdIHx8IGlndF9mb3JtYXRfaXNfeXV2KGZiLT5kcm1fZm9ybWF0KSkpIHsK IAkJdWludDY0X3Qgc2l6ZTsKIAogCQlzaXplID0gY2FsY19mYl9zaXplKGZiKTsKQEAgLTY0OSw3 ICs2NDksNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9ib19mb3JfZmIoc3RydWN0IGlndF9mYiAqZmIp CiAJCWZiLT5pc19kdW1iID0gZmFsc2U7CiAJCWZiLT5nZW1faGFuZGxlID0gZ2VtX2NyZWF0ZShm ZCwgZmItPnNpemUpOwogCQlnZW1fc2V0X3RpbGluZyhmZCwgZmItPmdlbV9oYW5kbGUsCi0JCQkg ICAgICAgaWd0X2ZiX21vZF90b190aWxpbmcoZmItPnRpbGluZyksCisJCQkgICAgICAgaWd0X2Zi X21vZF90b190aWxpbmcoZmItPm1vZGlmaWVyKSwKIAkJCSAgICAgICBmYi0+c3RyaWRlc1swXSk7 CiAKIAkJZ290byBvdXQ7CkBAIC0xMDUzLDcgKzEwNTMsNyBAQCB2b2lkIGlndF9wYWludF9pbWFn ZShjYWlyb190ICpjciwgY29uc3QgY2hhciAqZmlsZW5hbWUsCiAgKiBAd2lkdGg6IHdpZHRoIG9m IHRoZSBmcmFtZWJ1ZmZlciBpbiBwaXhlbAogICogQGhlaWdodDogaGVpZ2h0IG9mIHRoZSBmcmFt ZWJ1ZmZlciBpbiBwaXhlbAogICogQGZvcm1hdDogZHJtIGZvdXJjYyBwaXhlbCBmb3JtYXQgY29k ZQotICogQHRpbGluZzogdGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIgKGFzIGZyYW1l YnVmZmVyIG1vZGlmaWVyKQorICogQG1vZGlmaWVyOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFt ZWJ1ZmZlciAoYXMgZnJhbWVidWZmZXIgbW9kaWZpZXIpCiAgKiBAZmI6IHBvaW50ZXIgdG8gYW4g I2lndF9mYiBzdHJ1Y3R1cmUKICAqIEBib19zaXplOiBzaXplIG9mIHRoZSBiYWNraW5nIGJvICgw IGZvciBhdXRvbWF0aWMgc2l6ZSkKICAqIEBib19zdHJpZGU6IHN0cmlkZSBvZiB0aGUgYmFja2lu ZyBibyAoMCBmb3IgYXV0b21hdGljIHN0cmlkZSkKQEAgLTEwNzAsNyArMTA3MCw3IEBAIHZvaWQg aWd0X3BhaW50X2ltYWdlKGNhaXJvX3QgKmNyLCBjb25zdCBjaGFyICpmaWxlbmFtZSwKICAqLwog dW5zaWduZWQgaW50CiBpZ3RfY3JlYXRlX2ZiX3dpdGhfYm9fc2l6ZShpbnQgZmQsIGludCB3aWR0 aCwgaW50IGhlaWdodCwKLQkJCSAgIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgdGlsaW5nLAor CQkJICAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCSAgIHN0cnVjdCBp Z3RfZmIgKmZiLCB1aW50NjRfdCBib19zaXplLAogCQkJICAgdW5zaWduZWQgYm9fc3RyaWRlKQog ewpAQCAtMTA3OSw3ICsxMDc5LDcgQEAgaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoaW50IGZk LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAJZW51bSBpZ3RfY29sb3JfcmFuZ2UgY29sb3JfcmFu Z2UgPSBJR1RfQ09MT1JfWUNCQ1JfTElNSVRFRF9SQU5HRTsKIAl1aW50MzJfdCBmbGFncyA9IDA7 CiAKLQlmYl9pbml0KGZiLCBmZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0aWxpbmcsCisJZmJf aW5pdChmYiwgZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgbW9kaWZpZXIsCiAJCWNvbG9yX2Vu Y29kaW5nLCBjb2xvcl9yYW5nZSk7CiAKIAlmb3IgKGludCBpID0gMDsgaSA8IGZiLT5udW1fcGxh bmVzOyBpKyspCkBAIC0xMDg3LDggKzEwODcsOCBAQCBpZ3RfY3JlYXRlX2ZiX3dpdGhfYm9fc2l6 ZShpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwKIAogCWZiLT5zaXplID0gYm9fc2l6ZTsK IAotCWlndF9kZWJ1ZygiJXMod2lkdGg9JWQsIGhlaWdodD0lZCwgZm9ybWF0PTB4JXgsIHRpbGlu Zz0weCUiUFJJeDY0Iiwgc2l6ZT0lIlBSSXU2NCIpXG4iLAotCQkgIF9fZnVuY19fLCB3aWR0aCwg aGVpZ2h0LCBmb3JtYXQsIHRpbGluZywgYm9fc2l6ZSk7CisJaWd0X2RlYnVnKCIlcyh3aWR0aD0l ZCwgaGVpZ2h0PSVkLCBmb3JtYXQ9MHgleCwgbW9kaWZpZXI9MHglIlBSSXg2NCIsIHNpemU9JSJQ Ukl1NjQiKVxuIiwKKwkJICBfX2Z1bmNfXywgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBtb2RpZmll ciwgYm9fc2l6ZSk7CiAKIAljcmVhdGVfYm9fZm9yX2ZiKGZiKTsKIAlpZ3RfYXNzZXJ0KGZiLT5n ZW1faGFuZGxlID4gMCk7CkBAIC0xMDk2LDEyICsxMDk2LDEyIEBAIGlndF9jcmVhdGVfZmJfd2l0 aF9ib19zaXplKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAogCWlndF9kZWJ1ZygiJXMo aGFuZGxlPSVkLCBwaXRjaD0lZClcbiIsCiAJCSAgX19mdW5jX18sIGZiLT5nZW1faGFuZGxlLCBm Yi0+c3RyaWRlc1swXSk7CiAKLQlpZiAoZmItPnRpbGluZyB8fCBpZ3RfaGFzX2ZiX21vZGlmaWVy cyhmZCkpCisJaWYgKGZiLT5tb2RpZmllciB8fCBpZ3RfaGFzX2ZiX21vZGlmaWVycyhmZCkpCiAJ CWZsYWdzID0gTE9DQUxfRFJNX01PREVfRkJfTU9ESUZJRVJTOwogCiAJZG9fb3JfZGllKF9fa21z X2FkZGZiKGZiLT5mZCwgZmItPmdlbV9oYW5kbGUsCiAJCQkgICAgICBmYi0+d2lkdGgsIGZiLT5o ZWlnaHQsCi0JCQkgICAgICBmYi0+ZHJtX2Zvcm1hdCwgZmItPnRpbGluZywKKwkJCSAgICAgIGZi LT5kcm1fZm9ybWF0LCBmYi0+bW9kaWZpZXIsCiAJCQkgICAgICBmYi0+c3RyaWRlcywgZmItPm9m ZnNldHMsIGZiLT5udW1fcGxhbmVzLCBmbGFncywKIAkJCSAgICAgICZmYi0+ZmJfaWQpKTsKIApA QCAtMTExNCw3ICsxMTE0LDcgQEAgaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoaW50IGZkLCBp bnQgd2lkdGgsIGludCBoZWlnaHQsCiAgKiBAd2lkdGg6IHdpZHRoIG9mIHRoZSBmcmFtZWJ1ZmZl ciBpbiBwaXhlbAogICogQGhlaWdodDogaGVpZ2h0IG9mIHRoZSBmcmFtZWJ1ZmZlciBpbiBwaXhl bAogICogQGZvcm1hdDogZHJtIGZvdXJjYyBwaXhlbCBmb3JtYXQgY29kZQotICogQHRpbGluZzog dGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIKKyAqIEBtb2RpZmllcjogdGlsaW5nIGxh eW91dCBvZiB0aGUgZnJhbWVidWZmZXIKICAqIEBmYjogcG9pbnRlciB0byBhbiAjaWd0X2ZiIHN0 cnVjdHVyZQogICoKICAqIFRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIGEgZ2VtIGJ1ZmZlciBvYmpl Y3Qgc3VpdGFibGUgdG8gYmFjayBhIGZyYW1lYnVmZmVyCkBAIC0xMTI4LDkgKzExMjgsOSBAQCBp Z3RfY3JlYXRlX2ZiX3dpdGhfYm9fc2l6ZShpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwK ICAqIFRoZSBrbXMgaWQgb2YgdGhlIGNyZWF0ZWQgZnJhbWVidWZmZXIuCiAgKi8KIHVuc2lnbmVk IGludCBpZ3RfY3JlYXRlX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1aW50MzJf dCBmb3JtYXQsCi0JCQkgICB1aW50NjRfdCB0aWxpbmcsIHN0cnVjdCBpZ3RfZmIgKmZiKQorCQkJ ICAgdWludDY0X3QgbW9kaWZpZXIsIHN0cnVjdCBpZ3RfZmIgKmZiKQogewotCXJldHVybiBpZ3Rf Y3JlYXRlX2ZiX3dpdGhfYm9fc2l6ZShmZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0aWxpbmcs IGZiLAorCXJldHVybiBpZ3RfY3JlYXRlX2ZiX3dpdGhfYm9fc2l6ZShmZCwgd2lkdGgsIGhlaWdo dCwgZm9ybWF0LCBtb2RpZmllciwgZmIsCiAJCQkJCSAgMCwgMCk7CiB9CiAKQEAgLTExNDAsNyAr MTE0MCw3IEBAIHVuc2lnbmVkIGludCBpZ3RfY3JlYXRlX2ZiKGludCBmZCwgaW50IHdpZHRoLCBp bnQgaGVpZ2h0LCB1aW50MzJfdCBmb3JtYXQsCiAgKiBAd2lkdGg6IHdpZHRoIG9mIHRoZSBmcmFt ZWJ1ZmZlciBpbiBwaXhlbAogICogQGhlaWdodDogaGVpZ2h0IG9mIHRoZSBmcmFtZWJ1ZmZlciBp biBwaXhlbAogICogQGZvcm1hdDogZHJtIGZvdXJjYyBwaXhlbCBmb3JtYXQgY29kZQotICogQHRp bGluZzogdGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIKKyAqIEBtb2RpZmllcjogdGls aW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIKICAqIEByOiByZWQgdmFsdWUgdG8gdXNlIGFz IGZpbGwgY29sb3IKICAqIEBnOiBncmVlbiB2YWx1ZSB0byB1c2UgYXMgZmlsbCBjb2xvcgogICog QGI6IGJsdWUgdmFsdWUgdG8gdXNlIGFzIGZpbGwgY29sb3IKQEAgLTExNTgsMTQgKzExNTgsMTQg QEAgdW5zaWduZWQgaW50IGlndF9jcmVhdGVfZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWln aHQsIHVpbnQzMl90IGZvcm1hdCwKICAqIGZhaWx1cmUuCiAgKi8KIHVuc2lnbmVkIGludCBpZ3Rf Y3JlYXRlX2NvbG9yX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAotCQkJCSB1aW50 MzJfdCBmb3JtYXQsIHVpbnQ2NF90IHRpbGluZywKKwkJCQkgdWludDMyX3QgZm9ybWF0LCB1aW50 NjRfdCBtb2RpZmllciwKIAkJCQkgZG91YmxlIHIsIGRvdWJsZSBnLCBkb3VibGUgYiwKIAkJCQkg c3RydWN0IGlndF9mYiAqZmIgLyogb3V0ICovKQogewogCXVuc2lnbmVkIGludCBmYl9pZDsKIAlj YWlyb190ICpjcjsKIAotCWZiX2lkID0gaWd0X2NyZWF0ZV9mYihmZCwgd2lkdGgsIGhlaWdodCwg Zm9ybWF0LCB0aWxpbmcsIGZiKTsKKwlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZmQsIHdpZHRoLCBo ZWlnaHQsIGZvcm1hdCwgbW9kaWZpZXIsIGZiKTsKIAlpZ3RfYXNzZXJ0KGZiX2lkKTsKIAogCWNy ID0gaWd0X2dldF9jYWlyb19jdHgoZmQsIGZiKTsKQEAgLTExODEsNyArMTE4MSw3IEBAIHVuc2ln bmVkIGludCBpZ3RfY3JlYXRlX2NvbG9yX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 LAogICogQHdpZHRoOiB3aWR0aCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWwKICAqIEBoZWln aHQ6IGhlaWdodCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWwKICAqIEBmb3JtYXQ6IGRybSBm b3VyY2MgcGl4ZWwgZm9ybWF0IGNvZGUKLSAqIEB0aWxpbmc6IHRpbGluZyBsYXlvdXQgb2YgdGhl IGZyYW1lYnVmZmVyCisgKiBAbW9kaWZpZXI6IHRpbGluZyBsYXlvdXQgb2YgdGhlIGZyYW1lYnVm ZmVyCiAgKiBAZmI6IHBvaW50ZXIgdG8gYW4gI2lndF9mYiBzdHJ1Y3R1cmUKICAqCiAgKiBUaGlz IGZ1bmN0aW9uIGFsbG9jYXRlcyBhIGdlbSBidWZmZXIgb2JqZWN0IHN1aXRhYmxlIHRvIGJhY2sg YSBmcmFtZWJ1ZmZlcgpAQCAtMTE5NiwxMyArMTE5NiwxMyBAQCB1bnNpZ25lZCBpbnQgaWd0X2Ny ZWF0ZV9jb2xvcl9mYihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwKICAqIGZhaWx1cmUu CiAgKi8KIHVuc2lnbmVkIGludCBpZ3RfY3JlYXRlX3BhdHRlcm5fZmIoaW50IGZkLCBpbnQgd2lk dGgsIGludCBoZWlnaHQsCi0JCQkJICAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcs CisJCQkJICAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCQkgICBzdHJ1 Y3QgaWd0X2ZiICpmYiAvKiBvdXQgKi8pCiB7CiAJdW5zaWduZWQgaW50IGZiX2lkOwogCWNhaXJv X3QgKmNyOwogCi0JZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKGZkLCB3aWR0aCwgaGVpZ2h0LCBmb3Jt YXQsIHRpbGluZywgZmIpOworCWZiX2lkID0gaWd0X2NyZWF0ZV9mYihmZCwgd2lkdGgsIGhlaWdo dCwgZm9ybWF0LCBtb2RpZmllciwgZmIpOwogCWlndF9hc3NlcnQoZmJfaWQpOwogCiAJY3IgPSBp Z3RfZ2V0X2NhaXJvX2N0eChmZCwgZmIpOwpAQCAtMTIxOCw3ICsxMjE4LDcgQEAgdW5zaWduZWQg aW50IGlndF9jcmVhdGVfcGF0dGVybl9mYihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwK ICAqIEB3aWR0aDogd2lkdGggb2YgdGhlIGZyYW1lYnVmZmVyIGluIHBpeGVsCiAgKiBAaGVpZ2h0 OiBoZWlnaHQgb2YgdGhlIGZyYW1lYnVmZmVyIGluIHBpeGVsCiAgKiBAZm9ybWF0OiBkcm0gZm91 cmNjIHBpeGVsIGZvcm1hdCBjb2RlCi0gKiBAdGlsaW5nOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBm cmFtZWJ1ZmZlcgorICogQG1vZGlmaWVyOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZl cgogICogQHI6IHJlZCB2YWx1ZSB0byB1c2UgYXMgZmlsbCBjb2xvcgogICogQGc6IGdyZWVuIHZh bHVlIHRvIHVzZSBhcyBmaWxsIGNvbG9yCiAgKiBAYjogYmx1ZSB2YWx1ZSB0byB1c2UgYXMgZmls bCBjb2xvcgpAQCAtMTIzNywxNCArMTIzNywxNCBAQCB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9w YXR0ZXJuX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAogICogZmFpbHVyZS4KICAq LwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfY29sb3JfcGF0dGVybl9mYihpbnQgZmQsIGludCB3 aWR0aCwgaW50IGhlaWdodCwKLQkJCQkJIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgdGlsaW5n LAorCQkJCQkgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCQkJIGRvdWJs ZSByLCBkb3VibGUgZywgZG91YmxlIGIsCiAJCQkJCSBzdHJ1Y3QgaWd0X2ZiICpmYiAvKiBvdXQg Ki8pCiB7CiAJdW5zaWduZWQgaW50IGZiX2lkOwogCWNhaXJvX3QgKmNyOwogCi0JZmJfaWQgPSBp Z3RfY3JlYXRlX2ZiKGZkLCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHRpbGluZywgZmIpOworCWZi X2lkID0gaWd0X2NyZWF0ZV9mYihmZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBtb2RpZmllciwg ZmIpOwogCWlndF9hc3NlcnQoZmJfaWQpOwogCiAJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChmZCwg ZmIpOwpAQCAtMTI2MSw3ICsxMjYxLDcgQEAgdW5zaWduZWQgaW50IGlndF9jcmVhdGVfY29sb3Jf cGF0dGVybl9mYihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwKICAqIEB3aWR0aDogd2lk dGggb2YgdGhlIGZyYW1lYnVmZmVyIGluIHBpeGVsIG9yIDAKICAqIEBoZWlnaHQ6IGhlaWdodCBv ZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWwgb3IgMAogICogQGZvcm1hdDogZHJtIGZvdXJjYyBw aXhlbCBmb3JtYXQgY29kZQotICogQHRpbGluZzogdGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVi dWZmZXIKKyAqIEBtb2RpZmllcjogdGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIKICAq IEBmaWxlbmFtZTogZmlsZW5hbWUgb2YgdGhlIHBuZyBpbWFnZSB0byBkcmF3CiAgKiBAZmI6IHBv aW50ZXIgdG8gYW4gI2lndF9mYiBzdHJ1Y3R1cmUKICAqCkBAIC0xMjczLDcgKzEyNzMsNyBAQCB1 bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJuX2ZiKGludCBmZCwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0LAogICogZmFpbHVyZS4KICAqLwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVf aW1hZ2VfZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCi0JCQkJIHVpbnQzMl90IGZv cm1hdCwgdWludDY0X3QgdGlsaW5nLAorCQkJCSB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1v ZGlmaWVyLAogCQkJCSBjb25zdCBjaGFyICpmaWxlbmFtZSwKIAkJCQkgc3RydWN0IGlndF9mYiAq ZmIgLyogb3V0ICovKQogewpAQCAtMTI4OSw3ICsxMjg5LDcgQEAgdW5zaWduZWQgaW50IGlndF9j cmVhdGVfaW1hZ2VfZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAJCWhlaWdodCA9 IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2hlaWdodChpbWFnZSk7CiAJY2Fpcm9fc3VyZmFjZV9k ZXN0cm95KGltYWdlKTsKIAotCWZiX2lkID0gaWd0X2NyZWF0ZV9mYihmZCwgd2lkdGgsIGhlaWdo dCwgZm9ybWF0LCB0aWxpbmcsIGZiKTsKKwlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZmQsIHdpZHRo LCBoZWlnaHQsIGZvcm1hdCwgbW9kaWZpZXIsIGZiKTsKIAogCWNyID0gaWd0X2dldF9jYWlyb19j dHgoZmQsIGZiKTsKIAlpZ3RfcGFpbnRfaW1hZ2UoY3IsIGZpbGVuYW1lLCAwLCAwLCB3aWR0aCwg aGVpZ2h0KTsKQEAgLTEzNjUsNyArMTM2NSw3IEBAIHN0YXRpYyB2b2lkIHN0ZXJlb19mYl9sYXlv dXRfZnJvbV9tb2RlKHN0cnVjdCBzdGVyZW9fZmJfbGF5b3V0ICpsYXlvdXQsCiAgKiBAZHJtX2Zk OiBvcGVuIGk5MTUgZHJtIGZpbGUgZGVzY3JpcHRvcgogICogQG1vZGU6IEEgc3RlcmVvIDNEIG1v ZGUuCiAgKiBAZm9ybWF0OiBkcm0gZm91cmNjIHBpeGVsIGZvcm1hdCBjb2RlCi0gKiBAdGlsaW5n OiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlcgorICogQG1vZGlmaWVyOiB0aWxpbmcg bGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlcgogICoKICAqIENyZWF0ZSBhIGZyYW1lYnVmZmVyIGZv ciB1c2Ugd2l0aCB0aGUgc3RlcmVvIDNEIG1vZGUgc3BlY2lmaWVkIGJ5IEBtb2RlLgogICoKQEAg LTEzNzQsNyArMTM3NCw3IEBAIHN0YXRpYyB2b2lkIHN0ZXJlb19mYl9sYXlvdXRfZnJvbV9tb2Rl KHN0cnVjdCBzdGVyZW9fZmJfbGF5b3V0ICpsYXlvdXQsCiAgKiBmYWlsdXJlLgogICovCiB1bnNp Z25lZCBpbnQgaWd0X2NyZWF0ZV9zdGVyZW9fZmIoaW50IGRybV9mZCwgZHJtTW9kZU1vZGVJbmZv ICptb2RlLAotCQkJCSAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcpCisJCQkJICB1 aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyKQogewogCXN0cnVjdCBzdGVyZW9fZmJf bGF5b3V0IGxheW91dDsKIAljYWlyb190ICpjcjsKQEAgLTEzODMsNyArMTM4Myw3IEBAIHVuc2ln bmVkIGludCBpZ3RfY3JlYXRlX3N0ZXJlb19mYihpbnQgZHJtX2ZkLCBkcm1Nb2RlTW9kZUluZm8g Km1vZGUsCiAKIAlzdGVyZW9fZmJfbGF5b3V0X2Zyb21fbW9kZSgmbGF5b3V0LCBtb2RlKTsKIAlm Yl9pZCA9IGlndF9jcmVhdGVfZmIoZHJtX2ZkLCBsYXlvdXQuZmJfd2lkdGgsIGxheW91dC5mYl9o ZWlnaHQsIGZvcm1hdCwKLQkJCSAgICAgIHRpbGluZywgJmZiKTsKKwkJCSAgICAgIG1vZGlmaWVy LCAmZmIpOwogCWNyID0gaWd0X2dldF9jYWlyb19jdHgoZHJtX2ZkLCAmZmIpOwogCiAJaWd0X3Bh aW50X2ltYWdlKGNyLCAiMTA4MHAtbGVmdC5wbmciLApAQCAtMTQ0NCwxMiArMTQ0NCwxMiBAQCBz dGF0aWMgdm9pZCBpbml0X2J1ZihzdHJ1Y3QgZmJfYmxpdF91cGxvYWQgKmJsaXQsCiAKIAlidWYt PmJvID0gZ2VtX2hhbmRsZV90b19saWJkcm1fYm8oYmxpdC0+YnVmbWdyLCBibGl0LT5mZCwKIAkJ CQkJICBuYW1lLCBmYi0+Z2VtX2hhbmRsZSk7Ci0JYnVmLT50aWxpbmcgPSBpZ3RfZmJfbW9kX3Rv X3RpbGluZyhmYi0+dGlsaW5nKTsKKwlidWYtPnRpbGluZyA9IGlndF9mYl9tb2RfdG9fdGlsaW5n KGZiLT5tb2RpZmllcik7CiAJYnVmLT5zdHJpZGUgPSBmYi0+c3RyaWRlc1swXTsKIAlidWYtPmJw cCA9IGZiLT5wbGFuZV9icHBbMF07CiAJYnVmLT5zaXplID0gZmItPnNpemU7CiAKLQlpZiAoaXNf Y2NzX21vZGlmaWVyKGZiLT50aWxpbmcpKSB7CisJaWYgKGlzX2Njc19tb2RpZmllcihmYi0+bW9k aWZpZXIpKSB7CiAJCWlndF9hc3NlcnRfZXEoZmItPnN0cmlkZXNbMF0gJiAxMjcsIDApOwogCQlp Z3RfYXNzZXJ0X2VxKGZiLT5zdHJpZGVzWzFdICYgMTI3LCAwKTsKIApAQCAtMTQ5NCwxNCArMTQ5 NCwxNCBAQCBzdGF0aWMgdm9pZCBibGl0Y29weShjb25zdCBzdHJ1Y3QgaWd0X2ZiICpkc3RfZmIs CiAJCQkJCSAgIHNyY19mYi0+Z2VtX2hhbmRsZSwKIAkJCQkJICAgc3JjX2ZiLT5vZmZzZXRzW2ld LAogCQkJCQkgICBzcmNfZmItPnN0cmlkZXNbaV0sCi0JCQkJCSAgIGlndF9mYl9tb2RfdG9fdGls aW5nKHNyY19mYi0+dGlsaW5nKSwKKwkJCQkJICAgaWd0X2ZiX21vZF90b190aWxpbmcoc3JjX2Zi LT5tb2RpZmllciksCiAJCQkJCSAgIDAsIDAsIC8qIHNyY194LCBzcmNfeSAqLwogCQkJCQkgICBk c3RfZmItPnBsYW5lX3dpZHRoW2ldLCBkc3RfZmItPnBsYW5lX2hlaWdodFtpXSwKIAkJCQkJICAg ZHN0X2ZiLT5wbGFuZV9icHBbaV0sCiAJCQkJCSAgIGRzdF9mYi0+Z2VtX2hhbmRsZSwKIAkJCQkJ ICAgZHN0X2ZiLT5vZmZzZXRzW2ldLAogCQkJCQkgICBkc3RfZmItPnN0cmlkZXNbaV0sCi0JCQkJ CSAgIGlndF9mYl9tb2RfdG9fdGlsaW5nKGRzdF9mYi0+dGlsaW5nKSwKKwkJCQkJICAgaWd0X2Zi X21vZF90b190aWxpbmcoZHN0X2ZiLT5tb2RpZmllciksCiAJCQkJCSAgIDAsIDAgLyogZHN0X3gs IGRzdF95ICovKTsKIAl9CiB9CkBAIC0yNDQyLDggKzI0NDIsOCBAQCBzdGF0aWMgdm9pZCBjcmVh dGVfY2Fpcm9fc3VyZmFjZV9fY29udmVydChpbnQgZmQsIHN0cnVjdCBpZ3RfZmIgKmZiKQogCQkJ CQkJCSAgICAgJmJsaXQtPnNoYWRvd19mYik7CiAJaWd0X2Fzc2VydChibGl0LT5zaGFkb3dfcHRy KTsKIAotCWlmIChmYi0+dGlsaW5nID09IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJTEVEIHx8 Ci0JICAgIGZiLT50aWxpbmcgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEKSB7CisJ aWYgKGZiLT5tb2RpZmllciA9PSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB8fAorCSAg ICBmYi0+bW9kaWZpZXIgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEKSB7CiAJCXNl dHVwX2xpbmVhcl9tYXBwaW5nKCZibGl0LT5iYXNlKTsKIAl9IGVsc2UgewogCQlibGl0LT5iYXNl LmxpbmVhci5mYiA9ICpmYjsKQEAgLTI1MjMsMTAgKzI1MjMsMTAgQEAgY2Fpcm9fc3VyZmFjZV90 ICppZ3RfZ2V0X2NhaXJvX3N1cmZhY2UoaW50IGZkLCBzdHJ1Y3QgaWd0X2ZiICpmYikKIAkJICAg ICgoZi0+Y2Fpcm9faWQgPT0gQ0FJUk9fRk9STUFUX0lOVkFMSUQpICYmCiAJCSAgICAgKGYtPnBp eG1hbl9pZCAhPSBQSVhNQU5faW52YWxpZCkpKQogCQkJY3JlYXRlX2NhaXJvX3N1cmZhY2VfX2Nv bnZlcnQoZmQsIGZiKTsKLQkJZWxzZSBpZiAoaXNfY2NzX21vZGlmaWVyKGZiLT50aWxpbmcpKQor CQllbHNlIGlmIChpc19jY3NfbW9kaWZpZXIoZmItPm1vZGlmaWVyKSkKIAkJCWNyZWF0ZV9jYWly b19zdXJmYWNlX19yZW5kZXJjb3B5KGZkLCBmYik7Ci0JCWVsc2UgaWYgKGZiLT50aWxpbmcgPT0g TE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwKLQkJCSBmYi0+dGlsaW5nID09IExPQ0FM X0k5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkKKwkJZWxzZSBpZiAoZmItPm1vZGlmaWVyID09IExP Q0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJTEVEIHx8CisJCQkgZmItPm1vZGlmaWVyID09IExPQ0FM X0k5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkKIAkJCWNyZWF0ZV9jYWlyb19zdXJmYWNlX19ibGl0 KGZkLCBmYik7CiAJCWVsc2UKIAkJCWNyZWF0ZV9jYWlyb19zdXJmYWNlX19ndHQoZmQsIGZiKTsK ZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZmIuaCBiL2xpYi9pZ3RfZmIuaAppbmRleCA4YzY4M2RiNS4u YTVhMWEyYmEgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZmIuaAorKysgYi9saWIvaWd0X2ZiLmgKQEAg LTUzLDcgKzUzLDcgQEAKICAqIEBkcm1fZm9ybWF0OiBEUk0gRk9VUkNDIGNvZGUKICAqIEB3aWR0 aDogd2lkdGggaW4gcGl4ZWxzCiAgKiBAaGVpZ2h0OiBoZWlnaHQgaW4gcGl4ZWxzCi0gKiBAdGls aW5nOiB0aWxpbmcgbW9kZSBhcyBhIERSTSBmcmFtZWJ1ZmZlciBtb2RpZmllcgorICogQG1vZGlm aWVyOiB0aWxpbmcgbW9kZSBhcyBhIERSTSBmcmFtZWJ1ZmZlciBtb2RpZmllcgogICogQHNpemU6 IHNpemUgaW4gYnl0ZXMgb2YgdGhlIHVuZGVybHlpbmcgYmFja2luZyBzdG9yYWdlCiAgKiBAY2Fp cm9fc3VyZmFjZTogb3B0aW9uYWxseSBhdHRhY2hlZCBjYWlybyBkcmF3aW5nIHN1cmZhY2UKICAq IEBkb21haW46IGN1cnJlbnQgZG9tYWluIGZvciBjYWNoZSBmbHVzaGluZyB0cmFja2luZyBvbiBp OTE1LmtvCkBAIC03Niw3ICs3Niw3IEBAIHR5cGVkZWYgc3RydWN0IGlndF9mYiB7CiAJaW50IGhl aWdodDsKIAllbnVtIGlndF9jb2xvcl9lbmNvZGluZyBjb2xvcl9lbmNvZGluZzsKIAllbnVtIGln dF9jb2xvcl9yYW5nZSBjb2xvcl9yYW5nZTsKLQl1aW50NjRfdCB0aWxpbmc7CisJdWludDY0X3Qg bW9kaWZpZXI7CiAJdWludDY0X3Qgc2l6ZTsKIAljYWlyb19zdXJmYWNlX3QgKmNhaXJvX3N1cmZh Y2U7CiAJdW5zaWduZWQgaW50IGRvbWFpbjsKQEAgLTEwOCwzNCArMTA4LDM0IEBAIGVudW0gaWd0 X3RleHRfYWxpZ24gewogCWFsaWduX2hjZW50ZXIJPSAweDA4LAogfTsKIAotdm9pZCBpZ3RfZ2V0 X2ZiX3RpbGVfc2l6ZShpbnQgZmQsIHVpbnQ2NF90IHRpbGluZywgaW50IGZiX2JwcCwKK3ZvaWQg aWd0X2dldF9mYl90aWxlX3NpemUoaW50IGZkLCB1aW50NjRfdCBtb2RpZmllciwgaW50IGZiX2Jw cCwKIAkJCSAgdW5zaWduZWQgKndpZHRoX3JldCwgdW5zaWduZWQgKmhlaWdodF9yZXQpOwotdm9p ZCBpZ3RfY2FsY19mYl9zaXplKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1aW50MzJf dCBmb3JtYXQsIHVpbnQ2NF90IHRpbGluZywKK3ZvaWQgaWd0X2NhbGNfZmJfc2l6ZShpbnQgZmQs IGludCB3aWR0aCwgaW50IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmll ciwKIAkJICAgICAgdWludDY0X3QgKnNpemVfcmV0LCB1bnNpZ25lZCAqc3RyaWRlX3JldCk7CiB1 bnNpZ25lZCBpbnQKIGlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKGludCBmZCwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0LAotCQkJICAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcsCisJ CQkgICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLAogCQkJICAgc3RydWN0IGln dF9mYiAqZmIsIHVpbnQ2NF90IGJvX3NpemUsCiAJCQkgICB1bnNpZ25lZCBib19zdHJpZGUpOwog dW5zaWduZWQgaW50IGlndF9jcmVhdGVfZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQs IHVpbnQzMl90IGZvcm1hdCwKLQkJCSAgIHVpbnQ2NF90IHRpbGluZywgc3RydWN0IGlndF9mYiAq ZmIpOworCQkJICAgdWludDY0X3QgbW9kaWZpZXIsIHN0cnVjdCBpZ3RfZmIgKmZiKTsKIHVuc2ln bmVkIGludCBpZ3RfY3JlYXRlX2NvbG9yX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 LAotCQkJCSB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IHRpbGluZywKKwkJCQkgdWludDMyX3Qg Zm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCQkgZG91YmxlIHIsIGRvdWJsZSBnLCBkb3Vi bGUgYiwKIAkJCQkgc3RydWN0IGlndF9mYiAqZmIgLyogb3V0ICovKTsKIHVuc2lnbmVkIGludCBp Z3RfY3JlYXRlX3BhdHRlcm5fZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCi0JCQkJ ICAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcsCisJCQkJICAgdWludDMyX3QgZm9y bWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCQkgICBzdHJ1Y3QgaWd0X2ZiICpmYiAvKiBvdXQg Ki8pOwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfY29sb3JfcGF0dGVybl9mYihpbnQgZmQsIGlu dCB3aWR0aCwgaW50IGhlaWdodCwKLQkJCQkJIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgdGls aW5nLAorCQkJCQkgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCQkJIGRv dWJsZSByLCBkb3VibGUgZywgZG91YmxlIGIsCiAJCQkJCSBzdHJ1Y3QgaWd0X2ZiICpmYiAvKiBv dXQgKi8pOwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfaW1hZ2VfZmIoaW50IGRybV9mZCwgIGlu dCB3aWR0aCwgaW50IGhlaWdodCwKLQkJCQkgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxp bmcsCisJCQkJIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIsCiAJCQkJIGNvbnN0 IGNoYXIgKmZpbGVuYW1lLAogCQkJCSBzdHJ1Y3QgaWd0X2ZiICpmYiAvKiBvdXQgKi8pOwogdW5z aWduZWQgaW50IGlndF9jcmVhdGVfc3RlcmVvX2ZiKGludCBkcm1fZmQsIGRybU1vZGVNb2RlSW5m byAqbW9kZSwKLQkJCQkgIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgdGlsaW5nKTsKKwkJCQkg IHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIpOwogdW5zaWduZWQgaW50IGlndF9m Yl9jb252ZXJ0KHN0cnVjdCBpZ3RfZmIgKmRzdCwgc3RydWN0IGlndF9mYiAqc3JjLAogCQkJICAg IHVpbnQzMl90IGRzdF9mb3VyY2MpOwogdm9pZCBpZ3RfcmVtb3ZlX2ZiKGludCBmZCwgc3RydWN0 IGlndF9mYiAqZmIpOwpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2Njcy5jIGIvdGVzdHMva21zX2Nj cy5jCmluZGV4IDFlZDJiNGEwLi40MjU5NmE0NSAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2Njcy5j CisrKyBiL3Rlc3RzL2ttc19jY3MuYwpAQCAtMzg4LDcgKzM4OCw3IEBAIHN0YXRpYyB2b2lkIGdl bmVyYXRlX2ZiKGRhdGFfdCAqZGF0YSwgc3RydWN0IGlndF9mYiAqZmIsCiAJZmItPndpZHRoID0g Zi53aWR0aDsKIAlmYi0+aGVpZ2h0ID0gZi5oZWlnaHQ7CiAJZmItPnN0cmlkZXNbMF0gPSBmLnBp dGNoZXNbMF07Ci0JZmItPnRpbGluZyA9IGYubW9kaWZpZXJbMF07CisJZmItPm1vZGlmaWVyID0g Zi5tb2RpZmllclswXTsKIAlmYi0+c2l6ZSA9IHNpemVbMF07CiAJZmItPmNhaXJvX3N1cmZhY2Ug PSBOVUxMOwogCWZiLT5kb21haW4gPSAwOwotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2lndC1kZXY=