From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: [PATCH v4 1/2] intel: 48b ppgtt support (EXEC_OBJECT_SUPPORTS_48B_ADDRESS flag) Date: Thu, 3 Sep 2015 15:23:58 +0100 Message-ID: <1441290239-31462-2-git-send-email-michel.thierry@intel.com> References: <1441290239-31462-1-git-send-email-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1441290239-31462-1-git-send-email-michel.thierry@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 Cc: Ben Widawsky , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org R2VuOCsgc3VwcG9ydHMgNDgtYml0IHZpcnR1YWwgYWRkcmVzc2VzLCBidXQgc29tZSBvYmplY3Rz IG11c3QgYWx3YXlzIGJlCmFsbG9jYXRlZCBpbnNpZGUgdGhlIDMyLWJpdCBhZGRyZXNzIHJhbmdl LgoKSW4gc3BlY2lmaWMsIGFueSByZXNvdXJjZSB1c2VkIHdpdGggZmxhdC9oZWFwbGVzcyAoMHgw MDAwMDAwMC0weGZmZmZmMDAwKQpHZW5lcmFsIFN0YXRlIEhlYXAgKEdTSCkgb3IgSW5zdHJ1Y3Rp b24gU3RhdGUgSGVhcCAoSVNIKSBtdXN0IGJlIGluIGEKMzItYml0IHJhbmdlLCBiZWNhdXNlIHRo ZSBHZW5lcmFsIFN0YXRlIE9mZnNldCBhbmQgSW5zdHJ1Y3Rpb24gU3RhdGUgT2Zmc2V0CmFyZSBs aW1pdGVkIHRvIDMyLWJpdHMuCgpUaGUgaTkxNSBkcml2ZXIgaGFzIGJlZW4gbW9kaWZpZWQgdG8g cHJvdmlkZSBhIGZsYWcgdG8gc2V0IHdoZW4gdGhlIDRHQgpsaW1pdCBpcyBub3QgbmVjZXNzYXJ5 IGluIGEgZ2l2ZW4gYm8gKEVYRUNfT0JKRUNUX1NVUFBPUlRTXzQ4Ql9BRERSRVNTKS4KNDgtYml0 IHJhbmdlIHdpbGwgb25seSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQuCgpDYWxs ZXJzIHRvIHRoZSBleGlzdGluZyBkcm1faW50ZWxfYm9fZW1pdF9yZWxvYyBmdW5jdGlvbiBzaG91 bGQgc2V0IHRoZQp1c2VfNDhiX2FkZHJlc3NfcmFuZ2UgZmxhZyBiZWZvcmVoYW5kLCBpbiBvcmRl ciB0byB1c2UgZnVsbCBwcGd0dCByYW5nZS4KCnYyOiBNYWtlIHNldC9jbGVhciBmdW5jdGlvbnMg bm9wcyBvbiBwcmUtZ2VuOCBwbGF0Zm9ybXMsIGFuZCB1c2UgdGhlbQogICAgaW50ZXJuYWxseSBp biBlbWl0X3JlbG9jIGZ1bmN0aW9ucyAoQmVuKQogICAgcy80OEJBRERSRVNTLzQ4Ql9BRERSRVNT LyAoRGF2ZSkKdjM6IEtlZXAgc2V0L2NsZWFyIGZ1bmN0aW9ucyBpbnRlcm5hbCwgbm8tb25lIG5l ZWRzIHRvIHVzZSB0aGVtIGRpcmVjdGx5Lgp2NDogRG9uJ3Qgc2V0IDQ4Yml0LXN1cHBvcnQgZmxh ZyBpbiBlbWl0IHJlbG9jLCBjaGVjayBmb3IgcHBndHQgdHlwZQogICAgYmVmb3JlIGVuYWJsaW5n IHNldC9jbGVhciBmdW5jdGlvbiwgcHJpbnQgZnVsbCBvZmZzZXRzIGluIGRlYnVnCiAgICBzdGF0 ZW1lbnRzLCB1c2luZyBwb3J0IG9mIGxvd2VyXzMyX2JpdHMgYW5kIHVwcGVyXzMyX2JpdHMgZnJv bSBsaW51eAogICAga2VybmVsIChNaWNoYcWCKQoKUmVmZXJlbmNlczogaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pbnRlbC1nZngvMjAxNS1KdWx5LzA3MjYxMi5odG1sCkNj OiBCZW4gV2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+CkNjOiBNaWNoYcWCIFdpbmlhcnNraSA8 bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hlbCBUaGllcnJ5 IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+Ci0tLQogaW5jbHVkZS9kcm0vaTkxNV9kcm0uaCAg ICB8ICAzICstCiBpbnRlbC9pbnRlbF9idWZtZ3IuYyAgICAgIHwgMTEgKysrKysrCiBpbnRlbC9p bnRlbF9idWZtZ3IuaCAgICAgIHwgIDEgKwogaW50ZWwvaW50ZWxfYnVmbWdyX2dlbS5jICB8IDg4 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBpbnRlbC9p bnRlbF9idWZtZ3JfcHJpdi5oIHwgMTQgKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgOTcgaW5z ZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vaTkx NV9kcm0uaCBiL2luY2x1ZGUvZHJtL2k5MTVfZHJtLmgKaW5kZXggZGVkNDNiMS4uNDI2YjI1YyAx MDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL2RybS9pOTE1 X2RybS5oCkBAIC02ODAsNyArNjgwLDggQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVj dDIgewogI2RlZmluZSBFWEVDX09CSkVDVF9ORUVEU19GRU5DRSAoMTw8MCkKICNkZWZpbmUgRVhF Q19PQkpFQ1RfTkVFRFNfR1RUCSgxPDwxKQogI2RlZmluZSBFWEVDX09CSkVDVF9XUklURQkoMTw8 MikKLSNkZWZpbmUgX19FWEVDX09CSkVDVF9VTktOT1dOX0ZMQUdTIC0oRVhFQ19PQkpFQ1RfV1JJ VEU8PDEpCisjZGVmaW5lIEVYRUNfT0JKRUNUX1NVUFBPUlRTXzQ4Ql9BRERSRVNTICgxPDwzKQor I2RlZmluZSBfX0VYRUNfT0JKRUNUX1VOS05PV05fRkxBR1MgLShFWEVDX09CSkVDVF9TVVBQT1JU U180OEJfQUREUkVTUzw8MSkKIAlfX3U2NCBmbGFnczsKIAogCV9fdTY0IHJzdmQxOwpkaWZmIC0t Z2l0IGEvaW50ZWwvaW50ZWxfYnVmbWdyLmMgYi9pbnRlbC9pbnRlbF9idWZtZ3IuYwppbmRleCAx NGVhOWY5Li4wODU2ZTYwIDEwMDY0NAotLS0gYS9pbnRlbC9pbnRlbF9idWZtZ3IuYworKysgYi9p bnRlbC9pbnRlbF9idWZtZ3IuYwpAQCAtMjkzLDYgKzI5MywxNyBAQCBkcm1faW50ZWxfYm9fbWFk dmlzZShkcm1faW50ZWxfYm8gKmJvLCBpbnQgbWFkdikKIH0KIAogaW50Citkcm1faW50ZWxfYm9f dXNlXzQ4Yl9hZGRyZXNzX3JhbmdlKGRybV9pbnRlbF9ibyAqYm8sIHVpbnQzMl90IGVuYWJsZSkK K3sKKwlpZiAoYm8tPmJ1Zm1nci0+Ym9fdXNlXzQ4Yl9hZGRyZXNzX3JhbmdlKSB7CisJCWJvLT5i dWZtZ3ItPmJvX3VzZV80OGJfYWRkcmVzc19yYW5nZShibywgZW5hYmxlKTsKKwkJcmV0dXJuIDA7 CisJfQorCisJcmV0dXJuIC1FTk9ERVY7Cit9CisKK2ludAogZHJtX2ludGVsX2JvX3JlZmVyZW5j ZXMoZHJtX2ludGVsX2JvICpibywgZHJtX2ludGVsX2JvICp0YXJnZXRfYm8pCiB7CiAJcmV0dXJu IGJvLT5idWZtZ3ItPmJvX3JlZmVyZW5jZXMoYm8sIHRhcmdldF9ibyk7CmRpZmYgLS1naXQgYS9p bnRlbC9pbnRlbF9idWZtZ3IuaCBiL2ludGVsL2ludGVsX2J1Zm1nci5oCmluZGV4IDk1ZWVjYjgu LmExNGM3OGYgMTAwNjQ0Ci0tLSBhL2ludGVsL2ludGVsX2J1Zm1nci5oCisrKyBiL2ludGVsL2lu dGVsX2J1Zm1nci5oCkBAIC0xNjQsNiArMTY0LDcgQEAgaW50IGRybV9pbnRlbF9ib19nZXRfdGls aW5nKGRybV9pbnRlbF9ibyAqYm8sIHVpbnQzMl90ICogdGlsaW5nX21vZGUsCiBpbnQgZHJtX2lu dGVsX2JvX2ZsaW5rKGRybV9pbnRlbF9ibyAqYm8sIHVpbnQzMl90ICogbmFtZSk7CiBpbnQgZHJt X2ludGVsX2JvX2J1c3koZHJtX2ludGVsX2JvICpibyk7CiBpbnQgZHJtX2ludGVsX2JvX21hZHZp c2UoZHJtX2ludGVsX2JvICpibywgaW50IG1hZHYpOworaW50IGRybV9pbnRlbF9ib191c2VfNDhi X2FkZHJlc3NfcmFuZ2UoZHJtX2ludGVsX2JvICpibywgdWludDMyX3QgZW5hYmxlKTsKIAogaW50 IGRybV9pbnRlbF9ib19kaXNhYmxlX3JldXNlKGRybV9pbnRlbF9ibyAqYm8pOwogaW50IGRybV9p bnRlbF9ib19pc19yZXVzYWJsZShkcm1faW50ZWxfYm8gKmJvKTsKZGlmZiAtLWdpdCBhL2ludGVs L2ludGVsX2J1Zm1ncl9nZW0uYyBiL2ludGVsL2ludGVsX2J1Zm1ncl9nZW0uYwppbmRleCAyNzIz ZTIxLi4wOWQ4MmQyIDEwMDY0NAotLS0gYS9pbnRlbC9pbnRlbF9idWZtZ3JfZ2VtLmMKKysrIGIv aW50ZWwvaW50ZWxfYnVmbWdyX2dlbS5jCkBAIC04Myw2ICs4MywyMiBAQAogI2RlZmluZSBBUlJB WV9TSVpFKHgpIChzaXplb2YoeCkgLyBzaXplb2YoKHgpWzBdKSkKICNkZWZpbmUgTUFYMihBLCBC KSAoKEEpID4gKEIpID8gKEEpIDogKEIpKQogCisvKioKKyAqIHVwcGVyXzMyX2JpdHMgLSByZXR1 cm4gYml0cyAzMi02MyBvZiBhIG51bWJlcgorICogQG46IHRoZSBudW1iZXIgd2UncmUgYWNjZXNz aW5nCisgKgorICogQSBiYXNpYyBzaGlmdC1yaWdodCBvZiBhIDY0LSBvciAzMi1iaXQgcXVhbnRp dHkuICBVc2UgdGhpcyB0byBzdXBwcmVzcworICogdGhlICJyaWdodCBzaGlmdCBjb3VudCA+PSB3 aWR0aCBvZiB0eXBlIiB3YXJuaW5nIHdoZW4gdGhhdCBxdWFudGl0eSBpcworICogMzItYml0cy4K KyAqLworI2RlZmluZSB1cHBlcl8zMl9iaXRzKG4pICgoX191MzIpKCgobikgPj4gMTYpID4+IDE2 KSkKKworLyoqCisgKiBsb3dlcl8zMl9iaXRzIC0gcmV0dXJuIGJpdHMgMC0zMSBvZiBhIG51bWJl cgorICogQG46IHRoZSBudW1iZXIgd2UncmUgYWNjZXNzaW5nCisgKi8KKyNkZWZpbmUgbG93ZXJf MzJfYml0cyhuKSAoKF9fdTMyKShuKSkKKwogdHlwZWRlZiBzdHJ1Y3QgX2RybV9pbnRlbF9ib19n ZW0gZHJtX2ludGVsX2JvX2dlbTsKIAogc3RydWN0IGRybV9pbnRlbF9nZW1fYm9fYnVja2V0IHsK QEAgLTIzNyw2ICsyNTMsMTUgQEAgc3RydWN0IF9kcm1faW50ZWxfYm9fZ2VtIHsKIAlib29sIGlz X3VzZXJwdHI7CiAKIAkvKioKKwkgKiBCb29sZWFuIG9mIHdoZXRoZXIgdGhpcyBidWZmZXIgY2Fu IGJlIHBsYWNlZCBpbiB0aGUgZnVsbCA0OC1iaXQKKwkgKiBhZGRyZXNzIHJhbmdlIG9uIGdlbjgr LgorCSAqCisJICogQnkgZGVmYXVsdCwgYnVmZmVycyB3aWxsIGJlIGtlZXAgaW4gYSAzMi1iaXQg cmFuZ2UsIHVubGVzcyB0aGlzCisJICogZmxhZyBpcyBleHBsaWNpdGx5IHNldC4KKwkgKi8KKwli b29sIHVzZV80OGJfYWRkcmVzc19yYW5nZTsKKworCS8qKgogCSAqIFNpemUgaW4gYnl0ZXMgb2Yg dGhpcyBidWZmZXIgYW5kIGl0cyByZWxvY2F0aW9uIGRlc2NlbmRlbnRzLgogCSAqCiAJICogVXNl ZCB0byBhdm9pZCBjb3N0bHkgdHJlZSB3YWxraW5nIGluCkBAIC0zOTUsMTQgKzQyMCwxNiBAQCBk cm1faW50ZWxfZ2VtX2R1bXBfdmFsaWRhdGlvbl9saXN0KGRybV9pbnRlbF9idWZtZ3JfZ2VtICpi dWZtZ3JfZ2VtKQogCQkJZHJtX2ludGVsX2JvX2dlbSAqdGFyZ2V0X2dlbSA9CiAJCQkgICAgKGRy bV9pbnRlbF9ib19nZW0gKikgdGFyZ2V0X2JvOwogCi0JCQlEQkcoIiUyZDogJWQgKCVzKUAweCUw OGxseCAtPiAiCi0JCQkgICAgIiVkICglcylAMHglMDhseCArIDB4JTA4eFxuIiwKKwkJCURCRygi JTJkOiAlZCAoJXMpQDB4JTA4eCAlMDh4IC0+ICIKKwkJCSAgICAiJWQgKCVzKUAweCUwOHggJTA4 eCArIDB4JTA4eFxuIiwKIAkJCSAgICBpLAogCQkJICAgIGJvX2dlbS0+Z2VtX2hhbmRsZSwgYm9f Z2VtLT5uYW1lLAotCQkJICAgICh1bnNpZ25lZCBsb25nIGxvbmcpYm9fZ2VtLT5yZWxvY3Nbal0u b2Zmc2V0LAorCQkJICAgIHVwcGVyXzMyX2JpdHMoYm9fZ2VtLT5yZWxvY3Nbal0ub2Zmc2V0KSwK KwkJCSAgICBsb3dlcl8zMl9iaXRzKGJvX2dlbS0+cmVsb2NzW2pdLm9mZnNldCksCiAJCQkgICAg dGFyZ2V0X2dlbS0+Z2VtX2hhbmRsZSwKIAkJCSAgICB0YXJnZXRfZ2VtLT5uYW1lLAotCQkJICAg IHRhcmdldF9iby0+b2Zmc2V0NjQsCisJCQkgICAgdXBwZXJfMzJfYml0cyh0YXJnZXRfYm8tPm9m ZnNldDY0KSwKKwkJCSAgICBsb3dlcl8zMl9iaXRzKHRhcmdldF9iby0+b2Zmc2V0NjQpLAogCQkJ ICAgIGJvX2dlbS0+cmVsb2NzW2pdLmRlbHRhKTsKIAkJfQogCX0KQEAgLTQ2OCwxMSArNDk1LDE1 IEBAIGRybV9pbnRlbF9hZGRfdmFsaWRhdGVfYnVmZmVyMihkcm1faW50ZWxfYm8gKmJvLCBpbnQg bmVlZF9mZW5jZSkKIAlkcm1faW50ZWxfYnVmbWdyX2dlbSAqYnVmbWdyX2dlbSA9IChkcm1faW50 ZWxfYnVmbWdyX2dlbSAqKWJvLT5idWZtZ3I7CiAJZHJtX2ludGVsX2JvX2dlbSAqYm9fZ2VtID0g KGRybV9pbnRlbF9ib19nZW0gKilibzsKIAlpbnQgaW5kZXg7CisJaW50IGZsYWdzID0gMDsKKwor CWlmIChuZWVkX2ZlbmNlKQorCQlmbGFncyB8PSBFWEVDX09CSkVDVF9ORUVEU19GRU5DRTsKKwlp ZiAoYm9fZ2VtLT51c2VfNDhiX2FkZHJlc3NfcmFuZ2UpCisJCWZsYWdzIHw9IEVYRUNfT0JKRUNU X1NVUFBPUlRTXzQ4Ql9BRERSRVNTOwogCiAJaWYgKGJvX2dlbS0+dmFsaWRhdGVfaW5kZXggIT0g LTEpIHsKLQkJaWYgKG5lZWRfZmVuY2UpCi0JCQlidWZtZ3JfZ2VtLT5leGVjMl9vYmplY3RzW2Jv X2dlbS0+dmFsaWRhdGVfaW5kZXhdLmZsYWdzIHw9Ci0JCQkJRVhFQ19PQkpFQ1RfTkVFRFNfRkVO Q0U7CisJCWJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVjdHNbYm9fZ2VtLT52YWxpZGF0ZV9pbmRleF0u ZmxhZ3MgfD0gZmxhZ3M7CiAJCXJldHVybjsKIAl9CiAKQEAgLTUwMSwxMyArNTMyLDkgQEAgZHJt X2ludGVsX2FkZF92YWxpZGF0ZV9idWZmZXIyKGRybV9pbnRlbF9ibyAqYm8sIGludCBuZWVkX2Zl bmNlKQogCWJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVjdHNbaW5kZXhdLmFsaWdubWVudCA9IGJvLT5h bGlnbjsKIAlidWZtZ3JfZ2VtLT5leGVjMl9vYmplY3RzW2luZGV4XS5vZmZzZXQgPSAwOwogCWJ1 Zm1ncl9nZW0tPmV4ZWNfYm9zW2luZGV4XSA9IGJvOwotCWJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVj dHNbaW5kZXhdLmZsYWdzID0gMDsKKwlidWZtZ3JfZ2VtLT5leGVjMl9vYmplY3RzW2luZGV4XS5m bGFncyA9IGZsYWdzOwogCWJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVjdHNbaW5kZXhdLnJzdmQxID0g MDsKIAlidWZtZ3JfZ2VtLT5leGVjMl9vYmplY3RzW2luZGV4XS5yc3ZkMiA9IDA7Ci0JaWYgKG5l ZWRfZmVuY2UpIHsKLQkJYnVmbWdyX2dlbS0+ZXhlYzJfb2JqZWN0c1tpbmRleF0uZmxhZ3MgfD0K LQkJCUVYRUNfT0JKRUNUX05FRURTX0ZFTkNFOwotCX0KIAlidWZtZ3JfZ2VtLT5leGVjX2NvdW50 Kys7CiB9CiAKQEAgLTc4MCw2ICs4MDcsNyBAQCByZXRyeToKIAlib19nZW0tPnVzZWRfYXNfcmVs b2NfdGFyZ2V0ID0gZmFsc2U7CiAJYm9fZ2VtLT5oYXNfZXJyb3IgPSBmYWxzZTsKIAlib19nZW0t PnJldXNhYmxlID0gdHJ1ZTsKKwlib19nZW0tPnVzZV80OGJfYWRkcmVzc19yYW5nZSA9IGZhbHNl OwogCiAJZHJtX2ludGVsX2JvX2dlbV9zZXRfaW5fYXBlcnR1cmVfc2l6ZShidWZtZ3JfZ2VtLCBi b19nZW0sIGFsaWdubWVudCk7CiAKQEAgLTkyNiw2ICs5NTQsNyBAQCBkcm1faW50ZWxfZ2VtX2Jv X2FsbG9jX3VzZXJwdHIoZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyLAogCWJvX2dlbS0+dXNlZF9h c19yZWxvY190YXJnZXQgPSBmYWxzZTsKIAlib19nZW0tPmhhc19lcnJvciA9IGZhbHNlOwogCWJv X2dlbS0+cmV1c2FibGUgPSBmYWxzZTsKKwlib19nZW0tPnVzZV80OGJfYWRkcmVzc19yYW5nZSA9 IGZhbHNlOwogCiAJZHJtX2ludGVsX2JvX2dlbV9zZXRfaW5fYXBlcnR1cmVfc2l6ZShidWZtZ3Jf Z2VtLCBib19nZW0sIDApOwogCkBAIC0xMDgxLDYgKzExMTAsNyBAQCBkcm1faW50ZWxfYm9fZ2Vt X2NyZWF0ZV9mcm9tX25hbWUoZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyLAogCWJvX2dlbS0+Ym8u aGFuZGxlID0gb3Blbl9hcmcuaGFuZGxlOwogCWJvX2dlbS0+Z2xvYmFsX25hbWUgPSBoYW5kbGU7 CiAJYm9fZ2VtLT5yZXVzYWJsZSA9IGZhbHNlOworCWJvX2dlbS0+dXNlXzQ4Yl9hZGRyZXNzX3Jh bmdlID0gZmFsc2U7CiAKIAltZW1jbGVhcihnZXRfdGlsaW5nKTsKIAlnZXRfdGlsaW5nLmhhbmRs ZSA9IGJvX2dlbS0+Z2VtX2hhbmRsZTsKQEAgLTE5MzAsNiArMTk2MCwxMyBAQCBkb19ib19lbWl0 X3JlbG9jKGRybV9pbnRlbF9ibyAqYm8sIHVpbnQzMl90IG9mZnNldCwKIAlyZXR1cm4gMDsKIH0K IAorc3RhdGljIHZvaWQKK2RybV9pbnRlbF9nZW1fYm9fdXNlXzQ4Yl9hZGRyZXNzX3JhbmdlKGRy bV9pbnRlbF9ibyAqYm8sIHVpbnQzMl90IGVuYWJsZSkKK3sKKwlkcm1faW50ZWxfYm9fZ2VtICpi b19nZW0gPSAoZHJtX2ludGVsX2JvX2dlbSAqKSBibzsKKwlib19nZW0tPnVzZV80OGJfYWRkcmVz c19yYW5nZSA9IGVuYWJsZTsKK30KKwogc3RhdGljIGludAogZHJtX2ludGVsX2dlbV9ib19lbWl0 X3JlbG9jKGRybV9pbnRlbF9ibyAqYm8sIHVpbnQzMl90IG9mZnNldCwKIAkJCSAgICBkcm1faW50 ZWxfYm8gKnRhcmdldF9ibywgdWludDMyX3QgdGFyZ2V0X29mZnNldCwKQEAgLTIwNzMsMTAgKzIx MTAsMTIgQEAgZHJtX2ludGVsX3VwZGF0ZV9idWZmZXJfb2Zmc2V0cyhkcm1faW50ZWxfYnVmbWdy X2dlbSAqYnVmbWdyX2dlbSkKIAogCQkvKiBVcGRhdGUgdGhlIGJ1ZmZlciBvZmZzZXQgKi8KIAkJ aWYgKGJ1Zm1ncl9nZW0tPmV4ZWNfb2JqZWN0c1tpXS5vZmZzZXQgIT0gYm8tPm9mZnNldDY0KSB7 Ci0JCQlEQkcoIkJPICVkICglcykgbWlncmF0ZWQ6IDB4JTA4bHggLT4gMHglMDhsbHhcbiIsCi0J CQkgICAgYm9fZ2VtLT5nZW1faGFuZGxlLCBib19nZW0tPm5hbWUsIGJvLT5vZmZzZXQ2NCwKLQkJ CSAgICAodW5zaWduZWQgbG9uZyBsb25nKWJ1Zm1ncl9nZW0tPmV4ZWNfb2JqZWN0c1tpXS4KLQkJ CSAgICBvZmZzZXQpOworCQkJREJHKCJCTyAlZCAoJXMpIG1pZ3JhdGVkOiAweCUwOHggJTA4eCAt PiAweCUwOHggJTA4eFxuIiwKKwkJCSAgICBib19nZW0tPmdlbV9oYW5kbGUsIGJvX2dlbS0+bmFt ZSwKKwkJCSAgICB1cHBlcl8zMl9iaXRzKGJvLT5vZmZzZXQ2NCksCisJCQkgICAgbG93ZXJfMzJf Yml0cyhiby0+b2Zmc2V0NjQpLAorCQkJICAgIHVwcGVyXzMyX2JpdHMoYnVmbWdyX2dlbS0+ZXhl Y19vYmplY3RzW2ldLm9mZnNldCksCisJCQkgICAgbG93ZXJfMzJfYml0cyhidWZtZ3JfZ2VtLT5l eGVjX29iamVjdHNbaV0ub2Zmc2V0KSk7CiAJCQliby0+b2Zmc2V0NjQgPSBidWZtZ3JfZ2VtLT5l eGVjX29iamVjdHNbaV0ub2Zmc2V0OwogCQkJYm8tPm9mZnNldCA9IGJ1Zm1ncl9nZW0tPmV4ZWNf b2JqZWN0c1tpXS5vZmZzZXQ7CiAJCX0KQEAgLTIwOTQsOSArMjEzMywxMiBAQCBkcm1faW50ZWxf dXBkYXRlX2J1ZmZlcl9vZmZzZXRzMiAoZHJtX2ludGVsX2J1Zm1ncl9nZW0gKmJ1Zm1ncl9nZW0p CiAKIAkJLyogVXBkYXRlIHRoZSBidWZmZXIgb2Zmc2V0ICovCiAJCWlmIChidWZtZ3JfZ2VtLT5l eGVjMl9vYmplY3RzW2ldLm9mZnNldCAhPSBiby0+b2Zmc2V0NjQpIHsKLQkJCURCRygiQk8gJWQg KCVzKSBtaWdyYXRlZDogMHglMDhseCAtPiAweCUwOGxseFxuIiwKLQkJCSAgICBib19nZW0tPmdl bV9oYW5kbGUsIGJvX2dlbS0+bmFtZSwgYm8tPm9mZnNldDY0LAotCQkJICAgICh1bnNpZ25lZCBs b25nIGxvbmcpYnVmbWdyX2dlbS0+ZXhlYzJfb2JqZWN0c1tpXS5vZmZzZXQpOworCQkJREJHKCJC TyAlZCAoJXMpIG1pZ3JhdGVkOiAweCUwOHggJTA4eCAtPiAweCUwOHggJTA4eFxuIiwKKwkJCSAg ICBib19nZW0tPmdlbV9oYW5kbGUsIGJvX2dlbS0+bmFtZSwKKwkJCSAgICB1cHBlcl8zMl9iaXRz KGJvLT5vZmZzZXQ2NCksCisJCQkgICAgbG93ZXJfMzJfYml0cyhiby0+b2Zmc2V0NjQpLAorCQkJ ICAgIHVwcGVyXzMyX2JpdHMoYnVmbWdyX2dlbS0+ZXhlYzJfb2JqZWN0c1tpXS5vZmZzZXQpLAor CQkJICAgIGxvd2VyXzMyX2JpdHMoYnVmbWdyX2dlbS0+ZXhlYzJfb2JqZWN0c1tpXS5vZmZzZXQp KTsKIAkJCWJvLT5vZmZzZXQ2NCA9IGJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVjdHNbaV0ub2Zmc2V0 OwogCQkJYm8tPm9mZnNldCA9IGJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVjdHNbaV0ub2Zmc2V0Owog CQl9CkBAIC0yNDgxLDYgKzI1MjMsNyBAQCBkcm1faW50ZWxfYm9fZ2VtX2NyZWF0ZV9mcm9tX3By aW1lKGRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1nciwgaW50IHByaW1lX2ZkLCBpbnQgcwogCWJvX2dl bS0+dXNlZF9hc19yZWxvY190YXJnZXQgPSBmYWxzZTsKIAlib19nZW0tPmhhc19lcnJvciA9IGZh bHNlOwogCWJvX2dlbS0+cmV1c2FibGUgPSBmYWxzZTsKKwlib19nZW0tPnVzZV80OGJfYWRkcmVz c19yYW5nZSA9IGZhbHNlOwogCiAJRFJNSU5JVExJU1RIRUFEKCZib19nZW0tPnZtYV9saXN0KTsK IAlEUk1MSVNUQUREVEFJTCgmYm9fZ2VtLT5uYW1lX2xpc3QsICZidWZtZ3JfZ2VtLT5uYW1lZCk7 CkBAIC0zMjc4LDYgKzMzMjEsMTMgQEAgZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5pdChpbnQgZmQs IGludCBiYXRjaF9zaXplKQogCQl9CiAJfQogCisJaWYgKGJ1Zm1ncl9nZW0tPmdlbiA+PSA4KSB7 CisJCWdwLnBhcmFtID0gSTkxNV9QQVJBTV9IQVNfQUxJQVNJTkdfUFBHVFQ7CisJCXJldCA9IGRy bUlvY3RsKGJ1Zm1ncl9nZW0tPmZkLCBEUk1fSU9DVExfSTkxNV9HRVRQQVJBTSwgJmdwKTsKKwkJ aWYgKHJldCA9PSAwICYmICpncC52YWx1ZSA9PSAzKQorCQkJYnVmbWdyX2dlbS0+YnVmbWdyLmJv X3VzZV80OGJfYWRkcmVzc19yYW5nZSA9IGRybV9pbnRlbF9nZW1fYm9fdXNlXzQ4Yl9hZGRyZXNz X3JhbmdlOworCX0KKwogCS8qIExldCdzIGdvIHdpdGggb25lIHJlbG9jYXRpb24gcGVyIGV2ZXJ5 IDIgZHdvcmRzIChidXQgcm91bmQgZG93biBhIGJpdAogCSAqIHNpbmNlIGEgcG93ZXIgb2YgdHdv IHdpbGwgbWVhbiBhbiBleHRyYSBwYWdlIGFsbG9jYXRpb24gZm9yIHRoZSByZWxvYwogCSAqIGJ1 ZmZlcikuCmRpZmYgLS1naXQgYS9pbnRlbC9pbnRlbF9idWZtZ3JfcHJpdi5oIGIvaW50ZWwvaW50 ZWxfYnVmbWdyX3ByaXYuaAppbmRleCA1OWViZDE4Li41YzE3ZmZiIDEwMDY0NAotLS0gYS9pbnRl bC9pbnRlbF9idWZtZ3JfcHJpdi5oCisrKyBiL2ludGVsL2ludGVsX2J1Zm1ncl9wcml2LmgKQEAg LTE1Miw2ICsxNTIsMjAgQEAgc3RydWN0IF9kcm1faW50ZWxfYnVmbWdyIHsKIAl2b2lkICgqZGVz dHJveSkgKGRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1ncik7CiAKIAkvKioKKwkgKiBJbmRpY2F0ZSBp ZiB0aGUgYnVmZmVyIGNhbiBiZSBwbGFjZWQgYW55d2hlcmUgaW4gdGhlIGZ1bGwgcHBndHQKKwkg KiBhZGRyZXNzIHJhbmdlICgyXjQ4KS4KKwkgKgorCSAqIEFueSByZXNvdXJjZSB1c2VkIHdpdGgg ZmxhdC9oZWFwbGVzcyAoMHgwMDAwMDAwMC0weGZmZmZmMDAwKQorCSAqIEdlbmVyYWwgU3RhdGUg SGVhcCAoR1NIKSBvciBJbnRydWN0aW9ucyBTdGF0ZSBIZWFwIChJU0gpIG11c3QKKwkgKiBiZSBp biBhIDMyLWJpdCByYW5nZS4gNDgtYml0IHJhbmdlIHdpbGwgb25seSBiZSB1c2VkIHdoZW4gZXhw bGljaXRseQorCSAqIHJlcXVlc3RlZC4KKwkgKgorCSAqIFxwYXJhbSBibyBCdWZmZXIgdG8gc2V0 IHRoZSB1c2VfNDhiX2FkZHJlc3NfcmFuZ2UgZmxhZy4KKwkgKiBccGFyYW0gZW5hYmxlIFRoZSBm bGFnIHZhbHVlLgorCSAqLworCXZvaWQgKCpib191c2VfNDhiX2FkZHJlc3NfcmFuZ2UpIChkcm1f aW50ZWxfYm8gKmJvLCB1aW50MzJfdCBlbmFibGUpOworCisJLyoqCiAJICogQWRkIHJlbG9jYXRp b24gZW50cnkgaW4gcmVsb2NfYnVmLCB3aGljaCB3aWxsIGJlIHVwZGF0ZWQgd2l0aCB0aGUKIAkg KiB0YXJnZXQgYnVmZmVyJ3MgcmVhbCBvZmZzZXQgb24gb24gY29tbWFuZCBzdWJtaXNzaW9uLgog CSAqCi0tIAoyLjUuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK