From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH] amdgpu/display: remove link/stream functions abstraction. Date: Fri, 16 Dec 2016 09:49:50 +1000 Message-ID: <20161215234950.17422-1-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KCk1vc3Qgb2YgdGhlc2Ugd2Vy ZW4ndCB1c2VkIGluIHRoZSBkcml2ZXIsIGJ1dCBJIGNhbid0IHNlZSB3aHkgeW91IG5lZWQKdGhp cyB0YWJsZSBpbnN0ZWFkIG9mIGp1c3QgcHJvdmlkaW5nIGRpcmVjdCBBUEksIGl0J3Mgbm90IGhp ZGluZyBhbnl0aGluZy4KClNpZ25lZC1vZmYtYnk6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhh dC5jb20+Ci0tLQogLi4uL2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3R5cGVz LmMgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjLmMg ICAgICAgICAgIHwgMjMyICstLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL2RjLmggICAgICAgICAgICAgICAgfCAgNTQgKy0tLS0KIC4uLi9kcm0vYW1k L2Rpc3BsYXkvbW9kdWxlcy9mcmVlc3luYy9mcmVlc3luYy5jICAgIHwgIDQ4ICsrLS0tCiA0IGZp bGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDMwNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV90eXBl cy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fdHlw ZXMuYwppbmRleCBlNzNjNjU4Li41OWE2YmVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV90eXBlcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3R5cGVzLmMKQEAgLTYzMCw3ICs2 MzAsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfc3RyZWFtX3NjYWxpbmdfc2V0dGluZ3MoCiAJCWRz dC5oZWlnaHQgLT0gZG1fc3RhdGUtPnVuZGVyc2Nhbl92Ym9yZGVyOwogCX0KIAotCWFkZXYtPmRt LmRjLT5zdHJlYW1fZnVuY3Muc3RyZWFtX3VwZGF0ZV9zY2FsaW5nKGFkZXYtPmRtLmRjLCBzdHJl YW0sICZzcmMsICZkc3QpOworCWRjX3N0cmVhbV91cGRhdGVfc2NhbGluZyhhZGV2LT5kbS5kYywg c3RyZWFtLCAmc3JjLCAmZHN0KTsKIAogCURSTV9ERUJVR19LTVMoIkRlc3RpbmF0aW9uIFJlY3Rh bmdsZSB4OiVkICB5OiVkICB3aWR0aDolZCAgaGVpZ2h0OiVkXG4iLAogCQkJZHN0LngsIGRzdC55 LCBkc3Qud2lkdGgsIGRzdC5oZWlnaHQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL2NvcmUvZGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9j b3JlL2RjLmMKaW5kZXggODY5N2Q3Yy4uMDcwMzNiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvY29yZS9kYy5jCkBAIC0xNTgsOSArMTU4LDkgQEAgZmFpbGVkX2FsbG9jOgogCXJl dHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGJvb2wgc3RyZWFtX2FkanVzdF92bWluX3ZtYXgoc3Ry dWN0IGRjICpkYywKLQkJY29uc3Qgc3RydWN0IGRjX3N0cmVhbSAqKnN0cmVhbSwgaW50IG51bV9z dHJlYW1zLAotCQlpbnQgdm1pbiwgaW50IHZtYXgpCitib29sIGRjX3N0cmVhbV9hZGp1c3Rfdm1p bl92bWF4KHN0cnVjdCBkYyAqZGMsCisJCQkJY29uc3Qgc3RydWN0IGRjX3N0cmVhbSAqKnN0cmVh bSwgaW50IG51bV9zdHJlYW1zLAorCQkJCWludCB2bWluLCBpbnQgdm1heCkKIHsKIAkvKiBUT0RP OiBTdXBwb3J0IG11bHRpcGxlIHN0cmVhbXMgKi8KIAlzdHJ1Y3QgY29yZV9kYyAqY29yZV9kYyA9 IERDX1RPX0NPUkUoZGMpOwpAQCAtMTg4LDM5ICsxODgsMTQgQEAgc3RhdGljIGJvb2wgc3RyZWFt X2FkanVzdF92bWluX3ZtYXgoc3RydWN0IGRjICpkYywKIAlyZXR1cm4gcmV0OwogfQogCi0KLXN0 YXRpYyBib29sIHNldF9nYW11dF9yZW1hcChzdHJ1Y3QgZGMgKmRjLAotCQkJY29uc3Qgc3RydWN0 IGRjX3N0cmVhbSAqKnN0cmVhbSwgaW50IG51bV9zdHJlYW1zKQotewotCXN0cnVjdCBjb3JlX2Rj ICpjb3JlX2RjID0gRENfVE9fQ09SRShkYyk7Ci0Jc3RydWN0IGNvcmVfc3RyZWFtICpjb3JlX3N0 cmVhbSA9IERDX1NUUkVBTV9UT19DT1JFKHN0cmVhbVswXSk7Ci0JaW50IGkgPSAwOwotCWJvb2wg cmV0ID0gZmFsc2U7Ci0Jc3RydWN0IHBpcGVfY3R4ICpwaXBlczsKLQotCWZvciAoaSA9IDA7IGkg PCBNQVhfUElQRVM7IGkrKykgewotCQlpZiAoY29yZV9kYy0+Y3VycmVudF9jb250ZXh0LT5yZXNf Y3R4LnBpcGVfY3R4W2ldLnN0cmVhbQotCQkJCT09IGNvcmVfc3RyZWFtKSB7Ci0KLQkJCXBpcGVz ID0gJmNvcmVfZGMtPmN1cnJlbnRfY29udGV4dC0+cmVzX2N0eC5waXBlX2N0eFtpXTsKLQkJCWNv cmVfZGMtPmh3c3Muc2V0X3BsYW5lX2NvbmZpZyhjb3JlX2RjLCBwaXBlcywKLQkJCQkJJmNvcmVf ZGMtPmN1cnJlbnRfY29udGV4dC0+cmVzX2N0eCk7Ci0JCQlyZXQgPSB0cnVlOwotCQl9Ci0JfQot Ci0JcmV0dXJuIHJldDsKLX0KLQogLyogVGhpcyBmdW5jdGlvbiBpcyBub3QgZXhwZWN0ZWQgdG8g ZmFpbCwgcHJvcGVyIGltcGxlbWVudGF0aW9uIG9mCiAgKiB2YWxpZGF0aW9uIHdpbGwgcHJldmVu dCB0aGlzIGZyb20gZXZlciBiZWluZyBjYWxsZWQgZm9yIHVuc3VwcG9ydGVkCiAgKiBjb25maWd1 cmF0aW9ucy4KICAqLwotc3RhdGljIHZvaWQgc3RyZWFtX3VwZGF0ZV9zY2FsaW5nKAotCQljb25z dCBzdHJ1Y3QgZGMgKmRjLAotCQljb25zdCBzdHJ1Y3QgZGNfc3RyZWFtICpkY19zdHJlYW0sCi0J CWNvbnN0IHN0cnVjdCByZWN0ICpzcmMsCi0JCWNvbnN0IHN0cnVjdCByZWN0ICpkc3QpCit2b2lk IGRjX3N0cmVhbV91cGRhdGVfc2NhbGluZyhjb25zdCBzdHJ1Y3QgZGMgKmRjLAorCQkJICAgICAg Y29uc3Qgc3RydWN0IGRjX3N0cmVhbSAqZGNfc3RyZWFtLAorCQkJICAgICAgY29uc3Qgc3RydWN0 IHJlY3QgKnNyYywKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCByZWN0ICpkc3QpCiB7CiAJc3RydWN0 IGNvcmVfc3RyZWFtICpzdHJlYW0gPSBEQ19TVFJFQU1fVE9fQ09SRShkY19zdHJlYW0pOwogCXN0 cnVjdCBjb3JlX2RjICpjb3JlX2RjID0gRENfVE9fQ09SRShkYyk7CkBAIC0yNTUsMTk3ICsyMzAs NiBAQCBzdGF0aWMgdm9pZCBzdHJlYW1fdXBkYXRlX3NjYWxpbmcoCiAJfQogfQogCi1zdGF0aWMg Ym9vbCBzZXRfYmFja2xpZ2h0KHN0cnVjdCBkYyAqZGMsIHVuc2lnbmVkIGludCBiYWNrbGlnaHRf bGV2ZWwsCi0JCQl1bnNpZ25lZCBpbnQgZnJhbWVfcmFtcCwgY29uc3Qgc3RydWN0IGRjX3N0cmVh bSAqc3RyZWFtKQotewotCXN0cnVjdCBjb3JlX2RjICpjb3JlX2RjID0gRENfVE9fQ09SRShkYyk7 Ci0JaW50IGk7Ci0KLQlpZiAoc3RyZWFtLT5zaW5rLT5zaW5rX3NpZ25hbCA9PSBTSUdOQUxfVFlQ RV9FRFApIHsKLQkJZm9yIChpID0gMDsgaSA8IGNvcmVfZGMtPmxpbmtfY291bnQ7IGkrKykKLQkJ CWRjX2xpbmtfc2V0X2JhY2tsaWdodF9sZXZlbCgmY29yZV9kYy0+bGlua3NbaV0tPnB1YmxpYywK LQkJCQkJYmFja2xpZ2h0X2xldmVsLCBmcmFtZV9yYW1wLCBzdHJlYW0pOwotCX0KLQotCXJldHVy biB0cnVlOwotCi19Ci0KLXN0YXRpYyBib29sIGluaXRfZG1jdV9iYWNrbGlnaHRfc2V0dGluZ3Mo c3RydWN0IGRjICpkYykKLXsKLQlzdHJ1Y3QgY29yZV9kYyAqY29yZV9kYyA9IERDX1RPX0NPUkUo ZGMpOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGNvcmVfZGMtPmxpbmtfY291bnQ7IGkr KykKLQkJZGNfbGlua19pbml0X2RtY3VfYmFja2xpZ2h0X3NldHRpbmdzCi0JCQkoJmNvcmVfZGMt PmxpbmtzW2ldLT5wdWJsaWMpOwotCi0JcmV0dXJuIHRydWU7Ci19Ci0KLQotc3RhdGljIGJvb2wg c2V0X2FibV9sZXZlbChzdHJ1Y3QgZGMgKmRjLCB1bnNpZ25lZCBpbnQgYWJtX2xldmVsKQotewot CXN0cnVjdCBjb3JlX2RjICpjb3JlX2RjID0gRENfVE9fQ09SRShkYyk7Ci0JaW50IGk7Ci0KLQlm b3IgKGkgPSAwOyBpIDwgY29yZV9kYy0+bGlua19jb3VudDsgaSsrKQotCQlkY19saW5rX3NldF9h Ym1fbGV2ZWwoJmNvcmVfZGMtPmxpbmtzW2ldLT5wdWJsaWMsCi0JCQkJYWJtX2xldmVsKTsKLQot CXJldHVybiB0cnVlOwotfQotCi1zdGF0aWMgYm9vbCBzZXRfcHNyX2VuYWJsZShzdHJ1Y3QgZGMg KmRjLCBib29sIGVuYWJsZSkKLXsKLQlzdHJ1Y3QgY29yZV9kYyAqY29yZV9kYyA9IERDX1RPX0NP UkUoZGMpOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGNvcmVfZGMtPmxpbmtfY291bnQ7 IGkrKykKLQkJZGNfbGlua19zZXRfcHNyX2VuYWJsZSgmY29yZV9kYy0+bGlua3NbaV0tPnB1Ymxp YywKLQkJCQllbmFibGUpOwotCi0JcmV0dXJuIHRydWU7Ci19Ci0KLQotc3RhdGljIGJvb2wgc2V0 dXBfcHNyKHN0cnVjdCBkYyAqZGMsIGNvbnN0IHN0cnVjdCBkY19zdHJlYW0gKnN0cmVhbSkKLXsK LQlzdHJ1Y3QgY29yZV9kYyAqY29yZV9kYyA9IERDX1RPX0NPUkUoZGMpOwotCXN0cnVjdCBjb3Jl X3N0cmVhbSAqY29yZV9zdHJlYW0gPSBEQ19TVFJFQU1fVE9fQ09SRShzdHJlYW0pOwotCXN0cnVj dCBwaXBlX2N0eCAqcGlwZXM7Ci0JaW50IGk7Ci0JdW5zaWduZWQgaW50IHVuZGVybGF5X2lkeCA9 IGNvcmVfZGMtPnJlc19wb29sLT51bmRlcmxheV9waXBlX2luZGV4OwotCi0JZm9yIChpID0gMDsg aSA8IGNvcmVfZGMtPmxpbmtfY291bnQ7IGkrKykgewotCQlpZiAoY29yZV9zdHJlYW0tPnNpbmst PmxpbmsgPT0gY29yZV9kYy0+bGlua3NbaV0pCi0JCQlkY19saW5rX3NldHVwX3BzcigmY29yZV9k Yy0+bGlua3NbaV0tPnB1YmxpYywKLQkJCQkJc3RyZWFtKTsKLQl9Ci0KLQlmb3IgKGkgPSAwOyBp IDwgTUFYX1BJUEVTOyBpKyspIHsKLQkJaWYgKGNvcmVfZGMtPmN1cnJlbnRfY29udGV4dC0+cmVz X2N0eC5waXBlX2N0eFtpXS5zdHJlYW0KLQkJCQk9PSBjb3JlX3N0cmVhbSAmJiBpICE9IHVuZGVy bGF5X2lkeCkgewotCQkJcGlwZXMgPSAmY29yZV9kYy0+Y3VycmVudF9jb250ZXh0LT5yZXNfY3R4 LnBpcGVfY3R4W2ldOwotCQkJY29yZV9kYy0+aHdzcy5zZXRfc3RhdGljX3NjcmVlbl9jb250cm9s KCZwaXBlcywgMSwKLQkJCQkJMHgxODIpOwotCQl9Ci0JfQotCi0JcmV0dXJuIHRydWU7Ci19Ci0K LXN0YXRpYyB2b2lkIHNldF9kcml2ZV9zZXR0aW5ncyhzdHJ1Y3QgZGMgKmRjLAotCQlzdHJ1Y3Qg bGlua190cmFpbmluZ19zZXR0aW5ncyAqbHRfc2V0dGluZ3MpCi17Ci0Jc3RydWN0IGNvcmVfZGMg KmNvcmVfZGMgPSBEQ19UT19DT1JFKGRjKTsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBj b3JlX2RjLT5saW5rX2NvdW50OyBpKyspCi0JCWRjX2xpbmtfZHBfc2V0X2RyaXZlX3NldHRpbmdz KCZjb3JlX2RjLT5saW5rc1tpXS0+cHVibGljLAotCQkJCWx0X3NldHRpbmdzKTsKLX0KLQotc3Rh dGljIHZvaWQgcGVyZm9ybV9saW5rX3RyYWluaW5nKHN0cnVjdCBkYyAqZGMsCi0JCXN0cnVjdCBk Y19saW5rX3NldHRpbmdzICpsaW5rX3NldHRpbmcsCi0JCWJvb2wgc2tpcF92aWRlb19wYXR0ZXJu KQotewotCXN0cnVjdCBjb3JlX2RjICpjb3JlX2RjID0gRENfVE9fQ09SRShkYyk7Ci0JaW50IGk7 Ci0KLQlmb3IgKGkgPSAwOyBpIDwgY29yZV9kYy0+bGlua19jb3VudDsgaSsrKQotCQlkY19saW5r X2RwX3BlcmZvcm1fbGlua190cmFpbmluZygKLQkJCSZjb3JlX2RjLT5saW5rc1tpXS0+cHVibGlj LAotCQkJbGlua19zZXR0aW5nLAotCQkJc2tpcF92aWRlb19wYXR0ZXJuKTsKLX0KLQotc3RhdGlj IHZvaWQgc2V0X3ByZWZlcnJlZF9saW5rX3NldHRpbmdzKHN0cnVjdCBkYyAqZGMsCi0JCXN0cnVj dCBkY19saW5rX3NldHRpbmdzICpsaW5rX3NldHRpbmcpCi17Ci0Jc3RydWN0IGNvcmVfZGMgKmNv cmVfZGMgPSBEQ19UT19DT1JFKGRjKTsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBjb3Jl X2RjLT5saW5rX2NvdW50OyBpKyspIHsKLQkJY29yZV9kYy0+bGlua3NbaV0tPnB1YmxpYy52ZXJp ZmllZF9saW5rX2NhcC5sYW5lX2NvdW50ID0KLQkJCQlsaW5rX3NldHRpbmctPmxhbmVfY291bnQ7 Ci0JCWNvcmVfZGMtPmxpbmtzW2ldLT5wdWJsaWMudmVyaWZpZWRfbGlua19jYXAubGlua19yYXRl ID0KLQkJCQlsaW5rX3NldHRpbmctPmxpbmtfcmF0ZTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIGVu YWJsZV9ocGQoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmspCi17Ci0JZGNfbGlua19kcF9lbmFi bGVfaHBkKGxpbmspOwotfQotCi1zdGF0aWMgdm9pZCBkaXNhYmxlX2hwZChjb25zdCBzdHJ1Y3Qg ZGNfbGluayAqbGluaykKLXsKLQlkY19saW5rX2RwX2Rpc2FibGVfaHBkKGxpbmspOwotfQotCi0K LXN0YXRpYyB2b2lkIHNldF90ZXN0X3BhdHRlcm4oCi0JCWNvbnN0IHN0cnVjdCBkY19saW5rICps aW5rLAotCQllbnVtIGRwX3Rlc3RfcGF0dGVybiB0ZXN0X3BhdHRlcm4sCi0JCWNvbnN0IHN0cnVj dCBsaW5rX3RyYWluaW5nX3NldHRpbmdzICpwX2xpbmtfc2V0dGluZ3MsCi0JCWNvbnN0IHVuc2ln bmVkIGNoYXIgKnBfY3VzdG9tX3BhdHRlcm4sCi0JCXVuc2lnbmVkIGludCBjdXN0X3BhdHRlcm5f c2l6ZSkKLXsKLQlpZiAobGluayAhPSBOVUxMKQotCQlkY19saW5rX2RwX3NldF90ZXN0X3BhdHRl cm4oCi0JCQlsaW5rLAotCQkJdGVzdF9wYXR0ZXJuLAotCQkJcF9saW5rX3NldHRpbmdzLAotCQkJ cF9jdXN0b21fcGF0dGVybiwKLQkJCWN1c3RfcGF0dGVybl9zaXplKTsKLX0KLQotc3RhdGljIHZv aWQgYWxsb2NhdGVfZGNfc3RyZWFtX2Z1bmNzKHN0cnVjdCBjb3JlX2RjICpjb3JlX2RjKQotewot CWNvcmVfZGMtPnB1YmxpYy5zdHJlYW1fZnVuY3Muc3RyZWFtX3VwZGF0ZV9zY2FsaW5nID0gc3Ry ZWFtX3VwZGF0ZV9zY2FsaW5nOwotCWlmIChjb3JlX2RjLT5od3NzLnNldF9kcnIgIT0gTlVMTCkg ewotCQljb3JlX2RjLT5wdWJsaWMuc3RyZWFtX2Z1bmNzLmFkanVzdF92bWluX3ZtYXggPQotCQkJ CXN0cmVhbV9hZGp1c3Rfdm1pbl92bWF4OwotCX0KLQotCWNvcmVfZGMtPnB1YmxpYy5zdHJlYW1f ZnVuY3Muc2V0X2dhbXV0X3JlbWFwID0KLQkJCXNldF9nYW11dF9yZW1hcDsKLQotCWNvcmVfZGMt PnB1YmxpYy5zdHJlYW1fZnVuY3Muc2V0X2JhY2tsaWdodCA9Ci0JCQlzZXRfYmFja2xpZ2h0Owot Ci0JY29yZV9kYy0+cHVibGljLnN0cmVhbV9mdW5jcy5pbml0X2RtY3VfYmFja2xpZ2h0X3NldHRp bmdzID0KLQkJCWluaXRfZG1jdV9iYWNrbGlnaHRfc2V0dGluZ3M7Ci0KLQljb3JlX2RjLT5wdWJs aWMuc3RyZWFtX2Z1bmNzLnNldF9hYm1fbGV2ZWwgPQotCQkJc2V0X2FibV9sZXZlbDsKLQotCWNv cmVfZGMtPnB1YmxpYy5zdHJlYW1fZnVuY3Muc2V0X3Bzcl9lbmFibGUgPQotCQkJc2V0X3Bzcl9l bmFibGU7Ci0KLQljb3JlX2RjLT5wdWJsaWMuc3RyZWFtX2Z1bmNzLnNldHVwX3BzciA9Ci0JCQlz ZXR1cF9wc3I7Ci0KLQljb3JlX2RjLT5wdWJsaWMubGlua19mdW5jcy5zZXRfZHJpdmVfc2V0dGlu Z3MgPQotCQkJc2V0X2RyaXZlX3NldHRpbmdzOwotCi0JY29yZV9kYy0+cHVibGljLmxpbmtfZnVu Y3MucGVyZm9ybV9saW5rX3RyYWluaW5nID0KLQkJCXBlcmZvcm1fbGlua190cmFpbmluZzsKLQot CWNvcmVfZGMtPnB1YmxpYy5saW5rX2Z1bmNzLnNldF9wcmVmZXJyZWRfbGlua19zZXR0aW5ncyA9 Ci0JCQlzZXRfcHJlZmVycmVkX2xpbmtfc2V0dGluZ3M7Ci0KLQljb3JlX2RjLT5wdWJsaWMubGlu a19mdW5jcy5lbmFibGVfaHBkID0KLQkJCWVuYWJsZV9ocGQ7Ci0KLQljb3JlX2RjLT5wdWJsaWMu bGlua19mdW5jcy5kaXNhYmxlX2hwZCA9Ci0JCQlkaXNhYmxlX2hwZDsKLQotCWNvcmVfZGMtPnB1 YmxpYy5saW5rX2Z1bmNzLnNldF90ZXN0X3BhdHRlcm4gPQotCQkJc2V0X3Rlc3RfcGF0dGVybjsK LX0KLQogc3RhdGljIHZvaWQgZGVzdHJ1Y3Qoc3RydWN0IGNvcmVfZGMgKmRjKQogewogCXJlc291 cmNlX3ZhbGlkYXRlX2N0eF9kZXN0cnVjdChkYy0+Y3VycmVudF9jb250ZXh0KTsKQEAgLTU3MCw4 ICszNTQsNiBAQCBzdGF0aWMgYm9vbCBjb25zdHJ1Y3Qoc3RydWN0IGNvcmVfZGMgKmRjLAogCWlm ICghY3JlYXRlX2xpbmtzKGRjLCBpbml0X3BhcmFtcy0+bnVtX3ZpcnR1YWxfbGlua3MpKQogCQln b3RvIGNyZWF0ZV9saW5rc19mYWlsOwogCi0JYWxsb2NhdGVfZGNfc3RyZWFtX2Z1bmNzKGRjKTsK LQogCXJldHVybiB0cnVlOwogCiAJLyoqKiogZXJyb3IgaGFuZGxpbmcgaGVyZSAqKioqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjLmggYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGMuaAppbmRleCAzNzY5ODFlLi41NjNjZjNkIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGMuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGMuaApAQCAtODQsNTEgKzg0LDggQEAgc3RydWN0IGRjOwog c3RydWN0IGRjX3N1cmZhY2U7CiBzdHJ1Y3QgdmFsaWRhdGVfY29udGV4dDsKIAotc3RydWN0IGRj X2NhcF9mdW5jcyB7Ci0JaW50IGk7Ci19OwotCi1zdHJ1Y3QgZGNfc3RyZWFtX2Z1bmNzIHsKLQli b29sICgqYWRqdXN0X3ZtaW5fdm1heCkoc3RydWN0IGRjICpkYywKLQkJCWNvbnN0IHN0cnVjdCBk Y19zdHJlYW0gKipzdHJlYW0sCi0JCQlpbnQgbnVtX3N0cmVhbXMsCi0JCQlpbnQgdm1pbiwKLQkJ CWludCB2bWF4KTsKLQotCXZvaWQgKCpzdHJlYW1fdXBkYXRlX3NjYWxpbmcpKGNvbnN0IHN0cnVj dCBkYyAqZGMsCi0JCQljb25zdCBzdHJ1Y3QgZGNfc3RyZWFtICpkY19zdHJlYW0sCi0JCQljb25z dCBzdHJ1Y3QgcmVjdCAqc3JjLAotCQkJY29uc3Qgc3RydWN0IHJlY3QgKmRzdCk7Ci0JYm9vbCAo KnNldF9nYW11dF9yZW1hcCkoc3RydWN0IGRjICpkYywKLQkJCWNvbnN0IHN0cnVjdCBkY19zdHJl YW0gKipzdHJlYW0sIGludCBudW1fc3RyZWFtcyk7Ci0JYm9vbCAoKnNldF9iYWNrbGlnaHQpKHN0 cnVjdCBkYyAqZGMsIHVuc2lnbmVkIGludCBiYWNrbGlnaHRfbGV2ZWwsCi0JCXVuc2lnbmVkIGlu dCBmcmFtZV9yYW1wLCBjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtICpzdHJlYW0pOwotCWJvb2wgKCpp bml0X2RtY3VfYmFja2xpZ2h0X3NldHRpbmdzKShzdHJ1Y3QgZGMgKmRjKTsKLQlib29sICgqc2V0 X2FibV9sZXZlbCkoc3RydWN0IGRjICpkYywgdW5zaWduZWQgaW50IGFibV9sZXZlbCk7Ci0JYm9v bCAoKnNldF9wc3JfZW5hYmxlKShzdHJ1Y3QgZGMgKmRjLCBib29sIGVuYWJsZSk7Ci0JYm9vbCAo KnNldHVwX3Bzcikoc3RydWN0IGRjICpkYywgY29uc3Qgc3RydWN0IGRjX3N0cmVhbSAqc3RyZWFt KTsKLX07Ci0KIHN0cnVjdCBsaW5rX3RyYWluaW5nX3NldHRpbmdzOwogCi1zdHJ1Y3QgZGNfbGlu a19mdW5jcyB7Ci0Jdm9pZCAoKnNldF9kcml2ZV9zZXR0aW5ncykoc3RydWN0IGRjICpkYywKLQkJ CXN0cnVjdCBsaW5rX3RyYWluaW5nX3NldHRpbmdzICpsdF9zZXR0aW5ncyk7Ci0Jdm9pZCAoKnBl cmZvcm1fbGlua190cmFpbmluZykoc3RydWN0IGRjICpkYywKLQkJCXN0cnVjdCBkY19saW5rX3Nl dHRpbmdzICpsaW5rX3NldHRpbmcsCi0JCQlib29sIHNraXBfdmlkZW9fcGF0dGVybik7Ci0Jdm9p ZCAoKnNldF9wcmVmZXJyZWRfbGlua19zZXR0aW5ncykoc3RydWN0IGRjICpkYywKLQkJCXN0cnVj dCBkY19saW5rX3NldHRpbmdzICpsaW5rX3NldHRpbmcpOwotCXZvaWQgKCplbmFibGVfaHBkKShj b25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7Ci0Jdm9pZCAoKmRpc2FibGVfaHBkKShjb25zdCBz dHJ1Y3QgZGNfbGluayAqbGluayk7Ci0Jdm9pZCAoKnNldF90ZXN0X3BhdHRlcm4pKAotCQkJY29u c3Qgc3RydWN0IGRjX2xpbmsgKmxpbmssCi0JCQllbnVtIGRwX3Rlc3RfcGF0dGVybiB0ZXN0X3Bh dHRlcm4sCi0JCQljb25zdCBzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyAqcF9saW5rX3Nl dHRpbmdzLAotCQkJY29uc3QgdW5zaWduZWQgY2hhciAqcF9jdXN0b21fcGF0dGVybiwKLQkJCXVu c2lnbmVkIGludCBjdXN0X3BhdHRlcm5fc2l6ZSk7Ci19OwotCiAvKiBTdHJ1Y3R1cmUgdG8gaG9s ZCBjb25maWd1cmF0aW9uIGZsYWdzIHNldCBieSBkbSBhdCBkYyBjcmVhdGlvbi4gKi8KIHN0cnVj dCBkY19jb25maWcgewogCWJvb2wgZ3B1X3ZtX3N1cHBvcnQ7CkBAIC0xNTAsOSArMTA3LDYgQEAg c3RydWN0IGRjX2RlYnVnIHsKIAogc3RydWN0IGRjIHsKIAlzdHJ1Y3QgZGNfY2FwcyBjYXBzOwot CXN0cnVjdCBkY19jYXBfZnVuY3MgY2FwX2Z1bmNzOwotCXN0cnVjdCBkY19zdHJlYW1fZnVuY3Mg c3RyZWFtX2Z1bmNzOwotCXN0cnVjdCBkY19saW5rX2Z1bmNzIGxpbmtfZnVuY3M7CiAJc3RydWN0 IGRjX2NvbmZpZyBjb25maWc7CiAJc3RydWN0IGRjX2RlYnVnIGRlYnVnOwogfTsKQEAgLTM1MCw2 ICszMDQsMTQgQEAgYm9vbCBkY19wb3N0X3VwZGF0ZV9zdXJmYWNlc190b190YXJnZXQoCiB2b2lk IGRjX3VwZGF0ZV9zdXJmYWNlc19mb3JfdGFyZ2V0KHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19z dXJmYWNlX3VwZGF0ZSAqdXBkYXRlcywKIAkJaW50IHN1cmZhY2VfY291bnQsIHN0cnVjdCBkY190 YXJnZXQgKmRjX3RhcmdldCk7CiAKKworYm9vbCBkY19zdHJlYW1fYWRqdXN0X3ZtaW5fdm1heChz dHJ1Y3QgZGMgKmRjLAorCQkJCWNvbnN0IHN0cnVjdCBkY19zdHJlYW0gKipzdHJlYW0sIGludCBu dW1fc3RyZWFtcywKKwkJCQlpbnQgdm1pbiwgaW50IHZtYXgpOwordm9pZCBkY19zdHJlYW1fdXBk YXRlX3NjYWxpbmcoY29uc3Qgc3RydWN0IGRjICpkYywKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBk Y19zdHJlYW0gKmRjX3N0cmVhbSwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCByZWN0ICpzcmMsCisJ CQkgICAgICBjb25zdCBzdHJ1Y3QgcmVjdCAqZHN0KTsKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CiAgKiBUYXJnZXQgSW50ZXJmYWNlcwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9tb2R1bGVzL2ZyZWVzeW5jL2ZyZWVzeW5j LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvbW9kdWxlcy9mcmVlc3luYy9mcmVlc3lu Yy5jCmluZGV4IDg4OTJlOGIuLjhjOTI3ZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9tb2R1bGVzL2ZyZWVzeW5jL2ZyZWVzeW5jLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L21vZHVsZXMvZnJlZXN5bmMvZnJlZXN5bmMuYwpAQCAtMTA4LDE0ICsx MDgsNiBAQCBzdHJ1Y3QgY29yZV9mcmVlc3luYyB7CiAjZGVmaW5lIE1PRF9GUkVFU1lOQ19UT19D T1JFKG1vZF9mcmVlc3luYylcCiAJCWNvbnRhaW5lcl9vZihtb2RfZnJlZXN5bmMsIHN0cnVjdCBj b3JlX2ZyZWVzeW5jLCBwdWJsaWMpCiAKLXN0YXRpYyBib29sIGNoZWNrX2RjX3N1cHBvcnQoY29u c3Qgc3RydWN0IGRjICpkYykKLXsKLQlpZiAoZGMtPnN0cmVhbV9mdW5jcy5hZGp1c3Rfdm1pbl92 bWF4ID09IE5VTEwpCi0JCXJldHVybiBmYWxzZTsKLQotCXJldHVybiB0cnVlOwotfQotCiBzdHJ1 Y3QgbW9kX2ZyZWVzeW5jICptb2RfZnJlZXN5bmNfY3JlYXRlKHN0cnVjdCBkYyAqZGMpCiB7CiAJ c3RydWN0IGNvcmVfZnJlZXN5bmMgKmNvcmVfZnJlZXN5bmMgPQpAQCAtMTQ2LDkgKzEzOCw2IEBA IHN0cnVjdCBtb2RfZnJlZXN5bmMgKm1vZF9mcmVlc3luY19jcmVhdGUoc3RydWN0IGRjICpkYykK IAogCWNvcmVfZnJlZXN5bmMtPmRjID0gZGM7CiAKLQlpZiAoIWNoZWNrX2RjX3N1cHBvcnQoZGMp KQotCQlnb3RvIGZhaWxfY29uc3RydWN0OwotCiAJLyogQ3JlYXRlIGluaXRpYWwgbW9kdWxlIGZv bGRlciBpbiByZWdpc3RyeSBmb3IgZnJlZXN5bmMgZW5hYmxlIGRhdGEgKi8KIAlmbGFnLnNhdmVf cGVyX2VkaWQgPSB0cnVlOwogCWZsYWcuc2F2ZV9wZXJfbGluayA9IGZhbHNlOwpAQCAtNDk0LDEw ICs0ODMsOSBAQCBzdGF0aWMgYm9vbCBzZXRfZnJlZXN5bmNfb25fc3RyZWFtcyhzdHJ1Y3QgY29y ZV9mcmVlc3luYyAqY29yZV9mcmVlc3luYywKIAkJCQl1cGRhdGVfc3RyZWFtX2ZyZWVzeW5jX2Nv bnRleHQoY29yZV9mcmVlc3luYywKIAkJCQkJCXN0cmVhbXNbc3RyZWFtX2lkeF0pOwogCi0JCQkJ Y29yZV9mcmVlc3luYy0+ZGMtPnN0cmVhbV9mdW5jcy4KLQkJCQlhZGp1c3Rfdm1pbl92bWF4KGNv cmVfZnJlZXN5bmMtPmRjLCBzdHJlYW1zLAotCQkJCQkJbnVtX3N0cmVhbXMsIHZfdG90YWxfbWlu LAotCQkJCQkJdl90b3RhbF9tYXgpOworCQkJCWRjX3N0cmVhbV9hZGp1c3Rfdm1pbl92bWF4KGNv cmVfZnJlZXN5bmMtPmRjLCBzdHJlYW1zLAorCQkJCQkJCSAgIG51bV9zdHJlYW1zLCB2X3RvdGFs X21pbiwKKwkJCQkJCQkgICB2X3RvdGFsX21heCk7CiAKIAkJCQlyZXR1cm4gdHJ1ZTsKIApAQCAt NTIwLDggKzUwOCw3IEBAIHN0YXRpYyBib29sIHNldF9mcmVlc3luY19vbl9zdHJlYW1zKHN0cnVj dCBjb3JlX2ZyZWVzeW5jICpjb3JlX2ZyZWVzeW5jLAogCQkJCQkJY29yZV9mcmVlc3luYywKIAkJ CQkJCXN0cmVhbXNbc3RyZWFtX2lkeF0pOwogCi0JCQkJCWNvcmVfZnJlZXN5bmMtPmRjLT5zdHJl YW1fZnVuY3MuCi0JCQkJCWFkanVzdF92bWluX3ZtYXgoCisJCQkJCWRjX3N0cmVhbV9hZGp1c3Rf dm1pbl92bWF4KAogCQkJCQkJY29yZV9mcmVlc3luYy0+ZGMsIHN0cmVhbXMsCiAJCQkJCQludW1f c3RyZWFtcywgdl90b3RhbF9ub21pbmFsLAogCQkJCQkJdl90b3RhbF9ub21pbmFsKTsKQEAgLTU0 MCw4ICs1MjcsNyBAQCBzdGF0aWMgYm9vbCBzZXRfZnJlZXN5bmNfb25fc3RyZWFtcyhzdHJ1Y3Qg Y29yZV9mcmVlc3luYyAqY29yZV9mcmVlc3luYywKIAkJCQkJY29yZV9mcmVlc3luYywKIAkJCQkJ c3RyZWFtc1tzdHJlYW1faWR4XSk7CiAKLQkJCQljb3JlX2ZyZWVzeW5jLT5kYy0+c3RyZWFtX2Z1 bmNzLgotCQkJCQkJYWRqdXN0X3ZtaW5fdm1heCgKKwkJCQlkY19zdHJlYW1fYWRqdXN0X3ZtaW5f dm1heCgKIAkJCQkJCWNvcmVfZnJlZXN5bmMtPmRjLCBzdHJlYW1zLAogCQkJCQkJbnVtX3N0cmVh bXMsIHZfdG90YWxfbm9taW5hbCwKIAkJCQkJCXZfdG90YWxfbm9taW5hbCk7CkBAIC01NjAsOCAr NTQ2LDcgQEAgc3RhdGljIGJvb2wgc2V0X2ZyZWVzeW5jX29uX3N0cmVhbXMoc3RydWN0IGNvcmVf ZnJlZXN5bmMgKmNvcmVfZnJlZXN5bmMsCiAJCQkgKiBub3Qgc3VwcG9ydCBmcmVlc3luYyBiZWNh dXNlIGEgZm9ybWVyIHN0cmVhbSBoYXMKIAkJCSAqIGJlIHByb2dyYW1tZWQKIAkJCSAqLwotCQkJ Y29yZV9mcmVlc3luYy0+ZGMtPnN0cmVhbV9mdW5jcy4KLQkJCQkJYWRqdXN0X3ZtaW5fdm1heCgK KwkJCWRjX3N0cmVhbV9hZGp1c3Rfdm1pbl92bWF4KAogCQkJCQljb3JlX2ZyZWVzeW5jLT5kYywg c3RyZWFtcywKIAkJCQkJbnVtX3N0cmVhbXMsIHZfdG90YWxfbm9taW5hbCwKIAkJCQkJdl90b3Rh bF9ub21pbmFsKTsKQEAgLTY4MCwxMCArNjY1LDkgQEAgdm9pZCBtb2RfZnJlZXN5bmNfaGFuZGxl X3ZfdXBkYXRlKHN0cnVjdCBtb2RfZnJlZXN5bmMgKm1vZF9mcmVlc3luYywKIAkJdXBkYXRlX3N0 cmVhbV9mcmVlc3luY19jb250ZXh0KGNvcmVfZnJlZXN5bmMsIHN0cmVhbXNbMF0pOwogCiAJCS8q IFByb2dyYW0gc3RhdGljIHNjcmVlbiByYW1wIHZhbHVlcyAqLwotCQljb3JlX2ZyZWVzeW5jLT5k Yy0+c3RyZWFtX2Z1bmNzLmFkanVzdF92bWluX3ZtYXgoCi0JCQkJCWNvcmVfZnJlZXN5bmMtPmRj LCBzdHJlYW1zLAotCQkJCQludW1fc3RyZWFtcywgdl90b3RhbCwKLQkJCQkJdl90b3RhbCk7CisJ CWRjX3N0cmVhbV9hZGp1c3Rfdm1pbl92bWF4KGNvcmVfZnJlZXN5bmMtPmRjLCBzdHJlYW1zLAor CQkJCQkgICBudW1fc3RyZWFtcywgdl90b3RhbCwKKwkJCQkJICAgdl90b3RhbCk7CiAJfQogfQog CkBAIC0xMDY4LDEwICsxMDUyLDkgQEAgc3RhdGljIHZvaWQgYXBwbHlfYmVsb3dfdGhlX3Jhbmdl KHN0cnVjdCBjb3JlX2ZyZWVzeW5jICpjb3JlX2ZyZWVzeW5jLAogCQl2bWF4ID0gaW5zZXJ0ZWRf ZnJhbWVfdl90b3RhbDsKIAogCQkvKiBQcm9ncmFtIFZfVE9UQUwgKi8KLQkJY29yZV9mcmVlc3lu Yy0+ZGMtPnN0cmVhbV9mdW5jcy5hZGp1c3Rfdm1pbl92bWF4KAotCQkJY29yZV9mcmVlc3luYy0+ ZGMsICZzdHJlYW0sCi0JCQkxLCB2bWluLAotCQkJdm1heCk7CisJCWRjX3N0cmVhbV9hZGp1c3Rf dm1pbl92bWF4KGNvcmVfZnJlZXN5bmMtPmRjLCAmc3RyZWFtLAorCQkJCQkgICAxLCB2bWluLAor CQkJCQkgICB2bWF4KTsKIAogCQkvKiBDYWNoZSB0aGUgY2FsY3VsYXRlZCB2YXJpYWJsZXMgKi8K IAkJc3RhdGUtPmJ0ci5pbnNlcnRlZF9mcmFtZV9kdXJhdGlvbl9pbl91cyA9CkBAIC0xMTA2LDEw ICsxMDg5LDkgQEAgc3RhdGljIHZvaWQgYXBwbHlfZml4ZWRfcmVmcmVzaChzdHJ1Y3QgY29yZV9m cmVlc3luYyAqY29yZV9mcmVlc3luYywKIAogCQl2bWF4ID0gdm1pbjsKIAotCQljb3JlX2ZyZWVz eW5jLT5kYy0+c3RyZWFtX2Z1bmNzLmFkanVzdF92bWluX3ZtYXgoCi0JCQkJY29yZV9mcmVlc3lu Yy0+ZGMsICZzdHJlYW0sCi0JCQkJMSwgdm1pbiwKLQkJCQl2bWF4KTsKKwkJZGNfc3RyZWFtX2Fk anVzdF92bWluX3ZtYXgoY29yZV9mcmVlc3luYy0+ZGMsICZzdHJlYW0sCisJCQkJCSAgIDEsIHZt aW4sCisJCQkJCSAgIHZtYXgpOwogCX0KIH0KIAotLSAKMi45LjMKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=