From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v2 1/7] drm/msm/dpu: Remove unneeded checks in dpu_plane.c Date: Fri, 21 Sep 2018 11:43:38 -0400 Message-ID: <20180921154338.GG72545@art_vandelay> References: <20180920164924.225847-1-bzwang@chromium.org> <20180920164924.225847-2-bzwang@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180920164924.225847-2-bzwang-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Bruce Wang Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gVGh1LCBTZXAgMjAsIDIwMTggYXQgMTI6NDk6MThQTSAtMDQwMCwgQnJ1Y2UgV2FuZyB3cm90 ZToKPiBSZW1vdmVzIHNvbWUgY2hlY2tzIGZyb20gZHB1X3BsYW5lLmMgdGhhdCB3aWxsIG5ldmVy IHJlc3VsdCBpbiBhbiBlcnJvci4KPiBTdWJzZXF1ZW50IHZhcmlhYmxlIGFzc2lnbm1lbnRzIGJl Y29tZSBwYXJ0IG9mIHRoZSBpbml0aWFsaXphdGlvbiB3aGVyZXZlcgo+IHBvc3NpYmxlLiBVbnVz ZWQgdmFyaWFibGVzIGFyZSByZW1vdmVkLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEJydWNlIFdhbmcg PGJ6d2FuZ0BjaHJvbWl1bS5vcmc+CgpSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBj aHJvbWl1bS5vcmc+Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf cGxhbmUuYyB8IDE5MCArKy0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAx NyBpbnNlcnRpb25zKCspLCAxNzMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMKPiBpbmRleCAxY2U3NjQ2MGQ3MTAuLjk5ODg3YzgwNGU0 ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jCj4gQEAg LTEyMywxMyArMTIzLDggQEAgc3RydWN0IGRwdV9wbGFuZSB7Cj4gIAo+ICBzdGF0aWMgc3RydWN0 IGRwdV9rbXMgKl9kcHVfcGxhbmVfZ2V0X2ttcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiAg ewo+IC0Jc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdjsKPiArCXN0cnVjdCBtc21fZHJtX3By aXZhdGUgKnByaXYgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCj4gLQlpZiAoIXBsYW5l IHx8ICFwbGFuZS0+ZGV2KQo+IC0JCXJldHVybiBOVUxMOwo+IC0JcHJpdiA9IHBsYW5lLT5kZXYt PmRldl9wcml2YXRlOwo+IC0JaWYgKCFwcml2KQo+IC0JCXJldHVybiBOVUxMOwo+ICAJcmV0dXJu IHRvX2RwdV9rbXMocHJpdi0+a21zKTsKPiAgfQo+ICAKPiBAQCAtMTQ4LDcgKzE0Myw3IEBAIHN0 YXRpYyBpbmxpbmUgaW50IF9kcHVfcGxhbmVfY2FsY19maWxsX2xldmVsKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ICAJdTMyIGZpeGVkX2J1ZmZfc2l6ZTsKPiAgCXUzMiB0b3RhbF9mbDsKPiAg Cj4gLQlpZiAoIXBsYW5lIHx8ICFmbXQgfHwgIXBsYW5lLT5zdGF0ZSB8fCAhc3JjX3dpZHRoIHx8 ICFmbXQtPmJwcCkgewo+ICsJaWYgKCFmbXQgfHwgIXBsYW5lLT5zdGF0ZSB8fCAhc3JjX3dpZHRo IHx8ICFmbXQtPmJwcCkgewo+ICAJCURQVV9FUlJPUigiaW52YWxpZCBhcmd1bWVudHNcbiIpOwo+ ICAJCXJldHVybiAwOwo+ICAJfQo+IEBAIC0yMjksMjYgKzIyNCwxMSBAQCBzdGF0aWMgdTY0IF9k cHVfcGxhbmVfZ2V0X3Fvc19sdXQoY29uc3Qgc3RydWN0IGRwdV9xb3NfbHV0X3RibCAqdGJsLAo+ ICBzdGF0aWMgdm9pZCBfZHB1X3BsYW5lX3NldF9xb3NfbHV0KHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAo+ICAJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQo+ICB7Cj4gLQlzdHJ1Y3QgZHB1 X3BsYW5lICpwZHB1Owo+ICsJc3RydWN0IGRwdV9wbGFuZSAqcGRwdSA9IHRvX2RwdV9wbGFuZShw bGFuZSk7Cj4gIAljb25zdCBzdHJ1Y3QgZHB1X2Zvcm1hdCAqZm10ID0gTlVMTDsKPiAgCXU2NCBx b3NfbHV0Owo+ICAJdTMyIHRvdGFsX2ZsID0gMCwgbHV0X3VzYWdlOwo+ICAKPiAtCWlmICghcGxh bmUgfHwgIWZiKSB7Cj4gLQkJRFBVX0VSUk9SKCJpbnZhbGlkIGFyZ3VtZW50cyBwbGFuZSAlZCBm YiAlZFxuIiwKPiAtCQkJCXBsYW5lICE9IDAsIGZiICE9IDApOwo+IC0JCXJldHVybjsKPiAtCX0K PiAtCj4gLQlwZHB1ID0gdG9fZHB1X3BsYW5lKHBsYW5lKTsKPiAtCj4gLQlpZiAoIXBkcHUtPnBp cGVfaHcgfHwgIXBkcHUtPnBpcGVfc2JsayB8fCAhcGRwdS0+Y2F0YWxvZykgewo+IC0JCURQVV9F UlJPUigiaW52YWxpZCBhcmd1bWVudHNcbiIpOwo+IC0JCXJldHVybjsKPiAtCX0gZWxzZSBpZiAo IXBkcHUtPnBpcGVfaHctPm9wcy5zZXR1cF9jcmVxX2x1dCkgewo+IC0JCXJldHVybjsKPiAtCX0K PiAtCj4gIAlpZiAoIXBkcHUtPmlzX3J0X3BpcGUpIHsKPiAgCQlsdXRfdXNhZ2UgPSBEUFVfUU9T X0xVVF9VU0FHRV9OUlQ7Cj4gIAl9IGVsc2Ugewo+IEBAIC0yOTAsMjQgKzI3MCwxMCBAQCBzdGF0 aWMgdm9pZCBfZHB1X3BsYW5lX3NldF9xb3NfbHV0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ ICBzdGF0aWMgdm9pZCBfZHB1X3BsYW5lX3NldF9kYW5nZXJfbHV0KHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAo+ICAJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQo+ICB7Cj4gLQlzdHJ1Y3Qg ZHB1X3BsYW5lICpwZHB1Owo+ICsJc3RydWN0IGRwdV9wbGFuZSAqcGRwdSA9IHRvX2RwdV9wbGFu ZShwbGFuZSk7Cj4gIAljb25zdCBzdHJ1Y3QgZHB1X2Zvcm1hdCAqZm10ID0gTlVMTDsKPiAgCXUz MiBkYW5nZXJfbHV0LCBzYWZlX2x1dDsKPiAgCj4gLQlpZiAoIXBsYW5lIHx8ICFmYikgewo+IC0J CURQVV9FUlJPUigiaW52YWxpZCBhcmd1bWVudHNcbiIpOwo+IC0JCXJldHVybjsKPiAtCX0KPiAt Cj4gLQlwZHB1ID0gdG9fZHB1X3BsYW5lKHBsYW5lKTsKPiAtCj4gLQlpZiAoIXBkcHUtPnBpcGVf aHcgfHwgIXBkcHUtPnBpcGVfc2JsayB8fCAhcGRwdS0+Y2F0YWxvZykgewo+IC0JCURQVV9FUlJP UigiaW52YWxpZCBhcmd1bWVudHNcbiIpOwo+IC0JCXJldHVybjsKPiAtCX0gZWxzZSBpZiAoIXBk cHUtPnBpcGVfaHctPm9wcy5zZXR1cF9kYW5nZXJfc2FmZV9sdXQpIHsKPiAtCQlyZXR1cm47Cj4g LQl9Cj4gLQo+ICAJaWYgKCFwZHB1LT5pc19ydF9waXBlKSB7Cj4gIAkJZGFuZ2VyX2x1dCA9IHBk cHUtPmNhdGFsb2ctPnBlcmYuZGFuZ2VyX2x1dF90YmwKPiAgCQkJCVtEUFVfUU9TX0xVVF9VU0FH RV9OUlRdOwo+IEBAIC0zNjEsMjEgKzMyNyw3IEBAIHN0YXRpYyB2b2lkIF9kcHVfcGxhbmVfc2V0 X2Rhbmdlcl9sdXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIHN0YXRpYyB2b2lkIF9kcHVf cGxhbmVfc2V0X3Fvc19jdHJsKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJYm9vbCBlbmFi bGUsIHUzMiBmbGFncykKPiAgewo+IC0Jc3RydWN0IGRwdV9wbGFuZSAqcGRwdTsKPiAtCj4gLQlp ZiAoIXBsYW5lKSB7Cj4gLQkJRFBVX0VSUk9SKCJpbnZhbGlkIGFyZ3VtZW50c1xuIik7Cj4gLQkJ cmV0dXJuOwo+IC0JfQo+IC0KPiAtCXBkcHUgPSB0b19kcHVfcGxhbmUocGxhbmUpOwo+IC0KPiAt CWlmICghcGRwdS0+cGlwZV9odyB8fCAhcGRwdS0+cGlwZV9zYmxrKSB7Cj4gLQkJRFBVX0VSUk9S KCJpbnZhbGlkIGFyZ3VtZW50c1xuIik7Cj4gLQkJcmV0dXJuOwo+IC0JfSBlbHNlIGlmICghcGRw dS0+cGlwZV9ody0+b3BzLnNldHVwX3Fvc19jdHJsKSB7Cj4gLQkJcmV0dXJuOwo+IC0JfQo+ICsJ c3RydWN0IGRwdV9wbGFuZSAqcGRwdSA9IHRvX2RwdV9wbGFuZShwbGFuZSk7Cj4gIAo+ICAJaWYg KGZsYWdzICYgRFBVX1BMQU5FX1FPU19WQkxBTktfQ1RSTCkgewo+ICAJCXBkcHUtPnBpcGVfcW9z X2NmZy5jcmVxX3ZibGFuayA9IHBkcHUtPnBpcGVfc2Jsay0+Y3JlcV92Ymxhbms7Cj4gQEAgLTQ1 MCwyOSArNDAyLDEwIEBAIGludCBkcHVfcGxhbmVfZGFuZ2VyX3NpZ25hbF9jdHJsKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLCBib29sIGVuYWJsZSkKPiAgc3RhdGljIHZvaWQgX2RwdV9wbGFuZV9z ZXRfb3RfbGltaXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJc3RydWN0IGRybV9jcnRj ICpjcnRjKQo+ICB7Cj4gLQlzdHJ1Y3QgZHB1X3BsYW5lICpwZHB1Owo+ICsJc3RydWN0IGRwdV9w bGFuZSAqcGRwdSA9IHRvX2RwdV9wbGFuZShwbGFuZSk7Cj4gIAlzdHJ1Y3QgZHB1X3ZiaWZfc2V0 X290X3BhcmFtcyBvdF9wYXJhbXM7Cj4gLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2Owo+ IC0Jc3RydWN0IGRwdV9rbXMgKmRwdV9rbXM7Cj4gLQo+IC0JaWYgKCFwbGFuZSB8fCAhcGxhbmUt PmRldiB8fCAhY3J0Yykgewo+IC0JCURQVV9FUlJPUigiaW52YWxpZCBhcmd1bWVudHMgcGxhbmUg JWQgY3J0YyAlZFxuIiwKPiAtCQkJCXBsYW5lICE9IDAsIGNydGMgIT0gMCk7Cj4gLQkJcmV0dXJu Owo+IC0JfQo+IC0KPiAtCXByaXYgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCWlmICgh cHJpdiB8fCAhcHJpdi0+a21zKSB7Cj4gLQkJRFBVX0VSUk9SKCJpbnZhbGlkIEtNUyByZWZlcmVu Y2VcbiIpOwo+IC0JCXJldHVybjsKPiAtCX0KPiAtCj4gLQlkcHVfa21zID0gdG9fZHB1X2ttcyhw cml2LT5rbXMpOwo+IC0JcGRwdSA9IHRvX2RwdV9wbGFuZShwbGFuZSk7Cj4gLQlpZiAoIXBkcHUt PnBpcGVfaHcpIHsKPiAtCQlEUFVfRVJST1IoImludmFsaWQgcGlwZSByZWZlcmVuY2VcbiIpOwo+ IC0JCXJldHVybjsKPiAtCX0KPiArCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBwbGFu ZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcHVfa21zICpkcHVfa21zID0gdG9fZHB1 X2ttcyhwcml2LT5rbXMpOwo+ICAKPiAgCW1lbXNldCgmb3RfcGFyYW1zLCAwLCBzaXplb2Yob3Rf cGFyYW1zKSk7Cj4gIAlvdF9wYXJhbXMueGluX2lkID0gcGRwdS0+cGlwZV9ody0+Y2FwLT54aW5f aWQ7Cj4gQEAgLTQ5NCwyOCArNDI3LDEwIEBAIHN0YXRpYyB2b2lkIF9kcHVfcGxhbmVfc2V0X290 X2xpbWl0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgKi8KPiAgc3RhdGljIHZvaWQgX2Rw dV9wbGFuZV9zZXRfcW9zX3JlbWFwKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ICB7Cj4gLQlz dHJ1Y3QgZHB1X3BsYW5lICpwZHB1Owo+ICsJc3RydWN0IGRwdV9wbGFuZSAqcGRwdSA9IHRvX2Rw dV9wbGFuZShwbGFuZSk7Cj4gIAlzdHJ1Y3QgZHB1X3ZiaWZfc2V0X3Fvc19wYXJhbXMgcW9zX3Bh cmFtczsKPiAtCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7Cj4gLQlzdHJ1Y3QgZHB1X2tt cyAqZHB1X2ttczsKPiAtCj4gLQlpZiAoIXBsYW5lIHx8ICFwbGFuZS0+ZGV2KSB7Cj4gLQkJRFBV X0VSUk9SKCJpbnZhbGlkIGFyZ3VtZW50c1xuIik7Cj4gLQkJcmV0dXJuOwo+IC0JfQo+IC0KPiAt CXByaXYgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCWlmICghcHJpdiB8fCAhcHJpdi0+ a21zKSB7Cj4gLQkJRFBVX0VSUk9SKCJpbnZhbGlkIEtNUyByZWZlcmVuY2VcbiIpOwo+IC0JCXJl dHVybjsKPiAtCX0KPiAtCj4gLQlkcHVfa21zID0gdG9fZHB1X2ttcyhwcml2LT5rbXMpOwo+IC0J cGRwdSA9IHRvX2RwdV9wbGFuZShwbGFuZSk7Cj4gLQlpZiAoIXBkcHUtPnBpcGVfaHcpIHsKPiAt CQlEUFVfRVJST1IoImludmFsaWQgcGlwZSByZWZlcmVuY2VcbiIpOwo+IC0JCXJldHVybjsKPiAt CX0KPiArCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBwbGFuZS0+ZGV2LT5kZXZfcHJp dmF0ZTsKPiArCXN0cnVjdCBkcHVfa21zICpkcHVfa21zID0gdG9fZHB1X2ttcyhwcml2LT5rbXMp Owo+ICAKPiAgCW1lbXNldCgmcW9zX3BhcmFtcywgMCwgc2l6ZW9mKHFvc19wYXJhbXMpKTsKPiAg CXFvc19wYXJhbXMudmJpZl9pZHggPSBWQklGX1JUOwo+IEBAIC01NDksMTAgKzQ2NCw2IEBAIHN0 YXRpYyBpbnQgX2RwdV9wbGFuZV9nZXRfYXNwYWNlKAo+ICAJfQo+ICAKPiAgCWttcyA9IF9kcHVf cGxhbmVfZ2V0X2ttcygmcGRwdS0+YmFzZSk7Cj4gLQlpZiAoIWttcykgewo+IC0JCURQVV9FUlJP UigiaW52YWxpZCBrbXNcbiIpOwo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0JfQo+ICAKPiAgCSph c3BhY2UgPSBrbXMtPmJhc2UuYXNwYWNlOwo+ICAKPiBAQCAtNTc2LDEwICs0ODcsNiBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgX2RwdV9wbGFuZV9zZXRfc2Nhbm91dChzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPiAgCX0KPiAgCj4gIAlwZHB1ID0gdG9fZHB1X3BsYW5lKHBsYW5lKTsKPiAtCWlmICgh cGRwdS0+cGlwZV9odykgewo+IC0JCURQVV9FUlJPUl9QTEFORShwZHB1LCAiaW52YWxpZCBwaXBl X2h3XG4iKTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gIAo+ICAJcmV0ID0gX2RwdV9wbGFuZV9nZXRf YXNwYWNlKHBkcHUsIHBzdGF0ZSwgJmFzcGFjZSk7Cj4gIAlpZiAocmV0KSB7Cj4gQEAgLTYxMCwx NSArNTE3LDYgQEAgc3RhdGljIHZvaWQgX2RwdV9wbGFuZV9zZXR1cF9zY2FsZXIzKHN0cnVjdCBk cHVfcGxhbmUgKnBkcHUsCj4gIHsKPiAgCXVpbnQzMl90IGk7Cj4gIAo+IC0JaWYgKCFwZHB1IHx8 ICFwc3RhdGUgfHwgIXNjYWxlX2NmZyB8fCAhZm10IHx8ICFjaHJvbWFfc3Vic21wbF9oIHx8Cj4g LQkJCSFjaHJvbWFfc3Vic21wbF92KSB7Cj4gLQkJRFBVX0VSUk9SKAo+IC0JCQkicGRwdSAlZCBw c3RhdGUgJWQgc2NhbGVfY2ZnICVkIGZtdCAlZCBzbXBfaCAlZCBzbXBfdiAlZFxuIiwKPiAtCQkJ ISFwZHB1LCAhIXBzdGF0ZSwgISFzY2FsZV9jZmcsICEhZm10LCBjaHJvbWFfc3Vic21wbF9oLAo+ IC0JCQljaHJvbWFfc3Vic21wbF92KTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+ICAJbWVtc2V0 KHNjYWxlX2NmZywgMCwgc2l6ZW9mKCpzY2FsZV9jZmcpKTsKPiAgCW1lbXNldCgmcHN0YXRlLT5w aXhlbF9leHQsIDAsIHNpemVvZihzdHJ1Y3QgZHB1X2h3X3BpeGVsX2V4dCkpOwo+ICAKPiBAQCAt NzIyLDE3ICs2MjAsOCBAQCBzdGF0aWMgdm9pZCBfZHB1X3BsYW5lX3NldHVwX3NjYWxlcihzdHJ1 Y3QgZHB1X3BsYW5lICpwZHB1LAo+ICAJCXN0cnVjdCBkcHVfcGxhbmVfc3RhdGUgKnBzdGF0ZSwK PiAgCQljb25zdCBzdHJ1Y3QgZHB1X2Zvcm1hdCAqZm10LCBib29sIGNvbG9yX2ZpbGwpCj4gIHsK PiAtCXN0cnVjdCBkcHVfaHdfcGl4ZWxfZXh0ICpwZTsKPiAgCXVpbnQzMl90IGNocm9tYV9zdWJz bXBsX2gsIGNocm9tYV9zdWJzbXBsX3Y7Cj4gIAo+IC0JaWYgKCFwZHB1IHx8ICFmbXQgfHwgIXBz dGF0ZSkgewo+IC0JCURQVV9FUlJPUigiaW52YWxpZCBhcmcocyksIHBsYW5lICVkIGZtdCAlZCBz dGF0ZSAlZFxuIiwKPiAtCQkJCXBkcHUgIT0gMCwgZm10ICE9IDAsIHBzdGF0ZSAhPSAwKTsKPiAt CQlyZXR1cm47Cj4gLQl9Cj4gLQo+IC0JcGUgPSAmcHN0YXRlLT5waXhlbF9leHQ7Cj4gLQo+ICAJ LyogZG9uJ3QgY2hyb21hIHN1YnNhbXBsZSBpZiBkZWNpbWF0aW5nICovCj4gIAljaHJvbWFfc3Vi c21wbF9oID0KPiAgCQlkcm1fZm9ybWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5nKGZtdC0+YmFz ZS5waXhlbF9mb3JtYXQpOwo+IEBAIC03NjAsMjEgKzY0OSw4IEBAIHN0YXRpYyBpbnQgX2RwdV9w bGFuZV9jb2xvcl9maWxsKHN0cnVjdCBkcHVfcGxhbmUgKnBkcHUsCj4gIAkJdWludDMyX3QgY29s b3IsIHVpbnQzMl90IGFscGhhKQo+ICB7Cj4gIAljb25zdCBzdHJ1Y3QgZHB1X2Zvcm1hdCAqZm10 Owo+IC0JY29uc3Qgc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gLQlzdHJ1Y3QgZHB1X3BsYW5l X3N0YXRlICpwc3RhdGU7Cj4gLQo+IC0JaWYgKCFwZHB1IHx8ICFwZHB1LT5iYXNlLnN0YXRlKSB7 Cj4gLQkJRFBVX0VSUk9SKCJpbnZhbGlkIHBsYW5lXG4iKTsKPiAtCQlyZXR1cm4gLUVJTlZBTDsK PiAtCX0KPiAtCj4gLQlpZiAoIXBkcHUtPnBpcGVfaHcpIHsKPiAtCQlEUFVfRVJST1JfUExBTkUo cGRwdSwgImludmFsaWQgcGxhbmUgaC93IHBvaW50ZXJcbiIpOwo+IC0JCXJldHVybiAtRUlOVkFM Owo+IC0JfQo+IC0KPiAtCXBsYW5lID0gJnBkcHUtPmJhc2U7Cj4gLQlwc3RhdGUgPSB0b19kcHVf cGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKTsKPiArCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lID0gJnBkcHUtPmJhc2U7Cj4gKwlzdHJ1Y3QgZHB1X3BsYW5lX3N0YXRlICpwc3RhdGUgPSB0 b19kcHVfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKTsKPiAgCj4gIAlEUFVfREVCVUdfUExBTkUo cGRwdSwgIlxuIik7Cj4gIAo+IEBAIC04MjUsMTIgKzcwMSw3IEBAIHN0YXRpYyBpbnQgX2RwdV9w bGFuZV9jb2xvcl9maWxsKHN0cnVjdCBkcHVfcGxhbmUgKnBkcHUsCj4gIAo+ICB2b2lkIGRwdV9w bGFuZV9jbGVhcl9tdWx0aXJlY3QoY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqZHJtX3N0 YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHB1X3BsYW5lX3N0YXRlICpwc3RhdGU7Cj4gLQo+IC0JaWYg KCFkcm1fc3RhdGUpCj4gLQkJcmV0dXJuOwo+IC0KPiAtCXBzdGF0ZSA9IHRvX2RwdV9wbGFuZV9z dGF0ZShkcm1fc3RhdGUpOwo+ICsJc3RydWN0IGRwdV9wbGFuZV9zdGF0ZSAqcHN0YXRlID0gdG9f ZHB1X3BsYW5lX3N0YXRlKGRybV9zdGF0ZSk7Cj4gIAo+ICAJcHN0YXRlLT5tdWx0aXJlY3RfaW5k ZXggPSBEUFVfU1NQUF9SRUNUX1NPTE87Cj4gIAlwc3RhdGUtPm11bHRpcmVjdF9tb2RlID0gRFBV X1NTUFBfTVVMVElSRUNUX05PTkU7Cj4gQEAgLTk2MSwxNSArODMyLDYgQEAgaW50IGRwdV9wbGFu ZV92YWxpZGF0ZV9tdWx0aXJlY3RfdjIoc3RydWN0IGRwdV9tdWx0aXJlY3RfcGxhbmVfc3RhdGVz ICpwbGFuZSkKPiAgdm9pZCBkcHVfcGxhbmVfZ2V0X2N0bF9mbHVzaChzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwgc3RydWN0IGRwdV9od19jdGwgKmN0bCwKPiAgCQl1MzIgKmZsdXNoX3NzcHApCj4g IHsKPiAtCXN0cnVjdCBkcHVfcGxhbmVfc3RhdGUgKnBzdGF0ZTsKPiAtCj4gLQlpZiAoIXBsYW5l IHx8ICFmbHVzaF9zc3BwKSB7Cj4gLQkJRFBVX0VSUk9SKCJpbnZhbGlkIHBhcmFtZXRlcnNcbiIp Owo+IC0JCXJldHVybjsKPiAtCX0KPiAtCj4gLQlwc3RhdGUgPSB0b19kcHVfcGxhbmVfc3RhdGUo cGxhbmUtPnN0YXRlKTsKPiAtCj4gIAkqZmx1c2hfc3NwcCA9IGN0bC0+b3BzLmdldF9iaXRtYXNr X3NzcHAoY3RsLCBkcHVfcGxhbmVfcGlwZShwbGFuZSkpOwo+ICB9Cj4gIAo+IEBAIC0xMzg5LDgg KzEyNTEsNyBAQCBzdGF0aWMgdm9pZCBkcHVfcGxhbmVfZGVzdHJveShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSkKPiAgCQkvKiB0aGlzIHdpbGwgZGVzdHJveSB0aGUgc3RhdGVzIGFzIHdlbGwgKi8K PiAgCQlkcm1fcGxhbmVfY2xlYW51cChwbGFuZSk7Cj4gIAo+IC0JCWlmIChwZHB1LT5waXBlX2h3 KQo+IC0JCQlkcHVfaHdfc3NwcF9kZXN0cm95KHBkcHUtPnBpcGVfaHcpOwo+ICsJCWRwdV9od19z c3BwX2Rlc3Ryb3kocGRwdS0+cGlwZV9odyk7Cj4gIAo+ICAJCWtmcmVlKHBkcHUpOwo+ICAJfQo+ IEBAIC0xNzM3LDI4ICsxNTk4LDExIEBAIHN0cnVjdCBkcm1fcGxhbmUgKmRwdV9wbGFuZV9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9IE5V TEwsICptYXN0ZXJfcGxhbmUgPSBOVUxMOwo+ICAJY29uc3Qgc3RydWN0IGRwdV9mb3JtYXRfZXh0 ZW5kZWQgKmZvcm1hdF9saXN0Owo+ICAJc3RydWN0IGRwdV9wbGFuZSAqcGRwdTsKPiAtCXN0cnVj dCBtc21fZHJtX3ByaXZhdGUgKnByaXY7Cj4gLQlzdHJ1Y3QgZHB1X2ttcyAqa21zOwo+ICsJc3Ry dWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3Qg ZHB1X2ttcyAqa21zID0gdG9fZHB1X2ttcyhwcml2LT5rbXMpOwo+ICAJaW50IHpwb3NfbWF4ID0g RFBVX1pQT1NfTUFYOwo+ICAJaW50IHJldCA9IC1FSU5WQUw7Cj4gIAo+IC0JaWYgKCFkZXYpIHsK PiAtCQlEUFVfRVJST1IoIlsldV1kZXZpY2UgaXMgTlVMTFxuIiwgcGlwZSk7Cj4gLQkJZ290byBl eGl0Owo+IC0JfQo+IC0KPiAtCXByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0JaWYgKCFwcml2 KSB7Cj4gLQkJRFBVX0VSUk9SKCJbJXVdcHJpdmF0ZSBkYXRhIGlzIE5VTExcbiIsIHBpcGUpOwo+ IC0JCWdvdG8gZXhpdDsKPiAtCX0KPiAtCj4gLQlpZiAoIXByaXYtPmttcykgewo+IC0JCURQVV9F UlJPUigiWyV1XWludmFsaWQgS01TIHJlZmVyZW5jZVxuIiwgcGlwZSk7Cj4gLQkJZ290byBleGl0 Owo+IC0JfQo+IC0Ja21zID0gdG9fZHB1X2ttcyhwcml2LT5rbXMpOwo+IC0KPiAgCWlmICgha21z LT5jYXRhbG9nKSB7Cj4gIAkJRFBVX0VSUk9SKCJbJXVdaW52YWxpZCBjYXRhbG9nIHJlZmVyZW5j ZVxuIiwgcGlwZSk7Cj4gIAkJZ290byBleGl0Owo+IC0tIAo+IDIuMTkuMC40NDQuZzE4MjQyZGE3 ZWYtZ29vZwo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gRnJlZWRyZW5vIG1haWxpbmcgbGlzdAo+IEZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Zy ZWVkcmVubwoKLS0gClNlYW4gUGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9t aXVtIE9TCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZy ZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=