From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tina Zhang Subject: [RFC PATCH 7/7] drm/i915/gvt: Introduce HW Vblank interrupt to vGPU Date: Mon, 3 Dec 2018 15:35:22 +0800 Message-ID: <1543822522-3413-8-git-send-email-tina.zhang@intel.com> References: <1543822522-3413-1-git-send-email-tina.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1543822522-3413-1-git-send-email-tina.zhang@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Cc: intel-gfx@lists.freedesktop.org, kalyan.kondapally@intel.com, intel-gvt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Rm9yIGVhY2ggcGh5c2ljYWwgY3J0YywgR3Z0LWcgaGFzIGEga2VybmVsIHRocmVhZCB0byBnZXQg dGhlIEhXIHZibGFuawpldmVudCBvbiB0aW1lIGFuZCBpbmplY3QgdGhlIGludGVycnVwdCBldmVu dCB0byB0aGUgdkdQVXMgd2hpY2ggdGhlCmRpc3BsYXkgcGxhbmVzIG9mIHRoZSBjcnRjIGFyZSBh c3NpZ25lZCB0by4KClNpZ25lZC1vZmYtYnk6IFRpbmEgWmhhbmcgPHRpbmEuemhhbmdAaW50ZWwu Y29tPgpDYzogWmhlbnl1IFdhbmcgPHpoZW55dXdAbGludXguaW50ZWwuY29tPgpDYzogWmhpIFdh bmcgPHpoaS5hLndhbmdAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9k aXNwbGF5LmMgICB8ICAzMCArKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZGlz cGxheS5oICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYyAgICAgICB8 IDExMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Z0L2d2dC5oICAgICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9o YW5kbGVycy5jICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2ludGVycnVwdC5j IHwgIDU0ICsrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaW50ZXJy dXB0LmggfCAgIDIgKwogNyBmaWxlcyBjaGFuZ2VkLCAxOTMgaW5zZXJ0aW9ucygrKSwgMTUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9kaXNwbGF5LmMKaW5kZXggZTA2ZDhkNi4uZWVj ODMzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2Rpc3BsYXkuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZGlzcGxheS5jCkBAIC0zNTgsNyArMzU4LDcgQEAg c3RhdGljIGludCBzZXR1cF92aXJ0dWFsX2RwX21vbml0b3Ioc3RydWN0IGludGVsX3ZncHUgKnZn cHUsIGludCBwb3J0X251bSwKICAqIGVuYWJsZWQvZGlzYWJsZWQgdmlydHVhbCBwaXBlcy4KICAq CiAgKi8KLXZvaWQgaW50ZWxfZ3Z0X2NoZWNrX3ZibGFua19lbXVsYXRpb24oc3RydWN0IGludGVs X2d2dCAqZ3Z0KQordm9pZCBpbnRlbF9ndnRfY2hlY2tfdmJsYW5rX2VtdWxhdGlvbihzdHJ1Y3Qg aW50ZWxfZ3Z0ICpndnQsIGJvb2wgdXNlX2h3X3ZibGFuaykKIHsKIAlzdHJ1Y3QgaW50ZWxfZ3Z0 X2lycSAqaXJxID0gJmd2dC0+aXJxOwogCXN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1OwpAQCAtMzY5 LDI1ICszNjksMjkgQEAgdm9pZCBpbnRlbF9ndnRfY2hlY2tfdmJsYW5rX2VtdWxhdGlvbihzdHJ1 Y3QgaW50ZWxfZ3Z0ICpndnQpCiAJZm9yX2VhY2hfYWN0aXZlX3ZncHUoZ3Z0LCB2Z3B1LCBpZCkg ewogCQlmb3IgKHBpcGUgPSAwOyBwaXBlIDwgSTkxNV9NQVhfUElQRVM7IHBpcGUrKykgewogCQkJ aWYgKHBpcGVfaXNfZW5hYmxlZCh2Z3B1LCBwaXBlKSkgewotCQkJCWZvdW5kID0gdHJ1ZTsKLQkJ CQlicmVhazsKKwkJCQlpZiAodXNlX2h3X3ZibGFuaykgeworCQkJCQl3YWtlX3VwX3Byb2Nlc3Mo Z3Z0LT52YmxhbmtfdGhyZWFkW3BpcGVdKTsKKwkJCQl9IGVsc2UgeworCQkJCQlmb3VuZCA9IHRy dWU7CisJCQkJCWJyZWFrOworCQkJCX0KIAkJCX0KIAkJfQotCQlpZiAoZm91bmQpCi0JCQlicmVh azsKIAl9CiAKLQkvKiBhbGwgdGhlIHBpcGVzIGFyZSBkaXNhYmxlZCAqLwotCWlmICghZm91bmQp Ci0JCWhydGltZXJfY2FuY2VsKCZpcnEtPnZibGFua190aW1lci50aW1lcik7Ci0JZWxzZQotCQlo cnRpbWVyX3N0YXJ0KCZpcnEtPnZibGFua190aW1lci50aW1lciwKLQkJCWt0aW1lX2FkZF9ucyhr dGltZV9nZXQoKSwgaXJxLT52YmxhbmtfdGltZXIucGVyaW9kKSwKLQkJCUhSVElNRVJfTU9ERV9B QlMpOworCWlmICghdXNlX2h3X3ZibGFuaykgeworCQkvKiBhbGwgdGhlIHBpcGVzIGFyZSBkaXNh YmxlZCAqLworCQlpZiAoIWZvdW5kKQorCQkJaHJ0aW1lcl9jYW5jZWwoJmlycS0+dmJsYW5rX3Rp bWVyLnRpbWVyKTsKKwkJZWxzZQorCQkJaHJ0aW1lcl9zdGFydCgmaXJxLT52YmxhbmtfdGltZXIu dGltZXIsCisJCQkJICAgICAga3RpbWVfYWRkX25zKGt0aW1lX2dldCgpLCBpcnEtPnZibGFua190 aW1lci5wZXJpb2QpLAorCQkJCSAgICAgIEhSVElNRVJfTU9ERV9BQlMpOworCX0KIAltdXRleF91 bmxvY2soJmd2dC0+bG9jayk7CiB9CiAKLXN0YXRpYyB2b2lkIGVtdWxhdGVfdmJsYW5rX29uX3Bp cGUoc3RydWN0IGludGVsX3ZncHUgKnZncHUsIGludCBwaXBlKQordm9pZCBlbXVsYXRlX3ZibGFu a19vbl9waXBlKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LCBpbnQgcGlwZSkKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2Z3B1LT5ndnQtPmRldl9wcml2OwogCXN0cnVj dCBpbnRlbF92Z3B1X2lycSAqaXJxID0gJnZncHUtPmlycTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9kaXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZGlz cGxheS5oCmluZGV4IDVkOTI5YmIuLmUwYTg1ZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d2dC9kaXNwbGF5LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2Rpc3Bs YXkuaApAQCAtMTg3LDEyICsxODcsMTMgQEAgc3RhdGljIGlubGluZSBjaGFyICp2Z3B1X2VkaWRf c3RyKGVudW0gaW50ZWxfdmdwdV9lZGlkIGlkKQogfQogCiB2b2lkIGludGVsX2d2dF9lbXVsYXRl X3ZibGFuayhzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQpOwotdm9pZCBpbnRlbF9ndnRfY2hlY2tfdmJs YW5rX2VtdWxhdGlvbihzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQpOwordm9pZCBpbnRlbF9ndnRfY2hl Y2tfdmJsYW5rX2VtdWxhdGlvbihzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQsIGJvb2wgdXNlX2h3X3Zi bGFuayk7CiAKIGludCBpbnRlbF92Z3B1X2luaXRfZGlzcGxheShzdHJ1Y3QgaW50ZWxfdmdwdSAq dmdwdSwgdTY0IHJlc29sdXRpb24pOwogdm9pZCBpbnRlbF92Z3B1X3Jlc2V0X2Rpc3BsYXkoc3Ry dWN0IGludGVsX3ZncHUgKnZncHUpOwogdm9pZCBpbnRlbF92Z3B1X2NsZWFuX2Rpc3BsYXkoc3Ry dWN0IGludGVsX3ZncHUgKnZncHUpOwogCit2b2lkIGVtdWxhdGVfdmJsYW5rX29uX3BpcGUoc3Ry dWN0IGludGVsX3ZncHUgKnZncHUsIGludCBwaXBlKTsKIGludCBwaXBlX2lzX2VuYWJsZWQoc3Ry dWN0IGludGVsX3ZncHUgKnZncHUsIGludCBwaXBlKTsKIAogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMK aW5kZXggNzMzYTJhMC4uYTAxN2FjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Z0L2d2dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYwpAQCAtMjUwLDYg KzI1MCw5NCBAQCBzdGF0aWMgdm9pZCBpbml0X2RldmljZV9pbmZvKHN0cnVjdCBpbnRlbF9ndnQg Kmd2dCkKIAlpbmZvLT5tc2lfY2FwX29mZnNldCA9IHBkZXYtPm1zaV9jYXA7CiB9CiAKK3N0YXRp YyBpbnQgZW11bGF0ZV9jcnRjX2FfdmJsYW5rX3RocmVhZCh2b2lkICpkYXRhKQoreworCXN0cnVj dCBpbnRlbF9ndnQgKmd2dCA9IChzdHJ1Y3QgaW50ZWxfZ3Z0ICopZGF0YTsKKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gJmd2dC0+ZGV2X3ByaXYtPmRybTsKKwlzdHJ1Y3QgaW50ZWxfdmdwdSAq dmdwdTsKKwlzdHJ1Y3QgY29tcGxldGlvbiB2YmxhbmtfZG9uZSA9IGd2dC0+dmJsYW5rX2RvbmVb UElQRV9BXTsKKwlpbnQgcmV0OworCWludCBpZDsKKworCURSTV9ERUJVR19LTVMoInZibGFuayBz ZXJ2aWNlIHRocmVhZCBhIHN0YXJ0XG4iKTsKKworCXdoaWxlICgha3RocmVhZF9zaG91bGRfc3Rv cCgpKSB7CisJCWluaXRfY29tcGxldGlvbigmdmJsYW5rX2RvbmUpOworcmV0cnk6CisJCXJldCA9 IGludGVsX2d2dF9yZWdpc3Rlcl9IV192YmxhbmtfZXZlbnQoZGV2LCAmdmJsYW5rX2RvbmUsIFBJ UEVfQSk7CisJCWlmIChyZXQpIHsKKwkJCWdvdG8gcmV0cnk7CisJCX0KKworCQkvKiB3YWl0IGZv ciB0aGUgY29tcGxldGUgKi8KKwkJd2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlKCZ2 YmxhbmtfZG9uZSk7CisKKwkJLyogaW5qZWN0IHRoZSB2YmxhbmsgdG8gZ3Z0ICovCisJCWZvcl9l YWNoX2FjdGl2ZV92Z3B1KGd2dCwgdmdwdSwgaWQpCisJCQllbXVsYXRlX3ZibGFua19vbl9waXBl KHZncHUsIFBJUEVfQSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZW11bGF0 ZV9jcnRjX2JfdmJsYW5rX3RocmVhZCh2b2lkICpkYXRhKQoreworCXN0cnVjdCBpbnRlbF9ndnQg Kmd2dCA9IChzdHJ1Y3QgaW50ZWxfZ3Z0ICopZGF0YTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gJmd2dC0+ZGV2X3ByaXYtPmRybTsKKwlzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdTsKKwlzdHJ1 Y3QgY29tcGxldGlvbiB2YmxhbmtfZG9uZSA9IGd2dC0+dmJsYW5rX2RvbmVbUElQRV9CXTsKKwlp bnQgcmV0OworCWludCBpZDsKKworCURSTV9ERUJVR19LTVMoInZibGFuayBzZXJ2aWNlIHRocmVh ZCBiIHN0YXJ0XG4iKTsKKworCXdoaWxlICgha3RocmVhZF9zaG91bGRfc3RvcCgpKSB7CisJCWlu aXRfY29tcGxldGlvbigmdmJsYW5rX2RvbmUpOworcmV0cnk6CisJCXJldCA9IGludGVsX2d2dF9y ZWdpc3Rlcl9IV192YmxhbmtfZXZlbnQoZGV2LCAmdmJsYW5rX2RvbmUsIFBJUEVfQik7CisJCWlm IChyZXQpCisJCQlnb3RvIHJldHJ5OworCisJCS8qIHdhaXQgZm9yIHRoZSBjb21wbGV0ZSAqLwor CQl3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoJnZibGFua19kb25lKTsKKworCQkv KiBpbmplY3QgdGhlIHZibGFuayB0byBndnQgKi8KKwkJZm9yX2VhY2hfYWN0aXZlX3ZncHUoZ3Z0 LCB2Z3B1LCBpZCkKKwkJCWVtdWxhdGVfdmJsYW5rX29uX3BpcGUodmdwdSwgUElQRV9CKTsKKwl9 CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBlbXVsYXRlX2NydGNfY192YmxhbmtfdGhy ZWFkKHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGludGVsX2d2dCAqZ3Z0ID0gKHN0cnVjdCBpbnRl bF9ndnQgKilkYXRhOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZ3Z0LT5kZXZfcHJpdi0+ ZHJtOworCXN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1OworCXN0cnVjdCBjb21wbGV0aW9uIHZibGFu a19kb25lID0gZ3Z0LT52YmxhbmtfZG9uZVtQSVBFX0NdOworCWludCByZXQ7CisJaW50IGlkOwor CisJRFJNX0RFQlVHX0tNUygidmJsYW5rIHNlcnZpY2UgdGhyZWFkIGMgc3RhcnRcbiIpOworCisJ d2hpbGUgKCFrdGhyZWFkX3Nob3VsZF9zdG9wKCkpIHsKKwkJaW5pdF9jb21wbGV0aW9uKCZ2Ymxh bmtfZG9uZSk7CityZXRyeToKKwkJcmV0ID0gaW50ZWxfZ3Z0X3JlZ2lzdGVyX0hXX3ZibGFua19l dmVudChkZXYsICZ2YmxhbmtfZG9uZSwgUElQRV9DKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gcmV0 cnk7CisKKwkJLyogd2FpdCBmb3IgdGhlIGNvbXBsZXRlICovCisJCXdhaXRfZm9yX2NvbXBsZXRp b25faW50ZXJydXB0aWJsZSgmdmJsYW5rX2RvbmUpOworCisJCS8qIGluamVjdCB0aGUgdmJsYW5r IHRvIGd2dCAqLworCQlmb3JfZWFjaF9hY3RpdmVfdmdwdShndnQsIHZncHUsIGlkKQorCQkJZW11 bGF0ZV92Ymxhbmtfb25fcGlwZSh2Z3B1LCBQSVBFX0MpOworCX0KKworCXJldHVybiAwOworfQor CiBzdGF0aWMgaW50IGd2dF9zZXJ2aWNlX3RocmVhZCh2b2lkICpkYXRhKQogewogCXN0cnVjdCBp bnRlbF9ndnQgKmd2dCA9IChzdHJ1Y3QgaW50ZWxfZ3Z0ICopZGF0YTsKQEAgLTI4NSw2ICszNzMs OSBAQCBzdGF0aWMgaW50IGd2dF9zZXJ2aWNlX3RocmVhZCh2b2lkICpkYXRhKQogc3RhdGljIHZv aWQgY2xlYW5fc2VydmljZV90aHJlYWQoc3RydWN0IGludGVsX2d2dCAqZ3Z0KQogewogCWt0aHJl YWRfc3RvcChndnQtPnNlcnZpY2VfdGhyZWFkKTsKKwlrdGhyZWFkX3N0b3AoZ3Z0LT52Ymxhbmtf dGhyZWFkW1BJUEVfQV0pOworCWt0aHJlYWRfc3RvcChndnQtPnZibGFua190aHJlYWRbUElQRV9C XSk7CisJa3RocmVhZF9zdG9wKGd2dC0+dmJsYW5rX3RocmVhZFtQSVBFX0NdKTsKIH0KIAogc3Rh dGljIGludCBpbml0X3NlcnZpY2VfdGhyZWFkKHN0cnVjdCBpbnRlbF9ndnQgKmd2dCkKQEAgLTI5 Nyw2ICszODgsMjcgQEAgc3RhdGljIGludCBpbml0X3NlcnZpY2VfdGhyZWFkKHN0cnVjdCBpbnRl bF9ndnQgKmd2dCkKIAkJZ3Z0X2VycigiZmFpbCB0byBzdGFydCBzZXJ2aWNlIHRocmVhZC5cbiIp OwogCQlyZXR1cm4gUFRSX0VSUihndnQtPnNlcnZpY2VfdGhyZWFkKTsKIAl9CisKKwlndnQtPnZi bGFua190aHJlYWRbUElQRV9BXSA9IGt0aHJlYWRfY3JlYXRlKGVtdWxhdGVfY3J0Y19hX3ZibGFu a190aHJlYWQsCisJCQlndnQsICJlbXVsYXRlX2NydGNfYV92YmxhbmtfdGhyZWFkIik7CisJaWYg KElTX0VSUihndnQtPnZibGFua190aHJlYWRbUElQRV9BXSkpIHsKKwkJZ3Z0X2VycigiZmFpbCB0 byBzdGFydCBzZXJ2aWNlIHRocmVhZC5cbiIpOworCQlyZXR1cm4gUFRSX0VSUihndnQtPnZibGFu a190aHJlYWRbUElQRV9BXSk7CisJfQorCisJZ3Z0LT52YmxhbmtfdGhyZWFkW1BJUEVfQl0gPSBr dGhyZWFkX2NyZWF0ZShlbXVsYXRlX2NydGNfYl92YmxhbmtfdGhyZWFkLAorCQkJZ3Z0LCAiZW11 bGF0ZV9jcnRjX2JfdmJsYW5rX3RocmVhZCIpOworCWlmIChJU19FUlIoZ3Z0LT52YmxhbmtfdGhy ZWFkW1BJUEVfQl0pKSB7CisJCWd2dF9lcnIoImZhaWwgdG8gc3RhcnQgc2VydmljZSB0aHJlYWQu XG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIoZ3Z0LT52YmxhbmtfdGhyZWFkW1BJUEVfQl0pOworCX0K KworCWd2dC0+dmJsYW5rX3RocmVhZFtQSVBFX0NdID0ga3RocmVhZF9jcmVhdGUoZW11bGF0ZV9j cnRjX2NfdmJsYW5rX3RocmVhZCwKKwkJCWd2dCwgImVtdWxhdGVfY3J0Y19jX3ZibGFua190aHJl YWQiKTsKKwlpZiAoSVNfRVJSKGd2dC0+dmJsYW5rX3RocmVhZFtQSVBFX0NdKSkgeworCQlndnRf ZXJyKCJmYWlsIHRvIHN0YXJ0IHNlcnZpY2UgdGhyZWFkLlxuIik7CisJCXJldHVybiBQVFJfRVJS KGd2dC0+dmJsYW5rX3RocmVhZFtQSVBFX0NdKTsKKwl9CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d2dC9ndnQuaAppbmRleCAwYWIxMGIwLi45NjkwM2QyIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2 dC5oCkBAIC0zNTYsNiArMzU2LDkgQEAgc3RydWN0IGludGVsX2d2dCB7CiAKIAkvKiB2R1BVIHBs YW5lIGFzc2lnbm1lbnQgKi8KIAlzdHJ1Y3QgYXNzaWduZWRfcGxhbmUgYXNzaWduZWRfcGxhbmVb STkxNV9NQVhfUElQRVNdW0k5MTVfTUFYX1BMQU5FU107CisKKwlzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnZibGFua190aHJlYWRbSTkxNV9NQVhfUElQRVNdOworCXN0cnVjdCBjb21wbGV0aW9uIHZibGFu a19kb25lW0k5MTVfTUFYX1BJUEVTXTsKIH07CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVs X2d2dCAqdG9fZ3Z0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRsZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndnQvaGFuZGxlcnMuYwppbmRleCA4OWEyMmE1Li40YWQ2NjExIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaGFuZGxlcnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndnQvaGFuZGxlcnMuYwpAQCAtNDQ5LDEwICs0NDksMTIgQEAgc3RhdGljIGludCBwaXBlY29u Zl9tbWlvX3dyaXRlKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LCB1bnNpZ25lZCBpbnQgb2Zmc2V0 LAogCQl2Z3B1X3ZyZWcodmdwdSwgb2Zmc2V0KSB8PSBJOTY1X1BJUEVDT05GX0FDVElWRTsKIAll bHNlCiAJCXZncHVfdnJlZyh2Z3B1LCBvZmZzZXQpICY9IH5JOTY1X1BJUEVDT05GX0FDVElWRTsK KwogCS8qIHZncHVfbG9jayBhbHJlYWR5IGhvbGQgYnkgZW11bGF0ZSBtbWlvIHIvdyAqLwogCW11 dGV4X3VubG9jaygmdmdwdS0+dmdwdV9sb2NrKTsKLQlpbnRlbF9ndnRfY2hlY2tfdmJsYW5rX2Vt dWxhdGlvbih2Z3B1LT5ndnQpOworCWludGVsX2d2dF9jaGVja192YmxhbmtfZW11bGF0aW9uKHZn cHUtPmd2dCwgdHJ1ZSk7CiAJbXV0ZXhfbG9jaygmdmdwdS0+dmdwdV9sb2NrKTsKKwogCXJldHVy biAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaW50ZXJydXB0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaW50ZXJydXB0LmMKaW5kZXggNWRhYTIzYS4u Y2I5MmNlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2ludGVycnVwdC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9pbnRlcnJ1cHQuYwpAQCAtNjMzLDYgKzYz Myw2MCBAQCB2b2lkIGludGVsX3ZncHVfdHJpZ2dlcl92aXJ0dWFsX2V2ZW50KHN0cnVjdCBpbnRl bF92Z3B1ICp2Z3B1LAogCW9wcy0+Y2hlY2tfcGVuZGluZ19pcnEodmdwdSk7CiB9CiAKK3N0YXRp YyB2b2lkIHJlbGVhc2VfdmJsYW5rX2V2ZW50KHN0cnVjdCBjb21wbGV0aW9uICpjb21wbGV0aW9u KQoreworCTsKK30KKworaW50IGludGVsX2d2dF9yZWdpc3Rlcl9IV192YmxhbmtfZXZlbnQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgICAgIHN0cnVjdCBjb21wbGV0aW9uICp2Ymxhbmtf ZG9uZSwgaW50IHBpcGUpCit7CisJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZTsK KwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmV0 OworCisJRFJNX0RFQlVHX0tNUygiJXMgYmVnaW4gd2l0aCBwaXBlICVkLCBjb20gJXAsIGRldiAl cCIsIF9fZnVuY19fLCBwaXBlLCB2YmxhbmtfZG9uZSwgZGV2KTsKKworCWNydGMgPSBkcm1fY3J0 Y19mcm9tX2luZGV4KGRldiwgcGlwZSk7CisJaWYgKCFjcnRjKSB7CisJCURSTV9FUlJPUigiY2Fu bm90IGdldCBjcnRjICVkXG4iLCBwaXBlKTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBvdXQ7 CisJfQorCisJcmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTsKKwlpZiAocmV0KSB7CisJ CURSTV9ERUJVRygiY3J0YyAlZCBmYWlsZWQgdG8gYWNxdWlyZSB2YmxhbmsgY291bnRlciwgJWRc biIsIHBpcGUsIHJldCk7CisJCWdvdG8gb3V0OworCX0KKworCWUgPSBremFsbG9jKHNpemVvZiAq ZSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFlKSB7CisJCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7 CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KKworCS8qIGNyZWF0ZSBhIHZibGFu ayBldmVudCAqLworCWUtPmV2ZW50LmJhc2UudHlwZSA9IERSTV9FVkVOVF9WQkxBTks7CisJZS0+ ZXZlbnQuYmFzZS5sZW5ndGggPSBzaXplb2YoZS0+ZXZlbnQpOworCWUtPnBpcGUgPSBwaXBlOwor CWUtPmJhc2UuY29tcGxldGlvbiA9IHZibGFua19kb25lOworCWUtPmJhc2UuY29tcGxldGlvbl9y ZWxlYXNlID0gcmVsZWFzZV92YmxhbmtfZXZlbnQ7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2 LT5ldmVudF9sb2NrLCBmbGFncyk7CisJZS0+c2VxdWVuY2UgPSBkcm1fY3J0Y19hY2N1cmF0ZV92 YmxhbmtfY291bnQoY3J0YykgKyAxOworCisJLyogYWRkIHRoZSBldmVudCB0byB2YmxhbmsgbGlz dCAqLworCWxpc3RfYWRkX3RhaWwoJmUtPmJhc2UubGluaywgJmRldi0+dmJsYW5rX2V2ZW50X2xp c3QpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwor CisJRFJNX0RFQlVHX0tNUygiJXM6IHN1Y2Nlc3MgXG4iLCBfX2Z1bmNfXyk7CitvdXQ6CisJcmV0 dXJuIHJldDsKK30KKwogc3RhdGljIHZvaWQgaW5pdF9ldmVudHMoCiAJc3RydWN0IGludGVsX2d2 dF9pcnEgKmlycSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9pbnRl cnJ1cHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9pbnRlcnJ1cHQuaAppbmRleCA1MzEz ZmIxLi5lZDQ5MzZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaW50ZXJy dXB0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2ludGVycnVwdC5oCkBAIC0yMTMs NiArMjEzLDggQEAgc3RydWN0IGludGVsX2d2dF9pcnEgewogCiBpbnQgaW50ZWxfZ3Z0X2luaXRf aXJxKHN0cnVjdCBpbnRlbF9ndnQgKmd2dCk7CiB2b2lkIGludGVsX2d2dF9jbGVhbl9pcnEoc3Ry dWN0IGludGVsX2d2dCAqZ3Z0KTsKK2ludCBpbnRlbF9ndnRfcmVnaXN0ZXJfSFdfdmJsYW5rX2V2 ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJIHN0cnVjdCBjb21wbGV0aW9uICp2Ymxh bmtfZG9uZSwgaW50IHBpcGUpOwogCiB2b2lkIGludGVsX3ZncHVfdHJpZ2dlcl92aXJ0dWFsX2V2 ZW50KHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LAogCWVudW0gaW50ZWxfZ3Z0X2V2ZW50X3R5cGUg ZXZlbnQpOwotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=