From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: [PATCH v2] drm/i915: Sanitize engine context sizes Date: Wed, 26 Apr 2017 15:20:38 +0300 Message-ID: <1493209238-32650-1-git-send-email-joonas.lahtinen@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel graphics driver community testing & development Cc: Paulo Zanoni , Rodrigo Vivi , intel-gvt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UHJlLWNhbGN1bGF0ZSBlbmdpbmUgY29udGV4dCBzaXplIGJhc2VkIG9uIGVuZ2luZSBjbGFzcyBh bmQgZGV2aWNlCmdlbmVyYXRpb24gYW5kIHN0b3JlIGl0IGluIHRoZSBlbmdpbmUgaW5zdGFuY2Uu Cgp2MjoKCS0gU3F1YXNoIGFuZCBnZXQgcmlkIG9mIGh3X2NvbnRleHRfc2l6ZSAoQ2hyaXMpCgpT aWduZWQtb2ZmLWJ5OiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRl bC5jb20+CkNjOiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KQ2M6IFJv ZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVs ZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJz dWxpbkBpbnRlbC5jb20+CkNjOiBPc2NhciBNYXRlbyA8b3NjYXIubWF0ZW9AaW50ZWwuY29tPgpD YzogWmhlbnl1IFdhbmcgPHpoZW55dXdAbGludXguaW50ZWwuY29tPgpDYzogaW50ZWwtZ3Z0LWRl dkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2No ZWR1bGVyLmMgICAgICAgfCAgNiArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg ICAgICAgICAgICB8ICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQu YyAgICB8IDU5ICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3VjX3N1Ym1pc3Npb24uYyB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oICAgICAgICAgICAgfCAxMCAtLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdp bmVfY3MuYyAgICAgfCA3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgICB8IDU0ICstLS0tLS0tLS0tLS0tLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggICAgICAgICAgIHwgIDIgLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICAgIHwgIDcgKy0tCiA5IGZp bGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDEyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2NoZWR1bGVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndnQvc2NoZWR1bGVyLmMKaW5kZXggYTc3ZGIyMy4uYWM1MzhkYyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3NjaGVkdWxlci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d2dC9zY2hlZHVsZXIuYwpAQCAtNjksOCArNjksNyBAQCBzdGF0aWMgaW50IHBv cHVsYXRlX3NoYWRvd19jb250ZXh0KHN0cnVjdCBpbnRlbF92Z3B1X3dvcmtsb2FkICp3b3JrbG9h ZCkKIAlndnRfZGJnX3NjaGVkKCJyaW5nIGlkICVkIHdvcmtsb2FkIGxyY2EgJXgiLCByaW5nX2lk LAogCQkJd29ya2xvYWQtPmN0eF9kZXNjLmxyY2EpOwogCi0JY29udGV4dF9wYWdlX251bSA9IGlu dGVsX2xyX2NvbnRleHRfc2l6ZSgKLQkJCWd2dC0+ZGV2X3ByaXYtPmVuZ2luZVtyaW5nX2lkXSk7 CisJY29udGV4dF9wYWdlX251bSA9IGd2dC0+ZGV2X3ByaXYtPmVuZ2luZVtyaW5nX2lkXS0+Y29u dGV4dF9zaXplOwogCiAJY29udGV4dF9wYWdlX251bSA9IGNvbnRleHRfcGFnZV9udW0gPj4gUEFH RV9TSElGVDsKIApAQCAtMzMzLDggKzMzMiw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9ndWVzdF9j b250ZXh0KHN0cnVjdCBpbnRlbF92Z3B1X3dvcmtsb2FkICp3b3JrbG9hZCkKIAlndnRfZGJnX3Nj aGVkKCJyaW5nIGlkICVkIHdvcmtsb2FkIGxyY2EgJXhcbiIsIHJpbmdfaWQsCiAJCQl3b3JrbG9h ZC0+Y3R4X2Rlc2MubHJjYSk7CiAKLQljb250ZXh0X3BhZ2VfbnVtID0gaW50ZWxfbHJfY29udGV4 dF9zaXplKAotCQkJZ3Z0LT5kZXZfcHJpdi0+ZW5naW5lW3JpbmdfaWRdKTsKKwljb250ZXh0X3Bh Z2VfbnVtID0gZ3Z0LT5kZXZfcHJpdi0+ZW5naW5lW3JpbmdfaWRdLT5jb250ZXh0X3NpemU7CiAK IAljb250ZXh0X3BhZ2VfbnVtID0gY29udGV4dF9wYWdlX251bSA+PiBQQUdFX1NISUZUOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAzNTdiNmM2Li40YjU0YjkyIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKQEAgLTIzNTksNyArMjM1OSw2IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRl IHsKIAkgKi8KIAlzdHJ1Y3QgbXV0ZXggYXZfbXV0ZXg7CiAKLQl1aW50MzJfdCBod19jb250ZXh0 X3NpemU7CiAJc3RydWN0IGxpc3RfaGVhZCBjb250ZXh0X2xpc3Q7CiAKIAl1MzIgZmRpX3J4X2Nv bmZpZzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCA4YmQwYzQ5 Li5iNjlhMDI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCkBAIC05 MiwzMyArOTIsNiBAQAogCiAjZGVmaW5lIEFMTF9MM19TTElDRVMoZGV2KSAoMSA8PCBOVU1fTDNf U0xJQ0VTKGRldikpIC0gMQogCi1zdGF0aWMgaW50IGdldF9jb250ZXh0X3NpemUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCWludCByZXQ7Ci0JdTMyIHJlZzsKLQotCXN3 aXRjaCAoSU5URUxfR0VOKGRldl9wcml2KSkgewotCWNhc2UgNjoKLQkJcmVnID0gSTkxNV9SRUFE KENYVF9TSVpFKTsKLQkJcmV0ID0gR0VONl9DWFRfVE9UQUxfU0laRShyZWcpICogNjQ7Ci0JCWJy ZWFrOwotCWNhc2UgNzoKLQkJcmVnID0gSTkxNV9SRUFEKEdFTjdfQ1hUX1NJWkUpOwotCQlpZiAo SVNfSEFTV0VMTChkZXZfcHJpdikpCi0JCQlyZXQgPSBIU1dfQ1hUX1RPVEFMX1NJWkU7Ci0JCWVs c2UKLQkJCXJldCA9IEdFTjdfQ1hUX1RPVEFMX1NJWkUocmVnKSAqIDY0OwotCQlicmVhazsKLQlj YXNlIDg6Ci0JCXJldCA9IEdFTjhfQ1hUX1RPVEFMX1NJWkU7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6 Ci0JCUJVRygpOwotCX0KLQotCXJldHVybiByZXQ7Ci19Ci0KIHZvaWQgaTkxNV9nZW1fY29udGV4 dF9mcmVlKHN0cnVjdCBrcmVmICpjdHhfcmVmKQogewogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHggPSBjb250YWluZXJfb2YoY3R4X3JlZiwgdHlwZW9mKCpjdHgpLCByZWYpOwpAQCAtMjY2 LDExICsyMzksMTIgQEAgX19jcmVhdGVfaHdfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJbGlzdF9hZGRfdGFpbCgmY3R4LT5saW5rLCAmZGV2X3ByaXYtPmNvbnRl eHRfbGlzdCk7CiAJY3R4LT5pOTE1ID0gZGV2X3ByaXY7CiAKLQlpZiAoZGV2X3ByaXYtPmh3X2Nv bnRleHRfc2l6ZSkgeworCWlmIChkZXZfcHJpdi0+ZW5naW5lW1JDU10tPmNvbnRleHRfc2l6ZSkg ewogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCQlzdHJ1Y3QgaTkxNV92bWEg KnZtYTsKIAotCQlvYmogPSBhbGxvY19jb250ZXh0X29iaihkZXZfcHJpdiwgZGV2X3ByaXYtPmh3 X2NvbnRleHRfc2l6ZSk7CisJCW9iaiA9IGFsbG9jX2NvbnRleHRfb2JqKGRldl9wcml2LAorCQkJ CQlkZXZfcHJpdi0+ZW5naW5lW1JDU10tPmNvbnRleHRfc2l6ZSk7CiAJCWlmIChJU19FUlIob2Jq KSkgewogCQkJcmV0ID0gUFRSX0VSUihvYmopOwogCQkJZ290byBlcnJfb3V0OwpAQCAtNDQzLDIx ICs0MTcsNiBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAlCVUlMRF9CVUdfT04oTUFYX0NPTlRFWFRfSFdfSUQgPiBJTlRfTUFY KTsKIAlpZGFfaW5pdCgmZGV2X3ByaXYtPmNvbnRleHRfaHdfaWRhKTsKIAotCWlmIChpOTE1LmVu YWJsZV9leGVjbGlzdHMpIHsKLQkJLyogTkI6IGludGVudGlvbmFsbHkgbGVmdCBibGFuay4gV2Ug d2lsbCBhbGxvY2F0ZSBvdXIgb3duCi0JCSAqIGJhY2tpbmcgb2JqZWN0cyBhcyB3ZSBuZWVkIHRo ZW0sIHRoYW5rIHlvdSB2ZXJ5IG11Y2ggKi8KLQkJZGV2X3ByaXYtPmh3X2NvbnRleHRfc2l6ZSA9 IDA7Ci0JfSBlbHNlIGlmIChIQVNfSFdfQ09OVEVYVFMoZGV2X3ByaXYpKSB7Ci0JCWRldl9wcml2 LT5od19jb250ZXh0X3NpemUgPQotCQkJcm91bmRfdXAoZ2V0X2NvbnRleHRfc2l6ZShkZXZfcHJp diksCi0JCQkJIEk5MTVfR1RUX1BBR0VfU0laRSk7Ci0JCWlmIChkZXZfcHJpdi0+aHdfY29udGV4 dF9zaXplID4gKDE8PDIwKSkgewotCQkJRFJNX0RFQlVHX0RSSVZFUigiRGlzYWJsaW5nIEhXIENv bnRleHRzOyBpbnZhbGlkIHNpemUgJWRcbiIsCi0JCQkJCSBkZXZfcHJpdi0+aHdfY29udGV4dF9z aXplKTsKLQkJCWRldl9wcml2LT5od19jb250ZXh0X3NpemUgPSAwOwotCQl9Ci0JfQotCiAJY3R4 ID0gaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoZGV2X3ByaXYsIE5VTEwpOwogCWlmIChJU19FUlIo Y3R4KSkgewogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgZGVmYXVsdCBnbG9iYWwgY29u dGV4dCAoZXJyb3IgJWxkKVxuIiwKQEAgLTQ3OCw3ICs0MzcsNyBAQCBpbnQgaTkxNV9nZW1fY29u dGV4dF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCURSTV9ERUJV R19EUklWRVIoIiVzIGNvbnRleHQgc3VwcG9ydCBpbml0aWFsaXplZFxuIiwKIAkJCWk5MTUuZW5h YmxlX2V4ZWNsaXN0cyA/ICJMUiIgOgotCQkJZGV2X3ByaXYtPmh3X2NvbnRleHRfc2l6ZSA/ICJI VyIgOiAiZmFrZSIpOworCQkJZGV2X3ByaXYtPmVuZ2luZVtSQ1NdLT5jb250ZXh0X3NpemUgPyAi SFciIDogImZha2UiKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtOTQxLDExICs5MDAsNiBAQCBpbnQg aTkxNV9nZW1fc3dpdGNoX3RvX2tlcm5lbF9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGJvb2wgY29udGV4dHNfZW5hYmxl ZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXJldHVybiBpOTE1LmVuYWJsZV9leGVjbGlz dHMgfHwgdG9faTkxNShkZXYpLT5od19jb250ZXh0X3NpemU7Ci19Ci0KIHN0YXRpYyBib29sIGNs aWVudF9pc19iYW5uZWQoc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2KQog ewogCXJldHVybiBmaWxlX3ByaXYtPmNvbnRleHRfYmFucyA+IEk5MTVfTUFYX0NMSUVOVF9DT05U RVhUX0JBTlM7CkBAIC05NTQsMTIgKzkwOCwxMyBAQCBzdGF0aWMgYm9vbCBjbGllbnRfaXNfYmFu bmVkKHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdikKIGludCBpOTE1X2dl bV9jb250ZXh0X2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAogCQkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRl eHRfY3JlYXRlICphcmdzID0gZGF0YTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpm aWxlX3ByaXYgPSBmaWxlLT5kcml2ZXJfcHJpdjsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAq Y3R4OwogCWludCByZXQ7CiAKLQlpZiAoIWNvbnRleHRzX2VuYWJsZWQoZGV2KSkKKwlpZiAoIWRl dl9wcml2LT5lbmdpbmVbUkNTXS0+Y29udGV4dF9zaXplKQogCQlyZXR1cm4gLUVOT0RFVjsKIAog CWlmIChhcmdzLT5wYWQgIT0gMCkKQEAgLTk3Nyw3ICs5MzIsNyBAQCBpbnQgaTkxNV9nZW1fY29u dGV4dF9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlp ZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JY3R4ID0gaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQo dG9faTkxNShkZXYpLCBmaWxlX3ByaXYpOworCWN0eCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0 KGRldl9wcml2LCBmaWxlX3ByaXYpOwogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp OwogCWlmIChJU19FUlIoY3R4KSkKIAkJcmV0dXJuIFBUUl9FUlIoY3R4KTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwppbmRleCBhYjUxNDBiLi42Yzc4NjM3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC0xMDUxLDgg KzEwNTEsNyBAQCBzdGF0aWMgaW50IGd1Y19hZHNfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndWMgKmd1 YykKIAkJZGV2X3ByaXYtPmVuZ2luZVtSQ1NdLT5zdGF0dXNfcGFnZS5nZ3R0X29mZnNldDsKIAog CWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkKLQkJYmxvYi0+YWRzLmVuZ19z dGF0ZV9zaXplW2VuZ2luZS0+Z3VjX2lkXSA9Ci0JCQlpbnRlbF9scl9jb250ZXh0X3NpemUoZW5n aW5lKTsKKwkJYmxvYi0+YWRzLmVuZ19zdGF0ZV9zaXplW2VuZ2luZS0+Z3VjX2lkXSA9IGVuZ2lu ZS0+Y29udGV4dF9zaXplOwogCiAJYmFzZSA9IGd1Y19nZ3R0X29mZnNldCh2bWEpOwogCWJsb2It PmFkcy5zY2hlZHVsZXJfcG9saWNpZXMgPSBiYXNlICsgcHRyX29mZnNldChibG9iLCBwb2xpY2ll cyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCA0YzcyYWRhLi5lZTgxNzBjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmgKQEAgLTMzNzAsMTYgKzMzNzAsNiBAQCBlbnVtIHNrbF9kaXNwX3Bv d2VyX3dlbGxzIHsKICNkZWZpbmUgR0VON19DWFRfVkZTVEFURV9TSVpFKGN0eF9yZWcpCSgoKGN0 eF9yZWcpID4+IDApICYgMHgzZikKICNkZWZpbmUgR0VON19DWFRfVE9UQUxfU0laRShjdHhfcmVn KQkoR0VON19DWFRfRVhURU5ERURfU0laRShjdHhfcmVnKSArIFwKIAkJCQkJIEdFTjdfQ1hUX1ZG U1RBVEVfU0laRShjdHhfcmVnKSkKLS8qIEhhc3dlbGwgZG9lcyBoYXZlIHRoZSBDWFRfU0laRSBy ZWdpc3RlciBob3dldmVyIGl0IGRvZXMgbm90IGFwcGVhciB0byBiZQotICogdmFsaWQuIE5vdywg ZG9jcyBleHBsYWluIGluIGR3b3JkcyB3aGF0IGlzIGluIHRoZSBjb250ZXh0IG9iamVjdC4gVGhl IGZ1bGwKLSAqIHNpemUgaXMgNzA3MjAgYnl0ZXMsIGhvd2V2ZXIsIHRoZSBwb3dlciBjb250ZXh0 IGFuZCBleGVjbGlzdCBjb250ZXh0IHdpbGwKLSAqIG5ldmVyIGJlIHNhdmVkIChwb3dlciBjb250 ZXh0IGlzIHN0b3JlZCBlbHNld2hlcmUsIGFuZCBleGVjbGlzdHMgZG9uJ3Qgd29yawotICogb24g SFNXKSAtIHNvIHRoZSBmaW5hbCBzaXplLCBpbmNsdWRpbmcgdGhlIGV4dHJhIHN0YXRlIHJlcXVp cmVkIGZvciB0aGUKLSAqIFJlc291cmNlIFN0cmVhbWVyLCBpcyA2Njk0NCBieXRlcywgd2hpY2gg cm91bmRzIHRvIDE3IHBhZ2VzLgotICovCi0jZGVmaW5lIEhTV19DWFRfVE9UQUxfU0laRQkJKDE3 ICogUEFHRV9TSVpFKQotLyogU2FtZSBhcyBIYXN3ZWxsLCBidXQgNzIwNjQgYnl0ZXMgbm93LiAq LwotI2RlZmluZSBHRU44X0NYVF9UT1RBTF9TSVpFCQkoMTggKiBQQUdFX1NJWkUpCiAKIGVudW0g ewogCUlOVEVMX0FEVkFOQ0VEX0NPTlRFWFQgPSAwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYwppbmRleCA4MmEyNzRiLi4yNGJjZDlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9lbmdpbmVfY3MuYwpAQCAtMjYsNiArMjYsMjIgQEAKICNpbmNsdWRlICJpbnRlbF9yaW5n YnVmZmVyLmgiCiAjaW5jbHVkZSAiaW50ZWxfbHJjLmgiCiAKKy8qIEhhc3dlbGwgZG9lcyBoYXZl IHRoZSBDWFRfU0laRSByZWdpc3RlciBob3dldmVyIGl0IGRvZXMgbm90IGFwcGVhciB0byBiZQor ICogdmFsaWQuIE5vdywgZG9jcyBleHBsYWluIGluIGR3b3JkcyB3aGF0IGlzIGluIHRoZSBjb250 ZXh0IG9iamVjdC4gVGhlIGZ1bGwKKyAqIHNpemUgaXMgNzA3MjAgYnl0ZXMsIGhvd2V2ZXIsIHRo ZSBwb3dlciBjb250ZXh0IGFuZCBleGVjbGlzdCBjb250ZXh0IHdpbGwKKyAqIG5ldmVyIGJlIHNh dmVkIChwb3dlciBjb250ZXh0IGlzIHN0b3JlZCBlbHNld2hlcmUsIGFuZCBleGVjbGlzdHMgZG9u J3Qgd29yaworICogb24gSFNXKSAtIHNvIHRoZSBmaW5hbCBzaXplLCBpbmNsdWRpbmcgdGhlIGV4 dHJhIHN0YXRlIHJlcXVpcmVkIGZvciB0aGUKKyAqIFJlc291cmNlIFN0cmVhbWVyLCBpcyA2Njk0 NCBieXRlcywgd2hpY2ggcm91bmRzIHRvIDE3IHBhZ2VzLgorICovCisjZGVmaW5lIEhTV19DWFRf VE9UQUxfU0laRQkJKDE3ICogUEFHRV9TSVpFKQorLyogU2FtZSBhcyBIYXN3ZWxsLCBidXQgNzIw NjQgYnl0ZXMgbm93LiAqLworI2RlZmluZSBHRU44X0NYVF9UT1RBTF9TSVpFCQkoMTggKiBQQUdF X1NJWkUpCisKKyNkZWZpbmUgR0VOOF9MUl9DT05URVhUX1JFTkRFUl9TSVpFCSgyMCAqIFBBR0Vf U0laRSkKKyNkZWZpbmUgR0VOOV9MUl9DT05URVhUX1JFTkRFUl9TSVpFCSgyMiAqIFBBR0VfU0la RSkKKworI2RlZmluZSBHRU44X0xSX0NPTlRFWFRfT1RIRVJfU0laRQkoIDIgKiBQQUdFX1NJWkUp CisKIHN0cnVjdCBlbmdpbmVfY2xhc3NfaW5mbyB7CiAJY29uc3QgY2hhciAqbmFtZTsKIAlpbnQg KCppbml0X2xlZ2FjeSkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKQEAgLTEwNyw2 ICsxMjMsNjQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBlbmdpbmVfaW5mbyBpbnRlbF9lbmdpbmVz W10gPSB7CiAJfSwKIH07CiAKKy8qKgorICogX19faW50ZWxfZW5naW5lX2NvbnRleHRfc2l6ZSgp IC0gcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBjb250ZXh0IGZvciBhbiBlbmdpbmUKKyAqIEBkZXZf cHJpdjogaTkxNSBkZXZpY2UgcHJpdmF0ZQorICogQGNsYXNzOiBlbmdpbmUgY2xhc3MKKyAqCisg KiBFYWNoIGVuZ2luZSBjbGFzcyBtYXkgcmVxdWlyZSBhIGRpZmZlcmVudCBhbW91bnQgb2Ygc3Bh Y2UgZm9yIGEgY29udGV4dAorICogaW1hZ2UuCisgKgorICogUmV0dXJuOiBzaXplIChpbiBieXRl cykgb2YgYW4gZW5naW5lIGNsYXNzIHNwZWNpZmljIGNvbnRleHQgaW1hZ2UKKyAqCisgKiBOb3Rl OiB0aGlzIHNpemUgaW5jbHVkZXMgdGhlIEhXU1AsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIGNvbnRl eHQgaW1hZ2UKKyAqIGluIExSQyBtb2RlLCBidXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgInNoYXJl ZCBkYXRhIHBhZ2UiIHVzZWQgd2l0aAorICogR3VDIHN1Ym1pc3Npb24uIFRoZSBjYWxsZXIgc2hv dWxkIGFjY291bnQgZm9yIHRoaXMgaWYgdXNpbmcgdGhlIEd1Qy4KKyAqLworc3RhdGljIHUzMgor X19pbnRlbF9lbmdpbmVfY29udGV4dF9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgdTggY2xhc3MpCit7CisJdTMyIHJlZzsKKworCXN3aXRjaCAoY2xhc3MpIHsKKwljYXNl IFJFTkRFUl9DTEFTUzoKKwkJc3dpdGNoIChJTlRFTF9HRU4oZGV2X3ByaXYpKSB7CisJCWRlZmF1 bHQ6CisJCQlNSVNTSU5HX0NBU0UoSU5URUxfR0VOKGRldl9wcml2KSk7CisJCWNhc2UgOToKKwkJ CXJldHVybiBHRU45X0xSX0NPTlRFWFRfUkVOREVSX1NJWkU7CisJCWNhc2UgODoKKwkJCXJldHVy biBpOTE1LmVuYWJsZV9leGVjbGlzdHMgPworCQkJICAgICAgIEdFTjhfTFJfQ09OVEVYVF9SRU5E RVJfU0laRSA6CisJCQkgICAgICAgR0VOOF9DWFRfVE9UQUxfU0laRTsKKwkJY2FzZSA3OgorCQkJ aWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKQorCQkJCXJldHVybiBIU1dfQ1hUX1RPVEFMX1NJWkU7 CisKKwkJCXJlZyA9IEk5MTVfUkVBRChHRU43X0NYVF9TSVpFKTsKKwkJCXJldHVybiBHRU43X0NY VF9UT1RBTF9TSVpFKHJlZykgKiA2NDsKKwkJY2FzZSA2OgorCQkJcmVnID0gSTkxNV9SRUFEKENY VF9TSVpFKTsKKwkJCXJldHVybiBHRU42X0NYVF9UT1RBTF9TSVpFKHJlZykgKiA2NDsKKwkJY2Fz ZSA1OgorCQljYXNlIDQ6CisJCWNhc2UgMzoKKwkJY2FzZSAyOgorCQkvKiBGb3IgdGhlIHNwZWNp YWwgZGF5IHdoZW4gaTgxMCBnZXRzIG1lcmdlZC4gKi8KKwkJY2FzZSAxOgorCQkJcmV0dXJuIDA7 CisJCX0KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJTUlTU0lOR19DQVNFKGNsYXNzKTsKKwljYXNl IFZJREVPX0RFQ09ERV9DTEFTUzoKKwljYXNlIFZJREVPX0VOSEFOQ0VNRU5UX0NMQVNTOgorCWNh c2UgQ09QWV9FTkdJTkVfQ0xBU1M6CisJCVdBUk5fT04oSU5URUxfR0VOKGRldl9wcml2KSA8IDgp OworCQlyZXR1cm4gR0VOOF9MUl9DT05URVhUX09USEVSX1NJWkU7CisJfQorfQorCiBzdGF0aWMg aW50CiBpbnRlbF9lbmdpbmVfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCQkgICBlbnVtIGludGVsX2VuZ2luZV9pZCBpZCkKQEAgLTEzNCw2ICsyMDgsMTAgQEAgaW50 ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAllbmdp bmUtPmlycV9zaGlmdCA9IGluZm8tPmlycV9zaGlmdDsKIAllbmdpbmUtPmNsYXNzID0gaW5mby0+ Y2xhc3M7CiAJZW5naW5lLT5pbnN0YW5jZSA9IGluZm8tPmluc3RhbmNlOworCWVuZ2luZS0+Y29u dGV4dF9zaXplID0gX19pbnRlbF9lbmdpbmVfY29udGV4dF9zaXplKGRldl9wcml2LAorCQkJCQkJ CSAgIGVuZ2luZS0+Y2xhc3MpOworCWlmIChXQVJOX09OKGVuZ2luZS0+Y29udGV4dF9zaXplID4g QklUKDIwKSkpCisJCWVuZ2luZS0+Y29udGV4dF9zaXplID0gMDsKIAogCS8qIE5vdGhpbmcgdG8g ZG8gaGVyZSwgZXhlY3V0ZSBpbiBvcmRlciBvZiBkZXBlbmRlbmNpZXMgKi8KIAllbmdpbmUtPnNj aGVkdWxlID0gTlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggNWVjMDY0YS4uMDkw OTU0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTEzOCwxMCArMTM4LDYgQEAKICNp bmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVsX21vY3MuaCIKIAotI2RlZmluZSBH RU45X0xSX0NPTlRFWFRfUkVOREVSX1NJWkUgKDIyICogUEFHRV9TSVpFKQotI2RlZmluZSBHRU44 X0xSX0NPTlRFWFRfUkVOREVSX1NJWkUgKDIwICogUEFHRV9TSVpFKQotI2RlZmluZSBHRU44X0xS X0NPTlRFWFRfT1RIRVJfU0laRSAoMiAqIFBBR0VfU0laRSkKLQogI2RlZmluZSBSSU5HX0VYRUNM SVNUX1FGVUxMCQkoMSA8PCAweDIpCiAjZGVmaW5lIFJJTkdfRVhFQ0xJU1QxX1ZBTElECQkoMSA8 PCAweDMpCiAjZGVmaW5lIFJJTkdfRVhFQ0xJU1QwX1ZBTElECQkoMSA8PCAweDQpCkBAIC0xOTE4 LDUzICsxOTE0LDYgQEAgcG9wdWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4 dCAqY3R4LAogCXJldHVybiAwOwogfQogCi0vKioKLSAqIGludGVsX2xyX2NvbnRleHRfc2l6ZSgp IC0gcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBjb250ZXh0IGZvciBhbiBlbmdpbmUKLSAqIEBlbmdp bmU6IHdoaWNoIGVuZ2luZSB0byBmaW5kIHRoZSBjb250ZXh0IHNpemUgZm9yCi0gKgotICogRWFj aCBlbmdpbmUgbWF5IHJlcXVpcmUgYSBkaWZmZXJlbnQgYW1vdW50IG9mIHNwYWNlIGZvciBhIGNv bnRleHQgaW1hZ2UsCi0gKiBzbyB3aGVuIGFsbG9jYXRpbmcgKG9yIGNvcHlpbmcpIGFuIGltYWdl LCB0aGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvCi0gKiBmaW5kIHRoZSByaWdodCBzaXplIGZv ciB0aGUgc3BlY2lmaWMgZW5naW5lLgotICoKLSAqIFJldHVybjogc2l6ZSAoaW4gYnl0ZXMpIG9m IGFuIGVuZ2luZS1zcGVjaWZpYyBjb250ZXh0IGltYWdlCi0gKgotICogTm90ZTogdGhpcyBzaXpl IGluY2x1ZGVzIHRoZSBIV1NQLCB3aGljaCBpcyBwYXJ0IG9mIHRoZSBjb250ZXh0IGltYWdlCi0g KiBpbiBMUkMgbW9kZSwgYnV0IGRvZXMgbm90IGluY2x1ZGUgdGhlICJzaGFyZWQgZGF0YSBwYWdl IiB1c2VkIHdpdGgKLSAqIEd1QyBzdWJtaXNzaW9uLiBUaGUgY2FsbGVyIHNob3VsZCBhY2NvdW50 IGZvciB0aGlzIGlmIHVzaW5nIHRoZSBHdUMuCi0gKi8KLXVpbnQzMl90IGludGVsX2xyX2NvbnRl eHRfc2l6ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwotCWludCByZXQ7Ci0KLQlXQVJO X09OKElOVEVMX0dFTihkZXZfcHJpdikgPCA4KTsKLQotCXN3aXRjaCAoZW5naW5lLT5jbGFzcykg ewotCWNhc2UgUkVOREVSX0NMQVNTOgotCQlzd2l0Y2ggKElOVEVMX0dFTihkZXZfcHJpdikpIHsK LQkJZGVmYXVsdDoKLQkJCU1JU1NJTkdfQ0FTRShJTlRFTF9HRU4oZGV2X3ByaXYpKTsKLQkJY2Fz ZSA5OgotCQkJcmV0ID0gR0VOOV9MUl9DT05URVhUX1JFTkRFUl9TSVpFOwotCQkJYnJlYWs7Ci0J CWNhc2UgODoKLQkJCXJldCA9IEdFTjhfTFJfQ09OVEVYVF9SRU5ERVJfU0laRTsKLQkJCWJyZWFr OwotCQl9Ci0JCWJyZWFrOwotCi0JZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKGVuZ2luZS0+Y2xh c3MpOwotCWNhc2UgVklERU9fREVDT0RFX0NMQVNTOgotCWNhc2UgVklERU9fRU5IQU5DRU1FTlRf Q0xBU1M6Ci0JY2FzZSBDT1BZX0VOR0lORV9DTEFTUzoKLQkJcmV0ID0gR0VOOF9MUl9DT05URVhU X09USEVSX1NJWkU7Ci0JCWJyZWFrOwotCX0KLQotCXJldHVybiByZXQ7Ci19Ci0KIHN0YXRpYyBp bnQgZXhlY2xpc3RzX2NvbnRleHRfZGVmZXJyZWRfYWxsb2Moc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKmN0eCwKIAkJCQkJICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKQEAg LTE5NzcsOCArMTkyNiw3IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2NvbnRleHRfZGVmZXJyZWRf YWxsb2Moc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAogCVdBUk5fT04oY2UtPnN0YXRl KTsKIAotCWNvbnRleHRfc2l6ZSA9IHJvdW5kX3VwKGludGVsX2xyX2NvbnRleHRfc2l6ZShlbmdp bmUpLAotCQkJCUk5MTVfR1RUX1BBR0VfU0laRSk7CisJY29udGV4dF9zaXplID0gcm91bmRfdXAo ZW5naW5lLT5jb250ZXh0X3NpemUsIEk5MTVfR1RUX1BBR0VfU0laRSk7CiAKIAkvKiBPbmUgZXh0 cmEgcGFnZSBhcyB0aGUgc2hhcmluZyBkYXRhIGJldHdlZW4gZHJpdmVyIGFuZCBHdUMgKi8KIAlj b250ZXh0X3NpemUgKz0gUEFHRV9TSVpFICogTFJDX1BQSFdTUF9QTjsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmgKaW5kZXggZTgwMTVlNy4uNTJiM2ExZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmgKQEAgLTc4LDggKzc4LDYgQEAgaW50IGxvZ2ljYWxfeGNzX3JpbmdfaW5pdChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpOwogc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CiBzdHJ1Y3Qg aTkxNV9nZW1fY29udGV4dDsKIAotdWludDMyX3QgaW50ZWxfbHJfY29udGV4dF9zaXplKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Ci0KIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXN1 bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHVpbnQ2NF90IGludGVsX2xy X2NvbnRleHRfZGVzY3JpcHRvcihzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCQkJCSAg ICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaAppbmRleCA5NjcxMGI2Li5hNjRkMThjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC0xOTYsMTMgKzE5NiwxNCBAQCBzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzIHsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAl1bnNpZ25lZCBpbnQg dWFiaV9pZDsKIAl1bnNpZ25lZCBpbnQgaHdfaWQ7CisJdW5zaWduZWQgaW50IGd1Y19pZDsKIAog CXU4IGNsYXNzOwogCXU4IGluc3RhbmNlOwotCi0JdW5zaWduZWQgaW50IGd1Y19pZDsKLQl1MzIJ CW1taW9fYmFzZTsKKwl1MzIgY29udGV4dF9zaXplOworCXUzMiBtbWlvX2Jhc2U7CiAJdW5zaWdu ZWQgaW50IGlycV9zaGlmdDsKKwogCXN0cnVjdCBpbnRlbF9yaW5nICpidWZmZXI7CiAJc3RydWN0 IGludGVsX3RpbWVsaW5lICp0aW1lbGluZTsKIAotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=