From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH 4/9 v6] drm/i915: Prepare for GuC-based command submission Date: Wed, 12 Aug 2015 15:43:39 +0100 Message-ID: <1439390624-21724-5-git-send-email-david.s.gordon@intel.com> References: <1439390624-21724-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id CAFC26EB7F for ; Wed, 12 Aug 2015 07:43:54 -0700 (PDT) In-Reply-To: <1439390624-21724-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 IGFuZCBwaW5uaW5nIGEgbmV3IG9iamVjdAoKdjY6CiAgICBSZWJhc2VkCgpJc3N1ZTogVklaLTQ4 ODQKU2lnbmVkLW9mZi1ieTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICAgICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgfCAxMTggKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oICAgICAgICAgICB8ICAg NyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jICAgIHwgIDIxICsr KysrCiA0IGZpbGVzIGNoYW5nZWQsIDE0OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lv bi5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCA2NWU1MmZhLi40NGQyOTBhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9NYWtlZmlsZQpAQCAtNDEsNyArNDEsOCBAQCBpOTE1LXkgKz0gaTkxNV9jbWRfcGFyc2VyLm8g XAogCSAgaW50ZWxfdW5jb3JlLm8KIAogIyBnZW5lcmFsLXB1cnBvc2UgbWljcm9jb250cm9sbGVy IChHdUMpIHN1cHBvcnQKLWk5MTUteSArPSBpbnRlbF9ndWNfbG9hZGVyLm8KK2k5MTUteSArPSBp bnRlbF9ndWNfbG9hZGVyLm8gXAorCSAgaTkxNV9ndWNfc3VibWlzc2lvbi5vCiAKICMgYXV0b2dl bmVyYXRlZCBudWxsIHJlbmRlciBzdGF0ZQogaTkxNS15ICs9IGludGVsX3JlbmRlcnN0YXRlX2dl bjYubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNz aW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZmNTlhYQotLS0gL2Rldi9udWxsCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwpAQCAtMCwwICsxLDEx OCBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE0IEludGVsIENvcnBvcmF0aW9uCisgKgorICog UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz b24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9u CisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz dHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVy bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAq CisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj ZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGlu IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4K KyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZF TlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJP TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP UiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworI2luY2x1ZGUg PGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvY2lyY19idWYuaD4KKyNpbmNsdWRl ICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImludGVsX2d1Yy5oIgorCisvKioKKyAqIGdlbV9hbGxv Y2F0ZV9ndWNfb2JqKCkgLSBBbGxvY2F0ZSBnZW0gb2JqZWN0IGZvciBHdUMgdXNhZ2UKKyAqIEBk ZXY6CWRybSBkZXZpY2UKKyAqIEBzaXplOglzaXplIG9mIG9iamVjdAorICoKKyAqIFRoaXMgaXMg YSB3cmFwcGVyIHRvIGNyZWF0ZSBhIGdlbSBvYmouIEluIG9yZGVyIHRvIHVzZSBpdCBpbnNpZGUg R3VDLCB0aGUKKyAqIG9iamVjdCBuZWVkcyB0byBiZSBwaW5uZWQgbGlmZXRpbWUuIEFsc28gd2Ug bXVzdCBwaW4gaXQgdG8gZ3R0IHNwYWNlIG90aGVyCisgKiB0aGFuIFswLCBHVUNfV09QQ01fVE9Q KSBiZWNhdXNlIHRoaXMgcmFuZ2UgaXMgcmVzZXJ2ZWQgaW5zaWRlIEd1Qy4KKyAqCisgKiBSZXR1 cm46CUEgZHJtX2k5MTVfZ2VtX29iamVjdCBpZiBzdWNjZXNzZnVsLCBvdGhlcndpc2UgTlVMTC4K KyAqLworc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpnZW1fYWxsb2NhdGVfZ3Vj X29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQkJCXUzMiBzaXplKQoreworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKworCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVj dChkZXYsIHNpemUpOworCWlmICghb2JqKQorCQlyZXR1cm4gTlVMTDsKKworCWlmIChpOTE1X2dl bV9vYmplY3RfZ2V0X3BhZ2VzKG9iaikpIHsKKwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uo Jm9iai0+YmFzZSk7CisJCXJldHVybiBOVUxMOworCX0KKworCWlmIChpOTE1X2dlbV9vYmpfZ2d0 dF9waW4ob2JqLCBQQUdFX1NJWkUsCisJCQlQSU5fT0ZGU0VUX0JJQVMgfCBHVUNfV09QQ01fVE9Q KSkgeworCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsKKwkJcmV0dXJu IE5VTEw7CisJfQorCisJLyogSW52YWxpZGF0ZSBHdUMgVExCIHRvIGxldCBHdUMgdGFrZSB0aGUg bGF0ZXN0IHVwZGF0ZXMgdG8gR1RULiAqLworCUk5MTVfV1JJVEUoR0VOOF9HVENSLCBHRU44X0dU Q1JfSU5WQUxJREFURSk7CisKKwlyZXR1cm4gb2JqOworfQorCisvKioKKyAqIGdlbV9yZWxlYXNl X2d1Y19vYmooKSAtIFJlbGVhc2UgZ2VtIG9iamVjdCBhbGxvY2F0ZWQgZm9yIEd1QyB1c2FnZQor ICogQG9iajoJZ2VtIG9iaiB0byBiZSByZWxlYXNlZAorICAqLworc3RhdGljIHZvaWQgZ2VtX3Jl bGVhc2VfZ3VjX29iaihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQoreworCWlmICgh b2JqKQorCQlyZXR1cm47CisKKwlpZiAoaTkxNV9nZW1fb2JqX2lzX3Bpbm5lZChvYmopKQorCQlp OTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihvYmopOworCisJZHJtX2dlbV9vYmplY3RfdW5yZWZl cmVuY2UoJm9iai0+YmFzZSk7Cit9CisKKy8qCisgKiBTZXQgdXAgdGhlIG1lbW9yeSByZXNvdXJj ZXMgdG8gYmUgc2hhcmVkIHdpdGggdGhlIEd1Qy4gIEF0IHRoaXMgcG9pbnQsCisgKiB3ZSByZXF1 aXJlIGp1c3Qgb25lIG9iamVjdCB0aGF0IGNhbiBiZSBtYXBwZWQgdGhyb3VnaCB0aGUgR0dUVC4K KyAqLworaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7CisJY29uc3Qgc2l6ZV90IGN0eHNpemUgPSBzaXplb2Yoc3RydWN0IGd1Y19jb250ZXh0X2Rl c2MpOworCWNvbnN0IHNpemVfdCBwb29sc2l6ZSA9IEdVQ19NQVhfR1BVX0NPTlRFWFRTICogY3R4 c2l6ZTsKKwljb25zdCBzaXplX3QgZ2Vtc2l6ZSA9IHJvdW5kX3VwKHBvb2xzaXplLCBQQUdFX1NJ WkUpOworCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOworCisJaWYgKCFp OTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKKwkJcmV0dXJuIDA7IC8qIG5vdCBlbmFibGVkICAq LworCisJaWYgKGd1Yy0+Y3R4X3Bvb2xfb2JqKQorCQlyZXR1cm4gMDsgLyogYWxyZWFkeSBhbGxv Y2F0ZWQgKi8KKworCWd1Yy0+Y3R4X3Bvb2xfb2JqID0gZ2VtX2FsbG9jYXRlX2d1Y19vYmooZGV2 X3ByaXYtPmRldiwgZ2Vtc2l6ZSk7CisJaWYgKCFndWMtPmN0eF9wb29sX29iaikKKwkJcmV0dXJu IC1FTk9NRU07CisKKwlpZGFfaW5pdCgmZ3VjLT5jdHhfaWRzKTsKKworCXJldHVybiAwOworfQor Cit2b2lkIGk5MTVfZ3VjX3N1Ym1pc3Npb25fZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQor eworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 CisJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7CisKKwlpZiAoZ3VjLT5j dHhfcG9vbF9vYmopCisJCWlkYV9kZXN0cm95KCZndWMtPmN0eF9pZHMpOworCWdlbV9yZWxlYXNl X2d1Y19vYmooZ3VjLT5jdHhfcG9vbF9vYmopOworCWd1Yy0+Y3R4X3Bvb2xfb2JqID0gTlVMTDsK K30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKaW5kZXggMjg0NmI2ZC4uYmUzY2FkOCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjLmgKQEAgLTU2LDYgKzU2LDkgQEAgc3RydWN0IGludGVsX2d1YyB7 CiAJc3RydWN0IGludGVsX2d1Y19mdyBndWNfZnc7CiAKIAl1aW50MzJfdCBsb2dfZmxhZ3M7CisK KwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X3Bvb2xfb2JqOworCXN0cnVjdCBpZGEg Y3R4X2lkczsKIH07CiAKIC8qIGludGVsX2d1Y19sb2FkZXIuYyAqLwpAQCAtNjQsNCArNjcsOCBA QCBleHRlcm4gaW50IGludGVsX2d1Y191Y29kZV9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp OwogZXh0ZXJuIHZvaWQgaW50ZWxfZ3VjX3Vjb2RlX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7CiBleHRlcm4gY29uc3QgY2hhciAqaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGVudW0gaW50 ZWxfZ3VjX2Z3X3N0YXR1cyBzdGF0dXMpOwogCisvKiBpOTE1X2d1Y19zdWJtaXNzaW9uLmMgKi8K K2ludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cit2 b2lkIGk5MTVfZ3VjX3N1Ym1pc3Npb25fZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKwog I2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKaW5kZXggZGQ2MmMz MS4uNmZmN2ZlYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xv YWRlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwpAQCAt MTI4LDYgKzEyOCwyMSBAQCBzdGF0aWMgdm9pZCBzZXRfZ3VjX2luaXRfcGFyYW1zKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCWk5MTUuZ3VjX2xvZ19sZXZlbCA8PCBHVUNf TE9HX1ZFUkJPU0lUWV9TSElGVDsKIAl9CiAKKwkvKiBJZiBHdUMgc3VibWlzc2lvbiBpcyBlbmFi bGVkLCBzZXQgdXAgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGhlcmUgKi8KKwlpZiAoaTkxNS5lbmFi bGVfZ3VjX3N1Ym1pc3Npb24pIHsKKwkJdTMyIHBncyA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNl dChkZXZfcHJpdi0+Z3VjLmN0eF9wb29sX29iaik7CisJCXUzMiBjdHhfaW5fMTYgPSBHVUNfTUFY X0dQVV9DT05URVhUUyAvIDE2OworCisJCXBncyA+Pj0gUEFHRV9TSElGVDsKKwkJcGFyYW1zW0dV Q19DVExfQ1RYSU5GT10gPSAocGdzIDw8IEdVQ19DVExfQkFTRV9BRERSX1NISUZUKSB8CisJCQko Y3R4X2luXzE2IDw8IEdVQ19DVExfQ1RYTlVNX0lOMTZfU0hJRlQpOworCisJCXBhcmFtc1tHVUNf Q1RMX0ZFQVRVUkVdIHw9IEdVQ19DVExfS0VSTkVMX1NVQk1JU1NJT05TOworCisJCS8qIFVubWFz ayB0aGlzIGJpdCB0byBlbmFibGUgdGhlIEd1QydzIGludGVybmFsIHNjaGVkdWxlciAqLworCQlw YXJhbXNbR1VDX0NUTF9GRUFUVVJFXSAmPSB+R1VDX0NUTF9ESVNBQkxFX1NDSEVEVUxFUjsKKwl9 CisKIAlJOTE1X1dSSVRFKFNPRlRfU0NSQVRDSCgwKSwgMCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwg R1VDX0NUTF9NQVhfRFdPUkRTOyBpKyspCkBAIC0zNjAsNiArMzc1LDEwIEBAIGludCBpbnRlbF9n dWNfdWNvZGVfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlicmVhazsKIAl9CiAKKwll cnIgPSBpOTE1X2d1Y19zdWJtaXNzaW9uX2luaXQoZGV2KTsKKwlpZiAoZXJyKQorCQlnb3RvIGZh aWw7CisKIAllcnIgPSBndWNfdWNvZGVfeGZlcihkZXZfcHJpdik7CiAJaWYgKGVycikKIAkJZ290 byBmYWlsOwpAQCAtNTIxLDYgKzU0MCw4IEBAIHZvaWQgaW50ZWxfZ3VjX3Vjb2RlX2Zpbmkoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZf cHJpdi0+Z3VjLmd1Y19mdzsKIAorCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZmluaShkZXYpOworCiAJ aWYgKGd1Y19mdy0+Z3VjX2Z3X29iaikKIAkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmd1 Y19mdy0+Z3VjX2Z3X29iai0+YmFzZSk7CiAJZ3VjX2Z3LT5ndWNfZndfb2JqID0gTlVMTDsKLS0g CjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=