From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v3 11/37] drm/i915/blt: bump size restriction Date: Fri, 9 Aug 2019 23:26:17 +0100 Message-ID: <20190809222643.23142-12-matthew.auld@intel.com> References: <20190809222643.23142-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190809222643.23142-1-matthew.auld@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmVwb3J0ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpTaWdu ZWQtb2ZmLWJ5OiBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+Ci0tLQogLi4u L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY2xpZW50X2JsdC5jICAgIHwgIDMxICsrKy0KIC4u Li9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuYyAgICB8IDEzOSArKysrKysr KysrKysrKy0tLS0KIC4uLi9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuaCAg ICB8ICAgOSArLQogLi4uL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jbGllbnRfYmx0LmMg IHwgIDE2ICstCiAuLi4vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX29iamVjdF9ibHQuYyAg fCAgMjIgKystCiA1IGZpbGVzIGNoYW5nZWQsIDE3MCBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY2xp ZW50X2JsdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NsaWVudF9ibHQu YwppbmRleCAwOGE4NGM5NDBkOGQuLjRiMDk2MzA5YTk3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NsaWVudF9ibHQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fY2xpZW50X2JsdC5jCkBAIC01LDYgKzUsOCBAQAogCiAjaW5j bHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJndC9pbnRlbF9jb250ZXh0LmgiCisjaW5jbHVk ZSAiZ3QvaW50ZWxfZW5naW5lX3BtLmgiCisjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lX3Bvb2wu aCIKICNpbmNsdWRlICJpOTE1X2dlbV9jbGllbnRfYmx0LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1f b2JqZWN0X2JsdC5oIgogCkBAIC0xNTYsNyArMTU4LDkgQEAgc3RhdGljIHZvaWQgY2xlYXJfcGFn ZXNfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSA9IHctPmNlLT5lbmdpbmUtPmk5MTU7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiA9IHctPnNsZWV2ZS0+dm1hLT5vYmo7CiAJc3RydWN0IGk5MTVfdm1hICp2bWEg PSB3LT5zbGVldmUtPnZtYTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX3Bvb2xfbm9kZSAqcG9vbDsK IAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwlzdHJ1Y3QgaTkxNV92bWEgKmJhdGNoOwogCWlu dCBlcnIgPSB3LT5kbWEuZXJyb3I7CiAKIAlpZiAodW5saWtlbHkoZXJyKSkKQEAgLTE3NiwxMCAr MTgwLDE3IEBAIHN0YXRpYyB2b2lkIGNsZWFyX3BhZ2VzX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCiAJaWYgKHVubGlrZWx5KGVycikpCiAJCWdvdG8gb3V0X3VubG9jazsKIAorCWlu dGVsX2VuZ2luZV9wbV9nZXQody0+Y2UtPmVuZ2luZSk7CisJYmF0Y2ggPSBpbnRlbF9lbWl0X3Zt YV9maWxsX2JsdCgmcG9vbCwgdy0+Y2UsIHZtYSwgdy0+dmFsdWUpOworCWlmIChJU19FUlIoYmF0 Y2gpKSB7CisJCWVyciA9IFBUUl9FUlIoYmF0Y2gpOworCQlnb3RvIG91dF91bnBpbjsKKwl9CisK IAlycSA9IGludGVsX2NvbnRleHRfY3JlYXRlX3JlcXVlc3Qody0+Y2UpOwogCWlmIChJU19FUlIo cnEpKSB7CiAJCWVyciA9IFBUUl9FUlIocnEpOwotCQlnb3RvIG91dF91bnBpbjsKKwkJZ290byBv dXRfYmF0Y2g7CiAJfQogCiAJLyogVGhlcmUncyBubyB3YXkgdGhlIGZlbmNlIGhhcyBzaWduYWxs ZWQgKi8KQEAgLTE4Nyw2ICsxOTgsMTYgQEAgc3RhdGljIHZvaWQgY2xlYXJfcGFnZXNfd29ya2Vy KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJCQkgICBjbGVhcl9wYWdlc19kbWFfZmVuY2Vf Y2IpKQogCQlHRU1fQlVHX09OKDEpOwogCisJaTkxNV92bWFfbG9jayhiYXRjaCk7CisJZXJyID0g aTkxNV92bWFfbW92ZV90b19hY3RpdmUoYmF0Y2gsIHJxLCAwKTsKKwlpOTE1X3ZtYV91bmxvY2so YmF0Y2gpOworCWlmICh1bmxpa2VseShlcnIpKQorCQlnb3RvIG91dF9yZXF1ZXN0OworCisJZXJy ID0gaW50ZWxfZW5naW5lX3Bvb2xfbWFya19hY3RpdmUocG9vbCwgcnEpOworCWlmICh1bmxpa2Vs eShlcnIpKQorCQlnb3RvIG91dF9yZXF1ZXN0OworCiAJaWYgKHctPmNlLT5lbmdpbmUtPmVtaXRf aW5pdF9icmVhZGNydW1iKSB7CiAJCWVyciA9IHctPmNlLT5lbmdpbmUtPmVtaXRfaW5pdF9icmVh ZGNydW1iKHJxKTsKIAkJaWYgKHVubGlrZWx5KGVycikpCkBAIC0yMDIsNyArMjIzLDkgQEAgc3Rh dGljIHZvaWQgY2xlYXJfcGFnZXNfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlp ZiAoZXJyKQogCQlnb3RvIG91dF9yZXF1ZXN0OwogCi0JZXJyID0gaW50ZWxfZW1pdF92bWFfZmls bF9ibHQocnEsIHZtYSwgdy0+dmFsdWUpOworCWVyciA9IHctPmNlLT5lbmdpbmUtPmVtaXRfYmJf c3RhcnQocnEsCisJCQkJCSAgIGJhdGNoLT5ub2RlLnN0YXJ0LCBiYXRjaC0+bm9kZS5zaXplLAor CQkJCQkgICAwKTsKIG91dF9yZXF1ZXN0OgogCWlmICh1bmxpa2VseShlcnIpKSB7CiAJCWk5MTVf cmVxdWVzdF9za2lwKHJxLCBlcnIpOwpAQCAtMjEwLDcgKzIzMywxMSBAQCBzdGF0aWMgdm9pZCBj bGVhcl9wYWdlc193b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCX0KIAogCWk5MTVf cmVxdWVzdF9hZGQocnEpOworb3V0X2JhdGNoOgorCWk5MTVfdm1hX3VucGluKGJhdGNoKTsKKwlp bnRlbF9lbmdpbmVfcG9vbF9wdXQocG9vbCk7CiBvdXRfdW5waW46CisJaW50ZWxfZW5naW5lX3Bt X3B1dCh3LT5jZS0+ZW5naW5lKTsKIAlpOTE1X3ZtYV91bnBpbih2bWEpOwogb3V0X3VubG9jazoK IAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfYmx0LmMKaW5kZXggZmE5MGMzOGM4YjA3Li5j MWU1ZWRkMWUzNTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9vYmplY3RfYmx0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29i amVjdF9ibHQuYwpAQCAtNSw0OSArNSwxMDMgQEAKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAj aW5jbHVkZSAiZ3QvaW50ZWxfY29udGV4dC5oIgorI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV9w bS5oIgorI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV9wb29sLmgiCisjaW5jbHVkZSAiZ3QvaW50 ZWxfZ3QuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9jbGZsdXNoLmgiCiAjaW5jbHVkZSAiaTkxNV9n ZW1fb2JqZWN0X2JsdC5oIgogCi1pbnQgaW50ZWxfZW1pdF92bWFfZmlsbF9ibHQoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEsCi0JCQkgICAgc3RydWN0IGk5MTVfdm1hICp2bWEsCi0JCQkgICAgdTMy IHZhbHVlKQorc3RydWN0IGk5MTVfdm1hICppbnRlbF9lbWl0X3ZtYV9maWxsX2JsdChzdHJ1Y3Qg aW50ZWxfZW5naW5lX3Bvb2xfbm9kZSAqKnAsCisJCQkJCSBzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y2UsCisJCQkJCSBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKKwkJCQkJIHUzMiB2YWx1ZSkKIHsKLQl1 MzIgKmNzOwotCi0JY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHJxLCA4KTsKLQlpZiAoSVNfRVJSKGNz KSkKLQkJcmV0dXJuIFBUUl9FUlIoY3MpOwotCi0JaWYgKElOVEVMX0dFTihycS0+aTkxNSkgPj0g OCkgewotCQkqY3MrKyA9IFhZX0NPTE9SX0JMVF9DTUQgfCBCTFRfV1JJVEVfUkdCQSB8ICg3IC0g Mik7Ci0JCSpjcysrID0gQkxUX0RFUFRIXzMyIHwgQkxUX1JPUF9DT0xPUl9DT1BZIHwgUEFHRV9T SVpFOwotCQkqY3MrKyA9IDA7Ci0JCSpjcysrID0gdm1hLT5zaXplID4+IFBBR0VfU0hJRlQgPDwg MTYgfCBQQUdFX1NJWkUgLyA0OwotCQkqY3MrKyA9IGxvd2VyXzMyX2JpdHModm1hLT5ub2RlLnN0 YXJ0KTsKLQkJKmNzKysgPSB1cHBlcl8zMl9iaXRzKHZtYS0+bm9kZS5zdGFydCk7Ci0JCSpjcysr ID0gdmFsdWU7Ci0JCSpjcysrID0gTUlfTk9PUDsKLQl9IGVsc2UgewotCQkqY3MrKyA9IFhZX0NP TE9SX0JMVF9DTUQgfCBCTFRfV1JJVEVfUkdCQSB8ICg2IC0gMik7Ci0JCSpjcysrID0gQkxUX0RF UFRIXzMyIHwgQkxUX1JPUF9DT0xPUl9DT1BZIHwgUEFHRV9TSVpFOwotCQkqY3MrKyA9IDA7Ci0J CSpjcysrID0gdm1hLT5zaXplID4+IFBBR0VfU0hJRlQgPDwgMTYgfCBQQUdFX1NJWkUgLyA0Owot CQkqY3MrKyA9IHZtYS0+bm9kZS5zdGFydDsKLQkJKmNzKysgPSB2YWx1ZTsKLQkJKmNzKysgPSBN SV9OT09QOwotCQkqY3MrKyA9IE1JX05PT1A7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUgPSBjZS0+dm0tPmk5MTU7CisJY29uc3QgdTMyIGJsb2NrX3NpemUgPSBTMTZfTUFYICogUEFH RV9TSVpFOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfcG9vbF9ub2RlICpwb29sOworCXN0cnVjdCBp OTE1X3ZtYSAqYmF0Y2g7CisJdTY0IG9mZnNldDsKKwl1NjQgY291bnQ7CisJdTY0IHJlbTsKKwl1 MzIgc2l6ZTsKKwl1MzIgKmNtZDsKKwlpbnQgZXJyOworCisJY291bnQgPSBkaXZfdTY0KHZtYS0+ c2l6ZSwgYmxvY2tfc2l6ZSk7CisJc2l6ZSA9ICgxICsgOCAqIGNvdW50KSAqIHNpemVvZih1MzIp OworCXNpemUgPSByb3VuZF91cChzaXplLCBQQUdFX1NJWkUpOworCXBvb2wgPSBpbnRlbF9lbmdp bmVfcG9vbF9nZXQoJmNlLT5lbmdpbmUtPnBvb2wsIHNpemUpOworCWlmIChJU19FUlIocG9vbCkp CisJCXJldHVybiBFUlJfQ0FTVChwb29sKTsKKworCWNtZCA9IGk5MTVfZ2VtX29iamVjdF9waW5f bWFwKHBvb2wtPm9iaiwgSTkxNV9NQVBfV0MpOworCWlmIChJU19FUlIoY21kKSkgeworCQllcnIg PSBQVFJfRVJSKGNtZCk7CisJCWdvdG8gb3V0X3B1dDsKKwl9CisKKwlyZW0gPSB2bWEtPnNpemU7 CisJb2Zmc2V0ID0gdm1hLT5ub2RlLnN0YXJ0OworCisJZG8geworCQl1MzIgc2l6ZSA9IG1pbl90 KHU2NCwgcmVtLCBibG9ja19zaXplKTsKKworCQlHRU1fQlVHX09OKHNpemUgPj4gUEFHRV9TSElG VCA+IFMxNl9NQVgpOworCisJCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gOCkgeworCQkJKmNtZCsr ID0gWFlfQ09MT1JfQkxUX0NNRCB8IEJMVF9XUklURV9SR0JBIHwgKDcgLSAyKTsKKwkJCSpjbWQr KyA9IEJMVF9ERVBUSF8zMiB8IEJMVF9ST1BfQ09MT1JfQ09QWSB8IFBBR0VfU0laRTsKKwkJCSpj bWQrKyA9IDA7CisJCQkqY21kKysgPSBzaXplID4+IFBBR0VfU0hJRlQgPDwgMTYgfCBQQUdFX1NJ WkUgLyA0OworCQkJKmNtZCsrID0gbG93ZXJfMzJfYml0cyhvZmZzZXQpOworCQkJKmNtZCsrID0g dXBwZXJfMzJfYml0cyhvZmZzZXQpOworCQkJKmNtZCsrID0gdmFsdWU7CisJCX0gZWxzZSB7CisJ CQkqY21kKysgPSBYWV9DT0xPUl9CTFRfQ01EIHwgQkxUX1dSSVRFX1JHQkEgfCAoNiAtIDIpOwor CQkJKmNtZCsrID0gQkxUX0RFUFRIXzMyIHwgQkxUX1JPUF9DT0xPUl9DT1BZIHwgUEFHRV9TSVpF OworCQkJKmNtZCsrID0gMDsKKwkJCSpjbWQrKyA9IHNpemUgPj4gUEFHRV9TSElGVCA8PCAxNiB8 IFBBR0VfU0laRSAvIDQ7CisJCQkqY21kKysgPSBvZmZzZXQ7CisJCQkqY21kKysgPSB2YWx1ZTsK KwkJfQorCisJCS8qIEFsbG93IG91cnNlbHZlcyB0byBiZSBwcmVlbXB0ZWQgaW4gYmV0d2VlbiBi bG9ja3MuICovCisJCSpjbWQrKyA9IE1JX0FSQl9DSEVDSzsKKworCQlvZmZzZXQgKz0gc2l6ZTsK KwkJcmVtIC09IHNpemU7CisJfSB3aGlsZSAocmVtKTsKKworCSpjbWQgPSBNSV9CQVRDSF9CVUZG RVJfRU5EOworCWludGVsX2d0X2NoaXBzZXRfZmx1c2goY2UtPnZtLT5ndCk7CisKKwlpOTE1X2dl bV9vYmplY3RfdW5waW5fbWFwKHBvb2wtPm9iaik7CisKKwliYXRjaCA9IGk5MTVfdm1hX2luc3Rh bmNlKHBvb2wtPm9iaiwgY2UtPnZtLCBOVUxMKTsKKwlpZiAoSVNfRVJSKGJhdGNoKSkgeworCQll cnIgPSBQVFJfRVJSKGJhdGNoKTsKKwkJZ290byBvdXRfcHV0OwogCX0KIAotCWludGVsX3Jpbmdf YWR2YW5jZShycSwgY3MpOworCWVyciA9IGk5MTVfdm1hX3BpbihiYXRjaCwgMCwgMCwgUElOX1VT RVIpOworCWlmICh1bmxpa2VseShlcnIpKQorCQlnb3RvIG91dF9wdXQ7CisKKwkqcCA9IHBvb2w7 CisJcmV0dXJuIGJhdGNoOwogCi0JcmV0dXJuIDA7CitvdXRfcHV0OgorCWludGVsX2VuZ2luZV9w b29sX3B1dChwb29sKTsKKwlyZXR1cm4gRVJSX1BUUihlcnIpOwogfQogCiBpbnQgaTkxNV9nZW1f b2JqZWN0X2ZpbGxfYmx0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkgICAg IHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAkJCSAgICAgdTMyIHZhbHVlKQogeworCXN0cnVj dCBpbnRlbF9lbmdpbmVfcG9vbF9ub2RlICpwb29sOwogCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx OworCXN0cnVjdCBpOTE1X3ZtYSAqYmF0Y2g7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAJaW50 IGVycjsKIApAQCAtNjUsMTIgKzExOSwyOSBAQCBpbnQgaTkxNV9nZW1fb2JqZWN0X2ZpbGxfYmx0 KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCWk5MTVfZ2VtX29iamVjdF91bmxv Y2sob2JqKTsKIAl9CiAKKwlpbnRlbF9lbmdpbmVfcG1fZ2V0KGNlLT5lbmdpbmUpOworCWJhdGNo ID0gaW50ZWxfZW1pdF92bWFfZmlsbF9ibHQoJnBvb2wsIGNlLCB2bWEsIHZhbHVlKTsKKwlpZiAo SVNfRVJSKGJhdGNoKSkgeworCQllcnIgPSBQVFJfRVJSKGJhdGNoKTsKKwkJZ290byBvdXRfdW5w aW47CisJfQorCiAJcnEgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZV9yZXF1ZXN0KGNlKTsKIAlpZiAo SVNfRVJSKHJxKSkgewogCQllcnIgPSBQVFJfRVJSKHJxKTsKLQkJZ290byBvdXRfdW5waW47CisJ CWdvdG8gb3V0X2JhdGNoOwogCX0KIAorCWk5MTVfdm1hX2xvY2soYmF0Y2gpOworCWVyciA9IGk5 MTVfdm1hX21vdmVfdG9fYWN0aXZlKGJhdGNoLCBycSwgMCk7CisJaTkxNV92bWFfdW5sb2NrKGJh dGNoKTsKKwlpZiAodW5saWtlbHkoZXJyKSkKKwkJZ290byBvdXRfcmVxdWVzdDsKKworCWVyciA9 IGludGVsX2VuZ2luZV9wb29sX21hcmtfYWN0aXZlKHBvb2wsIHJxKTsKKwlpZiAodW5saWtlbHko ZXJyKSkKKwkJZ290byBvdXRfcmVxdWVzdDsKKwogCWVyciA9IGk5MTVfcmVxdWVzdF9hd2FpdF9v YmplY3QocnEsIG9iaiwgdHJ1ZSk7CiAJaWYgKHVubGlrZWx5KGVycikpCiAJCWdvdG8gb3V0X3Jl cXVlc3Q7CkBAIC04NywxMyArMTU4LDE5IEBAIGludCBpOTE1X2dlbV9vYmplY3RfZmlsbF9ibHQo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlpZiAodW5saWtlbHkoZXJyKSkKIAkJ Z290byBvdXRfcmVxdWVzdDsKIAotCWVyciA9IGludGVsX2VtaXRfdm1hX2ZpbGxfYmx0KHJxLCB2 bWEsIHZhbHVlKTsKKwllcnIgPSBjZS0+ZW5naW5lLT5lbWl0X2JiX3N0YXJ0KHJxLAorCQkJCQli YXRjaC0+bm9kZS5zdGFydCwgYmF0Y2gtPm5vZGUuc2l6ZSwKKwkJCQkJMCk7CiBvdXRfcmVxdWVz dDoKIAlpZiAodW5saWtlbHkoZXJyKSkKIAkJaTkxNV9yZXF1ZXN0X3NraXAocnEsIGVycik7CiAK IAlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKK291dF9iYXRjaDoKKwlpOTE1X3ZtYV91bnBpbihiYXRj aCk7CisJaW50ZWxfZW5naW5lX3Bvb2xfcHV0KHBvb2wpOwogb3V0X3VucGluOgorCWludGVsX2Vu Z2luZV9wbV9wdXQoY2UtPmVuZ2luZSk7CiAJaTkxNV92bWFfdW5waW4odm1hKTsKIAlyZXR1cm4g ZXJyOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29i amVjdF9ibHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfYmx0 LmgKaW5kZXggN2VjN2RlNmFjMGMwLi5hNzQyNWMyMzRkNTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfYmx0LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuaApAQCAtOSwxMyArOSwxNCBAQAogI2lu Y2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAKIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0Oworc3Ry dWN0IGludGVsX2VuZ2luZV9wb29sX25vZGU7CiBzdHJ1Y3QgaW50ZWxfY29udGV4dDsKLXN0cnVj dCBpOTE1X3JlcXVlc3Q7CiBzdHJ1Y3QgaTkxNV92bWE7CiAKLWludCBpbnRlbF9lbWl0X3ZtYV9m aWxsX2JsdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKLQkJCSAgICBzdHJ1Y3QgaTkxNV92bWEg KnZtYSwKLQkJCSAgICB1MzIgdmFsdWUpOworc3RydWN0IGk5MTVfdm1hICppbnRlbF9lbWl0X3Zt YV9maWxsX2JsdChzdHJ1Y3QgaW50ZWxfZW5naW5lX3Bvb2xfbm9kZSAqKnAsCisJCQkJCSBzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY2UsCisJCQkJCSBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKKwkJCQkJ IHUzMiB2YWx1ZSk7CiAKIGludCBpOTE1X2dlbV9vYmplY3RfZmlsbF9ibHQoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCSAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmNlLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9j bGllbnRfYmx0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2Vt X2NsaWVudF9ibHQuYwppbmRleCAyNzVjMjg5MjYwNjcuLmQ4ODA0YTg0Nzk0NSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jbGllbnRfYmx0 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9jbGll bnRfYmx0LmMKQEAgLTksNiArOSw3IEBACiAKICNpbmNsdWRlICJzZWxmdGVzdHMvaWd0X2ZsdXNo X3Rlc3QuaCIKICNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja19kcm0uaCIKKyNpbmNsdWRlICJodWdl X2dlbV9vYmplY3QuaCIKICNpbmNsdWRlICJtb2NrX2NvbnRleHQuaCIKIAogc3RhdGljIGludCBp Z3RfY2xpZW50X2ZpbGwodm9pZCAqYXJnKQpAQCAtMjQsMTUgKzI1LDE5IEBAIHN0YXRpYyBpbnQg aWd0X2NsaWVudF9maWxsKHZvaWQgKmFyZykKIAlwcmFuZG9tX3NlZWRfc3RhdGUoJnBybmcsIGk5 MTVfc2VsZnRlc3QucmFuZG9tX3NlZWQpOwogCiAJZG8gewotCQl1MzIgc3ogPSBwcmFuZG9tX3Uz Ml9zdGF0ZSgmcHJuZykgJSBTWl8zMk07CisJCWNvbnN0IHUzMiBtYXhfYmxvY2tfc2l6ZSA9IFMx Nl9NQVggKiBQQUdFX1NJWkU7CisJCXUzMiBzeiA9IG1pbl90KHU2NCwgY2UtPnZtLT50b3RhbCA+ PiA0LCBwcmFuZG9tX3UzMl9zdGF0ZSgmcHJuZykpOworCQl1MzIgcGh5c19zeiA9IHN6ICUgKG1h eF9ibG9ja19zaXplICsgMSk7CiAJCXUzMiB2YWwgPSBwcmFuZG9tX3UzMl9zdGF0ZSgmcHJuZyk7 CiAJCXUzMiBpOwogCiAJCXN6ID0gcm91bmRfdXAoc3osIFBBR0VfU0laRSk7CisJCXBoeXNfc3og PSByb3VuZF91cChwaHlzX3N6LCBQQUdFX1NJWkUpOwogCi0JCXByX2RlYnVnKCIlcyB3aXRoIHN6 PSV4LCB2YWw9JXhcbiIsIF9fZnVuY19fLCBzeiwgdmFsKTsKKwkJcHJfZGVidWcoIiVzIHdpdGgg cGh5c19zej0gJXgsIHN6PSV4LCB2YWw9JXhcbiIsIF9fZnVuY19fLAorCQkJIHBoeXNfc3osIHN6 LCB2YWwpOwogCi0JCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoaTkxNSwg c3opOworCQlvYmogPSBodWdlX2dlbV9vYmplY3QoaTkxNSwgcGh5c19zeiwgc3opOwogCQlpZiAo SVNfRVJSKG9iaikpIHsKIAkJCWVyciA9IFBUUl9FUlIob2JqKTsKIAkJCWdvdG8gZXJyX2ZsdXNo OwpAQCAtNTQsNyArNTksOCBAQCBzdGF0aWMgaW50IGlndF9jbGllbnRfZmlsbCh2b2lkICphcmcp CiAJCSAqIHZhbHVlcyBhZnRlciB3ZSBkbyB0aGUgc2V0X3RvX2NwdV9kb21haW4gYW5kIHBpY2sg aXQgdXAgYXMgYQogCQkgKiB0ZXN0IGZhaWx1cmUuCiAJCSAqLwotCQltZW1zZXQzMih2YWRkciwg dmFsIF4gMHhkZWFkYmVhZiwgb2JqLT5iYXNlLnNpemUgLyBzaXplb2YodTMyKSk7CisJCW1lbXNl dDMyKHZhZGRyLCB2YWwgXiAweGRlYWRiZWFmLAorCQkJIGh1Z2VfZ2VtX29iamVjdF9waHlzX3Np emUob2JqKSAvIHNpemVvZih1MzIpKTsKIAogCQlpZiAoIShvYmotPmNhY2hlX2NvaGVyZW50ICYg STkxNV9CT19DQUNIRV9DT0hFUkVOVF9GT1JfV1JJVEUpKQogCQkJb2JqLT5jYWNoZV9kaXJ0eSA9 IHRydWU7CkBAIC03MSw3ICs3Nyw3IEBAIHN0YXRpYyBpbnQgaWd0X2NsaWVudF9maWxsKHZvaWQg KmFyZykKIAkJaWYgKGVycikKIAkJCWdvdG8gZXJyX3VucGluOwogCi0JCWZvciAoaSA9IDA7IGkg PCBvYmotPmJhc2Uuc2l6ZSAvIHNpemVvZih1MzIpOyArK2kpIHsKKwkJZm9yIChpID0gMDsgaSA8 IGh1Z2VfZ2VtX29iamVjdF9waHlzX3NpemUob2JqKSAvIHNpemVvZih1MzIpOyArK2kpIHsKIAkJ CWlmICh2YWRkcltpXSAhPSB2YWwpIHsKIAkJCQlwcl9lcnIoInZhZGRyWyV1XT0leCwgZXhwZWN0 ZWQ9JXhcbiIsIGksCiAJCQkJICAgICAgIHZhZGRyW2ldLCB2YWwpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX29iamVjdF9ibHQuYwpp bmRleCAxOTg0M2FjYzg0ZDMuLmM2ZTFlZWJlNTNmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMKQEAgLTks NiArOSw3IEBACiAKICNpbmNsdWRlICJzZWxmdGVzdHMvaWd0X2ZsdXNoX3Rlc3QuaCIKICNpbmNs dWRlICJzZWxmdGVzdHMvbW9ja19kcm0uaCIKKyNpbmNsdWRlICJodWdlX2dlbV9vYmplY3QuaCIK ICNpbmNsdWRlICJtb2NrX2NvbnRleHQuaCIKIAogc3RhdGljIGludCBpZ3RfZmlsbF9ibHQodm9p ZCAqYXJnKQpAQCAtMjMsMTYgKzI0LDI2IEBAIHN0YXRpYyBpbnQgaWd0X2ZpbGxfYmx0KHZvaWQg KmFyZykKIAogCXByYW5kb21fc2VlZF9zdGF0ZSgmcHJuZywgaTkxNV9zZWxmdGVzdC5yYW5kb21f c2VlZCk7CiAKKwkvKgorCSAqIFhYWDogbmVlZHMgc29tZSB0aHJlYWRzIHRvIHNjYWxlIGFsbCB0 aGVzZSB0ZXN0cywgYWxzbyBtYXliZSB0aHJvdworCSAqIGluIHN1Ym1pc3Npb24gZnJvbSBoaWdo ZXIgcHJpb3JpdHkgY29udGV4dCB0byBzZWUgaWYgd2UgYXJlCisJICogcHJlZW1wdGVkIGZvciB2 ZXJ5IGxhcmdlIG9iamVjdHMuLi4KKwkgKi8KKwogCWRvIHsKLQkJdTMyIHN6ID0gcHJhbmRvbV91 MzJfc3RhdGUoJnBybmcpICUgU1pfMzJNOworCQljb25zdCB1MzIgbWF4X2Jsb2NrX3NpemUgPSBT MTZfTUFYICogUEFHRV9TSVpFOworCQl1MzIgc3ogPSBtaW5fdCh1NjQsIGNlLT52bS0+dG90YWwg Pj4gNCwgcHJhbmRvbV91MzJfc3RhdGUoJnBybmcpKTsKKwkJdTMyIHBoeXNfc3ogPSBzeiAlICht YXhfYmxvY2tfc2l6ZSArIDEpOwogCQl1MzIgdmFsID0gcHJhbmRvbV91MzJfc3RhdGUoJnBybmcp OwogCQl1MzIgaTsKIAogCQlzeiA9IHJvdW5kX3VwKHN6LCBQQUdFX1NJWkUpOworCQlwaHlzX3N6 ID0gcm91bmRfdXAocGh5c19zeiwgUEFHRV9TSVpFKTsKIAotCQlwcl9kZWJ1ZygiJXMgd2l0aCBz ej0leCwgdmFsPSV4XG4iLCBfX2Z1bmNfXywgc3osIHZhbCk7CisJCXByX2RlYnVnKCIlcyB3aXRo IHBoeXNfc3o9ICV4LCBzej0leCwgdmFsPSV4XG4iLCBfX2Z1bmNfXywKKwkJCSBwaHlzX3N6LCBz eiwgdmFsKTsKIAotCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGk5MTUs IHN6KTsKKwkJb2JqID0gaHVnZV9nZW1fb2JqZWN0KGk5MTUsIHBoeXNfc3osIHN6KTsKIAkJaWYg KElTX0VSUihvYmopKSB7CiAJCQllcnIgPSBQVFJfRVJSKG9iaik7CiAJCQlnb3RvIGVycl9mbHVz aDsKQEAgLTQ4LDcgKzU5LDggQEAgc3RhdGljIGludCBpZ3RfZmlsbF9ibHQodm9pZCAqYXJnKQog CQkgKiBNYWtlIHN1cmUgdGhlIHBvdGVudGlhbGx5IGFzeW5jIGNsZmx1c2ggZG9lcyBpdHMgam9i LCBpZgogCQkgKiByZXF1aXJlZC4KIAkJICovCi0JCW1lbXNldDMyKHZhZGRyLCB2YWwgXiAweGRl YWRiZWFmLCBvYmotPmJhc2Uuc2l6ZSAvIHNpemVvZih1MzIpKTsKKwkJbWVtc2V0MzIodmFkZHIs IHZhbCBeIDB4ZGVhZGJlYWYsCisJCQkgaHVnZV9nZW1fb2JqZWN0X3BoeXNfc2l6ZShvYmopIC8g c2l6ZW9mKHUzMikpOwogCiAJCWlmICghKG9iai0+Y2FjaGVfY29oZXJlbnQgJiBJOTE1X0JPX0NB Q0hFX0NPSEVSRU5UX0ZPUl9XUklURSkpCiAJCQlvYmotPmNhY2hlX2RpcnR5ID0gdHJ1ZTsKQEAg LTY1LDcgKzc3LDcgQEAgc3RhdGljIGludCBpZ3RfZmlsbF9ibHQodm9pZCAqYXJnKQogCQlpZiAo ZXJyKQogCQkJZ290byBlcnJfdW5waW47CiAKLQkJZm9yIChpID0gMDsgaSA8IG9iai0+YmFzZS5z aXplIC8gc2l6ZW9mKHUzMik7ICsraSkgeworCQlmb3IgKGkgPSAwOyBpIDwgaHVnZV9nZW1fb2Jq ZWN0X3BoeXNfc2l6ZShvYmopIC8gc2l6ZW9mKHUzMik7ICsraSkgewogCQkJaWYgKHZhZGRyW2ld ICE9IHZhbCkgewogCQkJCXByX2VycigidmFkZHJbJXVdPSV4LCBleHBlY3RlZD0leFxuIiwgaSwK IAkJCQkgICAgICAgdmFkZHJbaV0sIHZhbCk7Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==