From mboxrd@z Thu Jan 1 00:00:00 1970 From: sourab.gupta@intel.com Subject: [PATCH 04/15] drm/i915: flush periodic samples, in case of no pending CS sample requests Date: Thu, 2 Jun 2016 10:48:38 +0530 Message-ID: <1464844729-2774-5-git-send-email-sourab.gupta@intel.com> References: <1464844729-2774-1-git-send-email-sourab.gupta@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id C419D6E309 for ; Thu, 2 Jun 2016 05:17:09 +0000 (UTC) In-Reply-To: <1464844729-2774-1-git-send-email-sourab.gupta@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , Sourab Gupta , Deepak S List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgoKV2hlbiB0aGVyZSBh cmUgbm8gcGVuZGluZyBDUyBPQSBzYW1wbGVzLCBmbHVzaCB0aGUgcGVyaW9kaWMgT0Egc2FtcGxl cwpjb2xsZWN0ZWQgc28gZmFyLgoKV2UgY2FuIHNhZmVseSBmb3J3YXJkIHRoZSBwZXJpb2RpYyBP QSBzYW1wbGVzIGluIHRoZSBjYXNlIHdlCmhhdmUgbm8gcGVuZGluZyBDUyBzYW1wbGVzLCBidXQg d2UgY2FuJ3QgZG8gc28gaW4gdGhlIGNhc2Ugd2UgaGF2ZQpwZW5kaW5nIENTIHNhbXBsZXMsIHNp bmNlIHdlIGRvbid0IGtub3cgd2hhdCB0aGUgb3JkZXJpbmcgYmV0d2VlbgpwZW5kaW5nIENTIHNh bXBsZXMgYW5kIHBlcmlvZGljIHNhbXBsZXMgd2lsbCBldmVudHVhbGx5IGJlLiBJZiB3ZQpoYXZl IG5vIHBlbmRpbmcgQ1Mgc2FtcGxlLCBpdCB3b24ndCBiZSBwb3NzaWJsZSBmb3IgZnV0dXJlIHBl bmRpbmcgQ1MKc2FtcGxlIHRvIGhhdmUgdGltZXN0YW1wcyBlYXJsaWVyIHRoYW4gY3VycmVudCBw ZXJpb2RpYyB0aW1lc3RhbXAuCgpTaWduZWQtb2ZmLWJ5OiBTb3VyYWIgR3VwdGEgPHNvdXJhYi5n dXB0YUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgfCAg MTQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgfCAxNzMgKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE0MCBpbnNl cnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBm OTViMDJiLi43ZWZkZmMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTE3NTEsNyArMTc1 MSw3IEBAIHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtX29wcyB7CiAJLyogUmV0dXJuOiB0cnVlIGlm IGFueSBpOTE1IHBlcmYgcmVjb3JkcyBhcmUgcmVhZHkgdG8gcmVhZCgpCiAJICogZm9yIHRoaXMg c3RyZWFtLgogCSAqLwotCWJvb2wgKCpjYW5fcmVhZCkoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0g KnN0cmVhbSk7CisJYm9vbCAoKmNhbl9yZWFkX3VubG9ja2VkKShzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtKTsKIAogCS8qIENhbGwgcG9sbF93YWl0LCBwYXNzaW5nIGEgd2FpdCBxdWV1 ZSB0aGF0IHdpbGwgYmUgd29rZW4KIAkgKiBvbmNlIHRoZXJlIGlzIHNvbWV0aGluZyByZWFkeSB0 byByZWFkKCkgZm9yIHRoZSBzdHJlYW0KQEAgLTE3NjMsOCArMTc2Myw4IEBAIHN0cnVjdCBpOTE1 X3BlcmZfc3RyZWFtX29wcyB7CiAJLyogRm9yIGhhbmRsaW5nIGEgYmxvY2tpbmcgcmVhZCwgd2Fp dCB1bnRpbCB0aGVyZSBpcyBzb21ldGhpbmcKIAkgKiB0byByZWFkeSB0byByZWFkKCkgZm9yIHRo ZSBzdHJlYW0uIEUuZy4gd2FpdCBvbiB0aGUgc2FtZQogCSAqIHdhaXQgcXVldWUgdGhhdCB3b3Vs ZCBiZSBwYXNzZWQgdG8gcG9sbF93YWl0KCkgdW50aWwKLQkgKiAtPmNhbl9yZWFkKCkgcmV0dXJu cyB0cnVlIChpZiBpdHMgc2FmZSB0byBjYWxsIC0+Y2FuX3JlYWQoKQotCSAqIHdpdGhvdXQgdGhl IGk5MTUgcGVyZiBsb2NrIGhlbGQpLgorCSAqIC0+Y2FuX3JlYWRfdW5sb2NrZWQoKSByZXR1cm5z IHRydWUgKGlmIGl0cyBzYWZlIHRvIGNhbGwKKwkgKiAtPmNhbl9yZWFkX3VubG9ja2VkKCkgd2l0 aG91dCB0aGUgaTkxNSBwZXJmIGxvY2sgaGVsZCkuCiAJICovCiAJaW50ICgqd2FpdF91bmxvY2tl ZCkoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSk7CiAKQEAgLTE4MzQsOCArMTgzNCwx MCBAQCBzdHJ1Y3QgaTkxNV9vYV9vcHMgewogCQkJCQl1MzIgY3R4X2lkKTsKIAl2b2lkICgqbGVn YWN5X2N0eF9zd2l0Y2hfdW5sb2NrZWQpKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KTsKIAlpbnQgKCpyZWFkKShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAotCQkgICAg c3RydWN0IGk5MTVfcGVyZl9yZWFkX3N0YXRlICpyZWFkX3N0YXRlLCB1MzIgdHMpOwotCWJvb2wg KCpvYV9idWZmZXJfaXNfZW1wdHkpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 CisJCSAgICBzdHJ1Y3QgaTkxNV9wZXJmX3JlYWRfc3RhdGUgKnJlYWRfc3RhdGUsCisJCSAgICB1 MzIgdHMsIHUzMiBtYXhfcmVjb3Jkcyk7CisJaW50ICgqb2FfYnVmZmVyX251bV9zYW1wbGVzKShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJCXUzMiAqbGFzdF90cyk7CiB9 OwogCiAvKgpAQCAtMjE3NSw2ICsyMTc3LDggQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewog CQkJdTMyIGdlbjdfbGF0Y2hlZF9vYXN0YXR1czE7CiAJCQl1MzIgY3R4X29hY3R4Y3RybF9vZmY7 CiAJCQl1MzIgY3R4X2ZsZXhldTBfb2ZmOworCQkJdTMyIG5fcGVuZGluZ19wZXJpb2RpY19zYW1w bGVzOworCQkJdTMyIHBlbmRpbmdfcGVyaW9kaWNfdHM7CiAKIAkJCXN0cnVjdCBpOTE1X29hX29w cyBvcHM7CiAJCQljb25zdCBzdHJ1Y3QgaTkxNV9vYV9mb3JtYXQgKm9hX2Zvcm1hdHM7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGVyZi5jCmluZGV4IDQyZTkzMGYuLmI1M2NjZjUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcGVyZi5jCkBAIC0zODgsMTMgKzM4OCwzMCBAQCBzdGF0aWMgdm9pZCBpOTE1X29hX3Jj c19mcmVlX3JlcXVlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqIHBv aW50ZXJzLiAgQSByYWNlIGhlcmUgY291bGQgcmVzdWx0IGluIGEgZmFsc2UgcG9zaXRpdmUgIWVt cHR5IHN0YXR1cyB3aGljaAogICogaXMgYWNjZXB0YWJsZS4KICAqLwotc3RhdGljIGJvb2wgZ2Vu OF9vYV9idWZmZXJfaXNfZW1wdHlfZm9wX3VubG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKK3N0YXRpYyBpbnQKK2dlbjhfb2FfYnVmZmVyX251bV9zYW1wbGVzX2ZvcF91 bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJCXUzMiAqbGFz dF90cykKIHsKIAlpbnQgcmVwb3J0X3NpemUgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIu Zm9ybWF0X3NpemU7Ci0JdTMyIGhlYWQgPSBJOTE1X1JFQUQoR0VOOF9PQUhFQURQVFIpOwotCXUz MiB0YWlsID0gSTkxNV9SRUFEKEdFTjhfT0FUQUlMUFRSKTsKKwl1OCAqb2FfYnVmX2Jhc2UgPSBk ZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuYWRkcjsKKwl1MzIgaGVhZCA9IEk5MTVfUkVBRChH RU44X09BSEVBRFBUUikgJiBHRU44X09BSEVBRFBUUl9NQVNLOworCXUzMiB0YWlsID0gSTkxNV9S RUFEKEdFTjhfT0FUQUlMUFRSKSAmIEdFTjhfT0FUQUlMUFRSX01BU0s7CisJdTMyIG1hc2sgPSAo T0FfQlVGRkVSX1NJWkUgLSAxKTsKKwl1MzIgbnVtX3NhbXBsZXM7CisJdTggKnJlcG9ydDsKKwor CWhlYWQgLT0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmd0dF9vZmZzZXQ7CisJdGFpbCAt PSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuZ3R0X29mZnNldDsKKwludW1fc2FtcGxlcyA9 IE9BX1RBS0VOKHRhaWwsIGhlYWQpIC8gcmVwb3J0X3NpemU7CiAKLQlyZXR1cm4gT0FfVEFLRU4o dGFpbCwgaGVhZCkgPCByZXBvcnRfc2l6ZTsKKwkvKiByZWFkIHRoZSB0aW1lc3RhbXAgb2YgdGhl IGxhc3Qgc2FtcGxlICovCisJaWYgKG51bV9zYW1wbGVzKSB7CisJCWhlYWQgKz0gcmVwb3J0X3Np emUqKG51bV9zYW1wbGVzIC0gMSk7CisJCXJlcG9ydCA9IG9hX2J1Zl9iYXNlICsgKGhlYWQgJiBt YXNrKTsKKwkJKmxhc3RfdHMgPSAqKHUzMiAqKShyZXBvcnQgKyA0KTsKKwl9CisKKwlyZXR1cm4g bnVtX3NhbXBsZXM7CiB9CiAKIC8qIE5COiBUaGlzIGlzIGVpdGhlciBjYWxsZWQgdmlhIGZvcHMg b3IgdGhlIHBvbGwgY2hlY2sgaHJ0aW1lciAoYXRvbWljIGN0eCkKQEAgLTQwOCwxNiArNDI1LDMy IEBAIHN0YXRpYyBib29sIGdlbjhfb2FfYnVmZmVyX2lzX2VtcHR5X2ZvcF91bmxvY2tlZChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByCiAgKiBwb2ludGVycy4gIEEgcmFjZSBoZXJlIGNv dWxkIHJlc3VsdCBpbiBhIGZhbHNlIHBvc2l0aXZlICFlbXB0eSBzdGF0dXMgd2hpY2gKICAqIGlz IGFjY2VwdGFibGUuCiAgKi8KLXN0YXRpYyBib29sIGdlbjdfb2FfYnVmZmVyX2lzX2VtcHR5X2Zv cF91bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgaW50 CitnZW43X29hX2J1ZmZlcl9udW1fc2FtcGxlc19mb3BfdW5sb2NrZWQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCQl1MzIgKmxhc3RfdHMpCiB7CiAJaW50IHJlcG9ydF9z aXplID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZvcm1hdF9zaXplOwogCXUzMiBvYXN0 YXR1czIgPSBJOTE1X1JFQUQoR0VON19PQVNUQVRVUzIpOwogCXUzMiBvYXN0YXR1czEgPSBJOTE1 X1JFQUQoR0VON19PQVNUQVRVUzEpOwogCXUzMiBoZWFkID0gb2FzdGF0dXMyICYgR0VON19PQVNU QVRVUzJfSEVBRF9NQVNLOwogCXUzMiB0YWlsID0gb2FzdGF0dXMxICYgR0VON19PQVNUQVRVUzFf VEFJTF9NQVNLOworCXU4ICpvYV9idWZfYmFzZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZl ci5hZGRyOworCXUzMiBtYXNrID0gKE9BX0JVRkZFUl9TSVpFIC0gMSk7CisJaW50IGF2YWlsYWJs ZV9zaXplOworCXUzMiBudW1fc2FtcGxlcyA9IDA7CisJdTggKnJlcG9ydDsKIAotCXJldHVybiBP QV9UQUtFTih0YWlsLCBoZWFkKSA8Ci0JCWRldl9wcml2LT5wZXJmLm9hLnRhaWxfbWFyZ2luICsg cmVwb3J0X3NpemU7CisJaGVhZCAtPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuZ3R0X29m ZnNldDsKKwl0YWlsIC09IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5ndHRfb2Zmc2V0Owor CWF2YWlsYWJsZV9zaXplID0gT0FfVEFLRU4odGFpbCwgaGVhZCkgLSBkZXZfcHJpdi0+cGVyZi5v YS50YWlsX21hcmdpbjsKKwlpZiAoYXZhaWxhYmxlX3NpemUgPj0gcmVwb3J0X3NpemUpIHsKKwkJ bnVtX3NhbXBsZXMgPSBhdmFpbGFibGVfc2l6ZSAvIHJlcG9ydF9zaXplOworCQloZWFkICs9IHJl cG9ydF9zaXplKihudW1fc2FtcGxlcyAtIDEpOworCQlyZXBvcnQgPSBvYV9idWZfYmFzZSArICho ZWFkICYgbWFzayk7CisJCSpsYXN0X3RzID0gKih1MzIgKikocmVwb3J0ICsgNCk7CisJfQorCisJ cmV0dXJuIG51bV9zYW1wbGVzOwogfQogCiAvKioKQEAgLTU0Miw3ICs1NzUsNyBAQCBzdGF0aWMg aW50IGFwcGVuZF9vYV9idWZmZXJfc2FtcGxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJl YW0sCiBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9z dHJlYW0gKnN0cmVhbSwKIAkJCQkgIHN0cnVjdCBpOTE1X3BlcmZfcmVhZF9zdGF0ZSAqcmVhZF9z dGF0ZSwKIAkJCQkgIHUzMiAqaGVhZF9wdHIsCi0JCQkJICB1MzIgdGFpbCwgdTMyIHRzKQorCQkJ CSAgdTMyIHRhaWwsIHUzMiB0cywgdTMyIG1heF9yZWNvcmRzKQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CiAJaW50IHJlcG9ydF9zaXpl ID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZvcm1hdF9zaXplOwpAQCAtNTUxLDYgKzU4 NCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtLAogCXUzMiBoZWFkOwogCXUzMiB0YWtlbjsKIAlpbnQgcmV0ID0gMDsK KwlpbnQgbl9yZWNvcmRzID0gMDsKIAogCUJVR19PTihzdHJlYW0tPnN0YXRlICE9IEk5MTVfUEVS Rl9TVFJFQU1fRU5BQkxFRCk7CiAKQEAgLTU3Nyw3ICs2MTEsNyBAQCBzdGF0aWMgaW50IGdlbjhf YXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAl0YWls ICY9IH4ocmVwb3J0X3NpemUgLSAxKTsKIAogCWZvciAoLyogbm9uZSAqLzsKLQkgICAgICh0YWtl biA9IE9BX1RBS0VOKHRhaWwsIGhlYWQpKTsKKwkgICAgICh0YWtlbiA9IE9BX1RBS0VOKHRhaWws IGhlYWQpKSAmJiAobl9yZWNvcmRzIDw9IG1heF9yZWNvcmRzKTsKIAkgICAgIGhlYWQgPSAoaGVh ZCArIHJlcG9ydF9zaXplKSAmIG1hc2spIHsKIAkJdTggKnJlcG9ydCA9IG9hX2J1Zl9iYXNlICsg aGVhZDsKIAkJdTMyICpyZXBvcnQzMiA9ICh2b2lkICopcmVwb3J0OwpAQCAtNjQzLDYgKzY3Nyw3 IEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtLAogCQkJaWYgKHJldCkKIAkJCQlicmVhazsKIAorCQkJCW5fcmVjb3Jkcysr OwogCQkJZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmxhc3RfY3R4X2lkID0gY3R4X2lkOwog CQl9CiAJfQpAQCAtNjYxLDcgKzY5Niw4IEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVw b3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogICogdXBkYXRlZCBAcmVhZF9z dGF0ZS4KICAqLwogc3RhdGljIGludCBnZW44X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJl YW0gKnN0cmVhbSwKLQkJCXN0cnVjdCBpOTE1X3BlcmZfcmVhZF9zdGF0ZSAqcmVhZF9zdGF0ZSwg dTMyIHRzKQorCQkJc3RydWN0IGk5MTVfcGVyZl9yZWFkX3N0YXRlICpyZWFkX3N0YXRlLAorCQkJ dTMyIHRzLCB1MzIgbWF4X3JlY29yZHMpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAlpbnQgcmVwb3J0X3NpemUgPSBkZXZfcHJpdi0+ cGVyZi5vYS5vYV9idWZmZXIuZm9ybWF0X3NpemU7CkBAIC03MDMsNyArNzM5LDggQEAgc3RhdGlj IGludCBnZW44X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAogCS8q IElmIHRoZXJlIGlzIHN0aWxsIGJ1ZmZlciBzcGFjZSAqLwogCi0JcmV0ID0gZ2VuOF9hcHBlbmRf b2FfcmVwb3J0cyhzdHJlYW0sIHJlYWRfc3RhdGUsICZoZWFkLCB0YWlsLCB0cyk7CisJcmV0ID0g Z2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJlYW0sIHJlYWRfc3RhdGUsICZoZWFkLCB0YWlsLAor CQkJCSAgICAgdHMsIG1heF9yZWNvcmRzKTsKIAogCS8qIEFsbCB0aGUgcmVwb3J0IHNpemVzIGFy ZSBhIHBvd2VyIG9mIHR3byBhbmQgdGhlCiAJICogaGVhZCBzaG91bGQgYWx3YXlzIGJlIGluY3Jl bWVudGVkIGJ5IHNvbWUgbXVsdGlwbGUKQEAgLTc0Miw3ICs3NzksNyBAQCBzdGF0aWMgaW50IGdl bjhfb2FfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogc3RhdGljIGludCBn ZW43X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJ CQkJICBzdHJ1Y3QgaTkxNV9wZXJmX3JlYWRfc3RhdGUgKnJlYWRfc3RhdGUsCiAJCQkJICB1MzIg KmhlYWRfcHRyLAotCQkJCSAgdTMyIHRhaWwsIHUzMiB0cykKKwkJCQkgIHUzMiB0YWlsLCB1MzIg dHMsIHUzMiBtYXhfcmVjb3JkcykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBzdHJlYW0tPmRldl9wcml2OwogCWludCByZXBvcnRfc2l6ZSA9IGRldl9wcml2LT5wZXJm Lm9hLm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsKQEAgLTc1Miw2ICs3ODksNyBAQCBzdGF0aWMgaW50 IGdlbjdfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwK IAl1MzIgaGVhZDsKIAl1MzIgdGFrZW47CiAJaW50IHJldCA9IDA7CisJaW50IG5fcmVjb3JkcyA9 IDA7CiAKIAlCVUdfT04oc3RyZWFtLT5zdGF0ZSAhPSBJOTE1X1BFUkZfU1RSRUFNX0VOQUJMRUQp OwogCkBAIC03OTEsNyArODI5LDcgQEAgc3RhdGljIGludCBnZW43X2FwcGVuZF9vYV9yZXBvcnRz KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJdGFpbCAmPSBtYXNrOwogCiAJZm9y ICgvKiBub25lICovOwotCSAgICAgKHRha2VuID0gT0FfVEFLRU4odGFpbCwgaGVhZCkpOworCSAg ICAgKHRha2VuID0gT0FfVEFLRU4odGFpbCwgaGVhZCkpICYmIChuX3JlY29yZHMgPD0gbWF4X3Jl Y29yZHMpOwogCSAgICAgaGVhZCA9IChoZWFkICsgcmVwb3J0X3NpemUpICYgbWFzaykgewogCQl1 OCAqcmVwb3J0ID0gb2FfYnVmX2Jhc2UgKyBoZWFkOwogCQl1MzIgKnJlcG9ydDMyID0gKHZvaWQg KilyZXBvcnQ7CkBAIC04MjQsNiArODYyLDcgQEAgc3RhdGljIGludCBnZW43X2FwcGVuZF9vYV9y ZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCXJldCA9IGFwcGVuZF9v YV9idWZmZXJfc2FtcGxlKHN0cmVhbSwgcmVhZF9zdGF0ZSwgcmVwb3J0KTsKIAkJaWYgKHJldCkK IAkJCWJyZWFrOworCQluX3JlY29yZHMrKzsKIAogCQkvKiBUaGUgYWJvdmUgcmVwb3J0LWlkIGZp ZWxkIHNhbml0eSBjaGVjayBpcyBiYXNlZCBvbgogCQkgKiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRo ZSBPQSBidWZmZXIgaXMgaW5pdGlhbGx5CkBAIC04NDgsNyArODg3LDggQEAgc3RhdGljIGludCBn ZW43X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAg KiB1cGRhdGVkIEByZWFkX3N0YXRlLgogICovCiBzdGF0aWMgaW50IGdlbjdfb2FfcmVhZChzdHJ1 Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAotCQkJc3RydWN0IGk5MTVfcGVyZl9yZWFkX3N0 YXRlICpyZWFkX3N0YXRlLCB1MzIgdHMpCisJCQlzdHJ1Y3QgaTkxNV9wZXJmX3JlYWRfc3RhdGUg KnJlYWRfc3RhdGUsCisJCQl1MzIgdHMsIHUzMiBtYXhfcmVjb3JkcykKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwogCWludCByZXBvcnRf c2l6ZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsKQEAgLTkyMCw3 ICs5NjAsOCBAQCBzdGF0aWMgaW50IGdlbjdfb2FfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVh bSAqc3RyZWFtLAogCQkJR0VON19PQVNUQVRVUzFfUkVQT1JUX0xPU1Q7CiAJfQogCi0JcmV0ID0g Z2VuN19hcHBlbmRfb2FfcmVwb3J0cyhzdHJlYW0sIHJlYWRfc3RhdGUsICZoZWFkLCB0YWlsLCB0 cyk7CisJcmV0ID0gZ2VuN19hcHBlbmRfb2FfcmVwb3J0cyhzdHJlYW0sIHJlYWRfc3RhdGUsICZo ZWFkLCB0YWlsLAorCQkJCXRzLCBtYXhfcmVjb3Jkcyk7CiAKIAkvKiBBbGwgdGhlIHJlcG9ydCBz aXplcyBhcmUgYSBwb3dlciBvZiB0d28gYW5kIHRoZQogCSAqIGhlYWQgc2hvdWxkIGFsd2F5cyBi ZSBpbmNyZW1lbnRlZCBieSBzb21lIG11bHRpcGxlCkBAIC05NjYsNyArMTAwNyw4IEBAIHN0YXRp YyBpbnQgYXBwZW5kX29hX3Jjc19zYW1wbGUoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVh bSwKIAogCS8qIEZpcnN0LCBhcHBlbmQgdGhlIHBlcmlvZGljIE9BIHNhbXBsZXMgaGF2aW5nIGxv d2VyIHRpbWVzdGFtcHMgKi8KIAlyZXBvcnRfdHMgPSAqKHUzMiAqKShyZXBvcnQgKyA0KTsKLQly ZXQgPSBkZXZfcHJpdi0+cGVyZi5vYS5vcHMucmVhZChzdHJlYW0sIHJlYWRfc3RhdGUsIHJlcG9y dF90cyk7CisJcmV0ID0gZGV2X3ByaXYtPnBlcmYub2Eub3BzLnJlYWQoc3RyZWFtLCByZWFkX3N0 YXRlLAorCQkJCQlyZXBvcnRfdHMsIFUzMl9NQVgpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7 CiAKQEAgLTk4Myw3ICsxMDI1LDggQEAgc3RhdGljIGludCBhcHBlbmRfb2FfcmNzX3NhbXBsZShz dHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogfQogCiAvKioKLSAqIENvcGllcyBhbGwg Y29tbWFuZCBzdHJlYW0gYmFzZWQgT0EgcmVwb3J0cyBpbnRvIHVzZXJzcGFjZSByZWFkKCkgYnVm ZmVyLgorICogQ29waWVzIGFsbCBPQSByZXBvcnRzIGludG8gdXNlcnNwYWNlIHJlYWQoKSBidWZm ZXIuIFRoaXMgaW5jbHVkZXMgY29tbWFuZAorICogc3RyZWFtIGFzIHdlbGwgYXMgcGVyaW9kaWMg T0EgcmVwb3J0cy4KICAqCiAgKiBOQjogc29tZSBkYXRhIG1heSBiZSBzdWNjZXNzZnVsbHkgY29w aWVkIHRvIHRoZSB1c2Vyc3BhY2UgYnVmZmVyCiAgKiBldmVuIGlmIGFuIGVycm9yIGlzIHJldHVy bmVkLCBhbmQgdGhpcyBpcyByZWZsZWN0ZWQgaW4gdGhlCkBAIC0xMDAwLDcgKzEwNDMsNyBAQCBz dGF0aWMgaW50IG9hX3Jjc19hcHBlbmRfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAq c3RyZWFtLAogCXNwaW5fbG9jaygmZGV2X3ByaXYtPnBlcmYubm9kZV9saXN0X2xvY2spOwogCWlm IChsaXN0X2VtcHR5KCZkZXZfcHJpdi0+cGVyZi5ub2RlX2xpc3QpKSB7CiAJCXNwaW5fdW5sb2Nr KCZkZXZfcHJpdi0+cGVyZi5ub2RlX2xpc3RfbG9jayk7Ci0JCXJldHVybiAwOworCQlnb3RvIHBl bmRpbmdfcGVyaW9kaWM7CiAJfQogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShlbnRyeSwgbmV4 dCwKIAkJCQkgJmRldl9wcml2LT5wZXJmLm5vZGVfbGlzdCwgbGluaykgewpAQCAtMTAxMSw3ICsx MDU0LDcgQEAgc3RhdGljIGludCBvYV9yY3NfYXBwZW5kX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVy Zl9zdHJlYW0gKnN0cmVhbSwKIAlzcGluX3VubG9jaygmZGV2X3ByaXYtPnBlcmYubm9kZV9saXN0 X2xvY2spOwogCiAJaWYgKGxpc3RfZW1wdHkoJmZyZWVfbGlzdCkpCi0JCXJldHVybiAwOworCQln b3RvIHBlbmRpbmdfcGVyaW9kaWM7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZW50cnks IG5leHQsICZmcmVlX2xpc3QsIGxpbmspIHsKIAkJcmV0ID0gYXBwZW5kX29hX3Jjc19zYW1wbGUo c3RyZWFtLCByZWFkX3N0YXRlLCBlbnRyeSk7CkBAIC0xMDI5LDE2ICsxMDcyLDM1IEBAIHN0YXRp YyBpbnQgb2FfcmNzX2FwcGVuZF9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJl YW0sCiAJc3Bpbl91bmxvY2soJmRldl9wcml2LT5wZXJmLm5vZGVfbGlzdF9sb2NrKTsKIAogCXJl dHVybiByZXQ7CisKK3BlbmRpbmdfcGVyaW9kaWM6CisJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5u X3BlbmRpbmdfcGVyaW9kaWNfc2FtcGxlcykKKwkJcmV0dXJuIDA7CisKKwlyZXQgPSBkZXZfcHJp di0+cGVyZi5vYS5vcHMucmVhZChzdHJlYW0sIHJlYWRfc3RhdGUsCisJCQkJZGV2X3ByaXYtPnBl cmYub2EucGVuZGluZ19wZXJpb2RpY190cywKKwkJCQlkZXZfcHJpdi0+cGVyZi5vYS5uX3BlbmRp bmdfcGVyaW9kaWNfc2FtcGxlcyk7CisJZGV2X3ByaXYtPnBlcmYub2Eubl9wZW5kaW5nX3Blcmlv ZGljX3NhbXBsZXMgPSAwOworCWRldl9wcml2LT5wZXJmLm9hLnBlbmRpbmdfcGVyaW9kaWNfdHMg PSAwOworCXJldHVybiByZXQ7CiB9CiAKK2VudW0gY3NfYnVmX2RhdGFfc3RhdGUgeworCUNTX0JV Rl9FTVBUWSwKKwlDU19CVUZfUkVRX1BFTkRJTkcsCisJQ1NfQlVGX0hBVkVfREFUQSwKK307CisK IC8qCiAgKiBDaGVja3Mgd2hldGhlciB0aGUgY29tbWFuZCBzdHJlYW0gYnVmZmVyIGFzc29jaWF0 ZWQgd2l0aCB0aGUgc3RyZWFtIGhhcwogICogZGF0YSByZWFkeSB0byBiZSBmb3J3YXJkZWQgdG8g dXNlcnNwYWNlLgotICogUmV0dXJucyB0cnVlIGlmIGF0bGVhc3Qgb25lIHJlcXVlc3QgYXNzb2Np YXRlZCB3aXRoIGNvbW1hbmQgc3RyZWFtIGlzCi0gKiBjb21wbGV0ZWQsIGVsc2UgcmV0dXJucyBm YWxzZS4KKyAqIFZhbHVlIHJldHVybmVkOgorICogQ1NfQlVGX0hBVkVfREFUQQktIGlmIHRoZXJl IGlzIGF0bGVhc3Qgb25lIGNvbXBsZXRlZCByZXF1ZXN0CisgKiBDU19CVUZfUkVRX1BFTkRJTkcJ LSB0aGVyZSBhcmUgcmVxdWVzdHMgcGVuZGluZywgYnV0IG5vIGNvbXBsZXRlZCByZXF1ZXN0cwor ICogQ1NfQlVGX0VNUFRZCQktIG5vIHJlcXVlc3RzIHNjaGVkdWxlZAogICovCi1zdGF0aWMgYm9v bCBjb21tYW5kX3N0cmVhbV9idWZfaXNfZW1wdHkoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0 cmVhbSkKLQorc3RhdGljIGVudW0gY3NfYnVmX2RhdGFfc3RhdGUgY29tbWFuZF9zdHJlYW1fYnVm X3N0YXRlKAorCQkJCXN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAlzdHJ1Y3Qg aTkxNV9wZXJmX2NzX2RhdGFfbm9kZSAqZW50cnkgPSBOVUxMOwpAQCAtMTA1MiwzNyArMTExNCw2 MyBAQCBzdGF0aWMgYm9vbCBjb21tYW5kX3N0cmVhbV9idWZfaXNfZW1wdHkoc3RydWN0IGk5MTVf cGVyZl9zdHJlYW0gKnN0cmVhbSkKIAlzcGluX3VubG9jaygmZGV2X3ByaXYtPnBlcmYubm9kZV9s aXN0X2xvY2spOwogCiAJaWYgKCFlbnRyeSkKLQkJcmV0dXJuIHRydWU7CisJCXJldHVybiBDU19C VUZfRU1QVFk7CiAJZWxzZSBpZiAoIWk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJlcXVlc3Qs IHRydWUpKQotCQlyZXR1cm4gdHJ1ZTsKKwkJcmV0dXJuIENTX0JVRl9SRVFfUEVORElORzsKIAll bHNlCi0JCXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIENTX0JVRl9IQVZFX0RBVEE7CiB9CiAKIC8q Ci0gKiBDaGVja3Mgd2hldGhlciB0aGUgc3RyZWFtIGhhcyBkYXRhIHJlYWR5IHRvIGZvcndhcmQg dG8gdXNlcnNwYWNlLgotICogRm9yIGNvbW1hbmQgc3RyZWFtIGJhc2VkIHN0cmVhbXMsIGNoZWNr IGlmIHRoZSBjb21tYW5kIHN0cmVhbSBidWZmZXIgaGFzCi0gKiBhdGxlYXN0IG9uZSBzYW1wbGUg cmVhZHksIGlmIG5vdCByZXR1cm4gZmFsc2UsIGlycmVzcGVjdGl2ZSBvZiBwZXJpb2RpYwotICog b2EgYnVmZmVyIGhhdmluZyB0aGUgZGF0YSBvciBub3QuCisgKiBDaGVja3Mgd2hldGhlciB0aGUg c3RyZWFtIGhhcyBkYXRhIHJlYWR5IHRvIGZvcndhcmQgdG8gdXNlcnNwYWNlLCBieQorICogcXVl cnlpbmcgZm9yIHBlcmlvZGljIG9hIGJ1ZmZlciBhbmQgY29tbWFuZCBzdHJlYW0gYnVmZmVyIHNh bXBsZXMuCiAgKi8KIAogc3RhdGljIGJvb2wgc3RyZWFtX2hhdmVfZGF0YV9fdW5sb2NrZWQoc3Ry dWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OworCWVudW0gY3NfYnVmX2RhdGFfc3RhdGUg Y3NfYnVmX3N0YXRlOworCXUzMiBudW1fc2FtcGxlcywgbGFzdF90cyA9IDA7CiAKLQkvKiBOb3Rl OiB0aGUgb2FfYnVmZmVyX2lzX2VtcHR5KCkgY29uZGl0aW9uIGlzIG9rIHRvIHJ1biB1bmxvY2tl ZCBhcyBpdAotCSAqIGp1c3QgcGVyZm9ybXMgbW1pbyByZWFkcyBvZiB0aGUgT0EgYnVmZmVyIGhl YWQgKyB0YWlsIHBvaW50ZXJzIGFuZAorCS8qIE5vdGU6IG9hX2J1ZmZlcl9udW1fc2FtcGxlcygp IGlzIG9rIHRvIHJ1biB1bmxvY2tlZCBhcyBpdCBqdXN0CisJICogcGVyZm9ybXMgbW1pbyByZWFk cyBvZiB0aGUgT0EgYnVmZmVyIGhlYWQgKyB0YWlsIHBvaW50ZXJzIGFuZAogCSAqIGl0J3MgYXNz dW1lZCB3ZSdyZSBoYW5kbGluZyBzb21lIG9wZXJhdGlvbiB0aGF0IGltcGxpZXMgdGhlIHN0cmVh bQogCSAqIGNhbid0IGJlIGRlc3Ryb3llZCB1bnRpbCBjb21wbGV0aW9uIChzdWNoIGFzIGEgcmVh ZCgpKSB0aGF0IGVuc3VyZXMKIAkgKiB0aGUgZGV2aWNlICsgT0EgYnVmZmVyIGNhbid0IGRpc2Fw cGVhcgogCSAqLworCWRldl9wcml2LT5wZXJmLm9hLm5fcGVuZGluZ19wZXJpb2RpY19zYW1wbGVz ID0gMDsKKwlkZXZfcHJpdi0+cGVyZi5vYS5wZW5kaW5nX3BlcmlvZGljX3RzID0gMDsKKwludW1f c2FtcGxlcyA9IGRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9idWZmZXJfbnVtX3NhbXBsZXMoZGV2 X3ByaXYsCisJCQkJCQkJCSZsYXN0X3RzKTsKIAlpZiAoc3RyZWFtLT5jc19tb2RlKQotCQlyZXR1 cm4gIWNvbW1hbmRfc3RyZWFtX2J1Zl9pc19lbXB0eShzdHJlYW0pOworCQljc19idWZfc3RhdGUg PSBjb21tYW5kX3N0cmVhbV9idWZfc3RhdGUoc3RyZWFtKTsKIAllbHNlCi0JCXJldHVybiAhZGV2 X3ByaXYtPnBlcmYub2Eub3BzLm9hX2J1ZmZlcl9pc19lbXB0eShkZXZfcHJpdik7CisJCWNzX2J1 Zl9zdGF0ZSA9IENTX0JVRl9FTVBUWTsKKworCS8qCisJICogTm90ZTogV2UgY2FuIHNhZmVseSBm b3J3YXJkIHRoZSBwZXJpb2RpYyBPQSBzYW1wbGVzIGluIHRoZSBjYXNlIHdlCisJICogaGF2ZSBu byBwZW5kaW5nIENTIHNhbXBsZXMsIGJ1dCB3ZSBjYW4ndCBkbyBzbyBpbiB0aGUgY2FzZSB3ZSBo YXZlCisJICogcGVuZGluZyBDUyBzYW1wbGVzLCBzaW5jZSB3ZSBkb24ndCBrbm93IHdoYXQgdGhl IG9yZGVyaW5nIGJldHdlZW4KKwkgKiBwZW5kaW5nIENTIHNhbXBsZXMgYW5kIHBlcmlvZGljIHNh bXBsZXMgd2lsbCBldmVudHVhbGx5IGJlLiBJZiB3ZQorCSAqIGhhdmUgbm8gcGVuZGluZyBDUyBz YW1wbGUsIGl0IHdvbid0IGJlIHBvc3NpYmxlIGZvciBmdXR1cmUgcGVuZGluZyBDUworCSAqIHNh bXBsZSB0byBoYXZlIHRpbWVzdGFtcHMgZWFybGllciB0aGFuIGN1cnJlbnQgcGVyaW9kaWMgdGlt ZXN0YW1wLgorCSAqLworCXN3aXRjaCAoY3NfYnVmX3N0YXRlKSB7CisJY2FzZSBDU19CVUZfRU1Q VFk6CisJCWRldl9wcml2LT5wZXJmLm9hLm5fcGVuZGluZ19wZXJpb2RpY19zYW1wbGVzID0gbnVt X3NhbXBsZXM7CisJCWRldl9wcml2LT5wZXJmLm9hLnBlbmRpbmdfcGVyaW9kaWNfdHMgPSBsYXN0 X3RzOworCQlyZXR1cm4gKG51bV9zYW1wbGVzICE9IDApOworCisJY2FzZSBDU19CVUZfSEFWRV9E QVRBOgorCQlyZXR1cm4gdHJ1ZTsKKworCWNhc2UgQ1NfQlVGX1JFUV9QRU5ESU5HOgorCQlkZWZh dWx0OgorCQlyZXR1cm4gZmFsc2U7CisJfQogfQogCi1zdGF0aWMgYm9vbCBpOTE1X29hX2Nhbl9y ZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCitzdGF0aWMgYm9vbCBpOTE1X29h X2Nhbl9yZWFkX3VubG9ja2VkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CiAK IAlyZXR1cm4gc3RyZWFtX2hhdmVfZGF0YV9fdW5sb2NrZWQoc3RyZWFtKTsKQEAgLTExMjQsNyAr MTIxMiw4IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9yZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFt ICpzdHJlYW0sCiAJaWYgKHN0cmVhbS0+Y3NfbW9kZSkKIAkJcmV0dXJuIG9hX3Jjc19hcHBlbmRf cmVwb3J0cyhzdHJlYW0sIHJlYWRfc3RhdGUpOwogCWVsc2UKLQkJcmV0dXJuIGRldl9wcml2LT5w ZXJmLm9hLm9wcy5yZWFkKHN0cmVhbSwgcmVhZF9zdGF0ZSwgVTMyX01BWCk7CisJCXJldHVybiBk ZXZfcHJpdi0+cGVyZi5vYS5vcHMucmVhZChzdHJlYW0sIHJlYWRfc3RhdGUsCisJCQkJCQlVMzJf TUFYLCBVMzJfTUFYKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTE2ODMsNyArMTc3Miw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbV9vcHMgaTkxNV9vYV9zdHJlYW1fb3Bz ID0gewogCS5kZXN0cm95ID0gaTkxNV9vYV9zdHJlYW1fZGVzdHJveSwKIAkuZW5hYmxlID0gaTkx NV9vYV9zdHJlYW1fZW5hYmxlLAogCS5kaXNhYmxlID0gaTkxNV9vYV9zdHJlYW1fZGlzYWJsZSwK LQkuY2FuX3JlYWQgPSBpOTE1X29hX2Nhbl9yZWFkLAorCS5jYW5fcmVhZF91bmxvY2tlZCA9IGk5 MTVfb2FfY2FuX3JlYWRfdW5sb2NrZWQsCiAJLndhaXRfdW5sb2NrZWQgPSBpOTE1X29hX3dhaXRf dW5sb2NrZWQsCiAJLnBvbGxfd2FpdCA9IGk5MTVfb2FfcG9sbF93YWl0LAogCS5yZWFkID0gaTkx NV9vYV9yZWFkLApAQCAtMjEzMiw3ICsyMjIxLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpOTE1 X3BlcmZfcG9sbF9sb2NrZWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAogCXN0 cmVhbS0+b3BzLT5wb2xsX3dhaXQoc3RyZWFtLCBmaWxlLCB3YWl0KTsKIAotCWlmIChzdHJlYW0t Pm9wcy0+Y2FuX3JlYWQoc3RyZWFtKSkKKwlpZiAoc3RyZWFtLT5vcHMtPmNhbl9yZWFkX3VubG9j a2VkKHN0cmVhbSkpCiAJCXN0cmVhbXMgfD0gUE9MTElOOwogCiAJcmV0dXJuIHN0cmVhbXM7CkBA IC0yNjA3LDggKzI2OTYsOCBAQCB2b2lkIGk5MTVfcGVyZl9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJCWRldl9wcml2LT5wZXJmLm9hLm9wcy51cGRhdGVfaHdfY3R4X2lkX2xvY2tlZCA9 CiAJCQlnZW43X3VwZGF0ZV9od19jdHhfaWRfbG9ja2VkOwogCQlkZXZfcHJpdi0+cGVyZi5vYS5v cHMucmVhZCA9IGdlbjdfb2FfcmVhZDsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2J1ZmZl cl9pc19lbXB0eSA9Ci0JCQlnZW43X29hX2J1ZmZlcl9pc19lbXB0eV9mb3BfdW5sb2NrZWQ7CisJ CWRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9idWZmZXJfbnVtX3NhbXBsZXMgPQorCQkJZ2VuN19v YV9idWZmZXJfbnVtX3NhbXBsZXNfZm9wX3VubG9ja2VkOwogCiAJCWRldl9wcml2LT5wZXJmLm9h LnRpbWVzdGFtcF9mcmVxdWVuY3kgPSAxMjUwMDAwMDsKIApAQCAtMjYyNCw4ICsyNzEzLDggQEAg dm9pZCBpOTE1X3BlcmZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlkZXZfcHJpdi0+ cGVyZi5vYS5vcHMub2FfZW5hYmxlID0gZ2VuOF9vYV9lbmFibGU7CiAJCWRldl9wcml2LT5wZXJm Lm9hLm9wcy5vYV9kaXNhYmxlID0gZ2VuOF9vYV9kaXNhYmxlOwogCQlkZXZfcHJpdi0+cGVyZi5v YS5vcHMucmVhZCA9IGdlbjhfb2FfcmVhZDsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2J1 ZmZlcl9pc19lbXB0eSA9Ci0JCQlnZW44X29hX2J1ZmZlcl9pc19lbXB0eV9mb3BfdW5sb2NrZWQ7 CisJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9idWZmZXJfbnVtX3NhbXBsZXMgPQorCQkJCWdl bjhfb2FfYnVmZmVyX251bV9zYW1wbGVzX2ZvcF91bmxvY2tlZDsKIAogCQlkZXZfcHJpdi0+cGVy Zi5vYS5vYV9mb3JtYXRzID0gZ2VuOF9wbHVzX29hX2Zvcm1hdHM7CiAKLS0gCjEuOS4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK