From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiaolin Zhang Subject: [PATCH v10 4/9] drm/i915: vgpu ppgtt update pv optimization Date: Tue, 17 Sep 2019 13:48:15 +0800 Message-ID: <1568699301-2799-5-git-send-email-xiaolin.zhang@intel.com> References: <1568699301-2799-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: <1568699301-2799-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 dHJvbCB0aGlzIGxldmVsIG9mIHB2IG9wdGltaXphdGlvbi4KCnYwOiBSRkMuCnYxOiByZWJhc2Vk Lgp2MjogYWRkZWQgcHYgY2FsbGJhY2tzIGZvciB2bS57YWxsb2NhdGVfdmFfcmFuZ2UsIGluc2Vy dF9lbnRyaWVzLApjbGVhcl9yYW5nZX0gd2l0aGluIHBwZ3R0Lgp2MzogcmViYXNlZCwgZGlzYWJs ZSBodWdlIHBhZ2UgcHBndHQgc3VwcG9ydCB3aGVuIHVzaW5nIFBWTU1JTyBwcGd0dAp1cGRhdGUg ZHVlIHRvIGNvbXBsZXggYW5kIHBlcmZvcm1hbmNlIGltcGFjdC4KdjQ6IG1vdmVkIGFsbG9jL2lu c2VydC9jbGVhcl80bHZsIHB2IGNhbGxiYWNrcyBpbnRvIGk5MTVfdmdwdV9wdi5jIGFuZAphZGRl ZCBhIHNpbmdsZSBpbnRlbF92Z3B1X2NvbmZpZ19wdl9jYXBzKCkgZm9yIHZncHUgcHYgY2FsbGJh Y2tzIHNldHVwLgp2NTogcmViYXNlLgp2NjogcmViYXNlLgp2NzogcmViYXNlLgoKU2lnbmVkLW9m Zi1ieTogWGlhb2xpbiBaaGFuZyA8eGlhb2xpbi56aGFuZ0BpbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMgfCAxMCArKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmggfCAgOCArKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYyAgICB8 IDc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfdmdwdS5oICAgIHwgMjUgKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQs IDEyMCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j CmluZGV4IDJkYTk1NDQuLjFhZGU4ZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMTMw OSw3ICsxMzA5LDggQEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogCWludCByZXQ7CiAKIAkvKiBXZSBuZWVkIHRvIGZhbGxiYWNrIHRvIDRLIHBh Z2VzIGlmIGhvc3QgZG9lc24ndCBzdXBwb3J0IGh1Z2UgZ3R0LiAqLwotCWlmIChpbnRlbF92Z3B1 X2FjdGl2ZShkZXZfcHJpdikgJiYgIWludGVsX3ZncHVfaGFzX2h1Z2VfZ3R0KGRldl9wcml2KSkK KwlpZiAoKGludGVsX3ZncHVfYWN0aXZlKGRldl9wcml2KSAmJiAhaW50ZWxfdmdwdV9oYXNfaHVn ZV9ndHQoZGV2X3ByaXYpKQorCQl8fCBpbnRlbF92Z3B1X2VuYWJsZWRfcHZfY2FwcyhkZXZfcHJp diwgUFZfUFBHVFRfVVBEQVRFKSkKIAkJbWt3cml0ZV9kZXZpY2VfaW5mbyhkZXZfcHJpdiktPnBh Z2Vfc2l6ZXMgPQogCQkJSTkxNV9HVFRfUEFHRV9TSVpFXzRLOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jCmluZGV4IGU2MmU5ZDEuLjAwYjE4N2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jCkBAIC0xMDE1LDcgKzEwMTUsNyBAQCBzdGF0aWMgdTY0IF9fZ2VuOF9wcGd0 dF9jbGVhcihzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICogY29uc3Qgdm0sCiAJcmV0dXJuIHN0 YXJ0OwogfQogCi1zdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyKHN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtLAordm9pZCBnZW44X3BwZ3R0X2NsZWFyKHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtLAogCQkJICAgICB1NjQgc3RhcnQsIHU2NCBsZW5ndGgpCiB7CiAJR0VNX0JVR19P TighSVNfQUxJR05FRChzdGFydCwgQklUX1VMTChHRU44X1BURV9TSElGVCkpKTsKQEAgLTExMjYs NyArMTEyNiw3IEBAIHN0YXRpYyBpbnQgX19nZW44X3BwZ3R0X2FsbG9jKHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKiBjb25zdCB2bSwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGdl bjhfcHBndHRfYWxsb2Moc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCitpbnQgZ2VuOF9w cGd0dF9hbGxvYyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJCSAgICB1NjQgc3Rh cnQsIHU2NCBsZW5ndGgpCiB7CiAJdTY0IGZyb207CkBAIC0xMzI2LDcgKzEzMjYsNyBAQCBzdGF0 aWMgdm9pZCBnZW44X3BwZ3R0X2luc2VydF9odWdlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCX0g d2hpbGUgKGl0ZXItPnNnKTsKIH0KIAotc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9pbnNlcnQoc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCit2b2lkIGdlbjhfcHBndHRfaW5zZXJ0KHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJICAgICAgc3RydWN0IGk5MTVfdm1hICp2bWEs CiAJCQkgICAgICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgY2FjaGVfbGV2ZWwsCiAJCQkgICAgICB1 MzIgZmxhZ3MpCkBAIC0xNTE3LDggKzE1MTcsMTAgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3BwZ3R0 ICpnZW44X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlwcGd0 dC0+dm0uYWxsb2NhdGVfdmFfcmFuZ2UgPSBnZW44X3BwZ3R0X2FsbG9jOwogCXBwZ3R0LT52bS5j bGVhcl9yYW5nZSA9IGdlbjhfcHBndHRfY2xlYXI7CiAKLQlpZiAoaW50ZWxfdmdwdV9hY3RpdmUo aTkxNSkpCisJaWYgKGludGVsX3ZncHVfYWN0aXZlKGk5MTUpKSB7CisJCWludGVsX3ZncHVfY29u ZmlnX3B2X2NhcHMoaTkxNSwgUFZfUFBHVFRfVVBEQVRFLCBwcGd0dCk7CiAJCWdlbjhfcHBndHRf bm90aWZ5X3ZndChwcGd0dCwgdHJ1ZSk7CisJfQogCiAJcHBndHQtPnZtLmNsZWFudXAgPSBnZW44 X3BwZ3R0X2NsZWFudXA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKaW5kZXggOGZk MjIzNC4uZjU1MzZiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKQEAgLTU4OCw2 ICs1ODgsMTQgQEAgc3RhdGljIGlubGluZSB2b2lkIGk5MTVfdm1fcHV0KHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtKQogdm9pZCBnZW42X3BwZ3R0X3VucGluKHN0cnVjdCBpOTE1X3BwZ3R0 ICpiYXNlKTsKIHZvaWQgZ2VuNl9wcGd0dF91bnBpbl9hbGwoc3RydWN0IGk5MTVfcHBndHQgKmJh c2UpOwogCit2b2lkIGdlbjhfcHBndHRfY2xlYXIoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0sCisJCXU2NCBzdGFydCwgdTY0IGxlbmd0aCk7Cit2b2lkIGdlbjhfcHBndHRfaW5zZXJ0KHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAorCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKKwkJ ZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLCB1MzIgZmxhZ3MpOworaW50IGdlbjhf cHBndHRfYWxsb2Moc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCisJCXU2NCBzdGFydCwg dTY0IGxlbmd0aCk7CisKIHZvaWQgaTkxNV9nZW1fc3VzcGVuZF9ndHRfbWFwcGluZ3Moc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaTkxNV9nZW1fcmVzdG9yZV9ndHRf bWFwcGluZ3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3ZncHUuYwppbmRleCA2ZTI5YTUyLi5lNDU4ODkyIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZncHUuYwpAQCAtOTYsNiArOTYsOSBAQCB2b2lkIGk5MTVfZGV0ZWN0X3ZncHUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWRldl9wcml2LT52Z3B1LmFjdGl2ZSA9IHRydWU7 CiAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPnZncHUubG9jayk7CiAKKwkvKiBndWVzdCBkcml2ZXIg UFYgY2FwYWJpbGl0eSAqLworCWRldl9wcml2LT52Z3B1LnB2X2NhcHMgPSBQVl9QUEdUVF9VUERB VEU7CisKIAlpZiAoIWludGVsX3ZncHVfY2hlY2tfcHZfY2FwcyhkZXZfcHJpdiwgc2hhcmVkX2Fy ZWEpKSB7CiAJCURSTV9JTkZPKCJWaXJ0dWFsIEdQVSBmb3IgSW50ZWwgR1ZULWcgZGV0ZWN0ZWQu XG4iKTsKIAkJZ290byBvdXQ7CkBAIC0zMjIsNiArMzI1LDgyIEBAIGludCBpbnRlbF92Z3RfYmFs bG9vbihzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogICogaTkxNSB2Z3B1IFBWIHN1cHBvcnQgZm9y IExpbnV4CiAgKi8KIAorc3RhdGljIGludCB2Z3B1X3BwZ3R0X3B2X3VwZGF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCXUzMiBhY3Rpb24sIHU2NCBwZHAsIHU2NCBzdGFy dCwgdTY0IGxlbmd0aCwgdTMyIGNhY2hlX2xldmVsKQoreworCXUzMiBkYXRhWzhdOworCisJZGF0 YVswXSA9IGFjdGlvbjsKKwlkYXRhWzFdID0gbG93ZXJfMzJfYml0cyhwZHApOworCWRhdGFbMl0g PSB1cHBlcl8zMl9iaXRzKHBkcCk7CisJZGF0YVszXSA9IGxvd2VyXzMyX2JpdHMoc3RhcnQpOwor CWRhdGFbNF0gPSB1cHBlcl8zMl9iaXRzKHN0YXJ0KTsKKwlkYXRhWzVdID0gbG93ZXJfMzJfYml0 cyhsZW5ndGgpOworCWRhdGFbNl0gPSB1cHBlcl8zMl9iaXRzKGxlbmd0aCk7CisJZGF0YVs3XSA9 IGNhY2hlX2xldmVsOworCisJcmV0dXJuIGludGVsX3ZncHVfcHZfc2VuZChkZXZfcHJpdiwgZGF0 YSwgQVJSQVlfU0laRShkYXRhKSk7Cit9CisKK3N0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYXJf NGx2bF9wdihzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKKwkJdTY0IHN0YXJ0LCB1NjQg bGVuZ3RoKQoreworCXN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dCA9IGk5MTVfdm1fdG9fcHBndHQo dm0pOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHZtLT5pOTE1OworCisJ Z2VuOF9wcGd0dF9jbGVhcih2bSwgc3RhcnQsIGxlbmd0aCk7CisJdmdwdV9wcGd0dF9wdl91cGRh dGUoZGV2X3ByaXYsIFBWX0FDVElPTl9QUEdUVF9MNF9DTEVBUiwKKwkJcHhfZG1hKHBwZ3R0LT5w ZCksIHN0YXJ0LCBsZW5ndGgsIDApOworfQorCitzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2luc2Vy dF80bHZsX3B2KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAorCQlzdHJ1Y3QgaTkxNV92 bWEgKnZtYSwKKwkJZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLCB1MzIgZmxhZ3Mp Cit7CisJc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0ID0gaTkxNV92bV90b19wcGd0dCh2bSk7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdm0tPmk5MTU7CisJdTY0IHN0YXJ0 ID0gdm1hLT5ub2RlLnN0YXJ0OworCXU2NCBsZW5ndGggPSB2bWEtPm5vZGUuc2l6ZTsKKworCWdl bjhfcHBndHRfaW5zZXJ0KHZtLCB2bWEsIGNhY2hlX2xldmVsLCBmbGFncyk7CisJdmdwdV9wcGd0 dF9wdl91cGRhdGUoZGV2X3ByaXYsIFBWX0FDVElPTl9QUEdUVF9MNF9JTlNFUlQsCisJCXB4X2Rt YShwcGd0dC0+cGQpLCBzdGFydCwgbGVuZ3RoLCBjYWNoZV9sZXZlbCk7Cit9CisKK3N0YXRpYyBp bnQgZ2VuOF9wcGd0dF9hbGxvY180bHZsX3B2KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt LAorCQl1NjQgc3RhcnQsIHU2NCBsZW5ndGgpCit7CisJc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0 ID0gaTkxNV92bV90b19wcGd0dCh2bSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdm0tPmk5MTU7CisJaW50IHJldDsKKworCXJldCA9IGdlbjhfcHBndHRfYWxsb2Modm0s IHN0YXJ0LCBsZW5ndGgpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gdmdw dV9wcGd0dF9wdl91cGRhdGUoZGV2X3ByaXYsIFBWX0FDVElPTl9QUEdUVF9MNF9BTExPQywKKwkJ cHhfZG1hKHBwZ3R0LT5wZCksIHN0YXJ0LCBsZW5ndGgsIDApOworfQorCisvKgorICogY29uZmln IGd1ZXN0IGRyaXZlciBQViBvcHMgZm9yIGRpZmZlcmVudCBQViBmZWF0dXJlcworICovCit2b2lk IGludGVsX3ZncHVfY29uZmlnX3B2X2NhcHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAorCQllbnVtIHB2X2NhcHMgY2FwLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBpOTE1X3Bw Z3R0ICpwcGd0dDsKKworCWlmICghaW50ZWxfdmdwdV9lbmFibGVkX3B2X2NhcHMoZGV2X3ByaXYs IGNhcCkpCisJCXJldHVybjsKKworCWlmIChjYXAgPT0gUFZfUFBHVFRfVVBEQVRFKSB7CisJCXBw Z3R0ID0gKHN0cnVjdCBpOTE1X3BwZ3R0ICopZGF0YTsKKwkJcHBndHQtPnZtLmFsbG9jYXRlX3Zh X3JhbmdlID0gZ2VuOF9wcGd0dF9hbGxvY180bHZsX3B2OworCQlwcGd0dC0+dm0uaW5zZXJ0X2Vu dHJpZXMgPSBnZW44X3BwZ3R0X2luc2VydF80bHZsX3B2OworCQlwcGd0dC0+dm0uY2xlYXJfcmFu Z2UgPSBnZW44X3BwZ3R0X2NsZWFyXzRsdmxfcHY7CisJfQorfQorCiAvKioKICAqIHdhaXRfZm9y X2Rlc2NfdXBkYXRlIC0gV2FpdCBmb3IgdGhlIGNvbW1hbmQgYnVmZmVyIGRlc2NyaXB0b3IgdXBk YXRlLgogICogQGRlc2M6CWJ1ZmZlciBkZXNjcmlwdG9yCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3ZncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5o CmluZGV4IGM0OTRiZWIuLmIwZmVlNWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfdmdwdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5oCkBAIC0z Myw2ICszMywyMSBAQAogI2RlZmluZSBQVl9DTURfT0ZGCQkoUEFHRV9TSVpFLzIpCiAKIC8qCisg KiBkZWZpbmUgZGlmZmVyZW50IGNhcGFiaWxpdGllcyBvZiBQViBvcHRpbWl6YXRpb24KKyAqLwor ZW51bSBwdl9jYXBzIHsKKwlQVl9QUEdUVF9VUERBVEUgPSAweDEsCit9OworCisvKiBQViBhY3Rp b25zICovCitlbnVtIGludGVsX3ZncHVfcHZfYWN0aW9uIHsKKwlQVl9BQ1RJT05fREVGQVVMVCA9 IDB4MCwKKwlQVl9BQ1RJT05fUFBHVFRfTDRfQUxMT0MsCisJUFZfQUNUSU9OX1BQR1RUX0w0X0NM RUFSLAorCVBWX0FDVElPTl9QUEdUVF9MNF9JTlNFUlQsCit9OworCisvKgogICogQSBzaGFyZWQg cGFnZSg0S0IpIGJldHdlZW4gZ3Z0IGFuZCBWTSwgY291bGQgYmUgYWxsb2NhdGVkIGJ5IGd1ZXN0 IGRyaXZlcgogICogb3IgYSBmaXhlZCBsb2NhdGlvbiBpbiBQQ0kgYmFyIDAgcmVnaW9uCiAgKi8K QEAgLTEyMCw2ICsxMzUsMTQgQEAgc3RydWN0IGk5MTVfdmlydHVhbF9ncHVfcHYgewogCXJldHVy biBkZXZfcHJpdi0+dmdwdS5jYXBzICYgVkdUX0NBUFNfUFY7CiB9CiAKK3N0YXRpYyBpbmxpbmUg Ym9vbAoraW50ZWxfdmdwdV9lbmFibGVkX3B2X2NhcHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAorCQllbnVtIHB2X2NhcHMgY2FwKQoreworCXJldHVybiAoZGV2X3ByaXYtPnZn cHUuYWN0aXZlKSAmJiBpbnRlbF92Z3B1X2hhc19wdl9jYXBzKGRldl9wcml2KQorCQkJJiYgKGRl dl9wcml2LT52Z3B1LnB2X2NhcHMgJiBjYXApOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQKIGlu dGVsX3ZncHVfcHZfbm90aWZ5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsK QEAgLTEzOSw0ICsxNjIsNiBAQCBzdHJ1Y3QgaTkxNV92aXJ0dWFsX2dwdV9wdiB7CiAvKiBpOTE1 IHZncHUgcHYgcmVsYXRlZCBmdW5jdGlvbnMgKi8KIGJvb2wgaW50ZWxfdmdwdV9jaGVja19wdl9j YXBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJdm9pZCBfX2lvbWVtICpz aGFyZWRfYXJlYSk7Cit2b2lkIGludGVsX3ZncHVfY29uZmlnX3B2X2NhcHMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQllbnVtIHB2X2NhcHMgY2FwLCB2b2lkICpkYXRhKTsK ICNlbmRpZiAvKiBfSTkxNV9WR1BVX0hfICovCi0tIAoxLjguMy4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=