From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 053/262] drm/i915: Split control of rps and rc6 Date: Thu, 17 May 2018 07:04:09 +0100 Message-ID: <20180517060738.19193-53-chris@chris-wilson.co.uk> References: <20180517060738.19193-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1C8896E673 for ; Thu, 17 May 2018 06:09:54 +0000 (UTC) In-Reply-To: <20180517060738.19193-1-chris@chris-wilson.co.uk> 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 QWxsb3cgb3Vyc2VsdmVzIHRvIGluZGl2aWR1YWxseSB0b2dnbGUgcnBzIG9yIHJjNi4gVGhpcyB3 aWxsIGJlIHVzZWQKbGF0ZXIgd2hlbiB3ZSB3YW50IHRvIGVuYWJsZSBycHMvcmM2IGF0IGRpZmZl cmVudCBwaGFzZXMgZHVyaW5nIHRoZQpkZXZpY2UgYnJpbmcgdXAuCgpXaGlsc3QgaGVyZSwgY29u dmVydCB0aGUgaW50ZWxfJHZlcmJfZ3RfcG93ZXJzYXZlIG92ZXIgdG8KaW50ZWxfZ3RfcG1fJHZl cmIgc2NoZW1lLgoKdjI6IFJlc3VycmVjdCBsbGNfcHN0YXRlLCB3ZSB3aWxsIG5lZWQgdG8gcmVz dG9yZSBzdGF0ZSBvbiByZXN1bWUuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j ICAgICAgfCAgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICB8ICAy MyArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAgNiArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3RfcG0uYyAgIHwgMTA5ICsrKysrKysrKysrKysr KysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3RfcG0uaCAgIHwgIDE4 ICsrKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspLCA2MSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCA1YzZmZTUxZWI0NWEuLjY5MTRiMDhjNjlj MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC05NDQsNiArOTQ0LDcgQEAgc3RhdGljIGlu dCBpOTE1X2RyaXZlcl9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlpbnRlbF93b3BjbV9pbml0X2Vhcmx5KCZkZXZfcHJpdi0+d29wY20pOwogCWludGVsX3Vj X2luaXRfZWFybHkoZGV2X3ByaXYpOwogCWludGVsX3BtX3NldHVwKGRldl9wcml2KTsKKwlpbnRl bF9ndF9wbV9pbml0X2Vhcmx5KGRldl9wcml2KTsKIAlpbnRlbF9pbml0X2RwaW8oZGV2X3ByaXYp OwogCWludGVsX3Bvd2VyX2RvbWFpbnNfaW5pdChkZXZfcHJpdik7CiAJaW50ZWxfaXJxX2luaXQo ZGV2X3ByaXYpOwpAQCAtMTA3Myw3ICsxMDc0LDcgQEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9p bml0X21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICovCiBzdGF0aWMg dm9pZCBpOTE1X2RyaXZlcl9jbGVhbnVwX21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogewotCWludGVsX3Nhbml0aXplX2d0X3Bvd2Vyc2F2ZShkZXZfcHJpdik7CisJaW50 ZWxfZ3RfcG1fc2FuaXRpemUoZGV2X3ByaXYpOwogCWludGVsX3VuY29yZV9maW5pKGRldl9wcml2 KTsKIAlpOTE1X21taW9fY2xlYW51cChkZXZfcHJpdik7CiAJcGNpX2Rldl9wdXQoZGV2X3ByaXYt PmJyaWRnZV9kZXYpOwpAQCAtMTE4Miw3ICsxMTgzLDcgQEAgc3RhdGljIGludCBpOTE1X2RyaXZl cl9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpbnRlbF91bmNv cmVfc2FuaXRpemUoZGV2X3ByaXYpOwogCiAJLyogQklPUyBvZnRlbiBsZWF2ZXMgUkM2IGVuYWJs ZWQsIGJ1dCBkaXNhYmxlIGl0IGZvciBodyBpbml0ICovCi0JaW50ZWxfc2FuaXRpemVfZ3RfcG93 ZXJzYXZlKGRldl9wcml2KTsKKwlpbnRlbF9ndF9wbV9zYW5pdGl6ZShkZXZfcHJpdik7CiAKIAlp bnRlbF9vcHJlZ2lvbl9zZXR1cChkZXZfcHJpdik7CiAKQEAgLTE3MjIsNyArMTcyMyw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9kcm1fcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaW50IHJl dDsKIAogCWRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJpdik7Ci0JaW50ZWxfc2Fu aXRpemVfZ3RfcG93ZXJzYXZlKGRldl9wcml2KTsKKwlpbnRlbF9ndF9wbV9zYW5pdGl6ZShkZXZf cHJpdik7CiAKIAlyZXQgPSBpOTE1X2dndHRfZW5hYmxlX2h3KGRldl9wcml2KTsKIAlpZiAocmV0 KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggYTE5YTk0YzhhYzkyLi5iMDU2YzZkNjNlMTgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMjAyLDcgKzIwMiwxMCBAQCB2b2lkIGk5MTVf Z2VtX3VucGFyayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlpZiAodW5saWtlbHko KytpOTE1LT5ndC5lcG9jaCA9PSAwKSkgLyoga2VlcCAwIGFzIGludmFsaWQgKi8KIAkJaTkxNS0+ Z3QuZXBvY2ggPSAxOwogCi0JaW50ZWxfZW5hYmxlX2d0X3Bvd2Vyc2F2ZShpOTE1KTsKKwlpbnRl bF9ndF9wbV9lbmFibGVfcnBzKGk5MTUpOworCWludGVsX2d0X3BtX2VuYWJsZV9yYzYoaTkxNSk7 CisJaW50ZWxfZ3RfcG1fZW5hYmxlX2xsYyhpOTE1KTsKKwogCWk5MTVfdXBkYXRlX2dmeF92YWwo aTkxNSk7CiAJaWYgKElOVEVMX0dFTihpOTE1KSA+PSA2KQogCQlnZW42X3Jwc19idXN5KGk5MTUp OwpAQCAtNTM5NCwxMCArNTM5NywxMiBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWdvdG8gZXJyX3VubG9jazsKIAl9CiAKKwlpbnRlbF9n dF9wbV9pbml0KGRldl9wcml2KTsKKwogCXJldCA9IGk5MTVfZ2VtX2NvbnRleHRzX2luaXQoZGV2 X3ByaXYpOwogCWlmIChyZXQpIHsKIAkJR0VNX0JVR19PTihyZXQgPT0gLUVJTyk7Ci0JCWdvdG8g ZXJyX2dndHQ7CisJCWdvdG8gZXJyX3BtOwogCX0KIAogCXJldCA9IGludGVsX2VuZ2luZXNfaW5p dChkZXZfcHJpdik7CkBAIC01NDA2LDExICs1NDExLDkgQEAgaW50IGk5MTVfZ2VtX2luaXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlnb3RvIGVycl9jb250ZXh0OwogCX0K IAotCWludGVsX2luaXRfZ3RfcG93ZXJzYXZlKGRldl9wcml2KTsKLQogCXJldCA9IGludGVsX3Vj X2luaXQoZGV2X3ByaXYpOwogCWlmIChyZXQpCi0JCWdvdG8gZXJyX3BtOworCQlnb3RvIGVycl9l bmdpbmVzOwogCiAJcmV0ID0gaTkxNV9nZW1faW5pdF9odyhkZXZfcHJpdik7CiAJaWYgKHJldCkK QEAgLTU0NTgsMTUgKzU0NjEsMTUgQEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogCWludGVsX3VjX2ZpbmlfaHcoZGV2X3ByaXYpOwogZXJyX3Vj X2luaXQ6CiAJaW50ZWxfdWNfZmluaShkZXZfcHJpdik7Ci1lcnJfcG06Ci0JaWYgKHJldCAhPSAt RUlPKSB7Ci0JCWludGVsX2NsZWFudXBfZ3RfcG93ZXJzYXZlKGRldl9wcml2KTsKK2Vycl9lbmdp bmVzOgorCWlmIChyZXQgIT0gLUVJTykKIAkJaTkxNV9nZW1fY2xlYW51cF9lbmdpbmVzKGRldl9w cml2KTsKLQl9CiBlcnJfY29udGV4dDoKIAlpZiAocmV0ICE9IC1FSU8pCiAJCWk5MTVfZ2VtX2Nv bnRleHRzX2ZpbmkoZGV2X3ByaXYpOwotZXJyX2dndHQ6CitlcnJfcG06CisJaWYgKHJldCAhPSAt RUlPKQorCQlpbnRlbF9ndF9wbV9maW5pKGRldl9wcml2KTsKIGVycl91bmxvY2s6CiAJaW50ZWxf dW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwogCW11dGV4X3Vu bG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCmluZGV4IDg0ZWY5NjY1OWI1MS4uNjU2ODhmN2M5NjQyIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xNTY4NSw3ICsxNTY4NSw5IEBAIHZvaWQgaW50ZWxf bW9kZXNldF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZmx1c2hfd29yaygmZGV2 X3ByaXYtPmF0b21pY19oZWxwZXIuZnJlZV93b3JrKTsKIAlXQVJOX09OKCFsbGlzdF9lbXB0eSgm ZGV2X3ByaXYtPmF0b21pY19oZWxwZXIuZnJlZV9saXN0KSk7CiAKLQlpbnRlbF9kaXNhYmxlX2d0 X3Bvd2Vyc2F2ZShkZXZfcHJpdik7CisJaW50ZWxfZ3RfcG1fZGlzYWJsZV9sbGMoZGV2X3ByaXYp OworCWludGVsX2d0X3BtX2Rpc2FibGVfcmM2KGRldl9wcml2KTsKKwlpbnRlbF9ndF9wbV9kaXNh YmxlX3JwcyhkZXZfcHJpdik7CiAKIAkvKgogCSAqIEludGVycnVwdHMgYW5kIHBvbGxpbmcgYXMg dGhlIGZpcnN0IHRoaW5nIHRvIGF2b2lkIGNyZWF0aW5nIGhhdm9jLgpAQCAtMTU3MTQsNyArMTU3 MTYsNyBAQCB2b2lkIGludGVsX21vZGVzZXRfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCiAJaW50ZWxfY2xlYW51cF9vdmVybGF5KGRldl9wcml2KTsKIAotCWludGVsX2NsZWFudXBf Z3RfcG93ZXJzYXZlKGRldl9wcml2KTsKKwlpbnRlbF9ndF9wbV9maW5pKGRldl9wcml2KTsKIAog CWludGVsX3RlYXJkb3duX2dtYnVzKGRldl9wcml2KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3RfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d0 X3BtLmMKaW5kZXggYjY5ZGRiNWJlM2U0Li4zNWQ3NDEwZmRmOGYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d0X3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3RfcG0uYwpAQCAtMjQwMCwxMSArMjQwMCwxNSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9p bml0X2Vtb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWRldl9wcml2LT5p cHMuY29yciA9IChsY2Z1c2UgJiBMQ0ZVU0VfSElWX01BU0spOwogfQogCi12b2lkIGludGVsX3Nh bml0aXplX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3ZvaWQg aW50ZWxfZ3RfcG1fc2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0J aTkxNS0+Z3RfcG0ucnBzLmVuYWJsZWQgPSB0cnVlOyAvKiBmb3JjZSBSUFMgZGlzYWJsaW5nICov CisJaW50ZWxfZ3RfcG1fZGlzYWJsZV9sbGMoaTkxNSk7CisKIAlpOTE1LT5ndF9wbS5yYzYuZW5h YmxlZCA9IHRydWU7IC8qIGZvcmNlIFJDNiBkaXNhYmxpbmcgKi8KLQlpbnRlbF9kaXNhYmxlX2d0 X3Bvd2Vyc2F2ZShpOTE1KTsKKwlpbnRlbF9ndF9wbV9kaXNhYmxlX3JjNihpOTE1KTsKKworCWk5 MTUtPmd0X3BtLnJwcy5lbmFibGVkID0gdHJ1ZTsgLyogZm9yY2UgUlBTIGRpc2FibGluZyAqLwor CWludGVsX2d0X3BtX2Rpc2FibGVfcnBzKGk5MTUpOwogCiAJaWYgKElOVEVMX0dFTihpOTE1KSA+ PSAxMSkKIAkJZ2VuMTFfcmVzZXRfcnBzX2ludGVycnVwdHMoaTkxNSk7CkBAIC0yNDEyLDEyICsy NDE2LDE3IEBAIHZvaWQgaW50ZWxfc2FuaXRpemVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQogCQlnZW42X3Jlc2V0X3Jwc19pbnRlcnJ1cHRzKGk5MTUpOwogfQog Ci12b2lkIGludGVsX2luaXRfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQordm9pZCBpbnRlbF9ndF9wbV9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQogewogCXN0cnVjdCBpbnRlbF9ycHMgKnJwcyA9ICZpOTE1LT5ndF9wbS5ycHM7CiAK IAltdXRleF9pbml0KCZycHMtPmxvY2spOwogCUlOSVRfV09SSygmcnBzLT53b3JrLCBpbnRlbF9y cHNfd29yayk7Cit9CisKK3ZvaWQgaW50ZWxfZ3RfcG1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSkKK3sKKwlzdHJ1Y3QgaW50ZWxfcnBzICpycHMgPSAmaTkxNS0+Z3RfcG0ucnBz OwogCiAJaWYgKEhBU19HVUNfU0NIRUQoaTkxNSkpCiAJCXJwcy0+Z3VjX2V2ZW50cyA9IEdFTjlf R1VDX1RPX0hPU1RfSU5UX0VWRU5UOwpAQCAtMjQ5NCwxOSArMjUwMyw3IEBAIHZvaWQgaW50ZWxf aW5pdF9ndF9wb3dlcnNhdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJbXV0ZXhf dW5sb2NrKCZycHMtPmxvY2spOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZW5hYmxl X2xsY19wc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0JbG9ja2RlcF9h c3NlcnRfaGVsZCgmaTkxNS0+Z3RfcG0ucnBzLmxvY2spOwotCi0JaWYgKGk5MTUtPmd0X3BtLmxs Y19wc3RhdGUuZW5hYmxlZCkKLQkJcmV0dXJuOwotCi0JZ2VuNl91cGRhdGVfcmluZ19mcmVxKGk5 MTUpOwotCi0JaTkxNS0+Z3RfcG0ubGxjX3BzdGF0ZS5lbmFibGVkID0gdHJ1ZTsKLX0KLQotc3Rh dGljIHZvaWQgaW50ZWxfZW5hYmxlX3JjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK K3N0YXRpYyB2b2lkIF9fZW5hYmxlX3JjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK IHsKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5ndF9wbS5ycHMubG9jayk7CiAKQEAgLTI1 MjcsNyArMjUyNCwxNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfcmM2KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQogCWk5MTUtPmd0X3BtLnJjNi5lbmFibGVkID0gdHJ1ZTsKIH0K IAotc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX3JwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKK3ZvaWQgaW50ZWxfZ3RfcG1fZW5hYmxlX3JjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKK3sKKwlpZiAoIUhBU19SQzYoaTkxNSkpCisJCXJldHVybjsKKworCW11dGV4X2xv Y2soJmk5MTUtPmd0X3BtLnJwcy5sb2NrKTsKKwlfX2VuYWJsZV9yYzYoaTkxNSk7CisJbXV0ZXhf dW5sb2NrKCZpOTE1LT5ndF9wbS5ycHMubG9jayk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZW5hYmxl X3JwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlzdHJ1Y3QgaW50ZWxfcnBz ICpycHMgPSAmaTkxNS0+Z3RfcG0ucnBzOwogCkBAIC0yNTYwLDM3ICsyNTY3LDM4IEBAIHN0YXRp YyB2b2lkIGludGVsX2VuYWJsZV9ycHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJ cnBzLT5lbmFibGVkID0gdHJ1ZTsKIH0KIAotdm9pZCBpbnRlbF9lbmFibGVfZ3RfcG93ZXJzYXZl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQordm9pZCBpbnRlbF9ndF9wbV9lbmFibGVf cnBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewotCS8qIFBvd2Vyc2F2aW5nIGlz IGNvbnRyb2xsZWQgYnkgdGhlIGhvc3Qgd2hlbiBpbnNpZGUgYSBWTSAqLwotCWlmIChpbnRlbF92 Z3B1X2FjdGl2ZShpOTE1KSkKKwlpZiAoIUhBU19SUFMoaTkxNSkpCiAJCXJldHVybjsKIAogCW11 dGV4X2xvY2soJmk5MTUtPmd0X3BtLnJwcy5sb2NrKTsKLQotCWlmIChIQVNfUkM2KGk5MTUpKQot CQlpbnRlbF9lbmFibGVfcmM2KGk5MTUpOwotCWlmIChIQVNfUlBTKGk5MTUpKQotCQlpbnRlbF9l bmFibGVfcnBzKGk5MTUpOwotCWlmIChIQVNfTExDKGk5MTUpKQotCQlpbnRlbF9lbmFibGVfbGxj X3BzdGF0ZShpOTE1KTsKLQorCV9fZW5hYmxlX3JwcyhpOTE1KTsKIAltdXRleF91bmxvY2soJmk5 MTUtPmd0X3BtLnJwcy5sb2NrKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGludGVsX2Rpc2Fi bGVfbGxjX3BzdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyB2b2lk IF9fZW5hYmxlX2xsYyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlsb2NrZGVw X2Fzc2VydF9oZWxkKCZpOTE1LT5ndF9wbS5ycHMubG9jayk7CiAKLQlpZiAoIWk5MTUtPmd0X3Bt LmxsY19wc3RhdGUuZW5hYmxlZCkKKwlpZiAoaTkxNS0+Z3RfcG0ubGxjX3BzdGF0ZS5lbmFibGVk KQogCQlyZXR1cm47CiAKLQkvKiBDdXJyZW50bHkgdGhlcmUgaXMgbm8gSFcgY29uZmlndXJhdGlv biB0byBiZSBkb25lIHRvIGRpc2FibGUuICovCisJZ2VuNl91cGRhdGVfcmluZ19mcmVxKGk5MTUp OworCWk5MTUtPmd0X3BtLmxsY19wc3RhdGUuZW5hYmxlZCA9IHRydWU7Cit9CiAKLQlpOTE1LT5n dF9wbS5sbGNfcHN0YXRlLmVuYWJsZWQgPSBmYWxzZTsKK3ZvaWQgaW50ZWxfZ3RfcG1fZW5hYmxl X2xsYyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlpZiAoIUhBU19MTEMoaTkx NSkpCisJCXJldHVybjsKKworCW11dGV4X2xvY2soJmk5MTUtPmd0X3BtLnJwcy5sb2NrKTsKKwlf X2VuYWJsZV9sbGMoaTkxNSk7CisJbXV0ZXhfdW5sb2NrKCZpOTE1LT5ndF9wbS5ycHMubG9jayk7 CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfcmM2KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KQorc3RhdGljIHZvaWQgX19kaXNhYmxlX3JjNihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSkKIHsKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5ndF9wbS5ycHMubG9j ayk7CiAKQEAgLTI2MDksNyArMjYxNywxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3Jj NihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlpOTE1LT5ndF9wbS5yYzYuZW5hYmxl ZCA9IGZhbHNlOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3JwcyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3ZvaWQgaW50ZWxfZ3RfcG1fZGlzYWJsZV9yYzYoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJbXV0ZXhfbG9jaygmaTkxNS0+Z3RfcG0ucnBz LmxvY2spOworCV9fZGlzYWJsZV9yYzYoaTkxNSk7CisJbXV0ZXhfdW5sb2NrKCZpOTE1LT5ndF9w bS5ycHMubG9jayk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZGlzYWJsZV9ycHMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmaTkxNS0+Z3RfcG0u cnBzLmxvY2spOwogCkBAIC0yNjMwLDE5ICsyNjQ1LDMxIEBAIHN0YXRpYyB2b2lkIGludGVsX2Rp c2FibGVfcnBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWk5MTUtPmd0X3BtLnJw cy5lbmFibGVkID0gZmFsc2U7CiB9CiAKLXZvaWQgaW50ZWxfZGlzYWJsZV9ndF9wb3dlcnNhdmUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit2b2lkIGludGVsX2d0X3BtX2Rpc2FibGVf cnBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCW11dGV4X2xvY2soJmk5MTUt Pmd0X3BtLnJwcy5sb2NrKTsKKwlfX2Rpc2FibGVfcnBzKGk5MTUpOworCW11dGV4X3VubG9jaygm aTkxNS0+Z3RfcG0ucnBzLmxvY2spOworfQorCitzdGF0aWMgdm9pZCBfX2Rpc2FibGVfbGxjKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5 MTUtPmd0X3BtLnJwcy5sb2NrKTsKIAotCWludGVsX2Rpc2FibGVfcmM2KGk5MTUpOwotCWludGVs X2Rpc2FibGVfcnBzKGk5MTUpOwotCWlmIChIQVNfTExDKGk5MTUpKQotCQlpbnRlbF9kaXNhYmxl X2xsY19wc3RhdGUoaTkxNSk7CisJaWYgKCFpOTE1LT5ndF9wbS5sbGNfcHN0YXRlLmVuYWJsZWQp CisJCXJldHVybjsKIAorCWk5MTUtPmd0X3BtLmxsY19wc3RhdGUuZW5hYmxlZCA9IGZhbHNlOwor fQorCit2b2lkIGludGVsX2d0X3BtX2Rpc2FibGVfbGxjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQoreworCW11dGV4X2xvY2soJmk5MTUtPmd0X3BtLnJwcy5sb2NrKTsKKwlfX2Rpc2Fi bGVfbGxjKGk5MTUpOwogCW11dGV4X3VubG9jaygmaTkxNS0+Z3RfcG0ucnBzLmxvY2spOwogfQog Ci12b2lkIGludGVsX2NsZWFudXBfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQordm9pZCBpbnRlbF9ndF9wbV9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQogewogCWlmIChJU19WQUxMRVlWSUVXKGk5MTUpKQogCQl2YWxsZXl2aWV3X2NsZWFudXBf Z3RfcG93ZXJzYXZlKGk5MTUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3RfcG0uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d0X3BtLmgKaW5kZXggYmQ0 MDBjOWFlZDdjLi4wZDk1YTUyYzE5NDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2d0X3BtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3RfcG0uaApA QCAtOTMsMTIgKzkzLDIwIEBAIHN0cnVjdCBpbnRlbF9ndF9wbSB7CiB2b2lkIGludGVsX2dwdV9p cHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiB2b2lkIGludGVsX2dwdV9p cHNfdGVhcmRvd24odm9pZCk7CiAKLXZvaWQgaW50ZWxfc2FuaXRpemVfZ3RfcG93ZXJzYXZlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3ZvaWQgaW50ZWxfZ3RfcG1fc2FuaXRpemUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogCi12b2lkIGludGVsX2luaXRfZ3RfcG93 ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLXZvaWQgaW50ZWxfZW5hYmxl X2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Ci12b2lkIGludGVs X2Rpc2FibGVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLXZv aWQgaW50ZWxfY2xlYW51cF9ndF9wb3dlcnNhdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpOwordm9pZCBpbnRlbF9ndF9wbV9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KTsKK3ZvaWQgaW50ZWxfZ3RfcG1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSk7Cit2b2lkIGludGVsX2d0X3BtX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpOworCit2b2lkIGludGVsX2d0X3BtX2VuYWJsZV9ycHMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpOwordm9pZCBpbnRlbF9ndF9wbV9kaXNhYmxlX3JwcyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSk7CisKK3ZvaWQgaW50ZWxfZ3RfcG1fZW5hYmxlX3JjNihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cit2b2lkIGludGVsX2d0X3BtX2Rpc2FibGVfcmM2KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKKwordm9pZCBpbnRlbF9ndF9wbV9lbmFibGVfbGxj KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3ZvaWQgaW50ZWxfZ3RfcG1fZGlzYWJs ZV9sbGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogCiB2b2lkIGludGVsX2d0X3Bt X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1MzIgcG1faWlyKTsK IAotLSAKMi4xNy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK