From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiaolin Zhang Subject: [PATCH v4 3/8] drm/i915: vgpu ppgtt update pv optimization Date: Fri, 29 Mar 2019 09:32:39 -0400 Message-ID: <1553866364-111114-4-git-send-email-xiaolin.zhang@intel.com> References: <1553866364-111114-1-git-send-email-xiaolin.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1553866364-111114-1-git-send-email-xiaolin.zhang@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-gvt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Cc: zhenyu.z.wang@intel.com, hang.yuan@intel.com, zhiyuan.lv@intel.com List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBleHRlbmRzIHZncHUgcHBndHQgZzJ2IG5vdGlmaWNhdGlvbiB0byBub3RpZnkg aG9zdApHVlQtZyBvZiBwcGd0dCB1cGRhdGUgZnJvbSBndWVzdCBpbmNsdWRpbmcgYWxsb2NfNGx2 bCwgY2xlYXJfNGx2NAphbmQgaW5zZXJ0XzRsdmwuCgpUaGVzZSB1cGRhdGVzIHVzZSB0aGUgc2hh cmVkIG1lbW9yeSBwYWdlIHRvIHBhc3Mgc3RydWN0IHB2X3BwZ3R0X3VwZGF0ZQpmcm9tIGd1ZXN0 IHRvIEdWVCB3aGljaCBpcyB1c2VkIGZvciBwdiBvcHRpbWlhdGlvbiBpbXBsZW1lYXRpb24gd2l0 aGluCmhvc3QgR1ZUIHNpZGUuCgpUaGlzIHBhdGNoIGFsc28gYWRkIG9uZSBuZXcgcHZfY2FwcyBs ZXZlbCB0byBjb250cm9sIHBwZ3R0IHVwZGF0ZS4KClVzZSBQVl9QUEdUVF9VUERBVEUgdG8gY29u dHJvbCB0aGlzIGxldmVsIG9mIHB2IG9wdGltaXphdGlvbi4KCnYwOiBSRkMKdjE6IHJlYmFzZWQK djI6IGFkZGVkIHB2IGNhbGxiYWNrcyBmb3Igdm0ue2FsbG9jYXRlX3ZhX3JhbmdlLCBpbnNlcnRf ZW50cmllcywKY2xlYXJfcmFuZ2V9IHdpdGhpbiBwcGd0dC4KdjM6IHJlYmFzZWQsIGRpc2FibGUg aHVnZSBwYWdlIHBwZ3R0IHN1cHBvcnQgd2hlbiB1c2luZyBQVk1NSU8gcHBndHQKdXBkYXRlIGR1 ZSB0byBjb21wbGV4IGFuZCBwZXJmb3JtYW5jZSBpbXBhY3QuCnY0OiBtb3ZlZCBhbGxvYy9pbnNl cnQvY2xlYXJfNGx2bCBwdiBjYWxsYmFja3MgaW50byBpOTE1X3ZncHVfcHYuYyBhbmQKYWRkZWQg YSBzaW5nbGUgaW50ZWxfdmdwdV9jb25maWdfcHZfY2FwcygpIGZvciB2Z3B1IHB2IGNhbGxiYWNr cyBzZXR1cC4KClNpZ25lZC1vZmYtYnk6IFhpYW9saW4gWmhhbmcgPHhpYW9saW4uemhhbmdAaW50 ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgIHwgIDMgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIHwgIDkgKystLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggfCAgOCArKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3B2aW5mby5oICB8ICAzICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUu YyAgICB8IDg0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdmdwdS5oICAgIHwgMTcgKysrKysrKysKIDYgZmlsZXMgY2hhbmdl ZCwgMTIwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKaW5kZXggZjZjZGQ1Zi4uYzk2YTZkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC00 ODI2LDcgKzQ4MjYsOCBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJaW50IHJldDsKIAogCS8qIFdlIG5lZWQgdG8gZmFsbGJhY2sgdG8gNEsg cGFnZXMgaWYgaG9zdCBkb2Vzbid0IHN1cHBvcnQgaHVnZSBndHQuICovCi0JaWYgKGludGVsX3Zn cHVfYWN0aXZlKGRldl9wcml2KSAmJiAhaW50ZWxfdmdwdV9oYXNfaHVnZV9ndHQoZGV2X3ByaXYp KQorCWlmICgoaW50ZWxfdmdwdV9hY3RpdmUoZGV2X3ByaXYpICYmICFpbnRlbF92Z3B1X2hhc19o dWdlX2d0dChkZXZfcHJpdikpCisJCXx8IGludGVsX3ZncHVfZW5hYmxlZF9wdl9jYXBzKGRldl9w cml2LCBQVl9QUEdUVF9VUERBVEUpKQogCQlta3dyaXRlX2RldmljZV9pbmZvKGRldl9wcml2KS0+ cGFnZV9zaXplcyA9CiAJCQlJOTE1X0dUVF9QQUdFX1NJWkVfNEs7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKaW5kZXggNzM2Yzg0NS4uODAxMTUyNyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKQEAgLTkyMyw3ICs5MjMsNyBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0 X3NldF9wbWw0ZShzdHJ1Y3QgaTkxNV9wbWw0ICpwbWw0LAogICogVGhpcyBpcyB0aGUgdG9wLWxl dmVsIHN0cnVjdHVyZSBpbiA0LWxldmVsIHBhZ2UgdGFibGVzIHVzZWQgb24gZ2VuOCsuCiAgKiBF bXB0eSBlbnRyaWVzIGFyZSBhbHdheXMgc2NyYXRjaCBwbWw0ZS4KICAqLwotc3RhdGljIHZvaWQg Z2VuOF9wcGd0dF9jbGVhcl80bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAordm9p ZCBnZW44X3BwZ3R0X2NsZWFyXzRsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJ CQkJICB1NjQgc3RhcnQsIHU2NCBsZW5ndGgpCiB7CiAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBw Z3R0ID0gaTkxNV92bV90b19wcGd0dCh2bSk7CkBAIC0xMTYyLDcgKzExNjIsNyBAQCBzdGF0aWMg dm9pZCBnZW44X3BwZ3R0X2luc2VydF9odWdlX2VudHJpZXMoc3RydWN0IGk5MTVfdm1hICp2bWEs CiAJfSB3aGlsZSAoaXRlci0+c2cpOwogfQogCi1zdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2luc2Vy dF80bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAordm9pZCBnZW44X3BwZ3R0X2lu c2VydF80bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJCSAgIHN0cnVjdCBp OTE1X3ZtYSAqdm1hLAogCQkJCSAgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwK IAkJCQkgICB1MzIgZmxhZ3MpCkBAIC0xNDQ0LDcgKzE0NDQsNyBAQCBzdGF0aWMgaW50IGdlbjhf cHBndHRfYWxsb2NfM2x2bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJCQkgICAg Jmk5MTVfdm1fdG9fcHBndHQodm0pLT5wZHAsIHN0YXJ0LCBsZW5ndGgpOwogfQogCi1zdGF0aWMg aW50IGdlbjhfcHBndHRfYWxsb2NfNGx2bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwK K2ludCBnZW44X3BwZ3R0X2FsbG9jXzRsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s CiAJCQkJIHU2NCBzdGFydCwgdTY0IGxlbmd0aCkKIHsKIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAq cHBndHQgPSBpOTE1X3ZtX3RvX3BwZ3R0KHZtKTsKQEAgLTE1NzEsNiArMTU3MSw5IEBAIHN0YXRp YyBzdHJ1Y3QgaTkxNV9od19wcGd0dCAqZ2VuOF9wcGd0dF9jcmVhdGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpCiAJCXBwZ3R0LT52bS5hbGxvY2F0ZV92YV9yYW5nZSA9IGdlbjhfcHBn dHRfYWxsb2NfNGx2bDsKIAkJcHBndHQtPnZtLmluc2VydF9lbnRyaWVzID0gZ2VuOF9wcGd0dF9p bnNlcnRfNGx2bDsKIAkJcHBndHQtPnZtLmNsZWFyX3JhbmdlID0gZ2VuOF9wcGd0dF9jbGVhcl80 bHZsOworCisJCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShpOTE1KSkKKwkJCWludGVsX3ZncHVfY29u ZmlnX3B2X2NhcHMoaTkxNSwgUFZfUFBHVFRfVVBEQVRFLCBwcGd0dCk7CiAJfSBlbHNlIHsKIAkJ ZXJyID0gX19wZHBfaW5pdCgmcHBndHQtPnZtLCAmcHBndHQtPnBkcCk7CiAJCWlmIChlcnIpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCmluZGV4IDgzZGVkOWYuLjAzY2ZmNzUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCkBAIC02MjUsNiArNjI1LDE0IEBAIGludCBnZW42 X3BwZ3R0X3BpbihzdHJ1Y3QgaTkxNV9od19wcGd0dCAqYmFzZSk7CiB2b2lkIGdlbjZfcHBndHRf dW5waW4oc3RydWN0IGk5MTVfaHdfcHBndHQgKmJhc2UpOwogdm9pZCBnZW42X3BwZ3R0X3VucGlu X2FsbChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqYmFzZSk7CiAKK3ZvaWQgZ2VuOF9wcGd0dF9jbGVh cl80bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAorCQl1NjQgc3RhcnQsIHU2NCBs ZW5ndGgpOwordm9pZCBnZW44X3BwZ3R0X2luc2VydF80bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtLAorCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKKwkJZW51bSBpOTE1X2NhY2hlX2xl dmVsIGNhY2hlX2xldmVsLCB1MzIgZmxhZ3MpOworaW50IGdlbjhfcHBndHRfYWxsb2NfNGx2bChz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKKwkJdTY0IHN0YXJ0LCB1NjQgbGVuZ3RoKTsK Kwogdm9pZCBpOTE1X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKIHZvaWQgaTkxNV9nZW1fc3VzcGVuZF9ndHRfbWFwcGluZ3Moc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaTkxNV9nZW1fcmVzdG9yZV9ndHRf bWFwcGluZ3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHZpbmZvLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3B2aW5mby5oCmluZGV4IDQ2NTdiZjcuLjI0MDhhOWQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcHZpbmZvLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9wdmluZm8uaApAQCAtNDcsNiArNDcsOSBAQCBlbnVtIHZndF9nMnZfdHlwZSB7CiAJVkdU X0cyVl9FWEVDTElTVF9DT05URVhUX0NSRUFURSwKIAlWR1RfRzJWX0VYRUNMSVNUX0NPTlRFWFRf REVTVFJPWSwKIAlWR1RfRzJWX1NIQVJFRF9QQUdFX1NFVFVQLAorCVZHVF9HMlZfUFBHVFRfTDRf QUxMT0MsCisJVkdUX0cyVl9QUEdUVF9MNF9DTEVBUiwKKwlWR1RfRzJWX1BQR1RUX0w0X0lOU0VS VCwKIAlWR1RfRzJWX01BWCwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfdmdwdS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmMKaW5kZXggMTUz MDU1Mi4uODdhMGNhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmMKQEAgLTgwLDYgKzgwLDkg QEAgdm9pZCBpOTE1X2NoZWNrX3ZncHUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCiAJZGV2X3ByaXYtPnZncHUuYWN0aXZlID0gdHJ1ZTsKIAorCS8qIGd1ZXN0IGRyaXZlciBQ ViBjYXBhYmlsaXR5ICovCisJZGV2X3ByaXYtPnZncHUucHZfY2FwcyA9IFBWX1BQR1RUX1VQREFU RTsKKwogCWlmICghaW50ZWxfdmdwdV9jaGVja19wdl9jYXBzKGRldl9wcml2KSkgewogCQlEUk1f SU5GTygiVmlydHVhbCBHUFUgZm9yIEludGVsIEdWVC1nIGRldGVjdGVkLlxuIik7CiAJCXJldHVy bjsKQEAgLTI4OSw2ICsyOTIsNjggQEAgaW50IGludGVsX3ZndF9iYWxsb29uKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqIGk5MTUgdmdwdSBQViBzdXBwb3J0IGZvciBMaW51 eAogICovCiAKK3N0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYXJfNGx2bF9wdihzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSwKKwkJCQkgIHU2NCBzdGFydCwgdTY0IGxlbmd0aCkKK3sKKwlz dHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPSBpOTE1X3ZtX3RvX3BwZ3R0KHZtKTsKKwlzdHJ1 Y3QgaTkxNV9wbWw0ICpwbWw0ID0gJnBwZ3R0LT5wbWw0OworCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHZtLT5pOTE1OworCXN0cnVjdCBwdl9wcGd0dF91cGRhdGUgKnB2X3Bw Z3R0ID0KKwkJCSZkZXZfcHJpdi0+dmdwdS5zaGFyZWRfcGFnZS0+cHZfcHBndHQ7CisJdTY0IG9y aWdfc3RhcnQgPSBzdGFydDsKKwl1NjQgb3JpZ19sZW5ndGggPSBsZW5ndGg7CisKKwlnZW44X3Bw Z3R0X2NsZWFyXzRsdmwodm0sIHN0YXJ0LCBsZW5ndGgpOworCisJcHZfcHBndHQtPnBkcCA9IHB4 X2RtYShwbWw0KTsKKwlwdl9wcGd0dC0+c3RhcnQgPSBvcmlnX3N0YXJ0OworCXB2X3BwZ3R0LT5s ZW5ndGggPSBvcmlnX2xlbmd0aDsKKwlJOTE1X1dSSVRFKHZndGlmX3JlZyhnMnZfbm90aWZ5KSwg VkdUX0cyVl9QUEdUVF9MNF9DTEVBUik7Cit9CisKK3N0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5z ZXJ0XzRsdmxfcHYoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCisJCQkJICAgc3RydWN0 IGk5MTVfdm1hICp2bWEsCisJCQkJICAgZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVs LAorCQkJCSAgIHUzMiBmbGFncykKK3sKKwlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPSBp OTE1X3ZtX3RvX3BwZ3R0KHZtKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB2bS0+aTkxNTsKKwlzdHJ1Y3QgcHZfcHBndHRfdXBkYXRlICpwdl9wcGd0dCA9CisJCQkmZGV2 X3ByaXYtPnZncHUuc2hhcmVkX3BhZ2UtPnB2X3BwZ3R0OworCisJZ2VuOF9wcGd0dF9pbnNlcnRf NGx2bCh2bSwgdm1hLCBjYWNoZV9sZXZlbCwgZmxhZ3MpOworCisJcHZfcHBndHQtPnBkcCA9IHB4 X2RtYSgmcHBndHQtPnBtbDQpOworCXB2X3BwZ3R0LT5zdGFydCA9IHZtYS0+bm9kZS5zdGFydDsK Kwlwdl9wcGd0dC0+bGVuZ3RoID0gdm1hLT5ub2RlLnNpemU7CisJcHZfcHBndHQtPmNhY2hlX2xl dmVsID0gY2FjaGVfbGV2ZWw7CisJSTkxNV9XUklURSh2Z3RpZl9yZWcoZzJ2X25vdGlmeSksIFZH VF9HMlZfUFBHVFRfTDRfSU5TRVJUKTsKK30KKworc3RhdGljIGludCBnZW44X3BwZ3R0X2FsbG9j XzRsdmxfcHYoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCisJCQkJIHU2NCBzdGFydCwg dTY0IGxlbmd0aCkKK3sKKwlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPSBpOTE1X3ZtX3Rv X3BwZ3R0KHZtKTsKKwlzdHJ1Y3QgaTkxNV9wbWw0ICpwbWw0ID0gJnBwZ3R0LT5wbWw0OworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHZtLT5pOTE1OworCXN0cnVjdCBwdl9w cGd0dF91cGRhdGUgKnB2X3BwZ3R0ID0KKwkJCSZkZXZfcHJpdi0+dmdwdS5zaGFyZWRfcGFnZS0+ cHZfcHBndHQ7CisJaW50IHJldDsKKwl1NjQgb3JpZ19zdGFydCA9IHN0YXJ0OworCXU2NCBvcmln X2xlbmd0aCA9IGxlbmd0aDsKKworCXJldCA9IGdlbjhfcHBndHRfYWxsb2NfNGx2bCh2bSwgc3Rh cnQsIGxlbmd0aCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXB2X3BwZ3R0LT5wZHAg PSBweF9kbWEocG1sNCk7CisJcHZfcHBndHQtPnN0YXJ0ID0gb3JpZ19zdGFydDsKKwlwdl9wcGd0 dC0+bGVuZ3RoID0gb3JpZ19sZW5ndGg7CisJSTkxNV9XUklURSh2Z3RpZl9yZWcoZzJ2X25vdGlm eSksIFZHVF9HMlZfUFBHVFRfTDRfQUxMT0MpOworCisJcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBz aGFyZWRfcGFnZSBzZXR1cCBmb3IgVkdQVSBQViBmZWF0dXJlcwogICovCkBAIC0zMTksNiArMzg0 LDI1IEBAIHN0YXRpYyBpbnQgaW50ZWxfdmdwdV9zZXR1cF9zaGFyZWRfcGFnZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJcmV0dXJuIDA7CiB9CiAKKy8qCisgKiBjb25maWcg Z3Vlc3QgZHJpdmVyIFBWIG9wcyBmb3IgZGlmZmVyZW50IFBWIGZlYXR1cmVzCisgKi8KK3ZvaWQg aW50ZWxfdmdwdV9jb25maWdfcHZfY2FwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCisJCWVudW0gcHZfY2FwcyBjYXAsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGk5MTVfaHdf cHBndHQgKnBwZ3R0OworCisJaWYgKCFpbnRlbF92Z3B1X2VuYWJsZWRfcHZfY2FwcyhkZXZfcHJp diwgY2FwKSkKKwkJcmV0dXJuOworCisJaWYgKGNhcCA9PSBQVl9QUEdUVF9VUERBVEUpIHsKKwkJ cHBndHQgPSAoc3RydWN0IGk5MTVfaHdfcHBndHQgKilkYXRhOworCQlwcGd0dC0+dm0uYWxsb2Nh dGVfdmFfcmFuZ2UgPSBnZW44X3BwZ3R0X2FsbG9jXzRsdmxfcHY7CisJCXBwZ3R0LT52bS5pbnNl cnRfZW50cmllcyA9IGdlbjhfcHBndHRfaW5zZXJ0XzRsdmxfcHY7CisJCXBwZ3R0LT52bS5jbGVh cl9yYW5nZSA9IGdlbjhfcHBndHRfY2xlYXJfNGx2bF9wdjsKKwl9Cit9CisKIC8qKgogICogaW50 ZWxfdmdwdV9jaGVja19wdl9jYXBzIC0gZGV0ZWN0IHZpcnR1YWwgR1BVIFBWIGNhcGFiaWxpdGll cwogICogQGRldl9wcml2OiBpOTE1IGRldmljZSBwcml2YXRlCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdw dS5oCmluZGV4IDY4MTI3ZDQuLmRmZTJlYjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfdmdwdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5oCkBA IC0yNyw2ICsyNywxMyBAQAogI2luY2x1ZGUgImk5MTVfcHZpbmZvLmgiCiAKIC8qCisgKiBkZWZp bmUgZGlmZmVyZW50IGNhcGFiaWxpdGllcyBvZiBQViBvcHRpbWl6YXRpb24KKyAqLworZW51bSBw dl9jYXBzIHsKKwlQVl9QUEdUVF9VUERBVEUgPSAweDEsCit9OworCisvKgogICogQSBzaGFyZWQg cGFnZSg0S0IpIGJldHdlZW4gZ3Z0IGFuZCBWTSwgY291bGQgYmUgYWxsb2NhdGVkIGJ5IGd1ZXN0 IGRyaXZlcgogICogb3IgYSBmaXhlZCBsb2NhdGlvbiBpbiBQQ0kgYmFyIDAgcmVnaW9uCiAgKi8K QEAgLTY1LDkgKzcyLDE5IEBAIGludGVsX3ZncHVfaGFzX3B2X2NhcHMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogCXJldHVybiBkZXZfcHJpdi0+dmdwdS5jYXBzICYgVkdUX0NB UFNfUFY7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbAoraW50ZWxfdmdwdV9lbmFibGVkX3B2X2Nh cHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQllbnVtIHB2X2NhcHMgY2Fw KQoreworCXJldHVybiBpbnRlbF92Z3B1X2FjdGl2ZShkZXZfcHJpdikgJiYgaW50ZWxfdmdwdV9o YXNfcHZfY2FwcyhkZXZfcHJpdikKKwkJCSYmIChkZXZfcHJpdi0+dmdwdS5wdl9jYXBzICYgY2Fw KTsKK30KKwogaW50IGludGVsX3ZndF9iYWxsb29uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7CiB2b2lkIGludGVsX3ZndF9kZWJhbGxvb24oc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKIAogLyogaTkxNSB2Z3B1IHB2IHJlbGF0ZWQgZnVuY3Rpb25zICovCiBi b29sIGludGVsX3ZncHVfY2hlY2tfcHZfY2FwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwordm9pZCBpbnRlbF92Z3B1X2NvbmZpZ19wdl9jYXBzKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKKwkJZW51bSBwdl9jYXBzIGNhcCwgdm9pZCAqZGF0YSk7CiAjZW5k aWYgLyogX0k5MTVfVkdQVV9IXyAqLwotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeA==