From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH 04/10 v5] drm/i915: Prepare for GuC-based command submission Date: Wed, 29 Jul 2015 18:48:32 +0100 Message-ID: <1438192118-5807-5-git-send-email-david.s.gordon@intel.com> References: <1438192118-5807-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 558C96EA50 for ; Wed, 29 Jul 2015 10:48:53 -0700 (PDT) In-Reply-To: <1438192118-5807-1-git-send-email-david.s.gordon@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 RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpUaGlzIGFkZHMgdGhlIGZpcnN0IG9m IHRoZSBkYXRhIHN0cnVjdHVyZXMgdXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZQpHdUMgKHRo ZSBwb29sIG9mIGd1Y19jb250ZXh0IHN0cnVjdHVyZXMpLgoKV2UgY3JlYXRlIGEgR3VDLXNwZWNp ZmljIHdyYXBwZXIgcm91bmQgdGhlIEdFTSBvYmplY3QgYWxsb2NhdG9yIGFzIGFsbApHRU0gb2Jq ZWN0cyBzaGFyZWQgd2l0aCB0aGUgR3VDIG11c3QgYmUgcGlubmVkIGludG8gR0dUVCBzcGFjZSBh dCBhbgphZGRyZXNzIHRoYXQgaXMgTk9UIGluIHRoZSByYW5nZSBbMC4uV09QQ01fVE9QKSwgYXMg dGhhdCByYW5nZSBvZiBHR1RUCmFkZHJlc3NlcyBpcyBub3QgYWNjZXNzaWJsZSB0byB0aGUgR3VD IChmcm9tIHRoZSBHdUMncyBwb2ludCBvZiB2aWV3LAppdCdzIHBlcm1hbmVudGx5IHJlc2VydmVk IGZvciBvdGhlciBvYmplY3RzIHN1Y2ggYXMgdGhlIEJvb3RST00gJiBTUkFNKS4KCkxhdGVyLCB3 ZSB3aWxsIG5lZWQgdG8gYWxsb2NhdGUgYWRkaXRpb25hbCBHdUMtc2hhcmFibGUgb2JqZWN0cyBm b3IgdGhlCnN1Ym1pc3Npb24gY2xpZW50KHMpIGFuZCB0aGUgR3VDJ3MgZGVidWcgbG9nLgoKdjI6 CiAgICBSZW1vdmUgcmVkdW5kYW50IGluaXRpYWxpc2F0aW9uIFtDaHJpcyBXaWxzb25dCiAgICBE ZWZlciBhZGRpbmcgc3RydWN0IG1lbWJlcnMgdW50aWwgbmVlZGVkIFtDaHJpcyBXaWxzb25dCiAg ICBMb2NhbCBmdW5jdGlvbnMgc2hvdWxkIHBhc3MgZGV2X3ByaXYgcmF0aGVyIHRoYW4gZGV2IFtD aHJpcyBXaWxzb25dCgp2NToKICAgIEludmFsaWRhdGUgR3VDIFRMQiBhZnRlciBhbGxvY2F0aW5n IGFuZCBwaW5uaW5nIGEgbmV3IG9iamVjdAoKSXNzdWU6IFZJWi00ODg0ClNpZ25lZC1vZmYtYnk6 IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8 ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2Vm aWxlICAgICAgICAgICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNf c3VibWlzc2lvbi5jIHwgMTE4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgIDcgKysKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyAgICB8ICAyMSArKysrKwogNCBmaWxlcyBjaGFu Z2VkLCAxNDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFr ZWZpbGUKaW5kZXggY2MzNTllMC4uZGRiNjlmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTQx LDcgKzQxLDggQEAgaTkxNS15ICs9IGk5MTVfY21kX3BhcnNlci5vIFwKIAkgIGludGVsX3VuY29y ZS5vCiAKICMgZ2VuZXJhbC1wdXJwb3NlIG1pY3JvY29udHJvbGxlciAoR3VDKSBzdXBwb3J0Ci1p OTE1LXkgKz0gaW50ZWxfZ3VjX2xvYWRlci5vCitpOTE1LXkgKz0gaW50ZWxfZ3VjX2xvYWRlci5v IFwKKwkgIGk5MTVfZ3VjX3N1Ym1pc3Npb24ubwogCiAjIGF1dG9nZW5lcmF0ZWQgbnVsbCByZW5k ZXIgc3RhdGUKIGk5MTUteSArPSBpbnRlbF9yZW5kZXJzdGF0ZV9nZW42Lm8gXApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjhmZjU5YWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5 cmlnaHQgwqkgMjAxNCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisg KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl cyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0 byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu c2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywg c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUg bmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1 YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUg QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFN QUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBD T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MK KyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5o PgorI2luY2x1ZGUgPGxpbnV4L2NpcmNfYnVmLmg+CisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNp bmNsdWRlICJpbnRlbF9ndWMuaCIKKworLyoqCisgKiBnZW1fYWxsb2NhdGVfZ3VjX29iaigpIC0g QWxsb2NhdGUgZ2VtIG9iamVjdCBmb3IgR3VDIHVzYWdlCisgKiBAZGV2Oglkcm0gZGV2aWNlCisg KiBAc2l6ZToJc2l6ZSBvZiBvYmplY3QKKyAqCisgKiBUaGlzIGlzIGEgd3JhcHBlciB0byBjcmVh dGUgYSBnZW0gb2JqLiBJbiBvcmRlciB0byB1c2UgaXQgaW5zaWRlIEd1QywgdGhlCisgKiBvYmpl Y3QgbmVlZHMgdG8gYmUgcGlubmVkIGxpZmV0aW1lLiBBbHNvIHdlIG11c3QgcGluIGl0IHRvIGd0 dCBzcGFjZSBvdGhlcgorICogdGhhbiBbMCwgR1VDX1dPUENNX1RPUCkgYmVjYXVzZSB0aGlzIHJh bmdlIGlzIHJlc2VydmVkIGluc2lkZSBHdUMuCisgKgorICogUmV0dXJuOglBIGRybV9pOTE1X2dl bV9vYmplY3QgaWYgc3VjY2Vzc2Z1bCwgb3RoZXJ3aXNlIE5VTEwuCisgKi8KK3N0YXRpYyBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZ2VtX2FsbG9jYXRlX2d1Y19vYmooc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKKwkJCQkJCQl1MzIgc2l6ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmo7CisKKwlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsKKwlp ZiAoIW9iaikKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAoaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdl cyhvYmopKSB7CisJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOworCQly ZXR1cm4gTlVMTDsKKwl9CisKKwlpZiAoaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgUEFHRV9T SVpFLAorCQkJUElOX09GRlNFVF9CSUFTIHwgR1VDX1dPUENNX1RPUCkpIHsKKwkJZHJtX2dlbV9v YmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7CisJCXJldHVybiBOVUxMOworCX0KKworCS8q IEludmFsaWRhdGUgR3VDIFRMQiB0byBsZXQgR3VDIHRha2UgdGhlIGxhdGVzdCB1cGRhdGVzIHRv IEdUVC4gKi8KKwlJOTE1X1dSSVRFKEdFTjhfR1RDUiwgR0VOOF9HVENSX0lOVkFMSURBVEUpOwor CisJcmV0dXJuIG9iajsKK30KKworLyoqCisgKiBnZW1fcmVsZWFzZV9ndWNfb2JqKCkgLSBSZWxl YXNlIGdlbSBvYmplY3QgYWxsb2NhdGVkIGZvciBHdUMgdXNhZ2UKKyAqIEBvYmo6CWdlbSBvYmog dG8gYmUgcmVsZWFzZWQKKyAgKi8KK3N0YXRpYyB2b2lkIGdlbV9yZWxlYXNlX2d1Y19vYmooc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlpZiAoIW9iaikKKwkJcmV0dXJuOwor CisJaWYgKGk5MTVfZ2VtX29ial9pc19waW5uZWQob2JqKSkKKwkJaTkxNV9nZW1fb2JqZWN0X2dn dHRfdW5waW4ob2JqKTsKKworCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2Up OworfQorCisvKgorICogU2V0IHVwIHRoZSBtZW1vcnkgcmVzb3VyY2VzIHRvIGJlIHNoYXJlZCB3 aXRoIHRoZSBHdUMuICBBdCB0aGlzIHBvaW50LAorICogd2UgcmVxdWlyZSBqdXN0IG9uZSBvYmpl Y3QgdGhhdCBjYW4gYmUgbWFwcGVkIHRocm91Z2ggdGhlIEdHVFQuCisgKi8KK2ludCBpOTE1X2d1 Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWNvbnN0IHNpemVf dCBjdHhzaXplID0gc2l6ZW9mKHN0cnVjdCBndWNfY29udGV4dF9kZXNjKTsKKwljb25zdCBzaXpl X3QgcG9vbHNpemUgPSBHVUNfTUFYX0dQVV9DT05URVhUUyAqIGN0eHNpemU7CisJY29uc3Qgc2l6 ZV90IGdlbXNpemUgPSByb3VuZF91cChwb29sc2l6ZSwgUEFHRV9TSVpFKTsKKwlzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKKworCWlmICghaTkxNS5lbmFibGVfZ3VjX3N1 Ym1pc3Npb24pCisJCXJldHVybiAwOyAvKiBub3QgZW5hYmxlZCAgKi8KKworCWlmIChndWMtPmN0 eF9wb29sX29iaikKKwkJcmV0dXJuIDA7IC8qIGFscmVhZHkgYWxsb2NhdGVkICovCisKKwlndWMt PmN0eF9wb29sX29iaiA9IGdlbV9hbGxvY2F0ZV9ndWNfb2JqKGRldl9wcml2LT5kZXYsIGdlbXNp emUpOworCWlmICghZ3VjLT5jdHhfcG9vbF9vYmopCisJCXJldHVybiAtRU5PTUVNOworCisJaWRh X2luaXQoJmd1Yy0+Y3R4X2lkcyk7CisKKwlyZXR1cm4gMDsKK30KKwordm9pZCBpOTE1X2d1Y19z dWJtaXNzaW9uX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9n dWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOworCisJaWYgKGd1Yy0+Y3R4X3Bvb2xfb2JqKQorCQlp ZGFfZGVzdHJveSgmZ3VjLT5jdHhfaWRzKTsKKwlnZW1fcmVsZWFzZV9ndWNfb2JqKGd1Yy0+Y3R4 X3Bvb2xfb2JqKTsKKwlndWMtPmN0eF9wb29sX29iaiA9IE5VTEw7Cit9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Yy5oCmluZGV4IDI4NDZiNmQuLmJlM2NhZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Yy5oCkBAIC01Niw2ICs1Niw5IEBAIHN0cnVjdCBpbnRlbF9ndWMgewogCXN0cnVjdCBpbnRlbF9n dWNfZncgZ3VjX2Z3OwogCiAJdWludDMyX3QgbG9nX2ZsYWdzOworCisJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKmN0eF9wb29sX29iajsKKwlzdHJ1Y3QgaWRhIGN0eF9pZHM7CiB9OwogCiAv KiBpbnRlbF9ndWNfbG9hZGVyLmMgKi8KQEAgLTY0LDQgKzY3LDggQEAgZXh0ZXJuIGludCBpbnRl bF9ndWNfdWNvZGVfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4dGVybiB2b2lkIGlu dGVsX2d1Y191Y29kZV9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogZXh0ZXJuIGNvbnN0 IGNoYXIgKmludGVsX2d1Y19md19zdGF0dXNfcmVwcihlbnVtIGludGVsX2d1Y19md19zdGF0dXMg c3RhdHVzKTsKIAorLyogaTkxNV9ndWNfc3VibWlzc2lvbi5jICovCitpbnQgaTkxNV9ndWNfc3Vi bWlzc2lvbl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwordm9pZCBpOTE1X2d1Y19zdWJt aXNzaW9uX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisKICNlbmRpZgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCmluZGV4IDdkMGFkM2UuLjAzNjAxMjAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTEyOCw2ICsxMjgsMjEgQEAg c3RhdGljIHZvaWQgc2V0X2d1Y19pbml0X3BhcmFtcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJCQlpOTE1Lmd1Y19sb2dfbGV2ZWwgPDwgR1VDX0xPR19WRVJCT1NJVFlfU0hJ RlQ7CiAJfQogCisJLyogSWYgR3VDIHN1Ym1pc3Npb24gaXMgZW5hYmxlZCwgc2V0IHVwIGFkZGl0 aW9uYWwgcGFyYW1ldGVycyBoZXJlICovCisJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9u KSB7CisJCXUzMiBwZ3MgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZGV2X3ByaXYtPmd1Yy5j dHhfcG9vbF9vYmopOworCQl1MzIgY3R4X2luXzE2ID0gR1VDX01BWF9HUFVfQ09OVEVYVFMgLyAx NjsKKworCQlwZ3MgPj49IFBBR0VfU0hJRlQ7CisJCXBhcmFtc1tHVUNfQ1RMX0NUWElORk9dID0g KHBncyA8PCBHVUNfQ1RMX0JBU0VfQUREUl9TSElGVCkgfAorCQkJKGN0eF9pbl8xNiA8PCBHVUNf Q1RMX0NUWE5VTV9JTjE2X1NISUZUKTsKKworCQlwYXJhbXNbR1VDX0NUTF9GRUFUVVJFXSB8PSBH VUNfQ1RMX0tFUk5FTF9TVUJNSVNTSU9OUzsKKworCQkvKiBVbm1hc2sgdGhpcyBiaXQgdG8gZW5h YmxlIHRoZSBHdUMncyBpbnRlcm5hbCBzY2hlZHVsZXIgKi8KKwkJcGFyYW1zW0dVQ19DVExfRkVB VFVSRV0gJj0gfkdVQ19DVExfRElTQUJMRV9TQ0hFRFVMRVI7CisJfQorCiAJSTkxNV9XUklURShT T0ZUX1NDUkFUQ0goMCksIDApOwogCiAJZm9yIChpID0gMDsgaSA8IEdVQ19DVExfTUFYX0RXT1JE UzsgaSsrKQpAQCAtMzYyLDYgKzM3NywxMCBAQCBpbnQgaW50ZWxfZ3VjX3Vjb2RlX2xvYWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAkJYnJlYWs7CiAJfQogCisJZXJyID0gaTkxNV9ndWNfc3Vi bWlzc2lvbl9pbml0KGRldik7CisJaWYgKGVycikKKwkJZ290byBmYWlsOworCiAJZXJyID0gZ3Vj X3Vjb2RlX3hmZXIoZGV2X3ByaXYpOwogCWlmIChlcnIpCiAJCWdvdG8gZmFpbDsKQEAgLTUyMyw2 ICs1NDIsOCBAQCB2b2lkIGludGVsX2d1Y191Y29kZV9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKIAlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7 CiAKKwlpOTE1X2d1Y19zdWJtaXNzaW9uX2ZpbmkoZGV2KTsKKwogCWlmIChndWNfZnctPmd1Y19m d19vYmopCiAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZndWNfZnctPmd1Y19md19vYmot PmJhc2UpOwogCWd1Y19mdy0+Z3VjX2Z3X29iaiA9IE5VTEw7Ci0tIAoxLjkuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK