From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Jakub=20Bartmi=C5=84ski?= Subject: [PATCH v5 2/5] drm/i915/guc: Move the pin bias value from GuC to GGTT Date: Wed, 25 Jul 2018 12:56:53 +0200 Message-ID: <20180725105656.13348-2-jakub.bartminski@intel.com> References: <20180725105656.13348-1-jakub.bartminski@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 42DB96E3CE for ; Wed, 25 Jul 2018 10:57:32 +0000 (UTC) In-Reply-To: <20180725105656.13348-1-jakub.bartminski@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 UmVtb3ZpbmcgdGhlIHBpbiBiaWFzIGZyb20gR3VDIGFsbG93cyB1cyB0byBub3QgY2hlY2sgZm9y IEd1QyBldmVyeSB0aW1lCndlIHBpbiBhIGNvbnRleHQsIHdoaWNoIGZpeGVzIHRoZSBhc3NlcnRp b24gZXJyb3Igb24gdW5yZXNvbHZlZCBHdUMKcGxhdGZvcm0gZGVmYXVsdCBpbiBtb2NrIGNvbnRl eHRzIHNlbGZ0ZXN0LgoKSXQgYWxzbyBzZWVtcyB0aGF0IHdlIHdlcmUgdXNpbmcgdW5pbml0aWFs aXplZCBXT1BDTSB2YXJpYWJsZXMgd2hlbgpzZXR0aW5nIHRoZSBHdUMgcGluIGJpYXMuIFRoZSBw aW4gYmlhcyBoYXMgdG8gYmUgc2V0IGFmdGVyIHRoZSBXT1BDTSwKYnV0IGJlZm9yZSB0aGUgY2Fs bCB0byBpOTE1X2dlbV9jb250ZXh0c19pbml0IHdoZXJlIHRoZSBmaXJzdCBjb250ZXh0cwphcmUg cGlubmVkLgoKdjI6ClRoaXMgYWxzbyBtYWtlcyBpdCBzbyB0aGF0IHRoZXJlJ3Mgbm8gbmVlZCB0 byBzZXQgR3VDIHZhcmlhYmxlcyBmcm9tCndpdGhpbiB0aGUgV09QQ00gaW5pdCBmdW5jdGlvbiBv ciB0byBtb3ZlIHRoZSBXT1BDTSBpbml0LCB3aGlsZSBrZWVwaW5nCnRoZSBjb3JyZWN0IGluaXRp YWxpemF0aW9uIG9yZGVyLiBBbHNvIGZvciBtb2NrIHRlc3RzIHRoZSBwaW4gYmlhcyBpcwpsZWZ0 IGF0IDAgYW5kIHdlIG1ha2Ugc3VyZSB0aGF0IHRoZSBwaW4gYmlhcyB3aXRoIEd1QyB3aWxsIG5v dCBiZQpzbWFsbGVyIHRoYW4gd2l0aG91dCBHdUMuCgp2MzoKQXZvaWQgdW51c2VkIGk5MTUgaW4g aW50ZWxfZ3VjX2dndHRfb2Zmc2V0IGlmIGRlYnVnIGlzIGRpc2FibGVkLgoKdjQ6ClNxdWFzaCB3 aXRoIFdPUENNIGluaXQgcmVvcmRlcmluZy4KTW92ZWQgdGhlIGk5MTVfZ2d0dF9waW5fYmlhcyBo ZWxwZXIgdG8gdGhpcyBwYXRjaCwgYW5kIG1hZGUgc29tZQpmdW5jdGlvbnMgdXNlIGl0IGluc3Rl YWQgb2YgZGlyZWN0bHkgZGVyZWZlcmVuY2luZyBpOTE1LT5nZ3R0LgoKdjU6ClNpbmNlIHdlIG5v dyBkb24ndCB1c2Ugd29wY20uZ3VjLmJhc2UgZm9yIHRoZSBwaW4gYmlhcyB0aGVyZSdzIG5vIG5l ZWQgdG8KdmFsaWRhdGUgaXQuIEl0IGFsc28gaGFzIGFscmVhZHkgYmVlbiB2ZXJpZmllZCBpbiBX T1BDTSBpbml0LgoKRml4ZXM6IGY3ZGMwMTU3ZTRiNSAoImRybS9pOTE1L3VjOiBGZXRjaCBHdUMv SHVDIGZpcm13YXJlcyBmcm9tIGd1Yy9odWMgc3BlY2lmaWMgaW5pdCIpClRlc3RjYXNlOiBpZ3Qv ZHJ2X3NlbGZ0ZXN0L21vY2tfY29udGV4dHMgI0d1QwpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBCYXJ0 bWnFhHNraSA8amFrdWIuYmFydG1pbnNraUBpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IE1pY2hhxYIgV2luaWFyc2tpIDxtaWNoYWwud2lu aWFyc2tpQGludGVsLmNvbT4KQ2M6IE1pY2hhbCBXYWpkZWN6a28gPG1pY2hhbC53YWpkZWN6a29A aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyB8 IDIyICsrKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmMgICAgIHwgMTggKysrKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5oICAgICB8ICAyICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oICAgICAg ICAgfCAgNSArKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuYyAgICAgICAgfCAz MSArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWMuaCAgICAgICAgfCAxMSArKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1 Yy5jICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Y19mdy5jICAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29wY20uaCAgICAgIHwgMTYg KysrKysrKysrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCA1NCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXggYjEw NzcwY2ZjY2QyLi5hZTI3Y2FhZDE3NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmMKQEAgLTI2NSw3ICsyNjUsNyBAQCBzdGF0aWMgdTMyIGRlZmF1bHRfZGVzY190ZW1w bGF0ZShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIH0KIAogc3RhdGljIHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICoKLV9fY3JlYXRlX2h3X2NvbnRleHQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAorX19jcmVhdGVfaHdfY29udGV4dChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSwKIAkJICAgIHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZp bGVfcHJpdikKIHsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OwpAQCAtMjc2LDE1ICsy NzYsMTUgQEAgX19jcmVhdGVfaHdfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJaWYgKGN0eCA9PSBOVUxMKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAot CXJldCA9IGFzc2lnbl9od19pZChkZXZfcHJpdiwgJmN0eC0+aHdfaWQpOworCXJldCA9IGFzc2ln bl9od19pZChpOTE1LCAmY3R4LT5od19pZCk7CiAJaWYgKHJldCkgewogCQlrZnJlZShjdHgpOwog CQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KIAogCWtyZWZfaW5pdCgmY3R4LT5yZWYpOwotCWxp c3RfYWRkX3RhaWwoJmN0eC0+bGluaywgJmRldl9wcml2LT5jb250ZXh0cy5saXN0KTsKLQljdHgt Pmk5MTUgPSBkZXZfcHJpdjsKKwlsaXN0X2FkZF90YWlsKCZjdHgtPmxpbmssICZpOTE1LT5jb250 ZXh0cy5saXN0KTsKKwljdHgtPmk5MTUgPSBpOTE1OwogCWN0eC0+c2NoZWQucHJpb3JpdHkgPSBJ OTE1X1BSSU9SSVRZX05PUk1BTDsKIAogCWZvciAobiA9IDA7IG4gPCBBUlJBWV9TSVpFKGN0eC0+ X19lbmdpbmUpOyBuKyspIHsKQEAgLTMyMiwyMiArMzIyLDE0IEBAIF9fY3JlYXRlX2h3X2NvbnRl eHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCS8qIE5COiBNYXJrIGFsbCBz bGljZXMgYXMgbmVlZGluZyBhIHJlbWFwIHNvIHRoYXQgd2hlbiB0aGUgY29udGV4dCBmaXJzdAog CSAqIGxvYWRzIGl0IHdpbGwgcmVzdG9yZSB3aGF0ZXZlciByZW1hcCBzdGF0ZSBhbHJlYWR5IGV4 aXN0cy4gSWYgdGhlcmUKIAkgKiBpcyBubyByZW1hcCBpbmZvLCBpdCB3aWxsIGJlIGEgTk9QLiAq LwotCWN0eC0+cmVtYXBfc2xpY2UgPSBBTExfTDNfU0xJQ0VTKGRldl9wcml2KTsKKwljdHgtPnJl bWFwX3NsaWNlID0gQUxMX0wzX1NMSUNFUyhpOTE1KTsKIAogCWk5MTVfZ2VtX2NvbnRleHRfc2V0 X2Jhbm5hYmxlKGN0eCk7CiAJY3R4LT5yaW5nX3NpemUgPSA0ICogUEFHRV9TSVpFOwogCWN0eC0+ ZGVzY190ZW1wbGF0ZSA9Ci0JCWRlZmF1bHRfZGVzY190ZW1wbGF0ZShkZXZfcHJpdiwgZGV2X3By aXYtPm1tLmFsaWFzaW5nX3BwZ3R0KTsKKwkJZGVmYXVsdF9kZXNjX3RlbXBsYXRlKGk5MTUsIGk5 MTUtPm1tLmFsaWFzaW5nX3BwZ3R0KTsKIAotCS8qCi0JICogR3VDIHJlcXVpcmVzIHRoZSByaW5n IHRvIGJlIHBsYWNlZCBpbiBOb24tV09QQ00gbWVtb3J5LiBJZiBHdUMgaXMgbm90Ci0JICogcHJl c2VudCBvciBub3QgaW4gdXNlIHdlIHN0aWxsIG5lZWQgYSBzbWFsbCBiaWFzIGFzIHJpbmcgd3Jh cGFyb3VuZAotCSAqIGF0IG9mZnNldCAwIHNvbWV0aW1lcyBoYW5ncy4gTm8gaWRlYSB3aHkuCi0J ICovCi0JaWYgKFVTRVNfR1VDKGRldl9wcml2KSkKLQkJY3R4LT5nZ3R0X29mZnNldF9iaWFzID0g ZGV2X3ByaXYtPmd1Yy5nZ3R0X3Bpbl9iaWFzOwotCWVsc2UKLQkJY3R4LT5nZ3R0X29mZnNldF9i aWFzID0gSTkxNV9HVFRfUEFHRV9TSVpFOworCWN0eC0+Z2d0dF9vZmZzZXRfYmlhcyA9IGk5MTUt PmdndHQucGluX2JpYXM7CiAKIAlyZXR1cm4gY3R4OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jCmluZGV4IGQwYWNlZjI5OWI5Yy4uMWY1ZDAzMzRmMGY1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYwpAQCAtMjkwMSw3ICsyOTAxLDcgQEAgdm9pZCBpOTE1X2dlbV9maW5p X2FsaWFzaW5nX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWdndHQtPnZt LnZtYV9vcHMudW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5kX3ZtYTsKIH0KIAotaW50IGk5MTVfZ2Vt X2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitpbnQgaTkxNV9n ZW1faW5pdF9nZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCS8qIExldCBH RU0gTWFuYWdlIGFsbCBvZiB0aGUgYXBlcnR1cmUuCiAJICoKQEAgLTI5MTIsMTIgKzI5MTIsMjAg QEAgaW50IGk5MTVfZ2VtX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiAJICogYXBlcnR1cmUuICBPbmUgcGFnZSBzaG91bGQgYmUgZW5vdWdoIHRvIGtlZXAgYW55 IHByZWZldGNoaW5nIGluc2lkZQogCSAqIG9mIHRoZSBhcGVydHVyZS4KIAkgKi8KLQlzdHJ1Y3Qg aTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OworCXN0cnVjdCBpOTE1X2dndHQgKmdn dHQgPSAmaTkxNS0+Z2d0dDsKIAl1bnNpZ25lZCBsb25nIGhvbGVfc3RhcnQsIGhvbGVfZW5kOwog CXN0cnVjdCBkcm1fbW1fbm9kZSAqZW50cnk7CiAJaW50IHJldDsKIAotCXJldCA9IGludGVsX3Zn dF9iYWxsb29uKGRldl9wcml2KTsKKwkvKgorCSAqIEd1QyByZXF1aXJlcyB0aGUgcmluZyB0byBi ZSBwbGFjZWQgaW4gTm9uLVdPUENNIG1lbW9yeS4gSWYgR3VDIGlzIG5vdAorCSAqIHByZXNlbnQg b3Igbm90IGluIHVzZSB3ZSBzdGlsbCBuZWVkIGEgc21hbGwgYmlhcyBhcyByaW5nIHdyYXBhcm91 bmQKKwkgKiBhdCBvZmZzZXQgMCBzb21ldGltZXMgaGFuZ3MuIE5vIGlkZWEgd2h5LgorCSAqLwor CWdndHQtPnBpbl9iaWFzID0gbWF4X3QodTMyLCBJOTE1X0dUVF9QQUdFX1NJWkUsCisJCQkgICAg ICAgaW50ZWxfd29wY21fZ3VjX3Bpbl9iaWFzKCZpOTE1LT53b3BjbSkpOworCisJcmV0ID0gaW50 ZWxfdmd0X2JhbGxvb24oaTkxNSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMjk0 MCw4ICsyOTQ4LDggQEAgaW50IGk5MTVfZ2VtX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJLyogQW5kIGZpbmFsbHkgY2xlYXIgdGhlIHJlc2VydmVkIGd1YXJk IHBhZ2UgKi8KIAlnZ3R0LT52bS5jbGVhcl9yYW5nZSgmZ2d0dC0+dm0sIGdndHQtPnZtLnRvdGFs IC0gUEFHRV9TSVpFLCBQQUdFX1NJWkUpOwogCi0JaWYgKFVTRVNfUFBHVFQoZGV2X3ByaXYpICYm ICFVU0VTX0ZVTExfUFBHVFQoZGV2X3ByaXYpKSB7Ci0JCXJldCA9IGk5MTVfZ2VtX2luaXRfYWxp YXNpbmdfcHBndHQoZGV2X3ByaXYpOworCWlmIChVU0VTX1BQR1RUKGk5MTUpICYmICFVU0VTX0ZV TExfUFBHVFQoaTkxNSkpIHsKKwkJcmV0ID0gaTkxNV9nZW1faW5pdF9hbGlhc2luZ19wcGd0dChp OTE1KTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gZXJyOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmgKaW5kZXggMTRlNjI2NTEwMTBiLi43MWU4Y2YyNGM4MDAgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5oCkBAIC0zOTYsNiArMzk2LDggQEAgc3RydWN0IGk5MTVfZ2d0dCB7 CiAKIAlpbnQgbXRycjsKIAorCXUzMiBwaW5fYmlhczsKKwogCXN0cnVjdCBkcm1fbW1fbm9kZSBl cnJvcl9jYXB0dXJlOwogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV92bWEuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgKaW5kZXggZjA2ZDY2Mzc3 MTA3Li5hYmY2MTQ0ZTMyOTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dm1hLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaApAQCAtMjA3LDYgKzIw NywxMSBAQCBzdGF0aWMgaW5saW5lIHUzMiBpOTE1X2dndHRfb2Zmc2V0KGNvbnN0IHN0cnVjdCBp OTE1X3ZtYSAqdm1hKQogCXJldHVybiBsb3dlcl8zMl9iaXRzKHZtYS0+bm9kZS5zdGFydCk7CiB9 CiAKK3N0YXRpYyBpbmxpbmUgdTMyIGk5MTVfZ2d0dF9waW5fYmlhcyhzdHJ1Y3QgaTkxNV92bWEg KnZtYSkKK3sKKwlyZXR1cm4gaTkxNV92bV90b19nZ3R0KHZtYS0+dm0pLT5waW5fYmlhczsKK30K Kwogc3RhdGljIGlubGluZSBzdHJ1Y3QgaTkxNV92bWEgKmk5MTVfdm1hX2dldChzdHJ1Y3QgaTkx NV92bWEgKnZtYSkKIHsKIAlpOTE1X2dlbV9vYmplY3RfZ2V0KHZtYS0+b2JqKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjLmMKaW5kZXggYWEyODM2OGY4YmE3Li43NDA0M2ExM2U5YmMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2d1Yy5jCkBAIC0yNyw4ICsyNyw2IEBACiAjaW5jbHVkZSAiaW50ZWxfZ3Vj X3N1Ym1pc3Npb24uaCIKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogCi1zdGF0aWMgdm9pZCBndWNf aW5pdF9nZ3R0X3Bpbl9iaWFzKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Ci0KIHN0YXRpYyB2b2lk IGdlbjhfZ3VjX3JhaXNlX2lycShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiB7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKQEAgLTE0Miw4ICsx NDAsNiBAQCBpbnQgaW50ZWxfZ3VjX2luaXRfbWlzYyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndWNfdG9faTkxNShndWMpOwogCWludCBy ZXQ7CiAKLQlndWNfaW5pdF9nZ3R0X3Bpbl9iaWFzKGd1Yyk7Ci0KIAlyZXQgPSBndWNfaW5pdF93 cShndWMpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC02MDMsMjIgKzU5OSw2IEBAIGlu dCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKICAqIHRvIERSQU0uIFRo ZSB2YWx1ZSBvZiB0aGUgR3VDIGdndHRfcGluX2JpYXMgaXMgdGhlIEd1QyBXT1BDTSBzaXplLgog ICovCiAKLS8qKgotICogZ3VjX2luaXRfZ2d0dF9waW5fYmlhcygpIC0gSW5pdGlhbGl6ZSB0aGUg R3VDIGdndHRfcGluX2JpYXMgdmFsdWUuCi0gKiBAZ3VjOiBpbnRlbF9ndWMgc3RydWN0dXJlLgot ICoKLSAqIFRoaXMgZnVuY3Rpb24gd2lsbCBjYWxjdWxhdGUgYW5kIGluaXRpYWxpemUgdGhlIGdn dHRfcGluX2JpYXMgdmFsdWUKLSAqIGJhc2VkIG9uIHRoZSBHdUMgV09QQ00gc2l6ZS4KLSAqLwot c3RhdGljIHZvaWQgZ3VjX2luaXRfZ2d0dF9waW5fYmlhcyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMp Ci17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBndWNfdG9faTkxNShndWMpOwot Ci0JR0VNX0JVR19PTighaTkxNS0+d29wY20uc2l6ZSk7Ci0KLQlndWMtPmdndHRfcGluX2JpYXMg PSBpOTE1LT53b3BjbS5ndWMuc2l6ZTsKLX0KLQogLyoqCiAgKiBpbnRlbF9ndWNfYWxsb2NhdGVf dm1hKCkgLSBBbGxvY2F0ZSBhIEdHVFQgVk1BIGZvciBHdUMgdXNhZ2UKICAqIEBndWM6CXRoZSBn dWMKQEAgLTYzNCwyMSArNjE0LDIyIEBAIHN0YXRpYyB2b2lkIGd1Y19pbml0X2dndHRfcGluX2Jp YXMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogICovCiBzdHJ1Y3QgaTkxNV92bWEgKmludGVsX2d1 Y19hbGxvY2F0ZV92bWEoc3RydWN0IGludGVsX2d1YyAqZ3VjLCB1MzIgc2l6ZSkKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKIAlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCXU2NCBmbGFn czsKIAlpbnQgcmV0OwogCi0Jb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZShkZXZfcHJpdiwg c2l6ZSk7CisJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZShpOTE1LCBzaXplKTsKIAlpZiAo SVNfRVJSKG9iaikpCiAJCXJldHVybiBFUlJfQ0FTVChvYmopOwogCi0Jdm1hID0gaTkxNV92bWFf aW5zdGFuY2Uob2JqLCAmZGV2X3ByaXYtPmdndHQudm0sIE5VTEwpOworCXZtYSA9IGk5MTVfdm1h X2luc3RhbmNlKG9iaiwgJmk5MTUtPmdndHQudm0sIE5VTEwpOwogCWlmIChJU19FUlIodm1hKSkK IAkJZ290byBlcnI7CiAKLQlyZXQgPSBpOTE1X3ZtYV9waW4odm1hLCAwLCBQQUdFX1NJWkUsCi0J CQkgICBQSU5fR0xPQkFMIHwgUElOX09GRlNFVF9CSUFTIHwgZ3VjLT5nZ3R0X3Bpbl9iaWFzKTsK KwlmbGFncyA9IFBJTl9HTE9CQUwgfCBQSU5fT0ZGU0VUX0JJQVMgfCBpOTE1X2dndHRfcGluX2Jp YXModm1hKTsKKwlyZXQgPSBpOTE1X3ZtYV9waW4odm1hLCAwLCBQQUdFX1NJWkUsIGZsYWdzKTsK IAlpZiAocmV0KSB7CiAJCXZtYSA9IEVSUl9QVFIocmV0KTsKIAkJZ290byBlcnI7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Yy5oCmluZGV4IDQxMjE5MjhhNDk1ZS4uNzUxZjMxYzNjNmM0IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWMuaApAQCAtNDksOSArNDksNiBAQCBzdHJ1Y3QgaW50ZWxfZ3VjIHsK IAlzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyBsb2c7CiAJc3RydWN0IGludGVsX2d1Y19jdCBjdDsKIAot CS8qIE9mZnNldCB3aGVyZSBOb24tV09QQ00gbWVtb3J5IHN0YXJ0cy4gKi8KLQl1MzIgZ2d0dF9w aW5fYmlhczsKLQogCS8qIExvZyBzbmFwc2hvdCBpZiBHdUMgZXJyb3JzIGR1cmluZyBsb2FkICov CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmxvYWRfZXJyX2xvZzsKIApAQCAtMTMwLDEw ICsxMjcsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGludGVsX2d1Y190b19ob3N0X2V2ZW50X2hh bmRsZXIoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogICogQHZtYTogaTkxNSBncmFwaGljcyB2aXJ0 dWFsIG1lbW9yeSBhcmVhLgogICoKICAqIEd1QyBkb2VzIG5vdCBhbGxvdyBhbnkgZ2Z4IEdHVFQg YWRkcmVzcyB0aGF0IGZhbGxzIGludG8gcmFuZ2UKLSAqIFswLCBHdUMgZ2d0dF9waW5fYmlhcyks IHdoaWNoIGlzIHJlc2VydmVkIGZvciBCb290IFJPTSwgU1JBTSBhbmQgV09QQ00uCi0gKiBDdXJy ZW50bHksIGluIG9yZGVyIHRvIGV4Y2x1ZGUgWzAsIEd1QyBnZ3R0X3Bpbl9iaWFzKSBhZGRyZXNz IHNwYWNlIGZyb20KKyAqIFswLCBnZ3R0LnBpbl9iaWFzKSwgd2hpY2ggaXMgcmVzZXJ2ZWQgZm9y IEJvb3QgUk9NLCBTUkFNIGFuZCBXT1BDTS4KKyAqIEN1cnJlbnRseSwgaW4gb3JkZXIgdG8gZXhj bHVkZSBbMCwgZ2d0dC5waW5fYmlhcykgYWRkcmVzcyBzcGFjZSBmcm9tCiAgKiBHR1RULCBhbGwg Z2Z4IG9iamVjdHMgdXNlZCBieSBHdUMgYXJlIGFsbG9jYXRlZCB3aXRoIGludGVsX2d1Y19hbGxv Y2F0ZV92bWEoKQotICogYW5kIHBpbm5lZCB3aXRoIFBJTl9PRkZTRVRfQklBUyBhbG9uZyB3aXRo IHRoZSB2YWx1ZSBvZiBHdUMgZ2d0dF9waW5fYmlhcy4KKyAqIGFuZCBwaW5uZWQgd2l0aCBQSU5f T0ZGU0VUX0JJQVMgYWxvbmcgd2l0aCB0aGUgdmFsdWUgb2YgZ2d0dC5waW5fYmlhcy4KICAqCiAg KiBSZXR1cm46IEdHVFQgb2Zmc2V0IG9mIHRoZSBAdm1hLgogICovCkBAIC0xNDIsNyArMTM5LDcg QEAgc3RhdGljIGlubGluZSB1MzIgaW50ZWxfZ3VjX2dndHRfb2Zmc2V0KHN0cnVjdCBpbnRlbF9n dWMgKmd1YywKIHsKIAl1MzIgb2Zmc2V0ID0gaTkxNV9nZ3R0X29mZnNldCh2bWEpOwogCi0JR0VN X0JVR19PTihvZmZzZXQgPCBndWMtPmdndHRfcGluX2JpYXMpOworCUdFTV9CVUdfT04ob2Zmc2V0 IDwgaTkxNV9nZ3R0X3Bpbl9iaWFzKHZtYSkpOwogCUdFTV9CVUdfT04ocmFuZ2Vfb3ZlcmZsb3dz X3QodTY0LCBvZmZzZXQsIHZtYS0+c2l6ZSwgR1VDX0dHVFRfVE9QKSk7CiAKIAlyZXR1cm4gb2Zm c2V0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWMuYwppbmRleCBmZmNhZDVmYWQ2YTcuLjM3ZWY1NDBk ZDI4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMKQEAgLTYzLDcgKzYzLDcgQEAgaW50IGlu dGVsX2h1Y19hdXRoKHN0cnVjdCBpbnRlbF9odWMgKmh1YykKIAkJcmV0dXJuIC1FTk9FWEVDOwog CiAJdm1hID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKGh1Yy0+Zncub2JqLCBOVUxMLCAwLCAw LAotCQkJCSAgICAgICBQSU5fT0ZGU0VUX0JJQVMgfCBndWMtPmdndHRfcGluX2JpYXMpOworCQkJ CSAgICAgICBQSU5fT0ZGU0VUX0JJQVMgfCBpOTE1LT5nZ3R0LnBpbl9iaWFzKTsKIAlpZiAoSVNf RVJSKHZtYSkpIHsKIAkJcmV0ID0gUFRSX0VSUih2bWEpOwogCQlEUk1fRVJST1IoIkh1QzogRmFp bGVkIHRvIHBpbiBodWMgZncgb2JqZWN0ICVkXG4iLCByZXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfdWNfZncuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3VjX2Z3LmMKaW5kZXggNmU4ZTBiNTQ2NzQzLi5mZDQ5NjQxNjA4N2MgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjX2Z3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfdWNfZncuYwpAQCAtMjIyLDcgKzIyMiw3IEBAIGludCBpbnRlbF91Y19md191cGxv YWQoc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdywKIAkJZ290byBmYWlsOwogCX0KIAotCWdndHRf cGluX2JpYXMgPSB0b19pOTE1KHVjX2Z3LT5vYmotPmJhc2UuZGV2KS0+Z3VjLmdndHRfcGluX2Jp YXM7CisJZ2d0dF9waW5fYmlhcyA9IHRvX2k5MTUodWNfZnctPm9iai0+YmFzZS5kZXYpLT5nZ3R0 LnBpbl9iaWFzOwogCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3Bpbih1Y19mdy0+b2JqLCBO VUxMLCAwLCAwLAogCQkJCSAgICAgICBQSU5fT0ZGU0VUX0JJQVMgfCBnZ3R0X3Bpbl9iaWFzKTsK IAlpZiAoSVNfRVJSKHZtYSkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3dvcGNtLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3BjbS5oCmluZGV4IDYy OTg5MTBhMzg0Yy4uMDEzMDE2NWE5Y2RkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF93b3BjbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcGNtLmgK QEAgLTcsNiArNyw4IEBACiAjaWZuZGVmIF9JTlRFTF9XT1BDTV9IXwogI2RlZmluZSBfSU5URUxf V09QQ01fSF8KIAorI2luY2x1ZGUgImk5MTVfZ2VtLmgiCisjaW5jbHVkZSAiaTkxNV91dGlscy5o IgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAKIC8qKgpAQCAtMjQsNiArMjYsMjAgQEAgc3Ry dWN0IGludGVsX3dvcGNtIHsKIAl9IGd1YzsKIH07CiAKKy8qKgorICogaW50ZWxfd29wY21fZ3Vj X3Bpbl9iaWFzKCkgLSBHZXQgdGhlIEd1QyBwaW4gYmlhcyB2YWx1ZS4KKyAqIEB3b3BjbTogcG9p bnRlciB0byBpbnRlbF93b3BjbS4KKyAqCisgKiBSZXR1cm5zOgorICogMCBpZiBHdUMgaXMgbm90 IHByZXNlbnQgb3Igbm90IGluIHVzZS4KKyAqIE90aGVyd2lzZSwgdGhlIEd1QyBwaW4gYmlhcyB2 YWx1ZSBiYXNlZCBvbiB0aGUgR3VDIFdPUENNIHNpemUuCisgKi8KK3N0YXRpYyBpbmxpbmUgdTMy IGludGVsX3dvcGNtX2d1Y19waW5fYmlhcyhzdHJ1Y3QgaW50ZWxfd29wY20gKndvcGNtKQorewor CUdFTV9CVUdfT04oIXdvcGNtLT5zaXplKTsKKwlyZXR1cm4gd29wY20tPmd1Yy5zaXplOworfQor CiB2b2lkIGludGVsX3dvcGNtX2luaXRfZWFybHkoc3RydWN0IGludGVsX3dvcGNtICp3b3BjbSk7 CiBpbnQgaW50ZWxfd29wY21faW5pdChzdHJ1Y3QgaW50ZWxfd29wY20gKndvcGNtKTsKIGludCBp bnRlbF93b3BjbV9pbml0X2h3KHN0cnVjdCBpbnRlbF93b3BjbSAqd29wY20pOwotLSAKMi4xNy4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK