From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hai Li Subject: [PATCH v2 1/2] drm/msm: Use customized function to wait for atomic commit done Date: Tue, 28 Apr 2015 19:35:37 -0400 Message-ID: <1430264138-31349-2-git-send-email-hali@codeaurora.org> References: <1430264138-31349-1-git-send-email-hali@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1430264138-31349-1-git-send-email-hali@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org TURQIEZMVVNIIHJlZ2lzdGVycyBjb3VsZCBpbmRpY2F0ZSBpZiB0aGUgcHJldmlvdXMgZmx1c2gg dXBkYXRlcwpoYXMgdGFrZW4gZWZmZWN0IGF0IHZzeW5jIGJvdW5kYXJ5LiBNYWtpbmcgdXNlIG9m IHRoaXMgSC9XIGZlYXR1cmUKY2FuIGNhdGNoIHRoZSB2c3luYyB0aGF0IGhhcHBlbmVkIGJldHdl ZW4gQ1JUQyBhdG9taWNfZmx1c2ggYW5kCipfd2FpdF9mb3JfdmJsYW5rcywgdG8gYXZvaWQgdW5u ZWNlc3Nhcnkgd2FpdC4KClRoaXMgY2hhbmdlIGFsbG93cyBrbXMgQ1JUQ3MgdG8gdXNlIHRoZWly IG93biAqX3dhaXRfZm9yX2NvbW1pdF9kb25lCmZ1bmN0aW9ucyB0byB3YWl0IGZvciBGTFVTSCBy ZWdpc3RlciBjbGVhcmVkIGF0IHZzeW5jLCBiZWZvcmUgY29tbWl0CmNvbXBsZXRpb24uCgpTaWdu ZWQtb2ZmLWJ5OiBIYWkgTGkgPGhhbGlAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL21zbS9tZHAvbWRwNC9tZHA0X2NydGMuYyB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9rbXMuYyAgfCAgNyArKysrCiBkcml2 ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfa21zLmggIHwgIDEgKwogZHJpdmVycy9ncHUv ZHJtL21zbS9tZHAvbWRwNS9tZHA1X2NydGMuYyB8IDU1ICsrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY3RsLmMgIHwgMTEg KysrKystLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2N0bC5oICB8ICAzICst CiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmMgIHwgIDcgKysrKwogZHJp dmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5oICB8ICAxICsKIGRyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2F0b21pYy5jICAgICAgICAgfCAzMCArKysrKysrKysrKysrKystLQogZHJp dmVycy9ncHUvZHJtL21zbS9tc21fa21zLmggICAgICAgICAgICB8ICAzICsrCiAxMCBmaWxlcyBj aGFuZ2VkLCAxNDYgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNC9tZHA0X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbWRwL21kcDQvbWRwNF9jcnRjLmMKaW5kZXggNzNhZmEyMS4uYzRiYjlkOSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNC9tZHA0X2NydGMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfY3J0Yy5jCkBAIC01MSw2ICs1MSwxMSBAQCBz dHJ1Y3QgbWRwNF9jcnRjIHsKIAkvKiBpZiB0aGVyZSBpcyBhIHBlbmRpbmcgZmxpcCwgdGhlc2Ug d2lsbCBiZSBub24tbnVsbDogKi8KIAlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpl dmVudDsKIAorCS8qIEJpdHMgaGF2ZSBiZWVuIGZsdXNoZWQgYXQgdGhlIGxhc3QgY29tbWl0LAor CSAqIHVzZWQgdG8gZGVjaWRlIGlmIGEgdnN5bmMgaGFzIGhhcHBlbmVkIHNpbmNlIGxhc3QgY29t bWl0LgorCSAqLworCXUzMiBmbHVzaGVkX21hc2s7CisKICNkZWZpbmUgUEVORElOR19DVVJTT1Ig MHgxCiAjZGVmaW5lIFBFTkRJTkdfRkxJUCAgIDB4MgogCWF0b21pY190IHBlbmRpbmc7CkBAIC05 Myw2ICs5OCw4IEBAIHN0YXRpYyB2b2lkIGNydGNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRj KQogCiAJREJHKCIlczogZmx1c2g9JTA4eCIsIG1kcDRfY3J0Yy0+bmFtZSwgZmx1c2gpOwogCisJ bWRwNF9jcnRjLT5mbHVzaGVkX21hc2sgPSBmbHVzaDsKKwogCW1kcDRfd3JpdGUobWRwNF9rbXMs IFJFR19NRFA0X09WRVJMQVlfRkxVU0gsIGZsdXNoKTsKIH0KIApAQCAtNTM3LDYgKzU0NCwyOSBA QCBzdGF0aWMgdm9pZCBtZHA0X2NydGNfZXJyX2lycShzdHJ1Y3QgbWRwX2lycSAqaXJxLCB1aW50 MzJfdCBpcnFzdGF0dXMpCiAJY3J0Y19mbHVzaChjcnRjKTsKIH0KIAorc3RhdGljIHZvaWQgbWRw NF9jcnRjX3dhaXRfZm9yX2ZsdXNoX2RvbmUoc3RydWN0IGRybV9jcnRjICpjcnRjKQoreworCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CisJc3RydWN0IG1kcDRfY3J0YyAqbWRw NF9jcnRjID0gdG9fbWRwNF9jcnRjKGNydGMpOworCXN0cnVjdCBtZHA0X2ttcyAqbWRwNF9rbXMg PSBnZXRfa21zKGNydGMpOworCWludCByZXQ7CisKKwlyZXQgPSBkcm1fY3J0Y192YmxhbmtfZ2V0 KGNydGMpOworCWlmIChyZXQpCisJCXJldHVybjsKKworCXJldCA9IHdhaXRfZXZlbnRfdGltZW91 dChkZXYtPnZibGFua1tkcm1fY3J0Y19pbmRleChjcnRjKV0ucXVldWUsCisJCSEobWRwNF9yZWFk KG1kcDRfa21zLCBSRUdfTURQNF9PVkVSTEFZX0ZMVVNIKSAmCisJCQltZHA0X2NydGMtPmZsdXNo ZWRfbWFzayksCisJCW1zZWNzX3RvX2ppZmZpZXMoNTApKTsKKwlpZiAocmV0IDw9IDApCisJCWRl dl93YXJuKGRldi0+ZGV2LCAidmJsYW5rIHRpbWUgb3V0LCBjcnRjPSVkXG4iLCBtZHA0X2NydGMt PmlkKTsKKworCW1kcDRfY3J0Yy0+Zmx1c2hlZF9tYXNrID0gMDsKKworCWRybV9jcnRjX3ZibGFu a19wdXQoY3J0Yyk7Cit9CisKIHVpbnQzMl90IG1kcDRfY3J0Y192Ymxhbmsoc3RydWN0IGRybV9j cnRjICpjcnRjKQogewogCXN0cnVjdCBtZHA0X2NydGMgKm1kcDRfY3J0YyA9IHRvX21kcDRfY3J0 YyhjcnRjKTsKQEAgLTYwMCw2ICs2MzAsMTUgQEAgdm9pZCBtZHA0X2NydGNfc2V0X2ludGYoc3Ry dWN0IGRybV9jcnRjICpjcnRjLCBlbnVtIG1kcDRfaW50ZiBpbnRmLCBpbnQgbWl4ZXIpCiAJbWRw NF93cml0ZShtZHA0X2ttcywgUkVHX01EUDRfRElTUF9JTlRGX1NFTCwgaW50Zl9zZWwpOwogfQog Cit2b2lkIG1kcDRfY3J0Y193YWl0X2Zvcl9jb21taXRfZG9uZShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpCit7CisJLyogd2FpdF9mb3JfZmx1c2hfZG9uZSBpcyB0aGUgb25seSBjYXNlIGZvciBub3cu CisJICogTGF0ZXIgd2Ugd2lsbCBoYXZlIGNvbW1hbmQgbW9kZSBDUlRDIHRvIHdhaXQgZm9yCisJ ICogb3RoZXIgZXZlbnQuCisJICovCisJbWRwNF9jcnRjX3dhaXRfZm9yX2ZsdXNoX2RvbmUoY3J0 Yyk7Cit9CisKIHN0YXRpYyBjb25zdCBjaGFyICpkbWFfbmFtZXNbXSA9IHsKIAkJIkRNQV9QIiwg IkRNQV9TIiwgIkRNQV9FIiwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21k cC9tZHA0L21kcDRfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfa21z LmMKaW5kZXggZDgxZTE5ZC4uZjBiNmM0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9tZHAvbWRwNC9tZHA0X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQv bWRwNF9rbXMuYwpAQCAtMTU3LDYgKzE1NywxMiBAQCBzdGF0aWMgdm9pZCBtZHA0X2NvbXBsZXRl X2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqcwog CW1kcDRfZGlzYWJsZShtZHA0X2ttcyk7CiB9CiAKK3N0YXRpYyB2b2lkIG1kcDRfd2FpdF9mb3Jf Y3J0Y19jb21taXRfZG9uZShzdHJ1Y3QgbXNtX2ttcyAqa21zLAorCQkJCQkJc3RydWN0IGRybV9j cnRjICpjcnRjKQoreworCW1kcDRfY3J0Y193YWl0X2Zvcl9jb21taXRfZG9uZShjcnRjKTsKK30K Kwogc3RhdGljIGxvbmcgbWRwNF9yb3VuZF9waXhjbGsoc3RydWN0IG1zbV9rbXMgKmttcywgdW5z aWduZWQgbG9uZyByYXRlLAogCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7CkBAIC0x OTUsNiArMjAxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtZHBfa21zX2Z1bmNzIGttc19mdW5j cyA9IHsKIAkJLmRpc2FibGVfdmJsYW5rICA9IG1kcDRfZGlzYWJsZV92YmxhbmssCiAJCS5wcmVw YXJlX2NvbW1pdCAgPSBtZHA0X3ByZXBhcmVfY29tbWl0LAogCQkuY29tcGxldGVfY29tbWl0ID0g bWRwNF9jb21wbGV0ZV9jb21taXQsCisJCS53YWl0X2Zvcl9jcnRjX2NvbW1pdF9kb25lID0gbWRw NF93YWl0X2Zvcl9jcnRjX2NvbW1pdF9kb25lLAogCQkuZ2V0X2Zvcm1hdCAgICAgID0gbWRwX2dl dF9mb3JtYXQsCiAJCS5yb3VuZF9waXhjbGsgICAgPSBtZHA0X3JvdW5kX3BpeGNsaywKIAkJLnBy ZWNsb3NlICAgICAgICA9IG1kcDRfcHJlY2xvc2UsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXNtL21kcC9tZHA0L21kcDRfa21zLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0 L21kcDRfa21zLmgKaW5kZXggMGE1YzU4Yi4uNWIxYTQxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL21zbS9tZHAvbWRwNC9tZHA0X2ttcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v bWRwL21kcDQvbWRwNF9rbXMuaApAQCAtMjA2LDYgKzIwNiw3IEBAIHVpbnQzMl90IG1kcDRfY3J0 Y192Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIHZvaWQgbWRwNF9jcnRjX2NhbmNlbF9w ZW5kaW5nX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUp Owogdm9pZCBtZHA0X2NydGNfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHVpbnQz Ml90IGNvbmZpZyk7CiB2b2lkIG1kcDRfY3J0Y19zZXRfaW50ZihzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsIGVudW0gbWRwNF9pbnRmIGludGYsIGludCBtaXhlcik7Cit2b2lkIG1kcDRfY3J0Y193YWl0 X2Zvcl9jb21taXRfZG9uZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogc3RydWN0IGRybV9jcnRj ICptZHA0X2NydGNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwgaW50IGlkLCBpbnQgb3ZscF9pZCwKIAkJZW51bSBtZHA0X2RtYSBkbWFfaWQp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2NydGMuYyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jcnRjLmMKaW5kZXggZjg3N2UxZC4u YWEwYjBjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2Ny dGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY3J0Yy5jCkBAIC00 Niw2ICs0NiwxMSBAQCBzdHJ1Y3QgbWRwNV9jcnRjIHsKIAkvKiBpZiB0aGVyZSBpcyBhIHBlbmRp bmcgZmxpcCwgdGhlc2Ugd2lsbCBiZSBub24tbnVsbDogKi8KIAlzdHJ1Y3QgZHJtX3BlbmRpbmdf dmJsYW5rX2V2ZW50ICpldmVudDsKIAorCS8qIEJpdHMgaGF2ZSBiZWVuIGZsdXNoZWQgYXQgdGhl IGxhc3QgY29tbWl0LAorCSAqIHVzZWQgdG8gZGVjaWRlIGlmIGEgdnN5bmMgaGFzIGhhcHBlbmVk IHNpbmNlIGxhc3QgY29tbWl0LgorCSAqLworCXUzMiBmbHVzaGVkX21hc2s7CisKICNkZWZpbmUg UEVORElOR19DVVJTT1IgMHgxCiAjZGVmaW5lIFBFTkRJTkdfRkxJUCAgIDB4MgogCWF0b21pY190 IHBlbmRpbmc7CkBAIC04MiwxMiArODcsMTIgQEAgc3RhdGljIHZvaWQgcmVxdWVzdF9wZW5kaW5n KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdWludDMyX3QgcGVuZGluZykKIAltZHBfaXJxX3JlZ2lz dGVyKCZnZXRfa21zKGNydGMpLT5iYXNlLCAmbWRwNV9jcnRjLT52YmxhbmspOwogfQogCi1zdGF0 aWMgdm9pZCBjcnRjX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGZsdXNoX21hc2sp CitzdGF0aWMgdTMyIGNydGNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgZmx1c2hf bWFzaykKIHsKIAlzdHJ1Y3QgbWRwNV9jcnRjICptZHA1X2NydGMgPSB0b19tZHA1X2NydGMoY3J0 Yyk7CiAKIAlEQkcoIiVzOiBmbHVzaD0lMDh4IiwgbWRwNV9jcnRjLT5uYW1lLCBmbHVzaF9tYXNr KTsKLQltZHA1X2N0bF9jb21taXQobWRwNV9jcnRjLT5jdGwsIGZsdXNoX21hc2spOworCXJldHVy biBtZHA1X2N0bF9jb21taXQobWRwNV9jcnRjLT5jdGwsIGZsdXNoX21hc2spOwogfQogCiAvKgpA QCAtOTUsNyArMTAwLDcgQEAgc3RhdGljIHZvaWQgY3J0Y19mbHVzaChzdHJ1Y3QgZHJtX2NydGMg KmNydGMsIHUzMiBmbHVzaF9tYXNrKQogICogc28gdGhhdCB3ZSBjYW4gc2FmZWx5IHF1ZXVlIHVu cmVmIHRvIGN1cnJlbnQgZmIgKGllLiBuZXh0CiAgKiB2Ymxhbmsgd2Uga25vdyBodyBpcyBkb25l IHcvIHByZXZpb3VzIHNjYW5vdXRfZmIpLgogICovCi1zdGF0aWMgdm9pZCBjcnRjX2ZsdXNoX2Fs bChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCitzdGF0aWMgdTMyIGNydGNfZmx1c2hfYWxsKHN0cnVj dCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgbWRwNV9jcnRjICptZHA1X2NydGMgPSB0b19t ZHA1X2NydGMoY3J0Yyk7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CkBAIC0xMDMsNyArMTA4 LDcgQEAgc3RhdGljIHZvaWQgY3J0Y19mbHVzaF9hbGwoc3RydWN0IGRybV9jcnRjICpjcnRjKQog CiAJLyogdGhpcyBzaG91bGQgbm90IGhhcHBlbjogKi8KIAlpZiAoV0FSTl9PTighbWRwNV9jcnRj LT5jdGwpKQotCQlyZXR1cm47CisJCXJldHVybiAwOwogCiAJZHJtX2F0b21pY19jcnRjX2Zvcl9l YWNoX3BsYW5lKHBsYW5lLCBjcnRjKSB7CiAJCWZsdXNoX21hc2sgfD0gbWRwNV9wbGFuZV9nZXRf Zmx1c2gocGxhbmUpOwpAQCAtMTExLDcgKzExNiw3IEBAIHN0YXRpYyB2b2lkIGNydGNfZmx1c2hf YWxsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAogCWZsdXNoX21hc2sgfD0gbWRwX2N0bF9mbHVz aF9tYXNrX2xtKG1kcDVfY3J0Yy0+bG0pOwogCi0JY3J0Y19mbHVzaChjcnRjLCBmbHVzaF9tYXNr KTsKKwlyZXR1cm4gY3J0Y19mbHVzaChjcnRjLCBmbHVzaF9tYXNrKTsKIH0KIAogLyogaWYgZmls ZSE9TlVMTCwgdGhpcyBpcyBwcmVjbG9zZSBwb3RlbnRpYWwgY2FuY2VsLWZsaXAgcGF0aCAqLwpA QCAtMzk2LDcgKzQwMSw5IEBAIHN0YXRpYyB2b2lkIG1kcDVfY3J0Y19hdG9taWNfZmx1c2goc3Ry dWN0IGRybV9jcnRjICpjcnRjKQogCQlyZXR1cm47CiAKIAlibGVuZF9zZXR1cChjcnRjKTsKLQlj cnRjX2ZsdXNoX2FsbChjcnRjKTsKKworCW1kcDVfY3J0Yy0+Zmx1c2hlZF9tYXNrID0gY3J0Y19m bHVzaF9hbGwoY3J0Yyk7CisKIAlyZXF1ZXN0X3BlbmRpbmcoY3J0YywgUEVORElOR19GTElQKTsK IH0KIApAQCAtNjA1LDYgKzYxMiwzMiBAQCBzdGF0aWMgdm9pZCBtZHA1X2NydGNfZXJyX2lycShz dHJ1Y3QgbWRwX2lycSAqaXJxLCB1aW50MzJfdCBpcnFzdGF0dXMpCiAJREJHKCIlczogZXJyb3I6 ICUwOHgiLCBtZHA1X2NydGMtPm5hbWUsIGlycXN0YXR1cyk7CiB9CiAKK3N0YXRpYyB2b2lkIG1k cDVfY3J0Y193YWl0X2Zvcl9mbHVzaF9kb25lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3sKKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OworCXN0cnVjdCBtZHA1X2NydGMgKm1k cDVfY3J0YyA9IHRvX21kcDVfY3J0YyhjcnRjKTsKKwlpbnQgcmV0OworCisJLyogU2hvdWxkIG5v dCBjYWxsIHRoaXMgZnVuY3Rpb24gaWYgY3J0YyBpcyBkaXNhYmxlZC4gKi8KKwlpZiAoIW1kcDVf Y3J0Yy0+Y3RsKQorCQlyZXR1cm47CisKKwlyZXQgPSBkcm1fY3J0Y192YmxhbmtfZ2V0KGNydGMp OworCWlmIChyZXQpCisJCXJldHVybjsKKworCXJldCA9IHdhaXRfZXZlbnRfdGltZW91dChkZXYt PnZibGFua1tkcm1fY3J0Y19pbmRleChjcnRjKV0ucXVldWUsCisJCSgobWRwNV9jdGxfZ2V0X2Nv bW1pdF9zdGF0dXMobWRwNV9jcnRjLT5jdGwpICYKKwkJbWRwNV9jcnRjLT5mbHVzaGVkX21hc2sp ID09IDApLAorCQltc2Vjc190b19qaWZmaWVzKDUwKSk7CisJaWYgKHJldCA8PSAwKQorCQlkZXZf d2FybihkZXYtPmRldiwgInZibGFuayB0aW1lIG91dCwgY3J0Yz0lZFxuIiwgbWRwNV9jcnRjLT5p ZCk7CisKKwltZHA1X2NydGMtPmZsdXNoZWRfbWFzayA9IDA7CisKKwlkcm1fY3J0Y192Ymxhbmtf cHV0KGNydGMpOworfQorCiB1aW50MzJfdCBtZHA1X2NydGNfdmJsYW5rKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKIHsKIAlzdHJ1Y3QgbWRwNV9jcnRjICptZHA1X2NydGMgPSB0b19tZHA1X2NydGMo Y3J0Yyk7CkBAIC02MzYsNiArNjY5LDcgQEAgdm9pZCBtZHA1X2NydGNfc2V0X2ludGYoc3RydWN0 IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgbWRwNV9pbnRlcmZhY2UgKmludGYpCiAJCW1kcDVfY3J0 Yy0+dmJsYW5rLmlycW1hc2sgPSBsbTJwcGRvbmUobG0pOwogCWVsc2UKIAkJbWRwNV9jcnRjLT52 YmxhbmsuaXJxbWFzayA9IGludGYydmJsYW5rKGxtLCBpbnRmKTsKKwogCW1kcF9pcnFfdXBkYXRl KCZtZHA1X2ttcy0+YmFzZSk7CiAKIAltZHA1X2N0bF9zZXRfaW50ZihtZHA1X2NydGMtPmN0bCwg aW50Zik7CkBAIC02NTMsNiArNjg3LDE1IEBAIHN0cnVjdCBtZHA1X2N0bCAqbWRwNV9jcnRjX2dl dF9jdGwoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXJldHVybiBXQVJOX09OKCFjcnRjKSA/IE5V TEwgOiBtZHA1X2NydGMtPmN0bDsKIH0KIAordm9pZCBtZHA1X2NydGNfd2FpdF9mb3JfY29tbWl0 X2RvbmUoc3RydWN0IGRybV9jcnRjICpjcnRjKQoreworCS8qIHdhaXRfZm9yX2ZsdXNoX2RvbmUg aXMgdGhlIG9ubHkgY2FzZSBmb3Igbm93LgorCSAqIExhdGVyIHdlIHdpbGwgaGF2ZSBjb21tYW5k IG1vZGUgQ1JUQyB0byB3YWl0IGZvcgorCSAqIG90aGVyIGV2ZW50LgorCSAqLworCW1kcDVfY3J0 Y193YWl0X2Zvcl9mbHVzaF9kb25lKGNydGMpOworfQorCiAvKiBpbml0aWFsaXplIGNydGMgKi8K IHN0cnVjdCBkcm1fY3J0YyAqbWRwNV9jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAkJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIGludCBpZCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRw L21kcDUvbWRwNV9jdGwuYwppbmRleCA3YzBhZGY1Li42ZGNjZTRkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY3RsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9tZHAvbWRwNS9tZHA1X2N0bC5jCkBAIC00MDMsOCArNDAzLDEwIEBAIHN0YXRpYyB1MzIg Zml4X3N3X2ZsdXNoKHN0cnVjdCBtZHA1X2N0bCAqY3RsLCB1MzIgZmx1c2hfbWFzaykKICAqIENU TCByZWdpc3RlcnMgbmVlZCB0byBiZSBmbHVzaGVkIGluIHNvbWUgY2lyY3Vtc3RhbmNlczsgaWYg dGhhdCBpcyB0aGUKICAqIGNhc2UsIHNvbWUgdHJpZ2dlciBiaXRzIHdpbGwgYmUgcHJlc2VudCBp biBib3RoIGZsdXNoIG1hc2sgYW5kCiAgKiBjdGwtPnBlbmRpbmdfY3RsX3RyaWdnZXIuCisgKgor ICogUmV0dXJuIEgvVyBmbHVzaGVkIGJpdCBtYXNrLgogICovCi1pbnQgbWRwNV9jdGxfY29tbWl0 KHN0cnVjdCBtZHA1X2N0bCAqY3RsLCB1MzIgZmx1c2hfbWFzaykKK3UzMiBtZHA1X2N0bF9jb21t aXQoc3RydWN0IG1kcDVfY3RsICpjdGwsIHUzMiBmbHVzaF9tYXNrKQogewogCXN0cnVjdCBtZHA1 X2N0bF9tYW5hZ2VyICpjdGxfbWdyID0gY3RsLT5jdGxtOwogCXN0cnVjdCBvcF9tb2RlICpwaXBl bGluZSA9ICZjdGwtPnBpcGVsaW5lOwpAQCAtNDM1LDcgKzQzNywxMiBAQCBpbnQgbWRwNV9jdGxf Y29tbWl0KHN0cnVjdCBtZHA1X2N0bCAqY3RsLCB1MzIgZmx1c2hfbWFzaykKIAkJcmVmaWxsX3N0 YXJ0X21hc2soY3RsKTsKIAl9CiAKLQlyZXR1cm4gMDsKKwlyZXR1cm4gZmx1c2hfbWFzazsKK30K KwordTMyIG1kcDVfY3RsX2dldF9jb21taXRfc3RhdHVzKHN0cnVjdCBtZHA1X2N0bCAqY3RsKQor eworCXJldHVybiBjdGxfcmVhZChjdGwsIFJFR19NRFA1X0NUTF9GTFVTSChjdGwtPmlkKSk7CiB9 CiAKIHZvaWQgbWRwNV9jdGxfcmVsZWFzZShzdHJ1Y3QgbWRwNV9jdGwgKmN0bCkKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jdGwuaCBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vbWRwL21kcDUvbWRwNV9jdGwuaAppbmRleCA3YTYyMDAwLi40Njc4MjI4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY3RsLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2N0bC5oCkBAIC04OCw3ICs4OCw4IEBAIHUz MiBtZHBfY3RsX2ZsdXNoX21hc2tfY3Vyc29yKGludCBjdXJzb3JfaWQpOwogdTMyIG1kcF9jdGxf Zmx1c2hfbWFza19lbmNvZGVyKHN0cnVjdCBtZHA1X2ludGVyZmFjZSAqaW50Zik7CiAKIC8qIEBm bHVzaF9tYXNrOiBzZWUgQ1RMIGZsdXNoIG1hc2tzIGRlZmluaXRpb25zIGJlbG93ICovCi1pbnQg bWRwNV9jdGxfY29tbWl0KHN0cnVjdCBtZHA1X2N0bCAqY3RsLCB1MzIgZmx1c2hfbWFzayk7Cit1 MzIgbWRwNV9jdGxfY29tbWl0KHN0cnVjdCBtZHA1X2N0bCAqY3RsLCB1MzIgZmx1c2hfbWFzayk7 Cit1MzIgbWRwNV9jdGxfZ2V0X2NvbW1pdF9zdGF0dXMoc3RydWN0IG1kcDVfY3RsICpjdGwpOwog CiB2b2lkIG1kcDVfY3RsX3JlbGVhc2Uoc3RydWN0IG1kcDVfY3RsICpjdGwpOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmMgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmMKaW5kZXggZWRiZGEzOS4uZTY4NjY4ZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuYwpAQCAtODIsNiArODIsMTIgQEAg c3RhdGljIHZvaWQgbWRwNV9jb21wbGV0ZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywgc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnMKIAltZHA1X2Rpc2FibGUobWRwNV9rbXMpOwogfQogCitz dGF0aWMgdm9pZCBtZHA1X3dhaXRfZm9yX2NydGNfY29tbWl0X2RvbmUoc3RydWN0IG1zbV9rbXMg KmttcywKKwkJCQkJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3sKKwltZHA1X2NydGNfd2FpdF9m b3JfY29tbWl0X2RvbmUoY3J0Yyk7Cit9CisKIHN0YXRpYyBsb25nIG1kcDVfcm91bmRfcGl4Y2xr KHN0cnVjdCBtc21fa21zICprbXMsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKIAkJc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKQogewpAQCAtMTQzLDYgKzE0OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbWRwX2ttc19mdW5jcyBrbXNfZnVuY3MgPSB7CiAJCS5kaXNhYmxlX3ZibGFuayAgPSBtZHA1 X2Rpc2FibGVfdmJsYW5rLAogCQkucHJlcGFyZV9jb21taXQgID0gbWRwNV9wcmVwYXJlX2NvbW1p dCwKIAkJLmNvbXBsZXRlX2NvbW1pdCA9IG1kcDVfY29tcGxldGVfY29tbWl0LAorCQkud2FpdF9m b3JfY3J0Y19jb21taXRfZG9uZSA9IG1kcDVfd2FpdF9mb3JfY3J0Y19jb21taXRfZG9uZSwKIAkJ LmdldF9mb3JtYXQgICAgICA9IG1kcF9nZXRfZm9ybWF0LAogCQkucm91bmRfcGl4Y2xrICAgID0g bWRwNV9yb3VuZF9waXhjbGssCiAJCS5zZXRfc3BsaXRfZGlzcGxheSA9IG1kcDVfc2V0X3NwbGl0 X2Rpc3BsYXksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVf a21zLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmgKaW5kZXggZjhk NTczNi4uY2YyNjBiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9t ZHA1X2ttcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuaApA QCAtMjM3LDYgKzIzNyw3IEBAIGludCBtZHA1X2NydGNfZ2V0X2xtKHN0cnVjdCBkcm1fY3J0YyAq Y3J0Yyk7CiBzdHJ1Y3QgbWRwNV9jdGwgKm1kcDVfY3J0Y19nZXRfY3RsKHN0cnVjdCBkcm1fY3J0 YyAqY3J0Yyk7CiB2b2lkIG1kcDVfY3J0Y19jYW5jZWxfcGVuZGluZ19mbGlwKHN0cnVjdCBkcm1f Y3J0YyAqY3J0Yywgc3RydWN0IGRybV9maWxlICpmaWxlKTsKIHZvaWQgbWRwNV9jcnRjX3NldF9p bnRmKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IG1kcDVfaW50ZXJmYWNlICppbnRmKTsK K3ZvaWQgbWRwNV9jcnRjX3dhaXRfZm9yX2NvbW1pdF9kb25lKHN0cnVjdCBkcm1fY3J0YyAqY3J0 Yyk7CiBzdHJ1Y3QgZHJtX2NydGMgKm1kcDVfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBpbnQgaWQpOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2F0b21pYy5jCmluZGV4IDE4ZmQ2NDMuLjdmNjlkOWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21p Yy5jCkBAIC04NCw2ICs4NCwzMyBAQCBzdGF0aWMgdm9pZCBjb21taXRfZGVzdHJveShzdHJ1Y3Qg bXNtX2NvbW1pdCAqYykKIAlrZnJlZShjKTsKIH0KIAorc3RhdGljIHZvaWQgbXNtX2F0b21pY193 YWl0X2Zvcl9jb21taXRfZG9uZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQlzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKKwlz dHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gb2xkX3N0YXRlLT5kZXYtPmRldl9wcml2YXRl OworCXN0cnVjdCBtc21fa21zICprbXMgPSBwcml2LT5rbXM7CisJaW50IG5jcnRjcyA9IG9sZF9z dGF0ZS0+ZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YzsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7 IGkgPCBuY3J0Y3M7IGkrKykgeworCQljcnRjID0gb2xkX3N0YXRlLT5jcnRjc1tpXTsKKworCQlp ZiAoIWNydGMpCisJCQljb250aW51ZTsKKworCQlpZiAoIWNydGMtPnN0YXRlLT5lbmFibGUpCisJ CQljb250aW51ZTsKKworCQkvKiBMZWdhY3kgY3Vyc29yIGlvY3RscyBhcmUgY29tcGxldGVseSB1 bnN5bmNlZCwgYW5kIHVzZXJzcGFjZQorCQkgKiByZWxpZXMgb24gdGhhdCAoYnkgZG9pbmcgdG9u cyBvZiBjdXJzb3IgdXBkYXRlcykuICovCisJCWlmIChvbGRfc3RhdGUtPmxlZ2FjeV9jdXJzb3Jf dXBkYXRlKQorCQkJY29udGludWU7CisKKwkJa21zLT5mdW5jcy0+d2FpdF9mb3JfY3J0Y19jb21t aXRfZG9uZShrbXMsIGNydGMpOworCX0KK30KKwogLyogVGhlIChwb3RlbnRpYWxseSkgYXN5bmNo cm9ub3VzIHBhcnQgb2YgdGhlIGNvbW1pdC4gIEF0IHRoaXMgcG9pbnQKICAqIG5vdGhpbmcgY2Fu IGZhaWwgc2hvcnQgb2YgYXJtYWdlZGRvbi4KICAqLwpAQCAtMTE1LDcgKzE0Miw3IEBAIHN0YXRp YyB2b2lkIGNvbXBsZXRlX2NvbW1pdChzdHJ1Y3QgbXNtX2NvbW1pdCAqYykKIAkgKiBub3QgYmUg Y3JpdGljYWwgcGF0aCkKIAkgKi8KIAotCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX3ZibGFu a3MoZGV2LCBzdGF0ZSk7CisJbXNtX2F0b21pY193YWl0X2Zvcl9jb21taXRfZG9uZShkZXYsIHN0 YXRlKTsKIAogCWRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgc3RhdGUpOwog CkBAIC0xMzksNyArMTY2LDYgQEAgc3RhdGljIHZvaWQgYWRkX2ZiKHN0cnVjdCBtc21fY29tbWl0 ICpjLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKIAljLT5mZW5jZSA9IG1heChjLT5mZW5j ZSwgbXNtX2dlbV9mZW5jZSh0b19tc21fYm8ob2JqKSwgTVNNX1BSRVBfUkVBRCkpOwogfQogCi0K IGludCBtc21fYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAgICAgc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fa21zLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaAppbmRleCBh OWYxN2JkLi45YmNhYmFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9rbXMuaApAQCAtNDMsNiArNDMsOSBAQCBz dHJ1Y3QgbXNtX2ttc19mdW5jcyB7CiAJLyogbW9kZXNldCwgYnJhY2tldGluZyBhdG9taWNfY29t bWl0KCk6ICovCiAJdm9pZCAoKnByZXBhcmVfY29tbWl0KShzdHJ1Y3QgbXNtX2ttcyAqa21zLCBz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogCXZvaWQgKCpjb21wbGV0ZV9jb21taXQp KHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CisJ LyogZnVuY3Rpb25zIHRvIHdhaXQgZm9yIGF0b21pYyBjb21taXQgY29tcGxldGVkIG9uIGVhY2gg Q1JUQyAqLworCXZvaWQgKCp3YWl0X2Zvcl9jcnRjX2NvbW1pdF9kb25lKShzdHJ1Y3QgbXNtX2tt cyAqa21zLAorCQkJCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogCS8qIG1pc2M6ICovCiAJY29u c3Qgc3RydWN0IG1zbV9mb3JtYXQgKigqZ2V0X2Zvcm1hdCkoc3RydWN0IG1zbV9rbXMgKmttcywg dWludDMyX3QgZm9ybWF0KTsKIAlsb25nICgqcm91bmRfcGl4Y2xrKShzdHJ1Y3QgbXNtX2ttcyAq a21zLCB1bnNpZ25lZCBsb25nIHJhdGUsCi0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50 ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLApob3N0ZWQgYnkg VGhlIExpbnV4IEZvdW5kYXRpb24KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==