From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 78AD189E19 for ; Tue, 5 Mar 2019 01:48:19 +0000 (UTC) From: Dhinakaran Pandiyan Date: Mon, 4 Mar 2019 17:47:40 -0800 Message-Id: <20190305014742.3598-5-dhinakaran.pandiyan@intel.com> In-Reply-To: <20190305014742.3598-1-dhinakaran.pandiyan@intel.com> References: <20190305014742.3598-1-dhinakaran.pandiyan@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 5/7] 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 IENsaW50b24gVGF5bG9yIDxjbGludG9uLmEudGF5bG9yQGludGVsLmNvbT4KRnJvbSBESzoKUmVi YXNlZCBvbiB2YzQgY2hhbmdlcwoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IERoaW5ha2FyYW4gUGFuZGl5 YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEaGluYWth cmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KLS0tCiBsaWIvaWd0 X2ZiLmMgICAgfCAxMjYgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiBsaWIvaWd0X2ZiLmggICAgfCAgMjIgKysrKy0tLS0tCiB0ZXN0cy9rbXNfY2NzLmMg fCAgIDIgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwgNzUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9mYi5jIGIvbGliL2lndF9mYi5jCmluZGV4IGI0ODBh MGExLi5kYjEyYTMwZCAxMDA2NDQKLS0tIGEvbGliL2lndF9mYi5jCisrKyBiL2xpYi9pZ3RfZmIu YwpAQCAtMjYxLDcgKzI2MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZm9ybWF0X2Rlc2Nfc3Ry dWN0ICpsb29rdXBfZHJtX2Zvcm1hdCh1aW50MzJfdCBkcm1fZm9ybWF0KQogLyoqCiAgKiBpZ3Rf Z2V0X2ZiX3RpbGVfc2l6ZToKICAqIEBmZDogdGhlIERSTSBmaWxlIGRlc2NyaXB0b3IKLSAqIEB0 aWxpbmc6IHRpbGluZyBsYXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyIChhcyBmcmFtZWJ1ZmZlciBt b2RpZmllcikKKyAqIEBtb2RpZmllcjogdGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIg KGFzIGZyYW1lYnVmZmVyIG1vZGlmaWVyKQogICogQGZiX2JwcDogYml0cyBwZXIgcGl4ZWwgb2Yg dGhlIGZyYW1lYnVmZmVyCiAgKiBAd2lkdGhfcmV0OiB3aWR0aCBvZiB0aGUgdGlsZSBpbiBieXRl cwogICogQGhlaWdodF9yZXQ6IGhlaWdodCBvZiB0aGUgdGlsZSBpbiBsaW5lcwpAQCAtMjY5LDE3 ICsyNjksMTcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmb3JtYXRfZGVzY19zdHJ1Y3QgKmxvb2t1 cF9kcm1fZm9ybWF0KHVpbnQzMl90IGRybV9mb3JtYXQpCiAgKiBUaGlzIGZ1bmN0aW9uIHJldHVy bnMgd2lkdGggYW5kIGhlaWdodCBvZiBhIHRpbGUgYmFzZWQgb24gdGhlIGdpdmVuIHRpbGluZwog ICogZm9ybWF0LgogICovCi12b2lkIGlndF9nZXRfZmJfdGlsZV9zaXplKGludCBmZCwgdWludDY0 X3QgdGlsaW5nLCBpbnQgZmJfYnBwLAordm9pZCBpZ3RfZ2V0X2ZiX3RpbGVfc2l6ZShpbnQgZmQs IHVpbnQ2NF90IG1vZGlmaWVyLCBpbnQgZmJfYnBwLAogCQkJICB1bnNpZ25lZCAqd2lkdGhfcmV0 LCB1bnNpZ25lZCAqaGVpZ2h0X3JldCkKIHsKLQl1aW50MzJfdCB2YzRfdGlsaW5nX3BhcmFtID0g MDsKKwl1aW50MzJfdCB2YzRfbW9kaWZpZXJfcGFyYW0gPSAwOwogCiAJaWYgKGlzX3ZjNF9kZXZp Y2UoZmQpKSB7Ci0JCXZjNF90aWxpbmdfcGFyYW0gPSBmb3VyY2NfbW9kX2Jyb2FkY29tX3BhcmFt KHRpbGluZyk7Ci0JCXRpbGluZyA9IGZvdXJjY19tb2RfYnJvYWRjb21fbW9kKHRpbGluZyk7CisJ CXZjNF9tb2RpZmllcl9wYXJhbSA9IGZvdXJjY19tb2RfYnJvYWRjb21fcGFyYW0obW9kaWZpZXIp OworCQltb2RpZmllciA9IGZvdXJjY19tb2RfYnJvYWRjb21fbW9kKG1vZGlmaWVyKTsKIAl9CiAK LQlzd2l0Y2ggKHRpbGluZykgeworCXN3aXRjaCAobW9kaWZpZXIpIHsKIAljYXNlIExPQ0FMX0RS TV9GT1JNQVRfTU9EX05PTkU6CiAJCWlmIChpc19pOTE1X2RldmljZShmZCkpCiAJCQkqd2lkdGhf cmV0ID0gNjQ7CkBAIC0zNDIsMjIgKzM0MiwyMiBAQCB2b2lkIGlndF9nZXRfZmJfdGlsZV9zaXpl KGludCBmZCwgdWludDY0X3QgdGlsaW5nLCBpbnQgZmJfYnBwLAogCWNhc2UgRFJNX0ZPUk1BVF9N T0RfQlJPQURDT01fU0FORDMyOgogCQlpZ3RfcmVxdWlyZV92YzQoZmQpOwogCQkqd2lkdGhfcmV0 ID0gMzI7Ci0JCSpoZWlnaHRfcmV0ID0gdmM0X3RpbGluZ19wYXJhbTsKKwkJKmhlaWdodF9yZXQg PSB2YzRfbW9kaWZpZXJfcGFyYW07CiAJCWJyZWFrOwogCWNhc2UgRFJNX0ZPUk1BVF9NT0RfQlJP QURDT01fU0FORDY0OgogCQlpZ3RfcmVxdWlyZV92YzQoZmQpOwogCQkqd2lkdGhfcmV0ID0gNjQ7 Ci0JCSpoZWlnaHRfcmV0ID0gdmM0X3RpbGluZ19wYXJhbTsKKwkJKmhlaWdodF9yZXQgPSB2YzRf bW9kaWZpZXJfcGFyYW07CiAJCWJyZWFrOwogCWNhc2UgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01f U0FORDEyODoKIAkJaWd0X3JlcXVpcmVfdmM0KGZkKTsKIAkJKndpZHRoX3JldCA9IDEyODsKLQkJ KmhlaWdodF9yZXQgPSB2YzRfdGlsaW5nX3BhcmFtOworCQkqaGVpZ2h0X3JldCA9IHZjNF9tb2Rp Zmllcl9wYXJhbTsKIAkJYnJlYWs7CiAJY2FzZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5E MjU2OgogCQlpZ3RfcmVxdWlyZV92YzQoZmQpOwogCQkqd2lkdGhfcmV0ID0gMjU2OwotCQkqaGVp Z2h0X3JldCA9IHZjNF90aWxpbmdfcGFyYW07CisJCSpoZWlnaHRfcmV0ID0gdmM0X21vZGlmaWVy X3BhcmFtOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKQEAgLTM3 NCw3ICszNzQsNyBAQCBzdGF0aWMgdW5zaWduZWQgZmJfcGxhbmVfd2lkdGgoY29uc3Qgc3RydWN0 IGlndF9mYiAqZmIsIGludCBwbGFuZSkKIHsKIAljb25zdCBzdHJ1Y3QgZm9ybWF0X2Rlc2Nfc3Ry dWN0ICpmb3JtYXQgPSBsb29rdXBfZHJtX2Zvcm1hdChmYi0+ZHJtX2Zvcm1hdCk7CiAKLQlpZiAo aXNfY2NzX21vZGlmaWVyKGZiLT50aWxpbmcpICYmIHBsYW5lID09IDEpCisJaWYgKGlzX2Njc19t b2RpZmllcihmYi0+bW9kaWZpZXIpICYmIHBsYW5lID09IDEpCiAJCXJldHVybiBESVZfUk9VTkRf VVAoZmItPndpZHRoLCAxMDI0KSAqIDEyODsKIAogCWlmIChwbGFuZSA9PSAwKQpAQCAtMzg3LDcg KzM4Nyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBmYl9wbGFuZV9icHAoY29uc3Qgc3RydWN0IGlndF9m YiAqZmIsIGludCBwbGFuZSkKIHsKIAljb25zdCBzdHJ1Y3QgZm9ybWF0X2Rlc2Nfc3RydWN0ICpm b3JtYXQgPSBsb29rdXBfZHJtX2Zvcm1hdChmYi0+ZHJtX2Zvcm1hdCk7CiAKLQlpZiAoaXNfY2Nz X21vZGlmaWVyKGZiLT50aWxpbmcpICYmIHBsYW5lID09IDEpCisJaWYgKGlzX2Njc19tb2RpZmll cihmYi0+bW9kaWZpZXIpICYmIHBsYW5lID09IDEpCiAJCXJldHVybiA4OwogCWVsc2UKIAkJcmV0 dXJuIGZvcm1hdC0+cGxhbmVfYnBwW3BsYW5lXTsKQEAgLTM5Nyw3ICszOTcsNyBAQCBzdGF0aWMg dW5zaWduZWQgZmJfcGxhbmVfaGVpZ2h0KGNvbnN0IHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQgcGxh bmUpCiB7CiAJY29uc3Qgc3RydWN0IGZvcm1hdF9kZXNjX3N0cnVjdCAqZm9ybWF0ID0gbG9va3Vw X2RybV9mb3JtYXQoZmItPmRybV9mb3JtYXQpOwogCi0JaWYgKGlzX2Njc19tb2RpZmllcihmYi0+ dGlsaW5nKSAmJiBwbGFuZSA9PSAxKQorCWlmIChpc19jY3NfbW9kaWZpZXIoZmItPm1vZGlmaWVy KSAmJiBwbGFuZSA9PSAxKQogCQlyZXR1cm4gRElWX1JPVU5EX1VQKGZiLT5oZWlnaHQsIDUxMikg KiAzMjsKIAogCWlmIChwbGFuZSA9PSAwKQpAQCAtNDEwLDcgKzQxMCw3IEBAIHN0YXRpYyBpbnQg ZmJfbnVtX3BsYW5lcyhjb25zdCBzdHJ1Y3QgaWd0X2ZiICpmYikKIHsKIAljb25zdCBzdHJ1Y3Qg Zm9ybWF0X2Rlc2Nfc3RydWN0ICpmb3JtYXQgPSBsb29rdXBfZHJtX2Zvcm1hdChmYi0+ZHJtX2Zv cm1hdCk7CiAKLQlpZiAoaXNfY2NzX21vZGlmaWVyKGZiLT50aWxpbmcpKQorCWlmIChpc19jY3Nf bW9kaWZpZXIoZmItPm1vZGlmaWVyKSkKIAkJcmV0dXJuIDI7CiAJZWxzZQogCQlyZXR1cm4gZm9y bWF0LT5udW1fcGxhbmVzOwpAQCAtNDMxLDcgKzQzMSw3IEBAIHN0YXRpYyB2b2lkIGZiX2luaXQo c3RydWN0IGlndF9mYiAqZmIsCiAKIAlmYi0+d2lkdGggPSB3aWR0aDsKIAlmYi0+aGVpZ2h0ID0g aGVpZ2h0OwotCWZiLT50aWxpbmcgPSBtb2RpZmllcjsKKwlmYi0+bW9kaWZpZXIgPSBtb2RpZmll cjsKIAlmYi0+ZHJtX2Zvcm1hdCA9IGRybV9mb3JtYXQ7CiAJZmItPmZkID0gZmQ7CiAJZmItPm51 bV9wbGFuZXMgPSBmYl9udW1fcGxhbmVzKGZiKTsKQEAgLTQ1MCw3ICs0NTAsNyBAQCBzdGF0aWMg dWludDMyX3QgY2FsY19wbGFuZV9zdHJpZGUoc3RydWN0IGlndF9mYiAqZmIsIGludCBwbGFuZSkK IAl1aW50MzJfdCBtaW5fc3RyaWRlID0gZmItPnBsYW5lX3dpZHRoW3BsYW5lXSAqCiAJCShmYi0+ cGxhbmVfYnBwW3BsYW5lXSAvIDgpOwogCi0JaWYgKGZiLT50aWxpbmcgIT0gTE9DQUxfRFJNX0ZP Uk1BVF9NT0RfTk9ORSAmJgorCWlmIChmYi0+bW9kaWZpZXIgIT0gTE9DQUxfRFJNX0ZPUk1BVF9N T0RfTk9ORSAmJgogCSAgICBpc19pOTE1X2RldmljZShmYi0+ZmQpICYmCiAJICAgIGludGVsX2dl bihpbnRlbF9nZXRfZHJtX2RldmlkKGZiLT5mZCkpIDw9IDMpIHsKIAkJdWludDMyX3Qgc3RyaWRl OwpAQCAtNDcwLDcgKzQ3MCw3IEBAIHN0YXRpYyB1aW50MzJfdCBjYWxjX3BsYW5lX3N0cmlkZShz dHJ1Y3QgaWd0X2ZiICpmYiwgaW50IHBsYW5lKQogCX0gZWxzZSB7CiAJCXVuc2lnbmVkIGludCB0 aWxlX3dpZHRoLCB0aWxlX2hlaWdodDsKIAotCQlpZ3RfZ2V0X2ZiX3RpbGVfc2l6ZShmYi0+ZmQs IGZiLT50aWxpbmcsIGZiLT5wbGFuZV9icHBbcGxhbmVdLAorCQlpZ3RfZ2V0X2ZiX3RpbGVfc2l6 ZShmYi0+ZmQsIGZiLT5tb2RpZmllciwgZmItPnBsYW5lX2JwcFtwbGFuZV0sCiAJCQkJICAgICAm dGlsZV93aWR0aCwgJnRpbGVfaGVpZ2h0KTsKIAogCQlyZXR1cm4gQUxJR04obWluX3N0cmlkZSwg dGlsZV93aWR0aCk7CkBAIC00NzksNyArNDc5LDcgQEAgc3RhdGljIHVpbnQzMl90IGNhbGNfcGxh bmVfc3RyaWRlKHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQgcGxhbmUpCiAKIHN0YXRpYyB1aW50NjRf dCBjYWxjX3BsYW5lX3NpemUoc3RydWN0IGlndF9mYiAqZmIsIGludCBwbGFuZSkKIHsKLQlpZiAo ZmItPnRpbGluZyAhPSBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FICYmCisJaWYgKGZiLT5tb2Rp ZmllciAhPSBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FICYmCiAJICAgIGlzX2k5MTVfZGV2aWNl KGZiLT5mZCkgJiYKIAkgICAgaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmItPmZkKSkg PD0gMykgewogCQl1aW50NjRfdCBtaW5fc2l6ZSA9ICh1aW50NjRfdCkgZmItPnN0cmlkZXNbcGxh bmVdICoKQEAgLTUwMSw3ICs1MDEsNyBAQCBzdGF0aWMgdWludDY0X3QgY2FsY19wbGFuZV9zaXpl KHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQgcGxhbmUpCiAJfSBlbHNlIHsKIAkJdW5zaWduZWQgaW50 IHRpbGVfd2lkdGgsIHRpbGVfaGVpZ2h0OwogCi0JCWlndF9nZXRfZmJfdGlsZV9zaXplKGZiLT5m ZCwgZmItPnRpbGluZywgZmItPnBsYW5lX2JwcFtwbGFuZV0sCisJCWlndF9nZXRfZmJfdGlsZV9z aXplKGZiLT5mZCwgZmItPm1vZGlmaWVyLCBmYi0+cGxhbmVfYnBwW3BsYW5lXSwKIAkJCQkgICAg ICZ0aWxlX3dpZHRoLCAmdGlsZV9oZWlnaHQpOwogCiAJCS8qIFNwZWNpYWwgY2FzZSB3aGVyZSB0 aGUgInRpbGUgaGVpZ2h0IiByZXByZXNlbnRzIGEKQEAgLTU0MCwxOSArNTQwLDE5IEBAIHN0YXRp YyB1aW50NjRfdCBjYWxjX2ZiX3NpemUoc3RydWN0IGlndF9mYiAqZmIpCiAgKiBAd2lkdGg6IHdp ZHRoIG9mIHRoZSBmcmFtZWJ1ZmZlciBpbiBwaXhlbHMKICAqIEBoZWlnaHQ6IGhlaWdodCBvZiB0 aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWxzCiAgKiBAZm9ybWF0OiBkcm0gZm91cmNjIHBpeGVsIGZv cm1hdCBjb2RlCi0gKiBAdGlsaW5nOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlciAo YXMgZnJhbWVidWZmZXIgbW9kaWZpZXIpCisgKiBAbW9kaWZpZXI6IHRpbGluZyBsYXlvdXQgb2Yg dGhlIGZyYW1lYnVmZmVyIChhcyBmcmFtZWJ1ZmZlciBtb2RpZmllcikKICAqIEBzaXplX3JldDog cmV0dXJuZWQgc2l6ZSBmb3IgdGhlIGZyYW1lYnVmZmVyCiAgKiBAc3RyaWRlX3JldDogcmV0dXJu ZWQgc3RyaWRlIGZvciB0aGUgZnJhbWVidWZmZXIKICAqCiAgKiBUaGlzIGZ1bmN0aW9uIHJldHVy bnMgdmFsaWQgc3RyaWRlIGFuZCBzaXplIHZhbHVlcyBmb3IgYSBmcmFtZWJ1ZmZlciB3aXRoIHRo ZQogICogc3BlY2lmaWVkIHBhcmFtZXRlcnMuCiAgKi8KLXZvaWQgaWd0X2NhbGNfZmJfc2l6ZShp bnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgdWludDMyX3QgZHJtX2Zvcm1hdCwgdWludDY0 X3QgdGlsaW5nLAordm9pZCBpZ3RfY2FsY19mYl9zaXplKGludCBmZCwgaW50IHdpZHRoLCBpbnQg aGVpZ2h0LCB1aW50MzJfdCBkcm1fZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJICAgICAg dWludDY0X3QgKnNpemVfcmV0LCB1bnNpZ25lZCAqc3RyaWRlX3JldCkKIHsKIAlzdHJ1Y3QgaWd0 X2ZiIGZiOwogCi0JZmJfaW5pdCgmZmIsIGZkLCB3aWR0aCwgaGVpZ2h0LCBkcm1fZm9ybWF0LCB0 aWxpbmcsCisJZmJfaW5pdCgmZmIsIGZkLCB3aWR0aCwgaGVpZ2h0LCBkcm1fZm9ybWF0LCBtb2Rp ZmllciwKIAkJSUdUX0NPTE9SX1lDQkNSX0JUNzA5LCBJR1RfQ09MT1JfWUNCQ1JfTElNSVRFRF9S QU5HRSk7CiAKIAlmYi5zaXplID0gY2FsY19mYl9zaXplKCZmYik7CkBAIC02ODIsNyArNjgyLDcg QEAgc3RhdGljIGludCBjcmVhdGVfYm9fZm9yX2ZiKHN0cnVjdCBpZ3RfZmIgKmZiKQogCSAqIHNw ZWNpZnkgYSBjdXN0b20gc2l6ZSBvciBzdHJpZGUuIFlldCB0aGUgY2FsbGVyIGlzIGZyZWUgdG8g c3BlY2lmeQogCSAqIHRoZW0sIHNvIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRvIHVzZSBhIGRldmlj ZSBCTyB0aGVuLgogCSAqLwotCWlmIChmYi0+dGlsaW5nIHx8IGZiLT5zaXplIHx8IGZiLT5zdHJp ZGVzWzBdIHx8CisJaWYgKGZiLT5tb2RpZmllciB8fCBmYi0+c2l6ZSB8fCBmYi0+c3RyaWRlc1sw XSB8fAogCSAgICAoaXNfaTkxNV9kZXZpY2UoZmQpICYmIGlndF9mb3JtYXRfaXNfeXV2KGZiLT5k cm1fZm9ybWF0KSkpCiAJCWRldmljZV9ibyA9IHRydWU7CiAKQEAgLTY5OSwxNCArNjk5LDE0IEBA IHN0YXRpYyBpbnQgY3JlYXRlX2JvX2Zvcl9mYihzdHJ1Y3QgaWd0X2ZiICpmYikKIAkJaWYgKGlz X2k5MTVfZGV2aWNlKGZkKSkgewogCQkJZmItPmdlbV9oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCBm Yi0+c2l6ZSk7CiAJCQlnZW1fc2V0X3RpbGluZyhmZCwgZmItPmdlbV9oYW5kbGUsCi0JCQkJICAg ICAgIGlndF9mYl9tb2RfdG9fdGlsaW5nKGZiLT50aWxpbmcpLAorCQkJCSAgICAgICBpZ3RfZmJf bW9kX3RvX3RpbGluZyhmYi0+bW9kaWZpZXIpLAogCQkJCSAgICAgICBmYi0+c3RyaWRlc1swXSk7 CiAJCX0gZWxzZSBpZiAoaXNfdmM0X2RldmljZShmZCkpIHsKIAkJCWZiLT5nZW1faGFuZGxlID0g aWd0X3ZjNF9jcmVhdGVfYm8oZmQsIGZiLT5zaXplKTsKIAotCQkJaWYgKGZiLT50aWxpbmcgPT0g RFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fVkM0X1RfVElMRUQpCisJCQlpZiAoZmItPm1vZGlmaWVy ID09IERSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1ZDNF9UX1RJTEVEKQogCQkJCWlndF92YzRfc2V0 X3RpbGluZyhmZCwgZmItPmdlbV9oYW5kbGUsCi0JCQkJCQkgICBmYi0+dGlsaW5nKTsKKwkJCQkJ CSAgIGZiLT5tb2RpZmllcik7CiAJCX0gZWxzZSB7CiAJCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKIAkJ fQpAQCAtMTEwMyw3ICsxMTAzLDcgQEAgdm9pZCBpZ3RfcGFpbnRfaW1hZ2UoY2Fpcm9fdCAqY3Is IGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogICogQHdpZHRoOiB3aWR0aCBvZiB0aGUgZnJhbWVidWZm ZXIgaW4gcGl4ZWwKICAqIEBoZWlnaHQ6IGhlaWdodCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4 ZWwKICAqIEBmb3JtYXQ6IGRybSBmb3VyY2MgcGl4ZWwgZm9ybWF0IGNvZGUKLSAqIEB0aWxpbmc6 IHRpbGluZyBsYXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyIChhcyBmcmFtZWJ1ZmZlciBtb2RpZmll cikKKyAqIEBtb2RpZmllcjogdGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIgKGFzIGZy YW1lYnVmZmVyIG1vZGlmaWVyKQogICogQGZiOiBwb2ludGVyIHRvIGFuICNpZ3RfZmIgc3RydWN0 dXJlCiAgKiBAYm9fc2l6ZTogc2l6ZSBvZiB0aGUgYmFja2luZyBibyAoMCBmb3IgYXV0b21hdGlj IHNpemUpCiAgKiBAYm9fc3RyaWRlOiBzdHJpZGUgb2YgdGhlIGJhY2tpbmcgYm8gKDAgZm9yIGF1 dG9tYXRpYyBzdHJpZGUpCkBAIC0xMTIwLDcgKzExMjAsNyBAQCB2b2lkIGlndF9wYWludF9pbWFn ZShjYWlyb190ICpjciwgY29uc3QgY2hhciAqZmlsZW5hbWUsCiAgKi8KIHVuc2lnbmVkIGludAog aWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQs Ci0JCQkgICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IHRpbGluZywKKwkJCSAgIHVpbnQzMl90 IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIsCiAJCQkgICBzdHJ1Y3QgaWd0X2ZiICpmYiwgdWlu dDY0X3QgYm9fc2l6ZSwKIAkJCSAgIHVuc2lnbmVkIGJvX3N0cmlkZSkKIHsKQEAgLTExMjksNyAr MTEyOSw3IEBAIGlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKGludCBmZCwgaW50IHdpZHRoLCBp bnQgaGVpZ2h0LAogCWVudW0gaWd0X2NvbG9yX3JhbmdlIGNvbG9yX3JhbmdlID0gSUdUX0NPTE9S X1lDQkNSX0xJTUlURURfUkFOR0U7CiAJdWludDMyX3QgZmxhZ3MgPSAwOwogCi0JZmJfaW5pdChm YiwgZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdGlsaW5nLAorCWZiX2luaXQoZmIsIGZkLCB3 aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIG1vZGlmaWVyLAogCQljb2xvcl9lbmNvZGluZywgY29sb3Jf cmFuZ2UpOwogCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBmYi0+bnVtX3BsYW5lczsgaSsrKQpAQCAt MTEzNyw4ICsxMTM3LDggQEAgaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoaW50IGZkLCBpbnQg d2lkdGgsIGludCBoZWlnaHQsCiAKIAlmYi0+c2l6ZSA9IGJvX3NpemU7CiAKLQlpZ3RfZGVidWco IiVzKHdpZHRoPSVkLCBoZWlnaHQ9JWQsIGZvcm1hdD0weCV4LCB0aWxpbmc9MHglIlBSSXg2NCIs IHNpemU9JSJQUkl1NjQiKVxuIiwKLQkJICBfX2Z1bmNfXywgd2lkdGgsIGhlaWdodCwgZm9ybWF0 LCB0aWxpbmcsIGJvX3NpemUpOworCWlndF9kZWJ1ZygiJXMod2lkdGg9JWQsIGhlaWdodD0lZCwg Zm9ybWF0PTB4JXgsIG1vZGlmaWVyPTB4JSJQUkl4NjQiLCBzaXplPSUiUFJJdTY0IilcbiIsCisJ CSAgX19mdW5jX18sIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgbW9kaWZpZXIsIGJvX3NpemUpOwog CiAJY3JlYXRlX2JvX2Zvcl9mYihmYik7CiAJaWd0X2Fzc2VydChmYi0+Z2VtX2hhbmRsZSA+IDAp OwpAQCAtMTE0NiwxMiArMTE0NiwxMiBAQCBpZ3RfY3JlYXRlX2ZiX3dpdGhfYm9fc2l6ZShpbnQg ZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwKIAlpZ3RfZGVidWcoIiVzKGhhbmRsZT0lZCwgcGl0 Y2g9JWQpXG4iLAogCQkgIF9fZnVuY19fLCBmYi0+Z2VtX2hhbmRsZSwgZmItPnN0cmlkZXNbMF0p OwogCi0JaWYgKGZiLT50aWxpbmcgfHwgaWd0X2hhc19mYl9tb2RpZmllcnMoZmQpKQorCWlmIChm Yi0+bW9kaWZpZXIgfHwgaWd0X2hhc19mYl9tb2RpZmllcnMoZmQpKQogCQlmbGFncyA9IExPQ0FM X0RSTV9NT0RFX0ZCX01PRElGSUVSUzsKIAogCWRvX29yX2RpZShfX2ttc19hZGRmYihmYi0+ZmQs IGZiLT5nZW1faGFuZGxlLAogCQkJICAgICAgZmItPndpZHRoLCBmYi0+aGVpZ2h0LAotCQkJICAg ICAgZmItPmRybV9mb3JtYXQsIGZiLT50aWxpbmcsCisJCQkgICAgICBmYi0+ZHJtX2Zvcm1hdCwg ZmItPm1vZGlmaWVyLAogCQkJICAgICAgZmItPnN0cmlkZXMsIGZiLT5vZmZzZXRzLCBmYi0+bnVt X3BsYW5lcywgZmxhZ3MsCiAJCQkgICAgICAmZmItPmZiX2lkKSk7CiAKQEAgLTExNjQsNyArMTE2 NCw3IEBAIGlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKGludCBmZCwgaW50IHdpZHRoLCBpbnQg aGVpZ2h0LAogICogQHdpZHRoOiB3aWR0aCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWwKICAq IEBoZWlnaHQ6IGhlaWdodCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWwKICAqIEBmb3JtYXQ6 IGRybSBmb3VyY2MgcGl4ZWwgZm9ybWF0IGNvZGUKLSAqIEB0aWxpbmc6IHRpbGluZyBsYXlvdXQg b2YgdGhlIGZyYW1lYnVmZmVyCisgKiBAbW9kaWZpZXI6IHRpbGluZyBsYXlvdXQgb2YgdGhlIGZy YW1lYnVmZmVyCiAgKiBAZmI6IHBvaW50ZXIgdG8gYW4gI2lndF9mYiBzdHJ1Y3R1cmUKICAqCiAg KiBUaGlzIGZ1bmN0aW9uIGFsbG9jYXRlcyBhIGdlbSBidWZmZXIgb2JqZWN0IHN1aXRhYmxlIHRv IGJhY2sgYSBmcmFtZWJ1ZmZlcgpAQCAtMTE3OCw5ICsxMTc4LDkgQEAgaWd0X2NyZWF0ZV9mYl93 aXRoX2JvX3NpemUoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAgKiBUaGUga21zIGlk IG9mIHRoZSBjcmVhdGVkIGZyYW1lYnVmZmVyLgogICovCiB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0 ZV9mYihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LAotCQkJ ICAgdWludDY0X3QgdGlsaW5nLCBzdHJ1Y3QgaWd0X2ZiICpmYikKKwkJCSAgIHVpbnQ2NF90IG1v ZGlmaWVyLCBzdHJ1Y3QgaWd0X2ZiICpmYikKIHsKLQlyZXR1cm4gaWd0X2NyZWF0ZV9mYl93aXRo X2JvX3NpemUoZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdGlsaW5nLCBmYiwKKwlyZXR1cm4g aWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgbW9k aWZpZXIsIGZiLAogCQkJCQkgIDAsIDApOwogfQogCkBAIC0xMTkwLDcgKzExOTAsNyBAQCB1bnNp Z25lZCBpbnQgaWd0X2NyZWF0ZV9mYihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgdWlu dDMyX3QgZm9ybWF0LAogICogQHdpZHRoOiB3aWR0aCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4 ZWwKICAqIEBoZWlnaHQ6IGhlaWdodCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWwKICAqIEBm b3JtYXQ6IGRybSBmb3VyY2MgcGl4ZWwgZm9ybWF0IGNvZGUKLSAqIEB0aWxpbmc6IHRpbGluZyBs YXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyCisgKiBAbW9kaWZpZXI6IHRpbGluZyBsYXlvdXQgb2Yg dGhlIGZyYW1lYnVmZmVyCiAgKiBAcjogcmVkIHZhbHVlIHRvIHVzZSBhcyBmaWxsIGNvbG9yCiAg KiBAZzogZ3JlZW4gdmFsdWUgdG8gdXNlIGFzIGZpbGwgY29sb3IKICAqIEBiOiBibHVlIHZhbHVl IHRvIHVzZSBhcyBmaWxsIGNvbG9yCkBAIC0xMjA4LDE0ICsxMjA4LDE0IEBAIHVuc2lnbmVkIGlu dCBpZ3RfY3JlYXRlX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1aW50MzJfdCBm b3JtYXQsCiAgKiBmYWlsdXJlLgogICovCiB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9jb2xvcl9m YihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwKLQkJCQkgdWludDMyX3QgZm9ybWF0LCB1 aW50NjRfdCB0aWxpbmcsCisJCQkJIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIs CiAJCQkJIGRvdWJsZSByLCBkb3VibGUgZywgZG91YmxlIGIsCiAJCQkJIHN0cnVjdCBpZ3RfZmIg KmZiIC8qIG91dCAqLykKIHsKIAl1bnNpZ25lZCBpbnQgZmJfaWQ7CiAJY2Fpcm9fdCAqY3I7CiAK LQlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdGlsaW5n LCBmYik7CisJZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKGZkLCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQs IG1vZGlmaWVyLCBmYik7CiAJaWd0X2Fzc2VydChmYl9pZCk7CiAKIAljciA9IGlndF9nZXRfY2Fp cm9fY3R4KGZkLCBmYik7CkBAIC0xMjMxLDcgKzEyMzEsNyBAQCB1bnNpZ25lZCBpbnQgaWd0X2Ny ZWF0ZV9jb2xvcl9mYihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwKICAqIEB3aWR0aDog d2lkdGggb2YgdGhlIGZyYW1lYnVmZmVyIGluIHBpeGVsCiAgKiBAaGVpZ2h0OiBoZWlnaHQgb2Yg dGhlIGZyYW1lYnVmZmVyIGluIHBpeGVsCiAgKiBAZm9ybWF0OiBkcm0gZm91cmNjIHBpeGVsIGZv cm1hdCBjb2RlCi0gKiBAdGlsaW5nOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlcgor ICogQG1vZGlmaWVyOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlcgogICogQGZiOiBw b2ludGVyIHRvIGFuICNpZ3RfZmIgc3RydWN0dXJlCiAgKgogICogVGhpcyBmdW5jdGlvbiBhbGxv Y2F0ZXMgYSBnZW0gYnVmZmVyIG9iamVjdCBzdWl0YWJsZSB0byBiYWNrIGEgZnJhbWVidWZmZXIK QEAgLTEyNDYsMTMgKzEyNDYsMTMgQEAgdW5zaWduZWQgaW50IGlndF9jcmVhdGVfY29sb3JfZmIo aW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAgKiBmYWlsdXJlLgogICovCiB1bnNpZ25l ZCBpbnQgaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 LAotCQkJCSAgIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgdGlsaW5nLAorCQkJCSAgIHVpbnQz Ml90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIsCiAJCQkJICAgc3RydWN0IGlndF9mYiAqZmIg Lyogb3V0ICovKQogewogCXVuc2lnbmVkIGludCBmYl9pZDsKIAljYWlyb190ICpjcjsKIAotCWZi X2lkID0gaWd0X2NyZWF0ZV9mYihmZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0aWxpbmcsIGZi KTsKKwlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgbW9k aWZpZXIsIGZiKTsKIAlpZ3RfYXNzZXJ0KGZiX2lkKTsKIAogCWNyID0gaWd0X2dldF9jYWlyb19j dHgoZmQsIGZiKTsKQEAgLTEyNjgsNyArMTI2OCw3IEBAIHVuc2lnbmVkIGludCBpZ3RfY3JlYXRl X3BhdHRlcm5fZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAgKiBAd2lkdGg6IHdp ZHRoIG9mIHRoZSBmcmFtZWJ1ZmZlciBpbiBwaXhlbAogICogQGhlaWdodDogaGVpZ2h0IG9mIHRo ZSBmcmFtZWJ1ZmZlciBpbiBwaXhlbAogICogQGZvcm1hdDogZHJtIGZvdXJjYyBwaXhlbCBmb3Jt YXQgY29kZQotICogQHRpbGluZzogdGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIKKyAq IEBtb2RpZmllcjogdGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIKICAqIEByOiByZWQg dmFsdWUgdG8gdXNlIGFzIGZpbGwgY29sb3IKICAqIEBnOiBncmVlbiB2YWx1ZSB0byB1c2UgYXMg ZmlsbCBjb2xvcgogICogQGI6IGJsdWUgdmFsdWUgdG8gdXNlIGFzIGZpbGwgY29sb3IKQEAgLTEy ODcsMTQgKzEyODcsMTQgQEAgdW5zaWduZWQgaW50IGlndF9jcmVhdGVfcGF0dGVybl9mYihpbnQg ZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwKICAqIGZhaWx1cmUuCiAgKi8KIHVuc2lnbmVkIGlu dCBpZ3RfY3JlYXRlX2NvbG9yX3BhdHRlcm5fZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWln aHQsCi0JCQkJCSB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IHRpbGluZywKKwkJCQkJIHVpbnQz Ml90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIsCiAJCQkJCSBkb3VibGUgciwgZG91YmxlIGcs IGRvdWJsZSBiLAogCQkJCQkgc3RydWN0IGlndF9mYiAqZmIgLyogb3V0ICovKQogewogCXVuc2ln bmVkIGludCBmYl9pZDsKIAljYWlyb190ICpjcjsKIAotCWZiX2lkID0gaWd0X2NyZWF0ZV9mYihm ZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0aWxpbmcsIGZiKTsKKwlmYl9pZCA9IGlndF9jcmVh dGVfZmIoZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgbW9kaWZpZXIsIGZiKTsKIAlpZ3RfYXNz ZXJ0KGZiX2lkKTsKIAogCWNyID0gaWd0X2dldF9jYWlyb19jdHgoZmQsIGZiKTsKQEAgLTEzMTEs NyArMTMxMSw3IEBAIHVuc2lnbmVkIGludCBpZ3RfY3JlYXRlX2NvbG9yX3BhdHRlcm5fZmIoaW50 IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAgKiBAd2lkdGg6IHdpZHRoIG9mIHRoZSBmcmFt ZWJ1ZmZlciBpbiBwaXhlbCBvciAwCiAgKiBAaGVpZ2h0OiBoZWlnaHQgb2YgdGhlIGZyYW1lYnVm ZmVyIGluIHBpeGVsIG9yIDAKICAqIEBmb3JtYXQ6IGRybSBmb3VyY2MgcGl4ZWwgZm9ybWF0IGNv ZGUKLSAqIEB0aWxpbmc6IHRpbGluZyBsYXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyCisgKiBAbW9k aWZpZXI6IHRpbGluZyBsYXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyCiAgKiBAZmlsZW5hbWU6IGZp bGVuYW1lIG9mIHRoZSBwbmcgaW1hZ2UgdG8gZHJhdwogICogQGZiOiBwb2ludGVyIHRvIGFuICNp Z3RfZmIgc3RydWN0dXJlCiAgKgpAQCAtMTMyMyw3ICsxMzIzLDcgQEAgdW5zaWduZWQgaW50IGln dF9jcmVhdGVfY29sb3JfcGF0dGVybl9mYihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwK ICAqIGZhaWx1cmUuCiAgKi8KIHVuc2lnbmVkIGludCBpZ3RfY3JlYXRlX2ltYWdlX2ZiKGludCBm ZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAotCQkJCSB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90 IHRpbGluZywKKwkJCQkgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCQkg Y29uc3QgY2hhciAqZmlsZW5hbWUsCiAJCQkJIHN0cnVjdCBpZ3RfZmIgKmZiIC8qIG91dCAqLykK IHsKQEAgLTEzMzksNyArMTMzOSw3IEBAIHVuc2lnbmVkIGludCBpZ3RfY3JlYXRlX2ltYWdlX2Zi KGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAogCQloZWlnaHQgPSBjYWlyb19pbWFnZV9z dXJmYWNlX2dldF9oZWlnaHQoaW1hZ2UpOwogCWNhaXJvX3N1cmZhY2VfZGVzdHJveShpbWFnZSk7 CiAKLQlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdGls aW5nLCBmYik7CisJZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKGZkLCB3aWR0aCwgaGVpZ2h0LCBmb3Jt YXQsIG1vZGlmaWVyLCBmYik7CiAKIAljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGZkLCBmYik7CiAJ aWd0X3BhaW50X2ltYWdlKGNyLCBmaWxlbmFtZSwgMCwgMCwgd2lkdGgsIGhlaWdodCk7CkBAIC0x NDE1LDcgKzE0MTUsNyBAQCBzdGF0aWMgdm9pZCBzdGVyZW9fZmJfbGF5b3V0X2Zyb21fbW9kZShz dHJ1Y3Qgc3RlcmVvX2ZiX2xheW91dCAqbGF5b3V0LAogICogQGRybV9mZDogb3BlbiBpOTE1IGRy bSBmaWxlIGRlc2NyaXB0b3IKICAqIEBtb2RlOiBBIHN0ZXJlbyAzRCBtb2RlLgogICogQGZvcm1h dDogZHJtIGZvdXJjYyBwaXhlbCBmb3JtYXQgY29kZQotICogQHRpbGluZzogdGlsaW5nIGxheW91 dCBvZiB0aGUgZnJhbWVidWZmZXIKKyAqIEBtb2RpZmllcjogdGlsaW5nIGxheW91dCBvZiB0aGUg ZnJhbWVidWZmZXIKICAqCiAgKiBDcmVhdGUgYSBmcmFtZWJ1ZmZlciBmb3IgdXNlIHdpdGggdGhl IHN0ZXJlbyAzRCBtb2RlIHNwZWNpZmllZCBieSBAbW9kZS4KICAqCkBAIC0xNDI0LDcgKzE0MjQs NyBAQCBzdGF0aWMgdm9pZCBzdGVyZW9fZmJfbGF5b3V0X2Zyb21fbW9kZShzdHJ1Y3Qgc3RlcmVv X2ZiX2xheW91dCAqbGF5b3V0LAogICogZmFpbHVyZS4KICAqLwogdW5zaWduZWQgaW50IGlndF9j cmVhdGVfc3RlcmVvX2ZiKGludCBkcm1fZmQsIGRybU1vZGVNb2RlSW5mbyAqbW9kZSwKLQkJCQkg IHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgdGlsaW5nKQorCQkJCSAgdWludDMyX3QgZm9ybWF0 LCB1aW50NjRfdCBtb2RpZmllcikKIHsKIAlzdHJ1Y3Qgc3RlcmVvX2ZiX2xheW91dCBsYXlvdXQ7 CiAJY2Fpcm9fdCAqY3I7CkBAIC0xNDMzLDcgKzE0MzMsNyBAQCB1bnNpZ25lZCBpbnQgaWd0X2Ny ZWF0ZV9zdGVyZW9fZmIoaW50IGRybV9mZCwgZHJtTW9kZU1vZGVJbmZvICptb2RlLAogCiAJc3Rl cmVvX2ZiX2xheW91dF9mcm9tX21vZGUoJmxheW91dCwgbW9kZSk7CiAJZmJfaWQgPSBpZ3RfY3Jl YXRlX2ZiKGRybV9mZCwgbGF5b3V0LmZiX3dpZHRoLCBsYXlvdXQuZmJfaGVpZ2h0LCBmb3JtYXQs Ci0JCQkgICAgICB0aWxpbmcsICZmYik7CisJCQkgICAgICBtb2RpZmllciwgJmZiKTsKIAljciA9 IGlndF9nZXRfY2Fpcm9fY3R4KGRybV9mZCwgJmZiKTsKIAogCWlndF9wYWludF9pbWFnZShjciwg IjEwODBwLWxlZnQucG5nIiwKQEAgLTE0OTQsMTIgKzE0OTQsMTIgQEAgc3RhdGljIHZvaWQgaW5p dF9idWYoc3RydWN0IGZiX2JsaXRfdXBsb2FkICpibGl0LAogCiAJYnVmLT5ibyA9IGdlbV9oYW5k bGVfdG9fbGliZHJtX2JvKGJsaXQtPmJ1Zm1nciwgYmxpdC0+ZmQsCiAJCQkJCSAgbmFtZSwgZmIt PmdlbV9oYW5kbGUpOwotCWJ1Zi0+dGlsaW5nID0gaWd0X2ZiX21vZF90b190aWxpbmcoZmItPnRp bGluZyk7CisJYnVmLT50aWxpbmcgPSBpZ3RfZmJfbW9kX3RvX3RpbGluZyhmYi0+bW9kaWZpZXIp OwogCWJ1Zi0+c3RyaWRlID0gZmItPnN0cmlkZXNbMF07CiAJYnVmLT5icHAgPSBmYi0+cGxhbmVf YnBwWzBdOwogCWJ1Zi0+c2l6ZSA9IGZiLT5zaXplOwogCi0JaWYgKGlzX2Njc19tb2RpZmllcihm Yi0+dGlsaW5nKSkgeworCWlmIChpc19jY3NfbW9kaWZpZXIoZmItPm1vZGlmaWVyKSkgewogCQlp Z3RfYXNzZXJ0X2VxKGZiLT5zdHJpZGVzWzBdICYgMTI3LCAwKTsKIAkJaWd0X2Fzc2VydF9lcShm Yi0+c3RyaWRlc1sxXSAmIDEyNywgMCk7CiAKQEAgLTE1NDQsMTQgKzE1NDQsMTQgQEAgc3RhdGlj IHZvaWQgYmxpdGNvcHkoY29uc3Qgc3RydWN0IGlndF9mYiAqZHN0X2ZiLAogCQkJCQkgICBzcmNf ZmItPmdlbV9oYW5kbGUsCiAJCQkJCSAgIHNyY19mYi0+b2Zmc2V0c1tpXSwKIAkJCQkJICAgc3Jj X2ZiLT5zdHJpZGVzW2ldLAotCQkJCQkgICBpZ3RfZmJfbW9kX3RvX3RpbGluZyhzcmNfZmItPnRp bGluZyksCisJCQkJCSAgIGlndF9mYl9tb2RfdG9fdGlsaW5nKHNyY19mYi0+bW9kaWZpZXIpLAog CQkJCQkgICAwLCAwLCAvKiBzcmNfeCwgc3JjX3kgKi8KIAkJCQkJICAgZHN0X2ZiLT5wbGFuZV93 aWR0aFtpXSwgZHN0X2ZiLT5wbGFuZV9oZWlnaHRbaV0sCiAJCQkJCSAgIGRzdF9mYi0+cGxhbmVf YnBwW2ldLAogCQkJCQkgICBkc3RfZmItPmdlbV9oYW5kbGUsCiAJCQkJCSAgIGRzdF9mYi0+b2Zm c2V0c1tpXSwKIAkJCQkJICAgZHN0X2ZiLT5zdHJpZGVzW2ldLAotCQkJCQkgICBpZ3RfZmJfbW9k X3RvX3RpbGluZyhkc3RfZmItPnRpbGluZyksCisJCQkJCSAgIGlndF9mYl9tb2RfdG9fdGlsaW5n KGRzdF9mYi0+bW9kaWZpZXIpLAogCQkJCQkgICAwLCAwIC8qIGRzdF94LCBkc3RfeSAqLyk7CiAJ fQogfQpAQCAtMjQ5Miw3ICsyNDkyLDcgQEAgc3RhdGljIHZvaWQgY3JlYXRlX2NhaXJvX3N1cmZh Y2VfX2NvbnZlcnQoaW50IGZkLCBzdHJ1Y3QgaWd0X2ZiICpmYikKIAlibGl0LT5iYXNlLmZkID0g ZmQ7CiAJYmxpdC0+YmFzZS5mYiA9IGZiOwogCi0JaWYgKGlzX2Njc19tb2RpZmllcihmYi0+dGls aW5nKSkgeworCWlmIChpc19jY3NfbW9kaWZpZXIoZmItPm1vZGlmaWVyKSkgewogCQlibGl0LT5i YXNlLmJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZmQsIDQwOTYpOwogCQlibGl0 LT5iYXNlLmJhdGNoID0gaW50ZWxfYmF0Y2hidWZmZXJfYWxsb2MoYmxpdC0+YmFzZS5idWZtZ3Is CiAJCQkJCQkgICBpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSk7CkBAIC0yNTA0LDEwICsyNTA0LDEw IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZV9jYWlyb19zdXJmYWNlX19jb252ZXJ0KGludCBmZCwgc3Ry dWN0IGlndF9mYiAqZmIpCiAJCQkJCQkJICAgICAmYmxpdC0+c2hhZG93X2ZiKTsKIAlpZ3RfYXNz ZXJ0KGJsaXQtPnNoYWRvd19wdHIpOwogCi0JaWYgKGZiLT50aWxpbmcgPT0gTE9DQUxfSTkxNV9G T1JNQVRfTU9EX1lfVElMRUQgfHwKLQkgICAgZmItPnRpbGluZyA9PSBMT0NBTF9JOTE1X0ZPUk1B VF9NT0RfWWZfVElMRUQgfHwKLQkgICAgZmItPnRpbGluZyA9PSBMT0NBTF9JOTE1X0ZPUk1BVF9N T0RfWV9USUxFRF9DQ1MgfHwKLQkgICAgZmItPnRpbGluZyA9PSBMT0NBTF9JOTE1X0ZPUk1BVF9N T0RfWWZfVElMRURfQ0NTKSB7CisJaWYgKGZiLT5tb2RpZmllciA9PSBMT0NBTF9JOTE1X0ZPUk1B VF9NT0RfWV9USUxFRCB8fAorCSAgICBmYi0+bW9kaWZpZXIgPT0gTE9DQUxfSTkxNV9GT1JNQVRf TU9EX1lmX1RJTEVEIHx8CisJICAgIGZiLT5tb2RpZmllciA9PSBMT0NBTF9JOTE1X0ZPUk1BVF9N T0RfWV9USUxFRF9DQ1MgfHwKKwkgICAgZmItPm1vZGlmaWVyID09IExPQ0FMX0k5MTVfRk9STUFU X01PRF9ZZl9USUxFRF9DQ1MpIHsKIAkJc2V0dXBfbGluZWFyX21hcHBpbmcoJmJsaXQtPmJhc2Up OwogCX0gZWxzZSB7CiAJCWJsaXQtPmJhc2UubGluZWFyLmZiID0gKmZiOwpAQCAtMjU4NywxMCAr MjU4NywxMCBAQCBjYWlyb19zdXJmYWNlX3QgKmlndF9nZXRfY2Fpcm9fc3VyZmFjZShpbnQgZmQs IHN0cnVjdCBpZ3RfZmIgKmZiKQogCQkgICAgKChmLT5jYWlyb19pZCA9PSBDQUlST19GT1JNQVRf SU5WQUxJRCkgJiYKIAkJICAgICAoZi0+cGl4bWFuX2lkICE9IFBJWE1BTl9pbnZhbGlkKSkpCiAJ CQljcmVhdGVfY2Fpcm9fc3VyZmFjZV9fY29udmVydChmZCwgZmIpOwotCQllbHNlIGlmIChpc19j Y3NfbW9kaWZpZXIoZmItPnRpbGluZykpCisJCWVsc2UgaWYgKGlzX2Njc19tb2RpZmllcihmYi0+ bW9kaWZpZXIpKQogCQkJY3JlYXRlX2NhaXJvX3N1cmZhY2VfX3JlbmRlcmNvcHkoZmQsIGZiKTsK LQkJZWxzZSBpZiAoZmItPnRpbGluZyA9PSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB8 fAotCQkJIGZiLT50aWxpbmcgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEKQorCQll bHNlIGlmIChmYi0+bW9kaWZpZXIgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwK KwkJCSBmYi0+bW9kaWZpZXIgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEKQogCQkJ Y3JlYXRlX2NhaXJvX3N1cmZhY2VfX2JsaXQoZmQsIGZiKTsKIAkJZWxzZQogCQkJY3JlYXRlX2Nh aXJvX3N1cmZhY2VfX2d0dChmZCwgZmIpOwpkaWZmIC0tZ2l0IGEvbGliL2lndF9mYi5oIGIvbGli L2lndF9mYi5oCmluZGV4IGUxZDg4NWUyLi4yNGQ0MGIxOCAxMDA2NDQKLS0tIGEvbGliL2lndF9m Yi5oCisrKyBiL2xpYi9pZ3RfZmIuaApAQCAtNTMsNyArNTMsNyBAQAogICogQGRybV9mb3JtYXQ6 IERSTSBGT1VSQ0MgY29kZQogICogQHdpZHRoOiB3aWR0aCBpbiBwaXhlbHMKICAqIEBoZWlnaHQ6 IGhlaWdodCBpbiBwaXhlbHMKLSAqIEB0aWxpbmc6IHRpbGluZyBtb2RlIGFzIGEgRFJNIGZyYW1l YnVmZmVyIG1vZGlmaWVyCisgKiBAbW9kaWZpZXI6IHRpbGluZyBtb2RlIGFzIGEgRFJNIGZyYW1l YnVmZmVyIG1vZGlmaWVyCiAgKiBAc2l6ZTogc2l6ZSBpbiBieXRlcyBvZiB0aGUgdW5kZXJseWlu ZyBiYWNraW5nIHN0b3JhZ2UKICAqIEBjYWlyb19zdXJmYWNlOiBvcHRpb25hbGx5IGF0dGFjaGVk IGNhaXJvIGRyYXdpbmcgc3VyZmFjZQogICogQGRvbWFpbjogY3VycmVudCBkb21haW4gZm9yIGNh Y2hlIGZsdXNoaW5nIHRyYWNraW5nIG9uIGk5MTUua28KQEAgLTc2LDcgKzc2LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgaWd0X2ZiIHsKIAlpbnQgaGVpZ2h0OwogCWVudW0gaWd0X2NvbG9yX2VuY29kaW5n IGNvbG9yX2VuY29kaW5nOwogCWVudW0gaWd0X2NvbG9yX3JhbmdlIGNvbG9yX3JhbmdlOwotCXVp bnQ2NF90IHRpbGluZzsKKwl1aW50NjRfdCBtb2RpZmllcjsKIAl1aW50NjRfdCBzaXplOwogCWNh aXJvX3N1cmZhY2VfdCAqY2Fpcm9fc3VyZmFjZTsKIAl1bnNpZ25lZCBpbnQgZG9tYWluOwpAQCAt MTA4LDM0ICsxMDgsMzQgQEAgZW51bSBpZ3RfdGV4dF9hbGlnbiB7CiAJYWxpZ25faGNlbnRlcgk9 IDB4MDgsCiB9OwogCi12b2lkIGlndF9nZXRfZmJfdGlsZV9zaXplKGludCBmZCwgdWludDY0X3Qg dGlsaW5nLCBpbnQgZmJfYnBwLAordm9pZCBpZ3RfZ2V0X2ZiX3RpbGVfc2l6ZShpbnQgZmQsIHVp bnQ2NF90IG1vZGlmaWVyLCBpbnQgZmJfYnBwLAogCQkJICB1bnNpZ25lZCAqd2lkdGhfcmV0LCB1 bnNpZ25lZCAqaGVpZ2h0X3JldCk7Ci12b2lkIGlndF9jYWxjX2ZiX3NpemUoaW50IGZkLCBpbnQg d2lkdGgsIGludCBoZWlnaHQsIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgdGlsaW5nLAordm9p ZCBpZ3RfY2FsY19mYl9zaXplKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1aW50MzJf dCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLAogCQkgICAgICB1aW50NjRfdCAqc2l6ZV9yZXQs IHVuc2lnbmVkICpzdHJpZGVfcmV0KTsKIHVuc2lnbmVkIGludAogaWd0X2NyZWF0ZV9mYl93aXRo X2JvX3NpemUoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCi0JCQkgICB1aW50MzJfdCBm b3JtYXQsIHVpbnQ2NF90IHRpbGluZywKKwkJCSAgIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3Qg bW9kaWZpZXIsCiAJCQkgICBzdHJ1Y3QgaWd0X2ZiICpmYiwgdWludDY0X3QgYm9fc2l6ZSwKIAkJ CSAgIHVuc2lnbmVkIGJvX3N0cmlkZSk7CiB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9mYihpbnQg ZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LAotCQkJICAgdWludDY0 X3QgdGlsaW5nLCBzdHJ1Y3QgaWd0X2ZiICpmYik7CisJCQkgICB1aW50NjRfdCBtb2RpZmllciwg c3RydWN0IGlndF9mYiAqZmIpOwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfY29sb3JfZmIoaW50 IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCi0JCQkJIHVpbnQzMl90IGZvcm1hdCwgdWludDY0 X3QgdGlsaW5nLAorCQkJCSB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLAogCQkJ CSBkb3VibGUgciwgZG91YmxlIGcsIGRvdWJsZSBiLAogCQkJCSBzdHJ1Y3QgaWd0X2ZiICpmYiAv KiBvdXQgKi8pOwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfcGF0dGVybl9mYihpbnQgZmQsIGlu dCB3aWR0aCwgaW50IGhlaWdodCwKLQkJCQkgICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IHRp bGluZywKKwkJCQkgICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLAogCQkJCSAg IHN0cnVjdCBpZ3RfZmIgKmZiIC8qIG91dCAqLyk7CiB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9j b2xvcl9wYXR0ZXJuX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAotCQkJCQkgdWlu dDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcsCisJCQkJCSB1aW50MzJfdCBmb3JtYXQsIHVp bnQ2NF90IG1vZGlmaWVyLAogCQkJCQkgZG91YmxlIHIsIGRvdWJsZSBnLCBkb3VibGUgYiwKIAkJ CQkJIHN0cnVjdCBpZ3RfZmIgKmZiIC8qIG91dCAqLyk7CiB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0 ZV9pbWFnZV9mYihpbnQgZHJtX2ZkLCAgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAotCQkJCSB1aW50 MzJfdCBmb3JtYXQsIHVpbnQ2NF90IHRpbGluZywKKwkJCQkgdWludDMyX3QgZm9ybWF0LCB1aW50 NjRfdCBtb2RpZmllciwKIAkJCQkgY29uc3QgY2hhciAqZmlsZW5hbWUsCiAJCQkJIHN0cnVjdCBp Z3RfZmIgKmZiIC8qIG91dCAqLyk7CiB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9zdGVyZW9fZmIo aW50IGRybV9mZCwgZHJtTW9kZU1vZGVJbmZvICptb2RlLAotCQkJCSAgdWludDMyX3QgZm9ybWF0 LCB1aW50NjRfdCB0aWxpbmcpOworCQkJCSAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2Rp Zmllcik7CiB1bnNpZ25lZCBpbnQgaWd0X2ZiX2NvbnZlcnRfd2l0aF9zdHJpZGUoc3RydWN0IGln dF9mYiAqZHN0LCBzdHJ1Y3QgaWd0X2ZiICpzcmMsCiAJCQkJCXVpbnQzMl90IGRzdF9mb3VyY2Ms CiAJCQkJCXVpbnQ2NF90IGRzdF9tb2RpZmllciwKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jY3Mu YyBiL3Rlc3RzL2ttc19jY3MuYwppbmRleCAxZWQyYjRhMC4uNDI1OTZhNDUgMTAwNjQ0Ci0tLSBh L3Rlc3RzL2ttc19jY3MuYworKysgYi90ZXN0cy9rbXNfY2NzLmMKQEAgLTM4OCw3ICszODgsNyBA QCBzdGF0aWMgdm9pZCBnZW5lcmF0ZV9mYihkYXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3RfZmIgKmZi LAogCWZiLT53aWR0aCA9IGYud2lkdGg7CiAJZmItPmhlaWdodCA9IGYuaGVpZ2h0OwogCWZiLT5z dHJpZGVzWzBdID0gZi5waXRjaGVzWzBdOwotCWZiLT50aWxpbmcgPSBmLm1vZGlmaWVyWzBdOwor CWZiLT5tb2RpZmllciA9IGYubW9kaWZpZXJbMF07CiAJZmItPnNpemUgPSBzaXplWzBdOwogCWZi LT5jYWlyb19zdXJmYWNlID0gTlVMTDsKIAlmYi0+ZG9tYWluID0gMDsKLS0gCjIuMTcuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWls aW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2