From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v5 17/19] drm/msm/dpu: remove RM dependency on connector state Date: Fri, 7 Sep 2018 09:30:28 -0400 Message-ID: <20180907133028.GE188300@art_vandelay> References: <1536199708-23664-1-git-send-email-jsanka@codeaurora.org> <1536199708-23664-18-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1536199708-23664-18-git-send-email-jsanka@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jeykumar Sankaran Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, seanpaul@chromium.org, hoegsberg@google.com, freedreno@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org T24gV2VkLCBTZXAgMDUsIDIwMTggYXQgMDc6MDg6MjZQTSAtMDcwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gQ29ubmVjdG9yIHN0YXRlcyB3ZXJlIHBhc3NlZCBhcm91bmQgUk0gdG8gdXBk YXRlIHRoZSBjdXN0b20KPiB0b3BvbG9neSBjb25uZWN0b3IgcHJvcGVydHkgd2l0aCBjaG9zZW4g dG9wb2xvZ3kgZGF0YS4gTm93IHRoYXQKPiB3ZSBnb3QgcmlkIG9mIGJvdGggY3VzdG9tIHByb3Bl cnRpZXMgYW5kIHRvcG9sb2d5IG5hbWVzLCB0aGlzCj4gY2hhbmdlIGNsZWFucyB1cCB0aGUgbWVj aGFuaXNtIHRvIHBhc3MgY29ubmVjdG9yIHN0YXRlcyBhY3Jvc3MKPiBSTSBoZWxwZXJzIGFuZCBl bmNvZGVyIGZ1bmN0aW9ucy4KPiAKPiBjaGFuZ2VzIGluIHY1Ogo+IAktIEludHJvZHVjZWQgaW4g dGhlIHNlcmllcwo+IAo+IFNpZ25lZC1vZmYtYnk6IEpleWt1bWFyIFNhbmthcmFuIDxqc2Fua2FA Y29kZWF1cm9yYS5vcmc+CgpXaXRoIEpvcmRhbidzIG5pdHMgYWRkcmVzc2VkLAoKUmV2aWV3ZWQt Ynk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgoKPiAtLS0KPiAgZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYyAgICAgICAgfCAxNSArKystLS0KPiAg ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaCAgICAgICAgfCAgNCAr LQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmggICB8 ICAzICstCj4gIC4uLi9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c19jbWQu YyAgIHwgIDMgKy0KPiAgLi4uL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlz X3ZpZC5jICAgfCAgNyArKy0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Jt LmMgICAgICAgICAgICAgfCA2MCArKysrKy0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5oICAgICAgICAgICAgIHwgIDIgLQo+ICA3IGZpbGVz IGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDY3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+IGluZGV4IDBkNDM1MjUuLjE4 ZjVkMWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Vu Y29kZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy LmMKPiBAQCAtNDM2LDE1ICs0MzYsMTQgQEAgaW50IGRwdV9lbmNvZGVyX2hlbHBlcl91bnJlZ2lz dGVyX2lycShzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMsCj4gIH0KPiAgCj4gIHZv aWQgZHB1X2VuY29kZXJfZ2V0X2h3X3Jlc291cmNlcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9l bmMsCj4gLQkJc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jlc291cmNlcyAqaHdfcmVzLAo+IC0JCXN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICsJCQkJICBzdHJ1Y3QgZHB1 X2VuY29kZXJfaHdfcmVzb3VyY2VzICpod19yZXMpCj4gIHsKPiAgCXN0cnVjdCBkcHVfZW5jb2Rl cl92aXJ0ICpkcHVfZW5jID0gTlVMTDsKPiAgCWludCBpID0gMDsKPiAgCj4gLQlpZiAoIWh3X3Jl cyB8fCAhZHJtX2VuYyB8fCAhY29ubl9zdGF0ZSkgewo+IC0JCURQVV9FUlJPUigiaW52YWxpZCBh cmd1bWVudChzKSwgZHJtX2VuYyAlZCwgcmVzICVkLCBzdGF0ZSAlZFxuIiwKPiAtCQkJCWRybV9l bmMgIT0gMCwgaHdfcmVzICE9IDAsIGNvbm5fc3RhdGUgIT0gMCk7Cj4gKwlpZiAoIWh3X3JlcyB8 fCAhZHJtX2VuYykgewo+ICsJCURQVV9FUlJPUigiaW52YWxpZCBhcmd1bWVudChzKSwgZHJtX2Vu YyAlZCwgcmVzICVkXG4iLAo+ICsJCQkgIGRybV9lbmMgIT0gMCwgaHdfcmVzICE9IDApOwo+ICAJ CXJldHVybjsKPiAgCX0KPiAgCj4gQEAgLTQ1OCw3ICs0NTcsNyBAQCB2b2lkIGRwdV9lbmNvZGVy X2dldF9od19yZXNvdXJjZXMoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAo+ICAJCXN0cnVj dCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzID0gZHB1X2VuYy0+cGh5c19lbmNzW2ldOwo+ICAKPiAg CQlpZiAocGh5cyAmJiBwaHlzLT5vcHMuZ2V0X2h3X3Jlc291cmNlcykKPiAtCQkJcGh5cy0+b3Bz LmdldF9od19yZXNvdXJjZXMocGh5cywgaHdfcmVzLCBjb25uX3N0YXRlKTsKPiArCQkJcGh5cy0+ b3BzLmdldF9od19yZXNvdXJjZXMocGh5cywgaHdfcmVzKTsKPiAgCX0KPiAgfQo+ICAKPiBAQCAt NjUyLDcgKzY1MSw3IEBAIHN0YXRpYyBpbnQgZHB1X2VuY29kZXJfdmlydF9hdG9taWNfY2hlY2so Cj4gIAkJaWYgKGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpCj4gIAkJ CQkmJiBkcHVfZW5jLT5tb2RlX3NldF9jb21wbGV0ZSkgewo+ICAJCQlyZXQgPSBkcHVfcm1fcmVz ZXJ2ZSgmZHB1X2ttcy0+cm0sIGRybV9lbmMsIGNydGNfc3RhdGUsCj4gLQkJCQljb25uX3N0YXRl LCB0b3BvbG9neSwgdHJ1ZSk7Cj4gKwkJCQkJICAgICB0b3BvbG9neSwgdHJ1ZSk7Cj4gIAkJCWRw dV9lbmMtPm1vZGVfc2V0X2NvbXBsZXRlID0gZmFsc2U7Cj4gIAkJfQo+ICAJfQo+IEBAIC0xMDQ0 LDcgKzEwNDMsNyBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl92aXJ0X21vZGVfc2V0KHN0cnVj dCBkcm1fZW5jb2RlciAqZHJtX2VuYywKPiAgCj4gIAkvKiBSZXNlcnZlIGR5bmFtaWMgcmVzb3Vy Y2VzIG5vdy4gSW5kaWNhdGluZyBub24tQXRvbWljVGVzdCBwaGFzZSAqLwo+ICAJcmV0ID0gZHB1 X3JtX3Jlc2VydmUoJmRwdV9rbXMtPnJtLCBkcm1fZW5jLCBkcm1fZW5jLT5jcnRjLT5zdGF0ZSwK PiAtCQkJY29ubi0+c3RhdGUsIHRvcG9sb2d5LCBmYWxzZSk7Cj4gKwkJCSAgICAgdG9wb2xvZ3ks IGZhbHNlKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlEUFVfRVJST1JfRU5DKGRwdV9lbmMsCj4gIAkJ CQkiZmFpbGVkIHRvIHJlc2VydmUgaHcgcmVzb3VyY2VzLCAlZFxuIiwgcmV0KTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaCBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmgKPiBpbmRleCBmMTA5YjRkLi4z NGFjNWI2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9l bmNvZGVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rl ci5oCj4gQEAgLTUxLDExICs1MSw5IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl9raWNrb2ZmX3BhcmFt cyB7Cj4gICAqIGRwdV9lbmNvZGVyX2dldF9od19yZXNvdXJjZXMgLSBQb3B1bGF0ZSB0YWJsZSBv ZiByZXF1aXJlZCBoYXJkd2FyZSByZXNvdXJjZXMKPiAgICogQGVuY29kZXI6CWVuY29kZXIgcG9p bnRlcgo+ICAgKiBAaHdfcmVzOglyZXNvdXJjZSB0YWJsZSB0byBwb3B1bGF0ZSB3aXRoIGVuY29k ZXIgcmVxdWlyZWQgcmVzb3VyY2VzCj4gLSAqIEBjb25uX3N0YXRlOglyZXBvcnQgaHcgcmVxcyBi YXNlZCBvbiB0aGlzIHByb3Bvc2VkIGNvbm5lY3RvciBzdGF0ZQo+ICAgKi8KPiAgdm9pZCBkcHVf ZW5jb2Rlcl9nZXRfaHdfcmVzb3VyY2VzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAt CQlzdHJ1Y3QgZHB1X2VuY29kZXJfaHdfcmVzb3VyY2VzICpod19yZXMsCj4gLQkJc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpOwo+ICsJCQkJICBzdHJ1Y3QgZHB1X2VuY29k ZXJfaHdfcmVzb3VyY2VzICpod19yZXMpOwo+ICAKPiAgLyoqCj4gICAqIGRwdV9lbmNvZGVyX3Jl Z2lzdGVyX3ZibGFua19jYWxsYmFjayAtIHByb3ZpZGUgY2FsbGJhY2sgdG8gZW5jb2RlciB0aGF0 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy X3BoeXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXMu aAo+IGluZGV4IGEwMGIyMjIuLjNmZTRlZDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oCj4gQEAgLTE0MCw4ICsxNDAsNyBAQCBz dHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19vcHMgewo+ICAJCQkgICAgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGUpOwo+ICAJdm9pZCAoKmRlc3Ryb3kpKHN0cnVjdCBkcHVfZW5j b2Rlcl9waHlzICplbmNvZGVyKTsKPiAgCXZvaWQgKCpnZXRfaHdfcmVzb3VyY2VzKShzdHJ1Y3Qg ZHB1X2VuY29kZXJfcGh5cyAqZW5jb2RlciwKPiAtCQkJc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jl c291cmNlcyAqaHdfcmVzLAo+IC0JCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9z dGF0ZSk7Cj4gKwkJCQkgc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jlc291cmNlcyAqaHdfcmVzKTsK PiAgCWludCAoKmNvbnRyb2xfdmJsYW5rX2lycSkoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKmVu YywgYm9vbCBlbmFibGUpOwo+ICAJaW50ICgqd2FpdF9mb3JfY29tbWl0X2RvbmUpKHN0cnVjdCBk cHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYyk7Cj4gIAlpbnQgKCp3YWl0X2Zvcl90eF9jb21wbGV0 ZSkoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c19jbWQuYyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfY21kLmMKPiBpbmRleCA1 Yzg5ODY4Li5mMjc3YTY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9lbmNvZGVyX3BoeXNfY21kLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX2NtZC5jCj4gQEAgLTU5OSw4ICs1OTksNyBAQCBzdGF0 aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9kZXN0cm95KHN0cnVjdCBkcHVfZW5jb2Rlcl9w aHlzICpwaHlzX2VuYykKPiAgCj4gIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3BoeXNfY21kX2dl dF9od19yZXNvdXJjZXMoCj4gIAkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jLAo+ IC0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9od19yZXNvdXJjZXMgKmh3X3JlcywKPiAtCQlzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiArCQlzdHJ1Y3QgZHB1X2VuY29kZXJf aHdfcmVzb3VyY2VzICpod19yZXMpCj4gIHsKPiAgCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzX2Nt ZCAqY21kX2VuYyA9Cj4gIAkJdG9fZHB1X2VuY29kZXJfcGh5c19jbWQocGh5c19lbmMpOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlz X3ZpZC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c192 aWQuYwo+IGluZGV4IDZkZTEzZjQuLmZkNTFmZTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c192aWQuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMKPiBAQCAtNTM3LDEy ICs1MzcsMTEgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c192aWRfZGVzdHJveShzdHJ1 Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpCj4gIAo+ICBzdGF0aWMgdm9pZCBkcHVfZW5j b2Rlcl9waHlzX3ZpZF9nZXRfaHdfcmVzb3VyY2VzKAo+ICAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9w aHlzICpwaHlzX2VuYywKPiAtCQlzdHJ1Y3QgZHB1X2VuY29kZXJfaHdfcmVzb3VyY2VzICpod19y ZXMsCj4gLQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gKwkJc3Ry dWN0IGRwdV9lbmNvZGVyX2h3X3Jlc291cmNlcyAqaHdfcmVzKQo+ICB7Cj4gIAlpZiAoIXBoeXNf ZW5jIHx8ICFod19yZXMpIHsKPiAtCQlEUFVfRVJST1IoImludmFsaWQgYXJnKHMpLCBlbmMgJWQg aHdfcmVzICVkIGNvbm5fc3RhdGUgJWRcbiIsCj4gLQkJCQlwaHlzX2VuYyAhPSAwLCBod19yZXMg IT0gMCwgY29ubl9zdGF0ZSAhPSAwKTsKPiArCQlEUFVfRVJST1IoImludmFsaWQgYXJnKHMpLCBl bmMgJWQgaHdfcmVzICVkXG4iLAo+ICsJCQkgIHBoeXNfZW5jICE9IDAsIGh3X3JlcyAhPSAwKTsK PiAgCQlyZXR1cm47Cj4gIAl9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfcm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9y bS5jCj4gaW5kZXggODY0NjZmMC4uMTE2NDU2MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9ybS5jCj4gQEAgLTY4Miw3ICs2ODIsNiBAQCBzdGF0aWMgaW50IF9kcHVfcm1f bWFrZV9uZXh0X3JzdnAoCj4gIAkJc3RydWN0IGRwdV9ybSAqcm0sCj4gIAkJc3RydWN0IGRybV9l bmNvZGVyICplbmMsCj4gIAkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+IC0J CXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAo+ICAJCXN0cnVjdCBkcHVf cm1fcnN2cCAqcnN2cCwKPiAgCQlzdHJ1Y3QgZHB1X3JtX3JlcXVpcmVtZW50cyAqcmVxcykKPiAg ewo+IEBAIC03MjgsNyArNzI3LDYgQEAgc3RhdGljIGludCBfZHB1X3JtX3BvcHVsYXRlX3JlcXVp cmVtZW50cygKPiAgCQlzdHJ1Y3QgZHB1X3JtICpybSwKPiAgCQlzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuYywKPiAgCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gLQkJc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUsCj4gIAkJc3RydWN0IGRwdV9ybV9yZXF1 aXJlbWVudHMgKnJlcXMsCj4gIAkJc3RydWN0IG1zbV9kaXNwbGF5X3RvcG9sb2d5IHJlcV90b3Bv bG9neSkKPiAgewo+IEBAIC03MzYsNyArNzM0LDcgQEAgc3RhdGljIGludCBfZHB1X3JtX3BvcHVs YXRlX3JlcXVpcmVtZW50cygKPiAgCj4gIAltZW1zZXQocmVxcywgMCwgc2l6ZW9mKCpyZXFzKSk7 Cj4gIAo+IC0JZHB1X2VuY29kZXJfZ2V0X2h3X3Jlc291cmNlcyhlbmMsICZyZXFzLT5od19yZXMs IGNvbm5fc3RhdGUpOwo+ICsJZHB1X2VuY29kZXJfZ2V0X2h3X3Jlc291cmNlcyhlbmMsICZyZXFz LT5od19yZXMpOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBEUFVfUk1fVE9QT0xPR1lfTUFYOyBp KyspIHsKPiAgCQlpZiAoUk1fSVNfVE9QT0xPR1lfTUFUQ0goZ190b3BfdGFibGVbaV0sCj4gQEAg LTc4MCwyOSArNzc4LDEyIEBAIHN0YXRpYyBzdHJ1Y3QgZHB1X3JtX3JzdnAgKl9kcHVfcm1fZ2V0 X3JzdnAoCj4gIAlyZXR1cm4gTlVMTDsKPiAgfQo+ICAKPiAtc3RhdGljIHN0cnVjdCBkcm1fY29u bmVjdG9yICpfZHB1X3JtX2dldF9jb25uZWN0b3IoCj4gLQkJc3RydWN0IGRybV9lbmNvZGVyICpl bmMpCj4gLXsKPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uID0gTlVMTDsKPiAtCXN0cnVj dCBsaXN0X2hlYWQgKmNvbm5lY3Rvcl9saXN0ID0KPiAtCQkJJmVuYy0+ZGV2LT5tb2RlX2NvbmZp Zy5jb25uZWN0b3JfbGlzdDsKPiAtCj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm4sIGNvbm5l Y3Rvcl9saXN0LCBoZWFkKQo+IC0JCWlmIChjb25uLT5lbmNvZGVyID09IGVuYykKPiAtCQkJcmV0 dXJuIGNvbm47Cj4gLQo+IC0JcmV0dXJuIE5VTEw7Cj4gLX0KPiAtCj4gIC8qKgo+ICAgKiBfZHB1 X3JtX3JlbGVhc2VfcnN2cCAtIHJlbGVhc2UgcmVzb3VyY2VzIGFuZCByZWxlYXNlIGEgcmVzZXJ2 YXRpb24KPiAgICogQHJtOglLTVMgaGFuZGxlCj4gICAqIEByc3ZwOglSU1ZQIHBvaW50ZXIgdG8g cmVsZWFzZSBhbmQgcmVsZWFzZSByZXNvdXJjZXMgZm9yCj4gICAqLwo+IC1zdGF0aWMgdm9pZCBf ZHB1X3JtX3JlbGVhc2VfcnN2cCgKPiAtCQlzdHJ1Y3QgZHB1X3JtICpybSwKPiAtCQlzdHJ1Y3Qg ZHB1X3JtX3JzdnAgKnJzdnAsCj4gLQkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm4pCj4gK3N0 YXRpYyB2b2lkIF9kcHVfcm1fcmVsZWFzZV9yc3ZwKHN0cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3Qg ZHB1X3JtX3JzdnAgKnJzdnApCj4gIHsKPiAgCXN0cnVjdCBkcHVfcm1fcnN2cCAqcnN2cF9jLCAq cnN2cF9uOwo+ICAJc3RydWN0IGRwdV9ybV9od19ibGsgKmJsazsKPiBAQCAtODQzLDcgKzgyNCw2 IEBAIHN0YXRpYyB2b2lkIF9kcHVfcm1fcmVsZWFzZV9yc3ZwKAo+ICB2b2lkIGRwdV9ybV9yZWxl YXNlKHN0cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuYykKPiAgewo+ICAJ c3RydWN0IGRwdV9ybV9yc3ZwICpyc3ZwOwo+IC0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47 Cj4gIAo+ICAJaWYgKCFybSB8fCAhZW5jKSB7Cj4gIAkJRFBVX0VSUk9SKCJpbnZhbGlkIHBhcmFt c1xuIik7Cj4gQEAgLTg1OCwyMSArODM4LDEyIEBAIHZvaWQgZHB1X3JtX3JlbGVhc2Uoc3RydWN0 IGRwdV9ybSAqcm0sIHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jKQo+ICAJCWdvdG8gZW5kOwo+ICAJ fQo+ICAKPiAtCWNvbm4gPSBfZHB1X3JtX2dldF9jb25uZWN0b3IoZW5jKTsKPiAtCWlmICghY29u bikgewo+IC0JCURQVV9FUlJPUigiZmFpbGVkIHRvIGdldCBjb25uZWN0b3IgZm9yIGVuYyAlZFxu IiwgZW5jLT5iYXNlLmlkKTsKPiAtCQlnb3RvIGVuZDsKPiAtCX0KPiAtCj4gLQlfZHB1X3JtX3Jl bGVhc2VfcnN2cChybSwgcnN2cCwgY29ubik7Cj4gKwlfZHB1X3JtX3JlbGVhc2VfcnN2cChybSwg cnN2cCk7Cj4gIGVuZDoKPiAgCW11dGV4X3VubG9jaygmcm0tPnJtX2xvY2spOwo+ICB9Cj4gIAo+ IC1zdGF0aWMgaW50IF9kcHVfcm1fY29tbWl0X3JzdnAoCj4gLQkJc3RydWN0IGRwdV9ybSAqcm0s Cj4gLQkJc3RydWN0IGRwdV9ybV9yc3ZwICpyc3ZwLAo+IC0JCXN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpjb25uX3N0YXRlKQo+ICtzdGF0aWMgaW50IF9kcHVfcm1fY29tbWl0X3JzdnAoc3Ry dWN0IGRwdV9ybSAqcm0sIHN0cnVjdCBkcHVfcm1fcnN2cCAqcnN2cCkKPiAgewo+ICAJc3RydWN0 IGRwdV9ybV9od19ibGsgKmJsazsKPiAgCWVudW0gZHB1X2h3X2Jsa190eXBlIHR5cGU7Cj4gQEAg LTg5OSw3ICs4NzAsNiBAQCBpbnQgZHB1X3JtX3Jlc2VydmUoCj4gIAkJc3RydWN0IGRwdV9ybSAq cm0sCj4gIAkJc3RydWN0IGRybV9lbmNvZGVyICplbmMsCj4gIAkJc3RydWN0IGRybV9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAo+IC0JCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0 YXRlLAo+ICAJCXN0cnVjdCBtc21fZGlzcGxheV90b3BvbG9neSB0b3BvbG9neSwKPiAgCQlib29s IHRlc3Rfb25seSkKPiAgewo+IEBAIC05MDcsNyArODc3LDcgQEAgaW50IGRwdV9ybV9yZXNlcnZl KAo+ICAJc3RydWN0IGRwdV9ybV9yZXF1aXJlbWVudHMgcmVxczsKPiAgCWludCByZXQ7Cj4gIAo+ IC0JaWYgKCFybSB8fCAhZW5jIHx8ICFjcnRjX3N0YXRlIHx8ICFjb25uX3N0YXRlKSB7Cj4gKwlp ZiAoIXJtIHx8ICFlbmMgfHwgIWNydGNfc3RhdGUpIHsKPiAgCQlEUFVfRVJST1IoImludmFsaWQg YXJndW1lbnRzXG4iKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiBAQCAtOTE2LDE2ICs4 ODYsMTUgQEAgaW50IGRwdV9ybV9yZXNlcnZlKAo+ICAJaWYgKCFkcm1fYXRvbWljX2NydGNfbmVl ZHNfbW9kZXNldChjcnRjX3N0YXRlKSkKPiAgCQlyZXR1cm4gMDsKPiAgCj4gLQlEUk1fREVCVUdf S01TKCJyZXNlcnZpbmcgaHcgZm9yIGNvbm4gJWQgZW5jICVkIGNydGMgJWQgdGVzdF9vbmx5ICVk XG4iLAo+IC0JCSAgICAgIGNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+YmFzZS5pZCwgZW5jLT5iYXNl LmlkLAo+IC0JCSAgICAgIGNydGNfc3RhdGUtPmNydGMtPmJhc2UuaWQsIHRlc3Rfb25seSk7Cj4g KwlEUk1fREVCVUdfS01TKCJyZXNlcnZpbmcgaHcgZm9yIGVuYyAlZCBjcnRjICVkIHRlc3Rfb25s eSAlZFxuIiwKPiArCQkgICAgICBlbmMtPmJhc2UuaWQsIGNydGNfc3RhdGUtPmNydGMtPmJhc2Uu aWQsIHRlc3Rfb25seSk7Cj4gIAo+ICAJbXV0ZXhfbG9jaygmcm0tPnJtX2xvY2spOwo+ICAKPiAg CV9kcHVfcm1fcHJpbnRfcnN2cHMocm0sIERQVV9STV9TVEFHRV9CRUdJTik7Cj4gIAo+IC0JcmV0 ID0gX2RwdV9ybV9wb3B1bGF0ZV9yZXF1aXJlbWVudHMocm0sIGVuYywgY3J0Y19zdGF0ZSwKPiAt CQkJY29ubl9zdGF0ZSwgJnJlcXMsIHRvcG9sb2d5KTsKPiArCXJldCA9IF9kcHVfcm1fcG9wdWxh dGVfcmVxdWlyZW1lbnRzKHJtLCBlbmMsIGNydGNfc3RhdGUsICZyZXFzLAo+ICsJCQkJCSAgICB0 b3BvbG9neSk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFBVX0VSUk9SKCJmYWlsZWQgdG8gcG9wdWxh dGUgaHcgcmVxdWlyZW1lbnRzXG4iKTsKPiAgCQlnb3RvIGVuZDsKPiBAQCAtOTUxLDE0ICs5MjAs MTMgQEAgaW50IGRwdV9ybV9yZXNlcnZlKAo+ICAJcnN2cF9jdXIgPSBfZHB1X3JtX2dldF9yc3Zw KHJtLCBlbmMpOwo+ICAKPiAgCS8qIENoZWNrIHRoZSBwcm9wb3NlZCByZXNlcnZhdGlvbiwgc3Rv cmUgaXQgaW4gaHcncyAibmV4dCIgZmllbGQgKi8KPiAtCXJldCA9IF9kcHVfcm1fbWFrZV9uZXh0 X3JzdnAocm0sIGVuYywgY3J0Y19zdGF0ZSwgY29ubl9zdGF0ZSwKPiAtCQkJcnN2cF9ueHQsICZy ZXFzKTsKPiArCXJldCA9IF9kcHVfcm1fbWFrZV9uZXh0X3JzdnAocm0sIGVuYywgY3J0Y19zdGF0 ZSwgcnN2cF9ueHQsICZyZXFzKTsKPiAgCj4gIAlfZHB1X3JtX3ByaW50X3JzdnBzKHJtLCBEUFVf Uk1fU1RBR0VfQUZURVJfUlNWUE5FWFQpOwo+ICAKPiAgCWlmIChyZXQpIHsKPiAgCQlEUFVfRVJS T1IoImZhaWxlZCB0byByZXNlcnZlIGh3IHJlc291cmNlczogJWRcbiIsIHJldCk7Cj4gLQkJX2Rw dV9ybV9yZWxlYXNlX3JzdnAocm0sIHJzdnBfbnh0LCBjb25uX3N0YXRlLT5jb25uZWN0b3IpOwo+ ICsJCV9kcHVfcm1fcmVsZWFzZV9yc3ZwKHJtLCByc3ZwX254dCk7Cj4gIAl9IGVsc2UgaWYgKHRl c3Rfb25seSkgewo+ICAJCS8qCj4gIAkJICogTm9ybWFsbHksIGlmIHRlc3Rfb25seSwgdGVzdCB0 aGUgcmVzZXJ2YXRpb24gYW5kIHRoZW4gdW5kbwo+IEBAIC05NjcsMTEgKzkzNSwxMSBAQCBpbnQg ZHB1X3JtX3Jlc2VydmUoCj4gIAkJICovCj4gIAkJRFBVX0RFQlVHKCJ0ZXN0X29ubHk6IGRpc2Nh cmQgdGVzdCByc3ZwW3MlZGUlZF1cbiIsCj4gIAkJCQlyc3ZwX254dC0+c2VxLCByc3ZwX254dC0+ ZW5jX2lkKTsKPiAtCQlfZHB1X3JtX3JlbGVhc2VfcnN2cChybSwgcnN2cF9ueHQsIGNvbm5fc3Rh dGUtPmNvbm5lY3Rvcik7Cj4gKwkJX2RwdV9ybV9yZWxlYXNlX3JzdnAocm0sIHJzdnBfbnh0KTsK PiAgCX0gZWxzZSB7Cj4gLQkJX2RwdV9ybV9yZWxlYXNlX3JzdnAocm0sIHJzdnBfY3VyLCBjb25u X3N0YXRlLT5jb25uZWN0b3IpOwo+ICsJCV9kcHVfcm1fcmVsZWFzZV9yc3ZwKHJtLCByc3ZwX2N1 cik7Cj4gIAo+IC0JCXJldCA9IF9kcHVfcm1fY29tbWl0X3JzdnAocm0sIHJzdnBfbnh0LCBjb25u X3N0YXRlKTsKPiArCQlfZHB1X3JtX2NvbW1pdF9yc3ZwKHJtLCByc3ZwX254dCk7Cj4gIAl9Cj4g IAo+ICAJX2RwdV9ybV9wcmludF9yc3ZwcyhybSwgRFBVX1JNX1NUQUdFX0ZJTkFMKTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmggYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uaAo+IGluZGV4IDNhNmE1NTQ2Li4yODQ4MWEx IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmgKPiBAQCAtMTA3LDcg KzEwNyw2IEBAIGludCBkcHVfcm1faW5pdChzdHJ1Y3QgZHB1X3JtICpybSwKPiAgICogQHJtOiBE UFUgUmVzb3VyY2UgTWFuYWdlciBoYW5kbGUKPiAgICogQGRybV9lbmM6IERSTSBFbmNvZGVyIGhh bmRsZQo+ICAgKiBAY3J0Y19zdGF0ZTogUHJvcG9zZWQgQXRvbWljIERSTSBDUlRDIFN0YXRlIGhh bmRsZQo+IC0gKiBAY29ubl9zdGF0ZTogUHJvcG9zZWQgQXRvbWljIERSTSBDb25uZWN0b3IgU3Rh dGUgaGFuZGxlCj4gICAqIEB0b3BvbG9neTogUG9pbnRlciB0byB0b3BvbG9neSBpbmZvIGZvciB0 aGUgZGlzcGxheQo+ICAgKiBAdGVzdF9vbmx5OiBBdG9taWMtVGVzdCBwaGFzZSwgZGlzY2FyZCBy ZXN1bHRzICh1bmxlc3MgcHJvcGVydHkgb3ZlcnJpZGVzKQo+ICAgKiBAUmV0dXJuOiAwIG9uIFN1 Y2Nlc3Mgb3RoZXJ3aXNlIC1FUlJPUgo+IEBAIC0xMTUsNyArMTE0LDYgQEAgaW50IGRwdV9ybV9p bml0KHN0cnVjdCBkcHVfcm0gKnJtLAo+ICBpbnQgZHB1X3JtX3Jlc2VydmUoc3RydWN0IGRwdV9y bSAqcm0sCj4gIAkJc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAo+ICAJCXN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAtCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubl9zdGF0ZSwKPiAgCQlzdHJ1Y3QgbXNtX2Rpc3BsYXlfdG9wb2xvZ3kgdG9wb2xvZ3ksCj4g IAkJYm9vbCB0ZXN0X29ubHkpOwo+ICAKPiAtLSAKPiBUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBD ZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLAo+IGEgTGlu dXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKPiAKCi0tIApTZWFuIFBhdWwsIFNv ZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK