From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiaolin Zhang Subject: [PATCH v7 3/9] drm/i915: vgpu pv command buffer support Date: Mon, 8 Jul 2019 09:35:16 +0800 Message-ID: <1562549722-27046-4-git-send-email-xiaolin.zhang@intel.com> References: <1562549722-27046-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: <1562549722-27046-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-gfx@lists.freedesktop.org Cc: intel-gvt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org YmFzZWQgb24gdGhlIHNoYXJlZCBtZW1vcnkgc2V0dXAgYmV0d2VlbiBndWVzdCBhbmQgR1ZULCB0 aGUgc2ltcGxlCnB2IGNvbW1hbmQgYnVmZmVyIHJpbmcgd2FzIGludHJvZHVjZWQgYnkgdGhpcyBw YXRjaCB1c2VkIHRvIHBlcmZvcm0KZ3Vlc3QtMi1ndnQgc2luZ2xlIGRpcmVjdGlvbiBjb21tdW5p Y2F0aW9uLgoKdjE6IGluaXRpYWwgYWRkZWQgdG8gYWRkcmVzcyBpOTE1IFBWIHY2IHBhdGNoIHNl dCBjb21tZW50LgoKU2lnbmVkLW9mZi1ieTogWGlhb2xpbiBaaGFuZyA8eGlhb2xpbi56aGFuZ0Bp bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wdmluZm8uaCB8ICAgMSAr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYyAgIHwgMTkzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5o ICAgfCAgNjYgKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyNjAgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHZpbmZvLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3B2aW5mby5oCmluZGV4IDNjNjM2MDMuLmRiOWVlYmIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHZpbmZvLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wdmluZm8uaApAQCAtNDksNiArNDksNyBAQCBlbnVtIHZndF9n MnZfdHlwZSB7CiAJVkdUX0cyVl9FWEVDTElTVF9DT05URVhUX0NSRUFURSwKIAlWR1RfRzJWX0VY RUNMSVNUX0NPTlRFWFRfREVTVFJPWSwKIAlWR1RfRzJWX1NIQVJFRF9QQUdFX1NFVFVQLAorCVZH VF9HMlZfUFZfU0VORF9UUklHR0VSLAogCVZHVF9HMlZfTUFYLAogfTsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3ZncHUuYwppbmRleCA5NDAxNzFhLi5hY2JlM2EwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3ZncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Zn cHUuYwpAQCAtMzEzLDYgKzMxMywxODcgQEAgaW50IGludGVsX3ZndF9iYWxsb29uKHN0cnVjdCBp OTE1X2dndHQgKmdndHQpCiAgKiBpOTE1IHZncHUgUFYgc3VwcG9ydCBmb3IgTGludXgKICAqLwog CisvKioKKyAqIHdhaXRfZm9yX2Rlc2NfdXBkYXRlIC0gV2FpdCBmb3IgdGhlIGNvbW1hbmQgYnVm ZmVyIGRlc2NyaXB0b3IgdXBkYXRlLgorICogQGRlc2M6CWJ1ZmZlciBkZXNjcmlwdG9yCisgKiBA ZmVuY2U6CXJlc3BvbnNlIGZlbmNlCisgKiBAc3RhdHVzOglwbGFjZWhvbGRlciBmb3Igc3RhdHVz CisgKgorICogR1ZUIHdpbGwgdXBkYXRlIGNvbW1hbmQgYnVmZmVyIGRlc2NyaXB0b3Igd2l0aCBu ZXcgZmVuY2UgYW5kIHN0YXR1cworICogYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgY29tbWFuZCBpZGVu dGlmaWVkIGJ5IHRoZSBmZW5jZS4gV2FpdCBmb3IKKyAqIHNwZWNpZmllZCBmZW5jZSBhbmQgdGhl biByZWFkIGZyb20gdGhlIGRlc2NyaXB0b3Igc3RhdHVzIG9mIHRoZQorICogY29tbWFuZC4KKyAq CisgKiBSZXR1cm46CisgKiAqCTAgcmVzcG9uc2UgcmVjZWl2ZWQgKHN0YXR1cyBpcyB2YWxpZCkK KyAqICoJLUVUSU1FRE9VVCBubyByZXNwb25zZSB3aXRoaW4gaGFyZGNvZGVkIHRpbWVvdXQKKyAq ICoJLUVQUk9UTyBubyByZXNwb25zZSwgQ1QgYnVmZmVyIGlzIGluIGVycm9yCisgKi8KK3N0YXRp YyBpbnQgd2FpdF9mb3JfZGVzY191cGRhdGUoc3RydWN0IHZncHVfcHZfY3RfYnVmZmVyX2Rlc2Mg KmRlc2MsCisJCXUzMiBmZW5jZSwgdTMyICpzdGF0dXMpCit7CisJaW50IGVycjsKKworI2RlZmlu ZSBkb25lIChSRUFEX09OQ0UoZGVzYy0+ZmVuY2UpID09IGZlbmNlKQorCWVyciA9IHdhaXRfZm9y X3VzKGRvbmUsIDUpOworCWlmIChlcnIpCisJCWVyciA9IHdhaXRfZm9yKGRvbmUsIDEwKTsKKyN1 bmRlZiBkb25lCisKKwlpZiAodW5saWtlbHkoZXJyKSkgeworCQlEUk1fRVJST1IoIkNUOiBmZW5j ZSAldSBmYWlsZWQ7IHJlcG9ydGVkIGZlbmNlPSV1XG4iLAorCQkJCWZlbmNlLCBkZXNjLT5mZW5j ZSk7CisJfQorCisJKnN0YXR1cyA9IGRlc2MtPnN0YXR1czsKKwlyZXR1cm4gZXJyOworfQorCisv KioKKyAqIERPQzogQ1RCIEd1ZXN0IHRvIEdWVCByZXF1ZXN0CisgKgorICogRm9ybWF0IG9mIHRo ZSBDVEIgR3Vlc3QgdG8gR1ZUIHJlcXVlc3QgbWVzc2FnZSBpcyBhcyBmb2xsb3dzOjoKKyAqCisg KiAgICAgICstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKworICogICAgICB8ICAgbXNnWzBdICAgfCAgIFsxXSAgIHwgICBbMl0gICB8ICAgLi4uICAg fCAgW24tMV0gIHwKKyAqICAgICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rCisgKiAgICAgIHwgICBNRVNTQUdFICB8ICAgICAgIE1FU1NBR0Ug UEFZTE9BRCAgICAgICAgICAgICAgICAgfAorICogICAgICArICAgSEVBREVSICAgKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKKyAqICAgICAgfCAgICAgICAgICAgIHwg ICAgMCAgICB8ICAgIDEgICAgfCAgIC4uLiAgIHwgICAgbiAgICB8CisgKiAgICAgICs9PT09PT09 PT09PT0rPT09PT09PT09Kz09PT09PT09PSs9PT09PT09PT0rPT09PT09PT09KworICogICAgICB8 ICBsZW4gPj0gMSAgfCAgRkVOQ0UgIHwgICAgIHJlcXVlc3Qgc3BlY2lmaWMgZGF0YSAgIHwKKyAq ICAgICAgKy0tLS0tLSstLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rCisgKgorICogICAgICAgICAgICAgICAgICAgXi0tLS0tLS0tLS0tLS0tLS0tbGVuLS0tLS0t LS0tLS0tLS0tLS0tLV4KKyAqLworc3RhdGljIGludCBwdl9jb21tYW5kX2J1ZmZlcl93cml0ZShz dHJ1Y3QgaTkxNV92aXJ0dWFsX2dwdV9wdiAqcHYsCisJCWNvbnN0IHUzMiAqYWN0aW9uLCB1MzIg bGVuIC8qIGluIGR3b3JkcyAqLywgdTMyIGZlbmNlKQoreworCXN0cnVjdCB2Z3B1X3B2X2N0X2J1 ZmZlcl9kZXNjICpkZXNjID0gcHYtPmN0Yi5kZXNjOworCXUzMiBoZWFkID0gZGVzYy0+aGVhZCAv IDQ7CS8qIGluIGR3b3JkcyAqLworCXUzMiB0YWlsID0gZGVzYy0+dGFpbCAvIDQ7CS8qIGluIGR3 b3JkcyAqLworCXUzMiBzaXplID0gZGVzYy0+c2l6ZSAvIDQ7CS8qIGluIGR3b3JkcyAqLworCXUz MiB1c2VkOwkJCS8qIGluIGR3b3JkcyAqLworCXUzMiBoZWFkZXI7CisJdTMyICpjbWRzID0gcHYt PmN0Yi5jbWRzOworCXVuc2lnbmVkIGludCBpOworCisJR0VNX0JVR19PTihkZXNjLT5zaXplICUg NCk7CisJR0VNX0JVR19PTihkZXNjLT5oZWFkICUgNCk7CisJR0VNX0JVR19PTihkZXNjLT50YWls ICUgNCk7CisJR0VNX0JVR19PTih0YWlsID49IHNpemUpOworCisJLyoKKwkgKiB0YWlsID09IGhl YWQgY29uZGl0aW9uIGluZGljYXRlcyBlbXB0eS4KKwkgKi8KKwlpZiAodGFpbCA8IGhlYWQpCisJ CXVzZWQgPSAoc2l6ZSAtIGhlYWQpICsgdGFpbDsKKwllbHNlCisJCXVzZWQgPSB0YWlsIC0gaGVh ZDsKKworCS8qIG1ha2Ugc3VyZSB0aGVyZSBpcyBhIHNwYWNlIGluY2x1ZGluZyBleHRyYSBkdyBm b3IgdGhlIGZlbmNlICovCisJaWYgKHVubGlrZWx5KHVzZWQgKyBsZW4gKyAxID49IHNpemUpKQor CQlyZXR1cm4gLUVOT1NQQzsKKworCS8qCisJICogV3JpdGUgdGhlIG1lc3NhZ2UuIFRoZSBmb3Jt YXQgaXMgdGhlIGZvbGxvd2luZzoKKwkgKiBEVzA6IGhlYWRlciAoaW5jbHVkaW5nIGFjdGlvbiBj b2RlKQorCSAqIERXMTogZmVuY2UKKwkgKiBEVzIrOiBhY3Rpb24gZGF0YQorCSAqLworCWhlYWRl ciA9IChsZW4gPDwgUFZfQ1RfTVNHX0xFTl9TSElGVCkgfAorCQkgKFBWX0NUX01TR19XUklURV9G RU5DRV9UT19ERVNDKSB8CisJCSAoYWN0aW9uWzBdIDw8IFBWX0NUX01TR19BQ1RJT05fU0hJRlQp OworCisJY21kc1t0YWlsXSA9IGhlYWRlcjsKKwl0YWlsID0gKHRhaWwgKyAxKSAlIHNpemU7CisK KwljbWRzW3RhaWxdID0gZmVuY2U7CisJdGFpbCA9ICh0YWlsICsgMSkgJSBzaXplOworCisJZm9y IChpID0gMTsgaSA8IGxlbjsgaSsrKSB7CisJCWNtZHNbdGFpbF0gPSBhY3Rpb25baV07CisJCXRh aWwgPSAodGFpbCArIDEpICUgc2l6ZTsKKwl9CisKKwkvKiBub3cgdXBkYXRlIGRlc2MgdGFpbCAo YmFjayBpbiBieXRlcykgKi8KKwlkZXNjLT50YWlsID0gdGFpbCAqIDQ7CisJR0VNX0JVR19PTihk ZXNjLT50YWlsID4gZGVzYy0+c2l6ZSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHUzMiBw dl9nZXRfbmV4dF9mZW5jZShzdHJ1Y3QgaTkxNV92aXJ0dWFsX2dwdV9wdiAqcHYpCit7CisJLyog Rm9yIG5vdyBpdCdzIHRyaXZpYWwgKi8KKwlyZXR1cm4gKytwdi0+bmV4dF9mZW5jZTsKK30KKwor c3RhdGljIGludCBwdl9zZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJ Y29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4sIHUzMiAqc3RhdHVzKQoreworCXN0cnVjdCBpOTE1 X3ZpcnR1YWxfZ3B1ICp2Z3B1ID0gJmRldl9wcml2LT52Z3B1OworCXN0cnVjdCBpOTE1X3ZpcnR1 YWxfZ3B1X3B2ICpwdiA9IHZncHUtPnB2OworCisJc3RydWN0IHZncHVfcHZfY3RfYnVmZmVyX2Rl c2MgKmRlc2MgPSBwdi0+Y3RiLmRlc2M7CisKKwl1MzIgZmVuY2U7CisJaW50IGVycjsKKworCUdF TV9CVUdfT04oIXB2LT5lbmFibGVkKTsKKwlHRU1fQlVHX09OKCFsZW4pOworCUdFTV9CVUdfT04o bGVuICYgflBWX0NUX01TR19MRU5fTUFTSyk7CisKKwlmZW5jZSA9IHB2X2dldF9uZXh0X2ZlbmNl KHB2KTsKKwllcnIgPSBwdl9jb21tYW5kX2J1ZmZlcl93cml0ZShwdiwgYWN0aW9uLCBsZW4sIGZl bmNlKTsKKwlpZiAodW5saWtlbHkoZXJyKSkKKwkJZ290byB1bmxpbms7CisKKwlpbnRlbF92Z3B1 X3B2X25vdGlmeShkZXZfcHJpdik7CisKKwllcnIgPSB3YWl0X2Zvcl9kZXNjX3VwZGF0ZShkZXNj LCBmZW5jZSwgc3RhdHVzKTsKKwlpZiAodW5saWtlbHkoZXJyKSkKKwkJZ290byB1bmxpbms7CisK KwlpZiAoKCpzdGF0dXMpKSB7CisJCWVyciA9IC1FSU87CisJCWdvdG8gdW5saW5rOworCX0KKwor CWVyciA9ICgqc3RhdHVzKTsKK3VubGluazoKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50 IGludGVsX3ZncHVfcHZfc2VuZF9jb21tYW5kX2J1ZmZlcigKKwkJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAorCQl1MzIgKmFjdGlvbiwgdTMyIGxlbikKK3sKKwlzdHJ1Y3QgaTkx NV92aXJ0dWFsX2dwdSAqdmdwdSA9ICZkZXZfcHJpdi0+dmdwdTsKKworCXUzMiBzdGF0dXMgPSB+ MDsgLyogdW5kZWZpbmVkICovCisJaW50IHJldDsKKworCW11dGV4X2xvY2soJnZncHUtPnB2LT5z ZW5kX211dGV4KTsKKworCXJldCA9IHB2X3NlbmQoZGV2X3ByaXYsIGFjdGlvbiwgbGVuLCAmc3Rh dHVzKTsKKwlpZiAodW5saWtlbHkocmV0IDwgMCkpIHsKKwkJRFJNX0VSUk9SKCJQVjogc2VuZCBh Y3Rpb24gJSNYIGZhaWxlZDsgZXJyPSVkIHN0YXR1cz0lI1hcbiIsCisJCQkgIGFjdGlvblswXSwg cmV0LCBzdGF0dXMpOworCX0gZWxzZSBpZiAodW5saWtlbHkocmV0KSkgeworCQlEUk1fRVJST1Io IlBWOiBzZW5kIGFjdGlvbiAlI3ggcmV0dXJuZWQgJWQgKCUjeClcbiIsCisJCQkJYWN0aW9uWzBd LCByZXQsIHJldCk7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZ2Z3B1LT5wdi0+c2VuZF9tdXRleCk7 CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgaW50ZWxfdmdwdV9wdl9ub3RpZnlfbW1p byhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJSTkxNV9XUklURSh2Z3Rp Zl9yZWcoZzJ2X25vdGlmeSksIFZHVF9HMlZfUFZfU0VORF9UUklHR0VSKTsKK30KKwogLyoKICAq IHNoYXJlZF9wYWdlIHNldHVwIGZvciBWR1BVIFBWIGZlYXR1cmVzCiAgKi8KQEAgLTM4NSw2ICs1 NjYsMTggQEAgc3RhdGljIGludCBpbnRlbF92Z3B1X3NldHVwX3NoYXJlZF9wYWdlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlwdi0+c2hhcmVkX3BhZ2UgPSBiYXNlOwogCXB2 LT5lbmFibGVkID0gdHJ1ZTsKIAorCS8qIHNldHVwIFBWIGNvbW1hbmQgYnVmZmVyIHB0ciAqLwor CXB2LT5jdGIuZGVzYyA9ICh2b2lkICopYmFzZSArIFBWX0RFU0NfT0ZGOworCXB2LT5jdGIuY21k cyA9ICh2b2lkICopYmFzZSArIFBWX0NNRF9PRkY7CisKKwlwdi0+Y3RiLmRlc2MtPnNpemUgPSBQ QUdFX1NJWkUvMjsKKwlwdi0+Y3RiLmRlc2MtPmFkZHIgPSBQVl9DTURfT0ZGOworCisJLyogc2V0 dXAgUFYgY29tbWFuZCBidWZmZXIgY2FsbGJhY2sgKi8KKwlwdi0+c2VuZCA9IGludGVsX3ZncHVf cHZfc2VuZF9jb21tYW5kX2J1ZmZlcjsKKwlwdi0+bm90aWZ5ID0gaW50ZWxfdmdwdV9wdl9ub3Rp ZnlfbW1pbzsKKwltdXRleF9pbml0KCZwdi0+c2VuZF9tdXRleCk7CisKIAlyZXR1cm4gMDsKIH0K IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuaAppbmRleCA5YjZhOGQxLi4yNGM0OWI3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3ZncHUuaApAQCAtMjksNiArMjksOCBAQAogCiAjZGVmaW5lIFBWX01BSk9S CQkxCiAjZGVmaW5lIFBWX01JTk9SCQkwCisjZGVmaW5lIFBWX0RFU0NfT0ZGCQkoUEFHRV9TSVpF LzQpCisjZGVmaW5lIFBWX0NNRF9PRkYJCShQQUdFX1NJWkUvMikKIAogLyoKICAqIEEgc2hhcmVk IHBhZ2UoNEtCKSBiZXR3ZWVuIGd2dCBhbmQgVk0sIGNvdWxkIGJlIGFsbG9jYXRlZCBieSBndWVz dCBkcml2ZXIKQEAgLTM5LDkgKzQxLDYwIEBAIHN0cnVjdCBndnRfc2hhcmVkX3BhZ2UgewogCXUx NiB2ZXJfbWlub3I7CiB9OwogCisvKgorICogRGVmaW5pdGlvbiBvZiB0aGUgY29tbWFuZCB0cmFu c3BvcnQgbWVzc2FnZSBoZWFkZXIgKERXMCkKKyAqCisgKiBiaXRbNC4uMF0JbWVzc2FnZSBsZW4g KGluIGR3b3JkcykKKyAqIGJpdFs3Li41XQlyZXNlcnZlZAorICogYml0WzhdCQl3cml0ZSBmZW5j ZSB0byBkZXNjCisgKiBiaXRbOS4uMTFdCXJlc2VydmVkCisgKiBiaXRbMzEuLjE2XQlhY3Rpb24g Y29kZQorICovCisjZGVmaW5lIFBWX0NUX01TR19MRU5fU0hJRlQJCQkJMAorI2RlZmluZSBQVl9D VF9NU0dfTEVOX01BU0sJCQkJMHgxRgorI2RlZmluZSBQVl9DVF9NU0dfV1JJVEVfRkVOQ0VfVE9f REVTQwkoMSA8PCA4KQorI2RlZmluZSBQVl9DVF9NU0dfQUNUSU9OX1NISUZUCQkJMTYKKyNkZWZp bmUgUFZfQ1RfTVNHX0FDVElPTl9NQVNLCQkJMHhGRkZGCisKKy8qIFBWIGNvbW1hbmQgdHJhbnNw b3J0IGJ1ZmZlciBkZXNjcmlwdG9yICovCitzdHJ1Y3QgdmdwdV9wdl9jdF9idWZmZXJfZGVzYyB7 CisJdTMyIGFkZHI7CQkvKiBnZnggYWRkcmVzcyAqLworCXUzMiBzaXplOwkJLyogc2l6ZSBpbiBi eXRlcyAqLworCXUzMiBoZWFkOwkJLyogb2Zmc2V0IHVwZGF0ZWQgYnkgR1ZUICovCisJdTMyIHRh aWw7CQkvKiBvZmZzZXQgdXBkYXRlZCBieSBvd25lciAqLworCisJdTMyIGZlbmNlOwkJLyogZmVu Y2UgdXBkYXRlZCBieSBHVlQgKi8KKwl1MzIgc3RhdHVzOwkJLyogc3RhdHVzIHVwZGF0ZWQgYnkg R1ZUICovCit9IF9fcGFja2VkOworCisvKiogUFYgc2luZ2xlIGNvbW1hbmQgdHJhbnNwb3J0IGJ1 ZmZlci4KKyAqCisgKiBBIHNpbmdsZSBjb21tYW5kIHRyYW5zcG9ydCBidWZmZXIgY29uc2lzdHMg b2YgdHdvIHBhcnRzLCB0aGUgaGVhZGVyCisgKiByZWNvcmQgKGNvbW1hbmQgdHJhbnNwb3J0IGJ1 ZmZlciBkZXNjcmlwdG9yKSBhbmQgdGhlIGFjdHVhbCBidWZmZXIgd2hpY2gKKyAqIGhvbGRzIHRo ZSBjb21tYW5kcy4KKyAqCisgKiBAZGVzYzogcG9pbnRlciB0byB0aGUgYnVmZmVyIGRlc2NyaXB0 b3IKKyAqIEBjbWRzOiBwb2ludGVyIHRvIHRoZSBjb21tYW5kcyBidWZmZXIKKyAqLworc3RydWN0 IHZncHVfcHZfY3RfYnVmZmVyIHsKKwlzdHJ1Y3QgdmdwdV9wdl9jdF9idWZmZXJfZGVzYyAqZGVz YzsKKwl1MzIgKmNtZHM7Cit9OworCiBzdHJ1Y3QgaTkxNV92aXJ0dWFsX2dwdV9wdiB7CiAJc3Ry dWN0IGd2dF9zaGFyZWRfcGFnZSAqc2hhcmVkX3BhZ2U7CiAJYm9vbCBlbmFibGVkOworCisJLyog UFYgY29tbWFuZCBidWZmZXIgc3VwcG9ydCAqLworCXN0cnVjdCB2Z3B1X3B2X2N0X2J1ZmZlciBj dGI7CisJdTMyIG5leHRfZmVuY2U7CisKKwkvKiBUbyBzZXJpYWxpemUgdGhlIHZncHUgUFYgc2Vu ZCBhY3Rpb25zICovCisJc3RydWN0IG11dGV4IHNlbmRfbXV0ZXg7CisKKwkvKiBWR1BVJ3MgUFYg c3BlY2lmaWMgc2VuZCBmdW5jdGlvbiAqLworCWludCAoKnNlbmQpKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgdTMyICpkYXRhLCB1MzIgbGVuKTsKKwl2b2lkICgqbm90aWZ5KShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogfTsKIAogdm9pZCBpOTE1X2RldGVj dF92Z3B1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CkBAIC02Niw2ICsxMTks MTkgQEAgaW50ZWxfdmdwdV9oYXNfcHZfY2FwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAJcmV0dXJuIGRldl9wcml2LT52Z3B1LmNhcHMgJiBWR1RfQ0FQU19QVjsKIH0KIAor c3RhdGljIGlubGluZSB2b2lkCitpbnRlbF92Z3B1X3B2X25vdGlmeShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJZGV2X3ByaXYtPnZncHUucHYtPm5vdGlmeShkZXZfcHJp dik7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50CitpbnRlbF92Z3B1X3B2X3NlbmQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQl1MzIgKmFjdGlvbiwgdTMyIGxlbikKK3sKKwly ZXR1cm4gZGV2X3ByaXYtPnZncHUucHYtPnNlbmQoZGV2X3ByaXYsIGFjdGlvbiwgbGVuKTsKK30K KwogaW50IGludGVsX3ZndF9iYWxsb29uKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpOwogdm9pZCBp bnRlbF92Z3RfZGViYWxsb29uKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpOwogCi0tIAoyLjcuNAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4