From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH 8/9 v6] drm/i915: Integrate GuC-based command submission Date: Wed, 12 Aug 2015 15:43:43 +0100 Message-ID: <1439390624-21724-9-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 D90BA6EB86 for ; Wed, 12 Aug 2015 07:44:01 -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+CgpHdUMtYmFzZWQgc3VibWlzc2lvbiBp cyBtb3N0bHkgdGhlIHNhbWUgYXMgZXhlY2xpc3QgbW9kZSwgdXAgdG8KaW50ZWxfbG9naWNhbF9y aW5nX2FkdmFuY2VfYW5kX3N1Ym1pdCgpLCB3aGVyZSB0aGUgY29udGV4dCBiZWluZwpkaXNwYXRj aGVkIHdvdWxkIGJlIGFkZGVkIHRvIHRoZSBleGVjbGlzdCBxdWV1ZTsgYXQgdGhpcyBwb2ludAp3 ZSBzdWJtaXQgdGhlIGNvbnRleHQgdG8gdGhlIEd1QyBiYWNrZW5kIGluc3RlYWQuCgpUaGVyZSBh cmUsIGhvd2V2ZXIsIGEgZmV3IG90aGVyIGNoYW5nZXMgYWxzbyByZXF1aXJlZCwgbm90YWJseToK MS4gIENvbnRleHRzIG11c3QgYmUgcGlubmVkIGF0IEdHVFQgYWRkcmVzc2VzIGFjY2Vzc2libGUg YnkgdGhlIEd1QwogICAgaS5lLiBOT1QgaW4gdGhlIHJhbmdlIFswLi5XT1BDTV9TSVpFKSwgc28g d2UgaGF2ZSB0byBhZGQgdGhlCiAgICBQSU5fT0ZGU0VUX0JJQVMgZmxhZyB0byB0aGUgcmVsZXZh bnQgR0dUVC1waW5uaW5nIGNhbGxzLgoKMi4gIFRoZSBHdUMncyBUTEIgbXVzdCBiZSBpbnZhbGlk YXRlZCBhZnRlciBhIGNvbnRleHQgaXMgcGlubmVkIGF0CiAgICBhIG5ldyBHR1RUIGFkZHJlc3Mu CgozLiAgR3VDIGZpcm13YXJlIHVzZXMgdGhlIG9uZSBwYWdlIGJlZm9yZSBSaW5nIENvbnRleHQg YXMgc2hhcmVkIGRhdGEuCiAgICBUaGVyZWZvcmUsIHdoZW5ldmVyIGRyaXZlciB3YW50cyB0byBn ZXQgYmFzZSBhZGRyZXNzIG9mIExSQywgd2UKICAgIHdpbGwgb2Zmc2V0IG9uZSBwYWdlIGZvciBp dC4gTFJDX1BQSFdTUF9QTiBpcyBkZWZpbmVkIGFzIHRoZSBwYWdlCiAgICBudW1iZXIgb2YgTFJD QS4KCjQuICBJbiB0aGUgd29yayBxdWV1ZSB1c2VkIHRvIHBhc3MgcmVxdWVzdHMgdG8gdGhlIEd1 QywgdGhlIEd1QwogICAgZmlybXdhcmUgcmVxdWlyZXMgdGhlIHJpbmctdGFpbC1vZmZzZXQgdG8g YmUgcmVwcmVzZW50ZWQgYXMgYW4KICAgIDExLWJpdCB2YWx1ZSwgZXhwcmVzc2VkIGluIFFXb3Jk cy4gVGhlcmVmb3JlLCB0aGUgcmluZ2J1ZmZlcgogICAgc2l6ZSBtdXN0IGJlIHJlZHVjZWQgdG8g dGhlIHJlcHJlc2VudGFibGUgcmFuZ2UgKDQgcGFnZXMpLgoKdjI6CiAgICBEZWZlciBhZGRpbmcg I2RlZmluZXMgdW50aWwgbmVlZGVkIFtDaHJpcyBXaWxzb25dCiAgICBSYXRpb25hbGlzZSB0eXBl IGRlY2xhcmF0aW9ucyBbQ2hyaXMgV2lsc29uXQoKdjQ6CiAgICBTcXVhc2hlZCBrZXJuZWxkb2Mg cGF0Y2ggaW50byBoZXJlIFtEYW5pZWwgVmV0dGVyXQoKdjU6CiAgICBVcGRhdGUgcmVxdWVzdC0+ dGFpbCBpbiBjb2RlIGNvbW1vbiB0byBib3RoIEd1QyBhbmQgZXhlY2xpc3QgbW9kZXMuCiAgICBB ZGQgYSBwcml2YXRlIHZlcnNpb24gb2YgbHJfY29udGV4dF91cGRhdGUoKSwgYXMgc2hhcmluZyB0 aGUKICAgICAgICBleGVjbGlzdCB2ZXJzaW9uIGxlYWRzIHRvIHJhY2UgY29uZGl0aW9ucyB3aGVu IHRoZSBDUFUgYW5kCiAgICAgICAgdGhlIEd1QyBib3RoIHVwZGF0ZSBUQUlMIGluIHRoZSBjb250 ZXh0IGltYWdlLgogICAgQ29udmVyc2lvbiBvZiBlcnJvci1jYXB0dXJlZCBIV1MgcGFnZSB0byBz dHJpbmcgbXVzdCBhY2NvdW50CiAgICAgICAgZm9yIG9mZnNldCBmcm9tIHN0YXJ0IG9mIG9iamVj dCB0byBhY3R1YWwgSFdTIChMUkNfUFBIV1NQX1BOKS4KCklzc3VlOiBWSVotNDg4NApTaWduZWQt b2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2ZSBH b3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL0RvY0Jv b2svZHJtLnRtcGwgICAgICAgICAgICAgfCAxNCArKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dwdV9lcnJvci5jICAgICAgfCAxNCArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3VjX3N1Ym1pc3Npb24uYyB8IDc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggICAgICAgICAgIHwgIDEgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgIHwgNTUgKysrKysrKysrKysrKystLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCAgICAgICAgICAgfCAgNiArKysK IDcgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbCBiL0RvY3VtZW50YXRpb24v RG9jQm9vay9kcm0udG1wbAppbmRleCA0MTExOTAyLi5hMDFmY2E5IDEwMDY0NAotLS0gYS9Eb2N1 bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwKKysrIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2Ry bS50bXBsCkBAIC00MTUyLDYgKzQxNTIsMjAgQEAgaW50IG51bV9pb2N0bHM7PC9zeW5vcHNpcz4K ICAgICAgIDwvc2VjdDI+CiAgICAgPC9zZWN0MT4KICAgICA8c2VjdDE+CisgICAgICA8dGl0bGU+ R3VDLWJhc2VkIENvbW1hbmQgU3VibWlzc2lvbjwvdGl0bGU+CisgICAgICA8c2VjdDI+CisgICAg ICAgIDx0aXRsZT5HdUM8L3RpdGxlPgorIVBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNf bG9hZGVyLmMgR3VDLXNwZWNpZmljIGZpcm13YXJlIGxvYWRlcgorIUlkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKKyAgICAgIDwvc2VjdDI+CisgICAgICA8c2VjdDI+Cisg ICAgICAgIDx0aXRsZT5HdUMgQ2xpZW50PC90aXRsZT4KKyFQZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyBHdUMtYmFzZWQgY29tbWFuZCBzdWJtaXNzaXNvbgorIUlk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCisgICAgICA8L3NlY3Qy PgorICAgIDwvc2VjdDE+CisKKyAgICA8c2VjdDE+CiAgICAgICA8dGl0bGU+IFRyYWNpbmcgPC90 aXRsZT4KICAgICAgIDxwYXJhPgogICAgIFRoaXMgc2VjdGlvbnMgY292ZXJzIGFsbCB0aGluZ3Mg cmVsYXRlZCB0byB0aGUgdHJhY2Vwb2ludHMgaW1wbGVtZW50ZWQgaW4KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKaW5kZXggNTI5ZDJmZC4uY2ZkZGM5YSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKQEAgLTE5OTUsNyArMTk5NSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHVt cF9scmNfb2JqKHN0cnVjdCBzZXFfZmlsZSAqbSwKIAkJcmV0dXJuOwogCX0KIAotCXBhZ2UgPSBp OTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoY3R4X29iaiwgMSk7CisJcGFnZSA9IGk5MTVfZ2VtX29i amVjdF9nZXRfcGFnZShjdHhfb2JqLCBMUkNfU1RBVEVfUE4pOwogCWlmICghV0FSTl9PTihwYWdl ID09IE5VTEwpKSB7CiAJCXJlZ19zdGF0ZSA9IGttYXBfYXRvbWljKHBhZ2UpOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCBmNzljOTUyLi45NDAxMmU3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKQEAgLTQ2MSwxNyArNDYxLDE3IEBAIGludCBp OTE1X2Vycm9yX3N0YXRlX3RvX3N0cihzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICpt LAogCQl9CiAKIAkJaWYgKChvYmogPSBlcnJvci0+cmluZ1tpXS5od3NfcGFnZSkpIHsKLQkJCWVy cl9wcmludGYobSwgIiVzIC0tLSBIVyBTdGF0dXMgPSAweCUwOHhcbiIsCi0JCQkJICAgZGV2X3By aXYtPnJpbmdbaV0ubmFtZSwKLQkJCQkgICBsb3dlcl8zMl9iaXRzKG9iai0+Z3R0X29mZnNldCkp OworCQkJZXJyX3ByaW50ZihtLCAiJXMgLS0tIEhXIFN0YXR1cyA9IDB4JTA4bGx4XG4iLAorCQkJ CWRldl9wcml2LT5yaW5nW2ldLm5hbWUsCisJCQkJb2JqLT5ndHRfb2Zmc2V0ICsgTFJDX1BQSFdT UF9QTiAqIFBBR0VfU0laRSk7CiAJCQlvZmZzZXQgPSAwOwogCQkJZm9yIChlbHQgPSAwOyBlbHQg PCBQQUdFX1NJWkUvMTY7IGVsdCArPSA0KSB7CiAJCQkJZXJyX3ByaW50ZihtLCAiWyUwNHhdICUw OHggJTA4eCAlMDh4ICUwOHhcbiIsCiAJCQkJCSAgIG9mZnNldCwKLQkJCQkJICAgb2JqLT5wYWdl c1swXVtlbHRdLAotCQkJCQkgICBvYmotPnBhZ2VzWzBdW2VsdCsxXSwKLQkJCQkJICAgb2JqLT5w YWdlc1swXVtlbHQrMl0sCi0JCQkJCSAgIG9iai0+cGFnZXNbMF1bZWx0KzNdKTsKKwkJCQkJICAg b2JqLT5wYWdlc1tMUkNfUFBIV1NQX1BOXVtlbHRdLAorCQkJCQkgICBvYmotPnBhZ2VzW0xSQ19Q UEhXU1BfUE5dW2VsdCsxXSwKKwkJCQkJICAgb2JqLT5wYWdlc1tMUkNfUFBIV1NQX1BOXVtlbHQr Ml0sCisJCQkJCSAgIG9iai0+cGFnZXNbTFJDX1BQSFdTUF9QTl1bZWx0KzNdKTsKIAkJCQkJb2Zm c2V0ICs9IDE2OwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJt aXNzaW9uLmMKaW5kZXggMzM1MmI4NS4uZWM3MDM5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwpAQCAtMzY0LDE4ICszNjQsNTggQEAgc3RhdGljIHZvaWQg Z3VjX2luaXRfcHJvY19kZXNjKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKIHN0YXRpYyB2b2lkIGd1 Y19pbml0X2N0eF9kZXNjKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKIAkJCSAgICAgIHN0cnVjdCBp OTE1X2d1Y19jbGllbnQgKmNsaWVudCkKIHsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0g Y2xpZW50LT5vd25lcjsKIAlzdHJ1Y3QgZ3VjX2NvbnRleHRfZGVzYyBkZXNjOwogCXN0cnVjdCBz Z190YWJsZSAqc2c7CisJaW50IGk7CiAKIAltZW1zZXQoJmRlc2MsIDAsIHNpemVvZihkZXNjKSk7 CiAKIAlkZXNjLmF0dHJpYnV0ZSA9IEdVQ19DVFhfREVTQ19BVFRSX0FDVElWRSB8IEdVQ19DVFhf REVTQ19BVFRSX0tFUk5FTDsKIAlkZXNjLmNvbnRleHRfaWQgPSBjbGllbnQtPmN0eF9pbmRleDsK IAlkZXNjLnByaW9yaXR5ID0gY2xpZW50LT5wcmlvcml0eTsKLQlkZXNjLmVuZ2luZXNfdXNlZCA9 ICgxIDw8IFJDUykgfCAoMSA8PCBWQ1MpIHwgKDEgPDwgQkNTKSB8Ci0JCQkgICAgKDEgPDwgVkVD UykgfCAoMSA8PCBWQ1MyKTsgLyogYWxsIGVuZ2luZXMgKi8KIAlkZXNjLmRiX2lkID0gY2xpZW50 LT5kb29yYmVsbF9pZDsKIAorCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7 CisJCXN0cnVjdCBndWNfZXhlY2xpc3RfY29udGV4dCAqbHJjID0gJmRlc2MubHJjW2ldOworCQlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IGN0eC0+ZW5naW5lW2ldLnJpbmdidWY7 CisJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmo7CisJCXVpbnQ2NF90IGN0eF9kZXNjOworCisJCS8qIFRPRE86IFdlIGhhdmUg YSBkZXNpZ24gaXNzdWUgdG8gYmUgc29sdmVkIGhlcmUuIE9ubHkgd2hlbiB3ZQorCQkgKiByZWNl aXZlIHRoZSBmaXJzdCBiYXRjaCwgd2Uga25vdyB3aGljaCBlbmdpbmUgaXMgdXNlZCBieSB0aGUK KwkJICogdXNlci4gQnV0IGhlcmUgR3VDIGV4cGVjdHMgdGhlIGxyYyBhbmQgcmluZyB0byBiZSBw aW5uZWQuIEl0CisJCSAqIGlzIG5vdCBhbiBpc3N1ZSBmb3IgZGVmYXVsdCBjb250ZXh0LCB3aGlj aCBpcyB0aGUgb25seSBvbmUKKwkJICogZm9yIG5vdyB3aG8gb3ducyBhIEd1QyBjbGllbnQuIEJ1 dCBmb3IgZnV0dXJlIG93bmVyIG9mIEd1QworCQkgKiBjbGllbnQsIG5lZWQgdG8gbWFrZSBzdXJl IGxyYyBpcyBwaW5uZWQgcHJpb3IgdG8gZW50ZXIgaGVyZS4KKwkJICovCisJCW9iaiA9IGN0eC0+ ZW5naW5lW2ldLnN0YXRlOworCQlpZiAoIW9iaikKKwkJCWJyZWFrOwkvKiBYWFg6IGNvbnRpbnVl PyAqLworCisJCXJpbmcgPSByaW5nYnVmLT5yaW5nOworCQljdHhfZGVzYyA9IGludGVsX2xyX2Nv bnRleHRfZGVzY3JpcHRvcihjdHgsIHJpbmcpOworCQlscmMtPmNvbnRleHRfZGVzYyA9ICh1MzIp Y3R4X2Rlc2M7CisKKwkJLyogVGhlIHN0YXRlIHBhZ2UgaXMgYWZ0ZXIgUFBIV1NQICovCisJCWxy Yy0+cmluZ19sY3JhID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaikgKworCQkJCUxSQ19T VEFURV9QTiAqIFBBR0VfU0laRTsKKwkJbHJjLT5jb250ZXh0X2lkID0gKGNsaWVudC0+Y3R4X2lu ZGV4IDw8IEdVQ19FTENfQ1RYSURfT0ZGU0VUKSB8CisJCQkJKHJpbmctPmlkIDw8IEdVQ19FTENf RU5HSU5FX09GRlNFVCk7CisKKwkJb2JqID0gcmluZ2J1Zi0+b2JqOworCisJCWxyYy0+cmluZ19i ZWdpbiA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopOworCQlscmMtPnJpbmdfZW5kID0g bHJjLT5yaW5nX2JlZ2luICsgb2JqLT5iYXNlLnNpemUgLSAxOworCQlscmMtPnJpbmdfbmV4dF9m cmVlX2xvY2F0aW9uID0gbHJjLT5yaW5nX2JlZ2luOworCQlscmMtPnJpbmdfY3VycmVudF90YWls X3BvaW50ZXJfdmFsdWUgPSAwOworCisJCWRlc2MuZW5naW5lc191c2VkIHw9ICgxIDw8IHJpbmct PmlkKTsKKwl9CisKKwlXQVJOX09OKGRlc2MuZW5naW5lc191c2VkID09IDApOworCiAJLyoKIAkg KiBUaGUgQ1BVIGFkZHJlc3MgaXMgb25seSBuZWVkZWQgYXQgY2VydGFpbiBwb2ludHMsIHNvIGtt YXBfYXRvbWljIG9uCiAJICogZGVtYW5kIGluc3RlYWQgb2Ygc3RvcmluZyBpdCBpbiB0aGUgY3R4 IGRlc2NyaXB0b3IuCkBAIC01MDEsNiArNTQxLDI5IEBAIHN0YXRpYyBpbnQgZ3VjX2FkZF93b3Jr cXVldWVfaXRlbShzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpnYywKIAlyZXR1cm4gMDsKIH0KIAor I2RlZmluZSBDVFhfUklOR19CVUZGRVJfU1RBUlQJCTB4MDgKKworLyogVXBkYXRlIHRoZSByaW5n YnVmZmVyIHBvaW50ZXIgaW4gYSBzYXZlZCBjb250ZXh0IGltYWdlICovCitzdGF0aWMgdm9pZCBs cl9jb250ZXh0X3VwZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQoreworCWVu dW0gaW50ZWxfcmluZ19pZCByaW5nX2lkID0gcnEtPnJpbmctPmlkOworCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gcnEtPmN0eC0+ZW5naW5lW3JpbmdfaWRdLnN0YXRlOwor CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpyYl9vYmogPSBycS0+cmluZ2J1Zi0+b2JqOwor CXN0cnVjdCBwYWdlICpwYWdlOworCXVpbnQzMl90ICpyZWdfc3RhdGU7CisKKwlCVUdfT04oIWN0 eF9vYmopOworCVdBUk5fT04oIWk5MTVfZ2VtX29ial9pc19waW5uZWQoY3R4X29iaikpOworCVdB Uk5fT04oIWk5MTVfZ2VtX29ial9pc19waW5uZWQocmJfb2JqKSk7CisKKwlwYWdlID0gaTkxNV9n ZW1fb2JqZWN0X2dldF9wYWdlKGN0eF9vYmosIExSQ19TVEFURV9QTik7CisJcmVnX3N0YXRlID0g a21hcF9hdG9taWMocGFnZSk7CisKKwlyZWdfc3RhdGVbQ1RYX1JJTkdfQlVGRkVSX1NUQVJUKzFd ID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KHJiX29iaik7CisKKwlrdW5tYXBfYXRvbWljKHJl Z19zdGF0ZSk7Cit9CisKIC8qKgogICogaTkxNV9ndWNfc3VibWl0KCkgLSBTdWJtaXQgY29tbWFu ZHMgdGhyb3VnaCBHdUMKICAqIEBjbGllbnQ6CXRoZSBndWMgY2xpZW50IHdoZXJlIGNvbW1hbmRz IHdpbGwgZ28gdGhyb3VnaApAQCAtNTE3LDYgKzU4MCwxMCBAQCBpbnQgaTkxNV9ndWNfc3VibWl0 KHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCwKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwog CWludCBxX3JldCwgYl9yZXQ7CiAKKwkvKiBOZWVkIHRoaXMgYmVjYXVzZSBvZiB0aGUgZGVmZXJy ZWQgcGluIGN0eCBhbmQgcmluZyAqLworCS8qIFNoYWxsIHdlIG1vdmUgdGhpcyByaWdodCBhZnRl ciByaW5nIGlzIHBpbm5lZD8gKi8KKwlscl9jb250ZXh0X3VwZGF0ZShycSk7CisKIAlzcGluX2xv Y2tfaXJxc2F2ZSgmY2xpZW50LT53cV9sb2NrLCBmbGFncyk7CiAKIAlxX3JldCA9IGd1Y19hZGRf d29ya3F1ZXVlX2l0ZW0oY2xpZW50LCBycSk7CkBAIC02NDMsMTEgKzcxMCwxMyBAQCBzdGF0aWMg dm9pZCBndWNfY2xpZW50X2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKICAqIAkJVGhlIGtl cm5lbCBjbGllbnQgdG8gcmVwbGFjZSBFeGVjTGlzdCBzdWJtaXNzaW9uIGlzIGNyZWF0ZWQgd2l0 aAogICogCQlOT1JNQUwgcHJpb3JpdHkuIFByaW9yaXR5IG9mIGEgY2xpZW50IGZvciBzY2hlZHVs ZXIgY2FuIGJlIEhJR0gsCiAgKiAJCXdoaWxlIGEgcHJlZW1wdGlvbiBjb250ZXh0IGNhbiB1c2Ug Q1JJVElDQUwuCisgKiBAY3R4CQl0aGUgY29udGV4dCB0byBvd24gdGhlIGNsaWVudCAod2UgdXNl IHRoZSBkZWZhdWx0IHJlbmRlciBjb250ZXh0KQogICoKICAqIFJldHVybjoJQW4gaTkxNV9ndWNf Y2xpZW50IG9iamVjdCBpZiBzdWNjZXNzLgogICovCiBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2Ns aWVudCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkJdWlu dDMyX3QgcHJpb3JpdHkpCisJCQkJCQl1aW50MzJfdCBwcmlvcml0eSwKKwkJCQkJCXN0cnVjdCBp bnRlbF9jb250ZXh0ICpjdHgpCiB7CiAJc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqY2xpZW50Owog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CkBA IC02NjAsNiArNzI5LDcgQEAgc3RhdGljIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmd1Y19jbGll bnRfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCWNsaWVudC0+ZG9vcmJlbGxfaWQg PSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRDsKIAljbGllbnQtPnByaW9yaXR5ID0gcHJpb3JpdHk7 CisJY2xpZW50LT5vd25lciA9IGN0eDsKIAljbGllbnQtPmd1YyA9IGd1YzsKIAogCWNsaWVudC0+ Y3R4X2luZGV4ID0gKHVpbnQzMl90KWlkYV9zaW1wbGVfZ2V0KCZndWMtPmN0eF9pZHMsIDAsCkBA IC03OTMsMTAgKzg2MywxMSBAQCBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+ Z3VjOworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSBkZXZfcHJpdi0+cmluZ1tSQ1NdLmRl ZmF1bHRfY29udGV4dDsKIAlzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpjbGllbnQ7CiAKIAkvKiBj bGllbnQgZm9yIGV4ZWNidWYgc3VibWlzc2lvbiAqLwotCWNsaWVudCA9IGd1Y19jbGllbnRfYWxs b2MoZGV2LCBHVUNfQ1RYX1BSSU9SSVRZX0tNRF9OT1JNQUwpOworCWNsaWVudCA9IGd1Y19jbGll bnRfYWxsb2MoZGV2LCBHVUNfQ1RYX1BSSU9SSVRZX0tNRF9OT1JNQUwsIGN0eCk7CiAJaWYgKCFj bGllbnQpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIGV4ZWNidWYgZ3VjX2NsaWVu dFxuIik7CiAJCXJldHVybiAtRU5PTUVNOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAppbmRleCA5 MjY1OGNlLi40ZWMyZDI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaApAQCAtMjksNiArMjks NyBAQAogCiBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqY2xpZW50X29iajsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqb3duZXI7CiAJc3RydWN0 IGludGVsX2d1YyAqZ3VjOwogCXVpbnQzMl90IHByaW9yaXR5OwogCXVpbnQzMl90IGN0eF9pbmRl eDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggZjM0MTFmOC4uZTc3YjZiMCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTI2Myw3ICsyNjMsOCBAQCBpbnQgaW50ZWxfc2FuaXRp emVfZW5hYmxlX2V4ZWNsaXN0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZW5hYmxlX2V4 ZWNsaXN0cwogICovCiB1MzIgaW50ZWxfZXhlY2xpc3RzX2N0eF9pZChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqY3R4X29iaikKIHsKLQl1MzIgbHJjYSA9IGk5MTVfZ2VtX29ial9nZ3R0X29m ZnNldChjdHhfb2JqKTsKKwl1MzIgbHJjYSA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChjdHhf b2JqKSArCisJCQlMUkNfUFBIV1NQX1BOICogUEFHRV9TSVpFOwogCiAJLyogTFJDQSBpcyByZXF1 aXJlZCB0byBiZSA0SyBhbGlnbmVkIHNvIHRoZSBtb3JlIHNpZ25pZmljYW50IDIwIGJpdHMKIAkg KiBhcmUgZ2xvYmFsbHkgdW5pcXVlICovCkBAIC0yNzYsNyArMjc3LDggQEAgdWludDY0X3QgaW50 ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9yKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IHJpbmctPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKIAl1aW50NjRfdCBk ZXNjOwotCXVpbnQ2NF90IGxyY2EgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoY3R4X29iaik7 CisJdWludDY0X3QgbHJjYSA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChjdHhfb2JqKSArCisJ CQlMUkNfUFBIV1NQX1BOICogUEFHRV9TSVpFOwogCiAJV0FSTl9PTihscmNhICYgMHhGRkZGRkZG RjAwMDAwRkZGVUxMKTsKIApAQCAtMzUwLDcgKzM1Miw3IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3Rz X3VwZGF0ZV9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCiAJV0FSTl9P TighaTkxNV9nZW1fb2JqX2lzX3Bpbm5lZChjdHhfb2JqKSk7CiAJV0FSTl9PTighaTkxNV9nZW1f b2JqX2lzX3Bpbm5lZChyYl9vYmopKTsKIAotCXBhZ2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3Bh Z2UoY3R4X29iaiwgMSk7CisJcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShjdHhfb2Jq LCBMUkNfU1RBVEVfUE4pOwogCXJlZ19zdGF0ZSA9IGttYXBfYXRvbWljKHBhZ2UpOwogCiAJcmVn X3N0YXRlW0NUWF9SSU5HX1RBSUwrMV0gPSBycS0+dGFpbDsKQEAgLTU0OCw4ICs1NTAsNiBAQCBz dGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCkKIAogCWk5MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHJlcXVlc3QpOwog Ci0JcmVxdWVzdC0+dGFpbCA9IHJlcXVlc3QtPnJpbmdidWYtPnRhaWw7Ci0KIAlzcGluX2xvY2tf aXJxKCZyaW5nLT5leGVjbGlzdF9sb2NrKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoY3Vyc29y LCAmcmluZy0+ZXhlY2xpc3RfcXVldWUsIGV4ZWNsaXN0X2xpbmspCkBAIC03MDIsMTMgKzcwMiwx OSBAQCBzdGF0aWMgdm9pZAogaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiB7CiAJc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZyA9IHJlcXVlc3QtPnJpbmc7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gcmVxdWVzdC0+aTkxNTsKIAogCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNl KHJlcXVlc3QtPnJpbmdidWYpOwogCisJcmVxdWVzdC0+dGFpbCA9IHJlcXVlc3QtPnJpbmdidWYt PnRhaWw7CisKIAlpZiAoaW50ZWxfcmluZ19zdG9wcGVkKHJpbmcpKQogCQlyZXR1cm47CiAKLQll eGVjbGlzdHNfY29udGV4dF9xdWV1ZShyZXF1ZXN0KTsKKwlpZiAoZGV2X3ByaXYtPmd1Yy5leGVj YnVmX2NsaWVudCkKKwkJaTkxNV9ndWNfc3VibWl0KGRldl9wcml2LT5ndWMuZXhlY2J1Zl9jbGll bnQsIHJlcXVlc3QpOworCWVsc2UKKwkJZXhlY2xpc3RzX2NvbnRleHRfcXVldWUocmVxdWVzdCk7 CiB9CiAKIHN0YXRpYyB2b2lkIF9fd3JhcF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZikKQEAgLTk5OCw2ICsxMDA0LDcgQEAgaW50IGxvZ2ljYWxfcmluZ19mbHVz aF9hbGxfY2FjaGVzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogCiBzdGF0aWMg aW50IGludGVsX2xyX2NvbnRleHRfcGluKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEp CiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcnEtPmk5MTU7CiAJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJxLT5yaW5nOwogCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpjdHhfb2JqID0gcnEtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKIAlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJxLT5yaW5nYnVmOwpAQCAtMTAwNSwx NCArMTAxMiwxOCBAQCBzdGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfcGluKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcnEpCiAKIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJpbmct PmRldi0+c3RydWN0X211dGV4KSk7CiAJaWYgKHJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0ucGlu X2NvdW50KysgPT0gMCkgewotCQlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4oY3R4X29iaiwK LQkJCQlHRU44X0xSX0NPTlRFWFRfQUxJR04sIDApOworCQlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0 dF9waW4oY3R4X29iaiwgR0VOOF9MUl9DT05URVhUX0FMSUdOLAorCQkJCVBJTl9PRkZTRVRfQklB UyB8IEdVQ19XT1BDTV9UT1ApOwogCQlpZiAocmV0KQogCQkJZ290byByZXNldF9waW5fY291bnQ7 CiAKIAkJcmV0ID0gaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmoocmluZy0+ZGV2LCBy aW5nYnVmKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gdW5waW5fY3R4X29iajsKKworCQkvKiBJbnZh bGlkYXRlIEd1QyBUTEIuICovCisJCWlmIChpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKKwkJ CUk5MTVfV1JJVEUoR0VOOF9HVENSLCBHRU44X0dUQ1JfSU5WQUxJREFURSk7CiAJfQogCiAJcmV0 dXJuIHJldDsKQEAgLTIxMzcsNyArMjE0OCw3IEBAIHBvcHVsYXRlX2xyX2NvbnRleHQoc3RydWN0 IGludGVsX2NvbnRleHQgKmN0eCwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vCiAK IAkvKiBUaGUgc2Vjb25kIHBhZ2Ugb2YgdGhlIGNvbnRleHQgb2JqZWN0IGNvbnRhaW5zIHNvbWUg ZmllbGRzIHdoaWNoIG11c3QKIAkgKiBiZSBzZXQgdXAgcHJpb3IgdG8gdGhlIGZpcnN0IGV4ZWN1 dGlvbi4gKi8KLQlwYWdlID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGN0eF9vYmosIDEpOwor CXBhZ2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoY3R4X29iaiwgTFJDX1NUQVRFX1BOKTsK IAlyZWdfc3RhdGUgPSBrbWFwX2F0b21pYyhwYWdlKTsKIAogCS8qIEEgY29udGV4dCBpcyBhY3R1 YWxseSBhIGJpZyBiYXRjaCBidWZmZXIgd2l0aCBzZXZlcmFsIE1JX0xPQURfUkVHSVNURVJfSU1N CkBAIC0yMzA3LDEyICsyMzE4LDEzIEBAIHN0YXRpYyB2b2lkIGxyY19zZXR1cF9oYXJkd2FyZV9z dGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqZGVmYXVsdF9jdHhfb2JqKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IHBhZ2UgKnBh Z2U7CiAKLQkvKiBUaGUgc3RhdHVzIHBhZ2UgaXMgb2Zmc2V0IDAgZnJvbSB0aGUgZGVmYXVsdCBj b250ZXh0IG9iamVjdAotCSAqIGluIExSQyBtb2RlLiAqLwotCXJpbmctPnN0YXR1c19wYWdlLmdm eF9hZGRyID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KGRlZmF1bHRfY3R4X29iaik7Ci0Jcmlu Zy0+c3RhdHVzX3BhZ2UucGFnZV9hZGRyID0KLQkJCWttYXAoc2dfcGFnZShkZWZhdWx0X2N0eF9v YmotPnBhZ2VzLT5zZ2wpKTsKKwkvKiBUaGUgSFdTUCBpcyBwYXJ0IG9mIHRoZSBkZWZhdWx0IGNv bnRleHQgb2JqZWN0IGluIExSQyBtb2RlLiAqLworCXJpbmctPnN0YXR1c19wYWdlLmdmeF9hZGRy ID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KGRlZmF1bHRfY3R4X29iaikKKwkJCSsgTFJDX1BQ SFdTUF9QTiAqIFBBR0VfU0laRTsKKwlwYWdlID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGRl ZmF1bHRfY3R4X29iaiwgTFJDX1BQSFdTUF9QTik7CisJcmluZy0+c3RhdHVzX3BhZ2UucGFnZV9h ZGRyID0ga21hcChwYWdlKTsKIAlyaW5nLT5zdGF0dXNfcGFnZS5vYmogPSBkZWZhdWx0X2N0eF9v Ymo7CiAKIAlJOTE1X1dSSVRFKFJJTkdfSFdTX1BHQShyaW5nLT5tbWlvX2Jhc2UpLApAQCAtMjMz OCw2ICsyMzUwLDcgQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfY3JlYXRlKHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjdHgsCiB7CiAJY29uc3QgYm9vbCBpc19nbG9iYWxfZGVmYXVsdF9j dHggPSAoY3R4ID09IHJpbmctPmRlZmF1bHRfY29udGV4dCk7CiAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IHJpbmctPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqOwog CXVpbnQzMl90IGNvbnRleHRfc2l6ZTsKIAlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZjsKQEAgLTIzNDgsNiArMjM2MSw5IEBAIGludCBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2Ny ZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAogCiAJY29udGV4dF9zaXplID0gcm91bmRf dXAoZ2V0X2xyX2NvbnRleHRfc2l6ZShyaW5nKSwgNDA5Nik7CiAKKwkvKiBPbmUgZXh0cmEgcGFn ZSBhcyB0aGUgc2hhcmluZyBkYXRhIGJldHdlZW4gZHJpdmVyIGFuZCBHdUMgKi8KKwljb250ZXh0 X3NpemUgKz0gUEFHRV9TSVpFICogTFJDX1BQSFdTUF9QTjsKKwogCWN0eF9vYmogPSBpOTE1X2dl bV9hbGxvY19vYmplY3QoZGV2LCBjb250ZXh0X3NpemUpOwogCWlmICghY3R4X29iaikgewogCQlE Uk1fREVCVUdfRFJJVkVSKCJBbGxvYyBMUkMgYmFja2luZyBvYmogZmFpbGVkLlxuIik7CkBAIC0y MzU1LDEzICsyMzcxLDE4IEBAIGludCBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2NyZWF0ZShz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAogCX0KIAogCWlmIChpc19nbG9iYWxfZGVmYXVsdF9j dHgpIHsKLQkJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKGN0eF9vYmosIEdFTjhfTFJfQ09O VEVYVF9BTElHTiwgMCk7CisJCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihjdHhfb2JqLCBH RU44X0xSX0NPTlRFWFRfQUxJR04sCisJCQkJUElOX09GRlNFVF9CSUFTIHwgR1VDX1dPUENNX1RP UCk7CiAJCWlmIChyZXQpIHsKIAkJCURSTV9ERUJVR19EUklWRVIoIlBpbiBMUkMgYmFja2luZyBv YmogZmFpbGVkOiAlZFxuIiwKIAkJCQkJcmV0KTsKIAkJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJl bmNlKCZjdHhfb2JqLT5iYXNlKTsKIAkJCXJldHVybiByZXQ7CiAJCX0KKworCQkvKiBJbnZhbGlk YXRlIEd1QyBUTEIuICovCisJCWlmIChpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKKwkJCUk5 MTVfV1JJVEUoR0VOOF9HVENSLCBHRU44X0dUQ1JfSU5WQUxJREFURSk7CiAJfQogCiAJcmluZ2J1 ZiA9IGt6YWxsb2Moc2l6ZW9mKCpyaW5nYnVmKSwgR0ZQX0tFUk5FTCk7CkBAIC0yMzc0LDcgKzIz OTUsNyBAQCBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9jcmVhdGUoc3RydWN0IGludGVs X2NvbnRleHQgKmN0eCwKIAogCXJpbmdidWYtPnJpbmcgPSByaW5nOwogCi0JcmluZ2J1Zi0+c2l6 ZSA9IDMyICogUEFHRV9TSVpFOworCXJpbmdidWYtPnNpemUgPSA0ICogUEFHRV9TSVpFOwogCXJp bmdidWYtPmVmZmVjdGl2ZV9zaXplID0gcmluZ2J1Zi0+c2l6ZTsKIAlyaW5nYnVmLT5oZWFkID0g MDsKIAlyaW5nYnVmLT50YWlsID0gMDsKQEAgLTI0NzQsNyArMjQ5NSw3IEBAIHZvaWQgaW50ZWxf bHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJV0FSTigxLCAiRmFp bGVkIGdldF9wYWdlcyBmb3IgY29udGV4dCBvYmpcbiIpOwogCQkJY29udGludWU7CiAJCX0KLQkJ cGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShjdHhfb2JqLCAxKTsKKwkJcGFnZSA9IGk5 MTVfZ2VtX29iamVjdF9nZXRfcGFnZShjdHhfb2JqLCBMUkNfU1RBVEVfUE4pOwogCQlyZWdfc3Rh dGUgPSBrbWFwX2F0b21pYyhwYWdlKTsKIAogCQlyZWdfc3RhdGVbQ1RYX1JJTkdfSEVBRCsxXSA9 IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCmluZGV4IDVlNTc4OGMuLjRjYzU0YjMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5oCkBAIC02OCw2ICs2OCwxMiBAQCBzdGF0aWMgaW5saW5lIHZv aWQgaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYsCiB9CiAKIC8qIExvZ2ljYWwgUmluZyBDb250ZXh0cyAqLworCisvKiBPbmUgZXh0cmEgcGFn ZSBpcyBhZGRlZCBiZWZvcmUgTFJDIGZvciBHdUMgYXMgc2hhcmVkIGRhdGEgKi8KKyNkZWZpbmUg TFJDX0dVQ1NIUl9QTgkoMCkKKyNkZWZpbmUgTFJDX1BQSFdTUF9QTgkoTFJDX0dVQ1NIUl9QTiAr IDEpCisjZGVmaW5lIExSQ19TVEFURV9QTgkoTFJDX1BQSFdTUF9QTiArIDEpCisKIHZvaWQgaW50 ZWxfbHJfY29udGV4dF9mcmVlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwogaW50IGludGVs X2xyX2NvbnRleHRfZGVmZXJyZWRfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCiAJ CQkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKLS0gCjEuOS4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=