From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lohith BS Subject: [PATCH] Idleness DRRS: Date: Tue, 19 Sep 2017 08:09:46 +0530 Message-ID: <1505788786-19435-1-git-send-email-lohith.bs@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 544736E4C0 for ; Tue, 19 Sep 2017 02:45:30 +0000 (UTC) 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, paulo.r.zanoni@intel.com, daniel.vetter@ffwll.ch, chris@chris-wilson.co.uk, rodrigo.vivi@intel.com Cc: ankit.k.nautiyal@intel.com List-Id: intel-gfx@lists.freedesktop.org CUJ5IGRlZmF1bHQgdGhlIERSUlMgc3RhdGUgd2lsbCBiZSBhdCBEUlJTX0hJR0hfUlIuIFdoZW4g YSBEaXNwbGF5Cgljb250ZW50IGlzIElkbGUgZm9yIG1vcmUgdGhhbiAxU2VjIElkbGVuZXNzIHdp bGwgYmUgZGVjbGFyZWQgYW5kCglEUlJTX0xPV19SUiB3aWxsIGJlIGludm9rZWQsIGNoYW5naW5n IHRoZSByZWZyZXNoIHJhdGUgdG8gdGhlCglsb3dlciBtb3N0IHJlZnJlc2ggcmF0ZSBzdXBwb3J0 ZWQgYnkgdGhlIHBhbmVsLiBBcyBzb29uIGFzIHRoZXJlCglpcyBhIGRpc3BsYXkgY29udGVudCBj aGFuZ2UgdGhlcmUgd2lsbCBiZSBhIERSUlMgc3RhdGUgdHJhbnNpdGlvbgoJYXMgRFJSU19MT1df UlItLT4gRFJSU19ISUdIX1JSLCBjaGFuZ2luZyB0aGUgcmVmcmVzaCByYXRlIHRvIHRoZQoJaGln aGVzdCByZWZyZXNoIHJhdGUgc3VwcG9ydGVkIGJ5IHRoZSBwYW5lbC4KClRvIHRlc3QgdGhpcywg SWRsZW5lc3MgRFJSUyBJR1Qgd2lsbCBwcm9iZSB0aGUgRFJSUyBzdGF0ZSBhdCBiZWxvdwppbnN0 YW5jZXMgYW5kIGNvbXBhcmUgd2l0aCB0aGUgZXhwZWN0ZWQgc3RhdGUuCgoJSW5zdGFuY2UJCQkJ CUV4cGVjdGVkIFN0YXRlCjEuIEltbWVkaWF0ZWx5IGFmdGVyIHJlbmRlcmluZyB0aGUgc3RpbGwg aW1hZ2UJCURSUlNfSElHSF9SUgoyLiBBZnRlciBhIGRlbGF5IG9mIDEuMlNlYwkJCQlEUlJTX0xP V19SUgozLiBBZnRlciBjaGFuZ2luZyB0aGUgZnJhbWUgYnVmZmVyCQkJRFJSU19ISUdIX1JSCjQu IEFmdGVyIGEgZGVsYXkgb2YgMS4yU2VjCQkJCURSUlNfTE9XX1JSCjUuIEFmdGVyIGNoYW5naW5n IHRoZSBmcmFtZSBidWZmZXIJCQlEUlJTX0hJR0hfUlIKNi4gQWZ0ZXIgYSBkZWxheSBvZiAxLjJT ZWMJCQkJRFJSU19MT1dfUlIKClRoZSB0ZXN0IGNoZWNrcyB0aGUgZHJpdmVyIERSUlMgc3RhdGUg ZnJvbSB0aGUgZGVidWdmcyBlbnRyeS4gVG8gY2hlY2sgdGhlCmFjdHVhbCByZWZyZXNoLXJhdGUs IHRoZSBudW1iZXIgb2YgdmJsYW5rcyByZWNlaXZlZCBwZXIgc2VjLgpUaGUgcmVmcmVzaC1yYXRl IGNhbGN1bGF0ZWQgaXMgY2hlY2tlZCBhZ2FpbnN0IHRoZSBleHBlY3RlZCByZWZyZXNoLXJhdGUK d2l0aCBhIHRvbGVyYW5jZSB2YWx1ZSBvZiAyLgoKVGhpcyBwYXRjaCBpcyBhIGNvbnRpbnVhdGlv biBvZiB0aGUgZWFybGllciB3b3JrCmh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9w YXRjaC80NTQ3Mi8gdG93YXJkcyBpZ3QgZm9yIGlkbGVuZXNzCgpEUlJTLiBUaGUgY29kZSBpcyB0 ZXN0ZWQgb24gQnJveHRvbiBCWFRfVCBwbGF0Zm9ybS4KCnYyOiBBZGRyZXNzZWQgdGhlIGNvbW1l bnRzIGFuZCBzdWdnZXN0aW9ucyBmcm9tIFZsYWQsIE1hcml1cy4KVGhlIHNpZ25vZmYgZGV0YWls cyBmcm9tIHRoZSBlYXJsaWVyIHdvcmsgYXJlIGFsc28gaW5jbHVkZWQuCgp2MzogTW9kaWZpZWQg dmJsYW5rIHJhdGUgY2FsY3VsYXRpb24gYnkgdXNpbmcgcmVwbHktc2VxdWVuY2UsIHByb3ZpZGVk IGJ5CmRybVdhaXRWQmxhbmssIGFzIHN1Z2dlc3RlZCBieSBDaHJpcyBXaWxzb24uCgp2NDogQXMg c3VnZ2VzdGVkIGZyb20gQ2hyaXMgV2lsc29uIGFuZCBEYW5pZWwgVmV0dGVyCgkxKSBBdm9pZGVk IHVzaW5nIHB0aHJlYWQgZm9yIGNhbGN1bGF0aW5nIHZibGFuayByZWZyZXNoIHJhdGUsCgkgICBp bnN0ZWFkIHVzZWQgZHJtV2FpdFZCbGFuayByZXBseSBzZXF1ZW5jZS4KCTIpIEF2b2lkZWQgdXNp bmcga2VybmVsLXNwZWNpZmljIGluZm8gbGlrZSB0cmFuc2l0aW9uYWwgZGVsYXlzLAoJICAgaW5z dGVhZCBwb2xsaW5nIG1lY2hhbmlzbSB3aXRoIHRpbWVvdXQgaXMgdXNlZC4KCTMpIEluY2x1ZGVk IGVkcC1EUlJTIGFzIGEgc3VidGVzdCBpbiBrbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYywKCSAg IGluc3RlYWQgb2YgaGF2aW5nIGEgc2VwYXJhdGUgdGVzdC4KCnY1OiBUaGlzIHBhdGNoIGFkZHMg RFJSUyBhcyBhIG5ldyBmZWF0dXJlIGluIHRoZSBrbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcgSUdU LgogICAgRFJSUyBzd2l0Y2ggdG8gbG93ZXIgdnJlZnJlc2ggcmF0ZSBpcyB0ZXN0ZWQgYXQgc2xv dy1kcmF3IHN1YnRlc3QuCgoJTm90ZToKCTEpIEN1cnJlbnRseSBrZXJuZWwgZG9lc24ndCBoYXZl IHN1cHBvcnQgdG8gZW5hYmxlIGFuZCBkaXNhYmxlIHRoZSBEUlJTCgkgICBmZWF0dXJlIGR5bmFt aWNhbGx5KGFzIGluIGNhc2Ugb2YgUFNSKS4gSGVuY2UgaWYgdGhlIHBhbmVsIHN1cHBvcnRzCgkg ICBEUlJTIGl0IHdpbGwgYmUgZW5hYmxlZCBieSBkZWZhdWx0LgoKCVRoaXMgaXMgaW4gY29udGlu dWF0aW9uIG9mIGxhc3QgcGF0Y2ggImh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9w YXRjaC8xNjI3MjYvIgoKU2lnbmVkLW9mZi1ieTogTG9oaXRoIEJTIDxsb2hpdGguYnNAaW50ZWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+ ClNpZ25lZC1vZmYtYnk6IFZhbmRhbmEgS2FubmFuIDx2YW5kYW5hLmthbm5hbkBpbnRlbC5jb20+ ClNpZ25lZC1vZmYtYnk6IGFrbmF1dGl5IDxhbmtpdC5rLm5hdXRpeWFsQGludGVsLmNvbT4KLS0t CiB0ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYyB8IDE2MSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNTIgaW5zZXJ0aW9ucygr KSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJh Y2tpbmcuYyBiL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCmluZGV4IGEwNjhjOGEu LjRmNDQxMDkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCisr KyBiL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCkBAIC0zNCw3ICszNCw3IEBACiAK IAogSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgdGhlIEtlcm5lbCdzIGZyb250YnVmZmVyIHRy YWNraW5nIG1lY2hhbmlzbSBhbmQgIgotCQkgICAgICJpdHMgcmVsYXRlZCBmZWF0dXJlczogRkJD IGFuZCBQU1IiKTsKKwkJICAgICAiaXRzIHJlbGF0ZWQgZmVhdHVyZXM6IEZCQyBEUlJTIGFuZCBQ U1IiKTsKIAogLyoKICAqIE9uZSBvZiB0aGUgYXNwZWN0cyBvZiB0aGlzIHRlc3QgaXMgdGhhdCwg Zm9yIGV2ZXJ5IHN1YnRlc3QsIHdlIHRyeSBkaWZmZXJlbnQKQEAgLTEwNSw4ICsxMDUsOSBAQCBz dHJ1Y3QgdGVzdF9tb2RlIHsKIAkJRkVBVFVSRV9OT05FICA9IDAsCiAJCUZFQVRVUkVfRkJDICAg PSAxLAogCQlGRUFUVVJFX1BTUiAgID0gMiwKLQkJRkVBVFVSRV9DT1VOVCA9IDQsCi0JCUZFQVRV UkVfREVGQVVMVCA9IDQsCisJCUZFQVRVUkVfRFJSUyAgPSA0LAorCQlGRUFUVVJFX0NPVU5UID0g NiwKKwkJRkVBVFVSRV9ERUZBVUxUID0gNiwKIAl9IGZlYXR1cmU7CiAKIAkvKiBQb3NzaWJsZSBw aXhlbCBmb3JtYXRzLiBXZSBqdXN0IHVzZSBGT1JNQVRfREVGQVVMVCBmb3IgbW9zdCB0ZXN0cyBh bmQKQEAgLTE4MCw2ICsxODEsOSBAQCBzdHJ1Y3QgewogCWJvb2wgY2FuX3Rlc3Q7CiB9IHBzciA9 IHsKIAkuY2FuX3Rlc3QgPSBmYWxzZSwKK30sCitkcnJzICA9IHsKKwkuY2FuX3Rlc3QgPSBmYWxz ZSwKIH07CiAKIApAQCAtODIyLDYgKzgyNiw1MiBAQCBzdGF0aWMgdm9pZCBwc3JfcHJpbnRfc3Rh dHVzKHZvaWQpCiAJaWd0X2luZm8oIlBTUiBzdGF0dXM6XG4lc1xuIiwgYnVmKTsKIH0KIAorc3Rh dGljIGJvb2wgaXNfZHJyc19oaWdoKHZvaWQpCit7CisJY2hhciBidWZbMjU2XTsKKworCWRlYnVn ZnNfcmVhZCgiaTkxNV9kcnJzX3N0YXR1cyIsIGJ1Zik7CisJcmV0dXJuIHN0cnN0cihidWYsICJE UlJTX0hJR0hfUlIiKTsKK30KKworc3RhdGljIGJvb2wgaXNfZHJyc19sb3codm9pZCkKK3sKKwlj aGFyIGJ1ZlsyNTZdOworCisJZGVidWdmc19yZWFkKCJpOTE1X2RycnNfc3RhdHVzIiwgYnVmKTsK KwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRSUlNfTE9XX1JSIik7Cit9CisKK3N0YXRpYyBib29sIGlz X2RycnNfZW5hYmxlZCh2b2lkKQoreworCWNoYXIgYnVmWzI1Nl07CisKKwlkZWJ1Z2ZzX3JlYWQo Imk5MTVfZHJyc19zdGF0dXMiLCBidWYpOworCXJldHVybiBzdHJzdHIoYnVmLCAiRFJSUyBTdXBw b3J0ZWQ6IFllcyIpOworfQorCitzdGF0aWMgYm9vbCBpc19kcnJzX2luYWN0aXZlKHZvaWQpCit7 CisJY2hhciBidWZbMjU2XTsKKworCWRlYnVnZnNfcmVhZCgiaTkxNV9kcnJzX3N0YXR1cyIsIGJ1 Zik7CisJcmV0dXJuIHN0cnN0cihidWYsICJObyBhY3RpdmUgY3J0YyBmb3VuZCIpOworfQorCitz dGF0aWMgdm9pZCBkcnJzX3ByaW50X3N0YXR1cyh2b2lkKQoreworCWNoYXIgYnVmWzI1Nl07CisK KwlpZiAoaXNfZHJyc19oaWdoKCkpCisJCWlndF9pbmZvKCJEUlJTIFNUQVRVUyA6IERSUlMgSElH SFxuIik7CisKKwlpZiAoaXNfZHJyc19sb3coKSkKKwkJaWd0X2luZm8oIkRSUlNfU1RBVFVTIDog RFJSUyBMT1dcbiIpOworCisJaWYgKGlzX2RycnNfaW5hY3RpdmUoKSkKKwkJaWd0X2luZm8oIkRS UlNfU1RBVFVTIDogRFJSUyBESVNBQkxFRFxuIik7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgdGltZXNw ZWMgZmJjX2dldF9sYXN0X2FjdGlvbih2b2lkKQogewogCXN0cnVjdCB0aW1lc3BlYyByZXQgPSB7 IDAsIDAgfTsKQEAgLTE1NzUsNiArMTYyNSwyNSBAQCBzdGF0aWMgdm9pZCB0ZWFyZG93bl9wc3Io dm9pZCkKIHsKIH0KIAorc3RhdGljIHZvaWQgc2V0dXBfZHJycyh2b2lkKQoreworCWlmIChnZXRf Y29ubmVjdG9yKHByaW1fbW9kZV9wYXJhbXMuY29ubmVjdG9yX2lkKS0+Y29ubmVjdG9yX3R5cGUg IT0KKwkJCURSTV9NT0RFX0NPTk5FQ1RPUl9lRFApIHsKKwkJaWd0X2luZm8oIkNhbid0IHRlc3Qg RFJSUzogbm8gdXNhYmxlIGVEUCBzY3JlZW4uXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWlmICgh aXNfZHJyc19lbmFibGVkKCkpIHsKKwkJaWd0X2luZm8oIkNhbid0IHRlc3QgRFJSUzogbm90IHN1 cHBvcnRlZCBpbiB0aGUgZHJpdmVyLlxuIik7CisJCXJldHVybjsKKwl9CisJZHJycy5jYW5fdGVz dCA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIHRlYXJkb3duX2RycnModm9pZCkKK3sKK30KKwog c3RhdGljIHZvaWQgc2V0dXBfZW52aXJvbm1lbnQodm9pZCkKIHsKIAlzZXR1cF9kcm0oKTsKQEAg LTE1ODIsNyArMTY1MSw3IEBAIHN0YXRpYyB2b2lkIHNldHVwX2Vudmlyb25tZW50KHZvaWQpCiAK IAlzZXR1cF9mYmMoKTsKIAlzZXR1cF9wc3IoKTsKLQorCXNldHVwX2RycnMoKTsKIAlzZXR1cF9j cmNzKCk7CiB9CiAKQEAgLTE1OTIsNiArMTY2MSw3IEBAIHN0YXRpYyB2b2lkIHRlYXJkb3duX2Vu dmlyb25tZW50KHZvaWQpCiAKIAl0ZWFyZG93bl9jcmNzKCk7CiAJdGVhcmRvd25fcHNyKCk7CisJ dGVhcmRvd25fZHJycygpOwogCXRlYXJkb3duX2ZiYygpOwogCXRlYXJkb3duX21vZGVzZXQoKTsK IAl0ZWFyZG93bl9kcm0oKTsKQEAgLTE2NjAsNiArMTczMCwxMSBAQCBzdGF0aWMgdm9pZCBkb19m bHVzaChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQogI2RlZmluZSBBU1NFUlRfUFNSX0VOQUJM RUQJCSgxIDw8IDYpCiAjZGVmaW5lIEFTU0VSVF9QU1JfRElTQUJMRUQJCSgxIDw8IDcpCiAKKyNk ZWZpbmUgRFJSU19BU1NFUlRfRkxBR1MgICAgICAgICAgICAgICAoNyA8PCA4KQorI2RlZmluZSBB U1NFUlRfRFJSU19ISUdIICAgICAgICAgICAgICAgICgxIDw8IDgpCisjZGVmaW5lIEFTU0VSVF9E UlJTX0xPVyAgICAgICAgICAgICAgICAgKDEgPDwgOSkKKyNkZWZpbmUgQVNTRVJUX0RSUlNfSU5B Q1RJVkUgICAgICAgICAgICAoMSA8PCAxMCkKKwogc3RhdGljIGludCBhZGp1c3RfYXNzZXJ0aW9u X2ZsYWdzKGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQsIGludCBmbGFncykKIHsKIAlpZiAoIShm bGFncyAmIERPTlRfQVNTRVJUX0ZFQVRVUkVfU1RBVFVTKSkgewpAQCAtMTY2NywxMiArMTc0Miwx NyBAQCBzdGF0aWMgaW50IGFkanVzdF9hc3NlcnRpb25fZmxhZ3MoY29uc3Qgc3RydWN0IHRlc3Rf bW9kZSAqdCwgaW50IGZsYWdzKQogCQkJZmxhZ3MgfD0gQVNTRVJUX0ZCQ19FTkFCTEVEOwogCQlp ZiAoIShmbGFncyAmIEFTU0VSVF9QU1JfRElTQUJMRUQpKQogCQkJZmxhZ3MgfD0gQVNTRVJUX1BT Ul9FTkFCTEVEOworCQlpZiAoISgoZmxhZ3MgJiBBU1NFUlRfRFJSU19MT1cpIHx8IChmbGFncyAm IEFTU0VSVF9EUlJTX0lOQUNUSVZFKSkpIHsKKwkJCWZsYWdzIHw9IEFTU0VSVF9EUlJTX0hJR0g7 CisJCX0KIAl9CiAKIAlpZiAoKHQtPmZlYXR1cmUgJiBGRUFUVVJFX0ZCQykgPT0gMCkKIAkJZmxh Z3MgJj0gfkZCQ19BU1NFUlRfRkxBR1M7CiAJaWYgKCh0LT5mZWF0dXJlICYgRkVBVFVSRV9QU1Ip ID09IDApCiAJCWZsYWdzICY9IH5QU1JfQVNTRVJUX0ZMQUdTOworCWlmICgodC0+ZmVhdHVyZSAm IEZFQVRVUkVfRFJSUykgPT0gMCkKKwkJZmxhZ3MgJj0gfkRSUlNfQVNTRVJUX0ZMQUdTOwogCiAJ cmV0dXJuIGZsYWdzOwogfQpAQCAtMTcwNCw2ICsxNzg0LDIzIEBAIHN0YXRpYyB2b2lkIGRvX3N0 YXR1c19hc3NlcnRpb25zKGludCBmbGFncykKIAkJcmV0dXJuOwogCX0KIAorCWlmIChmbGFncyAm IEFTU0VSVF9EUlJTX0hJR0gpIHsKKwkJaWYgKCFpc19kcnJzX2hpZ2goKSkgeworCQkJZHJyc19w cmludF9zdGF0dXMoKTsKKwkJCWlndF9hc3NlcnRfZihmYWxzZSwgIkRSUlMgSElHSFxuIik7CisJ CX0KKwl9IGVsc2UgaWYgKGZsYWdzICYgQVNTRVJUX0RSUlNfTE9XKSB7CisJCWlmICghaXNfZHJy c19sb3coKSkgeworCQkJZHJyc19wcmludF9zdGF0dXMoKTsKKwkJCWlndF9hc3NlcnRfZihmYWxz ZSwgIkRSUlMgTE9XXG4iKTsKKwkJfQorCX0gZWxzZSBpZiAoZmxhZ3MgJiBBU1NFUlRfRFJSU19J TkFDVElWRSkgeworCQlpZiAoIWlzX2RycnNfaW5hY3RpdmUoKSkgeworCQkJZHJyc19wcmludF9z dGF0dXMoKTsKKwkJCWlndF9hc3NlcnRfZihmYWxzZSwgIkRSUlMgRElTQUJMRURcbiIpOworCQl9 CisJfQorCiAJaWYgKGZsYWdzICYgQVNTRVJUX0ZCQ19FTkFCTEVEKSB7CiAJCWlndF9yZXF1aXJl KCFmYmNfbm90X2Vub3VnaF9zdG9sZW4oKSk7CiAJCWlndF9yZXF1aXJlKCFmYmNfc3RyaWRlX25v dF9zdXBwb3J0ZWQoKSk7CkBAIC0xODUwLDYgKzE5NDcsMTAgQEAgc3RhdGljIHZvaWQgY2hlY2tf dGVzdF9yZXF1aXJlbWVudHMoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKIAkJCSAgICAgICJD YW4ndCB0ZXN0IFBTUiB3aXRob3V0IHNpbmsgQ1JDc1xuIik7CiAJfQogCisJaWYgKHQtPmZlYXR1 cmUgJiBGRUFUVVJFX0RSUlMpCisJCWlndF9yZXF1aXJlX2YoZHJycy5jYW5fdGVzdCwKKwkJCQki Q2FuJ3QgdGVzdCBEUlJTIHdpdGggdGhlIGN1cnJlbnQgb3V0cHV0c1xuIik7CisKIAlpZiAob3B0 Lm9ubHlfcGlwZXMgIT0gUElQRV9DT1VOVCkKIAkJaWd0X3JlcXVpcmUodC0+cGlwZXMgPT0gb3B0 Lm9ubHlfcGlwZXMpOwogfQpAQCAtMTk3MSw3ICsyMDcyLDcgQEAgc3RhdGljIHZvaWQgcnRlX3N1 YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKIAogCXVuc2V0X2FsbF9jcnRjcygpOwog CWRvX2Fzc2VydGlvbnMoQVNTRVJUX0ZCQ19ESVNBQkxFRCB8IEFTU0VSVF9QU1JfRElTQUJMRUQg fAotCQkgICAgICBET05UX0FTU0VSVF9DUkMpOworCQkgICAgICBET05UX0FTU0VSVF9DUkMgfCBB U1NFUlRfRFJSU19JTkFDVElWRSk7CiAKIAllbmFibGVfcHJpbV9zY3JlZW5fYW5kX3dhaXQodCk7 CiAJc2V0X2N1cnNvcl9mb3JfdGVzdCh0LCAmcHJpbV9tb2RlX3BhcmFtcyk7CkBAIC0yMDA4LDYg KzIxMDksMjQgQEAgc3RhdGljIGJvb2wgb3BfZGlzYWJsZXNfcHNyKGNvbnN0IHN0cnVjdCB0ZXN0 X21vZGUgKnQsCiAJcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgYm9vbCBvcF9zZXRzX2RycnNf aGlnaChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0LAorCQkJCWVudW0gaWd0X2RyYXdfbWV0aG9k IG1ldGhvZCkKK3sKKwlpZiAobWV0aG9kICE9IElHVF9EUkFXX01NQVBfR1RUKQorCQlyZXR1cm4g ZmFsc2U7CisJaWYgKHQtPnNjcmVlbiA9PSBTQ1JFRU5fUFJJTSkKKwkJcmV0dXJuIHRydWU7CisJ LyogT24gRkJTX1NIQVJFRCwgZXZlbiBpZiB0aGUgdGFyZ2V0IGlzIG5vdCB0aGUgRFJSUyBzY3Jl ZW4KKwkgKiAoU0NSRUVOX1BSSU0pLCBhbGwgcHJpbWFyeSBwbGFuZXMgc2hhcmUgdGhlIHNhbWUg ZnJvbnRidWZmZXIsIHNvIGEKKwkgKiB3cml0ZSB0byB0aGUgc2Vjb25kIHNjcmVlbiBwcmltYXJ5 IHBsYW5lIC0gb3Igb2Zmc2NyZWVuIHBsYW5lIC0gd2lsbAorCSAqIHRvdWNoIHRoZSBmcmFtZWJ1 ZmZlciB0aGF0J3MgYWxzbyB1c2VkIGJ5IHRoZSBwcmltYXJ5IHNjcmVlbiBhbmQgbWFraW5nCisJ ICogRFJSUyBzdGF0ZSBhcyBoaWdoCisJICovCisJaWYgKHQtPmZicyA9PSBGQlNfU0hBUkVEICYm IHQtPnBsYW5lID09IFBMQU5FX1BSSSkKKwkJcmV0dXJuIHRydWU7CisJcmV0dXJuIGZhbHNlOwor fQorCiAvKgogICogZHJhdyAtIGRyYXcgYSBzZXQgb2YgcmVjdGFuZ2xlcyBvbiB0aGUgc2NyZWVu IHVzaW5nIHRoZSBwcm92aWRlZCBtZXRob2QKICAqCkBAIC0yMDYzLDYgKzIxODIsOSBAQCBzdGF0 aWMgdm9pZCBkcmF3X3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKIAlpZiAob3Bf ZGlzYWJsZXNfcHNyKHQsIHQtPm1ldGhvZCkpCiAJCWFzc2VydGlvbnMgfD0gQVNTRVJUX1BTUl9E SVNBQkxFRDsKIAorCWlmIChvcF9zZXRzX2RycnNfaGlnaCh0LCB0LT5tZXRob2QpKQorCQlhc3Nl cnRpb25zIHw9IEFTU0VSVF9EUlJTX0hJR0g7CisKIAlwcmVwYXJlX3N1YnRlc3QodCwgcGF0dGVy bik7CiAJdGFyZ2V0ID0gcGlja190YXJnZXQodCwgcGFyYW1zKTsKIApAQCAtMjE1Miw2ICsyMjc0 LDEwIEBAIHN0YXRpYyB2b2lkIG11bHRpZHJhd19zdWJ0ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21v ZGUgKnQpCiAJCQkJICAgICF3Y191c2VkKQogCQkJCQlhc3NlcnRpb25zIHw9IEFTU0VSVF9QU1Jf RElTQUJMRUQ7CiAKKwkJCQlpZiAob3Bfc2V0c19kcnJzX2hpZ2godCwgdXNlZF9tZXRob2QpICYm CisJCQkJCSF3Y191c2VkKQorCQkJCQlhc3NlcnRpb25zIHw9IEFTU0VSVF9EUlJTX0hJR0g7CisK IAkJCQlkb19hc3NlcnRpb25zKGFzc2VydGlvbnMpOwogCQkJfQogCkBAIC0yMjA2LDYgKzIzMzIs NyBAQCBzdGF0aWMgdm9pZCBiYWRmb3JtYXRfc3VidGVzdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2Rl ICp0KQogewogCWJvb2wgZmJjX3ZhbGlkID0gZm9ybWF0X2lzX3ZhbGlkKEZFQVRVUkVfRkJDLCB0 LT5mb3JtYXQpOwogCWJvb2wgcHNyX3ZhbGlkID0gZm9ybWF0X2lzX3ZhbGlkKEZFQVRVUkVfUFNS LCB0LT5mb3JtYXQpOworCWJvb2wgZHJyc192YWxpZCA9IGZvcm1hdF9pc192YWxpZChGRUFUVVJF X0RSUlMsIHQtPmZvcm1hdCk7CiAJaW50IGFzc2VydGlvbnMgPSBBU1NFUlRfTk9fQUNUSU9OX0NI QU5HRTsKIAogCXByZXBhcmVfc3VidGVzdF9kYXRhKHQsIE5VTEwpOwpAQCAtMjIxOSw2ICsyMzQ2 LDkgQEAgc3RhdGljIHZvaWQgYmFkZm9ybWF0X3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9k ZSAqdCkKIAkJYXNzZXJ0aW9ucyB8PSBBU1NFUlRfRkJDX0RJU0FCTEVEOwogCWlmICghcHNyX3Zh bGlkKQogCQlhc3NlcnRpb25zIHw9IEFTU0VSVF9QU1JfRElTQUJMRUQ7CisJaWYgKCFkcnJzX3Zh bGlkKQorCQlhc3NlcnRpb25zIHw9IEFTU0VSVF9EUlJTX0hJR0g7CisKIAlkb19hc3NlcnRpb25z KGFzc2VydGlvbnMpOwogfQogCkBAIC0yMjc3LDcgKzI0MDcsMTUgQEAgc3RhdGljIHZvaWQgc2xv d19kcmF3X3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKIAkJc2xlZXAoMik7CiAK IAkJdXBkYXRlX3dhbnRlZF9jcmModCwgJnBhdHRlcm4tPmNyY3NbdC0+Zm9ybWF0XVtyXSk7Ci0J CWRvX2Fzc2VydGlvbnMoMCk7CisJCWlmICh0LT5mZWF0dXJlICYgRkVBVFVSRV9QU1IpIHsKKwkJ CWRvX2Fzc2VydGlvbnMoMCk7CisJCX0KKworCQlpZiAodC0+ZmVhdHVyZSAmIEZFQVRVUkVfRFJS UykgeworCQkJc2xlZXAoMSk7CisJCQlkb19hc3NlcnRpb25zKEFTU0VSVF9EUlJTX0xPVyk7CisJ CX0KKwogCX0KIH0KIApAQCAtMjQ2NCw2ICsyNjAyLDcgQEAgc3RhdGljIHZvaWQgZmxpcHRyYWNr X3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCwgZW51bSBmbGlwX3R5cGUgdHlwZSkK IAkJdXBkYXRlX3dhbnRlZF9jcmModCwgJnBhdHRlcm4tPmNyY3NbdC0+Zm9ybWF0XVtyXSk7CiAK IAkJZG9fYXNzZXJ0aW9ucyhBU1NFUlRfUFNSX0RJU0FCTEVEKTsKKwkJZG9fYXNzZXJ0aW9ucyhB U1NFUlRfRFJSU19ISUdIKTsKIAl9CiAKIAlpZ3RfcmVtb3ZlX2ZiKGRybS5mZCwgJmZiMik7CkBA IC0yODkyLDcgKzMwMzEsNyBAQCBzdGF0aWMgdm9pZCBzdXNwZW5kX3N1YnRlc3QoY29uc3Qgc3Ry dWN0IHRlc3RfbW9kZSAqdCkKIAlzbGVlcCg1KTsKIAlpZ3Rfc3lzdGVtX3N1c3BlbmRfYXV0b3Jl c3VtZShTVVNQRU5EX1NUQVRFX01FTSwgU1VTUEVORF9URVNUX05PTkUpOwogCXNsZWVwKDUpOwot CWRvX2Fzc2VydGlvbnMoQVNTRVJUX0ZCQ19ESVNBQkxFRCB8IEFTU0VSVF9QU1JfRElTQUJMRUQg fAorCWRvX2Fzc2VydGlvbnMoQVNTRVJUX0ZCQ19ESVNBQkxFRCB8IEFTU0VSVF9QU1JfRElTQUJM RUQgfCBBU1NFUlRfRFJSU19ISUdIIHwKIAkJICAgICAgRE9OVF9BU1NFUlRfQ1JDKTsKIAogCXNl dF9tb2RlX2Zvcl9wYXJhbXMocGFyYW1zKTsKQEAgLTI5NjYsNyArMzEwNSw3IEBAIHN0YXRpYyB2 b2lkIGZhcmZyb21mZW5jZV9zdWJ0ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCiAJCXVw ZGF0ZV93YW50ZWRfY3JjKHQsICZwYXR0ZXJuLT5jcmNzW3QtPmZvcm1hdF1bcl0pOwogCiAJCS8q IEdUVCBkcmF3cyBkaXNhYmxlIFBTUi4gKi8KLQkJZG9fYXNzZXJ0aW9ucyhhc3NlcnRpb25zIHwg QVNTRVJUX1BTUl9ESVNBQkxFRCk7CisJCWRvX2Fzc2VydGlvbnMoYXNzZXJ0aW9ucyB8IEFTU0VS VF9QU1JfRElTQUJMRUQgfCBBU1NFUlRfRFJSU19ISUdIKTsKIAl9CiAKIAlpZ3RfcmVtb3ZlX2Zi KGRybS5mZCwgJnRhbGxfZmIpOwpAQCAtMzM3NSw2ICszNTE0LDEwIEBAIHN0YXRpYyBjb25zdCBj aGFyICpmZWF0dXJlX3N0cihpbnQgZmVhdHVyZSkKIAkJcmV0dXJuICJwc3IiOwogCWNhc2UgRkVB VFVSRV9GQkMgfCBGRUFUVVJFX1BTUjoKIAkJcmV0dXJuICJmYmNwc3IiOworCWNhc2UgRkVBVFVS RV9EUlJTOgorCQlyZXR1cm4gImRycnMiOworCWNhc2UgRkVBVFVSRV9GQkMgfCBGRUFUVVJFX0RS UlM6CisJCXJldHVybiAiZmJjZHJycyI7CiAJZGVmYXVsdDoKIAkJaWd0X2Fzc2VydChmYWxzZSk7 CiAJfQpAQCAtMzYzOSw3ICszNzgyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkKIAkJCQl0aWxpbmdjaGFuZ2Vfc3VidGVzdCgmdCk7CiAJCX0KIAotCQlpZiAodC5mZWF0dXJl ICYgRkVBVFVSRV9QU1IpCisJCWlmICgodC5mZWF0dXJlICYgRkVBVFVSRV9QU1IpIHx8ICh0LmZl YXR1cmUgJiBGRUFUVVJFX0RSUlMpKQogCQkJaWd0X3N1YnRlc3RfZigiJXMtc2xvd2RyYXciLCBm ZWF0dXJlX3N0cih0LmZlYXR1cmUpKQogCQkJCXNsb3dfZHJhd19zdWJ0ZXN0KCZ0KTsKIAotLSAK MS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=