From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5BE2B891F4 for ; Fri, 22 Feb 2019 01:06:14 +0000 (UTC) From: Dhinakaran Pandiyan Date: Thu, 21 Feb 2019 10:05:12 -0800 Message-Id: <20190221180512.4653-1-dhinakaran.pandiyan@intel.com> In-Reply-To: <20190221144109.28220-5-dhinakaran.pandiyan@intel.com> References: <20190221144109.28220-5-dhinakaran.pandiyan@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 4/8] 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 Cc: Clinton Taylor , Dhinakaran Pandiyan List-ID: RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClJl bmFtZSB0aGUgaWd0X2ZiLnRpbGluZyB0byBpZ3RfZmIubW9kaWZpZXIgdG8gYmV0dGVyIHJlZmxl Y3QKd2hhdCBpbmZvcm1hdGlvbiBpdCBjYXJyaWVzLiBOb3cgaXQncyBjbGVhciB3aGV0aGVyIHdl J3JlIHRhbGtpbmcKYWJvdXQgYSBtb2RpZmllciBvciBhIGk5MTUgdGlsaW5nIHRoaW5nLgoKQ2M6 IENsaW50b24gVGF5bG9yIDxjbGludG9uLmEudGF5bG9yQGludGVsLmNvbT4KU2lnbmVkLW9mZi1i eTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KUmV2aWV3 ZWQtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFu QGludGVsLmNvbT4KLS0tCiBsaWIvaWd0X2ZiLmMgICAgfCAxMDggKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWIvaWd0X2ZiLmggICAgfCAgMjIgKysr KystLS0tLQogdGVzdHMva21zX2Njcy5jIHwgICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDY2IGlu c2VydGlvbnMoKyksIDY2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZmIuYyBi L2xpYi9pZ3RfZmIuYwppbmRleCBmZGNhZGJjZC4uMTE0MGVmMGEgMTAwNjQ0Ci0tLSBhL2xpYi9p Z3RfZmIuYworKysgYi9saWIvaWd0X2ZiLmMKQEAgLTI1OSw3ICsyNTksNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGZvcm1hdF9kZXNjX3N0cnVjdCAqbG9va3VwX2RybV9mb3JtYXQodWludDMyX3Qg ZHJtX2Zvcm1hdCkKIC8qKgogICogaWd0X2dldF9mYl90aWxlX3NpemU6CiAgKiBAZmQ6IHRoZSBE Uk0gZmlsZSBkZXNjcmlwdG9yCi0gKiBAdGlsaW5nOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFt ZWJ1ZmZlciAoYXMgZnJhbWVidWZmZXIgbW9kaWZpZXIpCisgKiBAbW9kaWZpZXI6IHRpbGluZyBs YXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyIChhcyBmcmFtZWJ1ZmZlciBtb2RpZmllcikKICAqIEBm Yl9icHA6IGJpdHMgcGVyIHBpeGVsIG9mIHRoZSBmcmFtZWJ1ZmZlcgogICogQHdpZHRoX3JldDog d2lkdGggb2YgdGhlIHRpbGUgaW4gYnl0ZXMKICAqIEBoZWlnaHRfcmV0OiBoZWlnaHQgb2YgdGhl IHRpbGUgaW4gbGluZXMKQEAgLTI2NywxMCArMjY3LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg Zm9ybWF0X2Rlc2Nfc3RydWN0ICpsb29rdXBfZHJtX2Zvcm1hdCh1aW50MzJfdCBkcm1fZm9ybWF0 KQogICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHdpZHRoIGFuZCBoZWlnaHQgb2YgYSB0aWxlIGJh c2VkIG9uIHRoZSBnaXZlbiB0aWxpbmcKICAqIGZvcm1hdC4KICAqLwotdm9pZCBpZ3RfZ2V0X2Zi X3RpbGVfc2l6ZShpbnQgZmQsIHVpbnQ2NF90IHRpbGluZywgaW50IGZiX2JwcCwKK3ZvaWQgaWd0 X2dldF9mYl90aWxlX3NpemUoaW50IGZkLCB1aW50NjRfdCBtb2RpZmllciwgaW50IGZiX2JwcCwK IAkJCSAgdW5zaWduZWQgKndpZHRoX3JldCwgdW5zaWduZWQgKmhlaWdodF9yZXQpCiB7Ci0Jc3dp dGNoICh0aWxpbmcpIHsKKwlzd2l0Y2ggKG1vZGlmaWVyKSB7CiAJY2FzZSBMT0NBTF9EUk1fRk9S TUFUX01PRF9OT05FOgogCQlpZiAoaXNfaTkxNV9kZXZpY2UoZmQpKQogCQkJKndpZHRoX3JldCA9 IDY0OwpAQCAtMzQwLDcgKzM0MCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBmYl9wbGFuZV93aWR0aChj b25zdCBzdHJ1Y3QgaWd0X2ZiICpmYiwgaW50IHBsYW5lKQogewogCWNvbnN0IHN0cnVjdCBmb3Jt YXRfZGVzY19zdHJ1Y3QgKmZvcm1hdCA9IGxvb2t1cF9kcm1fZm9ybWF0KGZiLT5kcm1fZm9ybWF0 KTsKIAotCWlmIChpc19jY3NfbW9kaWZpZXIoZmItPnRpbGluZykgJiYgcGxhbmUgPT0gMSkKKwlp ZiAoaXNfY2NzX21vZGlmaWVyKGZiLT5tb2RpZmllcikgJiYgcGxhbmUgPT0gMSkKIAkJcmV0dXJu IERJVl9ST1VORF9VUChmYi0+d2lkdGgsIDEwMjQpICogMTI4OwogCiAJaWYgKHBsYW5lID09IDAp CkBAIC0zNTMsNyArMzUzLDcgQEAgc3RhdGljIHVuc2lnbmVkIGZiX3BsYW5lX2JwcChjb25zdCBz dHJ1Y3QgaWd0X2ZiICpmYiwgaW50IHBsYW5lKQogewogCWNvbnN0IHN0cnVjdCBmb3JtYXRfZGVz Y19zdHJ1Y3QgKmZvcm1hdCA9IGxvb2t1cF9kcm1fZm9ybWF0KGZiLT5kcm1fZm9ybWF0KTsKIAot CWlmIChpc19jY3NfbW9kaWZpZXIoZmItPnRpbGluZykgJiYgcGxhbmUgPT0gMSkKKwlpZiAoaXNf Y2NzX21vZGlmaWVyKGZiLT5tb2RpZmllcikgJiYgcGxhbmUgPT0gMSkKIAkJcmV0dXJuIDg7CiAJ ZWxzZQogCQlyZXR1cm4gZm9ybWF0LT5wbGFuZV9icHBbcGxhbmVdOwpAQCAtMzYzLDcgKzM2Myw3 IEBAIHN0YXRpYyB1bnNpZ25lZCBmYl9wbGFuZV9oZWlnaHQoY29uc3Qgc3RydWN0IGlndF9mYiAq ZmIsIGludCBwbGFuZSkKIHsKIAljb25zdCBzdHJ1Y3QgZm9ybWF0X2Rlc2Nfc3RydWN0ICpmb3Jt YXQgPSBsb29rdXBfZHJtX2Zvcm1hdChmYi0+ZHJtX2Zvcm1hdCk7CiAKLQlpZiAoaXNfY2NzX21v ZGlmaWVyKGZiLT50aWxpbmcpICYmIHBsYW5lID09IDEpCisJaWYgKGlzX2Njc19tb2RpZmllcihm Yi0+bW9kaWZpZXIpICYmIHBsYW5lID09IDEpCiAJCXJldHVybiBESVZfUk9VTkRfVVAoZmItPmhl aWdodCwgNTEyKSAqIDMyOwogCiAJaWYgKHBsYW5lID09IDApCkBAIC0zNzYsNyArMzc2LDcgQEAg c3RhdGljIGludCBmYl9udW1fcGxhbmVzKGNvbnN0IHN0cnVjdCBpZ3RfZmIgKmZiKQogewogCWNv bnN0IHN0cnVjdCBmb3JtYXRfZGVzY19zdHJ1Y3QgKmZvcm1hdCA9IGxvb2t1cF9kcm1fZm9ybWF0 KGZiLT5kcm1fZm9ybWF0KTsKIAotCWlmIChpc19jY3NfbW9kaWZpZXIoZmItPnRpbGluZykpCisJ aWYgKGlzX2Njc19tb2RpZmllcihmYi0+bW9kaWZpZXIpKQogCQlyZXR1cm4gMjsKIAllbHNlCiAJ CXJldHVybiBmb3JtYXQtPm51bV9wbGFuZXM7CkBAIC0zOTcsNyArMzk3LDcgQEAgc3RhdGljIHZv aWQgZmJfaW5pdChzdHJ1Y3QgaWd0X2ZiICpmYiwKIAogCWZiLT53aWR0aCA9IHdpZHRoOwogCWZi LT5oZWlnaHQgPSBoZWlnaHQ7Ci0JZmItPnRpbGluZyA9IG1vZGlmaWVyOworCWZiLT5tb2RpZmll ciA9IG1vZGlmaWVyOwogCWZiLT5kcm1fZm9ybWF0ID0gZHJtX2Zvcm1hdDsKIAlmYi0+ZmQgPSBm ZDsKIAlmYi0+bnVtX3BsYW5lcyA9IGZiX251bV9wbGFuZXMoZmIpOwpAQCAtNDE2LDcgKzQxNiw3 IEBAIHN0YXRpYyB1aW50MzJfdCBjYWxjX3BsYW5lX3N0cmlkZShzdHJ1Y3QgaWd0X2ZiICpmYiwg aW50IHBsYW5lKQogCXVpbnQzMl90IG1pbl9zdHJpZGUgPSBmYi0+cGxhbmVfd2lkdGhbcGxhbmVd ICoKIAkJKGZiLT5wbGFuZV9icHBbcGxhbmVdIC8gOCk7CiAKLQlpZiAoZmItPnRpbGluZyAhPSBM T0NBTF9EUk1fRk9STUFUX01PRF9OT05FICYmCisJaWYgKGZiLT5tb2RpZmllciAhPSBMT0NBTF9E Uk1fRk9STUFUX01PRF9OT05FICYmCiAJICAgIGludGVsX2dlbihpbnRlbF9nZXRfZHJtX2Rldmlk KGZiLT5mZCkpIDw9IDMpIHsKIAkJdWludDMyX3Qgc3RyaWRlOwogCkBAIC00MzUsNyArNDM1LDcg QEAgc3RhdGljIHVpbnQzMl90IGNhbGNfcGxhbmVfc3RyaWRlKHN0cnVjdCBpZ3RfZmIgKmZiLCBp bnQgcGxhbmUpCiAJfSBlbHNlIHsKIAkJdW5zaWduZWQgaW50IHRpbGVfd2lkdGgsIHRpbGVfaGVp Z2h0OwogCi0JCWlndF9nZXRfZmJfdGlsZV9zaXplKGZiLT5mZCwgZmItPnRpbGluZywgZmItPnBs YW5lX2JwcFtwbGFuZV0sCisJCWlndF9nZXRfZmJfdGlsZV9zaXplKGZiLT5mZCwgZmItPm1vZGlm aWVyLCBmYi0+cGxhbmVfYnBwW3BsYW5lXSwKIAkJCQkgICAgICZ0aWxlX3dpZHRoLCAmdGlsZV9o ZWlnaHQpOwogCiAJCXJldHVybiBBTElHTihtaW5fc3RyaWRlLCB0aWxlX3dpZHRoKTsKQEAgLTQ0 NCw3ICs0NDQsNyBAQCBzdGF0aWMgdWludDMyX3QgY2FsY19wbGFuZV9zdHJpZGUoc3RydWN0IGln dF9mYiAqZmIsIGludCBwbGFuZSkKIAogc3RhdGljIHVpbnQ2NF90IGNhbGNfcGxhbmVfc2l6ZShz dHJ1Y3QgaWd0X2ZiICpmYiwgaW50IHBsYW5lKQogewotCWlmIChmYi0+dGlsaW5nICE9IExPQ0FM X0RSTV9GT1JNQVRfTU9EX05PTkUgJiYKKwlpZiAoZmItPm1vZGlmaWVyICE9IExPQ0FMX0RSTV9G T1JNQVRfTU9EX05PTkUgJiYKIAkgICAgaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmIt PmZkKSkgPD0gMykgewogCQl1aW50NjRfdCBtaW5fc2l6ZSA9ICh1aW50NjRfdCkgZmItPnN0cmlk ZXNbcGxhbmVdICoKIAkJCWZiLT5wbGFuZV9oZWlnaHRbcGxhbmVdOwpAQCAtNDY1LDcgKzQ2NSw3 IEBAIHN0YXRpYyB1aW50NjRfdCBjYWxjX3BsYW5lX3NpemUoc3RydWN0IGlndF9mYiAqZmIsIGlu dCBwbGFuZSkKIAl9IGVsc2UgewogCQl1bnNpZ25lZCBpbnQgdGlsZV93aWR0aCwgdGlsZV9oZWln aHQ7CiAKLQkJaWd0X2dldF9mYl90aWxlX3NpemUoZmItPmZkLCBmYi0+dGlsaW5nLCBmYi0+cGxh bmVfYnBwW3BsYW5lXSwKKwkJaWd0X2dldF9mYl90aWxlX3NpemUoZmItPmZkLCBmYi0+bW9kaWZp ZXIsIGZiLT5wbGFuZV9icHBbcGxhbmVdLAogCQkJCSAgICAgJnRpbGVfd2lkdGgsICZ0aWxlX2hl aWdodCk7CiAKIAkJcmV0dXJuICh1aW50NjRfdCkgZmItPnN0cmlkZXNbcGxhbmVdICoKQEAgLTQ5 NywxOSArNDk3LDE5IEBAIHN0YXRpYyB1aW50NjRfdCBjYWxjX2ZiX3NpemUoc3RydWN0IGlndF9m YiAqZmIpCiAgKiBAd2lkdGg6IHdpZHRoIG9mIHRoZSBmcmFtZWJ1ZmZlciBpbiBwaXhlbHMKICAq IEBoZWlnaHQ6IGhlaWdodCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWxzCiAgKiBAZm9ybWF0 OiBkcm0gZm91cmNjIHBpeGVsIGZvcm1hdCBjb2RlCi0gKiBAdGlsaW5nOiB0aWxpbmcgbGF5b3V0 IG9mIHRoZSBmcmFtZWJ1ZmZlciAoYXMgZnJhbWVidWZmZXIgbW9kaWZpZXIpCisgKiBAbW9kaWZp ZXI6IHRpbGluZyBsYXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyIChhcyBmcmFtZWJ1ZmZlciBtb2Rp ZmllcikKICAqIEBzaXplX3JldDogcmV0dXJuZWQgc2l6ZSBmb3IgdGhlIGZyYW1lYnVmZmVyCiAg KiBAc3RyaWRlX3JldDogcmV0dXJuZWQgc3RyaWRlIGZvciB0aGUgZnJhbWVidWZmZXIKICAqCiAg KiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdmFsaWQgc3RyaWRlIGFuZCBzaXplIHZhbHVlcyBmb3Ig YSBmcmFtZWJ1ZmZlciB3aXRoIHRoZQogICogc3BlY2lmaWVkIHBhcmFtZXRlcnMuCiAgKi8KLXZv aWQgaWd0X2NhbGNfZmJfc2l6ZShpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgdWludDMy X3QgZHJtX2Zvcm1hdCwgdWludDY0X3QgdGlsaW5nLAordm9pZCBpZ3RfY2FsY19mYl9zaXplKGlu dCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1aW50MzJfdCBkcm1fZm9ybWF0LCB1aW50NjRf dCBtb2RpZmllciwKIAkJICAgICAgdWludDY0X3QgKnNpemVfcmV0LCB1bnNpZ25lZCAqc3RyaWRl X3JldCkKIHsKIAlzdHJ1Y3QgaWd0X2ZiIGZiOwogCi0JZmJfaW5pdCgmZmIsIGZkLCB3aWR0aCwg aGVpZ2h0LCBkcm1fZm9ybWF0LCB0aWxpbmcsCisJZmJfaW5pdCgmZmIsIGZkLCB3aWR0aCwgaGVp Z2h0LCBkcm1fZm9ybWF0LCBtb2RpZmllciwKIAkJSUdUX0NPTE9SX1lDQkNSX0JUNzA5LCBJR1Rf Q09MT1JfWUNCQ1JfTElNSVRFRF9SQU5HRSk7CiAKIAlmYi5zaXplID0gY2FsY19mYl9zaXplKCZm Yik7CkBAIC02MzMsNyArNjMzLDcgQEAgc3RhdGljIGludCBjcmVhdGVfYm9fZm9yX2ZiKHN0cnVj dCBpZ3RfZmIgKmZiKQogCWludCBmZCA9IGZiLT5mZDsKIAogCWlmIChpc19pOTE1X2RldmljZShm ZCkgJiYKLQkgICAoZmItPnRpbGluZyB8fCBmYi0+c2l6ZSB8fCBmYi0+c3RyaWRlc1swXSB8fCBp Z3RfZm9ybWF0X2lzX3l1dihmYi0+ZHJtX2Zvcm1hdCkpKSB7CisJICAgIChmYi0+bW9kaWZpZXIg fHwgZmItPnNpemUgfHwgZmItPnN0cmlkZXNbMF0gfHwgaWd0X2Zvcm1hdF9pc195dXYoZmItPmRy bV9mb3JtYXQpKSkgewogCQl1aW50NjRfdCBzaXplOwogCiAJCXNpemUgPSBjYWxjX2ZiX3NpemUo ZmIpOwpAQCAtNjQ1LDcgKzY0NSw3IEBAIHN0YXRpYyBpbnQgY3JlYXRlX2JvX2Zvcl9mYihzdHJ1 Y3QgaWd0X2ZiICpmYikKIAkJZmItPmlzX2R1bWIgPSBmYWxzZTsKIAkJZmItPmdlbV9oYW5kbGUg PSBnZW1fY3JlYXRlKGZkLCBmYi0+c2l6ZSk7CiAJCWdlbV9zZXRfdGlsaW5nKGZkLCBmYi0+Z2Vt X2hhbmRsZSwKLQkJCSAgICAgICBpZ3RfZmJfbW9kX3RvX3RpbGluZyhmYi0+dGlsaW5nKSwKKwkJ CSAgICAgICBpZ3RfZmJfbW9kX3RvX3RpbGluZyhmYi0+bW9kaWZpZXIpLAogCQkJICAgICAgIGZi LT5zdHJpZGVzWzBdKTsKIAogCQlnb3RvIG91dDsKQEAgLTEwNDksNyArMTA0OSw3IEBAIHZvaWQg aWd0X3BhaW50X2ltYWdlKGNhaXJvX3QgKmNyLCBjb25zdCBjaGFyICpmaWxlbmFtZSwKICAqIEB3 aWR0aDogd2lkdGggb2YgdGhlIGZyYW1lYnVmZmVyIGluIHBpeGVsCiAgKiBAaGVpZ2h0OiBoZWln aHQgb2YgdGhlIGZyYW1lYnVmZmVyIGluIHBpeGVsCiAgKiBAZm9ybWF0OiBkcm0gZm91cmNjIHBp eGVsIGZvcm1hdCBjb2RlCi0gKiBAdGlsaW5nOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1 ZmZlciAoYXMgZnJhbWVidWZmZXIgbW9kaWZpZXIpCisgKiBAbW9kaWZpZXI6IHRpbGluZyBsYXlv dXQgb2YgdGhlIGZyYW1lYnVmZmVyIChhcyBmcmFtZWJ1ZmZlciBtb2RpZmllcikKICAqIEBmYjog cG9pbnRlciB0byBhbiAjaWd0X2ZiIHN0cnVjdHVyZQogICogQGJvX3NpemU6IHNpemUgb2YgdGhl IGJhY2tpbmcgYm8gKDAgZm9yIGF1dG9tYXRpYyBzaXplKQogICogQGJvX3N0cmlkZTogc3RyaWRl IG9mIHRoZSBiYWNraW5nIGJvICgwIGZvciBhdXRvbWF0aWMgc3RyaWRlKQpAQCAtMTA2Niw3ICsx MDY2LDcgQEAgdm9pZCBpZ3RfcGFpbnRfaW1hZ2UoY2Fpcm9fdCAqY3IsIGNvbnN0IGNoYXIgKmZp bGVuYW1lLAogICovCiB1bnNpZ25lZCBpbnQKIGlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKGlu dCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAotCQkJICAgdWludDMyX3QgZm9ybWF0LCB1aW50 NjRfdCB0aWxpbmcsCisJCQkgICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLAog CQkJICAgc3RydWN0IGlndF9mYiAqZmIsIHVpbnQ2NF90IGJvX3NpemUsCiAJCQkgICB1bnNpZ25l ZCBib19zdHJpZGUpCiB7CkBAIC0xMDc1LDcgKzEwNzUsNyBAQCBpZ3RfY3JlYXRlX2ZiX3dpdGhf Ym9fc2l6ZShpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwKIAllbnVtIGlndF9jb2xvcl9y YW5nZSBjb2xvcl9yYW5nZSA9IElHVF9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdFOwogCXVpbnQz Ml90IGZsYWdzID0gMDsKIAotCWZiX2luaXQoZmIsIGZkLCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQs IHRpbGluZywKKwlmYl9pbml0KGZiLCBmZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBtb2RpZmll ciwKIAkJY29sb3JfZW5jb2RpbmcsIGNvbG9yX3JhbmdlKTsKIAogCWZvciAoaW50IGkgPSAwOyBp IDwgZmItPm51bV9wbGFuZXM7IGkrKykKQEAgLTEwODMsOCArMTA4Myw4IEBAIGlndF9jcmVhdGVf ZmJfd2l0aF9ib19zaXplKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAogCiAJZmItPnNp emUgPSBib19zaXplOwogCi0JaWd0X2RlYnVnKCIlcyh3aWR0aD0lZCwgaGVpZ2h0PSVkLCBmb3Jt YXQ9MHgleCwgdGlsaW5nPTB4JSJQUkl4NjQiLCBzaXplPSUiUFJJdTY0IilcbiIsCi0JCSAgX19m dW5jX18sIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdGlsaW5nLCBib19zaXplKTsKKwlpZ3RfZGVi dWcoIiVzKHdpZHRoPSVkLCBoZWlnaHQ9JWQsIGZvcm1hdD0weCV4LCBtb2RpZmllcj0weCUiUFJJ eDY0Iiwgc2l6ZT0lIlBSSXU2NCIpXG4iLAorCQkgIF9fZnVuY19fLCB3aWR0aCwgaGVpZ2h0LCBm b3JtYXQsIG1vZGlmaWVyLCBib19zaXplKTsKIAogCWNyZWF0ZV9ib19mb3JfZmIoZmIpOwogCWln dF9hc3NlcnQoZmItPmdlbV9oYW5kbGUgPiAwKTsKQEAgLTEwOTIsMTIgKzEwOTIsMTIgQEAgaWd0 X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAJ aWd0X2RlYnVnKCIlcyhoYW5kbGU9JWQsIHBpdGNoPSVkKVxuIiwKIAkJICBfX2Z1bmNfXywgZmIt PmdlbV9oYW5kbGUsIGZiLT5zdHJpZGVzWzBdKTsKIAotCWlmIChmYi0+dGlsaW5nIHx8IGlndF9o YXNfZmJfbW9kaWZpZXJzKGZkKSkKKwlpZiAoZmItPm1vZGlmaWVyIHx8IGlndF9oYXNfZmJfbW9k aWZpZXJzKGZkKSkKIAkJZmxhZ3MgPSBMT0NBTF9EUk1fTU9ERV9GQl9NT0RJRklFUlM7CiAKIAlk b19vcl9kaWUoX19rbXNfYWRkZmIoZmItPmZkLCBmYi0+Z2VtX2hhbmRsZSwKIAkJCSAgICAgIGZi LT53aWR0aCwgZmItPmhlaWdodCwKLQkJCSAgICAgIGZiLT5kcm1fZm9ybWF0LCBmYi0+dGlsaW5n LAorCQkJICAgICAgZmItPmRybV9mb3JtYXQsIGZiLT5tb2RpZmllciwKIAkJCSAgICAgIGZiLT5z dHJpZGVzLCBmYi0+b2Zmc2V0cywgZmItPm51bV9wbGFuZXMsIGZsYWdzLAogCQkJICAgICAgJmZi LT5mYl9pZCkpOwogCkBAIC0xMTEwLDcgKzExMTAsNyBAQCBpZ3RfY3JlYXRlX2ZiX3dpdGhfYm9f c2l6ZShpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwKICAqIEB3aWR0aDogd2lkdGggb2Yg dGhlIGZyYW1lYnVmZmVyIGluIHBpeGVsCiAgKiBAaGVpZ2h0OiBoZWlnaHQgb2YgdGhlIGZyYW1l YnVmZmVyIGluIHBpeGVsCiAgKiBAZm9ybWF0OiBkcm0gZm91cmNjIHBpeGVsIGZvcm1hdCBjb2Rl Ci0gKiBAdGlsaW5nOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlcgorICogQG1vZGlm aWVyOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlcgogICogQGZiOiBwb2ludGVyIHRv IGFuICNpZ3RfZmIgc3RydWN0dXJlCiAgKgogICogVGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgYSBn ZW0gYnVmZmVyIG9iamVjdCBzdWl0YWJsZSB0byBiYWNrIGEgZnJhbWVidWZmZXIKQEAgLTExMjQs OSArMTEyNCw5IEBAIGlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKGludCBmZCwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0LAogICogVGhlIGttcyBpZCBvZiB0aGUgY3JlYXRlZCBmcmFtZWJ1ZmZlci4K ICAqLwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBo ZWlnaHQsIHVpbnQzMl90IGZvcm1hdCwKLQkJCSAgIHVpbnQ2NF90IHRpbGluZywgc3RydWN0IGln dF9mYiAqZmIpCisJCQkgICB1aW50NjRfdCBtb2RpZmllciwgc3RydWN0IGlndF9mYiAqZmIpCiB7 Ci0JcmV0dXJuIGlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKGZkLCB3aWR0aCwgaGVpZ2h0LCBm b3JtYXQsIHRpbGluZywgZmIsCisJcmV0dXJuIGlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKGZk LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIG1vZGlmaWVyLCBmYiwKIAkJCQkJICAwLCAwKTsKIH0K IApAQCAtMTEzNiw3ICsxMTM2LDcgQEAgdW5zaWduZWQgaW50IGlndF9jcmVhdGVfZmIoaW50IGZk LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVpbnQzMl90IGZvcm1hdCwKICAqIEB3aWR0aDogd2lk dGggb2YgdGhlIGZyYW1lYnVmZmVyIGluIHBpeGVsCiAgKiBAaGVpZ2h0OiBoZWlnaHQgb2YgdGhl IGZyYW1lYnVmZmVyIGluIHBpeGVsCiAgKiBAZm9ybWF0OiBkcm0gZm91cmNjIHBpeGVsIGZvcm1h dCBjb2RlCi0gKiBAdGlsaW5nOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlcgorICog QG1vZGlmaWVyOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlcgogICogQHI6IHJlZCB2 YWx1ZSB0byB1c2UgYXMgZmlsbCBjb2xvcgogICogQGc6IGdyZWVuIHZhbHVlIHRvIHVzZSBhcyBm aWxsIGNvbG9yCiAgKiBAYjogYmx1ZSB2YWx1ZSB0byB1c2UgYXMgZmlsbCBjb2xvcgpAQCAtMTE1 NCwxNCArMTE1NCwxNCBAQCB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9mYihpbnQgZmQsIGludCB3 aWR0aCwgaW50IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LAogICogZmFpbHVyZS4KICAqLwogdW5z aWduZWQgaW50IGlndF9jcmVhdGVfY29sb3JfZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWln aHQsCi0JCQkJIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgdGlsaW5nLAorCQkJCSB1aW50MzJf dCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLAogCQkJCSBkb3VibGUgciwgZG91YmxlIGcsIGRv dWJsZSBiLAogCQkJCSBzdHJ1Y3QgaWd0X2ZiICpmYiAvKiBvdXQgKi8pCiB7CiAJdW5zaWduZWQg aW50IGZiX2lkOwogCWNhaXJvX3QgKmNyOwogCi0JZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKGZkLCB3 aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHRpbGluZywgZmIpOworCWZiX2lkID0gaWd0X2NyZWF0ZV9m YihmZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBtb2RpZmllciwgZmIpOwogCWlndF9hc3NlcnQo ZmJfaWQpOwogCiAJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChmZCwgZmIpOwpAQCAtMTE3Nyw3ICsx MTc3LDcgQEAgdW5zaWduZWQgaW50IGlndF9jcmVhdGVfY29sb3JfZmIoaW50IGZkLCBpbnQgd2lk dGgsIGludCBoZWlnaHQsCiAgKiBAd2lkdGg6IHdpZHRoIG9mIHRoZSBmcmFtZWJ1ZmZlciBpbiBw aXhlbAogICogQGhlaWdodDogaGVpZ2h0IG9mIHRoZSBmcmFtZWJ1ZmZlciBpbiBwaXhlbAogICog QGZvcm1hdDogZHJtIGZvdXJjYyBwaXhlbCBmb3JtYXQgY29kZQotICogQHRpbGluZzogdGlsaW5n IGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIKKyAqIEBtb2RpZmllcjogdGlsaW5nIGxheW91dCBv ZiB0aGUgZnJhbWVidWZmZXIKICAqIEBmYjogcG9pbnRlciB0byBhbiAjaWd0X2ZiIHN0cnVjdHVy ZQogICoKICAqIFRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIGEgZ2VtIGJ1ZmZlciBvYmplY3Qgc3Vp dGFibGUgdG8gYmFjayBhIGZyYW1lYnVmZmVyCkBAIC0xMTkyLDEzICsxMTkyLDEzIEBAIHVuc2ln bmVkIGludCBpZ3RfY3JlYXRlX2NvbG9yX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 LAogICogZmFpbHVyZS4KICAqLwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfcGF0dGVybl9mYihp bnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwKLQkJCQkgICB1aW50MzJfdCBmb3JtYXQsIHVp bnQ2NF90IHRpbGluZywKKwkJCQkgICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVy LAogCQkJCSAgIHN0cnVjdCBpZ3RfZmIgKmZiIC8qIG91dCAqLykKIHsKIAl1bnNpZ25lZCBpbnQg ZmJfaWQ7CiAJY2Fpcm9fdCAqY3I7CiAKLQlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZmQsIHdpZHRo LCBoZWlnaHQsIGZvcm1hdCwgdGlsaW5nLCBmYik7CisJZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKGZk LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIG1vZGlmaWVyLCBmYik7CiAJaWd0X2Fzc2VydChmYl9p ZCk7CiAKIAljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGZkLCBmYik7CkBAIC0xMjE0LDcgKzEyMTQs NyBAQCB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGludCBmZCwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0LAogICogQHdpZHRoOiB3aWR0aCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4 ZWwKICAqIEBoZWlnaHQ6IGhlaWdodCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWwKICAqIEBm b3JtYXQ6IGRybSBmb3VyY2MgcGl4ZWwgZm9ybWF0IGNvZGUKLSAqIEB0aWxpbmc6IHRpbGluZyBs YXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyCisgKiBAbW9kaWZpZXI6IHRpbGluZyBsYXlvdXQgb2Yg dGhlIGZyYW1lYnVmZmVyCiAgKiBAcjogcmVkIHZhbHVlIHRvIHVzZSBhcyBmaWxsIGNvbG9yCiAg KiBAZzogZ3JlZW4gdmFsdWUgdG8gdXNlIGFzIGZpbGwgY29sb3IKICAqIEBiOiBibHVlIHZhbHVl IHRvIHVzZSBhcyBmaWxsIGNvbG9yCkBAIC0xMjMzLDE0ICsxMjMzLDE0IEBAIHVuc2lnbmVkIGlu dCBpZ3RfY3JlYXRlX3BhdHRlcm5fZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAg KiBmYWlsdXJlLgogICovCiB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJuX2Zi KGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAotCQkJCQkgdWludDMyX3QgZm9ybWF0LCB1 aW50NjRfdCB0aWxpbmcsCisJCQkJCSB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVy LAogCQkJCQkgZG91YmxlIHIsIGRvdWJsZSBnLCBkb3VibGUgYiwKIAkJCQkJIHN0cnVjdCBpZ3Rf ZmIgKmZiIC8qIG91dCAqLykKIHsKIAl1bnNpZ25lZCBpbnQgZmJfaWQ7CiAJY2Fpcm9fdCAqY3I7 CiAKLQlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdGls aW5nLCBmYik7CisJZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKGZkLCB3aWR0aCwgaGVpZ2h0LCBmb3Jt YXQsIG1vZGlmaWVyLCBmYik7CiAJaWd0X2Fzc2VydChmYl9pZCk7CiAKIAljciA9IGlndF9nZXRf Y2Fpcm9fY3R4KGZkLCBmYik7CkBAIC0xMjU3LDcgKzEyNTcsNyBAQCB1bnNpZ25lZCBpbnQgaWd0 X2NyZWF0ZV9jb2xvcl9wYXR0ZXJuX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAog ICogQHdpZHRoOiB3aWR0aCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWwgb3IgMAogICogQGhl aWdodDogaGVpZ2h0IG9mIHRoZSBmcmFtZWJ1ZmZlciBpbiBwaXhlbCBvciAwCiAgKiBAZm9ybWF0 OiBkcm0gZm91cmNjIHBpeGVsIGZvcm1hdCBjb2RlCi0gKiBAdGlsaW5nOiB0aWxpbmcgbGF5b3V0 IG9mIHRoZSBmcmFtZWJ1ZmZlcgorICogQG1vZGlmaWVyOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBm cmFtZWJ1ZmZlcgogICogQGZpbGVuYW1lOiBmaWxlbmFtZSBvZiB0aGUgcG5nIGltYWdlIHRvIGRy YXcKICAqIEBmYjogcG9pbnRlciB0byBhbiAjaWd0X2ZiIHN0cnVjdHVyZQogICoKQEAgLTEyNjks NyArMTI2OSw3IEBAIHVuc2lnbmVkIGludCBpZ3RfY3JlYXRlX2NvbG9yX3BhdHRlcm5fZmIoaW50 IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAgKiBmYWlsdXJlLgogICovCiB1bnNpZ25lZCBp bnQgaWd0X2NyZWF0ZV9pbWFnZV9mYihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwKLQkJ CQkgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcsCisJCQkJIHVpbnQzMl90IGZvcm1h dCwgdWludDY0X3QgbW9kaWZpZXIsCiAJCQkJIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogCQkJCSBz dHJ1Y3QgaWd0X2ZiICpmYiAvKiBvdXQgKi8pCiB7CkBAIC0xMjg1LDcgKzEyODUsNyBAQCB1bnNp Z25lZCBpbnQgaWd0X2NyZWF0ZV9pbWFnZV9mYihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdo dCwKIAkJaGVpZ2h0ID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KGltYWdlKTsKIAlj YWlyb19zdXJmYWNlX2Rlc3Ryb3koaW1hZ2UpOwogCi0JZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKGZk LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHRpbGluZywgZmIpOworCWZiX2lkID0gaWd0X2NyZWF0 ZV9mYihmZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBtb2RpZmllciwgZmIpOwogCiAJY3IgPSBp Z3RfZ2V0X2NhaXJvX2N0eChmZCwgZmIpOwogCWlndF9wYWludF9pbWFnZShjciwgZmlsZW5hbWUs IDAsIDAsIHdpZHRoLCBoZWlnaHQpOwpAQCAtMTM2MSw3ICsxMzYxLDcgQEAgc3RhdGljIHZvaWQg c3RlcmVvX2ZiX2xheW91dF9mcm9tX21vZGUoc3RydWN0IHN0ZXJlb19mYl9sYXlvdXQgKmxheW91 dCwKICAqIEBkcm1fZmQ6IG9wZW4gaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9yCiAgKiBAbW9kZTog QSBzdGVyZW8gM0QgbW9kZS4KICAqIEBmb3JtYXQ6IGRybSBmb3VyY2MgcGl4ZWwgZm9ybWF0IGNv ZGUKLSAqIEB0aWxpbmc6IHRpbGluZyBsYXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyCisgKiBAbW9k aWZpZXI6IHRpbGluZyBsYXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyCiAgKgogICogQ3JlYXRlIGEg ZnJhbWVidWZmZXIgZm9yIHVzZSB3aXRoIHRoZSBzdGVyZW8gM0QgbW9kZSBzcGVjaWZpZWQgYnkg QG1vZGUuCiAgKgpAQCAtMTM3MCw3ICsxMzcwLDcgQEAgc3RhdGljIHZvaWQgc3RlcmVvX2ZiX2xh eW91dF9mcm9tX21vZGUoc3RydWN0IHN0ZXJlb19mYl9sYXlvdXQgKmxheW91dCwKICAqIGZhaWx1 cmUuCiAgKi8KIHVuc2lnbmVkIGludCBpZ3RfY3JlYXRlX3N0ZXJlb19mYihpbnQgZHJtX2ZkLCBk cm1Nb2RlTW9kZUluZm8gKm1vZGUsCi0JCQkJICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IHRp bGluZykKKwkJCQkgIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIpCiB7CiAJc3Ry dWN0IHN0ZXJlb19mYl9sYXlvdXQgbGF5b3V0OwogCWNhaXJvX3QgKmNyOwpAQCAtMTM3OSw3ICsx Mzc5LDcgQEAgdW5zaWduZWQgaW50IGlndF9jcmVhdGVfc3RlcmVvX2ZiKGludCBkcm1fZmQsIGRy bU1vZGVNb2RlSW5mbyAqbW9kZSwKIAogCXN0ZXJlb19mYl9sYXlvdXRfZnJvbV9tb2RlKCZsYXlv dXQsIG1vZGUpOwogCWZiX2lkID0gaWd0X2NyZWF0ZV9mYihkcm1fZmQsIGxheW91dC5mYl93aWR0 aCwgbGF5b3V0LmZiX2hlaWdodCwgZm9ybWF0LAotCQkJICAgICAgdGlsaW5nLCAmZmIpOworCQkJ ICAgICAgbW9kaWZpZXIsICZmYik7CiAJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkcm1fZmQsICZm Yik7CiAKIAlpZ3RfcGFpbnRfaW1hZ2UoY3IsICIxMDgwcC1sZWZ0LnBuZyIsCkBAIC0xNDQwLDEy ICsxNDQwLDEyIEBAIHN0YXRpYyB2b2lkIGluaXRfYnVmKHN0cnVjdCBmYl9ibGl0X3VwbG9hZCAq YmxpdCwKIAogCWJ1Zi0+Ym8gPSBnZW1faGFuZGxlX3RvX2xpYmRybV9ibyhibGl0LT5idWZtZ3Is IGJsaXQtPmZkLAogCQkJCQkgIG5hbWUsIGZiLT5nZW1faGFuZGxlKTsKLQlidWYtPnRpbGluZyA9 IGlndF9mYl9tb2RfdG9fdGlsaW5nKGZiLT50aWxpbmcpOworCWJ1Zi0+dGlsaW5nID0gaWd0X2Zi X21vZF90b190aWxpbmcoZmItPm1vZGlmaWVyKTsKIAlidWYtPnN0cmlkZSA9IGZiLT5zdHJpZGVz WzBdOwogCWJ1Zi0+YnBwID0gZmItPnBsYW5lX2JwcFswXTsKIAlidWYtPnNpemUgPSBmYi0+c2l6 ZTsKIAotCWlmIChpc19jY3NfbW9kaWZpZXIoZmItPnRpbGluZykpIHsKKwlpZiAoaXNfY2NzX21v ZGlmaWVyKGZiLT5tb2RpZmllcikpIHsKIAkJaWd0X2Fzc2VydF9lcShmYi0+c3RyaWRlc1swXSAm IDEyNywgMCk7CiAJCWlndF9hc3NlcnRfZXEoZmItPnN0cmlkZXNbMV0gJiAxMjcsIDApOwogCkBA IC0xNDkwLDE0ICsxNDkwLDE0IEBAIHN0YXRpYyB2b2lkIGJsaXRjb3B5KGNvbnN0IHN0cnVjdCBp Z3RfZmIgKmRzdF9mYiwKIAkJCQkJICAgc3JjX2ZiLT5nZW1faGFuZGxlLAogCQkJCQkgICBzcmNf ZmItPm9mZnNldHNbaV0sCiAJCQkJCSAgIHNyY19mYi0+c3RyaWRlc1tpXSwKLQkJCQkJICAgaWd0 X2ZiX21vZF90b190aWxpbmcoc3JjX2ZiLT50aWxpbmcpLAorCQkJCQkgICBpZ3RfZmJfbW9kX3Rv X3RpbGluZyhzcmNfZmItPm1vZGlmaWVyKSwKIAkJCQkJICAgMCwgMCwgLyogc3JjX3gsIHNyY195 ICovCiAJCQkJCSAgIGRzdF9mYi0+cGxhbmVfd2lkdGhbaV0sIGRzdF9mYi0+cGxhbmVfaGVpZ2h0 W2ldLAogCQkJCQkgICBkc3RfZmItPnBsYW5lX2JwcFtpXSwKIAkJCQkJICAgZHN0X2ZiLT5nZW1f aGFuZGxlLAogCQkJCQkgICBkc3RfZmItPm9mZnNldHNbaV0sCiAJCQkJCSAgIGRzdF9mYi0+c3Ry aWRlc1tpXSwKLQkJCQkJICAgaWd0X2ZiX21vZF90b190aWxpbmcoZHN0X2ZiLT50aWxpbmcpLAor CQkJCQkgICBpZ3RfZmJfbW9kX3RvX3RpbGluZyhkc3RfZmItPm1vZGlmaWVyKSwKIAkJCQkJICAg MCwgMCAvKiBkc3RfeCwgZHN0X3kgKi8pOwogCX0KIH0KQEAgLTI0MzMsNyArMjQzMyw3IEBAIHN0 YXRpYyB2b2lkIGNyZWF0ZV9jYWlyb19zdXJmYWNlX19jb252ZXJ0KGludCBmZCwgc3RydWN0IGln dF9mYiAqZmIpCiAJYmxpdC0+YmFzZS5mZCA9IGZkOwogCWJsaXQtPmJhc2UuZmIgPSBmYjsKIAot CWlmIChpc19jY3NfbW9kaWZpZXIoZmItPnRpbGluZykpIHsKKwlpZiAoaXNfY2NzX21vZGlmaWVy KGZiLT5tb2RpZmllcikpIHsKIAkJYmxpdC0+YmFzZS5idWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdy X2dlbV9pbml0KGZkLCA0MDk2KTsKIAkJYmxpdC0+YmFzZS5iYXRjaCA9IGludGVsX2JhdGNoYnVm ZmVyX2FsbG9jKGJsaXQtPmJhc2UuYnVmbWdyLAogCQkJCQkJICAgaW50ZWxfZ2V0X2RybV9kZXZp ZChmZCkpOwpAQCAtMjQ0NSwxMCArMjQ0NSwxMCBAQCBzdGF0aWMgdm9pZCBjcmVhdGVfY2Fpcm9f c3VyZmFjZV9fY29udmVydChpbnQgZmQsIHN0cnVjdCBpZ3RfZmIgKmZiKQogCQkJCQkJCSAgICAg JmJsaXQtPnNoYWRvd19mYik7CiAJaWd0X2Fzc2VydChibGl0LT5zaGFkb3dfcHRyKTsKIAotCWlm IChmYi0+dGlsaW5nID09IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJTEVEIHx8Ci0JICAgIGZi LT50aWxpbmcgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEIHx8Ci0JICAgIGZiLT50 aWxpbmcgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTIHx8Ci0JICAgIGZiLT50 aWxpbmcgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEX0NDUykgeworCWlmIChmYi0+ bW9kaWZpZXIgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwKKwkgICAgZmItPm1v ZGlmaWVyID09IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZZl9USUxFRCB8fAorCSAgICBmYi0+bW9k aWZpZXIgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTIHx8CisJICAgIGZiLT5t b2RpZmllciA9PSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTKSB7CiAJCXNldHVw X2xpbmVhcl9tYXBwaW5nKCZibGl0LT5iYXNlKTsKIAl9IGVsc2UgewogCQlibGl0LT5iYXNlLmxp bmVhci5mYiA9ICpmYjsKQEAgLTI1MjgsMTAgKzI1MjgsMTAgQEAgY2Fpcm9fc3VyZmFjZV90ICpp Z3RfZ2V0X2NhaXJvX3N1cmZhY2UoaW50IGZkLCBzdHJ1Y3QgaWd0X2ZiICpmYikKIAkJICAgICgo Zi0+Y2Fpcm9faWQgPT0gQ0FJUk9fRk9STUFUX0lOVkFMSUQpICYmCiAJCSAgICAgKGYtPnBpeG1h bl9pZCAhPSBQSVhNQU5faW52YWxpZCkpKQogCQkJY3JlYXRlX2NhaXJvX3N1cmZhY2VfX2NvbnZl cnQoZmQsIGZiKTsKLQkJZWxzZSBpZiAoaXNfY2NzX21vZGlmaWVyKGZiLT50aWxpbmcpKQorCQll bHNlIGlmIChpc19jY3NfbW9kaWZpZXIoZmItPm1vZGlmaWVyKSkKIAkJCWNyZWF0ZV9jYWlyb19z dXJmYWNlX19yZW5kZXJjb3B5KGZkLCBmYik7Ci0JCWVsc2UgaWYgKGZiLT50aWxpbmcgPT0gTE9D QUxfSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwKLQkJCSBmYi0+dGlsaW5nID09IExPQ0FMX0k5 MTVfRk9STUFUX01PRF9ZZl9USUxFRCkKKwkJZWxzZSBpZiAoZmItPm1vZGlmaWVyID09IExPQ0FM X0k5MTVfRk9STUFUX01PRF9ZX1RJTEVEIHx8CisJCQkgZmItPm1vZGlmaWVyID09IExPQ0FMX0k5 MTVfRk9STUFUX01PRF9ZZl9USUxFRCkKIAkJCWNyZWF0ZV9jYWlyb19zdXJmYWNlX19ibGl0KGZk LCBmYik7CiAJCWVsc2UKIAkJCWNyZWF0ZV9jYWlyb19zdXJmYWNlX19ndHQoZmQsIGZiKTsKZGlm ZiAtLWdpdCBhL2xpYi9pZ3RfZmIuaCBiL2xpYi9pZ3RfZmIuaAppbmRleCA4YzY4M2RiNS4uYTVh MWEyYmEgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZmIuaAorKysgYi9saWIvaWd0X2ZiLmgKQEAgLTUz LDcgKzUzLDcgQEAKICAqIEBkcm1fZm9ybWF0OiBEUk0gRk9VUkNDIGNvZGUKICAqIEB3aWR0aDog d2lkdGggaW4gcGl4ZWxzCiAgKiBAaGVpZ2h0OiBoZWlnaHQgaW4gcGl4ZWxzCi0gKiBAdGlsaW5n OiB0aWxpbmcgbW9kZSBhcyBhIERSTSBmcmFtZWJ1ZmZlciBtb2RpZmllcgorICogQG1vZGlmaWVy OiB0aWxpbmcgbW9kZSBhcyBhIERSTSBmcmFtZWJ1ZmZlciBtb2RpZmllcgogICogQHNpemU6IHNp emUgaW4gYnl0ZXMgb2YgdGhlIHVuZGVybHlpbmcgYmFja2luZyBzdG9yYWdlCiAgKiBAY2Fpcm9f c3VyZmFjZTogb3B0aW9uYWxseSBhdHRhY2hlZCBjYWlybyBkcmF3aW5nIHN1cmZhY2UKICAqIEBk b21haW46IGN1cnJlbnQgZG9tYWluIGZvciBjYWNoZSBmbHVzaGluZyB0cmFja2luZyBvbiBpOTE1 LmtvCkBAIC03Niw3ICs3Niw3IEBAIHR5cGVkZWYgc3RydWN0IGlndF9mYiB7CiAJaW50IGhlaWdo dDsKIAllbnVtIGlndF9jb2xvcl9lbmNvZGluZyBjb2xvcl9lbmNvZGluZzsKIAllbnVtIGlndF9j b2xvcl9yYW5nZSBjb2xvcl9yYW5nZTsKLQl1aW50NjRfdCB0aWxpbmc7CisJdWludDY0X3QgbW9k aWZpZXI7CiAJdWludDY0X3Qgc2l6ZTsKIAljYWlyb19zdXJmYWNlX3QgKmNhaXJvX3N1cmZhY2U7 CiAJdW5zaWduZWQgaW50IGRvbWFpbjsKQEAgLTEwOCwzNCArMTA4LDM0IEBAIGVudW0gaWd0X3Rl eHRfYWxpZ24gewogCWFsaWduX2hjZW50ZXIJPSAweDA4LAogfTsKIAotdm9pZCBpZ3RfZ2V0X2Zi X3RpbGVfc2l6ZShpbnQgZmQsIHVpbnQ2NF90IHRpbGluZywgaW50IGZiX2JwcCwKK3ZvaWQgaWd0 X2dldF9mYl90aWxlX3NpemUoaW50IGZkLCB1aW50NjRfdCBtb2RpZmllciwgaW50IGZiX2JwcCwK IAkJCSAgdW5zaWduZWQgKndpZHRoX3JldCwgdW5zaWduZWQgKmhlaWdodF9yZXQpOwotdm9pZCBp Z3RfY2FsY19mYl9zaXplKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1aW50MzJfdCBm b3JtYXQsIHVpbnQ2NF90IHRpbGluZywKK3ZvaWQgaWd0X2NhbGNfZmJfc2l6ZShpbnQgZmQsIGlu dCB3aWR0aCwgaW50IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwK IAkJICAgICAgdWludDY0X3QgKnNpemVfcmV0LCB1bnNpZ25lZCAqc3RyaWRlX3JldCk7CiB1bnNp Z25lZCBpbnQKIGlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKGludCBmZCwgaW50IHdpZHRoLCBp bnQgaGVpZ2h0LAotCQkJICAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcsCisJCQkg ICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLAogCQkJICAgc3RydWN0IGlndF9m YiAqZmIsIHVpbnQ2NF90IGJvX3NpemUsCiAJCQkgICB1bnNpZ25lZCBib19zdHJpZGUpOwogdW5z aWduZWQgaW50IGlndF9jcmVhdGVfZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVp bnQzMl90IGZvcm1hdCwKLQkJCSAgIHVpbnQ2NF90IHRpbGluZywgc3RydWN0IGlndF9mYiAqZmIp OworCQkJICAgdWludDY0X3QgbW9kaWZpZXIsIHN0cnVjdCBpZ3RfZmIgKmZiKTsKIHVuc2lnbmVk IGludCBpZ3RfY3JlYXRlX2NvbG9yX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAot CQkJCSB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IHRpbGluZywKKwkJCQkgdWludDMyX3QgZm9y bWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCQkgZG91YmxlIHIsIGRvdWJsZSBnLCBkb3VibGUg YiwKIAkJCQkgc3RydWN0IGlndF9mYiAqZmIgLyogb3V0ICovKTsKIHVuc2lnbmVkIGludCBpZ3Rf Y3JlYXRlX3BhdHRlcm5fZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCi0JCQkJICAg dWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcsCisJCQkJICAgdWludDMyX3QgZm9ybWF0 LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCQkgICBzdHJ1Y3QgaWd0X2ZiICpmYiAvKiBvdXQgKi8p OwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfY29sb3JfcGF0dGVybl9mYihpbnQgZmQsIGludCB3 aWR0aCwgaW50IGhlaWdodCwKLQkJCQkJIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgdGlsaW5n LAorCQkJCQkgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCQkJIGRvdWJs ZSByLCBkb3VibGUgZywgZG91YmxlIGIsCiAJCQkJCSBzdHJ1Y3QgaWd0X2ZiICpmYiAvKiBvdXQg Ki8pOwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfaW1hZ2VfZmIoaW50IGRybV9mZCwgIGludCB3 aWR0aCwgaW50IGhlaWdodCwKLQkJCQkgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcs CisJCQkJIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIsCiAJCQkJIGNvbnN0IGNo YXIgKmZpbGVuYW1lLAogCQkJCSBzdHJ1Y3QgaWd0X2ZiICpmYiAvKiBvdXQgKi8pOwogdW5zaWdu ZWQgaW50IGlndF9jcmVhdGVfc3RlcmVvX2ZiKGludCBkcm1fZmQsIGRybU1vZGVNb2RlSW5mbyAq bW9kZSwKLQkJCQkgIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgdGlsaW5nKTsKKwkJCQkgIHVp bnQzMl90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIpOwogdW5zaWduZWQgaW50IGlndF9mYl9j b252ZXJ0KHN0cnVjdCBpZ3RfZmIgKmRzdCwgc3RydWN0IGlndF9mYiAqc3JjLAogCQkJICAgIHVp bnQzMl90IGRzdF9mb3VyY2MpOwogdm9pZCBpZ3RfcmVtb3ZlX2ZiKGludCBmZCwgc3RydWN0IGln dF9mYiAqZmIpOwpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2Njcy5jIGIvdGVzdHMva21zX2Njcy5j CmluZGV4IDFlZDJiNGEwLi40MjU5NmE0NSAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2Njcy5jCisr KyBiL3Rlc3RzL2ttc19jY3MuYwpAQCAtMzg4LDcgKzM4OCw3IEBAIHN0YXRpYyB2b2lkIGdlbmVy YXRlX2ZiKGRhdGFfdCAqZGF0YSwgc3RydWN0IGlndF9mYiAqZmIsCiAJZmItPndpZHRoID0gZi53 aWR0aDsKIAlmYi0+aGVpZ2h0ID0gZi5oZWlnaHQ7CiAJZmItPnN0cmlkZXNbMF0gPSBmLnBpdGNo ZXNbMF07Ci0JZmItPnRpbGluZyA9IGYubW9kaWZpZXJbMF07CisJZmItPm1vZGlmaWVyID0gZi5t b2RpZmllclswXTsKIAlmYi0+c2l6ZSA9IHNpemVbMF07CiAJZmItPmNhaXJvX3N1cmZhY2UgPSBO VUxMOwogCWZiLT5kb21haW4gPSAwOwotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2lndC1kZXY=