From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tina Zhang Subject: [RFC PATCH 5/7] drm/i915/gvt: Introduce vGPU plane page flip framework Date: Mon, 3 Dec 2018 15:35:20 +0800 Message-ID: <1543822522-3413-6-git-send-email-tina.zhang@intel.com> References: <1543822522-3413-1-git-send-email-tina.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1543822522-3413-1-git-send-email-tina.zhang@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Cc: intel-gfx@lists.freedesktop.org, kalyan.kondapally@intel.com, intel-gvt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhlIHZHUFUgcGxhbmUgcGFnZSBmbGlwIGZyYW1ld29yayBzdXBwb3J0cyB0byB1cGRhdGUgdGhl IGFzc2lnbmVkIHBsYW5lcwp3aXRoIHRoZSBtZXRhIGZyYW1lYnVmZmVyIGluZm9ybWF0aW9uIGR1 cmluZyBndWVzdCB2R1BVIHBhZ2UgZmxpcC4KCldpdGggdGhlIHVwZGF0ZWQgbWV0YSBmcmFtZWJ1 ZmZlciBpbmZvcm1hdGlvbiwgdGhlIHByb3Bvc2VkIGZyYW1ld29yawp3aWxsIHVzZSB0aGUgYXN5 bmNocm9ub3VzIGF0b21pYyBjb21taXQgcGF0aCB0byBkbyB0aGUgcGxhbmUgdXBkYXRlCm9uIGJl aGFsZiBvZiB2R1BVcyBhcyBtdWNoIGFzIHBvc3NpYmxlLgoKU2lnbmVkLW9mZi1ieTogVGluYSBa aGFuZyA8dGluYS56aGFuZ0BpbnRlbC5jb20+CkNjOiBaaGVueXUgV2FuZyA8emhlbnl1d0BsaW51 eC5pbnRlbC5jb20+CkNjOiBaaGkgV2FuZyA8emhpLmEud2FuZ0BpbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2Rpc3BsYXkuYyB8IDI2NSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZGlzcGxheS5oIHwg IDE4ICsrKwogMiBmaWxlcyBjaGFuZ2VkLCAyODMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndnQvZGlzcGxheS5jCmluZGV4IGE5MTc2YTEuLmUwNmQ4ZDYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d2dC9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Z0L2Rpc3BsYXkuYwpAQCAtMzIsNiArMzIsOSBAQAogICoKICAqLwogCisjaW5jbHVkZSA8ZHJt L2RybV9tb2RlLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfdWFwaS5oPgorI2luY2x1ZGUg PGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVk ZSAiZ3Z0LmgiCiAKQEAgLTQ0Miw2ICs0NDUsMjY4IEBAIHZvaWQgaW50ZWxfZ3Z0X2VtdWxhdGVf dmJsYW5rKHN0cnVjdCBpbnRlbF9ndnQgKmd2dCkKIAltdXRleF91bmxvY2soJmd2dC0+bG9jayk7 CiB9CiAKK3N0YXRpYyBib29sIGNoZWNrX3ZncHVfcGxhbmVfdGFibGUoc3RydWN0IGludGVsX2d2 dCAqZ3Z0LCB1MzIgdmdwdV9wbGFuZV9pZCwKKwkJCQkgICBlbnVtIHBpcGUgKnBpcGUsIGVudW0g cGxhbmVfaWQgKnBsYW5lX2lkLAorCQkJCSAgIHUzMiAqZnJhbWVidWZmZXJfaWQpCit7CisJaW50 IGksIGo7CisKKwlmb3IgKGkgPSAwOyBpIDwgSTkxNV9NQVhfUElQRVM7IGkrKykgeworCQlmb3Ig KGogPSAwOyBqIDwgSTkxNV9NQVhfUExBTkVTOyBqKyspCisJCQlpZiAoZ3Z0LT5hc3NpZ25lZF9w bGFuZVtpXVtqXS52Z3B1X3BsYW5lX2lkID09CisJCQkgICAgdmdwdV9wbGFuZV9pZCkgeworCQkJ CSpwaXBlID0gaTsKKwkJCQkqcGxhbmVfaWQgPSBqOworCQkJCSpmcmFtZWJ1ZmZlcl9pZCA9CisJ CQkJZ3Z0LT5hc3NpZ25lZF9wbGFuZVtpXVtqXS5mcmFtZWJ1ZmZlcl9pZDsKKwkJCQlicmVhazsK KwkJCX0KKworCQlpZiAoaiA8IEk5MTVfTUFYX1BMQU5FUykKKwkJCXJldHVybiB0cnVlOworCX0K KworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHU2NCBwbGFuZV9jdGxfbW9kaWZpZXIodTY0 IGZiX3RpbGluZykKK3sKKwlzd2l0Y2ggKGZiX3RpbGluZykgeworCWNhc2UgUExBTkVfQ1RMX1RJ TEVEX0xJTkVBUjoKKwkJcmV0dXJuIERSTV9GT1JNQVRfTU9EX0xJTkVBUjsKKwljYXNlIFBMQU5F X0NUTF9USUxFRF9YOgorCQlyZXR1cm4gSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQ7CisJY2FzZSBQ TEFORV9DVExfVElMRURfWToKKwkJcmV0dXJuIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEOworCWNh c2UgUExBTkVfQ1RMX1RJTEVEX1kgfCBQTEFORV9DVExfUkVOREVSX0RFQ09NUFJFU1NJT05fRU5B QkxFOgorCQlyZXR1cm4gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTOworCWNhc2UgUExBTkVf Q1RMX1RJTEVEX1lGOgorCQlyZXR1cm4gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEOworCWNhc2Ug UExBTkVfQ1RMX1RJTEVEX1lGIHwgUExBTkVfQ1RMX1JFTkRFUl9ERUNPTVBSRVNTSU9OX0VOQUJM RToKKwkJcmV0dXJuIEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRF9DQ1M7CisJZGVmYXVsdDoKKwkJ TUlTU0lOR19DQVNFKGZiX3RpbGluZyk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQgdmdwdV9mYl91cGRhdGUoc3RydWN0IGludGVsX2d2dCAqZ3Z0LAorCQkJICBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwKKwkJCSAgc3RydWN0IGludGVsX3ZncHVfcGxhbmVfaW5mbyAqdmdw dV9wbGFuZV9pbmZvLAorCQkJICBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQpCit7 CisJaW50IHJldDsKKworCWlmICh2Z3B1X3BsYW5lX2luZm8tPnBsYW5lID09IFBMQU5FX1BSSU1B UlkpIHsKKwkJc3RydWN0IGludGVsX3ZncHVfcHJpbWFyeV9wbGFuZV9mb3JtYXQgcGxhbmU7CisK KwkJcmV0ID0gaW50ZWxfdmdwdV9kZWNvZGVfcHJpbWFyeV9wbGFuZSh2Z3B1X3BsYW5lX2luZm8t PnZncHUsICZwbGFuZSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCW1vZGVfY21k LT5waXhlbF9mb3JtYXQgPSBwbGFuZS5kcm1fZm9ybWF0OworCQltb2RlX2NtZC0+d2lkdGggPSBw bGFuZS53aWR0aDsKKwkJbW9kZV9jbWQtPmhlaWdodCA9IHBsYW5lLmhlaWdodDsKKwkJbW9kZV9j bWQtPmhhbmRsZXNbMF0gPSAwOworCQltb2RlX2NtZC0+b2Zmc2V0c1swXSA9IDA7CisJCW1vZGVf Y21kLT5waXRjaGVzWzBdID0gcGxhbmUuc3RyaWRlOworCQltb2RlX2NtZC0+ZmxhZ3MgPSBEUk1f TU9ERV9GQl9NT0RJRklFUlM7CisJCW1vZGVfY21kLT5tb2RpZmllclswXSA9IHBsYW5lX2N0bF9t b2RpZmllcihwbGFuZS50aWxlZCk7CisJfSBlbHNlIGlmICh2Z3B1X3BsYW5lX2luZm8tPnBsYW5l ID09IFBMQU5FX0NVUlNPUikgeworCQlzdHJ1Y3QgaW50ZWxfdmdwdV9jdXJzb3JfcGxhbmVfZm9y bWF0IHBsYW5lOworCisJCXJldCA9IGludGVsX3ZncHVfZGVjb2RlX2N1cnNvcl9wbGFuZSh2Z3B1 X3BsYW5lX2luZm8tPnZncHUsICZwbGFuZSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0Owor CisJCW1vZGVfY21kLT5waXhlbF9mb3JtYXQgPSBwbGFuZS5kcm1fZm9ybWF0OworCQltb2RlX2Nt ZC0+d2lkdGggPSBwbGFuZS53aWR0aDsKKwkJbW9kZV9jbWQtPmhlaWdodCA9IHBsYW5lLmhlaWdo dDsKKwkJbW9kZV9jbWQtPmhhbmRsZXNbMF0gPSAwOworCQltb2RlX2NtZC0+b2Zmc2V0c1swXSA9 IDA7CisJCW1vZGVfY21kLT5waXRjaGVzWzBdID0gcGxhbmUud2lkdGggKiAocGxhbmUuYnBwIC8g OCk7CisJCW1vZGVfY21kLT5mbGFncyA9IERSTV9NT0RFX0ZCX01PRElGSUVSUzsKKwkJbW9kZV9j bWQtPm1vZGlmaWVyWzBdID0gMDsKKwl9IGVsc2UgeworCQlzdHJ1Y3QgaW50ZWxfdmdwdV9zcHJp dGVfcGxhbmVfZm9ybWF0IHBsYW5lOworCisJCXJldCA9IGludGVsX3ZncHVfZGVjb2RlX3Nwcml0 ZV9wbGFuZSh2Z3B1X3BsYW5lX2luZm8tPnZncHUsICZwbGFuZSk7CisJCWlmIChyZXQpCisJCQly ZXR1cm4gcmV0OworCisJCW1vZGVfY21kLT5waXhlbF9mb3JtYXQgPSBwbGFuZS5od19mb3JtYXQ7 CisJCW1vZGVfY21kLT53aWR0aCA9IHBsYW5lLndpZHRoOworCQltb2RlX2NtZC0+aGVpZ2h0ID0g cGxhbmUuaGVpZ2h0OworCQltb2RlX2NtZC0+aGFuZGxlc1swXSA9IDA7CisJCW1vZGVfY21kLT5v ZmZzZXRzWzBdID0gMDsKKwkJbW9kZV9jbWQtPnBpdGNoZXNbMF0gPSBwbGFuZS5zdHJpZGU7CisJ CW1vZGVfY21kLT5mbGFncyA9IERSTV9NT0RFX0ZCX01PRElGSUVSUzsKKwkJbW9kZV9jbWQtPm1v ZGlmaWVyWzBdID0gcGxhbmVfY3RsX21vZGlmaWVyKHBsYW5lLnRpbGVkKTsKKwl9CisKKwlyZXR1 cm4gcmV0OworfQorCitzdGF0aWMgaW50IHVwZGF0ZV92Z3B1X2Fzc2lnbmVkX3BsYW5lKHN0cnVj dCBpbnRlbF9ndnQgKmd2dCwKKwkJCQkgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJ ICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIsCisJCQkJICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4LAorCQkJ CSAgICBzdHJ1Y3QgaW50ZWxfdmdwdV9wbGFuZV9pbmZvICp2Z3B1X3BsYW5lX2luZm8pCit7CisJ c3RydWN0IGRybV9kZXZpY2UgKmRybSA9ICZndnQtPmRldl9wcml2LT5kcm07CisJc3RydWN0IGlu dGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKTsKKwlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAq cGxhbmVfc3RhdGU7CisJc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgbW9kZV9jbWQ7CisJaW50IHJl dCA9IDA7CisKKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MocGxhbmUtPmRldik7CisJ aWYgKCFzdGF0ZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzdGF0ZS0+YWNxdWlyZV9jdHggPSBj dHg7CisJcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgcGxh bmUpOworCWlmIChJU19FUlIocGxhbmVfc3RhdGUpKSB7CisJCXJldCA9IFBUUl9FUlIocGxhbmVf c3RhdGUpOworCQlnb3RvIGZhaWw7CisJfQorCisJcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19m b3JfcGxhbmUocGxhbmVfc3RhdGUsIGNydGMpOworCWlmIChyZXQgIT0gMCkKKwkJZ290byBmYWls OworCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgZmIpOworCisJcmV0 ID0gdmdwdV9mYl91cGRhdGUoZ3Z0LCBmYiwgdmdwdV9wbGFuZV9pbmZvLCAmbW9kZV9jbWQpOwor CWlmIChyZXQpCisJCWdvdG8gZmFpbDsKKworCWlmIChtZW1jbXAobW9kZV9jbWQucGl0Y2hlcywg ZmItPnBpdGNoZXMsIDE2KSB8fAorCSAgICBtZW1jbXAobW9kZV9jbWQub2Zmc2V0cywgZmItPm9m ZnNldHMsIDE2KSB8fAorCSAgICBkcm1fZ2V0X2Zvcm1hdF9pbmZvKGRybSwgJm1vZGVfY21kKSAh PSBmYi0+Zm9ybWF0IHx8CisJICAgIG1vZGVfY21kLm1vZGlmaWVyWzBdICE9IGZiLT5tb2RpZmll ciB8fAorCSAgICBkcm1fYXRvbWljX2hlbHBlcl9hc3luY19jaGVjayhkcm0sIHN0YXRlKSkKKwkJ c3RhdGUtPmFzeW5jX3VwZGF0ZSA9IGZhbHNlOworCWVsc2UKKwkJc3RhdGUtPmFzeW5jX3VwZGF0 ZSA9IHRydWU7CisKKwlkcm1faGVscGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3QocGxhbmUtPmRldiwg ZmIsICZtb2RlX2NtZCk7CisJcGxhbmVfc3RhdGUtPnNyY194ID0gdmdwdV9wbGFuZV9pbmZvLT5w bGFuZV9vZmZzZXQgJiAweDAwMDBmZmZmOworCXBsYW5lX3N0YXRlLT5zcmNfeSA9ICh2Z3B1X3Bs YW5lX2luZm8tPnBsYW5lX29mZnNldCA+PiAxNikgJiAweDAwMDBmZmZmOworCXBsYW5lX3N0YXRl LT5zcmNfdyA9IG1vZGVfY21kLndpZHRoIDw8IDE2OworCXBsYW5lX3N0YXRlLT5zcmNfaCA9IG1v ZGVfY21kLmhlaWdodCA8PCAxNjsKKworCWludGVsX2ZiLT5tZXRhX2ZiLmdndHRfb2Zmc2V0ID0g dmdwdV9wbGFuZV9pbmZvLT5vZmZzZXQ7CisKKwkvKiBEb24ndCBhbGxvdyBmdWxsIG1vZGVzZXQg Ki8KKwlzdGF0ZS0+YWxsb3dfbW9kZXNldCA9IGZhbHNlOworCisJcmV0ID0gZHJtX2F0b21pY19j b21taXQoc3RhdGUpOworZmFpbDoKKwlkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7CisJcmV0 dXJuIHJldDsKK30KKworc3RhdGljIGludCB2Z3B1X3BsYW5lX3VwZGF0ZV9pbnRlcm5hbChzdHJ1 Y3QgaW50ZWxfZ3Z0ICpndnQsCisJCQkJICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJ ICAgc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiLAorCQkJCSAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4LAorCQkJCSAg IHN0cnVjdCBpbnRlbF92Z3B1X3BsYW5lX2luZm8gKnZncHVfcGxhbmVfaW5mbykKK3sKKwlpbnQg cmV0ID0gMDsKKworCS8qIENoZWNrIHdoZXRoZXIgdGhpcyBwbGFuZSBpcyB1c2FibGUgb24gdGhp cyBDUlRDICovCisJaWYgKCEocGxhbmUtPnBvc3NpYmxlX2NydGNzICYgZHJtX2NydGNfbWFzayhj cnRjKSkpIHsKKwkJRFJNX0RFQlVHX0tNUygiSW52YWxpZCBjcnRjIGZvciBwbGFuZVxuIik7CisJ CXJldCA9IC1FSU5WQUw7CisJCWdvdG8gb3V0OworCX0KKworCXJldCA9IHVwZGF0ZV92Z3B1X2Fz c2lnbmVkX3BsYW5lKGd2dCwgcGxhbmUsIGNydGMsIGZiLCBjdHgsIHZncHVfcGxhbmVfaW5mbyk7 CisKK291dDoKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIGludGVsX3ZncHVfcGxhbmVfdXBkYXRl KHN0cnVjdCBpbnRlbF9ndnQgKmd2dCwKKwkJICAgICAgIHN0cnVjdCBpbnRlbF92Z3B1X3BsYW5l X2luZm8gKnZncHVfcGxhbmVfaW5mbykKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gJmd2 dC0+ZGV2X3ByaXYtPmRybTsKKwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4Owor CXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9ial9mYiA9IE5VTEw7CisJc3RydWN0IGRybV9wbGFu ZSAqcGxhbmU7CisJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IE5VTEw7CisJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGM7CisJc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICpp bnRlbF9mYjsKKwl1MzIgZnJhbWVidWZmZXJfaWQgPSAwOworCWVudW0gcGlwZSBwaXBlOworCWVu dW0gcGxhbmVfaWQgcGxhbmVfaWQ7CisJaW50IHJldDsKKworCWRybV9tb2Rlc2V0X2FjcXVpcmVf aW5pdCgmY3R4LCBEUk1fTU9ERVNFVF9BQ1FVSVJFX0lOVEVSUlVQVElCTEUpOworcmV0cnk6CisJ cmV0ID0gZHJtX21vZGVzZXRfbG9ja19hbGxfY3R4KGRybSwgJmN0eCk7CisJaWYgKHJldCkKKwkJ Z290byBmYWlsOworCisJcmV0ID0gY2hlY2tfdmdwdV9wbGFuZV90YWJsZShndnQsIHZncHVfcGxh bmVfaW5mby0+aWQsICZwaXBlLAorCQkJICAgICAgICZwbGFuZV9pZCwgJmZyYW1lYnVmZmVyX2lk KTsKKwlpZiAoIXJldCkgeworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGZhaWw7CisJfQorCisJ RFJNX0RFQlVHX0tNUygiJXM6IHBpcGUgaXMgJWQsIHBsYW5lX2lkIGlzICVkLCBmYl9pZCBpcyAl ZFxuIiwKKwkJICAgICAgX19mdW5jX18sIHBpcGUsIHBsYW5lX2lkLCBmcmFtZWJ1ZmZlcl9pZCk7 CisKKwlpZiAoZnJhbWVidWZmZXJfaWQpIHsKKwkJaW50ZWxfY3J0YyA9IGludGVsX2dldF9jcnRj X2Zvcl9waXBlKGd2dC0+ZGV2X3ByaXYsIHBpcGUpOworCisJCWRybV9mb3JfZWFjaF9wbGFuZShw bGFuZSwgZHJtKSB7CisJCQlpbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKKwkJ CWlmIChpbnRlbF9wbGFuZS0+cGlwZSA9PSBwaXBlICYmCisJCQkJaW50ZWxfcGxhbmUtPmlkID09 IHBsYW5lX2lkKQorCQkJCWJyZWFrOworCisJCQlpbnRlbF9wbGFuZSA9IE5VTEw7CisJCX0KKwkJ aWYgKCFpbnRlbF9wbGFuZSkKKwkJCWdvdG8gZmFpbDsKKworCQkvL3ZHUFUgbWlnaHQgd2FudCB0 byBkaXNhYmxlIHRoZSBhc3NpZ25lZCBwbGFuZQorCQlpZiAodmdwdV9wbGFuZV9pbmZvLT5vZmZz ZXQgPT0gMCkgeworCQkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUoaW50ZWxfcGxhbmUsIGlu dGVsX2NydGMpOworCQkJZ290byBvdXQ7CisJCX0KKworCQlvYmpfZmIgPSBpZHJfZmluZCgmZHJt LT5tb2RlX2NvbmZpZy5jcnRjX2lkciwgZnJhbWVidWZmZXJfaWQpOworCQlpbnRlbF9mYiA9IHRv X2ludGVsX2ZyYW1lYnVmZmVyKG9ial90b19mYihvYmpfZmIpKTsKKworCX0gZWxzZSB7CisJCURS TV9ERUJVR19LTVMoIm5vIGFzc2dpbmVkIHBsYW5lIGZvciB0aGUgdkdQVSBwbGFuZSAweCV4XG4i LAorCQkJCQkJCXZncHVfcGxhbmVfaW5mby0+aWQpOworCQlnb3RvIGZhaWw7CisJfQorCisJcmV0 ID0gdmdwdV9wbGFuZV91cGRhdGVfaW50ZXJuYWwoZ3Z0LCAmaW50ZWxfcGxhbmUtPmJhc2UsCisJ CQkJCSAmaW50ZWxfY3J0Yy0+YmFzZSwgJmludGVsX2ZiLT5iYXNlLAorCQkJCQkgJmN0eCwgdmdw dV9wbGFuZV9pbmZvKTsKKworZmFpbDoKKwlpZiAocmV0ID09IC1FREVBRExLKSB7CisJCXJldCA9 IGRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7CisJCWlmICghcmV0KQorCQkJZ290byByZXRyeTsK Kwl9CitvdXQ6CisJZHJtX21vZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKKwlkcm1fbW9kZXNldF9h Y3F1aXJlX2ZpbmkoJmN0eCk7Cit9CisKKworCiBzdHJ1Y3QgaW50ZWxfdmdwdV9mYl9tZXRhX2Rh dGEgewogCXUzMiB2Z3B1X3BsYW5lX2lkOyAvKiB2Z3B1X2lkKDIzOjE2KTp2Z3B1X3BpcGUoMTU6 OCk6dmdwdV9wbGFuZSg3OjApKi8KIAlzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdTsgLy8gdGhlIHZH UFUgdGhpcyBtZXRhX2ZiIGJlbG9uZ3MgdG8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d2dC9kaXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZGlzcGxheS5oCmlu ZGV4IGVhN2MxYzUuLjVkOTI5YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2 dC9kaXNwbGF5LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2Rpc3BsYXkuaApAQCAt MTYwLDYgKzE2MCwyMCBAQCBlbnVtIGludGVsX3ZncHVfZWRpZCB7CiAJR1ZUX0VESURfTlVNLAog fTsKIAorc3RydWN0IGludGVsX3ZncHVfcGxhbmVfaW5mbyB7CisJdTMyIGlkOzsgLyogdmdwdSBw bGFuZSBpZCAqLworCWVudW0gcGxhbmVfaWQgcGxhbmU7CisJc3RydWN0IGludGVsX3ZncHUgKnZn cHU7CisKKwkvKiB2R1BVIHBsYW5lIHJlZ2lzdGVycyB2YWx1ZXMuICovCisJdTMyIG9mZnNldDsK Kwl1MzIgc3RyaWRlOworCXUzMiBjb250cm9sOworCXUzMiBwbGFuZV9vZmZzZXQ7CisKKwl1MzIg c2l6ZTsKK307CisKIHN0YXRpYyBpbmxpbmUgY2hhciAqdmdwdV9lZGlkX3N0cihlbnVtIGludGVs X3ZncHVfZWRpZCBpZCkKIHsKIAlzd2l0Y2ggKGlkKSB7CkBAIC0xODEsNCArMTk1LDggQEAgdm9p ZCBpbnRlbF92Z3B1X2NsZWFuX2Rpc3BsYXkoc3RydWN0IGludGVsX3ZncHUgKnZncHUpOwogCiBp bnQgcGlwZV9pc19lbmFibGVkKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LCBpbnQgcGlwZSk7CiAK Kwordm9pZCBpbnRlbF92Z3B1X3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQsCisJ CSAgICAgICBzdHJ1Y3QgaW50ZWxfdmdwdV9wbGFuZV9pbmZvICpwbGFuZV9pbmZvKTsKKwogI2Vu ZGlmCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==