From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH 15/15] drm/i915/selftests: modify the gtt tests to also exercise huge pages Date: Mon, 6 Mar 2017 23:54:14 +0000 Message-ID: <20170306235414.23407-16-matthew.auld@intel.com> References: <20170306235414.23407-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id EA0756E599 for ; Mon, 6 Mar 2017 23:54:32 +0000 (UTC) In-Reply-To: <20170306235414.23407-1-matthew.auld@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 List-Id: intel-gfx@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYyB8IDEyMyArKysr KysrKysrKysrKysrKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21v Y2tfZ3R0LmMgICAgIHwgICAzICsKIDIgZmlsZXMgY2hhbmdlZCwgODkgaW5zZXJ0aW9ucygrKSwg MzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVf Z2VtX2d0dC5jCmluZGV4IDliMmE3MjI4YTc4Zi4uNDYyNWY5M2EzODkwIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jCkBAIC05MiwxMiArOTIsMTQg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBmYWtlX29wcyA9 IHsKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCi1mYWtlX2RtYV9v YmplY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHU2NCBzaXplKQorZmFrZV9kbWFf b2JqZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1NjQgc2l6ZSwgdW5zaWduZWQg bG9uZyBwYWdlX3NpemUpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAog CUdFTV9CVUdfT04oIXNpemUpOwotCUdFTV9CVUdfT04oIUlTX0FMSUdORUQoc2l6ZSwgSTkxNV9H VFRfUEFHRV9TSVpFKSk7CisJR0VNX0JVR19PTihwYWdlX3NpemUgJiB+STkxNV9HVFRfUEFHRV9T SVpFX01BU0spOworCisJc2l6ZSA9IHJvdW5kdXAoc2l6ZSwgcGFnZV9zaXplKTsKIAogCWlmIChv dmVyZmxvd3NfdHlwZShzaXplLCBvYmotPmJhc2Uuc2l6ZSkpCiAJCXJldHVybiBFUlJfUFRSKC1F MkJJRyk7CkBAIC0xMDcsOCArMTA5LDEzIEBAIGZha2VfZG1hX29iamVjdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSwgdTY0IHNpemUpCiAJCWdvdG8gZXJyOwogCiAJZHJtX2dlbV9wcml2 YXRlX29iamVjdF9pbml0KCZpOTE1LT5kcm0sICZvYmotPmJhc2UsIHNpemUpOworCiAJaTkxNV9n ZW1fb2JqZWN0X2luaXQob2JqLCAmZmFrZV9vcHMpOwogCisJb2JqLT5wYWdlX3NpemUgPSBwYWdl X3NpemU7CisKKwlHRU1fQlVHX09OKCFJU19BTElHTkVEKG9iai0+YmFzZS5zaXplLCBvYmotPnBh Z2Vfc2l6ZSkpOworCiAJb2JqLT5iYXNlLndyaXRlX2RvbWFpbiA9IEk5MTVfR0VNX0RPTUFJTl9D UFU7CiAJb2JqLT5iYXNlLnJlYWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9DUFU7CiAJb2Jq LT5jYWNoZV9sZXZlbCA9IEk5MTVfQ0FDSEVfTk9ORTsKQEAgLTE5NCwxMyArMjAxLDE0IEBAIHN0 YXRpYyBpbnQgaWd0X3BwZ3R0X2FsbG9jKHZvaWQgKmFyZykKIHN0YXRpYyBpbnQgbG93bGV2ZWxf aG9sZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCSBzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSwKIAkJCSB1NjQgaG9sZV9zdGFydCwgdTY0IGhvbGVfZW5kLAorCQkJIHVu c2lnbmVkIGxvbmcgcGFnZV9zaXplLAogCQkJIHVuc2lnbmVkIGxvbmcgZW5kX3RpbWUpCiB7CiAJ STkxNV9STkRfU1RBVEUoc2VlZF9wcm5nKTsKIAl1bnNpZ25lZCBpbnQgc2l6ZTsKIAogCS8qIEtl ZXAgY3JlYXRpbmcgbGFyZ2VyIG9iamVjdHMgdW50aWwgb25lIGNhbm5vdCBmaXQgaW50byB0aGUg aG9sZSAqLwotCWZvciAoc2l6ZSA9IDEyOyAoaG9sZV9lbmQgLSBob2xlX3N0YXJ0KSA+PiBzaXpl OyBzaXplKyspIHsKKwlmb3IgKHNpemUgPSBpbG9nMihwYWdlX3NpemUpOyAoaG9sZV9lbmQgLSBo b2xlX3N0YXJ0KSA+PiBzaXplOyBzaXplKyspIHsKIAkJSTkxNV9STkRfU1VCU1RBVEUocHJuZywg c2VlZF9wcm5nKTsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAkJdW5zaWdu ZWQgaW50ICpvcmRlciwgY291bnQsIG47CkBAIC0yMjYsNyArMjM0LDcgQEAgc3RhdGljIGludCBs b3dsZXZlbF9ob2xlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkgKiBtZW1vcnku IFdlIGV4cGVjdCB0byBoaXQgLUVOT01FTS4KIAkJICovCiAKLQkJb2JqID0gZmFrZV9kbWFfb2Jq ZWN0KGk5MTUsIEJJVF9VTEwoc2l6ZSkpOworCQlvYmogPSBmYWtlX2RtYV9vYmplY3QoaTkxNSwg QklUX1VMTChzaXplKSwgcGFnZV9zaXplKTsKIAkJaWYgKElTX0VSUihvYmopKSB7CiAJCQlrZnJl ZShvcmRlcik7CiAJCQlicmVhazsKQEAgLTMwMywxOCArMzExLDI1IEBAIHN0YXRpYyB2b2lkIGNs b3NlX29iamVjdF9saXN0KHN0cnVjdCBsaXN0X2hlYWQgKm9iamVjdHMsCiBzdGF0aWMgaW50IGZp bGxfaG9sZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJICAgICBzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJICAgICB1NjQgaG9sZV9zdGFydCwgdTY0IGhvbGVfZW5k LAorCQkgICAgIHVuc2lnbmVkIGxvbmcgcGFnZV9zaXplLAogCQkgICAgIHVuc2lnbmVkIGxvbmcg ZW5kX3RpbWUpCiB7CiAJY29uc3QgdTY0IGhvbGVfc2l6ZSA9IGhvbGVfZW5kIC0gaG9sZV9zdGFy dDsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwotCWNvbnN0IHVuc2lnbmVkIGxv bmcgbWF4X3BhZ2VzID0KLQkJbWluX3QodTY0LCBVTE9OR19NQVggLSAxLCBob2xlX3NpemUvMiA+ PiBQQUdFX1NISUZUKTsKLQljb25zdCB1bnNpZ25lZCBsb25nIG1heF9zdGVwID0gbWF4KGludF9z cXJ0KG1heF9wYWdlcyksIDJVTCk7Ci0JdW5zaWduZWQgbG9uZyBucGFnZXMsIHByaW1lLCBmbGFn czsKKwljb25zdCB1bnNpZ25lZCBwYWdlX3NoaWZ0ID0gaWxvZzIocGFnZV9zaXplKTsKKwl1bnNp Z25lZCBsb25nIG1heF9wYWdlcywgbWF4X3N0ZXAsIG5wYWdlcywgcHJpbWUsIGZsYWdzOwogCXN0 cnVjdCBpOTE1X3ZtYSAqdm1hOwogCUxJU1RfSEVBRChvYmplY3RzKTsKIAlpbnQgZXJyOwogCisJ aG9sZV9zdGFydCA9IHJvdW5kdXAoaG9sZV9zdGFydCwgcGFnZV9zaXplKTsKKwlob2xlX2VuZCA9 IHJvdW5kZG93bihob2xlX2VuZCwgcGFnZV9zaXplKTsKKworCUdFTV9CVUdfT04oaG9sZV9zdGFy dCA+PSBob2xlX2VuZCk7CisKKwltYXhfcGFnZXMgPSBtaW5fdCh1NjQsIFVMT05HX01BWCAtIDEs IGhvbGVfc2l6ZS8yID4+IHBhZ2Vfc2hpZnQpOworCW1heF9zdGVwID0gbWF4KGludF9zcXJ0KG1h eF9wYWdlcyksIDJVTCk7CisKIAkvKiBUcnkgYmluZGluZyBtYW55IFZNQSB3b3JraW5nIGlud2Fy ZHMgZnJvbSBlaXRoZXIgZWRnZSAqLwogCiAJZmxhZ3MgPSBQSU5fT0ZGU0VUX0ZJWEVEIHwgUElO X1VTRVI7CkBAIC0zMjMsNyArMzM4LDcgQEAgc3RhdGljIGludCBmaWxsX2hvbGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAKIAlmb3JfZWFjaF9wcmltZV9udW1iZXJfZnJvbShwcmlt ZSwgMiwgbWF4X3N0ZXApIHsKIAkJZm9yIChucGFnZXMgPSAxOyBucGFnZXMgPD0gbWF4X3BhZ2Vz OyBucGFnZXMgKj0gcHJpbWUpIHsKLQkJCWNvbnN0IHU2NCBmdWxsX3NpemUgPSBucGFnZXMgPDwg UEFHRV9TSElGVDsKKwkJCWNvbnN0IHU2NCBmdWxsX3NpemUgPSBucGFnZXMgPDwgcGFnZV9zaGlm dDsKIAkJCWNvbnN0IHN0cnVjdCB7CiAJCQkJY29uc3QgY2hhciAqbmFtZTsKIAkJCQl1NjQgb2Zm c2V0OwpAQCAtMzM0LDcgKzM0OSw3IEBAIHN0YXRpYyBpbnQgZmlsbF9ob2xlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1LAogCQkJCXsgfQogCQkJfSwgKnA7CiAKLQkJCW9iaiA9IGZha2Vf ZG1hX29iamVjdChpOTE1LCBmdWxsX3NpemUpOworCQkJb2JqID0gZmFrZV9kbWFfb2JqZWN0KGk5 MTUsIGZ1bGxfc2l6ZSwgcGFnZV9zaXplKTsKIAkJCWlmIChJU19FUlIob2JqKSkKIAkJCQlicmVh azsKIApAQCAtMzU5LDcgKzM3NCw3IEBAIHN0YXRpYyBpbnQgZmlsbF9ob2xlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1LAogCQkJCQkJb2Zmc2V0IC09IG9iai0+YmFzZS5zaXplOwogCQkJ CQl9CiAKLQkJCQkJZXJyID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgb2Zmc2V0IHwgZmxhZ3Mp OworCQkJCQllcnIgPSBpOTE1X3ZtYV9waW4odm1hLCAwLCBwYWdlX3NpemUsIG9mZnNldCB8IGZs YWdzKTsKIAkJCQkJaWYgKGVycikgewogCQkJCQkJcHJfZXJyKCIlcyglcykgcGluIChmb3J3YXJk KSBmYWlsZWQgd2l0aCBlcnI9JWQgb24gc2l6ZT0lbHUgcGFnZXMgKHByaW1lPSVsdSksIG9mZnNl dD0lbGx4XG4iLAogCQkJCQkJICAgICAgIF9fZnVuY19fLCBwLT5uYW1lLCBlcnIsIG5wYWdlcywg cHJpbWUsIG9mZnNldCk7CkBAIC0zNjcsNyArMzgyLDcgQEAgc3RhdGljIGludCBmaWxsX2hvbGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkJCX0KIAogCQkJCQlpZiAoIWRybV9t bV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSB8fAotCQkJCQkgICAgaTkxNV92bWFfbWlzcGxh Y2VkKHZtYSwgMCwgMCwgb2Zmc2V0IHwgZmxhZ3MpKSB7CisJCQkJCSAgICBpOTE1X3ZtYV9taXNw bGFjZWQodm1hLCAwLCBwYWdlX3NpemUsIG9mZnNldCB8IGZsYWdzKSkgewogCQkJCQkJcHJfZXJy KCIlcyglcykgKGZvcndhcmQpIGluc2VydCBmYWlsZWQ6IHZtYS5ub2RlPSVsbHggKyAlbGx4IFth bGxvY2F0ZWQ/ICVkXSwgZXhwZWN0ZWQgb2Zmc2V0ICVsbHhcbiIsCiAJCQkJCQkgICAgICAgX19m dW5jX18sIHAtPm5hbWUsIHZtYS0+bm9kZS5zdGFydCwgdm1hLT5ub2RlLnNpemUsIGRybV9tbV9u b2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSwKIAkJCQkJCSAgICAgICBvZmZzZXQpOwpAQCAtMzk3 LDcgKzQxMiw3IEBAIHN0YXRpYyBpbnQgZmlsbF9ob2xlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LAogCQkJCQl9CiAKIAkJCQkJaWYgKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+ bm9kZSkgfHwKLQkJCQkJICAgIGk5MTVfdm1hX21pc3BsYWNlZCh2bWEsIDAsIDAsIG9mZnNldCB8 IGZsYWdzKSkgeworCQkJCQkgICAgaTkxNV92bWFfbWlzcGxhY2VkKHZtYSwgMCwgcGFnZV9zaXpl LCBvZmZzZXQgfCBmbGFncykpIHsKIAkJCQkJCXByX2VycigiJXMoJXMpIChmb3J3YXJkKSBtb3Zl ZCB2bWEubm9kZT0lbGx4ICsgJWxseCwgZXhwZWN0ZWQgb2Zmc2V0ICVsbHhcbiIsCiAJCQkJCQkg ICAgICAgX19mdW5jX18sIHAtPm5hbWUsIHZtYS0+bm9kZS5zdGFydCwgdm1hLT5ub2RlLnNpemUs CiAJCQkJCQkgICAgICAgb2Zmc2V0KTsKQEAgLTQzMiw3ICs0NDcsNyBAQCBzdGF0aWMgaW50IGZp bGxfaG9sZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCQkJCW9mZnNldCAtPSBv YmotPmJhc2Uuc2l6ZTsKIAkJCQkJfQogCi0JCQkJCWVyciA9IGk5MTVfdm1hX3Bpbih2bWEsIDAs IDAsIG9mZnNldCB8IGZsYWdzKTsKKwkJCQkJZXJyID0gaTkxNV92bWFfcGluKHZtYSwgMCwgcGFn ZV9zaXplLCBvZmZzZXQgfCBmbGFncyk7CiAJCQkJCWlmIChlcnIpIHsKIAkJCQkJCXByX2Vycigi JXMoJXMpIHBpbiAoYmFja3dhcmQpIGZhaWxlZCB3aXRoIGVycj0lZCBvbiBzaXplPSVsdSBwYWdl cyAocHJpbWU9JWx1KSwgb2Zmc2V0PSVsbHhcbiIsCiAJCQkJCQkgICAgICAgX19mdW5jX18sIHAt Pm5hbWUsIGVyciwgbnBhZ2VzLCBwcmltZSwgb2Zmc2V0KTsKQEAgLTQ0MCw3ICs0NTUsNyBAQCBz dGF0aWMgaW50IGZpbGxfaG9sZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCQkJ fQogCiAJCQkJCWlmICghZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpIHx8Ci0JCQkJ CSAgICBpOTE1X3ZtYV9taXNwbGFjZWQodm1hLCAwLCAwLCBvZmZzZXQgfCBmbGFncykpIHsKKwkJ CQkJICAgIGk5MTVfdm1hX21pc3BsYWNlZCh2bWEsIDAsIHBhZ2Vfc2l6ZSwgb2Zmc2V0IHwgZmxh Z3MpKSB7CiAJCQkJCQlwcl9lcnIoIiVzKCVzKSAoYmFja3dhcmQpIGluc2VydCBmYWlsZWQ6IHZt YS5ub2RlPSVsbHggKyAlbGx4IFthbGxvY2F0ZWQ/ICVkXSwgZXhwZWN0ZWQgb2Zmc2V0ICVsbHhc biIsCiAJCQkJCQkgICAgICAgX19mdW5jX18sIHAtPm5hbWUsIHZtYS0+bm9kZS5zdGFydCwgdm1h LT5ub2RlLnNpemUsIGRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSwKIAkJCQkJCSAg ICAgICBvZmZzZXQpOwpAQCAtNDcwLDcgKzQ4NSw3IEBAIHN0YXRpYyBpbnQgZmlsbF9ob2xlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJCQl9CiAKIAkJCQkJaWYgKCFkcm1fbW1f bm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkgfHwKLQkJCQkJICAgIGk5MTVfdm1hX21pc3BsYWNl ZCh2bWEsIDAsIDAsIG9mZnNldCB8IGZsYWdzKSkgeworCQkJCQkgICAgaTkxNV92bWFfbWlzcGxh Y2VkKHZtYSwgMCwgcGFnZV9zaXplLCBvZmZzZXQgfCBmbGFncykpIHsKIAkJCQkJCXByX2Vycigi JXMoJXMpIChiYWNrd2FyZCkgbW92ZWQgdm1hLm5vZGU9JWxseCArICVsbHggW2FsbG9jYXRlZD8g JWRdLCBleHBlY3RlZCBvZmZzZXQgJWxseFxuIiwKIAkJCQkJCSAgICAgICBfX2Z1bmNfXywgcC0+ bmFtZSwgdm1hLT5ub2RlLnN0YXJ0LCB2bWEtPm5vZGUuc2l6ZSwgZHJtX21tX25vZGVfYWxsb2Nh dGVkKCZ2bWEtPm5vZGUpLAogCQkJCQkJICAgICAgIG9mZnNldCk7CkBAIC01MTQsMTEgKzUyOSwx MyBAQCBzdGF0aWMgaW50IGZpbGxfaG9sZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK IHN0YXRpYyBpbnQgd2Fsa19ob2xlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkg ICAgIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkgICAgIHU2NCBob2xlX3N0YXJ0 LCB1NjQgaG9sZV9lbmQsCisJCSAgICAgdW5zaWduZWQgbG9uZyBwYWdlX3NpemUsCiAJCSAgICAg dW5zaWduZWQgbG9uZyBlbmRfdGltZSkKIHsKIAljb25zdCB1NjQgaG9sZV9zaXplID0gaG9sZV9l bmQgLSBob2xlX3N0YXJ0OworCWNvbnN0IHVuc2lnbmVkIHBhZ2Vfc2hpZnQgPSBpbG9nMihwYWdl X3NpemUpOwogCWNvbnN0IHVuc2lnbmVkIGxvbmcgbWF4X3BhZ2VzID0KLQkJbWluX3QodTY0LCBV TE9OR19NQVggLSAxLCBob2xlX3NpemUgPj4gUEFHRV9TSElGVCk7CisJCW1pbl90KHU2NCwgVUxP TkdfTUFYIC0gMSwgaG9sZV9zaXplID4+IHBhZ2Vfc2hpZnQpOwogCXVuc2lnbmVkIGxvbmcgZmxh Z3M7CiAJdTY0IHNpemU7CiAKQEAgLTUzNCw3ICs1NTEsNyBAQCBzdGF0aWMgaW50IHdhbGtfaG9s ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJdTY0IGFkZHI7CiAJCWludCBlcnIg PSAwOwogCi0JCW9iaiA9IGZha2VfZG1hX29iamVjdChpOTE1LCBzaXplIDw8IFBBR0VfU0hJRlQp OworCQlvYmogPSBmYWtlX2RtYV9vYmplY3QoaTkxNSwgc2l6ZSA8PCBwYWdlX3NoaWZ0LCBwYWdl X3NpemUpOwogCQlpZiAoSVNfRVJSKG9iaikpCiAJCQlicmVhazsKIApAQCAtNTQ3LDcgKzU2NCw3 IEBAIHN0YXRpYyBpbnQgd2Fsa19ob2xlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAog CQlmb3IgKGFkZHIgPSBob2xlX3N0YXJ0OwogCQkgICAgIGFkZHIgKyBvYmotPmJhc2Uuc2l6ZSA8 IGhvbGVfZW5kOwogCQkgICAgIGFkZHIgKz0gb2JqLT5iYXNlLnNpemUpIHsKLQkJCWVyciA9IGk5 MTVfdm1hX3Bpbih2bWEsIDAsIDAsIGFkZHIgfCBmbGFncyk7CisJCQllcnIgPSBpOTE1X3ZtYV9w aW4odm1hLCAwLCBwYWdlX3NpemUsIGFkZHIgfCBmbGFncyk7CiAJCQlpZiAoZXJyKSB7CiAJCQkJ cHJfZXJyKCIlcyBiaW5kIGZhaWxlZCBhdCAlbGx4ICsgJWxseCBbaG9sZSAlbGx4LSAlbGx4XSB3 aXRoIGVycj0lZFxuIiwKIAkJCQkgICAgICAgX19mdW5jX18sIGFkZHIsIHZtYS0+c2l6ZSwKQEAg LTU1Nyw3ICs1NzQsNyBAQCBzdGF0aWMgaW50IHdhbGtfaG9sZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwKIAkJCWk5MTVfdm1hX3VucGluKHZtYSk7CiAKIAkJCWlmICghZHJtX21tX25v ZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpIHx8Ci0JCQkgICAgaTkxNV92bWFfbWlzcGxhY2VkKHZt YSwgMCwgMCwgYWRkciB8IGZsYWdzKSkgeworCQkJICAgIGk5MTVfdm1hX21pc3BsYWNlZCh2bWEs IDAsIHBhZ2Vfc2l6ZSwgYWRkciB8IGZsYWdzKSkgewogCQkJCXByX2VycigiJXMgaW5jb3JyZWN0 IGF0ICVsbHggKyAlbGx4XG4iLAogCQkJCSAgICAgICBfX2Z1bmNfXywgYWRkciwgdm1hLT5zaXpl KTsKIAkJCQllcnIgPSAtRUlOVkFMOwpAQCAtNTk1LDYgKzYxMiw3IEBAIHN0YXRpYyBpbnQgd2Fs a19ob2xlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogc3RhdGljIGludCBwb3RfaG9s ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJICAgIHN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtLAogCQkgICAgdTY0IGhvbGVfc3RhcnQsIHU2NCBob2xlX2VuZCwKKwkJICAg IHVuc2lnbmVkIGxvbmcgcGFnZV9zaXplLAogCQkgICAgdW5zaWduZWQgbG9uZyBlbmRfdGltZSkK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwpAQCAtNjA3LDcgKzYyNSw3IEBA IHN0YXRpYyBpbnQgcG90X2hvbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJaWYg KGk5MTVfaXNfZ2d0dCh2bSkpCiAJCWZsYWdzIHw9IFBJTl9HTE9CQUw7CiAKLQlvYmogPSBpOTE1 X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGk5MTUsIDIgKiBJOTE1X0dUVF9QQUdFX1NJWkUp OworCW9iaiA9IGZha2VfZG1hX29iamVjdChpOTE1LCAyICogcGFnZV9zaXplLCBwYWdlX3NpemUp OwogCWlmIChJU19FUlIob2JqKSkKIAkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIApAQCAtNjE5LDE1 ICs2MzcsMTUgQEAgc3RhdGljIGludCBwb3RfaG9sZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKIAogCS8qIEluc2VydCBhIHBhaXIgb2YgcGFnZXMgYWNyb3NzIGV2ZXJ5IHBvdCBib3Vu ZGFyeSB3aXRoaW4gdGhlIGhvbGUgKi8KIAlmb3IgKHBvdCA9IGZsczY0KGhvbGVfZW5kIC0gMSkg LSAxOwotCSAgICAgcG90ID4gaWxvZzIoMiAqIEk5MTVfR1RUX1BBR0VfU0laRSk7CisJICAgICBw b3QgPiBpbG9nMigyICogcGFnZV9zaXplKTsKIAkgICAgIHBvdC0tKSB7CiAJCXU2NCBzdGVwID0g QklUX1VMTChwb3QpOwogCQl1NjQgYWRkcjsKIAotCQlmb3IgKGFkZHIgPSByb3VuZF91cChob2xl X3N0YXJ0ICsgSTkxNV9HVFRfUEFHRV9TSVpFLCBzdGVwKSAtIEk5MTVfR1RUX1BBR0VfU0laRTsK LQkJICAgICBhZGRyIDw9IHJvdW5kX2Rvd24oaG9sZV9lbmQgLSAyKkk5MTVfR1RUX1BBR0VfU0la RSwgc3RlcCkgLSBJOTE1X0dUVF9QQUdFX1NJWkU7CisJCWZvciAoYWRkciA9IHJvdW5kX3VwKGhv bGVfc3RhcnQgKyBwYWdlX3NpemUsIHN0ZXApIC0gcGFnZV9zaXplOworCQkgICAgIGFkZHIgPD0g cm91bmRfZG93bihob2xlX2VuZCAtIDIqcGFnZV9zaXplLCBzdGVwKSAtIHBhZ2Vfc2l6ZTsKIAkJ ICAgICBhZGRyICs9IHN0ZXApIHsKLQkJCWVyciA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIDAsIGFk ZHIgfCBmbGFncyk7CisJCQllcnIgPSBpOTE1X3ZtYV9waW4odm1hLCAwLCBwYWdlX3NpemUsIGFk ZHIgfCBmbGFncyk7CiAJCQlpZiAoZXJyKSB7CiAJCQkJcHJfZXJyKCIlcyBmYWlsZWQgdG8gcGlu IG9iamVjdCBhdCAlbGx4IGluIGhvbGUgWyVsbHggLSAlbGx4XSwgd2l0aCBlcnI9JWRcbiIsCiAJ CQkJICAgICAgIF9fZnVuY19fLApAQCAtNjcxLDYgKzY4OSw3IEBAIHN0YXRpYyBpbnQgcG90X2hv bGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiBzdGF0aWMgaW50IGRydW5rX2hvbGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCSAgICAgIHN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtLAogCQkgICAgICB1NjQgaG9sZV9zdGFydCwgdTY0IGhvbGVfZW5kLAorCQkg ICAgICB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZSwKIAkJICAgICAgdW5zaWduZWQgbG9uZyBlbmRf dGltZSkKIHsKIAlJOTE1X1JORF9TVEFURShwcm5nKTsKQEAgLTY4Miw3ICs3MDEsNyBAQCBzdGF0 aWMgaW50IGRydW5rX2hvbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCWZsYWdz IHw9IFBJTl9HTE9CQUw7CiAKIAkvKiBLZWVwIGNyZWF0aW5nIGxhcmdlciBvYmplY3RzIHVudGls IG9uZSBjYW5ub3QgZml0IGludG8gdGhlIGhvbGUgKi8KLQlmb3IgKHNpemUgPSAxMjsgKGhvbGVf ZW5kIC0gaG9sZV9zdGFydCkgPj4gc2l6ZTsgc2l6ZSsrKSB7CisJZm9yIChzaXplID0gaWxvZzIo cGFnZV9zaXplKTsgKGhvbGVfZW5kIC0gaG9sZV9zdGFydCkgPj4gc2l6ZTsgc2l6ZSsrKSB7CiAJ CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJCXVuc2lnbmVkIGludCAqb3JkZXIs IGNvdW50LCBuOwogCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKQEAgLTcwNiw3ICs3MjUsNyBAQCBz dGF0aWMgaW50IGRydW5rX2hvbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCSAq IG1lbW9yeS4gV2UgZXhwZWN0IHRvIGhpdCAtRU5PTUVNLgogCQkgKi8KIAotCQlvYmogPSBmYWtl X2RtYV9vYmplY3QoaTkxNSwgQklUX1VMTChzaXplKSk7CisJCW9iaiA9IGZha2VfZG1hX29iamVj dChpOTE1LCBCSVRfVUxMKHNpemUpLCBwYWdlX3NpemUpOwogCQlpZiAoSVNfRVJSKG9iaikpIHsK IAkJCWtmcmVlKG9yZGVyKTsKIAkJCWJyZWFrOwpAQCAtNzIzLDYgKzc0Miw4IEBAIHN0YXRpYyBp bnQgZHJ1bmtfaG9sZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJZm9yIChuID0g MDsgbiA8IGNvdW50OyBuKyspIHsKIAkJCXU2NCBhZGRyID0gaG9sZV9zdGFydCArIG9yZGVyW25d ICogQklUX1VMTChzaXplKTsKIAorCQkJR0VNX0JVR19PTighSVNfQUxJR05FRChhZGRyLCBwYWdl X3NpemUpKTsKKwogCQkJZXJyID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgYWRkciB8IGZsYWdz KTsKIAkJCWlmIChlcnIpIHsKIAkJCQlwcl9lcnIoIiVzIGZhaWxlZCB0byBwaW4gb2JqZWN0IGF0 ICVsbHggKyAlbGx4IGluIGhvbGUgWyVsbHggLSAlbGx4XSwgd2l0aCBlcnI9JWRcbiIsCkBAIC03 MzQsNyArNzU1LDcgQEAgc3RhdGljIGludCBkcnVua19ob2xlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1LAogCQkJfQogCiAJCQlpZiAoIWRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5u b2RlKSB8fAotCQkJICAgIGk5MTVfdm1hX21pc3BsYWNlZCh2bWEsIDAsIDAsIGFkZHIgfCBmbGFn cykpIHsKKwkJCSAgICBpOTE1X3ZtYV9taXNwbGFjZWQodm1hLCAwLCBwYWdlX3NpemUsIGFkZHIg fCBmbGFncykpIHsKIAkJCQlwcl9lcnIoIiVzIGluY29ycmVjdCBhdCAlbGx4ICsgJWxseFxuIiwK IAkJCQkgICAgICAgX19mdW5jX18sIGFkZHIsIEJJVF9VTEwoc2l6ZSkpOwogCQkJCWk5MTVfdm1h X3VucGluKHZtYSk7CkBAIC03NzEsMTEgKzc5MiwxMiBAQCBzdGF0aWMgaW50IGRydW5rX2hvbGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiBzdGF0aWMgaW50IF9fc2hyaW5rX2hvbGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkgc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0sCiAJCQkgdTY0IGhvbGVfc3RhcnQsIHU2NCBob2xlX2VuZCwKKwkJCSB1bnNpZ25l ZCBsb25nIHBhZ2Vfc2l6ZSwKIAkJCSB1bnNpZ25lZCBsb25nIGVuZF90aW1lKQogewogCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJdW5zaWduZWQgbG9uZyBmbGFncyA9IFBJTl9P RkZTRVRfRklYRUQgfCBQSU5fVVNFUjsKLQl1bnNpZ25lZCBpbnQgb3JkZXIgPSAxMjsKKwl1bnNp Z25lZCBpbnQgb3JkZXIgPSBpbG9nMihwYWdlX3NpemUpOwogCUxJU1RfSEVBRChvYmplY3RzKTsK IAlpbnQgZXJyID0gMDsKIAl1NjQgYWRkcjsKQEAgLTc4Niw3ICs4MDgsNyBAQCBzdGF0aWMgaW50 IF9fc2hyaW5rX2hvbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCXU2NCBzaXpl ID0gQklUX1VMTChvcmRlcisrKTsKIAogCQlzaXplID0gbWluKHNpemUsIGhvbGVfZW5kIC0gYWRk cik7Ci0JCW9iaiA9IGZha2VfZG1hX29iamVjdChpOTE1LCBzaXplKTsKKwkJb2JqID0gZmFrZV9k bWFfb2JqZWN0KGk5MTUsIHNpemUsIHBhZ2Vfc2l6ZSk7CiAJCWlmIChJU19FUlIob2JqKSkgewog CQkJZXJyID0gUFRSX0VSUihvYmopOwogCQkJYnJlYWs7CkBAIC04MDIsNyArODI0LDcgQEAgc3Rh dGljIGludCBfX3Nocmlua19ob2xlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCiAJ CUdFTV9CVUdfT04odm1hLT5zaXplICE9IHNpemUpOwogCi0JCWVyciA9IGk5MTVfdm1hX3Bpbih2 bWEsIDAsIDAsIGFkZHIgfCBmbGFncyk7CisJCWVyciA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIHBh Z2Vfc2l6ZSwgYWRkciB8IGZsYWdzKTsKIAkJaWYgKGVycikgewogCQkJcHJfZXJyKCIlcyBmYWls ZWQgdG8gcGluIG9iamVjdCBhdCAlbGx4ICsgJWxseCBpbiBob2xlIFslbGx4IC0gJWxseF0sIHdp dGggZXJyPSVkXG4iLAogCQkJICAgICAgIF9fZnVuY19fLCBhZGRyLCBzaXplLCBob2xlX3N0YXJ0 LCBob2xlX2VuZCwgZXJyKTsKQEAgLTgxMCw3ICs4MzIsNyBAQCBzdGF0aWMgaW50IF9fc2hyaW5r X2hvbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCX0KIAogCQlpZiAoIWRybV9t bV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSB8fAotCQkgICAgaTkxNV92bWFfbWlzcGxhY2Vk KHZtYSwgMCwgMCwgYWRkciB8IGZsYWdzKSkgeworCQkgICAgaTkxNV92bWFfbWlzcGxhY2VkKHZt YSwgMCwgcGFnZV9zaXplLCBhZGRyIHwgZmxhZ3MpKSB7CiAJCQlwcl9lcnIoIiVzIGluY29ycmVj dCBhdCAlbGx4ICsgJWxseFxuIiwKIAkJCSAgICAgICBfX2Z1bmNfXywgYWRkciwgc2l6ZSk7CiAJ CQlpOTE1X3ZtYV91bnBpbih2bWEpOwpAQCAtODM3LDYgKzg1OSw3IEBAIHN0YXRpYyBpbnQgX19z aHJpbmtfaG9sZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIHN0YXRpYyBpbnQgc2hy aW5rX2hvbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCSAgICAgICBzdHJ1Y3Qg aTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJICAgICAgIHU2NCBob2xlX3N0YXJ0LCB1NjQgaG9s ZV9lbmQsCisJCSAgICAgICB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZSwKIAkJICAgICAgIHVuc2ln bmVkIGxvbmcgZW5kX3RpbWUpCiB7CiAJdW5zaWduZWQgbG9uZyBwcmltZTsKQEAgLTg0Nyw3ICs4 NzAsOCBAQCBzdGF0aWMgaW50IHNocmlua19ob2xlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1LAogCiAJZm9yX2VhY2hfcHJpbWVfbnVtYmVyX2Zyb20ocHJpbWUsIDAsIFVMT05HX01BWCAt IDEpIHsKIAkJdm0tPmZhdWx0X2F0dHIuaW50ZXJ2YWwgPSBwcmltZTsKLQkJZXJyID0gX19zaHJp bmtfaG9sZShpOTE1LCB2bSwgaG9sZV9zdGFydCwgaG9sZV9lbmQsIGVuZF90aW1lKTsKKwkJZXJy ID0gX19zaHJpbmtfaG9sZShpOTE1LCB2bSwgaG9sZV9zdGFydCwgaG9sZV9lbmQsIHBhZ2Vfc2l6 ZSwKKwkJCQkgICAgZW5kX3RpbWUpOwogCQlpZiAoZXJyKQogCQkJYnJlYWs7CiAJfQpAQCAtODYx LDEyICs4ODUsMjAgQEAgc3RhdGljIGludCBleGVyY2lzZV9wcGd0dChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgIGludCAoKmZ1bmMpKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1LAogCQkJCSAgICAgIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJ CSAgICAgIHU2NCBob2xlX3N0YXJ0LCB1NjQgaG9sZV9lbmQsCisJCQkJICAgICAgdW5zaWduZWQg bG9uZyBwYWdlX3NpemUsCiAJCQkJICAgICAgdW5zaWduZWQgbG9uZyBlbmRfdGltZSkpCiB7CiAJ c3RydWN0IGRybV9maWxlICpmaWxlOwogCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dDsKIAlJ R1RfVElNRU9VVChlbmRfdGltZSk7Ci0JaW50IGVycjsKKwl1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6 ZXNbXSA9IHsKKwkJSTkxNV9HVFRfUEFHRV9TSVpFLAorCQlJOTE1X0dUVF9QQUdFX1NJWkVfNjRL LAorCQlJOTE1X0dUVF9QQUdFX1NJWkVfMk0sCisJCUk5MTVfR1RUX1BBR0VfU0laRV8xRywKKwl9 OworCWludCBlcnIgPSAwOworCWludCBpOwogCiAJaWYgKCFVU0VTX0ZVTExfUFBHVFQoZGV2X3By aXYpKQogCQlyZXR1cm4gMDsKQEAgLTg4NCw3ICs5MTYsMTEgQEAgc3RhdGljIGludCBleGVyY2lz ZV9wcGd0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJR0VNX0JVR19PTihv ZmZzZXRfaW5fcGFnZShwcGd0dC0+YmFzZS50b3RhbCkpOwogCUdFTV9CVUdfT04ocHBndHQtPmJh c2UuY2xvc2VkKTsKIAotCWVyciA9IGZ1bmMoZGV2X3ByaXYsICZwcGd0dC0+YmFzZSwgMCwgcHBn dHQtPmJhc2UudG90YWwsIGVuZF90aW1lKTsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShw YWdlX3NpemVzKTsgKytpKSB7CisJCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+cGFnZV9zaXpl X21hc2sgJiBwYWdlX3NpemVzW2ldKQorCQkJZXJyID0gZnVuYyhkZXZfcHJpdiwgJnBwZ3R0LT5i YXNlLCAwLCBwcGd0dC0+YmFzZS50b3RhbCwKKwkJCQkgICBwYWdlX3NpemVzW2ldLCBlbmRfdGlt ZSk7CisJfQogCiAJaTkxNV9wcGd0dF9jbG9zZSgmcHBndHQtPmJhc2UpOwogCWk5MTVfcHBndHRf cHV0KHBwZ3R0KTsKQEAgLTk0MCw2ICs5NzYsNyBAQCBzdGF0aWMgaW50IGV4ZXJjaXNlX2dndHQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkgaW50ICgqZnVuYykoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkJICAgICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwKIAkJCQkgICAgIHU2NCBob2xlX3N0YXJ0LCB1NjQgaG9sZV9lbmQsCisJCQkJICAgICB1 bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZSwKIAkJCQkgICAgIHVuc2lnbmVkIGxvbmcgZW5kX3RpbWUp KQogewogCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmaTkxNS0+Z2d0dDsKQEAgLTk2MSw3ICs5 OTgsOCBAQCBzdGF0aWMgaW50IGV4ZXJjaXNlX2dndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsCiAJCWlmIChob2xlX3N0YXJ0ID49IGhvbGVfZW5kKQogCQkJY29udGludWU7CiAKLQkJ ZXJyID0gZnVuYyhpOTE1LCAmZ2d0dC0+YmFzZSwgaG9sZV9zdGFydCwgaG9sZV9lbmQsIGVuZF90 aW1lKTsKKwkJZXJyID0gZnVuYyhpOTE1LCAmZ2d0dC0+YmFzZSwgaG9sZV9zdGFydCwgaG9sZV9l bmQsCisJCQkgICBJOTE1X0dUVF9QQUdFX1NJWkUsIGVuZF90aW1lKTsKIAkJaWYgKGVycikKIAkJ CWJyZWFrOwogCkBAIC0xMTA0LDEyICsxMTQyLDIwIEBAIHN0YXRpYyBpbnQgZXhlcmNpc2VfbW9j ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCSBpbnQgKCpmdW5jKShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCQkgICAgIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2UgKnZtLAogCQkJCSAgICAgdTY0IGhvbGVfc3RhcnQsIHU2NCBob2xlX2VuZCwKKwkJCQkgICAg IHVuc2lnbmVkIGxvbmcgcGFnZV9zaXplLAogCQkJCSAgICAgdW5zaWduZWQgbG9uZyBlbmRfdGlt ZSkpCiB7CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKIAlzdHJ1Y3QgaTkxNV9od19w cGd0dCAqcHBndHQ7CiAJSUdUX1RJTUVPVVQoZW5kX3RpbWUpOworCXVuc2lnbmVkIGxvbmcgcGFn ZV9zaXplc1tdID0geworCQlJOTE1X0dUVF9QQUdFX1NJWkUsCisJCUk5MTVfR1RUX1BBR0VfU0la RV82NEssCisJCUk5MTVfR1RUX1BBR0VfU0laRV8yTSwKKwkJSTkxNV9HVFRfUEFHRV9TSVpFXzFH LAorCX07CiAJaW50IGVycjsKKwlpbnQgaTsKIAogCWN0eCA9IG1vY2tfY29udGV4dChpOTE1LCAi bW9jayIpOwogCWlmICghY3R4KQpAQCAtMTExOCw3ICsxMTY0LDEwIEBAIHN0YXRpYyBpbnQgZXhl cmNpc2VfbW9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlwcGd0dCA9IGN0eC0+ cHBndHQ7CiAJR0VNX0JVR19PTighcHBndHQpOwogCi0JZXJyID0gZnVuYyhpOTE1LCAmcHBndHQt PmJhc2UsIDAsIHBwZ3R0LT5iYXNlLnRvdGFsLCBlbmRfdGltZSk7CisJZm9yIChpID0gMDsgaSA8 IEFSUkFZX1NJWkUocGFnZV9zaXplcyk7ICsraSkgeworCQllcnIgPSBmdW5jKGk5MTUsICZwcGd0 dC0+YmFzZSwgMCwgcHBndHQtPmJhc2UudG90YWwsCisJCQkgICBwYWdlX3NpemVzW2ldLCBlbmRf dGltZSk7CisJfQogCiAJbW9ja19jb250ZXh0X2Nsb3NlKGN0eCk7CiAJcmV0dXJuIGVycjsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2d0dC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ3R0LmMKaW5kZXggYTIxMzcxMDBkMmY1 Li45NDI4ZWEwOWQwNWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9tb2NrX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2d0 dC5jCkBAIC04OCw2ICs4OCw5IEBAIG1vY2tfcHBndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsCiAJcHBndHQtPmJhc2UudW5iaW5kX3ZtYSA9IG1vY2tfdW5iaW5kX3BwZ3R0OwogCXBw Z3R0LT5iYXNlLmNsZWFudXAgPSBtb2NrX2NsZWFudXA7CiAKKwkvKiBGb3IgbW9jayB0ZXN0aW5n IGh1Z2UtcGFnZSBzdXBwb3J0ICovCisJcHBndHQtPmJhc2UubW0uY29sb3JfYWRqdXN0ID0gaTkx NV9wYWdlX2NvbG9yX2FkanVzdDsKKwogCXJldHVybiBwcGd0dDsKIH0KIAotLSAKMi45LjMKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=